張 偉,王冬霞,于 玲
(遼寧工業大學電子與信息工程學院,遼寧錦州121001)
(?通信作者電子郵箱1019247780@qq.com)
近年來,隨著人工智能技術的不斷發展,語音交互成為最方便快捷的人機交互方式,其中智能音箱是人們日常主要應用對象。當智能音箱中揚聲器播放音樂時,會經房間傳播后被智能音箱中麥克風采集,即為智能音箱中的回聲,該回聲與使用者發出的目標語音信號疊加在一起,嚴重影響目標語音信號質量和喚醒與識別結果,從而不能繼續對智能音箱進行有效的語音控制。在通信中,傳統的單通道聲學回聲消除(Acoustic Echo Cancellation,AEC)主要采用自適應濾波技術[1],即首先估計揚聲器和麥克風之間的聲學沖擊響應(Acoustic Impulse Response,AIR),然后利用估計的AIR 對揚聲器播放信號進行濾波,計算出回聲并從麥克風信號中減去。現有的自適應濾波回聲消除算法包括歸一化最小均方(Normalized Least Mean Square,NLMS)算法[2]、分塊頻域自適應 算 法[3]、開 源Speex 算 法[4]和WebRTC(Web Real-Time Communications)算法[5]等,還可以利用卡爾曼濾波技術[6]、盲源分離技術[7],以及神經網絡技術[8]等進行回聲消除。其中NLMS 算法由于其相對強大的性能和低復雜度而得到最廣泛的應用。這些算法在一定程度上改善了目標語音的質量,但由于大多基于自適應濾波技術,若直接應用到多通道情況中,會大幅度增加計算量,不利于工程上的實現。
然而,智能音箱設備多由一個揚聲器和一個麥克風陣列組成。在多通道情況下,回聲消除最直接的解決方案是在每個麥克風的輸出端分別放置一個回聲消除器,然而多通道回聲消除MM-AEC(Multi Microphone Acoustic Echo Cancellation)算法的復雜度與麥克風的數量成正比。對于較長的自適應濾波器,MM-AEC 算法的復雜性既與麥克風數量成正比,又與回聲消除器長度成正比,因此它很容易超過可用的計算資源。針對計算復雜度問題,文獻[9]提出相對回聲傳遞函數-AEC(Relative Echo Transfer Function-AEC,RETF-AEC)低復雜度算法,首先用揚聲器播放信號當作參考信號,在短時傅里葉變換(Short Time Fourier Transform,STFT)域,利用單通道自適應濾波算法更新聲學回聲傳遞函數(Acoustic Echo Transfer Function,AETF),估計出第一通道回聲,然后利用估計的第一通道回聲當作其他通道的參考信號,來不斷更新麥克風陣列之間的相對回聲傳遞函數(RETF),最后計算出其他通道回聲。因RETF 的長度比AETF 長度短,從而使MM-AEC 的總計算量降低。聲學回聲傳遞函數在立體聲回聲消除中也有廣泛應用[10]。
當麥克風接收的信號不僅包含回聲和目標語音信號,還包含背景噪聲時,AEC 的最終目標是完全去除回聲和背景噪聲,使其只有目標語音信號。但在大混響、低回噪比條件下,自適應濾波收斂后,仍會有殘留回聲存在,學者普遍認為單獨的AEC 無法抑制背景噪聲和殘留回聲。單通道AEC 通常應用后處理技術[11-12]來抑制存在于回聲消除輸出后的背景噪聲和殘余回聲。而MM-AEC 可以結合波束形成(Beam Former,BF)技術抑制背景噪聲和殘余回聲[13-14]:可以在AEC后先應用BF 減少背景噪聲,再通過后處理技術去掉殘留回聲;或者先在每通道AEC后應用后處理技術去掉殘留回聲,再應用BF技術減少背景噪聲。該類算法殘留回聲和背景噪聲需分開抑制。最近,文獻[9]又提出了利用BF 技術聯合去除殘留回聲和背景噪聲的算法。該算法首先利用提出的RETF-AEC 算法去掉回聲,再估計出殘留回聲和背景噪聲,最后利用多通道維納濾波(Multi-Channel Wiener Filter,MCWF)波束技術聯合去除殘留回聲和背景噪聲(簡記為MCWF-AEC 算法)。由于RETF-AEC 算法還需要利用自適應濾波不斷更新RETF,計算量并沒有大幅度降低。且在低回噪比條件下,由于殘留回聲估計得過高,MCWF會使目標語音信號有一定的失真,影響語音可懂度。
針對上述兩點問題,本文借鑒麥克風陣列語音去噪[15]的思想,在文獻[9]的基礎上,首先提出了一種改進的相對回聲傳遞函數的多通道回聲估計算法——ERETF-AEC(Estimate Relative Echo Transfer Function-AEC),該算法不需要自適應更新RETF,降低了算法的復雜度。隨后,鑒于廣義旁瓣抵消器(Generalized Sidelobe Canceller,GSC)算法在不同信噪比下的穩定性,又提出了ERETF-GSAEC(Estimate Relative Echo Transfer Function Generalized Sidelobe Canceller Acoustic Echo Cancellation)麥克風陣列快速回聲消除算法。該算法利用改進的ERETF-AEC 回聲估計算法替代傳統GSC 算法的阻塞矩陣模塊,能有效地避免阻塞矩陣構造不合適而造成的阻塞剩余和目標語音信號抵消等缺點;并且該算法不再需要殘留回聲估計,有效避免殘留回聲估計過高引起的問題,進一步減少在低回噪比(Echo Noise Ratio,ENR)下MCWF 算法對語音失真的現象,較好地保留目標語音信號的頻域信息,提高語音可懂度。
如圖1 所示,假設智能音箱設備由一個揚聲器和一個麥克風陣列組成,回聲路徑為線性系統。

