以下の手法を用いて音源分離を行う.
DS : 遅延和ビームフォーミング (Delay-and-Sum beamforming)
WDS : 重み付き遅延和ビームフォーミング (Weighted Delay-and-Sum beamforming)
NULL : NULL制御つきビームフォーミング (NULL beamforming)
ILSE : 最小平均二乗誤差制御つきビームフォーミング (Iterative Least Squares with Enumeration)
LCMV : 線形拘束付最小分散型 (Linearly Constrained Minimum Variance) ビームフォーミング
GJ : Griffiths-Jim ビームフォーミング
MSNR : 最大 SNR 法 (Maximum Signal-to-Noise Ratio)
GSS : 幾何学的音源分離法 (Geometrically constrained Source Separation)
GICA : 幾何学的独立成分分析 (Geometrically constrained Independent Component Analysis)
GHDSS : 幾何学的高次無相関化音源分離法 (Geometrically constrained Higher-order Decorrelation-based Source Separation)
ノードの入力は,
混合音のマルチチャネル複素スペクトル
音源方向のデータ
既知雑音のマルチチャネル複素スペクトルまたは相関行列
である. また,出力は分離音ごとの複素スペクトルである.
対応するパラメータ名 |
説明 |
TF_CONJ_FILENAME |
マイクロホンアレーの伝達関数 |
INITW_FILENAME |
分離行列初期値 |
どんなときに使うのか
所与の音源方向に対して,マイクロホンアレイを用いて当該方向の音源分離を行う. なお,音源方向として,音源定位部での推定結果,あるいは,定数値を使用することができる.
典型的な接続例
Beamforming ノードの接続例を図 6.40 に示す. 入力は以下である.
INPUT_FRAMES : MultiFFT 等から来る混合音の多チャネル複素スペクトル
INPUT_SOURCES : LocalizeMUSIC や ConstantLocalization 等から来る音源方向
INPUT_NOISE_SOURCES : 抑圧対象音の音源方向(オプション入力)
出力は分離音声となる.
パラメータ名 |
型 |
デフォルト値 |
単位 |
説明 |
LENGTH |
512 |
[pt] |
分析フレーム長 |
|
ADVANCE |
160 |
[pt] |
フレームのシフト長 |
|
SAMPLING_RATE |
16000 |
[Hz] |
サンプリング周波数 |
|
SPEED_OF_SOUND |
343.0 |
[m/s] |
音速 |
|
TF_CONJ_FILENAME |
マイクロホンアレーの伝達関数を記したファイル名.どの BF_METHOD においても有効. |
|||
INITW_FILENAME |
分離行列の初期値を記述したファイル名.EXPORT_W であらかじめ出力されたものを使用する. |
|||
SS_METHOD |
ADAPTIVE |
ブラインド音源分離のためのステップサイズの算出方法. BF_METHOD=GSS,GICA,GHDSS の時のみ有効. FIX, LC_MYU, ADAPTIVE から選択. FIXは SS_MYU がステップサイズとなる. LC_MYUの場合はSS_MYU=LC_MYUとなる. ADAPTIVEは適応的ステップサイズとなる. |
||
SS_MYU |
1.0 |
ブラインド音源分離のための分離行列更新時のステップサイズ. BF_METHOD=GSS,GICA,GHDSS の時のみ有効. SS_METHOD=FIX の場合は固定ステップサイズの値となる. SS_METHOD=LC_MYU の場合は無視される. SS_METHOD=ADAPTIVE の場合は適応的に決定されたステップサイズに SS_MYU のゲインを乗算してステップサイズとする. |
||
LC_METHOD |
ADAPTIVE |
幾何制約に基づくステップサイズの算出方法. BF_METHOD=LCMV,GJ,GSS,GICA,GHDSS の時のみ有効. FIX, ADAPTIVE から選択. FIXは LC_MYU がステップサイズとなる. ADAPTIVEは適応的ステップサイズとなる. |
||
LC_MYU |
1.0 |
幾何制約に基づく分離行列更新時のステップサイズ. BF_METHOD=LCMV,GJ,GSS,GICA,GHDSS の時のみ有効. LC_METHOD=FIX の場合は固定ステップサイズの値となる. LC_METHOD=ADAPTIVE の場合は適応的に決定されたステップサイズに LC_MYU のゲインを乗算してステップサイズとする. |
||
EXPORT_W |
false |
分離行列をファイルに書き出すかを指定. |
||
EXPORT_W_FILENAME |
分離行列を書きだすファイル名.EXPORT_W=true の時のみ有効. |
|||
ALPHA |
0.99 |
フィルタ更新係数.BF_METHOD=MSNR の時のみ有効. |
||
NL_FUNC |
TANH |
高次相関行列計算に使う関数.現在は TANH のみサポート.BF_METHOD=GICA,GHDSS の時のみ有効. |
||
SS_SCAL |
1.0 |
高次相関行列計算におけるスケールファクタ.BF_METHOD=GICA,GHDSS の時のみ有効. |
||
BF_METHOD |
LCMV |
音源分離手法 |
||
ENABLE_DEBUG |
false |
デバッグ出力の可否 |
入力
: Matrix<complex<float> > 型.マルチチャネル複素スペクトル. 行がチャネル,つまり,各マイクロホンから入力された波形の 複素スペクトルに対応し,列が周波数ビンに対応する.
: Vector<ObjectRef> 型.音源定位結果等が格納された Source 型オブジェクトの Vector 配列である. 典型的には, SourceTracker ノード,SourceIntervalExtender ノードと 繋げ,その出力を用いる.
: Vector<ObjectRef> 型.INPUT_SOURCES と同じ Source 型オブジェクトの Vector 配列である.雑音方向の情報のオプション入力である.
出力
: Map<int, ObjectRef> 型.分離音の音源IDと,分離音の1チャネル複素スペクトル
(Vector<complex<float> > 型) のペア.
パラメータ
: int 型. 分析フレーム長[samples].前段階における値(AudioStreamFromMic ,MultiFFT ノードなど) と一致している必要がある. デフォルト値は512[samples].
: int 型. フレームのシフト長[samples].前段階における値(AudioStreamFromMic ,MultiFFT ノードなど) と一致している必要がある. デフォルト値は160[samples].
: int 型. 入力波形のサンプリング周波数[Hz].デフォルト値は16000[Hz].
: float 型. 音速[m/s].デフォルト値は 343.0[m/s].
: string 型. 伝達関数の記述されたバイナリファイル名を記す. ファイルフォーマットは 5.1.2 節を参照. BF_METHOD の全てにおいて有効.
: string 型. 分離行列の初期値を記したファイル名. 事前の計算により,値の収束した分離行列を初期値として与えることで, 音が鳴り始めた最初の部分から精度よく分離することが可能となる. ここで与えるファイルは,EXPORT_W を trueにし,EXPORT_W_FILENAME で指定する適当な名前 で分離行列を保存することで,予め用意しておく必要がある. ファイルフォーマットは 5.1.3 節を参照. 現在は未対応.
: string 型. ブラインド音源分離のためのステップサイズの算出方法を選ぶ. BF_METHOD=GSS,GICA,GHDSS の時のみ有効で, GSS の場合は無相関化に基づく音源分離である DSS (Decorrelation-based Source Separation), GICA の場合は独立成分分析である ICA (Independent Component Analysis), GHDSS の場合は高次無相関化に基づく音源分離である HDSS (Higher-order Decorrelation-based Source Separation) のステップサイズを決定する. FIX, LC_MYU, ADAPTIVE から選択. FIXの場合は SS_MYU がステップサイズとなる. LC_MYUの場合はSS_MYU=LC_MYUとなる. ADAPTIVEは適応的ステップサイズとなる.
: float 型. ブラインド音源分離のための分離行列更新時のステップサイズ. デフォルト値は 1.0. BF_METHOD=GSS,GICA,GHDSS の時のみ有効. SS_METHOD=FIX の場合は SS_MYU が固定ステップサイズの値となる. SS_METHOD=LC_MYU の場合は無視される. SS_METHOD=ADAPTIVE の場合は適応的に決定されたステップサイズに SS_MYU のゲインを乗算してステップサイズとする. この値とLC_MYUを 0 にし,Delay and Sum 型のビームフォーマの分離行列を INITW_FILENAME として渡し,BF_METHOD=GSS,GICA,GHDSSのどれかを選択することで, Beamforming は,Delay and Sum 型のビームフォーマと 等価な処理が可能となる.
: string 型. 幾何制約に基づくステップサイズの算出方法を選ぶ. BF_METHOD=LCMV,GJ,GSS,GICA,GHDSS の時のみ有効で, 全ての場合において幾何拘束に基づく音源分離である GC (Geometric Constraint) のステップサイズを決定する. FIX, ADAPTIVE から選択. FIXの場合は LC_MYU がステップサイズとなる. ADAPTIVEは適応的ステップサイズとなる.
: float 型. 幾何制約に基づく分離行列更新時のステップサイズ. デフォルト値は 1.0. BF_METHOD=LCMV,GJ,GSS,GICA,GHDSS の時のみ有効. LC_METHOD=FIX の場合は LC_MYU が固定ステップサイズの値となる. LC_METHOD=ADAPTIVE の場合は適応的に決定されたステップサイズに LC_MYU のゲインを乗算してステップサイズとする. この値とSS_MYUを 0 にし,Delay and Sum 型のビームフォーマの分離行列を INITW_FILENAME として渡し,BF_METHOD=GSS,GICA,GHDSSのどれかを選択することで, Beamforming は,Delay and Sum 型のビームフォーマと 等価な処理が可能となる.
: bool 型. falseがデフォルト. Beamforming により更新された分離行列の結果を出力するかどうかを設定. trueのとき,EXPORT_W_FILENAME を指定.
: string 型. EXPORT_W が trueの時のみ有効. 分離行列を書きだすファイル名を指定. フォーマットは 5.1.3 節を参照.
: float 型. フィルタ更新係数.BF_METHOD=MSNR の時のみ有効. デフォルト値は 0.99.
: string 型. BF_METHOD=GICA,GHDSS の時に,高次相関行列計算に使う関数を指定する. デフォルト値は TANH で,双曲線正接関数(tanh)を使用する. 現在は TANH のみがサポートされている.
: float 型. 1.0 がデフォルト. BF_METHOD=GICA,GHDSS の時に, 高次相関行列計算における双曲線正接関数(tanh)の スケールファクタを指定する. 0より大きい正の実数を指定する.値が小さいほど非線形性が少なくなり 通常の相関行列計算に近づく.
: string 型. 音源分離手法を指定する.現在は以下の音源分離手法をサポートしている.
DS : 遅延和ビームフォーミング (Delay-and-Sum beamforming)[1]
WDS : 重み付き遅延和ビームフォーミング (Weighted Delay-and-Sum beamforming)[1]
NULL : NULL制御つきビームフォーミング (NULL beamforming)[1]
ILSE : 最小平均二乗誤差制御つきビームフォーミング (Iterative Least Squares with Enumeration)[2]
LCMV : 線形拘束付最小分散型 (Linearly Constrained Minimum Variance) ビームフォーミング[3]
GJ : Griffiths-Jim ビームフォーミング[4]
MSNR : 最大 SNR 法 (Maximum Signal-to-Noise Ratio)[5]
GSS : 幾何学的音源分離法 (Geometrically constrained Source Separation)[6]
GICA : 幾何学的独立成分分析 (Geometrically constrained Independent Component Analysis)[7]
GHDSS : 幾何学的高次無相関化音源分離法 (Geometrically constrained Higher-order Decorrelation-based Source Separation)[7]
: bool 型. デフォルトは false. trueが与えられると, 分離状況が標準出力に出力される。
技術的な詳細: 基本的に詳細は下記の参考文献を参照されたい.
音源分離概要: 音源分離問題で用いる記号を表 6.35 にまとめる. 演算はフレーム毎に周波数領域において行われるため, 各記号は周波数領域での,一般には複素数の値を表す. 音源分離は$K$個の周波数ビン($1 \leq k \leq K$)それぞれに対して演算が行われるが,本節ではそれを略記する. $N$, $M$, $f$をそれぞれ,音源数,マイク数,フレームインデックスとする.
変数 |
説明 |
$\boldsymbol {S}(f) = \left[S_1(f), \dots , S_ N(f)\right]^ T$ |
$f$フレーム目の音源の複素スペクトル |
$\boldsymbol {X}(f) = \left[X_1(f), \dots , X_ M(f)\right]^ T$ |
マイクロホン観測複素スペクトルのベクトル.INPUT_FRAMES 入力に対応. |
$\boldsymbol {N}(f) = \left[N_1(f), \dots , N_ M(f)\right]^ T$ |
加法性雑音 |
$\boldsymbol {H} = \left[ \boldsymbol {H}_1, \dots , \boldsymbol {H}_ N \right] \in \mathbb {C}^{M \times N}$ |
$1 \leq n \leq N$番目の音源から$1 \leq m \leq M$番目のマイクまでの伝達関数行列 |
$\boldsymbol {W}(f) = \left[ \boldsymbol {W}_1, \dots , \boldsymbol {W}_ M \right] \in \mathbb {C}^{N \times M}$ |
分離行列 |
$\boldsymbol {Y}(f) = \left[Y_1(f), \dots , Y_ N(f)\right]^ T$ |
分離音複素スペクトル |
音のモデルは以下の一般的な線形モデルを扱う.
$\displaystyle \boldsymbol {X}(f) $ | $\displaystyle = $ | $\displaystyle \boldsymbol {H}\boldsymbol {S}(f) + \boldsymbol {N}(f). \label{eq:beamforming_ observation} $ | (28) |
分離の目的は,
$\displaystyle \boldsymbol {Y}(f) $ | $\displaystyle = $ | $\displaystyle \boldsymbol {W}(f)\boldsymbol {X}(f) \label{eq:Beamforming-separation} $ | (29) |
として,$\boldsymbol {Y}(f)$ が $\boldsymbol {S}(f)$ に近づくように,$\boldsymbol {W}(f)$ を推定することである. 最後に推定された$\boldsymbol {W}(f)$は,EXPORT_W=trueにし, EXPORT_W_FILENAME で指定した適当なファイル名で保存することができる.
TF_CONJ_FILENAME で指定する伝達関数ファイルには計測された$\boldsymbol {H}$を格納する. 今後はこれを実際の伝達関数と区別するため,$\hat{\boldsymbol {H}}$と表記する.
BF_METHOD=DS,WDS,NULL,ILSEの場合: INPUT_SOURCES 入力端子と INPUT_NOISE_SOURCES 入力端子から入ってくる 音源方向と雑音方向の情報を用いて,$\hat{\boldsymbol {H}}$を用いて$\boldsymbol {W}(f)$を決定する.
BF_METHOD=MSNRの場合: 分離行列更新のための評価関数$J_{\textrm{MSNR}}(\boldsymbol {W}(f))$は, INPUT_SOURCES 入力端子と INPUT_NOISE_SOURCES 入力端子から入ってくる音源方向と雑音方向の情報で定義される. MSNR で使用される信号の相関行列 $\boldsymbol {R}_{ss}(f)$ は INPUT_SOURCES 入力端子に音源が存在する信号区間(目的音の存在区間)の信号から得られる相関行列 $\boldsymbol {R}_{xx}(f)$から以下のように更新される.
$\displaystyle \boldsymbol {R}_{ss}(f+1) $ | $\displaystyle = $ | $\displaystyle \alpha \boldsymbol {R}_{ss}(f) + (1-\alpha )\boldsymbol {R}_{xx}(f), \label{eq:MSNR_ Rss} $ | (30) |
一方,雑音の相関行列$\boldsymbol {R}_{nn}(f)$ は, INPUT_NOISE_SOURCES 入力端子に音源が存在する信号区間(雑音の存在区間)の信号から得られる相関行列 $\boldsymbol {R}_{xx}(f)$から以下のように更新される.
$\displaystyle \boldsymbol {R}_{nn}(f+1) $ | $\displaystyle = $ | $\displaystyle \alpha \boldsymbol {R}_{nn}(f) + (1-\alpha )\boldsymbol {R}_{xx}(f), \label{eq:MSNR_ Rnn} $ | (31) |
式()と式()の$\alpha $が プロパティ ALPHA で指定可能である. $\boldsymbol {R}_{ss}(f)$と$\boldsymbol {R}_{nn}(f)$から$\boldsymbol {W}(f)$が更新されて分離ができる.
BF_METHOD=LCMV,GJの場合: 分離行列更新のための評価関数$J_{\textrm{L}}(\boldsymbol {W}(f))$は, INPUT_SOURCES 入力端子と INPUT_NOISE_SOURCES 入力端子から入ってくる音源方向と雑音方向の情報で定義される. 分離行列の更新は略記すると以下のようになる.
$\displaystyle \boldsymbol {W}(f+1) $ | $\displaystyle = $ | $\displaystyle \boldsymbol {W}(f) + \mu \nabla _{\boldsymbol {W}}\boldsymbol {J}_{\textrm{L}}(\boldsymbol {W})(f)\label{eq:LCMV_ GJ_ J} $ | (32) |
ただし,$\nabla _{\boldsymbol {W}}\boldsymbol {J}_{\textrm{L}}(\boldsymbol {W}) = \frac{\partial \boldsymbol {J}_{\textrm{L}}(\boldsymbol {W})}{\partial \boldsymbol {W}}$である. この $\mu $ を LC_MYU で指定できる. LC_METHOD=ADAPTIVE に指定した場合は,
$\displaystyle \mu $ | $\displaystyle = $ | $\displaystyle \left. \frac{\boldsymbol {J}_{\textrm{L}}(\boldsymbol {W})}{\left| \nabla _{\boldsymbol {W}}\boldsymbol {J}_{\textrm{L}}(\boldsymbol {W})\right|^2} \right|_{\boldsymbol {W} = \boldsymbol {W}(f)}\label{eq:LCMV_ GJ_ mu} $ | (33) |
と適応的にステップサイズが計算される.
BF_METHOD=GSS,GICA,GHDSSの場合: 分離行列更新のための評価関数$J_{\textrm{G}}(\boldsymbol {W}(f))$は, INPUT_SOURCES 入力端子と INPUT_NOISE_SOURCES 入力端子から入ってくる音源方向と雑音方向の情報とで以下で定義される.
$\displaystyle J_{\textrm{G}}(\boldsymbol {W}(f)) $ | $\displaystyle = $ | $\displaystyle J_{\textrm{SS}}(\boldsymbol {W}(f)) + J_{\textrm{LC}}(\boldsymbol {W}(f)) \label{eq:GHDSS_ J} $ | (34) |
ただし,$J_{\textrm{SS}}(\boldsymbol {W}(f))$は,ブラインド音源分離に基づく音源分離手法のための評価関数, $J_{\textrm{LC}}(\boldsymbol {W}(f))$は幾何制約に基づく音源分離手法のための評価関数である. 分離行列の更新は略記すると以下のようになる.
$\displaystyle \boldsymbol {W}(f+1) $ | $\displaystyle = $ | $\displaystyle \boldsymbol {W}(f) + \mu _{\textrm{SS}} \nabla _{\boldsymbol {W}}\boldsymbol {J}_{\textrm{SS}}(\boldsymbol {W})(f) + \mu _{\textrm{LC}} \nabla _{\boldsymbol {W}}\boldsymbol {J}_{\textrm{LC}}(\boldsymbol {W})(f) \label{eq:GHDSS_ W} $ | (35) |
ただし,$\nabla _{\boldsymbol {W}}$は,式()と同様に$\boldsymbol {W}$についての偏微分を表す. この$\mu _{\textrm{SS}}$と$\mu _{\textrm{LC}}$をそれぞれ,SS_MYU, LC_MYU で指定できる. SS_METHOD=ADAPTIVE に指定した場合は,
$\displaystyle \mu _{\textrm{SS}} $ | $\displaystyle = $ | $\displaystyle \left. \frac{\boldsymbol {J}_{\textrm{SS}}(\boldsymbol {W})}{\left| \nabla _{\boldsymbol {W}}\boldsymbol {J}_{\textrm{SS}}(\boldsymbol {W})\right|^2} \right|_{\boldsymbol {W} = \boldsymbol {W}(f)}\label{eq:GHDSS_ SS_ mu} $ | (36) |
と, LC_METHOD=ADAPTIVE に指定した場合は,
$\displaystyle \mu _{\textrm{LC}} $ | $\displaystyle = $ | $\displaystyle \left. \frac{\boldsymbol {J}_{\textrm{LC}}(\boldsymbol {W})}{\left| \nabla _{\boldsymbol {W}}\boldsymbol {J}_{\textrm{LC}}(\boldsymbol {W})\right|^2} \right|_{\boldsymbol {W} = \boldsymbol {W}(f)}\label{eq:GHDSS_ LC_ mu} $ | (37) |
と適応的にステップサイズが計算される.
トラブルシューティング: 基本的には GHDSS モジュールのトラブルシューティングと同じ.
H. Krim and M. Viberg, ’Two decades of array signal processing research: the parametric approach’, in IEEE Signal Processing Magazine, vol. 13, no. 4, pp. 67–94, 1996. D. H. Johnson and D. E. Dudgeon, Array Signal Processing: Concepts and Techniques, Prentice-Hall, 1993.
S. Talwar, et al.: ’Blind separation of synchronous co-channel digital signals using an antenna array. I. Algorithms’, IEEE Transactions on Signal Processing, vol. 44 , no. 5, pp. 1184 - 1197.
O. L. FrostIII, ’An Algorithm for Lineary Constrained Adaptive array processing’, Proc. of the IEEE, Vol. 60, No.8, 1972
L. Griffiths and C. Jim, ’An alternative approach to linearly constrained adaptive beamforming’, IEEE trans. on ant. and propag. Vol. AP-30, No.1, 1982
P. W. Howells, ’Intermediate Frequency Sidelobe Canceller’, U.S. Patent No.3202990, 1965.
Parra, L. C., et al.: ’Geometric source separation: Merging convolutive source separation with geometric beamforming’, IEEE Trans. SAP Vol.10, No.6, pp.352-362, 2002.
H. Nakajima, et al.: ’Blind Source Separation With Parameter-Free Adaptive Step-Size Method for Robot Audition’, IEEE Trans. ASL Vol.18, No.6, pp.1476-1485, 2010.