説明

エコーキャンセラ装置及びその方法

【課題】エコーパス変動への追従性の向上したエコーキャンセラ装置を提供する。
【解決手段】計測周波数を有する計測信号を発生する計測音波発生器8と、記計測信号を前記受信信号に混合する混合部1と、第2フィルタ係数を変更しながら、第2フィルタによって第2エコーレプリカ信号を生成して、第2減算器11からの第2差分信号のパワーを最小化させ、最小化したときの第2フィルタ係数を求める第2線形適応フィルタ10と、第1フィルタ係数候補と第2フィルタ係数候補を組にして予め記憶するフィルタ係数DB13と、最小化したときの第2フィルタ係数に対応する第2フィルタ係数候補をフィルタ係数DB13から探索し、探索された第2フィルタ係数候補の組に含まれる第1フィルタ係数候補を、第1フィルタ係数として設定するフィルタ係数選択器14と、前記設定した第1フィルタ係数を用いて第1エコーレプリカ信号を生成する第1線形フィルタ6を有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エコーキャンセル技術に係り、特に適応フィルタのフィルタ係数学習方式を用いたエコーキャンセラ装置及びその方法に関する。
【背景技術】
【0002】
伝送路を通じて音声の送受信を行い、受信した遠端音声をスピーカ出力し、マイクで受音した近端音声を送信する拡声通話装置においては、スピーカとマイクの間の空間に音響結合が生じると、スピーカ出力がマイク入力に回り込んで音響エコーが発生することが問題となる。
【0003】
この音響エコーを消去するために、特許文献1(図4)の線形適応フィルタを用いたエコーキャンセラ装置が一般的に知られている。
【0004】
受信入力である受信信号として送られてくる遠端音声はスピーカを通じて拡声出力され、エコーパスを経由した音響エコーとなってマイクに受音される。また近端音声もマイクに受音されるので、マイク入力は近端音声と音響エコーの和となる。このうち近端音声だけを送信出力したいので、マイク入力に混入した音響エコーをいかにして取り除くかが問題となる。これがエコーキャンセル問題である。
【0005】
音響エコーの元となっている受信信号は判明しているため、エコーパスの伝達特性と同じ変換を受信信号に施せば、マイク入力に混入している音響エコーと同じ信号(エコーレプリカ)を内部的に作り出すことができる。これをマイク入力から差し引くことで、送信出力から音響エコーを取り除くことができるはずである。
【0006】
線形適応フィルタは、エコーパスの伝達特性を模擬するためのフィルタであり、受信信号(以下では、フィルタへの入力として呼ぶとき、これを「参照信号」と呼ぶ)にこの伝達特性を計算的に反映させることで、音響エコーを模擬するエコーレプリカ信号を生成する。
【0007】
減算器は、マイク入力からこのエコーレプリカ信号を差し引くことで、近似的な近端音声を生成することができ、これを送信出力すれば、通話先には音響エコーの抑えられた音声が届くことになる。伝達特性の反映、すなわちエコーレプリカ信号の生成は、参照信号とフィルタ係数の畳み込み演算で行われる。
【0008】
線形適応フィルタは、エコーパスの伝達特性を模擬するために、近端音声のないときを選んで、減算器の差分信号(残差信号、誤差信号とも呼ぶ)のパワーを最小化するフィルタ適応を行う。
【0009】
この適応方式としてはLMSアルゴリズムやNLMSアルゴリズムなど幾つかの適応アルゴリズムが知られている。適応アルゴリズムについては、非特許文献1に開示されているので、ここでは代表的なLMSアルゴリズムについて簡単に説明する。
【0010】
時刻tにおける差分信号の値、そのときの参照信号の値、フィルタ係数、更新の大きさを決定するパラメータとから差分信号を小さくする新たなフィルタ係数を求めるフィルタ更新式を各時刻で繰り返し計算することで、差分信号のパワーは次第に最小化されていく。この最小化(以下、「適応」または「学習の収束」と呼ぶ)過程にはある程度の時間が掛かることになるが、μを大きく取ることでその時間を短くできる。
【0011】
しかし、その結果、フィルタ係数が振動的になり、エコーレプリカ信号の精度が悪くなるという短所が知られている。一方、μを小さく取ることで、エコーレプリカ信号の精度を上げることができるが、反面、フィルタ係数が適値に収束するまでの時間は長くなり、エコーパス変動への追従性が悪くなる。
【0012】
近端音声がなく、遠端音声が存在する状態を「シングルトーク」と呼ぶ。一方、近端音声と遠端音声が同時に存在する状態を「ダブルトーク」と呼ぶ。シングルトーク状態ではマイク入力は遠端音声が回り込んだ音響エコーのみとなる。この状態で差分信号のパワーを最小化、端的にはゼロにするように線形適応フィルタがそのフィルタ係数を学習すると、生成されるエコーレプリカ信号を音響エコーに近づけることができる。そして、学習の進んだフィルタ係数は未知のエコーパスの伝達特性を模擬したものになる。
【0013】
線形適応フィルタがこのような学習を行えるよう、ダブルトーク検出器が近端音声の有無を判定する。特許文献1中の従来技術として開示されるように、この判定は、最も簡便には差分信号の差分出力レベルに対する受信信号の受信入力レベルの比を求めることで行える。
【0014】
遠端音声だけがあるとき、エコー消去後の差分信号は小さくなるので、このレベル比は大きくなる。一方、近端音声があるときはエコー消去後の差分信号がそれほど小さくならないので、このレベル比Rは相対的に小さくなる。そのため、レベル比Rが所定の閾値より小さくなるとき、近端音声が存在する状態(ダブルトーク状態)であると判定することができる。
【0015】
ダブルトーク検出器がダブルトーク状態と判定した場合、線形適応フィルタは学習を一時的に停止する。これは、ダブルトーク状態では差分信号に近端音声が存在するため、差分信号パワーを最小化する適応アルゴリズムを用いても、フィルタがエコーパスの伝達特性を正しく学習できないからである。
【0016】
なお、非ダブルトーク状態で線形適応フィルタの学習が進行するため、近端音声と遠端音声が共にないときにもフィルタ適応が行われることになる。本来、遠端音声がなければ学習に意味がないのだが、LMSなどの適応アルゴリズムは遠端音声の大きさに比例してフィルタ係数を動かすので実害が生じない。
【0017】
また、このダブルトーク判定方式では、近端音声も遠端音声もないときにレベル比が小さくなって、ダブルトーク状態と誤判定される可能性があるが、遠端音声がないので線形適応フィルタの学習を停止させても同様に問題は生じない。なお、上記の特許文献1では、ダブルトーク検出の前後でその検出閾値を動的に変えることで、より検出精度を向上させている。また、この他にも多くのダブルトーク検出方式が提案されている。
【0018】
また、従来、特許文献2に開示されるように、複数の適応フィルタを持ち、性能の良いフィルタを動的に選択して送信出力を決定することで、エコーパス変動への追従性を向上させる試みが提案されている。
【非特許文献1】「音響システムとディジタル信号処理」 (社)電子情報通信学会刊
【特許文献1】特許第3202256号公報
【特許文献2】特許4026693号公報
【特許文献3】特開2007−336364公報
【特許文献4】特許第2923964号公報
【発明の開示】
【発明が解決しようとする課題】
【0019】
上記のように従来の典型的なエコーキャンセラ装置では、ダブルトーク状態を除いて線形適応フィルタを学習させ続けることで、非ダブルトーク状態でのエコーパスの変動、例えば人体の移動などに追従できるようになっている。
【0020】
しかしながら、ダブルトーク状態でエコーパスが変動しても、これには追従することができず、その場合、変動の影響としてエコーの消し残しが大きくなるという問題点が存在した。
【0021】
そこで、本発明は上記の問題点に鑑みて成されたものであり、その目的とするところは、エコーパス変動への追従性の向上したエコーキャンセラ装置及びその方法を提供することである。
【課題を解決するための手段】
【0022】
本発明は、通話周波数帯域を有する受信信号を音響空間に拡声出力する拡声出力部と、前記音響空間からの音を入力する音入力部と、前記受信信号に第1フィルタ係数を畳み込むことで前記受信信号のエコーレプリカである第1エコーレプリカ信号を生成する第1フィルタと、前記入力した入力音信号から前記通話周波数帯域の信号を通過させる第1バンドパスフィルタ部と、前記第1バンドパスフィルタ部を通過した信号から前記第1エコーレプリカ信号を差し引いて第1差分信号を出力する第1減算器と、前記第1差分信号を、エコーキャンセラしたエコーキャンセラ信号として出力するエコーキャンセラ信号出力部と、任意の計測周波数を有する計測信号を発生する計測音波発生部と、前記計測信号を前記受信信号に混合する混合部と、前記計測信号に第2フィルタ係数を畳み込むことで前記計測信号のエコーレプリカである第2エコーレプリカ信号を生成する第2フィルタと、前記入力音信号から前記計測周波数の信号を通過させる第2バンドパスフィルタ部と、前記第2バンドパスフィルタ部を通過した信号から前記第2エコーレプリカ信号を差し引いて第2差分信号を出力する第2減算器と、前記第2差分信号のパワーが最小化するよう前記第2フィルタ係数を修正する第2フィルタ更新部と、前記第1フィルタ係数の候補である第1フィルタ係数候補と前記第2フィルタ係数の候補である第2フィルタ係数候補を組にして予め記憶するフィルタ係数記憶部と、現在の前記第2フィルタ係数に対応する第2フィルタ係数候補を前記フィルタ係数記憶部から探索し、前記探索された前記第2フィルタ係数候補の組に含まれる前記第1フィルタ係数候補を、前記第1フィルタ係数として設定するフィルタ係数選択部と、を具備し、前記第1フィルタは、前記設定した第1フィルタ係数を用いて前記第1エコーレプリカ信号を生成する、エコーキャンセラ装置である。
【発明の効果】
【0023】
本発明によれば、通話音声帯域においてダブルトーク状態であっても、エコーパス変動への追従性が向上する。
【発明を実施するための最良の形態】
【0024】
以下、本発明に係るエコーキャンセラ装置の一実施形態を図面に従って説明する。
【0025】
(第1の実施形態)
まず、本発明の最も基本的な構成である第1の実施形態のエコーキャンセラ装置について図1に基づいて説明する。図1は、本実施形態のエコーキャンセラ装置の機能ブロック構成を示す。
【0026】
図1に示しように、エコーキャンセラ装置は、受信音声と他の音声を所定の比率で混合する混合器(図では「MIX」と呼ぶ)1、混合器1の出力を拡声出力するスピーカ2、音響結合により生じるエコーパス3、マイク4、音声通話に用いられる周波数帯域(通話帯域)の音声を選択的に通過させる第1バンドパスフィルタ(図では「BPF1」と呼ぶ)5、通話帯域音声のエコーレプリカ(第1エコーレプリカ信号)を生成する第1線形フィルタ(図では「LF1」と呼ぶ)6、第1バンドパスフィルタ(図では「BPF1」と呼ぶ)5を通過した通話帯域音声から第1線形フィルタ(図では「LF1」と呼ぶ)6で生成されたエコーレプリカ(第2エコーレプリカ信号)を差し引くことで、第1差分信号を出力を得るための第1減算器7からなり、この第1差分信号が最終的な近接信号(エコーキャンセラ信号)として送信出力される。
【0027】
第1線形フィルタ6のフィルタ係数が通話帯域のエコーパス3を模擬していると仮定すれば、以上の機能ブロックにより、拡声通話装置のためのエコーキャンセラが構成されることになる。
【0028】
本実施形態のエコーキャンセラ装置では、上記の構成に図中の各部8〜12で示される機能ブロックをさらに有する。
【0029】
エコーキャンセラ装置は、図1に示すように、所定の周波数を持つ計測音波を発生させる計測音波発生器(図中では「SGEN」と呼ぶ)8、この計測音波を選択的に通過させる第2バンドパスフィルタ(図中では「BPF2」と呼ぶ)9、この計測音波のエコーパスを学習する第2線形適応フィルタ(図中では「LAF2」と呼ぶ)10、第2減算器11、この計測音波のダブルトーク状態を検出する第2ダブルトーク検出器(図中では「DTD2」と呼ぶ)12をさらに有する。
【0030】
第2ダブルトーク検出器12には、上記の特許文献1に開示される方法を用いることができる。この構成により、計測音波発生器8で発生された所定周波数の計測信号が混合器1で受信信号と混合されて計測音波としてスピーカ2より出力される。
【0031】
出力された計測音波は、エコーパス3を経由してマイク4で受音され、第2バンドパスフィルタ9を通過する。
【0032】
第2線形適応フィルタ10は、エコーパス3の計測音波に関する伝達特性を模擬するフィルタであり、計測音波発生器8からの計測信号にこの伝達特性を計算的に反映させることで、計測音波に関する音響エコーを模擬する第2エコーレプリカ信号を生成する。
【0033】
第2減算器11は、第2バンドパスフィルタ9の通過信号からこの第2エコーレプリカ信号を差し引くことで、第2差分信号を生成する。
【0034】
第2線形適応フィルタ10は、第2ダブルトーク検出器12が非ダブルトーク状態と判定している間、第2差分信号のパワーを最小化する適応を行うことで、この計測音波のエコーパスを学習するフィルタ適応を行う。この適応にはLMSアルゴリズムを用いる。この結果、第2線形適応フィルタ10と第2減算器11が、計測音波に関するエコーキャンセラとなるが、その出力が送信出力に算入されることはない。
【0035】
エコーキャンセラ装置も2つのフィルタ6と10を持つが、フィルタ10の出力は送信出力には直接算入されることはなく、フィルタ6の出力のみから送信出力が決定される。
【0036】
さらにエコーキャンセラ装置では、上記の構成に図1中の各部13〜14で示される機能ブロックを有する。
【0037】
エコーキャンセラ装置は、図1に示すように、少なくとも第1線形フィルタ6のフィルタ係数W1の候補と第2線形適応フィルタ10のフィルタ係数W2の候補を組にしたフィルタ係数データ候補D=[W1,W2]を記憶するためのフィルタ係数データベース(図中では「FDB」と呼ぶ)13、第2線形適応フィルタ10のフィルタ係数W2が更新されるたびに、このフィルタ係数W2に基づいて、これに適合するフィルタ係数データ候補Dをフィルタ係数データベース13から選択し、そこに組となっている第1線形フィルタ6のフィルタ係数W1の候補を第1線形フィルタ6に設定するフィルタ係数選択器14をさらに有する。なお、適合するフィルタ係数を選択する方法については後述する。
【0038】
第1線形フィルタ6は、この設定されたフィルタ係数W1を使って受信信号(参照信号)から通話帯域の第1エコーレプリカ信号を生成する。
【0039】
第1減算器7は、第1バンドパスフィルタ5を通過してきたマイク入力に含まれる通話帯域音声からこの第1エコーレプリカ信号を差し引くことで、音響エコーの抑圧されたエコーキャンセラ信号を生成する。
【0040】
通常、計測音波のようなごく限られた周波数でエコーパス3の伝達特性を推定しても、その特性が通話帯域全体の伝達特性を正確に表していることはあまり期待できない。しかしながら、音響結合を形成している元となる音を反射・吸収する物体の配置が同じなら、特定のごく限られた周波数で測った伝達特性と通話帯域全体の伝達特性には一定の相関が成立している。
【0041】
エコーキャンセラ装置では、この相関関係を仮定して、第1線形フィルタ6のフィルタ係数W1と第2線形適応フィルタ10のフィルタ係数W2を予想される様々な条件で計測しておき、または、シミュレーションしておき、同一条件における値の組をフィルタ係数データ候補D=[W1,W2]としてフィルタ係数データベース13に格納しておく。
【0042】
この結果、計測音波の伝達特性を測る、すなわちフィルタ係数W2を求めることで、このフィルタ係数W2に対応する、その環境に適した第1線形フィルタ6のフィルタ係数W1をフィルタ係数データ候補D=[W1,W2]から選択決定できる。
【0043】
以上の説明では、フィルタ係数データ候補Dは、少なくとも第1線形フィルタ6のフィルタ係数W1と第2線形適応フィルタ10のフィルタ係数W2の候補を組にしたものとしていた。
【0044】
しかし、これは計測信号の計測周波数が変化しない場合を想定したものである。計測信号の計測周波数が異なれば、同一環境であっても学習されるフィルタ係数W2の値が異なる可能性がある。後述するように、エコーキャンセラ装置では、計測音波発生器8が計測信号の計測周波数を変えられるように構成される。
【0045】
そのため、フィルタ係数データ候補Dは、W1とW2に加え、W2を学習させたときの計測信号の計測周波数Fも含まなければならない。計測周波数Fは、予め設定されているL個の計測周波数候補のうち、どの周波数を使用したかを示す情報であり、使用された計測周波数に対応する要素を1、それ以外の要素を0としたL次元のベクトルである。このFを含めた結果、フィルタ係数データはD=[W1,W2,F]となる。
【0046】
そして、フィルタ係数選択器14も、下記のようにして、FとW2の両方が適合するフィルタ係数データ候補Dをフィルタ係数データベース13から選択する。
【0047】

