一种基于自适应非线性谱减的抗噪方法和装置转让专利

申请号 : CN200510062908.6

文献号 : CN1841500B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 贾磊马龙

申请人 : 松下电器产业株式会社

摘要 :

本发明揭示一种基于自适应非线性谱减的语音识别抗噪方法,包括步骤:基于平均梅尔频带信噪比进行语音检测,当平均信噪比大于预定的信噪比阈值时则判断为语音信息,否则判断为噪音信息;根据在语音检测步骤中得到的噪音帧更新当前的噪音估计,进行第一次谱减计算,获得具有高信噪比的含噪语音;对具有高信噪比的含噪语音进行第二次谱减计算以进一步消除含噪语音信号中的噪声。

权利要求 :

1.一种基于自适应非线性谱减的语音识别抗噪方法,包括步骤:提取原始信号的功率谱,对原始信号的功率谱进行平滑处理;

基于平均梅尔频带信噪比进行语音检测,当平均信噪比大于预定的信噪比阈值时则判断为语音信息,否则判断为噪音信息;

根据在语音检测步骤中得到的噪音帧更新当前的噪音估计,进行第一次谱减计算,获得具有高信噪比的含噪语音;

对具有高信噪比的含噪语音进行第二次谱减计算以进一步消除含噪语音信号中的噪声;

基于信噪比对平滑后的原始信号的功率谱,第一次谱减计算结果和第二次谱减计算结果进行谱减增益控制。

2.根据权利要求1所述的方法,其中还包括计算一段语音信号的梅尔频带能量,通过比较求出这段语音帧的梅尔频带能量的最小值作为噪音估计的步骤。

3.根据权利要求1所述的方法,其中还包括对输入的新一帧语音信号的梅尔频带能量,在每一个梅尔频带上比较当前的和历史的梅尔频带能量,求取各梅尔频带的最小值作为噪音估计,用来更新历史信息的步骤。

4.根据权利要求1所述的方法,其中在进行第一次谱减计算前还包括对被判断为噪声信息的帧和原始信号的功率谱进行第一次噪声估计的步骤。

5.根据权利要求4所述的方法,其中进一步包括如果语音检测步骤判断当前语音信号帧为语音信号,则不对噪声估计进行任何更新,继续沿用上一次得到的噪声估计值的步骤。

6.根据权利要求1所述的方法,其中进行第二次谱减计算前还包括基于概率进行第二次噪声估计的步骤。

7.根据权利要求6所述的方法,其中所述第二次噪声估计采用非线性谱减的噪声去除方法。

8.根据权利要求7所述的方法,进一步包括在第二次谱减计算中把非线性函数最敏感的区域设在信号和语音发生变化的临界点,利用非线性权重函数对噪声进行抑制。

9.根据权利要求1所述的方法,其中进一步包括在语音检测步骤前执行通过保留一定长度的历史信息的最小能量来进行保守的噪音估计的步骤,以避免将语音帧判断成为噪音帧。

10.根据权利要求1所述的方法,其中预定的信噪比阈值是5至30之间的一个常数。

11.一种基于自适应非线性谱减的语音识别抗噪方法,包括步骤:基于历史信息进行保守的噪音估计;

根据梅尔子带的平均信噪比的大小进行语音检测;

根据梅尔子带的信噪比大小进行自适应噪声更新;

根据语音检测结果估计噪音并进行第一次谱减计算;

根据第一次谱减计算的结果进行第二次谱减计算;和

根据信噪比进行谱减增益控制以消除语音中的噪音。

12.一种基于自适应非线性谱减的语音识别抗噪装置,包括:功率谱提取装置,用于从输入的含噪语音中提取功率谱;

梅尔频带能量计算装置,用于计算从原始语音信号中提取的功率谱的梅尔频带能量;

语音检测装置,用于基于梅尔子带的平均信噪比的大小判断的语音进行语音检测,当平均信噪比大于预定的阈值时则判断为语音信息,否则判断为噪音信息;

第一谱减计算装置,用于对判断为噪音的信号帧进行更新噪音的估计,对所有语音信号的语音帧和噪音帧都利用当前的噪音估计进行谱减操作,以得到高信噪比的含噪语音;

第二谱减计算装置,用于对高信噪比的含噪语音的功率谱进行第二次谱减计算;

