音声認識の得意なことと苦手なこと。

 年に数回くらい「音声認識でこんなことはできますか」という趣旨のメールが来るので、やりやすいこととやりづらいことを書いておこうと思う。なお、これは現時点での技術状況であり、将来どうなっているかは分からない。

1.大量データは得意。
 やはり機械なので、大量のデータの処理には向いている。別に少量のデータでも精度が変わることはないが、少量のデータなら人間がやった方が精度がいいので音声認識の導入はあまり意味がない。

2.雑音に弱い。
 マイクと口の距離が近ければ周りの音はさほど問題にならないが(携帯電話など)、距離が離れると相対的に周りの音が大きくなるので精度が落ちる。ただし、雑音の種類が分かっている場合には(車の走行音など)、事前に準備ができるため、そこまでひどく精度が落ちることはない。

3.話し手が分かっていると助かる。
 機械にとって別の人の声は同じことを喋っていても別の音なので、人による声の違いに対応するということを今の音声認識はしている。この対応の戦略は大きく分けて二つあり、一つは音声認識使用者の声に合わせるというもの。もう一つは少々精度を犠牲にして多くの人の声に対応するというもの。もし、話し手があらかじめ分かっていたり(ニュース読み上げ時のニュースキャスターの声など)、事前にある程度の時間をかけて機械に声を憶えさせたりすることができれば、精度が上がる。

4.語彙が限られていると助かる。
 今の音声認識は「ひらがな→単語」ということをしておらず、最初から単語単位で認識している(10年以上前からそうしている)。理解しがたいと思うが、とにかく単語単位の認識である。逆に言えば、基本的には限られた数の単語しか正確に認識することはできない(いろいろと例外はある話だが)。認識対象の単語の数が少なければ少ないほど認識精度は上がる。つまり、話題が限られているときの方が精度が上がる。

5.構文が限られていると助かる。
 「4」の続き。その単語は基本的に自由な順番で喋って問題ないが、日常会話のようなくだけた語順よりは、ニュースのようなきちっとした語順の方が精度が上がる。これは、単語と単語のつながりを機械が考慮しているため。

6.誤りを許容することが重要。
 音声認識は人間よりも聞き誤りが多い。どうしても誤りが生じるので、誤りが生じて困るタスクには適さない。誤りが許容できるタスクや、誤りをあとから人間が逐一修正できるタスクに使うのが適切である。

 以上、6点書いた。これを読むと結局どうにも使えないような気分になるが、意外と需要があったりする。肝はやはり最初に書いた「大量データ」である。どういうときに表計算ソフト(エクセルなど)を使い、どういうときに手計算をするかということを考えると、使い道が分かる。