通話帯域の第1エコーレプリカ信号を生成するための第1線形フィルタ6のフィルタ長をNとすると、そのフィルタ係数W1はN次元ベクトルで表される。
【0048】
また、計測音波でエコーパスを学習するための第2線形適応フィルタ10のフィルタ長をMとすると、そのフィルタ係数W2はM次元ベクトルとなる。
【0049】
また、このW2を学習したときの計測周波数Fは、上記した通り、L次元のベクトルである。
【0050】
1を持つFの要素の数は1つに限らず、複数の周波数を合成した計測音波を用いる場合には、複数の要素が1になる。また、ベクトルFの各要素に対応する周波数の並びは適当でも良いが、ここでは周波数の低いものから高いものまでを順に並べることとする。
【0051】
このとき、1を持つFの要素に隣接する1を持たない要素にも0より大きく1より小さい値、例えば0.5を持たせる。なお、隣接する要素の周波数が所定閾値を超えてかけ離れている場合にはこの値を持たせない。このようにすることで、似た計測周波数の組を使用したベクトルFは似たものになるため、後述する適合性を評価する場合に都合が良い。この3種のベクトル(W1,W2,F)を組にしたデータをフィルタ係数データ候補D(k)=[W1(k),W2(k),F(k)]とし、フィルタ係数データベース13に記憶する。ここで添え字kはフィルタ係数データベース13に記憶されているk番目のデータを指す。
【0052】
フィルタ係数選択器14が適合するフィルタ係数データ候補Dを選択する方法は次のようになる。
【0053】
現在の第2線形適応フィルタ10のフィルタ係数をW2c、そのときの計測周波数をFc、フィルタ係数データベース13に記憶されているk番目のフィルタ係数データ候補をD(k)=[W1(k),W2(k),F(k)]とする。
【0054】
まず、全てのkについて、FcとF(k)の内積をノルムで正規化した値CF(k)を求め、その値が任意の閾値以上を得たフィルタ係数データだけを拾い出す。この閾値は調節可能であるが、より厳密に一致するものだけを得たい場合には、CF(k)=1.0となるものだけを拾い出すようにもできる。
【0055】
そして、拾い出されたフィルタ係数データの中で、W2cとW2(k)の内積をノルムで正規化した値CW(k)を求め、その値が任意の閾値以上で最大値を得るフィルタ係数データを選択する。
【0056】
最後に、この選択されたフィルタ係数データにあるW1(k)が第1線形フィルタ6の新しいフィルタ係数として設定される。ここで、CF(k)とCW(k)は次の(1)式で表される。
【数1】

