In the book here, they apply liftering, as a final step of MFCCs features extraction, to isolate the system component by multiplying the whole cepstrum by a rectangular window centred on lower quefrencies, or by de-emphasizing the higher cepstral coefficients.

However, in other references (see the discussion here) they use sinusoidal liftering, defined as:

$$w_i=1+\frac{D}{2}\sin\Big(\frac{\pi i}{D}\Big)$$

Hence, I want to understand the following points:

  • Which liftering step should I do in speech recognition, and what is the difference between these two ways above?

  • What is the parameter $D$ in the formula above, and should I choose its value equal to 12 or 22 if I'm retaining the coefficients 2-to-13 (inclusive) in MFCCs?

Update1: According to this blog:

One may apply sinusoidal liftering to the MFCCs to de-emphasize higher MFCCs which has been claimed to improve speech recognition in noisy signals.

How does applying this lifter de-emphasize higher MFCCs, while the plot of the variable lift (in the blog) looks like this:

enter image description here


It seems to me that sinusoidal liftering is used when we are dealing with MFCCs (the DCT of the logarithmic filter-bank energies), and the low-time liftering is used when we are dealing with the IDFT of the log magnitude spectrum to isolate the vocal tract components.

Since DCT, in this case, equivalents to IDFT, it seems to me when we keep the 2-13 (inclusive) cepstral coefficients and discard the rest, it's equivalent to the low-time liftering to isolate the vocal tract components and drop the source components (which have e.g. the F0 spike). Then, the sinusoidal lifter is used to emphasize the middle cepstral coefficients (according to the comments below).

Also, according to the reference here (page 4), the variable D in the formula above is equal to the number of cepstral coefficients (i.e. 12 in my case). In this case, the plot of this lifter looks like this:

enter image description here

And it seems more logical to de-emphasize higher MFCCs which has been claimed to improve speech recognition in noisy signals, but why should we de-emphasize lower MFCCs too?

UPD. @jojek's comment: It's not about de-emphasizing as much as emphasizing the middle.

So, why do we emphasize the middle? And should I choose $D = 12$ to emphasize the middle?

  • 1
    $\begingroup$ Are you planning to use DTW or GMM's? The liftering was used to emphasize the medium-range coefficients. All those liftering schemes were tweaked by researchers in order to obtain the best performing one for certain applications. This also means that liftering used for speech recognition task might not work well for identity verification or cough recognition. Nowadays, there is no need to optimize the variance of the coefficients, since systems are either using plain Mel-energies or do the input normalization. $\endgroup$
    – jojek
    Jan 28 '20 at 18:08
  • $\begingroup$ @jojek, My application is Speech Command Recognition Using Deep Learning, and I want to feed the MFCCs features to a Convolutional Neural Network $\endgroup$
    – Abdulkader
    Jan 28 '20 at 18:15
  • $\begingroup$ MFCC’s into CNN? That is rather unusual. Why not plain Mel energies? $\endgroup$
    – jojek
    Jan 28 '20 at 18:19
  • $\begingroup$ @jojek Yes, take a look here, and here. $\endgroup$
    – Abdulkader
    Jan 28 '20 at 18:23
  • 1
    $\begingroup$ I would not worry so much about "negative votes" in this case but perhaps @jojek could write his response up as an answer (?). This is to get a chance to close the question gracefully. Otherwise, perhaps this can happen after the question is modified (?). $\endgroup$
    – A_A
    Jan 29 '20 at 10:09

Your Answer

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

Browse other questions tagged or ask your own question.