發(fā)布時間:2024-04-15 文章來源:深度系統(tǒng)下載 瀏覽:
一、前言
因為工作的關系,筆者從2004年開始接觸回聲消除(Echo Cancellation)技術,而后一直在某大型通訊企業(yè)從事與回聲消除技術相關的工作,對回聲消除這個看似神秘、高端和難以理解的技術領域可謂知之甚詳。
要了解回聲消除技術的來龍去脈,不得不提及作為現(xiàn)代通訊技術的理論基礎——數(shù)字信號處理理論。首先,數(shù)字信號處理理論里面有一門重要的分支,叫做自適應信號處理。而在經(jīng)典的教材里面,回聲消除問題從來都是作為一個經(jīng)典的自適應信號處理案例來討論的。既然回聲消除在教科書上都作為一種經(jīng)典的具體的應用,也就是說在理論角度是沒有什么神秘和新鮮的,那么回聲消除的難度在哪里?為什么提供回聲消除技術(不管是芯片還是算法)的公司都是來自國外?回聲消除技術的神秘性在哪里?
二、回聲消除原理
從通訊回音產(chǎn)生的原因看,可以分為聲學回音(Acoustic Echo)和線路回音(Line Echo),相應的回聲消除技術就叫聲學回聲消除(Acoustic Echo Cancellation,AEC)和線路回聲消除(Line Echo Cancellation, LEC)。聲學回音是由于在免提或者會議應用中,揚聲器的聲音多次反饋到麥克風引起的(比較好理解);線路回音是由于物理電子線路的二四線匹配耦合引起的(比較難理解)。
回音的產(chǎn)生主要有兩種原因:
1. 由于空間聲學反射產(chǎn)生的聲學回音(見下圖):
圖中的男子說話,語音信號(speech1)傳到女士所在的房間,由于空間的反射,形成回音speech1(Echo)重新從麥克風輸入,同時疊加了女士的語音信號(speech2)。此時男子將會聽到女士的聲音疊加了自己的聲音,影響了正常的通話質(zhì)量。此
2. 由于2-4線轉(zhuǎn)換引入的線路回音(見下圖):
在ADSL Modem和交換機上都存在2-4線轉(zhuǎn)換的電路,由于電路存在不匹配的問題,會有一部分的信號被反饋回來,形成了回音。如果在交換機側(cè)不加回音抵消功能,打電話的人就會自己聽到自己的聲音。
不管產(chǎn)生的原因如何,對語音通訊終端或者語音中繼交換機需要做的事情都一樣:在發(fā)送時,把不需要的回音從語音流中間去掉。
試想一下,對一個至少混合了兩個聲音的語音流,要把它們分開,然后去掉其中一個,難度何其之大。就像一瓶藍墨水和一瓶紅墨水倒在一起,然后需要把紅墨水提取出來,這恐怕不可能了。所以回聲消除被認為是神秘和難以理解的技術也就不奇怪了。誠然,如果僅僅單獨拿來一段混合了回音的語音信號,要去掉回音也是不可能的(就算是最先進的盲信號分離技術也做不到)。但是,實際上,除了這個混合信號,我們是可以得到產(chǎn)生回音的原始信號的,雖然不同于回音信號。
我們看下面的AEC聲學回聲消除框圖(本圖片轉(zhuǎn)載)。
Figure Acoustic Echo Cancellation in a voice communication terminal
其中,我們可以得到兩個信號:一個是藍色和紅色混合的信號1,也就是實際需要發(fā)送的speech和實際不需要的echo混合而成的語音流;另一個就是虛線的信號2,也就是原始的引起回音的語音。那大家會說,哦,原來回聲消除這么簡單,直接從混合信號1里面把把這個虛線的2減掉不就行了?請注意,拿到的這個虛線信號2和回音echo是有差異的,直接相減會使語音面目全非。我們把混合信號1叫做近端信號ne,虛線信號2叫做遠端參考信號fe,如果沒有fe這個信號,回聲消除就是不可能完成的任務,就像“巧婦難為無米之炊”。
雖然參考信號fe和echo不完全一樣,存在差異,但是二者是高度相關的,這也是echo稱之為回音的原因。至少,回音的語義和參考信號是一樣的,也還聽得懂,但是如果你說一句,馬上又聽到自己的話回來一句,那是比較難受的。既然fe和echo高度相關,echo又是fe引起的,我們可以把echo表示為fe的數(shù)學函數(shù):echo=F(fe)。函數(shù)F被稱之為回音路徑。在聲學回聲消除里面,函數(shù)F表示聲音在墻壁,天花板等表面多次反射的物理過程;在線路回聲消除里面,函數(shù)F表示電子線路的二四線匹配耦合過程。很顯然,我們下面要做的工作就是求解函數(shù)F。得到函數(shù)F就可以從fe計算得到echo,然后從混合信號1里面減掉echo就實現(xiàn)了回聲消除。
盡管回聲消除是非常復雜的技術,但我們可以簡單的描述這種處理方法:
1、房間A的音頻會議系統(tǒng)接收到房間B中的聲音
2、聲音被采樣,這一采樣被稱為回聲消除參考
3、隨后聲音被送到房間A的音箱和聲學回聲消除器中
4、房間B的聲音和房間A的聲音一起被房間A的話筒拾取
5、聲音被送到聲學回聲消除器中,與原始的采樣進行比較,移除房間B的聲音
求解回音路徑函數(shù)F的過程恐怕就是比較難以表達的數(shù)學公式了。鑒于通俗表達數(shù)學公式的難度比發(fā)現(xiàn)數(shù)學公式還難,筆者就不費力解釋了。下面這段表達了利用自適應濾波器原理求解函數(shù)F的過程。(以下可以跳過)
自適應濾波器
自適應濾波器是以輸入和輸出信號的統(tǒng)計特性的估計為依據(jù),采取特定算法自動地調(diào)整濾波器系數(shù),使其達到最佳濾波特性的一種算法或裝置。自適應濾波器可以是連續(xù)域的或是離散域的。離散域自適應濾波器由一組抽頭延遲線、可變加權系數(shù)和自動調(diào)整系數(shù)的機構(gòu)組成。附圖表示一個離散域自適應濾波器用于模擬未知離散系統(tǒng)的信號流圖。自適應濾波器對輸入信號序列x(n)的每一個樣值,按特定的算法,更新、調(diào)整加權系數(shù),使輸出信號序列y(n)與期望輸出信號序列d(n)相比較的均方誤差為最小,即輸出信號序列y(n)逼近期望信號序列d(n)。
以最小均方誤差為準則設計的自適應濾波器的系數(shù)可以由維納-霍甫夫方程解得。
B.維德羅提出的一種方法,能實時求解自適應濾波器系數(shù),其結(jié)果接近維納-霍甫夫方程近似解。這種算法稱為最小均方算法或簡稱 LMS法。這一算法利用最陡下降法,由均方誤差的梯度估計從現(xiàn)時刻濾波器系數(shù)向量迭代計算下一個時刻的系數(shù)向量
式中ks為一負數(shù),它的取值決定算法的收斂性, V【ε2(n)】為均方誤差梯度估計,
自適應濾波器應用于通信領域的自動均衡、回聲消除、天線陣波束形成,以及其他有關領域信號處理的參數(shù)識別、噪聲消除、譜估計等方面。對于不同的應用,只是所加輸入信號和期望信號不同,基本原理則是相同的。(以上部分可以跳過)
上面這段話表明,需要求解的回音路徑函數(shù)F就是一個自適應濾波器W(n)收斂的過程。所加輸入信號x(n)是fe,期望信號是echo,自適應濾波器收斂后的W(n)就是回音路徑函數(shù)F。 收斂之后,當實際回音發(fā)生,我們把fe通過函數(shù)W(n),就可以得到一個很準確的echo,把混合信號直接減去echo,得到實際需要發(fā)送的語音speech,完成回聲消除任務。
值得注意的兩點:
1、 自適應濾波器收斂階段,期望信號是完全的echo,不能混雜有speech。因為speech和fe是沒有關系的,會擾亂W(n)的收斂過程。也就是說要求回聲消除算法開始運轉(zhuǎn)后收斂要非?,最好對方還來不及說話,你一說就收斂好了;收斂好之后,如果對方開始說話,也就是有speech混合過來,這個W(n)系數(shù)就不要變化了,需要穩(wěn)定下來。
2、 回音路徑可能是變化的,一旦出現(xiàn)變化,回聲消除算法要能判斷出來,因為自適應濾波器學習要重新開始,也就是W(n)需要一個新的收斂過程,以逼近新的回音路徑函數(shù)F。
基本上來說,上面這兩點是兩難的,一個需要自適應濾波器收斂后保持系數(shù)穩(wěn)定,以保證不受speech說話干擾,另一個需要自適應濾波器隨時保持更新狀態(tài),以保證能夠追蹤變化的回音路徑。這樣一來,僅從數(shù)學算法層面,回聲消除已經(jīng)是難上加難!簡單地說,回聲消除自適應濾波器的設計具有兩個互相矛盾的特性,也就是快速收斂和高度的穩(wěn)定性,如何同時實現(xiàn)這兩項特性,正是設計上的主要挑戰(zhàn)。
經(jīng)過上面的分析,相信大家對回聲消除的原理和技術有了深刻的理解,這是一門即容易理解又難以實現(xiàn)的技術。
從應用平臺來看,根據(jù)筆者多年的經(jīng)驗,可以把回聲消除分為兩大類:基于DSP等實時平臺的回聲消除技術和基于Windows等非實時平臺的回聲消除技術。兩者的技術難度和重點是不一樣的。
三、基于DSP平臺的回聲消除技術
回聲消除技術傳統(tǒng)的應用領域是各種嵌入式設備,包括各種電信網(wǎng)絡設備和終端設備。網(wǎng)絡設備比如交換機,網(wǎng)關等等,終端則包括移動電話終端,視頻會議終端等。現(xiàn)代通訊產(chǎn)品里面大量應用了回聲消除技術,包括在我們看得到的終端產(chǎn)品(比如手機)和看不到的局端產(chǎn)品(比如交換機)。這種嵌入式設備的共同點就是采用各種型號的DSP芯片作為回聲消除的載體。一個有效的回聲消除算法需要持續(xù)的在一顆DSP芯片上面運行,會遇到以下方面的難點:
實時性與高效性,因為DSP芯片資源有限。雖然自從二十世紀七十年代DSP應用以來,日新月異的硬件芯片技術使許多沉睡在教科書上的信號處理理論算法大規(guī)模應用,但是回聲消除算法需要的資源還是大得驚人。以視頻會議系統(tǒng),大規(guī)模的會議室可以產(chǎn)生超過512ms的回音,要消除這么長延時的回音,即使按照8k赫茲采樣率計算,自適應濾波器W(n)的長度都會達到4096個點,這樣一方面需要非常大的存儲空間來存儲W(n),另一方面,W(n)的更新需要的計算量也是成倍增長,同時,W(n)的收斂難度也在加大,傳統(tǒng)自適應濾波器的效率很難保證。對于電信設備中的應用,雖然回聲消除不需要這么長的延時,但是在交換機等設備中,成本和效率就是生命,所有的處理算法都是按路或按線計算的,對算法的優(yōu)化效率提出了無止境的要求。相對而言,只有像車載免提這種應用對效率要求不那么高,因為車內(nèi)空間小,回音延時有限,又不要求多路應用。
傳統(tǒng)的回聲消除技術是從國外二十世紀七十年代的早期算法發(fā)展而來,這類技術的采用一直相當昂貴,提供電信級回聲消除硬件應用(包括芯片或者設備)的廠家都是國外的。對于移動網(wǎng)絡用戶來說,語音品質(zhì)一直是他們最關切的議題,對電信業(yè)者來說,語音也仍是他們最能獲利的服務項目,因此語音的品質(zhì)是不容妥協(xié)的。為了滿足今日與未來的網(wǎng)路需求,回聲消除技術的挑戰(zhàn)正在于如何有效地降低成本并持續(xù)改善語音品質(zhì)。
算法級的DSP軟件解決方案,也是解決嵌入式設備回音問題的一種途徑,對用戶也有一定的靈活性,用戶只需要把回聲消除模塊集成到自己的DSP軟件中,再簡單調(diào)整幾個相關參數(shù),就能達到較好的回聲消除效果。
目前基于DSP的回聲消除算法已經(jīng)比較成熟,市場上也有一批專門的算法/芯片公司的能夠?qū)ν馓峁┮呀?jīng)優(yōu)化好的基于DSP的軟件回聲消除模塊:如俄羅斯Spririt DSP、加拿大Octastic Semiconductor、瑞典GIPS、國內(nèi)順暢聲學科技ShunChang Technologies以及美國Adaptive Digital、和GAO Research、英國CSR等等,另外還有美國Fortemedia、Acoustic Technologies和日本OKI等可以提供專用的回聲消除DSP芯片。其中性能較好的有Octastic、ShunChang、和Spririt這三家,Octastic可以提供完整的從專用芯片、板卡到DSP算法的完整方案,而ShunChang和Spririt的回聲消除效果更好。
四、基于Windows平臺的回聲消除技術
回聲消除技術最新的應用領域是基于Windows平臺的各種VoIP應用,比如軟件視頻會議,VoIP軟件電話等。當回聲消除算法應用到Windows平臺,相對于傳統(tǒng)的DSP平臺,既帶來優(yōu)勢,也帶來了新的難點。高效性在Windows平臺已經(jīng)不是問題,現(xiàn)在的pc機,擁有豐富的cpu資源和海量的內(nèi)存資源,再復雜的回聲消除算法都可以運行自如。但是,新增加的麻煩比帶來的好處要多。
首先,Windows平臺是一個非實時的平臺,音頻的采集和播放對回聲消除算法而言,也是非實時的。和DSP平臺不一樣,DSP平臺可以直接控制AD/DA芯片的采集播放,獲得實時的音頻流(不存在同步問題),但是Windows平臺下,應用程序很難在底層直接控制聲卡的采集播放,獲得的是非實時的音頻流,從而帶來了采集和播放音頻流的同步問題。
實際應用時,傳給回聲消除算法的兩個聲音信號(采集的回音信號ne和播放的參考信號fe),必須同步得非常的好。就是說,本地接收到遠端說的話以后,要把這些話音數(shù)據(jù)傳給回聲消除算法做參考,這是一個算法需要的輸入信號;然后再傳給聲卡,聲卡放出來后經(jīng)過回音路徑,這時,本地再采集,然后傳給回聲消除算法,這是算法需要的另一個輸入信號。這里的同步是指:兩個信號雖然存在延時,但這個延時必須固定,在時序上要保持連貫,不能一個信號多來幾個幀,另外一個信號少來幾個幀。如果傳給回聲消除算法的兩個信號同步得不好,即兩個信號發(fā)生幀錯位,就沒有辦法進行消除了。因為這時系統(tǒng)會變成了非因果系統(tǒng),比如期望信號收到了,參考信號還沒來,時間上都沒有因果關系,肯定是沒有辦法消除的。 實際情況是,在一般的VoIP軟件中,接收對方的聲音并傳到聲卡中播放是在一個線程中進行的,而采集本地的聲音并傳送到對方又是在另一個線程中進行的,而聲學回聲消除算法在對采集到的聲音進行回聲消除的同時,還需要播放線程中的數(shù)據(jù)作為參考,而要同步這兩個線程中的數(shù)據(jù)是非常重要的,因為稍稍有些不同步,聲學回聲消除算法中的自適應濾波器就會發(fā)散,不但消除不了回音,還會破壞原始采集到的聲音,使聲音難以分辨。 另外,pc機器的聲卡種類繁多,各種各樣的聲卡特性進一步加劇了同步問題的復雜性。所以,同步和聲卡等問題對回聲消除算法的內(nèi)部特性提出了更多苛刻的要求。
從上面分析來看,由于Windows平臺的非實時性,基于Windows平臺的回聲消除技術比DSP平臺要難得多。
在PC平臺語音通訊領域,目前公認音質(zhì)做得比較好的國外軟件是Skype,記得幾年前Skype一直是在用瑞典一家叫GIPS(Global IP Sound)公司的語音引擎技術。GIPS是最早介入PC平臺語音通訊領域的廠商之一,在改領域具有一定的權威性,其主要優(yōu)勢表現(xiàn)在對IP網(wǎng)絡的延時、抖動和丟包等處理較好,基于Windows平臺的回音消除也做得不錯,不過最近的新版本Skype上已經(jīng)看不到GIPS的標志了,據(jù)說是因為Skype自己研發(fā)了一套新的更好的語音引擎的緣故。目前大家接觸最多的采用了GIPS語音引擎技術的通訊軟件就是騰訊QQ了,其超級語音的效果普遍評價都還不錯。另外微軟經(jīng)過多年的研發(fā),其最新版本的MSN語音特別是回音消除效果終于有了質(zhì)的提升,目前網(wǎng)上評價也還不錯。另外還有一些專業(yè)廠商也對外提供包含回音消除功能的語音引擎,如俄羅斯的Spirit DSP、美國的GH Innovation和國內(nèi)的順暢聲學科技(ShunChang Technologies)以及賽聲科技(SoftAcoustic)等等。除此之外,網(wǎng)絡上還可以下載到一個很好的開源的語音軟件Speex也提供了回音消除功能。為了進一步了解目前PC Windows平臺回音消除技術的業(yè)界水平,筆者對各家的回音消除技術做一個詳細的橫向?qū)Ρ葴y試(所有測試都是免提狀態(tài))
為了對比,各家語音引擎的版本信息列舉如下:
國外廠商:
Skype V3.8.4.182
Spirit DSP(廠家DEMO)
GIPS(QQ 2009beta)
Micorsoft (Windows Live Messenger 2009V14.0.8064.2006)
GH Innovation(廠家DEMO)
國內(nèi)廠商:
ShunChang Technologies(廠家DEMO)
Soft Acoustic(廠家DEMO)
開源算法:
Speex(V1.2RC1 自己寫了測試軟件)
測試結(jié)果:
可以看出,Skype、 ShunChang和 QQ(GIPS)的效果最好, MSN和Spirit的效果還不錯,而GH Innovation、Soft Acoustic效果一般,Speex的效果較差。
五、總結(jié)
回聲消除已經(jīng)成為語音通訊中提供全雙工音頻的標準方法。聲學回聲消除是通過消除或者移除本地話筒中拾取到的遠端的音頻信號來阻止遠端的聲音返回去的一種處理方法。這種音頻的移除都是通過數(shù)字信號處理來完成的;芈曄夹g是數(shù)字信號處理的典型應用之一。 |
上一篇: