(57)【特許請求の範囲】
【請求項１】
遠端側から到来した入力遠端音声信号を蓄積するバッファメモリと、
前記バッファメモリに蓄積された前記入力遠端音声信号を設定バッファ遅延量だけ遅延させて出力せしめるバッファメモリ制御部と、
前記入力遠端音声信号に基づいて擬似エコー信号を生成する擬似エコー生成部と、
近端側から入力された入力近端音声信号の信号成分から前記擬似エコー信号の信号成分を減算して得られたエコー減衰音声信号を前記遠端側に向けて出力する減算部と、を含むエコーキャンセラ装置であって、
前記入力近端音声信号の信号成分の大きさと前記エコー減衰音声信号の信号成分の大きさとの差分を時間の経過と共に繰り返してエコー減衰量として算出するエコー減衰量算出部を更に含み、
前記バッファメモリ制御部は、前記エコー減衰量の長期間に亘る平均値を長期平均減衰量とし前記長期間よりも短い短期間に亘る平均値を短期平均減衰量として算出し、前記長期平均減衰量が前記短期平均減衰量以下である場合に前記設定バッファ遅延量を増加させ、前記短期平均減衰量が前記長期平均減衰量よりも小さい場合に前記設定バッファ遅延量を減少させることを特徴とするエコーキャンセラ装置。
【請求項２】
前記バッファメモリ制御部は、前記長期間の長さ及び前記短期間の長さのうちの少なくとも一方を変更自在であることを特徴とする請求項１に記載のエコーキャンセラ装置。
【請求項３】
前記擬似エコー生成部は適応フィルタであり、前記適応フィルタのタップ係数のいずれかが所定閾値以下となった時点以降においては前記擬似エコー信号を生成しないことを特徴とする請求項１又は２に記載のエコーキャンセラ装置。
【請求項４】
前記タップ係数のいずれかが最大値となる時点に応じて、前記バッファメモリ制御部による設定バッファ遅延量の増加、及び前記擬似エコー生成部による前記擬似エコー信号の非生成の少なくともいずれか一方を実行することを特徴とする請求項３に記載のエコーキャンセラ装置。
【請求項５】
前記バッファメモリ制御部は、前記設定バッファ遅延量を周期的に変更し、１の周期における前記設定バッファ遅延量の変更量に基づいて次周期における前記設定バッファ遅延量の変更量を決定することを特徴とする請求項１乃至４のいずれか１に記載のエコーキャンセラ装置。
【請求項６】
前記エコー減衰量算出部は、前記エコー減衰量を周期的に算出し、
前記バッファメモリ制御部は、１の周期における前記エコー減衰量から次周期における前記エコー減衰量への変化率に基づいて前記設定バッファ遅延量の変更量を決定することを特徴とする請求項１乃至４のいずれか１に記載のエコーキャンセラ装置。
【請求項７】
遠端側から到来した入力遠端音声信号を蓄積する蓄積ステップと、
当該蓄積された前記入力遠端音声信号を設定バッファ遅延量だけ遅延させて遅延音声信号として出力せしめる制御ステップと、
前記遅延音声信号に基づいて擬似エコー信号を生成する擬似エコー生成ステップと、
近端側から入力された入力近端音声信号の信号成分から前記擬似エコー信号の信号成分を減算して得られたエコー減衰音声信号を前記遠端側に向けて出力する減算ステップと、を含むエコーキャンセル方法であって、
前記入力近端音声信号の信号成分の大きさと前記エコー減衰音声信号の信号成分の大きさとの差分をエコー減衰量として算出するエコー減衰量算出ステップを更に含み、
前記制御ステップにおいては、前記エコー減衰量の長期間に亘る平均値と前記長期間よりも短い短期間に亘る平均値とを長期平均減衰量と短期平均減衰量として算出し、前記長期平均減衰量が前記短期平均減衰量以下である場合に前記設定バッファ遅延量を増加させ、前記短期平均減衰量が前記長期平均減衰量よりも小さい場合に前記設定バッファ遅延量を減少させることを特徴とするエコーキャンセル方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば電話機等の装置に用いられるエコーキャンセラ装置及びエコーキャンセル方法に関する。
【背景技術】
【０００２】
従来より、例えば電話機等の装置においてスピーカから放音された音声がエコーとしてマイクロフォンに入力されて相手側に伝達されることを防止するエコーキャンセラ装置が知られている。エコーキャンセラ装置においては、一般に、エコー成分を除去するための演算量を削減したいという要求がある。例えば、特許文献１には、バッファメモリを用いて入力信号を、エコー信号が有する固定遅延時間と同等の時間だけ遅延させて、当該エコー信号が有する固定遅延時間をエコー成分除去のための演算の対象外とすることにより、当該演算量を減らす技術が開示されている。また、特許文献２には、擬似エコー信号を生成するための適応フィルタのタップ数を、当該適応フィルタが保持する全タップ係数のパワー総和等に基づいて当該タップ数を変更することにより、当該演算量を減らす技術が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平４−１７７９２２号公報
【特許文献２】特開２０１１−６１４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に開示されている技術の場合、入力信号に与えるべき遅延時間を外部からエコーキャンセラに供給していることから、遅延時間を動的に変更することができず、エコーの遅延時間がバッファメモリの遅延時間以下に変化した場合にエコー成分を除去できないという問題があった。また、特許文献２に開示されている技術の場合、適応フィルタが保持する全タップ係数のパワー総和の他に、部分パワー及びこれらのパワーの比も求め、更にエコー成分の除去量と当該パワー比とに基づいて擬似エコー信号を生成する際に用いるタップ数を算出するといった多くの演算を行うので演算量を減らす効果について疑義がある。特に、エコーの状態が変化し易い状況下においては、変化の都度、多くの演算により用いるタップ数を求めなければならず、演算量が多くなってしまう。また、エコー減衰量が所定条件より悪化した場合にタップ数を算出するので、エコー状態の変化に応じたタップ数を適宜決定することができるとは限らない。
【０００５】
本発明は上記した如き問題点に鑑みてなされたものであって、エコー状態が変化しやすい状況下においても、エコーキャンセルのための演算量を低く抑えつつ好適なエコーキャンセル処理を行なうことができるエコーキャンセラ装置及びエコーキャンセル方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明によるエコーキャンセラ装置は、遠端側から到来した入力遠端音声信号を蓄積するバッファメモリと、前記バッファメモリに蓄積された前記入力遠端音声信号を設定バッファ遅延量だけ遅延させて出力せしめるバッファメモリ制御部と、前記入力遠端音声信号に基づいて擬似エコー信号を生成する擬似エコー生成部と、近端側から入力された入力近端音声信号の信号成分から前記擬似エコー信号の信号成分を減算して得られたエコー減衰音声信号を前記遠端側に向けて出力する減算部と、を含むエコーキャンセラ装置であって、前記入力近端音声信号の信号成分の大きさと前記エコー減衰音声信号の信号成分の大きさとの差分を時間の経過と共に繰り返してエコー減衰量として算出するエコー減衰量算出部を更に含み、前記バッファメモリ制御部は、前記エコー減衰量の長期間に亘る平均値を長期平均減衰量とし前記長期間よりも短い短期間に亘る平均値を短期平均減衰量として算出し、前記長期平均減衰量が前記短期平均減衰量以下である場合に前記設定バッファ遅延量を増加させ、前記短期平均減衰量が前記長期平均減衰量よりも小さい場合に前記設定バッファ遅延量を減少させることを特徴とする。
【０００７】
本発明によるエコーキャンセル方法は、遠端側から到来した入力遠端音声信号を蓄積する蓄積ステップと、当該蓄積された前記入力遠端音声信号を設定バッファ遅延量だけ遅延させて遅延音声信号として出力せしめる制御ステップと、前記遅延音声信号に基づいて擬似エコー信号を生成する擬似エコー生成ステップと、近端側から入力された入力近端音声信号の信号成分から前記擬似エコー信号の信号成分を減算して得られたエコー減衰音声信号を前記遠端側に向けて出力する減算ステップと、を含むエコーキャンセル方法であって、前記入力近端音声信号の信号成分の大きさと前記エコー減衰音声信号の信号成分の大きさとの差分をエコー減衰量として算出するエコー減衰量算出ステップを更に含み、前記制御ステップにおいては、前記エコー減衰量の長期間に亘る平均値と前記長期間よりも短い短期間に亘る平均値とを長期平均減衰量と短期平均減衰量として算出し、前記長期平均減衰量が前記短期平均減衰量以下である場合に前記設定バッファ遅延量を増加させ、前記短期平均減衰量が前記長期平均減衰量よりも小さい場合に前記設定バッファ遅延量を減少させることを特徴とする。
【発明の効果】
【０００８】
本発明によるエコーキャンセラ装置及びエコーキャンセル方法によれば、エコー状態が変化しやすい状況下においても、エコーキャンセルのための演算量を低く抑えつつ好適なエコーキャンセル処理を行なうことができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の第１の実施例であるエコーキャンセラ装置の構成を示すブロック図である。
【図２】図１の擬似エコー生成部が有するフィルタの構成の一例を示す図である。
【図３】図１の有用タップ区間判定部によって設定されたタップ係数を示すタイムチャートである。
【図４】図１のバッファメモリ制御部による遅延量調整処理ルーチンを示すフローチャートである。
【図５】図１のバッファメモリ制御部によって算出された、エコー減衰量の平均値を示すタイムチャートである。
【図６】本発明の第２の実施例における擬似エコー生成部によって設定されたタップ係数を示すタイムチャートである。
【発明を実施するための形態】
【００１０】
以下、本発明に係る実施例について添付の図面を参照しつつ詳細に説明する。
【００１１】
＜第１の実施例＞
以下、図１を参照しつつ、本発明の第１の実施例であるエコーキャンセラ装置１０の構成について説明する。エコーキャンセラ装置１０は、例えば、スピーカ２０から放音された音声がエコー４０としてマイクロフォン３０に入力されて相手側に伝達されることを防止するために電話機等の装置に搭載され得る。
【００１２】
バッファメモリ１１は、例えば通話相手端末（図示せず）等の遠端側から到来した音声信号（以下、入力遠端音声信号と称する）をデータ化して一時的に順次蓄積すると共に、当該蓄積した音声信号を、バッファメモリ制御部１６から指定されたバッファ遅延量だけ遅延させて出力する。以下、当該出力される音声信号を遅延音声信号と称する。
【００１３】
擬似エコー生成部１２は、バッファメモリ１１から出力された遅延音声信号と、自身が有する適応フィルタ５０のタップ係数とに基づいて擬似エコー信号を生成する。擬似エコー信号の生成については後述する（図２を参照）。
【００１４】
減算部１３は、マイクロフォン３０に入力された音声信号（以下、入力近端音声信号と称する）の信号成分から、擬似エコー生成部１２によって生成された擬似エコー信号の信号成分を減算して得られた音声信号（以下、エコー減衰音声信号と称する）を遠端側に出力する。
【００１５】
エコー減衰量算出部１４は、マイクロフォン３０に入力された入力近端音声信号の任意時点における信号成分の大きさと、減算部１３から出力されたエコー減衰音声信号の当該時点における信号成分の大きさとの差分をエコー減衰量として算出する。エコー減衰量算出部１４は、周期的又は断続的にエコー減衰量を算出する。算出周期は例えば１２５マイクロ秒である。
【００１６】
有用タップ区間判定部１５は、擬似エコー生成部１２が有する適応フィルタ５０の全タップ区間のうちの、擬似エコー信号生成のために有用である（若しくは有効に働く）区間（以下、有用タップ区間と称する）をタップ係数の値に基づいて周期的又は断続的に判定し、当該区間に相当する時間帯に関する情報（以下、有用時間帯情報と称する）をバッファメモリ制御部１６に通知する。有用区間の判定方法については後述する（図４を参照）。
【００１７】
バッファメモリ制御部１６は、エコー減衰量算出部１４によって算出されたエコー減衰量に基づいて、バッファメモリ１１に対して指定すべきバッファ遅延量を周期的又は断続的に決定する。この際、バッファメモリ制御部１６は、有用タップ区間判定部１５から通知された有用時間帯情報も用いてバッファ遅延量を決定することができる。当該決定の方法については後述する（図３を参照）。
【００１８】
擬似エコー生成部１２、減算部１３、エコー減衰量算出部１４、有用タップ区間判定部１５、及びバッファメモリ制御部１６の動作は、エコーキャンセラ装置１０内のＣＰＵ（図示せず）がＲＯＭ（図示せず）等の記憶手段に記憶されたプログラムを実行することで実現できる。
【００１９】
以下、図２を参照しつつ、擬似エコー生成部１２による擬似エコー信号の生成動作について説明する。図２には、擬似エコー生成部１２が有する適応フィルタ５０の構成の一例が示されている。適応フィルタ５０は、例えば適応ＦＩＲフィルタである。適応フィルタ５０は、ｎ段（ｎは２以上の整数）連結されたタップ５１−１〜５１−ｎを含む。タップ５１−１〜５１−（ｎ−１）の各々は、遅延素子Ｄおよび乗算器Ｗからなる。タップ５１−ｎは、乗算器Ｗからなる。遅延素子Ｄの各々は、バッファメモリ１１からの遅延音声信号を所定の単位時間ずつ遅延させる。乗算器Ｗの各々には、可変のタップ係数Ｗ１〜Ｗｎが設定されており、遅延音声信号に対して当該設定されたタップ係数に基づく乗算処理を行なう。加算器ＡＤの各々は、乗算器Ｗ各々の出力を加算する。
【００２０】
かかる構成により、遅延音声信号は、遅延素子Ｄによって単位時間ずつ遅延され、更に乗算器Ｗ及び加算器ＡＤ（以下、これらをまとめて積和演算部と称する）によって積和演算される。当該演算の結果が擬似エコー信号として生成される。擬似エコー生成部１２は、例えばＬＭＳ（Least Mean Square）法や学習同定法などの所定のアルゴリズムに従って各タップ係数を変更し、乗算器Ｗの各々に設定することができる。
【００２１】
以下、図３を参照しつつ、有用タップ区間判定部１５による有用タップ区間の判定動作について説明する。図３には、タップ５１−１〜５１−ｎの各々に設定されたタップ係数が、各タップに含まれる遅延素子Ｄによる遅延時間に応じて時系列的に示されている。縦軸はタップ係数の大きさである。横軸は遅延素子Ｄによる累積の遅延時間である。
【００２２】
有用タップ区間判定部１５は、例えば、タップ係数の絶対値に基づいて有用タップ区間を判定する。この場合、有用タップ区間判定部１５は、タップ係数の絶対値が所定閾値以上であるか否かを時系列順すなわちタップ５１−１、５１−２、・・・５１−ｎの順に判別する。そして、有用タップ区間判定部１５は、タップ係数の絶対値が所定閾値以上となった時点に相当する段数のタップから最終段のタップまでの区間を有用タップ区間とする。有用タップ区間判定部１５は、当該区間に相当する時間帯を示す有用時間帯情報をバッファメモリ制御部１６に通知する。図３の場合には、タップ係数の絶対値が比較的大きいおおよそ２７〜１００ｍｓの時間帯が有用時間帯となる。また、有用タップ区間判定部１５は、タップ係数の絶対値が所定閾値以上となった時点に相当する段数のタップよりも所定段数だけ前の段数のタップから最終段のタップまでの区間を有用タップ区間とすることもできる。この場合には、例えばおよそ２５〜１００ｍｓの時間帯が有用時間帯となり得る。
【００２３】
また、有用タップ区間判定部１５は、例えば、タップ係数の積分値に基づいて有用タップ区間を判定することもできる。有用タップ区間判定部１５は、例えば５ｍｓ毎などの所定区間内に存在するタップ係数の積分値を算出する。この場合、有用タップ区間判定部１５は、例えば、０〜５ｍｓ、５〜１０ｍｓ、１０ｍｓ〜１５ｍｓ、・・・、９５〜１００ｍｓの各区間においてタップ係数の積分値を算出する。また、有用タップ区間判定部１５は、例えば、０〜５ｍｓ、１〜６ｍｓ、２〜７ｍｓ、・・・、９５〜１００ｍｓの各区間においてタップ係数の積分値を算出することもできる。有用タップ区間判定部１５は、当該積分値が所定閾値以上であるか否かを時系列順に判別する。そして、有用タップ区間判定部１５は、タップ係数の積分値が所定閾値以上となった時点に相当する段数のタップから最終段のタップまでの区間を有用タップ区間とする。有用タップ区間判定部１５は、当該区間に相当する時間帯を示す有用時間帯情報をバッファメモリ制御部１６に通知する。また、有用タップ区間判定部１５は、タップ係数の積分値が所定閾値以上となった時点に相当する段数のタップよりも所定段数だけ前の段数のタップから最終段のタップまでの区間を有用タップ区間とすることもできる。
【００２４】
有用タップ区間判定部１５は、上記した有用タップ区間の判定動作を例えば５ミリ秒や１０ミリ秒などの間隔で周期的に実行することができる。有用タップ区間より前の時間は、エコー信号４０がスピーカ２０からマイク３０に伝播する時間を含む固定遅延時間である。図３の場合には、おおよそ２７ｍｓが固定遅延時間となる。バッファメモリ制御部１６は、当該固定遅延時間をバッファ遅延量の暫定値として設定する。
【００２５】
以下、図４及び図５を参照しつつ、バッファメモリ制御部１６による遅延量調整処理について説明する。バッファメモリ制御部１６は、当該処理ルーチンを周期的又は断続的に実行する。実行周期は例えば１２５マイクロ秒である。バッファメモリ制御部１６は、固定遅延時間をバッファ遅延量の暫定値若しくは初期値として設定している。
【００２６】
先ず、バッファメモリ制御部１６は、エコー減衰量算出部１４によって周期的又は断続的に算出されたエコー減衰量の算出値群について２つの平均値を算出する（ステップＳ１１）。詳細には、バッファメモリ制御部１６は、比較的長期の区間（以下、長期区間と称する）内に含まれる複数のエコー減衰量の平均値（以下、長期平均減衰量：αと称する）と、当該長期区間よりも短い短期の区間（以下、短期区間と称する）内に含まれる複数のエコー減衰量の算出値群の平均値（以下、短期平均減衰量：βと称する）とを算出する。すなわち、バッファメモリ制御部１６は、ある１の時点から長期区間だけ前の時点までの間にエコー減衰量算出部１４から取得した各減衰量の平均値（すなわち長期平均減衰量）を算出すると共に、当該１の時点から短期区間だけ前の時点までの間にエコー減衰量算出部１４から取得した各減衰量の平均値（すなわち短期平均減衰量）を算出する。一例を挙げれば、短期区間が例えば２ミリ秒であるのに対して、長期区間は例えば１０ミリ秒である。長期平均減衰量及び短期平均減衰量のタイムチャートの一例が図５に示されている。
【００２７】
次に、バッファメモリ制御部１６は、長期平均減衰量と短期平均減衰量と比較する（ステップＳ１２）。バッファメモリ制御部１６は、長期平均減衰量が短期平均減衰量以下であると判別した場合には、バッファメモリ１１に指定すべきバッファ遅延量：Ｔを増加させる（ステップＳ１３及びＳ１５）。この場合の増加量を＋Ｘとする。増加量は例えば１ミリ秒である。また、増加量をタップ単位で変更することとしても良い。長期平均減衰量が短期平均減衰量以下である場合には、現時点においてエコー減衰量が十分に確保されていると考えられる。入力近端音声信号が減算部１３に到達するのに要する固定遅延時間帯においても擬似エコー生成部１２による擬似エコー信号生成のための演算がなされており直近のエコー減衰量が十分に確保されていると考えられるからである。故に、擬似エコー生成部１２による演算量を現在よりも減らす余地があるので、固定遅延時間帯に相当する期間の演算量を減少させるためにバッファ遅延量を大きくしたものである。図５に示されるタイムチャートの場合、おおよそ時刻Ｔ１以前及び時刻Ｔ２以降の時間において長期平均減衰量が短期平均減衰量以下となっている。
【００２８】
一方、バッファメモリ制御部１６は、短期平均減衰量が長期平均減衰量よりも小さいと判別した場合には、バッファ遅延量：Ｔを減少させる（ステップＳ１４及びＳ１５）。この場合の減少量を−Ｘとする。減少量は例えば１ミリ秒である。短期平均減衰量が長期平均減衰量よりも小さい場合には、現時点においてエコー減衰量が十分に確保されていないと考えられる。入力近端音声信号の方が擬似エコー信号よりも早く減算部１３に到達した結果、直近のエコー減衰量が小さくなったと考えられるからである。故に、バッファ遅延量を小さくして、擬似エコー信号の出力を早めて減算部１３への到達タイミングを入力近端音声信号のそれに合わせることにより、エコー成分の除去量を増加させるようにしたものである。図５に示されるタイムチャートの場合、おおよそ時刻Ｔ１から時刻Ｔ２までの時間において短期平均減衰量が長期平均減衰量よりも小さくなっている。
【００２９】
次に、バッファメモリ制御部１６は、当該増加後又は減少後のバッファ遅延量と固定遅延時間：Yとを比較する（ステップＳ１６）。バッファメモリ制御部１６は、有用タップ区間判定部１５から通知された有用時間帯情報に基づいて固定遅延時間を決定する。例えば、有用時間帯情報が示す有用タップ区間が２７〜１００ｍｓの時間帯を示している場合には、当該時間帯の始期である２７ｍｓを固定遅延時間とする。すなわち、有用タップ区間より前の時間を固定遅延時間としたのである。
【００３０】
バッファメモリ制御部１６は、バッファ遅延量が固定遅延時間よりも大きいと判別した場合には、バッファ遅延量を固定遅延時間と同一の値にする（ステップＳ１７）。一方、バッファメモリ制御部１６は、バッファ遅延量が固定遅延時間以下であると判別した場合には、バッファ遅延量を、増加後又は減少後のバッファ遅延量のままとする（ステップＳ１８）。バッファメモリ１１に指定すべきバッファ遅延量を固定遅延時間より大きくした場合には十分なエコー減衰量を確保し難いので、かかる処理を行なっている。
【００３１】
バッファメモリ制御部１６は、上記動作により決定したバッファ遅延量をバッファメモリ１１に指定する（ステップＳ１９）。バッファメモリ１１は、蓄積している音声信号を、バッファメモリ制御部１６から指定されたバッファ遅延量だけ遅延させて遅延音声信号として出力する。擬似エコー生成部１２は、当該遅延音声信号と、自身が有する適応フィルタ５０のタップ係数とに基づいて擬似エコー信号を生成する。
【００３２】
上記したように、本実施例のエコーキャンセラ装置１０においては、擬似エコー生成部１２に含まれる適応フィルタ５０のタップ係数の大きさからエコー信号４０の固定遅延時間を求めると共に、エコー減衰量について長期平均減衰量及び短期平均減衰量を算出する。長期平均減衰量が短期平均減衰量以下である場合には、エコー減衰量が十分に確保されていると考え、擬似エコー生成部１２の演算量を減少させるためにバッファ遅延量を増加させる。この際には、バッファ遅延量が固定遅延時間を越えない範囲で増加させる。一方、短期平均減衰量が長期平均減衰量よりも小さい場合には、エコー減衰量が十分に確保されていないと考え、エコー成分の除去量を増加させるためにバッファ遅延量を減少させる。なお、バッファ遅延量を増加又は減少させることは、擬似エコー生成部１２による擬似エコー生成のための演算処理に用いるタップ５１−１〜５１−ｎの範囲の始期を変更する動作であるということもできる。
【００３３】
このように、エコー減衰量の経時的な変化に応じて、固定遅延時間を越えない範囲でバッファ遅延量を動的に増減させることにより、エコーキャンセルのための演算量を低く抑えつつ、十分なエコー減衰量を確保することができる。故に、本実施例のエコーキャンセラ装置１０は、エコー状態が変化しやすい状況下においても、エコーキャンセルのための演算量を低く抑えつつ好適なエコーキャンセル処理を行なうことができる。
【００３４】
なお、エコー減衰量の算出周期、有用タップ区間の判定動作間隔、遅延量調整処理の実行周期、長期及び短期平均減衰量、バッファ遅延量の増加量及び減少量について一例として具体的な数値を示したが、これに限られない。
【００３５】
また、上記実施例は、バッファ遅延量の増加量及び減少量を同一の固定値とした場合の例であるがこれに限られない。例えば、増加量が１ミリ秒、減少量が２ミリ秒といったように、増加量と減少量とが異なる量であっても良い。かかる構成によれば、例えばエコー減衰量の確保のし易さと、エコーキャンセルのための演算量の削減可能性とのバランス等を勘案して柔軟に増加量及び減少量を別個に設定し得るので、当該演算量を低く抑えつつ好適なエコーキャンセル処理も実現できる。
【００３６】
また、バッファメモリ制御部１６は、１周期前の増加量又は減少量（以下、前周期変更量と称する）を記憶しておき、当該記憶している増加量又は減少量に基づいて、現周期の増加量又は減少量（以下、現周期変更量と称する）を決定することもできる。例えば、前周期変更量に所定比率を乗じて得られた量を現周期変更量とすることができる。バッファメモリ制御部１６は、例えば所定比率が０．５且つ前周期変更量が２ミリ秒である場合、現周期変更量を１ミリ秒とする。かかる構成によれば、例えば、擬似エコー生成部１２の演算量を減少させるためにバッファ遅延量を増加させ過ぎ、エコー成分を好適に除去することができなくなってしまう状態になることを防止することができる。
【００３７】
また、バッファメモリ制御部１６は、前周期のエコー減衰量を記憶しておき、前周期のエコー減衰量から現周期のエコー減衰量への変化率（以下、減衰量変化率と称する）に基づいて現周期変更量を決定することもできる。例えば、前周期変更量に減衰量変化率を乗じて得られた量を現周期変更量とすることができる。バッファメモリ制御部１６は、例えば減衰量変化率が０．５且つ前周期変更量が２ミリ秒である場合、現周期変更量を１ミリ秒とする。かかる構成によっても、例えば、バッファ遅延量を増加させ過ぎ、エコー成分を好適に除去することができなくなってしまう状態になることを防止することができる。
【００３８】
また、バッファメモリ制御部１６は、エコー減衰量の平均値算出のための長期区間及び短期区間のうちの少なくとも一方の長さを変更することもできる。バッファメモリ制御部１６は、例えば、減衰量変化率が所定閾値以下である場合に、長期区間の長さと短期区間の長さとの差を小さくし又は大きくして判定を行なうことによって結果的にバッファ遅延量の変更頻度を微調整し、エコー成分を好適に除去し得る。
【００３９】
＜第２の実施例＞
以下、図６を参照しつつ、本実施例のエコーキャンセラ装置１０の動作について、第1の実施例と異なる部分について主に説明する。図６には、タップ５１−１〜５１−ｎ（図２参照）の各々に設定されたタップ係数が、各タップに含まれる遅延素子Ｄによる遅延時間に応じて時系列的に示されている。
【００４０】
有用タップ区間判定部１５は、第１の実施例に示したのと同様の動作により、タップ係数の絶対値又は所定区間毎のタップ係数の積分値が所定閾値以上であるか否かを時系列順に判別する。そして、有用タップ区間判定部１５は、タップ係数の絶対値が最初に所定閾値以上となった時点に相当する段数のタップから、最後に所定閾値以上となった時点に相当する段数のタップまでの区間を有用タップ区間とする。有用タップ区間判定部１５は、当該区間に相当する時間帯を示す有用時間帯情報を、バッファメモリ制御部１６に通知すると共に、擬似エコー生成部１２にも通知する。
【００４１】
図６の場合には、タップ係数の絶対値が比較的大きいおおよそ２７〜３３ｍｓの時間帯が有用時間帯となる。また、有用タップ区間判定部１５は、タップ係数の絶対値が所定閾値以上となった時点に相当する段数のタップよりも所定段数だけ前の段数のタップから、最後に所定閾値以上となった時点に相当する段数のタップよりも所定段数だけ後の段数のタップまでの区間を有用タップ区間とすることもできる。この場合には、例えばおよそ２５〜４２ｍｓの時間帯が有用時間帯となり得る。
【００４２】
バッファメモリ制御部１６は、有用タップ区間判定部１５から通知された有用時間帯情報に基づいて、図４に示される動作を第１の実施例と同様に行う。この際、バッファメモリ制御部１６は、ステップＳ１３においてバッファ遅延量を増加させると共に、擬似エコー生成部１２に対して、擬似エコー生成のための演算対象となるタップ段数を減少させる指令（以下、演算タップ段数減少指令と称する）を与える。また、バッファメモリ制御部１６は、ステップＳ１４においてバッファ遅延量を減少させると共に、擬似エコー生成部１２に対して、擬似エコー生成のための演算対象となるタップ段数を増加させる指令（以下、演算タップ段数増加指令と称する）を与える。
【００４３】
擬似エコー生成部１２は、バッファメモリ制御部１６からの演算タップ段数減少指令に応じて、有用タップ区間判定部１５から通知された有用時間帯情報が示す時間帯の終期である例えば４２ｍｓに相当する段数のタップ以降の区間（以下、非有用タップ区間と称する）については、擬似エコー生成のための演算を行なわず、擬似エコー信号を生成しない。かかる動作により、演算対象とするタップ区間を縮小したことになる。図６の場合には、おおよそ４２ｍｓ〜１００ｍｓまでの区間が非有用タップ区間となる。かかる動作により、４２ｍｓ〜１００ｍｓまでの区間についても擬似エコー生成のための演算処理の対象外とし、演算処理量を更に減少させることができる。なお、バッファメモリ制御部１６によるバッファ遅延量の増加、及び擬似エコー生成部１２による演算対象タップ区間の縮小の少なくとも一方を実施する態様とすることもできる。この場合、有用タップ区間判定部１５が、タップ係数の絶対値が最大値となる時点（以下、ピーク時点と称する）を更に判別し、ピーク時点と有用タップ区間の始期との区間（以下、ピーク前区間と称する）と、ピーク時点と有用タップ区間の終期との区間（以下、ピーク後区間と称する）との比較結果に基づいて、いずれの実施態様とするかを決定することもできる。
【００４４】
また、擬似エコー生成部１２は、バッファメモリ制御部１６からの演算タップ段数増加指令に応じて、有用タップ区間判定部１５から通知された有用時間帯情報が示す時間帯の終期である例えば４２ｍｓに相当する段数のタップよりも所定段数だけ後のタップまでを擬似エコー生成のための演算対象とする。換言すれば、演算対象とするタップ区間を拡大したのである。かかる動作により、エコー成分の除去量を増加させるためにバッファ遅延量を減少させる。なお、バッファメモリ制御部１６によるバッファ遅延量の減少、及び擬似エコー生成部１２による演算対象タップ区間の拡大の少なくとも一方を実施する態様とすることもできる。この場合にも同様に、有用タップ区間判定部１５が、ピーク前区間とピーク後区間との比較結果に基づいて、いずれの実施態様とするかを決定することもできる。
【００４５】
上記したように、本実施例のエコーキャンセラ装置１０においては、長期平均減衰量が短期平均減衰量以下である場合には、バッファ遅延量を動的に増加させるだけでなく、演算対象とするタップ区間を動的に縮小したので、擬似エコー生成部１２の演算量を動的に更に減少させることができる。一方、短期平均減衰量が長期平均減衰量よりも小さい場合には、バッファ遅延量を動的に減少させるだけでなく、演算対象とするタップ区間を動的に拡大したので、エコー成分の除去量を動的に更に増加させることができる。
【００４６】
第１の実施例と同様に、バッファ遅延量を増加又は減少させることは、擬似エコー生成部１２による擬似エコー生成のための演算処理に用いるタップ５１−１〜５１−ｎの範囲の始期を変更する動作であるということもできる。また、上記のように演算処理の対象とするタップ区間を縮小又は拡大することは、擬似エコー生成部１２による擬似エコー生成のための演算処理に用いるタップ５１−１〜５１−ｎの範囲の終期を変更する動作であるということもできる。すなわち、本実施例のエコーキャンセラ装置１０においては、擬似エコー生成のための演算処理に用いるタップの範囲の始期及び終期の少なくとも一方を変更することができる。
【符号の説明】
【００４７】
１０  エコーキャンセラ装置
１１  バッファメモリ
１２  擬似エコー生成部
１３  減算部
１４  エコー減衰量算出部
１５  有用タップ区間判定部
１６  バッファメモリ制御部
２０  スピーカ
３０  マイク
４０  エコー
５０  適応フィルタ
【図１】
0005823845.tif 000002
【図２】
0005823845.tif 000003
【図３】
0005823845.tif 000004
【図４】
0005823845.tif 000005
【図５】
0005823845.tif 000006
【図６】
0005823845.tif 000007