Moshi 论文解读:200 毫秒全双工,人类第一次能跟 AI 抢话
论文:Moshi: a speech-text foundation model for real-time dialogue(arXiv<2410>2410>.00037) 作者/机构:Alexandre Défossez、Laurent Mazaré、Manu Orsini 等 / Kyutai(巴黎独立 AI 实验室)
2024 年 5 月,OpenAI 用 GPT-4o 的演示把”实时语音对话”这个概念打进所有人脑子里,但代码和权重一个都不给。四个月后,巴黎的 Kyutai 实验室直接把全套方案开源了:Moshi,全球第一个实时**全双工(full-duplex)**口语大模型。它能一边听你说、一边准备开口,你能打断它,它也会在你说话时回”嗯嗯""对对”这种附和词,不再傻等你把话说完。2024.07.03 首次公开演示,2024.09 论文与代码一起放出。理论延迟 160 ms、实测约 200 ms,这个数字放到两年后的今天依然是第一梯队。
一、为什么老式语音助手那么”不自然”
在 Moshi 之前,几乎所有语音助手都是一条流水线:**语音活动检测(VAD)**判断你有没有说话 → **自动语音识别(ASR)**把你的话转成文字 → 文本大模型生成回答 → **文本转语音(TTS)**念出来。这条链有三个硬伤:第一,环节太多,端到端延迟好几秒,像打电话给客服等转接;第二,文字是中间介质,你的情绪、语气、叹气、笑声在转成文字那一刻全丢光了;第三,必须按”说话人轮转”切分,一旦两人同时开口、插话、附合,系统就乱了。
此前唯一做过全双工的是 Google 的 dGSLM,但它只是概念验证:不能在线实时跑,没有文本大模型的知识,还只建模语义 token 不建模声学信息。Moshi 把这些问题一次性解决,靠的是一套”多流”架构和一个特别能压的编解码器。
二、架构总览:Helium 7B 打底,Mimi 当耳朵和嗓子
Moshi 的骨架是 Helium,一个 Kyutai 从零训练的 7B 参数文本大语言模型,在 2.1 万亿 token 的高质量英文数据上预训练。它负责”说什么”——语言能力、知识和推理。而音频的”怎么说”,交给配套的 Mimi 神经音频编解码器:用户的语音进来,Mimi 先压成 token;Moshi 要开口,也是先生成 Mimi 的 token,再还原成波形。
整体是一个多流(multi-stream)语音到语音(speech-to-speech)Transformer。模型并行维护两条音频 token 流:一条是用户的语音,一条是 Moshi 自己的语音。两条流同时进、同时出——这就是”全双工”的底层保障。
三、Mimi:把 24 kHz 声音压成 12.5 Hz token
Mimi 是当时音频压缩效率的极端选手:输入 24 kHz 波形,输出 12.5 Hz 的 token 流,比特率只有 1.1 kbps。什么概念?MP3 时代 64 kbps 起步,EnCodec 做到 1.5 kbps,Mimi 直接压到 1.1,还足够支撑高质量语音生成。
Mimi 做了三件关键的事:
- 编码器和解码器都换成 Transformer,局部特征建模更强;
- 第一级码本蒸馏 WavLM 的语义表示——这是分割式残差向量量化(split-RVQ)的精髓:第一级码本装”语义”(这句话在说什么),后面 7 级码本装”声学”(音色、语气、环境声),一个模型同时背两种信息;
- 纯对抗训练(adversarial-only),不用 L1/L2 重建损失,靠判别器逼重建音频”听上去真”,主观听感反而更好。
这里要特别澄清一个被大量二手资料搞错的点:Mimi 的 80 ms 是帧长(frame length),也就是每 80 毫秒出一个 token,它不是端到端延迟。Moshi 整个系统的端到端延迟是理论 160 ms、实测约 200 ms,别把这两个数字混为一谈。
四、双流架构:怎么”一边听一边说”
Moshi 沿用 **RQ-Transformer(残差量化 Transformer)**的分工思路:一个大模型管”时间轴”,一个小模型管”码本轴”。
- Temporal Transformer(时间 Transformer):就是 Helium 7B 主干,处理序列在时间维度上的长程依赖——记住上下文、决定下一步说什么;
- Depth Transformer(深度 Transformer):很小的模型,负责在同一时间步内把 Mimi 的多个码本依次生成出来。
之所以拆开,是因为如果所有码本都让 7B 主干逐格自回归预测,token 率会爆炸(每时间步要预测 8 个码本)。主干只管时间、小模型管码本,实时推理才跑得动。又因为模型同时建模用户和自身的两条流,并且删掉了显式说话人轮转,两人同时开口、插嘴、打断都被当成自然对话的一部分处理。
五、Inner Monologue:先说给自己听,再说给你听
Moshi 最出名的设计叫 内心独白(Inner Monologue):每个时间步,模型先预测一个时间对齐的文本 token,作为生成音频 token 的前缀。也就是说,Moshi 在”开口”之前,先在内部把自己要说的话以文字形式过一遍,再照着这段文字生成语音。
这个设计的收益立竿见影:文本 token 信息密度高,等于给音频生成提供一个”语义锚点”,语音的语言质量大幅提升。论文报告,在口语问答(spoken question answering)任务上,加 Inner Monologue 比不加准确率几乎翻了三倍。它还带来一个副产品——通过调整文本和音频 token 的时间对齐关系,同一个模型能随时切换成流式语音识别(streaming ASR)、流式 TTS 或者完整对话模式。
六、训练与工程
训练分四阶段:先用音频数据无监督预训练(Temporal Transformer 从 Helium 初始化,混一半纯文本 batch 防灾难性遗忘)→ 用按说话人分段的真实对话做 diarized post-training(多流训练)→ 在 Fisher 电话对话语料上微调获得全双工能力 → 再用合成互动剧本做指令微调,对齐对话行为。指令微调语料总计超过 2 万小时。
训练在 Scaleway 提供的 **127 个 DGX 节点(1016 张 H100)**上完成。开源时给了两套合成音色:Moshika(女声)、Moshiko(男声),带 bf16 和 int8 量化,还提供 PyTorch、MLX(苹果芯片)、Rust/Candle 三套推理栈,面向 Mac、iPhone 和边缘部署。
收尾:我的一点看法
Moshi 的历史地位,是把”实时、全双工、端到端、开源”四个词第一次凑齐在一个模型上。dGSLM 证明了全双工概念可行,GPT-4o 证明了闭源能做到人类级体验,但 Kyutai 用 7B 模型加一整套开源方案,给学界立了一根可以照着抄的柱子。后来 NVIDIA 的 PersonaPlex 直接继承它的架构,就是最好的背书。
我最欣赏的是 Inner Monologue 这个”偷懒”设计——明明是语音模型,偏要在内部保留一条文字通道。它说明一个朴素道理:让模型用自己的语言能力先”想”,再配语音,比硬端到端强行学省力得多。这条思路后来在 Mini-Omni、GLM-4-Voice 上都能看到影子。
局限也明显:Moshi 只有两种固定合成音色,想换声音得自己微调;它是语音为主的模型,知识和复杂推理远不如同规模文本大模型,更适合当”语音交互界面”而不是”通用助手”;全双工实时跑还需要一块够劲的 GPU。另外权重用 CC-BY-4.0、代码用 Apache-2.0,商用要留意署名要求。
附:核心数据速查
基本盘
| 项目 | 数值 |
|---|---|
| 模型规模 | Helium 7B 文本主干 + 小型 Depth Transformer |
| 架构 | 多流语音到语音 Transformer(用户流 + Moshi 流) |
| 音频编解码器 | Mimi:24 kHz → 12.5 Hz token、1.1 kbps、帧长 80 ms |
| 端到端延迟 | 理论 160 ms / 实测约 200 ms |
| 时间线 | 2024.07.03 首次公开演示;2024.09 开源 + 论文(arXiv v1 于 2024.09.17) |
| 训练算力 | 127 DGX 节点(1016 张 H100),Scaleway 提供 |
| 许可 | 代码 Apache-2.0 / 权重 CC-BY-4.0 |
核心创新
| 创新 | 要点 |
|---|---|
| Mimi 编解码器 | split-RVQ:首级蒸馏 WavLM 语义 + 7 级声学;纯对抗训练;80 ms 帧长 |
| 双流建模 | 用户/自身两条音频流并行,删除显式说话人轮转 |
| Inner Monologue | 时间对齐文本 token 作音频前缀,口语问答准确率提升近 3 倍 |
| 层级分工 | 7B Temporal Transformer 管时间、小 Depth Transformer 管码本 |
关键成绩
- 首个实时全双工口语大语言模型
- 口语问答:Inner Monologue 带来近 3 倍准确率提升
- 一个模型可切换流式 ASR / 流式 TTS / 全双工对话三种模式
- Helium 7B 在标准文本基准上持平同规模模型
关键概念清单
- full-duplex = 全双工,边说边听
- speech-to-speech = 语音直接进语音出
- RQ-Transformer = 残差量化 Transformer(时间/码本分工)
- split-RVQ = 分割式残差向量量化(语义/声学分级)
- Inner Monologue = 内心独白,文本先行指导音频生成
- VAD = Voice Activity Detection,语音活动检测
- diarized post-training = 按说话人分段的后训练
- Temporal / Depth Transformer = 时间 / 深度 Transformer
如果这篇文章对你有帮助,欢迎分享给更多人!
部分信息可能已经过时





