webrtc-agc2

本文详细介绍了WebRTC中AGC2模块的编译与效果测试,探讨了不同版本的改进,包括引入的噪声估计和增益求解算法。文章提供了编译所需的文件列表和CMakeLists.txt配置,并分享了一个可能存在问题的测试demo,期待社区的反馈与指正。测试结果显示,该模块在某些特定场景下,如语音能量小或存在大小声变化时,自适应效果不理想。
摘要由CSDN通过智能技术生成

本文主要整理了webrtcagc2模块。目前为止,webrtc提供的agc总共有三个版本,最老的版本在legacy文件夹下,然后就是agc文件下的一个版本,最后一个就是位于agc2文件下的另一版本。相较于之前的版本,agc2引入了RNNvad估计。当然其它的部分也有所改进,如噪声估计、增益求解。webrtcagc2模块打算分两次博文介绍,本篇主要介绍编译以及agc2效果测试,下一篇博文主要介绍自己对agc2算法的理解。agc2的编译所需文件包括:apicommon_audiortc_basesystem_wrappersthird_party以及modules模块下的大部分文件。具体的文件可以参见我的github链接https://github.com/ctwgL/webrtc_agc2。上述文件准备完毕后,编写CMakeLists.txt文件,该部分主要参考https://github.com/lyapple2008/webrtc_apm_cmake

cmake_minimum_required(VERSION 3.6)

project(webrtc_apm)

set(CMAKE_CXX_STANDARD 14)

if (WIN32)
  set(CMAKE_C_FLAGS "/arch:AVX2")
else ()
  set(CMAKE_C_FLAGS "-mavx2 -mfma")
endif()

add_compile_options(-march=native)

if (UNIX)
  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pthread")
endif()

if (WIN32)
  add_definitions(-DWEBRTC_WIN)
else()
  add_definitions(-DWEBRTC_POSIX)
endif ()

if (UNIX)
  add_definitions(-DWEBRTC_LINUX)
endif ()
add_definitions(-DWEBRTC_NS_FLOAT)
add_definitions(-DWEBRTC_APM_DEBUG_DUMP=1)

set(CURRENT_DIR ${CMAKE_CURRENT_SOURCE_DIR})

# api
set(WEBRTC_API_DIR ${CURRENT_DIR}/api)
set(WEBRTC_API_INCLUDE ${CURRENT_DIR}/api)
set(WEBRTC_API_AUDIO_DIR ${CURRENT_DIR}/api/audio)
set(WEBRTC_API_TASK_QUEUE_DIR ${CURRENT_DIR}/api/task_queue)

# common_audio
set(WEBRTC_COMMON_AUDIO_DIR ${CURRENT_DIR}/common_audio)
set(WEBRTC_COMMON_AUDIO_INCLUDE ${CURRENT_DIR}/common_audio)
set(WEBRTC_COMMON_AUDIO_RESAMPLER_DIR ${CURRENT_DIR}/common_audio/resampler)
set(WEBRTC_COMMON_AUDIO_SIGNAL_PROCESSING_DIR ${CURRENT_DIR}/common_audio/signal_processing)
set(WEBRTC_COMMON_AUDIO_THIRD_PARTY_OOURA_128_DIR ${CURRENT_DIR}/common_audio/third_party/ooura/fft_size_128)
set(WEBRTC_COMMON_AUDIO_THIRD_PARTY_OOURA_256_DIR ${CURRENT_DIR}/common_audio/third_party/ooura/fft_size_256)
set(WEBRTC_COMMON_AUDIO_THIRD_PARTY_SPL_DIR ${CURRENT_DIR}/common_audio/third_party/spl_sqrt_floor)
set(WEBRTC_COMMON_AUDIO_VAD_DIR ${CURRENT_DIR}/common_audio/vad)
set(WEBRTC_COMMON_AUDIO_VAD_INCLUDE ${CURRENT_DIR}/common_audio/vad/include)

# modules
set(WEBRTC_MODULES_AUDIO_CODING_ISAC_VAD_DIR ${CURRENT_DIR}/modules/audio_coding/codecs/isac/main/source)
# modules->audio_processing
set(WEBRTC_MODULES_AUDIO_PROCESSING_DIR ${CURRENT_DIR}/modules/audio_processing)
set(WEBRTC_MODULES_AUDIO_PROCESSING_INCLUDE ${WEBRTC_MODULES_AUDIO_PROCESSING_DIR}/include)
set(WEBRTC_MODULES_AUDIO_PROCESSING_AEC_DUMP_DIR ${WEBRTC_MODULES_AUDIO_PROCESSING_DIR}/aec_dump)
set(WEBRTC_MODULES_AUDIO_PROCESSING_AEC3_DIR ${WEBRTC_MODULES_AUDIO_PROCESSING_DIR}/aec3)
set(WEBRTC_MODULES_AUDIO_PROCESSING_AECM_DIR ${WEBRTC_MODULES_AUDIO_PROCESSING_DIR}/aecm)
set(WEBRTC_MODULES_AUDIO_PROCESSING_AGC_DIR ${WEBRTC_MODULES_AUDIO_PROCESSING_DIR}/agc)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值