编者按:在人工智能飞速发展的今天,语音识别技术成为很多设备的标配,过去五年间,语音识别的需求逐渐爆发。然而,目前语音识别相关的应用及使用场景仍具有局限性,因此,国内外众多企业纷纷开始探索语音识别的新算法新策略。本文中,百分点感知智能实验室从技术发展的角度出发,深入分析了语音识别技术不同发展阶段的模型构建和优化,以及未来发展趋势。
语音识别技术简单的说,就是将计算机接收到的音频信号转换为相应的文字。语音识别技术从上个世纪50年代出现,发展到现在已有半个多世纪的历史。经过多轮技术迭代,语音识别已经从最早的孤立数字识别,发展到今天复杂环境下的连续语音识别,并且已经应用到各种电子产品中,为人们的日常生活带来许多便利。
从技术发展的历史来讲,语音识别技术主要经历了三个时代,即基于模版匹配的技术框架、基于统计机器学习的技术框架和最新的端到端技术框架。近年来,得益于深度学习技术突破性的进展,以及移动互联网的普及带来的海量数据的积累,语音识别已经达到了非常高的准确率,在某些数据集上甚至超过了人类的识别能力。
随着识别准确率的提升,研究者们的关注点也从语音识别的准确率,渐渐转移到了一些更加复杂的问题上,比如多语种混合语音识别。该问题涉及到多语种混合建模、迁移学习和小样本学习等技术。对某些小语种来说,由于无法获得足够多的训练样本,因此,如何从小样本数据中构建可靠的语音识别系统成为一个待解决的难题。
针对该问题,百分点科技提出了一系列的算法,针对小语种语音识别系统构建中出现的训练样本获得困难、文本书写规则复杂、发音单元不统一等问题作了相应的优化。基于这些技术,百分点科技已经成功研发出数十种小语种语音识别系统,在支持语种的数量,以及识别准确率上都处于国内领先地位。
接下来的章节中,将重点介绍语音识别技术不同发展阶段经历的重要技术框架,包括传统的HMM-GMM和HMM-DNN,以及最新的端到端方法等。
一、GMM-HMM/DNN-HMM
GMM-HMM
先从GMM-HMM开始说,GMM-HMM基本使用HTK或者Kaldi进行开发。在2010年之前,整个语音识别领域都是在GMM-HMM里做一些文章,如图一所示。
图三展示了基本的训练前准备,此外就是纯训练的过程。纯训练解决的是如何将图三右边的特征向量分配到左边状态序列里的问题。
DNN-HMM
在2010年前后,由于深度学习的发展,整个语音识别的框架开始转变成DNN-HMM。其实就是把原来用GMM对特征进行建模,转换成用神经网络去建模。由于神经网络从2010年至今不断发展,各种不同的结构不断出现,也带来了不同的效果。DNN-HMM的基本结构如图四所示。
从上述的实验结果中可以看到,相对传统的GMM-HMM框架,DNN-HMM在语音识别任务上可以获得全面的提升。DNN-HMM之所以取得巨大的成功,通常被认为有三个原因:第一,DNN-HMM舍弃了声学特征的分布假设,模型更加复杂精准;第二,DNN的输入可以采用连续的拼接帧,因而可以更好地利用上下文的信息;第三,可以更好的利用鉴别性模型的特点。
二、端到端语音识别
端到端语音识别,是近年来业界研究的热点,主流的端到端方法包括CTC,RNN-T和LAS,如图五所示。
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的性能也是可以接受的。
接下来就是注意力机制(attention)。注意力机制天然适合seq2seq的模型,而语音天然就是序列问题。LAS的全称叫做listen, attended and spell,此模型拉开了纯端到端语音识别架构的序幕,一个LAS模型的整体结构如图九所示。LAS目前应该是所有网络结构里面最好的模型,性能也是最好的,这点毋庸置疑,超过了原来基于LSTM-CTC的baseline。但是LAS要求见到所有的输入,这对流式解码来说是不允许的,这一致命的问题影响了这种算法的推进,也引起了众多研究者的关注。当然最好的办法就是把attention对输入那块改小点,出了一个叫Mocha的算法,该算法以后有机会再做介绍。
CTC算法虽然是一个里程牌的算法,但CTC算法也有缺陷,比如要求每一帧是条件独立的假设,比如要想性能好需要外加语言模型。一开始的LAS模型效果也不够好,实验对比的结果如下表所示。
谷歌最终在大数据集上验证了性能比基线好。这是一个里程碑,但这些都是Alex Graves工作的延展。由于RNN-T天然具备流式,外加RNN-T模型效果好,谷歌不断的宣传这个模型结构,此模型最终也被谷歌上线到pixel手机上。
Transformer/Conformer
transformer和conformer是目前性能最好的模型。transformer模型是从NLP借鉴到ASR领域,从ESPnet的论文里证明, transformer模型在各个数据集上效果比RNN或者kaldi的模型都好,如图十一所示。
最后,为什么要去大家都去研究端到端模型,其实可以从两方面来考虑:第一,端到端模型把原来传统的模型简化到最简单的模型,抛弃了传统的那些复杂的概念和步骤;第二,其实整个端到端模型用很小的模型结构大小就达到原来几十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如何调整?针对此类问题,学术界和工业界都在寻找新的解决方案。