AmiVoice Techblog

AmiVoiceの音声認識に関する技術情報・活用方法・組み込み方などを発信するアドバンスト・メディアのテックブログです

音声認識の「認識精度(認識率)」について


f:id:amivoice_techblog:20210209095049p:plain 大倉尭

皆さん、こんにちは!
株式会社アドバンスト・メディア大倉尭(おおくら たかし)です。

この度、AmiVoice Techblogの記事執筆を担当することになりました。
音声認識の技術やAmiVoice Cloud Platformに関することを中心に、このブログで様々な話題を提供できればと思います。よろしくお願いします。

今回のテーマ:音声認識の「認識精度(認識率)」について

まず最初の記事で扱うのは、皆さんが音声認識を使う上で最も重視するであろう「認識精度」についてです!
※似たような言葉に「認識率」がありますが、その違いについては後ほど説明します。

この「認識精度」ですが、どのように計算しているのでしょうか?
認識結果と正解の文が完全に一致していれば、認識精度は100%と言えそうです。
1文字も認識されなかったら、認識精度は0%になるでしょう。

では、以下の例の場合、認識精度は何%でしょうか?

  • 正解の文:本日もご利用いただきありがとうございま
  • 認識結果:本日もご利用    ありがとうございま

正しく認識している部分もありますが、「いただき」が認識されていなかったり、「ま」が「ま」になったりしていますね。 認識されていない部分はその分をマイナスすればよさそうですが、逆に認識結果に余計な言葉が入ってしまった時は、どのように認識精度を計算すればいいのでしょうか?

認識精度にはいくつか指標があるのですが、今回は弊社でよく使われている「文字単位の認識精度」の計算方法を紹介します。他の指標については今後の記事で紹介する予定です。 まず、正解文と認識結果を比較して、誤っている部分を見つけます。誤りには以下の3種類があります。

  • 削除誤り(Deletion error):正解文に存在する文字が、認識結果には存在しない誤り。
    上の例では、「いただき」の4文字が削除誤りに該当します。
  • 置換誤り(Substitution error):正解文に存在する文字が、認識結果では別の文字に置換されている誤り。
    上の例では、「ありがとうございま」の最後の「」が、認識結果では「」に置換されています。
  • 挿入誤り(Insertion error):正解文に存在しない文字が、認識結果に現れる誤り。
    上の例では、認識結果の最後の「」が挿入誤りに該当します。その前の「」も正解文には存在しませんが、置換誤りと扱える場合はそちらを優先します。

そして、正解文の文字数N削除誤り置換誤り挿入誤りの文字数をそれぞれDSIとすると、文字単位の認識精度は以下の式で計算できます。

認識精度 = (N - D - S - I) / N

上の例では、
認識精度 = (20 - 4 - 1 - 1) / 20 = 0.7 = 70%
となります。

「認識率」という言葉について

ここで、「認識精度」と「認識率」という言葉の違いについて説明します。

「認識精度」は英語でいうと "Accuracy" で、先ほどの計算式で示されます。
一方、認識結果を評価する際に "Correct" という値を使うことがあります。日本語では「正解率」などと訳されます。

Correct(正解率)= (N - D - S) / N

認識精度との違いは、I(挿入誤り)を含むかどうかです。認識結果のうち、正しく認識された文字の割合を示します。
ただし実際の利用場面を考えると、いくら正解率が高くても、余計な文字がたくさん挿入されていては使い物になりません。それも踏まえて、弊社では挿入誤りも含めた "Accuracy" で認識結果を評価することがほとんどです。

そして「認識率」という言葉なのですが、各種論文等では "Correct" の意味で使われることが多いようです。ただし、ビジネスの上では「認識精度」より「認識率」という言葉の方が伝わりやすいという理由もあって、慣例として "Accuracy" の意味で「認識率」という言葉を使うことが多い、というのが実情です。
そのため、以降の記事では分かりやすさを優先して、特記のない限り「認識率」も "Accuracy" の意味で使用します。

音声認識で「認識率」という言葉が使われた時は、Accuracy なのか Correct なのか、すなわち「挿入誤りをカウントしているかどうか」を確認した方がいいかもしれません。

おわりに

今後もこのような形で、音声認識についてあまり知らない方にも興味を持っていただけるような記事を投稿していきたいと思っています。
今後の記事では、認識精度と実際の認識結果の見た目の比較や、認識精度に関するいくつかの指標などを紹介していきたいです。
そして、AmiVoice Cloud Platformに新機能がリリースされた際には、このブログで技術的な解説ができればと思っています!

私もこのようなブログ記事を執筆するのは初めてで、手探りの部分もありますが、どうか今後ともよろしくお願いします。
ここまでお読みいただき、ありがとうございました!

この記事を書いた人