張開生,趙小芬
(陜西科技大學 電氣與控制工程學院,陜西 西安 710021)
語音增強是從輸入語音中提取純凈的語音信號,去除無用的噪聲干擾,進而提高語音的可懂度和清晰度等[1-2]。傳統的語音增強方法包括維納(Wiener)濾波[3]、譜減法[4]和最小均方差法[5]等?;诮y計模型的無監督語音增強方法通常假定噪聲處于一個穩定的水平,雖然可以省去訓練的階段,但是現實環境中噪聲往往是非平穩的,因此傳統語音增強難以滿足實際需求。相較于無監督的語音增強方法,有監督模型訓練的語音增強方法更能夠適應實際非平穩的噪聲環境[6]。非負矩陣分解(non-negative matrix factorization,NMF)[7]是近年來快速興起的一種有監督模型的方法。文獻[8]將語音存在概率融進NMF中,實現無監督語音增強,取得了一定的增強效果。文獻[9]將NMF算法進行擴展,使用Kulback-Leibler(KL)實現具有監督分離效應的NMF,用以語音增強。文獻[10]將心理學掩蔽特性考慮進語音增強中,并建立感知掩蔽函數,在一定程度上增強了NMF的性能。但是,目前對于NMF增強語音信號時,往往忽略了時間屬性對高維矩陣分解產生的影響,并且進行NMF時,稀疏度難以控制,這些都有可能影響語音的增強性能。另外,在重構語音時,采用逆短時傅里葉變換往往沒有考慮信號失真及語音可懂度差的問題,造成重構后的語音質量難以令人滿意。
基于上述分析,利用NMF增強語音信號具有獨特優勢,但仍有改進空間。與此同時,大部分研究并未將時間約束條件考慮進去。針對上述矩陣分解稀疏度難以控制、信號重構效果不理想等問題,本文提出一種雙重約束NMF與改進正交匹配追蹤(orthogonal matching pursuit,OMP)算法的語音增強,采用雙重約束方式改進NMF,采用改進OMP算法代替傳統逆短時傅里葉變換進一步提升重構精度。通過大量的實驗,證明了本文算法的有效性。
文獻[11]研究發現:在非負矩陣分解時,高維數據具有與時間相關的屬性,然而這種屬性隨著降維過程損失嚴重,勢必影響到語音增強后的性能。目前,考慮到時間屬性的NMF語音增強依然匱乏。受到文獻[12]的啟發,本文將時間屬性考慮進NMF分解中,假設第t個時間點特征向量U(t)為:
Ut≈Vt(Wt)T,
(1)
X=VW+E,
(2)
其中:E為逼近誤差。矩陣X的具體分解過程為:
(3)
其中:V為基矩陣,W為系數矩陣,矩陣X中的每一列向量由基矩陣V中r個列向量的線性組合來表示,r的取值不僅影響矩陣分解后的V和W,而且還關系到低維特征的質量。考慮時間約束因素之后,r的取值同時受到維數、分解誤差以及時間順序的約束,進而將r值作為自變量,建立因變量模型為:
(4)
其中:T為具有高維屬性的時間序列;r為基矩陣維度;?為具有時間屬性的特征維度大小。將時間點信息融合進NMF中,文獻[13]采用最小化歐幾里得距離的方式找到目標函數,但是采用KL散度模型來構建目標函數能提高算法的精度。因此,本文使用KL散度選取目標函數,并使目標值達到最小值。使用KL優化NMF的表達式為:
(5)
其中:i∈[1,N];j∈[1,L];當δ為0時,式(5)為標準的KL非負矩陣分解,按照式(5)迭代計算,就可保證將高維矩陣分解為帶有時間屬性的低維矩陣。
在時頻域中語音信號存在稀疏性,稀疏度在NMF分解成基矩陣及系數矩陣的時候,難以控制,容易造成過度擬合或殘余噪聲過多的情況,因此將稀疏約束系數引入,用于控制系數矩陣W的稀疏度。得到目標函數[14]為:
(6)
其中:D為目標函數;λ、γ分別為E和W的稀疏度。為了降低算法的復雜度,將正交約束表示在目標函數中,以減少計算量,得到表達式為:
(7)
其中:ζ為正交因子,采用文獻[15]的更新規則。首先,將非負矩陣V和W記為:
(8)
進而有:
(9)
將最小二乘迭代規則應用于此,得到更新規則為:
(10)
其中:.*為矩陣點乘形式。
實際上,OMP算法主要是重構出原始語音信號,但是只關注純凈語音信號,對于噪聲信號來說,噪聲分量會隨著迭代次數的增加而增大。因此,為了保證重構語音的純凈性,必須對重構階段加以控制,通過設置能量閾值來控制重構階段。假設S(n)為第n幀純凈語音信號的能量,N(n)為第n幀的噪聲能量,那么其能量閾值[16]可以表示為:
(11)
其中:L為總幀數;Nm(n)為第n幀的噪聲能量。當恢復的能量閾值大于τ時,可認為語音分量已被提取完畢,則停止迭代。如果繼續迭代,將會使部分語音信號被噪聲信號所替代,降低語音增強的性能。由于OMP在進行信號重構的時候,使用最小二乘法逼近測量信號,對非線性問題求解精度低,并且使得重構后噪聲信號逐漸累加,而共軛梯度法收斂快,并且可以改善矩陣求逆過程的運算量。因此,本文將OMP求解中的最小二乘法改進為共軛梯度法計算估計值,可得:
(12)
其中:αn為步長,然后不斷更新步長直到共軛梯度達到n。
輸入語音信號為純凈語音信號與噪聲信號的疊加:
x(t)=s(t)+n(t),
(13)

