Take the 2-minute tour ×
Signal Processing Stack Exchange is a question and answer site for practitioners of the art and science of signal, image and video processing. It's 100% free, no registration required.

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 (http://arxiv.org/pdf/1003.4083.pdf) 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 :)!

share|improve this question
    
did you Succeed with youre project? i am trying to do the same thing but with 5 words. –  user4555 May 14 '13 at 8:51
    
@user4555 Yes, my project works and can recognise multiple words (more than 1) –  Phorce May 17 '13 at 11:12
    
@user4555 Message me back if you require some help on your project, I would gladly help :) –  Phorce May 19 '13 at 20:40
    
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 henseri88@gamil.com, it's quite urgent thank you." –  user4555 May 20 '13 at 18:20
    
@user4555 Please correct your email address, I have tried to contact you but had no such luck –  Phorce May 21 '13 at 18:42
add comment

1 Answer

up vote 2 down vote accepted

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.

share|improve this answer
    
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 –  Phorce Nov 30 '12 at 14:58
    
Your framing parameters are correct. Yes, MFCC are a good and proven place to start for speech recognition. –  pichenettes Nov 30 '12 at 16:07
    
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 :) –  Phorce Nov 30 '12 at 17:30
    
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. –  pichenettes Nov 30 '12 at 20:38
    
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? –  Phorce Nov 30 '12 at 23:12
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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