MCP Tools

Voce e audio

Da testo a voce, podcast e selezione della voce — ListenHub ed ElevenLabs.

Trasforma il testo in audio parlato: narrazione a voce singola, oppure un podcast con due conduttori. Due provider coprono punti di forza diversi.

Cosa puoi fare

  • Narra un testo con una voce (text-to-speech) — voci cinesi tramite ListenHub, oppure 29 lingue con controllo fine tramite ElevenLabs.
  • Crea un podcast con due conduttori — ListenHub genera script + audio con uno o due speaker (esclusiva di ListenHub).
  • Scegli da una libreria di voci — esplora le voci/speaker disponibili e scegli in base a lingua, genere e stile.
  • Controlla l'espressività (ElevenLabs) — emozione, ritmo e pause tramite impostazioni vocali e tag inline.

Scegliere un provider

ListenHub (listenhub_*)ElevenLabs (elevenlabs_*)
Punto di forzaVoci cinesi, podcast multi-conduttore29 lingue, espressività a voce singola
Speaker per clip1–2 (podcast)1
Controllo fine della vocestability / similarity / style / speed
Emozione e pause<break> + tag come [laughs] (con eleven_v3)

Regola pratica: cinese, o un podcast multi-conduttore → ListenHub. Inglese/altre lingue, o quando hai bisogno di emozione, ritmo e pause → ElevenLabs.

Strumenti ListenHub

StrumentoCosa faInput principali
listenhub_get_speakersElenca gli speaker disponibili (con anteprime)language (zh predefinito / en)
listenhub_create_flowspeechTesto o URL → narrazione a voce singolasourceType (text/url), sourceContent, speakerId, mode (smart/direct)
listenhub_create_podcastTesto o URL → podcast con 1–2 conduttori (script + audio)query o sources, speakers (1–2), mode (quick/deep/debate)
listenhub_create_podcast_text_onlyGenera solo lo script — da rivedere prima dell'audiouguale, più language
listenhub_generate_podcast_audioTrasforma uno script (eventualmente modificato) in audioepisodeId, customScripts (modifiche opzionali)
listenhub_get_podcast_status / listenhub_get_flowspeech_statusControlla lo stato di un jobepisodeId
listenhub_get_user_subscriptionControlla la tua quota

Gli strumenti create_* restituiscono l'audio finito — attendono che la generazione sia completa, quindi non devi interrogare lo stato. Usa gli strumenti *_status solo per verificare di nuovo dopo un'eccezione, o per consultare un episodio precedente.

Per speakerId, puoi passare direttamente il nome dello speaker (da listenhub_get_speakers) — viene risolto automaticamente per te.

Strumenti ElevenLabs

StrumentoCosa faInput principali
elevenlabs_search_voicesEsplora le voci disponibili
elevenlabs_text_to_speechTesto → voce con la voce sceltatext, voice_id, model_id, voice_settings, output_format
elevenlabs_list_modelsElenca i modelli TTS
elevenlabs_check_subscriptionControlla la tua quota

voice_id deve essere l'ID esatto restituito da elevenlabs_search_voices — non un nome leggibile.

Opzioni di model_id: eleven_multilingual_v2 (predefinito, 29 lingue), eleven_v3 (ideale per i tag emotivi), eleven_turbo_v2_5 / eleven_flash_v2_5 (bassa latenza).

voice_settings (opzionale, per un controllo fine): stability (0–1, più basso = più espressivo), similarity_boost (0–1), style (0–1), speed (0.7–1.2).

Utilizzo in una Skill

  • Cerca prima una voce. Richiama listenhub_get_speakers o elevenlabs_search_voices, poi passa l'ID. Non far indovinare all'utente il nome di una voce.
  • Non scrivere un ciclo di polling. Gli strumenti create_* di ListenHub attendono già fino al completamento. Dire all'agente di "controllare lo stato ogni pochi secondi" è un anti-pattern.
  • Il markup inline è solo per ElevenLabs. Inseriscilo direttamente in text: pause Hello.<break time="1.5s"/>World.; emozione/effetti [laughs] [whispers] (abbinato a model_id: "eleven_v3"). Le voci di ListenHub leggono questi elementi alla lettera — non inserirli lì.
  • Raggruppa la narrazione in un'unica chiamata. Per molte frasi, richiedile insieme in un'unica chiamata per mantenere l'audio continuo, invece di una chiamata per ogni frase.

Testo di esempio per uno 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.