modelscope-funasr基于paraformer中文模型finetune粤语,如何加新词呀?
在ModelScope-FunASR中基于Paraformer中文模型进行粤语微调(fine-tune)时,如果需要添加新词以优化识别效果,可以通过热词功能实现。以下是具体操作步骤和注意事项:
热词功能允许用户通过自定义词汇表来提升特定词汇的识别准确率。热词列表是一个字典结构,其中键为热词文本,值为热词权重。热词权重的取值范围如下: - 提高识别概率:权重范围为 [1, 5]
,数值越大,识别概率越高。 - 降低识别概率:权重范围为 [-6, -1]
,数值越小,识别概率越低。
注意:热词文本需满足以下规则: - 纯中文热词不超过10个汉字。 - 纯英文或中英文混合热词按空格分词后,不超过5个词。
根据业务需求,准备一个包含新词及其权重的字典。例如:
phrases = {
"粤语词汇1": 4, # 提高“粤语词汇1”的识别概率
"粤语词汇2": 5, # 提高“粤语词汇2”的识别概率
"错误词汇": -3 # 降低“错误词汇”的识别概率
}
通过DashScope SDK中的AsrPhraseManager
类,可以完成热词的创建、更新、删除和查询操作。
使用create_phrases
方法创建新的热词表。示例代码如下:
from dashscope.audio.asr import AsrPhraseManager
# 配置API Key
dashscope.api_key = 'your-dashscope-api-key'
# 初始化热词管理器
phrase_manager = AsrPhraseManager()
# 创建热词表
response = phrase_manager.create_phrases(
model="paraformer-realtime-v2", # 指定模型名称
phrases=phrases # 热词列表
)
# 获取热词ID
phrase_id = response['output']['finetuned_output']
print(f"热词ID: {phrase_id}")
如果需要更新已有的热词表,可以使用update_phrases
方法。示例代码如下:
# 更新热词表
updated_phrases = {
"新增词汇": 4,
"粤语词汇1": 5 # 调整权重
}
response = phrase_manager.update_phrases(
phrase_id=phrase_id, # 热词ID
phrases=updated_phrases
)
通过query_phrases
方法可以查询指定热词表的内容。示例代码如下:
# 查询热词表
response = phrase_manager.query_phrases(phrase_id=phrase_id)
print(response)
如果不再需要某个热词表,可以使用delete_phrases
方法删除。示例代码如下:
# 删除热词表
response = phrase_manager.delete_phrases(phrase_id=phrase_id)
print(response)
在进行语音识别时,可以通过指定phrase_id
或vocabulary_id
参数来启用热词功能。
在实时语音识别中,构造Recognition
对象时传入phrase_id
或vocabulary_id
。示例代码如下:
from dashscope.audio.asr import Recognition
# 初始化实时语音识别
recognizer = Recognition(
model="paraformer-realtime-v2",
sample_rate=16000,
format="wav",
vocabulary_id=phrase_id # 启用热词
)
# 开始识别
result = recognizer.recognize(audio_data)
print(result)
在录音文件识别中,同样可以通过vocabulary_id
参数启用热词。示例代码如下:
from dashscope.audio.asr import AsyncRecognition
# 初始化录音文件识别
recognizer = AsyncRecognition(
model="paraformer-v2",
vocabulary_id=phrase_id # 启用热词
)
# 提交识别任务
task_id = recognizer.submit_task(audio_url="your-audio-url")
print(f"任务ID: {task_id}")
phrase_id
仅适用于v1系列模型,而vocabulary_id
适用于v2及后续系列模型。paraformer-realtime-v2
支持任意采样率,而paraformer-realtime-8k-v1
仅支持8kHz采样率。paraformer-v2
模型以获得更优效果。通过以上步骤,您可以成功在ModelScope-FunASR中基于Paraformer中文模型微调粤语,并添加新词以优化识别效果。
ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352