5.3.3 float バイナリ

実数を IEEE 758 の 32 ビット 浮動小数点数,リトルエンディアンで格納したファイルであり, HARK  では,主に, 特徴ベクトルやインパルス応答データに用いられるファイル形式である.

5.3.3.1 特徴ベクトル

特徴ベクトルは,実数ベクトルである. SaveFeatures で出力され,拡張子は .spec が用いられる.ベクトルの次 元要素は低次元から高次元方向に書き出される.ベクトル値がもつ意味は,ユー ザの使用に依存する.HARK  で通常用いる特徴は,パワースペクトル, MFCC,MSLS, ミシングフィーチャマスクである. SaveFeatures ではヘッダ情報は記録されないため, 特徴ベクトルの次元数や,ベクトルの数は,記録 されないことに注意されたい. ヘッダ情報の記録に関し, HARK  では HTK(The Hidden Markov Model Toolkit) 形式のヘッダを付与する SaveHTKFeatures をサポートしており,用途に応じて SaveFeatures と SaveHTKFeatures を使い分けることができる.

5.3.3.2 インパルス応答形式

音源位置とマイクロホン間のインパルス応答を表す. 標準の拡張子は .flt であり, harktool で伝達関数の行列を作成するために用いられる.

本形式のファイルをテキストに変換するには,例えば次のようなプログラムを 作成する.

#include <stdio.h>
#include <fcntl.h>

int main(int argc, char *argv[])
{
  int fd=0;
  float data=0;
  
  fd = open(argv[1], O_RDONLY);
  while(1){
    int ret = read(fd, &data, 4); /* 4 [byte] = 32 [bit] */
    if( ret != 4){
      break;
    }
    printf("%f\n", data);
  }
  close(fd);
  return (0);
}