流式语音识别原理和实现思路

流式语音识别模型(StreamingASRModel)是指可以在处理音频流的过程中,支持实时返回识别结果的一类ASR模型。与之相对的是非流式模型,它必须在处理完整句音频后才能返回结果。流式ASR可以更好地用于需要实时获取识别结果的场景,例如直播实时字幕、会议实时记录、语音输入、语音唤醒等场景。

作者丨林泽华

语音算法招聘及求职联系Danny:15995739706

Streamingautomaticspeechrecognition(ASR)aimstoemiteachhypothesizedwordasquicklyandaccuratelyaspossible,whilefull-contextASRwaitsforthecompletionofafullspeechutterancebeforeemittingcompletedhypotheses.[1]

1.流式ASR问题形式化

2.实现思路

2.1传统ASR算法实现流式的关键点

2.2端到端ASR算法实现流式的关键点

3.具体实现方式

3.1思路1:调整模型结构

3.2思路2:修改训练方式

4.流式ASR的用户体验问题

4.1单次识别延迟过大

4.2音频越长延迟越大

4.3中间结果突变

5.总结

6.参考资料

流式和非流式的区别在于是取整句上下文,还是上文,其中为已接收的音频特征流的当前帧索引。在实现中,允许模型有一定的延迟,此时虽然已经接收了帧输入,但实际解码到的是第帧,为有限的下文长度。或者对上文长度也有一定限制,即在对第帧后验概率建模的时候,只考虑指定长度的上下文内容:

和分别是上文(left-context)和下文(right-context)长度,则代表使用所有上文。

为什么要专门提流式的ASR模型呢?或者说难道现有模型无法流式么?要知道ASR模型通常都是可以处理不定长的数据的,既然可以处理短音频,那在推理的时候,一段一段地传输给模型识别,不就流式了么?

确实,这样也可以实现流式ASR,问题是:直接在推理阶段做了这样的修改之后,会导致训练和推理不一致,流式的效果相比非流式识别下降过大,达不到我们期望效果。

流式ASR的落脚点在于:如何让模型在训练阶段的建模对象和流式推理阶段一致,从而提高流式识别的效果。在这一点上,传统的ASR算法和端到端ASR处理思路是一样的。

传统ASR算法的优化目标为

其中,语言模型建模的是根据历史Token预测下一个Token的概率,并且只依赖于上文,它本身就是支持流式的。词典模型把发音序列转换为Token序列,也是流式的转换。因此关键在于声学模型是否支持流式。

目前已经有的流式ASR算法主要可以归纳为两类,第一类从模型出发,选取支持只考虑上文和有限下文模型结构,第二类从训练方式出发,手动限制模型下文长度,让模型只对有限上下文进行建模。

许多模型本身是不考虑(或只考虑有限的)下文的,例如FullyConnect只考虑当前帧或固定长度窗口的拼帧,RNN、LSTM、GRU等只考虑上文,CNN、TDNN等只考虑有限的上下文窗口。或者优化模型结构,如因果卷积。具体的模型结构这里就不一一列举了。

不依赖下文的模型示意图

在算法实现过程中,尽量使用这一类模型,就可以省去很多麻烦。例如kaldi算例里实现的大部分模型都是选取的支持流式的结构。再比如说,RNN-T从一开始就选用了RNN,当然也就支持流式。反之像LAS、Transformer等选取BLSTM、Self-Attention结构,要想实现流式就比较复杂。

对于BLSTM、Self-Attention等模型结构,期望上下文越多越好,为了让这一类模型具备只考虑有限上下文的建模能力,需要修改模型训练方式,在对第帧后验概率建模的时候,屏蔽掉指定长度上下文之外的内容。

主要的实现方法是基于chunk的方式,在序列建模的框架下,间接实现局部建模,例如LC-BLSTM[2]、以及诸多的流式Transformer等。

基于chunk的流式ASR

对chunk的有几种不同使用方式:

加入memory的chunk

对于Transformer等Encoder-Decoder结构的模型,其流式的关键在于Encoder的流式,因为大部分Decoder充当的是语言模型的角色,它的建模方式是

对于预测下一Token的概率的建模本身是只考虑上文的,因此最终还是围绕Encoder是否能流式。当然,Encoder采用不同的流式方式,Decoder相应也要做一定的适配,但理论上,Decoder本身是支持流式的。

上文我们提到基于chunk实现流式的方式,其中不同长度的chunk就意味着不同长度的延迟。一方面我们希望模型见到的上下文越丰富效果越好,另一方面,我们希望下文越少响应越快。这是chunk流式方案存在的内在矛盾,从这点上大家可以吐槽这种方案不够优雅。

在ASR解码过程中,中间结果的获取一般是通过回溯best-path来得到,但是随着解码不断进行,不同时刻的最优路径可能发生较大的改变,尤其是在一些声学模型结果区分度较小的场景,比如一些近似音、噪声太大等,就会使得n-best路径本身的得分比较接近,后续较小的得分变化就导致top-1路径改变,又或者因为加入了纠错、Rescore等模块,导致最终的识别结果与中间结果有较大差异。

流式ASR研究的是一类实际应用的问题:为了实现实时ASR的功能需求,以及提高人机语音交互过程中用户体验。本文对流式ASR问题做了形式化定义,分析了流式ASR关键在于声学模型考虑的上下文长度的原因,并把常见的实现方式归纳成调整模型结构和修改训练方式两大类。同时,本文列举了几个影响用户体验的问题。

流式ASR是目前的一个研究热点,但它的技术还不够成熟,仍待大家深入探索,不断突破。

THE END
1.电影叙事结构有哪些电影叙事结构有哪些:电影叙事结构是指电影故事的组织方式,可以分为以下几种:1.线性结构:按照时间顺序呈现故事情节。故事发生的先后顺序与电影展示的先后顺序一致,最常见的电影叙事方式。2.非线性结构http://www.kudub.cn/kudubwd/1127296.html
2.花板桥学校“非常假期”当当榜——板桥主播的“花”式叙事病毒有着强大的传染力,把我们盼望已久的开学给延迟了。为了让同学们停课不停学,老师天天给我们在手机自编绘可以给你更大的创作空间,完全是自己设计主题,营造故事情节,其中的合理性,罗辑性,完整性等等都“今天,胡老师布置我们查 ‘晴’,它是左右结构,日字旁,我们先来数日字旁有几画,接着在部首目录中https://www.meipian.cn/2trbfutd
3.江苏省住宅建筑规范(通用6篇)4、开发商无故比原合同约定延迟交楼,经购房人催告后超过三个月交房的: 依据:司法解释第十五条 5、开发商未经有关部门批准,擅自改变房屋结构及合同中约定的配套环境的:依据:《商品房销售管理办法》第二十四条第一款 6、开发商经批准改变商品房规划设计未经买家认可的: https://www.360wenmi.com/f/filesz6gad24.html
4.漫步者G6PRO双模无线耳机:漫步者G6 PRO双模无线耳机: -头戴式结构,单层头梁,配有网布耳罩和猫耳 -50mm单元,三腔体音频技术,蚕丝生物振膜 -支持虚拟7.1环绕音效,配备HECATE音效软件 -蓝牙、2.4G无线双模,Flash Speed超低延迟 -850mAh电池,2C快充,最大续航约50小时 by 硬件是一门学问 https://www.zfrontier.com/app/flow/WgdQkJaqlyO3