How to Reduce Speech Feature Dimensions? I have been experimenting with speaker independent automatic speech recognition.  At this point, I understand that the signal is typically segmented into overlapping frames and MFCCs are extracted as features for each frame.

A lot of the texts I read talk about reducing the dimensionality of the features using (for example) Linear Discriminant Analysis or Primary Component Analysis.  While I think I understand the concepts involved in reducing dimensions in the abstract, I am not understanding how this feature reduction is supposed to be applied to the MFCC vectors.

I am interested primarily because several texts seem to suggest that reducing the dimensionality produces less variant features, which make recognizing patterns easier.  As a bonus, there is also less computational overhead.

Is the dimension reduction supposed to be applied on a per-frame basis?  For something like LDA, don't you need to know what class the data belongs to?

Thanks,
Carl
You have one feature vector per frame. The collection of feature vectors for all the frames in the training data form a matrix. Since this is training data, you know the true class for each frame. Use this matrix and the training data labels to build your LDA matrix. Alternatively, just use this matrix (without the labels) to find the PCA matrix.

Now you use this matrix to reduce the dimensionality of the feature vector for each frame in your test data when you're doing the speech recognition.

PCA doesn't produce less variant features. I think what you meant to say was that the features are less correlated with each other. This is called whitening and it can help some classifiers better learn from the training data.