使用短语列表提高识别准确度
短语列表是预先提供的单词或短语列表,可帮助改进其识别能力。 添加到短语列表的短语具有较高的重要性,从而更有可能被识别。
短语的示例包括:
- 名称
- 地理位置
- 同音词
- 行业或组织独有的单词或首字母缩写词
短语列表简单且轻量级:
- 实时:在开始语音识别之前提供短语列表,无需训练自定义模型。
- 轻量级:无需大型数据集。 提供一个单词或短语即可提高其识别率。
有关支持的短语列表区域设置,请参阅语音服务的语言和语音支持。
可以通过 Speech Studio、语音 SDK 或 语音命令行界面 (CLI) 使用短语列表。 批量转录 API 不支持短语列表。
可以使用包含标准语音和自定义语音的短语列表。 在某些情况下,训练包含短语的自定义模型可能是提高准确性的最佳选择。 例如,在以下情况下,你可以使用自定义语音识别:
- 如果需要使用大型短语列表。 短语列表不应超过 500 个短语。
- 如果你需要一个包含当前不支持语言的短语列表。
在 Speech Studio 中试用
可以使用 Speech Studio 测试短语列表如何帮助改善音频识别。 若要在生产环境中使用应用程序实现短语列表,你可以使用 Speech SDK 或 Speech CLI。
例如,假设你想要语音服务识别以下句子:“你好,Rehaan,我是 Contoso 银行的 Jessie。”
你可能会发现这句话被错误地识别为:“大家好,我是‘不能这么做银行’的 Jesse。”
在这种情况下,需要将“Rehaan”、“Jessie”和“Contoso”添加到短语列表。 然后这些名称便能够正确被识别。
现在请试用 Speech Studio,了解短语列表如何提高识别准确性。
备注
系统可能会提示你选择 Azure 订阅和语音资源,然后确认你所在地区的账单。
- 转到 Speech Studio 中的“实时语音转文本”。
- 通过上传音频文件或使用麦克风录制音频来测试语音识别。 例如,选择“使用麦克风录制音频”,然后说“你好 Rehaan,我是 Contoso 银行的 Jessie。” 然后按下红色按钮停止录制。
- 你应在“测试结果”文本框中看到“转录结果”。 如果未正确识别“Rehaan”、“Jessie”或“Contoso”,可以在下一步中将这些词添加到短语列表。
- 选择“显示高级选项”并打开“短语列表”。
- 在短语列表文本框内输入“Contoso;Jessie;Rehaan”。 请注意,多个短语之间需要用分号分隔。
- 使用麦克风再次测试识别能力。 否则,可以选择音频文件旁边的“重试”箭头来重新运行音频。 应识别词“Rehaan”、“Jessie”或“Contoso”。
实现短语列表
借助语音 SDK,你可以单独添加短语,然后运行语音识别。
var phraseList = PhraseListGrammar.FromRecognizer(recognizer);
phraseList.AddPhrase("Contoso");
phraseList.AddPhrase("Jessie");
phraseList.AddPhrase("Rehaan");
借助语音 SDK,你可以单独添加短语,然后运行语音识别。
auto phraseListGrammar = PhraseListGrammar::FromRecognizer(recognizer);
phraseListGrammar->AddPhrase("Contoso");
phraseListGrammar->AddPhrase("Jessie");
phraseListGrammar->AddPhrase("Rehaan");
借助语音 SDK,你可以单独添加短语,然后运行语音识别。
PhraseListGrammar phraseList = PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");
借助语音 SDK,你可以单独添加短语,然后运行语音识别。
const phraseList = sdk.PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");
借助语音 SDK,你可以单独添加短语,然后运行语音识别。
phrase_list_grammar = speechsdk.PhraseListGrammar.from_recognizer(reco)
phrase_list_grammar.addPhrase("Contoso")
phrase_list_grammar.addPhrase("Jessie")
phrase_list_grammar.addPhrase("Rehaan")
借助语音 CLI,你可以在行中包含短语列表,也可以使用文本文件以及识别命令。
尝试从麦克风或音频文件中识别。
spx recognize --microphone --phrases "Contoso;Jessie;Rehaan;"
spx recognize --file "your\path\to\audio.wav" --phrases "Contoso;Jessie;Rehaan;"
还可以使用每行包含一个短语的文本文件来添加短语列表。
spx recognize --microphone --phrases @phrases.txt
spx recognize --file "your\path\to\audio.wav" --phrases @phrases.txt
允许的字符包括特定于区域设置的字母和数字、空格字符以及特殊字符,例如 +、-、$、:、(, )、{, }、_、,、?、@、\、’、&、#、%、^、*、`、<、>、;、/。 将从短语内部删除其他特殊字符。
后续步骤
查看提高识别精确度的更多方式。