まずは, Kinect をコンピュータの USB ポートに接続しよう。 そして次のコマンドを実行しよう。
> cat /proc/asound/cards 0 [AudioPCI ]: ENS1371 - Ensoniq AudioPCI Ensoniq AudioPCI ENS1371 at 0x2080, irq 16 1 [Audio ]: USB-Audio - Kinect for Windows USB Audio Microsoft Kinect for Windows USB Audio at usb-0000:02:03.0-1, high speed
上記のように Kinect と表示されれば、正しく接続されている。 Kinect の左側が 1 なので、この場合のデバイス名は plughw:1 である。 もしデバイス名が plughw:1 でない場合は, demo.sh の DEVICE の行を編集しよう.
音源定位の実行は以下のコマンドで行える。
> ./demo.sh online
図 14.9 に示すような出力と, 音源定位結果が表示されるはずだ.
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 0 is removed. 以下略
うまく定位できないときは, オフライン音源定位の場合と同じファイルのチェックを行おう。 ほかにも,レシピ: うまく定位できない を 見て問題を調べよう.
本サンプルに含まれるノードは,7 個である. MAIN (subnet) に 1 個 MAIN_LOOP (iterator) に 6 個のノードがある. MAIN (subnet) と MAIN_LOOP (iterator) を 図 14.11,14.11 に示す. AudioStreamFromMic で音声波形を取り込む。 その出力は SaveWavePCM で音声ファイルに保存される。 同時に MultiFFT でスペクトルに変換もされ,LocalizeMUSIC がフレームごとに音源定位を行う。 それを, SourceTracker で 時間的連続性などを用いてトラッキングし、 DisplayLocalization で音源定位結果を表示する.
表14.10 に主要なパラメータを示す.
ノード名 |
パラメータ名 |
型 |
設定値 |
MAIN_LOOP |
LENGTH |
int |
512 |
ADVANCE |
int |
160 |
|
SAMPLING_RATE |
int |
16000 |
|
A_MATRIX |
string |
ARG1 |
|
DOWHILE |
bool |
(空欄) |
|
LocalizeMUSIC |
NUM_CHANNELS |
int |
4 |
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 |
-90 |
|
MAX_DEG |
int |
90 |
|
LOWER_BOUND_FREQUENCY |
int |
300 |
|
HIGHER_BOUND_FREQUENCY |
int |
2700 |
|
DEBUG |
bool |
false |