本節では,HARK で利用するファイルの種類およびその形式について述べる. 従来の HARK では多様なファイルフォーマットが使用されており、全体像の把握が困難であった。 特にバイナリ形式の伝達関数ファイルはフォーマットが複雑で解析が困難であった。 そこで、 HARK 2.1 より、 従来の種類の多いファイルフォーマットをよりシンプルな形式に整理した。 設計方針は次の2 点である。
できるだけ標準に使用されているフォーマットを使い、独自形式は減らす。
ファイル入出力 API を提供するライブラリを充実させる。
本方針に従い、 独自のファイルフォーマットは 行列を表現する Matrix バイナリのみで、その他はすべて 標準的なフォーマットとそれの組み合わせとした。 また、ファイル入出力をサポートするライブラリ libharkio3 を提供し、ファイルの操作を容易にした。
HARK の独自ファイルフォーマットは、以下の3種類である。
XML: 位置を表現するファイルに使用。拡張子は .xml
Matrix バイナリ: 行列を表現するファイルに使用。拡張子は .mat
Zip: 伝達関数など、上記のファイルから構成される複雑なファイル形式に使用。拡張子は .zip
他のファイルは上記 3 種類に統合、あるいは標準フォーマットを使用するように変更される。
HARK では、ノードの入出力やプロパティ設定でファイルを指定することができる. 表 5.1 に一覧を示す。
ノード名 |
使用箇所 |
ファイル種類 |
新ファイル形式 |
旧形式 |
出力 |
Raw Audio ファイル |
Raw Audio Format |
同じ |
|
出力 |
Wave ファイル |
PCM Wave Format |
同じ |
|
プロパティ設定 |
音源定位伝達関数ファイル |
Zip |
HGTF バイナリ |
|
出力 |
音源定位結果ファイル |
XML |
定位結果テキスト |
|
プロパティ |
音源定位結果ファイル |
XML |
定位結果テキスト |
|
プロパティ設定 |
音源分離伝達関数ファイル |
Zip |
HGTF バイナリ |
|
プロパティ設定 |
マイクロホン位置ファイル |
XML |
HARKテキスト |
|
プロパティ設定 |
定常ノイズ位置ファイル |
XML |
HARKテキスト |
|
プロパティ設定 |
初期分離行列ファイル |
Zip |
HGTF バイナリ |
|
出力 |
分離行列ファイル |
Zip |
HGTF バイナリ |
|
出力 |
特徴量ファイル |
Matrix バイナリ |
float バイナリ |
|
出力 |
特徴量ファイル |
HTK 形式 |
同じ |
|
出力 |
Map データファイル |
XML |
Map テキスト |
|
プロパティ |
相関行列ファイル |
Zip |
相関行列テキスト |
|
出力 |
相関行列ファイル |
Zip |
相関行列テキスト |
|
JuliusMFT |
起動時引数 |
設定ファイル |
jconf (テキスト) |
同じ |
設定ファイル中 |
音響モデル・音素リスト |
julius 形式 |
同じ |
|
設定ファイル中 |
言語モデル・辞書 |
julius 形式 |
同じ |
|
harktool |
harktool |
音源位置リストファイル |
XML |
srcinfテキスト |
harktool |
インパルス応答ファイル |
PCM Wave Format |
float バイナリ |
以降では,HARK で使用する 3種類のフォーマットについて説明する。 なお、Julius 形式については Julius のファイルフォーマットに基本的に準ずる. オリジナルの Julius との違いに関しては JuliusMFT の説明を参照されたい。 Raw Audio Format, PCM Wave Format については、標準フォーマットに準ずるのでその説明を参照されたい。