PLDA adaptation performance

168 views
Skip to first unread message

Ziming Yin

unread,
Jun 24, 2019, 1:48:48 PM6/24/19
to kaldi-help
Hi,

I am doing experiment using the callhome diarization v2 recipe. I got a higher DER after doing PLDA adaption (22.8% to 29.1%), could you please help me check if I did everything correctly?

I first calculate the in-domain mean.vec, and the DER improved from 23.4% to 22.8% using this mean, which is nice.

Then I do plda adapt using the following code
 $train_cmd exp/xvectors_mydata_major/log/plda_adapt.log \
 ivector-adapt-plda --within-covar-scale=0.75 --between-covar-scale=0.25 \
 $nnet_dir/xvectors_callhome2/plda \
 "ark:ivector-subtract-global-mean scp:exp/xvectors_mydata_major/xvector.scp ark:- | transform-vec $nnet_dir/xvectors_callhome2/transform.mat ark:- ark:- | ivector-normalize-length ark:- ark:- |" \
 exp/xvectors_mydata_major/plda_adapt || exit 1;

I got a plda_adapt in exp/xvectors_mydata_major/, and I copy the plda_adapt and mean.vec calculated from my data to $nnet_dir/xvectors_callhome2/. 

Is there some steps that maybe I miss?

Thanks!
Ziming

David Snyder

unread,
Jun 24, 2019, 2:06:41 PM6/24/19
to kaldi-help
I don't see anything obviously wrong in what you're showing. 

Maybe your embeddings are extracted from speech segments that contain more than one speaker. That has the potential to screw up the adaptation.

Maybe you just don't have enough adaptation data. How man adaptation embeddings do you have? My guess is that you need at least a thousand. 

If you're able to train the PLDA model from scratch, I would consider estimating a new whitening matrix (transform.mat) on in-domain data. Obviously if you do this, you'd have to retrain the entire PLDA model, and you might not have access to all the data it was trained on. 

Ziming Yin

unread,
Jun 24, 2019, 2:43:03 PM6/24/19
to kaldi-help
Hi David,

I have about 1100 calls. and 126623 rows in xvector.scp and segements. Do you think it is enough? 

David Snyder

unread,
Jun 24, 2019, 2:45:25 PM6/24/19
to kaldi-help
Yeah it's probably enough for adaptation I think.

As I mentioned earlier, you don't want to train or adapt a PLDA model using segments that contain more than one speaker. It sounds like you might be doing that. 

Maham Iftikhar

unread,
May 3, 2021, 2:13:31 AM5/3/21
to kaldi-help
Hi, I am working on speaker diarization, I have done till clustering step, the rttm file is successfully created. AFter that when i try to cluster the plda scores using the code:
if [ $stage -le 10 ]; then
mkdir -p $nnet_dir/results
cat $nnet_dir/xvectors_train/plda_scores_num_speakers/rttm
| md-eval.pl -1 -c 0.25 -r $nnet_dir/xvectors_train/plda_scores_num_speakers/rttm -s - 2> $nnet_dir/results/num_spk.log
> $nnet_dir/results/DER_num_spk.txt
der=$(grep -oP 'DIARIZATION\ ERROR\ =\ \K[0-9]+([.][0-9]+)?'
$nnet_dir/results/DER_num_spk.txt)
echo "Using the oracle number of speakers, DER: $der%"
fi
it is giving me the output as:
Using the oracle number of speakers, DER: 0.00%
what is the reason of this zero. or it is fine?

Daniel Povey

unread,
May 3, 2021, 2:32:54 AM5/3/21
to kaldi-help
That's fine.  Means it was all correct, likely there was very little test data.

--
Go to http://kaldi-asr.org/forums.html to find out how to join the kaldi-help group
---
You received this message because you are subscribed to the Google Groups "kaldi-help" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kaldi-help+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kaldi-help/82440e43-8245-4462-a7db-f5df290a4e08n%40googlegroups.com.
Reply all
Reply to author
Forward
Message has been deleted
0 new messages