Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

百分点感知智能实验室:语音识别技术发展阶段探究

编者按:在人工智能飞速发展的今天,语音识别技术成为很多设备的标配,过去五年间,语音识别的需求逐渐爆发。然而,目前语音识别相关的应用及使用场景仍具有局限性,因此,国内外众多企业纷纷开始探索语音识别的新算法新策略。 本文中,百分点感知智能实验室从技术发展的角度出发,深入分析了语音识别技术不同发展阶段的模型构建和优化,以及未来发展趋势。
语音识别技术简单的说,就是将计算机接收到的音频信号转换为相应的文字。语音识别技术从上个世纪50年代出现,发展到现在已有半个多世纪的历史。经过多轮技术迭代,语音识别已经从最早的孤立数字识别,发展到今天复杂环境下的连续语音识别,并且已经应用到各种电子产品中,为人们的日常生活带来许多便利。
从技术发展的历史来讲,语音识别技术主要经历了三个时代,即基于模版匹配的技术框架、基于统计机器学习的技术框架和最新的端到端技术框架。近年来,得益于深度学习技术突破性的进展,以及移动互联网的普及带来的海量数据的积累,语音识别已经达到了非常高的准确率,在某些数据集上甚至超过了人类的识别能力。
随着识别准确率的提升,研究者们的关注点也从语音识别的准确率,渐渐转移到了一些更加复杂的问题上,比如多语种混合语音识别。该问题涉及到多语种混合建模、迁移学习和小样本学习等技术。对某些小语种来说,由于无法获得足够多的训练样本,因此,如何从小样本数据中构建可靠的语音识别系统成为一个待解决的难题。
针对该问题,百分点科技提出了一系列的算法,针对小语种语音识别系统构建中出现的训练样本获得困难、文本书写规则复杂、发音单元不统一等问题作了相应的优化。基于这些技术,百分点科技已经成功研发出数十种小语种语音识别系统,在支持语种的数量,以及识别准确率上都处于国内领先地位。
接下来的章节中,将重点介绍语音识别技术不同发展阶段经历的重要技术框架,包括传统的HMM-GMM和HMM-DNN,以及最新的端到端方法等。
一、GMM-HMM/DNN-HMM
GMM-HMM
先从GMM-HMM开始说,GMM-HMM基本使用HTK或者Kaldi进行开发。在2010年之前,整个语音识别领域都是在GMM-HMM里做一些文章,如图一所示。


图一 GMM-HMM框架
我们的语音通过特征提取后,利用混合高斯模(GMM)来对特征进行建模。这里的建模单元是cd-states,cd-states的具体生成方法如图二所示。


图二 cd-states的生成方法
建模单元在GMM-HMM时代,或者DNN-HMM时代,基本没有太多创新,大多使用tied triphone,即senone,下图描述了GMM-HMM的整体过程。


图三 GMM-HMM的整体过程
图三展示了基本的训练前准备,此外就是纯训练的过程。纯训练解决的是如何将图三右边的特征向量分配到左边状态序列里的问题。
DNN-HMM
在2010年前后,由于深度学习的发展,整个语音识别的框架开始转变成DNN-HMM。其实就是把原来用GMM对特征进行建模,转换成用神经网络去建模。由于神经网络从2010年至今不断发展,各种不同的结构不断出现,也带来了不同的效果。DNN-HMM的基本结构如图四所示。


图四 DNN-HMM的基本结构
DNN模型,可以是纯DNN模型、CNN模型或LSTM模型等。整个模型层只是在GMM基础上做替换。在这个时代,模型结构整体上都是各种调优,最经典的模型结果就是谷歌的CLDNN模型和LSTM结构。
《Context-DependentPre-Trained Deep Neural Networks for Large-Vocabulary Speech Recognition》是公认的第一篇研究DNN-HMM的论文,文中对比了GMM-HMM跟DNN-HMM的性能,如下表所示。


而后,谷歌、微软等公司在这一算法上不断推进,在模型结构上各种挑战,下面的表格是Alex Graves在《Hybrid speech recognition with deepbidirectional LSTM》里GMM,DNN和DBLSTM的性能对比,该数据集用的是WSJ。


从上述的实验结果中可以看到,相对传统的GMM-HMM框架,DNN-HMM在语音识别任务上可以获得全面的提升。DNN-HMM之所以取得巨大的成功,通常被认为有三个原因:第一,DNN-HMM舍弃了声学特征的分布假设,模型更加复杂精准;第二,DNN的输入可以采用连续的拼接帧,因而可以更好地利用上下文的信息;第三,可以更好的利用鉴别性模型的特点。
二、端到端语音识别
端到端语音识别,是近年来业界研究的热点,主流的端到端方法包括CTC,RNN-T和LAS,如图五所示。


