サンプリング周波数 F_s = 16000 Hz、フレーム長 N = 512、プリエンファシス係数 α = 0.97 を仮定しています。雑音は決定論的 LCG で生成しています。
上から:入力信号 x[n](青)/パワースペクトル |X[k]|²(緑)/メルフィルタバンクエネルギー log E_m(橙)/MFCC 係数 c_n(赤)
MFCC は音声信号を「人間の聴覚に近いメルスケール」と「ケプストラム解析」の組合せで圧縮した特徴量です。プリエンファシス → 窓掛け → DFT → メルフィルタバンク → 対数 → DCT の順に処理します。
プリエンファシスで高域を強調(α ≈ 0.97):
$$y[n] = x[n] - \alpha\,x[n-1]$$ハミング窓を掛けた N サンプルから DFT し、パワースペクトル $|X[k]|^2$ を求めます。Mel スケール変換:
$$m(f) = 2595\,\log_{10}\!\left(1 + \frac{f}{700}\right)$$M 個の三角メルフィルタ $H_m$ をメル軸上に等間隔で配置し、対数フィルタバンクエネルギーを得ます:
$$\log E_m = \log\!\left(\sum_{k} H_m[k]\,|X[k]|^2\right)$$最後に DCT でケプストラム係数を取り出します:
$$c_n = \sum_{m=0}^{M-1} \log E_m \cdot \cos\!\left(\frac{\pi n (m+\tfrac{1}{2})}{M}\right)$$DCT の役割は「対数スペクトルの包絡(声道)」と「微細構造(声帯)」の分離です。低次の c_n が声道形状、高次が声帯振動に対応します。