JP5061976B2 - エコーキャンセラ、エコーキャンセル方法及びプログラム - Google Patents

エコーキャンセラ、エコーキャンセル方法及びプログラム Download PDF

Info

Publication number
JP5061976B2
JP5061976B2 JP2008063086A JP2008063086A JP5061976B2 JP 5061976 B2 JP5061976 B2 JP 5061976B2 JP 2008063086 A JP2008063086 A JP 2008063086A JP 2008063086 A JP2008063086 A JP 2008063086A JP 5061976 B2 JP5061976 B2 JP 5061976B2
Authority
JP
Japan
Prior art keywords
echo
addition
adaptive filter
signal
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2008063086A
Other languages
English (en)
Other versions
JP2009219040A (ja
Inventor
真資 高田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oki Electric Industry Co Ltd
Original Assignee
Oki Electric Industry Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oki Electric Industry Co Ltd filed Critical Oki Electric Industry Co Ltd
Priority to JP2008063086A priority Critical patent/JP5061976B2/ja
Priority to US12/320,975 priority patent/US8077858B2/en
Priority to EP09152532A priority patent/EP2101480B1/en
Publication of JP2009219040A publication Critical patent/JP2009219040A/ja
Application granted granted Critical
Publication of JP5061976B2 publication Critical patent/JP5061976B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M9/00Arrangements for interconnection not involving centralised switching
    • H04M9/08Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic
    • H04M9/082Two-way loud-speaking telephone systems with means for conditioning the signal, e.g. for suppressing echoes for one or both directions of traffic using echo cancellers

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Cable Transmission Systems, Equalization Of Radio And Reduction Of Echo (AREA)
  • Telephone Function (AREA)

Description

本発明は、エコーキャンセラ、エコーキャンセル方法及びプログラムに関し、例えば、企業会議室向けや家庭用等のハンズフリーの拡声電話機に用いられるエコーキャンセラ、エコーキャンセル方法及びプログラムに適用し得るものである。
近年、VoIPの普及や携帯電話のサービス形態の多様化に伴い、各種電話の通信料金が安価になり、家庭やオフィスにおいては以前よりも通話料を気にかけずに、長時間電話ができるようになってきた。このような利用環境の変化に伴い、例えば、企業会議室向けや家庭用のハンズフリーの拡声電話機の普及が急速に要求されている。
ところで、拡声電話機には、通話中に両手が自由に使えて他の作業ができることと、装着ストレスがなく長時間電話ができることという2つの有効な機能がある。
例えばイヤホンマイクやヘッドホンやヘッドセット等のいわゆるハンズフリー機器は、上記の前者の機能を備えるものとして一般的によく知れている。
従来のハンズフリー機器は、通話中に両手が自由に使えて他の作業ができる、いわゆるハンズフリーの状態が可能であることから、例えば、携帯電話、自動車電話、オフィス向けの機器に適用されている。例えば、イヤホン(イヤホンマイク)やヘッドホン、他にはコールセンタなどでしばしば見られるヘッドセットとして適用されている。しかし、長時間イヤホンを使用すると、耳穴とイヤホンがこすれ、爛れが生じ苦痛を与えることとなったり、又ヘッドセットを長時間使用すると、その装着違和感のために相当の疲労を与えたりしてしまうことがある。このような長時間の装着が電話利用者に不都合を与えている場合がある。
近年、一般家庭においても長時間の通話が普通に行われており、通話中に他の作業を行えるという要望だけでなく、長時間快適に通話するということが強く要望されている。つまり、近年急速に普及してきたVoIP通話などでは、話者の目的は携帯電話と異なり、最初から長時間ストレスがなく快適に通話をすることが主目的となってきた。
このような近年の機器発達と電話利用者の利用形態の変化の中で、イヤホンやヘッドセット等のハンズフリー機器を装着しなくても、快適に電話ができる実用的で安価なスピーカフォン形式の拡声電話機の普及が強く望まれている。
このようなスピーカフォン形式の拡声電話機を実現するためには、従来から音響エコーキャンセラを用いて、電話機を拡声にすることが知られており、実際に広く適用されている。
従来、音響エコーキャンセラを動作させるためのエコーキャンセラには、非特許文献1に開示されるような適用フィルタ技術が適用されている。その中でも、NLMS(NormalizedLMS)アルゴリズムは、収束速度が遅く、特に音声信号のような有色信号で収束が劣化するという欠点と引き換えても、動作の安定性、ディジタル信号処理プロセッサにかける処理量の負担の小ささに優れて電話機に実装することができるため、広く音響エコーキャンセラに適用されている。
今後、上記背景から、一層拡声電話機の普及が予測される。そこで、従来の企業会議自室向けの大規模かつ高価な機器ではなく、一般家庭向けの小規模、高機能かつ低価格な機器が望まれる。しかも、従来の電話音質をしのぐ広帯域音声での通話が可能なVoIP機器が普及し始めているため、拡声電話機やそれに実装されるエコーキャンセラもこれらの音質で利用可能な技術の登場が待ち望まれている。
特開平08−237174号公報 特公平08−21881号公報 特開2003−110469号公報 S.ヘイキン著、"適応フィルタ入門",現代工学社,pp.149-158 NTT東日本株式会社,"電話サービスのインターフェース 第5版"技術参考資料第5版.PDF(日本語),P.21,インターネット,2008年1月23日検索,<http://www.ntt-east.co.jp/gisanshi/analog/>
しかしながら、従来、広く使われている安定なNLMS適用フィルタ更新アルゴリズムを、広帯域向けの音響エコーキャンセラとしてそのまま適用しようとすると、演算量と安定性の点に課題が生じ得る。
つまり、広帯域音質を実現するためには、細かいサンプリングが必要であるため、サンプリング速度を上昇させる。例えば、従来8kHz帯域の音声品質が16kHz帯域の音質になると、サンプリング周波数が2倍になるので、単位時間に処理する音声データサンプルも2倍になる。
一方で、サンプリングされる側である音響エコー経路の時間的長さは変わらない。なぜなら、エコー経路の時間応答長はスピーカから出力された音声信号が空間を経由してマイクに到達する「エコー経路」を音が経由する時間に由来するので、エコー経路の応答長は、マイク−スピーカの距離や、音速、部屋の反響経路の数、音の反射の強さなどの「物理量」で決まる長さであって、ディジタル処理のためのサンプリング速度とは関係ない独立で特有の応答時間長をもつからである。
従って、適応フィルタのタップ数はサンプリング周波数の上昇に応じて大きくなってしまう。不都合なことに、エコーキャンセラを実現する適応フィルタのタップ数が大きくなるとエコーキャンセラの収束が遅くなるのは公知の事実である。
非特許文献1では、上記のような収束速度の低下を回避する技術が記載されており、収束速度を改善させるために、RLSアルゴリズムのような高度に複雑な演算を用いた同定アルゴリズムが適用される。
しかし、残念なことに、このような高速収束アルゴリズムは軌作の安定性に乏しいだけでなく、演算規模、メモリ容量規模も非常に大きくなる。そのため、通信品質が不安定の上に、装置規模やソフトウェア規模が大きくなるので、一般家庭向けの装置に適用しようとすると高価になってしまう。
だからといって、従来のNLMSアルゴリズムのような安定的なアルゴリズムをそのまま適用しようとすると、今度は有色信号での性能劣化やタップ長が大きくなった分の収束速度劣化などをそのまま被ってしまうので、エコーを除去するまでの収束時間がかかり、通信品質の結果を解決できないという問題がある。
このような問題に対して、特許文献1に記載のエコーキャンセラ制御方法を適用することも考えられる。
特許文献1には、エコーキャンセラの適応フィルタの係数を逐次補正する制御方法において、この推定値の逐次補正におけるステップゲインを推定インパルス応答長と、装置の動作開始からの経過時間とで制御しステップゲインを時間とともに減少させることにより、収束開始時の収束速度が大きく、定常時の推定精度が高い収束特性を実現する優れたエコーキヤンセラが開示されている。
しかし、特許文献1の技術では、有色信号による適応フィルタの収束速度の劣化は避けることができない。またエコーキヤンセラの入力信号として、非特許文献2に示されるような呼び出しトーン信号などの信号で一旦収束してしまった後に、いろいろな周波数成分を含む音声信号が入力された場合には、むしろステップゲインを小さくしてしまった分、トーン成分だけで推定したエコー経路から、音声帯域をカバーするための適応フィルタの再収束がむしろ阻害されてしまい、エコーがなかなか消えないという問題が生じ得る。
これらの問題を解決すべく、本願出願人は特願2007−288404号に示される発明について特許出願を行っている。この特許出願には、速やかにエコーキャンセラが収束し、かつ、係数更新アルゴリズムは安定的なNLMSアルゴリズムを利用できる技術が記載されており、この技術は有効に機能するものである。
ところが、スピーカフォン形式の拡声電話機に上記特許出願に記載の技術を適用する場合、例えば、車のエンジン音や雑踏やオフィスノイズ(職場環境ノイズ)等の利用者の背景ノイズ環境によっては、特許文献2に記載の効果が十分に発揮されないおそれが生じ得る。
そのため、利用者の背景ノイズ環境が劣悪な場合でも、エコーキャンセラの効果が発揮するまでの時間を短くすることができ、エコー除去性能を向上させることができるエコーキャンセラ、エコーキャンセル方法及びプログラムが求められている。
かかる課題を解決するために、第1の本発明のエコーキャンセラは、(1)受信入力信号及び送信出力信号に基づいて通話状態を監視する通話状態監視手段と、(2)遠端から音声信号が入力される場合に動作する第1の適応フィルタ手段と、(3)遠端から音声信号が入力されない場合に動作する第2の適応フィルタ手段と、(4)通話状態監視手段による遠端からの音声検出結果に応じて、第1の適応フィルタ手段と第2の適応フィルタ手段との動作を切替制御する動作制御手段と、(5)通話状態監視手段により無通話状態と判断されたときに、送信出力信号に基づいて近端の背景ノイズのパワーを求める背景ノイズパワー計算手段と、(6)通話状態監視手段によりシングルトーク状態と判断されたときに、送信出力信号に基づいてエコーパワーを検出するエコーパワー検出手段と、(7)背景ノイズパワー計算手段により求められた近端の背景ノイズパワーの平均値と、エコーパワー検出手段により求められたエコーパワーの平均値とに基づいて、加算平均回数を求める加算回数制御手段とを備え、第2の適応フィルタ手段が、(2−1)音声検出手段により音声検出なしから音声検出ありに遷移した時点から、送信出力信号及び受信入力信号の所定期間長の各サンプリングデータを、送信入力ベクトル及び受信入力ベクトルとして逐次更新しながら保持する加算データ選択部と、(2−2)加算回数制御手段からの加算平均回数に従って、送信入力ベクトル及び受信入力ベクトルのそれぞれについて、所定設定回数を上限として同期加算平均する加算データ加工部と、(2−3)加算データ加工部により同期加算平均された受信入力ベクトルと逐次更新するフィルタ係数とを用いて擬似エコー信号を作成し、同期加算平均された送信入力ベクトルから擬似エコー信号を除去するものであって、収束したフィルタ係数を第1の適応フィルタ手段に与える適応フィルタ部と、(2−4)ダブルトーク状態の間、適応フィルタにおけるフィルタ係数の更新処理を停止させる更新停止指示部とを有することを特徴とする。
第2の本発明のエコーキャンセル方法は、コンピュータが、通話状態監視手段、第1の適応フィルタ手段、第2の適応フィルタ手段、動作制御手段、背景ノイズパワー計算手段、エコーパワー検出手段及び加算回数制御手段を備え、(1)通話状態監視手段が、受信入力信号及び送信出力信号に基づいて通話状態を監視する通話状態監視工程と、(2)第1の適応フィルタ手段が、遠端から音声信号が入力される場合に動作する第1の適応フィルタ工程と、(3)第2の適応フィルタ手段が、遠端から音声信号が入力されない場合に動作する第2の適応フィルタ工程と、(4)動作制御手段が、通話状態監視手段による遠端からの音声検出結果に応じて、第1の適応フィルタ手段と第2の適応フィルタ手段との動作を切替制御する動作制御工程と、(5)背景ノイズパワー計算手段が、通話状態監視手段により無通話状態と判断されたときに、送信出力信号に基づいて近端の背景ノイズのパワーを求める背景ノイズパワー計算工程と、(6)エコーパワー検出手段が、通話状態監視手段によりシングルトーク状態と判断されたときに、送信出力信号に基づいてエコーパワーを検出するエコーパワー検出工程と、(7)加算回数制御手段が、背景ノイズパワー計算手段により求められた近端の背景ノイズパワーの平均値と、エコーパワー検出手段により求められたエコーパワーの平均値とに基づいて、加算平均回数を求める加算回数制御工程とを有し、第2の適応フィルタ工程では、(2−1)加算データ選択手段部が、音声検出手段により音声検出なしから音声検出ありに遷移した時点から、送信出力信号及び受信入力信号の所定期間長の各サンプリングデータを、送信入力ベクトル及び受信入力ベクトルとして逐次更新しながら保持する加算データ選択工程と、(2−2)加算データ加工部が、加算回数制御手段からの加算平均回数に従って、送信入力ベクトル及び受信入力ベクトルのそれぞれについて、所定設定回数を上限として同期加算平均する加算データ加工工程と、(2−3)適応フィルタ部が、加算データ加工部により同期加算平均された受信入力ベクトルと逐次更新するフィルタ係数とを用いて擬似エコー信号を作成し、同期加算平均された送信入力ベクトルから擬似エコー信号を除去するものであって、収束したフィルタ係数を第1の適応フィルタ手段に与える適応フィルタ工程と、(2−4)更新停止指示部が、ダブルトーク状態の間、適応フィルタにおけるフィルタ係数の更新処理を停止させる更新停止指示工程とを有することを特徴とする。
第3の本発明のプログラムは、コンピュータを、(1)受信入力信号及び送信出力信号に基づいて通話状態を監視する通話状態監視手段、(2)遠端から音声信号が入力される場合に動作する第1の適応フィルタ手段、(3)遠端から音声信号が入力されない場合に動作する第2の適応フィルタ手段、(4)通話状態監視手段による遠端からの音声検出結果に応じて、第1の適応フィルタ手段と第2の適応フィルタ手段との動作を切替制御する動作制御手段、(5)通話状態監視手段により無通話状態と判断されたときに、送信出力信号に基づいて近端の背景ノイズのパワーを求める背景ノイズパワー計算手段、(6)通話状態監視手段によりシングルトーク状態と判断されたときに、送信出力信号に基づいてエコーパワーを検出するエコーパワー検出手段、(7)背景ノイズパワー計算手段により求められた近端の背景ノイズパワーの平均値と、エコーパワー検出手段により求められたエコーパワーの平均値とに基づいて、加算平均回数を求める加算回数制御手段として機能させるものであって、第2の適応フィルタ手段が、(2−1)音声検出手段により音声検出なしから音声検出ありに遷移した時点から、送信出力信号及び受信入力信号の所定期間長の各サンプリングデータを、送信入力ベクトル及び受信入力ベクトルとして逐次更新しながら保持する加算データ選択部、(2−2)加算回数制御手段からの加算平均回数に従って、送信入力ベクトル及び受信入力ベクトルのそれぞれについて、所定設定回数を上限として同期加算平均する加算データ加工部、(2−3)加算データ加工部により同期加算平均された受信入力ベクトルと逐次更新するフィルタ係数とを用いて擬似エコー信号を作成し、同期加算平均された送信入力ベクトルから擬似エコー信号を除去するものであって、収束したフィルタ係数を第1の適応フィルタ手段に与える適応フィルタ部、(2−4)ダブルトーク状態の間、適応フィルタにおけるフィルタ係数の更新処理を停止させる更新停止指示部として機能させるものである。
本発明によれば、利用者の背景ノイズ環境が劣悪な場合でも、エコーキャンセラの効果が発揮するまでの時間を短くすることができ、エコー除去性能を向上させることができる。
(A)第1の実施形態
以下では、本発明のエコーキャンセラ、エコーキャンセル方法及びプログラムの第1の実施形態を図面を参照しながら詳細に説明する。
第1の実施形態では、本発明を利用して拡声電話機に用いられるエコーキャンセラを実現する場合の適用を例示して説明する。
(A−1)第1の実施形態の構成
図1は、第1の実施形態のエコーキャンセラ100の構成を示す構成図である。図1において、右側が図示しない近端話者側であり、左側が図示しない遠端話者側である。
図1において、第1の実施形態のエコーキャンセラ100は、受信側入力端子Rin1、受信側出力端子Rout2、送信側入力端子Sin5、送信側出力端子Sout7、通常適応フィルタ(ADF_N)6、潜行型適応フィルタ(ADF_S)17、音声検出部8、タイミング制御部9、適応モード制御部10、ダブルトーク検出部(DTD)18、背景ノイズ計算部19、加算器Add1、加算回数制御部1A、エコーレベル検出部1Bを少なくとも有して構成される。
また、通常適応フィルタ(ADF_N)6は、適応フィルタ係数部14a、積和演算部14b及び保持レジスタ14cを有する通常擬似エコー作成部14と、通常適用フィルタ係数適応部(通常_ADP)15と、スイッチSW1〜SW3とを有して構成される。
さらに、潜行型適用フィルタ(ADF_S)17は、加算データ選択部11r、加算データ加工部12r、加算データ保存部13r、無音区間適応促進部(STEALS_ADF)16、加算器(Add)2、加算データ保存部13s、加算データ加工部12s、加算データ選択部11sを有して構成される。
受信側入力端子Rin1は、図示しない遠端話者側から入力された音声信号x(n)を、ダブルトーク検出部(DTD)18、音声検出部8、潜行型適応フィルタ(ADF_S)17、通常適応フィルタ6及び受信側出力端子Rout2に与えるものである。なお、音声信号x(n)は、サンプリングされた第nサンプルデータであること示す。
受信側出力端子Rout2は、受信側入力端子Rin1から音声信号x(n)を受け取ると、その音声信号x(n)をスピーカ3に与えるものである。なお、図示しないが、受信側出力端子Rout2から出力された音声信号x(n)は、図示しないD/A(ディジタル−アナログ)変換器にアナログ変換され、そのアナログ信号がスピーカ3に与えられる。これにより、スピーカ3から音声が放出される。
送信側入力端子Sin5は、マイクロホン4から入力された近端話者の音声信号を、加算器Add1、潜行型適用フィルタ17及びエコーレベル検出部1Bに与えるものである。
なお、スピーカ3から放出された音声信号は、マイクロホン4にも漏れ込み、図示しないA/D(アナログ−ディジタル)変換器により変換されたディジタル信号として送信側入力端子Sin5に入り込み、加算器Add1に与えられる。
加算器Add1は、送信側入力端子Sin5から入力された入力信号とSW2からの出力信号とを加算相殺し、入力信号から擬似エコー成分を除去した信号を、通常適応フィルタ係数適応部(通常_ADP)15、背景ノイズ計算部19、ダブルトーク検出部(DTD)18及び送信側出力端子Sout7に与えるものである。
通常適応フィルタ係数適応部15は、加算器Add1からの出力信号を取り込み、この出力信号に基づいて適応フィルタの係数ベクトルを計算し、SW3及びSW1を介して、係数ベクトルを適応フィルタ係数部14aに与えるものである。
SW3は、通常_ADP15とSW1との間に位置するスイッチであり、初期状態は閉じているものである。また、SW3は、ダブルトーク検出部(DTD)18から信号を受け取り、シングルトークを示す信号(信号ST)が与えられる場合にはスイッチを閉じ、その他の場合(すなわち、ダブルトーク状態、無音状態、ニアトーク状態)は開放するものである。
SW1は、SW3と適応フィルタ係数部14aとの間に位置するスイッチであり、初期状態はSW3に接続する端子bに接続されているものである。また、SW1は、適応モード制御部10からの接続切替信号に応じて接続切替を行うものである。
適応フィルタ係数部14aは、SW1を介して、通常_ADP15からの係数ベクトルを受け取り、この係数ベクトルを擬似エコーを作成するフィルタの係数とするものである。
積和演算部14bは、保持レジスタ14cに保持される係数と適応フィルタ係数部14aの係数とを積和演算して、その積和演算結果を擬似エコーy´(n)としてSW2に与えるものである。
保持レジスタ14cは、入力された音声信号x(n)を保持するレジスタである。
SW2は、積和演算部14bと加算器Add1との間に位置するスイッチであり、初期状態は加算器Add1に接続する端子bに接続されているものである。また、SW2は、適応モード制御部10からの図示しない接続切替信号に応じて接続切替を行うものである。
音声検出部8は、受信側入力端子Rin1からの音声信号x(n)に基づいて、話者音声の有無を検出し、その音声結果v_flgを、適応モード制御部10及びタイミング制御部9に与えるものである。音声検出部6は、例えば、音声ありの場合にはv_flg=1とし、音声なし場合にはv_flg=0とする。
なお、音声検出部8の音声検出方法は、既知の方法を広く適用することができ、たとえば、信号のパワー長期平均とパワー短期平均を計算して両者の計算結果の乖離が大きいことで音声ありを検出する方法等を広く適用することができる。
また、音声検出部8は、後述するダブルトーク検出部18と別の機能部として説明するが、ダブルトーク検出部18内部での機能部としてもよい。
タイミング制御部9は、音声検出部8から音声結果v_flgを受け取り、その音声結果に応じた、後述するデータ選択のタイミングを、適応モード制御部10、加算データ選択部11r及び加算データ選択部11sに与えるものである。
適応モード制御部10は、音声検出部8からの音声結果v_flgに応じたモード選択信号steals_adp_goを、潜行型適応フィルタ17のSTEALS_ADF16及び通常適応フィルタ6のSW1に与えるものである。
また、適応モード制御部10は、v_flg=1のときには、潜行型適応フィルタ17のSTEALS_ADF16に動作を停止するための信号steals_adp_go=0を出力する。
さらに、適応モード制御部10は、v_flg=1のときには、SW1に対して端子bに接続切替させる信号を出力すると共に、SW2に対して端子bに接続切替させる信号を出力する。また、適応モード制御部10は、v_flg=0のときには、SW1に対して端子aに接続切替させる信号を出力すると共に、SW2に対して端子aに接続切替させる信号を出力する。
ダブルトーク検出部(DTD)18は、受信側入力端子Rin1からの信号と、加算器Add1からの出力信号とに基づいて通話状態を検出し、その通話状態を、STEALS_ADF16、SW3、背景ノイズ計算部19及びエコーレベル検出部1Bに与えるものである。
ここで、ダブルトーク検出部18による通話状態の検出方法としては、種々の方法を広く適用することができ、例えば、特許文献3や特許文献4に開示される通話状態検出方法を適用することができる。
また、ダブルトーク検出部18は、シングルトーク状態(遠端話者のみが話している状態)、ダブルトーク状態(遠端話者及び近端話者とが同時に離している状態)、無通話状態(両者とも話していない状態)、ニアトーク状態(近端話者のみが話している状態)の4つの状態を検出する。
しかし、ダブルトーク検出部18は、少なくとも、無通話状態、ダブルトーク状態、シングルトーク状態の3つの状態が検出できれば種々の方法を適用することができる。ニアトーク状態検出の重要度が小さいのは、ニアトーク状態は、小パワーの受信信号x(n)と大パワーの信号Sin(n)の一種のダブルトーク状態と区分けすることができるから、上記の3つの状態が区別できれば、エコーキャンセラ100にとってはニアトーク状態をダブルトーク状態として取り扱っても不都合がないからである。
ダブルトーク検出部18が出力する信号としては、シングルトーク状態のとき信号STと示し、無通話状態のとき信号IDLとし、ダブルトーク状態のとき信号DT(あるいは信号NET)とし、ニアトーク状態のとき信号NET(あるいは信号DT)とする。
背景ノイズ計算部19は、ダブルトーク検出部18から信号IDLを受けると(すなわち無通話状態のとき)、加算器Add1からの出力信号(すなわち近端側の背景ノイズ)の平均パワーN_POWを計算し、この背景ノイズの平均パワー平均値N_POWを加算回数制御部1Aに与えるものである。ここで、背景ノイズ計算部19が計算に係る平均の長さは、音声検出部8における短期平均(例えば30ms)に合わせることが望ましいが、これに限定されるものではない。
エコーレベル検出部1Bは、ダブルトーク検出部18から信号STを受けると(すなわちシングルトーク状態のとき)、送信側入力端子Sin5に入力される信号の平均パワーE_POWを計算し、このエコーパワー平均値E_POWを加算回数制御部1Aに与えるものである。ここで、エコーレベル検出部1Bが計算に係る平均の長さは、音声検出部8における短期平均(例えば30ms)に合わせることが望ましいが、これに限定されるものではない。
これは、ダブルトーク検出部18が信号STを出力するときには、遠端から信号があり、スピーカ3から放出されている状態である。したがって、エコーが発生しており、かつ、近端での話者信号がないので、エコーパワーの計算に好適だからである。
加算回数制御部1Aは、背景ノイズ計算部19からの背景ノイズのパワー平均値N_POWと、エコーレベル検出部1Bからのエコーパワーの平均値E_POWとを受け取り、加算回数(平均回数)AVEL_PILE_CNTを、加算データ加工部12sに与えるものである。なお、加算回数制御部1Aの詳細な機能については動作の項で詳細に説明する。
潜行型適応フィルタ(ADF_S)17は、音声検出部8の検出結果が音声あり(v_flg=1)のとき、音声データを収集、加工して準備だけを進め、音声検出部8の検出結果が音声なし(v_flg=0)のとき、エコーの同定(すなわち、エコー経路の同定)を行うものである。
加算データ選択部11r及び11sは、音声検出部8により音声検出なしから音声検出ありに遷移した時点から、受信入力信号及び送信出力信号の所定期間長の各サンプリングデータを、送信入力ベクトル及び受信入力ベクトルとして逐次更新しながら保持するものである。
加算データ加工部12r及び1sは、加算回数制御部1Aからの加算平均回数に従って、受信入力ベクトル及び送信入力ベクトルのそれぞれについて、所定設定回数を上限として同期加算平均するものである。
加算データ保存部13r及び13sは、加算データ加工部12r及び12sからの受信入力ベクトル及び送信入力ベクトルを保存するものである。
STEALS_ADF16は、加算データ加工部12r及び12sにより同期加算平均された受信入力ベクトルと逐次更新するフィルタ係数とを用いて擬似エコー信号を作成し、同期加算平均された送信入力ベクトルから擬似エコー信号を除去するものであって、収束したフィルタ係数を通常適応フィルタ6に与えるものである。
(A−2)第1の実施形態の動作
次に、第1の実施形態のエコーキャンセラ100における処理について図面を参照しながら説明する。
図1において、遠端話者側からの音声信号x(n)が受信側入力端子Rin1に入力されると、音声信号x(n)は、ダブルトーク検出部18、音声検出部8、加算データ選択部11r、保持レジスタ14c及び受信側出力端子Rout2に与えられる。
受信側出力端子Rout2から出力された信号は、アナログ変換されてスピーカ3から放出される。
一方、近端話者の音声はマイクロホン4に捕捉されて、ディジタル変換された信号が送信側入力端子Sin5に入力し、加算器Add1に与えられる。このとき、スピーカから放出された音声信号は、マイクロホン4に漏れこみ、ディジタル信号として送信側入力端子Sin5に入力する。
加算器Add1では、送信側入力端子Sin5からの信号と、SW2を介して入力された擬似エコーy´(n)とを加算相殺して、擬似エコー成分を除去した信号が出力される。また、この加算器Add1からの出力信号は、通常_ADP15、背景ノイズ計算部19、ダブルトーク検出部18及び送信側出力端子Sout7に与えられる。
(A−2−1)通常適応フィルタ(通常ADF_N)6における動作
以下では、まず、通常適応フィルタ6における動作を説明する。通常適応フィルタ6において、SW1の初期状態はb端子に接続し、SW2の初期状態はb端子に接続し、SW3の初期状態は閉じている。
受信側入力端子Rin1に入力された信号が音声検出部8に入力すると、音声検出部8において、その入力信号に基づいて音声の有無が検出され、その音声結果v_flgが適応モード制御部10及びタイミング制御部9に与えられる。
ここで、音声検出部8における音声検出処理について説明する。音声検出方法は、音声の有無を検出することができれば、種々の方法を適用することができるが、例えば、入力信号のパワー長期平均を5秒の平均値LPO_Lとし、入力信号のパワー短期平均を30m秒の平均値LPO_Sとし、検出マージンをVD_δ(例えば、6dB)として、下記式を計算する。
LPO_S≧LPO_L+VD_δ …(1)
そして、上記式(1)が成立した場合、音声検出部8は「音声あり」と判断し、v_flg=1を出力し、上記式(1)が成立しない場合、音声検出部8は「音声なし」と判断し、v_flg=0を出力する。
適応モード制御部10において、音声検出部8からの音声結果v_flgが与えられると、適応モード制御部10は、v_flg=1の場合に、STEALS_ADF16に対して、動作を停止させる信号steals_adp_go=0を出力する。また、適応モード制御部10は、v_flg=1の場合、SW1を端子bに接続させるように指示すると共に、SW2を端子bに接続させるように指示する。
また、適応モード制御部10は、v_flg=0の場合、SW1を端子aに接続させるように指示すると共に、SW2を端子aに接続させるように指示する。
ダブルトーク検出部18は、シングルトーク状態のとき、SW3を閉じるように指示し、それ以外の状態のとき、SW3を開放するように指示する。なお、シングルトーク状態のとき、音声検出部8により「音声あり」と判断されており、v_flg=1である。
従って、音声検出部8の出力がv_flg=1であっても、ダブルトーク状態のときにはSW3が開放しているので、通常_ADP15からの出力はSW1に入力されず、結果として通常擬似エコー作成部14の係数更新は発生されない。
一方、音声検出部8からの音声結果v_flgは、タイミング制御部9にも与えられており、タイミング制御部9は、適応モード制御部10、加算データ選択部11s及び11rに対してデータ選択タイミングを出力するが、v_flg=1の場合、タイミング制御部9は、適応モード制御部10に何も出力しない。
ここでは、通常ADF_N6の動作を説明しているので、v_flg=1の場合、ADF_N6の動作系(すなわち、ADF_N6、音声出力部8、適応モード制御部10、受信側入力端子Rin1、受信側出力端子Rout2、送信側入力端子Sin5、送信側出力端子Sout7、スピーカ3及びマイクロホン4からなる構成系)は、ADF_S17の影響は受けない。
SW3は、ダブルトーク検出部18から信号STを受けたときだけ閉じ、その他のときは開放する。
背景ノイズ計算部19は、ダブルトーク検出部18から信号IDLを受けたときに、信号(近端側の背景ノイズ)の平均パワー値N_POWを計算し、加算平均回数制御部1Aに出力する。平均の長さは音声検出部8における短期平均(例えば30ms)に合わせることが望ましいが、これに限定されるものではない。
一方、エコーレベル検出部1Bは、ダブルトーク検出部18から信号STを受けたときに、送信側入力端子Sin5に入力した信号(エコー)のエコーパワー平均値E_POWを計算し、加算平均回数制御部1Aに出力する。信号STを受けたときは、遠端から信号があり、スピーカ3から放出されている状態であるから、エコーが発生している期間であるからである。平均の長さは音声検出部8における短期平均(例えば30ms)に合わせることが望ましいが、これに限定されるものではない。
加算平均回数制御部1Aは、エコーパワー平均値E_POWと背景ノイズパワー平均値N_POWを受けると、加算回数(平均回数)AVEL_PILE_CNTを加算データ加工部12s及び12rに出力する。なお、加算データ加工部12s及び12rの動作については後述する。
v_flg=1の場合、適応モード制御部10からの接続切替信号がSW1、2に与えられ、SW1及びSW2が端子bに切り替えられ、またダブルトーク検出部18からの出力により、SW3が開閉されると、ADF_N6は、次のように動作する。
まず、受信側入力端子Rin1から出力された受信信号x(n)は、保持レジスタ14cに格納される。
ここで、受信信号x(n)のデータベクトルは、次のように取り扱われる。
X(n)=[x(n)、x(n−1)、…、x(n−N+1)] …(2)
nはサンプル順、Nは適応フィルタのタップ数(第1の実施形態では、例えばN=1024とする)、tは行列の転置を示す。
つまり、上記式(2)は、現在の時刻nを開始時点とし、過去のNサンプルまでを保持したデータの集まりが、下記式(2)のベクトルを構成していることを表している。
一方、適応フィルタ係数部14aには、フィルタ係数が格納されており、N個の係数値がある。係数の値は、通常_ADP15により時々刻々と更新される値である。適用フィルタ係数部14aのN個の係数も、1つも係数ベクトルとして、下記式(3)のように取り扱われる。
H(n)=[h(0)、h(1)、…、h(N−1)] …(3)
Nは適応フィルタのタップ数(N=1024とする)。
積和演算部14bは、適応フィルタ係数部14aの係数ベクトルと保持レジスタ14cのデータベクトルを受け、下記式(4)のようにベクトルの積y´(n)を計算し、このy´(n)がSW2似出力される。このy´(n)は擬似エコーのサンプルデータとなる。y´(n)は1つの値を持つ、スカラー値データである。
y´(n)=H(n)X(n) …(4)
このとき、SW2は、適応モード制御部10の出力によって、端子bに接続されているので、擬似エコーy´(n)は加算器Add1に出力される。
加算器Add1では、上述のようにスピーカ3からマイクロホン4に漏れこんだ打消し対象信号(すなわちエコー信号y(n))が入力されており、Add1は、式(5)のように信号を加算相殺し、残差信号e(n)を計算して、送信側出力端子Sout7、ダブルトーク検出部18、背景ノイズ計算部19に出力する。
e(n)=y(n)−y´(n) (5)
最終的に、送信側出力端子Sout7から出力された信号は、遠端への音声信号として出力される。
一方、加算器Add1の出力である残差信号e(n)は、通常_ADP15に出力され、通常_ADP15により適応フィルタのフィルタ係数値の更新が行なわれる。通常_ADP15でのフィルタ係数の更新処理としては、例えば、式(6)に示すような公知のNLMSアルゴリズム(学習同定法も同じ)を適用することができる。
Figure 0005061976
式(6)は、信号e(n)、x(n)から、次回の擬似エコー作成に用いるための適応フィルタ係数部14aの係数ベクトルが作成されることを示している。
通常_ADP15により作成された係数ベクトルは、SW3及びSW1を経由して、適応フィルタ係数部14aに出力され、次回の擬似エコーの作成に備える。
式(6)の係数更新が進行し、式(5)の残差信号e(n)は徐々に小さくなり、やがて十分にe(n)が小さくなると、式(6)でフィルタ係数の変化が起きなくなる。この状態が、「適応フィルタが収束した状態」である。
以上のように、音声検出部8の検出結果が「音声あり」であり、ダブルトーク検出部18の検出結果が「シングルトーク状態」であるとき、エコーキャンセラ100は、ADF_N6が主体となって、エコーの同定と打ち消しを行う。
(A−2−2)潜行型適応フィルタ(ADF_S)17における動作
ADF_S17は、音声検出部8の音声結果が「音声あり」のときに、音声データを収集し、加工して準備だけを行う。また、音声結果が「音声なし」のときに、ADF_S17は、エコーの同定(エコー経路の同定としても意味は同じ)を行うものである。
このADF_S17は、見かけ上、音声がない期間に、エコーキャンセラ100の係数更新を進行させる適応フィルタといえる。また、音声検出部8の検出結果が「音声あり」のとき、潜行型適応フィルタ17は、音声データの収集、加工をするだけであるから、通常適用フィルタ6の処理には影響を与えない。
まず、遠端から信号x(n)が入力されると、音声検出部8により「音声あり」の信号v_flg=1がタイミング制御部9に出力される。
そうすると、タイミング制御部9は、受信側の加算データ選択部11r及び送信側の加算データ選択部11sに対して、音声データの取り込みを指示する信号KEEPを出力する。また、タイミング制御部9は、いったんv_flg=1が入力されると、その時点からデータサンプル数をカウントして、あらかじめ定められたサンプル数LENGTHに達するまでは、以後の音声信号の有無にかかわらず、信号KEEPを出力する。
加算データ選択部11r及び11sでは、KEEPが与えられている間、データを取り込みつつ取り込んだデータを一旦保存する。
これにより、いったんv_flg=1が入力されると、データサンプルLENGTH個が保存され、そのデータサンプルの中には音声データサンプルと無音サンプルが混じっていることになる。
なお、第1の実施形態では、第1の実施形態では、LENGT=38400とするが、これに限定されるものではない。また、加算データ選択部11r及び11sの動作に関しては、ダブルトーク検出部18の状態検出の結果は関係ない。
図2は、加算データ選択部11r及び11sの動作を説明するタイミング図である。
図2(A)は、音声の有無の区間を示しており、黒い部分が音声ありの区間であり、このときv_flg=1である。
図2(B)は、いったんv_flg=1を受けたタイミング制御部9がLENGTHの期間だけ音声サンプルを切り出す時間の切り出し窓を示しており、一旦切り出しを開始すると、切り出し区間中のv_flgの値には関係なく音声を切り出す様子を示してものである。
図2(C)は、タイミング制御部9の制御によって、音声データが切り出しを受けた結果、作成される格納データのベクトルの様子を示すものであり、図2(C)では一例としてX0〜X5の最大6個のベクトルが作成される様子が示されている。
Figure 0005061976
なお、図2では、説明を簡単にするために、音声がある部分は黒い部分とし、振幅も全て固定であるとする。また、図2では、最大6個のベクトルを作成しているが、ベクトル個数は特に限定されるものではない。後述するように、いつでも必ず6個のベクトルの全部を使うわけではなく、エコーと背景ノイズの状態によって個数は変化するが詳細は後述する。
一方、送信側加算データ選択部11sでも、データの切り出しを行うが、送信側の加算データ選択部11sのデータ切り出しも、タイミング制御部9のデータ切り出し信号KEEPがあるときだけ、送信側入力端子Sin5からの信号y(n)を切り出し保存する。
つまり、音声データ切り出しのタイミングは、あくまでも受信側入力端子Rin1側の音声検出部8の音声結果によっている。
前述したように、y(n)はエコー信号である。y(n)は、エコー経路を経ているから、その分の遅延dが時間遅れとして含まれている。
図2(D)は、エコー信号を示しており、図2(A)の信号がエコーとなってy(n)となり、送信側の格納ベクトルが作成される様子を示している。データ切り出しタイミングは、タイミング制御部9からの信号KEEPによるので、図2(B)の切り出しタイミングと同一であるから、図2(D)の信号を図2(B)と同じタイミングの切り出し窓(図2(E)に示す切り出し窓が相当する。)を用いて、エコー経路を経由してマイクロホン4に集音された信号を切り出すことに相当する。結果として格納されたベクトルは、式(8)のようである。
Figure 0005061976
加算データ選択部11r及び11sは、上記のように動作した後もデータの選択と蓄積を継続するが、予め定めた数のベクトルを蓄積すると、今度は古い順にデータを上書きしていく。
例えば、第1の実施形態では、予め6本のベクトルを蓄積するものとする。この場合、例えば、X5、Y5が蓄積し終えると、今度は図示しない最初のベクトルデータ格納エリア(メモリ)に戻って、下記(8−1)のデータを(8−2)のデータに上書きしながら、データベクトルを蓄積していく。
Figure 0005061976
加算データ選択部11r及び11sのそれぞれによって作成された入力ベクトルはそれぞれ、加算データ加工部12r及び12sに出力される。また、加算データ選択部11r及び11sは、1本のデータベクトルができあがるたびに、加算タイミング信号keep_flug_on_to_off=1を、加算データ加工部12r及び12sに出力し、それ以外のときは何も出力しない。もしくは、何も出力しない代わりに1以外の値(例えばkeep_flug_on_to_off=0)を出力するようにしてもよい。
加算データ加工部12r及び12sでは、次のように動作する。すなわち、予め設計者がハードウェアのメモリ資源の限界から定めた最大本数(第1の実施形態では「6」とする)の限界内で、加算平均回数制御部1Aからの出力AVEL_PILE_CNTベクトルを、加算平均する。
ここで、AVEL_PILE_CNTは、必ず「AVEL_PILE_CNT≦FULL_PILE」である。
実際には、加算データ選択部11rと加算データ選択部11sとから出力される、それぞれの加算タイミング信号keep_flug_on_to_offは同じタイミングであるので、例えば、いずれかの加算データ選択部(例えば受信側の加算データ選択部11r)からの加算タイミング信号keep_flug_on_to_offが、加算データ加工部12r及び12sに出力されるようにしてもよい。
そして、エコーキャンセラ100が初期状態から動作し始め、ベクトルの蓄積が予め定めた本数FULL_PILEに達していないときには、加算データ加工部12r及び12sは、その時点までに蓄積されている本数pile_cntからAVEL_PILE_CNTの小さいほうで加算平均をとる。
第1の実施形態では、FULL_PILE=6で設定したので、ベクトルが6本たまったあとは、最大6本の加算平均が可能であるが、エコーキャンセラ100の初期動作時ではベクトルは6本まで蓄積されていない。このときは、蓄積済み本数文のうち、AVEL_PILE_CNT、又は蓄積済み本数のどちらか小さいほうで換算平均をとるようにする。
加算データ加工部12r及び12sの動作は、入力されるデータが受信側のデータであるか又は送信側のデータであるかのみの違いであり、計算処理そのものは同じであるので、ここでは加算データ加工部12及び12sの処理について説明する。
まず、最初に受信側加算データ加工部12s及び12rは、1本〜AVEL_PILE_CNT(又は蓄積済みpile_cnt)本のベクトルの加算平均を式(9)、式(10)のように求める。なお、加算平均する最大本数はFULL_PILEの本数とする。
ここで、添え字が0からはじまると平均の様子が分かりにくくなるので、式(9)、式(10)にいたるベクトルの蓄積に伴って、1から始まり、順次カウントアップするpile_cntの値を使って説明する。
Figure 0005061976
まず、上記(8−3)に示す最初のデータが蓄積されると、pile_cntは「1」セットされ、順次、ベクトル分のデータが蓄積されていき、pile_cntは「1」ずつカウントアップされていく。pile_cnt=6に達すると、pile_cntはそれ以上増加しない。
受信側加算データ加工部12rは、受信側の加算データ選択部11rからの加算タイミング信号keep_flug_on_to_off=1が入力されると、それまでに蓄積したデータを開始点として一致させて加算を開始する。
これにより、受信側加算データ加工部12rは、潜行型適応フィルタADF_S17の入力ベクトルとして、式(8−4)のように作成される。
steals_rin=[rin_keep[0]、…、rin_keep[LENGTH-1]] …(8−4)
同様に、送信側加算データ加工部12sでも、式(8−5)のよう作成される。
steals_sin=[sin_keep[0]、…、sin_keep[LENGTH-1]] …(8−5)
Figure 0005061976
図3は、加算平均の様子を示す図である。図3のように、データの頭がそろったデータが、下向き矢印に沿って計算される加算平均である。作成手順は、送信側の加算データ加工部12sにおいてもまったく同じである。
ここで、加算平均の様子を説明するために、加算平均回数制御部1Aの動作を説明する。
加算平均回数制御部1Aは、上述の背景ノイズ計算部19による背景ノイズパワー平均値N_POWとエコーレベル検出部1Bによるエコーパワー平均値E_POWの比E/Nに応じて、加算平均回数AVL_PILE_CNTを決定する。
加算平均回数AVL_PILE_CNTは、1〜FILL_PILEの間であり、結果としては式(8−3)のいずれかのpile_cntの値と一致する。
加算平均回数AVL_PILE_CNTは、表1のように設定者によって、予めE/Nに応じて適当な値が定められている。第1の実施形態では、通話の開始時に一旦加算平均回数AVL_PILE_CNTが計算された後は、加算平均回数AVL_PILE_CNTは呼が切断されるまで固定値とするが、これに限定されるものではなく、通話中のE/Nに応じて最大加算回数FULL_PILEの範囲内で変化するものであってもよい。
Figure 0005061976
図4は、表1のように、加算平均回数が定められた場合、E/N=3dBの条件で受信入力ベクトルの加算平均ベクトルが作成される様子を示した図である。
図4(A)は、音声信号x(n)の様子を模式的に示しており、図2と同様に、黒い部分が音声ありの部分である。
図4(B)に示すように、信号x(n)は、時間窓長による一定の切り出し時間だけサンプリングされて集められて、図4(C)に示すように、切り出されたベクトルとして取り扱われるようになる。
図4(A)〜図4(C)の1ブロック目のようにx(n)が複数個サンプルされ蓄積されて、最初のベクトルは式(11)のようになる。
Steals_rin=X0 (11)
この時点では、加算データ加工部12sにはまだ入力ベクトル1本だけである。従って、初めて作成される加算平均ベクトルは図4(C)の最初のようになり、平均をとっても何も変わらない。
次に、ベクトルが蓄積されて、ベクトルが2本になると、以後は表1を参照し、式(12)のような加算平均ベクトルとなる。
Steals_rin=(X0+X1)/AVEL_PILE_CNT(又はpile_cnt) …(12)
図4では、AVL_PILE_CNT=6の例を示しており、時刻t5に達するまでは、まだベクトルがAVL_PILE_CNT分蓄積できていないので、除算はpile_cntで行われる。
例えば、時刻t1では、第2番目の入力ベクトルまで揃うので加算平均処理は2本のベクトルで行われ、ベクトルデータが半分ずつ反映されたデータベクトルになり、図4(C)の左から2番目のブロックのようになる。以後、ベクトル1本入手できた時点で新たな加算平均ベクトルを計算できるようになる。
図4のt0〜t5のそれぞれの時刻になった時点で新たな加算平均ベクトルを加算して計算できるようになる。
第1の実施形態では、ベクトルの加算平均による処理量の増加を避けるため、時刻tに対して加算平均処理のための時間のマージンδAV(16kHzサンプリング動作のとき、160サンプル。時間にして10ms)をとり、加算平均ベクトルを実際にADF_S17で入力として使うまでにマージンδAVの遅延を設けたが、説明の簡単のため以後の説明ではδAVについては言及、考慮しないこととして説明する。
時刻t5以後は、ベクトル1本入手できた時点で、直近の過去の複数本(第1の実施形態では6本)のベクトルで新たな加算平均ベクトルを計算する。以後、同様に、予め設定した最大蓄積ベクトル本数FULL_PILEまでの間に設定されたAVL_PILE_CNT個のベクトルを加算平均するようにする。エコーキャンセラ100の初期動作時は、AVL_PILE_CNT又はpile_cntの小さいほうとなる。
送信側入力ベクトルも入力をy(n)にして同様の手順で作成される。ただし、ベクトルを作成するタイミングはあくまでも受信信号のサンプル切り出し窓をタイミングにして、y(n)をサンプルする点が受信側のベクトル作成と異なる。
受信側加算データ加工部12rで作成された受信信号入力ベクトルは、受信側加算データ保存部13rに出力されて保存され、送信側加算データ加工部12sで作成された送信信号入力ベクトルは、送信側加算データ保存部13sに出力されて保存される。
受信側加算データ加工部12rは、ベクトルの加算平均処理が終了すると、適応モード制御部10に対して、潜行型適応フィルタ17の係数更新準備ができたことを知らせるフラグsteals_adapt_goを1にセットして出力する。
適応モード制御部10は、steals_adapt_go=1が入力されると、音声検出部8の出力v_flgの出力と加算データ加工部12sの出力steals_adapt_goに応じて適応モードの制御を行う。
表2は、適応モード制御部10における適応モードの制御の様子を示すものである。
Figure 0005061976
表2のように、適応モード制御部10は、音声検出部8の出力v_flgと受信側加算データ加工部12rの出力steals_adapt_goの組み合わせに応じて、潜行型適応フィルタADF_S17又は通常適応フィルタADF_N6のいずれかの適応動作を指示する。なお、ADF_S17、ADF_N6の両方が同時に適応動作することはない。
表2のように、音声がある期間ではADF_N6が適応動作し、ADF_S17は動作しない。
ADF_S17が動作する期間は、音声がなく、かつ、steals_adapt_go=1が受信側加算データ加工部12rから適応モード制御部10に与えられ、さらに後述のようにダブルトーク検出部18からの状態検出結果が蓄積中を通じてSTのタイミングだけである。
上述したように、steals_adapt_goは、加算平均ベクトルの計算が終了した時点で1にセットされて適応モード制御部10に出力される。
図5は、適応モード制御部10に出力されるsteals_adapt_goの様子を説明する図である。図5(A)〜図5(C)は、図4(A)〜図4(C)と同じであるので説明を省略する。
図5(D)は、音声検出部8の音声結果v_flgであって、音声検出するとv_flg=1、音声検出しないとv_flg=0である。
図5(E)は、steals_adapt_goを示しており、加算平均ベクトルの計算が終了して入力データの準備が完成すると、steals_adapt_go=1、完成していないとsteals_adapt_go=0である。
図5(F)は、ADF_N6が適応フィルタとして動作するときはON、そうでないときはOFFとなる信号であり、適応フィルタ制御部10からADF_N6に出力される適応動作制御信号である。
図5(G)は、後述する通話状態検出のフラグNOT_SDTである。このNOT_SDTについて後述する。
図5(H)は、ADF_S17が適応フィルタとして動作するときはON、そうでないときはOFFとなる信号であり、適応モード制御部10からADF_S17に出力される適応動作制御信号である。このON/OFFは、上述したように、v_flg=0、かつ、steals_adapt_go=1のときで、ダブルトーク検出部18の状態検出結果がダブルトーク(DT)でなかったとき、ADF_S17=ONになる。
ここで、steals_adapt_go=1であっても、v_flg=1のときには、ADF_S17=OFFとなることに注意する。これは、ADF_S17が選択的に受信入力信号の無音期間で動作することを意味している。
送信側入力ベクトルも同様に作成されるが、作成のタイミングは受信側の音声信号x(n)による音声検出部8のv_flgである。送信側及び受信側加算データ保存部13r及び13sに保存されたデータを用いてADF_S17を適応更新する。
図6は、ADF_S17内部のSTEALS_ADF16の内部構成を示す構成図である。図6に示すように、STEALS_ADF16は、適応フィルタ係数部16a、積和演算部16b、保持レジスタ16c、S_ADP16d、更新停止指示部16eを少なくとも有するものである。STEALS_ADF16は、概ね通常擬似エコー作成部14の内部構成と同様の構成である。
ADF_S用保持レジスタ16cには、受信側加算データ保存部13rからの入力ベクトルの要素データが1個ずつ入力される。ADF_S用保持レジスタ16cの初期値は0である。
第1の実施形態ではADF_S用保持レジスタ16cは受信側加算データ加工部12rから出力され、適応モード制御部10を経由した信号steals_adapt_goが0→1に遷移するときに一度0にリセットされる。
ADF_S用適用フィルタ係数部16aの係数の個数はADF_N6の適応フィルタ係数部14aの係数の個数と同じであり、ここでは前述のN個として説明する。また、ADF_S用適応フィルタ係数部16aの係数ベクトルを下記のベクトルで示す。
W(m)=[w(0)、w(1)、…、w(N−1)] …(13)
mはサンプル順であり、tは転置行列を示す。
式(13)のベクトルは、エコーキャンセラ100の動作開始時に0にリセットされ、その後はリセットされず係数の更新を重ねる。
一方で、[rin_keep[0]、…、rin_keep[LENGTH-1]]から1個ずつADF_S用保持レジスタ16cに入力された要素は順番に格納され、別のベクトルになる。
つまり、1サンプルタイミングずつrin_keep[0]から順番にrin_keep[LENGTH-1]に向かって、保持レジスタ16cに格納されてできあがる新たなベクトルになる。これをSx(m)と書き換えることにすると、下記式のようになる。
SX(m)=[Sx(m)、Sx(m−1)、…、Sx(m−N+1)] …(14)
例えば、m=0であると、入力ベクトルの要素rin_keep[0]が1個だけADF_S用保持レジスタ16cに入力されるからSX(m)は、次のようになる。
SX(0)=[rin_keep[0]、0、…、0] …(15)
ADF_S用積和演算部16bは、式(11)のベクトルと式(12)のベクトルの積を計算し、ADF_S17内部擬似エコー信号Sy´(m)を作成し、加算器Add2に出力する。
Sy´(m)=W(m)SX(m) …(16)
加算器Add2には、送信側加算データ保存部13sから送信側ベクトル要素データsin_keep(m)が、受信側加算データ保存部13rと同じタイミングのmで1サンプルずつ入力され、Sy´(m)と相殺されて、残差信号Se(m)を出力する。残差信号Se(m)は、ADF_S用適応フィルタ係数更新部S_ADP16dに出力される。
S_ADP16dには、更新停止指示部16eからの係数更新停止フラグのベクトルSDTが入力されている。
更新停止指示部16eは、ダブルトーク部18が検出結果DTを出力したサンプルをまとめて選択的に係数更新から排除するためのフラグSDTを以下に説明するように作成する。
Figure 0005061976
例えば、式(17)で加算蓄積中のベクトル(6本のうち、どれか1つでも)の第dサンプルでDTが発生したとしても要素として1が格納されるようにする。例えば、pile_cnt=1のとき第0〜第159サンプルでDTが発生し、pile_cnt=2のとき第160〜第319サンプルでDTが発生したとき、ダブルトークの発生のフラグが下記のようにまとめられる。
SDT=[sDT[0]〜sDT[319]・・・sDT[LENGTH−1]]
=[1〜1・・・0] …(18)
そして、更新停止指示部16eは、一旦SDTの論理否定を行い1と0を反転させNOT_SDTを作成する。
NOT_SDT=[sDT[0]〜sDT[319]・・・sDT[LENGTH−1]]
=[0〜0…1…1] …(19)
S_ADP16dは、式(21)のようにして、係数ベクトルW(m)をW(m+1)として更新する。ただし、サンプル順がSDT=[sDT[0]〜sDT[319]・・・sDT[LENGTH−1]]で要素1とタイミングが合致するデータに関しては当該データサンプルは係数更新を実行しない。
つまり、時間の先頭を揃えて、加算平均したデータベクトル中にダブルトークサンプルが混じって平均されたサンプルに関してはADF_S17の係数更新に用いない。
Figure 0005061976
上記の例であれば、式(20)は係数更新が実行されないか、若しくは更新値を計算しても係数に反映しない。
Figure 0005061976
更新した係数は、図1のSW1に向かって出力される。SW1は、音声検出結果を受けて適応モード制御部10からの出力に応じて既に端子がaに閉じられている状態である。W(m)は式(22)のようにADF_N6の係数H(m)として上書きコピーされる。
H(m)=W(m) …(22)
そして、次に音声が検出され、ADF_N6が再び駆動され始めるときの係数の係数初期値として使われる。すなわち、エコーキャンセラ100は、遠端からの受信入力信号x(n)があるときは、通常の適応フィルタADF_N6を駆動してエコーキャンラの収束を進めてエコーを減少させ、その際、同時に通常の適応フィルタを駆動中の受信中の入力を、一定サンプル数だけタイミングを揃えて穂損しておき、音声がないときでもエコーキャンセラの収束を進めるための準備をする。
音声がないときには、上述したように予め蓄えた受信入力音声データとエコー信号を各々加算平均して入力とは別のエコーキャンセラ収束用データを作成して、見かけ上音声がない区間でも、ADF_S17を用いてエコーキャンセラを収束進行させる。
そして、蓄積中にダブルトークが検出されたサンプルはエコーキャンセラの係数更新から除外するようになっている。
第1の実施形態のエコーキャンセラでは、受信入力音声ベクトルXとエコー信号ベクトルYを背景ノイズに応じて加算平均するので、話者が背景ノイズがない好ましい使用環境にあるときは、利用者である話者が特段意識して調整をしなくても送信、受信データの加算平均の回数を少なくし、もってデータ蓄積の時間を短くして収束までの時間を短くしてすばやくエコーのない通話を実現し、さらに、このとき加算平均演算が少なくなる分、無駄な計算処理を節約するので消費電力が小さくてすむ効率のよいエコーキャンセラを提供できる。
以上のことから、第1の実施形態は、以下のような構成のエコーキャンセラといえる。
第1の実施形態のエコーキャンセラは、拡声用音響エコーキャンセラにおいて、遠端からの受信入力で音声があるかどうかを判定する音声検出部8を設け、音声検出部8は、例えば音声検出の時にv_flg=1、検出しないときにv_flg=0を出力するようにし、保持レジスタ14cと積和演算部14bと適応フィルタ係数部14aと、通常適応フィルタ係数適応部15を設けて、通常適応フィルタADF_N6を構成するようにし、また、送信側加算データ選択部11s、受信側加算データ選択部11r、送信側加算データ加工部12s、受信側加算データ加工部12r、送信側加算データ保存部13s、受信側加算データ保存部13rを設け、加算器Add2を設け、無音区間で係数を収束進行する潜行型適応フィルタADF_S17を構成するようにし、適応モード制御部10と2つのスイッチSW1及びSW2を設け、適応モード制御部10は、v_flg=1のときは通常適応フィルタADF_N6を動作させるための信号steals_adapt_go=0を出力し、v_flg=0のときは無線区間用適応フィルタADF_S17を動作させるための信号steals_adapt_go=1を出力し、音声検出区間v_flg=1では通常適応フィルタADF_N6が適応動作するようにした。
さらに、タイミング制御部9とダブルトーク検出部(DTD)18と、背景ノイズ計算ウ19、エコーレベル検出部1B、加算平均回数制御部1Aを設け、音声検出部8の出力が、v_flg=0からv_flg=1に変わった点を開始点として、予め定めた一定時間LENGTHだけ、音声検出部8の検出結果を無視してデータをサンプルし、サンプルしたデータを保持する信号KEEPを、潜行型適応フィルタADF_S17の受信側加算データ選択部11rと送信側加算データ選択部11sに出力するようにし、STS18は無通話状態を検出して無通話状態検出信号IDLを背景ノイズ計算部19に出力し、背景ノイズ計算部19はこのとき近端の背景ノイズの平均値を計算するようにし、DTD19は、シングルトーク状態を検出してシングルトーク検出信号STをエコーレベル検出部1Bに出力し、エコーレベル検出部1Bはこのときエコーの平均レベルを計算するようにし、加算平均回数制御部1Aは、エコーレベル検出部1Bの出力と、背景ノイズ計算部19の出力から、エコー/背景ノイズであるE/Nを計算して予め定めた参照テーブルを用いてデータの加算平均回数を出力するようにし、潜行型適応フィルタADF_S17に送信側加算データ選択部11sを設け、受信側と同様に、エコーである送信側入力データに関しても音声検出部8の出力がv_flg=0から1に変わった点を開始点として、予め定めた一定時間LENGTHだけ、音声検出部8の検出結果を無視してデータをサンプルし、サンプルしたデータを保持する信号KEEPをADF_S17の送信側加算データ選択部11sに出力するようにし、潜行型適応フィルタ部17には加算データ加工部12sを設け、予め定めた個数を最大本数とする入力ベクトルを、加算平均回数制御部1Aの出力である加算回数で加算して、送信側、受信側で、それぞれの潜行型適応フィルタ入力信号ベクトルを作成し、受信側加算データ加工部12rは、上記定めた本数の入力ベクトルの計算が終了したときに適応モード制御部10に対して、適応フィルタ駆動準備ができたことを知らせるフラグsteals_apapt_go=1を出力し、そうでないときにはsteals_apapt_go=0を出力するようにし、潜行型適応フィルタ17に、無音区間適応信号部STEALS_ADF16を設けて、適応モード制御部10は、受信側加算データ加工部12rからsteals_adapt_go=1を受け取り、かつ、音声検出部8からv_flg=0を入力されているときに、受信側加算データ保存部13rの出力、すなわち受信入力音声の開始時点をそろえて同期加算平均処理した音声の加算平均データと、受信音声の検出タイミングに一致して同期加算されたエコー信号のデータである送信側加算データ保存部の出力を用いて、加算データ適応フィルタSTEALS_ADFを駆動して、無音区間にもエコーキャンセラの適応フィルタを収束させるようにし、潜行型適応フィルタ17に更新停止指示部16eを設け、更新停止指示部16eは、DTD18の出力がダブルトーク状態以外のときに蓄積されたデータサンプルのタイミングを示す信号NOT_SDTをADF_S適応フィルタ係数更新部16dに出力して、ダブルトーク状態でサンプルされたデータが加算平均後のベクトルに混じりこんだときはベクトル中の当該サンプルでは係数の更新を停止するようにして潜行型適応フィルタの係数が優乱をうけることを防止するようにしその後の潜行型適応フィルタ17のフィルタ係数を通常適応フィルタの係数にコピーするようにした。
(A−3)第1の実施形態の効果
以上のように、第1の実施形態によれば、従来係数更新が不可能であった無音区間を利用してエコーキャンセラのフィルタ係数を収束させることができるので、高速アルゴリズムを用いなくてもフィルタ係数をはやく収束させることができ、その結果エコーを早期に除去することができる。
また、第1の実施形態によれば、エコーキャンセラの動作を安定させることができるので、演算処理量を増加させることなく、利用者が複雑な設定をしなくても、エコーが良く除去できる。その結果、例えば、安価で高機能な拡声電話機用のエコーキャンセラを提供できる。
(B)第2の実施形態
次に、本発明のエコーキャンセラ、エコーキャンセル方法及びプログラムの第2の実施形態を図面を参照しながら説明する。
(B−1)第2の実施形態の構成及び動作
図7は、第2の実施形態のエコーキャンセラ200の内部構成を示す構成図である。
第2の実施形態のエコーキャンセラ200が、第1の実施形態のエコーキャンセラ100と異なる点は、DTD18が通話状態判定部(DTD_ACOM)20に変わったこと、加算回数制御部1Aが加算回数制御部22に変わったこと、新たに所望ACOM入力部21を加えたことである。
通話状態判定部(DTD_ACOM)20が、第1の実施形態のDTD18の動作と異なる点は、通話状態検出に加えて、エコー減衰量の計算を行う点である。
DTD_ACOM20は、通話状態がSTのとき、すなわち、遠端話者の信号x(n)だけがあるとき、エコーキャンセラのエコーキャンセル後の信号e(n)と遠端からの受信信号x(n)の時間平均を計算し、状態STで式(23)のようにエコー除去ACOM(n)を計算し、加算回数制御部22に出力する点が異なっているのである。
ACOM(n)=δ・ACOM(n−1)
+(1.0−δ)・20log|x(n)/res(n)| …(23)
一方、所望ACOM入力部21には設定者が予め適当な目標エコー減衰量値TGT_ACOMを設定しておく。第2の実施形態では、TGT_ACOMとして30dBを設定するものとするが、この値は特に限定されるものではない。
加算回数制御部22は、所望ACOM入力部21からTGT_ACOMを受け取り、一方、DTD_ACOM20からACOM(n)を受け取り、TGT_ACOM≧ACOM(n)のとき、下記のように加算平均回数AVL_PILE_CNTを制御する。
AVEL_PILE_CNT=int{(TGT_ACOM−ACOM(n))/6 …(24)
式(24)において、intは値を整数化する関数である。
式(24)は、所望ACOMである(TGT_ACOM−ACOM(n))の差に6dBの差がでるたびに、加算回数が1回増加するようになっていることを表している。例えば、所望ACOMとACOM(n)の差がなければ、加算平均は実行されないし、所望ACOMとACOM(n)の差が12dBならば、加算平均回数AVL_PILE_CNT=2となる。ただし、加算平均回数AVL_PILE_CNTは、必ず上限FULL_PILE以下である。
まず、図7では、ACOM(n)を用いて、加算平均回数を計算するようにしたので、背景ノイズの大きさは実際のところ通話状態判定部20の送信側入力(Add1の出力)に反映されており、エコーの大きさは通話状態判定部20の受信側入力、送信側入力の比であるACOMに反映されているので、装置規模を小さくしたいときは、エコーレベル計算部1B、背景ノイズ計算部19を省いても上記の実施例が可能である。
以上のように、第2の実施形態のエコーキャンセラ200は、第1の実施形態の場合、加算回数平均回数の設定は、加算回数エコー/ノイズの参照表を用いて行うが、参照表を用いる方法は、参照表に設定された加算回数と背景ノイズの関係が性能を左右するのであって、必ずしもエコーキャンセラが動作している環境が参照表の設定と適合するわけではない。そのうえ、参照表の設計及び設定値は経験的に定める必要があるため、熟練した設計者が利用者の使用環境を調べて参照表を設定しなければならない。
そこで、第2の実施形態のエコーキャンエラ200は、以下のような構成を備えるといえる。
第2の実施形態は、第1の実施形態の構成に加え又は代え、所望ACOM入力部21を備え、設計者がエコーの除去量を入力して、入力された目標エコー減衰量値TGT_ACOMを加算回数制御部22に出力するようにし、第1の実施形態のDTD18をDTD_ACOM20に代え、加算回数制御部1Aを加算回数制御部22に代え、DTD_ACOM20は、エコー除去量ACOMの平均値ACOM(n)を計算して加算回数制御部22に出力するようにし、加算回数制御部22はDTD_ACOM20から入力されたエコー減衰量の平均値ACOM(n)と所望ACOM入力部21からの目標エコー減衰量値TGT_ACOMとから、加算平均回数AVL_PILE_CNTを式(24)に従って求めるものとする。
(B−2)第2の実施形態の効果
以上のように、第2の実施形態によれば、第1の実施形態の効果に加えて、熟練した設計者による参照表を設定しなくても、利用者が簡単な設定でエコーキャンセラの背景ノイズ環境にあわせたエコー除去を実現することができる。
(C)第3の実施形態
以下、本発明のエコーキャンセラ、エコーキャンセル方法及びプログラムの第3の実施形態を図面を参照しながら説明する。
(C−1)第3の実施形態の構成及び動作
図8は、第3の実施形態のエコーキャンセラの内部構成を示す構成図である。
第3の実施形態が、第2の実施形態と異なる点は、通話状態判定部(以後DTD_ACOM)20が、通話状態判定部30に変わったことであり、加算回数制御部22が加算回数制御部32になったことであり、所望ACOM入力部21がなくなり、新たにエコー減衰量監視部31が設けられたことである。そのほかの部分に関しては第2の実施形態と同じであるので省略する。
通話状態判定部30の動作が第2の実施形態の通話状態判定部20と異なるのは、式(17)で計算したACOM(n)をエコー減衰量監視都31に出力する点だけである。その他に関しては通話状態判定部20と同じであるのでここで再び説明はしない。
エコー減衰量監視部31は、一定期間おきにACOM(n)の変化を計算するものである。第3の実施形態では、ACOM(n)をLENGTH個、すなわち、LENGTHサンプル期間分蓄積してその平均値AV_ACOMを計算し、そして、LENGTHサンプル前に保存しておいたAV_ACOM_OLDとの差分DIFF_ACOMを計算して、加算平均回数制御部32に出力する。
すなわち、DIFF_ACOM>0(dB)であれば、前回の時点からエコー減衰量の増加があったことを示しており、前回加算平均回数制御部32が算出した加算平均回数制御によって、エコー減衰量の増加に効果を奏したことがわかる。
逆に、DIFF_ACOM≦0(DB)であれば、エコー減衰量は変わらないか、若しくは小さくなってしまったのだから、前回加算平均回数制御部32が算出した加算平均回数の制御では、エコー減衰量の増加に効果がなかったことになる。
このように、DIFF_ACOMの正負は、加算平均回数制御部32の加算回数制御の成功/不成功の影響を表すパラメータとなる。
加算平均回数制御部32では、初期状態では加算平均回数AVL_PILE_CNT=1である。
第3の実施形態では、加算平均回数制御部32には、エコー減衰量監視部31からの出力DIFF_ACOMが入力されており、前回すなわちLENGTHサンプル単位前におこなった加算平均回数の変更によって、エコー除去量が増加したかどうかが入力されることになる。そして、加算平均回数制御部32はエコー減衰量監視部31からの出力DIFF_ACOMによって、表3の様に加算平均回数を毎週来(LENGTHおきに)変更する。
Figure 0005061976
ただし、動作初期状態では初期値AVL_PILE_CNT=1である。エコーキヤンセラの性質から、加算平均処理なしで動作させても初期状態の時は、必ず収束していくので、初期状態から2回目にかけては必ずDIFF_ACOM>0(dB)が成立し、このときには条件1が成立する。
結果初期動作から1度目の判定では、必ずAVL_PILE_CNT=2になる。それ以後は加算平均回数制御部32は、表3に示す回数制御条件に従って、AVL_PILE_CNTを増減させる。
以後、加算平均回数制御部32は、加算平均回数AVL_PILE_CNTの増加制御が効果を発揮する場合は、加算平均回数を上限であるFULL_PILEまでは順次増加させ、加算平均回数AVL_PILE_CNTの増加効果がほとんど見られない場合はAVL_PILE_CNTを維持し、加算平均回数AVL_PILE_CNTの増加がむしろ悪影響である場合はAVL_PILE_CNT減少させる。
第3の実施形態では、δ2=6dB、δ3=6dBとするが、もちろん適切に定めてよく、この値に限定しない。
ここで、各々の条件が成立する代表的な条件例を挙げておくと、条件1は、第3の実施形態に鑑みる主たる改善目的である背景ノイズがエコー除去性能を妨げになっている場合であり、AVL_PILE_CNTを増加させることで、エコー除去性能の効果を発揮することができる。
条件2は、物理的なエコー経路の長さに対して、ハードウェア資源の制約などから適応フィルタの割り当てタップ数(図示しない係数メモリの数)が不足している場合によく発生する条件であり、加算平均回数の増減はほとんどエコー除去性能に効果がなく、根本的には適応フィルタへのハードウェアメモリ資源の割り当てなどの物理的資源増加で対応する必要があり、このときには必要以上の加算平均処理を行ったとしても無駄演算となる。
条件3は、エコー経路が時間変動している場合によく発生し、この場合、加算平均の準備のためにデータを長時間蓄積することは逆に、それだけエコーキャンセラのエコー経路変動に対する追従が遅れることを意味しており、むしろデータの蓄積や加算平均処理をやめ、できるだけ時間的に直近のデータだけを重点的に利用するのが望ましいことを鑑みたものである。
図8では、DIFF_ACOMを用いて加算平均回数を計算するようにしたので、実際には背景ノイズの大きさは通話状態判定部30の送信側入力(Add1の出力)に反映されており、エコーの大きさは通話状態判定部30の受信側入力、送信側入力(Add1の出力)の比であるACOMに反映されているので、装置規模を小さくしたいときはエコーレベル計算部1B、背景ノイズ計算部19を省いても支障なく実現することができる
第2の実施形態では、熟練設計者が利用者毎の使用環境に対応する参照表を設定しなくても、使用環境にいる利用者自身が簡単な設定をすることで、エコーキャンセラが背景ノイズ環境に適応した性能を発揮できるようにした。
しかしながら、一般には利用者が通信に対する知識があり、大まかにでもエコーキャンセラの所望ACOM入力部21に適当な目標エコー減衰量値ATGT_ACOMの代表値を入力できる場合は少ない。むしろ、実際の一般的な利用者は通信技術になじみのない場合のほうが多い。このようなとき、第2の実施形態において、製品出荷時にやみくもに大きな目標エコー減衰量値TGT_ACOMを設定したとしても、性能が発揮されない場合があるのは上述したとおりである。
しかも上述したように、加算平均の大きさは大きければそれだけデータ蓄積にかかる時間も長くなるので、エコーキヤンセラの収束速度の観点からは好ましくない場合がある。
そこで、第3の実施形態のエコーキャンセラは、第2の実施形態の通話状態判定部20の代わりに通話状態判定部30を設け、加算平均回数制御部22の代わりに加算平均加算平均回数制御部32を設け、所望ACOM入力部21をなくし、新たにエコー減衰量監視部31を設けて通話状態判定部30は、計算したACOM(n)をエコー減衰量監視部31に出力するようにし、エコー減衰量監視部31は、ACOM(n)を一定サンプル、すなわちLENGTH個蓄積して、その平均値AVEL_ACOMを計算し、LENGTHサンプル前に保存しておいたAVEL_ACOM_OLDとの差分DIFF_ACOMを計算して加算平均回数制御部32に出力するようにし、加算平均回数制御部32は、エコー減衰量監視部31の出力DIFF_ACOMに応じて、予め設定した加算平均回数変更閾値δ2、δ3を用いて、以下のようにする。
δ2≦DIFF_ACOMのときに、加算平均回数AVL_PILE_CNTを増加させる。
−δ3<DIFF_ACOM<δ2のときに、AVL_PILE_CNTを維持する。
DIFF_ACOM≦−δ3のときに、AVL_PILE_CNTを1減少させる。
そして、AVL_PILE_CNTは、1≦AVL_PILE_CNT≦FULL_PILE担うようにしたので、エコーキャンセラが動作を開始し、収束を開始するに従って、通話状態判定部30が通話状態を判定しつつ、エコー減衰量監視部31がエコーキャンセラのエコー除去量ACOMの変化を計算して、加算平均回数制御部32に対して加算平均回数の増減するためのパラメータを出力するようにする。
(C−2)第3の実施形態の効果
以上のように、第3の実施形態によれば、第1及び第2の実施形態の効果に加えて、利用者が特段の知識、技術を有していなくても、エコーキャンセラが自動的に最も効果的な加算平均数に設定することができるので、効果的にエコーを除去することができる。
(D)他の実施形態
上述した第1〜第3の実施形態で説明したエコーキャンセラはソフトウェア処理により実現されるものである。すなわち、CPU、ROM、RAMなどで構成されるハードウェアにおいて、CPUが、ROMに格納される処理プログラムを実行することにより、上述したエコーキャンセル処理が実現される。
第1の実施形態のエコーキャンセラの内部構成を示す構成図である。 第1の実施形態の送信側及び受信側入力ベクトルの作成の様子を示す図である。 第1の実施形態の加算データ加工部の加算平均データの作成の様子を示す図である。 第1の実施形態の受信側入力ベクトルの加算平均ベクトルの作成の様子を示す図である。 第1の実施形態の受信側入力ベクトルの加算平均ベクトルの作成の様子を示す図である。 第1の実施形態の潜行型適応フィルタの内部構成示す構成図である。 第2の実施形態のエコーキャンセラの内部構成を示す構成図である。 第3の実施形態のエコーキャンセラの内部構成を示す構成図である。
符号の説明
100、200、300…エコーキャンセラ、6…通常適応フィルタ、8…音声検出部、9…タイミング制御部、10…適応モード制御部、11r及び11s…加算データ選択部、12r及び12s…加算データ加工部、13r及び13s…加算データ保存部、14a…適応フィルタ係数部、14b…積和演算部、14c…保持レジスタ、15…通常_ADP、16…STEALS_ADF、17…潜行型適応フィルタ、18…DTD、19…背景ノイズ計算部、1A…加算回数制御部、1B…エコーレベル検出部、SW1、SW2、SW3、ADD1、ADD2、20及び30…DTD_ACOM、21…所望ACOM入力部、22及び32…加算回数制御部、31…ACOM監視部。

Claims (8)

  1. 受信入力信号及び送信出力信号に基づいて通話状態を監視する通話状態監視手段と、
    遠端から音声信号が入力される場合に動作する第1の適応フィルタ手段と、
    遠端から音声信号が入力されない場合に動作する第2の適応フィルタ手段と、
    上記通話状態監視手段による遠端からの音声検出結果に応じて、上記第1の適応フィルタ手段と上記第2の適応フィルタ手段との動作を切替制御する動作制御手段と、
    上記通話状態監視手段により無通話状態と判断されたときに、送信出力信号に基づいて近端の背景ノイズのパワーを求める背景ノイズパワー計算手段と、
    上記通話状態監視手段によりシングルトーク状態と判断されたときに、送信出力信号に基づいてエコーパワーを検出するエコーパワー検出手段と、
    上記背景ノイズパワー計算手段により求められた近端の背景ノイズパワーの平均値と、上記エコーパワー検出手段により求められたエコーパワーの平均値とに基づいて、加算平均回数を求める加算回数制御手段と
    を備え、
    上記第2の適応フィルタ手段が、
    上記音声検出手段により音声検出なしから音声検出ありに遷移した時点から、送信出力信号及び受信入力信号の所定期間長の各サンプリングデータを、送信入力ベクトル及び受信入力ベクトルとして逐次更新しながら保持する加算データ選択部と、
    上記加算回数制御手段からの上記加算平均回数に従って、上記送信入力ベクトル及び上記受信入力ベクトルのそれぞれについて、所定設定回数を上限として同期加算平均する加算データ加工部と、
    上記加算データ加工部により同期加算平均された上記受信入力ベクトルと逐次更新するフィルタ係数とを用いて擬似エコー信号を作成し、同期加算平均された上記送信入力ベクトルから上記擬似エコー信号を除去するものであって、収束したフィルタ係数を上記第1の適応フィルタ手段に与える適応フィルタ部と、
    ブルトーク状態の間、上記適応フィルタにおけるフィルタ係数の更新処理を停止させる更新停止指示部と
    を有することを特徴とするエコーキャンセラ。
  2. 上記加算回数制御手段が、上記エコーパワーの平均値と上記背景ノイズパワーの平均値との比と、予め設定された加算平均回数とを対応づけた対応テーブルを有し、この対応テーブルを参照して、上記加算平均回数を求めるものであることを特徴とする請求項1に記載のエコーキャンセラ。
  3. 予め設定された所望エコー減衰量を保持する所望エコー減衰量保持手段と、
    シングルトーク状態のとき、上記第1の適応フィルタ手段によりエコー除去された信号と、遠端からの上記受信入力信号とに基づいて、エコー減衰量を求めるエコー減衰量計算手段と
    を備え、
    上記加算回数制御手段が、上記エコー減衰量計算手段により求められた上記エコー減衰量と、上記所望エコー減衰量とに基づいて、上記加算平均回数を求めるものであることを特徴とする請求項1に記載のエコーキャンセラ。
  4. シングルトーク状態のとき、上記第1の適応フィルタ手段によりエコー除去された信号と、遠端からの上記受信入力信号とに基づいて、エコー減衰量を求めるエコー減衰量計算手段と、
    上記エコー減衰量計算手段による前回のエコー減衰量と今回のエコー減衰量との変化量を監視するエコー減衰量監視手段と
    を備え、
    上記加算回数制御手段が、上記エコー減衰量監視手段による前回のエコー減衰量と今回のエコー減衰量との変化量に基づいて上記加算平均回数を求めるものであることを特徴とする請求項1に記載のエコーキャンセラ。
  5. 上記加算回数制御手段が、予め設定した複数の閾値と、前回のエコー減衰量と今回のエコー減衰量との変化量との比較結果に応じて、上記加算平均回数を求めるものであることを特徴とする請求項4に記載のエコーキャンセラ。
  6. 上記加算データ加工部は、動作開始後、予め設定された所定設定数のベクトルを確保できない場合には、その時点で確保できている数の送信入力ベクトル及び受信入力ベクトルを用いて同期加算平均を行うものであることを特徴とする請求項1〜5のいずれかに記載のエコーキャンセラ。
  7. コンピュータが、通話状態監視手段、第1の適応フィルタ手段、第2の適応フィルタ手段、動作制御手段、背景ノイズパワー計算手段、エコーパワー検出手段及び加算回数制御手段を備え、
    上記通話状態監視手段が、受信入力信号及び送信出力信号に基づいて通話状態を監視する通話状態監視工程と、
    上記第1の適応フィルタ手段が、遠端から音声信号が入力される場合に動作する第1の適応フィルタ工程と、
    上記第2の適応フィルタ手段が、遠端から音声信号が入力されない場合に動作する第2の適応フィルタ工程と、
    上記動作制御手段が、上記通話状態監視手段による遠端からの音声検出結果に応じて、上記第1の適応フィルタ手段と上記第2の適応フィルタ手段との動作を切替制御する動作制御工程と、
    上記背景ノイズパワー計算手段が、上記通話状態監視手段により無通話状態と判断されたときに、送信出力信号に基づいて近端の背景ノイズのパワーを求める背景ノイズパワー計算工程と、
    上記エコーパワー検出手段が、上記通話状態監視手段によりシングルトーク状態と判断されたときに、送信出力信号に基づいてエコーパワーを検出するエコーパワー検出工程と、
    上記加算回数制御手段が、上記背景ノイズパワー計算手段により求められた近端の背景ノイズパワーの平均値と、上記エコーパワー検出手段により求められたエコーパワーの平均値とに基づいて、加算平均回数を求める加算回数制御工程と
    を有し、
    上記第2の適応フィルタ工程では、
    加算データ選択手段部が、上記音声検出手段により音声検出なしから音声検出ありに遷移した時点から、送信出力信号及び受信入力信号の所定期間長の各サンプリングデータを、送信入力ベクトル及び受信入力ベクトルとして逐次更新しながら保持する加算データ選択工程と、
    加算データ加工部が、上記加算回数制御手段からの上記加算平均回数に従って、上記送信入力ベクトル及び上記受信入力ベクトルのそれぞれについて、所定設定回数を上限として同期加算平均する加算データ加工工程と、
    適応フィルタ部が、上記加算データ加工部により同期加算平均された上記受信入力ベクトルと逐次更新するフィルタ係数とを用いて擬似エコー信号を作成し、同期加算平均された上記送信入力ベクトルから上記擬似エコー信号を除去するものであって、収束したフィルタ係数を上記第1の適応フィルタ手段に与える適応フィルタ工程と、
    更新停止指示部が、ダブルトーク状態の間、上記適応フィルタにおけるフィルタ係数の更新処理を停止させる更新停止指示工程と
    を有することを特徴とするエコーキャンセル方法。
  8. コンピュータを、
    受信入力信号及び送信出力信号に基づいて通話状態を監視する通話状態監視手段、
    遠端から音声信号が入力される場合に動作する第1の適応フィルタ手段、
    遠端から音声信号が入力されない場合に動作する第2の適応フィルタ手段、
    上記通話状態監視手段による遠端からの音声検出結果に応じて、上記第1の適応フィルタ手段と上記第2の適応フィルタ手段との動作を切替制御する動作制御手段、
    上記通話状態監視手段により無通話状態と判断されたときに、送信出力信号に基づいて近端の背景ノイズのパワーを求める背景ノイズパワー計算手段、
    上記通話状態監視手段によりシングルトーク状態と判断されたときに、送信出力信号に基づいてエコーパワーを検出するエコーパワー検出手段、
    上記背景ノイズパワー計算手段により求められた近端の背景ノイズパワーの平均値と、上記エコーパワー検出手段により求められたエコーパワーの平均値とに基づいて、加算平均回数を求める加算回数制御手段
    として機能させるものであって、
    上記第2の適応フィルタ手段が、
    上記音声検出手段により音声検出なしから音声検出ありに遷移した時点から、送信出力信号及び受信入力信号の所定期間長の各サンプリングデータを、送信入力ベクトル及び受信入力ベクトルとして逐次更新しながら保持する加算データ選択部、
    上記加算回数制御手段からの上記加算平均回数に従って、上記送信入力ベクトル及び上記受信入力ベクトルのそれぞれについて、所定設定回数を上限として同期加算平均する加算データ加工部、
    上記加算データ加工部により同期加算平均された上記受信入力ベクトルと逐次更新するフィルタ係数とを用いて擬似エコー信号を作成し、同期加算平均された上記送信入力ベクトルから上記擬似エコー信号を除去するものであって、収束したフィルタ係数を上記第1の適応フィルタ手段に与える適応フィルタ部、
    ブルトーク状態の間、上記適応フィルタにおけるフィルタ係数の更新処理を停止させる更新停止指示部
    として機能させるプログラム。
JP2008063086A 2008-03-12 2008-03-12 エコーキャンセラ、エコーキャンセル方法及びプログラム Expired - Fee Related JP5061976B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2008063086A JP5061976B2 (ja) 2008-03-12 2008-03-12 エコーキャンセラ、エコーキャンセル方法及びプログラム
US12/320,975 US8077858B2 (en) 2008-03-12 2009-02-10 Echo canceler and echo canceling method
EP09152532A EP2101480B1 (en) 2008-03-12 2009-02-11 Echo canceller and echo cancelling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008063086A JP5061976B2 (ja) 2008-03-12 2008-03-12 エコーキャンセラ、エコーキャンセル方法及びプログラム

Publications (2)

Publication Number Publication Date
JP2009219040A JP2009219040A (ja) 2009-09-24
JP5061976B2 true JP5061976B2 (ja) 2012-10-31

Family

ID=40548785

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008063086A Expired - Fee Related JP5061976B2 (ja) 2008-03-12 2008-03-12 エコーキャンセラ、エコーキャンセル方法及びプログラム

Country Status (3)

Country Link
US (1) US8077858B2 (ja)
EP (1) EP2101480B1 (ja)
JP (1) JP5061976B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102740214B (zh) * 2011-04-01 2014-09-10 中国科学院声学研究所 一种基于反馈信号频谱估计的啸叫抑制方法
JP5823845B2 (ja) * 2011-12-14 2015-11-25 ラピスセミコンダクタ株式会社 エコーキャンセラ装置及びエコーキャンセル方法
CN103716478B (zh) * 2013-12-11 2016-04-06 电子科技大学 双向回音消除方法
GB2515592B (en) * 2013-12-23 2016-11-30 Imagination Tech Ltd Echo path change detector
GB2527865B (en) * 2014-10-30 2016-12-14 Imagination Tech Ltd Controlling operational characteristics of an acoustic echo canceller
US10594869B2 (en) * 2017-08-03 2020-03-17 Bose Corporation Mitigating impact of double talk for residual echo suppressors
US10542153B2 (en) 2017-08-03 2020-01-21 Bose Corporation Multi-channel residual echo suppression
US10863269B2 (en) 2017-10-03 2020-12-08 Bose Corporation Spatial double-talk detector
US10964305B2 (en) 2019-05-20 2021-03-30 Bose Corporation Mitigating impact of double talk for residual echo suppressors
CN111798827A (zh) * 2020-07-07 2020-10-20 上海立可芯半导体科技有限公司 回声消除方法、装置、系统和计算机可读介质

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0821881B2 (ja) 1987-03-26 1996-03-04 沖電気工業株式会社 エコ−キヤンセラのダブルト−ク検出制御方法
JPH02105375A (ja) 1988-10-14 1990-04-17 Mitsubishi Electric Corp 磁気ヘッドを担持するキャリアの自動錠止装置
JP2570011B2 (ja) 1991-07-01 1997-01-08 岩崎通信機株式会社 双方向増幅器
US5295136A (en) * 1992-04-13 1994-03-15 Motorola, Inc. Method of performing convergence in a, least mean square, adaptive filter, echo canceller
JP3145269B2 (ja) 1995-02-24 2001-03-12 松下電器産業株式会社 エコーキャンセラ制御方法
JPH08265224A (ja) * 1995-03-22 1996-10-11 Nec Corp エコーキャンセラ
US5909384A (en) 1996-10-04 1999-06-01 Conexant Systems, Inc. System for dynamically adapting the length of a filter
US6269161B1 (en) * 1999-05-20 2001-07-31 Signalworks, Inc. System and method for near-end talker detection by spectrum analysis
US6570986B1 (en) * 1999-08-30 2003-05-27 Industrial Technology Research Institute Double-talk detector
JP3640576B2 (ja) 1999-09-07 2005-04-20 沖電気工業株式会社 エコーキャンセラ、及びその動作方法
JP4345225B2 (ja) * 2000-11-27 2009-10-14 沖電気工業株式会社 エコーキャンセラ
JP4400015B2 (ja) 2001-09-27 2010-01-20 沖電気工業株式会社 ダブルトーク検出方法及びダブルトーク検出装置並びにエコーキャンセラ
JP3922997B2 (ja) * 2002-10-30 2007-05-30 沖電気工業株式会社 エコーキャンセラ
JP2006157499A (ja) * 2004-11-30 2006-06-15 Matsushita Electric Ind Co Ltd 音響エコーキャンセラとそれを用いたハンズフリー電話及び音響エコーキャンセル方法
JP4692291B2 (ja) * 2006-01-13 2011-06-01 沖電気工業株式会社 エコーキャンセラ
JP2007228479A (ja) * 2006-02-27 2007-09-06 Kyocera Corp エコーキャンセラおよびエコーキャンセル方法
JP2007288404A (ja) 2006-04-14 2007-11-01 Matsushita Electric Ind Co Ltd カメラ選択装置およびカメラ設置位置決定方法
JP5020057B2 (ja) * 2007-12-28 2012-09-05 三菱電機株式会社 エコー消去装置

Also Published As

Publication number Publication date
US20090232297A1 (en) 2009-09-17
US8077858B2 (en) 2011-12-13
JP2009219040A (ja) 2009-09-24
EP2101480A3 (en) 2010-02-24
EP2101480B1 (en) 2011-10-26
EP2101480A2 (en) 2009-09-16

Similar Documents

Publication Publication Date Title
JP5061976B2 (ja) エコーキャンセラ、エコーキャンセル方法及びプログラム
JP5223576B2 (ja) エコーキャンセラ、エコーキャンセル方法及びプログラム
TWI469138B (zh) 用於在一通話期間修改在一下行鏈路語音信號中之話音之可辨識度的方法、裝置及製造物品
JP5061853B2 (ja) エコーキャンセラ及びエコーキャンセルプログラム
JP2003032780A (ja) ハウリング検出抑圧装置、これを備えた音響装置、及び、ハウリング検出抑圧方法
US7065206B2 (en) Method and apparatus for adaptive echo and noise control
JP3267556B2 (ja) エコー除去装置および送話器
US10810990B2 (en) Active noise cancellation (ANC) system with selectable sample rates
US8744524B2 (en) User interface tone echo cancellation
US7555117B2 (en) Path change detector for echo cancellation
JP2009017029A (ja) 音声信号処理装置、音声信号処理方法
JP4622399B2 (ja) エコーキャンセラ付き通信端末及びそのエコーキャンセル方法
US9191494B1 (en) Device, system, and method for performing echo cancellation in different modes of a communication device
JP2007124255A (ja) Ip電話装置およびその制御方法
JP6855954B2 (ja) ハウリング防止装置および電話装置
JP5297396B2 (ja) 拡声通話装置
JP3442535B2 (ja) エコーキャンセラ
JPH11284550A (ja) 音声入出力装置
JP2020155793A (ja) エコーキャンセラおよびip電話機
JP2017022569A (ja) 通話方法およびそれを利用した通話装置
JP2010103854A (ja) スライド式携帯電話端末

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101116

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120424

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120620

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120710

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120723

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150817

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees