Localization ディレクトリに移動して、音源定位を実行しよう。 ここでは,3つの 7ch 音声ファイルを順番に読み込み,定位結果を表示する. 音声ファイルはそれぞれ 0, 90度方向からの音声(microcone_0deg.wav, microcone_90deg.wav) と、 移動しながら発話した音声 (microcone_moving.wav) である。 すべて data ディレクトリにあるので確認しよう。
次のコマンド
> ./demo.sh offline
を実行すると、 図 14.6 のような出力と, 音源定位結果のグラフが表示されるはずだ.
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() (以下略)
実行後は,result_.*txt という名前のファイルと, log_*.txt という名前のファイルがそれぞれ3つずつできているはずだ。 もしできていなければ実行に失敗しているので、次のチェックをしよう。
../data ディレクトリに microcone_0deg.wav, microcone_90deg.wav, microcone_moving.wav かチェックする.これらのファイルは, HARK がサポートするマイクアレイ Microcone で 実際に録音した音声だ. 入力ファイルなので、これがないと実行できない。
../config ディレクトリに microcone_loc.dat ファイルがあるかチェックする. これは LocalizeMUSIC に必要な伝達関数ファイルだ。詳しくは HARK documentの LocalizeMUSIC の節を参照。
result_*.txt には,音源定位結果を SaveSourceLocation ノードを使って 保存したテキストファイルで, フレーム番号と音源方向が記録されている. LoadSourceLocation ノードを使えば、これを後で表示させることもできる。 詳しいフォーマットは HARK document の定位結果テキスト の節を参照.
log_*.txt には, LocalizeMUSIC の DEBUG プロパティを trueすると出力される MUSIC スペクトルが記録されている。 MUSIC スペクトルとは時刻・方向ごとに計算した音源の存在する信頼度のようなもので、 値が大きいところに音源がある。詳しくは HARK documetnの LocalizeMUSIC の節を参照。 次のように表示用プログラムを実行すれば、それぞれのMUSIC スペクトルを表示できる。
> python plotMusicSpec.py log_microcone_90deg.txt > python plotMusicSpec.py log_microcone_0deg.txt > python plotMusicSpec.py log_microcone_moving.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.7,14.8 に示す. AudioStreamFromWave で取り込んだ音声波形を MultiFFT で 分析し,LocalizeMUSIC で音源定位する.定位結果を SourceTracker でトラッキングし DisplayLocalization で画面表示し, SaveSourceLocation でファイルに書き出す.
表 14.10 に主要なパラメータを示す. 重要なパラメータは,伝達関数ファイルを表す A_MATRIX である. このファイルは HARK web ページで提供しているマイクロホンアレイを使う場合は ダウンロードできるが、そうでない場合は自分で harktool を使って作成する必要がある.
ノード名 |
パラメータ名 |
型 |
設定値 |
MAIN_LOOP |
LENGTH |
int |
512 |
ADVANCE |
int |
160 |
|
SAMPLING_RATE |
int |
16000 |
|
A_MATRIX |
int |
ARG2 |
|
FILENAME |
subnet_param |
ARG3 |
|
DOWHILE |
bool |
(空欄) |
|
LocalizeMUSIC |
NUM_CHANNELS |
int |
8 |
LENGTH |
subnet_param |
LENGTH |
|
SAMPLING_RATE |
subnet_param |
SAMPRING_RATE |
|
A_MATRIX |
subnet_param |
A_MATRIX |
|
PERIOD |
int |
50 |
|
NUM_SOURCE |
int |
1 |
|
MIN_DEG |
int |
-180 |
|
MAX_DEG |
int |
180 |
|
LOWER_BOUND_FREQUENCY |
int |
500 |
|
HIGHER_BOUND_FREQUENCY |
int |
2800 |
|
DEBUG |
bool |
false |