【0057】
なお、CFやCWが任意の閾値以上となるフィルタ係数データ候補Dが見つからないときは、エコーキャンセラ装置は適切なフィルタ係数W1を選択できずに破綻する。このような事態をさけるために、フィルタ係数データベース13には十分なバリエーションのフィルタ係数データ候補を記憶させておく。
【0058】
なお、計測音波発生器8が計測信号の計測周波数を変更しない場合には、フィルタ係数データ候補Dに記載されるベクトルFは不要となる。同時に、上記したCF(k)によるデータの拾い出しも行う必要がない。よってこの場合は、フィルタ係数データベース13に記憶されている全てのフィルタ係数データ候補D(k)についてCW(k)だけが評価されることになる。また、エコーキャンセラ装置はパラメータにより計測周波数を固定/可変いずれにも設定可能である。
【0059】
次に、計測音波について考察しつつ、その取り扱いについて説明する。
【0060】
エコーキャンセラ装置における計測信号の計測周波数は、人間の可聴域(一般に20Hz〜20000Hz)でも構わないが、その場合には、受信入力に含まれる遠端音声のレベルよりも低いレベルで計測音波を出力すると良い。このようにすれば、計測音波が利用者の耳障りになりにくい。
【0061】
また、計測信号の計測周波数を可聴域でも人間の聴覚レベルが落ちる高周波域(年齢にも依存するが、例えばモスキート音付近の15000Hz以上)や、さらには可聴域の外(一般に20Hz以下や20000Hz以上)であれば、計測音波が利用者の耳障りにならず好適である。
【0062】
なお、非可聴音波を使ってエコー遅延量を推定する提案(例えば、特開2007−336364公報)があるが、本実施形態のようなエコー消去用フィルタの係数W1を選択するというものではない。
【0063】
また、通話に先駆けて教示用音声を用いてエコー消去用の適応フィルタを事前学習させる方法が提案(例えば、特許第2923964号公報)されている。しかし、この教示用音声で学習されるのはエコーキャンセラ装置で言えば第1線形フィルタ6の係数W1である。よって、この事前学習が成功するためには、教示用音声の周波数成分が通話音声に似ている必要がある。一方、本実施形態のエコーキャンセラ装置では、その原理上、計測信号の計測周波数成分は通話音声と似ている必要はない。なお、エコーキャンセラ装置はパラメータにより計測周波数を任意に設定可能である。
【0064】
但し、計測音波と通話音声が似ている必要がないとしても、エコーキャンセラ装置のように計測音波のエコーパスと通話帯域のエコーパスの間の相関を利用しようとする場合、少ない周波数で測られた計測音波のフィルタ係数W2と、より広い周波数を覆う通話帯域のフィルタ係数W1の関係は1対1対応ではなく、1対多対応になる可能性がある。すなわち、計測音波のエコーパスに大きな変動が現れなくても、通話帯域のエコーパスは変動している可能性がある。そのような計測周波数を用いた場合、W2に現れないエコーパスの変動に対して装置が追従できないことになる。よって、計測周波数のどのように選択するかは重要である。
【0065】
この問題を改善するため、エコーキャンセラ装置では、計測音波を複数の周波数成分の混合音とすることも可能とする。
【0066】
この場合、第2バンドパスフィルタ9は、計測音波を構成する各周波数に対する中心透過性を持つコムフィルタ(櫛形フィルタ)となる。このようにすることで、エコーパス変動をより高い精度で測ることができ、またW1とW2の相関をより安定化させられる。なお、エコーキャンセラ装置は計測周波数を幾つ用いるかをパラメータで設定可能である。
【0067】
特に、低い周波数域(例えば20Hz以下)と高い周波数域(例えば15000Hz以上、または20000Hz以上)からそれぞれ少なくとも1つずつの周波数成分を混合した計測音波を用いることで、利用者の耳障りにならず、かつ、環境のエコーパスをより良好な精度で測れる確率が増大する。
【0068】
計測音波の低域成分は通話帯域の低域に近く、高域成分は通話帯域の高域に近いことから、このように通話帯域を上下で挟む高低合わせた計測音波を用いる。この結果、計測音波の伝達特性と通話帯域の伝達特性の間の相関を、そうしないときよりも安定させられる。
【0069】

