フレーズ リストを使用して認識精度を向上させる
フレーズ リストは、認識機能を高めるために、事前に提供される、単語またはフレーズの一覧です。 フレーズ リストにフレーズを追加すると、その重要性が増加するため、認識される可能性が高くなります。
フレーズの例を、以下に示します。
- 名前
- 地理的な場所
- 同音異義語
- 業界または組織に固有の単語または略語
フレーズ リストはシンプルで軽量です。
- Just-In-Time: 音声認識を開始する直前にフレーズ リストが提供されるため、カスタム モデルをトレーニングする必要がなくなります。
- 軽量: 大きなデータ セットは必要ありません。 認識を向上させる単語またはフレーズを指定します。
サポートされるフレーズ リスト ロケールについては、Speech サービスの言語と音声のサポートに関する記事を参照してください。
Speech Studio、Speech 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 リソースを選択し、リージョンの課金を確認することを求めるメッセージが表示される場合があります。
- Speech Studio のリアルタイム音声テキスト変換に移動します。
- 音声認識をテストするには、オーディオ ファイルをアップロードするか、マイクでオーディオを録音します。 たとえば、[マイクでオーディオを録音する] を選択してから、"Hi Rehaan, I'm Jessie from Contoso bank." と話します。 " と話してから、赤いボタンを選択して録音を停止します。
- 文字起こしの結果が [テスト結果] テキスト ボックスに表示されます。 "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");
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
使用できる文字には、ロケール固有の文字と数字、空白文字、特殊文字 (+、-、$、:、(、)、{、}、_、.、?、@、\、'、&、#、%、^、*、`、<、>、;、/ など) が含まれます。 その他の特殊文字は、フレーズから内部的に削除されます。
次の手順
認識の精度を高めるためのその他のオプションを調べる