1. 程式人生 > >Speex回聲消除器

Speex回聲消除器

speex是一個不錯的音訊編解碼和音訊處理的開源庫,可以跨平臺;

之前我轉過一篇文,主要講了speex的回聲消除;

之前做過測試,覺得效果不好,最近有時間研究了一下,效果還是不錯的;

以前是單機測試,捕獲,AEC處理,播放;這樣效果不是太好;

在實際應用中,兩端通話,一段開啟外部揚聲器,如果兩個筆記本舉例比較近的話回聲還是比較明顯的,但是AEC處理後,效果好很多;

而且AEC還可以整體減小音訊波形振幅,雖然音量小了一點,但是音質清晰了很多;

我用的是音訊採集間隔,應該還要加上處理傳輸間隔;一般可以參考工程中的示例,過濾長度是設定長度的10倍左右;這裡我測試的過程中,設定不同的引數,沒有太明顯的變化;

play audio前AEC處理;應用程式先保留上次capture資料;

speex的回聲消除,在客戶端舉例比較近的時候,對音質的處理效果不好,不過距離較遠(1米以上)時,還可以。

轉一篇微軟的文章;

消除回聲

消除迴音

迴音是音訊會議系統中的常見問題。當麥克風從揚聲器拾取音訊訊號時將在本地音訊中出現環回,並將其發回給其他參與者。當其他參與者講話時,他(她)可以聽到自己的迴音。例如:

  1. Alice 和 Bob 正在打電話或者正在開會。

  2. Alice 對著麥克風講話。

  3. Bob 通過揚聲器播放聽見 Alice 的語音。

  4. Bob 的麥克風也收集和傳輸 Alice 的語音。

  5. Alice 聽到了自己語音的迴音,只是由於來回傳輸的時間而稍有延遲。

如果使用非常靈敏的麥克風,或者揚聲器的音量很大,又或者麥克風和揚聲器之間離得非常近,則可能會引發或加劇迴音。除了干擾以外,這還可能阻止會議中與會者之間的正常對話。

使用音訊耳機消除迴音

徹底消除聲學回音的一個最簡單的方法是使用音訊耳機。耳機可在與會者的耳邊以低音量播放音訊。這樣可以防止麥克風拾取音訊訊號。

可以在個人計算機上使用許多不同的音訊耳機。這些耳機有專門為之設計的聯結器以適合音效卡上的音訊插孔。即使某個耳機移動或變換了位置,許多帶有內建麥克風的耳機通過使麥克風與講話人的嘴保持一定的距離來提高聲音質量。

使用聲學回音消除功能消除迴音

在 Windows XP 和 Windows Server 2003 作業系統中,TAPI 3.1 支援聲學回音消除 (AEC) 功能。在 AEC 執行期間,數字訊號處理器將揚聲器訊號和麥克風訊號相比較,然後從麥克風訊號中消去揚聲器訊號。通過這種方式,AEC 阻止揚聲器迴音反饋到麥克風並作為迴音傳送。