次に、計測周波数を環境に合わせて動的に選択する方法について述べる。エコーキャンセラ装置は以下の3つの観点で計測周波数を選択することが可能である。
【0070】
(a)環境中に別音源の存在しない周波数を選ぶ。すなわち、シングルトークの確保である。
【0071】
(b)エコーの強い周波数を選ぶ。すなわち、エコーパス変動への感度の確保である。
【0072】
(c)エコーパス変動量の大きい周波数を選ぶ。すなわち、エコーパス変動への感度の確保である
まず、上記(a)について説明する。
【0073】
環境中に別音源の存在しない周波数を計測周波数に選ぶことは重要である。別音源の存在しない計測周波数を用いることができれば、通話帯域がダブルトーク状態であっても、計測音波は常にシングルトーク状態になり、その間も第2線形適応フィルタ10の学習を進めて、刻々と第1線形フィルタ6のフィルタ係数W1を切り替えることができ、原理的にはエコーパス変動への追従性をフルタイムで維持できるようになる。そこで、エコーキャンセラ装置ではこのような周波数を以下のようにして動的に探索して選択する。
【0074】
計測音波発生器8が計測音波を発生すると、環境中には計測信号の計測周波数を持つ音が存在することになる。ここで、別の音源により計測音波と同じ周波数を含む音が発生すると、第2ダブルトーク検出器12がダブルトーク状態を検出することになる。
【0075】
そこで、計測音波発生器8は、ある計測周波数Fの適用と共に、第2ダブルトーク検出器12の検出状況を監視する。
【0076】
もし、現在の計測音波周波数Fが頻繁にダブルトーク状態になるようであれば、計測音波発生器8は、Fについて環境中にFを構成する周波数の少なくとも1つと同一の周波数成分を持つ別音源が存在していると判断して、そのような周波数を避けるよう計測周波数を変更する。この頻度は計測音波発生期間に対するダブルトーク検出期間の割合として計測する。
【0077】
そして、ダブルトークの検出頻度が任意の閾値以上になったとき、計測音波発生器8は、現在のFとは別の有効な計測周波数F’を探索する。
【0078】
なお、計測信号の計測周波数を変えても動作可能なように、計測音波発生器8は、使用する周波数を第2バンドパスフィルタ9に通知し、第2バンドパスフィルタ9はこの通知された各周波数に対するフィルタバンクを動的に形成できるようになっている。具体的には、第2バンドパスフィルタ9は、予め定められたそれぞれに異なる周波数に対して、これを通過させる狭帯域のバンドパスフィルタの集合で成るフィルタバンクとして構成され、計測音波発生器8により通知された1乃至複数の周波数に対応するフィルタバンク出力を合成することで、コムフィルタ(櫛形フィルタ)と成るように作られている。ゆえに、「フィルタバンク出力」とは、フィルタバンクを成す各バンドパスフィルタの出力を、「第2バンドパスフィルタ9の出力」とは、それらを合成して成る前記コムフィルタの出力を指す。
【0079】
有効な計測周波数F’を探索する方法の1つとして、周波数を1つずつ切り替えながら、第2ダブルトーク検出器12の出力を調べる方法がある。
【0080】
具体的には、所定の周波数候補一覧Bの中で、現在の計測周波数Fを除いた周波数を探索候補周波数Cとし、これを所定の順番で出力しながら、各々の周波数について、上記した方法と同様にして所定期間のダブルトーク検出頻度を測定する。1つの周波数の頻度を求めるためには所定期間が必要となるため、任意の閾値未満の頻度を得た周波数を必要数だけ発見すると、これを新しい計測周波数F’とし、ここで探索を打ち切るようにする。このようにすることで、可能な限り早期にF’を得られるようにする。但し、以上の処理で必要数の周波数を見つけきれない場合には、頻度の低い順に必要数に満たない分の周波数を補う。
【0081】
例えば、周波数候補一覧をB=[f,f,...,f20]、現在の計測周波数をF=[f,f,f18]とすると、探索候補周波数はBからFを除いたC=[f,f,...,f,f,...,f17,f19,f20]となる。このとき、Fの要素の数で判るように必要な周波数の数は3である。新しい3つの周波数を探すために、Cの各候補について順番にダブルトーク検出頻度を測ったところ、f、f、fの順で閾値未満の周波数が見つかり、その結果、新しい計測周波数はF’=[f,f,f]となる。この例から判るように、一旦探索が行われると、通常は計測周波数の総入れ替えが起こる。
【0082】
また、有効な計測周波数を探索する別の方法として、第2バンドパスフィルタ9を探索候補の全ての周波数に対するフィルタバンクになるよう構成し、計測音波の出力を停止した状態で、各フィルタバンク出力の大きさを調べる方法がある。
【0083】
計測音波発生器8は、所定の周波数候補一覧Bの中で、現在の計測周波数Fを除いた周波数を探索候補周波数Cとし、第2バンドパスフィルタ9に通知して、これらの周波数をそれぞれ通過させるようフィルタバンクを動的に構成させる。そして、計測音波を停止した状態で、各フィルタバンク出力の時間平均パワーを測り、その低い順に必要数の周波数を選択して新たな計測周波数F’とする。
【0084】
例えば、周波数候補一覧をB=[f,f,...,f20]、現在の計測周波数をF=[f,f,f18]とすると、探索候補周波数はBからFを除いたC=[f,f,...,f,f,...,f17,f19,f20]となる。このとき、計測周波数の必要数は3である。そこで、新しい3つの周波数を探すために、Cの各候補についてフィルタバンク出力を調べたところ、f19、f、fの順で時間平均パワーが小さかったとする。この結果、新しい計測周波数はF’=[f,f,f19]となる。なお、この方法も計測周波数の総入れ替えとなる。
【0085】
計測音波の停止で言わば強制的に無遠端音声状態を作り出し、その間にフィルタバンク出力を監視することで、計測音波と同じ周波数成分を持つ別音源の有無を複数の周波数について同時に調べられるこの方法は、簡便かつ高速に有効な計測周波数を探索できる方法である。
【0086】
また、これとは別に、エコーキャンセラ装置は、次のように動作することも可能である。
【0087】
計測音波発生器8が計測音波の発生と停止を周期的に繰り返すようにし、第2ダブルトーク検出器12が、計測音波停止中の所定の期間、具体的には計測音波停止から一定の残響時間(第2線形適応フィルタ10のフィルタ長に相当)の経過後、次の計測音波発生までの間で、第2バンドパスフィルタ9の各フィルタバンク出力の時間平均パワーを監視する。このとき、第2バンドパスフィルタ9のフィルタバンク出力が任意の閾値以上の大きさで観測される場合には、そのフィルタバンクを通過する周波数には別音源が存在している(ダブルトーク状態である)とする。また、第2ダブルトーク検出器12は、フィルタバンク出力が1つでも任意の閾値以上となったことを検出すると、ダブルトーク状態であること示す出力を行う。
【0088】
計測音波発生器8は、ある計測周波数Fの適用と共に、第2ダブルトーク検出器12の上記した検出状況を監視し、ダブルトークの検出頻度が任意の閾値以上になったとき、現在のFとは別の有効な計測周波数F’を探索する。
【0089】
なお、上記のダブルトーク検出方法では、計測音波発生中のダブルトーク状態を知ることができない。そこで、計測音波発生器8は、計測音波の発生と停止を繰り返す周期を極力短くすることで、ダブルトーク検出タイミングの時間密度を上げる。ダブルトーク状態が上記の繰り返し周期よりも長く継続するなら、この方法により簡便でありながら有効なダブルトーク検出器を得ることができる。なお、エコーキャンセラ装置は、上記したダブルトーク検出方式のいずれを用いるかをパラメータで設定可能である。
【0090】
また、上記した閾値は実際の使用環境に応じてその適値が変わるため、装置導入時に適宜調節のうえ定めるものとする。ゆえに、本実施形態における各種閾値は適宜調節可能なパラメータとする。
【0091】
第2ダブルトーク検出器12をこのように動作させた場合、その出力はダブルトーク検出の有無だけでなく、どの計測周波数でダブルトークが発生しているかも示すことができる。
【0092】
そこで、計測音波発生器8は、ダブルトーク状態にある計測周波数についてのみ別周波数を探索することができる。これを次に示す。
【0093】
計測音波発生器8は、所定の周波数候補一覧Bの中で、現在の計測周波数Fを除いた周波数を探索候補周波数Cとし、第2バンドパスフィルタ9に通知して、これらの周波数をそれぞれ通過させるようフィルタバンクを構成させる。そして、計測音波を停止した状態で、各フィルタバンク出力の時間平均パワーを測り、その低い順に不足分の周波数を選択して新たな計測周波数F’とする。
【0094】
例えば、周波数候補一覧をB=[f,f,...,f20]、現在の計測周波数をF=[f,f,f18]とすると、探索候補周波数はBからFを除いたC=[f,f,...,f,f,...,f17,f19,f20]となる。ここで、Fに含まれる周波数fとf18に別音源が存在したとすると、不足分はfとf18の代わりになる2つの周波数である。そこで、Cの各候補についてフィルタバンク出力を調べたところ、f、fの順で時間平均パワーが小さかったとする。その結果、新しい計測周波数はF’=[f,f,f]となる。
【0095】
以上で述べた別音源の監視と計測周波数の変更は、エコーキャンセラ装置がエコーキャンセラとして稼動している状態を想定している。そのため、周波数探索の間、装置は一時的にエコーパス変動への追従能力を失うことになるが、上記したフィルタバンク出力を調べる方法を使うことで、エコーパス変動に追従できなくなる期間を減らすことが可能になる。
【0096】
一方、エコーキャンセラ装置がこのような稼動状態でなく、例えば、音声通話の開始前の待機状態にあるときを想定すると、その間に、計測音波発生器8が、上記したような計測周波数を選ぶ作業だけを行うことも可能である。
【0097】
具体的には、所定の周波数候補一覧Bの全ての周波数について、それぞれの周波数を通過させるよう第2バンドパスフィルタ9のフィルタバンクを動的に構成し、計測音波の発生を停止した状態で各フィルタバンク出力の時間平均パワーを測る。そして、時間平均パワーの低い順に必要数の周波数を選択して計測周波数Fとする。
【0098】
このようにすることで、通話開始以前に、環境に別音源の存在しない計測周波数を予め選び終えておくことができ、通話中の計測周波数変更の頻度を抑え、エコーパス変動に追従できなくなる期間をさらに減らすことが可能になる。なお、エコーキャンセラ装置はこの機能をパラメータで選択可能である。
【0099】
次に、上記の(b)について説明する。
【0100】
運用環境において音響エコーの生じにくい計測周波数を使用すると、エコーパス変動に対するW2の感度を上げられない。そこで、エコーキャンセラ装置では、計測音波発生器8が、エコー強度の大きい周波数を動的に探索して計測周波数を選択することも可能とする。
【0101】
エコー強度は、計測音波発生中に、第2バンドパスフィルタ9の各フィルタバンク出力の時間平均パワーを監視することで判明する。計測音波発生器8は、各フィルタバンク出力を監視し、所定期間、任意の閾値以上とならない周波数を検出すると、これとは別の周波数を探索する。
【0102】
具体的には、所定の周波数候補一覧Bの中で、現在の計測周波数Fを除いた周波数を探索候補周波数Cとし、これらの周波数を通過させるよう、第2バンドパスフィルタ9のフィルタバンクを構成する。
【0103】
その後、探索候補周波数Cの全周波数成分を等しいパワーで合成した計測音波を発生した状態で、各フィルタバンク出力の時間平均パワーを測る。
【0104】
そして、その高い順に足りない分の周波数を選択して新たな計測周波数F’とする。なお、エコーキャンセラ装置はこの機能をパラメータで選択可能である。
【0105】
また、上記した別音源の検出の場合と同様、この周波数探索を通話開始以前に実行することも可能である。
【0106】
次に、上記の(c)について説明する。
【0107】
運用環境において、第2線形適応フィルタ10のフィルタ係数W2が相対的に変化しない計測周波数は、エコーパスの変動に対する感度の悪い周波数であると考えられる。そこで、エコーキャンセラ装置では、計測音波発生器8が、フィルタ係数W2の時間変化量が他の周波数に比べて相対的に大きい周波数を動的に探索して計測周波数を選択することも可能とする。
【0108】
ここでフィルタ係数W2の変化量は、計測音波発生中のW2の時間差分ベクトルΔW2=W2(t+1)−W2(t)のM個の要素のうち、その絶対値が最大となるものと定義する。計測音波発生器8は、ΔW2のM個の要素を監視し、その変化量が所定期間、任意の閾値以上とならないとき、別の計測周波数を探索する。
【0109】
探索は次のように行う。所定の周波数候補一覧Bの中で、現在の計測周波数Fを除いた周波数を探索候補周波数Cとし、これらの周波数を順番に通過させるよう、第2バンドパスフィルタ9のフィルタバンクを動的に構成し、同じく順番にその周波数成分だけを含む計測音波を発生した状態で、それぞれの周波数に対するW2の変化量を測る。そして、この値の高い順に必要数の周波数を選択して新たな計測周波数F’とする。なお、エコーキャンセラ装置はこの機能をパラメータで選択可能である。また、上記した別音源の検出の場合と同様、この周波数探索を通話開始以前に実行することも可能である。
【0110】
また、エコーキャンセラ装置では、計測周波数のエコーパスと通話帯域のエコーパスを近づけるために、計測周波数に通話帯域の空き周波数を使うことも可能である。
【0111】
第2バンドパスフィルタ9の場合と同様、第1バンドパスフィルタ5をフィルタバンクで構成し、所定期間過去から現時点までのフィルタバンク出力の時間平均パワーを、計測音波発生器8が時間平均パワーデータPとして記憶するようにしておく。ここで、Pは第1バンドパスフィルタ5のフィルタバンク数を要素数とするベクトルである。
【0112】
上記した別音源の検出の場合と同様、ある計測周波数Fで稼働中に、ダブルトーク検出頻度が任意の閾値以上となったことを検知した計測音波発生器8は、記憶してある時間平均パワーデータPから空き周波数を時間平均パワーの小さい順に必要数選び出して、新たな計測周波数F’とする。なお、エコーキャンセラ装置はこの機能をパラメータで選択可能である。また、上記した別音源の検出の場合と同様、この周波数探索を通話開始以前に実行することも可能である。
【0113】
通話帯域の周波数を計測周波数とした場合、計測音波は利用者に聴こえる音となっている。そこで、計測音波発生器8は、この音が耳障りになりにくいよう、計測音波の音量が受信入力される遠端音声の音量よりも十分小さくなるように、非可聴域を用いるときよりもその出力レベルを下げて計測音波を発生する。
【0114】
なお、エコーキャンセラ装置では、第1線形フィルタ6と第2線形適応フィルタ10のフィルタ長を異なる長さに設定しておくことが可能である。
【0115】
例えば、第2線形適応フィルタ10のフィルタ長を第1線形フィルタ6のフィルタ長よりも短くすることで、従来の典型的なエコーキャンセラのように第1線形フィルタ6を適応フィルタとして、より長いフィルタ長で学習させた場合よりも、フィルタの学習に要する計算コストを下げることが可能になる。
【0116】
(第2の実施形態)
次に、本発明の第2の実施形態のエコーキャンセラ装置について図2に基づいて説明する。図2は、本実施形態のエコーキャンセラ装置の機能ブロック構成を示す。本実施形態のエコーキャンセラ装置は第1の実施形態に前記フィルタ係数データを学習蓄積できる学習モードの機能を追加した構成である。
【0117】
この構成により、上記のCFやCWが任意の閾値以上となるフィルタ係数データ候補Dが見つからないときに、装置の破綻を防ぐことができる。
【0118】
図2中の各部1〜5、7〜14は第1の実施形態と同一の機能ブロックである。但し、第1の実施形態では、第1線形フィルタ6であったものが、第1線形適応フィルタ(図中では「LAF1」と呼ぶ)15となり、新たに第1ダブルトーク検出器(図中では「DTD1」と呼ぶ)16と、フィルタ係数登録器(図中では「FREG」と呼ぶ)17が加わっている。
【0119】
第1の実施形態と同じく、図2に示すように、遠端音声と他の音声を混合して出力する混合器1、混合器1の出力を拡声出力するスピーカ2、音響結合により生じるエコーパス3、マイク4、通話帯域音声を選択的に通過させる第1バンドパスフィルタ5、第1減算器7を有する。
【0120】
また、図2に示すように、単なる線形フィルタではなく、適応アルゴリズムを用いて通話帯域のエコーパスを学習するための第1線形適応フィルタ15、通話帯域のダブルトーク状態を検出する第1ダブルトーク検出器16を有する。
【0121】
この第1ダブルトーク検出器16には、上記の特許文献1に開示される方法を用いることができる。
【0122】
第1線形適応フィルタ15は、受信信号を参照信号として通話帯域音声の第1エコーレプリカ信号を生成する。
【0123】
第1減算器7は、第1バンドパスフィルタ5を通過した通話帯域音声から第1線形適応フィルタ15で生成された第1エコーレプリカ信号を差し引くことで、送信出力としての第1差分信号を得る。
【0124】
さらに、第1線形適応フィルタ15は、第1ダブルトーク検出器16がダブルトークを検出していない期間で、第1差分信号のパワーを最小化するフィルタ適応をLMSアルゴリズムで行う。この結果、図2に例示したような線形適応フィルタを用いたエコーキャンセラが構成される。
【0125】
また、第1の実施形態と同じく、図2に示すように、所定の周波数を持つ計測音波を発生させる計測音波発生器8、この計測音波を選択的に通過させる第2バンドパスフィルタ9、この計測音波のエコーパスを学習する第2線形適応フィルタ10、第2減算器11、この計測音波のダブルトーク状態を検出する第2ダブルトーク検出器12を有する。
【0126】
計測音波発生器8で発生された所定周波数の計測音波が混合器1で受信信号と混合されてスピーカ2より出力される。出力された計測音波はエコーパス3を経由してマイク4で受音され、第2バンドパスフィルタ9を通過する。
【0127】
第2線形適応フィルタ10は、エコーパス3の計測音波に関する伝達特性を模擬するフィルタであり、計測音波発生器8からの計測信号にこの伝達特性を計算的に反映させることで、計測音波に関する音響エコーを模擬する第2エコーレプリカ信号を生成する。
【0128】
第2減算器11は、第2バンドパスフィルタ9の通過信号からこの第2エコーレプリカ信号を差し引くことで、第2差分信号を生成する。
【0129】
第2線形適応フィルタ10は、ダブルトーク検出器12が非ダブルトーク状態と判定している間、第2差分信号のパワーを最小化する適応を行うことで、この計測音波のエコーパスを学習するフィルタ適応を行う。
【0130】
図2に示すように、計測信号の計測周波数と第2線形適応フィルタ10のフィルタ係数W2と第1線形適応フィルタ15のフィルタ係数W1の候補を組にしたフィルタ係数データ候補Dを記憶するためのフィルタ係数データベース13、第2線形適応フィルタ10のフィルタ係数W2と計測周波数に基づいて、所定のフィルタ係数W1をフィルタ係数データベース13から選択して第1線形適応フィルタ15に設定するフィルタ係数選択器14を有する。
【0131】
また、図2に示すように、第1線形適応フィルタ15のフィルタ係数W1と第2線形適応フィルタ10のフィルタ係数W2と計測周波数Fを組にしてフィルタ係数データベース13に記憶させるフィルタ係数登録器17を有する。
【0132】
エコーキャンセラ装置では、フィルタ係数データベース13に十分なフィルタ係数データ候補Dが蓄積されていない場合がある。
【0133】
すなわち、フィルタ係数選択器14が、第2線形適応フィルタ10のフィルタ係数W2と計測周波数Fに基づいて、適合するフィルタ係数データをフィルタ係数データベース13のデータ候補から選択するとき、計測周波数Fとフィルタ係数W2の適合するものが見つからなかった場合がある。
【0134】
そのときには、フィルタ係数選択器14が、第1線形適応フィルタ15に対してエコーパスの学習を、フィルタ係数登録器17に対して動作の開始をそれぞれ指令して学習モードに入る。
【0135】
学習モードにおいて、フィルタ係数登録器17は、この第1線形適応フィルタ15のフィルタ係数W1の変化を監視し始め、変化量が任意の閾値未満に収束した段階で、このときのフィルタ係数W1と、第2線形適応フィルタ10のフィルタ係数W2と、計測周波数Fとを組にして、フィルタ係数データベース13にデータ候補として登録する。
【0136】
この登録が完了すると、フィルタ係数登録器17による学習モードは停止し、再びフィルタ係数選択器14が動作を開始する。
【0137】
本実施形態によれば、エコーキャンセラ装置は、事前に十分なフィルタ係数データの候補の蓄積がなくても、または、蓄積していたフィルタ係数データが通用しない未知の環境であっても、上記した学習モードを行うことで、次第にその環境で通用するフィルタ係数データを運用中に蓄積し、蓄積後は第1の実施形態の如く動作することで、通話帯域音声がダブルトークであってもエコーパス変動に追従できる。
【0138】
なお、第1の実施形態と同様、エコーキャンセラ装置も、別音源の有無、エコー強度、フィルタ係数W2の時間変化量などの情報に基づいて計測周波数の動的な探索を行うことができる。
【0139】
そして、エコーキャンセラ装置は、エコーキャンセラとして稼動している状態で周波数探索を行うときは、フィルタ係数選択器14を停止させ、第1線形適応フィルタ15を適応フィルタとして稼動させて通話帯域のエコーパス変動に追従する。この結果、本装置は、第1の実施形態のように周波数探索中にエコーパス変動への追従能力を失うことがない。
【0140】
また、エコーキャンセラ装置では、計測音波発生器8が、定期的に第1線形適応フィルタ15を適応フィルタとして動作させ、その間のフィルタ係数W1の変化と、このとき同時に稼動している第2線形適応フィルタ10のフィルタ係数W2の変化とを比較し、両者の同期が取れているか否かを評価することも可能である。
【0141】
フィルタ係数をベクトルWで表すと、そのノルム(長さ)を所定期間分、時系列に配置して成るベクトルをQと定義する。QはWの時間変化を表すベクトルである。同期の度合いを表す同期度CSを、フィルタ係数W1とW2について各々求めた時間変化ベクトルQ1とQ2の内積をノルムで正規化した値として次の(2)式で定義する。計測音波発生器8は、このCSが任意の閾値未満であることを検知すると、現在の計測周波数Fとは別の有効な計測周波数F’を探索する。
【数2】

