I'm computing filterbank by applying 26 triangular filters on a Mel-scale to the power spectrum of an audio frame to extract frequency bands, and I found that some references use filterbank with equal responses at the center frequency of each filter, see the following figure:

enter image description here

A formula for calculating these is as follows:

enter image description here

Then, they take the log of the resulting energies to compute the log filter bank energies.

But, in some other references, they use filters with decrease responses at the center frequency of each filter, i.e. something like this:

enter image description here

I want to understand the difference between these two methods, and which one is more accurate for usage in a speech recognition application based on deep learning?

And what are the formula and different steps to calculate the second one?




  • $\begingroup$ Can you give a reference to the sources? $\endgroup$
    – havakok
    Jan 25, 2020 at 8:47
  • $\begingroup$ @havakok, I added two references, thank you. $\endgroup$
    – Abdulkader
    Jan 25, 2020 at 8:54
  • $\begingroup$ "more accurate": accurate for what? $\endgroup$ Jan 25, 2020 at 9:56
  • $\begingroup$ @MarcusMüller, I mean which one gives better features, MFCCs, to use it in a speech recognition application. Sorry about that. $\endgroup$
    – Abdulkader
    Jan 25, 2020 at 10:29
  • $\begingroup$ @MarcusMüller, More specific: for speech commands recognition using deep learning $\endgroup$
    – Abdulkader
    Jan 25, 2020 at 10:34

2 Answers 2


Normalizing the filterbanks by their widths is optional and totally up to you (similarly to the warping scale Mel/Bark). Depending on your application, you can start without normalization and see what results you are getting. Personally I prefer to keep it fixed and have one knob less for turning. There are more important parameters to tune, such as warping scale, number of banks and coefficients.

For example in the case of DNN's normalization is redundant, since you will be normalizing the input features anyway (at least that's what you should do), so any way you will end up with the same distribution.

  • $\begingroup$ Thank you. Could you please see my answer? $\endgroup$
    – Abdulkader
    Jan 28, 2020 at 13:58
  • 1
    $\begingroup$ It's just summing of all filter weights to $1$. As I said, it's not really important in DNN applications because you will standardize all the features anyway. You can omit the filter scaling and don't lose any precision. $\endgroup$
    – jojeck
    Jan 28, 2020 at 14:05

Here is what I found in this reference:

The mel-cepstrum computed with $H_m[k]$ or $H'_m[k]$ will differ by a constant vector for all inputs, so the choice becomes unimportant when used in a speech recognition system that has trained with the same filters.

And the two equations $H_m[k]$ and $H'_m[k]$ are:

enter image description here

However, on page 328 of the mentioned reference, the author said that $\displaystyle\sum_{m=0}^{M-1}H'_m[k]=1$, and it seems weird to me, so if someone can make this point clear, I will appreciate it.


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.