日経エレクトロニクス2014年5月26日号のpp.88-95「実用化進む音声認識、システムの構成要素を概観」を分割転載した後編です。中編はこちら

本連載では、実用化が急速に進んでいる音声認識技術の基礎から課題、最新動向を、実装・開発例を交えて解説していく。今回は、音声認識を利用した対話システムの構成を紹介する。

対話システムには音声理解も必要

 今回は、音声認識を利用した対話システムの構成を紹介する。音声対話システムは、音声を理解して適切に応答するシステムである。学術的には音声認識は音声を文字にする部分までで、言語的な解析や意図の理解は音声理解の領域である。音声対話システムでは、例えばユーザーが「東京から京都まで」と言った時に、出発地が東京で目的地は京都であると理解し、適切に応答することが求められる。

 音声対話システムの一般的な構成を図6に示した。まず音声を文字にする「音声認識」部があり、用途に応じて意味や概念などを理解する「言語理解」部がある。例えば天気を案内するシステムでは、「XXの天気」と言われたらXXを特定できなければならない。ただし、それ以外の言葉は無視してもいい。「XXは晴れてる?」「XXには雨が降るの?」などと言われた場合も、XXの天気を答えられればいいわけである。「応答文生成」部が「今日と明日は晴れます」といった応答を生成し、「音声合成」部が音声に変換して返す。

図6 音声対話システムの構成
音声対話システムでは、音声認識で音声を文字にした後、話者の意図を理解したり、応答文を生成したりといった処理が必要になる。
[画像のクリックで拡大表示]

対話システムの複雑さを決める要因

 音声対話システムは、ユーザーが持つ何らかの目的のためのサービスを提供するシステムである。その用途は多種多様で、例えばバス運行情報案内システム(「京都駅から京大正門前まで」)、ホテル検索システム(「京都市内で温泉のある宿を教えて」)、レストラン検索システム(「京都駅前にある手ごろな焼肉屋を探して」)、マニュアル検索システム(「ワープロで目次を作成する方法を教えて」)などが挙げられる。

 これらの中では、最初に挙げたバス運行情報案内システムが最も簡単に実現でき、後の例になるほどシステムは複雑になる。理由の一つは想定される発話パターンの複雑さにある。バスの案内ならば、出発地と目的地がわかれば事足りるし、たいていのユーザーはこれらを発話する。もっと正確には、目的地だけで十分なことが多い。実際、駅で切符を買うときに出発地は不要であり、スマートフォンを使っていればGPSで現在地が分かる。

 一方でレストランを検索するシステムでは「京都駅前にある中華料理の店は?」といった質問を想定できても、実際にこのように言う人は多くはないだろう。現実には「おいしいものが食べたい」「手ごろなところに行きたい」「今日は暑いからビールを飲みたい」といった具合に想定外の発話がいくらでも出てくる。ユーザーの発言をあらかじめ網羅的には想定できず、このことが対話システム構築の難易度を高めている。

 両者の差は、ユーザーの発話をうまく構造化できるかどうかにある。バス運行情報システムでは、ユーザーの発話パターンを有限状態文法(FSA:finite state automaton)で記述できるが、レストランの検索の場合は難しい。この違いは、音声認識の言語モデルの作り方に影響する。

この先は有料会員の登録が必要です。今なら有料会員(月額プラン)は12月末まで無料!

日経 xTECHには有料記事(有料会員向けまたは定期購読者向け)、無料記事(登録会員向け)、フリー記事(誰でも閲覧可能)があります。有料記事でも、登録会員向け配信期間は登録会員への登録が必要な場合があります。有料会員と登録会員に関するFAQはこちら