AI 口播配音 · Doublage vocal avec edge-tts
Synthèse phrase par phrase → Suppression du silence → WAV 48 kHz → durations.json. Les sous-titres et la durée des plans sont alignés sur la durée réelle de la voix off, fini les décalages son/image.
Fait partie de ecommerce-video-skills · Script :
scripts/tts_edge.py(dépend uniquement deedge-tts+ ffmpeg)
Entrées Inputs
- Script de doublage (une phrase par ligne, ou champ
lined’unstoryboard.json) - Langue / préférence de voix (homme/femme, dynamique/calme), débit
- Environnement :
pip install edge-tts, ffmpeg, accès réseau au service TTS Microsoft
Étapes Steps
-
Réécrire le script pour qu’il soit « facile à lire » (voir règles), chaque phrase 8–20 mots.
-
Choisir une voix (
python scripts/tts_edge.py --list zh-CNpour toutes les voix) :Scénario Voix recommandée Dynamique « coup de cœur » (homme) zh-CN-YunxiNeuralDynamique « coup de cœur » (femme) zh-CN-XiaoxiaoNeural/zh-CN-XiaoyiNeuralPromotion passionnée zh-CN-YunjianNeuralExplication professionnelle zh-CN-YunyangNeuralTaïwan / Hong Kong zh-TW-HsiaoChenNeural/zh-HK-HiuMaanNeuralEnglish en-US-AndrewNeural·en-US-AvaNeural·en-US-EmmaNeural -
Synthétiser :
pip install edge-tts # Essai d’une phrase python scripts/tts_edge.py "夏天带冰水出门,不到中午就变温了?" --voice zh-CN-YunxiNeural --rate "+10%" -o out/hook.wav # Storyboard complet (une phrase par plan → build/tts/l00.wav … + durations.json) python scripts/tts_edge.py --storyboard storyboard.json --outdir build/tts -
Écouter 2 phrases avant de lancer le batch : un débit de
+5%à+15%est idéal pour un ton vendeur ; au-delà de+20%, le rendu semble précipité. -
Confier à
ffmpeg-auto-assemble(qui appelle ce script automatiquement) ou à votre logiciel de montage.
Règles de réécriture du script Script rules
- Les chiffres s’écrivent comme on les prononce :
2核8G→两核八G;24h→二十四小时; les lettres de modèles sont espacéesA I. Les sous-titres peuvent garder l’écriture originale (champsub). - Une phrase = une seule idée ; la virgule marque un souffle, la phrase se termine par un point ou un point d’interrogation pour donner une intonation naturelle.
- Supprimer les termes trop écrits : « Ce produit possède… » → « Cette tasse… ».
- Si un nom de marque en anglais est mal prononcé, écrire la prononciation phonétique ou une approximation dans
line, et conserver l’orthographe correcte danssub.
Modèle de prompt Prompt template
Réécris le texte promotionnel ci-dessous en un script adapté à la synthèse vocale : chaque phrase 8–20 mots, une idée par phrase, style parlé ;
les chiffres et lettres sont écrits comme prononcés ; fournis également une colonne « sous-titres » avec l’écriture originale et **un mot-clé en gras**.
N’ajoute pas d’arguments ou de données absents de l’original. Texte : {…}
Liste de vérification Checklist
- Écouter 2 phrases pour confirmer voix/débit
- Les chiffres, lettres, noms de marque sont correctement prononcés
-
durations.jsongénéré, durée totale correspond à l’objectif - Avant usage commercial, vérifier les obligations locales concernant le marquage des voix IA (ex. « Généré par IA »)
Problèmes fréquents et correctifs Failure fixes
| Problème | Correctif |
|---|---|
edge-tts failed / timeout | Problème réseau, le script réessaie 3 fois ; changer de réseau ou réessayer plus tard ; hors ligne, utiliser assemble.py --tts none pour prévisualiser les images |
| Erreur de prononciation | Écrire la prononciation phonétique dans line, garder l’original dans sub |
| Pause trop longue entre phrases | Le silence au début/fin est déjà supprimé ; ajuster le pad du storyboard (défaut 0,25s) |
| Voix trop plate | Changer pour YunjianNeural/XiaoyiNeural ; --pitch "+5Hz" ; terminer les phrases par ? ou ! |
| Besoin d’une voix plus naturelle | edge-tts reste synthétique ; pour des besoins exigeants, utiliser un enregistrement humain – le pipeline fonctionne aussi en plaçant les fichiers dans build/tts/lXX.wav |
edge-tts est maintenu par la communauté (rany2/edge-tts, LGPL-3.0), il utilise le service en ligne Microsoft ; ce dépôt ne fait que l’installer comme dépendance, sans inclure son code.