基于Kalman的先验信噪比估计方法、装置及噪声抑制方法
技术领域
本发明涉及通信技术领域,特别涉及一种基于Kalman滤波器的先验信噪比估计方法、装置及噪声抑制方法。
背景技术
语音信号是人类传播信息和感情交流的重要媒体,但在语音通信过程中不可避免地受到来自周围环境、乃至其它讲话者的干扰,这些干扰最终使接收到的语音信号并非纯净的原始语音信号,而是受噪声污染的带噪语音信号。在语音通信过程中,噪声是使通信变的困难的主要原因。
噪声抑制(NS)技术可以帮助减小噪声的不利影响。它的目标是增加信噪比(SNR)并因此增加语音的可懂性,降低听者的努力度,改善声学环境的感知品质。
在现有的噪声抑制技术实现方案中,主要有多麦克(Multi-Mic)噪声抑制算法和单麦克(Single-Mic)噪声抑制算法。多麦克噪声抑制技术通常采用一对麦克作为硬件结构,噪声抑制算法是麦克阵列算法,这种算法可以显著改善语音的可懂性,提供通话的质量。但是,算法的效果与两麦克之间的距离及方向角有很大关系,而且算法在面对多种噪声源和回响层次时鲁棒性较差。相较多麦克噪声抑制技术,单麦克噪声抑制技术对硬件的限制小,并且噪声抑制算法能很好的适应多种噪声源和回响层次,所以在移动通信终端系统,比较理想的噪声抑制技术是单麦克噪声抑制技术。
请参考图1,其为现有的单麦克噪声抑制方法的流程示意图。如图1所示,对于接收到的带噪语音信号需要进行如下多步处理:
首先,对接收的带噪语音信号进行傅里叶变换,以得到频域信号;
然后,进行噪声估计;
接着,根据噪声估计得到的结果进行后验信噪比估计;
根据噪声估计、后验信噪比估计的结果以及前一帧的语音信号进行先验信噪比估计;
接着,获取衰减因子,通常采用MMSE/log-MMSE方法计算该衰减因子;
最后,综合上述处理结果,得到纯净语音信号,具体的,从带噪语音信号中去除噪声,并进行傅里叶逆变换,得到时域的纯净语音信号。
衰减因子G一般是先验信噪比ξ和后验信噪比γ的函数。其中先验信噪比ξ是控制衰减因子G大小的主要参数。后验信噪比γ仅在先验信噪比ξ小的时候起作用。
先验信噪比ξ和后验信噪比γ的定义如下:
ξm,k表示第m帧的第k个频点的先验信噪比,γm,k表示第m帧的第k个频点的后验信噪比,γS,m,k表示第m帧的第k个频点中的语音信号的方差,γN,m,k表示第m帧的第k个频点中的噪声信号的方差,Ym,k表示第m帧的第k个频点的带噪信号的频谱。
现有技术中,常采用如下两种方法进行先验信噪比ξ的估计。具体的,
1、最大似然(ML,Maximum Likelihood)估计(见式2):
其中,表示第m帧的第k个频点的先验信噪比估计,与未带有“^”的符号ξm,k相对应,其它符号亦如此。
采用该先验信噪比估计方法实现噪声抑制的优点在于:计算简单,是后验信噪比γ的线性函数,语音失真度最小。
缺点在于:在纯噪声的时候先验信噪比ξ跟着后验信噪比γ剧烈浮动,导致处理不佳,出现人为噪声Musical Tone。
2、采用Decision-Direct(DD)方法估计先验信噪比ξ(见式3):
式3中表示第m-1帧的第k个频点估计得到的语音信号的频谱。α不应取偏小值,否则退化为ML估计,典型的α取值为0.98。
采用该先验信噪比估计方法实现噪声抑制的优点在于:先验信噪比ξ主要依赖于前一帧的处理结果,因而在纯噪声帧的时候可以保持平稳,解决了MusicalTone问题。
缺点在于:与理论值至少1帧的延时;在语音结束阶段不能迅速减小,在语音起始阶段不能迅速增大(跟踪速度为0.02);在低信噪比的时候,噪声信号会和语音差不多大,跟踪速度过慢往往会导致这部分辅音信号被抑制。
发明内容
本发明的目的在于提供一种基于Kalman滤波器的先验信噪比估计方法、装置及噪声抑制方法,以解决现有的噪声抑制方案中将出现人为噪声Musical Tone或者跟踪速度过慢的问题。
为解决上述技术问题,本发明提供一种基于Kalman滤波器的先验信噪比估计方法,包括:
预测当前帧的先验信噪比;
获取当前帧的新息;
获取所述新息的加权因子;
根据预测的当前帧的先验信噪比、新息及加权因子估计当前帧的先验信噪比。
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,利用系统动态模型预测当前帧的先验信噪比,所述系统动态模型为:
ξm,k=rcξm-1,k+n2,k
其中,ξm,k表示第m帧的第k个频点的先验信噪比,rc表示前后帧语音信号的相关系数,n2,k为系统动态模型误差。
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,所述系统动态模型误差为白噪声类型。
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,所述预测的当前帧的先验信噪比为:
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,利用所述系统动态模型及观测模型获取当前帧的新息,所述观测模型为:
γm,k=ξm,k+1+n1,k
其中,γm,k表示第m帧的第k个频点的后验信噪比,n1,k为观测模型误差。
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,所述观测模型误差为白噪声类型。
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,所述新息εm,k为:
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,利用如下公式获取加权因子Km,k:
其中,μ和Δ为调整因子。
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,所述μ和Δ的取值分别为1和0。
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,利用如下公式估计当前帧的先验信噪比:
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,估计的当前帧的先验信噪比具有限制最小值。
可选的,在所述的基于Kalman滤波器的先验信噪比估计方法中,所述限制最小值取值为-12.5dB。
本发明还提供一种基于Kalman滤波器的先验信噪比估计装置,包括:
预测模块,用以预测当前帧的先验信噪比;
更新模块,用以获取当前帧的新息;
加权模块,用以获取所述新息的加权因子;
估计模块,用以根据预测的当前帧的先验信噪比、新息及加权因子估计当前帧的先验信噪比。
本发明还提供一种基于Kalman滤波器的噪声抑制方法,包括:
步骤1:对所述带噪语音信号进行傅里叶变换;
步骤2:进行噪声估计;
步骤3:进行后验信噪比估计;
步骤4:利用如上所述的方法进行先验信噪比估计;
步骤5:获取衰减因子;
步骤6:综合上述处理结果,得到纯净语音信号。
在本发明提供的基于Kalman滤波器的先验信噪比估计方法、装置及噪声抑制方法中,在纯噪声的时候可避免出现人为噪声Musical Tone;同时,又能保证跟踪速度并在低信噪比下保护弱小语音信号。
附图说明
图1是现有的单麦克噪声抑制方法的流程示意图;
图2是本发明实施例的基于Kalman滤波器的先验信噪比估计方法的流程示意图;
图3是本发明实施例的基于Kalman滤波器的先验信噪比估计装置的模块示意图;
图4a是0dB白噪声下ML估计方法估计先验信噪比的效果图;
图4b是0dB白噪声下DD估计方法估计先验信噪比的效果图;
图4c是0dB白噪声下本发明实施例的估计方法估计先验信噪比的效果图;
图5a是0dB带噪信号(白噪)和干净语音信号对比图;
图5b是0dB带噪信号(白噪)使用DD估计方法和本发明估计方法的对比图;
图5c是0dB带噪信号(白噪)使用ML估计方法和本发明估计方法的对比图;
图6a是5dB带噪信号(白噪)使用DD估计方法和本发明估计方法的对比图;
图6b是5dB带噪信号(白噪)使用ML估计方法和本发明估计方法的对比图。
具体实施方式
以下结合附图和具体实施例对本发明提供的基于Kalman滤波器的先验信噪比估计方法、装置及噪声抑制方法作进一步详细说明。根据下面说明和权利要求书,本发明的优点和特征将更清楚。需说明的是,附图均采用非常简化的形式,仅用以方便、明晰地辅助说明本发明实施例的目的。
请参考图2,其为本发明实施例的基于Kalman滤波器的先验信噪比估计方法的流程示意图。如图2所示,所述先验信噪比估计方法包括:
S20:预测当前帧的先验信噪比;
S21:获取当前帧的新息;
S22:获取所述新息的加权因子;
S23:根据预测的当前帧的先验信噪比、新息及加权因子估计当前帧的先验信噪比。
具体的,基于Kalman滤波器的思想,在此,构建两个模型,分别为:
观测模型:γm,k=ξm,k+1+n1,k (4)
系统动态模型:ξm,k=rcξm-1,k+n2,k (5)
在此,观测模型是根据最大似然估计(ML)公式(2)所建立的,由于当前帧的先验信噪比是一个隐藏的数值,而当前所观测到的数值只有后验信噪比,在此基础上,也可以对观测模型进行一定的调整。
系统动态模型则是根据语音信号帧之间具有强相关性的特性建立,隐藏的先验信噪比前后帧之间具有强相关性,公式(3)之所以能够成功的消除掉MusicalTone,很大原因也是利用语音之间的强相关性,(公式(3)中的可以近似为前一帧的先验信噪比ξm-1,k的估计值)。
其中,n1,k和n2,k分别为观测模型和系统动态模型误差,在此,均假设为白噪声类型。系统动态模型采用1阶AR(Auto-Regressive,自回归)方式建模,rc表示前后帧语音信号的相关系数。鉴于相邻帧的先验信噪比ξ(语音信号)具有强相关性,一般可取rc=0.9。
基于Kalman滤波器算法,具体可以得到以下计算流程:
1、利用系统动态模型,根据前一帧的先验信噪比可得到如下估计的当前帧的先验信噪比
2、利用观测模型及系统动态模型,获取当前帧的信息εm,k:
3、利用估计的当前帧的先验信噪比计算加权因子Km,k。考虑到Kalman算法中的增益因子的计算复杂度较大,在本发明中采用一种简单的计算方法:
其中,μ和Δ为调整因子,在此取μ=1和Δ=0。
4、接着,根据上述得到的估计的当前帧的先验信噪比当前帧的信息εm,k;及加权因子Km,k,根据如下公式估计当前的先验信噪比
在本实施例中,为了保证估计的先验信噪比的可靠性,对先验信噪比限制最小值,具体的,
其中,最小值可取ξmin=-12.5dB。
通过本实施例的基于Kalman滤波器的先验信噪比估计方法,能够得到如下有益效果:
1、在无语音阶段,从而Km,k也很小,在噪声随机起伏的峰值(往往仅1~2帧,后验信噪比会略为增大一些,但不会像语音部分保持很大),能够保持平稳,因此不会出现人为噪声Musical Tone。
2、在语音起始阶段,逐渐增大,而后验信噪比会在语音部分保持很大,依据式8可知,Km,k也逐渐增大(和成正比),意味着跟踪速度是逐渐加快,跟踪速度明显优于DD方式。在语音结束阶段,后验信噪比急剧下降,由于还比较大,Km,k也较大,因此能够迅速跟踪上后验信噪比的下降,DD方式则需要至少延后1帧才能跟踪上。
3、在低信噪比时,弱小语音部分往往会被噪声淹没,弱小语音部分的后验信噪比会持续一段时间,但往往仅在3~4dB,DD方法基本上不会跟踪上,本文方法对这种情况下的跟踪速度明显优于DD方法。
相应的,本实施例还提供一种实现上述基于Kalman滤波器的先验信噪比估计方法的装置,请参考图3,其为本发明实施例的基于Kalman滤波器的先验信噪比估计装置的模块示意图。如图3所示,所述先验信噪比估计装置包括:
预测模块30,用以预测当前帧的先验信噪比;
更新模块31,用以获取当前帧的新息;
加权模块32,用以获取所述新息的加权因子;
估计模块33,用以根据预测的当前帧的先验信噪比、新息及加权因子估计当前帧的先验信噪比。
在本实施例中,所述预测模块30根据公式(6)预测当前帧的先验信噪比,然后将结果发送至更新模块31、加权模块32及估计模块33;
接着,所述更新模块31根据预测的当前帧的先验信噪比及公式(7),得到当前帧的信息,并将结果发送至估计模块33;
所述加权模块32根据预测的当前帧的先验信噪比及公式(8),得到加权因子,并将结果发送至估计模块33;
在此,所述更新模块31及加权模块32可同时运行,以节省装置运行的用时。
最后,所述估计模块33根据预测的当前帧的先验信噪比、新息、加权因子及公式(9),估计当前帧的先验信噪比。
相应的,本实施例还提供一种利用上述先验信噪比估计方法实现噪声抑制的方法,具体的,包括:
步骤1:对所述带噪语音信号进行傅里叶变换;
步骤2:进行噪声估计;
步骤3:进行后验信噪比估计;
步骤4:利用基于Kalman滤波器的先验信噪比估计方法进行先验信噪比估计;
步骤5:获取衰减因子;
步骤6:综合上述处理结果,得到纯净语音信号。
本实施例所提供的噪声抑制方法与背景技术所提供的噪声抑制的方法的差别在于,所使用的先验信噪比估计方法不同。
通过在本实施例提供的基于Kalman滤波器的先验信噪比估计方法、装置及噪声抑制方法中,在纯噪声的时候可避免出现人为噪声Musical Tone;同时,又能保证跟踪速度并在低信噪比下保护弱小语音信号。具体的,请参考图4a~4b,其中,图4a是0dB白噪声下ML估计方法估计先验信噪比的效果图;图4b是0dB白噪声下DD估计方法估计先验信噪比的效果图;图4c是0dB白噪声下本发明实施例的估计方法估计先验信噪比的效果图。图4a~4b的实现条件为:k=20,1frame=20ms,FFT Point=256,Hamming Window 50%重叠。
根据图4a~4b可知:
1、在纯噪声部分,ML算法估计得到的先验信噪比起伏非常大,会导致在一些峰值处的衰减因子G比较大,因而这些峰值会被保留下来,形成单音信号(Tone),最后主观感受为Musical Tone;DD算法基本不更新,一直保持为-12.5dB;本文方法也是基本不更新,即使更新最大也就在-10dB,因而也不会产生Musicaltone,主观试听亦未感受到。
2、在语音起始阶段,ML算法能够最快的跟踪上后验信噪比的变大,因而其对语音信号的失真程度最小;DD算法跟踪速度非常慢,甚至基本不更新;本文算法能够较快的跟踪上后验信噪比的变大,明显优于DD算法。
3、ML算法无延迟;DD算法存在至少1帧的延时;本文算法基本无延迟。
4、在弱小语音信号的保护上,ML算法能够最大程度上保留语音信号;DD方式保护力度非常小;本文算法能对弱小信号给予一定程度的保护。
综上,在本发明提供的基于Kalman滤波器的先验信噪比估计方法、装置及噪声抑制方法中,在纯噪声的时候可避免出现人为噪声Musical Tone;同时,又能保证跟踪速度并在低信噪比下保护弱小语音信号。
为了进一步说明本发明提供的基于Kalman滤波器的先验信噪比估计方法、装置及噪声抑制方法相较于现有的ML估计方法估计先验信噪比实现噪声抑制及DD估计方法估计先验信噪比实现噪声抑制的有益效果,在此,提供图5a~5c、6a~6b仿真图。为了减少因噪声估计错误带来的分析误差,本实例中噪声估计采用前10帧的平均值,之后不再更新,实际应用中可以采用最小统计量等优秀噪声跟踪算法。衰减因子G的计算方式采用Log-MMSE算法。
具体的,图5a是0dB带噪信号(白噪)和干净语音信号对比图,其中,图5a的上半部分为0dB带噪语音信号(白噪声),语音基本都淹没在噪声里面,尤其是弱小信号。图5a的下半部分为干净语音信号作为对比信号。
图5b是0dB带噪信号(白噪)使用DD估计方法和本发明估计方法的对比图,从图中可以看出,处理后的底噪(level)差不多,均比较平滑。基本上在每块语音信号的起始阶段,本文算法都要优于DD算法,在弱小语音信号的保护上,本文算法亦优于DD算法。
图5c是0dB带噪信号(白噪)使用ML估计方法和本发明估计方法的对比图,从图中可以看出,ML算法对语音的失真度最小,但是处理后的底噪中存在随机的单音信号:Musical Tone。
图6a是5dB带噪信号(白噪)使用DD估计方法和本发明估计方法的对比图;图6b是5dB带噪信号(白噪)使用ML估计方法和本发明估计方法的对比图。该两幅仿真图与0dB下的对比结果保持一致,在此不再赘述。
上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于权利要求书的保护范围。