AmiVoice Techblog

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

音声認識の「エラー改善率」と「認識精度(認識率)」の違いとは?

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

皆さん、こんにちは!

音声認識について、「認識精度が75%から85%に上げられたのだから、同じくらい頑張ればさらに10ポイント改善して95%にできるんじゃないの?」といった疑問を持っている方もいるかと思います。しかし実際には、認識精度が上がるほど、さらに認識精度を1ポイント上げるのは難しくなるのです。

この疑問に答えるため、今回は「エラー改善率」という指標を紹介します。

認識精度向上策としての価値が違う?

今ここに、認識精度60%音声認識システムがあるとしましょう。そして、このシステムに改良Xを施し、認識精度を65%に上げられたとします。認識精度で見れば5ポイント分向上したことになります。

一方、認識精度90%音声認識システムに改良Yを施し、認識精度を95%に上げられたとしましょう。こちらも認識精度の向上幅は5ポイント分です。

では、この「60%65%への改良X」と「90%95%への改良Y」を比べると、どちらの方が「認識精度向上策としての価値」が高いのでしょうか?

音声認識を利用する側からすれば、「どちらも5ポイントの向上だから価値は同じでは」と思う方もいらっしゃるかもしれません。しかし結論から言うと、後者の改良Yの方が価値は高いです。これは、以下で説明する「エラー改善率」という指標で考えると分かりやすいです。

認識精度とエラー改善率

認識精度60%音声認識システムの場合、逆に言えば40%は認識結果が誤っていることになります。これをエラー率と呼び、以下の式で表されます。

エラー率 = (D + S + I) / N

アドバンスト・メディアでよく使われる「文字単位」の評価の場合、N正解文の文字数DSIはそれぞれ削除誤り置換誤り挿入誤りの文字数になります。認識精度の計算式が

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

なので、

エラー率 = 1 - 認識精度

と計算できることも分かります。*1

そして、「エラー改善率」は、認識システムの改善によりエラーがどのくらいの割合で減ったのかを示します。計算式で示すと以下のようになります。

エラー改善率 = (改善前のエラー率 - 改善後のエラー率) / 改善前のエラー率

この計算式をもとに、「エラー改善率①:認識精度が60%65%に向上した場合」と「エラー改善率②:認識精度が90%95%に向上した場合」を計算してみましょう。

エラー改善率① = (0.4 - 0.35) / 0.4 = 12.5%

エラー改善率② = (0.1 - 0.05) / 0.1 = 50%

いかがでしょうか。認識精度で見れば同じ5ポイントの改善でも、エラー改善率で見ると大きな差があることが分かります。

「認識精度向上策としての価値」の話に戻ってみましょう。認識精度が90%→95%に向上したということは、エラー改善率で見ると50%の向上ということになります。仮にこれと同等の改善効果が認識精度60%音声認識システムで達成できた場合、エラー改善率で考えると認識精度は一気に80%まで上がることが期待できます。「60%→65%」の改善より価値が高い、という意味が分かっていただけたと思います。

冒頭の疑問にも答えます。認識精度が上がるほど、さらに認識精度を1ポイント上げるのに必要なエラー改善率は大きくなります。実際にエラー改善率を計算してみましょう。

「認識精度70%→71%」に必要なエラー改善率 = (0.3 - 0.29) / 0.3 ≒ 3.3%
「認識精度80%→81%」に必要なエラー改善率 = (0.2 - 0.19) / 0.2 = 5%
「認識精度90%→91%」に必要なエラー改善率 = (0.1 - 0.09) / 0.1 = 10%

この計算から、「認識精度が上がるほど、さらに認識精度を1ポイント上げるのは難しくなる」という結論が得られます。

WER:単語単位のエラー率

ここで、音声認識の論文等でよく使われるWER(Word Error Rate)という指標についても触れておきます。

認識精度の評価は「文字単位」ではなく「単語単位」で計算することがあります。特に英語の音声認識の評価は、多くが「単語単位」で行われます。音声認識の論文では英語の評価データがよく使われるので、その認識精度は単語単位のエラー率であるWERで示されることが多いです。計算式は文字単位のものと同様ですが、NDSIの集計が「文字数」から「単語数」に変わります。なお、文字単位のエラー率はCER(Character Error Rate)で表されます。

おわりに

今回は、音声認識の性能を測る指標の一つである「エラー改善率」について説明しました。

今の音声認識システムは、ノイズの少ないクリアな音声であれば認識精度90%以上という高い性能が出ることも当たり前になってきました。その場合、認識精度を1ポイント上げるだけでもエラー改善率10%以上が必要となり、様々な研究機関や企業が精度向上のための技術開発にしのぎを削っています。音声認識を利用する側から見た「認識精度の改善幅」としてはわずかかもしれませんが、その裏にはこうした指標による評価が行われているのだ、ということを知ってもらえると嬉しいです。

もしこの記事を見て音声認識技術やAmiVoice Cloud Platformに興味を持った開発者の方がいましたら、ぜひ https://acp.amivoice.com/ を試してみてください。毎月音声60分までは無料で使えます。

ここまでお読みいただき、ありがとうございました!

この記事を書いた人

*1:認識精度計算の詳細は、こちらの記事をご覧ください → 

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