圖1 智能音箱環境下的聲學模型Fig. 1 Acoustic model in smart speaker environment
在STFT 域,令Sn(l,k)表示語音信號,Dn(l,k)表示回聲信號,Vn(l,k)表示背景噪聲,則第n個麥克風接收信號表示為:
Yn(l,k) = Dn(l,k) + Sn(l,k) + Vn(l,k) (1)其中:l、k、n 分別表示幀索引、域帶索引、麥克風索引,n ∈{1,2,…,N}。當房間混響較大時,回聲信號可以使用卷積傳遞函數(Convolutive Transfer Function,CTF)[16]近似表示為:

其中:


上腳標(·)Τ和(·)Η表示轉置和共軛轉置;hn(l,k)是揚聲器和麥克風之間的第n 個AETF 向量;B 為hn(l,k)的長度;X(l,k)是揚聲器播放的信號,鑒于AEC的特殊應用,X(l,k)是可以采集到的,通常在AEC中當作參考信號。
根據麥克風陣列的空間結構,類比相對傳遞函數(Relative Transfer Function,RTF)[17],第一通道與其他通道間的聲學回聲傳遞函數比或RETF表示為:

這里僅使用一個CTF[16]長度來近似表示RTF、RETF。則第n個麥克風接收信號可以改寫為:
Yn(l,k) = Rn(l,k)D1(l,k) + Vn(l,k) + Cn(l,k)S1(l,k) (4)其中:Cn(l,k)為每通道目標語音信號的RTF。
本文的ERETF-GSAEC 麥克風陣列快速回聲消除算法框圖如圖2 所示,主要包括三部分:固定波束形成、噪聲參考信號估計和自適應波束形成。

圖2 ERETF-GSAEC回聲消除算法框圖Fig. 2 Block diagram of ERETF-GSAEC echo cancellation algorithm
固定波束形成器是利用聲源信號空間方位信息,最大限度輸出期望方向內信號。本文算法采用文獻[18]中的固定波束形成器,使得波束指向目標語音信號方向。

其中:

c(l,k)表示目標語音信號RTF向量;w(l,k)表示固定波束形成器權系數。則固定波束形成的輸出為:

其中:y(l,k) =[Y1(l,k),Y2(l,k),…,YN(l,k)]Τ是麥克風陣列接收信號。YFBF(l,k)作為上支路語音參考信號。
如圖3 所示,利用回聲估計算法替代傳統GSC 算法的阻塞矩陣模塊,能有效地避免阻塞矩陣構造不合適而造成的阻塞剩余和目標語音信號抵消等缺點。

圖3 ERETF-AEC回聲估計算法框圖Fig. 3 Block diagram of ERETF-AEC echo estimation algorithm
2.2.1 AETF-AEC算法
AETF-AEC 算法在STFT 域中采用自適應濾波技術,在沒有語音信號存在時(即回聲幀),不斷更新揚聲器和麥克風之間的AETF,利用估計的AETF 對揚聲器播放信號進行濾波得到回聲信號:

其中:“^”表示估計。當有語音信號存在時,停止更新,計算出回聲,隨后從麥克風信號中減去,從而使回聲減少。則第一通道誤差信號表示為:

該算法利用最小均方誤差作為代價函數,使用梯度下降自適應算法進行更新,則更新等式表示為:
M1(l,k)是一個B × B的自適應步長矩陣,表達式為:

φx(l,k)表示相關矩陣,采用平滑方式得到,表達式為:

