Communitygithub.com

transcription-vidéo

Traduisez et doublez des vidéos d'une langue à une autre, en remplaçant l'audio original par une synthèse vocale tout en conservant la vidéo intacte.

Qu'est-ce que transcription-vidéo ?

Cette compétence offre une traduction et un doublage automatisés de vidéos. Elle télécharge une vidéo ainsi que ses sous-titres dans la langue source, traduit les sous-titres phrase par phrase vers la langue cible en utilisant un prompt fixe, génère un fichier audio doublé avec le moteur de TTS Noiz (qui aligne automatiquement la durée de chaque phrase sur les timings des sous-titres originaux et utilise la piste audio source comme référence pour le clonage vocal), puis remplace la piste audio originale par le nouveau fichier audio doublé, tout en conservant les sons ambiants non vocaux via le fichier SRT. La compétence est utile pour regarder des vidéos YouTube en langues étrangères dans sa langue maternelle, et nécessite la présence des compétences `youtube-downloader` et `tts`, ainsi que `NOIZ_API_KEY` et `ffmpeg`.

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

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Transcription vidéo

Traduire le discours d'une vidéo dans une autre langue, en utilisant la TTS pour générer l'audio doublé et en remplaçant la piste audio originale.

Déclencheurs

  • traduis cette vidéo
  • double cette vidéo en français
  • 把视频从 X 语译成 Y 语
  • 视频翻译

Cas d'utilisation

  • L'utilisateur souhaite regarder une vidéo YouTube en langue étrangère mais préfère l'entendre dans sa langue maternelle.
  • L'utilisateur fournit un lien vidéo et demande explicitement de changer la langue audio.

Workflow

Lorsque l'utilisateur demande de traduire une vidéo :

  1. Télécharger la vidéo et les sous-titres : Utilisez la compétence youtube-downloader pour télécharger la vidéo et ses sous-titres au format SRT. Assurez-vous de spécifier la langue source pour récupérer les sous-titres corrects.

    python path/to/youtube-downloader/scripts/download_video.py "URL_VIDEO" --subtitles --sub-lang <code_langue_source> -o /tmp/video-translation
    
  2. Traduire les sous-titres : Lisez le fichier .srt téléchargé. Traduisez son contenu phrase par phrase dans la langue cible en utilisant le prompt fixe suivant. Conservez exactement le même format de numéros d'index et d'horodatages SRT !

    Prompt de traduction :

    Traduisez le texte des sous-titres suivant de vers . Fournissez UNIQUEMENT le texte traduit. N'expliquez pas, n'ajoutez pas de notes, n'ajoutez pas de numéros d'index. La traduction doit être familière, naturelle et adaptée au doublage vidéo.

    Enregistrez le texte traduit dans un nouveau fichier translated.srt.

  3. Générer l'audio doublé : Utilisez la compétence tts pour générer l'audio synchronisé avec les sous-titres traduits. Le backend Noiz aligne automatiquement la durée de chaque phrase sur les horodatages des sous-titres originaux.

    Pour garantir que la voix clonée corresponde exactement au ton et à l'émotion du locuteur original pour chaque phrase, passez le fichier vidéo original à --ref-audio-track. Le moteur TTS découpera automatiquement l'audio original aux horodatages exacts de chaque sous-titre et l'utilisera comme référence pour ce segment spécifique.

    Créez un fichier voice_map.json basique :

    {
      "default": {
        "target_lang": "<code_langue_cible>"
      }
    }
    

    Générez l'audio synchronisé :

    bash skills/tts/scripts/tts.sh render --srt translated.srt --voice-map voice_map.json --backend noiz --auto-emotion --ref-audio-track video_originale.mp4 -o dubbed.wav
    
  4. Remplacer l'audio dans la vidéo : Utilisez le script replace_audio.sh pour fusionner la vidéo originale avec le nouvel audio doublé. Pour conserver les bruits de fond non vocaux de la vidéo originale en dehors des segments traduits, passez le fichier --srt.

    bash skills/video-translation/scripts/replace_audio.sh --video video_originale.mp4 --audio dubbed.wav --output video_finale.mp4 --srt translated.srt
    
  5. Présenter le résultat : Retournez le chemin du fichier video_finale.mp4 à l'utilisateur.

Entrées

  • Entrées requises :
    • VIDEO_URL : L'URL de la vidéo à traduire.
    • target_language : La langue vers laquelle traduire l'audio.
  • Entrées optionnelles :
    • source_language : La langue de la vidéo originale (si non détectée automatiquement ou spécifiée).
    • reference_audio : Fichier/URL audio spécifique à utiliser pour le clonage vocal à la place de la piste vidéo originale dynamique.

Sorties

  • Succès : Chemin vers le fichier vidéo final avec l'audio remplacé.
  • Échec : Message d'erreur clair précisant si le téléchargement, la TTS ou le remplacement audio a échoué.

Prérequis

  • Dépendances (autres compétences)
    • youtube-downloader (crazynomad/skills) — SKILL.md
      Installation : clonez ou copiez le répertoire skills/youtube-downloader depuis crazynomad/skills dans votre dossier skills/ afin que skills/youtube-downloader/scripts/download_video.py soit disponible.
    • tts (NoizAI/skills) — SKILL.md
      S'il n'est pas déjà dans ce dépôt : clonez ou copiez le répertoire skills/tts depuis NoizAI/skills dans votre dossier skills/. Assurez-vous que skills/tts/scripts/tts.sh et les scripts associés sont présents.
  • NOIZ_API_KEY configurée pour le backend Noiz. Si elle n'est pas définie, guidez d'abord l'utilisateur pour obtenir une clé API depuis https://developers.noiz.ai/api-keys. Une fois que l'utilisateur fournit la clé, demandez-lui s'il souhaite la conserver ; si oui, écrivez/mettez à jour NOIZ_API_KEY=... dans le fichier .env du projet ou exécutez bash skills/tts/scripts/tts.sh config --set-api-key VOTRE_CLE pour la stocker.
  • ffmpeg installé.

Limitations

  • La vidéo source doit avoir des sous-titres (ou sous-titres générés automatiquement) disponibles sur la plateforme pour la langue source.
  • Les vidéos très longues peuvent prendre un temps considérable pour être traduites et doublées.

Individual skills in this repo

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

Skills associés