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 LLR
s. 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:
- Is my concept about GMM-UBM algorithm right or there is some misunderstanding?
- Is there a standard/most commonly used method to decide the
LLR
threshold? - 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?