diff --git a/tools/asr/funasr_asr.py b/tools/asr/funasr_asr.py index 103a2b9..11209ad 100644 --- a/tools/asr/funasr_asr.py +++ b/tools/asr/funasr_asr.py @@ -42,46 +42,47 @@ def execute_asr(input_folder, output_folder, model_size, language): print(f"ASR 任务完成->标注文件路径: {output_file_path}\n") return output_file_path + +parser = argparse.ArgumentParser() +parser.add_argument("-i", "--input_folder", type=str, required=True, + help="Path to the folder containing WAV files.") +parser.add_argument("-o", "--output_folder", type=str, required=True, + help="Output folder to store transcriptions.") +parser.add_argument("-s", "--model_size", type=str, default='large', + help="Model Size of FunASR is Large") +parser.add_argument("-l", "--language", type=str, default='zh', choices=['zh','yue','auto'], + help="Language of the audio files.") +parser.add_argument("-p", "--precision", type=str, default='float16', choices=['float16','float32'], + help="fp16 or fp32")#还没接入 + +cmd = parser.parse_args() + +path_vad = 'tools/asr/models/speech_fsmn_vad_zh-cn-16k-common-pytorch' +path_punc = 'tools/asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch' +path_vad = path_vad if os.path.exists(path_vad) else "iic/speech_fsmn_vad_zh-cn-16k-common-pytorch" +path_punc = path_punc if os.path.exists(path_punc) else "iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch" +vad_model_revision=punc_model_revision="v2.0.4" + +if(cmd.language=="zh"): + path_asr = 'tools/asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch' + path_asr = path_asr if os.path.exists(path_asr) else "iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" + model_revision="v2.0.4" +else: + path_asr = 'tools/asr/models/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online' + path_asr = path_asr if os.path.exists(path_asr) else "iic/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online" + model_revision="master" + path_vad=path_punc=vad_model_revision=punc_model_revision=None###友情提示:粤语带VAD识别可能会有少量shape不对报错的,但是不带VAD可以.不带vad只能分阶段单独加标点。不过标点模型对粤语效果真的不行… + +model = AutoModel( + model=path_asr, + model_revision=model_revision, + vad_model=path_vad, + vad_model_revision=vad_model_revision, + punc_model=path_punc, + punc_model_revision=punc_model_revision, +) + if __name__ == '__main__': - parser = argparse.ArgumentParser() - parser.add_argument("-i", "--input_folder", type=str, required=True, - help="Path to the folder containing WAV files.") - parser.add_argument("-o", "--output_folder", type=str, required=True, - help="Output folder to store transcriptions.") - parser.add_argument("-s", "--model_size", type=str, default='large', - help="Model Size of FunASR is Large") - parser.add_argument("-l", "--language", type=str, default='zh', choices=['zh','yue'], - help="Language of the audio files.") - parser.add_argument("-p", "--precision", type=str, default='float16', choices=['float16','float32'], - help="fp16 or fp32")#还没接入 - - cmd = parser.parse_args() - - path_vad = 'tools/asr/models/speech_fsmn_vad_zh-cn-16k-common-pytorch' - path_punc = 'tools/asr/models/punc_ct-transformer_zh-cn-common-vocab272727-pytorch' - path_vad = path_vad if os.path.exists(path_vad) else "iic/speech_fsmn_vad_zh-cn-16k-common-pytorch" - path_punc = path_punc if os.path.exists(path_punc) else "iic/punc_ct-transformer_zh-cn-common-vocab272727-pytorch" - vad_model_revision=punc_model_revision="v2.0.4" - - if(cmd.language=="zh"): - path_asr = 'tools/asr/models/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch' - path_asr = path_asr if os.path.exists(path_asr) else "iic/speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch" - model_revision="v2.0.4" - else: - path_asr = 'tools/asr/models/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online' - path_asr = path_asr if os.path.exists(path_asr) else "iic/speech_UniASR_asr_2pass-cantonese-CHS-16k-common-vocab1468-tensorflow1-online" - model_revision="master" - path_vad=path_punc=vad_model_revision=punc_model_revision=None###友情提示:粤语带VAD识别可能会有少量shape不对报错的,但是不带VAD可以.不带vad只能分阶段单独加标点。不过标点模型对粤语效果真的不行… - - model = AutoModel( - model=path_asr, - model_revision=model_revision, - vad_model=path_vad, - vad_model_revision=vad_model_revision, - punc_model=path_punc, - punc_model_revision=punc_model_revision, - ) - execute_asr( input_folder = cmd.input_folder, output_folder = cmd.output_folder,