(57)【要約】【課題】対象信号と干渉信号との混合信号から、高精度に信号分離処理を行うことができる信号分離装置を提供する。【解決手段】信号分離装置が、対象信号と干渉信号の混合信号である入力信号から計算した時間周波数成分配列と、推定した各ソース信号毎の時間周波数振幅成分配列とに基づいて、各短時間フレームにおける時間周波数領域でのWienerフィルタである従来Wienerフィルタの出力信号パラメータを計算し、対象信号を推定するための時間周波数領域の信号パラメータである分離信号パラメータを、逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列と出力信号パラメータとの重みつき距離を修正Wiener規準として、修正Wiener規準における分離信号パラメータを出力信号パラメータに置き換えたときの値よりも、修正Wiener規準が小さくなるような分離信号パラメータ値を入力信号から推定する。【選択図】図２
2011170190.tif 000002
【特許請求の範囲】
【請求項１】
対象信号と干渉信号の混合信号である入力信号から時間周波数成分配列を計算する時間周波数解析部と、
前記入力信号から、当該入力信号に含まれている前記対象信号と干渉信号との各ソース信号毎の時間周波数振幅成分配列を推定する時間周波数振幅成分配列推定部と、
前記入力信号から計算された時間周波数成分配列と前記各ソース信号毎の時間周波数振幅成分配列の推定値とに基づいて、各短時間フレームにおける、時間周波数領域でのWienerフィルタである従来Wienerフィルタの出力信号パラメータを計算するWienerフィルタ出力信号パラメータ計算部と、
前記対象信号を推定するための時間周波数領域の信号パラメータを分離信号パラメータとし、前記分離信号パラメータを逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列と前記従来Wienerフィルタの出力信号パラメータとの重みつき距離を修正Wiener 規準として、前記修正Wiener規準における前記分離信号パラメータを前記従来Wienerフィルタの前記出力信号パラメータに置き換えたときの値よりも、前記修正Wiener規準が小さくなるような前記分離信号パラメータ値を前記入力信号から推定する修正Wiener規準減少部と、
前記修正Wiener規準減少部において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力部と、
を備えることを特徴とする信号分離装置。
【請求項２】
前記修正Wiener規準減少部は、
前記従来Wienerフィルタ出力信号パラメータを複数フレームの長さのブロックに分割するブロック分割部と、
前記ブロックに分割された前記従来Wienerフィルタ出力信号パラメータの複数のフレームについて、前記修正Wiener規準が前記従来Wienerフィルタの場合より減少するように、当該ブロック内の分離信号パラメータ値を計算するブロック内分離信号パラメータ計算部と、
前記ブロック内の分離信号パラメータ値から、前記ブロックの全体に対する分離信号パラメータを計算する全体分離信号パラメータ計算部と、
を備えることを特徴とする請求項１に記載の信号分離装置。
【請求項３】
前記修正Wiener規準減少部は、
前記従来Wienerフィルタ出力信号パラメータと、前記時間周波数振幅成分配列推定値とを記憶する情報記憶部と、
前記分離信号パラメータについて初期値を生成する分離信号パラメータ初期値生成部と、
前記分離信号パラメータ値が収束したか否かを判定する分離信号パラメータ収束判定部と、
前記分離信号パラメータ値を更新する分離信号パラメータ更新部と、
前記分離信号パラメータ更新部において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力部と、
を備えることを特徴とする請求項１に記載の信号分離装置。
【請求項４】
前記分離信号パラメータ更新部は、
前記分離信号パラメータについて、信号の時間周波数成分配列を無矛盾とした無矛盾化時間周波数成分配列を計算する無矛盾化時間周波数成分配列計算部と、
前記無矛盾化時間周波数成分配列と、前記分離信号パラメータと、前記従来Wiener フィルタ出力信号パラメータとを要素とした時間周波数成分配列重み付き和を計算する時間周波数成分配列重み付き和計算部と、
を備えることを特徴とする請求項３に記載の信号分離装置。
【請求項５】
対象信号と干渉信号の混合信号である入力信号から時間周波数成分配列を計算する時間周波数解析過程と、
前記入力信号から、当該入力信号に含まれている前記対象信号と干渉信号との各ソース信号毎の時間周波数振幅成分配列を推定する時間周波数振幅成分配列推定過程と、
前記入力信号から計算された時間周波数成分配列と前記各ソース信号毎の時間周波数振幅成分配列の推定値とに基づいて、各短時間フレームにおける、時間周波数領域でのWienerフィルタである従来Wienerフィルタの出力信号パラメータを計算するWienerフィルタ出力信号パラメータ計算過程と、
前記対象信号を推定するための時間周波数領域の信号パラメータを分離信号パラメータとし、前記分離信号パラメータを逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列と前記従来Wienerフィルタの出力信号パラメータとの重みつき距離を修正Wiener 規準として、前記修正Wiener規準における前記分離信号パラメータを前記従来Wienerフィルタの前記出力信号パラメータに置き換えたときの値よりも、前記修正Wiener規準が小さくなるような前記分離信号パラメータ値を前記入力信号から推定する修正Wiener規準減少過程と、
前記修正Wiener規準減少過程において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力過程と、
を備えることを特徴とする信号分離方法。
【請求項６】
前記修正Wiener規準減少過程は、さらに、
前記従来Wienerフィルタ出力信号パラメータを複数フレームの長さのブロックに分割するブロック分割過程と、
前記ブロックに分割された前記従来Wienerフィルタ出力信号パラメータの複数のフレームについて、前記修正Wiener規準が前記従来Wienerフィルタの場合より減少するように、当該ブロック内の分離信号パラメータ値を計算するブロック内分離信号パラメータ計算過程と、
前記ブロック内の分離信号パラメータ値から、前記ブロックの全体に対する分離信号パラメータを計算する全体分離信号パラメータ計算過程と、
を備えることを特徴とする請求項５に記載の信号分離方法。
【請求項７】
前記修正Wiener規準減少過程は、さらに、
前記従来Wienerフィルタ出力信号パラメータと、前記時間周波数振幅成分配列推定値とを記憶する情報記憶過程と、
前記分離信号パラメータについて初期値を生成する分離信号パラメータ初期値生成過程と、
前記分離信号パラメータ値が収束したか否かを判定する分離信号パラメータ収束判定過程と、
前記分離信号パラメータ値を更新する分離信号パラメータ更新過程と、
前記分離信号パラメータ更新過程において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力過程と、
を備えることを特徴とする請求項５に記載の信号分離方法。
【請求項８】
前記分離信号パラメータ更新過程は、さらに、
前記分離信号パラメータについて、信号の時間周波数成分配列を無矛盾とした無矛盾化時間周波数成分配列を計算する無矛盾化時間周波数成分配列計算過程と、
前記無矛盾化時間周波数成分配列と、前記分離信号パラメータと、前記従来Wiener フィルタ出力信号パラメータとを要素とした時間周波数成分配列重み付き和を計算する時間周波数成分配列重み付き和計算過程と、
を備えることを特徴とする請求項７に記載の信号分離方法。
【請求項９】
信号分離装置としてのコンピュータに、
対象信号と干渉信号の混合信号である入力信号から時間周波数成分配列を計算する時間周波数解析過程と、
前記入力信号から、当該入力信号に含まれている前記対象信号と干渉信号との各ソース信号毎の時間周波数振幅成分配列を推定する時間周波数振幅成分配列推定過程と、
前記入力信号から計算された時間周波数成分配列と前記各ソース信号毎の時間周波数振幅成分配列の推定値とに基づいて、各短時間フレームにおける、時間周波数領域でのWienerフィルタである従来Wienerフィルタの出力信号パラメータを計算するWienerフィルタ出力信号パラメータ計算過程と、
前記対象信号を推定するための時間周波数領域の信号パラメータを分離信号パラメータとし、前記分離信号パラメータを逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列と前記従来Wienerフィルタの出力信号パラメータとの重みつき距離を修正Wiener 規準として、前記修正Wiener規準における前記分離信号パラメータを前記従来Wienerフィルタの前記出力信号パラメータに置き換えたときの値よりも、前記修正Wiener規準が小さくなるような前記分離信号パラメータ値を前記入力信号から推定する修正Wiener規準減少過程と、
前記修正Wiener規準減少過程において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力過程と、
を実行させるための信号分離プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、各信号の時間周波数振幅成分配列の推定値及びそれらの混合信号が与えられた状況において、個々の信号を分離・抽出する方法に関し、例えば音声強調、雑音抑圧等に関する。
【背景技術】
【０００２】
従来、信号の分離に関しては、信号の時間周波数表現又は信号をオーバーラップしている短時間フレームに分割した表現に基づく各種の分離方法が広く知られている。
前記分離の結果得られる分離信号パラメータは、時間周波数領域におけるものであるが、時間周波数領域での計算の結果、前記分離信号パラメータの組合せが、時間領域では信号として現実に存在しえない組合せになる可能性があり、何らかの後処理により時間領域の信号に対応させた解が必ずしも最尤な分離結果にならないという問題があった。
例えば、各信号の時間周波数振幅成分配列の推定値及びそれらの混合信号が与えられたとき個々の信号の分離を目的とした分離方法としてWienerフィルタリング（たとえば、非特許文献１）が知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】E. J. Diethorn, "Subband noise reduction methods for speech enhancement," in Audio Signal Processing for Next-Generation Multimedia Communication Systems, Y. Huang and J. Benesty, Eds., pp. 91--115, Boston, MA: Kluwer,2004.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１の技術において、時間周波数領域で推定した時間周波数成分配列は時間領域では信号として現実に存在しえない組合せになる可能性があり、精度の良い信号分離結果が得られないことがある、という問題があった。
【０００５】
本発明は、上記のような問題に鑑みてなされたものであり、対象信号と干渉信号との混合信号から、高精度に信号分離処理を行うことができる信号分離装置、信号分離方法、および、信号分離プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
この発明は上述した課題を解決するためになされたもので、請求項１に記載の発明は、対象信号と干渉信号の混合信号である入力信号から時間周波数成分を計算する時間周波数解析部と、前記入力信号から、当該入力信号に含まれている前記対象信号と干渉信号との各ソース信号毎の時間周波数振幅成分配列を推定する時間周波数振幅成分配列推定部と、前記入力信号から計算された時間周波数成分と前記各ソース信号毎の時間周波数振幅成分配列の推定値とに基づいて、各短時間フレームにおける、時間周波数領域でのWienerフィルタである従来Wienerフィルタの出力信号パラメータを計算するWienerフィルタ出力信号パラメータ計算部と、前記対象信号を推定するための時間周波数領域の信号パラメータを分離信号パラメータとし、前記分離信号パラメータを逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列と前記従来Wienerフィルタの出力信号パラメータとの重みつき距離を修正Wiener 規準として、前記修正Wiener規準における前記分離信号パラメータを前記従来Wienerフィルタの前記出力信号パラメータに置き換えたときの値よりも、前記修正Wiener規準が小さくなるような前記分離信号パラメータ値を前記入力信号から推定する修正Wiener規準減少部と、前記修正Wiener規準減少部において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力部と、を備えることを特徴とする信号分離装置である。
【０００７】
請求項２に記載の発明は、前記修正Wiener規準減少部は、前記従来Wienerフィルタ出力信号パラメータを複数フレームの長さのブロックに分割するブロック分割部と、前記ブロックに分割された前記従来Wienerフィルタ出力信号パラメータの複数のフレームについて、前記修正Wiener規準が前記従来Wienerフィルタの場合より減少するように、当該ブロック内の分離信号パラメータ値を計算するブロック内分離信号パラメータ計算部と、前記ブロック内の分離信号パラメータ値から、前記ブロックの全体に対する分離信号パラメータを計算する全体分離信号パラメータ計算部と、を備えることを特徴とする請求項１に記載の信号分離装置である。
【０００８】
請求項３に記載の発明は、前記修正Wiener規準減少部は、前記従来Wienerフィルタ出力信号パラメータと、前記時間周波数振幅成分配列推定値とを記憶する情報記憶部と、前記分離信号パラメータについて初期値を生成する分離信号パラメータ初期値生成部と、前記分離信号パラメータ値が収束したか否かを判定する分離信号パラメータ収束判定部と、前記分離信号パラメータ値を更新する分離信号パラメータ更新部と、前記分離信号パラメータ更新部において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力部と、を備えることを特徴とする請求項１に記載の信号分離装置である。
【０００９】
請求項４に記載の発明は、前記分離信号パラメータ更新部は、前記分離信号パラメータについて、信号の時間周波数成分配列を無矛盾とした無矛盾化時間周波数成分配列を計算する無矛盾化時間周波数成分配列計算部と、前記無矛盾化時間周波数成分配列と、前記分離信号パラメータと、前記従来Wiener フィルタ出力信号パラメータとを要素とした時間周波数成分配列重み付き和を計算する時間周波数成分配列重み付き和計算部と、を備えることを特徴とする請求項３に記載の信号分離装置である。
【００１０】
請求項５に記載の発明は、対象信号と干渉信号の混合信号である入力信号から時間周波数成分配列を計算する時間周波数解析過程と、前記入力信号から、当該入力信号に含まれている前記対象信号と干渉信号との各ソース信号毎の時間周波数振幅成分配列を推定する時間周波数振幅成分配列推定過程と、前記入力信号から計算された時間周波数成分配列と前記各ソース信号毎の時間周波数振幅成分配列の推定値とに基づいて、各短時間フレームにおける、時間周波数領域でのWienerフィルタである従来Wienerフィルタの出力信号パラメータを計算するWienerフィルタ出力信号パラメータ計算過程と、前記対象信号を推定するための時間周波数領域の信号パラメータを分離信号パラメータとし、前記分離信号パラメータを逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列と前記従来Wienerフィルタの出力信号パラメータとの重みつき距離を修正Wiener 規準として、前記修正Wiener規準における前記分離信号パラメータを前記従来Wienerフィルタの前記出力信号パラメータに置き換えたときの値よりも、前記修正Wiener規準が小さくなるような前記分離信号パラメータ値を前記入力信号から推定する修正Wiener規準減少過程と、前記修正Wiener規準減少過程において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力過程と、を備えることを特徴とする信号分離方法である。
【００１１】
請求項６に記載の発明は、前記修正Wiener規準減少過程は、さらに、前記従来Wienerフィルタ出力信号パラメータを複数フレームの長さのブロックに分割するブロック分割過程と、前記ブロックに分割された前記従来Wienerフィルタ出力信号パラメータの複数のフレームについて、前記修正Wiener規準が前記従来Wienerフィルタの場合より減少するように、当該ブロック内の分離信号パラメータ値を計算するブロック内分離信号パラメータ計算過程と、前記ブロック内の分離信号パラメータ値から、前記ブロックの全体に対する分離信号パラメータを計算する全体分離信号パラメータ計算過程と、を備えることを特徴とする請求項５に記載の信号分離方法である。
【００１２】
請求項７に記載の発明は、前記修正Wiener規準減少過程は、さらに、前記従来Wienerフィルタ出力信号パラメータと、前記時間周波数振幅成分配列推定値とを記憶する情報記憶過程と、前記分離信号パラメータについて初期値を生成する分離信号パラメータ初期値生成過程と、前記分離信号パラメータ値が収束したか否かを判定する分離信号パラメータ収束判定過程と、前記分離信号パラメータ値を更新する分離信号パラメータ更新過程と、前記分離信号パラメータ更新過程において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力過程と、を備えることを特徴とする請求項５に記載の信号分離方法である。
【００１３】
請求項８に記載の発明は、前記分離信号パラメータ更新過程は、さらに、前記分離信号パラメータについて、信号の時間周波数成分配列を無矛盾とした無矛盾化時間周波数成分配列を計算する無矛盾化時間周波数成分配列計算過程と、前記無矛盾化時間周波数成分配列と、前記分離信号パラメータと、前記従来Wiener フィルタ出力信号パラメータとを要素とした時間周波数成分配列重み付き和を計算する時間周波数成分配列重み付き和計算過程と、を備えることを特徴とする請求項７に記載の信号分離方法である。
【００１４】
請求項９に記載の発明は、信号分離装置としてのコンピュータに、対象信号と干渉信号の混合信号である入力信号から時間周波数成分配列を計算する時間周波数解析過程と、前記入力信号から、当該入力信号に含まれている前記対象信号と干渉信号との各ソース信号毎の時間周波数振幅成分配列を推定する時間周波数振幅成分配列推定過程と、前記入力信号から計算された時間周波数成分配列と前記各ソース信号毎の時間周波数振幅成分配列の推定値とに基づいて、各短時間フレームにおける、時間周波数領域でのWienerフィルタである従来Wienerフィルタの出力信号パラメータを計算するWienerフィルタ出力信号パラメータ計算過程と、前記対象信号を推定するための時間周波数領域の信号パラメータを分離信号パラメータとし、前記分離信号パラメータを逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列と前記従来Wienerフィルタの出力信号パラメータとの重みつき距離を修正Wiener 規準として、前記修正Wiener規準における前記分離信号パラメータを前記従来Wienerフィルタの前記出力信号パラメータに置き換えたときの値よりも、前記修正Wiener規準が小さくなるような前記分離信号パラメータ値を前記入力信号から推定する修正Wiener規準減少過程と、前記修正Wiener規準減少過程において推定された前記分離信号パラメータ値を出力する分離信号パラメータ出力過程と、を実行させるための信号分離プログラムである。
【発明の効果】
【００１５】
この発明によれば、パラメータ推定において、信号の時間周波数成分配列が無矛盾になるという制約を利用し、より的確な推定を行う。これにより、本発明は、対象信号と干渉信号との混合信号から、高精度に信号分離処理を行うことができる。また、本発明は、信号分離を従来技術による場合と同等の速度で行うことができる。
【図面の簡単な説明】
【００１６】
【図１】時間領域と時間周波数領域の関係を説明する説明図である。
【図２】この発明の一実施形態による信号分離装置１の構成の一例示すブロック図である。
【図３】図２の修正Wiener規準減少部４０の構成の第１例を示すブロック図である。
【図４】図２の修正Wiener規準減少部４０の構成の第２例を示すブロック図である。
【図５】図４の分離信号パラメータ更新部４３１の構成の一例を示すブロック図である。
【図６】雑音中音声信号のスペクトログラムの一例を示す図である。
【図７】従来Wienerフィルタ出力信号のスペクトログラムの一例を示す図である。
【図８】補助関数法に基づく手法により得られた信号のスペクトログラムの一例を示す図である。
【発明を実施するための形態】
【００１７】
＜原理＞
公知の方法として「Wienerフィルタリング」と呼ばれる信号分離方法が知られている。ここで、Wienerフィルタリングの定式化を時間周波数領域における尤度関数の最適化問題として行う。
【００１８】
観測信号（入力信号）xが対象信号s1と干渉信号s2との二つの信号からなる混合信号であることを仮定する。また、観測信号の時間周波数成分配列をフレームシフトRの短時間フーリエ変換（以下STFTとも呼ぶ）により計算することを考える。更に、各時刻フレームtと周波数ビンωにおいて、信号s1とs2の短時間フーリエ変換係数S1とS2が、それぞれ平均0と分散σ12とσ22の独立ガウス変数であることを仮定する。便宜のため、以下ν(i)=1/σi2と書く。なお、ここでは観測信号が二つの信号からなる混合信号であることを仮定したが、説明する原理は一般的にI個の信号からなる混合信号の場合でも成り立つ。
【００１９】
干渉信号s2,...,sIが複数ある場合は、音源が互いに無相関であることを仮定しているため、一般性を失わずに干渉信号が一つしかない場合に戻すことができる。つまり、s2,...,sIを一つのグローバルな干渉信号~s2を次式(１)として扱うことができる。
【００２０】
なお、「~s2」という記載は、次式(１)に示されるように、変数「s2」の上に符号「~」が付されていることを示す。後に記載される符号「^」などの記載も同様である。
【００２１】
【数１】
2011170190.tif 000003
【００２２】
上記と同じく、~s2の短時間フーリエ変換係数が平均0と、次式(2)による分散（~σ2）２の独立なガウス変数であることが言える。
【００２３】
【数２】
2011170190.tif 000004
【００２４】
観測信号の短時間フーリエ変換時間周波数成分配列をXと呼ぶ。従来のWienerフィルタリングはSTFT係数S1とS2の対数尤度関数を最大化することとなる。X=S1+S2の制約のもとで、尤度関数を次式（3）のようにS=S1の関数として書くことができる。
【００２５】
【数３】
2011170190.tif 000005
【００２６】
S1に対する従来Wienerフィルタリングの推定値を、次式(4)のように定義する。
【００２７】
【数４】
2011170190.tif 000006
【００２８】
また、対数尤度関数(3)の符号を逆転し、Sによらない定数を省略すると、尤度関数の最大化問題を次式(5)のように定義される目的関数の最小化問題として扱うことができる。
【００２９】
【数５】
2011170190.tif 000007
【００３０】
ただし、αω，ｔは、次式(6)である。
【００３１】
【数６】
2011170190.tif 000008
【００３２】
Sについて何の制約も入れなければ、上記目的関数(5)の最小解がS=^Sであることは明らかである。しかし、ここで注意しなければならないのは、短時間フーリエ変換が特別な構造を持った冗長な表現であることである。周波数ビン数をNとし、フレーム数をTとすると、時系列信号から得られる短時間フーリエ変換時間周波数成分配列がCNT（Cは複素数全体の集合）の要素であるが、CNTの全ての要素がその形で得られるわけではない（例えば、非特許文献２:D. W. Griffin and J. S. Lim,“Signal estimation from modified short-time Fourier transform,”IEEE Trans. Acoustics, Speech, and Signal Processing, vol.32, no.2, pp.236-243, Apr. 1984 と 非特許文献３:J. Le Roux, N. Ono and S. Sagayama,“Explicit consistency constraints for STFT spectrograms and their application to phase reconstruction,”in Proc. SAPA, Sep. 2008を参照）。
【００３３】
時系列信号から得られる短時間フーリエ変換時間周波数成分配列を無矛盾な時間周波数成分配列と呼ぶ。ここで、時間周波数領域における複素数の配列に関して無矛盾な時間周波数成分配列であるための必要十分条件について説明する。逆STFTが、全ての時系列信号がそのSTFT時間周波数成分配列から逆STFTにより完全に再構成できるように行われていることを仮定すると、ある配列Wが無矛盾な時間周波数成分配列であるための必要十分条件は、Wの逆STFTのSTFTがWそのものであることである。つまり、無矛盾な時間周波数成分配列の集合は次式(7)のように定義されるCNT内のR（Rは実数全体の集合）線形写像Fの零空間である。
【００３４】
【数７】
2011170190.tif 000009
【００３５】
ただし時間周波数領域内の写像Gは次式(8)のように定義される。
【００３６】
【数８】
2011170190.tif 000010
【００３７】
ただし、STFT(W)はWのSTFT、iSTFT(W)はWの逆STFTを示す。時間領域と時間周波数領域の関係を図１に示す。
【００３８】
逆STFT の計算のやりかたについて更に詳細に説明する。Wの逆STFT は一般的にWの各フレームの逆フーリエ変換にある合成窓関数s を掛け、得られた短時間信号をオーバーラップ・アッドし、全区間の時系列信号を計算する。ある時系列信号x のSTFT 時間周波数成分配列X の逆STFT がx そのものに等しくなる（完全再構成が成り立つ）ために、正規化を行わなければいけない。STFT のフレームシフトをRと呼ぶと、正規化項が次式(9)となり、周期Rの周期関数であることがわかる。
【００３９】
【数９】
2011170190.tif 000011
【００４０】
ただし、l は時系列のインデックスである。したがって、正規化をオーバーラップ・アッド後に行ってもよいが、正規化項入りの合成窓関数~s を定義し、オーバーラップ・アッドを行う前の窓掛けにおいて直接正規化項入りの合成窓関数~s を用いる。このようにすると、その後オーバーラップ・アッドを行うことだけで完全再構成が成り立ち、正規化の必要がなくなる。
【００４１】
なお、ある分析窓関数において、完全再構成が成り立つような合成窓関数が一般的に複数存在しうる。しかし、非特許文献２にも説明されているように、ある複素数の配列W から得られる時系列信号が、最小二乗誤差の意味でその配列W に一番近い時間周波数成分配列を持つ時系列信号であるようにするには、正規化項を入れる前の合成窓関数s がs = w とみなすように仮定すれば良い。言い換えると、s = w を仮定すれば、G(W) は最小二乗誤差の意味で複素数の配列W に一番近い無矛盾な時間周波数成分配列である。ここでは、s = w を仮定する。
【００４２】
上述のとおり、Sについて何の制約も入れなければ、上記目的関数（５）の最小解がS=^Sであるが、本来は解が無矛盾な時間周波数成分配列となるように、ψの最小化をF(S)=0という制約のもとで行うべきである。
【００４３】
次に、「解を無矛盾な時間周波数成分配列の中から探す」ことが必要である理由を説明する。一般的に、従来Wienerフィルタ出力信号パラメータは無矛盾とは限らない。無矛盾でない時間周波数成分配列から逆STFTにより得られる信号のSTFT時間周波数成分配列はもとの時間周波数成分配列と異なる。そのため、最小解であるべき従来Wienerフィルタ出力信号パラメータが無矛盾でない場合、それから得られる時間領域の信号の時間周波数成分配列は実はψの最小解ではない。すなわち、従来Wienerフィルタ出力信号パラメータから得られる、実際に聞く信号が一般的にWiener尤度関数を最大にしているものというわけでない。実際に推定したいものは、STFT時間周波数成分配列がWiener規準ψを最小とするような時系列信号であり、時間周波数領域で定式化すれば次式（10）のように定義される「修正Wiener規準」の最小解である。
【００４４】
【数１０】
2011170190.tif 000012
【００４５】
Sが無矛盾であるように制約されれば、修正Wiener規準~ψ(S)と従来Wiener規準ψ(S)が同値になるため、~ψの最小化問題をF(S)=0の制約下でのψの最小化問題として考えられる（方針１）。また、時系列信号sをパラメータとし直接時間領域でψ(STFT(s))を最小化する問題としても考えられる（方針２）。また、無矛盾性の制約をゆるめ、ペナルティ関数として目的関数を導入することも考えられる（方針３）。無矛盾性ペナルティ関数の重みを十分大きくすれば、または最適化の過程で徐々に大きくすれば、最終的に推定された時間周波数成分配列が無矛盾であり、無矛盾な時間周波数成分配列の中でψを最小とするものとなる。
【００４６】
上記述べた三つの最適化の方針について具体的に説明する。まず、上述した方針２について説明する。
【００４７】
＜方針２：時系列信号をパラメータとした最適化＞
まずは時系列信号sをパラメータとし時間領域でψ(STFT(s))を直接的に最小化する方法を説明する。パーセバルの定理によりψ(STFT(s))を時間領域に戻す。ここで、重み係数(αω,t)ω=0,…,N-1を対角係数としたN×N対角行列をAt、N×NフーリエをF、信号xの長さをL、信号から窓を掛けたt番目のフレームを計算するN×L行列をwt、^Sのt番目のSTFTフレームの逆フーリエ変換を^stとする。すると、式(5)の目的関数ψ(S)を、次式(11)のように書き換えることができる。
【００４８】
【数１１】
2011170190.tif 000013
【００４９】
ψ(STFT(s))のsによる微分が0になるような信号sは、次式(12)のような線形方程式を満たしている。
【００５０】
【数１２】
2011170190.tif 000014
【００５１】
式(12)の右辺は、通常のWienerフィルタの出力信号＾sに対して、フーリエ変換領域で重み係数(αω,t)ω=0,…,N-1を周波数ごとにかけた後に逆フーリエ変換し、さらに窓掛けする演算を表す。
【００５２】
あるいは、式(12)の右辺は、通常のWienerフィルタの出力信号＾sに対して、重み係数(αω,t)ω=0,…,N-1の逆フーリエ変換を畳み込んでから、窓掛けする演算を表す。
【００５３】
すると、ψ(STFT(s))を最小とする信号sは、解析的に次式(13)により計算できる。
【００５４】
【数１３】
2011170190.tif 000015
【００５５】
上式で行列Atがなければ、非特許文献２にも説明されているように、容易に解の計算ができ、その解が最小二乗誤差の意味で従来Wienerフィルタ出力信号パラメータ^Sに一番近い時間周波数成分配列を持つ時系列信号となる。これに対して今回の問題では、重み係数行列Atの影響で最適信号sを求めることが、次式(14)の、サイズL×Lの巨大行列による線形方程式の解を求める問題となる。
【００５６】
【数１４】
2011170190.tif 000016
【００５７】
しかし、実際には次式(15)の行列がエルミート帯行列であるため、可能範囲内の計算時間とメモリ量で計算できる。
【００５８】
【数１５】
2011170190.tif 000017
【００５９】
メモリ量に関しては特に、信号の全体を一括に計算するために、もしメモリ不足であれば、信号を、数フレームを含んだオーバーラップしているブロックに分割し、各ブロック内に最適化を行い、ブロック内の最適解を最後に組み合わせれば小メモリ量で計算ができる。この場合、ブロック分割やブロック内最適信号の重ね合わせをするために、得る解が全体信号の最適解と異なる可能性があるが、オーバーラップの調整で同等の結果が得られることが実験的にわかる。
【００６０】
＜方針１：  Douglas-Rachford splittingによる最適化＞
方針１では、~ψの最小化問題をF(S)=0の制約下でのψの最小化問題として考える。上述のように、逆STFTはある複素数の配列から得られる時系列信号が最小二乗誤差の意味で、その配列に一番近い時間周波数成分配列を持つ時系列信号であるように定義されていると仮定する。ここで、
【００６１】
【数１６】
2011170190.tif 000018
【００６２】
と書く。ただし、iKer(F)はKer(F)のインジケーター関数であり、次式(17)により定義される。
【００６３】
【数１７】
2011170190.tif 000019
【００６４】
ψを最小とする無矛盾な時間周波数成分配列Sを求めることはf1+f2の最小解を認めることと同等であることが簡単にわかる。f1とf2が両方とも適正下半連続凸関数（proper lower semi-continuous convex functions）である。その場合でのf1+f2の最小化問題は凸最適化論で研究され、単調作用素（monotone operator）のためのDouglas-Rachford splitting法というアルゴリズムにより効率的に解けることが知られている（詳細は例えば、非特許文献４：P. L. Combettes and J.-C. Pesquet,“A Douglas-Rachford splitting approach to nonsmooth convex variational signal recovery,”IEEE Journal of Selected Topics in Signal Processing, vol.1, no.4, pp.564-574, Dec.2007を参照）。各X∈Sに対し、変数Zの関数
【００６５】
【数１８】
2011170190.tif 000020
【００６６】
が唯一な最小解を持ち、その最小解をproxfi(X)と呼ぶ。このように定義された一価作用素（uniquely-valued operator）をfiのproximity operatorと呼ぶ。今回の問題設定では、βf1とβf2のproximity operatorはそれぞれ次式（19）と次式（20）のように具体的に計算できる。ただし、β>0は今後使用される正な定数である。
【００６７】
【数１９】
2011170190.tif 000021
【００６８】
【数２０】
2011170190.tif 000022
【００６９】
上式（19）は二次関数の最小化により容易に導出できる。上式（20）に関しては、
【００７０】
【数２１】
2011170190.tif 000023
【００７１】
の最小解はかならず‖Z-X‖2を最小とするKer(F)の要素である、すなわち最小二乗誤差の意味でXに一番近い無矛盾な時間周波数成分配列であることにより導出できる。
Douglas-Rachford splitting法を今回の問題に適応すると、下記の最適化アルゴリズムが得られる。初期時間周波数成分配列を任意のS(0)∈Sと、任意な正な定数β>0と、Σpλp(2-λp)=+∞になるような(0,2)内の値を取る任意な系列(λp)p∈Nと予め設定し、次式（22）のように再起規則を定義すれば、系列S(p)が収束し、その収束値VSが修正Wiener規準の最小解であり、G(VS)がψを最小とする無矛盾な時間周波数成分配列であることが証明できる。
【００７２】
【数２２】
2011170190.tif 000024
【００７３】
ここで、上記の特別ケースとしてλp=1とし、γ=1/(2β)と書き換えると、上記更新式(22)を下記のように書き換えることができる。
【００７４】
【数２３】
2011170190.tif 000025
【００７５】
以下にも述べるが、上記更新式はのちほど説明するペナルティ関数を目的関数に導入した定式化により得られる更新式と非常に似たものである。
【００７６】
上記の反復計算において、あるSに対してG(S)を逆STFTとSTFTにより厳密に計算しても良い。また、高速化のため、G(S)の代わりに、近似的な計算を周波数領域で行っても良い。近似的な計算について説明する。線形写像Gの計算を直接時間周波数領域に行うことができる（例えば、非特許文献３を参照）。STFTの分析窓関数をw、逆STFTの正規化項入りの合成窓関数を~sと呼ぶ。ここでは、正規化項を入れる前の合成窓関数sがs=wとみなすように仮定しているので、~sは次式(24)により定義される。
【００７７】
【数２４】
2011170190.tif 000026
【００７８】
逆STFTとSTFTで行われる計算を具体的に書くと、写像Gの時間周波数領域での表現が次式（25）得られる。
【００７９】
【数２５】
2011170190.tif 000027
【００８０】
ただし、Q=N/RはSTFTフレームのオーバーラップレートである。また、重み係数ηq,pは
次式（26）により定義する。また、Sの周波数ビンのインデックスをモデュロ(mod)Nと考える。
【００８１】
【数２６】
2011170190.tif 000028
【００８２】
非特許文献３に説明しているように、重み係数ηの主な寄与はインデックスω′の小さい（例えば-2≦ω′≦2）係数に集中しているので、近似的に式（25）の和のレンジを|ω′|≦l≪N/2に絞っても計算の結果がほとんど変わらない。したがって、ステップp+1での更新式（23）におけるG(S(p))の計算を近似的に次式（27）に置き換えても良い。
【００８３】
【数２７】
2011170190.tif 000029
【００８４】
また、式（27）の計算において、重み係数ηの様々な対称性を用いて、掛け算の数をさらに減らすこともできる。また、全ての時間周波数ビンに関して更新を行っても良く、何らかの規準で各ビンに関して更新の計算を行うか、前ステップの値のままにするかという選択的更新にしても良い。例えば、ある閾値を決めて、閾値より大きい時間周波数振幅成分配列のビンのみを更新しても良い。また、閾値を固定しても良く、反復ステップ毎に変えても良い。
【００８５】
＜方針３：  補助関数法による最適化＞
F(S)=0という厳密な拘束ではなく、F(S)の任意なベクトルノルムを用いてある複素数の配列Sの無矛盾性を数値的に評価できる。ここではF(S)のL2ノルムを用いる。また、上記にも述べたように、逆STFTはある複素数の配列から得られる時系列信号が最小二乗誤差の意味でその配列に一番近い時間周波数成分配列を持つ時系列信号であるように定義されていると仮定する。そのように定義された無矛盾性ペナルティ関数を次式(28)のように新たに目的関数に導入する。
【００８６】
【数２８】
2011170190.tif 000030
【００８７】
但し、γは目的関数の無矛盾性項の重み係数を表す。前記γを0に終始固定した場合には、前記公知のWienerフィルタリングと同等の方法・装置となる。また、γを最初から0でない固定の係数にしてもよいが、反復計算の各過程毎に、γの値を任意に変えてもよい。反復計算の過程でγを徐々に大きくすれば、無矛盾性を徐々に考慮したWiener規準の最小解が得られることを期待できる。ここで、信号分離パラメータの具体的計算方法を示すため、新たに導入された無矛盾性項に対する補助関数を導入する。補助関数法の詳細に関しての詳細は例えば、非特許文献５（非特許文献５：D. D. Lee and H. S. Seung,“Learning of the parts of objects by non-negative matrix factorization,”Nature, vol.401, pp.788-791, 1999）を参照。ここでは簡単に概念の説明をする。ある目的関数f(θ)のθによる最小化を行いたい場合、次式（29）のような条件を満たすf+(θ,￣θ)をf(θ)の補助関数と呼び、￣θを補助変数と呼ぶ。
【００８８】
【数２９】
2011170190.tif 000031
【００８９】
f+のθと￣θに対しての最小化がそれぞれ解析的に行うことができれば、θと￣θをそれぞれ次式(30)と次式(31)とのように交互に更新すれば、f(θ)が非増加で収束することが証明できる。
【００９０】
【数３０】
2011170190.tif 000032
【００９１】
【数３１】
2011170190.tif 000033
【００９２】
その概念をψγ(S)に適応する。上記説明した逆STFTについての仮定より、任意の複素数の配列Sに関してG(S)は最小二乗誤差の意味でSから一番近い無矛盾な時間周波数成分配列であることがわかる。すなわち、次式（32）がなりたつ。
【００９３】
【数３２】
2011170190.tif 000034
【００９４】
式(32)の結果より、次式(33)で定義される次式(34)の関数が、ψγの補助関数であることがわかる。
【００９５】
【数３３】
2011170190.tif 000035
【００９６】
【数３４】
2011170190.tif 000036
【００９７】
ただし、Cはν１とν２にしかよらない定数である。
【００９８】
上記の議論より、反復的な最適化アルゴリズムを設計できる。ステップpである複素数の配列S(p)からスタートすれば、先に￣SをG(S(p))に更新し、次にS(p+1)の更新値を係数の対角な二次形式の最小解として計算できる。合わせて、S(p)を次式（35）のような更新式により反復的に計算できる。
【００９９】
【数３５】
2011170190.tif 000037
【０１００】
式（35）の更新式はDouglas-Rachford splitting法により導出した式（23）の更新式とはF(S(p))がなくなっている点で異なっているが、非常に似た形であることが注目に値する。Douglas-Rachford splittingの説明のときにも説明したように、上記の反復計算において、あるSに対してG(S)を逆STFTとSTFTにより厳密に計算しても良い。また、高速化のため、G(S)の代わりに、近似的な計算を周波数領域で行っても良い。具体的には、ステップp+1での更新式（35）におけるG(S(p))の計算を近似的に式（27）に置き換えても良い。また、Douglas-Rachford splittingの説明のときにも説明したように、重み係数の対称性による掛け算の数の削減や時間周波数ビンの選択的更新等を行っても良い。
【０１０１】
＜実施例１＞
本発明の実施形態に係る信号分離装置について説明する。図２は前記信号分離装置１の機能ブロック図である。実施例１は上記「方針２」に沿って信号分離を行う構成である。
【０１０２】
図２に示すように、信号分離装置１は、時間周波数解析部１０、時間周波数振幅成分配列推定部２０、従来Wienerフィルタ出力信号パラメータ計算部３０、修正Wiener規準減少部４０、および分離信号パラメータ出力部５０を備える。
【０１０３】
更に、修正Wiener規準減少部４０は、図３に示すように、ブロック分割部４００、ブロック内分離信号パラメータ計算部４１０、および全体分離信号パラメータ計算部４２０から構成されている。
【０１０４】
時間周波数解析部１０は、入力された時系列信号xから、時間周波数成分Xω,t（ω=0,...,N-1,t=0,...,T-1は、それぞれ周波数、時刻に対応するインデックス）を計算し、従来Wienerフィルタ出力信号パラメータ計算部３０に出力する。より詳細には、時間周波数解析部１０は、時系列信号xを入力として、短時間フーリエ変換（Short-Time Fourier Transform；ＳＴＦＴ）を用いて時間周波数解析を行うことにより時間周波数成分Xω,tを計算し、時間周波数成分Xω，ｔを格納した行列X＝（Xω，ｔ）N×Ｔを出力する。
【０１０５】
時間周波数振幅成分配列推定部２０は、前記対象信号と干渉信号の混合信号である入力信号から、各ソース信号（対象信号と干渉信号）の時間周波数振幅成分配列の推定値を計算し、従来Wienerフィルタ出力信号パラメータ計算部３０に出力する。
【０１０６】
この処理は、周知技術により実現できる。例えば、時間周波数振幅成分配列推定部２０は、入力に対して非負値行列因子分解（例えば、非特許文献５を参照）を行い、入力信号の時間周波数振幅成分配列をいくつかの要素の時間周波数振幅成分配列に分解する。また、予め対象信号と干渉信号の時間周波数振幅成分配列の推定値のオラクル情報が与えられている場合を考えても良い。
【０１０７】
あるいは、対象信号と干渉信号の両方の時間周波数振幅成分配列推定値ではなく、片方のみの振幅情報が与えられている場合を考えても良い。例えば、干渉信号の時間周波数振幅成分配列の推定値が与えられているとすると、スペクトルサブトラクション（例えば、非特許文献６： S. F. Boll,“Suppression of acoustic noise in speech using spectral subtraction,”IEEE Trans. Acoustics, Speech, and Signal Processing, vol.27, pp.113-120, Apr. 1979 を参照）により対象信号の時間周波数振幅成分配列を推定し両方を従来Wienerフィルタ出力信号パラメータ計算部３０に出力することを考えても良い。
【０１０８】
また、入力信号が音声信号を含んでいる場合、入力信号に対して全極モデル化（例えば、非特許文献７：J. S. Lim and A. V. Oppenheim,“All-pole modeling of degraded speech,”,IEEE Trans. Acoustics, Speech, and Signal Processing, vol.26, pp.197-210, Jun.1978を参照）を行い、推定された音声時間周波数振幅成分配列を用いてスペクトルサブトラクション等で干渉信号の時間周波数振幅成分配列を推定し両方を従来Wienerフィルタ出力信号パラメータ計算部３０に出力することを考えても良い。
【０１０９】
従来Wienerフィルタ出力信号パラメータ計算部３０は、前記時間周波数解析部１０により計算された前記入力信号の時間周波数成分配列と、前記時間周波数振幅成分配列推定部２０により与えられた個々の信号の時間周波数振幅成分配列推定値とを用いて、従来Wienerフィルタの出力信号パラメータを計算する。より詳細には、従来Wienerフィルタ出力信号パラメータ計算部３０は、時間周波数解析部１０で得られた前記入力信号の時間周波数成分配列(Xω,t)と、前記時間周波数振幅成分配列推定部２０により与えられた個々の信号の時間周波数振幅成分配列推定値σi2とを用いて、従来Wienerフィルタの出力信号パラメータ(^Sω,t)を次式（36）により計算する。
【０１１０】
【数３６】
2011170190.tif 000038
【０１１１】
ただし、
【０１１２】
【数３７】
2011170190.tif 000039
【０１１３】
である。
【０１１４】
修正Wiener規準減少部４０は、前記従来Wienerフィルタ出力信号パラメータ計算部３０により計算された前記従来Wienerフィルタの出力信号パラメータ^Sω,tと、前記時間周波数振幅成分配列推定部２０により与えられた個々の信号の時間周波数振幅成分配列推定値とを用いて、前記従来Wienerフィルタの出力信号パラメータより修正Wiener規準を更に低くする信号パラメータを、時間領域の信号パラメータである分離信号パラメータ値として推定する。
【０１１５】
すなわち、修正Wiener規準減少部４０は、修正Wiener規準における分離信号パラメータを従来Wienerフィルタの出力信号パラメータに置き換えたときの値よりも、修正Wiener規準が小さくなるような分離信号パラメータ値を入力信号から推定する。
たとえば、修正Wiener規準減少部４０は、修正Wiener基準の分離パラメータが入る部分（式１０のG(S)ω,tのS）に、従来Wienerフィルタの出力信号パラメータ(^S)を入れた場合よりも、修正Wiener規準の値が小さくなるような分離信号パラメータ値を入力信号から推定する。
【０１１６】
ここで、対象信号を推定するための時間周波数領域の信号パラメータが、分離信号パラメータである。また、分離信号パラメータを逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列と従来Wienerフィルタの出力信号パラメータとの重みつき距離が、修正Wiener 規準である。
なお、ここでいう「分離信号パラメータを逆短時間フーリエ変換により復元したときの時系列信号の時間周波数成分配列」とは、「分離信号パラメータを復元したときの時系列信号の時間周波数成分配列」、あるいは、「分離信号パラメータを時間周波数解析の逆変換により復元したときの時系列信号の時間周波数成分配列」のことである。
【０１１７】
分離信号パラメータ出力部５０は、修正Wiener規準減少部４０により推定された分離信号パラメータ値を出力する。分離信号パラメータ値は、入力信号から推定したい対象信号を分離するための時間周波数領域の信号パラメータである。分離信号パラメータ値に逆STFT施すことにより、入力信号中に含まれる対象信号の推定値を求めることができる。
【０１１８】
次に、図３を用いて、修正Wiener規準減少部４０の構成の一例について、詳細に説明する。
ブロック分割部４００は、前記従来Wienerフィルタ出力信号パラメータを複数フレームのブロックに分割する。ブロックがオーバーラップするように少数のフレームを一つのブロックにしても良い。また、各ブロックに含まれているフレームの数を一定にしても良く、各ブロック毎にそれぞれ別のフレーム数にしても良い。また、オーバーラップしているフレーム数も同様。ここでは、ブロックのインデックスをb、ブロック数をBと呼び、一つのブロックに含まれるフレーム数が一定を仮定しその数をnBと呼び、隣接しているブロックのオーバーラップしているフレーム数をnOと呼ぶ。ブロック内の分離信号をs(b)と呼ぶ。b番目のブロックに相当するフレームの最初のインデックスをnbと呼び、そのブロックに相当するフレームインデックスはt=nb,...,nb+1+nO-1。また、個々の信号の時間周波数振幅成分配列の推定値を用いて、重み係数を次式（38）のように計算する。
【０１１９】
【数３８】
2011170190.tif 000040
【０１２０】
ブロック内分離信号パラメータ計算部４１０は、前記ブロック分割部４００で分割されたブロックb内において、修正Wiener規準を最小とする時系列信号である分離信号s(b)を計算し、各ブロック内分離信号パラメータとして出力する。より詳細には、ブロック内分離信号パラメータ計算部４１０は、ブロックb内の時系列信号である分離信号s(b)を、次式（39）により計算する。
【０１２１】
【数３９】
2011170190.tif 000041
【０１２２】
具体的には、式（39）の分子である次式(40) 
【０１２３】
【数４０】
2011170190.tif 000042
【０１２４】
を計算し、式（39）の分母の行列である次式(41) 
【０１２５】
【数４１】
2011170190.tif 000043
【０１２６】
の逆行列を計算せず、分母の行列がエルミートかつ帯行列という性質を用いて、線形系の解を効率良く計算することができる。
【０１２７】
詳細は例えば非特許文献８：W. H. Press, W. T. Vetterling, S. A. Teukolsky and B. P. Flannery, Numerical Recipes in C++: The Art of Scientific Computing, 2nd ed. Cambridge University Press, 2002を参照。
【０１２８】
全体分離信号パラメータ計算部４２０は、前記ブロック内分離信号パラメータ計算部４１０により計算された各ブロック内分離信号パラメータを用いて全体の分離信号パラメータを計算する。ここでは、nb+2≧nb+1+nOとし、同時に重なりうるブロック数が二つ以下だと仮定する。b番目のブロックにおいて、nb+nO<nb+1-1が成り立つ場合、隣のどのブロックとも重なっていない区間が存在し、その区間においては全体分離信号パラメータを次式（42）のようにブロック内分離信号パラメータそのものにする。
【０１２９】
【数４２】
2011170190.tif 000044
【０１３０】
b番目のブロックとb+1番目のブロックが重なっている区間においては、例えば下記のように全体分離信号パラメータを合成する。ブロックの境界に近い部分が境界の影響を受ける恐れがあるので、その部分を除くように、例えば、nC<nO/2を定義し、b+1番目のブロックの始めの長さnCの部分においては、全体分離信号パラメータを次式（43）のようにb番目のブロック内分離信号パラメータそのものにし、b番目のブロックの終わりの長さnCの部分においては、全体分離信号パラメータを次式（44）のようにb+1番目のブロック内分離信号パラメータそのものにする。
【０１３１】
【数４３】
2011170190.tif 000045
【０１３２】
【数４４】
2011170190.tif 000046
【０１３３】
最後にオーバーラップしている区間の中間の部分は例えば次式（45）のようにクロスフェードにより全体分離信号パラメータを計算する。
【０１３４】
【数４５】
2011170190.tif 000047
【０１３５】
なお、修正Wiener規準減少部４０全体においては、ブロック分割部４００においてブロックに分割を行わず（ブロック数B=1として）、式（39）により全体分離信号パラメータを一気に計算することもできる。その場合は全体分離信号パラメータ計算部４２０の処理は省略される。
【０１３６】
＜実施例２＞
実施例２は上記「方針１」に沿って信号分離を行う構成である。
ここで説明する本発明の実施形態に係る信号分離装置１は図２に示す実施例１で説明した信号分離装置であって、修正Wiener規準減少部４０を実施例１(図３)で説明したものの代わりに、図４の構成に置き換えたものである。
【０１３７】
実施例２の修正Wiener規準減少部４０は、情報記憶部４０１、分離信号パラメータ初期値生成部４１１、分離信号パラメータ収束判定部４２１、分離信号パラメータ更新部４３１、分離信号パラメータ出力部４４１から構成されている。
【０１３８】
情報記憶部４０１は、分離信号パラメータ、従来Wienerフィルタ出力信号パラメータ、並びに、対象信号と干渉信号の時間周波数振幅成分配列推定値を記憶するための記憶領域である。また、情報記憶部４０１は、対象信号と干渉信号の時間周波数振幅成分配列推定値から次式（46）のように計算できる重み係数も記憶する。
【０１３９】
【数４６】
2011170190.tif 000048
【０１４０】
分離信号パラメータ初期値生成部４１１は、前記分離信号パラメータS≡(Sω,t)N×Tの初期値を設定し、その設定値をS′として情報記憶部４０１に出力する。例えば、Sの初期値S′を式(4)で定義した^S＝(^Sω,t)N×Tにしても良い。
【０１４１】
分離信号パラメータ更新部４３１は、情報記憶部４０１に記憶されている分離信号パラメータS′と、重み係数αと、従来Wienerフィルタ出力信号パラメータ＾Ｓとから、新たな分離信号パラメータを計算し、情報記憶部４０１に記憶されている分離信号パラメータS′を新たな分離信号パラメータで置き換える。また、分離信号パラメータ更新部４３１は、分離信号パラメータ収束判定部４２１において、情報記憶部４０１に記憶されている分離信号パラメータS′が所定の規準を満たしていないと判断された場合に、新たな分離信号パラメータを再度算出する。より詳細には、分離信号パラメータ更新部４３１は、情報記憶部４０１に記憶されている分離信号パラメータS′を用いて、次式（47）により無矛盾化時間周波数成分配列G(S′)を計算し、次式（48）により新たな分離信号パラメータSを計算する。
【０１４２】
【数４７】
2011170190.tif 000049
【０１４３】
【数４８】
2011170190.tif 000050
【０１４４】
ただし、γは正な定数である。また、算出された新たな値SをS′として情報記憶部４０１に反映させる。
【０１４５】
分離信号パラメータ収束判定部４２１は、情報記憶部４０１に記憶されている分離信号パラメータS′が所定の規準を満たしているか否かを判断する。より詳細には、分離信号パラメータ収束判定部４２１は、分離信号パラメータ更新部４３１を実行した回数（反復回数）をカウントしておき、反復回数が予め定めた回数に到達したか否か、或いは、情報記憶部４０１に記憶されている分離信号パラメータS′と分離信号パラメータ更新部４３１において新たに算出された分離信号パラメータSの変化率を計算し、変化率が予め定めた閾値以下になったか否か、或いは、次式(49)の目的関数値の変化率が予め定めた閾値以下になったか否か、或いは、次式(49)の目的関数値が予め定めた閾値以下になったか否か、により分離信号パラメータS′が所定の規準を満たしているか否かを判断する。
【０１４６】
【数４９】
2011170190.tif 000051
【０１４７】
分離信号パラメータ出力部４４１は、分離信号パラメータ収束判定部４２１によって前記分析パラメータが所定の規準を満たしていると判断された場合に、前記分析パラメータを出力する。
【０１４８】
＜実施例３＞
実施例３は、上述の「方針３」に沿って信号分離を行う構成である。実施例３は、前記実施例２における分離信号パラメータ更新部４３１と分離信号パラメータ収束判定部４２１の処理を、以下の処理で置き換えたものである。
【０１４９】
ここで、図５に示すように、分離信号パラメータ更新部４３１は、無矛盾化時間周波数成分配列計算部４３１０、時間周波数成分配列重み付き和計算部４３１１、から構成されている。
【０１５０】
分離信号パラメータ更新部４３１は、情報記憶部４０１に記憶されている分離信号パラメータＳ´と、重み係数αと、従来Wienerフィルタ出力信号パラメータ＾Ｓとから、新たな分離信号パラメータを計算する。また、分離信号パラメータ更新部４３１は、分離信号パラメータ収束判定部４２１によって前記分離信号パラメータが所定の規準を満たしていないと判断された場合に、新たな分離信号パラメータを再度算出する。
【０１５１】
無矛盾化時間周波数成分配列計算部４３１０は、情報記憶部４０１に記憶されている分離信号パラメーから、新たな無矛盾化時間周波数成分配列を算出する。より詳細には、無矛盾化時間周波数成分配列計算部４３１０は、情報記憶部４０１に記憶されているS′を用いて、次式（50）により無矛盾化時間周波数成分配列G(S′)を計算する。
【０１５２】
【数５０】
2011170190.tif 000052
【０１５３】
時間周波数成分配列重み付き和計算部４３１１は、情報記憶部４０１に記憶されている重み係数αおよび従来Wienerフィルタ出力信号パラメータ＾Ｓと、無矛盾化時間周波数成分配列計算部４３１０によって算出された無矛盾化時間周波数成分配列とから、新たな分離信号パラメータを計算する。より詳細には、時間周波数成分配列重み付き和計算部４３１１は、無矛盾化時間周波数成分配列計算部４３１０で得られた~Sと従来Wienerフィルタ出力信号パラメータ^Sとを用いて次式（51）により分離信号パラメータSを計算する。
【０１５４】
【数５１】
2011170190.tif 000053
【０１５５】
ただし、γは正な定数である。また、算出された新たな値SをS´として情報記憶部４０１に反映させる。
【０１５６】
分離信号パラメータ収束判定部４２１は、情報記憶部４０１に記憶されている前記
分離信号パラメータが所定の規準を満たしているか否かを判断する。より詳細には、分離信号パラメータ収束判定部４２１は、分離信号パラメータ更新部４３１を実行した回数（反復回数）をカウントしておき、反復回数が予め定めた回数に到達したか否か、或いは、情報記憶部４０１に記憶されている分離信号パラメータS′と分離信号パラメータ更新部４３１において新たに算出された分離信号パラメータSの変化率が予め定めた閾値以下になったか否か、或いは、次式(52)の目的関数値の変化率が予め定めた閾値以下になったか否か、或いは、次式(52)の目的関数値が予め定めた閾値以下になったか否か、により分離信号パラメータS′が所定の規準を満たしているか否かを判断する。
【０１５７】
【数５２】
2011170190.tif 000054
【０１５８】
＜実施例４＞
前記実施例３において、無矛盾化時間周波数成分配列計算部４３１０に関して、代替処
理として以下のように行っても良い。
【０１５９】
無矛盾化時間周波数成分配列計算部４３１０は、情報記憶部４０１に記憶されている分離信号パラメータS´から、新たな無矛盾化時間周波数成分配列を算出する。より詳細には、無矛盾化時間周波数成分配列計算部４３１０は、情報記憶部４０１に記憶されているS′を用いて、次式（53）により近似的に無矛盾化時間周波数成分配列~Sを計算する。
【０１６０】
【数５３】
2011170190.tif 000055
【０１６１】
ただし、重み係数ηt′,ω′は次式（54）により定義する。また、Sの周波数ビンのインデックスをモデュロ(mod)Nと考える。
【０１６２】
【数５４】
2011170190.tif 000056
【０１６３】
ただし、wはSTFTの分析窓関数で、~sは逆STFTの正規化項入りの合成窓関数である。ここでは、正規化項を入れる前の合成窓関数sがs=wとみなすように仮定するので、~sは次式(55)により定義される。
【０１６４】
【数５５】
2011170190.tif 000057
【０１６５】
また、式（53）の計算において、重み係数ηの様々な対称性を用いて、掛け算の数をさらに減らすこともできる。また、全ての時間周波数ビンに関して更新を行っても良く、何らかの規準で各ビンに関して更新の計算を行うか、前ステップの値のままにするかという選択的更新にしても良い。例えば、ある閾値を決めて、閾値より大きい時間周波数振幅成分配列のビンのみを更新しても良い。また、閾値を固定しても良く、反復ステップ毎に変えても良い。詳細は非特許文献３を参照。
【０１６６】
＜効果を検証するための実験例＞
本発明の効果および作用を示すため、本発明の実施形態を用いた実験例を以下に説明する。各手法において、計算時間と反復計算を終了したときの修正Wiener規準~ψの値についての評価実験を行う。従来Wienerフィルタの出力信号パラメータ^Sと、最小二乗誤差の意味で^Sの振幅成分に一番近い振幅成分を持つ無矛盾な時間周波数成分配列をGriffin-Lim法により（例えば非特許文献２を参照）計算したものを、今回の実験での本発明の比較対象とする。
【０１６７】
サンプリング周波数は16kHzとし、時間周波数成分配列はフレーム長N=1024（64ms）のsine窓関数を、特に指定する場合を除いてR=512（32ms）毎にシフトさせて作成した。逆STFTの合成窓には同じくsine窓関数を用いた。
【０１６８】
各手法を下記のように実装した。時間領域の手法に関しては、実施例１にも説明したように、nB=64個のフレームを合わせたブロック毎に処理を行った。隣接するブロックが半分重なるようにnO=nB/2にした。すなわちnb=bnB/2であった。また、境界近くの除かれる区間のフレーム数をnC=nB/8にした。すなわち、クロスフェードが行われる区間の長さはnO-2nC=nB/4である。ブロック分割に関するパラメータnB、nO、nCについては予備実験で、全体の区間を一つのブロックにして解析に解く場合の修正Wiener規準の値をほとんど保ったまま、できるだけ計算時間と必要メモリ量を減らすように設定した。
【０１６９】
Douglas-Rachford splitting法に基づく手法および補助関数法に基づく手法に関しては、直感的にγを大きく設定するほど良い解が得られるが、収束の速度が遅くなる。補助関数法に基づく手法においては、あるγ0を用いた更新式（35）により得られた点から、γ0より大きいγ1を用いた更新式（35）を更に行うと修正Wiener規準~ψが単調減少することに実験的に気づいた。したがって、非常に小さい値から（例えばγ=10-5）スタートし、γを固定にしながら、~ψの減少が1%よりも小さくなるまで分離信号パラメータSを更新式（35）により更新し、~ψの減少が1%よりも小さくなったらγを2γに変え、Sの更新を再スタートする、という反復的アルゴリズムを行った。γの値が、~ψの1%より大きい減少無く２回連続引き上げられたときにアルゴリズムを打ち切った。あるいは、反復回数が200回になったときもアルゴリズムを打ち切った。また、Douglas-Rachford splitting法に基づく手法に関しては単調減少のような現象が補助関数法に基づく手法程明らかではなかったため、γを実験的に104に固定し、アルゴリズムの反復回数を4000回繰り返したところで打ち切った。最後にGriffin-Limによる位相推定のアルゴリズムも反復回数を4000回繰り返したところで打切った。
【０１７０】
5.5sの２人の女性話者の音声の混合信号を入力信号にした。それぞれの発話の時間周波数振幅成分配列が予め与えられている場合（オラクル条件）を考えた。実験結果を表1に示す。従来Wienerフィルタの性能が既に非常に高いものの、修正Wiener規準の改善においても、SN比（SNR、信号対雑音比）の改善においても、全ての提案手法によって著しい改善が得られたことがわかる。SNRも改善する理由は自明ではないかもしれないが、再合成した時系列信号の時間周波数成分配列が最尤推定の解により近いことから理解できる。時間領域での最適解の計算が非常に時間はかかるが、補助関数法に基づく手法によりもっと短い時間で得られた推定値が最適解に非常に近いことがわかる。
【０１７１】
【表１】
2011170190.tif 000058
【０１７２】
STFT時間周波数成分配列におけるフレームシフトの影響に関する実験も行った。表2に実験結果を示す。フレームシフトが小さくなる、すなわちフレーム間のオーバーラップ量が大きくなると、特に解析的計算による最適解の場合、SNRが改善することがわかる。オーバーラップが大きくなると無矛盾性拘束が強くなることによりこの結果を解釈できる。しかし、計算量もオーバーラップと比例して大きくなる。すべての手法において計算量が大体時間周波数成分配列のフレーム数と共に線形な比例で増加する。
【０１７３】
【表２】
2011170190.tif 000059
【０１７４】
最後に、雑音抑圧の評価実験も行った。ここでは、補助関数法に基づく手法を用いた。ガウス白色雑音を加わった音声を入力信号とし、三つの条件を考えた：１）音声対象信号と雑音干渉信号のそれぞれの時間周波数振幅成分配列の実際の値が既知である（“oracle”条件）；２）音声対象信号の時間周波数振幅成分配列の実際の値が既知で、雑音に関しては分散のみが既知である（“variance”条件）；３）雑音干渉信号の分散しか与えられていなくて、音声対象信号の時間周波数振幅成分配列をスペクトルサブトラクションにより推定する（“subtraction”条件）。ここでは補助関数法に基づく手法と従来Wienerフィルタを比較した。各条件において三つのSNRを用いた：-10dB、0dBと10dB。各設定に対して、１０個の独立に生成した雑音信号に関して平均を取った結果を表3にまとめる。特にスペクトルサブトラクションにおいて、補助関数法に基づく手法により著しい改善が見られる。知覚的に、ミュージカルノイズがまだ強いものの、従来Wienerフィルタに残っている残留雑音信号が非常に弱くなった。
【０１７５】
【表３】
2011170190.tif 000060
【０１７６】
雑音中音声信号のスペクトログラムを図６に示す。また、従来Wienerフィルタ出力信号のスペクトログラムを図７に示す。また、補助関数法に基づく手法により得られた時間領域信号のスペクトログラムを図８に示す。
【０１７７】
以上説明したように、本実施形態によれば、パラメータ推定において、信号の時間周波数成分配列が無矛盾になるという制約を利用し、より的確な推定を行う。これにより、高精度かつ高速な信号分離処理を行うことができるという利点がある。すなわち、本発明は、信号分離を従来技術による場合と同等の速度で行え、かつ、より高精度の分離結果を得ることができる。
【０１７８】
なお、上記に説明した信号分離装置１が備える各構成は、専用のハードウェアにより実現されるものであってもよく、また、この信号分離装置１が備える各構成はメモリおよびＣＰＵ（中央演算装置）により構成され、信号分離装置１が備える各構成の機能を実現するためのプログラムをメモリにロードして実行することによりその機能を実現させるものであってもよい。
【０１７９】
また、信号分離装置１が備える各構成の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することにより、信号分離装置１が備える各構成の処理を実行してもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
【０１８０】
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含むものとする。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０１８１】
以上、この発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１８２】
１…信号分離装置、１０…時間周波数解析部、２０…時間周波数振幅成分配列推定部、３０…従来Wienerフィルタ出力信号パラメータ計算部、４０…修正Wiener規準減少部、５０…分離信号パラメータ出力部、４００…ブロック分割部、４０１…情報記憶部、４１０…ブロック内分離信号パラメータ計算部、４１１…分離信号パラメータ初期値生成部、４２０…全体分離信号パラメータ計算部、４２１…分離信号パラメータ収束判定部、４３１…分離信号パラメータ更新部、４４１…分離信号パラメータ出力部、４３１０…無矛盾化時間周波数成分配列計算部、４３１１…ペクトログラム重み付き和計算部
【図２】
2011170190.tif 000061
【図３】
2011170190.tif 000062
【図４】
2011170190.tif 000063
【図５】
2011170190.tif 000064
【図１】
2011170190.tif 000065
【図６】
2011170190.tif 000066
【図７】
2011170190.tif 000067
【図８】
2011170190.tif 000068