I'm working on gender estimation from speech signal and I completed MFCC feature extraction. So now I'm trying to estimate gender from these features. But I have frames for an audio file and I extracted 13 coefficients for each frame. I'm thinking about using K Means algorithm for male or female classification but I not only have 1 vector. For example I have 250 frames and 13 coefficients for each frame. So I have a 250x13 array. How can I use K Means on an audio file which is divided in 250 frames? Should I classify each frame? I hope I can explain my question correctly. Thank you so much.

  • $\begingroup$ I suggest to start with a simple classification into two classes based on your MFCC vectors. Simply train a classifier of your choice (SVM, NN, k-Means) using Bag-of-frames approach - simply concatenate all frames containing the voice. I can also suggest you to perform a Cepstral Mean Subtraction. You only have to calculate the mean of each coefficient and subtract it - just do it for the speech parts. Further improvement could come from argument if your features with $\Delta$ and $\Delta\Delta$ of MFFC’s. $\endgroup$ – jojek Apr 20 '18 at 17:31

Male and female voices mainly differ on the fundamental frequency. The remaining frequencies, the formants, are specific to each phoneme and do not change a lot with gender. That is why you are able to recognize an "a" as an "a" independent of gender.

This said, I believe you could make a first approach trying to estimate fundamental frequency.

If you still want to use the MFCC then you can use all 250 frames for each person. You are working on a 13 dimension space where you can also form clusters.

For this purpose you can also use Gaussian Mixture Models (GMMs)


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.