谱减增益控制装置,用于根据梅尔频带信噪比估计指数增益控制系数并进行谱减增益控制。

13.根据权利要求12所述的语音识别抗噪装置,其中还包括噪声跟踪装置,用于根据计算的梅尔频带能量,利用保留一定长度的历史信息的最小能量来进行保守的噪音估计。

14.根据权利要求12所述的语音识别抗噪装置,其中还包括梅尔频标倒谱系数特征提取装置,用于从去噪的语音中提取梅尔频标倒谱系数特征,输出具有抗噪特性的梅尔频标倒谱系数特征。

说明书 :

技术领域

本发明涉及一种基于自适应非线性谱减的语音识别方法及装置,特别是涉及适用于计算量小的小型嵌入式移动设备的语音识别方法和装置,能够提高语音识别系统在噪声环境下的识别率。

背景技术

近年来,语音识别技术的发展已经逐渐地走向成熟,开始向实际的产品应用发展。基于语音识别技术的产品应用正在不断地增多,使用语音识别技术进行声音遥控的移动电话、汽车导航以及智能家具等正在不断地涌现。虽然在实验室环境下的这些语音技术的应用都能够取得很好的效果,但是在现实的生活中噪音对这些语音识别系统的识别率产生巨大的影响。轻微的噪音就可能造成识别率下降30%左右。如何提高语音识别系统在噪音环境下的识别率已经成为语音识别领域研究的一个不可回避的研究课题。
声学特征的提取与选择是语音识别的一个重要环节。声学特征的提取既是一个信息大幅度压缩的过程,也是一个信号解卷过程,目的是使模式划分器能更好地划分。
由于语音信号的时变特性,特征提取必须在一小段语音信号上进行,也即进行短时分析。
语音特征参数的提取,是模式识别成败的关键。在汉语语音识别系统中,主要采用以下三种特征提取方法:
1.基于LPC(线性预测系数)的倒谱参数(LPCC)分析法。该方法的典型代表是以基于Durbin或Levinson迭代算法求解“维纳-霍夫方程”获得LPC预测系数为基础进而得到的LPC的倒谱参数(LPCC)。
2.基于梅尔(Mel)系数的梅尔频标倒谱系数(MFCC)分析法。该方法以基于快速傅立叶变换(FFT)的频谱余弦变换为基础,将时域信号转化成频域后对其对数能量谱用依照梅尔刻度分布的三角滤波器组进行卷积,最后对各个滤波器的输出构成的向量进行离散余弦变换(DCT),取前N个系数。根据梅尔曲线将语音信号频谱分为若干个频带,每个频带的能量经FFT变换对应一组梅尔倒谱(MFCC)参数。
3.基于现代处理技术的小波变换系数分析法。该方法将语音信号与一个在时域和频域均具有良好局部化性质的小波函数族进行积分(小波变换),从而把信号分解成一组位于不同频率和时段内的分量,即选择小波函数为某类平滑函数的一阶导数,则经小波变换后的局部最大值反映信号的尖锐变化,而局部最小值则反映信号的缓慢变化,从而获得反映基音周期的小波语音特征参数。
在以上语音特征参数的提取方法中,MFCC方法比LPCC方法的识别效果稍好一些,而且MFCC符合人们的听觉特性,在有信道噪声和频谱失真的情况下具有较好的稳健性。
在详细的介绍本发明的具体内容之前,首先介绍一下最为普遍采用的语音识别系统的特征提取方法。
假设一段语音信号的时域信号是x(n)(1<n<N),其中N是自然数,这段语音信号的傅立叶变换为这里(1<k<N)。
定义梅尔频率与最初的数字频率的关系MEL=2595log(1+f/700),这里f表示数字角频率。在梅尔频率上每隔100梅尔均匀施加如下的公式(1)表示的三角滤波器:
H m [ k ] = 0 k < f [ m - 1 ] 2 ( k - f [ m - 1 ] ) ( f [ m + 1 ] - f [ m - 1 ] ) ( f [ m ] - f [ m - 1 ] ) f [ m - 1 ] k f [ m ] 2 ( f [ m + 1 ] - k ) ( f [ m + 1 ] - f [ m - 1 ] ) ( f [ m + 1 ] - f [ m ] ) f [ m ] k f [ m + 1 ] 0 k > f [ m + 1 ] - - - ( 1 )
在上面的公式(1)中,Hm[k]表示频带k的频率响应函数,f(m)是每隔100梅尔的梅尔频率所对应的原始数字频率。上述三角滤波器的形状在原始的频率上的形状和分布如图1所示。如图1所示,每个三角滤波器之间的频率范围被称为一个梅尔频带,例如f(0)和f(1)之间的频率范围的频率带可以被称为一个梅尔频带,在此称之为MFB。计算每个梅尔频带的能量(称为MFB能量)之和,由下面的公式(2)表示。
S ( m ) = ln { Σ k = 1 N | X ( k ) | 2 H m ( k ) } - - - ( 2 )
因此,梅尔倒谱(MFCC)的计算公式可以由公式(3)表示。
C ( n ) = Σ m = 0 M - 1 S ( m ) cos ( πn ( m + 1 / 2 ) / M ) - - - ( 3 )
对于大多数语音识别系统而言,由于语音识别系统所处的环境的噪音所造成的影响是主要的。这种环境噪音的影响是可以看作是叠加在信号的功率谱上的,这种噪音通常被称为加性噪音。这种噪音的影响表现在公式(2)中就是在语音的功率谱上叠加上噪音的功率谱,则由噪音情况下的每个梅尔频带的能量计算公式就由公式(2)变为公式(4)。
S ( m ) = ln { Σ k = 1 N | X ( k ) + N ( k ) | 2 H m ( k ) } - - - ( 4 )
其中噪声的功率谱用N(k)表示。
从公式(4)中可以看出,如果能够在进行计算S(m)之前从含噪语音的功率谱X(k)+N(k)中把噪音的影响N(k)去除,那么梅尔倒谱(MFCC)特征提取的结果还是能够和没有噪音影响之前的纯净语音的特征提取结果是一样的。这样就能够保证语音识别系统的识别率不受噪音的影响。
因此,需要一种从含噪语音中去除掉噪音的影响,从而获得相对纯净的语音的方法和装置。

