一种基于噪声分类优化IMCRA算法的语音增强方法与流程
本发明涉及一种语音增强方法,特别是一种基于噪声分类优化imcra算法的语音增强方法,属于语音处理领域。
背景技术:
在语音信号的处理过程中,噪声污染的问题不可避免。因此,如何有效地抑制噪声,提高语音信号的质量和可懂度成为众多学者研究的热点。目前,多种语音增强算法已被提出,主要包括基于信号处理的方法、基于模型训练的方法和基于统计模型的方法。
在基于信号处理的方法中,谱减法和维纳滤波法是两种最具有代表性的技术。在正确估计背景噪声的情况下,该类方法能取得较好的分离性能。然而,在低信噪比的条件下,背景噪声很难准确估计,该类方法性能则大大下降。在基于模型训练的方法中,深度学习就近年来兴起的一种,该类方法在低信噪比、复杂背景噪声条件下能够表现较好的效果,但是模型训练复杂,在实际中难以实用。基于统计模型的方法,在低信噪比的条件下也可以取得比较好的分离性能,同时其相对于模型训练的方法具有较低复杂度。改进的最小控制递归平均(improvedminimacontrolledrecursiveaveraging,imcra)方法是基于统计模型的方法中性能较好的一个。然而在未知的、不匹配噪声条件下,传统的imcra算法对噪声功率谱的估计效果恶化严重,并且对提高带噪信号的可懂度增益效果较小。
技术实现要素:
本发明所要解决的技术问题是提供一种基于噪声分类优化imcra算法的语音增强方法,来获得质量和可懂度都有所提升的语音。
为解决上述技术问题,本发明所采用的技术方案是:
一种基于噪声分类优化imcra算法的语音增强方法,其特征在于包含以下步骤:
步骤一:针对不同噪声类型寻找最优的αs、αd和α参数组合,其中αs和αd是imcra算法在估计噪声功率谱时的两个平滑参数,α是先验信噪比估计的权重参数;
步骤二:利用卷积神经网络cnn对输入信号的噪声类型进行分类;
步骤三:按照不同的噪声类型,根据步骤一的寻优结果选择不同的参数组:αs、αd和α;
步骤四:根据步骤三选定的参数组,利用imcra方法对测试集信号进行语音增强,得到最终增强的语音。
进一步地,所述步骤一具体为
1.1对输入的纯净语音进行去直流处理和幅值归一化处理;
1.2对纯净语音信号叠加不同种类的噪声,得到带噪语音信号;
1.3对于每一类噪声的带噪语音信号,进行预处理包括分帧和加窗处理;
1.4对于每一类噪声的带噪语音信号,利用固定变量法对参数α进行寻优;
1.5对于每一类噪声的带噪语音信号,利用固定变量法分别对参数αs和αd进行寻优。
进一步地,所述1.4具体为
1.4.1固定参数αs和αd,选定参数α的初始值;
1.4.2将选定的参数αs、αd和α输入到imcra方法,并利用imcra方法对输入的带噪语音信号进行语音增强,得到增强的语音;
1.4.3计算增强语音的短时目标可懂度stoi、语音质量感知评估pesq以及分段信噪比segsnr;
1.4.4改变参数α,重复步骤1.4.2-1.4.3,直到最终得到的stoi、pesq和segsnr值都最大,则参数α寻优完毕。
进一步地,所述步骤二具体为
2.1将带噪语音分为训练集和测试集;
2.2利用训练集信号对卷积神经网路进行训练;
2.3利用训练好的卷积神经网络对测试集信号的噪声类型进行分类。
进一步地,所述2.2具体为
2.2.1对训练集信号进行预处理,包括分帧和加窗;
2.2.2对分帧加窗后的信号进行傅里叶变换:
x(i,k)=fft[xi(n)]
其中,x(i,k)是第i帧信号在第k条谱线处的功率谱,fft表示傅里叶变换,xi(n)表示第i帧信号,n表示序列索引号;
2.2.3利用所述的每一帧噪声信号功率谱分别计算每一帧噪声信号的梅尔频率倒谱系数mfcc及梅尔频率倒谱系数的一阶差分δmfcc;
2.2.4将信号的时间信息作为第一维特征,将提取的mfcc和δmfcc特征联合作为第二维特征,则最终形成二维特征作为卷积神经网络的输入;
2.2.5对卷积神经网络的权值进行初始化;
2.2.6将输入的二维特征经输入层依次进入隐藏层、全连接层和输出层得到输出值;
2.2.7求出卷积神经网络的输出值与设定的目标值之间的误差;
2.2.8根据误差分别求各卷积层、各池化层和全连接层的误差,根据求得的该误差进行权值更新;
2.2.9当达到预设的最大训练次数或达到期望的分类准确率时,结束训练;否则返回2.2.6继续训练;
2.2.10网络输出为判断的噪声类型。
进一步地,所述2.2.3具体为
2.2.3.1对每一帧噪声信号的功率谱计算谱线能量:
e(i,k)=[x(i,k)]2
其中,e(i,k)表示第i帧数据在第k条谱线的谱线能量;x(i,k)是第i帧信号在第k条谱线处的功率谱;
2.2.3.2计算每一帧噪声信号通过梅尔滤波器的能量
其中,s(i,m)表示第i帧信号通过第m个梅尔滤波器的能量,m是梅尔滤波器的总数,hm(k)表示第m个梅尔滤波器在第k条谱线处的频域响应,n是谱线的总数;
2.2.3.3计算梅尔频率倒谱系数:
其中,mfcc(i,n)为第i帧噪声信号在第k条谱线处的梅尔频率倒谱系数;
2.2.3.4计算梅尔频率倒谱系数的一阶差分δmfcc
δmfcc(i,k)=2mfcc(i-2,k)-mfcc(i-1,k)+mfcc(i+1,k)+2mfcc(i+2,k)
其中,δmfcc(i,k)表示第i帧信号在第k条谱线处的梅尔频率倒谱系数的一阶差分,mfcc(i-2,k)、mfcc(i-1,k)、mfcc(i+1,k)和mfcc(i+2,k)分别表示第i-2帧信号、i-1帧信号、i+1帧信号和i+2帧信号在第k条谱线处的梅尔频率倒谱系数。
进一步地,所述2.3具体为
2.3.1对测试集信号进行分帧和加窗处理;
2.3.2对分帧和加窗处理后的信号进行语音端点检测,判断出每帧信号为噪声信号还是语音信号;
2.3.3如果连续12帧信号都判断为噪声帧,则对该12帧信号,对分帧和加窗处理后的信号提取二维特征,输入到训练好的卷积神经网络中;
2.3.4利用训练好的卷积神经网络判断输入信号的噪声类别,并输出噪声类型。
本发明与现有技术相比,具有以下优点和效果:本发明针对传统imcra方法在面对不匹配噪声时会出现性能下降的问题,提出首先利用卷积神经网络对噪声类型进行分类,然后根据不同的噪声类型选取不同的参数组,根据选定的参数组利用imcra方法对带噪语音信号进行语音增强的方法。该方法与传统的imcra方法相比,具有更好的语音增强效果,被增强的语音无论在质量还是可懂度方面均有所提升。
附图说明
图1是本发明实施例的最优参数组合表。
图2是本发明实施例的噪声分类准确率表格。
图3是本发明实施例的计算增强信号的stoi、pesq和segsnr值的结果图。
具体实施方式
为了详细阐述本发明为达到预定技术目的而所采取的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清晰、完整地描述,显然,所描述的实施例仅仅是本发明的部分实施例,而不是全部的实施例,并且,在不付出创造性劳动的前提下,本发明的实施例中的技术手段或技术特征可以替换,下面将结合实施例来详细说明本发明。
本发明的一种基于噪声分类优化imcra算法的语音增强方法,imcra算法在估计噪声功率谱时通过两个平滑参数αs和αd以及先验信噪比估计中的权重参数α来平衡各帧信号之间的功率谱、噪声谱以及信噪比之间的相关性。而不同类型噪声的统计特性和平稳性是不完全一致的,各帧信号之间的功率谱、噪声谱以及信噪比之间的相关性也不同,因此需首先对噪声类型进行分类,然后针对不同类型的噪声选取不同的调节参数,以提升imcra算法的性能来获得质量和可懂度都有所提升的语音。
本发明的一种基于噪声分类优化imcra算法的语音增强方法具体包含以下步骤:
步骤一:针对不同噪声类型寻找最优的αs、αd和α参数组合,其中αs和αd是imcra算法在估计噪声功率谱时的两个平滑参数,α是先验信噪比估计的权重参数;
1.1对输入的纯净语音进行去直流处理和幅值归一化处理;
1.2对纯净语音信号叠加不同种类的噪声,得到带噪语音信号;
1.3对于每一类噪声的带噪语音信号,进行预处理包括分帧和加窗处理;
1.4对于每一类噪声的带噪语音信号,利用固定变量法对参数α进行寻优;
1.4.1固定参数αs和αd,选定参数α的初始值;
1.4.2将选定的参数αs、αd和α输入到imcra方法,并利用imcra方法对输入的带噪语音信号进行语音增强,得到增强的语音;
imcra方法具体过程为
假设带噪语音信号由纯净语音信号和噪声信号叠加而成:
y(n)=s(n)+d(n)
式中y(n),s(n)和d(n)分别为时域的带噪语音、纯净语音和噪声。对信号分帧加窗后进行短时傅里叶变换(short-timefouriertransform,stft),则在频域可以得到:
y(k,l)=s(k,l)+d(k,l)
式中k表示频率索引,l表示帧索引。
假设语音存在概率为p(k,l),语音不存在概率为q(k,l),所以根据imcra算法,估计噪声的功率谱的递归均值为:
β的值由先验的语音不存在概率决定。定义先验信噪比和后验信噪分别为:
其中λs(k,l)和λd(k,l)分别为纯净语音和噪声信号的功率谱
在imcra算法中,语音存在概率的估计是基于高斯统计模型的,计算公式如下:
其中v(k,l)=γξ/(1+ξ),q(k,l)定义为语音不存在概率。在imcra算法中,为了计算语音不存在概率,需要进行两次功率谱平滑和最小值搜索。
第一次迭代中的噪声功率谱的频率平滑结果为:
其中b是一个归一化的窗函数,窗长2ω+1,
时域维度的平滑结果为:
s(k,l)=αss(k,l-1)+(1-αs)sf(k,l)
在这里需要用到一个平滑参数αs(0<αs<1)。第二次功率谱平滑的计算与第一次类似,并且使用相同的平滑参数。
为了计算语音不存在概率,还需要计算先验信噪比,根据imcra算法,先验信噪比的估计方法如下:
式中α为权重参数,用来控制降噪和语音失真之间的平衡。
1.4.3计算增强语音的短时目标可懂度stoi(short-timeobjectiveintelligibility)、语音质量感知评估pesq(perceptualevaluationofspeechquality)以及分段信噪比segsnr(segmentalsignal-noiseratio);
1.4.4改变参数α,重复步骤1.4.2-1.4.3,直到最终得到的stoi、pesq和segsnr值都最大,则参数α寻优完毕。
1.5对于每一类噪声的带噪语音信号,利用固定变量法分别对参数αs和αd进行寻优,具体的寻优过程与1.4的参数α寻优相同。
步骤二:利用卷积神经网络cnn对输入信号的噪声类型进行分类;
2.1将带噪语音分为训练集和测试集;
2.2利用训练集信号对卷积神经网路进行训练;
2.2.1对训练集信号进行预处理,包括分帧和加窗;
2.2.2对分帧加窗后的信号进行傅里叶变换:
x(i,k)=fft[xi(n)]
其中,x(i,k)是第i帧信号在第k条谱线处的功率谱,fft表示傅里叶变换,xi(n)表示第i帧信号,n表示序列索引号;
2.2.3利用所述的每一帧噪声信号功率谱分别计算每一帧噪声信号的梅尔频率倒谱系数mfcc及梅尔频率倒谱系数的一阶差分δmfcc;
2.2.3.1对每一帧噪声信号的功率谱计算谱线能量:
e(i,k)=[x(i,k)]2
其中,e(i,k)表示第i帧数据在第k条谱线的谱线能量;x(i,k)是第i帧信号在第k条谱线处的功率谱;
2.2.3.2计算每一帧噪声信号通过梅尔滤波器的能量
其中,s(i,m)表示第i帧信号通过第m个梅尔滤波器的能量,m是梅尔滤波器的总数,hm(k)表示第m个梅尔滤波器在第k条谱线处的频域响应,n是谱线的总数;
2.2.3.3计算梅尔频率倒谱系数:
其中,mfcc(i,n)为第i帧噪声信号在第k条谱线处的梅尔频率倒谱系数;
2.2.3.4计算梅尔频率倒谱系数的一阶差分δmfcc
δmfcc(i,k)=2mfcc(i-2,k)-mfcc(i-1,k)+mfcc(i+1,k)+2mfcc(i+2,k)
其中,δmfcc(i,k)表示第i帧信号在第k条谱线处的梅尔频率倒谱系数的一阶差分,mfcc(i-2,k)、mfcc(i-1,k)、mfcc(i+1,k)和mfcc(i+2,k)分别表示第i-2帧信号、i-1帧信号、i+1帧信号和i+2帧信号在第k条谱线处的梅尔频率倒谱系数。
2.2.4将信号的时间信息作为第一维特征,将提取的mfcc和δmfcc特征联合作为第二维特征,则最终形成二维特征作为卷积神经网络的输入;
2.2.5对卷积神经网络的权值进行初始化;
2.2.6将输入的二维特征经输入层依次进入隐藏层、全连接层和输出层得到输出值;
2.2.7求出卷积神经网络的输出值与设定的目标值之间的误差;
2.2.8根据2.2.7所得的误差分别求各卷积层、各池化层和全连接层的误差,根据求得的该误差进行权值更新;
2.2.9当达到预设的最大训练次数或达到期望的分类准确率时,结束训练;否则返回2.2.6继续训练;
2.2.10网络输出为判断的噪声类型。
2.3利用训练好的卷积神经网络对测试集信号的噪声类型进行分类。
2.3.1对测试集信号进行分帧和加窗处理;
2.3.2对分帧和加窗处理后的信号进行语音端点检测,判断出每帧信号为噪声信号还是语音信号;
2.3.3如果连续12帧信号都判断为噪声帧,则对该12帧信号,按照2.2.3和2.2.4,对分帧和加窗处理后的信号提取二维特征,输入到训练好的卷积神经网络中;
2.3.4利用训练好的卷积神经网络判断输入信号的噪声类别,并输出噪声类型。
步骤三:按照不同的噪声类型,根据步骤一的寻优结果选择不同的参数组:αs、αd和α;
步骤四:根据步骤三选定的参数组,利用imcra方法对测试集信号进行语音增强,得到最终增强的语音。
下面通过具体的实验对本申请进一步进行说明。
实验中的纯净语音选自timit标准语音库,从男性、女性和多说话人中随机选取30条语句作为测试语音。从noisex-92标准噪声库中选取了12种噪声:pink噪声、factory1噪声、f16(飞机)噪声、deestroyerengine噪声、babble噪声、white噪声、hfchannel噪声、factory2噪声、volvo(汽车)噪声、m109噪声、leopard噪声、droyerops噪声。将每一类噪声和每一段语音按照-10db,-5db,-2db,0db,2db,5db进行混合。
具体实施步骤如下:
1、读取纯净语音,并以16khz的采样率对纯净语音进行重采样,并进行去直流和归一化处理;
2、读取噪声,并以16khz的采样率对噪声进行重采样,将噪声和纯净语音分别以-10db,-5db,-2db,0db,2db,5db的信噪比进行混合得到带噪信号;
3、对带噪信号进行分帧和加窗处理,其中帧长为320,帧移为160,窗函数为汉明窗;
4、对每一类噪声的带噪信号,采用固定变量法寻找最优的αs、αd和α参数组合,最终得到每一类噪声对应的最优参数组如图1所示。
5、将步骤3得到的信号的每一帧样本与其前6帧及后5帧数据共12帧数据作为一组样本,从中随机抽取50000个样本数据作为训练集,剩余数据中随机抽取10000个样本数据作为测试集;
6、提取训练集信号的时间信息和24维mfcc和δmfcc特征作为卷积神经网络的输入,训练卷积神经网络;
7、利用训练好的卷积神经网络对测试集信号的噪声类型进行分类,具体的分类准确率如图2表格所示;
8、根据7得到的噪声类型,从表1中选取对应的参数组,输入到imcra算法中;
9、利用imcra算法对带噪信号进行语音增强,得到最终的增强信号;
10、计算增强信号的stoi、pesq和segsnr值,结果如图3的表所示。
由表2可以看出,在不同噪声环境下,本发明提出的语音增强方法(op-imcra)的客观评价指标均优于传统的imcra算法,其中pesq指标平均提高6%,stoi平均提高3.4%,segsnr平均提高23%。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质,在本发明的精神和原则之内,对以上实施例所作的任何简单的修改、等同替换与改进等,均仍属于本发明技术方案的保护范围之内。
起点商标作为专业知识产权交易平台,可以帮助大家解决很多问题,如果大家想要了解更多知产交易信息请点击 【在线咨询】或添加微信 【19522093243】与客服一对一沟通,为大家解决相关问题。
此文章来源于网络,如有侵权,请联系删除