まずは, Microcone を計算機の USB ポートに接続しよう。 そして次のコマンドを実行しよう。
> cat /proc/asound/cards 0 [AudioPCI ]: ENS1371 - Ensoniq AudioPCI Ensoniq AudioPCI ENS1371 at 0x2080, irq 16 1 [Microcone ]: USB-Audio - Microcone DEV-AUDIO Microcone at usb-0000:02:03.0-1, high speed
上記のように Microcone と表示されれば、正しく接続されている。 Microcone の左側が 1 なので、この場合のデバイス名は plughw:1 である。 localization_online_microcone.n を flowdesigner で開き、 AudioStreamFromMic の DEVICE を plughw:1 に設定しよう。
音源定位の実行は以下のコマンドで行える。
> ./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.11 に主要なパラメータを示す.
ノード名 |
パラメータ名 |
型 |
設定値 |
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 |