音声認識メモ(HMM)その1(HTK HCopyコマンド(1))

Juliusに渡す音響モデルを"HTK"(Hidden Markov Model Toolkit)で作成する。

音声データは、"もしもし"という発声をWAVEファイルに保存したものを用意した。

  • サンプリングレートは [16000 Hz]
  • チャンネル数は [1] (モノラル)
  • 量子化深度 (サンプリングデータを何ビットで表現するか) は [16 bit]


f:id:ichou1:20170930092752p:plain

値部分のバイトオーダはlittle-endianであることに留意。

①サンプリングレート:0x00003e80 (10進数16000)
②1サンプルあたりのバイト数:0x0002 (10進数2)
量子化深度:0x0010 (10進数16)
④音声データ (dataチャンク) のバイト数:0x0000fa00 (64000)
⑤音声データ1秒あたりのバイト数:0x00007d00 (32000)

時間にして2秒 (=④ / ⑤)


この音声データのMFCC (Mel-Frequency Cepstrum Coefficients:音声認識でよく使われる特徴量)をHTKで計算する。

HCopyコマンドに渡すconfigのパラメータは以下とする。

SOURCEFORMAT = WAV
SOURCEKIND = WAVEFORM
SOURCERATE = 625
TARGETKIND = MFCC_0_D_A
TARGETRATE = 100000.0
WINDOWSIZE = 250000.0
USEHAMMING = T
PREEMCOEF = 0.97
NUMCHANS = 24
NUMCEPS = 12

SOURCERATE、TARGETRATE、WINDOWSIZEの単位は100ナノ秒

  • 1サンプルあたりの時間は0.0625ミリ秒(=62.5マイクロ秒=62,500ナノ秒
  • 1フレーム(MFCC計算の単位)は25ミリ秒 (25,000マイクロ秒=25,000,000ナノ秒)
  • 次のフレームは10ミリ秒 (=10,000マイクロ秒=10,000,000ナノ秒)ずらす
  • 1フレームありのサンプル数:400(= WINDOWSIZE / SOURCERATE)


f:id:ichou1:20170930103049p:plain

2000ミリ秒(=2秒)の音声データに対して198フレーム分の計算結果が得られる。

-------------------------------- Source: mfcc/mosi1.mfc ------------------------------
  Sample Bytes:  156      Sample Kind:   MFCC_D_A_K_0
  Num Comps:     39       Sample Period: 10000.0 us
  Num Samples:   198      File Format:   HTK
-------------------------------- Observation Structure -------------------------------
x:      MFCC-1  MFCC-2  MFCC-3  MFCC-4  MFCC-5  MFCC-6  MFCC-7  MFCC-8  MFCC-9 MFCC-10
       MFCC-11 MFCC-12      C0   Del-1   Del-2   Del-3   Del-4   Del-5   Del-6   Del-7
         Del-8   Del-9  Del-10  Del-11  Del-12   DelC0   Acc-1   Acc-2   Acc-3   Acc-4
         Acc-5   Acc-6   Acc-7   Acc-8   Acc-9  Acc-10  Acc-11  Acc-12   AccC0
------------------------------------ Samples: 0->-1 ----------------------------------
0:      -0.270  -2.482  -0.222  -3.174  -4.148   6.755   3.201  -6.396  -0.943 -14.934
        -2.665  -5.884  51.062  -2.713  -2.858   0.172   0.460  -1.084   0.382  -0.724
         1.282   4.140   3.877   0.393   0.042  -1.446   0.152   0.347  -0.232  -0.374
        -0.656  -0.179   0.260  -0.368  -0.584  -0.487  -0.157   0.155   0.286
1:      -5.857  -5.845   6.109   2.003  -8.462   7.991  -2.465 -11.863   9.490  -3.531
        -0.966  -7.169  46.207  -3.221  -3.131  -0.875  -0.411  -2.438  -0.760  -0.573
         0.987   3.265   2.144  -0.221   0.315  -1.525   0.874   1.159  -0.130  -0.637
        -0.432   0.011   0.593  -0.462  -1.111  -0.721  -0.178   0.012   0.727

(途中省略)

197:   -12.438  -3.049  -4.389  -1.899   2.578  -5.795  -3.100  -3.889  -4.516  -1.362
         2.812  -9.024  36.115  -0.607  -0.962  -0.332   0.013  -0.139  -2.087  -1.590
        -1.025  -1.040   0.152   0.350   0.315  -0.158  -0.036  -0.210  -0.091   0.040
        -0.131  -0.440  -0.371  -0.222   0.068   0.118   0.333   0.534   0.027
----------------------------------------- END ----------------------------------------