详解卷积神经网络(CNN)在语音识别中的应用

欢迎你们前往腾讯云社区,获取更多腾讯海量技术实践干货哦~算法

做者:侯艺馨数据库

前言

总结目前语音识别的发展示状,dnn、rnn/lstm和cnn算是语音识别中几个比较主流的方向。2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(Feed Forward Deep Neural Network)引入到声学模型建模中,将FFDNN的输出层几率用于替换以前GMM-HMM中使用GMM计算的输出几率,引领了DNN-HMM混合系统的风潮。长短时记忆网络(LSTM,LongShort Term Memory)能够说是目前语音识别应用最普遍的一种结构,这种网络可以对语音的长时相关性进行建模,从而提升识别正确率。双向LSTM网络能够得到更好的性能,但同时也存在训练复杂度高、解码时延高的问题,尤为在工业界的实时识别系统中很难应用。api

回顾近一年语音识别的发展,deep cnn绝对称得上是比较火的关键词,不少公司都在这方面投入了大量研究。其实 CNN 被用在语音识别中由来已久,在 十二、13 年的时候 Ossama Abdel-Hamid 就将 CNN 引入了语音识别中。那时候的卷积层和 pooling 层是交替出现的,而且卷积核的规模是比较大的,CNN 的层数也并很少, 主要是用来对特征进行加工和处理,使其能更好的被用于 DNN 的分类。随着CNN在图像领域的发光发热,VGGNet,GoogleNet和ResNet的应用,为CNN在语音识别提供了更多思路,好比多层卷积以后再接 pooling 层,减少卷积核的尺寸可使得咱们可以训练更深的、效果更好的 CNN 模型。网络

1 语音识别为何要用CNN

一般状况下,语音识别都是基于时频分析后的语音谱完成的,而其中语音时频谱是具备结构特色的。要想提升语音识别率,就是须要克服语音信号所面临各类各样的多样性,包括说话人的多样性(说话人自身、以及说话人间),环境的多样性等。一个卷积神经网络提供在时间和空间上的平移不变性卷积,将卷积神经网络的思想应用到语音识别的声学建模中,则能够利用卷积的不变性来克服语音信号自己的多样性。从这个角度来看,则能够认为是将整个语音信号分析获得的时频谱看成一张图像同样来处理,采用图像中普遍应用的深层卷积网络对其进行识别。框架

从实用性上考虑,CNN也比较容易实现大规模并行化运算。虽然在CNN卷积运算中涉及到不少小矩阵操做,运算很慢。不过对CNN的加速运算相对比较成熟,如Chellapilla等人提出一种技术能够把全部这些小矩阵转换成一个大矩阵的乘积。一些通用框架如Tensorflow,caffe等也提供CNN的并行化加速,为CNN在语音识别中的尝试提供了可能。机器学习

下面将由“浅”入“深”的介绍一下cnn在语音识别中的应用。函数

2 CLDNN

提到CNN在语音识别中的应用,就不得不提CLDNN(CONVOLUTIONAL, LONG SHORT-TERM MEMORY,FULLY CONNECTED DEEP NEURAL NETWORKS)[1],在CLDNN中有两层CNN的应用,算是浅层CNN应用的表明。CNN 和 LSTM 在语音识别任务中能够得到比DNN更好的性能提高,对建模能力来讲,CNN擅长减少频域变化,LSTM能够提供长时记忆,因此在时域上有着普遍应用,而DNN适合将特征映射到独立空间。而在CLDNN中,做者将CNN,LSTM和DNN串起来融合到一个网络中,得到比单独网络更好的性能。性能

CLDNN网络的通用结构是输入层是时域相关的特征,链接几层CNN来减少频域变化,CNN的输出灌入几层LSTM来减少时域变化,LSTM最后一层的输出输入到全链接DNN层,目的是将特征空间映射到更容易分类的输出层。以前也有将CNN LSTM和DNN融合在一块儿的尝试,不过通常是三个网络分别训练,最后再经过融合层融合在一块儿,而CLDNN是将三个网络同时训练。实验证实,若是LSTM输入更好的特征其性能将获得提升,受到启发,做者用CNN来减少频域上的变化使LSTM输入自适应性更强的特征,加入DNN增长隐层和输出层之间的深度得到更强的预测能力。学习

2.1 CLDNN网络结构

Fig 1. CLDNN Architecture

网络结构图如图1,假设中心帧为,考虑到内容相关性,向左扩展L帧,向右扩展R帧,则输入特征序列为[, . . . ,],特征向量使用的是40维的log梅尔特征。测试

CNN部分为两层CNN,每层256个feature maps,第一层采用9x9 时域-频域滤波器,第二层为4x3的滤波器。池化层采用max-pooling策略,第一层pooling size是3,第二层CNN不接池化层。

