#!/bin/bash . ./path.sh || exit 1; dir=$1 average_num=$2 decoding_chunk_size=$3 echo "***************" echo "dir=$dir" echo "average_num=$average_num" echo "decoding_chunk_size=$decoding_chunk_size" echo "***************" dict=exp/wenet_efficient_conformer_librispeech_v1/train_960_unigram5000_units.txt decode_checkpoint=$dir/final.pt ctc_weight=0.5 reverse_weight=0.3 decode_modes="attention_rescoring ctc_greedy_search ctc_prefix_beam_search attention" recog_set="test_clean test_other" n_gpu=0 for testset in ${recog_set} ; do test_dir=$dir/test_${testset} if [ ! -d $test_dir ] ; then mkdir -p $test_dir fi for mode in ${decode_modes} ; do echo "" echo "==> ${testset}, ${mode} " nohup python wenet/bin/recognize.py --gpu $n_gpu \ --mode $mode \ --config ${dir}/train.yaml \ --data_type "raw" \ --test_data data/${testset}/data.list \ --checkpoint ${decode_checkpoint} \ --beam_size 10 \ --batch_size 1 \ --penalty 0.0 \ --dict $dict \ --ctc_weight $ctc_weight \ --reverse_weight $reverse_weight \ --result_file $test_dir/text_avg${average_num}_${mode}_${decoding_chunk_size} \ ${decoding_chunk_size:+--decoding_chunk_size $decoding_chunk_size} > logs/decode_avg${average_num}_${mode}_${decoding_chunk_size}.log & n_gpu=`expr $n_gpu + 1` done done