圖1 語音增強算法流程框圖
其中:x(t)、s(t)和n(t)分別為輸入語音信號、純凈語音信號和噪聲信號。本文語音增強算法的流程框圖如圖1所示。
整個算法包括訓練及增強兩部分。在訓練階段,首先利用短時傅里葉變換(short-time Fourier transform,STFT)對純凈語音信號和噪聲信號進行轉換,得到幅度譜,這是因為語音信號具有短時平穩的特性,可以對其進行分幀操作。然后對每一幀進行處理,即STFT操作,STFT的表達式[17]如下:
(14)
其中:x(n)為純凈語音信號序列;ω(n)為窗函數;窗ω(n-m)會隨著n取值的不同沿著時間軸滑動,經過STFT過程之后,純凈語音信號會轉化為對應的幅度譜形式Xn(ejw),同理得到噪聲信號的幅度譜形式為Xn(ejw)。然后,將得到的純凈語音信號及噪聲信號幅度譜經過時間及稀疏化的雙重約束NMF算法,按照式(10)的更新規則進行迭代。利用NMF算法U≈VW分解為字典矩陣Vs和Vn以及激活矩陣Ws和Wn,并將Vs和Vn保存為聯合字典矩陣[VsVn],將其作為先驗信息保存起來,供增強階段使用。
增強階段又可分為更新及語音重構。更新時,將帶噪語音信號經過短時傅里葉變換得到其幅度譜形式U,并與聯合矩陣結合,通過雙重約束NMF進行迭代更新,直到目標函數收斂。在語音重構的部分使用改進OMP算法取代傳統逆STFT進行重構,改善傳統方法重構時所引起的信號失真及語音增強性能弱的缺點。使用能量閾值控制OMP算法,減少重構時引入的噪聲影響,并使用共軛梯度法改進OMP,解決傳統OMP使用最小二乘法收斂速度及求解精度低的問題,利用共軛梯度的快速收斂性,提高算法的效率。由于低頻段為聲音的集中區域,而高頻區域是噪聲的主要集中區域,為了有效避免重構過程中引入高頻區域噪聲,采用低通濾波器平滑重構語音,進而提高重構語音的可懂度與清晰度,低通濾波器的傳遞函數為:
(15)
其中:G為常數。
為了充分驗證本文算法的性能,實驗選取TIMIT標準語音數據集及THCHS-30中文語音數據集[18]作為實驗數據來源。實驗在安靜的室內環境條件下進行,采樣頻率為16 kHz,采樣大小為16 bits。從TIMIT標準語音數據庫中選取240個不同人語音(其中男性120人,女性120人)共計1 200條語句,平均句長約3 s。從THCHS-30語音庫中選取1.25 h的600條語音作為訓練集,選擇125條作為測試集。為了營造現實環境中不可避免的噪聲干擾現象,引入NoiseX-92噪聲庫[19]作為噪聲來源,選取其中的Babble、F16、Factory、Street這4種噪聲作為語音信號的疊加噪聲。
感知語音質量評估方法(perceptual evaluation of speech quality, PESQ)是國際電信聯盟(international telecommunication union,ITU)在2001年提出的一種新的語音質量客觀評價算法,并且形成ITU-T的P.862建議,可以作為增強語音質量的衡量標準,并可以反映出聽覺的測試結果,PESQ得分值為-0.5~4.5,在這個范圍之內,得分值越高,語音質量越好。
對數譜距離(logarithmic spectral distance,LSD)用于衡量增強后的語音與純凈語音之間的對數譜距離,其數學表達式[20]為:
(16)
其中:N為幀長;L{S(l,n)}為具有一定動態范圍的對數譜,可以反映重構信號與原始信號之間的差異大小,其值越小,代表與原始語音之間的差距越小,因此其與語音質量呈現出負相關的關系。
信源失真率(source distortion rate,SDR)反映增強語音信號的失真程度,其值越大,說明噪聲所占比例越小,即語音增強效果越好。
對任何系統來說,時間性能都是必須考慮的因素。如果一個算法的時間復雜度過于龐大,便不能保證實時性,尤其是對于語音識別系統,良好的時間性能才能保證算法的可靠性。

