Использование AEC(webrtc) вместо AECM(webrtc)

Я использовал aecm(webrtc) на своем встроенном устройстве на базе ARM для голосовой связи. Теперь я пытаюсь изменить aecm на aec для подавления эха двойного разговора.

В aecm все просто:

WebRtcAecm_Create()->WebRtcAecm_Init()->WebRtcAecm_BufferFarend()->WebRtcAecm_Process(). 

И все форматы data(near, far, out) являются 16-битными короткими со знаком. Однако простое изменение функций с WebRtcAecm_* to WebRtcAec_* и коротких данных со знаком на число с плавающей запятой (деленное на 32768) не сработало.

Я попытался найти несколько примеров в audio_processing unittest, но ничего не нашел. Что мне не хватает?


person azbo    schedule 12.12.2016    source источник


Ответы (1)


WebRTC AEC просто сравнивает Farend Buffer и NearBuffer, извлеченные из Mic, и удаляет эхо в NearBuffer на основе Farend. Таким образом, эхо, которое вы хотите очистить, должно существовать в буфере Farend, тогда AEC может удалить его. Пожалуйста, проверьте задержку вашего устройства, в основном Farend Buffer поддерживает только длину 128 м/с.

person JinMin Jeon    schedule 09.02.2017