Subtítulos estilo redes sociales con la palabra hablada resaltada
La mayoría de los videos cortos en redes sociales se ven sin sonido, así que los subtítulos cuentan la historia. Los subtítulos simples, con texto fino y una frase completa en la parte inferior del encuadre, se pasan por alto fácilmente al desplazarse. Los subtítulos que retienen la atención se ven distintos: pocas palabras a la vez, grandes y en negrita, y la palabra que se está pronunciando se ilumina.
Hasta ahora necesitabas un editor de video o una herramienta de subtitulado aparte para lograr ese aspecto. Ahora lo hace un solo comando: sube un video y recíbelo de vuelta con esos subtítulos incrustados.
Kevin, cofundador de Transloadit, en un video subtitulado con el comando de abajo y servido desde Transloadit Storage. Reprodúcelo con sonido para comparar.
Un solo comando
npx -y @transloadit/node assemblies create \
--template builtin/caption-video@0.0.2 \
--field style=social \
--field vocabulary=Transloadit \
-i video.mp4 -o out/
builtin/caption-video es un Template listo para usar: transcribe el video con
🤖 /speech/transcribe e incrusta los subtítulos con
🤖 /video/subtitle. Además del video subtitulado, out/ recibe la
transcripción en JSON, con una marca de tiempo para cada palabra, y en SRT, para que también puedas
ofrecer subtítulos que tus espectadores puedan desactivar.
Si omites --field style=social, obtienes subtítulos simples en su lugar:

Escribe bien tu marca
El reconocimiento de voz conoce las palabras comunes, no los nombres de tus productos. Sin ayuda, el
clip de arriba salió como «co-founder of Transloaded». --field vocabulary=Transloadit le indica a la
transcripción las palabras a las que debe prestar atención. Separa varios términos con comas, como
en vocabulary=Transloadit,Uppy,tus. Cada coincidencia completa, sin distinguir entre mayúsculas y
minúsculas, también se devuelve con la ortografía que indicaste, así que «transloadit» se convierte
en «Transloadit».
Las sugerencias de vocabulario funcionan con el proveedor predeterminado y con "provider": "gcp". AWS solo
admite vocabularios preparados de antemano, así que la combinación con "provider": "aws" devuelve un
error claro en lugar de ignorar tus palabras sin avisar.
Qué hace el estilo de redes sociales
- Pocas palabras a la vez. Normalmente, los subtítulos contienen hasta tres palabras. Las frases cortas pueden mantenerse juntas, y una palabra final de oración puede unirse al subtítulo anterior, con un máximo de una palabra adicional. Un subtítulo termina antes al final de una oración o en una pausa de más de 0,4 segundos, así que los subtítulos siguen el ritmo del habla y no los segmentos del proveedor de transcripción. Una palabra final en inglés como «by» o «to» pasa al subtítulo siguiente cuando es posible: obtienes «YOU’RE FREAKED OUT» y luego «BY MY ROBOT», no un subtítulo que termina en «by».
- La palabra hablada se ilumina. La palabra activa se vuelve amarilla y permanece resaltada durante las pausas cortas hasta que empieza la siguiente. Las demás palabras se quedan donde están, así que la línea no salta mientras la lees.
- Legible sobre cualquier fondo. Poppins ExtraBold en mayúsculas en el tercio inferior, con un contorno grueso y una sombra suave.
- Se adapta a video vertical, cuadrado y horizontal. Con el tamaño automático predeterminado,
los subtítulos en JSON se reducen o pasan a una segunda línea para caber en el encuadre, sin
partir ninguna palabra. Si estableces
font_size, se desactiva este ajuste automático. - Un breve efecto pop. Cada subtítulo crece del 85 % al tamaño completo en 120 milisegundos al aparecer.

Hazlo tuyo
El Template admite estos campos:
highlight_colordefine el color de la palabra activa (valor predeterminado:FFD60A).font_color,font_size,border_colorypositionfuncionan igual que con los subtítulos simples.provider,source_language,target_languageyvocabularycontrolan la transcripción.
El proveedor predeterminado detecta automáticamente el idioma hablado. Usa target_language como
indicación opcional del idioma hablado, por ejemplo german. Para AWS y GCP, usa source_language en
su lugar, con un código de idioma como de-DE. Ninguno de los dos campos traduce el habla.
Intégralo en tu propio Template
Para añadir subtítulos a tu propio Template, encadena estos dos Steps en un pipeline existente, por ejemplo después de una subida desde Uppy o antes de codificar a HLS:
{
"steps": {
":original": {
"robot": "/upload/handle"
},
"transcribed": {
"use": ":original",
"robot": "/speech/transcribe",
"format": "json",
"vocabulary": ["Transloadit"]
},
"captioned": {
"robot": "/video/subtitle",
"use": {
"steps": [
{ "name": ":original", "as": "video" },
{ "name": "transcribed", "as": "subtitles" }
]
},
"subtitles_type": "burned",
"style": "social",
"preset": "empty",
"ffmpeg_stack": "v7",
"result": true
}
}
}
/video/subtitle acepta como subtítulos el JSON con marcas de tiempo de /speech/transcribe. El
resaltado de palabras, la agrupación y las mayúsculas necesitan ese JSON. Los subtítulos SRT y VTT
también adoptan la fuente y el tamaño del estilo de redes sociales, pero conservan sus propias líneas
y tiempos. Los archivos ASS conservan sus propios estilos. Con
max_words_per_caption defines el número máximo orientativo de palabras que muestra un subtítulo, con los
ajustes de agrupación del estilo de redes sociales descritos arriba. "preset": "empty" conserva el
contenedor de la entrada, así que un MP4 se devuelve como MP4.
Primeros pasos
Ejecuta el comando de arriba con tu propio video o prueba los Steps en el Template Editor. La documentación de 🤖 /video/subtitle enumera todos los parámetros.
