Voix
Les chemins de script sont relatifs à ce SKILL.md, et speak.py s'exécute depuis le dossier du film. Cette étape est facultative : des enregistrements ou de l'audio provenant de tout autre outil fonctionnent également. Placez-les dans audio/voice/<id de ligne>.wav, ou définissez file sur la ligne.
Parlez à la personne dans sa propre langue.
Configurer la clé (une fois)
Les coûts sont imputés au compte de la personne. Demandez-lui d'exécuter ceci dans son propre terminal :
python <dossier dula-start>/scripts/configure.py
Dans Claude Code, elle peut taper ! python <chemin>/configure.py.
Ne demandez jamais la clé dans la conversation, et ne lisez ni n'imprimez jamais ~/.dula-craft/config.env. Pour vérifier si une clé est définie, utilisez configure.py --status. Si quelqu'un colle une clé dans la conversation, dites-lui de la révoquer dans la console et d'en créer une nouvelle.
Concevoir les voix
Ajoutez voices au niveau supérieur de config/film.json :
"voices": {
"mochi": {"desc": "Un garçon d'environ huit ans, vif et animé, rythme rapide, souffle léger"},
"gran": {"desc": "Une femme de soixante-dix ans, chaleureuse et légèrement rauque, lente, diction très claire"}
}
Les lignes peuvent avoir une delivery :
{"id": "l03", "who": "mochi", "text": "V-vraiment ?", "delivery": "Surprise et ravie, un tremblement sur le premier mot, montant à la fin"}
Champs vocaux facultatifs : lang définit la langue (par défaut, la langue de la ligne) ; speaker définit un identifiant vocal officiel Volcano Engine ; reference pointe vers un audio de référence pour lequel la personne a les droits d'utilisation.
Rédigez desc et delivery en anglais, ou dans la langue des lignes. Décrivez la voix elle-même : âge, tension, souffle, rythme et poids. "Joyeux" seul ne changera pas une voix. N'écrivez pas "ressemble à un certain acteur ou personnage", et ne choisissez pas des voix qui imitent des personnages connus ou des personnes réelles. Les voix comportent également des risques de ressemblance et de droits d'auteur.
Générer
python <ce dossier>/scripts/speak.py --dry-run # Voir les invites sans rien dépenser
python <ce dossier>/scripts/speak.py
La première ligne de chaque personnage devient la référence vocale pour ses lignes suivantes, donc écoutez d'abord la première ligne. Si elle ne convient pas, modifiez desc et recommencez. Après avoir changé une première ligne, utilisez --only pour refaire les lignes suivantes de ce personnage afin qu'elles suivent la nouvelle voix.
Lorsque vous modifiez une ligne ou une voix et relancez, seul ce qui a changé est régénéré.
Ambiance et effets sonores
python <ce dossier>/scripts/speak.py --sound "Une vieille pièce tranquille, un oiseau au loin de temps en temps" --seconds 10 --out audio/sfx/room.wav
Donnez toujours --seconds. La facturation suit la durée, et sans cela un clip peut durer 30 secondes ou plus. C'est approximatif, et les très courtes demandes ont tendance à revenir plus longues. Les clips générés sont souvent silencieux, alors donnez aux sons narratifs un level_db dans film.json (voir la référence film.json).
Générez une chose à la fois. Ne demandez pas une seule invite pour le dialogue, les effets et la musique ensemble, sinon vous ne pourrez pas régler les niveaux séparément et les lèvres seront décalées.
Vérifier le résultat
- Écoutez si vous le pouvez. Si vous ne le pouvez pas, dites à la personne "cet audio n'a pas été vérifié à l'oreille".
- Ce que vous pouvez faire vous-même : vérifiez que les durées ont du sens (5 secondes pour une courte ligne est un problème). Si un outil de transcription comme Whisper est disponible, comparez son texte avec le script. Les mots très silencieux peuvent manquer, ce qui est un signe pour les refaire.
deliveryest une demande, pas un contrôle exact. Les durées de pause en particulier ne sont pas fiables, alors raccourcissez la ligne ou regénérez si le rythme est mauvais.- La même invite donne un résultat différent à chaque fois, donc regénérez en cas d'erreur.
Problèmes courants
| Symptôme | Correctif |
|---|---|
Clé rejetée, ou Audio Generation 1.0 n'est pas activé | Vérifiez que le service est activé. La clé doit provenir de la console vocale, et les clés Ark ne fonctionnent pas |
| Un mot est mal lu | Régénérez, ou reformulez la ligne |
| Les lignes ne semblent pas d'une seule personne | Assurez-vous que la première ligne est correcte, puis refaites les suivantes avec --only, ou définissez un speaker |
| La fin d'une ligne est coupée | Demandez une delivery plus lente, ou régénérez |