modelscope-funasr基于paraformer中文模型finetune粤语,怎么加新词?

modelscope-funasr基于paraformer中文模型finetune粤语,如何加新词呀?

展开
收起
嘟嘟嘟嘟嘟嘟 2023-12-27 08:01:53 165 分享 版权
阿里云 AI 助理回答

在ModelScope-FunASR中基于Paraformer中文模型进行粤语微调(fine-tune)时,如果需要添加新词以优化识别效果,可以通过热词功能实现。以下是具体操作步骤和注意事项:


1. 热词功能简介

热词功能允许用户通过自定义词汇表来提升特定词汇的识别准确率。热词列表是一个字典结构,其中键为热词文本,值为热词权重。热词权重的取值范围如下: - 提高识别概率:权重范围为 [1, 5],数值越大,识别概率越高。 - 降低识别概率:权重范围为 [-6, -1],数值越小,识别概率越低。

注意:热词文本需满足以下规则: - 纯中文热词不超过10个汉字。 - 纯英文或中英文混合热词按空格分词后,不超过5个词。


2. 添加新词的具体步骤

2.1 准备热词列表

根据业务需求,准备一个包含新词及其权重的字典。例如:

phrases = {
    "粤语词汇1": 4,  # 提高“粤语词汇1”的识别概率
    "粤语词汇2": 5,  # 提高“粤语词汇2”的识别概率
    "错误词汇": -3   # 降低“错误词汇”的识别概率
}

2.2 使用DashScope SDK管理热词

通过DashScope SDK中的AsrPhraseManager类,可以完成热词的创建、更新、删除和查询操作。

2.2.1 创建热词表

使用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}")
2.2.2 更新热词表

如果需要更新已有的热词表,可以使用update_phrases方法。示例代码如下:

# 更新热词表
updated_phrases = {
    "新增词汇": 4,
    "粤语词汇1": 5  # 调整权重
}

response = phrase_manager.update_phrases(
    phrase_id=phrase_id,  # 热词ID
    phrases=updated_phrases
)
2.2.3 查询热词表

通过query_phrases方法可以查询指定热词表的内容。示例代码如下:

# 查询热词表
response = phrase_manager.query_phrases(phrase_id=phrase_id)
print(response)
2.2.4 删除热词表

如果不再需要某个热词表,可以使用delete_phrases方法删除。示例代码如下:

# 删除热词表
response = phrase_manager.delete_phrases(phrase_id=phrase_id)
print(response)

3. 在语音识别中应用热词

在进行语音识别时,可以通过指定phrase_idvocabulary_id参数来启用热词功能。

3.1 实时语音识别

在实时语音识别中,构造Recognition对象时传入phrase_idvocabulary_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)

3.2 录音文件识别

在录音文件识别中,同样可以通过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}")

4. 注意事项

  • 热词数量限制:单个热词表最多支持500个热词。
  • 模型兼容性phrase_id仅适用于v1系列模型,而vocabulary_id适用于v2及后续系列模型。
  • 采样率要求:确保音频采样率与模型要求一致。例如,paraformer-realtime-v2支持任意采样率,而paraformer-realtime-8k-v1仅支持8kHz采样率。
  • 语言支持:Paraformer模型支持多种语言和方言,包括粤语。建议优先选择最新版paraformer-v2模型以获得更优效果。

通过以上步骤,您可以成功在ModelScope-FunASR中基于Paraformer中文模型微调粤语,并添加新词以优化识别效果。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

ModelScope旨在打造下一代开源的模型即服务共享平台,为泛AI开发者提供灵活、易用、低成本的一站式模型服务产品,让模型应用更简单!欢迎加入技术交流群:微信公众号:魔搭ModelScope社区,钉钉群号:44837352

热门讨论

热门文章

还有其他疑问?
咨询AI助理