$npx -y skills add XiaomiMiMo/MiMo-Skills --skill mimo-v2-5-ttsMiMo V2.5 TTS 语音合成。使用小米 MiMo V2.5 TTS 系列模型生成语音。当需要将文字转为语音、发送语音消息、朗读内容、或用户要求「说出来」「语音回复」时激活此 skill。支持预置音色、音色设计、音色克隆三种模式,支持自然语言控制、导演模式,支持语气、情绪、方言的风格标签控制,预置音色支持唱歌。
| 1 | # MiMo V2.5 TTS |
| 2 | |
| 3 | 使用小米 MiMo V2.5 TTS 系列模型生成语音。支持中英文、预置音色、音色设计、音色克隆、情绪风格、方言、唱歌。 |
| 4 | |
| 5 | 脚本目录:`$SKILLS_PATH/mimo-v2-5-tts/scripts/` |
| 6 | |
| 7 | > **`$SKILLS_PATH` 说明:** skills 目录路径,因部署环境而异。 |
| 8 | |
| 9 | ## 模型选择 |
| 10 | |
| 11 | V2.5 系列提供三种模型,根据使用场景选择: |
| 12 | |
| 13 | | 模型 ID | 用途 | 音色来源 | 特殊能力 | |
| 14 | | --------------------------- | ---------------- | ------------ | -------- | |
| 15 | | `mimo-v2.5-tts` | 预置音色语音合成 | 内置精品音色 | 支持唱歌 | |
| 16 | | `mimo-v2.5-tts-voicedesign` | 文本描述定制音色 | 文本描述生成 | — | |
| 17 | | `mimo-v2.5-tts-voiceclone` | 音频样本复刻音色 | 音频样本 | — | |
| 18 | |
| 19 | **选择建议:** |
| 20 | |
| 21 | - 需要快速生成语音、需要唱歌功能 → `mimo-v2.5-tts`(预置音色) |
| 22 | - 需要独特音色 → `mimo-v2.5-tts-voicedesign`(文本描述生成) |
| 23 | - 需要模仿特定声音 → `mimo-v2.5-tts-voiceclone`(音频样本复刻) |
| 24 | |
| 25 | > **注意:** TTS 有随机性,同样输入的效果可能不同,用户有需要时可以多生成几次以供挑选。 |
| 26 | |
| 27 | ## 环境依赖 |
| 28 | |
| 29 | | 环境变量 | 说明 | 必需 | |
| 30 | | -------------- | ---------------------------------- | ---- | |
| 31 | | `MIMO_API_KEY` | MiMo API 密钥(MiMo 开放平台获取) | 是 | |
| 32 | |
| 33 | | 依赖 | 说明 | 必需 | |
| 34 | | --------- | ------------------------ | -------------------- | |
| 35 | | `python3` | 运行脚本 | 是 | |
| 36 | | `openai` | `pip install openai` | 是 | |
| 37 | | `ffmpeg` | 转换格式、长文本分段拼接 | 仅转换、拼接场景使用 | |
| 38 | | `curl` | 调用飞书 API | 仅飞书发送使用 | |
| 39 | |
| 40 | ## 预置音色 |
| 41 | |
| 42 | 使用 `mimo-v2.5-tts` 模型时必须明确指定音色,你可以提醒用户有哪些音色可选,或根据内容语言和风格选择合适音色。 |
| 43 | |
| 44 | | 音色名 | Voice ID | 语言 | 性别 | 风格 | |
| 45 | | ------ | -------- | ------- | ------ | ------------- | |
| 46 | | 冰糖 | `冰糖` | 中文 | 女性 | 活泼少女 | |
| 47 | | 茉莉 | `茉莉` | 中文 | 女性 | 知性女声 | |
| 48 | | 苏打 | `苏打` | 中文 | 男性 | 阳光少年 | |
| 49 | | 白桦 | `白桦` | 中文 | 男性 | 成熟男声 | |
| 50 | | Mia | `Mia` | English | Female | Lively girl | |
| 51 | | Chloe | `Chloe` | English | Female | Sweet Dreamy | |
| 52 | | Milo | `Milo` | English | Male | Sunny boy | |
| 53 | | Dean | `Dean` | English | Male | Steady Gentle | |
| 54 | |
| 55 | ## 自然语言控制 |
| 56 | |
| 57 | 所有模型都支持自然语言控制。 |
| 58 | |
| 59 | 通过自然语言描述让模型理解并生成对应风格的语音。所有模型均可通过 `--context` 参数传入自然语言控制指令:`mimo-v2.5-tts` 和 `mimo-v2.5-tts-voiceclone` 可用于调整指定音色下的语气情绪等风格;`mimo-v2.5-tts-voicedesign` 则通过这个选项同时控制音色和风格。 |
| 60 | |
| 61 | **能力特点:** |
| 62 | |
| 63 | - **多风格切换**:同一段语音内完成播报 → 低语 → 嘶吼的风格转场 |
| 64 | - **多情绪混合**:支持"压抑的愤怒"、"带着哽咽的笑意"等复合情绪 |
| 65 | - **多粒度控制**:段落级 → 句子级 → 词级 → 字粒度都可指定 |
| 66 | |
| 67 | **示例:** |
| 68 | |
| 69 | ``` |
| 70 | 用轻快上扬的语调向领导报喜,语速稍快,带着查到成绩后压抑不住的激动与小骄傲,声音明亮有活力。 |
| 71 | |
| 72 | 看着刚解决的难题成果忍不住得意忘形地惊呼,声音高亢明亮,语速偏快,语气中带着满满的自信与难以置信。 |
| 73 | ``` |
| 74 | |
| 75 | ### 导演模式 |
| 76 | |
| 77 | 自然语言控制的一种特殊用法是「导演模式」,即从角色、场景、指导三个维度全方位刻画人物与声线: |
| 78 | |
| 79 | - **【角色】** 人物身份、性格底色、外形气质与说话习惯 |
| 80 | - **【场景】** 此刻发生了什么、和谁说话、情绪位置 |
| 81 | - **【指导】** 语速、气息、停顿、重音、共鸣位置、音色质感、情绪起伏 |
| 82 | |
| 83 | **导演模式示例:** |
| 84 | |
| 85 | ``` |
| 86 | 角色:百年门阀岑家的现任大当家。自出生便被过继给祖庙的守门老人抚养,被塑造成一尊完美无瑕、绝情断欲的家族图腾。常年深居简出,对人有着极强的阶级疏离感。 |
| 87 | |
| 88 | 场景:在祠堂的阴影里,看着那个不顾一切冲破保安防线来找她、企图带她私奔的男人。她要用最冷硬的阶级壁垒,绞杀对方,也绞杀自己刚刚萌芽、却足以燎原的感情。 |
| 89 | |
| 90 | 指导: |
| 91 | 冰冷、慵懒却极具威压的低音御姐。发声通道非常松弛,没有任何剑拔弩张,却有着让人骨里生寒的压迫感。 |
| 92 | |
| 93 | - 语速与顿挫:极慢,每个字都像是在舌尖滚过才吐出来,带着上位者漫不经心的傲慢。句与句之间留下极长的、令人不安的空白。 |
| 94 | - 气声与实声:大部分时间,她的声音没有明显的声调起伏,实音重且硬,像是一条平缓却冰冷的暗河。但一定要在某些尾音处(如“真心”),加入极其轻微的气音收束,透出一丝连她自己都没察觉到的疲惫与渴望。 |
| 95 | - 咬字肌理:文白杂糅的用词带着旧时代的痕迹,唇齿音发得极轻但极清晰(如“冲撞”“廉价”),显得既清雅又锋利,刀刀见血。 |
| 96 | ``` |
| 97 | |
| 98 | 导演模式适合对语音表演要求较高的场景,例如角色配音、影视级内容生成等。 |
| 99 | |
| 100 | ## 音频标签控制 |
| 101 | |
| 102 | `mimo-v2.5-tts` 和 `mimo-v2.5-tts-voiceclone` 支持音频标签控制。`mimo-v2.5-tts-voicedesign` 暂不支持,如需控制风格请通过 `--context` 写更详细的描述。 |
| 103 | |
| 104 | 在文本任意位置用括号描述语气、情绪或能发出声音的动作,实现句内切换。括号内必须是声音相关内容(如语气、情绪、叹气、打哈欠、咳嗽),不能是身体动作(如转身、坐下、挥手)。 |
| 105 | |
| 106 | 中文支持全角 `()`、半角 `()`、方括号 `[]` 三种括号,英文支持半角 `()`、方括号 `[]` 两种括号。 |
| 107 | |
| 108 | ``` |
| 109 | (紧张,深呼吸)呼……冷静,冷静。不就是一个面试吗……(语速加快,碎碎念)自我介绍已经背了五十遍了,应该没问题的。加油,你可以的……(小声)哎呀,领带歪没歪? |
| 110 | (极其疲惫,有气无力)师傅……到地方了叫我一声……(长叹一口气)我先眯一会儿,这班加得我魂儿都要散了。 |
| 111 | 如果我当时……(沉默片刻)哪怕再坚持一秒钟,结果是不是就不一样了?(苦笑)呵,没如果了。 |
| 112 | (寒冷导致的急促呼吸)呼——呼——这、这大兴安岭的雪……(咳嗽)简直能把人骨头冻透了……别、别停下,走,快走。 |
| 113 | (提高音量喊话)大姐!这鱼新鲜着呢!早上刚捞上来的!哎!那个谁,别乱翻,压坏了你赔啊?! |
| 114 | |
| 115 | Achoo! Ahem. I—I really (cough) think I am coming down with a terrible (cough) terrible cold. |
| 116 | (heavy breathing) Just... give me... a second. I ran... all the way... from the station. |
| 117 | I just feel... long sigh... like I'm constantly treading water, you know? |
| 118 | It's just so stupid! (sobbing) We spent all that money on the cake and the dog just... (sudden laugh) he just ate the whole thing in one bite! |
| 119 | ``` |
| 120 | |
| 121 | 括号可以放在文本**任意位置**(开头、中间、结尾都行),可描述:语气、情绪、呼吸、笑声、哭声、喘息、咳嗽、打哈欠、叹气等能发出声音的内容。注意不能写身体动作(如转身、坐下、挥手)。 |
| 122 | |
| 123 | ### 整体风格标签 |
| 124 | |
| 125 | 整体风格标签是音频标签控制的一种情况,在目标文本开头添加 `(风格)` 标签,指定整段语音的发音风格。 |
| 126 | |
| 127 | 格式示例:`(风格1 风格2)待合成内容` |
| 128 | |
| 129 | **唱歌:** 必须在最开头添加 `(唱歌)` 标签,格式为:`(唱歌)歌词`。标签内标识支持:`唱歌`、`sing`、`singing`。 |
| 130 | |
| 131 | | 类别 | 常用风格 | |
| 132 | | --- | --- | |
| 133 | | **基础情绪** | `开心` `悲伤` `愤怒` `恐惧` `惊讶` `兴奋` `委屈` `平静` `冷漠` | |
| 134 | | **复合情绪** | `怅然` `欣慰` `无奈` `愧疚` `释然` `嫉妒` `厌倦` `忐忑` `动情` | |
| 135 | | **整体语调** | `温柔` `高冷` `活泼` `严肃` `慵懒` `俏皮` `深沉` `干练` `凌厉` | |
| 136 | | **音色定位** | `磁性` `醇厚` `清亮` `空灵` `稚嫩` `苍老` `甜美` `沙哑` `醇雅` | |
| 137 | | **人设腔调** | `夹子音` `御姐音` `正太音` `大叔音` `台湾腔` | |
| 138 | | **方言** | `东北话` `四川话` `河南话` `粤语` | |
| 139 | | **角色扮演** | `孙悟空` `林黛玉` | |
| 140 | | **唱歌** | `唱歌` | |
| 141 | |
| 142 | **经典组合:** `(怅然) 这么多年过去了...`、`(慵懒) 再让我睡五分钟...`、`(磁性) 夜已经深了...`、`(东北话) 哎呀妈呀...`、`(粤语) 呢个真係好正啊...` |
| 143 | |
| 144 | ## 音色描述编写 |
| 145 | |
| 146 | 当使用 `mimo-v2.5-tts-voicedesign` 进行文本描述定制音色时,需要编写一段简短的音色描述,指导模型生成符合预期特质的声音,和自然语言控制共用 `--context` 参数输入。音色描述的写作要求如下: |