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即可。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章