你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

使用短语列表提高识别准确度

短语列表是预先提供的单词或短语列表,可帮助改进其识别能力。 添加到短语列表的短语具有较高的重要性,从而更有可能被识别。

有关支持的短语列表区域设置,请参阅语音服务的语言和语音支持

短语的示例包括:

  • 名称
  • 地理位置
  • 同音词
  • 行业或组织独有的单词或首字母缩写词

短语列表简单且轻量级:

  • 实时:在开始语音识别之前提供短语列表,无需训练自定义模型。
  • 轻量级:无需大型数据集。 提供一个单词或短语即可提高其识别率。

可以通过 Speech Studio语音 SDK语音命令行界面 (CLI) 使用短语列表。 批量转录 API 不支持短语列表。

可以使用包含标准语音和自定义语音的短语列表。 在某些情况下,训练包含短语的自定义模型可能是提高准确性的最佳选择。 例如,在以下情况下,你可以使用自定义语音识别:

  • 如果需要使用大型短语列表。 短语列表不应超过 500 个短语。
  • 如果你需要一个包含当前不支持语言的短语列表。

在 Speech Studio 中试用

可以使用 Speech Studio 测试短语列表如何帮助改善音频识别。 若要在生产环境中使用应用程序实现短语列表,你可以使用 Speech SDK 或 Speech CLI。

例如,假设你想要语音服务识别以下句子:“你好,Rehaan,我是 Contoso 银行的 Jessie。”

你可能会发现这句话被错误地识别为:“大家好,我是‘不能这么做银行’的 Jesse。”

在这种情况下,需要将“Rehaan”、“Jessie”和“Contoso”添加到短语列表。 然后这些名称便能够正确被识别。

现在请试用 Speech Studio,了解短语列表如何提高识别准确性。

备注

系统可能会提示你选择 Azure 订阅和语音资源,然后确认你所在地区的账单。

  1. 转到 Speech Studio 中的“实时语音转文本”。
  2. 通过上传音频文件或使用麦克风录制音频来测试语音识别。 例如,选择“使用麦克风录制音频”,然后说“你好 Rehaan,我是 Contoso 银行的 Jessie。” 然后按下红色按钮停止录制。
  3. 你应在“测试结果”文本框中看到“转录结果”。 如果未正确识别“Rehaan”、“Jessie”或“Contoso”,可以在下一步中将这些词添加到短语列表。
  4. 选择“显示高级选项”并打开“短语列表”。
  5. 在短语列表文本框内输入“Contoso;Jessie;Rehaan”。 请注意,多个短语之间需要用分号分隔。 Screenshot of a phrase list applied in Speech Studio.
  6. 使用麦克风再次测试识别能力。 否则,可以选择音频文件旁边的“重试”箭头来重新运行音频。 应识别词“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

允许的字符包括特定于区域设置的字母和数字、空格字符以及特殊字符,例如 +、-、$、:、(, )、{, }、_、,、?、@、\、’、&、#、%、^、*、`、<、>、;、/。 将从短语内部删除其他特殊字符。

后续步骤

查看提高识别精确度的更多方式。

自定义语音