以下に添付図面を参照して、この発明にかかる音響処理装置の実施形態を詳細に説明する。以下では、音響信号として主に音声信号を用いる例を説明するが、音響信号は音声信号に限られるものではない。
上述の自己回帰モデルは、例えば以下の(1)式で表される。
ここでs(t)は時刻tの音源信号、x(t)はマイクロフォンで集音された時刻tの観測信号、c(τ)は残響除去フィルタの係数、Kは直接音からの残響成分の遅延の上限を表す。このモデルに基づいて、観測信号から残響除去フィルタの係数が推定され、以下の(2)式で表されるフィルタリングによって残響が除去される。
ここで、y(t)は残響が除去された目的信号を表している。またDは除去する残響の遅延の下限を表している。一般に遅延が小さい範囲では、音源信号そのものの成分と残響成分との区別が難しい。このため、音源信号成分を取り除いて歪みが生じることを避けるために所定の遅延Dが設定される。Mは、M=K−Dで表される整数である。
図1は、上述の自己回帰モデルを用いた音響処理装置10の機能構成例を示すブロック図である。図1に示すように音響処理装置10は、受付部11と、推定部12と、除去部13と、を備えている。
受付部11は、観測信号x(t)の入力を受け付ける。例えば受付部11は、マイクロフォンなどの集音装置で集音された観測信号を入力する。推定部12は、観測信号x(t)を参照して残響除去フィルタ係数c(τ)を推定する。
除去部13は、(2)式に基づいてフィルタリングを行って目的信号y(t)を出力する。ここで、(2)式で表される残響除去フィルタは非再帰型フィルタ(FIR(Finite Impulse Response)フィルタ)であるため、フィルタは常に安定であり、出力が発散することはない。
図2は、音響処理装置10で用いられる自己回帰モデルが表す残響の物理的な意味を説明するための図である。図2に示すように、音源である話者33からの音源信号がマイクロフォン31で集音(観測)される。観測信号がスピーカ32などの音響出力装置から出力される。図2は、音源信号は直接音のみがマイクロフォン31で観測され、観測信号がスピーカ32で再生され、残響を伴って再度マイクロフォン31に集音されることを表している。
このように、自己回帰モデルは、話者33の口元のマイクロフォン31で集音した音声を会場に拡声放送し、会場で反射した音声が再度マイクロフォン31に集音される状況などの残響を表している。
残響が問題になる別の状況として、マイクロフォン31から離れた音源の音声を集音する状況がある。この場合のモデルは以下の(3)式で表される。図3は、このモデルが表す残響の物理的な意味を説明するための図である。
図3は、音源である話者33から直接マイクロフォン31に到達する直接音と、音源信号が壁などで反射することによって減衰し遅延した信号とが加算された信号がマイクロフォン31で観測されることを表している。
残響を除去する信号処理は、一般に音声認識の前処理として用いられることが多い。これは、例えば話者33の口元から離れたマイクロフォン31で音声認識を行う場合、室内の残響によって音声認識の精度が低下するためである。このような用途における残響のモデルは、図3のように話者33から遠い位置にあるマイクロフォン31による集音のモデルとなる。
モデルが前提とする状況が異なる、すなわち、モデルが不整合であるため、図1に示すような自己回帰モデルを用いた手法では、図3に示す状況に対して、十分な残響除去の精度を得ることができない。
一方、上述したような逆フィルタを用いる手法は、図3のモデルに基づいている。(3)式のc(τ)を観測信号x(t)から求めることができたと仮定すると、残響が除去された目的信号y(t)は以下の(4)式で求められる。
図4は、(4)式のモデルを用いた音響処理装置20の機能構成例を示すブロック図である。図4に示すように音響処理装置20は、受付部11と、推定部22と、除去部23と、記憶部24と、を備えている。受付部11は、図1と同様であるため同一の符号を付し説明を省略する。
推定部22は、(3)式のモデルに基づいて残響除去フィルタ係数c(τ)を推定する。除去部23は、(4)式に基づいて目的信号y(t)を計算する。このとき、過去の目的信号が必要であることから、除去部23は、記憶部24に算出した目的信号y(t)を記憶して用いている。
このような構成では、残響除去フィルタが再帰型フィルタ(IIR(Infinite Impulse Response)フィルタ)となる。このため、フィルタ係数が不安定となって発散する可能性があり、実際には実施することができない。
一般に残響除去で必要なフィルタの次数は数十以上であり、推定したフィルタ係数の安定性を保証することはできない。そのため、(4)式の再帰型残響除去フィルタの特性を近似する非再帰型の残響除去フィルタ(逆フィルタ)が推定され、(2)式によって残響除去が行われる。
このように、図4のような構成では、モデルに基づいた残響除去フィルタそのものではなく、近似的な逆フィルタを用いている。このため、近似による誤差が生じ、残響除去の精度が低下する場合がある。
(第1の実施形態)
第1実施形態にかかる音響処理装置は、音源から離れたマイクロフォンにより集音する状況に対して、その物理現象と合致したモデルに基づいて、フィルタ係数が不安定とならない手法により、残響除去フィルタを推定する。そして各実施形態にかかる音響処理装置は、推定したフィルタを用いて残響除去処理を行う。これにより、残響除去処理の精度を向上させることが可能となる。
図5は、第1の実施形態にかかる音響処理装置100の構成の一例を示すブロック図である。図5に示すように、音響処理装置100は、受付部11と、第1記憶部120と、推定部102と、除去部103と、更新部104と、第2記憶部121と、第3記憶部122と、を備えている。受付部11は、図1と同様であるため同一の符号を付し説明を省略する。
音響処理装置100は、マイクロフォンなどで集音された観測信号x(t)を入力とし、残響が除去された目的信号yn(t)を出力とする。本実施形態では、処理の対象となる処理区間に含まれる観測信号の全体に対して繰り返し残響除去処理が行われ、最後に得られた目的信号が出力される。処理区間は、例えば、音声認識などの音声処理の対象となる時系列の音響信号を含む区間である。繰り返しの回数をN回(Nは2以上の整数)とする。図中のn(nは1≦n≦Nを満たす整数)は何回目の繰り返しであるかを示すインデックスである。
第1記憶部120は、受付部11が取得した、処理区間に含まれる観測信号の全体を記憶する。第1記憶部120に記憶される観測信号は、推定部102によるフィルタ係数の推定処理、および、除去部103による残響除去処理で参照される。例えば、第1記憶部120は、処理区間のうちの任意の時刻(t)が指定された場合、指定された時刻(t)における観測信号x(t)が推定部102および除去部103により読み出される。
第2記憶部121は、除去部103により出力される目的信号yn(t)を記憶する。後述するように、第2記憶部121に記憶される目的信号は、除去部103による残響除去処理では直接には参照されない。
第3記憶部122は、観測信号から残響が除去された後の目的信号を記憶する。第3記憶部122に記憶される目的信号は、推定部102によるフィルタ係数の推定処理、および、除去部103による残響除去処理で参照される。例えば繰り返しのn回目に目的信号yn(t)を求めるときには、繰り返しの(n−1)回目(この場合、nは2≦n≦N)に求められて第3記憶部122に記憶された、時刻tに対して過去の目的信号Yn−1,t−Dが参照される。処理を開始する時点(n=1)では目的信号は求められていないため、第3記憶部122は、参照する目的信号の初期値として、時刻tに対して過去の観測信号を記憶しておく(Y0,t−D=Xt−D)。
処理区間に含まれるすべての観測信号に対して除去部103により残響除去処理が実行された後、更新部104が、第2記憶部121に記憶された目的信号によって、第3記憶部122に記憶された目的信号を更新する。
除去部103により出力され第2記憶部121に記憶される目的信号を、以下では出力信号といい、第3記憶部122に記憶され除去部103により参照される目的信号を、以下では参照信号という場合がある。第3記憶部122は、ある処理区間(第1処理区間)に含まれる観測信号(第1観測信号)に対して残響の除去が完了した信号を表す参照信号を記憶する記憶部に相当する。
推定部102は、残響除去フィルタのフィルタ係数を推定する。推定部102は、音源から離れたマイクロフォンにより集音する状況に適合するモデルに基づいてフィルタ係数を推定する。このモデルは、例えば、遅延して入力される音響信号に残響除去フィルタを適用することによって得られる信号と音響信号とを加算して得られる信号として観測信号を表すモデルである。推定部102は、このモデルに基づいて、観測信号(第2観測信号)と、参照信号とを用いて、残響除去フィルタのフィルタ係数を推定する。
除去部103は、観測信号から残響を除去する残響除去処理を実行する。例えば除去部103は、観測信号(第2観測信号)と、第3記憶部122に記憶された参照信号と、推定部102により推定されたフィルタ係数を有する残響除去フィルタと、を用いて、観測信号から残響が除去された目的信号(出力信号)を求める。
本実施形態では、同じ処理区間に含まれる観測信号に対して、フィルタ係数の推定処理が複数回(N回)繰り返し実行され、残響除去処理が複数回(N回)繰り返し実行される。すなわち、第3記憶部122に記憶された参照信号を求めるために用いられた観測信号(第1観測信号)と、参照信号を用いて次の繰り返しで目的信号を求めるために用いられる観測信号(第2観測信号)とは、同じ処理区間に含まれる。
更新部104は、出力信号によって参照信号を更新する。例えば更新部104は、(n−1)回目に求められる出力信号が、繰り返しのn回目の参照信号として用いられるように第3記憶部122に記憶された参照信号を更新する。
上述の各部(受付部11、推定部102、除去部103、および、更新部104)は、例えば、1または複数のプロセッサにより実現される。例えば上述の各部は、CPU(Central Processing Unit)などのプロセッサにプログラムを実行させること、すなわちソフトウェアにより実現してもよい。上述の各部は、専用のIC(Integrated Circuit)などのプロセッサ、すなわちハードウェアにより実現してもよい。上述の各部は、ソフトウェアおよびハードウェアを併用して実現してもよい。複数のプロセッサを用いる場合、各プロセッサは、各部のうち1つを実現してもよいし、各部のうち2以上を実現してもよい。
第1記憶部120、第2記憶部121および第3記憶部122は、HDD(Hard Disk Drive)、光ディスク、メモリカード、RAM(Random Access Memory)などの一般的に利用されているあらゆる記憶媒体により構成することができる。また、第1記憶部120、第2記憶部121および第3記憶部122は、物理的に異なる記憶媒体としてもよいし、物理的に同一の記憶媒体の異なる記憶領域として実現してもよい。さらに第1記憶部120、第2記憶部121および第3記憶部122のそれぞれは、物理的に異なる複数の記憶媒体により実現してもよい。
次に、このように構成された第1の実施形態にかかる音響処理装置100による残響除去処理について図6を用いて説明する。図6は、第1の実施形態における残響除去処理の一例を示すフローチャートである。
受付部11は、例えばマイクロフォンなどにより集音された観測信号を受け付ける(ステップS101)。繰り返しの1回目の場合、観測信号x(t)が、参照信号y0(t)として第3記憶部122に記憶される。
推定部102は、残響除去フィルタのフィルタ係数を推定する(ステップS102)。繰り返しの1回目では、推定部102は、第3記憶部122の参照信号y0(t)と観測信号x(t)とを参照して残響除去フィルタのフィルタ係数c1(τ)を推定する。
次に除去部103は、推定されたフィルタ係数c
1(τ)を有する残響除去フィルタで観測信号から残響を除去した出力信号を算出する(ステップS103)。例えば除去部103は、以下の(5)式に基づいて出力信号y
n(t)を求める。繰り返しの1回目(n=1)の場合、除去部103は、出力信号y
1(t)を算出する。
すなわち、除去部103は、時刻(t−D)から所定間隔ずつずらした複数の出力信号のそれぞれと、フィルタベクトルCnに含まれる対応するフィルタ係数cn(τ)とを乗じて得られた複数の乗算値を加算した値を、残響信号として算出する。なお、この場合、複数の出力信号は、(n−1)回のフィルタリングをしたことにより残響信号が除去された信号である。そして、除去部103は、算出した残響信号を観測信号から除去して出力信号y1(t)を算出する。
除去部103は、出力信号y1(t)を第2記憶部121に記憶する(ステップS104)。推定部102は、処理区間に含まれるすべての時刻tの観測信号を処理したか否かを判断する(ステップS105)。処理していない場合(ステップS105:No)、ステップS102に戻り、次の時刻tの観測信号に対して処理が繰り返される。
すべての時刻tの観測信号に対して出力信号y1(t)が求められたら(ステップS105:Yes)、更新部104は、第2記憶部121に記憶されている出力信号y1(t)を次回の繰り返しの参照信号として第3記憶部122の内容を更新する(ステップS106)。
次に、推定部102は、処理回数が繰り返し回数(N)に達したか否かを判断する(ステップS107)。達していない場合(ステップS107:No)、ステップS102に戻り、処理区間に含まれるすべての時刻tの観測信号に対して再度処理が繰り返される。
例えば繰り返しの2回目の場合、n=2として同様に推定部102および除去部103の処理が行われ出力信号y2(t)が求められて第2記憶部121に記憶される。更新部104は、第3記憶部122の参照信号y1(t)をy2(t)で更新して次回の参照信号とする。以下同様に処理がN回繰り返される。
処理回数が繰り返し回数(N)に達した場合(ステップS107:Yes)、除去部103は、N回目の処理で得られた出力信号yN(t)を、最終的な出力信号として出力し(ステップS108)、残響除去処理を終了する。
図7は、本実施形態の残響除去処理の流れを説明するための概念図である。丸印は各信号の1サンプル(ある時刻tの信号)を表している。x(t)は処理区間に含まれる各時刻tの観測信号を表す。y(t)は各時刻tの参照信号を表す。図7の例では、19個の観測信号を含む区間が処理区間とされる。
繰り返しの1回目では、観測信号x(t)が第3記憶部122に記憶され、参照信号y0(t)として参照される。繰り返しの1回目で算出された出力信号y1(t)は、2回目の参照信号として第3記憶部122に記憶される。繰り返しの2回目で算出された出力信号y2(t)は、3回目の参照信号として第3記憶部122に記憶される。同様にして、繰り返し回数Nに達するまで処理が繰り返される。
次に、推定部102による残響除去フィルタ係数の推定処理の一例について説明する。
フィルタベクトルC
nを、以下の(6)式で定義する。フィルタベクトルC
nは、基準時刻tにおける残響信号を推定するための残響除去フィルタに含まれるフィルタ係数を表す。
また、現在の時刻tに対して過去の参照信号を表す対象ベクトルY
n,t−Dを以下の(7)式で定義する。
この対象ベクトルYn,t−Dは、時刻(t−D)から所定間隔ずつずらした複数の時刻における複数の対象信号を含む対象ベクトルの一例である。時刻(t−D)は、基準時刻(現在の時刻t)から、所定の遅延Dだけ遅れた時刻である。第1実施形態においては、対象ベクトルYn,t−Dは、(n−1)回(nは2以上の整数)のフィルタリングをしたことにより残響信号が除去された、時刻(t−D)から所定間隔ずつずらした複数の時刻における複数の出力信号(複数の参照信号)である。
これらを用いると(5)式は以下の(8)式で表される。フィルタベクトルC
nおよび対象ベクトルY
n,t−Dのそれぞれは、M個(Mは2以上の整数)の要素を含む。記号Tは行列の転置を表す。
残響が取り除かれた出力信号y
n(t)が平均0分散σ(t)
2の時変正規分布に従うと仮定すると、残響除去フィルタに含まれる複数のフィルタ係数を表すフィルタベクトルC
nを求める問題は、以下の(9)式で表される目的関数E(C
n)を最大化するC
nを推定する問題に帰着される。
ただし、N(x;μ,σ2)は、平均μ、分散σ2の正規分布を表すxの関数である。
目的関数E(C
n)を最大化するフィルタベクトルC
nは、以下の(10)式に示す関係式により算出される。
対象行列R
nは、M×M個の要素を含む正方行列であり、下記の(11−1)式により表される。また、目的ベクトルr
nは、M個の要素を含むベクトルであり、下記の(11−2)式により表される。
すなわち、対象行列Rnは、2つの対象ベクトルYn,t−Dの直積に対して、基準時刻tでの正規分布の分散σ2(t)の逆数を乗じた値を、所定時間範囲で積分した行列である。また、目的ベクトルrnは、対象ベクトルYn,t−Dと基準時刻tにおける観測信号x(t)との積に対して、基準時刻tでの正規分布の分散σ2(t)の逆数を乗じた値を、所定時間範囲で積分したベクトルである。なお、所定時間範囲は、例えば、処理の対象となる処理区間の範囲であってもよいし、1サンプル分の信号範囲であってもよいし、任意に設定した時間範囲であってもよい。
基準時刻tでの正規分布の分散σ
2(t)の逆数は、例えば、時刻に応じた変数とすることも可能である。例えば、時刻に応じた変数は、基準時刻tにおける、直前のフィルタリングにより残響信号が除去された出力信号の値の二乗の逆数であってもよい。この場合、対象行列R
nは、下記の(12−1)式により表される。また、目的ベクトルr
nは、下記の(12−2)式により表される。
また、観測信号が十分に長い場合、出力信号が時不変正規分布に従うと仮定し、基準時刻tでの正規分布の分散σ
2(t)の逆数を、時間に依存しない定数(例えば1)とすることができる。この場合、対象行列R
nは、下記の(13−1)式により表される。また、目的ベクトルr
nは、下記の(13−2)式により表される。
すなわち、対象行列Rnは、2つの対象ベクトルYn,t−Dの直積を所定時間範囲で積分した行列であってもよい。また、目的ベクトルrnは、対象ベクトルYn,t−Dと基準時刻tにおける観測信号x(t)との積を、所定時間範囲で積分したベクトルであってもよい。
図8は、対象行列と第1行列との関係を説明する図である。ここで、推定部102は、下記の(14)式に示す第1関係式に従って、フィルタベクトルC
nを算出する。
すなわち、推定部102は、第1行列Rn´とフィルタベクトルCnとの行列積が、目的ベクトルrnと等しいことを表す第1関係式に従って、残響除去フィルタに含まれるフィルタ係数を含むフィルタベクトルCnを算出する。
第1行列Rn´は、対象行列Rnに近似した行列である。具体的には、第1行列Rn´は、対象行列Rnと同一の行数および列数であって、行番号より列番号が小さい位置の値が0、または、行番号より列番号が大きい位置の値が0である。
例えば、図8の(a)に示すように、推定部102は、対象行列Rnにおける、行番号より列番号が小さい位置の値を0にマスキングすることにより、上三角行列である第1行列Rn´を生成する。このように生成された第1行列Rn´は、行番号と列番号とが同一の位置の値および行番号より列番号が大きい位置の値が、対象行列Rnに含まれる値と同一であり、行番号より列番号が小さい位置の値が0である。なお、推定部102は、行番号と列番号とが同一の位置の値および行番号より列番号が大きい位置の値のうちの一部の値を、対象行列Rnとは異なる値としてもよい。この場合、第1行列Rn´は、行番号と列番号とが同一の位置の値および行番号より列番号が大きい位置の値のうちの、少なくとも一部が、対象行列Rnに含まれる値と同一であり、行番号より列番号が小さい位置の値が0である。
例えば、図8の(b)に示すように、推定部102は、対象行列Rnにおける、行番号より列番号が大きい位置の値を0にマスキングすることにより、下三角行列である第1行列Rn´を生成してもよい。このように生成された第1行列Rn´は、行番号と列番号とが同一の位置の値および行番号より列番号が小さい位置の値が、対象行列Rnに含まれる値と同一であり、行番号より列番号が大きい位置の値が0である。なお、推定部102は、行番号と列番号とが同一の位置の値および行番号より列番号が小さい位置の値のうちの一部の値を、対象行列Rnとは異なる値としてもよい。この場合、第1行列Rn´は、行番号と列番号とが同一の位置の値および行番号より列番号が小さい位置の値のうちの、少なくとも一部が、対象行列Rnに含まれる値と同一であり、行番号より列番号が大きい位置の値が0である。
推定部102は、このような第1行列Rn´を用いることにより、非常に簡易に、残響除去フィルタに含まれるフィルタ係数を表すフィルタベクトルCnを算出することができる。
例えば、第1行列R
n´が3行3列の上三角行列であり、フィルタベクトルC
nおよび目的ベクトルr
nが3行1列のベクトルであったとする。この場合、(14)式に示された第1関係式は、下記の(15)式のように表される。
なお、(15)式において、A、B、C、D、E、F、G、H、Iは、既に算出されている値である。x1、x2、x3は、フィルタベクトルCnに含まれるフィルタ係数であり、推定部102による算出対象となる未知の変数である。
(15)式の行列演算式から、下記の(16−1)式、(16−2)式および(16−3)式が導き出される。
(16−3)式の未知の変数は、x3の1個のみである。従って、推定部102は、一次方程式を解けばx3を算出することができる。
(16−2)式の未知の変数は、x2およびx3の2個である。しかし、x3の解が算出された後であれば、(16−2)式の未知の変数は、x2の1個のみである。従って、推定部102は、x3の解が算出された後であれば、一次方程式を解けばx2の解を算出することができる。
(16−1)式の未知の変数は、x1、x2およびx3の3個である。しかし、x2およびx3の解が算出された後であれば、(16−1)式の未知の変数は、x1の1個のみである。従って、推定部102は、x2およびx3の解が算出された後であれば、一次方程式を解けばx1の解を算出することができる。
以上から、第1行列Rn´が上三角行列である場合、最も大きい行番号から小さい行番号に向かい行毎に順次に方程式を解く演算を行うことにより、残響除去フィルタに含まれるフィルタ係数を非常に簡易な演算で算出することができる。一方、第1行列Rn´が下三角行列である場合には、最も小さい行番号から大きい行番号に向かい行毎に順次に方程式を解く演算を行うことにより、残響除去フィルタに含まれるフィルタ係数を非常に簡易な演算で算出することができる。
図9は、推定部102の機能ブロックを示す図である。推定部102は、ベクトル取得部201と、行列生成部202と、ベクトル算出部203と、フィルタ算出部204とを有する。
ベクトル取得部201は、時刻(t−D)から所定間隔ずつずらした複数の時刻における複数の対象信号を含む対象ベクトルを取得する。本実施形態においては、ベクトル取得部201は、(n−1)回のフィルタリングをしたことにより残響信号が除去された、時刻(t−D)から所定間隔ずつずらした複数の時刻における複数の出力信号を含む対象ベクトルYn−1,t−Dを取得する。
行列生成部202は、2つの対象ベクトルの直積に基づく対象行列Rnに近似した第1行列Rn´を生成する。例えば、対象行列Rnは、対象ベクトルYn−1,t−Dと対象ベクトルYn−1,t−Dとの直積に対して、時刻に応じた変数を乗じた行列を、所定時間範囲で積分した行列である。例えば、時刻に応じた変数は、基準時刻tにおける、直前のフィルタリングにより残響信号が除去された出力信号yn−1(t)の二乗の逆数(1/(yn−1(t))2)である。また、対象行列Rnは、対象ベクトルYn−1,t−Dと対象ベクトルYn−1,t−Dとの直積に対して定数(例えば1)を乗じた行列を、所定時間範囲で積分した行列であってもよい。
例えば、行列生成部202は、このような対象行列Rnにおける行番号より列番号が小さい位置の値を0にマスキングすることにより、上三角行列である第1行列Rn´を生成する。また、例えば、行列生成部202は、このような対象行列Rnにおける行番号より列番号が大きい位置の値を0にマスキングすることにより、下三角行列である第1行列Rn´を生成してもよい。
ベクトル算出部203は、対象ベクトルと基準時刻tにおける観測信号x(t)との積に基づく目的ベクトルrnを算出する。例えば、目的ベクトルrnは、対象ベクトルYn−1,t−Dと基準時刻tにおける観測信号x(t)との積に対して、時刻に応じた変数を乗じたベクトルを所定時間範囲で積分したベクトルである。時刻に応じた変数は、第1行列Rn´の生成に用いる変数と同一である。また、例えば、目的ベクトルrnは、対象ベクトルYn−1,t−Dと基準時刻tにおける観測信号x(t)との積に対して定数(例えば1)を乗じたベクトルを所定時間範囲で積分したベクトルであってもよい。
フィルタ算出部204は、第1行列Rn´と目的ベクトルrnとに基づき、基準時刻tにおける残響信号を生成するための残響除去フィルタを算出する。より具体的には、フィルタ算出部204は、第1行列Rn´とフィルタベクトルCnとの行列積が目的ベクトルrnと等しいことを表す第1関係式に従って、残響除去フィルタに含まれる複数のフィルタ係数を算出する。
図10は、残響除去フィルタの推定処理のフローチャートである。推定部102は、n回目のフィルタリングにおいて、図10に示すフローチャートに従って残響除去フィルタを生成する。
まず、ステップS201において、ベクトル取得部201は、複数の対象信号を含む対象ベクトルを取得する。本実施形態においては、ベクトル取得部201は、対象ベクトルとして、(n−1)回のフィルタリングをしたことにより残響信号が除去された複数の出力信号を含む対象ベクトルYn−1,t−Dを取得する。
続いて、ステップS202において、行列生成部202は、対象ベクトルに基づき、対象行列Rnを算出する。例えば、行列生成部202は、対象ベクトルYn−1,t−Dと対象ベクトルYn−1,t−Dとの直積に対して時刻に応じた変数を乗じ、所定時間範囲で積分することにより、対象行列Rnを算出する。時間に応じた変数は、例えば、(n−1)回のフィルタリングにより残響信号が除去された出力信号yn−1(t)の二乗の逆数(1/(yn−1(t))2)である。また、行列生成部202は、時間に応じた変数に代えて、所定の定数(例えば1)を用いて対象行列Rnを算出してもよい。
続いて、ステップS203において、行列生成部202は、対象行列Rnに基づき、第1行列Rn´を生成する。例えば、行列生成部202は、対象行列Rnにおける行番号より列番号が小さい位置の値を0にマスキングすることにより、上三角行列である第1行列Rn´を生成する。また、例えば、行列生成部202は、対象行列Rnにおける行番号より列番号が大きい位置の値を0にマスキングすることにより、下三角行列である第1行列Rn´を生成する。
なお、行列生成部202は、ステップS202およびステップS203の処理を一括して実行してもよい。すなわち、行列生成部202は、対象ベクトルから、直接、第1行列Rn´を生成してもよい。この場合、例えば、行列生成部202は、対象ベクトルYn−1,t−Dと対象ベクトルYn−1,t−Dとの直積の演算において、行番号より列番号が小さい位置または行番号より列番号が大きい位置の値の算出処理をスキップして、0とすればよい。
続いて、ステップS204において、ベクトル算出部203は、対象ベクトルに基づき、目的ベクトルrnを算出する。例えば、ベクトル算出部203は、対象ベクトルYn−1,t−Dと基準時刻tにおける観測信号x(t)との積に対して時刻に応じた変数を乗じ、所定時間範囲で積分することにより、目的ベクトルrnを算出する。時刻に応じた変数は、対象行列Rnの生成に用いた変数と同一である。
続いて、ステップS205において、フィルタ算出部204は、第1行列Rn´と目的ベクトルrnとに基づき、基準時刻tにおける残響信号を生成するための残響除去フィルタを算出する。より具体的には、フィルタ算出部204は、第1行列Rn´とフィルタベクトルCnとの行列積が目的ベクトルrnと等しいことを表す第1関係式に従って、残響除去フィルタに含まれる複数のフィルタ係数を表すフィルタベクトルCnを算出する。そして、推定部102は、このように算出したフィルタベクトルCnを除去部103に与える。
図11は、フィルタ算出部204によるフィルタ係数の算出処理のフローチャートである。フィルタ算出部204は、ステップS205において、図11のステップS211からステップS219の処理を実行する。
まず、ステップS211において、フィルタ算出部204は、第1行列Rn´が、上三角行列かまたは下三角行列かを判断する。第1行列Rn´が上三角行列である場合(ステップS211のYes)、フィルタ算出部204は、処理をS212に進める。第1行列Rn´が下三角行列である場合(ステップS211のNo)、フィルタ算出部204は、処理をステップS216に進める。
ステップS212において、フィルタ算出部204は、変数iにMを代入する。変数iは、演算対象の行を表す。Mは、第1行列R
n´の行数を表す整数である。続いて、ステップS213において、フィルタ算出部204は、下記の(17)式を演算して、i行目のフィルタ係数c
n(i)を算出する。
(17)式において、Rn(i,i)は、対象行列Rn(または第1行列Rn´)における、i行i列の値である。rn(i)は、目的ベクトルrnのi行の値である。Rn(i,m)は、対象行列Rn(または第1行列Rn´)における、i行m列の値である。cn(m)は、フィルタベクトルCnのm行の値である。なお、(17)式のΣの項は、m>Mの場合、0となる。
続いて、ステップS214において、フィルタ算出部204は、i=1であるか否かを判断する。i=1ではない場合(ステップS214のNo)、フィルタ算出部204は、ステップS215において、iから1を減算して、処理をステップS213に戻す。これにより、フィルタ算出部204は、iをMから1まで1ずつ減少させながら、i行目のフィルタ係数cn(i)を算出することができる。そして、i=1となった場合(ステップS214のYes)、フィルタ算出部204は、本フローを終了する。以上の処理により、フィルタ算出部204は、第1行列と、残響除去フィルタに含まれる複数のフィルタ係数を含むフィルタベクトルとの行列積が目的ベクトルと等しいことを表す第1関係式(Rn´Cn=rn)に従って、最も大きい行番号から小さい行番号に向かい行毎に順次に、残響除去フィルタに含まれるフィルタ係数cn(i)を算出することができる。
一方、ステップS216において、フィルタ算出部204は、変数iに1を代入する。続いて、ステップS217において、フィルタ算出部204は、下記の(18)式を演算して、i行目のフィルタ係数c
n(i)を算出する。
(18)式における各値は、(17)式と同一である。ただし、(18)式のΣの項は、1>mの場合、0となる。
続いて、ステップS218において、フィルタ算出部204は、i=Mであるか否かを判断する。i=Mではない場合(ステップS218のNo)、フィルタ算出部204は、ステップS219において、iに1を加算して、処理をステップS217に戻す。これにより、フィルタ算出部204は、iをMから1まで1ずつ増加させながら、i行目のフィルタ係数cn(i)を算出することができる。そして、i=Mとなった場合(ステップS218のYes)、フィルタ算出部204は、本フローを終了する。以上の処理により、フィルタ算出部204は、第1行列と、残響除去フィルタに含まれる複数のフィルタ係数を含むフィルタベクトルとの行列積が目的ベクトルと等しいことを表す第1関係式(Rn´Cn=rn)に従って、最も小さい行番号から大きい行番号に向かい行毎に順次に、残響除去フィルタに含まれるフィルタ係数cn(i)を算出することができる。
以上のように、第1の実施形態に係る音響処理装置100によれば、残響除去フィルタを非常に簡易な計算で算出することができる。これにより、第1の実施形態に係る音響処理装置100によれば、残響除去フィルタを推定するコストを小さくすることができる。
第1の実施形態では、音源から離れたマイクロフォンで集音した場合の残響の物理モデルを模擬する(3)式のモデルに基づいて残響除去フィルタ係数を求め、その係数を参照信号に畳み込んで残響成分を求めている。このため、精度よく残響を除去することができる。推定された1セットの残響除去フィルタ係数を用いたフィルタリング処理の過程では、参照信号が出力信号で置き換えられることはなく、再帰型のフィルタとはならない。このため、出力が発散する問題は生じない。
上述した実施形態において、DおよびKの値は、0≦D<Kを満たす任意の値を設定することができる。これらの値は集音環境における残響の特性に応じて設定すればよい。一般に遅れ時間が25ms以下の初期反射音については音声の明瞭性に影響を与えにくいことから、Dは25ms程度に相当する値をサンプリング周波数に応じて設定すればよい。残響時間が長い環境ではKの値は大きめに設定する必要がある。KとDの値の差が大きいほど計算量が大きくなる傾向があるため、性能と計算量のバランスを考慮して調整すればよい。
上述した実施形態では、除去部103は(5)式に基づいて出力信号を求めるものとして説明したが、これに限定されるものではない。例えば、(5)式のyn(t)の符号とx(t)の符号が異なる場合にyn(t)=0でクリッピングするようにしてもよい。または、(5)式のyn(t)の絶対値がx(t)の絶対値を超える場合にyn(t)の絶対値をx(t)の絶対値で制限するようにしてもよい。雑音などの影響によって残響除去フィルタの係数に誤差が生じた場合でも、残響除去による音質劣化の副作用を防止することができる。
(変形例)
第1の実施形態では、ある処理区間の観測信号全体に対して残響除去フィルタ係数を推定するものとして説明した。本変形例では、観測信号を所定の時間間隔で区切ったブロック毎に残響除去フィルタ係数の推定と残響除去処理を行う。すなわち、複数の観測信号を含む処理区間が分割されたブロックを処理区間(第1処理区間)として処理が実行される。
ブロック長をLとし、ブロックの番号を表すインデックスをbとすると、第b番目のブロックの範囲は、bL≦t≦bL+L−1となる。推定部102は、以下の(19−1)式および(19−2)式に示される対象行列R
nおよび目的ベクトルr
nを用いて残響除去フィルタ係数を求める。
(19−1)式および(19−2)式は、(12−1)式および(12−2)式をブロック毎の処理に変更した式である。除去部103は、bL≦t≦bL+L−1の範囲で(5)式を用いて出力信号yn(t)を求める。第1の実施形態と同様に、残響除去フィルタ係数の推定と出力信号の算出が、当該ブロックに対してN回繰り返される。最終的に得られた出力信号が当該ブロックの結果として出力される。第b番目のブロックの処理が完了したら、第(b+1)番目のブロックの観測信号を入力して同様に順次処理を行う。
本変形例によれば、観測信号が長く残響の特性が時間的に変動するような場合に、残響特性の変化に追従して精度よく残響を除去することが可能となる。また、リアルタイムの処理において順次残響を除去した目的信号を出力する必要があるような場合は、本変形例を用いることで、出力の遅延を低減することが可能となる。
このように、第1の実施形態にかかる音響処理装置では、繰り返しの各回で、前の回で求められた目的信号を参照するように、残響除去処理が繰り返し実行される。これにより、再帰型ではないフィルタにより精度よく残響を除去することが可能となる。
(第2の実施形態)
第2の実施形態にかかる音響処理装置は、上記変形例と同様に、複数の観測信号を含む処理区間が分割されたブロックを処理区間として残響除去処理を実行する。本実施形態では、前のブロック(第1処理区間)で求められた目的信号を参照信号として、後のブロック(第2処理区間)の残響除去処理が実行される。
図12は、第2の実施形態にかかる音響処理装置100−2の構成の一例を示すブロック図である。図12に示すように、音響処理装置100−2は、受付部11と、第1記憶部120と、推定部102−2と、除去部103−2と、更新部104−2と、第2記憶部121と、第3記憶部122と、を備えている。
第2の実施形態では、推定部102−2、除去部103−2および更新部104−2の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる音響処理装置100のブロック図である図5と同様であるので、同一符号を付し、ここでの説明は省略する。
推定部102−2は、前の処理区間(ブロック)で算出された目的信号を参照信号として、フィルタ係数の推定処理を実行する点が、第1の実施形態の推定部102と異なっている。除去部103−2は、前の処理区間(ブロック)で算出された目的信号を参照信号として、残響除去処理を実行する点が、第1の実施形態の除去部103と異なっている。
更新部104−2は、前の処理区間(ブロック)で求められる出力信号が、次の処理区間(ブロック)の参照信号として用いられるように第3記憶部122に記憶された参照信号を更新する。
このように本実施形態では、ある処理区間(ブロック)に含まれる観測信号に対して、前の処理区間(ブロック)で算出された目的信号を参照信号として残響除去処理が実行される。すなわち、第3記憶部122に記憶された参照信号を求めるために用いられた観測信号(第1観測信号)と、参照信号を用いて次の繰り返しで目的信号を求めるために用いられる観測信号(第2観測信号)とは、異なる処理区間(ブロック)に含まれる。
本実施形態は、ブロック長Lと除去する残響の遅延の下限値Dが、L≦Dの関係を満たす場合に適用できる。L≦Dが成立する場合、あるブロックのフィルタ係数の推定処理で参照する参照信号が、直前のブロックの出力信号により確定している。すなわち、参照信号が現在のブロックで算出された出力信号で置き換えられることはなく、再帰型のフィルタとはならない。このため、出力が発散する問題は生じない。
図13は、第2の実施形態の残響除去処理の流れを説明するための概念図である。丸印は各信号の1サンプル(ある時刻tの信号)を表している。x(t)は処理区間に含まれる各時刻tの観測信号を表す。y(t)は各時刻tの参照信号を表す。破線はブロックの境界を示す。図13の例ではブロック長L=8となっている。
第(b−1)番目のブロックの処理を完了したと仮定し、第b番目のブロックを処理する手順を説明する。この時点で、第3記憶部122には第(b−1)番目のブロックとそれ以前のブロックで求められた目的信号が参照信号として記憶されている。第b番目のブロックに対しては参照信号の初期値として観測信号が記憶されている。
推定部102−2の処理について説明する。まず推定部102−2は、上述した(19−1)式、(19−2)式で表される対象行列Rnおよび目的ベクトルrnを求める。さらに、推定部102−2は、対象行列Rnに基づき、第1行列Rn´を生成する。なお、推定部102−2は、対象ベクトルから、直接、第1行列Rn´を生成してもよい。
次に推定部102−2は、第1行列R
n´、目的ベクトルr
n、直前のブロックの第1行列R
n b−1´、目的ベクトルr
n b−1、および、所定のスムージング係数αを用いて、当該ブロックの第1行列R
n b´、および目的ベクトルr
n bを、以下の(20)式、(21)式で求める。
αの値は、0<α<1の範囲で設定される。αは、例えばLが小さくなるほど1に近い値(例えば0.9)が用いられる。推定部102−2は、これらを用いて、残響除去フィルタ係数C
nを以下の第1関係式((22)式)に基づき求める。
次に、除去部103−2は、(5)式を用いて当該ブロックの出力信号を算出し、第2記憶部121に記憶する。次に、更新部104−2は、第3記憶部122の当該ブロックの参照信号を第2記憶部121の出力信号で更新する。
本実施形態の推定部102−2の処理において、(19−1)式および(19−2)式のYn−1,t−Dが参照する範囲は、L≦Dが成立するため、常に第(b−1)番目のブロックかそれ以前のブロックに含まれている。例えば、残響の遅延の下限値D=9、上限値K=14の場合、Yn−1,t−Dが参照する範囲は図13の範囲401となる。
すなわち、本実施形態では、当該ブロックの最初(n=1)の残響除去フィルタ推定処理においても、参照信号が直前のブロックの出力信号として確定しているため、(3)式の残響モデルに基づいた残響除去フィルタの推定が可能であり、必ずしも繰り返しを行う必要がない。繰り返しを行わない場合は、繰り返す場合と比較して計算量を削減可能となる。
また本実施形態では、残響除去フィルタ係数は、当該ブロックだけで求めるのではなく、それ以前の信号の情報も利用して第1行列Rn b´および目的ベクトルrn bをスムージングしながら求められる。これにより、ブロックが短い場合でも高精度に残響除去が可能なフィルタ係数を安定して求めることが可能となる。
なお、スムージングを実行せず、第1の実施形態と同様の方法でフィルタ係数を求めてもよい。また、最初のブロックなどのように直前のブロックの出力信号(参照信号)が存在しない場合は、当該ブロックの観測信号などを参照信号の初期値として用いればよい。
このように、第2の実施形態では高い残響除去性能を維持したままアルゴリズム遅延と演算量を低減することができる。このため、リアルタイム処理に適している。
(第3の実施形態)
第1の実施形態および第2の実施形態では、音源から離れたマイクロフォンにより集音する状況と合致したモデルに基づいて、残響除去フィルタを推定した。これに対して、第3の実施形態では、マイクロフォンで集音した観測信号がスピーカから出力され、再度マイクロフォンに集音される状況と合致したモデルに基づいて、残響除去フィルタを推定する。なお、第3の実施形態を説明するにあたり、第1の実施形態と共通の内容については説明を省略する。
図14は、第3の実施形態にかかる音響処理装置100−3の構成の一例を示すブロック図である。図14に示すように、音響処理装置100−3は、受付部11と、第1記憶部120と、推定部102−3と、除去部103−3と、更新部104と、第2記憶部121と、第3記憶部122とを備えている。
第3の実施形態では、推定部102−3および除去部103−3の機能が第1の実施形態と異なっている。その他の構成および機能は、第1の実施形態にかかる音響処理装置100のブロック図である図5と同様であるので、同一符号を付し、ここでの説明は省略する。
推定部102−3は、残響除去フィルタのフィルタ係数を推定する。推定部102−3は、マイクロフォンで集音した観測信号がスピーカから出力され、再度マイクロフォンに集音される状況に適合したモデルに基づいてフィルタ係数を推定する。このモデルは、例えば、現在の音響信号と、過去の観測信号に残響除去フィルタを適用して得られる信号とを加算した信号が、観測信号を表す。推定部102−3は、このモデルに基づいて、観測信号と、参照信号とを用いて、残響除去フィルタのフィルタ係数を推定する。
除去部103−3は、観測信号から残響を除去する残響除去処理を実行する。例えば除去部103−3は、第1記憶部120に記憶された現在の観測信号および過去の観測信号と、推定部102−3により推定された残響除去フィルタとを用いて、観測信号から残響が除去された目的信号(出力信号)を求める。
このような構成の第3の実施形態に係る音響処理装置100−3は、第1の実施形態に係る音響処理装置100と同様の手順で処理を実行する。ただし、推定部102−3および除去部103−3で実行される処理の内容は異なる。
除去部103−3は、残響除去フィルタで観測信号から残響を除去した出力信号を算出する場合に、以下の(23)式に基づいて出力信号y
n(t)を算出する。
すなわち、除去部103は、時刻(t−D)から所定間隔ずつずらした複数の観測信号のそれぞれと、フィルタベクトルCnに含まれる対応するフィルタ係数cn(τ)とを乗じて得られた複数の乗算値を加算した値を、残響信号として算出する。そして、除去部103は、算出した残響信号を観測信号から除去して出力信号y1(t)を算出する。
このように、除去部103−3は、(23)式を用いて出力信号(t)を算出することにより、現在の音響信号と過去の音響信号に残響除去フィルタを適用して得られる信号とを加算した信号が観測信号を表すモデルに基づき、観測信号から残響信号を除去することができる。
次に、推定部102−3による残響除去フィルタの推定処理について説明する。
現在の時刻tに対して過去の観測信号を表す対象ベクトルX
t−Dを以下の(24)式で定義する。
この対象ベクトルXt−Dは、時刻(t−D)から所定間隔ずつずらした複数の時刻における複数の対象信号を含む対象ベクトルの一例である。対象ベクトルXt−Dは、M個の要素を含む。
(24)式を用いると、(23)式は、以下の(25)式で表される。
残響が取り除かれた出力信号y
n(t)が平均0分散σ(t)
2の時変正規分布に従うと仮定すると、残響除去フィルタに含まれる複数のフィルタ係数を表すフィルタベクトルC
nを求める問題は、以下の(26)式で表される目的関数E(C
n)を最大化するC
nを推定する問題に帰着される。
従って、第3の実施形態でも、目的関数E(C
n)を最大化するフィルタベクトルC
nは、第1の実施形態で示した(10)式に示す関係式により算出される。ただし、第3の実施形態において、対象行列R
nは、下記の(27−1)式により表される。また、目的ベクトルr
nは、下記の(27−2)式により表される。
すなわち、対象行列Rnは、2つの対象ベクトルXt−Dの直積に対して、基準時刻tでの正規分布の分散σ2(t)の逆数を乗じた値を、所定時間範囲で積分した行列である。また、目的ベクトルrnは、対象ベクトルXt−Dと基準時刻tにおける観測信号x(t)との積に対して、基準時刻tでの正規分布の分散σ2(t)の逆数を乗じた値を、所定時間範囲で積分したベクトルである。なお、所定時間範囲は、例えば、処理の対象となる処理区間の範囲であってもよいし、1サンプル分の信号範囲であってもよいし、任意に設定した時間範囲であってもよい。
基準時刻tでの正規分布の分散σ
2(t)の逆数は、例えば、時刻に応じた変数とすることも可能である。例えば、時刻に応じた変数は、基準時刻tにおける、直前のフィルタリングにより残響信号が除去された出力信号の値の二乗の逆数であってもよい。この場合、対象行列R
nは、下記の(28−1)式により表される。また、目的ベクトルr
nは、下記の(28−2)式により表される。
また、観測信号が十分に長い場合、出力信号が時不変正規分布に従うと仮定し、基準時刻tでの正規分布の分散σ
2(t)の逆数を、時間に依存しない定数(例えば1)とすることができる。この場合、対象行列R
nは、下記の(29−1)式により表される。また、目的ベクトルr
nは、下記の(29−2)式により表される。
すなわち、対象行列Rnは、2つの対象ベクトルXt−Dの直積を所定時間範囲で積分した行列であってもよい。また、目的ベクトルrnは、対象ベクトルXt−Dと基準時刻tにおける観測信号x(t)との積を、所定時間範囲で積分したベクトルであってもよい。
また、第3の実施形態においても推定部102−3は、第1の実施形態に係る推定部102と同様に、対象行列Rnに基づき第1行列Rn´を生成する。そして、推定部102−3は、第1行列Rn´および目的ベクトルrnから、フィルタベクトルCnを算出する。従って、第3の実施形態に係る推定部102−3は、第1行列Rn´および目的ベクトルrnを生成した後の構成および処理は、第1の実施形態に係る推定部102と同様である。これにより、第3の実施形態においても、推定部102−3は、非常に簡易な計算でフィルタベクトルCnを算出することができる。
(第4の実施形態)
第4の実施形態では、第3の実施形態と同様に、マイクロフォンで集音した観測信号がスピーカから出力され、再度マイクロフォンに集音される状況と合致したモデルに基づいて、残響除去フィルタを推定する。さらに、第4の実施形態では、第2の実施形態と同様に、複数の観測信号を含む処理区間が分割されたブロックを処理区間として残響除去処理を実行する。本実施形態では、前のブロック(第1処理区間)で求められた目的信号を参照信号として、後のブロック(第2処理区間)の残響除去処理が実行される。
図15は、第4の実施形態にかかる音響処理装置100−4の構成の一例を示すブロック図である。図15に示すように、音響処理装置100−4は、受付部11と、第1記憶部120と、推定部102−4と、除去部103−4と、更新部104と、第2記憶部121と、第3記憶部122と、第4記憶部123と、ブロック更新部131とを備えている。
第4の実施形態では、第3の実施形態の構成から、第4記憶部123およびブロック更新部131をさらに備えている。また、第4の実施形態では、推定部102−4および除去部103−4の機能が第3の実施形態と異なっている。その他の構成および機能は、第3の実施形態にかかる音響処理装置100−3のブロック図である図14と同様であるので、同一符号を付し、ここでの説明は省略する。
推定部102−4は、前の処理区間(ブロック)で観測された観測信号に基づき、フィルタ係数の推定処理を実行する点が、第3の実施形態の推定部102−3と異なっている。除去部103−4は、前の処理区間(ブロック)で観測された観測信号に基づき、残響除去処理を実行する点が、第3の実施形態の除去部103−3と異なっている。
第4記憶部123は、過去の処理区間(ブロック)において、観測信号から残響信号が除去された後の出力信号を記憶する。第4記憶部123に記憶される出力信号は、推定部102−4によるフィルタ係数の推定処理、および、除去部103−4による残響除去処理で参照される。
ブロック更新部131は、1ブロック分の処理が完了した場合、前の処理区間(ブロック)で観測された観測信号が、次の処理区間(ブロック)以降の処理で取得可能なように、第1記憶部120に記憶された出力信号をコピーして、第4記憶部123に記憶させる。
このように本実施形態では、ある処理区間(ブロック)に含まれる観測信号に対して、前の処理区間(ブロック)で観測された観測信号を用いて残響除去処理が実行される。すなわち、第4記憶部123に記憶された観測信号と、目的信号を求めるために用いられる観測信号とは、異なる処理区間(ブロック)に含まれる。
推定部102−4の処理について説明する。まず、推定部102−4は、下記の(30−1)式および(30−2)式で表される対象行列R
nおよび目的ベクトルr
nを求める。
さらに、推定部102−4は、対象行列Rnに基づき、第1行列Rn´を生成する。なお、推定部102−4は、対象ベクトルから、直接、第1行列Rn´を生成してもよい。次に、推定部102−4は、第2の実施形態に示した(19−1)式および(19−2)式に従い、スムージング処理を実行して、当該ブロックの第1行列Rb n´および目的ベクトルrn bを算出する。そして、推定部102−4は、これらを用いて、残響除去フィルタ係数Cnを、第2の実施形態に示した第1関係式((22)式)に基づき算出する。
このような本実施形態に係る音響処理装置100−4では、残響除去フィルタに含まれるフィルタ係数を、当該ブロックに含まれる情報のみで算出するのではなく、それ以前のブロックに含まれる情報も利用して算出する。これにより、音響処理装置100−4によれば、ブロックが短い場合でも高精度に残響信号を除去することができる。
なお、音響処理装置100−4は、スムージングを実行せず、第3の実施形態と同様の方法で残響除去フィルタを生成してもよい。また、音響処理装置100−4は、最初のブロックなどのように直前のブロックの観測信号が存在しない場合は、当該ブロックの観測信号などを用いてもよい。
このように、第4の実施形態では高い残響除去性能を維持したままアルゴリズム遅延と演算量を低減することができる。このため、リアルタイム処理に適している。
(第5の実施形態)
第5の実施形態にかかる音響処理装置は、観測信号を周波数ごとに分けた観測信号(周波数別観測信号)に分割し、周波数別観測信号ごとに残響除去処理を行う。そして本実施形態にかかる音響処理装置は、周波数ごとに求めた、残響が除去された目的信号(周波数別目的信号)を統合して目的信号を求める。
図16は、第5の実施形態にかかる音響処理装置100−5の構成の一例を示すブロック図である。図16に示すように、音響処理装置100−5は、分割部1011と、音響処理部1001a〜1001dと、統合部1012と、を備えている。
音響処理部1001a〜1001dは、分割部1011により分割された周波数別観測信号を入力して音響除去処理を実行する。音響処理部1001a〜1001dは同様の機能を備えるため、以下では、区別する必要のない場合は単に音響処理部1001という。図16では4つの音響処理部1001を備える例を示しているが、分割する周波数の数に応じた個数の音響処理部1001を備えればよい。以下では、観測信号がF個の周波数領域に分割され、F個の音響処理部1001が備えられる例を説明する。
分割部1011は、入力された観測信号に帯域分割処理を行い、観測信号をF個の周波数帯域に分割し、F個の周波数別観測信号を出力する。帯域分割処理に伴い、周波数別観測信号のサンプリング周波数は、観測信号のサンプリング周波数と比較して低減される。
F個の音響処理部1001は、F個の周波数別観測信号のうち対応する周波数別観測信号がそれぞれ入力される。音響処理部1001は、入力された周波数別観測信号(第2観測信号)に対して残響除去処理を行って周波数別目的信号を出力する。
統合部1012は、F個の音響処理部1001からF個の周波数別目的信号を受け取り、F個の周波数別目的信号の周波数帯域を統合する処理を行い、観測信号と同じサンプリング周波数の目的信号を出力する。
分割部1011は、例えば高速フーリエ変換(FFT:Fast Fourier Transform)を用いて構成することが可能である。例えば分割部1011は、観測信号に対して所定のフレーム周期ごとに、窓関数を乗じて短時間波形を取得し、FFTを適用して帯域分割を行う。例えば、窓関数長(FFT長)を512サンプルとすると、周波数帯域数は512となる。対称性があるため処理すべき帯域数はほぼ半分のF=257となる。
FFTを適用して得られた信号のうち同じ周波数ビンに対応する値をフレーム間で連結した信号が周波数別観測信号となる。そのため、周波数別観測信号のサンプリング周期はフレーム周期と等しくなる。例えば、フレーム周期を128サンプルとすれば、周波数別観測信号のサンプリング周期は観測信号のサンプリング周期の128倍となる。
音響処理部1001は、上述した第1〜第4の実施形態の音響処理装置のいずれかを用いることができる。ただし、本実施形態の周波数別観測信号はFFT処理の結果として複素数となっているため、上述した実施形態における信号処理を複素数に拡張して用いる必要がある。具体的には、行列の転置を共役転置に、値の2乗を絶対値の2乗に変更するなどの拡張を行うことによって、複素数の信号に対しても残響除去を行うことができる。
音響処理部1001に含まれる除去部の機能は、上述した第1〜第4の実施形態と同様であってもよいし、複素数の信号の位相を無視して絶対値で残響成分を除去するようにしてもよい。この場合、除去部は、(5)式の代わりに以下の(31)式、(32)式で出力信号を求めればよい。
本実施形態によれば、出力信号のパワーが観測信号のパワー以下となるため、残響除去による副作用を防止して頑健な処理を行うことができる。
統合部1012は、F個の周波数別目的信号を受け取り、フレームごとに周波数帯域を統合して逆フーリエ変換(IFFT:Inverse FFT)を適用することにより、フレームごとの短時間波形を生成する。さらに統合部1012は、各短時間波形の端点での不連続を軽減する合成窓を適用した後に、フレーム周期だけずらして各フレームの短時間波形を重畳することにより目的信号を生成する。
本実施形態では、周波数別観測信号のサンプリング周波数が低減されるため、音響処理部1001における残響時間に関するパラメータ((5)式のDおよびM)の値が低減される。その結果、音響処理部1001の計算量は第1〜第4の実施形態と比較して大幅に削減され、分割部1011および統合部1012の計算量を含めても計算量が削減される。
分割部1011の構成は上記に限られるものではない。例えば分割部1011が、完全再構成フィルタバンクを用いるように構成してもよい。これは、例えば直交ミラーフィルタ(QMF:Quadrature Mirror Filter)に基づく分析フィルタと1/2サブサンプリングを多段に組み合わせた構成で実現される。
統合部1012は逆に、2倍オーバーサンプリングとQMFに基づく合成フィルタを多段に組み合わせた構成によって実現される。完全再構成フィルタバンクを用いた構成では、周波数別観測信号は実数の信号となるため、FFTを用いる構成と比較してさらに演算量が低減される。
上述した実施形態では、分割されたF個の周波数別観測信号のすべてに残響除去処理を行うものとして説明したが、一部の信号のみに残響除去処理を行うようにしてもよい。例えば、100Hz〜2000Hz程度の範囲に対応する帯域の周波数別観測信号にのみ残響除去処理を行うようにしてもよい。音声の主要な周波数成分はこの帯域に含まれているため、残響除去による明瞭化が可能となり、計算量を削減することができる。また、周波数別観測信号毎に異なるパラメータを設定するようにしてもよい。例えば、残響時間が比較的短い周波数には、(5)式のMを小さい値とすることにより、性能を低下させずに計算量を削減することができる。
(第6の実施形態)
第6の実施形態にかかる音響処理装置は、残響を除去した音響信号を基に音声認識処理を実行する機能を備える。
図17は、第6の実施形態にかかる音響処理装置100−6の構成の一例を示すブロック図である。図17に示すように、音響処理装置100−6は、マイクロフォン1101と、変換部1102と、残響除去部1103と、認識部1104と、を備えている。
マイクロフォン1101は、音声を集音して観測信号を出力する。例えばマイクロフォン1101は、残響を含んだアナログ音声信号である観測信号を出力する。マイクロフォン1101を音響処理装置100−6内に備えず、音響処理装置100−6に接続されたマイクロフォン1101から観測信号を入力するように構成してもよい。
変換部1102は、アナログ信号である観測信号をデジタル信号に変換する。マイクロフォン1101とともに変換部1102を音響処理装置100−6の外部に備えてもよい。この場合、残響除去部1103は、変換部1102により変換されたデジタル信号を観測信号として入力すればよい。
残響除去部1103は、上述した第1〜第5の実施形態に係る音響処理装置のいずれかを用いることができる。残響除去部1103で残響が除去された目的信号は認識部1104に入力される。
認識部1104は、入力された目的信号に対して音声認識処理を実行する。認識部1104は、任意の音声認識手法を用いて音声認識処理を実施すればよい。認識部1104の出力は、テキストデータでもよいし、認識された単語IDのような記号化された情報であってもよい。
残響除去部1103として、第5の実施形態に係る音響処理装置100−5を用いる場合、統合部1012において、統合された周波数別目的信号に対してIFFT処理を行わず、周波数別目的信号のまま認識部1104に入力するようにしてもよい。このような構成にすることで、認識部1104における特徴量抽出のためのFFT処理を省くことが可能となる。この結果、計算量を削減することができる。
本実施形態の音響処理装置100−6は、1台の計算機に実装してもよいし、認識部1104をサーバ上に実装し、残響除去部1103を端末上に実装して、これらの間をネットワークを介して通信するように構成してもよい。
第4の本実施形態の音響処理装置100−6は、マイクロフォン1101と音源とが離れていて残響が混入する集音環境においても、残響を除去して音韻が明瞭になった音声に音声認識処理を適用できる。すなわち、高い精度で認識処理を実行可能となる。
以上説明したとおり、第1から第6の実施形態によれば、残響除去処理の精度を向上させることが可能となる。
次に、第1から第6の実施形態にかかる音響処理装置のハードウェア構成について図18を用いて説明する。図18は、第1から第6の実施形態にかかる音響処理装置のハードウェア構成例を示す説明図である。
第1から第6の実施形態にかかる音響処理装置は、CPU(Central Processing Unit)51などの制御装置と、ROM(Read Only Memory)52やRAM(Random Access Memory)53などの記憶装置と、ネットワークに接続して通信を行う通信I/F54と、各部を接続するバス61を備えている。
第1から第6の実施形態にかかる音響処理装置で実行されるプログラムは、ROM52等に予め組み込まれて提供される。
第1から第6の実施形態にかかる音響処理装置で実行されるプログラムは、インストール可能な形式又は実行可能な形式のファイルでCD−ROM(Compact Disk Read Only Memory)、フレキシブルディスク(FD)、CD−R(Compact Disk Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
さらに、第1から第6の実施形態にかかる音響処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、第1から第6の実施形態にかかる音響処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
第1から第6の実施形態にかかる音響処理装置で実行されるプログラムは、コンピュータを上述した音響処理装置の各部として機能させうる。このコンピュータは、CPU51がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。