(57)【要約】【課題】実際のエコー除去に有効に作用しているタップ係数部分を計算し、その部分だけを選択的に適応フィルタとして機能させエコー消去の性能劣化なくタップ数を少なくする。【解決手段】本発明のエコーキャンセラは、エコー成分除去手段が適応フィルタからの擬似エコー信号を用いてエコー信号を除去するエコーキャンセラにおいて、エコー成分除去手段の入力信号と出力信号とに基づき、所定期間に亘るエコー消去量の平均値を求め、適応フィルタの収束状態を検出し、適応フィルタの収束状態時に、適応フィルタが保持する全タップ係数のパワー総和と、適応フィルタのタップ係数のうちタップの割り当てを外そうとするタップ係数の部分パワー和とのパワー比を求め、収束時エコー消去量とパワー比とに基づいて、エコー成分除去に実効的な有効タップ数を決定し、適応フィルタが、係数選択手段が決定した有効タップ数のみを更新することを特徴とする。【選択図】      図１
2011061449.tif 000002
【特許請求の範囲】
【請求項１】
遠端入力信号を利用して擬似エコー信号を形成する適応フィルタと、上記擬似エコー信号を用いて近端入力信号に含まれるエコー信号を除去するエコー成分除去手段とを備えるエコーキャンセラにおいて、
上記エコー成分除去手段に入力する上記近端入力信号と、上記エコー成分除去手段から出力する出力信号とに基づき、所定期間に亘るエコー消去量の平均値を求め、上記エコー消去量の平均値を逐次更新していき、上記適応フィルタの収束状態を検出し、上記適応フィルタの収束状態での収束時エコー消去量を求めるエコー消去量計算手段と、
上記エコー消去量計算手段から上記適応フィルタの収束状態の検出信号を受けると、上記適応フィルタが保持する全タップ係数のパワー総和と、上記適応フィルタのタップ係数のうちタップの割り当てを外そうとするタップ係数の部分パワー和とのパワー比を求め、上記収束時エコー消去量と上記パワー比とに基づいて、エコー成分除去に実効的な有効タップ数を決定する係数選択手段と
を備え、
上記適応フィルタが、上記係数選択手段が決定した上記有効タップ数のみを更新することを特徴とするエコーキャンセラ。
【請求項２】
上記係数選択手段が求める上記部分パワー和は、上記適応フィルタのタップ係数のうち、上記有効タップ数から時間的に後方部分のタップ係数の和であることを特徴とする請求項１に記載のエコーキャンセラ。
【請求項３】
上記係数選択手段は、上記収束時エコー消去量と上記パワー比とに基づいて、以下の演算式により上記有効タップ数を求めることを特徴とする請求項１又は２に記載のエコーキャンセラ。
【数６】
2011061449.tif 000008
ここで、Ｎは上記適応フィルタの全タップ数、ｍは第ｍ番目のタップ位置、
ＰＯＷ＿ＬＯＧ（ｍ）はタップ数ｍとしたときの上記パワー比、
ｈは適応フィルタのタップ係数、δａｃａｎｃはマージン閾値、
Ｍは  ０≦Ｍ≦Ｎ−１  の整数であり、  上記条件式の成立点を求めるために、ｍ＝Ｍとして順次代入される整数である。
ＡＣＡＮＣは上記エコー消去量を示す。
【請求項４】
上記係数選択手段が、予め定めた方法によるタップ開始点と、上記演算式により求めたタップ数ｍを上記適応フィルタのタップ終了点とを上記適応フィルタに与えることで、上記有効タップ数を決定することを特徴とする請求項３に記載のエコーキャンセラ。
【請求項５】
受信経路上に音声信号が入力したか否かを検出する音声検出手段を備え、
上記エコー消去量計測手段は、上記音声検出手段が音声検出した場合のみ、上記エコー消去量の平均値を求めることを特徴とする請求項１〜４のいずれかに記載のエコーキャンセラ。
【請求項６】
上記エコー消去量計算手段が、上記係数選択手段により有効タップ数が決定された後も、上記エコー消去量の平均値の更新継続を行い、上記エコー消去量の劣化を検出すると、上記係数選択手段に対してエコー消去性能劣化信号を与え、
上記係数選択手段が、上記エコー消去性能劣化信号を受けると、上記適応フィルタを初期状態に戻す
ことを特徴とする請求項１〜５のいずれかに記載のエコーキャンセラ。
【請求項７】
上記エコー消去量計算手段が、上記エコー消去量の平均最大値を一定量リークした値と、エコー消去量の平均最大値を保持した値との大小関係により、上記エコー消去量の劣化を検出することを特徴とする請求項６に記載のエコーキャンセラ。
【請求項８】
上記エコー消去量計算手段は、上記エコー消去量の短期間最大値が、上記エコー消去量の長期間最大値から所定値を差し引いた値よりも降下した場合、上記エコー消去量の劣化を検出することを特徴とする請求項７に記載のエコーキャンセラ。
【請求項９】
係数選択手段が、上記適応フィルタに対して、タップ開始点を０、タップ終了点を上記適応フィルタの全タップ数を出力することを特徴とする請求項６に記載のエコーキャンセラ。
【請求項１０】
上記遠端入力信号及び上記近端入力信号に基づいて、エコー経路の初期遅延を推定する初期遅延推定手段を更に備えることを特徴とする請求項１〜９のいずれかに記載のエコーキャンセラ。
【請求項１１】
上記初期遅延推定手段は、
上記遠端入力信号を周波数成分に変換する第１の周波数変換部と、
上記第１の周波数変換部による変換された周波数成分のうち、１又は複数の周波数成分を選択する第１の周波数選択部と、
上記第１の周波数選択部が選択した周波数成分のパワーを求める第１のパワー計算部と、
上記エコー信号を周波数成分に変換する第２の周波数変換部と、
上記第２の周波数変換部による変換された周波数成分のうち、１又は複数の周波数成分を選択する第２の周波数選択部と、
上記第２の周波数選択部が選択した周波数成分のパワーを求める第２のパワー計算部と、
上記第１のパワー計算部が求めた上記遠端入力信号の周波数毎のパワーの立ち上がりと、上記第２のパワー計算部が求めた上記エコー信号の周波数毎のパワーの立ち上がりとの時間差を求め、上記時間差に基づき、エコー経路の初期遅延量を求めて、上記適応フィルタのタップ開始点を決定する時間差計算部と
を有することを特徴とする請求項１０に記載のエコーキャンセラ。
【請求項１２】
上記初期遅延推定手段が、
上記時間差計算部が求めた周波数毎の上記時間差から、エコー経路の初期遅延量のばらつきを求め、上記エコー経路の初期遅延量のばらつきが所定範囲内であるか否かを判定する周波数別時間差乖離判定部を更に備え、
上記周波数別時間差乖離判定部が、上記エコー経路の初期遅延量のばらつきが所定範囲内であると判定されると、上記時間差計算部からの上記周波数毎の上記時間差の中から最小の時間差を、エコー経路の初期遅延量として上記適応フィルタのタップ開始点を決定することを特徴とする請求項１１に記載のエコーキャンセラ。
【請求項１３】
上記初期遅延量推定手段が、
上記時間差計算部からの周波数成分のうち、エコー経路の初期遅延量推定を時間毎に複数個保持し、複数個の推定値が予め定めた所定範囲内にあるときに、最終的なエコー経路の初期遅延推定量と設定し、エコー経路の初期遅延を上記適応フィルタのタップ開始点を決定する初期遅延量決定部を更に備えることを特徴とする請求項１１に記載のエコーキャンセラ。
【請求項１４】
上記初期遅延量推定手段が、
上記周波数別時間差乖離判定部が出力した、エコー経路の初期遅延量推定を時間ごとに複数個保持し、複数個の推定値が予め定めた所定範囲内にあるときに、最終的なエコー経路の初期遅延推定量と設定し、エコー経路の初期遅延を上記適応フィルタのタップ開始点を決定する初期遅延量決定部を更に備えることを特徴とする請求項１２に記載のエコーキャンセラ。
【請求項１５】
上記音声検出手段による音声検出期間における上記遠端入力信号の大きさと、上記近端入力信号の大きさとに基づいて、エコー経路での音の減衰量を求め、上記減衰量と閾値との比較を行うエコーロス計算手段と、
上記音声検出手段による音声検出結果に基づき、上記近端入力信号に含まれるエコー信号の大きさと上記近端入力信号に含まれるノイズの大きさから、上記エコー信号とノイズとの大きさの比又は差を求め、この比又は差と閾値との比較を行うエコー／ノイズ計算手段と、
上記エコー／ノイズ計算手段からの比較結果に基づいて、当該エコーキャンセラの動作を有効にするか否かを判定する有効判定手段と、
上記エコーロス計算手段による上記減衰量が閾値を超えた場合、又は、上記有効判定手段により当該エコーキャンセラの動作を停止させると判定した場合に、当該エコーキャンセラの動作を停止させ、上記近端入力信号を透過させる省力優先判定手段と
を備えることを特徴とする請求項５〜１４のいずれかに記載のエコーキャンセラ。
【請求項１６】
上記エコー／ノイズ計算手段が、上記近端入力信号に含まれるエコー信号のパワーとノイズのパワーの比又は差と、閾値との大小比較を、複数の周波数成分で行うことを特徴とする請求項１５に記載のエコーキャンセラ。
【請求項１７】
上記有効判定手段が、上記有効判定手段による判定結果を受けて、予め定めた個数以下の複数周波数成分しか閾値を越えられないときに、エコーキャンセラの動作を停止することを特徴とする請求項１５又は１６に記載のエコーキャンセラ。
【請求項１８】
上記初期推定手段は、上記エコー／ノイズ計算手段による比又は差が閾値を超えた周波数成分のうち、エコーパワーの大きい周波数の順に、予め定めた個数の周波数成分を初期遅延の推定に選択することを特徴とする請求項１０〜１７のいずれかに記載のエコーキャンセラ。
【請求項１９】
遠端入力信号を利用して擬似エコー信号を形成する適応フィルタと、上記擬似エコー信号を用いて近端入力信号に含まれるエコー信号を除去するエコー成分除去手段とを備えるエコーキャンセラにおいて、
受信経路上に音声信号が入力したか否かを検出する音声検出手段と、
上記音声検出手段による音声検出結果に基づき、上記近端入力信号に含まれるエコー信号の大きさと上記近端入力信号に含まれるノイズの大きさから、上記エコー信号とノイズとの大きさの比又は差を求め、この比又は差と閾値との比較を行うエコー／ノイズ計算手段と、
上記エコー／ノイズ計算手段からの比較結果に基づいて、当該エコーキャンセラの動作を有効にするか否かを判定する有効判定手段と、
上記エコーロス計算手段による上記減衰量が閾値を超えた場合、又は、上記有効判定手段により当該エコーキャンセラの動作を停止させると判定した場合に、当該エコーキャンセラの動作を停止させ、上記近端入力信号を透過させる省力優先判定手段と
を備えることを特徴とするエコーキャンセラ。
【請求項２０】
上記エコー／ノイズ計算手段が、上記近端入力信号に含まれるエコー信号のパワーとノイズのパワーの比又は差と、閾値との大小比較を、複数の周波数成分で行うことを特徴とする請求項１９に記載のエコーキャンセラ。
【請求項２１】
上記有効判定手段が、上記有効判定手段による判定結果を受けて、予め定めた個数以下の複数周波数成分しか閾値を越えられないときに、エコーキャンセラの動作を停止することを特徴とする請求項１９又は２０に記載のエコーキャンセラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、エコーキャンセラに関し、例えば、音声会議装置やハンズフリー電話装置等の装置に用いるエコーキャンセラに適用し得るものである。
【背景技術】
【０００２】
従来、この種のエコーキャンセラには、特許文献１〜特許文献４に開示されるような技術があった。
【０００３】
特許文献１に開示される技術は、主に交換機に用いられるエコーキャンセラであるが、エコー発生源インパルス応答をもつハイブリッドが遠隔地にあるとき、その遠隔地までの遅延、すなわちエコーパスの初期遅延を、測定用の特別信号出力とその応答信号から推定して、適応フィルタのフィルタ係数の代わりに純遅延を割り当て、保有する残りの一定タップ長をその後ろに割り当てることで、実質のエコーキャンセラの適応フィルタのタップ長を短くする技術である。
【０００４】
これは適応フィルタの収束時間は、タップ長が大きくなるほど遅くなるという公知の事実に基づいており、特許文献１の技術は適応フィルタのタップのうち、エコーパスの初期遅延部分に割り当てられたタップが実際にはエコーの除去には寄与しないことを利用したものである。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平８−２５１０７９号公報
【特許文献２】特開平８−７９１３６号公報
【特許文献３】特開平９−５５６８７号公報
【特許文献４】特開２００６−１５７４９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記特許文献１の記載技術を音響エコーキャンセラに直接用いると、音響エコーのエコーパスの様子が回線エコーの様子とまったく異なるために、適応フィルタのタップ係数位置割り当てでは依然として過不足が発生してしまうという問題があった。音響エコーパスにおいては初期遅延だけでなく、初期遅延以後のエコー応答（散乱時間応答）が、個別に大きく異なるからである（つまり、エコー応答の尻尾の長さがまちまちだからである）。
【０００７】
しかし、これは自然で不可避的な現象である。回線エコーのエコー経路が、電話通信回線の規格を満たすように、ある程度画一的に製造されたハイブリッド電気回路の応答であるのに対して、音響エコー経路はスピーカから放射された音が、マイクによって集音されるまでの音経路、すなわち、近端話者存在の反射を含む部屋の音反射の応答なのだから、その応答が千差万別なのは至って自然なことである。
【０００８】
しかしながら、特許文献１の記載技術はこの問題に対して、さまざまに想定されるエコーパスの最大長のフィルタ長を予め持つ必要がある。もしも実際の音響エコー経路の初期遅延も、散乱応答もさほど大きくないなら、残りの長大なタップはすべてその直後から割り当てられてしまい、不要なフィルタ係数タップの短縮ができなかった。従って、収束時間が長くなるという問題がある。
【０００９】
さらに都合の悪いことに、適応フィルタが本来必要以上のタップ数を駆動したときには、不必要なタップがエコー推定誤差の発生原因になるため、むしろエコー除去性能を劣化させる場合がしばしばである。
【００１０】
その上、誤差発生の原因となるフィルタ処理、係数更新処理であっても、本来エコーキャンセラとして必要な部分と計算処理はまったく同様に行うから、ＤＳＰで行う際の演算処理・演算電力に無駄が発生する問題がある。
【００１１】
この根本的問題に対して、特許文献２及び特許文献３の記載技術は、初期遅延だけでなく、エコーパスの散乱応答部分に割り当てられる適応フィルタのタップ長の短縮を行う技術を開示している。
【００１２】
特許文献２の開示技術は、適応フィルタの収束程度を打ち消し誤差の大きさで判定することにし、打ち消し誤差が小さいと判定したら、適応フィルタのタップのうち大きさが小さいフィルタ係数をリセットする。リセット係数部分は適応フィルタとしては用いないことで、タップ数を小さくする技術を開示している。
【００１３】
また、特許文献３の記載技術は、適応フィルタのタップ係数をいくつかの大ブロックに分割し、初期動作で初期遅延を推定した後は、収束を進行させながらブロック単位でタップ係数のパワーが固定の閾値を越えるかどうかを判定し、閾値を越えた部分を基本のＡＤＦ係数更新対象領域として使い、その後は残差信号の増減を監視しつつ、基本的に、最後尾ブロックを削ってみて、エコー除去性能（ＥＲＬＥ）が劣化すると、再び付け足すことを繰り返すことで、概ねのタップ最適化を行おうとする技術が開示されている。
【００１４】
しかし、これらの技術でもしばしば不都合が発生し得る。
【００１５】
特許文献２の技術では、単純に係数を固定閾値と比較して小さい値の係数を削除する。結果、タップの数は小さくなるが、間引き状にタップが削減されてしまったり、入力成分に応じてたまたま小さな値を持つ正しいタップ係数まで除去することが発生し、性能劣化を伴ったりした。また、残差が小さいときに自動的に係数の小さい部分を削除するので、音声信号など参照入力レベルの変動がある信号のとき、残差信号が小さいのは単に参照入力レベルとそれに伴うエコーが小さいという自然な現象であるのに、係数削減処理が働いてしまい、必要な係数まで削除対象になってしまうので、徐々にエコーが十分に消去できなくなる場合があるという問題がある。
【００１６】
特許文献３の技術では、ＡＤＦのタップ係数ブロック長の決め方は部屋の大きさなどに応じて最適な設計に熟練を必要とし、適用対象に応じた柔軟な決定／設計が困難であった。更にタップ係数をブロック単位にしたうえで、タップ数増減の試行を繰り返すので、結果としてエコー除去性能の劣化が繰り返し発生してしまい、通話品質を劣化が発生してしまう問題がある。
【００１７】
これらの困難に対して、特許文献４の開示技術は、適応フィルタの係数の最大値から初期遅延を計算して、初期遅延部分ではディレイを割り当てて、初期遅延相当部分の適応フィルタのタップ長を節約するとともに、適応フィルタをさらに長さの異なる複数ブロックに分割し、係数の正規化パワー積和値を各ブロックで計算し、ブロック内の正規化パワーが、遅延後方に相当するタップにいくに従って小さくなるかどうかで適応フィルタが収束しているかどうかを判定することにして、
固定の閾値を設け、
閾値＞後半ブロックのパワー／前半ブロックのパワー
ならばブロックを延長し、
閾値＜後半ブロックのパワー／前半ブロックのパワー
ならばブロックを延長することでタップ係数を予め決めたブロック単位で増減させ、散乱時間部分のタップ長に関しても節約を試みる優れたエコーキャンセル技術が開示されている。
【００１８】
しかし、この特許文献４の方法にも次のような問題がある。例えば近端話者側のノイズが多く、エコーとノイズとのパワーの差が小さいときには、タップ係数のパワーにも差がさほど大きく現れないので、ブロックは徐々に延長され最大長にむかってしまう。
【００１９】
このようにノイズによってエコーの除去ができないのであれば、タップ長は可能な限り短くして演算処理の資源や演算電力の節約をするのが望ましい。
【００２０】
逆に、ノイズとエコーとのパワー差が大きなときでも、ブロックの変わり目がエコーパスの主要な部分にかち合ってしまうと、ブロックを１個短縮するとタップが急に不足し、次にそれを補おうとしてタップ長を再び延長し係数更新をするという動作を繰り返すため、特許文献３と同様にエコー消去性能の劣化が繰り返し発生してしまうという問題ある。
【００２１】
そこで、本発明は、上記の課題に鑑みたものであって、エコーキャンセラのエコー消去量と、適応フィルタ係数の係数値の特性の関係を監視し、実際のエコー除去に有効に作用しているタップ係数部分を計算し、その部分だけを選択的に適応フィルタとして機能させ、残りを動作停止することで、エコー消去の性能劣化なくタップ数を少なくする。そして、エコー除去性能の劣化を伴うことなく、演算規模／演算電力を小さくし、タップ長を短く動作するので状態変化にも素早く対応できるエコーキャンセラを提供することを目的としている。
【課題を解決するための手段】
【００２２】
かかる課題を解決するために、第１の本発明のエコーキャンセラは、遠端入力信号を利用して擬似エコー信号を形成する適応フィルタと、擬似エコー信号を用いて近端入力信号に含まれるエコー信号を除去するエコー成分除去手段とを備えるエコーキャンセラにおいて、（１）エコー成分除去手段に入力する近端入力信号と、エコー成分除去手段から出力する出力信号とに基づき、所定期間に亘るエコー消去量の平均値を求め、エコー消去量の平均値を逐次更新していき、適応フィルタの収束状態を検出し、適応フィルタの収束状態での収束時エコー消去量を求めるエコー消去量計算手段と、（２）エコー消去量計算手段から適応フィルタの収束状態の検出信号を受けると、適応フィルタが保持する全タップ係数のパワー総和と、適応フィルタのタップ係数のうちタップの割り当てを外そうとするタップ係数の部分パワー和とのパワー比を求め、収束時エコー消去量とパワー比とに基づいて、エコー成分除去に実効的な有効タップ数を決定する係数選択手段とを備え、適応フィルタが、係数選択手段が決定した有効タップ数のみを更新することを特徴とする。
【００２３】
第２の本発明のエコーキャンセラは、遠端入力信号を利用して擬似エコー信号を形成する適応フィルタと、擬似エコー信号を用いて近端入力信号に含まれるエコー信号を除去するエコー成分除去手段とを備えるエコーキャンセラにおいて、（１）受信経路上に音声信号が入力したか否かを検出する音声検出手段と、（２）音声検出手段による音声検出結果に基づき、近端入力信号に含まれるエコー信号の大きさと近端入力信号に含まれるノイズの大きさから、エコー信号とノイズとの大きさの比又は差を求め、この比又は差と閾値との比較を行うエコー／ノイズ計算手段と、（３）エコー／ノイズ計算手段からの比較結果に基づいて、当該エコーキャンセラの動作を有効にするか否かを判定する有効判定手段と、（４）エコーロス計算手段による減衰量が閾値を超えた場合、又は、有効判定手段により当該エコーキャンセラの動作を停止させると判定した場合に、当該エコーキャンセラの動作を停止させ、近端入力信号を透過させる省力優先判定手段とを備えることを特徴とする。
【発明の効果】
【００２４】
本発明によれば、エコーキャンセラのエコー消去量と、適応フィルタ係数の係数値の特性の関係を監視し、実際のエコー除去に有効に作用しているタップ係数部分を計算し、その部分だけを選択的に適応フィルタとして機能させ、残りを動作停止することで、エコー消去の性能劣化なくタップ数を少なくすることができる。
【図面の簡単な説明】
【００２５】
【図１】第１の実施形態のエコーキャンセラの構成を示すブロック図である。
【図２】第１の実施形態の適応フィルタの構成を示すブロック図である。
【図３】第１の実施形態のエコー消去量とタップ係数パワーとの関係を説明する説明図である。
【図４】第１の実施形態の適応フィルタ１１のタップ係数と実際のＰＯＷ＿ＬＯＧ（ｍ）との様子を説明する説明図である。
【図５】第２の実施形態のエコーキャンセラの構成を示すブロック図である。
【図６】第３の実施形態のエコーキャンセラの構成を示すブロック図である。
【図７】第３の実施形態の初期遅延推定部の構成を示すブロック図である。
【図８】第４の実施形態のエコーキャンセラの構成を示すブロック図である。
【図９】第４の実施形態の初期遅延及びエコー状態判定部の構成を示すブロック図である。
【発明を実施するための形態】
【００２６】
（Ａ）第１の実施形態
以下では、本発明のエコーキャンセラの第１の実施形態を、図面を参照しながら詳細に説明する。
【００２７】
（Ａ−１）第１の実施形態の構成
図１は、第１の実施形態のエコーキャンセラ１００Ａの構成を示すブロック図である。図１において、左側が図示しない遠端話者側であり、右側が図示しない近端話者側である。
【００２８】
図１において、エコーキャンセラ１００Ａは、受信入力端子Ｒｉｎ１、受信出力端子Ｒｏｕｔ２、ディジタル／アナログ変換器（以後Ｄ／Ａ）３、スピーカ４、マイクロフォン５、アナログ／ディジタル変換器（以後Ａ／Ｄ）６、送信入力端子Ｓｉｎ７、送信出力端子Ｓｏｕｔ８、打ち消し加算器９、係数選択部１０、適応フィルタ（ＡＤＦ：Adaptive  Filter）１１、音声検出器１２（ＶＡＤ：Voice  Activity  Detector）、エコー消去量計算器（ＡＣＡＮＣ）１３である。
【００２９】
受信入力端子Ｒｉｎ１は、遠端話者の音声信号がディジタル化された遠端入力信号（遠端話者信号ともいう）ｘ（ｎ）を入力する端子である。受信出力端子Ｒｏｕｔ２は、遠端話者からの遠端入力信号ｘ（ｎ）をＤ／Ａ３に出力する端子である。
【００３０】
ディジタル／アナログ変換器（Ｄ／Ａ）３は、受信出力端子Ｒｏｕｔ２から出力されたディジタル信号をアナログ信号に変換してスピーカ４に与えるものである。
【００３１】
スピーカ４は、Ｄ／Ａ３から音声信号を受け取り音声を空間に放出するものである。
【００３２】
マイクロフォン５は、近端側の音声を集音して、音声信号をアナログ／ディジタル変換器６に与えるものである。
【００３３】
アナログ／ディジタル変換器６は、マイクロフォン５からの音声信号を、アナログ信号からディジタル信号に変換して送信入力端子Ｓｉｎ７に与えるものである。
【００３４】
送信入力端子Ｓｉｎ７は、アナログ／ディジタル変換器６から出力された近端入力信号（近端話者信号ともいう）を入力する端子である。この近端入力信号は、エコー信号を含む信号である。また、送信出力端子Ｓｏｕｔ８は、打ち消し加算器９からの出力信号を遠端話者側に向けて送信する出力端子である。
【００３５】
打ち消し加算器９は、送信入力端子Ｓｉｎ７から入力された近端入力信号と適応フィルタ１１からの擬似エコー信号ｙ´（ｎ）とを加算して、近端入力信号に含まれるエコー信号ｙ（ｎ）を除去するエコー成分除去手段である。また、打ち消し加算器９は、加算処理した残差信号ｅ（ｎ）を適応フィルタ１１、エコー消去量計算器１３及び送信出力端子Ｓｏｕｔ８に出力する。
【００３６】
音声検出器１２は、受信入力端子Ｒｉｎ１から入力された遠端入力信号ｘ（ｎ）に音声があるか否かを判定し、音声がある場合に、音声検出結果（ｖ＿ｆｌｇ）をエコー消去量計算器１３に与えるものである。例えば、音声検出した場合にはｖ＿ｆｌｇ＝１を出力する。
【００３７】
エコー消去量計算器１３は、打ち消し加算器９に入力する入力信号のパワーと、打ち消し加算器９から出力する出力信号のパワーとに基づいてエコー消去量の平均値を計算するものである。また、エコー消去量計算器１３は、収束とともに徐々に大きくなるエコー消去量を反映してエコー消去量の平均値を逐次更新していき、エコー消去量の平均値の変動量が前回のエコー消去量の平均値の変動量よりも小さくなったことにより、適応フィルタ１１の係数の変化が収束したと判定し、その音声検出結果（ｓｖｐ＿ｆｌｇ）及びこのときのエコー消去量（ＡＣＡＮＣ＿ＵＰ（ｎＴ）,収束時エコー消去量ともいう）を係数選択部１０に与えるものである。なお、この実施形態では、例えば、適応フィルタ１１の収束状態を検出した場合には、ｓｕｖ＿ｆｌｇ＝１として係数選択部１０に与える。
【００３８】
適応フィルタ１１は、入力信号ｘ（ｎ）及び打ち消し加算器９からの出力信号ｅ（ｎ）入力し、擬似エコー信号ｙ´（ｎ）を生成して、打ち消し加算器９に与えるものである。また、適応フィルタ１１は、タップ係数を係数選択部１０に出力するものである。
【００３９】
図２は、適応フィルタ１１の内部構成を示すブロック図である。図２において、適応フィルタ１１は、タップ係数部１１ａ、積和演算部１１ｂ、保持レジスタ１１ｃ、係数更新部１１ｄを少なくとも有するものである。
【００４０】
タップ係数部１１ａは、フィルタ係数を格納するものである。タップ係数部１１ａは、Ｎ個の係数値を格納し、１つの係数ベクトルとして取り扱う。例えば、第１の実施形態では、Ｎ＝１０２４個とするが、特に限定されるものではない。また、タップ係数部１１ａは、係数選択部１０に対してタップ係数を出力する。
【００４１】
積和演算部１１ｂは、タップ係数部１１ａの係数ベクトルと、保持レジスタ１１ｃに保持されるデータベクトルとに基づいて積和演算を行い、擬似エコー信号ｙ´（ｎ）を計算するものである。積和演算部１１ｂは、係数選択部１０からタップ開始点ｓｔとタップ終了点ｅｎｄとを入力し、そのタップ開始点ｓｔからタップ終了点ｅｎｄまでのタップ係数を用いて積和演算を行う。
【００４２】
保持レジスタ１１ｃは、受信入力端子Ｒｉｎ１からの遠端入力信号ｘ（ｎ）を格納するものである。保持レジスタ１１ｃは、Ｎ個分の過去のサンプルを蓄えて、データベクトルとして取り扱う。
【００４３】
係数更新部１１ｄは、打ち消し加算器９から残差信号ｅ（ｎ）と、保持レジスタ１１ｃから信号ｘ（ｎ）ベクトルとを受け、所定のアルゴリズムを用いて適応フィルタ１１のフィルタ係数を更新し、更新したフィルタ係数をタップ係数部１１ａに与えるものである。係数更新部１１ｄは、係数選択部１０からタップ開始点ｓｔとタップ終了点ｅｎｄとを入力し、そのタップ開始点ｓｔからタップ終了点ｅｎｄまでのタップ係数の更新を行う。
【００４４】
係数選択部１０は、適応フィルタ１１のタップ係数部１１ａのタップ係数パワーの総和と、タップ係数の部分パワーの和とを計算し、タップ係数パワーの総和とタップ係数の部分パワーの和との比を計算して、エコー消去量計算器１３が計算したエコー消去量と前記比と、性能安定のための閾値δａｃａｎｃとに基づいて、エコー除去に実効的な適応フィルタ１１のタップ数（以下、有効タップ数ともいう）を決定するものである。
【００４５】
また、係数選択部１０は、決定したエコー除去に実効的な適応フィルタ１１のタップ数として、タップ開始点ｓｔ及びタップ終了点ｅｎｄを、適応フィルタ１１の係数更新部１１ｄ及び積和演算部１１ｂに与えるものである。
【００４６】
これにより、エコー除去に実効的な適応フィルタ１１のタップ数（有効タップ数）だけを、係数更新させ、かつ、これを用いて擬似エコー信号の発生に用いるようにすることができるので、無駄なタップ係数の更新処理をなくすことができ、フィルタ係数を短くできるので適応フィルタ１１の追従速度を向上させることができる。さらに、エコー消去性能は収束時の性能を維持することができるので、例えば通話時にエコー感のない通話を実現することができる。
【００４７】
（Ａ−２）第１の実施形態の動作
次に、第１の実施形態のエコーキャンセラ１００Ａにおける処理を、図面を参照しながら詳細に説明する。
【００４８】
図示しない遠端話者からの音声信号はディジタル化された信号として到来するものとする。受信音声信号ｘ（ｎ）は音声検出器１２と適応フィルタ１１、受信出力端子Ｒｏｕｔ２に入力される。音声検出器１２及び適応フィルタ１１における動作に関しては後述する。なお、ｎはサンプル順である。
【００４９】
受信出力端子Ｒｏｕｔ２から出力された信号は、Ｄ／Ａ３でアナログ信号に変換された後、スピーカ４で音声になり空間に放出される。
【００５０】
また、スピーカ４から放出された信号は、図示しない近端の話者に音声信号として供せられるが、一部の音がマイクロフォン５に回り込んで入力される。
【００５１】
マイクロフォン５に入力された信号ｙは、Ａ／Ｄ６でディジタル信号に変換され、エコー信号ｙ（ｎ）となって、打ち消し加算器９とエコー消去量計算器１３に出力される。
【００５２】
打ち消し加算器９には、適応フィルタ１１の出力である擬似エコーｙ´（ｎ）が出力されており、エコー信号ｙ（ｎ）と相殺される。
【００５３】
打ち消し加算器９の出力信号ｅ（ｎ）は、エコー消去量計算器１３と送信出力端子Ｓｏｕｔ８に出力される。また、出力信号である残差信号ｅ（ｎ）は、適応フィルタ１１にも出力され、後述するように適応フィルタ１１の係数更新に用いられる。
【００５４】
送信出力端子Ｓｏｕｔ８から出力された信号は、図示しない遠端話者へと送信され遠端話者との会話に用いられる。
【００５５】
（Ａ−２−１）音声検出器１２における処理
次に、各構成ブロックの動作について詳しく説明する。まず、遠端話者からの音声信号ｘ（ｎ）が入力する音声検出器１２における動作を詳細に説明する。
【００５６】
音声検出器１２による音声検出方法は、入力信号ｘ（ｎ）から音声の有無を検出することができれば種々の方法を広く適用することができ、第１の実施形態では、例えば、次に示すような音声区間検出方法を適用する場合を例示する。
【００５７】
例えば、音声検出器１２は、｜ｘ（ｎ）｜の短期平均ｘ＿ｓｈｏｒｔ（ｎ）、長期平均ｘ＿ｌｏｎｇ（ｎ）を各々式（１）、式（２）を用いて計算し、下記の式（３）の条件が成立したときに「音声あり」とし、そうでないときに「音声なし」と判定する。
【００５８】
ｘ＿ｓｈｏｒｔ（ｎ）
＝δｓ・｜ｘ（ｎ）｜＋（１．０−δｓ）・ｘ＿ｓｈｏｒｔ（ｋ−１）…（１）
ｘ＿ｌｏｎｇ（ｎ）
＝δｌ・｜ｘ（ｎ）｜＋（１．０−δｌ）・ｘ＿ｌｏｎｇ（ｋ−１）…（２）
ただし、０＜δｓ≦１．０、０＜δｌ≦１．０（上記ｌはＬの小文字）
（音声検出条件）
ｘ＿ｓｈｏｒｔ（ｎ）≧ｘ＿ｌｏｎｇ（ｎ）＋ＶＡＤ１２＿ｍ  （ｄＢ）…（３）
ここで、δｓ、δｌは、平均の追従の速さを決定する定数である。δｓ、δｌが、大きいと時間変動に敏感に反応する代わりに背景ノイズの影響を受け易くなり、小さいと大まかな成分に追従し、ノイズの影響には鈍感になる。
【００５９】
第１の実施形態では、例えば、δｓについては０．４、δｌについては０．００２を用い、ＶＡＤ１２＿ｍは６ｄＢを用いたが、この値に限定しない。また、式（３）は、ｄＢ表現としたが、ｄＢ表現ではなく、通常表記で表すと以下のようになる。
【００６０】
ｘ＿ｓｈｏｒｔ（ｎ）≧ｘ＿ｌｏｎｇ（ｎ）×ＶＡＤ１２＿ｍｌｉｎ…（３’）
ここで、この場合、例えばＶＡＤ１２＿ｍｌｉｎは２．０となる。
【００６１】
また、δｓ、δｌはサンプリング周波数によって適宜変更するのが望ましく、例えば、サンプリング周波数によらず、δｓを立ち上がり２０ｍｓ相当に、δｌを５秒相当に設定するなどしてもよいのはもちろんである。
【００６２】
（Ａ−２−２）エコー消去量計算器１３における処理
次に、エコー消去量計算器１３におけるエコー消去量の計算方法と、適応フィルタ１１の係数変化の収束状態の判定方法を説明する。
【００６３】
例えば、エコー消去量計算器１３は、音声検出器１２から音声検出信号（例えばｖ＿ｆｌｇ＝１）の出力を受けたとき、打ち消し加算器９の入出力信号のパワーからエコー消去量ＡＣＡＮＣを計算する。これは、エコーが発生していないときに、エコー消去量を計算しても意味がないため、音声検出されている期間のみエコー消去量を計算する意図である。
【００６４】
エコー消去量計算器１３は、送信入力端子Ｓｉｎ７からの信号ｙ（ｎ）と、打ち消し加算器９からの出力信号ｅ（ｎ）とを入力し、式（４）のようにしてエコー消去量の瞬時値ＡＣＡＮＣ＿Ｓ（ｎ）を計算する。
【００６５】
ＡＣＡＮＣ＿Ｓ（ｎ）
＝１０ＬＯＧ１０｛（ｙ２（ｎ））／（ｅ２（ｎ））｝…（４）
第１の実施形態では、式（４）のように信号のパワーを用いるようにしたが、別の方法として信号の絶対値を用いて、式（５）のようにしてもよい。
【００６６】
ＡＣＡＮＣ＿Ｓ（ｎ）
＝２０ＬＯＧ１０｛｜ｙ（ｎ）｜／｜ｅ（ｎ）｜）…（５）
ここで｜｜は絶対を表す。
【００６７】
次に、エコー消去量計算器１３は、エコー消去量の平滑値ＡＣＡＮＣ＿Ｌ（ｎ）を式（６）のように計算する。
【００６８】
ＡＣＡＮＣ＿Ｌ（ｎ）
＝δ・ＡＣＡＮＣ＿Ｌ（ｎ−１）＋（１−δ）ＡＣＡＮＣ＿Ｓ（ｎ）…（６）
ここで、式（６）において、δは平滑の滑らかさを表す定数であり、式（７）の関係がある。
【００６９】
０＜δ＜１．０…（７）
δが小さいとき、瞬時値ＡＣＡＮＣ＿Ｓ（ｎ）に追従する速さが速くなるが、同時に、ノイズ成分があるときにはそのノイズの影響も受けやすくなる。一方で、δが大きいときは瞬時値ＡＣＡＮＣ＿Ｓ（ｎ）の大まかな変化を反映するようになり、ノイズ成分の影響も受けづらくなる。第１の実施形態では、δ＝０．９９８を用いた場合を例示するが、この値は特に限定しない。
【００７０】
また、式（４）、式（５）からわかるように、エコー消去量の瞬時値ＡＣＡＮＣ＿Ｓ（ｎ）や、平滑値ＡＣＡＮＣ＿Ｌ（ｎ）は、適応フィルタ１１の適応が進行し、エコー除去性能が発揮できるようになるに従って、大きな値をとるようになる。
【００７１】
エコー消去量計算器１３は、計算した平滑値ＡＣＡＮＣ＿Ｌ（ｎ）を用いて、一定期間ｎＴ毎に、エコー消去量の平滑値ＡＣＡＮＣ＿Ｌ（ｎ）の値の上昇値ＡＣＡＮＣ＿ＵＰ（ｎＴ）を式（８）、式（９）のように計算する。
【００７２】
ＡＣＡＮＣ＿Ｌ（ｎ）＞ＡＣＡＮＣ＿ＵＰ（ｎＴ）なら
ＡＣＡＮＣ＿ＵＰ（ｎＴ）＝ＡＣＡＮＣ＿Ｌ（ｎ）…（８）
ＡＣＡＮＣ＿Ｌ（ｎ）≦ＡＣＡＮＣ＿ＵＰ（ｎＴ）なら
ＡＣＡＮＣ＿ＵＰ（ｎＴ）＝ＡＣＡＮＣ＿ＵＰ（（ｎ−１）Ｔ）…（９）
つまり、ＡＣＡＮＣ＿ＵＰ（ｎＴ）は、前回ｎＴのタイミングで計算したＡＣＡＮＣ＿ＵＰ（ｎＴ）と、最新の現サンプル値ＡＣＡＮＣ＿Ｌ（ｎ）を比較し、どちらか大きい値が新しいＡＣＡＮ＿ＵＰ（ｎＴ）として継続更新されていくことを表している。
【００７３】
さらに、エコー消去量計算器１３は、式（８）が行われたときに、その上昇の程度ｄｉｆｆ＿ＡＣＡＮＣがどの程度大きいかを式（１０）のように計算する。
【００７４】
ｄｉｆｆ＿ＡＣＡＮＣ（ｎＴ）
＝ＡＣＡＮＣ＿ＵＰ（ｎＴ）−ＡＣＡＮＣ＿ＵＰ（（ｎ−１）Ｔ）…（１０）
また、エコー消去量計算器１３は、式（１１）が成立するか否かを判定する。
【００７５】
ｄｉｆｆ＿ＡＣＡＮＣ（ｎＴ）
≦ｄｉｆｆ＿ＡＣＡＮＣ（（ｎ−１）Ｔ）＋δ２…（１１）
ここで、δ２は２ｄＢを用いたがこれに限定しない。
【００７６】
そして、式（１１）のとき、エコー消去量計算器１３は、適応フィルタ１１の係数の変化が収束したと判定し、判定結果としてｓｖｐ＿ｆｌｇ＝１とＡＣＡＮＣ＿ＵＰ（ｎＴ）を係数選択部１０に出力する。
【００７７】
（Ａ−２−３）適応フィルタ１１における処理
適応フィルタ１１における処理を図１及び図２を用いて説明する。
【００７８】
まず、保持レジスタ１１ｃは、受信入力端子Ｒｉｎ１からの信号ｘ（ｎ）を格納する。
【００７９】
このとき、保持レジスタ１１ｃは、次のように、信号ｘ（ｎ）をデータベクトルとして扱う。つまり、Ｎ個分の過去サンプルが蓄えられることになる。
【００８０】
ｘ（ｎ）＝[ｘ（ｎ）、ｘ（ｎ−１）、…、ｘ（ｎ−Ｎ＋１）]ｔ  …（１２）
ここで、ｎはサンプル順、Ｎは適応フィルタ１１のタップ数（例えば、Ｎ＝１０２４個とするがこれに限定されない）、ｔは行列の転置を表している。
【００８１】
また、タップ係数部１１ａには、図示しないフィルタ係数（タップ係数）が格納されており、Ｎ個の係数値を持つ。係数の値は、後述するように、係数更新部１１ｄによる時々刻々と更新される。
【００８２】
例えば、タップ係数部１１ａのＮ個の係数は、式（１３）のように１つの係数ベクトルとして扱う。
【００８３】
Ｈ（ｎ）＝[ｈ（０）、ｈ（１）、…、ｈ（Ｎ−１）]ｔ  …（１３）
ここで、Ｎは適応フィルタ１１のタップ数である。
【００８４】
積和演算部１１ｂは、タップ係数部１１ａの係数ベクトルと保持レジスタ１１ｃのデータベクトルとを受け、式（１４）のようにｙ´（ｎ）を計算する。このｙ´（ｎ）は擬似エコーのサンプルデータである。ｙ´（ｎ）は１つの値を持つ、スカラー値データである。
【数１】
2011061449.tif 000003
【００８５】
ここで、ｓｔ及びｅｎｄの値は、後述する係数選択部１０から出力される値である。ｓｔの初期値は０、ｅｎｄの値はＮ−１である。従って、積和演算部１１ｂは、初期状態では、Ｎサンプルの過去のデータとＮタップ分の係数とを積和して、擬似エコー信号ｙ´（ｎ）を作成する。上記のように作成された擬似エコーｙ´（ｎ）は、打ち消し加算器９に出力される。
【００８６】
打ち消し加算器９は、上述のようにスピーカ４からマイク５に漏れこんだエコー信号ｙ（ｎ）が入力されており、式（１５）のように信号同士を加算相殺して残差信号ｅ（ｎ）を計算する。残差信号ｅ（ｎ）は送信出力端子Ｓｏｕｔ８に出力される。
【００８７】
ｅ（ｎ）＝ｙ（ｎ）−ｙ´（ｎ）…（１５）
送信出力端子Ｓｏｕｔ８からの出力信号は、図示しない遠端話者側への音声信号として出力される。
【００８８】
また、打ち消し加算器９の残差信号ｅ（ｎ）は、係数更新部１１ｄにも出力される。
【００８９】
係数更新部１１ｄは、打ち消し加算器９からの残差信号ｅ（ｎ）と、保持レジスタ１１ｃからの受信信号ベクトルｘ（ｎ）とに基づいて、例えば式（１６）のように公知のＮＬＭＳアルゴリズムを用いて適応フィルタのフィルタ係数を更新する。
【数２】
2011061449.tif 000004
【００９０】
ここで、式（１６）の右辺第２項分母のｓｔとｅｎｄは式（１５）と同じである。式（１６）は信号ｅ（ｎ）、ｘ（ｎ）から、次回の擬似エコー作成に用いるための係数ベクトルが作成されることを示している。
【００９１】
係数更新部１１ｄは、作成した係数ベクトルをタップ係数１１ａに出力し、次回の擬似エコー信号ｙ´（ｎ）の作成に備える。何度か、式（１６）の係数更新が進行すると、式（１５）の残差信号ｅ（ｎ）は徐々に小さくなる。
【００９２】
やがて十分にｅ（ｎ）が小さくなると、式（１６）の係数更新で係数の変化がほとんど起きなくなる。これが「適応フィルタが収束した状態」である。
【００９３】
以上のように、音声検出器１２の出力が音声ありのとき、エコーキャンセラは適応フィルタ１１が主体となってエコーの同定と打ち消しを担う。
【００９４】
以上説明したように適応フィルタ１１では、遠端入力信号ｘ（ｎ）が入力されるに従い、残差信号ｅ（ｎ）のパワーが最小になるように適応フィルタ１１のフィルタのタップ係数が更新されていく。
【００９５】
図示しない近端話者側からのノイズ成分がない場合は、ｅ（ｎ）＝０になった時点でフィルタタップ係数の変更が自動的に停止されて、それ以後はエコーを打ち消す状態が維持される。
【００９６】
（Ａ−２−４）係数選択部１０及びフィルタ係数の更新の動作
次に、係数選択部１０における係数選択処理の動作を、図面を参照しながら説明する。
【００９７】
係数選択部１０は、エコー消去量計数器１３からｓｕｖ＿ｆｌｇ及びＡＣＡＮＣ＿ＵＰ（ｎＴ）が入力され、また適応フィルタ１１からフィルタ係数が入力されている。
【００９８】
係数選択部１０は、図示しないフィルタ係数から、例えば下記のようにして、適応フィルタ１１のタップ係数として実働させる適応フィルタ１１のフィルタ係数を決定する。
【００９９】
係数選択部１０は、エコー消去量計数器１３からｓｖｐ＿ｆｌｇ＝１がないとき、何も実行しない。
【０１００】
また、係数選択部１０がエコー消去量計数器１３からｓｖｐ＿ｆｌｇ＝１を受けると、係数選択部１０は、式（１７）のような適応フィルタ１１のフィルタ係数のパワーログ特性を計算する。
【数３】
2011061449.tif 000005
【０１０１】
ここで、ｍは、第ｍ番目のタップ位置での計算であることを表している。Ｎは、適応フィルタ１１の全タップ数を表している。
【０１０２】
式（１７）の分母は、第Ｍ番目から最後までのタップ係数のパワー総和であり、分子は適応フィルタ１１の全タップ長分のフィルタタップ係数のパワー総和である。また、式（１７）は、式（１７´）のように計算しても意味は同じである。
【数４】
2011061449.tif 000006
【０１０３】
式（１７）及び式（１７´）の意味するところは、本発明にとって重要であるので、図３を用いて詳しく説明する。
【０１０４】
前述したエコー消去量計算器１３で計算するエコー消去量は２つの信号パワーの比、すなわち、式（４）を基本に計算された量である。
【０１０５】
いま、エコー消去量が、仮にａ（ｄＢ）であるとする。
【０１０６】
このエコー消去量ａ（ｄＢ）は、エコーパスのインパルス応答波形、すなわち収束した適応フィルタ１１のタップ係数値の部分パワー比に置き換えて考えることができる。その仕組みを以下に説明する。
【０１０７】
近端側のノイズの影響が小さいとして考える。図１のｙ（ｎ）はエコーのことであり、図３で言い換えるならエコー全体そのもの、つまりエコーパスの応答波形（インパルス応答）のＮタップ分の全パワーに相当する。
【０１０８】
エコーキャンセラの係数タップはすでに説明したように、適応フィルタ１１が収束するとエコーパスのインパルス応答を模擬したものになる。（例えば、第１の実施形態のＮＬＭＳアルゴリズムの場合では、エコーパス時間波形の模擬波形となる。）
しかし一方で、適応フィルタ１１はフィルタ長が有限であるから、無限長のエコーパス全長をカバーしきれない。したがって、従来技術では冗長を覚悟の上で、実際に想定されるだけ十分に長いタップ長Ｎを予め設計者が割り当てるか、逆にメモリなどの資源を可能なだけ割り当てたあとの結果がタップ長Ｎであることが多い。
【０１０９】
もし、フィルタ長に全長Ｎではなく、それより少ない冒頭Ｍタップを用いたとすると、図３のように、エコーキャンセラはタップ長Ｍの分だけエコー消去を受け持ち、残りのＮ−Ｍタップ分に関しては係数タップが割り当てられていないのでエコーを打ち消せない。すなわち、この割り当てられていない部分のパワーの打ち消し残差パワーｅ２（ｎ）になる。
【０１１０】
つまり、打ち消し加算器９の入出力パワー比であるエコー消去量は、全エコーのうちどれだけのエコーを消去できたのか、言い換えれば、全Ｎタップのうち、何タップ程度が実際有効に機能しているかの指標にできる。
【０１１１】
図４は、適応フィルタ１１のタップ係数と実際のＰＯＷ＿ＬＯＧ（ｍ）との様子を説明する。図４において、図４（Ａ）は、適応フィルタ１１のタップ係数の時間波形を示し、図４（Ｂ）は、式（１７）のＰＯＷ＿ＬＯＧ（ｍ）の特性であり、両方の時間軸を合わせて図示する。
【０１１２】
ＰＯＷ＿ＬＯＧ（ｍ）は、エコーパスの初期遅延ｉｄのうちは値が変化しないが、時間ｉｄ以後は、ｍが大きくなるにつれ上昇し、ｍ＝Ｍのときに全体に対して例えばａ（ｄＢ）の割合になることを示すようになる。
【０１１３】
図４からわかるように、ｍ＝Ｍ以後は、ｍが増加してもさほどＰＯＷ＿ＬＯＧ（ｍ）が上昇しなくなる。つまり、適応フィルタ１１において、タップ長をＭより多少増加したとしても、消去性能の改善は頭打ちに近くなることを反映する。これは空間の音響エコー経路というものが「反射を繰り返しながら徐々に減衰する」、「反射は時間後方ほど緩やかに減衰する」という公知の物理的特性を反映したものである。
【０１１４】
これらエコーパスの性質に鑑みれば、一旦エコーキャンセラを収束させてエコー消去量を測定できれば、実用問題として、計算したエコー消去量と係数レジスタのＰＯＷ＿ＬＯＧ（ｍ）の関係から、その時点のエコー打消性能を維持する係数タップの数が計算できることを意味している。
【０１１５】
そこで、係数選択部１０は、実際にエコー消去量計算器１３の計算した計算値ＡＣＡＮＣ＿ＵＰ（ｎＴ）を用い、式（１８）を満足するｍを求める。
【数５】
2011061449.tif 000007
【０１１６】
閾値δａｃａｎｃは、タップ数のマージンを確保するための定数（マージン閾値）であり、例えば第１の実施形態では、δａｃａｎｃ＝３ｄＢを用いたが、これに限定されない。
【０１１７】
図４に戻って説明する。例えば、図４の場合、実際にａ（ｄＢ）の消去性能が発揮できているとき、タップ数ｍはＭとなり、実際に近端ノイズなどがあり、ａ（ｄＢ）よりも性能が発揮できていないときには、Ｍより少ない値ｍが自動的に計算されることになる。
【０１１８】
係数選択部１０は、式（１８）の演算により得られたタップ長ｍを、タップ終了点ｅｎｄとして適応フィルタ１１の係数更新部１１ｄに出力する。
【０１１９】
また、第１の実施形態では、係数選択部１０は、タップ開始点ｓｔ＝０を適応フィルタ１１の係数更新部１１ｄに出力するが、以下のようにしても良い。
【０１２０】
例えば、図４のエコーパス初期遅延ｉｄは装置によってスピーカ４とマイク５の距離から予め固定値とすることもできる。そのような場合、例えば、音速ｓｖとスピーカ４とマイク５の間の距離ｄから初期遅延サンプルｓｔを次のように計算し、これにより得られた初期遅延サンプルをタップ開始点としても良い。
【０１２１】
ｓｔ＝（ｄ／ｓｖ）×サンプリング周期、
又は、ｓｔ＝ｄ／（ｓｖ×サンプリング周波数）
適応フィルタ１１の係数更新部１１ｄは、係数選択部１０からタップ開始点ｓｔとタップ終了点ｅｎｄが入力されると、例えば式（１６）のように、タップ開始点ｓｔ〜タップ終了点ｅｎｄのタップ係数だけを更新して、残りは更新しない。
【０１２２】
さらに、係数選択部１０は、タップ開始点ｓｔとタップ終了点ｅｎｄを適応フィルタ１１の積和演算部１１ｂにも出力する。
【０１２３】
適応フィルタ１１の積和演算部１１ｂは、タップ係数部１１ａのフィルタ係数と保持レジスタ１１ｃのうち、タップ開始点ｓｔ〜タップ終了点ｅｎｄのデータだけを用いて式（１４）のように擬似エコーを作成する。
【０１２４】
なお、第１の実施形態では、タップ開始点ｓｔ〜タップ終了点ｅｎｄのデータだけを使い残りのタップ係数部１１ａの係数レジスタを計算に用いないようにしたが、さらに、残りの部分をリセットするようにしてもよい。
【０１２５】
また、以上述べたように係数選択部１０は、一旦達成したエコー消去性能を維持しつつ、フィルタのタップ数を削減するためのタップ開始点ｓｔとタップ終了点ｅｎｄをＡＤＦ１１に出力し、以後ＡＤＦ１１はｓｔ〜ｅｎｄのフィルタ係数と保持レジスタ１１ｃのデータだけを用いてエコー打消し動作を継続していく。
【０１２６】
（Ａ−３）第１の実施形態の効果
以上のように、第１の実施形態のエコーキャンセラ１００Ａは、音声検出器１２が音声ありを検出したときに、エコー消去量計算部１３がエコー消去量を求め、係数選択部１０は、適応フィルタ１１が収束した状態のエコー消去量を用いて、タップ係数パワーの総和とタップ係数の部分パワーの和とを計算し、両者の比を計算して現在エコー打ち消しに有効に機能している適応フィルタ１１のタップ数を決定し、その決定したタップだけを係数更新し、擬似エコー信号の生成を行うこととした。
【０１２７】
その結果、第１の実施形態によれば、一旦タップ係数が限定されたあとは、無駄なフィルタタップ係数を用いた擬似エコー信号発生のフィルタ処理を行う必要がなく、また無駄な係数更新処理を行う必要がなく、更にフィルタ係数が短くなるので、エコーパスの変化に対する適応フィルタ１１の追従速度が向上する。
【０１２８】
その一方で、エコー消去性能は、収束時の性能がそのまま維持されて、通話時にエコー感のない通信機を実現するエコーキャンセラを提供することができる。
【０１２９】
（Ｂ）第２の実施形態
次に、本発明のエコーキャンセラの第２の実施形態を図面を参照しながら説明する。
【０１３０】
第２の実施形態は、第１の実施形態と同様に、一旦フィルタタップを限定したあと、エコー経路の変化でエコー消去性能が劣化したときに対応して、タップの割り当て限定を一旦解除して、再び有効タップの限定処理を行うものである。
【０１３１】
一般に、例えばデスクワーク等を行う話者のように、体の動きがあまり発生しない環境で用いる装置に、本発明のエコーキャンセラを適用する場合、第１の実施形態のように、タップの限定動作を行い、一定タップ数でエコー消去を行うことで十分なエコー除去性能を発揮できることも多い。
【０１３２】
しかし、例えば自動車電話などに応用する場合は事情が異なる。例えば、ドライバは自動車運転操作の必然から、運転中においてはエコーパスの変化が発生することがしばしばである。
【０１３３】
第２の実施形態は、このようなエコーパスの変化によるエコー消去性能が変動する場合も考慮したものであり、動作するタップ係数を限定したあと、外部要因であるエコーの状態が変わったことによるエコー消去性能劣化を回復することに鑑みたものである。
【０１３４】
（Ｂ−１）第２の実施形態の構成及び動作
図５は、第２の実施形態のエコ−キャンセラ１００Ｂの構成を示すブロック図である。
【０１３５】
第２の実施形態が、第１の実施形態と異なる点は、エコー消去量計算器１３に代えてエコー消去量計算器２０とすること、係数選択部１０に代えて係数選択部２１にすることであり、それ以外の構成要素は第１の実施形態と同じである。
【０１３６】
そこで、以下では、エコー消去量計算器２０及び係数選択部２１の動作を詳細に説明し、それ以外の構成要素の動作については重複するので改めて説明しない。
【０１３７】
まず、エコー消去量計算器２０について説明する。エコー消去量計算器２０は、第１の実施形態で説明した処理に加えて、タップ係数が限定されたあとも、エコー消去量計算値を更新継続するようにし、計算したエコー消去量が低下することで、タップ係数限定の後にエコー経路変動による消去性能の劣化したことを検出するようにし、その劣化を検出したときに検出信号（以下、エコー消去性能劣化信号ともいう）ｓｐａｎ＿ｒｅｓｅｔを係数選択部２１に与えるものである。
【０１３８】
つまり、エコー消去量計算器２０も、式（１１）を計算するところまでは第１の実施形態で説明した動作と同じである。さらに、エコー消去量計算器２０は、音声検出器１２からｖ＿ｆｌｇ＝１が入力されると、係数タップが限定されたあとも、式（１９）のようにＡＣＡＮＣ＿ＵＰ（ｎＴ）を更新継続する点が第１の実施形態と異なる。
【０１３９】
ＡＣＡＮＣ＿ＵＰ（ｎＴ）≧ＡＣＡＮＣ＿ＭＡＸなら
ＡＣＡＮＣ＿ＭＡＸ＝ＡＣＡＮＣ＿ＵＰ（ｎＴ）−δ２０  …（１９）
ＡＣＡＮＣ＿ＵＰ（ｎＴ）＜ＡＣＡＮＣ＿ＭＡＸなら
ＡＣＡＮＣ＿ＭＡＸ＝ＡＣＡＮＣ＿ＭＡＸ  …（２０）
ここで、δ２０は定数であり、δ２０≦δ２  である。また、第２の実施形態では、例えばδ２０＝１ｄＢを用いたが、これに限定されるものではない。
【０１４０】
式（１９）は、ＡＣＡＮＣ＿ＵＰ（ｎＴ）が安定になったあと、エコー消去量の平滑最大値ＡＣＡＮＣ＿ＭＡＸにＡＣＡＮＣ＿ＵＰ（ｎＴ）を反映しながら、ＡＣＡＮＣ＿ＵＰ（ｎＴ）を逐次更新して、後述するエコー経路変動による消去性能の劣化判定に用いることにするのである。
【０１４１】
式（１９）の更新の結果として、ＡＣＡＮＣ＿ＵＰ（ｎＴ）更新時にエコー消去がうまくいっているなら、式（８）の動作によって、δ２０のせいで毎回ＡＣＡＮＣ＿ＵＰ（ｎＴ）は一旦大きな値ＡＣＡＮＣ＿Ｌ（ｎ）に引き戻される。その結果、その後再び式（１９）によってＡＣＡＮＣ＿ＭＡＸも大きな値に引き戻される。
【０１４２】
つまり、ＡＣＡＮＣ＿ＭＡＸはそれまでの最大値とそこからδ２０（ｄＢ）分だけ小さくなった値を行き来するが、毎回の差分としては式（１１）のδ２の範囲は超えないのでタップ係数の限定がなされたままとなる。
【０１４３】
一方で、式（１９）が何度か実行されるうち、式（８）が成立せずに、式（９）が成立するときは、現象としてはＡＣＡＮＣ＿Ｌ（ｎ）が小さく、ＡＣＡＮＣ＿ＵＰ（ｎＴ）を上方に引き戻すことができない状態になっているということである。
【０１４４】
説明したようにＡＣＡＮＣ＿Ｌ（ｎ）が意味するのは、エコー消去量の長時間平滑値であるから、これは長期間で見てもエコー打ち消し性能が低下しているということを表している。このときＡＣＡＮＣ＿ＭＡＸは式（２０）のように維持されたままとなる。
【０１４５】
そこで、エコー消去量計算器２０は、ｓｖｐ＿ｆｌｇ＝１のときで、かつ、下記式（２１）が成立するほどＡＣＡＮＣ＿ＵＰ（ｎＴ）が降下したとき、検出信号ｓｐａｎ＿ｒｅｓｅｔ＝１を係数選択部２１に出力する。それ以外のときには、何も出力しない。
【０１４６】
ＡＣＡＮＣ＿ＭＡＸ
≧ＡＣＡＮＣ＿ＵＰ（ｎＴ）−δ２１  …（２１）
ここで、δ２１はタップ限定リセット処理発動のための閾値であり、第２の実施形態では、例えばδ２１＝１０ｄＢを用いたがこの値に限定しない。式（２１）ではδ２１を差し引くように計算したが、式（２１）‘のように乗算の形で−１０ｄＢパワー減少に相当する値すなわち  δ２１‘＝０．１  を計算するようにしてもよい。
【０１４７】
ＡＣＡＮＣ＿ＭＡＸ
≧ＡＣＡＮＣ＿ＵＰ（ｎＴ）×δ２１‘  …（２１）’
本実施形態では式(２１)をもちいた。
【０１４８】
次に、係数選択部２１について説明する。係数選択部２１は、第１の実施形態で説明した処理に加えて、エコー消去量計算器２０からｓｐａｎ＿ｒｅｓｅｔ＝１を入力すると、適応フィルタ１１の係数更新部１１ｄにタップ開始点ｓｔ＝０、タップ終了点ｅｎｄ＝Ｎを出力するものである。
【０１４９】
すなわち、係数選択部２１は、適応フィルタ１１の全タップを動作させる初期状態に戻すものである。これにより、タップ数を限定した後に発生したエコーパスの変化に基づいて再びエコー消去性能を発揮するために、最小限のタップ数で動作することができる。
【０１５０】
エコー消去量計算器２０は、ｓｖｐ＿ｆｌｇ＝１、ｓｐａｎ＿ｒｅｓｅｔ＝１を出力し終えると、ｓｖｐ＿ｆｌｇ＝０に戻し、他の内部パラメータも全てリセットして動作を再開する。その後の動作は、第１の実施形態と同じである。
【０１５１】
（Ｂ−２）第２の実施形態の効果
上記のように、第２の実施形態によれば、外部要因のエコー経路の変化に追従するが、タップの不適割り当ての繰り返しによるエコー消去量の揺らぎなどが発生しない。つまり、一旦、適応フィルタとして動作できるタップを限定した後でも、エコーパスの変化が発生すれば、エコー除去性能が劣化したことを自動的に検知して、エコーを除去し、再び最小のタップ長に落ち着いて、安定にかつ省電力でエコーを消去し得るエコーキャンセラを提供できる。
【０１５２】
（Ｃ）第３の実施形態
次に、本発明のエコーキャンセラの第３の実施形態を図面を参照しながら説明する。
【０１５３】
（Ｃ−１）第３の実施形態の構成
図６は、第３の実施形態のエコーキャンセラ１００Ｃの構成を示すブロック図である。
【０１５４】
第３の実施形態が、第２の実施形態と異なる点は、初期遅延推定部３０を追加した点である。それ以外の構成要素は、第２の実施形態と同じであるので、改めて説明しない。
【０１５５】
初期遅延推定部３０は、周波数成分別にタップ係数のタップ開始点ｓｔを推定するものである。初期遅延推定部３０は、受信信号線側のＤ／Ａ３と係数選択部２１との間に設けられたものであり、エコー消去量計算器２０から後述する動作リセットのための信号線が結ばれている。
【０１５６】
図７は、初期遅延推定部３０の詳細な構成を示すブロック図である。図７において、初期遅延推定部３０は、周波数変換部３１ｒ、周波数選択部３２ｒ、パワー計算部３３ｒ、時間差計算部３４、周波数別時間差乖離判定部３５、初期遅延量決定部３６、パワー計算部３３ｓ、周波数選択部３２ｓ、周波数変換部３１ｓを少なくとも有する。
【０１５７】
周波数変換部３１ｒは、受信側の周波数変換部である。周波数変換部３１ｒは、音声検出器１２から音声ありを示すｖ＿ｆｌｇを受け、時間軸信号の遠端入力信号ｘ（ｎ）を周波数成分に変換するものである。
【０１５８】
また、周波数変換部３１ｓは、送信側の周波数変換部である。周波数変換部３１ｓは、音声検出器１２から音声ありを示すｖ＿ｆｌｇを受け、エコー信号ｙ（ｎ）を周波数成分に変換するものである。
【０１５９】
周波数選択部３２ｒは、受信側の周波数選択部である。周波数選択部３２ｒは、周波数変換部３１ｒにより変換された全周波数成分のうち、１個以上の予め定めた周波数成分を選択するものである。
【０１６０】
また、周波数選択部３２ｓは、送信側の周波数選択部である。周波数選択部３２ｓは、周波数変換部３１ｓにより変換された全周波数成分のうち、受信側の周波数選択部３２ｒが選択した周波数成分を選択するものである。
【０１６１】
パワー計算部３３ｒは、受信側のパワー計算部である。パワー計算部３３ｒは、周波数選択部３２ｒが選択した周波数成分のパワーを求めるものである。
【０１６２】
また、パワー計算部３３ｓは、周波数選択部３２ｓが選択した周波数成分のパワーを求めるものである。
【０１６３】
時間差計算部３４は、パワー計算部３３ｒが計算した受信側の各周波数成分の各フレームタイミング毎のパワー値に基づき各パワー値の長期平滑値を求めて、受信側の各周波数成分の立ち上がりを検出するものである。
【０１６４】
また、時間差計算部３４は、受信側と同様にして、パワー計算部３３ｓが計算した送信側の各周波数成分の各フレームタイミング毎のパワー値に基づき各パワー値の長期平滑値を求めて、送信側の各周波数成分の立ち上がりを検出するものである。
【０１６５】
さらに、時間差計算部３４は、受信側の各周波数成分の立ち上がり時刻と、送信側の各周波数成分の立ち上がり時刻とに基づいて、各周波数成分の受信側と送信側との立ち上がり時間差を求めるものである。
【０１６６】
周波数別時間差乖離判定部３５は、時間差計算部３４が求めた各周波数成分の立ち上がり時間差のばらつきの最大値を周波数成分毎に求めるものである。また、周波数別時間差乖離判定部３５は、各周波数成分の立ち上がり時間差の最大値が閾値以下であるか否かを判定し（すなわち、各周波数成分の立ち上がり時間差が所定範囲内であるか否かを判定し）、閾値以下である場合に、各周波数の時間差の中から最小の時間差を、エコーパスの初期遅延推定値として初期遅延量決定部３６に与えるものである。
【０１６７】
初期遅延量決定部３６は、周波数別時間差乖離判定部３５からの各周波数の初期遅延推定値を時間毎に複数個保持し、これら複数個の初期遅延推定値が予め定めた所定範囲内にあるときに、これらの中から最終的なエコーパスの初期遅延量を決定して、係数選択部２１に対して適応フィルタ１１のタップ開始点ｓｔを与えるものである。
【０１６８】
（Ｃ−２）第３の実施形態の動作
続いて、第３の実施形態のエコーキャンセラ１００Ｃにおける動作を図６及び図７を参照しながら詳細に説明する。以下では、第３の実施形態で特徴的な初期遅延推定部３０の動作を詳細に説明する。
【０１６９】
遠端話者から信号ｘ（ｎ）は、初期遅延推定部３０に入力される。一方で、初期遅延推定部３０には、送信入力端子Ｓｉｎ７からディジタル化された入力信号、すなわちエコー信号ｙ（ｎ）が入力される。また、初期遅延推定部３０には、音声検出器１２から音声検出を示すｖ＿ｆｌｇが入力される。
【０１７０】
初期遅延推定部３０は、上記の各信号の入力に基づき、エコーパスの初期遅延ｉｄを推定し、係数選択部２１に対してタップ開始点ｓｔ＝ｉｄとするための信号ｓｔを出力する。
【０１７１】
次に、図７を用いて、初期遅延推定部３０における詳細な処理を説明する。
【０１７２】
初期遅延推定部３０に入力した遠端入力信号ｘ（ｎ）は、一旦、分析窓長分のＪサンプルのデータとして受信側周波数変換部３１ｒに蓄積される。ここで、第３の実施形態では、例えば８サンプルのデータを蓄積する場合を例示する。
【０１７３】
受信側周波数変換部３１ｒは、音声検出器１２から「音声あり」を示す信号ｖ＿ｆｌｇ＝１を入力すると、時間軸信号を周波数成分に変換する。
【０１７４】
ここで、周波数の変換には、特に限定されるものでなく、広く適用することができ、例えば、公知の高速フーリエ変換（以後ＦＦＴ）を用いても良いし、あるいは急峻な特性をもつ帯域通過フィルタを帯域ごとに並べたフィルタバンクを用いるようにしても良い。第３の実施形態では、例えば、８点データのＦＦＴを用いた。第３の実施形態では、例えば、サンプリング周波数を８０００Ｈｚとしたので、ＦＦＴの結果、計算される周波数成分は１０００Ｈｚ〜８０００Ｈｚの１０００Ｈｚ刻みの周波数成分が求まる。ただし、実際には５０００〜８０００Ｈｚの成分は１０００〜４０００Ｈｚの成分を折り返したものとなる。
【０１７５】
いま、分析窓長をＪサンプルとすると計算される周波数成分もＪ個となる。実際には上記のように成分の半分は、中心周波数で折り返した残りの対と同じ値を示すので異なる処理をすればよいのはＪ／２個であるが、ここでは説明の簡単のため周波数成分はＪ個として以後説明を続ける。
【０１７６】
受信側周波数変換部３１ｒは、所定のＪサンプルごと、すなわち１フレームごとに、周波数変換を行い、信号ｘ（ｎ）（ｎ＝１〜Ｊ）を、成分Ｘ（ｆｎ）（ｎ＝１〜Ｊ）に変換して、受信側周波数選択部３２ｒに出力する。
【０１７７】
受信側周波数選択部３２ｒは、Ｘ（ｆｎ）のうち予め定めた方法で、いくつかの周波数成分を選択する。
【０１７８】
ここで、周波数成分の選択方法としては、例えば、音声成分が典型的に最も強く入手できることが多いｆ１＝１０００Ｈｚの成分Ｘ（ｆ１）と、副成分としてｆ３＝３０００Ｈｚの成分Ｘ（ｆ３）との２つの成分を選択するようにした。なお、ここでは選択数を２個としたが、選択数が２個に限定されないのはもちろんである。
【０１７９】
受信側周波数選択部３２ｒにより選択された周波数成分Ｘ（ｆｎ）は、受信側パワー計算部３３ｒに出力される。
【０１８０】
受信側パワー計算部３３ｒは、入力された１又は複数の周波数成分のパワーＦＰＯＷ（ｆｎ,Ｉ）を計算する。
【０１８１】
ここで、ｆｎは第ｎ周波数、Ｉは第Ｉフレームであることを表している。例えば、動作開始から１フレーム目の１０００Ｈｚの周波数成分であれば、そのパワーはＦＰＯＷ（ｆ１,１）のように表される。
【０１８２】
受信側パワー計算部３２ｒにより計算されたフレームタイミング毎のパワー値ＦＰＯＷ（ｆｎ,Ｉ）は、時間差計算部３４に与えられる。
【０１８３】
時間差計算部３４は、各パワー値ＦＰＯＷ（ｆｎ,Ｉ）の長期平滑値ＬＯＮＧ＿ＦＰＯＷ（ｆｎ,Ｉ）を式（２２）のようにそれぞれ計算する。
【０１８４】
ＬＯＮＧ＿ＦＰＯＷ（ｆｎ,Ｉ）
＝δ３０×ＬＯＮＧ＿ＦＰＯＷ（ｆｎ,Ｉ−１）
＋（１．０−δ３０）×ＦＰＯＷ（ｆｎ,Ｉ）  …（２２）
ここで、ＬＯＮＧ＿ＦＰＯＷ（ｆｎ、Ｉ）の初期値は０である。δ３０は、平滑の滑らかさを表す定数であり、０＜δ３０＜１．０を満たす定数である。δ３０は、大きければ平滑の度合いが滑らかになり、小さければＬＯＮＧ＿ＦＰＯＷ（ｆｎ,Ｉ）の値はＦＰＯＷ（ｆｎ，Ｉ）そのものに近くなり、平滑効果が小さくなる。第３の実施形態では、例えばδ３０＝０．９９を用いたが、この値に限定しない。
【０１８５】
そして、下記の条件３ａ、３ｂを満足するとき、
そのフレーム番号Ｉを受信側第ｎ周波数成分の立ち上がりフレーム番号Ｒ＿ＩＤ（ｆｎ）とし、ＲＦＤ＝１とする。
【０１８６】
（条件３ａ）
前回フレームはＲＦＤ＝０
（条件３ｂ）
今回フレームで
ＦＰＯＷ（ｆｎ,Ｉ）≧ＬＯＮＧ＿ＦＰＯＷ（ｆｎ,Ｉ）＋δ３１  …（２３）
条件３ａかつ条件３ｂでＲＦＤ＝１とする。
【０１８７】
このとき、立ち上がりフレーム番号Ｒ＿ＩＤ（ｆｎ）とする。
【０１８８】
ここで、δ３１は音声周波数成分検出の閾値であり、第３の実施形態では、δ３１＝１２（ｄＢ）を用いたが、これに限定しない。
【０１８９】
条件３ａは、一旦音声周波数成分が検出されてＲＦＤ＝１になれば、音声期間中はＬＯＮＧ＿ＦＰＯＷ（ｆｎ,Ｉ）がＦＰＯＷ（ｆｎ,Ｉ）に近い値まで大きくなってくるまでは成立しなくなる。従って、ＲＦＤは「ある周波数における急なパワーの立ち上がりの瞬間」を検出したフラグを表すことになる。
【０１９０】
第３の実施形態では、時間差検出部３４が、以上のように周波数パワーの立ち上がりタイミングフレーム番号Ｒ＿ＩＤ（ｆｎ）を検出するようにしたが、周波数パワーの立ち上がりタイミング検出はこの方法に限定せず、要は音声周波数成分の立ち上がりが検出できる方法であればどのような方法であってもよい。
【０１９１】
以上、受信側の周波数成分の立ち上がり検出を説明したが、時間差検出部３４は、送信側も同様に周波数パワーの立ち上がり検出を行う。
【０１９２】
すなわち、送信側周波数変換部３１ｓでは所定のＪサンプルフレームごとに周波数変換を行い、信号ｙ（ｎ）（ｎ＝１〜Ｊ）を成分Ｙ（ｆｎ）（ｎ＝１〜Ｊ）に変換して、送信側周波数選択部３２ｓに出力する。
【０１９３】
送信側周波数選択部３２ｓは、Ｙ（ｆｎ）のうち受信側と同じ周波数成分を必ず選択する。第３の実施形態では、ｆ１（１０００Ｈｚの成分）とｆ３（３０００Ｈｚの成分）を選択する。
【０１９４】
送信側周波数選択部３２ｓにより選択された周波数成分Ｙ（ｆｎ）は、送信側パワー計算部３３ｓに与えられ、送信側パワー計算部３３ｓは、パワーＦＰＯＷ＿ｓ（ｆｎ,Ｉ）を計算し、時間差計算部３４に与える。
【０１９５】
時間差計算部３４は、ＦＰＯＷ＿ｓ（ｆｎ,Ｉ）に関しても、受信側ＦＰＯＷ（ｆｎ,Ｉ）と同様にして、送信側第ｎ周波数成分立ち上がりフレーム番号Ｓ＿ＩＤ（ｆｎ）を求める。
【０１９６】
次に、時間差計算部３４は、各周波数成分でのＲ＿ＩＤ（ｆｎ）とＳ＿ＩＤ（ｆｎ）から、第ｎ周波数成分の立ち上がり時間差ｆｎ＿ｉｄを計算する。
【０１９７】
ｆｎ＿ｉｄ＝Ｓ＿Ｄ（ｆｎ）−Ｒ＿ＩＤ（ｆｎ）  …（２４）
例えば、第１周波数成分のたち上がり時間差ｆｌ＿ｉｄは式（２４−１）で計算できる。
【０１９８】
ｆｌ＿ｉｄ＝Ｓ＿ＩＤ（ｆ１）−Ｒ＿ＩＤ（ｆ１）  …（２４−１）
ここで、時間差ｆｌ＿ｉｄは、１０００Ｈｚ成分の成分が受信側から出力された後、送信側に回り込み始めたフレーム数が何個だったかを表す数となる。
【０１９９】
同様に残りの他の選択済み周波数成分に関しても式（２４）を行う。第３の実施形態では、成分ｆ１のほかに成分ｆ３に関しても、同様に式（２４）を実行する。
【０２００】
そして、時間差計算部３４は、選択された周波数毎の時間差ｆｎ＿ｉｄを、周波数別時間差乖離判定部３５に出力する。
【０２０１】
周波数別時間差乖離判定部３５は、各周波数成分ごとの時間差ｆｎ＿ｉｄのばらつきの最大値ＭＡＸ＿ＤＩＦ＿ｆｎ＿ｉｄを計算する。
【０２０２】
ここで、第３の実施形態は、例えば２個の周波数成分が用いられているので、式（２５）のようになるが、周波数の選択数を多くしたときは選択した周波数の分だけ式（２５）を計算するようにすればよい。
【０２０３】
ＭＡＸ＿ＤＩＦ＿ｆｎ＿ｉｄ（Ｋ）＝ＭＡＸ｛ｆ２＿ｉｄ−ｆ１＿ｉｄ｝  …（２５）
ここで、Ｋは、第Ｋ回目の最大値計算の結果であることを表している。また、ＭＡＸ｛｝は、最大値を計算する関数である。
【０２０４】
周波数別時間差乖離判定部３５は、ＭＡＸ＿ＤＩＦ＿ｆｎ＿ｉｄ（Ｋ）が式（２６）を満たすとき、ＭＡＸ＿ＤＩＦ＿ｆｎ＿ｉｄ（Ｋ）が初期遅延推定値の有力候補ｓｕｓｕｐ＿ｉｄ（Ｋ）であるとして初期遅延量決定部３６に出力する。なお、式（２６）を満足しないとき、周波数別時間差乖離判定部３５は初期遅延量決定部３６になにも出力しない。
【０２０５】
ＭＡＸ＿ＤＩＦ＿ｆｎ＿ｉｄ（Ｋ）≦δ３２  …（２６）
ここで、δ３２は、ばらつきフレーム数を許容する閾値であり、第３の実施形態では例えばδ３２＝１としたが、これに限定されない。
【０２０６】
本来、式（２４）は、音声信号がエコーパスを経由する時間が周波数にかかわらず一定であることを利用して、初期遅延の推定計算結果の確からしさを向上するものである。エコーパスを経由する時間は、スピーカ４とマイクロフォン５との間の距離と音速によって物理的に一意に定まる量である。
【０２０７】
一方、近端話者のエコーパスにはさまざまな雑音源が存在しており、エコーパスの初期遅延の計算を妨害する。例えば、初期遅延の推定計算の観点から言えば、近端話者の音声信号でさえエコーパス推定妨害雑音として作用する。
【０２０８】
しかしながら、一般にはエコーと近端話者側雑音が同一音声信号であることは非常にまれであるので、そのことをエコー経路の初期遅延推定に利用するのである。つまり、エコーパス測定する間、近端話者が話したり、例えばオフィスにある何かの装置が動きだしたりすることにとって、周波数ごとにエコーパスの初期遅延推定量に大きな違いがあれば、それはエコーパス初期遅延の推定が不適切な状態なことを意味する。そのときはエコーパス初期遅延の推定値を用いない。
【０２０９】
第３の実施形態では、上述したように、近端話者側雑音によってエコーパスの初期遅延推定計算が擾乱されることを防止している。
【０２１０】
初期遅延量決定部３６は、ｓｕｓｕｐ＿ｉｄ（Ｋ）を一旦複数個保持し、式（２７）のように、ｓｕｓｕｐ＿ｉｄ（Ｋ）のばらつきの最大値ＭＡＸ＿ＤＩＦ＿ｓｕｓｕｐ＿ｉｄ（Ｋ２）を計算する。なお、第３の実施形態では、保持の回数を２回としたが、この値に限定されない。
【０２１１】
ＭＡＸ＿ＤＩＦ＿ｓｕｓｕｐ＿ｉｄ（Ｋ２）
＝ＭＡＸ｛ｓｕｓｕｐ＿ｉｄ（Ｋ２）｝  …（２７）
ここで、Ｋ２は、Ｋ２回目の最大値計算の結果であることを表す。
【０２１２】
そして、ＭＡＸ＿ＤＩＦ＿ｓｕｓｕｐ＿ｉｄ（Ｋ２）が式（２８）を満足するとき、初期遅延量決定部２６は、以下のようにして、係数選択部２１に対してタップ開始点ｓｔを出力する。
【０２１３】
ＭＡＸ＿ＤＩＦ＿ｓｕｓｕｐ＿ｉｄ（Ｋ２）≦δ３３  …（２８）
ここで、δ３３は、検出値のばらつきを許容する閾値であり、第３の実施形態ではδ３２＝１としたがこれに限定されるものではない。
【０２１４】
初期遅延量決定部３６は、最も小さい時間差を表す式（２４）の時間差ｆｎ＿ｉｄ、すなわち、フレーム数の差を式（２９）のようにサンプル差に変換して、タップ係数開始点ｓｔを係数選択部２１に出力する。
【０２１５】
ｓｔ＝Ｊ×（ＭＩＮ｛ｆｎ＿ｉｄ｝−δ３４）  …（２９）
ここで、δ３４はマージンフレーム数を表し、Ｊはフレームのサンプル数を表す。第３の実施形態では、例えば、δ３４＝０としてマージン設定したが、例えば、フレーム長が大きいときや、音声信号にノイズが多いことが予めわかっているときにはδ３４に適宜マージンフレーム数を設定するようにしても良い。
【０２１６】
初期遅延量決定部３６が式（２８）で複数の候補でばらつきを計算するのは、エコーパス初期遅延の推定値の確からしさを向上するためである。式（２６）では各周波数別に遅延の推定量が一致することを確認したが、式（２８）では時間別に複数回での実行した計算結果が一致することを確認して一層エコーパス初期遅延推定計算結果の確からしさを向上するものである。
【０２１７】
初期遅延量決定部３６は、式（２９）によって計算されるｓｔが求まらないうちはｓｔ＝０を係数選択部２１に出力し、一旦式（２９）式によってｓｔが計算されたときはその値を係数選択部２１に出力する。
【０２１８】
係数選択部２１は、第２の実施形態で説明したようにｓｔをタップ係数開始サンプル点として動作し、あとは第２の実施例で説明したと同じように動作する。
【０２１９】
一方、初期遅延推定部３０がエコー消去量計算器２０からリセット信号ｓｐａｎ−ｒｅｓｅｔを入力されたときは、初期遅延推定部３０はすべての内部状態を初期状態にリセットし、第３の実施形態で説明した動作を最初から行うこととする。
【０２２０】
（Ｃ−３）第３の実施形態の効果
上記のように、第３の実施形態によれば、第２の実施形態の効果に加え、近端話者の位置変化ではなく、エコー経路の初期遅延自体が変わるような場合にも対応できるようになる。
【０２２１】
また、第３の実施形態によれば、装置のスピーカ４とマイクロフォン５との間の距離が一定でなく、しばしば変化する装置、例えばスピーカ４やマイクロフォン５とが電気コードとジャックで装置本体と接続されるような形式の装置であっても、無駄なくフィルタの係数タップを設定することで、余分な動作エネルギーを節約できると共に、エコーキャンセラの追従動作を速くし、しかもエコー消去性能の劣化が発生しないエコーキャンセラを提供できる。
【０２２２】
（Ｄ）第４の実施形態
次に、本発明のエコーキャンセラの第４の実施形態を図面を参照しながら説明する。
【０２２３】
（Ｄ−１）第４の実施形態の構成
図８は、第４の実施形態のエコーキャンセラ１００Ｄの構成を示すブロック図である。
【０２２４】
第４の実施形態が、第３の実施形態と異なる点は、初期遅延推定部３０に代えて初期遅延及びエコー状態判定部４０を備えること、打ち消し加算器９と送信入力端子Ｓｉｎ７との間にスイッチ４８を備えること、スイッチ４８と初期遅延及びエコー状態判定部４０の間に省力優先判定部４９を備える点である。それ以外の構成要素は、第３の実施形態と同じであるので改めて説明はしない。
【０２２５】
初期遅延及びエコー状態判定部４０は、第３の実施形態と同様に初期遅延量を推定すると共に、次の処理を行うものである。
【０２２６】
初期遅延及びエコー状態判定部４０は、音声検出器１２から音声ありを示すｖ＿ｆｌｇ＝１を受け、遠端入力信号ｘ（ｎ）及び送信入力信号ｙ（ｎ）が入力すると、遠端入力信号ｘ（ｎ）の大きさと送信入力信号ｙ（ｎ）の大きさとに基づいて、エコー経路の信号減衰量であるエコーロスを計算し、当該エコーロスが閾値よりも大きい場合に、省電力優先判定部４９にエコーキャンセラ停止信号を出力するものである。
【０２２７】
また、初期遅延及びエコー状態判定部４０は、音声検出器１２から音声ありを示すｖ＿ｆｌｇ＝１を受け、送信入力信号ｙ（ｎ）が入力すると、音声検出器１２の音声検出期間での、エコー信号の大きさと背景ノイズの大きさの比又は差分を計算し、その計算結果が閾値を超えたときに、省電力優先判定部４９にエコーキャンセラ停止信号を出力するものである。
【０２２８】
スイッチ４８は、初期状態では端子ａに接続し、省電力優先判定部４９からの切替指示により端子ｂに切り替えるものである。
【０２２９】
省電力優先判定部４９は、後述するエコーロス計算部４３又はキャンセル有効判定部４６からエコーキャンセラ停止信号を受信すると、スイッチ４８に対して切替指示を行うものである。
【０２３０】
図９は、初期遅延及びエコー状態判定部４０の詳細な構成を示すブロック図である。
【０２３１】
図９において、初期遅延及びエコー状態判定部４０は、周波数変換部３１ｒ、周波数選択部４２ｒ、パワー計算部３３ｒ、時間差計算部３４、周波数別時間差乖離判定部３５、初期遅延量決定部３６、周波数変換部４１、周波数選択部４２ｓ、パワー計算部３３ｓ、エコーロス計算部４３、エコー／ノイズ比計算部４４、キャンセル有効判定部４６を少なくとも有する。
【０２３２】
図９において、図７に示す初期遅延推定部３０の内部構成と異なるのは、周波数変換部４１、周波数選択部４２ｒ、周波数選択部４２ｓ、エコーロス計算部４３、エコー／ノイズ比計算部４４、キャンセル有効判定部４６であり、それ以外の構成要素は図７の第３の実施形態の構成要素と同じである。
【０２３３】
周波数変換部４１は、送信側の周波数変換部であり、エコー信号ｙ（ｎ）を周波数成分に変換するものである。周波数変換部４１は、音声検出器１２から音声検出信号の入力がない点で、図７の送信側の周波数変換部３１ｓと異なる。
【０２３４】
エコーロス計算部４３は、音声検出器１２から音声ありを示す音声検出信号ｖ＿ｆｌｇ＝１を受け、音声ありのときの遠端入力信号ｘ（ｎ）のパワー、と送信入力信号ｙ（ｎ）のパワーとに基づいて、計算時刻ｎでの音響エコー経路の信号減衰量（エコーロス）を求め、そのエコーロスが閾値を越えたとき、エコーキャンセラ処理を不要な環境と判定し、エコーキャンセラ１００Ｄの動作を停止させるエコーキャンセラ停止信号を、省力優先判定部４９に出力するものである。
【０２３５】
エコー／ノイズ比計算部４４は、音声検出器１２の音声検出信号に基づき、音声ありを示すｖ＿ｆｌｇ＝１がないときの近端入力信号の大きさをノイズの大きさとし、音声ありを示すｖ＿ｆｌｇ＝１があるときの近端入力信号の大きさをエコー信号の大きさとし、エコー信号の大きさとノイズの大きさとの比を計算し、このエコー／ノイズ比と閾値との比較により、閾値を超えたとき、エコー／ノイズ比を周波数選択部４２ｓに出力するものである。
【０２３６】
周波数選択部４２ｓは、エコー／ノイズ比計算部４４から閾値を超えたエコー／ノイズ比を受け取ると、エコー信号の大きさが大きいものから所定数選択して、その選択した周波数をキャンセル有効判定部４６に与えるものである。
【０２３７】
周波数選択部４２ｒは、周波数変換部３１ｒからの周波数成分のうち、周波数選択部４２ｓが選択した周波数成分を選択して、パワー計算部３３ｒに与えるものである。
【０２３８】
キャンセル有効判定部４６は、周波数選択部４２ｓが選択した周波数の個数に応じて、エコーキャンセラ１００Ｄの動作をキャンセルさせるか否かを判定し、エコーキャンセラ１００ｄを動作させてもエコーと区別できないほど、近端ノイズが多い場合には、エコーキャンセラ１００Ｄの動作を停止させるエコーキャンセラ停止信号を、省力優先判定部４９に出力するものである。
【０２３９】
（Ｄ−２）第４の実施形態の動作
次に、第４の実施形態のエコーキャンセラ１００Ｄにおける動作を図８及び図９を参照しながら詳細に説明する。
【０２４０】
以下では、第３の実施形態と異なる第４の実施形態の構成要素の動作を中心に説明する。また、第１〜第３の実施形態の同じ番号が付与した構成要素の動作は、第１〜第３の実施形態の動作と同じであるのでここでは説明しない。ただし、音声検出部１２のように内部動作は変わらないが出力信号を分岐して第４の実施形態の新しい構成要素に入力するような場合に関しては適宜説明を加える。
【０２４１】
図８において、初期状態において、スイッチ４８は端子ａに接続している。
【０２４２】
遠端入力信号ｘ（ｎ）は、初期遅延及びエコー状態判定部４０に入力される。一方で、初期遅延及びエコー状態判定部４０は、音声検出器１２からの音声検出信号ｖ＿ｆｌｇ、エコー消去量計算器２０からの出力ｓｐａｎ＿ｒｅｓｅｔ、送信入力端子Ｓｉｎ７からの入力信号ｙ（ｎ）が入力されている。
【０２４３】
図９を用いて初期遅延及びエコー状態判定部４０の動作を説明する。
【０２４４】
遠端からの遠端入力信号ｘ（ｎ）は、受信側周波数変換部３１ｒとエコーロス計算部４３とに入力される。なお、受信側周波数変換部３１ｒの動作は第３の実施形態と同様である。
【０２４５】
エコーロス計算部４３は、遠端入力信号ｘ（ｎ）の他に、送信入力端子Ｓｉｎ７からエコー信号ｙ（ｎ）と、音声検出器１２から音声検出信号ｖ＿ｆｌｇとが入力される。エコーロス計算部４３は、以下のようにして、省電力動作移行処理を行う。
【０２４６】
エコーロス計算部４３は、音声検出器１２から音声ありを示すｖ＿ｆｌｇ＝１が入力されると、遠端入力信号ｘ（ｎ）のパワー時間平均値ｘ＿ａｖｅｌ（ｎ）とエコーのパワー時間平均値ｙ＿ａｖｅｌ（ｎ）を式（３０）、式（３１）のように計算する。
【０２４７】
ｘ＿ａｖｅｌ（ｎ）
＝δ４０×ｘ２（ｎ）＋（１．０−δ４０）×ｘ＿ａｖｅｌ（ｎ）  …（３０）
ｙ＿ａｖｅｌ（ｎ）
＝δ４０×ｙ２（ｎ）＋（１．０−δ４０）×ｙ＿ａｖｅｌ（ｎ）  …（３１）
ここで、δ４０は、０＜δ４０＜１．０の条件を満足する定数である。また、δ４０は、信号の平均の長さを制御する平滑定数であって、δ４０が大きければ雑音の影響を受けやすいが音声パワーの変動には追従性が良く、小さければ雑音の影響は受けにくいが音声パワーへの変動の追従が遅くなる。第３の実施形態では、比較的ゆっくりした信号の要素でエコーロスを計算するのが望ましいので、例えばδ４０＝０．００１としたが、この値に限定されない。また、第４の実施形態の式（３０）、式（３１）では、パワーの平均値を計算したが、信号の絶対値を計算するようにしてもよい。
【０２４８】
次に、エコーロス計算部４３は、式（３２）のようにして、エコーロス量ＡＥＣＨＯ（ｎ）を計算する。
【０２４９】
ＡＥＣＨＯ（ｎ）
＝１０ＬＯＧ１０（ｘ＿ａｖｅｌ（ｎ）／ｙ＿ａｖｅｌ（ｎ））  （ｄＢ）  …（３２）
そして、エコーロス計算部４３は、計算したエコーロス量ＡＥＣＨＯ（ｎ）を予め定めた閾値δ４１と比較して、式（３３）が成立するときに省力優先判定部４９にエコーキャンセラ停止信号Ｐ＿ＳＡＶＥ＝１を出力する。
【０２５０】
ＡＥＣＨＯ（ｎ）≧δ４１  …（３３）
ここで、第４の実施形態実施例では、閾値δ４１＝４０（ｄＢ）としたが、これに限定しない。これは、下記のような事情に鑑みたものである。
【０２５１】
例えば、電話などでは伝送路中の信号レベルは国際通信規格ＩＴＵ−Ｔ  Ｇ．７１１で規定される音声レベルである、−２０ｄＢｍレベル近辺に調整されることが多い。このとき、エコーパスで４０ｄＢものエコーロスが確保された場合、遠端話者には会話に支障になるほどのエコーは回り込まない。むしろこのような場合にエコーキャンセラを動作させても、近端話者信号をエコーと誤判定してキャンセルする危険のほうが大きいことがしばしばである。従って、このようなときはむしろ消費電力を節約することを重視し、エコーキャンセラの動作を停止するのである。
【０２５２】
省力優先判定部４９は、後述するキャンセル有効判定部４６からもエコーキャンセラ停止信号Ｐ＿ＳＡＶＥが入力される。省力優先判定部４９は、エコーロス計算部４３とキャンセル有効判定部４６のいずれか一方から、エコーキャンセラ停止信号Ｐ＿ＳＡＶＥ＝１が入力されたときには、スイッチ４８の端子をｂに切り替えるとともに、図示しないエコーキャンセラの内部状態をすべてリセットしてエコーキャンセラの動作を停止する。なお、キャンセル有効判定部４６の動作は後述する。
【０２５３】
一方、遠端入力信号ｘ（ｎ）は受信側周波数変換部３１ｒで周波数軸へ変換された後、受信側周波数選択部４２ｒに入力される。
【０２５４】
受信側周波数選択部４２ｒは、独自の周波数成分の選択を行わず、後述する送信側周波数選択部４２ｓの周波数選択に従う点が第３の実施形態と異なっている。
【０２５５】
次に、送信側周波数選択部４２ｓまでの動作を順に説明する。送信入力信号ｙ（ｎ）は送信側周波数変換部４１に入力される。
【０２５６】
送信側周波数変換部４１は、第３の実施形態の送信側周波数変換部３１ｓと異なり、音声検出器１２の音声検出信号の如何にかかわらず、時間軸信号ｙ（ｎ）を周波数軸Ｙ（ｆｎ）に変換して、エコー／ノイズ比計算部４４に出力する。
【０２５７】
ここで、第４の実施形態では、周波数変換部４１として例えば８点ＦＦＴを用いたので、８個の周波数成分がエコー／ノイズ比計算部４４に出力される。しかし、その周波数成分の個数は特に限定されない。
【０２５８】
エコー／ノイズ比計算部４４は、送信側周波数変換部４１により変換された周波数成分を受け、以下に述べるように、ノイズレベル（背景ノイズレベル）と、エコーのレベルとの比を計算する。
【０２５９】
また、エコー／ノイズ比計算部４４には、音声検出部１２からの音声検出信号ｖ＿ｆｌｇが入力されているが、エコー／ノイズ比計算部４４は、常時Ｙ（ｆｎ）の大きさ｜Ｙ（ｆｎ）｜を計算する。
【０２６０】
ここで、ｖ＿ｆｌｇ＝１の用途は次のようである。
【０２６１】
音声検出器１２から音声ありを示すｖ＿ｆｌｇ＝１が入力されていないタイミング（すなわちｖ＿ｆｌｇ＝０のタイミング）で計算された周波数成分の大きさ、｜Ｙ（ｆｎ）｜ｖ＿ｆｌｇ０を直近のノイズレベルとする。
【０２６２】
一方、音声検出器１２から音声ありを示すｖ＿ｆｌｇ＝１が入力されたタイミングで計算された周波数成分の大きさ、｜Ｙ（ｆｎ）｜ｖ＿ｆｌｇ１を直近のエコー信号レベルとする。
【０２６３】
ここで、エコー／ノイズ比計算部４４は、エコー周波数成分の大きさの計算に、ｖ＿ｆｌｇ＝１を用いるのは、エコー源信号の有無を利用することによる。
【０２６４】
第４の実施形態では、さらに、エコーによる初期遅延の影響があることから、｜Ｙ（ｆｎ）｜ｖ＿ｆｌｇ０、｜Ｙ（ｆｎ）｜ｖ＿ｆｌｇ１を予め定めた個数（第４の実施形態では例えば１０個だがこれに限定しない）集めて、その平均を各々以下のようにする。なお、時間軸の平均で説明したような平滑方法を用いるようにしても良い。
【０２６５】
ＡＶＬ＿｜Ｙ（ｆｎ）｜ｖ＿ｆｌｇ０  …（３４）
ＡＶＬ＿｜Ｙ（ｆｎ）｜ｖ＿ｆｌｇ１  …（３５）
そして、エコ／ノイズ比計算部４４は、式（３６）のようにして、エコーとノイズの大きさの比を計算する。
【０２６６】
Ｒ＿ＥＮ（ｆｎ）＝
20LOG１０（AVL_｜Y(fn)｜v_flg0／AVL_｜Y(fn)｜v_flg１）…（３６）
ここで、ｎ＝１…Ｊ  であり、第４の実施形態では、例えばｎ＝８である。
【０２６７】
そして、エコー／ノイズ比計算部４４は、送信側周波数変換部４１から入力されたＪ個の周波数成分の値Ｙ（ｆｎ）と、式（３６）で計算したＪ個のエコー／ノイズ比Ｒ＿ＥＮ（ｆｎ）とを、送信側周波数選択部４２ｓに出力する。
【０２６８】
送信側周波数選択部４２ｓは、まず式（３７）を満足する周波数を、Ｙｓｕｓｕｐ（ｆｎ）として選別する。
【０２６９】
Ｒ＿ＥＮ（ｆｎ）≧δ４２  …（３７）
ここで、閾値δ４２は、例えば３ｄＢを用いたが、これに限定しない。
【０２７０】
そして、送信側周波数選択部４２ｓは、Ｙｓｕｓｕｐ（ｆｎ）のうち、｜Ｙ（ｆｎ）｜ｖ＿ｆｌｇ１の値が大きい方から、予め定めたＩ個（第４の実施形態では、例えば２個）を選択し、その選択個数と選択した周波数ｆｎをキャンセル有効判定部４６に出力する。
【０２７１】
また、送信側周波数選択部４２ｓは、Ｙｓｕｓｕｐ（ｆｎ）が予め定めた個数Ｉに満たないときは、式（３７）を満たした個数だけの周波数成分と、選択個数Ｉをキャンセル有効判定部４６に出力する。
【０２７２】
キャンセル有効判定部４６は、送信側周波数選択部４２ｓからの入力ＩがＩ＞０のときは、選択個数Ｉと選択された周波数ｆｎを、受信側周波数選択部４２ｒに出力する。
【０２７３】
受信側周波数選択部４２ｒは、キャンセル有効判定部４６から入力されたＩ個の周波数成分ｆｎを自己の選択周波数成分として動作する。
【０２７４】
また、キャンセル有効判定部４６は、送信側周波数選択部４２ｓからの入力ＩがＩ＝０であるときは、下記のように動作する。
【０２７５】
Ｉ＝０は、すべての周波数成分でノイズに比べてエコー信号ｙ（ｎ）が小さい、すなわちエコーがノイズに埋もれて観測できないことを示している。第１の実施形態で説明したように、適応フィルタ１１は、エコーがノイズに埋もれていては有効なタップ係数更新ができないから、適応フィルタを動作させても実際には意味がなく、無駄である。
【０２７６】
そこで、キャンセル有効判定部４６は、Ｉ＝０のとき、省力優先判定部４９に対して、エコーキャンセラ停止信号Ｐ＿ＳＡＶＥ＝１を出力する。
【０２７７】
省力優先判定部４９は、上述したようにエコーロス計算部４３又はキャンセル有効判定部４６のいずれか一方から、エコーキャンセラ停止信号Ｐ＿ＳＡＶＥ＝１が入力されたとき、スイッチ４８を端子ｂに接続して送信信号を透過させるとともに、エコーキャンセラ１００Ｄ全体の内部状態をリセットし動作を停止する。
【０２７８】
（Ｄ−３）第４の実施形態の効果
以上のように、第４の実施形態は、新たに省力優先判定部４９及びスイッチ４８を備え、エコーロス計算部４３が、エコーロスを計算して、エコーキャンセラがなくても十分エコーが小さいことを検出し、エコー／ノイズ比計算部４４が近端ノイズとエコーの信号パワー比を検出し、キャンセル有効判定部４６が、たとえエコーキャンセラを動作させてもエコーと区別できないほど、近端ノイズが多い環境であることを検出し、エコーロス計算部４３又はキャンセル有効判定部４６が、省力優先判定部４９に対してエコーキャンセラの停止とリセット、さらに送信信号透過スイッチの切り替えを促す信号Ｐ＿ＳＡＶＥを出力するようにしたので、エコーキャンセラを動作させなくても十分にエコーが小さく実害にならない場合や、逆エコーとノイズが同レベルなのでエコー除去による音質の向上が期待できないような場合、無駄にエコーキャンセラを動作させないで、通話におけるエコーの影響変化させることなく、消費電力を省くことが可能なエコーキャンセラを提供できるのである。
【０２７９】
（Ｅ）他の実施形態
第１〜第４の実施形態において、エコーキャンセラ１００Ａ〜１００Ｄには一般に適応フィルタ１１の係数更新と停止の制御を行うため、図示しない双方向通話検出器が用いられ、送信信号と遠端話者からの受信信号の両方がある、いわゆるダブルトーク状態では適応フィルタの適応動作を停止し、また、双方向通話検出器は、近端話者信号だけがある送信状態と、遠端話者の信号も近端話者の信号もない無音状態の時には、係数更新と擬似エコー作成動作の両方をとめるようにするこことが公知であるが、第１〜第４の実施形態にも上記の公知の双方向通話検出器を用いて同様の制御を加えるようにするようにてもよいのはもちろんである。
【０２８０】
第４の実施形態において、エコー／ノイズ比計算部４４に音声検出器１２から音声ありの音声検出信号ｖ＿ｆｌｇｖ＿ｆｌｇ＝１が入力されていないタイミングで計算された周波数成分の大きさ
｜Ｙ（ｆｎ）｜ｖ＿ｆｌｇ０をノイズレベルとするようにしたが、
音声検出器１２からの音声検出フラグを用いず、送信側周波数変換部４１で計算した成分のうち最小の周波数成分の大きさをノイズレベルとして用いるようにしてもよい。
【０２８１】
これは、人間音声は調波構造を持つので、実際には周波数成分が局所的に小さい部分が点在することを利用したものであり、このようにすると、ＶＡＤ１２からの音声検出フラグとパワー計算の連携を考慮する必要がなくなるため、装置の構成／動作を簡略化でき、ソフトウェアの規模、装置の規模を小さくすることができ、一層の省電力化を促すことができる。
【０２８２】
さらに、第４の実施形態では、例えば８ｋＨｚをサンプリング周期としたが、サンプリング周波数がもっと大きい場合、例えば１６１ｋＨｚ以上のサンプリング周波数を用いる場合などは、音声検出器１２との連携をやめるだけでなく、固定的に周波数成分の高い成分のうち、例えば予め定めた成分（例えば７ＫＨｚ成分）の大きさをノイズレベルとして用いるようにしてもよい。
【０２８３】
これは、一般に人間音声の周波数スペクトルが高周波数になるにつれて小さくなるという公知の事実を用いたものであり、特に高周波数成分が小さいような音声（例えば日本語音声など）では本方法を用いることで、周波数選択の機構をより簡単にできるので更にハード、ソフトの小規模化と、装置の動作エネルギーの節約を行うことができる。
【符号の説明】
【０２８４】
１００Ａ〜１００Ｄ…エコーキャンセラ、
１…受信入力端子、２…受信出力端子、３…ディジタル／アナログ変換器（Ｄ／Ａ）、
４…スピーカ、５…マイクロフォン、６…アナログ／ディジタル変換器（Ａ／Ｄ）、
７…送信入力端子、８…送信出力端子、９…打ち消し加算器、１０、２１…係数選択部、
１１…適応フィルタ、１２…音声検出器（ＶＡＤ）、１３、２０…エコー消去量計算器、
３０…初期遅延推定部、４０…初期遅延及びエコー状態判定部、４８…スイッチ、
４９…省力優先判定部、
１１ａ…タップ係数部、１１ｂ…積和演算部、１１ｃ…保持レジスタ、
１１ｄ…係数更新部、
３１ｒ…周波数変換部、３２ｒ、４２ｒ…周波数選択部、３３ｒ…パワー計算部、
３１ｓ、４１…周波数変換部、３２ｓ、４２…周波数選択部、３３ｓ…パワー計算部、
３４…時間差計算部、３５…周波数別時間差乖離判定部、３６…初期遅延量決定部、
４３…エコーロス計算部、４４…エコー／ノイズ比計算部、
４６…キャンセル有効判定部。
【図１】
2011061449.tif 000009
【図２】
2011061449.tif 000010
【図３】
2011061449.tif 000011
【図４】
2011061449.tif 000012
【図５】
2011061449.tif 000013
【図６】
2011061449.tif 000014
【図７】
2011061449.tif 000015
【図８】
2011061449.tif 000016
【図９】
2011061449.tif 000017