(A)第1の実施形態
以下、本発明による雑音抑圧装置、プログラム及び方法の第1の実施形態を、図面を参照しながら詳述する。
(A−1)第1の実施形態の構成
図1は、この実施形態の雑音抑圧装置100の機能的構成を示すブロック図である。なお、図1において括弧内の符号は後述する第2及び第3の実施形態でのみ用いられる符号である。
雑音抑圧装置100は、M個のチャネルの入力信号is1〜isM(時間領域の信号)の入力を受付ける。以下では、入力信号is1〜isMには、それぞれチャネルを識別するためのチャネル識別子としてチャネル番号が付与されているものとする。例えば、入力信号is1のチャネル番号は1、入力信号is2のチャネル番号は2、…、入力信号isMのチャネル番号はMとなる。入力信号is1〜isMは、例えば、それぞれ異なる図示しないマイクで捕捉された音声信号(音響信号)である。入力信号is1〜isMに係る図示しないマイクは、例えば、同じ室内等の限られた範囲内に配置されているものとする。
そして、雑音抑圧装置100は、雑音抑圧の処理後の出力として、入力信号is1〜isのそれぞれに対応する抑圧後信号os1〜osM(時間領域の信号)を出力する。なお、この実施形態では、雑音抑圧装置100は時間領域の信号の入力を受付けて、時間領域の信号の出力を行うものとして説明するが、入出力する信号の形式は限定されないものであり、例えば、周波数領域(スペクトル)の信号入力や、周波数領域の信号出力を行う構成としてもよい。
雑音抑圧装置100は、入力信号is1〜isMのそれぞれに対応する周波数解析手段101(101−1〜101−M)と、帯域別抑圧手段102と、抑圧後信号os1〜osMのそれぞれを出力する波形復元手段103(103−1〜103−M)とを有している。
雑音抑圧装置100は、例えば、プロセッサ及びメモリを有するコンピュータ(プログラムの実施構成)にコンピュータプログラム(実施形態に係る雑音抑圧プログラム)をインストールすることにより構築してもよい。また、雑音抑圧装置100は、一部又は全部をハードウェア(例えば、専用の半導体チップや電気回路等)を用いて実現するようにしてもよい。
周波数解析手段101−1〜101−Mは、それぞれ入力信号is1〜isMを時間領域の信号から周波数領域の信号に変換する処理を行う。以下では、入力信号is1〜isMを周波数領域に変換した信号(周波数解析手段101−1〜101−Mが出力する信号)を、それぞれ入力スペクトルIS1〜ISMと表すものとする。例えば、周波数解析手段101−1は、入力信号is1を周波数変換して入力スペクトルIS1を生成して出力する。各周波数解析手段101が行う変換処理の具体的方法については限定されないものであるが、例えば高速フーリエ変換(Fast Fourier Transform:FFT)やウェーブレット変換やフィルタパンク等を適用するようにしてもよい。この実施形態では、各周波数解析手段101は、FFTを用いた変換処理を行うものとして説明する。なお、以下では、各入力スペクトルIS1〜ISMは、複素数で表されるデータであるものとして説明する。
帯域別抑圧手段102は、周波数領域に変換された入力スペクトルIS1〜ISMについて、帯域別に雑音成分を抑圧する処理を行い、雑音成分抑圧後の信号(周波数領域の信号)として抑圧後スペクトルOS1〜OSMを生成する。帯域別抑圧手段102は、抑圧後スペクトルOS1〜OSMを、それぞれ波形復元手段103−1〜103−Mに供給する。帯域別抑圧手段102は、例えば、入力スペクトルIS1について雑音抑圧する処理を行って抑圧後スペクトルOS1を生成し、波形復元手段103−1に供給する。
波形復元手段103−1〜103−Mは、それぞれ帯域別抑圧手段102から供給された抑圧後スペクトルOS1〜OSMを時間領域の信号に復元し、抑圧後信号os1〜osMとして出力する。例えば、波形復元手段103−1は、抑圧後スペクトルOS1について時間領域に変換して、抑圧後信号os1を出力する。各波形復元手段103は、周波数解析手段101−1〜101−Mと対を成す方法により各抑圧後スペクトルを時間領域の信号に変換する。例えば、周波数解析手段101−1〜101−MでFFTを用いた周波数変換が行われている場合、波形復元手段103−1〜103−Mは、逆高速フーリエ変換(Inverse FFT:IFFT)を用いて、各抑圧後スペクトルを時間領域の信号に復元する。
次に、帯域別抑圧手段102の内部構成について図2を用いて説明する。
図2は、帯域別抑圧手段102の内部構成について示したブロック図である。
図2に示すように、帯域別抑圧手段102は、チャネル選択手段201、抑圧ゲイン算出手段202、及び乗算手段203(203−1〜203−M)を有している。
帯域別抑圧手段102に供給された入力スペクトルIS1〜ISMは、すべてチャネル選択手段201に供給されると共に、それぞれの乗算手段203−1〜203−Mにも供給される。例えば、入力スペクトルIS1は、乗算手段203−1に供給されることになる。
チャネル選択手段201は、入力スペクトルIS1〜ISMのうちいずれかを、所定の方式により選択して出力する処理を行う。以下では、チャネル選択手段201で選択された入力スペクトル(入力スペクトルIS1〜ISMのうち選択されたもの)を選択入力スペクトルと呼ぶものとする。チャネル選択手段201は、選択入力スペクトルを、抑圧ゲイン算出手段202に供給する。
チャネル選択手段201は、所定の順序で選択入力スペクトルとするチャネル番号を切替える処理を行う。例えば、チャネル選択手段201は、1単位時間(例えば、抑圧ゲイン算出手段202の処理単位時間)ごとに、選択入力スペクトルとするチャネル番号を切替える。このとき、チャネル選択手段201がチャネル番号を切替える順序は限定されないものである。この実施形態では、チャネル選択手段201は、チャネル番号順に循環的にチャネル番号を選択(選択入力スペクトルとするチャネル番号を選択)するものとする。言い換えると、チャネル選択手段201は、チャネル番号順にラウンドロビンで選択入力スペクトルとするチャネル番号を選択するものとする。すなわち、この実施形態のチャネル選択手段201は、「1、2、…、M、1、2、…M、1、…」という順序で選択入力スペクトルとするチャネル番号を選択するものとする。
なお、チャネル選択手段201が、選択入力スペクトルとするチャネル番号を選択する順序のアルゴリズムについては限定されないものである。例えば、チャネル番号順に循環的に選択入力スペクトルとするチャネル番号を選択する例以外にも、後述する第2の実施形態のように予め設定された順序としたり、後述する第3の実施形態のように疑似乱数に基づく順序(ランダムな順序)で選択するようにしてもよい。
抑圧ゲイン算出手段202は、選択入力スペクトルに基づいて、雑音成分のスペクトルを推定して取得する。以下では、抑圧ゲイン算出手段202が推定した雑音スペクトルを「抑圧ゲイン」とも呼ぶものとする。抑圧ゲイン算出手段202が抑圧ゲインを算出する処理の詳細(詳細構成)については後述する。抑圧ゲイン算出手段202は、算出した抑圧ゲインを、それぞれの乗算手段203−1〜203−Mに供給する。
乗算手段203−1〜203−Mは、それぞれ入力スペクトルIS1〜ISMに対して共通の抑圧ゲイン(抑圧ゲイン算出手段202から供給された抑圧ゲイン)を乗じる処理を行う。これにより、乗算手段203−1〜203−Mは、それぞれ入力スペクトルIS1〜ISMに含まれる雑音成分を抑圧して抑圧後スペクトルOS1〜OSMを得る。
そして、乗算手段203−1〜203−Mは、それぞれ抑圧後スペクトルOS1〜OSMを出力する。例えば、乗算手段203−1は、入力スペクトルIS1に抑圧ゲインを乗じて、抑圧後スペクトルOS1を取得して出力する処理を行うことになる。なお、抑圧後スペクトルOS1〜OSMは、それぞれ波形復元手段103−1〜103−Mに供給されることになる。すなわち、乗算手段203−1〜203−Mは、入力スペクトルIS1〜ISMのそれぞれについて共通する抑圧ゲインを用いた雑音抑圧を行う雑音抑圧手段として機能することになる。
次に、チャネル選択手段201の内部構成について図3を用いて説明する。
図3は、チャネル選択手段201の内部構成について示したブロック図である。
図3に示すように、チャネル選択手段201は、フレーム計数手段301、チャネル決定手段302、チャネル記憶手段303、及び入力スペクトル選択手段304を有している。
フレーム計数手段301は、所定の単位時間(例えば、抑圧ゲイン算出手段202の処理単位時間)ごとに処理フレーム番号を1ずつインクリメントし、得られたフレーム番号をチャネル決定手段302に与える。
チャネル決定手段302は、与えられたフレーム番号と、チャネル記憶手段303から供給されたチャネル番号(1単位時間前のチャネル番号)とに基づいて、次のチャネル番号(次に、選択入力スペクトルとして選択するチャネル番号)を決定する。そして、チャネル決定手段302は、決定したチャネル番号を選択チャネル番号として入力スペクトル選択手段304に与える。チャネル決定手段302の詳細構成については後述する。
チャネル記憶手段303は、チャネル決定手段302から与えられたチャネル番号を記憶し、記憶していたチャネル番号を1単位時間後にチャネル決定手段302に与える。
入力スペクトル選択手段304は、チャネル決定手段302から与えられたチャネル番号に対応する入力スペクトルを選択入力スペクトルとして選択する。例えば、チャネル決定手段302から与えられたチャネル番号がmだった場合、選択入力スペクトルはチャネルmの入力スベクトル(入力スペクトルISm)を選択入力スペクトルとして取り扱う。
次に、チャネル決定手段302の内部構成について、図4を用いて説明する。
図4は、チャネル決定手段302の内部構成について示したブロック図である。
図4に示すように、チャネル決定手段302は、チャネル計数手段401、定数1値供給手段402、及び初期チャネルスイッチ手段403を有している。
チャネル決定手段302に与えられたフレーム番号は初期チャネルスイッチ手段403に与えられる。また、チャネル決定手段302に与えられた1単位時間前のチャネル番号はチャネル計数手段401に与えられる。
チャネル計数手段401は、与えられた1単位時間前のチャネル番号を更新し、得られた暫定選択チャネル番号を初期チャネルスイッチ手段403に与える。チャネル計数手段401におけるチャネル番号の更新は、以下のように行われる。単位時間前のチャネル番号が1以上かつ(M−1)以下である場合には、チャネル計数手段401は、当該単位時間前のチャネル番号を1だけインクリメントした値を暫定選択チャネル番号とする。そして、チャネル計数手段401は、単位時間前のチャネル番号がMである場合には、暫定選択チャネル番号を初期値の1とする。
定数1値供給手段402は、常に値「1」を初期チャネルスイッチ手段403に与える。値「1」は、チャネル番号の最初の値(初期値)である。なお、第1の実施形態では初期値を値「1」としたが、チャネル番号を表す1以上M以下の整数であればどの値を初期値として適用しても良い。
初期チャネルスイッチ手段403は、フレーム番号が初期フレーム番号であれば定数1値供給手段402から与えられた値「1」を選択チャネル番号とし、そうでなければチャネル計数手段から与えられた暫定選択チャネル番号を選択チャネル番号とする。初期フレーム番号は実装によって異なり、例えば0又は1とするようにしてもよい。また、初期動作を安定化させるために、初期チャネルスイッチ手段403は、フレーム番号が小さな整数値(例えば4)以下であるときに定数1値供給手段402から与えられた値「1」を選択チャネル番号としても良い。
次に、抑圧ゲイン算出手段202の内部構成について、図5を用いて説明する。
図5は、抑圧ゲイン算出手段202の内部構成について示したブロック図である。
この実施形態では、抑圧ゲイン算出手段202は、事後SNRに基づいて判定される音声区間に基づいて推定された雑音パワースペクトルを用い、更にDecision−Directed法によって推定した事前SNRに基づくウィナーフィルタ(WF)で抑圧ゲインを算出(推定)するものとして説明する。なお、抑圧ゲイン算出手段202において抑圧ゲインを算出(推定)する具体的な算出方法は限定されないものである。
例えば、抑圧ゲイン算出手段202は、雑音パワースペクトルの推定には重み付き雑音推定(参考文献1「IEICE Trans.on Fundam.,Vol.E85−A、No.7,PP.1710―1718,Jul.2002」参照)や、MAP推定に基づく方法(参考文献2「電子情報通信学会技術報告,Vol.113,No.503,EA2013−121,PP.7−12,2014年3月」参照)等を用いた抑圧ゲインの算出(推定)処理を行うようにしてもよい、また、抑圧ゲイン算出手段202は、スペクトル減算法(参考文献3「IEEE Trans.,Vol.ASSP−27,No.2,pp.113−120,Apr.1979」)や、MMSESTSA法(参考文献4「IEEE Trans.,Vol.ASSP−32,No.6,PP.1109−1121,Dec.1984」)を用いた抑圧ゲインの算出(推定)処理を行うようにしてもよい。
図5に示すように、抑圧ゲイン算出手段202は、パワー算出手段501、雑音平滑化手段502、雑音記憶手段503、事後SNR算出手段504、事後SNR記憶手段505、閾値判定手段506、閾値供給手段507、事前SNR推定手段508、抑圧ゲイン決定手段509、及び抑圧ゲイン記憶手段510を有している。
抑圧ゲイン算出手段202は、与えられた選択入力スペクトルをパワー算出手段501に与える。パワー算出手段501は、与えられた選択入力スペクトルの各要素の絶対値の2乗を要素ごとに計算し、得られた入力パワースペクトルを雑音平滑化手段502と事後SNR算出手段に与える。
雑音平滑化手段502は、雑音記憶手段503から与えられる単位時間前の雑音パワースペクトルN’(k)と閾値判定手段506から与えられる音声区間判定結果Vに基づいて以下の式(1)によって雑音パワーを推定し、得られた雑音パワースペクトルN(k)を雑音記憶手段503と事後SNR算出手段504に与える。以下の(1)式において、k(k=0,...,K−1)は要素(周波数帯域)のインデックス、τは時定数、X(k)は入力パワースペクトルを示している。また、以下の(1)式では、時定数τは0.8程度とすることが好適である。
雑音記憶手段503は、与えられた雑音パワースペクトルを記憶し、記憶していた雑音パワースペクトルを1単位時間後に雑音平滑化手段502に与える。
事後SNR算出手段504は、要素ごとに与えられた入力パワースペクトルを与えられた雑音パワースペクトルで除し、得られた事後SNRを事後SNR記憶手段505及び事前SNR推定手段508に与える。
事後SNR記憶手段505は、与えられた事後SNRを記憶し、記憶していた事後SNRを1単位時間後に閾値判定手段506及び事前SNR推定手段508に与える。
閾値判定手段506は、事後SNR記憶手段505から与えられた単位時間前の事後SNRが、閾値供給手段507から与えられた事後SNRの閾値(詳細については後述する)より大きければ音声区間判定結果VにTrue(真値)をセットし、そうでなければVにFalse(偽値)をセットする。そして、閾値判定手段506は、得られた音声区間判定結果Vを雑音平滑化手段502に与える。
閾値供給手段507は、事前に定められた事後SNR閾値を閾値判定手段506に与える。事後SNR閾値と比較される事後SNRは、1より大きければ入力パワーが雑音パワーより大きく、1より小さければ入力パワーが雑音パワーより小さいことを表しているが、入力パワーは単位時間ごとに細かく変化するのに対して雑音パワーはそれほど変化しない。そこで、入力パワーが雑音パワーより多少大きくても雑音平滑化手段502が雑音パワーを更新するようにするために、事後SNR閾値には2.0程度の値とすることが好適である。
事前SNR推定手段508は、与えられた事後SNR、単位時間前の事後SNR及び後述する単位時間前の抑圧ゲインに基づいて事前SNRを算出(推定)し、得られた事前SNRを抑圧ゲイン決定手段509に与える。事後SNRをγ(k)、単位時間前の事後SNRをγ’(k)、単位時間前の抑圧ゲインをG’(k)、事前SNRをξ(k)とすると、事前SNRの推定はDecision−Directed法と呼ばれる以下の(2)式によって行うことができる。以下の(2)式において、αは忘却係数であり、0.99程度の値とすることが好適である。
抑圧ゲイン決定手段509は、事前SNRξ(k)に基づいて以下の(3)式によって抑圧ゲインG(k)を算出し、得られた抑圧ゲインを抑圧ゲイン記憶手段510に与える。当該抑圧ゲインは抑圧ゲイン算出手段202の出力として出力される。
抑圧ゲイン記憶手段510は、与えられた抑圧ゲインG(k)を記憶し、記憶した抑圧ゲインを1単位時間後に事前SNR推定手段508に与える。
(A−2)第1の実施形態の動作
次に、以上のような構成を有する第1の実施形態の雑音抑圧装置100の動作(この実施形態の雑音抑圧方法)について図1〜図4を用いて説明する。
周波数解析手段101−1〜101−Mは、それぞれ入力信号is1〜isMを時間領域の信号から周波数領域の信号に変換する処理を行う。
そして、帯域別抑圧手段102は、周波数領域に変換された入力スペクトルIS1〜ISMについて、帯域別に雑音成分抑圧の処理を行い、雑音成分抑圧後の信号(周波数領域の信号)として抑圧後スペクトルOS1〜OSMを生成する。
帯域別抑圧手段102では、チャネル選択手段201により、チャネル番号順に循環的に選択入力スペクトルに適用するチャネル番号が選択される。そして、抑圧ゲイン算出手段202では、チャネル選択手段201により選択された選択入力スペクトルに基づいて抑圧ゲインが生成される。そして、帯域別抑圧手段102では、乗算手段203−1〜203−Mにより、入力スペクトルIS1〜ISMに対して共通の抑圧ゲイン(抑圧ゲイン算出手段202から供給された抑圧ゲイン)を乗じる処理が行われる。これにより、乗算手段203−1〜203−Mは、それぞれ入力スペクトルIS1〜ISMに含まれる雑音成分を抑圧して抑圧後スペクトルOS1〜OSMを出力する。
そして、波形復元手段103−1〜103−Mは、それぞれ帯域別抑圧手段102から供給された抑圧後スペクトルOS1〜OSMを時間領域の信号に変換し、抑圧後信号os1〜osMとして出力する。
(A−3)第1の実施形態の効果
第1の実施形態によれば、以下のような効果を奏することができる。
第1の実施形態の雑音抑圧装置100では、入力信号のチャネル数が増えた場合でも、チャネル選択手段201で、選択入力スペクトルに適用するチャネル番号の選択処理の量は一定となる。したがって、第1の実施形態の雑音抑圧装置100では、入力信号のチャネル数が増えた場合でも、チャネル数に応じてO(n)のオーダとはならず、従来よりも少ない処理量で雑音抑制を行うことができる。
また、第1の実施形態の雑音抑圧装置100では、任意の選択方法(例えば、チャネル番号順に循環的に選択する方法)で選択入力スペクトルを切替えながら抑圧ゲインを生成することで、実質的に複数チャネルの入力パワースペクトルを平均的に反映した抑圧ゲインを生成して雑音抑圧を行うことが可能となる。
以下に、雑音抑圧装置100において、任意の選択方法(例えば、チャネル番号順に循環的に選択する方法)で選択入力スペクトルを切替えながら抑圧ゲインを生成する場合でも、雑音抑圧性能の維持が可能となることの数学的な裏付けについて説明する。
チャネル選択手段201において、選択入力スペクトルに適用するチャネル番号を選択する際の選択方法としては、例えば、以下の3つの選択方法が挙げられる。
第1の選択方法は、チャネル選択手段201が、抑圧ゲイン算出手段202が抑圧ゲイン算出を実行する単位時間ごとに、チャネル番号順に循環的にチャネル番号を選択する方法(上述の第1の実施形態と同様の選択方法)である。第1の選択方法では、チャネル選択手段201は、上述の第1の実施形態と同様に、例えば、チャネル1、チャネル2、・・・と選択していき、最後のチャネルMが選択された次の単位時間後は再びチャネル1を選択する。
第2の選択方法は、チャネル選択手段201が、抑圧ゲイン算出手段202が抑圧ゲイン算出を実行する単位時間ごとに、予め定められた順序(例えば、予め設定されたリストに基づく順序)で、チャネル番号を選択する方法(後述する第2の実施形態と同様の選択方法)である。
第3の選択方法は、チャネル選択手段201が、疑似乱数に基づく順序(ランダムな順序)でチャネル番号を選択する方法(後述する第3の実施形態と同様の選択方法)である。具体的には、チャネル選択手段201は、疑似乱数を発生させて、事前に定めておいたチャネル数より1つだけ少ない個数の閾値と該疑似乱数とを比較し、当該疑似乱数を下回る閾値の数に対応するチャネル番号を選択するようにしてもよい。
チャネル選択手段201が、上述の第1〜第3の選択方法で、チャネル番号1〜M(M=4)の選択を行った場合、その処理量オーダは、第1と第2の選択方法ではO(1)であり、第3の選択方法ではO(log2n)あるから、雑音抑圧装置100において抑圧ゲインを算出するための処理オーダもO(1)またはO(log2n)となる。すなわち、この場合、雑音抑圧装置100では入力信号のチャネル数に左右されない処理量での抑圧ゲイン算出を実現できる。
上述の第1の選択方法と第2の選択方法は、長期的(例えば、数秒以上)に見れば確率的にチャネルを選択しているのと同じであるから、上述の第3の選択方法の特別な場合と見なすことができる。そこで、以下では、上述の第3の選択方法の例を用いて、雑音抑圧装置100において抑圧性能が維持できることの理由説明を行う。
抑圧ゲイン算出手段202で、抑圧ゲインを算出するためには、先に雑音パワースペクトルを推定しなければいけない。入力信号が単一チャネルの場合、一般に、時刻tにおける雑音パワースペクトルのk番目の要素(「k番目の帯域」と同義)N(k,t)は、入力パワースペクトルの要素X(k,t)と雑音重み係数W(k,t)の積の期待値として、以下の(4)式によって推定される。以下の(4)式において、演算子E,{}は時刻tに関する期待値を意味している。
また、以下の(4)式において、雑音重み係数W(k,t)は、入力パワースペクトルの要素が完全に雑音なら0とし、多分に音声を含むなら1とするものとする。なお、以下の(4)式において、音声区間を検出して雑音重み係数を0又は1の離散値としても良いし、音声区聞か雑音区間か暖昧な場合には雑音重み係数を0以上1以下の実数値としても良い。
N(k,t)=Et{W(k,t)・X(k,t)} …(4)
そして、ここでは、複数チャネルから代表信号を生成し、該代表信号によって雑音パワースペクトルを推定する方法を定式化する。平均による代表信号の生成は重み付き加算の特別な場合であるから、ここでは、重み付き加算によって代表信号を生成する方法を適用するものとする。そして、チャネルmの入力パワースペクトルX
m(k,t)に対するチャネル重み係数をC
mとすると、雑音パワースペクトルの推定式は、以下の(5)式となる。ただし、C
mは以下の(6)を満たすものとする。
上述の(6)式が成り立つとすれば、チャネル重み係数Cmは確率分布と見なせる。そこで、ここでは、以下の(7)式を満たすようなチャネル選択因子Bm(t)を導入する。チャネル選択因子Bm(t)は、ある時刻tにおいて唯一つのチャネル番号のみが1となり、他のチャネル番号はすべて0となるが、1となるチャネルmは確率分布Cmに従って無作為に選ばれるような因子であるものとする。このようなチャネル選択因子Bm(t)を導入するために、まず以下の(5)式の期待値と、チャネルに関する和の計算順序を交代して以下の(8)式のように変形する。そして、以下の(8)式の確率分布Cmをチャネル選択因子Bm(t)の期待値で書き直すと、以下の(9)式となる。チャネル選択因子Bm(t)は、入力パワースペクトルXm(k,t)と雑音重み係数W(k,t)とは独立なので、以下の(10)式のように変形でき、最後に再び期待値とチャネルに関する和の計算順序を交代することで以下の(11)式を得ることができる。
そうすると、上述の(5)式と以下の(11)式の左辺が等しいので、チャネル選択因子B
m(t)を入力パワースペクトルX
m(k,t)に乗じてチャネルに関する和を取ることは、入力パワースペクトルX
m(k,t)から確率分布C
mに従って無作為に1つのチャネルを選択することを意味することが分かる。
従って、入力パワースペクトルXm(k,t)から確率分布Cmに従って無作為に1つのチャネルを選択して雑音パワースペクトルを推定することは、チャネル重み係数Cmに基づいた重み付き加算によって代表信号を生成して雑音パワースペクトルを推定することと同じであることが分かる。
以上のように、雑音抑圧装置100において、上述の第1〜第3の選択方法のいずれかで選択入力スペクトルを切替えながら抑圧ゲインを生成する場合でも、雑音抑圧性能の維持が可能であることが、数学的にも裏付けられている。すなわち、雑音抑圧装置100では、抑圧ゲインの算出するための処理量オーダがO(n)未満に削減できることと、処理量が削減されても抑圧性能を維持できるといえる。
(B)第2の実施形態
以下、本発明による雑音抑圧装置、プログラム及び方法の第2の実施形態を、図面を参照しながら詳述する。
(B−1)第2の実施形態の構成及び動作
第2の実施形態の雑音抑圧装置100Aの全体構成についても上述の図1を用いて説明することができる。以下では、第2の実施形態について第1の実施形態との差異を説明する。
第1の実施形態の雑音抑圧装置100では、上述の第1の選択方法(チャネル番号順に循環的にチャネル番号を選択する方法)で選択入力スペクトルに適用するチャネル番号を選択して抑圧ゲインを生成していた。これに対して、第2の実施形態の雑音抑圧装置100Aでは、上述の第2の選択方法(予め定められた順序でチャネル番号を選択する方法)で、択入力スペクトルISSに適用するチャネル番号を選択して抑圧ゲインを生成する。
図1、図2に示すように、雑音抑圧装置100Aでは、帯域別抑圧手段102(チャネル選択手段201)が帯域別抑圧手段102A(チャネル選択手段201A)に置き換えられている点で第1の実施形態と異なっている。
図6は、第2の実施形態に係るチャネル選択手段201Aの内部構成について示したブロック図である。
図6に示すように、チャネル選択手段201Aは、チャネル決定手段302がチャネル決定手段302Aに置き換えられ、さらにチャネル記憶手段303が除外されている点で第1の実施形態と異なっている。
チャネル決定手段302Aは、フレーム計数手段301から与えられたフレーム番号に基づいて、チャネル番号を決定し、得られたチャネル番号を選択チャネル番号として入力スペクトル選択手段304に与える。
図7は、第2の実施形態のチャネル決定手段302Aの内部構成について示したブロック図である。
図7に示すように、チャネル決定手段302Aは、チャネル順序供給手段601及びチャネル順序選択手段602を有している。
チャネル決定手段302Aに与えられたフレーム番号はチャネル順序選択手段602に与えられる。
チャネル順序供給手段601は、予め設定されたチャネル番号の順序を記述したリスト(以下、「チャネル順序情報」と呼ぶ)を、チャネル順序選択手段602に与える。チャネル順序情報は、例えば、配列やベクトル、リスト等任意の形式ですることができるが、片方向循環リストによって定義するのが好適である。以下では、チャネル順序情報が片方向循環リストで定義されているものとする。また、チャネル順序情報の要素はチャネル番号1〜Mのいずれかに限定されるが、チャネル順序の要素数は任意である。ただし、チャネル順序情報に記述される要素数がM個未満の場合、一度も参照されないチャネルが生じてしまう。また、チャネル順序情報の要素数がちょうどM個の場合は、統計的には各チャネル番号の出現確率等は第1の実施形態と変わらない結果となる。したがって、チャネル順序情報に設定する要素数はM個より多く設定するのが好適である。例えばM=4の場合、チャネル順序情報を{2,2,2,3,3,1,4}と定義すると、チャネル番号2が最も重要視され、次いでチャネル番号3が重要視され、チャネル番号1、4は参照するが重要視されない、という重み付けとなる。また例えば、チャネル順序情報として、上述の{2,2,2,3,3,1,4}の順序を変更して{1,2,3,4,2,3,2}と設定してもよい。
チャネル順序選択手段602は、フレーム番号に基づいてチャネル順序から1つのチャネルを選択して選択チャネル番号とする。チャネル順序選択手段602は、最初に選択するチャネル順序を初期チャネル順序として事前に定めておいて、フレーム番号が初期フレーム番号であれば該初期チャネル順序を選択チャネル番号とし、そうでなければ次のチャネル順序を選択チャネル番号とする。
フレーム計数手段301が供給する初期フレーム番号は実装によって異なるが、例えば0又は1とするようにしてもよい。
(B−2)第2の実施形態の効果
第2の実施形態によれば以下のような効果を奏することができる。
第2の実施形態の雑音抑圧装置100Aでは、第1の実施形態と同様に、入力信号のチャネル数が増えた場合でも、チャネル数に応じてO(n)の処理量オーダとはならず、従来よりも少ない処理量で雑音抑制を行うことができる。
また、第2の実施形態の雑音抑圧装置100Aでは、チャネル順序情報のリストの記述内容で、チャネル番号ごとに出現確率の重み付けを行うことができる。例えば、第2の実施形態の雑音抑圧装置100Aでは、複数チャネルの入力パワースペクトルを、事前に定めた重要視する度合にしたがって評価しながら雑音を抑庄できる。例えば、雑音の音源の位置に最も近いマイクで捕捉された入力信号に係るチャネル番号の出現頻度が多くなるようにチャネル順序情報のリストを記述することで、より精度の高い抑圧ゲインを取得することができる。
(C)第3の実施形態
以下、本発明による雑音抑圧装置、プログラム及び方法の第3の実施形態を、図面を参照しながら詳述する。
(C−1)第3の実施形態の構成及び動作
第3の実施形態の雑音抑圧装置100Bの全体構成についても上述の図1を用いて説明することができる。以下では、第3の実施形態について第3の実施形態との差異を説明する。
第1の実施形態の雑音抑圧装置100では、上述の第1の選択方法(チャネル番号順に循環的にチャネル番号を選択する方法)で選択入力スペクトルに適用するチャネル番号を選択して抑圧ゲインを生成していた。これに対して、第3の実施形態の雑音抑圧装置100では、上述の第3の選択方法(疑似乱数に基づく順序でチャネル番号を選択する方法)で、選択入力スペクトルに適用するチャネル番号を選択して抑圧ゲインを生成する。
図1、図2に示すように、雑音抑圧装置100Bでは、帯域別抑圧手段102(チャネル選択手段201)が帯域別抑圧手段102B(チャネル選択手段201B)に置き換えられている点で第1の実施形態と異なっている。
図8は、第3の実施形態に係るチャネル選択手段201Bの内部構成について示したブロック図である。
図8に示すように、チャネル選択手段201Bは、チャネル決定手段302がチャネル決定手段302Bに置き換えられ、さらにフレーム計数手段301及びチャネル記憶手段303が省略されている点で第1の実施形態と異なっている。
チャネル決定手段302Bは、疑似乱数に基づいてチャネル番号を決定し、得られたチャネル番号を選択チャネル番号として入力スペクトル選択手段304に与える。
図9は、第3の実施形態のチャネル決定手段302Bの内部構成について示したブロック図である。
図9に示すように、チャネル決定手段302Bは、乱数生成手段701、閾値セット供給手段702、及び閾値判定手段703を有している。
乱数生成手段701は、疑似乱数rを生成して閾値判定手段703に与える。乱数生成手段701が、疑似乱数の生成に用いる方法は限定されないものであるが、例えば、処理量の少ない線形合同法を適用することが望ましい。また、乱数生成手段701において、処理量やリソースが問題とならないのであれば、例えば、より周期が長く規則性の少ないメルセンヌ・ツイスタを適用することが望ましい。
線形合同法の計算には整数値しか用いられないため、得られる素の疑似乱数は整数値(整数疑似乱数と呼ぶ)であるが、この実施形態の例では、乱数生成手段701は、整数疑似乱数を整数疑似乱数の最大値で除して0.0〜1.0の実数値に変換した疑似乱数rを出力するものとする。
閾値セット供給手段702は、チャネル数Mより1少ない(M−1)個の、0.0より大きく1.0より小さい実数値の集合を事前に定義して、定義された集合を閾値セットRi(i=1,…,M−1)として閾値判定手段703に与える。閾値セットの構成は、制限されるものではないが、配列を用いた平衡二分探索木とする(配列の要素がR2i<Ri<…<R2i+1を満たすようにする)のが好適である(図10)。図10の「配列」は、添え字iの順に閾値が配列に格納されている様を示す。同じく「データ構造」は、閾値セットが平衡二分探索木の構造を持っている様を示す。同じく「値」は、(M−1)個の閾値が範囲0.0〜1.0の数直線上のどこに位置するかのイメージを示す。図10では閾値が等間隔に位置しているが、閾値の値はこれに制限されるものではない。同じく「選択チャネル」は,数直線上の乱数の位置と、後述する閾値判定手段703によって選択される選択チャネル番号との関係を示す。
閾値判定手段703は、与えられた疑似乱数rと与えられた閾値セットRiに基づいて定まるチャネル番号を、選択チャネル番号として設定する。選択チャネル番号mは、図11に示したフローに従って選択される。図11に従った閾値判定手段703の動作を説明する。はじめに、選択チャネル番号mにチャネル数Mを代入して初期化し(S1)、疑似乱数rに乱数生成手段701(図11では関数rand()に相当)が生成した値(0.0〜1.0の実数値)を代入し(S2)、閾値セットの添え字iに1を代入して初期化する(S3)。疑似乱数rと閾値Riとの比較を行い(S4)、r<Riであれば選択チャネル番号mに添え字iを代入し(S5)、iを2倍して更新し(S6)、r≧Riであればiを2倍して1を加えて更新する(S7)。そして、添え字iとチャネル数Mとの比較を行い(S8)、i<MであればS4〜S7を更新し、i≧Mであれば処理を終了して選択チャネル番号mを確定する。以上の方法によれば、疑似乱数と閾値を比較する回数は、高々log2Mを切り上げた整数の回数、すなわち処理オーダO(log2n)となり、特許文献1のO(n)より少ない回数で実現できる。
したがって、第3の実施形態のチャネル決定手段302Bでは、閾値配列Riの定め方(各チャネル番号に適用するレンジ)によって、どのチャネルをどの程度重要視するのか(各チャネル番号の出現率)を調整することができる。例えば、Ri=i/Mとすれば、各チャネル番号の出現率は均等となり、各チャネル番号の出現率等は統計的には第1の実施形態と同じ結果となる。また、重要視するチャネル番号に対応するレンジを広く調整することで、第2の実施形態と同様に、統計的には重要視するチャネル番号の出現率を上げること等の調整が可能となる。
(C−2)第3の実施形態の効果
第3の実施形態によれば以下のような効果を奏することができる。
第3の実施形態の雑音抑圧装置100Bでは、第1、第2の実施形態と同様に、入力信号のチャネル数が増えた場合でも、チャネル数に応じてO(n)の処理量オーダとはならず、従来よりも少ない処理量で雑音抑制を行うことができる。第3の実施形態の雑音抑圧装置100Bでは、単位時間ごとに、乱数の生成は一回、閾値判定は高々log2Mを切り上げた整数の回数しか実行されないため、処理量オーダは平衡二分探索木と同じO(log2n)となる。
また、第3の実施形態では、チャネル決定手段302Bに設定する閾値配列Ri(i=1,…,M−1)の内容を調整(各チャネル番号に対応するレンジを調整)することで、複数チャネルの入力パワースペクトルを事前に定めた自由度の高い重要視する度合にしたがって評価しながら雑音を抑制することができる。
第1の実施形態および第2の実施形態では、チャネルを選択する順序を一意的に定めていた。第1の実施形態では、複数チャネルを平均的に参照することしかできない。第2の実施形態では、各チャネルを重要視する度合を自由に設定するのが容易ではない。例えば、第2の実施形態において、チャネル数M=2で、チャネル1を30%、チャネル2を70%重要視したい場合には、わずか2チャネルのために{1,1,1,2,2,2,2,2,2,2}等のような要素数が10個以上のチャネル順序を用意しなければならない。しかしながら、第3の実施形態の雑音抑圧装置100Bでは疑似乱数を発生させ、発生させた疑似乱数と事前に定めた閾値に基づいてチャネルを決定する。これにより、例えばチャネル数M=2で重要視する度合を13%と87%にするというような、第2の実施形態では難しい設定も容易に実現できる。すなわち、第3の実施形態では、第2の実施形態の場合よりも各チャネル番号の出現率を容易に調整することができる。
(D)他の実施形態
本発明は、上記の各実施形態に限定されるものではなく、以下に例示するような変形実施形態も挙げることができる。
(D−1)第2及び第3の実施形態において、ユーザが、チャネル順序情報及び閾値配列Riを変更(編集)可能とするようにしてもよい。
また、第2の実施形態において、重要視する度合をユーザが途中で変更可能とする場合、重要視する度合にしたがってチャネル順序を自動生成するチャネル順序自動生成手段を設けるようにしてもよい。このチャネル順序自動生成手段は、例えば、チャネル順序の最大要素数を事前に定めておいて、ユーザが指定した重要視する度合ができるだけ正しく反映されるようにチャネル順序を構成することが望ましい。
さらに、第3の実施形態において、重要視する度合をユーザが途中で変更可能とする場合、閾値配列供給手段の代わりにユーザの操作を受けて閾値配列を自動で調整する閾値配列生成手段を構成に含めることが望ましい。
(D−2)第2の実施形態及び第3の実施形態において、複数チャネルの入力パワースペクトルに応じて重要視する度合を自動で変更するチャネル重要度適応手段を構成に含めても良い。当該チャネル重要度適応手段は、例えば、各チャネルの音声パワー指標値が最大となるチャネルをより重要視するように、重要視する度合を変更する構成とするようにしてもよい。音声パワー指標値としては、例えば音声パワーの一定期間の最大値を適用することが望ましい。音声パワー指標値は、ある時刻においては選択チャネル番号のチャネルでのみ更新されるようにしてもよい。当該チャネル重要度適応手段は、例えば、1単位時間前における音声パワー指標値に忘却係数β(例えばβ=0.99)を乗じた値と、選択チャネル番号の入力パワースペクトルの最大要素とのうち大きい方を、新しい音声パワー指標値として更新するようにしてもよい。当該チャネル重要度適応手段は、例えば、1単位時間前における複数チャネルの音声パワー指標値のうち、最大の音声パワー指標値を記憶しておいて、選択チャネル番号の音声パワー指標値が当該最大の音声パワー指標値より大きければ該選択チャネル番号がより重要視されるように、重要視する度合を変更するようにしてもよい。このようにすることで、処理量オーダをO(log2n)に保ちながら重要視する度合を変更することが可能となる。