因为CNN最后一层输出维度很大,大小为feature-maps

time
frequency,因此在CNN后LSTM以前接一个线性层来降维,而实验也证实降维减小参数并不会对准确率有太大影响,线性层输出为256维。

CNN后接2层LSTM,每一个LSTM层采用832个cells,512维映射层来降维。输出状态标签延迟5帧,此时DNN输出信息能够更好的预测当前帧。因为CNN的输入特征向左扩展了l帧向右扩展了r帧,为了确保LSTM不会看到将来多于5帧的内容,做者将r设为0。最后,在频域和时域建模以后,将LSTM的输出链接几层全链接DNN层。

借鉴了图像领域CNN的应用,做者也尝试了长短时特征,将CNN的输入特征做为短时特征直接输入给LSTM做为部分输入,CNN的输出特征直接做为DNN的部分输入特征。

2.2 实验结果

针对CLDNN结构,咱们用本身的中文数据作了一系列实验。实验数据为300h的中文有噪声语音,全部模型输入特征都为40维fbank特征,帧率10ms。模型训练采用交叉熵CE准则,网络输出为2w多个state。因为CNN的输入须要设置l和r两个参数,r设为0,l通过实验10为最优解,后面的实验结果中默认l=10,r=0。

其中LSTM为3层1024个cells,project为512 ,CNN+LSTM和CNN+LSTM+DNN具体的网络参数略有调整,具体以下图,另外还增长一组实验,两层CNN和三层LSTM组合,实验验证增长一层LSTM对结果有提升,但继续增长LSTM的层数对结果没有帮助。

Fig 2. CLDNN实验结构

method WER
LSTM 13.8
CNN+2层LSTM 14.1
CNN+3层LSTM 13.6
CNN+LSTM+DNN 13.0
LSTM+DNN 13.2

Table 1 测试集1结果

method WER
LSTM 21.6
CNN+2层LSTM 21.8
CNN+3层LSTM 21.5
CNN+LSTM+DNN 20.6
LSTM+DNN 20.8

Table 2 测试集2结果

3 deep CNN

在过去的一年中,语音识别取得了很大的突破。IBM、微软、百度等多家机构相继推出了本身的Deep CNN模型,提高了语音识别的准确率。Residual/Highway网络的提出使咱们能够把神经网络训练的更深。尝试Deep CNN的过程当中,大体也分为两种策略:一种是HMM 框架中基于 Deep CNN结构的声学模型,CNN能够是VGG、Residual 链接的 CNN 网络结构、或是CLDNN结构。另外一种是近两年很是火的端到端结构,好比在 CTC 框架中使用CNN或CLDNN实现端对端建模,或是最近提出的Low Frame Rate、Chain 模型等粗粒度建模单元技术。

对于输入端,大致也分为两种:输入传统信号处理过的特征,采用不一样的滤波器处理,而后进行左右或跳帧扩展。

Fig 3.Multi-scale input feature. Stack 3
11
40

第二种是直接输入原始频谱,将频谱图当作图像处理。

Fig 4. Frequency bands input

3.1 百度deep speech

百度将 Deep CNN 应用于语音识别研究,使用了 VGGNet ,以及包含Residual 链接的深层 CNN等结构,并将 LSTM 和 CTC 的端对端语音识别技术相结合,使得识别错误率相对降低了 10% (原错误率的90%)以上。

此前,百度语音每一年的模型算法都在不断更新,从 DNN ,到区分度模型,到 CTC 模型,再到现在的 Deep CNN 。基于 LSTM-CTC的声学模型也于 2015 年末已经在全部语音相关产品中获得了上线。比较重点的进展以下:1)2013 年,基于美尔子带的 CNN 模型;2)2014年,Sequence Discriminative Training(区分度模型);3)2015 年初,基于 LSTM-HMM的语音识别 ;4)2015 年末,基于 LSTM-CTC的端对端语音识别;5)2016 年,Deep CNN 模型,目前百度正在基于Deep CNN 开发deep speech3,听说训练采用大数据,调参时有上万小时,作产品时甚至有 10 万小时。

Fig5. 百度语音识别发展

百度发现,深层 CNN 结构,不只可以显著提高 HMM 语音识别系统的性能,也能提高 CTC 语音识别系统的性能。仅用深层 CNN 实现端对端建模,其性能相对较差,所以将如 LSTM 或 GRU的 循环隐层与 CNN结合是一个相对较好的选择。能够经过采用 VGG 结构中的 3*3 这种小 kernel ,也能够采用 Residual 链接等方式来提高其性能,而卷积神经网络的层数、滤波器个数等都会显著影响整个模型的建模能力,在不一样规模的语音训练数据库上,百度须要采用不一样规模的 DeepCNN 模型配置才能使得最终达到最优的性能。

