Android上的Echo cancellers

时间:2012-07-19 14:02:03

标签: android audio echo speex webrtc

请分享您在Android上使用软件echo cancellers的经验:

  1. 内置(在我听到的v3.0中出现的那个)
  2. 的Speex
  3. 的WebRTC

2 个答案:

答案 0 :(得分:3)

我刚刚完成了Android上的AEC工作,我尝试了speex / android-built-in-ec / webrtc-aec和webrtc-aecm(手机上的回声控制),最后选择了AECM模块,还有一些提示:

  1. speex和webrtc-aec不适合在移动设备上运行(因为CPU性能低)。
  2. android内置EC正在工作,但效果并不理想,仍然可以听到一些回声或大量的自我激励(也许我没有正确使用它)。并不是所有的Android设备都支持内置的EC,所以这种情况被抛弃了。
  3. webrtc-aecm模块很好,只需1~2ms即可处理10ms帧。最重要的是名为delay的东西,你应该在“audio_procession.h” strictly 中按照它的描述,如果你计算一个正确的延迟值,一切会好的。
  4. 修改

    1. 经过很长一段时间使用WebRTC AECM(或APM),我仍然无法让它在android上完美运行。我认为AECM需要更多的优化,但谷歌似乎没有计划。无论如何,我会继续关注Google WebRTC及其在Android上的AECM(或AEC)性能。

答案 1 :(得分:1)

Android上有两个与AEC相关的问题:

  1. CPU。大多数AEC算法在低CPU时表现不佳。

  2. 回声路径 - Android上的许多VoIP应用程序引入的回声延迟高于免费算法可以处理的(高效)。

  3. 最重要的是,我建议您首先测量VoIP应用程序中的回声延迟(即回声尾音)。如果它不超过16ms-64ms,您可以尝试使用上述免费解决方案之一。

    还有一点需要注意,我认为Speex在移动设备上效果不佳,因为据我所知它没有定点版本。