本文へジャンプ

音声認識について

音声認識のチャレンジ

 音声認識とは、人間の音声をコンピュータで自動的に認識することです。一般的には、入力された音声をテキストとして出力することを音声認識といいます。
 私たち人間は、普段の会話の中で他人の音声を認識して意味を理解していて、それが難しいことであるとは思っていません。そこで、コンピュータにとっても音声認識は簡単なのではないかと思いがちです。しかし、音声認識は高度な技術なのです。
 例えば、単純に、入力された音声をカナ(発音記号)にして、「カナ漢字変換」の技術でテキストにすればよいと思うかもしれません。しかし、このようにしても実用的な音声認識はできません。まず、音声を発音記号にする部分は、人間でも難しいことなのです。初めて話をする人から電話を受けたとき、先方が「天野」さんと名乗っても「浜野」さんに聞き違えてしまうことは起こりえることです。「ア」と「ハ」は音が似ているからです。また、株価をラジオで言うときには、「27円」は「フタジュウナナエン」と言い、決して「ニジュウシチエン」とは言いません。「シジュウイチエン(41円)」等に聞き違えられることを避けるためです。このように、発音記号が正確には得られない可能性がありますので、カナ漢字変換の技術を使っても困難があります。例えば「音声認識」と発声したものが、「ホンセイミンシキ」という発音記号になってしまったときに、「ホ」を「オ」に修正して、「ミ」を「ニ」に修正して、結果として「音声認識」というテキストを得ることは難しいのです。
 音声認識は、このような高度なことを実現しています。

音声認識の基本的な仕組み

 音声認識は、上記の高度なことを、以下の仕組みで実現しています。この仕組みは、人間が普段の会話の中で言語を理解する仕組みと似ています。下図に示すように、(1)音響分析、(2)認識デコーダ、(3)音響モデル、(4)辞書、(5)言語モデル(またはルールグラマ)の部品を使います。
 音響分析は、入力された音声を分析して「特徴量」と呼ばれるコンパクトでかつ音声認識に役立つ情報に変換します。ここでは例えば「フーリエ解析」と呼ばれる数学的・信号処理の技術を使っています。人間の場合も耳に入ってきた入力(鼓膜の振動)を電気信号に変えて大脳に送っていますが、その際に入力すべてがそのままで大脳に送られるわけではありません。神経系により選択された信号のみが送られます。人間が大脳に送っていない信号は言語の理解に使われていないように、音声認識でも必要な情報だけを特徴量として抽出しています。このように、入力音声を有用な情報に変換するのが音響分析です。
 認識デコーダは、特徴量に基づいてテキストを出力する音声認識の中心部分です。ここで、上記の高度なことを実現しています。その実現の仕組みは、「音響の情報と言語の情報を総合的に判断する」ものです。人間は、上の「天野」さんと「浜野」さんの例で、2回目以降の会話では、聞き違えません。それどころか、もしも「天野」さんだと知っていたら、たとえわざと間違えて「ハマノ」と名乗っても「天野」さんと正しく理解してしまいます。ここで「天野さんだと知っていること」が、言語の情報に当たります。

AMIボイスエンジン

 音響の情報と言語の情報の総合的な判断は、確率統計的な手法によります。特徴量の音響と発音記号との確率の対応が「音響モデル」としてデータ化されています。上の例では、音響分析の結果の特徴量に対して、「アマノ」「ハマノ」「アナノ」「ハナノ」「アマモ」...といった発音記号の並びが、それぞれ確率付で得られます。「辞書」は、認識対象の単語をデータ化したものです。この例では、例えば「アマノ」「ハマノ」は辞書にあるから認識結果になりえるが、「アマモ」は辞書にないから認識結果にならない、ということがわかります。「言語モデル(またはルールグラマ)」は辞書にある単語についての確率をデータ化したものです。上の「わざとハマノと間違えて名乗った」例では、音響的には「ハマノ」の確率は70%、「アマノ」の確率は20%、...というような結果となり、言語的には、「アマノ」の確率は95%、「ハマノ」の確率は1%...というような結果となり、音響と言語とを総合的に確率計算すると「アマノ」の確率がもっとも高く、「天野」が認識結果になるというような処理です。

言語モデルとルールグラマについて

 言語の情報の確率は、アプリケーション(音声認識の利用場面)によって変わってきます。例えば、音響的には同じ「ナイカク」である単語「内閣」と「内角」を考えると、言語的には、政治についての会話では「内閣」の確率が高く、野球についての会話では「内角」の確率が高くなります。では、このようにアプリケーションに依存する言語の情報の確率はどのようにデータ化されるのでしょうか。データの形式としては、「言語モデル」と「ルールグラマ」があります。
 「ルールグラマ」は、音声認識する言い方が限られていて言い方すべてを網羅的にデータ化するものです。例えば「航空券の予約のために出発する空港と到着する空港を音声認識する」アプリケーションを考えます。「(空港名)から(空港名)まで」という言い方で音声認識するとします。この場合に、
