我的版本是:
python=3.8.18
modelscope=1.11.1
funasr=1.0.3
我是windows环境下的
执行快速推理例子报错:
2024-01-27 11:24:35,975 - modelscope - WARNING - No preprocessor key ('funasr', 'auto-speech-recognition') found in PREPROCESSOR_MAP, skip building preprocessor.
2024-01-27 11:24:35,975 - modelscope - INFO - cuda is not available, using cpu instead.
Traceback (most recent call last):
File "infer.py", line 8, in
rec_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_zh.wav')
File "f:\FunASR\funasrDemo\lib\site-packages\modelscope\pipelines\audio\funasr_pipeline.py", line 73, in call
output = self.model(args, **kwargs)
File "f:\FunASR\funasrDemo\lib\site-packages\modelscope\models\base\base_model.py", line 35, in call
return self.postprocess(self.forward(args, kwargs))
File "f:\FunASR\funasrDemo\lib\site-packages\modelscope\models\audio\funasr\model.py", line 61, in forward
output = self.model.generate(*args, kwargs)
TypeError: generate() missing 1 required positional argument: 'input'
从你提供的错误信息来看,问题出在 FunASR 模型的输入参数上。当调用 generate
方法时,它期望一个名为 'input' 的位置参数,但在你的代码中似乎没有提供。
这里是 FunASR 模块内部处理音频推理的部分代码出现问题。根据模型定义,生成(generate)函数需要接收到包含音频输入的数据。
解决办法:
首先,请确保你正确设置了音频文件路径,并将其作为输入传递给模型。参照 FunASR 的文档和示例,你可能需要调整 infer.py 中的代码,例如:
from modelscope.pipelines.audio.funasr_pipeline import FunASRPipeline
# 初始化推理管道
inference_pipeline = FunASRPipeline(model_name="your_model_name")
# 确保 audio_in 是正确的音频文件路径或者音频数据
rec_result = inference_pipeline(audio_in='path_to_your_audio_file.wav')
# 或者如果需要以二进制形式传递音频数据
# with open('path_to_your_audio_file.wav', 'rb') as f:
# audio_data = f.read()
# rec_result = inference_pipeline(audio_in=audio_data)