声学回声消除器(AEC)不取消回声

时间:2018-05-09 05:50:36

标签: java android voip aec

所以我正在尝试开发一个Android VoIP应用程序。我无法使回声消除工作,并且在扬声器模式下仍能听到自己说话。

AudioRecord recorder = new AudioRecord(
                MediaRecorder.AudioSource.VOICE_COMMUNICATION, mSampleRate,
                AudioFormat.CHANNEL_IN_MONO,
                AudioFormat.ENCODING_PCM_16BIT, bufferSize);

echoCanceler = AcousticEchoCanceler.create(recorder.getAudioSessionId());
                echoCanceler.setEnabled(true);

我已尝试将设置更改为CHANNEL_IN_STEREO。将播放设置更改为MODE_IN_COMMUNICATON但仍然没有运气。

我使用三星S7和Nexus 5进行测试。

1 个答案:

答案 0 :(得分:0)

在Android上取消回音并不是一项简单的任务,特别是如果您想支持多个手机和多个Android版本。首先阅读有关echo cancellation的行为和挑战的文章。然后,您可以尝试使用开源解决方案(例如Speex)。如果开放源代码不起作用,那么您应该寻找专业的回声消除。只需Google搜索回声消除软件即可。