I have a basic understanding of the acoustic preprocessing involved in speech recognition: divide the speech into frames, find the mel frequency cepstral coefficients of each frame, construct a feature vector from the MFCC's and signal energy, and compare the speech to several "prototype" speech samples to find the closest match.

When doing voice recognition (i.e. recognizing who said it, as opposed to what was said), I'm thinking that perhaps a different windowing function is used, or maybe a different type of filter bank is used to transform the spectrum to the mel scale, but I'm not entirely sure--perhaps it is a different process altogether. Does anyone know MFC analysis for speaker recognition differs from the analysis for speech recognition?


1 Answer 1


This is the exact same extraction procedure. Parameters such as frame rate, number of filter banks, band spacing etc. might vary a bit from one system to another, but this is just a consequence of the tuning procedure (the parameters yielding the best performance are selected), more than a fundamental difference. The "sweet spot" for some parameters such as frame duration is the same for both tasks.

You have to keep in mind that MFCCs capture an overall timbre parameter which measures both what is said (phones) and the specifics of the speaker voice & gender, and it is hard to factor these two dimensions apart. The MFCC vector of Alice saying "o", Bob saying "o", Alice saying "a" and Bob saying "a" are all different - which would make it look that this feature would be hard to use for speech recognition (due to speaker variability) and for voice identification (due to phone variability). There are workarounds, though...

In voice recognition systems, you have to make sure that the training data contains enough occurrences of all phones for each speaker. If you train your Bob voice model on Bob's "o"'s, it won't work when you feed it Bob's "a"'s. Because of that, the training set of MFCC data for a given speaker will have to be by design quite heterogenous - and this is why gaussian mixture models have been so successful at this task.

The reverse problem appears in speech recognition system: if you train a recognition system trained on Bob's voice, and try to feed it with MFCC data computed on Alice's voice, it will not work. One solution to this problem (vocal tract length normalization) is to find a linear transform of the MFCC vector such that, when applied to Alice's MFCC data, make it similar to what the model has captured.


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.