Using MFCC in spoken words recognition We're trying to implement a "simple" speech recognition application in MATLAB (isolated words from a very limited dictionary). We've been trying the following methods:


Extract MFCC coefficients for each frame of the word, and then compare to templates that we have recorded previously using DTW, and take the template that gave the minimal distance as the recognized word. (note: the "templates" are 10 recordings of each of the 6 dictionary-words).
Extract MFCC coefficients for each frame, and run an SVM on the coefficients (for each dictionary word we had a different SVM classifier).
Extract MFCC coefficients for each frame, and then define the feature vector as the vector of all distances from all the templates, then run an SVM on these features.


All three of these methods didn't work well (and gave almost everything wrong results). 
We don't know what the problem is.. A few questions that arose, but we don't know the answers, are:


Do we really need 10 samples of each word? or can we "combine" them into a single template? and if so, how?
Should we run the SVM directly on the MFCCs vectors? On the MFCC vector of vectors (for each word)? On the DTW values? or should we combine all the MFCC vectors into a single one?
If we should look for a minimal match for the DTW between the input and the templates, should we give different weights to the templates depending on length, or even account for the differences between the templates (the templates of the word "1" are more distant from one another than the templates of the word "2").


&nbsp;

We would appreciate any help, or references to good sources. We thought about using HMMs, but it seems much more difficult and not really possible in our time-frame..

Thanks.
Do we really need 10 samples of each word? or can we "combine" them into a single template? and if so, how?


You can use single template, 10 templates will make result more accurate.


  Should we run the SVM directly on the MFCCs vectors? On the MFCC vector of vectors (for each word)? On the DTW values? or should we combine all the MFCC vectors into a single one?


SVM has no meaning for your application because it is not invariant to time stretch so it's not suitable for classification of time series. There are SVM modifications to deal with time series, for example

Hidden Markov Support Vector Machines

but it's completely different story


  If we should look for a minimal match for the DTW between the input and the templates, should we give different weights to the templates depending on length, or even account for the differences between the templates (the templates of the word "1" are more distant from one another than the templates of the word "2").


No, it's not necessary. A simple comparison of DTW values should work.


  All three of these methods didn't work well (and gave almost everything wrong results).


Probably you made a mistake in DTW implementation first of all. You need to verify if you implemented everything correctly. You might make a mistake in DTW and go to incorrect conclusion


  or references to good sources.


Read a good text book. At least Rabiner "Fundamentals of Speech Recognition"