更快更准,出门问问语音识别上线 TDNN with LF-MMI

出门问问 2017-12-27 6:06:00 阅读 • 来源: 自媒体圈 0

(本文作者:出门问问语音识别工程师,胡亚光) 近年来,人工智能被讨论得越来越多,其中语音识别领域的进展也开...

更快更准,出门问问语音识别上线 TDNN with LF-MMI-自媒体圈

(本文作者:出门问问语音识别工程师,胡亚光)

近年来,人工智能被讨论得越来越多,其中语音识别领域的进展也开始受到更多人的关注,日常生活中的一些实际应用,如语音输入法、可穿戴设备、智能车载、智能家居等,让人切实感受到了语音技术的进步和实用性。

出门问问自 2012 年底创办以来,便一直致力于将人工智能技术落地于消费产品——比如我们在微信和手机端的出门问问语音助手,以及 Ticwatch 中文语音交互智能手表、Ticmirror 智能后视镜的实践——自然的语音交互是这些产品的核心,这背后的关键和基础的一个环节则是语音识别的精准度。

提到语音识别技术,最直观的理解是「把输入的语音信号转变为文字」。通常来说,一个完整的语音识别系统大致由「声学模型,语言学模型和解码器」三个部分组成。其中,声学模型是语音识别系统中应用机器学习技术最多的部分。

我们的语音识别团队最近在声学模型的技术实践上有了新的进展,在传统的前馈神经网络(Feedforward Neural Network)的基础上,进一步引入了能够在各个隐藏层(Hidden Layer)之间加入不同前后帧信息的时延深度神经网络(Time-Delay Neural Network, TDNN)和链式模型

(Chain Model)。接下来给大家具体介绍一下。

什么是声学模型

在语音识别系统中,我们输入一段语音,对于计算机来说,它接收到的是一段波形。系统在处理语音时,会首先将语音切分为 10~30 毫秒的小段,每一小段称为一帧,然后再来判断每一帧语音对应于哪个音素。我们在讲话时,声带、口腔的变化是极为复杂的,一个音节(即一个声韵母结构)很难被一种声道变化所刻画,所以语音识别的基本单元往往比音节小很多,比如音素、三音素状态等,即使是单个音素,其所对应的语音波形也多种多样,系统在判断过程中就要利用到声学模型(Acoustic Model)。

所以,声学模型就是用来估计不同音素对某一帧语音的条件概率,最终找出哪一种音素序列最有可能呈现出系统接收到的波形。

近几十年来,声学模型经历了数次变革。最初,语音识别系统采用的是模板匹配(Dynamic Time Warping, DTW)的方式——将接收到的语音信号与事先存好的语音模板进行比较,然后将最接近的模板其对应的文字作为系统的输出。之后,基于隐马尔可夫模型(Hidden Markov model, HMM)和高斯混合模型(Gaussian Mixture Model, GMM)的统计模型长期主导了语音识别的框架。

近年来,随着深度学习技术的发展,2012年深度神经网络(Deep Neural Network, DNN)在语音识别领域得到重大突破,基于上下文相关的深度神经网络结合隐马尔可夫模型(Context-Dependent Deep Neural Network Hidden Markov Model, CD-DNN-HMM)已经成为声学模型的主流。

神经网络是一种具有明显层级的网络结构,基于神经网络框架的声学模型会对输入的语音信号进行逐层处理,逐渐抽象成更易于区分的特征,当语音信号到达输出层的时候,神经网络可以给出不同音素的分类概率。在此基础上,「深度神经网络」(即拥有很深层级的网络结构)可以在在刻画不同音素的概率分布时,应付更多的变化。

深度神经网络有很多变种,比如,

卷积神经网络(Convolutional Neural Network, CNN)——它的特点是将网络的一层看作是多个滤波器

时延神经网络(Time-Delay Neural Network, TDNN)——它对每个隐层的输出都在时域进行扩展,即每个隐层接收到的输入不仅是前一层在当前时刻的输出,还有前一层在之前和之后的某些时刻的输出

递归神经网络(Recurrent Neural Network, RNN)——与 TDNN 类似,每个隐层都能够接收到其他时刻的信息,然而它对于其他时刻信息的获取,是通过隐层将自己的输出重新输入给自己而做到的。为解决训练中的梯度消失问题,RNN通常采用LSTM(Long-Short Term Memory)架构。

