使用说明
Cheema文本转语音MCP服务器
Cheema Text-to-Voice是一个免费的开源MCP服务器,为任何兼容MCP的AI助手,包括Claude Desktop、Claude Code和n8n,提供真实的语音。它在您自己的CPU或GPU上本地运行NeuTTS文本到速度模型,因此没有API键可配置,循环中没有云服务,也没有每个角色的计费:文本进入,WAV文件出来,完全在您的机器上。让你的助手说话,它会用四种语言的五种内置语音合成自然语音,或者在几秒钟内从短录音中克隆出一个新的语音。
链接
- MCP目录:列在 mcpservers.org
- 案例研究: Cheema文本转语音是如何构建的
由...建造 塔亚布·伊利亚斯巴塞罗那的AI代理工程师。
它能做什么?
只需让你的人工智能助手说话,它就会处理剩下的事情:
“用朱丽叶的声音用法语打招呼”
“将此段落转换为语音并将其另存为intro.wav”
“从这段录音中克隆我的声音,并用它来阅读我的文章”
特征:
- 4种语言的5种内置语音:英语(jo,dave),德语(greta),法语(juliette),西班牙语(mateo)
- 即时语音克隆 从3-15秒的WAV样本开始,在重启过程中持续存在
- 5个MCP工具 (
tts_help,tts_list_speakers,tts_list_models,tts_synthesize,tts_add_speaker)加上2个现成的提示模板 - 3运输:stdio用于Claude Desktop和Claude Code,SSE和Streamable HTTP用于n8n和其他远程客户端
- 可更换的NeuTTS骨干模型,包括较小的量化GGUF变体,可选CUDA加速
- 100%本地:没有API密钥,没有云调用,没有每个角色的计费
快速开始
1.安装先决条件
你需要 Python 3.10+ 和 具体的:
# Ubuntu / Debian
sudo apt install espeak-ng
# macOS
brew install espeak-ng
# Windows
choco install espeak-ng
2.克隆和安装
git clone https://github.com/MuhammadTayyabIlyas/CHeema-Text-to-Voice-MCP-Server.git
cd CHeema-Text-to-Voice-MCP-Server
python -m venv venv
source venv/bin/activate # Linux/macOS
# venv\Scripts\activate # Windows
pip install -e .
pip install "mcp[cli]"
3.连接到您的AI助手
选择您的平台并按照以下步骤操作。
按平台设置
克劳德桌面版
将以下内容添加到您的配置文件中:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - 视窗:
%APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"cheema-tts": {
"command": "/full/path/to/CHeema-Text-to-Voice-MCP-Server/venv/bin/python",
"args": ["/full/path/to/CHeema-Text-to-Voice-MCP-Server/mcp_server.py"],
"env": {}
}
}
}
重新启动克劳德桌面。您将看到TTS工具出现在工具菜单中。
克劳德代码
claude mcp add cheema-tts -- /full/path/to/venv/bin/python /full/path/to/mcp_server.py
然后让克劳德在任何对话中生成语音。
n8n
以SSE模式启动服务器:
cd CHeema-Text-to-Voice-MCP-Server
source venv/bin/activate
python mcp_server.py --transport sse --host 127.0.0.1 --port 8000
在n8n工作流程中:
- 添加一个 AI 代理 节点与a MCP客户端工具
- 将连接类型设置为 上海证券交易所
- 输入URL:
http://127.0.0.1:8000/sse - 代理现在可以调用任何TTS工具
任何其他MCP客户端
使用您偏好的传输方式启动服务器:
# SSE (for web platforms and remote clients)
python mcp_server.py --transport sse --host 0.0.0.0 --port 8000
# Streamable HTTP
python mcp_server.py --transport streamable-http --host 0.0.0.0 --port 8000
将您的MCP客户端连接到:
- 上海证券交易所:
http://<your-host>:8000/sse - 超文本传输协议:
http://<your-host>:8000/mcp
可用声音
| 语音 | 语言 | 描述 |
|---|---|---|
| 乔 | 英语 | 默认:清晰自然的女声 |
| 戴夫 | 英语 | 男声 |
| 格蕾塔 | 德语 | 德国女声 |
| 朱丽叶 | 法语 | 法国女声 |
| 马修 | 西班牙语 | 西班牙男声 |
使用 tts_list_speakers 查看所有声音,包括您添加的任何自定义声音。
语音克隆
从短音频样本中克隆任何语音:
- 录制或查找WAV文件:3到15秒的干净演讲
- 了解成绩单:录音中说出的确切单词
- 问你的AI助手:
“在/path/to/recording.wav中添加一个名为'alex'的新发言人,并附上文字记录‘这是我在录音中说的话’”
或者直接调用该工具:
tts_add_speaker(name="alex", wav_path="/path/to/recording.wav", ref_text="This is what I said in the recording")
自定义语音将永久保存,并在重新启动时可用。
最佳效果提示:
- 单声道音频,16-44kHz采样率
- 3-15秒连续自然语音
- 最小背景噪声
可用工具
| 工具 | 它做什么 |
|---|---|
tts_help |
显示完整的使用指南和示例(从这里开始) |
tts_synthesize |
将文本转换为语音,保存WAV文件 |
tts_list_speakers |
列出所有可用的声音 |
tts_list_models |
显示活动模型和备选方案 |
tts_add_speaker |
从音频样本中克隆新语音 |
tts_synthese参数
| 参数 | 必填 | 默认 | 说明 |
|---|---|---|---|
text |
是 | 无 | 要转换为语音的文本 |
speaker |
没有 | "jo" |
使用哪种声音 |
output_filename |
否 | 自动生成 | WAV输出的自定义文件名 |
MCP提示(模板)
| 提示 | 描述 |
|---|---|
quick_speech |
快速语音生成:只需提供文本和可选扬声器 |
voice_clone_guide |
添加新语音的分步演练 |
这些内容会自动出现在Claude Desktop的提示选择器中。
模型
默认模型(neutts-nano)在CPU上运行良好。较大的模型可以产生更高的质量,但需要更多的资源。
| 型号 | 语言 | 尺寸 | 备注 |
|---|---|---|---|
neuphonic/neutts-nano |
英语 | ~229M | 默认:速度快,质量好 |
neuphonic/neutts-air |
英语 | ~552M | 质量更高,速度更慢 |
neuphonic/neutts-nano-german |
德语 | ~229M | 德语 |
neuphonic/neutts-nano-french |
法语 | ~2.29亿 | 法语 |
neuphonic/neutts-nano-spanish |
西班牙语 | ~229M | 西班牙语 |
neuphonic/neutts-*-q4-gguf |
变化 | 更小 | 量化:更快,内存更少 |
neuphonic/neutts-*-q8-gguf |
变化 | 中等 | 量化:平衡 |
使用环境变量切换模型:
NEUTTS_BACKBONE="neuphonic/neutts-air" python mcp_server.py
配置
所有设置都是可选的。默认值开箱即用。
| 变量 | 默认值 | 描述 |
|---|---|---|
NEUTTS_BACKBONE |
neuphonic/neutts-nano |
HuggingFace模型仓库 |
NEUTTS_BACKBONE_DEVICE |
cpu |
cpu 或 cuda GPU |
NEUTTS_CODEC |
neuphonic/neucodec |
音频编解码器型号 |
NEUTTS_CODEC_DEVICE |
cpu |
cpu 或 cuda GPU |
NEUTTS_OUTPUT_DIR |
./output |
WAV文件保存的位置 |
NEUTTS_SAMPLES_DIR |
./samples |
内置扬声器示例 |
NEUTTS_SPEAKERS_DIR |
./speakers |
自定义语音数据 |
NEUTTS_TRANSPORT |
stdio |
stdio, sse,或 streamable-http |
NEUTTS_HOST |
127.0.0.1 |
绑定地址(仅限SSE/HTTP) |
NEUTTS_PORT |
8000 |
绑定端口(仅限SSE/HTTP) |
GPU加速
为了在NVIDIA GPU上实现更快的合成:
NEUTTS_BACKBONE_DEVICE=cuda NEUTTS_CODEC_DEVICE=cuda python mcp_server.py
需要支持CUDA的PyTorch。
作为服务运行
对于生产使用,创建一个systemd服务,使其自动启动:
# /etc/systemd/system/cheema-tts.service
[Unit]
Description=Cheema Text-to-Voice MCP Server
After=network.target
[Service]
Type=simple
WorkingDirectory=/path/to/CHeema-Text-to-Voice-MCP-Server
ExecStart=/path/to/venv/bin/python mcp_server.py --transport sse --host 127.0.0.1 --port 8000
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
sudo systemctl enable --now cheema-tts
要通过HTTPS公开它,请在前面放置一个Nginx或Caddy反向代理,并为SSE设置以下关键设置:
- 禁用代理缓冲(
proxy_buffering off) - 设置较长的读取超时时间(
proxy_read_timeout 86400) - 添加
X-Accel-Buffering: no头球
故障排除
服务器无法启动?
- Esperanza检查:
espeak-ng --version - 检查依赖关系:
pip list | grep -E "mcp|neutts|torch|soundfile"
没有音频输出?
- 检查
output/WAV文件目录 - 使用验证扬声器名称
tts_list_speakers
第一次跑慢?
- 正常:第一次运行从HuggingFace下载模型权重(约200-500MB)。在那之后被缓存。
想要GPU加速?
- 集
NEUTTS_BACKBONE_DEVICE=cuda和NEUTTS_CODEC_DEVICE=cuda
运作原理
- 服务器在启动时加载NeuTTS骨干模型和音频编解码器
- 扬声器声纹(
.pt文件)被加载到内存中 - 当您请求语音时,文本会被音素化并与说话者的语音参考相结合
- 该模型生成语音令牌,解码为24kHz波形
- 输出保存为标准WAV文件
项目结构
CHeema-Text-to-Voice-MCP-Server/
├── mcp_server.py # MCP server entry point
├── neutts/ # NeuTTS engine
├── samples/ # Built-in speaker voices (.wav, .pt, .txt)
├── speakers/ # Custom cloned voices (auto-created)
├── output/ # Generated audio files (auto-created)
└── examples/ # Usage examples
学分
作者
塔亚布·伊利亚斯博士研究员兼EdTech创始人
为教育工作者和研究人员构建基于人工智能的工具。
许可证
MIT许可证。底层NeuTTS模型有自己的许可证。请参阅 NeuTTS存储库 了解详情。
Cheema Text-to-Voice MCP Server
Give your AI assistant a voice.