張 偉,王冬霞,于 玲
(遼寧工業(yè)大學(xué)電子與信息工程學(xué)院,遼寧錦州121001)
(?通信作者電子郵箱1019247780@qq.com)
近年來,隨著人工智能技術(shù)的不斷發(fā)展,語音交互成為最方便快捷的人機(jī)交互方式,其中智能音箱是人們?nèi)粘V饕獞?yīng)用對象。當(dāng)智能音箱中揚聲器播放音樂時,會經(jīng)房間傳播后被智能音箱中麥克風(fēng)采集,即為智能音箱中的回聲,該回聲與使用者發(fā)出的目標(biāo)語音信號疊加在一起,嚴(yán)重影響目標(biāo)語音信號質(zhì)量和喚醒與識別結(jié)果,從而不能繼續(xù)對智能音箱進(jìn)行有效的語音控制。在通信中,傳統(tǒng)的單通道聲學(xué)回聲消除(Acoustic Echo Cancellation,AEC)主要采用自適應(yīng)濾波技術(shù)[1],即首先估計揚聲器和麥克風(fēng)之間的聲學(xué)沖擊響應(yīng)(Acoustic Impulse Response,AIR),然后利用估計的AIR 對揚聲器播放信號進(jìn)行濾波,計算出回聲并從麥克風(fēng)信號中減去。現(xiàn)有的自適應(yīng)濾波回聲消除算法包括歸一化最小均方(Normalized Least Mean Square,NLMS)算法[2]、分塊頻域自適應(yīng) 算 法[3]、開 源Speex 算 法[4]和WebRTC(Web Real-Time Communications)算法[5]等,還可以利用卡爾曼濾波技術(shù)[6]、盲源分離技術(shù)[7],以及神經(jīng)網(wǎng)絡(luò)技術(shù)[8]等進(jìn)行回聲消除。其中NLMS 算法由于其相對強(qiáng)大的性能和低復(fù)雜度而得到最廣泛的應(yīng)用。這些算法在一定程度上改善了目標(biāo)語音的質(zhì)量,但由于大多基于自適應(yīng)濾波技術(shù),若直接應(yīng)用到多通道情況中,會大幅度增加計算量,不利于工程上的實現(xiàn)。
然而,智能音箱設(shè)備多由一個揚聲器和一個麥克風(fēng)陣列組成。在多通道情況下,回聲消除最直接的解決方案是在每個麥克風(fēng)的輸出端分別放置一個回聲消除器,然而多通道回聲消除MM-AEC(Multi Microphone Acoustic Echo Cancellation)算法的復(fù)雜度與麥克風(fēng)的數(shù)量成正比。對于較長的自適應(yīng)濾波器,MM-AEC 算法的復(fù)雜性既與麥克風(fēng)數(shù)量成正比,又與回聲消除器長度成正比,因此它很容易超過可用的計算資源。針對計算復(fù)雜度問題,文獻(xiàn)[9]提出相對回聲傳遞函數(shù)-AEC(Relative Echo Transfer Function-AEC,RETF-AEC)低復(fù)雜度算法,首先用揚聲器播放信號當(dāng)作參考信號,在短時傅里葉變換(Short Time Fourier Transform,STFT)域,利用單通道自適應(yīng)濾波算法更新聲學(xué)回聲傳遞函數(shù)(Acoustic Echo Transfer Function,AETF),估計出第一通道回聲,然后利用估計的第一通道回聲當(dāng)作其他通道的參考信號,來不斷更新麥克風(fēng)陣列之間的相對回聲傳遞函數(shù)(RETF),最后計算出其他通道回聲。因RETF 的長度比AETF 長度短,從而使MM-AEC 的總計算量降低。聲學(xué)回聲傳遞函數(shù)在立體聲回聲消除中也有廣泛應(yīng)用[10]。
當(dāng)麥克風(fēng)接收的信號不僅包含回聲和目標(biāo)語音信號,還包含背景噪聲時,AEC 的最終目標(biāo)是完全去除回聲和背景噪聲,使其只有目標(biāo)語音信號。但在大混響、低回噪比條件下,自適應(yīng)濾波收斂后,仍會有殘留回聲存在,學(xué)者普遍認(rèn)為單獨的AEC 無法抑制背景噪聲和殘留回聲。單通道AEC 通常應(yīng)用后處理技術(shù)[11-12]來抑制存在于回聲消除輸出后的背景噪聲和殘余回聲。而MM-AEC 可以結(jié)合波束形成(Beam Former,BF)技術(shù)抑制背景噪聲和殘余回聲[13-14]:可以在AEC后先應(yīng)用BF 減少背景噪聲,再通過后處理技術(shù)去掉殘留回聲;或者先在每通道AEC后應(yīng)用后處理技術(shù)去掉殘留回聲,再應(yīng)用BF技術(shù)減少背景噪聲。該類算法殘留回聲和背景噪聲需分開抑制。最近,文獻(xiàn)[9]又提出了利用BF 技術(shù)聯(lián)合去除殘留回聲和背景噪聲的算法。該算法首先利用提出的RETF-AEC 算法去掉回聲,再估計出殘留回聲和背景噪聲,最后利用多通道維納濾波(Multi-Channel Wiener Filter,MCWF)波束技術(shù)聯(lián)合去除殘留回聲和背景噪聲(簡記為MCWF-AEC 算法)。由于RETF-AEC 算法還需要利用自適應(yīng)濾波不斷更新RETF,計算量并沒有大幅度降低。且在低回噪比條件下,由于殘留回聲估計得過高,MCWF會使目標(biāo)語音信號有一定的失真,影響語音可懂度。
針對上述兩點問題,本文借鑒麥克風(fēng)陣列語音去噪[15]的思想,在文獻(xiàn)[9]的基礎(chǔ)上,首先提出了一種改進(jìn)的相對回聲傳遞函數(shù)的多通道回聲估計算法——ERETF-AEC(Estimate Relative Echo Transfer Function-AEC),該算法不需要自適應(yīng)更新RETF,降低了算法的復(fù)雜度。隨后,鑒于廣義旁瓣抵消器(Generalized Sidelobe Canceller,GSC)算法在不同信噪比下的穩(wěn)定性,又提出了ERETF-GSAEC(Estimate Relative Echo Transfer Function Generalized Sidelobe Canceller Acoustic Echo Cancellation)麥克風(fēng)陣列快速回聲消除算法。該算法利用改進(jìn)的ERETF-AEC 回聲估計算法替代傳統(tǒng)GSC 算法的阻塞矩陣模塊,能有效地避免阻塞矩陣構(gòu)造不合適而造成的阻塞剩余和目標(biāo)語音信號抵消等缺點;并且該算法不再需要殘留回聲估計,有效避免殘留回聲估計過高引起的問題,進(jìn)一步減少在低回噪比(Echo Noise Ratio,ENR)下MCWF 算法對語音失真的現(xiàn)象,較好地保留目標(biāo)語音信號的頻域信息,提高語音可懂度。
如圖1 所示,假設(shè)智能音箱設(shè)備由一個揚聲器和一個麥克風(fēng)陣列組成,回聲路徑為線性系統(tǒng)。
圖1 智能音箱環(huán)境下的聲學(xué)模型Fig. 1 Acoustic model in smart speaker environment
在STFT 域,令Sn(l,k)表示語音信號,Dn(l,k)表示回聲信號,Vn(l,k)表示背景噪聲,則第n個麥克風(fēng)接收信號表示為:
Yn(l,k) = Dn(l,k) + Sn(l,k) + Vn(l,k) (1)其中:l、k、n 分別表示幀索引、域帶索引、麥克風(fēng)索引,n ∈{1,2,…,N}。當(dāng)房間混響較大時,回聲信號可以使用卷積傳遞函數(shù)(Convolutive Transfer Function,CTF)[16]近似表示為:
其中:
上腳標(biāo)(·)Τ和(·)Η表示轉(zhuǎn)置和共軛轉(zhuǎn)置;hn(l,k)是揚聲器和麥克風(fēng)之間的第n 個AETF 向量;B 為hn(l,k)的長度;X(l,k)是揚聲器播放的信號,鑒于AEC的特殊應(yīng)用,X(l,k)是可以采集到的,通常在AEC中當(dāng)作參考信號。
根據(jù)麥克風(fēng)陣列的空間結(jié)構(gòu),類比相對傳遞函數(shù)(Relative Transfer Function,RTF)[17],第一通道與其他通道間的聲學(xué)回聲傳遞函數(shù)比或RETF表示為:
這里僅使用一個CTF[16]長度來近似表示RTF、RETF。則第n個麥克風(fēng)接收信號可以改寫為:
Yn(l,k) = Rn(l,k)D1(l,k) + Vn(l,k) + Cn(l,k)S1(l,k) (4)其中:Cn(l,k)為每通道目標(biāo)語音信號的RTF。
本文的ERETF-GSAEC 麥克風(fēng)陣列快速回聲消除算法框圖如圖2 所示,主要包括三部分:固定波束形成、噪聲參考信號估計和自適應(yīng)波束形成。
圖2 ERETF-GSAEC回聲消除算法框圖Fig. 2 Block diagram of ERETF-GSAEC echo cancellation algorithm
固定波束形成器是利用聲源信號空間方位信息,最大限度輸出期望方向內(nèi)信號。本文算法采用文獻(xiàn)[18]中的固定波束形成器,使得波束指向目標(biāo)語音信號方向。
其中:
c(l,k)表示目標(biāo)語音信號RTF向量;w(l,k)表示固定波束形成器權(quán)系數(shù)。則固定波束形成的輸出為:
其中:y(l,k) =[Y1(l,k),Y2(l,k),…,YN(l,k)]Τ是麥克風(fēng)陣列接收信號。YFBF(l,k)作為上支路語音參考信號。
如圖3 所示,利用回聲估計算法替代傳統(tǒng)GSC 算法的阻塞矩陣模塊,能有效地避免阻塞矩陣構(gòu)造不合適而造成的阻塞剩余和目標(biāo)語音信號抵消等缺點。
圖3 ERETF-AEC回聲估計算法框圖Fig. 3 Block diagram of ERETF-AEC echo estimation algorithm
2.2.1 AETF-AEC算法
AETF-AEC 算法在STFT 域中采用自適應(yīng)濾波技術(shù),在沒有語音信號存在時(即回聲幀),不斷更新?lián)P聲器和麥克風(fēng)之間的AETF,利用估計的AETF 對揚聲器播放信號進(jìn)行濾波得到回聲信號:
其中:“^”表示估計。當(dāng)有語音信號存在時,停止更新,計算出回聲,隨后從麥克風(fēng)信號中減去,從而使回聲減少。則第一通道誤差信號表示為:
該算法利用最小均方誤差作為代價函數(shù),使用梯度下降自適應(yīng)算法進(jìn)行更新,則更新等式表示為:
M1(l,k)是一個B × B的自適應(yīng)步長矩陣,表達(dá)式為:
φx(l,k)表示相關(guān)矩陣,采用平滑方式得到,表達(dá)式為:
其中:μ 為固定步長;β 為遺忘因子。所以AETF-AEC 算法的復(fù)雜度與CTF長度即濾波器長度B成正比。
2.2.2 RETF估計
RETF-AEC 算法[9]利用自適應(yīng)濾波算法來不斷更新RETF。更新等式表示為:
其中:
n ∈{2,3,…,N},P <B;Qn(l,k)是一個P × P 的自適應(yīng)步長矩陣,與M1(l,k)計算相同。所以RETF-AEC 算法[9]計算量與濾波器長度P 成正比。由于自適應(yīng)濾波算法較為復(fù)雜,并沒有大幅度提高計算量。
RETF 由陣列的空間結(jié)構(gòu)決定,當(dāng)回聲路徑為線性系統(tǒng)時,RETF不隨時間的變化而變化,并不需要時時更新,所以可以取出前1 s的語音,只需估計一次陣列間的RETF,之后便不再更新,作為定值,當(dāng)作整段信號的RETF。本文RETF 估計算法在回聲幀先估計出噪聲信號,從麥克風(fēng)信號中減去,再以第一通道為基準(zhǔn),得到估計的Rn(l,k),表達(dá)式為:
所以,當(dāng)n ∈{2,3,…,N}時,回聲估計可以表示為:
采用文獻(xiàn)[18]中的自適應(yīng)波束形成器,根據(jù)由固定波束形成得到的語音參考信號YFBF(l,k)和自適應(yīng)波束形成噪聲參YANC(l,k)之間的最小均方誤差值來構(gòu)建代價函數(shù):
使用NLMS算法對波束形成器系數(shù)進(jìn)行更新迭代:
其中:
是噪聲參考信號,由估計回聲和估計噪聲向量串聯(lián)組成。
與RETF-AEC 算法[9]相比,本文ERETF-AEC 算法由于不需要自適應(yīng)一直更新每通道的RETF 來估計回聲,只需要利用每通道前1 s 的語音估計出RETF 作為定值,所以使估計回聲的計算量降低。與MCWF-AEC 算法[9]相比,本文ERETFGSAEC 算法選擇GSC 波束形成技術(shù),將估計的每通道回聲信號不直接從麥克風(fēng)信號中減去,而是通過GSC 中自適應(yīng)波束形成器去除回聲和噪聲。所以該算法不需要自適應(yīng)估計每通道的殘留回聲,從而使波束形成計算量減少,同時避免了由于殘留回聲估計過高,而使目標(biāo)語音失真的現(xiàn)象。
按照實際設(shè)備的運行環(huán)境,設(shè)置本次實驗仿真,模擬一個智能音箱設(shè)備,它由一個揚聲器和一個麥克風(fēng)陣列組成。麥克風(fēng)陣列是由四個麥克風(fēng)組成的均勻線性陣列,麥克風(fēng)的間距是1.5 cm;揚聲器與陣列中心之間的距離為10 cm;揚聲器播放信號的到達(dá)方向設(shè)定為12°;此外,將所需的遠(yuǎn)場目標(biāo)信號用另一個揚聲器模擬,放置在距離陣列中心2.5 m,71°處;選擇與揚聲器最接近的麥克風(fēng)作為主麥克風(fēng),即n=1。
實驗使用文獻(xiàn)[19]中的房間脈沖發(fā)生器,用鏡像法對一個尺寸為(3× 5× 2.5)m3的房間產(chǎn)生兩組AIR,每一組為有4個AIR。房間的混響時間設(shè)定為0.35 s。采樣率為fs=16 kHz,避免由于AETF的模型不足造成的殘留回聲,截斷AIR的長度L=1 536 個樣本,選定的長度可確保截斷的AIR 覆蓋早期反射。
圖4 為各語音時域信號波形。從酷狗音樂中下載音樂“最美的太陽”,截選12.5 s當(dāng)作智能音箱揚聲器播放信號,如圖4(a)所示;通過將截斷的第一組AIR 與揚聲器播放信號進(jìn)行卷積生成回聲信號,第一通道回聲信號如圖4(b)所示;將互不相關(guān)的白噪聲信號添加到麥克風(fēng)信號以模擬不同的ENR;從標(biāo)準(zhǔn)TIMIT 語音庫選取2.5 s 語音作為目標(biāo)信號,如圖4(c)所示,通過將目標(biāo)信號與第二組AIR 進(jìn)行卷積來生成語音信號,以第一通道的語音信號當(dāng)作目標(biāo)語音信號,如圖4(d)所示。在第10 s 后,以回信比(Echo Signal Ratio,ESR)的方式將語音信號加到麥克風(fēng)信號中。即0~10 s 屬于回聲幀。
圖4 各語音時域信號波形Fig. 4 Each speech time-domain signal waveform
STFT 的長度K = 512,窗選擇漢明窗,幀移R = 128,AETF濾波器長度B如下:其中:“「·」”表示取整。自適應(yīng)濾波器固定步長為μ = 0.1,遺忘因子β如下:
將本文改進(jìn)的回聲估計算法ERETF-AEC 與RETF-AEC算法[9]進(jìn)行性能比較?;芈暪烙嫷男阅懿捎没芈暦祷?fù)p耗增益(Echo Return Loss Enhancement,ERLE)表示回聲信號與殘留回聲的比值,值越高性能越好。
表1為ENR為-5 dB、0 dB、5 dB與10 dB的回聲估計情況。表1 中數(shù)值為總時間段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 時不同算法在有目標(biāo)語音出現(xiàn)幀的回聲估計時域信號波形。從圖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)作為目標(biāo)語音信號回聲消除算法性能客觀評估標(biāo)準(zhǔn),對MCWFAEC 算法[9]和本文算法的性能在可懂度和失真方面進(jìn)行評估,評估值越高算法的性能越好。
由于噪聲估計算法并不在本文研究之內(nèi),所以采用真實噪聲信號進(jìn)行實驗。目標(biāo)語音信號的RTF在線下進(jìn)行計算。
如圖6 所示,給出了在ENR 為0 dB 和ESR 為0 dB 時兩種算法波束形成后的時域波形圖。從圖6(c)中可以看出:MCWF-AEC算法[9]在能量較大的語音幀,有明顯的語音失真;本文算法能較好地保證重構(gòu)語音質(zhì)量,實現(xiàn)回聲消除和去噪。
圖6 回噪比和回信比均為0 dB時不同算法的目標(biāo)語音時域信號波形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時,回聲消除性能會下降??傮w上看,本文算法SDR 與STOI評估指標(biāo)存在著明顯優(yōu)勢。這說明對于噪聲環(huán)境與回信比的變化,ERETF-GSAEC 模型能夠更好地消除回聲和抑制噪聲,能更好地提高目標(biāo)語音可懂度,減少語音失真。
信號語譜圖顏色的深淺和清晰度能夠反映語音信號能量的大小和語音的質(zhì)量。如圖7 所示,給出了MCWF-AEC 算法[9]和 本 文 算 法 在ENR 和ESR 均 為0 dB 時 的 語 譜 圖。從圖7(d)可以發(fā)現(xiàn),在該條件下回聲和噪聲分布在整個頻段,語音受到嚴(yán)重干擾,目標(biāo)語音信號幾乎被淹沒。圖7(e)顯示MCWF-AEC 算法雖然能夠很好地減少回聲和噪聲的影響,但在低回噪比情況下,由于MCWF-AEC 算法殘留回聲估計過高,會過度地去除回聲和噪聲,使一些頻點丟失,導(dǎo)致語音失真。本文ERETF-GSAEC 算法通過自適應(yīng)波束形成去除回聲和噪聲,在保證去噪的情況下,頻點不丟失,這是由于采用GSC 波束形成算法在不同信噪比下具有較強(qiáng)的穩(wěn)定性。因此,本文算法能夠有效地減少目標(biāo)語音失真,提高回聲和噪聲抑制的能力。
表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
考慮到多通道回聲消除的復(fù)雜性,本文提出了相對回聲傳遞函數(shù)的多通道回聲估計算法——ERETF-AEC,能使計算量減少;然后結(jié)合ERETF-AEC算法又提出了一種麥克風(fēng)陣列快速回聲消除算法——ERETF-GSAEC,以有效地避免阻塞矩陣構(gòu)造不合適和殘留回聲估計過高而引起目標(biāo)語音信號失真的現(xiàn)象,獲得更好的目標(biāo)語音信號。實驗結(jié)果表明,在不同回噪比和回信比下從回聲估計和目標(biāo)語音信號信源失真率和可懂度三方面,客觀評測參數(shù)顯示本文算法有效地抑制了回聲和噪聲,減小了語音的失真度。未來可以在立體聲加麥克風(fēng)陣列回聲消除方向進(jìn)行研究。