Problem
音源分離の性能が悪い場合,その場でどうパラメータ調節できるか
Solution
音源分離のメインモジュールである GHDSS のパラメータ設定について記述する.
既知の空間伝達関数に合わせた設定
GHDSS は事前に計測をした(またはマイクロホン位置を使って計算した) 空間伝達関数の情報を用いて分離を行うため, 持っている伝達関数に応じた設定が必要となる. 具体的には以下の設定値に相当する.
LC_CONST = DIAG
もし伝達関数が正確に測定できているときは FULL だが, ほとんどの場合は DIAG に設定する.
TF_CONJ の設定
TF_CONJ = DATABASE: 実測伝達関数モード
TF_CONJ_FILENAME に伝達関数ファイルを指定
TF_CONJ = CALC: 従来の配置情報から計算するモード
MIC_FILENAME にマイクロホン配置を指定
非線形拘束の曲率の指定
GHDSS ではシグモイド関数の曲率(原点での傾き)に相当する係数 SS_SCAL が性能を決める. この曲率を大きくすることで,線形拘束により近い形となり, 小さくすることで非線形性を上げることができる. あまりに小さくすることは,適応をなまらせてしまうことになるため, この値を上下して,状況に合わせた設定を行う.
定常ノイズの対処
FIXED_NOISE = true
で定常ノイズの仮定のもとでの分離
分離行列の初期値
INITW_FILENAMEで指定したファイルを分離行列の初期値とすることができる. あらかじめ同じような状況で録音したファイルなどから初期値を作っておくことで, 分離の収束の高速化が見込める.これを指定しない場合は,初期値は定位結果と分離用伝達関数ファイルから決められる.
ステップサイズ
ステップサイズには SS_METHOD と LC_METHOD の2種類がある (コスト誤差に対するものと,線形拘束のステップサイズ). 両方とも ADAPTIVE にすることで, よほど最適化された環境でなければ手動で設定するより性能はよくなる. また,SS_METHOD = LC_METHOD = 0に設定し, INITW_FILENAMEに適当な分離行列ファイルを指定することで, 固定ビームフォーマーによる分離が可能となる. 以下,各パラメータの値の詳細を述べる.
ステップサイズ : SS_METHOD
1. FIX
SS_METHOD パラメータの Value を FIX に設定する. すると, SS_MYU パラメータが出現するので, その Value に例えば, 0.001 といった 値を代入する. この値を大きく設定すると, 分離行列の収束は早くなるが 入力データに対する収束安定性や分離精度は低くなる. 逆に小さく設定すると, 分離行列の収束は遅いが, データに対する収束安定性や分離精度は高い.
2. ADAPTIVE
SS_METHOD パラメータの Value を ADAPTIVE に設定する. 入力データに対して, 自動的に適切なステップサイズを計算するため, 収束も早く, その安定性や分離精度も高い.
3. LC_FIX
LC_METHOD に連動したステップサイズに設定される. この場合, SS_METHOD で設定するパラメータはない.
ステップサイズ : LC_METHOD
1. FIX
LC_METHOD パラメータの Value を FIX に設定すると, LC_MYU パラメータが出現する. 説明は SS_METHOD と同じである.
2. ADAPTIVE
LC_METHOD パラメータの Value を ADAPTIVE に設定すれば, 自動的に最適な値を計算して設定する.
Discussion
上記 Solution の説明を参照
See Also
音源分離の具体的なアルゴリズムについては HARK 講習会資料 の「 HARK の技術説明(音源分離)」参照.