次に本発明の実施の形態について図面を参照して説明する。
図1を参照すると、本発明の実施の形態は、マイクロホン1とスピーカ2との間の音響系結合によるエコーを抑圧するために、マイクロホン1の出力信号またはスピーカ2の出力信号から線形エコーキャンセラ(非線形エコーキャンセラであってもよい)3の出力信号を減算器4で減算した信号の何れか一方を第1の信号、線形エコーキャンセラ3の出力信号またはこの出力信号に含まれる歪みを図示しない歪発生部で強調した信号を第2の信号として入力すると共に、近端音声の有無を検出している音声検出部5の音声検出信号を入力し、第1の信号からエコーを除去した近端信号を生成して出力端子9に出力する変換部100を備えている。ここで、変換部100は、第1の信号と第2の信号とからエコーの漏れこみ具合の推定値を算出し、この算出した推定値に基づいて第1の信号を補正する。この処理は、好ましくは第1及び第2の信号の各周波数成分毎に行う。
図2を参照すると、変換部100は、入力端子162から加わる第1の信号を周波数別にM分割する周波数分割部160と、入力端子163から加わる第2の信号を周波数別にM分割する周波数分割部161と、各周波数別に設けられたM個の補正部166m(m=1〜M)と、周波数合成部164とを備え、周波数分割部160および周波数分割部161は周波数分割した第1の信号および第2の信号をそれぞれの周波数に対応する補正部166mに送り、各補正部166mは、入力端子167から入力される音声検出部5の音声検出結果と当該周波数成分における第1の信号と第2の信号とからエコーの漏れこみ具合の推定値を算出すると共に、この推定値に基づいて第1の信号を補正して周波数合成部164に出力し、周波数合成部164は、各補正部166mから出力される信号を周波数合成して出力端子165に出力する。
ここで、補正部166mは、エコーの漏れこみ具合の推定値として、近端音声が検出されない期間における第2の信号の振幅またはパワーに応じた量に対する第1の信号の振幅またはパワーに応じた量の比、或いはこの比を平滑化した値を用いる。第1および第2の信号の振幅またはパワーに応じた量を平滑化するようにしても良い。第1および第2の信号の振幅またはパワーに応じた量の平滑化の時定数は、第1および第2の信号が減少するときに比べて増加するときの方が小さくなるように制御するようにして良い。前記比の平滑化の時定数は、近端音声が検出されているときは長いか或いは無限とし、それ以外は短くするようにしても良いし、近端音声が検出されていないときに比べて検出されているときの方を遥かに大きくし、かつ、近端音声が検出されていないとき、前記比が減少するときに比べて増加するときの方が小さくなるようにしても良い。
また補正部166mは、エコーの漏れこみ具合の推定値と第2の信号とから第1の信号に含まれるエコーの量を推定し、この推定したエコーの量を第1の信号から減算することで、第1の信号を補正するものであっても良いし、エコーの漏れこみ具合の推定値と第1及び第2の信号とから第1の信号に含まれる近端信号の割合を推定し、この推定した割合を第1の信号に乗じることで、第1の信号を補正するものであっても良い。
周波数分割部160、161における周波数分割は、フーリエ変換、コサイン変換、サブバンド分析フィルタバンクなどの任意の線形変換を用いることができ、周波数合成部164における周波数合成は、それらに対応する逆フーリエ変換、逆コサイン変換、サブバンド合成フィルタバンク等の任意の処理とすることができる。
次に本発明の実施例について図面を参照して説明する。先ず、図1の変換部100としてスペクトルサブトラクション部を用いた実施例について説明する。
図3は本発明の第1の実施例のブロック図である。図26の従来技術との差異は、図26における減算器4と近端信号の出力端子9との間にスペクトルサブトラクション部6が挿入されていること、および、そのスペクトルサブトラクション部6は、線形エコーキャンセラ3の出力信号を受け、かつ、音声検出部5の出力する音声検出結果を受けていることである。
スペクトルサブトラクション部6は、減算器4の出力信号と線形エコーキャンセラ3の出力信号とをそれぞれ周波数領域に展開し、各周波数ごとに、エコーを除去する。その構成例と動作を、図4を用いて説明する。
図4はスペクトルサブトラクション部6の構成例を示すブロック図である。入力端子62から、図3における減算器4の出力信号が入力される。フーリエ変換器60は、入力端子62から入力された信号を受け、そのM点フーリエ変換を計算し、計算された結果を第1のフーリエ係数として、それぞれの周波数に対応するフーリエ係数減算器66m(m=1〜M)に送る。一方、入力端子63から、図3における線形エコーキャンセラ3の出力信号、すなわちエコーレプリカ信号が入力される。フーリエ変換器61は、入力端子63から入力された信号を受け、そのM点フーリエ変換を計算し、計算された結果を第2のフーリエ係数として、それぞれの周波数に対応するフーリエ係数減算器66mに送る。
フーリエ係数減算器66mでは、フーリエ変換器60が出力した第1のフーリエ係数と、フーリエ変換器61が出力した第2のフーリエ係数と、図3における音声検出部5が出力した音声検出結果(端子67)とを受け、エコー成分が除去されたフーリエ係数を計算し、計算結果を逆フーリエ変換器64へ送る。逆フーリエ変換器64は、フーリエ係数減算部661〜66Mが出力したフーリエ係数群を受け、その逆フーリエ変換を計算し、計算結果の実数部を出力端子65から出力する。
次に、フーリエ係数減算器66m(m=1〜M)のそれぞれの構成例と動作を、図5を用いて説明する。図5はフーリエ係数減算器66m(m=1〜M)の第1の構成例を示すブロック図である。図4におけるフーリエ変換器60が出力した各周波数ごとの第1のフーリエ係数は、端子700を通じて、絶対値計算部701および減算器706へ送られる。図4におけるフーリエ変換器61が出力した第2のフーリエ係数は、端子703を通じて、絶対値計算部704および乗算器707に送られる。絶対値計算部701は、第1のフーリエ係数を受けて、その絶対値を計算し、計算結果を割算器702に送る。絶対値計算部704は、第2のフーリエ係数を受けて、その絶対値を計算し、計算結果を割算器702に送る。割算器702は、絶対値計算部701の計算結果と絶対値計算部704の計算結果とを受けて、絶対値計算部701の計算結果を絶対値計算部704の計算結果で割った値を計算し、計算結果を平滑部705へ送る。
なお、ここでは、絶対値計算部701、704によりフーリエ係数の絶対値、つまり当該周波数成分の振幅の絶対値を求めたが、このほかに、振幅の二乗平均の平方根や、振幅の絶対値のQ乗平均のQ乗根(Qは任意の正実数)など、振幅に比例する量ならば他の任意の量を用いることが可能である。また、パワーに比例する量、例えば二乗など偶数乗した値を用いることもできる。これは以下の他の実施例においても同様である。
平滑部705は、割算器702から受けた計算結果を平滑化し、乗算器707へ送る。平滑部705における平滑化の時定数は、端子67から入力される音声検出結果によって制御される。音声検出結果が、音声(近端音声)があることを示しているときには、平滑化の時定数を長く、あるいは無限とする。音声検出結果が、音声(近端音声)がないことを示しているときには、平滑化の時定数を短くする。平滑部705の構成については後で説明する。
乗算器707は、平滑部705が出力する値と、端子703を通じてフーリエ変換器61から受けた第2のフーリエ係数を乗じて、結果を減算器706に送る。減算器706は、端子700を通じてフーリエ変換器60から受けた第1のフーリエ係数から、乗算器707の出力する値を減じて、計算結果を端子799から出力する。端子799を通じて出力された計算結果は、図4における逆フーリエ変換器64へと送られる。
次に平滑部705の構成例およびその動作を、図6を用いて説明する。入力信号(割算器702の出力)は、端子800を通じて減算器801へ送られる。減算器801は、端子800を通じて受けた入力信号と、1サンプル分の遅延器804の出力(平滑部自身の出力)とを受けて、端子800を通じて受けた入力信号から、1サンプル分の遅延器804の出力を減じた信号を出力し、乗算器802へと送る。乗算器802は、減算器801の出力信号と、平滑化係数決定部808の出力とを受けて、その2つを乗じた結果を加算器803へと送る。加算器803は、乗算器802の出力と、遅延器804の出力とを受けて、その2つを加算した結果をリミッタ807へと送る。リミッタ807は、加算器803の出力を受けて、その値がある範囲を超えないように、上限と下限を制限し、制限された結果を、出力端子899および遅延器804へ送る。遅延器804は、リミッタ807の出力を受けて、1サンプル遅延させて、その遅延結果を減算器801および加算器803へ送る。
以上の平滑部705は、いわゆるリーク積分器、または、一次IIR型低域フィルタとよばれるものを構成している。ただし、その時定数を決定する係数は定数ではなく、平滑化係数決定部808から時変の係数として供給されている。なお、平滑化係数と平滑化の時定数とは反比例の関係になる。
平滑化係数決定部808では、端子67から供給される音声検出結果によって、異なる平滑化係数を供給する。音声(近端音声)がある場合には、極めて小さい非負係数、例えば0.0を供給する。音声(近端音声)がない場合には、比較的大きな正係数、例えば0.005を供給する。これらの時変の平滑化係数によって、音声(近端音声)がある場合には、1サンプル前の平滑化係数を維持する、あるいは、平滑化係数はほとんど変化しない。また、音声(近端音声)がない場合には、出力される平滑化係数が変化する。
この制御により、平滑部705の出力は、その周波数におけるエコーの漏れこみ具合の推定値になる。その理由について説明する。平滑部705の入力は、近端信号のフーリエ係数を遠端信号のフーリエ係数で割った商であるので、この商に線形エコーキャンセラ出力信号のフーリエ係数を乗じることにより、近端信号のフーリエ係数と同じ値が生成できる。つまり、エコーの漏れこみ具合を表す値である。この値は激しく変化する値であり、音声(近端音声)がある場合には大きく乱れるため、そのままでは信頼できない。しかし平滑化することにより、安定した信頼できる推定値になる。さらに、音声(近端音声)がある場合には変化が遅いあるいは変化しないように平滑化定数を制御することにより、音声(近端音声)がある場合の乱れの影響を少なくすることができる。その結果、平滑部705の出力は、その周波数におけるエコーの漏れこみ具合の推定値として、音声検出結果によって制御された場合のほうが、制御されない場合より優れた推定値となる。
以上のようにして得られた平滑部705が出力する値を、乗算器707において、線形エコーキャンセラ出力信号のフーリエ係数に乗じることにより、エコーレプリカ信号に残留するエコー信号のフーリエ係数の推定値が得られる。このエコー信号のフーリエ係数の推定値を減算器706において、近端信号のフーリエ係数から減じることにより、エコー成分を抑圧した近端信号のフーリエ係数の推定値が得られる。その推定値は、図4の逆フーリエ変換器64へと送られ、近端信号へと合成され、出力端子65から出力される。結果として、この合成された近端信号においては、エコーは抑圧される。
以上のフーリエ係数減算器66mの動作を式を用いて説明する。近端信号のフーリエ係数をS、そのうち近端音声の成分をA、エコー成分をE、雑音成分をNとする。ここには、
S=A+E+N (式1)
の関係がある。また遠端信号のフーリエ係数をRとする。時間軸があっているので、EとRの位相はほぼ同じはずである。Aがない場合、すなわち近端音声がない場合には、近端信号はE+Nであり、すべて消していい信号である。この場合の信号を用いてE+NをRから推定し、近端音声がある場合に、近端信号からE+Nを減算することを考える。音声検出の結果を使って、近端音声がない場合にのみS/Rを平滑した結果P1(平滑部705の出力に相当する)は、
P1 = Av[S/R] = Av[(E+N)/R] (式2)
となる。ここでAv[・]は平滑化をあらわす。このP1は、遠端信号Rのどの程度の割合がエコーとして漏れこむかを近似しており、エコー経路におけるエコーのゲインと言える。
従って、このP1にRをかけた結果P2(乗算器707の出力に相当する)は、エコー成分および雑音成分の推定値になる。
P2 = P1 × R
= R×Av[(E+N)/R]
= Ex[E+N] (式3)
ここでEx[・]は、推定値をあらわす。
このP2をSから引いた結果P3(減算器706の出力に相当する)は、
P3 = S − P2
= S −(R×Av[(E+N)/R])
= (A+E+N) − Ex[E+N]
= Ex[A] (式4)
となる。このP3においては、エコー成分Eや雑音成分Nが除去された、近端音声のフーリエ係数成分Aの推定値が得られる。
図3にもどり、エコー経路におけるスピーカなどに歪がある場合に、本発明の実施例がどのように動作するかを説明する。歪がある場合、本発明の実施例では、スペクトルサブトラクション部6の周波数領域の非線形演算によって、エコーにおける歪による成分を除去している。周波数領域の非線形演算において重要な、信号成分の時間的変化を、線形エコーキャンセラ3が調整することによって、エコーにおける歪による成分を効果的に除去する。マイクロホン1の出力信号には、遠端信号そのものに加えて、遠端信号の歪のエコーが含まれる。この歪のエコーは、遠端信号のエコーの周波数成分の高調波として考えることができる。説明を簡単にするために、エコー成分Eが歪による高調波のみである場合を考える。式2および式3から分かるように、スペクトルサブトラクション部では、遠端信号のフーリエ変換成分Rがゼロでない限り、エコー成分Eを除去することが原理的には可能である。ここでエコー成分Eを除去するために重要なのは、エコー経路におけるエコーのゲインP1の推定精度である。歪による高調波の量は、遠端信号の性質、例えば振幅などによって時間的に大きく変化するため、P1において高い精度を得るためには、式1の右辺における分母、すなわち遠端信号のフーリエ変換成分Rの時間的変化が、分子におけるエコー成分Eの時間変化とできるだけ同様であることが望ましい。これらの時間的変化が大きく異なると、P1として高い精度を得ることができず、歪のエコーを大きく除去することができない。本発明の実施例においては、線形エコーキャンセラ3の出力信号に基づく値をRとして用いるため、EとRの時間的変化のタイミングはほぼ揃えられている。すなわちP1において高い推定精度を得るために望ましい状態に近い。したがってスペクトルサブトラクション部6において、歪により発生した高調波も大きく抑圧することができる。
また、本発明の第1の実施例には、図3の線形エコーキャンセラ3においてエコー経路の推定を誤った場合に、残留したエコーを除去する効果もある。前段落の説明では、説明の簡単のため、エコー成分Eが歪による高調波のみである場合を考えたが、歪によらない遠端信号のエコー成分、すなわち高調波でないエコー成分が存在する場合についても議論は同様であり、高調波でないエコー成分を抑圧することが可能である。例えばエコー経路の推定を誤り、図3における減算器4において、エコーを除去せずに、逆に付加してしまう場合がありうる。しかし、その場合にも、スペクトルサブトラクション部6において遠端信号の成分が除去されるため、エコーを抑圧することができる。
また、2入力スペクトルサブトラクション部6のこの効果を用いると、線形エコーキャンセラ3のタップ数を削減することによる演算量削減も可能である。図26に示すように線形エコーキャンセラのみを用いた場合には、タップ数を削減することにより、エコー除去量が低下してくる。しかし図3に示す本発明の第1の実施例では、タップ数を削減してもエコー除去量の減少が少なく、実用的なエコー除去量が得られる。
以上説明してきたように、本発明の第1の実施例においては、線形エコーキャンセラ3と、スペクトルサブトラクション部6の周波数領域の非線形演算を組み合わせることによって、互いに不得手な点を補い合い、高性能を得ている。すなわち、スペクトルサブトラクション部6があることによって、エコー経路に歪がある場合や線形エコーキャンセラ3がエコー経路推定を誤った場合など、線形エコーキャンセラ3だけではエコーが十分に抑圧できない場合でも、エコーを大きく抑圧することができる。また、線形エコーキャンセラの出力を用いることによって、スペクトルサブトラクション部の周波数領域の演算では対応できない時間的なずれを気にせず、振幅だけの簡単な推定で、歪によって生じる高調波を抑圧することができる。
図7は、図4のスペクトルサブトラクション部6におけるフーリエ係数減算器66m(m=1〜M)の第2の構成例である。図5に示すフーリエ係数減算器の第1の構成例との差異は、絶対値計算部701から割算器702への信号経路に、平滑部710が挿入されていること、および、絶対値計算部704から割算器702への信号経路に、平滑部711が挿入されていることのみである。
平滑部710および平滑部711の構成例を図8に示す。図8は、いわゆるリーク積分器、あるいは1次IIR型低域フィルタとよばれるものである。その動作は、図6に示す平滑部705の構成例と極めて類似しているので、図8を図6と比較しながら、その動作を説明する。図8と図6の差異は、乗算器802に供給される平滑化係数が、端子806において平滑化定数として供給されていることのみである。図6の構成例では、音声検出結果の影響を受けたのに対し、図8の構成例では、音声検出結果の影響を受けずに入力信号を平滑化する。
図7に示すフーリエ係数減算器66m(m=1〜M)の第2の構成例では、平滑部710および平滑部711によって、割算器702の2つの入力が平滑化されるため、割算器702の出力として平滑部705に入力される商も平滑化される。その結果、平滑部705の出力である推定値は、図5の第1の構成例より、図7の第2の構成例の方が安定した値が得られる。しかし第1の構成例でも第2の構成例でも、平滑部705の出力においてエコーの漏れこみ具合の推定値が得られるという機能については変わりない。したがって、フーリエ係数減算器66m(m=1〜M)として図7に示す第2の構成例を用いた場合にも、本発明の効果は、図5に示す第1の構成例を用いた場合と同様に得られる。
図7における平滑部710および平滑部711の別の構成例を図9に示す。図8と図9の差異は、乗算器802に供給される平滑化係数が、減算器801の出力信号を入力とする平滑化係数決定部810から供給されていることである。平滑化係数決定部810は、減算器801の出力信号が正である場合、すなわち出力が増加するときには、比較的大きな係数、例えば0.01を供給し、減算器801の出力値が負である場合、すなわち入力が出力より小さく、出力が減少していくときには、比較的小さな係数、例えば0.001を供給する。これらの時変の平滑化係数によって、平滑部出力端子899の値が増加する速度、すなわち、立ち上がりの速度は高く、減少する速度、すなわち、出力が立ち下がる速度は低くなる。実際の音声や音楽の振幅変化、すなわち包絡線は、立ち上がりが速く、立下りが遅い場合が多い。図9に示す平滑部の構成例では、このような包絡線に的確に追従することが可能であり、図7に示すフーリエ係数減算器66mの構成例におけるエコーの漏れこみ具合の推定値の推定精度を改善することができる。
図5および図7における平滑部705の別の構成例を図10に示す。図6と図10の差異は、乗算器802に平滑化係数を供給する平滑化係数決定部809が、端子67を経由してきた音声検出結果と、減算器801の出力信号とを入力とする平滑化係数決定部809によって置き換えられていることである。平滑化係数決定部809は、端子67から供給される音声検出結果、および減算器801の出力信号の正負によって、異なる平滑化係数を供給する。音声がある場合には、極めて小さい非負係数、例えば0.0を供給する。音声(近端音声)がない場合、かつ、減算器801の出力信号が正である場合には、比較的大きな係数、例えば0.01を供給する。音声がない場合、かつ、減算器801の出力値が負である場合、すなわち入力が出力より小さい場合には、比較的小さな係数、例えば0.001を供給する。これらの時変の平滑化係数によって、平滑部出力端子899の値が増加する速度、すなわち、立ち上がりの速度は高く、減少する速度、すなわち、出力が立ち下がる速度は低くすることができる。実際の信号における包絡線に的確に追従することが可能であり、図5および図7に示すフーリエ係数減算器66mの構成例におけるエコーの漏れこみ具合の推定値の推定精度を改善することができる。
図11は本発明の第2の実施例のブロック図である。図3に示す第1の実施例との差異は、スペクトルサブトラクション部6に入力される信号として、第1の実施例では減算器4の出力を用いているのに対し、第2の実施例ではマイクロホン1の出力信号を用いていることである。減算器4の出力では、線形エコーキャンセラ3により、エコーの主要成分が除去されているのに対し、マイクロホン1の出力信号ではエコーは除去されていない。この差異は、エコーの主要成分の除去を、線形エコーキャンセラ3と減算器4とで行うか、スペクトルサブトラクション部6で行うかの差のみであり、歪に対する効果については、第1の実施例と全く同一である。従って、第2の実施例においても、音響系に歪がある場合や線形エコーキャンセラ3がエコー経路推定を誤った場合など、線形エコーキャンセラ3だけではエコーが十分に抑圧できない場合でも、エコーを大きく抑圧することができる。
なお、第1および第2の実施例におけるスペクトルサブトラクション部6の構成としては、これまで説明してきた構成例以外に、非特許文献2におけるスペクトラルサブトラクション(Spectral Subtraction)の構成や、非特許文献3におけるスペクトラルサブトラクション(Spectral Subtraction)の構成を用いることも可能である。
次に、図1の変換部100としてスペクトルサプレッション部を用いた実施例について説明する。
図12は本発明の第3の実施例のブロック図である。図3における第1の実施例との差異は、スペクトルサブトラクション部6が、スペクトルサプレッション部7によって置換されていることのみである。スペクトルサプレッション部7について図を用いて説明する。
図13は、スペクトルサプレッション部7の構成を示すブロック図である。入力端子72から、図12における減算器4の出力信号が入力される。フーリエ変換器70は、入力端子72から入力された信号を受け、そのM点フーリエ変換を計算し、計算された結果を第1のフーリエ係数として、それぞれの周波数に対応するフーリエ係数乗算器76m(m=1〜M)に送る。一方、入力端子73から、図12における線形エコーキャンセラ3の出力信号が入力される。フーリエ変換器71は、入力端子73から入力された線形エコーキャンセラ出力信号を受け、そのM点フーリエ変換を計算し、計算された結果を第2のフーリエ係数として、それぞれの周波数に対応するフーリエ係数乗算器76mに送る。フーリエ係数乗算器76mでは、フーリエ変換器70が出力した第1のフーリエ係数と、フーリエ変換器71が出力した第2のフーリエ係数と、図12における音声検出部5が出力した音声検出結果とを受け、エコー成分を減少させたフーリエ係数を計算し、計算結果を逆フーリエ変換器74へ送る。逆フーリエ変換器74は、フーリエ係数乗算器76m(m=1〜M)が出力したフーリエ係数群を受け、その逆フーリエ変換を計算し、計算結果の実数部を出力端子75から出力する。フーリエ係数乗算器76m(m=1〜M)によって、出力端子75においては、エコー成分が減少した信号が得られる。
次に、フーリエ係数乗算器76m(m=1〜M)のそれぞれの構成例と動作を、図14を用いて説明する。図14は、フーリエ係数乗算器76m(m=1〜M)の第1の構成例を示す図である。図13におけるフーリエ変換器70が出力した各周波数ごとの第1のフーリエ係数は、端子730を通じて、絶対値計算部731および乗算器737へ送られる。図13におけるフーリエ変換器71が出力した第2のフーリエ係数は、端子733を通じて、絶対値計算部734に送られる。絶対値計算部731は、第1のフーリエ係数を受けて、その絶対値を計算し、割算器742および割算器745に送る。絶対値計算部734は、第2のフーリエ係数を受けて、その絶対値を計算し、計算結果を割算器742および割算器745に送る。割算器742は、絶対値計算部731の計算結果と、絶対値計算部734の計算結果とを受けて、絶対値計算部731の計算結果を絶対値計算部734の計算結果で割った値を計算し、計算結果を平滑部743へと送る。
平滑部743は、割算器742から受けた計算結果を平滑化し、乗算器746へと送る。平滑部743における平滑化の時定数は、端子67から入力される音声検出結果によって制御される。音声検出結果が、音声(近端音声)があることを示しているときには、平滑化の時定数を長く、あるいは無限とする。音声検出結果が、音声(近端音声)がないことを示しているときには、平滑化の時定数を短くする。平滑部743の構成例は、すでに説明した図6または図10で表すことができ、その動作も同一である。平滑部743の出力値は、第1のフーリエ係数と第2のフーリエ係数の比の推定値となり、当該周波数におけるエコーの漏れこみ具合の推定値となる。
割算器745は、絶対値計算部731の計算結果と、絶対値計算部734の計算結果とを受けて、絶対値計算部734の計算結果を絶対値計算部731の計算結果で割った値を計算し、計算結果を乗算器746へと送る。
乗算器746は、平滑部743の出力と割算器745の出力とを受けて、それらを乗じた値を計算し、計算結果を平滑部747へと送る。平滑部747は、乗算器746の出力を受けて、その出力を平滑化して減算器744へと送る。減算器744は、平滑部747の計算結果を1.0から減じて、乗算器737へと送る。乗算器737は、減算器744が出力する値と、端子730を通じてフーリエ変換器70から受けた第1のフーリエ係数の値とを乗じて、計算結果を端子789から出力する。端子789を通じて出力された計算結果は、図13における逆フーリエ変換器74へと送られる。
ここで減算器744が出力する値について式を用いて説明する。フーリエ係数減算部の説明で用いた式4の第2行目の全体をSで割って平滑した結果P4は、式5のようにあらわされる。この式5の右辺は図14において、減算器744が出力する値に他ならない。
P4 = Av[P3/S]
= Av[1−{(R/S)×Av[(E+N)/R]}]
= 1 − Av[{(R/S)×Av[(E+N)/R]}]
(式5)
また、P4は、式4の3行目の全体をSで割って平滑した結果として、
P4 = Av[{(A+E+N) − Ex[E+N]}/S]
= Av[Ex[A]/S]
= Ex[A/S]
(式6)
のようにあらわせる。式6を式5と比較すると、減算器744の出力P4が、近端信号における近端音声の割合の推定値となることが分かる。
減算器744が出力する値を、乗算器737において、減算器4の出力信号、すなわち線形エコーキャンセラによりエコーを減じられた信号のフーリエ係数に乗じることにより、近端信号におけるエコー信号以外の信号、すなわちエコーを抑圧した近端音声のフーリエ係数の推定値が得られる。その推定値は、図13の逆フーリエ変換器74へと送られ、近端信号へと合成され、出力端子75から出力される。結果として、この合成された近端信号においては、エコーは抑圧される。
エコー経路におけるスピーカなどに歪がある場合に、本発明の第3の実施例がどのように動作するかを説明する。式5および式6を用いて説明したように、P4は近端信号における近端音声の割合の推定値である。このP4を計算するにあたり、本発明の第1の実施例で用いたP3を用いている。すでに本発明の第1の実施例で説明したように、P3は、近端音声のフーリエ係数成分の推定値であり、エコー成分や雑音成分だけでなく、歪により発生した高調波のエコー成分も取り除かれている。従って、P4においても歪により発生した高調波のエコー成分の割合が取り除かれており、このP4を乗じて得られるフーリエ係数では、歪のエコー成分が抑圧される。
以上のように、図12に示す第3の実施例においても、エコー経路に歪がある場合や線形エコーキャンセラ3がエコー経路推定を誤った場合など、線形エコーキャンセラ3だけではエコーが十分に抑圧できない場合でも、エコーを大きく抑圧することができる。
図15は、図13におけるフーリエ係数乗算器76m(m=1〜M)の第2の構成例である。図14に示すフーリエ係数乗算器76mの第1の構成例との差異は、絶対値計算部731から割算器742への信号経路に、平滑部740が挿入されていること、および、絶対値計算部734から割算器742への信号経路に、平滑部741が挿入されていることのみである。この差異は、図5に示すフーリエ係数減算器の第1の構成例と、図7に示すフーリエ係数減算器の第2の構成例との差異と同様であり、その効果も同様である。したがって、図13におけるフーリエ係数乗算器76m(m=1〜M)として、図15に示す第2の構成例を用いた場合にも、本発明の効果は同様に得られる。
図16は本発明の第4の実施例のブロック図である。図12に示す第3の実施例との差異は、スペクトルサプレッション部7に入力される信号として、第3の実施例では減算器4の出力を用いているのに対し、第4の実施例ではマイクロホン1の出力信号を用いていることである。この差異は、第1の実施例と第2の実施例との差異と同様であり、その効果も第3の実施例と同様である。
次に、図1における変換部100に線形エコーキャンセラ3の出力の歪を強調した信号を第2の信号として入力する実施例について説明する。
図17は本発明の第5の実施例のブロック図である。図3に示す第1の実施例との差異は、線形エコーキャンセラ3の出力と、スペクトルサブトラクション部6の入力の間に、歪発生部8が挿入されていることのみである。この歪発生部8は、線形エコーキャンセラ3の出力信号、すなわち遠端信号の周波数成分の高調波を積極的に発生させる。歪発生部8によって、音響系で生じる歪に類似した高調波が得られるため、遠端信号に含まれる高調波が少な過ぎる場合に、スペクトルサブトラクション部6でのエコー抑圧が容易になり、歪発生部8がない場合より高いエコー抑圧が得られる。
図18は本発明の第6の実施例のブロック図である。図11に示す第2の実施例との差異は、線形エコーキャンセラ3の出力と、スペクトルサブトラクション部6の入力の間に、歪発生部8が挿入されていることのみである。この差異は、第1の実施例と第5の実施例との差異と同一であり、その効果も同一である。
図19は本発明の第7の実施例のブロック図である。図12に示す第3の実施例との差異は、線形エコーキャンセラ3の出力と、スペクトルサプレッション部7の入力の間に、歪発生部8が挿入されていることのみである。この差異は、第1の実施例と第5の実施例との差異と同一であり、その効果も同一である。
図20は本発明の第8の実施例のブロック図である。図16に示す第4の実施例との差異は、線形エコーキャンセラ3の出力と、スペクトルサプレッション部7の入力の間に、歪発生部8が挿入されていることのみである。この差異は、第1の実施例と第5の実施例との差異と同一であり、その効果も同一である。
以上本発明の実施例について説明したが、本発明は以上の実施例にのみ限定されずその他各種の付加変更が可能である。例えば、以下のように付加変更することができる。
以上では、スペクトルサブトラクション部、および、スペクトルサプレッション部において、毎サンプルごとにフーリエ変換を行う場合について説明してきたが、毎サンプルでなくとも、一定間隔ごとにフレーム単位で処理することも可能である。またフレームをオーバーラップさせた処理も可能である。この際にオーバーラップセーブやオーバーラップアドなどの手法を用いて、演算量を削減することも可能である。オーバーラップセーブやオーバーラップアドなどの手法については、例えば、非特許文献4に記載されている。
以上では、スペクトルサブトラクション部、および、スペクトルサプレッション部において、フーリエ変換を行う場合について説明してきたが、フーリエ変換以外にも、コサイン変換や、フィルターバンクなどの線形変換を用いることも可能である。また、サブバンド領域に変換してから処理を行うことも可能である。これらの場合、フーリエ係数減算器、および、フーリエ係数乗算器は、用いる線形変換に対応して読み替えればよい。例えば、コサイン変換を用いた場合には、コサイン係数減算器、コサイン係数乗算器となる。それらの動作は、フーリエ変換の場合と同様である。
本発明における線形エコーキャンセラとして、変換領域エコーキャンセラを用い、さらにその変換領域が、スペクトルサブトラクション部またはスペクトルサプレッション部で同一の変換領域である場合には、演算量の削減およびその演算に伴う遅延時間の短縮が可能である。ここで変換領域エコーキャンセラとは、線形変換を行って展開された変換領域においてエコーキャンセラ動作を行い、逆線形変換によって元の領域に再合成するようなエコーキャンセラを表す。
線形エコーキャンセラとして非特許文献4に示されるフーリエ変換領域エコーキャンセラを用いた場合の例を図を用いて説明する。図21は、本発明の第9の実施例である。この本発明の第9の実施例では、フーリエ変換領域において、エコーキャンセラとスペクトルサブトラクションを行っている。図3に示す第1の実施例との差異は、線形エコーキャンセラ3がエコーキャンセラ13により実現され、スペクトルサブトラクション部6がスペクトルサブトラクション部16により置換され、スペクトルサブトラクション部16への入力信号のうち2つがエコーキャンセラ13から出力される変換領域信号群1および変換領域信号群2に置換されていることである。
図22は、本発明の第9の実施例におけるエコーキャンセラ13の構成例を示すブロック図である。端子31より入力された遠端信号は、フーリエ変換器35によりフーリエ変換領域に展開され、各周波数ごとに適応フィルタ群38へと送られる。図21における減算器4から端子33を経由して入力された減算結果は、フーリエ変換器37によりフーリエ変換領域に展開され、各周波数ごとにそれぞれ乗算器39m(m=1〜M)へと送られる。乗算器39m(m=1〜M)のそれぞれは、フーリエ変換器37から受けた信号に、端子34から受けた音声検出結果を乗じて、その結果を適応フィルタ群38へと送る。適応フィルタ群38は、M個の適応フィルタから構成されており、フーリエ変換器35から受けた信号群と、乗算器39m(m=1〜M)からの信号群を受けて、対応する信号を用いて適応フィルタの処理を行う。適応フィルタ処理により得られたそれぞれのフィルタ結果は、逆フーリエ変換器36へと送られる。逆フーリエ変換器36は、適応フィルタ群38から得たフィルタ結果を集め、その逆フーリエ変換を計算し、端子32から出力する。端子32から出力される信号が、エコーキャンセラとしての出力である。
エコーキャンセラ13は、エコーキャンセラとしての出力以外に、スペクトルサブトラクションのために、フーリエ変換器37が出力する信号群を変換領域信号群1としてベクトル型出力端子41から出力し、適応フィルタ群38が出力するフィルタ結果群を変換領域信号群2としてベクトル型出力端子42から出力する。変換領域信号群1および変換領域信号群2は、図21におけるスペクトルサブトラクション部16へと送られる。変換領域信号群1は、図21における減算器4の出力信号をフーリエ変換したものとなる。また変換領域信号群2は、図21においてエコーキャンセラ13から減算器4へと向かう信号をフーリエ変換したものと解釈できる。
スペクトルサブトラクション部16の構成および動作を、図を用いて説明する。図23は、スペクトルサブトラクション部16の構成例を示すブロック図である。本発明の第1の実施例で説明した図4に示すスペクトルサブトラクション部の構成例との差異は、2つの入力信号が変換領域信号群1および変換領域信号群2によって置換されていることおよび、図4におけるフーリエ変換器60とフーリエ変換器61が削除されていることである。図22に示すエコーキャンセラの構成例で説明したように、変換領域信号群1は、図21における減算器4の出力信号をフーリエ変換したものであり、変換領域信号群2は、図21においてエコーキャンセラ13から減算器4へと向かう信号をフーリエ変換したものである。これらは、図4に示すスペクトルサブトラクション部において、フーリエ係数減算器66m(m=1〜M)に入力される2つの信号と全く同一である。したがって、図23に示すスペクトルサブトラクション部16は、図4に示すスペクトルサブトラクション部と全く同一の信号を出力することができる。したがって、図21に示す本発明の第9の実施例においても本発明の第1の実施例と同様の効果があることが分かる。スペクトルサブトラクション部16への2つの入力信号がエコーキャンセラ13からの変換領域信号群1および変換領域信号群2として直接接続されることにより、スペクトルサブトラクション部16の内部におけるフーリエ変換を削減しながら、本発明の効果を得ることができる。
本発明の第9の実施例が、本発明の第1の実施例に対応するように、本発明の他の実施例を変換領域で実現することも可能である。また、フーリエ変換領域以外にコサイン変換領域などを用いることも可能である。
線形エコーキャンセラとして非特許文献4に示されるサブバンド領域エコーキャンセラを用い、かつ、スペクトルサブトラクション部またはスペクトルサプレッション部をサブバンド領域に変換してから処理を行う場合には、各処理および部分の接続においてサブバンド領域に変換するためのフィルタを省略し、サブバンド領域内で接続することが可能である。この例を、図を用いて説明する。図24は、本発明の第10の実施例を示すブロック図である。この本発明の第10の実施例では、サブバンド領域において、エコーキャンセラとスペクトルサブトラクションを行っている。まず、マイクロホン1からの信号はサブバンド分析フィルタバンク91においてN個の帯域に展開され、遠端信号はサブバンド分析フィルタバンク92においてN個の帯域に展開される。展開された各帯域ごとに、エコーキャンセラ部93n、減算器94n、音声検出部95n、スペクトルサブトラクション部96n(ここでn=1〜N)を有している。各帯域ごとのスペクトルサブトラクション部96nの出力は、サブバンド合成フィルタバンク99によって集められ、もとの信号領域へと逆変換され、近端信号として出力される。各帯域における、減算器94n、音声検出部95n、スペクトルサブトラクション部96n(ここでn=1〜N)の処理は、エコーキャンセラのタップ数や、スペクトルサブトラクション部のフーリエ変換器の規模が異なるが、それ以外は図3に示す本発明の第1の実施例と同様に動作するので、その処理の詳細な説明は省略する。本発明の第10の実施例では、すべての処理がサブバンド領域に変換されてから行われるため、線形エコーキャンセラ3における合成フィルタバンク、および、スペクトルサブトラクション部におけるサブバンド分析フィルタバンクを省略して接続することができる。この場合には、省略されたサブバンド分析フィルタバンクおよびサブバンド合成フィルタバンクに相当する演算量が削減され、またその演算に相当する遅延時間が短縮される。本発明の第10の実施例におけるスペクトルサブトラクション部をスペクトルサプレッション部に置換した構成も可能である。また変換領域をサブバンド領域以外とした構成も可能である。
本発明の第10の実施例が、本発明の第1の実施例に対応するように、本発明の他の実施例をサブバンド領域で実現することも可能である。また、フーリエ変換領域以外にコサイン変換領域などを用いることも可能である。
図25は本発明の第11の実施例を示すブロック図である。本発明の第11の実施例では、エコーキャンセラおよびスペクトルサブトラクションをフーリエ変換領域で行っている。まず、マイクロホン1からの信号はフーリエ変換器191においてM個の帯域に展開され、遠端信号はフーリエ変換器192においてM個の帯域に展開される。展開された各帯域ごとに、エコーキャンセラ部193m、減算器194m、音声検出部195m、フーリエ係数減算器66m(ここでm=1〜M)を有している。各帯域ごとのフーリエ係数減算器66mの出力は、逆フーリエ変換器199によって集められ、もとの信号領域へと逆変換され、近端信号として出力される。各帯域における、減算器194m、音声検出部195m(ここでm=1〜M)の処理は、エコーキャンセラのタップ数が異なるが、それ以外は図3に示す本発明の第1の実施例と同様に動作するので、その処理の詳細な説明は省略する。本発明の第10の実施例も本発明の第11の実施例もともに変換領域において処理を行っているが、異なる点は、変換領域が異なるために帯域の数Mが多いこと、および、図24におけるスペクトルサブトラクション部が、図25ではフーリエ係数減算器66mで置き換えられた形になっていることである。すなわちスペクトルサブトラクション部におけるフーリエ変換器および逆フーリエ変換器が不要となり、フーリエ係数減算器66mのみでスペクトルサブトラクションに必要な動作を行っている。これは、本発明の第11の実施例では、すべての処理がすでにフーリエ変換領域の多数の帯域に展開されているため、スペクトルサブトラクションを行うために改めてフーリエ変換を行う必要がなくなるからである。本発明の第11の実施例では、省略されたフーリエ変換器および逆フーリエ変換器に相当する演算量が削減される。また、本発明の第11の実施例におけるフーリエ係数減算器をフーリエ係数乗算器に置換した構成も可能である。
本発明の第11の実施例が、本発明の第1の実施例に対応するように、本発明の他の実施例をフーリエ変換領域で実現することも可能である。また、フーリエ変換領域以外にコサイン変換領域などを用いることも可能である。
以上では、線形エコーキャンセラを用いた場合について説明してきたが、線形エコーキャンセラに代えて非線形エコーキャンセラを用いた場合についても、スペクトルサブトラクション部、または、スペクトルサプレッション部と組み合わせた場合に、本発明の効果は得られる。
以上、ハンズフリー電話器を応用例として、本発明の説明をしてきたが、ハンズフリー電話器だけでなく、スピーカから音楽が拡声されている環境における収音や、ハンドセットにおけるレシーバからのエコーが問題となるような収音においても、本発明を用いることができる。