【0142】
探索は次のように行う。
【0143】
所定の周波数候補一覧Bの中で、現在の計測周波数Fを除いた周波数を探索候補周波数Cとし、これらの周波数を順番に通過させるよう、第2バンドパスフィルタ9のフィルタバンクを動的に構成し、同じく順番にその周波数成分だけを含む計測音波を発生した状態で、それぞれの周波数に対する同期度CSを測る。
【0144】
そして、この値の高い順に必要数の周波数を選択して新たな計測周波数F’とする。なお、エコーキャンセラ装置はこの機能をパラメータで選択可能である。また、上記した別音源の検出の場合と同様、この周波数探索を通話開始以前に実行することも可能である。
【0145】
(第3の実施形態)
次に、本発明の第3の実施形態のエコーキャンセラ装置について図3に基づいて説明する。図3は、本実施形態のエコーキャンセラ装置の機能ブロック構成を示す。
【0146】
本実施形態のエコーキャンセラ装置は、第2の実施形態に新たにエコー消去能力評価器(図中では「ECEV」と呼ぶ)18と、フィルタ係数評価器(図中では「FVEV」と呼ぶ)19を加えた構成となっており、図3中の各部1〜17は第2の実施形態の構成と同じである。
【0147】
本実施形態では、エコー消去能力評価器18でエコー消去能力を評価し、このエコー消去能力が所定の基準に満たないとき、フィルタ係数選択器14によるフィルタ係数選択の破綻を検知し、フィルタ係数登録器17による学習モードに入る。
【0148】
エコー消去能力は、シングルトーク状態で測ったマイク入力パワーを第1差分信号の差分出力パワーで割った値の対数値として次の(3)式で定義されるエコー消去能力量Eを使って評価する。
【数3】

