(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024154421
(43)【公開日】2024-10-30
(54)【発明の名称】エージェントシステム
(51)【国際特許分類】
G10L 15/22 20060101AFI20241023BHJP
G06F 3/01 20060101ALI20241023BHJP
G06N 3/008 20230101ALI20241023BHJP
G06F 16/90 20190101ALI20241023BHJP
G06F 16/9035 20190101ALI20241023BHJP
G06F 40/56 20200101ALI20241023BHJP
G10L 13/00 20060101ALI20241023BHJP
G10L 13/08 20130101ALI20241023BHJP
【FI】
G10L15/22 300Z
G06F3/01 510
G06N3/008
G06F16/90 100
G06F16/9035
G06F40/56
G10L13/00 100M
G10L13/08 122
【審査請求】未請求
【請求項の数】4
【出願形態】OL
(21)【出願番号】P 2024066855
(22)【出願日】2024-04-17
(31)【優先権主張番号】P 2023068145
(32)【優先日】2023-04-18
(33)【優先権主張国・地域又は機関】JP
(31)【優先権主張番号】P 2023146374
(32)【優先日】2023-09-08
(33)【優先権主張国・地域又は機関】JP
(71)【出願人】
【識別番号】591280485
【氏名又は名称】ソフトバンクグループ株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】孫 正義
【テーマコード(参考)】
5B175
5E555
【Fターム(参考)】
5B175EA01
5B175HA02
5E555AA48
5E555AA71
5E555BA02
5E555BA90
5E555BB02
5E555BB40
5E555BC04
5E555CA42
5E555CA47
5E555CB64
5E555CB67
5E555CC03
5E555DA23
5E555DA40
5E555EA19
5E555EA22
5E555EA23
5E555EA27
5E555EA28
5E555FA00
(57)【要約】
【課題】ユーザ及び自身の感情を理解してユーザと対話を行うエージェントシステムを提供する。
【解決手段】エージェントシステムは、ユーザの感情又はエージェントの感情を決定する感情決定部と、前記ユーザと対話するための前記エージェントの対話内容を、前記感情決定部によって決定された感情に応じた態様で出力する対話処理部51と、前記ユーザを模した模擬エージェントを新たに作成するユーザ模倣部58と、を含み、前記模擬エージェントは、他のエージェント又は他のユーザとの対話により、前記ユーザの情報を提供する。
【選択図】
図10
【特許請求の範囲】
【請求項1】
ユーザの感情又はエージェントの感情を決定する感情決定部と、
前記ユーザと対話するための前記エージェントの対話内容を、前記感情決定部によって決定された感情に応じた態様で出力する対話処理部と、
前記ユーザを模した模擬エージェントを新たに作成するユーザ模倣部と、を含み、
前記模擬エージェントは、他のエージェント又は他のユーザとの対話により、前記ユーザの情報を提供するエージェントシステム。
【請求項2】
前記模擬エージェントと、一又は複数の前記他のユーザが議論をした場合の記録を生成する生成部をさらに含む請求項1に記載のエージェントシステム。
【請求項3】
前記ユーザとの対話の履歴を格納した対話履歴格納部を更に含み、
前記対話履歴格納部に格納された対話の履歴を用いて、前記ユーザ模倣部は前記ユーザを模した模擬エージェントを作成する
請求項1又は2に記載のエージェントシステム。
【請求項4】
前記感情決定部で決定されたユーザの感情のデータを用いて、前記ユーザ模倣部は前記ユーザを模した模擬エージェントを作成する
請求項1又は2に記載のエージェントシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エージェントシステムに関する。
【背景技術】
【0002】
特許文献1には、ユーザの状態に対してロボットの適切な行動を決定する技術が開示されている。特許文献1の従来技術は、ロボットが特定の行動を実行したときのユーザの反応を認識し、認識したユーザの反応に対するロボットの行動を決定できなかった場合、認識したユーザの状態に適した行動に関する情報をサーバから受信することで、ロボットの行動を更新する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、ユーザ及び自身の感情を理解してユーザと対話を行うエージェントシステムを提供することを目的とする。
【課題を解決するための手段】
【0005】
本発明の第1の態様によれば、エージェントシステムが提供される。エージェントシステムは、ユーザの感情又はエージェントの感情を決定する感情決定部と、前記ユーザと対話するための前記エージェントの発話内容を、前記感情決定部によって決定された感情に応じた態様で出力する対話処理部とを含む。
【図面の簡単な説明】
【0006】
【
図1】本実施形態に係るシステム5の一例を概略的に示す。
【
図3】ロボット100による動作フローの一例を概略的に示す。
【
図4】コンピュータ1200のハードウェア構成の一例を概略的に示す。
【
図5】複数の感情がマッピングされる感情マップ300を示す。
【
図6】複数の感情がマッピングされる感情マップ900を示す。
【
図7】エージェントシステムの機能構成を概略的に示す。
【
図10】第2実施形態のエージェントシステムの機能構成を概略的に示す。
【
図11】ユーザ60とエージェントAとエージェントUの対話の一例を示す。
【
図12】ユーザ60とエージェントAとエージェントUの対話の一例を示す。
【
図13】第2実施形態のエージェントシステムの動作の一例を示す。
【
図14】第3実施形態のエージェントUと複数の他人Xとの討論の一例を示す。
【発明を実施するための形態】
【0007】
以下、発明の実施の形態を通じて本発明を説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【0008】
(第1実施形態)
図1は、本実施形態に係るシステム5の一例を概略的に示す。システム5は、ロボット100、ロボット101、ロボット102、及びサーバ300を備える。ユーザ10a、ユーザ10b、ユーザ10c、及びユーザ10dは、ロボット100のユーザである。ユーザ11a、ユーザ11b及びユーザ11cは、ロボット101のユーザである。ユーザ12a及びユーザ12bは、ロボット102のユーザである。なお、本実施形態の説明において、ユーザ10a、ユーザ10b、ユーザ10c、及びユーザ10dを、ユーザ10と総称する場合がある。また、ユーザ11a、ユーザ11b及びユーザ11cを、ユーザ11と総称する場合がある。また、ユーザ12a及びユーザ12bを、ユーザ12と総称する場合がある。ロボット101及びロボット102は、ロボット100と略同一の機能を有する。そのため、ロボット100の機能を主として取り上げてシステム5を説明する。
【0009】
ロボット100は、ユーザ10と会話を行ったり、ユーザ10に映像を提供したりする。このとき、ロボット100は、通信網20を介して通信可能なサーバ300等と連携して、ユーザ10との会話や、ユーザ10への映像等の提供を行う。例えば、ロボット100は、自身で適切な会話を学習するだけでなく、サーバ300と連携して、ユーザ10とより適切に会話を進められるように学習を行う。また、ロボット100は、撮影したユーザ10の映像データ等をサーバ300に記録させ、必要に応じて映像データ等をサーバ300に要求して、ユーザ10に提供する。
【0010】
また、ロボット100は、自身の感情の種類を表す感情値を持つ。例えば、ロボット100は、「喜」、「怒」、「哀」、「楽」、「快」、「不快」、「安心」、「不安」、「悲しみ」、「興奮」、「心配」、「安堵」、「充実感」、「虚無感」及び「普通」のそれぞれの感情の強さを表す感情値を持つ。ロボット100は、例えば興奮の感情値が大きい状態でユーザ10と会話するときは、早いスピードで音声を発する。このように、ロボット100は、自己の感情を行動で表現することができる。
【0011】
また、ロボット100は、文章生成モデルと感情エンジンをマッチングさせることで、ユーザ10の感情に対応するロボット100の行動を決定するように構成してよい。具体的には、ロボット100は、ユーザ10の行動を認識して、当該ユーザの行動に対するユーザ10の感情を判定し、判定した感情に対応するロボット100の行動を決定するように構成してよい。
【0012】
より具体的には、ロボット100は、ユーザ10の行動を認識した場合、予め設定された文章生成モデルを用いて、当該ユーザ10の行動に対してロボット100がとるべき行動内容を自動で生成する。文章生成モデルは、文字による自動対話処理のためのアルゴリズム及び演算と解釈してよい。文章生成モデルは、例えば特開2018-081444号公報やchatGPT(インターネット検索<URL: https://openai.com/blog/chatgpt>)に開示される通り公知であるため、その詳細な説明を省略する。このような、文章生成モデルは、大規模言語モデル(LLM:Large Language Model)により構成されている。
【0013】
以上、本実施形態は、大規模言語モデルと感情エンジンとを組み合わせることにより、ユーザ10やロボット100の感情と、様々な言語情報とをロボット100の行動に反映させるということができる。つまり、本実施形態によれば、文章生成モデルと感情エンジンとを組み合わせることにより、相乗効果を得ることができる。
【0014】
また、ロボット100は、ユーザ10の行動を認識する機能を有する。ロボット100は、カメラ機能で取得したユーザ10の顔画像や、マイク機能で取得したユーザ10の音声を解析することによって、ユーザ10の行動を認識する。ロボット100は、認識したユーザ10の行動等に基づいて、ロボット100が実行する行動を決定する。
【0015】
ロボット100は、ユーザ10の感情、ロボット100の感情、及びユーザ10の行動に基づいてロボット100が実行する行動を定めたルールを記憶しており、ルールに従って各種の行動を行う。
【0016】
具体的には、ロボット100には、ユーザ10の感情、ロボット100の感情、及びユーザ10の行動に基づいてロボット100の行動を決定するための反応ルールを有している。反応ルールには、例えば、ユーザ10の行動が「笑う」である場合に対して、「笑う」という行動が、ロボット100の行動として定められている。また、反応ルールには、ユーザ10の行動が「怒る」である場合に対して、「謝る」という行動が、ロボット100の行動として定められている。また、反応ルールには、ユーザ10の行動が「質問する」である場合に対して、「回答する」という行動が、ロボット100の行動として定められている。反応ルールには、ユーザ10の行動が「悲しむ」である場合に対して、「声をかける」という行動が、ロボット100の行動として定められている。
【0017】
ロボット100は、反応ルールに基づいて、ユーザ10の行動が「怒る」であると認識した場合、反応ルールで定められた「謝る」という行動を、ロボット100が実行する行動として選択する。例えば、ロボット100は、「謝る」という行動を選択した場合に、「謝る」動作を行うと共に、「謝る」言葉を表す音声を出力する。
【0018】
また、ロボット100の感情が「普通」(すなわち、「喜」=0、「怒」=0、「哀」=0、「楽」=0)であり、ユーザ10の状態が「1人、寂しそう」という条件が満たされた場合に、ロボット100の感情が「心配になる」という感情の変化内容と、「声をかける」の行動を実行できることが定められている。
【0019】
ロボット100は、反応ルールに基づいて、ロボット100の現在の感情が「普通」であり、かつ、ユーザ10が1人で寂しそうな状態にあると認識した場合、ロボット100の「哀」の感情値を増大させる。また、ロボット100は、反応ルールで定められた「声をかける」という行動を、ユーザ10に対して実行する行動として選択する。例えば、ロボット100は、「声をかける」という行動を選択した場合に、心配していることを表す「どうしたの?」という言葉を、心配そうな音声に変換して出力する。
【0020】
また、ロボット100は、この行動によって、ユーザ10からポジティブな反応が得られたことを示すユーザ反応情報を、サーバ300に送信する。ユーザ反応情報には、例えば、「怒る」というユーザ行動、「謝る」というロボット100の行動、ユーザ10の反応がポジティブであったこと、及びユーザ10の属性が含まれる。
【0021】
サーバ300は、ロボット100から受信したユーザ反応情報を記憶する。なお、サーバ300は、ロボット100だけでなく、ロボット101及びロボット102のそれぞれからもユーザ反応情報を受信して記憶する。そして、サーバ300は、ロボット100、ロボット101及びロボット102からのユーザ反応情報を解析して、反応ルールを更新する。
【0022】
ロボット100は、更新された反応ルールをサーバ300に問い合わせることにより、更新された反応ルールをサーバ300から受信する。ロボット100は、更新された反応ルールを、ロボット100が記憶している反応ルールに組み込む。これにより、ロボット100は、ロボット101やロボット102等が獲得した反応ルールを、自身の反応ルールに組み込むことができる。
【0023】
図2は、ロボット100の機能構成を概略的に示す。ロボット100は、センサ部200と、センサモジュール部210と、格納部220と、ユーザ状態認識部230と、感情決定部232と、行動認識部234と、行動決定部236と、記憶制御部238と、行動制御部250と、制御対象252と、通信処理部280と、を有する。
【0024】
制御対象252は、表示装置、スピーカ及び目部のLED、並びに、腕、手及び足等を駆動するモータ等を含む。ロボット100の姿勢や仕草は、腕、手及び足等のモータを制御することにより制御される。ロボット100の感情の一部は、これらのモータを制御することにより表現できる。また、ロボット100の目部のLEDの発光状態を制御することによっても、ロボット100の表情を表現できる。なお、ロボット100の姿勢、仕草及び表情は、ロボット100の態度の一例である。
【0025】
センサ部200は、マイク201と、3D深度センサ202と、2Dカメラ203と、距離センサ204とを含む。マイク201は、音声を連続的に検出して音声データを出力する。なお、マイク201は、ロボット100の頭部に設けられ、バイノーラル録音を行う機能を有してよい。3D深度センサ202は、赤外線パターンを連続的に照射して、赤外線カメラで連続的に撮影された赤外線画像から赤外線パターンを解析することによって、物体の輪郭を検出する。2Dカメラ203は、イメージセンサの一例である。2Dカメラ203は、可視光によって撮影して、可視光の映像情報を生成する。距離センサ204は、例えばレーザや超音波等を照射して物体までの距離を検出する。なお、センサ部200は、この他にも、時計、ジャイロセンサ、タッチセンサ、モータフィードバック用のセンサ等を含んでよい。
【0026】
なお、
図2に示すロボット100の構成要素のうち、制御対象252及びセンサ部200を除く構成要素は、ロボット100が有する行動制御システムが有する構成要素の一例である。ロボット100の行動制御システムは、制御対象252を制御の対象とする。
【0027】
格納部220は、反応ルール221及び履歴データ222を含む。履歴データ222は、ユーザ10の過去の感情値及び行動の履歴を含む。この感情値及び行動の履歴は、例えば、ユーザ10の識別情報に対応付けられることによって、ユーザ10毎に記録される。格納部220の少なくとも一部は、メモリ等の記憶媒体によって実装される。ユーザ10の顔画像、ユーザ10の属性情報等を格納する人物DBを含んでもよい。なお、
図2に示すロボット100の構成要素のうち、制御対象252、センサ部200及び格納部220を除く構成要素の機能は、CPUがプログラムに基づいて動作することによって実現できる。例えば、基本ソフトウエア(OS)及びOS上で動作するプログラムによって、これらの構成要素の機能をCPUの動作として実装できる。
【0028】
センサモジュール部210は、音声感情認識部211と、発話理解部212と、表情認識部213と、顔認識部214とを含む。センサモジュール部210には、センサ部200で検出された情報が入力される。センサモジュール部210は、センサ部200で検出された情報を解析して、解析結果をユーザ状態認識部230に出力する。
【0029】
センサモジュール部210の音声感情認識部211は、マイク201で検出されたユーザ10の音声を解析して、ユーザ10の感情を認識する。例えば、音声感情認識部211は、音声の周波数成分等の特徴量を抽出して、抽出した特徴量に基づいて、ユーザ10の感情を認識する。発話理解部212は、マイク201で検出されたユーザ10の音声を解析して、ユーザ10の発話内容を表す文字情報を出力する。
【0030】
表情認識部213は、2Dカメラ203で撮影されたユーザ10の画像から、ユーザ10の表情及びユーザ10の感情を認識する。例えば、表情認識部213は、目及び口の形状、位置関係等に基づいて、ユーザ10の表情及び感情を認識する。
【0031】
顔認識部214は、ユーザ10の顔を認識する。顔認識部214は、人物DB(図示省略)に格納されている顔画像と、2Dカメラ203によって撮影されたユーザ10の顔画像とをマッチングすることによって、ユーザ10を認識する。
【0032】
ユーザ状態認識部230は、センサモジュール部210で解析された情報に基づいて、ユーザ10の状態を認識する。例えば、センサモジュール部210の解析結果を用いて、主として知覚に関する処理を行う。例えば、「パパが1人です。」、「パパが笑顔でない確率90%です。」等の知覚情報を生成する。生成された知覚情報の意味を理解する処理を行う。例えば、「パパが1人、寂しそうです。」等の意味情報を生成する。
【0033】
感情決定部232は、センサモジュール部210で解析された情報、及びユーザ状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の感情を示す感情値を決定する。例えば、センサモジュール部210で解析された情報、及び認識されたユーザ10の状態を、予め学習されたニューラルネットワークに入力し、ユーザ10の感情を示す感情値を取得する。
【0034】
ここで、ユーザ10の感情を示す感情値とは、ユーザの感情の正負を示す値であり、例えば、ユーザの感情が、「喜」、「楽」、「快」、「安心」、「興奮」、「安堵」、及び「充実感」のように、快感や安らぎを伴う明るい感情であれば、正の値を示し、明るい感情であるほど、大きい値となる。ユーザの感情が、「怒」、「哀」、「不快」、「不安」、「悲しみ」、「心配」、及び「虚無感」のように、嫌な気持ちになってしまう感情であれば、負の値を示し、嫌な気持ちであるほど、負の値の絶対値が大きくなる。ユーザの感情が、上記の何れでもない場合(「普通」)、0の値を示す。
【0035】
また、感情決定部232は、センサモジュール部210で解析された情報、及びユーザ状態認識部230によって認識されたユーザ10の状態に基づいて、ロボット100の感情を示す感情値を決定する。
ロボット100の感情値は、複数の感情分類の各々に対する感情値を含み、例えば、「喜」、「怒」、「哀」、「楽」それぞれの強さを示す値(0~5)である。
【0036】
具体的には、感情決定部232は、センサモジュール部210で解析された情報、及びユーザ状態認識部230によって認識されたユーザ10の状態に対応付けて定められた、ロボット100の感情値を更新するルールに従って、ロボット100の感情を示す感情値を決定する。
【0037】
例えば、感情決定部232は、ユーザ状態認識部230によってユーザ10が寂しそうと認識された場合、ロボット100の「哀」の感情値を増大させる。また、ユーザ状態認識部230によってユーザ10が笑顔になったと認識された場合、ロボット100の「喜」の感情値を増大させる。
【0038】
なお、感情決定部232は、ロボット100の状態を更に考慮して、ロボット100の感情を示す感情値を決定してもよい。例えば、ロボット100のバッテリー残量が少ない場合やロボット100の周辺環境が真っ暗な場合等に、ロボット100の「哀」の感情値を増大させてもよい。更にバッテリー残量が少ないにも関わらず継続して話しかけてくるユーザ10の場合は、「怒」の感情値を増大させても良い。
【0039】
行動認識部234は、センサモジュール部210で解析された情報、及びユーザ状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の行動を認識する。例えば、センサモジュール部210で解析された情報、及び認識されたユーザ10の状態を、予め学習されたニューラルネットワークに入力し、予め定められた複数の行動分類(例えば、「笑う」、「怒る」、「質問する」、「悲しむ」)の各々の確率を取得し、最も確率の高い行動分類を、ユーザ10の行動として認識する。
【0040】
以上のように、本実施形態では、ロボット100は、ユーザ10を特定したうえでユーザ10の発話内容を取得するが、当該発話内容の取得と利用等に際してはユーザ10から法令に従った必要な同意を取得するほか、本実施形態に係るロボット100の行動制御システムは、ユーザ10の個人情報及びプライバシーの保護に配慮する。
【0041】
行動決定部236は、感情決定部232により決定されたユーザ10の現在の感情値と、ユーザ10の現在の感情値が決定されるよりも前に感情決定部232により決定された過去の感情値の履歴データ222と、ロボット100の感情値とに基づいて、行動認識部234によって認識されたユーザ10の行動に対応する行動を決定する。本実施形態では、行動決定部236は、ユーザ10の過去の感情値として、履歴データ222に含まれる直近の1つの感情値を用いる場合について説明するが、開示の技術はこの態様に限定されない。例えば、行動決定部236は、ユーザ10の過去の感情値として、直近の複数の感情値を用いてもよいし、一日前などの単位期間の分だけ前の感情値を用いてもよい。また、行動決定部236は、ロボット100の現在の感情値だけでなく、ロボット100の過去の感情値の履歴を更に考慮して、ユーザ10の行動に対応する行動を決定してもよい。行動決定部236が決定する行動は、ロボット100が行うジェスチャー又はロボット100の発話内容を含む。
【0042】
本実施形態に係る行動決定部236は、ユーザ10の行動に対応する行動として、ユーザ10の過去の感情値と現在の感情値の組み合わせと、ロボット100の感情値と、ユーザ10の行動と、反応ルール221とに基づいて、ロボット100の行動を決定する。例えば、行動決定部236は、ユーザ10の過去の感情値が正の値であり、かつ現在の感情値が負の値である場合、ユーザ10の行動に対応する行動として、ユーザ10の感情値を正に変化させるための行動を決定する。
【0043】
反応ルール221には、ユーザ10の過去の感情値と現在の感情値の組み合わせと、ロボット100の感情値と、ユーザ10の行動とに応じたロボット100の行動が定められている。例えば、ユーザ10の過去の感情値が正の値であり、かつ現在の感情値が負の値であり、ユーザ10の行動が悲しむである場合、ロボット100の行動として、ジェスチャーを交えてユーザ10を励ます問いかけを行う際のジェスチャーと発話内容との組み合わせが定められている。
【0044】
例えば、反応ルール221には、ロボット100の感情値のパターン(「喜」、「怒」、「哀」、「楽」の値「0」~「5」の6値の4乗である1296パターン)、ユーザ10の過去の感情値と現在の感情値の組み合わせのパターン、ユーザ10の行動パターンの全組み合わせに対して、ロボット100の行動が定められる。すなわち、ロボット100の感情値のパターン毎に、ユーザ10の過去の感情値と現在の感情値の組み合わせが、負の値と負の値、負の値と正の値、正の値と負の値、正の値と正の値、負の値と普通、及び普通と普通等のように、複数の組み合わせのそれぞれに対して、ユーザ10の行動パターンに応じたロボット100の行動が定められる。なお、行動決定部236は、例えば、ユーザ10が「この前に話したあの話題について話したい」というような過去の話題から継続した会話を意図する発話を行った場合に、履歴データ222を用いてロボット100の行動を決定する動作モードに遷移してもよい。
なお、反応ルール221には、ロボット100の感情値のパターン(1296パターン)の各々に対して、最大で一つずつ、ロボット100の行動としてジェスチャー及び発言内容の少なくとも一方が定められていてもよい。あるいは、反応ルール221には、ロボット100の感情値のパターンのグループの各々に対して、ロボット100の行動としてジェスチャー及び発言内容の少なくとも一方が定められていてもよい。
【0045】
反応ルール221に定められているロボット100の行動に含まれる各ジェスチャーには、当該ジェスチャーの強度が予め定められている。反応ルール221に定められているロボット100の行動に含まれる各発話内容には、当該発話内容の強度が予め定められている。
【0046】
記憶制御部238は、行動決定部236によって決定された行動に対して予め定められた行動の強度と、感情決定部232により決定されたロボット100の感情値とに基づいて、ユーザ10の行動を含むデータを履歴データ222に記憶するか否かを決定する。
具体的には、ロボット100の複数の感情分類の各々に対する感情値の総和と、行動決定部236によって決定された行動が含むジェスチャーに対して予め定められた強度と、行動決定部236によって決定された行動が含む発話内容に対して予め定められた強度との和である強度の総合値が、閾値以上である場合、ユーザ10の行動を含むデータを履歴データ222に記憶すると決定する。
【0047】
記憶制御部238は、ユーザ10の行動を含むデータを履歴データ222に記憶すると決定した場合、行動決定部236によって決定された行動と、現時点から一定期間前までの、センサモジュール部210で解析された情報(例えば、その場の音声、画像、匂い等のデータなどのあらゆる周辺情報)、及びユーザ状態認識部230によって認識されたユーザ10の状態(例えば、ユーザ10の表情、感情など)を、履歴データ222に記憶する。
【0048】
行動制御部250は、行動決定部236が決定した行動に基づいて、制御対象252を制御する。例えば、行動制御部250は、行動決定部236が発話することを含む行動を決定した場合に、制御対象252に含まれるスピーカから音声を出力させる。このとき、行動制御部250は、ロボット100の感情値に基づいて、音声の発声速度を決定してもよい。例えば、行動制御部250は、ロボット100の感情値が大きいほど、速い発声速度を決定する。このように、行動制御部250は、感情決定部232が決定した感情値に基づいて、行動決定部236が決定した行動の実行形態を決定する。
【0049】
行動制御部250は、行動決定部236が決定した行動を実行したことに対するユーザ10の感情の変化を認識してもよい。例えば、ユーザ10の音声や表情に基づいて感情の変化を認識してよい。その他、センサ部200に含まれるタッチセンサで衝撃が検出されたことに基づいて、ユーザ10の感情の変化を認識してよい。センサ部200に含まれるタッチセンサで衝撃が検出された場合に、ユーザ10の感情が悪くなったと認識したり、センサ部200に含まれるタッチセンサの検出結果から、ユーザ10の反応が笑っている、あるいは、喜んでいる等と判断される場合には、ユーザ10の感情が良くなったと認識したりしてもよい。ユーザ10の反応を示す情報は、通信処理部280に出力される。
【0050】
また、行動制御部250は、行動決定部236が決定した行動をロボット100の感情に応じて決定した実行形態で実行した後、感情決定部232は、当該行動が実行されたことに対するユーザの反応に基づいて、ロボット100の感情値を更に変化させる。具体的には、感情決定部232は、行動決定部236が決定した行動を行動制御部250が決定した実行形態でユーザに対して行ったことに対するユーザの反応が不良でなかった場合に、ロボット100の「喜」の感情値を増大させるまた、感情決定部232は、行動決定部236が決定した行動を行動制御部250が決定した実行形態でユーザに対して行ったことに対するユーザの反応が不良であった場合に、ロボット100の「哀」の感情値を増大させる。
【0051】
更に、行動制御部250は、決定したロボット100の感情値に基づいて、ロボット100の感情を表現する。例えば、行動制御部250は、ロボット100の「喜」の感情値を増加させた場合、制御対象252を制御して、ロボット100に喜んだ仕草を行わせる。また、行動制御部250は、ロボット100の「哀」の感情値を増加させた場合、ロボット100の姿勢がうなだれた姿勢になるように、制御対象252を制御する。
【0052】
通信処理部280は、サーバ300との通信を担う。上述したように、通信処理部280は、ユーザ反応情報をサーバ300に送信する。また、通信処理部280は、更新された反応ルールをサーバ300から受信する。通信処理部280がサーバ300から、更新された反応ルールを受信すると、反応ルール221を更新する。
【0053】
サーバ300は、ロボット100、ロボット101及びロボット102とサーバ300との間の通信を行い、ロボット100から送信されたユーザ反応情報を受信し、ポジティブな反応が得られた行動を含む反応ルールに基づいて、反応ルールを更新する。
【0054】
図3は、ロボット100において行動を決定する動作に関する動作フローの一例を概略的に示す。
図3に示す動作フローは、繰り返し実行される。このとき、センサモジュール部210で解析された情報が入力されているものとする。なお、動作フロー中の「S」は、実行されるステップを表す。
【0055】
まず、ステップS100において、ユーザ状態認識部230は、センサモジュール部210で解析された情報に基づいて、ユーザ10の状態を認識する。
【0056】
ステップS102において、感情決定部232は、センサモジュール部210で解析された情報、及びユーザ状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の感情を示す感情値を決定する。
【0057】
ステップS103において、感情決定部232は、センサモジュール部210で解析された情報、及びユーザ状態認識部230によって認識されたユーザ10の状態に基づいて、ロボット100の感情を示す感情値を決定する。感情決定部232は、決定したユーザ10の感情値を履歴データ222に追加する。
【0058】
ステップS104において、行動認識部234は、センサモジュール部210で解析された情報及びユーザ状態認識部230によって認識されたユーザ10の状態に基づいて、ユーザ10の行動分類を認識する。
【0059】
ステップS106において、行動決定部236は、ステップS102で決定されたユーザ10の現在の感情値及び履歴データ222に含まれる過去の感情値の組み合わせと、ロボット100の感情値と、行動認識部234によって認識されたユーザ10の行動と、反応ルール221とに基づいて、ロボット100の行動を決定する。
【0060】
ステップS108において、行動制御部250は、行動決定部236により決定された行動に基づいて、制御対象252を制御する。
【0061】
ステップS110において、記憶制御部238は、行動決定部236によって決定された行動に対して予め定められた行動の強度と、感情決定部232により決定されたロボット100の感情値とに基づいて、強度の総合値を算出する。
【0062】
ステップS112において、記憶制御部238は、強度の総合値が閾値以上であるか否かを判定する。強度の総合値が閾値未満である場合には、ユーザ10の行動を含むデータを履歴データ222に記憶せずに、当該処理を終了する。一方、強度の総合値が閾値以上である場合には、ステップS114へ移行する。
【0063】
ステップS114において、行動決定部236によって決定された行動と、現時点から一定期間前までの、センサモジュール部210で解析された情報、及びユーザ状態認識部230によって認識されたユーザ10の状態と、を、履歴データ222に記憶する。
【0064】
以上説明したように、ロボット100によれば、ユーザ状態に基づいて、ロボット100の感情を示す感情値を決定し、ロボット100の感情値に基づいて、ユーザ10の行動を含むデータを履歴データ222に記憶するか否かを決定する。これにより、ユーザ10の行動を含むデータを記憶する履歴データ222の容量を抑制することができる。そして例えば、10年後にユーザ状態が10年前と同じ状態であるとロボット100が判断したときに、10年前の履歴データ222を読み込むことにより、ロボット100は10年前当時のユーザ10の状態(例えばユーザー10の表情、感情など)、更にはその場の音声、画像、匂い等のデータなどのあらゆる周辺情報を、ユーザ10に提示することができる。
【0065】
また、ロボット100によれば、ユーザ10の行動に対して適切な行動をロボット100に実行させることができる。従来は、ユーザの行動を分類し、ロボットの表情や恰好を含む行動を決めていた。これに対し、ロボット100は、ユーザ10の現在の感情値を決定し、過去の感情値及び現在の感情値に基づいてユーザ10に対して行動を実行する。従って、例えば、昨日は元気であったユーザ10が今日は落ち込んでいた場合に、ロボット100は「昨日は元気だったのに今日はどうしたの?」というような発話を行うことができる。また、ロボット100は、ジェスチャーを交えて発話を行うこともできる。また、例えば、昨日は落ち込んでいたユーザ10が今日は元気である場合に、ロボット100は、「昨日は落ち込んでいたのに今日は元気そうだね?」というような発話を行うことができる。また、例えば、昨日は元気であったユーザ10が今日は昨日よりも元気である場合、ロボット100は「今日は昨日よりも元気だね。昨日よりも良いことがあった?」というような発話を行うことができる。また、例えば、ロボット100は、感情値が0以上であり、かつ感情値の変動幅が一定の範囲内である状態が継続しているユーザ10に対しては、「最近、気分が安定していて良い感じだね。」というような発話を行うことができる。
【0066】
また、例えば、ロボット100は、ユーザ10に対し、「昨日言っていた宿題はできた?」と質問し、ユーザ10から「できたよ」という回答が得られた場合、「偉いね!」等の肯定的な発話をするとともに、拍手又はサムズアップ等の肯定的なジェスチャーを行うことができる。また、例えば、ロボット100は、ユーザ10が「一昨日話したプレゼンテーションがうまくいったよ」という発話をすると、「頑張ったね!」等の肯定的な発話をするとともに、上記の肯定的なジェスチャーを行うこともできる。このように、ロボット100がユーザ10の状態の履歴に基づいた行動を行うことによって、ユーザ10がロボット100に対して親近感を覚えることが期待できる。
【0067】
上記実施形態では、ロボット100は、ユーザ10の顔画像を用いてユーザ10を認識する場合について説明したが、開示の技術はこの態様に限定されない。例えば、ロボット100は、ユーザ10が発する音声、ユーザ10のメールアドレス、ユーザ10のSNSのID又はユーザ10が所持する無線ICタグが内蔵されたIDカード等を用いてユーザ10を認識してもよい。
【0068】
なお、ロボット100は、行動制御システムを備える電子機器の一例である。行動制御システムの適用対象は、ロボット100に限られず、様々な電子機器に行動制御システムを適用できる。また、サーバ300の機能は、1以上のコンピュータによって実装されてよい。サーバ300の少なくとも一部の機能は、仮想マシンによって実装されてよい。また、サーバ300の機能の少なくとも一部は、クラウドで実装されてよい。
【0069】
図4は、ロボット100及びサーバ300として機能するコンピュータ1200のハードウェア構成の一例を概略的に示す。コンピュータ1200にインストールされたプログラムは、コンピュータ1200を、本実施形態に係る装置の1又は複数の「部」として機能させ、又はコンピュータ1200に、本実施形態に係る装置に関連付けられるオペレーション又は当該1又は複数の「部」を実行させることができ、及び/又はコンピュータ1200に、本実施形態に係るプロセス又は当該プロセスの段階を実行させることができる。そのようなプログラムは、コンピュータ1200に、本明細書に記載のフローチャート及びブロック図のブロックのうちのいくつか又はすべてに関連付けられた特定のオペレーションを実行させるべく、CPU1212によって実行されてよい。
【0070】
本実施形態によるコンピュータ1200は、CPU1212、RAM1214、及びグラフィックコントローラ1216を含み、それらはホストコントローラ1210によって相互に接続されている。コンピュータ1200はまた、通信インタフェース1222、記憶装置1224、DVDドライブ1226、及びICカードドライブのような入出力ユニットを含み、それらは入出力コントローラ1220を介してホストコントローラ1210に接続されている。DVDドライブ1226は、DVD-ROMドライブ及びDVD-RAMドライブ等であってよい。記憶装置1224は、ハードディスクドライブ及びソリッドステートドライブ等であってよい。コンピュータ1200はまた、ROM1230及びキーボードのようなレガシの入出力ユニットを含み、それらは入出力チップ1240を介して入出力コントローラ1220に接続されている。
【0071】
CPU1212は、ROM1230及びRAM1214内に格納されたプログラムに従い動作し、それにより各ユニットを制御する。グラフィックコントローラ1216は、RAM1214内に提供されるフレームバッファ等又はそれ自体の中に、CPU1212によって生成されるイメージデータを取得し、イメージデータがディスプレイデバイス1218上に表示されるようにする。
【0072】
通信インタフェース1222は、ネットワークを介して他の電子デバイスと通信する。記憶装置1224は、コンピュータ1200内のCPU1212によって使用されるプログラム及びデータを格納する。DVDドライブ1226は、プログラム又はデータをDVD-ROM1227等から読み取り、記憶装置1224に提供する。ICカードドライブは、プログラム及びデータをICカードから読み取り、及び/又はプログラム及びデータをICカードに書き込む。
【0073】
ROM1230はその中に、アクティブ化時にコンピュータ1200によって実行されるブートプログラム等、及び/又はコンピュータ1200のハードウェアに依存するプログラムを格納する。入出力チップ1240はまた、様々な入出力ユニットをUSBポート、パラレルポート、シリアルポート、キーボードポート、マウスポート等を介して、入出力コントローラ1220に接続してよい。
【0074】
プログラムは、DVD-ROM1227又はICカードのようなコンピュータ可読記憶媒体によって提供される。プログラムは、コンピュータ可読記憶媒体から読み取られ、コンピュータ可読記憶媒体の例でもある記憶装置1224、RAM1214、又はROM1230にインストールされ、CPU1212によって実行される。これらのプログラム内に記述される情報処理は、コンピュータ1200に読み取られ、プログラムと、上記様々なタイプのハードウェアリソースとの間の連携をもたらす。装置又は方法が、コンピュータ1200の使用に従い情報のオペレーション又は処理を実現することによって構成されてよい。
【0075】
例えば、通信がコンピュータ1200及び外部デバイス間で実行される場合、CPU1212は、RAM1214にロードされた通信プログラムを実行し、通信プログラムに記述された処理に基づいて、通信インタフェース1222に対し、通信処理を命令してよい。通信インタフェース1222は、CPU1212の制御の下、RAM1214、記憶装置1224、DVD-ROM1227、又はICカードのような記録媒体内に提供される送信バッファ領域に格納された送信データを読み取り、読み取られた送信データをネットワークに送信し、又はネットワークから受信した受信データを記録媒体上に提供される受信バッファ領域等に書き込む。
【0076】
また、CPU1212は、記憶装置1224、DVDドライブ1226(DVD-ROM1227)、ICカード等のような外部記録媒体に格納されたファイル又はデータベースの全部又は必要な部分がRAM1214に読み取られるようにし、RAM1214上のデータに対し様々なタイプの処理を実行してよい。CPU1212は次に、処理されたデータを外部記録媒体にライトバックしてよい。
【0077】
様々なタイプのプログラム、データ、テーブル、及びデータベースのような様々なタイプの情報が記録媒体に格納され、情報処理を受けてよい。CPU1212は、RAM1214から読み取られたデータに対し、本開示の随所に記載され、プログラムの命令シーケンスによって指定される様々なタイプのオペレーション、情報処理、条件判断、条件分岐、無条件分岐、情報の検索/置換等を含む、様々なタイプの処理を実行してよく、結果をRAM1214に対しライトバックする。また、CPU1212は、記録媒体内のファイル、データベース等における情報を検索してよい。例えば、各々が第2の属性の属性値に関連付けられた第1の属性の属性値を有する複数のエントリが記録媒体内に格納される場合、CPU1212は、当該複数のエントリの中から、第1の属性の属性値が指定されている条件に一致するエントリを検索し、当該エントリ内に格納された第2の属性の属性値を読み取り、それにより予め定められた条件を満たす第1の属性に関連付けられた第2の属性の属性値を取得してよい。
【0078】
上で説明したプログラム又はソフトウェアモジュールは、コンピュータ1200上又はコンピュータ1200近傍のコンピュータ可読記憶媒体に格納されてよい。また、専用通信ネットワーク又はインターネットに接続されたサーバシステム内に提供されるハードディスク又はRAMのような記録媒体が、コンピュータ可読記憶媒体として使用可能であり、それによりプログラムを、ネットワークを介してコンピュータ1200に提供する。
【0079】
本実施形態におけるフローチャート及びブロック図におけるブロックは、オペレーションが実行されるプロセスの段階又はオペレーションを実行する役割を持つ装置の「部」を表わしてよい。特定の段階及び「部」が、専用回路、コンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプログラマブル回路、及び/又はコンピュータ可読記憶媒体上に格納されるコンピュータ可読命令と共に供給されるプロセッサによって実装されてよい。専用回路は、デジタル及び/又はアナログハードウェア回路を含んでよく、集積回路(IC)及び/又はディスクリート回路を含んでよい。プログラマブル回路は、例えば、フィールドプログラマブルゲートアレイ(FPGA)、及びプログラマブルロジックアレイ(PLA)等のような、論理積、論理和、排他的論理和、否定論理積、否定論理和、及び他の論理演算、フリップフロップ、レジスタ、並びにメモリエレメントを含む、再構成可能なハードウェア回路を含んでよい。
【0080】
コンピュータ可読記憶媒体は、適切なデバイスによって実行される命令を格納可能な任意の有形なデバイスを含んでよく、その結果、そこに格納される命令を有するコンピュータ可読記憶媒体は、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を作成すべく実行され得る命令を含む、製品を備えることになる。コンピュータ可読記憶媒体の例としては、電子記憶媒体、磁気記憶媒体、光記憶媒体、電磁記憶媒体、半導体記憶媒体等が含まれてよい。コンピュータ可読記憶媒体のより具体的な例としては、フロッピー(登録商標)ディスク、ディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROM又はフラッシュメモリ)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、静的ランダムアクセスメモリ(SRAM)、コンパクトディスクリードオンリメモリ(CD-ROM)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク、メモリスティック、集積回路カード等が含まれてよい。
【0081】
コンピュータ可読命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、又はSmalltalk、JAVA(登録商標)、C++等のようなオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語のような従来の手続型プログラミング言語を含む、1又は複数のプログラミング言語の任意の組み合わせで記述されたソースコード又はオブジェクトコードのいずれかを含んでよい。
【0082】
コンピュータ可読命令は、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路が、フローチャート又はブロック図で指定されたオペレーションを実行するための手段を生成するために当該コンピュータ可読命令を実行すべく、ローカルに又はローカルエリアネットワーク(LAN)、インターネット等のようなワイドエリアネットワーク(WAN)を介して、汎用コンピュータ、特殊目的のコンピュータ、若しくは他のプログラム可能なデータ処理装置のプロセッサ、又はプログラマブル回路に提供されてよい。プロセッサの例としては、コンピュータプロセッサ、処理ユニット、マイクロプロセッサ、デジタル信号プロセッサ、コントローラ、マイクロコントローラ等を含む。
【0083】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。上記実施の形態に、多様な変更又は改良を加えることが可能であることが当業者に明らかである。その様な変更又は改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
【0084】
特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階などの各処理の実行順序は、特段「より前に」、「先立って」などと明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り、任意の順序で実現しうることに留意すべきである。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」などを用いて説明したとしても、この順で実施することが必須であることを意味するものではない。
【0085】
感情決定部232は、特定のマッピングに従い、ユーザの感情を決定してよい。具体的には、感情決定部232は、特定のマッピングである感情マップ(
図5参照)に従い、ユーザの感情を決定してよい。
【0086】
図5は、複数の感情がマッピングされる感情マップ300を示す図である。感情マップ300において、感情は、中心から放射状に同心円に配置されている。同心円の中心に近いほど、原始的状態の感情が配置されている。同心円のより外側には、心境から生まれる状態や行動を表す感情が配置されている。感情とは、情動や心的状態も含む概念である。同心円の左側には、概して脳内で起きる反応から生成される感情が配置されている。同心円の右側には概して、状況判断で誘導される感情が配置されている。同心円の上方向及び下方向には、概して脳内で起きる反応から生成され、かつ、状況判断で誘導される感情が配置されている。また、同心円の上側には、「快」の感情が配置され、下側には、「不快」の感情が配置されている。このように、感情マップ300では、感情が生まれる構造に基づいて複数の感情がマッピングされており、同時に生じやすい感情が、近くにマッピングされている。
【0087】
(1)例えばロボット100の感情決定部232である感情エンジンが、100msec程度で感情を検知している場合、ロボット100の反応動作(例えば相槌)の決定は、頻度が少なくとも、感情エンジンの検知頻度(100msec)と同様のタイミングに設定してよく、これよりも早いタイミングに設定してもよい。感情エンジンの検知頻度はサンプリングレートと解釈してよい。
【0088】
100msec程度で感情を検知し、即時に連動して反応動作(例えば相槌)を行うことで、不自然な相槌ではなくなり、自然な空気を読んだ対話を実現できる。ロボット100感情マップ300の曼荼羅の方向性とその度合い(強さ)に応じて、反応動作(相槌など)を行う。なお、感情エンジンの検知頻度(サンプリングレート)は、100msに限定されず、シチュエーション(スポーツをしている場合など)、ユーザの年齢などに応じて、変更してもよい。
【0089】
(2)感情マップ300と照らし合わせ、感情の方向性とその度合いの強さを予め設定しておき、相槌の動き及び相槌の強弱を設定してよい。例えば、ロボット100が安定感、安心などを感じている場合、ロボット100は、頷いて話を聞き続ける。ロボット100が不安、迷い、怪しい感じを覚えている場合、ロボット100は、首をかしげてもよく、首振りを止めてもよい。
【0090】
これらの感情は、感情マップ300の3時の方向に分布しており、普段は安心と不安のあたりを行き来する。感情マップ300の右半分では、内部的な感覚よりも状況認識の方が優位に立つため、落ち着いた印象になる。
【0091】
(3)ロボット100が褒められて快感を覚えた場合、「あー」というフィラーが台詞の前に入り、きつい言葉をもらって痛感を覚えた場合、「うっ!」というフィラーが台詞の前に入ってよい。また、ロボット100が「うっ!」と言いつつうずくまる仕草などの身体的な反応を含めてよい。これらの感情は、感情マップ300の9時あたりに分布している。
【0092】
(4)感情マップ300の左半分では、状況認識よりも内部的な感覚(反応)の方が優位に立つ。よって、思わず反応してしまった印象を与え得る。
【0093】
ロボット100が納得感という内部的な感覚(反応)を覚えながら状況認識においても好感を覚える場合、ロボット100は、相手を見ながら深く頷いてよく、また「うんうん」と発してよい。このように、ロボット100は、相手へのバランスのとれた好感、すなわち、相手への許容や寛容といった行動を生成してよい。このような感情は、感情マップ300の12時あたりに分布している。
【0094】
逆に、ロボット100が不快感という内部的な感覚(反応)を覚えながら状況認識においても、ロボット100は、嫌悪を覚えるときには首を横に振る、憎しみを覚えるくらいになると、目のLEDを赤くして相手を睨んでもよい。このような感情は、感情マップ300の6時あたりに分布している。
【0095】
(5)感情マップ300の内側は心の中、感情マップ300の外側は行動を表すため、感情マップ300の外側に行くほど、感情が目に見える(行動に表れる)ようになる。
【0096】
(6)感情マップ300の3時付近に分布する安心を覚えながら、人の話を聞く場合、ロボット100は、軽く首を縦に振って「ふんふん」と発する程度であるが、12時付近の愛の方になると、首を深く縦に振るような力強い頷きをしてよい。
【0097】
感情決定部232は、センサモジュール部210で解析された情報、及び認識されたユーザ10の状態を、予め学習されたニューラルネットワークに入力し、感情マップ300に示す各感情を示す感情値を取得し、ユーザ10の感情を決定する。このニューラルネットワークは、センサモジュール部210で解析された情報、及び認識されたユーザ10の状態と、感情マップ300に示す各感情を示す感情値との組み合わせである複数の学習データに基づいて予め学習されたものである。また、このニューラルネットワークは、
図6に示す感情マップ900のように、近くに配置されている感情同士は、近い値を持つように学習される。
図6では、「安心」、「安穏」、「心強い」という複数の感情が、近い感情値となる例を示している。
【0098】
また、感情決定部232は、特定のマッピングに従い、ロボット100の感情を決定してよい。具体的には、感情決定部232は、センサモジュール部210で解析された情報、ユーザ状態認識部230によって認識されたユーザ10の状態、及びロボット100の状態を、予め学習されたニューラルネットワークに入力し、感情マップ300に示す各感情を示す感情値を取得し、ロボット100の感情を決定する。このニューラルネットワークは、センサモジュール部210で解析された情報、認識されたユーザ10の状態、及びロボット100の状態と、感情マップ300に示す各感情を示す感情値との組み合わせである複数の学習データに基づいて予め学習されたものである。例えば、タッチセンサ(図示省略)の出力から、ロボット100がユーザ10になでられていると認識される場合に、「嬉しい」の感情値「3」となることを表す学習データや、加速度センサ(図示省略)の出力から、ロボット100がユーザ10に叩かれていると認識される場合に、「怒」の感情値「3」となることを表す学習データに基づいて、ニューラルネットワークが学習される。また、このニューラルネットワークは、
図6に示す感情マップ900のように、近くに配置されている感情同士は、近い値を持つように学習される。
【0099】
行動決定部236は、ユーザの行動と、ユーザの感情、ロボットの感情とを表すテキストに、ユーザの行動に対応するロボットの行動内容を質問するための固定文を追加して、対話機能に入力することにより、ロボットの行動内容を生成する。
【0100】
例えば、行動決定部236は、感情決定部232によって決定されたロボット100の感情から、表1に示すような感情テーブルを用いて、ロボット100の状態を表すテキストを取得する。ここで、感情テーブルには、感情の種類毎に、各感情値に対してインデックス番号が付与されており、インデックス番号毎に、ロボット100の状態を表すテキストが格納されている。
【0101】
感情決定部232によって決定されたロボット100の感情が、インデックス番号「2」に対応する場合、「とても楽しい状態」というテキストが得られる。なお、ロボット100の感情が、複数のインデックス番号に対応する場合、ロボット100の状態を表すテキストが複数得られる。
【0102】
また、ユーザ10の感情に対しても、表2に示すような感情テーブルを用意しておく。
ここで、ユーザの行動が、「***」と話しかけるであり、ロボット100の感情が、インデックス番号「2」であり、ユーザ10の感情が、インデックス番号「3」である場合には、
「ロボットはとても楽しい状態です。ユーザは普通に楽しい状態です。ユーザに「***」と話しかけられました。ロボットとして、どのように返事をしますか?」
と文章生成モデルに入力し、ロボットの行動内容を取得する。行動決定部236は、この行動内容から、ロボットの行動を決定する。
【0103】
【0104】
【0105】
このように、ロボット100は、ロボットの感情に応じたインデックス番号に応じて、ロボットの行動を変えることができるため、ユーザは、ロボットに心があるような印象を持ち、ロボットに対して話しかけるなどの行動をとることが促進される。
【0106】
また、行動決定部236は、ユーザの行動と、ユーザの感情、ロボットの感情とを表すテキストだけでなく、履歴データ222の内容を表すテキストも追加した上で、ユーザの行動に対応するロボットの行動内容を質問するための固定文を追加して、対話機能を有する文章生成モデルに入力することにより、ロボットの行動内容を生成するようにしてもよい。これにより、ロボット100は、ユーザの感情や行動を表す履歴データに応じて、ロボットの行動を変えることができるため、ユーザは、ロボットに個性があるような印象を持ち、ロボットに対して話しかけるなどの行動をとることが促進される。また、履歴データに、ロボットの感情や行動を更に含めるようにしてもよい。
【0107】
なお、ロボット100を、ぬいぐるみに搭載してもよいし、ぬいぐるみに搭載された制御対象機器(スピーカやカメラ)に無線又は有線で接続された制御装置に適用してもよい。
【0108】
以上の説明では、行動制御システムをロボット100に適用する場合を例示したが、本発明は、この態様に限定されない。
図7は、行動制御システムの機能の一部又は全部を利用して構成されるエージェントシステム50の機能ブロック図である。エージェントシステム50は、ユーザ60との間で行われる対話を通じてユーザ60の意図に沿った一連の行動を行うコンピュータシステムである。ユーザ60との対話は、音声又はテキストによって行うことが可能である。
【0109】
エージェントシステム50は、例えば、ロボット、人形、ぬいぐるみ、ペンダント、スマートウォッチ、スマートフォン、スマートスピーカ、イヤホン及びパーナルコンピュータなどに搭載され得る。また、エージェントシステム50は、ウェブサーバに実装され、ユーザが所持するスマートフォン等の通信端末上で動作するウェブブラウザを介して利用されてもよい。
【0110】
エージェントシステム50は、例えばユーザ60のために行動するバトラー、秘書、教師、パートナー、友人、恋人又は教師としての役割を担う。エージェントシステム50は、ユーザ60と対話するだけでなく、アドバイスの提供、目的地までの案内又はユーザの好みに応じたリコメンド等を行う。また、エージェントシステム50はサービスプロバイダ70に対して予約、注文又は代金の支払い等を行う。
【0111】
エージェントシステム50は、感情エンジン53を備えることで、ユーザ60の感情及びエージェント自身の感情を決定し、ユーザ60及びエージェントの感情も加味しつつユーザ60のために行動する。すなわち、エージェントシステム50は、ユーザ60の感情を理解し、空気を読んで心からのサポート、アシスト、アドバイス及びサービス提供を実現する。また、エージェントシステム50は、ユーザ60の悩み相談にものり、ユーザを慰め、励まし、元気づける。また、エージェントシステム50は、ユーザ60と遊び、絵日記を描き、昔を思い出させてくれる。エージェントシステム50は、ユーザ60の幸福感が増すような行動を行う。
【0112】
エージェントシステム50は、対話処理部51、キャラクタ設定部52、感情エンジン53、対話履歴格納部54、文章生成モデル55、コマンド取得部56及びRPA(Robotic Process Automation)57を有する。
【0113】
対話処理部51は、発話に関する処理を行う行動決定部236及び行動制御部250を含んで構成されるものである。対話処理部51は、ユーザ60と対話するためのエージェントの発話内容を生成し、これを音声及びテキストの少なくとも一方によって出力する。
【0114】
キャラクタ設定部52は、ユーザ60からの指定に基づいて、エージェントシステム50がユーザ60と対話を行う際のエージェントのキャラクタを設定する。すなわち、対話処理部51から出力される発話内容は、設定されたキャラクタを有するエージェントを通じて出力される。キャラクタとして、例えば、俳優、芸能人、アイドル、スポーツ選手等の実在の著名人又は有名人を設定することが可能である。また、漫画、映画又はアニメーションに登場する架空のキャラクタを設定することも可能である。例えば、映画「ローマの休日」の登場する「オードリー・ヘップバーン」が演じる「アン王女」をエージェントのキャラクタとして設定することが可能である。エージェントのキャラクタが既知のものである場合には、当該キャラクタの声、言葉遣い、口調及び性格は、既知であるため、ユーザ60が自分の好みのキャラクタを指定するのみで、キャラクタ設定部52におけるプロンプト設定が自動で行われる。設定されたキャラクタの声、言葉遣い、口調及び性格が、ユーザ60との対話において反映される。すなわち、対話処理部51は、キャラクタ設定部52によって設定されたキャラクタに応じた音声を合成し、合成した音声によってエージェントの発話内容を出力する。これにより、ユーザ60は、自分の好みのキャラクタ(例えば好きな俳優)本人と対話しているような感覚を持つことができる。
【0115】
エージェントシステム50が例えばスマートフォン等のディスプレイを有するデバイスに搭載される場合、キャラクタ設定部52によって設定されたキャラクタを有するエージェントのアイコン、静止画又は動画がディスプレイに表示されてもよい。エージェントの画像は、例えば、3Dレンダリング等の画像合成技術を用いて生成される。エージェントシステム50において、エージェントの画像が、ユーザ60の感情、エージェントの感情及びエージェントの発話内容に応じたジェスチャーを行いながらユーザ60との対話が行われてもよい。なお、エージェントシステム50は、ユーザ60との対話に際し、画像は出力せずに音声のみを出力してもよい。
【0116】
感情エンジン53は、感情決定部232を含んで構成されるものであり、ユーザ60の感情を示す感情値及びエージェント自身の感情値を決定する。エージェント自身の感情値は、設定されたキャラクタの感情に反映される。エージェントシステム50が、ユーザ60と対話する際、ユーザ60の感情のみならず、キャラクタの感情が対話に反映される。すなわち、対話処理部51は、感情エンジン53によって決定された感情に応じた態様で発話内容を出力する。
【0117】
また、エージェントシステム50が、ユーザ60に向けた行動を行う場合においてもエージェントの感情が反映される。例えば、ユーザ60がエージェントシステム50に写真撮影を依頼した場合において、エージェントシステム50がユーザの依頼に応じて写真撮影を行うか否かは、エージェントが抱いている「悲」の感情の度合いに応じて決まる。エージェントは、ポジティブな感情を抱いている場合には、ユーザ60に対して好意的な対話又は行動を行い、ネガティブな感情を抱いている場合には、ユーザ60に対して反抗的な対話又は行動を行う。
【0118】
対話履歴格納部54は、ユーザ60とエージェントシステム50との間で行われた対話の履歴を保存しておくための記憶媒体である。対話履歴格納部54は、格納部220の履歴データ222によって実現されてもよいし、外部のクラウドストレージによって実現されてもよい。エージェントシステム50は、ユーザ60と対話する場合又はユーザ60に向けた行動を行う場合、対話履歴格納部54に格納された対話履歴の内容を加味して対話内容又は行動内容を決定する。例えば、エージェントシステム50は、対話履歴格納部54に格納された対話履歴に基づいてユーザ60の趣味及び嗜好を把握する。エージェントシステム50は、ユーザ60の趣味及び嗜好に合った対話内容を生成したり、リコメンドを提供したりする。対話処理部51は、対話履歴格納部54に格納された対話履歴に基づいて発話内容を生成する。対話履歴格納部54には、ユーザ60との対話を通じて取得したユーザ60の氏名、住所、電話番号、クレジットカード番号等の個人情報が格納される。
【0119】
文章生成モデル55は、入力されたテキスト又は音声に対する応答である文章を生成する。文章生成モデル55は、文字による自動対話処理のためのアルゴリズム及び演算と解釈してよい。文章生成モデルは、例えば特開2018-081444号公報やchatGPT(インターネット検索<URL: https://openai.com/blog/chatgpt>)に開示される通り公知であるため、その詳細な説明を省略する。このような、文章生成モデルは、大規模言語モデル(LLM:Large Language Model)により構成されている。
【0120】
対話処理部51は、文章生成モデル55によって生成された文章に基づいて発話内容を生成する。具体的には、対話処理部51は、ユーザ60により入力されたテキストまたは音声、感情エンジン53によって特定されたユーザ60及びエージェントの双方の感情及び対話履歴格納部54に格納された会話の履歴を文章生成モデル55に入力して、エージェントの発話内容を生成する。このとき、対話処理部51は、更に、キャラクタ設定部52によって設定されたキャラクタの性格を、文章生成モデル55に入力して、エージェントの発話内容を生成してもよい。エージェントシステム50において、文章生成モデル55は、ユーザ60とのタッチポイントとなるフロントエンド側に位置するものではなく、あくまでエージェントシステム50の道具として利用される。
【0121】
コマンド取得部56は、発話理解部212によって構成されるものであり、ユーザ60との対話を通じてユーザ60から発せられる音声又はテキストから、エージェントのコマンドを取得する。コマンドは、例えば、情報検索、店の予約、チケットの手配、商品・サービスの購入、代金の支払い、目的地までのルート案内、リコメンドの提供等のエージェントシステム50が実行すべき行動の内容を含む。
【0122】
RPA57は、コマンド取得部56によって取得されたコマンドに応じた行動を行う。RPA57は、例えば、情報検索、店の予約、チケットの手配、商品・サービスの購入、代金の支払い等のサービスプロバイダ70の利用に関する行動を行う。RPA57は、本発明における「動作実行部」の一例である。
【0123】
RPA57は、サービスプロバイダ70の利用に関する行動を実行するために必要なユーザ60の個人情報を、対話履歴格納部54から読み出して利用する。例えば、エージェントシステム50は、ユーザ60からの依頼に応じて商品の購入を行う場合、対話履歴格納部54に格納されているユーザ60の氏名、住所、電話番号、クレジットカード番号等の個人情報を読み出して利用する。初期設定においてユーザ60に個人情報の入力を要求することは不親切であり、ユーザにとっても不快である。本実施形態に係るエージェントシステム50においては、初期設定においてユーザ60に個人情報の入力を要求するのではなく、ユーザ60との対話を通じて取得した個人情報を記憶しておき、必要に応じて読み出して利用する。これにより、ユーザに不快な思いをさせることを回避でき、ユーザの利便性が向上する。
【0124】
エージェントシステム50は、以下のステップ1~ステップ5により、対話処理を実行する。
(ステップ1)エージェントシステム50は、エージェントのキャラクタを設定する。具体的には、キャラクタ設定部52は、ユーザ60からの指定に基づいて、エージェントシステム50がユーザ60と対話を行う際のエージェントのキャラクタを設定する。
【0125】
(ステップ2)エージェントシステム50は、ユーザ10から入力された音声又はテキストを含むユーザ10の状態、ユーザ10の感情値、ロボット100の感情値、履歴データ222を取得する。具体的には、上記ステップS100~S103と同様の処理を行い、ユーザ10から入力された音声又はテキストを含むユーザ10の状態、ユーザ10の感情値、ロボット100の感情値、及び履歴データ222を取得する。
【0126】
(ステップ3)エージェントシステム50は、エージェントの発話内容を決定する。具体的には、対話処理部51は、ユーザ60により入力されたテキストまたは音声、感情エンジン53によって特定されたユーザ60及びキャラクタの双方の感情及び対話履歴格納部54に格納された会話の履歴を、文章生成モデル55に入力して、エージェントの発話内容を生成する。
例えば、ユーザ60により入力されたテキストまたは音声、感情エンジン53によって特定されたユーザ60及びキャラクタの双方の感情及び対話履歴格納部54に格納された会話の履歴を表すテキストに、「このとき、エージェントとして、どのように返事をしますか?」という固定文を追加して、文章生成モデル55に入力し、エージェントの発話内容を取得する。
一例として、ユーザ60に入力されたテキスト又は音声が「今夜7時に、近くの美味しいチャイニーズレストランを予約してほしい」である場合、エージェントの発話内容として、「かしこまりました。」、「こちらがおすすめのレストランです。1.AAAA。2.BBBB。3.CCCC。4.DDDD」が取得される。
また、ユーザ60に入力されたテキスト又は音声が「4番目のDDDDがいい」である場合、エージェントの発話内容として、「かしこまりました。予約してみます。何名の席です。」が取得される。
【0127】
(ステップ4)エージェントシステム50は、エージェントの発話内容を出力する。具体的には、対話処理部51は、キャラクタ設定部52によって設定されたキャラクタに応じた音声を合成し、合成した音声によってエージェントの発話内容を出力する。
【0128】
(ステップ5)エージェントシステム50は、エージェントのコマンドを実行するタイミングであるか否かを判定する。具体的には、対話処理部51は、文章生成モデル55の出力に基づいて、エージェントのコマンドを実行するタイミングであるか否かを判定する。例えば、文章生成モデルの出力に、エージェントがコマンドを実行する旨が含まれている場合には、エージェントのコマンドを実行するタイミングであると判定し、ステップ5へ移行する。一方、エージェントのコマンドを実行するタイミングでないと判定された場合には、上記ステップ2へ戻る。
【0129】
(ステップ6)エージェントシステム50は、エージェントのコマンドを実行する。具体的には、コマンド取得部56は、ユーザ60との対話を通じてユーザ60から発せられる音声又はテキストから、エージェントのコマンドを取得する。そして、RPA57は、コマンド取得部56によって取得されたコマンドに応じた行動を行う。例えば、コマンドが「情報検索」である場合、ユーザ60との対話を通じて得られた検索クエリ、及びAPI(Application Programming Interface)を用いて、検索サイトにより、情報検索を行う。対話処理部51は、検索結果を、文章生成モデル55に入力して、エージェントの発話内容を生成する。対話処理部51は、キャラクタ設定部52によって設定されたキャラクタに応じた音声を合成し、合成した音声によってエージェントの発話内容を出力する。
また、コマンドが「店の予約」である場合、ユーザ60との対話を通じて得られた予約情報、予約先の店情報、及びAPI(Application Programming Interface)を用いて、電話ソフトウエアにより、予約先の店へ電話をかけて、予約を行う。このとき、対話処理部51は、対話機能を有する文章生成モデルを用いて、相手から入力された音声に対するエージェントの発話内容を取得する。そして、対話処理部51は、店の予約の結果(予約の正否)を、文章生成モデル55に入力して、エージェントの発話内容を生成する。対話処理部51は、キャラクタ設定部52によって設定されたキャラクタに応じた音声を合成し、合成した音声によってエージェントの発話内容を出力する。そして、上記ステップ2へ戻る。
【0130】
このように、エージェントシステム50は、対話処理を実行し、必要に応じて、サービスプロバイダ70の利用に関する行動を行うことができる。なお、ユーザが寝ている間に、エージェントシステム50は、事前に取得したユーザの好みに基づいて、ユーザが関心の高いニュースなどを検索しておき、ユーザが起きた時に、エージェントシステム50は、自分からそのニュースを伝えるようにしてもよい。例えば、エージェントから、「昨日、ヤンキースが試合に勝ったみたいだよ。今晩、野球場に応援しに行こうよ。」と発話する。そして、ユーザが「お父さんに相談しなくちゃ」と発話すると、お父さんは「チケットが取れるかどうか分からない」と発話する。そして、エージェントから、「チケットが取れるかどうか確認します」と発話し、ユーザとの対話から、シートのリクエストなどをヒアリングし、チケットを確保する。
【0131】
図8及び
図9は、エージェントシステム50の動作の一例を示す図である。
図8には、エージェントシステム50が、ユーザ60との対話を通じてレストランの予約を行う態様が例示されている。エージェントシステム50は、ユーザ60との対話履歴に基づいてユーザ60の好みを把握し、ユーザ60の好みに合ったレストランのリコメンドリストを提供し、選択されたレストランの予約を実行することができる。
【0132】
一方、
図9には、エージェントシステム50が、ユーザ60との対話を通じて通信販売サイトにアクセスして商品の購入を行う態様が例示されている。エージェントシステム50は、ユーザ60との対話履歴に基づいて、ユーザがストックしている飲料の残量を推測し、ユーザ60に当該飲料の購入を提案し、実行することができる。また、エージェントシステム50は、ユーザ60との過去の対話履歴に基づいて、ユーザの好みを把握し、ユーザが好むスナックをリコメンドすることができる。
【0133】
(第2実施形態)
第2実施形態は、エージェントシステム50が、ユーザ60を模したエージェントを新たに作成することを特徴としている。
以下、第1実施形態との相違点について説明する。なお、同一の構成には同一の符号を付すこととし、詳細な説明については省略する。
【0134】
図10に示すように、エージェントシステム50は、ユーザ模倣部58を更に有する。
【0135】
ユーザ模倣部58は、ユーザ60を模倣し、ユーザ60の特徴を反映したエージェントを作成する。具体的には、ユーザ模倣部58は、対話履歴格納部54から、ユーザ60の対話履歴、行動履歴、及びユーザ60の属性情報を入力データとして取得して、ユーザ60の特徴を反映したエージェントを作成する。また、ユーザ模倣部58は、感情決定部232で決定されたユーザ60の感情のデータを用いて、ユーザ60を模したエージェントを作成する。なお、対話履歴格納部54は、格納部220の履歴データ222によって実現されてもよいし、外部のクラウドストレージによって実現されてもよい。また、格納部220の履歴データ222は、ユーザ60の過去の感情値及び行動の履歴を含む。
【0136】
キャラクタ設定部52は、作成されたエージェントのデータを取り込むことで、ユーザ60というキャラクタを新たに設定可能とする。ユーザ60は、キャラクタ設定で複数種類から1のエージェントを選択できる。
【0137】
したがって、ユーザ60の分身のような存在であるエージェントが作成される。以下、ユーザ60を模倣して作成された模擬エージェントのことを「エージェントU」といい、それ以外のエージェントのことを「エージェントA」という。
【0138】
作成されたエージェントUは、エージェントAと対話を繰り返すことができる。
具体的には、ユーザ60がエージェントAに質問をしたあと、エージェントUが補助をするようにエージェントAに質問をする。
【0139】
より具体的には、
図11を用いて説明する。
図11は、ユーザ60とエージェントAとエージェントUの対話のやり取りを時系列に沿って示した図である。左上部が開始点である。なお、
図11の破線の矢印の対話内容、すなわちエージェントAとエージェントUの対話内容は、ユーザ60から確認できない。なお、対話の内容は一例であって、これに限定されない。
【0140】
図11について、時系列に沿って説明する。まず、ユーザ60がエージェントAに「今日の天気は?」と質問をすると、エージェントAが「雨です」と回答する。さらに、エージェントAは、「次に必要な情報は何ですか?」という質問をエージェントUに質問する。エージェントUは先回りして次に必要な情報のカテゴリを提示し、その情報についてエージェントAに質問する。例えば、エージェントUが「(次に必要な情報は)電車の遅延情報です」と回答をし、さらに、エージェントUが「電車の遅延情報は?」とエージェントAに質問をする。それに対してエージェントAは「〇〇線に10分の遅延があります」とユーザ60に向けて回答する。このように、ユーザ60が今日の天気を質問するだけで、天気情報だけでなく、電車の遅延情報までもユーザ60は入手できる。
【0141】
ここで、エージェントUとエージェントAの対話はユーザ60が認識することのない裏側の処理として行われる。つまり、ユーザ60には見えず、ユーザ60の確認を不要とする。エージェントUは、ユーザ60に代わって、エージェントAに質問等をする。
これにより、ユーザ60は、エージェントAがユーザ60の気持ちを汲み取って回答していると感じる効果がある。換言すると、エージェントUはユーザ60から確認できないところでも機能することができ、エージェントUが先回りして情報を探索することで、エージェントAが気を利かせているように見せかけることができる。
したがって、ユーザ60は、エージェントAに最初の問いかけをするだけで、エージェントUがユーザ60の代わりに、エージェントAに質問を続けるため、ユーザ60は待っているだけで欲しい情報を取得できる。
【0142】
このように、ユーザ60のエージェントAに対する対話をトリガーとして、エージェントUが補助するようにエージェントAと対話をする。
また、トリガーはユーザ60の対話でなくてもよい。ユーザ60の状態をエージェントUが取得して、エージェントUがエージェントAとの対話を開始してもよい。ユーザ60の状態は、ユーザ状態認識部230が認識する。例えば、ユーザ60が1人で暇そうである状態を、ユーザ状態認識部230は認識できる。エージェントUは、ユーザ状態認識部230で認識された結果を取得する。
【0143】
図12は、ユーザ60の状態をエージェントUが取得して、エージェントUとエージェントAが対話をする例を示した図である。右上部が開始点である。なお、
図12の破線の矢印の対話内容、すなわちエージェントAとエージェントUの対話内容は、ユーザ60から確認できない。なお、対話の内容は一例であって、これに限定されない。
【0144】
図12について、時系列に沿って説明する。まず、エージェントUは、ユーザ60の状態を取得し、ユーザ60が1人で暇そうであると認識する。エージェントUは、エージェントAにその旨を伝える。例えば、エージェントUは、「ユーザ60が暇そうだ。面白いコンテンツはない?」とエージェントAに聞く。エージェントAは、「最近話題のこのドラマはいかがでしょうか」と提案をする。それに対して、エージェントUは、ユーザ60の対話履歴や行動履歴を検索して、かつ、ユーザの嗜好を考慮し、「これならユーザ60は全話視聴済みだよ。他にはないかな?」などとエージェントAに聞く。エージェントAは、「では、まだ未視聴のショート動画をレコメンドします」と回答する。そしてエージェントAは、ユーザ60に、「よかったらこのショート動画を見てみてください」と提案する。ユーザ60はエージェントAに対して「ありがとう!ちょうど暇だったよ」などと対話をする。
このように、ユーザ60が何もアクションをしていない場合にも、エージェントUは裏側でエージェントAと対話をできる。エージェントUはユーザの状態を取得して、エージェントAと対話をするため、エージェントAはユーザの状態に合わせた提案をできる。
【0145】
また、エージェントUは、ユーザ60とエージェントAの対話履歴を基にして日々アップデートされる。この更新により、エージェントUの、ユーザ60に対する模倣度が上がる。また、対話履歴だけでなく、対話履歴に紐づくユーザ60の感情値に基づいて、エージェントUにフィードバックを入れてアップデートする。例えば、ユーザ60が「この漫画はつまらなかった」と悲しい気持ちでエージェントAと対話をした対話履歴と、ユーザ60の感情値(「哀」:3)の情報を、エージェントUが取得する。エージェントUはその情報を入力として学習し、ユーザ60の模倣度を上げる。
【0146】
なお、ユーザ模倣部58が、ユーザ60を模倣して作成されたエージェントUに対して、ユーザ60の指示により調整を加えることもできる。
また、ユーザ60とエージェントUで異なる意見が生じた場合には、原則、ユーザ60の意見を尊重させ、ユーザ60に危険や損害が生じる場合には、エージェントUの意見を尊重させることができる。また、エージェントUは、ユーザ60ならこういうことを質問する、という予測をしてエージェントAに質問をしたり、Webで情報検索をする等を実行する。また、エージェントUはユーザ60の代弁をしてもよい。
【0147】
さらに、エージェントUはユーザ60のテンションも再現する。具体的には、ユーザ60がエージェントAに質問した際に暗い感情で質問をしていた場合には、エージェントUも暗いテンションを維持してエージェントAに質問を続ける。あわせて、エージェントUは質問内容も調整する。
また、ユーザ60が楽しそうにしていた場合には、エージェントUのテンションも楽しそうに模倣するだけでなく、質問内容にも反映させる。このように、ユーザ60の感情に合わせてエージェントUはテンションや内容を調整してエージェントAに質問をするため、ユーザ60は心地よさを感じやすくなる。
【0148】
以下、本実施形態に係るエージェントシステム50の作用について説明する。エージェントシステム50では、
図13に示すユーザ模倣処理が実行される。エージェントシステム50における処理は、CPU1212が、ユーザ模倣部58と、キャラクタ設定部52として機能することにより実行される。
【0149】
図13は、エージェントシステム50のユーザ模倣処理を示すフローチャートである。
CPU1212は、
図13に示されているフローチャートを繰り返し実行する。
【0150】
まず、ステップS200において、CPU1212は、キャラクタ設定を読み込む。ここで、エージェントUというキャラクタが新規で追加されているものとする。
【0151】
ステップS202において、CPU1212は、対話履歴を取得する。具体的にCPU1212は、対話履歴格納部54に格納された対話履歴、行動履歴、及びユーザ60の属性情報を取得する。
【0152】
ステップS204において、CPU1212は、ユーザ60の感情値を取得する。この感情値は対話履歴と紐づいている。
【0153】
ステップS206において、CPU1212は、取得したデータを用いて、模擬エージェントUを更新する。
【0154】
ステップS208において、CPU1212は、模擬エージェントUがエージェントAとの対話を終了するか否かを判定する。模擬エージェントUがエージェントAとの対話を終了する場合とは、ユーザ60が模擬エージェントUによるエージェントAとの対話の補完を不要と判断した場合である。CPU1212が、模擬エージェントUがエージェントAとの対話を終了しないと判定した場合(ステップS208:NO)、ステップS202に戻る。一方、CPU1212が、模擬エージェントUがエージェントAとの対話を終了すると判定した場合(ステップS208:YES)、ユーザ模倣処理を終了する。
【0155】
(第2実施形態のまとめ)
エージェントUが自動でエージェントAと対話をすることは、ユーザ60からのアクションを始点とせずにタスクを実行することであるため、発話等のユーザ60のアクションを減らすことができる。
また、ユーザ60によるエージェントに対する対話内容のチューニング等の設定も不要であり、エージェントUは自律的に対話をし、あたかもユーザ60自らが話しているように振る舞う。エージェントUは、ユーザ60の対話履歴だけでなく、行動履歴からも模倣するため、ユーザ60の好みの店などを優先度高くエージェントAに提示できる。エージェントUはユーザ60が問いかけをしなくても、ユーザ60のニーズに合った情報を取得する。取得した情報をエージェントUがエージェントAに伝言しエージェントAからユーザ60に伝える。
そして、エージェントUは、ユーザ60の嗜好の変化や感情値に沿って、対話履歴等に基づいて、例えば日次でアップデートされるだけではなく、常時更新されることで、ユーザ60の模倣度合いを保つことができる。
【0156】
(第3実施形態)
第3実施形態は、エージェントシステム50で、ユーザ60を模して作成されたエージェントUに対して、ユーザ60以外のユーザもアクセス可能とし、他のユーザがエージェントUと対話することを特徴としている。
以下、第2実施形態との相違点について説明する。なお、同一の構成には同一の符号を付すこととし、詳細な説明については省略する。
【0157】
エージェントシステム50は、行動制御システムの機能の一部又は全部を利用して構成されている。行動制御システムの適用対象は、ロボット100に限られず、様々な電子機器に行動制御システムを適用できる。
【0158】
エージェントシステム50で作成されたエージェントAにユーザ60が話しかけるように、ユーザ60以外のユーザ(以下、「他人X」とし、複数の他人Xがある場合は、他人X1、他人X2、・・・とする。)はエージェントUに話しかけることができる。他人Xは他のユーザに相当する。なお、エージェントUは模倣元のユーザ60と他のユーザを音声認識などで区別できる。
【0159】
他人Xは、ユーザ60を模したエージェントUに話しかけることで、ユーザ60の情報を取得できる。他人XはエージェントUと対話することで、ユーザ60と疑似的に対話することができる。他人XはエージェントUと対話することによりユーザ60の最新情報を知ることができる。また、他人XはエージェントUと対話形式のような双方向のコミュニケーションでユーザ60の情報を取得できる。
【0160】
また、ユーザ60を模したエージェントUと、他人X1と他人X2で討論をさせてもよい。
図14は、討論の様子を示した図である。なお、討論の内容は一例であって、これに限定されない。また、
図14中のユーザX1、ユーザX2は、他人X1、他人X2のことである。
具体的には、例えば、ユーザX1が、エージェントUに対して、「次のテーマで討論をしましょう。『AIの導入で社会はどう変わるか?』」と提案すると、エージェントUは「承知いたしました」と発する。そして実際に討論が始まり、ユーザX2が「働き方が変わると思います」と発したり、ユーザX1が「暮らしも変わると思います」と発する。エージェントUは過去の対話履歴からユーザ60の発言内容を取得して、例えば「人が時間をかける対象が変わると思います」と論じる。そしてユーザX2が「移動手段も変わると思います」と発するように、以下討論が続いていく。エージェントUは、他人X1や他人X2の投げかける文に対して、エージェントUが持っているユーザ60の情報や発言内容を取得して論じる。なお、一連の討論は、テキストベースのチャットのようなやりとりだけでなく、音声対話でもよい。また、討論の参加人数は
図14の例に限定されない。
【0161】
さらに、エージェントUは他人X1と他人X2との討論の記録をとる。例えば議事録などを生成する生成部として、対話処理部51が機能してよい。本実施形態のエージェントUは、他人Xとの討論に参加しつつ、議事録を取ることができる。
【0162】
このように、エージェントUは、複数の他人Xと仮想的に討論をすることで、ユーザ60が討論の時間を取ることなく、討論結果(議事録)だけを容易に得ることができる。なお、前述の例では他人X1、他人X2がユーザ(人間)であったが、他人X1及びX2も、それぞれを模したエージェントでもよい。
【符号の説明】
【0163】
5 システム、10、11、12、60 ユーザ、20 通信網、100、101、102 ロボット、200 センサ部、201 マイク、202 深度センサ、203 カメラ、204 距離センサ、210 センサモジュール部、211 音声感情認識部、212 発話理解部、213 表情認識部、214 顔認識部、220 格納部、221 反応ルール、222 履歴データ、230 ユーザ状態認識部、232 感情決定部、234 行動認識部、236 行動決定部、238 記憶制御部、250 行動制御部、252 制御対象、280 通信処理部、300 サーバ、1200 コンピュータ、1210 ホストコントローラ、1212 CPU、1214 RAM、1216 グラフィックコントローラ、1218 ディスプレイデバイス、1220 入出力コントローラ、1222 通信インタフェース、1224 記憶装置、1226 DVDドライブ、1227 DVD-ROM、1230 ROM、1240 入出力チップ、50 エージェントシステム、51 対話処理部、52 キャラクタ設定部、53 感情エンジン、54 対話履歴格納部、55 文章生成モデル、56 コマンド取得部、57 RPA、58 ユーザ模倣部、70 サービスプロバイダ