まずは, 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.10 に示すような出力と, 音源定位結果が表示されるはずだ.
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.12 に示す. AudioStreamFromMic で音声波形を取り込む。 その出力は SaveWavePCM で音声ファイルに保存される。 同時に MultiFFT でスペクトルに変換もされ,LocalizeMUSIC がフレームごとに音源定位を行う。 それを, SourceTracker で 時間的連続性などを用いてトラッキングし、 DisplayLocalization で音源定位結果を表示する.
表14.11 に主要なパラメータを示す.
ノード名 |
パラメータ名 |
型 |
設定値 |
MAIN_LOOP |
LENGTH |
512 |
|
ADVANCE |
160 |
||
SAMPLING_RATE |
16000 |
||
A_MATRIX |
ARG1 |
||
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 |