MCP Tools

Voz y audio

Texto a voz, podcasts y selección de voz — ListenHub y ElevenLabs.

Convierte texto en audio hablado: narración de una sola voz, o un podcast con dos presentadores. Dos proveedores cubren fortalezas distintas.

Qué puedes hacer

  • Narra texto con una sola voz (texto a voz) — voces en chino a través de ListenHub, o 29 idiomas con control fino a través de ElevenLabs.
  • Produce un podcast con dos presentadores — ListenHub genera guion + audio con uno o dos speakers (exclusivo de ListenHub).
  • Elige de una biblioteca de voces — explora las voces/speakers disponibles y elige por idioma, género y estilo.
  • Controla la interpretación (ElevenLabs) — emoción, ritmo y pausas mediante voice settings y etiquetas incrustadas.

Cómo elegir un proveedor

ListenHub (listenhub_*)ElevenLabs (elevenlabs_*)
Mejor enVoces en chino, podcasts con varios presentadores29 idiomas, expresividad de una sola voz
Speakers por clip1–2 (podcast)1
Control fino de vozestabilidad / similitud / estilo / velocidad
Emoción y pausas<break> + etiquetas como [laughs] (con eleven_v3)

Regla general: chino, o un podcast con varios presentadores → ListenHub. Inglés/otros idiomas, o cuando necesites control de emoción, ritmo y pausas → ElevenLabs.

Herramientas de ListenHub

HerramientaQué haceEntradas clave
listenhub_get_speakersLista los speakers disponibles (con previews)language (zh por defecto / en)
listenhub_create_flowspeechTexto o URL → narración de una sola vozsourceType (text/url), sourceContent, speakerId, mode (smart/direct)
listenhub_create_podcastTexto o URL → podcast de 1–2 speakers (guion + audio)query o sources, speakers (1–2), mode (quick/deep/debate)
listenhub_create_podcast_text_onlyGenera solo el guion — revísalo antes del audioigual, más language
listenhub_generate_podcast_audioConvierte un guion (editado) en audioepisodeId, customScripts (ediciones opcionales)
listenhub_get_podcast_status / listenhub_get_flowspeech_statusConsulta el estado de un trabajoepisodeId
listenhub_get_user_subscriptionConsulta tu cuota

Las herramientas create_* devuelven el audio terminado — esperan hasta que la generación se completa, así que no necesitas consultar el estado. Usa las herramientas *_status solo para volver a comprobar tras una excepción, o para consultar un episodio anterior.

Para speakerId, puedes pasar directamente el nombre del speaker (obtenido de listenhub_get_speakers) — se resuelve automáticamente.

Herramientas de ElevenLabs

HerramientaQué haceEntradas clave
elevenlabs_search_voicesExplora las voces disponibles
elevenlabs_text_to_speechTexto → voz con una voz elegidatext, voice_id, model_id, voice_settings, output_format
elevenlabs_list_modelsLista los modelos TTS
elevenlabs_check_subscriptionConsulta tu cuota

voice_id debe ser el ID exacto devuelto por elevenlabs_search_voices — no un nombre legible.

Opciones de model_id: eleven_multilingual_v2 (por defecto, 29 idiomas), eleven_v3 (el mejor para etiquetas de emoción), eleven_turbo_v2_5 / eleven_flash_v2_5 (baja latencia).

voice_settings (opcional, ajuste fino): stability (0–1, más bajo = más expresivo), similarity_boost (0–1), style (0–1), speed (0.7–1.2).

Cómo usarlo en un Skill

  • Busca primero una voz. Llama a listenhub_get_speakers o elevenlabs_search_voices, y luego pasa el ID. No hagas que el usuario adivine un nombre de voz.
  • No escribas un bucle de consulta. Las herramientas create_* de ListenHub ya esperan hasta terminar. Decirle al Agent que "consulte el estado cada pocos segundos" es un anti-patrón.
  • El marcado incrustado solo funciona con ElevenLabs. Ponlo directamente en text: pausas Hello.<break time="1.5s"/>World.; emoción/efectos [laughs] [whispers] (combínalo con model_id: "eleven_v3"). Las voces de ListenHub leen esto literalmente — no lo insertes ahí.
  • Agrupa la narración en una sola llamada. Para muchas frases, pídelas todas juntas en una sola llamada para mantener el audio continuo, en lugar de una llamada por frase.

Ejemplo de texto para 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.