From d135dbe9fcf3caf91914136462a2dc449a52b374 Mon Sep 17 00:00:00 2001 From: Daniel Povey Date: Thu, 23 Aug 2018 20:35:57 -0400 Subject: [PATCH] [scripts] Compatibility fixes to basis-fMLLR scripts (write transforms per speaker) --- egs/wsj/s5/steps/align_basis_fmllr.sh | 21 ++++++++++----------- egs/wsj/s5/steps/align_basis_fmllr_lats.sh | 6 +++++- egs/wsj/s5/steps/train_sat_basis.sh | 15 ++++++--------- 3 files changed, 21 insertions(+), 21 deletions(-) diff --git a/egs/wsj/s5/steps/align_basis_fmllr.sh b/egs/wsj/s5/steps/align_basis_fmllr.sh index d65986bd9ec..c82327efbdf 100755 --- a/egs/wsj/s5/steps/align_basis_fmllr.sh +++ b/egs/wsj/s5/steps/align_basis_fmllr.sh @@ -20,6 +20,7 @@ cmd=run.pl use_graphs=false # Begin configuration. scale_opts="--transition-scale=1.0 --acoustic-scale=0.1 --self-loop-scale=0.1" +basis_fmllr_opts="--fmllr-min-count=22 --num-iters=10 --size-scale=0.2 --step-size-iters=3" beam=10 retry_beam=40 boost_silence=1.5 # factor by which to boost silence during alignment. @@ -123,22 +124,20 @@ if [ $stage -le 2 ]; then ali-to-post "ark:gunzip -c $dir/pre_ali.JOB.gz|" ark:- \| \ weight-silence-post 0.0 $silphonelist $alimdl ark:- ark:- \| \ gmm-post-to-gpost $alimdl "$sifeats" ark:- ark:- \| \ - gmm-est-basis-fmllr-gpost --fmllr-min-count=22 --num-iters=10 \ - --size-scale=0.2 --step-size-iters=3 \ - --write-weights=ark:$dir/pre_wgt.JOB \ + gmm-est-basis-fmllr-gpost $basis_fmllr_opts --spk2utt=ark:$sdata/JOB/spk2utt \ $mdl $srcdir/fmllr.basis "$sifeats" ark,s,cs:- \ ark:$dir/trans.JOB || exit 1; -# else -# $cmd JOB=1:$nj $dir/log/fmllr.JOB.log \ -# ali-to-post "ark:gunzip -c $dir/pre_ali.JOB.gz|" ark:- \| \ -# weight-silence-post 0.0 $silphonelist $alimdl ark:- ark:- \| \ -# gmm-est-fmllr --fmllr-update-type=$fmllr_update_type \ -# --spk2utt=ark:$sdata/JOB/spk2utt $mdl "$sifeats" \ -# ark,s,cs:- ark:$dir/trans.JOB || exit 1; + else + $cmd JOB=1:$nj $dir/log/fmllr.JOB.log \ + ali-to-post "ark:gunzip -c $dir/pre_ali.JOB.gz|" ark:- \| \ + weight-silence-post 0.0 $silphonelist $alimdl ark:- ark:- \| \ + gmm-est-basis-fmllr $basis_fmllr_opts --spk2utt=ark:$sdata/JOB/spk2utt \ + $mdl $srcdir/fmllr.basis "$sifeats" \ + ark,s,cs:- ark:$dir/trans.JOB || exit 1; fi fi -feats="$sifeats transform-feats ark:$dir/trans.JOB ark:- ark:- |" +feats="$sifeats transform-feats --utt2spk=ark:$sdata/JOB/utt2spk ark:$dir/trans.JOB ark:- ark:- |" if [ $stage -le 3 ]; then echo "$0: doing final alignment." diff --git a/egs/wsj/s5/steps/align_basis_fmllr_lats.sh b/egs/wsj/s5/steps/align_basis_fmllr_lats.sh index 9efe4799fcc..426168496cc 100755 --- a/egs/wsj/s5/steps/align_basis_fmllr_lats.sh +++ b/egs/wsj/s5/steps/align_basis_fmllr_lats.sh @@ -51,7 +51,11 @@ lang=$2 srcdir=$3 dir=$4 -for f in $data/feats.scp $lang/phones.txt $srcdir/final.mdl $srcdir/fmllr.basis; do +if [ ! -f $srcdir/fmllr.basis ]; then + echo "$0: expected $srcdir/fmllr.basis to exist. Run get_fmllr_basis.sh on $srcdir." +fi + +for f in $data/feats.scp $lang/phones.txt $srcdir/final.mdl; do [ ! -f $f ] && echo "$0: expected file $f to exist" && exit 1 done diff --git a/egs/wsj/s5/steps/train_sat_basis.sh b/egs/wsj/s5/steps/train_sat_basis.sh index 45384fe4ecd..5245ea0c619 100755 --- a/egs/wsj/s5/steps/train_sat_basis.sh +++ b/egs/wsj/s5/steps/train_sat_basis.sh @@ -17,6 +17,7 @@ scale_opts="--transition-scale=1.0 --acoustic-scale=0.1 --self-loop-scale=0.1" beam=10 retry_beam=40 boost_silence=1.0 # Factor by which to boost silence likelihoods in alignment +basis_fmllr_opts="--fmllr-min-count=22 --num-iters=10 --size-scale=0.2 --step-size-iters=3" context_opts= # e.g. set this to "--context-width 5 --central-position 2" for quinphone. realign_iters="10 20 30"; fmllr_iters="2 4 6 12"; @@ -93,7 +94,7 @@ esac ## Get initial fMLLR transforms (possibly from alignment dir) if [ -f $alidir/trans.1 ]; then echo "$0: Using transforms from $alidir" - feats="$sifeats transform-feats ark,s,cs:$alidir/trans.JOB ark:- ark:- |" + feats="$sifeats transform-feats --utt2spk=ark:$sdata/JOB/utt2spk ark,s,cs:$alidir/trans.JOB ark:- ark:- |" cur_trans_dir=$alidir else if [ $stage -le -5 ]; then @@ -114,13 +115,11 @@ else ali-to-post "ark:gunzip -c $alidir/ali.JOB.gz|" ark:- \| \ weight-silence-post $silence_weight $silphonelist $alidir/final.mdl ark:- ark:- \| \ gmm-post-to-gpost $alidir/final.mdl "$sifeats" ark:- ark:- \| \ - gmm-est-basis-fmllr-gpost --fmllr-min-count=22 --num-iters=10 \ - --size-scale=0.2 --step-size-iters=3 \ - --write-weights=ark:$dir/pre_wgt.JOB \ + gmm-est-basis-fmllr-gpost $basis_fmllr_opts --spk2utt=ark:$sdata/JOB/spk2utt \ $alidir/final.mdl $alidir/fmllr.basis "$sifeats" ark,s,cs:- \ ark:$alidir/trans.JOB || exit 1; - feats="$sifeats transform-feats ark,s,cs:$alidir/trans.JOB ark:- ark:- |" + feats="$sifeats transform-feats --utt2spk=ark:$sdata/JOB/utt2spk ark,s,cs:$alidir/trans.JOB ark:- ark:- |" cur_trans_dir=$alidir fi fi @@ -214,14 +213,12 @@ while [ $x -lt $num_iters ]; do ali-to-post "ark:gunzip -c $dir/ali.JOB.gz|" ark:- \| \ weight-silence-post $silence_weight $silphonelist $dir/$x.mdl ark:- ark:- \| \ gmm-post-to-gpost $dir/$x.mdl "$sifeats" ark:- ark:- \| \ - gmm-est-basis-fmllr-gpost --fmllr-min-count=22 --num-iters=10 \ - --size-scale=0.2 --step-size-iters=3 \ - --write-weights=ark:$dir/pre_wgt.JOB \ + gmm-est-basis-fmllr-gpost $basis_fmllr_opts --spk2utt=ark:$sdata/JOB/spk2utt \ $dir/$x.mdl $dir/fmllr.basis "$sifeats" ark,s,cs:- \ ark:$dir/trans.JOB || exit 1; fi - feats="$sifeats transform-feats ark:$dir/trans.JOB ark:- ark:- |" + feats="$sifeats transform-feats --utt2spk=ark:$sdata/JOB/utt2spk ark:$dir/trans.JOB ark:- ark:- |" cur_trans_dir=$dir fi