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

Problem

音源定位の性能をパラメータの調節で改善したい。

Solution

音源定位で起こりうる問題ごとに,解決方法を示す.

Q.1)定位方向がぐちゃぐちゃに表示される,又は全く表示されない.

 
DisplayLocalization で定位結果を表示すると, 定位方向がぐちゃぐちゃに表示されることがある. これは,パワーの低いものまで音源として定位してしまっているためである. 全く表示されない場合はその逆である.

  • SourceTracker の THRESH を変更する  
    音源方向の期待値の閾値を直接変更するパラメータであるので, うまく音源のみのピークをとらえるように調節を行う. 調節には,LocalizeMUSIC の DEBUG オプションを trueにすれば MUSIC スペ クトルが表示されるので,それを使うとよい.

  • LocalizeMUSIC の NUM_SOURCE を目的音の数に合わせる  
    MUSIC は NULL スペースを利用して目的音方向のピークをより大きくするため, NUM_SOURCE(音源数)の設定次第で引き立たせるピークの個数の設定が変わることになり, これを誤って設定すると,ノイズ方向にピークが立ったり, 目的音方向にうまくピークが立たなかったりと性能が劣化してしまう. (実際にはピークがなまるのみで,使用できる場合が多い.) 話者一人の場合は1と設定するのが,より性能が向上する.

Q.2) 複数音あるのに一つしかピークが立たない

 
たとえば2つの音源があるのにもかかわらず音源定位結果が1つしか結果が出ない ことがある.この原因は,音源同士が近すぎるか,音源数がネット ワークファイルのパラメータと合っていないからである.

  • SourceTracker のを MIN_SRC_INTERVAL 変更する  
    近いところに音源がある場合,例えば到来方向10度しか離れていない二音源に 対しては,パラメータ MIN_SRC_INTERVAL を10度以下に指定する必要がある.

  • LocalizeMUSIC の NUM_SOURCE を目的音の数に合わせる  
    A.1-2 と同様. ただし,音源の音量が十分で,40度程度離れていれば,経験的には ネットワークの音源数設定と異なっていてもうまく動くことが多い.

Q.3) 音声以外の音を使っている

 
LocalizeMUSIC の LOWER_BOUND_FREQUENCYUPPER_BOUND_FREQUENCY
音源定位はこの二つで指定される周波数の中で,相関行列を足し合わせて 平均を取る方法を用いているため,定位したい音源と全く異なる周波数を 設定していると,平均した時にピークがなまってしまう. 音源に合わせた周波数を用いる. 音声であればデフォルトの $500[Hz] \leq f \leq 2800[Hz]$ にしておけばよい.

Q.4) 特定の範囲は音源が来ないと仮定できるので無視したい

 
LocalizeMUSIC の MIN_DEGMAX_DEG
音源定位はこの二つの値で指定された方向の範囲内での定位のみしか行わない. 360度の定位を行いたい場合は180度と-180度に指定する.

Discussion

上記 Solution の説明を参照

See Also

音源定位の具体的なアルゴリズムや, パラメータの具体的な説明については HARK ドキュメントの LocalizeMUSIC を参照.