30544f7f42f99f634924cbbe540a05c2537412b7
- 新增 API.md 完整接口文档 - 智能文本分段:长文本按段落/句子/标点边界自动切分(≤2000字/段),逐段TTS后ffmpeg拼接 - /api/tts 支持 voice 参数指定音色 - httpTts JSON 配置增加 style 和 voice 字段 - 批量生成改用并发(Semaphore 3路) - 新增 /health 健康检查端点 - TTS 试听前端增加音色输入 - 清理 import,修复端口不一致
📚 TTS Book Service
基于小米 MiMo TTS的听书音频转换服务,提供 Web 管理界面和听书 App 音频接入接口。
架构
听书 App ──HTTP──▶ 本服务 ──API──▶ 小米 MiMo TTS
│
├── SQLite (书籍/章节管理)
└── MP3 文件缓存
快速启动
# 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
- 在管理界面添加书籍和章节
- 为章节生成音频
- 在听书 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,包含:
- 所有接口的请求/响应格式
- 参数说明与错误码
- MiMo TTS 风格参考大全
- 文本自动分段机制说明
MiMo TTS 风格参考
在「TTS 试听」中可填写风格,例如:
| 类别 | 示例 |
|---|---|
| 情感 | 开心 / 悲伤 / 生气 / 平静 |
| 语速 | 语速慢 / 语速快 / 悄悄话 |
| 角色 | 像个大将军 / 像个小孩 / 孙悟空 |
| 方言 | 东北话 / 四川话 / 台湾腔 / 粤语 |
不使用 Docker 运行
pip install -r requirements.txt
# 需要系统安装 ffmpeg
export MIMO_API_KEY=your_key
cd app
python main.py
Description
Languages
Python
52.6%
HTML
40.9%
Shell
4.8%
Dockerfile
1.7%