acambronero
acambronero
@acambronero@blogpocket.es

Este es el blog federado de Antonio Cambronero, fundador, autor y CEO de Blogpocket. Informático, blogger y profesor, con más de 20 años de experiencia en departamentos de soporte técnico informático, análisis de sistemas, productividad, optimización de procesos, atención al cliente y formación, en empresas multinacionales.

212 publicaciones
56 seguidores

Sincronización labial con una skill de Claude

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:

  1. 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.
  2. 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.
  3. Recorta cada toma de V4 a la frase hablada, sin respiraciones ni colas de ruido al final.
  4. 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.
  5. 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.
  6. 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).