A nuestro Motor de películas le faltaba una pieza: la sincronización labial automática. La hemos resuelto con una skill de Claude que dobla un clip con voces de ElevenLabs V4 y las encaja sílaba a sílaba con los labios del personaje.
El vídeo de arriba muestra las primeras escenas del capítulo 3 de Hiro y Yumi (V2), dobladas de principio a fin con este método.
El problema de las voces de Omni 1.1 Flash
Omni 1.1 Flash, en Google Flow, genera voces poco creíbles en español: suenan con acento inglés, entre otros defectos.
El arreglo pasa por ElevenLabs. Generas las voces a partir del texto con Eleven V4 y sustituyes las de Omni. Hacerlo a mano funciona (lo conté en Sincronización labial en un clip de Google Flow (Omni 1.1 Flash)), pero en un vídeo largo cansa repetir el proceso clip a clip. El atajo de Voice Changer, dentro de ElevenLabs, tampoco sirve: no usa Eleven V4 y deja acento inglés en el español.
Sincronización labial automática con la skill Voice-Sync
La skill Voice-Sync sustituye la voz de un clip de vídeo (Omni, Kling…) por una o varias tomas de ElevenLabs V4 con las mismas frases y las alinea sílaba a sílaba con los labios. Trabaja de dos maneras:
- Con audios: le pasas el clip y las tomas de V4 que ya tienes.
- Sin audios: le pasas solo el clip. Claude entra en ElevenLabs a través del conector MCP, genera las voces de los diálogos o de la narración y monta el doblaje.
El segundo modo marca la diferencia. Descargas el clip de Google Flow, se lo das a Claude y recibes el clip doblado, listo para descargar, sin abrir un editor de vídeo.
Detalles técnicos de la skill «Voice-Sync»
Por dentro, la skill encadena seis pasos:
- Detecta en el clip los tramos donde habla la voz original y los ajusta al número de tomas: une los tramos separados por pausas cortas o afina la detección si faltan.
- Distingue dos tramos por frase. El tramo de alineación contiene solo la frase hablada. El tramo silenciado suma alrededor las colas susurradas, aspiraciones y respiraciones de Omni (hasta 0,4 s por lado). Así evita que una sílaba susurrada de Omni asome detrás de la voz nueva, y la voz nueva termina donde terminaba la de Omni.
- Recorta cada toma de V4 a la frase hablada, sin respiraciones ni colas de ruido al final.
- Alinea cada toma con su tramo por la huella acústica (MFCC + DTW) y la deforma con WSOLA sin cambiar el tono, para que cada sílaba caiga donde se mueven los labios. Dentro de la voz limita el estiramiento a ×1,6. En las pausas de la voz original lo deja libre, para que una pausa larga de Omni no adelante la frase siguiente, y silencia las pausas muy estiradas para que no aparezca un zumbido.
- Silencia los tramos silenciados y los rellena con tono de sala: un ruido continuo sintetizado con el timbre y el volumen del fondo del clip. Lo calcula a partir de las partes tranquilas (percentil bajo por banda, para descartar golpes y voces). Como no copia trozos del clip, no reaparecen golpes, vajilla ni restos de voz.
- Mezcla cada toma al mismo volumen que tenía la voz original y devuelve un único MP4 con el vídeo intacto (copia directa), todas las frases cambiadas y el audio en AAC a 256 kbps.
Con esta skill, la sincronización labial entra en el flujo del Motor de películas: generas el clip en Google Flow y Claude lo dobla y lo deja listo para el montaje. La skill del Motor de películas, con su última actualización, es capaz de ejecutar Voice-Sync para conectarse a ElevenLabs, mediante el conector MCP correspondiente, y generar automáticamente los audios de cada clip (si es que el usuario no los proporciona manualmente). Además, realiza el montaje entre el clip (adjuntado por el usuario) y los archivos de voz de ElevenLabs, de manera que se sincronicen a la perfección.
Imagen destacada: generada con IA (ChatGPT).
