pjsip2.8 加入WebRTC AEC3 做回音消除和自动增益

  • 由于 pjsip2.8 自带的AEC模块代码比较早(大概是2015年的), pjsip2.10等版本官方加入了AEC3代码,但是也仅仅是扣了WebRtc AEC和NS的代码, 没有AGC1, AGC2, 人声检测、残留估算等等代码。
  • 计划直接把WebRtc 最新的代码集成到pjsip2.8里去。
  • 写个简要的步骤:
1.  编写echo_aec3.c 实现ec_operations 接口
2. 在echo_internal.h 中加入 dz_aec3_create/destroy, dz_aec3_playback / capture 函数声明 
3. 在config_site.h 中加入 PJMEDIA_HAS_DZ_AEC3 = 1 宏定义
4. 在echo_common.c 中加入 dz_aec_op 对象,然后修改pjmedia_echo_create2 启用dz_aec_op
5. 分析源码,根据echo.h中定义的pjmedia_echo_flag列举的几种(1~4) echo模型, 把PJMEDIA_ECHO_SIMPLE改成PJMEDIA_ECHO_DZ_AEC3, 因为speex:1, webrtc:3, webrtc3:4,而2是simple,pjsip里并没具体使用。
6. 在pjsua启动的时候传递的参数是 0x2XX即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章