AmiVoice Techblog

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

音声認識における「表記ゆれ」とは?

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

皆さん、こんにちは!

以前私が執筆した「なぜ音声認識率は100%にならないのか?」の記事の中で、その要因の一つとして「表記ゆれ」を紹介しました。

amivoice-tech.hatenablog.com

今回の記事では、この「表記ゆれ」についてもう少し深掘りします。表記ゆれがどのようなものかという説明に加えて、

  • どのような場面で表記ゆれが問題になるのか?
  • 音声認識において表記ゆれがどの程度起こるのか?

といった点についても解説できればと思います。

目次

表記ゆれとは?

「表記ゆれ」とは、同じ音・同じ意味であるにもかかわらず、その表記が異なっていることです。例えば、以下のようなパターンがあります。

パターン
漢字と仮名 様々 / さまざま
送り仮名の違い 引っ越し / 引越し / 引越
仮名表記の違い バイオリン / ヴァイオリン
アルファベットと仮名 AmiVoice / アミボイス
漢字と算用数字 二千円 / 2000円

さらに、このブログでもよく登場する安藤さんが「表記ゆれ単語王」だと言っているのが「シークヮーサー」です。考えつくだけでも

と、きりがありません*1

表記ゆれが問題になる場合

この「表記ゆれ」ですが、どのような場合に問題が発生するのでしょうか。問題の例を3つ挙げてみます。

テキストでの検索が難しくなる

音声認識の結果を活用する方法として多いのは、会議の議事録のように「音声をテキスト化して保存する」ことだと思います。このテキスト化のメリットの1つが、「後から内容を検索できる」ことです。

ここで、認識結果のテキストに表記ゆれがある場合を考えてみましょう。例えば、テキストから「AmiVoice」で検索をかけると、完全一致の条件の場合「アミボイス」は検索結果に出てきません。

OR検索や正規表現などを使えば多少の表記ゆれにも対応できますが、「シークヮーサー」のようなものになると全パターンを網羅するのは難しくなってしまいます*2

音声認識率に影響を及ぼすことがある

過去の私の記事で紹介していますが、音声認識率は基本的に文字単位の認識率で計算しているので、表記ゆれが誤りとカウントされてしまうことがあります。

amivoice-tech.hatenablog.com

例えば、正解文では「引越」なのに認識結果で「引」となっている場合、そのままでは「」と「」の部分が挿入誤りとしてカウントされてしまい、見かけ上の音声認識率が下がってしまいます。

表記ゆれが具体的にどの程度起こり、音声認識率に影響を及ぼすかについては、次節で詳しく見ていきます。

フォーマットとの不一致

議会の議事録の案件などに多いのですが、数字などのフォーマットが厳密に決められていることがあります。例えば、「数字は算用数字で表示する」と決められているのに、認識結果で「二千円」と出力してしまうのは、表記ゆれであってもNGです。学習データを見直す、認識結果の漢数字を後処理で算用数字に変換するといった対策が必要です。

表記ゆれはどの程度起こるのか?

実際の音声認識で、表記ゆれはどの程度起きているのでしょうか。

社内のデータでの検証になりますが、「送り仮名の違い」「漢字・ひらがなの違い*3」といった表記ゆれを修正すると、認識率は1~2ポイント程度上がるようです*4。もちろん音声そのものの状況やエンジンによっても変化するので、あくまで参考としての値です。

また、以下のような場合もありました。
以前、「汎用エンジン」と「領域特化型エンジン」の音声認識率(認識精度)を比較した記事を掲載しました。

amivoice-tech.hatenablog.com

この記事で示した音声認識率は

表記ゆれを原因とする誤認識は、正解となるよう正解文の修正をしました。

と記載のある通り、表記ゆれを修正した後の値です。改めて示しておきます。

エンジン 音声認識
音声入力_汎用 87.41%
音声入力_電子カルテ 97.61%

この2つのエンジンで、表記ゆれを修正する前の音声認識率も合わせて示したのが以下の表です。

エンジン 音声認識
(修正前→修正後)
音声入力_汎用 75.73% 87.41%
音声入力_電子カルテ 93.77% 97.61%

いかがでしょうか。汎用エンジンは表記ゆれの修正により認識率が10ポイント以上も変わっており、思ったより大きな差だと驚く方もいるかと思います。ただ、認識結果を確認したところ、「全角・半角の違い」「算用数字・漢数字の違い」といった、テストセットの書式の違いに関連する表記ゆれが多くありました。音声認識で思った通りの認識率が出ない場合は、こうした書式の違いも含めた表記ゆれがないか、一度認識結果と正解文を確認してみることをおすすめします。

おわりに

今回の記事では、音声認識における「表記ゆれ」について詳しく見てきました。「なぜ音声認識率は100%にならないのか?」の記事でも触れましたが、表記ゆれはパターンが多く、機械的に変換できない場合も多いです。音声認識を扱う上での難しい問題の一つであると分かってもらえれば嬉しいです。

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

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

この記事を書いた人

*1:Wikipediaに分かりやすい図がありました (シークヮーサー - Wikipedia)。全部で何通りの表記法があるのか、ちょっとした計算問題になりそうですね。

*2:音声認識の結果ではないですが、この記事を書くにあたり、安藤さんが過去に「シークヮーサー」の話をしていたテキストチャットを探すのに少し手間取りました。「シークーサー」では引っかからず、「シーク」で検索してようやく見つけました。ただし、「シーク」で検索すると「シークレット」なども検索結果として出てきてしまいました。

*3:なお、漢字で表記できる部分をひらがなで表記することを「漢字を開く」、そのまま漢字で表記することを「漢字を閉じる」といいます。例えば、この記事では「表記揺れ」の「揺れ」の部分は漢字を開いています。

*4:この値は以前の記事で説明した「エラー改善率」ではなく、認識率60%のものが61~62%程度に、認識率80%のものが81~82%程度になる、という意味です。エラー改善率についてはこちらの記事をご覧ください→音声認識の「エラー改善率」と「認識精度(認識率)」の違いとは? - AmiVoice Techblog