MiMo TTS 2.5 Plus — 语音合成
小米大模型 MiMo TTS 2.5 Plus,基于原版 mimotts25 深度优化增强。
完全兼容官方 XiaomiMiMo/MiMo-Skills CLI 接口。
⭐ 核心原则(决定声音情感质量): TTS 合成时,情感/语气/氛围的指令放在 user 消息中,要念的文字放在 assistant 消息中。user 消息的指令越具体、越有画面感,生成的声音越自然生动。这是获得高质量情感表现的关键。
🎯 用户自然语言控制指南
当用户说"帮我说句话/念段文字"时,自动处理:
从用户的话中提取:
- 要念的文字 →
--text
- 情感/风格描述 →
--context(越具体越好!)
- 音色 → 中文默认
冰糖,英文默认 Chloe
模型选择规则:
- 用户描述音色形象("像20岁少女")→ voicedesign
- 用户给音频文件要模仿 → voiceclone
- 用户只说要念什么或有情感要求 → 预置音色 (mimo_tts.py)
- 复杂情感/角色扮演 → 用导演模式放
--context 里
关键规则:
- 用户没提情感时,根据文字内容自动推断补全
- 合成文本必须贴合音色描述(治愈系配晚安,元气系配早安)
- 生成后用 MEDIA 或 message 交付
模型选择
V2.5 系列提供三种模型,根据使用场景选择:
| 模型 ID | 用途 | 音色来源 | 特殊能力 |
|---|
mimo-v2.5-tts | 预置音色语音合成 | 内置精品音色 | 支持唱歌 |
mimo-v2.5-tts-voicedesign | 文本描述定制音色 | 文本描述生成 | — |
mimo-v2.5-tts-voiceclone | 音频样本复刻音色 | 音频样本 | — |
选择建议:
- 需要快速生成语音、需要唱歌功能 →
mimo-v2.5-tts(预置音色)
- 需要独特音色 →
mimo-v2.5-tts-voicedesign(文本描述生成)
- 需要模仿特定声音 →
mimo-v2.5-tts-voiceclone(音频样本复刻)
环境变量
| 变量 | 说明 | 必需 |
|---|
MIMO_API_KEY | MiMo API 密钥(推荐) | 是 |
OPENAI_API_KEY | 备选 API 密钥来源 | 可选 |
MIMO_API_BASE | API 端点(默认 token-plan-cn 中国集群) | 可选 |
MIMO_OUTPUT | 默认输出路径 | 可选 |
脚本使用
官方兼容脚本 + 增强统一入口,共四个脚本:
| 脚本 | 模型 | 用途 |
|---|
mimo_tts.py | mimo-v2.5-tts | 预置音色语音合成 |
mimo_tts_voicedesign.py | mimo-v2.5-tts-voicedesign | 文本描述定制音色 |
mimo_tts_voiceclone.py | mimo-v2.5-tts-voiceclone | 音频样本复刻音色 |
tts.py | 统一入口 | 增强快捷模式 |
官方兼容模式
# 预置音色
python3 scripts/mimo_tts.py --text "你好" --voice "冰糖"
# 自然语言风格控制
python3 scripts/mimo_tts.py --text "没关系" --voice "冰糖" --context "温柔,语速稍慢"
# 声音设计
python3 scripts/mimo_tts_voicedesign.py --context "青年女性,活泼元气" --text "你好呀!"
# 声音克隆
python3 scripts/mimo_tts_voiceclone.py --voice-file sample.mp3 --text "你好"
增强统一入口
# 基础合成
python3 scripts/tts.py "你好" -o hello.mp3
# 指定音色和风格
python3 scripts/tts.py "今天天气真不错" -v 茉莉 -s "开心 变慢"
# 声音设计快捷模式
python3 scripts/tts.py "你好呀" --design "22岁女性,活泼少女,声音明亮甜美"
# 声音克隆快捷模式
python3 scripts/tts.py "模仿他的声音说话" --clone sample.mp3
# 导演模式
python3 scripts/tts.py "你终于来了" --user-msg "角色:22岁活泼少女..."
核心原则:两条消息的分工
TTS 的 API 调用中有两条消息,分工完全不同:
| 消息角色 | 放什么 | 作用 |
|---|
role: user | 情感/语气/风格指令 | 控制怎么念:语速、情绪、音色质感、导演模式 |
role: assistant | 要合成的文本 + 音频标签 | 控制念什么:文字内容 + 精细的音频标签 |
⚠️ 两条消息的内容不会叠加! user 消息中的文字不会出现在语音中,它只是告诉模型"用这种语气".
好的 user 指令示例:
用轻快上扬的语调向领导报喜,语速稍快,带着查到成绩后压抑不住的激动与小骄傲,声音明亮有活力。
差的 user 指令(太模糊,效果差):
请用开心的语气念。
音频标签控制(放在 assistant 消息中)
在文本任意位置用括号描述语气/情绪/声音,实现句内切换。
中文支持全角 ()、半角 ()、方括号 []。
英文支持半角 ()、方括号 []。
整体风格标签
在文本开头加 (风格1 风格2) 指定整段发音风格:
| 类别 | 常用风格 |
|---|
| 基础情绪 | 开心 悲伤 愤怒 恐惧 惊讶 兴奋 委屈 平静 冷漠 |
| 复合情绪 | 怅然 欣慰 无奈 愧疚 释然 嫉妒 厌倦 忐忑 动情 |
| 整体语调 | 温柔 高冷 活泼 严肃 慵懒 俏皮 深沉 干练 凌厉 |
| 音色定位 | 磁性 醇厚 清亮 空灵 稚嫩 苍老 甜美 沙哑 醇雅 |
| 人设腔调 | 夹子音 御姐音 正太音 大叔音 台湾腔 |
| 方言 | 东北话 四川话 河南话 粤语 |
| 角色扮演 | 孙悟空 林黛玉 |
| 唱歌 | 唱歌 sing singing |
经典组合:
(怅然)这么多年过去了,再走过那条街,心里一下子空了一块。
(慵懒)再让我睡五分钟……就五分钟,真的,最后一次。
(磁性)夜已经深了,城市还在呼吸。我是今晚陪你的人,欢迎收听《午夜电台》。
(东北话)哎呀妈呀,这天儿也忒冷了吧!
(粤语)呢个真係好正啊!食过一次就唔会忘记!
(唱歌)原谅我这一生不羁放纵爱自由,也会怕有一天会跌倒。
精细音频标签(行内嵌入)
支持在文本任意位置插入标签,实现词级/字级的精细控制:
| 类别 | 常用标签 |
|---|
| 语速节奏 | [停顿] [长停顿] [急促] [拖音] [语速加快] [语速放缓] |
| 情绪状态 | [紧张] [害怕] [激动] [疲惫] [委屈] [撒娇] [心虚] [震惊] [不耐烦] |
| 语音特征 | [颤抖] [变调] [破音] [鼻音] [气声] [沙哑] |
| 声音动作 | [轻声] [低语] [叹气] [长叹] [吸气] [深呼吸] [哽咽] [笑] [轻笑] [大笑] [冷笑] [抽泣] [呜咽] [咳嗽] [喘息] |
样例:
(紧张,深呼吸)呼……冷静,冷静。不就是一个面试吗……(语速加快,碎碎念)自我介绍已经背了五十遍了,应该没问题的。加油,你可以的……(小声)哎呀,领带歪没歪?
(极其疲惫,有气无力)师傅……到地方了叫我一声……(长叹一口气)我先眯一会儿,这班加得我魂儿都要散了。
如果我当时……(沉默片刻)哪怕再坚持一秒钟,结果是不是就不一样了?(苦笑)呵,没如果了。
(寒冷导致的急促呼吸)呼——呼——这、这大兴安岭的雪……(咳嗽)简直能把人骨头冻透了……别、别停下,走,快走。
(提高音量喊话)大姐!这鱼新鲜着呢!早上刚捞上来的!哎!那个谁,别乱翻,压坏了你赔啊?!
自然语言控制(放在 user 消息中)
通过自然语言描述,让模型理解并生成对应风格的语音。这是获得高质量情感表现的最重要手段。
能力特点:
- 多风格切换:同一段语音内完成播报 → 低语 → 嘶吼的风格转场,过渡自然不突兀
- 多情绪混合:支持"压抑的愤怒"、"带着哽咽的笑意"、"温柔但疲惫"、"狂躁中的温柔"等复合情绪,而非只能选单一情绪
- 多粒度控制:段落级(整体基调)→ 句子级(节奏)→ 词级(重音)→ 字粒度(某一个字的哽咽、拖音、气音),都可在指令中指定
自然语言控制示例
用轻快上扬的语调向领导报喜,语速稍快,带着查到成绩后压抑不住的激动与小骄傲,声音明亮有活力。
看着刚解决的难题成果忍不住得意忘形地惊呼,声音高亢明亮,语速偏快,语气中带着满满的自信与难以置信。
用明亮活泼的青少年嗓音,带着恶作剧得逞后的得意与戏谑,语速偏快且咬字轻巧,在强调赌注时语气微微上扬。
Bright, bouncy, slightly sing-song tone — like you're bursting with good news you can barely hold in. Fast pace, rising pitch at the end.
🎬 导演模式(高级情感控制)
自然语言控制的最高级形式。从角色、场景、指导三个维度全方位刻画,模型会像演员一样根据"剧本指示"生成富有层次感的语音表演。
三要素
【角色】人物身份、性格底色、外形气质与说话习惯。越具体越好。
【场景】此刻发生了什么、和谁说话、情绪位置。时间、地点、事件、对方反应都可写。
【指导】像导演给演员下达演绎要领:语速、气息、停顿、重音、共鸣位置、音色质感、情绪起伏。可以写得极细腻。
完整示例
角色:百年门阀岑家的现任大当家。自出生便被过继给祖庙的守门老人抚养,被塑造成一尊完美无瑕、绝情断欲的家族图腾。常年深居简出,对人有着极强的阶级疏离感。
场景:在祠堂的阴影里,看着那个不顾一切冲破保安防线来找她、企图带她私奔的男人。她要用最冷硬的阶级壁垒,绞杀对方,也绞杀自己刚刚萌芽、却足以燎原的感情。
指导:
冰冷、慵懒却极具威压的低音御姐。发声通道非常松弛,没有任何剑拔弩张,却有着让人骨里生寒的压迫感。
- 语速与顿挫:极慢,每个字都像是在舌尖滚过才吐出来,带着上位者漫不经心的傲慢。句与句之间留下极长的、令人不安的空白。
- 气声与实声:大部分时间,她的声音没有明显的声调起伏,实音重且硬,像是一条平缓却冰冷的暗河。但一定要在某些尾音处,加入极其轻微的气音收束,透出一丝连她自己都没察觉到的疲惫与渴望。
- 咬字肌理:文白杂糅的用词带着旧时代的痕迹,唇齿音发得极轻但极清晰,显得既清雅又锋利。
导演模式适合对语音表演要求较高的场景,例如角色配音、影视级内容生成等。
音色描述编写(Voicedesign 专用)
使用 mimo-v2.5-tts-voicedesign 模型时,user 消息中的文本就是音色设计描述。描述越具体、越生动,生成的音色越贴近预期。
关键维度
| 维度 | 示例 |
|---|
| 性别与年龄 | young woman in her mid-20s / 五十多岁的中年男性 |
| 音色/质感 | deep and gravelly / 丝滑醇厚、带着磁性 |
| 情绪/语气 | warm and confident / 温柔但带着一丝疲惫 |
| 语速/节奏 | slow and deliberate / 语速极快,像连珠炮 |
可选项(增加丰富度)
- 角色/人设: narrator, podcast host, 评书先生, 深夜电台DJ
- 说话风格: casual and colloquial, 一本正经地, 压低嗓音像在密谋
- 场景描写: narrating a nature documentary, 在给投资人路演
- 年代参照: 1940s film noir, 八十年代译制片配音
写法建议
简洁描述型 — 用关键词或一句话快速勾勒声音轮廓:
Heavy Russian accent, gruff middle-aged male, blunt and matter-of-fact.
专业描述型 — 通过场景、人设或多维度细节立体刻画声音:
Young female, extreme close-up with a binaural, ear-to-ear ASMR feel. Audible breathing, subtle swallowing, and soft natural lip sounds. She speaks very slowly, creating a deeply relaxing and immersive experience.
一位年迈的老先生,说带北方口音的普通话,语速缓慢而沉稳,嗓音略带沙哑和沧桑感,仿佛一位饱经风霜的老爷爷在讲故事,充满岁月的智慧。
注意事项
- 长度:1-4 句即可,不需要写长文
- 避免冲突:不要同时要求矛盾的特征(如"稚嫩的童声 + CEO气场")
- 避免音质效果词:不要写混响、回声、EQ、压缩等后期处理相关描述
- 避免模糊词:不要用"普通的""正常的""外国的"等缺乏具体指向的描述
- 中英文均可:模型同时支持中英文音色描述
- 合成文本要贴合音色: assistant 消息中的合成文本应与音色描述相匹配,才能获得最佳效果。例如为"温柔治愈系女声"搭配一段晚安独白,而非一段激烈的体育解说。
音色描述编写
使用声音设计(voicedesign)时,音色描述的写作要求:
必写项:
- 身份锚点:年龄段 + 性别
- 声音质感:气息走向、共鸣位置、吐字与音色底色
- 语速节奏:稳/快/慢/忽快忽慢
- 情绪底色:嗓子默认状态
可选项:
5. 风格/身份标签:拍卖师风格 / 美食评论家风格 / 播音员风格
6. 辨识度小癖好:字尾带颤音、笑起来是胸腔闷笑
音色描述样例:
中年男性,节奏极快,情绪高亢,拍卖师风格。吐字连珠,带抑扬顿挫与紧迫感。
青年女性,电竞解说风格,语速极快且连贯,带明显气口和爆发性强调。
预置音色
| 音色名 | Voice ID | 语言 | 性别 | 风格 |
|---|
| 冰糖 🍬 | 冰糖 | 中文 | 女性 | 活泼少女(默认音色) |
| 茉莉 🌸 | 茉莉 | 中文 | 女性 | 知性女声 |
| 苏打 🥤 | 苏打 | 中文 | 男性 | 阳光少年 |
| 白桦 🌲 | 白桦 | 中文 | 男性 | 成熟男声 |
| Mia | Mia | English | Female | Lively girl |
| Chloe | Chloe | English | Female | Sweet Dreamy |
| Milo | Milo | English | Male | Sunny boy |
| Dean | Dean | English | Male | Steady Gentle |
可用模型
| 模型 | 说明 |
|---|
mimo-v2.5-tts | ✅ 最新推荐 — 更自然的语音合成,新音色(默认) |
mimo-v2-tts | 旧版 TTS 模型(备选) |
mimo-v2.5-tts-voicedesign | 声音设计(文本描述定制音色) |
mimo-v2.5-tts-voiceclone | 声音克隆(音频样本复刻音色) |
增强功能对比
| 功能 | 官方版 | 本增强版 |
|---|
| 三个独立脚本 | ✅ | ✅ |
| openai 库 | ✅ | ✅(备用 urllib) |
| token-plan-cn 集群 | ❌(仅 api.xiaomimimo.com) | ✅(默认即国内集群) |
| mp3/ogg 输出 | ❌(仅 wav) | ✅(默认 mp3) |
| 统一入口 tts.py | ❌ | ✅ |
--design 快捷模式 | ❌ | ✅ |
--clone 快捷模式 | ❌ | ✅ |
--list-models | ❌ | ✅ |
| OPENAI_API_KEY 兼容 | ❌ | ✅ |
| 重试机制 | ❌ | ✅ |
| ClawHub 一键安装 | ❌ | ✅ |
交付
生成音频后:
MEDIA:output.mp3
首次配置
- 获取 API Key:前往 小米 MiMo 开放平台
- 设置环境变量:
export MIMO_API_KEY=your-key-here
- 或通过 OpenClaw 配置:
openclaw config set skills.entries.mimotts25.apiKey "your-key"
- 重启会话
📋 版本历史
Plus 1.1.0 (2026-04-26)
- ✨ 完全兼容官方 MiMo-Skills — 新增三个独立脚本
mimo_tts.py:预置音色(--text --voice --context)
mimo_tts_voicedesign.py:声音设计(--text --context)
mimo_tts_voiceclone.py:声音克隆(--text --voice-file --context)
- ✨ 融合官方 SKILL.md — 导演模式、音色描述编写、自然语言控制示例
- ✨ 三个脚本均支持 openai 库(首选)和 urllib(备选)两种调用方式
- ✨ 支持
MIMO_API_BASE 环境变量切换 API 端点
- ✨ 保留 tts.py 统一入口的所有增强功能
Plus 1.0.4 (2026-04-25)
- 🐛 修复
<style> 标签被 API 当成文字读出来的 bug
Plus 1.0.0 (2026-04-24)
- ✨ 升级默认模型为 mimo-v2.5-tts
- ✨ 新增声音设计、声音克隆、导演模式
- ✨ 默认音色冰糖,默认格式 mp3