其中:μ 為固定步長;β 為遺忘因子。所以AETF-AEC 算法的復雜度與CTF長度即濾波器長度B成正比。
2.2.2 RETF估計
RETF-AEC 算法[9]利用自適應濾波算法來不斷更新RETF。更新等式表示為:

其中:

n ∈{2,3,…,N},P <B;Qn(l,k)是一個P × P 的自適應步長矩陣,與M1(l,k)計算相同。所以RETF-AEC 算法[9]計算量與濾波器長度P 成正比。由于自適應濾波算法較為復雜,并沒有大幅度提高計算量。
RETF 由陣列的空間結構決定,當回聲路徑為線性系統時,RETF不隨時間的變化而變化,并不需要時時更新,所以可以取出前1 s的語音,只需估計一次陣列間的RETF,之后便不再更新,作為定值,當作整段信號的RETF。本文RETF 估計算法在回聲幀先估計出噪聲信號,從麥克風信號中減去,再以第一通道為基準,得到估計的Rn(l,k),表達式為:

所以,當n ∈{2,3,…,N}時,回聲估計可以表示為:

采用文獻[18]中的自適應波束形成器,根據由固定波束形成得到的語音參考信號YFBF(l,k)和自適應波束形成噪聲參YANC(l,k)之間的最小均方誤差值來構建代價函數:

使用NLMS算法對波束形成器系數進行更新迭代:

其中:

是噪聲參考信號,由估計回聲和估計噪聲向量串聯組成。
與RETF-AEC 算法[9]相比,本文ERETF-AEC 算法由于不需要自適應一直更新每通道的RETF 來估計回聲,只需要利用每通道前1 s 的語音估計出RETF 作為定值,所以使估計回聲的計算量降低。與MCWF-AEC 算法[9]相比,本文ERETFGSAEC 算法選擇GSC 波束形成技術,將估計的每通道回聲信號不直接從麥克風信號中減去,而是通過GSC 中自適應波束形成器去除回聲和噪聲。所以該算法不需要自適應估計每通道的殘留回聲,從而使波束形成計算量減少,同時避免了由于殘留回聲估計過高,而使目標語音失真的現象。
按照實際設備的運行環境,設置本次實驗仿真,模擬一個智能音箱設備,它由一個揚聲器和一個麥克風陣列組成。麥克風陣列是由四個麥克風組成的均勻線性陣列,麥克風的間距是1.5 cm;揚聲器與陣列中心之間的距離為10 cm;揚聲器播放信號的到達方向設定為12°;此外,將所需的遠場目標信號用另一個揚聲器模擬,放置在距離陣列中心2.5 m,71°處;選擇與揚聲器最接近的麥克風作為主麥克風,即n=1。
實驗使用文獻[19]中的房間脈沖發生器,用鏡像法對一個尺寸為(3× 5× 2.5)m3的房間產生兩組AIR,每一組為有4個AIR。房間的混響時間設定為0.35 s。采樣率為fs=16 kHz,避免由于AETF的模型不足造成的殘留回聲,截斷AIR的長度L=1 536 個樣本,選定的長度可確保截斷的AIR 覆蓋早期反射。
圖4 為各語音時域信號波形。從酷狗音樂中下載音樂“最美的太陽”,截選12.5 s當作智能音箱揚聲器播放信號,如圖4(a)所示;通過將截斷的第一組AIR 與揚聲器播放信號進行卷積生成回聲信號,第一通道回聲信號如圖4(b)所示;將互不相關的白噪聲信號添加到麥克風信號以模擬不同的ENR;從標準TIMIT 語音庫選取2.5 s 語音作為目標信號,如圖4(c)所示,通過將目標信號與第二組AIR 進行卷積來生成語音信號,以第一通道的語音信號當作目標語音信號,如圖4(d)所示。在第10 s 后,以回信比(Echo Signal Ratio,ESR)的方式將語音信號加到麥克風信號中。即0~10 s 屬于回聲幀。

圖4 各語音時域信號波形Fig. 4 Each speech time-domain signal waveform
STFT 的長度K = 512,窗選擇漢明窗,幀移R = 128,AETF濾波器長度B如下:其中:“「·」”表示取整。自適應濾波器固定步長為μ = 0.1,遺忘因子β如下:


將本文改進的回聲估計算法ERETF-AEC 與RETF-AEC算法[9]進行性能比較?;芈暪烙嫷男阅懿捎没芈暦祷負p耗增益(Echo Return Loss Enhancement,ERLE)表示回聲信號與殘留回聲的比值,值越高性能越好。

