miércoles, 1 de mayo de 2019

Aprendiendo informática: Traducir desde hardsubs (II)

Como ya os contaba, estoy traduciendo ahora una serie llamada Rikuoh, de la que no tengo subtítulos en otro idioma, sino que me baso en un hardsub. El caso es que lo estoy haciendo de una manera distinta, y me gustaría explicar como lo hago.

En este tutorial vamos a usar un programa llamado VideoSubFinder. El sistema que usa es similar al de AviSubDetector, pero que no se limita a los archivos .avi. El problema está en que no incorpora un sistema de OCR (reconocimiento de caracteres), sino que solo detecta las escenas en que aparecen subtitulos, limpia la imagen y la deja lista para usar un programa OCR que revise la imagen y lo convierta en texto. Tambien permite crear un archivo de subtitulos "vacio", solo con los tiempos, lo que es muy util. Dado que lo que realmente me interesa son los tiempos, realmente me importa poco el OCR, asi que cumple con mis necesidades.

El sistema es incluso mas visual que el de AviSubDetector, aunque es mas lento y sus resultados son inferiores. Sin embargo, al no tener que recodificar el video se gana mucho tiempo.

Para usarlo, descargamos VideoSubFinder desde su pagina oficial (https://sourceforge.net/projects/videosubfinder/) o desde VideoHelp (https://www.videohelp.com/software/VideoSubFinder), que es una pagina con multitud de recursos de edicion de video.

Vamos a entrar ya en materia.

Paso 1:


En esta pantalla vemos dos ventanas. En la izquierda vemos el video original, y en la derecha el video procesado. Ahi veremos las imagenes que esté manejando en ese momento.

Lo primero que tenemos que hacer es presionar en "Clear Folders". Dado que almacena sus resultados en las carpetas que hay en el directorio del programa, cuando vamos a trabajar con un nuevo subtítulo lo que hay que hacer es eliminar su contenido.

Paso 2:

Abrimos el video desde File -> Open Video (OpenCV).

Paso 3:

Querer que analice toda la imagen del video es algo poco útil, asi que saltamos a un cuadro del video que tenga subtitulos y marcamos, moviendo las lineas de la ventana de video, la zona que queremos capturar. Como en mi caso no es necesario que capture la totalidad del texto, ya que lo que mas me interesa son los tiempos, podemos coger solo un fragmento corto, que no coja toda la frase. Eso si, conviene que sea lo suficientemente grande como para que no haya "falsos positivos" (momentos en que detecta subtítulos cuando no los hay) o "falsos negativos" (que no detecte subtitulos cuando si los hay). SIEMPRE va a haber falsos positivos y negativos, con lo que hay que revisar el video con cuidado.



En este ejemplo, he escogido una frase bastante corta, y tambien he dejado un espacio en la parte de arriba por si hubiera un subtitulo de dos lineas, pero con un espacio grande. Marcar la zona que podría ocupar un "Eh" sería llenarlo todo de falsos positivos.

Una vez marcada la zona, se presiona el boton de Run Search. Eso empieza a analizar el video y generar las capturas. La imagen irá cambiando según encuentre cada subtítulo. Aviso: NO es rápido, aunque cuanto mas pequeña sea la zona, mas rapido irá.

Pasos 4 y 5:

Si el anterior ha sido lento, el siguiente lo es mas todavía. Se trata de generar las imagenes limpias, mediante el botón Create Cleared TXT images (lo que es muy lento) y despues crear los "subtitulos vacíos" mediante la opcion de Create Empty Sub From Cleared TXT Images.


Esto ya da el subtítulo con los tiempos, que suelen ser del estilo "sub duration: 3,202". Con ese archivo se puede traducir directamente desde el video con hardsubs.

Espero que os haya resultado util, o al menos curioso.

Un saludo.

No hay comentarios:

Publicar un comentario