Verification of all steps needed to extract MFCCs from raw audio data I need some verification on steps required to extract MFCCs from raw audio as I'm finding that some sources outline them slightly differently.


Get raw audio frame
Run window function (eg Blackman) on raw audio data by multiplying each datapoint with the window
Perform FFT on windowed audio frame.
Calculate magnitudes by powering and summing real and imaginary parts of first half of FFT real^2 + imaginary^2
Convert magnitudes to dBv using 10 * Math.log10(magnitude)
Construct Mel Filter Bank consisting of eg 26 triangular filters spaced out across entire spectrum
Multiply dBv data with Mel Filter Bank to get 26 coefficients
Run log10 on each of the 26 coefficients
Perform DCT/FFT or ?iFFT? on 26 coefficients
Result produced is 26 MFCCs?


Regarding point 7: I'm not certain of input for multiplying with Mel Filter Bank. Should it be dBv, magnitudes, magnitudes converted to Mel scale or something else?

Point 9: I found some sources saying that said 26 coefficients should then be used as an input for DCT/FFTs as though they would be a signal. Other sources say the should be used for an inverse FFT as the result is mean to be a cepstrum. Can someone clarify?

Can someone verify this process and point out any mistakes?

I find it difficult to find solid points of reference covering these techniques and providing reasoning behind them. I was wondering if there's a book covering all of the above with technical examples, starting with theory and explanation of DSP concepts along with MFCCs and related speech analysis techniques. Most books I'm seeing focus mainly on Mixed Markov Models and don't seem cover cepstrums and MFCCs at all (at least by looking at their tables of contents).
Point 7: Multiply and add the FFT with the MelFilter Banks. Therefore, if you are using 26 Filter banks , we will end up getting 26 dimensional vector at the end.
Point 9: Take the DCT of the 26 dimensional vector.
Point 10: Keep the first 12 coefficients and discard the rest.

I understood MFCC features by reading this link: http://practicalcryptography.com/miscellaneous/machine-learning/guide-mel-frequency-cepstral-coefficients-mfccs/

It is very simple to understand from the link above.