C7.10.1Streaming partial ASR results设计研究
部分结果在用户说话过程中逐步显示尚未最终确认的识别文本
别名: 中间结果 · interim results · 流式识别 · partial hypothesis
概念解释
流式识别在说话尚未结束时就向外吐词,这些词叫部分结果(partial / interim results)。它们是当前前缀上的最佳假设,还没有被终态确认。界面上逐步出现的字,来自这条尚未封口的假设,不是已经提交的文本。
机制
编码器按块消费音频,解码器在每个块上维护一个前缀搜索(往往是 RNN-T 或类似的流式模型)。每来一块,前缀假设更新,客户端就可以渲染。部分结果的时间分辨率取决于块大小和端到端模型的延迟约束:块越小,字出得越早,也越不稳定。它们存在是因为交互不能等整句端点才给第一眼反馈。与 n-best 列表不同,屏幕上通常只画一条当前最优路径。与终态结果不同,这条路径的词还可以被后面的音频改写。部分结果是识别状态的直播,不是文档状态。
怎么研究
记录从开口到每个词首次出现的时间、以及该词在终态是否仍在。自变量包括块大小、网络往返、是否本地解码。因变量包括首次出字延迟和部分结果抖动次数。让人在只看部分结果、只看终态两种界面上完成听写,比较打断说话去纠正的次数。不要用离线整句识别的 WER 代替流式前缀的行为。
边界
离线批识别没有部分结果。按键说话若等松开才解码,也可以选择不显示中间词。极短命令在部分结果还没画出时已经结束,这一层几乎看不见。网络断开时部分结果会停在某一前缀,看起来像终态,其实是流死了。
怎么落地
- 说话过程中把当前前缀画在输入区,明确它是识别中的假设。
- 测量并预算“开口到首字”的时间,而不是只报终态 WER。
- 流中断时不要把最后一条部分结果当成已提交文本,直到端点或用户确认。