所以,百度认为:1)在模型结构中,DeepCNN 帮助模型具备很好的在时频域上的平移不变性,从而使得模型更加鲁棒(抗噪性);2)在此基础上,DeepLSTM 则与 CTC 一块儿专一于序列的分类,经过 LSTM 的循环链接结构来整合长时的信息。3)在 DeepCNN 研究中,其卷积结构的时间轴上的感觉野,以及滤波器的个数,针对不一样规模的数据库训练的语音识别模型的性能起到了很是重要的做用。4)为了在数万小时的语音数据库上训练一个最优的模型,则须要大量的模型超参的调优工做,依托多机多 GPU 的高性能计算平台,才得以完成工做。5)基于 DeepCNN 的端对端语音识别引擎,也在必定程度上增长了模型的计算复杂度,经过百度自研的硬件,也使得这样的模型可以为广大语音识别用户服务。

3.2 IBM

2015 年,IBM Watson 公布了英语会话语音识别领域的一个重大里程碑:系统在很是流行的评测基准 Switchboard 数据库中取得了 8% 的词错率(WER)。到了2016年 5 月份,IBM Watson 团队再次宣布在一样的任务中他们的系统创造了6.9% 的词错率新纪录,其解码部分采用的是HMM,语言模型采用的是启发性的神经网络语言模型。声学模型主要包含三个不一样的模型,分别是带有maxout激活的循环神经网络、3*3卷积核的深度卷积神经网络、双向长短时间记忆网络,下面咱们来具体看看它们的内部结构。

Fig 6. IBM Deep CNN 框架

很是深的卷积神经网络的灵感来自2014ImageNet参赛的VGG网络,中心思想是使用较小的3*3卷积核来取代较大的卷积核,经过在池化层以前叠加多层卷积网络,采起ReLU激活函数,能够得到相同的感知区域,同时具有参数数目较少和更多非线性的优势。

如上图所示,左1为最经典的卷积神经网络,只使用了两个卷积层,而且之间包含一个池化层,卷积层的卷积核也较大,9

9和4
3,而卷积的特征面也较多,512张卷积特征面。

左二、左三、左4均为深度卷积神经网络的结构,能够注意到与经典的卷积神经网络所不一样的是,卷积的特征面由64个增长到128个再增长到256个,并且池化层是放在卷积的特征面数增长以前的;卷积核均使用的是较小的3

3卷积核,池化层的池化大小由2
1增长到2*2。

最右边10-conv的参数数目与最左边的经典卷积神经网络参数数目相同,可是收敛速度却足足快了5倍,尽管计算复杂度提升了一些。

3.3 微软

2016年9月在产业标准 Switchboard 语音识别任务上,微软研究者取得了产业中最低的 6.3% 的词错率(WER)。基于神经网络的声学和语言模型的发展,数个声学模型的结合,把 ResNet 用到语音识别。

而在2016年的10月,微软人工智能与研究部门的团队报告出他们的语音识别系统实现了和专业速录员至关甚至更低的词错率(WER),达到了5.9%。5.9% 的词错率已经等同于人速记一样一段对话的水平,并且这是目前行Switchboard 语音识别任务中的最低记录。这个里程碑意味着,一台计算机在识别对话中的词上第一次能和人类作得同样好。系统性地使用了卷积和 LSTM 神经网络,并结合了一个全新的空间平滑方法(spatial smoothing method)和 lattice-free MMI 声学训练。

虽然在准确率的突破上都给出了数字基准,微软的研究更加学术,是在标准数据库——口语数据库 switchboard 上面完成的,这个数据库只有 2000 小时。

3.4 Google

根据 Mary Meeker 年度互联网报告,Google以机器学习为背景的语音识别系统,2017年3月已经得到英文领域95%的字准确率,此结果逼近人类语音识别的准确率。若是定量的分析的话,从2013年开始,Google系统已经提高了20%的性能。

Fig 7. Google 语音识别性能发展

从近几年google在各种会议上的文章能够看出,google尝试deep CNN的路径主要采用多种方法和模型融合,如Network-in-Network (NiN),Batch Normalization (BN),Convolutional LSTM (ConvLSTM)方法的融合。好比2017 icassp会议中google所展现的结构

Fig 8. [5] includes two convolutional layer at the bottom andfollowed by four residual block and LSTM NiN block. Each residual blockcontains one convolutional LSTM layer and one convolutional layer.

3.5 科大讯飞DFCNN

