本發(fā)明屬于信號處理技術和計算機語音信號處理技術領域,具體涉及一種基于陣列麥克風的語音增強方法。
背景技術:
語音增強的目標是從含有噪聲的語音信號中提取盡可能純凈的原始語音,抑制背景噪聲,提高語音的質量并提高聽者的舒適度,使聽者不會感到疲勞。它在解決噪聲污染、改善語音質量、提高語音可懂度等方面發(fā)揮著越來越重要的作用。語音增強技術是語音信號處理發(fā)展到實用階段后需要迫切解決的問題。語音識別中抗噪聲干擾是提高識別率的一個重要環(huán)節(jié)。隨著語音識別應用的不斷擴大并進入實用階段,急切需要采用更為有效的語音增強技術,加強語音識別特征,使語音易于識別。語音信號是一種復雜的非線性信號,如何從各種混合語音信號中,特別是從同聲道語音干擾中分離出所需要的語音信號是一個很難的數字信號處理問題,任何算法都不可能將噪聲完全濾除,都很難在所有噪聲都存在的情況下保持較高的主觀及客觀的評價性能。
基于麥克風陣列語音增強方法典型的工作流程如圖1所示,具體流程主要包括下列步驟:
1)根據需求,設計滿足需求的麥克風陣列結構。
2)多通道語音信號采集系統(tǒng),用于采集多通道語音信號;
3)對采集的多通道語音信號進行預處理、語音激活檢測、通道延時估計、目標信號方位估計等等的預處理操作。
4)利用陣列語音增強算法進行語音增強,得到較為純凈的語音信號。
步驟1)中,設計一個合適的麥克風陣列結構是非常重要的。
麥克風陣列拓撲結構可以分為一維線性陣列(包括等距陣列、嵌套線性陣以及非等距陣列)、二維面陣(包括均勻和非均勻圓形陣、方陣)與三維立體陣列。實際中,應用較多的有均勻線陣列、嵌套線陣、均勻面陣等。研究表明,陣列拓撲結構對麥克風陣列語音系統(tǒng)的影響較大。且陣列拓撲結構的設計與多通道信號模型的選擇有密切關系。
根據聲源距離陣列的遠近,可以將聲音信號模型分為遠場模型和近場模型。兩者的區(qū)別在于:遠場模型使用平面波模型,它忽略各個通道接收信號的幅度差,信源相對陣列來說只有一個入射角度,各個陣元之間的延時長度呈線性關系;近場模型使用球面波形,它考慮接收信號間的幅度差,且對于每一個陣元來說都有一個入射角度,各個陣元間的延時長度沒有明顯關系。近場和遠場的劃分沒有一個絕對的標準,通常認為當信源和陣列中心的距離遠遠大于信號波長時該信源處在遠場;反之則為近場。
通常,麥克風陣列可以看作是一個用來進行空間采樣的裝置,與時間采樣相似,陣列采樣頻率必須足夠高才不會引起空間模糊,避免空間混疊。對于一個等距線陣,空間采樣率定義為:即空間采樣頻率Us由麥克風陣間距d決定。考慮到同一信號的相鄰采樣差別為一個相移,定義歸一化的空間頻率為:其中λ表示波長,Φ表示入射角度。為避免空間混疊,要求歸一化頻率U滿足:此時入射角度對應范圍是-90°≤Φ≤90°,因此相鄰麥克風間隔(麥克風陣間距)應該為:
上述空間采樣定理揭示了麥克風陣間距、信號頻率和來波方向(入射角度Φ)三者之間關系。如果不滿足空間采樣定理,則會出現空間混疊現象。
對于一個均勻線性麥克風陣列,定義rm為聲源到第m個麥克風陣列中心的直線距離。則第m個麥克風輸出的離散信號可以表示為:xm[n]=s[n-Δnm]+ηm[n],其中s[n]為聲源信號,Δnm為第m個麥克風接收到的信號與聲源信號之間的樣本點延遲,ηm[n]為第m個麥克風接收到的噪聲信號。令Δτm為第m個麥克風接收到的信號與聲源信號之間的時間延遲,則有如下關系:其中fs為時間采樣頻率,c為聲波在空間中的傳播速度。由此可以建立麥克風陣列輸出的陣列信號矩陣:
x1[n]=s[n-Δn1]+η1[n]
x2[n]=s[n-Δn2]+η2[n]
xN[n]=s[n-ΔnN]+ηN[n]
N為陣列麥克風的陣元個數。
在步驟3)中,可視不同的增強方法或曾或減。
在預處理中,預加重和預濾波是由語音信號特性所決定的。預濾波的目的有兩個:①抑制輸入信號各頻域分量中頻率超出fs/2的所有分量,以防止混疊干擾;②抑制50Hz的電源工頻干擾。這樣預濾波器必須是一個帶通濾波器,設其上、下截止頻率分別為fH和fL,則fH=3400Hz,fL=60~100Hz,采樣頻率fs=16000Hz。
由于語音信號的平均功率譜受聲門激勵和口鼻輻射影響,高頻端大約在800Hz以上按6dB/倍頻跌落,所以在求語音信號頻譜時,頻率越高的相應成分越小,高頻部分的頻譜比低頻部分的難求,為此要在預處理中進行預加重處理。預加重的目的是提升高頻部分,使信號的頻譜變得平坦,保持在低頻到高頻的整個頻帶中,能用同樣的信噪比求頻譜,以便于頻譜分析或聲道參數分析。預加重可由提升高頻特性的預加重數字濾波器來實現,它一般是一階數字濾波器,基于其工作原理,可以得到對應的加重方式為:s′(n)=s(n)-αs(n+1),為了恢復原信號,需要對做過預加重的信號頻譜進行去加重處理,即s′′(n)=s′(n)+βs′(n+1)其中,s(n)表示聲源信號,s′(n)表示加重處理后的信號,s″(n)表示去加重處理后的信號,與β為加重因子,一般取-0.8~0.95。
由于語音信號是一種非平穩(wěn)的時變信號,其產生過程與發(fā)聲器官的運動緊密相關。而發(fā)聲器官的狀態(tài)速度較聲音振動的速度緩慢的多,因此語音信號可以認為是短時平穩(wěn)的。研究發(fā)現,在5~50ms的范圍內,語音頻譜特征和一些物理特征參數基本保持不變。因此可以將平穩(wěn)過程中的處理方法和理論引入到語音信號的短時處理當中,將語音信號劃分為很多短時的語音段,每個短時的語音段稱為一個分析幀。這樣,對每一幀信號處理就相當于對特征固定的持續(xù)信號進行處理。幀既可以是連續(xù)的,也可以采用交疊分幀,一般幀長取10~30ms。取數據時,前一幀和后一幀的交迭部分稱為幀移,幀移與幀長之比一般取為0~1/2。對取出的語音幀要經過加窗處理,即用一定的窗函數w(n)與信號相乘,從而形成加窗語音。加窗的主要作用在于減少由分幀處理帶來的頻譜泄露,這是因為,分幀是對語音信號的突然截斷,相當于語音信號的頻譜與矩形窗函數頻譜的周期卷積。由于矩形窗頻譜的旁瓣較高,信號的頻譜會產生“拖尾”,即頻譜泄露。為此,可采用漢明窗,因為漢明窗旁瓣最低,可以有效地克服泄露現象,具有更平滑的低通特性,得到的頻譜比較平滑。
陣元間時間延時的估計在整個麥克風陣列語音增強算法中有很重要的作用:它和信號頻率共同決定了波束的指向性以及用于對聲源的方位估計。時間延時估計精度直接影響語音處理系統(tǒng)的性能。由于麥克風陣列對語音信號的空間采樣,使得麥克風接收到的信號相對與參考麥克風而言都有一定的延時。為使波束形成的輸出的最大指向對準目標信號源,保持各個麥克風接收到的期望語音信號同步是解決該問題的重要手段。典型的時延估計方法有廣義互相關時延估計方法,基于自適應濾波的時延估計方法、自適應特征分解、高階累積量估計方法等等。其中廣義互相關時延估計方法應用最為普遍。假設一對麥克風接收到語音信號模型為:x1(t)=s(t)+η1、x2(t)=s(t-D)+η2,其中s(t)為聲源信號,x1(t)和x2(t)分別是兩個麥克風接收的信號,D為兩個麥克風之間的聲音傳播延時,η1和η2為加性背景噪聲。假設s(t)、η1、η2互不相關,這里忽略信號幅度衰減。則x1(t)和x2(t)之間的廣義互相關函數R12(τ)為:
其中X1(ω)和X2(ω)分別為x1(t)和x2(t)的傅立葉變換,ψ12(ω)為廣義互相關加權函數。針對不同的情況選擇不同的加權函數,使得R12(τ)具有比較尖銳的峰值,則峰值處即為兩個麥克風之間的時延。
語音激活檢測又稱語音檢測、語音端點檢測,用于精確地確定輸入語音的起點和終點,以保證語音處理系統(tǒng)良好的性能,對于語音和噪聲的處理方法不同,如果不能判斷當前語音幀是含噪語音幀或是噪聲幀的話,就不能進行適當的處理。在語音增強系統(tǒng)中,為了得到更多的背景噪聲特性,語音端點檢測更注重于如何準確的檢測出無音段。語音知識的學習和噪聲源信息估計的積累都依賴于準確的端點檢測。通常的語音激活檢測是基于語音幀來進行的,語音幀的長度在10~30ms不等。語音激活檢測的方法可以綜述為:從輸入信號中提取一個或一系列的對比特征參數,然后將其和一個或一系列的門限閾值進行比較。如果超過門限則表示當前為有音段,否則就表示當前為無音段。
語音檢測一般有兩個步驟:
第一步:基于語音信號的特征。用能量、過零率、熵(entropy)、音高等參數,以及它們的衍生參數來判斷信號流中的語音/非語音段。
第二步:在信號流中檢測到語音信號后,判斷此處是語音的開始點或是結束點。在語音系統(tǒng)中,由于信號多變的背景和自然對話模式而更容易使句中有停頓(非語音),特別是在爆發(fā)聲母前重是無聲間隙。因此這種開始或結束的判斷尤為重要。
目前語音端點檢測所采取的方法大體可以分為兩類:
第一類是噪聲環(huán)境下基于HMM模型的語音信號端點檢測的方法,該方法要求背景噪聲保持平穩(wěn)且信噪比較高。
第二類方法是基于信號的短時能量進行檢測的算法,它通過對背景噪聲能量的統(tǒng)計,定出能量門限,利用能量門限來確定語音信號起始點。
步驟4)中,利用語音增強算法獲取較為純凈的語音信號。
語音增強技術主要可以分為基于單通道的方法和多通道陣列麥克風的方法。單通道語音增強方法種類繁多,大都基于各種噪聲消除方法結合語音信號的特征來研究具有針對性的算法,其理論成熟也是最簡單有效的是譜減法(SS:Spectral Subtraction)語音增強。單個傳感器拾音會受到場地、距離、應用場合的限制,因此拾音效果將大打折扣,后續(xù)的語音增強也就會困難重重。
譜減法的基本原理是:在頻域將帶噪語音的功率譜減去噪聲的功率譜,得到語音的功率譜估計,開方后就得到語音幅度估計,將其相位恢復后再采用逆傅立葉變換恢復時域信號??紤]到人耳對相位的感覺不靈敏,相位恢復時所采用的相位是帶噪語音的相位信息。由于語音是短時平穩(wěn)的,所以在短時譜幅度估計中認為它是平穩(wěn)隨機信號。
假設s(n)、η(n)和x(n)分別代表語音、噪聲和帶噪語音,S(ω)、Γ(ω)和X(ω)分別表示其短時譜。假設s(n)、η(n)不相關且噪聲為加性噪聲。于是得到信號的加性模型:x(n)=s(n)+η(n),經過加窗處理后的信號分別表示為xw(n),sw(n),ηw(n),則有:xw(n)=sw(n)+ηw(n),對其做傅立葉變換,得:Xw(ω)=Sw(ω)+Γw(ω),因此對功率譜有:|Xw(ω)|2=|Sw(ω)|2+根據觀測數據估計|Xw()|2,其余各項必須近似為統(tǒng)計均值。由于s(n)、η(n)獨立,則互功率統(tǒng)計均值為0,所以原始語音的估值為:其中,估計值不能保證是非負的,這是因為在估計噪聲時存在誤差,當估計噪聲平均功率大于某幀帶噪語音功率時,該幀得出的估計值就會出現為負的情況,這些負值可以通過改變它們的符號使之變?yōu)檎担部梢灾苯咏o它們置零。將恢復相位并做短時傅立葉反變換IFFT就能得到語音信號的時域估計:
當前,麥克風陣列語音增強算法主要有波束形成、子空間分解、盲源分離等。其中,盲源分離(BSS)是指在不知道或無法或得源信號和混合方式的情況下僅由觀測信號恢復源信號的過程。即盲源分離可以不依賴當前事件的先驗條件,可以用較少的麥克風就能進行語音增強,該算法的中心問題是解決多個人語音相互干擾混疊情況下將各說話人的語音分離出來,達到對各個目標語音增強的目的。
獨立分量分析(ICA)是盲信號分離的有效方法之一,屬于線性瞬時混合盲信號處理,該方法不依賴于源信號類型相關的詳細知識或信號傳輸系統(tǒng)特性的精確辨識,是一種有效的冗余取消技術。該方法根據代價函數的不同,可以得到不同的ICA算法,如信息最大化(infomax)算法、Fast ICA算法、最大熵(M E)和最小互信息(MM I)算法、極大似然(ML)算法等。其基本原理為:將所獲得信號看為目標信號經過一個線性變換混合而成,為了獲得目標信號就需要找到一個逆線性變換將獲得的信號分解開來,從而達到信源分離的目的。
在無噪聲的情況下,用X=[x1(t) x2(t) … xN(t)]′表示麥克風陣列接收到的一組觀察信號,其中t為時間或是樣本序號,N為麥克風個數,假設其由獨立成分線性混合而成,即其中A為某個未知的滿秩矩陣。所以其信號模型的向量表達式為X=AS。
在有噪聲的情況下,假設噪聲是加性噪聲。則其信號模型的表達式為:X=AS+Γ,其中Γ=[η1 η2 … ηN]是噪聲向量。對X=AS+Γ做變換可得:X=A(S+Γ0),Γ=AΓ0,因此可以得出,帶噪信號模型任然是基本的ICA模型,只是獨立成分由S變換為在ICA基本信號模型下,假設待求分離矩陣為W,分離后信號矩陣為Y,則有如下表達式:Y=WX=WAS。ICA的最終目的是尋找一個最優(yōu)或是較優(yōu)的分離矩陣W使得分離后信號矩陣Y中各個信號相互獨立并盡可能的逼近源信號。
當前,基于麥克風陣列的語音增強都是對單個目標進行,從而限制了陣列拾音裝置的有效拾音效果,且傳統(tǒng)的單目標增強并不能滿足實際應用的需求。
技術實現要素:
本發(fā)明為了解決目前在基于陣列語音信號的多目標增強的技術問題,提出了一種基于盲源分離與譜減法的麥克風陣列多目標語音增強方法。
本發(fā)明的基于盲源分離與譜減法的麥克風陣列多目標語音增強方法,包括下列步驟:
步驟1:通過二維面陣的麥克風陣列采集帶噪語音信號,得到麥克風陣列的各通道的采集信號,其中麥克風陣列數目大于或等于4;
步驟2:分別對各通道的采集信號執(zhí)行步驟201~205:
步驟201:對采集信號進行帶通濾波處理,屏蔽非語音段噪聲和干擾;再對帶通濾波后的信號進行預加重處理,分幀、加窗處理,得到幀信號;
然后對每幀信號進行頻域轉換,即對各幀信號進行短時傅立葉變換,并計算每幀的功率譜;同時計算并保留每幀的相位譜,以備譜減法過程中的相位恢復;
步驟203:對每幀的幀信號進行語音檢測,判定當前幀是語音幀還是噪聲幀,基于噪聲幀估計噪聲功率譜;
步驟204:基于譜減法去除語音幀的功率譜中的噪聲功率譜,得到每幀的語音功率譜估計;
步驟205:對語音功率譜估計開方,并基于對應幀的相位譜進行相位恢復后,再進行短時傅立葉反變換,得到語音幀的時域估計信號;
步驟2中是對單通道的采集信號進行信號預處理,將采集信號劃分為很多短時的語音段(帶噪),即幀信號,再分別對每幀的幀信號進行譜減法處理,以降低語音幀的背景噪聲。
步驟3:對所有通道的語音幀的時域估計信號采用盲源分離法進行信源分離處理,得到不同信源的目標信號;
步驟4:對同一信源的目標信號進行去加重、去窗、幀重組處理,得到不同信源的目標語音信號。
綜上所述,由于采用了上述技術方案,本發(fā)明的有益效果是:(1)解決了傳統(tǒng)的單通道語音增強方法處理環(huán)境背景噪聲,算法簡單,對資源需求不高的技術問題;(2)不再依賴陣列信號處理算法進行空間濾波,不需要考慮寬帶波束算法,降低了算法結構的復雜度;(3)利用盲源分離算法實現了對目標信號增強,不再單一或是輪換的進行單目標信號增強。
附圖說明
圖1是傳統(tǒng)語音增強系統(tǒng)示意圖。
圖2是本發(fā)明具體實施方式的實現系統(tǒng)示意圖。
圖3是語音檢測的流程圖。
圖4是譜減法單通道語音增強方法流程圖。
具體實施方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面結合實施方式和附圖,對本發(fā)明作進一步地詳細描述。
參見圖2,本發(fā)明的多目標語音增強方法,首先對二維面陣的麥克風陣列采集的各單通道信號(語音信號)進行信號預處理,將單通道的語音信號劃分為很多短時的語音段,得到幀信號,以便于后續(xù)的語音激活檢測、譜減法處理。其中信號預處理包括帶通濾波、預加重處理,交疊分幀、漢明窗加窗處理。
對單通道的幀信號分別進行語音激活檢測、譜減法處理,再對同一語音幀的所有通道進行盲源分離,得到不同源信號的目標信號,再對應信號預處理的逆反操作,對同一源信號的目標信號進行去加重,去漢明窗處理,幀重組得到各目標語音信號,實現對多目標語音的增強處理。
針對室內環(huán)境中的聲源特性及噪聲場特性,采用散射噪聲場模型和近場聲源模型,對實際環(huán)境中的多通道帶噪語音信號進行建模。通過64個麥克風組成的8×8的平面陣列來采集空間中的語音信號。
用X=[x1(t) x2(t) … xj(t) … xN(t)]′表示各通道輸出的帶噪語音信號,其中j表示麥克風通道序號。
則對各通道輸出的帶噪語音信號進行信號預處理后得到的陣列信號(幀信號)為Xpw,則Xpw=[x1pw(n) x2pw(n) … jpw(n) … xNpw(n)]′,其中n=1,2,……L,L為幀長,w為幀號。
對幀信號Xpw作短時傅立葉變換,得到幅度譜|Xpw(ω)和相位譜Φpw(ω)。其中ω為頻率采樣點,是角頻率從0到2π的N等分均勻采樣。所以有:
|Xpw|=[|X1pw(ω)| |X2pw(ω)| … |Xjpw(ω)| … |XNpw(ω)|]′
利用|Xpw|=[|X1pw(ω)| |X2pw(ω)| … |Xjpw(ω)| …|XNpw(ω)|]′,按照圖3所示流程圖進行語音起始端點和結束端點的檢測,即判斷當前幀是噪聲幀還是語音幀,并利用判斷結果進行譜減消噪。其中,語音起始端點(起始幀)和結束端點(結束幀)的檢測的具體過程為:
采用公式計算每一幀的語音能量,其中N為幀長,w為幀的編號,1≤w≤L,L為幀數,ω為每一幀中的各點;
初始化門限閾值T,通過對背景噪聲能量的統(tǒng)計,設置門限閾值T的初始值
然后基于門限閾值T對每幀進行類別判定,判定當前幀是噪聲幀還是語音幀,同時基于最近的k幀的噪聲幀對門限閾值T進行更新:
a.計算當前幀的語音能量Mw,若Mw大于T,則判定當前幀為語音幀,否則判定為噪聲幀;
b、若當前幀為噪聲幀,則基于最近的k(經驗值,通常取值為大于等于10)幀噪聲幀對門限閾值T進行更新:
b1:計算最近k幀噪聲幀的平均語音能量EMN、語音能量最大值和能量最小值EAX,EMIN;
b2:根據公式T=min[a×(EAX-EMIN)+EMN,b×EMN](0<a<1,1<b<10)得到更新后的門限閾值T;
c、若當前幀為語音幀,則判定所有幀是否處理完畢,若是,則端點檢測完畢,否則,繼續(xù)對下一幀重復步驟a~c。
進一步的,還可以利用短時過零率對語音幀和噪聲幀的判定結果進行檢驗,以防止誤判。
參見圖4,基于檢測出的所有噪聲幀,可以估計得到噪聲功率譜,然后基于譜減法除去各語音幀的估計噪聲,即用語音幀的功率譜減去當前估計得到的噪聲功率譜,得到語音幀的語音功率譜估計,再對語音功率譜估計開方,并基于各語音幀的相位譜進行相位恢復后,再進行短時傅立葉反變換,得到語音幀的時域估計信號,即單通道的增強語音信號。
上述完成后,利用自然梯度ICA來完成盲源分離,其具體處理過程為:
(1)若當前觀測信號X(多個單通道增強語音信號序列)的均值不為零,那么就先從觀測信號X中減去其均值;
(2)選擇一矩陣B,使協方差矩陣E{VVT}為單位矩陣I,其中V=BX,向量V的各個分量之間是不相關的,且具有單位方差;
(3)基于奇異值分解的白化處理:首先估計X的方差Rx=E{XXT},Rx是一個實Hermitian陣;其次對Rx進行奇異值分解其中U=[u1,u2,…,un]的列是Rx的左奇異向量,白化處理的目的是為了減弱語音信號混合后的相關性;
(4)由于σ1≥σ2≥…≥σm>0;σm+1=…σn;(m≤n)從而估計出源信號的數目為m;
(5)最后進行正交變換:
U=[u1,2,…,n]
=BX,Um=[u1,2,…,m]
根據公式得到回復信號Y,其中,P既可稱為性能矩陣,又可稱為收斂矩陣,W表示獨立分量分析ICA中的分離矩陣,A表示ICA中的混合矩陣,S表示源信號。
以上所述,僅為本發(fā)明的具體實施方式,本說明書中所公開的任一特征,除非特別敘述,均可被其他等效或具有類似目的的替代特征加以替換;所公開的所有特征、或所有方法或過程中的步驟,除了互相排斥的特征和/或步驟以外,均可以任何方式組合。