毛 維,曾慶寧,龍 超
(桂林電子科技大學 信息與通信學院,廣西 桂林 541004)
在手機和助聽器等設備中,由于受到周圍各類復雜噪聲的影響,導致語音質量的性能急劇惡化。而語音增強算法是一種有效處理環境噪聲并且獲得較好語音質量的方式。傳統的單通道語音增強算法有:譜減[1]、維納濾波[2,3]、最小均方誤差估計[4]等,但是其在真實環境有一定的限制同時會帶來音樂噪聲和語音失真,而基于麥克風陣列的語音增強算法可以利用陣列信號的時空域信息來有效消除噪聲信息。常用的多通道語音增強方法有:波束形成技術和廣義旁瓣抵消。廣義旁瓣抵消器[5](generalized sidelobe canceller,GSC)由Griffiths等提出,因其具有高性能和較低的計算量,在助聽器和移動設備中得到了廣泛的應用。為了克服傳統麥克風小陣列語音增強算法噪聲抑制能力有限的問題,楊立春等[6]提出了一種基于相干性濾波器的廣義旁瓣抵消器語音增強算法。在多噪聲情況[7]下,Kenta Niwa等[8]通過對功率譜密度來估計以減少后置濾波的參數估計誤差,在特定環境中取得了較好的效果。
本文以兩個微型麥克風陣列為基礎,在廣義旁瓣抵消器的前端加入一個基于迭代噪聲功率譜估計的譜修正濾波器,之后在輸出端使用調制域譜減法對殘留噪聲進一步處理。實驗結果表明,該雙微陣列語音增強算法優于現有的廣義旁瓣抵消器算法和相干濾波廣義旁瓣抵消器算法,為此算法更好應用在人工耳蝸和數字助聽器提供了更好的語音質量。
雙微陣列是由2個子陣元個數為M的微型麥克風陣列構成,其中單個子陣列陣元間距大約為1 cm~2 cm,而兩個子陣列之間間距一般設置為15 cm~18 cm,本文采用的單個子陣列的陣元間距為2 cm,子陣列之間的間距為16 cm,其中雙微陣列中單個子陣列中的陣元個數都為2,組成一個2×2的四元陣。
雙微陣列的簡易結構,如圖1所示。

圖1 雙微陣列的簡易結構
本文采用的譜修正濾波器的原理是基于迭代噪聲功率譜密度的雙通道語音增強算法[9-11],利用兩個麥克風通道間的語音信號的互功率密度和自功率譜密度來構造一個譜修正濾波器來對含噪語音進行濾波,從而恢復出期望的純凈語音信號,實現通道間語音信號的增強。
譜修正濾波器原理,如圖2所示。

圖2 譜修正濾波器原理
首先對各通道間的信號進行分幀,并求取每幀的傅里葉變換;第一步,首先引入一個互功率譜減去噪濾波器

(1)
其中,f代表頻率點的位置,n代表幀索引的位置,PXiXi(f,n)、PXjXj(f,n)、PXiXj(f,n)分別為第i個通道的含噪語音信號的自功率譜密度、第j個通道的含噪語音信號的自功率譜密度以及第i通道和第j通道的含噪語音信號的互功率譜密度;而PNiNj(f,n)則是需要根據先驗知識估計的兩個通道間的噪聲功率譜密度。第二步,為了減少第一步過程中所引入的音樂噪聲和較多的語音失真度,采用先驗信噪比和后驗信噪比以及直接判決相結合的方法
(2)
其中,SNRCS(f,n)代表著純凈語音的互功率譜密度與噪聲信號的比值,PSiSj(f,n)則為通道間純凈語音信號的互功率譜密度

(3)

(4)
其中,RPOST(f,n)和RPRIO(f,n)分別為后驗信噪比和先驗信噪比,αDD為遺忘因子,一般取值為0.97;第三步,引入了譜修正濾波器,在兩個相鄰麥克風通道間通過前一幀的數據來使用迭代噪聲功率譜密度的方法對噪聲進行估計

(5)

(6)

(7)
βn為平滑因子,一般取值為0.9;根據該譜修正濾波器對原始含噪信號進行濾波之后得到重建之后的信號為

(8)
廣義旁瓣抵消器[5](generalized sidelobe canceller,GSC)由兩個模塊組成,首先將輸入信號分為上下兩個通道模塊:上通道模塊是約束部分,主要是作為參考信號,下通道模塊則是阻塞矩陣部分。在上通道模塊,對接收到的信號通過一個固定波束形成器后按照約束條件進行加權求和;在下通道模塊,將接收到的信號通過一個阻塞矩陣,去除目標方向上的信號,只保留非目標聲源方向上的信號。圖3為廣義旁瓣抵消器的簡易結構。

