androidaudioechospeexwebrtc

Echo cancellers on Android


Please, share your experience in using software echo cancellers on Android:

  1. Built-in (the one that appeared in v3.0, as I hear)
  2. Speex
  3. WebRTC
  4. Etc.

Solution

  • I'm just finishing the AEC work on android, I tried speex/android-built-in-ec/webrtc-aec and webrtc-aecm(echo control on mobile), and finally choose the AECM module, and there are some tips:

    1. speex and webrtc-aec is not good for running on mobile(for low CPU perform reason).
    2. android built-in EC is working, but the effect is not ideal, can still heard some echos or lots of self-excitation(maybe I'm not using it right). and not all the android device at this time support built-in EC, so this situation is discarded.
    3. webrtc-aecm module is fine, it just took 1~2ms to process a 10ms frame. and the most important is the thing called delay, you should follow the description of it in audio_processing.h strictly, if you calculate a right value of delay, everything will be OK.

    EDIT

    1. After a long long time working with WebRTC AECM(or APM), I still cannot make it work perfect on android. I think AECM need more optimazition, but Google seems no plan on it. Any way, I'll keep attention about Google WebRTC and its AECM(or AEC) performance on android.

    2. (Updated on 6/23/2020) Please refer to my GitHub project's README, my solution above was deprecated by myself years ago. I don't want to misleading others.