(音声認識対象)=(空港名)−から−(空港名)−まで
(空港名)=千歳|羽田|...
というようにデータを持っておくと、「千歳から羽田まで」という言い方が、音声認識対象であること、音響的には似ていますが「千歳飴はねだってもだめ」という言葉は認識対象ではない(航空券予約ではこのような音声認識をしない)ことがわかります。ルールグラマでは、「音声認識の対象か否か」が明確にわかりますので、確率を数値化しなくても認識精度が得られます。
 「言語モデル」は、文章をテキスト化する場合のように、音声認識する言い方をあらかじめ網羅的に洗い出すことができない場合に、言い方全体でなくその一部である単語のそれぞれについて出現確率・接続確率をデータ化するものです。文書をテキスト化する等の言語モデルを利用した音声認識を「ディクテーション」と呼んでいます。ディクテーションは音声ワープロのようにテキストデータを得る活用のほかにも、例えば上の航空券予約でもいろいろな言い方に対応して文章を認識してそこから出発・到着の空港名を抽出する等、幅広い活用が考えられます。言語モデルの確率については、例えば「内閣」と「内角」の例で、野球に関するアプリケーションであれば「内角」の確率が高いような各単語の確率のデータを持ちます。しかし、野球についての文章であっても、「内閣総理大臣が始球式を行った」というように「内閣」が使われることもありえます。この場合には、後ろに「総理大臣」があるからここは「内閣」であるということがわかります。このように、前後の単語によって確率が変化するので、前後の単語と関連した確率もデータ化します。直近の隣接した単語との2単語の関連だけでなく、間に単語が挟まった場合の3単語の関連についての確率もデータ化します。例えば「内角のカーブ」という場合には、間に「の」が挟まった「カーブ」によって「内角」であることがわかり、「私は医師です」という場合には、前に「私」「は」とあることによって(「石」や「意思」でなく)「医師」である確率が高いことがわかるからです。(註:「私は石を投げた」のように、前に「私」「は」とあっても後の単語によっては「医師」でない単語を選択すべきこともあります。「を」「投げ」によって「石」の確率が高くなります。この場合に「私」「は」と「を」「投げ」のどちらが「イシ」の部分の単語決定に強く寄与するかを処理する上で、定量的な「確率」のアプローチが有効です)

言語モデル

不特定話者の実現について

 音声認識は、音響の統計(確率情報)と言語の統計を総合的に用います。したがって、音響、言語のどちらか一方に精度の高い統計を用いれば、他方の統計の弱みを補うことができます。このような方法として簡単なものは、「特定話者」と呼ばれるものです。ユーザが事前に自分の声を音声認識エンジンに登録(エンロール)します。一人の特定のユーザ(特定話者)の声だけを対象にするので、「ア」なら「ア」の音の特徴量の確率的変動は、多くのユーザ全体(不特定話者)よりも小さくなります。しかし、使いやすさを考えると、特定話者のアプローチは必ずしも良いものではありません。エンロールの作業はユーザにとって苦痛ですし、アプリケーションによっては特定の一人のユーザだけを対象にできないこともあります。エンロールを必要とせず、不特定のユーザの音声を認識する「不特定話者」こそが、音声認識の活用に必須です。
 不特定話者の実現は、音響分析によって得る特徴量の効果的な選定、認識デコーダの高度なアルゴリズム、多くの話者の音声データの分析による精密な音響モデルの構築によります。すなわち、高度な技術も必要であり、裏付けとなる地道な作業の積み重ねも必要です。 AmiVoiceは、このようにして不特定話者を実現しています。
 音響の方で不特定話者が実現されて、さらに言語の方の統計の精度が高くなれば、音声認識は十分に実用的なものになります。言語の統計は、実際に音声認識対象となる分野の大量のテキスト(「コーパス」と呼びます)を分析して構築する、膨大な作業の積み重ねで得られます。実用的な言語モデルの構築には、何百万字ものコーパスを収集し、分析することが必要です。また、「特定話者」と同様の考え方で「特定分野」のアプローチがあります。「医療」なら「医療」というように、特定の分野のコーパスに基づいて言語モデルを構築することで、精度の高いものとなります。特定分野は、特定話者と異なり、音声認識の活用を阻害しません。使用場面やアプリケーションに応じて音声認識をカスタマイズするものだからです。むしろ、音声認識の活用を広げていくものです。

関連技術

 以上のように、音声認識には高度な技術が使われています。この技術を活用してさらに便利で役に立つことが実現できます。そのような例を紹介します。

DSR(Distributed Speech Recognition)

 モバイル・コンピューティングが普及し、携帯電話をはじめとして多くのモバイル機器が使われています。これらのモバイル機器上のアプリケーションこそ、(キーボードがないので)音声認識の便利さを享受できるものです。しかし、音声認識の処理はCPUパワーを必要とするもので、モバイル機器では十分な機能、精度を持つ実装は困難です。そこで、モバイル機器に「音響分析」のみを実装し、特徴量をサーバーに送信して、音声認識をサーバーで実行することでモバイル機器上の音声認識を実現する方法があり、「DSR」と呼ばれています。電話回線等で音声そのものを送って音声認識を行うものと比較して、DSRには以下の利点があります。(1)特徴量というデジタル化されたデータを送信するので送信過程における音質劣化がなく、高精度の音声認識が実現される。(2)特徴量データは音声データと比べて小さいので、データ送受信による待ち時間が短い。(3)データ送受信パケット利用による通信料の逓減ができる。

音声認証

 不特定話者の実現のために、音響分析によって得る特徴量の効果的な選定を行っています。ここで、「効果的な選定」とは、話者に依存して変動するような特徴量を除去し、話者によらずに安定した特徴量を抽出することです。これを逆にして、話者に依存した特徴量を抽出することもできます。こうすることによって、「話している人は誰か」を推定する技術ができます。指紋と同様に本人であることを確認する方法として、セキュリティ分野などで有効な技術です。