Communitygithub.com

babysor/MockingBird

Convertir du texte en parole avec Kokoro ou Noiz, y compris les modes simple et synchronisé temporellement.

Qu'est-ce que MockingBird ?

Cette compétence convertit du texte en fichier audio vocal, prenant en charge deux moteurs (Kokoro local et Noiz cloud) ainsi que deux modes d'utilisation (simple ou synchronisation temporelle précise). Elle permet de générer de l'audio à partir de phrases, de fichiers texte ou de sous-titres SRT, avec un contrôle fin par segment de la voix, de la langue, de la vitesse et des émotions. Utile pour la création de livres audio, le doublage vidéo, l'accessibilité ou la production de contenu, elle offre la clonage vocal et le réglage de la durée cible avec Noiz, tandis que Kokoro supporte le mélange de voix et les langues asiatiques. Les agents peuvent l'utiliser via la ligne de commande en passant des paramètres comme `-t` pour le texte, `-f` pour un fichier, `--voice-id` pour une voix spécifique ou `--ref-audio` pour le clonage. Le mode timeline découpe un SRT en segments audio synchronisés, avec une carte vocale JSON pour personnaliser chaque plage. L'outil est conçu pour les agents comme Claude Code, Cursor ou Codex, et nécessite `ffmpeg` pour le mode timeline.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/babysor/MockingBird/tree/HEAD/skills/speak

Demander à votre IA préférée

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

Documentation

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

BesoinRecommandé
Simplement lire du texte à voix haute, sans complicationKokoro (par défaut)
Livre audio EPUB/PDF avec chapitresKokoro (support natif)
Mélange de voix ("v1:60,v2:40")Kokoro
Clonage vocal à partir d'un audio de référenceNoiz
Contrôle des émotions (paramètre emo)Noiz
Durée exacte côté serveur par segmentNoiz

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

  • ffmpeg dans 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 kokoro pour utiliser le moteur local

Pour les détails du moteur et la référence complète des arguments, consultez reference.md.

Skills associés