朱訓(xùn)諭,潘 翔
(浙江大學(xué)信息與電子工程學(xué)院,浙江 杭州 310027)
麥克風(fēng)陣列在室內(nèi)語(yǔ)音信號(hào)處理方面有著重要地位。麥克風(fēng)陣列由多個(gè)在不同空間位置的麥克風(fēng)組成,線陣是其中一種。相比于單個(gè)麥克風(fēng),麥克風(fēng)陣列接收語(yǔ)音信號(hào)時(shí)可以獲得更多的空域信息,同時(shí),時(shí)域、頻域與空域聯(lián)合處理可以避免語(yǔ)音去噪與失真之間的權(quán)衡。
傳統(tǒng)的改進(jìn)最小控制遞歸平均(Improved Minima Controlled Recursive Averaging, IMCRA)算法[1]只能用于單通道的語(yǔ)音信號(hào)處理,對(duì)麥克風(fēng)線陣采集的多通道語(yǔ)音信號(hào)無(wú)法進(jìn)行有效處理。波束形成技術(shù)通過對(duì)陣列接收信號(hào)的線性組合得到期望信號(hào),一般而言,加權(quán)操作可由增強(qiáng)某一特定方向的信號(hào),抑制其他方向的信號(hào)[2]。其中,自適應(yīng)波束形成可以在特定方向形成“零陷”以抑制干擾,能夠有效提高波束圖的性能。最小方差無(wú)失真響應(yīng)(Minimum Variance Distortionless Response, MVDR)方法就是其中一種經(jīng)典的算法。因此,本文在IMCRA算法的基礎(chǔ)上,采用MVDR波束形成對(duì)多通道語(yǔ)音信號(hào)進(jìn)行第一階段處理,第二階段使用IMCRA算法對(duì)第一階段輸出進(jìn)行處理。
MVDR方法是一種旨在最大化信干噪比的自適應(yīng)波束形成算法,又被稱為最佳波束形成器[3]。
假設(shè)M元陣列接收信號(hào)z(n)由期望信號(hào)s(n)、干擾i(n)以及白噪聲n(n)構(gòu)成:
z(n)=s(n)+i(n)+n(n)
(1)
MVDR波束形成器被定義為一個(gè)矢量w在無(wú)失真約束下,使捕獲信號(hào)z(n)的平均功率最小化,wHv=1,通過波束形成保持干凈的語(yǔ)音s(n)不變。其中,v為導(dǎo)向矢量,w的估計(jì)如下:
(2)
則期望信號(hào)s(n)為:
(3)
IMCRA算法通過計(jì)算條件語(yǔ)音存在概率,估計(jì)噪聲功率譜,然后通過跟蹤包含噪聲的語(yǔ)音譜中只含噪聲的區(qū)域來(lái)更新噪聲的估計(jì)值。
定義y(n)為帶噪語(yǔ)音信號(hào),x(n)為純凈語(yǔ)音信號(hào),d(n)為非相干噪聲,經(jīng)傅里葉變換后在頻域中的信號(hào)關(guān)系為:
Y(λ,k)=X(λ,k)+D(λ,k)
(4)
式中,λ和k分別為頻點(diǎn)序號(hào)和時(shí)域幀數(shù)。
進(jìn)行第一輪平滑估計(jì),得到噪聲功率譜結(jié)果如下:
(5)
式中,αd為時(shí)變平滑參數(shù),p(λ,k)為語(yǔ)音信號(hào)存在的概率,β為補(bǔ)償系數(shù)。
由此可得帶噪語(yǔ)音信號(hào)的后驗(yàn)信噪比和先驗(yàn)信噪比分別為:
(6)
(7)
式中,α為比例系數(shù),GH1(λ,k)為對(duì)數(shù)譜增益函數(shù)[4]。
假設(shè)頻域上純凈語(yǔ)音信號(hào)和非相干噪聲均服從高斯分布,則信號(hào)存在概率為:
(8)
式中,q(λ,k)為語(yǔ)音信號(hào)不存在概率,ν(λ,k)為語(yǔ)音信號(hào)的能力均值[5]。
首先,對(duì)帶噪語(yǔ)音信號(hào)進(jìn)行平滑:
S(λ,k)=αsS(λ-1,k)+(1-αs)Sf(λ,k)
(9)
(10)
式中,αs為平滑系數(shù),Sf(λ,k)為每幀帶噪語(yǔ)音功率譜經(jīng)平滑后的功率譜值,b(i)為漢明窗。
再對(duì)平滑輸出信號(hào)進(jìn)行最小值搜索:
Smin(λ,k)=min{Smin(λ-1,k),S(λ,k)}
(11)
然后,求解語(yǔ)音信號(hào)存在的概率:
(12)
根據(jù)語(yǔ)音信號(hào)存在概率進(jìn)行二次平滑和最小值搜索,搜索最小值過程和第一次平滑相同。則語(yǔ)音信號(hào)不存在概率求解如下:
(13)
最后,根據(jù)式(5)更新噪聲譜估計(jì)。
圖1 基于麥克風(fēng)線陣的語(yǔ)音增強(qiáng)結(jié)構(gòu)
基于麥克風(fēng)線陣的語(yǔ)音增強(qiáng)算法分為兩級(jí),其原理結(jié)構(gòu)如圖1所示。
算法第一級(jí)采用頻域波束形成的方法,首先,通過傅里葉變換將寬帶信號(hào)變換至頻域,并分成若干窄帶信號(hào);然后,對(duì)個(gè)陣元同頻率的窄帶信號(hào)做MVDR波束形成;最后,將各窄帶波束形成輸出相加求平均,即可得到該寬帶信號(hào)的頻域波束形成響應(yīng)。多通道的語(yǔ)音信號(hào)進(jìn)行頻域波束形成處理,得到單通道的語(yǔ)音信號(hào)輸出,即可用于第二級(jí)IMCRA算法處理。步驟如下。
(1)使用一階遞歸平滑方法估計(jì)輸入語(yǔ)音信號(hào)的噪聲功率譜。
(2)計(jì)算帶噪語(yǔ)音信號(hào)的后驗(yàn)信噪比和先驗(yàn)信噪比。
(3)對(duì)帶噪語(yǔ)音信號(hào)進(jìn)行平滑處理,得到信號(hào)的平滑功率譜S(λ,k),對(duì)該平滑輸出信號(hào)進(jìn)行最小值搜索,得到Smin(λ,k)。
(5)根據(jù)式(8)計(jì)算語(yǔ)音信號(hào)存在概率p(λ,k)。
(6)更新時(shí)變平滑參數(shù)和平滑噪聲功率譜。
實(shí)驗(yàn)測(cè)試音頻選自巴伊蘭大學(xué)(Bar-llan, BIU)語(yǔ)音和聲學(xué)實(shí)驗(yàn)室的RIR-DATABASE[6]。實(shí)驗(yàn)采用的陣列為8個(gè)麥克風(fēng)組成的線陣,陣元間距為8 cm。聲源有2個(gè),分別位于0°和90°,距離分別為1 m和2 m,混響時(shí)間設(shè)定為T60=160 ms。實(shí)驗(yàn)場(chǎng)景示意圖如圖2所示。該數(shù)據(jù)集采樣頻率為48 kHz,經(jīng)重采樣為8 kHz。使用本文算法和傳統(tǒng)MVDR對(duì)該語(yǔ)音信號(hào)進(jìn)行處理,結(jié)果如圖3—8所示。
圖2 實(shí)驗(yàn)用麥克風(fēng)線陣示意圖
圖4 MVDR處理后的語(yǔ)音信號(hào)時(shí)域圖
圖5 本文算法處理后的語(yǔ)音信號(hào)時(shí)域圖
圖6 原始語(yǔ)音信號(hào)頻譜圖
圖7 MVDR處理后的語(yǔ)音信號(hào)頻譜圖
圖8 本文算法處理后的語(yǔ)音信號(hào)頻譜圖
從圖3—8可以看出:MVDR波束形成對(duì)語(yǔ)音信號(hào)有略微的抑制作用,而經(jīng)本文算法處理后,原始信號(hào)的信噪比得到較大的改善,并對(duì)噪聲有比較好的抑制作用,實(shí)現(xiàn)了噪聲背景下的語(yǔ)音信號(hào)增強(qiáng)。
本文從IMCRA算法入手,在該算法基礎(chǔ)上加入MVDR波束形成算法,以適應(yīng)麥克風(fēng)線陣采集的語(yǔ)音信號(hào)的多通道特點(diǎn)。本文算法能較好較快地處理多通道語(yǔ)音信號(hào),并實(shí)現(xiàn)去噪和語(yǔ)音增強(qiáng)的目的。但仍有幾個(gè)問題值得深入研究,如低信噪比下的降噪問題。