我们有一个支持webrtc的服务,有两个不同的端点;一个web应用程序和一个原生android应用程序。安卓应用程序安装在带有USB摄像头的安卓设备上。
使用chrome/ffirefox上的网络应用程序,pc2pc的音频质量几乎是完美的。但我们想提高pc2droid和android2droid的音频质量。
Chrome为高端设备使用声学回声消除(AEC-conference)。但对于安卓系统,它强制AECM——一种用于手机的轻量级AEC。我们对AECM的表现不满意。对于我们的原生应用程序,我们修改了webrc源代码,改为使用AEC。但结果更糟。它的行为就像回声消除被完全禁用,我们最终得到了太多的回声和反馈!
根据这个问题,AEC只能在8k和16k采样率下工作,并且只能在高端设备中工作。这应该没问题。我们使用的PCMU编解码器具有8k采样率,我认为我们的Android设备足够强大,可以克服AEC的额外计算复杂性:
- 2Ghz四核ARM CPU
- 8核Mali-450MP GPU@600Mhz
- DDR3 1GB内存
- 安卓Kit Kat
如果需要,我很乐意分享我们的回声消除性能图。
是不能在手机上使用AEC,还是我们错过了什么?
您可能需要调整延迟来估计回波。