黃 瑛,唐 昆,崔慧娟
(清華大學(xué) 電子工程系 清華信息科學(xué)與技術(shù)國(guó)家實(shí)驗(yàn)室, 北京100084)
聲回聲抵消中一個(gè)重要的問(wèn)題是回聲路徑較長(zhǎng),且易受近端語(yǔ)音的干擾?;芈暤窒嘁宰赃m應(yīng)濾波器來(lái)模擬真實(shí)回聲路徑,通過(guò)殘差信號(hào)來(lái)自適應(yīng)調(diào)整濾波器的系數(shù)[1]。當(dāng)近端存在語(yǔ)音時(shí),將引起濾波器的發(fā)散。雙話處理一直是回聲抵消中的一個(gè)重要問(wèn)題。Geigel 算法基于能量進(jìn)行檢測(cè),該算法簡(jiǎn)單,但是隨著路徑的改變或者未知情況下,性能變差;H.Ye[2]提出了正交方法,該方法利用自適應(yīng)濾波器在收斂狀況下殘差信號(hào)與遠(yuǎn)端輸入信號(hào)正交的特點(diǎn)來(lái)檢測(cè)濾波器收斂狀況而不是檢測(cè)雙話,此算法運(yùn)算量大,且固定門限的判決容易造成雙話與路徑變化之間的誤判;Jacob Benesty[3-4]等利用參考信號(hào)與遠(yuǎn)端信號(hào)或殘差信號(hào)的互相關(guān)系數(shù)。算法缺點(diǎn)是同樣需要固定的門限,且需要進(jìn)行矩陣運(yùn)算,在回聲路徑較長(zhǎng)的情況下更不利于實(shí)時(shí)實(shí)現(xiàn)。針對(duì)大多數(shù)回聲抵消雙話檢測(cè)算法需要顯式檢測(cè)門限,誤判或者漏判會(huì)導(dǎo)致收斂速度下降或者雙話過(guò)程中濾波器發(fā)散的問(wèn)題,本文基于多延時(shí)塊頻域自適應(yīng)回聲抵消器研究了一種可變學(xué)習(xí)速率算法,該算法不顯示檢測(cè)回聲,而是采用一種可變的連續(xù)學(xué)習(xí)速率的調(diào)整方法。將速率建模成殘留回聲與輸出信號(hào)能量的比重。由于輸出信號(hào)殘留回聲能量的估計(jì)值比較困難,將殘留回聲建模成為一種難以估計(jì)的變化緩慢的泄露因子和一種容易估計(jì)快速的回聲副本的能量。原有算法采用線性回歸系數(shù)估計(jì)泄露因子,然而,隨著近端語(yǔ)音能量增加,估計(jì)偏差增大,導(dǎo)致雙話性能下降。本文引入了一種基于近端語(yǔ)音和遠(yuǎn)端語(yǔ)音能量比修正泄露因子的方法,即能量比顯式檢測(cè)與連續(xù)學(xué)習(xí)速率相結(jié)合。實(shí)驗(yàn)證明,本文算法改進(jìn)了原算法的缺陷,雙話跟蹤效果更好,發(fā)散減小。
回聲主要分為兩種:一是在電話網(wǎng)絡(luò)中,由于用戶端與交換局之間二、四線轉(zhuǎn)換時(shí)阻抗不匹配產(chǎn)生的線路回聲,也稱電回聲;二是伴隨著免提電話,由于麥克風(fēng)與揚(yáng)聲器之間的耦合產(chǎn)生的聲回聲。圖1為聲回聲產(chǎn)生的原理框圖。
圖1 聲回聲產(chǎn)生原理圖Fig.1 Diagram of acoustic echo production
為了避免回聲的存在引起語(yǔ)音質(zhì)量的下降,如何處理回聲十分重要。通常通過(guò)自適應(yīng)濾波器來(lái)模擬實(shí)際的回聲路徑,然后從回聲信號(hào)中減去模擬的回聲從而達(dá)到消除回聲的目的。自適應(yīng)濾波算法分為時(shí)域算法和頻域算法兩種[1]。在處理延時(shí)較長(zhǎng)的聲回聲信號(hào)時(shí),對(duì)濾波器階數(shù)要求較高,為節(jié)省運(yùn)算保證實(shí)時(shí)實(shí)現(xiàn),通常采用頻域自適應(yīng)濾波算法。Soo J.-S.[5]提出了一種多延時(shí)塊的頻域自適應(yīng)濾波算法,通過(guò)將濾波器分成多個(gè)延時(shí)塊,該算法比整塊頻域?yàn)V波的FLMS 算法收斂速度更快,延時(shí)更小。計(jì)算線性卷積和相關(guān)通常采用重疊保留法和重疊相加法。以重疊保留50%為例,設(shè)N 是權(quán)值總數(shù), M 是延遲塊數(shù),每塊大小N/M ,每次輸入一個(gè)延時(shí)塊即N/M 個(gè)數(shù)據(jù)樣點(diǎn),并保留前一塊的輸入值,做FFT運(yùn)算轉(zhuǎn)換到頻域,N′=2N/M 是FFT 算法的大小:
式中,j 是塊標(biāo)號(hào)。每幀只需要進(jìn)行一次FFT 運(yùn)算,通過(guò)塊標(biāo)號(hào)的移位保留前面M-1 個(gè)延時(shí)塊的FFT[5]:
W(m ,j)為第m 個(gè)延時(shí)塊的權(quán)值向量,即用來(lái)模擬回聲路徑濾波器的系數(shù)向量,頻域乘積進(jìn)行濾波得到估計(jì)的回聲副本[5]為
將真實(shí)語(yǔ)音中去除回聲副本所得殘留回聲的誤差向量變換到頻域,用來(lái)更新頻域?yàn)V波器的系數(shù)[5]:
d(j)是遠(yuǎn)端信號(hào)經(jīng)過(guò)實(shí)際回聲路徑后產(chǎn)生的回聲,即期望向量,頻域?yàn)V波器系數(shù)更新是基于最小均方誤差準(zhǔn)則,使得E(E(j)2)最小[5]:
為避免近端語(yǔ)音或者噪聲引起的濾波器發(fā)散,Jean-Marc Valin[6]提出了一種動(dòng)態(tài)調(diào)整學(xué)習(xí)速率的算法,通過(guò)最小化系數(shù)的誤調(diào)程度,求解得到最優(yōu)學(xué)習(xí)速率表示為殘留回聲能量占輸出信號(hào)能量的比重:
將該速率用于MDF 算法,得到第l 延時(shí)塊的頻點(diǎn)k處學(xué)習(xí)速率[6]為
殘留回聲的能量估計(jì)表示成了一個(gè)緩慢變化但是難以估計(jì)的量 η(l)和一個(gè)快速變化但是容易估計(jì)的
其中, η(l)是泄露因子, 近似回聲返回增強(qiáng)損失ELRE 的倒數(shù)。為了使得學(xué)習(xí)速率對(duì)于雙話情形能夠給出快速的響應(yīng),通常采用瞬時(shí)估計(jì)
由于殘留回聲與回聲副本相關(guān)度較高,而近端語(yǔ)音與回聲副本不相關(guān),因此以回聲副本和輸出信號(hào)的功率譜的線性回歸來(lái)估計(jì)泄露因子[6]:
泄露因子可以表示成PY(k , l)、PE(k , l)的線性回歸系數(shù)[6]:
相關(guān)值可以通過(guò)下列遞歸運(yùn)算得到[6]:
其中:
β0是泄露系數(shù)的學(xué)習(xí)速率, σ2y(l)、 σ2e(l)分別是回聲副本與輸出信號(hào)的方差。β(l)可以防止估計(jì)值在沒(méi)有回聲的時(shí)候被調(diào)整。
上文將殘留回聲建模成一個(gè)緩慢變化但是難以估計(jì)的量 η(l)和一個(gè)快速變化但是容易估計(jì) σ2y(k , l)。假設(shè)的前提是近端語(yǔ)音與回聲副本之間是獨(dú)立的,而殘留回聲與回聲副本能量之間卻是高度相關(guān)的。因此在雙話情況下,泄露因子 η(l)較小,學(xué)習(xí)速率較低,從而有效避免雙話下的濾波器發(fā)散。然而在實(shí)際語(yǔ)音測(cè)試中我們發(fā)現(xiàn),隨著近端語(yǔ)音的增加,上述方法并不能精準(zhǔn)地估計(jì)泄露因子。本文將一段語(yǔ)音經(jīng)過(guò)回聲路徑以后,在回聲中1 900~2 900幀(160 樣點(diǎn)/幀)的范圍,加入近端語(yǔ)音。近端語(yǔ)音與遠(yuǎn)端能量比分別為6 dB、0 dB、-3 dB、-6 dB。從圖2 中可以看出,隨著近端語(yǔ)音能量的增加,泄露因子越來(lái)越大,導(dǎo)致學(xué)習(xí)速率也隨之提高,失調(diào)增大。如圖3 所示,在近端語(yǔ)音比較高的時(shí)候,意味著殘留回聲隨之增大,回聲抵消性能下降。
圖2 在不同近遠(yuǎn)端能量比下原算法的泄露因子Fig.2 Leakage of original algorithm with different near to far end energy ratio
圖3 近遠(yuǎn)端能量比6 dB 情況下,回聲抵消后殘留回聲輸出圖Fig.3 Residual echo with near to far end energy ratio at 6 dB
因此,在本文中,我們采用近端與遠(yuǎn)端信號(hào)短時(shí)能量比修正泄露因子,從而調(diào)整連續(xù)學(xué)習(xí)速率。首先估計(jì)近端語(yǔ)音和遠(yuǎn)端語(yǔ)音的本幀能量:
通過(guò)一階平滑估計(jì)短時(shí)平均能量如下式,其中平滑因子λ∈(0,1):
利用兩個(gè)短時(shí)平均能量修正泄露因子如下,當(dāng)近端語(yǔ)音能量小于遠(yuǎn)端語(yǔ)音能量,采用原來(lái)的線性回歸,當(dāng)近端語(yǔ)音能量大于遠(yuǎn)端語(yǔ)音能量,利用兩者的能量比以及修正因子α相結(jié)合,進(jìn)行修正:
式中, α為修正因子, α∈(0,1)。該改進(jìn)實(shí)際上是一種原可變學(xué)習(xí)速率與短時(shí)能量比顯式檢測(cè)的結(jié)合。當(dāng)近端語(yǔ)音短時(shí)能量高于遠(yuǎn)端信號(hào)時(shí),判決為近端語(yǔ)音存在,利用能量比與自適應(yīng)因子衰減原學(xué)習(xí)速率,從而減小濾波器的發(fā)散。
測(cè)試條件:本文基于800 階160 延時(shí)塊的MDF算法,采用本文修正的泄露因子估計(jì)法?;芈暵窂讲扇.168 中的mode1,沖激響應(yīng)和頻響特性如圖4和圖5 所示。通過(guò)引入延時(shí)使得延時(shí)約為70 ms。采用8 kHz采樣、16 bit量化的標(biāo)準(zhǔn)語(yǔ)音庫(kù)語(yǔ)音材料。在回聲中加入近端語(yǔ)音,近端語(yǔ)音/遠(yuǎn)端語(yǔ)音能量比分別為6 dB、0 dB、-3 dB、-6 dB。
圖4 回聲路徑的沖激響應(yīng)Fig.4 Impu lse response of echo path
圖5 回聲路徑的頻響特性Fig.5 Frequency response of echo path
雙話性能可以通過(guò)多種指標(biāo)的測(cè)試結(jié)果來(lái)反映[7-8],本文主要從以下三方面對(duì)算法性能進(jìn)行測(cè)試。
(1)泄露因子與殘留回聲波形
圖6 是在不同近遠(yuǎn)端能量比下改進(jìn)算法的泄露因子,圖7 是6 dB 近遠(yuǎn)端能量比下改進(jìn)前后殘留回聲比較。
圖6 在不同近遠(yuǎn)端能量比下改進(jìn)算法的泄露因子Fig.6 Leakage of proposed algorithm with different near to far end energy ratio
圖7 6 dB 近遠(yuǎn)端能量比下, 改進(jìn)前后殘留回聲比較Fig.7 Comparison of residual echo with near to far end energy ratio at 6dB
由圖6 和圖7 可知,采用改進(jìn)的算法,泄露因子并不隨著近端語(yǔ)音能量的增加而增加,只有少許偏差。在近端語(yǔ)音能量較高(如近/遠(yuǎn)端能量比6 dB)的雙話情況下,殘留回聲的幅度相比原算法大大衰減。
(2)回聲返回?fù)p失增加度(ERLE)
ERLE 表征經(jīng)過(guò)回聲抵消處理以后殘留回聲相對(duì)于原來(lái)回聲衰減的分貝值。該數(shù)值越大,表明回聲衰減程度越大。該參數(shù)的表達(dá)式如下:
實(shí)際測(cè)試中,將上式中語(yǔ)音能量的期望值采用短時(shí)絕對(duì)能量代替,以計(jì)算每0.01 ms時(shí)間長(zhǎng)度的語(yǔ)音段的能量為例,對(duì)于8 kHz采樣的語(yǔ)音來(lái)說(shuō),即連續(xù)80 個(gè)樣點(diǎn)的能量比,具體計(jì)算公式如下:
表1 是不同近遠(yuǎn)端能量比下ERLE 的比較。
表1 不同近遠(yuǎn)端能量比下ERLE 比較Table 1 Comparison of ERLE with different near to far end energy ratio
從表1 可以看出,采用本文算法殘留回聲返回?fù)p失增強(qiáng)度有較大提高,其中近端語(yǔ)音與遠(yuǎn)端語(yǔ)音能量比6 dB和3 dB情況下,提高11 dB和5.8 dB。隨著近端語(yǔ)音能量越高,改進(jìn)效果越明顯。
(3)平均意見得分
對(duì)雙話情況下近端語(yǔ)音的主觀聽覺質(zhì)量進(jìn)行了測(cè)試,用以區(qū)分不同雙話檢測(cè)算法下近端語(yǔ)音的失真度量。采用ITU 標(biāo)準(zhǔn)P.862 軟件測(cè)試平均意見得分(Mean Opinion Score,MOS),該軟件通常用于語(yǔ)音編解碼系統(tǒng)或者降噪系統(tǒng)的語(yǔ)音質(zhì)量性能評(píng)估,在本文的實(shí)驗(yàn)中能夠反映殘留回聲的能量大小。
表2 是不同近遠(yuǎn)端能量比下MOS 分比較。
表2 不同近遠(yuǎn)端能量比下MOS 分比較Table 2 Comparison of MOS with different near to far end energy ratio
從表2 可以看出,采用本文算法雙話情況下近端語(yǔ)音MOS 分有較大提高,其中近端語(yǔ)音與遠(yuǎn)端語(yǔ)音能量比6 dB和3 dB情況下,提高0.449 和0.235。隨著近端語(yǔ)音能量越高,改進(jìn)效果越明顯。
本文基于多延時(shí)塊頻域自適應(yīng)回聲抵消算法,采用改進(jìn)的短時(shí)能量比顯示檢測(cè)與連續(xù)可變學(xué)習(xí)速率結(jié)合的方法來(lái)處理雙話,解決了原可變速率中由于殘留回聲估計(jì)的泄露因子隨著近端語(yǔ)音能量的增加偏差增大,引起殘留回聲增加的問(wèn)題。實(shí)驗(yàn)證明,該算法能較大程度上修正原算法的問(wèn)題,提高雙話情況下的ERLE 和近端語(yǔ)音的MOS 分。在近遠(yuǎn)端能量比-6 ~6 dB范圍內(nèi),兩者分別提高0 ~11 dB和0.02 ~0.45 分。因此,在聲回聲抵消過(guò)程中,固定門限雙話與連續(xù)可調(diào)學(xué)習(xí)速率兩者結(jié)合起來(lái),可以使得雙話性能更好。
[1] Haykin S.自適應(yīng)濾波器原理[M] .4 版.鄭寶玉, 譯.北京:電子工業(yè)出版社, 2006.
Haykin S.Adaptive Filter Theory[M] .4th ed.Translated by ZHENG Bao-yu.Beijing:Publishing House of Electronics Industry, 2006.(in Chinese)
[2] Ye H, Wu B X.A new doub le-talk detection algorithm based on the orthogonality theorem [ J] .IEEE Transactions on Communications, 1991, 39(11):1542-1545.
[3] Benesty J, Morgan D R, Cho J H.A new class of doubletalk detectors based on cross-correlation[ J] .IEEE Transactions on Speech and Audio Processing, 2000, 8(2):168-172.
[4] lqbal M A, Stokes J W, Grant S L.Normalized Double-Talk Detection Based on Microphone and AEC Error Cross-Correlation[C]//Proceedings of 2007 IEEE International Conference on Multimedia and Expo.Beijing:IEEE,2007:360-363.
[5] Soo J S, Pang K.Multidelay block frequency domain adap tive filter[ J] .IEEE Transactions on Acoustics, Speech and Signal Processing, 1990, 38(2):373-376.
[6] Valin Jean-Marc.On Ad justing the Learning Rate in Frequency Domain Echo Cancellation With Double-Talk [ J] .IEEE Transactions on Audio, Speech, and Language Processing, 2007, 15(3):1030-1034.
[ 7] Cho J H, Morgan D R, Benesty J.An objective technique for evaluating doubletalk detectors in acoustic echo cancellers[ J] .IEEE Transactions on Speech and Audio Processing,1999, 7(2):718-724.
[8] Ahgren P, Jakobsson A.A study of doub le-talk detection performance in the presence of acoustic echo path changes[ C]//Proceedings of 2005 Internatinal Conference on Acoustics, Speech and Signal Processing.Vienna, Austria:IEEE,2005:141-144.