Communitygithub.com

OpenLAIR/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 análisis de SRT, extracción de texto y produce segmentos WAV.

¿Qué es evo-dubbing-tts-synthesis?

Este skill, OpenLAIR/evo-dubbing-tts-synthesis, está diseñado para la síntesis de voz en procesos de doblaje, utilizando el motor de texto a voz (TTS) Kokoro. Su función principal es generar segmentos de audio en formato WAV a partir de texto traducido, con un control preciso de la velocidad y duración para sincronizarlos exactamente con las ventanas de tiempo de un archivo SRT. Esto lo hace ideal para aplicaciones de doblaje automático o asistido, donde es crucial que el audio generado coincida con la duración de los diálogos originales. El skill automatiza la extracción del texto de los archivos SRT, la síntesis de voz con Kokoro TTS, y la aplicación de ajustes de velocidad para cumplir con las marcas de tiempo, todo dentro de un flujo de trabajo coherente. Es útil para desarrolladores y usuarios de agentes de IA que trabajan en localización de contenido audiovisual, ofreciendo una solución eficiente y controlable para la postproducción de doblaje.

Compatible con~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/OpenLAIR/OpenSkill/tree/main/tasks-evolved/multilingual-video-dubbing/environment/skills/evo-dubbing-tts-synthesis

Preguntar en tu IA favorita

Abre un nuevo chat con esta habilidad de agente ya precargada.

Documentación

¿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 defecto default).

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

  1. Análisis del archivo SRT: El skill parsea el archivo SRT y extrae cada entrada con su texto y marcas de tiempo.
  2. 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.
  3. Ajuste de velocidad y duración: Si --speed-adjust está habilitado, la velocidad de reproducción se modifica (mediante ffmpeg o similar) para que la duración del audio se acerque a la ventana de tiempo especificada.
  4. 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

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

Skills relacionados