我在基于手臂的嵌入式设备上使用aecm(webrtc)
进行语音通信。现在,我正在尝试将aecm
更改为aec
以进行双向回声取消。
在aecm
中很简单:
WebRtcAecm_Create()->WebRtcAecm_Init()->WebRtcAecm_BufferFarend()->WebRtcAecm_Process().
和所有data(near, far, out)
格式均为16位签名。但是,仅将功能从 WebRtcAecm_* to WebRtcAec_*
和签名 - 简单数据更改为float(除以32768)无效。
我试图在audio_processing unittest
中找到一些示例,但找不到任何示例。我想念什么?
webrtc aec只需比较从麦克风中提取的未得出的缓冲区和近袋,并根据未得出的方式删除靠近贝弗的回声。因此,您想清除的回声必须存在于未来的缓冲区中,然后AEC可以将其删除。请检查您的设备延迟,基本上是Farend Buffer仅保持128m/s的长度。