详解卷网络(CNN)在语音识别中的应用
详解卷网络(CNN)在语音识别中的应用本文转载于知乎:腾讯云加社区作者:候艺馨原文出处:点击前往阅读原文.
前言总结目前语音识别的发展现状,dnn、rnn/lstm和cnn算是语音识别中几个比较主流的方向。2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(FeedForwardDeepNeuralNetwork)引入到声学模型建模中,将FFDNN的输出层概率用于替换之前GMM-HMM中使用GMM计算的输出概率,引领了DNN-HMM混合系统的风潮。长短时记忆网络(LSTM,LongShortTermMemory)可以说是目前语音识别应用最广泛的一种结构,这种网络能够对语音的长时相关性进行建模,从而提高识别正确率。双向LSTM网络可以获得更好的性能,但同时也存在训练复杂度高、解码时延高的问题,尤其在工业界的实时识别系统中很难应用。
回顾近一年语音识别的发展,deepcnn绝对称得上是比较火的关键词,很多公司都在这方面投入了大量研究。其实CNN被用在语音识别中由来已久,在12、13年的时候OssamaAbdel-Hamid就将CNN引入了语音识别中。那时候的卷积层和pooling层是交替出现的,并且卷积核的规模是比较大的,CNN的层数也并不多,主要是用来对特征进行加工和处理,使其能更好的被用于DNN的分类。随着CNN在图像领域的发光发热,VGGNet,GoogleNet和ResNet的应用,为CNN在语音识别提供了更多思路,比如多层卷积之后再接pooling层,减小卷积核的尺寸可以使得我们能够训练更深的、效果更好的CNN模型。
1语音识别为什么要用CNN通常情况下,语音识别都是基于时频分析后的语音谱完成的,而其中语音时频谱是具有结构特点的。要想提高语音识别率,就是需要克服语音信号所面临各种各样的多样性,包括说话人的多样性(说话人自身、以及说话人间),环境的多样性等。一个卷积神经网络提供在时间和空间上的平移不变性卷积,将卷积神经网络的思想应用到语音识别的声学建模中,则可以利用卷积的不变性来克服语音信号本身的多样性。从这个角度来看,则可以认为是将整个语音信号分析得到的时频谱当作一张图像一样来处理,采用图像中广泛应用的深层卷积网络对其进行识别。
从实用性上考虑,CNN也比较容易实现大规模并行化运算。虽然在CNN卷积运算中涉及到很多小矩阵操作,运算很慢。不过对CNN的加速运算相对比较成熟,如Chellapilla等人提出一种技术可以把所有这些小矩阵转换成一个大矩阵的乘积。一些通用框架如Tensorflow,caffe等也提供CNN的并行化加速,为CNN在语音识别中的尝试提供了可能。
下面将由“浅”入“深”的介绍一下cnn在语音识别中的应用。
2CLDNN提到CNN在语音识别中的应用,就不得不提CLDNN(CONVOLUTIONAL,LONGSHORT-TERMMEMORY,FULLYCONNECTEDDEEPNEURALNETWORKS)[1],在CLDNN中有两层CNN的应用,算是浅层CNN应用的代表。CNN和LSTM在语音识别任务中可以获得比DNN更好的性能提升,对建模能力来说,CNN擅长减小频域变化,LSTM可以提供长时记忆,所以在时域上有着广泛应用,而DNN适合将特征映射到独立空间。而在CLDNN中,作者将CNN,LSTM和DNN串起来融合到一个网络中,获得比单独网络更好的性能。
CLDNN网络的通用结构是输入层是时域相关的特征,连接几层CNN来减小频域变化,CNN的输出灌入几层LSTM来减小时域变化,LSTM最后一层的输出输入到全连接DNN层,目的是将特征空间映射到更容易分类的输出层。之前也有将CNNLSTM和DNN融合在一起的尝试,不过一般是三个网络分别训练,最后再通过融合层融合在一起,而CLDNN是将三个网络同时训练。实验证明,如果LSTM输入更好的特征其性能将得到提高,受到启发,作者用CNN来减小频域上的变化使LSTM输入自适应性更强的特征,加入DNN增加隐层和输出层之间的深度获得更强的预测能力。
2.1CLDNN网络结构Fig1.CLDNNArchitecture网络结构图如图1,假设中心帧为,考虑到内容相关性,向左扩展L帧,向右扩展R帧,则输入特征序列为[,...,],特征向量使用的是40维的log梅尔特征。
CNN部分为两层CNN,每层256个featuremaps,第一层采用9x9时域-频域滤波器,第二层为4x3的滤波器。池化层采用max-pooling策略,第一层poolingsize是3,第二层CNN不接池化层。
由于CNN最后一层输出维度很大,大小为feature-mapstimefrequency,所以在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的层数对结果没有帮助。
Fig2.CLDNN实验结构methodWERLSTM13.8CNN+2层LSTM14.1CNN+3层LSTM13.6CNN+LSTM+DNN13.0LSTM+DNN13.2Table1测试集1结果methodWERLSTM21.6CNN+2层LSTM21.8CNN+3层LSTM21.5CNN+LSTM+DNN20.6LSTM+DNN20.8Table2测试集2结果3deepCNN在过去的一年中,语音识别取得了很大的突破。IBM、微软、百度等多家机构相继推出了自己的DeepCNN模型,提升了语音识别的准确率。Residual/Highway网络的提出使我们可以把神经网络训练的更深。尝试DeepCNN的过程中,大致也分为两种策略:一种是HMM框架中基于DeepCNN结构的声学模型,CNN可以是VGG、Residual连接的CNN网络结构、或是CLDNN结构。另一种是近两年非常火的端到端结构,比如在CTC框架中使用CNN或CLDNN实现端对端建模,或是最近提出的LowFrameRate、Chain模型等粗粒度建模单元技术。
对于输入端,大体也分为两种:输入传统信号处理过的特征,采用不同的滤波器处理,然后进行左右或跳帧扩展。
Fig3.Multi-scaleinputfeature.Stack31140第二种是直接输入原始频谱,将频谱图当做图像处理。
Fig4.Frequencybandsinput3.1百度deepspeech百度将DeepCNN应用于语音识别研究,使用了VGGNet,以及包含Residual连接的深层CNN等结构,并将LSTM和CTC的端对端语音识别技术相结合,使得识别错误率相对下降了10%(原错误率的90%)以上。
此前,百度语音每年的模型算法都在不断更新,从DNN,到区分度模型,到CTC模型,再到如今的DeepCNN。基于LSTM-CTC的声学模型也于2015年底已经在所有语音相关产品中得到了上线。比较重点的进展如下:1)2013年,基于美尔子带的CNN模型;2)2014年,SequenceDiscriminativeTraining(区分度模型);3)2015年初,基于LSTM-HMM的语音识别;4)2015年底,基于LSTM-CTC的端对端语音识别;5)2016年,DeepCNN模型,目前百度正在基于DeepCNN开发deepspeech3,据说训练采用大数据,调参时有上万小时,做产品时甚至有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.2IBM2015年,IBMWatson公布了英语会话语音识别领域的一个重大里程碑:系统在非常流行的评测基准Switchboard数据库中取得了8%的词错率(WER)。到了2016年5月份,IBMWatson团队再次宣布在同样的任务中他们的系统创造了6.9%的词错率新纪录,其解码部分采用的是HMM,语言模型采用的是启发性的神经网络语言模型。声学模型主要包含三个不同的模型,分别是带有maxout激活的循环神经网络、3*3卷积核的深度卷积神经网络、双向长短期记忆网络,下面我们来具体看看它们的内部结构。
Fig6.IBMDeepCNN框架非常深的卷积神经网络的灵感来自2014ImageNet参赛的VGG网络,中心思想是使用较小的3*3卷积核来取代较大的卷积核,通过在池化层之前叠加多层卷积网络,采取ReLU激活函数,可以获得相同的感知区域,同时具备参数数目较少和更多非线性的优点。
如上图所示,左1为最经典的卷积神经网络,只使用了两个卷积层,并且之间包含一个池化层,卷积层的卷积核也较大,99和43,而卷积的特征面也较多,512张卷积特征面。
左2、左3、左4均为深度卷积神经网络的结构,可以注意到与经典的卷积神经网络所不同的是,卷积的特征面由64个增加到128个再增加到256个,而且池化层是放在卷积的特征面数增加之前的;卷积核均使用的是较小的33卷积核,池化层的池化大小由21增加到2*2。
最右边10-conv的参数数目与最左边的经典卷积神经网络参数数目相同,但是收敛速度却足足快了5倍,尽管计算复杂度提高了一些。
3.3微软2016年9月在产业标准Switchboard语音识别任务上,微软研究者取得了产业中最低的6.3%的词错率(WER)。基于神经网络的声学和语言模型的发展,数个声学模型的结合,把ResNet用到语音识别。
而在2016年的10月,微软人工智能与研究部门的团队报告出他们的语音识别系统实现了和专业速录员相当甚至更低的词错率(WER),达到了5.9%。5.9%的词错率已经等同于人速记同样一段对话的水平,而且这是目前行Switchboard语音识别任务中的最低记录。这个里程碑意味着,一台计算机在识别对话中的词上第一次能和人类做得一样好。系统性地使用了卷积和LSTM神经网络,并结合了一个全新的空间平滑方法(spatialsmoothingmethod)和lattice-freeMMI声学训练。
虽然在准确率的突破上都给出了数字基准,微软的研究更加学术,是在标准数据库——口语数据库switchboard上面完成的,这个数据库只有2000小时。
3.4Google根据MaryMeeker年度互联网报告,Google以机器学习为背景的语音识别系统,2017年3月已经获得英文领域95%的字准确率,此结果逼近人类语音识别的准确率。如果定量的分析的话,从2013年开始,Google系统已经提升了20%的性能。
Fig7.Google语音识别性能发展从近几年google在各类会议上的文章可以看出,google尝试deepCNN的路径主要采用多种方法和模型融合,如Network-in-Network(NiN),BatchNormalization(BN),ConvolutionalLSTM(ConvLSTM)方法的融合。比如2017icassp会议中google所展示的结构
Fig8.[5]includestwoconvolutionallayeratthebottomandfollowedbyfourresidualblockandLSTMNiNblock.EachresidualblockcontainsoneconvolutionalLSTMlayerandoneconvolutionallayer.3.5科大讯飞DFCNN2016年,在提出前馈型序列记忆网络FSMN(Feed-forwardSequentialMemoryNetwork)的新框架后,科大讯飞又提出了一种名为深度全序列卷积神经网络(DeepFullyConvolutionalNeuralNetwork,DFCNN)的语音识别框架,使用大量的卷积层直接对整句语音信号进行建模,更好地表达了语音的长时相关性。
DFCNN的结构如下图所示,它输入的不光是频谱信号,更进一步的直接将一句语音转化成一张图像作为输入,即先对每帧语音进行傅里叶变换,再将时间和频率作为图像的两个维度,然后通过非常多的卷积层和池化(pooling)层的组合,对整句语音进行建模,输出单元直接与最终的识别结果比如音节或者汉字相对应。
Fig9.DFCNN框架首先,从输入端来看,传统语音特征在傅里叶变换之后使用各种人工设计的滤波器组来提取特征,造成了频域上的信息损失,在高频区域的信息损失尤为明显,而且传统语音特征为了计算量的考虑必须采用非常大的帧移,无疑造成了时域上的信息损失,在说话人语速较快的时候表现得更为突出。因此DFCNN直接将语谱图作为输入,相比其他以传统语音特征作为输入的语音识别框架相比具有天然的优势。其次,从模型结构来看,DFCNN与传统语音识别中的CNN做法不同,它借鉴了图像识别中效果最好的网络配置,每个卷积层使用3x3的小卷积核,并在多个卷积层之后再加上池化层,这样大大增强了CNN的表达能力,与此同时,通过累积非常多的这种卷积池化层对,DFCNN可以看到非常长的历史和未来信息,这就保证了DFCNN可以出色地表达语音的长时相关性,相比RNN网络结构在鲁棒性上更加出色。最后,从输出端来看,DFCNN还可以和近期很热的CTC方案完美结合以实现整个模型的端到端训练,且其包含的池化层等特殊结构可以使得以上端到端训练变得更加稳定。
4总结由于CNN本身卷积在频域上的平移不变性,同时VGG、残差网络等深度CNN网络的提出,给CNN带了新的新的发展,使CNN成为近两年语音识别最火的方向之一。用法也从最初的2-3层浅层网络发展到10层以上的深层网络,从HMM-CNN框架到端到端CTC框架,各个公司也在deepCNN的应用上取得了令人瞩目的成绩。
总结一下,CNN发展的趋势大体为:1更加深和复杂的网络,CNN一般作为网络的前几层,可以理解为用CNN提取特征,后面接LSTM或DNN。同时结合多种机制,如attentionmodel、ResNet的技术等。2EndtoEnd的识别系统,采用端到端技术CTC,LFR等。3粗粒度的建模单元,趋势为从state到phone到character,建模单元越来越大。但CNN也有局限性,[2,3]研究表明,卷积神经网络在训练集或者数据差异性较小的任务上帮助最大,对于其他大多数任务,相对词错误率的下降一般只在2%到3%的范围内。不管怎么说,CNN作为语音识别重要的分支之一,都有着极大的研究价值。
参考文献:[1]Sainath,T.N,Vinyals,O.,Senior,O.,SakH:CONVOLUTIONAL,LONGSHORT-TERMMEMORY,FULLYCONNECTEDDEEPNEURALNETWORKS
[2]Sainath,T.N ,Mohamed,A.r ,Kingsbury ,B.,Ramabhadran,B.:DEEPCONVOLUTIONALNEURALNETWORKSFORLVCSR.In:Proc.InternationalConferenceonAcoustics,SpeechandsignalProcessing(ICASSP),pp.8614-8618(2013)
[3]Deng,L.,Abdel-Hamid,O.,Yu,D.:ADEEPCONVOLUTIONALNEURALNETWORKUSINGHETEROGENEOUSPOOLINGFORTRADINGACOUSTICINVARIANCEWITHPHONETICCONFUSION.In:Proc.InternationalConferenceonAcoustics,SpeechandsignalProcessing(ICASSP),pp.6669-6673(2013)
[4]Chellapilla,K.,Puri,S.,Simard,P.:HighPerformanceConvolutionalNeuralNetworksforDocumentProcessing.In:TenthInternationalWorkshoponFrontiersinHandwritingRecognition(2006)
[5]Zhang,Y.,Chan,W.,Jaitly,N.:VERYDEEPCONVOLUTIONALNETWORKSFOREND-TO-ENDSPEECHRECOGNITION.In:Proc.InternationalConferenceonAcoustics,SpeechandsignalProcessing(ICASSP2017)
2023年智能语音行业应用现状及发展前景分析 公共事业领域有望率先收益
智能语音技术将率先在公共事业领域爆发
智能语音技术将率先在公共事业领域进行爆发,在政府的支持下进行快速发展,具体如医疗健康、教育、公共安全等,而智能客服中的民生领域如电信、政府事务也属于第一爆发梯队。
1、智能语音是人工智能行业的探路石
语音识别和语义分析赛道从广泛意义来说从属于人工智能赛道中的智能语音,由此智能语音的投资机构数量占人工智能整体的21.5%。根据国家专利局对相关专利的分析,截至2019年底,共有语音识别相关专利数22119件,而人工智能相关专利申请数为14814件,说明智能语音的技术产出高于行业整体,发展速度也较行业整体快。从另一个角度来看,智能语音可以作为人工智能行业的“探路石”。
2、智能语音在医疗健康领域的功能主要是导诊和记录
智能语音技术应用到医疗健康领域主要分为两大功能,一个是诊前的导诊功能,另一个是诊后的记录及导入电子病历的功能。导诊功能的主要职责是帮助医生更快的对病人进行诊断,节约时间;记录和导入功能则是为了下一次更好地进行导诊。
3、智能语音在公检法的核心功能是安全辅助功能是记录
从IRsearch提供的智能语音在公检法领域的应用分析可知,智能语音主要功能是将语音作为安全措施的另一个入口,包括但不限于公共安全领域中一切与语音相关的服务,如语音识别电信诈骗、语音筛选犯罪人、语音提取接警信息等。另一个功能则是记录,包括但不限于一切需要文书的领域,如庭审笔录生成等、公安笔录生成等等。
4、智能语音在教育的核心功能是丰富线上教学趣味性
智能语音在教育中的应用主要分布在线上教育,核心功能是丰富线上教育的趣味性,包括但不限于提高师生交互性、监督并反馈课堂质量、拓展学生的口述能力等等。智能语音在线下教育的功能较不明显,但前瞻预计将用于老师上课口音和速度的识别上,以防止学生的注意力被老师口速过快或口音严重等问题分散。
5、智能语音在客服的主要功能是识别及接入
智能客服作为呼叫中心的进阶版,主要功能仍然以呼叫中心的功能为主,即识别客户问题并接入解决方案,而智能客服主要的作用则是减少传统呼叫中心的服务时间,从而提高呼叫中心坐席的利用率。
以上数据来源及分析请参考于前瞻产业研究院《中国人工智能行业市场前瞻与投资战略规划分析报告》,同时前瞻产业研究院提供产业大数据、产业规划、产业申报、产业园区规划、产业招商引资等解决方案。
语音识别研究现状
前言总结目前语音识别的发展现状,dnn、rnn/lstm和cnn算是语音识别中几个比较主流的方向。2012年,微软邓力和俞栋老师将前馈神经网络FFDNN(FeedForwardDeepNeuralNetwork)引入到声学模型建模中,将FFDNN的输出层概率用于替换之前GMM-HMM中使用GMM计算的输出概率,引领了DNN-HMM混合系统的风潮。长短时记忆网络(LSTM,LongShortTermMemory)可以说是目前语音识别应用最广泛的一种结构,这种网络能够对语音的长时相关性进行建模,从而提高识别正确率。双向LSTM网络可以获得更好的性能,但同时也存在训练复杂度高、解码时延高的问题,尤其在工业界的实时识别系统中很难应用。
回顾近一年语音识别的发展,deepcnn绝对称得上是比较火的关键词,很多公司都在这方面投入了大量研究。其实CNN被用在语音识别中由来已久,在12、13年的时候OssamaAbdel-Hamid就将CNN引入了语音识别中。那时候的卷积层和pooling层是交替出现的,并且卷积核的规模是比较大的,CNN的层数也并不多,主要是用来对特征进行加工和处理,使其能更好的被用于DNN的分类。随着CNN在图像领域的发光发热,VGGNet,GoogleNet和ResNet的应用,为CNN在语音识别提供了更多思路,比如多层卷积之后再接pooling层,减小卷积核的尺寸可以使得我们能够训练更深的、效果更好的CNN模型。
1语音识别为什么要用CNN通常情况下,语音识别都是基于时频分析后的语音谱完成的,而其中语音时频谱是具有结构特点的。要想提高语音识别率,就是需要克服语音信号所面临各种各样的多样性,包括说话人的多样性(说话人自身、以及说话人间),环境的多样性等。一个卷积神经网络提供在时间和空间上的平移不变性卷积,将卷积神经网络的思想应用到语音识别的声学建模中,则可以利用卷积的不变性来克服语音信号本身的多样性。从这个角度来看,则可以认为是将整个语音信号分析得到的时频谱当作一张图像一样来处理,采用图像中广泛应用的深层卷积网络对其进行识别。
从实用性上考虑,CNN也比较容易实现大规模并行化运算。虽然在CNN卷积运算中涉及到很多小矩阵操作,运算很慢。不过对CNN的加速运算相对比较成熟,如Chellapilla等人提出一种技术可以把所有这些小矩阵转换成一个大矩阵的乘积。一些通用框架如Tensorflow,caffe等也提供CNN的并行化加速,为CNN在语音识别中的尝试提供了可能。
下面将由“浅”入“深”的介绍一下cnn在语音识别中的应用。
2CLDNN提到CNN在语音识别中的应用,就不得不提CLDNN(CONVOLUTIONAL,LONGSHORT-TERMMEMORY,FULLYCONNECTEDDEEPNEURALNETWORKS)[1],在CLDNN中有两层CNN的应用,算是浅层CNN应用的代表。CNN和LSTM在语音识别任务中可以获得比DNN更好的性能提升,对建模能力来说,CNN擅长减小频域变化,LSTM可以提供长时记忆,所以在时域上有着广泛应用,而DNN适合将特征映射到独立空间。而在CLDNN中,作者将CNN,LSTM和DNN串起来融合到一个网络中,获得比单独网络更好的性能。
CLDNN网络的通用结构是输入层是时域相关的特征,连接几层CNN来减小频域变化,CNN的输出灌入几层LSTM来减小时域变化,LSTM最后一层的输出输入到全连接DNN层,目的是将特征空间映射到更容易分类的输出层。之前也有将CNNLSTM和DNN融合在一起的尝试,不过一般是三个网络分别训练,最后再通过融合层融合在一起,而CLDNN是将三个网络同时训练。实验证明,如果LSTM输入更好的特征其性能将得到提高,受到启发,作者用CNN来减小频域上的变化使LSTM输入自适应性更强的特征,加入DNN增加隐层和输出层之间的深度获得更强的预测能力。
2.1CLDNN网络结构Fig1.CLDNNArchitecture
网络结构图如图1,假设中心帧为,考虑到内容相关性,向左扩展L帧,向右扩展R帧,则输入特征序列为[,...,],特征向量使用的是40维的log梅尔特征。
CNN部分为两层CNN,每层256个featuremaps,第一层采用9x9时域-频域滤波器,第二层为4x3的滤波器。池化层采用max-pooling策略,第一层poolingsize是3,第二层CNN不接池化层。
由于CNN最后一层输出维度很大,大小为feature-mapstimefrequency,所以在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的层数对结果没有帮助。
Fig2.CLDNN实验结构
methodWERLSTM13.8CNN+2层LSTM14.1CNN+3层LSTM13.6CNN+LSTM+DNN13.0LSTM+DNN13.2Table1测试集1结果
methodWERLSTM21.6CNN+2层LSTM21.8CNN+3层LSTM21.5CNN+LSTM+DNN20.6LSTM+DNN20.8Table2测试集2结果
3deepCNN在过去的一年中,语音识别取得了很大的突破。IBM、微软、百度等多家机构相继推出了自己的DeepCNN模型,提升了语音识别的准确率。Residual/Highway网络的提出使我们可以把神经网络训练的更深。尝试DeepCNN的过程中,大致也分为两种策略:一种是HMM框架中基于DeepCNN结构的声学模型,CNN可以是VGG、Residual连接的CNN网络结构、或是CLDNN结构。另一种是近两年非常火的端到端结构,比如在CTC框架中使用CNN或CLDNN实现端对端建模,或是最近提出的LowFrameRate、Chain模型等粗粒度建模单元技术。
对于输入端,大体也分为两种:输入传统信号处理过的特征,采用不同的滤波器处理,然后进行左右或跳帧扩展。
Fig3.Multi-scaleinputfeature.Stack31140
第二种是直接输入原始频谱,将频谱图当做图像处理。
Fig4.Frequencybandsinput
3.1百度deepspeech百度将DeepCNN应用于语音识别研究,使用了VGGNet,以及包含Residual连接的深层CNN等结构,并将LSTM和CTC的端对端语音识别技术相结合,使得识别错误率相对下降了10%(原错误率的90%)以上。
此前,百度语音每年的模型算法都在不断更新,从DNN,到区分度模型,到CTC模型,再到如今的DeepCNN。基于LSTM-CTC的声学模型也于2015年底已经在所有语音相关产品中得到了上线。比较重点的进展如下:1)2013年,基于美尔子带的CNN模型;2)2014年,SequenceDiscriminativeTraining(区分度模型);3)2015年初,基于LSTM-HMM的语音识别;4)2015年底,基于LSTM-CTC的端对端语音识别;5)2016年,DeepCNN模型,目前百度正在基于DeepCNN开发deepspeech3,据说训练采用大数据,调参时有上万小时,做产品时甚至有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.2IBM2015年,IBMWatson公布了英语会话语音识别领域的一个重大里程碑:系统在非常流行的评测基准Switchboard数据库中取得了8%的词错率(WER)。到了2016年5月份,IBMWatson团队再次宣布在同样的任务中他们的系统创造了6.9%的词错率新纪录,其解码部分采用的是HMM,语言模型采用的是启发性的神经网络语言模型。声学模型主要包含三个不同的模型,分别是带有maxout激活的循环神经网络、3*3卷积核的深度卷积神经网络、双向长短期记忆网络,下面我们来具体看看它们的内部结构。
Fig6.IBMDeepCNN框架
非常深的卷积神经网络的灵感来自2014ImageNet参赛的VGG网络,中心思想是使用较小的3*3卷积核来取代较大的卷积核,通过在池化层之前叠加多层卷积网络,采取ReLU激活函数,可以获得相同的感知区域,同时具备参数数目较少和更多非线性的优点。
如上图所示,左1为最经典的卷积神经网络,只使用了两个卷积层,并且之间包含一个池化层,卷积层的卷积核也较大,99和43,而卷积的特征面也较多,512张卷积特征面。
左2、左3、左4均为深度卷积神经网络的结构,可以注意到与经典的卷积神经网络所不同的是,卷积的特征面由64个增加到128个再增加到256个,而且池化层是放在卷积的特征面数增加之前的;卷积核均使用的是较小的33卷积核,池化层的池化大小由21增加到2*2。
最右边10-conv的参数数目与最左边的经典卷积神经网络参数数目相同,但是收敛速度却足足快了5倍,尽管计算复杂度提高了一些。
3.3微软2016年9月在产业标准Switchboard语音识别任务上,微软研究者取得了产业中最低的6.3%的词错率(WER)。基于神经网络的声学和语言模型的发展,数个声学模型的结合,把ResNet用到语音识别。
而在2016年的10月,微软人工智能与研究部门的团队报告出他们的语音识别系统实现了和专业速录员相当甚至更低的词错率(WER),达到了5.9%。5.9%的词错率已经等同于人速记同样一段对话的水平,而且这是目前行Switchboard语音识别任务中的最低记录。这个里程碑意味着,一台计算机在识别对话中的词上第一次能和人类做得一样好。系统性地使用了卷积和LSTM神经网络,并结合了一个全新的空间平滑方法(spatialsmoothingmethod)和lattice-freeMMI声学训练。
虽然在准确率的突破上都给出了数字基准,微软的研究更加学术,是在标准数据库——口语数据库switchboard上面完成的,这个数据库只有2000小时。
3.4Google根据MaryMeeker年度互联网报告,Google以机器学习为背景的语音识别系统,2017年3月已经获得英文领域95%的字准确率,此结果逼近人类语音识别的准确率。如果定量的分析的话,从2013年开始,Google系统已经提升了20%的性能。
Fig7.Google语音识别性能发展
从近几年google在各类会议上的文章可以看出,google尝试deepCNN的路径主要采用多种方法和模型融合,如Network-in-Network(NiN),BatchNormalization(BN),ConvolutionalLSTM(ConvLSTM)方法的融合。比如2017icassp会议中google所展示的结构
Fig8.[5]includestwoconvolutionallayeratthebottomandfollowedbyfourresidualblockandLSTMNiNblock.EachresidualblockcontainsoneconvolutionalLSTMlayerandoneconvolutionallayer.
3.5科大讯飞DFCNN2016年,在提出前馈型序列记忆网络FSMN(Feed-forwardSequentialMemoryNetwork)的新框架后,科大讯飞又提出了一种名为深度全序列卷积神经网络(DeepFullyConvolutionalNeuralNetwork,DFCNN)的语音识别框架,使用大量的卷积层直接对整句语音信号进行建模,更好地表达了语音的长时相关性。
DFCNN的结构如下图所示,它输入的不光是频谱信号,更进一步的直接将一句语音转化成一张图像作为输入,即先对每帧语音进行傅里叶变换,再将时间和频率作为图像的两个维度,然后通过非常多的卷积层和池化(pooling)层的组合,对整句语音进行建模,输出单元直接与最终的识别结果比如音节或者汉字相对应。
Fig9.DFCNN框架
首先,从输入端来看,传统语音特征在傅里叶变换之后使用各种人工设计的滤波器组来提取特征,造成了频域上的信息损失,在高频区域的信息损失尤为明显,而且传统语音特征为了计算量的考虑必须采用非常大的帧移,无疑造成了时域上的信息损失,在说话人语速较快的时候表现得更为突出。因此DFCNN直接将语谱图作为输入,相比其他以传统语音特征作为输入的语音识别框架相比具有天然的优势。其次,从模型结构来看,DFCNN与传统语音识别中的CNN做法不同,它借鉴了图像识别中效果最好的网络配置,每个卷积层使用3x3的小卷积核,并在多个卷积层之后再加上池化层,这样大大增强了CNN的表达能力,与此同时,通过累积非常多的这种卷积池化层对,DFCNN可以看到非常长的历史和未来信息,这就保证了DFCNN可以出色地表达语音的长时相关性,相比RNN网络结构在鲁棒性上更加出色。最后,从输出端来看,DFCNN还可以和近期很热的CTC方案完美结合以实现整个模型的端到端训练,且其包含的池化层等特殊结构可以使得以上端到端训练变得更加稳定。
4总结由于CNN本身卷积在频域上的平移不变性,同时VGG、残差网络等深度CNN网络的提出,给CNN带了新的新的发展,使CNN成为近两年语音识别最火的方向之一。用法也从最初的2-3层浅层网络发展到10层以上的深层网络,从HMM-CNN框架到端到端CTC框架,各个公司也在deepCNN的应用上取得了令人瞩目的成绩。
总结一下,CNN发展的趋势大体为:
1更加深和复杂的网络,CNN一般作为网络的前几层,可以理解为用CNN提取特征,后面接LSTM或DNN。同时结合多种机制,如attentionmodel、ResNet的技术等。
2EndtoEnd的识别系统,采用端到端技术CTC,LFR等。
3粗粒度的建模单元,趋势为从state到phone到character,建模单元越来越大。
但CNN也有局限性,[2,3]研究表明,卷积神经网络在训练集或者数据差异性较小的任务上帮助最大,对于其他大多数任务,相对词错误率的下降一般只在2%到3%的范围内。不管怎么说,CNN作为语音识别重要的分支之一,都有着极大的研究价值。
参考文献:[1]Sainath,T.N,Vinyals,O.,Senior,O.,SakH:CONVOLUTIONAL,LONGSHORT-TERMMEMORY,FULLYCONNECTEDDEEPNEURALNETWORKS
[2]Sainath,T.N ,Mohamed,A.r ,Kingsbury ,B.,Ramabhadran,B.:DEEPCONVOLUTIONALNEURALNETWORKSFORLVCSR.In:Proc.InternationalConferenceonAcoustics,SpeechandsignalProcessing(ICASSP),pp.8614-8618(2013)
[3]Deng,L.,Abdel-Hamid,O.,Yu,D.:ADEEPCONVOLUTIONALNEURALNETWORKUSINGHETEROGENEOUSPOOLINGFORTRADINGACOUSTICINVARIANCEWITHPHONETICCONFUSION.In:Proc.InternationalConferenceonAcoustics,SpeechandsignalProcessing(ICASSP),pp.6669-6673(2013)
[4]Chellapilla,K.,Puri,S.,Simard,P.:HighPerformanceConvolutionalNeuralNetworksforDocumentProcessing.In:TenthInternationalWorkshoponFrontiersinHandwritingRecognition(2006)
[5]Zhang,Y.,Chan,W.,Jaitly,N.:VERYDEEPCONVOLUTIONALNETWORKSFOREND-TO-ENDSPEECHRECOGNITION.In:Proc.InternationalConferenceonAcoustics,SpeechandsignalProcessing(ICASSP2017)
[6]https://www.cnblogs.com/qcloud1001/p/7941158.html?utm_source=debugrun&utm_medium=referral