[In Progress…]
语音识别
语音识别简史
自动语音识别技术(Automatic Speech Recognition, ASR)主要是将人类语音中的词汇内容转换为计算机可读的输入,一般都是可以理解的文本内容,也有可能是二进制编码或者字符序列。狭义的语音识别技术即是将人类语音转成文本的技术。
GMM-HMM 时代
现代语音识别可以追溯到 1952 年,贝尔研究所 Davis 等人研制了世界上第一个能识别 10 个英文数字发音的实验系统,从此正式开启了语音识别的进程。
从上世纪 60 年代开始,CMU 的 Reddy 开始进行连续语音识别的开创性工作。但是这期间语音识别的技术进展非常缓慢,以至于 1969 年贝尔实验室的约翰•皮尔斯在一封公开信中将语音识别比作“将水转化为汽油、从海里提取金子、治疗癌症”等几乎不可能实现的事情。
上世纪 70 年代开始,计算机性能的大幅度提升,以及模式识别基础研究的发展,例如码本生成算法(LBG)和线性预测编码(LPC)的出现,推动了语音识别的发展。大规模的语音识别研究,在小词汇量、孤立词的识别方面取得了实质性的进展。IBM、贝尔实验室相继推出了实时的 PC 端孤立词识别系统。
到了 80 年代是语音识别快速发展的时期,其中两个关键技术是隐马尔科夫模型(HMM)的理论和应用趋于完善以及 N-Gram 语言模型的应用。研究的重点逐渐转从孤立词识别系统向大词汇量、非特定人连续语音识别系统发展。例如,李开复研发的 SPHINX 系统,是基于统计学原理开发的第一个“非特定人连续语音识别系统”。其核心框架就是用隐马尔科模型对语音的时序进行建模。
到了 90 年代,是语音识别基本成熟的时期,主要进展是语音识别声学模型的区分性训练准则和模型自适应方法的提出。这个时期剑桥语音识别组推出的 HTK 工具包对于促进语音识别的发展起到了很大的推动作用。此后语音识别发展很缓慢,主流的框架 GMM-HMM 趋于稳定,但是识别效果离实用化还有一定距离。
DNN-HMM 时代
语音识别的关键突破起始于 2006 年。这一年 Hinton 提出深度置信网络(DBN),促使了深度神经网络(Deep Neural Network,DNN)研究的复苏,掀起了深度学习的热潮。DNN 带来的好处是不再需要对语音数据分布进行假设,将相邻的语音帧拼接又包含了语音的时序结构信息,使得对于状态的分类概率有了明显提升,同时 DNN 还具有强大环境学习能力,可以提升对噪声和口音的鲁棒性。2009年,Hinton 以及他的学生将深度神经网络应用于语音的声学建模,在小词汇量连续语音识别数据库 TIMIT 上获得成功。2011 年,微软研究院俞栋、邓力等发表深度神经网络在语音识别上的应用文章,在大词汇量连续语音识别任务上获得突破。从此基于 GMM-HMM 的语音识别框架被打破,大量研究人员开始转向基于 DNN-HMM 的语音识别系统的研究。
端到端时代
2015年以后,由于“端到端”技术兴起,语音识别进入了百花齐放时代,语音界都在训练更深、更复杂的网络,同时利用端到端技术进一步大幅提升了语音识别的性能,直到2017年微软在 Swichboard 上达到词错误率 5.1%,从而让语音识别的准确性首次超越了人类,当然这是在一定限定条件下的实验结果,还不具有普遍代表性。
图 1. 语音识别错误率的历史进程
语音识别另外两个技术部分:语言模型和解码器,目前来看并没有太大的技术变化。
语言模型主流还是基于传统的 N-Gram 方法,虽然目前也有神经网络的语言模型的研究,但在实用中主要还是更多用于后处理纠错。比如滴滴出行的 asr 业务模型在解码过程中结合 LSTM 对候选序列重新排序来优化识别结果。解码器的核心指标是速度,业界大部分都是按照静态解码的方式进行,即将声学模型和语言模型构造成 WFST 网络,该网络包含了所有可能路径,解码就是在该空间进行搜索的过程。由于该理论相对成熟,更多的是工程优化的问题,所以不论是学术还是产业目前关注的较少。
基本框架

图 2. 语音识别的基本框架
W ∗ = arg max W P ( W ∣ Y ) W^* = \text{arg max}_W P(W|Y) W