(57)【要約】【課題】エコーキャンセラでフィルタ処理と係数更新に関し、フィルタ結果の誤差計算は全区間を用いて行っており、フィルタ係数の更新はスケジューリングで選ばれた区間で行っているため、誤差計算の区間と更新の区間が一致せず、適応動作が理論通りにならず適応の精度に限界があった。【解決手段】残響時間検出回路１０で検出した残響時間によりフィルタ処理区間を決定し、変動エコー検出回路１２でフィルタ係数が時間的に変動する区間を検出し、フィルタ係数を更新する区間を決定し、フィルタ回路７で、フィルタ処理と誤差計算処理を独立して行うことにより、誤差計算の区間と更新の区間させ、かつ、フィルタ処理のみ長い区間で行うことで、適応の精度向上と長い残響時間への対応を実現した。【選択図】図１
2006157498.tif 000002
【特許請求の範囲】
【請求項１】
マイクを介して入力されたスピーカからの音声について、フィルタ係数を補正する補正値を演算し、この演算された補正値に基づいて前記フィルタ係数を補正し、この補正されたフィルタ係数に基づいて、前記音声からエコーをキャンセルする音響エコーキャンセラであって、
前記フィルタ係数及び前記補正値の少なくとも一方に基づいて、前記フィルタ係数の補正値の大きさを演算する変動エコー検出回路と、
前記変動エコー検出回路により演算されたフィルタ係数の補正値の大きさが所定値以上となる区間を検出するフィルタ係数補正区間制御回路と、
前記フィルタ係数補正区間制御回路により検出された区間について前記フィルタ係数を補正するフィルタ係数補正回路と、
前記フィルタ係数補正回路により補正されたフィルタ係数に基づいて、フィルタ処理を実行して前記擬似エコーを演算し、前記マイクを介して入力された音声から前記演算された擬似エコーを減算する、擬似エコー生成減算回路とを備えた、
ことを特徴とする音響エコーキャンセラ。
【請求項２】
前記フィルタ係数に基づいて、前記マイクを介して入力された音声の残響時間を検出する残響時間検出回路と、
前記残響時間検出回路により検出された残響時間に基づいて、前記フィルタ処理を実行すべきフィルタ処理区間を設定するフィルタ処理区間制御回路とを備え、
前記擬似エコー生成減算回路は、前記フィルタ処理区間制御回路により設定されたフィルタ処理区間について、前記フィルタ処理を実行して前記擬似エコーを演算する、
ことを特徴とする請求項１記載の音響エコーキャンセラ。
【請求項３】
前記フィルタ係数補正区間制御回路は、当該音響エコーキャンセラが動作する音響空間に対して、前記スピーカと使用者と前記マイクの間の距離に基づいて、区間を検出する、
ことを特徴とする請求項１または２記載の音響エコーキャンセラ。
【請求項４】
前記残響時間検出回路は、
前記フィルタ係数の大きさが最大であるタップ位置を基準として決めた第２の始点と第２の終点とから構成される第２の区間と、前記フィルタ係数の大きさの最大であるタップ位置を基準として決めた、前記フィルタ係数が減衰する第３の始点と第３の終点とから構成される第３の区間とを求めるタップ始点終点演算回路と、
前記第２の区間のフィルタ係数の大きさと、前記第３の区間のフィルタ係数の大きさとを演算するフィルタ係数の大きさ演算回路とを有し、
前記フィルタ処理区間制御回路は、前記大きさ演算回路により演算された、前記第２の区間のフィルタ係数の大きさと前記第３の区間のフィルタ係数の大きさとに基づいて、前記フィルタ回路の第１の始点から第１の終点までをフィルタ処理区間として設定する、
ことを特徴とする請求項２記載の音響エコーキャンセラ。
【請求項５】
前記タップ始点終点演算回路は、区間の長さが同じになるように、前記第２の区間と前記第３の区間とを求める、
ことを特徴とする請求項４記載の音響エコーキャンセラ。
【請求項６】
前記大きさ演算回路は、区間のフィルタ係数の自乗パワーの平均値を用いて、前記フィルタ係数の大きさを演算する、
ことを特徴とする請求項４または５記載の音響エコーキャンセラ。
【請求項７】
前記大きさ演算回路は、区間のフィルタ係数の絶対値の平均値を用いて、前記フィルタ係数の大きさを演算する、
ことを特徴とする請求項項４または５記載の音響エコーキャンセラ。
【請求項８】
前記大きさ演算回路は、区間のフィルタ係数の絶対値の最大値を用いて、前記フィルタ係数の大きさを演算する、
ことを特徴とする請求項項４または５記載の音響エコーキャンセラ。
【請求項９】
音響エコーキャンセル動作時に定期的に、フィルタ処理区間とフィルタ係数を補正する区間を長くするように動作する、
ことを特徴とする請求項項１から８いずれか１項に記載の音響エコーキャンセラ。
【請求項１０】
音響エコーキャンセル動作開始時に、フィルタ処理区間とフィルタ係数を補正する区間をフィルタ係数の全区間とし、全フィルタ係数を初期値から更新した後、フィルタ処理区間とフィルタ係数を補正する区間を制御する、
ことを特徴とする請求項項１から８いずれか１項に記載の音響エコーキャンセラ。
【請求項１１】
請求項１から１０いずれか１項に記載の音響エコーキャンセラを用いた、
ことを特徴とするハンズフリー電話。
【請求項１２】
マイクを介して入力されたスピーカからの音声について、フィルタ係数を補正する補正値を演算し、この演算された補正値に基づいて前記フィルタ係数を補正し、この補正されたフィルタ係数に基づいて、前記音声からエコーをキャンセルする音響エコーキャンセルする方法であって、
前記フィルタ係数及び前記補正値の少なくとも一方に基づいて、前記フィルタ係数の補正値の大きさを演算する変動エコー検出工程と、
前記変動エコー検出工程により演算されたフィルタ係数の補正値の大きさが所定値以上となる区間を検出するフィルタ係数補正区間制御工程と、
前記フィルタ係数補正区間制御工程により検出された区間について前記フィルタ係数を補正するフィルタ係数補正工程と、
前記フィルタ係数補正工程により補正されたフィルタ係数に基づいて、フィルタ処理を実行して前記擬似エコーを演算し、前記マイクを介して入力された音声から前記演算された擬似エコーを減算する、擬似エコー生成減算工程とを備えた、
ことを特徴とする音響エコーキャンセル方法。
【請求項１３】
前記フィルタ係数に基づいて、前記マイクを介して入力された音声の残響時間を検出する残響時間検出工程と、
前記残響時間検出工程により検出された残響時間に基づいて、前記フィルタ処理を実行すべきフィルタ処理区間を設定するフィルタ処理区間制御工程とを備え、
前記擬似エコー生成減算工程は、前記フィルタ処理区間制御工程により設定されたフィルタ処理区間について、前記フィルタ処理を実行して前記擬似エコーを演算する、
ことを特徴とする請求項１２記載の音響エコーキャンセル方法。
【請求項１４】
前記フィルタ係数補正区間制御工程は、当該音響エコーキャンセラが動作する音響空間に対して、前記スピーカと使用者と前記マイクの間の距離に基づいて、区間を検出する、
ことを特徴とする請求項１２または１３記載の音響エコーキャンセル方法。
【請求項１５】
前記残響時間検出工程は、
前記フィルタ係数の大きさが最大であるタップ位置を基準として決めた第２の始点と第２の終点とから構成される第２の区間と、前記フィルタ係数の大きさの最大であるタップ位置を基準として決めた、前記フィルタ係数が減衰する第３の始点と第３の終点とから構成される第３の区間とを求めるタップ始点終点演算工程と、
前記第２の区間のフィルタ係数の大きさと、前記第３の区間のフィルタ係数の大きさとを演算するフィルタ係数の大きさ演算工程とを有し、
前記フィルタ処理区間制御工程は、前記大きさ演算回路により演算された、前記第２の区間のフィルタ係数の大きさと前記第３の区間のフィルタ係数の大きさとに基づいて、前記フィルタ回路の第１の始点から第１の終点までをフィルタ処理区間として設定する、
ことを特徴とする請求項１３記載の音響エコーキャンセル方法。
【請求項１６】
前記タップ始点終点演算工程は、区間の長さが同じになるように、前記第２の区間と前記第３の区間とを求める、
ことを特徴とする請求項１５記載の音響エコーキャンセル方法。
【請求項１７】
前記大きさ演算工程は、区間のフィルタ係数の自乗パワーの平均値を用いて、前記フィルタ係数の大きさを演算する、
ことを特徴とする請求項１５または１６記載の音響エコーキャンセル方法。
【請求項１８】
前記大きさ演算工程は、区間のフィルタ係数の絶対値の平均値を用いて、前記フィルタ係数の大きさを演算する、
ことを特徴とする請求項１５または１６記載の音響エコーキャンセル方法。
【請求項１９】
前記大きさ演算工程は、区間のフィルタ係数の絶対値の最大値を用いて、前記フィルタ係数の大きさを演算する、
ことを特徴とする請求項１５または１６記載の音響エコーキャンセル方法。
【請求項２０】
音響エコーキャンセル動作時に定期的に、フィルタ処理区間とフィルタ係数を補正する区間を長くするように動作する、
ことを特徴とする請求項１２から１９いずれか１項に記載の音響エコーキャンセル方法。
【請求項２１】
音響エコーキャンセル動作開始時に、フィルタ処理区間とフィルタ係数を補正する区間をフィルタ係数の全区間とし、全フィルタ係数を初期値から更新した後、フィルタ処理区間とフィルタ係数を補正する区間を制御する、
ことを特徴とする請求項１２から１９いずれか１項に記載の音響エコーキャンセル方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、長い残響時間の部屋で用いられる音響エコーキャンセラに関するものである。
【背景技術】
【０００２】
長い残響時間の部屋で動作するＦＩＲフィルタを用いた音響エコーキャンセラでは、エコー経路のインパルス応答を模擬できる長い残響時間に対応したタップ長が必要である。しかし、タップ長が長くなると適応動作のためのステップサイズパラメータを小さくしなければならず、収束速度が遅くなってしまうことは良く知られていることである。また、タップ長が長くなると誤調整度が増加するため、適応動作において雑音が増加してしまうことも知られている。
【０００３】
その結果、エコー経路が変化した時、音響エコーキャンセラの動作がエコー経路の変化に追従できない場合には、音響エコーキャンセラの動作が不安定になるという問題がある。また、収束時間を優先するために短いタップ長を用いた場合には、エコー経路のインパルス応答より短いタップ長であるため表現できなかった誤差により、音響エコーキャンセラの動作がやはり不安定になるという問題がある。そのため、長い残響時間の部屋で動作する音響エコーキャンセラでは、長いタップ長で、かつ収束時間の速い相反する条件を満たすことが必要である。
【０００４】
従来の長いタップ長で、かつ、収束時間の速い相反する条件を満たす音響エコーキャンセラについて、図を用いてその動作を説明する。
【０００５】
図１０は従来の長いタップ長で、かつ、収束時間の速い相反する条件を満たす音響エコーキャンセラである。受話信号入力端子１０１から受話信号を入力し、受話信号出力端子１０２からスピーカを経由して、音響空間に信号が出力される。そして、送話信号入力端子１０３に接続されたマイクから、音響空間に出力され残響特性が加わった信号が入力される。その送話信号入力端子１０３からの信号を音響エコーキャンセル処理して送話出力信号端子１０４に出力するものである。
【０００６】
受話信号入力端子１０１からの信号は、サンプリング毎の遅延素子１０５を経て、トランスバーサル形式のフィルタの入力信号となる。また、経路スイッチ１０６を経て、係数発生回路１０７の係数と掛算器１０８で掛け算され、全ての積の和を加算器１０９で求めることでフィルタ演算が行われる。
【０００７】
小さい信号でフィルタ係数の更新や後で述べるタップ位置の更新を行うと不正確な動作になるために、入力信号の各遅延素子１０５のそれぞれの出力信号１１０に対し、入力信号評価回路１１１で各遅延素子毎の出力の自乗パワーなどの計算で大きさを評価する。
【０００８】
ここで、遅延素子１０５の出力が予め決められたしきい値より小さい部分と、スピーカからマイクまでの伝達時間相当の遅延による遅延素子１０５の出力が小さい部分を除くためにタップ制御回路１１２は、経路スイッチ１０６にどのタップを使用するかのタップ位置情報１１３を出力する。経路スイッチ１０６はその情報に従って、遅延素子１０５の出力と実際にフィルタ演算で使用するトランスバーサルフィルタの掛算器１０８を結合する。
【０００９】
また、入力信号評価回路１１１からの出力において、入力信号が予め決められた第一のしきい値より小さいときは、タップ制御回路１１２は、ステップサイズ信号１１４をゼロにすることにより、全てのフィルタ処理の係数をゼロにして、フィルタ係数の更新をしないようにする。
【００１０】
また、入力信号評価回路１１１からの出力において、各遅延素子１０５からの入力信号のうち、どれかが予め決められた第二のしきい値より小さいときは、タップ制御回路１１２は、各タップの係数発生回路１０７からの係数信号１１５から一番小さい係数を無効にして、該当タップの遅延素子１０５と掛算器１０８の結合を取りやめ、該当の係数発生回路１０７を係数クリア信号１１６でクリアする。
【００１１】
そして、タップ制御回路１１２に記憶している次の接続候補を選択して、タップ経路情報１１３で、次の候補を結合するように制御する。
【００１２】
以上のようにして各遅延素子１０５の出力とフィルタ係数である係数発生回路１０７の積の和を加算器１０９で求めてフィルタ処理の結果とする。フィルタ処理結果と送話信号入力端子１０３との誤差信号を減算器１１７で計算することにより誤差を求め、係数発生回路１０７において、新しいフィルタ係数を発生させることで、適応動作を行う。
【００１３】
以上のように動作することで、各タップのフィルタ係数の大きさを求めて、フィルタ係数の大きさがしきい値より小さいタップは積和演算から除くことにより、音響エコーキャンセラのタップ長を見かけ上短くし、適応動作を速くすることを実現していた（例えば特許文献１参照）。
【００１４】
また、図１１は長いタップ長では演算量が不足するという問題点に対応するために、スピーカからマイクへの直接で変動しないエコー経路に対応するフィルタ係数の区間と人や周りのものからの音響パスが変動するエコー経路に対応するフィルタ係数の区間を分離し、変動しないエコー経路に対応するフィルタ係数の区間は１サンプル毎、人や周りのものからの音響パスが変動するエコー経路に対応するフィルタ係数の区間フィルタ係数の区間は複数サンプル毎の時間間隔で更新をするというスケジューリングをするものである。
【００１５】
受話信号入力端子１２１から受話信号を入力し、受話信号出力端子１２２からスピーカを経由して、音響空間に信号が出力される。そして、送話信号入力端子１２３に接続されたマイクから音響空間に出力され残響特性が加わった信号が入力される。その送話信号入力端子１２３からの信号を音響エコーキャンセル処理して送話出力信号端子１２４に出力するものである。
【００１６】
フィルタ処理は受話信号入力端子１２１からの入力を受信バッファ１２５に蓄積し、ブロック可変分割フィルタ係数１２６と畳み込み回路１２７で畳み込み演算することでフィルタ処理を行う。その畳み込み回路１２７の出力と、送話信号入力端子１２３経由でマイクから入力した信号との誤差信号を減算回路１２８で誤差を計算する。ブロック分割フィルタ係数補正回路１２９において誤差信号を参照し、ブロック分割可変フィルタ係数１２６の係数を補正することで、適応動作を行うものである。
【００１７】
本従来例では、ブロック可変フィルタ係数がＮ個のブロックに分割されており、それぞれのブロックの係数の累積加算の大きさの平均値が累積加算電力演算回路１３０で計算する。
【００１８】
係数補正量平均電力演算回路１３１では、各ブロックの適応動作の係数補正量の平均電力値を計算する。係数補正量比率算出回路１３２では、累積加算平均電力演算回路１３０の出力と係数補正量平均電力演算回路１３１とから、各ブロックの係数に対する補正量の比率を計算する。
【００１９】
係数変動量検出回路１３３では、その比率の時間的な変動量を計算する。その結果、ブロック化されたフィルタ係数のうち、どのブロックの係数の変動が大きいかがわかる。また、累積加算平均電力比較回路１３４では、係数の値そのものが大きいブロックを選択する。
【００２０】
累積加算平均電力比較回路１３４と係数変動量検出回路１３３からの信号によって、係数系列ブロック選択回路１３５では直接音の優性なブロックと、音響空間で人や物が移動しているために変化しているブロックを選択する。処理量を減らすことを目的としているが、そこで選択されたブロックのみを適応動作のフィルタ演算に使用することで、フィルタ処理するタップ長を選択的に短くし、適応動作を速くし、実際にフィルタ係数の更新演算するタップ長より長い残響時間に対応できるという効果があると考えられる（例えば特許文献２参照）。
【特許文献１】特開平１１−１４５８７８号公報
【特許文献２】特開平７−３２１７１６号公報
【発明の開示】
【発明が解決しようとする課題】
【００２１】
しかしながら、図１０や図１１のような従来の構成では、音響エコーキャンセラを実装するＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）の処理量を減少させるために、係数更新するタップとフィルタ処理するタップが異なっていた。エコー経路を模擬したインパルス応答のフィルタ係数を用いた誤差計算は全タップを用いて行っており、フィルタ係数の更新を常に行うフィルタ係数のブロックとスケジューリングで選ばれたフィルタ係数のブロックとで行っているため、誤差計算の区間と更新の区間が一致せず、適応動作が理論通りにならず適応の精度に限界があった。
【００２２】
ＬＭＳ（Ｌｅａｓｔ  ｍｅａｎｓ  ｓｑｕａｒｅ）アルゴリズムやＮＬＭＳ（Ｎｏｒｍａｌｉｚｅｄ  ＬＭＳ）アルゴリズムの基本構成では、エコーキャンセル処理の適応フィルタの結果と実際に模擬したい音響空間からの信号の誤差を求める際、実際のエコー経路の伝達特性は全部のタップ相当を全て含んだ伝達特性であるのに対し、従来の方法ではフィルタ処理は全フィルタ係数を対象とし、フィルタ係数の補正は限られた区間のフィルタ係数だけを対象としている。そのため、フィルタ係数の補正において、補正の対象となっていない区間による誤差を含んでいることにより、適応動作が理論通りにならず精度に限界があった。
【課題を解決するための手段】
【００２３】
本発明は、上記目的を達成するために、残響時間に対応する区間をフィルタ係数の形から簡易な方法で推定する。また、スピーカからマイク周辺の変化する伝達特性と、部屋の壁や天井などの変化しない残響特性を分離し、フィルタ係数が変化している区間を検出することによりフィルタ係数を更新する区間を設定する。このようにエコー経路の残響時間に対応するフィルタ処理および実際の音響空間からの信号からフィルタ処理した信号を減算する処理と、フィルタ係数が変化している区間に対するフィルタ係数の更新処理を別々に行う。
【発明の効果】
【００２４】
本発明は、変化しているフィルタ係数の区間に対するフィルタ係数更新処理により、フィルタ係数更新のためのフィルタ処理とフィルタ係数補正の区間が一致させることができるようになった。また、そこで求めた変化するフィルタ係数と予め求めておいた変化しないフィルタ係数を使用したフィルタ処理により、長い残響時間に対応できるようになった。そのため、収束が早く、かつ、精度の高い音響エコーキャンセラを提供できるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
本発明の実施の形態においては、マイクを介して入力されたスピーカからの音声について、フィルタ係数を補正する補正値を演算し、この演算された補正値に基づいてフィルタ係数を補正し、この補正されたフィルタ係数に基づいて、音声からエコーをキャンセルする音響エコーキャンセラであって、
フィルタ係数及び補正値の少なくとも一方に基づいて、フィルタ係数の補正値の大きさを演算する変動エコー検出回路と、
変動エコー検出回路により演算されたフィルタ係数の補正値の大きさが所定値以上となる区間を検出するフィルタ係数補正区間制御回路と、
フィルタ係数補正区間制御回路により検出された区間についてフィルタ係数を補正するフィルタ係数補正回路と、
フィルタ係数補正回路により補正されたフィルタ係数に基づいて、フィルタ処理を実行して擬似エコーを演算し、マイクを介して入力された音声から演算された擬似エコーを減算する、擬似エコー生成減算回路とを備えたことを特徴とするように構成されたものである。
【００２６】
あるいは、マイクを介して入力されたスピーカからの音声について、フィルタ係数を補正する補正値を演算し、この演算された補正値に基づいてフィルタ係数を補正し、この補正されたフィルタ係数に基づいて、音声からエコーをキャンセルする音響エコーキャンセルする方法であって、
フィルタ係数及び補正値の少なくとも一方に基づいて、フィルタ係数の補正値の大きさを演算する変動エコー検出工程と、
変動エコー検出工程により演算されたフィルタ係数の補正値の大きさが所定値以上となる区間を検出するフィルタ係数補正区間制御工程と、
フィルタ係数補正区間制御工程により検出された区間についてフィルタ係数を補正するフィルタ係数補正工程と、
フィルタ係数補正工程により補正されたフィルタ係数に基づいて、フィルタ処理を実行して擬似エコーを演算し、マイクを介して入力された音声から演算された擬似エコーを減算する、擬似エコー生成減算工程とから構成された方法である。
【００２７】
この構成により、変化しているフィルタ係数の区間に対するフィルタ係数更新処理により、フィルタ係数更新のためのフィルタ処理とフィルタ係数補正の区間を一致させることができるようになった。また、そこで求めた変化するフィルタ係数と予め求めておいた変化しないフィルタ係数を使用したフィルタ処理により、長い残響時間に対応できるようになった。そのため、収束が早く、かつ、精度の高い音響エコーキャンセラを提供できるという効果を奏する。
【００２８】
また、フィルタ係数に基づいて、マイクを介して入力された音声の残響時間を検出する残響時間検出回路と、
残響時間検出回路により検出された残響時間に基づいて、フィルタ処理を実行すべきフィルタ処理区間を設定するフィルタ処理区間制御回路とを備え、
擬似エコー生成減算回路は、フィルタ処理区間制御回路により設定されたフィルタ処理区間について、フィルタ処理を実行して擬似エコーを演算する構成にしても良い。
【００２９】
あるいは、フィルタ係数に基づいて、マイクを介して入力された音声の残響時間を検出する残響時間検出工程と、
残響時間検出工程により検出された残響時間に基づいて、フィルタ処理を実行すべきフィルタ処理区間を設定するフィルタ処理区間制御工程とを備え、
擬似エコー生成減算工程は、フィルタ処理区間制御工程により設定されたフィルタ処理区間について、フィルタ処理を実行して擬似エコーを演算する構成にしても良い。
【００３０】
この構成により、残響時間に対応するフィルタ長を設定できるようになり、処理量が少なく、収束が早く、かつ、精度の高い音響エコーキャンセラを提供できるという効果を奏する。
【００３１】
また、フィルタ係数補正区間制御回路は、当該音響エコーキャンセラが動作する音響空間に対して、スピーカと使用者とマイクの間の距離に基づいて、区間を検出する構成にしても良い。
【００３２】
あるいは、フィルタ係数補正区間制御工程は、当該音響エコーキャンセラが動作する音響空間に対して、スピーカと使用者とマイクの間の距離に基づいて、区間を検出する方法でも良い。
【００３３】
上記の構成において、エコーキャンセラが設置される状態を予め決めておくことにより、音響エコーキャンセラから出力される信号を再生するスピーカと使用者と音響空間からの音を収音するマイクの間の距離を決定することができる。この距離に基づいて予め一定値のフィルタ係数を補正する区間を定めておくことができる。この構成によりフィルタ係数を補正する区間の検出を簡略化した構成とすることができる。
【００３４】
残響時間検出回路は、
フィルタ係数の大きさが最大であるタップ位置を基準として決めた第２の始点と第２の終点とから構成される第２の区間と、フィルタ係数の大きさの最大であるタップ位置を基準として決めた、フィルタ係数が減衰する第３の始点と第３の終点とから構成される第３の区間とを求めるタップ始点終点演算回路と、
第２の区間のフィルタ係数の大きさと、第３の区間のフィルタ係数の大きさとを演算するフィルタ係数の大きさ演算回路とを有し、
フィルタ処理区間制御回路は、大きさ演算回路により演算された、第２の区間のフィルタ係数の大きさと前記第３の区間のフィルタ係数の大きさとに基づいて、フィルタ回路の第１の始点から第１の終点までをフィルタ処理区間として設定する構成にしてもよい。
【００３５】
あるいは、残響時間検出工程は、
フィルタ係数の大きさが最大であるタップ位置を基準として決めた第２の始点と第２の終点とから構成される第２の区間と、フィルタ係数の大きさの最大であるタップ位置を基準として決めた、フィルタ係数が減衰する第３の始点と第３の終点とから構成される第３の区間とを求めるタップ始点終点演算工程と、
第２の区間のフィルタ係数の大きさと、第３の区間のフィルタ係数の大きさとを演算するフィルタ係数の大きさ演算工程とを有し、
フィルタ処理区間制御工程は、大きさ演算回路により演算された、第２の区間のフィルタ係数の大きさと第３の区間のフィルタ係数の大きさとに基づいて、フィルタ回路の第１の始点から第１の終点までをフィルタ処理区間として設定する方法にしてもよい。
【００３６】
この構成により、フィルタ係数バッファから簡易な方法で、残響時間に対応するフィルタ長を設定できるという効果を奏する。
【００３７】
また、タップ始点終点演算回路は、区間の長さが同じになるように、第２の区間と第３の区間とを求めるようにしても良い。
【００３８】
あるいは、タップ始点終点演算工程は、区間の長さが同じになるように、第２の区間と前記第３の区間とを求めるようにしても良い。
【００３９】
この構成により、大きさの値をそれぞれの区間の長さで正規化の演算をすることなく大きさを算出することができる。
【００４０】
また、フィルタ係数バッファのフィルタ係数の大きさとして、区間のフィルタ係数の自乗パワーの平均値を用いることにより、デジタルシグナルプロセッサなどで実施した場合に、積和演算命令を利用し、処理数が少なく累積パワーを求めることができる。また、フィルタ係数バッファのフィルタ係数の大きさとして、区間のフィルタ係数の絶対値の平均値を用いることにより、積和演算命令を持たない汎用ＣＰＵでも処理することが可能である。また、フィルタ係数バッファのフィルタ係数の大きさとして、区間のフィルタ係数の絶対値の最大値を用いることにより、加算累積する必要がないため、比較演算のみで処理することが可能で処理量が少なくすることができる。
【００４１】
また、音響エコーキャンセル動作の際、定期的あるいは動作開始時に、フィルタ処理区間とフィルタ係数を補正する区間を長くするあるいは全区間とするように、フィルタ処理区間とフィルタ係数補正でフィルタ係数を補正する区間を制御するものである。この構成により、フィルタ係数を全体にわたって更新することができ、音響エコーキャンセラ動作開始時および動作環境の変化時に速く対応できるものである。
【００４２】
また、これらの音響エコーキャンセラをハンズフリー電話用いたことにより、
残響時間の長い部屋でも人の移動などによる部屋の環境の変化に追従する速度が速く安定した、かつ、エコー消去量が大きく会話のしやすいハンズフリー電話を提供することができる。
【実施例】
【００４３】
（実施例１）
以下、本発明の実施例１における音響エコーキャンセラについて図面を参照しながら説明する。
【００４４】
図１において、受話信号入力端子１は、相手からの受話信号を入力する端子である。受話信号出力端子２は、この端子にスピーカを接続し、音響空間に受話信号を出力する端子である。送話信号入力端子３はエコーキャンセラの動作において模擬したい外部の音響空間の残響特性を経た信号を入力する端子である。送話信号出力端子４は、送話信号入力端子３からの信号に対し音響エコーキャンセラ処理された信号を相手に出力する信号端子である。リファレンス信号バッファ５は、受話信号入力端子１からの信号をフィルタ処理に必要な時間分だけ蓄積しておくバッファである。
【００４５】
フィルタ係数バッファ６は、模擬したい残響特性の伝達関数のフィルタ係数を蓄積しておくバッファである。フィルタ回路７は、フィルタ係数バッファ６とリファレンス信号バッファ５を用いてフィルタ処理し模擬した結果のデータを誤差計算回路８へ出力するフィルタ回路である。誤差計算回路８は、送話信号入力端子３へ入力されてくる信号とフィルタ回路８において音響空間の特性を模擬した信号との誤差信号を送話信号出力端子４とフィルタ係数補正回路９へ出力する回路である。フィルタ係数補正回路９は、受話信号入力端子１と誤差計算回路８との信号から、フィルタ回路７の信号が送話信号入力端子３の信号に近づくようにフィルタ係数バッファ６のフィルタ係数を補正する回路である。また、２７は音響エコーキャンセラ全体を示すものである。
【００４６】
変動エコー検出回路１２は、エコーキャンセル動作においてフィルタ係数が順次補正されている際に、フィルタ補正回路９が出力する補正値あるいはフィルタ係数バッファ６のフィルタ係数が補正前後の差に基づいて、補正値の大きさを計算する回路である。フィルタ係数変動区間検出回路１３では、変動エコー検出回路１２における補正値の大きさが、予め決められたしきい値より大きい第１の始点から第１の終点までの区間を検出する。
【００４７】
残響時間検出回路１０は、フィルタ係数バッファ６のフィルタ係数から、フィルタ係数の残響時間を検出する。フィルタ処理区間制御回路１１は、残響時間検出回路１０から出力される残響時間に基づいて、フィルタ回路７でフィルタ処理する区間の始点から終点までの区間に対応した第４の始点と第４の終点を設定する。
【００４８】
音響エコーキャンセラの動作する環境には、スピーカとその周囲にいて相手からの受話信号を聞く人と、相手への音声を収音するマイクとスピーカやマイクを設置する机などとそれら全部が入っている部屋がある。音響エコーキャンセラを動作させた場合、スピーカから直接マイクにマイクに入ってくる経路と、スピーカから机を反射してマイクに入ってくる経路と、スピーカからスピーカの音声を聞いている、あるいはマイクに向かって話している人に反射してマイクに入ってくる経路と、スピーカから部屋の壁や天井や床に反射してマイクに入ってくる経路が重なって、残響特性となる。
【００４９】
しかし、このうち変化する経路は、スピーカやマイクに近い経路にある人や人が操作するような物の近くの経路だけである。そこで、音響エコーキャンセラの動作で検出したフィルタ係数バッファ６のフィルタ係数から変動エコー検出回路１２で、音響エコーキャンセラの動作において更新されるフィルタ係数のタップ部分を検出することで実際に変動するものからの経路による補正区間長を設定できる。
【００５０】
上記の構成により、残響時間が長い部屋で音響エコーキャンセラを動作させた場合、たとえ長い残響時間を必要としたとしても、スピーカから直接マイクにマイクに入ってくる経路と、スピーカから机を反射してマイクに入ってくる経路と、スピーカからスピーカの音声を聞いている、あるいはマイクに向かって話している人に反射してマイクに入ってくる経路との変動する区間のみを対象にして係数補正ことができる。ここで、第４の終点が第１の終点より遅延の少ないタップ位置に設定してあることにより、音響エコーキャンセラにおいて、係数の補正と補正された係数でのフィルタ演算を、誤差の計算式
【００５１】
【数１】
2006157498.tif 000003
【００５２】
と、適応フィルタの補正式
【００５３】
【数２】
2006157498.tif 000004
【００５４】
として示す。ここで、ここでｋは時刻を示す添え字、εkは時刻ｋにおける入力とフィルタ出力の誤差、Ｘkは時刻ｋにおけるリファレンス信号バッファの第１の始点から第１の終点までのデータからなるベクトル、Ｗkはフィルタ係数バッファの第１の始点から第１の終点までのフィルタ係数ベクトル、μは適応の速度を制御する定数、‖Ｘｋ‖２はリファレンス信号バッファの第１の始点から第１の終点までの入力信号ベクトルの自乗ノルムである。Ｔは転置行列を示す。誤差の計算式（数１）における
【００５５】
【数３】
2006157498.tif 000005
【００５６】
の演算区間に誤差の演算区間とフィルタ係数ベクトルＷkの補正区間を一致して計算することができる。この適応動作において、ＸkおよびＷkはタップの第１の始点から第１の終点までのベクトルである。
【００５７】
長い残響時間の部屋で、スピーカから部屋の壁や天井や床に反射してマイクに入ってくる経路の予め得ておいた第４の始点から第４の終点までの残響特性に対応するフィルタ係数を用いたフィルタ処理の計算式
【００５８】
【数４】
2006157498.tif 000006
【００５９】
を用いて残響成分を計算する。ここで、Ｙkはリファレンス信号バッファの第４の始点から第４の終点までのデータからなるベクトル、Vkはフィルタ係数バッファの第４の終点から第１の終点までのデータからなるベクトルである。
【００６０】
フィルタ処理における第４の始点から第４の終点までの区間のフィルタ係数のうち、フィルタ係数が補正された第１の始点から第１の終点までの区間のみを補正されたフィルタ係数を用いることで、残響時間の長い部屋で使用された音響エコーキャンセラにより、対応する残響時間は長く、かつ更新するフィルタ係数は短いので収束速度が速く、かつ、フィルタ処理と更新処理の区間が同じなのでフィルタ更新式に合致した精度の高い更新が実現できる。
【００６１】
その結果として、残響時間の長い部屋で使用された場合でも、安定したエコーキャンセラ動作と、大きなエコー消去量が得られるため、相手からの音声を大きく再生でき、相手への音声において再生した音が消える量が大きい、使いやすい音響エコーキャンセラを提供できる。
【００６２】
（実施例２）
以下、本発明の実施例２における音響エコーキャンセラについて図２を参照しながら説明する。
【００６３】
なお、実施例１と同様の構成を有するものに付いては、同一符号を付しその説明を省略する。
【００６４】
図２において、実施例１と相違する点は、図１のフィルタ回路７と誤差計算回路８を合わせて擬似エコー生成減算回路１４で構成した点と、残響時間検出回路１０をタップ始点終点演算回路１０ａと大きさ演算回路１０ｂとで構成した点である。
【００６５】
まず、相違した部分のみ相互のブロックの関係を示す。
【００６６】
実施例２では、フィルタ係数バッファ６のフィルタ係数の一番大きい区間のフィルタ係数の大きさと、一番フィルタ係数が大きいところから減衰した区間のフィルタ係数の大きさから、残響時間を推定する。タップ始点終点演算回路１０ａは、フィルタ係数の一番大きい区間と一番フィルタ係数が大きいところから減衰した区間を検出する。
【００６７】
大きさ演算回路１０ｂは、フィルタ係数の一番大きい区間の大きさとフィルタ係数の減衰した区間の大きさからフィルタ処理区間を選択する回路である。例えば、８ｋＨｚサンプリングで信号処理を行う場合に、５１２タップ、１０２４タップ、２０４８タップ、４０９６タップの切替を行うとし、音響エコーキャンセラにおいて４０ｄＢの減衰量が得られるとすると、それぞれ約１００ミリ秒、約２００ミリ秒、約４００ミリ秒、約８００ミリ秒の残響時間に対応できるものとなる。
【００６８】
以上のような構成において、まず、タップ始点終点演算回路１０ａと大きさ演算回路１０ｂとフィルタ処理区間制御回路１１とから構成されるフィルタ処理区間設定方法について説明する。
【００６９】
タップ始点終点演算回路１０ａは、フィルタ係数バッファ６のフィルタ係数を参照して、一番大きなフィルタ係数のタップ位置付近の第２の始点から第２の終点のフィルタ係数の大きさと、時間軸でその後の第３の始点から第３の終点のフィルタ係数の大きさとを比較する第３の始点と第３の終点を計算する回路である。大きさ演算回路１０ｂは、フィルタ係数バッファ６の第２の始点から第２の終点までのフィルタ係数の大きさと第３の始点から第３の終点までのフィルタ係数の大きさを算出する回路である。
【００７０】
大きさ演算回路１０ｂは、第２の始点から第２の終点までのフィルタ係数の大きさと第３の始点から第３の終点までのフィルタ係数の大きさを比較することにより、フィルタ区間の始点と終点であるフィルタ区間の始点と第１の終点を擬似エコー生成減算回路１４に出力して、フィルタ処理区間を変更する。
【００７１】
実際に適応フィルタが動作して収束した後のフィルタ係数を図３と図４に示す。横軸が８０００Ｈｚサンプリングに対応する時間、縦軸が符号付１６ビットで表現したときの各タップのフィルタ係数を表している。以降、実際に適応フィルタを動作させたときのインパルス応答を表すフィルタ係数を示すので、インパルス応答を表す表現としてフィルタ係数を用いる。
【００７２】
図３は残響時間が１００ｍｓの部屋のフィルタ係数、図４は残響時間が４００ｍｓの部屋のフィルタ係数である。減衰時間だけではなく、最大のフィルタ係数のタップ位置も異なることがわかる。また、収束しても環境雑音の影響と誤調整度の影響で収束時にフィルタ係数が零になるわけではないこともわかる。
【００７３】
フィルタ係数がほぼ一定値になることを基準に、図３のグラフから最適なフィルタ処理区間は１０００タップ程度、図４のグラフから最適なフィルタ処理区間は２５００タップ程度と推定できる。
【００７４】
このようにいろいろなフィルタ係数の形に対応し、かつ最短のフィルタ処理区間としたいので、誤調整度が少なくなるように最短のフィルタ処理区間としてフィルタ区間の始点から第１の終点を設定し可変の処理区間とする。
【００７５】
図３と図４の例に限らずいろいろな伝達特性を考えると、フィルタ回路７でのフィルタ処理区間を大きくすれば、残響時間が長い部屋でのエコーキャンセラ動作が可能であるが、同時に適応動作の誤調整度が増加してしまうという問題点がある。そのために、最適なフィルタ処理区間長で動作させることが必要となる。
【００７６】
フィルタ処理区間を長くするかあるいは短くするかの判断をする方法として、図３のような減衰特性となっている残響特性を利用して、フィルタ係数が最大のタップ位置付近のフィルタ係数の大きさとそれより後ろのフィルタ係数の大きさを比較することにより、現在設定されているフィルタ処理区間長が適切かどうか判断する。
【００７７】
フィルタ処理区間の始点から第１の終点の中で、フィルタ係数バッファ６の一番大きな係数のタップ位置付近の第２の始点から第２の終点のフィルタ係数の大きさと、時間軸でその後の第３の始点から第３の終点のフィルタ係数の大きさとを比較することで、フィルタ処理区間を長くするか、あるいは短くするか判断する。
【００７８】
フィルタ係数バッファ６の第２の始点から第２の終点のフィルタ係数の大きさをＡ、第３の始点から第３の終点のフィルタ係数の大きさをＢとすると次の式で、フィルタ処理区間を長くするか、あるいは短くするかの判断を行う。
【００７９】
判断条件は次の通りである。α＞Ｂ／Ａならば、この畳み込み演算区間で充分に収束しているのでフィルタ処理区間を縮める。α＜Ｂ／Ａ＜βならば、ほぼ収束状態なのでこのフィルタ処理区間をそのまま使用する。Ｂ／Ａ＞βならば、まだ収束していないのでフィルタ処理区間を長くする。ここで、αとβは予め決定しておく判断のための係数である。
【００８０】
現在のフィルタ処理区間長が１０２４タップならば、フィルタ処理区間長を短くする際には５１２タップのフィルタ処理区間長に変更することになり、また、フィルタ処理区間長を長くする際には２０４８タップのフィルタ処理区間長に変更することになる。
【００８１】
音響エコーキャンセラを実際に動作させる信号は、理想的である周波数スペクトルが広がったホワイトノイズのような信号で動作するわけではない。実際には、例えば音声のような周波数スペクトルが偏った信号で第２の始点から第２の終点で決定される区間と、第３の始点から第３の終点で決定される区間を決定しなければならない。そのため、収束したフィルタ係数でも理想状態で学習した結果に比べて誤差が生じている。この誤差を取り除くために、ある程度の区間長を用いて誤差を少なくする必要である。
【００８２】
まず、タップ始点終点演算回路１０ａの動作を図５と図６を参考にして、第２の始点と第２の終点と第３の始点と第３の終点との決定方法を説明する。
【００８３】
まず第２の始点から第２の終点で決定される区間の設定方法を説明する。フィルタ係数の一番大きいタップを含む区間であることが必要であるため、第２の始点をフィルタ係数最大のタップ位置から畳み込み区間の３０％前のタップ位置とする。また、第２の終点をフィルタ係数が一番大きいタップ位置から畳み込み区間の３０％後ろのタップ位置とする。
【００８４】
まず、現在の畳み込み演算区間を５１２タップとする。図４において、フィルタ係数が一番大きいタップ位置は４０タップの位置である。フィルタ係数の一番大きいタップ位置から、フィルタ処理区間５１２タップの３０％の１５３タップ前のタップ位置を第２の始点とする。この場合先頭のタップより前になってしまうので先頭のタップ位置とする。また、フィルタ係数の一番大きいタップ位置から、フィルタ処理区間５１２タップの３０％の１５３タップ後ろのタップ位置を第２の終点とする。
【００８５】
同様に図５において、フィルタ係数が一番大きいタップ位置は１３０タップの位置である。フィルタ係数の一番大きいタップ位置から、フィルタ処理区間５１２タップの３０％の１５３タップ前のタップ位置を第２の始点とする。また、フィルタ係数の一番大きいタップ位置から、フィルタ処理区間５１２タップの３０％の１５３タップ分後ろのタップ位置を第２の終点とする。
【００８６】
次に、第３の始点から第３の終点で決定される区間の設定方法は次のとおりとする。第２の終点の次のタップ位置を第３の始点としフィルタ処理区間の最後をタップ位置を第３の終点とする。
【００８７】
図４においては、第２の終点の次のタップ位置の１９４タップを第３の始点とし、畳み込み区間の最後のタップ位置である５１２タップを第３の終点とする。
【００８８】
図５においては、第２の終点の次のタップ位置の２８４タップを第３の始点とし、畳み込み区間の最後のタップ位置である５１２タップを第３の終点とする。
【００８９】
大きさ演算回路１０ｂは、第２の始点から第２の終点と第３の始点から第３の終点のそれぞれの区間における大きさを演算する。第２の始点から第２の終点までのおおきさについては、第２の始点から第２の終点で決定される区間のフィルタ係数の累積自乗和を該当区間のタップ長で正規化する。同様に第３の始点から第３の終点で決定される区間のフィルタ係数の累積自乗和を該当区間のタップ長で正規化する。
【００９０】
フィルタ処理区間制御回路１１では、このようにして求められた第２の始点から第２の終点で決定される区間正規化された累積自乗和と第３の始点から第３の終点で決定される区間正規化された累積自乗和を用いて、判断基準に基づいて畳み込み演算区間を長く、あるいはそのまま、あるいは短く変更する。その結果を第４の始点と第４の終点とし、議事エコー生成減算回路１４に出力する。
【００９１】
上記の構成において、短い畳み込み区間を含めて、どんな畳み込み区間長においてもその区間で適応フィルタが充分に機能しているかどうかが判断できることとなり、収束したフィルタ係数で伝達特性を実現できる畳み込み区間を設定できる。
【００９２】
この実施例で、第２の始点と第２の終点と第３の始点から第３の終点を決定するにあたって、フィルタ処理区間長の３０％の区間長を設定しているが、使用される環境での伝達関数の特性に合わせた値を設定することで、最適な効果を得ることができる。
【００９３】
次に、変動エコー検出回路１２とフィルタ係数補正区間制御回路１３とから構成されるフィルタ係数補正区間設定方法について説明する。
【００９４】
フィルタ係数変動区間検出回路は１７は、フィルタ係数バッファ６のフィルタ係数に基づいてフィルタ更新区間を決定する。フィルタ係数バッファ６の各タップでのフィルタ係数のサンプリング毎の変化分の自乗
【００９５】
【数５】
2006157498.tif 000007
【００９６】
をタップ番号ｉ毎に計算する。ここで現時刻をｋ、１サンプリング前の時刻をｋ−１と表記している。
【００９７】
全タップについて、フィルタ係数のサンプリング毎の変化分の自乗を計算して、最大値となるタップ番号と、それより遅延の大きいタップ番号に向かってフィルタ係数のサンプリング毎の変化分の自乗が、最大値の定数倍より小さくなるタップ番号を探す。ここで、定数として１より小さい値を予め決めておく。このタップ番号の位置をフィルタ係数変動区間を示す第１の終点とする。第１の始点は、フィルタ係数バッファの遅延の一番少ないタップとすることができる。あるいは、フィルタ係数の遅延の少ない部分において、理論的にフィルタ係数が変わることが有り得なければ、そのタップを第１の始点としても良い。音響エコーキャンセラにおいては、スピーカからマイクへの空気中での音波の伝播時間分の遅延をこの第１の始点に対応させることができる。
【００９８】
フィルタ係数補正区間制御回路１３は第１の始点と第１の終点をフィルタ係数補正回路９に出力し、フィルタ係数補正の範囲を決定する。また、同様に第１の始点と第１の終点をフィルタ誤差計算回路１４に出力する。
【００９９】
エコーキャンセル動作用のフィルタ処理と誤差計算処理方法を図７を用いて詳細に説明する。図７は、リファレンス信号バッファ５とフィルタ係数バッファ６とフィルタ誤差計算回路１４とその周辺のブロックとの入出力を記載したものである。
【０１００】
リファレンス信号バッファ５が、リファレンス信号前半バッファ５ａとリファレンスバッファ５ｂで構成される。フィルタ係数バッファ６がフィルタ係数前半バッファ６ａとフィルタ係数後半バッファ６ｂで構成される。フィルタ誤差計算回路１４がフィルタ前半回路１４ａとフィルタ後半回路１４ｂと誤差計算回路１４ｃと加算回路１４ｄと引き算回路１４ｅから構成される。
【０１０１】
フィルタ前半回路１４ａの処理範囲はフィルタ係数補正区間制御回路１３から出力される第１の始点から第１の終点までの区間である。また、フィルタ後半回路１４ｂの処理範囲はフィルタ係数補正区間制御回路１３から出力される第１の終点からフィルタ処理区間制御回路１１から出力される第４の終点までの区間である。
【０１０２】
フィルタ前半回路１４ａはリファレンス信号前半バッファ５ａとフィルタ前半バッファ６ａを用いてフィルタ処理し、誤差計算回路１４ｃと加算回路１４ｄに出力する。誤差計算回路１４ｃは送話信号入力端子３を経由して入力される音響空間からの信号とフィルタ前半回路１４ａの出力の誤差を計算し、誤差をフィルタ係数補正回路９に出力する。以上のようにすることで、フィルタ係数の最初から第４の終点までのフィルタ係数の変動の大きい部分のみのフィルタ係数が更新される。
【０１０３】
フィルタ後半回路１４ｂはリファレンス信号後半バッファ５ｂと変動ていない音響空間での残響特性を持つフィルタ後半バッファ６ｂを用いてフィルタ処理を行う。
【０１０４】
変動している音響空間に対するエコーキャンセラ処理を行った区間分の出力であるフィルタ前半回路１４ａの出力と、変動していない音響空間でのフィルタ処理を行った区間分の出力であるフィルタ後半回路１４ｂの出力を、加算回路１４ｄで加算して全タップ長のフィルタ計算結果とし、引き算回路１４ｅで音響空間からの信号を入力したマイクからの信号を送話入力端子３からの信号から差し引き、音響エコーキャンセル結果とし、送話出力端子４から出力する。
【０１０５】
このフィルタ演算を、２つの区間別々に実施し、後で加算することで音響空間からの特性を模擬したものすることで、フィルタ処理に重複がなく計算量の削減が実現でき、安価な音響エコーキャンセラを提供できる。
【０１０６】
（実施例３）
実施例２のエコーキャンセル動作用のフィルタ処理と誤差計算処理方法の別の実施例をを図８を用いて詳細に説明する。図８はリファレンス信号バッファ５とフィルタ係数バッファ６とフィルタ誤差計算回路１４とその周辺のブロックとの入出力を記載したものである。
【０１０７】
リファレンス信号バッファ５が、リファレンス信号前半バッファ５ａとリファレンスバッファ５ｂで構成される。フィルタ係数バッファ６がフィルタ係数前半バッファ６ａとフィルタ係数後半バッファ６ｂで構成される。フィルタ誤差計算回路１４がフィルタ前半回路１４ａとフィルタ後半回路１４ｂと誤差計算回路１４ｃと引き算回路１４ｅから構成される。
【０１０８】
フィルタ前半回路１４ａの処理範囲はフィルタ係数補正区間制御回路１３から出力される第１の始点から第１の終点までの区間である。
【０１０９】
フィルタ処理区間制御回路１１とフィルタ係数補正区間制御回路１３からの制御信号でリファレンス信号バッファ５とフィルタ係数バッファ６には、フィルタ前半バッファ６ａに対し始点からフィルタ係数補正区間制御回路１３から出力される第４の終点までの区間のフィルタ係数と、リファレンス信号前半バッファ５ａに対し始点からフィルタ係数補正区間制御回路１３から出力される第４の終点までの区間のリファレンス信号が出力されるようにする。
【０１１０】
フィルタ前半回路１４ａはリファレンス信号前半バッファ５ａとフィルタ前半バッファ６ａを用いてフィルタ処理し、誤差計算回路１４ｃと加算回路１４ｄに出力する。誤差計算回路１４ｃは送話信号入力端子３を経由して入力される音響空間からの信号とフィルタ前半回路１４ａの出力の誤差を計算し、誤差をフィルタ係数補正回路９に出力する。以上のようにすることで、フィルタ係数の第１の始点から第１の終点までのフィルタ係数の変動の大きい部分のみのフィルタ係数が更新される。
【０１１１】
フィルタ回路１４ｆは、リファレンス信号前半バッファ５ａとリファレンス信号後半バッファ５ｂと変動しない音響空間での残響特性を持つフィルタ前半バッファ６ａとフィルタ後半バッファ６ｂを用いてフィルタ処理のみを行う。
【０１１２】
フィルタ回路１４ｆは、変動している音響空間に対する残響特性としてリファレンス信号前半バッファ５ａとフィルタ前半バッファ６ａと、変動していない音響空間に対する残響特性としてリファレンス信号バッファ５ｂとフィルタ後半バッファ６ｂとを用いて、フィルタの第４の始点から第４の終点までの変動する区間と変動しない区間をあわせたフィルタ処理の出力を行う。引き算回路１４ｅで、送話入力端子３から入力した音響空間からの信号から、変動する音響空間と変動しない音響空間との残響特性を合わせた伝達特性を模擬した結果を差し引き、音響エコーキャンセル出力とし、送話出力端子４から出力する。
【０１１３】
このように、フィルタ係数が変動する区間での音響エコーキャンセル処理のフィルタ演算及び係数更新処理と、残響時間に対応するフィルタ演算処理を別々に行うことにより、デジタルシグナルプロセッサ（ＤＳＰ）などで本発明を実現した場合にプログラムの自由度が増し、プログラム容量の減少や、早期のプログラム開発が実現できる。とくに、フィルタ処理と係数更新の部分は速い処理速度が必要なため、ＤＳＰを用いたアセンブラ言語で書かれることが多く、フィルタ処理と係数更新処理のプログラムが簡潔に作成できる。
【０１１４】
その結果として、処理量の少ないＤＳＰや汎用プロセッサを用いることができ、安価な音響エコーキャンセラを提供できる。
【０１１５】
なお、実施例２において、フィルタ係数の大きさを算出するために、フィルタ係数バッファの第２の始点から第２の終点までの区間長と第３の始点から第３の終点までの区間長をを同じ長さにすることにより、それぞれを区間長で正規化の演算をすることなく大きさを比較することができる。正規化の除算が不要になり処理量の削減が可能である。
【０１１６】
また、実施例２において、フィルタ係数の大きさを算出する方法として、フィルタ係数の区間正規化された累積自乗和を求めていたが、フィルタ係数の大きさとして区間で平均されたフィルタ係数の絶対値を用いても、同様の効果が得られる。絶対値を用いた場合、上記の構成において、積和演算命令を持たない汎用ＣＰＵでも処理することが可能である。
【０１１７】
また、実施例２において、フィルタ係数の大きさを算出する方法として、フィルタ係数の累積自乗和を求めていたが、フィルタ係数の大きさとして始点から終点までの区間のフィルタ係数の最大値を用いても、同様の効果が得られる。最大値を用いた場合、上記の構成において、積和演算命令を持たない汎用ＣＰＵでも処理することが可能であり、累積計算をする必要がないため、累積による演算の桁あふれをなくすことが可能である。
【０１１８】
また、実施例２において、フィルタ係数の大きさを算出する方法として、フィルタ係数の絶対値を求めていたが、フィルタ係数を自乗したものをフィルタ係数の大きさとして用いても、同様の効果が得られる。上記の構成において、積和演算命令を持つＤＳＰではプロセッサの持つ機能を活用し精度の高い処理をすることが可能である。
【０１１９】
なお、変動エコー検出回路とフィルタ係数補正回路の動作において、エコーキャンセラが設置される状態を予め決めておくことにより、音響エコーキャンセラから出力される信号を再生するスピーカと使用者と音響空間からの音を収音するマイクの間の距離を決定することにより、その距離とサンプリング周波数から変動する区間を予め決定しておくことができる。
【０１２０】
例えば、スピーカから出力された音波が使用者に反射してマイクに入力する距離として往復３．４ｍとすると音速が約３４０ｍであることから、スピーカから出力されマイクに入ってくるまでの時間は約１０ｍｓとなる。サンプリング周波数を８０００Ｈｚとすると１０ｍｓに対応するフィルタ係数補正の区間長は８０タップとなる。実環境では使用者から直接反射してくるだけではなく、複数の使用者を経由した反射した、あるいは机や机の上に置いてあるものを経由した反射をマイクで入力することになり、フィルタ係数が変動する区間として数倍のタップ長を固定値として予め決めておくことができる。
【０１２１】
この場合、ＤＳＰで実現した場合、プログラムを簡単にするために２５６タップや５１２タップなど２のべき乗のタップ数を設定しても良い。
【０１２２】
なお、フィルタ係数を補正する区間およびフィルタ係数の補正に関連するフィルタ処理をする区間を定期的に長くする制御をすることも可能である。これにより、使用者が増加する、あるいは、使用している部屋においてある物が増えるなどの音響空間の変化に対応できるようになる。
【０１２３】
また、フィルタ係数を補正する区間およびフィルタ係数の補正に関連するフィルタ処理をする区間を音響エコーキャンセラ初期動作時に全区間とする制御をすることも可能である。これにより、最初に全区間のフィルタ係数を準備しておくことで、フィルタ係数を補正する区間およびフィルタ係数の補正に関連するフィルタ処理をする区間が長くなった際に、予め準備しておいたフィルタ係数からフィルタ係数の補正を行うことにより収束時間の短縮化をはかることができる。
【０１２４】
（実施例４）
以下、本発明の実施例４におけるハンズフリー電話について図面を参照しながら説明する。
【０１２５】
図９において、回線入力端子２９が筐体２８の内部にある実施例２の音響エコーキャンセラ２７の受信信号入力端子１に電気的に接続されている。また、同様に音響エコーキャンセラ２７の送信信号出力端子４が回線信号出力端子３０に電気的に接続されている。
【０１２６】
筐体２８の内部にスピーカ２５とマイク２６が固定され、音響エコーキャンセラ２７の受話信号出力端子２にスピーカ２５が電気的に接続されている。また、音響エコーキャンセラ２７の送話信号入力端子３にマイク２６が電気的に接続されている。
【０１２７】
この実施例では、回線入力端子２９からの音声が再生できるよう筐体２７の上面に向けてスピーカ２５が設置されている。また、筐体２８の周囲全体の話者の音声を収音するために４個のマイク２６を水平方向の指向性となるように設置している。
【０１２８】
また、回線信号入力端子２９からの信号は、音響エコーキャンセラ２７の受信信号端子２１に接続され、スピーカ２５から音声が出力されることで、ハンズフリー電話周辺にいる人に回線からの音声を聞かせることができる。
【０１２９】
筐体２８内のスピーカ２５から出力された音声の音波は、設置してある部屋の残響が付加された音波となって、筐体２８周辺から発生する音波を合わせてマイク２５から収音され、音響エコーキャンセラ２７の送話信号入力端子３に入力される。
【０１３０】
音響エコーキャンセラ２７は、スピーカ２５から出力され、部屋の残響が付加された成分をマイク２６で収音した信号から除去する。そのため、筐体２８周辺から発生する音波のみを音響エコーキャンセラ２７の送信信号出力端子２に接続された回線信号出力端子３０へ出力する。これにより、筐体２８周辺の人の音声のみを回線信号出力端子３０へ出力することができ、ハンズフリー電話が実現できる。
【０１３１】
この実施例４の音響エコーキャンセラを用いた構成により、残響時間の長い部屋でも人の移動などによる部屋の環境の変化に追従する速度が速く安定した、かつ、エコー消去量が大きく会話のしやすいハンズフリー電話電話を提供することができる。
【産業上の利用可能性】
【０１３２】
本発明は、伝達関数の長さをインパルス応答の形から簡易な方法で推定することと、インパルス応答の変化からエコーキャンセラを動作させる区間を設定することにより、長い残響時間に対応でき、収束が早く、かつ、フィルタ処理と係数補正の区間が一致する適応フィルタ理論に合致した、精度の高いエコーキャンセラとハンズフリー電話を提供できるという効果を奏する。
【図面の簡単な説明】
【０１３３】
【図１】本発明の実施例１における音響エコーキャンセラのブロック図
【図２】本発明の実施例２における音響エコーキャンセラのブロック図
【図３】残響時間が短い部屋のインパルス応答の実例を示すグラフ
【図４】残響時間が長い部屋のインパルス応答の実例を示すグラフ
【図５】（ａ）は残響時間が短い部屋のインパルス応答の実例を示すグラフ、（ｂ）は実施例２のフィルタ係数の大きさを決定する区間を示す図
【図６】（ａ）は残響時間が長い部屋のインパルス応答の実例を示すグラフ、（ｂ）は実施例２のフィルタ係数の大きさを決定する区間を示す図
【図７】本発明の実施例２におけるフィルタ誤差計算回路内部のブロック図
【図８】本発明の実施例３におけるフィルタ誤差計算回路内部のブロック図
【図９】本発明の実施例４におけるハンズフリー電話の斜視図
【図１０】従来の音響エコーキャンセラの構成を示すブロック図
【図１１】従来の音響エコーキャンセラの構成を示すブロック図
【符号の説明】
【０１３４】
１    受話信号入力端子
２    受話信号出力端子
３    送話信号入力端子
４    送話信号出力端子
５    リファレンス信号バッファ
６    フィルタ係数バッファ
７    フィルタ回路
８    誤差計算回路
９    フィルタ係数補正回路
１０    残響時間検出回路
１０ａ    タップ始点終点演算回路
１０ｂ    大きさ演算回路
１１    フィルタ処理区間制御回路
１２    変動エコー検出回路
１３    フィルタ係数補正区間制御回路
１４    擬似エコー生成減算回路
２５    スピーカ
２６    マイク
２７    音響エコーキャンセラ
２８    筐体
２９    回線信号入力端子
３０    回線信号出力端子
【図１】
2006157498.tif 000008
【図２】
2006157498.tif 000009
【図３】
2006157498.tif 000010
【図４】
2006157498.tif 000011
【図５】
2006157498.tif 000012
【図６】
2006157498.tif 000013
【図７】
2006157498.tif 000014
【図８】
2006157498.tif 000015
【図９】
2006157498.tif 000016
【図１０】
2006157498.tif 000017
【図１１】
2006157498.tif 000018