first commit: TTS Book Service with MiMo TTS integration

This commit is contained in:
TTS Service
2026-03-27 13:41:07 +08:00
commit 270aba89a0
10 changed files with 1132 additions and 0 deletions

96
README.md Normal file
View File

@@ -0,0 +1,96 @@
# 📚 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 试听(支持风格设置)
- ⚡ 单章/批量音频生成
- ⚙️ 配置查看
### 听书 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` | ❌ | `17200` | 服务端口 |
## MiMo TTS 风格参考
在「TTS 试听」中可填写风格,例如:
| 类别 | 示例 |
|------|------|
| 情感 | 开心 / 悲伤 / 生气 / 平静 |
| 语速 | 语速慢 / 语速快 / 悄悄话 |
| 角色 | 像个大将军 / 像个小孩 / 孙悟空 |
| 方言 | 东北话 / 四川话 / 台湾腔 / 粤语 |
## 不使用 Docker 运行
```bash
pip install -r requirements.txt
# 需要系统安装 ffmpeg
export MIMO_API_KEY=your_key
cd app
python main.py
```