一种语音识别系统中基于多个卷积神经网络的语音增强算法的制作方法

文档序号:14716580发布日期:2018-06-16 01:28阅读:768来源:国知局
一种语音识别系统中基于多个卷积神经网络的语音增强算法的制作方法
本发明涉及到语音识别系统中噪声识别技术、语音增强技术以及卷积神经网络技术。
背景技术
:语音增强技术是指对带噪语音信号进行去噪处理。从语音增强技术发展的重要历程来看,按照处理方式不同,语音增强算法主要有三类:基于谱减法、基于统计学和深度学习的语音增强技术。基于谱减法的增强技术:经典谱减法用无语音环境计量出噪声频谱的估计值,替代有语音环境噪声的频谱值。通过减去带噪语音的频谱从而获得纯净语音的功率谱。谱减法可利用估计到的初始噪声功率谱和带噪语音信号的相位谱来重构增强后的语音信号。该方法实现简单和运算量小,但它的实现需要两个前提条件:第一,假设噪声环境在统计上是平稳的;第二,加性噪声信号和语音信号不相关。它的不足之处是残留一些节奏性起伏的“音乐噪声”,在听觉上类似低沉音乐在1979年,Berouti等人在前人研究的谱减法上加入了两个系数:一个修正系数和阈值,从而扩展了算法的增强作用。但由于系数一般依赖实验经验值,算法在一些噪声环境下难以起作用,鲁棒性相对比较差。基于统计技术的增强技术:随着统计学的发展,以统计理论为基础的语音增强技术也在逐步发展。Epharim等人提出了最小均方误差短时幅度谱(mnimummeansquareeeeorofshorttimeamplitudespectrum,MMSE-STSA)算法。1985年,他们加入听觉感受,在MMSE-STSA的基础上提出了Log-MMSE-STSA算法。该算法在性能上取得了比谱减法和维纳滤波器法要好的效果,但处于非平稳环境下时依然效果不理想。1987年,Paliwal提出了经典的卡尔曼(Kalman)滤波法。该算法可以让最小均方误差在非平稳环境下依然能得到最优效果。但由于信号参数的提取方式相对复杂,不具备普适性而难以有实际应用。基于MMSE的研究上,Gerkmann等人于2013年提出的在原来基础上估计语音频谱振幅的十分适用于非平稳噪声的算法。2013年,Sameti等人在Mel频域上加入了隐马尔科夫模型(HMM),提出的平行倒谱和谱(ParallelCepstralandSpectral,PCS)算法可减少语音信号变换到Mel域的失真程度。同样地它对于非平稳噪声环境中的语音增强效果比较好,但算法复杂度相对比较高。基于深度学习的增强技术:1989年,Tamura最先提出了用神经网络进行带噪语音和干净语音非线性关系的学习。基于时域中它们之间不清晰的关系,Xie提出了在频谱域中来训练出它们的非线性关系Bengio提出了源于径向基函数(RadialBasisFunction,RBF)来对网络进行改进,从而减少了网络的学习时间。然而由于当时网络规模比较小,随着噪声数据复杂度变大,神经网络的训练变得缓慢,在一定的学习之后也容易陷入局部最优解。这些缺陷一度阻碍着学者们运用神经网络在语音增强领域上的研究。在往后的十余年,伴随深度学习的深入研究,通过数据驱动的深度网络被运用到语音增强领域,取得了一定的实际作用。不过语音增强是一个实时性处理比较强的过程,如果要达到比较理想的状态,需要网络处理的时间速度足够快。直接对语音数据建立网络映射关系,会消耗一定时间。单独采用深度网络实现语音增强耗时比较大,也需要比较大量的数据。为了在少量的数据下快速实现自适应的语音增强处理,对各种噪声环境先进行分类,针对不同的噪声采用不同的降噪处理过程,可以提高算法的自适应能力,同时相比直接的网络回归计算加上语音合成计算,可以在一定程度上减少算法的复杂度。本发明提出一种卷积神经网络和传统递归最小二乘增强算法相结合的语音增强算法,既利用了卷积神经网络学习能力、自适应能力强的优点,也利用了传统语音增强算法处理时效性高的优点。利用两种卷积神经网络联合识别的工作原理,结合不同种噪声之间、以及同种噪声不同信噪比语音的特征差异,对系统输入的带噪语音进行高维度的充足特征的提取,实现噪声识别,并将组合特征最终输入到第二种卷积神经网络里面,匹配出SFTRLS算法的遗忘因子从而实现各个环境最佳的语音增强。神经网络的训练有一定的耗时,不过在实际运用中是使用训练好的结果进行计算,可以满足语音识别系统的实时性。技术实现要素:本发明实现的技术方案是:算法首先利用卷积神经网络对VAD后的噪声段进行噪声识别,判断出当前含噪语音中噪声的种类。接着以噪声识别的输出为输入,利用SFTRLS算法收敛性能和对非平稳噪声抑制性比一般传统算法效果更好以及对遗忘因子依赖较强的特点,通过线下卷积神经网络训练学习到SFTRLS针对每种噪声处理的最佳遗忘因子。在线上运用中,算法匹配到最佳的遗忘因子系数,然后通过SFTRLS对含噪语音进行增强处理。
发明内容有以下几点:1:对语音识别系统中的语音输入信号进行数据预处理,即归一化、预加重、分帧加窗。2:通过语音端点检测来提取出噪声段,对噪声段分别计算出包括MFCC、F0、过零率等648维度特征,并计算出语音环境中的信噪比。3:构造噪声识别的卷积神经网络模型,包含两个卷积层、两个池化层以及两个全连接层。4:利用训练好的第一种卷积神经网络模型对第2点中提取出来的648维特征进行识别预测,网络的输出表示当前噪声信号的种类C。5:利用5个卷积层、3个池化层、3个BN层以及3个全连接层构造一个深度卷积神经网络。6:将第2点中计算的特征、信噪比和步骤三计算的噪声信号种类C组成一个658维度的矢量,输入到第5点中建立的卷积神经网络中。由于该网络已经通过线上大量的学习训练,经过输入可最终输出平稳快速递归最小二乘法在该噪声环境下处理的最佳遗忘因子。7:将第6中自动匹配的最佳遗忘因子输入到平稳快速递归最小二乘法中,完成语音增强处理从而得到干净音频。本发明针对现有的语音识别系统在复杂多变的噪声环境中存在着语音降噪自适应能力不强,以及传统谱减法引入“音乐噪声”导致最终识别效果不理想的问题,与平稳快速递归最小二乘法结合,提出了一种基于两种卷积神经网络的语音增强算法。本发明的优点如下:充分利用了卷积神经网络对高维度数据可充分进行非线性处理、强鲁棒性、识别准确率高的优点,能够让平稳快速递归最小二乘模型适用于多种的噪声环境,在非平稳噪声环境中也依然有良好效果,最终达到改善语音质量的目的。附图说明为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。图1本发明总的实现流程图;图2噪声识别流程图;图3噪声识别的卷积神经网络结构图;图4语音增强环节的卷积神经网络结构图;图5本发明噪声识别模型的性能对比图;图6本发明噪声识别模型的性能对比图。具体实施方式本发明的算法模型为SFTRLS-CNN,模型具体的处理流程如图1所示。其中包含了噪声识别模型NC-CNN,NC-CNN的处理流程如图2所示。下面进行发明各步骤中的具体实施说明。步骤1:对语音识别系统中的语音输入信号进行数据预处理,即归一化、预加重、分帧加窗。(1)首先用sox将数据进行统一采样,采样率为16kHz,将模拟输入信号s(t)转换为s(n);(2)进行归一化将不同数量级的数据变成同一数量级,以便消除各维数据间的数量级差别,避免数据各维度之间由于数量级差别过大而造成误差过大,同时加快提高梯度下降法的收敛速度;针对高频部分进行加重以避免高频传输变得衰弱。归一化公式如式(1)所示,预加重公式如式(2)所示。(1)其中,i为样本数,xmax是音频信号特征值序列的最大值,xmin为该序列最小值,xi’是实现归一化后的值。(2)其中,n为样点数,a为系数,取0.98,y(n)是预加重之后的信号。(3)利用汉明窗对y(n)进行分帧、加窗。在这里,取20ms为一帧的长度,帧移长度为10ms。汉明窗函数定义如下式所示。(3)其中,w(n)为汉明窗函数,n为样本点数,N为窗长度。分帧和加窗定义如下式所示。y’(n)=y(n)*w(n)0<n<N-1(4)其中,n为样点数,y’(n)是加窗后的信号。步骤2:通过语音端点检测来提取出噪声段,对噪声段分别计算出包括MFCC、F0、过零率等648维度特征,并计算出语音环境中的信噪比。通过高维度特征的提取,可以保证学习到音频更多的特征,虽然更加了算法训练的时间,但也提高了算法的准确度。再加上卷积神经网络学习能力强的训练,可得到准确率高的识别分类。而在同一种噪声环境中,不同信噪比的音频在SFTRLS算法中处理也有不同的最佳遗忘因子,为让模型在各个环境下都能有最佳的效果,信噪比同时需要被提取作为网络的输入。648维特征通过音频工具opensmile提取。步骤3:利用训练好的第一种卷积神经网络模型对步骤2中提取出来的648维特征进行识别预测,网络的输出表示当前噪声信号的种类C。输入为648维的二维矢量,输出是噪声分类后的噪声种类,为一维矢量。本步骤的卷积神经网络结构如图3所示。网络具有两层卷积层、两层池化层和两层全连接层,两层卷积层和池化层的激活函数均为为relu()函数,第一层全连接层为relu()函数,第二层全连接层为softmax()函数。其中在卷积层后进行局部归一化处理,输出作为后面一层池化层的输入,池化层的输出再作为第二层卷积层的输入,局部归一化后数据再进入第二层的池化层,之后数据相继输入到最后的两层全连接层,通过最后全连接层输出噪声类型。本发明中所包括9种生活中常见噪声的音频,分别是人群嘈杂声、鸟鸣声、笑声、掌声、机器声、引擎声、风声、雨声、流水声,利用上述的卷及神经网络对这9种噪声实现分类,分类的准确率如表1所示。表1为混淆矩阵,举例而言,Bird到Bird表示卷积神经网络将鸟鸣声判断为鸟鸣声,准确率为99.99%,以此类推。从表中,总的分类准确率为99.97%。与其他噪声识别算法相比,也具有优良的性能,性能对比结果如图5所示。表1基于卷积神经网络的噪声分类准确率(表1中行对应输入信号的实际类别,列对应我们CNN分类算法得到)噪声分类准确率%准确率birdcrowedmachinerainlaughenginewindstreamapplausebird99.9960.0040000000crowed01000000000machine0099.976000.024000rain00010000000laugh000099.9960000.004engine1110.0460.00499.950000wind00000010000stream0000.00400.008099.9460.042applause0100.0040.01600099.980步骤4:利用5个卷积层、3个池化层、3个BN层以及3个全连接层构造一个深度卷积神经网络。该网络包括八个带权值的网络层,网络结构图如图4所示。前五层是卷积层,里面包括了三个池化层,剩下三层为全连接层,最后一个全连接层的输出被输送到softmax层,产生一个覆盖类标签的分布。以我们的输入数据维度的图像为例进行说明:第一层卷积层:输入为47×14的数据特征平面,用64个5×5的卷积核,以步长为1进行卷积,卷积后得到43×10×64的输出。经过激活函数后再用大小为2×2,步长为1的核池化,减小到42×9×64,然后进行归一化,作为第二层卷积层的输入。第二层卷积层:输入为第一层的输出,大小为42×9×64,利用128个大小为3×3的卷积核核,步长stride为1,对其进行卷积到40×6×128的输出,经过激活函数后再用大小为2×2,stride为1的核池化,减小到39×5×128,然后归一化,作为第三层卷积层的输入。第三次卷积层:输入为第二层的输出,大小为39×5×128,利用512个大小为3×3的核以stride为1,对其进行卷积,得到37×3×512的输出,经过激活函数后作为第四层卷积层的输入。该层没有任何介于中间的池化层与归一化层。第四层卷积层:输入为第三层的输出,大小为37×3×512,利用512个大小为3×3的核,以stride为1对其进行卷积,得到35×1×512的输出,经过激活函数后作为第五层卷积层的输入,没有任何介于中间的池化层与归一化层。第五层卷积层:输入为第四层的输出,大小为35×1×512,利用256个大小为2×2的核,以padding为1,stride为1,对其进行卷积,得到36×2×256的输出,经过激活函数后再用大小为2×2的核进行池化,减小到34×1×256,然后作为全连接层的输入。第一层全连接层:输入为第五层卷积层的输出,大小为34×1×256,全连接运算后得到500个神经元,经过激活函数后大小仍为500。第二层全连接层:输入为第一层全连接层的输出,即500个神经元,全连接运算后得到500个神经元,经过激活函数大小仍为500。第三层全连接层:输入为第二层全连接层的输出,即35个神经元,该层没有激活函数,全连接运算后输出为融合标签label的softmax函数误差。本层节点数目为类别数。步骤5:将步骤2中计算的特征、信噪比和步骤三计算的噪声信号种类C组成一个658维度的矢量,输入到步骤4中建立的卷积神经网络中。由于该网络已经通过线上大量的学习训练,经过输入可最终输出平稳快速递归最小二乘法在该噪声环境下处理的最佳遗忘因子。通过组合成658维度特征,形成充分的特征区别。选取的特征在不同的噪声环境下具有不同的代表数值,能很好接近进行各种环境的区分。学习率设置为0.01,在经过500次训练后,网络达到了超过99.40%的准确率。在线下预测时,系统自动匹配到噪声环境对应的遗忘因子。步骤6:将步骤5自动匹配的最佳遗忘因子输入到平稳快速递归最小二乘法中,完成语音增强处理从而得到干净音频。在SFTRLS-CNN模型的最后,将上一步骤中的遗忘因子输送到平稳快速递归最小二乘算法里面,经过该算法的噪声过滤,输出增强后的纯净音频,最终在计算的PESQ值一般都在4.0以上,相比传统的平稳快速递归最小二乘算法,PESQ值均有提高,说明取得了良好的效果,具体结果如图6所示。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1