speak
Convertir n'importe quel texte en audio vocal. Prend en charge deux moteurs (Kokoro local, Noiz cloud), deux modes (simple ou synchronisation temporelle précise), et le contrôle vocal par segment.
Déclencheurs
- texte en parole / parler / dire / tts
- clonage vocal / doublage
- epub en audio / srt en audio / convertir en audio
Mode Simple — texte en audio
# Kokoro (détecté automatiquement s'il est installé)
bash skills/speak/scripts/tts.sh speak -t "Bonjour le monde" -v af_sarah -o hello.wav
bash skills/speak/scripts/tts.sh speak -f article.txt -v zf_xiaoni --lang cmn -o out.mp3 --format mp3
# Noiz (détecté automatiquement si NOIZ_API_KEY est défini, ou forcez avec --backend noiz)
# Si --voice-id est omis, le script affiche 5 voix intégrées disponibles et se termine.
# Choisissez-en une dans la sortie et réexécutez avec --voice-id <id>.
bash skills/speak/scripts/tts.sh speak -f input.txt --voice-id voice_abc --auto-emotion --emo '{"Joy":0.5}' -o out.wav
# Noiz : optionnel --duration (float, secondes, intervalle (0, 36]) pour une durée audio cible
bash skills/speak/scripts/tts.sh speak -t "Courte phrase" --voice-id voice_abc --duration 3.5 -o out.wav
# Clonage vocal (Noiz uniquement — pas besoin de voice-id, utilise un audio de référence)
# Utilisez votre propre audio de référence : chemin de fichier local ou URL (uniquement avec Noiz).
bash skills/speak/scripts/tts.sh speak -t "Bonjour" --ref-audio ./ref.wav -o clone.wav
bash skills/speak/scripts/tts.sh speak -t "Bonjour" --ref-audio https://example.com/ma_voix.wav -o clone.wav
Mode Timeline — SRT vers audio synchronisé temporellement
Pour un timing précis par segment (doublage, sous-titres, narration vidéo).
Étape 1 : Obtenir ou créer un SRT
Si l'utilisateur n'en a pas, générez-le à partir du texte :
bash skills/speak/scripts/tts.sh to-srt -i article.txt -o article.srt
bash skills/speak/scripts/tts.sh to-srt -i article.txt -o article.srt --cps 15 --gap 500
--cps = caractères par seconde (par défaut 4, bon pour le chinois ; ~15 pour l'anglais). L'agent peut également écrire un SRT manuellement.
Étape 2 : Créer une carte vocale
Fichier JSON contrôlant les paramètres vocaux par défaut + par segment. Les clés des segments prennent en charge un index simple "3" ou une plage "5-8".
Carte vocale Kokoro :
{
"default": { "voice": "zf_xiaoni", "lang": "cmn" },
"segments": {
"1": { "voice": "zm_yunxi" },
"5-8": { "voice": "af_sarah", "lang": "en-us", "speed": 0.9 }
}
}
Carte vocale Noiz (ajoute le support de emo, reference_audio). reference_audio peut être un chemin local ou une URL (audio propre à l'utilisateur ; Noiz uniquement) :
{
"default": { "voice_id": "voice_123", "target_lang": "zh" },
"segments": {
"1": { "voice_id": "voice_host", "emo": { "Joy": 0.6 } },
"2-4": { "reference_audio": "./refs/invite.wav" }
}
}
Découpage dynamique de l'audio de référence :
Si vous traduisez ou doublez une vidéo et souhaitez que chaque phrase utilise automatiquement l'audio de la vidéo originale au même timestamp exact comme référence, utilisez l'argument --ref-audio-track au lieu de définir reference_audio dans la carte :
bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json --ref-audio-track video_originale.mp4 -o output.wav
Voir examples/ pour des échantillons complets.
Étape 3 : Rendu
bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json -o output.wav
bash skills/speak/scripts/tts.sh render --srt input.srt --voice-map vm.json --backend noiz --auto-emotion -o output.wav
Quand choisir quoi
| Besoin | Recommandé |
|---|---|
| Simplement lire du texte à voix haute, sans complication | Kokoro (par défaut) |
| Livre audio EPUB/PDF avec chapitres | Kokoro (support natif) |
Mélange de voix ("v1:60,v2:40") | Kokoro |
| Clonage vocal à partir d'un audio de référence | Noiz |
Contrôle des émotions (paramètre emo) | Noiz |
| Durée exacte côté serveur par segment | Noiz |
Lorsque l'utilisateur a besoin du contrôle des émotions + du clonage vocal + d'une durée précise ensemble, Noiz est le seul moteur qui prend en charge les trois.
Prérequis
ffmpegdans le PATH (mode timeline)- Noiz : obtenez votre clé API sur developers.noiz.ai, puis exécutez
bash skills/speak/scripts/tts.sh config --set-api-key VOTRE_CLE - Kokoro : s'il est déjà installé, passez
--backend kokoropour utiliser le moteur local
Pour les détails du moteur et la référence complète des arguments, consultez reference.md.