Localization ディレクトリに移動して、音源定位を実行しよう。 ここでは、4ch 音声ファイルを順番に読み込み,定位結果を表示する. 音声ファイルは それぞれ -30, 30度方向からの同時発話 (Multispeech.wav) である。 すべて data ディレクトリにあるので確認しよう。
次のコマンド
> ./demo.sh offline
を実行すると、 図 14.7 のような出力と, 音源定位結果のグラフが表示されるはずだ.
UINodeRepository::Scan() Scanning def /usr/lib/flowdesigner/toolbox done loading def files loading XML document from memory done! Building network :MAIN TF was loaded by libharkio2. 1 heights, 72 directions, 1 ranges, 7 microphones, 512 points Source 0 is created. (中略) Source 5 is removed. UINodeRepository::Scan() (以下略)
実行後は,Localization.txt と、log.txt という名前のファイルができているはずだ。 もしできていなければ実行に失敗しているので、次のチェックをしよう。
../data ディレクトリに MultiSpeech.wav かあるかチェックする.これは, HARK がサポートするマイクアレイ Kinect で 実際に録音した音声だ. 入力ファイルなので、これがないと実行できない。
../config ディレクトリに kinect_loc.zip ファイルがあるかチェックする. これは LocalizeMUSIC に必要な伝達関数ファイルだ。詳しくは HARK documentの LocalizeMUSIC の節を参照。
Localization.txt には,音源定位結果を SaveSourceLocation ノードを使って 保存したテキストファイルで, フレーム番号と音源方向が記録されている. LoadSourceLocation ノードを使えば、これを後で表示させることもできる。 詳しいフォーマットは HARK document の定位結果テキスト の節を参照.
log.txt には, LocalizeMUSIC の DEBUG プロパティを trueすると出力される MUSIC スペクトルが記録されている。 MUSIC スペクトルとは時刻・方向ごとに計算した音源の存在する信頼度のようなもので、 値が大きいところに音源がある。詳しくは HARK documetnの LocalizeMUSIC の節を参照。 次のように表示用プログラムを実行すれば、それぞれのMUSIC スペクトルを表示できる。
> python plotMusicSpec.py log.txt
もし実行に失敗するようなら、次のコマンドを実行して必要なパッケージをインストールしよう。 For Ubuntu sudo apt-get install python python-matplotlib
ちなみに、これで表示されるカラーバーの値が SourceTracker の THRESH の設定に使える。
本サンプルに含まれるノードは,9 個である. MAIN (subnet) に 3 個 MAIN_LOOP (iterator) に 6 個のノードがある. MAIN (subnet) と MAIN_LOOP (iterator) を 図 14.8,14.9 に示す. AudioStreamFromWave で取り込んだ音声波形を MultiFFT で 分析し,LocalizeMUSIC で音源定位する.定位結果を SourceTracker でトラッキングし DisplayLocalization で画面表示し, SaveSourceLocation でファイルに書き出す.
表 14.10 に主要なパラメータを示す. 重要なパラメータは,伝達関数ファイルを表す A_MATRIX である. このファイルは HARK web ページで提供しているマイクロホンアレイを使う場合は ダウンロードできるが、そうでない場合は自分で harktool を使って作成する必要がある.
ノード名 |
パラメータ名 |
型 |
設定値 |
MAIN_LOOP |
LENGTH |
512 |
|
ADVANCE |
160 |
||
SAMPLING_RATE |
16000 |
||
A_MATRIX |
ARG2 |
||
FILENAME |
ARG3 |
||
DOWHILE |
(空欄) |
||
NUM_CHANNELS |
4 |
||
LENGTH |
LENGTH |
||
SAMPLING_RATE |
SAMPRING_RATE |
||
A_MATRIX |
A_MATRIX |
||
PERIOD |
50 |
||
NUM_SOURCE |
1 |
||
MIN_DEG |
-90 |
||
MAX_DEG |
90 |
||
LOWER_BOUND_FREQUENCY |
300 |
||
HIGHER_BOUND_FREQUENCY |
2700 |
||
DEBUG |
false |