webrtc AEC算法

时间:2013-03-08 20:02:49

标签: webrtc aec

我制作了一个使用WebRTC DSP库(AEC,NS,AGC,VAD)的软件。现在我需要知道每个算法使用什么算法来写我的硕士论文,但我没有找到任何相关的信息。

有人知道这些库的算法,特别是声学回声消除(例如NLMS,我知道它常用,但我不知道WebRTC是否也使用它)。

我已经尝试了解查看源代码的算法,但我还不够了解。

提前致谢!

3 个答案:

答案 0 :(得分:2)

我刚刚成功使用Android的独立WebRTC aecm模块。还有一些提示:

1.最重要的是所谓的“延迟”,你可以在dir中找到它的定义:

.. \ SRC \模块\ audio_processing \包括\ audio_processing.h

报价:

  

设置|延迟|在AnalyzeReverseStream()之间接收一个   远端帧和ProcessStream()接收近端帧   包含相应的回声。在客户端,这可以   表示为delay =(t_render - t_analyze)+(t_process - t_capture)

     

其中,

     
      
  • t_analyze是帧传递给AnalyzeReverseStream()的时间,t_render是同一帧的第一个样本的时间   由音频硬件呈现。
  •   
  • t_capture是音频硬件捕获帧的第一个样本的时间,t_pull是同一帧传递到
    的时间。   ProcessStream()。
  •   

如果您想在独立模式下使用aecm模块,请务必遵守此文档严格

2.AudioRecord和AudioTrack有时会阻塞(由于缓冲区大小最小化),所以当你计算延迟时,不要忘记为它添加阻塞时间。

3.如果你不知道如何编译aecm模块,你可以先学习Android NDK,模块src路径是

.. \ SRC \模块\ audio_processing \ AECM

顺便说一下,这个博客可能对本机开发有很大帮助。和debuging。

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging/

希望这对你有所帮助。

答案 1 :(得分:1)

从WebRtc中的AGC算法的代码检查,它与http://www.ti.com/lit/wp/spraal1/spraal1.pdf

中的描述密切配合

答案 2 :(得分:0)

它基于NLMS,但是步长(mu)可变。

相关问题