From a8701ad5df6255502c431fb749b4661ff4853e57 Mon Sep 17 00:00:00 2001
From: 志浩 <neo.dzh@alibaba-inc.com>
Date: 星期三, 02 八月 2023 15:26:01 +0800
Subject: [PATCH] TOLD/SOND: add utt2num_frame script

---
 egs/callhome/diarization/sond/finetune.sh |   36 ++++++++++++++++++------------------
 1 files changed, 18 insertions(+), 18 deletions(-)

diff --git a/egs/callhome/diarization/sond/finetune.sh b/egs/callhome/diarization/sond/finetune.sh
index 29b5791..91e6798 100644
--- a/egs/callhome/diarization/sond/finetune.sh
+++ b/egs/callhome/diarization/sond/finetune.sh
@@ -112,7 +112,7 @@
     awk '{if (NR==FNR){a[$1]=1}else{if (a[$1]==1){print $0}}}' ${datadir}/${dset}/uttid ${datadir}/${dset}/wav.scp.bak > ${datadir}/${dset}/wav.scp
     mkdir ${datadir}/${dset}/raw
     mv ${datadir}/${dset}/{reco2num_spk,segments,spk2utt,utt2spk,uttid,wav.scp.bak} ${datadir}/${dset}/raw/
-    awk '{print $1,$1}' wav.scp > ${datadir}/${dset}/utt2spk
+    awk '{print $1,$1}' ${datadir}/${dset}/wav.scp > ${datadir}/${dset}/utt2spk
   done
 fi
 
@@ -164,16 +164,9 @@
 
   ln -s ${kaldi_root}/egs/callhome_diarization/v2/steps ./
   for dset in callhome1 callhome2; do
-    mv ${datadir}/${dset}/segments ${datadir}/${dset}/segs
+    utils/fix_data_dir.sh ${datadir}/${dset}
     steps/make_fbank.sh --write-utt2num-frames true --fbank-config conf/fbank.conf --nj ${nj} --cmd "$train_cmd" \
         ${datadir}/${dset} ${expdir}/make_fbank/${dset} ${dumpdir}/${dset}/fbank
-    utils/fix_data_dir.sh ${datadir}/${dset}
-  done
-
-  for dset in callhome1/nonoverlap_0s callhome2/nonoverlap_0s; do
-    steps/make_fbank.sh --write-utt2num-frames true --fbank-config conf/fbank.conf --nj ${nj} --cmd "$train_cmd" \
-        ${datadir}/${dset} ${expdir}/make_fbank/${dset} ${dumpdir}/${dset}/fbank
-    utils/fix_data_dir.sh ${datadir}/${dset}
   done
   rm -f steps
 
@@ -181,14 +174,18 @@
 
 if [ ${stage} -le 4 ] && [ ${stop_stage} -ge 4 ]; then
   echo "Stage 4: Extract speaker embeddings."
-  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}/
-
   sv_exp_dir=exp/speech_xvector_sv-en-us-callhome-8k-spk6135-pytorch
-  sed "s/input_size: null/input_size: 80/g" ${sv_exp_dir}/sv.yaml > ${sv_exp_dir}/sv_fbank.yaml
+
+  if [ ! -e ${sv_exp_dir} ]; then
+    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
-    key_file=${datadir}/${dset}/feats.scp
+    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")
     _logdir=${dumpdir}/${dset}/xvecs
@@ -206,12 +203,15 @@
         --njob ${njob} \
         --ngpu "${_ngpu}" \
         --gpuid_list ${gpuid_list} \
-        --data_path_and_name_and_type "${key_file},speech,kaldi_ark" \
+        --data_path_and_name_and_type "${key_file},speech,sound" \
         --key_file "${_logdir}"/keys.JOB.scp \
-        --sv_train_config ${sv_exp_dir}/sv_fbank.yaml \
+        --sv_train_config ${sv_exp_dir}/sv.yaml \
         --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
@@ -224,7 +224,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

--
Gitblit v1.9.1