(57)【要約】【課題】音源分離処理を実時間で行う。【解決手段】実施形態の信号処理装置は、所定条件を満たす目的関数に応じて定められる、補助変数を引数にもつ補助関数であって、補助変数に関する関数値の最小化と分離行列に関する関数値の最小化とを交互に行うことにより目的関数の関数値を低減する分離行列を算出可能な補助関数を近似する近似補助関数を用いて、入力信号における時間長が０でない第１区間と、第１区間とは異なる第２区間とを含む処理対象区間の補助変数を推定する推定部であって、第１区間の入力信号に対して推定された補助変数と、第２区間の入力信号とに基づいて、処理対象区間の補助変数の値を推定する推定部と、推定された補助変数の値と分離行列とに基づいて、近似補助関数の関数値が最小になるように分離行列を更新する更新部と、更新された分離行列を用いて入力信号を分離することにより、分離信号を生成する生成部とを備える。【選択図】図１
2014041308.tif 000002
【特許請求の範囲】
【請求項１】
複数の時系列の入力信号を分離行列により分離して得られる複数の分離信号間の統計的独立性が高いほど小さい関数値を出力する目的関数に応じて定められる、補助変数を引数にもつ補助関数であって、前記補助変数に関する関数値の最小化と前記分離行列に関する関数値の最小化とを交互に行うことにより前記目的関数の関数値を低減する前記分離行列を算出可能な補助関数を近似する近似補助関数を用いて、前記入力信号における時間長が０でない第１区間と、前記第１区間とは異なる第２区間とを含む処理対象区間の前記補助変数を推定する推定部であって、
前記第１区間の前記入力信号に対して推定された前記補助変数と、前記第２区間の前記入力信号とに基づいて、前記処理対象区間の前記補助変数の値を推定する前記推定部と、
推定された前記補助変数の値と前記分離行列とに基づいて、前記近似補助関数の関数値が最小になるように前記分離行列を更新する更新部と、
更新された前記分離行列を用いて前記入力信号を分離することにより、前記分離信号を生成する生成部と、
を備える信号処理装置。
【請求項２】
前記入力信号は、逐次的に入力される信号であり、
前記第１区間は、過去に入力された前記入力信号を含む区間であり、前記第２区間は、現在入力された前記入力信号を含む区間である、
請求項１に記載の信号処理装置。
【請求項３】
前記更新部は、第１ステップの前記分離行列の更新時に用いる前記分離行列の逆行列を、前記第１ステップより前の第２ステップで更新された前記分離行列の逆行列と、前記第２ステップで更新された前記分離行列の更新量と、に基づいて算出する、
請求項１に記載の信号処理装置。
【請求項４】
前記推定部は、前記処理対象区間の前記補助変数の値を、前記第１区間の前記入力信号に対して推定された前記補助変数の値と、前記補助関数に従って前記第２区間の前記入力信号から求まる前記補助変数の値と、の重み付け和によって推定する、
請求項１に記載の信号処理装置。
【請求項５】
前記更新部は、第１時刻の前記分離行列の更新時に用いる前記補助変数の逆行列を、前記第１時刻より前の第２時刻で更新された前記補助変数の逆行列と、前記第１時刻の前記入力信号と、に基づいて算出する、
請求項１に記載の信号処理装置。
【請求項６】
前記推定部は、前記入力信号の属性を示す属性情報に応じて、前記補助変数の推定方式を変更する、
請求項１に記載の信号処理装置。
【請求項７】
前記推定部は、前記処理対象区間の前記補助変数の値を、前記第１区間の前記入力信号に対して推定された前記補助変数の値と、前記補助関数に従って前記第２区間の前記入力信号から求まる前記補助変数の値と、の重み付け和によって推定し、前記重み付け和の重みを前記属性情報に応じて変更する、
請求項６に記載の信号処理装置。
【請求項８】
前記入力信号は音源から出力される音響信号であり、
前記属性情報は、前記音源の位置である、
請求項６に記載の信号処理装置。
【請求項９】
前記更新部は、前記入力信号の属性を示す属性情報に応じて、前記分離行列の更新方式を変更する、
請求項１に記載の信号処理装置。
【請求項１０】
前記属性情報は、前記入力信号のパワー値である、
請求項９に記載の信号処理装置。
【請求項１１】
前記更新部は、更新前の前記分離行列に対する更新後の前記分離行列の更新量が閾値より小さくなるまで、前記分離行列を更新する、
請求項１に記載の信号処理装置。
【請求項１２】
前記推定部による前記補助変数の推定、および、前記更新部による前記分離行列の更新、を繰り返し実行し、
前記生成部は、繰り返し実行された後の前記分離行列を用いて前記入力信号を分離することにより、前記分離信号を生成する、
請求項１に記載の信号処理装置。
【請求項１３】
複数の時系列の入力信号を分離行列により分離して得られる複数の分離信号間の統計的独立性が高いほど小さい関数値を出力する目的関数に応じて定められる、補助変数を引数にもつ補助関数であって、前記補助変数に関する関数値の最小化と前記分離行列に関する関数値の最小化とを交互に行うことにより前記目的関数の関数値を低減する前記分離行列を算出可能な補助関数を近似する近似補助関数を用いて、前記入力信号における時間長が０でない第１区間と、前記第１区間とは異なる第２区間とを含む処理対象区間の前記補助変数を推定する推定ステップであって、
前記第１区間の前記入力信号に対して推定された前記補助変数と、前記第２区間の前記入力信号とに基づいて、前記処理対象区間の前記補助変数の値を推定する前記推定ステップと、
推定された前記補助変数の値と前記分離行列とに基づいて、前記近似補助関数の関数値が最小になるように前記分離行列を更新する更新ステップと、
更新された前記分離行列を用いて前記入力信号を分離することにより、前記分離信号を生成する生成ステップと、
を含む信号処理方法。
【請求項１４】
コンピュータを、
複数の時系列の入力信号を分離行列により分離して得られる複数の分離信号間の統計的独立性が高いほど小さい関数値を出力する目的関数に応じて定められる、補助変数を引数にもつ補助関数であって、前記補助変数に関する関数値の最小化と前記分離行列に関する関数値の最小化とを交互に行うことにより前記目的関数の関数値を低減する前記分離行列を算出可能な補助関数を近似する近似補助関数を用いて、前記入力信号における時間長が０でない第１区間と、前記第１区間とは異なる第２区間とを含む処理対象区間の前記補助変数を推定する推定手段であって、
前記第１区間の前記入力信号に対して推定された前記補助変数と、前記第２区間の前記入力信号とに基づいて、前記処理対象区間の前記補助変数の値を推定する前記推定手段と、
推定された前記補助変数の値と前記分離行列とに基づいて、前記近似補助関数の関数値が最小になるように前記分離行列を更新する更新手段と、
更新された前記分離行列を用いて前記入力信号を分離することにより、前記分離信号を生成する生成手段
として機能させる、信号処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、信号処理装置、方法及びプログラムに関する。
【背景技術】
【０００２】
従来から、複数のマイクロフォンで観測した複数音源から到来した、音声などの音響信号を音源毎に分離する音源分離を中心に、時系列信号を分離する技術の研究が進められている。その中で、音源方向等の事前情報が不要な、いわゆるブラインド音源分離の技術として、独立成分分析を用いた手法が盛んに研究されてきた。
【０００３】
独立成分分析による信号分離は、各信号源から到来する音響信号が互いに統計的に独立であるという仮定の下、信号を信号源毎に分離する技術である。独立成分分析は、信号の分離に用いる分離行列のパラメータを、その分離行列により分離した信号の統計的独立性を最大化するという規準で求める最適化問題として定式化できる。しかし、その解は解析的には求まらず、勾配法などの逐次最適化手法のために分離行列パラメータの繰り返し更新が必要となる。このため、十分な信号の分離精度を得るためには計算量が大きくなる問題があった。また、解を少ない計算量で精度良く求めるためには、繰り返し計算で用いるステップサイズというパラメータを、事前に手動で、または観測信号によって、適切に調節する必要があった。
【０００４】
これに対し、最適化問題の目的関数に対して、ある条件の下に設定した補助関数を用いることで、自然勾配法より計算量が少なく、ステップサイズのようなパラメータ設定が不要で安定した分離精度が得られる補助関数法が提案されている。また、独立成分分析による音源分離で必要なパーミテーションという後処理を不要とした独立ベクトル分析を、その補助関数法によって行う方式が提案されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１１−１７５１１４号公報
【特許文献２】特許第４４４９８７１号公報
【非特許文献】
【０００６】
【非特許文献１】N.  Ono,  “Stable  and  fast  update  rules  for  independent  vector  analysis  based  on  auxiliary  function  technique,”  Proc.  IEEE  WASPAA,  2011.
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来技術では、ブラインド音源分離処理を、音源の移動および出現などの環境変動に対応しつつ実時間で行うことができなかった。
【課題を解決するための手段】
【０００８】
実施形態の信号処理装置は、複数の時系列の入力信号を分離行列により分離して得られる複数の分離信号間の統計的独立性が高いほど小さい関数値を出力する目的関数に応じて定められる、補助変数を引数にもつ補助関数であって、前記補助変数に関する関数値の最小化と前記分離行列に関する関数値の最小化とを交互に行うことにより前記目的関数の関数値を低減する前記分離行列を算出可能な補助関数を近似する近似補助関数を用いて、前記入力信号における時間長が０でない第１区間と、前記第１区間とは異なる第２区間とを含む処理対象区間の前記補助変数を推定する推定部であって、前記第１区間の前記入力信号に対して推定された前記補助変数と、前記第２区間の前記入力信号とに基づいて、前記処理対象区間の前記補助変数の値を推定する前記推定部と、推定された前記補助変数の値と前記分離行列とに基づいて、前記近似補助関数の関数値が最小になるように前記分離行列を更新する更新部と、更新された前記分離行列を用いて前記入力信号を分離することにより、前記分離信号を生成する生成部とを備える。
【図面の簡単な説明】
【０００９】
【図１】本実施形態の信号処理装置のブロック図。
【図２】本実施形態の信号処理のフローチャート。
【図３】本実施形態の補助変数推定・行列更新処理のフローチャート。
【図４】本実施形態の信号処理装置のハードウェア構成図。
【発明を実施するための形態】
【００１０】
以下に添付図面を参照して、この発明にかかる信号処理装置の好適な実施形態を詳細に説明する。
【００１１】
ブラインド音源分離処理を実時間で行うためには、一定時刻毎に、過去からその時刻までの観測信号を用いて分離行列を更新し、更新した分離行列を用いてその時刻の信号を分離する、いわゆるオンライン処理を行えばよい。ここで、分離信号の出力までの遅延時間を常に一定内に保つ、すなわち実時間処理のためには、遅延時間が蓄積されないように、各更新の計算時間を更新時間間隔より短くする必要がある。一方で、環境変動に短時間で追従するために、更新時間間隔はなるべく短くすることが望ましい。
【００１２】
独立成分分析を用いた音源分離手法により音源分離を行う際には、その分離行列の更新時のたびに、分離対象とする観測信号すべてが参照される。従って、それらの手法による音源分離処理をオンラインで行うためには、過去からある時刻までの観測信号を所定の時間長だけ保持しておき、それらを参照しながら分離行列を更新すればよい。しかし、参照する観測信号が長いほど更新毎の計算量は大きくなる。一方、その観測信号を短くすると、計算量は小さくなるが、分離精度やその安定性に問題が生じる。
【００１３】
本実施形態にかかる信号処理装置は、補助関数法を用いて観測信号を分離する。そして、本実施形態にかかる信号処理装置は、区間（第１区間）の分離行列を更新するときに用いる補助変数を、第１区間と異なる区間（第２区間）の観測信号に対して推定された補助変数と、第１区間の時系列信号とから推定する。これにより、オンライン処理の各時刻で、所定の時間長の観測信号すべてを参照する必要がなくなる。すなわち、音源分離処理のオンライン処理を実現する場合の更新ごとの計算量の増加を回避できる。
【００１４】
本実施形態は、脳波信号および電波信号などの、複数の観測が得られる一般の時系列信号の分離に適用可能である。以下の実施形態では、音響信号の分離を例として説明する。
【００１５】
今、空間中に、移動しないＫ個の音源が存在し、Ｍ個の観測点により音源からの信号を観測したとする。音源信号と観測信号の関係は、それぞれの時間周波数表現の信号ｓ（ω，ｔ）、ｘ（ω，ｔ）と、Ｍ×Ｋ次元で時不変の空間伝達特性行列Ａ（ω）を用いて、以下の（１）式のように表現できる。
ｘ（ω，ｔ）＝Ａ（ω）ｓ（ω，ｔ）＋ｎ（ω，ｔ）・・・（１）
【００１６】
ｓ（ω，ｔ）、ｘ（ω，ｔ）は、それぞれＫ次元、Ｍ次元の複素縦ベクトルである。ωは周波数ビン番号である。ｔは時刻である。時間周波数表現の信号は、例えば、対応する時系列信号から短時間フーリエ変換（ＳＴＦＴ）を用いて計算する。ｎ（ω，ｔ）は、時系列信号を時間周波数表現にした際に生じる誤差や周囲雑音等のノイズを表す。
【００１７】
従って、ｘ（ω，ｔ）から音源信号を推定した推定信号（分離信号）ｙ（ω，ｔ）を得るためには、以下の（２）式中のＫ×Ｍ次元の分離行列Ｗ（ω）を適切な値に定めてやればよい。
ｙ（ω，ｔ）＝Ｗ（ω）ｘ（ω，ｔ）・・・（２）
【００１８】
もし空間伝達特性行列Ａ（ω）が既知であれば、その疑似逆行列を計算することで容易に適切なＷ（ω）を設定できる。しかし、現実の応用ではＡ（ω）を事前に得ることは難しい。Ａ（ω）に関する情報が事前に得られない場合に、分離行列Ｗ（ω）を求めるのがブラインド音源分離の問題である。
【００１９】
なお、以後の説明では、ｓ（ω，ｔ）、ｘ（ω，ｔ）、ｙ（ω，ｔ）、Ｗ（ω）の各要素を、以下の（３）式のように表す。なお、Ｔは行列の転置、Ｈは行列の複素共役転置を表す。
ｓ（ω，ｔ）＝［ｓ１（ω，ｔ），ｓ２（ω，ｔ），・・・，ｓＫ（ω，ｔ）］Ｔ
ｘ（ω，ｔ）＝［ｘ１（ω，ｔ），ｘ２（ω，ｔ），・・・，ｘＭ（ω，ｔ）］Ｔ
ｙ（ω，ｔ）＝［ｙ１（ω，ｔ），ｙ２（ω，ｔ），・・・，ｙＫ（ω，ｔ）］Ｔ
Ｗ（ω）＝［ｗ１（ω），ｗ２（ω），・・・，ｗＫ（ω）］Ｈ
・・・（３）
【００２０】
本実施形態は、音響信号の時間周波数表現での分離を説明しているが、適用できる信号はこれに限られるものではない。（１）式のように、複数の時系列の観測信号が、複数信号源の行列の積にノイズを加えたものとしてモデル化できるものであれば、どのような時系列信号にでも適用できる。例えば、瞬時混合された音響信号の分離にも適用できる。
【００２１】
独立成分分析によるブラインド音源分離では、音源数Ｋが観測数Ｍ以下の場合に、分離信号間の統計的独立性を最大化するという規準で分離行列を最適化することで音源分離を実現する。以下の説明では簡単のため、Ｋ＝Ｍの場合について述べる。Ｋ＜Ｍの場合は、予め主成分分析等を用いて観測信号数をＫに減らしておけばよい。結果として、独立成分分析は以下の（４）式に示す目的関数Ｊ（Ｗ（ω））を最小化する問題として定式化できる。
【数１】
2014041308.tif 000003
【００２２】
ただし、Ｅ［・］は時刻ｔに関する期待値である。また、Ｇ（・）は、以下の（５）式のように音源の確率密度関数ｑ（・）を用いた関数である。
Ｇ（ｙｋ（ω））＝−ｌｏｇｑ（ｙｋ（ω））・・・（５）
【００２３】
確率密度関数q（・）には正規分布以外の優ガウスまたは劣ガウス分布を用いればよいことが知られている。例えば、音源が人間の声の場合は、優ガウス分布を用いることが一般的である。
【００２４】
（４）式の独立成分分析では、周波数毎に個別に音源分離を行う。このため、一般には、各帯域の各分離チャネルの信号がいずれの音源に対応するかは分からない。そこで、分離チャネルの信号を同じ音源由来の信号にまとめ直すパーミテーションという後処理が必要であった。それに対し、パーミテーションを不要とした独立ベクトル分析と呼ばれる手法が提案されている。独立ベクトル分析は、以下の（６）式に示す目的関数Ｊ（Ｗ）を最小化する問題である。
【数２】
2014041308.tif 000004
【００２５】
独立ベクトル分析では、（４）式の各周波数の分離信号ｙｋ（ω）の代わりに、全周波数の分離信号ベクトルｙｋと、多次元の確率密度関数q（・）に対応したＧ（・）とが用いられる。それにより、同じ分離チャネルの周波数間で音源の整合性を保ったまま、分離チャネル間の独立性を最大化することができるようになる。すなわち、後処理のパーミテーションが不要となる。
ここで、ＷはＷ（ω）の全周波数の集合を表し、Ｎωは周波数の上限を表す。分離信号ベクトルｙｋは以下の（７）式で表される。
ｙｋ＝［ｙｋ（１）,ｙｋ（２）,・・・，ｙｋ（Ｎω）］Ｔ・・・（７）
【００２６】
（４）式と（６）式の最小化問題は、従来、自然勾配法などの勾配法で解かれていた。勾配法では以下の（８）式に示すように、ある方法により計算した分離行列Ｗの修正量ΔＷを用いて、Ｗを逐次更新することで目的関数を最小化する。
Ｗ←Ｗ＋ηΔＷ・・・（８）
【００２７】
ここで、ηはステップサイズと呼ばれる正の実数である。ηの値を適切な大きさに設定すれば、上記更新により目的関数を最小化するＷを求めることができる。しかし、一般には事前にその値を適切に決めるのは困難である。そして、仮にステップサイズが大きすぎると最適解に収束せず、逆にステップサイズが小さすぎると収束が遅くなる。
【００２８】
そこで、独立成分分析および独立ベクトル分析それぞれに関して、勾配法の代わりに補助関数法を適用し、（４）式および（６）式の最適解を高速かつ安定に求める方法が提案されている。以下では、目的関数が（６）式の独立ベクトル分析の場合について説明する。独立成分分析の場合も同様の手順で（４）式を最適化可能である。
【００２９】
補助関数法は、目的関数Ｊ（Ｗ）に対して、Ｊ（Ｗ）≦Ｑ（Ｗ，Ｖ）、Ｊ（Ｗ）＝ｍｉｎＶＱ（Ｗ，Ｖ）である、補助変数Ｖを持つ補助関数Ｑ（Ｗ，Ｖ）を設定し、以下の（９）式および（１０）式の最小化を交互に繰り返し行うことにより、目的関数Ｊ（Ｗ）をより小さくするようなＷを求める最適化手法である。
【数３】
2014041308.tif 000005
【数４】
2014041308.tif 000006
【００３０】
（９）式および（１０）式の繰り返しにより、目的関数Ｊ（Ｗ）は単調減少することが保証されている。そのため、収束が保証されていない勾配法よりも収束が早く、安定した解を求めることができる。補助関数法を適用するためには、目的関数に対して、（９）式および（１０）式が実行可能な補助関数を探し出して設定する必要がある。
【００３１】
例えば、以下の（１１）式のように補助関数Ｑ（Ｗ，Ｖ）を設定すれば、独立ベクトル分析に補助関数法を適用できる。
【数５】
2014041308.tif 000007
【００３２】
ただし、Ｖｋ（ω）は補助変数Ｖの１要素であり、以下の（１２）式のように定義される。
【数６】
2014041308.tif 000008
【００３３】
Ｇ‘Ｒ（ｒ）／ｒは０以上の実数ｒに関して連続であり、単調減少する関数として定義する。Ｇ‘Ｒ（ｒ）はＧＲ（ｒ）をｒで微分した関数である。ＧＲ（ｒ）はＧ（｜ｙｋ｜）＝ＧＲ（ｒ）との定義から（５）式の音源の確率密度関数と関連している。Ｇ‘Ｒ（ｒ）／ｒの定義から、（１１）式および（１２）式の補助関数を用いた最適化は、音源に優ガウス性を仮定した音源分離を行うことを意味しており、人の声などの分離に適している。例えば、ＧＲ（ｒ）＝ｒといった関数を用いることができるが、上記定義の条件を満たせばどのような関数でも利用できる。
【００３４】
（１１）式および（１２）式で定義される補助関数を用いると、（９）式の最小化は、以下の（１３）式を（１２）式に代入することで実行できる。
【数７】
2014041308.tif 000009
【００３５】
また、（１０）式の最小化は、以下の（１４）式のようにＷｋ（ω）を更新することで実行できる。
【数８】
2014041308.tif 000010
【００３６】
ただし、ｅｋはｋ番目の要素のみが１であり、残りの要素が０であるＫ次元縦ベクトルである。
【００３７】
ここで、（１２）式の期待値は、実際には以下の（１５）式のような時間平均によって求める。
【数９】
2014041308.tif 000011
【００３８】
Ｎｔは正の整数で、観測信号の時間長である。この時間平均を以下の（１６）式のように、過去のある時刻τ−Ｎｔ＋１から現時刻τまでの範囲で計算すると、オンライン処理が実現できる。
【数１０】
2014041308.tif 000012
【００３９】
（１３）式はｗｋを含んでいるため、分離行列を更新するたびに（１６）式を計算し直す必要がある。オンライン処理では、各時刻でｗｋを更新するので、１回の更新に対して（１６）式のＧ‘Ｒ（ｒｋ（ｔ））／ｒｋ（ｔ）をＫＮｔ回計算し直すこととなる。従って、各時刻あたりの計算量が膨大になる。
【００４０】
ここで、Ｎｔを小さくすることで計算量を減らすこともできそうである。しかし、Ｎｔ＝１など極端な場合はＶｋ（ω）の正則性が失われ、（１４）式で逆行列が計算できない。また、仮に計算できたとしても、得られた分離行列が短い区間の信号に過適合し、結果として分離精度が低下する可能性がある。勾配法を用いた方法でも、同様に１時刻の観測信号を用いて分離行列を更新する方法が考えられるが、同様の欠点を持っている。
【００４１】
そこで本実施形態では、（１６）式の代わりに、以下の（１７）式のように時刻τでの補助変数Ｖｋ（τ）を、前の時刻τ−１の補助変数Ｖｋ（τ−１）によって逐次的に計算するように近似を行う。
【数１１】
2014041308.tif 000013
【００４２】
αは０以上１以下の実数の忘却係数である。忘却係数αの値が小さいほど、過去の観測の影響が少なくなる。なお、ｒｋ（τ）は以下の（１８）式で表される。
【数１２】
2014041308.tif 000014
【００４３】
（１３）式のｒｋ（ｔ）も各時刻について計算するので、（１８）式と（１３）式の意味するところは同じである。
【００４４】
（１６）式を（１７）式のように近似することにより、１回の更新あたりの計算量を大幅に減らすことができる。（１７）式では、直接計算に用いる観測信号は１時刻のみのため、Ｇ‘Ｒ（ｒｋ（τ））／ｒｋ（τ）をＫ回のみ計算すればよい。もちろん、ある程度過去にさかのぼってＧ‘Ｒ（ｒｋ（τ））／ｒｋ（τ）を計算するよう（１７）式の右辺を変形してもかまわない。
【００４５】
また、（１７）式の補助変数の近似を用いることで、音源の移動等の環境変動に追従できる。（１７）式は忘却係数αにより、近い過去の観測に対してより大きな重みをつけてＶｋ（ω）を計算していると解釈できる。さらに、Ｇ‘Ｒ（ｒｋ（τ））で参照する過去の分離行列と、過去の分離行列によって得られる分離信号についても同じ重みが付けられる。このため、処理開始時や環境変動前における分離信号も徐々に考慮しなくなり、過去の分離行列の推定誤りや環境変動による現時刻への影響を減らすことができる。
【００４６】
（１７）式の近似により、（９）式にあるＶに関する補助関数Ｑ（Ｗ，Ｖ）の最小化は実行されない。このため、目的関数Ｊ（Ｗ）の理論上の収束性は厳密には保証できなくなる。しかし、実際にはこの近似により十分な精度の補助変数Ｖｋの推定が可能である。なぜなら、（１６）式は信号ｘ（ω，ｔ）の重み付き共分散と解釈でき、（１７）式はその重み係数を過去の各時点でのｗｋとαにより近似していることに相当するからである。ｗｋが時刻が進むにつれ所望の分離行列に近づいていると考えると、αにより信頼できる近い過去に対して高い重みを与えるのは理にかなっている。なお、推定したＶｋにより十分な分離精度を実現する分離行列が計算可能なことも実験的に確認している。従って、実用上は上記のように計算量や、環境変動への追従の点で大きなメリットがある。
【００４７】
ここまでは、Ｖｋ（τ）の近似は直前時刻のＶｋ（τ−１）との重み付け和の形で実現した。計算に用いる時刻は直前時刻に限らず、利用できる計算済みのＶｋであればいずれの時刻であってもよい。例えば、事前に観測信号全体が得られた場合や、分離処理で数時刻分の遅延が許される場合に、直前時刻に限らず、直後のＶｋを用いることができれば、現時刻のＶｋをより正確に予想することもできる。また、音源分離の際に、画像など他の種類の信号から音源位置の推測がある程度可能な場合、過去に音源が現時刻と近い位置にあったときのＶｋを利用することもできる。また、過去の複数のＶｋの重み付け和によって求めてもよいし、重み付け和以外の一般の１変数関数または多変数関数によって求めてもよい。さらに、（１７）式で用いる観測信号は、現時刻τのものだけでなく、現時刻を含め過去の数時刻のものを用いてもかまわない。以上をまとめると、（１７）式は以下の（１９）式のように一般化できる。
【数１３】
2014041308.tif 000015
【００４８】
ここで、ｆ（β）（・・・）は、多変数の関数であり、βは関数の形状を操作する形状パラメータである。Ｎｔを大きくしたり、ｆ（β）（・・・）を非線形の関数にしたり、引数の数を増やしたりすれば、計算量は大きくなるが、Ｖｋを正確に近似することが可能となる。
【００４９】
推定部１１２は、観測信号の属性を示す属性情報に応じて補助変数の推定方式を変更してもよい。また、更新部１１３は、属性情報に応じて分離行列の更新方式を変更してもよい。属性情報とは、例えば、音源の位置を示す情報、および、観測信号のパワー値などである。
【００５０】
例えば、（１７）式の忘却係数αや（１９）式のβは、固定の値ではなく、観測信号や音源の状況に合わせて動的に変更してもかまわない。すなわち、画像センサなどを用いて音源の移動が検知できる場合は、音源の移動の状況に応じて忘却係数αの値を変更してもよい。例えば、音源が移動した場合、移動前のＶｋは、現在のＶｋの推定に役に立たないと考えられるため、（１７）式の忘却係数αを小さくする。これにより、近い過去や現時刻の観測に対する重みをより強くした推定が可能となり、音源移動への分離行列の追従を早くすることもできる。
【００５１】
また、１時刻における分離行列の更新は何度行ってもかまわない。例えば、信号分離処理の開始時は１時刻あたりの更新回数を多くし、数時刻後は更新回数を少なくする、などの方法を用いてもよい。これにより、開始時には最適な分離行列に早く近づくことを目指し、数時刻後は分離行列がある程度収束していると考えられるので、計算量を減らすことが可能となる。
【００５２】
また、分離行列更新時の分離行列の値、目的関数の関数値、または、補助関数の関数値の変化量（更新量）が所定の閾値より小さくなったときに更新を止めるように構成してもよい。また、観測信号のパワー値が小さいときは、分離行列の推定に必要な情報が得にくいと考え、更新回数を減らす、または、更新を停止する、といった方法を用いてもよい。
【００５３】
さらに、（１４）式の分離行列更新に含まれる、Ｗ（ω）とＶｋ（ω）の逆行列計算を以下で述べるように変形することにより、更新毎における計算時間を減らすことができる。
【００５４】
まず、Ｗ（ω）の逆行列をＺ（ω）＝Ｗ−１（ω）としたとき、前回のＷ（ω）の更新でｗｋ（ｎ−１）（ω）がｗｋ（ｎ）（ω）に更新された場合に、Δｗｋ＝ｗｋ（ｎ）（ω）−ｗｋ（ｎ−１）（ω）とおくと、（各記号の括弧付きの上付き文字は、分離行列Ｗの更新回数を表す）、以下の（２０）式のように書くことができる。Δｗｋは分離行列の更新量に相当する。なお（２０）式ではωを省略して記載している。
Ｗ（ｎ＋１）←Ｗ（ｎ）＋ｅｋΔｗｋＨ・・・（２０）
【００５５】
（２０）式に以下の（２１）式に示す逆行列補題という数学的定理を適用すると、（２２）式に示すように更新前のＷの逆行列Ｚから、更新後のＷの逆行列Ｚを逐次的に計算することができる。（２１）式のＡはＫ×Ｋ次元の正方行列、ＢはＫ×Ｌ次元の行列、ＣはＬ×Ｋ次元の行列である。Ｉは単位行列を表す。
（Ａ＋ＢＣ）−１＝Ａ−１−Ａ−１Ｂ（Ｉ＋ＣＡ−１Ｂ）−１ＣＡ−１・・・（２１）
【数１４】
2014041308.tif 000016
【００５６】
また、Ｖｋ（ｔ＋１）を（１７）式で計算する場合、その逆行列Ｕｋ（ｔ＋１）は、１時刻前のＵｋ（ｔ）を用いて、以下の（２３）式のように計算される。
【数１５】
2014041308.tif 000017
ただし、ｐｋ（ｔ＋１）は以下の（２４）式で表される。
【数１６】
2014041308.tif 000018
【００５７】
（２３）式も（２２）式と同様に（２１）式の逆行列補題を（１７）式に適用することにより導かれる。（２２）式と（２３）式で求めたＺとＵｋにより、（１４）式の１番目の分離行列更新式は以下の（２５）式のように書き換えることができる。
Ｗｋ（ω）←Ｕｋ（ω）Ｚ（ω）ｅｋ・・・（２５）
【００５８】
逆行列の計算は、行列の積と和の演算と比較して高速化が困難である。そこで、（２２）式と（２３）式を用いて各々の逆行列を逐次的に計算する形に変形する。これにより、逆行列計算を行列の積と和の計算に置き換えることができ、結果として分離行列更新処理の大幅な高速化が可能となる。なお、（２２）式および（２３）式の右辺第２項の分母はスカラーとなるため、（２２）式および（２３）式では逆行列の計算は発生しない。
【００５９】
以上、本実施形態の時系列信号分離方法について、計算式により説明した。次に、図を用いて本実施形態における信号処理装置の具体的構成について説明する。
【００６０】
図１は、本実施形態の信号処理装置１００の構成例を示すブロック図である。信号処理装置１００は、受付部１０１と、生成部１１１と、推定部１１２と、更新部１１３と、記憶部１２１と、を備えている。
【００６１】
受付部１０１は、信号処理の対象となる観測信号（入力信号）の入力を受付ける。例えば、受付部１０１は、信号処理装置１００の外部の信号観測装置によって得られたＭ個の時系列中の、現時刻のＭ個の時系列の観測信号の入力を受付ける。
【００６２】
生成部１１１は、入力された観測信号に対して分離行列を適用することで分離信号を生成する。例えば、生成部１１１は、入力された観測信号ｘ（ω，ｔ）に対し、更新部１１３により更新された分離行列Ｗ（ω）を（２）式のように適用することで、現時刻の分離信号ｙ（ω，ｔ）を生成する。
【００６３】
推定部１１２は、ある区間（第１区間）の観測信号に対して補助関数を用いて推定された補助変数と、第１区間と異なる第２区間の観測信号と、に基づいて、第２区間の補助変数を推定する。例えば、推定部１１２は、過去の観測信号（第１区間）から推定された補助変数と、現時刻の観測信号（第２区間）と、現時点の分離行列の値と、を参照して、（１７）式や（１９）式により、現時刻の補助変数の値を推定する。なお、更新部１１３が（１４）式の代わりに（２５）式を用いる場合は、推定部１１２が（２３）式を計算し、補助変数の逆行列も計算しておく。
【００６４】
更新部１１３は、推定された補助変数と分離行列とから補助関数の関数値が最小になるように分離行列を更新する。例えば、更新部１１３は、推定部１１２により推定された補助変数と、現時点の分離行列とを参照し、（１４）式を用いて分離行列を更新する。（１４）の第１式の代わりに（２５）式を用いる場合は、更新部１１３は、（２５）式を計算する前に、（２２）式により現時点の分離行列の逆行列を計算しておく。
【００６５】
記憶部１２１は、信号処理で用いる各種データを記憶する。例えば、記憶部１２１は、過去に推定した補助変数を記憶する。過去に推定した補助変数は、上述のように推定部１１２が現時刻の補助変数を推定するときに参照される。
【００６６】
受付部１０１、生成部１１１、推定部１１２、および、更新部１１３は、例えば、ＣＰＵ（Central  Processing  Unit）などの処理装置にプログラムを実行させること、すなわち、ソフトウェアにより実現してもよいし、ＩＣ（Integrated  Circuit）などのハードウェアにより実現してもよいし、ソフトウェアおよびハードウェアを併用して実現してもよい。
【００６７】
また、記憶部１２１は、ＨＤＤ（Hard  Disk  Drive）、光ディスク、メモリカード、ＲＡＭ（Random  Access  Memory）などの一般的に利用されているあらゆる記憶媒体により構成することができる。
【００６８】
次に、このように構成された本実施形態にかかる信号処理装置１００による信号処理について図２を用いて説明する。図２は、本実施形態における信号処理の一例を示すフローチャートである。
【００６９】
例えば、受付部１０１が、Ｍ個のマイクロフォンで観測された複数のＡ／Ｄ（アナログ／デジタル）変換された時系列のデジタル音響信号（観測信号）を受付けると図２の信号処理が開始される。
【００７０】
時間周波数表現で音響信号（観測信号）を分離する場合等であれば、受付部１０１はＭ個の時系列毎に短時間フーリエ変換を行う（ステップＳ１０１）。また、受付部１０１は、短時間フーリエ変換で得られる時間周波数表現の観測信号を、複数の区間に分割する（ステップＳ１０２）。単純には、短時間フーリエ変換結果の１時刻分を１つの時間区間とし、（３）式のｘ（ω，ｔ）のようなＭ次元のベクトルを１区間の観測信号とする。時間区間の分割方法はこれに限られるものではなく、例えば、１つの時間区間は複数時刻からなる信号ベクトル列であってもよい。分割された区間毎に順次ステップＳ１０３〜ステップＳ１０６の処理が行われる。
【００７１】
ステップＳ１０３では、推定部１１２および更新部１１３により補助変数推定・行列更新処理が実行される（詳細は後述）。これにより、現時刻の補助変数が推定され、推定された補助変数を用いて分離行列が更新される。
【００７２】
生成部１１１は、更新された分離行列に対するスケーリングを行う（ステップＳ１０４）。ステップＳ１０３で更新された分離行列は、周波数間で観測信号に対する振幅のスケールが異なるため、ステップＳ１０４でスケールを揃える処理を行う。具体的には、ステップＳ１０３で周波数ωの分離行列Ｗ（ω）が得られたとき、以下の（２６）式のようにＷ（ω）を更新する。
Ｗ（ω）←ｄｉａｇ（Ｗ−１（ω））Ｗ（ω）・・・（２６）
【００７３】
ただし、ｄｉａｇ（Ａ）は、行列Ａの非対角項を０にする関数を表す。このとき、ステップＳ１０３で（２３）式のＺ（ω）を計算していれば、上式のＷ（ω）の逆行列計算の代わりにその値をそのまま用いることができる。これにより計算量を減らすことができる。
【００７４】
生成部１１１は、ステップＳ１０４までに得られた分離行列を、（２）式のように観測信号に適用することで観測信号の分離信号を生成する（ステップＳ１０５）。
【００７５】
生成部１１１は、処理対象となるすべての時刻の観測信号について処理を終了したか否かを判断する（ステップＳ１０６）。終了していない場合（ステップＳ１０６：Ｎｏ）、ステップＳ１０３に戻り処理を繰り返す。終了した場合（ステップＳ１０６：Ｙｅｓ）、ステップＳ１０７の処理を実行する。
【００７６】
ステップＳ１０５で得られた分離信号は、短時間フーリエ変換による時間周波数信号であるため、生成部１１１は、必要に応じて、オーバーラップアド法などにより、時系列音響信号に変換する（ステップＳ１０７）。なお、音声認識への応用などのため時間周波数信号のみが必要であれば、ステップＳ１０７は省略してもよい。
【００７７】
図３は、ステップＳ１０３の補助変数推定・行列更新処理の一例を示すフローチャートである。
【００７８】
現時刻の観測信号に対して、図３に示す処理が実行される。推定部１１２または更新部１１３は、本処理の処理回数（更新回数）をカウントするためのカウンタｊを初期化する（ステップＳ２０１）。推定部１１２または更新部１１３は、カウンタｊに１加算する（ステップＳ２０２）。
【００７９】
推定部１１２は、観測信号のＫ個のチャネル（分離チャネル）のうち、未処理のチャネルを処理対象とする。各チャネルの実行順序は任意である。そして、推定部１１２は、処理対象のチャネルｋ（１≦ｋ≦Ｋ）の未処理の周波数ω（１≦ω≦Ｎω）について、過去の観測信号から推定された補助変数と、現時刻の観測信号と、現時点の分離行列と、を参照して、現時刻の補助変数の値を推定する（ステップＳ２０３）。
【００８０】
更新部１１３は、推定された補助変数と分離行列とを用いて補助関数の関数値が最小になるように分離行列を更新する（ステップＳ２０４）。
【００８１】
推定部１１２または更新部１１３は、すべての周波数を処理したか否かを判断する（ステップＳ２０５）。すべての周波数を処理していない場合（ステップＳ２０５：Ｎｏ）、ステップＳ２０３に戻り、次の未処理の周波数に対して処理を繰り返す。なお、あるチャネルに対する処理は各周波数ω間で依存関係がないので、並列に計算することで計算時間を短縮するように構成してもよい。
【００８２】
すべての周波数を処理した場合（ステップＳ２０５：Ｙｅｓ）、推定部１１２または更新部１１３は、すべてのチャネルを処理したか否かを判断する（ステップＳ２０６）。すべてのチャネルを処理していない場合（ステップＳ２０６：Ｎｏ）、ステップＳ２０３に戻り、次の未処理のチャネルに対して処理を繰り返す。すべてのチャネルを処理した場合（ステップＳ２０６：Ｙｅｓ）、推定部１１２または更新部１１３は、カウンタｊが規定回数より大きいか否かを判断する（ステップＳ２０７）。カウンタｊが規定回数より大きくない場合（ステップＳ２０７：Ｎｏ）、ステップＳ２０２に戻り処理を繰り返す。カウンタｊが規定回数より大きい場合（ステップＳ２０７：Ｙｅｓ）、補助変数推定・行列更新処理を終了する。
【００８３】
なお、規定回数は固定値でもよいし、上述のように予め定めた規則によって時刻毎に変更してもかまわない。
【００８４】
以上説明したとおり、本実施形態にかかる信号処理装置では、環境変動への追従速度や分離精度を保ちつつ、音源分離処理のオンライン処理の計算量を減らすことができる。
【００８５】
次に、本実施形態にかかる信号処理装置のハードウェア構成について図４を用いて説明する。図４は、本実施形態にかかる信号処理装置のハードウェア構成を示す説明図である。
【００８６】
本実施形態にかかる信号処理装置は、ＣＰＵ（Central  Processing  Unit）５１などの制御装置と、ＲＯＭ（Read  Only  Memory）５２やＲＡＭ（Random  Access  Memory）５３などの記憶装置と、ネットワークに接続して通信を行う通信Ｉ／Ｆ５４と、各部を接続するバス６１を備えている。
【００８７】
本実施形態にかかる信号処理装置で実行されるプログラムは、ＲＯＭ５２等に予め組み込まれて提供される。
【００８８】
本実施形態にかかる信号処理装置で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ（Compact  Disk  Recordable）、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録してコンピュータプログラムプロダクトとして提供されるように構成してもよい。
【００８９】
さらに、本実施形態にかかる信号処理装置で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態にかかる信号処理装置で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。
【００９０】
本実施形態にかかる信号処理装置で実行されるプログラムは、コンピュータを上述した信号処理装置の各部として機能させうる。このコンピュータは、ＣＰＵ５１がコンピュータ読取可能な記憶媒体からプログラムを主記憶装置上に読み出して実行することができる。
【００９１】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００９２】
１００  信号処理装置
１０１  受付部
１１１  生成部
１１２  推定部
１１３  更新部
１２１  記憶部
【図１】
2014041308.tif 000019
【図２】
2014041308.tif 000020
【図３】
2014041308.tif 000021
【図４】
2014041308.tif 000022