Subtítulos que siguen a la voz, palabra por palabra
· 4 min de lectura

Un subtítulo que llega un instante después de la palabra se siente mal, aunque no sepas decir por qué. En cinco días de septiembre quitamos el ritmo de los subtítulos a la estimación de un modelo y se lo dimos a lo único que de verdad sabe cuándo se dice una palabra: la grabación.
Cuando los subtítulos van tarde
Leemos más rápido de lo que habla un narrador, así que los subtítulos marcan el ritmo de un vídeo. Si la línea en pantalla va por detrás de la voz, todo el vídeo parece algo desfasado. Si cambia mientras el narrador aún termina la frase, parece un error.
Los tiempos de cada palabra venían de un modelo de lenguaje que escuchaba la pista de voz. Eso se acerca, pero falla un poco en todas partes: en un vídeo real, sus palabras llegaban 157 ms tarde y estiradas un 0,8 %. El sentido del tiempo de un modelo es una estimación. La grabación es una medida. Todo lo que sigue sale de esa idea.
La grabación marca la hora
El primer y el último instante de voz por encima del ruido de fondo se encuentran directamente en el audio. Ahora proyectamos el tramo del modelo sobre ese tramo medido, lo que corrige de una vez un retraso constante y un estiramiento. Una corrección fuera de un rango razonable se rechaza en lugar de aplicarse.
También cambiamos cuándo aparece cada subtítulo. En subtitulado, una línea puede adelantarse al audio, nunca ir detrás: una línea que llega justo con la palabra ya parece tardía. Cada subtítulo aparece ahora 120 ms antes de su primera palabra, y el resaltado sigue cayendo sobre la palabra misma.
Una voz, una pista, duraciones que suman
Una locución de PageToVid es una sola pista continua. Empieza tras la tarjeta de introducción y nunca se corta. Por eso la duración de cada escena es una promesa al vídeo entero: una escena narrada debe durar exactamente su parte de la pista, porque la voz avanza la siga la imagen o no. Las pequeñas diferencias no se compensan. Se acumulan.
Así que ahora decide el audio. Los segmentos del sintetizador suman exactamente la pista que produjo, y las duraciones de escena salen de ahí, haya funcionado o no la alineación fina. Las duraciones mínimas siguen existiendo, pero solo para escenas sin voz, donde no hay nada que seguir.
La escena cambia donde el narrador respira
Escucha a cualquier narrador: una respiración corta entre frases, una pausa más larga entre ideas. En un vídeo de 92 segundos en francés medimos pausas de 0,6 a 0,8 segundos en cada cambio de escena. Ahí es donde los subtítulos deben pasar página.
La alineación del modelo ya es solo una primera estimación. Cada inicio de escena se ajusta a una pausa real de la pista, y unas pocas reglas lo hacen fiable:
- las coincidencias seguras revelan cuánto se desvió la estimación en conjunto, y la segunda pasada elimina ese desvío;
- en un vídeo de n escenas, las n−1 pausas más largas son los cambios de escena, así que una larga pausa de párrafo gana a una respiración rápida que caiga más cerca de la estimación;
- una pequeña programación dinámica asigna los cortes a las pausas en orden, y se fía de una pausa larga desde más lejos que de una corta.
Lo que cuesta decir una palabra
Dentro de una escena, las palabras se repartían según su número de letras. Eso falla con los números: «1976» son cuatro caracteres en pantalla y muchas más sílabas en voz alta, así que todo lo que venía después se adelantaba. Un modelo de coste de habla pondera ahora cifras, siglas y signos de porcentaje y de moneda, y las palabras se colocan frase a frase dentro de cada tramo de voz real.
Lo comprobamos con una transcripción palabra por palabra independiente. En el vídeo medido, las palabras a más de medio segundo de su inicio real pasaron de 21 de 227 a 3, ninguna a más de un segundo, y el corte de escena más difícil pasó de 2,9 segundos de error a 0,02.
Resincroniza un vídeo que ya tienes
Mejorar el ritmo de los vídeos nuevos no cambia nada en los que ya descargaste. Así que añadimos un render solo de subtítulos. Relee la pista de voz del vídeo, conserva cada grabación, no graba ninguna toma nueva ni cambia ninguna palabra; vuelve a ajustar los subtítulos y renderiza. El vídeo nuevo solo se diferencia del anterior en el ritmo de sus subtítulos.
Es un botón en la página del proyecto, «Resincronizar subtítulos», bajo las opciones de descarga, y la primera resincronización tras cada render de pago es gratis. Los asistentes tienen la misma opción al volver a renderizar un vídeo. Puedes ver cómo encajan los subtítulos en un vídeo en la página de funciones.
Míralo en tu propia web
Pega una página y obtén el vídeo narrado del que habla este blog. El primero es gratis.
Sigue leyendo


