Traducción de Video
Traduce el habla de un video a otro idioma, usando TTS para generar el audio doblado y reemplazando la pista de audio original.
Disparadores
- traduce este video
- dobla este video a español
- 把视频从 X 语译成 Y 语
- 视频翻译
Casos de Uso
- El usuario quiere ver un video de YouTube en un idioma extranjero pero prefiere escucharlo en su idioma nativo.
- El usuario proporciona un enlace de video y solicita explícitamente cambiar el idioma del audio.
Flujo de Trabajo
Cuando el usuario solicita traducir un video:
-
Descargar Video y Subtítulos: Usa la habilidad
youtube-downloaderpara descargar el video y sus subtítulos como SRT. Asegúrate de especificar el idioma origen para obtener el subtítulo correcto.python path/to/youtube-downloader/scripts/download_video.py "VIDEO_URL" --subtitles --sub-lang <codigo_idioma_origen> -o /tmp/video-translation -
Traducir Subtítulos: Lee el archivo
.srtdescargado. Traduce su contenido oración por oración al idioma destino usando el siguiente prompt fijo. ¡Mantén exactamente el mismo índice SRT y formato de marca de tiempo!Prompt de Traducción:
Traduce el siguiente texto de subtítulo de a . Proporciona SOLO el texto traducido. No expliques, no añadas notas, no añadas números de índice. La traducción debe ser coloquial, de sonido natural y adecuada para doblaje de video.
Guarda el texto traducido en un nuevo archivo
translated.srt. -
Generar Audio Doblado: Usa la habilidad
ttspara generar el audio sincronizado en el tiempo a partir del SRT traducido. El backend Noiz ajusta automáticamente la duración de cada oración a las marcas de tiempo originales del video.Para asegurar que la voz clonada coincida con el tono y emoción exactos del hablante original para cada oración, pasa el archivo de video original a
--ref-audio-track. El motor TTS cortará automáticamente el audio original en la marca de tiempo exacta de cada subtítulo y lo usará como referencia para ese segmento específico.Crea un
voice_map.jsonbásico:{ "default": { "target_lang": "<codigo_idioma_destino>" } }Genera el audio sincronizado:
bash skills/tts/scripts/tts.sh render --srt translated.srt --voice-map voice_map.json --backend noiz --auto-emotion --ref-audio-track original_video.mp4 -o dubbed.wav -
Reemplazar Audio en el Video: Usa el script
replace_audio.shpara combinar el video original con el nuevo audio doblado. Para conservar el fondo de audio no verbal del video original fuera de los segmentos traducidos, pasa el archivo--srt.bash skills/video-translation/scripts/replace_audio.sh --video original_video.mp4 --audio dubbed.wav --output final_video.mp4 --srt translated.srt -
Presentar el Resultado: Devuelve la ruta del archivo
final_video.mp4al usuario.
Entradas
- Entradas requeridas:
VIDEO_URL: La URL del video a traducir.target_language: El idioma al que traducir el audio.
- Entradas opcionales:
source_language: El idioma del video original (si no se detecta automáticamente o se especifica).reference_audio: Archivo/URL de audio específico para usar en la clonación de voz en lugar de la pista de video original dinámica.
Salidas
- Éxito: Ruta al archivo de video final con el audio reemplazado.
- Fracaso: Mensaje de error claro especificando si falló la descarga, TTS o reemplazo de audio.
Requisitos
- Dependencias (otras habilidades)
- youtube-downloader (crazynomad/skills) — SKILL.md
Instalación: clona o copia el directorioskills/youtube-downloaderde crazynomad/skills dentro de tu carpetaskills/para queskills/youtube-downloader/scripts/download_video.pyesté disponible. - tts (NoizAI/skills) — SKILL.md
Si aún no está en este repositorio: clona o copia el directorioskills/ttsde NoizAI/skills dentro de tu carpetaskills/. Asegúrate de queskills/tts/scripts/tts.shy los scripts relacionados estén presentes.
- youtube-downloader (crazynomad/skills) — SKILL.md
NOIZ_API_KEYconfigurada para el backend Noiz. Si no está configurada, primero guía al usuario para obtener una clave API desdehttps://developers.noiz.ai/api-keys. Después de que el usuario proporcione la clave, pregúntale si desea persistirla; si está de acuerdo, escribe/actualizaNOIZ_API_KEY=...en el archivo.envdel proyecto o ejecutabash skills/tts/scripts/tts.sh config --set-api-key TU_CLAVEpara almacenarla.ffmpeginstalado.
Limitaciones
- El video origen debe tener subtítulos (o subtítulos generados automáticamente) disponibles en la plataforma para el idioma origen.
- Videos muy largos pueden tardar un tiempo significativo en traducirse y doblarse.