做过实时语音 Agent 的工程师,多半见过 AI 自己跟自己吵架的荒诞场面。用户开着手机免提,AI 客服刚播报完前半句,扬声器里的声音漏进麦克风,语音识别(STT)模型以为用户在抢话,瞬间触发打断机制把 AI 自己闭了嘴。2026 年 11 月 3 日,Soniox 发布 STT v6(包含实时模型 stt-rt-v6 与异步模型 stt-async-v6),给出了一个直接的解法,把 Agent 正在说的话作为文本同步喂回给 STT 模型。这套机制既能过滤残余回声,也能帮模型听懂用户的简短回答,但它高度依赖毫秒级的音字同步管道,且在首字响应速度上付出了明显代价。
为什么得把 AI 自己说的话喂回给耳朵
实时语音交互落地时,有两个长期卡脖子的工程痛点。第一个是免提或车载外放场景下的残余回声自打断,客户端的声学回声消除(AEC)一旦漏掉一点尾音,Agent 就会误判成用户插话。第二个是短语歧义,当用户顺着话头回答单字或专有名词时,传统 STT 根本不知道上一句问了什么,只能盲猜。
Soniox STT v6 在实时模型中新增了 enable_agent_text_input: true 参数。开启后,开发者可以通过同一个 WebSocket 连接,把呼叫者的麦克风音频和 Agent 的播报文本一起发给模型。模型拿到文本后干两件事:一是把文本当作上文,校准简短或模糊回答的识别率;二是拿着这份文本去比对音频流,把 AEC 没滤干净的 Agent 自身播报声从转录结果里剔除,同时保留识别用户真实打断的能力。
账单结构也跟着变了。Soniox 实时转录定价约为 0.12 美元/音频小时,异步转录约为 0.10 美元/音频小时,底层实际按 Token 结算。而新增的 Agent 输入文本要单独按实时输入文本计费,价格是 4 美元/百万 Token,好在只对实际送达模型的文本收费。
- 提醒.Soniox 官方文档明确要求客户端必须保持开启底层声学回声消除(AEC),文本回声过滤只是清理残余回声的最后一道防线,关掉底层 AEC 会直接导致系统失灵。
700 毫秒滑动窗口里的工程硬约束
很多初级开发者看到这个功能,第一反应是把大模型生成的整段回复直接塞给 STT。真这么干,回声过滤基本就废了。
官方工程规范要求,Agent 文本必须比实际音频播放提前 500 毫秒至 1 秒发送,并且严格跟着用户耳朵听到的进度走。一旦用户在半途真打断了 AI,系统必须立刻关闭当前文本片段,停止发送还没播出来的词。这既是为了保证上下文准确,也是为了防止多交未播放文本的 Token 费。
开源社区的反应印证了这套管道的复杂度。就在发布当天(2026 年 11 月 3 日),实时多模态框架 LiveKit Agents 提交了 PR #8350 跟进集成。翻看源码能看清真实的实现门槛:当开启 enable_echo_cancellation 时,框架必须调用语音合成(TTS)的词级时间戳,配合客户端播放进度报告,以默认提前 700 毫秒的窗口逐词向 Soniox 喂入文本。如果开发者选用的 TTS 拿不出词级时间戳,框架只能回退到无时间戳模式并抛出警告。
跑分罗生门与三条技术路线的分野
模型好不好用,最终得拉到流媒体基准测试里看延迟和准确率。但语音赛道的厂商跑分向来水深,最常见的障眼法就是拿自家新版去打对手的旧版。
先厘清两个极易混淆的口径。Soniox 官网挂着的 260 毫秒中位数、305 毫秒 P95 和 313 毫秒 P99 最终片段延迟,其实是旧版 v5 的历史成绩,官方并未公布 v6 的对应延迟数据。而在竞争对手官网上,AssemblyAI 宣称其 Universal-3.6 Pro 词错率(WER)仅 5.19%、优于 Soniox Realtime 的 6.83% 和 Flux English 的 13.50%,那是 2026 年 8 至 9 月基于旧版 Soniox 跑的数据;Deepgram 官网自称 Flux English 词错率 9.05%,拉来垫背的更是早期的 Soniox RT v4。
把版本拉齐到同一时间线,看第三方机构 Speko 的实时流媒体基准测试,真实的技术取舍就藏不住了:
| 实时语音模型 | 词错率 (WER) | 最终转录耗时 | 首 Token 耗时 | 核心交互控制路线 |
|---|---|---|---|---|
| Soniox STT v6 | 8.6% | 555 毫秒 | 1110 毫秒 | 同步文本输入 + 残余回声过滤 |
| AssemblyAI Universal-3.6 Pro | 7.2% | 589 毫秒 | 775 毫秒 | Voice Focus 人声隔离 + 上一轮 agent_context |
| Deepgram Flux English | 12.8% | 773 毫秒 | 641 毫秒 | 显式轮次事件(提前触发与取消生成) |
| Deepgram Flux Multilingual | 14.1% | 654 毫秒 | 506 毫秒 | 显式轮次事件(多语言低首字延迟) |
终稿最快不等于打断最快,1110 毫秒的首字延迟才是暗礁。
这张表戳破了指标全能的幻觉。Soniox v6 从语音结束到拿到最终转录结果只需 555 毫秒,全场最快;但它从语音开始到吐出首个转录 Token 却高达 1110 毫秒,比 Deepgram 慢了约一半。在实时语音 Agent 里,决定打断(Barge-in)敏捷度的往往是首 Token 延迟,首字出得慢,AI 停嘴就慢。
这组数字背后,是三家基础设施厂商在语音 Agent 时代的路线分野。《孙子兵法》讲“备前则后寡,备后则前寡”,架构取舍向来如此。
AssemblyAI 押注低词错率(7.2%)与声学前端,靠 Voice Focus 做人声隔离,只支持把上一轮回复作为静态的 agent_context 传入。Deepgram Flux 牺牲了一部分准确率,换取 506 至 641 毫秒的极速首字响应,并提供 StartOfTurn、EagerEndOfTurn(提前触发大模型草稿生成)和 TurnResumed(用户继续说话时取消生成)等显式事件,走的是抢跑式轮次控制路线。Soniox v6 则把筹码压在了当前轮次的动态文本对齐与快速终稿上。
当用户复述 AI 的原话时会发生什么
回看通讯史,早期的长途电话网为了对付回声,搞出过粗暴的回声抑制器:一旦检测到一端在说话,就强行掐断另一端的反向通路。结果两个人同时开口时,线路就会陷入吞字和死锁。今天的语音 Agent 把战场从模拟电路搬进了神经网络,但双讲(Double-talk)的幽灵依然在游荡。
我更在意的是 Soniox 这套机制在极端边缘场景下的表现。目前行业里还没有针对双讲、免提外放回声以及复述场景的第三方受控基准测试。试想一个每天都在发生的客服场景:AI 播报“您的尾号是 8848 吗”,用户为了确认,紧跟着复述了一遍“对,8848”。
此时,700 毫秒滑动窗口里的 Agent 文本正好包含了这串数字,麦克风里也传来了同样的发音。基于文本感知的回声过滤模型,究竟会聪明地识别出这是用户的真声确认,还是会把它当成扬声器漏出来的残余回声直接吞掉?
- 结论.语音 AI 基建的竞争已经从静态转写准确率转向了实时交互控制,选型时不只要看终稿延迟,更要算清首字延迟与工程管道改造的隐性成本。
对于正在搭建语音 Agent 的工程团队,与其听信厂商榜单,不如等 LiveKit 等框架合并 PR 后,拿自己真实的免提外放录音和复述测试用例跑一遍。毕竟,不让 AI 自言自语很容易,难的是别把真人的话也当成回声给滤掉了。
