部分代码
其中 pipeline 有 device 参数可以选择使用GPU或者CPU,这个参数比较好找。这里要说的是另一个参数:ncpu
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
param_dict = dict()
param_dict['hotword'] = "https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/hotword.txt"
inference_pipeline = pipeline(
task=Tasks.auto_speech_recognition,
model="damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404",
param_dict=param_dict,
device=cfg.DEVICE,
ncpu=4,
)
rec_result = inference_pipeline(audio_in='https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/asr_example_hotword.wav')
print(rec_result)
debug 代码后发现, 这个参数实际上是设置torch线程数。torch 默认线程数是CPU核数,funasr这里做了阉割设置,默认为1了(不知道为啥。。。)修改此参数后可以使得推理速度加快,原本一条90秒的音频ncpu=1时,耗时10秒,i9-10900X(10c20t)。修改后读取默认值(ncpu=10),速度为2.7秒
附图参数说明: