147 lines
2.3 KiB
Markdown
147 lines
2.3 KiB
Markdown
# ChatTTS 语音合成服务
|
||||
|
|
|
|||
|
|
专为对话场景设计的 TTS 模型服务,支持情感控制。
|
|||
|
|
|
|||
|
|
## 端口
|
|||
|
|
|
|||
|
|
- **服务端口**: 12002
|
|||
|
|
|
|||
|
|
## 功能
|
|||
|
|
|
|||
|
|
- 对话式语音合成(有语气变化)
|
|||
|
|
- 情感控制(开心、悲伤、笑声)
|
|||
|
|
- 批量合成
|
|||
|
|
- 中文效果好
|
|||
|
|
|
|||
|
|
## 硬件要求
|
|||
|
|
|
|||
|
|
- **GPU**: 推荐 NVIDIA GPU,显存 ≥ 4GB
|
|||
|
|
- **CPU**: 可运行但较慢
|
|||
|
|
- **内存**: ≥ 16GB
|
|||
|
|
|
|||
|
|
## 部署步骤
|
|||
|
|
|
|||
|
|
### 1. 安装依赖
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
pip install -r requirements.txt
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 2. 启动服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
# 默认端口 12002
|
|||
|
|
python3 server.py
|
|||
|
|
|
|||
|
|
# 或使用脚本
|
|||
|
|
PORT=12002 ./start.sh
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
首次启动会自动下载 ChatTTS 模型(约 2GB)。
|
|||
|
|
|
|||
|
|
### 3. 验证服务
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
curl http://localhost:12002/
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
返回:
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"status": "ok",
|
|||
|
|
"service": "ChatTTS",
|
|||
|
|
"model_loaded": true,
|
|||
|
|
"device": "cuda"
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## API 接口
|
|||
|
|
|
|||
|
|
### 合成语音
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
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": "..."
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**示例**:
|
|||
|
|
```bash
|
|||
|
|
curl -X POST http://localhost:12002/synthesize \
|
|||
|
|
-F "text=你好,很高兴见到你"
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 带情感合成
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
POST /synthesize/emotion
|
|||
|
|
|
|||
|
|
参数:
|
|||
|
|
- text: 文本
|
|||
|
|
- emotion: 情感类型(neutral/happy/sad/laugh)
|
|||
|
|
|
|||
|
|
返回: 同上
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
**情感类型**:
|
|||
|
|
- `neutral`: 平静
|
|||
|
|
- `happy`: 开心
|
|||
|
|
- `sad`: 悲伤
|
|||
|
|
- `laugh`: 笑声
|
|||
|
|
|
|||
|
|
### 批量合成
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
POST /synthesize/batch
|
|||
|
|
Content-Type: application/json
|
|||
|
|
|
|||
|
|
Body:
|
|||
|
|
[
|
|||
|
|
{"text": "第一句"},
|
|||
|
|
{"text": "第二句"}
|
|||
|
|
]
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
### 获取音频文件
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
GET /audio/{filename}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 特点对比
|
|||
|
|
|
|||
|
|
| 特点 | Edge TTS | ChatTTS |
|
|||
|
|
|------|----------|---------|
|
|||
|
|
| 部署 | 无需部署 | 需 GPU |
|
|||
|
|
| 质量 | 高 | 对话优化 |
|
|||
|
|
| 情感 | 固定音色 | 可控 |
|
|||
|
|
| 延迟 | 1-3秒 | 0.5-1秒 |
|
|||
|
|
| 离线 | ❌ | ✅ |
|
|||
|
|
|
|||
|
|
## 与语音对话网页集成
|
|||
|
|
|
|||
|
|
在 voice-chat-web 的 TTS 设置中选择 ChatTTS,服务地址配置为:
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
http://192.168.2.5:12002
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 注意事项
|
|||
|
|
|
|||
|
|
1. 模型首次加载需要下载约 2GB
|
|||
|
|
2. GPU 运行速度更快,CPU 可用但较慢
|
|||
|
|
3. 长文本建议分段合成
|
|||
|
|
4. 情感标记功能需要 ChatTTS 版本支持
|