作为一个具有强大鲁棒性的大规模端到端多语言语音识别模型,Whisper在很多低资源和分布外的场景下,不需要经过任何微调就可以表现出不错的识别性能,然而Whisper使用了Transformer架构,编码器-解码器的结构限制了它在流式语音识别中的使用。本文介绍了清华大学语音与音频技术实验室(SATLab)在Interspeech 2024上发表的论文Simul-Whisper: Attention-Guided Streaming Whisper with Truncation Detection。作者利用交叉注意力提供的时间对齐信息来指导自回归解码,在不对预训练模型进行微调的情况下实现了基于块的流式语音识别,并设计了基于IF (Integrate-and-Fire)  的截断检测模块,用于解决语音分块造成的词语分割问题。在多种语言和多个尺寸的Whisper架构下进行的实验表明,该方法明显优于当前最先进的对Whisper流式化改造的基线系统。

论文链接:https://arxiv.org/pdf/2406.10052


01、流式语音识别

近年来,随着科技的迅猛发展,各种便携式的智能设备以及功能愈加纷繁复杂的应用软件已经融入了大众的生活,在语音输入法、同声传译、语音助手、会议记录、直播等众多场景下,都存在着流式处理的需求。
流式语音识别一种实时处理音频输入并将其转换为文本的技术,与传统的批处理语音识别不同,流式语音识别能够在音频输入的同时进行处理并输出结果。这种特性使得这种特性使得需要实时响应的应用场景中具有显著的优势。
以Whisper为代表的端到端语音识别模型可以直接完成从音频输入到转录文本输出的整个过程,不需要与额外的语言模型组合使用,因此也更加符合智能便携的需求。而Whisper在训练过程中并没有流式语音识别相关的设计,这阻碍了它在很多现实生产生活环境中的应用。在本文中,我们利用Whisper的交叉注意力提供的时间对齐信息来指导自回归解码,在不对预训练模型进行微调的情况下实现了基于块的流式语音识别,并设计了基于IF(Integrate-and-Fire)的截断检测模块(Truncation Detection Module,TDM),用于解决分块输入造成的词语分割问题。在多种语言和多个尺寸的Whisper架构下进行的实验表明,该方法明显优于当前最先进的对Whisper流式化改造的基线系统,在块长为1s的情况下,平均绝对性能下降仅为1.46%,下图为该方法的概览。


02、注意力指导的解码策略

在Whisper的训练过程中,交叉注意力模块的一些注意力头表现出了比较好的时间对齐特性,如下图所示,在注意力矩阵的第t行,其注意力较大值出现的位置与第t个token对应的音频段的位置基本重合,在Whisper中,这些注意力头被挑选出来,称作对齐头(alignment heads)。


在此基础上,我们对Whisper的对齐头进行进一步的后处理,即


其中H表示所有对齐头的集合,fₘ是一个窗长为7的中值滤波器。

为了通过对齐头指导模型推理,我们参考了Papi等人的做法,使用最后一个token对应的注意力最大值的位置作为参考点,并将其与当前音频特征长度Nₐ进行比较,具体判定方式为:当下式成立


即最后一个token的注意力最大值位置接近当前输入块的末端时(l为预先设定的参数,默认设置为12帧,即240毫秒),认为该token获取的上下文信息不足,很有可能是错误或重复的token,此时将提前停止解码,等待下一次的输入。


03、基于IF的截断检测模块

模型每次推理时接收固定长度的语音片段(比如固定为1s),这些片段可能包含被截断的语音单元,比如包含多个音节的字词被分割到前后两个片段中,进而被识别成两个错误的词,这会影响分割处附近甚至整个句子的识别结果。

针对这个问题,我们设计了一个基于IF的截断检测模块,如果在识别过程中没有检测到截断现象,那么识别结果将被保留,否则会移除末尾的不可靠结果,等待下一次输入。

具体来说,如下给出的算法所示,该模块对每个输入的音频帧计算一个信号值α并进行累加,当累加值超过一个预先设定的阈值时,会进行一次激发并重置累加值。经过训练之后,该模块在一次输入中激发的次数对应输入音频中的单词数。在截断检测中,我们使用该模块记录最后一次激发的位置,即最后一个词尾的位置,若该位置不在当前输入块的末端,则判定为存在截断现象。



04、实验结果

我们在Librispeech的测试集、评估集和Multilingual Librispeech中包含的7种语言的测试集上对提出的方法进行了实验验证,并与此前采用Local Agreement进行流式解码的基线系统进行了比较,结果如下表所示:


其中Non-streaming表示使用Whisper进行非流式推理,Proposed是我们提出的方法,w/o TDM则是不使用截断检测模块的情形,用于比较说明截断检测模块发挥的作用。

由上表可以看出,我们提出的方法在Medium和Large两种架构下流式化带来的性能损失相比Base和Small更小,这说明流式性能损失可能与初始模型的性能有关,初始模型具有较好的鲁棒性时会更适应短块长、存在随机截断的流式输入场景;从各个数据集上的平均性能损失来看 ,我们提出的方法在各个架构下的平均性能损失都明显小于基线系统;此外,基于IF的截断检测模块几乎在所有的架构和语言上都存在正收益。


上图给出了在输入块长为0.5s到1s的情况下各个方法的词错误率和延时的关系,可以看出我们的方法的延时也明显低于基线系统,大致为输入块长的1-2倍,即对于每一个token,要么在接收到当前块后输出,要么推迟到下一块后输出;另一方面,截断检测模块略微增大了计算延时,但也表现出更低的性能损失,证明了该模块的有效性。


05、总结

在本文中,我们介绍了Simul-Whisper,在不对预训练模型进行任何微调的情况下实现了流式语音识别。我们使用交叉注意力提供的时间对齐信息来指导解码过程,并设计了基于IF的截断检测模块来避免块边界处的不可靠识别,在多种语言和多个尺寸的Whisper架构下进行的实验表明,该方法明显优于当前的基线系统。