音声認識

音声認識とは

コンピュータに人間の意志を伝える手法は、元来キーボードなどの入力装置でコンピュータが理解できる形で入力された文字(プログラムなど)の通りに命令を実行するといった流れが普通でした。

様々な入力方法が考えられる中、話す言葉もこの入力の一つとして利用する研究がなされてきました。話し言葉を文字列に変換する機能は「音声入力」といい、さらに音声でアプリケーションを操作することを「音声操作」と言います。また話している人を特定する機能を「話者認識」といい、それぞれを大きくまとめて「音声認識」といいます。


音声認識の特徴と手法

音声の特徴は大きく2つに分けて扱われることが多く、それぞれ音響的な特徴と、言語的な特徴といいます。

  • 音響的な特徴

認識対象の音素(音の波形の一部を、一定の特徴がみられる部分で切り取ったもの)がそれぞれどのような周波数特性を持っているかを表したもので、音響モデルと呼ばれます。

  • 言語的な特徴

音素の並び方に関する制約を表したもので、言語モデルと呼ばれます。

 

音声認識では、統計的手法が良く用いられています。音響モデルにしても、言語モデルにしても、様々な人の話す音声データを大量に蓄積し、学習データとして音声の特徴を蓄積し、認識対象となる入力音声と比較しながら、最も近い認識結果を出力するということになります。

初期の音声認識手法として、動的時間伸縮法(Dynamic time warping、DTW)というものがありますが、これは人間の歩行のパターンは、素早く歩いても、ゆっくり歩いても、さらには歩行の画像を早送りしてもスロー再生しても一定のパターンが存在するというものです。つまり、発声速度がどうであっても一定のパターンを検出することが出来ます。ただし、比較のための標準パターンが必要であり、認識できる語彙は限定されてくるため使われなくなりました。

変わって、隠れマルコフモデルが注目され、音声信号を、断片的あるいは短時間の定常信号と見て捉えるものです。これは、10ミリ秒程度の短時間でみた場合、音声信号は近似的に定常過程と見なすことが出来るため、音声はこの定常過程の連鎖とみることが出来るということを利用したものです。
音声認識システムには、これ以外にも様々な技術を使用されており、語彙の多いシステムでは、音素について文脈依存性を考慮したり、話者間の違いや録音状況の違いを正規化するために、ケプストラムの正規化が行われたりします。他にも声道長正規化 (VTLN)や、最尤線形回帰(MLLR)といった手法があります。

音声認識の精度を向上させるためには、非常に多くの音声データが必要になってきます。初期の段階ではこのデータはそれぞれの研究者が自力で収集していましたが、すぐに限界が見えてきます。そして、このデータをたくさんの研究者で共有する仕組みが出来てきました。こうすることで、より多くの音声データでの研究が進んできましたが、それでもやはり自力で収集というのは限界があります。

そこで最近では、この「自力で収集する」という流れから、「勝手に収集される」という流れに変わってきました。音声認識のシステムには、高速な処理能力とメモリを必要とします。さすがにこれを持ち歩くのは無理がありますが、現在の携帯電話ネットワークは非常に高速な通信が可能となり、Siriのようなクラウドベースの音声認識が用いられることが多くなりました、クラウドベースにすることで、利用側はいつでもどこでもコンピュータのメモリや処理能力を気にせず利用でき、提供側も同時に何万人もの発声データを蓄積できるという面もあります。

また、会議の議事録と録音データの蓄積などにより、より人間の話す言葉に近い学習が可能となりました。話す途中の「あ~」とか「え~」などといったフィラーの部分が、どのタイミングで多く使われるかなどといった統計にも役立っています。
音声認識の認識率は年々向上していますが、やはりここでもニューラルネットワークが関係しており、DNNを用いた手法が利用されるようになって10か月程度で12%も改善されるなどといった事例もあります。今後もさらなる精度向上が期待できそうです。