流式语音到语音:Moshi 与 Hibiki 的全双工对话 本节摘要:2024-2026 年重新定义了语音 AI。Moshi 用单个模型在 200 毫秒延迟下同时听与说,Hibiki 逐块做语音到语音翻译——两者都抛弃了 ASR → LLM → TTS 的级联流水线,改用基于 Mimi 编解码 token 的统一全双工架构。这是新的参考设计。本节聚焦一个根本问题:第 11、12 节搭出的语音 agent 都有一个 300500 毫秒的延迟地板(VAD 触发 → STT 处理 → LLM 推理 → TTS 生成),每级都有自己的最小延迟,流水线形状本身就把你封顶了。Moshi(Kyutai, 2024-2026)问了一个不同的问题:如果没有流水线呢?
本节摘要:2024-2026 年重新定义了语音 AI。Moshi 用单个模型在 200 毫秒延迟下同时听与说,Hibiki 逐块做语音到语音翻译——两者都抛弃了 ASR → LLM → TTS 的级联流水线,改用基于 Mimi 编解码 token 的统一全双工架构。这是新的参考设计。本节聚焦一个根本问题:第 11、12 节搭出的语音 agent 都有一个 300~500 毫秒的延迟地板(VAD 触发 → STT 处理 → LLM 推理 → TTS 生成),每级都有自己的最小延迟,流水线形状本身就把你封顶了。Moshi(Kyutai, 2024-2026)问了一个不同的问题:如果没有流水线呢?如果一个模型直接吃音频、吐音频,持续不断,文本只是中间的「内心独白」而非必经阶段?答案就是全双工语音到语音:理论延迟 160 毫秒(80 毫秒 Mimi 帧 + 80 毫秒声学延迟),单 L4 GPU 上实测 200 毫秒——是顶级流水线语音 agent 的一半。本节将拆解 Moshi 的双 Mimi 流 + 内心独白文本架构、深度 Transformer 的码本间依赖建模、Hibiki 的流式翻译、Sesame CSM 这位「表亲」,以及 Moshi 赢在哪里、输在哪里。读完本节,你能判断何时该用全双工架构、何时该坚持级联流水线,并理解为什么 2026 年多数企业生产仍然后者。
阅读完本节,你应当能够:
第 11、12 节搭出的每个语音 agent 都有一个约 300~500 毫秒的根本延迟地板:VAD 触发、STT 处理、LLM 推理、TTS 生成。每级都有自己的最小延迟,你可以调优与并行,但流水线形状把你封顶。
Moshi(Kyutai, 2024-2026)问了一个不同的问题:如果没有流水线呢?如果一个模型直接吃音频、吐音频,持续不断,文本只是中间的「内心独白」而非必经阶段?
答案就是全双工语音到语音。理论延迟 160 毫秒(80 毫秒 Mimi 帧 + 80 毫秒声学延迟)。单 L4 GPU 上实测 200 毫秒。这是顶级流水线语音 agent 的一半。
输入:两条 Mimi 编解码流,都是 12.5 Hz × 8 码本:
Transformer:一个 7B 参数的时序 Transformer 同时处理两条流加一条文本「内心独白」流。在每个 80 毫秒步,它:
三条流——用户音频、Moshi 音频、Moshi 文本——并行运行。Moshi 能边说边听用户;能在用户打断时打断自己;能不打断主话语地发回「嗯哼」之类的反向频道。
深度 Transformer:在一帧内,8 个码本不是并行预测的——它们有码本间依赖。一个小型 2 层「深度 Transformer」在 80 毫秒内顺序预测它们。这是 AR 编解码 LM 的标准因子分解(VALL-E、VibeVoice 也用)。
没有显式文本,模型不得不在声学流里隐式建模语言。Moshi 的洞见:强迫它在音频之外同时吐文本 token。文本流本质上是 Moshi 所说内容的转录。这提升了语义连贯性,让语言模型头更容易替换,还白送你转录。
同样的架构,在翻译对上训练。源音频进,目标语种音频出,持续不断。Hibiki-Zero(2026 年 2 月)消除了对词级对齐训练数据的需求——用句级数据 + GRPO 强化学习优化延迟。初始支持四个语种对;用约 1000 小时可适配到新语种。
L40S GPU 上吞吐:3 倍实时下 64 个并发会话。
Sesame CSM(2025)用类似思路——Llama-3 骨干 + Mimi 编码头。但 CSM 是单向的(吃上下文 + 文本,产语音)而非全双工。它是市场上最好的「语音存在感」TTS,但与 Moshi 的全双工能力不完全相同。
| 模型 | 延迟 | 用例 | 许可 |
|---|---|---|---|
| Moshi | 200 ms(L4) | 全双工英语/法语对话 | CC-BY 4.0 |
| Hibiki | 12.5 Hz 帧率 | 法语 ↔ 英语流式翻译 | CC-BY 4.0 |
| Hibiki-Zero | 同上 | 5 个语种对,无需对齐数据 | CC-BY 4.0 |
| Sesame CSM-1B | 200 ms TTFA | 上下文条件 TTS | Apache-2.0 |
| GPT-4o Realtime | ~300 ms | 闭源,OpenAI API | 商业 |
| Gemini 2.5 Live | ~350 ms | 闭源,Google API | 商业 |
💡 Moshi 的「内心独白」文本流是一个精妙的设计:它不要求文本作为输入(那是流水线的做法),而是让模型在生成音频的同时自愿生成文本。这相当于把「我想说什么」显式化成一个 token 流,迫使模型在声学层面之上维持一个语义骨架,从而显著提升长对话的连贯性——代价是多预测一条流,但 12.5 Hz 下这点开销微不足道。
Moshi 暴露一个 WebSocket 服务器,吃 80 毫秒块的 Mimi 编码音频,吐 80 毫秒块的 Mimi 编码音频,双向持续。
import asyncio import websockets from moshi.client_utils import encode_audio_mimi, decode_audio_mimi async def moshi_chat(): async with websockets.connect("ws://localhost:8998/api/chat") as ws: mic_task = asyncio.create_task(stream_mic_to(ws)) spk_task = asyncio.create_task(stream_from_to_speaker(ws)) await asyncio.gather(mic_task, spk_task)
async def stream_mic_to(ws): async for chunk_80ms in mic_stream_at_12_5_hz(): mimi_tokens = encode_audio_mimi(chunk_80ms) await ws.send(serialize(mimi_tokens)) async def stream_from_to_speaker(ws): async for msg in ws: mimi_tokens, text_token = deserialize(msg) audio = decode_audio_mimi(mimi_tokens) await play(audio)
两个方向同时跑。Python asyncio 或 Rust futures 是标准传输。
对每个 80 毫秒帧 t:
user_mimi[0..t]、moshi_mimi[0..t-1]、moshi_text[0..t-1]moshi_text[t],然后 moshi_mimi[t, codebook_0..7]文本先于音频预测(内心独白);音频在深度 Transformer 内按码本顺序预测。
设计要点:深度 Transformer 的存在是因为 Mimi 的码本有层级依赖——码本 0(语义)决定内容,码本 1-7(声学)在内容之上叠加细节。如果并行预测,模型无法利用「先知道内容再决定音色」的因果链;顺序预测则让每个码本都条件于前面的,信息流自上而下,符合 RVQ 的设计哲学。
Moshi 赢:
Moshi 不赢:
| 场景 | 选择 |
|---|---|
| 最低延迟语音伴侣 | Moshi |
| 实时翻译通话 | Hibiki |
| 语音演示 / 研究 | Moshi、CSM |
| 带工具的企业 agent | 流水线(第 12 节),不是 Moshi |
| 上下文中的定制声音 TTS | Sesame CSM |
| 任意语种的语音到语音 | GPT-4o Realtime 或 Gemini 2.5 Live(商业) |
⚠️ 四类坑:① 工具调用受限——Moshi 是对话模型,不是 agent 框架,要工具就结合流水线;② 特定声音条件——Moshi 用单一训练人格,克隆要单独训练一轮;③ 语种覆盖——法语+英语优秀,其他有限,Hibiki-Zero 有帮助但仍需训练数据;④ 资源成本——一个完整 Moshi 会话占一个 GPU 槽位,不是便宜的共享租户部署模式。
本节产出技能文档(原课程 outputs/skill-duplex-pipeline.md),为语音 agent 工作负载选择流水线 vs 全双工架构,并说明理由。决策表:
基础:运行 code/main.py。它符号化地模拟双流 + 内心独白架构。
进阶:从 HuggingFace 拉 Moshi,跑服务器,测一次对话,测用户话尾到 Moshi 响应开始的墙上时钟延迟。
挑战:拿你第 12 节的流水线 agent,在 20 条匹配测试话语上与 Moshi 对比 P50 延迟,写一份「流水线在哪些场景架构上仍胜出」的分析。
下一节,我们转向本章的安防维度——语音反欺诈与音频水印,讲透 ASVspoof 检测器、SilentCipher/Perth 水印,以及 EU AI Act 强制披露下的合规工程。