(57)【要約】【課題】独立ベクトル分析を用いた信号処理において、信号を分離するための分離行列を安定して短時間に求めることが可能な信号処理装置、信号処理方法を提供する。【解決手段】信号処理装置１は、複数の原信号が混合されたものに基づく複数の第１の周波数帯域信号から、各原信号に対応付けられた複数の第２の周波数帯域信号を生成するための分離行列を求める分離行列算出部２３を有し、分離行列算出部２３は、関数値を低減させるほど同じ原信号に対応付けられた第２の周波数帯域信号をまとめたベクトルが統計的に独立になる目的関数を設定し、現在の分離行列に対して目的関数と同じ関数値を取り、全ての分離行列に対して目的関数の関数値以上の関数値を取り、且つ関数値が最小となる分離行列を求めることが可能な補助関数を設定する処理と、補助関数の関数値が最小となる分離行列により現在の分離行列を更新する処理と、を繰り返して分離行列を求める。【選択図】図１
2013068938.tif 000002
【特許請求の範囲】
【請求項１】
複数の原信号の数と同数であって且つそれぞれが複数の原信号が混合されたものに基づく複数の第１の時系列信号を取得する信号取得部と、
前記複数の第１の時系列信号のそれぞれを周波数変換して複数の周波数帯域に分割することにより、前記複数の第１の時系列信号のそれぞれに対して複数の第１の周波数帯域信号を生成する周波数変換部と、
前記第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号から、前記複数の原信号のそれぞれに対応付けられた複数の第２の周波数帯域信号を生成するための分離行列を前記複数の周波数帯域のそれぞれについて求める分離行列算出部と、
前記第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号及び同じ周波数帯域の前記分離行列を用いて前記複数の第２の周波数帯域信号を生成する信号変換部と、
前記複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号を逆周波数変換して第２の時系列信号を生成する逆周波数変換部と、
前記第２の時系列信号を外部に出力するインターフェース部と、を有し、
前記分離行列算出部は、
前記複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号をまとめたベクトルをパラメータとし、且つ関数値を低減させるほど前記ベクトルのそれぞれが統計的に独立になる目的関数を設定し、
前記複数の第１の周波数帯域信号及び各周波数帯域の分離行列の各成分をパラメータとし、現在の前記各周波数帯域の分離行列に対して前記目的関数と同じ関数値を取り、全ての前記各周波数帯域の分離行列に対して前記目的関数の関数値以上の関数値を取り、且つ関数値が最小となる前記各周波数帯域の分離行列を求めることが可能な補助関数を設定する処理と、
前記補助関数の関数値が最小となる前記各周波数帯域の分離行列を求めて、当該各周波数帯域の分離行列により現在の前記各周波数帯域の分離行列を更新する処理と、
を交互に繰り返すことにより前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、ことを特徴とする信号処理装置。
【請求項２】
前記分離行列算出部は、前記補助関数を設定する一回の処理において、前記複数の原信号のうち一つの原信号に対応する、前記補助関数の補助変数を更新し、前記分離行列を更新する一回の処理において、前記一つの原信号に対応する、前記分離行列の成分を更新する、請求項１に記載の信号処理装置。
【請求項３】
前記分離行列算出部は、前記複数の原信号の数をＫとし、前記複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する前記第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応する前記ベクトルをｙkとし、周波数帯域ωに対応する前記分離行列を次の行列Ｗ（ω）とし、
【数１】
2013068938.tif 000099
次の関数Ｊ（Ｗ）を前記目的関数とし、
【数２】
2013068938.tif 000100
次の関数Ｑ（Ｗ、Ｖ）を前記補助関数とし、
【数３】
2013068938.tif 000101
Ｖk（ω）を次の式により更新する処理と、
【数４】
2013068938.tif 000102
ｗk（ω）を次の式により更新する処理と、
【数５】
2013068938.tif 000103
をｋが１からＫまで順次繰り返すことによりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、請求項２に記載の信号処理装置。
【請求項４】
前記分離行列算出部は、前記補助関数を設定する一回の処理において、前記複数の原信号のうち二つの原信号に対応する、前記補助関数の補助変数を更新し、前記分離行列を更新する一回の処理において、前記二つの原信号に対応する、前記分離行列の成分を更新する、請求項１に記載の信号処理装置。
【請求項５】
前記分離行列算出部は、前記複数の原信号の数をＫとし、前記複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する前記第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応する前記ベクトルをｙkとし、周波数帯域ωに対応する前記分離行列を次の行列Ｗ（ω）とし、
【数６】
2013068938.tif 000104
次の関数Ｊ（Ｗ）を前記目的関数とし、
【数７】
2013068938.tif 000105
次の関数Ｑ（Ｗ、Ｖ）を前記補助関数とし、
【数８】
2013068938.tif 000106
Ｋ＝２である場合に、Ｖk（ω）をｋ＝１、２について次の式により更新する処理と、
【数９】
2013068938.tif 000107
ｗk（ω）をｋ＝１、２について次の式により更新する処理と、
【数１０】
2013068938.tif 000108
によりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、請求項４に記載の信号処理装置。
【請求項６】
前記分離行列算出部は、前記複数の原信号の数をＫとし、前記複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する前記第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応する前記ベクトルをｙkとし、周波数帯域ωに対応する前記分離行列を次の行列Ｗ（ω）とし、
【数１１】
2013068938.tif 000109
次の関数Ｊ（Ｗ）を前記目的関数とし、
【数１２】
2013068938.tif 000110
次の関数Ｑ（Ｗ、Ｖ）を前記補助関数とし、
【数１３】
2013068938.tif 000111
Ｖk（ω）をｋ＝ｍ、ｎ（１≦ｍ≦Ｋ、１≦ｎ≦Ｋ、ｍ≠ｎ）について次の式により更新する処理と、
【数１４】
2013068938.tif 000112
ｗk（ω）をｋ＝ｍ、ｎについて次の式により更新する処理と、
【数１５】
2013068938.tif 000113
によりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、請求項４に記載の信号処理装置。
【請求項７】
複数の原信号の数と同数であって且つそれぞれが複数の原信号が混合されたものに基づく複数の第１の時系列信号を取得するステップと、
前記複数の第１の時系列信号のそれぞれを周波数変換して複数の周波数帯域に分割することにより、前記複数の第１の時系列信号のそれぞれに対して複数の第１の周波数帯域信号を生成するステップと、
前記第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号から、前記複数の原信号のそれぞれに対応付けられた複数の第２の周波数帯域信号を生成するための分離行列を前記複数の周波数帯域のそれぞれについて求めるステップと、
前記第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号及び同じ周波数帯域の前記分離行列を用いて前記複数の第２の周波数帯域信号を生成するステップと、
前記複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号を逆周波数変換して第２の時系列信号を生成するステップと、
前記第２の時系列信号を外部に出力するステップと、を含み、
前記分離行列を求めるステップにおいて、
前記複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号をまとめたベクトルをパラメータとし、且つ関数値を低減させるほど前記ベクトルのそれぞれが統計的に独立になる目的関数を設定し、
前記複数の第１の周波数帯域信号及び各周波数帯域の分離行列の各成分をパラメータとし、現在の前記各周波数帯域の分離行列に対して前記目的関数と同じ関数値を取り、全ての前記各周波数帯域の分離行列に対して前記目的関数の関数値以上の関数値を取り、且つ関数値が最小となる前記各周波数帯域の分離行列を求めることが可能な補助関数を設定する処理と、
前記補助関数の関数値が最小となる前記各周波数帯域の分離行列を求めて、当該各周波数帯域の分離行列により現在の前記各周波数帯域の分離行列を更新する処理と、
を交互に繰り返すことにより前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、ことを特徴とする信号処理方法。
【請求項８】
前記分離行列を求めるステップにおいて、前記補助関数を設定する一回の処理で、前記複数の原信号のうち一つの原信号に対応する、前記補助関数の補助変数を更新し、前記分離行列を更新する一回の処理で、前記一つの原信号に対応する、前記分離行列の成分を更新する、請求項７に記載の信号処理方法。
【請求項９】
前記分離行列を求めるステップにおいて、前記複数の原信号の数をＫとし、前記複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する前記第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応する前記ベクトルをｙkとし、周波数帯域ωに対応する前記分離行列を次の行列Ｗ（ω）とし、
【数１６】
2013068938.tif 000114
次の関数Ｊ（Ｗ）を前記目的関数とし、
【数１７】
2013068938.tif 000115
次の関数Ｑ（Ｗ、Ｖ）を前記補助関数とし、
【数１８】
2013068938.tif 000116
Ｖk（ω）を次の式により更新する処理と、
【数１９】
2013068938.tif 000117
ｗk（ω）を次の式により更新する処理と、
【数２０】
2013068938.tif 000118
をｋが１からＫまで順次繰り返すことによりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、請求項８に記載の信号処理方法。
【請求項１０】
前記分離行列を求めるステップにおいて、前記補助関数を設定する一回の処理で、前記複数の原信号のうち二つの原信号に対応する、前記補助関数の補助変数を更新し、前記分離行列を更新する一回の処理で、前記二つの原信号に対応する、前記分離行列の成分を更新する、請求項７に記載の信号処理方法。
【請求項１１】
前記分離行列を求めるステップにおいて、前記複数の原信号の数をＫとし、前記複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する前記第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応する前記ベクトルをｙkとし、周波数帯域ωに対応する前記分離行列を次の行列Ｗ（ω）とし、
【数２１】
2013068938.tif 000119
次の関数Ｊ（Ｗ）を前記目的関数とし、
【数２２】
2013068938.tif 000120
次の関数Ｑ（Ｗ、Ｖ）を前記補助関数とし、
【数２３】
2013068938.tif 000121
Ｖk（ω）をｋ＝１、２について次の式により更新する処理と、
【数２４】
2013068938.tif 000122
ｗk（ω）をｋ＝１、２について次の式により更新する処理と、
【数２５】
2013068938.tif 000123
によりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、請求項１０に記載の信号処理方法。
【請求項１２】
前記分離行列を求めるステップにおいて、前記複数の原信号の数をＫとし、前記複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する前記第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応する前記ベクトルをｙkとし、周波数帯域ωに対応する前記分離行列を次の行列Ｗ（ω）とし、
【数２６】
2013068938.tif 000124
次の関数Ｊ（Ｗ）を前記目的関数とし、
【数２７】
2013068938.tif 000125
次の関数Ｑ（Ｗ、Ｖ）を前記補助関数とし、
【数２８】
2013068938.tif 000126
Ｖk（ω）をｋ＝ｍ、ｎ（１≦ｍ≦Ｋ、１≦ｎ≦Ｋ、ｍ≠ｎ）について次の式により更新する処理と、
【数２９】
2013068938.tif 000127
ｗk（ω）をｋ＝ｍ、ｎについて次の式により更新する処理と、
【数３０】
2013068938.tif 000128
によりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、請求項１０に記載の信号処理方法。
【請求項１３】
複数の原信号の数と同数であって且つそれぞれが複数の原信号が混合されたものに基づく複数の第１の時系列信号を取得するステップと、
前記複数の第１の時系列信号のそれぞれを周波数変換して複数の周波数帯域に分割することにより、前記複数の第１の時系列信号のそれぞれに対して複数の第１の周波数帯域信号を生成するステップと、
前記第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号から、前記複数の原信号のそれぞれに対応付けられた複数の第２の周波数帯域信号を生成するための分離行列を前記複数の周波数帯域のそれぞれについて求めるステップと、
前記第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号及び同じ周波数帯域の前記分離行列を用いて前記複数の第２の周波数帯域信号を生成するステップと、
前記複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号を逆周波数変換して第２の時系列信号を生成するステップと、
前記第２の時系列信号を外部に出力するステップと、をコンピュータに実行させ、
前記分離行列を求めるステップにおいて、
前記複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号をまとめたベクトルをパラメータとし、且つ関数値を低減させるほど前記ベクトルのそれぞれが統計的に独立になる目的関数を設定し、
前記複数の第１の周波数帯域信号及び各周波数帯域の分離行列の各成分をパラメータとし、現在の前記各周波数帯域の分離行列に対して前記目的関数と同じ関数値を取り、全ての前記各周波数帯域の分離行列に対して前記目的関数の関数値以上の関数値を取り、且つ関数値が最小となる前記各周波数帯域の分離行列を求めることが可能な補助関数を設定する処理と、
前記補助関数の関数値が最小となる前記各周波数帯域の分離行列を求めて、当該各周波数帯域の分離行列により現在の前記各周波数帯域の分離行列を更新する処理と、
を交互に繰り返すことにより前記ベクトルのそれぞれが統計的により独立になる前記各周波数帯域の分離行列を求める、ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号処理装置、信号処理方法及びコンピュータプログラムに関し、特に、複数の原信号が混合された信号を分離する信号処理装置、信号処理方法及びコンピュータプログラムに関する。
【背景技術】
【０００２】
ブラインド音源分離技術は、複数のマイクロフォンから入力した複数の音源からの音声信号を音源方向等の情報が未知の状態で分離する技術である。近年、特にマイクロフォン数が音源数以上の条件を対象とする優決定ブラインド音源分離技術の研究が進められている。
【０００３】
優決定ブラインド音源分離を実現するための技術として独立成分分析が知られている。独立成分分析は、各音源からの音声信号が相互に統計的に独立であるという仮定のもと、音声信号を分離信号に分離する技術である。この独立成分分析では、一般に、音声信号を一旦周波数領域に変換して、所定の周波数帯域毎に、分離信号が統計的に独立になるように音声信号を分離する。その場合、音源毎に音声信号を復元するためには、各周波数帯域の分離信号を各音源に対応させて並べ替えるというパーミュテーション問題を解決する必要があった。しかしながら、分離信号の並べ替えには残響、音のはね返り等を考慮する必要があるため、パーミュテーション問題を解決することは容易ではなかった。
【０００４】
そこで、近年、各周波数帯域の分離信号をまとめたベクトルが相互に統計的に独立になるように音声信号を分離する独立ベクトル分析が研究されている（非特許文献１〜３を参照）。独立ベクトル分析では、音声信号を周波数領域に変換し、全ての周波数帯域をベクトルとしてまとめ、各ベクトルが相互に統計的に独立になるようにする。そのために、音声信号を分離する分離行列をパラメータとし、且つ最小化することにより各ベクトルが相互に統計的に独立になる独立ベクトル分析の目的関数を設定し、その目的関数が最小になるように分離行列を学習することにより最適な分離行列を求める。この独立ベクトル分析では、周波数帯域間の相関に基づいて音声信号を分離することにより、パーミュテーション問題を回避することができる。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】A. Hiroe, “Solution of Permutation Problem in Frequency Domain ICA Using Multivariate Probability Density Functions,”Proc. ICA, pp. 601-608, 2006.
【非特許文献２】T. Kim, T. Eltoft, and T.-W. Lee, “Independent Vector Analysis: An Extension of ICA to Multivariate Components,” Proc. ICA, pp. 165-172, 2006.
【非特許文献３】T. Kim, H. T. Attias, S.-Y. Lee, and T.-W. Lee, “Blind Source Separation Exploiting Higher-order Frequency Dependencies,”IEEE Trans. ASLP, vol. 15, no. 1, pp. 70-79, 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
独立ベクトル分析の目的関数の最適化問題の解法として、一般に自然勾配法が用いられている。自然勾配法では、目的関数の勾配の情報を用いて、目的関数の変数を降下方向に所定のステップサイズだけすすめる処理を反復することにより最適解を求める。しかし、自然勾配法では、ステップサイズが小さすぎると反復処理に多大な時間を要し、ステップサイズが大きすぎると反復計算の途中で解が発散して解が求まらない場合があるという問題があった。
【０００７】
そこで、本発明の目的は、独立ベクトル分析を用いた信号処理において、信号を分離するための分離行列を安定して短時間に求めることが可能な信号処理装置、信号処理方法及びそのような信号処理方法をコンピュータに実行させるコンピュータプログラムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明に係る信号処理装置は、複数の原信号の数と同数であって且つそれぞれが複数の原信号が混合されたものに基づく複数の第１の時系列信号を取得する信号取得部と、複数の第１の時系列信号のそれぞれを周波数変換して複数の周波数帯域に分割することにより、複数の第１の時系列信号のそれぞれに対して複数の第１の周波数帯域信号を生成する周波数変換部と、第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号から、複数の原信号のそれぞれに対応付けられた複数の第２の周波数帯域信号を生成するための分離行列を複数の周波数帯域のそれぞれについて求める分離行列算出部と、第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号及び同じ周波数帯域の分離行列を用いて複数の第２の周波数帯域信号を生成する信号変換部と、複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号を逆周波数変換して第２の時系列信号を生成する逆周波数変換部と、第２の時系列信号を外部に出力するインターフェース部と、を有し、分離行列算出部は、複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号をまとめたベクトルをパラメータとし、且つ関数値を低減させるほどベクトルのそれぞれが統計的に独立になる目的関数を設定し、複数の第１の周波数帯域信号及び各周波数帯域の分離行列の各成分をパラメータとし、現在の各周波数帯域の分離行列に対して目的関数と同じ関数値を取り、全ての各周波数帯域の分離行列に対して目的関数の関数値以上の関数値を取り、且つ関数値が最小となる各周波数帯域の分離行列を求めることが可能な補助関数を設定する処理と、補助関数の関数値が最小となる各周波数帯域の分離行列を求めて、当該各周波数帯域の分離行列により現在の各周波数帯域の分離行列を更新する処理と、を交互に繰り返すことによりベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求める。
【０００９】
さらに、本発明に係る信号処理装置において、分離行列算出部は、補助関数を設定する一回の処理において、複数の原信号のうち一つの原信号に対応する、補助関数の補助変数を更新し、分離行列を更新する一回の処理において、その一つの原信号に対応する、分離行列の成分を更新することが好ましい。
【００１０】
さらに、本発明に係る信号処理装置において、分離行列算出部は、複数の原信号の数をＫとし、複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応するベクトルをｙkとし、周波数帯域ωに対応する分離行列を次の行列Ｗ（ω）とし、
【数１】
2013068938.tif 000003
次の関数Ｊ（Ｗ）を目的関数とし、
【数２】
2013068938.tif 000004
次の関数Ｑ（Ｗ、Ｖ）を補助関数とし、
【数３】
2013068938.tif 000005
Ｖk（ω）を次の式により更新する処理と、
【数４】
2013068938.tif 000006
ｗk（ω）を次の式により更新する処理と、
【数５】
2013068938.tif 000007
をｋが１からＫまで順次繰り返すことによりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、ベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求めることが好ましい。
【００１１】
または、本発明に係る信号処理装置において、分離行列算出部は、補助関数を設定する一回の処理において、複数の原信号のうち二つの原信号に対応する、補助関数の補助変数を更新し、分離行列を更新する一回の処理において、その二つの原信号に対応する、分離行列の成分を更新することが好ましい。
【００１２】
さらに、本発明に係る信号処理装置において、分離行列算出部は、複数の原信号の数をＫとし、複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応するベクトルをｙkとし、周波数帯域ωに対応する分離行列を次の行列Ｗ（ω）とし、
【数６】
2013068938.tif 000008
次の関数Ｊ（Ｗ）を目的関数とし、
【数７】
2013068938.tif 000009
次の関数Ｑ（Ｗ、Ｖ）を補助関数とし、
【数８】
2013068938.tif 000010
Ｋ＝２である場合に、Ｖk（ω）をｋ＝１、２について次の式により更新する処理と、
【数９】
2013068938.tif 000011
ｗk（ω）をｋ＝１、２について次の式により更新する処理と、
【数１０】
2013068938.tif 000012
によりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、ベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求めることが好ましい。
【００１３】
または、本発明に係る信号処理装置において、分離行列算出部は、複数の原信号の数をＫとし、複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応するベクトルをｙkとし、周波数帯域ωに対応する分離行列を次の行列Ｗ（ω）とし、
【数１１】
2013068938.tif 000013
次の関数Ｊ（Ｗ）を目的関数とし、
【数１２】
2013068938.tif 000014
次の関数Ｑ（Ｗ、Ｖ）を補助関数とし、
【数１３】
2013068938.tif 000015
Ｖk（ω）をｋ＝ｍ、ｎ（１≦ｍ≦Ｋ、１≦ｎ≦Ｋ、ｍ≠ｎ）について次の式により更新する処理と、
【数１４】
2013068938.tif 000016
ｗk（ω）をｋ＝ｍ、ｎについて次の式により更新する処理と、
【数１５】
2013068938.tif 000017
によりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、ベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求めることが好ましい。
【００１４】
また、本発明に係る信号処理方法は、複数の原信号の数と同数であって且つそれぞれが複数の原信号が混合されたものに基づく複数の第１の時系列信号を取得するステップと、複数の第１の時系列信号のそれぞれを周波数変換して複数の周波数帯域に分割することにより、複数の第１の時系列信号のそれぞれに対して複数の第１の周波数帯域信号を生成するステップと、第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号から、複数の原信号のそれぞれに対応付けられた複数の第２の周波数帯域信号を生成するための分離行列を複数の周波数帯域のそれぞれについて求めるステップと、第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号及び同じ周波数帯域の分離行列を用いて複数の第２の周波数帯域信号を生成するステップと、複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号を逆周波数変換して第２の時系列信号を生成するステップと、第２の時系列信号を外部に出力するステップと、を含み、分離行列を求めるステップにおいて、複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号をまとめたベクトルをパラメータとし、且つ関数値を低減させるほどベクトルのそれぞれが統計的に独立になる目的関数を設定し、複数の第１の周波数帯域信号及び各周波数帯域の分離行列の各成分をパラメータとし、現在の各周波数帯域の分離行列に対して目的関数と同じ関数値を取り、全ての各周波数帯域の分離行列に対して目的関数の関数値以上の関数値を取り、且つ関数値が最小となる各周波数帯域の分離行列を求めることが可能な補助関数を設定する処理と、補助関数の関数値が最小となる各周波数帯域の分離行列を求めて、当該各周波数帯域の分離行列により現在の各周波数帯域の分離行列を更新する処理と、を交互に繰り返すことによりベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求める。
【００１５】
さらに、本発明に係る信号処理方法において、分離行列を求めるステップにおいて、補助関数を設定する一回の処理で、複数の原信号のうち一つの原信号に対応する、補助関数の補助変数を更新し、分離行列を更新する一回の処理で、その一つの原信号に対応する、分離行列の成分を更新することが好ましい。
【００１６】
さらに、本発明に係る信号処理方法において、分離行列を求めるステップにおいて、複数の原信号の数をＫとし、複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応するベクトルをｙkとし、周波数帯域ωに対応する分離行列を次の行列Ｗ（ω）とし、
【数１６】
2013068938.tif 000018
次の関数Ｊ（Ｗ）を目的関数とし、
【数１７】
2013068938.tif 000019
次の関数Ｑ（Ｗ、Ｖ）を補助関数とし、
【数１８】
2013068938.tif 000020
Ｖk（ω）を次の式により更新する処理と、
【数１９】
2013068938.tif 000021
ｗk（ω）を次の式により更新する処理と、
【数２０】
2013068938.tif 000022
をｋが１からＫまで順次繰り返すことによりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、ベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求めることが好ましい。
【００１７】
または、本発明に係る信号処理方法において、分離行列を求めるステップにおいて、補助関数を設定する一回の処理で、複数の原信号のうち二つの原信号に対応する、補助関数の補助変数を更新し、分離行列を更新する一回の処理で、二つの原信号に対応する、分離行列の成分を更新することが好ましい。
【００１８】
さらに、本発明に係る信号処理方法において、分離行列を求めるステップにおいて、複数の原信号の数をＫとし、複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応するベクトルをｙkとし、周波数帯域ωに対応する分離行列を次の行列Ｗ（ω）とし、
【数２１】
2013068938.tif 000023
次の関数Ｊ（Ｗ）を目的関数とし、
【数２２】
2013068938.tif 000024
次の関数Ｑ（Ｗ、Ｖ）を補助関数とし、
【数２３】
2013068938.tif 000025
Ｋ＝２である場合に、Ｖk（ω）をｋ＝１、２について次の式により更新する処理と、
【数２４】
2013068938.tif 000026
ｗk（ω）をｋ＝１、２について次の式により更新する処理と、
【数２５】
2013068938.tif 000027
によりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、ベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求めることが好ましい。
【００１９】
または、本発明に係る信号処理方法において、分離行列を求めるステップにおいて、複数の原信号の数をＫとし、複数の周波数帯域の分割数をＮとし、周波数帯域ωに対応する第１の周波数帯域信号をまとめた信号ベクトルをｘ（ω）とし、ｋ番目の原信号に対応するベクトルをｙkとし、周波数帯域ωに対応する分離行列を次の行列Ｗ（ω）とし、
【数２６】
2013068938.tif 000028
次の関数Ｊ（Ｗ）を目的関数とし、
【数２７】
2013068938.tif 000029
次の関数Ｑ（Ｗ、Ｖ）を補助関数とし、
【数２８】
2013068938.tif 000030
Ｖk（ω）をｋ＝ｍ、ｎ（１≦ｍ≦Ｋ、１≦ｎ≦Ｋ、ｍ≠ｎ）について次の式により更新する処理と、
【数２９】
2013068938.tif 000031
ｗk（ω）をｋ＝ｍ、ｎについて次の式により更新する処理と、
【数３０】
2013068938.tif 000032
によりＷ（ω）を更新し、当該Ｗ（ω）の更新を繰り返すことにより、ベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求めることが好ましい。
【００２０】
また、本発明に係るコンピュータプログラムは、複数の原信号の数と同数であって且つそれぞれが複数の原信号が混合されたものに基づく複数の第１の時系列信号を取得するステップと、複数の第１の時系列信号のそれぞれを周波数変換して複数の周波数帯域に分割することにより、複数の第１の時系列信号のそれぞれに対して複数の第１の周波数帯域信号を生成するステップと、第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号から、複数の原信号のそれぞれに対応付けられた複数の第２の周波数帯域信号を生成するための分離行列を複数の周波数帯域のそれぞれについて求めるステップと、第１の周波数帯域信号のうち同じ周波数帯域の全ての第１の周波数帯域信号及び同じ周波数帯域の分離行列を用いて複数の第２の周波数帯域信号を生成するステップと、複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号を逆周波数変換して第２の時系列信号を生成するステップと、第２の時系列信号を外部に出力するステップと、をコンピュータに実行させ、分離行列を求めるステップにおいて、複数の第２の周波数帯域信号のうち同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号をまとめたベクトルをパラメータとし、且つ関数値を低減させるほどベクトルのそれぞれが統計的に独立になる目的関数を設定し、複数の第１の周波数帯域信号及び各周波数帯域の分離行列の各成分をパラメータとし、現在の各周波数帯域の分離行列に対して目的関数と同じ関数値を取り、全ての各周波数帯域の分離行列に対して目的関数の関数値以上の関数値を取り、且つ関数値が最小となる各周波数帯域の分離行列を求めることが可能な補助関数を設定する処理と、補助関数の関数値が最小となる各周波数帯域の分離行列を求めて、当該各周波数帯域の分離行列により現在の各周波数帯域の分離行列を更新する処理と、を交互に繰り返すことによりベクトルのそれぞれが統計的により独立になる各周波数帯域の分離行列を求める。
【発明の効果】
【００２１】
本発明によれば、独立ベクトル分析を用いた信号処理において、信号を分離するための分離行列を安定して短時間に求めることが可能な信号処理装置、信号処理方法及びそのような信号処理方法をコンピュータに実行させるコンピュータプログラムを提供することができる。
【図面の簡単な説明】
【００２２】
【図１】本発明を適用した信号処理装置の概略構成図である。
【図２】マイクロフォンと音源の関係を説明するための模式図である。
【図３】信号処理装置による音声分離処理の動作を示すフローチャートである。
【図４】各信号の関係を説明するための模式図である。
【図５】自然勾配法と補助関数法の収束速度の差を表すグラフである。
【図６】自然勾配法と補助関数法の収束速度の差を表すグラフである。
【図７】音声分離処理の他の動作を示すフローチャートである。
【図８】自然勾配法と補助関数法の収束速度の差を表すグラフである。
【図９】音声分離処理のさらに他の動作を示すフローチャートである。
【発明を実施するための形態】
【００２３】
以下、本発明に係る信号処理装置、信号処理方法及びコンピュータプログラムについて図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【００２４】
図１は、本発明を適用した信号処理装置の概略構成を示す図である。図１に示すように、信号処理装置１は、信号入力部１１、インターフェース部１２、記憶部１３及び制御部２０を有する。以下、信号処理装置１の各部について詳細に説明する。
【００２５】
信号入力部１１は、複数の音源からの音声（以下、原信号と称する）をアナログの電気信号に変換して取り込む複数のマイクロフォンを有する。また、信号入力部１１は、各マイクロフォンが出力したアナログの電気信号をそれぞれデジタルの信号（以下、入力信号と称する）に変換し、各入力信号を記憶部１３に保存する。信号入力部１１は、制御部２０と接続されており、制御部２０により制御される。
【００２６】
図２は、信号処理装置１のマイクロフォンと音源の関係を説明するための模式図である。図２に示すように、信号処理装置１は、複数の音源２０１〜２０３からの原信号１〜３を複数のマイクロフォン２１１〜２１４から入力し、各マイクロフォンからの入力信号１〜４を優決定ブラインド音源分離技術を用いて音源毎に分離する。そのために、信号処理装置１のマイクロフォンの数は、音源の数以上とする。
【００２７】
インターフェース部１２は、例えばインターネット、電話回線網（携帯端末回線網、一般電話回線網を含む）、イントラネット等のネットワークを介して他のコンピュータ等に音声信号を送信する通信インターフェースであり、接続するネットワークの通信インターフェース回路を有する。また、インターフェース部１２は、例えばＵＳＢ等のシリアルバスに準じるインターフェース回路を有し、フラッシュメモリ等を接続し、そのフラッシュメモリ等に音声信号を格納するようにしてもよい。インターフェース部１２は、制御部２０と接続されており、制御部２０により制御される。
【００２８】
記憶部１３は、ＲＡＭ、ＲＯＭ等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、記憶部１３には、信号処理装置１の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。記憶部１３は、制御部２０と接続され、信号入力部１１を介して取得した音声信号を格納するとともに、制御部２０により音声信号についてなされた各種の演算結果を格納する。
【００２９】
制御部２０は、複数のマイクロフォンから取得した複数の音源からの音声信号を分離する。そのために、制御部２０は、音声取得部２１、周波数変換部２２、分離行列算出部２３、信号分離部２４及び逆周波数変換部２５を有する。また、制御部２０は、信号入力部１１、インターフェース部１２及び記憶部１３と接続され、信号入力部１１の音声入力制御、インターフェース部１２のデータ送受信制御、記憶部１３の制御等を行う。制御部２０は、予め記憶部１３に記憶されているプログラムに基づいて動作する。あるいは、制御部２０は、集積回路、マイクロプロセッサ、ファームウェア等で構成されてもよい。
【００３０】
図３は、信号処理装置１による音声分離処理の動作を示すフローチャートである。以下、図３に示したフローチャートを参照しつつ、音声分離処理の動作を説明する。なお、以下に説明する動作のフローは、予め記憶部１３に記憶されているプログラムに基づき主に制御部２０により信号処理装置１の各要素と協働して実行される。
【００３１】
最初に、信号入力部１１は、複数の音源からの音源信号を複数のマイクロフォンを介して取得し、各マイクロフォンが出力したアナログの電気信号をそれぞれデジタルの入力信号に変換し、各入力信号を記憶部１３に保存する（ステップＳ３０１）。
【００３２】
次に、信号取得部２１は、記憶部１３に保存された各入力信号を読み出し、マイクロフォンの数の入力信号を音源の数の信号に変換する（以下、音源の数の信号に変換した信号を第１の時系列信号と称する）（ステップＳ３０２）。
【００３３】
図４に信号処理装置１が処理する各信号の関係を説明するための模式図を示す。図４は、原信号の数が３であり、マイクロフォンの数が４である例を示す。この場合、信号入力部１１は、原信号１〜３に対し、入力信号１〜４を取得する。この場合、信号取得部２１は、入力信号１〜４を第１の時系列信号１〜３に変換する。
【００３４】
そのために、信号取得部２１は、例えば「EFFECT OF PCA FILTER IN BLIND SOURCE SEPARATION: Futoshi Asano, Yoichi Motomura, Hideki Asoh and Toshihiro Matsui」で提案されたＰＣＡ（principal component analysis）フィルタを用いて入力信号を第１の時系列信号に変換する。なお、音源の数とマイクロフォンの数が同数である場合、ステップＳ３０２の処理は省略される。
【００３５】
次に、周波数変換部２２は、第１の時系列信号（ステップＳ３０２の処理が省略された場合は入力信号）をそれぞれ周波数領域に変換して複数の周波数帯域に分割し、全ての第１の時系列信号に対してそれぞれ第１の周波数帯域信号を生成する（ステップＳ３０３）。
【００３６】
なお、周波数変換部２２は、短時間フーリエ変換（ＳＴＦＴ）を用いて各信号を周波数領域に変換し、第１の周波数帯域信号を生成する。あるいは、周波数変換部２２は、ウェーブレット変換等を用いて各信号を周波数領域へ変換し、第１の周波数帯域信号を生成してもよい。
【００３７】
図４に示すように、分割する周波数帯域の数、つまり分割する周波数帯域に対応する周波数ビンの数をＮとし、各周波数ビンの番号をω1〜ωNとすると、第１の時系列信号１は、第１の周波数帯域信号ｘ1（ω1）、ｘ1（ω2）、・・・、ｘ1（ωN）に変換される。同様に、第１の時系列信号２は、第１の周波数帯域信号ｘ2（ω1）、ｘ2（ω2）、・・・、ｘ2（ωN）に変換され、第１の時系列信号３は、第１の周波数帯域信号ｘ3（ω1）、ｘ3（ω2）、・・・、ｘ3（ωN）に変換される。
【００３８】
次に、分離行列算出部２３は、同じ周波数帯域の全ての第１の周波数帯域信号から、原信号の数と同数であり、且つそれぞれが各原信号に対応付けられた信号を生成するための分離行列を、各周波数帯域について算出する（ステップＳ３０４〜Ｓ３０８）。なお、以下、同じ周波数帯域の全ての第１の周波数帯域信号をまとめた信号ベクトルを観測信号と称し、分離行列により生成される、各原信号に対応付けられた信号を第２の周波数帯域信号と称し、同じ周波数帯域の全ての第２の周波数帯域信号をまとめた信号ベクトルを変換信号と称する。
【００３９】
図４に示すように、ω1に対応する観測信号ｘ（ω1）は、分離行列Ｗ（ω1）を用いて、第２の周波数帯域信号ｙ1（ω1）、ｙ2（ω1）、ｙ3（ω1）からなる変換信号ｙ（ω1）に変換される。同様に、ω2に対応する観測信号ｘ（ω2）は、分離行列Ｗ（ω2）を用いて、第２の周波数帯域信号ｙ1（ω2）、ｙ2（ω2）、ｙ3（ω2）からなる変換信号ｙ（ω2）に変換され、ωNに対応する観測信号ｘ（ωN）は、分離行列Ｗ（ωN）を用いて、第２の周波数帯域信号ｙ1（ωN）、ｙ2（ωN）、ｙ3（ωN）からなる変換信号ｙ（ωN）に変換される。
【００４０】
以下、分離行列の算出方法について説明する。なお、以下では、音源数をＫとし、ＳＴＦＴにより分割される周波数帯域の数をＮとする。周波数帯域ωにおける、多チャンネルの原信号ｓ（ω）、観測信号ｘ（ω）、変換信号ｙ（ω）は、それぞれ以下の式により表される。
【数３１】
2013068938.tif 000033
【数３２】
2013068938.tif 000034
【数３３】
2013068938.tif 000035
ここで、ｓk（ω）はｋ番目の音源からの周波数帯域ωにおける原信号であり、ｘk（ω）はｋ番目の音源に対応する周波数帯域ωにおける観測信号であり、ｙk（ω）はｋ番目の音源に対応する周波数帯域ωにおける変換信号である（１≦ｋ≦Ｋ、ω1≦ω≦ωN）。また、tは、ベクトル転置を表す。
【００４１】
畳み込み混合に対するブラインド音源分離の周波数領域アプローチでは、観測信号ｘ（ω）は、原信号ｓ（ω）から以下の式による線形混合モデルとして表される。
【数３４】
2013068938.tif 000036
また、変換信号ｙ（ω）は、観測信号ｘ（ω）から以下の式により推定される。
【数３５】
2013068938.tif 000037
ここで、Ａ（ω）は混合行列であり、Ｗ（ω）は以下の式による分離行列である。
【数３６】
2013068938.tif 000038
ここで、hは、エルミート転置を表す。ブラインド音源分離では、観測信号ｘ（ω）からどのようにしてこの分離行列を学習するかが精度よく分離を行うための鍵となる。
【００４２】
独立ベクトル分析においては、以下の式のように、同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号をまとめたベクトルｙkを考える。
【数３７】
2013068938.tif 000039
【００４３】
図４に示す例では、ベクトルｙ1は、第２の周波数帯域信号ｙ1（ω1）、ｙ1（ω2）、・・・、ｙ1（ωN）からなり、ベクトルｙ2は、第２の周波数帯域信号ｙ2（ω1）、ｙ2（ω2）、・・・、ｙ2（ωN）からなり、ベクトルｙ3は、第２の周波数帯域信号ｙ3（ω1）、ｙ3（ω2）、・・・、ｙ3（ωN）からなる。
【００４４】
そして、各ベクトルが統計的に独立となるように分離行列を学習することで、周波数帯域間の相関の高い信号をまとめ、パーミュテーション問題を回避している。なお、各ベクトルが統計的に独立となるような分離行列を求める問題は、以下の式による目的関数Ｊ（Ｗ）を最小化する問題に帰着することが知られている（非特許文献１〜３を参照）。
【数３８】
2013068938.tif 000040
ここで、Ｗは分離行列Ｗ（ω）のセット（ω1≦ω≦ωN）を表し、Ｅ［・］は期待値演算を表す。また、Ｇ（ｙk）はコントラスト関数と呼ばれる信号の独立性を測る関数であり、ｙkが従う確率密度分布ｐ（ｙk）と以下の式の関係を有する。
【数３９】
2013068938.tif 000041
【００４５】
独立ベクトル分析では、以下の式で表されるコントラスト関数が一般に用いられている（非特許文献１〜３を参照）。
【数４０】
2013068938.tif 000042
【数４１】
2013068938.tif 000043
ここで、‖・‖はベクトルのＬ2ノルムを表す。
【００４６】
従来、目的関数Ｊ（Ｗ）の最適化問題の解法として自然勾配法が用いられていたが、信号処理装置１では補助関数法を用いる。以下、補助関数法について説明する。補助関数法では目的関数Ｊ（Ｗ）の最適化問題は、以下の式を満たすパラメータθ＝θ*を見つけることに帰着する。
【数４２】
2013068938.tif 000044
目的関数Ｊ（θ）の微分値が０となるθをみつけることができれば、そのθをθ*とすることができるが、目的関数Ｊ（θ）が非線形であること等により、必ずしも微分値が０となるθをみつけることはできない。
【００４７】
そこで、補助関数法では、目的関数Ｊ（θ）に対して以下の式を満たすような補助関数Ｑ（θ、φ）を設計する。
【数４３】
2013068938.tif 000045
ここで、φは補助変数と呼ばれる変数である。補助関数法では、目的関数Ｊ（θ）を直接最小化する代わりに、補助関数Ｑ（θ、φ）を用いて変数θ、φを交互に反復的に更新する。
【数４４】
2013068938.tif 000046
【数４５】
2013068938.tif 000047
ここで、ｉは繰り返し回数である。この更新において目的関数Ｊ（θ）は単調減少するため、この更新を繰り返すことにより、目的関数Ｊ（θ）を極小とする変数θを求めることができる。
【００４８】
従って、式（１２）を解析的に解くことができない場合でも、式（１４）、（１５）が解析的に解けるような式（１３）を満たす補助関数を設計できる場合には、補助関数法により効果的な学習則が得られる。しかしながら、補助関数の設計の可否は目的関数に依存するので、補助関数法の原理が既知であっても独立ベクトル分析に適用可能な補助関数を容易に設計できるものではない。これまで、独立ベクトル分析に補助関数を適用することは行われておらず、独立ベクトル分析に適用可能な補助関数は知られていない。
【００４９】
以下に、独立ベクトル分析に適用可能な補助関数について説明する。ベクトル確率変数ｚのベクトル値関数Ｇ（ｚ）のセットＳGを以下の式により定義する。
【数４６】
2013068938.tif 000048
ここで、ＧR（ｒ）は実変数ｒの関数であり、ｒ＞０でＧR（ｒ）は連続かつ微分可能であり、Ｇ’R（ｒ）／ｒは連続で単調減少であるものとする。
【００５０】
ＧR（ｒ）の条件は、ｙkが従う確率密度分布に係る優ガウス性から導かれる。なお、以下の式のような球対称なコントラスト関数により、観測信号を高精度に分離できることが知られている（非特許文献１〜３を参照）。
【数４７】
2013068938.tif 000049
【数４８】
2013068938.tif 000050
ここで、ｒ＝‖ｚ‖2であり、Ｃ、ｍは正の定数である。
【００５１】
ｒ＝‖ｚ‖2とし、以下の式を考えると、
【数４９】
2013068938.tif 000051
Ｆ（ｒ）を微分することにより、以下の式が導かれる。
【数５０】
2013068938.tif 000052
ここで、ＧR’（ｒ）／ｒはｒ＞０で単調減少であり、Ｆ’（ｒ0）＝０である。また、Ｆ（ｒ）が連続であり、Ｆ（ｒ0）＝０あるので、Ｆ（ｒ）はｒ＝ｒ0で最小値をもつ。
【００５２】
従って、式（１６）で定義される任意のＧ（ｚ）について、任意のｚ及びｒ0に対して以下の式が成り立つ。
【数５１】
2013068938.tif 000053
等号は、ｒ0＝‖ｚ‖2のときにのみ成り立つ。
【００５３】
Ｅ［Ｇ（ｙk）］に式（２１）を適用することで、以下の式が成り立つ。
【数５２】
2013068938.tif 000054
ここで、Ｖk（ω）は、
【数５３】
2013068938.tif 000055
であり、Ｒkは任意のωに対してｗk（ω）に依存しない定数である。なお、等号は、ｒk＝‖ｙk‖2のときにのみ成り立つ。
【００５４】
ここで、式（１６）で定義される任意のＧ（ｚ）に対して、以下のＱ（Ｗ、Ｖ）を定義する。
【数５４】
2013068938.tif 000056
【数５５】
2013068938.tif 000057
ここで、ｒkは正値の確率変数を表し、Ｖ（ω）はＶk（ω）のセット（１≦ｋ≦Ｋ）を表し、Ｖは任意のｋ、ωに対するＶk（ω）のセット（１≦ｋ≦Ｋ、ω1≦ω≦ωN）を表し、ＲはＷに依存しない（ただしｒkには依存する）定数を表す。このとき、式（２２）を全てのｋについて合計して整理することにより、任意のＷ、Ｖに対して、以下の式が成り立つ。
【数５６】
2013068938.tif 000058
等号は、以下のときにのみ成り立つ。
【数５７】
2013068938.tif 000059
つまり、Ｑ（Ｗ、Ｖ）は、現在の各周波数帯域の分離行列に対して目的関数Ｊ（Ｗ）と同じ関数値を取り、全ての各周波数帯域の分離行列に対して目的関数の関数値以上の関数値を取る。従って、目的関数Ｊ（Ｗ）について、Ｑ（Ｗ、Ｖ）を補助関数（補助変数はＶ）とすることができる。
【００５５】
補助関数法の原理に基づき、変数Ｗ、Ｖを交互に更新しながら補助関数Ｑ（Ｗ、Ｖ）を減少させることにより、目的関数Ｊ（Ｗ）を単調減少させることができる。従って、更新規則は、変数Ｗ、Ｖを交互に更新することにより得られる。式（２６）より、補助変数Ｖについての補助関数Ｑの最小化は単に式（２７）を式（２３）に適用すればよい。
【００５６】
以下、分離行列Ｗについての補助関数Ｑの最小化について説明する。式（２４）で定義された補助関数は各周波数毎に算出された値の総和により得られるので、式（２４）、（２５）について以下の式を解くことにより（*は、複素共役である）、
【数５８】
2013068938.tif 000060
以下の式が得られる。
【数５９】
2013068938.tif 000061
式（２９）を以下の行列式を用いて整理すると、
【数６０】
2013068938.tif 000062
以下の連立ベクトル方程式が得られる。
【数６１】
2013068938.tif 000063
ここで、δlkはクロネッカーのデルタである。これは、「A. Yeredor, “On Hybrid Exact-Approximate Joint Diaginalization,”Proc. CAMSAP, pp. 312-315, 2009.」に記載された、Hybrid Exact-Approximate Joint Diagonalization（ＨＥＡＤ）問題と同じ問題であり、全てのｗk（ω）を同時に更新するための閉形式の解は現時点では未解決である。
【００５７】
そこで、全てのｗk（ω）を同時に更新する代わりに、一つのｗk（ω）のみを更新し、他のｗl（ｌ≠ｋ）を固定することを考える。この場合、問題は以下のように解決することができる。
【数６２】
2013068938.tif 000064
【数６３】
2013068938.tif 000065
【００５８】
この式（３２）、（３３）は、それぞれｗk（ω）のスケール及び方向を定める。式（３３）に、以下のダミーの式（ａは任意のベクトル）を加えることにより、
【数６４】
2013068938.tif 000066
ｗk（ω）の方向は、以下の式から得ることができる。
【数６５】
2013068938.tif 000067
任意のベクトルａを前回の反復で得られたｗk（ω）に置き換えることにより、ｗk（ω）の方向の更新は単に以下の式とすることができる。
【数６６】
2013068938.tif 000068
ここで、ｅkは、ｋ番目の要素が１である単位ベクトルである。そして、最後に、式（３２）を満たすように正規化が実施される。なお、これらの演算は、全てのｋに対して、連続かつ反復して適用される。
【００５９】
つまり、補助関数Ｑ（Ｗ、Ｖ）について、その関数値が最小となる各周波数帯域の分離行列を求めることができる。
【００６０】
従って、分離行列算出部２３は、まず、各第１の周波数帯域信号に基づいて、分離行列を用いて生成されたベクトルｙkをパラメータとする式（８）の目的関数Ｊ（Ｗ）を設定する（ステップＳ３０４）。
【００６１】
以下のステップＳ３０５、Ｓ３０６の処理は、ｋが１からＫまで順次行われる。つまり、まずｋ＝１についてステップＳ３０５、Ｓ３０６が行われ、続いてｋをインクリメントしながらステップＳ３０５、Ｓ３０６が行われ、最後にｋ＝ＫについてステップＳ３０５、Ｓ３０６が行われる。なお、分離行列の初期値は、例えば単位行列とすることができる。
【００６２】
分離行列算出部２３は、第１の周波数帯域信号及び各周波数帯域の分離行列の各成分をパラメータとする式（２４）、（２５）の補助関数を更新する（ステップＳ３０５）。分離行列算出部２３は、全てのωに対して重み付き共分散行列Ｖk（ω）を以下の式により更新し、更新したＶk（ω）を用いて式（２４）、（２５）の補助関数を更新する。
【数６７】
2013068938.tif 000069
【数６８】
2013068938.tif 000070
なお、式（３７）に示すように、ｒkは全てのωに対して共通となる。
【００６３】
次に、分離行列算出部２３は、補助関数Ｑ（Ｗ、Ｖ）の関数値が最小となる各周波数帯域の分離行列Ｗ（ω）を求めて、その各周波数帯域の分離行列Ｗ（ω）により現在の各周波数帯域の分離行列を更新する（ステップＳ３０６）。分離行列算出部２３は、全てのωに対して分離行列Ｗの各行ベクトルｗk（ω）を以下の式により更新する。
【数６９】
2013068938.tif 000071
さらに、分離行列算出部２３は、更新した各行ベクトルｗk（ω）を以下の式により正規化する。
【数７０】
2013068938.tif 000072
【００６４】
次に、分離行列算出部２３は、全てのｋについて、つまりｋが１からＫまでＶk（ω）及びｗk（ω）を更新したか否かを判定する（ステップＳ３０７）。分離行列算出部２３は、全てのｋについて、Ｖk（ω）及びｗk（ω）を更新していない場合、ｋをインクリメントして、ステップＳ３０５、Ｓ３０６の処理を繰り返す。なお、２回目以降のステップＳ３０５、Ｓ３０６の処理では、更新されたＶk（ω）及びｗk（ω）を用いて、新たなＶk（ω）及びｗk（ω）が算出される。
【００６５】
一方、全てのｋについてＶk（ω）及びｗk（ω）を更新すると、分離行列算出部２３は、分離行列Ｗ（ω）が収束したか否かを判定する（ステップＳ３０８）。分離行列算出部２３は、各周波数帯域の分離行列Ｗ（ω）の全ての要素の更新による値の変化が所定回数連続して所定値以下である場合に、分離行列Ｗ（ω）が収束したと判定する。
【００６６】
分離行列算出部２３は、分離行列Ｗ（ω）が収束していない場合、ステップＳ３０５〜Ｓ３０７の処理を繰り返し、分離行列Ｗ（ω）が収束すると、ステップＳ３０９へ移行する。
【００６７】
なお、分離行列算出部２３は、分離行列Ｗ（ω）が収束したか否かを判定するのではなく、更新処理を所定回数行ったか否かを判定してもよい。その場合、分離行列算出部２３は、更新処理を所定回数行うまでステップＳ３０５〜Ｓ３０７の処理を繰り返し、所定回数行ったときにステップＳ３０９へ移行する。
【００６８】
ステップＳ３０９において、信号変換部２４は、同じ周波数帯域の全ての第１の周波数帯域信号から、その周波数帯域の分離行列Ｗ（ω）を用いて第２の周波数帯域信号を生成し、変換信号を生成する。信号変換部２４は、全ての周波数帯域について、第２の周波数帯域信号を生成し、変換信号を生成する（ステップＳ３０９）。なお、信号変換部２４は、式（５）により各観測信号ｘ（ω）を各変換信号ｙ（ω）に変換する。
【００６９】
次に、逆周波数変換部２５は、同じ原信号に対応付けられた全ての周波数帯域の第２の周波数帯域信号を時間領域に変換して第２の時系列信号を生成する（ステップＳ３１０）。
【００７０】
なお、逆周波数変換部２５は、周波数変換部２２が行った周波数変換の逆変換を行う。例えば、周波数変換部２２が短時間フーリエ変換を用いて周波数変換を行っている場合は逆短時間フーリエ変換により逆変換を行う。
【００７１】
図４に示す例では、第２の周波数帯域信号ｙ1（ω1）、ｙ1（ω2）、・・・、ｙ1（ωN）から第２の時系列信号１が生成され、第２の周波数帯域信号ｙ2（ω1）、ｙ2（ω2）、・・・、ｙ2（ωN）から第２の時系列信号２が生成され、第２の周波数帯域信号ｙ3（ω1）、ｙ3（ω2）、・・・、ｙ3（ωN）から第２の時系列信号３が生成される。つまり、各第２の時系列信号は、各原信号、つまり各音源に対応して生成される。
【００７２】
次に、制御部２０は、各音源に対応して生成された第２の時系列信号をインターフェース部１２を介して外部の装置に出力する（ステップＳ３１１）。第２の時系列信号は音源毎に分離されているため、音源毎に雑音の除去、目的音声の強調等を実施できる。そのため、外部の装置で音声認識処理を行う場合は認識精度を向上させることが可能となり、音声通信を行う場合は音声品質を向上させることが可能となる。また、入力音声が複数の楽器による音楽である場合には、楽器毎に音声を分離することも可能となる。なお、これらの処理は、外部の装置で実施するのではなく、信号処理装置１が実施してもよい。
【００７３】
以上詳述したように、図３に示したフローチャートに従って動作することによって、信号処理装置１は、独立ベクトル分析の目的関数を補助関数法を用いた学習則に基づいて単調減少させることにより分離行列を算出することができるようになった。これにより、信号処理装置１は、独立ベクトル分析を用いた信号処理において、分離行列を安定して短時間に求めることができるようになった。また、自然勾配法を用いる場合のように、ステップサイズ等のパラメータのチューニングを行う必要もなくなった。
【００７４】
図５は、音源数及びマイクロフォン数が２の場合の、独立ベクトル分析の目的関数を補助関数法により減少させたときの収束速度と、自然勾配法により減少させたときの収束速度とを比較するグラフを示す。図５に示すグラフ５００では、縦軸は「Bingham, E., Hyv¨arinen, A.: A Fast Fixed-Point Algorithm for Independent Component Analysis of Complex Valued Signals. International Journal of Neural Systems 10(1), 1-8 (2000)」で提案された歪みの尺度であるＳＩＲ（source-to-interferences Ratio）を示し、横軸は反復回数を示す。グラフ５０１は補助関数法によるＳＩＲを示し、グラフ５０２は自然勾配法（ステップサイズμ＝０．１）によるＳＩＲを示し、グラフ５０３は自然勾配法（μ＝０．２）によるＳＩＲを示し、グラフ５０４は自然勾配法（μ＝０．３）によるＳＩＲを示す。
【００７５】
図５に示す例では、音源信号にＡＴＲ−Ｐｒｏｍｏｔｉｏｎｓ社の日本語音声データベース（Ｓｅｔ  Ｂ）を用い、インパルス応答に自律学習機能ＭＲＩ研究室のＲＷＣＰ実環境音声・音響データベースに収録されたものを用い、それぞれ１６ｋＨｚにダウンサンプリングした後に畳み込み、シミュレーションにより混合した信号を入力信号としている。信号長は１０秒である。用いたインパルス応答が収録された部屋の残響時間は３００ｍｓ、マイクロフォン間隔は２．８３ｃｍ、音源とマイクロフォンの距離は２ｍである。音源方向は１０度から１７０度まで２０度間隔に収録されており、その中から２つの音源信号、２つの音源方向をランダムに選択した２０条件について測定を行っている。
【００７６】
また、図５に示す例では、時間周波数分解には、フレーム長２０４８点、フレームシフト１０２４点のｈａｍｍｉｎｇ窓関数を用いた短時間フーリエ変換を用いている。コントラスト関数としてＧ（ｙk）＝ＧR（ｒk）＝ｒkを用い、分離行列の初期値は単位行列としている。更新された分離行列に「Murata, N., Ikeda, S., Ziehe, A.: An Approach to Blind Source Separation Based on Temporal Structure of Speech Signals. Neurocomputing 41(1-4), 1-24 (2001)」で提案されたＰｒｏｊｅｃｔｉｏｎ  ｂａｃｋを適用した後、逆短時間フーリエ変換によって復元信号を求めている。
【００７７】
グラフ５０２、５０３に示すように、自然勾配法では、μ＝０．２の場合、μ＝０．１の場合よりも速く収束するが、グラフ５０４に示すように、μ＝０．３の場合には７０〜８０回目の反復において解が発散して解が求まらない状態が発生した。このように、自然勾配法では収束速度と安定性のトレードオフがあり、ステップサイズのチューニングが難しい。一方、補助関数法では、グラフ５０１に示すように、１０回程度の反復で高いＳＩＲが得られ、自然勾配法より速くＳＩＲが収束している。
【００７８】
なお、測定は、２．６６ＧＨｚのＣＰＵをもつノートＰＣ上で、Ｍａｔｌａｂ  ｖｅｒ．７．１２（Ｒ２０１１ａ）を用いて行った。このときの１反復あたりの平均計算時間は、補助関数法では０．１５秒であり、自然勾配法では０．１０秒であるが、収束までに要する総計算時間は、補助関数法の方が自然勾配法よりはるかに短いことがわかる。
【００７９】
図６は、音源数及びマイクロフォン数が３の場合の、独立ベクトル分析の目的関数を、補助関数法により減少させたときの収束速度と、自然勾配法により減少させたときの収束速度とを比較するグラフを示す。図６に示すグラフ６００では、縦軸はＳＩＲを示し、横軸は反復回数を示す。グラフ６０１は補助関数法によるＳＩＲを示し、グラフ６０２は自然勾配法（μ＝０．１）によるＳＩＲを示し、グラフ６０３は自然勾配法（μ＝０．２）によるＳＩＲを示す。なお、音源数及びマイクロフォン数以外の測定条件は、図５に示すグラフ５００の測定条件と同じである。
【００８０】
グラフ６０２、６０３に示すように、自然勾配法では、μ＝０．２の場合、μ＝０．１の場合よりも速く収束するが、μ＝０．３の場合には１〜１０回目の反復において解が発散して解が求まらない状態が発生した。一方、補助関数法では、グラフ６０１に示すように、１０回程度の反復で高いＳＩＲが得られ、この場合も、自然勾配法より速くＳＩＲが収束している。
【００８１】
この場合の１反復あたりの平均計算時間は、補助関数法では０．３４秒であり、自然勾配法では０．１６秒であるが、収束までに要する総計算時間は、補助関数法の方が自然勾配法よりはるかに短いことがわかる。
【００８２】
図７は、音声分離処理の他の動作を示すフローチャートである。
【００８３】
このフローチャートは、信号処理装置１において、前述した図３に示すフローチャートの代りに実行することが可能である。図７に示すフローチャートは、原信号が二つである場合に利用可能であり、図７に示すフローチャートでは、図３に示すフローチャートと異なり、分離行列算出部２３は、補助関数の更新と、分離行列の更新とをｋ＝１、２についてまとめて実行する。図７に示すステップＳ７０１〜Ｓ７０４、Ｓ７０８〜Ｓ７１０の処理は、図６に示すステップＳ３０１〜Ｓ３０４、Ｓ３０９〜Ｓ３１１の処理と同じであるため、説明を省略し、以下では、ステップＳ７０５〜Ｓ７０７の処理についてのみ説明する。
【００８４】
原信号の数Ｋが２である場合、式（３１）は、以下のように表される。
【数７１】
2013068938.tif 000073
【数７２】
2013068938.tif 000074
式（４１）、（４２）において、変数ωは単純化のために省略している。この場合、閉形式の解が得られることが知られている。
【００８５】
式（４２）は、Ｖ1ｗ1とＶ2ｗ1の両方がｗ2と直交することを示している。ｗ2と直交する方向は二次元空間において一意に定められるので、Ｖ1ｗ1とＶ2ｗ1は平行である。同様に、Ｖ1ｗ2とＶ2ｗ2は平行である。したがって、ｗ1とｗ2は、以下のように一般化固有値問題から算出することができる。
【数７３】
2013068938.tif 000075
ここで、λ1≧λ2と定義する。式（４３）の両辺の左側からｅkhをかけると、以下の式が得られる。
【数７４】
2013068938.tif 000076
したがって、λkは以下の式で表される。
【数７５】
2013068938.tif 000077
Ｖ1及びＶ2は重み付き共分散行列であるので、正の定値行列と仮定することができる。Ｖ1及びＶ2を正の定値行列とすると、λkは正の実数となる。
【００８６】
式（４１）を考慮すると、ｗ1及びｗ2として以下の二つの解が算出される。
【数７６】
2013068938.tif 000078
【数７７】
2013068938.tif 000079
【００８７】
式（４６）及び式（４７）は、何れも以下の式を表している。
【数７８】
2013068938.tif 000080
したがって、式（２５）においてｄｅｔの項のみを考慮すると、以下のようになる。ここで、λ1≧λ2であるので、式（４６）が式（２５）を最小化する解となる。
【数７９】
2013068938.tif 000081
【００８８】
ステップＳ７０５において、分離行列算出部２３は、二つの原信号について、式（２４）、（２５）の補助関数を更新する。分離行列算出部２３は、全てのωに対して重み付き共分散行列Ｖk（ω）（ｋ＝１、２）を式（３７）、（３８）により更新し、更新したＶ1（ω）、Ｖ2（ω）を用いて式（２４）、（２５）の補助関数を更新する。
【００８９】
次に、分離行列算出部２３は、補助関数Ｑ（Ｗ、Ｖ）の関数値が最小となる各周波数帯域の分離行列Ｗ（ω）を求めて、その各周波数帯域の分離行列Ｗ（ω）により現在の各周波数帯域の分離行列を更新する（ステップＳ７０６）。
【００９０】
分離行列算出部２３は、全てのωに対して分離行列Ｗの各行ベクトルｗk（ω）を以下のように更新する。最初に、分離行列算出部２３は、以下の式により、Ｈ（ω）を算出する。
【数８０】
2013068938.tif 000082
次に、分離行列算出部２３は、以下の式を満たすＨ（ω）の二つの固有ベクトルｅ1（ω）及びｅ2（ω）を、ｅ1（ω）の固有値がｅ2（ω）の固有値以上となるように求める。なお、式（５１）は、式（４３）の両辺に左側からＶ1-1（ω）をかけることにより得られる。
【数８１】
2013068938.tif 000083
次に、分離行列算出部２３は、式（４６）により、ｗ1（ω）及びｗ2（ω）を算出する。
【００９１】
次に、分離行列算出部２３は、分離行列Ｗ（ω）が収束したか否かを判定し（ステップＳ７０７）、分離行列Ｗ（ω）が収束していない場合、ステップＳ７０５〜Ｓ７０６の処理を繰り返し、分離行列Ｗ（ω）が収束すると、ステップＳ７０８へ移行する。
【００９２】
なお、式（４３）のλk（ｋ＝１、２）は、以下の式の解である。
【数８２】
2013068938.tif 000084
ここで、ｔｒは、行列のトレースを示す。λkは、以下の式で表される。
【数８３】
2013068938.tif 000085
ここで、ルート部分は、その実数部が非負であるように定義される。
【００９３】
上述したように、λ1及びλ2は正の実数であるので、λ1＋λ2とλ1−λ2は両方とも実数である。つまり、式（５３）のルート部分は実数であり、定義により非負である。したがって、λ1及びλ2は、λ1≧λ2となるように、以下の式で表される。
【数８４】
2013068938.tif 000086
【数８５】
2013068938.tif 000087
【００９４】
二つの固有値は、以下の式によって算出することができる。
【数８６】
2013068938.tif 000088
ここで、Ｈijは、Ｈのｉｊ番目の成分である。
【００９５】
以上詳述したように、図７に示したフローチャートに従って動作することによって、信号処理装置１は、原信号が二つである場合に、独立ベクトル分析を用いた信号処理において、分離行列を安定して短時間に求めることができるようになった。
【００９６】
図８は、音源数及びマイクロフォン数が２の場合の、独立ベクトル分析の目的関数を補助関数法により減少させたときの収束速度と、自然勾配法により減少させたときの収束速度とを比較するグラフを示す。図８に示すグラフ８００では、縦軸はＳＩＲを示し、横軸は反復回数を示す。グラフ８０１は図７のフローチャートの音声分離処理によるＳＩＲを示し、グラフ８０２は図３のフローチャートの音声分離処理によるＳＩＲを示し、グラフ８０３は自然勾配法（ステップサイズμ＝０．１）によるＳＩＲを示し、グラフ８０４は自然勾配法（μ＝０．２）によるＳＩＲを示し、グラフ８０５は自然勾配法（μ＝０．３）によるＳＩＲを示す。
【００９７】
図８に示す例では、自律学習機能ＭＲＩ研究室のＲＷＣＰ実環境音声・音響データベースに記録された９方向からのインパルス応答を用いている。また、音源信号にＡＴＲ−Ｐｒｏｍｏｔｉｏｎｓ社の日本語音声データベース（Ｓｅｔ  Ｂ）の９つの会話を用い、それぞれ９方向に割り当て、１６ｋＨｚにダウンサンプリングした後に畳み込み、全てのペアの組合せ（9Ｃ8＝３６通り）で混合した信号をそれぞれ入力信号としている。信号長は１０秒である。用いたインパルス応答が収録された部屋の残響時間は３００ｍｓ、マイクロフォン間隔は２．８３ｃｍ、音源とマイクロフォンの距離は２ｍである。音源方向は１０度から１７０度まで２０度間隔に収録されている。
【００９８】
また、図８に示す例では、時間周波数分解には、フレーム長４０９６点、フレームシフト２０４８点のｈａｍｍｉｎｇ窓関数を用いた短時間フーリエ変換を用いている。コントラスト関数としてＧ（ｙk）＝ＧR（ｒk）＝ｒkを用い、分離行列の初期値は単位行列としている。更新された分離行列にＰｒｏｊｅｃｔｉｏｎ  ｂａｃｋを適用した後、逆短時間フーリエ変換によって復元信号を求めている。図８では、最初の５回の反復及び１０回反復する毎に全音源及び全試行についてのＳＩＲの平均が求められている。
【００９９】
グラフ８０１、８０２に示すように、補助関数法では、１０回程度の反復で高いＳＩＲが得られ、自然勾配法より速くＳＩＲが収束している。特に、図７のフローチャートの音声分離処理を行った場合、図３のフローチャートの音声分離処理を行った場合より更に速くＳＩＲは収束しており、分離性能がより高いことを表している。
【０１００】
なお、測定は、Ｉｎｔｅｌ  Ｃｏｒｅ  ｉ７−２６２０Ｍ  ２．７０ＧＨｚをもつノートＰＣ上で、Ｍａｔｌａｂ  ｖｅｒ．７．１３（Ｒ２０１１ｂ）を用いて行った。このときの１反復あたりの平均計算時間は、図７のフローチャートの音声分離処理では０．１４秒であり、図３のフローチャートの音声分離処理では０．１４秒であり、自然勾配法では０．０７５秒であるが、収束までに要する総計算時間は、補助関数法の方が自然勾配法よりはるかに短いことがわかる。
【０１０１】
図９は、音声分離処理のさらに他の動作を示すフローチャートである。
【０１０２】
このフローチャートは、信号処理装置１において、前述した図３に示すフローチャートの代りに実行することが可能である。なお、図７に示したフローチャートは、原信号が二つ以上である場合に利用可能であったが、図９に示すフローチャートは、原信号が二つ以上である場合に利用可能である。図９に示すフローチャートでは、図３に示すフローチャートと異なり、分離行列算出部２３は、補助関数の更新と、分離行列の更新とを二つの原信号ずつまとめて実行する。図９に示すステップＳ９０１〜Ｓ９０４、Ｓ９０８〜Ｓ９１０の処理は、図６に示すステップＳ３０１〜Ｓ３０４、Ｓ３０９〜Ｓ３１１の処理と同じであるため、説明を省略し、以下では、ステップＳ９０５〜Ｓ９０７の処理についてのみ説明する。
【０１０３】
補助関数法では分離行列を更新するために、式（３１）の連立ベクトル方程式を解く必要がある。上述したように、式（３１）は、原信号の数Ｋが２である場合に一般化固有値問題で解けることを利用すると、Ｋが２より大きい場合でも、ｋ＝ｍ、ｋ＝ｎ（ただしｍ≠ｎ）以外のｗk（ω）を固定して、ｗm（ω）、ｗn（ω）の二つずつを更新することができる。
【０１０４】
式（３１）を、ｋ＝ｍ、ｋ＝ｎについて連立させると、２Ｋ個の方程式が得られる。ｋ＝ｍ、ｋ＝ｎ（ただしｍ≠ｎ）以外のｗk（ω）を固定して、ｗm（ω）、ｗn（ω）を求める場合、未知数は２Ｋ個である。
【０１０５】
式（３１）のうち、ｋ＝ｍで、ｌ＝ｍ、ｌ＝ｎを除いたＫ−２個の方程式より、ｗm（ω）は、Ｖm（ω）ｗl（ω）（ただしｌ≠ｍ、ｌ≠ｎ）と直交している。同様に、ｗn（ω）は、Ｖn（ω）ｗl（ω）（ただしｌ≠ｍ、ｌ≠ｎ）と直交している。したがって、以下の式が成立する。
【数８７】
2013068938.tif 000089
ここで、ｉm、ｉnは、それぞれ第ｍ成分、第ｎ成分のみが１で、他の成分は０である単位ベクトルである。また、Ｗ（ω）に含まれているｗm（ω）、ｗn（ω）は、更新前のベクトルであり、定数として扱われる。
【０１０６】
式（５７）を変形することにより、以下の式が得られる。
【数８８】
2013068938.tif 000090
ここで、
【数８９】
2013068938.tif 000091
である。
【０１０７】
したがって、ｈm（ω）、ｈn（ω）が求まれば、以下の式により、ｗm（ω）、ｗn（ω）が求められる。
【数９０】
2013068938.tif 000092
【０１０８】
式（３１）のうち、ｋ＝ｍでｌ＝ｍ、ｌ＝ｎの方程式と、ｋ＝ｎでｌ＝ｍ、ｌ＝ｎの方程式
【数９１】
2013068938.tif 000093
に、式（６０）を代入することにより、以下の式が得られる。
【数９２】
2013068938.tif 000094
ここで、
【数９３】
2013068938.tif 000095
である。
【０１０９】
式（６２）は、Ｋ＝２の場合の式（４１）、（４２）と同型であり、Ｋ＞２の場合もＫ＝２の場合と同様に、閉形式の解が得られる。
【０１１０】
ステップＳ９０５において、分離行列算出部２３は、Ｋ個の原信号のうち二つの原信号について、式（２４）、（２５）の補助関数を更新する。分離行列算出部２３は、全てのωに対して重み付き共分散行列Ｖk（ω）（ｋ＝ｍ、ｎ）を式（３７）、（３８）により更新し、更新したＶm（ω）、Ｖn（ω）を用いて式（２４）、（２５）の補助関数を更新する。
【０１１１】
次に、分離行列算出部２３は、補助関数Ｑ（Ｗ、Ｖ）の関数値が最小となる各周波数帯域の分離行列Ｗ（ω）を求めて、その各周波数帯域の分離行列Ｗ（ω）により現在の各周波数帯域の分離行列を更新する（ステップＳ９０６）。
【０１１２】
分離行列算出部２３は、全てのωに対して分離行列Ｗの各行ベクトルｗk（ω）を以下のように更新する。最初に、分離行列算出部２３は、式（６３）により、Ｕm（ω）、Ｕn（ω）を算出する。次に、分離行列算出部２３は、以下の式により、Ｈ（ω）を算出する。
【数９４】
2013068938.tif 000096
次に、分離行列算出部２３は、以下の式を満たすＨ（ω）の二つの固有ベクトルｈm（ω）及びｈn（ω）を、ｈm（ω）の固有値がｈn（ω）の固有値以上となるように求める。
【数９５】
2013068938.tif 000097
次に、分離行列算出部２３は、式（６０）により、ｗm（ω）及びｗn（ω）を算出する。さらに、分離行列算出部２３は、ｗm（ω）及びｗn（ω）を以下の式により正規化する。
【数９６】
2013068938.tif 000098
【０１１３】
次に、分離行列算出部２３は、分離行列Ｗ（ω）が収束したか否かを判定し（ステップＳ９０７）、分離行列Ｗ（ω）が収束していない場合、ステップＳ９０５〜Ｓ９０６の処理を繰り返し、分離行列Ｗ（ω）が収束すると、ステップＳ９０８へ移行する。なお、ステップＳ９０５〜Ｓ９０６の処理は、各原信号について均等に実行するようにし、実行する順序は任意でよい。例えば、原信号が５つである場合、最初にｋ＝１、２について処理し、次にｋ＝３、４について処理し、次にｋ＝５、１について処理し、次にｋ＝２、３について処理し、次にｋ＝４、５について処理し…という順序でステップＳ９０５〜Ｓ９０６の処理を実行することができる。
【０１１４】
式（６３）に示すＶm（ω）、Ｖn（ω）はＫ×Ｋの行列であり、Ｕm（ω）、Ｕn（ω）は２×２の行列である。つまり、ｋ＝ｍ、ｎについて分離行列が更新された場合、ｋ＝ｍの原信号とｋ＝ｎの原信号の関係においてのみ、統計的に独立になるように分離行列が更新されるのではない。この場合、ｋ＝ｍの原信号は、ｋ＝ｎの原信号との関係のみでなく、ｋ≠ｍの全ての原信号に対して統計的に独立になるように分離行列が更新され、ｋ＝ｎの原信号は、ｋ＝ｍの原信号との関係のみでなく、ｋ≠ｎの全ての原信号に対して統計的に独立になるように分離行列が更新される。したがって、ステップＳ９０５〜Ｓ９０６の処理を実行するペアについて、全ての組合せを網羅するように組み合わせる必要がなく、効率良く分離行列を更新することができる。
【０１１５】
以上詳述したように、図９に示したフローチャートに従って動作することによって、信号処理装置１は、原信号が二つ以上である場合に、独立ベクトル分析を用いた信号処理において、分離行列を安定してより短時間に求めることができるようになった。
【０１１６】
以上、本発明の好適な実施形態について説明してきたが、本発明はこれらの実施形態に限定されるものではない。例えば、信号処理装置１が分離する信号は、音声信号に限定されず、画像信号、脳波等の生体信号等であってもよい。その場合、信号入力部１１は、複数の信号が混合された画像信号、生体信号を取得する。制御部２０は、音声信号の場合と同様に、画像信号、生体信号について、独立ベクトル分析の目的関数を、補助関数法を用いた学習則に基づいて低減させることにより分離行列を算出する。
【符号の説明】
【０１１７】
１    信号処理装置
１１    信号入力部
１２    インターフェース部
１３    記憶部
２０    制御部
２１    信号取得部
２２    周波数変換部
２３    分離行列算出部
２４    信号変換部
２５    逆周波数変換部
【図１】
2013068938.tif 000129
【図２】
2013068938.tif 000130
【図３】
2013068938.tif 000131
【図４】
2013068938.tif 000132
【図５】
2013068938.tif 000133
【図６】
2013068938.tif 000134
【図７】
2013068938.tif 000135
【図８】
2013068938.tif 000136
【図９】
2013068938.tif 000137