I am new to speaker recognition and now starting from the GMM-UBM algorithm.

Say I have a pre-trained UBM and speech from target speakers tarsph to derive target speaker model tarmod. And I could get a loglikelihood ratio LLR as score of speech from unknow speakers uksph by pesudo code below:

LLR = get_LLR(uksph, tarmod, UBM);

I think there should be a (set of) threshold of LLR to decide if uksph is/isn't from one of the target speakers. But how to decide the threshold(s)?

The classical way comes to my mind is to partition the tarsph to adaptation and validation set, the former is used to derive target speaker model, and the latter could be used to get some value of LLRs. Then we can use average(or other statistics) of these as a empirically threshold. It could be better to have speech from non-target speaker from which we can know the risk of false alarm.

What I am wondering is:

  1. Is my concept about GMM-UBM algorithm right or there is some misunderstanding?
  2. Is there a standard/most commonly used method to decide the LLR threshold?
  3. In a practical situation, it is possible to get less speech data(maybe only a few seconds per target speaker) than an experimental corpus. Will this be a problem to this algorithm?
  • 1
    $\begingroup$ For selection of the score threshold you can use DET Curves or standard ROC curves. For Detection Error Tradeoff curve you can also use the EER (Equal-Error-Rate) as a point where FN and FP rate is equal. Alternatively, for multiple classifiers, you can calibrate your scores (e.g. using isotonic regression) so that the threshold is optimal. $\endgroup$
    – jojeck
    Commented May 18, 2022 at 10:58
  • $\begingroup$ @jojek Hi, thank you for your suggestion. These days I have spent some time on DET Curves, SV tutorial and Score Normalization. It seems that still have to collect some data, scoring on it with speaker models, then to derive DET or ROC curve to choose an operating point(=choose the score threshold). $\endgroup$
    – LCS
    Commented May 26, 2022 at 4:30
  • $\begingroup$ As I'm going to implement this algorithm on a low-level end-device(like Cortex-M0), procedure above will take a long time to computing, is there any solution for reducing the computing time? Also, is score-normalization necessary if a set of speaker-specific/dependent threshold is acceptable? $\endgroup$
    – LCS
    Commented May 26, 2022 at 4:41


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.