Nueva función: transcripción automática de videos con subtítulos

Hace poco añadimos una nueva función a nuestro Robot /speech/transcribe, que le permite escuchar lenguaje hablado por personas y generar archivos SRT. Puedes usar estos archivos automáticamente para subtitular contenido multimedia en los reproductores de video. Y, gracias a la componibilidad tipo LEGO de Transloadit, incluso puedes incrustar estos archivos directamente en los propios videos. Hoy quiero mostrarte exactamente cómo hacerlo.

La IA se usa en más ámbitos de la vida de lo que podrías imaginar, y con buenas razones. Puede mejorar drásticamente la velocidad, la precisión y la eficacia del trabajo humano. Aun así, la enorme cantidad de datos, de limpieza de datos y de tarjetas de video que hacen falta para entrenar modelos complejos puede hacer que la IA parezca intimidante, lo que quizá impida que las empresas más pequeñas la aprovechen. Transloadit tiene la misión de poner la IA en manos de más desarrolladores, haciéndola mucho más fácil de manejar y de aprovechar para generar valor.
Con los años, hemos lanzado una serie (English) de Robots basados en IA que son sencillos, de tipo conectar y usar. No tendrás que dedicar ni un segundo a aprender sobre modelos de IA ni a entrenarlos.
El Robot de IA que veremos hoy es nuestro Robot /speech/transcribe. Este Robot puede leer cualquier archivo de audio o de video y crear archivos de texto automáticamente, sin que tengas que encargarte tú de ninguna transcripción tediosa. Incluye ventajas adicionales desde el primer momento, como ser compatible con muchos idiomas y poder aprovechar la IA de Amazon o la de Google con solo cambiar un único parámetro. Transloadit se encarga de todos los detalles de implementación en segundo plano y ofrece una única interfaz que se puede conectar a flujos de trabajo en los que otros Robots se suman y aumentan enormemente el valor que ya aportan estos Robots de IA. La suma resulta mucho más significativa que sus partes. Cambiar de proveedor modificando tres caracteres también te permite descubrir rápidamente cuál de ellos se ajusta mejor a tu caso de uso. No tienes que preocuparte por el manejo de errores ni por enviar archivos con los códecs, los anchos de banda, etc. que correspondan. Transloadit se encarga de todo esto por ti y lo ofrece como un servicio que puedes manejar con una única receta declarativa en JSON.
Primeros pasos
En este post, combinaremos nuestros Robots /speech/transcribe y /video/subtitle para transcribir el lenguaje hablado dentro de un video y luego incrustar el resultado en el propio video. Si bien es cierto que hacerlo a mano puede dar a veces mejores resultados, naturalmente es un proceso costoso y tedioso, hasta el punto de resultar prohibitivo. Y, para muchos fines, vemos que nuestros clientes consideran que la transcripción automática es «suficientemente buena», al tiempo que reduce los costos de forma tan drástica que transcribir videos se convierte, para empezar, en una propuesta atractiva.
Un caso de uso es compartir videos en redes sociales, donde se ha demostrado que los videos con subtítulos captan mucho mejor la atención de las personas que los que no los tienen.
A menudo, los archivos transcritos también se indexan con algo como ElasticSearch, con lo que los videos se vuelven buscables. Se devolverá una coincidencia de búsqueda para cualquier palabra hablada en el video, en lugar de solo coincidencias en el título del video.
A continuación está la receta que usamos para combinar nuestras dos funciones. Las llamamos Assembly Instructions y puedes guardarlas en un Template de tu cuenta para reutilizarlas con seguridad en cualquier momento. Repasaremos cada Step y luego lo probaremos.
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"transcribed": {
"use": ":original",
"robot": "/speech/transcribe",
"provider": "gcp",
"format": "srt",
"result": true
},
"subtitled": {
"use": {
"bundle_steps": true,
"steps": [
{
"name": ":original",
"as": "video"
},
{
"name": "transcribed",
"as": "subtitles"
}
]
},
"robot": "/video/subtitle",
"ffmpeg_stack": "v7",
"preset": "ipad-high",
"result": true
},
"exported": {
"use": ["subtitled", "transcribed"],
"robot": "/s3/store",
"credentials": "s3_cred"
}
}
}
Nuestro primer Step, que usa el Robot /upload/handle, sirve para, bueno, gestionar nuestras subidas. ¿Quién lo hubiera imaginado? Este Step te permite subir tu archivo. Ten en cuenta, sin embargo, que tenemos muchos Robots alternativos disponibles para importar archivos.
Pasamos a nuestro segundo Step,
"transcribed", en el que entra en juego la magia de la IA que mencionamos antes.
Configuramos un parámetro provider con el valor de API "gcp", aunque
también podrías usar el valor "aws". Además, debemos configurar un
parámetro format. Como queremos incrustar subtítulos en un video, hemos
optado por usar el formato "srt". Como alternativa, podrías usar
"webvtt", pero sus ventajas frente a "srt" no serán
necesarias para nuestro caso de uso.
Podrías exportar los archivos SRT por separado para superponer los subtítulos en el reproductor de
video. Aun así, en este caso incrustaremos el subtítulo generado en el archivo de video que subimos
inicialmente, usando nuestro Robot
/video/subtitle. Para combinar los dos
Steps, haz referencia a ambos
Steps, el de la subida y el del subtítulo, dentro del
parámetro use del Robot
/video/subtitle, con la sintaxis de nombres
use.steps[].as.
Por último, usa el Robot /s3/store para exportar nuestros resultados a Amazon S3. Al igual que nuestro primer Step, sin embargo, este Step es muy intercambiable, ya que ofrecemos muchas otras opciones de exportación.
Pruebas
Para probar nuestro Template, se nos ocurrió usar un breve clip de la fenomenal serie de David Attenborough, Planet Earth.
Como puedes ver, la Assembly fue un éxito. Gracias a la IA, no tenemos que pasar por el laborioso proceso de crear un archivo de subtítulos a mano.
Ahora puedes integrar este flujo de trabajo en tu aplicación web o móvil, en tu servicio back-end o en tu utilidad de línea de comandos mediante 20 prácticos SDK como Uppy o el Go SDK, así como directamente a través de nuestra REST API JSON.
Nos encantará saber qué construirás con nosotros. ¡Cuéntanoslo en Twitter!