(57)【特許請求の範囲】
【請求項１】
送信信号に重畳され得る音響エコー信号を除去するために前記音響エコー信号から第１擬似エコー信号を減算する音響側エコーキャンセラ、
および受信信号に重畳され得る回線エコー信号を除去するために前記回線エコー信号から第２擬似エコー信号を減算する回線側エコーキャンセラのそれぞれの学習動作を制御するためのエコーキャンセラの制御方法であって、
前記回線側エコーキャンセラによって前記回線エコー信号から前記第２擬似エコー信号を減算して得られる第２除去結果の信号レベルに基づいて前記音響側エコーキャンセラは学習可能であるか否かを判断する第１ステップ、
前記音響側エコーキャンセラによって前記音響エコー信号から前記第１擬似エコー信号を減算して得られる第１除去結果の信号レベルに基づいて前記回線エコーキャンセラは学習可能であるか否かを判断する第２ステップ、
前記第１除去結果の信号レベルに基づいて音声検出を行う第３ステップ、
前記第２除去結果の信号レベルに基づいて音声検出を行う第４ステップ、
前記第３ステップによる音声検出結果および前記第４ステップによる音声検出結果に基づいてダブルトーク状態を検出する第５ステップ、
前記第１ステップによる判断結果および前記第５ステップによるダブルトーク検出結果に基づいて前記音響側エコーキャンセラの学習動作を制御する第６ステップ、ならびに
前記第２ステップによる判断結果および前記第５ステップによるダブルトーク検出結果に基づいて前記回線側エコーキャンセラの学習動作を制御する第７ステップを備える、エコーキャンセラの制御方法。
【請求項２】
前記第５ステップは、前記第３ステップによる音声検出結果または前記第４ステップによる音声検出結果の少なくともにいずれか一方が無音であればシングルトーク状態であると判断するステップ、前記第３ステップによる音声検出結果および前記第４ステップによる音声検出結果がともに有音であれば、その有音状態の継続時間を計算するステップ、前記継続時間が所定時間未満であれば不定状態であると判断するステップ、および前記継続時間が所定時間以上であればダブルトーク状態であると判断するステップを含む、請求項１に記載のエコーキャンセラの制御方法。
【請求項３】
シングルトーク状態のとき、前記音響側エコーキャンセラでの学習によって得られる適応フィルタ係数および前記回線側エコーキャンセラでの学習によって得られる適応フィルタ係数をそれぞれバックアップするステップ、
ならびにダブルトーク状態または不定状態のとき、前記音響側エコーキャンセラおよび前記回線側エコーキャンセラにおいてそれぞれバックアップされた適応フィルタ係数を用いてエコー除去動作を行うステップをさらに含む、請求項２に記載のエコーキャンセラの制御方法。
【請求項４】
送信信号に重畳され得る音響エコー信号を除去するために前記音響エコー信号から第１擬似エコー信号を減算する音響側エコーキャンセラ、および受信信号に重畳され得る回線エコー信号を除去するために前記回線エコー信号から第２擬似エコー信号を減算する回線側エコーキャンセラを含むエコー除去装置であって、
前記回線側エコーキャンセラによって前記回線エコー信号から前記第２擬似エコー信号を減算して得られる第２除去結果の信号レベルに基づいて前記音響側エコーキャンセラは学習可能であるか否かを判断する第１判断手段、
前記音響側エコーキャンセラによって前記音響エコー信号から前記第１擬似エコー信号を減算して得られる第１除去結果の信号レベルに基づいて前記回線エコーキャンセラは学習可能であるか否かを判断する第２判断手段、
前記第１除去結果の信号レベルに基づいて音声検出を行う第１音声検出手段、
前記第２除去結果の信号レベルに基づいて音声検出を行う第２音声検出手段、
前記第１音声検出手段による音声検出結果および前記第２音声検出手段による音声検出結果に基づいてダブルトーク状態を検出するダブルトーク検出手段、
前記第１判断手段による判断結果および前記ダブルトーク検出手段によるダブルトーク検出結果に基づいて前記音響側エコーキャンセラの学習動作を制御する第１制御手段、ならびに
前記第２判断手段による判断結果および前記ダブルトーク検出手段によるダブルトーク検出結果に基づいて前記回線側エコーキャンセラの学習動作を制御する第２制御手段を備える、エコー除去装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はエコーキャンセラの制御方法およびエコー除去装置に関し、特にたとえばハンズフリー電話やテレビ会議システムなどに利用される、エコーキャンセラの制御方法およびエコー除去装置に関する。
【０００２】
【従来の技術】
ハンズフリー電話などに適用される、適応フィルタを用いたエコーキャンセラでは、シングルトーク状態の場合には適応フィルタの適応動作は正常に行われるが、ダブルトーク状態になるとエコー信号だけではなく話者音声をも打ち消すように適応動作を行ってしまい、この結果エコーパスの推定結果に混乱が生じるため、ダブルトーク発生時には学習を停止する必要がある。
【０００３】
そこで従来より、入出力信号のレベルや相関関数などを用いてダブルトーク状態を検出する種々の技術が提案されており、その一例として、図１３に示すようなダブルトーク検出回路１を含むエコーキャンセラ２が提案されている（特開平５−１０２８８７の図２参照）。
【０００４】
このダブルトーク検出回路１では、まず絶対値検出器３、４および微分回路５、６によって、それぞれディジタル受話信号ＲＳおよび送話信号ＴＳの信号レベルが検出される。次に、比較器７において、
Ｒ＝ｌｏｇ｛（受話信号ＲＳの信号レベル）／（送話信号ＴＳの信号レベル）｝
なる演算によって検出レベルの比Ｒが求められ、このレベル比が予め設定した閾値と比較される。
【０００５】
そして、レベル比Ｒが閾値よりも小さくなった場合にダブルトーク状態になったと判定して、このダブルトーク状態が検出されている期間中に適応フィルタ８による適応動作を停止させるようにしている。このようにして、ダブルトーク状態でエコーキャンセラ２が誤ったエコーパスＥＰの推定を行う不具合を防止し、エコーキャンセル動作の安定化を図っていた。
【０００６】
【発明が解決しようとする課題】
ところが、このようなエコーキャンセラ２では、たとえば、近端話者の移動によって送話信号レベルが小さくなれば、ダブルトーク検出回路１では送話信号レベルと受話信号レベルとのレベル比Ｒが閾値よりも大きくなり、その結果、ダブルトーク状態であるにも拘わらず、シングルトーク状態であると判定してしまうことがあった。
【０００７】
このようにダブルトーク検出回路１では、近端話者の移動や回線障害などによる信号レベルの変動の影響で、ダブルトーク状態の検出精度が劣化し、エコーキャンセル動作が不安定になる場合があった。
【０００８】
それゆえにこの発明の主たる目的は、エコーキャンセル動作を安定化できる、エコーキャンセラの制御方法およびエコー除去装置を提供することである。
【００１５】
【課題を解決するための手段】
上記目的を達成するために、請求項１に記載のエコーキャンセラの制御方法は、送信信号に重畳され得る音響エコー信号を除去するために音響エコー信号から第１擬似エコー信号を減算する音響側エコーキャンセラ、および受信信号に重畳され得る回線エコー信号を除去するために回線エコー信号から第２擬似エコー信号を減算する回線側エコーキャンセラのそれぞれの学習動作を制御するためのエコーキャンセラの制御方法であって、回線側エコーキャンセラによって回線エコー信号から第２擬似エコー信号を減算して得られる第２除去結果の信号レベルに基づいて音響側エコーキャンセラは学習可能であるか否かを判断する第１ステップ、音響側エコーキャンセラによって音響エコー信号から第１擬似エコー信号を減算して得られる第１除去結果の信号レベルに基づいて回線側エコーキャンセラは学習可能であるか否かを判断する第２ステップ、第１除去結果の信号レベルに基づいて音声検出を行う第３ステップ、第２除去結果の信号レベルに基づいて音声検出を行う第４ステップ、第３ステップによる音声検出結果および第４ステップによる音声検出結果に基づいてダブルトーク状態を検出する第５ステップ、第１ステップによる判断結果および第５ステップによるダブルトーク検出結果に基づいて音響側エコーキャンセラの学習動作を制御する第６ステップ、ならびに第２ステップによる判断結果および第５ステップによるダブルトーク検出結果に基づいて回線側エコーキャンセラの学習動作を制御する第７ステップを備える。
【００１６】
請求項２に記載のエコーキャンセラの制御方法は、請求項１に記載のエコーキャンセラの制御方法において、第５ステップは、第３ステップによる音声検出結果または第４ステップによる音声検出結果の少なくともにいずれか一方が無音であればシングルトーク状態であると判断するステップ、第３ステップによる音声検出結果および第４ステップによる音声検出結果がともに有音であれば、その有音状態の継続時間を計算するステップ、継続時間が所定時間未満であれば不定状態であると判断するステップ、および継続時間が所定時間以上であればダブルトーク状態であると判断するステップを含むものである。
【００１７】
請求項３に記載のエコーキャンセラの制御方法は、請求項２に記載のエコーキャンセラの制御方法において、シングルトーク状態のとき、音響側エコーキャンセラでの学習によって得られる適応フィルタ係数および回線側エコーキャンセラでの学習によって得られる適応フィルタ係数をそれぞれバックアップするステップ、ならびにダブルトーク状態または不定状態のとき、音響側エコーキャンセラおよび回線側エコーキャンセラにおいてそれぞれバックアップされた適応フィルタ係数を用いてエコー除去動作を行うステップをさらに含むものである。
【００１９】
請求項４に記載のエコー除去装置は、送信信号に重畳され得る音響エコー信号を除去するために音響エコー信号から第１擬似エコー信号を減算する音響側エコーキャンセラ、および受信信号に重畳され得る回線エコー信号を除去するために回線エコー信号から第２擬似エコー信号を減算する回線側エコーキャンセラを含むエコー除去装置であって、回線側エコーキャンセラによって回線エコー信号から第２擬似エコー信号を減算して得られる第２除去結果の信号レベルに基づいて音響側エコーキャンセラは学習可能であるか否かを判断する第１判断手段、音響側エコーキャンセラによって音響エコー信号から第１擬似エコー信号を減算して得られる第１除去結果の信号レベルに基づいて回線側エコーキャンセラは学習可能であるか否かを判断する第２判断手段、第１除去結果の信号レベルに基づいて音声検出を行う第１音声検出手段、第２除去結果の信号レベルに基づいて音声検出を行う第２音声検出手段、第１音声検出手段による音声検出結果および第２音声検出手段による音声検出結果に基づいてダブルトーク状態を検出するダブルトーク検出手段、第１判断手段による判断結果およびダブルトーク検出手段によるダブルトーク検出結果に基づいて音響側エコーキャンセラの学習動作を制御する第１制御手段、ならびに第２判断手段による判断結果およびダブルトーク検出手段によるダブルトーク検出結果に基づいて回線側エコーキャンセラの学習動作を制御する第２制御手段を備える。
【００２７】
請求項１に記載のエコーキャンセラの制御方法では、回線側エコーキャンセラによって回線エコー信号（回線エコーによるエコー信号）から第２擬似エコー信号を減算して得られる第２除去結果の信号レベルに基づいて音響側エコーキャンセラは学習可能状態であるか否かが、音響側エコーキャンセラによって音響エコー信号（音響エコーによるエコー信号）から第１擬似エコー信号を減算して得られる第１除去結果の信号レベルに基づいて回線側エコーキャンセラは学習可能状態であるか否かが、それぞれ判断される。これによって、エコー除去後の送信信号および受信信号が、それぞれ音響側エコーキャンセラおよび回線側エコーキャンセラが学習不可能なほど小さい場合には、ダブルトーク状態か否かに拘わらず、それぞれ音響側エコーキャンセラおよび回線側エコーキャンセラの学習を停止でき、信頼性の低い学習を阻止できる。
【００２８】
また、第１除去結果の信号レベルおよび第２除去結果の信号レベルに基づいて音声検出が行われるので、エコーを音声と間違えて音声を誤検出する可能性を低減できる。このように信頼性の高い音声検出結果に基づいてダブルトーク状態が検出されるので、ダブルトーク状態をシングルトーク状態と判断されることはなく、ダブルトーク検出の精度が向上する。したがって、このダブルトーク検出結果に基づいて音響側エコーキャンセラおよび回線側エコーキャンセラの学習動作を制御することによって、学習停止とすべきところを学習継続としエコーキャンセラが誤ったエコーパスの推定を行ってしまう、という不具合を防止でき、エコーキャンセラでの学習動作の信頼性を向上できる。
【００２９】
請求項４に記載のエコー除去装置においても、同様である。
【００３０】
請求項２に記載のエコーキャンセラの制御方法では、シングルトーク状態、不定状態、ダブルトーク状態を検出でき、その状態を考慮してエコーキャンセラの学習動作が制御される。
【００３１】
請求項２に記載のエコーキャンセラの制御方法では、シングルトーク状態のときにエコーキャンセラによって得られた適応フィルタ係数をバックアップしておき、ダブルトーク状態または不定状態のときにその適応フィルタ係数を用いてエコーキャンセル動作を行うことによって、崩れて信頼性の低い適応フィルタ係数を用いて学習を行う、といった不具合を防止できる。
【００３２】
【発明の実施の形態】
以下、この発明の実施の形態について図面を参照して説明する。
【００３３】
図１および図２に示すように、この発明の一実施形態のエコー除去装置１０は、ＤＳＰ１２、ＲＯＭ１４およびＲＡＭ１６を用いて構成される。
【００３４】
ＤＳＰ１２には、ダブルトーク状態を示すフラグＤｏｕｂｌｅ＿ｆｌｇ（０：ダブルトークでない、１：ダブルトーク）、学習可能状態かどうかを示すフラグＳｔｕｄｙ＿ｆｌｇ（０：学習不可能状態、１：学習可能状態）、音声検出器３０の検出結果である有音・無音を示すフラグＳｐｅｅｃｈ＿ｆｌｇ＿１（０：無音、１：有音）、音声検出器３２の検出結果である有音・無音を示すフラグＳｐｅｅｃｈ＿ｆｌｇ＿２（０：無音、１：有音）等が格納される。
【００３５】
ＲＯＭ１４には、エコー除去装置１０の動作を制御するためのプログラムや予め設定されたデータが格納される。ＲＯＭ１４に格納されるデータとしては、学習可能な送信信号レベルＳｅｎｄ＿ｌｅｖの閾値Ｌｅａｒｎ＿ｌｅｖ＿ｔｈｌ、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅ、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅの上昇方向の修正幅Ｔ＿ｕｐ、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅの降下方向の修正幅Ｔ＿ｄｏｗｎ、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅから閾値Ｔｈｌ＿１やＴｈｌ＿２を算出するための乗数ａ、ダブルトーク状態と判定するための不定状態継続時間Ｎ等が含まれる。
【００３６】
ＲＡＭ１６には、ＤＳＰ１２での演算によって得られた計算値等のデータが一時的に格納される。ＲＡＭ１６に格納されるデータとしては、送信信号レベルＳｅｎｄ＿ｌｅｖ、有音・無音判定の閾値Ｔｈｌ＿１，Ｔｈｌ＿２、除去結果の信号レベルｉｎ＿ｌｅｖ、不定状態の継続時間を示すカウント値Ｃｏｕｎｔｅｒ等が含まれる。
【００３７】
ＲＯＭ１４やＲＡＭ１６に格納されたプログラム、データを用いてＤＳＰ１２を動作させることによって、エコー除去装置１０が実現される。図２は、エコー除去装置１０の機能ブロック図である。
【００３８】
図２に示すエコー除去装置１０は、回線エコーを除去するための回線エコーキャンセラ１８を制御する例である。
【００３９】
エコー除去装置１０には、マイクロホン２０からの送信信号がＡ／Ｄ変換器２２によってディジタル化されて入力される。
【００４０】
回線エコーキャンセラ１８では、Ａ／Ｄ変換器２２によってディジタル化された送信信号がバッファリングされている参照入力信号を用いて擬似エコー信号が算出される。そして、Ａ／Ｄ変換器２４からの信号（受信信号＋回線エコー）から擬似エコー信号が減算され、その除去結果がＤ／Ａ変換器２６によってアナログ変換された後、スピーカ２８からスピーカ出力信号として出力される。回線エコーキャンセラ１８では、参照入力信号、適応フィルタ係数、除去結果に基づいて、適応フィルタ係数が更新される。
【００４１】
音声検出器３０では、回線エコーキャンセラ１８による除去結果の信号レベルｉｎ＿ｌｅｖが算出され、その信号レベルｉｎ＿ｌｅｖと閾値Ｔｈｌ＿１との比較によって受信経路Ａの有音・無音が検出される。音声検出器３２では、Ａ／Ｄ変換器２２からの送信信号レベルＳｅｎｄ＿ｌｅｖが算出され、送信信号レベルＳｅｎｄ＿ｌｅｖと閾値Ｔｈｌ＿２との比較によって送信経路Ｂの有音・無音が検出される。全体制御部３４においても、Ａ／Ｄ変換器２２からの送信信号レベルＳｅｎｄ＿ｌｅｖが算出され、送信信号レベルＳｅｎｄ＿ｌｅｖと閾値Ｌｅａｒｎ＿ｌｅｖ＿ｔｈｌとの比較によって送信信号レベルＳｅｎｄ＿ｌｅｖが学習可能なレベルであるか否かが判断される。なお、除去結果の信号レベルｉｎ＿ｌｅｖ、送信信号レベルＳｅｎｄ＿ｌｅｖは、たとえばサンプリング周波数８ＫＨｚで抽出された連続する２０サンプルの２乗和によって算出される。後述の実施の形態においても同様である。
【００４２】
音声検出器３０および３２からの音声検出結果は、それぞれダブルトーク検出器３６に与えられ、ダブルトーク検出器３０では、これらの音声検出結果に基づいてダブルトーク状態か否かが検出され、ダブルトーク検出結果が全体制御部３４に与えられる。
【００４３】
全体制御部３４では、送信信号レベルＳｅｎｄ＿ｌｅｖが学習可能なレベルであるか否かの判断結果、およびダブルトーク検出結果に基づいて、回線エコーキャンセラ１８は学習可能状態であるか否かが判断され、回線エコーキャンセラ１８の学習動作が制御される。
【００４４】
なお、Ａ／Ｄ変換器２２によってディジタル化された送信信号はＤ／Ａ変換器３８によってアナログ化されて回線出力信号として出力される。
【００４５】
図３〜図６を参照して、エコー除去装置１０の動作を説明する。
【００４６】
図３に、エコー除去装置１０の全体動作を示す。
【００４７】
図３を参照して、まず、ＲＡＭ１６に格納される送信信号レベルＳｅｎｄ＿ｌｅｖ、閾値Ｔｈｌ＿１，Ｔｈｌ＿２、除去結果の信号レベルｉｎ＿ｌｅｖ、不定状態の継続時間を示すカウント値Ｃｏｕｎｔｅｒ等が初期化される（ステップＳ１）。そして、全体制御部３４によって学習可能状態か否かが判断され、フラグＳｔｕｄｙ＿ｆｌｇが設定される（ステップＳ３）。フラグＳｔｕｄｙ＿ｆｌｇを参照し、学習可能状態であれば（ステップＳ５がＹＥＳ）、回線エコーキャンセラ１８では学習が行われ（ステップＳ７）、学習可能状態でなければ（ステップＳ５がＮＯ）、回線エコーキャンセラ１８では学習が停止される（ステップＳ９）。ついで、音声検出器３０および３２によって、それぞれ受信経路Ａおよび送信経路Ｂの有音・無音が判断され、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１およびフラグＳｐｅｅｃｈ＿ｆｌｇ＿２が設定される（ステップＳ１１）。そして、ダブルトーク検出器３６によって、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１およびフラグＳｐｅｅｃｈ＿ｆｌｇ＿２が示す音声検出結果に基づいてダブルトーク状態か否かが判断され、フラグＤｏｕｂｌｅ＿ｆｌｇが設定され（ステップＳ１３）、ステップＳ３に戻る。
【００４８】
図４を参照して、ステップＳ３の動作について説明する。
【００４９】
まず、全体制御部３４によって送信信号レベルＳｅｎｄ＿ｌｅｖが算出され（ステップＳ２１）、送信信号レベルＳｅｎｄ＿ｌｅｖ≧閾値Ｌｅａｒｎ＿ｌｅｖ＿ｔｈｌか否かが判断される（ステップＳ２３）。送信信号レベルＳｅｎｄ＿ｌｅｖ≧閾値Ｌｅａｒｎ＿ｌｅｖ＿ｔｈｌであれば、送信信号レベルＳｅｎｄ＿ｌｅｖは、回線エコーキャンセラ１８が学習可能なレベルにあると判断され、さらにフラグＤｏｕｂｌｅ＿ｆｌｇ＝１か否かが判断される（ステップＳ２５）。フラグＤｏｕｂｌｅ＿ｆｌｇ＝０であれば、ダブルトーク状態ではなく、その結果、学習可能状態である判断されフラグＳｔｕｄｙ＿ｆｌｇ＝１に設定され（ステップＳ２７）、終了する。
【００５０】
ステップＳ２３がＮＯまたはＳ２５がＹＥＳのとき、すなわち送信信号レベルＳｅｎｄ＿ｌｅｖが閾値Ｌｅａｒｎ＿ｌｅｖ＿ｔｈｌ未満であるか、またはダブルトーク状態であれば、学習不可能状態であると判断され、フラグＳｔｕｄｙ＿ｆｌｇ＝０に設定され（ステップＳ２９）、終了する。
【００５１】
ついで、図５を参照して、ステップＳ１１の動作について説明する。
【００５２】
まず、音声検出器３０では除去信号の信号レベルｉｎ＿ｌｅｖが算出され（ステップＳ３１）、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅ＜信号レベルｉｎ＿ｌｅｖか否かが判断される（ステップＳ３３）。背景ノイズ算出レベルＴｈｌ＿ｂａｓｅ＜信号レベルｉｎ＿ｌｅｖでなければ、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅ＞信号レベルｉｎ＿ｌｅｖか否かが判断される（ステップＳ３５）。背景ノイズ算出レベルＴｈｌ＿ｂａｓｅ＞信号レベルｉｎ＿ｌｅｖでなければ、すなわち背景ノイズ算出レベルＴｈｌ＿ｂａｓｅ＝信号レベルｉｎ＿ｌｅｖの場合には、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅは変更されることなく、Ｔｈｌ＿１＝Ｔｈｌ＿ｂａｓｅ×ａが算出される（ステップＳ３７）。
【００５３】
ステップＳ３３において、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅ＜信号レベルｉｎ＿ｌｅｖであれば、Ｔｈｌ＿ｂａｓｅ＝Ｔｈｌ＿ｂａｓｅ＋Ｔ＿ｕｐによって、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅを上昇し（ステップＳ３９）、ステップＳ３７へ進む。また、ステップＳ３５において、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅ＞信号レベルｉｎ＿ｌｅｖであれば、Ｔｈｌ＿ｂａｓｅ＝Ｔｈｌ＿ｂａｓｅ−Ｔ＿ｄｏｗｎによって、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅを降下し（ステップＳ４１）、ステップＳ３７へ進む。
【００５４】
このように背景ノイズ算出レベルＴｈｌ＿ｂａｓｅおよび閾値Ｔｈｌ＿１は状況に応じて調整され、最適値に設定される。閾値Ｔｈｌ＿２についても同様である。
【００５５】
ステップＳ３７の後、信号レベルｉｎ＿ｌｅｖ≧閾値Ｔｈｌ＿１か否かが判断され（ステップＳ４３）、信号レベルｉｎ＿ｌｅｖ≧閾値Ｔｈｌ＿１であれば、受信経路Ａの音声は有音であると判断され、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１＝１に設定され（ステップＳ４５）、終了する。ステップＳ４３において、信号レベルｉｎ＿ｌｅｖ≧閾値Ｔｈｌ＿１でなければ、受信経路Ａの音声は無音であると判断され、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１＝０に設定され（ステップＳ４７）、終了する。
【００５６】
また、音声検出器３２においても、図５に示す動作とほぼ同様にして、送信経路Ｂの音声の有無が検出され、フラグＳｐｅｅｃｈ＿ｆｌｇ＿２が設定される。このとき、閾値Ｔｈｌ＿１の代わりに閾値Ｔｈｌ＿２が用いられ、除去結果の信号レベルｉｎ＿ｌｅｖの代わりに、送信信号レベルＳｅｎｄ＿ｌｅｖが用いられることは容易に理解されよう。また、閾値Ｔｈｌ＿１とＴｈｌ＿２とは、それぞれ独立して設定されるため、異なる値になる場合が多い。
【００５７】
なお、修正幅Ｔ＿ｕｐ≪修正幅Ｔ＿ｄｏｗｎに設定することによって、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅの変化は、立ち上がり時定数が大きく、立ち下がり時定数が小さい特性になる。これによって、背景ノイズ算出レベルＴｈｌ＿ｂａｓｅを実際の背景ノイズレベルに近い値に保持することができる。
【００５８】
図６を参照して、ステップＳ１３の動作を説明する。
【００５９】
まず、音声検出器３２の音声検出結果を示すフラグＳｐｅｅｃｈ＿ｆｌｇ＿２＝１か否かが判断され（ステップＳ５１）、フラグＳｐｅｅｃｈ＿ｆｌｇ＿２＝１であれば、音声検出器３０の音声検出結果を示すフラグＳｐｅｅｃｈ＿ｆｌｇ＿１＝１か否かが判断され（ステップＳ５３）、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１＝１であれば、不定状態の継続時間を示すカウント値Ｃｏｕｎｔｅｒがインクリメントされ（ステップＳ５５）、Ｃｏｕｎｔｅｒ≧Ｎか否かが判断される（ステップＳ５７）。Ｃｏｕｎｔｅｒ≧Ｎであればダブルトーク状態であると判断され、フラグＤｏｕｂｌｅ＿ｆｌｇ＝１に設定され（ステップＳ５９）、終了する。なお、不定状態継続時間Ｎの値は、回線エコーキャンセラ１８の学習速度を考慮して設定される。
【００６０】
ステップＳ５７において、Ｃｏｕｎｔｅｒ≧Ｎでなければ、受信経路Ａおよび送信経路Ｂはともに有音であるがその継続時間が短いためにまだダブルトーク状態とは判断できず、たとえばエコーパスの変動などの不定状態であると判断され、フラグＤｏｕｂｌｅ＿ｆｌｇ＝０に設定され（ステップＳ６１）、終了する。
【００６１】
一方、ステップＳ５１において、フラグＳｐｅｅｃｈ＿ｆｌｇ＿２＝１でないとき、またはステップＳ５３において、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１＝１でないときには、ダブルトーク状態ではなくシングルトーク状態と判断され、カウント値ＣｏｕｎｔｅｒおよびフラグＤｏｕｂｌｅ＿ｆｌｇはともにクリア（Ｃｏｕｎｔｅｒ＝０、Ｄｏｕｂｌｅ＿ｆｌｇ＝０）され（ステップＳ６３）、終了する。
【００６２】
たとえば、回線エコーキャンセラ１８の学習が収束した時点では、たとえば近端話者が話した場合、音声検出器３２は音声を検出するが、回線エコーは回線エコーキャンセラ１８によって除去されるので音声検出器３０は音声を検出しない。もし、音声検出器３０も音声を検出していれば、ダブルトーク状態と判断することができる。
【００６３】
図３〜図６に示すように動作するエコー除去装置１０では、遠端話者からの通話音声が入力されると、音声検出器３０は音声を検出する。
【００６４】
また、近端話者からの通話音声が出力されると、その回線エコーが戻ってくるが、回線エコーキャンセラ１８が十分なエコー除去を行っていれば、音声検出器３０は音声を検出しない。
【００６５】
レベルの小さい遠端話者音声によるダブルトークが発生した場合には、回線エコーキャンセラ１８での適応フィルタ係数が崩れ、除去誤差が増加する。その結果、音声検出器３０は遠端話者音声、もしくは近端話者音声のエコーを検出する。
【００６６】
さらにレベルの小さい遠端話者音声によるダブルトークが発生した場合で、回線エコーキャンセラ１８での適応フィルタ係数の崩れが小さい場合には、除去誤差は増加しない。この場合、音声検出器３０は音声を検出しなくなるが、回線エコーキャンセラ１８での適応フィルタ係数の崩れが小さいため、問題とならない。
【００６７】
したがって、回線エコーキャンセラ１８の学習に影響を及ぼすダブルトークについては、入力レベルが小さくても精度よく検出することが可能となる。
【００６８】
また、エコー除去装置１０によれば、音声の入出力レベルに依存することなく、しかも音声検出器３０の音声検出結果だけではなく音声検出器３２の音声検出結果をも考慮してダブルトーク検出器３６がダブルトーク状態の検出を行う。したがって、ダブルトーク検出が送信信号レベルＳｅｎｄ＿ｌｅｖや受信信号のレベルの変動等に影響されることはなく、ダブルトーク状態の検出精度を向上でき、回線エコーキャンセラ１８のエコーキャンセル動作を安定化できる。
【００６９】
さらに、音声検出器３０および３２のように閾値Ｔｈｌ＿１およびＴｈｌ＿２をそれぞれ背景ノイズレベルに自動的に追従させることによって、ノイズによる誤動作を防ぐことができ、さらにダブルトーク状態の検出精度を向上できる。この場合、ノイズレベルが大きくなると、それに伴って閾値Ｔｈｌ＿１およびＴｈｌ＿２が大きくなり、ダブルトーク状態の検出精度が劣化するように思えるが、回線エコーキャンセラ１８は入力信号のＳ／Ｎ比以上にエコーを除去することができないことを考慮すると、何ら問題とはならない。
【００７０】
また、ダブルトーク発生時には学習を停止し、エコーパスの変動時には学習を継続するという、全く異なる制御を行う必要があるが、両者はともに、回線エコーキャンセラ１８でのエコー除去精度を劣化させるため、両者の区別は難しい。
【００７１】
しかし、エコー除去装置１０によれば、音声検出器３０および３２での音声検出結果がともに有音と判断された場合であっても、一定時間は学習を継続し、有音の継続時間をカウントして、その継続時間が不定状態継続時間Ｎ以上になればダブルトーク状態、不定状態継続時間Ｎに達する前に音声検出器３０または３２のいずれか一方の音声検出結果が無音になればエコーパスの変動と、それぞれ判断することによって、ダブルトークの発生およびエコーバスの変動を検出でき、それぞれに応じた制御が可能となる。このように、エコーパスの変動を考慮に入れた制御が可能となる。
【００７２】
図７にエコー除去装置１０による検出結果の一例を示す。
【００７３】
送信信号および受信信号が、それぞれ図７（ａ）および（ｂ）に示すものである場合、音声検出器３２によって検出される送信信号の音声検出結果は図７（ｃ）に示すようになり、音声検出器３０によって検出される受信信号の音声検出結果は図７（ｄ）に示すようになる。
【００７４】
その結果、ダブルトーク検出器３６によるダブルトーク検出結果は、図７（ｅ）に示すようになり、ダブルトーク区間を精度よく検出できることがわかる。
【００７５】
ついで、図８に、この発明の他の実施の形態のエコー除去装置１０ａの機能ブロック図を示す。
【００７６】
エコー除去装置１０ａも、図１に示すＤＳＰ１２、ＲＯＭ１４、ＲＡＭ１６を用いて構成される。
【００７７】
この場合、ＤＳＰ１２には、さらに不定状態を示すフラグＣｈｅｃｋ＿ｆｌｇ（０：不定時ではない、１：不定時）が格納される。なお、ＤＳＰ１２に格納されるフラグＳｐｅｅｃｈ＿ｆｌｇ＿１は音声検出器７２の音声検出結果を、フラグＳｐｅｅｃｈ＿ｆｌｇ＿２は音声検出器７４の音声検出結果を、それぞれ示す。ＲＯＭ１４には、適応フィルタ係数のバックアップをするための閾値Ｍが、ＲＡＭ１６には、適応フィルタ係数のバックアップのためのカウント値Ｂａｃｋ＿ｃｎｔ等が、さらに格納される。
【００７８】
エコー除去装置１０ａは回線側エコーキャンセラ３９および音響側エコーキャンセラ４３を用いてフルデュプレクスエコーキャンセラとして構成され、回線側エコーキャンセラ３９は回線側学習・除去用エコーキャンセラ４０と回線側除去用エコーキャンセラ４２とを含み、音響側エコーキャンセラ４３は音響側学習・除去用エコーキャンセラ４４と音響側除去用エコーキャンセラ４６とを含む。
【００７９】
回線側学習・除去用エコーキャンセラ４０および回線側除去用エコーキャンセラ４２は、たとえば図９に示すように構成される。
【００８０】
回線側学習・除去用エコーキャンセラ４０は、参照入力信号バッファ４８を含む。参照入力信号バッファ４８には、音響側学習・除去用エコーキャンセラ４４または音響側除去用エコーキャンセラ４６からの除去結果として得られた参照入力信号Ｘが入力され、参照入力信号Ｘは所定のタイミングで積和演算部５０および係数更新部５２に与えられる。積和演算部５０では、参照入力信号ＸとたとえばＦＩＲフィルタ（有限インパルス応答フィルタ）からなる適応フィルタ５４内の適応フィルタ係数とに基づいて、擬似エコー信号Ｙ１が算出される。そして、減算器５６において、Ａ／Ｄ変換器２４からの信号ｙ（ハイブリッド回路５７を介する受信信号＋回線エコーをディジタル化した信号）から擬似エコー信号Ｙ１が減算され、その除去結果が出力される。係数更新部５２では、参照入力信号Ｘ、適応フィルタ係数、除去結果に基づいて、適応フィルタ係数が更新される。
【００８１】
このように、回線側学習・除去用エコーキャンセラ４０は、適応フィルタ係数の更新すなわち学習を行いながらエコーの除去も行う。
【００８２】
具体的には、回線側学習・除去用エコーキャンセラ４０は、シングルトーク状態においては、学習を行い、かつ回線側除去用エコーキャンセラ４２のバックアップ部６２（後述）に適応フィルタ係数を定期的にバックアップする。
【００８３】
不定状態においては、学習は継続するが、適応フィルタ係数のバックアップは行わない。
【００８４】
ダブルトーク状態においては、学習を停止する。また、既に適応フィルタ係数が崩れているため、バックアップ部６２にバックアップされていた適応フィルタ係数を適応フィルタ５４に復帰させる。
【００８５】
また、回線側除去用エコーキャンセラ４２は、参照入力信号バッファ５８を含む。参照入力信号バッファ５８には、参照入力信号バッファ４８と同様、参照入力信号Ｘが入力され、参照入力信号Ｘは所定のタイミングで積和演算部６０に与えられる。また、適応フィルタ係数のバックアップ部６２には、回線側学習・除去用エコーキャンセラ４０の適応フィルタ５４内の適応フィルタ係数がバックアップされ、その適応フィルタ係数は積和演算部６０に与えられる。
【００８６】
積和演算部６０では、参照入力信号Ｘと適応フィルタ係数とに基づいて、擬似エコー信号Ｙ２が算出される。そして、減算器６４において、Ａ／Ｄ変換器２４からの信号ｙから擬似エコー信号Ｙ２が減算され、その除去結果が出力される。
【００８７】
なお、適応フィルタ係数はシングルトーク時にバックアップ部６２へバックアップされ、一方、送信信号レベルＳｅｎｄ＿ｌｅｖが学習可能なレベルではないとき、またはダブルトーク状態のとき、バックアップ部６２にバックアップされている適応フィルタ係数は適応フィルタ５４へ復帰され、積和演算部５０での積和演算および係数更新部５２での適応フィルタ係数の更新に用いられる。
【００８８】
このように、回線側除去用エコーキャンセラ４２は、学習を行わず、バックアップされた適応フィルタ係数を用いてエコーの除去のみを行う。
【００８９】
音響側学習・除去用エコーキャンセラ４４および音響側除去用エコーキャンセラ４６は、それぞれ回線側学習・除去用エコーキャンセラ４０および回線側除去用エコーキャンセラ４２と同様に構成されるので、その重複する説明は省略する。
【００９０】
そして、全体制御部６６によってスイッチ６８および７０の動作が制御される。シングルトーク状態のときには、学習を行いながらエコー除去を行う回線側学習・除去用エコーキャンセラ４０および音響側学習・除去用エコーキャンセラ４４の方が、それぞれエコー除去性能が高いため、回線側学習・除去用エコーキャンセラ４０および音響側学習・除去用エコーキャンセラ４４が選択される。シングルトーク状態以外のときには、回線側学習・除去用エコーキャンセラ４０および音響側学習・除去用エコーキャンセラ４４からの除去結果はそれぞれ劣化している可能性が高いため、回線側除去用エコーキャンセラ４２および音響側除去用エコーキャンセラ４６が選択される。
【００９１】
ここで、回線側エコーキャンセラ３９では、選択されたエコーキャンセラ（４０または４２）による除去結果の信号レベルｉｎ＿ｌｅｖが全体制御部６６に与えられて、音響側学習・除去用エコーキャンセラ４４が学習可能であるかが判断され、また、除去結果をサンプリングした参照入力信号Ｘが音響側学習・除去用エコーキャンセラ４４に与えられるとともに、除去結果はＤ／Ａ変換器２６によってアナログ変換された後、スピーカ出力信号としてスピーカ２８から出力される。
【００９２】
同様に、音響側エコーキャンセラ４３では、選択されたエコーキャンセラ（４４または４６）による除去結果の信号レベルｉｎ＿ｌｅｖが全体制御部６６に与えられて、回線側学習・除去用エコーキャンセラ４０が学習可能であるかが判断され、また、除去結果をサンプリングした参照入力信号Ｘが回線側学習・除去用エコーキャンセラ４０に与えられるとともに、除去結果はＤ／Ａ変換器３８によってアナログ変換された後、回線出力信号として出力される。
【００９３】
また、音声検出器７２では、回線側学習・除去用エコーキャンセラ４０による除去結果の信号レベルｉｎ＿ｌｅｖが算出され、先の実施の形態と同様に信号レベルｉｎ＿ｌｅｖと閾値Ｔｈｌ＿１との比較に基づいて受信経路Ａの有音・無音が検出される。音声検出器７４においても同様に、音響側学習・除去用エコーキャンセラ４４による除去結果の信号レベルｉｎ＿ｌｅｖと閾値Ｔｈｌ＿２との比較に基づいて送信経路Ｂの有音・無音が検出される。このように、回線側学習・除去用エコーキャンセラ４０および音響側学習・除去用エコーキャンセラ４４からの出力結果を用いてダブルトーク状態の検出を行うことによって、ダブルトーク状態の検出精度を上げることができる。
【００９４】
音声検出器７２および７４のそれぞれの音声検出結果はダブルトーク検出器７６に与えられ、ダブルトーク検出器７６では、それらの音声検出結果に基づいてダブルトーク状態か否かが検出され、ダブルトーク検出結果が全体制御部６６へ与えられる。
【００９５】
全体制御部６６は、回線側エコーキャンセラ３９については、送信信号レベルＳｅｎｄ＿ｌｅｖが学習可能なレベルであるか否かの判断結果、およびダブルトーク検出結果に基づいて、スイッチ６８を制御するとともに、回線側学習・除去用エコーキャンセラ４０の学習動作を制御し、回線側学習・除去用エコーキャンセラ４０の適応フィルタ５４に適応フィルタ係数を復帰させるか否かを判断する。音響側エコーキャンセラ４３についても、同様に、全体制御部６６は、スイッチ７０を制御するとともに、音響側学習・除去用エコーキャンセラ４４の学習動作を制御し、音響側学習・除去用エコーキャンセラ４４の適応フィルタ（図示せず）に適応フィルタ係数を復帰させるか否かを判断する。
【００９６】
図１０〜図１２を参照して、エコー除去装置１０ａの動作を説明する。
【００９７】
図１０には、エコー除去装置１０ａの回線側エコーキャンセラ３９についての全体動作を示す。
【００９８】
図１０を参照して、まず、ＲＡＭ１６に格納される送信信号レベルＳｅｎｄ＿ｌｅｖ、閾値Ｔｈｌ＿１，Ｔｈｌ＿２、除去結果の信号レベルｉｎ＿ｌｅｖ、不定状態の継続時間を示すカウント値Ｃｏｕｎｔｅｒ、適応フィルタ係数のバックアップのためのカウント値Ｂａｃｋ＿ｃｎｔ等が初期化される（ステップＳ１０１）。そして、全体制御部６６によって回線側エコーキャンセラ３９の動作が決定され、フラグＳｔｕｄｙ＿ｆｌｇ等が設定される（ステップＳ１０３）、フラグＳｔｕｄｙ＿ｆｌｇを参照し、学習可能状態であれば（ステップＳ１０５がＹＥＳ）、回線側学習・除去用エコーキャンセラ４０では学習が行われ（ステップＳ１０７）、学習可能状態でなければ（ステップＳ１０５がＮＯ）、回線側学習・除去用エコーキャンセラ４０では学習が停止される（ステップＳ１０９）。また、フラグＤｏｕｂｌｅ＿ｆｌｇおよびフラグＣｈｅｃｋ＿ｆｌｇに基づいて、スイッチ６８の動作が制御され、シングルトーク状態であればスイッチ６８は回線側学習・除去用エコーキャンセラ４０を選択し、シングルトーク状態以外すなわちダブルトーク状態、不定状態、または学習可能なレベルに送信信号レベルＳｅｎｄ＿ｌｅｖがないときには、スイッチ６８は回線側除去用エコーキャンセラ４２を選択する。さらに、ダブルトーク状態、または学習可能なレベルに送信信号レベルＳｅｎｄ＿ｌｅｖがないときには、バックアップ部６２内の適応フィルタ係数が適応フィルタ５４に復帰される。
【００９９】
ついで、音声検出器７２および７４によって、それぞれ受信経路Ａおよび送信経路Ｂの有音・無音が判断され、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１およびフラグＳｐｅｅｃｈ＿ｆｌｇ＿２が設定される（ステップＳ１１１）。そして、ダブルトーク検出器７６によって、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１およびフラグＳｐｅｅｃｈ＿ｆｌｇ＿２が示す音声検出結果に基づいてダブルトーク状態か否かが判断され、フラグＤｏｕｂｌｅ＿ｆｌｇが設定され（ステップＳ１１３）、ステップＳ１０３に戻る。
【０１００】
音響側エコーキャンセラ４３についても同様の処理によって制御されるので、重複する説明は省略する。
【０１０１】
図１１を参照して、ステップＳ１０３の動作について説明する。
【０１０２】
まず、全体制御部６６によって送信信号レベルＳｅｎｄ＿ｌｅｖが算出され（ステップＳ１２１）、送信信号レベルＳｅｎｄ＿ｌｅｖ≧閾値Ｌｅａｒｎ＿ｌｅｖ＿ｔｈｌか否かが判断される（ステップＳ１２３）。送信信号レベルＳｅｎｄ＿ｌｅｖ≧閾値Ｌｅａｒｎ＿ｌｅｖ＿ｔｈｌであれば、送信信号レベルＳｅｎｄ＿ｌｅｖは、回線側学習・除去用エコーキャンセラ４０が学習可能なレベルにあると判断され、さらにフラグＤｏｕｂｌｅ＿ｆｌｇ＝１か否かが判断される（ステップＳ１２５）。
【０１０３】
フラグＤｏｕｂｌｅ＿ｆｌｇ＝１であればダブルトーク状態であると判断され、ステップＳ１２７へ進む。また、ステップＳ１２３において、送信信号レベルＳｅｎｄ＿ｌｅｖ≧閾値Ｌｅａｒｎ＿ｌｅｖ＿ｔｈｌでないときにもステップＳ１２７に進む。
【０１０４】
これらの場合には回線側学習・除去用エコーキャンセラ４０は学習不可能状態であるので、適応フィルタ係数のバックアップのためのカウント値Ｂａｃｋ＿ｃｎｔ＝０、学習状態を示すフラグＳｔｕｄｙ＿ｆｌｇ＝０に設定された（ステップＳ１２７）後、回線側除去用エコーキャンセラ４２にバックアップされていた適応フィルタ係数が回線側学習・除去用エコーキャンセラ４０へ復帰され（ステップＳ１２９）、スイッチ６８が回線側除去用エコーキャンセラ４２を選択することによって、回線側除去用エコーキャンセラ４２での除去結果が出力され（ステップＳ１３１）、ステップＳ１２１へ戻る。したがって、ダブルトーク状態、または送信信号レベルＳｅｎｄ＿ｌｅｖは回線側学習・除去用エコーキャンセラ４０が学習可能なレベルにないと判断された場合には、回線側学習・除去用エコーキャンセラ４０での学習が停止されるとともに、スイッチ６８は回線側除去用エコーキャンセラ４２からの除去結果を選択する。
【０１０５】
ステップＳ１２５において、フラグＤｏｕｂｌｅ＿ｆｌｇ＝０であれば、不定状態を示すフラグＣｈｅｃｋ＿ｆｌｇ＝１か否かが判断される（ステップＳ１３３）。フラグＣｈｅｃｋ＿ｆｌｇ＝１であれば、不定状態であるので、カウント値Ｂａｃｋ＿ｃｎｔ＝０、フラグＳｔｕｄｙ＿ｆｌｇ＝１に設定されて（ステップＳ１３５）、ステップＳ１３１に進む。したがって、不定状態のときには、スイッチ６８は回線側除去用エコーキャンセラ４２からの除去結果を選択するが、回線側学習・除去用エコーキャンセラ４０での学習を行うことによって、学習の効率化を図っている。
【０１０６】
一方、ステップＳ１３３において、フラグＣｈｅｃｋ＿ｆｌｇ＝０であれば、シングルトーク状態であると判断され、カウント値Ｂａｃｋ＿ｃｎｔがインクリメントされ（ステップＳ１３７）、カウント値Ｂａｃｋ＿ｃｎｔ≧Ｍか否かが判断される（ステップＳ１３９）。カウント値Ｂａｃｋ＿ｃｎｔ≧Ｍであれば、回線側学習・除去用エコーキャンセラ４０での適応フィルタ係数が回線側除去用エコーキャンセラ４２にバックアップされ（ステップＳ１４１）、カウント値Ｂａｃｋ＿ｃｎｔ＝０に設定された（ステップＳ１４３）後、フラグＳｔｕｄｙ＿ｆｌｇ＝１に設定されて（ステップＳ１４５）、回線側学習・除去用エコーキャンセラ４０での除去結果が出力され（ステップＳ１４７）、ステップＳ１２１に戻る。ステップＳ１３９において、カウント値Ｂａｃｋ＿ｃｎｔ≧Ｍでなければ、ステップＳ１４５に進む。
【０１０７】
したがって、シングルトーク状態のときには、回線側学習・除去用エコーキャンセラ４０での学習が行われ、かつスイッチ６８は回線側学習・除去用エコーキャンセラ４０による除去結果を選択し、さらに、シングルトーク状態になって所定時間経過すれば適応フィルタ係数をバックアップする。
【０１０８】
なお、音響側エコーキャンセラ４３についても同様の処理によって制御されるので、その重複する説明は省略する。
【０１０９】
ついで、図１２を参照して、ステップＳ１１３の動作について説明する。
【０１１０】
まず、音声検出器７４の音声検出結果を示すフラグＳｐｅｅｃｈ＿ｆｌｇ＿２＝１か否かが判断され（ステップＳ１５１）、フラグＳｐｅｅｃｈ＿ｆｌｇ＿２＝１であれば、音声検出器７２の音声検出結果を示すフラグＳｐｅｅｃｈ＿ｆｌｇ＿１＝１か否かが判断され（ステップＳ１５３）、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１＝１であれば、不定状態の継続時間を示すカウント値Ｃｏｕｎｔｅｒがインクリメントされ（ステップＳ１５５）、Ｃｏｕｎｔｅｒ≧Ｎか否かが判断される（ステップＳ１５７）。Ｃｏｕｎｔｅｒ≧Ｎであればダブルトーク状態であると判断され、フラグＣｈｅｃｋ＿ｆｌｇ＝０、フラグＤｏｕｂｌｅ＿ｆｌｇ＝１に設定され（ステップＳ１５９）、終了する。なお、不定状態継続時間Ｎの値は、回線側学習・除去用エコーキャンセラ４０の学習速度を考慮して設定される。
【０１１１】
ステップＳ１５７において、Ｃｏｕｎｔｅｒ≧Ｎでなければ、先の実施の形態と同様に不定状態であると判断され、フラグＣｈｅｃｋ＿ｆｌｇ＝１、フラグＤｏｕｂｌｅ＿ｆｌｇ＝０に設定され（ステップＳ１６１）、終了する。
【０１１２】
一方、ステップＳ１５１において、フラグＳｐｅｅｃｈ＿ｆｌｇ＿２＝１でないとき、またはステップＳ１５３において、フラグＳｐｅｅｃｈ＿ｆｌｇ＿１＝１でないときには、ダブルトーク状態ではなくシングルトーク状態であると判断され、カウント値Ｃｏｕｎｔｅｒ、フラグＣｈｅｃｋ＿ｆｌｇおよびフラグＤｏｕｂｌｅ＿ｆｌｇはそれぞれクリア（Ｃｏｕｎｔｅｒ＝０、Ｃｈｅｃｋ＿ｆｌｇ＝０、Ｄｏｕｂｌｅ＿ｆｌｇ＝０）され（ステップＳ１６３）、終了する。
【０１１３】
なお、ステップＳ１１１の動作については、図５と同様であるので、その重複する説明は省略する。
【０１１４】
エコー除去装置１０ａによれば、エコー除去装置１０と同様の効果が得られ、エコー除去装置１０ａによる検出結果も、図７に示すようになり、ダブルトーク状態を精度よく検出できることがわかる。
【０１１５】
さらに、ダブルトーク区間中に学習を継続した場合、その適応フィルタ係数の崩れによって異音が発生するが、エコー除去装置１０ａでは、ダブルトークの可能性がある場合の除去動作を、バックアップした適応フィルタ係数を用いて回線側除去用エコーキャンセラ４２および音響側除去用エコーキャンセラ４６で行うことによって、そのような弊害を取り除くことができる。
【０１１６】
また、エコー除去装置１０ａは、ハーフデュプレクスにおいても、ダブルトーク状態を精度よく検出できる。
【０１１７】
なお、図２に示すエコー除去装置１０では、回線エコーキャンセラ１８を含む場合について述べたが、これに限定されず、音響エコーキャンセラを含むものであってもよい。
【０１１８】
ＤＳＰ１２の代わりにＣＰＵを用いてもよいことはいうまでもない。
【０１１９】
【発明の効果】
この発明によれば、送信信号や受信信号のレベルの変動等に影響されることはなく、ダブルトーク状態の検出精度を向上でき、エコーキャンセル動作を安定化できる。
【図面の簡単な説明】
【図１】この発明の一実施形態を示すブロック図である。
【図２】図１の実施形態を示す機能ブロック図である。
【図３】この発明の実施の形態の全体動作の一例を示すフロー図である。
【図４】図３のステップＳ３の動作の一例を示すフロー図である。
【図５】図３のステップＳ１１の動作の一例を示すフロー図である。
【図６】図３のステップＳ１３の動作の一例を示すフロー図である。
【図７】図１に示す実施の形態の検出結果を示す波形図である。
【図８】この発明の他の実施形態を示す機能ブロック図である。
【図９】図８に示す回線側学習・除去用エコーキャンセラおよび回線側除去用エコーキャンセラの構成を示す機能ブロック図である。
【図１０】図８に示す実施の形態の回線側のエコーキャンセラの全体動作の一例を示すフロー図である。
【図１１】図１０のステップＳ１０３の動作の一例を示すフロー図である。
【図１２】図１０のステップＳ１１３の動作の一例を示すフロー図である。
【図１３】従来技術の一例を示すブロック図である。
【符号の説明】
１０、１０ａ      エコー除去装置
１２      ＤＳＰ
１４      ＲＯＭ
１６      ＲＡＭ
１８      回線エコーキャンセラ
３０、３２、７２、７４      音声検出器
３４、６６      全体制御部
３６、７６      ダブルトーク検出器
３９      回線側エコーキャンセラ
４０      回線側学習・除去用エコーキャンセラ
４２      回線側除去用エコーキャンセラ
４３      音響側エコーキャンセラ
４４      音響側学習・除去用エコーキャンセラ
４６      音響側除去用エコーキャンセラ
５４      適応フィルタ
６２      バックアップ部
【図１】
0003579245.tif 000002
【図２】
0003579245.tif 000003
【図３】
0003579245.tif 000004
【図４】
0003579245.tif 000005
【図５】
0003579245.tif 000006
【図６】
0003579245.tif 000007
【図７】
0003579245.tif 000008
【図８】
0003579245.tif 000009
【図９】
0003579245.tif 000010
【図１０】
0003579245.tif 000011
【図１１】
0003579245.tif 000012
【図１２】
0003579245.tif 000013
【図１３】
0003579245.tif 000014