¿Qué hace evo-dubbing-tts-synthesis?
Sintetiza voz en el idioma de destino a partir de texto usando Kokoro TTS, con control de velocidad/duración para ajustarse a ventanas de tiempo precisas. Maneja el análisis de archivos SRT, la extracción de texto y produce segmentos WAV.
Descripción
Esta habilidad permite generar pistas de audio sincronizadas para doblaje. Toma un archivo SRT que contiene el texto traducido y sus marcas de tiempo, extrae cada línea de diálogo y utiliza el motor Kokoro TTS para sintetizar la voz correspondiente. El factor de velocidad de la síntesis se ajusta automáticamente para que la duración del audio generado coincida con la ventana de tiempo especificada en el SRT, asegurando la sincronización labial o la duración deseada. El resultado es un conjunto de segmentos de audio WAV que pueden integrarse directamente en un proyecto de edición de video o audio.
Plataformas Compatibles
- Claude Code
- Cursor
- Codex CLI
Requisitos
- Python 3.8+
- Kokoro TTS (instalado mediante
pip install kokoro) - Acceso a un modelo de TTS compatible con Kokoro
Instalación
Clona este repositorio y ejecuta:
pip install -r requirements.txt
Uso
El skill se ejecuta mediante un comando o función que acepta un archivo SRT como entrada. Ejemplo de uso:
python synthesize.py input.srt --output-dir ./audio_segments --speed-adjust
Parámetros
input.srt: Ruta al archivo SRT con el texto traducido y las marcas de tiempo.--output-dir: Directorio donde se guardarán los segmentos WAV generados (por defecto./output).--speed-adjust: Habilita el ajuste automático de velocidad para coincidir con las marcas de tiempo.--voice: Selecciona la voz del modelo Kokoro TTS (por defectodefault).
Estructura del Proyecto
.
├── synthesize.py # Script principal de síntesis
├── srt_parser.py # Módulo para análisis de SRT
├── tts_engine.py # Módulo de interfaz con Kokoro TTS
├── requirements.txt # Dependencias del proyecto
└── README.md # Este archivo
Funcionamiento
- Análisis del archivo SRT: El skill parsea el archivo SRT y extrae cada entrada con su texto y marcas de tiempo.
- Síntesis de voz: Para cada entrada, se llama a Kokoro TTS con el texto extraído. Se utiliza una velocidad base que luego se ajusta.
- Ajuste de velocidad y duración: Si
--speed-adjustestá habilitado, la velocidad de reproducción se modifica (medianteffmpego similar) para que la duración del audio se acerque a la ventana de tiempo especificada. - Generación de segmentos WAV: Los segmentos de audio resultantes se guardan en el directorio de salida, nombrados según el índice de la entrada SRT (por ejemplo,
segment_001.wav).
Ejemplo
Entrada input.srt:
1
00:00:01,000 --> 00:00:04,000
¡Hola, mundo!
2
00:00:05,000 --> 00:00:08,500
¿Cómo estás?
Comando:
python synthesize.py input.srt --output-dir ./dubbed_audio --speed-adjust
Salida:
./dubbed_audio/segment_001.wav(duración ~3 segundos)./dubbed_audio/segment_002.wav(duración ~3.5 segundos)
Solución de Problemas
- Error de análisis SRT: Verifica que el archivo SRT tenga el formato correcto (UTF-8, sin BOM).
- TTS lento: Reduce la calidad del modelo o usa un modelo más ligero.
- Ajuste de velocidad impreciso: Ajusta los parámetros de tolerancia en el script
tts_engine.py.
Licencia
MIT