modelscope / FunASR

A Fundamental End-to-End Speech Recognition Toolkit and Open Source SOTA Pretrained Models, Supporting Speech Recognition, Voice Activity Detection, Text Post-processing etc.
https://www.funasr.com
Other
6.46k stars 688 forks source link

speech_paraformer-large_asr_nat-zh-cantonese-en-16k-vocab8501-online 如何导出onnx模型? #1259

Closed violet17 closed 4 months ago

violet17 commented 9 months ago
from funasr_onnx import Paraformer,CT_Transformer
import time

asr_model_path = "./speech_paraformer-large_asr_nat-zh-cantonese-en-16k-vocab8501-online"

print("model: ", asr_model_path)
asr_model = Paraformer(asr_model_path, batch_size=1, quantize=True)

wav_path = ['./chatglm2.wav', 'chengyu.wav', 'chinese_10s_16k.wav', 'hongqiao.wav', 'Sheldon_10s.wav','jfk.wav']

for wavfile in wav_path:
    st = time.time()
    result = asr_model(wavfile)
    end = time.time()
    print(f'Inference time: {end-st} s')
    print(result)
    print(result[0]['preds'][0])

用这个方法转会出错,找不到token_list:

Traceback (most recent call last):
  File "/home/intel/crystal/asr/test_asr.py", line 9, in <module>
    asr_model = Paraformer(asr_model_path, batch_size=1, quantize=True)
  File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr_onnx/paraformer_bin.py", line 70, in __init__
    export_model.export(model_dir)
  File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/export/export_model.py", line 198, in export
    model, asr_train_args = ASRTask.build_model_from_file(
  File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/tasks/asr.py", line 1116, in build_model_from_file
    model = cls.build_model(args)
  File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/tasks/asr.py", line 971, in build_model
    if isinstance(args.token_list, str):
AttributeError: 'Namespace' object has no attribute 'token_list'

补了token_list之后会遇到这个错:

Traceback (most recent call last):
  File "/home/intel/crystal/asr/test_asr.py", line 9, in <module>
    asr_model = Paraformer(asr_model_path, batch_size=1, quantize=True)
  File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr_onnx/paraformer_bin.py", line 70, in __init__
    export_model.export(model_dir)
  File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/export/export_model.py", line 198, in export
    model, asr_train_args = ASRTask.build_model_from_file(
  File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/tasks/asr.py", line 1116, in build_model_from_file
    model = cls.build_model(args)
  File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/tasks/asr.py", line 984, in build_model
    if args.input_size is None:
AttributeError: 'Namespace' object has no attribute 'input_size'

设置args["input_size"] = None 之后, Traceback (most recent call last): File "/home/intel/crystal/asr/test_asr.py", line 9, in asr_model = Paraformer(asr_model_path, batch_size=1, quantize=True) File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr_onnx/paraformer_bin.py", line 70, in init export_model.export(model_dir) File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/export/export_model.py", line 198, in export model, asr_train_args = ASRTask.build_model_from_file( File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/tasks/asr.py", line 1117, in build_model_from_file model = cls.build_model(args) File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/tasks/asr.py", line 986, in build_model frontend_class = frontend_choices.get_class(args.frontend) File "/home/intel/miniconda3/envs/llm/lib/python3.9/site-packages/funasr/train/class_choices.py", line 70, in get_class raise ValueError( ValueError: --frontend must be one of ('default', 'sliding_window', 's3prl', 'fused', 'wav_frontend', 'multichannelfrontend'): --frontend wavfrontendonline

是不是online 模型无法转成onnx?

$ pip list| grep funasr funasr 0.8.7 funasr-onnx 0.2.5

LauraGPT commented 9 months ago

Please install modelscope-1.10.0

violet17 commented 8 months ago

Please install modelscope-1.10.0

还是一样的错误。 是不是不支持online 模型导出onnx? 你们能否提供onnx 的离线版本呢?。多谢。 这个版本是不是比speech_paraformer-large_asr_nat-zh-cn-16k-common-vocab8404-pytorch的版本 准确率高一些呢? 这俩有什么区别呢?

多谢

yanchujian commented 7 months ago

你好,AttributeError: 'Namespace' object has no attribute 'token_list'这个问题是怎么解决的呢,是版本的问题吗

violet17 commented 7 months ago

你好,AttributeError: 'Namespace' object has no attribute 'token_list'这个问题是怎么解决的呢,是版本的问题吗

我是用自己自己改改。。但是失败了。 反正没法到处onnx

R1ckShi commented 7 months ago

已经更新,请拉取最新的funasr v0.8.8分支,在运行demo_paraformer_online.py时指定dengcunqin/speech_paraformer-large_asr_nat-zh-cantonese-en-16k-vocab8501-online这个模型,并且在model = Paraformer(model_dir...这一行指定revision='v1.0.0'