録音ネットワークサンプルは,表 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 録音 |
ただし,各サンプルネットワークファイルで使用するモジュールは全て共通 であり、違いは,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 を出力する.そのため, このノードの出力を繰り返しの終了判定に用いることで取り込むフレーム数を指定し, 録音時間を調節することができる.
MAIN (subnet) にある MAIN_LOOP モジュールのプロパティは, 5 個ある.表 #.#.# に一覧を示す. SAMPLING_RATE と GET_FRAMES が重要である. この表の通りに各パラメータ値が設定されている. GET_FRAMES の設定値が,1 となっているが,この意味は, サンプルネットワークファイルの第一引数を整数型にキャストして代入する意味である. 録音時間長は,取得フレーム数で指定し,実際の録音時間長を秒で表すと,
である.
パラメータ名 |
型 |
設定値 |
単位 |
説明 |
ADVANCE |
int |
160 |
[pt] |
シフト長 |
LENGTH |
int |
512 |
[pt] |
FFT 長 |
SAMPLING_RATE |
int |
16000 |
[Hz] |
サンプリング周波数 |
GET_FRAMES |
subnet_param |
1 |
録音フレーム数 |
|
DOWHILE |
bool |
空欄にする |