SHORT AND SIMPLE: Hi all very simply... I just want to know the steps that are involved to get an MFCC from an FFT.
DETAILED:
Hi all. I am working on a drum application where I want to classify sounds. Its just a matching application, it returns the name of the note that you play on the drum.
Its a simple indian loud big drum. There are only a few notes on there that one can play.
I've implemented the fft algorithm and successfully obtain a spectrum. I now want to take it one step further and return the mfcc from the fft.
This is what i understand so far. its based on linear cosine transform of a log power spectrum on a nonlinear mel scale of frequency.
it uses triangulation to filter out the frequencies and get a desired coefficient. http://instruct1.cit.cornell.edu/courses/ece576/FinalProjects/f2008/pae26_jsc59/pae26_jsc59/images/melfilt.png
so if you have around 1000 values returned from the fft algorithm - the spectrum of the sound, then desirably you'll get around 12 elements (i.e., coefficients). This 12-element vector is used to classify the instrument, including the drum played...
this is exactly what i want.
Could someone please help me on how to do something like this? my programming skills are alright. Im currently creating an application for the iphone. with openframeworks.
Any help would be greatly appreciated. Cheers
First, you have to split the signal in small frames with 10 to 30ms, apply a windowing function (humming is recommended for sound applications), and compute the fourier transform of the signal. With DFT, to compute Mel Frequecy Cepstral Coefficients you have to follow these steps:
A python code example:
This code is based on MFCC Vamp example. I hope this help you!