Crear subtitulos automáticamente con Whisper

Aprovechando que ya vimos cómo instalar whisper.cpp y usarlo para convertir de audio a texto, veremos otra de las utilidades de whispper.cpp, generar subtítulos. No me refiero a solo generar el fichero con la transcripción del audio a texto. Además tiene que tener las marcas de tiempo de cuando es cada texto y el formato adecuado para que pueda cargarlo el reproductor (Usaremos VLC).

Lo primero es convertir el vídeo, en nuestro ejemplo whispercpp.webm, a un fichero de audio .wav con el formato adecuado. Para ello usaremos ffmpeg.

ffmpeg -i samples/whispercpp.webm -ar 16000 -ac 1 -c:a pcm_s16le samples/whispercpp.wav

Parar generar los subtitulo usamos el parametro -osrt, si no queremos o podemos especificar la lengua del vídeo podemos usar -l auto

/main -m models/ggml-large.bin -f samples/whispercpp.wav -l auto -osrt

Aún hay otra posibilidad más: traducir al inglés. Si eres capaz de entender el inglés leído, está opción te permite añadir subtitulos en inglés a múltiples idiomas.

Es tan sencillo como añadir el parámetro -tr

/main -m models/ggml-large.bin -f samples/whispercpp.wav -l auto -osrt -tr

Este parámetro combinado con -l auto para que autodetecte el lenguaje lo convierte en un traductor universal…para unos cuantos lenguajes de la Tierra, siempre y cuando sepas inglés. Aunque en este caso el resultado ha sido muy bueno al principio del audio y bastante desastre al final.

Si quieres, puedes ver los explicado en este post en acción, haz click en la siguiente imagen para ver un vídeo de mi canal de Youtube:

Haz click en la imagen para ver el vídeo en Youtube