片語清單是你事先提供的單字或片語清單,幫助提升他們的辨識度。 當你將片語加入詞彙清單時,它的重要性會提升,因此系統更有可能辨識它。
Important
短語清單是一種執行時識別 功能 ,應用於端點層級。 它適用於:
- 即時轉錄(語音 SDK、語音 CLI、語音工作室)
- 快速轉錄 API
- LLM 語音轉錄 API
- 語音即時互動 API
片語清單可同時支援基礎與自訂語音端點。 它不需要模型訓練,也無法透過批次轉錄。
片語範例包括:
- 名稱
- 地理位置
- 同音異義字
- 您產業或組織的特有字詞或縮略字
片語清單簡單且輕量:
- 即時:你在開始語音辨識前提供詞彙清單,因此不需要訓練自訂模型。
- 輕量:您不需要大型的資料集。 提供字詞或片語,以提高辨識率。
您可以使用片語清單搭配 Speech Studio、語音 SDK 或語音命令列介面 (CLI) 使用。 它們支援 即時轉錄 和 快速轉錄 API。 批次轉譯 API 不支援片語清單。
你可以同時使用短語清單作為基礎(標準)端點和 自訂語音 端點。 你可以在執行時套用短語清單,不需要模型訓練。 在某些情況下,需要訓練包含片語的客製化模型以提升準確度。 例如,在以下情況下使用自訂語音:
- 如果你需要使用大量片語,片語清單不應該超過2,000個片語。 請注意,較長的短語列表會影響品質和延遲。
片語清單權重
當你使用 Speech SDK 支援即時轉錄時,可以控制片語清單片語相對於預設字典的權重。 此設定會決定片語清單對語音轉文字結果的影響程度。
將短語列表權重設在 為 0.02.0的範圍內:
- 0.0:停用片語清單
- 1.0:預設權重(標準影響)
- 2.0:最大權重(最高影響力)
較高的權重會增加清單中的片語比預設字典中的替代詞組被識別的可能性。 此設定適用於完整清單。
在 Speech Studio 中試用
使用 Speech Studio 測試片語清單如何提升音訊辨識度。 若要在應用程式生產環境中實作短語清單,請使用 Speech SDK 或 Speech CLI。
舉例來說,假設你希望語音服務能辨識這句話:「嗨 Rehaan,我是 Contoso 銀行的 Jessie。」
您可能會發現,某個片語遭錯誤辨識為:「嗨,大家,我是來自 can’t do so 銀行的 Jesse。」
在前一種情境中,你會想把「Rehaan」、「Jessie」和「Contoso」加入你的短語清單。 這樣一來,名字就能被正確辨識。
現在試試 Speech Studio,看看片語清單如何提升辨識準確度。
注意
系統可能會提示您選取 Azure 訂閱和語音服務資源,然後確認您所在區域的計費。
- 移至 Speech Studio 中的即時語音轉換文字。
- 可透過上傳音訊檔案或使用麥克風錄音來測試語音辨識。 例如,選取 [以麥克風錄製音訊],然後說出「嗨 Rehaan,我是 Contoso 銀行的 Jessie。 」,然後選取紅色按鈕以暫停錄製。
- 你會在 測驗結果 的文字框中看到轉錄結果。 如果「Rehaan」、「Jessie」或「Contoso」被誤認,請在下一步將這些詞彙加入片語清單中。
- 選取 [顯示進階選項],然後開啟 [片語清單]。
- 在片語清單文字輸入框中輸入 "Contoso;Jessie;Rehaan"。 多句話用分號分隔。
- 使用麥克風再次測試辨識。 否則,請選擇音訊檔案旁的重試箭頭來重播音訊。 系統應該可辨識 "Rehaan"、"Jessie",和 "Contoso" 詞彙了。
在實時轉錄中實現短語列表
透過使用 Speech SDK,你可以一次新增一個片語,然後執行語音辨識。
var phraseList = PhraseListGrammar.FromRecognizer(recognizer);
phraseList.AddPhrase("Contoso");
phraseList.AddPhrase("Jessie");
phraseList.AddPhrase("Rehaan");
phraselist.SetWeight(weight);
透過使用 Speech SDK,你可以一次新增一個片語,然後執行語音辨識。
auto phraseListGrammar = PhraseListGrammar::FromRecognizer(recognizer);
phraseListGrammar->AddPhrase("Contoso");
phraseListGrammar->AddPhrase("Jessie");
phraseListGrammar->AddPhrase("Rehaan");
phraselist->SetWeight(weight);
透過使用 Speech SDK,你可以一次新增一個片語,然後執行語音辨識。
PhraseListGrammar phraseList = PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");
phraseList.setWeight(weight);
透過使用 Speech SDK,你可以一次新增一個片語,然後執行語音辨識。
const phraseList = sdk.PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");
phraseList.setWeight(weight);
透過使用 Speech SDK,你可以一次新增一個片語,然後執行語音辨識。
phrase_list_grammar = speechsdk.PhraseListGrammar.from_recognizer(reco)
phrase_list_grammar.addPhrase("Contoso")
phrase_list_grammar.addPhrase("Jessie")
phrase_list_grammar.addPhrase("Rehaan")
phraseList.setWeight(weight)
透過使用 Speech SDK,你可以一次新增一個片語,然後執行語音辨識。
phraseListGrammar, err := speech.NewPhraseListGrammarFromRecognizer(recognizer)
if err != nil {
// Handle error.
}
defer phraseListGrammar.Close()
phraseListGrammar.AddPhrase("Contoso")
phraseListGrammar.AddPhrase("Jessie")
phraseListGrammar.AddPhrase("Rehaan")
phraseListGrammar.SetWeight(weight)
使用 Speech CLI 時,你可以搭配 recognize 命令,以內嵌方式或透過文字檔加入片語清單。
嘗試從麥克風或音訊檔案辨識。
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
允許的字元包括區地區設定特定的字母和數字、空白字元以及特殊字元,例如 +、-、$、:、(、)、{、}、_、.、?、@、\、&、#、%、^、*、`、<、>、;、/。 系統會從片語中移除其他特殊字元。
在快速和 LLM 語音轉錄中實作片語清單
你可以透過 語音轉文字 REST API,在快速語音轉錄和 LLM 語音轉錄中新增片語清單。
curl --location 'https://YourResourceName.cognitiveservices.azure.com/speechtotext/transcriptions:transcribe?api-version=2025-10-15' \
--header 'Ocp-Apim-Subscription-Key: YourSpeechResourceKey' \
--form 'audio=@"YourAudioFile"' \
--form 'definition={
"locales": ["en-US"],
"phraseList": {
"phrases": ["Contoso", "Jessie", "Rehaan"]
}
}'
下一步
深入瞭解提高辨識準確度的選項。