圖2 Factory背景噪聲下幾種語音增強方法PESQ得分值
實驗中對比方法分別為單獨使用NMF進行語音增強、單獨OMP語音增強、正則化改進NMF的算法實現語音增強(改進NMF算法)以及改進的OMP算法實現的語音增強(改進OMP算法)。分別在-5 dB、0 dB、5 dB和10 dB這4種信噪比噪聲背景下進行性能評價,并與本文算法性能指標進行比較。其中,在Factory背景噪聲下得到PESQ得分情況如圖2所示。由于在其他幾種背景噪聲下與Factory背景下所呈現的效果趨勢一致,因此這里并不進行一一展示。由圖2可以看出:不同算法相較于未經處理時的原始輸出語音都有一定的提高,其中,本文算法的PESQ得分值均高于其他幾種算法,在Factory噪聲背景下,相比于未處理的情況,PESQ得分值提高41.38%;相對于傳統NMF算法,PESQ得分值提高21.22%;相對于傳統OMP算法,PESQ得分值提高22.93%;相較于改進NMF算法,PESQ得分值提高14.71%;相較于改進OMP算法,PESQ得分值提高15.06%。在Babble背景噪聲下,本文算法相較于未經處理、傳統NMF、傳統OMP、改進NMF算法和改進OMP算法,其PESQ得分值分別提高37.90%、25.49%、25.76%、20.02%和20.52%。在Street背景噪聲下,本文算法相較于未經處理、傳統NMF、傳統OMP、改進NMF算法和改進OMP算法,其PESQ得分值分別提高45.70%、34.13%、34.27%、21.02%和22.01%。在F16背景噪聲下,本文算法相較于未經處理、傳統NMF、傳統OMP、改進NMF算法和改進OMP算法,其PESQ得分值分別提高44.78%、32.21%、29.17%、17.51%和15.98%。由上述分析可知,信噪比處于越低水平時,本文算法語音增強的效果越明顯,且在不同的噪聲環境下PESQ仍表現出良好的特性。這是由于本文改進了傳統重構方法,使用改進OMP針對純凈語音進行重構,避免引入噪聲分量引起信號失真,減少了噪聲的影響。而在處于較高信噪比的情況下,由于噪聲干擾較小,因此各個算法對語音增強的效果差異并不明顯。