表1為ENR為-5 dB、0 dB、5 dB與10 dB的回聲估計情況。表1 中數值為總時間段ERLE 的平均值,第一通道均使用AETF 算法來估計回聲,總體來講,在不同ENR 情況下,RETF-AEC 算法比第一通道AETF 算法值都略高,本文算法與第一通道AETF 算法值略低。本文算法和RETF-AEC 算法[9]性能相差不大。因此,本文算法能夠在具有較好性能同時又能減少算法計算量,保證算法實用性。

表1 不同回噪比下各算法平均ERLE比較Tab. 1 Average ERLE comparison of different algorithms under different ENR
如圖5 所示,給出了ENR 為0 dB 時不同算法在有目標語音出現幀的回聲估計時域信號波形。從圖5 可知,三種算法均取得了較好的回聲估計效果。

圖5 回噪比為0 dB時不同算法的回聲估計時域信號波形Fig. 5 Echo estimation time-domain signal waveform of different algorithms with ENR=0 dB
本文采用信源失真率(Signal Distortion Ratio,SDR)、語音短時客觀可懂度(Short Time Objective Intelligibility,STOI)作為目標語音信號回聲消除算法性能客觀評估標準,對MCWFAEC 算法[9]和本文算法的性能在可懂度和失真方面進行評估,評估值越高算法的性能越好。
由于噪聲估計算法并不在本文研究之內,所以采用真實噪聲信號進行實驗。目標語音信號的RTF在線下進行計算。
如圖6 所示,給出了在ENR 為0 dB 和ESR 為0 dB 時兩種算法波束形成后的時域波形圖。從圖6(c)中可以看出:MCWF-AEC算法[9]在能量較大的語音幀,有明顯的語音失真;本文算法能較好地保證重構語音質量,實現回聲消除和去噪。

圖6 回噪比和回信比均為0 dB時不同算法的目標語音時域信號波形Fig. 6 Target speech time-domain signal waveform of different algorithms with ENR=0 dB and ESR=0 dB
如表2 所示,給出ESR 分別為-5 dB、0 dB、5 dB,ENR為-5 dB、0 dB、5 dB 與10 dB 時回聲消除情況。ESR 小于0 dB時,表示回聲能量比語音信號能量低,這時回聲消除性能最高。正常情況下,回聲信號與語音信號能量相差不大,即ESR為0 dB 一旦回聲信號比語音信號能量大,即ESR 大于0 dB時,回聲消除性能會下降。總體上看,本文算法SDR 與STOI評估指標存在著明顯優勢。這說明對于噪聲環境與回信比的變化,ERETF-GSAEC 模型能夠更好地消除回聲和抑制噪聲,能更好地提高目標語音可懂度,減少語音失真。
信號語譜圖顏色的深淺和清晰度能夠反映語音信號能量的大小和語音的質量。如圖7 所示,給出了MCWF-AEC 算法[9]和 本 文 算 法 在ENR 和ESR 均 為0 dB 時 的 語 譜 圖。從圖7(d)可以發現,在該條件下回聲和噪聲分布在整個頻段,語音受到嚴重干擾,目標語音信號幾乎被淹沒。圖7(e)顯示MCWF-AEC 算法雖然能夠很好地減少回聲和噪聲的影響,但在低回噪比情況下,由于MCWF-AEC 算法殘留回聲估計過高,會過度地去除回聲和噪聲,使一些頻點丟失,導致語音失真。本文ERETF-GSAEC 算法通過自適應波束形成去除回聲和噪聲,在保證去噪的情況下,頻點不丟失,這是由于采用GSC 波束形成算法在不同信噪比下具有較強的穩定性。因此,本文算法能夠有效地減少目標語音失真,提高回聲和噪聲抑制的能力。

表2 不同回信比和回噪比下各算法SDR與STOI得分Tab. 2 SDR and STOI scores of different algorithms under different ESR and ENR

圖7 回噪比和回信比均為0 dB時不同算法的語譜圖Fig. 7 Spectorgrams of different algorithms with ENR=0 dB and ESR=0 dB
考慮到多通道回聲消除的復雜性,本文提出了相對回聲傳遞函數的多通道回聲估計算法——ERETF-AEC,能使計算量減少;然后結合ERETF-AEC算法又提出了一種麥克風陣列快速回聲消除算法——ERETF-GSAEC,以有效地避免阻塞矩陣構造不合適和殘留回聲估計過高而引起目標語音信號失真的現象,獲得更好的目標語音信號。實驗結果表明,在不同回噪比和回信比下從回聲估計和目標語音信號信源失真率和可懂度三方面,客觀評測參數顯示本文算法有效地抑制了回聲和噪聲,減小了語音的失真度。未來可以在立體聲加麥克風陣列回聲消除方向進行研究。