音声波形データを WAVE ファイルから読み込む. 読み込んだ波形データは,Matrix<float> 型で扱われる. 行がチャネル,列が波形の各サンプルのインデックスとなる.
RIFF WAVE フォーマットの音声ファイル. チャネル数,サンプリング周波数に制約はない. 量子化ビット数は,16 bit または 24 bit の符号付き整数の, リニア PCM フォーマットを仮定する.
どんなときに使うのか
このノードは,HARK システムへの入力として,WAVE ファイルを読み込ませたいときに使う.
典型的な接続例
図6.9,6.10 に AudioStreamFromWave ノードの使用例を示す.
図6.9 は,AudioStreamFromWave が ファイルから読み込んだ Matrix<float> 型のマルチチャネル波形を MultiFFT ノードによって周波数領域に変換している例である.
AudioStreamFromWave でファイルを読み込むには,図6.10 のように Constant ノード (FlowDesigner の標準ノード) でファイル名を指定し, InputStream ノードでファイルディスクリプタを生成する. そして,InputStream ノードの出力を,AudioStreamFromWave など HARK の各種ノードのネットワークがある iterator サブネットワーク (図6.10 中の LOAD_WAVE)に接続する.
パラメータ名 |
型 |
デフォルト値 |
単位 |
説明 |
LENGTH |
512 |
[pt] |
処理を行う基本単位となるフレームの長さ. |
|
ADVANCE |
160 |
[pt] |
イタレーション毎にフレームをシフトさせる長さ. |
|
USE_WAIT |
false |
処理を実時間で行うかどうか. |
入力
: Stream 型.FlowDesigner 標準ノードの,IO カテゴリにある InputStream ノードから入力を受け取る.
出力
: Matrix<float> 型.行がチャネル,列がサンプルのインデックスである, マルチチャネル音声波形データ.列の大きさはパラメータ LENGTH に等しい.
: bool 型.まだファイルを読めるかどうかを表す.ファイルに対する 繰り返し処理の終了フラグとして用いる.ファイルの終端に達したとき falseを出力し, それ以外のとき trueを出力する.
パラメータ
: int 型.512がデフォルト値.処理の基本単位であるフレームの長さをサンプル数で 指定する.値を大きくすれば,周波数解像度が上がる一方,時間解像度は下がる. 音声波形の分析には,$20 \sim 40$ [ms] に相当する長さが適切であると言われている. サンプリング周波数が 16000 [Hz] のとき,デフォルト値は 32 [ms] に相当する.
: int 型.160がデフォルト値.音声波形に対する処理のフレームを, 波形の上でシフトする幅をサンプル数で指定する.サンプリング周波数が 16000 [Hz] のとき, 10 [ms] に相当する.
: bool 型.falseがデフォルト値.通常,HARK システムの音響処理は 実時間よりも高速に動作する. 処理に“待ち”を加えて,入力ファイルに対して実時間で処理を行いたい場合は trueに設定する. ただし,実時間よりも遅い場合は,trueにしても効果はない.
対応するファイルフォーマット: 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] に対応する.