发明内容

本发明的目的是提供一种基于自适应非线性谱减的语音识别抗噪方法和装置,以提高语音识别系统在噪声环境下的识别率。
为了实现本发明的目的,根据本发明的一个方面,提供一种基于自适应非线性谱减的语音识别抗噪方法,包括步骤:提取原始信号的功率谱,对原始信号的功率谱进行平滑处理;基于平均梅尔频带信噪比进行语音检测,当平均信噪比大于预定的信噪比阈值时则判断为语音信息,否则判断为噪音信息;根据在语音检测步骤中得到的噪音帧更新当前的噪音估计,进行第一次谱减计算,获得具有高信噪比的含噪语音;对具有高信噪比的含噪语音进行第二次谱减计算以进一步消除含噪语音信号中的噪声;基于信噪比对平滑后的原始信号的功率谱,第一次谱减计算结果和第二次谱减计算结果进行谱减增益控制。
根据本发明的另一个方面,提供一种基于自适应非线性谱减的语音识别抗噪方法,包括步骤:基于历史信息进行保守的噪音估计;根据梅尔子带的平均信噪比的大小进行语音检测;根据梅尔子带的信噪比大小进行自适应噪声更新;根据语音检测结果估计噪音并进行第一次谱减计算;根据第一次谱减计算的结果进行第二次谱减计算;和根据信噪比进行谱减增益控制以消除语音中的噪音。
根据本发明的再一个方面,提供一种基于自适应非线性谱减的语音识别抗噪装置,包括:功率谱提取装置,用于从输入的含噪语音中提取功率谱;梅尔频带能量计算装置,用于计算从原始语音信号中提取的功率谱的梅尔频带能量;语音检测装置,用于基于梅尔子带的平均信噪比的大小判断的语音进行语音检测,当平均信噪比大于预定的阈值时则判断为语音信息,否则判断为噪音信息;第一谱减计算装置,用于对判断为噪音的信号帧进行更新噪音的估计,对所有语音信号的语音帧和噪音帧都利用当前的噪音估计进行谱减操作,以得到高信噪比的含噪语音;第二谱减计算装置,用于对高信噪比的含噪语音的功率谱进行第二次谱减计算;谱减增益控制装置,用于根据梅尔频带信噪比估计指数增益控制系数并进行谱减增益控制。
本发明提出了一种基于自适应非线性谱减的语音识别抗噪算法。这种抗噪算法的主要特点在于:
1).基于历史信息的保守的噪音估计方法。
2).采用基于梅尔子带(MFB)的平均信噪比大小的语音检测方法。
3).采用基于梅尔子带(MFB)信噪比大小的自适应噪声更新算法。
4).采用基于非线性谱减的噪音消除的算法。本发明的自适应非线性谱减的非线性内容分为两层,第一层非线性的概念体现在谱减是分两次进行的。第一次谱减的噪音估计是基于2)中的语音检测的结果的。通过噪音检测估计出纯粹是噪音的语音帧,根据这些噪音帧更新当前的噪音估计。然后进行第一次谱减。第一次谱减的输出结果被送到第二次的谱减模块中。由于第一次谱减已经能够很大程度上的压低噪声的幅度,因此第二次谱减可以看作是一种信噪比比较高的含噪语音的去噪问题。在第二次谱减的模块中,采用基于非线性谱减的噪声去除方法。由于第二次谱减的时候可以认为信号的信噪比已经比较高了,因此很容易把非线性函数最敏感的区域设在信号和语音发生变化的临界点。这样就能够充分发挥非线性谱减的非线性权重函数对噪声的抑制作用,达到准确抑制噪声的目的。
5).依赖于信噪比的谱减增益控制。
这里特别需要说明的是本发明中所阐述的各级算法都是在原始语音的频率谱上进行的,相比于一些基于模型补偿和时域滤波的抗噪算法而言,计算量非常小,比较适合小型嵌入式移动设备使用。

