compute_cmvn.sh 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #!/usr/bin/env bash
  2. . ./path.sh || exit 1;
  3. # Begin configuration section.
  4. fbankdir=
  5. nj=32
  6. cmd=./utils/run.pl
  7. feats_dim=80
  8. config_file=
  9. scale=1.0
  10. echo "$0 $@"
  11. . utils/parse_options.sh || exit 1;
  12. # shellcheck disable=SC2046
  13. head -n $(awk -v lines="$(wc -l < ${fbankdir}/wav.scp)" -v scale="$scale" 'BEGIN { printf "%.0f\n", lines*scale }') ${fbankdir}/wav.scp > ${fbankdir}/wav.scp.scale
  14. split_dir=${fbankdir}/cmvn/split_${nj};
  15. mkdir -p $split_dir
  16. split_scps=""
  17. for n in $(seq $nj); do
  18. split_scps="$split_scps $split_dir/wav.$n.scp"
  19. done
  20. utils/split_scp.pl ${fbankdir}/wav.scp.scale $split_scps || exit 1;
  21. logdir=${fbankdir}/cmvn/log
  22. $cmd JOB=1:$nj $logdir/cmvn.JOB.log \
  23. python utils/compute_cmvn.py \
  24. --dim ${feats_dim} \
  25. --wav_path $split_dir \
  26. --config_file $config_file \
  27. --idx JOB \
  28. python utils/combine_cmvn_file.py --dim ${feats_dim} --cmvn_dir $split_dir --nj $nj --output_dir ${fbankdir}/cmvn
  29. python utils/cmvn_converter.py --cmvn_json ${fbankdir}/cmvn/cmvn.json --am_mvn ${fbankdir}/cmvn/am.mvn
  30. echo "$0: Succeeded compute global cmvn"