以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
以下に示す項目順序に従って本開示を説明する。
1.第1の実施形態
1−1.第1の実施形態に係る情報処理の一例
1−2.第1の実施形態に係る応答生成処理の概要
1−3.第1の実施形態に係る応答生成システムの構成
1−4.第1の実施形態に係る情報処理の手順
1−5.第1の実施形態に係る変形例
2.第2の実施形態
2−1.第2の実施形態に係る情報処理の一例
2−2.第2の実施形態に係る変形例
3.その他の実施形態
4.本開示に係る応答生成装置の効果
5.ハードウェア構成
(1.第1の実施形態)
[1−1.第1の実施形態に係る情報処理の一例]
図1を用いて、本開示の第1の実施形態に係る情報処理の一例を説明する。図1は、本開示の第1の実施形態に係る情報処理の一例を示す図(1)である。本開示の第1の実施形態に係る情報処理は、図1に示す応答生成装置10によって実行される。
応答生成装置10は、本開示に係る応答生成装置の一例である。応答生成装置10は、いわゆるIoT(Internet of Things)機器であり、クラウドサーバ等の外部機器と連携して、種々の情報処理を行う。例えば、応答生成装置10は、ユーザとの対話を行う機器であり、音声認識や応答等の種々の情報処理を行う。応答生成装置10が実行する音声認識及び音声による応答処理等は、エージェント(Agent)機能と称される場合がある。また、応答生成装置10は、エージェント機器と称される場合がある。
第1の実施形態では、応答生成装置10が、いわゆるスマートスピーカー(smart speaker)である例を示す。なお、応答生成装置10は、音声出力を行うスピーカー部のみならず、映像等を出力する表示部(液晶ディスプレイ等)を備えてもよい。また、応答生成装置10は、スマートフォンやタブレット端末等であってもよい。この場合、スマートフォンやタブレット端末は、本開示の応答生成処理を実現するためのプログラム(アプリケーション)を実行することにより、本開示に係る応答生成装置10として機能する。
また、応答生成装置10は、スマートフォンやタブレット端末以外にも、時計型端末や眼鏡型端末などのウェアラブルデバイス(wearable device)であってもよい。また、応答生成装置10は、情報処理機能を有する種々のスマート機器により実現されてもよい。例えば、応答生成装置10は、テレビやエアコン、冷蔵庫等のスマート家電や、自動車などのスマートビークル(Smart vehicle)や、ドローン(drone)、家庭用ロボット等であってもよい。
図1の例では、応答生成装置10は、応答生成装置10を利用するユーザが居住する自宅に設置されるものとする。第1の実施形態において、応答生成装置10は、集音した音声やユーザの行動等、応答を生成するための契機となる情報(以下、「入力情報」と称する)に対する応答処理を実行する。例えば、応答生成装置10は、ユーザが発した質問を認識し、質問に対する回答を音声出力したり、質問に関する情報を画面に表示したりする。なお、応答生成装置10が実行する音声認識処理や出力処理等については、種々の既知の技術が利用されてもよい。
ところで、エージェント機器が出力する応答は、人間同士の会話等と比較して冗長となる傾向がある。例えば、エージェント機器が出力する応答には、ユーザが質問した内容や、ユーザの周囲の状況等、ユーザにとって自明な内容を含む場合がある。この場合、ユーザは、応答に対して聞く意識が低くなり、対話を続ける意識が低下するおそれがある。一方で、ユーザの置かれた状況を加味せずに、エージェント機器が応答を省略したり、指示語を使用して応答を生成したりすると、ユーザが発話内容を一意に理解できなくなるおそれがある。
すなわち、エージェント機器が実行する対話処理には、冗長な内容とならず、かつ、ユーザに理解しやすい内容の応答を柔軟に生成するという課題が存在する。
そこで、本開示に係る応答生成装置10は、対話の文脈やユーザの置かれた状況等の情報(以下、「コンテキスト情報」と称する)を取得し、取得したコンテキスト情報を用いて応答を生成することで、上記の課題を解決する。例えば、応答生成装置10は、音声等の入力情報への回答として生成した仮応答のうち、コンテキスト情報に基づきユーザにとって自明と推定される要素(語句等)を削除したうえで、実際に出力する応答を生成する。あるいは、応答生成装置10は、仮応答に含まれる要素であって、ユーザにとって自明と推定される要素を抽象度の高い情報(指示代名詞等)に置き換えて、実際に出力する応答を生成する。さらに、応答生成装置10は、コンテキスト情報に基づきユーザにとって自明でないと推定される要素を仮応答に付与して、実際に出力する応答を生成してもよい。
このように、応答生成装置10は、コンテキスト情報に基づいて、入力情報に対応して生成された仮応答から情報を削除したり、置換したり、付与したりする処理を行い、ユーザへの応答を生成する。これにより、応答生成装置10は、ユーザのコンテキストに合わせた柔軟な応答を生成することができるため、対話システムのようなエージェント機能を利用するユーザのユーザビリティを向上させることができる。
以下、図1を用いて、本開示に係る情報処理(応答生成処理)の一例を流れに沿って説明する。
図1に示すように、ユーザは、「今日の横浜の天気おしえて」と発話することにより、「今日の横浜の天気おしえて」といった内容を含む音声A01を応答生成装置10に入力する。
応答生成装置10は、音声A01を入力情報として、応答生成処理を開始する。具体的には、応答生成装置10は、音声A01を取得し、自動音声認識(ASR(Automatic Speech Recognition))処理や自然言語理解(NLU(Natural Language Understanding))処理を経て、音声A01に対応する応答を生成する。例えば、応答生成装置10は、音声A01にユーザからの質問の意図が含まれている場合、質問の意図を入力情報と認識し、質問の意図に対する回答を応答として生成する。
図1に示す情報C01は、音声A01を解析することにより得られた質問の意図(intent)と、音声A01に含まれるコンテキスト情報とを示す。具体的には、情報C01は、「天気をチェックしたい」というユーザの意図を示す「CheckWhether」といったタグと、発話に含まれる各用語と属性(entity)との組合せであって、コンテキスト情報である「今日(属性:date)」と、「横浜(属性:place)」とを含む。
なお、応答生成装置10は、音声A01とともに、現在のユーザの状況を示すコンテキスト情報を取得してもよい。詳細は後述するが、応答生成装置10は、カメラで捉えられたユーザの移動速度や、ユーザが所在する位置や、ユーザの発話速度等を検知すること等によりユーザの状況を推定し、コンテキスト情報として取得する。すなわち、コンテキスト情報には、ユーザが置かれた状況や、推定されるユーザの感情等が含まれてもよい。例えば、応答生成装置10は、ユーザが通常よりも急いでいる状況にあることを示すコンテキスト情報が取得された場合、より手短な応答を生成する等の調整を行うことができる。図1の例では、ユーザが、特に回答を急いでいたり、外に出かけようとしていたりといった特定の行動をとっていないため、ユーザの状況を示すコンテキスト情報は、「通常の対話処理」であるものとする。
応答生成装置10は、入力情報を含む情報C01と、ユーザの状況を示すコンテキスト情報とを取得し、取得した情報に基づいて、ユーザに対する応答を生成する。
まず、応答生成装置10は、入力情報に基づいて、実際に出力される応答の元となる仮応答を生成する。なお、以下では、入力情報に基づいて応答生成装置10が生成した仮応答を「発話ソース(source)情報」と称する。応答生成装置10は、生成した発話ソース情報を基礎として、実際にユーザに対して出力される応答を生成する。
上記のように、応答生成装置10は、ASR及びNLUの処理を経て、音声A01の意図を、「天気をチェックしたい(intent:CheckWeather)」である、と判定する。この場合、応答生成装置10は、音声A01に対する仮応答として、発話ソース情報E01を生成する。
図1に示すように、発話ソース情報E01は、「今日の」という発話データと、「今日の」の属性である「[date]」とが対応付けられた要素を含む。また、発話ソース情報E01は、「横浜は」と属性[place]と、「曇りのち雨です」と属性[weather]とがそれぞれ対応付けられた要素を含む。
発話ソース情報E01を生成した応答生成装置10は、情報C01に含まれるコンテキスト情報に基づいて、発話ソース情報E01から削除する情報を決定する。例えば、応答生成装置10は、発話ソース情報E01のうち、ユーザにとって自明な情報を削除する。具体的には、応答生成装置10は、発話ソース情報E01から、ユーザが発話した音声A01に含まれている属性、すなわち、コンテキスト情報と重複する属性の情報を削除する。
図1の例では、応答生成装置10は、発話ソース情報E01と情報C01とを比較し、[date]属性を有する要素と、[place]属性を有する要素が、発話ソース情報E01と情報C01で重複していると判定する。この場合、応答生成装置10は、発話ソース情報E01から、[date]属性を有する要素(「今日の」)と、[place]属性を有する要素(「横浜は」)とを削除する。
このようにして、応答生成装置10は、発話ソース情報E01から、実際にユーザに出力される応答である応答E02を生成する。図1に示すように、応答E02は、「曇りのち雨です」のように、[weather]属性のみを有する音声となる。
これにより、応答生成装置10は、「今日の横浜は曇りのち雨です」のように、ユーザにとって自明な情報を含む冗長な応答を行わず、「曇りのち雨です」のように、ユーザが知りたい情報のみを端的に出力することができる。
次に、図2を用いて、応答生成装置10が、予めユーザから登録されたコンテキスト情報を用いて応答を生成する一例について説明する。図2は、本開示の第1の実施形態に係る情報処理の一例を示す図(2)である。
図2に示す例では、応答生成装置10は、ユーザが外出しようとする行動が検知された場合に、外出先の天気情報を応答するよう設定されているものとする。この場合、応答生成装置10は、カメラ等を用いてユーザの行動を観測し、自宅内から玄関にユーザが移動したこと等を検知した場合に、天気に関する情報を自律的に出力する。
例えば、応答生成装置10は、検知されたユーザの状況に基づいて、情報C03を取得する。情報C03は、「ユーザがでかけようとしている」という行動予測を含む。図2の例では、かかる行動予測が、応答生成装置10が応答を生成する契機となる入力情報である。
また、情報C03は、ユーザが出かけようとする状況に基づいて、その状況を示すコンテキスト情報を含む。情報C03が含むコンテキスト情報は、例えば、出かけようとする日付が今日であることを示す「今日(属性:date)」や、ユーザの行動の内容が「お出かけ(属性:situation)」である。
また、図2の例では、ユーザは、スケジュール管理サービス等の特定のサービスにスケジュールを登録しているものとする。スケジュールは、特定のサービスと応答生成装置10との間で共有される。具体的には、ユーザは、情報C04に示すように、「2018年9月17日18時」から「横浜」で「飲み会」に参加する、といった内容のスケジュールを登録する。この場合、応答生成装置10は、「横浜(属性:place)」と、「18時(夕方)(属性:time)」という情報を、当該ユーザのコンテキスト情報として取得する。
応答生成装置10は、取得した情報C03及び情報C04に基づいて、発話ソース情報E03を生成する。具体的には、応答生成装置10は、「ユーザが出かける」ことを検知した場合に、天気をチェックして出力するよう設定されていることから、ユーザの出かけ先に対応する天気情報を取得する。例えば、応答生成装置10は、天気情報を提供する外部サービスに接続し、天気予報等の気象予測情報や、気象予測に対応する提案(雨ならば傘を持った方がよいこと等)を取得する。
この場合、応答生成装置10は、情報C04を参照し、ユーザの行動に適合する場所(属性:place)や時間(属性:time)を特定し、特定した地域や時間の天気情報を取得する。
また、応答生成装置10は、ユーザが出かけようとしている際に取得された情報C03を参照し、天気情報の日付や、天気サービスから提案された行動をどのようなタイミングで実行することが適切か、といった情報を取得する。
以上の情報に基づいて、応答生成装置10は、発話ソース情報E03を生成する。発話ソース情報E03は、「今日の」と属性[date]と、「横浜は」と属性[place]と、「夕方から」と属性[time]と、「雨なので」と属性[weather]と、「お出かけ時には」と属性[situation]と、「傘がいります」と属性[suggestion]とがそれぞれ対応付けられた要素を含む。
続けて、発話ソース情報E03を生成した応答生成装置10は、情報C03及び情報C04に含まれるコンテキスト情報に基づいて、発話ソース情報E03から削除する情報を決定する。例えば、応答生成装置10は、発話ソース情報E03のうち、ユーザにとって自明な情報を削除する。具体的には、応答生成装置10は、発話ソース情報E03から、情報C03及び情報C04に含まれるコンテキスト情報に含まれている属性、すなわち、コンテキスト情報と重複する属性の情報を削除する。
図2の例では、応答生成装置10は、発話ソース情報E03と情報C03とを比較し、[date]属性を有する要素と、[situation]属性を有する要素が、発話ソース情報E03と情報C03で重複していると判定する。この場合、応答生成装置10は、発話ソース情報E03から、[date]属性を有する要素(「今日の」)と、[situation]属性を有する要素(「お出かけ時には」)とを削除する。
また、応答生成装置10は、発話ソース情報E03と情報C04とを比較し、[place]属性を有する要素と、[time]属性を有する要素が、発話ソース情報E03と情報C04で重複していると判定する。この場合、応答生成装置10は、発話ソース情報E03から、[place]属性を有する要素(「横浜は」)と、[time]属性を有する要素(「夕方から」)とを削除する。
このようにして、応答生成装置10は、発話ソース情報E03から、実際にユーザに出力される応答である応答E04を生成する。図2に示すように、応答E04は、「雨なので傘がいります」のように、[weather]属性及び[suggestion]属性のみを有する音声となる。
これにより、応答生成装置10は、ユーザの状況や、ユーザがスケジュール登録している情報等、ユーザにとって自明な情報を省いた、短くかつ的確な応答E04を生成することができる。
このように、第1の実施形態に係る応答生成装置10は、ユーザに対する応答を生成する契機となる入力情報、及び、当該ユーザの状況を示す情報であるコンテキスト情報を取得する。そして、応答生成装置10は、ユーザから取得したコンテキスト情報に基づいて、入力情報に対応する応答を生成する。
すなわち、応答生成装置10は、コンテキスト情報から推測される自明な情報を削除することにより、その場の状況に応じて適切な応答を簡潔に生成することができる。これにより、ユーザは、エージェントの発話に対して意識を低下させることなく、必要十分な情報のみを聞くことができるため、エージェントの応答の主旨を容易に理解することができる。特に、図2の例で示したような、エージェント側から自律的に発話が開始される場合、ユーザのアテンション(意識)が低い状態では、ユーザのアテンションの獲得と、情報の主旨伝達の双方において、簡潔な発話が有効となる。応答生成装置10によれば、ユーザが欲すると推定される情報のみを的確に取捨選択して応答を生成できるため、対話等のエージェント機能を、より効果的にユーザに提供することができる。
また、詳細は後述するが、応答生成装置10は、発話ソース情報から自明な情報を削除して応答を生成するのみならず、特定の情報を置換したり、ユーザにとって自明でない情報を付与したりして、応答を生成することもできる。このように、応答生成装置10は、コンテキスト情報を利用することによって、ユーザの状況に合わせて、柔軟に応答を生成することができる。
[1−2.第1の実施形態に係る応答生成処理の概要]
次に、図3を用いて、本開示の第1の実施形態に係る応答生成処理の概要を説明する。図3は、本開示の第1の実施形態に係る応答生成処理を説明するための図である。
応答生成装置10は、ユーザが発話した場合、音声入力デバイスを介して、音声を取得する(ステップS01)。また、応答生成装置10は、カメラ等の入力デバイスを介して、ユーザの行動等を画像や動画として取得してもよい(ステップS02)。また、応答生成装置10は、触覚デバイスや加速度センサやジャイロセンサ等のセンサデバイスを介して、ユーザに触れられたことや、応答生成装置10に動きを与えられたこと等の情報を取得してもよい(ステップS03)。
応答生成装置10は、音声を取得した場合、音声認識処理を実行する(ステップS04)。例えば、応答生成装置10は、取得した音声をテキスト化する。さらに、応答生成装置10は、テキスト化された音声に対して発話意味理解処理(NLU)を行い、発話意図(intent)、発話意図の対象となる属性情報(Entity)を推定する(ステップS05)。続けて、応答生成装置10は、推定した情報を対話制御処理に送る(ステップS06)。
なお、応答生成装置10は、画像を取得した場合、画像認識処理を行い(ステップS07)、画像認識により得られた情報を対話制御処理に送る(ステップS08)。また、応答生成装置10は、音声や画像以外のセンシング情報を取得した場合、センサ認識処理を行い(ステップS09)、センサ認識により得られた情報を対話制御処理に送る(ステップS10)。
応答生成装置10は、対話制御処理として、NLUから得られた発話意図と、ユーザ状況を示すコンテキスト情報に基づいて、ユーザへの応答の元となる情報を、各種アプリケーションや、外部サーバが提供するサービスから取得する(ステップS11)。応答生成装置10は、取得した情報に基づいて応答生成処理を開始する(ステップS12)。
さらに、応答生成装置10は、ユーザが登録したスケジュール等の共有知識や、ユーザプロファイル(ユーザの属性情報等)を保持した記憶部にアクセスし(ステップS13)、応答生成処理に利用する情報を取得する(ステップS14)。
また、応答生成装置10は、音声や画像、センシング情報等を取得した際に得られたコンテキスト情報を取得する(ステップS15、ステップS16、ステップS17)。応答生成装置10は、アプリケーションやサービスから取得した情報、共有知識やユーザプロファイル、及び、コンテキスト情報を用いて、発話ソース情報を生成する。さらに、応答生成装置10は、発話ソース情報からユーザにとって自明な情報を削除する等の処理を行い、実際にユーザに出力される応答を生成する。
応答生成装置10は、生成した応答が音声に係るデータである場合、音声合成処理を行い(ステップS18)、スピーカー等の音声出力デバイスを介して(ステップS19)、ユーザに対して音声を出力する(ステップS20)。
また、応答生成装置10は、生成した応答が画像に係るデータである場合、表示画像処理を行い(ステップS21)、ディスプレイ等の画像出力デバイスを介して(ステップS22)、ユーザに対して画像を出力する(ステップS23)。
なお、図3では、第1の実施形態に係る応答処理の概要を処理ブロック図として示しているが、これは概念的に処理の流れを示すものであり、必ずしも図3で例示した処理を順に行うことを要しない。例えば、応答生成処理は、対話制御に含まれる構成であってもよいし、アプリケーションやサービスにおける内部処理であってもよい。
[1−3.第1の実施形態に係る応答生成システムの構成]
次に、応答生成装置10を含む応答生成システム1の構成について説明する。図4は、本開示の第1の実施形態に係る応答生成システム1の構成例を示す図である。
図4に示すように、応答生成システム1は、応答生成装置10と外部サーバ200とを含む。応答生成装置10及び外部サーバ200は、図4に図示するネットワークN(例えば、インターネット)を介して、有線又は無線により通信可能に接続される。なお、図4での図示は省略するが、応答生成システム1は、複数台の応答生成装置10や外部サーバ200を含んでもよい。
外部サーバ200は、各種サービスを提供するサービスサーバである。例えば、外部サーバ200は、応答生成装置10の要求に従い、天気情報や交通情報等を応答生成装置10に提供する。
応答生成装置10は、本開示に係る応答生成処理を実行する情報処理端末である。図4に示すように、応答生成装置10は、センサ20と、入力部21と、通信部22と、記憶部30と、取得部40と、応答生成部50と、出力部60とを有する。
センサ20は、各種情報を検知する。例えば、センサ20は、ユーザが発話した音声を集音するマイクロフォンや、ユーザの行動を映像として取得するカメラを含む。
また、センサ20は、ユーザが応答生成装置10に触れたことを検知するタッチセンサや、加速度センサやジャイロセンサ等を含んでもよい。また、センサ20は、応答生成装置10の現在位置を検知するセンサを含んでもよい。例えば、センサ20は、GPS(Global Positioning System)衛星から送出される電波を受信し、受信した電波に基づいて応答生成装置10の現在位置を示す位置情報(例えば、緯度及び経度)を検知してもよい。
また、センサ20は、外部装置が発する電波を検知する電波センサや、電磁波を検知する電磁波センサ等を含んでもよい。また、センサ20は、応答生成装置10が置かれた環境を検知してもよい。具体的には、センサ20は、応答生成装置10の周囲の照度を検知する照度センサや、応答生成装置10の周囲の湿度を検知する湿度センサや、応答生成装置10の所在位置における磁場を検知する地磁気センサ等を含んでもよい。
入力部21は、ユーザから各種操作を受け付けるためのデバイスである。例えば、入力部21は、キーボードやマウス、タッチパネル等によって実現される。
通信部22は、例えば、NIC(Network Interface Card)等によって実現される。通信部22は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、外部サーバ200等との間で情報の送受信を行う。
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部30は、ユーザ情報テーブル31と、共有知識テーブル32と、応答規則テーブル33と、付与規則テーブル34とを有する。以下、各データテーブルについて順に説明する。
ユーザ情報テーブル31は、応答生成装置10を利用するユーザに関する情報を記憶する。図5に、第1の実施形態に係るユーザ情報テーブル31の一例を示す。図5は、本開示の第1の実施形態に係るユーザ情報テーブル31の一例を示す図である。図5に示した例では、ユーザ情報テーブル31は、「ユーザID」、「ユーザ属性情報」、「履歴情報」といった項目を有する。
「ユーザID」は、ユーザを識別する識別情報を示す。「ユーザ属性情報」は、応答生成装置10の利用の際にユーザから登録される、ユーザの各種情報を示す。図5に示した例では、ユーザ属性情報の項目を「F01」のように概念的に記載しているが、実際には、ユーザ属性情報には、ユーザの年齢や性別、居住地、家族構成等の属性情報(ユーザプロファイル)が含まれる。また、ユーザ属性情報には、例えば、ユーザに視覚障碍があること等、出力する情報の種別を選択するために要する情報が含まれてもよい。例えば、ユーザ属性情報に視覚障碍があることが登録されている場合、応答生成装置10は、通常であれば画面に表示される応答の内容を、音声に変換して出力してもよい。
「履歴情報」は、ユーザの応答生成装置10の利用履歴を示す。図5に示した例では、履歴情報の項目を「G01」のように概念的に記載しているが、実際には、履歴情報には、ユーザが応答生成装置10に質問した内容や、聞き返しの履歴や、出力された応答の履歴等の各種情報が含まれる。また、履歴情報には、ユーザを音声で識別するための声紋情報や波形情報等が含まれてもよい。
すなわち、図5に示した例では、ユーザIDが「U01」で識別されるユーザは、ユーザ属性情報が「F01」であり、履歴情報が「G01」であることを示している。
次に、共有知識テーブル32について説明する。共有知識テーブル32は、ユーザが利用するアプリケーションや、外部サーバ200から提供されるサービスに登録された情報であって、アプリケーションやサービスと、応答生成装置10とが共有する情報を記憶する。
図6に、第1の実施形態に係る共有知識テーブル32の一例を示す。図6は、本開示の第1の実施形態に係る共有知識テーブル32の一例を示す図である。図6に示した例では、共有知識テーブル32は、「知識ID」、「種別」、「ユーザID」、「内容」といった項目を有する。
「知識ID」は、共有知識を識別する識別情報を示す。「種別」は、共有知識の種別を示す。なお、種別は、ユーザが情報を登録したアプリケーションやサービス名であってもよい。
「ユーザID」は、情報を登録したユーザを識別する識別情報を示す。「内容」は、ユーザがサービス等に登録した共有知識の具体的な内容を示す。
すなわち、図6に示した例では、知識ID「J01」で識別される共有知識は、種別が「スケジュール」であり、共有知識を登録したユーザはユーザID「U01」で識別されるユーザであり、その内容は、「スケジュール登録(イベント:飲み会、場所:横浜、日時:2018/9/17/18:00、・・・)」であることを示している。
次に、応答規則テーブル33について説明する。応答規則テーブル33は、応答生成装置10への入力情報と、入力情報が検知された場合に応答生成装置10が出力する内容とを対応付けて記憶する。
図7に、第1の実施形態に係る応答規則テーブル33の一例を示す。図7は、本開示の第1の実施形態に係る応答規則テーブル33の一例を示す図である。図7に示した例では、応答規則テーブル33は、「入力情報」、「応答」、「接続するサービス」、「内容」といった項目を有する。
「入力情報」は、応答生成装置10が応答を生成する契機となる情報を示す。「応答」は、入力情報を取得した際に応答生成装置10が生成する応答の種別を示す。
例えば、入力情報「検知(朝)」は、朝の時間帯にはじめて応答生成装置10がカメラ等を介してユーザを検知したことを示す。また、応答「あいさつ」は、応答生成装置10があいさつに関する出力を生成することを示す。かかる応答規則によれば、例えばユーザが起床し、その日はじめて応答生成装置10に検知された場合に、応答生成装置10は、ユーザに対して自律的にあいさつを行う。
「接続するサービス」は、応答生成装置10が応答を生成するために接続する外部サービスやアプリケーション等の名称を示す。なお、応答生成装置10が応答を生成するために外部サービスに接続する必要のない場合、「接続するサービス」の項目は、空欄となる。また、図7に示した例では、接続するサービスの項目を「L01」のように概念的に記載しているが、実際には、接続するサービスとは、天気情報を提供するサービスや、交通情報を提供するサービス等の具体的な名称、もしくは接続先(具体的なアドレス等)が記憶される。
「内容」は、応答生成装置10によって生成される応答の具体的な内容を示す。例えば、内容は、あいさつの具体的な発話内容等である。
すなわち、図7に示した例では、入力情報「検知(朝)」が入力された場合、応答生成装置10は、応答として「あいさつ」を行うことが設定されており、その出力内容は「おはようございます。」という文言であることを示している。また、他の例として、入力情報「検知(電源オフ)」が入力された場合、すなわち、応答生成装置10の電源がオフになった場合、応答生成装置10は、応答として「終了通知」を行うことが設定されており、その出力内容は「終了します。」という文言であることを示している。また、他の例として、入力情報「行動予測(外出)」が入力された場合、すなわち、ユーザが外出しようとしていることを応答生成装置10が予測した場合、応答生成装置10は、応答として「気象情報」を行うことが設定されており、サービス「L01」や「L02」等に接続し、「今日の東京の天気は・・・」といったような通知を行うことを示している。また、他の例として、入力情報「受信(通知)」が入力された場合、すなわち、応答生成装置10がメール等を受信した場合、応答生成装置10は、応答として「音声」での通知を行うことが設定されており、サービス「L03」等(メールサーバ等)に接続し、「メールを受信しました。・・・」といったような通知を行うことを示している。
なお、上記のような応答規則は、予め応答生成装置10に設定されていてもよいし、ユーザが任意に設定してもよい。
次に、付与規則テーブル34について説明する。付与規則テーブル34は、発話ソース情報等の仮応答に対して応答生成装置10が情報を付与して応答を生成する場合の、付与に関する規則を記憶する。
図8に、第1の実施形態に係る付与規則テーブル34の一例を示す。図8は、本開示の第1の実施形態に係る付与規則テーブル34の一例を示す図である。図8に示した例では、付与規則テーブル34は、「ユーザID」、「付与するコンテキスト情報の種別」、「属性適合タグ」、「ユーザ状況タグ」、「履歴情報」といった項目を有する。
「ユーザID」は、情報が付与される対象となるユーザの識別情報を示す。「付与するコンテキスト情報の種別」は、発話ソース情報に対して付与されるコンテキスト情報の種別を示す。
「属性適合タグ」は、応答生成装置10が付与するコンテキスト情報を決定する際に利用される情報であって、発話ソース情報に含まれる要素に対応付けられた属性を示す。詳細は後述するが、応答生成装置10は、発話ソース情報のうち、「属性適合タグ」に含まれる属性を有する要素の数に応じて、付与する情報を決定する。
「ユーザ状況タグ」は、応答が生成される対象となるユーザの状況を示す情報である。詳細は後述するが、応答生成装置10は、ユーザに対して応答を生成する状況において、当該ユーザが「ユーザ状況タグ」に含まれる要素に適合する数に応じて、付与する情報を決定する。
「履歴情報」は、コンテキスト情報が付与されようとする状況において、過去にユーザが発話した内容の履歴を示す。具体的には、履歴情報とは、コンテキスト情報が付与された状況において、ユーザが過去に発話した意図(intent)の種別と、その発話が行われた回数を示す。詳細は後述するが、応答生成装置10は、ユーザに対して応答を生成する状況において、当該ユーザが「履歴情報」に含まれる発話を過去に何度行ったかに応じて、付与する情報を決定する。
すなわち、図8に示した例では、ユーザID「U01」で識別されるユーザに対して生成される応答のうち、コンテキスト情報の種別「今日の日付」が付与される判断基準の一つは、例えば、発話ソース情報に属性適合タグ「date」や、「appointment」や、「schedule」がいくつ含まれているか、であることを示している。また、コンテキスト情報の種別「今日の日付」が付与される判断基準の他の一つは、例えば、ユーザID「U01」で識別されるユーザの状況がユーザ状況タグ「祝日」や「記念日」にいくつ該当するか、であることを示している。また、図8に示した例では、コンテキスト情報の種別「今日の日付」が付与された場合の対話において、ユーザID「U01」で識別されるユーザは、「CheckTime」という意図を示す発話を過去に「3回」行ったことを示している。
図4に戻って説明を続ける。取得部40及び応答生成部50は、応答生成装置10が実行する情報処理を実行する処理部である。取得部40及び応答生成部50は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等によって、応答生成装置10内部に記憶されたプログラム(例えば、本開示に係る応答生成プログラム)がRAM(Random Access Memory)等を作業領域として実行されることにより実現される。また、取得部40及び応答生成部50は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
取得部40は、各種情報を取得する処理部である。図4に示すように、取得部40は、検知部41と、登録部42と、受信部43とを含む。
検知部41は、センサ20を介して、各種情報を検知する。例えば、検知部41は、センサ20の一例であるマイクロフォンを介して、ユーザが発話した音声を検知する。また、検知部41は、カメラや加速度センサ、赤外線センサ等を介して、ユーザの顔情報、ユーザの身体の向き、傾き、動きや移動速度等、ユーザの動作に関する各種情報を検知してもよい。すなわち、検知部41は、センサ20を介して、位置情報、加速度、温度、重力、回転(角速度)、照度、地磁気、圧力、近接、湿度、回転ベクトルといった、種々の物理量をコンテキスト情報として検知してもよい。
登録部42は、入力部21を介して、ユーザからの登録を受け付ける。例えば、登録部42は、タッチパネルやキーボードを介して、ユーザプロファイル(属性情報)の登録をユーザから受け付ける。
また、登録部42は、ユーザのスケジュール等の登録を受け付けてもよい。例えば、登録部42は、応答生成装置10に組み込まれたアプリケーション機能を利用して、スケジュール登録をユーザから受け付ける。
受信部43は、各種情報を受信する。例えば、受信部43は、ユーザの属性情報やスケジュール情報が、応答生成装置10ではなく外部サービス等に登録されている場合、外部サーバ200から、ユーザの属性情報やスケジュール等を受信する。
また、受信部43は、通信に関するコンテキスト情報を受信してもよい。例えば、受信部43は、応答生成装置10と各種機器(ネットワーク上のサーバや、自宅内の家電等)との接続状況をコンテキスト情報として受信してもよい。各種機器との接続状況とは、例えば、相互通信が確立しているか否かを示す情報や、通信に利用している通信規格等である。
取得部40は、上記各処理部を制御することにより、各種情報を取得する。例えば、取得部40は、ユーザに対する応答を生成する契機となる入力情報、及び、ユーザの状況を示す情報であるコンテキスト情報を取得する。
例えば、取得部40は、入力情報として、ユーザが発した音声情報を取得する。具体的には、取得部40は、「天気おしえて」などのユーザの発話を取得し、当該発話に含まれる何らかの意図を入力情報として取得する。
あるいは、取得部40は、入力情報として、ユーザの行動を検知した検知情報を取得してもよい。検知情報とは、検知部41がセンサ20を介して検知した情報である。具体的には、検知情報とは、ユーザが応答生成装置10のカメラを見たことを示す情報や、ユーザが自宅の部屋から玄関へ移動したことを示す情報等、応答生成装置10が応答を生成する契機となりうるユーザの行動である。
また、取得部40は、コンテキスト情報を取得する。コンテキスト情報とは、応答生成装置10が応答を生成する際の各種状況を示す情報である。なお、コンテキスト情報には、ユーザが応答生成装置10を見たことを示す行動情報等の「ユーザの状況を示す情報」が含まれるため、コンテキスト情報は、入力情報にもなりうる。
例えば、取得部40は、コンテキスト情報として、ユーザが予め登録したスケジュール情報を取得する。具体的には、取得部40は、ユーザが発話した時刻から所定期間以内(例えば1日以内等)の予定時刻で登録されたスケジュール情報を取得する。例えば、取得部40は、図2で示したような、ユーザが移動しようとする外出先(場所)の情報や、時刻や、目的等が登録された情報C04を取得する。
また、取得部40は、コンテキスト情報として、ユーザの行動から推定される情報であって、ユーザの将来の行動予測を示した情報である行動予測情報を取得してもよい。具体的には、取得部40は、ユーザが自宅の部屋から玄関へ移動したことを示す行動から推定される情報として、「ユーザが外出しようとしている」といった行動予測情報を取得する。例えば、取得部40は、「ユーザが外出しようとしている」といった行動予測情報を取得した場合、当該情報に基づいて、「外出(属性:situation)」といったタグ付けされたコンテキスト情報を取得する。
また、取得部40は、コンテキスト情報として、ユーザによって予め登録されたユーザの属性情報を取得してもよい。例えば、取得部40は、ユーザの性別や年齢、居住地等の情報を取得する。また、取得部40は、属性情報として、ユーザが視覚障碍を有すること等、ユーザの特徴を示す情報を取得してもよい。また、取得部40は、応答生成装置10の利用履歴等に基づいて、ユーザの趣味嗜好等の情報をコンテキスト情報として取得してもよい。
なお、上記で示したコンテキスト情報は一例であり、ユーザや応答生成装置10が置かれた状況を示すあらゆる情報は、コンテキスト情報となりうる。例えば、取得部40は、センサ20を介して取得される、応答生成装置10の位置情報、加速度、温度、重力、回転(角速度)、照度、地磁気、圧力、近接、湿度、回転ベクトルといった、種々の物理量をコンテキスト情報として取得してもよい。また、取得部40は、内蔵する通信機能を利用して、各種装置との接続状況(例えば、通信の確立に関する情報や、利用している通信規格)などを、コンテキスト情報として取得してもよい。
また、コンテキスト情報には、ユーザと他のユーザや、ユーザと応答生成装置10とが交わしている対話に関する情報が含まれてもよい。例えば、コンテキスト情報には、ユーザが交わしている対話の文脈を示す対話文脈情報、対話のドメイン(天気、ニュース、電車運行情報等)、ユーザ発話の意図や属性情報等が含まれてもよい。
また、コンテキスト情報には、対話が行われている際の日時情報が含まれてもよい。具体的には、日時情報とは、日付、時間、曜日、祝日特性(クリスマス等)、時間帯(朝、昼、夜、夜中)等の情報である。
また、コンテキスト情報には、ユーザが所在する位置や状況等の情報が含まれてもよい。具体的には、ユーザが所在する位置を示す情報とは、ユーザが自宅内のリビングにいるか、寝室にいるか、子供部屋にいるかといった、ユーザの所在地を示した情報である。あるいは、ユーザが所在する位置を示す情報には、ユーザの外出先を示す具体的な場所の情報が含まれてもよい。また、ユーザの外出先を示す情報には、ユーザが電車に乗っているか、自動車を運転しているか、あるいは、学校や会社に出かけていること等を示す情報が含まれてもよい。取得部40は、例えば、ユーザが所有するスマートフォン等の携帯端末と相互に通信を行うことにより、これらの情報を取得する。
また、コンテキスト情報には、ユーザの行動から推定される状況や感情に関する情報が含まれてもよい。例えば、取得部40は、ユーザの移動速度が通常よりも早いことを検知した場合、「ユーザが急いでいる」というコンテキスト情報を取得する。
また、取得部40は、ユーザが行っている特定の家事の情報や、視聴しているテレビ番組の内容や、何を食べているかを示す情報や、特定の人物と会話をしていること等、ユーザの状況を示す種々の情報をコンテキスト情報として取得してもよい。
また、取得部40は、自宅内に置かれた家電(IoT機器等)との相互通信により、どの家電がアクティブであるか否か(例えば、電源がオンであるかオフであるか)、どの家電がどのような処理を実行しているか、といった情報を取得してもよい。
また、取得部40は、外部サービスとの相互通信により、ユーザの生活圏における交通状況や気象情報等をコンテキスト情報として取得してもよい。取得部40は、取得した各情報をユーザ情報テーブル31や共有知識テーブル32に格納する。また、取得部40は、ユーザ情報テーブル31や共有知識テーブル32を参照し、処理に要する情報を適宜取得してもよい。
続いて、応答生成部50について説明する。図4に示すように、応答生成部50は、意味理解部51と、対話制御部52と、生成部53と、出力制御部54とを含む。応答生成部50は、上記各処理部を制御することにより、取得部40によって入力情報が取得されたことを契機として、取得部40によって取得されたコンテキスト情報に基づいて、入力情報に対応する応答を生成する。
意味理解部51は、取得部40によって取得された情報の意味理解処理を行う。具体的には、意味理解部51は、取得部40によって音声情報等について、自動音声認識(ASR)処理や自然言語理解(NLU)処理を行う。意味理解部51は、ASRやNLUを経て、取得した音声を形態素に分解したり、各形態素がどのような意図や属性を有する要素であるかを判定したりする。
なお、意味理解部51は、要素に含まれる文字列等からユーザの意図が解析不能であった場合、その旨を生成部53に渡してもよい。例えば、意味理解部51は、解析の結果、ユーザの発話から推定することのできない情報が含まれている場合、その内容を生成部53に渡す。この場合、生成部53は、不明な情報について、ユーザにもう一度正確に発話してもらうことを要求するような応答を生成してもよい。
対話制御部52は、意味理解部51によって解析された要素に基づいて、ユーザとの対話処理を制御する。例えば、対話制御部52は、意味理解部51によって解析された要素や、取得部40によって取得された画像情報や各種センサ情報等から、入力情報となりうる要素を抽出する。そして、対話制御部52は、入力情報に対応した応答を生成するよう、生成部53を制御する。また、対話制御部52は、例えば応答規則テーブル33を参照して入力情報に応じた応答規則に基づいて、外部サーバ200にアクセスし、外部サービスに関する情報を取得したり、外部サーバ200との相互通信を確立する処理を行ったりしてもよい。
生成部53は、対話制御部52から発話生成指示を受信し、指示に対応した応答を生成する。上述のように、生成部53は、入力情報に対応する仮応答を生成し、さらにコンテキスト情報に基づいて、仮応答に含まれる要素を削除したり、置換したり、仮応答に要素を付与したりして、実際にユーザに出力される応答を生成する。なお、生成部53は、入力情報が、いわゆる聞き返しに関するものである場合、既存の応答に基づいて、新たな応答を生成する。聞き返しとは、応答生成装置10からユーザに出力した応答に対するユーザの反応をいう。この場合、生成部53は、後述するような仮応答の生成処理等を行わず、既存の情報に基づいて新たな応答を生成する。
生成部53は、例えば、入力情報が新たなユーザの発話である場合や、ユーザが出かけようとしているという状況を示すコンテキスト情報に基づいた自律的な情報提示の場合は、聞き返しではなく、通常の発話生成指示と判定する。この場合、生成部53は、例えば応答規則テーブル33を参照し、入力情報に応じた応答規則に基づいて、仮応答を生成する。
具体的には、生成部53は、天気情報を尋ねる意図を示した「CheckWhether」のタグが付与された要素を入力情報として取得した場合、ユーザの意図に沿った天気情報を含む仮応答を生成する。このとき、生成部53は、ユーザの発話に含まれる各種コンテキスト情報に基づいて、仮応答を生成する。例えば、生成部53は、図1に示したように、ユーザが「今日の横浜の天気おしえて」といった発話を行った場合、「横浜」の「今日」の天気情報を含む仮応答を生成する。
なお、生成部53は、自ら仮応答を生成せず、外部サーバ200によって生成された仮応答(発話ソース情報)を取得してもよい。この場合、生成部53は、本開示に係る応答生成処理を行うための前処理として、取得した発話ソース情報を各要素に分解する処理を行う。
この点について、図9及び図10を用いて説明する。図9は、本開示の第1の実施形態に係る生成処理の一例を示す図(1)である。図9では、天気情報を提供する外部サーバ200から取得した発話ソース情報E11が、文章化されている場合の例を示す。
図9の例では、応答生成装置10から「今日」の「横浜」の天気に関する情報の要求を受けた外部サーバ200は、当該要求に応答して、「今日の横浜は夕方から雨なのでお出かけ時には傘がいります」といった、文章化された発話ソース情報E11を応答生成装置10に返す。
この場合、生成部53は、発話ソース情報E11に対して自然言語処理を行い、発話ソース情報E11の文章を文節単位に分割し、各文節の意味概念(属性)を自然言語処理から取得する(ステップS31)。例えば、生成部53は、応答生成装置10内部もしくは外部サーバ200が備える単語意味概念の辞書データ等を参照して、文節ごとの属性を判定する。
これにより、生成部53は、各要素(文節)の文字列(例えば「今日の」)と、属性((例えば「属性:date」)との組み合わせからなる発話ソース情報E13を取得することができる。
また、外部サーバ200の処理によっては、文章化されていない発話ソース情報が生成される場合もある。この点について、図10を用いて説明する。図10は、本開示の第1の実施形態に係る生成処理の一例を示す図(2)である。図10では、天気情報を提供する外部サーバ200から取得した発話ソース情報E12が、文章化されていない場合の例を示す。例えば、発話ソース情報E12は、JSON(JavaScript(登録商標) Object Notation)形式で表現される。
この場合、生成部53は、既存の発話ソース情報E12に対応付けられている情報(属性情報等)を維持しつつ、発話ソース情報E12に含まれる各要素を利用して文章を生成する(ステップS32)。なお、この文章化にあたって、生成部53は、元の情報において、各文節がどのような属性(「属性:date」等))から生成されたものであるかを保持しておいてもよい。
これにより、生成部53は、図9と同じように、各要素(文節)の文字列と属性との組み合わせからなる発話ソース情報E13を取得することができる。
生成部53は、得られた仮応答に基づいて、実際にユーザに出力される応答を生成する。一例として、生成部53は、入力情報に対応して仮に生成される応答である仮応答のうち、コンテキスト情報と重複する要素を削除して、入力情報に対応する応答を生成する。
例えば、生成部53は、図1及び図2に示したように、仮応答である発話ソース情報と、ユーザが発話した内容やスケジュール等の共有知識等とにおいて、重複する要素が存在する場合、重複する要素を削除して、入力情報に対応する応答を生成する。
このとき、生成部53は、生成した応答に対して、仮応答から削除した要素に関する反応をユーザから受け付けた場合、削除した要素に基づいて、当該反応に対応する第2の応答を生成してもよい。
この点について、図11を用いて説明する。図11は、本開示の第1の実施形態に係る生成処理の一例を示す図(3)である。図11の例は、図2で示した応答E04を出力した応答生成装置10に対して、ユーザがさらに質問を発話した状況を示している。
図11に示すように、応答生成装置10は、発話ソース情報E03から、[date]属性を有する要素と、[place]属性を有する要素と、[time]属性を有する要素と、[situation]属性を有する要素とを削除して、応答E04を生成する。このとき、応答生成装置10は、削除した情報を記憶部30等に内部保持しておく。例えば、応答生成装置10は、一連の発話(例えば「セッション」等と称される)が終了したと判定するタイミングに至るまで、削除した情報を内部保持する。
その後、応答生成装置10は、ユーザから「どこのこと?」という内容の音声A21を受け付ける。すなわち、応答生成装置10は、いわゆる聞き返しをユーザから受け付ける。応答生成装置10は、音声A21に対して自然言語処理を行い、音声A21が「場所」を尋ねる意図を有する発話であることを認識する。
この場合、応答生成装置10は、保持していた[place]属性を有する要素を呼び出し、ユーザに対して出力する応答を生成する。具体的には、応答生成装置10は、応答E04の天気情報に対応する場所である「横浜」を出力するための文章を生成し、「横浜です」という応答E31を出力する。
さらに、その後、応答生成装置10は、ユーザから「いつから?」といった内容の音声A22を受け付ける。応答生成装置10は、音声A22に対して自然言語処理を行い、音声A22が「日付」や「時間」を尋ねる意図を有する発話であることを認識する。
この場合、応答生成装置10は、保持していた[date]属性を有する要素、及び、[time]属性を有する要素を呼び出し、ユーザに対して出力する応答を生成する。具体的には、応答生成装置10は、応答E04の天気情報に対応する日付及び時間である「今日」及び「夕方」を出力するための文章を生成し、「今日の夕方からです」という応答E32を出力する。
このように、応答生成装置10は、発話ソース情報から削除した情報については、一連の対話が終了したと判定するまでの間、内部に保持しておく。そして、応答生成装置10は、ユーザから質問を受け付けた場合、保持した情報に基づいて新たな応答を生成する。これにより、応答生成装置10は、簡潔な応答を生成しつつ、ユーザから質問を受けた場合には必要な情報を返すという、より柔軟なやりとりをユーザと行うことができる。なお、一連の対話(セッション)は、例えば、入力情報を応答生成装置10が検出したり、応答生成装置10が応答を出力したりした後に、所定時間(例えば1分間や5分間等)に渡って対話が途切れた場合に終了する。
また、生成部53は、仮応答から削除した要素に関する反応をユーザから受け付けた回数に応じて、仮応答から削除する要素を判定してもよい。
例えば、生成部53は、応答を生成した回数に対して、ユーザから「時間」の属性を聞き返される確率が高いと判定したとする。この場合、生成部53は、次回からの応答生成処理において、仮に「時間」の属性を有する要素が自明なもの(重複したもの)であったとしても、「時間」の属性を有する要素を削除しないようにしてもよい。これにより、生成部53は、ユーザがよく聞き返す傾向にある情報については、最初から情報を削除しないで応答を生成することができるので、ユーザに最適化された応答を生成することができる。
続いて、生成部53が、仮応答に含まれる情報を置換させる例について説明する。例えば、生成部53は、入力情報に対応して仮に生成される応答である仮応答を、コンテキスト情報に基づいて異なる表現に変更することにより、入力情報に対応する応答を生成する。
具体的には、生成部53は、仮応答に含まれる具体的な数値もしくは時刻を抽象的な表現に変更することにより、入力情報に対応する応答を生成する。
より具体的には、生成部53は、コンテキスト情報として、入力情報が取得された時点のユーザの状況を示した情報が取得された場合、ユーザの状況を示した情報に基づき、仮応答に含まれる具体的な数値もしくは時刻を置き換える抽象的な表現を決定する。
抽象的な表現とは、冗長な発話ソース情報を簡潔に表現するための一例である。例えば、生成部53は、発話に時間がかかると想定される具体的な数値や、固有名詞や、カタカナ語等の要素(文節)を、状況に合わせた指示代名詞や形容詞等に置換する。
例えば、生成部53は、発話ソース情報に数値が含まれる場合、数値を四捨五入したり、「およそ」や「だいたい」、「約」といった抽象的な表現を用いたりして、発話する内容を簡潔なものに置換してもよい。
また、生成部53は、ある長い名称を有する名詞等で、直前のユーザ発話や応答に登場した名詞については、より簡潔な表現に置換してもよい。具体的には、生成部53は、ある長い路線名を有する電車で、直前のユーザ発話や応答に登場した電車であれば、「この電車」や「あの電車」など、指示代名詞を用いた表現に置換してもよい。
また、生成部53は、出力する情報の種別を置換することで、冗長な表現を簡潔に表現する応答を生成してもよい。例えば、生成部53は、応答として、「明日の天気は晴れです」といった天気情報を音声出力するかわりに、太陽を表示した画像を出力してもよい。また、生成部53は、応答として、冗長な人物名を音声出力するかわりに、当該人物の画像を出力するようにしてもよい。この場合、生成部53は、人物名を検索するよう外部サーバ200に要求し、外部サーバ200から取得した画像を自装置のディスプレイ等に出力してもよい。
上記処理の具体例について、図12を用いて説明する。図12は、本開示の第1の実施形態に係る生成処理の一例を示す図(4)である。
図12に示す例では、応答生成装置10は、ユーザが出かけようとしているというコンテキストを含む情報C21を取得する。情報C21は、ユーザが出かけようとしているというユーザ状況における日付(属性:date)や状況(属性:situation)等のコンテキスト情報を含む。
また、応答生成装置10は、ユーザが出かけようとしているという行動予測情報を含む情報C22を取得する。また、応答生成装置10は、ユーザが出かけようとしているという行動予測情報を入力情報として、交通情報(路線情報)を自律的に応答する、という規則が設定されているものとする。
この場合、応答生成装置10は、情報C22に含まれる行動予測情報を入力情報と、情報C21に含まれるユーザ状況等のコンテキスト情報とに基づいて、仮応答となる発話ソース情報E41を生成する。例えば、応答生成装置10は、ユーザが出かけようとする日付や時間、通常ユーザが利用する路線情報等を外部サーバ200に送信し、外部サーバ200からの返信に基づいて、発話ソース情報E41を生成する。
図12に示すように、発話ソース情報E41は、「XXXラインは(属性:routeTrain)」と、「1時間15分から1時間35分の間で(属性:delayTimeRange)」と、「遅延しています(属性:situation)」という要素を含む。
この場合、応答生成装置10は、発話ソース情報E41のうち、「XXXライン」というユーザにとって自明な情報を「この電車」に置換する。また、応答生成装置10は、「1時間15分から1時間35分の間で」といった冗長な表現を、「約1時間半」といった、抽象的な表現に置換する。
このようにして、応答生成装置10は、「この電車は約1時間半遅延しています」といった、発話ソース情報E41と比較して簡潔な表現となった応答E42を生成する。これにより、応答生成装置10は、伝達する情報の質を低下させず、かつ、簡潔な表現の応答を生成することができる。
また、応答生成装置10は、置換した情報について、音声とは異なる種別の情報を出力して補完するようにしてもよい。一例として、応答生成装置10は、応答E43のような画像を生成する。応答E43には、発話ソース情報E41を置換する前の情報である、具体的な時間の情報や、電車の路線名等が表示される。このように、応答生成装置10は、置換した情報を補完するような応答を別途生成してもよい。これにより、応答生成装置10は、より正確な情報を欲するユーザと、簡潔な応答を出力させたいユーザとの双方の要望に応えるような、柔軟な応答出力処理を行うことができる。また、応答生成装置10は、抽象的な情報に置換した情報について、「詳しい時間は?」等、ユーザから聞き返しを受け付けた場合、置換する前の具体的な情報を出力するようにしてもよい。
なお、図12で示した例は一例であり、生成部53は、アクセス可能な辞書データやコーパス(corpus)等を参照して、種々の抽象的な表現を適宜採用してもよい。抽象的な表現の例としては、例えば、「2980円」等の端数の数値を「約3000円」と表現したり、緯度経度等の数値を「XXX駅の付近」のように表現したり、所定閾値を下回る気温を「肌寒い」のように表現したりすることが挙げられる。
続いて、生成部53が、仮応答に情報を付与する例について説明する。例えば、生成部53は、入力情報に対応して仮に生成される応答である仮応答に、コンテキスト情報に含まれる要素を付加して、入力情報に対応する応答を生成する。
具体的には、生成部53は、コンテキスト情報に含まれる要素とユーザとの適合度を算出し、算出した適合度に基づいて仮応答に付加する要素を決定して、入力情報に対応する応答を生成する。
上記処理の具体例について、図13乃至図16を用いて説明する。図13は、コンテキスト情報を付与して応答を生成する処理の一例を説明するための図(1)である。
図13に示す例では、応答生成装置10は、付与規則テーブル34を参照し、発話ソース情報に対して、付与するコンテキスト情報の種別を決定する。具体的には、応答生成装置10は、発話ソース情報E51及びユーザの属性情報等のコンテキスト情報である情報C31が含む情報と、付与規則テーブル34に設定された情報とを照らし、付与しようとするコンテキスト情報の適合度を算出する。そして、応答生成装置10は、算出した適合度に基づいて、コンテキスト情報を付与する。
図13では、応答生成装置10が、「10時に(属性:time)」、「待ち合わせの(属性:appointment)」、「予定があります(属性:schedule)」の各要素を有する発話ソース情報E51を生成したものとする。また、応答生成装置10は、応答を出力する対象となるユーザが、「視覚障碍者」であるというコンテキストを示す情報C31を取得する。
このとき、応答生成装置10は、発話ソース情報E51が含む各要素の属性情報と、コンテキスト情報「視覚障碍」とが、付与規則テーブル34においてどのくらい適合するかを参照する。例えば、付与規則テーブル34において、「付与するコンテキスト情報の種別」が「今日の日付」である列では、「属性適合タグ」において適合する情報が「2つ」ある。この場合、応答生成装置10は、付与するコンテキスト情報「今日の日付」の適合度を「2」と算出する。
同様に、「付与するコンテキスト情報の種別」が「現在時刻」である列では、「属性適合タグ」において適合する情報が「3つ」あり、かつ、「ユーザ状況タグ」において適合する情報が「1つ」ある。この場合、応答生成装置10は、付与するコンテキスト情報「現在時刻」の適合度を「4」と算出する。同様にして、応答生成装置10は、付与規則テーブル34に記憶されている各々の「付与するコンテキスト情報の種別」について、適合度を算出する。
上記の算出処理の結果、応答生成装置10は、最も適合度が高く算出された、付与するコンテキスト情報「現在時刻」を抽出する(ステップS41)。そして、応答生成装置10は、発話ソース情報E51に、さらに「現在時刻」を示す要素を付与した応答E52を生成する。具体的には、応答E52は、「10時に待ち合わせの予定があります。現在は8時です。」といった、ユーザに提示する情報に加えて、現在時刻が付与される。
これにより、応答生成装置10は、視覚障碍者等、現在時刻を視認で確認しにくいユーザに対して、本来出力される情報に現在時刻を伝えた応答を生成することができるので、よりユーザにとって親切な応答を提示することができる。
なお、図13の例では、応答生成装置10は、最も適合度の高い一つのコンテキスト情報を付与したが、さらに多くのコンテキスト情報を付与してもよい。
このように、応答生成装置10は、仮応答に対して、ユーザが認知していないが、有用なコンテキスト情報を付与して応答を生成することができる。また、応答生成装置10は、仮応答やユーザの状況等の条件に応じて、付与するコンテキスト情報をフィルタリングすることで、当該ユーザや状況に応じた適切なコンテキスト情報を付与することができる。
上記の処理の他の例について、図14を用いて説明する。図14は、コンテキスト情報を付与して応答を生成する処理の一例を説明するための図(2)である。
図14に示す例では、応答生成装置10は、図13と同様、付与規則テーブル34を参照し、発話ソース情報に対して、付与するコンテキスト情報の種別を決定する。具体的には、応答生成装置10は、発話ソース情報E53及びユーザの属性情報等のコンテキスト情報である情報C32が含む情報と、付与規則テーブル34に設定された情報とを照らし、付与しようとするコンテキスト情報の適合度を算出する。そして、応答生成装置10は、算出した適合度に基づいて、コンテキスト情報を付与する。
図14では、応答生成装置10が、「○○さんから(属性:sender)」、「新着メッセージです(属性:messageNotification)」、「メッセージ(属性:message)」、「読み上げますか(属性:readOut)」の各要素を有する発話ソース情報E53を生成したものとする。また、応答生成装置10は、応答を出力する対象となるユーザが、「視覚障碍者」であるというコンテキストを示す情報C32を取得する。
このとき、応答生成装置10は、発話ソース情報E53が含む各要素の属性情報と、コンテキスト情報「視覚障碍」とが、付与規則テーブル34においてどのくらい適合するかを参照する。例えば、付与規則テーブル34において、「付与するコンテキスト情報の種別」が「現在時刻」である列では、「属性適合タグ」において適合する情報が「0」であり、かつ、「ユーザ状況タグ」において適合する情報が「1つ」ある。この場合、応答生成装置10は、付与するコンテキスト情報「現在時刻」の適合度を「1」と算出する。同様に、「付与するコンテキスト情報の種別」が「周辺にいる人」である列では、「属性適合タグ」において適合する情報が「1」であり、かつ、「ユーザ状況タグ」において適合する情報が「1つ」ある。この場合、応答生成装置10は、付与するコンテキスト情報「現在時刻」の適合度を「2」と算出する。同様にして、応答生成装置10は、付与規則テーブル34に記憶されている各々の「付与するコンテキスト情報の種別」について、適合度を算出する。
上記の算出処理の結果、応答生成装置10は、最も適合度が高く算出された、付与するコンテキスト情報「周辺にいる人」を抽出する(ステップS42)。そして、応答生成装置10は、発話ソース情報E53に、さらに「周辺にいる人」を示す要素を付与した応答E54を生成する。具体的には、応答E54は、「○○さんからメッセージが届いています。ここに××さんがいますが、メッセージ読み上げますか?」といった、ユーザに提示する情報に加えて、周辺にいる人(図14の例では「××さん」)が付与される。
これにより、応答生成装置10は、視覚障碍者等、周辺の状況を視認で確認しにくいユーザに対して、本来出力される情報に現在時刻を伝えた応答を生成することができるので、よりユーザにとって親切な応答を提示することができる。例えば、応答生成装置10は、他人に聞かれたくないメッセージが誤って読み上げられることがないよう、事前にユーザへの確認を行うことができる。
なお、応答生成装置10は、複数のコンテキスト情報を組み合わせて適合度を算出してもよい。この点について、図15を用いて説明する。図15は、コンテキスト情報を付与して応答を生成する処理の一例を説明するための図(3)である。
図15の例では、応答生成装置10は、情報C33に含まれるユーザの行動予測情報から、ユーザが出かけようとしていることを認識する。そして、応答生成装置10は、その入力情報に対応する応答として、「雨なので(属性:weather)」、「傘がいります(属性:suggestion)」の各要素を有する発話ソース情報E55を生成したものとする。また、応答生成装置10は、応答を出力する対象となるユーザの自宅において、「エアコンの電源がオンである」というコンテキスト情報を取得する。
このとき、応答生成装置10は、発話ソース情報E55が含む各要素の属性情報と、コンテキスト情報「(自宅の家電が)電源オン」であるというコンテキスト情報とが、付与規則テーブル34においてどのくらい適合するかを参照する。例えば、付与規則テーブル34において、「付与するコンテキスト情報の種別」が「家電状況」である列では、「属性適合タグ」において適合する情報が「0」であり、かつ、「ユーザ状況タグ」において適合する情報が「2つ」ある。この場合、応答生成装置10は、付与するコンテキスト情報「家電状況」の適合度を「2」と算出する。同様にして、応答生成装置10は、付与規則テーブル34に記憶されている各々の「付与するコンテキスト情報の種別」について、適合度を算出する。
上記の算出処理の結果、応答生成装置10は、最も適合度が高く算出された、付与するコンテキスト情報「家電状況」を抽出する(ステップS43)。そして、応答生成装置10は、発話ソース情報E55に、さらに「家電状況」を示す要素を付与した応答E56を生成する。具体的には、応答E56は、「雨なので傘が入ります。寝室のエアコンがついていますよ。」といった、ユーザに提示する情報に加えて、家電状況が付与される。
これにより、応答生成装置10は、出かけようとする前に家電状況を把握することができるため、電源の切り忘れ等の事故を防止することができる。
また、応答生成装置10は、属性適合タグやユーザ状況タグ以外の情報を用いて、適合度を算出してもよい。この点について、図16を用いて説明する。図16は、コンテキスト情報を付与して応答を生成する処理の一例を説明するための図(4)である。
図16の例では、応答生成装置10は、図13乃至図15で説明した処理に加えて、コンテキスト情報が付与された場合にユーザが発話した意図とその回数、もしくは、ユーザの聞き返しによってコンテキスト情報が付与された場合の聞き返し回数を用いて、適合度を算出する。
図16では、ユーザが、「ゲームXXXのパーティ招待を送って」と応答生成装置10に依頼した状況を示している。この場合、応答生成装置10は、情報C34に含まれた音声の意味認識処理を経て、ユーザの意図が「ゲームへの招待(SendPartyInvitation)」であると判定する。なお、情報C34には、例えば、ユーザが「ゲーム中」であることや、「オンライン」であるといった情報も含まれるものとする。
これに対して、応答生成装置10は、仮応答として、「送信しますか(属性:SendCofirmation)」という要素を有する発話ソース情報E57を生成する。
そして、応答生成装置10は、図13乃至図15と同様、発話ソース情報E57が含む各要素の属性情報と、コンテキスト情報とが、付与規則テーブル34においてどのくらい適合するかを参照する。さらに、応答生成装置10は、過去のユーザの発話に含まれる意図と、当該発話が行われた回数を含む履歴情報を参照して、適合度を算出する。
例えば、付与規則テーブル34において、「付与するコンテキスト情報の種別」が「フレンドのオンライン状況」である列では、「属性適合タグ」において適合する情報が「0」であり、かつ、「ユーザ状況タグ」において適合する情報が「2つ」あり、「履歴情報」において適合する情報が「3つ(3回)」ある。この場合、応答生成装置10は、付与するコンテキスト情報「フレンドのオンライン状況」の適合度を「5」と算出する。同様にして、応答生成装置10は、付与規則テーブル34に記憶されている各々の「付与するコンテキスト情報の種別」について、適合度を算出する。
上記の算出処理の結果、応答生成装置10は、最も適合度が高く算出された、付与するコンテキスト情報「フレンドのオンライン状況」を抽出する(ステップS44)。そして、応答生成装置10は、発話ソース情報E57に、さらに「フレンドのオンライン状況」を示す要素を付与した応答E58を生成する。具体的には、応答E58は、「○○がオフラインです。送信しますか」といった、ユーザに提示する情報に加えて、ゲームに招待しようとする他のユーザのオンライン状況が付与される。
これにより、応答生成装置10は、ユーザがメッセージを送信する等の何らかの処理を応答生成装置10に行わせる場合に、ユーザが知りえない情報を付与した応答を生成することができる。また、応答生成装置10は、履歴情報に応じて情報を付与するため、日常的にユーザが質問している内容や気にかけている内容を付与しやすくなる。このため、応答生成装置10は、ユーザが知りたいと所望する情報を優先的に付与することができるため、発話システムに関する利便性を向上させることができる。
なお、図13乃至図16で示した処理は一例であり、応答生成装置10は、付与するコンテキスト情報と適合度算出の手法とを様々に設定することにより、ユーザに合わせた種々の情報を生成することができる。例えば、応答生成装置10は、ユーザの履歴情報を蓄積することで、ユーザが料理のレシピを聞いたときに、レシピ情報に加えて、自宅に帰宅中のユーザの父親の位置情報を付与するなど、状況に即した柔軟な対話を行うことができる。
図4に戻って説明を続ける。出力制御部54は、生成部53によって生成された応答の出力を制御する。例えば、出力制御部54は、生成部53によって生成された字列からなる応答を、音声データに変換する。あるいは、出力制御部54は、生成部53によって生成された画像情報を伴う応答を、画像データに変換する。
出力部60は、種々の情報を出力するための機構である。例えば、出力部60は、スピーカーやディスプレイである。例えば、出力部60は、出力制御部54によって生成された音声データを音声出力する。また、出力部60は、出力制御部54によって生成された画像データをディスプレイに出力する。なお、出力部60は、出力制御部54によって生成された音声データを文字認識してディスプレイに表示する等、種々の態様で応答を出力してもよい。
[1−4.第1の実施形態に係る情報処理の手順]
次に、図17を用いて、第1の実施形態に係る情報処理の手順について説明する。図17は、本開示の第1の実施形態に係る処理の流れを示すフローチャートである。
図17に示すように、応答生成装置10は、入力情報を受け付けたか否かを判定する(ステップS101)。入力情報を受け付けていない場合(ステップS101;No)、応答生成装置10は、入力情報を受け付けるまで待機する。
一方、入力情報を受け付けた場合(ステップS101;Yes)、応答生成装置10は、入力情報が聞き返しに関するものであるか否かを判定する(ステップS102)。入力情報が聞き返しに関するものでない場合(ステップS102;No)、応答生成装置10は、入力情報に対応する発話ソース情報(仮応答)を生成する(ステップS103)。
続いて、応答生成装置10は、発話ソース情報が文章化されているか否かを判定する(ステップS104)。発話ソース情報が文章化されている場合(ステップS104;Yes)、応答生成装置10は、文章を解析して、文章を構成する各文節の意味概念を取得する(ステップS105)。
一方、発話ソース情報が文章化されていない場合(ステップS104;No)、応答生成装置10は、発話ソース情報に含まれる各要素に基づいて、発話ソース情報を文章化する(ステップS106)。
続いて、応答生成装置10は、発話ソース情報から自明な情報(コンテキスト情報と重複する情報等)を削除する(ステップS107)。また、応答生成装置10は、発話ソース情報に含まれる自明な情報等を抽象的な情報へ置き換える(ステップS108)。
また、応答生成装置10は、付与するコンテキスト情報ごとの適合度を算出する(ステップS109)。そして、応答生成装置10は、適合度に基づいて、発話ソース情報に付与するコンテキスト情報を選択する(ステップS110)。
応答生成装置10は、ステップS107乃至ステップS110の処理を経て、編集された発話ソース情報に基づいて、ユーザに対する応答を生成する(ステップS111)。
なお、応答生成装置10は、ステップS107乃至ステップS110の処理を必ずしも全て実行しなくてもよい。例えば、応答生成装置10は、重複する情報を削除する処理のみを行い、その後、処理をステップS111に移行してもよい。
また、応答生成装置10は、ステップS102において聞き返しに関する入力情報を受け付けていた場合(ステップS102;Yes)、内部に保持されていた要素のうち、聞き返しに関する要素を特定する(ステップS112)。そして、応答生成装置10は、特定した要素に基づいて、聞き返しに関する応答を生成する(ステップS113)。
生成した応答をユーザに対して出力した応答生成装置10は、ユーザとの対話処理が終了したか否かを判定する(ステップS114)。具体的には、応答生成装置10は、ユーザとの対話に関する一つのセッションが終了したか否かを判定する。
対話処理が終了していない場合(ステップS114;No)、応答生成装置10は、処理をステップS101に戻し、対話処理を継続する。一方、対話処理が終了したと判定した場合(ステップS114;Yes)、応答生成装置10は、処理を終了する。
[1−5.第1の実施形態に係る変形例]
上記で説明した第1の実施形態に係る応答生成処理は、様々な変形を伴ってもよい。以下に、第1の実施形態の変形例について説明する。
応答生成装置10は、ユーザ属性等のコンテキスト情報に基づいて、情報を置換させるか否か等の判定を行ってもよい。例えば、ユーザが高齢者や子どもの場合、応答生成装置10が生成する応答は、冗長になったとしても、意図がわかりやすく表現される方が好ましいことがある。この場合、応答生成装置10は、ユーザの年齢等のユーザ属性を参照し、仮応答に含まれる情報を削除したり置換したりする処理を実行しないようにしてもよい。
また、応答生成装置10は、ユーザ属性に合わせて、理解が難しいと想定される単語(例えば、一般に出現頻度の低い単語等)を比較的簡単な単語に置き換える等の処理を行ってもよい。また、応答生成装置10は、ユーザが子どもである場合、発話よりも画像表示を優先するなど、ユーザのコンテキスト情報に合わせて出力態様を判定してもよい。
また、応答生成装置10は、削除した情報を全く出力しないのではなく、一定の間隔を空けて出力するようにしてもよい。例えば、図1では、応答生成装置10が「今日の横浜は曇りのち雨です」といった発話ソース情報E01のうち、「曇りのち雨です」のみを発話する例を示した。このとき、応答生成装置10は、一定の時間を空けて、「横浜です」や、「今日です」といった、削除した情報を出力するようにしてもよい。この場合、ユーザは、応答生成装置10が発話している途中で「わかった」等、応答の合図を送ることで、応答生成装置10の発話を止めてもよい。これにより、ユーザは、より重要な情報を優先して聞くこともでき、また、さらに詳細な情報を確認することもできる。
また、応答生成装置10は、ユーザの状況に応じて、省略する度合い等を変更してもよい。例えば、応答生成装置10は、ユーザの移動速度やユーザの発話速度を取得し、日常的な移動速度や発話速度と比較する。そして、応答生成装置10は、移動速度や発話速度が日常よりも速い場合、ユーザが急いでいるという状況であると判定する。この場合、応答生成装置10は、応答がより短くなるよう、削除する情報の量を増やしたり、より多くの情報を抽象的な表現に置き換えたりするような処理を行ってもよい。これにより、応答生成装置10は、ユーザの状況に合わせた適切な応答を生成することができる。
(2.第2の実施形態)
[2−1.第2の実施形態に係る情報処理の一例]
次に、第2の実施形態について説明する。第2の実施形態では、応答生成装置10は、予め設定された定性的な表現を、ユーザの状況に合わせて適切な表現に置き換える処理を実行する。
図18に、本開示の第2の実施形態に係る情報処理の一例を示す図である。図18の例では、応答生成装置10は、表現の選択に用いる情報を記憶したデータベースDB01を備える。
図18では、ユーザが出かけようとする状況をカメラで捉えた応答生成装置10が、「今日の(属性:date)」、「気温は(属性:whetherInfo)」、「20度です(属性:numericalTemperature)」という内容を含む発話ソース情報E61を生成した例を示す。
このとき、応答生成装置10は、ユーザに出力しようとする発話ソース情報E61に、温度の通知(属性:whetherInfo)が含まれていると判定する。この場合、応答生成装置10は、データベースDB01を参照し、応答種別「温度の通知」の場合、判定基準「ユーザの服装」や「平均気温」に応じて、発話ソース情報E61を置き換える処理を実行する。
図18の例では、応答生成装置10は、判定基準「ユーザの服装」を適用するものとする。この場合、判定要素は、季節や気温、服装やユーザ属性が用いられる。一例として、図18では、気温及びユーザの服装に基づいて、応答生成装置10が発話ソース情報E61を置き換える例を示す。例えば、データベースDB01には、気温が「20度」であり、かつ、ユーザの服装が「半袖」である場合、気温の表現を「寒くなります」に置き換えることが設定されているものとする。また、データベースDB01には、気温が「20度」であり、かつ、ユーザの服装が「冬用コート」等である場合、気温の表現を「暑くなります」に置き換えることが設定されているものとする。また、データベースDB01には、気温が「20度」であり、かつ、ユーザの服装が上記のいずれにも該当しない場合、気温の表現を「適温です」に置き換えることが設定されているものとする。
図18において、応答生成装置10は、ユーザを画像認識し、コンテキスト情報として情報C41を取得する。情報C41において、ユーザが「半袖」の服を着用していると判定された場合、応答生成装置10は、データベースDB01の設定に従い、発話ソース情報E61の気温の表現を「寒くなります」に置き換える。すなわち、応答生成装置10は、「今日の気温は寒くなります」といった内容を含む応答E62を生成する。
また、情報C41において、ユーザが「冬用コート」の服を着用していると判定された場合、応答生成装置10は、データベースDB01の設定に従い、発話ソース情報E61の気温の表現を「暑くなります」に置き換える。すなわち、応答生成装置10は、「今日の気温は暑くなります」といった内容を含む応答E63を生成する。
なお、応答生成装置10は、ユーザの服装ではなく、例えば、直近の平均気温との差異に応じて、表現を置き換えてもよい。例えば、応答生成装置10は、直近一週間の平均気温と、発話ソース情報E61に含まれる温度との差異が「+3度」以上である場合、気温の表現を「暑くなります」と置き換える。また、応答生成装置10は、直近一週間の平均気温と、発話ソース情報E61に含まれる温度との差異が「−3度」以上である場合、気温の表現を「寒くなります」と置き換える。
上記のように、応答生成装置10は、発話ソース情報に含まれる定量的な数値情報(例えば温度等)を、ユーザのコンテキスト情報に応じて直感的に理解しやすい抽象度の高い表現に変換する。これにより、ユーザは、単に数値としての情報のみならず、自身の状況において、その数値がどのような意味を持つ情報であるかを感覚的に理解することができる。このように、応答生成装置10によれば、単なる数値情報をユーザに提示するのみならず、ユーザの状況に合わせた適切な表現を提示できるため、ユーザとの有用な対話を実現することができる。
[2−2.第2の実施形態に係る変形例]
図18の例では、応答生成装置10が、データベースDB01に保持された設定に基づいて温度等の数値情報を置き換えることを示した。一方、変形例に係る応答生成装置10は、データベースDB01によらず、置き換えに関する学習結果を用いて、数値情報等の置き換え処理を実行してもよい。
この点について、図19を用いて説明する。図19は、本開示の第2の実施形態の変形例に係る情報処理の一例を示す図である。
図19に示す例では、応答生成装置10は、多段に接続されたニューロンを有するDNN(Deep Neural Network)からなる学習器(モデル)であるモデル80を有する。図19に示すように、応答生成装置10は、モデル80への入力として、発話ソース情報と各種コンテキスト情報を取得する。このとき、応答生成装置10は、発話ソース情報やコンテキスト情報に含まれる属性等の単語を、例えばワンホットベクトルで表現するようベクトル化する。そして、応答生成装置10は、ベクトル化した発話ソース情報やコンテキスト情報をモデル80に入力する。また、モデル80の出力例は、生成された応答の文字列である。また、応答生成装置10は、学習データが蓄積されたコーパス(Corpus)81から、学習データの例を取得する。
図19に示すように、学習データの一例は、ユーザの状況「半袖を着ている」が入力され、応答として「今日の気温は寒くなります」を出力した際に、ユーザがその後長袖に着替えていれば、その出力を「正例」にラベル付けするものである。このことは、気温20度のときにユーザが「半袖を着ている」という状況は、ユーザが「寒い」と感じるであろうことを正解データとして設定することを意味している。
同様に、他の一例は、ユーザの状況「半袖を着ている」が入力され、応答として「今日の気温は暑くなります」を出力した際に、ユーザがその後何もしない(半袖のままである)ときには、その出力を「負例」にラベル付けするものである。また、他の一例は、ユーザの状況「コートを着ている」が入力され、応答として「今日の気温は寒くなります」を出力した際に、ユーザがその後何もしない(コートのままである)ときには、その出力を「負例」にラベル付けするものである。また、他の一例は、ユーザの状況「コートを着ている」が入力され、応答として「今日の気温は暑くなります」を出力した際に、ユーザがその後コートを脱いだ場合には、その出力を「正例」にラベル付けするものである。
図18で示した例を用いて説明すると、応答生成装置10は、入力として、「今日の(属性:date)」、「気温は(属性:whetherInfo)」、「20度です(属性:numericalTemperature)」という内容を含む発話ソース情報E61と、ユーザの服装が「半袖」もしくは「冬用コート」であるというコンテキストを示す情報C41とを取得する。そして、応答生成装置10は、出力した応答(「寒くなります」あるいは「暑くなります」等)や、応答に対するユーザの行動(「服装を変更した」あるいは「何もしない」等)等を取得し、正例、負例と判別して学習データを収集する。そして、応答生成装置10は、取得した正例、負例からなる学習データを用いて、モデル80を学習する。モデル80の学習が完了すると、応答生成装置10は、モデル80に情報を入力し、適切な出力を得ることができるようになる。
このように、応答生成装置10は、生成した応答に対する反応をユーザから取得し、ユーザから取得した反応を正例もしくは負例として、仮応答に含まれる具体的な数値もしくは時刻を置き換える抽象的な表現の決定手法を学習してもよい。これにより、応答生成装置10は、データベースDB01を参照せずとも、ユーザのコンテキスト情報に合わせて、適切な定性的表現を選択することができる。
なお、図19で示した学習処理は一例であり、応答生成装置10は、コンテキスト情報及び発話ソース情報を入力とし、表現が選択された応答が出力として得られるモデルであれば、どのような学習手法を用いるモデルを採用してもよい。
(3.その他の実施形態)
上述した各実施形態に係る処理は、上記各実施形態以外にも種々の異なる形態にて実施されてよい。
上記各実施形態では、応答生成装置10がいわゆるスマートスピーカーであり、スタンドアロンで処理を行う例を示した。しかし、応答生成装置10は、ネットワークによって接続されたサーバ装置(いわゆるクラウドサーバ(Cloud Server)等)と連携して本開示に係る応答生成処理を行ってもよい。
この場合、応答生成装置10は、スマートスピーカー等の端末に入力された音声やコンテキスト情報を取得し、取得した情報に基づいて応答を生成し、生成した応答を端末に送信する。この場合には、スマートスピーカー等の端末は、ユーザの発話を集音する処理や、集音した発話をサーバ装置に送信する処理や、サーバ装置から送信された回答を出力する処理といった、ユーザとの対話処理を主に実行するインターフェイスとして機能する。
また、本開示に係る応答生成装置とは、応答生成装置10内に搭載されるICチップ等の態様で実現されてもよい。
また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、意味理解部51と対話制御部52は統合されてもよい。
また、上述してきた各実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
(4.本開示に係る応答生成装置の効果)
上述のように、本開示に係る応答生成装置(実施形態では応答生成装置10)は、取得部(実施形態では取得部40)と、応答生成部(実施形態では応答生成部50)とを備える。取得部は、ユーザに対する応答を生成する契機となる入力情報、及び、当該ユーザの状況を示す情報であるコンテキスト情報を取得する。応答生成部は、ユーザから取得したコンテキスト情報に基づいて、入力情報に対応する応答を生成する。
これにより、本開示に係る応答生成装置は、ユーザのコンテキストに合わせた柔軟な応答を生成することができるため、対話等のエージェント機能をより効果的にユーザに提供することができる。
また、取得部は、入力情報として、ユーザが発した音声情報を取得する。これにより、本開示に係る応答生成装置は、音声を介したユーザとのコミュニケーションにおいて、ユーザの状況に合わせた適切な対話を行うことができる。
また、取得部は、入力情報として、ユーザの行動を検知した検知情報を取得する。これにより、本開示に係る応答生成装置は、ユーザが発話をせずとも、ユーザの行動に合わせた適切な応答を生成することができる。
また、取得部は、コンテキスト情報として、ユーザが予め登録したスケジュール情報を取得する。これにより、本開示に係る応答生成装置は、スケジュール情報を共有知識として応答生成に用いることができるため、より詳細なユーザ状況に応じた応答を生成することができる。
また、取得部は、コンテキスト情報として、ユーザの行動から推定される情報であって、当該ユーザの将来の行動予測を示した情報である行動予測情報を取得する。これにより、本開示に係る応答生成装置は、ユーザがこれから実行しようとする行動に即した応答を生成することができる。
また、取得部は、コンテキスト情報として、ユーザによって予め登録された当該ユーザの属性情報を取得する。これにより、本開示に係る応答生成装置は、老齢や子ども、視覚障碍を有するユーザ等、各々のユーザの特性に合わせた応答を生成することができる。
また、応答生成部は、入力情報に対応して仮に生成される応答である仮応答のうち、コンテキスト情報と重複する要素を削除して、当該入力情報に対応する応答を生成する。これにより、本開示に係る応答生成装置は、冗長な情報を削除することができるため、簡潔かつ必要十分な情報を含む応答を生成することができる。
また、応答生成部は、生成した応答に対して、仮応答から削除した要素に関する反応をユーザから受け付けた場合、当該削除した要素に基づいて、当該反応に対応する第2の応答を生成する。これにより、本開示に係る応答生成装置は、簡潔な応答を生成しつつ、ユーザがより詳細な情報を所望する場合には、所望した情報をユーザに提示することができる。
また、応答生成部は、仮応答から削除した要素に関する反応をユーザから受け付けた回数に応じて、当該仮応答から削除する要素を判定する。これにより、本開示に係る応答生成装置は、各々のユーザに最適化された応答を生成することができる。
また、応答生成部は、入力情報に対応して仮に生成される応答である仮応答に、コンテキスト情報に含まれる要素を付加して、当該入力情報に対応する応答を生成する。これにより、本開示に係る応答生成装置は、ユーザが気づかない情報や、ユーザ自身では取得することが難しい情報をユーザに提示できるので、対話システムに関するユーザビリティを向上させることができる。
また、応答生成部は、コンテキスト情報に含まれる要素とユーザとの適合度を算出し、算出した適合度に基づいて仮応答に付加する要素を決定して、当該入力情報に対応する応答を生成する。これにより、本開示に係る応答生成装置は、ユーザに対して提示すべき情報を適切に選択したうえで、応答を生成することができる。
また、応答生成部は、入力情報に対応して仮に生成される応答である仮応答を、コンテキスト情報に基づいて異なる表現に変更することにより、当該入力情報に対応する応答を生成する。これにより、本開示に係る応答生成装置は、冗長な表現や、ユーザにとってわかりにくい表現ではなく、ユーザにとってわかりやすい応答を生成することができる。
また、応答生成部は、仮応答に含まれる具体的な数値もしくは時刻を抽象的な表現に変更することにより、入力情報に対応する応答を生成する。これにより、本開示に係る応答生成装置は、簡潔に必要な情報を伝達するための応答を生成することができる。
また、取得部は、コンテキスト情報として、入力情報が取得された時点のユーザの状況を示した情報を取得する。応答生成部は、ユーザの状況を示した情報に基づき、仮応答に含まれる具体的な数値もしくは時刻を置き換える抽象的な表現を決定する。これにより、本開示に係る応答生成装置は、ユーザの状況に合わせた、適切な表現を用いた応答を生成することができる。
また、取得部は、生成した応答に対する反応をユーザから取得する。応答生成部は、ユーザから取得した反応を正例もしくは負例として、仮応答に含まれる具体的な数値もしくは時刻を置き換える抽象的な表現の決定手法を学習する。これにより、本開示に係る応答生成装置は、表現の置き換え等が記憶されたデータベースを参照せずとも、適切な応答を選択することができる。
(5.ハードウェア構成)
上述してきた各実施形態に係る応答生成装置10や外部サーバ200等の情報機器は、例えば図20に示すような構成のコンピュータ1000によって実現される。以下、第1の実施形態に係る応答生成装置10を例に挙げて説明する。図20は、応答生成装置10の機能を実現するコンピュータ1000の一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス1500、及び入出力インターフェイス1600を有する。コンピュータ1000の各部は、バス1050によって接続される。
CPU1100は、ROM1300又はHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。例えば、CPU1100は、ROM1300又はHDD1400に格納されたプログラムをRAM1200に展開し、各種プログラムに対応した処理を実行する。
ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるBIOS(Basic Input Output System)等のブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を非一時的に記録する、コンピュータが読み取り可能な記録媒体である。具体的には、HDD1400は、プログラムデータ1450の一例である本開示に係る応答生成プログラムを記録する記録媒体である。
通信インターフェイス1500は、コンピュータ1000が外部ネットワーク1550(例えばインターネット)と接続するためのインターフェイスである。例えば、CPU1100は、通信インターフェイス1500を介して、他の機器からデータを受信したり、CPU1100が生成したデータを他の機器へ送信したりする。
入出力インターフェイス1600は、入出力デバイス1650とコンピュータ1000とを接続するためのインターフェイスである。例えば、CPU1100は、入出力インターフェイス1600を介して、キーボードやマウス等の入力デバイスからデータを受信する。また、CPU1100は、入出力インターフェイス1600を介して、ディスプレイやスピーカーやプリンタ等の出力デバイスにデータを送信する。また、入出力インターフェイス1600は、所定の記録媒体(メディア)に記録されたプログラム等を読み取るメディアインターフェイスとして機能してもよい。メディアとは、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が第1の実施形態に係る応答生成装置10として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされた応答生成プログラムを実行することにより、取得部40等の機能を実現する。また、HDD1400には、本開示に係る応答生成プログラムや、記憶部30内のデータが格納される。なお、CPU1100は、プログラムデータ1450をHDD1400から読み取って実行するが、他の例として、外部ネットワーク1550を介して、他の装置からこれらのプログラムを取得してもよい。
なお、本技術は以下のような構成も取ることができる。
(1)
ユーザに対する応答を生成する契機となる入力情報、及び、当該ユーザの状況を示す情報であるコンテキスト情報を取得する取得部と、
前記ユーザから取得したコンテキスト情報に基づいて、前記入力情報に対応する応答を生成する応答生成部と
を備える応答生成装置。
(2)
前記取得部は、
前記入力情報として、前記ユーザが発した音声情報を取得する
前記(1)に記載の応答生成装置。
(3)
前記取得部は、
前記入力情報として、前記ユーザの行動を検知した検知情報を取得する
前記(1)又は(2)に記載の応答生成装置。
(4)
前記取得部は、
前記コンテキスト情報として、前記ユーザが予め登録したスケジュール情報を取得する
前記(1)〜(3)のいずれかに記載の応答生成装置。
(5)
前記取得部は、
前記コンテキスト情報として、前記ユーザの行動から推定される情報であって、当該ユーザの将来の行動予測を示した情報である行動予測情報を取得する
前記(1)〜(4)のいずれかに記載の応答生成装置。
(6)
前記取得部は、
前記コンテキスト情報として、前記ユーザによって予め登録された当該ユーザの属性情報を取得する
前記(1)〜(5)のいずれかに記載の応答生成装置。
(7)
前記応答生成部は、
前記入力情報に対応して仮に生成される応答である仮応答のうち、前記コンテキスト情報と重複する要素を削除して、当該入力情報に対応する応答を生成する
前記(1)〜(6)のいずれかに記載の応答生成装置。
(8)
前記応答生成部は、
前記生成した応答に対して、前記仮応答から削除した要素に関する反応を前記ユーザから受け付けた場合、当該削除した要素に基づいて、当該反応に対応する第2の応答を生成する
前記(7)に記載の応答生成装置。
(9)
前記応答生成部は、
前記仮応答から削除した要素に関する反応を前記ユーザから受け付けた回数に応じて、当該仮応答から削除する要素を判定する
前記(8)に記載の応答生成装置。
(10)
前記応答生成部は、
前記入力情報に対応して仮に生成される応答である仮応答に、前記コンテキスト情報に含まれる要素を付加して、当該入力情報に対応する応答を生成する
前記(1)〜(9)のいずれかに記載の応答生成装置。
(11)
前記応答生成部は、
前記コンテキスト情報に含まれる要素と前記ユーザとの適合度を算出し、算出した適合度に基づいて前記仮応答に付加する要素を決定して、当該入力情報に対応する応答を生成する
前記(10)に記載の応答生成装置。
(12)
前記応答生成部は、
前記入力情報に対応して仮に生成される応答である仮応答を、前記コンテキスト情報に基づいて異なる表現に変更することにより、当該入力情報に対応する応答を生成する
前記(1)〜(11)のいずれかに記載の応答生成装置。
(13)
前記応答生成部は、
前記仮応答に含まれる具体的な数値もしくは時刻を抽象的な表現に変更することにより、前記入力情報に対応する応答を生成する
前記(12)に記載の応答生成装置。
(14)
前記取得部は、
前記コンテキスト情報として、前記入力情報が取得された時点のユーザの状況を示した情報を取得し、
前記応答生成部は、
前記ユーザの状況を示した情報に基づき、前記仮応答に含まれる具体的な数値もしくは時刻を置き換える抽象的な表現を決定する
前記(13)に記載の応答生成装置。
(15)
前記取得部は、
前記生成した応答に対する反応を前記ユーザから取得し、
前記応答生成部は、
前記ユーザから取得した反応を正例もしくは負例として、前記仮応答に含まれる具体的な数値もしくは時刻を置き換える抽象的な表現の決定手法を学習する
前記(14)に記載の応答生成装置。
(16)
コンピュータが、
ユーザに対する応答を生成する契機となる入力情報、及び、当該ユーザの状況を示す情報であるコンテキスト情報を取得し、
前記ユーザから取得したコンテキスト情報に基づいて、前記入力情報に対応する応答を生成する
応答生成方法。
(17)
コンピュータを、
ユーザに対する応答を生成する契機となる入力情報、及び、当該ユーザの状況を示す情報であるコンテキスト情報を取得する取得部と、
前記ユーザから取得したコンテキスト情報に基づいて、前記入力情報に対応する応答を生成する応答生成部と
として機能させるための応答生成プログラム。