Files
tts_trans/README.md
sunruiling 30544f7f42 feat: API文档、文本自动分段、音色配置、批量并发
- 新增 API.md 完整接口文档
- 智能文本分段:长文本按段落/句子/标点边界自动切分(≤2000字/段),逐段TTS后ffmpeg拼接
- /api/tts 支持 voice 参数指定音色
- httpTts JSON 配置增加 style 和 voice 字段
- 批量生成改用并发(Semaphore 3路)
- 新增 /health 健康检查端点
- TTS 试听前端增加音色输入
- 清理 import,修复端口不一致
2026-03-27 14:37:43 +08:00

112 lines
3.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 📚 TTS Book Service
基于**小米 MiMo TTS**的听书音频转换服务,提供 Web 管理界面和听书 App 音频接入接口。
## 架构
```
听书 App ──HTTP──▶ 本服务 ──API──▶ 小米 MiMo TTS
├── SQLite (书籍/章节管理)
└── MP3 文件缓存
```
## 快速启动
```bash
# 1. 配置 API Key
cp .env.example .env
# 编辑 .env 填入你的 MIMO_API_KEY
# 2. 启动
docker compose up -d
# 3. 访问管理界面
# http://your-server:17200
```
## 功能
### Web 管理界面 (`/`)
- 📖 书籍管理(添加/删除)
- 📑 章节管理(添加/编辑/删除)
- 🎙️ TTS 试听(支持风格 + 音色设置)
- ⚡ 单章/批量音频生成(自动分段拼接)
- ⚙️ 配置查看
### 核心特性
- **智能文本分段**: 长文本自动在句末/段落边界切分≤2000字/段),逐段生成后拼接
- **多风格支持**: 开心、悲伤、东北话、像个大将军... 任意组合
- **音色切换**: 支持指定不同音色voice 参数)
- **并发批量生成**: 限制 3 路并发,快速完成整本书
### 听书 App 接口
| 接口 | 方法 | 说明 |
|------|------|------|
| `/api/book/{book_id}` | GET | 获取书籍信息和章节列表 |
| `/api/book/{book_id}/chapter/{chapter_id}/audio` | GET | 下载章节 MP3 音频 |
### 管理 API
| 接口 | 方法 | 说明 |
|------|------|------|
| `/admin/api/books` | GET/POST | 书籍列表/创建 |
| `/admin/api/books/{book_id}` | DELETE | 删除书籍 |
| `/admin/api/books/{book_id}/chapters` | GET/POST | 章节列表/创建 |
| `/admin/api/books/{book_id}/chapters/{id}` | PUT/DELETE | 更新/删除章节 |
| `/admin/api/books/{book_id}/chapters/{id}/generate` | POST | 生成单章音频 |
| `/admin/api/books/{book_id}/generate-all` | POST | 批量生成 |
| `/admin/api/tts/preview` | POST | TTS 试听 |
| `/admin/api/config` | GET | 查看配置 |
## 接入听书 App
1. 在管理界面添加书籍和章节
2. 为章节生成音频
3. 在听书 App 配置:
- **接入方式**: 音频方式
- **接入地址**: `http://your-server:17200`
- **音频类型**: mp3
- **书籍地址**: `http://your-server:17200/api/book/{book_id}`
## 环境变量
| 变量 | 必填 | 默认值 | 说明 |
|------|------|--------|------|
| `MIMO_API_KEY` | ✅ | - | 小米 MiMo TTS API Key |
| `MIMO_API_ENDPOINT` | ❌ | `https://api.xiaomimimo.com/v1/chat/completions` | API 地址 |
| `MIMO_TTS_MODEL` | ❌ | `mimo-v2-audio-tts` | 模型名称 |
| `MIMO_VOICE` | ❌ | `mimo_default` | 默认音色 |
| `SERVER_PORT` | ❌ | `3333` | 服务端口 |
## 📖 API 文档
完整 API 文档见 [**API.md**](./API.md),包含:
- 所有接口的请求/响应格式
- 参数说明与错误码
- MiMo TTS 风格参考大全
- 文本自动分段机制说明
## MiMo TTS 风格参考
在「TTS 试听」中可填写风格,例如:
| 类别 | 示例 |
|------|------|
| 情感 | 开心 / 悲伤 / 生气 / 平静 |
| 语速 | 语速慢 / 语速快 / 悄悄话 |
| 角色 | 像个大将军 / 像个小孩 / 孙悟空 |
| 方言 | 东北话 / 四川话 / 台湾腔 / 粤语 |
## 不使用 Docker 运行
```bash
pip install -r requirements.txt
# 需要系统安装 ffmpeg
export MIMO_API_KEY=your_key
cd app
python main.py
```