I have been researching about Speech Recognition and I have decided to take the MFCC approach to solving this problem of detecting whether someone is saying either "Yes" or "No". So as mentioned before (My steps so far):

  • Read in Audio File
  • Split the Audio Signal into blocks (600 samples, 30msec long)
  • Strip the blocks that do not warrant consideration (Total Energy / Zero-crossing)

So I am going to construct the MFCC based on this paper and it has the following steps:

  1. Pre–emphasis
  2. Framing
  3. Hamming Windowing
  4. FFT
  5. Mel Filter Bank Processing
  6. Discrete Cosine Transform
  7. Delta Energy and Delta Spectrum

This makes sense to me (Kind of) and I am going to research into each of these steps. BUT should I perform the MFCC on the resulting blocks that I have already done with (steps 1, 2, 3) at the top of this question, or, should I not carry out these steps and just start from the beginning and compute the MFCC and will I still be able to implement a Hidden Markov Model?

The other question is, if I split the signal into "Frames" (2D vector) will the resulting MFCC be a 2D vector, or a 1D vector?

Hope someone can help :)!

  • $\begingroup$ did you Succeed with youre project? i am trying to do the same thing but with 5 words. $\endgroup$
    – user4555
    May 14, 2013 at 8:51
  • $\begingroup$ @user4555 Yes, my project works and can recognise multiple words (more than 1) $\endgroup$
    – Phorce
    May 17, 2013 at 11:12
  • $\begingroup$ @user4555 Message me back if you require some help on your project, I would gladly help :) $\endgroup$
    – Phorce
    May 19, 2013 at 20:40
  • $\begingroup$ i have serious problem with this site. i dont't know i you notice my last comment so i post it again. "i have some questions about that .i have problems with this site, coulde you email me and we discuss it there? my mail is [email protected], it's quite urgent thank you." $\endgroup$
    – user4555
    May 20, 2013 at 18:20
  • $\begingroup$ @user4555 Please correct your email address, I have tried to contact you but had no such luck $\endgroup$
    – Phorce
    May 21, 2013 at 18:42

1 Answer 1


Regarding your existing steps:

  • Do you have some overlap between adjacent blocks? It is common in feature extraction systems to have some overlap between adjacent blocks, so that a short transient event can be correctly captured (if it is right at the end of a block, it will be right in the middle of the next one).
  • Your idea of discarding blocks is dangerous. You can do this to roughly identify the beginning and end of a speech segment; but silence recognition can also be built into the recognition model.

Regarding the data size:

Your signal is split into frames. For each frame, you compute a 1-D MFCC vector. So in the end, you have a sequence of 1-D MFCC vectors. This is the data on which you train your HMMs.

  • $\begingroup$ Thank you for the reply. At the minute, Adjacent frames are being separated by M.. M = 100 N = 256 where the rawData vector is 44104 in size and framing produces 438 blocks, does this look correct? Also, is the MFCC a good route to go down, to train my HMM? I know it seems I not very experienced, but I am learning and willing to learn / taking everything you say and others onboard :)! Hope you reply $\endgroup$
    – Phorce
    Nov 30, 2012 at 14:58
  • $\begingroup$ Your framing parameters are correct. Yes, MFCC are a good and proven place to start for speech recognition. $\endgroup$ Nov 30, 2012 at 16:07
  • $\begingroup$ Thank you :) I'm going to follow this method to hopefully arise at finding a solution to the problem. Do you personally think, it is achievable (using MFCC / HMM) to detect whether someone is saying "Yes" or "No"? Honest, professional opinion :) $\endgroup$
    – Phorce
    Nov 30, 2012 at 17:30
  • $\begingroup$ Yes. But don't try reinventing the wheel, or skip steps that look intimidating... Find a good textbook or online class materials, and follow the recipe. $\endgroup$ Nov 30, 2012 at 20:38
  • $\begingroup$ No no, I've found this arxiv.org/pdf/1003.4083.pdf paper and the only thing that looks intimidating is the FFT but, I'm not going to try and implement an FFT algorithm, there are libraries out there. Hopefully, I can develop this within a month and then start working on the Markov Model to hopefully find a solution. Is this paper a good starting point for MFCC? $\endgroup$
    – Phorce
    Nov 30, 2012 at 23:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.