流式识别即实时语音识别技术,可以让用户在语音输入过程中即时获取识别结果,获得流畅自然的交流体验,在车机助手、实时字幕、电话语音转录等人机交互场景中扮演着重要角色。同时,流式识别也面临一些挑战,包括对低延迟的要求、处理不完整语音的准确性以及对大规模语言模型的实时运算需求等。
(实例:工作学习AI助手通义听悟上的流式语音识别)
RNNT语音识别模型具有流式识别出字自然流畅的特点,并且具有良好的识别效果,近年来受到研究者的青睐。然而,RNNT模型训练过程中,需要消耗大量的计算与GPU内存资源。与此同时,RNNT为了获得更好的识别效果,往往会搜索更多的上下文,进而导致识别出字延迟较高。
为了解决上述问题,我们设计了一种低延迟和低内存消耗的RNNT模型。
论文题目:
BAT: Boundary aware transducer for memory-efficient and low-latency ASR
作者:安柯宇,石宪,张仕良
论文地址:https://arxiv.org/abs/2305.11571
代码地址:https://github.com/alibaba-damo-academy/FunASR
模型体验地址:https://modelscope.cn/models/damo/speech_bat_asr-zh-cn-16k-aishell1-vocab4234-pytorch/summary
▎研究背景
图1 CTC与RNNT模型结构对比
CTC(上图左)是语音识别的经典模型之一,被广泛使用于各种语音识别系统中。然而,CTC的一个显著缺陷是其输出的条件独立特性,这使其无法很好地建模语言的上下文依赖关系。为了弥补这一缺陷,RNN Transducer (RNN-T [1],上图右)在CTC的基础上添加了对文本信息的建模,RNN-T的输出不仅依赖声学信息,也依赖历史的输出信息,两者通过一个joint network融合。
语音-文本信息的融合使得RNN-T取得了相对CTC更优越的识别性能,但也带来了极大的训练开销。此外,由于缺乏对齐信息的指导,RNN-T倾向于访问更多的上下文以获得更好的性能,这导致了流式识别时更高的发射延迟(emission latency)。
为了解决这两个问题,我们提出了Boundary aware transducer(BAT),用于减小RNN-T训练的时间和内存消耗和推理时的发射延迟。
BAT的思想受到了一些之前工作的启发。在降低显存开销方面,Alignment Restricted RNN-T (Ar-RNN-T)[2] 和Pruned RNN-T [3] 均表明可以通过限制RNN-T loss前后向计算在lattice上的可行路径来降低显存开销;在降低发射延迟方面,一些研究表明可以通过引入额外的对齐信息(通常来自一个传统HMM模型)对RNN-T的高延迟路径施加惩罚,来达到减小RNN-T延迟的目的。
与先前工作不同的是:1. BAT的对齐信息是通过一个轻量级CIF模块在线生成的,无需预先训练一个对齐模型;2. BAT同时实现了训练时的显存降低和测试时的发射延迟降低。
▎BAT是如何运算的?
>>>标准RNN-T loss
我们先简要回顾一下标准RNN-T loss的计算过程。
>>>基于CIF对齐的boundary aware training
图2 BAT模型结构图
在BAT中,我们首先利用continuous integrate-and-fire(CIF)[4] 生成声学特征和标准文本之间的对齐(alignment),然后用它来限制可行的(t, u)路径。
图3 RNNT与BAT搜索路径对比
▎BAT的实验结果如何?
我们主要在公开的AISHELL-1和非公开的工业级数据集上评测了我们的模型,详细实验配置请参考论文。
>>>与类似工作横向对比
我们在相同的实验设置下,比较了标准RNN-T (采用warp_rnnt [7]实现)、pruned RNN-T和BAT loss计算的时间和显存开销,如下表所示。可以看到,pruned RNN-T和BAT的时间和显存占用开销均远好于标准RNN-T。BAT略好于pruned RNN-T,因为BAT确定裁剪边界的方式相较pruned RNN-T更为高效,后者需要先通过对一个“trivial” joiner network的输出计算RNN-T loss来确定裁剪边界。
表1 与类似工作对比(耗时与峰值GPU内存)
>>>AISHELL-1数据实验结果
AISHELL-1上的非流式模型结果如下表所示。可以看到,BAT识别准确率与RNN-T接近。R_d和R_u增大,识别结果变好,但计算开销也会相应增大。
表2 AISHELL-1 非流式实验结果对比
AISHELL-1上的流式模型结果如下表所示。为了更好地展示BAT对发射延迟的改进效果,我们提供了标准RNN-T加上FastEmit [6]正则的结果作为对比。
下表中的avg ET (average emission time) 代表了最后一个token的平均发射时间,PR (partial recognition latency)代表了最后一个token发射时刻和说话人实际完成讲话的时刻之差,PR50和PR90分别是PR的50分位数和90分位数。可以看到:与FastEmit类似,BAT的结果体现出了准确率和延迟的trade-off,即更大的R_d和R_u会造成更大的延迟,但识别准确率会有所提高。
表3 AISHELL-1 流式实验结果对比
下图可视化了流式RNN-T和流式BAT的token发射快慢。途中横坐标代表了时间轴,纵坐标则代表了模型输出的non-blank token。可以看到,流式BAT的token输出要显著快于流式RNN-T。
图4 流式RNNT与BAT出字延迟对比
>>>3万小时工业数据实验结果
3万小时工业数据上的结果如下表所示。可以看到,BAT在工业量级数据上取得了与RNN-T可比的性能。
表4 3万小时工业数据实验结果
▎Future Work
本文中我们提出了BAT,同时解决了RNN-T在训练时显存占用较高和推理时发射延迟较高的问题。我们将验证BAT在其他语种(例如英语)上的效果。
此外,在BAT中,仅在训练阶段利用了CIF的对齐信息,后续工作将考虑结合对齐信息的推理,例如基于CIF的预测权重进行跳帧解码等。
BAT显著降低了RNN-T的训练成本。再结合encoder输出降采样、混合精度训练和预训练等加速方案后,在阿里巴巴内部的PAI平台上使用32卡A100训练RNN-T工业模型的时间从15天缩短至5天内,显著加快了模型开发和迭代的速度。在未来,BAT有望在流式语音识别和端上语音识别等场景发挥作用。
▎联系我们
BAT的代码已在FunASR开源,欢迎对识别模型开源和应用感兴趣的研究人员和开发人员加入Fun-ASR开源社区交流群,共同探讨精进!
References:
[1] Graves, Alex., “Sequence Transduction with Recurrent Neural Networks.”, ArXiv abs/1211.3711 (2012).
[2] J. Mahadeokar et al., "Alignment Restricted Streaming Recurrent Neural Network Transducer." , SLT 2021.
[3] Kuang, Fangjun et al., "Pruned RNN-T for fast, memory-efficient ASR training.", INTERSPEECH 2022.
[4] L. Dong and B. Xu, "CIF: Continuous Integrate-And-Fire for End-To-End Speech Recognition," ICASSP 2020.
[5] https://github.com/danpovey/fast_rnnt
[6] Yu, Jiahui et al., FastEmit: Low-Latency Streaming ASR with Sequence-Level Emission Regularization. ICASSP 2021.
[7] https://github.com/1ytic/warp-rnnt