6.4.4 MFCCExtraction

6.4.4.1 ノードの概要

本ノードは,音響特徴量の1つであるメルケプストラム係数 (MFCC : Mel-Frequency Cepstrum Coefficients) を求める. メルケプストラム係数と対数スペクトルパワーを 要素とする音響特徴量ベクトルを生成する.

6.4.4.2 必要なファイル

無し.

6.4.4.3 使用方法

どんなときに使うのか

メルケプストラム係数を要素とする音響特徴量を生成するために用いる. 音響特徴量ベクトルを生成するために用いる. 例えば,音響特徴量ベクトルを音声認識ノードに入力し,音韻や話者を識別する.

典型的な接続例

\includegraphics[width=120mm]{fig/modules/MFCCExtraction}
Figure 6.90: MFCCExtraction の典型的な接続例

6.4.4.4 ノードの入出力とプロパティ

Table 6.79: MFCCExtraction のパラメータ表

パラメータ名

デフォルト値

単位

説明

FBANK_COUNT

int 

24

 

入力スペクトルにかけるフィルタバンク数

 NUM_CEPS

int 

12

 

リフタリングで残すケプストラム係数の数

  USE_POWER

bool 

false

 

対数パワーを特徴量に含めるか含めないかの選択

入力

FBANK

: Map<int, ObjectRef> 型.音源 ID とフィルタバンクの出力エネルギーから構成される ベクトルの
Vector<float> 型のデータのペア.

SPECTRUM

: Map<int, ObjectRef> 型.音源 ID と複素スペクトルから構成される ベクトルの
Vector<complex<float> > 型のデータのペア.

出力

OUTPUT

: Map<int, ObjectRef> 型.音源 ID と MFCC と対数パワー項から構成される ベクトルの Vector<float> 型のデータのペア.

パラメータ

FBANK_COUNT

: int 型.入力スペクトルにかけるフィルタバンク数. デフォルト値は24である.値域は,正の整数. 値を大きくすると 1 バンク当りの担当周波数帯域が狭くなり, 周波数分解能の高い音響特徴量が求まる. より大きな FBANK_COUNT を設定すると,音響特徴をより精細に表現する. 音声認識には,必ずしも精細な表現が最適ではなく,発声する音響環境に依存する.

NUM_CEP

: int 型.リフタリングで残すケプストラム係数の数. デフォルト値は12.値域は,正の整数. 値を大きくすると音響特徴量の次元数が増える. より細かなスペクトル変化を表現する音響特徴量が求まる.

USE_POWER

: bool 型.対数パワーを特徴量に含めて出力する場合は true指定.

6.4.4.5 ノードの詳細

音響特徴量の1つであるメルケプストラム係数 (MFCC : Mel-Frequency Cepstrum Coefficients) と対数パワーを求める. MFCC と対数スペクトルパワーを 次元要素とする音響特徴量を生成する.

対数スペクトルに,三角窓のフィルタバンクをかける.三角窓の中心周波数は, メルスケール上で等間隔になるように配置する.各フィルタバンクの出力対数 エネルギーをとり,離散コサイン変換 (Discrate Cosine Transform) する. 得られた係数をリフタリングした係数が MFCC である.

本ノードの入力部の FBANK には, 各フィルタバンクの出力対数エネルギーが 入力されることが前提である.

フレーム時刻 $f$ における FBANK への入力ベクトルを,

  $\displaystyle \boldsymbol {x}(f) $ $\displaystyle = $ $\displaystyle [ x(f,0),x(f,1), \cdots , x(f,P-1) ]^ T $   (140)

と表す.ただし,$P$ は,入力特徴ベクトルの次元数で,FBANK_COUNT である. 出力されるベクトルは,$P+1$次元ベクトルで, メルケプストラム係数と パワー項から構成される.1 次元目から $P$ 次元目までは, メルケプストラム係数で,$P+1$ 次元目は,パワー項である. 本ノードの出力ベクトルは,

  $\displaystyle \boldsymbol {y}(f) $ $\displaystyle = $ $\displaystyle [y(f,0),y(f,1),\dots ,y(f,P-1), E]^ T $   (141)
  $\displaystyle y(f,p) $ $\displaystyle = $ $\displaystyle \displaystyle L(p) \cdot \sqrt {\frac{2}{P}} \cdot \sum _{q=0}^{P-1} \Bigl \{ \log (x(q)) \cos \Bigl ( \frac{ \pi (p+1) (q+0.5)}{P} \Bigr ) \Bigr \} $   (142)

ただし,$E$ は,パワー項(後述)で,リフタリング係数は,

  $\displaystyle L(p) $ $\displaystyle = $ $\displaystyle 1.0 + \frac{Q}{2} \sin \Bigl ( \frac{\pi (p+1)}{Q} \Bigr ), $   (143)

である.ただし,$Q=22$ である.

パワー項は,SPECTRUM 部の入力ベクトルから求める.入力ベクトルを

  $\displaystyle \boldsymbol {s} $ $\displaystyle = $ $\displaystyle [s(0),\dots ,s(K-1)]^ T, $   (144)

と表す.ただし, $K$ は,FFT 長である.$K$ は,SPECTRUM に接続された Map の次元数によって決る. 対数パワー項は,

  $\displaystyle E $ $\displaystyle = $ $\displaystyle \log \Bigl ( \frac{1}{K} \sum _{k=0}^{K-1} s(k) \Bigr ) $   (145)