speex aec 與webrtc 回聲消除的比較優化

當前開源回聲消除算法主要有speex 以及webrtc 的aec算法。

兩個開源aec 算法的基本原理都是基於自適應濾波nlms。

兩者的主要區別:

speex 使用的是mdf 雙濾波結構。通過前濾波與本次濾波的結果來調整濾波器係數的更新,

濾波器長度設計的很長,同時對信號做了預加重以及去直流處理。

webrtc aec :模塊相對比較複雜,包含了延時估計,nlms以及nlp(非線性壓縮),舒適噪聲四個模塊,

其中延時估計模塊採用自相關技術,nlms 模塊開源算法只用了12block,nlp 部分使用的是互相干技術。

可能的優化方向:

speex aec  現在大部分是用在嵌入式,硬件對延時模塊沒有需求,而mdf 結構的效果比webrtc nlms 的效果

好很多,收斂更快(webrtc 自適應濾波部分沒有dtd檢測,係數一直更新,只有一個簡單的發散條件),

speex 優化可以增加nlp 模塊,來消除抑制殘留回聲。

webrtc aec 現在大部分是在軟件層使用:

可能的優化方向:

1、由於線程的波動,必須考慮延時估計,不同的設備,不同的信號延時估計的準確性。

2、自適應濾波器係數一直更新,能不能有更好的方法來控制,有沒有更好的方法,濾波器長度調整效果怎麼樣?

3、nlp 部分能不能採用多頻帶係數代替單一系數,針對自適應濾波部分的問題,能不能做到一定的補救?

關於音頻算法,歡迎大家加音頻算法討論羣:153268894 (作者 zeark)

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章