Webrtc AGC 算法原理介绍(二)

本文深入探讨WebRTC的自动增益控制(AGC)算法,涵盖ProcessRenderAudio、AnalyzeCaptureAudio和ProcessCaptureAudio三个关键流程。ProcessRenderAudio分析远端信号的VAD属性,AnalyzeCaptureAudio分析未处理声音,而ProcessCaptureAudio作为处理核心,涉及音量调节和WebRtcAgc_Process调用。不同AGC模式下,处理逻辑有所差异。

音频算法


零、前言

本系列介绍Webrtc的agc算法。webrtc的agc算法对各种情况作了较为详尽的考虑,而且使用了的定点数的方法来实现,因此内容比较多。尽量在这几篇文章中描述清楚。

一、AGC的三个流程

函数 调用 功能
ProcessRenderAudio 远端输出前 调用AGC的WebRtcAgc_AddFarend
AnalyzeCaptureAudio 近端高通滤波器后 根据模式,可变模拟(kAdaptiveAnalog)调用WebRtcAgc_AddMic,可变模拟(kAdaptiveDigital)调用WebRtcAgc_VirtualMic
ProcessCaptureAudio 近端VAD后输出前 调用AGC的WebRtcAgc_Process

这三个流程是AGC的主要接口。下面将会对这些三个流程进行详细的介绍。

二、ProcessRenderAudio

首先介绍ProcessRenderAudio,这个函数在远端调用,主要目的是分析远端信号的VAD属性。调用了AGC中的WebRtcAgc_AddFarend函数。实际上WebRtcAgc_AddFarend函数只是做了一些参数的校验,最后调用了WebRtcAgc_AddFarendToDigital,WebRtcAgc_AddFarendToDigital调用到了WebRtcAgc_ProcessVad。

Created with Raphaël 2.1.0 Start ProcessRenderAudio(AudioBuffer* audio) WebRtcAgc_AddFarend(my_handle,mixed_data,static_cast<int16_t>(audio->samples_per_split_channel())) Check input
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值