1

I am trying to create a GMM speaker model, using the MFCC features of an audio sample of a speaker. I have 18 dimensional MFCC features, for a particular speaker.

To create a GMM model in Java, I have this GaussianMixture.java class, that requires:

  1. double[] componentWeights
  2. Matrix[] means
  3. Matrix[] covariances

You can refer the class here GaussianMixture.java

What I cannot understand is how to provide means and covariances of the MFCC data I have extracted.

Do I have to calculate means for each of the 18 dimensions ? If so, what would be the componentWeights ?

Please correct if I am being unclear somewhere. Thanks.

satwick1995
  • 93
  • 1
  • 8

1 Answers1

0

You have to run EM algorithm, it will estimate the gaussian parameters. Or you can MAP-adapt existing GMM, MAP adaptation requires less data than training but requires pretrained GMM model.

There are many implementations, for example here.

Nikolay Shmyrev
  • 24,897
  • 5
  • 43
  • 87
  • For multidimensional data, do I have to run the algorithm for each dimension separately ? Or is it done differently so the values in one dimension should affect other dimension ? – satwick1995 Sep 24 '18 at 04:29
  • You run algorithm for a sequence of multidimensional vectors. Dimensions affect each other. – Nikolay Shmyrev Sep 24 '18 at 08:15