edge-tts-mcp-server
v1.0.17
Published
[](https://opensource.org/licenses/MIT)
Downloads
48
Readme
Edge TTS MCP Server
这是一个 MCP (Model Context Protocol) 服务器,集成了 Microsoft Edge Read Aloud 的高质量语音合成能力和 URUSAI! 的图床/文件存储服务。
它可以让 Claude Desktop 或 LangChain Agent 具备“说话”的能力:能够生成极其自然的中文/多语言语音,支持多片段拼接,并将生成的 MP3 音频自动上传至云端,返回可永久访问的播放链接。
✨ 特性
- 微软超自然语音 (Neural Voices): 使用 Edge 浏览器同款的
zh-CN-Xiaoxiao(晓晓)、zh-CN-Yunyang(云扬) 等高质量语音。 - 智能音频合并 (Smart Merge): 支持一次性输入多个文本片段,服务器会自动将它们无缝拼接成一个完整的 MP3 文件,非常适合生成长对话或有停顿的旁白。
- 精细化控制 (Precise Control): 支持自定义语速、语调,并能精确控制段落之间的静音时长(毫秒级)。
- 自动云端存储 (Auto Upload): 生成的音频文件会自动上传至 URUSAI!,直接返回公网 URL,方便在大模型对话中直接播放或通过 API 调用。
🧰 工具详情 (Tools)
本服务器向 MCP 客户端暴露了一个核心工具:
batch_generate_speech
用于将文本转换为语音,支持批量处理和合并。
- 描述: Generates speech from plain text, returns public audio URLs. Supports merging multiple segments.
- 输入参数 (Input Schema):
此工具接受一个 segments 数组,每个对象包含以下字段:
| 参数名 | 类型 | 必填 | 说明 |
| :----------------- | :---------- | :--- | :----------------------------------------------------------------------- |
| speech_content | string | ✅ | 纯文本内容。请勿使用 XML/SSML 标签,直接输入文字即可。 |
| voice_id | string | ❌ | 声音 ID (详见下方列表)。默认为 zh-CN-XiaoxiaoMultilingualNeural。 |
| speech_rate | number | ❌ | 语速控制 (详见下方特殊说明)。默认为 25。 |
| speech_pitch | number | ❌ | 语调百分比。例如 20 为高音,-10 为低音。默认为 0。 |
| pause_after_ms | number | ❌ | 在此片段播放结束后,插入的静音时长(毫秒)。 |
| merge_audio | boolean | ❌ | 仅需在第一个片段设置。设为 true 将合并所有片段为一个 MP3。 |
🚀 语速设置说明 (speech_rate)
本服务器重新定义了语速参数的数值逻辑,请务必遵守:
| 数值 | 速度描述 | 适用场景 | | :----------- | :-------------------------- | :------------------------------------------------- | | 25 | 标准速度 (Normal) | 默认值。适合大多数阅读、对话场景 (对应 API +25%)。 | | 0 | 慢速 (Slow) | 适合悲伤、严肃、恐怖或深沉的独白 (对应 API +0%)。 | | 40 | 快速 (Fast) | 适合激动、争吵、兴奋或紧急广播 (对应 API +40%)。 |
🗣️ 支持的声音列表 (voice_id)
支持微软 Azure/Edge 系列的大量语音,部分推荐如下:
| ID | 描述 | 风格 |
| :------------------------------------- | :-------- | :----------------------------------- |
| zh-CN-XiaoxiaoMultilingualNeural | 晓晓 (女) | 默认,多语言,温柔,全能型 |
| zh-CN-YunyiMultilingualNeural | 云逸 (男) | 默认,多语言,稳重 |
| zh-CN-YunyangNeural | 云扬 (男) | 央视播音腔,专业,阳光 |
| zh-CN-XiaoshuangMultilingualNeural | 晓双 (女) | 萝莉音,可爱 |
| zh-CN-YunxiNeural | 云希 (男) | 少年音,清朗 |
| zh-CN-XiaomoNeural | 晓墨 (女) | 文艺,情感丰富 |
(完整列表请参考源代码中的 VOICE_MAP)
🦜 LangChain 集成
你可以使用 langchain-mcp-adapters 将此 TTS 能力赋予你的 AI Agent。
import { MultiServerMCPClient } from "@langchain/mcp-adapters";
import { ChatAnthropic } from "@langchain/anthropic";
import { createAgent } from "langchain";
// 1. 连接 MCP 服务器
const client = new MultiServerMCPClient({
"edge-tts": {
transport: "stdio",
command: "node",
args: ["/path/to/edge-tts-mcp-server/dist/index.js"], // 指向编译后的文件
},
});
// 2. 获取工具并创建 Agent
const tools = await client.getTools();
const agent = createAgent({
model: "claude-3-5-sonnet-latest",
tools,
});
// 3. 调用示例:生成一段带停顿的合并语音
await agent.invoke({
messages: [{
role: "user",
content: "请用云扬的声音说一句'警报!警报!',语速要快,然后停顿一秒,再说'系统正在崩溃',语速放慢。请合并成一个音频文件。"
}],
});🚀 使用方法 (Claude Desktop)
直接修改 Claude Desktop 的配置文件以在本地运行。
1. 找到配置文件
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS:
~/Library/Application Support/Claude/claude_desktop_config.json
2. 添加配置
{
"mcpServers": {
"edge-tts": {
"command": "npx",
"args": [
"-y",
"edge-tts-mcp-server"
]
}
}
}或者git clone到本地
{
"mcpServers": {
"edge-tts": {
"command": "node",
"args": [
"项目的绝对路径(/.../edge-tts-mcp-server)/dist/index.js"
]
}
}
}🛠️ 本地开发与构建
如果你想修改代码或进行调试:
# 1. 克隆仓库 (假设你已经有代码)
# git clone ...
cd edge-tts-mcp-server
# 2. 安装依赖
pnpm install
# 3. 编译 (生成 dist/index.js)
pnpm build环境变量 (可选)
可以使用特定的 API Token记录自己生成的音频:
URUSAI_API_TOKEN: 设置上传到 api.urusai.cc 的 Token (如果未设置,服务器将匿名上传)。
License
MIT
