音源分離のパラメータをチューニングしたい

Problem

音源分離の性能が悪い場合,その場でどうパラメータ調節できるか

Solution

音源分離のメインモジュールである GHDSS のパラメータ設定について記述する.

GHDSS は事前に計測をした(またはマイクロホン位置を使って計算した) 空間伝達関数の情報を用いて分離を行うため, 持っている伝達関数に応じた設定が必要となる. 具体的には以下の設定値に相当する.

GHDSS ではシグモイド関数の曲率(原点での傾き)に相当する係数 SS_SCAL が性能を決める. この曲率を大きくすることで,線形拘束により近い形となり, 小さくすることで非線形性を上げることができる. あまりに小さくすることは,適応をなまらせてしまうことになるため, この値を上下して,状況に合わせた設定を行う.

INITW_FILENAMEで指定したファイルを分離行列の初期値とすることができる. あらかじめ同じような状況で録音したファイルなどから初期値を作っておくことで, 分離の収束の高速化が見込める.これを指定しない場合は,初期値は定位結果と分離用伝達関数ファイルから決められる.

ステップサイズには SS_METHODLC_METHOD の2種類がある (コスト誤差に対するものと,線形拘束のステップサイズ). 両方とも ADAPTIVE にすることで, よほど最適化された環境でなければ手動で設定するより性能はよくなる. また,SS_METHOD = LC_METHOD = 0に設定し, INITW_FILENAMEに適当な分離行列ファイルを指定することで, 固定ビームフォーマーによる分離が可能となる. 以下,各パラメータの値の詳細を述べる.

1. FIX
SS_METHOD パラメータの Value を FIX に設定する. すると, SS_MYU パラメータが出現するので, その Value に例えば, 0.001 といった 値を代入する. この値を大きく設定すると, 分離行列の収束は早くなるが 入力データに対する収束安定性や分離精度は低くなる. 逆に小さく設定すると, 分離行列の収束は遅いが, データに対する収束安定性や分離精度は高い.

2. ADAPTIVE
SS_METHOD パラメータの Value を ADAPTIVE に設定する. 入力データに対して, 自動的に適切なステップサイズを計算するため, 収束も早く, その安定性や分離精度も高い.

3. LC_FIX
LC_METHOD に連動したステップサイズに設定される. この場合, SS_METHOD で設定するパラメータはない.

1. FIX
LC_METHOD パラメータの Value を FIX に設定すると, LC_MYU パラメータが出現する. 説明は SS_METHOD と同じである.

2. ADAPTIVE
LC_METHOD パラメータの Value を ADAPTIVE に設定すれば, 自動的に最適な値を計算して設定する.

Discussion

上記 Solution の説明を参照

See Also

音源分離の具体的なアルゴリズムについては HARK 講習会資料 の「 HARK の技術説明(音源分離)」参照.