图五 端到端语音识别方法
CTC
传统的模型训练还是比较繁琐,而且特别依赖HMM这套架构体系。真正脱离HMM的是CTC。CTC在一开始是由Hinton的博士生Grave发现的。CTC框架虽然在学习传统的HMM,但是抛弃了HMM中一些复杂的东西。CTC从原理上就解释的比HMM好,因为强制对齐的问题是会存在不确定因素或者状态边界有时是分不清楚的,但HMM必须要求分一个出来。
而CTC的好处就在于,它引入了一个blank概念,在边界不确定的时候就用blank代替,用尖峰来表示确定性。所以边界不准的地方我们就可以用blank来替代,而我们觉得确信的东西来用一个尖峰来表示,这样尖峰经过迭代就越来越强,如图六所示。


图六 CTC的工作原理
CTC在业界的使用有2个办法,有人把它当作声学模型使用,有人把它当作语音识别的全部。但目前工业界系统都只把CTC当作声学模型来使用,其效果更好。纯端到端的使用CTC做语音识别,效果还是不够好。
这里说下chain模型,Chain模型的起源来自kaldi。kaldi当时也想做CTC,但发现kaldi体系下CTC效果不好,但CTC的一些思想特别好,后来Dan Povey发现可以在此基础上做一些优化调整,于是就把chain模型调好了。但在kaldi体系里chain模型的效果的确比原来模型的效果要更好,这个在Dan Povey的论文中有解释。
CTC时代的改进让语音识别技术朝着非常好的方向发展,CTC还有一个贡献就是前面提到的建模单元,CTC把建模单元从原来的cd-states调整为cdphone,或到后面的音节(syllable),或到后面的字级别(char)。因此,端到端的语音识别系统里就很少用前面细粒度的建模。目前很多公司的线上系统都是基于LSTM的CTC系统。
CTC在业界用得最成功的论文是《Fast and Accurate Recurrent Neural NetworkAcoustic Models for Speech Recognition》,论文里探索出来在CTC领域比较稳定的模型结构是5层LSTM的结构。这篇文章从LSTM是单向还是双向,建模单元是cdstate是ciphone还是最终的cdphone等问题进行探究。集中建模单元的比较结果,如下面的表格所示。从表格上可以看到,性能最优的是cdphone的双向LSTM的CTC系统。但是由于双向在线上流式处理会不好处理,所以单向LSTM的性能也是可以接受的。


谷歌还探索了区分度训练sMBR在CTC这套系统下带来了多少的性能提升,结果如下面的表格所示。


此外,谷歌在这一阶段还探索了一套教CLDNN的模型结构,结构如图七所示。


图七 CLDNN的模型结构
该模型的整体性能对比如下:



整体CTC阶段,以Alex Graves的论文为主线,论文中从timit小数据集,到最终谷歌上万小时数据集,一步一步验证了CTC算法的威力,引领了语音界的潮流。CTC是语音界一个比较大的里程碑的算法。
LAS


图八 LAS模型的整体结构
接下来就是注意力机制(attention)。注意力机制天然适合seq2seq的模型,而语音天然就是序列问题。LAS的全称叫做listen, attended and spell,此模型拉开了纯端到端语音识别架构的序幕,一个LAS模型的整体结构如图九所示。LAS目前应该是所有网络结构里面最好的模型,性能也是最好的,这点毋庸置疑,超过了原来基于LSTM-CTC的baseline。但是LAS要求见到所有的输入,这对流式解码来说是不允许的,这一致命的问题影响了这种算法的推进,也引起了众多研究者的关注。当然最好的办法就是把attention对输入那块改小点,出了一个叫Mocha的算法,该算法以后有机会再做介绍。
CTC算法虽然是一个里程牌的算法,但CTC算法也有缺陷,比如要求每一帧是条件独立的假设,比如要想性能好需要外加语言模型。一开始的LAS模型效果也不够好,实验对比的结果如下表所示。



后来谷歌的研究者们经过各种算法演练,各种尝试,最终提出了可流式解码,性能也更好的模型,结果如下表所示。但是严格上来说,谷歌的流式模型也不是LAS模型,如果不考虑流式解码,LAS模型结构肯定是最优的。


RNN-T
和LAS模型类似的,还有一个叫RNN-T算法,它天然适合流式解码。RNN-T也是Grave提出的,此算法在2012年左右就提出来了,但是并没有受到广泛关注,直到谷歌把它运用到pixel手机里才开始流行起来。RNN-T相比CTC,继承了blank机制,但对原来的路径做了约束。相比CTC来讲, RNN-T的约束更合理,所以整体性能也比CTC好。但是RNN-T较难训练,一般需要把CTC模型当作预训练模型的基础再进行训练。此外,RNN-T的显存极易爆炸,因此有很多人在改进显存的应用。谷歌在2020 ICASSP里的论文里写着用RNN-T结合LAS,效果超过了基于LSTM-CTC的baseline方案。图九表示了从HMM的路径扩展,到CTC约束的路径,再到RNN-T的路径约束。


