服务同时收音和发音,客户端可取消播放。OpenAI、Gemini、Nova 的公开材料足以支持这一层。
全双工不是一个开关,而是三层证据命题
最强结论:真正区分路线的不是“能否中断”,而是用户流在助手发声期间是否持续更新模型状态,以及这个新状态如何改变尚未生成的助手未来。
用户音频在助手输出期间继续进入模型状态。Moshi 官方代码提供强锚点;外置 VAD 流水线也可做到系统级持续监听。
同一生成过程在共享时钟上同时建模用户条件与助手输出。公开系统有多种因子化;闭源商业模型目前不可由行为唯一辨识。
注意:低首包延迟、流式 TTS、可中断 UI 都不自动证明模型级全双工。反之,模型级双工也不要求像 dGSLM 那样对称预测双方未来;Moshi 是非对称的“用户观测 → 助手预测”。
OpenAI:公开事实止于产品与 API 行为
Realtime API 支持双向事件与低延迟语音交互
E3证据:OpenAI Realtime API 指南与官方 Realtime Console;Full‑Duplex‑Bench v1.5 的黑盒测试记录 GPT‑4o Realtime 在用户中断任务中 Respond 0.78、停止约 0.23 秒。
能说明:服务在对话期间接收音频,并能快速终止可观察输出。
边界/兼容机制集合 E0:若系统由后台 ASR 缓存、VAD 命中和 server‑side cancel 驱动,同样可产生快停与重叠后连贯行为;原生条件多流、独立 listening memory、外置 VAD/FSM、并发 cascade 与 chunk rollback 均与现有行为兼容且可组合。因此不能据此断言 GPT‑4o 采用其中任一机制,更不能断言其 tokenizer、训练 loss 或神经级楼层控制。
商业参照不止 OpenAI
官方资料支持持续多模态流、随时打断与 proactive audio;不披露内部 tokenizer、并发神经流或楼层控制位置。
官方明确 API 层 concurrent speech processing/generation 与统一 S2S 定位;不能据此确认单一神经模型联合生成。
公开报告披露 Thinker–Talker、dual‑track AR 与流式 DiT;但发声期新用户输入如何改写 Talker 的强双工 stop path 仍未充分披露。
商业团队公开技术报告提供端到端语音模型与工具调用路线;它是架构披露参照,不等于 GPT‑4o 内部证据,强双工状态机制仍按论文披露边界理解。
时间推进粒度与状态载体
同样叫“实时”,模型可能每 20–80 ms 更新隐状态,也可能按 chunk、语义片段或整轮提交输出。更新时钟只是推理接口,不等于不可撤回的承诺点。本图仅是分类示意:点位之间的距离、角度、象限和横向先后均无度量含义,不用于比较延迟或能力高低。
moshi/models/lm.py:679–850;dGSLM TACL 2023 Fig.2/Eq.(1);其余 E2 节点见来源区对应论文。用户流进入生成状态的三种方式
交错单序列
用户 speech/text chunk 与助手 token 串接在一条自回归序列。OmniFlatten、BayLing 是代表。
实现简单、复用 LLM;但序列变长,同一时刻的并发关系被线性化,block 边界决定反应粒度。
同帧融合
当前用户表征与 speaking/monologue 状态在同一 AR step 融合。FLM‑Audio、CF‑Duplex 是代表。
整合强、QA grounding 好;但用户噪声可直接污染当前生成状态,中断后旧上下文更难隔离。
交叉注意力
用户流写入独立 KV/memory,生成主序列按层或门控读取。dGSLM 的双塔 cross‑attention、XA‑Duplex 是参照。
输入状态与生成 KV 隔离,中断稳定;但若门控或训练不足,用户 grounding 可能弱于融合。上述结论只适用于相应论文协议。
七条一级路线,而非互斥标签

