用語集 / どう聞き取るか

単語誤り率

別名:WER

更新日:

定義

単語誤り率(WER)は、音声認識の精度を測る標準的な指標です。モデルが間違えた単語の数を、実際に話された単語の数で割ったものです。WERが5%なら、およそ20語に1語が置き換えられたか、抜けたか、付け加えられたことになります。

WERは3種類の誤りを数えます。置換は、正しい位置にある間違った単語です(「意外」を「以外」と書くなど)。脱落は、話したのに出てこなかった単語です。挿入は、話していないのに出てきた単語です。これらを合計し、正しい文字起こしの単語数で割ると、誤り率になります。挿入には上限がないので、音声の質が悪いと100%を超えることもあります。

この数値は、測定に使った音声と並べて初めて意味を持ちます。ポッドキャスト用のマイクで読み上げたきれいな英語で3%のモデルが、同じ話者でもカフェでは15%になることがあり、訓練で触れる機会の少なかった言語ではさらに悪くなります。公表されているWERの数値は、ほぼ必ず標準のベンチマークセットで測られたもので、その音声はあなたのデスクよりもきれいです。

WERでは捉えられないこと

どの誤りも同じように数えられますが、実際には同じではありません。「えー」が抜けるのは改善ですが、「ない」が抜けると意味が逆になります。名字の誤りは修正の手間になりますが、「の」のような小さな語の誤りは目にも留まらないので、何の手間にもなりません。整形はWERにはまったく反映されません。「1030 am」と「10:30 AM」は同じ単語です。そのため、生のWERが少し悪くても、整形がずっと優れているツールのほうが、修正の少ないテキストを出せます。

だから本当に気にすべき数値は、「整形後、100語あたりの修正回数」に近いものです。これを報告するベンチマークはなく、自分の仕事を1週間音声入力してみることでしか測れません。

ベンダーの精度に関する主張の読み方

どのベンチマークで、どの言語で、どのマイクで測ったのかを確認してください。データセットの名前がない「精度99%」は宣伝文句です。その数値が修正のステップの前なのか後なのか、個人用辞書が使われていたかも確認してください。そして、WERには見えないものと比べて評価してください。名前、数字、そしてテキストが文章として届くのか、文字起こしとして届くのかです。

自分の誤り率を下げる

口の近くに置いた良いマイクは、どんなモデルの変更よりも効果があります。キーを離す前に文を言い終えると、モデルが曖昧さを解消するための文脈が得られます。そして、実際に口にする名前や用語を登録した個人用辞書は、繰り返し起こる誤りを直します。それこそが重要な誤りです。月に1回起こる間違いは迷惑な程度ですが、毎日起こる間違いは音声入力をやめる理由になるからです。

Macで自分の単語誤り率を測る方法

jiwerという無料のオープンソースツールを使えば、自分の声と自分のマイクでWER(単語誤り率)を測れます。正しい文字起こしと認識器が出力したものの間の最小編集距離を計算するもので、ベンチマークと同じ計算方法です。

この結果が表すのは、その机とマイク、読み上げた文章での数値です。サンプルは小さいので、おおよその目安として扱い、結論を出す前に別の文章でも繰り返してください。

  1. 数百語の文章を選び、1行に1文ずつ書いたプレーンテキストファイルとしてref.txtという名前で保存します。これが正解の基準になります。
  2. テストしたいツールで同じ文章を音声入力し、出力をhyp.txtとして保存します。同じ文が同じ行に来るようにします。
  3. 大文字、句読点、数字をどう扱うかを決め、両方のファイルに同じ整形を施します。簡単なのは、両方ともすべて小文字にして句読点を取り除く方法です。
  4. ターミナルを開き、次のコマンドでツールをインストールします:pip install jiwer(Python 3.8以降が必要です)。
  5. 次を実行すると単語誤り率が表示されます:jiwer -r ref.txt -h hyp.txt
  6. コマンドに-aを付けると各文のアラインメントが表示され、どの単語が置き換わったか、抜けたか、挿入されたかがわかります。
  7. 文字誤り率を出したい場合は、代わりに-cを付けます。

