音声の精度を測定して改善する

概要

自動音声認識(ASR)は、機械による音声文字変換や音声入力(STT)とも呼ばれ、音声を記録した音声信号をテキストに変換します。ASR には、字幕生成、仮想アシスタント、インタラクティブ音声レスポンス(IVR)、音声入力など、さまざまなアプリケーションがあります。しかし、ML システムが 100% 正確であることはまれで、ASR も例外ではありません。重要なシステムで ASR を使用する予定がある場合は、ASR を統合した広範なシステムのパフォーマンスを把握するために、その精度や全体的な品質を測定することが非常に重要です。

精度を測定すれば、システムを調整して、それぞれの状況に応じてさらに精度を高めることができます。Google の Cloud Speech-to-Text API では、最適な認識モデルの選択や Google の Speech Adaptation API を利用することで、精度を調整できます。長時間の音声、医療、電話での会話など、さまざまなユースケースに合わせたモデルを豊富に取りそろえています。

音声の精度の定義

音声の精度はさまざまな方法で測定できます。必要に応じて複数の指標を使用すると効果的な場合もあります。ただし、業界標準の比較方法として Word Error Rate(WER)があり、通常は WER と略されます。WER は、セット全体における単語の音声文字の誤変換率を測定します。WER が低いほど、システムの精度が高いことを意味します。

ASR の精度についての記述で、「グラウンド トゥルース」という用語を目にすることもあります。グラウンド トゥルースとは、精度の比較と測定に使用する、通常は人間が行った 100% 正確な音声文字変換のことです。

ワードエラー率(WER)

WER は、発生の可能性がある次の 3 種類の音声文字変換エラーの組み合わせです。

  • 挿入エラー(I): 仮説の文字起こしに存在し、グラウンド トゥルースに存在しない単語。
  • 置換エラー(S): 仮説の文字起こしとグラウンド トゥルースの両方に存在するが、正しく文字起こしされていない単語。
  • 削除エラー(D): 仮説の文字起こしには存在しないが、グラウンド トゥルースに存在する単語。

\[WER = {S+R+Q \over N}\]

WER を求めるには、各エラーの合計数を加算して、グラウンド トゥルースの文字起こしの単語数(N)の合計で割ります。新しいテキストが大量に挿入されるなど、精度が非常に低い状況では、WER が 100% を超えることがあります。注: 置換は基本的に削除の後に挿入を行うもので、置換の中には他の置換よりも厳密ではないものもあります。たとえば、単語ではなく 1 文字を置き換えることで、違いが生じることがあります。

WER と信頼スコアの関係

WER 指標は信頼スコアとは独立しており、通常、両者は相関しません。信頼スコアは尤度に基づいていますが、WER は単語が正しく認識されたか否かに基づいています。単語が正しく認識されないと、ちょっとした文法上のミスでも WER が高くなることがあります。正しく認識された単語は WER が低いため、その可能性は低くなりますが、それでも尤度が低くなり、単語があまり頻出しない場合や音声にノイズが非常に多い場合は、信頼度が低下します。

同様に、頻繁に使用される単語は、ASR で正しく文字起こしされる可能性が高いため、信頼スコアが高くなります。たとえば、「I」と「eye」の違いを認識すると、「I」はより一般的な単語なので高い信頼度が得られるかもしれませんが、その分 WER 指標は低くなっています。

要約すると、信頼度指標と WER 指標は独立したものであり、相関性を期待するべきではありません。

Normalization

WER 指標を計算する際に、機械による音声文字変換は人間が行ったグラウンド トゥルースの音声文字変換と比較されます。両方の音声文字変換のテキストは、比較が完了する前に正規化されます。機械による音声文字変換と人間が行ったグラウンド トゥルースの音声文字変換を比較する場合、句読点は削除され、大文字は無視されます。

グラウンド トゥルースの規則

どのような音声信号の場合でも、人間が合意した単一の音声文字変換の形式がないことを認識することが重要です。考慮すべき要素は数多くあります。たとえば、音声信号には「huh」、「yep」、「umm」など音声以外の発声が含まれている場合があります。"medical_Conversation" などの一部の Cloud STT モデルには、このような発声が含まれているものもありますが、含まれていないものもあります。そのため、グラウンド トゥルースの規則が評価対象モデルの規則と一致している必要があります。以下のハイレベルなガイドラインは、特定の音声信号のグラウンド トゥルース テキストの音声文字変換を準備するために使用されます。

  • 標準の文字に加えて、0~9 の数字を使用できます。
  • 「@」、「#」、「$」、「$」などの記号は使用しないでください。「at」、「hash」、「dollar」、「dot」などの単語を使用します。
  • 「%」は数字が先行する場合のみ使用し、それ以外は「percent」という単語を使用します。
  • 「\$」は、後に数字が続く場合のみ使用します(「牛乳は \$3.99」など)。

  • 10 未満の数字には単語を使用します。

    • たとえば、「私は四(four)匹の猫と 12 個の帽子を持っています。」
  • 測定単位、通貨、万、億、兆などの大きな単位には数字を使用します。たとえば、「七百五十万」ではなく「750 万」となります。

  • 以下のような場合は、略語は使用しないでください。

    すべきこと してはいけないこと
    ウォリアーズ対(versus)レイカーズ ウォリアーズ対(vs)レイカーズ
    「123 Main Street」に住んでいます 「123 Main St」に住んでいます

音声の精度の測定

音声を使用して精度を決定する手順は次のとおりです。

テスト用の音声ファイルを収集する

音声ファイルの代表的なサンプルを収集して、その品質を測定します。このサンプルはランダムであるべきで、できるだけターゲットの環境に近いものにする必要があります。たとえば、品質保証のためにコールセンターの会話を文字起こしする場合は、本番の音声と同じ機材で録音された実際の通話をランダムに数件選択する必要があります。音声がスマートフォンやパソコンのマイクで録音されたもので、目的のユースケースを代表するものでない場合は、録音した音声を使用しないでください。

統計的に有意な精度の指標を得るには、少なくとも 30 分間の録音が必要です。30 分~3 時間の音声を使用することをおすすめします。このラボでは音声が用意されています。

グラウンド トゥルースの音声文字変換を行う

音声の正確な文字変換を取得します。通常は、ターゲット音声の単一パスまたは二重パスの人間による音声文字変換が含まれます。目標は、100% の精度の音声文字変換で自動的に結果を測定することです。

グラウンド トゥルースの音声文字変換を行う際に、ターゲット ASR システムの音声文字変換の規則にできる限り合わせることが重要です。たとえば、句読点、数字、大文字アルファベットの使用方法が統一されていることを確認します。

機械による音声文字変換を行い、表示されたテキストの問題を修正します。

機械による音声文字変換を行う

音声を Google Speech-to-Text API に送信し、Speech-to-Text UI を使用して仮説の音声文字変換を行います。

グラウンド トゥルースを音声にペア設定する

UI ツールで [Attach Ground Truth] をクリックすると、指定した音声ファイルが指定したグラウンド トゥルースに関連付けられます。アタッチメントが終了すると、WER 指標とすべての差分を可視化したものが表示されます。