在Webrtc的audio_proces中滚打的两个多月终于实现了一整套的AudioprocessSDK-android。成功实现Client2Device的双向对讲!!!
总结一下经验:
1、编译
提取webrtc的audio_process中AEC、NS、VAD、AGC模块通过ndk编译
2、接口调试
工具:Audacity 或Cool Edit
编写TestDemo调用
AEC、NS、VAD、AGC
接口调试
3、移植
将TestDemo中的接口移植到产品中
4、功能调试
方法:
参考博文webrtc回音消除 一 ~三
a)客户端手机可以先插耳机避免回音干扰,只调试设备端回音消除(speaker数据先本地后网络)
b)设备端成功后,移植客户端调试
5、双向对讲
方法:
a)确定双方回声正常消除
(客户端设备端不能靠的太近,否则出现震荡啸叫)
b)VAD、NS、AGC调优
流程图:
备注:
1、Farend为speaker数据,Near+Farend-2为Mic录入数据,回音消除即消除Mic中的Farend-2
2、Farend-0是否进行AGC由能量大小决定,如果Farend-2远远大于Farend-0则需要进行AGC
3、NS和AGC可根据事实情况对speaker和mic声音进行效果调优
4、VAD可选取决于AEC使用固定delay还是可变delay
5、VAD、NS、AGC可以单独使用可组合使用,提高声音质量