MCP Tools

语音与音频

文字转语音、播客、声音选择——ListenHub 与 ElevenLabs。

把文字变成语音:单人朗读,或双人对话播客。两家 provider 各有所长。

你能做什么

  • 单人朗读(TTS)——ListenHub 提供丰富中文音色;ElevenLabs 支持 29 种语言且可精细控制。
  • 双人对话播客——ListenHub 一步生成脚本 + 音频,支持 1-2 个 speaker(ListenHub 独家)。
  • 从声音库选音色——按语言、性别、风格浏览可用声音并选择。
  • 控制表现(ElevenLabs)——通过 voice settings 与内嵌标记控制情绪、节奏、停顿。

怎么选 provider

ListenHub (listenhub_*)ElevenLabs (elevenlabs_*)
最擅长中文音色、多人对话播客29 种语言、单人情绪表现力
每段 speaker 数1–2(播客)1
精细声音控制stability / 相似度 / 风格 / 语速
情绪与停顿<break> + [laughs] 等标记(配 eleven_v3

一句话:中文、或多人播客 → ListenHub;英文/其他语言,或需要情绪、节奏、停顿控制 → ElevenLabs。

ListenHub 工具

工具用途关键入参
listenhub_get_speakers列出可用 speaker(含试听)languagezh 默认 / en
listenhub_create_flowspeech文字/URL → 单人朗读sourceTypetext/url)、sourceContentspeakerIdmodesmart/direct
listenhub_create_podcast文字/URL → 1-2 人播客(脚本+音频)querysourcesspeakers(1–2)、modequick/deep/debate
listenhub_create_podcast_text_only仅生成脚本——先审稿再合成同上,外加 language
listenhub_generate_podcast_audio把(改过的)脚本合成音频episodeIdcustomScripts(可选改稿)
listenhub_get_podcast_status / listenhub_get_flowspeech_status查任务状态episodeId
listenhub_get_user_subscription查配额

create_* 工具返回成品音频——它们会等到生成完成,所以你不用轮询。*_status 工具只在异常后复查、或回查历史 episode 时才用。

speakerId 可以直接传 speaker 的名字(来自 listenhub_get_speakers),系统会自动解析。

ElevenLabs 工具

工具用途关键入参
elevenlabs_search_voices浏览可用声音
elevenlabs_text_to_speech文字 → 选定音色的语音textvoice_idmodel_idvoice_settingsoutput_format
elevenlabs_list_models列出 TTS 模型
elevenlabs_check_subscription查配额

voice_id 必须用 elevenlabs_search_voices 返回的精确 ID,不能用人类名字。

model_id 可选:eleven_multilingual_v2(默认,29 语言)、eleven_v3(情绪标记效果最好)、eleven_turbo_v2_5 / eleven_flash_v2_5(低延迟)。

voice_settings(可选,精细调音):stability(0–1,越低越有起伏)、similarity_boost(0–1)、style(0–1)、speed(0.7–1.2)。

在 Skill 里怎么用

  • 先查声音。listenhub_get_speakerselevenlabs_search_voices,再把 ID 传进去。别让用户凭空猜声音名。
  • 别写轮询循环。 ListenHub create_* 工具已经等到完成才返回。让 Agent"每隔几秒查一次状态"是反模式。
  • 内嵌标记只对 ElevenLabs 生效。 直接写在 text 里:停顿 Hello.<break time="1.5s"/>World.;情绪/音效 [laughs] [whispers](配 model_id: "eleven_v3")。ListenHub 音色会把这些按字面读出来——别在那边插。
  • 批量朗读合并成一次调用。 多句时合并到单次调用,让音频连续,而不是一句一调。

写在 SKILL.md 里的 prose 示例:

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.