フレーズ リストを使用して認識精度を向上させる

フレーズ リストは、認識機能を高めるために、事前に提供される、単語またはフレーズの一覧です。 フレーズ リストにフレーズを追加すると、その重要性が増加するため、認識される可能性が高くなります。

サポートされるフレーズ リスト ロケールについては、Speech サービスの言語と音声のサポートに関する記事を参照してください。

フレーズの例を、以下に示します。

  • 名前
  • 地理的な場所
  • 同音異義語
  • 業界または組織に固有の単語または略語

フレーズ リストはシンプルで軽量です。

  • Just-In-Time: 音声認識を開始する直前にフレーズ リストが提供されるため、カスタム モデルをトレーニングする必要がなくなります。
  • 軽量: 大きなデータ セットは必要ありません。 認識を向上させる単語またはフレーズを指定します。

Speech StudioSpeech SDK、または Speech コマンド ライン インターフェイス (CLI) でフレーズ リストを使用できます。 バッチ文字起こし API はフレーズ リストをサポートしていません。

フレーズ リストは、標準とカスタム音声の両方で使用できます。 状況によっては、フレーズを含むカスタム モデルをトレーニングすることが、精度を高める最善の方法と考えられます。 たとえば、以下の場合では Custom Speech を使用することになります。

  • 多数のフレーズの一覧を使用する必要がある場合。 フレーズ リストに含めることができるフレーズの数は 500 以下です。
  • 現在サポートされていない言語のフレーズ リストが必要な場合。

Speech Studio でテストする

Speech Studio を使用して、フレーズ リストの支援によってオーディオの認識を向上させる方法をテストできます。 運用環境のアプリケーションにフレーズ リストを実装するには、Speech SDK または Speech CLI を使用します。

たとえば、音声サービスに次の文を認識させたいとしましょう: "Hi Rehaan, I'm Jessie from Contoso bank."

フレーズが次のように誤認識される場合があります: "Hi everyone, I'm Jesse from can't do so bank."

上のシナリオでは、"Rehaan"、"Jessie"、"Contoso" をフレーズ リストに追加する必要があるでしょう。 これで、名前が正しく認識されるはずです。

次に、Speech Studio を使用して、フレーズ リストで認識精度がどのように向上するかを確認します。

注意

Azure サブスクリプションと Speech リソースを選択し、リージョンの課金を確認することを求めるメッセージが表示される場合があります。

  1. Speech Studioリアルタイム音声テキスト変換に移動します。
  2. 音声認識をテストするには、オーディオ ファイルをアップロードするか、マイクでオーディオを録音します。 たとえば、[マイクでオーディオを録音する] を選択してから、"Hi Rehaan, I'm Jessie from Contoso bank." と話します。 " と話してから、赤いボタンを選択して録音を停止します。
  3. 文字起こしの結果が [テスト結果] テキスト ボックスに表示されます。 "Rehaan"、"Jessie"、または "Contoso" が誤って認識された場合は、次の手順で語句をフレーズ リストに追加できます。
  4. [詳細オプションの表示] を選択し、[フレーズ リスト] をオンにします。
  5. フレーズ リストのテキスト ボックスに「Contoso;Jessie;Rehaan」と入力します。 複数のフレーズは、セミコロンで区切る必要があります。 Screenshot of a phrase list applied in Speech Studio.
  6. マイクを使用して認識を再度テストします。 それ以外の場合は、オーディオ ファイルの横の再試行の矢印を選択してオーディオを再度実行できます。 "Rehaan"、"Jessie"、または "Contoso" という用語を認識する必要があります。

フレーズ リストを実装する

Speech SDK を使用すると、フレーズを個別に追加してから、音声認識を実行できます。

var phraseList = PhraseListGrammar.FromRecognizer(recognizer);
phraseList.AddPhrase("Contoso");
phraseList.AddPhrase("Jessie");
phraseList.AddPhrase("Rehaan");

Speech SDK を使用すると、フレーズを個別に追加してから、音声認識を実行できます。

auto phraseListGrammar = PhraseListGrammar::FromRecognizer(recognizer);
phraseListGrammar->AddPhrase("Contoso");
phraseListGrammar->AddPhrase("Jessie");
phraseListGrammar->AddPhrase("Rehaan");

Speech SDK を使用すると、フレーズを個別に追加してから、音声認識を実行できます。

PhraseListGrammar phraseList = PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");

Speech SDK を使用すると、フレーズを個別に追加してから、音声認識を実行できます。

const phraseList = sdk.PhraseListGrammar.fromRecognizer(recognizer);
phraseList.addPhrase("Contoso");
phraseList.addPhrase("Jessie");
phraseList.addPhrase("Rehaan");

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")

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

使用できる文字には、ロケール固有の文字と数字、空白文字、特殊文字 (+、-、$、:、(、)、{、}、_、.、?、@、\、'、&、#、%、^、*、`、<、>、;、/ など) が含まれます。 その他の特殊文字は、フレーズから内部的に削除されます。

次の手順

認識の精度を高めるためのその他のオプションを調べる