import os
|
import tempfile
|
import codecs
|
from modelscope.pipelines import pipeline
|
from modelscope.utils.constant import Tasks
|
from modelscope.msdatasets import MsDataset
|
|
if __name__ == '__main__':
|
param_dict = dict()
|
param_dict['hotword'] = "https://isv-data.oss-cn-hangzhou.aliyuncs.com/ics/MaaS/ASR/test_audio/hotword.txt"
|
|
output_dir = "./output"
|
batch_size = 1
|
|
# dataset split ['test']
|
ds_dict = MsDataset.load(dataset_name='speech_asr_aishell1_hotwords_testsets', namespace='speech_asr')
|
work_dir = tempfile.TemporaryDirectory().name
|
if not os.path.exists(work_dir):
|
os.makedirs(work_dir)
|
wav_file_path = os.path.join(work_dir, "wav.scp")
|
|
with codecs.open(wav_file_path, 'w') as fin:
|
for line in ds_dict:
|
wav = line["Audio:FILE"]
|
idx = wav.split("/")[-1].split(".")[0]
|
fin.writelines(idx + " " + wav + "\n")
|
audio_in = wav_file_path
|
|
inference_pipeline = pipeline(
|
task=Tasks.auto_speech_recognition,
|
model="damo/speech_paraformer-large-contextual_asr_nat-zh-cn-16k-common-vocab8404",
|
output_dir=output_dir,
|
batch_size=batch_size,
|
param_dict=param_dict)
|
|
rec_result = inference_pipeline(audio_in=audio_in)
|