WebRTC回声消除算法在Android平台上的应用

WebRTC回声消除算法在Android平台上的应用

  • WebRTC的回声消除算法包括AEC、AECM(即AEC Mobile)。使用AEC时,可以启用估计延时不确定性(Delay Agnostic)的DA-AEC算法。
  • 在Android设备上,我尝试了DA-AEC。
    DA-AEC正确工作时,回声消除效果很明显,但不正确工作时,就有回声消除不掉的情况了。

在查找过程中,发现了chrome bug系统中关于Android上回声消除的一个提问及反馈。当时是2017年上半年,链接如下:
https://bugs.chromium.org/p/webrtc/issues/detail?id=7291

提问者的应用场景是这样的:

The Android device I used is a hardware device build by us running Android 5.1 on Rockchip RK3288. The device connects to a TV via HDMI, so it uses the TV speakers for audio output, and in-device mic for input. That is also the reason that I am using “googDAEchoCancellation”, since TV and the position of speakers to mic is relative, so the delay between the reference audio and the input with the echo is different based on the configuration used.
翻译:我用的安卓设备是自己做的,在Rockchip RK3288上运行的Adroid 5.1系统。设备通过HDMI连接到电视,使用电视扬声器作输出,使用内置麦克作输入。使用DA-AEC的原因是电视扬声器与麦克之间的位置是相对(不固定)的,参考声音信号与带回声的输入信号间的延时就会随着实际摆放位置不同而不同。

先有这样的回答:

The setup you are describing sounds like a very difficult setup for the AEC in that it uses different clocks for the playout (TV-set) and for the capture (in-device MIC) which means that there is clock-drift.
翻译:你描述的场景对AEC来说听起来很难,因为播放端(电视)和采集端(内置麦克)用不同的时钟,意味着会有时钟偏移。

后来的回答是这样的:

From an AEC perspective I would say that you are running an AEC mode which we don’t use in native builds on Android platforms, and which I therefore doesn’t really have any good suggestions how to get to work. My recommendation is to use the WebRTC AEC mobile (AECM) instead which is the AEC that is used by default when running native on Android.
翻译:从AEC的角度看,我要说你所用的AEC模式不是我们在安卓平台原生程序中使用的模式,我因此就没有什么来使它正常运行的建议了。我建议使用WebRTC AEC Moblie (AECM),这是安卓上运行原生程序时默认使用的AEC算法。

Android平台上移植使用WebRTC回声消除算法的话,要使用AECM。DA-AEC可以尝试,但不是任何时候都能有理想消除效果的。

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值