図1は、制御システム1のシステム構成を示すシステム構成図である。制御システム1は、センサー10、カメラ20、マイク30、スピーカー40、対話装置50及び制御装置100を備える。制御システム1では、制御装置100に入力された情報に基づいて、制御装置100が、対話装置50の動作を制御する。制御システム1では、制御装置100に入力された情報に基づいて、制御装置100が、スピーカー40から音声を出力させる。
センサー10は、対話装置50の近傍に訪れた人を検出する。センサー10は、人を検出すると、検出された人に関する情報を制御装置100に出力する。検出される情報は、センサー10の種類に応じて異なってもよい。例えば、センサー10は、人を検知すると、人が訪れたことを示す信号を制御装置100に出力してもよい。例えば、センサー10は、デプスセンサ等の人の位置を検出するセンサーが用いられてもよい。この場合、センサー10は、検出された人の位置を示す座標情報を制御装置100に出力してもよい。センサー10は、対話装置50の近傍に設置される。なお、センサー10は、複数設置されてもよい。この場合、センサー10は、様々な方向の人を検出できるように向きを変えて設置されてもよい。センサー10は、取得部の一具体例である。
カメラ20は、対話装置50近傍の動画像を撮像する。カメラ20は、例えば対話装置50に対峙する人物を撮像する。カメラ20は、カメラ等の撮像装置を制御装置100に接続するためのインタフェースであってもよい。この場合、カメラ20は、撮像装置において撮像された動画像から映像信号を生成し、制御装置100に入力する。カメラ20は、対話装置50に対峙する人を撮像できる位置であれば、どの位置に設けられてもよい。カメラ20は、取得部の一具体例である。
マイク30は、対話装置50近傍の音声を収音する。マイク30は、対話装置50の近傍に設置される。マイク30は、例えば対話装置50に対峙する人によって発話された音声を収音する。マイク30は、例えば対話装置50に対して発話された音声を収音する。マイク30は、収音された音声に基づいて音声信号を生成する。マイク30は、生成された音声信号を制御装置100に出力する。なお、マイク30は、複数設置されてもよい。この場合、マイク30は、様々な方向の音声を収音できるように向きを変えて設置されてもよい。なお、マイク30は、外付けマイク等の収音装置を制御装置100に接続するためのインタフェースであってもよい。この場合、マイク30は、収音装置において入力された音声から音声信号を生成し、制御装置100に出力する。マイク30は、取得部の一具体例である。
スピーカー40は、制御装置100から出力された音声信号を音声として出力する。スピーカー40は、対話装置50の近傍に設置される。このように構成されることで、対話装置50が、対話装置50に対峙する人に話しかけているように見せることができる。スピーカー40は、複数設けられてもよい。スピーカー40は、複数設けられることで複数の人と同時に対話をすることが可能になる。スピーカー40は、例えば指向性スピーカーであってもよい。
対話装置50は、自装置に対峙する人に話しかけて、対話を行う装置である。対話装置50は、制御装置100の制御に基づいて、所定の動作を行う。対話装置50は、例えばロボット等の装置であってもよい。以下、本実施形態では、対話装置50は、ロボットであるとして説明する。ロボットは、例えば、首、肩又は腕の各関節部に設けられた駆動機構を作動して動作してもよい。ロボットは、例えば、肩又は脚等の各関節部に設けられた駆動機構を作動して歩行する動物型であってもよい。ロボットは、肩又は脚等の各関節部に設けられた駆動機構を作動して自立歩行する二足歩行等のロボットであってもよい。ロボットは車輪又は無限軌道で移動できるような移動型ロボットであってもよい。ロボットは、例えばテーブルや受付台等の板状の台の上に設置される。
図2は、対話装置50の一具体例を示す図である。対話装置50は、頭部510と、胴体部とを備える。胴体部は、対話装置50の胴体と、胴体に接続される左腕部520、右腕部530及び脚部540で構成される。頭部510は、マイク511、カメラ512、第一発光部513及び第二発光部514を備える。頭部510は、制御装置100の機器制御部167の制御に基づいて、上下左右前後の3軸方向に駆動する。対話装置50は、例えば機器制御部167の制御に基づいて、所定の方向に頭部510の向きを制御する。なお、頭部510の前面部を対話装置50の顔として説明する。対話装置50の前面部は、頭部510の面のうち、マイク511、カメラ512、第一発光部513及び第二発光部514が備えられる面である。
マイク511は、対話装置50近傍の音声を収音する。マイク511は、例えば対話装置50が対峙する人によって発話された音声を収音する。マイク511は、収音された音声に基づいて音声信号を生成する。マイク511は、生成された音声信号を制御装置100に記録してもよいし、ネットワークを介して外部の装置に記録してもよい。
カメラ512は、カメラ512が備えられる対話装置50の前面部が向いている方向の動画像又は静止画像を撮像する。例えば、カメラ512は、対話装置50が対峙する人及び対話装置50が対峙する人の近傍の動画像又は静止画像を撮像する。カメラ512は、撮像された動画像又は静止画像を制御装置100に記録してもよいし、ネットワークを介して外部の装置に記録してもよい。カメラ512は、機器制御部167の制御に基づいて、動画像又は静止画像を撮像してもよい。
第一発光部513は、フルカラーLED(Light Emitting Diode)等の発光部材である。第一発光部513は、機器制御部167の制御に基づいて、所定の色で発光してもよい。例えば、機器制御部167が、第一発光部513に緑色に発光させる制御を行った場合について説明する。この場合、第一発光部513は、緑色に発光する。なお、第一発光部513は、対話装置50の右目と左目とに相当する。第一発光部513は、左右の目を同時に同じ色で発光してもよいし、左右の目を同時に異なる色で発光してもよいし、交互に異なる色で発光してもよいし、交互に同じ色で発光してもよい。
第二発光部514は、フルカラーLED等の発光部材である。第二発光部514は、機器制御部167の制御に基づいて、所定の色で発光してもよい。例えば、機器制御部167が、スピーカー40の音声出力中に第二発光部514を赤色に点滅させる制御を行った場合について説明する。この場合、第二発光部514は、スピーカー40の音声出力中に赤色に点滅する。なお、第二発光部514は、対話装置50の口に相当する。このように構成されることで、スピーカー40が音声を出力している時に、第二発光部514を点滅させることができる。このように第二発光部514が発光することで、対話装置50が、対話装置50に対峙している人と対話しているように見せることができる。
左腕部520は、左肩関節部521と左腕関節部522とを備える。左肩関節部521は、左腕部520を上下左右に駆動させる駆動機構である。左肩関節部521は、制御装置100の制御に基づいて、回転駆動する。例えば、機器制御部167が、左腕部520を上方向に移動させる制御を行った場合につい説明する。この場合、左肩関節部521は左腕部520を上方向に移動させるように回転駆動させる。右腕部530は、右肩関節部531と右腕関節部532とを備える。右腕部530は、左腕部520と同様に、機器制御部167の制御に基づいて、右肩関節部531と右腕関節部532とを駆動させる。脚部540は、機器制御部167の制御に基づいて、対話装置50の向きを変更したり、前後左右に移動させたりする。
図1に戻って、制御システム1の説明を続ける。制御装置100は、パーソナルコンピュータ、タブレットコンピュータ又はサーバ等の情報処理装置を用いて構成される。制御装置100は、対話装置50を動作させる制御機能が実装されている。制御機能は、ハードウェアによって制御装置100に実装されてもよいし、ソフトウェアのインストールによって実装されてもよい。制御装置100は、通信部101、人情報記憶部102、スコアマップ記憶部103、発話内容記憶部104、動作内容記憶部105及び制御部106を備える。
通信部101は、ネットワークインタフェース等の通信装置である。通信部101は所定のプロトコルでネットワークに通信可能に接続する。通信部101は、制御部106の制御に応じてネットワークを介して、他の装置との間でデータ通信する。
人情報記憶部102は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。人情報記憶部102は、人情報テーブルを記憶する。人情報テーブルは、人と対話装置50との対話の履歴を人毎に記憶する。人は、センサー10によって検知された人を示す。人情報テーブルについては後述する。人情報記憶部102は、記憶装置の一具体例である。人情報テーブルは、履歴情報の一具体例である。履歴情報は、所定の記憶装置に記憶された人と対話装置50との対話の履歴を示す。
図3は、人情報テーブルの一具体例を示す図である。人情報テーブルは、人情報レコードを有する。人情報レコードは、人識別子、表情、人発話回数、視線、滞在時間、対話装置発話回数、顔を向けた回数、発話時間、言語及び優先度の各値を有する。人情報レコードは、人毎に生成される。人識別子は、人情報レコードを一意に識別可能な情報である。人識別子は、対話装置50近傍に訪れた人に対応付けされる。人識別子は、例えば数字及び文字を組み合わせた情報であってもよい。人識別子は、他の人識別子と重複しない情報であればどのような情報であってもよい。人識別子は、人情報レコードが生成される際に人識別部161によって決定される。表情は、人の表情に関する情報を示す。表情は、カメラ20によって撮像された人の動画像に基づいて推定される。表情は、特徴推定部162によって推定される。表情は、例えば、笑顔、悲しい顔、怒り顔又は無表情等の人の表情に関する情報であればどのような情報であってもよい。人発話回数は、人から対話装置50に対する発話の回数を示す。人発話回数は、人が発話した発話内容の音声がマイク30で収音される都度、1計数される。人発話回数は、例えば音声処理部164によって計数される。視線は、人の視線に関する情報を示す。視線は、カメラ20によって撮像された人の動画像に基づいて推定される。視線は、特徴推定部162によって推定される。視線は、例えば、「対話装置」、「対話装置以外」又は「目を閉じている」の3つのいずれかで示されてもよい。「対話装置」では、人の視線が対話装置50に向いていることを示す。「対話装置以外」では、人の視線が対話装置以外に向いていることを示す。「目を閉じている」では、人の目が閉じていることを示す。滞在時間は、人が対話装置50の近傍に滞在している時間を示す。滞在時間は、センサー10によって検知されてから計測が開始される。対話装置発話回数は、対話装置50から人に対する発話の回数を示す。対話装置発話回数は、スピーカー40から人に対して発話が行われる都度、1計数される。顔を向けた回数は、対話装置50が人に顔を向けた回数を示す。顔を向けた回数は、対話装置50が人に顔を向けると決定される都度、1計数される。発話時間は、対話装置50が人に対して発話を行った累積時間を示す。発話時間は、対話装置50が人に対して発話を行う都度、計測される。言語は、人に対して出力される発話の言語を示す。言語は、人によって指定されてもよい。優先度は、人に対話装置50を向けるか否かを定める指標である。優先度は、所定のタイミングで人毎に算出される。優先度が大きいほど、対話装置50は、人に顔や体を向けやすくなる。
図3に示される例では、人情報テーブルの最上段の人情報レコードは、人識別子の値が“User001”、表情の値が“笑顔”、人発話回数の値が“2”、視線の値が“対話装置”、滞在時間の値が“18秒”、対話装置発話回数の値が“3”、顔を向けた回数の値が“2”、発話時間の値が“25秒”、言語の値が“日本語”、優先度の値が“15”である。従って、人情報テーブルの最上段のレコードは、人識別子“User001”で識別される人に関する情報が登録されたレコードである。このレコードによると、人は、“笑顔”であり、対話装置50に対して2回発話を行っている。また、人は視線を対話装置に向けている。人は対話装置50の近傍に18秒間いる。また、対話装置50は、人に発話を3回行っており、発話時間は25秒である。また、対話装置50は、人に顔を2回向けている。対話装置50は、人に発話する際には日本語で発話を行う。人の優先度は15である。なお、図3に示される人情報テーブルは一具体例に過ぎない。そのため、図3とは異なる態様で人情報テーブルが構成されてもよい。例えば、人情報テーブルは、対話装置50によって顔を向けられていた時間のカラムを有していてもよい。また、人情報レコードは、個人ではなく、グループ毎に生成されてもよい。グループとは、家族や友達等の複数の人で構成される人の集合である。
スコアマップ記憶部103は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。スコアマップ記憶部103は、人の優先度を算出するために用いられる各種の情報を記憶する。例えば、スコアマップ記憶部103は、発話内容スコアテーブル、発話履歴スコアテーブル及び人状態スコアテーブルを記憶する。各スコアテーブルについては後述する。
発話内容記憶部104は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。発話内容記憶部104は、対話装置50によって発話される発話内容を記憶する。発話内容記憶部104は、所定の文字列と、発話内容とを対応付けて記憶する。所定の文字列とは、例えば人によって発話された内容を示す文字列である。また、発話内容記憶部104は、所定の文字列の代わりに、センサー10によって新しく人が訪れたことが検知されたことと、発話内容とを対応付けて記憶してもよい。発話内容は、予め発話内容記憶部104に記録される。発話内容記憶部104は、日本語以外の言語で表される発話内容を記憶していてもよい。
動作内容記憶部105は、磁気ハードディスク装置や半導体記憶装置等の記憶装置を用いて構成される。動作内容記憶部105は、対話装置50が人に対して振る舞う動作の内容(以下、「動作内容」という。)を記憶する。動作内容は、例えば、所定の人に対して顔を向ける動作であってもよい。動作内容は、例えば、所定の人に対して体を向ける動作であってもよい。動作内容は、例えば、所定の人に対して左腕を上げる動作であってもよい。動作内容は、対話装置50によって可能なノンバーバルな動作であればどのような内容であってもよい。所定の人とは、例えば動作の対象として決定された人である。動作内容記憶部105は、動作内容と発話内容とを対応付けて記憶する。また、動作内容記憶部105は、人情報レコードの各カラムのとりうる値と、動作内容とを対応付けて記憶していてもよい。このように構成されることで、制御装置100は、人の状態や、対話装置50の発話内容に基づいて、対話装置50を動作させることができる。動作内容は、予め動作内容記憶部105に記録される。
図1に戻って、制御システム1の説明を続ける。制御部106は、制御装置100の各部の動作を制御する。制御部106は、CPU(Central Processing Unit)等のプロセッサ及びRAM(Random Access Memory)を用いて構成される。制御部106は、プロセッサが特定のプログラムを実行することによって、人識別部161、特徴推定部162、優先度算出部163、音声処理部164、発話決定部165、動作決定部166及び機器制御部167として機能する。
人識別部161は、対話装置50に対峙する人を識別する。具体的には、人識別部161は、センサー10によって検出された人に関する情報をセンサー10から取得する。人識別部161は、取得した人の情報に基づいて、新しく対話装置50の近傍に訪れた人であるか否かを識別する。センサー10によって検出された人が対話装置50を新しく訪れた人である場合、人識別部161は、検出された人に関する人情報を生成する。人識別部161は、生成した人情報を含む人情報レコードを作成する。人識別部161は、生成した人情報レコードを人情報テーブルに新たに追加することによって、新たに検出された人の情報を登録する。なお、人識別部161は、対話装置50を新しく訪れた人であるか否かを識別するために、顔認証等の公知の手段を用いてもよい。なお、人識別部161は、人情報レコードによって示される人に関する情報をセンサー10から取得できなくなった場合、当該人情報レコードを人情報テーブルから削除してもよい。このように構成されることで、制御装置100は、対話装置50の近傍から立ち去った人に関する人情報レコードを削除することが可能になる。
特徴推定部162は、センサー10によって検出された人の特徴を推定する。特徴推定部162は推定された特徴を人情報レコードに記録する。具体的には、特徴推定部162は、カメラ20によって撮像された人の動画像に基づいて、撮像された人の特徴を推定する。例えば、特徴推定部162は、撮像された人の表情を推定する。特徴推定部162は、撮像された人の動画像を解析することで、人が、笑顔、悲しい顔、怒り顔又は無表情のいずれの表情であるかを推定する。特徴推定部162は、推定された表情を人情報レコードの表情カラムに記録する。また、特徴推定部162は、撮像された人の視線を推定する。特徴推定部162は、撮像された人の動画像を解析することで、人の視線が「対話装置50」、「対話装置50以外」又は「目を閉じている」のいずれであるか推定する。特徴推定部162は、推定された視線を人情報レコードの視線カラムに記録する。なお、特徴推定部162は、表情の推定又はカラムの推定にはいずれも公知の手段を用いて推定してもよい。
優先度算出部163は、センサー10、カメラ20及びマイク30によって取得された情報と、スコアマップ記憶部103とに基づいて、人毎に優先度を算出する。優先度算出の具体的な手法については後述する。優先度算出部163は、算出された優先度を人情報テーブルに記録する。
音声処理部164は、音声認識処理を実行する。音声認識処理は、音声信号に基づいて文字列を生成する処理である。音声処理部164は、音声認識処理を実行することで、マイク30によって出力された音声信号に基づいて文字列を生成する。音声処理部164は、生成された文字列を発話決定部165に出力する。音声処理部164は、公知の手法を用いて文字列を生成してもよい。なお、センサー10によって検知された人が複数いる場合について説明する。この場合、音声処理部164は、公知の音源分離処理に基づいて、人と人によって発話された音声に関する音声信号とを対応付けする。
発話決定部165は、対話装置50の発話内容を決定する。具体的には、発話決定部165は、音声処理部164によって生成された文字列に基づいて発話内容を決定する。発話決定部165は、生成された文字列に対応付けされた発話内容を発話内容記憶部104から取得する。発話決定部165は、取得された発話内容を対話装置50の発話内容として決定する。
動作決定部166は、対話装置50の動作内容を決定する。具体的には、動作決定部166は、対話装置50の顔を向ける方向を決定する。対話装置50が顔を向ける方向は、検知された人のうち、いずれか一人のいる方向である。例えば、動作決定部166は、対話装置50の顔を向ける方向として、人毎に算出された優先度のうち、優先度の最も高い人の方向を対話装置50の顔を向ける方向として決定する。この場合、動作決定部166は、センサー10やカメラ20によって取得された情報に基づいて、人の位置を示す座標を推定する。動作決定部166は、推定された座標の方向に対話装置50の顔を向けるように頭部510や脚部540の角度を決定する。
また、動作決定部166は、対話装置50の顔を向ける方向以外の動作内容を決定する。例えば、動作決定部166は、対話装置50の発話内容に対応付けされた動作内容に決定してもよい。動作決定部166は、人情報レコードに記録された情報に基づいて動作内容を決定してもよい。動作決定部166は、決定された動作内容を動作内容記憶部105から取得する。
機器制御部167は、決定された動作内容及び発話内容に基づいて、スピーカー40及び対話装置50を制御する。例えば、機器制御部167は、決定された発話内容に基づいて、音声信号を生成する。機器制御部167は、音声信号をスピーカー40に出力することで、スピーカー40から音声を出力させる。なお、機器制御部167は、複数のスピーカーが設置されている場合、複数の人に対する音声信号を同時に出力してもよい。このとき、機器制御部167は、人のいる位置に応じて、スピーカー40毎に異なる音声信号を出力してもよい。また、機器制御部167は、決定された動作内容に基づいて、対話装置50を制御する。
図4は、発話内容スコアテーブルの一具体例を示す図である。発話内容スコアテーブルは、対話装置50の発話内容とスコアとを対応付けたテーブルである。対話装置50が人に所定の発話を行った場合について説明する。優先度算出部163は、対話装置50によって行われた発話内容に対応付けされたスコアを優先度の算出に用いる。発話内容スコアテーブルは、発話内容スコアレコードを有する。発話内容スコアレコードは、発話内容及びスコアの各値を有する。発話内容テーブルは、発話内容毎に発話内容レコードを有する。発話内容は、対話装置50から人に対して発話される内容を示す。発話内容は、発話内容記憶部104に記憶される発話内容と同じ内容を示す。スコアは、複数の人のうち、どの人に顔を向けるべきかを数値化した情報である。スコアは、優先度の算出に用いられる。
図4に示される例では、発話内容スコアテーブルの最上段の発話内容スコアレコードは、発話内容の値が“挨拶(おはよう、こんにちは)”、スコアの値が“5”である。従って、発話内容スコアテーブルの最上段のレコードによると、対話装置50が、おはよう又はこんにちは等の挨拶を人に行う場合、人に5のスコアを用いて優先度が算出される。なお、図4に示される発話内容スコアテーブルは一具体例に過ぎない。そのため、図4とは異なる態様で発話内容スコアテーブルが構成されてもよい。例えば、発話内容スコアテーブルは、他の言語で表された発話内容のカラムを有していてもよい。
図5は、発話履歴スコアテーブルの一具体例を示す図である。発話履歴スコアテーブルは、対話装置50から人に対する発話や動作に関する情報とスコアとを対応付けたテーブルである。発話履歴スコアテーブルは、発話履歴スコアレコードを有する。発話履歴スコアレコードは、履歴内容、回数・時間及びスコアの各値を有する。履歴内容は、対話装置50から人に対する発話や動作に関する内容を示す。履歴内容は、例えば、顔を向けた回数、対話装置発話回数及び発話時間を有する。履歴内容は、人状態レコードのカラムのうち、対話装置50の発話や動作に関する内容を示す。回数・時間は、履歴内容に示される発話又は動作が行われた回数を示す。回数・時間は、履歴内容に示される発話又は動作が行われた時間を示す。履歴内容及び回数・時間はスコアに対応付けされる。
図5に示される例では、発話履歴スコアテーブルの最上段の発話内容スコアレコードは、履歴内容の値が“顔を向けた回数”、回数・時間の値が“5回以上”、スコアの値が“1”である。従って、発話履歴スコアテーブルの最上段のレコードによると、対話装置50が人に対して、5回以上顔を向けている場合、人に1のスコアを用いて優先度が算出される。なお、図5に示される発話履歴スコアテーブルは一具体例に過ぎない。そのため、図5とは異なる態様で発話履歴スコアテーブルが構成されてもよい。
図6は、人状態スコアテーブルの一具体例を示す図である。人状態スコアテーブルは、人の状態に関する情報とスコアとを対応付けたテーブルである。人状態スコアテーブルは、人状態スコアレコードを有する。人状態スコアレコードは、人の状態、詳細及びスコアの各値を有する。人の状態は、人の状態に関する内容を示す。人の状態は、例えば、表情、人発話回数、視線及び滞在時間を有する。人の状態は、人状態レコードのカラムのうち、人の状態に関する内容を示す。詳細は、人の状態の具体的な内容を表す。例えば、図6では、人の状態“表情”の具体的な内容として“笑顔”や“悲しい顔”が示されている。スコアは、人の状態に対して与えられる得点を示す。スコアは、人の表情、人発話回数、人の視線及び人の滞在時間の具体的な内容毎に設定されている。
図6に示される例では、人状態スコアテーブルの最上段の人状態スコアレコードは、人の状態の値が“表情”、詳細の値が“笑顔”、スコアの値が“3”である。従って、人状態スコアテーブルの最上段のレコードによると、人が対話装置50に対して、笑顔である場合、人に3のスコアを用いて優先度が算出される。なお、図6に示される人状態スコアテーブルは一具体例に過ぎない。そのため、図6とは異なる態様で人状態スコアテーブルが構成されてもよい。
図7は、人情報の生成に関する処理の一具体例を示すフローチャートである。人情報の生成に関する処理は、例えばセンサー10によって人が検出される都度実行される。制御装置100の人識別部161は、センサー10によって検出された人を識別する(ステップS101)。具体的には、人識別部161は、センサー10によって検出された人に関する情報をセンサー10から取得する。人識別部161は、取得された人に関する情報に基づいて、対話装置50の近傍に新しく訪れた人であるか否かを識別する。
検出された人が対話装置50を新しく訪れた人である場合(ステップS102:YES)、人識別部161は、検出された人に関する人情報を生成する(ステップS103)。人識別部161は、生成された人情報を人情報レコードとして人情報テーブルに記録する。検出された人が対話装置50を新しく訪れた人でない場合(ステップS102:NO)、処理は、ステップS104に遷移する。
制御装置100の特徴推定部162は、検出された人の特徴を推定する(ステップS104)。具体的には、特徴推定部162は、カメラ20によって撮像された人の動画像に基づいて、撮像された人の表情を推定する。特徴推定部162は、カメラ20によって撮像された人の動画像に基づいて、撮像された人の視線を推定する。特徴推定部162は推定された表情及び視線を人情報レコードに記録する(ステップS105)。
図8は、対話装置50の動作を決定する処理の一具体例を示すフローチャートである。対話装置50の動作を決定する処理(以下、「動作決定処理」という。)は、例えば優先度を算出するタイミングで実行される。優先度を算出するタイミングは、例えば人が新たに来たことが検知されたタイミング、対話装置50による発話が終わったタイミング、所定の間隔(例えば、5秒に1回)などである。この場合、優先度を算出するタイミングになると、制御装置100は、動作決定処理を実行する。まず、制御装置100の優先度算出部163は、人情報記憶部102から人情報テーブルを取得する(ステップS201)。次に、優先度算出部163は、人情報テーブルに基づいて、優先度算出の対象となる人(以下、「対象者」という。)を決定する(ステップS202)。具体的には、優先度算出部163は、人情報テーブルが有する人情報レコードのうち、いずれか1つの人情報レコードを決定する。優先度算出部163は、決定された人情報レコードによって示される人を対象者として決定する。優先度算出部163は、例えば人情報テーブルの最上段から順番に対象者を決定してもよい。優先度算出部163は、今回の動作決定処理において優先度を算出されていない人に決定するならばどのような手段で対象者を決定してもよい。優先度算出部163は、決定された対象者の人情報レコードを取得する(ステップS203)。
次に、優先度算出部163は、発話履歴スコアを算出する(ステップS204)。優先度算出部163は、発話履歴スコア算出処理を実行することで対象者の発話履歴スコアを算出する。発話履歴スコア算出処理については後述する。次に、優先度算出部163は、人状態スコアを算出する(ステップS205)。優先度算出部163は、人状態スコア算出処理を実行することで対象者の人状態スコアを算出する。人状態スコア算出処理については後述する。次に、優先度算出部163は、発話内容スコアを算出する(ステップS206)。優先度算出部163は、発話内容スコア算出処理を実行することで対象者の発話内容スコアを算出する。発話内容スコア算出処理については後述する。なお、発話内容スコアの算出の際に、スピーカー40から出力される発話内容が決定される。優先度算出部163は、算出された発話履歴スコア、人状態スコア及び発話内容スコアに基づいて、対象者の優先度を算出する(ステップS207)。例えば、優先度算出部163は、発話履歴スコア、人状態スコア及び発話内容スコアを以下の数式(1)のように、加算することで優先度を算出してもよい。例えば、優先度算出部163は、発話履歴スコア、人状態スコア及び発話内容スコアの各スコアに以下の数式(2)のように、重みづけをすることで優先度を算出してもよい。なお、重みは、任意の値が指定されてもよい。
優先度算出部163は、全ての人の優先度を算出したか否かを判定する(ステップS208)。具体的には、優先度算出部163は、今回の動作決定処理において優先度を算出されていない人がいない場合、全ての人の優先度を算出したと判定する。優先度算出部163は、今回の動作決定処理において優先度を算出されていない人がいる場合、全ての人の優先度を算出していないと判定する。
全ての人の優先度を算出していない場合(ステップS208:NO)、処理は、ステップS202に遷移する。優先度算出部163は優先度算出の対象となる人を決定する。全ての人の優先度を算出している場合(ステップS208:YES)、動作決定部166は動作を行う対象となる人を決定する(ステップS209)。具体的には、動作決定部166は、算出された優先度のうち、優先度の最も高い人を対話装置50が顔を向ける人として決定する。なお、動作決定部166は、優先度の最も高い人が複数いた場合、複数の人のうちいずれか一人の人に決定する。この場合、動作決定部166は、どのような手段を用いて人を決定してもよい。例えば、動作決定部166は、人情報レコードに基づいて、顔を向けた回数が最も少ない人に決定してもよい。例えば、動作決定部166は、対話装置50の姿勢を向けられていた時間が最も短い人に決定してもよい。
動作決定部166は、決定された人に対して行う対話装置50の動作内容を決定する(ステップS210)。例えば、動作決定部166は、対話装置50の顔の向ける方向を決定する。動作決定部166は、センサー10やカメラ20によって取得された情報に基づいて、人の位置を示す座標を推定する。動作決定部166は、推定された座標の方向に対話装置50の顔を向けるように頭部510や脚部540の角度を決定する。また、動作決定部166は、決定された人に対する発話内容に対応付けされた動作内容を動作内容記憶部105から取得する。動作決定部166は、取得された動作内容を、対話装置50の動作内容として決定する。機器制御部167は、決定された動作内容及び発話内容に基づいて、スピーカー40又は対話装置50を制御する(ステップS211)。
図9は、発話履歴スコア算出処理の流れの一具体例を示すフローチャートである。優先度算出部163は、発話履歴スコアテーブルから顔を向けた回数のスコアを取得する(ステップS241)。具体的には、優先度算出部163は、ステップS203において取得された人情報レコードから、顔を向けた回数を取得する。優先度算出部163は、スコアマップ記憶部103から発話履歴スコアテーブルを取得する。優先度算出部163は、顔を向けた回数に対応付けされたスコアを発話履歴スコアテーブルから取得する。例えば、人情報レコードが有する顔を向けた回数が3である場合、優先度算出部163は、発話履歴スコアテーブルから顔を向けた回数のスコアとして3を取得する。
優先度算出部163は、発話履歴スコアテーブルから対話装置発話回数のスコアを取得する(ステップS242)。具体的には、優先度算出部163は、ステップS203において取得された人情報レコードから、対話装置発話回数を取得する。優先度算出部163は、スコアマップ記憶部103から発話履歴スコアテーブルを取得する。優先度算出部163は、対話装置発話回数に対応付けされたスコアを発話履歴スコアテーブルから取得する。例えば、人情報レコードが有する対話装置発話回数が0である場合、優先度算出部163は、発話履歴スコアテーブルから対話装置発話回数のスコアとして5を取得する。
優先度算出部163は、発話履歴スコアテーブルから発話時間のスコアを取得する(ステップS243)。具体的には、優先度算出部163は、ステップS203において取得された人情報レコードから、発話時間を取得する。優先度算出部163は、スコアマップ記憶部103から発話履歴スコアテーブルを取得する。優先度算出部163は、発話時間に対応付けされたスコアを発話履歴スコアテーブルから取得する。例えば、人情報レコードが有する発話時間が25秒である場合、優先度算出部163は、発話履歴スコアテーブルから発話時間のスコアとして1を取得する。
優先度算出部163は、発話履歴スコアを算出する(ステップS244)。具体的には、優先度算出部163は、ステップS241〜S243において取得された各スコアに対して所定の演算を行うことで発話履歴スコアを算出してもよい。例えば、優先度算出部163は、各スコアを加算することで発話履歴スコアを算出してもよい。例えば、優先度算出部163は、各スコアに所定の重みづけをすることで発話履歴スコアを算出してもよい。なお、重みは、任意の値が指定されてもよい。
図10は、人状態スコア算出処理の流れの一具体例を示すフローチャートである。
優先度算出部163は、人状態スコアテーブルから表情のスコアを取得する(ステップS251)。具体的には、優先度算出部163は、ステップS203において取得された人情報レコードから、表情を取得する。優先度算出部163は、スコアマップ記憶部103から人状態スコアテーブルを取得する。優先度算出部163は、表情に対応付けされたスコアを人状態スコアテーブルから取得する。例えば、人情報レコードが有する表情が笑顔である場合、優先度算出部163は、人情報スコアテーブルから人の状態のスコアとして3を取得する。
優先度算出部163は、人状態スコアテーブルから人発話回数のスコアを取得する(ステップS252)。具体的には、優先度算出部163は、ステップS203において取得された人情報レコードから、人発話回数を取得する。優先度算出部163は、スコアマップ記憶部103から人状態スコアテーブルを取得する。優先度算出部163は、人発話回数に対応付けされたスコアを人状態スコアテーブルから取得する。例えば、人情報レコードが有する人発話回数が0である場合、優先度算出部163は、人状態スコアテーブルから人発話回数のスコアとして5を取得する。
優先度算出部163は、人状態スコアテーブルから視線のスコアを取得する(ステップS253)。具体的には、優先度算出部163は、ステップS203において取得された人状態レコードから、視線の値を取得する。優先度算出部163は、スコアマップ記憶部103から人状態スコアテーブルを取得する。優先度算出部163は、視線に対応付けされたスコアを人状態スコアテーブルから取得する。例えば、人情報レコードが有する視線が対話装置以外を向いている場合、優先度算出部163は、人状態スコアテーブルから視線のスコアとして5を取得する。
優先度算出部163は、人状態スコアテーブルから滞在時間のスコアを取得する(ステップS254)。具体的には、優先度算出部163は、ステップS203において取得された人状態レコードから、滞在時間の値を取得する。優先度算出部163は、スコアマップ記憶部103から人状態スコアテーブルを取得する。優先度算出部163は、滞在時間に対応付けされたスコアを人状態スコアテーブルから取得する。例えば、人情報レコードが有する滞在時間が12秒である場合、優先度算出部163は、人状態スコアテーブルから視線のスコアとして5を取得する。
優先度算出部163は、人状態スコアを算出する(ステップS244)。具体的には、優先度算出部163は、ステップS251〜S254において取得された各スコアに対して所定の演算を行うことで人状態スコアを算出してもよい。例えば、優先度算出部163は、各スコアを加算することで人状態スコアを算出してもよい。例えば、優先度算出部163は、各スコアに所定の重みづけをすることで人状態スコアを算出してもよい。なお、重みは、任意の値が指定されてもよい。
図11は、発話内容スコア算出処理の流れの一具体例を示すフローチャートである。制御装置100の音声処理部164は、マイク30から音声信号を取得したか否かを判定する(ステップS261)。音声信号を取得した場合(ステップS261:YES)、音声処理部164は、音声認識処理を実行する。音声処理部164は、音声認識処理によって音声信号に基づいて文字列を生成する。なお、音声処理部164は、複数の人の音声信号を取得した場合、人毎に文字列を生成する。この場合、音声処理部164は、公知の音源分離処理に基づいて、人と音声信号とを対応付ける。音声信号を取得していない場合(ステップS261:NO)、処理は、ステップS263に遷移する。
発話決定部165は、対話装置50の発話内容を決定する(ステップS263)。具体的には、発話決定部165は、生成された文字列に基づいて発話内容を決定する。発話決定部165は、生成された文字列に対応付けされた発話内容を発話内容記憶部104から取得する。発話決定部165は、取得された発話内容を対話装置50の発話内容として決定する。
優先度算出部163は、発話内容スコアを算出する(ステップS264)。具体的には、優先度算出部163は、スコアマップ記憶部103から発話内容スコアテーブルを取得する。優先度算出部163は、発話内容に対応付けされたスコアを発話内容スコアテーブルから取得する。例えば、発話内容が「おはよう」である場合、優先度算出部163は、発話内容スコアテーブルから発話内容スコアとして5を取得する。優先度算出部163は、発話内容スコアに所定の重みづけをすることで発話内容スコアを算出してもよい。なお、重みは、任意の値が指定されてもよい。
このように構成された制御システム1では、制御装置100の動作決定部166がセンサー10によって検出された複数の人のうちどの人の方向に対話装置50の顔を向けるのかを決定する。具体的には、動作決定部166は、人と対話装置50との対話の履歴に基づいてどの人の方向に対話装置50を向けるのかを決定する。機器制御部167が、決定された人の方向を向くように対話装置50を制御する。このため、対話装置50がどの人に話しかけているのかよりわかりやすく示すことができる。
図12は、対話装置50の動作の一具体例を示す図である。図12は、領域200、領域200a及び領域200bを示す。領域200〜200bは、時系列の変化を示す。領域200、領域200a及び領域200bは、いずれも人60、人60a、人60bを含む。図12では、対話装置50が、人60、人60a、人60bに同時に話しかけている。図12では、時間は、領域200、領域200a及び領域200bの順に経過する。優先度算出部163は、時間の経過に応じて優先度を繰り返して算出する。
領域200では、人60の優先度は15である。領域200では、人60aの優先度は10である。領域200では、人60bの優先度は5である。このため、対話装置50は、人60の方向に顔を向けて発話を行う。領域200aでは、人60の優先度は10である。領域200aでは、人60aの優先度は5である。領域200aでは、人60bの優先度は15である。このため、対話装置50は、人60bの方向に顔を向けて発話を行う。領域200bでは、人60の優先度は10である。領域200bでは、人60aの優先度は15である。領域200bでは、人60bの優先度は10である。このため、対話装置50は、人60aの方向に顔を向けて発話を行う。このように、優先度算出部163は、優先度を定期的に算出する。対話装置50は、特定の人に偏ることなく、複数の人に対して交替で顔を向けて発話を行う。このため、人は自分に対して話しかけられていると認識することができる。
上述の実施形態では、優先度算出部163は、発話履歴スコア、人状態スコア及び発話内容スコアに基づいて優先度を算出するように構成されたがこれに限定されない。例えば、優先度算出部163は、発話履歴スコア、人状態スコア及び発話内容スコアのうち、いずれか1つ以上に基づいて優先度を算出するように構成されてもよい。この場合、優先度算出部163は、用いられないスコアについては算出しないように構成されてもよい。
上述の実施形態では、制御システム1は、対話装置50はロボットであるものとして説明したがこれに限定されない。対話装置50は、ロボットの代わりにディスプレイ等の表示装置や、アクチュエータ等の駆動装置で構成されてもよい。図13は、制御システム1がロボットの代わりに表示装置又はアクチュエータ等の所定の装置を備える場合の一具体例を示す図である。図13(a)は、制御システム1が、ロボットの代わりに表示装置を備える場合の一具体例を示す図である。図13(a)によると、制御システム1は、対話装置50の代わりに対話装置50a(表示装置)を備える。対話装置50aは、タッチパネルやディスプレイ等の表示装置である。対話装置50aは、人画像51を表示する。人画像51は、人の姿を示す画像である。人の姿は、全身を表す姿であってもよいし、バストアップ等の姿の一部であってもよい。人画像51は、実写が用いられてもよいし、CG(Computer Graphics)が用いられてもよい。人画像51は、機器制御部167によって決定された動作内容に基づいて動作する。なお、対話装置50aに表示される画像は、複数の人画像を表示でもよいし、動物、物又は植物等の人以外の画像でもよい。
図13(b)は、制御システム1が、ロボットの代わりにアクチュエータを備える場合の一具体例を示す図である。図13(b)によると、制御システム1は、対話装置50の代わりに対話装置50b(アクチュエータ)を備える。対話装置50bは、内部にモータや伝達ギア等を備える。対話装置50bには、物体52を載せることができる。物体52は、本、食品又は道具等の物である。対話装置50bは、制御装置100によって決定された動作内容に基づいて動作する。具体的には、対話装置50bは、回転移動をしたり、上下に振動したり、等の所定の動作を行う。対話装置50bに載せられた物体52は、対話装置50bの動作に応じて、回転移動したり、上下に振動したりする。このように、制御システム1は、対話装置50bを動作させながら、スピーカー40から音声を出力させることで、物体52を生き物のようにふるまわせることができる。また、物体52が、人に話しかける場合であっても、どの人に話しかけているのか人は知ることができる。
上述の実施形態では、制御システム1は、1台の対話装置50を制御するものとして説明したが、1台に限定されない。例えば、制御システム1は、2台以上の対話装置50を制御するように構成されてもよい。この場合、動作決定部166は優先度の高い順に、対話装置50の台数だけ、対象者を決定してもよい。
上述の実施形態では、制御システム1は、優先度を算出することで、対話装置50をいずれの人の方向に向けるのかを決定した。しかし、制御システム1は、人及び対話装置50間の対話の履歴と所定の推定器とに基づいて対話装置50の顔をいずれの人の方向に向けるのか決定するように構成されてもよい。対話の履歴とは、例えば人情報レコード等の人と対話装置50との履歴を示す情報であればどのような情報でもよい。推定器とは、複数の学習データを機械学習することで生成される学習モデルである。推定器は、人及び対話装置50間の対話の履歴に基づいて、優先度を推定する機能を持つ。この場合、優先度算出部163は、人情報記憶部102に記憶された人情報レコードと推定器とに基づいて優先度を推定する。推定器は、例えば優先度算出部163によって生成されてもよいし、予め制御装置100が記憶していてもよい。学習データは、例えば人及び対話装置50間の対話の履歴と優先度とを対応付けたデータである。学習データは、推定器の生成に用いられる。機械学習は、例えば、SGD(Stochastic Gradient Descent)、ランダムフォレスト、線形回帰、決定木又はCNN(Convolutional Neural Network)等の公知の機械学習であればどのような機械学習であってもよい。
制御装置100は、ネットワークを介して通信可能に接続された複数台の情報処理装置を用いて実装されてもよい。この場合、制御装置100が備える各機能部は、複数の情報処理装置に分散して実装されてもよい。例えば、人識別部161及び特徴推定部162と、優先度算出部163、音声処理部164、発話決定部165、動作決定部166及び機器制御部167とはそれぞれ異なる情報処理装置に実装されてもよい。
上述した実施形態における制御装置100をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA(Field Programmable Gate Array)等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。