From 8acfbdc4f8d094eddbbd1375d6707a527ebbca34 Mon Sep 17 00:00:00 2001
From: 志浩 <neo.dzh@alibaba-inc.com>
Date: 星期三, 02 八月 2023 16:20:38 +0800
Subject: [PATCH] TOLD/SOND: add download pretrained model

---
 egs/callhome/diarization/sond/finetune.sh |   23 +++++++++++++++++++----
 1 files changed, 19 insertions(+), 4 deletions(-)

diff --git a/egs/callhome/diarization/sond/finetune.sh b/egs/callhome/diarization/sond/finetune.sh
index 5a4842d..56e80de 100644
--- a/egs/callhome/diarization/sond/finetune.sh
+++ b/egs/callhome/diarization/sond/finetune.sh
@@ -177,12 +177,15 @@
   sv_exp_dir=exp/speech_xvector_sv-en-us-callhome-8k-spk6135-pytorch
 
   if [ ! -e ${sv_exp_dir} ]; then
+    echo "start to download sv models"
     git lfs install
     git clone https://www.modelscope.cn/damo/speech_xvector_sv-en-us-callhome-8k-spk6135-pytorch.git
     mv speech_xvector_sv-en-us-callhome-8k-spk6135-pytorch ${expdir}/
+    echo "Done."
   fi
 
   for dset in callhome1/nonoverlap_0s callhome2/nonoverlap_0s; do
+    echo "Start to extract speaker embeddings for ${dset}"
     key_file=${datadir}/${dset}/wav.scp
     num_scp_file="$(<${key_file} wc -l)"
     _nj=$([ $inference_nj -le $num_scp_file ] && echo "$inference_nj" || echo "$num_scp_file")
@@ -207,6 +210,9 @@
         --sv_model_file ${sv_exp_dir}/sv.pth \
         --output_dir "${_logdir}"/output.JOB
     cat ${_logdir}/output.*/xvector.scp | sort > ${datadir}/${dset}/utt2xvec
+
+    python script/calc_num_frames.py ${key_file} ${datadir}/${dset}/utt2num_frames
+    echo "Done."
   done
 
 fi
@@ -219,7 +225,7 @@
     python -Wignore script/calc_real_meeting_frame_labels.py \
           ${datadir}/${dset} ${dumpdir}/${dset}/labels \
           --n_spk 8 --frame_shift 0.01 --nj 16 --sr 8000
-    find `pwd`/${dumpdir}/${dset}/labels -iname "*.lbl.mat" | awk -F'[/.]' '{print $(NF-2),$0}' | sort > ${datadir}/${dset}/labels.scp
+    find `pwd`/${dumpdir}/${dset}/labels/ -iname "*.lbl.mat" | awk -F'[/.]' '{print $(NF-2),$0}' | sort > ${datadir}/${dset}/labels.scp
   done
 
 fi
@@ -237,7 +243,7 @@
 
   echo "Stage 6: start to dump for callhome1."
   python -Wignore script/dump_meeting_chunks.py --dir ${data_dir} \
-    --out ${dumpdir}/callhome1/dumped_files/data --n_spk 16 --no_pbar --sr 8000 --mode test \
+    --out ${dumpdir}/callhome1/dumped_files/data --n_spk 16 --no_pbar --sr 8000 --mode train \
     --chunk_size 1600 --chunk_shift 400 --add_mid_to_speaker true
 
   mkdir -p ${datadir}/callhome1/dumped_files
@@ -274,6 +280,15 @@
 # Finetune model on callhome1, this will take about 1.5 hours.
 if [ ${stage} -le 7 ] && [ ${stop_stage} -ge 7 ]; then
   echo "Stage 7: Finetune pretrained model on callhome1."
+
+  if [ ! -e ${expdir}/speech_diarization_sond-en-us-swbd_sre-8k-n16k4-pytorch ]; then
+    echo "start to download pretrained models"
+    git lfs install
+    git clone https://www.modelscope.cn/damo/speech_diarization_sond-en-us-swbd_sre-8k-n16k4-pytorch.git
+    mv speech_diarization_sond-en-us-swbd_sre-8k-n16k4-pytorch ${expdir}/
+    echo "Done."
+  fi
+
   world_size=$gpu_num  # run on one machine
   mkdir -p ${expdir}/${model_dir}
   mkdir -p ${expdir}/${model_dir}/log
@@ -314,7 +329,7 @@
               --valid_data_path_and_name_and_type ${datadir}/${valid_set}/dumped_files/profile.scp,profile,kaldi_ark \
               --valid_data_path_and_name_and_type ${datadir}/${valid_set}/dumped_files/label.scp,binary_labels,kaldi_ark \
               --valid_shape_file ${expdir}/${valid_set}_states/speech_shape \
-              --init_param exp/pretrained_models/phase2.pth \
+              --init_param ${expdir}/speech_diarization_sond-en-us-swbd_sre-8k-n16k4-pytorch/sond.pth \
               --unused_parameters true \
               ${init_opt} \
               ${freeze_opt} \
@@ -383,7 +398,7 @@
 
 # Scoring for finetuned model, you may get a DER like:
 # oracle_vad  |  system_vad
-#   7.28      |     8.06
+#   7.27      |     8.08
 if [ ${stage} -le 9 ] && [ ${stop_stage} -ge 9 ]; then
   echo "stage 9: Scoring finetuned models"
   if [ ! -e dscore ]; then

--
Gitblit v1.9.1