第 6 章 ノードリファレンス 45
6.1.2 AudioStreamFromWave
ノードの概要
音声波形データをWAVEファイルから読み込む.読み込んだ波形データは,Matrix<float>型で扱われる.
行がチャネル,列が波形の各サンプルのインデックスとなる.
必要なファイル
RIFF WAVEフォーマットの音声ファイル.チャネル数,サンプリング周波数に制約はない.量子化ビット
数は,16 bitまたは24 bitの符号付き整数の,リニアPCMフォーマットを仮定する.
使用方法
どんなときに使うのか
このノードは,HARKシステムへの入力として,WAVEファイルを読み込ませたいときに使う.
典型的な接続例
図6.6,6.7にAudioStreamFromWaveノードの使用例を示す.
図6.6は,AudioStreamFromWaveがファイルから読み込んだMatrix<float>型のマルチチャネル波形を
MultiFFTノードによって周波数領域に変換している例である.
AudioStreamFromWaveでファイルを読み込むには,図6.7のようにConstantノード(FlowDesignerの標準ノー ド)でファイル名を指定し,InputStreamノードでファイルディスクリプタを生成する.そして,InputStreamノー ドの出力を,AudioStreamFromWaveなどHARKの各種ノードのネットワークがあるiteratorサブネットワー ク(図6.7中のLOAD WAVE)に接続する.
ノードの入出力とプロパティ
表6.3:AudioStreamFromWaveのパラメータ表 パラメータ名 型 デフォルト値 単位 説明
LENGTH int 512 [pt] 処理を行う基本単位となるフレームの長さ.
ADVANCE int 160 [pt] イタレーション毎にフレームをシフトさせる長さ.
USE WAIT bool false 処理を実時間で行うかどうか.
入力
INPUT :Stream型.FlowDesigner標準ノードの,IOカテゴリにあるInputStreamノードから入力を受け取る.
出力
AUDIO :Matrix<float>型.行がチャネル,列がサンプルのインデックスである,マルチチャネル音声波形 データ.列の大きさはパラメータLENGTHに等しい.
図6.6:AudioStreamFromWaveの接続例: LOAD WAVEの内部
図6.7:AudioStreamFromWaveの接続例: MAIN
NOT EOF :bool型.まだファイルを読めるかどうかを表す.ファイルに対する繰り返し処理の終了フラグと して用いる.ファイルの終端に達したときfalseを出力し,それ以外のときtrueを出力する.
パラメータ
LENGTH :int型.512がデフォルト値.処理の基本単位であるフレームの長さをサンプル数で指定する.値 を大きくすれば,周波数解像度が上がる一方,時間解像度は下がる.音声波形の分析には,20∼40 [ms]
に相当する長さが適切であると言われている.サンプリング周波数が16000 [Hz]のとき,デフォルト値 は32 [ms]に相当する.
ADVANCE :int型.160がデフォルト値.音声波形に対する処理のフレームを,波形の上でシフトする幅を サンプル数で指定する.サンプリング周波数が16000 [Hz]のとき,10 [ms]に相当する.
USE WAIT :bool型.falseがデフォルト値.通常,HARKシステムの音響処理は実時間よりも高速に動作 する.処理に“待ち”を加えて,入力ファイルに対して実時間で処理を行いたい場合はtrueに設定する.
ただし,実時間よりも遅い場合は,trueにしても効果はない.
ノードの詳細
対応するファイルフォーマット: RIFF WAVEファイルを読み込むことができる.チャネル数,量子化ビット 数はファイルのヘッダから読み込むが,サンプリング周波数,量子化手法を表すフォーマットIDは無視する.
チャネル数,サンプリング周波数は任意の形式に対応する.サンプリング周波数が処理を行う上で必要になる 場合は,パラメータとして要求するノードがある(GHDSS,MelFilterBankなど).量子化手法とビット数は,
16または24ビット符号付き整数によるリニアPCMを仮定する.
パラメータの目安: 処理の目的が音声の分析 (音声認識など)の場合,LENGTHには 20 ∼ 40 [ms]程度,
ADVANCEにはLENGTHの1/3 ∼ 1/2 程度が良いとされている.サンプリング周波数が16000 [Hz]の時,
LENGTH,ADVANCEのデフォルト値はそれぞれ,32,10 [ms]に対応する.