(57)【特許請求の範囲】
【請求項１】
Ｎ個（ただし、Ｎは２以上の整数）の時系列の再生信号（１フレーム）を要素とする再生信号ベクトルを入力とし、Ｋ個（ただし、Ｋは２以上の整数）の再生信号ベクトルの各要素を含むＭ個（ただし、ＭはＫＮより大きな整数）の要素からなる再生信号増加ベクトルを出力する第１ベクトル増加部と、
前記再生信号増加ベクトルを周波数変換し、周波数領域再生信号を出力する第１周波数分析部と、
前記周波数領域再生信号と周波数領域フィルタ係数とを積算し、周波数領域疑似エコーを出力する積算部と、
前記周波数領域疑似エコーを時間領域に変換し、Ｍ個の要素からなる疑似エコー増加ベクトルを出力する周波数合成部と、
前記疑似エコー増加ベクトルから、Ｎ個の要素からなる疑似エコーベクトルをＫ個生成し、Ｎ個の時系列の収音信号（１フレーム）を要素とする収音信号ベクトルが入力されるタイミングごとに前記疑似エコーベクトルを１つずつ出力するベクトル減少部と、
前記収音信号ベクトルと前記疑似エコーベクトルとの減算を行い、残留エコーベクトルを出力する減算部と、
Ｋ個の前記残留エコーベクトルの各要素を含むＭ個の要素からなる残留エコー増加ベクトルを出力する第２ベクトル増加部と、
前記残留エコー増加ベクトルを周波数変換し、周波数領域残留エコーを出力する第２周波数分析部と、
前記周波数領域再生信号の複素共役と前記周波数領域残留エコーの要素ごとの積を用いて、前記周波数領域フィルタ係数を更新するフィルタ更新部と、
を備えるエコー消去装置。
【請求項２】
Ｎ個（ただし、Ｎは２以上の整数）の時系列の再生信号（１フレーム）を要素とする再生信号ベクトルと、Ｎ個の時系列の収音信号（１フレーム）を要素とする収音信号ベクトルとを入力とし、前記収音信号ベクトルに含まれる前記再生信号ベクトルのエコー成分を、前記再生信号ベクトルから生成した疑似エコーベクトルを用いて消去するエコー消去装置であって、
Ｋ個（ただし、Ｋは２以上の整数）の再生信号ベクトルの各要素を含むＭ個（ただし、ＭはＫＮより大きな整数）の要素からなる再生信号増加ベクトルを求める第１ベクトル増加部と、
前記再生信号増加ベクトルに対する周波数領域での演算によって、Ｍ個の要素からなる疑似エコー増加ベクトルを求める擬似エコー増加ベクトル算出部と、
前記疑似エコー増加ベクトルから、Ｎ個の要素からなる疑似エコーベクトルをＫ個生成するベクトル減少部と、
前記収音信号ベクトルと前記疑似エコーベクトルとの減算を行い、前記収音信号ベクトルに含まれる前記再生信号ベクトルのエコー成分を消去した残留エコーベクトルを出力する減算部と、
を備えることを特徴とするエコー消去装置。
【請求項３】
Ｎ個（ただし、Ｎは２以上の整数）の時系列の再生信号（１フレーム）を要素とする再生信号ベクトルを入力とし、Ｋ個（ただし、Ｋは２以上の整数）の再生信号ベクトルの各要素を含むＭ個（ただし、ＭはＫＮより大きな整数）の要素からなる再生信号増加ベクトルを出力する第１ベクトル増加ステップと、
前記再生信号増加ベクトルを周波数変換し、周波数領域再生信号を出力する第１周波数分析ステップと、
前記周波数領域再生信号と周波数領域フィルタ係数とを積算し、周波数領域疑似エコーを出力する積算ステップと、
前記周波数領域疑似エコーを時間領域に変換し、Ｍ個の要素からなる疑似エコー増加ベクトルを出力する周波数合成ステップと、
前記疑似エコー増加ベクトルから、Ｎ個の要素からなる疑似エコーベクトルをＫ個生成し、Ｎ個の時系列の収音信号（１フレーム）を要素とする収音信号ベクトルが入力されるタイミングごとに前記疑似エコーベクトルを１つずつ出力するベクトル減少ステップと、
前記収音信号ベクトルと前記疑似エコーベクトルとの減算を行い、残留エコーベクトルを出力する減算ステップと、
Ｋ個の前記残留エコーベクトルの各要素を含むＭ個の要素からなる残留エコー増加ベクトルを出力する第２ベクトル増加ステップと、
前記残留エコー増加ベクトルを周波数変換し、周波数領域残留エコーを出力する第２周波数分析ステップと、
前記周波数領域再生信号の複素共役と前記周波数領域残留エコーの要素ごとの積を用いて、前記周波数領域フィルタ係数を更新するフィルタ更新ステップと
を有するエコー消去方法。
【請求項４】
Ｎ個（ただし、Ｎは２以上の整数）の時系列の再生信号（１フレーム）を要素とする再生信号ベクトルと、Ｎ個の時系列の収音信号（１フレーム）を要素とする収音信号ベクトルとを入力とし、前記収音信号ベクトルに含まれる前記再生信号ベクトルのエコー成分を、前記再生信号ベクトルから生成した疑似エコーベクトルを用いて消去するエコー消去方法であって、
Ｋ個（ただし、Ｋは２以上の整数）の再生信号ベクトルの各要素を含むＭ個（ただし、ＭはＫＮより大きな整数）の要素からなる再生信号増加ベクトルを求める第１ベクトル増加ステップと、
前記再生信号増加ベクトルに対する周波数領域での演算によって、Ｍ個の要素からなる疑似エコー増加ベクトルを求める擬似エコー増加ベクトル算出ステップと、
前記疑似エコー増加ベクトルから、Ｎ個の要素からなる疑似エコーベクトルをＫ個生成するベクトル減少ステップと、
前記収音信号ベクトルと前記疑似エコーベクトルとの減算を行い、前記収音信号ベクトルに含まれる前記再生信号ベクトルのエコー成分を消去した残留エコーベクトルを出力する減算ステップと
を有することを特徴とするエコー消去方法。
【請求項５】
請求項１または２記載のエコー消去装置としてコンピュータを動作させるエコー消去プログラム。
【請求項６】
請求項５記載のエコー消去プログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば音響再生系を有する通信会議システムに適用され、ハウリングの原因および聴覚上の障害となる音響エコーを消去するエコー消去装置、エコー消去方法、エコー消去プログラム、および記録媒体に関する。
【背景技術】
【０００２】
図１に従来のエコー消去装置を用いた音響再生系の機能構成例を示す。この音響再生系は、第１シリアル／パラレル変換部９１０、第１パラレル／シリアル変換部９２０、音響信号再生部（スピーカ）９３０、音響信号収音部（マイクロホン）９５０、第２シリアル／パラレル変換部９６０、第２パラレル／シリアル変換部９７０、およびエコー消去装置８００から構成されている。音響信号再生部９３０で再生された音響信号は、エコー経路９４０を経て、音響信号収音部９５０で収音され、エコーとなってしまう。エコー消去装置８００は、そのエコーを消去した信号を生成するための装置である。従来のエコー消去装置８００としては、非特許文献１記載の例がある。エコー消去装置８００では、エコー経路９４０のインパルス応答を要素として持つ長さＬ（すなわちタップ数であり、例えばＬ＝１６６４）の疑似エコー経路の周波数特性の計算を行っている。ここで、ｎは所定間隔の離散的な時刻を示す数（サンプル点の番号）である。サンプリングとは、アナログの音声信号をデジタル信号に変換するために変数のある区間の値を１つの代表する値に置き換えることで、例えば、サンプリング周波数１６ｋＨｚ（１秒間に１６０００回）で行われる。
【０００３】
第１シリアル／パラレル変換部９１０は、Ｎ個（ただし、Ｎは２以上の整数）の時系列の再生信号ｘ（１），…，ｘ（Ｎ）（１フレームがＮ個の再生信号ｘ（ｎ）で構成されている）を要素とする再生信号ベクトルｘＮ（ｋ）を生成する。ここで、ｋはフレームの番号を示す数である。第１パラレル／シリアル変換部９２０は、再生信号ベクトルｘＮ（ｋ）を再生信号ｘ（１），…，ｘ（Ｎ）に変換する。
【０００４】
音響信号再生部９３０は、デジタル信号である再生信号ｘ（ｎ）をアナログ信号に変換した上で、再生する。音響信号収音部９５０は、アナログ信号を収音して、デジタル信号である収音信号ｙ（ｎ）に変換する。このように、第１パラレル／シリアル変換部９２０の出力信号と第２シリアル／パラレル変換部９６０の入力信号はデジタル信号であるが、音響信号再生部９３０が再生する信号と音響信号収音部９５０が収音する信号はアナログ信号である。以下の説明では、信号がデジタル信号であるかアナログ信号であるか、どの構成部でアナログ信号とデジタル信号の変換が行われているかは特に言及しないが、信号処理の対象となるのはデジタル信号であり、エコー経路９４０内の信号はアナログ信号である。また、どの構成部でアナログ信号とデジタル信号の変換を行うかは、上記の関係から当然に決まることである。
【０００５】
第２シリアル／パラレル変換部９６０は、Ｎ個の時系列の収音信号ｙ（１），…，ｙ（Ｎ）を要素とする収音信号ベクトルｙＮ（ｋ）を生成する。エコー消去装置８００は、第１ベクトル増加部８１０、第１周波数分析部８２０、積算部８３０、周波数合成部８４０、ベクトル減少部８５０、減算部８６０、第２ベクトル増加部８７０、第２周波数分析部８８０、フィルタ更新部８９０を備え、疑似エコー経路の周波数特性の計算を行うことで、再生信号ベクトルｘＮ（ｋ）と収音信号ベクトルｙＮ（ｋ）から、エコー成分を消去した残留エコーベクトルｅＮ（ｋ）を求める。第２パラレル／シリアル変換部９７０は、残留エコーベクトルｅＮ（ｋ）を残留エコー信号ｅ（１），…，ｅ（Ｎ）に変換する。
【非特許文献１】G. Clark, S. Parker, and S. Mitra, “A unified approach to time- and frequency- domain realization of FIR adaptive digital filters,” IEEE Trans. Acoustics, Speech, and Signal Processing, vol. ASSP-31, no.5, pp.1073-1083, Oct. 1983.
【発明の開示】
【発明が解決しようとする課題】
【０００６】
エコー消去装置８００は、演算量が多い周波数分析（第１周波数分析部８２０と第２周波数分析部８８０の処理）および周波数合成（周波数合成部８４０の処理）において、１フレームごとにＮ＋Ｌという長い周波数分析点数の処理が必要であった。そのため、従来のエコー消去装置では、膨大な計算コストが必要であった。本発明の目的は、１フレームあたりの演算量を削減したエコー消去装置を提供することである。
【課題を解決するための手段】
【０００７】
本発明のエコー消去装置は、第１ベクトル増加部、第１周波数分析部、積算部、周波数合成部、ベクトル減少部、減算部、第２ベクトル増加部、第２周波数分析部、フィルタ更新部を備える。第１ベクトル増加部は、Ｎ個（ただし、Ｎは２以上の整数）の時系列の再生信号（１フレーム）を要素とする再生信号ベクトルを入力とし、Ｋ個（ただし、Ｋは２以上の整数）の再生信号ベクトルの各要素を含むＭ個（ただし、ＭはＫＮ以上の整数）の要素からなる再生信号増加ベクトルを出力する。第１周波数分析部は、再生信号増加ベクトルを周波数変換し、周波数領域再生信号を出力する。積算部は、周波数領域再生信号と周波数領域フィルタ係数とを積算し、周波数領域疑似エコーを出力する。周波数合成部は、周波数領域疑似エコーを時間領域に変換し、Ｍ個の要素からなる疑似エコー増加ベクトルを出力する。ベクトル減少部は、疑似エコー増加ベクトルから、Ｎ個の要素からなる疑似エコーベクトルをＫ個生成し、Ｎ個の時系列の収音信号（１フレーム）を要素とする収音信号ベクトルが入力されるタイミングごとに疑似エコーベクトルを１つずつ出力する。減算部は、収音信号ベクトルと疑似エコーベクトルとの減算を行い、残留エコーベクトルを出力する。第２ベクトル増加部は、Ｋ個の残留エコーベクトルの各要素を含むＭ個の要素からなる残留エコー増加ベクトルを出力する。第２周波数分析部は、残留エコー増加ベクトルを周波数変換し、周波数領域残留エコーを出力する。フィルタ更新部は、周波数領域再生信号の複素共役と周波数領域残留エコーの要素ごとの積を用いて、周波数領域フィルタ係数を更新する。
【０００８】
言い換えると、本発明のエコー消去装置は、Ｎ個（ただし、Ｎは２以上の整数）の時系列の再生信号（１フレーム）を要素とする再生信号ベクトルと、Ｎ個の時系列の収音信号（１フレーム）を要素とする収音信号ベクトルとを入力とし、収音信号ベクトルに含まれる再生信号ベクトルのエコー成分を、再生信号ベクトルから生成した疑似エコーベクトルを用いて消去するエコー消去装置であって、以下のような第１ベクトル増加部、擬似エコー増加ベクトル算出部、ベクトル減少部、減算部を備えることを特徴としている。第１ベクトル増加部は、Ｋ個（ただし、Ｋは２以上の整数）の再生信号ベクトルの各要素を含むＭ個（ただし、ＭはＫＮ以上の整数）の要素からなる再生信号増加ベクトルを求める。擬似エコー増加ベクトル算出部は、再生信号増加ベクトルに対する周波数領域での演算によって、Ｍ個の要素からなる疑似エコー増加ベクトルを求める。ベクトル減少部は、疑似エコー増加ベクトルから、Ｎ個の要素からなる疑似エコーベクトルをＫ個生成する。減算部は、収音信号ベクトルと疑似エコーベクトルとの減算を行い、収音信号ベクトルに含まれる前記再生信号ベクトルのエコー成分を消去した残留エコーベクトルを出力する。
【発明の効果】
【０００９】
本発明のエコー消去装置によれば、Ｋフレームをまとめて周波数分析および周波数合成を行うことで、遅延を抑制しながら、Ｋフレームあたりの周波数分析点数をＭとしている。ここで、Ｍ＝ＫＮ＋Ｌ（ただし、Ｌはタップ数）の場合、１フレームあたりの周波数分析点数は、Ｎ＋Ｌ／Ｋとなる。例えば、Ｎ＝１２８、Ｌ＝１６６４、Ｋ＝２の場合、従来のＮ＋Ｌ＝１７９２に対して、本発明ではＮ＋Ｌ／Ｋ＝９６０となる。つまり、演算量を約１／２にできる。つまり、本発明のエコー消去装置は、遅延を抑えながら（若しくは従来と同じにしながら）、演算量を少なくできる。
【発明を実施するための最良の形態】
【００１０】
［分析］
まず、従来のエコー消去装置８００の処理の分析を行う。図２に、図１の音響再生系でのアルゴリズム遅延（第１シリアル／パラレル変換部９１０、第２シリアル／パラレル変換部９６０での遅延）が１フレーム分であり、実装遅延（第１パラレル／シリアル変換部９２０、第２パラレル／シリアル変換部９７０での遅延）が無視できる場合のタイムチャートを示す。また、図３に、図１の音響再生系でのアルゴリズム遅延（第１シリアル／パラレル変換部９１０、第２シリアル／パラレル変換部９６０での遅延）が１フレーム分であり、実装遅延（第１パラレル／シリアル変換部９２０、第２パラレル／シリアル変換部９７０での遅延）が１フレーム分の場合のタイムチャートを示す。図中では、アルゴリズム遅延を二点鎖線、実装遅延を一点鎖線で表している。
【００１１】
第１シリアル／パラレル変換部９１０は、Ｎ個の時系列の再生信号ｘ（ｋＮ−Ｎ＋１），…，ｘ（ｋＮ）（１フレームがＮ個の再生信号ｘ（ｎ）で構成されている）を要素とする再生信号ベクトルｘＮ（ｋ）＝｛ｘ（ｋＮ−Ｎ＋１），…，ｘ（ｋＮ）｝Ｔを生成する。ただし、Ｎは２以上の整数であり、例えば１２８である。このときに、必ず１フレーム分のアルゴリズム遅延が生じる。第１ベクトル増加部８１０は、再生信号ベクトルｘＮ（ｋ）を入力とし、再生信号ベクトルｘＮ（ｋ）の各要素を含むＭ’個の要素からなる再生信号増加ベクトルｘＭ’（ｋ）を出力する。例えば、ｘＭ’（ｋ−１）の古い時刻順にＮ個のデータを捨て、ｘＮ（ｋ）に接続することで、ｘＭ’（ｋ）を求める。また、Ｍ’＝Ｎ＋Ｌである。ただし、Ｌは、時間領域対応フィルタのフィルタ長（タップ数）であり、例えば１６６４である。第１周波数分析部８２０は、再生信号増加ベクトルｘＭ’（ｋ）を周波数変換し、Ｍ’個の周波数成分Ｘｍ’（ｋ）（ただし、ｍ’＝１，…，Ｍ’）を持つ周波数領域再生信号Ｘ’（ｋ）を出力する。積算部８３０は、周波数領域再生信号Ｘ’（ｋ）の各要素と周波数領域フィルタ係数Ｗ’とを積算し、周波数領域疑似エコーＤ＾’（ｋ）を出力する。具体的には、
【００１２】
【数１】
0004729072.tif 000002
【００１３】
のように、計算する。周波数合成部８４０は、周波数領域疑似エコーＤ＾’（ｋ）を時間領域に変換し、Ｍ’個の要素からなる疑似エコー増加ベクトルｄ＾Ｍ’（ｋ）を出力する。ベクトル減少部８５０は、疑似エコー増加ベクトルｄ＾Ｍ’（ｋ）から、Ｎ個の要素からなる疑似エコーベクトルｄ＾Ｎ（ｋ）を生成する。例えば、疑似エコー増加ベクトルｄ＾Ｍ’（ｋ）が、前から古い時刻のデータが時系列順に並んでいるベクトルの場合、後からＮ個のデータを選択して疑似エコーベクトルｄ＾Ｎ（ｋ）とする。
【００１４】
第１パラレル／シリアル変換部９２０は、再生信号ベクトルｘＮ（ｋ）を再生信号ｘ（１），…，ｘ（Ｎ）に変換する。実装遅延が無視できる場合（図２）は、遅延なく再生信号ｘ（ｎ）が所定の間隔（例えば１０ｍｓ）で順次出力され、音響信号再生部９３０を介して再生される。１フレーム分の実装遅延がある場合（図３）は、１フレーム分の遅延の後、再生信号ｘ（ｎ）が所定の間隔で順次出力され、音響信号再生部９３０を介して再生される。第２シリアル／パラレル変換部９６０は、Ｎ個の時系列の収音信号ｙ（１），…，ｙ（Ｎ）を要素とする収音信号ベクトルｙＮ（ｋ）＝｛ｙ（ｋＮ−Ｎ＋１），…，ｙ（ｋＮ）｝Ｔを生成する。このときに、必ず１フレーム分のアルゴリズム遅延が生じる。
【００１５】
減算部８６０は、収音信号ベクトルｙＮ（ｋ）と疑似エコーベクトルｄ＾Ｎ（ｋ）との減算を行い、残留エコーベクトルｅＮ（ｋ）＝ｙＮ（ｋ）−ｄ＾Ｎ（ｋ）を出力する。第２パラレル／シリアル変換部９７０は、残留エコーベクトルｅＮ（ｋ）を残留エコー信号ｅ（１），…，ｅ（Ｎ）に変換する。実装遅延が無視できる場合（図２）は、遅延なく残留エコー信号ｅ（ｎ）が所定の間隔で順次出力される。１フレーム分の実装遅延がある場合（図３）は、１フレーム分の遅延の後、残留エコー信号ｅ（ｎ）が所定の間隔で順次出力される。
【００１６】
第２ベクトル増加部８７０は、残留エコーベクトルｅＮ（ｋ）の各要素を含むＭ’個の要素からなる残留エコー増加ベクトルｅＭ’（ｋ）を出力する。具体的には、Ｍ’＝Ｎ＋Ｌ（ただし、Ｌはタップ数）である。第２周波数分析部８８０は、残留エコー増加ベクトルｅＭ’（ｋ）を周波数変換し、周波数領域残留エコーＥ’（ｋ）を出力する。
【００１７】
フィルタ更新部８９０は、周波数領域再生信号Ｘ’（ｋ）の複素共役と周波数領域残留エコーＥ’（ｋ）の要素ごとの積を用いて、周波数領域フィルタ係数Ｗを更新する。具体的には、非特許文献１記載のＦＢＬＭＳアルゴリズムなどによって、
【数２】
0004729072.tif 000003
として更新する。ここで、Ｗ−’はメモリを上書きする前の周波数領域フィルタ係数、Ｐは拘束行列である。更新ベクトルΔＷ’は、要素ΔＷ’ｍ’ごとに、例えば、
【数３】
0004729072.tif 000004
として計算する。ここで、μはステップサイズ、＊は共役複素数、Ｐ［，γ］はγフレームの平均処理を示す。なお、周波数領域フィルタ係数Ｗ’は、更新するたびにメモリを上書きすればよいので、フレーム番号を示すｋを持たなくてもよい。
【００１８】
エコー消去装置８００はこのように動作するので、実装遅延が無視できる場合（図２）は、２フレーム分の遅延が生じる。また、１フレーム分の実装遅延がある場合（図３）は、４フレーム分の遅延が生じる。
【００１９】
本発明は、アルゴリズム遅延や実装遅延によって生じる遅延時間を積極的に利用することで、演算量を削減しようとするものであり、その実施形態を以下に説明する。
【実施例１】
【００２０】
図４に、本発明のエコー消去装置を用いた音響再生系の機能構成例を示す。第１シリアル／パラレル変換部９１０、第１パラレル／シリアル変換部９２０、音響信号再生部（スピーカ）９３０、音響信号収音部（マイクロホン）９５０、第２シリアル／パラレル変換部９６０、第２パラレル／シリアル変換部９７０は、従来の音響再生系（図１）と同じである。図５に本発明のエコー消去装置の処理フローを示す。また、図６に、図４の音響再生系でのアルゴリズム遅延（第１シリアル／パラレル変換部９１０、第２シリアル／パラレル変換部９６０での遅延）が１フレーム分であり、実装遅延（第１パラレル／シリアル変換部９２０、第２パラレル／シリアル変換部９７０での遅延）が無視できる場合のタイムチャートを示す。図７に、図４の音響再生系でのアルゴリズム遅延（第１シリアル／パラレル変換部９１０、第２シリアル／パラレル変換部９６０での遅延）が１フレーム分であり、実装遅延（第１パラレル／シリアル変換部９２０、第２パラレル／シリアル変換部９７０での遅延）が１フレーム分の場合のタイムチャートを示す。図中では、アルゴリズム遅延を二点鎖線、実装遅延を一点鎖線で表している。
【００２１】
第１シリアル／パラレル変換部９１０は、Ｎ個の時系列の再生信号ｘ（ｋＮ−Ｎ＋１），…，ｘ（ｋＮ）（１フレームがＮ個の再生信号ｘ（ｎ）で構成されている）を要素とする再生信号ベクトルｘＮ（ｋ）＝｛ｘ（ｋＮ−Ｎ＋１），…，ｘ（ｋＮ）｝Ｔを生成する。ただし、Ｎは２以上の整数であり、例えば１２８である。また、ｋはフレームの番号を示す数である。このときに、必ず１フレーム分のアルゴリズム遅延が生じる。
【００２２】
エコー消去装置１００は、第１ベクトル増加部１１０、第１周波数分析部１２０、積算部１３０、周波数合成部１４０、ベクトル減少部１５０、減算部１６０、第２ベクトル増加部１７０、第２周波数分析部１８０、フィルタ更新部１９０を備える。例えば、エコー消去装置１００は、再生信号ｘ（１），…，ｘ（Ｎ）（１フレームがＮ個の再生信号ｘ（ｎ）で構成されている）が入力されたことを確認する。そして、再生信号ｘ（ｎ）が入力されると処理を開始し、再生信号ｘ（ｎ）が入力されている間処理を繰り返し、再生信号ｘ（ｎ）が入力されなくなると処理を終了する（Ｓ１０５）。
【００２３】
第１ベクトル増加部１１０は、Ｎ個の時系列の再生信号ｘ（ｎ）を要素とする再生信号ベクトルｘＮ（ｋ）を入力とし、Ｋ個（ただし、Ｋは２以上の整数）の再生信号ベクトルｘＮ（ｋ），…，ｘＮ（ｋ＋Ｋ−１）の各要素を含むＭ個（ただし、ＭはＫＮ以上の整数）の要素からなる再生信号増加ベクトルｘＭ（ｋ）を出力する（Ｓ１１０）。例えば、Ｍ＝ＫＮ＋Ｌである。ただし、Ｌは、時間領域対応フィルタのフィルタ長（タップ数）であり、例えば１６６４である。図６はＫ＝２の例を示しており、図７はＫ＝３の例を示している。例えば、Ｋ＝２（図６）の場合であれば、ｘＭ（ｋ−２）の古い時刻順に２Ｎ個のデータ（要素）を捨て、ｘＮ（ｋ）、ｘＮ（ｋ＋１）に接続することで、ｘＭ（ｋ）を求める。Ｋ＝３（図７）の場合であれば、ｘＭ（ｋ−３）の古い時刻順に３Ｎ個のデータ（要素）を捨て、ｘＮ（ｋ）、ｘＮ（ｋ＋１）、ｘＮ（ｋ＋２）に接続することで、ｘＭ（ｋ）を求める。
【００２４】
第１周波数分析部１２０は、再生信号増加ベクトルｘＭ（ｋ）を周波数変換し、Ｍ個の周波数成分Ｘｍ（ｋ）（ただし、ｍ＝１，…，Ｍ）を持つ周波数領域再生信号Ｘ（ｋ）を出力する（Ｓ１２０）。積算部１３０は、周波数領域再生信号Ｘ（ｋ）と周波数領域フィルタ係数Ｗとを積算し、周波数領域疑似エコーＤ＾（ｋ）を出力する（Ｓ１３０）。具体的には、
【数４】
0004729072.tif 000005
のように、計算する。
【００２５】
周波数合成部１４０は、周波数領域疑似エコーＤ＾（ｋ）を時間領域に変換し、Ｍ個の要素からなる疑似エコー増加ベクトルｄ＾Ｍ（ｋ）を出力する（Ｓ１４０）。なお、疑似エコー増加ベクトルｄ＾Ｍ（ｋ）は、Ｋ＝２（図６）の場合は、
【数５】
0004729072.tif 000006
として出力し、Ｋ＝３（図７）の場合は、
【数６】
0004729072.tif 000007
として出力すればよい。なお、ｃＬのｃは直線上畳み込みにあたらない値を、添え字Ｌは要素数を示しており、ｃＬはＬ個の直線上畳み込みにあたらない値を要素とするベクトルを示している。
【００２６】
ベクトル減少部１５０は、疑似エコー増加ベクトルｄ＾Ｍ（ｋ）から、Ｋ個のＮ要素からなる疑似エコーベクトルｄ＾Ｎ（ｋ），…，ｄ＾Ｎ（ｋ＋Ｋ−１）を生成し、収音信号ベクトルｙＮ（ｋ）が入力されるタイミングごとに疑似エコーベクトルを１つずつ出力する（Ｓ１５０）。例えば、式（５）や式（６）に示された疑似エコー増加ベクトルｄ＾Ｍ（ｋ）が入力された場合、疑似エコー増加ベクトルｄ＾Ｍ（ｋ）の最後のＫＮ個の要素から疑似エコーベクトルｄ＾Ｎ（ｋ），…，ｄ＾Ｎ（ｋ＋Ｋ−１）を生成すればよい。
【００２７】
第１パラレル／シリアル変換部９２０は、再生信号ベクトルｘＮ（ｋ）を再生信号ｘ（１），…，ｘ（Ｎ）に変換する。実装遅延が無視できる場合（図６）は、遅延なく再生信号ｘ（ｎ）が所定の間隔（例えば１０ｍｓ）で順次出力され、音響信号再生部９３０を介して再生される。１フレーム分の実装遅延がある場合（図７）は、１フレーム分の遅延の後、再生信号ｘ（ｎ）が所定の間隔で順次出力され、音響信号再生部９３０を介して再生される。第２シリアル／パラレル変換部９６０は、Ｎ個の時系列の収音信号ｙ（１），…，ｙ（Ｎ）を要素とする収音信号ベクトルｙＮ（ｋ）＝｛ｙ（ｋＮ−Ｎ＋１），…，ｙ（ｋＮ）｝Ｔを生成する。このときに、必ず１フレーム分のアルゴリズム遅延が生じる。
【００２８】
減算部１６０は、収音信号ベクトルｙＮ（ｋ）と疑似エコーベクトルｄ＾Ｎ（ｋ）との減算を行い、残留エコーベクトルｅＮ（ｋ）＝ｙＮ（ｋ）−ｄ＾Ｎ（ｋ）を出力する（Ｓ１６０）。第２パラレル／シリアル変換部９７０は、残留エコーベクトルｅＮ（ｋ）を残留エコー信号ｅ（１），…，ｅ（Ｎ）に変換する。実装遅延が無視できる場合（図６）は、遅延なく残留エコー信号ｅ（ｎ）が所定の間隔で順次出力される。１フレーム分の実装遅延がある場合（図７）は、１フレーム分の遅延の後、残留エコー信号ｅ（ｎ）が所定の間隔で順次出力される。
【００２９】
第２ベクトル増加部１７０は、Ｋ個の残留エコーベクトルｅＮ（ｋ），…，ｅＮ（ｋ＋Ｋ−１）の各要素を含むＭ個の要素からなる残留エコー増加ベクトルｅＭ（ｋ）を出力する（Ｓ１７０）。例えば、Ｍ＝ＫＮ＋Ｌである。なお、残留エコー増加ベクトルｅＭ（ｋ）は、Ｋ＝２（図６）の場合は、
【数７】
0004729072.tif 000008
として出力し、Ｋ＝３（図７）の場合は、
【数８】
0004729072.tif 000009
として出力すればよい。なお、０ＬはＬ個の“０”を要素とするベクトルを示している。
【００３０】
第２周波数分析部１８０は、残留エコー増加ベクトルｅＭ（ｋ）を周波数変換し、周波数領域残留エコーＥ（ｋ）を出力する（Ｓ１８０）。フィルタ更新部１９０は、周波数領域再生信号Ｘ（ｋ）の複素共役と周波数領域残留エコーＥ（ｋ）の要素ごとの積を用いて、周波数領域フィルタ係数Ｗを更新する（Ｓ１９０）。具体的には、ＦＢＬＭＳアルゴリズムなどによって、
【数９】
0004729072.tif 000010
として更新する。ここで、Ｗ−はメモリを上書きする前の周波数領域フィルタ係数、Ｐは拘束行列である。更新ベクトルΔＷは、要素ΔＷｍごとに、例えば、
【数１０】
0004729072.tif 000011
として計算する。ここで、μはステップサイズ、＊は共役複素数、Ｐ［，γ］はγフレームの平均処理を示す。なお、周波数領域フィルタ係数Ｗは、更新するたびにメモリを上書きすればよいので、フレーム番号を示すｋを持たなくてもよい。
【００３１】
エコー消去装置１００はこのように動作するので、実装遅延が無視できる場合（図６）は、２フレーム分の遅延が生じる。また、１フレーム分の実装遅延がある場合（図７）は、４フレーム分の遅延が生じる。これらの遅延は、図２、図３で示した遅延を同じである。一方、エコー消去装置１００は、Ｋフレームをまとめて周波数分析および周波数合成を行うことで、Ｋフレームあたりの周波数分析点数をＭ（例えば、Ｍ＝ＫＮ＋Ｌ）としている。したがって、Ｍ＝ＫＮ＋Ｌの場合、１フレームあたりの周波数分析点数は、Ｎ＋Ｌ／Ｋとなる。従来のＮ＋Ｌ＝１７９２に対して、Ｎ＝１２８、Ｌ＝１６６４、Ｋ＝２の場合、Ｎ＋Ｌ／Ｋ＝９６０となる。また、Ｎ＝１２８、Ｌ＝１６６４、Ｋ＝３の場合、Ｎ＋Ｌ／Ｋ＝６８２．６６・・・となる。つまり、Ｋ＝２の場合は演算量を約１／２にでき、Ｋ＝３の場合は演算量を約１／３にできる。
【００３２】
図８に、実装遅延が無視できる場合のＫの値とアルゴリズム遅延による遅延量と演算量の関係を示す。また、図９に、１フレーム分の実装遅延がある場合のＫの値とアルゴリズム遅延による遅延量と演算量の関係を示す。どちらの図も、Ｋ＝１の場合が従来に相当する。これらの図からも分かるように、実装遅延が無視できるとき（図８）にはＫ＝２の場合、１フレーム分の実装遅延があるとき（図９）にはＫ＝２とＫ＝３の場合、遅延は従来と同じである。なお、Ｋの値を大きくすれば、遅延量は増加するが演算量を少なくできる。つまり、本発明のエコー消去装置は、遅延を抑えながら（若しくは従来と同じにしながら）、演算量を少なくできる。
【００３３】
［変形例］
なお、エコー消去装置１００の特徴は、次のように表現することもできる。第１周波数分析部１２０、積算部１３０、周波数合成部１４０、第２ベクトル増加部１７０、第２周波数分析部１８０、フィルタ更新部１９０をまとめて、擬似エコー増加ベクトル算出部１１５とする。そうすると、エコー消去装置１００は、第１ベクトル増加部１１０、擬似エコー増加ベクトル算出部１１５、ベクトル減少部１５０、減算部１６０を備える。そして、第１ベクトル増加部１１０は、Ｋ個（ただし、Ｋは２以上の整数）の再生信号ベクトルｘＮ（ｋ），…，ｘＮ（ｋ＋Ｋ−１）の各要素を含むＭ個（ただし、ＭはＫＮ以上の整数）の要素からなる再生信号増加ベクトルｘＭ（ｋ）を求める。擬似エコー増加ベクトル算出部１１５は、再生信号増加ベクトルｘＭ（ｋ）に対する周波数領域での演算によって、Ｍ個の要素からなる疑似エコー増加ベクトルｄ＾Ｍ（ｋ）を求める。ベクトル減少部１５０は、疑似エコー増加ベクトルｄ＾Ｍ（ｋ）から、Ｋ個のＮ要素からなる疑似エコーベクトルｄ＾Ｎ（ｋ），…，ｄ＾Ｎ（ｋ＋Ｋ−１）を生成する。減算部１６０は、収音信号ベクトルｙＮ（ｋ）と疑似エコーベクトルｄ＾Ｎ（ｋ）との減算を行い、残留エコーベクトルｅＮ（ｋ）＝ｙＮ（ｋ）−ｄ＾Ｎ（ｋ）を出力する。
【００３４】
本変形例では、擬似エコー増加ベクトル算出部１１５の処理を、実施例１の方法に限定していない。しかし、本変形例のエコー処理装置でも、もともと発生していた遅延時間を使って信号をまとめることにより、演算量を削減できる。
【００３５】
図１０にコンピュータの機能構成例を示す。上述の実施例は、図１０に示すコンピュータの記録部２０２０に、上記装置としてコンピュータを実行させるプログラムを読み込ませ、制御部２０１０、入力部２０３０、出力部２０４０などに動作させることで実施できる。また、コンピュータに読み込ませる方法としては、プログラムをコンピュータ読み取り可能な記録媒体に記録しておき、記録媒体からコンピュータに読み込ませる方法、サーバ等に記録されたプログラムを、電気通信回線等を通じてコンピュータに読み込ませる方法などがある。
【図面の簡単な説明】
【００３６】
【図１】従来のエコー消去装置を用いた音響再生系の機能構成例を示す図。
【図２】図１の音響再生系でのアルゴリズム遅延が１フレーム分であり、実装遅延が無視できる場合のタイムチャートを示す図。
【図３】図１の音響再生系でのアルゴリズム遅延が１フレーム分であり、実装遅延が１フレーム分の場合のタイムチャートを示す図。
【図４】本発明のエコー消去装置を用いた音響再生系の機能構成例を示す図。
【図５】本発明のエコー消去装置の処理フローを示す図。
【図６】図４の音響再生系でのアルゴリズム遅延が１フレーム分であり、実装遅延が無視できる場合のタイムチャートを示す図。
【図７】図４の音響再生系でのアルゴリズム遅延が１フレーム分であり、実装遅延が１フレーム分の場合のタイムチャートを示す図。
【図８】実装遅延が無視できる場合のＫの値とアルゴリズム遅延による遅延量と演算量の関係を示す図。
【図９】１フレーム分の実装遅延がある場合のＫの値とアルゴリズム遅延による遅延量と演算量の関係を示す図。
【図１０】コンピュータの機能構成例を示す図。
【符号の説明】
【００３７】
１００、８００  エコー消去装置            １１０、８１０  第１ベクトル増加部
１１５  擬似エコー増加ベクトル算出部      １２０、８２０  第１周波数分析部
１３０、８３０  積算部                    １４０、８４０  周波数合成部
１５０、８５０  ベクトル減少部            １６０、８６０  減算部
１７０、８７０  第２ベクトル増加部        １８０、８８０  第２周波数分析部
１９０、８９０  フィルタ更新部            ９１０  第１シリアル／パラレル変換部
９２０  第１パラレル／シリアル変換部      ９３０  音響信号再生部
９４０  エコー経路                        ９５０  音響信号収音部
９６０  第２シリアル／パラレル変換部      ９７０  第２パラレル／シリアル変換部
【図１】
0004729072.tif 000012
【図２】
0004729072.tif 000013
【図３】
0004729072.tif 000014
【図４】
0004729072.tif 000015
【図５】
0004729072.tif 000016
【図６】
0004729072.tif 000017
【図７】
0004729072.tif 000018
【図８】
0004729072.tif 000019
【図９】
0004729072.tif 000020
【図１０】
0004729072.tif 000021