(57)【特許請求の範囲】
【請求項１】
エコーキャンセラに固定小数点方式のＤＳＰを採用した音声収音装置において、
遠端信号を再生する再生部から、近端信号を収音する収音部へ回り込む音響エコーを相
殺するための擬似音響エコー信号を生成する適応フィルタ部を備え、
前記適応フィルタ部からの出力によりスケール値を決定し、前記音響エコーが前記収音
部を経由した音響エコー信号と前記擬似音響エコー信号との差信号である誤差信号に前記
スケール値を乗算するとともに、該スケール値の逆数を前記擬似音響エコー信号に乗じて前記相殺に供するスケール調整手段を設けることにより、前記擬似音響エコー信号のレベルを自動調整することを特徴とする音声収音装置。
【請求項２】
前記スケール調整手段は、
前記適応フィルタ部からの出力によりスケール値を決定し、該スケール値により減衰量および該減衰量の逆数である増幅度を定めるスケール調整部と、
前記誤差信号を前記減衰量により減衰させるスケール減衰部と、
前記適応フィルタ部が出力する前記擬似音響エコー信号を前記増幅度により増幅するスケール増幅部とで構成することを特徴とする請求項１記載の音声収音装置。
【請求項３】
前記自動調整は、前記適応フィルタ部におけるフィルタ係数の最大絶対値を基に、該フィルタ係数が前記ＤＳＰのビット数で定まる値をオーバーフローせず、且つ、前記フィルタ係数の精度を前記ＤＳＰにおいて最大限利用できるように行なうことを特徴とする請求項１または請求項２記載の音声収音装置。
【請求項４】
前記自動調整は、前記適応フィルタ部におけるフィルタ係数の絶対値総和の値を基に、前記適応フィルタ部の出力が前記ＤＳＰのビット数で定まる値をオーバーフローせず、且つ、前記フィルタ係数の精度を前記ＤＳＰにおいて最大限利用できるように行なうことを特徴とする請求項１または請求項２記載の音声収音装置。
【請求項５】
前記自動調整は、前記適応フィルタ部における畳み込み出力値を基に、前記適応フィルタ部の出力が前記ＤＳＰのビット数で定まる値をオーバーフローせず、且つ、前記フィルタ係数の精度を前記ＤＳＰにおいて最大限利用できるように行うことを特徴とする請求項１または請求項２記載の音声収音装置。
【請求項６】
前記遠端信号および前記収音部の出力信号を制限された周波数帯域の信号に分割する帯
域分割手段を設け、
前記適応フィルタ部および前記スケール調整手段は前記分割された周波数帯域の信号対
応に動作することを特徴とする請求項１〜請求項５のいずれかに記載の音声収音装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声収音装置、特に、エコーキャンセラに固定小数点方式のディジタルシグナルプロセッサ（ＤＳＰ：Digital Signal Processor）を採用した音声収音装置に関する。
【背景技術】
【０００２】
遠隔地等からの音声信号（以下、「遠端信号」と記す）を再生し、且つ音声収音装置が設置された地点の音声信号（以下、「近端信号」と記す）を収音して、遠端信号の再生と近端信号の収音を同時に行わなければならない音声収音装置では音響エコーが問題となる。音響エコーとは、スピーカに代表される再生手段から再生された音声などの信号が、マイクのような収音手段によって収音されるために生じ、この再生手段から収音手段に回り込む信号をいう。
【０００３】
従来から音響エコーを消す手段として、周知のようにエコーキャンセラという方式が数多く提案され利用されてきている。音響エコーは再生手段と収音手段の結合によって生じ、音響エコーの経路は、再生手段における利得や収音手段における利得、ならびに再生手段と収音手段との空間的結合によって変わるため、音声収音装置自体の形状や再生手段と収音手段の位置関係などによって大きく変化する。そこで、エコーキャンセラは、音響エコーの経路を推定し、擬似音響エコー信号を遠端信号から生成して、音響エコー信号と擬似音響エコー信号を相殺することによって、音声収音装置からの音響エコー信号の出力の阻止を図っている。
【０００４】
音響エコーの経路推定には適応信号処理の理論が使われており、音響エコー信号と相殺する擬似音響エコー信号を出力するように適応動作する適応フィルタが使用される。適応動作の結果、適応フィルタの係数は音響エコー経路と等価となり、擬似音響エコーは音響エコーと同一になり得る。
【０００５】
音声収音装置における適応信号処理に利用するＤＳＰには、価格や処理速度などの観点から、浮動小数点方式のＤＳＰを避け、固定小数点方式のＤＳＰが多く採用されている。固定小数点方式のＤＳＰでは、演算精度が制限され、例えば１６ビット(=65536段階)での表現しかできない。実際、演算量や演算精度、入力信号のビット精度などの観点から、エコーキャンキャンセラの適応フィルタ係数は１６ビットで表現されることが多い。
【０００６】
このような固定小数点方式のＤＳＰでエコーキャンセラを実現する場合、音響エコー経路が１を超える（オーバフローする）ことがあり得ることを踏まえ、予め小数点位置を調整（以下、「スケーリング」と記す）するのが一般的である。即ち、小数点位置をシフトしておく（オーバフローしないようにする）のである。例えば、適応フィルタの係数が４を超えることがないと予想される場合、１６ビットを２ビットと１４ビットに分け、前者を整数部、後者を小数部とすることで４までの係数を表現する。このような対策は比較的簡単であって、適応フィルタの適応動作において、誤差信号を２ビット右シフトし、出力信号を２ビット左シフトすることだけで実現できる。
【０００７】
ただし、実際に適応フィルタの係数が１を超えるかは音声収音装置の置かれた環境や、再生手段の利得ならびに収音手段の利得に因るため、必ずしも適応フィルタの係数が１より大きくなるとは限らない。このような場合、固定小数点ＤＳＰであると、ただでさえ１６ビットの表現しか有しておらず精度が十分でないのに、前述の１６ビットを２ビットと１４ビットに分けたのに、適応フィルタ係数が１を超えない場合だと、有効となるビット数が１４ビット(16384段階)となってしまい、適応フィルタの係数精度、従って擬似音響エコー信号の精度が大きく劣化することになる。
【０００８】
更に、適応信号処理の演算量の低減を図るため、帯域分割フィルタバンクを利用し、各帯域にてエコー経路の推定を行うエコーキャンセラも提案されているが、このような帯域分割方式を採用したエコーキャンセラでは、その帯域毎に適応フィルタの係数最大絶対値は異なっている。この場合、各帯域で適応フィルタの小数点位置を調整しておく必要があるが、各帯域での音響エコーのレベルは独立の関係となっているため、一意に定めることができないので、対応できる最大絶対値を大きめに設定しておくことが一般的である。その結果、特に高域においての適応フィルタ精度の劣化は著しく、音響エコーの相殺が十分にできないという問題があった。
【０００９】
このような問題に対し、収音手段からの信号に自動利得調整機能を設けることで、解決を図った音響エコーキャンセラ装置（例えば、特許文献１参照）や、適応フィルタにて学習に用いる誤差信号から、適応フィルタ係数のスケーリングのための係数を決め、適応フィルタ係数が最大値を超えないように制御するエコーキャンセラ（例えば、特許文献２参照）が公知である。また、キャンセル信号と反響路からのエコーとしての入力信号との差分である誤差信号を調整するエコーキャンセラ（例えば、特許文献３参照）も知られている。
【００１０】
【特許文献２】特開2002-043985（第３頁、図１）
【特許文献２】特開平04-047720（第２頁、図１）
【特許文献３】特開平06-204917（第２頁、図１）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献３記載の技術では、収音手段からの信号自体の精度が劣化してしまうか、収音手段からの信号に含まれる精度上意味のないデータを利用し、適応フィルタの学習を行うことになってしまうという問題点がある。
【００１２】
また、特許文献２記載の技術では、適応フィルタ係数自体のスケールを調整するためには、適応フィルタ係数の全てに毎回スケール調整係数を乗ずる必要があり現実的ではない。
【００１３】
また、特許文献３記載の技術では、誤差信号のレベルの調整量は一定であるため、帯域分割フィルタバンクを用いたエコーキャンセラにおいては、帯域毎に最適なスケーリングの調整量が異なるので、帯域毎の適応フィルタ係数精度が一定とならないという問題点がある。
【００１４】
そこで、本発明の目的は、適応フィルタ精度の劣化を防ぎ、煩雑は操作なく音響エコーの低減を図った固定小数点ＤＳＰ方式の音声収音装置を提供することにある。
【課題を解決するための手段】
【００１５】
本発明においては、適応フィルタ（帯域分割手段を利用する場合には各帯域毎）にスケール値を設けると共に、その値を適応的に調整する。スケール値とは、適応フィルタの学習に利用する誤差信号に乗ずる係数、もしくはシフト量である。また、スケール値の逆数を適応フィルタ出力（擬似エコー信号）に乗ずる。
【００１６】
スケール値は、以下の３つの基準により自動的に調整される。一つ目は、適応フィルタ係数の最大絶対値であり、フィルタ係数がオーバフローしないよう調整する。二つ目は、適応フィルタ係数の絶対値総和の値であり、フィルタの出力がオーバフローしないように調整する。三つ目は、適応フィルタの畳み込み出力の値であり、フィルタの出力がオーバフローしないように調整する。スケール値の調整は、上記の三つを組み合わせても、どれか一つを利用してもかまわない。
【００１７】
本発明の音声収音装置は、エコーキャンセラに固定小数点方式のＤＳＰを採用した音声
収音装置において、遠端信号を再生する再生部から、近端信号を収音する収音部へ回り込
む音響エコーを相殺するための擬似音響エコー信号を生成する適応フィルタ部を備え、適
応フィルタ部からの出力によりスケール値を決定し、音響エコーが収音部を経由した音響
エコー信号と擬似音響エコー信号との差信号である誤差信号にスケール値を乗算するとともに、該スケール値の逆数を擬似音響エコー信号に乗じて相殺に供するスケール調整手段を設けることにより、擬似音響エコー信号のレベルを自動調整することを特徴とする。
【００１８】
スケール調整手段は、具体的には、適応フィルタ部からの出力によりスケール値を決定し、該スケール値により減衰量および該減衰量の逆数である増幅度を定めるスケール調整部と、誤差信号を減衰量により減衰させるスケール減衰部と、適応フィルタ部が出力する擬似音響エコー信号を増幅度により増幅するスケール増幅部とで構成する。
【００１９】
自動調整は、適応フィルタ部におけるフィルタ係数の最大絶対値を基に、該フィルタ係数がＤＳＰのビット数で定まる値をオーバーフローせず、且つ、フィルタ係数の精度をＤＳＰにおいて最大限利用できるように行なうようにしてもよい。
【００２０】
自動調整は、また、適応フィルタ部におけるフィルタ係数の絶対値総和の値を基に、適応フィルタ部の出力がＤＳＰのビット数で定まる値をオーバーフローせず、且つ、フィルタ係数の精度をＤＳＰにおいて最大限利用できるように行なうようにしてもよい。
【００２１】
自動調整は、また、適応フィルタ部における畳み込み出力値を基に、適応フィルタ部の出力がＤＳＰのビット数で定まる値をオーバーフローせず、且つ、フィルタ係数の精度をＤＳＰにおいて最大限利用できるように行うようにしてもよい。
【００２２】
更に、本発明の音声収音装置は、遠端信号および収音部の出力信号を制限された周波数帯域の信号に分割する帯域分割手段を設け、応フィルタ部およびスケール調整手段は分割された周波数帯域の信号対応に動作するようにしてもよい。
【発明の効果】
【００２３】
本発明によると、適応フィルタ部における学習に必要となる誤差信号をスケール値により減衰させるとともに該減衰量の逆数によって適応フィルタ部の出力を増幅することにより、擬似音響エコーのレベルを自動調整するスケール調整手段を設けたため、固定小数点方式のＤＳＰの精度を最大限活用することが可能となり、エコーキャンセラのエコー消去特性が改善できる。
【００２４】
また、エコーキャンセラの初期設定として必要だった、フィルタ係数のスケーリングパラメータの入力、もしくは再生手段の利得調整が不必要となり、煩雑であった初期設定が軽減される。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について図面を参照しながら説明する。図１は、本発明の音声収音装置の実施の形態を示すブロック図である。
【００２６】
遠端信号入力端子１は遠端信号を入力し、スピーカに代表される再生部２は遠端信号を再生する。また、マイクに代表される収音部３は、音声などの近端信号を収音し、収音信号出力端子４は近端信号を出力する。この出力信号は遠端信号の影響を受けず近端信号のみであることが理想的である。しかし、現実の装置では、再生部２で再生された信号の一部は、再生部２と収音部３の結合によって収音部３へ回り込む音響エコーを生じ、近端信号に混入して収音信号出力端子４から出力されかねない。収音部３から出力される信号（近端信号＋音響エコー信号）を収音信号と記す。
【００２７】
音響エコーの影響を消去するために、適応フィルタ部５，減算部６およびスケール調整手段７から成るエコーキャンセラを設ける。エコーキャンセラは、擬似音響エコーを生成し、音響エコーとの相殺を図る。エコーキャンセラでは適応信号処理が伴うが、その演算量の低減を図るため帯域分割方式を採用している。即ち、遠端信号を各周波数帯域に制限された信号に分割する帯域分割部８と、収音信号を各周波数帯域に制限された信号に分割する帯域分割部９と、各周波数帯域の出力信号を合成し、全周波数帯域の収音信号として出力する帯域合成部１０とを設けている。適応フィルタ部５，減算部６およびスケール調整手段７は、それぞれ分隠された周波数帯域対応に動作する。
【００２８】
帯域分割部８は遠端信号入力端子１からの遠端信号を各々の周波数帯域に制限された信号に分割し、また帯域分割部９は近端信号入力端子３からの収音信号を各々の周波数帯域に制限された信号に分割する。この帯域分割部８，９には、例えばＦＦＴを利用した帯域分割フィルタバンクや、ＳＳＢ変調を利用したフィルタバンクが使用される。
【００２９】
帯域分割部８で各周波数帯域に制限された信号は適応フィルタ部５に入力し、適応フィルタ部５は各周波数帯域での擬似音響エコー信号を生成する。減算部６は、収音部３からの近端信号に含まれる音響エコー信号と、擬似音響エコー信号との差分信号を得る。
【００３０】
即ち、適応フィルタ部５は、各周波数帯域での収音信号と擬似音響エコー信号の差分信号が０（無音）となるように動作する。ただし、近端信号がある場合には、このような適応動作を停止し、近端信号まで消去しないように制御される。
【００３１】
適応フィルタ部５におけるアルゴリズムは、学習同定法やアフィン射影アルゴリズムなどの適応アルゴリズムにより学習を行う。本発明における適応アルゴリズムの手段は問わない。
【００３２】
ところで、音響エコーの経路は、再生部２における利得や収音部３における利得、ならびに再生部２と収音部３との空間的結合によって変わるため、音声収音装置自体の形状や再生部２と収音部３の位置関係などの環境によって大きく変化する。従って、音響エコーの経路に係わる適応フィルタ係数も大きく変化することになる。このような状況にあって、固定小数点ＤＳＰ方式を採用した場合にも、適応フィルタの係数精度、従って擬似音響エコー信号の精度を維持するためにスケール調整部７を設けている。
【００３３】
スケール調整手段７は本発明の中核部であって、各帯域における適応フィルタ部５のスケールを制御する。スケール調整手段７は、適応フィルタ部５からの出力によりスケール値を決定し、適応フィルタ部５における学習に必要となる誤差信号（音響エコー信号と擬似音響エコー信号の差分信号）をスケール値により減衰させる。また、この減衰量の逆数によって適応フィルタ部５の出力を増幅する。即ち、スケール値とは、適応フィルタ部５における学習に利用する誤差信号に乗ずる係数もしくはシフト量である。
【００３４】
これによって、適応フィルタ係数の最大値を環境に応じて任意に決定することが可能となる。即ち、適応フィルタ係数を大きく決定した場合には、誤差信号の減衰量を大きくすると共に適応フィルタ部５の出力の増幅度を少なくする。一方、適応フィルタ係数を小さく決定した場合には、誤差信号の減衰量を小さくすると共に適応フィルタ部５の出力の増幅度を大きくする。このようにして、適応フィルタ部５から出力される擬似音響エコー信号のレベルを自動的に調整する。
【００３５】
図２は、１つの周波数帯域に対するエコーキャンセラの詳細な構成を示し、このような構成が分割される周波数帯域と１対１対応に存在する。図２では、１つの周波数帯域に対する適応フィルタ部１１，１つの周波数帯域に対する減算部１２および１つの周波数帯域に対するスケール調整手段１６が示されている。スケール調整手段１６は、スケール調整部１３と、適応フィルタ部１１の出力を増幅して減算部１２へ出力するスケール増幅部１４と、減算部１２の出力を減衰して適応フィルタ部１１へ出力するスケール減衰部１５とで構成されている。
【００３６】
スケール調整部１３は、適応フィルタ部１１の出力を取り込んで、スケール値を決定する。このスケール値を決定する情報として、（１）適応フィルタ係数の最大絶対値、（２）すべての適応フィルタ係数の絶対値総和、（３）適応フィルタ部５の畳み込み出力値のいずれかを利用する。
【００３７】
これらの情報については、音声処理において毎サンプル取得することが理想的であるが、演算量の観点から、ある程度の間隔（例えば10ms毎）を取って、情報を取得しても、大きな問題にはなりにくい。ただし、場合によっては適応フィルタが破綻することもあり得るので、スケールの調整にマージンを持たせる必要がある。マージンについては、後述の例で具体的に挙げる。
【００３８】
以下、それぞれの方法について場合に分けて説明する。全ての例の条件として、１６ビット固定小数点ＤＳＰとした場合を考える。また、適応フィルタ長をL_hregとする。スケール値は、以下の３つの基準により自動的に調整される。一つ目の方法はフィルタ係数がオーバフローしないよう調整し、二つ目と三つ目の方法は適応フィルタの出力がオーバフローしないように調整する。これら三つの方法は単独で利用しても、また、任意に組み合わせて利用してもよい。
【００３９】
（１）適応フィルタ係数の最大絶対値を利用する場合
適応フィルタ係数の最大絶対値は、適応フィルタ係数がＤＳＰのビット数で定まる値をオーバフローせず、且つ、適応フィルタ係数の精度を固定小数点ＤＳＰにおいて最大限利用できるスケールに調整するための情報である。この方法では、適応フィルタ係数の最大絶対値が、ある一定の範囲に入るようにスケール値を制御する。例えば、１６ビット固定小数点ＤＳＰの場合、符号付整数で表現できる範囲は、-32768〜32767である。この条件で、適応フィルタ係数がＤＳＰのビット数で定まる値をオーバフローせず、且つ、精度を最大限高めるためには、適応フィルタ係数の最大絶対値を32767に近くする必要がある。
【００４０】
適応フィルタ係数の最大絶対値は、スケール調整部１３が適応フィルタ係数（Hreg）全ての値を探索し、絶対値が最も大きい値を得ることで決まる。ここで、この値をHreg_Maxと記すと、
Hreg_max = Max( abs( Hreg[n] ) ) (n=0〜L_hreg)   (1)
スケール調整部１３は、各周波数帯域における適応フィルタの係数の絶対値を検索し、その最大値を得ることで、適応フィルタ部１１に与える誤差信号の減衰量を決定する。具体的には、適応フィルタ係数の最大絶対値Hreg_max をx、目標とする適応フィルタ最大値をtarget とした場合、
delta_s = target/x         (2)
s_new = s_old * delta_s    (3)
x_new = x * s_new /s_old   (4)
ここで、s_oldはスケール調整前のスケール値であり、s_newはスケール調整後のスケール値、x_newはスケール調整後の適応フィルタ係数の最大絶対値である。
【００４１】
例えば、スケール値s_oldが2.5倍となっている時の適応フィルタ係数の最大絶対値xが、16384だった場合に、目標最大値targetを32000とすると、
delta_s = 32000 / ( 16384 ) = 1.953125 
s_new = 2.5 * 1.953125 = 4.8828
となり、スケール調整後の適応フィルタ係数の最大絶対値x_new は、
x_new = x_old / s_new * s_old=16384/2.5*4.8828=32000
に補正される。
【００４２】
スケール調整部１３は、スケール減衰部１５へ s_old / s_new = 2.5/4.8828 を出力し、スケール増幅部１４へ s_new / s_old =4.8828/ 2.5 を出力する。即ち、この数値例では、スケール減衰部１５は誤差信号を減衰し、スケール増幅部１４は適応フィルタ出力を増幅する。
【００４３】
なお、式（2）のように除算を含むスケール値の補正だと、演算量がかかるため、ビットシフトを利用した補正でも構わない。この場合は、適応フィルタの最大絶対値を32767に補正することは不可能であるが、 30000程度以上に補正することは可能である。例えば、適応フィルタの最大絶対値が15000を下回った場合には、スケール値（この方法の場合は乗算値ではなくシフト量）の右シフト量を増やし（もしくは左シフト量を減らし）、 30000を超えた場合には、右シフト量を減らす（もしくは左シフト量を増やす）ことで、常に、適応フィルタの最大絶対値を15000〜30000の範囲に入れることができる。ビット精度という点では、最大限活用し切れていないが、スケール値の自動補正がない場合に比べれば、十分な効果が得られる。
【００４４】
（２）適応フィルタ係数の絶対値総和を利用する場合
（１）の方法におけるように、適応フィルタ係数の最大絶対値だけを見ていると、適応フィルタ出力値がＤＳＰのビット数で定まる値をオーバフローしてしまう場合がある。適応フィルタの出力は、適応フィルタ係数と参照信号（近端信号）の畳み込み演算であるため、適応フィルタ係数の絶対最大値が大きい場合、出力がＤＳＰのビット数で定まる値をオーバフローし易いのである。そこで、適応フィルタ係数の絶対値総和を情報として利用する。この場合、適応フィルタ係数の絶対値総和は、適応フィルタの出力がＤＳＰのビット数で定まる値をオーバフローせず、且つ、適応フィルタ係数の精度を固定小数点ＤＳＰにおいて最大限利用できるスケールに調整するための情報である。
【００４５】
１６ビット固定小数点ＤＳＰを考えた場合、適応フィルタの絶対値総和の値が、 32767以下である必要がある。そこで、前述の適応フィルタの最大絶対値によるスケール値補正のように、絶対値総和の値が32767以下になるようにスケール値を決定する。この方法は、適応フィルタの最大絶対値によるスケール値補正と同様の手法を用いることができ、除算による乗算値の算出やシフト量を求める方法が適している。
【００４６】
適応フィルタ係数の絶対値の総和をHreg_sumと記すと、
Hreg_sum = Sum( abs( Hreg[n] ) ) (n=0〜L_hreg)   (5)
例えば、Hreg_sum=32000という情報が得られたとする。適応フィルタ係数の絶対値の総和Hreg_sum をx、目標とする適応フィルタ最大値をtarget とすると、(2)式により、
delta_s = target/x = 32000 / ( 32000 ) = 1.0
この場合は、(3)式により、スケール調整後のスケール値 s_new に変わりがなく、スケール増幅部１４およびスケール減衰部１５は、これまでのスケールでの動作を継続する。
【００４７】
なお、この方法では適応フィルタ係数が極端に小さくなる可能性がある。これは、適応フィルタ係数の絶対値総和が固定小数点ＤＳＰの表現できる最大値以下になるよう、スケールを調整する必要があるためで、適応フィルタのフィルタ長が長い（総和における加算回数が多い）場合は、スケール調整によって適応フィルタ係数が小さくなり、係数精度が極端に落ちる場合がある。このような問題を回避したい場合には、次に説明する、適応フィルタ出力値を参照し、その時点における適応フィルタ出力値がオーバフローしないように、適応フィルタ係数を最大化することを試行する方法を採用するのがよい。
【００４８】
（３）適応フィルタの畳み込み出力値を利用する場合
適応フィルタの出力値は、実際に適応フィルタ部１１へ入力信号を入れ、その出力信号を観測することで決定できる。この値をHreg_out、適応フィルタ部１１に入力する信号列を Xreg と記すと、
Hreg_out = Sum( Hreg[n] * Xreg[n] ) (n=0〜L_hreg)   (6)
いま、Hreg_out=10000 が得られたとすると、(2)式により、
delta_s = 32000 / ( 10000 ) = 3.2
ただし、この方法だと瞬時的に適応フィルタ出力がＤＳＰのビット数で定まる値をオーバフローする可能性があり得る。そこで、適応フィルタの畳み込み演算時にＤＳＰのビット数で定まる値をオーバフローしないように処理方法を変更する必要がある。例えば、畳み込みの総和バッファのビット長を大きめに持っておくことや、畳み込みの加算時にオーバフローしないような係数を乗ずるなどの方法がある。この場合、適応フィルタの畳み込み出力値は、適応フィルタの出力がＤＳＰのビット数で定まる値をオーバフローせず、且つ、適応フィルタ係数の精度を固定小数点ＤＳＰにおいて最大限利用できるスケールに調整するための情報である。
【００４９】
以上に説明した（１）適応フィルタ係数の最大絶対値、（２）適応フィルタ係数の絶対値総和、（３）適応フィルタ出力値は、ほぼ必ず異なる。全ての方法を考慮する場合には、delta_s が最小値となる方法を採用する。Hreg_maxのみを利用する場合だと、適応フィルタ係数の精度は大幅に改善されるものの、適応フィルタ畳み込み演算（適応フィルタ出力演算）時にオーバフローを生じることがある。また、Hreg_sumでは、適応フィルタ畳み込み演算（適応フィルタ出力演算）時にオーバフローすることを完全に回避できるが、適応フィルタ精度が著しく劣化する場合がある。更に、Hreg_outでは、適応フィルタ精度がある程度改善でき、適応フィルタ畳み込み演算（適応フィルタ出力演算）時にオーバフローすることをある程度回避できる。
【００５０】
このように、それぞれの方法には特徴が異なるため、どれが最も良いとはいえない。実際に本発明を利用する場合には用途によって使い分ける。例えば、適応フィルタ畳み込み演算結果を16ビットでなく、３２ビットで保存できるような場合、適応フィルタ出力のオーバフローはほぼ生じないと考えてもよい。このようなプログラムにした場合には、Hreg_maxの値で適応フィルタのスケールを決定し、適応フィルタの精度を改善したほうが良い結果が得られる。
【００５１】
また、適応フィルタの目標最大値を、最大精度となる32768ではなく、16384などと小さく設定することで、適応フィルタ出力のオーバフローは生じにくくなるため、精度をある程度犠牲にすることで、Hreg_maxの値を利用しスケール値を決定することも良い結果を得られる。これが、前述のマージンにあたる。さらに、適応フィルタ係数を１６ビットではなく、３２ビットなどで置ける場合には、Hreg_sumを利用して、適応フィルタのスケールを決定することで、出力のオーバフローを完全に回避できる。
【００５２】
ただし、上記のような演算を行う場合、演算量が大幅に増加するため、実装上不可能な場合もある。実際には、Hregを１６ビット，Xregを１６ビットの短精度演算を行う場合が多く、そのような場合には、Hreg_outを用いて、適応フィルタのスケールを決めれば、適応フィルタのスケールをまったく調整しない場合と比較し、良い結果を得られる筈である。
【００５３】
なお、以上のスケール値決定のタイミングは、スケール決定情報取得のタイミングと同じく、音響信号のサンプル毎に行うことが理想である。
【００５４】
スケール調整部１３において求まったスケール値は、スケール減衰部１５ならびにスケール増幅部１４に渡る。スケール減衰部１５は、減算部１２から適応フィルタ部１１への誤差信号をスケール値により減衰し、スケール増幅部１４は、適応フィルタ部１１から減算部１２への出力信号を減衰量の逆数で増幅する。
【００５５】
スケール増幅部１４の出力信号（擬似音響エコー信号）は、減算部１２によって収音信号から減算され、誤差信号が得られる。この誤差信号は音響エコーが擬似音響エコー信号と相殺された残差信号であり、これを出力信号とすることで、音響エコーの影響が消去された収音信号が得られる。
【００５６】
図３は、スケール値の補正がされていない適応フィルタ係数の観測結果を示す。図４は、スケールの補正がされた適応フィルタ係数の観測結果を示す。それぞれの図における２つの適応フィルタ係数は、音響系における音響エコーを帯域分割手段９によって各周波数帯域に分割し、それぞれの帯域で適応処理によりエコーキャンセルを行った時に得られた、２つの帯域の適応フィルタ係数である。図３，４それぞれの左右の適応フィルタ係数を比べると、周波数帯域が異なることによって、適応フィルタ係数の大きさに大きな差があることが分かる。
【００５７】
これらの適応フィルタ係数を見比べると、スケール調整しない場合のフィルタ係数は、周波数帯域間で最大値に差がある。この場合、左側に示された帯域の係数の最大値が小さくなっており、係数精度が悪くなっている。一方、スケール調整後の適応フィルタ係数を見ると、周波数帯域間の適応フィルタ係数の最大値がほぼ一定となり、適応フィルタ係数の精度に差がなくなっている。これによって、周波数帯域分割による各周波数帯域での音響エコー消去量にばらつきがなくなり、適応フィルタの性能を活用できていることが分かる。
【００５８】
以上に説明したパラメータなどは、記載の内容に限定されたものではなく、その要旨を維持する範囲内で変更可能である。
【図面の簡単な説明】
【００５９】
【図１】本発明の音声収音装置の実施の形態を示すブロック図
【図２】１つの周波数帯域に対するエコーキャンセラの詳細な構成を示す図
【図３】スケール調整しない場合の適応フィルタ係数の観測例を示す図
【図４】スケール調整した場合の適応フィルタ係数の観測例を示す図
【符号の説明】
【００６０】
１      遠端信号入力端子
２      再生部
３      収音部
４      収音信号出力端子
５      適応フィルタ部
６      減算部
７      スケール調整手段
８      帯域分割部
９      帯域分割部
１０    帯域合成部
１１    適応フィルタ部
１２    スケール減算部
１３    スケール調整部
１４    スケール増幅部
１５    スケール減衰部
１６    スケール調整手段
【図１】
0005082144.tif 000002
【図２】
0005082144.tif 000003
【図３】
0005082144.tif 000004
【図４】
0005082144.tif 000005