我在基于ARM的嵌入式设备上使用aecm(webrtc)进行语音通信。现在,我正在尝试将aecm更改为aec,以实现双向回声消除。
在aecm中很简单:
WebRtcAecm_Create()->WebRtcAecm_Init()->WebRtcAecm_BufferFarend()->WebRtcAecm_Process(). 而且所有的data(near, far, out)格式都是16位有符号的短码。然而,仅仅将函数从WebRtcAecm_* to WebRtcAec_*和带符号的短数据更改为浮点型(除以32768)并不起作用。
我试图在audio_processing unittest中找到一些示例,但没有找到任何示例。我遗漏了什么?
发布于 2017-02-09 08:38:29
WebRTC AEC只比较Farend Buffer和从麦克风中提取的NearBuffer,并基于Farend去除NearBuffer中的回声。所以你想要清除的Echo必须存在于Farend Buffer中,然后AEC可以删除它。请检查你的设备延迟,基本上Farend Buffer只维持128m/s的长度。
https://stackoverflow.com/questions/41094154
复制相似问题