信号源数の推定方法、推定装置、推定プログラム及び記録媒体
【課題】 実環境において信号源の数を正しく推定する。
【解決手段】 周波数領域変換部20が、観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換し、信号分離部31が、この時系列データXj(f,τ)から分離信号Yi(f,τ)を生成してメモリ10に格納する。次に、パワー算出部32が、各分離信号Yi(f,τ)のパワー値を求めてメモリに格納し、エンベロープ相関算出部33が、異なる分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出してメモリに格納する。そして、判定部34が、各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、残響レベル及びエンベロープ相関値のそれぞれのしきい値を示すパラメータthnoise、threv及びthcorとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する。
【解決手段】 周波数領域変換部20が、観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換し、信号分離部31が、この時系列データXj(f,τ)から分離信号Yi(f,τ)を生成してメモリ10に格納する。次に、パワー算出部32が、各分離信号Yi(f,τ)のパワー値を求めてメモリに格納し、エンベロープ相関算出部33が、異なる分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出してメモリに格納する。そして、判定部34が、各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、残響レベル及びエンベロープ相関値のそれぞれのしきい値を示すパラメータthnoise、threv及びthcorとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、混合された未知数の信号を複数のセンサにより観測した観測値を用いて信号の数を推定する技術に関し、特に、実環境において信号源の数を正しく推定する技術に関する。
【背景技術】
【0002】
複数の音源が混合した観測信号を短時間フーリエ変換し、各周波数ビンで空間相関行列の固有値を調べることにより、信号源の数を推定する方法が提案されている(例えば、非特許文献1参照。)。
[問題の定式化]
まず、この方法で取り扱う問題の定式化を行う。すべての信号はあるサンプリング周波数でサンプリングされ、離散的に表現されるものとする。N個の信号が混合されてM個のセンサで観測されたとする。以下では、信号の発生源からセンサまでに距離があり、信号が減衰・遅延し、かつ複数の経路を経てセンサに到達する状況を扱う。このような状況での混合は、信号源kからセンサjヘのインパルス応答hjk(l)による畳み込み混合
【数2】
となる。ここでPはインパルス応答hjk(l)の持続時間を、nj(t)はセンサでのノイズを表す。具体的な例としては、音信号が室内で混合される場合、音源からマイクまでの距離により音が減衰・遅延し、また壁などの反射により残響が発生し、さらにマイクに背景ノイズが付加される。
【0003】
[固有値に基づく方法]
次に、非特許文献1で提案された信号源数の推定方法を、順を追って説明する。なお、センサの数は信号源の数と同等かそれ以上、すなわちN≦Mを仮定する。
まず、センサjでの観測信号xj(t)にL点の短時間離散フーリエ変換を適用して周波数毎の時間系列
【数3】
を求める。ここでfは周波数であり、f=0, (1/L)fs,...,{(L-1)/L}fsと離散化されている(fsはサンプリング周波数)。g(l)は窓関数であり、ハニング窓g(l)=(1/2)(1+cos(2πl/L))などのg(0)にパワーの中心を持つ窓関数を用いることで、Xj(f,τ)は時刻t=τを中心とする観測信号xj(t)の周波数特性を表現する。Xj(f,τ)はLサンプルにわたる情報を含んでいるため、すべての時間τに対してXj(f,τ)を求める必要はなく、適当な間隔(例えばL/2やL/4)の時間τ毎にXj(f,τ)を求める。
【0004】
畳み込み混合された信号には、周波数領域での操作が有効である。式(1)で示される時間領域での畳み込み混合が、周波数領域では
【数4】
と各周波数での単純混合に近似表現できるからである。ここで、Hjk(f)は信号源kからセンサjまでの周波数応答、Sk(f,τ)やNj(f,τ)は式(2)と同様の式に従って源信号sk(t)やノイズnj(t)に短時間離散フーリエ変換を施したものである。
【0005】
次に、X(f,τ)=[X1(f,τ),..., XM(f,τ)]Tに対して相関行列R(f)=〈X(f,τ) X(f,τ)H〉τを計算し、これをR(f)=V(f)・Λ(f)・V(f)Hのように固有値分解する。なお、V(f)=[v1(f),v2(f),...,vM(f)]であり、Λ(f)はλ1(f),λ2(f),...,λM(f)を対角要素とするM行M列の対角行列である。また、・Hは行列の共役転置を求める操作、〈・〉τは時間τに関する平均、vj(f)は固有ベクトル(M次元の縦ベクトル)、λj(f)はこれに対応する固有値であり、λ1(f)≧λ2(f)≧...≧λM(f)の順にソートされている。また、各固有値λj(f)は、[Y1(f,τ),...,YM(f,τ)]T←V(f)H・[X1(f,τ),...,XM(f,τ)]Tとしたときのj番目の信号Yj(f,τ)のパワー値を示す。
【0006】
そして、分解された固有値のうち支配的な値を持つ固有値の個数Nを信号源の数と推定し、残りのM-N個の固有値の大きさをノイズのパワー値σn(f)2と推定する(λN+1(f)=…=λM(f)=σn(f)2)。
【非特許文献1】山本潔,W. F.G. van Rooijen, E. Y. Ling, 浅野太, 山田武志,北脇信彦,「SVMを用いた音源数推定法の音源分離システムヘの応用」,日本音響学会2002年秋季研究発表会,2−5−10,pp.537−538,2002年9月」
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかし、従来技術の固有値に基づく方法では、実際の信号源の数を正しく推定できない場合があるという問題点がある。
例えば、上述の固有値に基づく方法を現実的な状況で用いる場合、以下に挙げる2つの問題を考慮しなければならない。
1つ目の問題は残響の影響である。一般に、残響の長さは短時間離散フーリエ変換のフレーム長Lよりも長いため、ある信号のある時刻の成分が複数のフレームに影響する。その結果、支配的な固有値の数が実際の信号の数よりも多く推定されることがある。
【0008】
図11(a)は、図10に示す条件で1つの音源だけを鳴らした場合の各周波数における固有値の正規化パワー値である。この図に示すように、残響の影響により2番目に大きな値をとる固有値のパワー値が−20dB程度になっている。上述の固有値に基づく方法の場合、所定のしきい値よりも値が大きな固有値の個数を信号源の数と判断することになるが、このしきい値が−20dBより小さかった場合、上述の2番目に値が大きな固有値も「支配的な固有値」の一つにカウントされ、音源の数が2個と推定されてしまう。すなわち、残響の影響から、このしきい値をある程度大きな値としなければ正確な音源数の推定はできない。
2つ目の問題は、各信号のパワーが固有値に適切に現れていない場合があるということである。この問題は特に位相差が小さくなる低周波数で顕著になる。
【0009】
図11(b)は、図10に示す条件で3音源すべてを鳴らした場合の各周波数における固有値の正規化パワー値である。この例の場合、音源数は3であるから3つの支配的な固有値が存在するはずである。しかし、この図に示すように、各音源のパワー値は同等に設定したにもかかわらず、固有値のパワー値は、2番目、3番目となるにつれ次第に小さくなっていく。この傾向は、低周波数になるほど顕著となる。そのため、この状況において多くの周波数で3音源が存在すると推定されるためには、上述のしきい値を−30dB程度以下に設定しなければならない。しかし、しきい値を小さく設定すると、今度は残響に対応する固有値も「支配的な固有値」にカウントされ、例えば、図11(a)の1音源の場合に2音源以上と推定されてしまう。
【0010】
以上説明してきたように、従来技術の固有値に基づく方法では、残響の影響の問題と、各信号のパワーが固有値に適切に現れていない問題とにより、実際の信号源の数を正しく推定できないことがある。
本発明はこのような点に鑑みてなされたものであり、実環境でも信号源の数を正しく推定できる技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明では上記課題を解決するために、まず、M個のセンサでの観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換し、この時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成して記憶部に格納する。次に、上記の各分離信号Yi(f,τ)のパワー値を求めて記憶部に格納し、異なる分離信号Yi(f,τ)間の時間差Δτに対するエンベロープの相関値を算出して記憶部に格納する。なお、分離信号Yi(f,τ)のエンベロープとは、分離信号の絶対値の包絡線|Yi(f,τ)|を意味する。そして、各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、記憶部に格納されている複数のパラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する。
【0012】
ここで、源信号と残響信号とは相関を持つため、これらの間のエンベロープ相関値は高い。また、残響信号は対応する源信号よりもパワーが小さい。つまり、エンベロープ相関値が高く、パワー値が比較的小さいのが残響信号である。本発明ではこの特徴に着目し、分離信号のエンベロープ相関値やパワー値を各しきい値を示す複数のパラメータと比較して、その分離信号が源信号であるか否かを判断する。これにより、固有値のパワー値のみを指標として源信号を判別していた場合に比べ、実環境を考慮した信号源数の推定が可能となる。
【発明の効果】
【0013】
以上のように、本発明では、分離信号のエンベロープ相関値とパワー値とを算出し、それらと複数のパラメータとを比較して源信号を判別することとしたため、実環境において信号源の数を正しく推定することが可能となる。
【発明を実施するための最良の形態】
【0014】
以下、この発明の実施の形態を図面を参照して説明する。
〔第1の実施の形態〕
まず、本発明における第1の実施の形態について説明する。
<全体の構成>
図1は本形態における推定装置1の全体を示すブロック図である。
推定装置1は、例えば、CPU(central processing unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク等がバスで接続されたノイマン型コンピュータに所定のプログラム(推定プログラム)を実行させることにより構築されるものである。
【0015】
図1に例示するように、本形態の推定装置1は、メモリ10、周波数領域変換部20、信号源数推定部30、結果統合部40及び制御部50を有している。ここで、信号源数推定部30は、信号分離部31、パワー算出部32、エンベロープ相関算出部33及び判定部34を有し、メモリ10は、観測信号領域11、周波数毎の時系列データ領域12、分離信号領域13、パワー値領域14、エンベロープ領域15、パラメータ領域16及び信号源数領域17を有している。また、制御部50はレジスタ51を有し、推定装置1全体を制御する。また、この図における破線の矢印は理論上の情報の流れを示し、実線の矢印は現実のデータの流れ(同時に電気的或いは情報的な接続関係も)を示している。ただし、制御部50における入出力データの表記は省略してある。
【0016】
<処理の概要>
本形態では、源信号が混合された混合信号をM個のセンサで観測した観測信号x1(t),...,xM(t)から源信号の数を推定する。
本形態では、まず前処理として複数のパラメータ(ノイズレベルのしきい値を示す第1パラメータthnoise、残響レベルのしきい値を示す第2パラメータthrev、及びエンベロープ相関値のしきい値を示す第3パラメータthcor)を特定するデータをメモリ10に格納しておく。入力された時間領域の観測信号xj(t)(j={1,...,M})は、それぞれ、周波数領域変換部20で周波数毎の時系列データXj(f,τ)に変換され、信号源数推定部30の信号分離部31に送られる。信号分離部31は、周波数f毎にこの時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成する。そして、パワー算出部32が、各分離信号Yi(f,τ)のパワー値を算出し、エンベロープ相関算出部33が、異なる分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出する。これらが算出されると、判定部34は、各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値とメモリ内の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断して、周波数fに対する信号源の数EN(f)を推定する。
【0017】
その後、音声などの広帯域信号に対しては、最後に結果統合部40において周波数毎の推定値が統合され、全体としての信号源数の推定値enを得る。一方、通信分野などで用いられる狭帯域信号に対しては、周波数毎の推定値を統合する必要はなく、着目する周波数fでの推定値EN(f)を得れば良い。
<本形態の詳細>
図2(a)は図1に例示した信号分離部31の機能構成を、図2(b)はパワー算出部32の機能構成を、図3(a)はエンベロープ相関算出部33の機能構成を、図3(b)は判定部の機能構成を、それぞれ例示したブロック図である。また、図4及び図5は、本形態における信号源数の推定方法を説明するためのフローチャートである。
【0018】
以下、図1〜図5を用い、本形態における構成・処理の詳細について説明する。
[前処理]
まず、前処理としてノイズレベルのしきい値を示す第1パラメータthnoise、残響レベルのしきい値を示す第2パラメータthrev、及びエンベロープ相関値のしきい値を示す第3パラメータthcorを特定するデータを、メモリ10(「記憶部」に相当)のパラメータ領域16に格納する。なおパラメータとしては、例えば、thnoise=0.01、threv =0.2、thcor=0.5を例示できる。ただし、実際の測定時において、鳴っている音源数が分かるサンプルがあれば、その観測データをもとに各パラメータを調整していってもよい。具体的には、例えば、第1パラメータthnoiseを、ノイズ信号の正規化パワー値よりも大きく残響信号の正規化パワー値よりも小さくなるように調整し、第2パラメータthrevを、源信号の正規化パワー値よりも小さく残響信号の正規化パワー値よりも大きくなるように調整し、第3パラメータthcorを、源信号と残響信号とのエンベロープ相関値より小さくなるように調整する。なお、正規化パワー値やエンベロープ相関値の意味については後述する。
また、信号源数の推定対象となる時間領域の観測信号xj(t)(j={1,...,M})をメモリ10の観測信号領域11に書き込む。なお、この観測信号xj(t)はM個のセンサ(マイクロホン等)での観測信号であり、下付添字のjは、その観測信号xj(t)がj番目のセンサで観測されたことを示す。
【0019】
[周波数領域への変換]
まず、制御部50(図1)が変数jに1を代入し、それをレジスタ51に格納する(ステップS1)。次に、周波数領域変換部20が、メモリ10の観測信号領域11にアクセスし、観測信号xj(t)を読み込む(ステップS2)。観測信号xj(t)を読み込んだ周波数領域変換部20は、それを周波数毎の時間系列データXj(f,τ)に変換してメモリ10の周波数毎の時系列データ領域12に格納する(ステップS3)。なお、この例では、サンプリング周波数fs、L点の短時間離散フーリエ変換を利用してこの変換を行う。
次に制御部50は、レジスタ51に格納された変数jがMか否かを判断する(ステップS4)。ここでj=Mでないと判断された場合、制御部50がjに1を加算した値を新たなjとし(ステップS5)、それをレジスタ51に格納してステップS2の処理に戻る。一方、j=Mであると判断された場合、以下の信号源推定処理に移る。
【0020】
[信号源推定処理]
まず、制御部50(図1)が、変数fに0を代入してレジスタ51に格納する(ステップS6)。
独立成分分析(ICA:Independent Component Analysis)処理:
次に、独立成分分析(ICA)部31a(図2(a))が、メモリ10の周波数毎の時系列データ領域12から時系列データXj(f,τ)を抽出し、独立成分分析(ICA)を用い、X(f,τ)=[X1(f,τ),...,XM(f,τ)]Tから、M×M行列の分離行列W(f)とICA分離信号Z(f,τ)=[Z1(f,τ),...,ZM(f,τ)]Tとを生成してレジスタ31b(「記憶部」に相当)に格納する(ステップS7)。ここでICAによる信号分離は、ICA分離信号Z(f,τ)の各要素が互いに独立になるようにZ(f,τ)=W(f)・X(f,τ)となるW(f) を算出する手法である。また、ICAのアルゴリズムは、A. Hyvarinen and J. Karhunen and E. Oja, "Independent Component Analysis," John Wiley & Sons, 2001, ISBN 0-471-40540,などに様々なものが示されている。
【0021】
なおICAの解にはスケーリングの任意性がある。Z(f,τ)のある要素にあるスカラ値を掛けても、要素間の独立性は変化しないからである。従って、この段階では、センサで観測された源信号のパワーがICA分離信号に正しく反映されていない可能性が高い。また、源信号の数Nがセンサ数Mより少なければ、ICA分離信号Z(f,τ)のN個の要素は源信号に対応し、残りのM-N個の要素はノイズや残響成分に対応するが、この段階のノイズや残響に対応する要素の大きさは一般に増幅されている。そこで、次にスケーリング部31c(図2(a))において、このスケーリングの任意性の問題を解決する。
【0022】
スケーリング問題解決処理:
スケーリング部31cでは、スケーリングの任意性の問題を解決するため、以下に示す操作を行う。まず、対角行列生成部31caが、レジスタ31bから分離行列W(f)を読み出し、この分離行列W(f)からスケーリング問題を解決するための対角行列Λ(f)を生成する(ステップS8)。この対角行列Λ(f)としては、例えば、
Λ(f)=sqrt(diag[(W(f)・W(f)H)-1]) …(4)
が例示できる。ここで、・-1は逆行列、・Hは共役転置行列、diagは対角成分以外を0にする操作、sqrtは各要素の平方根を計算する操作である。
【0023】
生成された対角行列Λ(f)は、積演算部31cbに送られ、積演算部31cbは、これとレジスタ31bから読み出したICA分離信号Z(f,τ)とを用い、[Y1(f,τ),...,YM(f,τ)]T←Λ(f)・[Z1(f,τ),...,ZM(f,τ)]Tの演算によって、スケーリング問題を解決した(パワーを回復した)分離信号Yi(f,τ)(i={1,...,M})を生成し、メモリ10の分離信号領域13(図1)に格納する(ステップS9)。
ここで、式(4)を含む上記一連の操作により、分離信号Yi(f,τ)は、以下の2つの性質を持つ。第一に分離信号Yi(f,τ)が互いに無相関であれば、
【数5】
が成り立つ。すなわち、分離信号Yi(f,τ)のパワーの総和とセンサでの観測信号Xj(f,τ)のパワーの総和が等しくなる。さらに、分離信号Yi(f,τ)が互いに独立であれば、
【数6】
【0024】
が成り立つ。なお、Sk(f,τ)(k={1,...,N})は源信号成分を示す。すなわち、ある分離信号Yi(f,τ)のパワーと、それに対応する源信号Sk(f,τ)をすべてのセンサで観測した際のパワーの総和とは等しくなる。分離信号Yi(f,τ)が互いに無相関、さらには互いに独立になることは、独立成分分析の目的であり、多くの場合この条件はほぼ満たされている。従って、上記一連の操作により、各分離信号Yi(f,τ)のパワーは、それに対応する源信号Sk(f,τ)がセンサで観測された際のパワーの総和に近くなる。
なお、式(4)の対角行列Λ(f)の代わりに、対角行列Λ(f)=diag[W(f)-1]を使用してもよく、より一般的にW(f)-1のi列j行目の要素をj行目の対角成分とする対角行列Λを使用してもよい。この場合、各分離信号Yi(f,τ)のパワーは、対応する源信号Sk(f,τ)をあるセンサjで観測したパワー、すなわち|Hjk(f)・Sk(f,τ)|2に近似する。
【0025】
[判定処理]
判定処理では、スケーリング問題を解決した(パワーを回復した)分離信号Yi(f,τ)から、源信号の数を推定する。まず、制御部50(図1)が変数iに1を代入し、レジスタ51に格納する(ステップS10)。
次に、パワー算出部32の平均パワー算出部32a(図2(b))が、例えばメモリ10の分離信号領域13(図1)から各τに対する分離信号Yi(f,τ)を順次抽出し、そのパワー値|Yi(f,τ)|2を順次算出してレジスタ32bに格納する。そして、平均パワー算出部32aは、レジスタ32bに格納されたパワー値|Yi(f,τ)|2を読み出し、分離信号Yi(f,τ)の時間τに関する平均パワー値
σi2(f)←〈|Yi(f,τ)|2〉τ
を算出して、レジスタ32b(「記憶部」に相当)に格納する(ステップS11)。
【0026】
次に、エンベロープ相関算出部33のエンベロープ算出部33a(図3(a))が、例えばメモリ10の分離信号領域13(図1)から各τに対する分離信号Yi(f,τ)を順次抽出し、その絶対値|Yi(f,τ)|を順次算出してレジスタ33bに格納する。次に、エンベロープ算出部33aは、レジスタ32bに格納された絶対値|Yi(f,τ)|を読み出し、時間τに関する平均が0になるように分離信号Yi(f,τ)の絶対値|Yi(f,τ)|を正規化したエンベロープ
vi(f,τ)←|Yi(f,τ)|-〈|Yi(f,τ)|〉τ
を算出してレジスタ33b(「記憶部」に相当)に格納する(ステップS12)。
【0027】
次に、制御部50(図1)が、レジスタ51に格納された変数iがMであるか否かを判断する(ステップ13)。ここでi=Mでなければ、制御部50がiに1を加算し、その値を新たなiとしレジスタ51に格納し(ステップS14)、ステップS11に戻る。一方、i=Mであれば、制御部50は、この変数iに1を代入してレジスタ51に格納し(ステップS15)、以下の処理を実行する。
まず、パワー算出部32のパワー正規化部32c(図2(b))が、レジスタ32bから平均パワー値σ12(f),...,σM2(f)を抽出し、平均パワー値σi2(f)を正規化した正規化パワー値
【数7】
を算出して、メモリ10のパワー値領域14に格納する(ステップS16)。
【0028】
次に、制御部50(図1)が、変数kに1を代入し、レジスタ51に格納する(ステップS17)。次に、エンベロープ相関算出部33の相関算出部33c(図3(a))が、レジスタ33bからエンベロープvi(f,τ)及びvk(f,τ)を抽出する。そして、相関算出部33cは、これらのエンベロープvi(f,τ)及びvk(f,τ)を用い、時間差Δτ(例えばL/2やL/4)による分離信号Yi(f,τ)の分離信号Yk(f,τ)とのエンベロープ相関値
【数8】
を算出し、その演算結果Cori,k(f)をレジスタ33bに格納する(ステップS18)。なお、この例のΔτは、例えばプログラムコードに組み込まれた定数である。
【0029】
次に、制御部50(図1)はレジスタ51に格納された変数kがMであるか否かを判断する(ステップS19)。ここで、k=Mでなかった場合、制御部50がkに1を加算し、その値を新たなkとしてレジスタ51に格納し、ステップS18に戻る(ステップS20)。一方、k=Mであった場合、エンベロープ相関算出部33の最大値算出部33d(図3(a))は、レジスタ33b(図3(a))から、エンベロープ相関値Cori,1(f),...,Cori,M(f)を抽出する。そして、最大値算出部33dは、これらを用い、エンベロープ相関値Cori,k(f)のiごとの最大値maxCori(f)を算出し、メモリ10のエンベロープ領域15(図1)に格納する(ステップS21)。
【0030】
次に、判定部34の比較部34a(図3(b))が、メモリ10のパワー値領域14、エンベロープ領域15及びパラメータ領域16から、平均パワー値の正規化値NPi(f)、エンベロープ相関値の最大値maxCori(f)並びに第1パラメータthnoise、第2パラメータthrev及び第3パラメータthcorを読み出す。そして、比較部34aは、以下の論理式により、分離信号Yi(f,τ)が、源信号に対応するか、ノイズや残響成分に対応するかを判定する(ステップS22)。
【数9】
【0031】
すなわち、ここでは3種類のパラメータthnoise、threv、thcorを用いている。そして、平均パワー値の正規化値NPi(f)が第1パラメータthnoise未満であればノイズ成分と判定し、平均パワー値の正規化値NPi(f)が第2パラメータthrev未満であり、さらにエンベロープ相関値の最大値maxCori(f)が第3パラメータthcorを超えれば残響成分と判定する。結局、sigi(f)が0になれば、分離信号Yi(f,τ)がノイズや残響成分に対応する(源信号成分でない)と判定されたことになり、sigi(f)=1になれば、分離信号Yi(f,τ)が源信号に対応すると判定されたことになる。そして、このように生成された判定結果sigiはレジスタ34b(図3(b))に送られて格納される。なお、上記論理式中の「<」の少なくとも一部を「≦」としてもよく、「>」を「≧」としてもよい。
【0032】
次に、制御部50はレジスタ51(図1)に格納されている変数iがMであるか否かを判断する(ステップS23)。ここで、i=Mでなければ、制御部50がiに1を加算し、その値を新たなiとしてレジスタ51に格納してステップS16に戻る(ステップS24)。一方、i=Mであれば、判定部34の信号源数算出部34c(図3(b))が、レジスタ34bから判定結果sig1(f),...,sigM(f)を抽出し、信号源数推定値
EN(f)=Σi sigi(f)
を算出し、それをメモリ10の信号源数領域17(図1)に格納する(ステップS25)。
【0033】
次に、制御部50は、レジスタ51に格納された変数fが{(L-1)/L}fs(fsはサンプリング周波数)であるか否かを判断する(ステップS26)。ここで、変数fが{(L-1)/L}fsでなかった場合、制御部50が変数fにfs/Lを加算し、その値を新たな変数fとし、レジスタ51に格納してステップS7の処理に戻る(ステップS27)。一方、変数fが{(L-1)/L}fsであった場合、以下の結果統合処理を行う。
[結果統合処理]
まず結果統合部40が、メモリ10の信号源数領域17から各周波数fで推定された信号源数推定値EN(0),...,EN({(L-1)/L}fs)を読み出し、これを元に、全体としての信号源数の推定値enを算出して出力する(ステップS28)。この例では、単純に多数決で全体の推定値enを決定する。信頼できる周波数(例えば、高い周波数)に大きな重みを与えて、重みづけの多数決で全体の推定値enを決定しても良い。
【0034】
[適用結果]
本形態の信号源数の推定方法を音源数の推定に適用した結果を示す。
図10に一般的な実験条件を例示する。この実験条件は以下である。
・信号源:7秒間の音声
・残響時間:TR=200 ms
・背景ノイズパワー:−21.8 dB
・サンプリング周波数:fs=8000 Hz
・部屋の大きさ:4.45 m×3.55 m×2.50 m
・音源数:1〜3個
・音源配置・間隔:4cmの間隔で直線上に配置
・センサの数:3個
・中心音源と各センサとの距離:1.1 m
・中心音源と各センサを結んだ直線と、各センサが配置される直線とがなす角度:45°,90°,120°
この図10に示す条件で1〜3個の音源を鳴らし、3個のマイクでの観測信号を用いて鳴っている音源の数を推定した。
【0035】
図6に従来手法と本形態の手法とによる推定結果の比較を示す。ここで、図6(a)は固有値に基づく従来手法による信号源数の推定結果を示しており、図6(b)は本形態の手法よる信号源数の推定結果を示している。また、横軸は真の音源数、縦軸は音源数0,1,2,3としてそれぞれ推定した周波数ビンの数を示す。
この図に示すように、従来手法では、1音源や3音源の場合にも多数決によると2音源と推定してしまっている。このように従来手法が推定を誤る原因は、図11を用いて説明したように、個々の音源やノイズのパワーが固有値に適切に現れていないことや、残響の影響を考慮されていないことである。一方、本形態の手法によるとすべての場合に正しく推定されている。
【0036】
次に本形態の手法による推定が正確である理由を示す。
まず、パワーの回復(各分離信号が、各信号のパワーを適切に反映しているか)に関して考察する。図7は、3音源の場合にセンサで観測された真のパワー値(図7(a))と、これらの混合音を本形態の手法により分離した分離信号(図7(b))のパワー値との比較を示すものである。なお、図7(a)の観測結果は、各音源を1つずつ鳴らして測定し、その結果を正規化したものである。これらの図に示すように、本形態の手法による各分離信号のパワー値は、各音源の観測値の真のパワー値に近似し、音源数を推定できる程度に正しくパワーが回復されていることがわかる。
【0037】
次に、残響の影響ヘの対処に関して考察する。図8は、1音源の場合の1番目と2番目(i=1,2)の分離信号のパワー値(図8(a))とそれらのエンベロープの相関値(図8(b))を示すものである。図8(a)のパワー値だけを見ると、2番目の分離信号のパワー値が決して十分には小さくないので、信号源なのか残響を含むノイズなのか判断し難い。しかし、右側に示す1番目と2番目の分離信号のエンベロープの相関値を見ると、その値が十分に大きいため、2番目の分離信号は1番目の分離信号の残響成分を多く含むノイズであることがわかる。すなわち、エンベロープの相関値は−1〜+1の値をとり、信号間の相関性が低いほど0に近づく。図8(b)の例では、エンベロープの相関値が0.6〜1の間に集中しており、1番目の分離信号と2番目の分離信号の相関性が高いことが分かる。そしてパワー値が弱い2番目の分離信号が1番目の信号の残響成分であることが推定できる。
【0038】
そして、これらの判断に必要なノイズレベルのしきい値を示す第1パラメータthnoise、残響レベルのしきい値を示す第2パラメータthrev、及びエンベロープ相関値のしきい値を示す第3パラメータthcorを適切に設定することにより、ノイズや残響の影響が無視できない実環境において、アクティブな源信号の数を精度良く推定することができる。
〔第2の実施の形態〕
次に、本発明における第2の実施の形態について説明する。
本形態は第1の実施の形態の変形例であり、ICAを用いた信号分離の代わりに固有値に基づく信号分離を行う形態である。以下では、第1の実施の形態との相違点を中心に説明を行い、第1の実施の形態と共通する事項については説明を省略する。
【0039】
図9(a)は、本形態における信号分離部131の構成を例示したブロック図である。
なお、本形態の推定装置と第1の実施の形態の推定装置1との相違点は、信号分離部31が信号分離部131になる点のみである。また、本形態の処理と第1の実施の形態の処理との相違点は、信号分離処理(図4:ステップS7〜9)と平均パワー算出処理(図4:ステップS11)のみである。
【0040】
[信号分離処理]
図9(b)は、本形態の信号分離処理を説明するためのフローチャートである。
まず、信号分離部131の相関行列生成部131a(図9(a))が、メモリ10の周波数毎の時系列データ領域12(図1)から時系列データXj(f,τ)を順次抽出し、時系列ベクトルX(f,τ)=[X1(f,τ),...,XM(f,τ)]Tに対する相関行列R(f)=〈X(f,τ)・X(f,τ)H〉τを生成する(ステップS31)。
生成された相関行列R(f)は固有値分解部131b(図9(a))に送られ、固有値分解部131bはこの相関行列R(f)を、R(f)=V(f)・Λ(f)・V(f)Hの積に分解する(ステップS32)。なお、V(f)=[v1(f),v2(f),...,vM(f)]とし、Λ(f)をλ1(f),λ2(f),...,λM(f)を対角要素とするM行M列の対角行列とし、vj(f)を固有ベクトルとし、λj(f)をこれに対応する固有値とする。生成された固有値λ1(f),λ2(f),...,λM(f)は対応するτに関連つけてメモリ10(図1)に格納され(ステップS32)、V(f)は積演算部131c(図9(a))に送られる。
【0041】
積演算部131cは、メモリ10の周波数毎の時系列データ領域12(図1)から時系列データXj(f,τ)を抽出し、[Y1(f,τ),...,YM(f,τ)]T=V(f)H・[X1(f,τ),...,XM(f,τ)]Tの演算によって、分離信号Yi(f,τ)(i={1,...,M})を生成してメモリ10の分離信号領域13に格納する(ステップS33)。なお、〈|Yi(f,τ)|2〉τ=λi(f)が成立する。
【0042】
[平均パワー算出処理]
本形態では、第1の実施の形態のステップS11において、パワー算出部32の平均パワー算出部32a(図2(b))が、分離信号Yi(f,τ)からパワー値|Yi(f,τ)|2を算出し、平均パワー値σi2(f)←〈|Yi(f,τ)|2〉τを算出してレジスタ32bに格納していた代わりに、平均パワー算出部32aがメモリ10(図1)から固有値λi(f)を順次抽出し、分離信号Yi(f,τ)の時間τに関する平均パワー値
σi2(f)←λi(f)
を算出して、レジスタ32bに格納する。
なお、その他の処理については第1の実施の形態と同様である。
【0043】
以上のような構成の場合、パワーが適切に回復されない問題(各信号のパワーが固有値に適切に現れていない問題)は解決されないが、第1の実施の形態と同様、残響の影響の問題は解決できる。そのため、パワーが適切に回復されない問題の影響が少ない周波数領域では、本形態でも正確な信号源数の推定ができる。
なお、本発明は上述の各実施の形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0044】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0045】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0046】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【0047】
本発明の音信号に対する応用例としては、例えば、適応ビームフォーマやブラインド音源分離の前処理において、ある区間でのアクティブな音源数を推定する処理を例示できる。
【図面の簡単な説明】
【0048】
【図1】第1の実施の形態における推定装置の全体を示すブロック図。
【図2】(a)は図1に例示した信号分離部の機能構成を例示したブロック図。(b)はパワー算出部の機能構成を例示したブロック図。
【図3】(a)はエンベロープ相関算出部の機能構成を例示したブロック図。(b)は判定部の機能構成を例示したブロック図。
【図4】第1の実施の形態における信号源数の推定方法を説明するためのフローチャート。
【図5】第1の実施の形態における信号源数の推定方法を説明するためのフローチャート。
【図6】(a)は固有値に基づく従来手法による信号源数の推定結果を示したグラフ。(b)は本形態の手法よる信号源数の推定結果を示したグラフ。
【図7】(a)は3音源の場合にセンサで観測された真のパワー値を示した図。(b)は混合音を第1の実施の形態の手法により分離した分離信号のパワー値を示した図。
【図8】(a)は1音源の場合の1番目と2番目の分離信号のパワー値を示した図。(b)は、それらのエンベロープの相関値を示した図。
【図9】(a)は、第2の実施の形態における信号分離部の構成を例示したブロック図。(b)は第2の実施の形態における信号分離処理を説明するためのフローチャート。
【図10】実験条件を示した図。
【図11】固有値に基づく方法でのパワー推定値を示した図。(a)は、1つの音源だけを鳴らした場合の各周波数における固有値の正規化パワー値。(b)は、3音源すべてを鳴らした場合の各周波数における固有値の正規化パワー値。
【符号の説明】
【0049】
1 推定装置 31 信号分離部
10 メモリ 32 パワー算出部
20 周波数領域変換部 33 エンベロープ相関算出部
30 信号減数推定部 34 判定部
【技術分野】
【0001】
本発明は、混合された未知数の信号を複数のセンサにより観測した観測値を用いて信号の数を推定する技術に関し、特に、実環境において信号源の数を正しく推定する技術に関する。
【背景技術】
【0002】
複数の音源が混合した観測信号を短時間フーリエ変換し、各周波数ビンで空間相関行列の固有値を調べることにより、信号源の数を推定する方法が提案されている(例えば、非特許文献1参照。)。
[問題の定式化]
まず、この方法で取り扱う問題の定式化を行う。すべての信号はあるサンプリング周波数でサンプリングされ、離散的に表現されるものとする。N個の信号が混合されてM個のセンサで観測されたとする。以下では、信号の発生源からセンサまでに距離があり、信号が減衰・遅延し、かつ複数の経路を経てセンサに到達する状況を扱う。このような状況での混合は、信号源kからセンサjヘのインパルス応答hjk(l)による畳み込み混合
【数2】
となる。ここでPはインパルス応答hjk(l)の持続時間を、nj(t)はセンサでのノイズを表す。具体的な例としては、音信号が室内で混合される場合、音源からマイクまでの距離により音が減衰・遅延し、また壁などの反射により残響が発生し、さらにマイクに背景ノイズが付加される。
【0003】
[固有値に基づく方法]
次に、非特許文献1で提案された信号源数の推定方法を、順を追って説明する。なお、センサの数は信号源の数と同等かそれ以上、すなわちN≦Mを仮定する。
まず、センサjでの観測信号xj(t)にL点の短時間離散フーリエ変換を適用して周波数毎の時間系列
【数3】
を求める。ここでfは周波数であり、f=0, (1/L)fs,...,{(L-1)/L}fsと離散化されている(fsはサンプリング周波数)。g(l)は窓関数であり、ハニング窓g(l)=(1/2)(1+cos(2πl/L))などのg(0)にパワーの中心を持つ窓関数を用いることで、Xj(f,τ)は時刻t=τを中心とする観測信号xj(t)の周波数特性を表現する。Xj(f,τ)はLサンプルにわたる情報を含んでいるため、すべての時間τに対してXj(f,τ)を求める必要はなく、適当な間隔(例えばL/2やL/4)の時間τ毎にXj(f,τ)を求める。
【0004】
畳み込み混合された信号には、周波数領域での操作が有効である。式(1)で示される時間領域での畳み込み混合が、周波数領域では
【数4】
と各周波数での単純混合に近似表現できるからである。ここで、Hjk(f)は信号源kからセンサjまでの周波数応答、Sk(f,τ)やNj(f,τ)は式(2)と同様の式に従って源信号sk(t)やノイズnj(t)に短時間離散フーリエ変換を施したものである。
【0005】
次に、X(f,τ)=[X1(f,τ),..., XM(f,τ)]Tに対して相関行列R(f)=〈X(f,τ) X(f,τ)H〉τを計算し、これをR(f)=V(f)・Λ(f)・V(f)Hのように固有値分解する。なお、V(f)=[v1(f),v2(f),...,vM(f)]であり、Λ(f)はλ1(f),λ2(f),...,λM(f)を対角要素とするM行M列の対角行列である。また、・Hは行列の共役転置を求める操作、〈・〉τは時間τに関する平均、vj(f)は固有ベクトル(M次元の縦ベクトル)、λj(f)はこれに対応する固有値であり、λ1(f)≧λ2(f)≧...≧λM(f)の順にソートされている。また、各固有値λj(f)は、[Y1(f,τ),...,YM(f,τ)]T←V(f)H・[X1(f,τ),...,XM(f,τ)]Tとしたときのj番目の信号Yj(f,τ)のパワー値を示す。
【0006】
そして、分解された固有値のうち支配的な値を持つ固有値の個数Nを信号源の数と推定し、残りのM-N個の固有値の大きさをノイズのパワー値σn(f)2と推定する(λN+1(f)=…=λM(f)=σn(f)2)。
【非特許文献1】山本潔,W. F.G. van Rooijen, E. Y. Ling, 浅野太, 山田武志,北脇信彦,「SVMを用いた音源数推定法の音源分離システムヘの応用」,日本音響学会2002年秋季研究発表会,2−5−10,pp.537−538,2002年9月」
【発明の開示】
【発明が解決しようとする課題】
【0007】
しかし、従来技術の固有値に基づく方法では、実際の信号源の数を正しく推定できない場合があるという問題点がある。
例えば、上述の固有値に基づく方法を現実的な状況で用いる場合、以下に挙げる2つの問題を考慮しなければならない。
1つ目の問題は残響の影響である。一般に、残響の長さは短時間離散フーリエ変換のフレーム長Lよりも長いため、ある信号のある時刻の成分が複数のフレームに影響する。その結果、支配的な固有値の数が実際の信号の数よりも多く推定されることがある。
【0008】
図11(a)は、図10に示す条件で1つの音源だけを鳴らした場合の各周波数における固有値の正規化パワー値である。この図に示すように、残響の影響により2番目に大きな値をとる固有値のパワー値が−20dB程度になっている。上述の固有値に基づく方法の場合、所定のしきい値よりも値が大きな固有値の個数を信号源の数と判断することになるが、このしきい値が−20dBより小さかった場合、上述の2番目に値が大きな固有値も「支配的な固有値」の一つにカウントされ、音源の数が2個と推定されてしまう。すなわち、残響の影響から、このしきい値をある程度大きな値としなければ正確な音源数の推定はできない。
2つ目の問題は、各信号のパワーが固有値に適切に現れていない場合があるということである。この問題は特に位相差が小さくなる低周波数で顕著になる。
【0009】
図11(b)は、図10に示す条件で3音源すべてを鳴らした場合の各周波数における固有値の正規化パワー値である。この例の場合、音源数は3であるから3つの支配的な固有値が存在するはずである。しかし、この図に示すように、各音源のパワー値は同等に設定したにもかかわらず、固有値のパワー値は、2番目、3番目となるにつれ次第に小さくなっていく。この傾向は、低周波数になるほど顕著となる。そのため、この状況において多くの周波数で3音源が存在すると推定されるためには、上述のしきい値を−30dB程度以下に設定しなければならない。しかし、しきい値を小さく設定すると、今度は残響に対応する固有値も「支配的な固有値」にカウントされ、例えば、図11(a)の1音源の場合に2音源以上と推定されてしまう。
【0010】
以上説明してきたように、従来技術の固有値に基づく方法では、残響の影響の問題と、各信号のパワーが固有値に適切に現れていない問題とにより、実際の信号源の数を正しく推定できないことがある。
本発明はこのような点に鑑みてなされたものであり、実環境でも信号源の数を正しく推定できる技術を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明では上記課題を解決するために、まず、M個のセンサでの観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換し、この時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成して記憶部に格納する。次に、上記の各分離信号Yi(f,τ)のパワー値を求めて記憶部に格納し、異なる分離信号Yi(f,τ)間の時間差Δτに対するエンベロープの相関値を算出して記憶部に格納する。なお、分離信号Yi(f,τ)のエンベロープとは、分離信号の絶対値の包絡線|Yi(f,τ)|を意味する。そして、各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、記憶部に格納されている複数のパラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する。
【0012】
ここで、源信号と残響信号とは相関を持つため、これらの間のエンベロープ相関値は高い。また、残響信号は対応する源信号よりもパワーが小さい。つまり、エンベロープ相関値が高く、パワー値が比較的小さいのが残響信号である。本発明ではこの特徴に着目し、分離信号のエンベロープ相関値やパワー値を各しきい値を示す複数のパラメータと比較して、その分離信号が源信号であるか否かを判断する。これにより、固有値のパワー値のみを指標として源信号を判別していた場合に比べ、実環境を考慮した信号源数の推定が可能となる。
【発明の効果】
【0013】
以上のように、本発明では、分離信号のエンベロープ相関値とパワー値とを算出し、それらと複数のパラメータとを比較して源信号を判別することとしたため、実環境において信号源の数を正しく推定することが可能となる。
【発明を実施するための最良の形態】
【0014】
以下、この発明の実施の形態を図面を参照して説明する。
〔第1の実施の形態〕
まず、本発明における第1の実施の形態について説明する。
<全体の構成>
図1は本形態における推定装置1の全体を示すブロック図である。
推定装置1は、例えば、CPU(central processing unit)、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク等がバスで接続されたノイマン型コンピュータに所定のプログラム(推定プログラム)を実行させることにより構築されるものである。
【0015】
図1に例示するように、本形態の推定装置1は、メモリ10、周波数領域変換部20、信号源数推定部30、結果統合部40及び制御部50を有している。ここで、信号源数推定部30は、信号分離部31、パワー算出部32、エンベロープ相関算出部33及び判定部34を有し、メモリ10は、観測信号領域11、周波数毎の時系列データ領域12、分離信号領域13、パワー値領域14、エンベロープ領域15、パラメータ領域16及び信号源数領域17を有している。また、制御部50はレジスタ51を有し、推定装置1全体を制御する。また、この図における破線の矢印は理論上の情報の流れを示し、実線の矢印は現実のデータの流れ(同時に電気的或いは情報的な接続関係も)を示している。ただし、制御部50における入出力データの表記は省略してある。
【0016】
<処理の概要>
本形態では、源信号が混合された混合信号をM個のセンサで観測した観測信号x1(t),...,xM(t)から源信号の数を推定する。
本形態では、まず前処理として複数のパラメータ(ノイズレベルのしきい値を示す第1パラメータthnoise、残響レベルのしきい値を示す第2パラメータthrev、及びエンベロープ相関値のしきい値を示す第3パラメータthcor)を特定するデータをメモリ10に格納しておく。入力された時間領域の観測信号xj(t)(j={1,...,M})は、それぞれ、周波数領域変換部20で周波数毎の時系列データXj(f,τ)に変換され、信号源数推定部30の信号分離部31に送られる。信号分離部31は、周波数f毎にこの時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成する。そして、パワー算出部32が、各分離信号Yi(f,τ)のパワー値を算出し、エンベロープ相関算出部33が、異なる分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出する。これらが算出されると、判定部34は、各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値とメモリ内の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断して、周波数fに対する信号源の数EN(f)を推定する。
【0017】
その後、音声などの広帯域信号に対しては、最後に結果統合部40において周波数毎の推定値が統合され、全体としての信号源数の推定値enを得る。一方、通信分野などで用いられる狭帯域信号に対しては、周波数毎の推定値を統合する必要はなく、着目する周波数fでの推定値EN(f)を得れば良い。
<本形態の詳細>
図2(a)は図1に例示した信号分離部31の機能構成を、図2(b)はパワー算出部32の機能構成を、図3(a)はエンベロープ相関算出部33の機能構成を、図3(b)は判定部の機能構成を、それぞれ例示したブロック図である。また、図4及び図5は、本形態における信号源数の推定方法を説明するためのフローチャートである。
【0018】
以下、図1〜図5を用い、本形態における構成・処理の詳細について説明する。
[前処理]
まず、前処理としてノイズレベルのしきい値を示す第1パラメータthnoise、残響レベルのしきい値を示す第2パラメータthrev、及びエンベロープ相関値のしきい値を示す第3パラメータthcorを特定するデータを、メモリ10(「記憶部」に相当)のパラメータ領域16に格納する。なおパラメータとしては、例えば、thnoise=0.01、threv =0.2、thcor=0.5を例示できる。ただし、実際の測定時において、鳴っている音源数が分かるサンプルがあれば、その観測データをもとに各パラメータを調整していってもよい。具体的には、例えば、第1パラメータthnoiseを、ノイズ信号の正規化パワー値よりも大きく残響信号の正規化パワー値よりも小さくなるように調整し、第2パラメータthrevを、源信号の正規化パワー値よりも小さく残響信号の正規化パワー値よりも大きくなるように調整し、第3パラメータthcorを、源信号と残響信号とのエンベロープ相関値より小さくなるように調整する。なお、正規化パワー値やエンベロープ相関値の意味については後述する。
また、信号源数の推定対象となる時間領域の観測信号xj(t)(j={1,...,M})をメモリ10の観測信号領域11に書き込む。なお、この観測信号xj(t)はM個のセンサ(マイクロホン等)での観測信号であり、下付添字のjは、その観測信号xj(t)がj番目のセンサで観測されたことを示す。
【0019】
[周波数領域への変換]
まず、制御部50(図1)が変数jに1を代入し、それをレジスタ51に格納する(ステップS1)。次に、周波数領域変換部20が、メモリ10の観測信号領域11にアクセスし、観測信号xj(t)を読み込む(ステップS2)。観測信号xj(t)を読み込んだ周波数領域変換部20は、それを周波数毎の時間系列データXj(f,τ)に変換してメモリ10の周波数毎の時系列データ領域12に格納する(ステップS3)。なお、この例では、サンプリング周波数fs、L点の短時間離散フーリエ変換を利用してこの変換を行う。
次に制御部50は、レジスタ51に格納された変数jがMか否かを判断する(ステップS4)。ここでj=Mでないと判断された場合、制御部50がjに1を加算した値を新たなjとし(ステップS5)、それをレジスタ51に格納してステップS2の処理に戻る。一方、j=Mであると判断された場合、以下の信号源推定処理に移る。
【0020】
[信号源推定処理]
まず、制御部50(図1)が、変数fに0を代入してレジスタ51に格納する(ステップS6)。
独立成分分析(ICA:Independent Component Analysis)処理:
次に、独立成分分析(ICA)部31a(図2(a))が、メモリ10の周波数毎の時系列データ領域12から時系列データXj(f,τ)を抽出し、独立成分分析(ICA)を用い、X(f,τ)=[X1(f,τ),...,XM(f,τ)]Tから、M×M行列の分離行列W(f)とICA分離信号Z(f,τ)=[Z1(f,τ),...,ZM(f,τ)]Tとを生成してレジスタ31b(「記憶部」に相当)に格納する(ステップS7)。ここでICAによる信号分離は、ICA分離信号Z(f,τ)の各要素が互いに独立になるようにZ(f,τ)=W(f)・X(f,τ)となるW(f) を算出する手法である。また、ICAのアルゴリズムは、A. Hyvarinen and J. Karhunen and E. Oja, "Independent Component Analysis," John Wiley & Sons, 2001, ISBN 0-471-40540,などに様々なものが示されている。
【0021】
なおICAの解にはスケーリングの任意性がある。Z(f,τ)のある要素にあるスカラ値を掛けても、要素間の独立性は変化しないからである。従って、この段階では、センサで観測された源信号のパワーがICA分離信号に正しく反映されていない可能性が高い。また、源信号の数Nがセンサ数Mより少なければ、ICA分離信号Z(f,τ)のN個の要素は源信号に対応し、残りのM-N個の要素はノイズや残響成分に対応するが、この段階のノイズや残響に対応する要素の大きさは一般に増幅されている。そこで、次にスケーリング部31c(図2(a))において、このスケーリングの任意性の問題を解決する。
【0022】
スケーリング問題解決処理:
スケーリング部31cでは、スケーリングの任意性の問題を解決するため、以下に示す操作を行う。まず、対角行列生成部31caが、レジスタ31bから分離行列W(f)を読み出し、この分離行列W(f)からスケーリング問題を解決するための対角行列Λ(f)を生成する(ステップS8)。この対角行列Λ(f)としては、例えば、
Λ(f)=sqrt(diag[(W(f)・W(f)H)-1]) …(4)
が例示できる。ここで、・-1は逆行列、・Hは共役転置行列、diagは対角成分以外を0にする操作、sqrtは各要素の平方根を計算する操作である。
【0023】
生成された対角行列Λ(f)は、積演算部31cbに送られ、積演算部31cbは、これとレジスタ31bから読み出したICA分離信号Z(f,τ)とを用い、[Y1(f,τ),...,YM(f,τ)]T←Λ(f)・[Z1(f,τ),...,ZM(f,τ)]Tの演算によって、スケーリング問題を解決した(パワーを回復した)分離信号Yi(f,τ)(i={1,...,M})を生成し、メモリ10の分離信号領域13(図1)に格納する(ステップS9)。
ここで、式(4)を含む上記一連の操作により、分離信号Yi(f,τ)は、以下の2つの性質を持つ。第一に分離信号Yi(f,τ)が互いに無相関であれば、
【数5】
が成り立つ。すなわち、分離信号Yi(f,τ)のパワーの総和とセンサでの観測信号Xj(f,τ)のパワーの総和が等しくなる。さらに、分離信号Yi(f,τ)が互いに独立であれば、
【数6】
【0024】
が成り立つ。なお、Sk(f,τ)(k={1,...,N})は源信号成分を示す。すなわち、ある分離信号Yi(f,τ)のパワーと、それに対応する源信号Sk(f,τ)をすべてのセンサで観測した際のパワーの総和とは等しくなる。分離信号Yi(f,τ)が互いに無相関、さらには互いに独立になることは、独立成分分析の目的であり、多くの場合この条件はほぼ満たされている。従って、上記一連の操作により、各分離信号Yi(f,τ)のパワーは、それに対応する源信号Sk(f,τ)がセンサで観測された際のパワーの総和に近くなる。
なお、式(4)の対角行列Λ(f)の代わりに、対角行列Λ(f)=diag[W(f)-1]を使用してもよく、より一般的にW(f)-1のi列j行目の要素をj行目の対角成分とする対角行列Λを使用してもよい。この場合、各分離信号Yi(f,τ)のパワーは、対応する源信号Sk(f,τ)をあるセンサjで観測したパワー、すなわち|Hjk(f)・Sk(f,τ)|2に近似する。
【0025】
[判定処理]
判定処理では、スケーリング問題を解決した(パワーを回復した)分離信号Yi(f,τ)から、源信号の数を推定する。まず、制御部50(図1)が変数iに1を代入し、レジスタ51に格納する(ステップS10)。
次に、パワー算出部32の平均パワー算出部32a(図2(b))が、例えばメモリ10の分離信号領域13(図1)から各τに対する分離信号Yi(f,τ)を順次抽出し、そのパワー値|Yi(f,τ)|2を順次算出してレジスタ32bに格納する。そして、平均パワー算出部32aは、レジスタ32bに格納されたパワー値|Yi(f,τ)|2を読み出し、分離信号Yi(f,τ)の時間τに関する平均パワー値
σi2(f)←〈|Yi(f,τ)|2〉τ
を算出して、レジスタ32b(「記憶部」に相当)に格納する(ステップS11)。
【0026】
次に、エンベロープ相関算出部33のエンベロープ算出部33a(図3(a))が、例えばメモリ10の分離信号領域13(図1)から各τに対する分離信号Yi(f,τ)を順次抽出し、その絶対値|Yi(f,τ)|を順次算出してレジスタ33bに格納する。次に、エンベロープ算出部33aは、レジスタ32bに格納された絶対値|Yi(f,τ)|を読み出し、時間τに関する平均が0になるように分離信号Yi(f,τ)の絶対値|Yi(f,τ)|を正規化したエンベロープ
vi(f,τ)←|Yi(f,τ)|-〈|Yi(f,τ)|〉τ
を算出してレジスタ33b(「記憶部」に相当)に格納する(ステップS12)。
【0027】
次に、制御部50(図1)が、レジスタ51に格納された変数iがMであるか否かを判断する(ステップ13)。ここでi=Mでなければ、制御部50がiに1を加算し、その値を新たなiとしレジスタ51に格納し(ステップS14)、ステップS11に戻る。一方、i=Mであれば、制御部50は、この変数iに1を代入してレジスタ51に格納し(ステップS15)、以下の処理を実行する。
まず、パワー算出部32のパワー正規化部32c(図2(b))が、レジスタ32bから平均パワー値σ12(f),...,σM2(f)を抽出し、平均パワー値σi2(f)を正規化した正規化パワー値
【数7】
を算出して、メモリ10のパワー値領域14に格納する(ステップS16)。
【0028】
次に、制御部50(図1)が、変数kに1を代入し、レジスタ51に格納する(ステップS17)。次に、エンベロープ相関算出部33の相関算出部33c(図3(a))が、レジスタ33bからエンベロープvi(f,τ)及びvk(f,τ)を抽出する。そして、相関算出部33cは、これらのエンベロープvi(f,τ)及びvk(f,τ)を用い、時間差Δτ(例えばL/2やL/4)による分離信号Yi(f,τ)の分離信号Yk(f,τ)とのエンベロープ相関値
【数8】
を算出し、その演算結果Cori,k(f)をレジスタ33bに格納する(ステップS18)。なお、この例のΔτは、例えばプログラムコードに組み込まれた定数である。
【0029】
次に、制御部50(図1)はレジスタ51に格納された変数kがMであるか否かを判断する(ステップS19)。ここで、k=Mでなかった場合、制御部50がkに1を加算し、その値を新たなkとしてレジスタ51に格納し、ステップS18に戻る(ステップS20)。一方、k=Mであった場合、エンベロープ相関算出部33の最大値算出部33d(図3(a))は、レジスタ33b(図3(a))から、エンベロープ相関値Cori,1(f),...,Cori,M(f)を抽出する。そして、最大値算出部33dは、これらを用い、エンベロープ相関値Cori,k(f)のiごとの最大値maxCori(f)を算出し、メモリ10のエンベロープ領域15(図1)に格納する(ステップS21)。
【0030】
次に、判定部34の比較部34a(図3(b))が、メモリ10のパワー値領域14、エンベロープ領域15及びパラメータ領域16から、平均パワー値の正規化値NPi(f)、エンベロープ相関値の最大値maxCori(f)並びに第1パラメータthnoise、第2パラメータthrev及び第3パラメータthcorを読み出す。そして、比較部34aは、以下の論理式により、分離信号Yi(f,τ)が、源信号に対応するか、ノイズや残響成分に対応するかを判定する(ステップS22)。
【数9】
【0031】
すなわち、ここでは3種類のパラメータthnoise、threv、thcorを用いている。そして、平均パワー値の正規化値NPi(f)が第1パラメータthnoise未満であればノイズ成分と判定し、平均パワー値の正規化値NPi(f)が第2パラメータthrev未満であり、さらにエンベロープ相関値の最大値maxCori(f)が第3パラメータthcorを超えれば残響成分と判定する。結局、sigi(f)が0になれば、分離信号Yi(f,τ)がノイズや残響成分に対応する(源信号成分でない)と判定されたことになり、sigi(f)=1になれば、分離信号Yi(f,τ)が源信号に対応すると判定されたことになる。そして、このように生成された判定結果sigiはレジスタ34b(図3(b))に送られて格納される。なお、上記論理式中の「<」の少なくとも一部を「≦」としてもよく、「>」を「≧」としてもよい。
【0032】
次に、制御部50はレジスタ51(図1)に格納されている変数iがMであるか否かを判断する(ステップS23)。ここで、i=Mでなければ、制御部50がiに1を加算し、その値を新たなiとしてレジスタ51に格納してステップS16に戻る(ステップS24)。一方、i=Mであれば、判定部34の信号源数算出部34c(図3(b))が、レジスタ34bから判定結果sig1(f),...,sigM(f)を抽出し、信号源数推定値
EN(f)=Σi sigi(f)
を算出し、それをメモリ10の信号源数領域17(図1)に格納する(ステップS25)。
【0033】
次に、制御部50は、レジスタ51に格納された変数fが{(L-1)/L}fs(fsはサンプリング周波数)であるか否かを判断する(ステップS26)。ここで、変数fが{(L-1)/L}fsでなかった場合、制御部50が変数fにfs/Lを加算し、その値を新たな変数fとし、レジスタ51に格納してステップS7の処理に戻る(ステップS27)。一方、変数fが{(L-1)/L}fsであった場合、以下の結果統合処理を行う。
[結果統合処理]
まず結果統合部40が、メモリ10の信号源数領域17から各周波数fで推定された信号源数推定値EN(0),...,EN({(L-1)/L}fs)を読み出し、これを元に、全体としての信号源数の推定値enを算出して出力する(ステップS28)。この例では、単純に多数決で全体の推定値enを決定する。信頼できる周波数(例えば、高い周波数)に大きな重みを与えて、重みづけの多数決で全体の推定値enを決定しても良い。
【0034】
[適用結果]
本形態の信号源数の推定方法を音源数の推定に適用した結果を示す。
図10に一般的な実験条件を例示する。この実験条件は以下である。
・信号源:7秒間の音声
・残響時間:TR=200 ms
・背景ノイズパワー:−21.8 dB
・サンプリング周波数:fs=8000 Hz
・部屋の大きさ:4.45 m×3.55 m×2.50 m
・音源数:1〜3個
・音源配置・間隔:4cmの間隔で直線上に配置
・センサの数:3個
・中心音源と各センサとの距離:1.1 m
・中心音源と各センサを結んだ直線と、各センサが配置される直線とがなす角度:45°,90°,120°
この図10に示す条件で1〜3個の音源を鳴らし、3個のマイクでの観測信号を用いて鳴っている音源の数を推定した。
【0035】
図6に従来手法と本形態の手法とによる推定結果の比較を示す。ここで、図6(a)は固有値に基づく従来手法による信号源数の推定結果を示しており、図6(b)は本形態の手法よる信号源数の推定結果を示している。また、横軸は真の音源数、縦軸は音源数0,1,2,3としてそれぞれ推定した周波数ビンの数を示す。
この図に示すように、従来手法では、1音源や3音源の場合にも多数決によると2音源と推定してしまっている。このように従来手法が推定を誤る原因は、図11を用いて説明したように、個々の音源やノイズのパワーが固有値に適切に現れていないことや、残響の影響を考慮されていないことである。一方、本形態の手法によるとすべての場合に正しく推定されている。
【0036】
次に本形態の手法による推定が正確である理由を示す。
まず、パワーの回復(各分離信号が、各信号のパワーを適切に反映しているか)に関して考察する。図7は、3音源の場合にセンサで観測された真のパワー値(図7(a))と、これらの混合音を本形態の手法により分離した分離信号(図7(b))のパワー値との比較を示すものである。なお、図7(a)の観測結果は、各音源を1つずつ鳴らして測定し、その結果を正規化したものである。これらの図に示すように、本形態の手法による各分離信号のパワー値は、各音源の観測値の真のパワー値に近似し、音源数を推定できる程度に正しくパワーが回復されていることがわかる。
【0037】
次に、残響の影響ヘの対処に関して考察する。図8は、1音源の場合の1番目と2番目(i=1,2)の分離信号のパワー値(図8(a))とそれらのエンベロープの相関値(図8(b))を示すものである。図8(a)のパワー値だけを見ると、2番目の分離信号のパワー値が決して十分には小さくないので、信号源なのか残響を含むノイズなのか判断し難い。しかし、右側に示す1番目と2番目の分離信号のエンベロープの相関値を見ると、その値が十分に大きいため、2番目の分離信号は1番目の分離信号の残響成分を多く含むノイズであることがわかる。すなわち、エンベロープの相関値は−1〜+1の値をとり、信号間の相関性が低いほど0に近づく。図8(b)の例では、エンベロープの相関値が0.6〜1の間に集中しており、1番目の分離信号と2番目の分離信号の相関性が高いことが分かる。そしてパワー値が弱い2番目の分離信号が1番目の信号の残響成分であることが推定できる。
【0038】
そして、これらの判断に必要なノイズレベルのしきい値を示す第1パラメータthnoise、残響レベルのしきい値を示す第2パラメータthrev、及びエンベロープ相関値のしきい値を示す第3パラメータthcorを適切に設定することにより、ノイズや残響の影響が無視できない実環境において、アクティブな源信号の数を精度良く推定することができる。
〔第2の実施の形態〕
次に、本発明における第2の実施の形態について説明する。
本形態は第1の実施の形態の変形例であり、ICAを用いた信号分離の代わりに固有値に基づく信号分離を行う形態である。以下では、第1の実施の形態との相違点を中心に説明を行い、第1の実施の形態と共通する事項については説明を省略する。
【0039】
図9(a)は、本形態における信号分離部131の構成を例示したブロック図である。
なお、本形態の推定装置と第1の実施の形態の推定装置1との相違点は、信号分離部31が信号分離部131になる点のみである。また、本形態の処理と第1の実施の形態の処理との相違点は、信号分離処理(図4:ステップS7〜9)と平均パワー算出処理(図4:ステップS11)のみである。
【0040】
[信号分離処理]
図9(b)は、本形態の信号分離処理を説明するためのフローチャートである。
まず、信号分離部131の相関行列生成部131a(図9(a))が、メモリ10の周波数毎の時系列データ領域12(図1)から時系列データXj(f,τ)を順次抽出し、時系列ベクトルX(f,τ)=[X1(f,τ),...,XM(f,τ)]Tに対する相関行列R(f)=〈X(f,τ)・X(f,τ)H〉τを生成する(ステップS31)。
生成された相関行列R(f)は固有値分解部131b(図9(a))に送られ、固有値分解部131bはこの相関行列R(f)を、R(f)=V(f)・Λ(f)・V(f)Hの積に分解する(ステップS32)。なお、V(f)=[v1(f),v2(f),...,vM(f)]とし、Λ(f)をλ1(f),λ2(f),...,λM(f)を対角要素とするM行M列の対角行列とし、vj(f)を固有ベクトルとし、λj(f)をこれに対応する固有値とする。生成された固有値λ1(f),λ2(f),...,λM(f)は対応するτに関連つけてメモリ10(図1)に格納され(ステップS32)、V(f)は積演算部131c(図9(a))に送られる。
【0041】
積演算部131cは、メモリ10の周波数毎の時系列データ領域12(図1)から時系列データXj(f,τ)を抽出し、[Y1(f,τ),...,YM(f,τ)]T=V(f)H・[X1(f,τ),...,XM(f,τ)]Tの演算によって、分離信号Yi(f,τ)(i={1,...,M})を生成してメモリ10の分離信号領域13に格納する(ステップS33)。なお、〈|Yi(f,τ)|2〉τ=λi(f)が成立する。
【0042】
[平均パワー算出処理]
本形態では、第1の実施の形態のステップS11において、パワー算出部32の平均パワー算出部32a(図2(b))が、分離信号Yi(f,τ)からパワー値|Yi(f,τ)|2を算出し、平均パワー値σi2(f)←〈|Yi(f,τ)|2〉τを算出してレジスタ32bに格納していた代わりに、平均パワー算出部32aがメモリ10(図1)から固有値λi(f)を順次抽出し、分離信号Yi(f,τ)の時間τに関する平均パワー値
σi2(f)←λi(f)
を算出して、レジスタ32bに格納する。
なお、その他の処理については第1の実施の形態と同様である。
【0043】
以上のような構成の場合、パワーが適切に回復されない問題(各信号のパワーが固有値に適切に現れていない問題)は解決されないが、第1の実施の形態と同様、残響の影響の問題は解決できる。そのため、パワーが適切に回復されない問題の影響が少ない周波数領域では、本形態でも正確な信号源数の推定ができる。
なお、本発明は上述の各実施の形態に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【0044】
また、上述の構成をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0045】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0046】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【産業上の利用可能性】
【0047】
本発明の音信号に対する応用例としては、例えば、適応ビームフォーマやブラインド音源分離の前処理において、ある区間でのアクティブな音源数を推定する処理を例示できる。
【図面の簡単な説明】
【0048】
【図1】第1の実施の形態における推定装置の全体を示すブロック図。
【図2】(a)は図1に例示した信号分離部の機能構成を例示したブロック図。(b)はパワー算出部の機能構成を例示したブロック図。
【図3】(a)はエンベロープ相関算出部の機能構成を例示したブロック図。(b)は判定部の機能構成を例示したブロック図。
【図4】第1の実施の形態における信号源数の推定方法を説明するためのフローチャート。
【図5】第1の実施の形態における信号源数の推定方法を説明するためのフローチャート。
【図6】(a)は固有値に基づく従来手法による信号源数の推定結果を示したグラフ。(b)は本形態の手法よる信号源数の推定結果を示したグラフ。
【図7】(a)は3音源の場合にセンサで観測された真のパワー値を示した図。(b)は混合音を第1の実施の形態の手法により分離した分離信号のパワー値を示した図。
【図8】(a)は1音源の場合の1番目と2番目の分離信号のパワー値を示した図。(b)は、それらのエンベロープの相関値を示した図。
【図9】(a)は、第2の実施の形態における信号分離部の構成を例示したブロック図。(b)は第2の実施の形態における信号分離処理を説明するためのフローチャート。
【図10】実験条件を示した図。
【図11】固有値に基づく方法でのパワー推定値を示した図。(a)は、1つの音源だけを鳴らした場合の各周波数における固有値の正規化パワー値。(b)は、3音源すべてを鳴らした場合の各周波数における固有値の正規化パワー値。
【符号の説明】
【0049】
1 推定装置 31 信号分離部
10 メモリ 32 パワー算出部
20 周波数領域変換部 33 エンベロープ相関算出部
30 信号減数推定部 34 判定部
【特許請求の範囲】
【請求項1】
観測信号から信号源の数を推定する信号源数の推定方法であって、
複数のパラメータを特定するデータが記憶部に格納されており、
周波数領域変換部が、M個のセンサでの観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換して記憶部に格納する手順と、
信号分離部が、上記時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成して記憶部に格納する手順と、
パワー算出部が、上記の各分離信号Yi(f,τ)のパワー値を算出して記憶部に格納する手順と、
エンベロープ相関算出部が、異なる上記分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出して記憶部に格納する手順と、
判定部が、上記の各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、上記の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順と、
を有することを特徴とする信号源数の推定方法。
【請求項2】
請求項1記載の信号源数の推定方法であって、
上記時系列データXj(f,τ)から分離信号Yi(f,τ)を生成して記憶部に格納する手順は、
独立成分分析部が、独立成分分析を用い、上記時系列データX1(f,τ),...,XM(f,τ)からM×M行列の分離行列W(f)とICA分離信号[Z1(f,τ),...,ZM(f,τ)]Tとを生成して記憶部に格納する手順と、
対角行列生成部が、上記分離行列W(f)から、スケーリング問題を解決するための対角行列Λ(f)を生成する手順と、
積演算部が、[Y1(f,τ),...,YM(f,τ)]T←Λ(f)・[Z1(f,τ),...,ZM(f,τ)]Tの演算によって、上記分離信号Yi(f,τ)を生成して記憶部に格納する手順と、
を有することを特徴とする信号源数の推定方法。
【請求項3】
請求項1記載の信号源数の推定方法であって、
上記時系列データXj(f,τ)から分離信号Yi(f,τ)を生成して記憶部に格納する手順は、
相関行列生成部が、時系列ベクトルX(f,τ)=[X1(f,τ),...,XM(f,τ)]Tに対する相関行列R(f)←〈X(f,τ)・X(f,τ)H〉τを生成する手順と、
固有値分解部が、上記相関行列R(f)を、V(f)=[v1(f),v2(f),...,vM(f)]とし、Λ(f)をλ1(f),λ2(f),...,λM(f)を対角要素とするM行M列の対角行列とし、vj(f)を固有ベクトルとし、λj(f)をこれに対応する固有値とした場合における、R(f)=V(f)・Λ(f)・V(f)Hの積に分解する手順と、
積演算部が、[Y1(f,τ),...,YM(f,τ)]T←V(f)H・[X1(f,τ),...,XM(f,τ)]Tの演算によって、上記分離信号Yi(f,τ)を生成して記憶部に格納する手順と、
を有することを特徴とする信号源数の推定方法。
【請求項4】
請求項1記載の信号源数の推定方法であって、
上記の各分離信号Yi(f,τ)のパワー値を算出して記憶部に格納する手順は、
平均パワー算出部が、各分離信号Yi(f,τ)の時間τに関する平均パワー値を算出する手順と、
パワー正規化部が、上記平均パワー値を正規化する手順と、を有し、
上記分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順は、
上記平均パワー値の正規化値及びエンベロープ相関値と、上記の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順である、
ことを特徴とする信号源数の推定方法。
【請求項5】
請求項1記載の信号源数の推定方法であって、
上記エンベロープ相関値を算出して記憶部に格納する手順は、
エンベロープ算出部が、時間τに関する平均が0になるように上記の各分離信号Yi(f,τ)の絶対値|Yi(f,τ)|を正規化したエンベロープvi(f,τ)を算出して記憶部に格納する手順と、
相関算出部が、
【数1】
の演算によってエンベロープ相関値Cori,k(f)を算出して記憶部に格納する手順と、
最大値算出部が、iごとに上記エンベロープ相関値Cori,k(f)の最大値maxCori(f)を算出する手順と、を有し、
上記分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順は、
上記の各分離信号Yi(f,τ)のパワー値及び上記最大値maxCori(f)と、上記の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順である、
ことを特徴とする信号源数の推定方法。
【請求項6】
請求項1記載の信号源数の推定方法であって、
上記複数のパラメータは、
ノイズレベルのしきい値を示す第1パラメータthnoise、残響レベルのしきい値を示す第2パラメータthrev、及びエンベロープ相関値のしきい値を示す第3パラメータthcorであり、
上記分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順は、
上記分離信号Yi(f,τ)の上記パワー値が上記第1パラメータthnoise以下若しくは未満である場合、又は上記分離信号Yi(f,τ)の上記パワー値が上記第2パラメータthrev以下若しくは未満であって上記エンベロープ相関値が上記第3パラメータthcor以上若しくは超える場合、当該分離信号Yi(f,τ)は源信号成分でないと判断する手順を有する、
ことを特徴とする信号源数の推定方法。
【請求項7】
観測信号から信号源の数を推定する推定装置であって、
複数のパラメータを特定するデータが格納された記憶部と、
M個のセンサでの観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換して記憶部に格納する周波数領域変換部と、
上記時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成して記憶部に格納するする信号分離部と、
上記の各分離信号Yi(f,τ)のパワー値を算出して記憶部に格納するパワー算出部と、
異なる上記分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出して記憶部に格納するエンベロープ相関算出部と、
上記の各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、上記の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する判定部と、
を有することを特徴とする推定装置。
【請求項8】
M個のセンサでの観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換する手順と、
上記時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成して記憶部に格納する手順と、
上記の各分離信号Yi(f,τ)のパワー値を算出して記憶部に格納する手順と、
異なる上記分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出して記憶部に格納する手順と、
上記の各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、記憶部に格納された各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順と、
をコンピュータに実行させるための推定プログラム。
【請求項9】
請求項8記載の推定プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
観測信号から信号源の数を推定する信号源数の推定方法であって、
複数のパラメータを特定するデータが記憶部に格納されており、
周波数領域変換部が、M個のセンサでの観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換して記憶部に格納する手順と、
信号分離部が、上記時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成して記憶部に格納する手順と、
パワー算出部が、上記の各分離信号Yi(f,τ)のパワー値を算出して記憶部に格納する手順と、
エンベロープ相関算出部が、異なる上記分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出して記憶部に格納する手順と、
判定部が、上記の各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、上記の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順と、
を有することを特徴とする信号源数の推定方法。
【請求項2】
請求項1記載の信号源数の推定方法であって、
上記時系列データXj(f,τ)から分離信号Yi(f,τ)を生成して記憶部に格納する手順は、
独立成分分析部が、独立成分分析を用い、上記時系列データX1(f,τ),...,XM(f,τ)からM×M行列の分離行列W(f)とICA分離信号[Z1(f,τ),...,ZM(f,τ)]Tとを生成して記憶部に格納する手順と、
対角行列生成部が、上記分離行列W(f)から、スケーリング問題を解決するための対角行列Λ(f)を生成する手順と、
積演算部が、[Y1(f,τ),...,YM(f,τ)]T←Λ(f)・[Z1(f,τ),...,ZM(f,τ)]Tの演算によって、上記分離信号Yi(f,τ)を生成して記憶部に格納する手順と、
を有することを特徴とする信号源数の推定方法。
【請求項3】
請求項1記載の信号源数の推定方法であって、
上記時系列データXj(f,τ)から分離信号Yi(f,τ)を生成して記憶部に格納する手順は、
相関行列生成部が、時系列ベクトルX(f,τ)=[X1(f,τ),...,XM(f,τ)]Tに対する相関行列R(f)←〈X(f,τ)・X(f,τ)H〉τを生成する手順と、
固有値分解部が、上記相関行列R(f)を、V(f)=[v1(f),v2(f),...,vM(f)]とし、Λ(f)をλ1(f),λ2(f),...,λM(f)を対角要素とするM行M列の対角行列とし、vj(f)を固有ベクトルとし、λj(f)をこれに対応する固有値とした場合における、R(f)=V(f)・Λ(f)・V(f)Hの積に分解する手順と、
積演算部が、[Y1(f,τ),...,YM(f,τ)]T←V(f)H・[X1(f,τ),...,XM(f,τ)]Tの演算によって、上記分離信号Yi(f,τ)を生成して記憶部に格納する手順と、
を有することを特徴とする信号源数の推定方法。
【請求項4】
請求項1記載の信号源数の推定方法であって、
上記の各分離信号Yi(f,τ)のパワー値を算出して記憶部に格納する手順は、
平均パワー算出部が、各分離信号Yi(f,τ)の時間τに関する平均パワー値を算出する手順と、
パワー正規化部が、上記平均パワー値を正規化する手順と、を有し、
上記分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順は、
上記平均パワー値の正規化値及びエンベロープ相関値と、上記の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順である、
ことを特徴とする信号源数の推定方法。
【請求項5】
請求項1記載の信号源数の推定方法であって、
上記エンベロープ相関値を算出して記憶部に格納する手順は、
エンベロープ算出部が、時間τに関する平均が0になるように上記の各分離信号Yi(f,τ)の絶対値|Yi(f,τ)|を正規化したエンベロープvi(f,τ)を算出して記憶部に格納する手順と、
相関算出部が、
【数1】
の演算によってエンベロープ相関値Cori,k(f)を算出して記憶部に格納する手順と、
最大値算出部が、iごとに上記エンベロープ相関値Cori,k(f)の最大値maxCori(f)を算出する手順と、を有し、
上記分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順は、
上記の各分離信号Yi(f,τ)のパワー値及び上記最大値maxCori(f)と、上記の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順である、
ことを特徴とする信号源数の推定方法。
【請求項6】
請求項1記載の信号源数の推定方法であって、
上記複数のパラメータは、
ノイズレベルのしきい値を示す第1パラメータthnoise、残響レベルのしきい値を示す第2パラメータthrev、及びエンベロープ相関値のしきい値を示す第3パラメータthcorであり、
上記分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順は、
上記分離信号Yi(f,τ)の上記パワー値が上記第1パラメータthnoise以下若しくは未満である場合、又は上記分離信号Yi(f,τ)の上記パワー値が上記第2パラメータthrev以下若しくは未満であって上記エンベロープ相関値が上記第3パラメータthcor以上若しくは超える場合、当該分離信号Yi(f,τ)は源信号成分でないと判断する手順を有する、
ことを特徴とする信号源数の推定方法。
【請求項7】
観測信号から信号源の数を推定する推定装置であって、
複数のパラメータを特定するデータが格納された記憶部と、
M個のセンサでの観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換して記憶部に格納する周波数領域変換部と、
上記時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成して記憶部に格納するする信号分離部と、
上記の各分離信号Yi(f,τ)のパワー値を算出して記憶部に格納するパワー算出部と、
異なる上記分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出して記憶部に格納するエンベロープ相関算出部と、
上記の各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、上記の各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する判定部と、
を有することを特徴とする推定装置。
【請求項8】
M個のセンサでの観測信号xj(t)(j={1,...,M})を周波数毎の時系列データXj(f,τ)に変換する手順と、
上記時系列データXj(f,τ)から分離信号Yi(f,τ)(i={1,...,M})を生成して記憶部に格納する手順と、
上記の各分離信号Yi(f,τ)のパワー値を算出して記憶部に格納する手順と、
異なる上記分離信号Yi(f,τ)間の時間差Δτに対するエンベロープ相関値を算出して記憶部に格納する手順と、
上記の各分離信号Yi(f,τ)のパワー値及びエンベロープ相関値と、記憶部に格納された各パラメータとを比較し、当該分離信号Yi(f,τ)が源信号成分であるか否かを判断する手順と、
をコンピュータに実行させるための推定プログラム。
【請求項9】
請求項8記載の推定プログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【公開番号】特開2006−58065(P2006−58065A)
【公開日】平成18年3月2日(2006.3.2)
【国際特許分類】
【出願番号】特願2004−238174(P2004−238174)
【出願日】平成16年8月18日(2004.8.18)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
【公開日】平成18年3月2日(2006.3.2)
【国際特許分類】
【出願日】平成16年8月18日(2004.8.18)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】
[ Back to top ]