(接《解密回聲消除技術之一(理論篇)》)
從應用平臺來看,根據筆者多年的經驗,可以把回聲消除分為兩大類:基于DSP等實時平臺的回聲消除技術和基于Windows等非實時平臺的回聲消除技術。兩者的技術難度和重點是不一樣的。
三、基于DSP平臺的回聲消除技術
回聲消除技術傳統的應用領域是各種嵌入式設備,包括各種電信網絡設備和終端設備。網絡設備比如交換機,網關等等,終端則包括移動電話終端,視頻會議終端等。現代通訊產品里面大量應用了回聲消除技術,包括在我們看得到的終端產品(比如手機)和看不到的局端產品(比如交換機)。這種嵌入式設備的共同點就是采用各種型號的DSP芯片作為回聲消除的載體。一個有效的回聲消除算法需要持續的在一顆DSP芯片上面運行,會遇到以下方面的難點:
實時性與高效性,因為DSP芯片資源有限。雖然自從二十世紀七十年代DSP應用以來,日新月異的硬件芯片技術使許多沉睡在教科書上的信號處理理論算法大規模應用,但是回聲消除算法需要的資源還是大得驚人。以視頻會議系統,大規模的會議室可以產生超過512ms的回音,要消除這么長延時的回音,即使按照8k赫茲采樣率計算,自適應濾波器W(n)的長度都會達到4096個點,這樣一方面需要非常大的存儲空間來存儲W(n),另一方面,W(n)的更新需要的計算量也是成倍增長,同時,W(n)的收斂難度也在加大,傳統自適應濾波器的效率很難保證。對于電信設備中的應用,雖然回聲消除不需要這么長的延時,但是在交換機等設備中,成本和效率就是生命,所有的處理算法都是按路或按線計算的,對算法的優化效率提出了無止境的要求。相對而言,只有像車載免提這種應用對效率要求不那么高,因為車內空間小,回音延時有限,又不要求多路應用。
傳統的回聲消除技術是從國外二十世紀七十年代的早期算法發展而來,這類技術的采用一直相當昂貴,提供電信級回聲消除硬件應用(包括芯片或者設備)的廠家都是國外的。對于移動網絡用戶來說,語音品質一直是他們最關切的議題,對電信業者來說,語音也仍是他們最能獲利的服務項目,因此語音的品質是不容妥協的。為了滿足今日與未來的網路需求,回聲消除技術的挑戰正在于如何有效地降低成本并持續改善語音品質。
算法級的DSP軟件解決方案,也是解決嵌入式設備回音問題的一種途徑,對用戶也有一定的靈活性,用戶只需要把回聲消除模塊集成到自己的DSP軟件中,再簡單調整幾個相關參數,就能達到較好的回聲消除效果。
目前基于DSP的回聲消除算法已經比較成熟,市場上也有一批專門的算法/芯片公司的能夠對外提供已經優化好的基于DSP的軟件回聲消除模塊:如俄羅斯Spririt DSP、加拿大Octastic Semiconductor、瑞典GIPS、國內科萊特斯科技Conatus Technologies以及美國Adaptive Digital、和GAO Research、英國CSR等等,另外還有美國Fortemedia、Acoustic Technologies和日本OKI等可以提供專用的回聲消除DSP芯片。其中性能較好的有Octastic、Conatus、和Spririt這三家,Octastic可以提供完整的從專用芯片、板卡到DSP算法的完整方案,而Conatus和Spririt的回聲消除效果更好,值得一提的是Conatus公司是目前市面上唯一提供針對專業視訊會議應用寬帶回聲消除模塊的公司,其音頻采樣率可以達到48k赫茲。
四、基于Windows平臺的回聲消除技術
回聲消除技術最新的應用領域是基于Windows平臺的各種VoIP應用,比如軟件視頻會議,VoIP軟件電話等。當回聲消除算法應用到Windows平臺,相對于傳統的DSP平臺,既帶來優勢,也帶來了新的難點。高效性在Windows平臺已經不是問題,現在的pc機,擁有豐富的cpu資源和海量的內存資源,再復雜的回聲消除算法都可以運行自如。但是,新增加的麻煩比帶來的好處要多。
首先,Windows平臺是一個非實時的平臺,音頻的采集和播放對回聲消除算法而言,也是非實時的。和DSP平臺不一樣,DSP平臺可以直接控制AD/DA芯片的采集播放,獲得實時的音頻流(不存在同步問題),但是Windows平臺下,應用程序很難在底層直接控制聲卡的采集播放,獲得的是非實時的音頻流,從而帶來了采集和播放音頻流的同步問題。
實際應用時,傳給回聲消除算法的兩個聲音信號(采集的回音信號ne和播放的參考信號fe),必須同步得非常的好。就是說,本地接收到遠端說的話以后,要把這些話音數據傳給回聲消除算法做參考,這是一個算法需要的輸入信號;然后再傳給聲卡,聲卡放出來后經過回音路徑,這時,本地再采集,然后傳給回聲消除算法,這是算法需要的另一個輸入信號。這里的同步是指:兩個信號雖然存在延時,但這個延時必須固定,在時序上要保持連貫,不能一個信號多來幾個幀,另外一個信號少來幾個幀。如果傳給回聲消除算法的兩個信號同步得不好,即兩個信號發生幀錯位,就沒有辦法進行消除了。因為這時系統會變成了非因果系統,比如期望信號收到了,參考信號還沒來,時間上都沒有因果關系,肯定是沒有辦法消除的。
實際情況是,在一般的VoIP軟件中,接收對方的聲音并傳到聲卡中播放是在一個線程中進行的,而采集本地的聲音并傳送到對方又是在另一個線程中進行的,而聲學回聲消除算法在對采集到的聲音進行回聲消除的同時,還需要播放線程中的數據作為參考,而要同步這兩個線程中的數據是非常重要的,因為稍稍有些不同步,聲學回聲消除算法中的自適應濾波器就會發散,不但消除不了回音,還會破壞原始采集到的聲音,使聲音難以分辨。
另外,pc機器的聲卡種類繁多,各種各樣的聲卡特性進一步加劇了同步問題的復雜性。所以,同步和聲卡等問題對回聲消除算法的內部特性提出了更多苛刻的要求。
從上面分析來看,由于Windows平臺的非實時性,基于Windows平臺的回聲消除技術比DSP平臺要難得多。
在PC平臺語音通訊領域,目前公認音質做得比較好的國外軟件是Skype,記得幾年前Skype一直是在用瑞典一家叫GIPS(Global IP Sound)公司的語音引擎技術。GIPS是最早介入PC平臺語音通訊領域的廠商之一,在改領域具有一定的權威性,其主要優勢表現在對IP網絡的延時、抖動和丟包等處理較好,基于Windows平臺的回音消除也做得不錯,不過最近的新版本Skype上已經看不到GIPS的標志了,據說是因為Skype自己研發了一套新的更好的語音引擎的緣故。 目前大家接觸最多的采用了GIPS語音引擎技術的通訊軟件就是騰訊QQ了,其超級語音的效果普遍評價都還不錯。另外微軟經過多年的研發,其最新版本的MSN語音特別是回音消除效果終于有了質的提升,目前網上評價也還不錯。另外還有一些專業廠商也對外提供包含回音消除功能的語音引擎,如俄羅斯的Spirit DSP、美國的GH Innovation和國內的科萊特斯科技(Conatus Technologies)以及賽聲科技(Soft Acoustic)等等。除此之外,網絡上還可以下載到一個很好的開源的語音軟件Speex也提供了回音消除功能。為了進一步了解目前PC Windows平臺回音消除技術的業界水平,筆者對各家的回音消除技術做一個詳細的橫向對比測試(所有測試都是免提狀態)
為了對比,各家語音引擎的版本信息列舉如下:
國外廠商:
Skype V3.8.4.182
Spirit DSP(廠家DEMO)
GIPS(QQ 2009beta)
Micorsoft (Windows Live Messenger 2009 V14.0.8064.2006)
GH Innovation(廠家DEMO)
國內廠商:
Conatus Technologies(廠家DEMO)
Soft Acoustic(廠家DEMO)
開源算法:
Speex(V1.2RC1 自己寫了測試軟件)
測試結果:
測試項目
|
Skype |
MSN |
QQ |
Conatus |
Spirit |
Speex |
SoftAcoustic |
GH I |
筆記本免提模式,外接麥克風和音箱應用模式的適應性 |
兩種模式都無回音 |
筆記本免提模式有時一直有較小回音 |
筆記本免提模式偶爾有較小回音 |
兩種模式都無回音 |
筆記本免提模式有時一直有較小回音 |
兩種模式都有一直較小回音 |
兩種模式有時都會出現較大回音 |
筆記本免提模式一直有很小回音 |
單方講話效果 |
無回音,效果很好 |
基本無回音,效果好 |
基本無回音,效果好 |
無回音,效果很好 |
基本無回音,效果好 |
一直有較小回音,效果差 |
有時有很大回音,效果差 |
基本無回音,效果好 |
雙方同時講話效果 |
雙方交流流暢無回音,對方聲音偶爾有輕微斷續 |
雙方交流流暢,但對方聲音中會夾雜著輕微回音 |
雙方交流流暢,但對方聲音中會夾雜著一些回音 |
雙方交流流暢無回音,對方聲音偶爾有輕微斷續 |
雙方交流流暢,但對方聲音中間會夾雜著一些回音 |
雙方交流比較流暢,但一直聽到一個較小的回音 |
雙方交流不流暢,對方聲音經常會斷續 |
雙方交流無回音,但對方聲音很小很難聽清楚 |
麥克風和揚聲器相對的位置改變等 |
收斂比較快,基本沒有回音出現。 |
收斂比較快,基本沒有回音出現。 |
收斂比較快,基本沒有回音出現。 |
收斂比較快,基本沒有回音出現。 |
收斂比較快,基本沒有回音出現。 |
收斂速度慢,有好幾句回音 |
收斂速度慢,有好幾句回音 |
收斂比較快,基本沒有回音出現。 |
CPU重載(CPU負載達到100%)時效果 |
XP和Vista下聲音都流暢,基本不會出現回音和聲音斷續現象 |
XP和Vista下聲音都流暢,基本不會出現回音和聲音斷續現象 |
XP下聲音流暢,基本不會出現回音;Vista下聲音斷續,偶爾會出現回音 |
XP和Vista下聲音都流暢,基本不會出現回音和聲音斷續現象 |
XP下聲音流暢,基本不會出現回音;Vista下聲音斷續,偶爾會出現回音 |
此項未測 |
XP下聲音流暢,基本不會出現回音;Vista下聲音斷續,偶爾會出現回音 |
XP下聲音流暢,基本不會出現回音;Vista下不加負載聲音都是斷續的 |
PC和聲卡適應性 |
穩定,基本都能消除回音 |
穩定,基本都能消除回音 |
比較穩定,偶爾有些筆記本免提時有回音 |
穩定,基本都能消除回音 |
穩定,基本都能消除回音 |
不穩定,有時無法消除回音 |
不穩定,經常無法消除回音 |
穩定,基本都能消除回音 |
噪聲抑制
|
噪聲抑制效果弱 |
噪聲抑制效果一般 |
噪聲抑制效果弱 |
噪聲抑制效果強 |
噪聲抑制效果一般 |
噪聲抑制效果強 |
噪聲抑制效果強 |
噪聲抑制效果強 |
自動硬件增益控制和免提時能達到的最大播放音量 |
支持,音量較大 |
支持,音量較小 |
支持,音量適中 |
支持,音量適中 |
支持,音量較小 |
不支持 |
支持,音量較小 |
支持,音量非常小 |
整體效果評價(0-10分評分) |
很好,基本沒有回音,雙方交流很順暢,9分 |
較好,有的筆記本免提時偶爾有回音且音量較小,雙方交流比較順暢,7.5分 |
較好,有的筆記本免提時偶爾有回音,雙方交流順暢,8分 |
很好,基本沒有回音,音量比skype略小,雙方交流很順暢,8.5分 |
較好,有的筆記本免提效果稍差且音量比較小,vista效果稍差,7分 |
不好,一直有個較小的殘余回音,雙方交流困難,3分 |
不好,經常有完整的回音,感覺不穩定,雙方交流比較困難,5分 |
一般,沒有回音,但是音量太小,雙方交流困難,且VISTA下聲音斷續,5.5分 |
測試項目
|
Skype |
MSN |
QQ |
Conatus |
Spirit |
Speex |
SoftAcoustic |
GH I |
可以看出,Skype、 Conatus和 QQ(GIPS)的效果最好, MSN和Spirit的效果還不錯,而GH Innovation、Soft Acoustic效果一般,Speex的效果較差。
五、總結
回聲消除已經成為語音通訊中提供全雙工音頻的標準方法。聲學回聲消除是通過消除或者移除本地話筒中拾取到的遠端的音頻信號來阻止遠端的聲音返回去的一種處理方法。這種音頻的移除都是通過數字信號處理來完成的。回聲消除技術是數字信號處理的典型應用之一。
本文出自 “碧海銀沙” 博客,請務必保留此出處http://silversand.blog.51cto.com/820613/166101