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(含试听) | language(zh 默认 / en) |
listenhub_create_flowspeech | 文字/URL → 单人朗读 | sourceType(text/url)、sourceContent、speakerId、mode(smart/direct) |
listenhub_create_podcast | 文字/URL → 1-2 人播客(脚本+音频) | query 或 sources、speakers(1–2)、mode(quick/deep/debate) |
listenhub_create_podcast_text_only | 仅生成脚本——先审稿再合成 | 同上,外加 language |
listenhub_generate_podcast_audio | 把(改过的)脚本合成音频 | episodeId、customScripts(可选改稿) |
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 | 文字 → 选定音色的语音 | text、voice_id、model_id、voice_settings、output_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_speakers或elevenlabs_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.