オンライン音源定位

まずは,demoWS8ch.n を編集して,無線RASP の IP アドレスを設定をしよう. 事前に 127.0.0.1 を設定しているので,これを使用する無線 RASP の IP アド レスに変更しよう. 無線 RASP の FPAA のコンフィグレーションが終っていなければ, 無線 RASP のドキュメントを参考に実行しよう. ここまで準備ができたら,Localization ディレクトリ中の demoWS8ch.sh を実行しよう. 実行後にマイクの近くで何か声を出すと, 図 14.3.2 に示すような出力と, 音源定位結果が表示される.

$>$ demoWS8ch.sh
UINodeRepositoryScan()
Scanning def /usr/lib/flowdesigner/toolbox
done loading def files
loading XML document from memory
done!
Building network MAIN
reading A matrix
Identifier is different from HARK’s oneH
Try to read ../config/music.dat as header-less MUSIC transfer function format.
72 directions,1 ranges,8 microphones,512 points
done
initialize
Source 0 is created.
Source 0 is removed.
以下略
: demoWS8ch.sh の実行例.

うまく定位できないときは, 自分で用意した music.dat のパスが正しいかや、ファイルが正しいかをチェックしよう. ほかにも,レシピ うまく定位できないを見て問題を調べよう.

本サンプルに含まれるモジュールは,8 個である. MAIN (subnet) に 1 個 MAIN_LOOP (iterator) に 7 個のモジュールがある. MAIN (subnet) と MAIN_LOOP (iterator) を 図 #.#.#,14.11 に示す. AudioStreamFromMic モジュールで取り込んだ音声波形の使用チャンネルを ChannelSelector で選択し, MultiFFT でスペクトル表現に変換し,LocalizeMUSIC で MUSIC スペクトルを求めている.続いて, SourceTracker で MUSIC スペク トルのピークを求め,前処理時刻のピークとの連続性を用いてトラッキングして いる. SourceIntervalExtender は,音源の先頭時刻を過去に遡って延す処理 である.最後に,DisplayLocalization で音源定位結果を表示する.

\includegraphics{fig/recipes/demo-LocalizationWS8ch-MAIN.png}
: MAIN (subnet)
\includegraphics{fig/recipes/demo-LocalizationWS8ch-MAIN_LOOP.png}
: MAIN_LOOP (iterator)

14.10 に主要なパラメータを示す.

: パラメータ表

ノード名

パラメータ名

設定値

MAIN_LOOP

LENGTH

int 

512

 

ADVANCE

int 

160

 

SAMPLING_RATE

int 

16000

 

A_MATRIX

string 

ARG1

 

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