ChatTTS 语音合成服务
专为对话场景设计的 TTS 模型服务,支持情感控制。
端口
- 服务端口: 12002
功能
- 对话式语音合成(有语气变化)
- 情感控制(开心、悲伤、笑声)
- 批量合成
- 中文效果好
硬件要求
- GPU: 推荐 NVIDIA GPU,显存 ≥ 4GB
- CPU: 可运行但较慢
- 内存: ≥ 16GB
部署步骤
1. 安装依赖
pip install -r requirements.txt
2. 启动服务
# 方式一:自动下载模型
python3 server.py
# 方式二:使用已下载的模型(指定路径)
MODEL_PATH=/path/to/ChatTTS python3 server.py
# 方式三:使用本地缓存模型
MODEL_SOURCE=local python3 server.py
首次启动会自动下载 ChatTTS 模型(约 2GB)。
模型路径配置:
| 环境变量 | 说明 | 示例 |
|---|---|---|
MODEL_PATH |
模型目录路径 | /data/models/ChatTTS |
MODEL_SOURCE |
加载方式 | auto / local / download |
ChatTTS 模型默认下载位置:
- Linux:
~/.cache/modelscope/hub/ChatTTS/ - 或手动下载后解压到任意目录
3. 验证服务
curl http://localhost:12002/
返回:
{
"status": "ok",
"service": "ChatTTS",
"model_loaded": true,
"device": "cuda"
}
API 接口
合成语音
POST /synthesize
Content-Type: multipart/form-data
参数:
- text: 要合成的文本
- temperature: 温度参数(默认 0.3)
- top_p: Top-P 参数(默认 0.7)
- top_k: Top-K 参数(默认 20)
返回:
{
"audio_url": "/audio/xxx.wav",
"duration": 3.5,
"text": "你好",
"timestamp": "..."
}
示例:
curl -X POST http://localhost:12002/synthesize \
-F "text=你好,很高兴见到你"
带情感合成
POST /synthesize/emotion
参数:
- text: 文本
- emotion: 情感类型(neutral/happy/sad/laugh)
返回: 同上
情感类型:
neutral: 平静happy: 开心sad: 悲伤laugh: 笑声
批量合成
POST /synthesize/batch
Content-Type: application/json
Body:
[
{"text": "第一句"},
{"text": "第二句"}
]
获取音频文件
GET /audio/{filename}
特点对比
| 特点 | Edge TTS | ChatTTS |
|---|---|---|
| 部署 | 无需部署 | 需 GPU |
| 质量 | 高 | 对话优化 |
| 情感 | 固定音色 | 可控 |
| 延迟 | 1-3秒 | 0.5-1秒 |
| 离线 | ❌ | ✅ |
与语音对话网页集成
在 voice-chat-web 的 TTS 设置中选择 ChatTTS,服务地址配置为:
http://192.168.2.5:12002
注意事项
- 模型首次加载需要下载约 2GB
- GPU 运行速度更快,CPU 可用但较慢
- 长文本建议分段合成
- 情感标记功能需要 ChatTTS 版本支持
Description
Languages
Python
96%
Shell
4%