出门问问语音产品引入的 TDNN 声学模型

出门问问的语音识别系统最初使用的是 DNN-HMM 的混合系统,并针对移动语音搜索的应用场景做了大量的优化。近期在传统的前馈神经网络的基础上,我们进一步引入了能够在各个隐藏层之间加入不同前后帧信息的时延深度神经网络TDNN(下图1)和 链式模型Chain Model。 

在时序序列建模的问题上,RNN/LSTM 模型已经取得了很显著的性能提升,也在很多相关领域上得到广泛应用。RNN 模型能够动态改变上下文窗口大小来对时间序列的历史信息进行建模,在语音识别的很多任务上都取得了很好的效果。但是因为 RNN 模型有递归层的存在,导致很难像传统 DNN 那样进行并行化训练,同时与前馈神经网络相比 ,RNN 训练的复杂度要高很多,随之而来的问题就是模型训练时间过长。

而 TDNN 的优点在于不仅能够对长时间依赖性的语音信号进行建模,同时与传统的DNN的训练和解码效率几乎相当。

TDNN 在网络传播的过程中对各个隐层的输出也做了扩展,具体来讲,传统的前馈神经网络每个隐层的输入是都是前一层网络的输出,而 TDNN 则会参考前一层网络的历史输出,这样就能对更长的历史信息进行建模。这一点与 RNN 有些类似,不同的是 RNN 的上下文窗口可以通过参数学习进行动态调整,TDNN 则只能做到固定上下文窗口大小。

由于引入了较长的语音片段信息, TDNN 可以明显降低语音识别的错误率。

从 TDNN 的网络结构可以看出,相邻节点之间的变化可能很小,而且包含了大量的重复信息,因此可以每隔几帧才计算一帧的结果,从而加速训练和解码过程。通过选择合适的时间步长,可以在大幅减少运算量的同时,没有漏掉任何历史信息,从而在识别准确性和运算量之间取得平衡。

更快更准,出门问问语音识别上线 TDNN with LF-MMI-自媒体圈

(图1:TDNN结构)

如图2所示,DNN 是一个典型的前馈网络,语音特征在进入输入层之后,逐层传播,最终在输出层得出每个音素的概率。值得注意的是,DNN在输入层除了当前帧之外,还会额外接收相邻的帧,这使得 DNN 一方面能够捕捉更广阔的时域信息,同时能够学习到相邻帧之间的变化特点。图2所示的 DNN 即对输入的语音特征做了前后各一帧的扩展,在实际应用中,DNN 往往会接受连续 10~20 帧作为输入。

TDNN与普通 DNN 类似,也是前馈网络,语音特征在网络内也是逐层向前传播,不同之处在于 TDNN 对隐层也做了上下文扩展。普通 DNN 每个隐层仅仅接收到前一个隐层的当前输出,而TDNN会将隐层的当前输出与其前后若干时刻的输出拼在一起,作为下一个隐层的输入。

更快更准,出门问问语音识别上线 TDNN with LF-MMI-自媒体圈

(图2:DNN计算流程)

如图 3 所示,红色部分代表了隐层当前的状态,而绿色和黄色部分则分别代表了隐层的前一个和后一个状态,这样输出层接收扩展后的隐层作为输入,其所接收到的信息,包含了从 t-2 到 t+2 共 5 帧语音特征的信息,在同样的结构下普通 DNN 一次只能学习到 3 帧信息。

更快更准,出门问问语音识别上线 TDNN with LF-MMI-自媒体圈

(图3:TDNN计算流程)

与 RNN 对比来看,DNN 和 TDNN 的每个隐层都只会接收前一个隐层的输出,而由于语音特征在网络中传播时存在回路,RNN 中的隐层除了接收前一个隐层的输出外,还会将自己前一时刻的输出重新输入给自己,如图4所示。这样的结构使得 RNN 在理论上可以学习到无限长度的历史信息,但是在训练过程中,也会面临着复杂度较高以及梯度消失的问题。

更快更准,出门问问语音识别上线 TDNN with LF-MMI-自媒体圈

(图4:RNN计算流程)

关于 Chain Model 的介绍

除 TDNN 以外,我们近期在声学模型上的另一个进展是使用了Chain Model。Chain Model 是约翰·霍普金斯大学(The Johns Hopkins University,我们CEO的母校)的Dan Povey博士提出的一个能显著提升语音识别效果的一个模型结构。