表1 不同背景噪聲下幾種語音增強方法LSD得分統計表
表1為在Factory、Babble、Street以及F16噪聲背景下,不同方法的LSD評價。由表1可以看出:本文算法均優于其他對比算法,這與PESQ評價結果一致。本文算法LSD值均小于其他算法,說明其無論在何種噪聲下,相較于對比算法,語音失真度都在減小。在處于同一類型噪聲背景時,隨著信噪比的提升,各個算法的LSD評價增量處于下降的趨勢,說明在處于高信噪比水平時,各個算法對于LSD評價值差距不明顯,這是由于在處于信噪比較高的情況下,語音失真度較小,噪聲所占比例小,不同算法對于語音增強性能相差不大。在處于-5 dB Factory噪聲下,本文算法的LSD評價值相較于其他5種對比方法平均下降18.81%;在Babble噪聲下,LSD值平均下降23.86%;在Street噪聲下,LSD值平均下降25.47%;在F16噪聲下,LSD值平均下降23.90%??梢?,在信噪比較低的情況下,不同的背景噪聲語音失真度相較于對比算法,本文算法的LSD評價性能都有較為明顯的提升。
在信噪比為-5 dB時,在4種噪聲環境下,本文算法與改進NMF算法和改進OMP算法的運行時間見表2。由表2可以看出:本文算法在提高語音增強性能的前提下,并沒有使系統運行時間降低,相反還有小幅度的提升。

表2 本文算法與對比算法運行時間統計 s
SDR值反映了增強語音信號的失真程度,其值越大,說明噪聲所占比例越小。圖3為F16噪聲下,不同算法的SDR值。在Factory、Babble、Street噪聲環境下,不同算法的SDR值與F16噪聲背景下變化趨勢一致。由圖3可以看出:整體上,本文算法的SDR值基本為2~14,相較于對比算法均有提高。未經任何處理的語音信號的SDR值處于較低水平,因此可以看出由于輸入語音中摻雜較多的噪聲信號,導致信號失真程度比較大,甚至使得SDR值為負,說明信號嚴重失真。傳統NMF以及OMP實現的語音增強處于負信噪比時,其SDR值仍為負數,達不到語音增強的效果,而通過改進后的NMF與改進后的OMP算法的SDR值有所上升,但是仍然低于本文算法的SDR值。

圖3 F16背景噪聲下幾種語音增強方法SDR得分值
上述從PESQ、LSD、SDR以及時間性能上驗證了本文算法的有效性,為了更直觀地反映增強后的語音特征,本文還采集了由自己錄入的語音信息,內容為“藍天、白云”,并作出它們對應的語譜圖,由于整體而言改進NMF算法相較于改進OMP算法的性能略優,因此選取改進NMF算法與本文算法進行語譜圖比較,如圖4a和圖4b所示。圖4a為本文算法對應的語譜圖,圖4b為改進NMF算法的語譜圖。根據語譜圖顏色來評判語音增強狀況,顏色越深表明對應語音頻譜能量越強。由圖4可以看出:本文算法增強后語音的語譜圖比改進NMF算法更加清晰,對于噪聲的抑制效果更好。

(a) 本文算法

(b) 改進NMF算法
(1)采用時間約束及稀疏度約束的方式改進NMF算法,克服了傳統NMF算法未考慮時間屬性對于高維信號分解的影響以及分解時稀疏度難以控制的問題。
(2)采用改進OMP算法代替傳統逆短時傅里葉變換,提升了算法的重構精度。為了進一步平滑濾波,引入低通濾波器。
(3)綜合PESQ、LSD、SDR以及時間性能4種指標,本文算法評價指標均優于對比算法。并且當信噪比處于低水平(小于0 dB)時,在不同的噪聲環境下,都具有良好的增強效果,顯示出本文算法較強的適應能力。