本文へ移動

G検定(ジェネラリスト検定)

めるしゅうはすうけぷすとらむけいすう

メル周波数ケプストラム係数

MFCC

Mel-Frequency Cepstral Coefficients

メル周波数ケプストラム係数(MFCC)は、音素の識別に役立つ側面を強調した音声波形の特徴量で、39次元のベクトルで表されます。

詳しい説明

MFCCとは何か

メル周波数ケプストラム係数(MFCC、Mel Frequency Cepstral Coefficients)は、音声の波形を、音素の識別に役立つ側面が強調されるように表した特徴量です。音声認識では、波形をそのまま扱うのではなく、区切った入力フレームごとにこのような特徴ベクトルへ変換してから利用します。

MFCCは39次元の特徴ベクトルで、内訳は次のとおりです。

  • ケプストラム係数 12個
  • デルタケプストラム係数 12個
  • デルタデルタケプストラム係数 12個
  • エネルギー係数 1個
  • デルタエネルギー係数 1個
  • デルタデルタエネルギー係数 1個

ケプストラム係数とエネルギー係数のそれぞれに、デルタとデルタデルタの係数が加わり、12個ずつの3組と1個ずつの3組を合わせて39次元になります。

メルフィルタバンクと対数による前処理

MFCCを作る手順の1つ目は、周波数帯ごとのエネルギーを集めるフィルタの束(フィルタバンク)を当てることです。フィルタは対数的に配置され、低い周波数では非常に細かい分解能を、高い周波数では粗い分解能を持ちます。個々のフィルタは三角形の形をしており、メル尺度に沿って対数的な間隔で並び、それぞれが担当する周波数範囲のエネルギーを集めます。メル尺度そのものの定義についてはメル尺度の項目で扱います。

2つ目は、得られたメルスペクトルの各値の対数をとることです。理由は2つあります。1つは、信号の大きさに対する人間の反応が、周波数に対する反応と同じように対数的であることです。人間は振幅が大きいところでは、振幅が小さいところに比べて、わずかな振幅の違いに鈍感です。もう1つは、対数を使うと、話者の口がマイクに近づいたり離れたりすることによるパワーの変動のような、入力の変動に特徴量の推定が左右されにくくなることです。

特定のフィルタから出る1つのスカラー値をチャネルと呼びます。フィルタバンクの出力は入力フレームごとに、たとえば80や128のチャネルから成るベクトルになり、各チャネルはメル間隔で区切った特定の周波数帯の対数エネルギーを表します。

ケプストラムによる音源とフィルタの分離

MFCCの係数はケプストラムに基づいています。ケプストラムは、音源とフィルタを分離する便利な方法と考えることができます。

音声の波形は、ある基本周波数を持つ声門の音源波形が声道を通ることで生まれます。声道はその形によって特有のフィルタ特性を持ちます。声門音源の多くの特徴(基本周波数や声門パルスの細部など)は、異なる音素を区別するうえでは重要ではありません。音素の検出に最も役立つ情報はフィルタ、つまり声道の正確な位置のほうです。声道の形がわかれば、どの音素が発音されているかがわかります。

そこで音素の検出に有用な特徴量は、音源とフィルタを逆畳み込みによって分離し、声道フィルタだけを示すものが望ましいことになります。ケプストラムはこれを行う方法の1つであり、MFCCはこの考え方を取り入れた特徴量です。

試験で問われること

G検定

  • MFCCは音声のどのような側面を強調した特徴量であり、何の識別に役立つとされていますか。
  • MFCCが39次元になる内訳(ケプストラム係数・デルタ・デルタデルタとエネルギー係数の組み合わせ)を説明できますか。
  • メル尺度に沿った三角形のフィルタバンクの出力に対数をとる理由を、人間の振幅知覚と入力の変動への強さの2点から説明してください。
  • ケプストラムが声門音源と声道フィルタを分離する方法とされるのはなぜか、音素の識別に有用なのはどちらの情報かとあわせて説明してください。

最終更新日: 2026/09/23