先看证据
核心冲突:Agent 语音干扰与用户短回复丢失
在传统的语音助手(Voice Agent)与用户交互场景中,语音转文本(STT)模型通常只处理用户一方的语音。然而,当Agent需要说出提示语、提问或提供信息时,其自身的声音也可能被STT系统捕获。这带来了两个主要问题:首先,Agent自身语音的漏音或回声可能被误识别为用户输入,尤其是在处理用户简短、迅速的回复时,会导致Agent听错或错过关键信息,例如将“a tow”误记为“a tour”。
其次,Agent播放的音频通过扬声器或笔记本电脑反馈,再次进入麦克风,形成回声。如果STT模型不加区分地将这些回声转录成文本,那么Agent可能会错误地认为用户正在与其进行对话,从而导致Agent打断自己或产生混乱的交互流程。这些问题严重影响了语音助手的流畅性和准确性。
Soniox STT v6 的新机制:Agent Text Input
Soniox STT v6 引入了一项名为“Agent Text Input”的新功能,旨在直接解决上述冲突。通过在请求中设置一个简单的标志 (`"enable_agent_text_input": true`),开发者可以激活此功能。与仅接收用户语音不同,Agent Text Input 允许开发者在与用户语音相同的 WebSocket 流中,实时地将Agent即将说出或正在说出的文本内容发送给 STT 模型。
这项功能的核心在于“时序”:Agent 发送的文本数据本身不包含时间戳,STT 模型会根据其在音频流中实际到达的位置来判断其时间属性。为了确保准确性,Soniox 建议在 Agent 的文本播放前 500 毫秒到 1 秒之间将其发送,并根据文本到语音(TTS)的时间戳进行节奏控制。当用户试图打断 Agent 的发言时(barge-in),系统需要将已经播放的部分标记为结束,并丢弃 Agent 尚未播放的剩余内容,确保用户声音被优先处理。重要的是,Agent 发送的文本内容不会出现在最终的转录结果中,仅用于内部模型处理。
回声过滤:Agent Text Input 的附带能力
Agent Text Input 的一个关键且强大的附带能力是其内置的“Agent 语音回声过滤”机制。一旦开启了 Agent Text Input,STT v6 模型就能够利用接收到的 Agent 文本信息,更精确地区分出混杂在用户语音中的 Agent 回声。
具体来说,模型会主动识别并过滤掉那些与 Agent 正在说出的内容相匹配的音频片段。这意味着即使存在由设备(如扬声器、笔记本电脑)产生的残留回声,STT 系统也能有效将其从主用户语音流中剥离,避免这些回声被错误地转录成用户发言。这种机制并不是要取代现有的声学回声消除(AEC)技术,而是作为其补充,处理 AEC 无法完全消除的残留部分,从而显著降低 Agent 语音干扰和回声对转录准确性的负面影响。
v6 的其他增强与对实际工作的影响
除了 Agent Text Input 和回声过滤,Soniox STT v6 在其他方面也带来了显著的改进。它显著提升了语音键入的准确性,能够更好地识别数字、货币、单位、日期、ID、专有名词和特定术语。口语化的命令,如“句号”或“换行”,现在会被准确地转录为文字,使得应用程序能够直接应用这些格式化指令。
此外,v6 版本还优化了会议转录和说话人区分(diarization)能力,无论是在实时流还是录制文件中。它还增强了对口音、语码转换(code-switching)和句子内语言切换的鲁棒性。值得注意的是,v6 在格式化上有一个需要注意的改变:它会按照口语的习惯写出“十五美元二十分”这样的表述,而非直接转换为“$15.20”。同样,代码中的连字符也仅在被口语说出时才会被保留。这些变化要求开发者在集成新版本时,对数据处理和格式解析逻辑进行必要的更新与测试。
性能、成本与可用性考量
Soniox STT v6 相较于前代产品在准确性上据称有“显著”提升,但官方尚未公布具体的 v6 版本性能数据。其前代 v5 在 Pipecat STT 基准测试中,语义词错误率(Semantic WER)为 1.34%,在同类产品中表现不俗。v6 的推出定价极具竞争力:流式传输每小时 0.12 美元,异步处理每小时 0.10 美元,且包含说话人区分和语言识别功能。
然而,v6 版本仅作为 Soniox 的专有托管模型通过云 API(WebSocket 流式和 REST 异步)提供服务,不提供自托管或设备端部署选项。Agent Text Input 功能仅限于流式模型 `stt-rt-v6`。开发者在实际应用中,需要权衡 Soniox 的价格优势和易用性,与对模型控制、数据隐私或离线能力的需求。尤其对于需要严格控制数据流或对低延迟有极致要求的场景,其云端托管的模式可能是一个限制因素。