我正嘗試使用WebRtc庫創建獨立AGC。 (輸入 - wav文件,輸出 - 帶有調整增益的wav文件)。但是目前我在這個問題上遇到了一些問題。WebRtc應用程序中的獨立AGC(自動增益控制)
我正在嘗試使用在gain_control.h
文件中聲明的函數。當我使用WebRtcAgc_Process(....)時,我獲得的恆定增益適用於整個信號,但不是取決於輸入信號幅度的非線性增益。
可能是我應該使用其他功能爲我的目的?我如何通過WebRTC庫實現AGC?
我正嘗試使用WebRtc庫創建獨立AGC。 (輸入 - wav文件,輸出 - 帶有調整增益的wav文件)。但是目前我在這個問題上遇到了一些問題。WebRtc應用程序中的獨立AGC(自動增益控制)
我正在嘗試使用在gain_control.h
文件中聲明的函數。當我使用WebRtcAgc_Process(....)時,我獲得的恆定增益適用於整個信號,但不是取決於輸入信號幅度的非線性增益。
可能是我應該使用其他功能爲我的目的?我如何通過WebRTC庫實現AGC?
AGC的主要目的是提供用戶希望通過操作系統設置的推薦系統話筒音量。如果你想申請一個純粹的數字增益,您可以通過以下兩種方式之一進行配置(從modules/audio_processing/include/audio_processing.h
,但gain_control.h
有類似的模式):
// Adaptive mode intended for situations in which an analog volume control
// is unavailable. It operates in a similar fashion to the adaptive analog
// mode, but with scaling instead applied in the digital domain. As with
// the analog mode, it additionally uses a digital compression stage.
kAdaptiveDigital,
// Fixed mode which enables only the digital compression stage also used by
// the two adaptive modes.
//
// It is distinguished from the adaptive modes by considering only a
// short time-window of the input signal. It applies a fixed gain through
// most of the input level range, and compresses (gradually reduces gain
// with increasing level) the input signal at higher levels. This mode is
// preferred on embedded devices where the capture signal level is
// predictable, so that a known gain can be applied.
kFixedDigital
您可以通過WebRtcAgc_Init()
設置這些,但除非你需要避免開銷,我建議只使用AudioProcessing類。
調整完成增益 講話*活躍期。輸入語音長度可以是10ms或者0136 * 20ms,輸出長度可以是 。
webrtcage_process的簡要概述
int WebRtcAgc_Process(void* agcInst,
const WebRtc_Word16* inNear,
const WebRtc_Word16* inNear_H,
WebRtc_Word16 samples,
WebRtc_Word16* out,
WebRtc_Word16* out_H,
WebRtc_Word32 inMicLevel,
WebRtc_Word32* outMicLevel,
WebRtc_Word16 echo,
WebRtc_UWord8* saturationWarning);