Moshi:用户 codec token 持续作为观测条件写入 temporal state,模型并不预测用户未来;随后采样 assistant text,再由 DepFormer 帧内逐 codebook 生成 assistant audio。固定审计 commit e6a55d2:moshi/models/lm.py:679–726,736–783,809–850;运行循环 moshi_mlx/run_inference.py:142–158。代码蕴含的研究者形式化为 p(text_t|H_t)×∏q p(a_t,q|H_t,text_t,a_t,<q),不是论文原式。
dGSLM:共享权重、独立自回归状态、逐层 cross‑attention;edge unit CE 建内容变化,delayed duration L1 建状态惯性。
OmniFlatten/BayLing:把多声道、文本、沉默与状态 token 压到一条序列,以课程学习或 SFT/DPO 学 timing。
FLM‑Audio/CF‑Duplex:每一步融合 listening、speaking、monologue;强整合换取状态污染风险。
Freeze‑Omni/DuplexMamba:VAD、三状态分类、分支 state 或固定 recurrent state 控制 ignore/respond/interrupt。
Qwen2.5‑Omni/Fun‑Audio‑Chat:语义推理与声学发声分工并流式协作;但仍须另证发声期间新用户输入如何停止或改写 Talker。
Lychee‑FD:浅层共享语音基础,深层 semantic/acoustic/control heads 分离,并用 dense semantic channel 补足低频语义监督。
模型如何学会听、继续说、停与反馈
归因顺序:对方音频是否持续可观测、何时写入生成状态、floor signal 由何种变量承载,是能力的架构/监督基础;交互 RL 与 timing DPO 在此基础上调整响应阈值和行为偏好。现有证据不支持把 turn-taking 主要归因于奖励从零“学出”。
术语冻结:行为标签不等于模型状态
| 术语 | 观测层定义 | 可能的机制载体 | 成立所需证据/当前边界 |
|---|---|---|---|
| Full‑duplex | 接口层:同时收发;模型层:发声期用户输入持续更新同一生成过程;行为层:可重叠、反馈、被打断 | 条件多流、双塔、交错序列、external memory 或服务编排 | 接口行为只能到 E3;模型层需论文/代码 E1–E2,不能由体验补写 |
| Overlap | 双方可观察语音在时间上重叠 | 双声道数据、并发流或播放/输入并行 | 波形/协议可证行为;不自动证明神经级联合生成 |
| Backchannel | 不夺取话轮的短反馈,如“嗯”“对” | 隐式序列分布、显式状态、外部策略均可能 | 需标注任务与对话语境;短音频本身不充分 |
| Interruption | 一方插入并改变另一方可观察输出或后续行为 | 播放停止、响应流取消、模型状态更新是三种独立事件 | 每层需独立证据;快停不证明理解或内部生成终止 |
| Floor‑holding | 系统在停顿或反馈下继续保持话轮 | speech/silence 条件分布、duration、state token/head、VAD/FSM | 行为评测证明能力;只有 token/head/logit/代码才能定位内部载体 |
表征层并发与策略层 turn-taking
表征/生成层回答“如何同时听和说”:用户流是否持续可见、如何写入状态、assistant future 如何因子化。策略层回答“何时开始、继续、停止或响应插话”:它可由隐式 speech/silence 分布、显式 start/end/state token、duration 状态、分类头或外置 VAD/FSM 承载。两层可组合,端到端音频模型也不排除 API 侧 endpointing。
turn_detection 提供 server VAD / semantic VAD 等会话配置(OpenAI Realtime VAD 官方指南),证明服务暴露外显 turn detection。它既不证明 GPT‑4o 内部没有学习 turn-taking,也不证明内部依赖该控制层;内部 tokenizer、floor-state 与策略耦合仍为 E0。| 路线 | 监听态 | 继续说态 | 停止态 | Backchannel |
|---|---|---|---|---|
| Moshi | 用户 Mimi token 写 delay cache;12.5 Hz 双声道 CE | temporal state + text/DepFormer;逐 codebook CE | 静音 codec 模式与文本 PAD/EPAD;并非已证实的专用 silence state token | 来自自然 overlap 的短 text/audio 序列;交互 RL 可后加 |
| dGSLM | 双塔各自状态 + 对方 cross-attention;50 Hz | edge unit 与 duration 分解 | silence/nonvoice unit 及持续时间 | Fisher 双声道 overlap 联合似然 |
| SALMONN‑omni | block encoder + thinking token | <start_speak> 后连续 speech embedding | <end_speak> 的显式 CE | 自听与合成全双工数据 |
| Freeze‑Omni | stream encoder 持续对齐 | 冻结 LLM hidden → speech decoder | 外部 acoustic VAD + chunk 三状态头 | 未披露专用机制 |
| BayLing | speech/text block 写入单 AR context | assistant speech positions | 四个 dialogue-state tokens + silence waveform | 400K full-duplex SFT + timing DPO |
| Thinker–Talker | block encoder 更新 Thinker | Talker 读取 hidden 并生成 audio | 强双工 stop path 未公开 | 持续 listening 下机制未充分披露 |
↔ 宽表可横向滚动;首列固定。将鼠标悬停在行上可辅助跨列追踪。
目标冲突不能用一个“模态干扰”概括
24 kHz→12.5 Hz(80 ms),cardinality 2048;WavLM 50 Hz/1024 维教师经非因果 pooling 对齐。关键不是“普通 RVQ 第一层语义、其余层声学”的串行残差:Mimi 将 1 个 semantic VQ 与 7 层 acoustic RVQ 并联,embedding 相加重建,以隔离语义蒸馏和波形/对抗音质冲突;Moshi 生成时才由 DepFormer 串行条件化 text/semantic/acoustic。证据:Moshi arXiv:2410.00037 §3.3、Fig.2;commit e6a55d2 的 quantization/vq.py:170–203,238–251,274–286 与 models/loaders.py:81–86。
semantic/acoustic 梯度在深层趋于正交或负相关;约 3 Hz 文本对 25 Hz 音频还造成监督密度失衡。head separation 与 dense alignment 分别处理方向和幅值。
50 Hz unit 把内容变化和重复持续时间纠缠;edge CE + delayed-duration L1 是时间因子化,不是声学—语义梯度冲突。
停止播放不等于停止生成,更不等于理解用户
评测也必须同时看 responsiveness 与 floor‑holding:停止越快不必然越好,过度敏感会把 backchannel 或旁人语音误判为打断。Full‑Duplex‑Bench 的价值在于把用户中断、backchannel、旁人语音、背景语音拆开,而不是只报一个延迟。可以把“何时开口”解释为随时间积累对方已结束的证据并越过停止阈值;这是 sequential evidence accumulation / optimal stopping 的研究者类比,不代表受审系统实现了显式 POMDP belief 或 SPRT。
路线比较:16 个决策维度中的核心 12 维
不可直接横比:各论文的数据集、采样链路、输入时钟、首包/停止测量起点和 barge-in 定义不同;本表比较机制与披露状态,不把 80 ms frame、chunk 决策或 API 快停数字排成统一延迟榜。
| 系统/路线 | 角色对称性 | 训练输入→推理输入分布差 | 并发层 | 用户路由 | 对方音频可观测粒度/延迟 | floor-control 信号来源 | 时间粒度 | 状态载体 | 表示 | 文本角色 | 楼层位置 | 训练数据/目标 | 打断证据 | 推理成本 | 复现难度 | 证据 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Moshi | 非对称:user 条件→assistant 预测 | 训练为对齐/clean 双声道 teacher forcing;推理 user 为实时 codec 输入、assistant 为自回归输出;存在潜在分布差 | 模型级持续双工 | 共享时钟条件流 | 用户 codec 帧按 12.5 Hz 写入;7B 多数 acoustic stream 延迟 1 帧,2B 配置多数延迟 2 帧;这是 checkpoint 建模超参数,不是统一承诺时长(lm_utils.py:9–40;models/loaders.py:118;commit e6a55d2) | 双声道下一 token 监督 + 隐式 speech/silence 分布;RL 非基础条件 | 12.5 Hz 更新 | hidden + token | Mimi split RVQ | inner monologue | 隐式 speech/silence 分布 | 双声道 CE;自然对话 | 官方代码持续输入/输出 | temporal LM + 帧内 DepFormer | 高;代码/权重公开 | E1 |
| dGSLM | 对称:双方未来联合生成 | 训练/生成均为双 HuBERT unit 流;但离线生成不等于在线助手服务 | 离线对称双声道 | 双塔 cross-attn | 对方历史以 50 Hz 单元经逐层 cross-attention 可见 | 双声道联合似然 + silence unit + delayed duration 监督 | 50 Hz | 双 hidden + duration | 500 HuBERT units | 无显式文本 | unit/silence + duration | Fisher;edge CE + L1 | 双声道生成,不是在线助手 | 两塔共享权重 | 高;旧研究栈 | E1 |
| BayLing | 非对称助手条件 | SFT/DPO 的构造 block 序列→推理实时 block;真实噪声与用户节奏存在分布差 | block 模型级 | interleaving | 用户语音按 block 进入单 AR context;延迟受 block 边界约束 | 四个 dialogue-state tokens 的 SFT,timing DPO 后调 | 12.5 Hz / block | state tokens | speech + text | 对齐/语义 | 四个显式状态 token | 400K SFT + DPO | 论文 barge-in | 单 AR 序列变长 | 中高 | E2 |
| SALMONN‑omni | 非对称助手条件 | 合成/构造全双工样本→实时 block embedding;自听与真实声学回路未必同分布 | block 流水线 | continuous embedding | 固定 Δt block 的新听觉 embedding;具体端到端承诺延迟未等同披露 | start/end speak CE + 多目标监督;合成全双工数据 | 固定 Δt | start/end + hidden | codec-free embedding | thinking scaffold | 显式 start/end | 多目标 + 合成 FD | 论文自听/barge-in | encoder+LLM+synth | 高 | E1/E2 |
| Freeze‑Omni | 非对称助手条件 | 分阶段状态监督→在线 VAD/chunk;错误可在模块间传播 | 模块级 | stream encoder | 持续 encoder 输入,决策在 chunk/FIFO 粒度;先经外置 VAD | acoustic VAD + chunk 三状态分类监督 | chunk/FIFO | VAD + classifier | encoder hidden + codec | 冻结 LLM 中介 | 外部 VAD/三状态头 | 分阶段、多任务状态监督 | 论文自述 | 级联多模块 | 中 | E2 |
| Thinker–Talker | 非对称助手条件 | 多阶段语义/声学训练→流式 Thinker/Talker;发声期新用户输入分布与路径未充分披露 | 模块并发/流式 | Thinker hidden | 输入按 block 更新 Thinker;Talker 发声期新输入延迟/路径未充分披露 | 语义/声学监督已披露;强双工 floor-control 来源为 E0 | block/semantic span | 双模块 hidden | semantic + audio | 核心规划 | 强双工 stop 未知 | 多阶段多模态/音频目标 | 流式不等于持续双工 | 双模块 + diffusion/codec | 高 | E2/E0 |
| GPT‑4o Realtime | 产品角色非对称;内部因子化未知 | 训练输入、teacher forcing、自听与在线输入关系均未披露 | 服务/API 层已证 | 未知 | API 持续收音可观察;写入神经状态的粒度与延迟未知 | 服务 cancel/VAD/模型内状态/奖励均兼容,来源不可识别 | 神经承诺未知 | 未知 | 未知 | 未知 | 未知 | 未披露 | 快停与双向事件 | 托管服务不可见 | 不可复现内部 | E3/E0 |
↔ 决策矩阵可横向滚动;首列固定,悬停行可辅助比较。表中“潜在分布差”是研究风险,不表示已有论文测得性能下降;“未知”不是负面评分。最后一列是证据来源坐标而非质量等级,E1 与 E3 不可换算。打断列在无共同协议时只描述各自证据,不构成跨系统排名。
承诺/回滚披露矩阵
只记录公开材料实际披露了什么。未披露 rollback/lookahead 不等于系统不可回滚;输出更新时钟也不等于对用户可见的提交层。
| 系统 | 内部更新时钟(已披露) | 可观察提交层 | rollback / lookahead 披露 | 证据锚点 |
|---|---|---|---|---|
| Moshi | 12.5 Hz Mimi/temporal step;codec delay | 流式音频帧;播放器提交策略不由模型论文统一规定 | 生成缓存/因果步骤有代码;用户可见输出回滚协议未披露 | arXiv:2410.00037 §3.3–3.4;moshi/models/lm.py:679–850 |
| dGSLM | 50 Hz HuBERT units;duration 分解 | 离线双声道 waveform,不是在线 API 提交 | 在线 rollback/lookahead 不适用或未定义 | TACL 2023 Fig.2、Eq.(1) 与 edge/duration 段 |
| BayLing | 12.5 Hz token / block | block/音频输出;实现提交边界未完整公开 | 未披露 | arXiv:2606.14528 架构与 dialogue-state token 段 |
| SALMONN‑omni | 固定 Δt block | start/end speak 控制的连续语音输出 | 未披露 | arXiv:2411.18138 §3、Fig.2 |
| Freeze‑Omni | encoder chunk / FIFO | 模块化 speech decoder 流 | VAD/状态切换已披露;已播放音频回滚未披露 | arXiv:2411.00774 Fig.1–2、三状态头段 |
| Thinker–Talker | block/semantic/audio stream | Talker 流式音频 | 发声期强双工 rollback/stop path 未充分披露 | Qwen2.5‑Omni arXiv:2503.20215 §3、Fig.2 |
| GPT‑4o Realtime | 神经更新时钟未知 | API response audio/event;客户端可截断播放 | 服务取消事件可见;模型内部 rollback/lookahead 未披露且行为不可辨识 | OpenAI Realtime guide / official console;Full‑Duplex‑Bench v1.5(E3) |
↔ 披露矩阵可横向滚动。每格是公开事实、适用性边界或明确未知,不由 frame rate 推断回滚能力。
读浅、未披露与结构不可识别清单
OpenAI、Gemini、Nova 的内部表示、loss、用户路由、floor‑state。未来技术报告或代码可能消除这一不确定性。
快停可由原生多流、独立 listening memory、外置 VAD/FSM、并发 cascade 或 rollback 产生,且这些机制可组合。
FLM‑Audio、BayLing、SALMONN、Freeze‑Omni、Lychee‑FD 等目前主要是 E1 公式/图或 E2 正文;这表示可核查粒度不同,不是系统优劣。
数据来源与真实任务外推边界
公开双声道研究常受成人、双人、英语/特定语言、电话或近场信道、角色对称性以及合成全双工数据约束。non-native、儿童、口音、噪声、多方、laughter/呼吸/filler、grounding silence 和纠错式 barge-in 的覆盖通常不足或协议不统一。因此某系统在既有 backchannel/interruption 测试中的表现,不能脱离语料与用户分布归因成“架构更优”;闭源训练分布未披露时尤其只能保留 E0。
兼容机制集合,而非后验概率
本报告不为闭源系统分配“70% 多流/30% 级联”之类数字:没有统一黑盒协议、似然模型与内部标签,这会制造虚假精确性。行为只映射到兼容机制集合。
核心来源与可核查锚点
- OpenAI Realtime Console — 官方双向事件客户端;不支持内部神经机制。
- OpenAI Realtime API guide — 会话与输入输出行为。
- Hello GPT‑4o — 原生多模态产品定位。
- GPT‑4o System Card — 能力、安全和评测边界。
- Moshi / Mimi, arXiv:2410.00037 — Fig.1–2、§3.3–3.4。
- Kyutai Moshi 官方代码 — 固定审计 commit e6a55d2;
moshi/models/lm.py:679–850。 - dGSLM, TACL 2023 — Fig.2、Eq.(1)、edge/duration。
- SALMONN‑omni — Fig.2、Eq.(1)、start/end speak。
- DuplexMamba — Mamba state 与分支控制。
- OmniFlatten — flatten 单序列与课程训练。
- FLM‑Audio — channel fusion 与 dual training。
- BayLing‑Duplex — block、多通道、state token、SFT+DPO。
- How Should LLMs Listen While Speaking? — channel fusion vs external memory。
- Freeze‑Omni — VAD、chunk 三状态头、冻结 LLM。
- Lychee‑FD — Fig.2–3、Eq.(5–7)、梯度冲突。
- Qwen2.5‑Omni — Thinker–Talker、dual-track AR、DiT。
- Fun‑Audio‑Chat — 5/25 Hz 分辨率、训练阶段与 DPO。
- Multi‑Faceted Interactivity Alignment — pause/turn/backchannel/interruption GRPO。
- Full‑Duplex‑Bench v1.5 — 中断、backchannel、旁人及背景语音。
- Gemini Live API — 持续流、interrupt、proactive 行为。
- Amazon Nova Sonic guide — API 层 concurrent processing/generation。
- Spirit LM — speech/text interleaving 表示基础。
- AudioLM — semantic/acoustic token 层次基础。
- VITA‑Audio — MCTP 与 TTFA;不等于持续监听。
- Step‑Audio 2 — 商业团队公开的端到端语音模型、工具调用与训练路线;强双工机制按披露边界理解。
来源索引共 43 条;此前抽查 27 个唯一 URL,其中 21 个直接 HTTP 200,5 个 OpenAI 页面受 Cloudflare 403 反自动化影响,另 1 个 Qwen 博客 SSL 失败并由 arXiv 技术报告替代。403 不被误记为来源失效。