Communitygithub.com

video-translation

Traduce y dobla videos de un idioma a otro, reemplazando el audio original con TTS mientras se conserva el video intacto.

¿Qué es video-translation?

Esta habilidad permite traducir y doblar el habla de un video a otro idioma utilizando texto a voz (TTS), reemplazando la pista de audio original y manteniendo intacto el video. Es útil para usuarios que desean ver contenido en un idioma extranjero pero prefieren escucharlo en su idioma nativo, o para cualquier situación donde se necesite cambiar el idioma del audio de un video. La habilidad es compatible con la mayoría de plataformas de video que proporcionan subtítulos (como YouTube), y funciona descargando el video y sus subtítulos con la habilidad youtube-downloader, traduciendo los subtítulos línea por línea mediante un prompt fijo, generando audio doblado sincronizado en el tiempo usando el backend Noiz del skill TTS (que soporta clonación de voz y ajuste automático de emociones), y finalmente reemplazando el audio original con el doblado conservando los sonidos de fondo no verbales. Los resultados son archivos de video listos para usar, con opciones para personalizar la voz de referencia o el idioma origen.

Compatible con✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/noizai/skills/tree/main/skills/video-translation

Preguntar en tu IA favorita

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

Documentación

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:

  1. Descargar Video y Subtítulos: Usa la habilidad youtube-downloader para 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
    
  2. Traducir Subtítulos: Lee el archivo .srt descargado. 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.

  3. Generar Audio Doblado: Usa la habilidad tts para 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.json bá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
    
  4. Reemplazar Audio en el Video: Usa el script replace_audio.sh para 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
    
  5. Presentar el Resultado: Devuelve la ruta del archivo final_video.mp4 al 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 directorio skills/youtube-downloader de crazynomad/skills dentro de tu carpeta skills/ para que skills/youtube-downloader/scripts/download_video.py esté disponible.
    • tts (NoizAI/skills) — SKILL.md
      Si aún no está en este repositorio: clona o copia el directorio skills/tts de NoizAI/skills dentro de tu carpeta skills/. Asegúrate de que skills/tts/scripts/tts.sh y los scripts relacionados estén presentes.
  • NOIZ_API_KEY configurada para el backend Noiz. Si no está configurada, primero guía al usuario para obtener una clave API desde https://developers.noiz.ai/api-keys. Después de que el usuario proporcione la clave, pregúntale si desea persistirla; si está de acuerdo, escribe/actualiza NOIZ_API_KEY=... en el archivo .env del proyecto o ejecuta bash skills/tts/scripts/tts.sh config --set-api-key TU_CLAVE para almacenarla.
  • ffmpeg instalado.

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.

Individual skills in this repo

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

Skills relacionados