modelscope-funasr返回格式received:是否可以自定义格式?{"is_final":false,"mode":"offline","text":"喂,你好,你在哪里?这边是华盛建材公司,对吧?你好,你干什么呀?你要干什么呀?啊,10月25日,你这边申请了一个19 位华天的商家,您有印象吗?我这边是上班,没有单位的,把收到情况给你。","wav_name":"111"}
根据提供的返回格式,可以看出received字段是一个包含多个键值对的字典。其中,"is_final"表示是否为最终结果,"mode"表示模式(离线或在线),"text"表示识别到的文本内容,"wav_name"表示对应的音频文件名。
如果你希望自定义返回格式,可以根据需要修改字典中的键和值。例如,你可以添加一个新的键来存储其他信息,或者修改现有键的名称和类型。以下是一个示例:
{
"is_final": False,
"mode": "offline",
"text": "喂,你好,你在哪里?这边是华盛建材公司,对吧?你好,你干什么呀?你要干什么呀?啊,10月25日,你这边申请了一个19 位华天的商家,您有印象吗?我这边是上班,没有单位的,把收到情况给你。",
"wav_name": "111",
"custom_info": {
"key1": "value1",
"key2": "value2"
}
}
在这个示例中,我们添加了一个名为"custom_info"的新键,它是一个字典,用于存储自定义的信息。你可以根据实际需求修改键的名称和值的类型。
ModelScope-FunASR的返回格式是可以自定义的。在FunASR的pipeline
函数的postprocess
参数中,您可以自定义一个函数来修改返回结果的格式。
以下是一个简单的例子,展示了如何自定义返回格式:
from modelscope.pipelines import pipeline
from modelscope.utils.constant import Tasks
def my_custom_format(result):
# 在这里修改返回结果的格式
return {"my_custom_key": result["text"]}
# 创建一个管道,指定任务是语音识别
recognize_pipeline = pipeline(
Tasks.speech_recognition,
model='damo/speech_transcriber_st_16k'
)
# 使用自定义的postprocess函数
result = recognize_pipeline('your_audio.wav', postprocess=my_custom_format)
print(result) # 输出将会是:{'my_custom_key': '你的识别文本'}
在这个例子中,我们创建了一个名为my_custom_format
的函数,它接受一个结果作为参数,并返回一个新的字典,其中包含了我们自定义的键my_custom_key
,值是原始结果中的text
字段。
然后,我们在recognize_pipeline
中使用这个函数作为postprocess
参数。这样,当recognize_pipeline
处理音频并返回结果时,它会首先将结果传递给my_custom_format
函数,然后再返回修改后的结果。
所以,您可以根据自己的需求,自定义返回格式的结构和内容。
不支持自定义格式,可以看下通信协议 https://github.com/alibaba-damo-academy/FunASR/blob/main/runtime/docs/websocket_protocol_zh.md 此回答整理自钉群“modelscope-funasr社区交流”
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352