專利名稱:一種基于自適應(yīng)非線性譜減的抗噪方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種基于自適應(yīng)非線性譜減的語音識別方法及裝置,特別是涉及適用于計算量小的小型嵌入式移動設(shè)備的語音識別方法和裝置,能夠提高語音識別系統(tǒng)在噪聲環(huán)境下的識別率。
背景技術(shù):
近年來,語音識別技術(shù)的發(fā)展已經(jīng)逐漸地走向成熟,開始向?qū)嶋H的產(chǎn)品應(yīng)用發(fā)展?;谡Z音識別技術(shù)的產(chǎn)品應(yīng)用正在不斷地增多,使用語音識別技術(shù)進(jìn)行聲音遙控的移動電話、汽車導(dǎo)航以及智能家具等正在不斷地涌現(xiàn)。雖然在實驗室環(huán)境下的這些語音技術(shù)的應(yīng)用都能夠取得很好的效果,但是在現(xiàn)實的生活中噪音對這些語音識別系統(tǒng)的識別率產(chǎn)生巨大的影響。輕微的噪音就可能造成識別率下降30%左右。如何提高語音識別系統(tǒng)在噪音環(huán)境下的識別率已經(jīng)成為語音識別領(lǐng)域研究的一個不可回避的研究課題。
聲學(xué)特征的提取與選擇是語音識別的一個重要環(huán)節(jié)。聲學(xué)特征的提取既是一個信息大幅度壓縮的過程,也是一個信號解卷過程,目的是使模式劃分器能更好地劃分。
由于語音信號的時變特性,特征提取必須在一小段語音信號上進(jìn)行,也即進(jìn)行短時分析。
語音特征參數(shù)的提取,是模式識別成敗的關(guān)鍵。在漢語語音識別系統(tǒng)中,主要采用以下三種特征提取方法1.基于LPC(線性預(yù)測系數(shù))的倒譜參數(shù)(LPCC)分析法。該方法的典型代表是以基于Durbin或Levinson迭代算法求解“維納-霍夫方程”獲得LPC預(yù)測系數(shù)為基礎(chǔ)進(jìn)而得到的LPC的倒譜參數(shù)(LPCC)。
2.基于梅爾(Mel)系數(shù)的梅爾頻標(biāo)倒譜系數(shù)(MFCC)分析法。該方法以基于快速傅立葉變換(FFT)的頻譜余弦變換為基礎(chǔ),將時域信號轉(zhuǎn)化成頻域后對其對數(shù)能量譜用依照梅爾刻度分布的三角濾波器組進(jìn)行卷積,最后對各個濾波器的輸出構(gòu)成的向量進(jìn)行離散余弦變換(DCT),取前N個系數(shù)。根據(jù)梅爾曲線將語音信號頻譜分為若干個頻帶,每個頻帶的能量經(jīng)FFT變換對應(yīng)一組梅爾倒譜(MFCC)參數(shù)。
3.基于現(xiàn)代處理技術(shù)的小波變換系數(shù)分析法。該方法將語音信號與一個在時域和頻域均具有良好局部化性質(zhì)的小波函數(shù)族進(jìn)行積分(小波變換),從而把信號分解成一組位于不同頻率和時段內(nèi)的分量,即選擇小波函數(shù)為某類平滑函數(shù)的一階導(dǎo)數(shù),則經(jīng)小波變換后的局部最大值反映信號的尖銳變化,而局部最小值則反映信號的緩慢變化,從而獲得反映基音周期的小波語音特征參數(shù)。
在以上語音特征參數(shù)的提取方法中,MFCC方法比LPCC方法的識別效果稍好一些,而且MFCC符合人們的聽覺特性,在有信道噪聲和頻譜失真的情況下具有較好的穩(wěn)健性。
在詳細(xì)的介紹本發(fā)明的具體內(nèi)容之前,首先介紹一下最為普遍采用的語音識別系統(tǒng)的特征提取方法。
假設(shè)一段語音信號的時域信號是x(n)(1<n<N),其中N是自然數(shù),這段語音信號的傅立葉變換為X[k]=Σnx[n]×exp(-j2πnk/N),]]>這里(1<k<N)。
定義梅爾頻率與最初的數(shù)字頻率的關(guān)系MEL=2595log(1+f/700),這里f表示數(shù)字角頻率。在梅爾頻率上每隔100梅爾均勻施加如下的公式(1)表示的三角濾波器Hm[k]=0k<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]0k>f[m+1]---(1)]]>在上面的公式(1)中,Hm[k]表示頻帶k的頻率響應(yīng)函數(shù),f(m)是每隔100梅爾的梅爾頻率所對應(yīng)的原始數(shù)字頻率。上述三角濾波器的形狀在原始的頻率上的形狀和分布如圖1所示。如圖1所示,每個三角濾波器之間的頻率范圍被稱為一個梅爾頻帶,例如f(0)和f(1)之間的頻率范圍的頻率帶可以被稱為一個梅爾頻帶,在此稱之為MFB。計算每個梅爾頻帶的能量(稱為MFB能量)之和,由下面的公式(2)表示。
S(m)=ln{Σk=1N|X(k)|2Hm(k)}---(2)]]>因此,梅爾倒譜(MFCC)的計算公式可以由公式(3)表示。
C(n)=Σm=0M-1S(m)cos(πn(m+1/2)/M)---(3)]]>對于大多數(shù)語音識別系統(tǒng)而言,由于語音識別系統(tǒng)所處的環(huán)境的噪音所造成的影響是主要的。這種環(huán)境噪音的影響是可以看作是疊加在信號的功率譜上的,這種噪音通常被稱為加性噪音。這種噪音的影響表現(xiàn)在公式(2)中就是在語音的功率譜上疊加上噪音的功率譜,則由噪音情況下的每個梅爾頻帶的能量計算公式就由公式(2)變?yōu)楣?4)。
S(m)=ln{Σk=1N|X(k)+N(k)|2Hm(k)}---(4)]]>其中噪聲的功率譜用N(k)表示。
從公式(4)中可以看出,如果能夠在進(jìn)行計算S(m)之前從含噪語音的功率譜X(k)+N(k)中把噪音的影響N(k)去除,那么梅爾倒譜(MFCC)特征提取的結(jié)果還是能夠和沒有噪音影響之前的純凈語音的特征提取結(jié)果是一樣的。這樣就能夠保證語音識別系統(tǒng)的識別率不受噪音的影響。
因此,需要一種從含噪語音中去除掉噪音的影響,從而獲得相對純凈的語音的方法和裝置。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種基于自適應(yīng)非線性譜減的語音識別抗噪方法和裝置,以提高語音識別系統(tǒng)在噪聲環(huán)境下的識別率。
為了實現(xiàn)本發(fā)明的目的,根據(jù)本發(fā)明的一個方面,提供一種基于自適應(yīng)非線性譜減的語音識別抗噪方法,包括步驟基于平均梅爾頻帶信噪比進(jìn)行語音檢測,當(dāng)平均信噪比大于預(yù)定的信噪比閾值時則判斷為語音信息,否則判斷為噪音信息;根據(jù)在語音檢測步驟中得到的噪音幀更新當(dāng)前的噪音估計,進(jìn)行第一次譜減計算,獲得具有高信噪比的含噪語音;對具有高信噪比的含噪語音進(jìn)行第二次譜減計算以進(jìn)一步消除含噪語音信號中的噪聲。
根據(jù)本發(fā)明的另一個方面,提供一種基于自適應(yīng)非線性譜減的語音識別抗噪方法,包括步驟基于歷史信息進(jìn)行保守的噪音估計;根據(jù)梅爾子帶的平均信噪比的大小進(jìn)行語音檢測;根據(jù)梅爾子帶的信噪比大小進(jìn)行自適應(yīng)噪聲更新;根據(jù)語音檢測結(jié)果估計噪音并進(jìn)行第一次譜減計算;根據(jù)第一次譜減計算的結(jié)果進(jìn)行第二次譜減計算;和根據(jù)信噪比進(jìn)行譜減增益控制以消除語音中的噪音。
根據(jù)本發(fā)明的再一個方面,提供一種基于自適應(yīng)非線性譜減的語音識別抗噪裝置,包括梅爾頻帶能量計算裝置,用于計算從原始語音信號中提取的功率譜的梅爾頻字子能量;語音檢測裝置,用于基于梅爾子帶的平均信噪比的大小判斷的語音進(jìn)行語音檢測,當(dāng)平均信噪比大于預(yù)定的閾值時則判斷為語音信息,否則判斷為噪音信息;第一譜減計算裝置,用于對判斷為噪音的信號幀進(jìn)行更新噪音的估計,對所有語音信號的語音幀和噪音幀都利用當(dāng)前的噪音估計進(jìn)行譜減操作,以得到高信噪比的含噪語音;第二譜減計算裝置,用于對高信噪比的含噪語音的功率譜進(jìn)行第二次譜減計算;譜減增益控制裝置,用于根據(jù)梅爾頻帶信噪比估計指數(shù)增益控制系數(shù)并進(jìn)行譜減增益控制。
本發(fā)明提出了一種基于自適應(yīng)非線性譜減的語音識別抗噪算法。這種抗噪算法的主要特點(diǎn)在于1).基于歷史信息的保守的噪音估計方法。
2).采用基于梅爾子帶(MFB)的平均信噪比大小的語音檢測方法。
3).采用基于梅爾子帶(MFB)信噪比大小的自適應(yīng)噪聲更新算法。
4).采用基于非線性譜減的噪音消除的算法。本發(fā)明的自適應(yīng)非線性譜減的非線性內(nèi)容分為兩層,第一層非線性的概念體現(xiàn)在譜減是分兩次進(jìn)行的。第一次譜減的噪音估計是基于2)中的語音檢測的結(jié)果的。通過噪音檢測估計出純粹是噪音的語音幀,根據(jù)這些噪音幀更新當(dāng)前的噪音估計。然后進(jìn)行第一次譜減。第一次譜減的輸出結(jié)果被送到第二次的譜減模塊中。由于第一次譜減已經(jīng)能夠很大程度上的壓低噪聲的幅度,因此第二次譜減可以看作是一種信噪比比較高的含噪語音的去噪問題。在第二次譜減的模塊中,采用基于非線性譜減的噪聲去除方法。由于第二次譜減的時候可以認(rèn)為信號的信噪比已經(jīng)比較高了,因此很容易把非線性函數(shù)最敏感的區(qū)域設(shè)在信號和語音發(fā)生變化的臨界點(diǎn)。這樣就能夠充分發(fā)揮非線性譜減的非線性權(quán)重函數(shù)對噪聲的抑制作用,達(dá)到準(zhǔn)確抑制噪聲的目的。
5).依賴于信噪比的譜減增益控制。
這里特別需要說明的是本發(fā)明中所闡述的各級算法都是在原始語音的頻率譜上進(jìn)行的,相比于一些基于模型補(bǔ)償和時域濾波的抗噪算法而言,計算量非常小,比較適合小型嵌入式移動設(shè)備使用。
通過下面結(jié)合
本發(fā)明的優(yōu)選實施例,將使本發(fā)明的上述及其它目的、特征和優(yōu)點(diǎn)更加清楚,其中圖1是表示梅爾倒譜的三角濾波器的示意圖;圖2是根據(jù)本發(fā)明實施例的語音識別抗噪裝置的方框圖;圖3是根據(jù)本發(fā)明實施例的語音識別抗噪的處理過程的流程圖;圖4是基于歷史信息進(jìn)行保守的噪聲估計的處理方法的流程圖;圖5是基于梅爾頻帶平均噪聲信噪比的語音檢測流程圖;圖6是進(jìn)行第一次濾波的噪聲更新過程的流程圖;圖7是基于概率的第二次噪聲更新過程的流程圖;和圖8是進(jìn)行增益控制的非線性譜減算法的流程圖。
具體實施例方式
下面參照附圖對本發(fā)明的實施例進(jìn)行詳細(xì)的說明,在描述過程中省略了對于本發(fā)明來說是不必要的細(xì)節(jié)和功能,以防止對本發(fā)明的理解造成混淆。
本發(fā)明提出一種基于自適應(yīng)非線性譜減的消除噪聲的方法和裝置。
根據(jù)本發(fā)明,采用考慮歷史信息的最小能量噪音追蹤辦法確定可能的背景噪音范圍。具體地說,在一些特定的應(yīng)用環(huán)境下,噪音是相對比較平穩(wěn)的。如何準(zhǔn)確地估計背景噪音是進(jìn)行語音檢測前提。通常的噪聲估計方法都是利用語音間隙的靜音估計噪音,但是在信噪比比較低的環(huán)境下,很容易把能量比較低的語音估計成噪音。這將在以后的譜減算法中會把不是噪音的語音消除掉,影響抗噪算法的效果。
本發(fā)明采用一種基于歷史信息的保守的噪音估計方式。這種噪音估計的目的并不是準(zhǔn)確地估計每一幀含噪語音中的噪音含量,而是準(zhǔn)確地估計出的確是噪音的噪音幀的噪音大小。在設(shè)置檢測門限的時候要保證下面的要求允許將噪音幀判定為語音幀,但是絕對不允許將語音幀判斷成為噪音幀。這樣做的主要目的是為避免噪音的錯誤估計而造成的譜減對語音信息的削弱作用。但是這樣做勢必帶來的缺點(diǎn)是噪音在語音中的殘留量比較大,本發(fā)明的后續(xù)內(nèi)容將會討論怎樣解決這一問題。
圖2示出了根據(jù)本發(fā)明實施例的語音識別抗噪裝置的方框圖。如圖2所示,本發(fā)明的語音識別抗噪裝置包括功率譜提取單元21,梅爾頻帶(MFB)能量計算單元22,噪聲跟蹤單元23,語音檢測單元24,第一譜減計算單元25,第二譜減計算單元26,平滑單元27,譜減增益控制單元28,和MFCC特征提取單元29。
下面參考附圖具體說明本發(fā)明的語音識別抗噪裝置的操作。根據(jù)本發(fā)明的實施例,功率譜提取單元21從輸入的含噪語音中提取功率譜。MFB能量計算單元22計算所提取功率譜的梅爾頻帶能量,并將所計算的梅爾頻帶能量提供給噪聲跟蹤單元23。噪聲跟蹤單元23利用保留一定長度的歷史信息的最小能量估計法來實現(xiàn)上述的保守的噪音估計。具體地講,根據(jù)本發(fā)明的實施例,保留距離當(dāng)前時間點(diǎn)最近的一段語音信號,例如,300幀語音的MFB能量,每一幀新的語音進(jìn)入時,通過比較求出這段語音幀的MFB能量的最小值,把這個最小值作為噪音估計。需要說明的是,每一個MFB能量的最小值的求取是獨(dú)立進(jìn)行的。也就是說,并不需要強(qiáng)制要求最終確定的最小的MFB能量是來自同一幀語音的。
圖4給出了基于歷史信息進(jìn)行保守的噪聲估計的流程圖。其中在步驟S401,根據(jù)輸入的新一幀語音信號的MFB能量,在每一個MFB上比較當(dāng)前的和歷史的MFB能量,求取各MFB的最小值。在步驟S402,把這個最小值作為噪音估計,用來更新歷史信息。
語音檢測單元24根據(jù)噪聲跟蹤單元23提供的跟蹤得到的噪聲的各MFB的能量以及新一幀含噪語音的各MFB的能量,采用基于梅爾子帶(MFB)的平均信噪比大小的語音檢測方法進(jìn)行語音檢測(VAD)。對于本發(fā)明提出的基于自適應(yīng)非線性譜減的抗噪算法,該算法的核心要點(diǎn)之一就是在第一次進(jìn)行譜減的時候需要進(jìn)行語音檢測,也就是通常所說的VAD。進(jìn)行VAD檢測的主要目的就是把語音信號的語音幀和噪音幀區(qū)分開來。
在實際應(yīng)用系統(tǒng)中,準(zhǔn)確地進(jìn)行VAD檢測是十分困難的事情,特別是在信噪比較低的環(huán)境,很容易把能量比較低的輔音或是句子末尾的話語判定為噪音。本發(fā)明采用基于平均MFB信噪比的方法進(jìn)行VAD檢測。
圖5示出了基于MFB平均噪聲信噪比進(jìn)行語音檢測的流程圖。首先,在步驟S501,基于歷史信息的保守的噪音估計方法。根據(jù)追蹤得到的噪聲的各MFB能量以及新一幀含噪語音的各MFB能量來計算平均MFB信噪比。已經(jīng)求出的噪聲功率譜為N(k),則計算噪音的第m個MFB能量計算公式為N(m)=ln{Σk=1N|N(k)|2Hm(k)}---(6)]]>通過上面的公式(4)可以求出當(dāng)前的語音信號的第m個MFB能量帶S(m),則定義第m個MFB的后驗信噪比由下面的公式(7)表示。
SNR_fm=S(m)/N(m) (7)在步驟S502,比較平均信噪比是否大于預(yù)定的信噪比閾值。定義信號的M個MFB的平均信噪比由公式(8)表示AVE_SNR=1MΣm=1MSNR_fm---(8)]]>因此,這段語音進(jìn)行VAD判斷的依據(jù)變?yōu)槿绻?AVE_SNR>SNR_THRESOLD)(表示如果平均信噪比大于信噪比閾值)判斷為語音信息否則判斷為噪音信息這里,SNR_THRESOLD是預(yù)先確定的一個常量,它的取值原則是應(yīng)該讓噪音的判斷更加準(zhǔn)確,例如,根據(jù)本發(fā)明的一個實例,取作5至30之間的一個常數(shù)。
然后,當(dāng)判斷平均信噪比為噪聲時,流程進(jìn)行到步驟S503。為第一次譜減進(jìn)行噪聲估計更新。
返回圖2,語音檢測結(jié)束后,第一譜減計算單元25根據(jù)語音檢測單元24對判斷為噪音的信號幀進(jìn)行更新噪音的估計,對所有語音信號的語音幀和噪音幀都利用當(dāng)前的噪音估計進(jìn)行譜減操作。
下面說明采用基于梅爾子帶(MFB)信噪比大小的自適應(yīng)噪聲更新算法。本發(fā)明的核心內(nèi)容之一是噪聲估計算法。根據(jù)本發(fā)明的噪聲估計算法分為第一次濾波的噪音估計算法和第二次濾波的噪音估計算法。下面分別對他們進(jìn)行說明。
雖然上面一起提到了如何解決連續(xù)語音信號中的噪音確定問題,這樣確定的噪音是一段語音中的能量最小的噪音,比真實的噪音值偏小。因此上面提到的噪音確定方法只是用來進(jìn)行VAD檢測的,而在譜減中使用的噪聲估計是使用下面的一階線性平滑估計方法確定出的。具體的噪聲估計方法如下。
首先初始噪音的估計是根據(jù)初始的10或者15幀語音信號作為噪聲信號的初始估計。這樣的噪音初始估計依賴于這樣的一個假設(shè)就是說,在語音采集系統(tǒng)采集到人們說話的實際語音信號的之前,都會采集到一段純噪音的信號。在大多數(shù)語音系統(tǒng)應(yīng)用的場合下,這個假設(shè)都是成立的。
接下來,采用基于一階平滑的噪音估計方法(1)如果當(dāng)前語音幀的VAD檢測結(jié)果是1,就是說當(dāng)前語音信號幀被判定為語音信號,則不對噪聲的估計進(jìn)行任何的更新,繼續(xù)沿用上一次得到的噪聲估計值。
(2)如果當(dāng)前的噪音信號的VAD檢測的結(jié)果是0,就是說當(dāng)前語音信號幀被判定為是噪音信號,則根據(jù)下面的噪聲估計公式更新噪聲的估計。
假設(shè)t時刻第k個數(shù)字頻率點(diǎn)的噪音值為N(k,t),則在第k+1個數(shù)字頻率點(diǎn)的噪聲值為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)表示語音信號在數(shù)字頻率k這一點(diǎn)的功率譜。
在計算公式(9)的時候,最關(guān)鍵的要點(diǎn)是如何為每個數(shù)字頻率點(diǎn)k確定合適的Namata(k)。
圖6時出了進(jìn)行第一次濾波的噪聲更新過程。首先,在步驟S601,根據(jù)由語音檢測單元24檢測判定為噪聲幀的功率譜來計算Namata(k)。根據(jù)本發(fā)明,Namata(k)的求取是根據(jù)下面的自適應(yīng)調(diào)節(jié)方法求出的,即,在當(dāng)前幀的語音信號被判定為是噪音信號的時候,Namata(k)可以通過下面的公式(10)計算出來。
Namata(k)=1-0.02×|SNR_curFrame(k)/SNR_tar_Silence(k)-1| (10)其中SNR_curFrame(k)表示當(dāng)前被判定為是噪音的語音幀的第k個數(shù)字頻率點(diǎn)的信噪比,SNR_tar_Silence(k)表示標(biāo)準(zhǔn)的噪音幀的第k個數(shù)字頻率點(diǎn)的信噪比。在步驟S602,利用公式(9)更新每個頻率點(diǎn)的噪聲功率譜。
再次返回圖2。經(jīng)過第一次濾波的噪音估計后,第二譜減計算單元26對第一譜減計算單元25輸出的經(jīng)過第一次濾波的語音幀的功率譜進(jìn)行第二次譜減計算。第二次譜減可以被看作信噪比比較高的含噪語音的去噪問題。因此,第二次濾波的時候不再使用任何語音檢測算法,噪聲是根據(jù)每一幀語音信號的功率譜大小進(jìn)行實時更新的。下面具體的說明本發(fā)明采用的基于噪聲發(fā)生概率的軟判決(Soft-Decision)噪聲估計算法。
對于任何一幀含有噪聲的語音信號Y(t),假設(shè)這一幀語音信號的先驗信噪比ξ比較高(即ξ>3),則這一幀語音中的噪音的大小可以通過下面的公式(11)估計出來。
N(k)=12{|Y(k)|-|Y(k)|2-λ(k)}---(11)]]>其中λ(k)表示噪聲的功率譜。
此時,這一幀語音是噪音的概率可以通過下面的公式(12)來計算。
P(H0|Y(k))=11+exp(-ξ)I0[2ξ(Y(k)λ(k))]---(12)]]>在公式(12)中,H0表示這一幀語音是噪音的假設(shè)。I0(x)是著名的修正0階被塞爾函數(shù)(Modified Bessel Function of First Kind)。
圖7示出了基于概率的第二次噪聲更新過程。在步驟S701,對經(jīng)過第一次濾波后的語音幀的功率譜進(jìn)行判斷。這一幀含有噪聲的語音信號Y(t)中的噪音估計可以進(jìn)行|Y(k)|2/λ(k)是否大于3的判斷。如果|Y(k)|2/λ(k)大于3,則執(zhí)行步驟S702,則功率譜如表達(dá)式(13)。
N^(k)=12{|Y(k)|-|Y(k)|2-λ(k)}×(11+exp(-ξ)I0[2ξ(Y(k)λ(k))])---(13)]]>否則,進(jìn)行到步驟S703,則功率譜如表達(dá)式(14)所示。
N^(k)=(11+ξ)×Y(k)---(14)]]>在本發(fā)明中,第二次濾波的先驗信噪比ξ被設(shè)定為常數(shù)值5到30之間的一個常數(shù)。這里之所以采用公式(13)和(14)進(jìn)行噪聲估計的主要原因是在第二次濾波的時候,語音信號的信噪比比較高。公式(13)的數(shù)學(xué)推導(dǎo)過程決定了只有在信噪比比較高的時候它才可以成立,而只有在假設(shè)先驗信噪比較低(|Y(k)|2/λ(k)<3)的時候才可以大膽地采用(14)式進(jìn)行噪音估計。根據(jù)本發(fā)明的方法,由于第一次譜減已經(jīng)很大程度上減少了信號的噪音含量,提高了信號的信噪比,因此在第二次譜減中采用所述的噪音估計算法能夠非常好的估計出信號的噪音,提高第二次譜減的抗噪效果。
為了提高噪聲估計的魯棒性,最終的噪音估計是使用了本幀語音的噪聲估計和前一幀語音的噪聲估計加權(quán)平滑的結(jié)果。由平滑單元27對本幀語音的噪聲估計和前一幀語音的噪聲估計進(jìn)行加權(quán)平滑。可以由下面的公式(15)表示。
N~(k)=(1-0.2×P(H0|Y(k)))N^(k)+0.2×P(H0|Y(k))×N^(k-1)---(15)]]>根據(jù)本發(fā)明的自適應(yīng)非線性譜減的非線性內(nèi)容分為兩層,第一層非線性的概念體現(xiàn)在譜減是分兩次進(jìn)行的。第一次譜減的噪音估計是基于語音檢測(VAD)的結(jié)果。通過語音檢測(VAD)估計出純粹是噪音的語音幀,根據(jù)這些噪音幀更新當(dāng)前的噪音估計,然后進(jìn)行第一次譜減。第一次譜減的輸出結(jié)果被送到第二次的譜減單元中進(jìn)行第二次譜減。本發(fā)明與現(xiàn)有技術(shù)的方法的一個主要區(qū)別就是本發(fā)明的兩次譜減都是在頻域中進(jìn)行的,相比于一些基于模型補(bǔ)償和時域濾波的抗噪算法而言,計算量非常小,能夠滿足小型嵌入式設(shè)備的計算量和存儲量的需要。
第一次譜減的算法本身比較簡單,如果已經(jīng)知道這一幀含噪語音的功率譜為Y(t),同時采用前面說明的采用考慮歷史信息的最小能量噪音追蹤辦法確定可能的背景噪音范圍,采用基于梅爾子帶(MFB)的平均信噪比大小的語音檢測方法,和采用基于梅爾子帶(MFB)信噪比大小的自適應(yīng)噪聲更新算法的方法估計出這一幀的噪音信號為N(t),則語音信號X(t)可以用公式(16)求出X(t)=max(Y(t)-N(t)),BelowFloor)(16)這里,本發(fā)明采用的譜減算法是過譜減方法(Over SpectrumSubtraction),常量BelowFloor是為了避免音樂噪音而采用的語音信號功率譜下界。
由于譜減算法的諸多局限性,很難通過一次譜減就把語音信號中的噪音信號完全去除掉。因此,本發(fā)明在第一次譜減之后再附加第二次譜減來進(jìn)一步消除噪聲對語音信號的影響。
因為第一次譜減已經(jīng)能夠很大程度上的壓低了噪聲的幅度,所以第二次譜減可以看作是一種信噪比比較高的含噪語音的去噪問題,第二次抗噪算法的選用和抗噪算法參數(shù)的選擇都是建立在“含噪語音信噪比已經(jīng)較高”的這一前提之上的。
在第二譜減計算單元26中,采用的是基于非線性譜減的噪聲去除方法,該噪聲去除算法也是本發(fā)明提出的抗噪算法的核心之一。第二次譜減的時候采用非線性譜減可以獲得較好的效果的原因在于此時可以認(rèn)為信號的信噪比已經(jīng)比較高了,因此可把非線性函數(shù)最敏感的區(qū)域設(shè)在信號和語音發(fā)生變化的臨界點(diǎn)。這樣就能夠充分發(fā)揮非線性譜減的非線性權(quán)重函數(shù)對噪聲的抑制作用,達(dá)到準(zhǔn)確的抑制噪聲的目的。
經(jīng)過第二次譜減后,由第二譜減計算單元26計算的結(jié)果和平滑單元27的加權(quán)平滑的結(jié)果輸入到譜減增益控制單元28,進(jìn)行依賴于信噪比的譜減增益控制。這種增益控制在信噪比比較低的場合能夠比較好地消除噪音對語音的影響,從而確保語音識別系統(tǒng)在低信噪比場合仍然能夠獲得較高的識別率。下面將詳細(xì)闡述譜減增益控制。
圖8示出了執(zhí)行具有增益控制的非線性譜減算法的流程圖。下面詳細(xì)闡述本發(fā)明采用的基于非線性譜減的抗噪算法。
在步驟S801,基于MFB信噪比估計非線性譜減系數(shù)(t)。在此,如何估計非線性函數(shù)(t)是本發(fā)明的方法的一個核心,本發(fā)明采用基于MFB信噪比的非線性系數(shù)估計方法。定義第m個MFB的后驗信噪比為SNR_fm,則第m個MFB內(nèi)部的每個數(shù)字頻率點(diǎn)的非線性函數(shù)(t)可以用下面的公式(17)計算。
(m,t)=exp(-SNR_fm/Threshold)(17)在本發(fā)明中,閾值(Threshold)的值取為5-50之間的一個常數(shù)。
此后,在步驟S802,計算非線性譜減。如果已經(jīng)知道這一幀含噪語音的功率譜為Y(t),同時采用前面說明的采用考慮歷史信息的最小能量噪音追蹤辦法確定可能的背景噪音范圍,采用基于梅爾子帶(MFB)的平均信噪比大小的語音檢測方法,和采用基于梅爾子帶(MFB)信噪比大小的自適應(yīng)噪聲更新算法的方法估計出這一幀的噪音信號為N(t),則語音信號X(t)可以用公式(18)求出X(t)=max((|Y(t)|-(t)×|N(t)|),BelowFloor) (18)對于公式(18)所示的譜減算法,可以用下面表示譜減增益的公式(19)表示出來X(t)=max(G(t)×|Y(t)|,BelowFloor) (19)這里G(t)={1-(t)×|N(t)|/|Y(t)|}。
接下來,在步驟S803,根據(jù)MFB信噪比估計指數(shù)增益控制系數(shù)α(γ)。在本發(fā)明中,譜減增益控制就是對G(t)進(jìn)行一個依賴于信噪比的指數(shù)增益控制,在步驟S804可以得到用下面的公式(20)表示的譜減增益控制。
X(t)=max(G(t)α(γ)×|Y(t)|,BelowFloor)(20)其中1<α(γ)<2,γ表示信號的后驗信噪比。在實際算法使用的時候,可以在VAD算法的基礎(chǔ)上粗略估計出信號的后驗信噪比。在信噪比比較低的時候,α(γ)的取值比較大,信噪比比較高的時候α(γ)的取值比較小。
經(jīng)過譜減增益控制單元28的上述處理后,得到去除噪聲的語音的功率譜。正是通過這種依賴于信噪比的譜減增益控制,本發(fā)明的抗噪算法即使在信噪比接近于5db的低信噪比環(huán)境下仍然可以獲得較好的抗噪效果。
最后,MFCC(梅爾頻標(biāo)倒譜系數(shù))特征提取單元29從去噪的語音中提取MFCC特征,輸出具有抗噪特性的MFCC特征。
下面結(jié)合附圖3說明根據(jù)本發(fā)明的基于自適應(yīng)非線性譜減的語音識別方法的簡要過程。
首先,在步驟S301,從輸入的含噪語音信號中提取功率譜。提取功率譜后,抗噪處理分成三個分支。一個分支是在步驟S310,對原始信號的功率譜進(jìn)行功率譜平滑,得到平滑的功率譜以備譜減增益控制使用。另一個分支執(zhí)行從步驟S302開始的處理。求出最近的一段語音信號的MFB能量,每一幀新的語音進(jìn)入時,通過比較求出這段語音幀的MFB能量的最小值,把這個最小值作為噪音估計。此后,在步驟S303,進(jìn)行保守的噪聲跟蹤,根據(jù)輸入的新一幀語音信號的MFB能量,在每一個MFB上比較當(dāng)前的和歷史的MFB能量,求取各MFB的最小值,把這個最小值作為噪音估計,用來更新歷史信息。此后,在步驟S304,基于平均MFB信噪比的方法進(jìn)行VAD檢測,當(dāng)平均信噪比大于預(yù)定的閾值時則判斷為語音信息,否則判斷為噪音信息。接下來,在步驟S305對被判斷為噪聲的幀和在步驟S301提取的,經(jīng)第三個分支到來的原始信號的功率譜進(jìn)行基于語音檢測的第一次噪聲估計。然后,在步驟S306對所有語音信號的語音幀和噪音幀都利用當(dāng)前的噪音估計進(jìn)行第一次譜減操作。同時,將得到第一次譜減系數(shù)。然后,在步驟S307,對經(jīng)過第一次譜減的信號功率譜進(jìn)行基于概率的第二次噪聲估計,第二次濾波的時候不再使用任何語音檢測算法,噪聲是根據(jù)每一幀語音信號的功率譜大小進(jìn)行實時更新的。此后,在步驟S308進(jìn)行第二次非線性譜減。第二次譜減的時候采用非線性譜減即可獲得較好的效果。此后,流程進(jìn)行到步驟S309,根據(jù)前面在步驟310中得到的平滑后的功率譜,在步驟S306得到的第一次譜減系數(shù)以及在步驟S308得到的第二次譜減系數(shù),執(zhí)行前面描述的譜減增益控制。這種增益控制在信噪比比較低的場合能夠比較好地消除噪音對語音的影響,從而確保語音識別系統(tǒng)在低信噪比場合仍然能夠獲得較高的識別率。最后,在步驟S311,從去除噪聲的信號功率譜提取MFCC特征,得到具有抗噪特性的MFCC特征。
至此已經(jīng)結(jié)合優(yōu)選實施例對本發(fā)明進(jìn)行了描述。本領(lǐng)域技術(shù)人員應(yīng)該理解,在不脫離本發(fā)明的精神和范圍的情況下,可以進(jìn)行各種其它的改變、替換和添加。因此,本發(fā)明的范圍不應(yīng)該被理解為被局限于上述特定實施例,而應(yīng)由所附權(quán)利要求所限定。
權(quán)利要求
1.一種基于自適應(yīng)非線性譜減的語音識別抗噪方法,包括步驟基于平均梅爾頻帶信噪比進(jìn)行語音檢測,當(dāng)平均信噪比大于預(yù)定的信噪比閾值時則判斷為語音信息,否則判斷為噪音信息;根據(jù)在語音檢測步驟中得到的噪音幀更新當(dāng)前的噪音估計,進(jìn)行第一次譜減計算,獲得具有高信噪比的含噪語音;對具有高信噪比的含噪語音進(jìn)行第二次譜減計算以進(jìn)一步消除含噪語音信號中的噪聲。
2.根據(jù)權(quán)利要求1所述的方法,其中還包括計算一段語音信號的梅爾頻帶能量,通過比較求出這段語音幀的梅爾頻帶能量的最小值作為噪音估計的步驟。
3.根據(jù)權(quán)利要求1所述的方法,其中還包括對輸入的新一幀語音信號的梅爾頻帶能量,在每一個梅爾頻帶上比較當(dāng)前的和歷史的梅爾頻帶能量,求取各梅爾頻帶的最小值作為噪音估計,用來更新歷史信息的步驟。
4.根據(jù)權(quán)利要求1所述的方法,其中在進(jìn)行第一譜減計算前還包括對被判斷為噪聲信息的幀和原始信號的功率譜進(jìn)行第一次噪聲估計的步驟。
5.根據(jù)權(quán)利要求4所述的方法,其中進(jìn)一步包括如果語音檢測步驟判斷當(dāng)前語音信號幀為語音信號,則不對噪聲估計進(jìn)行任何更新,繼續(xù)沿用上一次得到的噪聲估計值的步驟。
6.根據(jù)權(quán)利要求1所述的方法,其中進(jìn)行第二譜減計算前還包括基于概率進(jìn)行第二次噪聲估計的步驟。
7.根據(jù)權(quán)利要求6所述的方法,其中所述第二次噪聲估計采用非線性譜減的噪聲去除方法。
8.根據(jù)權(quán)利要求7所述的方法,進(jìn)一步包括在第二譜減計算中把非線性函數(shù)最敏感的區(qū)域設(shè)在信號和語音發(fā)生變化的臨界點(diǎn),利用非線性權(quán)重函數(shù)對噪聲進(jìn)行抑制。
9.根據(jù)權(quán)利要求1所述的方法,進(jìn)一步包括對提取的原始信號的功率譜進(jìn)行平滑處理步驟。
10.根據(jù)權(quán)利要求1或9所述的方法,進(jìn)一步包括根據(jù)信噪比進(jìn)行譜減增益控制的步驟。
11.根據(jù)權(quán)利要求10所述的方法,其中根據(jù)平滑后的原始信號的功率譜,第一次譜減系數(shù)和第二次譜減系數(shù)進(jìn)行所述譜減增益控制,以消除信噪比較低情況下的噪音對語音的影響。
12.根據(jù)權(quán)利要求1所述的方法,其中進(jìn)一步包括在語音檢測步驟前執(zhí)行通過保留一定長度的歷史信息的最小能量來進(jìn)行保守的噪音估計的步驟,以避免將語音幀判斷成為噪音幀。
13.根據(jù)權(quán)利要求1所述的方法,其中預(yù)定的信噪比閾值是5至30之間的一個常數(shù)。
14.一種基于自適應(yīng)非線性譜減的語音識別抗噪方法,包括步驟基于歷史信息進(jìn)行保守的噪音估計;根據(jù)梅爾子帶的平均信噪比的大小進(jìn)行語音檢測;根據(jù)梅爾子帶的信噪比大小進(jìn)行自適應(yīng)噪聲更新;根據(jù)語音檢測結(jié)果估計噪音并進(jìn)行第一次譜減計算;根據(jù)第一次譜減計算的結(jié)果進(jìn)行第二次譜減計算;和根據(jù)信噪比進(jìn)行譜減增益控制以消除語音中的噪音。
15.一種基于自適應(yīng)非線性譜減的語音識別抗噪裝置,包括梅爾頻帶能量計算裝置,用于計算從原始語音信號中提取的功率譜的梅爾頻字子能量;語音檢測裝置,用于基于梅爾子帶的平均信噪比的大小判斷的語音進(jìn)行語音檢測,當(dāng)平均信噪比大于預(yù)定的閾值時則判斷為語音信息,否則判斷為噪音信息;第一譜減計算裝置,用于對判斷為噪音的信號幀進(jìn)行更新噪音的估計,對所有語音信號的語音幀和噪音幀都利用當(dāng)前的噪音估計進(jìn)行譜減操作,以得到高信噪比的含噪語音;第二譜減計算裝置,用于對高信噪比的含噪語音的功率譜進(jìn)行第二次譜減計算;譜減增益控制裝置,用于根據(jù)梅爾頻帶信噪比估計指數(shù)增益控制系數(shù)并進(jìn)行譜減增益控制。
16.根據(jù)權(quán)利要求15所述的裝置,其中還包括噪聲跟蹤裝置,用于根據(jù)計算的梅爾頻帶能量,利用保留一定長度的歷史信息的最小能量來進(jìn)行保守的噪音估計。
17.根據(jù)權(quán)利要求15所述的裝置,其中還包括功率譜提取裝置,用于從輸入的含噪語音中提取功率譜。
18.根據(jù)權(quán)利要求15所述的裝置,其中還包括梅爾頻標(biāo)倒譜系數(shù)特征提取裝置,用于從去噪的語音中提取梅爾頻標(biāo)倒譜系數(shù)特征,輸出具有抗噪特性的梅爾頻標(biāo)倒譜系數(shù)特征。
全文摘要
本發(fā)明揭示一種基于自適應(yīng)非線性譜減的語音識別抗噪方法,包括步驟基于平均梅爾頻帶信噪比進(jìn)行語音檢測,當(dāng)平均信噪比大于預(yù)定的信噪比閾值時則判斷為語音信息,否則判斷為噪音信息;根據(jù)在語音檢測步驟中得到的噪音幀更新當(dāng)前的噪音估計,進(jìn)行第一次譜減計算,獲得具有高信噪比的含噪語音;對具有高信噪比的含噪語音進(jìn)行第二次譜減計算以進(jìn)一步消除含噪語音信號中的噪聲。
文檔編號G10L15/20GK1841500SQ200510062908
公開日2006年10月4日 申請日期2005年3月30日 優(yōu)先權(quán)日2005年3月30日
發(fā)明者賈磊, 馬龍 申請人:松下電器產(chǎn)業(yè)株式會社