name: sous-titres-voix-off description: Film → voix-off en birman : transcription diarisée, assignation vocale mesurée, sous-titres prêts pour le montage et piste sans musique. Inclut un packager de compétences.
Doublage de film birman — Compétences Agent
Deux Compétences Agent pour construire un doublage (voix-off) birman à partir d'un film, et pour créer des compétences similaires.
| Dossier | Description |
|---|---|
sous-titres-voix-off/ | La compétence : transforme un fichier vidéo ou audio en une voix-off birmane avec détection des locuteurs, un accroche d'ouverture rédigée par l'agent, une paire de sous-titres prête pour le montage et un nettoyage automatique. |
forge-compétences/ | L'outillage : crée, valide et empaquette des compétences SKILL.md — et maintient les deux compétences de ce dépôt conformes aux spécifications. |
Que fait sous-titres-voix-off ?
Le pipeline est entièrement scripté en Python. L'agent ne fait qu'un seul travail : traduire le SRT avec étiquettes de locuteurs en birman — plus une ligne optionnelle, l'accroche d'ouverture. Rien d'autre dans le pipeline ne demande au modèle d'agir.
movie.mp4 ──transcription.py──▶ transcript.json ──srt_depuis_transcript.py──▶ movie.en.srt
└─ detection_voix.py mesure la hauteur de chaque locuteur ──▶ voix.detectees.yaml (pas de mappage manuel)
└── AGENT remplit traduction.my.json (+ accroche.texte) ──appliquer_traduction.py──▶ movie.my.srt
└── generer_voix_off.py ──▶ voix-off.mp3 (piste longueur film, sans musique)
└── vérifications, transfert FCPXML/EDL, nettoyage.py
Installez-la en copiant le dossier dans le répertoire des compétences de votre agent, ou en décompressant l'archive empaquetée :
cp -r sous-titres-voix-off ~/.claude/skills/ # depuis un clone
unzip sous-titres-voix-off/packages/sous-titres-voix-off.skill -d ~/.claude/skills/
Prérequis : python3 -m pip install --user edge-tts pyyaml, ffmpeg + ffprobe, et une clé AssemblyAI dans sous-titres-voix-off/.env (ASSEMBLYAI_API_KEY=..., ignoré par git).
Une commande pour tout un film :
python3 scripts/lancer_pipeline.py night-shift.mp4 --work-dir travail --config voix-off.config.yaml \
--language en --intervenants-prevus 2 --accroche --etapes python
# l'agent remplit travail/traduction.my.json (texte de chaque réplique, plus accroche.texte)
python3 scripts/lancer_pipeline.py --work-dir travail --config voix-off.config.yaml --etapes post
Ce qui est produit : voix-off.mp3 (la piste voix-off, démarrant à 00:00:00, prolongée jusqu'à la durée du film, sans musique), movie.my.srt (étiquettes de locuteurs) et movie.my.subs.srt (piste de sous-titres simple), voiceover.fcpxml / .edl / .cue-list.csv, des rapports de qualité JSON — et un répertoire travail/ avec les fichiers de travail nettoyés. Le monteur pose sa propre bande-son sous la piste ; les sous-titres se placent directement sur une piste de sous-titres dans Premiere Pro, DaVinci Resolve ou Final Cut Pro.
Points forts :
- Assignation vocale automatique. La hauteur de chaque locuteur est mesurée à partir de l'audio du film lui-même (autocorrélation, avec un repli en Python pur) — les personnages féminins reçoivent
my-MM-NilarNeural, les personnages masculinsmy-MM-ThihaNeural. Rien n'est mappé manuellement ; la configuration peut néanmoins fixer un locuteur. - Les horodatages appartiennent aux scripts. La traduction ne voit jamais de code temporel modifiable ; la fusion rattache les horodatages d'origine et signale toute modification qu'elle a dû écarter.
- Accroche d'ouverture. Les 5 à 10 premières secondes peuvent être remplacées par une ligne unique rédigée par l'agent dans la propre voix du film, indétectable à côté du dialogue original, avec un exemple concret dans
references/guide-accroche.md. - Rien n'est généré pendant une exécution. Chaque étape est un script prédéfini acceptant des indicateurs ; la compétence embarque sa propre suite de tests, un film factice et deux exemples d'exécution complets dans
film-demo/.
Consultez sous-titres-voix-off/README.md pour la procédure complète et SKILL.md pour ce que l'agent lit.
forge-compétences
Crée la structure d'un dossier de compétence, vérifie SKILL.md par rapport au format ouvert (règles nom/description, divulgation progressive, références de fichiers inclus, budget de lignes), et empaquette une compétence dans une archive .skill distribuable sans fuite de secrets.
python3 forge-compétences/scripts/valider_competence.py sous-titres-voix-off --strict
python3 forge-compétences/scripts/empaqueter_competence.py sous-titres-voix-off --out sous-titres-voix-off/packages
Tests
bash forge-compétences/tests/lancer_tests.sh # suite validateur/empaqueteur (hors ligne, <1 s)
cd sous-titres-voix-off && bash tests/lancer_tests.sh # tests de fumée du pipeline (appels réels à edge-tts)
Les deux suites sont intégrées à CI (ci/github-actions-ci.yml — déplacez-le vers .github/workflows/ci.yml pour l'activer, voir l'en-tête de ce fichier) ; la suite du pipeline n'utilise pas de clé AssemblyAI — elle pilote les vrais scripts avec un transcript factice.
Structure du dépôt
sous-titres-voix-off/ la compétence (scripts/, references/, assets/, tests/, demo/, film-demo/, packages/)
forge-compétences/ outillage de validation et d'empaquetage (scripts/, references/, assets/, tests/, packages/)
ci/github-actions-ci.yml définition CI (déplacer vers .github/workflows/ci.yml pour activer)
Licence
MIT — voir LICENSE.