(57)【要約】【課題】  エコーを速く除去できるエコーキャンセラを提供する。【解決手段】  本発明のエコーキャンセラは、通常の適応動作を行う第１の適応フィルタと、第１の適応フィルタが適応動作していない期間内で適応動作し、第１の適応フィルタが適応動作を再開するときのフィルタ係数を供給する第２の適応フィルタとを有する。第２の適応フィルタは、遠端話者信号からそれぞれ所定期間ずつ切り出した信号を同期合成した第１の合成信号と、近端話者信号からそれぞれ所定期間ずつ切り出した信号を同期合成した第２の合成信号とで適応動作する。音声信号の周期性のために合成によって、第１の合成信号に相殺部分があると、第１の合成信号の全体若しくは相殺部分と、対応する第２の合成信号の全体若しくは相殺部分とを、第２の適応フィルタの適応動作で利用させない。【選択図】      図１
2010088039.tif 000002
【特許請求の範囲】
【請求項１】
近端話者信号に回り込んだ遠端話者信号であるエコー信号を除去するエコーキャンセラにおいて、
遠端話者信号及び近端話者信号に基づいて通話状態を監視する通話状態監視手段と、
遠端話者信号だけが有音のシングルトーク状態で適応動作する第１の適応フィルタ手段と、
遠端話者信号が無音区間であることを少なくとも条件として適応動作する第２の適応フィルタ手段と、
遠端話者信号及び近端話者信号から同期して、遠端話者信号の有音期間を含む所定期間ずつを切り出して、複数の加工用信号を得る加工用信号選択手段と、
遠端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の遠端話者信号を得ると共に、近端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の近端話者信号を得る切り出し信号加工手段と、
上記第１及び第２の適応フィルタ手段の適応動作の停止、再開を制御するものであって、上記第１の適応フィルタ手段が適応動作を停止し、その停止期間内に、上記第２の適応フィルタ手段が適応動作を実行している期間があれば、上記第１の適応フィルタ手段の適応動作を再開させる際に、上記第２の適応フィルタ手段が適応動作で更新したフィルタ係数を適用して再開させる適応モード制御手段と、
上記信号加工手段が得た加工形成の遠端話者信号が、複数の加工用信号の合成による相殺が生じているか否かを判別し、相殺が生じている場合に、加工形成の遠端話者信号の全体、若しくは、相殺が生じている部分、並ぶに、それに対応する加工形成の近端話者信号の全体、若しくは、相殺が生じている部分を、上記第２の適応フィルタ手段の適応動作で利用することを禁止する相殺検出手段と
を有することを特徴とするエコーキャンセラ。
【請求項２】
上記相殺検出手段は、合成される前の遠端話者信号から切り出された複数の加工用信号のそれぞれの大きさと、合成後の加工形成の遠端話者信号の大きさとに基づいて、相殺を判定すると共に、相殺がないと判定された場合でも、今回の合成による加工形成の近端話者信号の大きさに対する加工形成の遠端話者信号の大きさの比が、前回の合成時の比より改善されていない場合には、上記第２の適応フィルタ手段の適応動作で、加工形成の遠端話者信号及び近端話者信号を利用させないことを特徴とする請求項１に記載のエコーキャンセラ。
【請求項３】
上記切り出し信号加工手段が、合成する加工用信号の数の上限が定まっており、上記切り出し信号加工手段は、上記加工用信号選択手段によって切り出された加工用信号の数が上限に達していない場合にも、切り出された加工用信号に対して合成処理を行うことを特徴とする請求項１又は２に記載のエコーキャンセラ。
【請求項４】
遠端話者信号から切り出された加工用信号とそれに同期して近端話者信号から切り出された加工用信号とがダブルトーク区間を含む場合には、その区間に対応する、加工形成の遠端話者信号及び加工形成の近端話者信号の区間を、上記第２の適応フィルタ手段の適応動作で利用することを禁止する更新停止指示手段をさらに有することを特徴とする請求項１〜３のいずれかに記載のエコーキャンセラ。
【請求項５】
上記相殺検出手段は、上記加工用信号選択手段が、遠端話者信号及び近端話者信号から加工用信号を切り出す所定期間よりも短い期間を単位として、相殺を判定し、相殺が生じている部分を、上記第２の適応フィルタ手段の適応動作で利用することを禁止することを特徴とする請求項１〜４のいずれかに記載のエコーキャンセラ。
【請求項６】
上記信号加工手段における加工方法が、同期加算又は同期加算平均であることを特徴とする請求項１〜５のいずれかに記載のエコーキャンセラ。
【請求項７】
近端話者信号に回り込んだ遠端話者信号であるエコー信号を除去するエコーキャンセル方法において、
通話状態監視手段が、遠端話者信号及び近端話者信号に基づいて通話状態を監視するステップと、
第１の適応フィルタ手段が、遠端話者信号だけが有音のシングルトーク状態で適応動作するステップと、
第２の適応フィルタ手段が、遠端話者信号が無音区間であることを少なくとも条件として適応動作するステップと、
加工用信号選択手段が、遠端話者信号及び近端話者信号から同期して、遠端話者信号の有音期間を含む所定期間ずつを切り出して、複数の加工用信号を得るステップと、
切り出し信号加工手段が、遠端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の遠端話者信号を得ると共に、近端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の近端話者信号を得るステップと、
適応モード制御手段が、上記第１及び第２の適応フィルタ手段の適応動作の停止、再開を制御するステップであって、上記第１の適応フィルタ手段が適応動作を停止し、その停止期間内に、上記第２の適応フィルタ手段が適応動作を実行している期間があれば、上記第１の適応フィルタ手段の適応動作を再開させる際に、上記第２の適応フィルタ手段が適応動作で更新したフィルタ係数を適用して再開させるステップと、
相殺検出手段が、上記信号加工手段が得た加工形成の遠端話者信号が、複数の加工用信号の合成による相殺が生じているか否かを判別し、相殺が生じている場合に、加工形成の遠端話者信号の全体、若しくは、相殺が生じている部分、並ぶに、それに対応する加工形成の近端話者信号の全体、若しくは、相殺が生じている部分を、上記第２の適応フィルタ手段の適応動作で利用することを禁止するステップと
を含むことを特徴とするエコーキャンセル方法。
【請求項８】
上記信号加工手段による加工方法が、同期加算又は同期加算平均であることを特徴とする請求項７に記載のエコーキャンセル方法。
【請求項９】
近端話者信号に回り込んだ遠端話者信号であるエコー信号を除去するエコーキャンセルプログラムであって、
コンピュータを、
遠端話者信号及び近端話者信号に基づいて通話状態を監視する通話状態監視手段と、
遠端話者信号だけが有音のシングルトーク状態で適応動作する第１の適応フィルタ手段と、
遠端話者信号が無音区間であることを少なくとも条件として適応動作する第２の適応フィルタ手段と、
遠端話者信号及び近端話者信号から同期して、遠端話者信号の有効期間を含む所定期間ずつを切り出して、複数の加工用信号を得る加工用信号選択手段と、
遠端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の遠端話者信号を得ると共に、近端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の近端話者信号を得る切り出し信号加工手段と、
上記第１及び第２の適応フィルタ手段の適応動作を停止、再開を制御するものであって、上記第１の適応フィルタ手段が適応動作を停止し、その停止期間内に、上記第２の適応フィルタ手段が適応動作を実行している期間があれば、上記第１の適応フィルタ手段の適応動作を再開させる際に、上記第２の適応フィルタ手段が適応動作で更新したフィルタ係数を適用して再開させる適応モード制御手段と、
上記信号加工手段が得た加工形成の遠端話者信号が、複数の加工用信号の合成による相殺が生じているか否かを判別し、相殺が生じている場合に、加工形成の遠端話者信号の全体、若しくは、相殺が生じている部分、並ぶに、それに対応する加工形成の近端話者信号の全体、若しくは、相殺が生じている部分を、上記第２の適応フィルタ手段の適応動作で利用することを禁止する相殺検出手段として機能させる
ことを特徴とするエコーキャンセルプログラム。
【請求項１０】
上記信号加工手段における加工方法が、同期加算又は同期加算平均であることを特徴とする請求項９に記載のエコーキャンセルプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はエコーキャンセラ、エコーキャンセル方法及びプログラムに関し、例えば、ハンズフリー電話装置における音響エコーの消去に適用し得るものである。
【背景技術】
【０００２】
近年、ＶｏＩＰの普及や携帯電話のサービス形態の多様化に伴い、各種電話の通信料金が安価になり、家庭やオフィスにおいては、以前よりも通話料を気にかけず、常時接続を含んだ長時間電話ができるようになってきた。このような利用環境の変化に伴い、電話機のハンドセットを長時間耳に押し当てておく苦痛を解消させるハンズフリー電話装置の普及の要求が急速に高まっている。ハンズフリー電話装置を実現する最も簡単な方法は、近年の携帯電話で見られるようなイヤホン（イヤホンマイク）やヘッドホンを装着したり、コールセンタなどでしばしば見られるヘッドセットを装着したりすることである。
【０００３】
しかし、携帯電話用イヤホンは、一時的な通話に向いており、長時間使うと、耳穴とイヤホンがこすれ、ただれを起こす結果になり苦痛を生じてしまう。一方、コールセンタなど一部の業務用に採用されているヘッドセットは、比較的長時間の利用でも顧客とのハンズフリー通話中にパソコン端末等を操作ができる利点があるもの、やはりヘッドセットの長時間の装着による違和感のために利用者が相当の疲労を起こしてしまう欠点があった。
【０００４】
加えて、上述のように、一般家庭においても長時間の通話が普通になってきた近年では、ハンズフリー電話装置に求められる機能には、「装着ストレスがなく長時間快適に電話ができること」が求められるようになっている。つまり、近年急速に普及してきた安価なＶｏＩＰを用いたハンズフリー通話では、話者の目的は携帯電話や業務用装置と異なり、「ストレスなく長時間快適に通話をすること」が主な目的であり、通話中に他の作業ができるように手を開けることではないのであり、このことに関しては、従来のイヤホンやヘッドセットを装着する方法の「ハンズフリー電話装置」では装着の違和感の解消がほとんど期待できない。このような近年の電話利用者の利用形態の変化を背景に、イヤホンやヘッドセットなどを装着しなくても快適にハンズフリー電話ができる実用的で安価な拡声電話機の普及が望まれているのである。このような拡声電話機（ハンズフリー電話装置）を実現するために、従来から「音響エコーキャンセラ」を用いることが知られており、実用に供されている。
【０００５】
従来、音響エコーキャンセラには、非特許文献１に開示されるような適応フィルタ技術を使うのが通例である。中でも、ＮＬＭＳアルゴリズムは、収束速度が遅く、特に音声信号のような「有色信号」で収束が劣化するという欠点と引き換えても、動作の安定性、ディジタル信号処理プロセッサにかける処理量の負担の小ささに優れて電話機に実装することができるため、広く音響エコーキャンセラに使われている。上記のように、今後一層の拡声通話の普及が予想される現状では、ごく一般的な家庭でも設置が可能な装置規模、価格が廉価で高性能の拡声電話機が望まれている。しかも、従来の電話音質を超える広帯域音声での通話が可能なＶｏＩＰ機器が既に普及し始めており、拡声電話機やそれに実装されるエコーキャンセラもこれらの音質で利用可能な技術の登場が待ち望まれている。
【特許文献１】特開平８−２３７１７４号公報
【非特許文献１】Ｓ．ヘイキン著、武部幹訳、「適応フィルタ入門」、現代工学社発行、ｐｐ．１４９〜１５８
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、従来の適応フィルタ更新アルゴリズムを広帯域向けの音響エコーキャンセラとしてそのまま流用しようとすると以下に述べるような問題があった。
【０００７】
電話機において広帯域音質を実現するためには、装置のサンプリング速度を上昇させる必要がある。例えば、従来の電話帯域である８ｋＨｚ帯域の音声を、広帯域である１６ｋＨｚ帯域の音声に帯域拡張すると、サンプリング周波数は２倍になる。
【０００８】
一方で、サンプリングされる側である音響エコー経路の応答長は変わらないので、適応フィルタのタップ数はサンプリング周波数の上昇に応じて大きくなってしまう。不都合なことにエコーキャンセラを実現する適応フィルタはタップ数が大きくなると、応じて収束が遅くなることが公知の事実として知られている。このような収束速度の低下を、高度な演算を用いて回避する公知の技術が、例えば、ＲＬＳ適応アルゴリズムとして、非特許文献１に述べられている。しかし、残念なことに、ＲＬＳのような高速収束アルゴリズムは動作の安定性に乏しいだけでなく、演算規模、メモリ容量規模も非常に大きくなる。すなわち、そもそもの通話音声品質が不安定になり、装置規模、ソフトウェア規模が大きくなり、その結果、一般の家庭向けに装置を普及させるには装置が大規模、高価になってしまうという課題があった。
【０００９】
このような課題に対し、特許文献１は、ＮＬＭＳ適応フィルタの係数更新速度を左右する定数であるステップゲインを、推定インパルス応答長と装置の動作開始からの経過時間をパラメータとして、徐々に減少させることにより、初期収束時の収束速度が大きく、定常時の推定精度が高い収束特性を実現する優れたエコーキャンセラが開示されている。
【００１０】
しかしながら、特許文献１の記載技術においても、やはりタイミング悪く有色性信号による適応フィルタの収束速度の劣化は避けることができず、例えば、一旦呼制御トーンなどの強度有色信号で収束してしまった後は、逆に、ステップゲインを小さくしてしまった分、係数更新の機会を有効に生かせず、音声帯域をカバーするための適応フィルタ再収束が阻害されてしまい、エコーがなかなか消えないという欠点があった。
【００１１】
これらに鑑み、本願発明者は、速やかにエコーキャンセラが収束し、動作が安定なＮＬＭＳアルゴリズムを利用できる発明を既に出願した（特願２００７−２８８４０４（先願１）、特願２００８−６３０８６（先願２））。
【００１２】
先願１では、予め遠端話者の音声入力ベクトルと、それに応じたエコー信号ベクトルをいくつか保持し、保持したデータベクトルの同期加算結果を適応フィルタの新たな入力として、遠端無音期間で適応フィルタを更新し、安定なＮＬＭＳアルゴリズムを採用しつつもエコーキャンセラを速く収束させる発明を提案した。また、先願２では、利用者が特段の複雑な設定をしなくても近端話者側の背景ノイズの状況に応じて、上記同期加算回数を自動的に最適に設定して最適な除去性能を発揮するエコーキャンセラの発明を提案した。
【００１３】
しかし、本願発明者は、実際の音声信号を同期加算して、上述した先願１又は先願２の発明を実現しようとしたとき、データ取得のタイミングや同期加算タイミングと、遠端音声データの周期的特性の兼ね合いのため、エコーキャンセラの性能が十分に発揮できない場合があることを見出した。
【００１４】
本発明は、以上の点に鑑みなされたものであり、データ取得のタイミングや同期合成タイミングによらず、エコーを速く除去することができるエコーキャンセラ、エコーキャンセル方法及びプログラムを提供しようとしたものである。
【課題を解決するための手段】
【００１５】
第１の本発明は、近端話者信号に回り込んだ遠端話者信号であるエコー信号を除去するエコーキャンセラにおいて、（１）遠端話者信号及び近端話者信号に基づいて通話状態を監視する通話状態監視手段と、（２）遠端話者信号だけが有音のシングルトーク状態で適応動作する第１の適応フィルタ手段と、（３）遠端話者信号が無音区間であることを少なくとも条件として適応動作する第２の適応フィルタ手段と、（４）遠端話者信号及び近端話者信号から同期して、遠端話者信号の有音期間を含む所定期間ずつを切り出して、複数の加工用信号を得る加工用信号選択手段と、（５）遠端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の遠端話者信号を得ると共に、近端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の近端話者信号を得る切り出し信号加工手段と、（６）上記第１及び第２の適応フィルタ手段の適応動作の停止、再開を制御するものであって、上記第１の適応フィルタ手段が適応動作を停止し、その停止期間内に、上記第２の適応フィルタ手段が適応動作を実行している期間があれば、上記第１の適応フィルタ手段の適応動作を再開させる際に、上記第２の適応フィルタ手段が適応動作で更新したフィルタ係数を適用して再開させる適応モード制御手段と、（７）上記信号加工手段が得た加工形成の遠端話者信号が、複数の加工用信号の合成による相殺が生じているか否かを判別し、相殺が生じている場合に、加工形成の遠端話者信号の全体、若しくは、相殺が生じている部分、並ぶに、それに対応する加工形成の近端話者信号の全体、若しくは、相殺が生じている部分を、上記第２の適応フィルタ手段の適応動作で利用することを禁止する相殺検出手段とを有することを特徴とする。
【００１６】
第２の本発明は、近端話者信号に回り込んだ遠端話者信号であるエコー信号を除去するエコーキャンセル方法において、（１）通話状態監視手段が、遠端話者信号及び近端話者信号に基づいて通話状態を監視するステップと、（２）第１の適応フィルタ手段が、遠端話者信号だけが有音のシングルトーク状態で適応動作するステップと、（３）第２の適応フィルタ手段が、遠端話者信号が無音区間であることを少なくとも条件として適応動作するステップと、（４）加工用信号選択手段が、遠端話者信号及び近端話者信号から同期して、遠端話者信号の有音期間を含む所定期間ずつを切り出して、複数の加工用信号を得るステップと、（５）切り出し信号加工手段が、遠端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の遠端話者信号を得ると共に、近端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の近端話者信号を得るステップと、（６）適応モード制御手段が、上記第１及び第２の適応フィルタ手段の適応動作の停止、再開を制御するステップであって、上記第１の適応フィルタ手段が適応動作を停止し、その停止期間内に、上記第２の適応フィルタ手段が適応動作を実行している期間があれば、上記第１の適応フィルタ手段の適応動作を再開させる際に、上記第２の適応フィルタ手段が適応動作で更新したフィルタ係数を適用して再開させるステップと、（７）相殺検出手段が、上記信号加工手段が得た加工形成の遠端話者信号が、複数の加工用信号の合成による相殺が生じているか否かを判別し、相殺が生じている場合に、加工形成の遠端話者信号の全体、若しくは、相殺が生じている部分、並ぶに、それに対応する加工形成の近端話者信号の全体、若しくは、相殺が生じている部分を、上記第２の適応フィルタ手段の適応動作で利用することを禁止するステップとを含むことを特徴とする。
【００１７】
第３の本発明は、近端話者信号に回り込んだ遠端話者信号であるエコー信号を除去するエコーキャンセルプログラムであって、コンピュータを、（１）遠端話者信号及び近端話者信号に基づいて通話状態を監視する通話状態監視手段と、（２）遠端話者信号だけが有音のシングルトーク状態で適応動作する第１の適応フィルタ手段と、（３）遠端話者信号が無音区間であることを少なくとも条件として適応動作する第２の適応フィルタ手段と、（４）遠端話者信号及び近端話者信号から同期して、遠端話者信号の有効期間を含む所定期間ずつを切り出して、複数の加工用信号を得る加工用信号選択手段と、（５）遠端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の遠端話者信号を得ると共に、近端話者信号から切り出された複数の加工用信号をその先頭を揃えて合成し、上記第２の適応フィルタ手段が適応動作で利用する加工形成の近端話者信号を得る切り出し信号加工手段と、（６）上記第１及び第２の適応フィルタ手段の適応動作を停止、再開を制御するものであって、上記第１の適応フィルタ手段が適応動作を停止し、その停止期間内に、上記第２の適応フィルタ手段が適応動作を実行している期間があれば、上記第１の適応フィルタ手段の適応動作を再開させる際に、上記第２の適応フィルタ手段が適応動作で更新したフィルタ係数を適用して再開させる適応モード制御手段と、（７）上記信号加工手段が得た加工形成の遠端話者信号が、複数の加工用信号の合成による相殺が生じているか否かを判別し、相殺が生じている場合に、加工形成の遠端話者信号の全体、若しくは、相殺が生じている部分、並ぶに、それに対応する加工形成の近端話者信号の全体、若しくは、相殺が生じている部分を、上記第２の適応フィルタ手段の適応動作で利用することを禁止する相殺検出手段として機能させることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、通常用の第１の適応フィルタが動作しないときに動作する第２の適応フィルタに対する入力する遠端話者信号及び近端話者信号を形成するものであっても、データ取得のタイミングや同期合成タイミングによらず、エコーを速く除去できるようになる。
【発明を実施するための最良の形態】
【００１９】
（Ａ）第１の実施形態
以下、本発明によるエコーキャンセラ、エコーキャンセル方法及びプログラムの第１の実施形態を、図面を参照しながら説明する。第１の実施形態は、例えば、ハンズフリー電話装置における音響エコーを除去しようとしたものである。
【００２０】
（Ａ−１）第１の実施形態の構成
図１は、第１の実施形態に係るエコーキャンセラ１００の機能的構成を示すブロック図である。第１の実施形態に係るエコーキャンセラ１００は、ＡＳＰなどを用いた専用チップ、専用回路として構築されたものであっても良く、ＤＳＰやＣＰＵなどによるソフトウェア（エコーキャンセルプログラム）処理を実行する構成として実現されたものであっても良いが、機能的には、図１に示す構成を有する。
【００２１】
図１において、エコーキャンセラ１００は、スピーカ３から発音出力され、マイクロホン４によって捕捉された音響エコーを除去するものである。エコーキャンセラ１００は、入出力端子として、遠端側からの音声信号（遠端話者信号）を内部に取り込む受信側入力端子（Ｒｉｎ）１と、遠端側からの音声信号をスピーカ３に出力する受信側出力端子（Ｒｏｕｔ）２と、マイクロホン４からの近端音声信号（近端話者信号）を内部に取り込む送信側入力端子（Ｓｉｎ）５と、エコー除去後の近端音声信号を遠端側に向けて出力する送信側出力端子（Ｓｏｕｔ）７とを有する。
【００２２】
エコーキャンセラ１００は、処理部として、通常適応フィルタ（ＡＤＦ＿Ｎ）６、音声検出部８、タイミング制御部９、適応モード制御部１０、潜行型適応フィルタ（ＡＤＦ＿Ｓ）１７及び加算器３０を有する。
【００２３】
ＡＤＦ＿Ｎ６は、通常擬似エコー作成部１４、通常適応フィルタ係数適応部（通常＿ＡＤＰ）１５及びスイッチ（ＳＷ１）３２を有し、通常擬似エコー作成部１４は、適応フィルタ係数部１４ａ、積和演算部１４ｂ及び保持レジスタ１４ｃからなっている。
【００２４】
ＡＤＦ＿Ｓ１７は、受信側加算データ選択部１１ｒ、送信側加算データ選択部１１ｓ、受信側加算データ加工部１２ｒ、送信側加算データ加工部１２ｓ、受信側加算データ保存部１３ｒ、送信側加算データ保存部１３ｓ、無音区間適応促進部（ＳＴＥＡＬＳ＿ＡＤＦ）１６、自己相殺検出部１８及び加算器３１を有する。
【００２５】
なお、受信側加算データ加工部１２ｒ及び送信側加算データ加工部１２ｓは、実際には、後述するように減算も行うが、簡単のため、減算は「負の加算」ととらえて便宜的に加算データ加工部と記述することにしている。
【００２６】
ＳＴＥＡＬＳ＿ＡＤＦ１６は、図２に示すように、適応フィルタ係数部１６ａ、積和演算部１６ｂ、保持レジスタ１６ｃ、ＡＤＦ＿Ｓ用適応フィルタ係数更新部（Ｓ＿ＡＤＰ）１６ｄ及び更新停止指示部１６ｅを有する。
【００２７】
自己相殺検出部１８は、図３に示すように、参照信号加算結果データパワー計算部１８＿１、参照信号減算結果データパワー計算部１８＿２、参照信号対エコー比計算部１８＿３、保存信号選択部１８＿５、エコー信号加算結果データパワー計算部１８＿６及びエコー信号減算結果データパワー計算部１８＿７を有する。
【００２８】
第１の実施形態のエコーキャンセラ１００における各処理部の機能については、後述する動作説明の項で明らかにする。
【００２９】
（Ａ−２）第１の実施形態の動作
次に、第１の実施形態に係るエコーキャンセラ１００の動作（エコーキャンセル方法）を、図１を参照しながら説明する。なお、初期状態においては、２入力１出力構成のスイッチ３２は入力端子ｂ側を選択している。
【００３０】
（Ａ−２−１）全体動作
遠端話者のディジタル化された音声信号ｘ（ｎ）が受信側入力端子１に入力される。ここで、遠端話者音声信号ｘ（ｎ）の小文字ｎは第ｎサンプルを表している。受信側入力端子１に入力された音声信号ｘ（ｎ）は、音声検出部８、ＡＤＦ＿Ｓ１７、ＡＤＦ＿Ｎ６及び受信側出力端子２に与えられ、受信側出力端子２から出力された音声信号ｘ（ｎ）は、図示しないディジタル／アナログ変換器でアナログ信号に変換され、スピーカ３から発音出力される。
【００３１】
スピーカ３から音波として放出された音声信号は、図示しない近端話者に供せられ、同時に、マイクロホン４にも漏れ込み、図示しないアナログ／ディジタル変換器でディジタル信号に変換され、送信側入力端子５を介して加算器３０に与えられる。加算器３０には、ＡＤＦ＿Ｎ６からの擬似エコーｙ’（ｎ）も入力されており、加算器３０は、ディジタル化されたマイクロホン４からの音声信号における音響エコー成分を、ＡＤＦ＿Ｎ６からの擬似エコー信号で加算相殺する。加算器３０から出力された音響エコー成分が除去された音声信号は、送信側出力端子７から遠端側に向けて出力されると共に、通常＿ＡＤＰ１５にも与えられる。
【００３２】
通常＿ＡＤＰ１５は、後述するようにして適応フィルタ（ＡＤＦ＿Ｎ６）の係数ベクトルを形成し、この係数ベクトルがスイッチ３２を経由して通常擬似エコー作成部１４の適応フィルタ係数部１４ａに入力されて擬似エコーｙ’（ｎ）を作成するフィルタの係数として用いられる。通常擬似エコー作成部１４において、積和演算部１４ｂは、保持レジスタ１４ｃの保持ベクトルと適応フィルタ係数部１４ａの係数ベクトルの要素を積和演算し、擬似エコーｙ’（ｎ）として加算器３０に出力する。
【００３３】
上述したように、受信側入力端子１から出力された遠端話者の音声信号ｘ（ｎ）は音声検出部８に与えられる。音声検出部８は、音声信号ｘ（ｎ）における音声の有無（有音／無音）を検出するものであり、その音声検出結果ｖ＿ｆｌｇは適応モード制御部１０及びタイミング制御部９に与えられる。後述する適応モード制御部１０のモード選択信号ｓｔｅａｌｓ＿ａｄｐ＿ｇｏは、ＡＤＦ＿Ｓ１７及びＡＤＦ＿Ｎ６内部のスイッチ３２に出力され、このとき、スイッチ３２は初期状態での端子ｂから端子ａに切り替わり、適応フィルタ係数部１４ａの係数ベクトルとして、通常＿ＡＤＰ１５が形成した係数ベクトルに代えて、ＡＤＦ＿Ｓ１７が形成した係数ベクトルが入力される状態になる。すなわち、遠端無音期間でも適応フィルタを更新し得るようにしている。
【００３４】
以下、ＡＤＦ＿Ｎ６の内部動作及びＡＤＦ＿Ｓ１７の内部動作を順に説明する。
【００３５】
（Ａ−２−２）ＡＤＦ＿Ｎ６の動作
音声検出部８は、受信側入力端子１から出力されたディジタル音声信号ｘ（ｎ）をもとにして、遠端話者音声の有無を検出する。音声の検出には公知の方法を用いれば良く、以下では、音声信号ｘ（ｎ）のパワー長期平均とパワー短期平均を計算し、両者の計算結果の乖離が大きいことで音声ありを検出する方法を適用したとして説明する。すなわち、パワー長期平均を５秒の平均値ＬＰＯ＿Ｌとし、パワー短期平均を３０ｍｓの平均値ＬＰＯ＿Ｓとし、検出マージンをＶＤ＿δ（例えば、６ｄＢ）とし、（１）式が成立するか否かで音声の有無を検出する。（１）式が成立したとき、「音声あり」として音声検出結果ｖ＿ｆｌｇ＝１を出力し、（１）式が成立しないとき、「音声なし」として音声検出結果ｖ＿ｆｌｇ＝０を出力する。なお、音声の検出方法がこの方法に限定されないことは勿論である。
【００３６】
ＬＰＯ＿Ｓ≧ＬＰＯ＿Ｌ＋ＶＤ＿δ                  …（１）
音声検出部８による音声検出結果ｖ＿ｆｌｇは適応モード制御部１０に与えられる。適応モード制御部１０は、音声検出結果ｖ＿ｆｌｇ＝１のときは、後述するＡＤＦ＿Ｓ１７のＳ＿ＡＤＰ１６ｄに動作を停止するための信号ｓｔｅａｌｓ＿ａｄｐ＿ｇｏ＝０を出力する。また、適応モード制御部１０は、音声検出結果ｖ＿ｆｌｇ＝１のときはスイッチ３２を端子ｂに接続させ、音声検出結果ｖ＿ｆｌｇ＝０のときはスイッチ３２を端子ａに接続させる。音声検出部８の音声検出結果ｖ＿ｆｌｇはタイミング制御部９にも出力され、タイミング制御部９は、後述するように２つの加算データ選択部１１ｒ及び１１ｓのデータ選択タイミング信号を出力する。ここで、音声検出結果ｖ＿ｆｌｇ＝１のときは、タイミング制御部９は、適応モード制御部１０には何も出力しないので、ＡＤＦ＿Ｎ６の動作系、すなわち、ＡＤＦ＿Ｎ６、音声検出部８、適応モード制御部１０、受信側入力端子１、受信側出力端子２、送信側入力端子５、送信側出力端子７、スピーカ３及びマイクロホン４からなる構成系にとってみれば、ＡＤＦ＿Ｓ１７はないも同じとなる。
【００３７】
引き続き、ＡＤＦ＿Ｎ６の動作を説明する。適応モード制御部１０からの信号に応じてスイッチ３２の端子が端子ｂに接続されると、ＡＤＦ＿Ｎ６は下記のように動作する。まず、受信側入力端子１から出力された受信信号ｘ（ｎ）は保持レジスタ１４ｃに格納され、（２）式に示すデータベクトルＸ（ｎ）として扱われる。（２）式において、ｎはサンプル順、Ｎは適応フィルタ（通常擬似エコー作成部１４）のタップ数（例えば、１０２４；この値に限定されるものではない）を表している。ｔはベクトル又は行列の転置を表している。すなわち、（２）式は現在の時刻ｎを開始時点とし、過去のＮサンプルまでを保持したデータの集まりが、データベクトルＸ（ｎ）を構成していることを表している。
【００３８】
Ｘ（ｎ）＝［ｘ（ｎ），ｘ（ｎ−１），…，ｘ（ｎ−Ｎ＋１）］ｔ        …（２）
一方、適応フィルタ係数部１４ａには、図示しないフィルタ係数（Ｎ個の係数値）が格納されている。係数値は、後述するように、通常＿ＡＤＰ１５で時々刻々と更新されるものである。以下では、適応フィルタ係数部１４ａのＮ個の係数も、（３）式に示すように１つの係数ベクトルＨ（ｎ）として扱う。
【００３９】
Ｈ（ｎ）＝［ｈ（ｎ），ｈ（ｎ−１），…，ｈ（ｎ−Ｎ＋１）］ｔ        …（３）
積和演算部１４ｂは、適応フィルタ係数部１４ａの係数ベクトルＨ（ｎ）と保持レジスタ１４ｃのデータベクトルＸ（ｎ）から、（４）式に示すようベクトルの積ｙ’（ｎ）を計算し、この計算値ｙ’（ｎ）が擬似エコー（のサンプルデータ）となる。擬似エコーｙ’（ｎ）は１つの値を持つスカラー量である。
【００４０】
ｙ’（ｎ）＝Ｈｔ（ｎ）Ｘ（ｎ）                  …（４）
以上のようにして作成された擬似エコーｙ’（ｎ）は加算器３０に出力される。加算器３０には、上述のようにスピーカ３からマイクロホン４に漏れこんだ打消し対象信号、すなわちエコー信号ｙ（ｎ）が入力されており、加算器３０は、（５）式に示すよう両信号を加算相殺し、得られた残差信号ｅ（ｎ）を送信出力端子７に出力する。最後に、送信出力端子７に出力された信号は、送信出力端子７から図示しない遠端への音声信号として送出される。
【００４１】
ｅ（ｎ）＝ｙ（ｎ）−ｙ’（ｎ）                  …（５）
一方、加算器３０の出力である残差信号ｅ（ｎ）は通常＿ＡＤＰ１５に出力される。通常＿ＡＤＰ１５は、残差信号ｅ（ｎ）と保持レジスタ１４ｂからの出力Ｘ（ｎ）とを用い、例えば、（６）式に示すような公知のＮＬＭＳアルゴリズムを適用して、適応フィルタのフィルタ係数Ｈ（ｎ）を更新する。
【数１】
2010088039.tif 000003
【００４２】
（６）式は、信号ｅ（ｎ）、Ｘ（ｎ）から、次回の擬似エコーの作成に用いるための適応フィルタ係数部１４ａの係数ベクトルが作成されることを示している。通常＿ＡＤＰ１５で作成された係数ベクトルはスイッチ３２を経由して適応フィルタ係数部１４ａに出力され、次回の擬似エコーの作成に備える。何度か（６）式の係数更新が進行すると、（５）式の残差信号ｅ（ｎ）は徐々に小さくなる。やがて十分に残差信号ｅ（ｎ）が小さくなると、（６）式の係数更新で係数の変化はほとんど起きなくなる。これが「適応フィルタが収束した」状態である。以上のように、音声検出部８の出力が音声ありのとき、エコーキャンセラ１００はＡＤＦ＿Ｎ６が主体となってエコーの同定と打消しを行う。
【００４３】
（Ａ−２−３）ＡＤＦ＿Ｓ１７の動作
続いて、ＡＤＦ＿Ｓ１７の動作を説明する。
【００４４】
ＡＤＦ＿Ｓ１７は、音声検出部８の検出結果が「音声あり」（音声検出結果ｖ＿ｆｌｇ＝１）のときに、音声データを収集、加工して無音期間における動作の準備だけを進め、音声検出部８の検出結果が「音声なし」（音声検出結果ｖ＿ｆｌｇ＝０）のときに、主体となって専らエコー経路の同定を行うものである。ＡＤＦ＿Ｓ１７は、見かけ上、音声がない期間にエコーキャンセラの係数更新を進行させる適応フィルタと言うことができる。実施形態の説明中では、便宜上、ＡＤＦ＿Ｓ１７を「潜行型適応フィルタＡＤＦ＿Ｓ１７（又は単にＡＤＦ＿Ｓ１７）」と呼ぶことにする。ＡＤＦ＿Ｓ１７は、音声検出部８の検出結果が音声ありのときには、ＡＤＦ＿Ｎ６に何らの信号も出力しないので、上述したＡＤＦ＿Ｎ６の動作には影響を与えない。
【００４５】
遠端からのディジタル音声信号ｘ（ｎ）について音声ありを示す信号ｖ＿ｆｌｇ＝１が音声検出部８からタイミング制御部９に入力されると、タイミング制御部９は、受信側加算データ選択部１１ｒ及び送信側加算データ選択部１１ｓに対して、音声データの取り込みを指示する信号ＫＥＥＰを出力する。各加算データ選択部１１ｒ、１１ｓは、信号ＫＥＥＰが出力される間だけデータを取り込みつつ一旦保存する。タイミング制御部９では、信号ｖ＿ｆｌｇ＝１が一旦入力されると、その時点からカウントして、予め定めたサンプル数ＬＥＮＧＴＨに達するまでは、以後の音声信号の有無に拘わらず、信号ＫＥＥＰを継続して出力する。すなわち、一旦、信号ｖ＿ｆｌｇ＝１が入力されれば、ＬＥＮＧＴＨ個のデータサンプル中には音声データサンプルと無音サンプルとが混じっていることになる。例えば、ＬＥＮＧＴＨとして３８４００を適用し得るが、これに限定されないことは勿論である。
【００４６】
図４は、加算データ選択部１１ｒ及び１１ｓの動作を説明するためのタイミングチャートである。
【００４７】
図４（Ａ）は、音声の有無の区間を模擬的に表したものであり、黒い部分が音声のある区間を示しており、音声検出部８がｖ＿ｆｌｇ＝１を出力する区間である。
【００４８】
図４（Ｂ）は、一旦、信号ｖ＿ｆｌｇ＝１を受けたタイミング制御部９がＬＥＮＧＴＨの期間だけ音声サンプルを切り出す時間切り出し窓の様子を表しており、一旦切り出しを開始すると、切り出し区間中の信号ｖ＿ｆｌｇの値には関係なく音声を切り出す様子を示している。この期間のサンプル番号を０からカウントすると、カウント値がＬＥＮＧＴＨ−１のときのサンプルが切り出しによる最終サンプルとなる。
【００４９】
図４（Ｃ）は、タイミング制御部９の制御によって、切り出された音声データｘ（ｎ）のベクトルの様子を示すものであり、図４（Ｃ）では、一例として、（７）式に示すような６個のベクトルＸ０〜Ｘ５が作成される様子が示している。
【数２】
2010088039.tif 000004
【００５０】
図４では、説明の簡単化のために、音声がある区間を黒い部分で、しかも、振幅が全て固定として描いている。切り出し窓を適用したベクトルの作成個数は、最大の場合でも６個としているが、ベクトルの最大作成個数は勿論これに限定されるものではない。また、後述するように、いつでも、最大数（ここでは６個）のベクトルの全部を使うわけではない。
【００５１】
一方、送信側加算データ選択部１１ｓでも、近端からのディジタル音声信号ｙ（ｎ）の切り出しを行う。送信側加算データ選択部１１ｓも、タイミング制御部９のデータ切り出し信号ＫＥＥＰがあるときだけ、端子５からのディジタル音声信号ｙ（ｎ）を切り出し、保存する。すなわち、音声データ切り出し開始のタイミングは、あくまでも受信側入力端子１側の音声検出部８の音声検出結果ｖ＿ｆｌｇによっている。近端からのディジタル音声信号ｙ（ｎ）は、近端話者が話していない、遠端からのディジタル音声信号ｘ（ｎ）だけが有音の場合には、エコー信号になっており、エコー経路を経た遅延ｄが時間遅れとして含まれている。
【００５２】
図４（Ｄ）は、このようなエコー信号ｙ（ｎ）を示しており、図４（Ａ）に示す信号ｘ（ｎ）がエコーとなって当該エコー信号ｙ（ｎ）となり、これにより、送信側の格納ベクトルＹ０〜Ｙ５が作成される。データの切り出しタイミングは、タイミング制御部９からの信号ＫＥＥＰによるので、図４（Ｂ）に示す受信側の切り出しタイミングと同一であり、図４（Ｂ）に示す受信側と同じタイミングの切り出し窓（図４（Ｅ）に再掲載している）を用いて、エコー経路を経由してマイクロホン４に集音された、図４（Ｄ）に示すエコー信号ｙ（ｎ）を切り出す。その結果として格納されたベクトルＹ０〜Ｙ５は、（８）式に示すようになる。
【数３】
2010088039.tif 000005
【００５３】
送信側及び受信側の加算データ選択部１１ｒ及び１１ｓは、上述のようなデータの選択と蓄積を継続する。そして、予め定められた最大本数のベクトルを蓄積すると、それ以降は、新たなベクトルを蓄積されている中の最古のベクトルを上書きしていく。例えば、予め定めた最大本数のベクトルを上述のように６本のベクトルとした場合、ベクトルＸ５、Ｙ５が蓄積し終わると、次のベクトルＸ６、Ｙ６を、最初のベクトルＸ０、Ｙ０（のデータ格納エリア）に上書きする。すなわち、（９）式に示すベクトルＸ０、Ｙ０の格納エリアに、（１０）式に示す次のベクトルＸ６、Ｙ６を上書きする。このような新しいベクトルを最古のベクトルに置き換えることを繰り返し実行し、最大本数のベクトルとして、常に最新側の該当本数のベクトルを蓄積しておく。
【数４】
2010088039.tif 000006
【００５４】
受信側加算データ選択部１１ｒによって作成された入力ベクトルは受信側加算データ加工部１２ｒに出力され、送信側加算データ選択部１１ｓによって作成された入力ベクトルは受信側加算データ加工部１２ｓに出力される。また、受信側加算データ選択部１１ｒは、１本のデータベクトルができ上がるたびに、加算タイミング信号ｋｅｅｐ＿ｆｌｕｇ＿ｏｎ＿ｔｏ＿ｏｆｆ＝１を受信側加算データ加工部１２ｒに出力し、それ以外のときは何も出力しない。同様に、送信側加算データ選択部１１ｓは、１本のデータベクトルができ上がるたびに、加算タイミング信号ｋｅｅｐ＿ｆｌｕｇ＿ｏｎ＿ｔｏ＿ｏｆｆ＝１を送信側加算データ加工部１２ｓに出力し、それ以外のときは何も出力しない。何も出力しない代わりに、１以外の値、例えば、ｋｅｅｐ＿ｆｌｕｇ＿ｏｎ＿ｔｏ＿ｏｆｆ＝０を出力するようにしても良い。ここで、受信側及び送信側の加算データ選択部１１ｒ及び１１ｓからの加算タイミング信号ｋｅｅｐ＿ｆｌｕｇ＿ｏｎ＿ｔｏ＿ｏｆｆは同じタイミングであるので、例えば、受信側加算データ選択部１１ｒからの加算タイミング信号ｋｅｅｐ＿ｆｌｕｇ＿ｏｎ＿ｔｏ＿ｏｆｆを受信側及び送信側の加算データ加工部１２ｒ及び１２ｓに出力するようにしても良い。
【００５５】
受信側及び送信側の加算データ加工部１２ｒ及び１２ｓはそれぞれ、予め設計者がハードウェアのメモリ資源の限界から定めた最大本数ＦＵＬＬ＿ＰＩＬＥ（予め定められたベクトルの最大作成本数；上記の例では６本）の限界内で１又は複数のベクトルを加工（加算や減算など）し、ＳＴＥＡＬＳ＿ＡＤＦ２２に対する２つの入力ベクトルを形成しようとしたものである。この加工は、各ベクトルについて、音声検出開始タイミングがデータの開始タイミングになっているので、音声検出開始タイミングをトリガとした同期した処理となっている。
【００５６】
しかしながら、各ベクトルを同期して加工（加算あるいは加算平均）することが好ましくない場合もあり、そのため、この第１の実施形態では、自己相殺検出部１８を設けている。
【００５７】
以下、受信側及び送信側の加算データ加工部１２ｒ及び１２ｓ、並びに、自己相殺検出部１８の動作を説明する。
【００５８】
ここで、受信側及び送信側の加算データ加工部１２ｒ及び１２ｓの動作は、入力されるデータが受信側のデータＸ０〜Ｘ５か送信側のデータＹ０〜Ｙ５かが異なるだけで、計算処理そのものは同様であるので、以下では、主に、受信側加算データ加工部１２ｒについて動作を説明する。計算手順そのものは送信側加算データ加工部１２ｓも同様である。
【００５９】
受信側加算データ加工部１２ｒにおいて、データベクトルは最初は何も蓄積されていない。予め定めた最大本数ＦＵＬＬ＿ＰＩＬＥが蓄積されるまでの途中経過の本数をｐｉｌｅ＿ｃｎｔとすると、データベクトルの取り得る本数ｐｉｌｅ＿ｃｎｔは、１≦ｐｉｌｅ＿ｃｎｔ≦ＦＵＬＬ＿ＰＩＬＥを満たす本数である。この本数ｐｉｌｅ＿ｃｎｔは後述する加算平均の除算に使われる定数である。
【００６０】
そして、装置が初期状態から動作し始め、加算平均に用いるベクトルの蓄積が予め定めた本数ＦＵＬＬ＿ＰＩＬＥに達していないときには、受信側加算データ加工部１２ｒは、その時点までに加算平均用として蓄積できている本数ｐｉｌｅ＿ｃｎｔで加算平均を計算する。この実施形態では、最大ベクトル本数ＦＵＬＬ＿ＰＩＬＥを６本に設定したので、ベクトルが最大６本たまった後は継続して最大６本の加算平均が可能であるが、装置の初期動作時などでは最大本数ではなく、後述するように蓄積済み本数分だけで加算平均を計算する。蓄積された途中経過の本数ｐｉｌｅ＿ｃｎｔの増加の様子に関しては後述する。
【００６１】
受信側加算データ加工部１２ｒは、最大６本のうちの１本又は複数本のデータの加工結果を自己相殺検出部１８に出力する。自己相殺検出部１８は、信号波形の同期加算が有効かどうかを後述の方法で判定するためのものである。
【００６２】
この第１の実施形態のエコーキャンセラ１００も、先願１のエコーキャンセラと同様に、参照信号（受信信号）及び送信信号をそれぞれ同期加算し、参照信号に対する送信信号側のノイズ比を同期加算によって低減して、潜行状態でもエコー除去性能を向上させるフィルタ係数を形成することを意図している。しかし、音声信号ベクトルを加算すると、しばしば音声の周期的性質によって、送信側のノイズ低減よりも激しく成分の低減を起こす場合がある。
【００６３】
図５は、２つの参照信号の同期加算で成分相殺が発生するであろう２つの参照用のベクトルＸ０、Ｘ１を同期させて示す信号波形図である。図５において、横軸はサンプル、縦軸は振幅である。図５の例では、第１０００サンプル〜第１３００サンプル付近のベクトルＸ０、Ｘ１の波形は、相対的に波形振幅が反転しており、このまま加算すると波形同士が相殺効果を生んでしまうのが分かる。この参照信号の相殺効果が、送信側のノイズ低減効果を上回るときには、エコーキャンセラ入力作成のための同期加算は効果がない。むしろ、場合によっては、擬似エコー作成のための参照信号成分の方を大きく低減させてしまうことになり、エコーキャンセラの性能を劣化させることになり兼ねない。
【００６４】
そこで、自己相殺検出部１８において、後述するようにして、参照信号同士の自滅的同期加算が発生しているか否かを検出し、検出結果に応じて、無音区間適応促進部（ＳＴＥＡＬＳ＿ＡＤＦ）１６の入力信号を変更させるようにする。
【００６５】
以下、説明の簡単化のために、受信側並びに送信側のそれぞれに、２本のベクトルＸ０及びＸ１、並びに、ベクトルＹ０及びＹ１があるときの自己相殺検出器１８の動作を説明する。受信側のベクトルＸ０及びＸ１は上述した（７）式で表されるものであり、送信側のベクトルＹ０及びＹ１は上述した（８）式で表されるものである。なお、上述した図３は、受信側及び送信側のそれぞれに、２本のデータがあるときの自己相殺検出器１８の機能を機能ブロック図として描いたものである。
【００６６】
受信側加算データ加工部１１ｒは、ベクトルＸ０及びＸ１から、ベクトルＸ０及びＸ１を加算した（１１）式に示す入力用加算参照ベクトルｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄと、ベクトルＸ０及びＸ１を減算した（１２）式に示す入力用減算参照ベクトルｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂとを作成する。また、送信側データ加工部１１ｓは、ベクトルＹ０及びＹ１から、ベクトルＹ０及びＹ１を加算した（１３）式に示す入力用加算エコーベクトルｓｔｅａｌｓ＿ｓｉｎ＿ａｄｄと、ベクトルＹ０及びＹ１を加算した（１４）式に示す入力用減算参照ベクトルｓｔｅａｌｓ＿ｓｉｎ＿ｓｕｂとを作成する。
【数５】
2010088039.tif 000007
【００６７】
受信側加算データ加工部１２ｒは、ベクトルＸ０、Ｘ１、ｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄ、ｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂを自己相殺検出部１８に与え、送信側加算データ加工部１２ｓは、ベクトルＹ０、Ｙ１、ｓｔｅａｌｓ＿ｓｉｎ＿ａｄｄ、ｓｔｅａｌｓ＿ｓｉｎ＿ｓｕｂを自己相殺検出部１８に与える。
【００６８】
自己相殺検出部１８の参照信号加算結果データパワー計算部１８＿１は、ベクトルＸ０及びＸ１から、（１５）式及び（１６）式に係る２種類のパワーａｂｓ＿ｒｉｎ＿ｐｌａｎｅ及びｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄを計算し、参照信号減算結果データパワー計算部１８＿２は、（１７）式に示すパワーｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂを計算する。計算された各パワーａｂｓ＿ｒｉｎ＿ｐｌａｎｅ、ｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄ、ｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂは、参照信号対エコー比計算部１８＿３及び保存信号選択部１８＿５に与えられる。（１５）式〜（１７）式における演算子｜Ａ｜はベクトルＡの大きさを表している（他の式でも同様である）。
【００６９】
ａｂｓ＿ｒｉｎ＿ｐｌａｎｅ＝｜Ｘ０｜＋｜Ｘ１｜              …（１５）
ｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄ＝｜Ｘ０＋Ｘ１｜            …（１６）
ｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂ＝｜Ｘ０−Ｘ１｜            …（１７）
一方、送信側加算データ加工部１２ｓからの入力ベクトルＹ０及びＹ１を用いて、エコー信号加算結果データパワー計算部１８＿６は、（１８）式に示すパワーｐ＿ｓｔｅａｌｓ＿ｓｉｎ＿ａｄｄを計算し、参照信号対エコー比計算部１８＿３及び保存信号選択部１８＿５に出力し、エコー信号減算結果データパワー計算部１８＿７は、（１９）式に示すパワーｐ＿ｓｔｅａｌｓ＿ｓｉｎ＿ｓｕｂを計算し、参照信号対エコー比計算部１８＿３及び保存信号選択部１８＿５に出力する。
【００７０】
ｐ＿ｓｔｅａｌｓ＿ｓｉｎ＿ａｄｄ＝｜Ｙ０＋Ｙ１｜            …（１８）
ｐ＿ｓｔｅａｌｓ＿ｓｉｎ＿ｓｕｂ＝｜Ｙ０−Ｙ１｜            …（１９）
保存信号選択部１８＿５は、以下の条件１及び条件２の成立、不成立と、参照信号対エコー比計算部１８＿３からの信号ｕｓｅ＿ｄａｔａとに基づいて、受信側加算データ保存部１３ｒ、送信側加算データ保存部１３ｓに保存させるデータベクトルｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎの内容を定める。
【００７１】
条件１は、式で記載すると、（２０）式で表されるものであり、ベクトルＸ０及びＸ１の同期加算を有効と仮判定するための条件である（本判定は、参照信号対エコー比計算部１８＿３によってなされる）。すなわち、ベクトルＸ０及びＸ１のそれぞれの大きさの和ａｂｓ＿ｒｉｎ＿ｐｌａｎｅが、ベクトルＸ０及びＸ１の和の大きさｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄ以下であれば、同期加算を有効と仮判定する条件である。
【００７２】
（条件１）
ａｂｓ＿ｒｉｎ＿ｐｌａｎｅ≦ｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄ    …（２０）
ａｂｓ＿ｒｉｎ＿ｐｌａｎｅ≦ｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄ＋γ
…（２０'）
この実施形態では（２０）式を適用するが、（２０'）式のように、マージン値γを適用しても構わない。例えば、マージン値γにγ＝０．００１ｘａｂｓ＿ｒｉｎ＿ｐｌａｎｅを適用するなど、設計者が適宜定めれば良い。
【００７３】
保存信号選択部１８＿５は、条件１が成立するときには、ベクトルＸ０及びＸ１の同期加算ベクトルｓｔｅａｌｓ＿ｒｉｎ＿ａｄｄを、受信側加算データ保存部１３ｒに保存させるデータベクトルｓｔｅａｌｓ＿ｒｉｎとして仮決定し、ベクトルＹ０及びＹ１の同期加算ベクトルｓｔｅａｌｓ＿ｓｉｎ＿ａｄｄを、送信側加算データ保存部１３ｓに保存させるデータベクトルｓｔｅａｌｓ＿ｓｉｎに仮決定する。仮決定されたデータベクトルｓｔｅａｌｓ＿ｒｉｎ及びｓｔｅａｌｓ＿ｓｉｎは参照信号対エコー比計算部１８＿３に与えられる。そして、本数のパラメータｐｉｌｅ＿ｃｎｔを１インクリメントする。
【００７４】
保存信号選択部１８＿５は、条件１が不成立のときに、言い換えると、同期加算が有効と仮決定できないときに、さらに、条件２が成立するかを判定する。
【００７５】
条件２は、式で記載すると、（２１）式で表されるものであり、ベクトルＸ０及びＸ１の同期減算が有効と仮判定するための条件である。すなわち、ベクトルＸ０及びＸ１のそれぞれの大きさの和ａｂｓ＿ｒｉｎ＿ｐｌａｎｅが、ベクトルＸ０及びＸ１の差の大きさｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂ以下であれば、同期減算が有効と仮判定する条件である。この第１の実施形態では、ベクトルＸ０、Ｘ１の波形が相対的に反転の関係にあっても同期減算によりノイズを抑えることができ、また、減算によって波形が際立つので、フィルタ係数の更新に利用させることとしており、条件２は、このための条件になっている。
【００７６】
（条件２）
ａｂｓ＿ｒｉｎ＿ｐｌａｎｅ≦ｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂ    …（２１）
ａｂｓ＿ｒｉｎ＿ｐｌａｎｅ≦ｐ＿ｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂ＋γ'
…（２１'）
この実施形態では（２１）式を適用するが、（２１'）式のように、マージン値γ'を適用しても構わない。例えば、マージン値γ'にγ'＝０．００１ｘａｂｓ＿ｒｉｎ＿ｐｌａｎｅを適用するなど、設計者が適宜定めれば良い。２種類のマージン値γ及びγ'に異なる値を設定しても良いことは勿論である。
【００７７】
保存信号選択部１８＿５は、条件２が成立するときには、ベクトルＸ０及びＸ１の同期減算ベクトルｓｔｅａｌｓ＿ｒｉｎ＿ｓｕｂを、受信側加算データ保存部１３ｒに保存させるデータベクトルｓｔｅａｌｓ＿ｒｉｎとして仮決定し、ベクトルＹ０及びＹ１の同期減算ベクトルｓｔｅａｌｓ＿ｓｉｎ＿ｓｕｂを、送信側加算データ保存部１３ｓに保存させるデータベクトルｓｔｅａｌｓ＿ｓｉｎに仮決定する。この場合も、仮決定されたデータベクトルｓｔｅａｌｓ＿ｒｉｎ及びｓｔｅａｌｓ＿ｓｉｎは参照信号対エコー比計算部１８＿３に与えられる。このときも、保存信号選択部１８＿５は本数のパラメータｐｉｌｅ＿ｃｎｔを１インクリメントする。
【００７８】
保存信号選択部１８＿５は、条件２が成立しないときには、受信側加算データ保存部１３ｒに保存されているデータベクトルｓｔｅａｌｓ＿ｒｉｎ、及び、送信側加算データ保存部１３ｓに保存されているデータベクトルｓｔｅａｌｓ＿ｓｉｎをそのまま維持させる。このときには、保存信号選択部１８＿５は本数のパラメータｐｉｌｅ＿ｃｎｔを増加させない。保存信号選択部１８＿５は、この場合にも、維持しているベクトルを、仮決定したデータベクトルｓｔｅａｌｓ＿ｒｉｎ及びｓｔｅａｌｓ＿ｓｉｎとして参照信号対エコー比計算部１８＿３に与える。ここで、初回判定のときは、データはベクトルＸ０、Ｙ０しかなく、保存されているデータベクトルｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎがそれぞれ、ベクトルＸ０、Ｙ０であるので、２入力Ｘ０及びＸ１、Ｙ０及びＹ１となっても、条件２が不成立の場合には、ベクトルＸ０、Ｙ０の保存状態を継続する。初回では、本数のパラメータｐｉｌｅ＿ｃｎｔは、初期値すなわち１である。
【００７９】
参照信号対エコー比計算部１８＿３は、保存信号選択部１８＿５から与えられた仮決定された保存用ベクトルｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎを用いて、（２２）式に従ってスカラ値である同期効果判定用評価値ｖｅｖｔｏｒ＿ｓｎを計算する。
【００８０】
ｖｅｖｔｏｒ＿ｓｎ
＝｜ｓｔｅａｌｓ＿ｒｉｎ｜／｜ｓｔｅａｌｓ＿ｓｉｎ｜        …（２２）
評価値ｖｅｖｔｏｒ＿ｓｎの初期値として０を適用できるが、これに限定されるものではない。参照信号対エコー比計算部１８＿３には、前回計算した評価値ｖｅｖｔｏｒ＿ｓｎが保持されており、前回計算した評価値ｖｅｖｔｏｒ＿ｓｎより今回計算した評価値ｖｅｖｔｏｒ＿ｓｎが大きいときには同期加算若しくは同期減算に効果があるとして、信号ｕｓｅ＿ｄａｔａ＝１を保存信号選択部１８＿５に出力する。これに対して、今回の評価値ｖｅｖｔｏｒ＿ｓｎが前回計算した評価値ｖｅｖｔｏｒ＿ｓｎ以下のときは、参照信号が相対的に低下していっているので、同期加算若しくは同期減算に効果がないとみなして、信号ｕｓｅ＿ｄａｔａ＝０を保存信号選択部１８＿５に出力する。
【００８１】
保存信号選択部１８＿５は、信号ｕｓｅ＿ｄａｔａ＝１のとき、今回新たに作成（仮決定）したデータベクトルｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎを各々本数パラメータｐｉｌｅ＿ｃｎｔで除算してから加算データ保存部１３ｒ、１３ｓに出力し、一方、信号ｕｓｅ＿ｄａｔａ＝０のとき、除算することなく、加算データ保存部１３ｒ、１３ｓに、それまでのデータベクトルｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎを維持させる。加算データ保存部１３ｒ、１３ｓに直前のものを維持させる方法としては、仮決定したときでも書き込みを実行しないようにしておく方法を適用しても良く、また、仮決定したときに書き込むと共にそれまでのデータを引き上げて退避させておき、仮決定したものが本決定されない場合に、退避させたデータを書き込む方法を適用するようにしても良い。前回が初回の場合は、元のデータベクトルはｓｔｅａｌｓ＿ｒｉｎ＝Ｘ０、ｓｔｅａｌｓ＿ｓｉｎ＝Ｙ０である。それ以前（装置動作開始時）は、ｓｔｅａｌｓ＿ｒｉｎ＝０、ｓｔｅａｌｓ＿ｓｉｎ＝０である。
【００８２】
保存信号選択部１８＿５が最終的に選択したデータベクトルが加算データ保存部１３ｒ、１３ｓに保存される。このようなデータベクトルは、要素を明示すると、（２３）式及び（２４）式で表される。
【数６】
2010088039.tif 000008
【００８３】
次に、加算データ保存部１３ｒ、１３ｓに保存するデータの候補として、加算データと同時に減算データを計算しておく意味について説明する。同期加算と同時に同期減算を実行するのは、受信側加算データ選択部１１ｒで選択した入力の音声波形が相対的に反転している場合、減算するこことで一方の波形を再反転させ、逆に、同期加算の効果を発揮させることができるからである。このときには、反転した波形のデータベクトルで同期加算の効果を利用するようにしている。
【００８４】
上記では、２本のベクトルＸ０及びＸ１、ベクトルＹ０及びＹ１が選択された場合における加算データ加工部１２ｒ、１２ｓ、自己相殺検出部１８の動作を説明した。３本目のベクトルＸ２、Ｙ２が選択された場合には、例えば、以下のようにする。２本のベクトルＸ０及びＸ１、ベクトルＹ０及びＹ１から計算して得られた値ｖｅｖｔｏｒ＿ｓｎ、ｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎを一旦保持し、３本目の音声データＸ３及びＹ３が選択された際には、保持しているｓｔｅａｌｓ＿ｒｉｎ及びｓｔｅａｌｓ＿ｓｉｎを、２本のベクトルでの計算時におけるベクトルＸ０、Ｙ０と同様に扱い、入力された３本目の音声データＸ３、Ｙ３を、２本のベクトルでの計算時におけるベクトルＸ１、Ｙ１と同様に扱い、上記と同様の計算を実行する。このような計算を最後の１本の音声データが選択されるまで繰り返し、最大本数になった以降も同様な計算方法を繰り返す。このときは、加算ベクトルの本数はいつでも最大２本であるので、本数パラメータｐｉｌｅ＿ｃｎｔの最大値は２である。
【００８５】
同期加算や同期減算の有効性を確認しつつ、保存データを決定していく方法は、上述した例に限定されるものではない。
【００８６】
例えば、一旦全部の本数の加減算の値を求めて複数の仮の保存データｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎを作成し、その結果を前回の評価値ｖｅｖｔｏｒ＿ｓｎと比較して、全データ本数分の同期加減算の採用可否を決めるようにし、保存データを本決定するようにしても良い。説明の簡単化のために、選択された受信側の全てのデータベクトルがＸ０〜Ｘ２であったとすると、求められる加減算の組み合わせはＸ１＋Ｘ２＋Ｘ３、−Ｘ１＋Ｘ２＋Ｘ３、Ｘ１−Ｘ２＋Ｘ３、Ｘ１＋Ｘ２−Ｘ３、−Ｘ１−Ｘ２＋Ｘ３、−Ｘ１＋Ｘ２−Ｘ３、Ｘ１−Ｘ２−Ｘ３、−Ｘ１−Ｘ２−Ｘ３となり、これらベクトルの中で大きさが最大値のものを仮決定し、前回の評価値ｖｅｖｔｏｒ＿ｓｎと比較し、前回の評価値ｖｅｖｔｏｒ＿ｓｎより大きいときに本決定し、その大きさに評価値ｖｅｖｔｏｒ＿ｓｎを更新するようにしても良い。このように、全データ本数分の同期加減算の採用可否を決めてから、保存データを本決定する場合は、本数パラメータｐｉｌｅ＿ｃｎｔは同期加減算の採用回数と一致し、上述の例であれば３本データでの同期加減算の採用がなされた場合には本数パラメータｐｉｌｅ＿ｃｎｔの最大値は３となる。つまり、本数パラメータｐｉｌｅ＿ｃｎｔは、同期加減算して採用したときの最大本数となるようにする。
【００８７】
また例えば、複数あるデータベクトルからの２本の組み合わせで同様の加減算をし、最も評価値ｖｅｖｔｏｒ＿ｓｎの向上があるものを選択するようにしても良く、加減算に供する本数も２本の組み合わせに限定されるものではない。
【００８８】
また、加減算回数（加減算本数）に関しても、上述したように、設計者が予め適当な回数を設定しても良いが、近端での背景ノイズ量に応じて自動的に回数を設定するようにしても良い。例えば、遠端からの音声信号及び近端からの音声信号が共に無音であることを検出したときに、近端からの音声信号に基づいて近端の背景ノイズのパワーを求めると共に、遠端からの音声信号だけが有音であることを検出したときに、近端からの音声信号に基づいてエコーパワーを求め、求められた近端の背景ノイズパワーの平均値と、求められたエコーパワーの平均値とに基づいて、加減算回数を決定する。予め、背景ノイズパワーの平均値が属する範囲と、エコーパワーの平均値が属する範囲との組み合わせと、加減算回数とを対応付けたテーブルを用意しておいて、加減算回数を決定する。
【００８９】
なお、ハードウェア的な演算量や、信号を表現するビット長に十分な余裕がある場合には、ｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎを加算データ保存部１３ｒ、１３ｓに出力する前に実行される保存信号選択部１８＿５における除算、すなわち、本数パラメータｐｉｌｅ＿ｃｎｔでの除算を行わず、直接、保存データｓｔｅａｌｓ＿ｒｉｎ、ｓｔｅａｌｓ＿ｓｉｎとして用いるようにしても良い。
【００９０】
送信側の保存データの決定も、受信側の保存データの決定方法に合わせた方法とすれば良い。
【００９１】
受信側加算データ保存部１３ｒは、新たなデータベクトルｓｔｅａｌｓ＿ｒｉｎが入力されると、適応モード制御部１０に対して、ＡＤＦ＿Ｓ１７の係数更新準備ができたことを知らせるフラグｓｔｅａｌｓ＿ａｄａｐｔ＿ｇｏ＝１を出力する。適応モード制御部１０は、このフラグｓｔｅａｌｓ＿ａｄａｐｔ＿ｇｏ＝１が入力される。適応モード制御部１０は、音声検出部８からの音声検出結果ｖ＿ｆｌｇと加算データ加工部１２ｓからのフラグｓｔｅａｌｓ＿ａｄａｐｔ＿ｇｏに応じて適応モードの制御を行う。
【００９２】
図６は、適応モード制御部１０による適応モードの制御方法の説明図である。
【００９３】
適応モード制御部１０は、図６に示すように、音声検出部８からの音声検出結果ｖ＿ｆｌｇと加算データ加工部１２ｓからのフラグｓｔｅａｌｓ＿ａｄａｐｔ＿ｇｏの組み合わせに応じて、ＡＤＦ＿Ｓ１７かＡＤＦ＿Ｎ６のどちらかの適応フィルタを適応動作させる。但し、ＡＤＦ＿Ｓ１７及びＡＤＦ＿Ｎ６が同時に適応動作することはなく、ＡＤＦ＿Ｓ１７及びＡＤＦ＿Ｎ６が共に適応動作しないことはある。
【００９４】
図６から分かるように、遠端からの音声信号に音声がある期間（有音期間）では、ＡＤＦ＿Ｎ６が適応動作し、ＡＤＦ＿Ｓ１７は適応動作しない。ＡＤＦ＿Ｓ１７が動作するのは、遠端からの音声信号に「音声がなく」（無音）、かつ、フラグｓｔｅａｌｓ＿ａｄａｐｔ＿ｇｏ＝１が受信側加算データ保存部１３ｒから適応モード制御部１０に入力されたときである。注意すべきは、フラグｓｔｅａｌｓ＿ａｄａｐｔ＿ｇｏ＝１であっても（新規の保存データが格納されても）、ｖ＿ｆｌｇ＝１のとき（有音時）には、ＡＤＦ＿Ｓ１７は適応動作しないことである。この動作は、ＡＤＦ＿Ｓ１７が選択的に受信入力信号の無音期間だけで動作することを意味している。
【００９５】
次に、ＡＤＦ＿Ｓ１７内部のＳＴＥＡＬＳ＿ＡＤＦ１６における係数更新動作を説明する。ＳＴＥＡＬＳ＿ＡＤＦ１６は、上述したように、図２に示す詳細構成を有する。
【００９６】
Ｓ＿ＡＤＰ１６ｄが、適応フィルタ係数部１６ａの図示しない係数を更新する。保持レジスタ１６ｃには、受信側加算データ保存部１３ｒからの入力ベクトルの要素データが１個ずつ入力されてくる。なお、保持レジスタ１６ｃの初期値は０である。この実施形態では、保持レジスタ１６ｃは、適応モード制御部１０からの信号ｓｔｅａｌｓ＿ａｄａｐｔ＿ｇｏが０から１に遷移するときに一度０にリセットされる。
【００９７】
ＡＤＦ＿Ｓ１７における適応フィルタ係数部１６ａの係数の個数は、ＡＤＦ＿Ｎ６の適応フィルタ係数部１４ａの係数の個数と同じである（上述したＮ個とする）。また、適応フィルタ係数部１６ａの係数ベクトルＷ（ｍ）を（２５）式で表すこととする（ｍはサンプル順）。係数ベクトルＷ（ｍ）は、装置の動作開始時に０にリセットされ、その後はリセットされずに係数の更新を重ねる。
【００９８】
Ｗ（ｍ）＝［Ｗ（０），Ｗ（１），…，Ｗ（Ｎ−１）］ｔ          …（２５）
受信側加算データ保存部１３ｒに保存されたデータベクトルｓｔｅａｌｓ＿ｒｉｎから、要素データｒｉｎ＿ｋｅｅｐ［ｍ］が１個ずつ保持レジスタ１６ｃに入力されて順番に格納され、別のベクトルになる。すなわち、１サンプルタイミングずつ要素データｒｉｎ＿ｋｅｅｐ［０］から順番に要素データｒｉｎ＿ｋｅｅｐ［ＬＥＮＧＴＨ−１］に向かって、保持レジスタ１６ｃに格納されて、Ｎ個でなる新たなべクトルになる。このベクトルＳｘ（ｍ）を（２６）式で表すこととする。例えば、ｍ＝０であれば、データベクトルｓｔｅａｌｓ＿ｒｉｎの最初の要素ｒｉｎ＿ｋｅｅｐ［０］だけが保持レジスタ１６ｃに入力されるから、（２７）式に示すようになる。
【００９９】
ＳＸ（ｍ）＝［Ｓｘ（ｍ），Ｓｘ（ｍ−１），…，Ｓｘ（ｍ−Ｎ＋１）］ｔ …（２６）
ＳＸ（０）＝［ｒｉｎ＿ｋｅｅｐ［０］，０，…，０］ｔ              …（２７）
積和演算部１６ｂは、（２５）式のベクトルＷ（ｍ）と（２６）式のベクトルＳＸ（ｍ）の積を計算して、ＡＤＦ＿Ｓ１７内部の（２８）式に示す擬似エコー信号Ｓｙ’（ｍ）を作成し、加算器３１に出力する。
【０１００】
Ｓｙ’（ｍ）＝Ｗｔ（ｍ）ＳＸ（ｍ）                  （２８）
加算器３１には、送信側加算データ保存部１３ｓから送信側ベクトルｓｔｅａｌｓ＿ｓｉｎの要素データｓｉｎ＿ｋｅｅｐ（ｍ）が受信側加算データ保存部１３ｒと同じタイミングのｍで１サンプルずつ入力され、擬似エコー信号Ｓｙ’（ｍ）と相殺されて、残差信号Ｓｅ（ｍ）を出力する。残差信号Ｓｅ（ｍ）はＳ＿ＡＤＰ１６ｄに出力される。Ｓ＿ＡＤＰ１６ｄは、（２９）式に従って、係数ベクトルＷ（ｍ）をＷ（ｍ＋１）に更新する。
【数７】
2010088039.tif 000009
【０１０１】
ここで、係数ベクトルの更新について補足する。この実施形態では、通常ＡＤＦ＿Ｎ６が駆動されているときでも、図示しないダブルトーク検出器の検出に基づき、送話信号及び受話信号の話者信号がかち合ったときや送話信号だけのときは、通常ＡＤＦ＿Ｎ６では係数更新を停止し、図示しないダブルトーク検出器が、送信側に話者音声があると判定したデータのサンプル順は、更新停止指示部１６ｅに記憶しておき、当該データが加減算データに重複しているタイミングに関しては更新停止指示部１６ｅがＳ＿ＡＤＰ１６ｄに更新停止信号ＳＴＰを出力し、Ｓ＿ＡＤＰ１６ｄは更新停止信号ＳＴＰが入力されたとき、更新を停止するようにした。これは、エコーキャンセラが、送話信号があるときに係数更新を停止させなければ性能が劣化することが公知であり、ＡＤＦ＿Ｓ１７は、加工して得た保存データｓｔｅａｌｓ＿ｓｉｎを利用するものではあるが、送話信号時に係数更新を実行しないという公知技術を尊重するためである。すなわち、通常ＡＤＦ＿Ｎ６が適応動作しないダブルトーク状態の受信音声信号及び送信音声信号から切り出された部分（サンプルが単位となっており、この単位の整数倍の期間となる）については、更新停止指示部１６ｅの制御下で、ＡＤＦ＿Ｓ１７も適応動作で利用しないこととした。これにより、ＡＤＦ＿Ｓ１７のフィルタ係数が擾乱をうけ、それが通常ＡＤＦ＿Ｎ６側に伝わることを防止するようにする。
【０１０２】
なお、ダブルトーク検出方法は公知の方法を用いれば良く、エコーと送話話者音声信号を区別して送受話の状態検出ができる方法であればどのような方法でも良い。
【０１０３】
Ｓ＿ＡＤＰ１６ｄによって更新された適応フィルタ係数部１６ａのフィルタ係数Ｗ（ｍ）は、図１のスイッチ３２に向かって出力される。ＡＤＦ＿Ｓ１７が動作するとき、スイッチ３２は、音声検出結果を受けた適応モード制御部１０からの出力に応じて端子ａに切り替えられている。フィルタ係数Ｗ（ｍ）は、スイッチ３２を経由して、（３０）式のように、ＡＤＦ＿Ｎ６の係数Ｈ（ｍ）として、適応フィルタ係数部１４ａに上書き若しくはコピーされる。
【０１０４】
Ｈ（ｍ）＝Ｗ（ｍ）                  …（３０）
その後、遠端からの音声信号ｘ（ｎ）について音声が検出され、ＡＤＦ＿Ｎ６が再び駆動され始めるときの係数の係数初期値として使われる。
【０１０５】
すなわち、この実施形態のエコーキャンセラ１００では、図示しない遠端からの受信入力信号ｘ（ｎ）があるときは（有音時は）、通常の適応フィルタＡＤＦ＿Ｎ６を駆動してエコーキャンセラの収束を進めてエコーを減少させ、その際、受信中の入力を、一定サンプル数だけタイミングをそろえて保存しておいて、音声がないときでもエコーキャンセラの収束を進めるための準備をする。そして、音声が検出できないときには、上述のように予め蓄えた受信参照入力信号が自滅的に相殺しないことを確認した上で、受信参照入力音声信号とエコー信号を各々同期加減算し、本来の入力データとは別のエコーキャンセラ収束用入力データを作成して、見かけ上音声がない区間でも、ＡＤＦ＿Ｓ１７を用いてエコーキャンセラの収束を進行させる。上述のように、同期加減算にあたっては、音声信号独特の周期特性のために、参照信号自体が自滅的に相殺していないか否かを検出し、相殺が発生しているときは、同期加算データを使わないか、若しくは、信号を符号反転させることによって同期加算効果を発揮させるようにしたので、音声データの選択タイミングに関わりなく、収束までの時間を短くして、素早くエコーのない通話を実現するエコーキャンセラを提供できるようにした。
【０１０６】
（Ａ−３）第１の実施形態の効果
以上説明したように、第１の実施形態によれば、参照信号の選択タイミングと信号の周期性に関わりなく、従来、係数更新が不可能であった無音区間を利用してエコーキャンセラのフィルタ係数を収束させるようにしたので、仮に高速アルゴリズムを用いなくても、収束を速くでき、エコーを早期に除去できる。また、無音区間の収束に利用するデータの作成では、信号の周期性を考慮したので動作が安定している。また、無音区間の収束に利用するデータを作成する同期加減算を評価する演算式も、簡単な演算を適用しており、演算処理量をほとんど増加させることがない。さらに、上述した効果を得るために、利用者が設定すべき事項はなく、使い勝手を損なうことがない。
【０１０７】
（Ａ−４）第１の実施形態の変形実施形態
上記では、評価値ｖｅｖｔｏｒ＿ｓｎとして、（２２）式に示すようなベクトルｓｔｅａｌｓ＿ｒｉｎ及びｓｔｅａｌｓ＿ｓｉｎの大きさの比を適用したものを示したが、これらベクトルｓｔｅａｌｓ＿ｒｉｎ及びｓｔｅａｌｓ＿ｓｉｎの大きさの差を適用するようにしても良い。
【０１０８】
また、上記では、同期加算と同期減算を並行して計算する場合を示したが、これらを順次計算するようにしても良い。例えば、はじめに同期加算を計算してパワーの変化を検出し、同期加算で参照信号の自己相殺が発生しているときにだけ、同期減算を計算するようにしても良い。
【０１０９】
（Ｂ）第２の実施形態
次に、本発明によるエコーキャンセラ、エコーキャンセル方法及びプログラムの第１の実施形態を、図面を参照しながら説明する。
【０１１０】
（Ｂ−１）第２の実施形態の構成
図７は、第２の実施形態に係るエコーキャンセラの機能的構成を示すブロック図であり、第１の実施形態に係る図１との同一、対応部分には同一符号を付して示している。
【０１１１】
第２の実施形態に係るエコーキャンセラ１００Ａは、第１の構成に加えて、ＡＤＦ＿Ｓ１７内に無処理フレーム指定部２０が設けられており、また、受信側加算データ加工部１２ｒ、送信側加算データ加工部１２ｓ、受信側加算データ保存部１３ｒ、送信側加算データ保存部１３ｓ、無音区間適応促進部（ＳＴＥＡＬＳ＿ＡＤＦ）１６及び自己相殺検出部１８の機能も、第１の実施形態のものから多少異なっている。
【０１１２】
（Ｂ−２）第２の実施形態の動作
以下、第２の実施形態に係るエコーキャンセラ１００Ａの動作を、図７を参照しながら、第１の実施形態と異なる点を中心に説明する。
【０１１３】
この第２の実施形態における受信側加算データ加工部１２ｒ及び送信側加算データ加工部１２ｓはそれぞれ、対応する受信側加算データ選択部１１ｒ、送信側加算データ選択部１１ｓが切り出した複数のベクトルを、同期加算、若しくは、同期加算平均して、加算データ保存部１３ｒ、１３ｓに保存するデータベクトルを作成するものである。すなわち、上述した先願１と同様な方法でデータベクトルを得るものである。受信側加算データ加工部１２ｒ及び送信側加算データ加工部１２ｓはそれぞれ、作成したデータベクトルを、加算データ保存部１３ｒ、１３ｓに保存させる。受信側加算データ加工部１２ｒは、対応する受信側加算データ選択部１１ｒが切り出した複数のベクトルや、同期加算、若しくは、同期加算平均して得たデータベクトルを自己相殺検出部１８に与える。また、受信側加算データ加工部１２ｒは、作成したデータベクトルを加算データ保存部１３ｒに保存させたときには、適応モード制御部１０に対して、ＡＤＦ＿Ｓ１７の係数更新準備ができたことを知らせるフラグｓｔｅａｌｓ＿ａｄａｐｔ＿ｇｏ＝１を出力する。
【０１１４】
第２の実施形態の自己相殺検出部１８は、第１の実施形態と異なり、音声信号の周期性のために生じることがある、同期加算、若しくは、同期加算平均による信号相殺を、フレーム単位毎に検出する。例えば、加算データ選択部１１ｒ、１１ｓが切り出すデータベクトル長の整数分の１（例えば、２０分の１）をフレーム長とする。自己相殺検出部１８が判断するフレームは、重なりがないように切り分けたものであっても良く、例えば、１／２フレーム長ずつずらせた位置のフレームに対して判断するようにしても良い。信号相殺が存在するか否かの判断方法は、第１の実施形態で説明した条件１（（２０）式参照）を適用できる。すなわち、判断に供するサンプル数は異なるが、複数のデータベクトルの該当するフレーム部分の個別の大きさの和が、受信側加算データ加工部１２ｒから与えられた加工後（同期加算後）のデータベクトルの該当するフレーム部分の大きさ以下である条件が成立するか否かで判断する。なお、受信側加算データ加工部１２ｒによる加工が同期加算平均の場合であれば、複数のデータベクトルの該当するフレーム部分の個別の大きさの和をデータベクトル数で除算した値が、受信側加算データ加工部１２ｒから与えられた加工後（同期加算平均後）のデータベクトルの該当するフレーム部分の大きさ以下である条件が成立するか否かで判断する。
【０１１５】
受信入力音声信号の相殺は、音声検出部８の「音声あり」検出タイミングからの、各入力ベクトルにおける音声信号の微小な周期ずれが原因で発生する。従って、一定サンプル長のデータベクトルの中でも、相殺が発生する部分と発生しない部分があるのが通常である。そこで、第２の実施形態では、条件１の判定をフレーム単位で行うこととした。
【０１１６】
自己相殺検出部１８は、各フレームでの検出結果を無処理フレーム指定部２０に出力する。無処理フレーム指定部２０は、フレーム順と相殺検出結果を一旦保持し、ＳＴＥＡＬＳ＿ＡＤＦ１６の係数更新動作に同期させて、ＳＴＥＡＬＳ＿ＡＤＦ１６内部の更新停止指示部１６ｅ（図２参照）に出力する。
【０１１７】
更新停止指示部１６ｅは、信号相殺が発生しているフレームを処理するときには、Ｓ＿ＡＤＰ１６ｄに係数更新停止信号ＳＴＰを出力する。Ｓ＿ＡＤＰ１６ｄは、更新停止指示部１６ｅから係数更新停止信号ＳＴＰが入力されたときには、第１の実施形態と同様に、適応フィルタの係数更新を停止する。
【０１１８】
第２の実施形態に係るエコーキャンセラ１００Ａにおけるその他の動作は、第１の実施形態のエコーキャンセラ１００での動作と同様であるので、その説明は省略する。
【０１１９】
（Ｂ−３）第２の実施形態の効果
第２の実施形態によれば、第１の実施形態とほぼ同様な効果を奏することができる。但し、第２の実施形態によれば、第１の実施形態よりも、ＳＴＥＡＬＳ＿ＡＤＦ１６の係数更新に使えるデータを細かに取捨選択でき、係数収束の機会を多くできる。その結果、第１の実施形態よりも、収束の速いエコーキャンセラを実現できる。
【０１２０】
（Ｂ−４）第２の実施形態の変形実施形態
上記説明では、フレームを単位に参照入力信号の自己相殺を検出するようにしたが、さらに細かく、サンプル単位で参照入力信号の自己相殺を検出するようにしても良いことは勿論である。
【０１２１】
（Ｃ）他の実施形態
上記各実施形態の説明においても、種々変形実施形態に言及したが、さらに、以下に例示するような変形実施形態をあげることができる。
【０１２２】
第２の実施形態のようなフレーム単位（又はサンプル単位）での自己相殺の判定を利用する方法と、第１の実施形態のような加工データとして同期減算データを用意するという方法とを併用するようにしても良い。同期加算データ又は同期加算平均データに自己相殺が生じていた場合には、同期減算データが参照信号として使えるか否かをもフレーム単位で確認し、使える場合には、同期加算データ又は同期加算平均データに代えて適用することとし、同期減算データも適用できないと判定したときに、無処理フレーム指定部２０に無処理の旨を書き込むようにしても良い。
【０１２３】
本発明のエコーキャンセラは、ハンズフリー電話装置を考慮してなされたものであるが、他の音響エコーが問題となる電話装置に対しても適用することができ、また、回線エコーが問題となる電話装置に対しても適用することができる。ここでの電話装置には、会議電話装置やソフトフォンなども含まれていることは勿論である。
【図面の簡単な説明】
【０１２４】
【図１】第１の実施形態に係るエコーキャンセラの機能的構成を示すブロック図である。
【図２】第１の実施形態における無音区間適応促進部（ＳＴＥＡＬＳ＿ＡＤＦ）の内部構成を示すブロック図である。
【図３】第１の実施形態における自己相殺検出部の内部構成を示すブロック図である。
【図４】第１の実施形態における受信側及び送信側の加算データ選択部の動作を説明するためのタイミングチャートである。
【図５】第１の実施形態における受信側又は送信側加算データ選択部で選択した２つの信号の同期加算で成分相殺が発生するであろう２つの信号を示す信号波形図である。
【図６】第１の実施形態における適応モード制御部による適応モードの制御方法の説明図である。
【図７】第２の実施形態に係るエコーキャンセラの機能的構成を示すブロック図である。
【符号の説明】
【０１２５】
６…通常適応フィルタ（ＡＤＦ＿Ｎ）、８…音声検出部、９…タイミング制御部、１０…適応モード制御部、１１ｒ…受信側加算データ選択部、１１ｓ…送信側加算データ選択部、１２ｒ…受信側加算データ加工部、１２ｓ…送信側加算データ加工部、１３ｒ…受信側加算データ保存部、１３ｓ…送信側加算データ保存部、１４…通常擬似エコー作成部、１４ａ…適応フィルタ係数部、１４ｂ…積和演算部、１４ｃ…保持レジスタ、１５…通常適応フィルタ係数適応部（通常＿ＡＤＰ）、１６…無音区間適応促進部（ＳＴＥＡＬＳ＿ＡＤＦ）、１６ａ…適応フィルタ係数部、１６ｂ…積和演算部、１６ｃ…保持レジスタ、１６ｄ…ＡＤＦ＿Ｓ用適応フィルタ係数更新部（Ｓ＿ＡＤＰ）、１６ｅ…更新停止指示部、１７…潜行型適応フィルタ（ＡＤＦ＿Ｓ）、１８…自己相殺検出部、１８＿１…参照信号加算結果データパワー計算部、１８＿２…参照信号減算結果データパワー計算部、１８＿３…参照信号対エコー比計算部、１８＿５…保存信号選択部、１８＿６…エコー信号加算結果データパワー計算部、１８＿７…エコー信号減算結果データパワー計算部、２０…無処理フレーム指定部、３０…加算器、３１…加算器、３２…スイッチ（ＳＷ１）、１００、１００Ａ…エコーキャンセラ。
【図１】
2010088039.tif 000010
【図２】
2010088039.tif 000011
【図３】
2010088039.tif 000012
【図４】
2010088039.tif 000013
【図５】
2010088039.tif 000014
【図６】
2010088039.tif 000015
【図７】
2010088039.tif 000016