以下、本発明の実施形態について、図面を参照しながら説明する。なお、図面の説明において同一要素には同一符号を付し、重複する説明は省略する。
図1は、実施形態に係る対話装置および対話方法が適用される、対話システムの概要を示す図である。図1に示すように、対話システム1においては、ユーザ10と、対話装置100との対話が行われる。
対話装置100は、インタフェース部110を含む。図1に示す例では、インタフェース部110の一部(後述の図2のディスプレイ115)に、ヒト型のキャラクタ11が表示されている。このようなヒト型のキャラクタ11の表示によって、ユーザ10は、あたかも人間と対話するように、対話装置100と対話することができる。
対話装置100は、通信ネットワーク50を介して、サーバ200と接続可能とされている。これにより、対話装置100は、ユーザ10との対話に用いるための多くの情報を、サーバ200から取得することができる。
対話装置100は、ユーザ10との対話を行うことが可能であればよく、その外観や大きさなどは図1に示す例に限定されるものではない。たとえば、対話装置100は、スマートフォンのような端末装置を用いて好適に実現される。そのような端末装置は、ユーザ10との対話に必要なスピーカ、マイク、各種センサなどの様々なデバイス、およびユーザ10との接点となるディスプレイを備えており、また、通信ネットワーク50を介してサーバ200と通信することができるからである。また、対話装置100として、人間の形状を模した物理的なロボットなどを用いてもよい。
ユーザ10は、ハンズフリー状態で、対話装置100と対話することができる。本明細書におけるハンズフリー状態とは、ユーザ10が対話装置100に接触して行う操作(たとえば対話装置100のボタン操作など)を行わない状態を意味する。なお、ユーザ10が対話装置100以外のものに触れている場合でも、対話装置100に接触していなければ、ハンズフリー状態とされる。
ユーザ10と対話装置100との対話は、ユーザ10が対話装置100の近くにいる状態で行われることが好ましい。図1において、対話に好ましいユーザ10と対話装置100との位置関係が、領域Rとして破線で例示される。領域Rの範囲は、ユーザ10が対話装置100に表示されているキャラクタ11を良好に視認することができ、また、対話装置100からの音声を良好に認識できるような範囲とすることができる。そのような領域Rの範囲は、たとえば対話装置100から数十センチ〜数メートル程度の範囲である。図1に示す例では、領域Rは、対話装置100の正面側(インタフェース部110が設けられている側)に広く設定され、対話装置100の側面および背面には狭く設定されている。すなわち、領域Rは、対話装置100の正面側に長く設定され、対話装置100の側面および背面に短く設定される。このような領域R内にユーザ10が位置するときには、ユーザ10は対話装置100の正面と向かいあって対話できる可能性が高まるので、対話をスムーズに(ユーザ10にとって快適に)行うことができる。
図2は、対話装置100の詳細構成を示す図である。図2に示すように、対話装置100は、インタフェース部110と、データ処理部120と、検出部130と、切替部140と、制御部150と、保存部160と、伝達情報決定部165と、通信部170とを含む。
インタフェース部110は、対話装置100の外部(主に図1のユーザ10)と情報をやり取りするための部分である。インタフェース部110は、カメラ111と、人感センサ112と、赤外線センサ113と、照度センサ(推論センサ)114と、ディスプレイ115と、マイク116と、スピーカ117と、操作パネル118とを含む。
データ処理部120は、インタフェース部110に入力された情報の解析などに必要なデータ処理を行い、また、インタフェース部110が種々の出力する情報の生成などに必要なデータ処理を行う部分である。データ処理部120は、画像処理部121と、センサデータ処理部122と、出力処理部123と、音声認識部124と、音声合成部125と、入力処理部126とを含む。
以下、インタフェース部110およびデータ処理部120に含まれる各部について説明する。
カメラ111は、たとえばユーザ10を撮像する。たとえば、画像処理部121は、カメラ画像におけるユーザ10の顔の位置(または領域)を検出する。そのためのデータ処理には、種々の公知の技術を用いることができる。たとえば、***(登録商標)社によって提供されるスマートフォン用OSとして知られているアンドロイド(登録商標)に提供される種々のAPI(Application Program Interface)に関する情報(たとえば、入手のための情報、使い方の情報など)が、下記のサイトに記載されている。
http://developer.android.com/reference/android/media/FaceDetector.html
さらに、画像処理部121は、カメラ111が撮像した画像データに基づいて、ユーザ10の特定の動作(たとえば手を掲げるなどのジェスチャ)を検出することもできる。たとえば、ユーザの姿勢などを検出する機能を有する製品が下記のサイトで公知となっており、その技術を対話装置100に適用したり、あるいは、それらの製品と対話装置100とを通信可能に構成してそれらの製品から出力される情報を利用することで、ユーザ10の動作を検出することができる。
http://www.microsoft.com/en-us/kinectforwindows/
人感センサ112は、物体(人)の接近を検出する。人感センサ112として、たとえば、赤外光(あるいは音波)を発して、物体からの反射光(あるいは反射波)を検出するタイプのセンサを用いることができる。センサデータ処理部122は、人感センサ112の検出結果に基づいて、ユーザ10が対話装置100の近くにいるか否かを判断することができる。そのためのデータ処理には、種々の公知の技術を用いることができる。たとえば、***社によって提供されるスマートフォン用OSとして知られているアンドロイドに提供される種々のAPIに関する情報(たとえば、入手のための情報、使い方の情報など)が、下記のサイトに記載されている。
http://developer.android.com/reference/android/hardware/SensorManager.html
赤外線センサ113は、赤外線を検出する。たとえば、ユーザ10が対話装置100の近くでテレビなどを操作するためにリモコンを操作すると、赤外線センサ113は、リモコンから発せられる赤外線を検出する。センサデータ処理部122は、赤外線センサ113の検出結果に基づいて、ユーザ10が対話装置100の近くにいるか否かを判断する。たとえば、赤外線センサ113が赤外線を検出すると、ユーザ10が対話装置100の近くにいると判断される。
照度センサ114は、周囲の明るさ(照度)を検出する。センサデータ処理部122は、照度センサ114の検出結果と、現在の時刻(時間帯)とに基づいて、ユーザ10が対話装置100の近くにいるか否かを推論(判断)する。たとえば、夜間に、照度センサ114によって高い照度が検出された場合には、ユーザ10が対話装置100の近くにいると判断される。このようにして、照度センサ114を、ユーザ10の存在を推論する推論センサとして機能させることができる。現在の時刻は、たとえば対話装置100に含まれるタイマ(図示しない)の機能を用いて取得することができる。照度の検出のためのデータ処理には、種々の公知の技術を用いることができる。たとえば、***社によって提供されるスマートフォン用OSとして知られているアンドロイドに提供される種々のAPIに関する情報(たとえば、入手のための情報、使い方の情報など)が、下記のサイトに記載されている。なお、センサデータ処理部122は、照度センサ114の検出結果に代えて、カメラ111によって撮像された画像における照度(明度)と、現在の時刻とに基づいて、上記の推論を行うこともできる。
http://developer.android.com/reference/android/hardware/SensorManager.html
ディスプレイ115は、ユーザ10が視認可能な情報を表示する。出力処理部123は、ディスプレイ115の表示に必要なデータ処理を行う。たとえばディスプレイ115におけるキャラクタ11の動作を表すのに必要なデータ処理が、出力処理部123によって行われる。ディスプレイ115は、ユーザ10の対話装置100への接触を検出できるように、タッチパネルとすることもできる。
マイク116は、ユーザ10の音声を検出する。音声認識部124は、マイク116の検出結果に基づいて、ユーザ10の音声を認識する。また、音声認識部124は、認識した音声を所定のフォーマット(たとえばテキストの形式)に変換する。音声を認識するためのデータ処理には、種々の公知の技術を用いることができる。たとえば、***社によって提供されるスマートフォン用OSとして知られているアンドロイドに提供される種々のAPIに関する情報(たとえば、入手のための情報、使い方の情報など)が、下記のサイトに記載されている。
http://developer.android.com/reference/android/speech/RecognizerIntent.html
スピーカ117は、ユーザ10が聴認可能な音声を発する。音声合成部125は、スピーカ117が発する音声を生成するための種々のデータ処理を行う。たとえば、音声合成部125は、各種の音データを合成することによって、テキストの形式で指定された内容(情報)を音声に変換する。そのためのデータ処理には、種々の公知の技術を用いることができる。たとえば、***社によって提供されるスマートフォン用OSとして知られているアンドロイドに提供される種々のAPIに関する情報(たとえば、入手のための情報、使い方の情報など)が、下記のサイトに記載されている。
http://developer.android.com/reference/android/speech/tts/TextToSpeech.html
操作パネル118は、ユーザ10の操作(ユーザ操作)を検出する。入力処理部126は、操作パネル118の検出結果に基づいて、ユーザ操作に応じた必要なデータ処理を行う。なお、ディスプレイ115がタッチパネルの場合には、ユーザ10がディスプレイ115に表示されているキャラクタ11に接触(タップ)したことを検出するとによっても、ユーザ操作に応じた必要なデータ処理が行われる。
以上の構成によって、対話装置100は、たとえば、インタフェース部110を介して、外部(ユーザ10を含む)から種々の情報を取得し、また、外部(ユーザ10を含む)に種々の情報を伝達することができる。そして、本実施形態においては、さらに、後述する検出部130、切替部140、制御部150、保存部160、伝達情報決定部165、通信部170などの各要素が協働することによって、ユーザ10との対話が実現される。
検出部130は、ハンズフリー状態にあるユーザ10との対話を開始するタイミングを検出する部分である。検出部130は、複数の検出モードを実行可能に構成される。複数の検出モードは、ユーザ10の対話意思を検出する第1の検出モードと、ユーザ10の対話意思を検出し且つユーザ10が対話装置100から所定範囲内(たとえば図1の領域Rの内側)に位置することを検出する第2の検出モードとを含む。第1の検出モードおよび第2の検出モードの詳細については、後述する。
切替部140は、検出部130の検出モードを切り替える部分である。切替部140は、対話装置100からユーザ10へ伝達すべき情報の有無に応じて、検出部130の検出モードを切り替える。ユーザ10へ伝達すべき情報の有無は、後述の保存部160を参照して判断される。切替部140は、対話装置100からユーザ10へ伝達すべき情報が無い場合には、検出部130を第1の検出モードに切り替える。一方、切替部140は、対話装置100からユーザ10へ伝達すべき情報が有る場合には、検出部130を第2の検出モードに切り替える。
制御部150は、対話装置100の各要素を制御する部分であり、後述する対話制御部151と出力制御部152とを含んで構成される。ただし、制御部150の機能は、対話制御部151および出力制御部152の機能に限定されるものではない。
保存部160は、対話装置100からユーザ10へ伝達すべき情報を保存する部分である。ここで、図4を参照して、保存部160に保存されている情報の一例について説明する。
図4は、保存部160に保存される情報のデータテーブルの一例を示す図である。図4に示すように、伝達情報データテーブル160aは、積極伝達フラグと、伝達情報と、評価情報とを対応付けて記述している。
積極伝達フラグは、伝達情報が、対話装置100からユーザ10へ積極的に伝達すべき情報であることを示す。図4に示す例では、積極伝達フラグは、「true」と「false」の2通りで表される。積極伝達フラグが「true」の伝達情報は、積極伝達フラグが「false」の伝達情報よりも、対話装置100からユーザ10へ伝達すべき優先度が高い。たとえば各伝達情報について優先度を数値化することによって、優先度が所定値(所定レベル)以上の伝達情報については積極伝達フラグを「true」とし、優先度が所定レベル未満の伝達情報については積極伝達フラグを「false」とすることができる。
伝達情報は、対話装置100からユーザ10へ音声で伝達する情報である。図4に示す例では、伝達情報として、「明日は雨が降りそうです。傘をお忘れなく!」、「午後は雷雨になります。雷が鳴り始めたら屋内に避難しましょう!」、「21:00からアニメ「@@」始まるよ。」、「芸能人の##さんが逮捕されたみたい。」などが挙げられる。
評価情報は、伝達情報の存在をユーザ10に伝達するための情報である。評価情報は、積極伝達フラグが「false」の場合に存在し得る。評価情報は、伝達情報の優先度が所定レベル未満の場合には、伝達情報そのものではなく伝達情報の存在をユーザ10に伝達するための表現として用いられる。図4に示す例では、伝達情報「21:00からアニメ「@@」始まるよ。テレビつけようよ。」および「芸能人の##さんが逮捕されたみたい。」について、評価情報「毎週楽しみだ〜」および「本当に?信じられない」がそれぞれ対応づけられている。
再び図2に戻って、制御部150は、対話装置100からユーザ10へ伝達すべき情報を、保存部160から取得することができる。具体的に、制御部150は、積極伝達フラグ(図4)が「true」の伝達情報を、対話装置100からユーザ10へ伝達すべき情報として取得する。
伝達情報決定部165は、対話装置100からユーザ10に伝達すべき情報を新たに生成して、保存部160に記憶させる。具体的に、伝達情報決定部165は、図4の積極伝達フラグ、伝達情報、および必要に応じて評価情報を生成し、保存部160(の伝達情報データテーブル160a)を更新する。たとえば、伝達情報決定部165は、決まった時刻に外部の天気予報APIを利用して翌日の降水確率を取得する。そして、80%を超えていた場合は新たに保存部160に「明日は雨が降りそうです。傘をお忘れなく!」という情報(テキスト)を、伝達情報として追加保存する。その他にも重要なメールの受信時に、「Aさんからメールが来ているみたいですよ。読みましたか?」というテキストを追加保存する、あらかじめ設定した番組の放送時刻を、番組情報を掲載したWebサイトの情報から確認し、放送時刻近くになったら情報を追加する、など外部で起きた事象を通知する様々な手段の実装が考えられる。積極伝達フラグは取得元によって「true」または「false」を設定する。たとえば天気予報やメールの場合は「true」、番組情報やニュースの場合は「false」を設定する。評価情報も、情報の取得元と対応付けた固定の文言を設定することで実現できる。たとえば番組情報の場合は「毎週楽しみだー」、ニュース情報の場合は「本当に?信じられない」などの文言を設定する。
通信部170は、対話装置100の外部(たとえば図1のサーバ200)と通信を行う部分である。通信の手法は特に限定されないが、たとえば通信部170と基地局(図示しない)との無線通信、および、基地局とサーバ200との有線通信などを用いることができる。通信部170を介して、伝達情報決定部165は、対話装置100の外部から情報を取得して、多くの伝達情報を生成することができる。
ここで、図3を参照して、対話装置100のハードウェア構成について説明する。図3は、対話装置100のハードウェア構成図である。図3に示されるように、対話装置100は、物理的には、1または複数のCPU(Central Processing unit)21、主記憶装置であるRAM(Random Access Memory)22およびROM(Read Only Memory)23、データ送受信デバイスである通信モジュール26、半導体メモリなどの補助記憶装置27、操作盤(操作ボタンを含む)やタッチパネルなどのユーザの入力を受け付ける入力装置28、ディスプレイなどの出力装置29、カメラなどの撮像装置24、ならびに赤外線センサなどの各種センサ25のハードウェアを備えるコンピュータとして構成され得る。図2における対話装置100の各機能は、たとえば、CPU21、RAM22などのハードウェア上に1または複数の所定のコンピュータソフトウェアを読み込ませることにより、CPU101の制御のもとで通信モジュール26、入力装置28、出力装置29、撮像装置24および各種センサ25を動作させるとともに、RAM22および補助記憶装置27におけるデータの読み出しおよび書き込みを行うことで実現することができる。
再び図2を参照して、検出部130が実行する第1の検出モードおよび第2の検出モードの詳細について説明する。
第1の検出モードでは、検出部130は、ユーザ10の対話意思を検出する。具体的に、第1の検出モードでは、検出部130が、ユーザ10の音声中の所定のキーワード、ユーザ10の所定の動作、ユーザ10の対話装置100への接触、の少なくとも1つを検出することによって、ユーザ10の対話意思を検出する。
ユーザ10の音声中の所定のキーワードの検出は、マイク116および音声認識部124などを用いて行われる。ユーザ10の所定の動作の検出は、カメラ111および画像処理部121などを用いて行われる。ユーザ10の対話装置100への接触の検出は、ディスプレイ115、操作パネル118および入力処理部126などを用いて行われる。なお、先に説明したように、対話装置100として人間の形状を模した物理的なロボットが用いられる場合には、ユーザ10の、ロボットの頭を撫でる、肩を叩くなどの物理的なインタラクションから、ユーザ10の対話意思を検出することが可能である。
ユーザ10の音声中の所定のキーワードを検出する場合には、たとえば、「こんにちは」、「おはよう」などの特定のキーワードを予め設定しておき、音声認識部124によって認識されたユーザの発話内容が上記キーワードと一致する(あるいは上記キーワードを含む)場合に、ユーザ10が対話意思を有していると判断することができる。
音声入力の方式は連続的な対話を想定したものと異なる、キーワード型の音声入力に特化した方式を採用してもよい。大規模な語彙が必要な場合は携帯通信端末などの記憶領域や計算能力に限りがあるクライアントを想定すると音声認識にサーバ接続が必要な場合があり、音声対話時はサーバ接続型の音声認識、キーワード型音声入力にはそのような手段ではなく端末内部で完結可能な音声認識エンジンを利用することがバッテリ消費の効率等の面で有効である。たとえば、市販の音声認識エンジンでも、同事業者がサーバ型、ローカル型の複数の方式によるエンジンを販売していることが一般的であり、それらに関する情報(たとえば、入手のための情報、使い方の情報など)が、下記のサイトに記載されている。
http://www.fuetrek.co.jp/product/vgate/asr.html
検出部130は、第1の検出モードを実行することによって、ハンズフリー状態にあるユーザ10との対話を開始するタイミング(対話開始契機)を検出することができる。先に説明したように、対話装置100からユーザ10へ伝達すべき情報が無い場合に、切替部140によって、検出部130は第1の検出モードに切り替えられる。具体的に、積極伝達フラグ(図4)が「true」となっている伝達情報が無い場合に、切替部140は、対話装置100からユーザ10へ伝達すべき情報が無いと判断して、検出部130を第1の検出モードに切り替える。このため、第1の検出モードでは、ユーザに対話意思が有るときの対話開始契機(ユーザ主導型対話開始契機)のみが検出される。
ユーザ主導対話開始契機が検出されると、ユーザ10の対話意思に対話装置100が応答することによって、ユーザ10と対話装置100との対話が開始される。対話は、対話制御部151が対話装置100の各要素を制御することによって行われる。たとえばユーザ10の発話がユーザ主導対話開始契機として検出された場合には、対話装置100は、ユーザ10の発話に応答する発話を行うことによって対話を開始する。対話装置100の応答内容の決定方法はとくに限定されるものではないが、たとえば、ユーザ10の特定の発話(ユーザの音声中の所定のキーワードなど)に対する対話装置100からの応答を図5の応答データテーブル161に記憶しておき、その応答データテーブル161にしたがって応答を決定することができる。応答データテーブル161は、たとえば保存部160に保存される。
図5は、応答データテーブル161の一例を示す図である。図5に示すように、応答データテーブル161は、ユーザ発話と、応答情報を対応づけて記述している。図5に示す例では、ユーザ発話「こんにちは」、「おはよう」、「行ってきます」、「ただいま」に対して、システム発話「こんにちは。アナタの名前は?」、「お早うございます!」、「行ってらっしゃい!」、「お帰りなさーい」がそれぞれ対応する。
このようにユーザ10の対話意思(発話など)に対して対話装置100が応答することを契機として、ユーザ10と対話装置100との対話を開始することができる。なお、ユーザ10の対話意思が発話以外の場合、たとえば、ユーザ10の所定の動作、ユーザ10の対話装置100への接触などの場合には、それらに対応する応答データテーブルを作成しておくとよい。
第2の検出モードでは、検出部130は、第1の検出モードでの動作(ユーザ10の対話意思を検出する)に加えて、さらに、ユーザ10が対話装置100から所定範囲内(たとえば領域Rの内側)に位置することを検出する。具体的に、第2の検出モードでは、検出部130が、カメラ111の画像(カメラ画像)によって検出されるユーザ10の存在、人感センサ112によって検出されるユーザ10の存在、対話装置以外の装置のユーザ操作によって検出されるユーザの存在、時刻および照度に基づいて推論されるユーザ10の存在、の少なくとも1つを検出することによって、ユーザ10の対話意思を検出し且つユーザ10が対話装置100から所定範囲内に位置することを検出する。
カメラ画像によって検出されるユーザ10の存在の検出は、カメラ111および画像処理部121などを用いて行われる。人感センサ112によって検出されるユーザ10の存在の検出は、人感センサ112およびセンサデータ処理部122を用いて行われる。対話装置以外の装置のユーザ操作によって検出されるユーザの存在の検出は、たとえば、赤外線センサ113およびセンサデータ処理部122などを用いて行われる。時刻および照度に基づいて推論されるユーザ10の検出は、照度センサ114およびセンサデータ処理部122などを用いて行われる。
検出部130は、第2の検出モードを実行することによっても、対話開始契機を検出することができる。先に説明したように、対話装置100からユーザ10へ伝達すべき情報が有る場合に、切替部140によって、検出部130は第2の検出モードに切り替えられる。具体的に、積極伝達フラグ(図4)が「true」となっている伝達情報が有る場合に、切替部140は、対話装置100からユーザ10へ伝達すべき情報が有ると判断して、検出部130を第2の検出モードに切り替える。第2の検出モードにおいても、第1の検出モードと同様に、ユーザ主導型対話開始契機が検出される。また、第2の検出モードでは、さらに、ユーザ10が対話装置100から所定範囲内(たとえば領域Rの内側)に位置する場合における対話開始契機(システム主導対話開始契機)が検出される。
第2の検出モードにおいてユーザ主導対話開始契機が検出された場合に実行される処理については、先に説明した第1の検出モードと同様である。
第2の検出モードにおいてシステム主導対話開始契機が検出されると、対話装置100からユーザ10に情報を伝達することによって、対話が開始される。具体的に、積極伝達フラグ(図4)が「true」となっている伝達情報が、ユーザ10に伝達される。図4に示す伝達情報データテーブル160aの場合には、積極伝達フラグが「true」となっているシステム発話「明日は雨が降りそうです。傘をお忘れなく!」および「午後は雷雨になります。雷が鳴り始めたら屋外に避難しましょう!」が、対話装置100からユーザ10に伝達される。
このように対話装置100からユーザ10に情報を伝達することを契機として、ユーザ10と対話装置100との対話を開始することができる。伝達情報がユーザ10に伝達されると、その伝達情報は、保存部160から削除される。伝達情報の削除は、制御部150によって行われてもよいし、伝達情報決定部165によって行われてもよい。
先に説明したように、対話は、対話制御部151が対話装置100の各要素を適切に制御することによって行われる。ここで、伝達情報決定部165は、対話中においても、保存部160に記憶されている情報を更新することができる。保存部160の更新は連続的に行われてもよいし、所定間隔で行われてもよい。対話中に保存部160が更新されることによって、対話装置100からユーザ10へ伝達すべき情報を補充して、対話を充実させることができる。保存部160の更新によって積極伝達フラグが「true」である伝達情報が発生すると、対話装置100からユーザ10にその情報が伝達される。一方、対話装置100からユーザ10へ伝達すべき情報がない場合には、対話装置100は、ユーザからの発話の待ち受けを行う。
対話装置100からユーザ10に伝達すべき情報が無く、さらに、ユーザ10から対話装置100への発話がないと判断されると、ユーザ10と対話装置100との対話が終了する。その後、対話装置100は、ふたたび対話開始の契機の待ち受けを行う。具体的に、検出部130が第1の検出モードまたは第2の検出モードを実行して、対話を開始するタイミングを検出する。対話の終了に際して、ユーザ10から対話装置100への発話がないことの判断は、たとえばユーザ10の発話が一定時間存在しないか否かに基づいて行うことができる。その際、カメラ画像におけるユーザ10(の顔領域)の有無など、ユーザ10が対話装置100の近くにいるか否かという情報などを考慮してもよい。
次に、出力制御部152について説明する。出力制御部152は、対話装置100がユーザ10に対して所定の表現を出力するように、対話装置100を制御する。
出力制御部152は、対話装置100からユーザ10へ伝達すべき優先度が所定レベル以上の情報が有り且つユーザ10が対話装置100から所定範囲(たとえば領域R)よりも外側に位置する場合に、ユーザ10を所定範囲内(たとえば図1に示す領域Rの内側)に誘導するための表現を出力するように、対話装置100を制御する。
この場合、出力制御部152は、積極伝達フラグ(図4)が「true」の伝達情報が1つ以上有る場合に、視覚的にそのことを示すようにキャラクタ11の動作を変更する機能(積極的伝達情報有無通知機能)を有する。たとえば図6(b)に示すような手を振る動作に、キャラクタ11の動作が変更される。この場合、対話装置100からユーザ10に音声によって強制的に情報を伝達することはないが、ユーザ10の視界にキャラクタ11の動作が入ることによって、ユーザ10を対話装置100の近くに誘導することができる。
また、出力制御部152は、対話装置からユーザへ伝達すべき優先度が所定レベル未満の情報が有る場合には、当該情報の存在をユーザに伝達するための表現を出力するように、対話装置100を制御する。
この場合、出力制御部152は、情報伝達フラグが「true」の伝達情報が1つもない一方で、情報伝達フラグが「false」の伝達情報が1つ以上有る場合には、視覚的にそのことを示すようにキャラクタ11の動作を変更する機能(非積極的伝達情報評価提示機能)を有する。たとえば図6(a)に示すようなテレビを見ている動作に、キャラクタ11の動作が変更される。なお、図示しないが、それに対する評価(図4の評価情報)も表示される。この場合、強制的にユーザ10に伝達しなければならないほどユーザ10にとって有益な情報であるか否かは不明であるが、ユーザ10が興味を持つ可能性のある情報の存在を、ユーザに知らせることができる。なお、評価情報を表示する代わりに、音声によって評価情報をユーザ10に伝達してもよい。その場合には、通常の対話時よりも音量を小さくするなど、ユーザ10にとって注意力をあまり要しない方法で評価情報を伝達することが好ましい。
なお、その他のキャラクタ11の動作として、図6(c)に示す例では、キャラクタ11は、話をしている動作を示す。この動作は、ユーザ10と対話装置100との対話中に行われる。
図7は、対話装置100の状態遷移図である。図7に示すように、対話装置100は、SLEEP状態、WAIT状態およびDIALOGUE状態のいずれかの状態に置かれる。
SLEEP状態は、対話装置100の初期状態を示す。このSLEEP状態では、対話開始契機としてユーザ主導対話開始契機のみが検出される。すなわち、SLEEP状態においては、検出部130は、第1の検出モードを実行する。この状態は、ユーザ10がテレビ鑑賞や家族との会話など普段の生活をしていることを想定したものであり、積極的には対話を開始しない。キャラクタ11の動作も、そのことを明示するためテレビを観ているなどの表示(図6(a))にする。この時点で積極伝達フラグ(図4)が「false」の伝達情報が1つ以上あれば、キャラクタ11は評価情報を伝達するための動作を示す。
SLEEP状態において、ユーザ10の対話意思が検出されると、対話が開始されて、対話装置100はDIALOG状態に移行する(AR1)。一方、SLEEP状態において、伝達情報決定部165が保存部160を(たとえば定期的に)更新することによって、積極伝達フラグ(図4)が「true」の伝達情報が1つ以上生成されると、対話装置100は、WAIT状態に移行する(AR2)。
WAIT状態においては、SLEEP状態と同様にユーザ主導対話開始契機が検出され、さらに、システム主導対話開始契機も検出される。すなわち、WAIT状態においては、検出部130は、第2の検出モードを実行する。キャラクタ11は、ユーザ10に伝達すべき内容が有ることを視覚的に表現するよう手を振るなどの動作(図6(b))を示す。また、ユーザ10が対話装置100の近くに存在していることが検出されると、対話が開始され、対話装置100はDIALOG状態に移行する(AR3)。
DIALOGUE状態においては、ユーザ10と対話装置100との対話が進行中である。対話中、積極伝達フラグ(図4)が「true」の伝達情報があれば、その内容が音声として対話装置100からユーザ10へ伝達される。また、対話装置100は、ユーザ10の発話を音声認識し、応答する(図5の応答情報を用いて返答する)。キャラクタ11は、対話をしている動作を示す(図6(c))。対話が終了すると、対話装置100はWAIT状態に移行する(AR4)。
対話が終了してWAIT状態となったときには、ほとんどの場合、積極伝達フラグ(図4)が「true」であった伝達情報が先の対話によってユーザ10に伝達された後に削除されているので、積極伝達フラグが「true」の伝達情報が存在せず、対話装置100はSLEEP状態に移行する(AR5)。
図8は、対話装置100(図2)の状態遷移を説明するためのフローチャートである。このフローチャートの処理は、とくに記載がない場合は、対話装置100の制御部150によって実行され得る。
はじめに、対話装置100は、現在の状態を判断する(ステップS1)。SLEEP状態の場合、ステップS2に処理が進められる。WAIT状態の場合、ステップS6に処理が進められる。DIALOGUE状態の場合、ステップS10に処理が進められる。
SLEEP状態の場合、対話装置100の検出部130は、ユーザ10に対話意思が有るか否か判断する(ステップS2)。ユーザに対話意思が有る場合(ステップS2:YES)、対話装置100は、ステップS4に処理を進める。そうでない場合(ステップS2:NO)、対話装置100は、ステップS3に処理を進める。
ステップS2においてユーザに対話意思が無い場合(ステップS2:NO)、対話装置100は、ユーザ10に伝達すべき情報が有るか否か判断する(ステップS3)。この判断は、たとえば切替部140によって行われる。ユーザ10に伝達すべき情報が有る場合(ステップS3:YES)、対話装置100は、ステップS5に処理を進める。そうでない場合(ステップS3:NO)、対話装置100は、ステップS1に再び処理を戻す。
ステップS2においてユーザに対話意思が有る場合(ステップS2:YES)、対話装置100は、DIALOGUE状態へ移行する(ステップS4)。その後、対話装置100は、ステップS1に再び処理を戻す。
WAIT状態の場合、対話装置100の検出部130は、ユーザに対話意思が有るか否か判断する(ステップS6)。ユーザに対話意思が有る場合(ステップS6:YES)、対話装置100は、ステップS4に処理を進める。そうでない場合(ステップS6:NO)、対話装置100は、ステップS7に処理を進める。
ステップS6においてユーザ10に対話意思が無い場合(ステップS6:NO)、対話装置100の検出部130は、ユーザ10が近くにいるか否か判断する(ステップS7)。ユーザ10が近くにいる場合(ステップS7:YES)、対話装置100は、ステップS4に処理を進める。そうでない場合(ステップS7:NO)、対話装置100は、ステップS7に処理を進める。
ステップS7においてユーザ10が近くにいない場合(ステップS7:NO)、対話装置100は、ユーザ10へ伝達すべき情報が無いか否か判断する(ステップS8)。この判断は、たとえば切替部140によって行われる。ユーザ10へ伝達すべき情報が無い場合(ステップS8:YES)、対話装置100は、ステップS9へ処理を進める。そうでない場合(ステップS8:NO)、対話装置100は、ステップS1に再び処理を戻す。
ステップS8においてユーザ10へ伝達すべき情報が無い場合(ステップS8:YES)、対話装置100は、SLEEP状態へ移行する(ステップS9)。その後、対話装置100は、ステップS1に再び処理を戻す。
DIALOGUE状態の場合、対話装置100は、ユーザ10との対話が終了したか否か判断する(ステップS10)。この判断は、たとえば対話制御部151によって行われる。対話が終了した場合(ステップS10:YES)、対話装置100は、ステップS5に処理を進める。そうでない場合(ステップS10:NO)、対話装置100は、ステップS1に再び処理を戻す。
なお、図8には図示しないが、保存部160の情報は、適時更新されるものとする。保存部160が更新されることによって、ユーザ伝達すべき情報が有るか否か(ステップS3,S8)における判断結果が異なるものと成り得る。
図8に示すフローチャートによれば、対話装置100が、ハンズフリー状態にあるユーザ10との対話を開始するタイミングを検出するための複数の検出モード(第1の検出モードおよび第2の検出モード)のうちいずれかの検出モードを用いて、対話を開始するタイミングを検出するステップ(ステップS2,S3,S6,S7)と、対話装置100が、対話装置100からユーザ10へ伝達すべき情報の有無に応じて、検出するステップにおいて用いる検出モードを切り替えるステップ(S5,S9)と、が実行される。
次に、対話装置100の作用効果について説明する。対話装置100は、ハンズフリー状態にあるユーザ10との対話を開始するタイミングを検出するための複数の検出モードを実行可能に構成された検出部130と、対話装置100からユーザへ伝達すべき情報の有無に応じて、検出部130の検出モードを切り替える切替部140と、を備える。これにより、対話装置100からユーザ10へ伝達すべき情報の有無に応じて切り替えられた検出モードを用いて、ユーザ10との対話を開始するタイミングを検出する。対話を開始すべきか否かなどの基準を柔軟に変更することによって、適切なタイミングで対話を開始することができる。
複数の検出モードは、ユーザ10の対話意思を検出する第1の検出モードと、ユーザ10の対話意思を検出し且つユーザ10が対話装置100から所定範囲内(領域Rの内側)に位置することを検出する第2の検出モードとを含んでおり、切替部140は、対話装置100からユーザ10へ伝達すべき情報が無い場合には、検出部130を第1の検出モードに切り替え、対話装置100からユーザ10へ伝達すべき情報が有る場合には、検出部130を第2の検出モードに切り替える。これにより、ユーザ10へ伝達すべき情報が無い場合には、第1の検出モードを用いて、ユーザ10に対話意思が有るときにのみ、対話を開始することができる。したがって、たとえばユーザ10と他人との会話に反応して対話を開始してしまうことを防ぐことができる。また、ユーザ10へ伝達すべき情報が有るときには、第2の検出モードを用いてユーザ10が所定範囲内に位置している(近くにいる)ときにユーザ10との対話を開始して、情報を確実にユーザへ伝達することができる。よって、適切なタイミングでユーザ10との対話を開始することができる。
また、第1の検出モードでは、検出部130が、ユーザの音声中の所定のキーワード、ユーザの所定の動作、ユーザの対話装置への接触、の少なくとも1つを検出することによって、ユーザの対話意思を検出する。これにより、たとえば、ユーザの音声発話による対話装置への呼びかけ、ユーザの動作(ジェスチャー)、またはユーザの対話装置への接触行為などを契機として、対話を開始することができる。たとえば、キーワード型音声入力検出機能(キーワードの検出)を備えることでユーザ10から対話装置100への音声発話による呼びかけに答えることが可能となる。ジェスチャ入力機能(動作の検出)を備えることで発話をせずに手招きなどの手振りで対話装置100に対話開始の契機を与えることができる。物理インタラクションセンシング機能(接触の検出)を備えることで、物理的なインタラクションによる対話開始を行うことができる。
また、第2の検出モードでは、検出部130が、カメラ画像によって検出されるユーザ10の存在、人感センサ112によって検出されるユーザ10の存在、対話装置100以外の装置のユーザ操作によって検出されるユーザ10の存在、時刻および照度に基づいて推論されるユーザ10の存在、の少なくとも1つを検出することによって、ユーザ10の対話意思を検出し且つユーザが対話装置100から所定範囲内に位置することを検出する。これにより、ユーザ10の存在を明確に検出して、より適切なタイミングでユーザ10との対話を開始することができる。たとえば、画像処理機能(カメラ画像による検出)により明確に対話装置100の前方にユーザ10が存在することを契機とした話しかけが可能となる。人感センサ112による検出により、夜間などの画像処理による検出ができない場合にも話しかけが可能となる。周辺機器操作を検出することにより対話装置100と正対しない場合にもユーザ10への話しかけが可能となる。また、推論型検出手段を備えることによって、特殊な画像処理やセンサを要さずにユーザ10の存在を検出して話しかけを行ったり、複合的にセンサの検出結果を用いることで話しかけタイミングの精度を向上させることが可能となる。
また、対話装置100は、対話装置100からユーザ10へ伝達すべき優先度が所定レベル以上の情報が有り且つユーザ10が対話装置100から所定範囲よりも外側に位置する場合に、ユーザ10を所定範囲内に誘導するための表現を出力する出力制御部152、をさらに備える。これにより、ユーザ10を対話装置100の近くに誘導して、早期に対話を開始することができる。したがって、ユーザ10へ伝達すべき優先度の高い情報を、早期にユーザ10に伝達することができる。すなわち、出力制御部152のキャラクタ動作制御機能が、ユーザ10へ伝達すべき情報が存在する場合に、視覚的にそれをアピールすることで対話装置100への接近を促し、自然にユーザ10との対話を開始することが可能となる。
出力制御部152は、対話装置100からユーザ10へ伝達すべき優先度が所定レベル未満の情報が有る場合には、当該情報の存在をユーザ10に伝達するための表現を出力する。これにより、ユーザ10に、情報の存在を知らせて、ユーザ10の興味を喚起することができる。したがって、ユーザ10が対話意思を有するようになる可能性が高まる。すなわち、ユーザ10にとって有益である可能性のある情報が存在する場合に、対話装置100自身の反応を提示し、間接的にその存在をユーザ10へ提示することによって、ユーザ10の興味を喚起し対話へ誘導することが可能となる。