同じモデルのWERの数値が食い違うのはなぜですか?

多くの場合、採点前のテキストの整え方が違うためです。WERは文字列の編集距離にもとづくため、2つの文字起こしのあらゆる違いを誤りとして数えます。短縮形を省略せずに書いた場合や、数を数字で書いた場合など、人が見れば正しいと判断する違いも含まれます。

Whisperの論文はこの問題を取り上げ、誤りを数える前に両方の文字起こしに適用するテキスト正規化器で対処しています。著者らによると、いくつかのデータセットではこの処理だけでWERが最大50パーセント下がりました。背後にある正規化の説明がないWERの数値は、ほかの数値と比較できません。

  • Whisperの正規化器は、採点の前にhmm、mm、mhm、mmm、uh、umという語を取り除きます。
  • 角かっこや丸かっこで囲まれた語句をすべて取り除きます。
  • 短縮形を省略しない形に展開します。
  • 文字で書かれた数や金額を数字に書き換えます。たとえば「ten thousand dollars」は「$10000」になります。
  • イギリス式のつづりをアメリカ式に変換し、句読点や記号のほとんどを取り除きます。

WERとCER:単語か文字か

文字誤り率(CER)は、同じ計算を単語ではなく文字単位で行ったものです。長い単語の1文字の誤りは、WERでは1つの誤りとして数えられますが、CERではごく一部の誤りにしかなりません。そのためCERのほうが甘い数値になり、2つは互いに比較できません。

どちらの単位を使うかは、モデルの公開元が言語ごとに決めます。たとえばWhisperプロジェクトは、Common Voice 15とFleursのデータセットについて、言語ごとにWERかCERのどちらかを報告しています。精度の表を読むときは、ある行をほかの行と比べる前に、その行がどちらを使っているかを確認してください。

よくある質問。

良い単語誤り率とはどのくらいですか?

きれいな英語のベンチマーク音声では、現在の最高のモデルは5%未満です。実際の使用では、ノートパソコンのマイクで普通に話した場合、5〜10%が一般的です。ツールに優れた整形処理と名前のための辞書があれば、それでも十分に使えます。

単語誤り率はどう計算しますか?

置換、脱落、挿入の合計を、正しい文字起こしの単語数で割ります。100語の文章で、1語を変え、1語を落とし、1語を加えたモデルのWERは3%です。

WERが低いほど良いツールなのですか?

いいえ。WERは整形、句読点、どの単語を間違えたかを無視します。時刻、価格、名前を正しく書き、言いよどみを取り除くツールは、生のWERがより低くても整形処理のないツールより、修正が少なくて済むことがあります。

WERを自分で計算するには?

正しいテキストと認識結果をそれぞれテキストファイルとして保存し、pip install jiwerでオープンソースのjiwerツールをインストールして、ターミナルでjiwer -r ref.txt -h hyp.txtを実行します。先に両方のファイルに大文字と句読点の同じ整形を施してください。そうしないと、書式の違いが誤りとして数えられます。

WERとCERの違いは何ですか?

WERは誤った単語を数え、CERは誤った文字を数えます。どちらも正しい文字起こしの長さで割ります。1文字だけ誤った単語は文字単位ではほぼ正しいため、同じ出力ならCERのほうが低くなります。

単語誤り率に句読点は含まれますか?

使われるテキスト正規化によります。多くのベンチマークでは、Whisperの論文の正規化器と同じように、採点前に両方の文字起こしから句読点と大文字を取り除きます。そのため公表された数値からは、モデルの句読点の付け方の良し悪しはわかりません。

関連用語

いつだって、声のほうが速かった。

7日間無料、その後は$19 USDの買い切り。アカウント不要、サブスクリプションなし、アップロードなし。

macOS 14以降 · Apple silicon