8

WebRTC DSP ライブラリ (AEC、NS、AGC、VAD) を使用するソフトウェアを作成しました。今、私は修士論文を書くためにどのアルゴリズムがそれぞれを使用しているかを知る必要がありますが、それに関する情報は見つかりません.

誰かがこのライブラリのアルゴリズム、特にアコースティック エコー キャンセレーションを知っています (たとえば NLMS のように、一般的に使用されていることは知っていますが、WebRTC も使用しているかどうかはわかりません)。

ソースコードを調べてアルゴリズムを知ろうとしたのですが、よくわかりません。

前もって感謝します!

4

3 に答える 3

2

Android用のスタンドアロンWebRTC aecmモジュールの使用に成功しました。そしていくつかのヒントがあります:

1.最も重要なのは「遅延」と呼ばれるものです。その定義は次のディレクトリにあります。

..\src\modules\audio_processing\include\audio_processing.h

見積もり:

|遅延|を設定します AnalyzeReverseStream() が遠端フレームを受信して​​から、ProcessStream() が対応するエコーを含む近端フレームを受信するまでのミリ秒。クライアント側では、これは delay = (t_render - t_analyze) + (t_process - t_capture) として表すことができます。

どこ、

  • t_analyze は、フレームが AnalyzeReverseStream() に渡される時間であり、t_render は、同じフレームの最初のサンプルがオーディオ ハードウェアによってレンダリングされる時間です。
  • t_capture はフレームの最初のサンプルがオーディオ ハードウェアによってキャプチャされた時間であり、t_pull は同じフレームが
    ProcessStream() に渡された時間です。

aecm モジュールをスタンドアロン モードで使用する場合は、必ずこのドキュメントに厳密に従ってください。

2.AudioRecord と AudioTrack は (最小化されたバッファー サイズのために) 時々ブロックするので、遅延を計算するときは、ブロック時間を追加することを忘れないでください。

3. aecm モジュールのコンパイル方法がわからない場合は、最初にAndroid NDKを学ぶことができます。モジュールの src パスは次のとおりです。

..\src\modules\audio_processing\aecm

ところで、このブログはネイティブ開発に大いに役立つかもしれません。そしてデバッグ。

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging/

これがあなたに役立つことを願っています。

于 2013-04-24T03:37:35.127 に答える
1

WebRtc の AGC アルゴリズムのコード検査から、 http: //www.ti.com/lit/wp/spraal1/spraal1.pdf の記述とよく一致します。

于 2015-06-05T17:11:17.097 に答える