Voix et audio
Texte vers parole, podcasts et sélection de voix — ListenHub et ElevenLabs.
Transformez du texte en audio parlé : narration à une voix, ou podcast à deux voix. Deux fournisseurs, chacun avec ses points forts.
Ce que vous pouvez faire
- Racontez un texte avec une seule voix (text-to-speech) — voix chinoises via ListenHub, ou 29 langues avec un contrôle fin via ElevenLabs.
- Produisez un podcast à deux voix — ListenHub génère le script + l'audio avec un ou deux speakers (exclusif à ListenHub).
- Choisissez dans une bibliothèque de voix — parcourez les voix/speakers disponibles et choisissez selon la langue, le genre et le style.
- Contrôlez le rendu (ElevenLabs) — émotion, rythme et pauses via les voice settings et des balises intégrées.
Choisir un fournisseur
ListenHub (listenhub_*) | ElevenLabs (elevenlabs_*) | |
|---|---|---|
| Meilleur pour | Voix chinoises, podcasts multi-voix | 29 langues, expressivité à voix unique |
| Speakers par clip | 1–2 (podcast) | 1 |
| Contrôle fin de la voix | — | stability / similarité / style / vitesse |
| Émotion et pauses | — | <break> + balises comme [laughs] (avec eleven_v3) |
En résumé : chinois, ou podcast multi-voix → ListenHub. Anglais/autres langues, ou besoin de contrôle sur l'émotion, le rythme et les pauses → ElevenLabs.
Outils ListenHub
| Outil | Ce qu'il fait | Entrées clés |
|---|---|---|
listenhub_get_speakers | Liste les speakers disponibles (avec aperçus) | language (zh par défaut / en) |
listenhub_create_flowspeech | Texte ou URL → narration à une voix | sourceType (text/url), sourceContent, speakerId, mode (smart/direct) |
listenhub_create_podcast | Texte ou URL → podcast à 1–2 voix (script + audio) | query ou sources, speakers (1–2), mode (quick/deep/debate) |
listenhub_create_podcast_text_only | Génère uniquement le script — à relire avant l'audio | identique, plus language |
listenhub_generate_podcast_audio | Transforme un script (édité) en audio | episodeId, customScripts (modifications optionnelles) |
listenhub_get_podcast_status / listenhub_get_flowspeech_status | Vérifie le statut d'une tâche | episodeId |
listenhub_get_user_subscription | Vérifie votre quota | — |
Les outils create_* retournent l'audio terminé — ils attendent la fin de la génération, donc vous n'avez pas besoin d'interroger. N'utilisez les outils *_status que pour revérifier après une exception, ou pour consulter un épisode antérieur.
Pour speakerId, vous pouvez transmettre directement le nom du speaker (issu de listenhub_get_speakers) — il est résolu pour vous.
Outils ElevenLabs
| Outil | Ce qu'il fait | Entrées clés |
|---|---|---|
elevenlabs_search_voices | Parcourt les voix disponibles | — |
elevenlabs_text_to_speech | Texte → parole dans une voix choisie | text, voice_id, model_id, voice_settings, output_format |
elevenlabs_list_models | Liste les modèles TTS | — |
elevenlabs_check_subscription | Vérifie votre quota | — |
voice_id doit être l'ID exact retourné par elevenlabs_search_voices — pas un nom lisible par un humain.
Options pour model_id : eleven_multilingual_v2 (par défaut, 29 langues), eleven_v3 (idéal pour les balises d'émotion), eleven_turbo_v2_5 / eleven_flash_v2_5 (faible latence).
voice_settings (optionnel, réglage fin) : stability (0–1, plus bas = plus expressif), similarity_boost (0–1), style (0–1), speed (0.7–1.2).
Utilisation dans un Skill
- Recherchez d'abord une voix. Appelez
listenhub_get_speakersouelevenlabs_search_voices, puis transmettez l'ID. Ne faites pas deviner un nom de voix à l'utilisateur. - N'écrivez pas de boucle d'interrogation. Les outils
create_*de ListenHub attendent déjà la fin avant de retourner. Dire à l'Agent de « vérifier le statut toutes les quelques secondes » est un anti-pattern. - Le balisage intégré est réservé à ElevenLabs. Placez-le directement dans
text: pausesHello.<break time="1.5s"/>World.; émotion/effets sonores[laughs][whispers](à associer avecmodel_id: "eleven_v3"). Les voix ListenHub les lisent littéralement — ne les insérez pas là-bas. - Regroupez la narration en un seul appel. Pour de nombreuses phrases, demandez-les ensemble en un seul appel pour garder un audio continu, plutôt qu'un appel par phrase.
Exemple de texte pour un SKILL.md :
For expressive English narration, use elevenlabs_text_to_speech. First call
elevenlabs_search_voices to choose a voice_id matching the tone. For emotional
delivery, set model_id to "eleven_v3" and embed tags like [laughs] or
<break time="1s"/> directly in the text.