以下に、本開示の実施形態について図面に基づいて詳細に説明する。なお、以下の各実施形態において、同一の部位には同一の符号を付することにより重複する説明を省略する。
以下に示す項目順序に従って本開示を説明する。
1.第1の実施形態
1-1.第1の実施形態に係る応答処理システムの概要
1-2.第1の実施形態に係る応答処理の一例
1-3.第1の実施形態に係る応答処理のバリエーション
1-4.第1の実施形態に係る応答処理システムの構成
1-5.第1の実施形態に係る応答処理の手順
1-6.第1の実施形態に係る変形例
2.第2の実施形態
2-1.第2の実施形態に係る応答処理の一例
2-2.第2の実施形態に係る応答処理のバリエーション
3.その他の実施形態
3-1.応答出力のバリエーション
3-2.ユーザの反応を送信するタイミング
3-3.装置構成
4.本開示に係る応答処理装置の効果
5.ハードウェア構成
(1.第1の実施形態)
[1-1.第1の実施形態に係る応答処理システムの概要]
図1を用いて、本開示の第1の実施形態に係る応答処理の概要を説明する。図1は、第1の実施形態に係る応答処理システム1を示す図である。第1の実施形態に係る情報処理は、図1に示す応答処理装置100、及び、応答処理装置100を含む応答処理システム1によって実行される。
図1に示すように、応答処理システム1は、応答処理装置100と、エージェント10A、エージェント10B、エージェント10C、及びエージェント10Dとを含む。応答処理システム1に含まれる各装置は、図示しない有線又は無線ネットワークを介して通信可能に接続される。
エージェント10A、エージェント10B、エージェント10C、及びエージェント10Dは、音声等を介してユーザとの対話を行う機能(エージェント(Agent)機能等と称される)を有する機器であり、音声認識やユーザへの応答生成等の種々の情報処理を行う。具体的には、エージェント10A等は、いわゆるIoT(Internet of Things)機器であり、クラウドサーバ等の外部機器と連携して、種々の情報処理を行う。図1の例では、エージェント10A等は、いわゆるスマートスピーカー(smart speaker)である。
以下では、音声対話や応答に関する学習を行うエージェント機能、及び、エージェント機能を有する情報機器を「エージェント」と総称する。なお、エージェント機能には、エージェント10単体で実行される機能のみならず、エージェント10とネットワーク接続されたサーバ上で実行される機能も含まれる。また、以下では、エージェント10A、エージェント10B、エージェント10C、及びエージェント10D等の個々の情報機器を区別する必要のない場合、「エージェント10」と総称する。
応答処理装置100は、本開示に係る応答処理装置の一例である。例えば、応答処理装置100は、音声やテキストを介してユーザとの対話を行う機器であり、音声認識やユーザへの応答生成等の種々の情報処理を行う。具体的には、応答処理装置100は、集音した音声やユーザの行動等、応答を生成するための契機となる情報(以下、「入力情報」と称する)に対する応答処理を実行する。例えば、応答処理装置100は、ユーザが発した質問を認識し、質問に対する回答を音声出力したり、質問に関する情報を画面に表示したりする。なお、応答処理装置100が実行する音声認識処理や出力処理等については、種々の既知の技術が利用されてもよい。また、詳細は後述するが、応答処理装置100は、各エージェント10が生成する応答や、各エージェント10へのフィードバックへのとりまとめを行う。
図1では、応答処理装置100が、いわゆるタブレット端末やスマートフォンである例を示す。例えば、応答処理装置100は、音声出力を行うスピーカ部や、映像等を出力する表示部(液晶ディスプレイ等)を備える。例えば、応答処理装置100は、スマートフォンやタブレット端末にインストールされたプログラム(アプリケーション)の機能に基づき、本開示の応答処理を実行する。なお、応答処理装置100は、スマートフォンやタブレット端末以外にも、時計型端末や眼鏡型端末などのウェアラブルデバイス(wearable device)であってもよい。また、応答処理装置100は、情報処理機能を有する種々のスマート機器により実現されてもよい。例えば、応答処理装置100は、テレビやエアコン、冷蔵庫等のスマート家電や、自動車などのスマートビークル(Smart vehicle)や、ドローン(drone)、ペット型ロボットや人型ロボット等の自律型ロボットであってもよい。
図1に示す例では、ユーザは、応答処理装置100とともに、エージェント10A等の情報機器を利用する。すなわち、図1の例では、ユーザは、複数のエージェント10を利用する環境下にあるものとする。
図1で示す例のように、複数のエージェント10がユーザに利用される状況で適切な運用を行うためには、様々な課題が存在する。
例えば、ユーザは、どのエージェント10を用いて、どのような処理を実行させるか(言い換えれば、どのような入力情報をエージェント10に入力するか)、その都度考慮する必要がある。また、ユーザは、一つのエージェント10に対して処理を実行させたのち、その他のエージェント10に対して同じ処理を実行させる際、同様のプロセスを再度実行しなければならない。なお、以下では、ユーザからの入力情報に基づきエージェント10に何らかの処理を実行させるためのリクエストを「コマンド」と称する。コマンドは、例えば、ユーザの質問や要求内容を示したスクリプト等である。
また、エージェント10は、ユーザとの対話を通じて、ユーザがどのような質問や要求を発しやすいか、あるいは、日常的にユーザがどのような応答を求めているか、といった学習を行う。しかし、エージェント10が複数存在する場合、ユーザは、エージェント10を成長させるためのプロセスをエージェント10ごとに行わなくてはならない。
また、各々のエージェント10は、例えばユーザから質問を受けた場合には、各々異なるサービスにアクセスして回答を得る。このため、ユーザから同一の質問を受けた場合であっても、複数のエージェント10の各々が異なる応答を生成する場合がある。また、エージェント10によっては、ユーザから質問された回答を得るためのサービスにアクセスできず、回答を生成することができない可能性もある。適切な回答が得られなかった場合、ユーザは、異なるエージェント10に同じ質問を発するという手間を要する。
そこで、本開示に係る応答処理装置100は、以下に説明する応答処理によって、上記課題を解決する。
具体的には、応答処理装置100は、複数のエージェント10のフロントエンド機器として機能し、ユーザとのやりとりを一括して受け付ける。例えば、応答処理装置100は、ユーザから受け付けた質問の内容を解析し、質問の内容に応じたコマンドを生成する。そして、応答処理装置100は、生成したコマンドをエージェント10A、エージェント10B、エージェント10C、及びエージェント10Dに一括して送信する。さらに、応答処理装置100は、各エージェント10が生成した各々の応答をユーザに提示するとともに、提示された応答に対するユーザの反応を各エージェント10に送信する。
これにより、応答処理装置100は、何度も同じコマンドを実行しなければ複数エージェント10の結果を受け取ることが出来ないというユーザ環境を解決する。また、応答処理装置100は、エージェント10を成長させるためのプロセスをエージェント10ごとに実行しなければならない状況を解決する。このように、応答処理装置100は、複数のエージェント10のフロントエンド機器としてふるまい、応答の生成や出力を制御することにより、ユーザの利便性を向上させる。いわば、応答処理装置100は、システム全体を調停する役割を担う。
以下、本開示に係る第1の実施形態の応答処理の一例について、図1を用いて、流れに沿って説明する。
図1に示す例では、応答処理装置100は、予め、エージェント10A、エージェント10B、エージェント10C、及びエージェント10Dの各々と連携しているものとする。例えば、応答処理装置100は、各エージェント10を起動するための起動ワードや、各々が音声を受け付けるための形式(例えば、各々のエージェント10が処理可能な音声API(Application Programming Interface)の種類等)等の情報をデータベースとして記憶する。
まず、応答処理装置100は、ユーザから何らかの入力情報を受け付ける(ステップS1)。例えば、応答処理装置100は、ユーザの発話による質問を受け付ける。
この場合、応答処理装置100は、自装置の応答処理を起動する(ステップS2)。また、応答処理装置100は、ユーザから受け付けた入力情報を契機として、連携する各々のエージェント10を起動させる(ステップS3)。
具体的には、応答処理装置100は、ユーザから受け付けた音声情報をコマンドに変換し、各エージェント10が認識可能な形式のコマンドを生成する。具体的には、応答処理装置100は、ユーザの音声を取得し、自動音声認識(ASR(Automatic Speech Recognition))処理や自然言語理解(NLU(Natural Language Understanding))処理を経て、ユーザの音声に含まれるユーザの質問を解析する。例えば、応答処理装置100は、音声にユーザからの質問の意図が含まれている場合、質問の意図を入力情報と認識し、質問の意図に沿ったコマンドを生成する。なお、応答処理装置100は、同一の入力情報から、例えば各エージェント10のAPIに合わせて異なる態様のコマンドをそれぞれ生成してもよい。そして、応答処理装置100は、生成したコマンドを各エージェント10に送信する。
例えば、コマンドを受信したエージェント10Aは、入力情報に対応する応答を生成する。具体的には、エージェント10Aは、ユーザの質問に対する回答を応答として生成する。そして、エージェント10Aは、生成した応答を応答処理装置100に送信する(ステップS4)。図1での図示は省略するが、エージェント10B、エージェント10C、及びエージェント10Dも、エージェント10Aと同様、自身が生成した応答を応答処理装置100に送信する。
応答処理装置100は、各エージェント10から受信した応答をとりまとめ、どのエージェント10がどのような応答を生成したのかを示す情報をユーザに提示する(ステップS5)。例えば、応答処理装置100は、各エージェント10から受信した応答の概要を示す情報を音声に変換して、変換した音声をユーザに対して出力する。これにより、ユーザは、応答処理装置100に質問を発するのみで、複数の応答を得ることができる。
その後、ユーザは、エージェント10が生成した応答のうち、いずれの応答を実際に出力させるかを応答処理装置100に伝える。応答処理装置100は、ユーザが選択した応答の内容や、ユーザが選択したエージェント10の識別情報等を、各エージェント10に一括して送信する。これにより、各エージェント10は、ユーザの質問に対してユーザが選択した応答、すなわち、ユーザにとっての正例をフィードバックとして得ることができる。また、各エージェント10は、ユーザの質問に対してユーザが選択しなかった応答、すなわち、ユーザにとっての負例をフィードバックとして得ることができる。これにより、応答処理装置100は、一度のやりとりで、複数のエージェント10の学習を行う(各エージェント10にフィードバックを与える)ことができる。
[1-2.第1の実施形態に係る応答処理の一例]
続いて、図2を用いて、上記した応答処理の一例について説明する。図2Aは、第1の実施形態に係る応答処理の一例を示す図(1)である。
図2Aの例では、ユーザは、「「卒業」を聞きたい」という内容を含む音声A11を応答処理装置100に対して入力する(ステップS11)。応答処理装置100は、ユーザが発した音声A11を入力情報として受け付ける。
続けて、応答処理装置100は、音声A11に対してASRやNLU処理を行い、内容を解析する。そして、応答処理装置100は、音声A11に対応するコマンドを生成する(ステップS12)。
応答処理装置100は、生成したコマンドを各エージェント10に送信する(ステップS13)。例えば、応答処理装置100は、各エージェント10が対応可能なAPIやプロトコルを参照し、各エージェント10に対応した形式のコマンドを送信する。
図2Aに続く処理を、図2Bを用いて説明する。図2Bは、第1の実施形態に係る応答処理の一例を示す図(2)である。
各エージェント10は、応答処理装置100から受信したコマンドに基づき、コマンドに対応する応答を生成する。例えば、エージェント10Aは、コマンドの内容に基づき、ユーザの要求が「「卒業」という曲名の音楽を再生すること」であると解釈したものとする。この場合、エージェント10Aは、例えば、自装置が接続可能な音楽サービスにアクセスし、歌手Aが歌唱する「卒業」という曲を取得する。そして、エージェント10Aは、「歌手Aが歌唱する「卒業」という曲を再生する」ことが、自装置が生成した応答であるということを応答処理装置100に送信する(ステップS14)。
同様に、エージェント10Bは、コマンドの内容に基づき、ユーザの要求が「「卒業」という曲名の音楽を再生すること」であると解釈したものとする。この場合、エージェント10Bは、例えば、自装置が接続可能な音楽サービスにアクセスし、歌手Bが歌唱する「卒業」という曲を取得する。そして、エージェント10Bは、「歌手Bが歌唱する「卒業」という曲を再生する」ことが、自装置が生成した応答であるということを応答処理装置100に送信する。
また、エージェント10Cは、コマンドの内容に基づき、ユーザの要求が「「卒業」に関する情報を再生すること」であると解釈したものとする。この場合、エージェント10Bは、例えば、自装置が接続可能なニュースサービスにアクセスし、「卒業」に関する情報(この例ではニュース情報)を取得する。そして、エージェント10Cは、「「卒業」に関するニュースを再生する」ことが、自装置が生成した応答であるということを応答処理装置100に送信する。
また、エージェント10Dは、コマンドの内容に基づき、ユーザの要求が「「卒業」に関する情報を再生すること」であると解釈したものとする。この場合、エージェント10Bは、例えば、ウェブ検索を行い、「卒業」に関する情報を検索するものとする。そして、エージェント10Dは、「「卒業」に関するウェブ検索結果を再生する」ことが、自装置が生成した応答であるということを応答処理装置100に送信する。
応答処理装置100は、各エージェント10が生成した応答を取得する。そして、応答処理装置100は、各エージェント10がどのような応答を生成したかを示す情報を生成する(ステップS15)。例えば、応答処理装置100は、各エージェント10が生成した応答の概要を含む音声A12を生成する。
続けて、応答処理装置100は、生成した音声A12を出力し、音声A12が含む情報をユーザに提示する(ステップS16)。これにより、ユーザは、応答処理装置100に対する音声A11の入力のみで、4種類の応答の内容を知得することができる。
図2Bに続く処理を、図2Cを用いて説明する。図2Cは、第1の実施形態に係る応答処理の一例を示す図(3)である。
音声A12を聞いたユーザは、音声A12に含まれる応答のうち、いずれかを選択する。図2Cの例では、ユーザは、エージェント10Aが提案する応答が、自身の要求に適合していると判断したものとする。この場合、ユーザは、「「エージェント10A」で」といった内容を含む音声A13を応答処理装置100に入力する(ステップS17)。
応答処理装置100は、音声A13を受け付けた場合、保持していた各応答のうち、エージェントA10の応答がユーザの求めている応答であると判断する(ステップS18)。この場合、応答処理装置100は、「エージェント10Aが歌手Aの「卒業」を再生します」というガイドとなる音声A14を生成し、出力する。さらに、応答処理装置100は、エージェント10Aに対して、生成した応答を出力するよう要求する(ステップS19)。エージェント10Aは、要求に応じて、自身が生成した応答である「歌手Aの「卒業」の再生」を実行する。
これにより、ユーザは、提示された応答のうち、自身の要求に最も適合する応答を出力させることができる。
図2Cに続く処理を、図2Dを用いて説明する。図2Dは、第1の実施形態に係る応答処理の一例を示す図(4)である。
エージェント10Aが応答を出力したのち、応答処理装置100は、ユーザとの一連の対話に関するフィードバックを生成する(ステップS20)。
例えば、応答処理装置100は、入力情報に対して各エージェント10が生成した応答の内容をフィードバックとして生成する。また、応答処理装置100は、各エージェント10が生成した応答のうち、どのエージェント10の生成した応答がユーザから選択され、どのエージェント10の生成した応答がユーザから選択されなかったか等を示す情報をフィードバックとして生成する。図2Dに示すように、応答処理装置100は、入力情報と、生成された応答と、どの応答が選択されたかを示すフィードバックA15を生成する。
そして、応答処理装置100は、生成したフィードバックA15を各エージェント10に送信する(ステップS21)。これにより、ユーザは、全てのエージェント10に同様の対話を行うことなく、フィードバックをまとめて各エージェント10に与えることができるので、効率よく各エージェント10の学習を行うことができる。
[1-3.第1の実施形態に係る応答処理のバリエーション]
続いて、図3乃至図6を用いて、上記した応答処理のバリエーションについて説明する。図3Aは、第1の実施形態に係る応答処理の第1のバリエーションを示す図(1)である。
図3Aの例では、ユーザは、図2Aと同様、「「卒業」を聞きたい」という内容を含む音声A31を応答処理装置100に対して入力する(ステップS31)。応答処理装置100は、ユーザが発した音声A31を入力情報として受け付ける。
図3Aの例では、音声A31を受け付けた応答処理装置100は、同一又は類似の入力情報に対して、過去にユーザがどのような応答や、どのエージェント10を選択したかを示したユーザの選択履歴A32を参照する(ステップS32)。具体的には、応答処理装置100は、ユーザが過去に選択した応答の種類(音楽の再生であるか、ニュースの再生であるか等)や、各エージェント10を選択した回数や頻度や割合等を参照する。
図3Aに続く処理を、図3Bを用いて説明する。図3Bは、第1の実施形態に係る応答処理の第1のバリエーションを示す図(2)である。
ステップS32でユーザの選択履歴A32を参照した応答処理装置100は、音声A31のような入力情報を受け付けた場合に、ユーザがどのような応答を選択する傾向にあるか、あるいは、ユーザがどのエージェント10を選択する傾向にあるかを判定する。そして、応答処理装置100は、各エージェント10が生成した応答を取得したのち、ユーザに複数の応答を提示することなく、過去のユーザの選択履歴に基づいて、どの応答を出力するか、すなわち、どのエージェント10に応答を出力させるかを決定する(ステップS33)。
図3Bの例では、応答処理装置100は、ユーザの過去の選択履歴に基づいて、ユーザがエージェント10Aの生成した応答を選択する確率が高いと判定したものとする。この場合、応答処理装置100は、各エージェント10が生成した応答を提示することなく、エージェント10Aが生成した応答を出力する旨を示す音声A33をユーザに出力する。
そして、応答処理装置100は、エージェント10Aに対して、生成した応答を出力するよう要求する(ステップS34)。エージェント10Aは、要求に応じて、自身が生成した応答である「歌手Aの「卒業」の再生」を実行する。
このように、応答処理装置100は、ユーザの過去の選択履歴に基づいて、各エージェント10の生成した応答を評価することにより、ユーザに適する応答を自動的に選択してもよい。これにより、ユーザは、わざわざ複数の応答の提示を受けずとも、自身の傾向や好みに沿った応答を出力させることができるため、効率のよい対話処理を享受することができる。
なお、応答処理装置100は、ユーザがどのエージェント10を好むかといった傾向に沿って出力する応答を選択してもよいし、各エージェント10が生成した応答の種類と、ユーザがどのような応答の種類を好むかといった傾向に沿って出力する応答を選択してもよい。
図3Bに続く処理を、図3Cを用いて説明する。図3Cは、第1の実施形態に係る応答処理の第1のバリエーションを示す図(3)である。
図3Cの例では、応答処理装置100が自動的に選択した応答を視聴したユーザが、他の応答の内容を知りたいと所望した状況を示す。このとき、ユーザは、例えば、「他のは?」といった音声A34を応答処理装置100に入力する(ステップS35)。
応答処理装置100は、音声A34のような、応答やエージェント10を選択する意図を示す情報を受け付けた場合、当該ユーザの意図に沿った処理を行う。なお、以下では、音声A34のような、応答やエージェント10を選択するような特定の意図を示す要求を「特定コマンド」と称する場合がある。特定コマンドは、例えば、予め応答処理装置100に登録されていてもよいし、ユーザから個別に登録を受け付けてもよい。
応答処理装置100は、音声A34に含まれる特定コマンドに応じた処理を実行する(ステップS36)。例えば、音声A34に含まれる特定コマンドは、「他のエージェント10が生成した応答の提示」を意図するものである。この場合、応答処理装置100は、エージェント10A以外のエージェント10が生成した応答をユーザに提示する。
例えば、応答処理装置100は、音声A31を受け付けた時点で各エージェント10から取得した応答であって、保持しておいた応答を読み出す。あるいは、応答処理装置100は、あらためて音声A31に対応するコマンドを、エージェント10B、エージェント10C、及びエージェント10Dに送信し、各々が生成した応答を取得してもよい(ステップS37)。
そして、応答処理装置100は、エージェント10B、エージェント10C、及びエージェント10Dが生成した応答を提示するための音声A35を生成する(ステップS38)。音声A35には、エージェント10B、エージェント10C、及びエージェント10Dが生成した応答の内容を示す音声が含まれる。応答処理装置100は、生成した音声A35をユーザに対して出力する。
図3Cに続く処理を、図3Dを用いて説明する。図3Dは、第1の実施形態に係る応答処理の第1のバリエーションを示す図(4)である。
図3Dの例では、音声A35を確認したユーザが、他の応答の内容を視聴したいと所望した状況を示す。このとき、ユーザは、例えば、「次ので」といった音声A36を応答処理装置100に入力する(ステップS39)。
音声A36は、「現在出力中のエージェント10の次のエージェント10に出力元を変更する」ことを示した特定コマンドであるものとする。この場合、応答処理装置100は、特定コマンドの意図に沿って、歌手Aの「卒業」を出力中のエージェント10Aから、出力元をエージェント10Bに変更するよう制御する。また、応答処理装置100は、出力元をエージェント10Bに変更する旨を示す音声A37をユーザに対して出力する(ステップS40)。
その後、応答処理装置100は、エージェント10Aに対して出力中の応答の停止を要求するとともに、エージェント10Bに対して応答を出力するよう要求する(ステップS41)。
このように、ユーザは、自身が所望しない応答が出力された場合であっても、特定コマンドのような簡易な操作を行うのみで、自身が所望する応答を出力させることができる。
次に、図4を用いて、応答処理の異なるバリエーションについて説明する。図4Aは、第1の実施形態に係る応答処理の第2のバリエーションを示す図(1)である。
図4Aの例では、図2A及び図2Bと同様の対話が応答処理装置100とユーザの間で行われ、音声A12と同様の内容である音声A51が応答処理装置100から提示された状況を示す(ステップS51)。
このとき、ユーザは、音声A51によって提示された内容に自身が所望する内容が含まれていないと判断したものとする。この場合、ユーザは、「他のは?」といった音声A52を応答処理装置100に入力する(ステップS52)。
図4Aに続く処理を、図4Bを用いて説明する。図4Bは、第1の実施形態に係る応答処理の第2のバリエーションを示す図(2)である。
応答処理装置100は、音声A52を受け付け、音声A52に含まれる特定コマンドを実行する。上記のように、音声A52に含まれる特定コマンドは、「他のエージェント10が生成した応答の出力」を要求するものであるが、図4Aでは、応答処理装置100は、連携する全てのエージェント10の応答を提示している。
この場合、応答処理装置100は、ユーザが満足する応答が提示した応答に存在しないと判定する。そして、応答処理装置100は、各エージェント10に対して、ユーザの要求に対する応答を生成するための再検索処理を実行させる。このとき、応答処理装置100は、ユーザに対して、各エージェント10に再検索を実行させる旨を示す音声A53を出力する。
また、応答処理装置100は、入力情報に対して生成された応答の内容と、全ての応答が選択されなかった旨を示すフィードバックA54を生成する(ステップS53)。そして、応答処理装置100は、フィードバックA54とともに、再検索の要求を各エージェント10に送信する(ステップS54)。
このように、応答処理装置100は、各エージェント10が生成した応答の内容と、全ての応答が選択されなかったことを示すフィードバックA54とともに、再検索の要求を各エージェント10に送信する。これにより、各エージェント10は、自装置が生成した応答に加えて、他のエージェント10が生成した応答も不適切であることを認識したうえで再検索を実行できる。これにより、ユーザは、個別のエージェント10に再検索を実行させるよりも、自身が所望する応答を効率良く得ることができる。
次に、図5を用いて、応答処理の異なるバリエーションについて説明する。図5は、第1の実施形態に係る応答処理の第3のバリエーションを示す図である。
図5の例では、図2Aで示した音声A11と同様の入力情報を応答処理装置100が受け付け、各エージェント10に応答を生成させた場合に、全てのエージェント10が同じ応答の内容を提示した状況を示す。
この場合、応答処理装置100は、全てのエージェント10が同じ応答を生成した旨を示す音声A61をユーザに対して提示する(ステップS61)。
この場合、ユーザは、特定のエージェント10で応答を出力させる旨を応答処理装置100に入力する。例えば、ユーザは、「エージェント10Aでお願い」といった音声A62を応答処理装置100に入力する(ステップS62)。
応答処理装置100は、音声A62に含まれる特定コマンド(「エージェント10Aに応答を出力させる」)に基づく処理を実行する(ステップS63)。具体的には、応答処理装置100は、「エージェント10Aに実行させます」というガイドとなる音声A63を生成し、出力する。さらに、応答処理装置100は、エージェント10Aに対して、生成した応答を出力するよう要求する(ステップS64)。
このように、応答処理装置100は、各エージェント10から得られた応答が同一の内容である場合、同じ応答が生成された旨を示す音声A61のような出力を生成してもよい。これにより、応答処理装置100は、簡潔な情報をユーザに伝達することができる。
次に、図6を用いて、応答処理の異なるバリエーションについて説明する。図6Aは、第1の実施形態に係る応答処理の第4のバリエーションを示す図(1)である。
図6の例では、図5で示した例と同様に、応答処理装置100が、ある入力情報に基づいて各エージェント10に応答を生成させた場合に、全てのエージェント10が同じ応答の内容を提示した状況を示す。
この場合、応答処理装置100は、全てのエージェント10が同じ応答を生成した旨を示す音声A71をユーザに対して提示する(ステップS71)。
このとき、ユーザは、音声A71によって提示された内容に自身が所望する内容が含まれていないと判断したものとする。この場合、ユーザは、「次ので」といった音声A72を応答処理装置100に入力する(ステップS72)。
応答処理装置100は、音声A72を受け付け、音声A72に含まれる特定コマンドを実行する。例えば、音声A72に含まれる特定コマンドは、「出力中のエージェント10に代えて、次のエージェント10が生成した応答の出力」を要求するものであるが、図6Aでは、応答処理装置100は、連携する全てのエージェント10の応答を既に提示している。
このため、応答処理装置100は、連携する全てのエージェント10が同じ内容の応答を生成した旨を示す音声A73を生成する(ステップS73)。そして、応答処理装置100は、生成した音声A73をユーザに対して出力する。
図6Aに続く処理を、図6Bを用いて説明する。図6Bは、第1の実施形態に係る応答処理の第4のバリエーションを示す図(2)である。
図6Bの例では、音声A73を確認したユーザが、他の応答の内容を視聴したいと所望した状況を示す。このとき、ユーザは、例えば、「他ので」といった音声A74を応答処理装置100に入力する(ステップS74)。
応答処理装置100は、音声A74を受け付け、音声A74に含まれる特定コマンドを実行する。上記のように、音声A74に含まれる特定コマンドは、「他のエージェント10が生成した応答の出力」を要求するものであるが、図6Aでは、応答処理装置100は、連携する全てのエージェント10の応答を提示している。
この場合、応答処理装置100は、ユーザが満足する応答が提示した応答に存在しないと判定する。そして、応答処理装置100は、各エージェント10に対して、ユーザの要求に対する応答を生成するための再検索処理を実行させる。このとき、応答処理装置100は、ユーザに対して、各エージェント10に再検索を実行させる旨を示す音声A75を出力する(ステップS75)。
そして、応答処理装置100は、図4Bで示した例と同様、入力情報に対して生成された応答の内容と、全ての応答が選択されなかった旨を示すフィードバックとともに、再検索の要求を各エージェント10に送信する(ステップS76)。
このように、応答処理装置100は、各エージェント10が生成した応答の内容や、既にユーザに提示した内容に応じて、特定コマンドの内容を適宜解釈し、状況に即した情報処理を実行する。これにより、ユーザは、簡潔な対話のみで、自身が所望する応答を効率良く得ることができる。
以上、図1乃至図6で示したように、第1の実施形態に係る応答処理装置100は、各エージェント10が応答を生成する契機となる情報である入力情報をユーザから受け付ける。そして、応答処理装置100は、入力情報に対して複数のエージェント10が生成した各々の応答をユーザに提示する。さらに、応答処理装置100は、提示された応答に対するユーザの反応を複数のエージェント10に送信する。
このように、応答処理装置100が複数のエージェント10とユーザとの対話を調停するフロントエンドの機能を果たすことにより、ユーザは、応答処理装置100とのみ対話することで、複数のエージェント10が取得する情報や、出力する応答を得ることができる。また、応答処理装置100は、提示された応答に対するユーザの反応をフィードバックとして各エージェント10に送信することで、複数のエージェント10を効率良く学習させることができる。これにより、応答処理装置100は、ユーザの利便性を向上させることができる。
[1-4.第1の実施形態に係る応答処理システムの構成]
続いて、上述した第1の実施形態に係る応答処理装置100等の構成について、図7を用いて説明する。図7は、本開示の第1の実施形態に係る応答処理システム1の構成例を示す図である。
図7に示すように、応答処理システム1は、エージェント10と、応答処理装置100と、外部サーバ200とを含む。エージェント10、応答処理装置100及び外部サーバ200は、図7に図示するネットワークN(例えば、インターネット)を介して、有線又は無線により通信可能に接続される。なお、図7での図示は省略するが、応答処理システム1は、複数台のエージェント10や外部サーバ200を含んでもよい。
エージェント10は、ユーザに利用される情報処理端末である。エージェント10は、ユーザとの対話を行ったり、ユーザが発した音声や動作等に対する応答を生成したりする。なお、エージェント10は、後述する応答処理装置100が備える構成の全て又は一部を備えていてもよい。
外部サーバ200は、各種サービスを提供するサービスサーバである。例えば、外部サーバ200は、エージェント10や応答処理装置100の要求に従い、音楽サービスや、天気情報や、交通情報等を提供する。
応答処理装置100は、本開示に係る応答処理を実行する情報処理端末である。図7に示すように、応答処理装置100は、センサ20と、入力部21と、通信部22と、記憶部30と、受付部40と、提示部50と、送信部54と、出力部60とを有する。
センサ20は、各種情報を検知するためのデバイスである。センサ20は、例えば、ユーザが発話した音声を集音する音声入力センサ20Aを含む。音声入力センサ20Aは、例えば、マイクロフォンである。また、センサ20は、例えば、画像入力センサ20Bを含む。画像入力センサ20Bは、例えば、ユーザの動作や表情、ユーザの自宅内の状況等を撮影するためのカメラである。
また、センサ20は、ユーザが応答処理装置100に触れたことを検知するタッチセンサや、加速度センサやジャイロセンサ等を含んでもよい。また、センサ20は、応答処理装置100の現在位置を検知するセンサを含んでもよい。例えば、センサ20は、GPS(Global Positioning System)衛星から送出される電波を受信し、受信した電波に基づいて応答処理装置100の現在位置を示す位置情報(例えば、緯度及び経度)を検知してもよい。
また、センサ20は、外部装置が発する電波を検知する電波センサや、電磁波を検知する電磁波センサ等を含んでもよい。また、センサ20は、応答処理装置100が置かれた環境を検知してもよい。具体的には、センサ20は、応答処理装置100の周囲の照度を検知する照度センサや、応答処理装置100の周囲の湿度を検知する湿度センサや、応答処理装置100の所在位置における磁場を検知する地磁気センサ等を含んでもよい。
また、センサ20は、必ずしも応答処理装置100の内部に備えられなくてもよい。例えば、センサ20は、通信等を用いてセンシングした情報を応答処理装置100に送信することが可能であれば、応答処理装置100の外部に設置されてもよい。
入力部21は、ユーザから各種操作を受け付けるためのデバイスである。例えば、入力部21は、キーボードやマウス、タッチパネル等によって実現される。
通信部22は、例えば、NIC(Network Interface Card)等によって実現される。通信部22は、ネットワークNと有線又は無線で接続され、ネットワークNを介して、エージェント10や外部サーバ200等との間で情報の送受信を行う。
記憶部30は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。記憶部30は、ユーザ情報テーブル31と、エージェントテーブル32と、コマンドテーブル33と、履歴テーブル34とを有する。以下、各データテーブルについて順に説明する。
ユーザ情報テーブル31は、応答処理装置100及びエージェント10を利用するユーザに関する情報を記憶する。図8に、第1の実施形態に係るユーザ情報テーブル31の一例を示す。図8は、本開示の第1の実施形態に係るユーザ情報テーブル31の一例を示す図である。図8に示した例では、ユーザ情報テーブル31は、「ユーザID」、「ユーザ属性情報」、「履歴情報」といった項目を有する。
「ユーザID」は、ユーザを識別する識別情報を示す。「ユーザ属性情報」は、応答処理装置100の利用の際にユーザから登録される、ユーザの各種情報を示す。図8に示した例では、ユーザ属性情報の項目を「F01」のように概念的に記載しているが、実際には、ユーザ属性情報には、ユーザの年齢や性別、居住地、家族構成等の属性情報(ユーザプロファイル)が含まれる。また、ユーザ属性情報には、例えば、ユーザに視覚障碍があること等、出力する情報の種別を選択するために要する情報が含まれてもよい。例えば、ユーザ属性情報に視覚障碍があることが登録されている場合、応答処理装置100は、通常であれば画面に表示される応答の内容を、音声に変換して出力してもよい。このような変換は、例えばTTS(text-to-speech)処理等の既知の技術が用いられてもよい。
「履歴情報」は、ユーザの応答処理装置100の利用履歴を示す。図8に示した例では、履歴情報の項目を「G01」のように概念的に記載しているが、実際には、履歴情報には、ユーザが応答処理装置100に質問した内容や、聞き返しの履歴や、出力された応答の履歴等の各種情報が含まれる。また、履歴情報には、ユーザを音声で識別するための声紋情報や波形情報等が含まれてもよい。また、図8に示した「履歴情報」には、ユーザの過去の行動を示す情報が含まれてもよい。なお、履歴情報の詳細については、図11を用いて後述する。
すなわち、図8に示した例では、ユーザIDが「U01」で識別されるユーザは、ユーザ属性情報が「F01」であり、履歴情報が「G01」であることを示している。
次に、エージェントテーブル32について説明する。エージェントテーブル32は、応答処理装置100と連携するエージェント10に関する情報を記憶する。
図9に、第1の実施形態に係るエージェントテーブル32の一例を示す。図9は、本開示の第1の実施形態に係るエージェントテーブル32の一例を示す図である。図9に示した例では、エージェントテーブル32は、「エージェントID」、「機器情報」、「入力フォーマット」、「出力フォーマット」、といった項目を有する。
「エージェントID」は、エージェント10を識別する識別情報を示す。なお、明細書中では、エージェントIDとエージェント10の参照符号は共通するものとする。例えば、エージェントIDが「10A」で識別されるエージェント10とは、「エージェント10A」を意味する。
「機器情報」は、エージェント10の情報機器としての情報を示す。図9では、情報機器の項目を「C01」のように概念的に記載しているが、実際には、情報機器の項目には、エージェント10の情報機器の種別(スマートスピーカー、スマートフォン、あるいはロボット等)や、エージェント10が実行可能な機能の種別等が記憶される。
「入力フォーマット」は、エージェント10に入力される情報がどのような形式で入力されるかといった情報を示す。図9に示した例では、入力フォーマットの項目を「D01」のように概念的に記載しているが、実際には、入力フォーマットの項目には、エージェント10が処理可能なデータ(音声や画像等)の音声フォーマットの種類(「mp3」や「wav」等)や、認識可能なコマンドのファイルフォーマット等が記憶される。
「出力フォーマット」は、エージェント10が出力可能なデータのフォーマットを示す。図9に示した例では、出力フォーマットの項目を「E01」のように概念的に記載しているが、実際には、出力フォーマットの項目には、音声出力が可能か、画像出力が可能か、動画再生が可能かといった、エージェント10が出力することが可能な態様が具体的に記憶される。
すなわち、図9に示した例では、エージェントID「10A」で識別されるエージェント10Aは、機器情報が「C01」であり、入力フォーマットが「D01」であり、出力フォーマットが「E01」であることを示している。
次に、コマンドテーブル33について説明する。コマンドテーブル33は、応答処理装置100が認識する特定コマンドに関する情報を記憶する。
図10に、第1の実施形態に係るコマンドテーブル33の一例を示す。図10は、本開示の第1の実施形態に係るコマンドテーブル33の一例を示す図である。図10に示した例では、コマンドテーブル33は、「コマンド内容」、「特定コマンド文」、「コマンド解析結果」といった項目を有する。
「コマンド内容」は、特定コマンドが入力された場合に、応答処理装置100が実行する処理内容を示す。「特定コマンド文」は、特定コマンドに対応する文(音声やテキスト)を示す。「コマンド解析結果」は、特定コマンドの解析結果を示す。
すなわち、図10に示した例では、「他の結果を読み上げる」というコマンド内容に対応する文は、「他のは」や、「他の教えて」や、「他の」といった音声やテキストであり、それらの文は、「READ_RESULTS」といった命令(処理内容)として解析されることを示している。
なお、特定コマンド文に対応する音声やテキストは、図10に示した例に限らず、ユーザ本人による登録等に基づいて、適宜更新されてもよい。
次に、履歴テーブル34について説明する。履歴テーブル34は、応答処理装置100とユーザとのやりとりの履歴情報を記憶する。
図11は、本開示の第1の実施形態に係る履歴テーブル34の一例を示す図である。図11に示した例では、履歴テーブル34は、「入力情報ID」、「入力内容」、「エージェント選択履歴」、「出力された内容」といった項目を有する。
「入力情報ID」は、入力情報を識別する識別情報を示す。「入力内容」は、入力情報の具体的な内容を示す。図11では、入力内容の項目を「Y01」のように概念的に記載しているが、実際には、入力内容の項目には、ユーザが発した音声(質問等)を解析した結果や、解析結果から生成されたコマンド等が記憶される。
「エージェント選択履歴」は、ある入力情報に対して、ユーザが選択したエージェント10の識別情報や、各エージェント10を選択した回数や割合、頻度等を示す。「出力された内容」は、ある入力情報に対して、実際にエージェント10や応答処理装置100から出力された内容や、出力された情報の種別(音楽であるか、検索結果であるか等)や、各種の内容が実際に出力された回数や頻度等を示す。
すなわち、図11に示した例では、入力情報ID「X01」で識別される入力情報の内容は「Y01」であり、その入力情報に対してユーザが選択したエージェント10の履歴は「H01」であり、出力された内容の履歴は「I01」であることを示している。
図7に戻って説明を続ける。受付部40、提示部50及び送信部54は、応答処理装置100が実行する情報処理を実行する処理部である。受付部40、提示部50及び及び送信部54は、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)、GPU(Graphics Processing Unit)等によって、応答処理装置100内部に記憶されたプログラム(例えば、本開示に係る応答処理プログラム)がRAM(Random Access Memory)等を作業領域として実行されることにより実現される。また、受付部40、提示部50及び送信部54は、コントローラ(controller)であり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現されてもよい。
受付部40は、各種情報を受け付ける処理部である。図7に示すように、受付部40は、検知部41と、登録部42と、取得部43とを含む。
検知部41は、センサ20を介して、各種情報を検知する。例えば、検知部41は、センサ20の一例である音声入力センサ20Aを介して、ユーザが発話した音声を検知する。また、検知部41は、画像入力センサ20Bや加速度センサ、赤外線センサ等を介して、ユーザの顔情報、ユーザの身体の向き、傾き、動きや移動速度等、ユーザの動作に関する各種情報を検知してもよい。すなわち、検知部41は、センサ20を介して、位置情報、加速度、温度、重力、回転(角速度)、照度、地磁気、圧力、近接、湿度、回転ベクトルといった、種々の物理量をコンテキストとして検知してもよい。
登録部42は、入力部21を介して、ユーザからの登録を受け付ける。例えば、登録部42は、タッチパネルやキーボードを介して、特定コマンドに関する登録をユーザから受け付ける。
また、登録部42は、ユーザのスケジュール等の登録を受け付けてもよい。例えば、登録部42は、応答処理装置100に組み込まれたアプリケーション機能を利用して、スケジュール登録をユーザから受け付ける。
取得部43は、各種情報を取得する。例えば、取得部43は、各エージェント10の機器情報や、各エージェント10が生成した応答に関する情報等を取得する。
また、取得部43は、通信に関するコンテキストを受信してもよい。例えば、取得部43は、応答処理装置100と、各エージェント10や各種機器(ネットワーク上のサーバや、自宅内の家電等)との接続状況をコンテキストとして受信してもよい。各種機器との接続状況とは、例えば、相互通信が確立しているか否かを示す情報や、通信に利用している通信規格等である。
受付部40は、上記各処理部を制御することにより、各種情報を受け付ける。例えば、受付部40は、エージェント10が応答を生成する契機となる情報である入力情報をユーザから取得する。
例えば、受付部40は、入力情報として、ユーザが発した音声情報を取得する。具体的には、受付部40は、「「卒業」が聞きたい」などのユーザの発話を取得し、当該発話に含まれる何らかの意図を入力情報として取得する。
あるいは、受付部40は、入力情報として、ユーザの行動を検知した検知情報を取得してもよい。検知情報とは、検知部41がセンサ20を介して検知した情報である。具体的には、検知情報とは、ユーザが応答処理装置100のカメラを見たことを示す情報や、ユーザが自宅の部屋から玄関へ移動したことを示す情報等、応答処理装置100が応答を生成する契機となりうるユーザの行動である。
また、受付部40は、入力情報として、ユーザから入力されるテキストを受け付けてもよい。具体的には、受付部40は、入力部21を介して、「「卒業」が聞きたい」といったユーザから入力されたテキストを取得し、当該テキストに含まれる何らかの意図を入力情報として取得する。
また、受付部40は、後述する提示部50によって各エージェント10が生成した応答が提示され、提示された各々の応答のうちいずれかの応答が出力されたのち、出力する応答を変更する旨を示す特定コマンドをユーザから受け付ける。例えば、受付部40は、特定コマンドとして、「次のは」といったユーザの発話を受け付ける。この場合、提示部50は、特定コマンドに対応した情報処理(例えば、出力中のエージェント10の次に登録されている他のエージェント10応答を出力させるよう制御する等)を実行する。
また、受付部40は、後述する提示部50によって各エージェント10が生成した応答が提示されたのち、提示された応答に対して異なる応答を要求する旨を示す特定コマンドをユーザから受け付けてもよい。例えば、受付部40は、特定コマンドとして、「他のは」といったユーザの発話を受け付ける。この場合、提示部50は、特定コマンドに対応した情報処理(例えば、各エージェント10に再検索を実行させるよう制御する等)を実行する。
また、受付部40は、各種のコンテキストに関する情報を取得してもよい。コンテキストとは、応答処理装置100が応答を生成する際の各種状況を示す情報である。なお、コンテキストには、ユーザが応答処理装置100を見たことを示す行動情報等の「ユーザの状況を示す情報」が含まれるため、コンテキストは、入力情報にもなりうる。
例えば、受付部40は、コンテキストとして、ユーザによって予め登録されたユーザの属性情報を取得してもよい。具体的には、受付部40は、ユーザの性別や年齢、居住地等の情報を取得する。また、受付部40は、属性情報として、ユーザが視覚障碍を有すること等、ユーザの特徴を示す情報を取得してもよい。また、受付部40は、応答処理装置100の利用履歴等に基づいて、ユーザの趣味嗜好等の情報をコンテキストとして取得してもよい。
また、受付部40は、コンテキストとして、ユーザの位置を示す位置情報を取得してもよい。位置情報とは、具体的な経度緯度等の位置を示す情報であってもよいし、ユーザが自宅内のどの部屋にいるか等を示す情報であってもよい。例えば、位置情報は、ユーザが自宅内のリビングにいるか、寝室にいるか、子供部屋にいるかといった、ユーザの所在地を示した情報であってもよい。あるいは、位置情報は、ユーザの外出先を示す具体的な場所の情報であってもよい。また、ユーザの外出先を示す情報には、ユーザが電車に乗っているか、自動車を運転しているか、あるいは、学校や会社に出かけていること等の状況を示す情報が含まれてもよい。受付部40は、例えば、ユーザが所有するスマートフォン等の携帯端末と相互に通信を行うことにより、これらの情報を取得してもよい。
また、受付部40は、コンテキストとして、ユーザの行動もしくは感情を推定した推定情報を取得してもよい。例えば、受付部40は、コンテキストとして、ユーザの行動から推定される情報であって、ユーザの将来の行動予測を示した情報である行動予測情報を取得する。具体的には、受付部40は、ユーザが自宅の部屋から玄関へ移動したことを示す行動から推定される情報として、「ユーザが外出しようとしている」といった行動予測情報を取得する。例えば、受付部40は、「ユーザが外出しようとしている」といった行動予測情報を取得した場合、当該情報に基づいて、「外出」といったタグ付けされたコンテキストを取得する。
また、受付部40は、ユーザの行動として、ユーザが予め登録したスケジュール情報を取得してもよい。具体的には、受付部40は、ユーザが発話した時刻から所定期間以内(例えば1日以内等)の予定時刻で登録されたスケジュール情報を取得する。これにより、受付部40は、ある時刻にユーザがどこに出かけようとしているかといった情報等を推定することができる。
また、受付部40は、センサ20で捉えられたユーザの移動速度や、ユーザが所在する位置や、ユーザの発話速度等を検知すること等によりユーザの状況や感情を推定してもよい。例えば、受付部40は、通常のユーザの発話速度よりも速い発話速度が観測された場合、「ユーザが急いでいる」という状況や感情を推定してもよい。例えば、応答処理装置100は、ユーザが通常よりも急いでいる状況にあることを示すコンテキストが取得された場合、より手短な応答を出力する等の調整を行うことができる。
なお、上記で示したコンテキストは一例であり、ユーザや応答処理装置100が置かれた状況を示すあらゆる情報がコンテキストとなりうる。例えば、受付部40は、センサ20を介して取得される、応答処理装置100の位置情報、加速度、温度、重力、回転(角速度)、照度、地磁気、圧力、近接、湿度、回転ベクトルといった、種々の物理量をコンテキストとして取得してもよい。また、受付部40は、内蔵する通信機能を利用して、各種装置との接続状況(例えば、通信の確立に関する情報や、利用している通信規格)などを、コンテキストとして取得してもよい。
また、コンテキストには、ユーザと他のユーザや、ユーザと応答処理装置100とが交わしている対話に関する情報が含まれてもよい。例えば、コンテキストには、ユーザが交わしている対話の文脈を示す対話文脈情報、対話のドメイン(天気、ニュース、電車運行情報等)、ユーザ発話の意図や属性情報等が含まれてもよい。
また、コンテキストには、対話が行われている際の日時情報が含まれてもよい。具体的には、日時情報とは、日付、時間、曜日、祝日特性(クリスマス等)、時間帯(朝、昼、夜、夜中)等の情報である。
また、受付部40は、ユーザが行っている特定の家事の情報や、視聴しているテレビ番組の内容や、何を食べているかを示す情報や、特定の人物と会話をしていること等、ユーザの状況を示す種々の情報をコンテキストとして取得してもよい。
また、受付部40は、自宅内に置かれた家電(IoT機器等)との相互通信により、どの家電がアクティブであるか否か(例えば、電源がオンであるかオフであるか)、どの家電がどのような処理を実行しているか、といった情報を取得してもよい。
また、受付部40は、外部サービスとの相互通信により、ユーザの生活圏における交通状況や気象情報等をコンテキストとして取得してもよい。受付部40は、取得した各情報をユーザ情報テーブル31等に格納する。また、受付部40は、ユーザ情報テーブル31やエージェントテーブル32を参照し、処理に要する情報を適宜取得してもよい。
続いて、提示部50について説明する。図7に示すように、提示部50は、解析部51と、生成部52と、出力制御部53とを含む。
例えば、解析部51は、選択した複数のエージェント10の各々が認識できるよう、入力情報を解析する。生成部52は、解析部51が解析した内容に基づいて、入力情報に対応するコマンドを生成する。また、生成部52は、生成したコマンドを送信部54に送信し、各エージェント10に送信させる。出力制御部53は、エージェント10が生成した応答の内容を出力したり、エージェント10に応答を出力させるよう制御したりする。
すなわち、提示部50は、解析部51、生成部52及び出力制御部53が実行する処理により得られる情報に基づき、受付部40によって受け付けられた入力情報に対して複数のエージェント10が生成した各々の応答をユーザに提示する。
例えば、提示部50は、入力情報に対して複数のエージェント10が生成した各々の応答の内容を含む音声を用いて、ユーザに提示する。
また、提示部50は、ユーザに提示された各々の応答のうちユーザから選択された応答を、選択された応答を生成したエージェント10が出力するよう制御する。例えば、提示部50は、ユーザから「エージェント10Aで」といった、出力先を指定する特定コマンドが発せられた場合に、エージェント10Aに対して、実際に生成した応答を出力するようリクエストを送信する。これにより、提示部50は、ユーザが所望する応答がエージェント10Aから出力するよう制御することができる。
なお、提示部50は、提示された各々の応答のうちユーザから選択された応答を、選択された応答を生成したエージェント10から取得し、取得した応答を自装置で出力してもよい。すなわち、提示部50は、エージェント10Aが生成した応答(例えば、「卒業」という音楽の再生)をエージェント10Aに出力させるのではなく、当該応答のデータ(例えば、「卒業」という音楽のデータ)を取得し、自装置の出力部60を用いて出力してもよい。これにより、提示部50は、例えばエージェント10Aが比較的ユーザから離れた位置に設置されている場合等に、エージェント10Aに代えてユーザが所望する応答を出力することができるので、ユーザの利便性を向上させることができる。
また、提示部50は、受付部40によって受け付けられた特定コマンドに対応する処理を実行する。例えば、提示部50は、提示された各々の応答のうちいずれかの応答が出力されたのち、出力する応答を変更する旨を示す特定コマンドをユーザから受け付けた場合、特定コマンドに基づいて、出力中の応答を異なる応答へ変更する。
なお、提示部50は、入力情報に対して複数のエージェント10が生成した各々の応答に同一の内容が含まれる場合、同一の内容を含む応答をまとめて提示するようにしてもよい。これにより、提示部50は、例えば「次ので」といった特定コマンドをユーザから受け付けた場合に、同一の内容の応答が何度もユーザに対して出力されるような事態を回避することができる。
また、提示部50は、提示された応答に対して異なる応答を要求する旨を示す特定コマンドをユーザから受け付けた場合、特定コマンドに基づいて、入力情報に対する再検索の要求を複数のエージェント10に送信してもよい。
また、提示部50は、履歴テーブル34を参照し、ユーザの過去の行動に基づいて、出力する応答を選択してもよい。具体的には、提示部50は、過去に複数のエージェント10が生成した応答をユーザが選択した履歴に基づいて、入力情報に対して複数のエージェント10が生成した各々の応答のうち、一つの応答を選択してユーザに対して出力する。
例えば、ある情報を質問したユーザに対して応答を出力した際に、応答処理装置100は、ユーザから「ほかの情報をおしえて」などの反応を受ける可能性がある。この場合、応答処理装置100は、前に出力した情報はユーザが欲していた情報でないと判定する。一方、応答処理装置100は、次に出力した情報がユーザから受け入れられた場合、当該情報がユーザの欲していた情報と判定する。
この場合、応答処理装置100は、次の機会からは、ユーザから同様の質問を受けた場合、ユーザが欲していた応答を生成することのできるエージェント10を優先的に選択するようにしてもよい。また、応答処理装置100は、例えば、あるエージェント10から出力されることをユーザが望んでいるような傾向がある場合(ユーザが出力先に特定のエージェント10を指定することが統計的に多い場合等)、当該エージェント10から優先的に応答が出力されるように調整を行ってもよい。このように、応答処理装置100は、ユーザの指示や操作履歴に基づいて学習を行うことにより、よりユーザの要望に応えることのできる応答処理を実行することができる。また、これにより、ユーザは、応答処理装置100に対して指示を出さずとも、自身が所望する応答を出力させることができる。
また、提示部50は、複数のエージェント10の各々が入力情報に対する応答を生成することができるか否かを判定し、入力情報に対する応答を生成することができないと判定されたエージェント10以外のエージェント10を、当該入力情報に対応した応答を生成するエージェント10として選択してもよい。すなわち、提示部50は、エージェントテーブル32を参照し、応答を生成することができると想定されるエージェント10を選択するようにしてもよい。これにより、提示部50は、全てのエージェント10に無作為に要求を送信するような手間を省くことができる。
なお、上述した解析部51は、受付部40によって取得された情報の意味理解処理を行う。具体的には、解析部51は、受付部40によって音声情報等について、自動音声認識(ASR)処理や自然言語理解(NLU)処理を行う。例えば、解析部51は、ASRやNLUを経て、取得した音声を形態素に分解したり、各形態素がどのような意図や属性を有する要素であるかを判定したりする。
解析部51は、入力情報の解析の結果、ユーザの意図が理解不能であった場合、その旨を出力制御部53に渡してもよい。例えば、解析部51は、解析の結果、ユーザの発話から推定することのできない情報が含まれている場合、その内容を出力制御部53に渡す。この場合、出力制御部53は、不明な情報について、ユーザにもう一度正確に発話してもらうことを要求するような応答を生成してもよい。
送信部54は、各種情報を送信する。例えば、送信部54は、提示部50によって提示された応答に対するユーザの反応(フィードバック)を複数のエージェント10に送信する。
具体的には、送信部54は、ユーザの反応として、提示された各々の応答のうちユーザから選択された応答に関する情報を複数のエージェント10に送信する。
例えば、送信部54は、ユーザから選択された応答に関する情報として、ユーザから選択された応答の内容、もしくは、ユーザから選択された応答を生成したエージェント10の識別情報等を複数のエージェント10に送信する。
また、送信部54は、ユーザの反応として、提示された各々の応答のうちいずれもがユーザから選択されなかったことを示す情報を複数のエージェント10に送信してもよい。
さらに、送信部54は、提示された各々の応答のうちいずれもがユーザから選択されなかったことを示す情報とともに、各々の応答の内容を複数のエージェント10に送信してもよい。これにより、送信部54は、ユーザから選択された応答や、選択されなかった応答の内容を各エージェント10に伝達できるので、エージェント10の学習を効率良く進めることができる。
なお、送信部54は、ユーザの反応のみならず、提示部50によって生成されたコマンドや、応答を出力させるためのリクエスト等、各種情報をエージェント10に送信する。例えば、送信部54は、ユーザから特定コマンドを受け付けた場合、特定コマンドに対応するリクエスト(例えば、特定コマンドに基づいて、入力情報に対して再検索を実行させるリクエスト等)をエージェント10に送信してもよい。
出力部60は、種々の情報を出力するための機構である。例えば、出力部60は、スピーカやディスプレイである。例えば、出力部60は、出力制御部53によって応答が出力される場合に、出力先となるエージェント10の名称等をユーザに対して音声出力する。また、出力部60は、画像データをディスプレイに出力してもよい。また、出力部60は、応答処理装置100が自装置で応答を生成した場合、生成した応答を音声もしくは画像等で出力する。なお、出力部60は、生成された音声データを文字認識してディスプレイに表示する等、種々の態様で応答を出力してもよい。
[1-5.第1の実施形態に係る応答処理の手順]
次に、図12A及び図12Bを用いて、第1の実施形態に係る応答処理の手順について説明する。図12Aは、第1の実施形態に係る処理の流れを示すフローチャートである。
図12Aに示すように、応答処理装置100は、入力情報を受け付けたか否かを判定する(ステップS101)。入力情報を受け付けていない場合(ステップS101;No)、応答処理装置100は、入力情報を受け付けるまで待機する。
一方、入力情報を受け付けた場合(ステップS101;Yes)、応答処理装置100は、入力情報を解析し、入力情報に応じたコマンドを生成する(ステップS102)。具体的には、応答処理装置100は、入力情報を解析し、入力情報に含まれるユーザの意図や、質問の内容等を示したコマンドを生成する。
続いて、応答処理装置100は、生成したコマンドが特定コマンドに該当するか否かを判定する(ステップS103)。特定コマンドでない場合(ステップS103;No)、応答処理装置100は、各エージェント10に、ステップS102で生成したコマンドを送信する(ステップS104)。
その後、応答処理装置100は、送信したコマンドに応じて、各エージェント10から生成された応答の結果を取得する(ステップS105)。このとき、応答処理装置100は、各エージェント10が生成した結果を記憶部30内に一時保存する(ステップS106)。
なお、ステップS103において、生成したコマンドが特定コマンドに該当する場合(ステップS103;Yes)、応答処理装置100は、特定コマンドの内容を判断する(ステップS107)。
その後、応答処理装置100は、ステップS106等で保存された結果に対して、特定コマンドの処理を実行する(ステップS108)。また、応答処理装置100は、各エージェント10へフィードバックを送信する(ステップS109)。
ステップS106又はステップS109を経て、応答処理装置100は、ユーザへのフィードバックを生成する(ステップS110)。例えば、応答処理装置100は、ステップS106を経た場合、各エージェント10が生成した各々の応答を提示するためのフィードバックを生成する。あるいは、応答処理装置100は、ステップS109を経た場合、どのエージェント10から応答を出力させるかを伝達するための音声等のフィードバックを生成する。
続いて、応答処理装置100は、ユーザから選択を受けること等により、応答の出力態様を決定する(ステップS111)。なお、応答の出力態様とは、どの応答を出力させるか、また、どのエージェント10から出力させるかといった、実際の出力の内容をいう。
その後、応答処理装置100は、応答を出力する(ステップS112)。例えば、応答処理装置100は、応答を生成したエージェント10から応答を出力させるよう制御したり、自装置から応答を出力したりする。
このとき、応答処理装置100は、出力された内容等について、各エージェント10にフィードバックを送信する(ステップS113)。その後、応答をユーザに対して出力した応答処理装置100は、ユーザとの対話処理が終了したか否かを判定する(ステップS114)。具体的には、応答処理装置100は、ユーザとの対話に関する一つのセッションが終了したか否かを判定する。
対話処理が終了していない場合(ステップS114;No)、応答処理装置100は、処理をステップS101に戻し、対話処理を継続する。一方、対話処理が終了したと判定した場合(ステップS114;Yes)、応答処理装置100は、処理を終了する。
次に、図12Bを用いて、第1の実施形態に係る応答処理の手順を、処理ブロック図を用いて説明する。図12Bは、第1の実施形態に係る処理の流れを示すブロック図である。
ディスプレイ入力処理111では、応答処理装置100が保持するディスプレイ等を介してユーザ入力を処理する。具体的には、ディスプレイ入力処理111は、タッチパネル式ディスプレイ上に表示されたユーザインターフェイス等を介して、入力された情報をコマンド生成処理115に送る。ディスプレイ入力処理111は、例えば、図7に示す画像入力センサ20Bや検知部41等に対応する。
音声入力処理112は、ユーザの発話による入力を文字情報(テキスト)に変換する処理を行う。音声入力処理112には、雑音などの周囲外音を低減させる信号処理機能が含まれてもよい。音声入力処理112は、入力された情報をユーザ入力解析処理114へ送る。音声入力処理112は、例えば、図7に示す音声入力センサ20Aや検知部41等に対応する。
特定コマンドデータ保持部113は、特定コマンドの種類や、該当する文字列を紐づけて保持する部分となる。なお、特定コマンドの種類や文字列は、ユーザが編集を行うことが可能である。特定コマンドデータ保持部113は、例えば、図7に示すコマンドテーブル33等に対応する。
ユーザ入力解析処理114では、ユーザから受け付けた入力に対して、特定コマンドデータ保持部113を参照し、特定コマンドに該当するか否かを判断する。上記のように、特定コマンドの種類としては、「特定のエージェント10の結果を受け取る」や、「別のエージェント10の結果を聞く」といったものが該当する。すなわち、ユーザ入力解析処理114では、ユーザの音声等を解析し、それらの音声が特定コマンドに該当するか否かを判断する。なお、ユーザ入力解析処理114は、受け付けた入力が特定コマンドに該当しなかった場合には、入力された情報(テキスト等)と共に、特定コマンドが存在しなかった旨(空のコマンド解析結果)をコマンド生成処理115へと送る。ユーザ入力解析処理114は、例えば、図7に示す提示部50や解析部51が実行する処理に対応する。
コマンド生成処理115は、ユーザから入力された情報や、ユーザ入力解析処理114で解析されたコマンド解析結果を元に、各エージェント10へ送信するためのコマンドを生成する。なお、コマンド生成処理115で生成されたコマンドは、コマンド履歴保持部117へも送られ、履歴として保持される。コマンド生成処理115は、例えば、図7に示す提示部50や生成部52が実行する処理に対応する。
通信処理116は、コマンド生成処理115を経て得られたコマンドを、応答処理装置100に接続されている各エージェント10のデータフォーマットに合わせた形式に変換し、変換した情報を送信する。その後、通信処理116は、各エージェント10から出力される結果を取得し、結果管理処理118へと送る。このとき、通信処理116では、取得した応答を、結果保存用の共通フォーマットに変換し、どのエージェント10からどのような結果が得られたかを紐づけて保持できるようにする。
また、通信処理116は、特定コマンドが得られた場合、特定コマンドを結果管理処理118へ送る。また、通信処理116は、結果管理処理118によって管理されている情報を取得し、その内容を各エージェント10にフィードバックとして送信する。このフィードバックが、各エージェント10に対して正の報酬(正例)又は負の報酬(負例)として作用する。通信処理116は、例えば、図7に示す提示部50や出力制御部53、送信部54等が実行する処理に対応する。
コマンド履歴保持部117は、コマンド生成処理115によって発行されたコマンドを時系列で保持する。なお、コマンド履歴保持部117は、受け付けられたコマンドの内容や、コマンドの発行頻度等も算出し、保持してもよい。コマンド履歴保持部117は、例えば、ユーザ情報テーブル31や履歴テーブル34に対応する。
結果管理処理118は、各エージェント10から得られた結果を保持及び管理する。すなわち、ユーザとの対話を経て得られた情報は、一定時間保持され、その後に受け付けられた特定コマンドに応じて、フィードバック生成処理119、もしくは、通信処理116へ送られる。なお、既定された時間が経過した場合、保持されていた結果は、適宜、破棄される。結果管理処理118は、例えば、図7に示す提示部50や生成部52、送信部54等が実行する処理に対応する。
フィードバック生成処理119は、結果管理処理118の保持する情報と、コマンド履歴保持部117の頻度情報を元に、ユーザへのフィードバック内容を生成する。例えば、フィードバック生成処理119は、利用頻度が高いエージェント10の結果を優先的に出力すると判定してもよいし、あるいは、毎回ランダムで出力したりしてもよい。また、ユーザは、このような出力の設定を適宜編集してもよい。また、フィードバック生成処理119は、音声出力を行う場合、結果管理処理118で保持している内容が長大な場合(ニュース記事結果など)、その内容の要約を行ってもよい。フィードバック生成処理119は、例えば、図7に示す提示部50や送信部54等が実行する処理に対応する。
ディスプレイ出力処理120は、フィードバック生成処理119で作成された、エージェント10の出力結果のすべて、もしくはそこから選択された候補をディスプレイ上に整形し表示する。ディスプレイ出力処理120は、例えば、図7に示す出力制御部53や出力部60等が実行する処理に対応する。
音声出力処理121は、フィードバック生成処理119で作成された、エージェント10の出力結果のすべて、もしくはそこから選択された候補から音声データを生成し、スピーカ等のデバイスで再生させる。音声出力処理121は、例えば、図7に示す出力制御部53や出力部60等が実行する処理に対応する。
なお、上記で示した処理は一例であり、例えば、応答処理装置100の構成によって、適宜異なる処理が行われてもよい。例えば、入力や出力処理はアプリケーションやサービスにより異なるため、応答処理装置100は、必ずしもディスプレイ出力と音声出力の両方を実行することを要しない。
[1-6.第1の実施形態に係る変形例]
上記で説明した第1の実施形態に係る応答処理は、様々な変形を伴ってもよい。以下に、第1の実施形態の変形例について説明する。
例えば、応答処理装置100は、エージェントテーブル32やコマンドテーブル33に格納された情報について、定期的にアップデートを行ってもよい。例えば、エージェント10は、ネットワークを介して機能が拡張される場合がある。具体的には、「翻訳」機能を有するエージェント10が、以前は対応できなかった言語に対応する等のアップデートを行う場合がある。
この場合、応答処理装置100は、連携するエージェント10からアップデートが行われた旨の情報を受信し、受信した情報に基づいて、エージェントテーブル32やコマンドテーブル33に格納された情報を更新する。これにより、ユーザは、複数のエージェント10の各々の機能のアップデート等を意識せずとも、最新の機能を享受することができる。
(2.第2の実施形態)
[2-1.第2の実施形態に係る応答処理の一例]
次に、第2の実施形態について説明する。第1の実施形態では、応答処理装置100は、主に音声を用いて応答の結果等をユーザに出力する例を示した。第2の実施形態では、応答処理装置100が、音声以外の手段を用いて、応答の結果等をユーザに出力する例を示す。
図13は、第2の実施形態に係る応答処理の一例を示す図である。図13では、ユーザが、音声ではなく応答処理装置100のディスプレイを用いて入力情報を入力し、応答処理装置100が、音声ではなくディスプレイを用いて応答を提示する例を示す。
まず、ユーザは、応答処理装置100のタッチパネル等を介して、応答処理装置100に入力情報を入力する。図13に示す入力情報A81は、ユーザが、応答処理装置100のディスプレイに「卒業を聞きたい」といったテキストを入力したことを示している。
ユーザは、ディスプレイへの入力操作等を介して、入力情報A81を応答処理装置100に入力する(ステップS81)。応答処理装置100は、第1の実施形態と同様、入力情報A81に基づいて、各エージェント10に応答を生成させる旨のリクエストを送信する(ステップS82)。
応答処理装置100は、各エージェント10から取得した応答に基づいて、ユーザに提示するフィードバックA82を生成する(ステップS83)。フィードバックA82は、例えば、応答処理装置100のディスプレイ上に表示される。図13に示すように、フィードバックA82には、各エージェント10が生成した応答の内容や、再検索を要求する旨のボタン等のユーザインターフェイスが含まれる。
このように、第2の実施形態に係る応答処理装置100は、入力情報に対して複数のエージェント10が生成した各々の応答の内容を含む画面表示を用いて、ユーザに応答の内容を提示してもよい。これにより、応答処理装置100は、ユーザの状況に合わせて柔軟な情報の提示等を行うことができる。
[2-2.第2の実施形態に係る応答処理のバリエーション]
次に、図14及び図15を用いて、第2の実施形態に係る応答処理のバリエーションについて説明する。図14は、第2の実施形態に係る応答処理の第1のバリエーションを示す図である。第2の実施形態に係る情報処理の第1のバリエーションでは、例えば、所定の条件に基づいて、応答処理装置100が表示する応答の表示割合が可変する状況を示す。
図14では、例えば、ユーザが「明日の天気は?」といった質問を入力情報A91として入力した状況を例に挙げる(ステップS91)。応答処理装置100は、入力情報A91を受け付けると、入力情報A91に対応したコマンドを各エージェント10に送信し、各々の応答の結果を取得する(ステップS92)。
ここで、各エージェント10は、各々が異なるサービス(この例では、天気情報サービス)にアクセスして情報を取得するため、各々が異なる応答を生成すると想定される。応答処理装置100は、これらの応答を取得し、各々の応答が表示されたフィードバックA92を生成する(ステップS93)。
図14に示すように、フィードバックA92には、エージェント10Aが生成した応答を示す天気情報A93や、エージェント10Bが生成した応答を示す天気情報A94や、エージェント10Cが生成した応答を示す天気情報A95や、エージェント10Dが生成した応答を示す天気情報A96が含まれる。
これにより、応答処理装置100は、各々のエージェント10が生成した応答を一覧表示することができるので、結果の提示を効率良く行うことができる。
また、応答処理装置100は、フィードバックA92に表示される割合について、各エージェント10の情報や、応答の情報に基づいて変更してもよい。
一例として、応答処理装置100は、過去に複数のエージェント10が生成した応答をユーザが選択した履歴に基づいて、入力情報に対して複数のエージェント10が生成した各々の応答の内容を画面に表示する割合もしくは面積を決定する。
例えば、応答処理装置100は、過去にユーザが選択した回数や割合の多いエージェント10ほど、画面内で表示される面積を広く表示してもよい。これにより、応答処理装置100は、ユーザがより好む情報を広く表示することができる。
また、応答処理装置100は、入力情報に対して複数のエージェント10が生成した各々の応答の情報量に応じて、各々の応答の内容を画面に表示する割合もしくは面積を決定してもよい。
上記の内容について、図15を用いて説明する。図15は、第2の実施形態に係るデータベース35の一例を示す図である。データベース35は、各エージェント10が取得した天気情報の内容(情報量)や、ユーザが過去に選択した履歴情報を紐づけて記憶したデータベースである。
上述のように、エージェント10A、エージェント10B、エージェント10C及びエージェント10Dは、それぞれ異なるサービスから情報を取得するため、同じ天気情報でも、応答処理装置100に送信する情報が異なる。すなわち、応答処理装置100は、エージェント10A、エージェント10B、エージェント10C及びエージェント10Dの各々から異なる応答(天気情報)を取得する。
例えば、図15に示すデータベース35は、応答処理装置100が取得した応答に含まれる情報を示す。具体的には、図15に示す例では、エージェント10Aが取得した天気情報は、「画面表示」が可能であり、「音声出力」が可能であり、「降水確率」や「花粉情報」が含まれるものの、「紫外線情報」が含まれないことを示している。また、エージェント10Bが取得した天気情報は、「画面表示」が可能であり、「音声出力」が可能であり、「降水確率」が含まれるものの、「紫外線情報」や「花粉情報」が含まれないことを示している。
すなわち、図15に示す例では、エージェント10が提供する情報が「天気予報」である場合、例えばエージェント10Aは、天気予報を実行するために(すなわち、天気予報に関する情報を取得するために)、「J01」というサービスに接続し、「天気概況、降水確率、画像出力、音声出力、花粉、・・・」といった内容の情報を取得することを示している。また、ユーザが応答処理装置100に対して天気予報という機能を実行させた場合に、ユーザがエージェント10Aの提示した応答を選択した履歴は「L01」であることを示している。
なお、図15では、提供情報の一例として「天気予報」を示したが、提供情報はこの例に限られず、例えば、「交通情報」や「ニュース」、「レストラン検索」、「番組表検索」、「映画検索」、「イベント情報検索」等であってもよい。
応答処理装置100は、データベース35に含まれる情報を各エージェント10から取得し、例えば、その応答の情報量に基づいて、フィードバックA92を生成する。具体的には、応答処理装置100は、より天気情報に関する情報量が多い応答を提示したエージェント10の表示割合を広くする。あるいは、応答処理装置100は、過去にユーザから選択された回数の多いエージェント10の表示割合を広くしてもよい。
例えば、応答処理装置100は、図14で示したように、複数のエージェント10によって天気情報に関する応答が生成された場合、情報量のより多い応答を、より画面内において広く提示する。あるいは、応答処理装置100は、ユーザとの対話の履歴を参照し、ユーザが「紫外線情報」よりも「花粉情報」を要求した履歴が多い場合、「花粉情報」という種別が含まれる天気情報を、より画面内において広く提示してもよい。すなわち、応答処理装置100は、複数の応答が存在する場合、応答の情報量や種別、また、ユーザのこれまでの履歴や状況に応じて、実際にユーザに出力する応答の態様を柔軟に決定する。これにより、応答処理装置100は、よりユーザの要望に沿った応答を出力することができる。また、応答処理装置100は、複数のエージェント10から応答を取得した場合に、その表示割合を動的に変化させてユーザに提示できるので、視覚的に飽きさせない画面表示を行うことができる。
次に、図16A及び図16Bを用いて、第2の実施形態に係る応答処理の異なるバリエーションについて説明する。図16Aは、第2の実施形態に係る応答処理の第2のバリエーションを示す図である。
例えば、図16Aでは、ユーザが「ニュース見せて」という音声に基づく入力情報A101を応答処理装置100に入力した状況を示している。この場合、応答処理装置100は、「ニュース見せて」といった音声に対応するコマンドを生成し、各エージェント10に送信し、各エージェント10の応答を取得する。そして、応答処理装置100は、各エージェント10の応答をフィードバックA102としてユーザに提示する。その後、ユーザが、「エージェント10Bで」といった特定コマンドA103を発した場合、応答処理装置100は、「エージェント10Bに実行させます」といった音声A104を出力し、エージェント10Bが提案した応答の内容をエージェント10Bに実行させる。
このように、応答処理装置100は、ユーザから受け付けた一つの入力情報A101に基づいて、各エージェント10が実行しようとする各種処理をユーザに提示できる。このため、ユーザは、例えばエージェント10が各々異なる家電である場合等に、特定の家電にコマンドを入力しなくても、自身が所望する処理をいずれかのエージェント10に実行させることができる。
次に、図16Bの例について説明する。図16Bは、第2の実施形態に係る応答処理の第3のバリエーションを示す図である。
例えば、図16Bでは、ユーザが「暑い」という音声に基づく入力情報A111を応答処理装置100に入力した状況を示している。この場合、応答処理装置100は、「暑い」といった音声に対応するコマンドを生成し、各エージェント10に送信し、各エージェント10の応答を取得する。そして、応答処理装置100は、各エージェント10の応答をフィードバックA112としてユーザに提示する。その後、ユーザが、「エージェント10Bで」といった特定コマンドA113を発した場合、応答処理装置100は、「エージェント10Bに実行させます」といった音声A114を出力し、エージェント10Bが提案した応答の内容をエージェント10Bに実行させる。
この場合も、図16Aの例と同様、応答処理装置100は、ユーザから受け付けた一つの入力情報A111に基づいて、各エージェント10が実行しようとする各種処理をユーザに提示できる。このため、ユーザは、自身が実行させたい処理を効率良く選択することができる。
なお、応答処理装置100は、図16A及び図16Bで示した以外にも、いわゆるスマート家電と連携する処理が可能である。例えば、応答処理装置100は、ユーザから「食材、何が入っている?」や「賞味期限が切れそうなのはなに?」等の入力情報を受け付けた場合、冷蔵庫に搭載されたエージェント10にコマンドを送信する。そして、応答処理装置100は、エージェント10の応答として、ユーザの利用ログや商品タグ等から取得された情報をユーザに提示する。あるいは、応答処理装置100は、ユーザから「鍵、閉めたかな?」や「鍵、閉めておいて」等の入力情報を受け付けた場合、スマートキーに搭載されたエージェント10にコマンドを送信する。そして、応答処理装置100は、エージェント10の応答として、自宅のカギ状態の情報や、施錠操作を行った旨等の応答をユーザに提示する。あるいは、応答処理装置100は、ユーザから「居間の電気けして」や「寝室の電気つけて」等の入力情報を受け付けた場合、照明機器に搭載されたエージェント10にコマンドを送信する。そして、応答処理装置100は、エージェント10の応答として、自宅内の照明操作を行った旨等の応答をユーザに提示する。このように、応答処理装置100は、スマートスピーカー等の情報機器のみならず、種々の情報機器と連携し、ユーザに有用な応答処理を行うことができる。
(3.その他の実施形態)
上述した各実施形態に係る処理は、上記各実施形態以外にも種々の異なる形態にて実施されてよい。
[3-1.応答出力のバリエーション]
例えば、応答処理装置100は、連携する全てのエージェント10が同一の内容の応答を生成している場合には、ユーザに応答を提示することなく、いずれかのエージェント10に応答を出力させるよう実行させてもよい。
[3-2.ユーザの反応を送信するタイミング]
応答処理装置100は、提示された複数の応答のうち、ユーザがいずれかの応答を選択した直後にエージェント10にユーザの反応を送信するのではなく、一定時間後にユーザの反応を送信してもよい。
すなわち、応答処理装置100は、ユーザのサービスの享受状態を判定し、ユーザがサービスを享受していると想定される時間だけ待機したのちに、ユーザの反応を各エージェント10に送信する。これにより、応答処理装置100は、ユーザが誤って応答を選択した場合や、ユーザが実は異なる応答を所望していたといった状況においても、正確にユーザが選択した応答の情報を各エージェント10にフィードバックできる。なお、応答処理装置100は、エージェント10にフィードバックが送信されるタイミングについて、ユーザから登録を受け付けてもよい。
[3-3.装置構成]
上記各実施形態では、応答処理装置100がいわゆるスマートフォンやタブレット装置であり、スタンドアロンで処理を行う例を示した。しかし、応答処理装置100は、ネットワークによって接続されたサーバ装置(いわゆるクラウドサーバ(Cloud Server)等)と連携して本開示に係る応答処理を行ってもよい。この場合には、スマートフォンやタブレット装置等の端末は、ユーザの発話を集音する処理や、集音した発話をサーバ装置に送信する処理や、サーバ装置から送信された音声を出力する処理といった、ユーザとの対話処理を主に実行するインターフェイスとして機能する。
また、本開示に係る応答処理装置とは、独立したデバイスではなく、スマートフォンやタブレット装置内に搭載されるICチップ等の態様で実現されてもよい。
また、上記各実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、解析部51と生成部52は統合されてもよい。
また、上述してきた各実施形態及び変形例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、本明細書に記載された効果はあくまで例示であって限定されるものでは無く、他の効果があってもよい。
(4.本開示に係る応答処理装置の効果)
上述のように、本開示に係る応答処理装置(実施形態では応答処理装置100)は、受付部(実施形態では受付部40)と、提示部(実施形態では提示部50)と、送信部(実施形態では送信部54)とを備える。受付部は、情報機器(実施形態ではエージェント10)が応答を生成する契機となる情報である入力情報を受け付ける。提示部は、入力情報に対して複数の情報機器が生成した各々の応答をユーザに提示する。送信部は、提示された応答に対するユーザの反応を複数の情報機器に送信する。
このように、本開示に係る応答処理装置は、複数の情報機器のフロントエンド機器としてふるまい、複数の応答をユーザに提示したり、ユーザの選択した結果を情報機器に送信したりといった、調停の役割を担う。これにより、応答処理装置は、複数の情報機器をユーザが利用する際に、個々の情報機器に対して対話を行うような手間を省かせることができるので、ユーザの利便性を向上させることができる。
また、提示部は、提示された各々の応答のうちユーザから選択された応答を、選択された応答を生成した情報機器が出力するよう制御する。これにより、応答処理装置は、ユーザが所望する応答が、ユーザの選択した情報機器から出力するよう制御することができる。
また、提示部は、提示された各々の応答のうちユーザから選択された応答を、選択された応答を生成した情報機器から取得し、取得した応答を出力する。これにより、応答処理装置は、例えば情報機器が比較的ユーザから離れた位置に設置されている場合等に、情報機器に代えてユーザが所望する応答を出力することができるので、ユーザの利便性を向上させることができる。
また、受付部は、提示された各々の応答のうちいずれかの応答が出力されたのち、出力する応答を変更する旨を示すコマンドをユーザから受け付ける。提示部は、コマンドに基づいて、出力中の応答を異なる応答へ変更する。これにより、応答処理装置は、最初に行われたユーザとの対話を繰り返すことなく、簡易な対応で、異なる応答をユーザに提示することができるので、ユーザの利便性を向上させることができる。
また、提示部は、入力情報に対して複数の情報機器が生成した各々の応答に同一の内容が含まれる場合、同一の内容を含む応答をまとめて提示する。これにより、応答処理装置、同一の内容の応答が何度もユーザに対して出力されるような事態を回避することができる。
また、受付部は、提示された応答に対して異なる応答を要求する旨を示すコマンドをユーザから受け付ける。送信部は、コマンドに基づいて、入力情報に対する再検索の要求を複数の情報機器に送信する。これにより、応答処理装置は、ユーザが望む応答が生成されなかった場合にも、迅速に再検索を実行させることができる。
また、提示部は、過去に複数の情報機器が生成した応答をユーザが選択した履歴に基づいて、入力情報に対して複数の情報機器が生成した各々の応答のうち、一つの応答を選択してユーザに対して出力する。これにより、応答処理装置は、ユーザからの明示の選択がなくても応答を出力できるので、ユーザの手間を低減させることができる。
また、送信部は、ユーザの反応として、提示された各々の応答のうちユーザから選択された応答に関する情報を複数の情報機器に送信する。これにより、応答処理装置は、一つの対話で複数の正例や負例を複数の情報機器に送信できるので、情報機器の学習を効率良く進めることができる。
また、送信部は、ユーザから選択された応答に関する情報として、ユーザから選択された応答の内容、もしくは、ユーザから選択された応答を生成した情報機器の識別情報を複数の情報機器に送信する。これにより、応答処理装置は、どのような内容の応答をユーザが欲していたかという具体的な情報を情報機器に提供することができる。
また、送信部は、ユーザの反応として、提示された各々の応答のうちいずれもがユーザから選択されなかったことを示す情報を複数の情報機器に送信する。これにより、応答処理装置は、ユーザの欲していない情報をまとめて情報機器に送信できるので、ユーザの欲していない情報が何度もユーザに提示されるような事態を回避することができる。
また、送信部は、提示された各々の応答のうちいずれもがユーザから選択されなかったことを示す情報とともに、各々の応答の内容を複数の情報機器に送信する。これにより、応答処理装置は、ユーザの欲していない情報をまとめて情報機器に送信できるので、ユーザの欲していない情報が何度もユーザに提示されるような事態を回避することができる。
また、提示部は、入力情報に対して複数の情報機器が生成した各々の応答の内容を含む音声を用いて、ユーザに提示する。これにより、応答処理装置は、複数の応答をユーザにわかりやすく提示することができる。
また、提示部は、入力情報に対して複数の情報機器が生成した各々の応答の内容を含む画面表示を用いて、ユーザに提示する。これにより、応答処理装置は、音声によらずとも、複数の応答をユーザに一度に提示することができる。
また、提示部は、過去に複数の情報機器が生成した応答をユーザが選択した履歴に基づいて、入力情報に対して複数の情報機器が生成した各々の応答の内容を画面に表示する割合もしくは面積を決定する。これにより、応答処理装置は、ユーザが欲すると想定される情報を視認性の高い状態でユーザに提示できるので、応答処理のユーザビリティを向上させることができる。
また、提示部は、入力情報に対して複数の情報機器が生成した各々の応答の情報量に応じて、各々の応答の内容を画面に表示する割合もしくは面積を決定する。これにより、応答処理装置は、より情報量の多い応答を視認性の高い状態でユーザに提示できるので、応答処理のユーザビリティを向上させることができる。
また、受付部は、入力情報として、ユーザが発した音声情報を受け付ける。これにより、応答処理装置は、音声を介したユーザとのコミュニケーションにおいて、ユーザの状況に合わせた適切な対話を行うことができる。
また、受付部は、入力情報として、ユーザから入力されるテキストを受け付ける。これにより、応答処理装置は、ユーザが発話をせずとも、ユーザの入力したテキストに対応した適切な応答を提示することができる。
(5.ハードウェア構成)
上述してきた各実施形態に係る応答処理装置100やエージェント10、外部サーバ200等の情報機器は、例えば図17に示すような構成のコンピュータ1000によって実現される。以下、第1の実施形態に係る応答処理装置100を例に挙げて説明する。図17は、応答処理装置100の機能を実現するコンピュータ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の実施形態に係る応答処理装置100として機能する場合、コンピュータ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)
前記送信部は、
前記ユーザの反応として、前記提示された各々の応答のうち前記ユーザから選択された応答に関する情報を前記複数の情報機器に送信する
前記(1)~(7)のいずれかに記載の応答処理装置。
(9)
前記送信部は、
前記ユーザから選択された応答に関する情報として、当該ユーザから選択された応答の内容、もしくは、当該ユーザから選択された応答を生成した情報機器の識別情報を前記複数の情報機器に送信する
前記(8)に記載の応答処理装置。
(10)
前記送信部は、
前記ユーザの反応として、前記提示された各々の応答のうちいずれもが前記ユーザから選択されなかったことを示す情報を前記複数の情報機器に送信する
前記(1)~(9)のいずれかに記載の応答処理装置。
(11)
前記送信部は、
前記提示された各々の応答のうちいずれもが前記ユーザから選択されなかったことを示す情報とともに、当該各々の応答の内容を前記複数の情報機器に送信する
前記(10)に記載の応答処理装置。
(12)
前記提示部は、
前記入力情報に対して複数の情報機器が生成した各々の応答の内容を含む音声を用いて、前記ユーザに提示する
前記(1)~(11)のいずれかに記載の応答処理装置。
(13)
前記提示部は、
前記入力情報に対して複数の情報機器が生成した各々の応答の内容を含む画面表示を用いて、前記ユーザに提示する
前記(1)~(12)のいずれかに記載の応答処理装置。
(14)
前記提示部は、
過去に前記複数の情報機器が生成した応答をユーザが選択した履歴に基づいて、前記入力情報に対して複数の情報機器が生成した各々の応答の内容を画面に表示する割合もしくは面積を決定する
前記(13)に記載の応答処理装置。
(15)
前記提示部は、
前記入力情報に対して複数の情報機器が生成した各々の応答の情報量に応じて、当該各々の応答の内容を画面に表示する割合もしくは面積を決定する
前記(13)又は(14)に記載の応答処理装置。
(16)
前記受付部は、
前記入力情報として、前記ユーザが発した音声情報を受け付ける
前記(1)~(15)のいずれかに記載の応答処理装置。
(17)
前記受付部は、
前記入力情報として、前記ユーザから入力されるテキストを受け付ける
前記(1)~(16)のいずれかに記載の応答処理装置。
(18)
コンピュータが、
情報機器が応答を生成する契機となる情報である入力情報を受け付け、
前記入力情報に対して複数の情報機器が生成した各々の応答をユーザに提示し、
前記提示された応答に対するユーザの反応を前記複数の情報機器に送信する
応答処理方法。
(19)
コンピュータを、
情報機器が応答を生成する契機となる情報である入力情報を受け付ける受付部と、
前記入力情報に対して複数の情報機器が生成した各々の応答をユーザに提示する提示部と、
前記提示された応答に対するユーザの反応を前記複数の情報機器に送信する送信部と
として機能させるための応答処理プログラム。