附图说明

通过下面结合附图说明本发明的优选实施例,将使本发明的上述及其它目的、特征和优点更加清楚,其中:
图1是表示梅尔倒谱的三角滤波器的示意图;
图2是根据本发明实施例的语音识别抗噪装置的方框图;
图3是根据本发明实施例的语音识别抗噪的处理过程的流程图;
图4是基于历史信息进行保守的噪声估计的处理方法的流程图;
图5是基于梅尔频带平均噪声信噪比的语音检测流程图;
图6是进行第一次滤波的噪声更新过程的流程图;
图7是基于概率的第二次噪声更新过程的流程图;和
图8是进行增益控制的非线性谱减算法的流程图。

具体实施方式

下面参照附图对本发明的实施例进行详细的说明,在描述过程中省略了对于本发明来说是不必要的细节和功能,以防止对本发明的理解造成混淆。
本发明提出一种基于自适应非线性谱减的消除噪声的方法和装置。
根据本发明,采用考虑历史信息的最小能量噪音追踪办法确定可能的背景噪音范围。具体地说,在一些特定的应用环境下,噪音是相对比较平稳的。如何准确地估计背景噪音是进行语音检测前提。通常的噪声估计方法都是利用语音间隙的静音估计噪音,但是在信噪比比较低的环境下,很容易把能量比较低的语音估计成噪音。这将在以后的谱减算法中会把不是噪音的语音消除掉,影响抗噪算法的效果。
本发明采用一种基于历史信息的保守的噪音估计方式。这种噪音估计的目的并不是准确地估计每一帧含噪语音中的噪音含量,而是准确地估计出的确是噪音的噪音帧的噪音大小。在设置检测门限的时候要保证下面的要求:允许将噪音帧判定为语音帧,但是绝对不允许将语音帧判断成为噪音帧。这样做的主要目的是为避免噪音的错误估计而造成的谱减对语音信息的削弱作用。但是这样做势必带来的缺点是噪音在语音中的残留量比较大,本发明的后续内容将会讨论怎样解决这一问题。
图2示出了根据本发明实施例的语音识别抗噪装置的方框图。如图2所示,本发明的语音识别抗噪装置包括功率谱提取单元21,梅尔频带(MFB)能量计算单元22,噪声跟踪单元23,语音检测单元24,第一谱减计算单元25,第二谱减计算单元26,平滑单元27,谱减增益控制单元28,和MFCC特征提取单元29。
下面参考附图具体说明本发明的语音识别抗噪装置的操作。根据本发明的实施例,功率谱提取单元21从输入的含噪语音中提取功率谱。MFB能量计算单元22计算所提取功率谱的梅尔频带能量,并将所计算的梅尔频带能量提供给噪声跟踪单元23。噪声跟踪单元23利用保留一定长度的历史信息的最小能量估计法来实现上述的保守的噪音估计。具体地讲,根据本发明的实施例,保留距离当前时间点最近的一段语音信号,例如,300帧语音的MFB能量,每一帧新的语音进入时,通过比较求出这段语音帧的MFB能量的最小值,把这个最小值作为噪音估计。需要说明的是,每一个MFB能量的最小值的求取是独立进行的。也就是说,并不需要强制要求最终确定的最小的MFB能量是来自同一帧语音的。
图4给出了基于历史信息进行保守的噪声估计的流程图。其中在步骤S401,根据输入的新一帧语音信号的MFB能量,在每一个MFB上比较当前的和历史的MFB能量,求取各MFB的最小值。在步骤S402,把这个最小值作为噪音估计,用来更新历史信息。
语音检测单元24根据噪声跟踪单元23提供的跟踪得到的噪声的各MFB的能量以及新一帧含噪语音的各MFB的能量,采用基于梅尔子带(MFB)的平均信噪比大小的语音检测方法进行语音检测(VAD)。对于本发明提出的基于自适应非线性谱减的抗噪算法,该算法的核心要点之一就是在第一次进行谱减的时候需要进行语音检测,也就是通常所说的VAD。进行VAD检测的主要目的就是把语音信号的语音帧和噪音帧区分开来。
在实际应用系统中,准确地进行VAD检测是十分困难的事情,特别是在信噪比较低的环境,很容易把能量比较低的辅音或是句子末尾的话语判定为噪音。本发明采用基于平均MFB信噪比的方法进行VAD检测。
图5示出了基于MFB平均噪声信噪比进行语音检测的流程图。首先,在步骤S501,基于历史信息的保守的噪音估计方法。根据追踪得到的噪声的各MFB能量以及新一帧含噪语音的各MFB能量来计算平均MFB信噪比。已经求出的噪声功率谱为N(k),则计算噪音的第m个MFB能量计算公式为:
N ( m ) = ln { Σ k = 1 N | N ( k ) | 2 H m ( k ) } - - - ( 6 )
通过上面的公式(4)可以求出当前的语音信号的第m个MFB能量带S(m),则定义第m个MFB的后验信噪比由下面的公式(7)表示。
SNR_fm=S(m)/N(m)                        (7)
在步骤S502,比较平均信噪比是否大于预定的信噪比阈值。定义信号的M个MFB的平均信噪比由公式(8)表示
AVE _ SNR = 1 M Σ m = 1 M SNR _ f m - - - ( 8 )
因此,这段语音进行VAD判断的依据变为:
如果(AVE_SNR>SNR_THRESOLD)(表示:如果平均信噪比大于信噪比阈值)
判断为语音信息
否则
判断为噪音信息
这里,SNR_THRESOLD是预先确定的一个常量,它的取值原则是应该让噪音的判断更加准确,例如,根据本发明的一个实例,取作5至30之间的一个常数。
然后,当判断平均信噪比为噪声时,流程进行到步骤S503。为第一次谱减进行噪声估计更新。
返回图2,语音检测结束后,第一谱减计算单元25根据语音检测单元24对判断为噪音的信号帧进行更新噪音的估计,对所有语音信号的语音帧和噪音帧都利用当前的噪音估计进行谱减操作。
下面说明采用基于梅尔子带(MFB)信噪比大小的自适应噪声更新算法。本发明的核心内容之一是噪声估计算法。根据本发明的噪声估计算法分为第一次滤波的噪音估计算法和第二次滤波的噪音估计算法。下面分别对他们进行说明。
虽然上面一起提到了如何解决连续语音信号中的噪音确定问题,这样确定的噪音是一段语音中的能量最小的噪音,比真实的噪音值偏小。因此上面提到的噪音确定方法只是用来进行VAD检测的,而在谱减中使用的噪声估计是使用下面的一阶线性平滑估计方法确定出的。具体的噪声估计方法如下。
首先初始噪音的估计是根据初始的10或者15帧语音信号作为噪声信号的初始估计。这样的噪音初始估计依赖于这样的一个假设:就是说,在语音采集系统采集到人们说话的实际语音信号的之前,都会采集到一段纯噪音的信号。在大多数语音系统应用的场合下,这个假设都是成立的。
接下来,采用基于一阶平滑的噪音估计方法:
(1)如果当前语音帧的VAD检测结果是1,就是说当前语音信号帧被判定为语音信号,则不对噪声的估计进行任何的更新,继续沿用上一次得到的噪声估计值。
(2)如果当前的噪音信号的VAD检测的结果是0,就是说当前语音信号帧被判定为是噪音信号,则根据下面的噪声估计公式更新噪声的估计。
假设t时刻第k个数字频率点的噪音值为N(k,t),则在第k+1个数字频率点的噪声值为N(k,t+1)的计算可以用公式(9)表示
N(k,t+1)=Namta(k)*N(k,t)+(1-Namta(k))Y(k,t+1)          (9)
其中Y(k,t+1)表示语音信号在数字频率k这一点的功率谱。
在计算公式(9)的时候,最关键的要点是如何为每个数字频率点k确定合适的Namata(k)。
图6时出了进行第一次滤波的噪声更新过程。首先,在步骤S601,根据由语音检测单元24检测判定为噪声帧的功率谱来计算Namata(k)。根据本发明,Namata(k)的求取是根据下面的自适应调节方法求出的,即,在当前帧的语音信号被判定为是噪音信号的时候,Namata(k)可以通过下面的公式(10)计算出来。
Namata(k)=1-0.02×|SNR_curFrame(k)/SNR_tar_Silence(k)-1|(10)
其中SNR_curFrame(k)表示当前被判定为是噪音的语音帧的第k个数字频率点的信噪比,SNR_tar_Silence(k)表示标准的噪音帧的第k个数字频率点的信噪比。在步骤S602,利用公式(9)更新每个频率点的噪声功率谱。
再次返回图2。经过第一次滤波的噪音估计后,第二谱减计算单元26对第一谱减计算单元25输出的经过第一次滤波的语音帧的功率谱进行第二次谱减计算。第二次谱减可以被看作信噪比比较高的含噪语音的去噪问题。因此,第二次滤波的时候不再使用任何语音检测算法,噪声是根据每一帧语音信号的功率谱大小进行实时更新的。下面具体的说明本发明采用的基于噪声发生概率的软判决(Soft-Decision)噪声估计算法。
对于任何一帧含有噪声的语音信号Y(t),假设这一帧语音信号的先验信噪比ξ比较高(即ξ>3),则这一帧语音中的噪音的大小可以通过下面的公式(11)估计出来。
N ( k ) = 1 2 { | Y ( k ) | - | Y ( k ) | 2 - λ ( k ) } - - - ( 11 )
其中λ(k)表示噪声的功率谱。
此时,这一帧语音是噪音的概率可以通过下面的公式(12)来计算。
P ( H 0 | Y ( k ) ) = 1 1 + exp ( - ξ ) I 0 [ 2 ξ ( Y ( k ) λ ( k ) ) ] - - - ( 12 )
在公式(12)中,H0表示这一帧语音是噪音的假设。I0(x)是著名的修正0阶被塞尔函数(Modified Bessel Function of First Kind)。
图7示出了基于概率的第二次噪声更新过程。在步骤S701,对经过第一次滤波后的语音帧的功率谱进行判断。这一帧含有噪声的语音信号Y(t)中的噪音估计可以进行|Y(k)|2/λ(k)是否大于3的判断。如果|Y(k)|2/λ(k)大于3,则执行步骤S702,则功率谱如表达式(13)。
N ^ ( k ) = 1 2 { | Y ( k ) | - | Y ( k ) | 2 - λ ( k ) } × ( 1 1 + exp ( - ξ ) I 0 [ 2 ξ ( Y ( k ) λ ( k ) ) ] ) - - - ( 13 )
否则,进行到步骤S703,则功率谱如表达式(14)所示。
N ^ ( k ) = ( 1 1 + ξ ) × Y ( k ) - - - ( 14 )
在本发明中,第二次滤波的先验信噪比ξ被设定为常数值5到30之间的一个常数。这里之所以采用公式(13)和(14)进行噪声估计的主要原因是在第二次滤波的时候,语音信号的信噪比比较高。公式(13)的数学推导过程决定了只有在信噪比比较高的时候它才可以成立,而只有在假设先验信噪比较低(|Y(k)|2/λ(k)<3)的时候才可以大胆地采用(14)式进行噪音估计。根据本发明的方法,由于第一次谱减已经很大程度上减少了信号的噪音含量,提高了信号的信噪比,因此在第二次谱减中采用所述的噪音估计算法能够非常好的估计出信号的噪音,提高第二次谱减的抗噪效果。
为了提高噪声估计的鲁棒性,最终的噪音估计是使用了本帧语音的噪声估计和前一帧语音的噪声估计加权平滑的结果。由平滑单元27对本帧语音的噪声估计和前一帧语音的噪声估计进行加权平滑。可以由下面的公式(15)表示。
N ~ ( k ) = ( 1 - 0.2 × P ( H 0 | Y ( k ) ) ) N ^ ( k ) + 0.2 × P ( H 0 | Y ( k ) ) × N ^ ( k - 1 ) - - - ( 15 )
根据本发明的自适应非线性谱减的非线性内容分为两层,第一层非线性的概念体现在谱减是分两次进行的。第一次谱减的噪音估计是基于语音检测(VAD)的结果。通过语音检测(VAD)估计出纯粹是噪音的语音帧,根据这些噪音帧更新当前的噪音估计,然后进行第一次谱减。第一次谱减的输出结果被送到第二次的谱减单元中进行第二次谱减。本发明与现有技术的方法的一个主要区别就是本发明的两次谱减都是在频域中进行的,相比于一些基于模型补偿和时域滤波的抗噪算法而言,计算量非常小,能够满足小型嵌入式设备的计算量和存储量的需要。
第一次谱减的算法本身比较简单,如果已经知道这一帧含噪语音的功率谱为Y(t),同时采用前面说明的采用考虑历史信息的最小能量噪音追踪办法确定可能的背景噪音范围,采用基于梅尔子带(MFB)的平均信噪比大小的语音检测方法,和采用基于梅尔子带(MFB)信噪比大小的自适应噪声更新算法的方法估计出这一帧的噪音信号为N(t),则语音信号X(t)可以用公式(16)求出:
X(t)=max((Y(t)-N(t)),BelowFloor)               (16)
这里,本发明采用的谱减算法是过谱减方法(Over SpectrumSubtraction),常量BelowFloor是为了避免音乐噪音而采用的语音信号功率谱下界。
由于谱减算法的诸多局限性,很难通过一次谱减就把语音信号中的噪音信号完全去除掉。因此,本发明在第一次谱减之后再附加第二次谱减来进一步消除噪声对语音信号的影响。
因为第一次谱减已经能够很大程度上的压低了噪声的幅度,所以第二次谱减可以看作是一种信噪比比较高的含噪语音的去噪问题,第二次抗噪算法的选用和抗噪算法参数的选择都是建立在“含噪语音信噪比已经较高”的这一前提之上的。
在第二谱减计算单元26中,采用的是基于非线性谱减的噪声去除方法,该噪声去除算法也是本发明提出的抗噪算法的核心之一。第二次谱减的时候采用非线性谱减可以获得较好的效果的原因在于此时可以认为信号的信噪比已经比较高了,因此可把非线性函数最敏感的区域设在信号和语音发生变化的临界点。这样就能够充分发挥非线性谱减的非线性权重函数对噪声的抑制作用,达到准确的抑制噪声的目的。
经过第二次谱减后,由第二谱减计算单元26计算的结果和平滑单元27的加权平滑的结果输入到谱减增益控制单元28,进行依赖于信噪比的谱减增益控制。这种增益控制在信噪比比较低的场合能够比较好地消除噪音对语音的影响,从而确保语音识别系统在低信噪比场合仍然能够获得较高的识别率。下面将详细阐述谱减增益控制。
图8示出了执行具有增益控制的非线性谱减算法的流程图。下面详细阐述本发明采用的基于非线性谱减的抗噪算法。
在步骤S801,基于MFB信噪比估计非线性谱减系数在此,如何估计非线性函数是本发明的方法的一个核心,本发明采用基于MFB信噪比的非线性系数估计方法。定义第m个MFB的后验信噪比为SNR_fm,则第m个MFB内部的每个数字频率点的非线性函数可以用下面的公式(17)计算。

