1

WebRtc ライブラリを使用してスタンドアロン AGC を作成しようとしています。(入力 - wav ファイル、出力 - ゲインを調整した wav ファイル)。しかし、現時点では、この問題にはいくつかの問題があります。

ファイルで宣言されている関数を使用しようとしていgain_control.hます。WebRtcAgc_Process(....) を使用すると、信号全体に適用される一定のゲインが得られますが、入力信号の大きさに依存する非線形ゲインは得られません。

私の目的のために別の機能を使用する必要がありますか?WebRTC ライブラリ経由で AGC を実装するにはどうすればよいですか?

4

2 に答える 2

3

AGC の主な目的は、ユーザーが OS を介して設定することが期待される推奨システム マイク ボリュームを提供することです。純粋なデジタル ゲインを適用する場合は、次の 2 つのモードのいずれかで構成できます ( から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 クラスを使用することをお勧めします。

于 2012-10-03T15:54:11.033 に答える
0

http://osxr.org/android/source/external/webrtc/src/modules/audio_processing/agc/interface/gain_control.h#0133を参照してください。

ゲイン調整は、0135 * アクティブな発話期間中にのみ行われます。入力音声の長さは 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);
于 2015-03-03T15:54:56.173 に答える