Go重写媒体前端,GPT-Live语音p95延迟直接降到原Python系统的p50水平。OpenAI花六个月搞出的第三代语音系统,把turn detector从音频链路里彻底踢了出去。
- 架构重构:全双工语音模型接管对话,移除turn detector,实现边听边说。
- 性能优化:媒体前端与推理逻辑用Go重写,替换Python asyncio,WebRTC保障低延迟传输。
- 异步委托:深度推理与工具调用异步交由GPT-5.5处理,不阻塞主媒体流。
这套架构把推理延迟压到了亚秒级。你下半年用Agent跑长任务或者做实时语音客服,等待感会明显变短。OpenAI这次在工程解耦上做得很彻底,值得做语音落地的团队拆解学习。
全双工架构与Go重写
以前的语音AI是轮次制,靠小模型turn detector猜用户说没说完。猜早了打断用户,猜晚了响应迟钝。GPT-Live换成全双工,模型同时听和说。为了扛住连续推理,OpenAI把媒体前端和推理逻辑从Python asyncio换成了Go。新系统的p95帧交付延迟匹配了老系统的p50。传输层用WebRTC,丢包时微调拉伸音频,补回实时节奏。
状态管理与上下文压缩
长语音会话的上下文会一直涨,模型实例还得按需上下线。老办法是等上下文超了再压缩,但压缩会invalidate KV cache,重新prefill会引入明显延迟。GPT-Live的做法是无缝切换。
传统方案:上下文超限 -> 压缩 -> KV cache失效 -> 重新prefill -> 媒体流卡顿。
GPT-Live方案:原实例继续聊 -> 后台压缩上下文 -> 预热新实例并prefill -> 无缝切换 -> 媒体流零中断。
落地全双工语音的避坑指南
你想在本地或私有化部署类似GPT-Live的全双工语音,得看清边界。首先,Go替换Python只是解决了并发和帧交付的平滑度,核心还是你的语音模型得原生支持流式输入输出。其次,WebRTC的丢包补偿机制依赖客户端和服务端的时钟同步,如果你们的网络环境jitter极大,拉伸音频听起来会像变声。最后,异步委托GPT-5.5这种大模型做深度思考,前提是你们的业务能容忍几百毫秒到秒级的思考延迟,如果是纯客服插话场景,这种异步架构反而会增加首字响应时间。
流式语音系统排查清单
如果你接手了类似的流式语音项目,按这个清单排查。1. 检查音频帧到达推理栈的延迟分布,看p99是否出现毛刺。2. 确认KV cache的命中率,长对话中如果频繁触发compaction,必须上预热实例切换机制。3. 监控异步RPC边界的超时率,工具调用慢不能拖死主媒体循环,必须做物理隔离。4. 测试弱网环境下的WebRTC表现,确保丢包率超过5%时音频不会断流。
OpenAI这次把媒体流和应用逻辑做物理隔离,是工程上的正确选择。很多团队做语音Agent,喜欢把工具调用和音频生成塞在同一个同步链路里,结果就是一个慢SQL或者慢API直接导致语音卡顿。GPT-Live把重型计算扔给GPT-5.5,主链路只保音频流转,这种解耦思路值得抄。不过,全双工模型对算力的消耗是轮次制的数倍,因为模型在用户说话时也在持续推理。没有充足的GPU算力支撑,这套架构在并发上来后只会变成灾难。想复现的话,先把显存留到24G以上,小显存跑全双工流式推理会直接OOM。
留言聊聊
你现在主力跑什么语音模型?显存多少?首字延迟多少毫秒?