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

📚 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

  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,包含:

  • 所有接口的请求/响应格式
  • 参数说明与错误码
  • MiMo TTS 风格参考大全
  • 文本自动分段机制说明

MiMo TTS 风格参考

在「TTS 试听」中可填写风格,例如:

类别 示例
情感 开心 / 悲伤 / 生气 / 平静
语速 语速慢 / 语速快 / 悄悄话
角色 像个大将军 / 像个小孩 / 孙悟空
方言 东北话 / 四川话 / 台湾腔 / 粤语

不使用 Docker 运行

pip install -r requirements.txt
# 需要系统安装 ffmpeg
export MIMO_API_KEY=your_key
cd app
python main.py
Description
No description provided
Readme 128 KiB
Languages
Python 52.6%
HTML 40.9%
Shell 4.8%
Dockerfile 1.7%