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

概要

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

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

音声の精度の定義

音声の精度はさまざまな方法で測定できます。必要に応じて複数の指標を使用すると効果的な場合もあります。ただし、業界標準の比較方法としてワードエラー率(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 の指標は独立したものであり、相関性を期待すべきものではありません。

正規化

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

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

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

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

  • 10 より小さい数字には単語を使用します。

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

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

    すべきこと してはいけないこと
    ウォリアーズ対レイカーズ ウォリアーズ 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 指標とすべての差分を可視化したものが表示されます。