録音ネットワークサンプル

録音ネットワークサンプルは,表 14.2 に示すように 4 種類ある.左列に,ネットワークファイルを,右列に処理内容を示している. これらのサンプルを実行するには,ターミナルで ./ファイル名 [録音時間] とすればよい.図 #.#.# にその実行例を示す.

: 録音ネットワーク一覧.

ネットワークファイル名

処理内容

demoALSA_2ch.n

ALSA準拠デバイスを用いた 2ch 録音

demoWS_8ch.n

無線 RASP を用いた 8ch 録音

demoTDBD_8ch.n

TD-BD-16AD-USB を用いた 8ch 録音

demoRASP24_8ch.n

RASP24 を用いた 8ch 録音

: demoALSA1ch の実行例.
$>$ ./demoALSA_2ch.n 100
UINodeRepositoryScan()
Scanning def /usr/lib/flowdesigner/toolbox
done loading def files
loading XML document from memory
done!
Building network MAIN

$<$Bool 1 $>$

ただし,各サンプルネットワークファイルで使用するモジュールは全て共通 であり、違いは,AudioStreamFromMic モジュールに指定するパラメータだけ であることに注意されたい.各サンプルで設定されている DEVICE パラメータ (ALSAの場合は plughw:1,0, RASPの場合は 127,0,0,1など) は,環境によって 変化する.そのため,この DEVICE パラメータは各自で設定を変更する必要 がある.

ネットワークファイルは二つのサブネットワーク (MAIN, MAIN_LOOP) から構成されており, MAIN (subnet) に 1 個, MAIN_LOOP (iterator) に 6 個のモジュールがある. MAIN (subnet) と MAIN_LOOP (iterator) を 図 14.3, 14.4 に示す. AudioStreamFromMic モジュールで取り込んだマルチチャンネルの音声から ChannelSelector モジュールを使って特定のチャンネルだけを選び, SaveWavePCM でファイルに書き出す単純なネットワーク構成である. ネットワークに SaveWavePCM モジュールが 2 個あるが,これは マルチチャンネルの音声を録音する際に 二つの方法があるからである (モノラル音声の場合はどちらも同じ). AudioStreamFromMic モジュールからの出力を直接 SaveWavePCM モジュールに 接続した場合は,1 つのファイルに全てのチャンネルの音声が含まれる. 一方で MatrixToMap を介して接続した場合は,各チャンネル毎にファイルが 作成される. Iterate は設定した値の回数だけ実行を繰り返すために使うモジュールである. 繰り返し回数が MAX_ITER より小さい間のみ true を出力する.そのため, このノードの出力を繰り返しの終了判定に用いることで取り込むフレーム数を指定し, 録音時間を調節することができる.

\includegraphics{fig/recipes/demo-Record-MAIN.png}
: MAIN (subnet)
\includegraphics[width=\textwidth ,clip]{fig/recipes/demo-Record-MAIN_LOOP.png}
: MAIN_LOOP (iterator)

MAIN (subnet) にある MAIN_LOOP モジュールのプロパティは, 5 個ある.表 #.#.# に一覧を示す. SAMPLING_RATE と GET_FRAMES が重要である. この表の通りに各パラメータ値が設定されている. GET_FRAMES の設定値が,1 となっているが,この意味は, サンプルネットワークファイルの第一引数を整数型にキャストして代入する意味である. 録音時間長は,取得フレーム数で指定し,実際の録音時間長を秒で表すと,

  $\displaystyle  $ $\displaystyle  $ $\displaystyle  ( LENGTH + (GET\_ FRAMES - 1) * ADVANCE ) / SAMPLING\_ RATE  $    

である.

: MAIN_LOOP のパラメータ表

パラメータ名

設定値

単位

説明

ADVANCE

int 

160

[pt]

シフト長

LENGTH

int 

512

[pt]

FFT 長

SAMPLING_RATE

int 

16000

[Hz]

サンプリング周波数

GET_FRAMES

subnet_param 

1

 

録音フレーム数

DOWHILE

bool 

   

空欄にする