IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社トランストロンの特許一覧

特開2022-151366エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム
<>
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図1
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図2
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図3
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図4
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図5
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図6
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図7
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図8
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図9
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図10
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図11
  • 特開-エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022151366
(43)【公開日】2022-10-07
(54)【発明の名称】エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラム
(51)【国際特許分類】
   G10L 21/0232 20130101AFI20220929BHJP
   G10L 21/0216 20130101ALI20220929BHJP
   H04R 3/02 20060101ALI20220929BHJP
   H04M 1/00 20060101ALI20220929BHJP
【FI】
G10L21/0232
G10L21/0216
H04R3/02
H04M1/00 V
【審査請求】未請求
【請求項の数】11
【出願形態】OL
(21)【出願番号】P 2021054402
(22)【出願日】2021-03-26
(71)【出願人】
【識別番号】391008559
【氏名又は名称】株式会社トランストロン
(74)【代理人】
【識別番号】100170070
【弁理士】
【氏名又は名称】坂田 ゆかり
(72)【発明者】
【氏名】里見 祐樹
【テーマコード(参考)】
5D220
5K127
【Fターム(参考)】
5D220CC01
5D220CC03
5D220CC06
5K127AA03
5K127BA03
5K127BB16
5K127CA35
5K127CB41
5K127HA11
5K127JA02
5K127MA02
(57)【要約】
【課題】非線形エコー成分が大きい場合であっても、エコー抑圧量を周波数毎に正確に推定することができる。
【解決手段】受話信号の各周波数における大きさの対数と、受話信号の周波数と、受話信号の大きさの総和又は任意の周波数範囲における受話信号の送話である総受話値の対数と、総受話値のエンベロープの対数とを変数とする推定エコー関数が記憶されている。推定エコーを表す関数に第2受話信号(受話信号を周波数の領域に変換した結果)の値を入力してエコー抑圧用マスクを生成し、このエコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを第2送話信号(送話信号を周波数の領域に変換した結果)に乗じることでエコー抑圧処理を行う。
【選択図】 図2
【特許請求の範囲】
【請求項1】
スピーカへ信号を伝送する受話側信号経路を受話信号が伝送され、前記受話信号により前記スピーカから出力された音声がマイクロホンに入力されることにより生じるエコーを抑圧するエコー抑圧装置であって、
前記受話側信号経路を伝送される学習用受話信号を周波数の領域に変換した第2学習用受話信号と、前記学習用受話信号により前記スピーカから出力された音が前記マイクロホンに入力されたときに前記マイクロホンから入力された信号を伝送する送話側信号経路を伝送される学習用信号を周波数の領域に変換した第2学習用信号とに基づいて算出された推定エコーであって、前記受話信号の各周波数における大きさの対数と、前記受話信号の周波数と、前記受話信号の大きさの総和又は任意の周波数範囲における前記受話信号の送話である総受話値の対数と、前記総受話値のエンベロープの対数とを変数とする推定エコー関数を記憶する記憶部と、
前記受話信号を周波数の領域に変換した第2受話信号の値を前記推定エコーを表す関数に入力してエコー抑圧用マスクを生成し、前記エコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを前記送話側信号経路を伝送される送話信号を周波数の領域に変換した第2送話信号に乗じることでエコー抑圧処理を行う非線形エコー抑圧部と、
を備えたことを特徴とするエコー抑圧装置。
【請求項2】
前記第2受話信号の値を前記推定エコーを表す関数に入力してダブルトーク検知用マスクを生成し、前記第2送話信号と、前記ダブルトーク検知用マスクとに基づいて前記マイクロホンに発話が入力されたか否かを逐次検知するダブルトーク検知部を有し、
前記非線形エコー抑圧部は、前記マイクロホンに発話が入力された場合には、前記エコー抑圧ゲインを前記マイクロホンに発話が入力されなかった場合より小さくする
ことを特徴とする請求項1に記載のエコー抑圧装置。
【請求項3】
前記ダブルトーク検知部は、前記第2送話信号の大きさと前記ダブルトーク検知用マスクの大きさとを周波数毎に比較し、前記第2送話信号の大きさが前記ダブルトーク検知用マスクの大きさを上回る周波数の数が第1閾値より小さいか否か、前記第2送話信号の大きさが前記ダブルトーク検知用マスクの大きさを上回る周波数帯域における前記第2送話信号の大きさの総和が第2閾値より小さいか否か、又は、前記第2送話信号の大きさが前記ダブルトーク検知用マスクの大きさを上回る周波数帯域における前記第2送話信号の大きさと前記ダブルトーク検知用マスクの大きさとの差の総和が第3閾値より小さいか否かに基づいて、前記マイクロホンに発話が入力されていないことを検知する
ことを特徴とする請求項2に記載のエコー抑圧装置。
【請求項4】
前記第2送話信号に含まれる雑音成分を推定するノイズ推定部と、
前記第2送話信号にノイズ抑圧ゲインを乗じてエコー除去信号から雑音信号を抑圧するノイズ抑圧部と、を備え、
前記非線形エコー抑圧部は、前記推定エコーと、前記雑音成分と、前記ノイズ抑圧ゲインとに基づいて前記エコー抑圧用マスクを求める
ことを特徴とする請求項1から3のいずれか一項に記載のエコー抑圧装置。
【請求項5】
前記第2送話信号に含まれる雑音成分を推定するノイズ推定部と、
前記第2送話信号にノイズ抑圧ゲインを乗じてエコー除去信号から雑音信号を抑圧するノイズ抑圧部と、を備え、
前記ダブルトーク検知部は、前記推定エコーと、前記雑音成分と、前記ノイズ抑圧ゲインとに基づいて前記ダブルトーク検知用マスクを求める
ことを特徴とする請求項2又は3に記載のエコー抑圧装置。
【請求項6】
前記非線形エコー抑圧部は、前記雑音成分と前記ノイズ抑圧ゲインとに基づいて許容される残留エコーの大きさを示す許容値を求め、前記エコー抑圧用マスクの大きさを前記許容値の大きさまで小さくするような前記エコー抑圧ゲインを前記第2送話信号に乗じる
ことを特徴とする請求項4又は5に記載のエコー抑圧装置。
【請求項7】
前記非線形エコー抑圧部は、前記第2送話信号の大きさが前記許容値より大きく前記エコー抑圧用マスク以下の場合には、前記第2送話信号の大きさから前記許容値を引いた値に基づいて前記エコー抑圧ゲインを求め、前記第2送話信号の値が前記許容値及び前記エコー抑圧用マスクより大きい場合には、前記エコー抑圧用マスクから前記許容値を引いた値に基づいて前記エコー抑圧ゲインを求める
ことを特徴とする請求項6に記載のエコー抑圧装置。
【請求項8】
前記推定エコーを表す関数において、各変数の係数は前記第2学習用信号から外れ値を除いたデータに基づいて求められる
ことを特徴とする請求項1から7のいずれか一項に記載のエコー抑圧装置。
【請求項9】
前記推定エコーを表す関数は、前記第2学習用信号から外れ値を除いたデータに基づいて各変数の係数が求められた第1関数と、外れ値を除かない前記第2学習用信号に基づいて各変数の係数が求められた第2関数と、を有し、
前記ダブルトーク検知用マスクは、前記第1関数に基づいて求められ、
前記エコー抑圧用マスクは、前記第2関数に基づいて求められる
ことを特徴とする請求項2、3又は5に記載のエコー抑圧装置。
【請求項10】
スピーカへ信号を伝送する受話側信号経路を受話信号が伝送され、前記受話信号により前記スピーカから出力された音声がマイクロホンに入力されることにより生じるエコーを抑圧するエコー抑圧方法であって、
前記受話側信号経路を伝送される学習用受話信号を周波数の領域に変換した第2学習用受話信号と、前記学習用受話信号により前記スピーカから出力された音が前記マイクロホンに入力されたときに前記マイクロホンから入力された信号を伝送する送話側信号経路を伝送される学習用信号を周波数の領域に変換した第2学習用信号とに基づいて算出され、記憶部に記憶された推定エコーであって、前記受話信号の各周波数における大きさの対数と、前記受話信号の周波数と、前記受話信号の大きさの総和である総受話値の対数と、前記総受話値のエンベロープの対数とを変数とする推定エコー関数を取得するステップと、
前記受話信号を周波数の領域に変換した第2受話信号の値を前記推定エコーを表す関数に入力してエコー抑圧用マスクを生成し、前記エコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを前記送話側信号経路を伝送される送話信号を周波数の領域に変換した第2送話信号に乗じることでエコー抑圧処理を行うステップと、
を含むことを特徴とするエコー抑圧方法。
【請求項11】
スピーカへ信号を伝送する受話側信号経路を受話信号が伝送され、前記受話信号により前記スピーカから出力された音声がマイクロホンに入力されることにより生じるエコーを抑圧するエコー抑圧プログラムであって、
コンピュータを、
前記受話側信号経路を伝送される学習用受話信号を周波数の領域に変換した第2学習用受話信号と、前記学習用受話信号により前記スピーカから出力された音が前記マイクロホンに入力されたときに前記マイクロホンから入力された信号を伝送する送話側信号経路を伝送される学習用信号を周波数の領域に変換した第2学習用信号とに基づいて算出された推定エコーであって、前記受話信号の各周波数における大きさの対数と、前記受話信号の周波数と、前記受話信号の大きさの総和である総受話値の対数と、前記総受話値のエンベロープの対数とを変数とする推定エコー関数を記憶する記憶部、
前記受話信号を周波数の領域に変換した第2受話信号の値を前記推定エコーを表す関数に入力してエコー抑圧用マスクを生成し、前記エコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを前記送話側信号経路を伝送される送話信号を周波数の領域に変換した第2送話信号に乗じることでエコー抑圧処理を行う非線形エコー抑圧部、
として機能させることを特徴とするエコー抑圧プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラムに関する。
【背景技術】
【0002】
特許文献1には、マイクとスピーカとを有する音声通信システムに使用されるエコーキャンセラ装置が開示されている。このエコーキャンセラ装置は、マイク入力信号から疑似エコー成分を除去して残差信号を出力するエコー消去部と、マイク入力信号と残差信号の比を示すpERL値を算出するpERL算出部と、マイク入力信号のうちのスピーカからマイクに入力したエコーに基づくエコー信号と、エコー信号から疑似エコー成分を減じて得られた残留エコー信号との比を示すERLE値を算出するERLE算出部と、ERLE値とpERL値との差分を示す減少度合を算出するpERL減少度合算出部と、減少度合をリニア値で示した値をKとし、ERLE値をリニア値で示した値をTとしたときに、式(K-1)T/K(T-1)から残留エコー抑圧量を算出する抑圧量算出部と、残差信号に残留エコー抑圧量を乗じることで、出力信号を生成する残留エコー抑圧処理部とを有する。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第6180689号
【発明の概要】
【発明が解決しようとする課題】
【0004】
一般的に、反射やスピーカの振動等により発生する非線形エコー成分が大きい場合には、エコー抑圧量の推定が適切に機能しないことが多い。特許文献1に記載のエコーキャンセラ装置では、反射時間が長く、受話に信号が無いフレームでは、エコー抑圧量が正確に推定できないおそれがある。
【0005】
本発明はこのような事情に鑑みてなされたもので、非線形エコー成分が大きい場合であっても、エコー抑圧量を周波数毎に正確に推定することができるエコー抑圧装置、エコー抑圧方法及びエコー抑圧プログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
上記課題を解決するために、本発明に係るエコー抑圧装置は、例えば、スピーカへ信号を伝送する受話側信号経路を受話信号が伝送され、前記受話信号により前記スピーカから出力された音声がマイクロホンに入力されることにより生じるエコーを抑圧するエコー抑圧装置であって、前記受話側信号経路を伝送される学習用受話信号を周波数の領域に変換した第2学習用受話信号と、前記学習用受話信号により前記スピーカから出力された音が前記マイクロホンに入力されたときに前記マイクロホンから入力された信号を伝送する送話側信号経路を伝送される学習用信号を周波数の領域に変換した第2学習用信号とに基づいて算出された推定エコーであって、前記受話信号の各周波数における大きさの対数と、前記受話信号の周波数と、前記受話信号の大きさの総和又は任意の周波数範囲における前記受話信号の送話である総受話値の対数と、前記総受話値のエンベロープの対数とを変数とする推定エコー関数を記憶する記憶部と、前記受話信号を周波数の領域に変換した第2受話信号の値を前記推定エコーを表す関数に入力してエコー抑圧用マスクを生成し、前記エコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを前記送話側信号経路を伝送される送話信号を周波数の領域に変換した第2送話信号に乗じることでエコー抑圧処理を行う非線形エコー抑圧部と、を備えたことを特徴とする。
【0007】
本発明に係るエコー抑圧装置によれば、受話信号の各周波数における大きさの対数と、受話信号の周波数と、受話信号の大きさの総和である総受話値の対数と、総受話値のエンベロープの対数とを変数とする推定エコー関数が記憶されており、この推定エコーを表す関数に第2受話信号(受話信号を周波数の領域に変換した結果)の値を入力してエコー抑圧用マスクを生成し、このエコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを第2送話信号(送話信号を周波数の領域に変換した結果)に乗じることでエコー抑圧処理を行う。これにより、非線形エコー成分が大きい場合であっても、エコー抑圧量を周波数毎に正確に推定することができる。その結果、通話品質を向上させることができる。
【0008】
前記第2受話信号の値を前記推定エコーを表す関数に入力してダブルトーク検知用マスクを生成し、前記第2送話信号と、前記ダブルトーク検知用マスクとに基づいて前記マイクロホンに発話が入力されたか否かを逐次検知するダブルトーク検知部を有し、前記非線形エコー抑圧部は、前記マイクロホンに発話が入力された場合には、前記エコー抑圧ゲインを前記マイクロホンに発話が入力されなかった場合より小さくしてもよい。これにより、近端発話があり、遠端の話者がエコーを不快と感じにくいと考えられるときにはエコーの抑圧を弱め、エコーを抑圧しすぎることで音が不自然になることを防ぐことができる。
【0009】
前記ダブルトーク検知部は、前記第2送話信号の大きさと前記ダブルトーク検知用マスクの大きさとを周波数毎に比較し、前記第2送話信号の大きさが前記ダブルトーク検知用マスクの大きさを上回る周波数の数が第1閾値より小さいか否か、前記第2送話信号の大きさが前記ダブルトーク検知用マスクの大きさを上回る周波数帯域における前記第2送話信号の大きさの総和が第2閾値より小さいか否か、又は、前記第2送話信号の大きさが前記ダブルトーク検知用マスクの大きさを上回る周波数帯域における前記第2送話信号の大きさと前記ダブルトーク検知用マスクの大きさとの差の総和が第3閾値より小さいか否かに基づいて、前記マイクロホンに発話が入力されていないことを検知してもよい。これにより、近端発話の有無を正確に検知することができる。
【0010】
前記第2送話信号に含まれる雑音成分を推定するノイズ推定部と、前記第2送話信号にノイズ抑圧ゲインを乗じてエコー除去信号から雑音信号を抑圧するノイズ抑圧部と、を備え、前記非線形エコー抑圧部は、前記推定エコーと、前記雑音成分と、前記ノイズ抑圧ゲインとに基づいて前記エコー抑圧用マスクを求めてもよい。これにより、ノイズに影響されず適切なエコー抑圧を行うことができる。
【0011】
前記第2送話信号に含まれる雑音成分を推定するノイズ推定部と、前記第2送話信号にノイズ抑圧ゲインを乗じてエコー除去信号から雑音信号を抑圧するノイズ抑圧部と、を備え、前記ダブルトーク検知部は、前記推定エコーと、前記雑音成分と、前記ノイズ抑圧ゲインとに基づいて前記ダブルトーク検知用マスクを求めてもよい。これにより、ノイズの影響による誤検知を防ぐことができる。
【0012】
前記非線形エコー抑圧部は、前記雑音成分と前記ノイズ抑圧ゲインとに基づいて許容される残留エコーの大きさを示す許容値を求め、前記エコー抑圧用マスクの大きさを前記許容値の大きさまで小さくするような前記エコー抑圧ゲインを前記第2送話信号に乗じてもよい。これにより、必要以上にエコーを抑圧しすぎないようにすることができる。
【0013】
前記非線形エコー抑圧部は、前記第2送話信号の大きさが前記許容値より大きく前記エコー抑圧用マスク以下の場合には、前記第2送話信号の大きさから前記許容値を引いた値に基づいて前記エコー抑圧ゲインを求め、前記第2送話信号の値が前記許容値及び前記エコー抑圧用マスクより大きい場合には、前記エコー抑圧用マスクから前記許容値を引いた値に基づいて前記エコー抑圧ゲインを求めてもよい。これにより、第2送話信号の大きさに応じて適切にエコーを抑圧することができる。
【0014】
前記推定エコーを表す関数において、各変数の係数は前記第2学習用信号から外れ値を除いたデータに基づいて求められてもよい。これにより、エコー抑圧用マスクの大きさが必要以上に大きくなることを防ぎ、エコーを抑圧し過ぎないようにすることができる。また、ダブルトーク検知用マスクの大きさが必要以上に大きくなることを防ぎ、近端発話の有無を正確に検知することができる。
【0015】
前記推定エコーを表す関数は、前記第2学習用信号から外れ値を除いたデータに基づいて各変数の係数が求められた第1関数と、外れ値を除かない前記第2学習用信号に基づいて各変数の係数が求められた第2関数と、を有し、前記ダブルトーク検知用マスクは、前記第1関数に基づいて求められ、前記エコー抑圧用マスクは、前記第2関数に基づいて求められてもよい。これにより、近端発話の有無を正確に検知しつつ、非線形エコーの抑圧を強くして十分なエコー抑圧を行うことができる。
【0016】
上記課題を解決するために、本発明に係るエコー抑圧方法は、例えば、スピーカへ信号を伝送する受話側信号経路を受話信号が伝送され、前記受話信号により前記スピーカから出力された音声がマイクロホンに入力されることにより生じるエコーを抑圧するエコー抑圧方法であって、前記受話側信号経路を伝送される学習用受話信号を周波数の領域に変換した第2学習用受話信号と、前記学習用受話信号により前記スピーカから出力された音が前記マイクロホンに入力されたときに前記マイクロホンから入力された信号を伝送する送話側信号経路を伝送される学習用信号を周波数の領域に変換した第2学習用信号とに基づいて算出され、記憶部に記憶された推定エコーであって、前記受話信号の各周波数における大きさの対数と、前記受話信号の周波数と、前記受話信号の大きさの総和である総受話値の対数と、前記総受話値のエンベロープの対数とを変数とする推定エコー関数を取得するステップと、前記受話信号を周波数の領域に変換した第2受話信号の値を前記推定エコーを表す関数に入力してエコー抑圧用マスクを生成し、前記エコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを前記送話側信号経路を伝送される送話信号を周波数の領域に変換した第2送話信号に乗じることでエコー抑圧処理を行うステップと、を含むことを特徴とする。
【0017】
上記課題を解決するために、本発明に係るエコー抑圧プログラムは、例えば、スピーカへ信号を伝送する受話側信号経路を受話信号が伝送され、前記受話信号により前記スピーカから出力された音声がマイクロホンに入力されることにより生じるエコーを抑圧するエコー抑圧プログラムであって、コンピュータを、前記受話側信号経路を伝送される学習用受話信号を周波数の領域に変換した第2学習用受話信号と、前記学習用受話信号により前記スピーカから出力された音が前記マイクロホンに入力されたときに前記マイクロホンから入力された信号を伝送する送話側信号経路を伝送される学習用信号を周波数の領域に変換した第2学習用信号とに基づいて算出された推定エコーであって、前記受話信号の各周波数における大きさの対数と、前記受話信号の周波数と、前記受話信号の大きさの総和である総受話値の対数と、前記総受話値のエンベロープの対数とを変数とする推定エコー関数を記憶する記憶部、前記受話信号を周波数の領域に変換した第2受話信号の値を前記推定エコーを表す関数に入力してエコー抑圧用マスクを生成し、前記エコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを前記送話側信号経路を伝送される送話信号を周波数の領域に変換した第2送話信号に乗じることでエコー抑圧処理を行う非線形エコー抑圧部、として機能させることを特徴とする。
なお、コンピュータプログラムは、インターネット等のネットワークを介したダウンロードによって提供したり、CD-ROMなどのコンピュータ読取可能な各種の記録媒体に記録して提供したりすることができる。
【発明の効果】
【0018】
本発明によれば、非線形エコー成分が大きい場合であっても、エコー抑圧量を周波数毎に正確に推定することができる。
【図面の簡単な説明】
【0019】
図1】第1の実施の形態に係るエコー抑圧装置1が設けられた音声通信システム100を模式的に示す図である。
図2】エコー抑圧装置1の機能ブロックの概略を示す図である。
図3】エコー抑圧装置1において推定エコーを算出する関数を求めるときの機能ブロックの概略を示す図である。
図4】ある時刻における学習用受話信号[i]に対する学習用信号[i]の散布図の一例であり、(A)は学習用受話信号の各周波数におけるパワースペクトルの対数と学習用信号の各周波数におけるパワースペクトルの対数の散布図であり、(B)は学習用受話信号の周波数と学習用信号の各周波数におけるパワースペクトルの対数の散布図であり、(C)は学習用受話信号の総受話パワースペクトルの対数と学習用信号の各周波数におけるパワースペクトルの対数の散布図であり、(D)は総受話パワースペクトルのエンベロープの対数と学習用信号の各周波数におけるパワースペクトルの対数の散布図である。
図5】受話のパワースペクトルの対数と送話のパワースペクトルの対数の散布図である。
図6】受話の周波数の対数と送話のパワースペクトルの対数の散布図である。
図7】学習用受話信号の総受話パワースペクトルの対数と送話のパワースペクトルの対数の散布図である。
図8】学習用受話信号の総受話パワースペクトルのエンベロープの対数と送話のパワースペクトルの対数の散布図である。
図9】ある時刻における1フレームの被抑圧信号とダブルトーク検知用マスクとを比較する様子を示す図である。
図10】ある時刻における1フレームの被抑圧信号とエコー抑圧用マスクとを比較する様子を示す図である。
図11】許容値[i]の一例を示すグラフである。
図12】エコー抑圧装置1がエコーを低減する処理の流れを示すフローチャートである。
【発明を実施するための形態】
【0020】
以下、本発明に係るエコー抑圧装置の実施形態を、図面を参照して詳細に説明する。エコー抑圧装置は、音声通信システムにおいて、スピーカから出力された音声信号がマイクロホンに入力されることにより生じるエコーを抑圧する装置である。
【0021】
<第1の実施の形態>
図1は、第1の実施の形態に係るエコー抑圧装置1が設けられた音声通信システム100を模式的に示す図である。音声通信システム100は、主として、マイクロホン51及びスピーカ52を有する端末50と、2台の携帯電話53、54と、スピーカアンプ55と、エコー抑圧装置1とを有する。
【0022】
音声通信システム100は、端末50(近端端末)を利用する近端話者(近端側にいる利用者A)が、携帯電話54(遠端端末)を利用する遠端話者(遠端側にいる利用者B)と音声通信を行なうシステムである。携帯電話54を介して入力された音声信号をスピーカ52によって拡声出力し、かつ、近端側にいる利用者Aの発する音声をマイクロホン51により集音して携帯電話54へ伝送することで、利用者Aは、携帯電話53を把持することなく拡声通話(ハンズフリー通話)が可能となる。携帯電話53と携帯電話54とは、一般的な電話回線により接続されている。
【0023】
エコー抑圧装置1は、例えば、音声通信システム100内の通信端末等(例えば、車載装置、会議システム、携帯端末)に搭載される専用ボードとして構築されてもよい。また、エコー抑圧装置1は、例えば、主として、情報処理を実行するためのCPU(Central Processing Unit)などの演算装置、RAM(Random Access Memory)やROM(Read Only Memory)などの記憶装置を含むコンピュータシステム及びソフトウエア(エコー抑圧プログラム)によって構成されてもよい。エコー抑圧プログラムは、コンピュータ等の機器に内蔵されている記憶媒体としてのSSDや、CPUを有するマイクロコンピュータ内のROM等に予め記憶しておき、そこからコンピュータにインストールしてもよい。また、エコー抑圧プログラムは、半導体メモリ、メモリカード、光ディスク、光磁気ディスク、磁気ディスク等のリムーバブル記憶媒体に、一時的あるいは永続的に格納(記憶)しておいてもよい。
【0024】
図2は、エコー抑圧装置1の機能ブロックの概略を示す図である。エコー抑圧装置1は、機能的には、主として、エコー除去部11と、周波数分析器(FFT部)12、22と、ノイズ推定部13と、ノイズ抑圧部14と、ダブルトーク検知部15と、非線形エコー抑圧部16と、ノイズ重畳部17と、復元部(IFFT部)18と、ダイナミックレンジコントロール21と、記憶部23と、を有する。図2において、上側の信号経路は、マイクロホン51から入力された入力信号を伝送する送話側信号経路であり、下側の信号経路は、スピーカ52へ信号を伝送する受話側信号経路である。なお、エコー抑圧装置1の機能構成要素は、処理内容に応じてさらに多くの構成要素に分類されてもよいし、1つの構成要素が複数の構成要素の処理を実行してもよい。
【0025】
エコー除去部11は、例えば、適応フィルタを用いてエコーを除去する。エコー除去部11は、与えられた手順に従ってフィルタ係数を更新して、受話側信号経路を伝送される信号から擬似エコー信号を生成し、送話側信号経路を伝送される信号から擬似エコー信号を減算することで、エコーを除去するものである。なお、適応フィルタについては既に公知であるため、説明を省略する。
【0026】
なお、本実施の形態では、エコー除去部11に適応フィルタを適用したが、その他の公知のエコー除去技術をエコー除去部11に適用することもできる。また、エコー除去部11は必須ではないが、エコーの一部が除去された学習用信号を用いてマスクを生成することで、近端発話(利用者A(図1参照)の発話)があることをより正確に検知することができるため、エコー除去部11を設けることが望ましい。
【0027】
ダイナミックレンジコントロール21は、ダブルトーク検知部15(後に詳述)により近端発話があることが検知された場合に、入力された受話信号のうち閾値より大きい受信信号に対して予め定められた係数(係数は1より小さい値)で増幅(すなわち、圧縮)を行い、出力を行う。なお、ダイナミックレンジコントロール21は、端末50が搭載されている環境の雑音等によって自動的にゲインを変えたり、受話信号の大きさに応じて自動的にゲインを変えたりするゲイン調整部を有していてもよい。
【0028】
周波数分析器(FFT部)12、22は、信号に対して高速フーリエ変換(FFT、Fast Fourier Transform)を行う。FFT部12は、送話側信号経路を伝送される信号、ここではエコー除去部11を通過した信号に対して高速フーリエ変換を行い、FFT部22は、受話側信号経路を伝送される信号に対して高速フーリエ変換を行う。FFT部12、22は、時系列に並んだ信号(時間の領域)を周波数の集合で表す信号(周波数の領域)に変換する。以下、時間に依存する信号を・・・[t]で示し、周波数に依存する信号を・・・[i]で示す。
【0029】
ノイズ推定部13は、マイクロホン51から入力されて送話側信号経路を伝送される送話信号に対してエコー除去部11でエコーが除去され、FFT部12で周波数の領域に変換されたエコー除去信号[i]に含まれる雑音成分、すなわち推定雑音信号のパワースペクトル[i](以下、推定ノイズパワースペクトル[i]という)を周波数ごとに推定する。推定ノイズパワースペクトル[i]は、ノイズ抑圧部14、ダブルトーク検知部15、非線形エコー抑圧部16及びノイズ重畳部17に出力される。
【0030】
ノイズ抑圧部14は、推定ノイズパワースペクトル[i]に周波数に依存する信号であるノイズ抑圧ゲイン(以下、ノイズ抑圧ゲイン[i]という)を乗じてエコー除去信号[i]から雑音信号を抑圧し、被抑圧信号[i]を生成する。ノイズ抑圧部14は、スペクトルサブトラクション法、ウィナーフィルタ等の公知の雑音抑制方法を用いて雑音信号を抑圧し、ノイズ抑圧ゲイン[i]は、用いる雑音抑制方法に応じてノイズ抑圧部14で算出される。算出されたノイズ抑圧ゲイン[i]は、ダブルトーク検知部15に出力される。なお、ノイズ推定部13及びノイズ抑圧部14は必須ではない。
【0031】
記憶部23は、推定エコー算出部24(図3参照)により生成されたマスクを記憶する。以下、マスクの生成について詳細に説明する。マスクは、エコー抑圧装置1がエコーを抑圧する処理を行なう前に、前もって生成される。
【0032】
図3は、エコー抑圧装置1において推定エコーを算出する関数を求めるときの機能ブロックの概略を示す図である。エコー抑圧装置1は、推定エコー算出部24を機能的に有する。推定エコーの算出処理は、主として、推定エコー算出部24で行われる。
【0033】
推定エコーの算出処理について詳細に説明する。まず、エコー除去部11において十分に適応フィルタの学習を終えた後に、近端発話がなく、背景ノイズが十分小さい状況下で、受話側信号経路に学習用受話信号を伝送させて、学習用受話信号によりスピーカ52から音を出力させる遠端側の片側発話(シングルトーク)を繰り返す。そして、シングルトーク時に送話側信号経路を伝送される信号を学習用信号とする。エコー抑圧装置1においては、エコー除去部11によりエコーが除去された信号が学習用信号となる。
【0034】
時間に依存する信号である学習用信号(以下、学習用信号[t]という)は、FFT部12に入力される。FFT部12は、学習用信号[t]に対して高速フーリエ変換を行って、周波数に依存する信号である学習用信号(以下、学習用信号[i]という)を生成し、推定エコー算出部24に入力する。
【0035】
時間に依存する信号である学習用受話信号(以下、学習用受話信号[t]という)は、FFT部22に入力される。FFT部22は、学習用受話信号[t]に対して高速フーリエ変換を行って、周波数に依存する信号である学習用受話信号(以下、学習用受話信号[i]という)を生成し、推定エコー算出部24に入力する。
【0036】
推定エコー算出部24は、学習用信号[i]及び学習用受話信号[i]を記憶部23に記憶する。また、推定エコー算出部24は、記憶部23に記憶された学習用信号[i]及び学習用受話信号[i]についてのパワースペクトルを一定区間毎に計算して、複数の学習用パワースペクトルを求める。ここで、一定区間とは、任意に定められた所定の時間領域である。推定エコー算出部24は、学習用パワースペクトルを記憶部23に記憶する。
【0037】
なお、パワースペクトルP[i]とは、高速フーリエ変換によって求められたフーリエスペクトルX[i]の2乗で表される(数式(1)参照)。
【0038】
P[i]=|X[i]|2=|X[i]|×|X[i]| ・・・(1)
【0039】
推定エコー算出部24は、記憶部23に記憶された学習用信号[i]、学習用受話信号[i]及び学習用パワースペクトルに基づいて、学習用信号[i]と学習用受話信号[i]の散布図を複数作成する。
【0040】
図4は、ある時刻(例えば時刻t1)における学習用受話信号[i]に対する学習用信号[i]の散布図の一例であり、(A)は各周波数における学習用受話信号の大きさ(学習用受話信号[t]のパワースペクトル)の対数と学習用信号の各周波数におけるパワースペクトルの対数の散布図であり、(B)は学習用受話信号の周波数と学習用信号の各周波数におけるパワースペクトルの対数の散布図であり、(C)は学習用受話信号の大きさの総和である総受話パワースペクトル(本発明の総受話値に相当)の対数と学習用信号の各周波数におけるパワースペクトルの対数の散布図であり、(D)は総受話パワースペクトルのエンベロープの対数と学習用信号の各周波数におけるパワースペクトルの対数の散布図である。
【0041】
例えば、図4(A)、(C)に示すように、学習用信号のパワースペクトルが同じであっても、学習用信号、すなわちエコーのパワースペクトルは様々である。したがって、本実施の形態では、学習用信号のパワースペクトルのみならず、横軸を変えた複数の散布図に基づいて推定エコーを算出する。
【0042】
ここで、学習用信号の各周波数におけるパワースペクトルは、学習用受話信号によるエコーのパワースペクトルを意味する。また、総受話パワースペクトルは、学習用信号の各周波数におけるパワースペクトルの総和、すなわちFFT部22を通る前の学習用受話信号[t]のパワースペクトルの総和と同じであり、以下の数式(2)で表される。
【0043】
【数1】
【0044】
なお、総受話パワースペクトルは、学習用信号の任意の周波数の範囲における、各周波数におけるパワースペクトルの総和としてもよい。このときの総受話パワースペクトル、以下の数式(3)で表される。ここで、Aは0以上であり、Bは最大の周波数より小さい(A>0、B<F_MAX)。
【数2】
【0045】
ダブルトーク検知部15が発話検知を行う(後に詳述)ときに、学習用信号の全ての各周波数のパワースペクトルの総和(数式(2))を用いる場合より、学習用信号の任意の周波数の範囲のパワースペクトルの総和と(数式(3))を用いる場合に精度がいい場合があり得る。したがって、このような場合には、推定エコー算出部24は、数式(3)を用いて総受話パワースペクトルを求めることが望ましい。
【0046】
なお、図4に示す散布図は一例であり、音の反射の状況、スピーカ52やマイクロホン51の配置、スピーカ52の形状、エコー除去部11の有無等により異なる散布図となる。
【0047】
図4に示すように、学習用受話信号の対数や周波数の情報と、学習用信号、すなわちエコーのパワースペクトルとの間に一定の関係が成立する。本実施の形態では、あらかじめ十分な学習用信号[i]及び学習用受話信号[i]を取得しておき、これらの間の一定の関係に基づいて推定エコー量を求める。
【0048】
具体的には、推定エコー算出部24は、以下の数式(4)を用いて推定エコー関数を算出する。推定エコー関数(推定エコーパワースペクトル[i])は、周波数に依存する信号であり、学習用受話信号の各周波数における大きさの対数と、学習用受話信号の周波数と、学習用受話信号の総受話パワースペクトルの対数と、学習用受話信号の総受話値のエンベロープの対数とを変数とする関数で表される。
【0049】
推定エコーパワースペクトル[i]=α×受話パワースペクトル[i]+β×周波数+γ×総受話パワースペクトル+δ×総受話パワースペクトルのエンベロープ・・・(4)
【0050】
推定エコー関数の算出について図5図8を用いて詳しく説明する。推定エコー算出部24は、受話パワースペクトル[i]の係数α、周波数の係数β、総受話パワースペクトルの係数γ、総受話パワースペクトルのエンベロープの係数δを順番に算出する。各変数の係数α、β、γ、δは学習用信号[i]から外れ値を除いたデータに基づいて求められる。
【0051】
図5は、学習用受話信号の各周波数におけるパワースペクトル(以下、受話のパワースペクトルという)の対数と学習用信号の各周波数におけるパワースペクトル(以下、送話のパワースペクトルという)の対数の散布図である。図5では、測定されたデータがプロットされており、αが線で示されている。
【0052】
αは、受話のパワースペクトルの対数と、送話のパワースペクトルの対数の最大値との関係を示す。αは、受話のパワースペクトルの対数と送話のパワースペクトルの対数の散布図から外れ値を除去した結果に基づいて求められる。αは、線形関数(条件分岐を有しない)又は非線形関数(条件分岐を有する)で表される。
【0053】
図5に示すように、受話のパワースペクトルが大きいと送話のパワースペクトル(すなわち、エコー)が大きくなる訳ではなく、受話のパワースペクトルがある程度より大きくなるとエコーが小さくなっている。スピーカ52の特性(音が出せない領域がある)や、FFT部12より前段にエコー除去部11が設けられていることが理由である。図5に示す例では、αは数式(5)及び数式(6)で示される。このように、αは非線形関数である。
【0054】
受話のパワースペクトルの対数<-1の場合
α=0.5×受話のパワースペクトルの対数-0.5・・・(5)
【0055】
受話のパワースペクトルの対数≧-1の場合
α=-1.0×受話のパワースペクトルの対数-2.0・・・(6)
【0056】
なお、エコー除去部11が設けられていない場合には、図5に示す例と比べ、αを示す線のピークが右側にずれ、ピーク以降の下降線の傾きが小さくなるが、αは非線形関数(条件分岐有)であることに変わりはない。
【0057】
αが算出されたら、推定エコー算出部24はβを算出する。図6は、学習用受話信号の周波数(以下、受話の周波数という)の対数と送話のパワースペクトルの対数の散布図である。図6では、測定されたデータからα成分を減じた結果がプロットされており、βが線で示されている。
【0058】
βは、受話の周波数と、送話のパワースペクトルの対数の最大値との関係を示す。βは、受話の周波数と送話のパワースペクトルの対数の散布図から外れ値を除去した結果に基づいて求められる。βは、線形関数又は非線形関数で表される。
【0059】
スピーカ52には低周波や高周波は鳴らし難いという特性があるため、図6において、低周波や高周波についてはエコーが小さくなっている。また、端末50が車両内に設けられている場合には、図6に示すように、途中環境の影響(反射等)でエコーが小さくなるディップが1kHz近傍に存在する。したがって、βは非線形関数である。
【0060】
βが算出されたら、推定エコー算出部24はγを算出する。図7は、学習用受話信号の総受話パワースペクトルの対数と送話のパワースペクトルの対数の散布図である。図7では、測定されたデータからα成分及びβ成分を減じた結果がプロットされており、γが線で示されている。
【0061】
例えば、スピーカ52から100Hzと110Hzの音を出力するとき、スピーカ52から100Hzと110Hzに加えて105Hzの音が鳴ってしまうことがある。したがって、本来、鳴らしたい周波数以外の音が鳴っているかどうかという情報を参照するため、本実施の形態では、推定エコー関数(数式(4))に総受話パワースペクトルの対数を変数とする項を加える。
【0062】
γは、総受話パワースペクトルの対数と、送話のパワースペクトルの対数の最大値との関係を示す。γは、受話の周波数と送話のパワースペクトルの対数の散布図から外れ値を除去した結果に基づいて求められる。γは、線形関数又は非線形関数で表される。図7に示す例では、γは非線形関数である。
【0063】
γが算出されたら、推定エコー算出部24はδを算出する。図8は、学習用受話信号の総受話パワースペクトルのエンベロープの対数と送話のパワースペクトルの対数の散布図である。図8では、測定されたデータからα成分、β成分及びγ成分を減じた結果がプロットされており、δが線で示されている。
【0064】
車内での音の反射や、スピーカ52の振動等がスピーカ52から音になって出力されるため、学習用受話信号が無くてもエコーが存在し得る。したがって、現時点の総受話パワースペクトルのみならず、直近の一定期間の学習用信号を参照してエコーを推定する必要がある。そのため、本実施の形態では、推定エコー関数(数式(4))に総受話パワースペクトルのエンベロープの対数を変数とする項を加える。
【0065】
エンベロープAは、直近の一定期間における最大値であり、時定数B、総受話パワースペクトルCを用いて、以下の数式(7)のように漸次算出される。本実施の形態では、時定数Bを0.5~1とする。
【0066】
If(A<C):
A=C
Else:
A=B×A+(1-B)×C ・・・(7)
【0067】
δは、総受話パワースペクトルのエンベロープの対数と、送話のパワースペクトルの対数の最大値との関係を示す。δは、受話の周波数と送話のパワースペクトルの対数の散布図から外れ値を除去した結果に基づいて求められる。δは、線形関数又は非線形関数で表される。図8に示す例では、δは線形関数である。
【0068】
このようにして推定エコー関数(推定エコーパワースペクトル[i]を表す関数)が算出されたら、推定エコー算出部24は、推定エコー関数を記憶部23に記憶する。
【0069】
図2の説明に戻る。図2の説明において、マイクロホン51から入力される入力信号には、受話側信号経路を伝送される受話信号によりスピーカ52から出力された音及びそのエコー、マイクロホン51に入力されたノイズ、近端側にいる利用者Aの発話(図1参照)によりマイクロホン51に入力された音(近端発話)が含まれる。
【0070】
ダブルトーク検知部15は、受話側信号経路を伝送される受話信号[t]をFFT部22で周波数に依存する信号に変換した受話信号[i]と、マイクロホン51から入力信号が入力され、送話側信号経路を伝送される送話信号[i](ここでは、エコー除去部11、FFT部12及びノイズ抑圧部14を通過した後の被抑圧信号)と、ダブルトーク検知用マスクとに基づいてダブルトーク状態であるか否かを逐次検知する。
【0071】
なお、ダブルトーク状態とは、近端発話及び遠端発話が有る状態であり、シングルトーク状態とは近端発話のみ又は遠端発話のみの状態である。本実施の形態は、ダブルトーク検知部15は、近端発話の有無を検知する方法に特徴があり、遠端発話の有無を検知する方法は問わない。例えば、ダブルトーク検知部15は、総受話パワースペクトルのエンベロープが閾値より大きい場合に遠端発話が有ると検知してもよい。
【0072】
以下、ダブルトーク検知部15が近端発話の有無を検知する方法について説明する。ダブルトーク検知部15には、受話信号[i]及び送話信号[i]が逐次入力される。ダブルトーク検知部15は、受話信号[i]及び送話信号[i]が入力された(サンプル点が取得された)ら、記憶部23に記憶された推定エコーパワースペクトル[i]に基づいてダブルトーク検知用マスクを生成し、ダブルトーク状態であるか否かを検知する。また、ダブルトーク検知部15は、ダブルトーク状態であるか否かを検知する処理を、サンプル点が取得される毎に行う。
【0073】
まず、ダブルトーク検知用マスクについて説明する。ダブルトーク検知部15は、推定エコーパワースペクトル[i]と、推定ノイズパワースペクトル[i]と、ノイズ抑圧ゲイン[i]とに基づいてダブルトーク検知用マスクを算出する。具体的には、ダブルトーク検知用マスクは、数式(8)に示すように、推定エコーパワースペクトル[i]に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項を加算して求められる。ダブルトーク検知用マスクは周波数に依存する信号であるため、以下ダブルトーク検知用マスク[i]という。
【0074】
ダブルトーク検知用マスク[i]=推定エコーパワースペクトル[i]+推定ノイズパワースペクトル[i]×ノイズ抑圧ゲイン[i]・・・(8)
【0075】
数式(8)において、推定エコーパワースペクトル[i]は、受話信号[i]の値を推定エコーを表す関数(数式(4))に入力することで求められる。推定ノイズパワースペクトル[i]はノイズ推定部13で求められ、ノイズ抑圧ゲイン[i]は記憶部23に記憶されている。
【0076】
次に、ダブルトーク状態か否か検知する処理について、図9を用いて説明する。図9は、ある時刻における1フレームの被抑圧信号とダブルトーク検知用マスクとを比較する様子を示す図である。図9において、各プロットが被抑圧信号であり、線がダブルトーク検知用マスクである。また、図9の横軸は被抑圧信号の周波数であり、縦軸は被抑圧信号のパワースペクトルの対数である。
【0077】
ダブルトーク検知部15は、被抑圧信号とダブルトーク検知用マスクとを周波数毎に比較してダブルトーク状態であるか否かを検知する。ダブルトーク状態であるか否かを検知する方法として、以下のパターンA、B、Cの3通りの方法がある。パターンA、B、Cは、図9のプロットがダブルトーク検知用マスクを超えているときに、それが近端発話によるものなのか、外れ値なのかを判定するための方法である。
【0078】
<パターンA>
ダブルトーク検知部15は、周波数毎に、被抑圧信号の大きさとダブルトーク検知用マスクの大きさとを比較し、被抑圧信号の大きさがダブルトーク検知用マスクの大きさを上回る周波数の数(以下、超過数という)を数える。言い換えれば、図9に示す散布図において、ダブルトーク検知用マスクよりも上側にあるプロットの数を数える。ダブルトーク検知部15は、超過数が予め用意した閾値I(第1閾値に相当)以下であるかを求める。なお、閾値Iは、任意の値に設定することができる。
【0079】
<パターンB>
ダブルトーク検知部15は、周波数毎に、被抑圧信号の大きさとダブルトーク検知用マスクの大きさとを比較し、被抑圧信号の大きさがダブルトーク検知用マスクの大きさを上回る周波数における被抑圧信号の大きさの総和を算出する。言い換えれば、図9に示す散布図において、ダブルトーク検知用マスクよりも上側にあるプロットの値(図9の2点鎖線参照)の総和を求める。
【0080】
例えば、被抑圧信号の大きさの総和は、被抑圧信号のパワースペクトルの対数の値から定数(例えば、-7)を引いた値である。被抑圧信号のパワースペクトルの対数は負の値を取り得るため、負の値を減じることで正の値にする。また、例えば、被抑圧信号の大きさの総和は、被抑圧信号のパワースペクトルの総和であってもよい。被抑圧信号のパワースペクトルは対数をとっておらず正の値であるため、単に総和を求めるだけでよい。
【0081】
ダブルトーク検知部15は、被抑圧信号の大きさの総和が予め用意した閾値II(第2閾値に相当)以下であるかを求める。なお、閾値IIは、任意の値に設定することができる。
【0082】
<パターンC>
ダブルトーク検知部15は、周波数毎に、被抑圧信号の大きさとダブルトーク検知用マスクの大きさとを比較し、被抑圧信号の大きさがダブルトーク検知用マスクの大きさを上回る周波数における被抑圧信号の大きさ(ここでは、被抑圧信号のパワースペクトルの対数)とダブルトーク検知用マスク大きさとの差の総和を算出する。言い換えれば、図9に示す散布図において、ダブルトーク検知用マスクよりも上側にあるプロットの大きさとダブルトーク検知用マスクの大きさとの差(図9の点線参照)の総和を求める。
【0083】
ダブルトーク検知部15は、被抑圧信号の大きさとダブルトーク検知用マスク大きさとの差の総和が予め用意した閾値III(第3閾値に相当)以下であるかを求める。なお、閾値IIIは、任意の値に設定することができる。
【0084】
ダブルトーク検知部15は、パターンA~Cのいずれかの方法において算出された値が閾値(閾値I、II又はIII)以上か否かを検知する。そして、算出された値が閾値以上となるフレームが連続して所定数(例えば、2フレーム)以上となる場合に、近端発話があると判定する。
【0085】
例えば、ダブルトーク検知部15は、算出された値が閾値以上となった場合にはカウンターの値を1増やし(カウントアップ)、算出された値が閾値未満の場合にはカウンターの値を1減らす(カウントダウン)又はカウンターを0にする。そして、ダブルトーク検知部15は、カウンターの値が閾値(例えば、2)以上となったときに近端発話があると判定する。
【0086】
パターンCは、計算量が最も多いが、ダブルトーク検知用マスクを超えているときに、それが近端発話によるものなのか、外れ値なのかを最も正確に判定することができる。
【0087】
なお、ダブルトーク検知部15は、例えば、近端発話のみの状態から遠端発話のみの状態に移行した場合、ダブルトーク状態から近端発話のみ、遠端発話のみ又は近端発話及び遠端発話がない状態に移行した場合には、ダブルトーク状態であるか否かを検知しなくてもよい。特に、ダブルトーク状態から近端遠端発話がない状態に移行した場合には、まだエコーが残っている可能性が高く、ダブルトーク状態から遠端発話がない状態に移行した場合には、近端発話がある可能性が高いため、移行後所定の時間はダブルトーク状態であるか否かを検知しなくてもよい。
【0088】
図2の説明に戻る。非線形エコー抑圧部16は、マイクロホン51から入力信号が入力され、送話側信号経路を伝送される送話信号[i](ここでは、エコー除去部11、FFT部12及びノイズ抑圧部14を通過した後の被抑圧信号)に対して非線形エコーを抑圧する処理(以下、非線形エコー抑圧処理と言う)を行う。本実施の形態では、非線形エコー抑圧部16は、推定エコーに基づいて生成されたエコー抑圧用マスクに基づいて算出されるエコー抑圧ゲインを送話信号[i]に乗じることで非線形エコー抑圧処理を行う。また、非線形エコー抑圧部16は、ダブルトーク検知部15における検知結果に基づいてエコー抑圧ゲインを異なる値にする。
【0089】
非線形エコー抑圧部16には、受話信号[i]、送話信号[i]及びダブルトーク検知部15における検知結果が逐次入力される。非線形エコー抑圧部16は、送話信号[i]が入力された(サンプル点が取得された)ら、記憶部23に記憶された推定エコー関数に基づいてエコー抑圧用マスクを生成し、かつ、非線形エコー抑圧処理を行う
【0090】
非線形エコー抑圧部16は、推定エコーパワースペクトル[i]と、推定ノイズパワースペクトル[i]と、ノイズ抑圧ゲイン[i]とに基づいてエコー抑圧用マスクを算出する。具体的には、エコー抑圧用マスクは、数式(9)に示すように、推定エコーパワースペクトル[i]に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項を加算して求められる。エコー抑圧用マスクは周波数に依存する信号であるため、以下エコー抑圧用マスク[i]という。
【0091】
エコー抑圧用マスク[i]=推定エコーパワースペクトル[i]+推定ノイズパワースペクトル[i]×ノイズ抑圧ゲイン[i]・・・(9)
【0092】
数式(9)の場合も、数式(8)の場合と同様に、推定エコーパワースペクトル[i]は受話信号[i]の値を数式(4)に入力することで求められ、推定ノイズパワースペクトル[i]はノイズ推定部13で求められ、ノイズ抑圧ゲイン[i]は記憶部23に記憶されている。
【0093】
図10は、ある時刻における1フレームの被抑圧信号とエコー抑圧用マスクとを比較する様子を示す図である。図10において、各プロットが被抑圧信号であり、実線がエコー抑圧用マスクであり、点線が許容値である。また、図10の横軸は被抑圧信号の周波数であり、縦軸は被抑圧信号のパワースペクトルの対数である。
【0094】
非線形エコー抑圧部16は、エコー抑圧用マスクの大きさを許容値の大きさまで小さくするように、各プロットに対してエコー抑圧処理を行う。以下、エコー抑圧処理について詳細に説明する。
【0095】
まず、許容値について説明する。許容値とは、送話信号[i]に許容される残留エコーの大きさを示し、数式(10)に示すように推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]に基づいて求められる。許容値は周波数に依存する信号であるため、以下許容値[i]という。
【0096】
許容値[i]=推定ノイズパワースペクトル[i]×ノイズ抑圧ゲイン[i]+L・・・(10)
【0097】
Lは定数である。なお、推定ノイズパワースペクトル[i]の大きさ、ダブルトーク検知部15における検知結果に基づいてLを変えてもよい。
【0098】
図11は、許容値[i]の一例を示すグラフである。推定ノイズパワースペクトル[i]が大きい場合には許容値が大きくなり、推定ノイズパワースペクトル[i]が小さい場合には許容値が小さくなる。
【0099】
図10の説明に戻る。図10の許容値[i]は、図11における推定ノイズパワースペクトル[i]が小さい場合の許容値[i]である。非線形エコー抑圧部16は、以下の数式(11)に基づいて基本的なゲインGを算出する。ゲインGは周波数に依存する信号であるため、以下G[i]という。
【0100】
【数3】
【0101】
なお、数式(9)は、入力信号をX(Z=log10Re(X)×Re(X)+Im(X)×Im(X)、Zは入力信号のパワースペクトルの対数、Reは実部、Imは虚部)、目標信号をY(Re(Y)=Re(X)×G, Im(Y)=Im(X)×G)として、以下の数式(12)~(15)に基づいて算出される。
【0102】
【数4】
【数5】
【数6】
【数7】
【0103】
非線形エコー抑圧部16は、エコー抑圧用マスク[i]及び許容値[i]をフレームごとに生成する。そして、非線形エコー抑圧部16は、フレーム毎に、送話信号[i]の大きさとエコー抑圧用マスク[i]の大きさ及び送話信号[i]の大きさと許容値[i]の大きさとを比較する。そして、非線形エコー抑圧部16は、フレーム毎に、比較した結果と、ダブルトーク検知部15における検知結果に基づいてエコー抑圧ゲインG1~G5を算出する。エコー抑圧ゲインG1~G5は、数式(11)により求められた基本的なゲインGを用いて、以下の数式(16)~(20)のように求められる。なお、数式(16)~(20)におけるZは、送話信号[i]のパワースペクトルの対数(送話信号[i]の大きさ)であり、図10では各プロットの縦軸の値である。
【0104】
Z≦許容値:G1=1.0・・・(16)
【数8】
【数9】
【数10】
【数11】
【0105】
数式(16)に示すように、Zが許容値以下の場合(図10の網掛け部I)には、非線形エコー抑圧部16は、エコー抑圧ゲインG1を1とし、エコー抑圧を行わない。
【0106】
数式(17)、(18)に示すように、Zが許容値より大きくエコー抑圧用マスクの大きさ以下の場合(図10の網掛け部II)には、エコー抑圧ゲインG2、G3は、送話信号の大きさから許容値を引いた値(Z-許容値)に基づいて求められる。言い換えれば、Zが許容値より大きくエコー抑圧用マスクの大きさ以下の場合は、非線形エコー抑圧部16は、送話信号の大きさを許容値まで小さくするようにエコー抑圧を行う。
【0107】
そして、近端発話がある場合には、非線形エコー抑圧部16は、送話信号の大きさから許容値を引いた値に定数W1を乗じてエコー抑圧ゲインG3を求める。定数W1は、0から1の間の任意の数である。言い換えれば、非線形エコー抑圧部16は、近端発話がある場合にはエコー抑圧を弱める。なお、W1を1とするとエコー抑圧ゲインG2とエコー抑圧ゲインG3が一致する。
【0108】
数式(19)、(20)に示すように、Zが許容値及びエコー抑圧用マスクの大きさより大きい場合(図10の非網掛け部III)には、エコー抑圧ゲインG4、G5は、エコー抑圧用マスクの大きさから許容値を引いた値(エコー抑圧用マスク-許容値)に基づいて求められる。言い換えれば、Zが許容値及びエコー抑圧用マスクより大きい場合には、非線形エコー抑圧部16は、エコー抑圧用マスクの大きさを許容値まで小さくするようにエコー抑圧を行う。
【0109】
そして、近端発話がある場合には、非線形エコー抑圧部16は、エコー抑圧用マスクから許容値を引いた値に定数W2を乗じてエコー抑圧ゲインG5を求める。定数W2は、0から1の間の任意の数である。言い換えれば、非線形エコー抑圧部16は、近端発話がある場合にはエコー抑圧を弱める。なお、W2を1とするとエコー抑圧ゲインG4とエコー抑圧ゲインG5が一致する。なお、W2の値は、W1の値と同一でもよいし異なっていてもよい。
【0110】
非線形エコー抑圧部16は、各フレームにおいて、測定点毎に、求められたエコー抑圧ゲインG1~G5を用いて非線形エコー抑圧処理を行う。
【0111】
図2の説明に戻る。ノイズ重畳部17は、ノイズ推定部13で推定された推定雑音信号に基づいてコンフォートノイズを生成し、非線形エコー抑圧部16でエコー抑圧処理が行われた後の送話信号に対してコンフォートノイズを重畳する。
【0112】
IFFT部18は、ノイズ重畳部17を通過した入力信号に対して逆FFT(IFFT、Inverse FFT)を行う。
【0113】
図12は、エコー抑圧装置1がエコーを逐次低減する処理の流れを示すフローチャートである。この処理は、受話信号及び入力信号がエコー抑圧装置1に入力される間、所定時間毎に連続して行われる。
【0114】
まず、エコー除去部11は入力信号からエコーを除去する(ステップS11)。ノイズ推定部13はエコー除去信号に含まれる推定雑音信号を推定し、ノイズ抑圧部14は、推定雑音信号に基づいてエコー除去信号から雑音信号を抑圧し、被抑圧信号を生成する(ステップS12)。
【0115】
ダブルトーク検知部15は被抑圧信号及び受話信号のパワースペクトルスペクトルを算出し(ステップS13)、記憶部23から推定エコーパワースペクトル[i]を取得し、当該取得した推定エコーとステップS13で算出されたパワースペクトルとに基づいてダブルトーク検知用マスクを生成し(ステップS14)、ステップS14で生成されたダブルトーク検知用マスクを用いて近端発話の有無を検知する(ステップS15)。
【0116】
次に、非線形エコー抑圧部16は、記憶部23から推定エコーパワースペクトル[i]を取得し、当該取得した推定エコーとステップS13で算出されたパワースペクトルとに基づいてエコー抑圧用マスクを生成し(ステップS16)、ステップS15で検知された近端発話の有無及びステップS16で生成されたエコー抑圧用マスクを用いて被抑圧信号に対してエコー抑圧処理を行う(ステップS17)。
【0117】
次に、ノイズ重畳部17は、ノイズ推定部13で推定された推定雑音信号に基づいてコンフォートノイズを生成し、ステップS17でエコー抑圧処理が行われた後の送話信号に対してコンフォートノイズを重畳する(ステップS18)。最後に、IFFT部18は、ノイズを重畳後の送話信号を時間軸信号に戻す(ステップS19)。
【0118】
本実施の形態によれば、推定エコー関数(推定エコーパワースペクトル[i])に受話信号の値を入力して生成されたエコー抑圧用マスクを用いて非線形エコー抑圧処理を行うため、非線形エコー成分が大きい場合であってもエコー抑圧量を正確に推定することができる。
【0119】
また、本実施の形態によれば、推定エコーパワースペクトル[i]を表す関数に受話信号の値を入力して生成されたダブルトーク検知用マスクを用いて近端発話の有無を検知するため、近端発話の有無を正確に検知することができる。特に、被抑圧信号がダブルトーク検知用マスクの値を上回る周波数における被抑圧信号の大きさとダブルトーク検知用マスクの大きさとの差の総和を算出する方法(パターンC)により近端発話の有無を検知することで、入力信号がダブルトーク検知用マスクより大きい場合にそのデータが近端発話なのか外れ値なのかを正確に検知することができる。
【0120】
また、本実施の形態によれば、ダブルトーク検知用マスクを求める数式(8)に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項を追加することで、正確に近端発話の有無を検知することができる。例えば、近端発話ではなく、ノイズの影響で送話信号の値がダブルトーク検知用マスクより大きくなってしまう恐れがある。それに対し、ダブルトーク検知用マスクを求める数式(8)に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項を追加することで、ノイズの影響により誤検知を防ぐことができる。
【0121】
また、本実施の形態によれば、エコー抑圧マスクを求める数式(9)に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項を追加することで、適切に非線形エコー抑圧処理を行うことができる。
【0122】
また、本実施の形態によれば、ノイズ推定部13で推定された雑音成分とノイズ抑圧部14で用いられるノイズ抑圧ゲインとに基づいて許容される残留エコーの値である許容値を求め、エコー抑圧用マスクと許容値との差に基づいて求められたエコー抑圧ゲインを用いて非線形エコー抑圧処理を行うため、必要以上にエコーを抑圧し過ぎないようにすることができる。例えば、非線形エコー抑圧処理後の大きさを近端及び遠端での発話がないときの送話信号[i]の値よりも小さくする必要はなく、エコー抑圧ゲインを大きくし過ぎて非線形エコー抑圧処理により音が不自然になるデメリットの方が大きくなってしまう。したがって、非線形エコー抑圧処理において、処理後の信号の大きさが雑音成分に基づいて求められた許容値よりも小さくならないようにエコー抑圧ゲインを調整することが望ましい。特に、送話信号[i]の値が許容値より大きくエコー抑圧用マスク以下の場合(図10の網掛け部II)には、エコー抑圧ゲインG2、G3を送話信号から許容値を引いた値(Z-許容値)に基づいて求め、送話信号[i]が許容値及びエコー抑圧用マスクより大きい場合(図10の非網掛け部III)には、エコー抑圧ゲインG4、G5をエコー抑圧用マスクから許容値を引いた値(エコー抑圧用マスク-許容値)に基づいて求めることで、適切にエコーを抑圧することができる。
【0123】
また、本実施の形態によれば、Zが許容値より大きくエコー抑圧用マスクの大きさ以下の場合には、送話信号の大きさを許容値まで小さくするようにエコー抑圧を行い、Zが許容値及びエコー抑圧用マスクより大きい場合には、エコー抑圧用マスクの大きさを許容値まで小さくするようにエコー抑圧を行うことで、Zの大きさに応じて適切にエコーを抑圧することができる。
【0124】
また、本実施の形態によれば、近端発話があるときのエコー抑圧ゲインG3、G5を近端発話がないときのエコー抑圧ゲインG2、G4より小さくすることで、必要以上にエコーを抑圧し過ぎないようにすることができる。一般的に、近端発話があるときには、話者がエコーを気にしない傾向がある。したがって、近端発話がある場合にはエコーの抑圧を弱め、エコーを抑圧し過ぎることで音が不自然になることを防ぐことができる。
【0125】
また、本実施の形態によれば、推定エコーパワースペクトル[i]の各係数α、β、γ、δを学習用信号[i]から外れ値を除いたデータに基づいて求めるため、ダブルトーク検知用マスクの大きさが必要以上に大きくなることを防ぎ、近端発話の有無を正確に検知することができる。例えば、外れ値を入れたままで推定エコーパワースペクトル[i]の各係数を求めると、近端話者の声が小さいときに送話信号[i]の値がダブルトーク検知用マスクを超えないおそれがある。それに対し、推定エコーパワースペクトル[i]の各係数α、β、γ、δを学習用信号[i]から外れ値を除いたデータに基づいて求めることで、近端話者の声が小さくても、近端発話があることを検知することができる。また、推定エコーパワースペクトル[i]の各係数α、β、γ、δを学習用信号[i]から外れ値を除いたデータに基づいて求めるため、エコー抑圧用マスクの大きさが必要以上に大きくなることを防ぎ、エコーを抑圧し過ぎないようにすることができる。
【0126】
なお、本実施の形態では、非線形エコー抑圧部16において、ダブルトーク検知部15における検知結果を用いて、近端発話があるときにはエコー抑圧ゲインを近端発話がないときより小さくしたが、ダブルトーク検知部15は必須ではなく、非線形エコー抑圧部16がダブルトーク検知部15における検知結果を用いて処理を行わなくてもよい。例えば、非線形エコー抑圧部16は、数式(15)、(16)、(18)で求められるエコー抑圧ゲインG1、G2、G5を用いて非線形エコー抑圧処理を行ってもよい。
【0127】
また、本実施の形態では、推定エコーパワースペクトル[i]の各係数α、β、γ、δを学習用信号[i]から外れ値を除いたデータに基づいて求め、これを用いてダブルトーク検知用マスク及びエコー抑圧用マスクを求めたが、ダブルトーク検知用マスクの基となる推定エコーパワースペクトル[i]と、エコー抑圧用マスクの基となる推定エコーパワースペクトル[i]とが異なっていてもよい。
【0128】
例えば、推定エコー算出部24は、学習用信号[i]から外れ値を除いたデータに基づいて各変数の係数が求められた第1推定エコー関数(第1推定エコーパワースペクトル[i])と、外れ値を除かない学習用受話信号[i]に基づいて各変数の係数が求められた第2推定エコー関数(第2推定エコーパワースペクトル[i])とを生成し、記憶部23は、推定エコーパワースペクトル[i]として第1推定エコーパワースペクトル[i]及び第2推定エコーパワースペクトル[i]を記憶する。そして、ダブルトーク検知部15はダブルトーク検知用マスクを第1推定エコーパワースペクトル[i]に基づいて求め、非線形エコー抑圧部16はエコー抑圧用マスクを第2推定エコーパワースペクトル[i]に基づいて求める。これにより、近端発話の有無を正確に検知しつつ、非線形エコーの抑圧を強くして十分なエコー抑圧を行うことができる。
【0129】
また、本実施の形態では、ノイズ推定部13及びノイズ抑圧部14を有し、ダブルトーク検知用マスク[i]を求める数式(8)及びエコー抑圧用マスク[i]を求める数式(9)では、推定エコーパワースペクトル[i]に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項を追加したが、ノイズ推定部13及びノイズ抑圧部14は必須ではなく、数式(8)、(9)に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項を追加することも必須ではない。ただし、正確な近端発話の検知及び適切なエコー抑圧を行うためには、数式(8)、(9)に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項を追加することが望ましい。
【0130】
また、本実施の形態では、非線形エコー抑圧処理において、推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とに基づいて許容値を求め、エコー抑圧用マスク[i]の大きさを許容値の大きさまで小さくするようなエコー抑圧ゲインを求めたが、非線形エコー抑圧処理に許容値を用いる必要はない。例えば、非線形エコー抑圧部16は、エコー抑圧用マスク[i]の大きさを0又は任意の値まで小さくするようなエコー抑圧ゲインを用いて非線形エコー抑圧処理を行ってもよい。ただし、エコーを抑圧し過ぎることで音が不自然になることを防ぐためには、エコー抑圧用マスク[i]の大きさを許容値の大きさまで小さくするように非線形エコー抑圧処理を行うことが望ましい。
【0131】
また、本実施の形態では、許容値[i]が周波数に依存する信号であったが、許容値は周波数によらない定数であってもよい。例えば、許容値[i]の平均値を周波数によらない許容値(定数)とし、許容値(定数)を用いてG[i]を求めてもよい。
【0132】
また、本実施の形態では、推定エコー算出部24がエコー抑圧装置1に設けられていたが、推定エコー算出部24はエコー抑圧装置1と異なる演算装置等に設けられていてもよい。例えば、推定エコー算出部24は、図示しない記憶媒体又はネットワーク等を介して学習用信号[i]及び学習用受話信号[i]を取得し、生成した推定エコーパワースペクトル[i]を図示しない記憶媒体又はネットワーク等を介して記憶部23に記憶すればよい。
【0133】
また、本実施の形態では、ある時刻における学習用受話信号[i]に対する学習用信号[i]の散布図(図5図8)を用いて推定エコーパワースペクトル[i]を求めたが、各散布図において送話のパワースペクトルの対数がある一定値(例えば-5)以下のデータは推定エコーパワースペクトル[i]の算出に影響しないため、送話のパワースペクトルの対数がある一定値以下のデータを削除したデータを用いて推定エコーパワースペクトル[i]を求めてもよい。これにより、データ量や計算量を減らすことができる。
【0134】
また、本実施の形態では、ある時刻における学習用受話信号[i]に対する学習用信号[i]の散布図(図5図8)を用いて推定エコーパワースペクトル[i]を求めたが、学習用受話信号[i]及び学習用信号[i]から推定エコーパワースペクトル[i]を求める方法はこれに限られない。例えば、公知の統計学の手法又はディープラーニングを用いて推定エコーパワースペクトル[i]を求めてもよい。
【0135】
また、本実施の形態ではパワースペクトルを用いたが、パワースペクトルの代わりに振幅スペクトルを用いてもよい。振幅スペクトルを用いる場合、本発明の信号の大きさは、信号の大きさとして信号の振幅の絶対値を用いればよく、本発明の総受話値に相当する総受話振幅スペクトルは、数式(21)に示すように、学習用信号の各周波数における振幅スペクトルの絶対値の総和を用いればよい。また、総受話振幅スペクトルは、数式(22)(A>0、B<F_MAX)に示すように、学習用信号の任意の周波数の範囲における、各周波数における振幅スペクトルの総和としてもよい。
【数12】
【数13】
【0136】
また、本実施の形態では、エコー除去部11がFFT部12の前段に設けられているが、エコー除去部11はFFT部12の後段に設けられていてもよいし、ノイズ抑圧部14の後段に設けられていてもよい。また、ノイズ重畳部17が非線形エコー抑圧部16の後段に設けられているが、ノイズ重畳部17は復元部(IFFT部)18の後段に設けられていてもよい。
【0137】
また、本実施の形態では、ノイズ抑圧部14が非線形エコー抑圧部16の前段に設けられていたが、ノイズ抑圧部14が非線形エコー抑圧部16の後段に設けられていてもよい。この場合には、数式(8)、(9)に推定ノイズパワースペクトル[i]とノイズ抑圧ゲイン[i]とを乗じた項は不要である。
【0138】
以上、この発明の実施形態を、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。特に、実施の形態においては、振幅の二乗で表されるパワースペクトルに基づいて基礎マスクの生成、最適マスクの生成や選択、ダブルトーク状態の検知等を行ったが、これらの処理は振幅の絶対値に基づいて行ってもよい。
【符号の説明】
【0139】
1 :エコー抑圧装置
11 :エコー除去部
12、22:FFT部
13 :ノイズ推定部
14 :ノイズ抑圧部
15 :ダブルトーク検知部
16 :非線形エコー抑圧部
17 :ノイズ重畳部
18 :IFFT部
21 :ダイナミックレンジコントロール
23 :記憶部
24 :推定エコー算出部
50 :端末
51 :マイクロホン
52 :スピーカ
53、54:携帯電話
55 :スピーカアンプ
100 :音声通信システム
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12