(57)【要約】【課題】  マイク入力にエコー以外の音声（利用者の音声等）が含まれているか否かを速やかに正しく判定することができる音響信号処理装置を提供する。【解決手段】  スピーカから出力される前の音声信号を第１のスペクトルデータに変換する第１の変換部と、マイクから入力された音声信号を第２のスペクトルデータに変換する第２の変換部と、前記第１のスペクトルデータ及び前記第２のスペクトルデータに基づいて非エコー音声の有無を判定する判定部と、前記第１のスペクトルデータ及び前記第２のスペクトルデータを入力し、適応フィルタを用いてエコーを消去するエコー消去部と、を備え、前記エコー消去部は、前記非エコー音声が有る場合、前記適応フィルタの学習の強さを示す係数を、前記非エコー音声が無い場合に比べ、低くする音響信号処理装置。【選択図】  図１
2018207221.tif 000002
【特許請求の範囲】
【請求項１】
スピーカから出力される前の音声信号を第１のスペクトルデータに変換する第１の変換部と、
マイクから入力された音声信号を第２のスペクトルデータに変換する第２の変換部と、
前記第１のスペクトルデータ及び前記第２のスペクトルデータに基づいて非エコー音声の有無を判定する判定部と、
前記第１のスペクトルデータ及び前記第２のスペクトルデータを入力し、エコーを消去するための適応フィルタを用いて誤差出力を計算するエコー消去部と、
を備え、
前記エコー消去部は、
前記非エコー音声が有る場合、前記適応フィルタの学習の強さを示す係数を、前記非エコー音声が無い場合に比べ、低くする音響信号処理装置。
【請求項２】
前記判定部は、
前記第２のスペクトルデータのエコー成分を抑圧するエコー抑圧部と、
前記エコー抑圧部の出力結果から音声信号を生成する生成部と、を有する請求項１に記載の音響信号処理装置。
【請求項３】
前記判定部は、
前記生成部が生成した音声信号の波形データの振幅が所定の閾値以上のデータ数を計算し、
前記データ数が所定の閾値以上の場合に、前記非エコー音声が有ると判定する請求項２に記載の音響信号処理装置。
【請求項４】
前記適応フィルタの学習の強さを示す係数はステップサイズである請求項１に記載の音響信号処理装置。
【請求項５】
前記エコー消去部の後段に、残留エコー抑圧部をさらに備える請求項１に記載の音響信号処理装置。
【請求項６】
他のマイクから入力された環境雑音信号を第３のスペクトルデータに変換する第３の変換部と、
前記第３のスペクトルデータを抑圧する環境雑音抑圧部と、をさらに備える請求項１に記載の音響信号処理装置。
【請求項７】
スピーカから出力される前の音声信号を第１のスペクトルデータに変換する第１の変換ステップと、
マイクから入力された音声信号を第２のスペクトルデータに変換する第２の変換ステップと、
前記第１のスペクトルデータ及び前記第２のスペクトルデータに基づいて非エコー音声の有無を判定する判定ステップと、
前記第１のスペクトルデータ及び前記第２のスペクトルデータを入力し、エコーを消去するための適応フィルタを用いて誤差出力を計算するエコー消去ステップと、
を備え、
前記エコー消去ステップは、
前記非エコー音声が有る場合、前記適応フィルタの学習の強さを示す係数を、前記非エコー音声が無い場合に比べ、低くする音響信号処理方法。
【請求項８】
スピーカから出力される前の音声信号を第１のスペクトルデータに変換する第１の変換ステップと、
マイクから入力された音声信号を第２のスペクトルデータに変換する第２の変換ステップと、
前記第１のスペクトルデータ及び前記第２のスペクトルデータに基づいて非エコー音声の有無を判定する判定ステップと、
前記第１のスペクトルデータ及び前記第２のスペクトルデータを入力し、エコーを消去するための適応フィルタを用いて誤差出力を計算するエコー消去ステップと、
をコンピュータに実行可能な音響信号処理プログラムであって、
前記エコー消去ステップは、
前記非エコー音声が有る場合、前記適応フィルタの学習の強さを示す係数を、前記非エコー音声が無い場合に比べ、低くする音響信号処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音響的なエコーを除去する装置、方法及びプログラムに関する。
する。
【背景技術】
【０００２】
利用者の音声をマイクロホンで受音し、かつ所定のシステム音声をスピーカから拡声出力する装置においては、スピーカから拡声出力されたシステム音声が空気などを伝播してマイクロホンに拾われる現象がしばしば発生する。このとき、マイクロホンに拾われるシステム音声由来の音はシステム音声のエコーと呼ばれる。
【０００３】
例えば、利用者の音声を認識してサービスを提供するロボットでは、ロボットの発したシステム音声がエコーとなって自身のマイクロホンに拾われてしまい、利用者が発話していないにも関わらず、このエコーを利用者の音声であると誤ってロボットが認識し、何らかの応答を開始してしまう問題が発生する。
【０００４】
したがって、このような誤応答が起こらないよう、マイクロホン入力に混入したシステム音声のエコーを除去する必要がある。このとき、スピーカから拡声出力されるロボットのシステム音声がどのような音声であるかは既知であるから、一般にエコー消去器と呼ばれる機能によってマイクロホン入力からシステム音声のエコーを消去することが可能である。
【０００５】
エコー消去器は、学習同定法（Ｎｏｒｍａｌｉｚｅｄ  Ｌｅａｓｔ  Ｍｅａｎ  Ｓｑｕａｒｅ  アルゴリズム）などを用いてシステム音声の伝播経路（以下、エコーパスと呼ぶ）の伝達関数を適応フィルタに学習させ、このフィルタ係数にシステム音声を掛けることでエコーを模擬した音声（以下、エコーレプリカと呼ぶ）を生成し、このエコーレプリカをマイクロホン入力から差し引くことによって、エコーを消去した出力音声（以下、誤差出力と呼ぶ）を生成する。このような適応フィルタの学習がうまく進めば、出力音声にはエコーを含まない音声が残るはずである。
【０００６】
しかしながら、エコーとともに非エコー音声（利用者の音声や環境雑音など）がマイクロホンから入力されている状況（非エコー音声有りの状態）では適応フィルタの学習がうまく進まず、エコーの消え残りや利用者音声の歪みをもたらすことがある。これを回避するために、非エコー音声有りの状態を検出する検出器を設け、非エコー音声有りの状態が検出されると適応フィルタの学習を止めたり遅らせたりする制御を加える。
【０００７】
特許文献１には、拡声出力された音声とエコーレプリカとマイクロホン入力のレベルや相関から通話状態（非エコー音声の有無など）を判定する通話判定装置が開示されている。この通話判定装置では、通話を行うそれぞれの局で独立して通話状態を判定すると誤る可能性があるため、両局でそれぞれ行った判定結果を突き合わせて通話状態を判定する必要がある。
【０００８】
また、特許文献２では、信号適応処理装置及びエコー抑圧装置における、学習同定法などによる適応フィルタの学習に際して、エコー消去後の出力音声パワーに従って適応フィルタの学習をＯＮ／ＯＦＦ制御する技術が開示されている。この技術は、マイクロホン入力からエコー成分を消去した後の音声レベルが所定閾値を超えるなら、マイクロホン入力にはエコー以外の音声が含まれているとして非エコー音声有りの状態を検出するものである。
【０００９】
この技術の場合、エコー消去後の出力音声に依存して適応フィルタの学習がＯＮ／ＯＦＦされるため、適応フィルタの正しい学習がある程度進んだ段階では正しいＯＮ／ＯＦＦ制御が可能である。
【００１０】
しかしながら、フィルタが十分に適応していない学習の初期段階では、このＯＮ／ＯＦＦ制御に誤りが生じ、その結果として誤ったフィルタが学習されるなど、学習が遅くなる可能性がある。これは非エコー音声検出と適応フィルタ学習が鶏と卵のように相互に依存し合っているためである。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２００８−０６０９３８号公報
【特許文献２】特開平０８−０６５２１４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
本発明は、このような課題に着目して鋭意研究され完成されたものであり、その目的は、非エコー音声検出と適応フィルタ学習の相互依存性を排除しつつ、エコーを含まない（あるいはエコーを弱められた）音声に基づいて、マイク入力にエコー以外の音声（利用者の音声等）が含まれているか否かを速やかに正しく判定することにある。
【課題を解決するための手段】
【００１３】
上記課題を解決するために、本発明は、スピーカから出力される前の音声信号を第１のスペクトルデータに変換する第１の変換部と、マイクから入力された音声信号を第２のスペクトルデータに変換する第２の変換部と、前記第１のスペクトルデータ及び前記第２のスペクトルデータに基づいて非エコー音声の有無を判定する判定部と、前記第１のスペクトルデータ及び前記第２のスペクトルデータを入力し、適応フィルタを用いてエコーを消去するエコー消去部と、を備え、前記エコー消去部は、前記非エコー音声が有る場合、前記適応フィルタの学習の強さを示す係数を、前記非エコー音声が無い場合に比べ、低くする音響信号処理装置である。
【発明の効果】
【００１４】
本発明によれば、マイク入力にエコー以外の音声（利用者の音声等）が含まれているか否かを速やかに正しく判定することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例１に係る音響信号処理装置の機能ブロック図である。
【図２】本発明の実施例１に係るエコー消去部６の機能ブロック図である。
【図３】本発明の実施例１に係る非エコー音声有無判定部９の機能ブロック図である。
【図４】本発明の実施例１に係る音響信号処理装置の処理の流れを示すフローチャートである。
【図５】本発明の実施例１に係る音響信号処理装置のハードウェア構成図である。
【図６】本発明の実施例１に係る音響信号処理装置による処理の結果を示す図である。
【図７】本発明の実施例２に係る音響信号処理装置の機能ブロック図である。
【図８】本発明の実施例２に係る音響信号処理装置の処理の流れを示すフローチャートである。
【図９】本発明の実施例２に係る音響信号処理装置による処理の結果を示す図である。
【発明を実施するための形態】
【００１６】
図面を参照しながら本発明の実施の形態を説明する。なお、各図において共通する部分には同一の符号を付し、重複した説明は省略する。
【実施例１】
【００１７】
図１は、本発明の実施例１に係る音響信号処理装置の機能ブロック図である。この実施例では、利用者の音声を認識してサービスを提供するロボットに適用される音響信号処理装置について説明する。ここでの、システム音声とは、ロボットが発した音声をいう。
【００１８】
（構成）
スピーカ１は、システム音声の信号ｘ（ｔ）を拡声出力する。マイク２は、利用者の音声などを音声信号ｍ（ｔ）として入力するためのマイクロホンである。エコー３は、スピーカ１から拡声出力されたシステム音声のエコーを示す。
【００１９】
エコーの伝搬経路Ｈは、システム音声のエコー３がマイク２に届く伝搬経路（エコーパス）を示す。ここで、ｔは音声信号のサンプリング周期における時刻を表すインデックスである。
【００２０】
第１の周波数分解部４は、システム音声の時間領域の音声信号ｘ（ｔ）をＦＦＴ（Ｆａｓｔ  Ｆｏｕｒｉｅｒ  Ｔｒａｎｓｆｏｒｍ）処理によって、周波数領域のスペクトルデータｘ（ω,ｆ）に変換する。すなわち、周波数分解部４は、スピーカ１から出力される前の音声信号x(t)を第１のスペクトルデータｘ（ω,ｆ）に変換する第１の変換部といえる。
【００２１】
ここで、ωはＦＦＴ出力の周波数ビン番号を表すインデックスである。ＦＦＴ処理では、所定サンプル数（フレーム長ＦＬ）の解析窓を所定サンプル数（フレームシフト量ＦＳ）ずつずらしながら、解析窓内の時間領域信号を周波数領域のスペクトルデータに変換する。これがＦＦＴの処理単位（フレーム）である。ｆはＦＦＴの処理単位で数えた時刻（フレーム番号）を表すインデックスである。時刻ｆに複素数として得られた第１のスペクトルデータｘ（ω,ｆ）は実部のスカラ値と虚部のスカラ値から成る２次元のベクトルデータである。そのベクトルの長さと向きがωで表される周波数成分の振幅と位相を表している。
【００２２】
同様に、マイク２から入力された音声信号ｍ（ｔ）も、第２の周波数分解部５によって周波数領域のスペクトルデータｍ（ω,ｆ）に変換される。すなわち、周波数分解部５は、マイク２から入力された音声信号ｍ（ｔ）を第２のスペクトルデータｍ（ω,ｆ）に変換する第２の変換部といえる。
【００２３】
図２は、本発明の実施例１に係るエコー消去部６の機能ブロック図である。エコー消去部６は、適応フィルタ１１と減算器１２とからなり、マイク入力である第２のスペクトルデータｍ（ω,ｆ）と、システム音声である第１のスペクトルデータｘ（ω,ｆ）とを入力とし、誤差出力ｅ（ω,ｆ）を式（１）から計算することによって、第２のスペクトルデータｍ（ω,ｆ）からエコー成分を消去する機能ブロックである。ここで、ｙ（ω,ｆ）はエコーレプリカであり、第１のスペクトルデータｘ（ω,ｆ）にフィルタ係数ｗ（ω,ｆ）を掛けることで計算される。
【数１】
2018207221.tif 000003
【００２４】
式（１）のフィルタ係数ｗ（ω,ｆ）は、式（２）に示す学習同定法（Ｎｏｒｍａｌｉｚｅｄ  Ｌｅａｓｔ  Ｍｅａｎ  Ｓｑｕａｒｅｓアルゴリズム）によりエコーパスＨの伝達特性を学習する。ここで、＊（アスタリスク）は複素共役を表し、μは学習速度を制御するステップサイズである。
【数２】
2018207221.tif 000004
【００２５】
学習同定法（ＮＬＭＳアルゴリズム）は平均二乗誤差最小化規範の確率勾配アルゴリズムであるため、これを用いたフィルタ係数ｗ（ω,ｆ）の学習は、常に誤差出力ｅ（ω,ｆ）に含まれる第１のスペクトルデータｘ（ω,ｆ）と相関のある成分のパワーを最小化するフィルタ係数ｗ（ω,ｆ）を求めるように進行する。そのため、第２のスペクトルデータｍ（ω,ｆ）が利用者音声などのエコー以外の成分を含んでいると、その利用者音声の一部（第１のスペクトルデータｘ（ω,ｆ）に含まれる周波数成分）までも消し去るようにフィルタを学習させてしまう。
【００２６】
しかしながら、このようにして学習される適応フィルタ１１は決して正しい値ではないため、エコーの消え残りや利用者音声の歪みの原因となる。それゆえ、第２のスペクトルデータｍ（ω,ｆ）がエコー以外の音声を含んでいる状況（非エコー音声有り状態）を検出して適応フィルタ１１の学習を止めたり弱めたりする制御が必要になる。
【００２７】
これを実現するため、エコー消去部６は、ステップサイズμの値を後述するＤＴ（ｆ）が０（非エコー音声無し状態）か１（非エコー音声有り状態）かに応じて制御する。すなわち、μは非エコー音声有り状態には非エコー音声無し状態よりも減じられ、その結果、適応フィルタ１１の学習の強さ（学習速度とも言う）はこの間低く抑えられる。つまり、ステップサイズμは、適応フィルタ１１の学習の強さを示す係数である。
【００２８】
非エコー音声有無判定部９は、エコー消去部６が適応フィルタ１１の学習を止めたり弱めたりする制御を行うために、マイク入力にエコー以外の音声（利用者の音声等）が含まれているか否かを判定する機能ブロックである。詳細については後述するが、この判定をより速やかに正しく行うことで、エコー消去部６の性能が向上するという効果を有する。
【００２９】
しかしながら、このようなエコー消去部６を用いても、残留エコーが残る場合がある。残留エコーは、例えばエコー消去後の音声を認識する場合に、その精度に悪影響を及ぼす可能性がある。そこで、本実施例では、エコー消去部６の後段に残留エコー抑圧部７を設けることにする。ただし、残留エコーの影響は音声認識処理などの後段処理の要求によって変わるため、残留エコー抑圧部７は本実施例に必須の構成ではない点に留意していただきたい。
【００３０】
図１に示す残留エコー抑圧部７は、誤差出力ｅ（ω,ｆ）と第１のスペクトルデータｘ（ω,ｆ）を入力とし、式（３）に従って誤差出力ｅ（ω,ｆ）に残留するエコー成分を抑圧した音声ｏ２（ω,ｆ）を生成する。
【数３】
2018207221.tif 000005
【００３１】
式（４）に示すように、ｏ１（ω,ｆ）はｅ（ω,ｆ）の振幅をＧ倍した音声である。このＧは誤差出力ｅ（ω,ｆ）に含まれる残留エコーの大きさの比率を近似した係数である。Ｇの数値は実験的に求めておく。また、ＤＳ（ω,ｆ）は抑圧係数の瞬時値であり、ｇａｉｎ（ω,ｆ）は忘却係数により近似的に計算されるＤＳ（ω,ｆ）の移動平均値である。また、ｇｓは抑圧の強さを与えるための係数である。
【数４】
2018207221.tif 000006
【００３２】
図１に示す波形生成部８は、残留エコー抑圧部７による音声ｏ２（ω,ｆ）を逆ＦＦＴ処理することで時間領域の波形信号Ｏ（ｔ）を生成する。このＯ（ｔ）が本実施例での最終的な出力音声信号である。
【００３３】
次に、図１に示す非エコー音声有無判定部９について説明する。図３は、本発明の実施例１に係る非エコー音声有無判定部９の機能ブロック図である。非エコー音声有無判定部９は、エコー抑圧部２１と、波形生成部２２と、判定部２３とを備える。
【００３４】
エコー抑圧部２１は、第２のスペクトルデータｍ（ω,ｆ）と第１のスペクトルデータｘ（ω,ｆ）を入力とし、式（５）に従って第２のスペクトルデータｍ（ω,ｆ）に含まれるエコー成分を抑圧した音声ｓ（ω,ｆ）を求める。
【数５】
2018207221.tif 000007
【００３５】
ここで、式（５）のｇａｉｎ（ω,ｆ）は下記の式（６）で計算される抑圧係数である。
【数６】
2018207221.tif 000008
【００３６】
式（６）のＭＲ（ω,ｆ）はスピーカ１からマイク２までの利得の移動平均値を表し、ＥＬ（ω,ｆ）はＭＲ（ω,ｆ）から推定したエコーの大きさである。ＮＬ（ω,ｆ）はＥＬ（ω,ｆ）から計算した現在の非エコー音声の大きさであり、ｇｓは抑圧の強さを与えるための係数である。ＦＬ（ω,ｆ）はＮＬ（ω,ｆ）の下限値を与える量であり、第２のスペクトルデータｍ（ω,ｆ）から決定される。以上の結果、現在の非エコー音声の大きさとしてＮＬ（ω,ｆ）をＦＬ（ω,ｆ）でフロアリングしたＸＸ（ω,ｆ）が算出される。そして、ｇａｉｎ（ω,ｆ）が第２のスペクトルデータｍ（ω,ｆ）に対する非エコー音声の大きさＸＸ（ω,ｆ）の比として計算される。
【００３７】
式（５）により計算されたｓ（ω,ｆ）は次段の波形生成部２２により時間領域の音声信号ｓ（ｔ）に変換される。
【００３８】
続く判定部２３では、式（７）に示すように、最新のフレームシフト量分のｓ（ｔ）の中で振幅絶対値|ｓ（ｔ）|が閾値ｔｈ２以上となるサンプルの個数Ｓが計算される。この計算結果Ｓが閾値ｔｈ１以上となったとき、当該フレームｆは非エコー音声有り状態であると判断され、ＤＴ（ｆ）＝１が出力される。また、それ以外の場合には、非エコー音声無し状態であるとして、ＤＴ（ｆ）＝０が出力される。
【数７】
2018207221.tif 000009
【００３９】
このように、第２のスペクトルデータｍ（ω,ｆ）にエコー抑圧処理を掛けることで、ｓ（ω,ｆ）に含まれるエコーを適応フィルタ１１で除去するよりも速く抑圧することができる。
【００４０】
また、ｓ（ω,ｆ）を一度時間領域の波形ｓ（ｔ）に変換し、その波形中で閾値ｔｈ２以上となる振幅値を数えて閾値処理することによって、振幅が大きくても長続きしない抑圧初期のエコーや突発的なエコー以外の雑音に対して頑健にすることができる。
【００４１】
このように、非エコー音声有無判定部９内のエコー抑圧部２１がエコーを速く抑圧できるのは、式（５）のｇａｉｎ（ω,ｆ）が速やかに求められることによる。ｇａｉｎ（ω,ｆ）は実数であるから、エコー抑圧部２１は第２のスペクトルデータｍ（ω,ｆ）の位相を変えずに振幅だけを変える。これは精度的に十分ではないが、非エコー音声の有無を振幅に基づいて判定するには十分である。要するに、エコー抑圧部２１は、精度よりも速さに重点を置いて第２のスペクトルデータｍ（ω,ｆ）に含まれるエコーを抑圧する。これに対し、エコー消去部６は精度に重点を置いて第２のスペクトルデータｍ（ω,ｆ）に含まれるエコーを消去する手段である。式（１）のｙ（ω,ｆ）も、ｗ（ω,ｆ）も複素数であるから、エコー消去部６は第２のスペクトルデータｍ（ω,ｆ）の振幅と位相を制御して高精度のエコー消去を行う。しかしながら、エコーの消えるｗ（ω,ｆ）が求まるまでには式（２）の計算を数多く繰り返さなければならないので時間を要する。
【００４２】
図４は、本発明の実施例１に係る音響信号処理装置の処理の流れを示すフローチャートである。本実施例の音響信号処理装置を起動すると、まず初期化処理ステップＳ１が実行される。この処理で時刻インデックスtとフレーム番号fが０に初期化される。
【００４３】
続くＦＳサンプル入力処理ステップＳ２では、ｍ（ｔ）、ｘ（ｔ）の各音声信号がフレームシフト量ＦＳサンプル分だけ入力される。
【００４４】
次にＦＬサンプル蓄積判定処理ステップＳ３では、これまでに入力されたｍ（ｔ）、ｘ（ｔ）の各音声信号のサンプル数がＦＦＴ解析窓の長さであるフレーム長ＦＬ以上か否かを判定する。もし、これまでに入力されたｍ（ｔ）、ｘ（ｔ）の各音声信号のサンプル数がフレーム長ＦＬに満たない場合は以降のＦＦＴ処理を行えないので、図中左（Ｎｏ）に分岐してダミー出力生成処理ステップＳ９を実行する。一方、そうでない場合は図中下（Ｙｅｓ）に分岐して周波数分解処理ステップＳ４を実行する。
【００４５】
ダミー出力生成処理ステップＳ９では、例えば出力音声信号Ｏ（ｔ）＝ｍ（ｔ）として、マイク入力信号をそのまま出力するか、または無音を出力する。
【００４６】
周波数分解処理ステップＳ４は第１の周波数分解部４と第２の周波数分解部５に対応した処理ステップであり、入力されたｘ（ｔ）、ｍ（ｔ）の各音声信号を第１のスペクトルデータｘ（ω,ｆ）、第２のスペクトルデータｍ（ω,ｆ）に変換する。
【００４７】
非エコー音声検出処理ステップＳ５は、非エコー音声有無判定部９に対応した処理ステップであり、式（５）、式（６）、及び、式（７）の計算により、第２のスペクトルデータｍ（ω,ｆ）と第１のスペクトルデータｘ（ω,ｆ）からＤＴ（ｆ）の値を決定する。
【００４８】
エコー消去処理ステップＳ６はエコー消去部６に対応した処理ステップであり、式（１）及び式（２）の計算により、ｅ（ω,ｆ）を計算するとともに、ＤＴ（ｆ）に基づくステップサイズμの制御によりフィルタ係数ｗ（ω,ｆ）を更新する。
【００４９】
残留エコー抑圧処理ステップＳ７は、残留エコー抑圧部７に対応した処理ステップであり、式（３）及び式（４）の計算により、ｅ（ω,ｆ）から残留エコーを抑圧した音声ｏ２（ω,ｆ）を計算する。
【００５０】
出力生成処理ステップＳ８は、波形生成部８に対応した処理ステップであり、ｏ２（ω,ｆ）から逆ＦＦＴ処理により出力音声信号Ｏ（ｔ）を計算する。なお、ダミー出力生成処理ステップＳ９と出力生成処理ステップＳ８を実行すると、処理はＦＳサンプル入力処理ステップＳ２に戻る。その際、時刻インデックスｔはＦＳだけ増加され、フレーム番号ｆは１だけ増加される。
【００５１】
図５は、本発明の実施例１に係る音響信号処理装置のハードウェア構成図である。本実施例は、図１から図３の機能ブロックによって示される音響信号処理装置や、図４のフローチャートによって示される音響信号処理方法に限定されない。例えば、コンピュータを図１の音響信号処理装置として機能させたり、図４の音響信号処理方法の処理手順を実行させるプログラムとして実施したりすることも可能である。
【００５２】
具体的には、本実施例は図５に示すようにコンピュータを使って実施することが可能である。ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１０３には、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）１０４、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）１０５、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）１０６、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）１０７、マウス／キーボード１０８及びディスプレイ１０９が接続される。これらはコンピュータを構成する一般的な要素である。
【００５３】
その他ストレージ１１０は、外部から記憶メディアを介してプログラムやデータをコンピュータに供給するためのドライブ類、具体的には光学ディスクドライブ、磁気ディスクドライブ、ＣＦ（Ｃｏｍｐａｃｔ  Ｆｌａｓｈ）／ＳＤ（Ｓｅｃｕｒｅ  Ｄｉｇｉｔａｌ）カードスロットやＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）メモリなどである。
【００５４】
マイクロホン１０１及びスピーカ１１２は、図１に示したマイク２及びスピーカ１に対応している。また、マイクロホン１１３は、後述の実施例２で説明する雑音入力用のマイクに対応している。
【００５５】
マイクロホン１０１及びマイクロホン１１３によって音波が電気的な信号に変換され、Ａ／Ｄ変換器１０２及びＡ／Ｄ変換器１１４によってデジタルデータに変換される。Ａ／Ｄ変換器１０２及びＡ／Ｄ変換器１１４からのデジタルデータは、プログラム命令を実行する過程でＣＰＵ１０３によって処理される。
【００５６】
図５に示すコンピュータ装置では、図４に示した処理ステップを実行する音響信号処理プログラムをＨＤＤ１０６に記憶し、これをＲＡＭ１０４に読み出してＣＰＵ１０３で実行する。その際、利用者音声を含む音声信号ｍ（ｔ）の入力にマイクロホン１０１とＡ／Ｄ変換器１０２を使い、システム音声ｘ（ｔ）の拡声出力にＤ／Ａ変換器１１１とスピーカ１１２を使い、さらに、後述の実施例２で説明する雑音信号ｎ（ｔ）の入力にマイクロホン１１３とＡ／Ｄ変換器１１４を使う。そして、これらｍ（ｔ）とｘ（ｔ）、あるいはｍ（ｔ）とｘ（ｔ）とｎ（ｔ）をＣＰＵ１０３で処理することで出力音声Ｏ（ｔ）を生成して出力する。
【００５７】
この結果、図５に示すコンピュータ装置は本実施例に係る音響信号処理装置として機能する。また、このコンピュータ装置は、その他ストレージ１１０に挿入される記録媒体やＬＡＮ１０７を介して接続される他の装置から音響信号処理プログラムの供給を受けるようにすることが可能である。
【００５８】
なお、このコンピュータ装置は、マウス／キーボード１０８やディスプレイ１０９を介して、利用者の操作入力を受け付けたり、利用者への情報呈示を行ったりすることも可能である。また、このコンピュータ装置が、音響信号処理装置だけでなく、利用者の音声を認識してサービスを提供するロボットにも適用される場合、マウス／キーボード１０８など、サービス提供時に不要な要素はコンピュータ装置から取り外し可能である。
【００５９】
図６は、本発明の実施例１に係る音響信号処理装置による処理の結果を示す図である。図中（ａ）のマイク入力信号ｍ（ｔ）は、第２の周波数分解部５により第２のスペクトルデータｍ（ω,ｆ）に変換される。
【００６０】
このマイク入力信号ｍ（ｔ）には利用者音声とシステム音声エコーとが混ざりこんでいる。システム音声ｘ（ｔ）も第１の周波数分解部４により第１のスペクトルデータｘ（ω,ｆ）に変換される。ＦＦＴ及び逆ＦＦＴにはＣｏｏｌｅｙ−Ｔｕｋｅｙ  ＤＦＴ  Ａｌｇｏｒｉｔｈｍを使い、フレーム長ＦＬを５１２サンプル、フレームシフト量ＦＳを１６０サンプル、窓掛けにハニング窓を使用して、ＦＦＴ及び逆ＦＦＴ実行している。
【００６１】
図中（ｂ）は出力音声信号Ｏ（ｔ）である。エコー消去部６と残留エコー抑圧部７を経て得られた出力ｏ２（ω,ｆ）は、波形生成部８により時間領域信号Ｏ（ｔ）となって出力される。これが本実施例の音響信号処理装置の出力音声である。
【００６２】
出力音声Ｏ（ｔ）には利用者音声のみが強く残る。このとき、図中（ｃ）に示す非エコー音声有無判定部９の出力ＤＴ（ｆ）のグラフも利用者音声の存在する期間で立ち上がっている。
【００６３】
図中（ｄ）に示すｍ（ｔ）／Ｏ（ｔ）はＥＲＬＥ（Ｅｃｈｏ  Ｒｅｔｕｒｎ  Ｌｏｓｓ  Ｅｎｈａｎｃｅｍｅｎｔ）と呼ばれる評価量を表している。ＥＲＬＥは下記の式（８）で定義される量であり、入力パワーに対して出力パワーがどれくらい小さくなったかをｄＢ値で表し、値が大きいほど消去性能が高いことを表す。式中のＥ［＊］はｎサンプル毎に平均値を計算することを表す。
【数８】
2018207221.tif 000010
【００６４】
エコー消去性能を求めたい場合、ＥＲＬＥはシステム音声エコーだけが存在する期間で計算されなければならない。そこで、そのような期間をグラフより３か所選抜して図中のＲ１、Ｒ２、Ｒ３とする。これらの期間は全てシステム音声エコーだけが存在する期間である。よって、ＤＴ（ｆ）は立ち上がっていない（非エコー音声無し状態を示す）のが正解であり、図中（ｃ）からその通りになっていることがわかる。学習の初期（Ｒ１）、中期（Ｒ２）、終期（Ｒ３）のそれぞれでＥＲＬＥの平均値を拾い出すと、６７．７ｄＢ、８５．９ｄＢ、１０２．６ｄＢと高い値であることがわかる。
【００６５】
（効果）
本実施例によれば、非エコー音声有無判定部９は第２のスペクトルデータｍ（ω,ｆ）がエコー以外の音声を含んでいる状況（非エコー音声有り状態）を検出して適応フィルタ１１の学習を止めたり弱めたりする制御を行うため、マイク入力にエコー以外の音声（利用者の音声等）が含まれているか否かを速やかに正しく判定することができるという効果を有する。
【００６６】
非エコー音声有無判定部９内のエコー抑圧部２１が、エコー消去部６よりも速くエコー抑圧量を上げられるエコー抑圧処理を実行することによって、適応フィルタ１１をその学習初期から速く正しく学習させることができるという高速化、高精度化の効果を有する。これは、特に移動することでエコーの状態が頻繁に変わる移動ロボットに好適である。
【００６７】
また、本実施例を利用者と音声で対話するシステムに適用した場合、システムが自分の声を誤って認識してしまうことがなくなるので、無駄な音声認識処理を減らすことができるという省ＣＰＵ化、クラウドサーバ上の音声認識を使う場合には通信量削減の効果を有する。
【００６８】
また、声の小さな利用者のためにマイク感度を上げるなど、システムのスピーカ音量とマイク感度の許容範囲を広げることができるというシステム運用条件拡大の効果を有する。
【００６９】
さらに、利用者とシステムが同時にしゃべっても、利用者の声だけを取り出して認識できるので、利用者が自由なタイミングでシステムに話しかけることができるというシステム使用感向上の効果を有する。
【実施例２】
【００７０】
実施例２では、環境雑音に対応した音響信号処理装置について説明する。図７は、本発明の実施例２に係る音響信号処理装置の機能ブロック図である。図中の符号１〜９は実施例１と同じ機能ブロックであるため、説明を省略する。実施例２は、実施例１に機能ブロック３１、３２、３３、３４を加えた構成となっている。以下、これら追加された機能ブロックを中心に説明する。
【００７１】
マイク３１は、マイク２と比べて、スピーカ１並びに利用者からより遠い位置に配置されたマイクロホンである。この配置は、マイク３１にシステム音声や利用者音声が微弱にしか受音されないように配慮したものである。この結果、マイク３１には専ら周囲の環境雑音が受音され雑音信号ｎ（ｔ）として入力される。雑音信号ｎ（ｔ）は第３の周波数分解部３２によって周波数領域データｎ（ω,ｆ）に変換される。すなわち、第３の周波数分解部３２は、雑音信号ｎ（ｔ）を第３のスペクトルデータｎ（ω,ｆ）に変換する第３の変換部といえる。
【００７２】
一方、環境雑音は電車の音など比較的遠距離から到来するので、マイク２の入力信号ｍ（ｔ）にもマイク３１と同程度のレベルで混入する。このｍ（ｔ）に混入した環境雑音はシステム音声ｘ（ｔ）と相関がないので、エコー消去部６と残留エコー抑圧部７の処理によっても消し去ることができない。
【００７３】
図７の３３は、この環境雑音を抑圧するための環境雑音抑圧部である。環境雑音抑圧部３３は、残留エコー抑圧部７の出力ｏ２（ω,ｆ）と雑音データである第３のスペクトルデータｎ（ω,ｆ）を入力とし、式（９）に従ってｏ２（ω,ｆ）に含まれる雑音成分を抑圧した音声ｏ３（ω,ｆ）を計算する。
【数９】
2018207221.tif 000011
【００７４】
ここで、式（９）のｇａｉｎ（ω,ｆ）は下記の式（１０）で計算される抑圧係数である。これは式（６）からフロアリング処理をなくした計算である。
【数１０】
2018207221.tif 000012
【００７５】
図７の３４は微小周波数成分抑圧部である。微小周波数成分抑圧部３４は、環境雑音抑圧部３３の出力ｏ３（ω,ｆ）を入力とし、式（１１）に従ってｏ３（ω,ｆ）に含まれる所定閾値未満の振幅を持つ微小な周波数成分を抑圧した音声ｏ４（ω,ｆ）を計算する。
【数１１】
2018207221.tif 000013
【００７６】
ここで、式（１１）のｇａｉｎ（ω,ｆ）は下記の式（１２）で計算される抑圧係数である。なお、式中の０．０１は抑圧効果を与える１．０より小さい非負の値であり、例えば０．０や０．０２などの他の数値でも良い。
【数１２】
2018207221.tif 000014
【００７７】
本実施例の音声信号処理装置では、波形生成部８は、微小周波数成分抑圧部３４の出力音声ｏ４（ω,ｆ）を逆ＦＦＴ処理することで時間領域の出力信号Ｏ（ｔ）を生成する。このＯ（ｔ）が本実施例の音声信号処理装置の出力音声信号である。
【００７８】
図８は、本発明の実施例２に係る音響信号処理装置の処理の流れを示すフローチャートである。本実施例の音響信号処理装置を起動すると、まず初期化処理ステップＳ２１が実行される。この処理で時刻インデックスtとフレーム番号fが０に初期化される。
【００７９】
続くＦＳサンプル入力処理ステップＳ２２では、ｍ（ｔ）、ｘ（ｔ）、ｎ（ｔ）の各音声信号がフレームシフト量ＦＳサンプル分だけ入力される。
【００８０】
次にＦＬサンプル蓄積判定処理ステップＳ２３では、これまでに入力されたｍ（ｔ）、ｘ（ｔ）、ｎ（ｔ）の各音声信号のサンプル数がＦＦＴ解析窓の長さであるフレーム長ＦＬ以上か否かを判定する。もし、これまでに入力されたｍ（ｔ）、Ｘ（ｔ）、ｎ（ｔ）の各音声信号のサンプル数がフレーム長ＦＬに満たない場合は以降のＦＦＴ処理を行えないので、図中左（Ｎｏ）に分岐してダミー出力生成処理ステップＳ２９を実行する。一方、そうでない場合は図中下（Ｙｅｓ）に分岐して周波数分解処理ステップＳ２４を実行する。
【００８１】
ダミー出力生成処理ステップＳ２９では、例えば出力音声信号Ｏ（ｔ）＝ｍ（ｔ）として、マイクロホン入力信号をそのまま出力するか、あるいは無音を出力する。
【００８２】
周波数分解処理ステップＳ２４は第１の周波数分解部４、第２の周波数分解部５、第３の周波数分解部３２に対応した処理ステップであり、入力されたｘ（ｔ）、ｍ（ｔ）、ｎ（ｔ）の各音声信号を第１のスペクトルデータｘ（ω,ｆ）、第２のスペクトルデータｍ（ω,ｆ）、第３のスペクトルデータｎ（ω,ｆ）に変換する。
【００８３】
非エコー音声検出処理ステップＳ２５は非エコー音声有無判定部９に対応した処理ステップであり、式（５）、式（６）、及び、式（７）の計算により第２のスペクトルデータｍ（ω,ｆ）と第１のスペクトルデータｘ（ω,ｆ）からＤＴ（ｆ）の値を決定する。
【００８４】
エコー消去処理ステップＳ２６はエコー消去部６に対応した処理ステップであり、式（１）及び式（２）の計算によりｅ（ω,ｆ）を計算するとともに、ＤＴ（ｆ）に基づくステップサイズμの制御によりフィルタ係数ｗ（ω,ｆ）を更新する。
【００８５】
残留エコー抑圧処理ステップＳ２７は残留エコー抑圧部７に対応した処理ステップであり、式（３）及び式（４）の計算により、ｅ（ω,ｆ）から残留エコーを抑圧した音声ｏ２（ω,ｆ）を計算する。
【００８６】
環境雑音抑圧処理ステップＳ３０は環境雑音抑圧部３３に対応した処理ステップであり、式（９）及び式（１０）の計算により、ｏ２（ω,ｆ）から雑音成分を抑圧した音声ｏ３（ω,ｆ）を計算する。
【００８７】
微小周波数成分抑圧処理ステップＳ３１は、微小周波数成分抑圧部３４に対応した処理ステップであり、式（１１）及び式（１２）の計算により、ｏ３（ω,ｆ）から微小な周波数成分を抑圧した音声ｏ４（ω,ｆ）を計算する。
【００８８】
出力生成処理ステップＳ２８は、波形生成部８に対応した処理ステップであり、ｏ４（ω,ｆ）から逆ＦＦＴ処理により出力音声信号Ｏ（ｔ）を計算する。
【００８９】
なお、ダミー出力生成処理ステップＳ２９と出力生成処理ステップＳ２８を実行すると、処理はＦＳサンプル入力処理ステップＳ２２に戻る。その際、時刻インデックスｔはＦＳだけ増加され、フレーム番号ｆは１だけ増加される。
【００９０】
実施例２に係る音響信号処理装置のハードウェア構成については、図５で説明した実施例１のハードウェア構成と同様であるため、省略する。
【００９１】
図９は、本発明の実施例２に係る音響信号処理装置による処理の結果を示す図である。図中（ａ）のマイク入力信号ｍ（ｔ）は、第２の周波数分解部５により第２のスペクトルデータｍ（ω,ｆ）に変換される。この音声には利用者音声とシステム音声エコーと環境雑音とが混ざりこんでいる。システム音声ｘ（ｔ）も第１の周波数分解部４により第１のスペクトルデータｘ（ω,ｆ）に変換される。また、環境雑音ｎ（ｔ）も第３の周波数分解部３２により第３のスペクトルデータｎ（ω,ｆ）に変換される。実施例２でも、実施例１と同様、Ｃｏｏｌｅｙ−Ｔｕｋｅｙ  ＤＦＴ  Ａｌｇｏｒｉｔｈｍを使い、フレーム長ＦＬを５１２サンプル、フレームシフト量ＦＳを１６０サンプル、窓掛けにハニング窓を使用して、ＦＦＴ及び逆ＦＦＴを実行している。
【００９２】
図中（ｂ）は出力音声信号Ｏ（ｔ）である。エコー消去部６、残留エコー抑圧部７、環境雑音抑圧部３３、微小周波数成分抑圧部３４を経て得られた出力音声ｏ４（ω,ｆ）は波形生成部８により時間領域信号Ｏ（ｔ）に変換される。これが本実施例の出力音声である。出力音声Ｏ（ｔ）には利用者音声のみが強く残る。このとき、図中（ｃ）に示す非エコー音声有無判定部９の出力ＤＴ（ｆ）のグラフは環境雑音のため全域で非エコー音声有り状態を示しているが、これは正しい応答である。
【００９３】
図中（ｄ）に示すｍ（ｔ）／Ｏ（ｔ）はＥＲＬＥの値の推移を示している。ただし、ＥＲＬＥはシステム音声エコーのみが存在する期間で計算すべきであるが、今回は利用者音声がなく、システム音声エコーと環境雑音を合わせた妨害音だけが存在する期間で、これら妨害音に対する消去性能を求める意味で計算した。グラフより、学習の初期（図中Ｒ１）、中期（図中Ｒ２）、終期（図中Ｒ３）の３か所のそれぞれ平均値を拾い出すと、１３３．５ｄＢ、１０９．４ｄＢ、１５０．０ｄＢと高い値を記録していることがわかる。この消去性能はエコーの消去と抑圧効果に加えて環境雑音と微小周波数成分の抑圧効果を含んだ数値である。
【００９４】
（効果）
本実施例によれば、実施例１で説明した効果はもちろん得られ、さらに、周囲が騒がしい場所（例えば、展示会場）でもシステム運用が可能になるというシステム運用条件拡大の効果を有する。
【００９５】
以上、本発明の実施例（変形例を含む）について説明してきたが、これらのうち、２つ以上の実施例を組み合わせて実施しても構わない。あるいは、これらのうち、１つの実施例を部分的に実施しても構わない。さらには、これらのうち、２つ以上の実施例を部分的に組み合わせて実施しても構わない。
【００９６】
本発明は、上記発明の実施例の説明に何ら限定されるものではない。特許請求の範囲の記載を逸脱せず、当業者が容易に想到できる範囲で種々の変形態様もこの発明に含まれる。例えば、本発明の音声信号処理装置は、他の音声会話機能を有する案内型ロボットのフロントエンド処理としても適用可能である。
【符号の説明】
【００９７】
１  スピーカ
２、３１  マイク
３  エコー
４  第１の周波数分解部（第１の変換部）
５  第２の周波数分解部（第２の変換部）
６  エコー消去部
７  残留エコー抑圧部
８  波形生成部
９  非エコー音声有無判定部
１１  適応フィルタ
１２  減算器
２１  エコー抑圧部
２２  波形生成部
２３  判定部
３２  第３の周波数分解部（第３の変換部）
３３  環境雑音抑圧部
３４  微小周波数成分抑圧部
【図１】
2018207221.tif 000015
【図２】
2018207221.tif 000016
【図３】
2018207221.tif 000017
【図４】
2018207221.tif 000018
【図５】
2018207221.tif 000019
【図６】
2018207221.tif 000020
【図７】
2018207221.tif 000021
【図８】
2018207221.tif 000022
【図９】
2018207221.tif 000023