语音是人类最自然的交互方式。计算机发明之后,让机器能够“听懂”人类的语言,理解语言中的内在含义,并能做出正确的回答就成为了人们追求的目标。这个过程中主要涉及3种技术,即自动语音识别;自然语言处理(目的是让机器能理解人的意图)和语音合成(目的是让机器能说话)
与机器进行语音交流,让它听明白你在说什么。语音识别技术将人类这一曾经的梦想变成了现实。语音识别技术就是“机器的听觉系统”,该技术让机器通过识别和理解,把语音信号转变为相应的文本或命令。
现代智能语音识别技术的起源及发展
在1952年的贝尔研究所,Davis等人研制了世界上第一个能识别10个英文数字发音的实验系统。1960年英国的Denes等人研制了第一个计算机语音识别系统。
大规模的语音识别研究始于上世纪70年代以后,并在小词汇量、孤立词的识别方面取得了实质性的进展。上世纪80年代以后,语音识别研究的重点逐渐转向大词汇量、非特定人连续语音识别。
同时,语音识别在研究思路上也发生了重大变化,由传统的基于标准模板匹配的技术思路开始转向基于统计模型的技术思路。此外,业内有专家再次提出了将神经网络技术引入语音识别问题的技术思路。
上世纪90年代以后,在语音识别的系统框架方面并没有什么重大突破。但是,在语音识别技术的应用及产品化方面出现了很大的进展。比如,DARPA是在上世界70年代由美国国防部远景研究计划局资助的一项计划,旨在支持语言理解系统的研究开发工作。进入上世纪90年代,DARPA计划仍在持续进行中,其研究重点已转向识别装置中的自然语言处理部分,识别任务设定为“航空旅行信息检索”。
我国的语音识别研究起始于1958年,由中国科学院声学所利用电子管电路识别10个元音。由于当时条件的限制,中国的语音识别研究工作一直处于缓慢发展的阶段。直至1973年,中国科学院声学所开始了计算机语音识别。
进入上世纪80年代以来,随着计算机应用技术在我国逐渐普及和应用以及数字信号技术的进一步发展,国内许多单位具备了研究语音技术的基本条件。与此同时,国际上语音识别技术在经过了多年的沉寂之后重又成为研究的热点。在这种形式下,国内许多单位纷纷投入到这项研究工作中去。
1986年,语音识别作为智能计算机系统研究的一个重要组成部分而被专门列为研究课题。在“863”计划的支持下,中国开始组织语音识别技术的研究,并决定了每隔两年召开一次语音识别的专题会议。自此,我国语音识别技术进入了一个新的发展阶段。
自2009年以来,借助机器学习领域深度学习研究的发展以及大数据语料的积累,语音识别技术得到突飞猛进的发展。
将机器学习领域深度学习研究引入到语音识别声学模型训练,使用带RBM预训练的多层神经网络,提高了声学模型的准确率。在此方面,微软公司的研究人员率先取得了突破性进展,他们使用深层神经网络模型(DNN)后,语音识别错误率降低了30%,是近20年来语音识别技术方面最快的进步。
2009年前后,大多主流的语音识别解码器已经采用基于有限状态机(WFST)的解码网络,该解码网络可以把语言模型、词典和声学共享音字集统一集成为一个大的解码网络,提高了解码的速度,为语音识别的实时应用提供了基础。
随着互联网的快速发展,以及手机等移动终端的普及应用,可以从多个渠道获取大量文本或语音方面的语料,这为语音识别中的语言模型和声学模型的训练提供了丰富的资源,使得构建通用大规模语言模型和声学模型成为可能。
在语音识别中,训练数据的匹配和丰富性是推动系统性能提升的最重要因素之一,但是语料的标注和分析需要长期的积累和沉淀,随着大数据时代的来临,大规模语料资源的积累将提到战略高度。
现如今,语音识别在移动终端上的应用最为火热,语音对话机器人、语音助手、互动工具等层出不穷,许多互联网公司纷纷投入人力、物力和财力展开此方面的研究和应用,目的是通过语音交互的新颖和便利模式迅速占领客户群。
语音识别技术的主要方法
目前具有代表性的语音识别方法主要有动态时间规整技术(DTW)、隐马尔可夫模型(HMM)、矢量量化(VQ)、人工神经网络(ANN)、支持向量机(SVM)等方法。
动态时间规整算法(Dynamic Time Warping,DTW)是在非特定人语音识别中一种简单有效的方法,该算法基于动态规划的思想,解决了发音长短不一的模板匹配问题,是语音识别技术中出现较早、较常用的一种算法。在应用DTW算法进行语音识别时,就是将已经预处理和分帧过的语音测试信号和参考语音模板进行比较以获取他们之间的相似度,按照某种距离测度得出两模板间的相似程度并选择最佳路径。
隐马尔可夫模型(HMM)是语音信号处理中的一种统计模型,是由Markov链演变来的,所以它是基于参数模型的统计识别方法。由于其模式库是通过反复训练形成的与训练输出信号吻合概率最大的最佳模型参数而不是预先储存好的模式样本,且其识别过程中运用待识别语音序列与HMM参数之间的似然概率达到最大值所对应的最佳状态序列作为识别输出,因此是较理想的语音识别模型。
矢量量化(Vector Quantization)是一种重要的信号压缩方法。与HMM相比,矢量量化主要适用于小词汇量、孤立词的语音识别中。其过程是将若干个语音信号波形或特征参数的标量数据组成一个矢量在多维空间进行整体量化。把矢量空间分成若干个小区域,每个小区域寻找一个代表矢量,量化时落入小区域的矢量就用这个代表矢量代替。矢量量化器的设计就是从大量信号样本中训练出好的码书,从实际效果出发寻找到好的失真测度定义公式,设计出最佳的矢量量化系统,用最少的搜索和计算失真的运算量实现最大可能的平均信噪比。
在实际的应用过程中,人们还研究了多种降低复杂度的方法,包括无记忆的矢量量化、有记忆的矢量量化和模糊矢量量化方法。
人工神经网络(ANN)是20世纪80年代末期提出的一种新的语音识别方法。其本质上是一个自适应非线性动力学系统,模拟了人类神经活动的原理,具有自适应性、并行性、鲁棒性、容错性和学习特性,其强大的分类能力和输入—输出映射能力在语音识别中都很有吸引力。其方法是模拟人脑思维机制的工程模型,它与HMM正好相反,其分类决策能力和对不确定信息的描述能力得到举世公认,但它对动态时间信号的描述能力尚不尽如人意,通常MLP分类器只能解决静态模式分类问题,并不涉及时间序列的处理。尽管学者们提出了许多含反馈的结构,但它们仍不足以刻画诸如语音信号这种时间序列的动态特性。由于ANN不能很好地描述语音信号的时间动态特性,所以常把ANN与传统识别方法结合,分别利用各自优点来进行语音识别而克服HMM和ANN各自的缺点。近年来结合神经网络和隐含马尔可夫模型的识别算法研究取得了显著进展,其识别率已经接近隐含马尔可夫模型的识别系统,进一步提高了语音识别的鲁棒性和准确率。
支持向量机(Support vector machine)是应用统计学理论的一种新的学习机模型,采用结构风险最小化原理(Structural Risk Minimization,SRM),有效克服了传统经验风险最小化方法的缺点。兼顾训练误差和泛化能力,在解决小样本、非线性及高维模式识别方面有许多优越的性能,已经被广泛地应用到模式识别领域。
语音识别技术模型在中深度神经网络的应用
深度学习是指利用多层的非线性信号和信息处理技术,通过有监督或者无监督的方法,进行信号转换、特征提取以及模式分类等任务的机器学习类方法的总称。因为采用深层结构模型对信号和信息进行处理,所以这里称为“深度”学习。传统的机器学习模型很多属于浅层结构模型,例如支持向量机、GMM、HMM、条件随机场、线性或者非线性动态系统、单隐层的神经网络等。
原始的输入信号只经过比较少的层次(通常是一层)的线性或者非线性处理以达到信号与信息处理,是这些结构模型的共同特点。浅层模型的优点在于在数学上有比较完善的算法,并且结构简单、易于学习。但是浅层模型使用的线性或者非线性变换组合比较少,对于信号中复杂的结构信息并不能有效地学习,对于复杂信号的表达能力有局限性。而深层结构的模型则更适合于处理复杂类型的信号,原因在于深层结构具备多层非线性变换,具有更强的表达与建模能力。
人类语音信号产生和感知就是这样一个极其复杂的过程,并且在生物学上被证明具有明显的多层次甚至深层次的处理结构,所以,对于语音识别任务,采用浅层结构模型明显有很大的局限性。利用深层次结构中的多层非线性变换进行语音信号中的结构化信息和更高层信息的提取,是更加合理的选择。
DNN在语音识别系统中的应用和局限性
从2011年之后,基于DNN-HMM声学模型在多种语言、多种任务的语音识别上取得了比传统 GMM-HMM 声学模型大幅度且一致性的效果提升。基于DNN-HMM语音识别系统的基本框架如图所示,采用DNN替换GMM模型来建模语音观察概率,是其和传统的 GMM-HMM 语音识别系统最大的不同。前馈型深度神经网络由于比较简单,是最初主流的深层神经网络。
语音识别的特征提取需要首先对波形进行加窗和分帧,然后再提取特征。训练 GMM 模型的输入是单帧特征,DNN则一般采用多个相邻帧拼接在一起作为输入,这种方法使得语音信号更长的结构信息得以描述,研究表明,特征拼接输入是DNN相比于GMM可以获得大幅度性能提升的关键因素。由于说话时的协同发音的影响,语音是一种各帧之间相关性很强的复杂时变信号,正要说的字的发音和前后好几个字都有影响,并且影响的长度随着说话内容的不同而时变。虽然采用拼接帧的方式可以学到一定程度的上下文信息,但是由于DNN输入的窗长(即拼接的帧数)是事先固定的,因此DNN的结构只能学习到固定的输入到输入的映射关系,导致其对时序信息的更长时相关性的建模灵活性不足。
递归神经网络在声学模型中的应用
语音信号具有明显的协同发音现象,因此必须考虑长时相关性。由于循环神经网络具有更强的长时建模能力,使得 RNN也逐渐替代 DNN成为语音识别主流的建模方案。DNN 和 RNN 的网络结构如图所示,RNN在隐层上增加了一个反馈连接,是其和DNN最大的不同。这意味着RNN 的隐层当前时刻的输入不但包括了来自上一层的输出,还包括前一时刻的隐层输出,这种循环反馈连接使得RNN原则上可以看到前面所有时刻的信息,这相当于RNN具备了历史记忆功能。对于语音这种时序信号来说,使用RNN建模显得更加适合。
但是,传统的 RNN 在训练过程中存在梯度消失的问题,导致该模型难以训练。为了克服梯度消失问题,有研究人员提出了长短时记忆RNN。LSTM-RNN 使用输入门、输出门和遗忘门来控制信息流,使得梯度能在相对更长的时间跨度内稳定地传播。双向LSTM-RNN (BLSTM-RNN)对当前帧进行处理时,可以利用历史的语音信息和未来的语音信息,从而容易进行更加准确的决策,因此也能取得比单向LSTM更好的性能提升。
尽管双向LSTM-RNN的性能更好,但它并不适合实时系统,由于要利用较长时刻的未来信息,会使得该系统具有很大时延,主要用于一些离线语音识别任务。基于此,研究人员提出了延迟受控 BLSTM和行卷积 BLSTM 等模型结构,这些模型试图构建单向LSTM和BLSTM之间的折中:即前向LSTM保持不变,针对用来看未来信息的反向LSTM做了优化。在LC-BLSTM结构中,标准的反向LSTM被带有最多N帧前瞻量的反向LSTM替代,而在行卷积模型中被集成了N帧前瞻量的行卷积替代。
基于FSMN的语音识别系统
目前国际上已经有不少学术或工业机构在进行 RNN 架构下的研究。目前效果最好的基于BLSTM-RNN 的语音识别系统存在时延过大的问题,这对于实时的语音交互系统(如语音输入法),并不合适。尽管可以通过 LC-BLSTM 和行卷积BLSTM将BLSTM做到实时语音交互系统,由于RNN具有比DNN更加复杂的结构,海量数据下的RNN模型训练需要耗费大量的时间。最后,由于RNN对上下文相关性的拟合较强,相对于DNN更容易陷入过拟合的问题,容易因为训练数据的局部问题而带来额外的异常识别错误。
为了解决以上问题,科大讯飞结合传统的DNN框架和RNN的特点,研发出了一种名为前馈型序列记忆网络的新框架,具体如图所示。FSMN的结构采用非循环的前馈结构,只需要180 ms的时延,就达到了和BLSTM-RNN相当的效果。
FSMN 的结构示意如图所示,其主要是基于传统DNN结构的改进,在DNN的隐层旁增加了一个“记忆模块”,这个记忆模块用来存储对判断当前语音帧有用的语音信号的历史信息和未来信息。上图画出了记忆模块左右各记忆N 帧语音信息的时序展开结构。需记忆的历史和未来信息长度N可根据实际任务的需要来调整。FSMN 记忆块的记忆功能是使用前馈结构实现的,这点有别于传统的基于循环反馈的 RNN 模型。采用这种前馈结构存储信息有两大好处:首先,传统双向RNN必须等待语音输入结束才能对当前语音帧进行判断,双向FSMN对未来信息进行记忆时只需要等待有限长度的未来语音帧即可,这个优点使得FSMN的时延是可控的。实验证明,使用双向FSMN结构,时延控制在180 ms时就能取得和传统双向RNN相当的效果;其次,传统简单的 RNN 实际并不能记住无穷长的历史信息,而是只能记住有限长的历史信息,原因是其训练过程中存在梯度消失的问题。然而 FSMN的记忆网络完全基于前馈展开,在模型训练过程中,梯度则沿着记忆块与隐层的连接权重往回传给各个时刻,对判断当前语音帧的影响的信息通过这些连接权重来决定,而且这种梯度传播是可训练的,并且在任何时刻都是常数衰减,以上的实现方式使得FSMN也具有了类似LSTM 的长时记忆能力,这相当于使用了一种更为简单的方式解决了传统 RNN 中的梯度消失问题。另外,由于FSMN完全基于前馈神经网络结构,也使得它的并行度更高,GPU计算能力可利用得更加充分,从而获得效率更高的模型训练过程,并且FSMN结构在稳定性方面也表现得更加出色。
基于卷积神经网络的语音识别系统
卷积神经网络的核心是卷积运算(或卷积层),是另一种可以有效利用长时上下文语境信息的模型。继 DNN 在大词汇量连续语音识别上的成功应用之后,CNN 又在 DNN-HMM 混合模型架构下被重新引入。重新引入CNN最初只是为了解决频率轴的多变性来提升模型的稳定性,因为该混合模型中的 HMM 已经有很强的处理语音识别中可变长度话语问题的能力。早期CNN-HMM模型仅使用了 1~2 个卷积层,然后和全连接 DNN层堆叠在一起。后来,LSTM 等其他 RNN 层也被集成到了该模型中,从而形成了所谓的CNN-LSTM-DNN(CLDNN)架构。
基于CNN-HMM框架的语音识别吸引了大量的研究者,但是始终鲜有重大突破,最基本的原因有两个:首先是他们仍然采用固定长度的语音帧拼接作为输入的传统前馈神经网络的思路,导致模型不能看到足够的上下文信息;其次是他们采用的卷积层数很少,一般只有1~2层,把CNN视作一种特征提取器来使用,这样的卷积网络结构表达能力十分有限。针对这些问题,科大讯飞在2016年提出了一种全新的语音识别框架,称为全序列卷积神经网络(deep fully convolutional neural network,DFCNN)。实验证明,DFCNN比 BLSTM 语音识别系统这个学术界和工业界最好的系统识别率提升了 15%以上。
如图所示,DFCNN先对时域的语音信号进行傅里叶变换得到语音的语谱图,DFCNN直接将一句语音转化成一张图像作为输入,输出单元则直接与最终的识别结果(比如音节或者汉字)相对应。DFCNN的结构中把时间和频率作为图像的两个维度,通过较多的卷积层和池化(pooling)层的组合,实现对整句语音的建模。DFCNN的原理是把语谱图看作带有特定模式的图像,而有经验的语音学专家能够从中看出里面说的内容。
为了理解 DFCNN 的优势所在,下面从输入端、模型结构和输出端 3 个角度更具体地分析。首先,在输入端,传统语音识别系统的提取特征方式是在傅里叶变换后用各种类型的人工设计的滤波器,比如Log Mel-Filter Bank,造成在语音信号频域,尤其是高频区域的信息损失比较明显。另外,传统语音特征采用非常大的帧移来降低运算量,导致时域上的信息会有损失,当说话人语速较快的时候,这个问题表现得更为突出。而DFCNN将语谱图作为输入,避免了频域和时域两个维度的信息损失,具有天然的优势。其次,从模型结构上来看,为了增强 CNN 的表达能力, DFCNN 借鉴了在图像识别中表现最好的网络配置,与此同时,为了保证 DFCNN 可以表达语音的长时相关性,通过卷积池化层的累积,DFCNN能看到足够长的历史和未来信息,有了这两点,和BLSTM的网络结构相比,DFCNN在顽健性上表现更加出色。最后,从输出端来看,DFCNN比较灵活,可以方便地和其他建模方式融合,比如和连接时序分类模型方案结合,以实现整个模型的端到端声学模型训练。DFCNN语音识别框架可以方便地和其他多个技术点结合,实验证明,在数万小时的中文语音识别任务上,和目前业界最好的语音识别框架 BLSTM-CTC 系统相比, DFCNN系统获得了额外15%的性能提升。
大规模语音数据下神经网络声学模型的训练
相比于传统的 GMM-HMM 系统,基于DNN-HMM 语音识别系统取得了巨大的性能提升。但是DNN声学模型的训练却非常耗时。举个例子,在一个配置为E5-2697 v4的CPU上进行 2 万小时规模的语音数据的声学模型训练,大概需要 116 天左右才能训练完。造成这种情况的潜在原因是将随机梯度下降算法作为神经网络训练中的基本算法,SGD算法收敛相对较慢,而且是一个串行算法,很难进行并行化训练。而目前工业界主流的语音识别系统涉及的训练数据一般为几千小时甚至几万小时级别,因此,提高在大规模语音数据下深度神经网络的训练速度和训练效率,也成为了研究热点和必须解决的问题。
由于深度神经网络的模型参数非常稀疏,利用这个特点,将深度神经网络模型中超过 80%的较小参数都设置为 0,几乎没有性能损失,同时模型尺寸大大减少,但是训练时间并没有明显减小,原因是参数稀疏性带来的高度随机内存访问并没有得到太多的优化。进一步地,在深度神经网络中,用两个低秩矩阵的乘积表示权重矩阵,实现了30%~50%的效率提升。
过使用多个CPU或者GPU并行训练来解决神经网络训练效率是另外一种可行的方法。通常方式是:把训练数据分成许多小块后并行地送到不同的机器来进行矩阵运算,从而实现并行训练。优化方案是:在模型的每遍迭代中,先将训练数据分成N个完全不相交的子集,然后在每个子集中训练一个sub-MLP,最后把这些sub-MLP进行合并网络结合。为了进一步提升并行效率,在上千个CPU核的计算集群实现了这种方式,深层网络的训练主要是利用异步梯度下降算法。将异步梯度下降算法应用到了多个GPU中。一种管道式的 BP 算法被提了出来,该方法利用不同的GPU单元来计算神经网络中不同层,实现并行训练的效果。实验证明,相对使用单个GPU训练,该方法通过使用4个GPU实现了3.1倍左右的效率提升。然而,不同计算单元之间极其频繁的数据传递成为该类方法提升训练效率的主要瓶颈。为此,为了更好地实现神经网络并行训练,一种新的基于状态聚类的多深层神经网络建模方法被提出,该方法先将训练数据在状态层面进行聚类,在状态层面进行不相交的子集划分,使得不同计算单元神经网络之间的数据传递规模大幅度减小,从而实现每个神经网络完全独立的并行训练。使用4块GPU,在聚类数为4类的情况下,在SWB (SwitchBoard)数据集上的实验表明,这种状态聚类的多神经网络方法取得了约4倍的训练效率提升。
深度学习理论除了在声学模型建模上获得了广泛的应用外,在语音识别系统另外的重要组件——语言模型上也得到了应用。在深度神经网络普及之前,语音识别系统主要采用传统的统计语言模型N-gram模型进行建模。N-gram模型也具备明显的优点,其结构简单且训练效率很高,但是 N-gram 的模型参数会随着阶数和词表的增大而指数级增长,导致无法使用更高的阶数,性能容易碰到瓶颈,在训练语料处于相对稀疏的状态时,可以借助降权(discounting)和回溯(backing-off)等成熟的平滑算法解决低频词或不可见词的概率估计问题,以获得比较可靠的模型估计。
在20世纪初,一些浅层前馈神经网络被用于统计语言模型建模。神经网络语言模型是一种连续空间语言模型,平滑的词概率分布函数使得它对于训练语料中的低频词和不可见词的概率估计更为顽健,具有更好的推广性,在语音识别任务上也取得了显著的效果。最近几年,相关研究人员也将深层神经网络用于语言模型建模,并取得了进一步的性能提升。
深度学习、大数据和云计算之间的关系
基于深度学习的语音识别技术在21世纪初走向舞台的中央,并不只是由于深度学习类机器学习算法的进步,而是大数据、云计算和深度学习这3个要素相互促进的结果。
不同于之前 GMM-HMM 语音识别框架表达能力有限、效果对于大规模数据易饱和的情况,深度学习框架所具备的多层非线性变换的深层结构,则具有更强的表达与建模能力,使得语音识别模型对复杂数据的挖掘和学习能力得到了空前的提升,使得更大规模的海量数据的作用得以充分的发挥。大数据就像奶粉一样,“哺育”了深度学习算法,让深度学习算法变得越来越强大。
随着移动互联网、物联网技术和产品的普及,更重要的是采用云计算的方式,使得多种类型的海量数据得以在云端汇集。而对大规模的数据的运算的要求则又显著提升了对于云计算方式的依赖,因此云计算成为了本次深度学习革命的关键推手之一。深度学习框架在云端的部署,则显著增强了云计算的能力。
正是由于深度学习、大数据和云计算三者的相互促进,才成就了语音技术的进步,成就了人工智能的浪潮。
-
语音识别
+关注
关注
38文章
1725浏览量
112551 -
人工智能
+关注
关注
1791文章
46876浏览量
237613
原文标题:离开语音技术的人工智能都是耍流氓
文章出处:【微信号:WW_CGQJS,微信公众号:传感器技术】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论