图九 HMM、CTC和RNN-T的路径约束
RNN-T最初在timit上的模型性能如下表所示。


后来,谷歌在大数据上各种尝试,比如预训练、模型结构优化等,最终性能达到了比CTC好的性能,谷歌的RNN-T模型的结构如图十所示。


图十 谷歌的RNN-T模型的结构
谷歌最终在大数据集上验证了性能比基线好。这是一个里程碑,但这些都是Alex Graves工作的延展。由于RNN-T天然具备流式,外加RNN-T模型效果好,谷歌不断的宣传这个模型结构,此模型最终也被谷歌上线到pixel手机上。
Transformer/Conformer
transformer和conformer是目前性能最好的模型。transformer模型是从NLP借鉴到ASR领域,从ESPnet的论文里证明, transformer模型在各个数据集上效果比RNN或者kaldi的模型都好,如图十一所示。


图十一 transformer模型在各个数据集上效果
此外,图十二表示了在librispeech数据集上各个模型的性能对比(错误率),大家可以自己来看,目前最好的系统就是conformer LAS模型。


图十二 在librispeech数据集上各个模型的性能对比(错误率)图片来源于https://github.com/hirofumi0810/neural_sp
同样,在谷歌的论文《FastEmit: Low-latency Streaming ASR with Sequence-levelEmission Regularization》里,同样在librispeech上,conformer模型比LSTM或者transformer模型好,如图十三所示。


图十三 conformer模型在librispeech上的错误率
最后,为什么要去大家都去研究端到端模型,其实可以从两方面来考虑:第一,端到端模型把原来传统的模型简化到最简单的模型,抛弃了传统的那些复杂的概念和步骤;第二,其实整个端到端模型用很小的模型结构大小就达到原来几十G模型的效果。谷歌论文的原文里写着:
In this section, we compare the proposed RNN-T+LAS model (0.18G inmodel size) to a state-of-the-art conventional model. This model uses alow-frame-rate (LFR) acoustic model which emits contextdependent phonemes[11] (0.1GB), a 764k-word pronunciation model (2.2GB), a 1st-pass 5-gramlanguage-model (4.9GB), as well as a 2nd-pass larger MaxEnt language model(80GB) [31]. Similar to how the E2E model incurs cost with a 2nd-pass LASrescorer, the conventional model also incurs cost with the MaxEnt rescorer. Wefound that for voice-search traffic, the 50% computation latency for the MaxEntrescorer is around 2.3ms and the 90% computation latency is around 28ms. InFigure 2, we compare both the WER and EP90 of the conventional and E2E models.The figure shows that for an EP90 operating point of 550ms or above, the E2Emodel has a better WER and EP latency tradeoff compared to the conventionalmodel. At the operating point of matching 90% total latency (EP90 latency + 90%2nd-pass rescoring computation latency) of E2E and server models, Table 6 showsE2E gives a 8% relative improvement over conventional, while being more than400-times smaller in size.
但端到端模型真正与业务相结合时,遇到的问题还是很明显,比如:不同场景下模型需要如何调整?遇到一些新词的时候LM如何调整?针对此类问题,学术界和工业界都在寻找新的解决方案。

参考资料
[1]谷歌end-to-end speech recogntion
https://docs.google.com/presentation/d/1RFfws_WdT2lBrURbPLxNJScUOR-ArQfCOJlGk4NYaYc/edit?usp=sharing
[2]A Streaming On-Device End-to-End Model Surpassing Server-Side ConventionalModel Quality and Latency :https://arxiv.org/pdf/2003.12710.pdf
[3]几个端到端的开源代码地址:espnet,wenet,speechbrain,wav2letter,
https://github.com/hirofumi0810/neural_sp
https://github.com/cywang97/StreamingTransformer
[4]Towards End-to-End Speech Recognition
[5]李宏毅老师的课程:https://speech.ee.ntu.edu.tw/~hylee/dlhlp/2020-spring.html



百分点科技
百分点科技

百分点科技是领先的数据科学基础平台及数据智能应用提供商,以“用数据科学构建更智能的世界”为使命,为企业和政府提供端到端的场景化解决方案。我们会定期与您分享百分点科技在数据科学及数据智能领域的实践经验、心得,以及我们对前沿趋势的洞见。

工程
2
暂无评论
暂无评论~