(57)【要約】【課題】通話装置におけるマイク入力音がダブルトークの状態であるか否かを効率よく、かつ正しく判定する。【解決手段】通話装置は、受話音加工部と、成分抽出部と、伝達特性学習部と、判定部と、を備える。受話音加工部は、外部装置から受信した受話音声における所定の周波数帯の成分を除去してレシーバに出力する。成分抽出部は、マイクロフォンから入力された入力音声における所定の周波数帯の成分を抽出する。伝達特性学習部は、受話音声と、入力音声とに基づいてレシーバからマイクロフォンに至るエコー経路の伝達特性を学習する。判定部は、入力音声から抽出した所定の周波数帯の成分の大きさが閾値以下である場合に、伝達特性学習部に伝達特性を学習させる。【選択図】図１
2018110301.tif 000002
【特許請求の範囲】
【請求項１】
外部装置から受信した受話音声における所定の周波数帯の成分を除去してレシーバに出力する受話音加工部と、
マイクロフォンから入力された入力音声における前記所定の周波数帯の成分を抽出する成分抽出部と、
前記受話音声と、前記入力音声とに基づいて前記レシーバから前記マイクロフォンに至るエコー経路の伝達特性を学習する伝達特性学習部と、
前記入力音声から抽出した前記所定の周波数帯の成分の大きさが閾値以下である場合に、前記伝達特性学習部に前記伝達特性を学習させる判定部と、
を備えることを特徴とする通話装置。
【請求項２】
前記通話装置は、前記受話音声についての周波数スペクトルにおいてピークとなる周波数帯の成分に基づいて前記所定の周波数帯を決定する周波数決定部、を更に備える、
ことを特徴とする請求項１に記載の通話装置。
【請求項３】
前記周波数決定部は、１つの周波数スペクトルにおいてピークとなる周波数帯からの周波数差と、前記ピークとなる周波数帯の成分によりマスクされる最大音量との関係に基づいて、前記周波数スペクトルにおける成分の大きさが前記最大音量よりも小さい周波数帯を、前記所定の周波数帯に決定する、
ことを特徴とする請求項２に記載の通話装置。
【請求項４】
前記周波数決定部は、時間方向で連続する複数の前記周波数スペクトルにおける周波数帯のなかから、成分の大きさの時間変化においてピークとなる時刻からの時間差と、前記ピークとなる時刻の成分によりマスクされる最大音量との関係に基づいて、現在の前記周波数スペクトルにおける成分の大きさが前記最大音量よりも小さい周波数帯を抽出し、抽出した前記周波数帯のなかから前記所定の周波数帯を決定する、
ことを特徴とする請求項３に記載の通話装置。
【請求項５】
前記周波数決定部は、現在の前記周波数スペクトルにおける成分の大きさが前記最大音量よりも小さい複数の前記周波数帯のうちの、前記最大音量との差が最大となる周波数帯を、前記所定の周波数帯に決定する、
ことを特徴とする請求項４に記載の通話装置。
【請求項６】
外部装置から受信した受話音声における所定の周波数帯の成分を除去してレシーバに出力し、
マイクロフォンから入力された入力音声における前記所定の周波数帯の成分を抽出し、
前記入力音声から抽出した前記所定の周波数帯の成分の大きさが閾値以下である場合に、前記受話音声と、前記入力音声とに基づいて前記レシーバから前記マイクロフォンに至るエコー経路の伝達特性を学習し、
前記伝達特性に基づいて前記入力音声に含まれるエコー成分を抑圧する、
処理をコンピュータに実行させることを特徴とするエコー抑圧プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通話装置、及びエコー抑圧プログラムに関する。
【背景技術】
【０００２】
移動端末等の通話装置には、自装置のマイクロフォンから入力されたマイク入力音に含まれるエコー成分を抑圧し、当該エコー成分を抑圧した入力音を他の通話装置に送信するものがある。ここで、エコー成分は、マイク入力音における、自装置のレシーバから出力された受話音の成分である。
【０００３】
この種の通話装置では、通話中に受話音とマイク入力音とに基づいてエコー経路の伝達特性を学習し、当該伝達特性に基づいてマイク入力音に含まれるエコー成分を抑圧する。ただし、伝達特性を学習する際に、マイク入力音に受話音以外の音声成分が含まれるダブルトークの状態であると、誤った伝達係数を学習してしまい、エコー成分を正しく抑圧することが困難となる。このため、エコー成分を抑圧する通話装置では、マイク入力音がダブルトークの状態ではない場合にのみ、受話音とマイク入力音とに基づいて伝達特性を学習してエコー成分を抑圧する。
【０００４】
マイク入力音がダブルトークの状態であるか否かを判定する方法の１つとして、カメラで利用者の口の動きをとらえて判定する方法がある（例えば、特許文献１を参照）。
【０００５】
また、マイク入力音がダブルトークの状態であるか否かを判定する別の方法として、音声出力信号と音声入力信号との音量比に基づいて、判定する方法がある（例えば、特許文献２を参照）。
【０００６】
更に、受話信号から特定周波数の成分を除去した信号をエコー経路に出力し、送話信号から検出した特定周波数と同じ周波数の成分を利用して、エコー成分を抑圧する制御パラメータを求める方法がある（例えば、特許文献３を参照）。この方法では、送話信号から検出された特定周波数成分のパワーに基づきノイズパワーを求め、エコー成分を含む周波数成分のパワーに基づきノイズ及びエコー成分を含む合算パワーを求めた後、該ノイズパワーと合算パワーとを用いて、制御パラメータを求める。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−２９５３３８号公報
【特許文献２】特開２００７−０５３５１２号公報
【特許文献３】特開２０１１−１３０１７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
カメラで利用者の口の動きをとらえる場合、当該カメラの撮像範囲内に利用者の口がないと、ダブルトークの状態であるか否かを正しく判定することができない。また、音声出力信号と音声入力信号との音量比によってダブルトークの状態であるか否かを検出する場合、音声入力信号に含まれる利用者の音声や周囲の雑音のレベルが小さいと、ダブルトークの状態であるか否かを正しく判定することができない。更に、送話信号から検出された特定周波数成分のパワーに基づいて求めたノイズパワーと、エコー成分を含む周波数成分のパワーに基づいて求めた合算パワーとを用いて制御パラメータを求める場合、処理負荷が増大する。
【０００９】
１つの側面において、本発明は、通話装置におけるマイク入力音がダブルトークの状態であるか否かを効率よく、かつ正しく判定することを目的とする。
【課題を解決するための手段】
【００１０】
１つの態様の通話装置は、受話音加工部と、成分抽出部と、伝達特性学習部と、判定部と、を備える。受話音加工部は、外部装置から受信した受話音声における所定の周波数帯の成分を除去してレシーバに出力する。成分抽出部は、マイクロフォンから入力された入力音声における所定の周波数帯の成分を抽出する。伝達特性学習部は、受話音声と、入力音声とに基づいてレシーバからマイクロフォンに至るエコー経路の伝達特性を学習する。判定部は、入力音声から抽出した所定の周波数帯の成分の大きさが閾値以下である場合に、伝達特性学習部に伝達特性を学習させる。
【発明の効果】
【００１１】
上述の態様によれば、通話装置におけるマイク入力音がダブルトークの状態であるか否かを効率よく、かつ正しく判定することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】一実施形態に係る通話装置の機能的構成を示す図である。
【図２】マスク情報を説明するグラフ図である。
【図３】一実施形態に係る通話装置が行う処理を説明するフローチャートである。
【図４】受話音のフレームを周波数分析する処理の内容を説明するフローチャートである。
【図５】受話音から除去するマスク周波数を決定する処理の内容を説明するフローチャートである。
【図６Ａ】第１のマスク周波数を算出する処理の内容を説明するフローチャート（その１）である。
【図６Ｂ】第１のマスク周波数を算出する処理の内容を説明するフローチャート（その２）である。
【図７】第１のマスク周波数の算出方法を説明するグラフ図である。
【図８Ａ】第２のマスク周波数を算出する処理の内容を説明するフローチャート（その１）である。
【図８Ｂ】第２のマスク周波数を算出する処理の内容を説明するフローチャート（その２）である。
【図９】第２のマスク周波数の算出方法を説明するグラフ図である。
【図１０】マスク周波数の成分を受話音から除去して出力する処理の内容を説明するフローチャートである。
【図１１】ダブルトークであるか否かを判定する処理の内容を説明するフローチャートである。
【図１２】移動端末のハードウェア構成を示す図である。
【図１３】コンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１３】
図１は、一実施形態に係る通話装置の機能的構成を示す図である。
図１に示すように、本実施形態に係る通話装置１は、送受信部１１０と、受話音分析部１２０と、マスク周波数決定部１３０と、受話音加工部１４０と、成分抽出部１５０と、ダブルトーク判定部１６０と、入力音加工部１７０と、を備える。また、通話装置１は、マスク情報記憶部１９１と、分析結果保持部１９２と、伝達特性記憶部１９３と、を備える。更に、通話装置１は、レシーバ２と、マイクロフォン３と、を備える。
【００１４】
送受信部１１０は、他の通話装置４からの音声信号（受話音）を受信するとともに、マイクロフォン３で収音して取得した音声信号（マイク入力音）に含まれるエコー成分を抑圧した音声信号を他の通話装置４に送信する。エコー成分は、マイク入力音に含まれる、レシーバ２から出力された音の成分である。なお、本明細書では、他の通話装置4から受信した受話音（音声信号）を音波として通話装置１の外部に出力するものとしてレシーバ２を挙げるが、通話装置１は、レシーバ２の代わりに、スピーカ等のレシーバ２と同等の機能を持つものを備えていてもよい。
【００１５】
受話音分析部１２０は、他の通話装置４から受信した受話音に対する周波数分析を行い、周波数のピークを算出する。
【００１６】
マスク周波数決定部１３０は、受話音に対する周波数分析の結果に基づいて、受話音から除去する周波数（マスク周波数）を算出する。マスク周波数は、受話音における他の周波数成分によりマスクされるため、受話音から除去しても知覚に影響を与えない成分の周波数とする。マスク周波数決定部１３０は、マスク情報記憶部１９１に記憶させたマスク情報と、分析結果保持部１９２で保持している周波数分析の結果とに基づいて、マスク周波数を算出する。
【００１７】
受話音加工部１４０は、受話音に含まれるマスク周波数の成分を除去した加工受話音を生成する。受話音加工部１４０は、生成した加工受話音をレシーバ２に出力するとともに、マスク周波数を示す情報を成分抽出部１５０に出力する。
【００１８】
成分抽出部１５０は、マイクロフォン３から取得したマイク入力音に含まれるマスク周波数の成分を抽出する。
【００１９】
ダブルトーク判定部１６０は、マイク入力音から抽出した周波数成分に基づいて、ダブルトークの状態であるか否かを判定する。ダブルトークの状態は、通話装置１のマイクロフォン３に向かって発話する利用者の音声や通話装置１の周囲で発生している雑音がマイク入力音に含まれる状態である。
【００２０】
入力音加工部１７０は、ダブルトーク判定部１６０の判定結果と、レシーバ２からマイクロフォン３に至るエコー経路の伝達特性とに基づいて、マイク入力音に含まれるエコー成分を抑圧した加工入力音を生成する。ダブルトークの状態ではない場合、入力音加工部１７０は、エコー経路の伝達特性を学習した後、学習した伝達特性に基づいて、マイク入力音に含まれるエコー成分を除去する。このとき、入力音加工部１７０は、学習した伝達特性を伝達特性記憶部１９３に記憶させる。一方、ダブルトークの状態である場合、入力音加工部１７０は、伝達特性記憶部１９３に記憶させた伝達特性（すなわちダブルトークの状態ではないときに学習した伝達特性）に基づいて、マイク入力音に含まれるエコー成分を除去する。入力音加工部１７０は、学習判定部１７１と、伝達特性学習部１７２と、エコー成分抑圧部１７３と、を含む。学習判定部１７１は、ダブルトーク判定部１６０の判定結果に基づいて、伝達特性を学習するか否かを判定する。伝達特性学習部１７２は、受話音とマイク入力音とに基づいてエコー経路の伝達特性を学習する。エコー成分抑圧部１７３は、伝達特性に基づいて、マイク入力音に含まれるエコー成分を抑圧した加工入力音を生成する。エコー成分を抑圧した加工入力音は、送受信部１１０を介して、他の通話装置４に送信される。
【００２１】
上記のように、本実施形態の通話装置１におけるマスク周波数決定部１３０は、マスク情報を参照し、受話音に含まれる音声のうちの他の周波数成分によりマスクされる周波数（マスク周波数）を算出する。ここで、マスク周波数の成分をマスクする他の周波数成分は、同一フレームにおけるピーク周波数の成分と、同一周波数の時間変化においてピークとなる過去フレームの成分との２通りが存在する。このため、本実施形態では、マスク情報として、第１のマスク情報と、第２のマスク情報とを利用する。第１のマスク情報は、処理対象のフレーム内におけるピーク周波数からの距離（周波数差）と、各周波数のマスクされる最大音量（パワー）との関係を示す情報である。ピーク周波数は、周波数スペクトルにおいて極大値をとる周波数である。第２のマスク情報は、過去の所定時間分の複数のフレームにおける同一周波数の成分の時間変化でのピーク時刻からの距離（時間差）と、マスクされる最大音量との関係を示す情報である。ピーク時刻は、所定時間分の周波数スペクトルにおける同一周波数成分の時間変化において極大値をとる時刻である。
【００２２】
図２は、マスク情報を説明するグラフ図である。
図２の（ａ）には、マスク周波数決定部１３０が参照するマスク情報のうちの、第１のマスク情報を説明するグラフ図を示している。図２の（ａ）のグラフ図は、横軸がピーク周波数との差であり、縦軸がパワーである。
【００２３】
第１のマスク情報は、上記のように、ピーク周波数からの距離（ピーク周波数との周波数差）と、マスクされる最大音量（パワー）との関係を示す情報である。この第１のマスク情報は、例えば、図２の（ａ）に示した関数Ｇ（ｆ）により与えられる。関数Ｇ（ｆ）は、ピーク周波数との差ｆが０である場合にパワーＰＷ２（すなわちＧ（０）＝ＰＷ２）となり、ピーク周波数との差ｆの絶対値が大きくなるにつれて減少する関数である。関数Ｇ（ｆ）は、既知の統計処理により設定可能である。
【００２４】
関数Ｇ（ｆ）により算出される値は、上記のように、マスクされる最大音量（パワー）である。よって、処理対象のフレームについてのパワースペクトルにおけるある周波数のパワーが、関数Ｇ（ｆ）により算出した最大音量よりも小さい場合、当該ある周波数の成分はピーク周波数の成分によりマスクされる。すなわち、処理対象のフレームについてのパワースペクトルにおいて関数Ｇ（ｆ）により算出した最大音量よりもパワーが小さい周波数成分は、人が知覚することが困難であり、処理対象のフレームから除去しても知覚への影響が小さい。
【００２５】
図２の（ａ）のグラフ図において、ピーク周波数との差ｆがＦ１である周波数のパワーＰ２は、関数Ｇ（ｆ）により算出される最大音量Ｇ（Ｆ１）よりも大きい。このように、処理対象のフレームについてのパワースペクトルにおけるある周波数のパワーが、関数Ｇ（ｆ）により算出される最大音量以上である場合、人は、当該周波数成分を知覚することが可能となる。
【００２６】
これに対し、図２の（ａ）のグラフ図においてピーク周波数との差ｆが−Ｆ１である周波数のパワーＰ３は、関数Ｇ（ｆ）により算出される最大音量Ｇ（−Ｆ１）よりも小さい。このように、処理対象のフレームについてのパワースペクトルにおけるある周波数のパワーが、関数Ｇ（ｆ）により算出される最大音量よりも小さい場合、人は、当該周波数成分を知覚することが困難となる。特に、パワースペクトルにおけるパワーと、関数Ｇ（ｆ）により算出される最大音量との差（マスク量）が大きくなるほど、ピーク周波数の成分によりマスクされた周波数成分を知覚することが困難となる。
【００２７】
本実施形態では、ピーク周波数の成分によりマスクされる周波数のうちの、マスク量が最大値となる周波数を、第１のマスク周波数とする。このため、受話音から第１のマスク周波数の成分を除去することによる知覚への影響を最小限に抑えることが可能となる。
【００２８】
第１のマスク情報に基づいて第１のマスク周波数を算出する際、マスク周波数決定部１３０は、例えば、処理対象のフレームについての周波数スペクトルにおけるピーク周波数と、当該ピーク周波数の成分Ｐ１とに基づいて、関数Ｇ（ｆ）を並進させる。
【００２９】
一方、図２の（ｂ）には、マスク周波数決定部１３０が参照するマスク情報のうちの、第２のマスク情報を説明するグラフ図を示している。図２の（ｂ）のグラフ図は、横軸が継時ピークのフレームからの時間差であり、縦軸がパワーである。
【００３０】
第２のマスク情報は、上記のように、複数フレームにおける同一周波数の成分の時間変化でのピーク（継時ピーク）からの距離（継時ピークからの時間差）と、マスクされる最大音量（パワー）との関係を示す情報である。この第２のマスク情報は、例えば、図２の（ｂ）に示した関数Ｈ（ｔ）により与えられる。関数Ｈ（ｔ）は、継時ピークとの時間差ｔが０である場合にパワーＰＷ２（すなわちＨ（０）＝ＰＷ２）となり、継時ピークとの時間差ｔが大きくなるにつれて減少する関数である。関数Ｈ（ｔ）は、既知の統計処理により設定可能である。
【００３１】
関数Ｈ（ｔ）により算出される値は、上記のように、マスクされる最大音量（パワー）である。よって、処理対象のフレームについてのパワースペクトルにおけるある周波数のパワーが、関数Ｈ（ｔ）により算出した最大音量よりも小さい場合、当該ある周波数の成分は過去フレームの同一周波数成分によりマスクされる。すなわち、処理対象のフレームについてのパワースペクトルにおいて関数Ｈ（ｔ）により算出した最大音量よりもパワーが小さい周波数成分は、人が知覚することが困難であり、処理対象のフレームから除去しても知覚への影響が小さい。
【００３２】
図２の（ｂ）のグラフ図において、継時ピークを含むフレームからの時間差ｔがＴ２であるフレームにおける同一周波数成分のパワーＰ３は、関数Ｈ（ｔ）により算出される最大音量Ｈ（Ｔ２）よりも大きい。このように、処理対象のフレームにおけるある周波数のパワーが、関数Ｈ（ｔ）により算出される最大音量よりも大きい場合、人は、当該周波数成分を知覚することが可能となる。
【００３３】
これに対し、図２の（ｂ）のグラフ図において、継時ピークを含むフレームからの時間差ｔがＴ１であるフレームにおける同一周波数成分のパワーＰ２は、関数Ｈ（ｔ）により算出される最大音量Ｈ（Ｔ１）よりも小さい。このように、処理対象のフレームについてのパワースペクトルにおけるある周波数のパワーが、関数Ｈ（ｔ）により算出される最大音量よりも小さい場合、人は、当該周波数成分を知覚することが困難となる。特に、パワースペクトルにおけるパワーと、関数Ｈ（ｔ）により算出される最大音量との差（マスク量）が大きくなるほど、過去フレームの同一周波数成分によりマスクされた周波数成分を知覚することが困難となる。
【００３４】
本実施形態では、処理対象のフレームにおいて過去フレームの同一周波数成分（継時ピーク）によりマスクされる周波数のうちの、マスク量が最大値となる周波数を、第２のマスク周波数とする。このため、受話音から第２のマスク周波数の成分を除去することによる知覚への影響を最小限に抑えることが可能となる。
【００３５】
第２のマスク情報に基づいて第２のマスク周波数を算出する際、マスク周波数決定部１３０は、例えば、継時ピークを含むフレームから現在処理対象となっているフレームまでの時間差と、当該継時ピークのパワーＰ１とに基づいて、関数Ｈ（ｔ）を並進させる。
【００３６】
通話装置１は、他の通話装置４との間での呼接続が確立した後、他の通話装置４から受信した受話音をレシーバ２から出力する処理と、マイクロフォン３から入力されたマイク入力音に含まれるエコー成分を抑圧して他の通話装置４に送信する処理とを行う。本実施形態に係る通話装置１は、他の通話装置４との間での呼接続が確立した後、図３に示した処理を行う。
【００３７】
図３は、一実施形態に係る通話装置が行う処理を説明するフローチャートである。
通話装置１は、まず、受話音から処理対象のフレームを選択し（ステップＳ１）、該処理対象のフレームに対する周波数分析を行う（ステップＳ２）。ステップＳ１，Ｓ２の処理は、受話音分析部１２０が行う。受話音分析部１２０は、既知の分析方法に従って、処理対象のフレームにおける音声波形を周波数スペクトルに変換し、ピークとなる周波数の値と、ピークの数とを算出する。また、受話音分析部１２０は、処理対象のフレームに対する周波数分析の結果を分析結果保持部１９２に保持させる。この際、受話音分析部１２０は、現在処理対象であるフレームを含む、過去の所定フレーム数分の周波数分析の結果を分析結果保持部１９２に保持させる。以下の説明では、周波数スペクトルや周波数スペクトルに基づいて算出されるパワースペクトルにおける周波数帯のことを、単に「周波数」ともいう。
【００３８】
次に、通話装置１は、受話音における処理対象のフレームに対する周波数分析の結果に基づいて、当該フレームのマスク周波数を算出する（ステップＳ３）。ステップＳ３の処理は、マスク周波数決定部１３０が行う。本実施形態の通話装置１におけるマスク周波数決定部１３０は、マスク情報記憶部１９１に記憶させたマスク情報と、分析結果保持部１９２で保持している所定フレーム数分の周波数分析の結果とに基づいて、第１のマスク周波数と、第２のマスク周波数とを算出する。第１のマスク周波数は、処理対象のフレームの周波数スペクトルにおいてピークとなる周波数成分によりマスクされる周波数のうちの、マスク量が最も大きい周波数である。第２のマスク周波数は、所定フレーム数分の周波数スペクトルにおける同一周波数成分の時間変化でピークとなるフレームの周波数成分によりマスクされる周波数のうちの、マスク量が最も大きい周波数である。ピークとなる周波数成分によりマスクされる周波数は、ピークとなる周波数又はフレームとの距離に基づいて設定された最大音量（関数Ｇ（ｆ）又は関数Ｈ（ｔ））よりもスペクトル値（パワー）が小さい周波数である。また、マスク量は、マスクされる最大音量からパワーを減じた値である。
【００３９】
次に、通話装置１は、処理対象のフレームの周波数スペクトルからマスク周波数の成分を除去して出力する（ステップＳ４）。ステップＳ４の処理は、受話音加工部１４０が行う。受話音加工部１４０は、周波数スペクトルにおける第１のマスク周波数及び第２のマスク周波数のスペクトル値を０にした後、周波数スペクトルを音声波形に逆変換して加工受話音を生成する。受話音加工部１４０は、加工受話音をレシーバ２に出力するとともに、マスク周波数を示す情報を成分抽出部１５０に出力する。これにより、通話装置１の利用者は、第１のマスク周波数及び第２のマスク周波数が除去された受話音５を聞くこととなる。しかしながら、上記のように、マスク周波数の成分は、他の周波数成分によりマスクされる、通話装置１の利用者が知覚困難な成分である。このため、マスク周波数の成分を除去した受話音５を出力することによる通話装置１の利用者の知覚への影響は非常に小さい。
【００４０】
次に、通話装置１は、マイク入力音における処理対象のフレームからマスク周波数の成分を抽出する（ステップＳ５）。ステップＳ５の処理は、成分抽出部１５０が行う。成分抽出部１５０は、マイクロフォン３から入力されたマイク入力音における処理対象のフレームを音声波形から周波数スペクトルに変換し、該周波数スペクトルにおける、受話音加工部１４０から受け取ったマスク周波数の成分を抽出する。受話音加工部１４０において受話音から第１のマスク周波数及び第２のマスク周波数の成分を除去した場合、成分抽出部１５０は、マイク入力音の周波数スペクトルから、第１のマスク周波数の成分と、第２のマスク周波数の成分とを抽出する。
【００４１】
次に、通話装置１は、マイク入力音から抽出したマスク周波数の成分の値に基づいて、処理対象のフレームに含まれる音声がダブルトークの状態であるか否かを判定する（ステップＳ６）。ステップＳ６の処理は、ダブルトーク判定部１６０が行う。ダブルトーク判定部１６０は、マイク入力音の周波数スペクトルから抽出したマスク周波数の成分に基づいてパワーを算出し、該パワーが閾値よりも大きい場合に処理対象のフレームがダブルトークの状態であると判定する。マイク入力音から第１のマスク周波数の成分と第２のマスク周波数の成分とを抽出した場合、ダブルトーク判定部１６０は、例えば、第１のマスク周波数のパワー及び第２のマスク周波数のパワーが閾値よりも大きい場合に処理対象のフレームがダブルトークの状態であると判定する。
【００４２】
次に、通話装置１は、ダブルトーク判定部１６０の判定結果に基づいて、マイク入力音からエコー成分を除去する処理（ステップＳ７〜Ｓ９）を行う。ステップＳ７〜Ｓ９の処理は、入力音加工部１７０が行う。入力音加工部１７０は、まず、ダブルトーク判定部１６０の判定結果から、処理対象のフレームに含まれる音声がダブルトークの状態であるか否かを判定する（ステップＳ７）。ステップＳ７の処理は、入力音加工部１７０の学習判定部１７１が行う。
【００４３】
処理対象のフレームがダブルトークの状態ではない場合（ステップＳ７；ＮＯ）、入力音加工部１７０は、エコー経路の伝達特性を学習する処理（ステップＳ８）を行った後、伝達特性に基づいてマイク入力音のエコー成分を抑圧する処理（ステップＳ９）を行う。ステップＳ８の処理は、入力音加工部１７０の伝達特性学習部１７２が行う。伝達特性学習部１７２は、既知の学習方法に従って、レシーバ２からマイクロフォン３に至るエコー経路の伝達特性を学習する。例えば、伝達特性学習部１７２は、受話音における処理対象のフレームについての周波数スペクトルと、マイク入力音における処理対象のフレームについての周波数スペクトルとに基づいて、各周波数における伝達特性を算出する。ステップＳ９の処理は、入力音加工部１７０のエコー成分抑圧部１７３が行う。エコー成分抑圧部１７３は、マイク入力音の周波数スペクトルにおける各周波数成分に伝達特性を適用することで、マイク入力音に含まれるエコー成分を抑圧する。なお、ステップＳ８の処理を行った場合、エコー成分抑圧部１７３は、ステップＳ８で学習した伝達特性に基づいて、マイク入力音に含まれるエコー成分を抑圧する。
【００４４】
すなわち、処理対象のフレームがダブルトークの状態ではない場合（ステップＳ７；ＮＯ）、入力音加工部１７０の学習判定部１７１は、次に、伝達特性学習部１７２に伝達特性を学習させる。伝達特性学習部１７２は、現在処理対象であるフレームの周波数スペクトルに基づいて伝達特性を学習すると、学習した伝達特性を伝達特性記憶部１９３に記憶させるとともに、エコー成分抑圧部１７３に渡す。伝達特性学習部１７２から伝達特性を受け取ると、エコー成分抑圧部１７３は、受け取った伝達特性に基づいて、マイク入力音における処理対象のフレームに含まれるエコー成分を抑圧する。エコー成分抑圧部１７３は、マイク入力音の周波数スペクトルにおける各周波数成分に対して伝達特性を適用し、マイク入力音に含まれるエコー成分を抑圧する。
【００４５】
一方、処理対象のフレームがダブルトークの状態である場合（ステップＳ７；ＹＥＳ）、入力音加工部１７０は、ステップＳ８の処理をスキップし、ステップＳ９の処理を行う。すなわち、処理対象のフレームがダブルトークの状態である場合、入力音加工部１７０は、伝達特性を学習しない。入力音加工部１７０の学習判定部１７１は、次に、エコー成分抑圧部１７３に、マイク入力音に含まれるエコー成分を抑圧させる。この際、学習判定部１７１は、エコー成分抑圧部１７３に、現在処理対象であるフレームよりも前のフレーム（過去フレーム）に基づいて学習した伝達特性を伝達特性記憶部１７３から取得させる。エコー成分抑圧部１７３は、伝達特性記憶部１９３から取得した伝達特性に基づいて、マイク入力音における処理対象のフレームに含まれるエコー成分を抑圧する。
【００４６】
マイク入力音に含まれるエコー成分を抑圧した後、通話装置１は、エコー成分を抑圧したマイク入力音（加工入力音）を他の通話装置４に送信する（ステップＳ１０）。ステップＳ１０の処理は、送受信部１１０が行う。送受信部１１０は、入力音加工部１７０でエコー成分を抑圧したマイク入力音に対して所定の処理を行った後、他の通話装置４に送信する。
【００４７】
マイク入力音を他の通話装置４に送信した後、通話装置１は、他の通話装置４との通話が継続しているかを判定する（ステップＳ１１）。ステップＳ１１の処理は、例えば、送受信部１１０或いは受話音分析部１２０が行う。通話が継続している場合（ステップＳ１１；ＹＥＳ）、通話装置１は、ステップＳ１以降の処理を繰り返す。通話が終了した場合（ステップＳ１１；ＮＯ）、通話装置１は、上記の処理を終了する。
【００４８】
図３のフローチャートは、ステップＳ１で抽出した処理対象のフレームに対するステップＳ２〜Ｓ１０の処理を行った後、次の処理対象のフレームに対するステップＳ１〜Ｓ１０の処理を行う内容になっている。しかしながら、通話装置１は、ステップＳ１〜Ｓ１０の各処理をパイプライン化して行ってもよい。
【００４９】
通話装置１が行うステップＳ１〜Ｓ１１の処理のうちのステップＳ２の処理、すなわち受話音のフレームに対する周波数分析を行う処理は、上記のように受話音分析部１２０が行う。受話音分析部１２０は、例えば、図４に示した処理を行う。
【００５０】
図４は、受話音のフレームを周波数分析する処理の内容を説明するフローチャートである。
【００５１】
図４に示すように、受話音分析部１２０は、まず、受話音における処理対象のフレームの音声波形を周波数スペクトルに変換する（ステップＳ２０１）。ステップＳ２０１の処理では、受話音分析部１２０は、既知の変換方法に従って、音声波形を周波数スペクトルに変換する。例えば、受話音分析部１２０は、高速フーリエ変換により音声波形を周波数スペクトルに変換する。
【００５２】
次に、受話音分析部１２０は、周波数スペクトルに基づいて、処理対象のフレームについてのパワースペクトルを算出する（ステップＳ２０２）。ステップＳ２０２の処理では、受話音分析部１２０は、既知の算出方法に従って、周波数スペクトルにおける各周波数帯のパワーを算出する。
【００５３】
次に、受話音分析部１２０は、パワースペクトルに基づいて、現在処理対象であるフレームにおけるピーク周波数を抽出する（ステップＳ２０３）。ステップＳ２０３の処理では、受話音分析部１２０は、既知の抽出方法に従って、現在処理対象であるフレームのパワースペクトルにおいてピーク（極大）となる周波数帯を抽出する。例えば、受話音分析部１２０は、時刻ｔのフレームについてのパワースペクトルにおけるｉ番目の周波数帯のパワーP(i,t)が下記式（１−１）及び式（１−２）を満たす場合に、当該ｉ番目の周波数帯をピーク周波数とする。
【００５４】
P(i,t)−P(i-1,t)＞TH1      ・・・（１−１）
P(i,t)−P(i+1,t)＞TH1      ・・・（１−２）
【００５５】
式（１−１）及び式（１−２）における判定閾値TH1は、適宜設定可能である。
【００５６】
次に、受話音分析部１２０は、パワースペクトルの時間変化に基づいて、各周波数帯の継時ピークを抽出する（ステップＳ２０４）。ステップＳ２０４の処理では、受話音分析部１２０は、現在処理対象であるフレームを含む複数フレームのパワースペクトルを参照し、周波数帯毎に、パワーＰ（ｉ，ｔ）の時間変化においてピーク（極大）となるフレームの時刻を抽出する。例えば、受話音分析部１２０は、各フレームのパワースペクトルにおけるｉ番目の周波数帯のパワーのうちの、下記式（２−１）及び式（２−２）を満たすパワーP(i,t-1)を含むパワースペクトルのフレーム（時刻t-1）を、継時ピークとする。
【００５７】
P(i,t-1)−P(i,t-2)＞TH1      ・・・（２−１）
P(i,t-1)−P(i,t)＞TH1      ・・・（２−２）
【００５８】
次に、受話音分析部１２０は、現在処理対象であるフレームの周波数スペクトルと、ピーク周波数を示す情報と、継時ピークを示す情報とを分析結果保持部１９２に保持させる（ステップＳ２０５）。ステップＳ２０５の処理を終えると、受話音分析部１２０は、現在処理対象となっているフレームに対する周波数分析を終了する。
【００５９】
受話音における処理対象のフレームに対する周波数分析が終了すると、通話装置１は、次に、当該フレームから除去するマスク周波数を決定する処理（ステップＳ３）を行う。ステップＳ３の処理は、マスク周波数決定部１３０が行う。マスク周波数決定部１３０は、ステップＳ３の処理として、図４に示した処理を行う。
【００６０】
図５は、受話音から除去するマスク周波数を決定する処理の内容を説明するフローチャートである。
【００６１】
ステップＳ４の処理において、マスク周波数決定部１３０は、まず、周波数スペクトルにおける周波数帯（周波数ビン）を指定する変数ｉを１に設定する（ステップＳ３０１）。
【００６２】
次に、マスク周波数決定部１３０は、ピーク周波数と、第１のマスク情報とに基づいて、フレーム内のピーク周波数によりマスクされる第１のマスク周波数Max_FM_freqを算出する（ステップＳ３０２）。第１のマスク周波数は、ピーク周波数の成分によりマスクされる周波数のうちの、マスク量が最大となる周波数である。マスク量は、ピーク周波数の成分によりマスクされるパワー（音量）の最大値から周波数スペクトルにおけるパワーを減じた値である。マスク周波数決定部１３０は、第１のマスク情報に基づいて、処理対象のフレームにおけるピーク周波数毎にｉ番目の周波数帯についてのマスク量を算出する。そして、算出したマスク量が最大値となる周波数帯を第１のマスク周波数として保持する。
【００６３】
次に、マスク周波数決定部１３０は、継時ピークと、第２のマスク情報とに基づいて、に基づいて、第２のマスク周波数Max_TM_freqを算出する（ステップＳ３０３）。第２のマスク周波数は、処理対象のフレームにおいて過去フレームの同一周波数成分によりマスクされる周波数のうちの、マスク量が最大となる周波数である。マスク周波数決定部１３０は、ｉ番目の周波数帯の時間変化における継時ピーク毎に処理対象のフレームにおけるマスク量を算出する。そして、算出したマスク量が最大値となる周波数帯を第２のマスク周波数として保持する。
【００６４】
ステップＳ３０２及びＳ３０３の処理を終えると、マスク周波数決定部１３０は、次に、変数ｉをｉ＋１に更新し（ステップＳ３０４）、更新後の変数ｉが終値Ｎよりも大きいか否かを判定する（ステップＳ３０５）。終値Ｎは、周波数スペクトルにおける周波数帯の総数とする。すなわち、ステップＳ３０５では、マスク周波数決定部１３０は、周波数スペクトルにおける全ての周波数帯に対してステップＳ３０２及びＳ３０３の処理を行ったか否かを判定する。ｉ≦Ｎである場合（ステップＳ３０５；ＮＯ）、マスク周波数決定部１３０は、現時点でｉ番目となる周波数帯に対するステップＳ３０２以降の処理を行う。ｉ＞Ｎである場合（ステップＳ３０５；ＹＥＳ）、マスク周波数決定部１３０は、第１のマスク周波数Max_FM_freq、及び第２のマスク周波数Max_TM_freqをマスク周波数に決定する（ステップＳ３０６）。ステップＳ３０６の処理を終えると、マスク周波数決定部１３０は、現在処理対象となっているフレームに対するマスク周波数を決定する処理を終了する。
【００６５】
図６Ａは、第１のマスク周波数を算出する処理の内容を説明するフローチャート（その１）である。図６Ｂは、第１のマスク周波数を算出する処理の内容を説明するフローチャート（その２）である。
【００６６】
第１のマスク周波数を算出する処理において、マスク周波数決定部１３０は、まず、図６Ａに示すように、周波数帯を指定する変数ｉが１であるか否かを判定する（ステップＳ３０２０１）。ｉ＝１である場合（ステップＳ３０２０１；ＹＥＳ）、マスク周波数決定部１３０は、次に、処理対象のフレームにおけるマスク量の最大値Max_FM、及び第１のマスク周波数Max_FM_freqを、それぞれ、０に設定する（ステップＳ３０２０２）。その後、マスク周波数決定部１３０は、変数ｎを１に設定するとともに、ｉ番目の周波数帯におけるマスク量の最大値Max_FM_Tと、暫定マスク周波数Max_FM_freq_Tとを、それぞれ、０に設定する（ステップＳ３０２０３）。ここで、変数ｎは、処理対象のフレームにおけるピーク周波数を識別する値である。一方、ｉ＞１である場合（ステップＳ３０２０１；ＮＯ）、マスク周波数決定部１３０は、ステップＳ３０２０２の処理をスキップし、次に、ステップＳ３０２０３の処理を行う。
【００６７】
ステップＳ３０２０３の処理の後、マスク周波数決定部１３０は、ｎ番目のピーク周波数からｉ番目の周波数までの距離（周波数差）を算出する（ステップＳ３０２０４）。
【００６８】
次に、マスク周波数決定部１３０は、ｉ番目の周波数帯において、ｎ番目のピーク周波数の成分によりマスクされる最大音量FM_TH(n,i)を算出する（ステップＳ３０２０５）。ステップＳ３０２０５では、マスク周波数決定部１３０は、周波数差とマスクされる最大音量との関係を示す第１のマスク情報に基づいて、最大音量FM_TH(n,i)を算出する。マスク周波数決定部１３０は、マスク情報記憶部１９１から第１のマスク情報を取得する。
【００６９】
次に、マスク周波数決定部１３０は、処理対象のフレームにおけるｉ番目の周波数のパワーP(i,t)と、最大音量FM_TH(n,i)とに基づいて、マスク量FM(n,i)＝FM_TH(n,i)−P(i,t)を算出する（ステップＳ３０２０６）。
【００７０】
次に、マスク周波数決定部１３０は、算出したマスク量FM(n,i)がｉ番目の周波数帯における現時点でのマスク量の最大値Max_FM_Tよりも大きいか否かを判定する（ステップＳ３０２０７）。FM(n,i)＞Max_FM_Tである場合（ステップＳ３０２０７；ＹＥＳ）、マスク周波数決定部１３０は、マスク量の最大値Max_FM_T、及び暫定マスク周波数Max_FM_freq_Tを、それぞれ、マスク量FM(n,i)、及び変数ｉに更新する（ステップＳ３０２０７）。その後、マスク周波数決定部１３０は、変数ｎをｎ＋１に更新し（ステップＳ３０２０９）、更新後の変数ｎが終値N_FPよりも大きいか否かを判定する（ステップＳ３０２１０）。終値N_FPは、処理対象のフレームにおけるピーク周波数の個数である。一方、FM(n,i)≦Max_FM_Tである場合（ステップＳ３０２０７；ＮＯ）、マスク周波数決定部１３０は、ステップＳ３０２０８の処理をスキップし、ステップＳ３０２０９の処理，及びステップＳ３０２１０の判定を行う。
【００７１】
ｎ≦N_FPである場合（ステップＳ３０２１０；ＮＯ）、マスク周波数決定部１３０は、ステップＳ３０２０４以降の処理を行う。
【００７２】
ｎ＞N_FPである場合（ステップＳ３０２１０；ＹＥＳ）、マスク周波数決定部１３０は、次に、図６Ｂに示すように、ｉ番目の周波数におけるマスク量の最大値Max_FM_Tが、処理対象のフレームにおけるマスク量の最大値Max_FMよりも大きいか否かを判定する（ステップＳ３０２１１）。
【００７３】
Max_FM_T＞Max_FMである場合（ステップＳ３０２１１；ＹＥＳ）、マスク周波数決定部１３０は、処理対象のフレームにおけるマスク量の最大値Max_FM、及び第１のマスク周波数Max_FM_freqを、それぞれ、Max_FM_T、及びMax_FM_freq_Tに更新する（ステップＳ３０２１２）。ステップＳ３０２１２の処理を行った場合、マスク周波数決定部１３０は、更新したマスク量の最大値Max_FM、及び第１のマスク周波数Max_FM_freqを保持した状態で、第１のマスク周波数を算出する処理を終了する。
【００７４】
一方、Max_FM_T≦Max_FMである場合（ステップＳ３０２１１；ＮＯ）、マスク周波数決定部１３０は、ステップＳ３０２１２の処理をスキップし、第１のマスク周波数を算出する処理を終了する。この場合（Max_FM_T≦Max_FMである場合）、マスク周波数決定部１３０は、ｉ−１番目の周波数までの処理におけるマスク量の最大値Max_FM、及び第１のマスク周波数Max_FM_freqを保持した状態で、第１のマスク周波数を算出する処理を終了する。
【００７５】
図７は、第１のマスク周波数の算出方法を説明するグラフ図である。
図７のグラフ図において、横軸は処理対象のフレームについてのパワースペクトルにおける周波数であり、縦軸はパワーである。
【００７６】
図７の太い曲線ＰＳは、処理対象のフレームにおけるパワースペクトルであり、第１のピークＰ１、第２のピークＰ２、及び第３のピークＰ３を含む。図６Ａ及び図６Ｂのフローチャートに沿ってパワースペクトルＰＳにおけるｉ番目の周波数についてのマスク量を算出する場合、マスク周波数決定部１３０は、以下の処理を行う。
【００７７】
マスク周波数決定部１３０は、まず、第１のピークＰ１の周波数ＩＰ１とｉ番目の周波数との周波数差Ｆ１（＝ｉ−ＩＰ１）を算出する（ステップＳ３０２０４）。
【００７８】
次に、マスク周波数決定部１３０は、第１のピークＰ１によりマスクされるｉ番目の周波数の最大音量を算出する（ステップＳ３０２０５）。このとき、マスク周波数決定部１３０は、第１のピークＰ１の周波数ＩＰ１及びパワーＰＷＰ１と、第１のマスク情報とに基づいて、第１の関数Ｇ１（ｆ）を設定する。第１の関数Ｇ１（ｆ）は、同一フレームにおける、第１のピークＰ１の周波数ＩＰ１からの周波数差と、マスクされる最大音量との関係を示す関数である。マスク周波数決定部１３０は、第１の関数Ｇ１（ｆ）に基づいて、ｉ番目の周波数帯についての最大音量FM_TH(1,i)を算出する。
【００７９】
次に、マスク周波数決定部１３０は、マスク量FM(1,i)＝FM_TH(1,i)−P(i,t)Ｐ（ｉ，ｔ）を算出する（ステップＳ３０２０６）。
【００８０】
次に、マスク周波数決定部１３０は、処理対象のフレームにおけるマスク量の最大値、及び暫定マスク周波数を、それぞれ、マスク量FM(1,i)，及び変数ｉとする（ステップＳ３０２０８）。
【００８１】
その後、マスク周波数決定部１３０は、ピークを識別する変数ｎを２に更新し（ステップＳ３０２０９）、ステップＳ３０２０４以降の処理を行う。すなわち、マスク周波数決定部１３０は、第２のピークＰ２とｉ番目の周波数帯との周波数差−Ｆ２を算出した後、第２のピークＰ２の周波数及びパワーと、第１のマスク情報とに基づいて、第２の関数Ｇ２（ｆ）を設定する。第２の関数Ｇ２（ｆ）は、第２のピークＰ２の周波数ＩＰ２からの周波数差と、マスクされる最大音量との関係を示す関数である。マスク周波数決定部１３０は、第２の関数Ｇ２（ｆ）に基づいてｉ番目の周波数帯についての最大音量FM_TH(2,i)を算出し、マスク量FM(2,i)＝FM_TH(2,i)−P(i,t)を算出する。図７に示した例では、第２のピークＰ２によるマスク量FM(2,i)が第１のピークＰ１によるマスク量FM(1,i)よりも大きくなる。よって、マスク周波数決定部１３０は、処理対象のフレームにおけるマスク量の最大値、及び暫定マスク周波数を、それぞれ、マスク量FM(2,i)，及び変数ｉとする（ステップＳ３０２０８）。
【００８２】
この後、マスク周波数決定部１３０は、ピークを識別する変数ｎを３に更新し（ステップＳ３０２０９）、ステップＳ３０２０４以降の処理を行う。このとき、マスク周波数決定部１３０は、第３のピークＰ３の周波数ＩＰ３及びパワーと、第１のマスク情報とに基づいて第３の関数Ｇ３（ｆ）を設定する。第３の関数Ｇ３（ｆ）は、第３のピークＰ３の周波数ＩＰ３からの周波数差と、マスクされる最大音量との関係を示す関数である。図7に示した例では、第３の関数Ｇ３（ｆ）に基づいて算出される、ｉ番目の周波数帯についての最大音量FM_TH(3,i)が、ｉ番目の周波数帯のパワーP(i,t)よりも小さい。このため、マスク周波数決定部１３０は、ｉ番目の周波数帯におけるマスク量の最大値Max_FM_T、及び暫定マスク周波数Max_FM_freq_Tを、それぞれ、マスク量FM(2,i)，及び変数ｉとし、ステップＳ３０２１１の判定を行う。ここで、ｉ番目の周波数におけるマスク量の最大値Max_FM_Tが、ｉ−１番目の周波数までの処理におけるマスク量の最大値Max_FMよりも大きいと、マスク周波数決定部１３０は、ステップＳ３０２１２の処理を行う。すなわち、マスク周波数決定部１３０は、処理対象のフレームにおけるマスク量の最大値Max_FM及び第１のマスク周波数Max_FM_freqを、それぞれ、ｉ番目の周波数帯におけるマスク量の最大値Max_FM_T、及び変数ｉに更新する。一方、ｉ番目の周波数帯におけるマスク量の最大値Max_FM_Tが、ｉ−１番目の周波数帯までの処理におけるマスク量の最大値Max_FM以下であると、マスク周波数決定部１３０は、ステップＳ３０２１２の処理を省略する。すなわち、マスク周波数決定部１３０は、処理対象のフレームにおけるマスク量の最大値Max_FM及び第１のマスク周波数Max_FM_freqを、それぞれ、ｉ−１番目の周波数帯までの処理における最大値Max_FM_T、及び１からｉ−１までのいずれかの値のままとする。
【００８３】
本実施形態に係るマスク周波数決定部１３０は、図５に示したように、処理対象のフレームについての周波数スペクトルにおける周波数帯毎に、ステップＳ３０２（ステップＳ３０２０１〜Ｓ３０２１２）の処理を行う。これにより、処理対象のフレームにおいてマスク量FM(n,i)が最大値となる周波数帯が、第１のマスク周波数となる。
【００８４】
図８Ａは、第２のマスク周波数を算出する処理の内容を説明するフローチャート（その１）である。図８Ｂは、第２のマスク周波数を算出する処理の内容を説明するフローチャート（その２）である。
【００８５】
第２のマスク周波数を算出する処理において、マスク周波数決定部１３０は、まず、図８Ａに示すように、周波数帯を指定する変数ｉが１であるか否かを判定する（ステップＳ３０３０１）。ｉ＝１である場合（ステップＳ３０３０１；ＹＥＳ）、マスク周波数決定部１３０は、次に、処理対象のフレームにおけるマスク量の最大値Max_TM、及び第２のマスク周波数Max_TM_freqを、それぞれ、０に設定する（ステップＳ３０３０２）。その後、マスク周波数決定部１３０は、変数ｎを１に設定するとともに、ｉ番目の周波数帯におけるマスク量の最大値Max_TM_Tと、暫定マスク周波数Max_TM_freq_Tを、それぞれ、０に設定する（ステップＳ３０３０３）。ここで、変数ｎは、複数フレームのそれぞれにおけるｉ番目の周波数成分の時間変化から抽出された継時ピークを識別する値である。一方、ｉ＞１である場合（ステップＳ３０３０１；ＮＯ）、マスク周波数決定部１３０は、ステップＳ３０３０２の処理をスキップし、次に、ステップＳ３０３０３の処理を行う。
【００８６】
ステップＳ３０３０３の処理の後、マスク周波数決定部１３０は、ｎ番目の継時ピークを含むフレームから処理対象のフレームまでの距離（時間差）を算出する（ステップＳ３０３０４）。
【００８７】
次に、マスク周波数決定部１３０は、処理対象のフレームのｉ番目の周波数帯において、ｎ番目の継時ピークの成分によりマスクされる最大音量TM_TH(n,i)を算出する（ステップＳ３０３０５）。ステップＳ３０３０５では、マスク周波数決定部１３０は、時間差とマスクされる最大音量との関係を示す第２のマスク情報に基づいて、最大音量TM_TH(n,i)を算出する。マスク周波数決定部１３０は、マスク情報記憶部１９１から第２のマスク情報を取得する。
【００８８】
次に、マスク周波数決定部１３０は、処理対象のフレームにおけるｉ番目の周波数帯のパワーP(i,t)と、最大音量TM_TH(n,i)とに基づいて、マスク量TM(n,i)＝TM_TH(n,i)−P(i,t)を算出する（ステップＳ３０３０６）。
【００８９】
次に、マスク周波数決定部１３０は、算出したマスク量TM(n,i)がｉ番目の周波数帯における現時点でのマスク量の最大値Max_TM_Tよりも大きいか否かを判定する（ステップＳ３０３０７）。TM(n,i)＞Max_TM_Tである場合（ステップＳ３０３０７；ＹＥＳ）、マスク周波数決定部１３０は、マスク量の最大値Max_TM_T、及び暫定マスク周波数Max_TM_freq_Tを、それぞれ、マスク量TM(n,i)、及び変数ｉに更新する（ステップＳ３０３０７）。その後、マスク周波数決定部１３０は、変数ｎをｎ＋１に更新し（ステップＳ３０３０９）、更新後の変数ｎが終値N_TPよりも大きいか否かを判定する（ステップＳ３０３１０）。終値N_TPは、ｉ番目の周波数成分の時間変化における継時ピークの個数である。一方、TM(n,i)≦Max_TM_Tである場合（ステップＳ３０３０７；ＮＯ）、マスク周波数決定部１３０は、ステップＳ３０３０８の処理をスキップし、ステップＳ３０３０９の処理，及びステップＳ３０３１０の判定を行う。
【００９０】
ｎ≦N_TPである場合（ステップＳ３０３１０；ＮＯ）、マスク周波数決定部１３０は、ステップＳ３０３０４以降の処理を行う。
【００９１】
ｎ＞N_TPである場合（ステップＳ３０３１０；ＹＥＳ）、マスク周波数決定部１３０は、次に、図８Ｂに示すように、ｉ番目の周波数帯におけるマスク量の最大値Max_TM_Tが、処理対象のフレームにおける現時点でのマスク量の最大値Max_TMよりも大きいか否かを判定する（ステップＳ３０３１１）。
【００９２】
Max_TM_T＞Max_TMである場合（ステップＳ３０３１１；ＹＥＳ）、マスク周波数決定部１３０は、処理対象のフレームにおけるマスク量の最大値Max_TM、及び第２のマスク周波数Max_TM_freqを、それぞれ、Max_TM_T、及びMax_TM_freq_Tに更新する（ステップＳ３０３１２）。ステップＳ３０３１２の処理を行った場合、マスク周波数決定部１３０は、更新したマスク量の最大値Max_TM、及び第２のマスク周波数Max_TM_freqを保持した状態で、第２のマスク周波数を算出する処理を終了する。
【００９３】
一方、Max_TM_T≦Max_TMである場合（ステップＳ３０３１１；ＮＯ）、マスク周波数決定部１３０は、ステップＳ３０３１２の処理をスキップし、第２のマスク周波数を算出する処理を終了する。この場合（Max_TM_T≦Max_TMである場合）、マスク周波数決定部１３０は、ｉ−１番目の周波数帯までの処理におけるマスク量の最大値Max_TM、及び第２のマスク周波数Max_TM_freqを保持した状態で、第２のマスク周波数を算出する処理を終了する。
【００９４】
図９は、第２のマスク周波数の算出方法を説明するグラフ図である。
図９のグラフ図において、横軸は受話音における時刻（フレーム）であり、縦軸はパワーである。
【００９５】
図９の太い曲線ＰＳｉは、複数フレームにおけるｉ番目の周波数帯のパワーの時間変化を表しており、第１の継時ピークＰ１、第２の継時ピークＰ２、及び第３の継時ピークＰ３を含む。図８Ａ及び図８Ｂのフローチャートに沿ってパワースペクトルＰＳｉにおける時刻ｔでのマスク量を算出する場合、マスク周波数決定部１３０は、以下の処理を行う。
【００９６】
マスク周波数決定部１３０は、まず、第１の継時ピークＰ１を含むフレームと、現在処理対象となっているフレームとの時間差Ｔ１（＝ｔ−ＴＰ１）を算出する（ステップＳ３０３０４）。
【００９７】
次に、マスク周波数決定部１３０は、第１の継時ピークＰ１によりマスクされるｉ番目の周波数帯の最大音量を算出する（ステップＳ３０３０５）。このとき、マスク周波数決定部１３０は、第１の継時ピークＰ１の時刻ＴＰ１及びパワーＰＷＰａと、第２のマスク情報とに基づいて、第１の関数Ｈ１（Ｔ）を設定する。第１の関数Ｈ１（Ｔ）は、時間方向における、第１の継時ピークＰ１の時刻ＴＰ１からの時間差と、マスクされる最大音量との関係を示す関数である。その後、マスク周波数決定部１３０は、第１の関数Ｈ１（Ｔ）に基づいて、現在処理対象となっている時刻ｔのフレームにおけるｉ番目の周波数帯についての最大音量FM_TH(1,i)を算出する。
【００９８】
次に、マスク周波数決定部１３０は、マスク量TM(1,i)＝TM_TH(1,i)−P(i,t)を算出する（ステップＳ３０３０６）。図９に示した例では、第１の継時ピークＰ１に基づく最大音量TM_TH(1,i)が、時刻ｔのフレームにおけるパワーP(i,t)よりも小さい。このため、マスク周波数決定部１３０は、ステップＳ３０３０８を省略し、次に、第２の継時ピークＰ２についてのステップＳ３０３０４以降の処理を行う。しかしながら、第２の継時ピークＰ２についての第２の関数Ｈ２（Ｔ）に基づいて算出される最大音量TM_TH(2,i)は、時刻ｔのフレームにおけるパワーP(i,t)よりも小さい。このため、マスク周波数決定部１３０は、ステップＳ３０３０８を省略し、次に、第３の継時ピークＰ３についてのステップＳ３０３０４以降の処理を行う。ここで、第２の関数Ｈ２（Ｔ）は、時間方向における、第２の継時ピークＰ２の時刻ＴＰ２からの時間差と、マスクされる最大音量との関係を示す関数である。
【００９９】
第３の継時ピークＰ３についての第３の関数Ｈ３（Ｔ）に基づいて算出される最大音量ＦＭ＿ＴＨ（３，ｉ）は、時刻ｔのフレームにおけるパワーＰ（ｉ，ｔ）よりも大きい。このため、マスク周波数決定部１３０は、ステップＳ３０３０８において、処理対象のフレームにおけるマスク量の最大値、及び暫定マスク周波数を、それぞれ、マスク量ＴＭ（３，ｉ），及び変数ｉとする。ここで、第３の関数Ｈ３（Ｔ）は、時間方向における、第３の継時ピークＰ３の時刻ＴＰ３からの時間差と、マスクされる最大音量との関係を示す関数である。
【０１００】
その後、マスク周波数決定部１３０は、時刻ｔのフレームのｉ番目の周波数帯におけるマスク量の最大値Max_TM_T、及び暫定マスク周波数Max_TM_freq_Tを、それぞれ、マスク量FM(3,i)，及び変数ｉとし、ステップＳ３０３１１の判定を行う。ここで、ｉ番目の周波数帯におけるマスク量の最大値Max_TM_Tが、ｉ−１番目の周波数帯までの処理におけるマスク量の最大値Max_TMよりも大きいと、マスク周波数決定部１３０は、ステップＳ３０３１２の処理を行う。すなわち、マスク周波数決定部１３０は、処理対象のフレームにおけるマスク量の最大値Max_TM及び第２のマスク周波数Max_TM_freqを、それぞれ、ｉ番目の周波数帯におけるマスク量の最大値Max_TM_T、及び変数ｉに更新する。一方、ｉ番目の周波数帯におけるマスク量の最大値Max_TM_Tが、ｉ−１番目の周波数帯までの処理におけるマスク量の最大値Max_TM以下であると、マスク周波数決定部１３０は、ステップＳ３０３１２の処理を省略する。すなわち、マスク周波数決定部１３０は、処理対象のフレームにおけるマスク量の最大値Max_TM及び第２のマスク周波数Max_TM_freqを、それぞれ、ｉ−１番目の周波数帯までの処理におけるマスク量の最大値Max_TM_T、及び１からｉ−１までのいずれかのままとする。
【０１０１】
本実施形態に係るマスク周波数決定部１３０は、上記のように、処理対象のフレームについての周波数スペクトルにおける周波数帯毎に、ステップＳ３０３（ステップＳ３０３０１〜Ｓ３０３１２）の処理を行う。これにより、処理対象のフレームにおいてマスク量TM(n,i)が最大値となる周波数帯が、第２のマスク周波数となる。
【０１０２】
上記の処理により第１のマスク周波数及び第２のマスク周波数を算出した後、通話装置１は、受話音から当該マスク周波数の成分を除去して出力する（ステップＳ４）。マスク周波数の成分を除去する処理は、受話音加工部１４０が行う。受話音加工部１４０は、例えば、図１０に示す処理を行う。
【０１０３】
図１０は、マスク周波数の成分を受話音から除去して出力する処理の内容を説明するフローチャートである。
【０１０４】
マスク周波数の成分を受話音から除去して出力する処理において、受話音加工部１４０は、まず、受話音の周波数スペクトルにおける第１のマスク周波数Max_FM_freqの値を０に変更する（ステップＳ４０１）。
【０１０５】
次に、受話音加工部１４０は、受話音の周波数スペクトルにおける第２のマスク周波数Max_TM_freqの値を０に変更する（ステップＳ４０２）。
【０１０６】
次に、受話音加工部１４０は、第１のマスク周波数及び第２のマスク周波数の値を０にした周波数スペクトルを音声波形に逆変換する（ステップＳ４０３）。ステップＳ４０３では、受話音加工部１４０は、ステップＳ２０１で音声波形を周波数スペクトルに変換する際の変換方法と対応する逆変換方法により、受話音の周波数スペクトルを音声波形に変換する。
【０１０７】
その後、受話音加工部１４０は、音声波形をレシーバ２に出力するとともに、第１のマスク周波数及び第２のマスク周波数の情報を成分抽出部１５０に出力し（ステップＳ４０４）、ステップＳ４の処理を終了する。
【０１０８】
このように、本実施形態に係る通話装置１は、第１のマスク周波数の成分及び第２のマスク周波数の成分を受話音から除去した加工受話音を生成し、当該加工受話音をレシーバ２から通話装置１の外部空間に出力する（放射する）。したがって、レシーバ２から出力された受話音をマイクロフォン３で収音した場合、マイク入力音における第１のマスク周波数及び第２のマスク周波数と対応する成分はほぼ０となる。ところが、レシーバ２から出力された受話音をマイクロフォン３で収音する際に、通話装置１の利用者が発話していたり、通話装置１の周囲に騒音が発生していたりすると、マイク入力音には受話音以外の音声が含まれる。マイク入力音に通話装置１の利用者の音声や、通話装置１の周囲に騒音が含まれるダブルトークの状態である場合、当該マイク入力音には、受話音から除去したマスク周波数の成分が含まれることが多い。このため、本実施形態の通話装置１では、マイク入力音における、受話音から除去したマスク周波数の成分に基づいて、マイク入力音がダブルトークの状態であるか否かを判定する。したがって、通話装置１では、上記のように、マイク入力音に含まれるマスク周波数の成分を抽出し（ステップＳ５）、ダブルトークの状態であるか否かを判定する（ステップＳ６）。ステップＳ５の処理は成分抽出部１５０が行い、ステップＳ６の処理はダブルトーク判定部１６０が行う。成分抽出部１５０は、マイク入力音における処理対象のフレームを音声波形から周波数スペクトルに変換した後、第１のマスク周波数及び第２のマスク周波数の成分を抽出する。ダブルトーク判定部１６０は、図１１の処理を行って、処理対象のフレームがダブルトークの状態であるか否かを判定する。
【０１０９】
図１１は、ダブルトークであるか否かを判定する処理の内容を説明するフローチャートである。
【０１１０】
ダブルトーク判定部１６０は、まず、マイク入力音の周波数スペクトルから抽出した第１のマスク周波数Max_FM_freqの値に基づいて、第１のパワーＰＦを算出する（ステップＳ６０１）。次に、ダブルトーク判定部１６０は、マイク入力音の周波数スペクトルから抽出した第２のマスク周波数Max_TM_freqの値に基づいて、第２のパワーＰＴを算出する（ステップＳ６０２）。ステップＳ６０１及びＳ６０２では、ダブルトーク判定部１６０は、既知の算出方法に基づいて、第１のパワーＰＦ及び第２のパワーＰＴを算出する。
【０１１１】
次に、ダブルトーク判定部１６０は、第１のパワーＰＦが第１のパワー閾値ＴＨ２よりも大きいか否かを判定する（ステップＳ６０３）。第１のパワー閾値ＴＨ２は、適宜選択可能である。ＰＦ≦ＴＨ２である場合（ステップＳ６０３；ＮＯ）、ダブルトーク判定部１６０は、マイク入力音における処理対象のフレームがダブルトークではないと判断し、ダブルトークであるか否かを示すフラグDT_flagを０にする（ステップＳ６０５）。
【０１１２】
一方、ＰＦ＞ＴＨ２である場合（ステップＳ６０３；ＹＥＳ）、ダブルトーク判定部１６０は、次に、第２のパワーＰＴが第２のパワー閾値ＴＨ３よりも大きいか否かを判定する（ステップＳ６０４）。第２のパワー閾値ＴＨ３は、適宜選択可能である。ＰＴ≦ＴＨ３である場合（ステップＳ６０４；ＮＯ）、ダブルトーク判定部１６０は、マイク入力音における処理対象のフレームがダブルトークではないと判断し、ダブルトークであるか否かを示すフラグDT_flagを０にする（ステップＳ６０５）。
【０１１３】
これに対し、ＰＴ＞ＴＨ３である場合（ステップＳ６０４；ＹＥＳ）、ダブルトーク判定部１６０は、マイク入力音における処理対象のフレームがダブルトークであると判断し、ダブルトークであるか否かを示すフラグDT_flagを１にする（ステップＳ６０６）。
【０１１４】
ステップＳ６０５又はＳ６０６において処理対象のフレームに対するフラグを設定すると、ダブルトーク判定部１６０は、当該フレームに対する判定処理を終了する。
【０１１５】
このようにマイク入力音における処理対象のフレームがダブルトークの状態であるか否かをフラグDT_flagの値で示示した場合、入力音加工部１７０の学習判定部１７１は、当該フラグDT_flagの値により伝達特性を学習するか否かを判定する。フラグDT_flagが０の場合（すなわちダブルトークの状態ではない場合）、学習判定部１７１は、伝達特性学習部１７２に伝達特性を学習させる。一方、フラグDT_flagが１の場合（すなわちダブルトークの状態である場合）、学習判定部１７１は、伝達特性を学習する処理を省略し、エコー成分抑圧部１７３に、過去フレームに対する処理で学習した伝達特性に基づくエコー成分の抑圧を行わせる。
【０１１６】
以上のように、本実施形態に係る通話装置１では、受話音に含まれる音声において人の知覚に影響を与えないマスク周波数の成分を除去してからレシーバ２を介して通話装置１の外部に出力する。このため、マイクロフォン３で収音したマイク入力音における上記のマスク周波数に有意な音声成分が含まれる場合、当該成分は、通話装置１の利用者の音声及び通話装置１の周囲の雑音等のダブルトーク成分であるとみなすことができる。しかも、受話音に含まれるマスク周波数の成分を除去したことにより、ダブルトーク成分の音量が小さい場合でも、ダブルトーク成分の有無を判定することが可能となり、マイク入力音がダブルトークの状態であるか否かを精度良く判定することが可能となる。加えて、本実施形態に係る通話装置１では、他の通話装置４から受信してレシーバ２に出力する受話音に含まれるマスク周波数の成分を除去し、当該マスク周波数の成分を除去した受話音をレシーバ２から出力する。このため、本実施形態に係る通話装置１では、受話音に基づいて生成した擬似エコー信号を利用してエコー成分の抑圧を制御する場合に比べて、処理量を低減させることが可能となる。よって、本実施形態によれば、通話装置におけるマイク入力音がダブルトークの状態であるか否かを効率よく、かつ正しく判定することが可能となる。これにより、ダブルトークの状態であるか否かの誤判定による誤った伝達特性の学習や、不適切な伝達特性によるエコー成分の抑圧を防ぐことが可能となる。
【０１１７】
なお、図５のフローチャートは、受話音から除去するマスク周波数を決定する処理の一例に過ぎない。マスク周波数を決定する処理は、図５のフローチャートに沿った処理に限らず、適宜変更可能である。例えば、図５のフローチャートにおけるステップＳ３０２の処理と、ステップＳ３０３の処理とは、順不同であり、ステップＳ３０３を先に行ってもよい。また、ステップＳ３０２の処理とステップＳ３０３の処理とを並列に行ってもよい。また、マスク周波数を決定する処理は、例えば、第１のマスク周波数と第２のマスク周波数とが同一周波数となった場合に、マスク量が３番目に大きい第３のマスク周波数を抽出する処理を含むものでもよい。更に、マスク周波数を決定する処理は、第１のマスク周波数及び第２のマスク周波数のいずれか一方のみを決定する処理であってもよい。また、第１のマスク周波数を算出する際には、例えば、ピーク周波数からの周波数差が所定の範囲内である周波数帯、すなわちピーク周波数の近傍の周波数帯のみを処理対象としてもよい。
【０１１８】
また、マスク周波数を算出する際に参照するマスク情報は、図２に示した関数Ｇ（ｆ），Ｈ（ｔ）に限らず、適宜変更可能である。
【０１１９】
また、図１１のフローチャートは、ダブルトークであるか否かを判定する処理の一例に過ぎない。ダブルトークであるか否かを判定する処理は、図１１のフローチャートに沿った処理に限らず、適宜変更可能である。例えば、ステップＳ６０１で第１のパワーＰＦを算出した後、ダブルトーク判定部１６０は、続けて、ステップＳ６０３の判定を行ってもよい。このようにすることで、例えば、第１のパワーＰＦに基づいてダブルトークではないと判定した場合に、第２のパワーＰＴを算出する処理を省略することが可能となり、ダブルトーク判定部１６０における処理量を低減することが可能となる。また、ステップＳ６０３及びＳ６０４の判定の代わりに、ダブルトーク判定部１６０は、例えば、ＰＦ＞ＴＨ２、又はＰＴ＞ＴＨ３である場合に処理対象のフレームがダブルトークの状態であると判定してもよい。更に、ダブルトーク判定部１６０と学習判定部１７１とを１つにまとめて、ステップＳ６０５，Ｓ６０６において伝達特性を学習するか否かを決定してもよい。
【０１２０】
また、マイク入力音がダブルトークの状態であるか否かの判定結果は、エコー成分の抑圧に用いる伝達特性を学習するか否かの判定に限らず、他の処理を行うか否かの判定に利用することも可能である。例えば、ダブルトークの状態であるか否かの判定結果は、電話会議システム等で音声データを話者毎に分類する処理に利用可能である。
【０１２１】
上記の実施形態に係る通話装置１は、例えば、携帯電話端末やスマートフォン等の通話機能を備えた移動端末に所定のエコー抑圧プログラムを実行させることにより実現可能である。
【０１２２】
図１２は、移動端末のハードウェア構成を示す図である。
図１２に示すように、移動端末７は、プロセッサ７０１と、メモリ７０２と、入力装置７０３と、表示装置７０４と、ＲＦ送受信機７０５と、アンテナ７０６と、レシーバ２と、マイクロフォン３とを備える。
【０１２３】
プロセッサ７０１は、Central Processing Unit（ＣＰＵ）やMicro Processing Unit（ＭＰＵ）等である。プロセッサ７０１は、オペレーティングシステムを含む各種のプログラムを実行することにより、移動端末７の全体の動作を制御する。また、プロセッサ７０１は、例えば、図３のステップＳ１〜Ｓ１１の処理を含むエコー抑圧プログラム等の各種のアプリケーションプログラムを実行する。プロセッサ７０１は、例えば、ベースバンド処理回路７０１ａと、アプリケーション処理回路７０１ｂとを含む。
【０１２４】
メモリ７０２は、図示しないRead Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む。メモリ７０２のＲＯＭには、例えば、移動端末７の起動時にプロセッサ７０１が読み出す所定の基本制御プログラム等が予め記録されている。一方、メモリ７０２のＲＡＭは、例えば、プロセッサ７０１が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。また、メモリ７０２は、プロセッサ７０１によって実行される各種のプログラムや各種のデータ等の記憶に利用可能である。メモリ７０２は、マスク情報、伝達特性、受話音における複数フレーム分の分析結果等の記憶に利用可能である。なお、メモリ７０２は、移動端末７に内蔵されたフラッシュメモリ等の不揮発性メモリ（Solid State Drive（ＳＳＤ）を含む）であってもよいし、例えば、Secure  Digital（ＳＤ）規格のメモリカード（フラッシュメモリ）等であってもよい。
【０１２５】
入力装置７０３は、例えば、キーボード装置やタッチパネル装置等である。移動端末７のオペレータ（利用者）が入力装置７０３に対して所定の操作を行うと、入力装置７０３は、その操作内容に対応付けられている入力情報をプロセッサ７０１に送信する。入力装置７０３は、例えば、通話を開始する命令、終了する命令等の入力に利用可能である。
【０１２６】
表示装置７０４は、例えば、液晶表示装置等の表示装置である。表示装置７０４は、通話相手を識別する名称、電話番号等の表示に利用可能である。
【０１２７】
ＲＦ送受信機７０５は、移動端末７を電話網等のネットワークに接続し、ネットワークを介した移動端末７と他の通話装置４とによる音声データの送受信を制御する装置である。ＲＦ送受信機７０５は、アンテナ７０６で受信した電波を電気信号に変換してプロセッサ７０１に渡すとともに、プロセッサ７０１から受け取った電気信号を電波としてアンテナ７０６から出力させる処理を行う。
【０１２８】
移動端末７では、例えば、オペレータが入力装置７０３等を利用して通話開始の命令を入力すると、プロセッサ７０１が、メモリ７０２のＲＡＭ等の非一時的な記録媒体に記憶させたエコー抑圧プログラムを読み出して実行する。エコー抑圧プログラムが図３のステップＳ１〜Ｓ１１の処理を含むプログラムである場合、移動端末７は、受話音からマスク周波数の成分を除去する処理と、マイク入力音からエコー成分を抑圧する処理とを繰り返す。エコー抑圧プログラムを実行している間、プロセッサ７０１は、図１の通話装置１における受話音分析部１２０、マスク周波数決定部１３０、受話音加工部１４０、成分抽出部１５０、ダブルトーク判定部１６０、及び入力音加工部１７０として機能する（動作する）。また、プロセッサ７０１がエコー抑圧プログラムを実行している間、ＲＦ送受信機７０５及びアンテナ７０６は、図１の通話装置１における送受信部１１０として機能する。更に、プロセッサ７０１がエコー抑圧プログラムを実行している間、メモリ７０２は、マスク情報記憶部１９１、分析結果保持部１９２、及び伝達特性記憶部１９３として機能する。
【０１２９】
なお、移動端末７は、例えば、Digital Signal Processor（ＤＳＰ）等のプロセッサ７０１とは別の演算装置を備えたものであり、当該別の演算装置に図３のステップＳ１〜Ｓ１１の処理の一部を行わせてもよい。
【０１３０】
また、本実施形態に係る通話装置１は、上記の移動端末７に限らず、インターネット等のネットワークを利用した音声データの送受信が可能なコンピュータに所定のエコー抑圧プログラムを実行させることによっても実現可能である。
【０１３１】
図１３は、コンピュータのハードウェア構成を示す図である。
図１３に示すように、コンピュータ８は、プロセッサ８０１と、主記憶装置８０２と、補助記憶装置８０３と、入力装置８０４と、出力装置８０５と、入出力インタフェース８０６と、通信制御装置８０７と、媒体駆動装置８０８と、を備える。コンピュータ８におけるこれらの要素８０１〜８０８は、バス８１０により相互に接続されており、要素間でのデータの受け渡しが可能になっている。
【０１３２】
プロセッサ８０１は、ＣＰＵやＭＰＵ等である。プロセッサ８０１は、オペレーティングシステムを含む各種のプログラムを実行することにより、コンピュータ８の全体の動作を制御する。また、プロセッサ８０１は、例えば、図３のステップＳ１〜Ｓ１１の処理を含む音声処理プログラム等の各種のアプリケーションプログラムを実行する。
【０１３３】
主記憶装置８０２は、図示しないRead Only Memory（ＲＯＭ）及びRandom Access Memory（ＲＡＭ）を含む。主記憶装置８０２のＲＯＭには、例えば、コンピュータ８の起動時にプロセッサ８０１が読み出す所定の基本制御プログラム等が予め記録されている。一方、主記憶装置８０２のＲＡＭは、プロセッサ８０１が、各種のプログラムを実行する際に必要に応じて作業用記憶領域として使用する。主記憶装置８０２のＲＡＭは、例えば、マスク情報、伝達特性、受話音における複数フレーム分の分析結果等の記憶に利用可能である。
【０１３４】
補助記憶装置８０３は、主記憶装置８０２のＲＡＭと比べて容量の大きい記憶装置であり、例えば、Hard Disk Drive（ＨＤＤ）や、フラッシュメモリのような不揮発性メモリ（Solid State Drive（ＳＳＤ）を含む）等である。補助記憶装置８０３は、プロセッサ８０１によって実行される各種のプログラムや各種のデータ等の記憶に利用可能である。補助記憶装置８０３は、例えば、図３のステップＳ１〜Ｓ１１の処理を含むエコー抑圧プログラムの記憶に利用可能である。また、補助記憶装置８０３は、例えば、マスク情報、伝達特性、受話音における複数フレーム分の分析結果等の記憶、受話音やマイク入力音の記憶等に利用可能である。
【０１３５】
入力装置８０４は、例えば、キーボード装置やタッチパネル装置等である。コンピュータ８のオペレータ（利用者）が入力装置８０４に対して所定の操作を行うと、入力装置８０４は、その操作内容に対応付けられている入力情報をプロセッサ８０１に送信する。入力装置８０４は、例えば、入力装置８０４は、例えば、通話を開始する命令、終了する命令等の入力に利用可能である。
【０１３６】
出力装置８０５は、例えば、液晶表示装置等の表示装置である。出力装置８０５は、通話相手を識別する名称、電話番号等の表示に利用可能である。
【０１３７】
入出力インタフェース８０６は、コンピュータ８と、他の電子機器とを接続する。入出力インタフェース８０６は、例えば、フォーンジャックや、Universal Serial Bus（ＵＳＢ）規格のコネクタ等を備える。入出力インタフェース８０６は、例えば、コンピュータ８と、レシーバ２及びマイクロフォン３を含むヘッドセット１０との接続に利用可能である。
【０１３８】
通信制御装置８０７は、コンピュータ８をインターネット等のネットワークに接続し、ネットワークを介したコンピュータ８と他の通信機器との各種通信を制御する装置である。通信制御装置８０７は、例えば、コンピュータ８と、他の通話装置４等との間での音声データの送受信に利用可能である。
【０１３９】
媒体駆動装置８０８は、可搬型記憶媒体８９０に記録されているプログラムやデータの読み出し、補助記憶装置８０３に記憶されたデータ等の可搬型記憶媒体９への書き込みを行う。媒体駆動装置８０８には、例えば、１種類又は複数種類の規格に対応したメモリカード用リーダ／ライタが利用可能である。媒体駆動装置８０８としてメモリカード用リーダ／ライタを用いる場合、可搬型記憶媒体９としては、メモリカード用リーダ／ライタが対応している規格、例えば、Secure  Digital（ＳＤ）規格のメモリカード（フラッシュメモリ）等を利用可能である。また、可搬型記録媒体９としては、例えば、ＵＳＢ規格のコネクタを備えたフラッシュメモリが利用可能である。更に、コンピュータ８が媒体駆動装置８０８として利用可能な光ディスクドライブを搭載している場合、当該光ディスクドライブで認識可能な各種の光ディスクを可搬型記録媒体９として利用可能である。可搬型記録媒体９として利用可能な光ディスクには、例えば、Compact Disc（ＣＤ）、Digital Versatile Disc（ＤＶＤ）、Blu-ray Disc（Blu-rayは登録商標）等がある。可搬型記録媒体９は、例えば、図３のステップＳ１〜Ｓ１１の処理を含むエコー抑圧プログラムの記憶に利用可能である。また、可搬型記録媒体９は、例えば、マスク情報、伝達特性、受話音における複数フレーム分の分析結果等の記憶、受話音やマイク入力音の記憶等に利用可能である。
【０１４０】
コンピュータ８は、例えば、オペレータが入力装置８０４等を利用して通話開始の命令を入力すると、プロセッサ８０１が、補助記憶装置８０３等の非一時的な記録媒体に記憶させたエコー抑圧プログラムを読み出して実行する。エコー抑圧プログラムが図３のステップＳ１〜Ｓ１１の処理を含むプログラムである場合、コンピュータ８は、受話音からマスク周波数の成分を除去して出力する処理と、マイク入力音からエコー成分を抑圧して出力する処理とを繰り返す。音声処理プログラムを実行している間、プロセッサ８０１は、図１の通話装置１における受話音分析部１２０、マスク周波数決定部１３０、受話音加工部１４０、成分抽出部１５０、ダブルトーク判定部１６０、及び入力音加工部１７０として機能する（動作する）。また、プロセッサ８０１がエコー抑圧プログラムを実行している間、通信制御装置８０７は、図１の通話装置１における送受信部１１０として機能する。更に、プロセッサ８０１がエコー抑圧プログラムを実行している間、主記憶装置８０２のＲＡＭ、補助記憶装置８０３、可搬型記録媒体９等の記録媒体は、マスク情報記憶部１９１、分析結果保持部１９２、及び伝達特性記憶部１９３として機能する。
【０１４１】
なお、通話装置１として動作させるコンピュータ８は、図１３に示した全ての要素８０１〜８０８を含む必要はなく、用途や条件に応じて一部の要素を省略することも可能である。例えば、コンピュータ８は、媒体駆動装置８０８が省略されたものであってもよい。
【０１４２】
以上記載した実施形態に関し、更に以下の付記を開示する。
（付記１）
外部装置から受信した受話音声における所定の周波数帯の成分を除去してレシーバに出力する受話音加工部と、
マイクロフォンから入力された入力音声における前記所定の周波数帯の成分を抽出する成分抽出部と、
前記受話音声と、前記入力音声とに基づいて前記レシーバから前記マイクロフォンに至るエコー経路の伝達特性を学習する伝達特性学習部と、
前記入力音声から抽出した前記所定の周波数帯の成分の大きさが閾値以下である場合に、前記伝達特性学習部に前記伝達特性を学習させる判定部と、
を備えることを特徴とする通話装置。
（付記２）
前記通話装置は、前記受話音声についての周波数スペクトルにおいてピークとなる周波数帯の成分に基づいて前記所定の周波数帯を決定する周波数決定部、を更に備える、
ことを特徴とする付記１に記載の通話装置。
（付記３）
前記周波数決定部は、１つの周波数スペクトルにおいてピークとなる周波数帯からの周波数差と、前記ピークとなる周波数帯の成分によりマスクされる最大音量との関係に基づいて、前記周波数スペクトルにおける成分の大きさが前記最大音量よりも小さい周波数帯を、前記所定の周波数帯に決定する、
ことを特徴とする付記２に記載の通話装置。
（付記４）
前記周波数決定部は、前記周波数スペクトルにおける成分の大きさが前記最大音量よりも小さい複数の周波数帯のうちの、前記最大音量との差が最大となる周波数帯を、前記所定の周波数帯に決定する、
ことを特徴とする付記３に記載の通話装置。
（付記５）
前記周波数決定部は、前記周波数スペクトルにおける成分の大きさが前記最大音量よりも小さい複数の周波数帯のうちの、前記ピークとなる周波数帯からの周波数差が所定の範囲内であり、かつ前記最大音量との差が最大となる周波数帯を、前記所定の周波数帯に決定する、
ことを特徴とする付記３に記載の通話装置。
（付記６）
前記周波数決定部は、時間方向で連続する複数の前記周波数スペクトルにおける周波数帯のなかから、成分の大きさの時間変化においてピークとなる時刻からの時間差と、前記ピークとなる時刻の成分によりマスクされる最大音量との関係に基づいて、現在の前記周波数スペクトルにおける成分の大きさが前記最大音量よりも小さい周波数帯を抽出し、抽出した前記周波数帯のなかから前記所定の周波数帯を決定する、
ことを特徴とする付記３に記載の通話装置。
（付記７）
前記周波数決定部は、現在の前記周波数スペクトルにおける成分の大きさが前記最大音量よりも小さい複数の前記周波数帯のうちの、前記最大音量との差が最大となる周波数帯を、前記所定の周波数帯に決定する、
ことを特徴とする付記６に記載の通話装置。
（付記８）
前記通話装置は、前記伝達特性に基づいて前記入力音声に含まれるエコー成分を抑圧するエコー成分抑圧部、を更に備える、
ことを特徴とする付記１に記載の通話装置。
（付記９）
外部装置から受信した受話音声における所定の周波数帯の成分を除去してレシーバに出力し、
マイクロフォンから入力された入力音声における前記所定の周波数帯の成分を抽出し、
前記入力音声から抽出した前記所定の周波数帯の成分の大きさが閾値以下である場合に、前記受話音声と、前記入力音声とに基づいて前記レシーバから前記マイクロフォンに至るエコー経路の伝達特性を学習し、
前記伝達特性に基づいて前記入力音声に含まれるエコー成分を抑圧する、
処理をコンピュータに実行させることを特徴とするエコー抑圧プログラム。
【符号の説明】
【０１４３】
１，４  通話装置
２  レシーバ
３  マイクロフォン
５，５０１  加工受話音
６  利用者の音声
７  移動端末
８  コンピュータ
９  可搬型記録媒体
１０  ヘッドセット
１１０  送受信部
１２０  受話音分析部
１３０  マスク周波数決定部
１４０  受話音加工部
１５０  成分抽出部
１６０  ダブルトーク判定部
１７０  入力音加工部
１７１  学習判定部
１７２  伝達特性学習部
１７３  エコー成分抑圧部
１９１  マスク情報記憶部
１９２  分析結果保持部
１９３  伝達特性記憶部
７０１，８０１  プロセッサ
７０１ａ  ベースバンド処理回路
７０１ｂ  アプリケーション処理回路
７０２  メモリ
７０３，８０４  入力装置
７０４  表示装置
７０５  ＲＦ送受信機
７０６  アンテナ
８０２  主記憶装置
８０３  補助記憶装置
８０５  出力装置
８０６  入出力インタフェース
８０７  通信制御装置
８０８  媒体駆動装置
【図１】
2018110301.tif 000003
【図２】
2018110301.tif 000004
【図３】
2018110301.tif 000005
【図４】
2018110301.tif 000006
【図５】
2018110301.tif 000007
【図６Ａ】
2018110301.tif 000008
【図６Ｂ】
2018110301.tif 000009
【図７】
2018110301.tif 000010
【図８Ａ】
2018110301.tif 000011
【図８Ｂ】
2018110301.tif 000012
【図９】
2018110301.tif 000013
【図１０】
2018110301.tif 000014
【図１１】
2018110301.tif 000015
【図１２】
2018110301.tif 000016
【図１３】
2018110301.tif 000017