圖3 廣義旁瓣抵消器的簡易結構
其中:X′(i)=X(i)*WT,WT=[ω1,ω2,…,ωn],X(i)=[x1(i),x2(i),…,xn(i)],N(i)=X(i)*B(i)。
上式中的n為麥克風采集的通道數量,i為時域信號的索引位置。
經典譜減法由Boll等提出,K.Paliwal等首先提出將調制域譜減法引入語音增強算法中,調制域譜減法[12,13]的基本原理是含噪語音信號x(n)重疊分幀、加窗,經過一次傅里葉變換得到幅度譜X(n,k),對幅度譜再次重疊分幀、加窗,再經過一次傅里葉變換得到調制域幅度譜χ(η,k,m),然后對調制域幅度譜進行傅里葉反變換、重疊相加得到幅度譜,最終將得到的幅度譜再一次進行傅里葉反變換、重疊相加得到增強后的語音信號y(n)。
其中,幅度譜X(n,k)和調制域幅度譜χ(η,k,m)可通過以下公式獲得

(9)

(10)
上式幅度譜中的n代表的是幀索引的位置,k是離散頻率點的位置,w(n-l)則是窗函數,N表示的是幀長;調制域幅度譜中的η是幀的位置,k是離散頻率點的位置,m則是離散調制頻率點的位置,v(η-l)是調制窗函數,M是調制幀的長度。
本文采用的是由兩個微型麥克風陣列構成的雙微陣列,其中通道1、2和通道3、4距離為d,d為2 cm,而由通道1、2和通道3、4構成的子陣列之間的距離為8d;首先利用兩個相鄰通道間的含噪語音信號的自功率譜密度和互功率譜密度構成譜修正濾波器進行預濾波,濾波后的信號通過廣義旁瓣抵消器,最后在廣義旁瓣抵消器的輸出端使用調制域譜減法進行殘留噪聲消除。算法結構框架如圖4所示。

圖4 本文算法結構框架
本次實驗數據采集設備使用的是M-AUDIO多路音頻采集器,錄制環境為教學樓樓頂空曠的天臺,語音和噪聲分別在同樣的環境下錄制,噪聲源的位置位于除了聲源位置外麥克風正前方的任意角度。本次實驗采集由本實驗室的20位同學參與錄制,其中男生15人,女生5人,每段語音大約3 s,語音以及噪聲的采樣率都為44.1 KHz,采樣精度為24比特,圖5給出了-10 dB白噪聲情況下,廣義旁瓣抵消器、相干濾波廣義旁瓣抵消器以及本文算法的增強時域波形圖。

圖5 -10 dB白噪聲情況下各算法的增強時域波形圖
為了驗證本文算法在各類噪聲情況下的優越性,分別從主觀上和客觀上對增強后的語音質量進行評價,常見的語音質量主觀評價方法是平均意見得分(mean opinion score,MOS),MOS得分方法采用五級評分制,從1分到5分,評分越高說明語音質量越好。客觀評價方法[14]則有語音質量綜合評估(perceptual evaluation of speech quality,PESQ)、對數似然比(loglikelihood ratio,LLR)以及分段信噪比(segmental SNR,SNRseg),這3種語音客觀評價方法與語音質量評價的相關系數分別為0.65、0.61、0.31,相關系數越高說明客觀評價方法越可靠。因此本次實驗采用MOS得分和PESQ得分相結合的方法來評價增強后的語音質量。以下仿真實驗分別從white噪聲、babble噪聲、f16噪聲、m109噪聲環境下測試GSC、相干濾波GSC以及本文算法的PESQ得分以及MOS得分,如圖6~圖9和表1、表2所示。

圖6 f16噪聲情況下的各算法的PESQ得分
如以上仿真圖表可知,在f16噪聲、m109噪聲、white噪聲、babble噪聲這4類噪聲情況下,本文算法相比傳統GSC以及相干濾波GSC算法在語音質量方面得到了較大的提升,如在-5 dB噪聲情況下,本文算法的MOS得分相比GSC以及相干濾波GSC算法平均多了0.5分,而在10 dB的噪聲情況下,本文算法的MOS得分相比GSC算法平均提高了1分,而相比相干濾波GSC也提高了0.5分;在PESQ得分方面,本文算法也要優于GSC以及相干濾波GSC算法。因此通過PESQ得分和MOS得分情況來評價增強后的語音質量可知,本文算法在抑制背景噪聲方面優于現有的GSC以及相干濾波GSC算法,同時在語音質量方面也得到了一定的提升。

圖7 m109噪聲情況下的各算法的PESQ得分

圖8 white噪聲情況下的各算法的PESQ得分

圖9 babble噪聲情況下的各算法的PESQ得分
針對復雜噪聲情況下的語音質量較差的問題,本文提出了一種改進GSC結構的雙微陣列語音增強算法。雖然傳統GSC算法對噪聲有一定的抑制,但是其去噪性能較差;而相干濾波GSC算法雖能有效去除相干噪聲,仍然存在大量非相干噪聲以及其它的噪聲殘留。本文提出的算法通過在廣義旁瓣抵消器的前端引入一個譜修正濾波器來濾出通道間的相干噪聲和非噪聲殘留,然后在廣義旁瓣抵消其輸出端使用調制域譜減法對仍有噪聲殘留的含噪語音進行增強處理,實驗結果驗證了本文算法的優越性以及其能提供較好的語音質量。同時,該算法的提出可為在移動互聯網平臺上的應用提供理論基礎,還可用于手機及掌上電腦,為改善語音優聽質量提供新方法。

表1 f16噪聲和m109噪聲情況下的MOS得分

表2 white噪聲和babble噪聲情況下的MOS得分