エコー キャンセレーション (AEC) の原理、アルゴリズム、実践 - 完全なエコー キャンセリング アルゴリズム フレームワークに含まれるモジュールの紹介

1. 完全なエコー キャンセレーション システムには、次のモジュールが含まれています。
1. 時間遅延推定 (TDE) モジュール
2. (線形) エコー キャンセレーション (線形音響エコー キャンセレーション、AEC) モジュール (線形フィルタリング モジュール)
3. ダブルトーク検出 (DTD) ) モジュール
4. 非線形残留音響エコー抑制 (Residual Acoustic Echo Suppression、RAES) モジュール (非線形フィルタリング モジュール)

 2.遅延推定モジュール

遅延の理由:基準信号はダウンリンクで受信したデータから取得し、マイク信号は収集データから取得し、途中で遅延があり、音の伝播時間(屋内外問わず) 、コレクションスレッドの作業を再生するためのバッファ、および起動時間の差。デバイスや環境が異なれば、遅延も異なります。

実装されたエコー キャンセル技術は、主に 2 種類の音声信号を使用します。1 つはエコー信号、もう 1 つは基準信号です。エコー キャンセルの実際の実装では、 2 つの信号の間に一定の遅延が発生します。主な発生源は 3 つあります。遅延:

1. 基準信号を取得してからスピーカーから基準信号が再生されるまでに発生する時間遅延。

2. 基準信号がスピーカーからブロードキャストされた後にマイクに到達することによって生じる遅延。

3. マイクはエコー信号を取得した後、それをエコー キャンセル アルゴリズム モジュールによって生成された時間遅延に送信します。

遅延推定モジュールの目的は、エコー信号と基準信号間の遅延を制御して一定の範囲内に保つことです。これは、後続のモジュールがエコーを処理するのに便利です。

遅延推定モジュールの影響

遅延調整により、適応フィルターへの圧力が軽減され、フィルターのトラッキング長が短縮され、オーバーヘッドが削減されます。遅延調整モジュールがない場合、フィルターのトラッキングの長さは、エコー信号までのすべての基準信号をカバーするように設計する必要があります。遅延は多くの場合数百ミリ秒に達し、非常に多くの計算を要します。

遅延の調整はフィルターのパフォーマンスに影響します。時間遅延が調整されていない場合、基準信号とフィルターによって追跡されるエコー信号の間の相関が非常に低くなり、フィルターの収束が影響を受けます。遅延が過大評価され、フィルターが追跡する信号バッファー内で基準信号が見つからず、フィルターが収束できません。

遅延の調整速度は、全体の収束速度に影響し、フィルターの収束に影響し、非線形エコー処理にも影響します。ディレイが変化した場合、ディレイの変化を素早く追従して素早く調整できる必要があり、そうしないと時折エコーが発生してしまいます。

レイテンシ推定設計

一般に、デバイスのスピーカーとマイクの応答により、エコーの分布はほぼ中周波数域にあり、高周波部分と低周波部分のエコーはほとんどないため、エコーを追跡することができます。中周波数域。

Webrtc の aec モジュールは、周波数領域でバイナリ スペクトラムの方法を使用します。スペクトルの両端の中間周波数帯域の分布を二値化データにマッピングし、最も類似度の高い遠端信号を見つけて、それに対応する時間遅延を計算するこの方法は、計算量は少ないですが、次のような影響を大きく受けます。ノイズ。

Webrtc の aec3 モジュールは線形フィルタリングを使用します。マッチド フィルター方式は、時間領域信号に対して NLMS (正規化最小二乗平均) 処理を直接実行するもので、非常に堅牢です。

時間領域信号の相互相関には複数のピークが存在し、遅延推定が不正確になります。線形フィルタリングと組み合わせた周波数領域相互相関の方法を使用して、一方ではロバスト性を確保し、他方では、周波数領域相互相関の速い検出速度の特性を利用して検出速度を高速化することを検討します。 

3. (リニア) エコー キャンセル (Linear Acoustic Echo cancelation、AEC) モジュール (リニア フィルター モジュール)

エコー キャンセル モジュールは主に適応フィルターを使用して設計されており、設計中に安定性、アルゴリズムの複雑さ、収束率などの関連指標を考慮する必要があります。より優れたエコー キャンセレーション効果を実現するには、適応フィルターに加えて、線形エコー キャンセレーション モジュールを設計するときに、デュアル チャネル検出を導入することも必要です。

