The general recommendation for window size when calculating MFCC seems to be 20-40 msec. This is most often recommended in a context of 16000 samples per second, so leading to a window containing 320-640 samples.

What if my input is at 8000 samples per second, should the time frame of the window be targeted at 20-40 msec or should the amount of samples be targeted at 320-640?

I understand the window needs to have a minimal duration in order to include lower frequencies and that the maximum duration is limited to have stable sounds (phones). What would be the reason to still prefer 40 msec over 20 msec?

What determines the minimal amount of samples? A 20msec window at 8000 samples per second is 160 samples, is that sufficient?

Context is speech recognition


I will answer your question from my experience. For most of the time, I've been using window length which is a power of 2, trying a few overlap percentages, training the system and picking the one which performs the best.

In the case of 16000 Hz, I would try 256 samples (16 ms) and 512 samples (32 ms). For 8000 Hz, my bet would be on 256 (32 ms). Don't forget to try a few overlap values, however, it shouldn't change much.

At the end of the day, what matters is the number of MFCC filter banks and the resultant amount of coefficients.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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