在本发明中,阈值(Threshold)的值取为5-50之间的一个常数。
此后,在步骤S802,计算非线性谱减。如果已经知道这一帧含噪语音的功率谱为Y(t),同时采用前面说明的采用考虑历史信息的最小能量噪音追踪办法确定可能的背景噪音范围,采用基于梅尔子带(MFB)的平均信噪比大小的语音检测方法,和采用基于梅尔子带(MFB)信噪比大小的自适应噪声更新算法的方法估计出这一帧的噪音信号为N(t),则语音信号X(t)可以用公式(18)求出:

对于公式(18)所示的谱减算法,可以用下面表示谱减增益的公式(19)表示出来
X(t)=max(G(t)×|Y(t)|,BelowFloor)                  (19)这里
接下来,在步骤S803,根据MFB信噪比估计指数增益控制系数α(γ)。在本发明中,谱减增益控制就是对G(t)进行一个依赖于信噪比的指数增益控制,在步骤S804可以得到用下面的公式(20)表示的谱减增益控制。
X(t)=max(G(t)α(γ)×|Y(t)|,BelowFloor)          (20)
其中1<α(γ)<2,γ表示信号的后验信噪比。在实际算法使用的时候,可以在VAD算法的基础上粗略估计出信号的后验信噪比。在信噪比比较低的时候,α(γ)的取值比较大,信噪比比较高的时候α(γ)的取值比较小。
经过谱减增益控制单元28的上述处理后,得到去除噪声的语音的功率谱。正是通过这种依赖于信噪比的谱减增益控制,本发明的抗噪算法即使在信噪比接近于5db的低信噪比环境下仍然可以获得较好的抗噪效果。
最后,MFCC(梅尔频标倒谱系数)特征提取单元29从去噪的语音中提取MFCC特征,输出具有抗噪特性的MFCC特征。
下面结合附图3说明根据本发明的基于自适应非线性谱减的语音识别方法的简要过程。
首先,在步骤S301,从输入的含噪语音信号中提取功率谱。提取功率谱后,抗噪处理分成三个分支。一个分支是在步骤S310,对原始信号的功率谱进行功率谱平滑,得到平滑的功率谱以备谱减增益控制使用。另一个分支执行从步骤S302开始的处理。求出最近的一段语音信号的MFB能量,每一帧新的语音进入时,通过比较求出这段语音帧的MFB能量的最小值,把这个最小值作为噪音估计。此后,在步骤S303,进行保守的噪声跟踪,根据输入的新一帧语音信号的MFB能量,在每一个MFB上比较当前的和历史的MFB能量,求取各MFB的最小值,把这个最小值作为噪音估计,用来更新历史信息。此后,在步骤S304,基于平均MFB信噪比的方法进行VAD检测,当平均信噪比大于预定的阈值时则判断为语音信息,否则判断为噪音信息。接下来,在步骤S305对被判断为噪声的帧和在步骤S301提取的,经第三个分支到来的原始信号的功率谱进行基于语音检测的第一次噪声估计。然后,在步骤S306对所有语音信号的语音帧和噪音帧都利用当前的噪音估计进行第一次谱减操作。同时,将得到第一次谱减系数。然后,在步骤S307,对经过第一次谱减的信号功率谱进行基于概率的第二次噪声估计,第二次滤波的时候不再使用任何语音检测算法,噪声是根据每一帧语音信号的功率谱大小进行实时更新的。此后,在步骤S308进行第二次非线性谱减。第二次谱减的时候采用非线性谱减即可获得较好的效果。此后,流程进行到步骤S309,根据前面在步骤310中得到的平滑后的功率谱,在步骤S306得到的第一次谱减系数以及在步骤S308得到的第二次谱减系数,执行前面描述的谱减增益控制。这种增益控制在信噪比比较低的场合能够比较好地消除噪音对语音的影响,从而确保语音识别系统在低信噪比场合仍然能够获得较高的识别率。最后,在步骤S311,从去除噪声的信号功率谱提取MFCC特征,得到具有抗噪特性的MFCC特征。
至此已经结合优选实施例对本发明进行了描述。本领域技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以进行各种其它的改变、替换和添加。因此,本发明的范围不应该被理解为被局限于上述特定实施例,而应由所附权利要求所限定。