0
$\begingroup$

I'm currently trying to train a GMM(UBM) with 1024 Gaussian mixtures for speaker verification.

However, after training the GMM, it appears that some mixtures are useless/redundant. (little to no training samples are aligned to them)

Thus the Baum-Welch statistics of these redundant mixtures are close to zero, and I think this is causing the total variability matrix(the i-vector extractor) to be inaccurate.

(the reason why I think this way is because in the following total variability matrix update formula,

$T_c=(\sum_s F_c(s)E[w^*(s)])(\sum_s N_c(s)E[w(s)w^*(s)])^{-1}$

the determination of $(\sum_s N_c(s)E[w(s)w^*(s)])$ becomes nearly 0, making it computationally singular)

Can this be a correct reason for the total variability matrix to be inaccurate?

If so, are there any ways to prevent the creation of redundant mixtures while training a GMM?

Thanks

$\endgroup$
2
  • $\begingroup$ It may be that you are fitting too many Gaussians. Have you looked at metrics like AIC, BIC for model selection? $\endgroup$
    – kedarps
    Jan 15, 2018 at 15:00
  • $\begingroup$ Thank you for your suggestion. That might be the problem, but I see a lot of papers using a high number of Gaussians (e.g., 1024, 2048). Perhaps I should look into model selection using BIC/AIC. $\endgroup$
    – whkang
    Jan 23, 2018 at 1:55

1 Answer 1

1
$\begingroup$

Can this be a correct reason for the total variability matrix to be inaccurate?

Yes

If so, are there any ways to prevent the creation of redundant mixtures while training a GMM?

You drop gaussians bases on insufficient statistics during estimation, this is pretty standard process.

Overall, you need to use a dataset of significant size. Any 2-hour speech dataset has enough variety to estimate 1024 gaussians. If you are using less, simply find better dataset.

Second, it is better to use established software to do this kind of things. In theory it might be easy but there are many specific points like that which are not mentioned in theory. In established software such specific points are already handled properly. And it is not an easy task. You can check speaker identification and i-vector estimation in Kaldi, they have everything working properly.

$\endgroup$
4
  • $\begingroup$ Thank you for your answer. I'm currently using Switchboard for training my UBM, so I think it's more than sufficient for a 1024 mixture GMM. Thus like you said, maybe I'm not handling some points properly. I tried out the NIST SRE08 script provided by Kaldi and it seems like the model is trained excellently there. However, whenever I try to use other tools like MSR Identity or Bob.bio.spear, the model creates redundant mixtures and provides inaccurate verification results. I looked into the codes and they seem to have no theoretical problem (although it is still theoretically possible to have $\endgroup$
    – whkang
    Jan 18, 2018 at 7:38
  • $\begingroup$ redundant mixtures). Any suggestions or hints on this matter? Once again, thank you so much for your insights. $\endgroup$
    – whkang
    Jan 18, 2018 at 7:40
  • $\begingroup$ If you have problems with bob.bio.spear you'd better describe them in more details - what exactly are you doing and so on. $\endgroup$ Jan 18, 2018 at 11:17
  • $\begingroup$ Thanks for your comment. More specifically, I'm using bob.bio.spear for acoustic feature extraction (MFCC), VAD, and I'm currently using bob.learn.em to train my UBM (with Switchboard I dataset). However, the resulting model has a lot of mixtures centered in the origin. $\endgroup$
    – whkang
    Jan 23, 2018 at 1:46

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.