フレーズ リストは、認識を向上させるために事前に指定する単語またはフレーズのリストです。 フレーズ リストにフレーズを追加すると、その重要度が高くなり、システムで認識される可能性が高くなります。
Important
フレーズ リストは、エンドポイント レベルで適用される ランタイム認識機能 です。 以下で動作します。
- リアルタイム文字起こし (Speech SDK、Speech CLI、Speech Studio)
- 高速文字起こし API
- LLM Speech 文字起こし API
- Voice Live に関する API
フレーズ リストは、ベース音声エンドポイントとカスタム音声エンドポイントの両方で機能します。 モデルのトレーニングを必要とせず、バッチ文字起こしでは利用できません。
フレーズの例を、以下に示します。
- 名前
- 地理的な場所
- 同音異義語
- 業界または組織に固有の単語または略語
フレーズ リストはシンプルで軽量です。
- Just-In-Time: 音声認識を開始する直前にフレーズ リストを指定するため、カスタム モデルをトレーニングする必要はありません。
- 軽量: 大きなデータ セットは必要ありません。 認識を向上させる単語またはフレーズを指定します。
Speech Studio、Speech SDK、または Speech コマンド ライン インターフェイス (CLI) でフレーズ リストを使用できます。 リアルタイム文字起こしと高速 文字起こしAPI でサポートされています。 バッチ文字起こし API はフレーズ リストをサポートしていません。
フレーズ リストは、基本 (標準) エンドポイントと カスタム音声 エンドポイントの両方で使用できます。 実行時にフレーズ リストを適用しますが、モデル トレーニングは必要ありません。 状況によっては、精度を向上させるためのフレーズを含むカスタム モデルのトレーニングが必要な場合があります。 たとえば、次の場合はカスタム音声を使用します。
- フレーズの大きなリストを使用する必要がある場合、フレーズ リストには 2,000 個を超える語句を含めることはできません。 長いフレーズ リストは品質と待機時間に影響します。
フレーズ リストの重み
リアルタイムの文字起こしで Speech SDK を使用する場合は、既定の辞書に対するフレーズ リスト フレーズの重みを制御できます。 この設定は、フレーズ リストが音声テキスト変換の結果に与える影響を決定します。
0.0の範囲内のフレーズ リストの重みを2.0に設定します。
- 0.0: フレーズ リストを無効にします
- 1.0: 既定の重み (標準の影響)
- 2.0: 最大重量 (影響が最も大きい)
重みを大きくすると、リストの語句が既定の辞書の代替語句よりも認識される可能性が高くなります。 この設定は、完全な一覧に適用されます。
Speech Studio でテストする
Speech Studio を使用して、フレーズ リストによってオーディオの認識がどのように向上するかをテストします。 運用環境のアプリケーションでフレーズ リストを実装するには、Speech SDK または Speech CLI を使用します。
たとえば、Speech Service で "Hi Rehaan, I'm Jessie from Contoso bank" (こんにちは Rehaan、I'm Jessie from Contoso bank) という文を認識させる場合を考えます。
フレーズが「こんにちは、みなさん、Jesseです。can't do so bankの者です。」のように誤って認識されることがあります。
前のシナリオでは、フレーズ リストに "Rehaan"、"Jessie"、"Contoso" を追加します。 その後、名前が正しく認識されます。
ここで、Speech Studio を試して、フレーズ リストで認識の精度を向上させる方法を確認します。
注
Azure サブスクリプションと Speech リソースを選択し、リージョンの課金を確認するように求められる場合があります。
- Speech Studio のリアルタイム音声テキスト変換に移動します。
- オーディオ ファイルをアップロードするか、マイクを使用してオーディオを録音して音声認識をテストします。 たとえば、[マイクでオーディオを録音する] を選択してから、"Hi Rehaan, I'm Jessie from Contoso bank." と話します。 " と話してから、赤いボタンを選択して録音を停止します。
- 文字起こしの結果が [ テスト結果 ] テキスト ボックスに表示されます。 "Rehaan"、"Jessie"、または "Contoso" が正しく認識されない場合は、次の手順で語句リストに用語を追加します。
- [詳細オプションの表示] を選択し、[フレーズ リスト] をオンにします。
- フレーズ リストのテキスト ボックスに「Contoso;Jessie;Rehaan」と入力します。 複数の語句をセミコロンで区切ります。
- マイクを使用して認識を再度テストします。 それ以外の場合は、オーディオ ファイルの横にある再試行矢印を選択してオーディオを再実行します。 "Rehaan"、"Jessie"、または "Contoso" という用語を認識する必要があります。
リアルタイム文字起こしでフレーズ リストを実装する
Speech SDK を使用すると、一度に 1 つずつフレーズを追加し、音声認識を実行できます。
var phraseList = PhraseListGrammar.FromRecognizer(recognizer);
phraseList.AddPhrase("Contoso");
phraseList.AddPhrase("Jessie");
phraseList.AddPhrase("Rehaan");
phraselist.SetWeight(weight);
Speech SDK を使用すると、一度に 1 つずつフレーズを追加し、音声認識を実行できます。
auto phraseListGrammar = PhraseListGrammar::FromRecognizer(recognizer);
phraseListGrammar->AddPhrase("Contoso");
phraseListGrammar->AddPhrase("Jessie");
phraseListGrammar->AddPhrase("Rehaan");
phraselist->SetWeight(weight);
Speech SDK を使用すると、一度に 1 つずつフレーズを追加し、音声認識を実行できます。
PhraseListGrammar phraseList = PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");
phraseList.setWeight(weight);
Speech SDK を使用すると、一度に 1 つずつフレーズを追加し、音声認識を実行できます。
const phraseList = sdk.PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");
phraseList.setWeight(weight);
Speech SDK を使用すると、一度に 1 つずつフレーズを追加し、音声認識を実行できます。
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 を使用すると、一度に 1 つずつフレーズを追加し、音声認識を実行できます。
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;"
また、1 行に 1 つのフレーズを含むテキスト ファイルを使用して、フレーズ リストを追加することもできます。
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"]
}
}'
次の手順
認識精度を向上させるためのオプションの詳細について説明します。