(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-09
(45)【発行日】2024-01-17
(54)【発明の名称】ロボット、対話システム、情報処理方法及びプログラム
(51)【国際特許分類】
G06F 3/16 20060101AFI20240110BHJP
G06F 3/01 20060101ALI20240110BHJP
【FI】
G06F3/16 650
G06F3/16 610
G06F3/01 510
(21)【出願番号】P 2023016582
(22)【出願日】2023-02-07
(62)【分割の表示】P 2018247382の分割
【原出願日】2018-12-28
【審査請求日】2023-02-22
(31)【優先権主張番号】P 2018058200
(32)【優先日】2018-03-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000001443
【氏名又は名称】カシオ計算機株式会社
(74)【代理人】
【識別番号】100095407
【氏名又は名称】木村 満
(72)【発明者】
【氏名】市川 英里奈
(72)【発明者】
【氏名】冨田 高弘
【審査官】槙 俊秋
(56)【参考文献】
【文献】特開2004-021509(JP,A)
【文献】特開2007-011674(JP,A)
【文献】国際公開第2015/174172(WO,A1)
【文献】特開2015-219583(JP,A)
【文献】特開2017-111493(JP,A)
【文献】米国特許出願公開第2019/0057699(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/16
G06F 3/01
G06F 3/048-3/04895
G06F 40/20-40/58
G01L 15/00-17/26
G10L 13/00-13/10
G10L 19/00-99/00
B25J 1/00-21/02
A63H 1/00-37/00
H04N 7/10
H04N 7/14-7/173
H04N 7/20-7/56
H04N 21/00-21/858
(57)【特許請求の範囲】
【請求項1】
発話が可能に構成されているとともに、別個に形成された他のロボットとの間で通信可能なロボットであって、
前記他のロボットと同時に対話が可能な位置に存在する対象に対する発話に先立って
、前記他のロボットとの間で互いが発話すべき発話内容
及び発話開始タイミングを設定する設定手段と、
前記設定手段により
前記発話内容及び前記発話開始タイミングが設定された発話
であって前記他のロボットとの間での協同による発話に対する前
記対象の反応に基づいて前
記対象の嗜好に係る情報を取得することにより、前
記対象の嗜好に係る情報を前記他のロボットとの間で共有する共有手段と、
を備
え、
前記設定手段は、前記発話に対しての前記対象の反応を判断可能とすべく前記他のロボットとの間での発話間隔が所定の時間以上空くように前記発話開始タイミングを設定することを特徴とするロボット。
【請求項2】
前記設定手段は、前記発話内容が前記他のロボットとの間で異なるように前記発話内容を設定することを特徴とする請求項1に記載のロボット。
【請求項3】
発話が可能に構成されている第1ロボットと、発話が可能に構成されているとともに前記第1ロボットとは別個に形成された第2ロボットと、を備え、前記第1ロボットと前記第2ロボットとが互いに通信可能な対話システムであって、
前記第1ロボットと前記第2ロボットとが同時に対話が可能な位置に存在する対象に対する発話に先立って
、前記第1ロボットと前記第2ロボットとの間で互いが発話すべき発話内容
及び発話開始タイミングを設定する設定手段と、
前記設定手段により
前記発話内容及び前記発話開始タイミングが設定された発話
であって前記第1ロボットと前記第2ロボットとの間での協同による発話に対する前
記対象の反応に基づいて前
記対象の嗜好に係る情報を取得することにより、前
記対象の嗜好に係る情報を前記第1ロボットと前記第2ロボットとの間で共有する共有手段と、
を備
え、
前記設定手段は、前記発話に対しての前記対象の反応を判断可能とすべく前記第1ロボットと前記第2ロボットとの間での発話間隔が所定の時間以上空くように前記発話開始タイミングを設定することを特徴とする対話システム。
【請求項4】
発話が可能に構成されているとともに、別個に形成された他のロボットとの間で通信可能なロボットが実行する情報処理方法であって、
前記他のロボットと同時に対話が可能な位置に存在する対象に対する発話に先立って
、前記他のロボットとの間で互いが発話すべき発話内容
及び発話開始タイミングを設定する設定処理と、
前記設定処理で
前記発話内容及び前記発話開始タイミングが設定された発話
であって前記他のロボットとの間での協同による発話に対する前
記対象の反応に基づいて前
記対象の嗜好に係る情報を取得することにより、前
記対象の嗜好に係る情報を前記他のロボットとの間で共有する共有処理と、
を含
み、
前記設定処理は、前記発話に対しての前記対象の反応を判断可能とすべく前記他のロボットとの間での発話間隔が所定の時間以上空くように前記発話開始タイミングを設定することを特徴とする情報処理方法。
【請求項5】
発話が可能に構成されているとともに、別個に形成された他のロボットとの間で通信可能なロボットのコンピュータを、
前記他のロボットと同時に対話が可能な位置に存在する対象に対する発話に先立って
、前記他のロボットとの間で互いが発話すべき発話内容
及び発話開始タイミングを設定する設定手段、
前記設定手段により
前記発話内容及び前記発話開始タイミングが設定された発話
であって前記他のロボットとの間での協同による発話に対する前
記対象の反応に基づいて前
記対象の嗜好に係る情報を取得することにより、前
記対象の嗜好に係る情報を前記他のロボットとの間で共有する共有手段、
として機能さ
せ、
前記設定手段は、前記発話に対しての前記対象の反応を判断可能とすべく前記他のロボットとの間での発話間隔が所定の時間以上空くように前記発話開始タイミングを設定することを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ロボット、対話システム、情報処理方法及びプログラムに関する。
【背景技術】
【0002】
人とコミュニケーションをするロボット等の機器の開発が進められており、このようなロボット等の機器の普及には、親しみやすさが重要な点である。例えば、特許文献1は、利用者との対話を通じて利用者の好みを学習し、利用者の好みに合った対話を行う技術を開示している。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
特許文献1が開示する技術では、利用者の好みを把握するために利用する情報の組合せが多岐にわたるため、利用者の好みを精度よく把握することが困難である。
【0005】
本発明は、前述のような事情に鑑みてなされたものであり、利用者の好みを精度よく把握し、利用者の好みに合った対話を行うことができるロボット、対話システム、情報処理方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
前記目的を達成するため、本発明に係るロボットの一態様は、発話が可能に構成されているとともに、別個に形成された他のロボットとの間で通信可能なロボットであって、前記他のロボットと同時に対話が可能な位置に存在する対象に対する発話に先立って、前記他のロボットとの間で互いが発話すべき発話内容及び発話開始タイミングを設定する設定手段と、前記設定手段により前記発話内容及び前記発話開始タイミングが設定された発話であって前記他のロボットとの間での協同による発話に対する前記対象の反応に基づいて前記対象の嗜好に係る情報を取得することにより、前記対象の嗜好に係る情報を前記他のロボットとの間で共有する共有手段と、を備え、前記設定手段は、前記発話に対しての前記対象の反応を判断可能とすべく前記他のロボットとの間での発話間隔が所定の時間以上空くように前記発話開始タイミングを設定することを特徴とする。
【0007】
また、前記目的を達成するため、本発明に係る対話システムの一様態は、発話が可能に構成されている第1ロボットと、発話が可能に構成されているとともに前記第1ロボットとは別個に形成された第2ロボットと、を備え、前記第1ロボットと前記第2ロボットとが互いに通信可能な対話システムであって、前記第1ロボットと前記第2ロボットとが同時に対話が可能な位置に存在する対象に対する発話に先立って、前記第1ロボットと前記第2ロボットとの間で互いが発話すべき発話内容及び発話開始タイミングを設定する設定手段と、前記設定手段により前記発話内容及び前記発話開始タイミングが設定された発話であって前記第1ロボットと前記第2ロボットとの間での協同による発話に対する前記対象の反応に基づいて前記対象の嗜好に係る情報を取得することにより、前記対象の嗜好に係る情報を前記第1ロボットと前記第2ロボットとの間で共有する共有手段と、を備え、前記設定手段は、前記発話に対しての前記対象の反応を判断可能とすべく前記第1ロボットと前記第2ロボットとの間での発話間隔が所定の時間以上空くように前記発話開始タイミングを設定することを特徴とする。
【0008】
また、前記目的を達成するため、本発明に係る情報処理方法の一態様は、発話が可能に構成されているとともに、別個に形成された他のロボットとの間で通信可能なロボットが実行する情報処理方法であって、前記他のロボットと同時に対話が可能な位置に存在する対象に対する発話に先立って、前記他のロボットとの間で互いが発話すべき発話内容及び発話開始タイミングを設定する設定処理と、前記設定処理で前記発話内容及び前記発話開始タイミングが設定された発話であって前記他のロボットとの間での協同による発話に対する前記対象の反応に基づいて前記対象の嗜好に係る情報を取得することにより、前記対象の嗜好に係る情報を前記他のロボットとの間で共有する共有処理と、を含み、前記設定処理は、前記発話に対しての前記対象の反応を判断可能とすべく前記他のロボットとの間での発話間隔が所定の時間以上空くように前記発話開始タイミングを設定することを特徴とする。
【0009】
また、前記目的を達成するため、本発明に係るプログラムの一態様は、発話が可能に構成されているとともに、別個に形成された他のロボットとの間で通信可能なロボットのコンピュータを、前記他のロボットと同時に対話が可能な位置に存在する対象に対する発話に先立って、前記他のロボットとの間で互いが発話すべき発話内容及び発話開始タイミングを設定する設定手段、前記設定手段により前記発話内容及び前記発話開始タイミングが設定された発話であって前記他のロボットとの間での協同による発話に対する前記対象の反応に基づいて前記対象の嗜好に係る情報を取得することにより、前記対象の嗜好に係る情報を前記他のロボットとの間で共有する共有手段、として機能させ、前記設定手段は、前記発話に対しての前記対象の反応を判断可能とすべく前記他のロボットとの間での発話間隔が所定の時間以上空くように前記発話開始タイミングを設定することを特徴とする。
【発明の効果】
【0010】
本発明によれば、利用者の好みを精度よく把握し、利用者の好みに合った対話を行うことができるロボット、対話システム、情報処理方法及びプログラムを提供することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】本発明の第1の実施の形態に係る対話システムの構成を示す図である。
【
図2】第1の実施の形態に係るロボットの正面図である。
【
図3】第1の実施の形態に係るロボットの構成を示すブロック図である。
【
図4】第1の実施の形態に係る音声反応極性判定テーブルの一例を示す図である。
【
図5】第1の実施の形態に係る対話制御処理の流れを示すフローチャートである。
【
図6】第1の実施の形態に係るユーザ特定処理の流れを示すフローチャートである。
【
図7】第1の実施の形態に係る音声判定処理の流れを示すフローチャートである。
【
図8】第1の実施の形態に係る表情判定処理の流れを示すフローチャートである。
【
図9】第1の実施の形態に係る行動判定処理の流れを示すフローチャートである。
【
図10】第1の実施の形態に係る嗜好判定処理の流れを示すフローチャートである。
【
図11】第2の実施の形態の対話システムの構成を示すブロック図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について図面を参照しながら詳細に説明する。
【0013】
(第1の実施の形態)
本発明の第1の実施の形態に係る対話システム1は、複数のロボット100を含んで構成される。複数のロボット100は、所定の対象のオフィスや住宅等の居住スペース内に配置され、複数のロボット100が所定の対象と対話する。以下の説明では、2台のロボット100が所定の対象と対話する例を説明するが、対話システム1は、3台以上のロボット100を含んで構成されてもよい。
【0014】
ここで、所定の対象とは、対話システムを利用するユーザ(利用者)であり、典型的には、対話システムの所有者やこの所有者の家族又は友人等である。また、所定の対象には、人以外に、例えばペットとして飼われている動物やロボット100とは異なる別のロボットも含まれる。
【0015】
対話システム1は、
図1に示すように、相互に通信可能な2台のロボット100を備え、ユーザUSRと対話を行う。ここで、説明の便宜を図るため、
図1の紙面向かって左側のロボット100をロボット100A、
図1の紙面向かって右側のロボット100をロボット100Bとする。なお、ロボット100Aとロボット100Bとを区別することなく説明する場合には、いずれかのロボット又はこれらを総称して「ロボット100」と表記することがある。ロボット100Aとロボット100Bは、互いに異なる場所に配置されており、ロボット100A及びロボット100Bの発話の両方を同じ所定の対象が認識できないような場所に、それぞれ設けられている。例えば、ロボット100Aは所定の対象のオフィスに、ロボット100Bはこのオフィスから離れた所定の対象の住宅に、それぞれ配置される。あるいは、ロボット100Aは所定の対象が通う施設に、ロボット100Bはこの施設から離れた、所定の対象が通う他の施設に、それぞれ配置されている。
【0016】
ロボット100は、
図2に示すように、外観的には人を模した立体的な形状を有するロボットである。また、ロボット100の外装は、合成樹脂を主たる材料として形成されている。ロボット100は、胴体部101と、胴体部101の上部に接続する頭部102と、胴体部101の左右のそれぞれに接続する手部103と、胴体部101から下部に接続する2本の足部104と、を有する。また、頭部102は、左右一対の目部105、口部106、左右一対の耳部107を有する。なお、
図2の上側、下側、左側、右側を、各々、ロボット100の上側、下側、右側、左側とする。
【0017】
次に、
図3を参照して、ロボット100の構成について説明する。
図3には、ロボット100Aとロボット100Bとの各構成を示すブロック図を示しているが、ロボット100Aとロボット100Bとの構成は同様である。まず、ロボット100Aを取り上げて、その構成について説明する。
【0018】
ロボット100Aは、
図3に示すように、制御部110A、記憶部120A、撮像部130A、音声入力部140A、音声出力部150A、移動部160A、通信部170Aを備える。これらの各部は、バスラインBLを介して相互に電気的に接続されている。
【0019】
制御部110Aは、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)を有するコンピュータにより構成され、ロボット100A全体の動作を制御する。制御部110Aは、CPUがROMに記憶された制御プログラムを読み出してRAM上で実行することにより、ロボット100Aの各部の動作を制御する。
【0020】
制御部110Aは、制御プログラムを実行することによって、ユーザ検知部111A、ユーザ特定部112A、ユーザ情報取得部113A、音声認識部114A、発話制御部115A、音声合成部116A、反応判定部117A、嗜好判定部118Aとして機能する。
【0021】
ユーザ検知部111Aは、ロボット100Aの周囲(例えば、ロボット100Aから半径2mの範囲内)に存在するユーザUSRを検知する。ユーザ検知部111Aは、例えば、後述する撮像部130Aを制御して、ロボット100Aの周囲を撮像し、物体の動きや頭、顔等の検出に応じて、ロボット100Aの周囲に存在するユーザUSRを検知する。
【0022】
ユーザ特定部112Aは、ユーザ検知部111Aが検知したユーザUSRを特定する。ユーザ特定部112Aは、例えば、撮像部130Aによる撮像画像からユーザUSRの顔部分に相当する顔画像を抽出する。そして、ユーザ特定部112Aは、この顔画像から特徴量を検出し、後述する記憶部120Aのユーザ情報データベースに登録された、顔の特徴量を示す顔情報と照合して類似度を算出し、所定の基準を満たすか否かに応じてユーザUSRを特定する。記憶部120Aのユーザ情報データベースには、所定の複数のユーザUSRの各々の顔の特徴量を示す顔情報が記憶されている。ユーザ検知部111Aが検知したユーザUSRが、これらのユーザUSRのうちのいずれのユーザUSRであるのかが、ユーザ特定部112Aによって特定される。特徴量は、ユーザUSRを識別可能な情報であればよく、例えば、目、鼻、口等の顔に含まれる各パーツの形状、大きさ、配置等の外観的特徴を数値で示した情報である。以下の説明では、ユーザ検知部111Aにより検知され、ユーザ特定部112Aにより特定されたユーザUSRを対象ユーザと称する。このように、ユーザ特定部112Aは、本発明の対象特定手段として機能する。
【0023】
ユーザ情報取得部113Aは、対象ユーザの発話、外観、行動等を表すユーザ情報を取得する。本実施の形態において、ユーザ情報取得部113Aは、ユーザ情報として、例えば、撮像部130A、音声入力部140Aを制御して、対象ユーザをとらえた撮像画像の画像データを含む画像情報と対象ユーザが発した音声の音声データを含む音声情報との少なくとも何れかを取得する。このように、ユーザ情報取得部113Aは、撮像部130A、音声入力部140Aと協働して、本発明の取得手段として機能する。
【0024】
音声認識部114Aは、ユーザ情報取得部113Aが取得した音声情報に含まれる音声データに対して音声認識処理を施し、対象ユーザの発話内容を示すテキストデータに変換する。音声認識処理には、例えば、記憶部120Aの音声情報DB(Data Base)122Aが記憶する音響モデル、言語モデル、単語辞書が用いられる。音声認識部114Aは、例えば、音声データから背景雑音を消去し、音響モデルを参照して、取得した音声データに含まれる音素を識別し、単語辞書を参照して、音素列を単語に変換した複数の変換候補を生成する。そして、音声認識部114Aは、言語モデルを参照して、複数の変換候補の中から最も妥当性の高いものを選択し、音声データに対応するテキストデータとして出力する。
【0025】
発話制御部115Aは、ロボット100Aの発話を制御する。発話制御部115Aは、例えば、記憶部120Aの発話情報DB123Aが記憶する発話情報を参照し、状況に応じた複数の発話候補を抽出する。そして、発話制御部115Aは、ユーザ情報DB121Aが記憶するユーザ情報に含まれる嗜好情報を参照し、抽出した複数の発話候補から対象ユーザの嗜好に適合する発話候補を選択し、ロボット100Aの発話内容として決定する。このように、発話制御部115Aは、本発明の発話制御手段として機能する。
【0026】
また、発話制御部115Aは、通信部170Aを介してロボット100Bと通信し、ロボット100Bの発話制御部115Bと連携して、以下のように、ロボット100Aの発話内容を調整して決定する。
【0027】
すなわち、発話制御部115Aは、ロボット100Bの発話制御部115Bと連携して、例えばロボット100Bが発話してからの経過時間を取得し、取得した経過時間が所定経過時間(例えば72時間)以内であるときにロボット100Aが発話する場合には、ロボット100Aが発話する話題が、ロボット100Aの発話開始前の所定経過時間以内にロボット100Bが発話した話題と異なる話題となるように、ロボット100Aの発話の話題を調整して決定する。このような話題の決定は、ロボット100Bの発話制御部115Bにおいても同様にして行われる。以上により、ロボット100A及びロボット100Bが発話する話題は、互いに異なる話題に決定され、決定された話題で両ロボット100A、100Bの発話が制御される。
【0028】
ロボット100A及びロボット100Bの各々は、後述するように、自身の発話に対する対象ユーザの反応を判定し、その判定結果に基づいて対象ユーザの嗜好情報を収集(記憶)するが、この場合、ロボット100Aとロボット100Bが発話する話題が重複したり、常に関連したりすると、対象ユーザの新たな嗜好情報や、より広い分野の嗜好情報を収集することができない。また、対象ユーザも重複した話題の発話を聞かされることにより、煩わしさを感じる。ロボット100Aとロボット100Bの発話の話題を互いに異なる話題に決定することにより、より多くの様々な種類の嗜好情報を収集することができる。
【0029】
これに対して、ロボット100Bが発話してから所定経過時間以上経過している場合、発話制御部115Aは、発話内容をロボット100Bの発話内容に制限されず、独自に決定する。すなわち、ロボット100A及び100Bが発話する話題(発話内容)は、互いに連携させずに、互いに無関係に(互いに独立して)決定される。
【0030】
発話制御部115Aは、ロボット100Bと連携して決定した、自身の発話内容を示すテキストデータを生成し出力する。
【0031】
音声合成部116Aは、発話制御部115Aから入力したロボット100Aの発話内容を示すテキストデータに対応する音声データを生成する。音声合成部116Aは、例えば、記憶部120Aの音声情報DB122Aに格納された音響モデル等を用いて、テキストデータが示す文字列を読み上げる音声データを生成する。また、音声合成部116Aは、音声出力部150Aを制御して、生成した音声データを音声出力する。
【0032】
反応判定部117Aは、ロボット100Aの発話に対する対象ユーザの反応を判定する。これにより、前記所定の複数のユーザUSRのうちのユーザ特定部112Aで特定された対象ユーザごとに、ロボット100Aの発話に対する反応が判定される。反応判定部117Aは、音声判定部117AA、表情判定部117BA、行動判定部117CAを有する。音声判定部117AA、表情判定部117BA、行動判定部117CAは、それぞれ、対象ロボット100Aの発話に対する反応を、対象ユーザの音声、表情、行動に基づいて、肯定的な反応である「ポジティブ(Positive)」、否定的な反応である「ネガティブ(Negative)」、肯定的でも否定的でもない中立的な反応である「ニュートラル(Neutral)」の3つの極性に分類することにより判定する。
【0033】
音声判定部117AAは、ロボット100Aが発話した後に対象ユーザが発した音声に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する。音声判定部117AAは、ロボット100Aの発話後にユーザ情報取得部113Aが取得した音声に対して音声認識部114Aが音声認識処理を施して生成されたテキストデータに基づいて、対象ユーザの発話内容を音声反応極性「ポジティブ」、「ネガティブ」、「ニュートラル」の3極性に分類することにより、ロボット100Aの発話に対する対象ユーザの反応を判定する。このように、音声判定部117AAは、本発明の音声判定手段として機能する。
【0034】
表情判定部117BAは、ロボット100Aが発話した後の対象ユーザの表情に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する。表情判定部117BAは、対象ユーザの表情を評価するための指標として、笑顔の度合いを示す笑顔度を算出する。表情判定部117BAは、ロボット100Aの発話後にユーザ情報取得部113Aが取得した撮像画像から対象ユーザの顔画像を抽出し、対象ユーザの顔の特徴量を検出する。表情判定部117BAは、記憶部120Aの反応判定情報DB124Aに記憶された笑顔度情報を参照し、検出した特徴量に基づいて、対象ユーザの笑顔度を算出する。表情判定部117BAは、算出した笑顔度に応じて、対象ユーザの表情を表情反応極性「ポジティブ」、「ネガティブ」、「ニュートラル」の3極性に分類して、ロボット100Aの発話に対する対象ユーザの反応を判定する。このように、表情判定部117BAは、本発明の表情判定手段として機能する。
【0035】
行動判定部117CAは、ロボット100Aが発話した後の対象ユーザの行動に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する。行動判定部117CAは、ロボット100Aの発話後にユーザ情報取得部113Aが取得した撮像画像から対象ユーザの行動を検出し、対象ユーザの行動を行動反応極性「ポジティブ」、「ネガティブ」、「ニュートラル」の3極性に分類して、ロボット100Aの発話に対する対象ユーザの反応を判定する。このように、行動判定部117CAは、本発明の行動判定手段として機能する。
【0036】
嗜好判定部118Aは、対象ユーザとロボット100Aとの対話における話題を特定し、反応判定部117Aによる各判定結果に基づいて、特定した話題に対する対象ユーザの嗜好の高さを示す嗜好度を判定する。これにより、前記所定の複数のユーザUSRのうちのユーザ特定部112Aで特定された対象ユーザごとに、その嗜好度が判定される。ここで、嗜好とは、有形と無形とを問わず様々な物事に関する趣味や好みであり、例えば、食品、スポーツ、天気等に関する趣味や好みの他、ロボット100の対応(発話内容)に対する好みを含む。嗜好判定部118Aは、話題に対する対象ユーザの嗜好が高い順に、嗜好度を「嗜好度A」、「嗜好度B」、「嗜好度C」、「嗜好度D」の4段階に分類する。このように、嗜好判定部118Aは、本発明の特定手段及び嗜好判定手段として機能する。
【0037】
なお、ユーザ検知部111A、ユーザ特定部112A、ユーザ情報取得部113A、音声認識部114A、発話制御部115A、音声合成部116A、反応判定部117A、嗜好判定部118Aは、単一のコンピュータで各機能を実現してもよいし、各々別個のコンピュータによって各機能を実現してもよい。
【0038】
記憶部120Aは、記憶内容が書き換え可能な不揮発性の半導体メモリ、ハードディスクドライブ等を備え、制御部110Aがロボット100Aの各部を制御するために必要な各種データを記憶する。
【0039】
記憶部120Aは、各種データをそれぞれ格納する複数のデータベースを有する。記憶部120Aは、例えば、ユーザ情報DB121A、音声情報DB122A、発話情報DB123A、反応判定情報DB124Aを有する。また記憶部120Aには、ロボット100Aが発話した発話日時及び発話した話題等を含む発話履歴情報が、ユーザUSRごとに記憶される。
【0040】
ユーザ情報DB121Aは、登録された複数のユーザUSRの各々に関する各種情報をユーザ情報として蓄積して記憶する。ユーザ情報は、例えば、複数のユーザUSRの各々を識別するために予め割り当てられたユーザ識別情報(例えば、ユーザUSRのID)、ユーザUSRの顔の特徴量を示す顔情報、各話題に対するユーザUSRの嗜好度を示す嗜好情報を含む。このように、複数のユーザUSRの各々の嗜好情報は、ユーザ識別情報を用いて、いずれのユーザUSRのものであるのかを識別可能に記憶される。
【0041】
音声情報DB122Aは、音声認識処理又は音声合成処理に用いられるデータとして、例えば、他の語と意味を区別する音の最小単位である音素の各々の特徴(周波数特性)を表わす音響モデル、音素の特徴と単語とを対応付ける単語辞書、単語の並びとその連接確率を表す言語モデルを格納する。
【0042】
発話情報DB123Aは、ロボット100Aの発話候補を示す発話情報を記憶する。発話情報は、例えば、対象ユーザに話しかける場合の発話候補、対象ユーザの発話に対して応答する場合の発話候補、ロボット100Bと会話する場合の発話候補等、対象ユーザとの対話の状況に応じた各種の発話候補が含まれる。
【0043】
反応判定情報DB124Aは、反応判定部117Aがロボット100Aの発話に対する対象ユーザの反応を判定する際に用いる反応判定情報を記憶する。反応判定情報DB124Aは、反応判定情報として、例えば、反応判定部117Aの音声判定部117AAがロボット100Aの発話に対する対象ユーザの反応を判定する際に用いる音声判定情報を記憶する。音声判定情報は、例えば、
図4に示す音声反応極性判定テーブルの形式で記憶される。音声反応極性判定テーブルでは、後述する音声反応極性と特徴キーワードとが対応付けられている。また、反応判定情報DB124Aは、反応判定情報として、例えば、反応判定部117Aの表情判定部117BAが対象ユーザの笑顔度を算出する際に用いる笑顔度情報を記憶する。笑顔度情報は、例えば、目尻や口角の位置、目や口の大きさ等の変化の度合いに応じて笑顔度を0~100%の範囲で数値化した情報である。
【0044】
撮像部130Aは、レンズ、CCD(Charge Coupled Device)イメージセンサやCMOS(Complementary Metal Oxide Semiconductor)イメージセンサ等の撮像素子を備えるカメラで構成され、ロボット100Aの周囲を撮像する。撮像部130Aは、例えば頭部102の正面上部に設置され、頭部102の前方を撮像し、デジタル画像データを生成して出力する。カメラは、レンズが向く方向を変えるように動作可能なモータ駆動の架台(ジンバル等)に取り付けられ、ユーザUSRの顔等を追尾することができるように構成される。
【0045】
音声入力部140Aは、マイクロフォン、A/D(Analog to Digital)変換器等で構成され、例えば耳部107に設置されたマイクロフォンで集音した音声を増幅し、A/D変換、符号化等の信号処理を施したデジタル音声データ(音声情報)を制御部110Aに出力する。
【0046】
音声出力部150Aは、スピーカ、D/A(Digital to Analog)変換器等で構成され、制御部110Aの音声合成部116Aから供給される音声データに復号化、D/A変換、増幅等の信号処理を施し、アナログ音声信号を例えば口部106に設置されたスピーカから出力する。
【0047】
ロボット100Aは、音声入力部140Aのマイクロフォンで対象ユーザの音声を集音し、制御部110Aの制御のもと、対象ユーザの発話内容に対応する音声を音声出力部150Aのスピーカから出力することにより、対象ユーザと対話をしてコミュニケーションをとることができる。このように、ロボット100Aは、本発明の第1発話装置として機能する。
【0048】
移動部160Aは、ロボット100Aを移動させるための部位である。移動部160Aは、ロボット100Aの左右の足部104の底部にそれぞれ設けられた車輪と、左右の車輪を回転駆動するモータと、モータを駆動制御する駆動回路と、を有する。制御部110Aから受信した制御信号に従って、駆動回路は、モータに駆動用のパルス信号を供給する。モータは、駆動用のパルス信号に従って、左右の車輪を回転駆動させ、ロボット100Aを移動させる。このように、移動部160Aは、本発明の移動手段として機能する。なお、左右の車輪がそれぞれ独立して回転駆動するように構成され、ロボット100Aが前進、後退、旋回、加減速などの走行が可能であれば、モータの数は任意である。例えば、連結機構や操舵機構を設けるなどして1つのモータで左右の車輪を駆動させてもよい。また、モータの数に合わせて駆動回路の数も適宜変更することができる。
【0049】
通信部170Aは、無線通信方式を用いて通信するための無線通信モジュール及びアンテナにより構成され、ロボット100Bと無線データ通信を行う。無線通信方式としては、例えば、Bluetooth(登録商標)、BLE(Bluetooth Low Energy)、ZigBee(登録商標)、赤外線通信等の近距離無線通信方式、WiFi(Wireless Fidelity)等の無線LAN通信方式を適宜採用し得る。本実施の形態において、ロボット100Aは、通信部170Aを介してロボット100Bと無線データ通信を行うことにより、ロボット100Aとロボット100Bとが対象ユーザと対話する。
【0050】
ロボット100Bは、ロボット100Aと同様であるため、その構成について簡単に説明する。ロボット100Bは、ロボット100Aと同様に、制御部110B、記憶部120B、撮像部130B、音声入力部140B、音声出力部150B、移動部160B、通信部170Bを備える。制御部110Bは、ロボット100B全体の動作を制御し、制御プログラムを実行することによって、ユーザ検知部111B、ユーザ特定部112B、ユーザ情報取得部113B、音声認識部114B、発話制御部115B、音声合成部116B、反応判定部117B、嗜好判定部118Bとして機能する。発話制御部115Bは、ユーザ情報DB121Bが記憶するユーザ情報に含まれる嗜好情報を参照し、抽出した複数の発話候補から対象ユーザの嗜好に適合する発話候補を選択し、ロボット100Bの発話内容として決定する。通信部170Bを介してロボット100Aと通信し、ロボット100Aの発話制御部115Aと連携して、例えばロボット100Aが発話してからの経過時間を取得する。取得した経過時間が前記所定経過時間以内であるとき、ロボット100Bが発話する話題が、ロボット100Bの発話開始前の所定経過時間以内にロボット100Aが発話した話題と異なるように、発話制御部115Bは、ロボット100Bの発話内容を調整して決定する。反応判定部117Bは、ロボット100Bの発話に対する対象ユーザの反応を判定する。反応判定部117Bは、音声判定部117AB、表情判定部117BB、行動判定部117CBを有する。音声判定部117AB、表情判定部117BB、行動判定部117CBは、それぞれ、対象ロボット100Bの発話に対する反応を、対象ユーザの音声、表情、行動に基づいて、「ポジティブ」、「ネガティブ」、「ニュートラル」の3つの極性に分類することにより判定する。記憶部120Bは、各種データをそれぞれ格納する複数のデータベースを有する。記憶部120Bは、例えば、ユーザ情報DB121B、音声情報DB122B、発話情報DB123B、反応判定情報DB124Bを有する。また記憶部120Bには、ロボット100Bが発話した発話日時及び発話した話題等を含む発話履歴情報が、ユーザUSRごとに記憶される。ロボット100Bは、音声入力部140Bのマイクロフォンで対象ユーザの音声を集音し、制御部110Bの制御のもと、対象ユーザの発話内容に対応する音声を音声出力部150Bのスピーカから出力することにより、対象ユーザと対話をしてコミュニケーションをとることができる。このように、ロボット100Bは、本発明の第2発話装置として機能する。
【0051】
次に、
図5に示すフローチャートを参照しながら、ロボット100が実行する対話制御処理について説明する。対話制御処理は、対象ユーザの嗜好に応じて対話を制御する処理である。ここでは、ロボット100Aの制御部110Aが実行する場合を例にして対話制御処理を説明する。制御部110Aは、ユーザ検知部111Aがロボット100Aの周囲にユーザUSRを検知したことを契機に、対話制御処理を開始する。
【0052】
制御部110Aは、対話制御処理を開始すると、まず、ユーザ特定処理を実行する(ステップS101)。ここで、
図6に示すフローチャートを参照して、ユーザ特定処理について説明する。ユーザ特定処理は、ユーザ検知部111Aが検知したロボット100Aの周囲に存在するユーザを特定する処理である。
【0053】
制御部110Aは、ユーザ特定処理を開始すると、まず、撮像部130Aから取得した撮像画像から対象ユーザの顔画像を抽出する(ステップS201)。制御部110A(ユーザ特定部112A)は、例えば、撮像画像における肌色領域を検出し、肌色領域内に目、鼻、ロ等の顔パーツに相当する部分があるか否かを判定して、顔パーツに相当する部分があると判定すると肌色領域を顔画像とみなして抽出する。
【0054】
続いて、制御部110Aは、抽出した顔画像に対応する登録ユーザを検索する(ステップS202)。制御部110A(ユーザ特定部112A)は、例えば、抽出した顔画像から特徴量を検出し、記憶部120Aのユーザ情報DB121Aに記憶された顔情報と照合し、類似度が所定の基準以上である登録ユーザを検索する。
【0055】
制御部110Aは、ステップS202における検索結果に応じて、ロボット100の周囲に存在するユーザUSRを特定する(ステップS203)。制御部110A(ユーザ特定部112A)は、例えば、ユーザ情報DB121Aに記憶された前記複数のユーザUSRの各々の顔の特徴量うちの、顔画像から検出した特徴量との類似度が最も高い特徴量に対応するユーザUSRを、ロボット100Aの周囲に存在する対象ユーザとして特定する。
【0056】
制御部110Aは、ステップS203の処理を実行した後、ユーザ特定処理を終了し、処理を対話制御処理に戻す。
【0057】
図5に戻り、ユーザ特定処理(ステップS101)を実行した後、制御部110Aは、ロボット100B(他のロボット)との通信接続を確立する(ステップS102)。ここで、通信接続の確立とは、通信相手を指定して所定の手続きを行い、互いにデータの送受信可能な状態を確立することをいう。制御部110Aは、通信部170Aを制御して、通信方式に基づく所定の手続きを行うことにより、ロボット100Bとの通信接続を確立する。なお、赤外線通信方式を用いてロボット100Aとロボット100Bとがデータ通信を行う場合、事前に通信接続を確立する必要はない。
【0058】
続いて、制御部110Aは、前記所定経過時間よりも短い所定時間内(例えば、20秒以内)に、ステップS101で特定した対象ユーザが発話したか否かを判定する(ステップS103)。制御部110Aは、例えば、CPUに付設されたRTC(Real Time Clock)が計測する現在時刻情報を用いて本処理の実行開始時からの経過時間を計測し、ユーザ情報取得部113Aが取得した音声情報に基づいて、所定時間内に対象ユーザの発話の有無を判定する。
【0059】
所定時間内に対象ユーザが発話したと判定した場合(ステップS103:YES)、制御部110A(発話制御部115A)は、対象ユーザとの対話が実行されていると判断し、対象ユーザの発話に対する応答としての発話の内容を、ロボット100Bと連携して決定する(ステップS104)。制御部110A(発話制御部115A)は、記憶部120Aの発話情報DB123A及びユーザ情報DB121Aを参照し、対象ユーザの発話内容に対応し、且つ、ユーザ情報DB121Aに記憶された対象ユーザの嗜好に適合する話題の候補を決定する。この場合、対象ユーザの嗜好に適合する話題として、後述する嗜好度A及びBに対応する話題を話題の候補として決定する。
【0060】
このステップS104において、決定された話題の候補が一つであるときには、これを最終的な話題として決定する。一方、複数の話題の候補が決定された場合において、ロボット100Bの記憶部120Bに発話履歴情報が記憶されているときには、制御部110A(発話制御部115A)は、通信部170Aを介して記憶部120Bに記憶された発話履歴情報を読み出し、読み出した発話履歴情報の中に、複数の話題の候補の何れかと同じ又は関連する話題であって、その発話日時から現在(すなわちロボット100Aの発話開始時)までの経過時間が所定経過時間以内のもの(以下「第1比較対象話題」という)が存在するか否かを判定する。
【0061】
そして、制御部110A(発話制御部115A)は、発話履歴情報の中に上記の第1比較対象話題が存在すると判定したときには、複数の話題の候補から、上記の第1比較対象話題と一致又は関連するものを除外し、最終的に話題を決定する。この除外により残った話題の候補が複数存在する場合には、それらのうちからランダムに選択した1つの話題が、最終的な話題として決定される。
【0062】
一方、複数の話題の候補が決定された場合において、ロボット100Bの記憶部120Bに発話履歴情報が何も記憶されていないとき、又は、第1比較対象話題が発話履歴情報中に存在しないと判定したときには、決定された複数の話題の候補のうちからランダムに選択した1つの話題が、最終的な話題として決定される。発話制御部115Aは、以上のようにして決定した話題に沿った発話内容を示すテキストデータを出力する。
【0063】
一方、所定時間内に対象ユーザが発話していないと判定した場合(ステップS103:NO)、制御部110A(発話制御部115A)は、対象ユーザに話しかける発話の話題を決定する(ステップS105)。このとき、制御部110A(発話制御部115A)は、記憶部120Aの発話情報DB123A及びユーザ情報DB121Aを参照し、ユーザ情報DB121Aに記憶された対象ユーザの嗜好に適合する複数の話題の候補を決定する。この場合、対象ユーザの嗜好に適合する話題として、後述する嗜好度A及びBに対応する話題を話題の候補として決定する。
【0064】
このステップS105において、決定された話題の候補が一つであるときには、これを最終的な話題として決定する。一方、複数の話題の候補が決定されたときには、ステップS104の場合と同様にして、これらの複数の話題の候補から最終的な話題を選択する。具体的には、制御部110A(発話制御部115A)は、複数の話題の候補が決定された場合において、ロボット100Bの記憶部120Bに発話履歴情報が記憶されているときには、制御部110A(発話制御部115A)は、通信部170Aを介して記憶部120Bに記憶された発話履歴情報を読み出し、読み出した発話履歴情報の中に、前記の第1比較対象話題が存在するか否かを判定する。
【0065】
そして、制御部110A(発話制御部115A)は、発話履歴情報の中に第1比較対象話題が存在すると判定したときには、複数の話題の候補から、第1比較対象話題と一致又は関連するものを除外し、最終的に話題を決定する。この除外により残った話題の候補が複数存在する場合には、それらのうちからランダムに選択した1つの話題が、最終的な話題として決定される。
【0066】
一方、複数の話題の候補が決定された場合において、ロボット100Bの記憶部120Bに発話履歴情報が何も記憶されていないとき、又は、第1比較対象話題が発話履歴情報中に存在しないと判定したときには、決定された複数の話題の候補のうちからランダムに選択した1つの話題が、最終的な話題として決定される。
【0067】
対象ユーザが所定時間内に発話していない場合に対象ユーザに話しかける動作は、対象ユーザとロボット100A及びロボット100Bとの対話のトリガとなるものであり、対象ユーザの対話システム1の利用を促すために実施される。
【0068】
ステップS104又はステップS105を実行した後、制御部110Aは、決定された話題に沿った発話内容に基づいて発話する(ステップS106)。制御部110A(音声合成部116A)は、発話制御部115Aから入力したロボット100Aの発話内容を示すテキストデータに対応する音声データを生成し、音声出力部150Aを制御して、音声データに基づく音声を出力する。
【0069】
ステップS107~ステップS109は、ステップS106におけるロボット100Aの発話に対する対象ユーザの反応を判定するための処理である。
【0070】
制御部110A(反応判定部117Aの音声判定部117AA)は、まず、音声判定処理を実行する(ステップS107)。ここで、
図7に示すフローチャートを参照して、音声判定処理について説明する。音声判定処理は、ロボット100Aの発話後に対象ユーザから発した音声に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する処理である。
【0071】
音声判定部117AAは、音声判定処理を開始すると、まず、ステップS106におけるロボット100Aの発話後に対象ユーザの発話があったか否かを判定する(ステップS301)。制御部110Aは、ユーザ情報取得部113Aがロボット100Aの発話後に取得した音声情報に基づいて、ロボット100Aの発話に対する対象ユーザの発話の有無を判定する。
【0072】
ロボット100Aの発話後に対象ユーザの発話があったと判定した場合(ステップS301:YES)、音声判定部117AAは、ロボット100Aの発話に対する対象ユーザの発話から特徴キーワードを抽出する(ステップS302)。音声判定部117AAは、音声認識部114による対象ユーザの発話の内容を示すテキストデータに基づいて、例えば、対象ユーザの発話の内容を特徴付ける特徴キーワードとして、感情に関わるキーワードを抽出する。
【0073】
続いて、音声判定部117AAは、特徴キーワードに基づいて音声反応極性を判定する(ステップS303)。音声判定部117AAは、例えば、記憶部120Aの反応判定情報DB124Aに反応判定情報として記憶された
図4に示す音声反応極性判定テーブルを参照し、抽出した特徴キーワードに対応付けられた音声反応極性に応じて判定する。音声判定部117AAは、例えば、特徴キーワードが「好き」、「楽しい」等の場合には音声反応極性を「ポジティブ」と判定する。
【0074】
一方、ロボット100Aの発話後に対象ユーザの発話がないと判定した場合(ステップS301:NO)、音声判定部117AAは、ロボット100Aの発話に対する反応が判然としないため、音声反応極性を「ニュートラル」と判定する(ステップS304)。
【0075】
制御部110は、ステップS303又はS304を実行した後、音声判定処理を終了し、処理を対話制御処理に戻す。
【0076】
図5に戻り、音声判定処理(ステップS107)を実行した後、制御部110A(反応判定部117の表情判定部117BA)は、表情判定処理を実行する(ステップS108)。ここで、
図8に示すフローチャートを参照して、表情判定処理について説明する。表情判定処理は、対象ユーザの表情に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する処理である。
【0077】
制御部110A(反応判定部117Aの表情判定部117BA)は、表情判定処理を開始すると、まず、ステップS106におけるロボット100Aの発話後にユーザ情報取得部113Aが取得した撮像画像から対象ユーザの顔画像を抽出する(ステップS401)。
【0078】
続いて、表情判定部117BAは、ステップS401において抽出した顔画像に基づいて、対象ユーザの笑顔度を算出する(ステップS402)。制御部110は、例えば、反応判定情報DB124Aに記憶された笑顔度情報を参照し、顔画像における目尻の位置の変化や口の大きさの変化等に基づいて、対象ユーザの笑顔度を0~100%の範囲で算出する。
【0079】
次に、表情判定部117BAは、ステップS402において算出した対象ユーザの笑顔度が70%以上であるか否かを判定する(ステップS403)。対象ユーザの笑顔度が70%以上である場合(ステップS403:YES)、制御部110は、表情反応極性を「ポジティブ」と判定する(ステップS405)。
【0080】
対象ユーザの笑顔度が70%以上ではない場合(ステップS403:NO)、制御部110Aは、対象ユーザの笑顔度が40%以上70%未満であるか否かを判定する(ステップS404)。対象ユーザの笑顔度が40%以上70%未満である場合(ステップS404:YES)、制御部110は、表情反応極性を「ニュートラル」と判定する(ステップS406)。
【0081】
対象ユーザの笑顔度が40%以上70%未満ではない場合(ステップS404:NO)、すなわち、対象ユーザの笑顔度が40%未満である場合、制御部110は、表情反応極性を「ネガティブ」と判定する(ステップS407)。
【0082】
制御部110Aは、ステップS405~S407のいずれかにおいて対象ユーザの表情反応極性を判定した後、表情判定処理を終了し、処理を対話制御処理に戻す。
【0083】
図5に戻り、表情判定処理(ステップS108)を実行した後、制御部110Aは、行動判定処理を実行する(ステップS109)。ここで、
図9に示すフローチャートを参照して、行動判定処理について説明する。行動判定処理は、対象ユーザの行動に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する処理である。
【0084】
制御部110A(反応判定部117Aの行動判定部117CA)は、行動判定処理を開始すると、まず、対象ユーザが活発に動いているか否かを判定する(ステップS501)。行動判定部117CAは、ステップS106におけるロボット100Aの発話後にユーザ情報取得部113Aが取得した撮像画像における対象ユーザの動きに基づいて判定する。対象ユーザが活発に動いていると判定した場合(ステップS501:YES)、行動判定部117CAは、対象ユーザの視線がロボット100Aに向いているか否かを判定する(ステップS502)。行動判定部117CAは、例えば、ユーザ情報取得部113Aが取得した撮像画像における目の領域内の瞳の位置と顔の向き等とから対象ユーザの視線の向きを特定することにより判定する。
【0085】
対象ユーザの視線がロボット100Aに向いていると判定した場合(ステップS502:YES)、行動判定部117CAは、行動反応極性を「ポジティブ」と判定する(ステップS508)。一方、対象ユーザの視線がロボット100Aに向いていないと判定した場合(ステップS502:NO)、行動判定部117CAは、行動反応極性を「ネガティブ」と判定する(ステップS509)。
【0086】
ステップS501において、対象ユーザが活発に動いていないと判定した場合(ステップS501:NO)、行動判定部117CAは、対象ユーザがロボット100Aに近づいたか否かを判定する(ステップS503)。行動判定部117CAは、例えば、ユーザ情報取得部113Aが取得した撮像画像における顔画像の大きさの変化に応じて判定する。
【0087】
対象ユーザがロボット100Aに近づいたと判定した場合(ステップS503:YES)、行動判定部117CAは、対象ユーザの視線がロボット100Aに向いているか否かを判定する(ステップS504)。対象ユーザの視線が、ロボット100Aに向いていると判定した場合(ステップS504:YES)、行動判定部117CAは、行動反応極性を「ポジティブ」と判定する(ステップS508)。一方、対象ユーザの視線がロボット100Aに向いていないと判定した場合(ステップS504:NO)、行動判定部117CAは、行動反応極性を「ネガティブ」と判定する(ステップS509)。
【0088】
ステップS503において、対象ユーザがロボット100Aに近づいていないと判定した場合(ステップS503:NO)、行動判定部117CAは、対象ユーザがロボット100Aから遠ざかったか否かを判定する(ステップS505)。対象ユーザがロボット100Aから遠ざかったと判定した場合(ステップS505:YES)、行動判定部117CAは、行動反応極性を「ネガティブ」と判定する(ステップS509)。
【0089】
一方、対象ユーザがロボット100Aから遠ざかっていないと判定した場合(ステップS505:NO)、行動判定部117Cは、対象ユーザの顔を見失ったか否かを判定する(ステップS506)。対象ユーザが顔の向きを反転させる等して撮像画像から対象ユーザの顔画像を抽出できなくなった場合には、行動判定部117CAは、対象ユーザの顔部分を見失ったと判定する。対象ユーザの顔部分を見失ったと判定した場合(ステップS506:YES)、行動判定部117CAは、行動反応極性を「ニュートラル」と判定する(ステップS510)。
【0090】
対象ユーザの顔部分を見失っていないと判定した場合(ステップS506:NO)、行動判定部117CAは、対象ユーザの視線がロボット100Aに向いているか否かを判定する(ステップS507)。対象ユーザの視線がロボット100Aに対して向いていると判定した場合(ステップS507:YES)、行動判定部117CAは、行動反応極性を「ポジティブ」と判定する(ステップS508)。一方、対象ユーザの視線がロボット100Aに対して向いていないと判定した場合(ステップS507:NO)、行動判定部117CAは、行動反応極性を「ネガティブ」と判定する(ステップS509)。
【0091】
制御部110は、ステップS508~ステップS510の何れかにおいて対象ユーザの行動反応極性を判定した後、行動判定処理を終了し、処理を対話制御処理に戻す。
【0092】
図5に戻り、行動判定処理(ステップS109)を実行した後、制御部110A(嗜好判定部118A)は、嗜好判定処理を実行する(ステップS110)。ここで、
図10に示すフローチャートを参照して、嗜好判定処理について説明する。嗜好判定処理は、音声判定処理、表情判定処理、行動判定処理による各判定結果を用いて、対象ユーザとロボット100Aとの対話における話題に対する対象ユーザの嗜好度を総合的に判定する処理である。
【0093】
嗜好判定部118Aは、嗜好判定処理を開始すると、まず、対象ユーザとロボット100Aとの対話における話題を特定する(ステップS601)。嗜好判定部118Aは、対話制御処理のステップS105において、対象ユーザが所定時間発話していない場合に対象ユーザに話しかける際に、話題が予め設定されている場合には、RAM等に記憶された話題キーワードを参照して、対象ユーザとロボット100Aとの対話における話題を特定する。一方、予め話題が設定されていない場合には、音声認識部114Aによる対象ユーザの発話の内容を示すテキストデータに基づいて、対象ユーザの発話から話題キーワードを抽出することにより、対象ユーザとロボット100Aとの対話における話題を特定する。例えば、「野球が好き」という対象ユーザの発話から、「野球」という話題が特定される。
【0094】
次に、嗜好判定部118Aは、
図7の音声判定処理で判定された音声反応極性が「ポジティブ」であるか否かを判定し(ステップS602)、音声反応極性が「ポジティブ」である場合(ステップS602:YES)、嗜好度を「嗜好度A」と判定する(ステップS609)。
【0095】
音声反応極性が「ポジティブ」ではない場合(ステップS602:NO)、嗜好判定部118Aは、音声反応極性が「ネガティブ」であるか否かを判定する(ステップS603)。音声反応極性が「ネガティブ」である場合(ステップS603:YES)、嗜好判定部118Aは、
図8の表情判定処理で判定された表情反応極性が「ポジティブ」であるか否かを判定する(ステップS604)。表情反応極性が「ポジティブ」である場合(ステップS604:YES)、嗜好判定部118Aは、嗜好度を「嗜好度B」と判定する(ステップS610)。一方、表情反応極性が「ポジティブ」ではない場合(ステップS604:NO)、嗜好判定部118Aは、嗜好度を「嗜好度D」と判定する(ステップS612)。
【0096】
ステップS603において、音声反応極性が「ネガティブ」ではない場合(ステップS603:NO)、嗜好判定部118Aは、
図9の行動判定処理で判定された行動反応極性が「ポジティブ」であるか否かを判定する(ステップS605)。行動反応極性が「ポジティブ」である場合(ステップS605:YES)、嗜好判定部118Aは、表情反応極性が「ポジティブ」又は「ニュートラル」の何れかであるか否かを判定する(ステップS606)。表情反応極性が「ポジティブ」又は「ニュートラル」の何れかである場合(ステップS606:YES)、嗜好判定部118Aは、嗜好度を「嗜好度A」と判定する(ステップS609)。一方、表情反応極性が「ポジティブ」と「ニュートラル」の何れでもない場合(ステップS606:NO)、すなわち、表情反応極性が「ネガティブ」である場合、嗜好判定部118Aは、嗜好度を「嗜好度C」と判定する(ステップS611)。
【0097】
ステップS605において、行動反応極性が「ポジティブ」ではない場合(ステップS605:NO)、嗜好判定部118Aは、行動反応極性が「ニュートラル」であるか否かを判定し(ステップS607)、行動反応極性が「ニュートラル」ではない場合(ステップS607:NO)、嗜好判定部118Aは、嗜好度を「嗜好度C」と判定する(ステップS611)。
【0098】
一方、行動反応極性が「ニュートラル」である場合(ステップS607:YES)、嗜好判定部118Aは、表情反応極性が「ポジティブ」であるか否かを判定する(ステップS608)。嗜好判定部118Aは、表情反応極性が「ポジティブ」である場合(ステップS608:YES)、嗜好度を「嗜好度B」と判定し(ステップS610)、表情反応極性が「ポジティブ」ではない場合(ステップS608:NO)、嗜好度を「嗜好度D」と判定する(ステップS612)。
【0099】
ステップS609~ステップS612のいずれかにおいて、対象ユーザの嗜好度を判定した後、嗜好判定部118Aは、嗜好判定処理を終了し、処理を対話制御処理に戻す。
【0100】
図5に戻り、嗜好判定処理(ステップS110)を実行した後、制御部110Aは、嗜好判定結果を嗜好度情報に反映する(ステップS111)。制御部110Aは、嗜好判定処理における嗜好判定結果として、対象ユーザとロボット100Aとの対話における話題と嗜好度とが対応付けられた情報を、ユーザ情報DB121Aに記憶されたユーザ情報の嗜好度情報に追加して、嗜好度情報を更新する。これにより、嗜好度情報は、ユーザUSRごとに更新される。対象ユーザとロボット100Aとの対話における話題は、RAM等に記憶された話題キーワードが示す話題である。また、制御部110Aは、通信部170Aを制御して、対象ユーザとロボット100Aとの対話における話題と嗜好度とが対応付けられた情報を、ロボット100Bに送信する。この情報を受け取ったロボット100Bは、同様に、ユーザ情報DB121Bに記憶されたユーザ情報の嗜好度情報に追加して、嗜好度情報を更新する。これにより、ロボット100Aとロボット100Bは、各々の嗜好判定結果を共有することができる。なお、複数の話題の各々に対応付けて記憶される嗜好度情報に含まれる嗜好度の初期値は、嗜好度Aに設定されている。このように、反応判定部117A(117B)、嗜好判定部118A(118B)を含む制御部110A(110B)及び通信部170A(170B)は本発明の反応取得手段として機能する。
【0101】
ステップS111の処理を実行した後、制御部110Aは、ロボット100Aの周囲に対象ユーザが存在するか否かを判定する(ステップS112)。ロボット100Aの周囲に対象ユーザが存在すると判定した場合(ステップS112:YES)、制御部110Aは、対象ユーザとの対話が継続可能であると判断し、処理をステップS103に戻す。このステップS112がYESの場合におけるステップS103では、ステップS106の発話が完了してからの経過時間が所定時間以内であるか否かが判定される。
【0102】
一方、ロボット100Aの周囲に対象ユーザが存在しないと判定した場合(ステップS112:NO)、制御部110Aは、対象ユーザとの対話が継続不可能であると判断し、ロボット100B(他のロボット)との通信接続を解除する(ステップS113)。制御部110Aは、通信部170Aを制御して、通信方式に基づく所定の手続きを行うことにより、ロボット100Bとの通信接続を解除する。その後、制御部110Aは、対話制御処理を終了する。
【0103】
以上がロボット100Aの制御部110Aが実行する対話制御処理であるが、ロボット100Bの制御部110Bが実行する対話制御処理も同様である。制御部110Bは、
図5に示すように、対話制御処理を開始する。ユーザ特定処理は、
図6に示すように実行される。
【0104】
図5のステップS103において、所定時間内に対象ユーザが発話したと判定した場合(ステップS103:YES)、制御部110B(発話制御部115B)は、対象ユーザとの対話が実行されていると判断し、対象ユーザの発話に対する応答としての発話の内容を決定する(ステップS104)。制御部110B(発話制御部115B)は、記憶部120Bの発話情報DB123B及びユーザ情報DB121Bを参照し、対象ユーザの発話内容に対応し、且つ、対象ユーザの嗜好に適合する話題の候補を決定する。
【0105】
このステップS104において、決定された話題の候補が一つであるときには、これを最終的な話題として決定する。一方、複数の話題の候補が決定された場合において、ロボット100Aの記憶部120Aに発話履歴情報が記憶されているときには、制御部110B(発話制御部115B)は、通信部170Bを介して記憶部120Aに記憶された発話履歴情報を読み出す。そして制御部110B(発話制御部115B)は、読み出した発話履歴情報の中に、複数の話題の候補の何れかと同じ又は関連する話題であって、その発話日時から現在(すなわちロボット100Bの発話開始時)までの経過時間が所定経過時間以内のもの(以下「第2比較対象話題」という)が存在するか否かを判定する。
【0106】
制御部110B(発話制御部115B)は、第2比較対象話題が存在すると判定したときには、複数の話題の候補から、上記の第2比較対象話題と一致又は関連するものを除外し、最終的に話題を決定する。
【0107】
一方、複数の話題の候補が決定された場合において、ロボット100Aの記憶部120Aに発話履歴情報が何も記憶されていないとき、又は、第2比較対象話題が発話履歴情報中に存在しないと判定したときには、決定された複数の話題の候補のうちからランダムに選択した1つの話題が、最終的な話題として決定される。発話制御部115Bは、以上のようにして決定した話題に沿った発話内容を示すテキストデータを出力する。
【0108】
一方、所定時間内に対象ユーザが発話していないと判定した場合(ステップS103:NO)、制御部110B(発話制御部115B)は、対象ユーザに話しかける発話の内容を決定する(ステップS105)。このとき、制御部110B(発話制御部115B)は、記憶部120Bの発話情報DB123B及びユーザ情報DB121Bを参照し、ユーザ情報DB121Bに記憶された対象ユーザの嗜好に適合する複数の話題の候補を決定する。この場合、対象ユーザの嗜好に適合する話題として、嗜好度A及びBに対応する話題を話題の候補として決定する。
【0109】
このステップS105において、決定された話題の候補が一つであるときには、これを最終的な話題として決定する。一方、複数の話題の候補が決定されたときには、ステップS104の場合と同様にして、これらの複数の話題の候補から最終的な話題を選択する。具体的には、制御部110B(発話制御部115B)は、複数の話題の候補が決定された場合において、ロボット100Aの記憶部120Aに発話履歴情報が記憶されているときには、制御部110B(発話制御部115B)は、通信部170Bを介して記憶部120Aに記憶された発話履歴情報を読み出す。そして制御部110B(発話制御部115B)は、読み出した発話履歴情報の中に、前記の第2比較対象話題が存在するか否かを判定する。
【0110】
制御部110B(発話制御部115B)は、第2比較対象話題が存在すると判定したときには、複数の話題の候補から、第2比較対象話題と一致又は関連するものを除外し、最終的に話題を決定する。
【0111】
一方、複数の話題の候補が決定された場合において、ロボット100Aの記憶部120Aに発話履歴情報が何も記憶されていないとき、又は、第2比較対象話題が発話履歴情報中に存在しないと判定したときには、決定された複数の話題の候補のうちからランダムに選択した1つの話題が、最終的な話題として決定される。
【0112】
制御部110Bが、決定された話題に沿った発話内容に基づいて発話し(ステップS106)、音声が出力されると、対象ユーザの反応を判定する
図7に示す音声判定処理、
図8に示す表情判定処理、
図9に示す行動判定処理が実行される。行動判定処理が終了すると、
図10に示す嗜好判定処理が実行される。制御部110Bは、嗜好判定処理における嗜好判定結果を、ユーザ情報DB121Bに記憶されたユーザ情報の嗜好度情報に追加して、嗜好度情報を更新する。また、制御部110Bは、通信部170Bを制御して、対象ユーザとロボット100Bとの対話における話題と嗜好度とが対応付けられた情報を、ロボット100Aに送信する。この情報を受け取ったロボット100Aは、同様に、ユーザ情報DB121Aに記憶されたユーザ情報の嗜好度情報に追加して、嗜好度情報を更新する。これにより、ロボット100Aとロボット100Bは、各々の嗜好判定結果を共有する。
【0113】
なお、上述した第1の実施形態では、ロボット100A及び100Bの一方のロボットが発話してから前記所定経過時間以内に他方のロボットが発話する場合、他方のロボットが発話する話題を、他方のロボットの発話前の所定経過時間以内に一方のロボットが発話した話題と異なる話題に決定する。それ以外の場合、ロボット100A及び100Bが発話する話題を、互いに連携させずに、互いに無関係に(互いに独立して)決定している。この決定手法に代えて、ユーザ情報DB121A(DB121B)に記憶された対象ユーザの嗜好情報の数が所定のしきい値よりも小さい場合に、ロボット100A及び100Bが発話する話題を互いに異なる話題に決定し、所定のしきい値以上の場合に、ロボット100A及び100Bが発話する話題を、互いに無関係に決定してもよい。すなわち、所定の条件が成立しているときに、ロボット100A及び100Bが発話する話題を互いに異なる話題に決定し、所定の条件が成立していないときに、ロボット100A及び100Bが発話する話題を互いに無関係に決定してもよい。あるいは、所定の条件に拘わらずに、ロボット100A及び100Bが発話する話題(発話内容)を常に、互いに連携させずに互いに無関係に決定してもよい。
【0114】
(第2の実施の形態)
前記の実施の形態では、ロボット100Aとロボット100Bがそれぞれ反応判定、発話制御の機能を有していたが、これらの機能がロボット100Aとロボット100Bとは別個に存在してもよい。本実施の形態では、ロボット100A及びロボット100Bと通信可能な外部のサーバを設け、サーバがロボット100Aとロボット100Bの反応判定、発話制御の処理を行う。
【0115】
本実施の形態における対話システム1は、
図11に示すように、ロボット100A、ロボット100B、サーバ200を備える。
【0116】
ロボット100Aは、第1の実施の形態と同様に、制御部110A、記憶部120A、撮像部130A、音声入力部140A、音声出力部150A、移動部160A、通信部170Aを備える。ただし、制御部110Aは、第1の実施の形態の場合と異なり、発話制御部115A、反応判定部117A、嗜好判定部118Aを備えていない。また、記憶部120Aは、第1の実施の形態の場合と異なり、ユーザ情報DB121A、音声情報DB122A、発話情報DB123A、反応判定情報DB124Aを備えていない。ロボット100Bの構成もロボット100Aと同様であり、制御部110B、記憶部120B、撮像部130B、音声入力部140B、音声出力部150B、移動部160B、通信部170Bを備える。制御部110Bは、発話制御部115B、反応判定部117B、嗜好判定部118Bを備えていない。また、記憶部120Bは、ユーザ情報DB121B、音声情報DB122B、発話情報DB123B、反応判定情報DB124Bを備えていない。
【0117】
サーバ200は、制御部210、記憶部220、通信部270を備える。制御部210は、発話制御部215、反応判定部217、嗜好判定部218を備える。すなわち、ロボット100A及びロボット100Bに代わって、サーバ200は、ロボット100A及びロボット100Bの各々の発話の制御や、ユーザの反応の判定、ユーザの嗜好の判定等を行うための各種の処理を行う。記憶部220は、ユーザ情報DB221、音声情報DB222、発話情報DB223、反応判定情報DB224を備える。すなわち、ロボット100Aとロボット100Bが備えた上記データベースをサーバ200に集約している。また、記憶部220は、ロボット100Aとロボット100Bが発話した発話日時及び発話した話題等を含む発話履歴情報を、ユーザUSRごとに記憶する。サーバ200は、通信部270とロボット100Aの通信部170A及びロボット100Bの通信部170Bを介してロボット100A及びロボット100Bと無線データ通信を行う。これによって、サーバ200は、ロボット100Aとロボット100Bとが対象ユーザと対話することを制御する。このように通信部270は、本発明の第1の通信手段として機能する。また、通信部170A、170Bは、本発明の第2の通信手段として機能する。
【0118】
次に、本実施の形態における対話制御処理について説明する。ここでは、ロボット100Aの対話制御処理を例にして説明する。ロボット100Aの制御部110Aは、ユーザ検知部111Aがロボット100Aの周囲にユーザUSRを検知したことを契機に、対話制御処理を開始する。
【0119】
制御部110Aは、対話制御処理(
図5参照)を開始すると、まず、ユーザ特定処理を実行する。制御部110Aは、撮像部130Aから取得した撮像画像から抽出した顔画像に対応する登録ユーザを検索する。制御部110A(ユーザ特定部112A)は、サーバ200の記憶部220のユーザ情報DB221にアクセスして、撮像画像から抽出した顔画像を、ユーザ情報DB221に記憶された複数のユーザの各々の顔画像と照合し、ユーザUSRを対象ユーザとして特定する。ここで、制御部210は本発明の対象特定手段として機能する。
【0120】
ユーザUSRの情報を受信したサーバ200の制御部210は、所定時間内に対象ユーザが発話したと判定した場合、制御部210(発話制御部215)は、対象ユーザとの対話が実行されていると判断し、対象ユーザの発話に対する応答としての発話の内容を決定する。制御部210(発話制御部215)は、記憶部220の発話情報DB223及びユーザ情報DB221を参照し、対象ユーザの発話内容に対応し、且つ、対象ユーザの嗜好に適合する話題の候補を決定する。
【0121】
決定された話題の候補が一つであるときには、これを最終的な話題として決定する。一方、複数の話題の候補が決定された場合において、記憶部220にロボット100Bの発話履歴情報が記憶されているときには、制御部210(発話制御部215)は、記憶部220に記憶された発話履歴情報を読み出し、読み出した発話履歴情報の中に、第1比較対象話題が存在するか否かを判定する。
【0122】
制御部210(発話制御部215)は、第1比較対象話題が存在すると判定したときには、複数の話題の候補から、上記の第1比較対象話題と一致又は関連するものを除外し、最終的に話題を決定する。
【0123】
一方、複数の話題の候補が決定された場合において、ロボット100Bの発話履歴情報が何も記憶されていないとき、又は、第1比較対象話題が発話履歴情報中に存在しないと判定したときには、決定された複数の話題の候補のうちからランダムに選択した1つの話題が、最終的な話題として決定される。発話制御部215は、以上のようにして決定した話題に沿った発話内容を示すテキストデータを出力する。
【0124】
一方、所定時間内に対象ユーザが発話していないと判定した場合、制御部210(発話制御部215)は、対象ユーザに話しかける発話の内容を決定する。このとき、発話制御部215は、記憶部220の発話情報DB223及びユーザ情報DB221を参照し、ユーザ情報DB221に記憶された対象ユーザの嗜好に適合する複数の話題の候補を決定する。
【0125】
決定された話題の候補が一つであるときには、これを最終的な話題として決定する。一方、複数の話題の候補が決定されたときには、これらの複数の話題の候補から最終的な話題を選択する。複数の話題の候補が決定された場合において、ロボット100Bの発話履歴情報が記憶されているときには、制御部210(発話制御部215)は、発話履歴情報を読み出し、第1比較対象話題が存在するか否かを判定する。
【0126】
制御部210(発話制御部215)は、第1比較対象話題が存在すると判定したときには、複数の話題の候補から、第1比較対象話題と一致又は関連するものを除外し、最終的に話題を決定する。
【0127】
一方、複数の話題の候補が決定された場合において、ロボット100Bの発話履歴情報が何も記憶されていないとき、又は、第1比較対象話題が発話履歴情報中に存在しないと判定したときには、決定された複数の話題の候補のうちからランダムに選択した1つの話題が、最終的な話題として決定される。
【0128】
ロボット100Aは、通信部170Aを介してテキストデータを受信し、音声合成部116Aに送る。音声合成部116Aは、サーバ200の記憶部220の音声情報DB222にアクセスして、音声情報DB222に格納された音響モデル等を用いてテキストデータから音声データを生成する。音声合成部116Aは、音声出力部150Aを制御して、生成した音声データを音声出力する。
【0129】
続いて、ロボット100Aの発話に対して対象ユーザの反応を判定する反応判定処理(
図7から
図9参照)を実行する。
【0130】
制御部210(反応判定部217の音声判定部217A)は、音声判定処理(
図7参照)を実行する。音声判定部217Aは、ロボット100Aが発話した後に対象ユーザが発した音声に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する。対象ユーザが発話すると、ロボット100Aの音声認識部114Aは、サーバ200の記憶部220の音声情報DB222にアクセスして、音声情報DB222に格納された音響モデル等を用いて音声データからテキストデータを生成する。テキストデータは、サーバ200に送信される。音声判定部217Aは、通信部270を通じて受信されたテキストデータに基づいて、ロボット100A及びロボット100Bの発話に対する対象ユーザの反応を判定する。
【0131】
音声判定処理を実行した後、制御部210(反応判定部217の表情判定部217B)は、表情判定処理(
図8参照)を実行する。表情判定部217Bは、ロボット100Aが発話した後の対象ユーザの表情に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する。ロボット100Aのユーザ情報取得部113Aがユーザの撮像画像を取得すると、通信部170Aを介して撮像画像をサーバ200に送信する。表情判定部217Bは、通信部270を介して取得された撮像画像から検出された対象ユーザの顔の特徴量を、記憶部220の反応判定情報DB224に記憶された笑顔度情報を参照し、検出した特徴量に基づいて、対象ユーザの笑顔度を算出する。表情判定部217Bは、算出した笑顔度に応じて、ロボット100Aの発話に対する対象ユーザの反応を判定する。
【0132】
表情判定処理を実行した後、制御部210は、行動判定処理(
図9参照)を実行する。行動判定部217Cは、ロボット100Aが発話した後の対象ユーザの行動に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する。行動判定部217Cは、通信部270を介して撮像画像から検出された対象ユーザの行動に基づいて、ロボット100Aの発話に対する対象ユーザの反応を判定する。
【0133】
行動判定処理を実行した後、制御部210(嗜好判定部218A)は、嗜好判定処理(
図10参照)を実行する。嗜好判定部218は、対象ユーザとロボット100Aとの対話における話題を特定し、反応判定部217による各判定結果に基づいて、話題に対する対象ユーザの嗜好の高さを示す嗜好度を判定する。
【0134】
嗜好判定処理を実行した後、制御部210は、嗜好判定結果を嗜好度情報に反映する。制御部210は、嗜好判定処理における嗜好判定結果として、対象ユーザとロボット100Aとの対話における話題と嗜好度とが対応付けられた情報を、ユーザ情報DB221に記憶されたユーザ情報の嗜好度情報に追加して、嗜好度情報を更新する。これにより、嗜好情報はユーザUSRごとに更新される。
【0135】
ロボット100Bに対しても同様の制御処理がなされる。第1の実施の形態では、ロボット100Aが、対象ユーザとロボット100Aとの対話における嗜好度情報を更新するとともに、ロボット100Bに送信して、この情報を受け取ったロボット100Bは、同様に、ユーザ情報DB121Bに記憶された嗜好度情報を更新する。これにより、ロボット100Aとロボット100Bは、各々の嗜好判定結果を共有することができる。これに対して、本実施の形態では、サーバ200のユーザ情報DB221にロボット100A及びロボット100Bの嗜好度情報がユーザUSRごとに記憶されることから、互いの嗜好度情報を更新する必要がない。
【0136】
上記の実施の形態において、サーバ200は、ロボット100A及びロボット100Bの各々の発話の制御や、ユーザの反応の判定、ユーザの嗜好の判定等の各種の処理を実行した。しかし、これに限らず、サーバ200は、ロボット100A及びロボット100Bの任意の処理を選択して実行することができる。例えば、サーバ200の制御部210は、発話制御部215のみを有し、ロボット100A及びロボット100Bの発話制御の処理のみ実行し、他の処理はロボット100A及びロボット100Bが実行してもよい。また、ロボット100A及びロボット100Bのユーザ検知、ユーザ特定、ユーザ情報取得、音声認識、音声合成、発話制御、反応判定、嗜好判定の処理すべてをサーバが実行してもよい。また、本実施の形態において、サーバ200の記憶部220は、ユーザ情報DB221、音声情報DB222、発話情報DB223、反応判定情報DB224を備える。しかし、これに限らず、サーバ200は、任意のデータベースを備えることができる。例えば、本実施の形態において、音声情報DB222をサーバ200が備えるのでなく、ロボット100A及びロボット100Bのそれぞれが備えてもよい。また、ユーザ情報DB221のユーザを特定する顔情報についてサーバ200だけでなく、ロボット100A及びロボット100Bのそれぞれが備えてもよい。これによって、音声認識、音声合成、ユーザ特定の際に、ロボット100A及びロボット100Bはサーバ200にアクセスする必要がない。
【0137】
以上に説明したように、本実施の形態によれば、対話システム1は、ロボット100A、ロボット100Bを備え、あるいはこれらに加えてサーバ200を備え、ロボット100A(あるいはロボット100B、あるいはサーバ200)は、ロボット100Aによる発話に対する対象ユーザの反応を判定した結果(すなわち対象ユーザの嗜好情報)とロボット100Bによる発話に対する対象ユーザの反応を判定した結果(すなわち対象ユーザの嗜好情報)とに基づいて、ロボット100A及びロボット100Bの少なくとも何れかによる発話を制御する。これにより、対象ユーザの好みを精度よく把握し、対象ユーザの好みに合った対話を行うことができる。
【0138】
また、ロボット100Aの制御部110A(あるいはロボット100Bの制御部110B、あるいはサーバ200)は、ロボット100Aによる発話に対する対象ユーザの反応を判定した結果とロボット100Bによる発話に対する対象ユーザの反応を判定した結果に基づいて、ロボット100A及びロボット100Bの少なくとも何れかによる発話を制御する。そのため、対象ユーザの好みを効率的に把握し、対象ユーザの好みを以降の発話に精度よく反映させることができる。
【0139】
なお、本発明は、前記の実施の形態に限定されず、種々の変形及び応用が可能である。前記の実施の形態は、次のように変形されてもよい。
【0140】
前記の実施の形態において、ロボット100Aとロボット100Bは、互いの発話が対象ユーザに認識されない場所に設けられた。これに対して、ロボット100Aとロボット100Bが、互いの発話が対象ユーザに認識される場所に設けられた場合の変形例について説明する。この場合、ロボット100Aとロボット100Bは、同時に対象ユーザと対話することができる。ただし、ロボット100Aとロボット100Bの発話時刻が重複又は連続すると、対象ユーザがどちらの発話に反応したのか適切に判断できないおそれがある。そうすると、対象ユーザの嗜好情報を適切に取得することができず、また、適切な応答ができない。そこで、発話制御部115Aは、ロボット100A及びロボット100Bによる発話時刻が互いに重複したり、互いに連続したりすることを防止するために、ロボット100Aの発話開始時期を、ロボット100Bの発話制御部115Bと連携して決定する。発話制御部115Aは、ロボット100A及びロボット100Bの互いの発話間隔が例えば対象ユーザの反応を判断するのに十分な時間等の所定時間以上となるように、ロボット100Aの発話開始時期を決定する。また、ロボット100Bの発話制御部115Bは、ロボット100Aの発話中及び発話終了直後連続してロボット100Bが発話しないように、開始ロボット100Bの発話開始時期を決定する。ロボット100Aとロボット100Bの発話開始時期は、発話制御部115A、115Bがそれぞれ決定する以外に、どちらか一方が決定してもよい。サーバ200がロボット100A及びロボット100Bの発話を制御する場合は、発話制御部215が両者の発話開始時期を決定する。これにより、ロボット100A及びロボット100Bによる発話は、互いに連続して行われずに、互いに所定時間以上異なるタイミングで行われる。これにより、対象ユーザの嗜好を精度良く把握し、対象ユーザの嗜好にあった対話を行うことができる。
【0141】
さらに、上記の変形例において、発話制御部115Aは、ロボット100Bの発話制御部115Bと連携して、ロボット100A及びロボット100Bが発話する話題を互いに異なる話題に決定してもよい。この場合に、第1の実施形態の場合と同様に、ロボット100A及び100Bの一方のロボットが発話してから前記所定経過時間以内に他方のロボットが発話する場合に、他方のロボットが発話する話題を、他方のロボットの発話前の所定経過時間以内に一方のロボットが発話した話題と異なる話題に決定し、それ以外の場合に、ロボット100A及び100Bが発話する話題を、互いに連携させずに、互いに無関係に(互いに独立して)決定してもよい。あるいは、この場合に、ユーザ情報DB121A(DB121B)に記憶された対象ユーザの嗜好情報の数が所定のしきい値よりも小さい場合に、ロボット100A及び100Bが発話する話題を互いに異なる話題に決定し、所定のしきい値以上の場合に、ロボット100A及び100Bが発話する話題を、互いに無関係に決定してもよい。あるいは、上記のような所定の条件に拘わらずに、ロボット100A及び100Bが発話する話題(発話内容)を常に、互いに連携させずに互いに無関係に決定してもよい。
【0142】
また、例えば、発話制御部115Aの発話の制御に応じて、移動部160Aを制御する移動制御手段を備えていてもよい。移動制御手段は、例えば、ロボット100Aの発話開始に合わせてロボット100Aを対象ユーザに近づくように移動部160Aを制してもよい。
【0143】
例えば、対話システム1を構成する複数のロボット100にマスタ/スレーブ方式を採用し、例えば、マスタとして機能するロボット100が、スレーブとして機能するロボット100の発話内容を含めて一括して決定し、スレーブとして機能するロボット100に対して決定した発話内容に基づいて発話することを指示するようにしてもよい。この場合、マスタとして機能するロボット100と、スレーブとして機能するロボット100の決定方法は任意であり、例えば、最先に周囲のユーザUSRを検知および特定したロボットがマスタとして機能し、その他のロボット100がスレーブとして機能するようにしてもよい。また、例えば、ユーザUSRにより最先に電源が投入されたロボット100をマスタ、続いて電源が投入されたロボット100をスレーブとして機能するようにしてもよいし、ユーザUSRが物理的なスイッチ等を用いてマスタとして機能するロボット100とスレーブとして機能するロボット100を設定できるように構成してもよい。
【0144】
また、マスタとして機能するロボット100とスレーブとして機能するロボット100とを固定させてもよい。この場合、スレーブとして機能するロボット100が実行可能な機能を一部省略してもよい。例えば、マスタとして機能するロボット100の指示に従って発話する場合、スレーブとして機能するロボット100は、発話制御部115A等に相当する機能を備えていなくてもよい。
【0145】
また、前述の実施の形態では、ロボット100Aとロボット100Bとが対象ユーザと対話する例を説明したが、1台のロボット100によって対象ユーザとの対話を実施するように構成してもよい。この場合、例えば、1台のロボット100が、前述したマスタとして機能する場合と同様に自身の発話内容と他のロボットの発話内容を一括して決定し、決定した発話内容を声色等を替えて順次音声出力することにより、あたかも1台のロボット100が他のロボットの発話を代弁しているかのように演出すればよい。
【0146】
前記の実施の形態では、対話システム1が複数のロボット100を備えるロボットシステムである場合を例に説明したが、対話システム1は、ロボット100が備える構成の全部または1部を備える複数の対話装置によって構成されてもよい。
【0147】
前記の実施の形態において、制御部110A、110BのCPUが実行する制御プログラムは、予めROM等に記憶されていた。しかしながら、本発明は、これに限定されず、前記の各種処理を実行させるための制御プログラムを、既存の汎用コンピュータや、フレームワーク、ワークステーション等の電子機器に実装することにより、前記の実施の形態に係るロボット100A、100Bに相当する装置として機能させてもよい。例えば、ロボット100A、100Bに相当する発話装置として、音声アシスタント機能を有する携帯端末、デジタルサイネージ等が含まれる。デジタルサイネージとは、ディスプレイ等の電子表示機器に映像や情報を表示するシステムである。なお発話はスピーカにより音声出力することに限らず、表示機器に文字として表示することも含む。したがって、発話を文字で表示する携帯端末、デジタルサイネージ等もロボット100A、100Bに相当する発話装置として含まれる。
【0148】
このようなプログラムの提供方法は任意であり、例えば、コンピュータが読取可能な記録媒体(フレキシブルディスク、CD(Compact Disc)-ROM、DVD(Digital Versatile Disc)-ROM)等に格納して配布してもよいし、インターネット等のネットワーク上のストレージにプログラムを格納しておき、これをダウンロードさせることにより提供してもよい。
【0149】
また、前記の処理をOS(Operating System)とアプリケーションプログラムとの分担、又は、OSとアプリケーションプログラムとの協働によって実行する場合には、アプリケーションプログラムのみを記録媒体やストレージに格納してもよい。また、搬送波にプログラムを重畳し、ネットワークを介して配信することも可能である。例えば、ネットワーク上の掲示板(Bulletin Board System:BBS)に前記プログラムを掲示し、ネットワークを介してプログラムを配信してもよい。そして、配信されたプログラムを起動し、OSの制御下で、他のアプリケーションプログラムと同様に実行することにより、前記の処理を実行できるように構成してもよい。
【0150】
本発明は、本発明の広義の精神と範囲とを逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、前述した実施の形態は、この発明を説明するためのものであり、本発明の範囲を限定するものではない。すなわち、本発明の範囲は、実施の形態ではなく、特許請求の範囲によって示される。そして、特許請求の範囲内及び特許請求の範囲と同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
【0151】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0152】
(付記)
(付記1)
第1発話装置による発話に対する所定の対象の反応を判定した結果と、前記第1発話装置とは別個に設けられた第2発話装置による発話に対する前記所定の対象の反応を判定した結果とを含む複数の反応判定結果を取得する反応取得手段と、
前記反応取得手段により取得された複数の反応判定結果に基づいて、前記第1及び第2発話装置を含む複数の発話装置の少なくとも何れかによる前記発話を制御する発話制御手段と、
を備える、
ことを特徴とする対話制御装置。
【0153】
(付記2)
前記反応取得手段は、前記第1発話装置により前記発話が前記所定の対象に対して行われる場所と、前記第2発話装置により前記発話が前記所定の対象に対して行われる場所とが、前記第1及び第2発話装置による前記発話の両方を前記所定の対象が認識できないような場所である場合における、前記第1及び第2発話装置による発話の各々に対する前記所定の対象の反応を判定した結果を含む前記複数の反応判定結果を取得する、
ことを特徴とする付記1に記載の対話制御装置。
【0154】
(付記3)
前記発話制御手段は、前記第1及び第2発話装置による前記発話を、互いに連続して行わずに、互いに所定時間以上異なるタイミングで行うように、制御する、
ことを特徴とする付記1に記載の対話制御装置。
【0155】
(付記4)
前記発話制御手段は、前記第1及び第2発話装置による前記発話の話題を互いに異なる話題に決定する、
ことを特徴とする付記1又は2に記載の対話制御装置。
【0156】
(付記5)
前記発話制御手段は、前記第1及び第2発話装置による前記発話の内容を互いに無関係に決定する、
ことを特徴とする付記1又は2に記載の対話制御装置。
【0157】
(付記6)
前記複数の反応判定結果は、所定の対象が発した音声と前記所定の対象の撮像画像との少なくとも何れかに基づいて前記第1及び第2発話装置による発話に対する前記所定の対象の反応を判定した結果である、
ことを特徴とする付記1乃至5の何れか1つに記載の対話制御装置。
【0158】
(付記7)
前記所定の対象が発した音声と、前記所定の対象の撮像画像の少なくとも何れかを取得する取得手段を更に備え、
前記反応取得手段は、
前記取得手段により取得された前記音声と前記撮像画像の前記少なくとも何れかに基づいて、前記第1及び第2発話装置の各々による前記発話に対する前記所定の対象の反応を判定することにより、前記複数の反応判定結果を取得する、
ことを特徴とする付記1乃至6の何れか1つに記載の対話制御装置。
【0159】
(付記8)
前記反応取得手段は、
前記取得手段により取得された前記音声に基づいて、前記第1及び第2発話装置の各々による前記発話に対する前記所定の対象の前記音声の内容を判定する音声判定手段と、
前記取得手段により取得された前記撮像画像に基づいて、前記第1及び第2発話装置の各々による前記発話に対する前記所定の対象の表情を判定する表情判定手段と、
前記取得手段により取得された前記撮像画像に基づいて、前記第1及び第2発話装置の各々による前記発話に対する前記所定の対象の行動を判定する行動判定手段と、
の少なくとも何れかを有し、
前記音声判定手段、前記表情判定手段及び前記行動判定手段の前記少なくとも何れかの判定結果に基づいて、前記第1及び第2発話装置の各々による前記発話に対する前記所定の対象の反応を判定することにより、前記複数の反応判定結果を取得する、
ことを特徴とする付記7に記載の対話制御装置。
【0160】
(付記9)
前記反応取得手段は、前記所定の対象の前記音声、前記表情及び前記行動の少なくとも何れかに基づいて、前記所定の対象の前記反応を肯定的な反応、否定的な反応、肯定的でも否定的でもない中立的な反応に分類することにより、前記所定の対象の前記反応を判定する、
ことを特徴とする付記8に記載の対話制御装置。
【0161】
(付記10)
前記所定の対象が発した前記音声と、前記第1発話装置による前記発話と、前記第2発話装置による前記発話との少なくとも何れかに基づいて、前記所定の対象との対話における話題を特定する特定手段と、
前記取得した複数の反応判定結果に基づいて、前記特定手段により特定された前記話題に対する前記所定の対象の嗜好の度合いを示す嗜好度を判定する嗜好判定手段と、
を更に備え、
前記発話制御手段は、前記嗜好判定手段により判定された嗜好度に基づいて、前記複数の発話装置の前記少なくとも何れかによる前記発話を制御する、
ことを特徴とする付記7乃至9の何れか1つに記載の対話制御装置。
【0162】
(付記11)
前記嗜好は、有形と無形とを問わず物事に関する趣味や好みであり、食品、スポーツ、天気に関する趣味や好みの他、前記第1発話装置と前記第2発話装置の少なくとも何れかの発話内容に対する好みを含む、
ことを特徴とする付記10に記載の対話制御装置。
【0163】
(付記12)
前記嗜好判定手段は、前記話題に対する前記所定の対象の前記嗜好が高い順に、前記嗜好度を複数の段階に判定し、
前記発話制御手段は、前記嗜好判定手段により判定された前記嗜好度を示す前記複数の段階の情報に基づいて、前記複数の発話装置の前記少なくとも何れかによる前記発話を制御する、
ことを特徴とする付記10又は11に記載の対話制御装置。
【0164】
(付記13)
前記所定の対象は人又は動物又はロボットを含む、
ことを特徴とする付記1乃至12の何れか1つに記載の対話制御装置。
【0165】
(付記14)
互いに異なる複数の対象から前記所定の対象を特定する対象特定手段を更に備え、
前記反応取得手段は、前記第1発話装置による発話に対する、前記特定された前記所定の対象の反応を判定した結果と、前記第1発話装置とは別個に設けられた第2発話装置による発話に対する、前記特定された前記所定の対象の反応を判定した結果とを含む複数の反応判定結果を取得する、
ことを特徴とする、付記1乃至13の何れか1つに記載の対話制御装置。
【0166】
(付記15)
前記対話制御装置は、前記第1及び第2発話装置の少なくとも何れかに設けられていることを特徴とする、付記1乃至14の何れか1つに記載の対話制御装置。
【0167】
(付記16)
前記対話制御装置は、前記第1及び第2発話装置とは別個に設けられていることを特徴とする、付記1乃至14の何れか1つに記載の対話制御装置。
【0168】
(付記17)
発話可能に構成された第1発話装置及び第2発話装置と、対話制御装置と、を備える対話システムであって、
前記対話制御装置は、
前記第1発話装置による発話に対する所定の対象の反応を判定した結果と、前記第1発話装置とは別個に設けられた前記第2発話装置による発話に対する前記所定の対象の反応を判定した結果とを含む複数の反応判定結果を取得する反応取得手段と、
前記反応取得手段により取得された複数の反応判定結果に基づいて、前記第1及び第2発話装置を含む複数の発話装置の少なくとも何れかによる前記発話を制御する発話制御手段と、
を備える、
ことを特徴とする対話システム。
【0169】
(付記18)
前記第1及び第2発話装置の各々は、
前記所定の対象が発した音声と、前記所定の対象の撮像画像の少なくとも何れかを取得する取得手段と、
第1通信手段と、を備え、
前記対話制御装置は、前記第1及び第2発話装置と前記第1通信手段を介して通信するための第2通信手段を更に備え、
前記対話制御装置の前記反応取得手段は、
前記第1発話装置の前記取得手段により取得された前記音声と前記撮像画像との前記少なくとも何れかである第1データを、前記第1及び第2通信手段を介して取得し、前記取得した前記第1データに基づいて、前記第1発話装置による前記発話に対する前記所定の対象の反応を判定することにより、前記第1発話装置による前記発話に対する前記所定の対象の反応の判定結果である第1反応判定結果を取得し、
前記第2発話装置の前記取得手段により取得された前記音声と前記撮像画像との前記少なくとも何れかである第2データを、前記第1及び第2通信手段を介して取得し、前記取得した前記第2データに基づいて、前記第2発話装置による前記発話に対する前記所定の対象の反応を判定することにより、前記第2発話装置による前記発話に対する前記所定の対象の反応の判定結果である第2反応判定結果を取得し、
前記対話制御装置の前記発話制御手段は、前記反応取得手段により取得された前記第1及び第2反応判定結果を含む前記複数の反応判定結果に基づき、前記第2及び第1通信手段を介して、前記第1及び第2発話装置による前記発話を制御する、
ことを特徴とする付記17に記載の対話システム。
【0170】
(付記19)
第1発話装置による発話に対する所定の対象の反応を判定した結果と、前記第1発話装置とは別個に設けられた第2発話装置による発話に対する前記所定の対象の反応を判定した結果とを含む複数の反応判定結果を取得する処理と、
前記取得された複数の反応判定結果に基づいて、前記第1及び第2発話装置を含む複数の発話装置の少なくとも何れかによる前記発話を制御する処理と、
を含む、
ことを特徴とする対話制御方法。
【0171】
(付記20)
コンピュータを、
第1発話装置による発話に対する所定の対象の反応を判定した結果と、前記第1発話装置とは別個に設けられた第2発話装置による発話に対する前記所定の対象の反応を判定した結果とを含む複数の反応判定結果を取得する反応取得手段、
前記反応取得手段により取得された複数の反応判定結果に基づいて、前記第1及び第2発話装置を含む複数の発話装置の少なくとも何れかによる前記発話を制御する発話制御手段、
として機能させる、
ことを特徴とするプログラム。
【符号の説明】
【0172】
1…対話システム、100,100A,100B…ロボット、101…胴体部、102…頭部、103…手部、104…足部、105…目部、106…口部、107…耳部、110A,110B,210…制御部、111A,111B…ユーザ検知部、112A,112B…ユーザ特定部、113A,113B…ユーザ情報取得部、114A,114B…音声認識部、115A,115B,215…発話制御部、116A,116B…音声合成部、117A,117B,217…反応判定部、117AA,117AB,217A…音声判定部、117BA,117BB,217B…表情判定部、117CA,117CB,217C…行動判定部、118A,118B,218…嗜好判定部、120A,120B,220…記憶部、121A,121B,221…ユーザ情報DB、122A,122B,222…音声情報DB、123A,123B,223…発話情報DB、124A,124B,224…反応判定情報DB、130A,130B…撮像部、140A,140B…音声入力部、150A,150B…音声出力部、160A,160B…移動部、170A,170B,270…通信部、200…サーバ、BL…バスライン、USR…ユーザ