Kyutai全双工语音对话Moshi,理论延迟160毫秒能叠话

Moshi: a speech-text foundation model for real-time dialogue

Alexandre Défossez, Laurent Mazaré, Manu Orsini, Amélie Royer, Patrick Pérez, Hervé Jégou, Edouard Grave, Neil Zeghidour

eess.AS, cs.AI, cs.CL, cs.LG, cs.SD

2024-09-18

Kyutai把7B文本模型、低码率编解码器和双音频流拼成全双工对话系统Moshi,理论延迟160毫秒,口语Llama问答准确率62.3%,约为SpeechGPT的三倍。

这篇在解决什么

现在能打电话的语音助手几乎都是管道:VAD切段、ASR转文字、LLM想、TTS再念出来。延迟按段叠加,常见要好几秒;情绪、口音、环境音在文字接口处被扔掉;对话被切成轮次,插话、叠音、嗯嗯啊啊这些占自然谈话10%到20%时间的现象,管道根本不建模。自然对话的平均应答大约230毫秒,级联系统差一个数量级。

Moshi把口语对话直接当成语音到语音的生成:模型一直在听、一直在出声(说话或静音),用户和自己各走一条音频token流,没有「现在轮到谁」的显式开关。

方法

三块。Helium是从零训的7B文本Transformer:RMSNorm、RoPE、SwiGLU、32k词表,2.1T英文token。Mimi是因果神经音频编解码器,24 kHz进、12.5 Hz出、8级量化、码率1.1 kbps。第一级用WavLM蒸馏语义,其余七级并行做声学残差(split RVQ),避免语义和波形抢同一个残差。纯对抗损失训练时MUSHRA到81.0,明显高过加重建损失的58.8,尽管VisQOL这种客观指标会反过来。首帧80毫秒就能编解码,整条链路可流式。

生成侧是RQ-Transformer:大的时间Transformer(从Helium初始化)每步看12.5 Hz的一帧,小的深度Transformer(6层、维1024)在这一帧里按层预测各码本。声学码本相对语义码本延迟1到2步,好让大模型承接语义-声学依赖,深度模型只处理更弱的条件。双流把Moshi和用户的码本拼在同一时间步,推理时用户侧喂进去、模型侧采样。

Inner Monologue把Whisper对齐后的文本token插在每帧最前面,作为语义码本的前缀。文本更紧凑,填充token约占65%。这一步对可懂度和知识几乎是决定性的:不开Inner Monologue,口语问答会掉到原来的三分之一左右。文本相对音频的延迟还能改任务:音频晚2秒得到流式TTS(LibriSpeech test-clean WER 4.7%,Vall-E 5.9%),文本晚2秒得到流式ASR(5.7% WER,不如同类lookahead的FastConformer 3.6%)。

训练分阶段:单流无监督音频100万步,一半时间继续练纯文本以防忘;用diarization伪造双流10万步;Fisher真实电话对话1万步;合成助手脚本指令微调3万步。上下文实验里可以做到5分钟。

结果

Helium在同类计算预算的7B里能打:MMLU 54.3,高于Llama 2的45.3,低于用更多计算的Mistral 62.5和Gemma 64.3。进音频之后Moshi的MMLU掉到49.7。

口语问答是和级联模型分家的地方。Inner Monologue把Moshi从音频-only的WebQ 9.2 / LlamaQ 21.0 / TriviaQA 7.3,拉到26.6 / 62.3 / 22.8,超过SpeechGPT 7B(6.5 / 21.6 / 14.8)和Spectron。Helium纯文本 topline 是32.3 / 75.0 / 56.4,音频训练仍有损失,TriviaQA掉得最狠,作者认为指令数据偏口头短句,吃不住多句句法。

模型WebQLlamaQAudio TriviaQA
SpeechGPT 7B6.521.614.8
Moshi 无Inner Monologue9.221.07.3
Moshi26.662.322.8
Helium 纯文本32.375.056.4

自说自话的双人对话里,温度1.0时DialoGPT困惑度79.3,真实Fisher是59.6;重叠4.1秒接近真实的3.3秒,dGSLM非级联基线几乎说不成句(困惑度195.9)。sWUGGY这类textless指标在指令微调后会掉,作者认为它和真实可懂度不对齐,改口靠问答和对话统计。8bit量化大约2个MMLU点、模型体积减半,4bit对Moshi掉5到10点,比对Helium伤得重。

为什么重要

这是第一篇把全双工、流式、带文本知识的口语LLM真正跑通并开出demo的工作。理论160毫秒、实践约200毫秒,低于跨语言自然应答的230毫秒均值。Inner Monologue证明:语音到语音不必把文字丢掉,按帧当语义前缀,既保知识又对流式友好,和必须先写完整段再念的Chain-of-Modality不是一路。

许可是CC BY-NC-SA 4.0,不能直接商用。架构复杂度高,复现成本远大于「Whisper+LLM+TTS」管道。

局限与存疑

MMLU和TriviaQA相对Helium的缺口说明音频训练在挤占事实容量,合成指令没有补上书面句法。流式ASR 5.7%明确不是SOTA,作者也写成「说明框架灵活」而不是要打榜。Mimi的MUSHRA很高,但生成音频另用MOSNet看量化退化,两套听感指标没有在同一张表里对齐。安全节报了毒性和声音一致性,demo仍是单一音色。量化后声学劣化比文本更明显,端侧部署不是把LLM的int4菜谱搬过来就完事。双流在Fisher上学真实重叠,指令微调用的是脚本,开放域插话质量有多少迁移,论文没有人机实验数字。

术语

原文与代码

社区讨论

相关论文

全部论文解读