2016年,在提出前馈型序列记忆网络FSMN (Feed-forward Sequential Memory Network) 的新框架后,科大讯飞又提出了一种名为深度全序列卷积神经网络(Deep Fully Convolutional Neural Network,DFCNN)的语音识别框架,使用大量的卷积层直接对整句语音信号进行建模,更好地表达了语音的长时相关性。

DFCNN的结构以下图所示,它输入的不光是频谱信号,更进一步的直接将一句语音转化成一张图像做为输入,即先对每帧语音进行傅里叶变换,再将时间和频率做为图像的两个维度,而后经过很是多的卷积层和池化(pooling)层的组合,对整句语音进行建模,输出单元直接与最终的识别结果好比音节或者汉字相对应。

Fig 9. DFCNN框架

首先,从输入端来看,传统语音特征在傅里叶变换以后使用各类人工设计的滤波器组来提取特征,形成了频域上的信息损失,在高频区域的信息损失尤其明显,并且传统语音特征为了计算量的考虑必须采用很是大的帧移,无疑形成了时域上的信息损失,在说话人语速较快的时候表现得更为突出。所以DFCNN直接将语谱图做为输入,相比其余以传统语音特征做为输入的语音识别框架相比具备自然的优点。其次,从模型结构来看,DFCNN与传统语音识别中的CNN作法不一样,它借鉴了图像识别中效果最好的网络配置,每一个卷积层使用3x3的小卷积核,并在多个卷积层以后再加上池化层,这样大大加强了CNN的表达能力,与此同时,经过累积很是多的这种卷积池化层对,DFCNN能够看到很是长的历史和将来信息,这就保证了DFCNN能够出色地表达语音的长时相关性,相比RNN网络结构在鲁棒性上更加出色。最后,从输出端来看,DFCNN还能够和近期很热的CTC方案完美结合以实现整个模型的端到端训练,且其包含的池化层等特殊结构可使得以上端到端训练变得更加稳定。

4 总结

因为CNN自己卷积在频域上的平移不变性,同时VGG、残差网络等深度CNN网络的提出,给CNN带了新的新的发展,使CNN成为近两年语音识别最火的方向之一。用法也从最初的2-3层浅层网络发展到10层以上的深层网络,从HMM-CNN框架到端到端CTC框架,各个公司也在deep CNN的应用上取得了使人瞩目的成绩。

总结一下,CNN发展的趋势大致为:

1 更加深和复杂的网络,CNN通常做为网络的前几层,能够理解为用CNN提取特征,后面接LSTM或DNN。同时结合多种机制,如attention model、ResNet 的技术等。

2 End to End的识别系统,采用端到端技术CTC , LFR 等。

3 粗粒度的建模单元,趋势为从state到phone到character,建模单元愈来愈大。

但CNN也有局限性,[2,3]研究代表,卷积神经网络在训练集或者数据差别性较小的任务上帮助最大,对于其余大多数任务,相对词错误率的降低通常只在2%到3%的范围内。无论怎么说,CNN做为语音识别重要的分支之一,都有着极大的研究价值。

参考文献:

[ 1 ] Sainath,T.N, Vinyals, O., Senior, O.,Sak H:CONVOLUTIONAL, LONG SHORT-TERM MEMORY, FULLY CONNECTED DEEP NEURAL NETWORKS

[ 2 ] Sainath,T.N , Mohamed,A.r , Kingsbury ,B., Ramabhadran,B.:DEEP CONVOLUTIONAL NEURAL NETWORKS FOR LVCSR.In:Proc. International Conference on Acoustics, Speech and signal Processing(ICASSP),pp.8614-8618(2013)

[ 3 ] Deng, L.,Abdel-Hamid,O.,Yu,D.:A DEEP CONVOLUTIONAL NEURAL NETWORK USING HETEROGENEOUS POOLING FOR TRADING ACOUSTIC INVARIANCE WITH PHONETIC CONFUSION.In:Proc. International Conference on Acoustics, Speech and signal Processing(ICASSP),pp.6669-6673(2013)

[ 4 ] Chellapilla, K.,Puri, S., Simard,P.:High Performance Convolutional Neural Networks for Document Processing.In: Tenth International Workshop on Frontiers in Handwriting Recognition(2006)

[ 5 ]Zhang, Y., Chan ,W., Jaitly, N.:VERY DEEP CONVOLUTIONAL NETWORKS FOR END-TO-END SPEECH RECOGNITION.In:Proc. International Conference on Acoustics, Speech and signal Processing(ICASSP 2017)

相关阅读

利用 RNN 训练 Seq2Seq 已经成为过去,CNN 才是将来?

使用 Tensorflow 构建 CNN 进行情感分析实践

给 AI 换个“大动力当心脏”之通用 CNN 加速设计

此文已由做者受权腾讯云技术社区发布,转载请注明原文出处

相关文章
相关标签/搜索