x(n) は遠端入力信号であり、未知のエコー パス h(n) を介してy(n)=x(n)*h(n) を取得し、観測ノイズ v(n) を加えて、近端入力信号 s(n)=y(n)+v(n)。x(n) は適応フィルタ w(n) を通して推定エコー信号を取得し、それを近端入力信号 s(n) から減算して誤差信号 e(n) を取得します。つまり、e(n)= s(n) − conj(w(n))x(n) のように、適応フィルタリング アルゴリズムによって推定されたエコー パスが実際のエコー パスに近づくほど、誤差は小さくなり、エコー残留物も小さくなります。したがって、得られた誤差サイズを適応調整の方向として使用します。

このフィルターは、特定の適応アルゴリズムを使用して重みベクトルを継続的に調整するため、推定されたエコー パス w(n) が実際のエコー パス h(n) に徐々に近づきます。このようにして、フィルターの出力は実際のエコーに近似できるため、エラー信号にはエコー信号が含まれなくなります。

適応フィルタの収束段階では、近端信号にはエコーのみが含まれており、近端音声は混合できません。近端とノイズが h(n) の収束プロセスを妨害するためです。つまり、エコーキャンセルアルゴリズムは、実行開始後すぐに収束することが要求されます。自分が話したらすぐに相手のアルゴリズムが収束するように要求するのが最善です。収束が完了した後、相手が話し始めたら、 h(n) 係数は変化してはならず、安定させる必要があります。

エコー パスは変化する可能性があります。変化があると、適応フィルター学習を再開する必要があるため、エコー キャンセル アルゴリズムがそれを判断できなければなりません。つまり、h(n) は新しいエコーに近づくために新しい収束プロセスが必要です。パスh。適応フィルターは、収束速度と追跡パフォーマンス、定常状態の誤調整の間でバランスをとる必要があります。

線形フィルター設計

現在、適応フィルタ、NLMS フィルタ、カルマン フィルタが一般的に使用されていますが、これら 2 つのフィルタにはそれぞれ長所と短所があります。カルマン フィルタリングは収束速度が速いですが、収束パフォーマンスに欠けますが、NLMS は比較的安定しています。基本的に、収束速度、追跡パフォーマンス、定常状態のミスアライメントにはさまざまなバイアスがあります。ただし、どのようなフィルターであっても、NLMS はステップ サイズ値を変更し、Kalaman はゲインを変更することで、追跡速度を調整して収束速度と追跡パフォーマンスのバランスを変更できます。

複数のフィルターの混合使用を考慮し、異なるフィルターの利点を活かし、収束速度を確保し、互いの発散を制限します。非線形フィルタはエコーやダブルトークの状態推定にも関与し、それにより適応フィルタのトラッキングステップサイズを制御し、状態に応じた可変ステップトラッキングを実現します。

4. 非線形残留音響エコー抑制 (Residual Acoustic Echo Suppression、RAES) モジュール (非線形フィルタリング モジュール)

適応フィルタではエコーを完全に除去することは困難であり、残留エコーを除去するためには残留エコー抑圧モジュールを導入する必要がある。残留エコー抑制モジュールを設計するときは、近端音声歪みと残留エコー抑制の間のバランスを達成する必要があるだけでなく、アルゴリズムの効果と計算の複雑さのバランスも取る必要があります。

非線形処理モジュールは通常、基準信号、マイク信号、線形エコー信号、残差の相関を計算し、残存エコーまたはエコーの状態を推定する。ウィーナーフィルタリングによるエコー除去は残留エコーをどのように推定するかに焦点を当てており、残留エコーの大きさの推定も最終的な除去結果に直接影響します。残留エコーが過小評価されると、残留エコーが存在する可能性があり、残留エコーが過大評価されると、ダブルトークで近端音声が損傷することになります。

非線形フィルター設計

当社の非線形処理モジュールは、基準信号、マイク信号、線形エコー信号、残差信号に対して、ピーク相関、周波数領域相関、振幅類似性の特性を採用し、ダブルトーク状態やエコー状態などの情報を総合的に判断して取得します上記の相関に加えて、線形フィルタの更新重みを使用してエコーの状態を取得することもできます。最終的な出力に影響を与えるのは、残留エコーまたはエコーのサイズの推定です。残留エコーの推定には、エコーの状態とフィルターのERL(エコーリターンロス)推定を組み合わせた方法が採用されています。

適応フィルターには 3 つの動作モードがあります (DTD によって検出)。

  • 遠端音声は存在しますが、近端音声は存在しません: フィルタリング、適応フィルタ係数更新
  • 遠端音声の存在、近端音声の存在: フィルタリング
  • 遠端の音声が存在しません: 何もしません

参考文献:

https://worktile.com/kb/ask/5708.html

https://www.cnblogs.com/LXP-Never/p/11703440.html

おすすめ

転載: blog.csdn.net/qq_42233059/article/details/131959160