2013-03-08 179 views
6

我制作了一个使用WebRTC DSP库(AEC,NS,AGC,VAD)的软件。现在我需要知道什么算法使用每一个算法来写我的硕士论文,但我没有找到任何有关这方面的信息。有人知道这个库的算法,尤其是声学回声消除(例如NLMS,我知道它是常用的,但我不知道WebRTC是否也使用它)。webrtc AEC算法

我试着去知道查看源代码的算法,但我不太明白。

在此先感谢!

回答

1

我刚刚成功使用Android独立WebRTC aecm模块。这里面的一些技巧:

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

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

报价:

设置|延时|在接收 远端帧的AnalyzeReverseStream()和接收包含相应回声的近端帧 的ProcessStream()之间以毫秒为单位。在客户端侧这可以是 表示为延迟=(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

BTW,这个博客可能会在本地开发中帮助很大。和调试。

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/

希望这可以帮助你。

+0

对不起说明紧密地匹配......但你回答的东西,它不是根据我的问题。也许你错过了你想写的那篇文章! 没有人知道WebRTC的AEC模块中使用的算法?我拼命想知道它在写我的硕士论文... 我会非常感激的任何答案! – rafita82 2013-05-17 19:30:43

+0

抱歉我对你的问题有误解。我只是使用模块,但没有什么信息。关于算法,我投了你的问题和最好的祝愿! – BillHoo 2013-05-18 03:53:12

+0

非常感谢您的投票和您的时间试图回答我的问题。我还没有答案,我的问题...但我有一个不同的问题,也许你可以回答我:我试图使用函数“AnalyzeReverseStream()和”ProcessStream()“,但这些参数功能是类型“AudioFrame *”,我不知道如何处理它。在我的程序中,我将10ms的音频帧变成了一个简短的*。你可以(或某人)帮助我吗?提前致谢! – rafita82 2013-07-09 12:19:19