Genera los subtítulos de tus vídeos con la IA de Whisper

Últimamente, está de moda todo lo que lleve la palabra IA o en inglés AI y hay artículos muy interesantes, otros repetidos en cientos de blogs y muchos otros que son puro clickbait.

Pero entre lo que se está haciendo últimamente, se encuentran auténticas maravillas y hoy os quiero contar el flujo de trabajo que he incorporado a la creación del curso que estoy realizando, WordPress Ninja Developer.

Voy a dejar de lado todo el proceso de guion, grabación y edición de vídeo. Aquí partimos del vídeo final que subo a la plataforma de streaming.

De vídeo a audio

En este proceso que os estoy describiendo, se puede trabajar directamente con los vídeos, pero como voy a aprovechar el procesamiento en la nube, no es lo mismo subir un vídeo de 157 MB que su correspondiente audio de 3,68 MB, así que en primer lugar vamos a extraer el audio de los vídeos.

Tamaños de video y audio

Hay muchas formas de realizar esta conversión y de hacerlo en lote con todos nuestros vídeos, la más fácil es desde VLC de forma gráfica o desde la consola con FFmpeg.

Desde el programa VLC vamos al menú, submenú Convertir (Ctrl + R o Cmd + R en Mac) y desde ahí seleccionamos todos nuestros vídeos a convertir, a continuación pulsamos en Convertir/Guardar, seleccionamos el perfil Audio – MP3 y en breve ya tendremos todos nuestros videos convertidos a MP3, con el mismo nombre que el original y en la misma carpeta.

VLC convertir, paso 1
VLC convertir, paso 2

La otra opción es desde la línea de comandos, vamos a usar WSL con Ubuntu.

El requisito imprescindible es tener instalado FFmpeg, lo que hacemos con:

sudo apt-get update

sudo apt-get install ffmpeg

Y comprobamos que esté instalado correctamente con ffmpeg -version.

A continuación entramos en la carpeta en la que se encuentran los vídeos en formato mp4, si estuviesen en otro formato, deberemos adaptar nuestro comando, y ejecutamos:

for i in *.mp4; do ffmpeg -i "$i" -vn -ab 128k -ar 44100 -y "${i%.mp4}.mp3"; done

Este comando utiliza un bucle for para iterar sobre cada archivo MP4 en la carpeta y ejecuta un comando FFmpeg para convertirlo a MP3. Los argumentos -vn, -ab 128k y -ar 44100 se utilizan para especificar que solo se deben convertir los datos de audio, que la calidad del audio se debe fijar a 128 kbps y que la frecuencia de muestreo del audio debe ser 44100 Hz.

Una vez que se complete la conversión de todos los archivos de vídeo a MP3, encontrarás los archivos de audio MP3 en la misma carpeta de origen y con los mismos nombres (podemos cambiarlos modificando el comando anterior).

También podemos personalizar los argumentos de FFmpeg según las necesidades específicas.

Crear los subtítulos

Y aquí viene la parte más interesante, en la que utilizamos la IA y los servidores de Google, todo de forma gratuita.

Para esta tarea utilizaremos la IA de Whisper que han liberado como Código Abierto. Pero como estas operaciones de IA requieren de bastante procesamiento de GPU, lo mejor será utilizar las máquinas de Google que nos brinda para estos menesteres de forma gratuita por medio de Google Colab.

Para esta tarea he creado un script en Python desde Google Colab que se ocupa de instalar Whisper, montar nuestra unidad de Google Drive, para lo que requerirá los correspondientes permisos.

En el siguiente paso creará las carpetas donde copiará los archivos de subtítulos y traducciones. Aquí deberemos seleccionar si queremos transcribir y traducir o una de ambas opciones, el modelo de Whisper a utilizar y si nuestro vídeo está en español, inglés o que auto-detecte el idioma del mismo.

Opciones tarea Colab

En el tercer paso ya se ocupa de ejecutar la tarea de transcripción y traducción de nuestro archivo de audio extraído del vídeo.

El Colab que podéis copiar y si queréis modificar a vuestro gusto, está en https://colab.research.google.com/drive/1uSaLKvXwvhUS2hEi8_OFU-Ymq97aRfe1?usp=share_link

Como última fase, antes de subir los archivos de subtítulos al vídeo final, lo compruebo con LanguageTool desde Visual Studio Code y la aplicación de escritorio de LanguageTool como podéis ver al final del siguiente vídeo explicativo:

YouTube video

Por último solo nos queda subir los subtítulos al vídeo:

Subtítulos ya subidos al vídeo

Por cierto, para el vídeo del proceso que podéis ver aquí, se han creado los subtítulos con este mismo proceso.

Deja un comentario