6.1.3 AudioStreamFromWave

6.1.3.1 ノードの概要

音声波形データを WAVE ファイルから読み込む. 読み込んだ波形データは,Matrix<float> 型で扱われる. 行がチャネル,列が波形の各サンプルのインデックスとなる.

6.1.3.2 必要なファイル

RIFF WAVE フォーマットの音声ファイル. チャネル数,サンプリング周波数に制約はない. 量子化ビット数は,16 bit または 24 bit の符号付き整数の, リニア PCM フォーマットを仮定する.

6.1.3.3 使用方法

どんなときに使うのか

このノードは,HARK システムへの入力として,WAVE ファイルを読み込ませたいときに使う.

典型的な接続例

6.96.10AudioStreamFromWave ノードの使用例を示す.

6.9 は,AudioStreamFromWave が ファイルから読み込んだ Matrix<float> 型のマルチチャネル波形を MultiFFT ノードによって周波数領域に変換している例である.

AudioStreamFromWave でファイルを読み込むには,図6.10 のように Constant ノード (FlowDesigner の標準ノード) でファイル名を指定し, InputStream ノードでファイルディスクリプタを生成する. そして,InputStream ノードの出力を,AudioStreamFromWave など HARK の各種ノードのネットワークがある iterator サブネットワーク (図6.10 中の LOAD_WAVE)に接続する.

\includegraphics[width=.8\textwidth ]{fig/modules/AudioStreamFromWave1}
Figure 6.9: AudioStreamFromWave の接続例: LOAD_WAVE の内部

\includegraphics[width=.8\textwidth ]{fig/modules/AudioStreamFromWave2}
Figure 6.10: AudioStreamFromWave の接続例: MAIN

6.1.3.4 ノードの入出力とプロパティ

Table 6.4: AudioStreamFromWave のパラメータ表

パラメータ名

デフォルト値

単位

説明

LENGTH

int 

512

[pt]

処理を行う基本単位となるフレームの長さ.

ADVANCE

int 

160

[pt]

イタレーション毎にフレームをシフトさせる長さ.

USE_WAIT

bool 

false

 

処理を実時間で行うかどうか.

入力

INPUT

: Stream 型.FlowDesigner 標準ノードの,IO カテゴリにある InputStream ノードから入力を受け取る.

出力

AUDIO

: Matrix<float> 型.行がチャネル,列がサンプルのインデックスである, マルチチャネル音声波形データ.列の大きさはパラメータ LENGTH に等しい.

NOT_EOF

: bool 型.まだファイルを読めるかどうかを表す.ファイルに対する 繰り返し処理の終了フラグとして用いる.ファイルの終端に達したとき falseを出力し, それ以外のとき trueを出力する.

パラメータ

LENGTH

: int 型.512がデフォルト値.処理の基本単位であるフレームの長さをサンプル数で 指定する.値を大きくすれば,周波数解像度が上がる一方,時間解像度は下がる. 音声波形の分析には,$20 \sim 40$ [ms] に相当する長さが適切であると言われている. サンプリング周波数が 16000 [Hz] のとき,デフォルト値は 32 [ms] に相当する.

ADVANCE

: int 型.160がデフォルト値.音声波形に対する処理のフレームを, 波形の上でシフトする幅をサンプル数で指定する.サンプリング周波数が 16000 [Hz] のとき, 10 [ms] に相当する.

USE_WAIT

: bool 型.falseがデフォルト値.通常,HARK システムの音響処理は 実時間よりも高速に動作する. 処理に“待ち”を加えて,入力ファイルに対して実時間で処理を行いたい場合は trueに設定する. ただし,実時間よりも遅い場合は,trueにしても効果はない.

6.1.3.5 ノードの詳細

対応するファイルフォーマット: RIFF WAVE ファイルを読み込むことができる. チャネル数,量子化ビット数はファイルのヘッダから読み込むが,サンプリング周波数, 量子化手法を表すフォーマット ID は無視する. チャネル数,サンプリング周波数は任意の形式に対応する. サンプリング周波数が処理を行う上で必要になる場合は,パラメータとして要求するノードがある ( GHDSS ,MelFilterBank など). 量子化手法とビット数は,16 または 24 ビット符号付き整数によるリニア PCM を仮定する.

パラメータの目安: 処理の目的が音声の分析 (音声認識など) の場合,LENGTH には $20 \sim 40$ [ms] 程度, ADVANCE には LENGTH の $1/3 \sim 1/2$ 程度が良いとされている. サンプリング周波数が 16000 [Hz] の時,LENGTH,ADVANCE のデフォルト値はそれぞれ, 32,10 [ms] に対応する.