在语音识别领域,鉴别性训练(Discriminative Training)能够显著提升语音识别系统的性能。鉴别性训练需要所有的单词序列组合来做训练,一般而言我们会先利用交叉熵准则训练一个基准模型,配合使用一个相对较弱的语言模型生成相应的词图(Lattice)。Lattice 里面除了包含与正确识别结果相对应的路径外,还包含了与正确路径足够接近的其他路径,鉴别性训练就是要提高模型走正确路径的概率,同时压低走相似路径的概率。

近年来 CTC(Connectionist Temporal Classification)在语音识别领域受到很大关注,但 CTC 相比传统模型的优势,需要在很大的数据集上才能体现出来,而且CTC的训练速度很慢,参数调节更困难。与鉴别性训练中常用的 MMI(Maximum Mutual Information)准则类似,CTC 训练准则的目标是最大化正确标注的条件概率,而 MMI 着重优化正确路径和其他相似路径的概率差。

LF-MMI(Lattice-Free Maximum Mutual Information)训练准则通过在神经网络输出层计算出来所有可能的标注序列,根据这些标注序列计算出相应的 MMI 信息和相关的梯度,然后通过梯度传播算法完成训练。

LF-MMI 训练准则能够在训练过程中直接计算所有可能路径的后验概率(Posterior Probability),省去了鉴别性训练前需要提前生成 Lattice 的麻烦,所以这种方法被叫做 Lattice-Free MMI。

Chain Model 在LF-MMI训练方法的基础上,还能够使用三分之一甚至更低的帧率、更简单的 HMM 拓扑结构来大幅降低解码运算时间。

所谓的Chain Model就是结合了低帧率输出、优化过后的HMM 拓扑结构和 LF-MMI 训练方法的语音识别系统。从实际效果来看,相对于主流的交叉熵(Cross-Entropy)模型系统,Chain Model 搭配时延深度神经网络(TDNN),在语音识别系统的准确率(CER,字错误率)和解码速度上都获得了显著的提高(见表1)。

更快更准,出门问问语音识别上线 TDNN with LF-MMI-自媒体圈

表1.Chain Model 在出门问问不同语音识别任务下取得的性能提升

声学模型当前面临的挑战

考虑到未来各种不同的语音交互场景,声学模型面临的挑战可以说有三方面:复杂的噪音环境、远场语音识别、自发性语音识别。

未来语音交互的环境可能存在各种噪音,例如车载系统内的引擎声、高速行驶时的风噪、车内音乐,以及可穿戴设备在餐厅等环境内面临的声音等,都会对使用体验造成影响。声学模型作为信号输入的第一道关卡,如何在噪音环境下保证语音识别的准确率,无疑是未来语音技术发展的一大难题。 

根据我们当前的实验结果,自适应回声消除(Adaptive Echo Cancellation, AEC)、平行加噪训练(Parallel Add-noise Training)等途径,可以进一步改善声学模型在噪音情况下的准确率。

在智能家居及万物互联的背景下,远场语音识别已经是目前很重要的一个应用场景。例如 Amazon Echo、Google Home 等,在类似的场景中使用时用户与设备间的距离和方位都不固定,给语音识别带来很大的挑战。

主流的解决方案是通过高精度麦克风阵列去捕捉各个方位的音频信号,再配合DSP降噪算法,使语音的录入更加清晰准确。出门问问的车载产品 Ticmirror 就采用了这个方案。除了麦克风阵列加DSP降噪的解决方案,波束成形(Beamforming)相关的方法也是一个值得探讨研究的方向。

另一个比较难的课题是自发性语音识别。未来我们希望能提供更加自如流畅的语音对话体验,而自发性语音在语速以及音量上都有比较大的变化,同时也有比较多的停顿、重复、漏词等现象,从语音识别的角度来说难度还是比较大。

在训练模型时,我们除了持续加大训练数据量,还在尝试提供较多的扰动(Perturbation)数据来改善声学模型对于语速以及音量变化的鲁棒性。

(本文系作者@ 授权自媒体圈发表,并经自媒体圈编辑,转载请注明出处和本文链接)

第一时间获取媒体狗新鲜资讯和深度商业分析,请在微信公众账号中搜索「2548648067 」或者「mon-sun」,或用手机扫描左方二维码,即可获得媒体狗每日精华内容推送和最优搜索体验,并参与编辑活动。

0条评论