# 📚 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 ```