Skip to content

Latest commit

 

History

History
187 lines (133 loc) · 6.03 KB

File metadata and controls

187 lines (133 loc) · 6.03 KB

XiaomiTTS-to-OpenAI-TTS-API

English

将小米 MiMo TTS API 转换为 OpenAI 兼容的 TTS API 代理服务,可直接作为 OpenClaw 等应用的 TTS 后端。

功能

  • OpenAI 兼容接口POST /v1/audio/speech,完整兼容 OpenAI TTS API
  • OpenClaw 支持:开箱即用,作为 OpenClaw 的 TTS Provider
  • 音频格式兼容:支持 mp3、wav、opus、aac、flac、pcm,小米不支持的格式自动转码
  • 语音映射:OpenAI voice 名称自动映射到 MiMo 音色,不支持的 voice 自动回退
  • 风格标签:Web UI 内置 MiMo 官方风格标签和音频标签,点击即可填入
  • Web UI:访问根路径 / 即可使用可视化 TTS 测试页面
  • Docker 支持:提供 Dockerfile 和多平台构建脚本

OpenClaw 集成

本服务的主要用途之一是作为 OpenClaw 的 TTS 后端,让 OpenClaw 通过小米 MiMo 获得语音合成能力。

部署代理服务

docker run -d -p 8080:8080 -e XIAOMI_API_KEY=sk-你的小米密钥 yshtcn/xiaomitts-to-openai:latest

配置 OpenClaw

.openclaw/openclaw.json 中添加或修改 TTS 配置:

{
  "tts": {
    "auto": "always",
    "provider": "openai",
    "providers": {
      "openai": {
        "apiKey": "sk-你的小米密钥",
        "baseUrl": "http://你的服务地址:8080/v1/",
        "model": "mimo-v2-tts",
        "voice": "mimo_default"
      }
    }
  }
}
字段 说明
apiKey 小米 MiMo API 密钥(必填,代理会透传给小米 API)
baseUrl 代理服务地址,注意末尾带 /v1/
model mimo-v2-tts,代理会统一映射
voice 可选 mimo_defaultdefault_zh(中文女声)、default_en(英文女声)

OpenClaw 请求的任何音频格式(包括 opus)都会被代理自动处理,无需额外配置。

快速开始

Docker 运行

docker run -d -p 8080:8080 -e XIAOMI_API_KEY=sk-xxx yshtcn/xiaomitts-to-openai:latest

Docker 镜像已内置 ffmpeg,无需额外安装。

本地运行

  1. 复制 .env.example.env,填入你的小米 API Key:
XIAOMI_API_KEY=sk-your-key-here
  1. 安装依赖并运行(本地需安装 ffmpeg 以支持音频格式转码):
pip install -r requirements.txt
python main.py
  1. 访问 http://localhost:8080 使用 Web UI

API 使用

生成语音

curl http://localhost:8080/v1/audio/speech \
  -H "Authorization: Bearer sk-your-xiaomi-key" \
  -H "Content-Type: application/json" \
  -d '{"model":"mimo-v2-tts","input":"你好世界","voice":"mimo_default"}' \
  --output speech.mp3

参数说明

参数 类型 必填 说明
model string 模型名(任意值均映射到 mimo-v2-tts)
input string 要合成的文本(最大 4096 字符),支持 <style> 标签和音频标签
voice string 音色(见下方音色列表,不支持的 voice 自动回退到 mimo_default)
response_format string 音频格式:mp3(默认)、wav、opus、aac、flac、pcm
speed number 语速 0.25-4.0(默认 1.0)
instructions string 自然语言指令

音色

说明
mimo_default MiMo 默认
default_zh 中文女声
default_en 英文女声

OpenAI 标准 voice 名称(alloy、echo、nova 等)会自动映射到 mimo_default。任何不在支持列表中的 voice 同样自动回退到 mimo_default

音频格式兼容

小米 API 仅支持 mp3、wav、pcm、pcm16。当调用方请求 opus、aac、flac 时,代理会:

  1. 向小米请求最接近的支持格式(mp3 或 wav)
  2. 使用 ffmpeg 转码为调用方请求的格式
  3. 以正确的 Content-Type 返回

如果转码失败,会优雅降级返回原始格式而非报错。

风格与音频标签

MiMo TTS 支持通过特定格式控制语音风格和嵌入音频事件。Web UI 中内置了这些标签的快捷按钮。

风格标签

在文本开头添加 <style> 标签指定风格,多个风格用逗号分隔:

<style>开心</style>明天就是周五了,真开心!
<style>东北话</style>哎呀妈呀,这天儿也忒冷了吧!
<style>粤语</style>呢个真係好正啊!食过一次就唔会忘记!
<style>开心,东北话</style>哎呀妈呀,太高兴了!
<style>唱歌</style>原谅我这一生不羁放纵爱自由...

官方推荐风格(支持不在列表中的自定义风格):

类别 风格
语速控制 变快、变慢
情绪变化 开心、悲伤、生气
角色扮演 孙悟空、林黛玉
风格变化 悄悄话、夹子音、台湾腔
方言 东北话、四川话、河南话、粤语

音频标签

在文本中使用中文括号 () 包裹音频事件描述:

(紧张,深呼吸)呼……冷静,冷静。不就是一个面试吗……
(极其疲惫,有气无力)师傅……到地方了叫我一声……
如果我当时……(沉默片刻)哪怕再坚持一秒钟,结果是不是就不一样了?(苦笑)呵,没如果了。
(提高音量喊话)大姐!这鱼新鲜着呢!

更多详情参见 小米 MiMo TTS 官方文档

环境变量

变量 默认值 说明
XIAOMI_API_KEY - 小米 MiMo API 密钥
XIAOMI_BASE_URL https://api.xiaomimimo.com 小米 API 地址
XIAOMI_MODEL mimo-v2-tts 小米 TTS 模型名
DEFAULT_VOICE mimo_default 默认语音
PORT 8080 服务端口

Docker 构建

提供三个构建脚本:

  • build-docker-gitea.ps1 — 推送到 Gitea(latest 标签)
  • build-docker-gitea-beta.ps1 — 推送到 Gitea(beta 标签)
  • build-docker-hub.ps1 — 推送到 Docker Hub

友情链接(中文)