書籍レビュー及び感じた事「音声認識」

はじめに

10〜15年以上前まで研究・開発などで音声認識界隈に関わっていたが、最近ずいぶんとご無沙汰な感じなので復習を兼ねて、音声認識関連の本を読んでみた。 個人的な興味は、随分と長いこと音声認識のコア技術の主役がHMMだったが、最近はディープラーニングに移ってきていること。音声認識に限らずディープラーニングは至るところで猛威を奮っている。この辺りで何かしら知識を得たい(結果的には今回の書籍からはあまり得られなかったが…)。

今回読んだ書籍は以下の2冊

  ・書籍1:フリーソフトでつくる音声認識システム
        → https://www.amazon.co.jp/dp/4627847122
  ・書籍2:音声認識 (機械学習プロフェッショナルシリーズ)
        → https://www.amazon.co.jp/dp/4061529277

書籍1は本屋で見かけパラパラ見て面白そうだったので購入。書籍2は最近講談社から出版されている機械学習の様々な技術に関連する本のシリーズの1つ。

フリーソフトでつくる音声認識システム

本の構成としては、大きく2部構成になっており、前半は音声認識に限らず一般的なパターン認識についての説明が行われる。後半では音声認識にフォーカスし、単語音声認識、連続音声認識の説明がされている。

前半部分の説明は、機械学習の全般的な解説書を読んだことがあれば知っていることが多いと思う。例えば、データの標準化、最急降下法、SVM、カーネル法、パーセプトロン、ニューラルネットワークなどの説明が行われる。 ただし一部では音声特有の話題にも触れられている。例えば、声帯・声道による発声の仕組み、フォルマント、基本周波数、MFCCなど、音声認識用のモデルを作成するに当たって重要な基礎知識についての記述があり、後半に向けて充分な知識が得られる構成になっている。

本の後半部分では、音声認識をするための音響モデルの作成方法から始まり、HMMの説明に移っていく。但し、この本でのHMMの説明は簡潔な気がするため、HMMを全く知らない人は他の情報も一緒に参照した方が良さそうである。

さて、この後からがこの本の本題となる。HTKを使った単語音声認識やJuliusを使った連続音声認識の例がコマンドレベルで記載されている。10〜15年以上前は、これらのツールに関して今ほど多くの情報が無く、オリジナルのマニュアルくらいしか文字の情報がなく苦労することも多かった。当時このような本があれば凄く助かっただろうなと思う(今はインターネットでも多くの情報が得られるようになっているが…)。

音声認識 (機械学習プロフェッショナルシリーズ)

一言でいうと音声認識の入門用教科書のような作りになっている。私も学生の頃にはこの本の内容に非常に良く似た本をベースに色々な音声認識関連の本を読んだ記憶が甦った。

構成は、音声とは何かという説明から始まり、音声認識について過去の歴史(DPマッチングなど)を含め説明されている。そして、HMM、言語モデル、大語彙音声認識、ディープラーニングと説明が移っていく。但し、ディープラーニングについては、数ページ程度の説明に留まっており、最新の研究を知るには不十分と感じた。

一方、HMMの説明は必要充分と感じた。昔私が参照していた本に比べれば充実している気がする。少なくとも当時においては、音声認識の理解度がHMMの理解度に大きく依存するので、HMMについて理解することが重要だった(最近ではディープラーニングの方が重要なのだろうか…?)。

本の比較

書籍1は、(実際に私は動かしてはいないが)手を動かしながら覚えられるような構成になっており、音声認識システムを実際に構築して動くものを目のあたりにすることができるのは良い。本を見ながら頭の中で悩んでいるよりも実際に手を動かして実験することで分かることも多い。音声認識システムをまずは作ってみたいという人は書籍1で音声認識の世界に触れてみるのが良いだろう。

音声認識についてしっかりと理論を理解したい人には書籍1だけではなく、書籍2も一緒に購入した方が良い。書籍2には理論的な説明が多く掲載されており自分で音響モデルをカスタマイズして認識率の向上を目指すのであれば、書籍2の知識が不可欠となる。但し、書籍2だけでは実際のシステムを構築するのは難しいと思うので、動くものまで作りたいのであれば書籍1も参照することをお勧めする。

おわりに

音声認識の難しさは、基本的に環境音(ノイズ)が必ず入っている状態で認識しなければならず、更に人によって声の高さや発声のスピードが違う。もっといえば、同じ人が同じ単語を発生しても発声毎に同じにはならないし、意図的にゆっくり話したり低い声で話すこともある。このような様々な条件下であってもコンスタントに高い認識率が求められる。

また音声認識の基本は予め設定された言葉(辞書、待受語、など様々な呼ばれ方があるが)を認識することである。これはユーザーが一生懸命発声したとしても、その単語を待ち受けていなければ、ユーザーが所望する単語は一切認識されないことを意味する。

仮に認識率が100%の音声認識エンジンを搭載していたとしても、待ち受けていない単語をユーザーが発声している場合には、そのユーザーにとっては音声認識が使いものにならないと感じる要因となってしまう。このため音声認識を製品に組込む側としては、如何にユーザーに音声認識で希望する操作が完了できるようになるかを工夫することが重要となってくる。最近のSiriやAmaconEchoなどのスマートスピーカーを見ていると、音声認識のUI/UXが上手だなと思う。

少し脱線してしまったが、元々私が欲していた音声認識へのディープラーニングの適用の部分の知識は、これら2つの本からは多くの情報が得られずに残念だった。しかしながら既に忘れかけていた知識の復習も兼ねて良い刺激を受けることができた。昨今の機械学習ブームの影響もあり分かりやすい書籍も増えているのは嬉しい限りだ。Apple、Google、Amazonなどを超える国産の音声認識システムが出て来ることを期待したい。 


この記事が気に入ったらサポートをしてみませんか?