何 禮 周 翊 劉宏清
(重慶郵電大學通信與信息工程學院, 重慶 400065)
近年來,自動語音識別技術的飛速發(fā)展催生了一系列語音應用,例如:手機、智能音箱、助聽器和電話會議系統(tǒng)等。為了保證上述設備在復雜聲學環(huán)境下運行的魯棒性,這些設備通常配有噪聲消除算法。這些算法分為基于單個麥克風的單通道噪聲消除算法[1]和基于麥克風陣列的多通道噪聲消除算法。很多單通道噪聲消除算法依賴于語音活動檢測,只適合平穩(wěn)噪聲,對非平穩(wěn)噪聲魯棒性不好。麥克風陣列基于多個麥克風,在時頻域的基礎上進一步獲得空間域信息。因此,與只用時頻信息進行噪聲消除的單麥克風方案相比,麥克風陣列通常具有更好的性能,因而得到了廣泛應用。
波束形成器是麥克風陣列噪聲消除算法的核心。它可設計成固定波束形成器,如延遲求和波束形成器、超指向性波束形成器;也可設計成基于某個優(yōu)化準則的自適應波束形成器,如線性約束最小方差、最小方差無失真響應(Minimum Variance Distortionless Response, MVDR)、最小均方誤差和最大信噪比[2]。這些現(xiàn)有的技術解決方案通常依賴于擴散場聲音相干性的模型,從而區(qū)分觀測信號中由目標語音主導的時頻點和由背景噪聲主導的時頻點。然而這些解決方案并不適用于噪聲環(huán)境中干擾聲源存在的情況。另外,單獨的波束形成器并不總是能夠達到理論上的效果,波束形成處理后的輸出信號中仍然保留了期望信號方向及波束旁瓣上的殘留背景噪聲,因此通常會在波束形成后采用單通道后置濾波技術對殘留噪聲進一步消除。麥克風陣列噪聲消除算法通常使用帶有單通道維納后置濾波的MVDR波束形成器來實現(xiàn)[2]。文獻[3- 4]中推導了多種不同的后置濾波器,它們的主要區(qū)別在于對殘留噪聲功率譜密度的估計,而共同點是都未考慮干擾聲源存在的情況,無法對波束形成輸出信號中殘留干擾的功率譜密度進行估計。
針對上述問題,本文提出了基于相位時頻掩蔽的麥克風陣列噪聲消除算法。首先通過互相關功率譜的相位信息估計出目標聲源和干擾聲源的時頻掩碼。為了克服線性麥克風陣列前后指向性模糊和端射方向敏感等問題,本文采用均勻環(huán)形麥克風陣列。然后通過時頻掩碼估計出導向矢量和噪聲協(xié)方差矩陣,從而對目標聲源進行波束形成,克服了傳統(tǒng)導向矢量估計算法受干擾聲源影響的缺點。最后,通過參考麥克風的語音存在概率修正相位時頻掩碼,更加準確估計殘留干擾噪聲功率譜密度,經過維納濾波器生成出最終的增強語音。以下是本文剩余部分的結構安排:第2節(jié)將介紹麥克風陣列噪聲消除的基本原理。第3節(jié)將重點介紹所提算法。第4節(jié)進行實驗結果描述和分析。第5節(jié)是結論。
設在同一個房間內有M個麥克風,第m=1,2,…,M個麥克風接收到的音頻信號xm(t)可建模為[5]:
(1)
其中,hm是目標聲源與第m個麥克風之間的房間沖激響應,s(t)是目標聲源,hm,r是第r個干擾聲源與第m個麥克風之間的房間沖激響應,ir(t)是第r個干擾聲源,r=1,2,…,R,ηm(t)是第m個麥克風處的背景噪聲,‘*’表示卷積運算。
式(1)可簡化為:
xm(t)=hm*s(t)+νm(t)
(2)
為了克服語音信號非平穩(wěn)性帶來的信號估計問題,通常將語音信號通過短時傅里葉變換(Short Time Fourier Transformer, STFT)轉換到時頻域進行處理,假設房間沖激響應是時不變的,對式(2)應用STFT,式(2)在頻域中表示為:
X(t,k)=H(k)S(k)+V(t,k)
(3)
其中,X(t,k)=[X1(t,k),...,XM(t,k)]T,H(k)=[H1(k),...,HM(k)]T,V(t,k)=[V1(t,k),...,VM(t,k)]T,且Xm(t,k)、Hm(k)和Vm(t,k)分別是xm(t)、hm和νm(t)的STFT,t表示間索引,k表示頻率索引。Hm(k)可建模為延遲衰減模型[6]:
Hm(k)=Dm(k)=αme-jωkτm
(4)
其中,τm是第m個麥克風與參考麥克風m=1之間的到達時間差,ωk是頻點k角頻率的弧度表示。D(k)=[D1(k),...,DM(k)]T是麥克風陣列的導向矢量[2]。文獻[7]證明最優(yōu)多通道最小均方誤差語音增強濾波器Wopt可分解為:
(5)
(6)
其中,φss和φnn分別為波束形成輸出結果中目標信號和噪聲信號的功率譜密度。最后,目標信號估計為:
(7)
算法的整體框架如圖1所示。
算法包含四部分:時頻掩碼估計、波束形成、干擾噪聲功率譜密度估計和單通道維納濾波。在時頻掩碼估計部分,結合多麥克風音頻信號估計的相位時頻掩碼和參考麥克風估計的語音存在概率,得到最終的時頻掩碼。在波束形成部分,通過時頻掩碼估計出導向矢量和噪聲協(xié)方差矩陣,基于最小方差無失真響應對目標信號波束形成,對干擾信號和背景噪聲進行消除。在干擾噪聲功率譜密度估計部分,通過參考麥克風語音存在概率修正的相位時頻掩碼最大似然估計出上一階段波束形成后殘留的干擾噪聲功率譜密度。在單通道維納濾波部分,通過上一階段估計的干擾噪聲功率譜密度進一步消除波束形成輸出結果中殘留的干擾噪聲,生成增強語音。
為了克服線性麥克風陣列前后指向性模糊和端射方向敏感的問題,本文采用均勻環(huán)形麥克風陣列,如圖2所示。設式(1)是基于均勻環(huán)形麥克風陣列建立的模型,包含M個麥克風。對于一個給定方向的聲源,相鄰麥克風對表示為{mi,mi+1},最后一對麥克風對表示為{mM,m1}。
(8)
其中,τmi→m1(φg)=τm1m2(φg)-τmimi+1(φg)為{m1,m2}麥克風對與{mi,mi+1}麥克風對的相對時延[9]。
麥克風對音頻信號互相關功率譜的相位在單源區(qū)域內估計為:
(9)
其中,*表示復共軛。
由式(8)和式(9)分別已知預設角度相位和音頻信號相位,時頻掩碼索引Icircular(t,k)可通過下式估計為:
(10)
其中,Icircular(t,k)表示時頻掩碼索引,‖·‖2表示歐氏范數(shù)。
圖1 算法噪聲消除流程
圖2 均勻環(huán)形麥克風陣列
針對線性麥克風陣列端射方向敏感的問題,考慮到提出的環(huán)形麥克風陣列基于相位時頻掩蔽的算法特點,本文在式(10)的基礎上增加基于預設角度的權重因子,以弱化誤差較大的麥克風對對相位的影響,強化誤差較小的麥克風對對相位的影響。因此,式(10)修改為:
Icircular(t,k)
(11)
其中,權重因子Wweight(φg)定義為:
Wweight(φg)=αweightcos(φg)+βweight
(12)
其中,αweight和βweight為常數(shù),設目標聲源來源于第g個扇區(qū),則基于相位估計的時頻掩碼Mcircular(t,k)為:
(13)
式(13)估計的時頻掩碼是依賴于不同扇區(qū)聲源的相位差異,故在目標聲源和干擾聲源都不存在的情況下是不準確的。因此,式(13)中的時頻掩碼需要依賴于參考麥克風的語音存在概率進行修正得到最終的時頻掩碼M(t,k),如式(14)所示:
(14)
其中,threshold為常數(shù),spp為基于文獻[10]的方法計算的參考麥克風的語音存在概率,如式(15)所示:
(15)
其中,q(t,k)是先驗語音不存在概率,ξ(t,k)是先驗信噪比,γ(t,k)是后驗信噪比。當語音存在時,時頻掩碼可以分離出目標信號和干擾信號;當語音不存在時,時頻掩碼可以分離出語音信號和噪聲信號。
設Mν(t,k)表示只包含干擾噪聲信號的時頻點,Ms+ν(t,k)表示帶噪信號的時頻點,則只包含干擾噪聲信號的協(xié)方差矩陣Rν(t,k)和帶噪信號的協(xié)方差矩陣Rs+ν(t,k)分別為:
(16)
(17)
因此,目標語音的協(xié)方差矩陣表示為:
Rs(t,k)=Rs+ν(t,k)-Rν(t,k)
(18)
導向矢量可由目標語音協(xié)方差矩陣廣義特征值分解的最大特征值對應的特征向量估計[8]。
文獻[11]提出在類廣義旁瓣消除結構下用最大似然的方法估計波束形成后殘留的噪聲功率譜密度,取得了比單通道殘留噪聲功率譜密度估計[9]更好的效果。但是文獻[11]并未考慮干擾的影響,因此,本文通過上文基于參考麥克風語音存在概率修正的相位時頻掩碼得到目標語音存在概率,準確估計出波束形成后殘留的干擾噪聲功率譜密度。
(1-α(t0,k0))X(t0,k0)X(t0,k0)H
(19)
其中,(t0,k0)表示目標語音不存在時的時頻點索引,α(t0,k0)表示目標語音存在概率,定義為:
(20)
(21)
其中,C2(t)為一個時變的比例因子。
(22)
由式(5)可得出波束形成后信號的功率譜密度為:
(23)
將式(22)、(23)代入式(6)的維納后置濾波中,可得到增強語音Y(t,k),如式(24)所示:
(24)
本節(jié)中,將提出的算法在MATLAB環(huán)境下進行仿真實驗。實驗中所用的30條純凈語音和噪聲數(shù)據均來自CHIME4語音庫[12],采樣率為16 kHz,量化精度為16 bit。噪聲數(shù)據包括BUS噪聲、CAF噪聲、PED噪聲和STR噪聲。為消除混響對算法的影響,選擇低混響房間,混響時間T60在200 ms以內。環(huán)形六麥陣列原點位于房間中央,陣列半徑為5 cm,目標聲源位于麥克風陣列的0°方向,干擾聲源位于麥克風陣列的180°方向,兩者距離麥克風陣列原點都為1 m。在背景噪聲下,目標聲源發(fā)聲,4 s之后干擾聲源發(fā)聲,12 s之后目標聲源結束,4 s之后干擾聲源結束,4 s之后背景噪聲結束。通過MATLAB對目標聲源、干擾聲源和背景噪聲進行混合,信干比為0 dB的條件下信噪比分別為-5 dB、0 dB、5 dB和10 dB。增強算法STFT使用的幀長為512個采樣點,幀移為128個采樣點。
為驗證本文所提算法的性能,本文采用經典的基于廣義互相關相位(Generalized Cross-Correlation Phase, GCC-Phat)的延遲求和波束形成器和最優(yōu)修正對數(shù)幅度譜(Optimal Modified Log Spectral Amplitude, OMLSA)后置濾波器的麥克風陣列噪聲消除算法為基線方法。為能客觀評估算法性能,本文采用感知語音質量(Perceptual Evaluation of Speech Quality, PESQ)、頻域分段信噪比(Frequency Weighted Segment Signal Noise Ratio, fwsegSNR)、信號干擾比(Signal to Interference Ratio, SIR)、信號失真比(Signal to Distortion Ratio, SDR)這一系列指標分別對原始語音(original)、基線方法(baseline)、本文所提算法(proposed)與加入多通道后置濾波的本文所提算法(proposed+multipost)的性能進行全面衡量。
PESQ是評估語音主觀試聽感受的客觀計算方法[13]。PESQ分值越高說明其語音感知質量越高。
圖3為在BUS噪聲、CAF噪聲、PED噪聲和STR噪聲環(huán)境下各算法在各信噪比條件下的平均PESQ得分結果。可見本文所提算法在低信噪比(-5 dB)條件下,相比基線方法具有顯著提升的增強效果,同時隨著信噪比提高(0 dB、5 dB、10 dB),通過加入多通道后置濾波,在高信噪比(5 dB、10 dB)條件下,語音感知質量進一步提高。4種噪聲條件下,STR噪聲語音感知質量提升幅度相對有限,說明所提算法在背景噪聲平穩(wěn)時的優(yōu)勢有限。
頻域分段信噪比是衡量增強語音中所含噪聲能量的常規(guī)指標,其定義式如式(25)所示:
fwsegSNR=
(25)
圖4為在BUS噪聲、CAF噪聲、PED噪聲和STR噪聲環(huán)境下,各算法在各信噪比條件下的平均fwsegSNR值??傮w上看,本文所提算法在各背景噪聲環(huán)境下表現(xiàn)的噪聲消除能力最強,在低信噪比(-5 dB)條件下加入后置濾波后,fwsegSNR值有所下降,說明在噪聲消除的同時去除了較多語音部分。在CAF噪聲、PED噪聲環(huán)境下,本文所提算法相比基線方法,fwsegSNR值提升最大,說明所提算法在背景噪聲非平穩(wěn)時效果最好。
信干比是衡量算法抑制干擾聲源性能的常規(guī)指標[14],其定義式如式(26)所示:
(26)
其中,starget為增強語音中的目標語音,einterf為增強語音中的干擾語音。SIR值越大說明干擾消除得越好。
圖5為在BUS噪聲、CAF噪聲、PED噪聲和STR噪聲環(huán)境下,各算法在各信噪比條件下的平均SIR值。可見,基線方法對干擾幾乎沒有消除作用,而本文所提算法具有顯著的抑制干擾效果。在信干比為0 dB的條件下,本文所提算法在低信噪比(-5 dB)時,抑制干擾10 dB左右;在高信噪比(10 dB)時,抑制干擾20 dB左右。同時,加入后置濾波后,SIR值有所提升,說明本文提出的基于spp的后置濾波具有抑制干擾的效果。
圖4 4種背景噪聲環(huán)境下,各算法在各信噪比條件下的fwsegSNR均值
圖5 4種背景噪聲環(huán)境下,各算法在各信噪比條件下的SIR均值
圖6 4種背景噪聲環(huán)境下,各算法在各信噪比條件下的SDR均值
信號失真比是衡量算法抑制干擾過程中語音失真程度的常規(guī)指標[14],其定義式如(27)所示:
(27)
其中,starget為增強語音中的目標語音,einterf為增強語音中的干擾語音,enoise為增強語音中的噪聲分量,eartif為增強語音中的人為噪聲。SDR值越小說明增強語音過程中語音失真越嚴重。
圖6為在BUS噪聲、CAF噪聲、PED噪聲和STR噪聲環(huán)境下,各算法在各信噪比條件下的平均SDR值。在低信噪比條件下(-5 dB),本文所提算法與基線方法相比,造成的語音失真更小,但隨著信噪比提高(0 dB、5 dB、10 dB),其優(yōu)勢逐漸減小。后置濾波加入后,在高信噪比(10 dB)條件下,SDR值有所下降,說明后置濾波在抑制干擾的同時會使語音有一定程度的失真。
本文針對在干擾聲源和背景噪聲的環(huán)境下傳統(tǒng)波束形成和后置濾波算法難以有效實現(xiàn)噪聲消除的問題,提出一種基于相位時頻掩蔽的麥克風陣列噪聲消除算法。該算法利用不同聲源的相位差異和語音存在概率估計時頻掩碼對目標語音波束形成,對干擾聲源和背景噪聲有效抑制,然后通過后置濾波進一步抑制殘留干擾和噪聲。在4種不同噪聲以及4種不同高低信噪比環(huán)境下進行了實驗,證明所提算法能有效提高語音的質量。
在后續(xù)研究中,將考慮所提算法的實時性,同時提高現(xiàn)有算法的計算效率,減小后置濾波引起的語音失真,此外針對所提算法在混響環(huán)境下的適用性問題展開研究。