流式语音识别(Streaming ASR)指音频还在源源不断输入时,模型就开始解码并持续输出文字,而不是等整段录音结束再一次性转写。它优先保证的是"快点出字、出了还能改",而非一步到位的最高准确率。
像同传,不像会议纪要
离线转写(offline ASR)像整理会议纪要:整段听完再通读一遍,可以回看全局、合并口误、调整语序,自然更准。流式识别像同声传译:说到哪译到哪,后面的内容帮不上前面的忙,只能靠已听到的部分往下猜。
具体做法是把音频切成几十毫秒一级的小块(chunk)逐块送入。编码时模型必须"只看过去",通常用因果掩码(causal mask)挡住未来,或只开一个很小的前瞻窗口(lookahead)。历史状态会被缓存(cache),每来一块增量更新,避免重复计算。RNN-T 这类逐帧输出的结构天然适合流式;基于注意力(attention)的编码器—解码器则要靠分块加前瞻来近似实现。界面上的字分两档:临时结果(partial)会随新音频被改写,确认结果(confirmed)基本不再变;中间靠端点检测(VAD,voice activity detection)判断一句话何时结束。
和离线识别的真实差别
| 对比项 | 流式 ASR | 离线 ASR |
|---|---|---|
| 输入方式 | 边收边算,按块推进 | 收完再算,看整段 |
| 可用上下文 | 过去 + 少量前瞻 | 双向编码,全句可见 |
| 能否整句重打分 | 基本不能 | 可以,还能融合语言模型 |
| 首字延迟 | 低,常在几百毫秒量级 | 高,要等整段结束 |
| 准确率 | 同规模下通常略低 | 通常更高 |
| 典型场景 | 实时字幕、语音助手、语音输入 | 录音转写、会议纪要 |
差距的根源是"看不到未来"。一句话的结尾常反过来影响开头怎么读,离线模型能双向编码并整句重打分;流式只能靠有限前瞻和缓存硬扛,同规模下通常先输一点准确率。流式也不是零延迟:块大切得慢,块小上下文又不够,需要权衡。
对普通人和从业者意味着什么
对普通人,这决定了语音输入法是"说完才出字"还是"边说边出字"、会议字幕是否实时滚动。实时字幕偶尔跳字、改字,是临时结果被后续上下文修正的正常现象。要存档时,"流式出草稿 + 结束后离线精修"是常见折中。
对从业者,流式与离线不是优劣之分,而是两种约束下的路线选择。评估要同时看首字延迟和词错率(WER,word error rate):只看准确率会忽略体验,只看延迟会低估质量代价。批量转写没有实时需求,就不必为流式增加架构复杂度。各家具体实现与指标口径以官方页面为准。
