当前位置: 首页 > 科技观察

CNN在语音识别中的应用

时间:2023-03-11 20:14:36 科技观察

前言总结了目前语音识别的发展现状,dnn、rnn/lstm和cnn是语音识别的几个主流方向。2012年,微软的邓力先生和于冬先生将前馈神经网络FFDNN(FeedForwardDeepNeuralNetwork)引入到声学模型建模中,并利用FFDNN的输出层概率来代替之前GMM中GMM计算的输出-唔。概率,打破了DNN-HMM混合系统的趋势。长短期记忆网络(LSTM,LongShortTermMemory)可以说是语音识别应用最广泛的结构。该网络可以对语音的长期相关性进行建模,从而提高识别的准确率。双向LSTM网络可以取得更好的性能,但也存在训练复杂度高、解码延迟高等问题,在业界实时识别系统中应用尤为困难。回顾过去一年语音识别的发展,deepcnn绝对是一个热门关键词,很多公司都在这方面投入了大量的研究。事实上,CNN在语音识别中的应用由来已久。12和13年,OssamaAbdel-Hamid将CNN引入语音识别。当时卷积层和池化层交替出现,而且卷积核的规模比较大,CNN的层数也不多,主要是用来对特征进行处理和处理,让它们变得更好。用于DNN分类。随着CNN在图像领域的发展,VGGNet、GoogleNet和ResNet的应用为CNN在语音识别方面提供了更多的思路,比如多层卷积后接池化层,减小卷积核的大小可以使我们能够训练更深入、性能更好的CNN模型。1为什么要用CNN做语音识别通常,语音识别是根据时频分析后的语音频谱完成的,语音时频频谱具有结构特征。为了提高语音识别率,需要克服语音信号面临的各种多样性,包括说话人的多样性(说话人本身和说话人)、环境的多样性等。卷积神经网络提供时间和空间上的平移不变卷积。将卷积神经网络的思想应用到语音识别的声学建模中,可以利用卷积的不变性来克服语音信号本身的多样性。性别。从这个角度来看,可以认为是将分析整个语音信号得到的时频频谱看成图像,利用图像中广泛使用的深度卷积网络对其进行识别。从实用的角度来看,CNN也比较容易实现大规模的并行运算。CNN卷积运算中虽然涉及到很多小的矩阵运算,但是运算速度非常慢。不过CNN的加速运营相对成熟。例如,切拉皮拉等人。提出了一种技术,可以将所有这些小矩阵转换为大矩阵的乘积。一些常见的框架如Tensorflow、caffe等也提供了CNN的并行加速,这使得CNN在语音识别方面的尝试成为可能。下面将从“浅”到“深”介绍cnn在语音识别中的应用。2提到CLDNN在语音识别中的应用,就不得不提到CLDNN(CONVOLUTIONAL,LONGSHORT-TERMMEMORY,FULLYCONNECTEDDEEPNEURALNETWORKS)[1]。CLDNN中有两层CNN应用,可视为浅层CNN应用代表。CNN和LSTM在语音识别任务中可以取得比DNN更好的性能提升。对于建模能力,CNN擅长减少频域变化,而LSTM可以提供长时记忆,因此在时域应用广泛。DNN适用于将特征映射到独立空间。在CLDNN中,作者将CNN、LSTM和DNN组合成一个网络,以获得比单一网络更好的性能。CLDNN网络的一般结构是输入层是与时域相关的特征。连接几层CNN以减少频域变化。CNN的输出被注入几层LSTM以减少时域变化。LSTM最后一层的输出输入到FullyconnectedDNN层,目的是将特征空间映射到一个更容易分类的输出层。之前也有尝试将CNNLSTM和DNN融合在一起,但一般都是三个网络分别训练,最后通过融合层融合在一起,而CLDNN是同时训练三个网络。实验证明,如果LSTM输入更好的特征,其性能会得到提升。受到启发,作者使用CNN减少频域的变化使LSTM输入更具适应性的特征,并加入DNN来增加隐藏层和输出层之间的差距。区间的深度获得更强的预测能力。2.1CLDNN网络结构图1.CLDNNArchitecture的网络结构图如图1所示,假设centralframe为,考虑contentcorrelation,Lframe向左扩展,Rframe向右扩展,则输入特征序列为[,...,],特征向量使用了40维的logMel特征。CNN部分是两层CNN,每层有256个特征图。第一层使用9x9的时域-频域滤波器,第二层是4x3的滤波器。池化层采用max-pooling策略,第一层池化大小为3,CNN第二层不连接池化层。由于CNN第一层的输出维度很大,大小为feature-mapstimefrequency,所以在CNN之后的LSTM之前接了一个线性层来降维,实验也证明降维和降参会对精度影响不大,线性层输出为256维。CNN之后是2层LSTM,每个LSTM层使用832个单元和一个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个状态。由于CNN的输入需要设置l和r两个参数,r设为0,l是10次实验后的最优解,以下实验结果默认l=10,r=0。其中LSTM有3层1024个cell,项目为512。CNN+LSTM和CNN+LSTM+DNN的具体网络参数略有调整,如下图所示。另外,增加了一组实验,两层CNN和三层LSTM的组合,实验验证了增加一层LSTM对结果有提升,但是继续增加LSTM层数对结果没有帮助.图2.CLDNN实验结构表1测试集1结果表2测试集2结果3deepCNN在过去的一年里,语音识别取得了很大的突破。IBM、微软、百度等多家机构相继推出了自己的DeepCNN模型,以提高语音识别的准确率。Residual/Highway网络的提出让我们可以更深入地训练神经网络。在尝试DeepCNN的过程中,大致有两种策略:一种是基于HMM框架中DeepCNN结构的声学模型,CNN可以是VGG,Residual-connectedCNN网络结构,或者CLDNN结构.另一种是近两年非常流行的端到端结构,比如在CTC框架中使用CNN或者CLDNN来实现端到端建模,或者最近提出的LowFrameRate,Chain模型和其他粗粒度建模单元技术。对于输入端,大致有两种:输入传统的信号处理特征,使用不同的滤波处理,然后进行左右或跳帧扩展。图3.多尺度输入特征。Stack31140第二种是直接输入原始频谱,将频谱图当做图像处理。Fig4.Frequencybandsinput3.1Baidudeepspeech百度将DeepCNN应用于语音识别研究,采用VGGNet、deepCNNwithresidualconnection等结构,结合LSTM和CTC端到端语音识别技术,识别错误率相对降低了10%以上(原来错误率的90%)。之前,百度语音的模型算法每年都在不断更新,从DNN,到判别模型,再到CTC模型,再到现在的DeepCNN。基于LSTM-CTC的声学模型也于2015年底在所有语音相关产品上线,主要进展如下:1)2013年,基于Meier子带的CNN模型;2)2014年,SequenceDiscriminativeTraining(判别模型);3)2015年初,基于LSTM-HMM的语音识别;4)2015年底,基于LSTM-CTC的端到端语音识别;5)2016年,DeepCNN模型。百度目前正在开发基于DeepCNN的深度语音3。有100,000小时。图5。百度语音识别开发百度发现深度CNN结构不仅可以显着提升HMM语音识别系统的性能,还可以提升CTC语音识别系统的性能。仅使用深度CNN进行端到端建模的性能相对较差,因此将LSTM或GRU等循环隐藏层与CNN相结合是一个相对不错的选择。可以通过在VGG结构中采用3*3等小核,或者使用残差连接等方式来提升性能,而卷积神经网络的层数和滤波器的数量会显着影响整个模型的建模能力.,在不同规模的语音训练数据库上,百度需要采用不同规模的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卷积核的深度卷积神经网络以及双向长短期记忆网络。让我们详细看看它们的内部结构。.图6.IBMDeepCNN框架的极深卷积神经网络的灵感来自参加2014年ImageNet竞赛的VGG网络。中心思想是用较小的3*3卷积核代替较大的卷积核,通过池化层叠加多层卷积网络之前,利用ReLU激活函数可以得到相同的感知区域,同时具有更少的参数和更多的非线性的优点。如上图,左1是最经典的卷积神经网络,只用了两个卷积层,中间有一个pooling层,而且卷积层的卷积核也很大,99和43,而卷积的特征面也很多,512个卷积特征面。左2、左3、左4都是深度卷积神经网络结构。可以注意到,与经典卷积神经网络的区别在于,卷积特征面的个数从64个增加到128个再增加到256个,并且在卷积的特征面个数增加之前放置了池化层;卷积核全部使用更小的33卷积核,池化层的poolingsize从21增加到2*2。最右边的10-conv的参数数量与最左边的经典卷积神经网络相同,但收敛速度快了5倍,虽然增加了计算复杂度。3.32016年9月,在微软的行业标准Switchboard语音识别任务上,微软研究人员取得了行业领先的6.3%的单词错误率(WER)。基于神经网络的声学和语言模型的开发,几种声学模型的组合,以及使用ResNet进行语音识别。2016年10月,微软人工智能与研究部门的团队报告称,他们的语音识别系统实现了与专业速记员相当甚至更低的单词错误率(WER),达到5.9%。5.9%的错字率已经相当于人类速记同一对话的水平,这是目前Switchboard语音识别任务中的最好记录。这一里程碑意味着,计算机首次在识别对话中的单词方面与人类一样出色。系统地使用卷积和LSTM神经网络,结合新的空间平滑方法和无格MMI声学训练。虽然给出了精度突破的数值基准,但微软的研究更偏学术,是在只有2000小时的标准数据库——口语数据库总机上做的。3.4谷歌根据MaryMeeker的年度互联网报告,谷歌基于机器学习的语音识别系统在2017年3月英语领域的单词准确率已经达到95%,接近人类语音识别的准确率。在量化分析方面,自2013年以来,谷歌系统的性能提升了20%。图7.Google语音识别性能的发展从Google近年来在各种会议上的文章可以看出,Google对深度CNN的尝试主要使用了多种方法和模型融合,例如Network-in-Network(NiN),批量归一化(BN),融合了卷积LSTM(ConvLSTM)方法。例如谷歌在2017年icassp会议上展示的结构如图8所示。[5]在底部包括两个卷积层,后面是四个residualblock和LSTMNiNblock。每个残差块包含一个卷积LSTM层和一个卷积层。3.5科大讯飞DFCNN20162009年,科大讯飞在提出前馈时序记忆网络FSMN(Feed-forwardSequentialMemoryNetwork)新框架后,又提出了一种新的深度全卷积神经网络(DFCNN)语音识别框架,采用了大量的卷积层直接对整句语音信号进行建模,更好的表达了语音的长期相关性。DFCNN的结构如下图所示。它不仅输入频谱信号,还直接将一段语音转换成图像作为输入,即先对每一帧语音进行傅里叶变换,然后将时间和频率作为图像。二维的,然后通过很多卷积层和池化层的组合,对整句语音进行建模,输出单元直接对应一个音节或者一个汉字等最终的识别结果。图9.DFCNN框架首先从输入来看,传统语音特征使用各种人工设计的滤波器组进行傅里叶变换后提取特征,导致频域信息丢失,高频区域信息丢失为特别明显,而传统的语音特征出于计算考虑必须采用非常大的帧偏移,这无疑会造成时域的信息丢失,在说话人说话速度较快时更为突出。因此,DFCNN直接使用声谱图作为输入,相对于其他使用传统语音特征作为输入的语音识别框架具有天然优势。其次,从模型结构上看,DFCNN不同于传统语音识别中的CNN。它借鉴了图像识别中最有效的网络配置。每个卷积层使用3x3的小卷积核,在多个卷积层之后加入池化层,大大增强了CNN的表达能力。同时,通过积累大量这样的卷积池化层对,DFCNN可以看到非常悠久的历史和未来信息。这保证了DFCNN能够很好地表达语音的长期相关性,并且比RNN网络结构更加鲁棒。***,从输出来看,DFCNN还可以结合最近比较火的CTC方案***实现整个模型的end-to-end训练,其poolinglayer等特殊结构可以让上面端到端训练变得更加稳定。4总结由于CNN自身卷积在频域的平移不变性,以及VGG、残差网络等深度CNN网络的提出,给CNN带来了新的发展,使得CNN成为近两年最火的语音识别。方向之一。用法也从最初的2-3层浅层网络发展到10层以上的深层网络。从HMM-CNN框架到端到端的CTC框架,各个公司在深度CNN的应用上也取得了令人瞩目的成果。总结一下,CNN的发展趋势大体是这样的:1、对于更深更复杂的网络,一般都是用CNN作为网络的前几层,可以理解为用CNN来提取特征,后面是LSTM或深度神经网络。同时结合了注意力模型、ResNet技术等多种机制。2EndtoEnd识别系统,采用端到端技术CTC、LFR等。3粗粒度建模单元,趋势是从state到phone再到character,建模单元越来越大。然而,CNN也有局限性。[2,3]研究表明,卷积神经网络有助于训练集或数据差异较小的任务。对于大多数其他任务,相对单词错误率一般仅在2%到3%的范围内。不管怎样,CNN作为语音识别的重要分支之一,具有很大的研究价值。