語音信號處理–Mel Frequency Cepstrum Coefficients (MFCCs)

by allenlu2007

承上文 PhysioNet 2016 challenge, 最重要的 features 是 MFC (Mel Frequency Cepstrum) 係數的前 13 項。再加上 sample kurtosis and sample entropy.   到底 Mel Frequency Cepstrum Coefficients 是什麽?爲什麽有效?

本文主要參考: http://research.cs.tamu.edu/prism/lectures/sp/l9.pdf

以及 http://mirlab.org/jang/books/audioSignalProcessing/speechFeatureMfcc_chinese.asp?title=12-2%20MFCC

This lecture is based on [Taylor, 2009, ch. 12; Rabiner and Schafer, 2007, ch. 5; Rabiner and Schafer, 1978, ch. 7 ] 

Cepstrum

Spectrum 的定義是 20log10|F{x[n]}| or 10log10|F{x[n]}|.  Spectrum 把字首反排成 Cepstrum, 定義也很特別。簡單來説就是 Cepstrum = IDFT{Spectrum}.   

image

1. abs and log operations 自動把 phase information 消除 (but frequency information keeps). 對於 communication 是罪惡,但對 voice 似乎無妨。也許是耳朵對 phase 不敏感。但對 log (frequency response) 敏感。

2. abs and log operations 都是 nonlinear operations.  因此 c[n] 不會是 x[n] 的 replica 或是 linear filtering.  c[n] 的 harmonics 部分會加强。 c[n] is complex sequence?  如果改爲 DCT (discrete cosine transform) 就會變成 real sequence.

Examples

1. x[n] 是 pure sine wave.  After DFT, ABS, and LOG 仍然得到 c[n] 是 sine wave 如下圖左。rceps(sin[x])

很明顯一般的聲音不是如此。如果是周期 waveform with harmonics, 在 abs and log operations 之後,加强 harmonics 部分。在 DCT 之后加强 waveform 的 distortion.  例如 sawtooth waveform 最後得到的 cepstrum 如下圖右。基本上還是保持類周期性質,衹是 distortion 更嚴重。rceps(sawtooth[x]) 

image  image

Cepstrum 的新詮釋

前段提到 Cepstrum = IDFT{Spectrum}, 是從比較 x[n] and c[n] 角度出發。 

但在 reference  給了一個完全不同的詮釋如下。重點是: log spectra (power spectrum) 視爲 waveform!  IDFT 是用來分開 power spectrum 的 frequency and amplitude modulation.

image

下圖就是一個例子。log spectrum 在 log 后變得像 periodic waveform.  在 IDFT 后對應高頻部分是 power spectrum 上的 ripple.  如果在 cepstrum 加上 filter, 可以移除 ripple, 稱爲 liftering.  Liftering 有實際的用途嗎?

image

image

System Convolution

OFDM 一個最大的優點就是把 system convolution 轉換爲 multiplication (FEQ). 

同樣 Cepstrum 的一個很大的優點也是如此。把 system convolution 轉換爲 addition.

這對聲音很重要。可以分開 source and filter.  Source: glottal excitation, 對應 high frequency coefficients.  Filter: vocal tract, 對應 low frequency coefficients.

image

Comparison of LPC, STFT, Cepstrum smoothing, and Homomorphic smoothing

回到 frequency domain (spectrum), 我們可以比較幾種常見的語音算法,包含 Short-time Fourier transform (STFT), LPC (Linear Predictive Coefficients), Homomorphic smoothing, Mel-cepstral smoothing.  How about wavelet?  結果如下:

STFT: 似乎最大的問題是 ripple, 也就是無法分開 source and filter?

LPC, Homomorphic, and Mel-Cepstrum 看來 spectrum 都很像。重點還是在 parameter domain (time domain for STFT, qerfreny for cepstraum, etc.)  是否有明顯可辨識的特徵。

image

Voice detection 是常見的應用。以下是常見參數 for speech signal.

50-ms window, 12.5-ms shift,

Fs=8KHz, Nmfcc = 14 (number of cestral coefficients) , and R = 22 (cepstral sine lifter parameter).

In summary, Mel Cepstrum works 的主要因素是 harmonic rich signal!  經由 log operation 放大 harmonics, 再經由 DCT 得到 cepstrum spike.

image

Advertisements