【0149】
エコー消去能力評価器18はマイク入力と第1差分信号のそれぞれについて、第1ダブルトーク検出器16が非ダブルトーク状態を出力している間の移動平均パワーを計算し、その値からエコー消去能力量Eを求めて監視する。
【0150】
そして、このエコー消去能力量Eが任意の閾値を下回るのを検出すると、フィルタ係数選択器14に停止指令を、フィルタ係数登録器17に作動指令を送る。
【0151】
停止指令を受けたフィルタ係数選択器14は第1線形適応フィルタ15にエコーパスの学習モードを開始させる。
【0152】
同時に、フィルタ係数登録器17は学習モードを開始した第1線形適応フィルタ15のフィルタ係数W1の変化量を監視し、差分ベクトルΔW1=W1(t+1)−W1(t)のN個の要素全ての絶対値が任意の閾値未満となる状態が所定期間継続したとき、学習が収束したと判断して、このときのフィルタ係数W1と、第2線形適応フィルタ10のフィルタ係数W2と、計測周波数Fとを組にして、フィルタ係数データベース13に登録する。
【0153】
このとき、フィルタ係数データ候補Dとして登録しようとしているフィルタ係数データとF及びW2が共に一致するフィルタ係数データ候補Dがフィルタ係数データベース13に存在した場合は、そのW1を新しいW1の値で上書きする。そうでない場合は、新たなフィルタ係数データを生成してフィルタ係数データベース13にフィルタ係数データ候補Dとして記憶させる。
【0154】
この登録が完了すると、フィルタ係数登録器17は停止し、再びフィルタ係数選択器14が動作を開始して通常の動作モードに入る。
【0155】
本実施形態によれば、エコーキャンセラ装置は、FとW2を見る限り適合しているはずのフィルタ係数W1がエコーを消去しきれないような未知の環境変動が生じても、上記した学習処理を行うことで、その環境で通用するフィルタ係数データを運用中に蓄積し、蓄積後は第1の実施形態の如く動作することで、通話帯域音声がダブルトークであってもエコーパス変動に追従できる。
【0156】
(第4の実施形態)
次に、本発明の第4実施形態のエコーキャンセラ装置について図4に基づいて説明する。図4は、本実施形態のエコーキャンセラ装置の機能ブロック構成を示す。
【0157】
エコーキャンセラ装置は、第3の実施形態に新たにフィルタ係数評価器(図中では「FVEV」と呼ぶ)19を加えた構成となっている。図4に示すように、各部1〜18は第3の実施形態の構成と同じである。
【0158】
本実施形態では、フィルタ係数評価器19が第2線形適応フィルタ10のフィルタ係数W2の変化を監視する。そして、差分ベクトルΔW2=W2(t+1)−W2(t)のM個の要素のうち、1つでもその絶対値が任意の閾値以上となったとき、エコーパスが急激に変動したと判断し、フィルタ係数選択器14に停止指令を送り、フィルタ係数登録器17に作動指令を送る。
【0159】
停止指令を受けたフィルタ係数選択器14は、第1線形適応フィルタ15にエコーパスの学習モードを開始させる。
【0160】
同時に、フィルタ係数登録器17は学習モードを開始した第1線形適応フィルタ15のフィルタ係数W1の変化量を監視し、差分ベクトルΔW1=W1(t+1)−W1(t)のN個の要素全ての絶対値が任意の閾値未満となる状態が所定期間継続したとき、学習が収束したと判断する。このときのフィルタ係数W1と、第2線形適応フィルタ10のフィルタ係数W2と、計測周波数Fとを組にして、フィルタ係数データベース13に候補として登録する。
【0161】
このとき、データ候補として登録しようとしているフィルタ係数データとF及びW2が共に一致するフィルタ係数データ候補Dが、フィルタ係数データベース13に存在した場合は、そのW1を新しいW1の値で上書きする。そうでない場合は、新たなフィルタ係数データ候補Dを生成してフィルタ係数データベース13に記憶させる。
【0162】
この登録が完了すると、フィルタ係数登録器17は停止し、再びフィルタ係数選択器14が動作を開始して通常の動作モードに入る。
【0163】
本実施形態によれば、エコーキャンセラ装置は、急激な環境変動が生じた場合、フィルタ係数データベース13に記憶されているフィルタ係数データが変動後の環境で通用するか否かを評価することなく、最新のフィルタ係数データを即座に学習し、その後は第1の実施形態の如く動作することで、通話帯域音声がダブルトークであってもエコーパス変動に追従できる。
【0164】
(変更例)
本発明は。上記各実施形態で述べた構成に限定されるものではなく、その要旨を逸脱しない限り様々に変形して実施することが可能である。
【0165】
(1)変更例1
上記各実施形態では、音響エコーとして、受信信号と線形フィルタを畳み込むことで模擬可能な線形エコーを考慮してきた。そのため、通話帯域のエコー除去するフィルタとして、第1線形フィルタ6や第1線形適応フィルタ15という線形フィルタを用いる実施形態を示してきた。しかし、スピーカによる歪みや筐体を通じてスピーカの振動がマイクに伝わるなどの原因で、音響エコーに非線形エコー成分が含まれることがある。この非線形エコー成分があると、線形適応フィルタで模擬できないため、差分信号にはこの成分が消し残ってしまう。一方、非線形フィルタを用いると、この非線形エコー成分を模擬できることが知られている。
【0166】
そのため、変更例としては、通話帯域のエコー除去する第1線形フィルタ6や第1線形適応フィルタ15を非線形フィルタや非線形適応フィルタで構成することも可能である。
【0167】
非線形エコーの伝達特性はスピーカの性能や筐体内のマイクとスピーカの設置方法が変わらなければ大きく変動しない。そのため、計測音波によるフィルタ係数W2と非線形フィルタのフィルタ係数の相関関係は線形エコー成分に大きく依存する。ゆえに、非線形フィルタを用いても、フィルタ係数選択器14が適当なフィルタ係数を選択可能であると考えられる。
【0168】
非線形フィルタとしては、「Volterra Kernel」が知られている。
【0169】
また、非線形適応フィルタとしては、「適応Volterra Filter」が知られている。
【0170】
(2)変更例2
上記各実施形態のエコーキャンセラ装置の混合器1、第1バンドパスフィルタ5、第1線形フィルタ6、第1減算器7、計測音波発生器8,第2バンドパスフィルタ9、第2線形適応フィルタ10、第2減算器11,第2ダブルトーク検出器12、フィルタ係数選択器14の各部の機能をコンピュータに格納されたプログラムによっても実現可能である。
【図面の簡単な説明】
【0171】
【図1】本発明に係る第1の実施形態のエコーキャンセラ装置の機能ブロック構成を示した図である。
【図2】第2の実施形態のエコーキャンセラ装置の機能ブロック構成を示した図である。
【図3】第3の実施形態のエコーキャンセラ装置の機能ブロック構成を示した図である。
【図4】第4の実施形態のエコーキャンセラ装置の機能ブロック構成を示した図である。
【符号の説明】
【0172】
1 混合器(MIX)
2 スピーカ
3 エコーパス
4 マイク
5 第1バンドパスフィルタ(BPF1)
6 第1線形フィルタ
7 第1減算器
8 計測音波発生器(SGEN)
9 第2バンドパスフィルタ(BPF2)
10 第2線形適応フィルタ(LAF2)
11 第2減算器
12 第2ダブルトーク検出器(DTD2)
13 フィルタ係数データベース(FDB)
14 フィルタ係数選択器(FSEL)

