Modify finetune training related parameters in finetune.py
train/wav.scp, train/text; validation/wav.scp, validation/textlarge, otherwise set as smallsmall, batch_bins indicates the feature frames. For dataset_type is large, batch_bins indicates the duration in msThen you can run the pipeline to finetune with:python python finetune.py
Or you can use the finetuned model for inference directly.
Setting parameters in infer.sh
${data_dir}/wav.scp. If ${data_dir}/text is also exists, CER will be computedgpu_inference=false, use CPU decoding, please set njobDecode with multi GPUs:shell bash infer.sh \ --model "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" \ --data_dir "./data/test" \ --output_dir "./results" \ --batch_size 64 \ --gpu_inference true \ --gpuid_list "0,1"
Decode with multi-thread CPUs:shell bash infer.sh \ --model "damo/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" \ --data_dir "./data/test" \ --output_dir "./results" \ --gpu_inference false \ --njob 64
Results
The decoding results can be found in ${output_dir}/1best_recog/text.cer, which includes recognition results of each sample and the CER metric of the whole test set.
If you decode the SpeechIO test sets, you can use textnorm with stage=3, and DETAILS.txt, RESULTS.txt record the results and CER after text normalization.
Modify inference related parameters in infer_after_finetune.py
test/wav.scp. If test/text is also exists, CER will be computedvalid.cer_ctc.ave.pbThen you can run the pipeline to finetune with:python python infer_after_finetune.py
Results
The decoding results can be found in $output_dir/decoding_results/text.cer, which includes recognition results of each sample and the CER metric of the whole test set.