MFCCの計算方法についてメモ

MFCC とは

Mel-Frequency Cepstral Coefficients (MFCCs) のこと。音声認識でよく使われる、音声の特徴表現の代表的なもの。

算出手順

  • 音声信号を適当な長さのフレームで切り出し
  • 窓がけ
  • フーリエ変換して対数振幅スペクトルを求める
  • メルフィルタバンクを掛けて、メル周波数スペクトルを求める
  • 離散コサイン変換により、MFCCを求める

以上。SPTKのmfccコマンドのソースもだいたいそうなってた。

さて

ここに音声波形があるじゃろ??

音声波形を窓がけして…

さらにフーリエ変換して対数取って…

ここでメルフィルタバンクの出番じゃ

最後に離散コサイン変換で完成じゃ

まとめ

  • MFCC求めたかったら、普通はHTKかSPTK使えばいいんじゃないですかね。自分で書くと面倒くさいです
  • 正規化はどうするのがいいのか、まだよくわかってない。単純にDCT(IIを使った)を最後に掛けると、かなり大きい値になって使いにくい。ので、 http://research.cs.tamu.edu/prism/lectures/sp/l9.pdf にもあるとおり、mel-filterbankの数(今回の場合は64)で割った。
  • 間違ってるかもしれないけどご愛嬌

参考