【特許請求の範囲】
【請求項1】
通話周波数帯域を有する受信信号を音響空間に拡声出力する拡声出力部と、
前記音響空間からの音を入力する音入力部と、
前記受信信号に第1フィルタ係数を畳み込むことで前記受信信号のエコーレプリカである第1エコーレプリカ信号を生成する第1フィルタと、
前記入力した入力音信号中の前記通話周波数帯域の信号を通過させる第1バンドパスフィルタ部と、
前記第1バンドパスフィルタ部を通過した信号から前記第1エコーレプリカ信号を差し引いて第1差分信号を出力する第1減算器と、
前記第1差分信号を、エコーキャンセルしたエコーキャンセラ信号として出力するエコーキャンセラ信号出力部と、
任意の計測周波数を有する計測信号を発生する計測音波発生部と、
前記計測信号を前記受信信号に混合する混合部と、
前記計測信号に第2フィルタ係数を畳み込むことで前記計測信号のエコーレプリカである第2エコーレプリカ信号を生成する第2フィルタと、
前記入力音信号中の前記計測周波数の信号を通過させる第2バンドパスフィルタ部と、
前記第2バンドパスフィルタ部を通過した信号から前記第2エコーレプリカ信号を差し引いて第2差分信号を出力する第2減算器と、
前記第2減算器からの前記第2差分信号のパワーが最小化するよう前記第2フィルタ係数を修正する第2フィルタ更新部と、
前記第1フィルタ係数の候補である第1フィルタ係数候補と前記第2フィルタ係数の候補である第2フィルタ係数候補を組にして予め記憶するフィルタ係数記憶部と、
現在の前記第2フィルタ係数に対応する第2フィルタ係数候補を前記フィルタ係数記憶部から探索し、前記探索された前記第2フィルタ係数候補の組に含まれる前記第1フィルタ係数候補を、前記第1フィルタ係数として設定するフィルタ係数選択部とを具備し、前記第1フィルタは、前記設定した第1フィルタ係数を用いて前記第1エコーレプリカ信号を生成することを特徴とするエコーキャンセラ装置。
【請求項2】
前記第1フィルタ係数候補と前記第2フィルタ係数候補の組を学習する学習モードを行うものであって、前記学習モードにおいて、前記第1フィルタ係数を変更しながら、前記第1フィルタによって前記第1エコーレプリカ信号を再生成して、前記第1減算器からの前記第1差分信号のパワーを最小化させ、前記最小化したときの前記第1フィルタ係数を求める第1フィルタ更新部と、
前記学習モードにおいて、前記最小化された第1フィルタ係数と、前記第2フィルタ更新部によって求めた前記第2フィルタ係数とを組にして、前記第1フィルタ係数候補と前記第2フィルタ係数候補の組として前記フィルタ係数記憶部に記憶させるフィルタ係数登録部とをさらに具備したことを特徴とする請求項1記載のエコーキャンセラ装置。
【請求項3】
前記入力音信号と前記第1差分信号からエコー消去能力量を求める評価部をさらに具備し、前記エコー消去能力量が任意の第1閾値より低いとき、前記第1フィルタ更新部が前記学習モードに入ることを特徴とする請求項2記載のエコーキャンセラ装置。
【請求項4】
前記音響空間におけるエコーパスの伝達特性の変動量を求める評価部をさらに具備し、
前記変動量が、任意の第2閾値より高いとき、前記第1フィルタ更新部が前記学習モードに入ることを特徴とする請求項2記載のエコーキャンセラ装置。
【請求項5】
前記計測周波数が、20Hz以下、または、15000Hz以上の非可聴域周波数であることを特徴とする請求項1記載のエコーキャンセラ装置。
【請求項6】
前記計測音波発生部は、
前記計測信号の発生を停止させた状態で、前記入力音信号に関して、任意の周波数候補の中の周波数毎の任意の期間の時間平均パワーを計測し、前記時間平均パワーの低い順に前記周波数候補から前記計測周波数を選択することを特徴とする請求項1記載のエコーキャンセラ装置。
【請求項7】
前記計測音波発生部は、
前記計測周波数の複数の周波数候補の各周波数を合成した音波を発生させ、前記音波の前記各周波数に対する任意の期間内のエコー強度をそれぞれ計測し、
前記各エコー強度の中で任意の第3閾値より高くなる前記周波数を前記計測周波数として選択することを特徴とする請求項1記載のエコーキャンセラ装置。
【請求項8】
前記計測音波発生部は、
前記計測周波数の複数の周波数候補の中の一つの周波数を持つ音波を順番に発生させ、前記各音波に対する任意の期間内の前記第2フィルタ係数の変動量を計測し、前記変動量が任意の第4閾値より高い前記周波数を前記計測周波数として選択することを特徴とする請求項1記載のエコーキャンセラ装置。
【請求項9】
前記計測音波発生部は、
前記通話周波数帯域の前記入力音の周波数成分毎のパワーをそれぞれ計測し、前記各パワーの任意の期間の時間平均パワーが任意の第5閾値より低くなる前記周波数を前記計測周波数として選択することを特徴とする請求項1記載のエコーキャンセラ装置。
【請求項10】
前記計測音波発生部は、
任意の期間内の前記受信信号のレベルを計測し、前記計測信号を前記受信信号よりも小さいレベルで出力することを特徴とする請求項1記載のエコーキャンセラ装置。
【請求項11】
前記第2フィルタのフィルタ長が、前記第1フィルタのフィルタ長よりも短いことを特徴とする請求項1記載のエコーキャンセラ装置。
【請求項12】
前記計測音波発生部は、
前記計測周波数の周波数候補の中の一つの周波数を持つ音波を発生させ、前記音波に対する前記第1フィルタ係数の変化と前記第2フィルタ係数の変化が同期する同期度を計測し、前記同期度の高い順に前記計測周波数を選択することを特徴とする請求項2記載のエコーキャンセラ装置。
【請求項13】
通話周波数帯域を有する受信信号を音響空間に拡声出力する拡声出力部と、
前記音響空間からの音を入力する音入力部と、
を具備するエコーキャンセラ装置におけるエコーキャンセラ方法において、
前記受信信号に第1フィルタ係数を畳み込むことで前記受信信号のエコーレプリカである第1エコーレプリカ信号を生成する第1フィルタステップと、
前記入力した入力音信号中の前記通話周波数帯域の信号を通過させる第1バンドパスフィルタステップと、
前記第1バンドパスフィルタステップを通過した信号から前記第1エコーレプリカ信号を差し引いて第1差分信号を出力する第1減算ステップと、
前記第1差分信号を、エコーキャンセルしたエコーキャンセラ信号として出力するエコーキャンセラ信号出力ステップと、
任意の計測周波数を有する計測信号を発生する計測音波発生ステップと、
前記計測信号を前記受信信号に混合する混合ステップと、
前記計測信号に第2フィルタ係数を畳み込むことで前記計測信号のエコーレプリカである第2エコーレプリカ信号を生成する第2フィルタステップと、
前記入力音信号中の前記計測周波数の信号を通過させる第2バンドパスフィルタステップと、
前記第2バンドパスフィルタステップを通過した信号から前記第2エコーレプリカ信号を差し引いて第2差分信号を出力する第2減算ステップと、
前記第2差分信号のパワーが最小化するよう前記第2フィルタ係数を修正する第2フィルタ更新ステップと、
現在の前記第2フィルタ係数に対応する第2フィルタ係数候補を、前記第1フィルタ係数の第1フィルタ係数候補と前記第2フィルタ係数候補を組にして予め記憶したフィルタ係数記憶部から探索し、前記探索された前記第2フィルタ係数候補の組に含まれる前記第1フィルタ係数候補を、前記第1フィルタ係数として設定するフィルタ係数選択ステップとを有し、前記第1フィルタステップは、前記設定した第1フィルタ係数を用いて前記第1エコーレプリカ信号を生成することを特徴とするエコーキャンセラ方法。
【請求項14】
通話周波数帯域を有する受信信号を音響空間に拡声出力する拡声出力部と、
前記音響空間からの音を入力する音入力部と、
を具備するエコーキャンセラ装置におけるエコーキャンセラプログラムにおいて、
前記受信信号に第1フィルタ係数を畳み込むことで前記受信信号のエコーレプリカである第1エコーレプリカ信号を生成する第1フィルタ機能と、
前記入力した入力音信号から前記通話周波数帯域の信号を通過させる第1バンドパスフィルタ機能と、
前記第1バンドパスフィルタ機能を通過した信号から前記第1エコーレプリカ信号を差し引いて第1差分信号を出力する第1減算機能と、
前記第1差分信号を、エコーキャンセルしたエコーキャンセラ信号として出力するエコーキャンセラ信号出力機能と、
任意の計測周波数を有する計測信号を発生する計測音波発生機能と、
前記計測信号を前記受信信号に混合する混合機能と、
前記計測信号に第2フィルタ係数を畳み込むことで前記計測信号のエコーレプリカである第2エコーレプリカ信号を生成する第2フィルタ機能と、
前記入力音信号から前記計測周波数の信号を通過させる第2バンドパスフィルタ機能と、
前記第2バンドパスフィルタ機能を通過した信号から前記第2エコーレプリカ信号を差し引いて第2差分信号を出力する第2減算機能と、
前記第2差分信号のパワーが最小化するよう前記第2フィルタ係数を修正する第2フィルタ更新機能と、
現在の前記第2フィルタ係数に対応する第2フィルタ係数候補を、前記第1フィルタ係数の第1フィルタ係数候補と前記第2フィルタ係数候補を組にして予め記憶したフィルタ係数記憶部から探索し、前記探索された前記第2フィルタ係数候補の組に含まれる前記第1フィルタ係数候補を、前記第1フィルタ係数として設定するフィルタ係数選択機能とをコンピュータによって実現し、
前記第1フィルタ機能は、前記設定した第1フィルタ係数を用いて前記第1エコーレプリカ信号を生成することを特徴とするエコーキャンセラプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2010−11265(P2010−11265A)
【公開日】平成22年1月14日(2010.1.14)
【国際特許分類】
【出願番号】特願2008−170049(P2008−170049)
【出願日】平成20年6月30日(2008.6.30)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】