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

Recientemente añadimos una nueva función a nuestro Robot /speech/transcribe que le permite escuchar el habla humana y generar archivos SRT. Puedes usar estos archivos automáticamente para añadir subtítulos al contenido multimedia en reproductores de video. Y gracias a la capacidad de Transloadit para combinar sus componentes como piezas de LEGO, incluso puedes incrustar estos subtítulos directamente en los videos. Hoy me gustaría mostrarte cómo hacerlo.

La IA se utiliza en más ámbitos de la vida de los que podrías imaginar, y con razón. Puede mejorar considerablemente la velocidad, la precisión y la eficacia de los esfuerzos humanos. Aun así, la enorme cantidad de datos, la depuración de datos y las tarjetas gráficas necesarias para entrenar modelos complejos pueden hacer que la IA parezca intimidante, lo que puede impedir que las empresas más pequeñas la aprovechen. Transloadit tiene la misión de poner la IA al alcance de más profesionales del desarrollo, facilitando su uso y la creación de valor con ella.
A lo largo de los años, hemos lanzado una serie de Robots basados en IA que solo tienes que conectar para empezar a usarlos. No tendrás que dedicar ni un segundo a aprender sobre modelos de IA ni a entrenarlos.
El Robot de IA que analizaremos hoy es nuestro Robot /speech/transcribe. Este Robot puede leer cualquier archivo de audio o video y crear archivos de texto automáticamente a partir de él, sin que tengas que hacer la tediosa transcripción por tu cuenta. Incluye ventajas adicionales integradas, como la compatibilidad con muchos idiomas y la opción de aprovechar la IA de Amazon o de Google con solo cambiar un parámetro. Transloadit se encarga internamente de todos los detalles de implementación y ofrece una interfaz que puedes integrar en flujos de trabajo en los que otros Robots colaboran y aumentan considerablemente el valor que ya aportan estos Robots de IA. El conjunto resulta mucho más valioso que sus partes. Cambiar de proveedor modificando tres caracteres también te permite descubrir rápidamente cuál se adapta mejor a tu caso de uso. No tienes que preocuparte por la gestión de errores ni por enviar archivos con los códecs, anchos de banda y demás características adecuados. Transloadit se encarga de todo esto por ti y lo ofrece como un servicio que puedes utilizar con una sola receta JSON declarativa.
Primeros pasos
En esta publicación, combinaremos nuestros Robots /speech/transcribe y /video/subtitle para transcribir el habla humana de un video y luego incrustar el resultado en el propio video. Aunque hacerlo a mano a veces puede dar mejores resultados, naturalmente es un proceso costoso y tedioso, hasta el punto de que su costo resulta prohibitivo. Para muchos fines, observamos que nuestros clientes consideran que la transcripción automática es «suficientemente buena», mientras que la reducción tan drástica de los costos hace que transcribir videos sea una opción que vale la pena considerar.
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 que los que no los tienen.
A menudo, los archivos de transcripción también se indexan con herramientas como ElasticSearch, lo que permite encontrar los videos mediante búsquedas. La búsqueda devolverá coincidencias con cualquier palabra pronunciada en el video, en lugar de limitarse a las de su título.
A continuación encontrarás la receta que usamos para combinar nuestras dos funciones. A esta receta la llamamos Assembly Instructions. Guárdala en un Template de tu cuenta para reutilizarla en cualquier momento. Revisaremos cada Step y luego la pondremos a prueba.
Primero, crea una credencial de Template de Amazon S3 llamada
s3_cred para tu propio bucket privado. Mantén S3 Block Public Access activado y
no proporciones encabezados ACL ni de concesión de permisos. La exportación siguiente establece
acl en bucket-default para omitir el encabezado ACL generado;
de lo contrario, /s3/store tiene como valor predeterminado
public-read. La lectura del video privado y de la transcripción requiere una
autorización de lectura independiente; las URL devueltas no conceden acceso.
{
"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",
"acl": "bucket-default"
}
}
}
Nuestro primer Step, que utiliza el Robot /upload/handle, sirve, pues, para gestionar nuestras subidas. ¿Quién lo habría imaginado? Este Step te permite subir tu archivo. Ten en cuenta, sin embargo, que disponemos de muchos Robots alternativos para importar archivos.
Pasemos a nuestro segundo Step,
"transcribed", donde entra en juego la magia de la IA que mencionamos antes.
Configuramos un parámetro provider con el valor de API "gcp", pero 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 elegido el
formato "srt". Como alternativa, podrías usar
"webvtt", pero no necesitaremos sus ventajas frente a
"srt" para nuestro caso de uso.
Podrías exportar los archivos SRT por separado para superponer los subtítulos en el reproductor de
video. Sin embargo, en este caso incrustaremos los subtítulos generados en el archivo de video
subido inicialmente mediante nuestro Robot
/video/subtitle. Para combinar los dos
Steps, haz referencia tanto al
Step de subida como al de subtítulos en el 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. Como nuestro primer Step, este Step también se puede sustituir fácilmente, ya que ofrecemos muchas otras opciones de exportación.
Pruebas
Para probar nuestro Template, se nos ocurrió usar un breve fragmento de la extraordinaria serie de David Attenborough, Planet Earth.
Como puedes ver, la Assembly se completó correctamente. 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, servicio de back-end o utilidad de línea de comandos mediante 20 prácticos SDK, como Uppy o el SDK de Go, así como directamente a través de nuestra REST API JSON.
Tenemos muchas ganas de conocer lo que crearás con nosotros. ¡Cuéntanos en Twitter!