以下に添付図面を参照しながら、本開示の好適な実施の形態について詳細に説明する。なお、本明細書および図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
また、説明は以下の順序で行うものとする。
1.本開示の一実施形態による情報処理システムの概要
2.構成
2−1.システム構成
2−2.サーバの構成
3.システム動作処理
3−1.会話データ登録処理
3−2.音素DB生成処理
3−3.対話制御処理
3−4.会話DB更新処理
3−5.広告挿入処理
4.音声出力制御処理
4−1.構成
4−2.動作処理
(4−2−1.エージェント購入処理)
(4−2−2.音声変換処理)
(4−2−3.自動発話処理)
(4−2−4.シナリオ取得処理)
(4−2−5.シナリオ実行処理)
5.まとめ
<<1.本開示の一実施形態による情報処理システムの概要>>
本開示の一実施形態による情報処理システムは、エージェントを通してエージェントのキャラクターをユーザ自身が体験できるようにすることでエージェントシステムの娯楽性をさらに高めることを可能とする。以下、図1を参照して本実施形態による情報処理システムの概要について説明する。
図1は、本開示の一実施形態による情報処理システムの概要について説明する図である。エージェントとの対話は、例えばユーザが所有するスマートフォン等のクライアント端末1を介して行われる。クライアント端末1は、マイクロホンおよびスピーカーを有し、ユーザとの音声による対話を可能とする。
ここで、上述したように、エージェントのキャラクターを様々設定出来ても、エージェントはあくまでもユーザの対話相手として存在するものであって、ユーザ自身が好きなエージェントのキャラクターになりきるといった体験を得ることは出来なかった。
そこで、本実施形態では、エージェントがユーザと音声による自動会話を行う他、エージェントを通してエージェントのキャラクターをユーザ自身が体験できるようにすることでエージェントシステムの娯楽性をさらに高めることを可能とする。
例えば、エージェントプログラムが起動している際、本実施形態による情報処理システムは、図1に示すように、ユーザが発話を行うと、その発話音声W1をエージェントキャラクター10の音声W2に変換してユーザのイヤホン等から再生する(音声変換処理)。このように、ユーザが話した言葉がエージェントキャラクター10(例えばヒーロー)の声で聞こえるため、ユーザはそのエージェントキャラクター10になりきった体験が得られる。また、本実施形態による情報処理システムは、変換した音声W2に続けて、ユーザの発話音声W1に対応する所定のフレーズを同エージェントキャラクター10の音声で続けて出力してもよい(図1に示す発話音声W3)(自動発話処理)。所定のフレーズとは、例えばユーザの発話音声W1に含まれるキーワード(またはフレーズ)に紐付けられて登録されているフレーズである。このようなフレーズを、ユーザの音声を変換した音声に続けて自動発話させることにより、そのキャラクターへのなりきり体験をより高めることができる。また、本実施形態による情報処理システムは、発話音声W1に含まれるキーワード(またはフレーズ)や、対応する所定のフレーズに応じた効果音を併せて再生してもよい。また、本実施形態による自動発話処理は、ユーザの発話音声に限らず、ユーザの行動や移動場所、表情、日時等に対応するフレーズや効果音を再生してもよい。
また、本実施形態による情報処理システムは、エージェントキャラクター10にユーザ自身がなりきってシナリオに参加できるようにすることも可能である。例えばユーザが予め好きなエージェントとシナリオを購入すると、クライアント端末1に搭載された位置測位部(GPSなど)や各種センサ(加速度センサ、ジャイロセンサ、地磁気センサ、マイク、カメラ等)から検知された情報に基づくユーザの実世界の状況に応じてシナリオが展開される。具体的には、シナリオの進行に応じて各種イベントが開催され、ユーザはイベントに応じた行動は発話を行うことで、イベントを体験することができる。
また、本実施形態では、同シナリオに参加する他のエージェントキャラクターになりきった人物と出会うイベントを開催することも可能である。例えば、キャラクター同士が特定の時間、場所で出会うシーンを含むシナリオプログラムが実行されている際に、各キャラクターになりきった人物が特定の時間に特定の場所に移動すると、特別なイベントが発生する。具体的には、例えば情報処理システムは、各クライアント端末1において相手の発話音声を相手のエージェントキャラクターの音声に変換してイヤホン等から再生させることで、ユーザ同士がシナリオに登場するキャラクターとして会話を楽しむことができるようにしてもよい。また、本実施形態では、ユーザがクライアント端末1を相手にかざしてクライアント端末1のカメラで相手の姿が捉えられた際に、相手の姿に相手のエージェントキャラクターの画像を重畳表示させることで、聴覚的のみならず視覚的にも相手ユーザのエージェントキャラクターへの成りきりを直感的に提供することができる。
なお、本実施形態による情報処理システム(エージェントシステム)は、音声により応答を行う音声エージェントに限定されず、クライアント端末1においてテキストベースで応答を行うテキスト対応エージェントであってもよい。
以下、本実施形態による情報処理システムのシステム構成と、各装置の基本的な構成および動作処理について具体的に説明する。なお以降では、本実施形態による情報処理システムを通信制御システムと称して説明する。
<<2.構成>>
<2−1.システム構成>
続いて、上述した本実施形態による通信制御システムの全体構成について図2を参照して説明する。図2は、本実施形態による通信制御システムの全体構成を示す図である。
図2に示すように、本実施形態による通信制御システムは、クライアント端末1およびエージェントサーバ2を含む。
エージェントサーバ2は、ネットワーク3を介してクライアント端末1と接続し、データの送受信を行う。具体的には、エージェントサーバ2は、クライアント端末1で収音され、送信された発話音声に対する応答音声を生成し、クライアント端末1に送信する。エージェントサーバ2は、1以上のエージェントに対応する音素DB(データベース)を有し、特定のエージェントの音声で応答音声を生成することが可能である。ここで、エージェントとは、漫画、アニメ、ゲーム、ドラマ、映画等のキャラクターや、芸能人、著名人、歴史上の人物等であってもよいし、また、個人に特定せず、例えば世代別の平均的な人物であってもよい。また、エージェントは、動物や擬人化されたキャラクターであってもよい。また、エージェントは、ユーザ本人の性格を反映した人物や、ユーザの友人、家族、知人等の性格を反映した人物であってもよい。
また、エージェントサーバ2は、各エージェントの性格を反映した応答内容を生成することが可能である。エージェントサーバ2は、エージェントを介して、ユーザのスケジュール管理、メッセージの送受信、情報提供等、様々なサービスをユーザとの対話を通じて提供し得る。
なおクライアント端末1は、図2に示すようなスマートフォンに限定されず、例えば携帯電話端末、タブレット端末、PC(パーソナルコンピュータ)、ゲーム機、ウェアラブル端末(スマートアイグラス、スマートバンド、スマートウォッチ、スマートネック等)等であってもよい。また、クライアント端末1は、ロボットであってもよい。
以上、本実施形態による通信制御システムの概要について説明した。続いて、本実施形態による通信制御システムのエージェントサーバ2の構成について図3を参照して具体的に説明する。
<2−2.エージェントサーバ2>
図3は、本実施形態によるエージェントサーバ2の構成の一例を示すブロック図である。図3に示すように、エージェントサーバ2は、音声エージェントI/F(インタフェース)20、対話処理部30、音素記憶部40、会話DB生成部50、音素DB生成部60、広告挿入処理部70、広告DB72、およびフィードバック取得処理部80を有する。
音声エージェントI/F20は、音声データの入出力部、音声認識部、および音声生成部として機能する。入出力部としては、ネットワーク3を介してクライアント端末1と送受信を行う通信部が想定される。音声エージェントI/F20は、クライアント端末1からユーザの発話音声を受信し、音声認識によりテキスト化することが可能である。また、音声エージェントI/F20は、対話処理部30から出力されたエージェントの回答文データ(テキスト)を、当該エージェントに対応する音素データを用いて音声化し、生成したエージェントの応答音声をクライアント端末1に送信する。
対話処理部30は、演算処理装置および制御装置として機能し、各種プログラムに従ってエージェントサーバ2内の動作全般を制御する。対話処理部30は、例えばCPU(Central Processing Unit)、マイクロプロセッサ等の電子回路によって実現される。また、本実施形態による対話処理部30は、基本対話処理部31、キャラクターA対話処理部32、人物B対話処理部33、人物C対話処理部34として機能する。
キャラクターA対話処理部32、人物B対話処理部33、人物C対話処理部34は、エージェント毎に特化された対話を実現する。ここでは、エージェントの一例として「キャラクターA」「人物B」「人物C」を挙げているが、本実施形態は当然これに限定されず、さらに多数のエージェントに特化した対話を実現する各対話処理部を有していてもよい。基本対話処理部31は、エージェント毎に特化されていない、汎用の対話を実現する。
ここで、基本対話処理部31、キャラクターA対話処理部32、人物B対話処理部33、および人物C対話処理部34に共通する基本構成について図4を参照して説明する。
図4は、本実施形態による対話処理部300の構成例を示す図である。図4に示すように、対話処理部300は、質問文検索部310、回答文生成部320、音素データ取得部340、および会話DB330を有する。会話DB330は、質問文データと回答文データが組になった会話データが保存されている。エージェントに特化した対話処理部では、かかる会話DB330にエージェントに特化した会話データが保存され、汎用の対話処理部では、かかる会話DB330にエージェントに特化しない汎用の会話データ(すなわち、基本会話データ)が保存されている。
質問文検索部310は、音声エージェントI/F20から出力された、ユーザの質問音声(発話音声の一例)を認識してテキスト化した質問文と一致する質問文データを会話DB330から検索する。回答文生成部320は、質問文検索部310により検索した質問文データに対応付けて保存されている回答文データを会話DB330から抽出し、回答文データを生成する。音素データ取得部340は、回答文生成部320により生成された回答文を音声化するための音素データを、対応するエージェントの音素記憶部40から取得する。例えば、キャラクターA対話処理部32の場合、キャラクターA音素DB42から、回答文データをキャラクターAの音声で再生するための音素データを取得する。そして、対話処理部300は、生成した回答文データおよび取得した音素データを音声エージェントI/F20に出力する。
音素記憶部40は、エージェント毎の音声を生成するための音素データベースを格納する。音素記憶部40は、ROM(Read Only Memory)およびRAM(Random Access Memory)により実現され得る。図3に示す例では、基本音素DB41、キャラクターA音素DB42、人物B音素DB43、人物C音素DB44を格納する。各音素DBには、音素データとして、例えば音素片とその制御情報である韻律モデルが記憶されている。
会話DB生成部50は、対話処理部300の会話DB330を生成する機能を有する。例えば会話DB生成部50は、想定される質問文データを収集し、各質問に対応する回答文データを収集した後に、質問文データと回答文データとを組にして保存する。そして、会話DB生成部50は、所定数の会話データ(質問文データと回答文データとの組、例えば100組)が集まったら、エージェントの会話データセットとして会話DB330に登録する。
音素DB生成部60は、音素記憶部40に格納されている音素DBを生成する機能を有する。例えば音素DB生成部60は、所定のテキストを読み上げた音声情報を解析して、音素片とその制御情報である韻律モデルに分解し、所定数以上の音声情報が収集できたら音素データとして音素DBに登録する処理を行う。
広告挿入処理部70は、エージェントの対話に広告情報を挿入する機能を有する。挿入する広告情報は、広告DB72から抽出し得る。広告DB72には、企業等の提供側(ベンダー、サプライヤー)から依頼された広告情報(例えばテキスト、画像、音声等の広告内容、広告主、広告期間、広告対象者等の情報)が登録されている。
フィードバック取得処理部80は、エージェントの対話に、フィードバックを取得するための質問を挿入し、ユーザからフィードバックを得るための機能を有する。
以上、本実施形態によるエージェントサーバ2の構成について具体的に説明した。なお、本実施形態によるエージェントサーバ2の構成は、図3に示す例に限定されない。例えば、エージェントサーバ2が有する各構成は、各々ネットワーク上の他サーバで構成されていてもよい。
続いて、本実施形態による通信制御システムの基本的な動作処理について図5〜図14を参照して説明する。
<<3.システム動作処理>>
<3−1.会話データ登録処理>
図5は、本実施形態による会話DB330の生成処理を示すフローチャートである。図5に示すように、まず、会話DB生成部50は、想定される質問文を保存する(ステップS103)。
次に、会話DB生成部50は、質問文に対応する(対の)回答文を保存する(ステップS106)。
次いで、会話DB生成部50は、質問文と回答文のペア(会話データとも称す)が所定数集まったか否かを判断する(ステップS109)。
そして、質問文と会話文のペアが所定数集まった場合(ステップS109/Yes)、会話DB生成部50は、質問文および回答文の多数のペアから成るデータセットを会話DB330に登録する(ステップS112)。質問文および回答文のペアの一例としては、例えば下記のようなものが想定される。
質問文および回答文のペア例
ペア1 質問文:おはよう。
回答文:今日の調子はどうですか?
ペア2 質問文:今日の天気は?
回答文:今日の天気は○○です。
このようなペアが、会話データとして会話DB330に登録され得る。
<3−2.音素DB生成処理>
図6は、本実施形態による音素DBの生成処理を示すフローチャートである。図6に示すように、まず、音素DB生成部60は、例文の表示を行う(ステップS113)。例文の表示は、例えば図示しない情報処理端末のディスプレイに、音素データ生成のために必要な例文を表示する。
次に、音素DB生成部60は、例文を読み上げた音声を録音し(ステップS116)、録音音声を分析する(ステップS119)。例えば、エージェントの音声を担当する人物により読み上げられた音声情報が情報処理端末のマイクロホンにより収集され、音素DB生成部60がこれを受信し、記憶し、さらに音声分析を行う。
次いで、音素DB生成部60は、音声情報に基づいて、韻律モデルを生成する(ステップS122)。韻律モデルとは、音声の韻律的特徴(例えば音の高低、音の強弱、発話速度等)を示す韻律パラメータを抽出するものであって、個人毎に異なる。
次に、音素DB生成部60は、音声情報に基づいて、音素片(音素データ)を生成する(ステップS125)。
次いで、音素DB生成部60は、韻律モデルおよび音素片を保存する(ステップS128)。
続いて、音素DB生成部60は、韻律モデルおよび音素片が所定数集まったか否かを判断する(ステップS131)。
そして、韻律モデルおよび音素片が所定数集まった場合(ステップS131/Yes)、音素DB生成部60は、韻律モデルおよび音素片を、所定のエージェント用の音素データベースとして音素記憶部40に登録する(ステップS134)。
<3−3.対話制御処理>
図7は、本実施形態による対話制御処理を示すフローチャートである。図7に示すように、まず、音声エージェントI/F20は、ユーザの質問音声およびエージェントIDを取得したか否かを確認する(ステップS143)。エージェントIDは、キャラクターA、人物B、人物Cといった特定のエージェントを示す識別情報である。ユーザは、エージェント毎の音素データを購入することができ、例えば購入処理時に購入したエージェントのIDがクライアント端末1に保存される。
次に、ユーザの質問音声およびエージェントIDを取得すると(ステップS146/Yes)、音声エージェントI/F20は、質問音声を音声認識し、テキスト化する(ステップS149)。音声エージェントI/F20は、テキスト化した質問文を、エージェントIDで指定された特定エージェントの対話処理部に出力する。例えば「エージェントID:キャラクターA」の場合、音声エージェントI/F20は、テキスト化した質問文をキャラクターA対話処理部32に出力する。
次いで、対話処理部30は、エージェントIDで指定された特定エージェントの会話DBから、テキスト化した質問文と一致する質問文を検索する(ステップS152)。
次に、一致する質問があった場合(ステップS155/Yes)、キャラクターA対話処理部32は、質問に対応する(対になって保存されている)回答文データを特定エージェントの会話DBから取得する(ステップS158)。
一方、一致する質問がなかった場合(ステップS155/No)、基本対話処理部31の会話DBから、テキスト化した質問文と一致する質問文が検索される(ステップS161)。
一致する質問文があった場合(ステップS161/Yes)、基本対話処理部31は、質問に対応する(対になって保存されている)回答文データを基本対話処理部31の会話DBから取得する(ステップS167)。
一方、一致する質問文がなかった場合(ステップS164/No)、基本対話処理部31は、一致する質問文が無い場合の回答文データ(例えば、「質問が解りません」といった回答文)を取得する(ステップS170)。
次いで、キャラクターA対話処理部32により、エージェントIDで指定された特定エージェントの音素DB(ここでは、キャラクターA音素DB42)を参照し、回答文データの音声を生成するためのキャラクターAの音素データが取得される(ステップS173)。
次に、取得された音素データと回答文データが音声エージェントI/F20に出力される(ステップS176)。
そして、音声エージェントI/F20は、回答文データ(テキスト)を音素データを用いて音声化(音声合成)し、クライアント端末1に送信する(ステップS179)。クライアント端末1では、キャラクターAの音声で回答文が再生される。
<3−4.会話DB更新処理>
次に、各対話処理部300の会話DB330の更新処理について説明する。本実施形態では、ユーザとの会話によって会話DB330を成長させることが可能である。
まず、会話DB330のデータ構成例について図8を参照して補足説明を行う。図8は、本実施形態による会話DB330のデータ構成例について説明する図である。図8に示すように、各会話DB330は、個人化レイヤー331と共通レイヤー332という2つのレイヤーを有する。例えばキャラクターA用会話DB330Aの場合、共通レイヤー332Aには、キャラクターAの性格や特徴が反映された会話データが保持される。一方、個人化レイヤー331Aには、ユーザとの会話により当該ユーザ向けにカスタマイズされた会話データが保持される。すなわち、キャラクターA音素DB42およびキャラクターA対話処理部32がセットでユーザに提供(販売)されるところ、あるユーザXと、ユーザYは、最初は同じキャラクターAと対話を行う(共通レイヤー332Aに保持されている会話データが使用される)が、対話を続けるにつれて、各ユーザ向けにカスタマイズされた会話データが、ユーザ毎の個人化レイヤー331Aに蓄積される。これにより、ユーザX、ユーザYそれぞれの好みに応じたキャラクターAとの対話を提供できるようになる。
またエージェント「人物B」が、キャラクターAのような特定の性格を有さない平均的な世代別の人物の場合も、会話データがユーザ向けにカスタマイズされ得る。すなわち、例えば「人物B」が『20代の人物』の場合、共通レイヤー332Bには20代の平均的な会話データが保持され、ユーザとの対話を続けることでカスタマイズされた会話データがユーザ毎の個人化レイヤー331Bに保持される。また、ユーザは、人物Bの音声として「男性」、「女性」、「高い声」、「低い声」といった好きな音素データを人物B音素DB43から選択し、購入することも可能である。
このような会話DB330のカスタマイズを行う際の具体的な処理について、図9を参照して説明する。図9は、本実施形態による会話DB330の更新処理を示すフローチャートである。
図9に示すように、まず、音声エージェントI/F20は、クライアント端末1からユーザの質問音声を取得(受信)し、これを音声認識によりテキスト化する(ステップS183)。テキスト化されたデータ(質問文データ)は、エージェントIDにより指定されている特定エージェントの対話処理部(ここでは、例えばキャラクターA対話処理部32)に出力される。
次に、キャラクターA対話処理部32は、質問文データが所定のコマンドであるか否かを判断する(ステップS186)。
次いで、所定のコマンドである場合(ステップS186/Yes)、キャラクターA対話処理部32は、ユーザ指定の回答文データを、会話DB330Aの個人化レイヤー331Aに質問文データと対で登録する(ステップS189)。所定のコマンドとは、例えば「NG」、「設定」といった言葉であってもよい。例えば以下のような会話の流れにより、キャラクターAの会話DBをカスタマイズすることができる。
ユーザ:「おはよう」
キャラクターA:「おはよう」
ユーザ:「NG。元気で頑張ってと答えて」
キャラクターA:「元気で頑張って」
上記の会話の流れでは、『NG』が所定のコマンドであって、キャラクターA対話処理部32は、ユーザから『NG』と発せられた後、ユーザ指定の回答文データ『元気で頑張って』を、質問文データ『おはよう』と対にして会話DB330Aの個人化レイヤー331Aに登録する。
一方、所定のコマンドでない場合(ステップS186/No)、キャラクターA対話処理部32は、質問文データと対になって保持されている回答文データをキャラクターA用会話DB330Aから検索する。問文データと対になって保持されている回答文データがキャラクターA用会話DB330Aに保持されていない場合、すなわち、ユーザの質問が回答文の無い質問であった場合(ステップS192/Yes)、キャラクターA対話処理部32は、ユーザ指定の回答文データを、質問文と対にして個人化レイヤー331Aに登録する(ステップS195)。例えば以下のような会話の流れにより、キャラクターAの会話DBをカスタマイズすることができる。
ユーザ:「元気?」
キャラクターA:「質問がわかりません」(該当する回答が無い場合の回答データ例)
ユーザ:「『元気?』と聞いたら、『今日も元気だよ』と答えて」
キャラクターA:「今日も元気だよ」
上記会話の流れでは、『元気?』と対になって保持される回答文データが無いため、該当する回答が無い場合の回答データ例である『質問がわかりません』がキャラクターA対話処理部32により取得され、対応するキャラクターAの音素データと共に音声エージェントI/F20に出力され、クライアント端末1で再生される。次いで、ユーザ指定の回答文『今日も元気だよ』が入力されると、キャラクターA対話処理部32は、質問文データ『元気?』と対にして個人化レイヤー331Aに登録する。
なお、回答文の有る質問であった場合(ステップS192/No)、キャラクターA対話処理部32は、当該回答文データを取得し、対応するキャラクターAの音素データと共に音声エージェントI/F20に出力し、クライアント端末1で回答文がキャラクターAの音声で再生される(ステップS198)。
次いで、個人化レイヤーから共通レイヤーへの会話データ移行について、図10を参照して説明する。図10は、本実施形態による個人化レイヤーから共通レイヤーへの会話データ移行処理を示すフローチャートである。ここでは、一例としてキャラクターA対話処理部32の個人化レイヤー331Aから共通レイヤー332Aへの会話データ移行処理について説明する。
図10に示すように、まず、キャラクターA対話処理部32は、ユーザ毎の個人化レイヤー331Aを定期的にサーチし(ステップS203)、実質的に同じ内容の会話ペア(質問文データと回答文データのペア)を抽出する(ステップS206)。実質的に同じ内容の会話ペアとは、例えば質問文「元気?」と回答文「今日も元気だよ!」のペアと、質問文「元気ですか?」と回答文「今日も元気だよ!」のペアは、質問文が丁寧語か否かの違いのみであって、実質的に同じ内容の会話ペアと判断され得る。
次に、キャラクターA対話処理部32は、ユーザ毎の個人化レイヤー331Aから会話ペアが所定数以上抽出された場合(ステップS209/Yes)、当該会話ペアを(ユーザ毎の)共通レイヤー332Aに登録する(ステップS212)。
このように、ユーザ毎の個人化レイヤー331において実質的に内容が同じ会話ペアを共通レイヤー332に移行することで、共通レイヤー332を成長(会話ペアを拡充)させることが可能となる。
また、本実施形態では、特定エージェントの会話DB(具体的には共通レイヤー)から基本対話用の会話DBへ会話データを移行して基本対話用の会話DBを成長させることも可能である。図11は、本実施形態による基本対話用会話DB330Fへの会話データの移行について説明する図である。例えば、ユーザXおよびユーザYが各々エージェント「キャラクターA」を選択(購入)し、ユーザZがエージェント「人物B」を選択(購入)している場合、図11に示すように、ユーザXのキャラクターA用会話DB330A−X、ユーザYのキャラクターA用会話DB330A−Y、およびユーザZの人物B用会話DB330B−Zが対話処理部30に存在し得る。この場合、各個人化レイヤー331AX、331A−Y、331B−Zには、各ユーザX、ユーザY、ユーザZとの対話に応じて独自の(カスタマイズされた)会話ペアが登録されていく(図9参照)。次いで、同じエージェントの個人化レイヤー331A−X、331A−Yにおいて実質同じ会話ペアが所定数あると、ユーザ毎の共通レイヤー332A−X、332A−Yに各々登録される(図10参照)。
そして、対話処理部30は、複数のエージェント(異なるエージェントを含んでもよい)の共通レイヤー332A−X、332A−Y、332B−Zから実質同じ会話ペアが所定数以上抽出された場合、上位の基本対話用会話DB330Fに会話ペアを移行する。基本対話用会話DB330Fは、基本対話処理部31が有する会話DBである。これにより、基本対話用会話DB330Fを成長(会話ペアを拡充)させることが可能となる。かかるデータ移行処理について、図12を参照して具体的に説明する。図12は、本実施形態による基本対話用DB330Fへの会話データ移行処理を示すフローチャートである。
図12に示すように、まず、対話処理部30は、定期的に会話DB330の複数の共通レイヤー332をサーチし(ステップS223)、実質同じ会話ペアを抽出する(ステップS226)。
次に、対話処理部30は、複数の共通レイヤー332から実質同じ会話ペアが所定数以上抽出された場合(ステップS229/Yes)、当該会話ペアを基本対話用会話DB330Fに登録する(ステップS232)。
このように、複数のエージェントにおける会話DB330の共通レイヤー332において実質的に内容が同じ会話ペアを、基本対話用会話DB330Fに移行することで、基本対話用会話DB330Fを成長(会話ペアを拡充)させることが可能となる。
<3−5.広告出力処理>
続いて、広告挿入処理部70による広告情報の挿入処理について図13〜図14を参照して説明する。本実施形態では、広告挿入処理部70により、エージェントの発言に広告DB72に格納されている広告情報の挿入を行うことが可能である。広告DB72には、予め広告情報が登録され得る。図13は、本実施形態による広告DB72に登録されている広告情報の一例を示す図である。
図13に示すように、広告情報621は、例えばエージェントID、質問文、広告内容、条件、および確率を含む。エージェントIDは広告内容を発言するエージェントを指定し、質問文は広告内容を挿入するトリガとなるユーザの質問文を指定し、広告内容はエージェントの対話に挿入する広告文章である。また、条件は、広告内容を挿入する条件であって、確率は広告内容を挿入する確率を示す。例えば図13の1段目に示す例では、エージェント「キャラクターA」との対話において、30歳以下のユーザからの質問文に「チョコレート」という単語が含まれている場合に、「BB社の新しく発売されたチョコはミルクがたくさん入っていて美味しいよ」といった広告内容が回答文に挿入される。また、トリガとなる質問文が発せられた際に毎回広告内容を挿入するとユーザが煩わしく思ってしまうこともあるため、本実施形態では、広告を挿入する確率を設定するようにしてもよい。かかる確率は広告料に応じて決定されてもよい。例えば広告料が高いほど確率が高く設定される。
このような広告内容の挿入処理について図14を参照して具体的に説明する。図14は、本実施形態による広告内容の挿入処理を示すフローチャートである。
図14に示すように、まず、広告挿入処理部70は、ユーザとエージェントとの対話(具体的には、対話処理部30による対話処理)を監視する(ステップS243)。
次に、広告挿入処理部70は、ユーザとエージェントとの対話に、広告DB72に登録されている質問文と同一の内容の質問文が登場したか否かを判断する(ステップS246)。
次いで、同一の内容の質問文が登場した場合(ステップS246/Yes)、広告挿入処理部70は、該当する質問文と対応付けられている広告挿入の条件および確率を確認する(ステップS249)。
続いて、広告挿入処理部70は、条件および確率に基づいて、現在、広告が出せる状態であるか否かを判断する(ステップS252)。
次に、広告が出せる状態である場合(ステップS252/Yes)、広告挿入処理部70は、対話処理部30による対話処理を一時停止させ(ステップS255)、広告内容を対話に挿入する(ステップS258)。具体的には、例えばユーザの質問文に対するエージェントの回答文に、広告内容を挿入させる。
そして、広告内容を含む対話(会話文データ)が対話処理部30から音声エージェントI/F20に出力され、音声エージェントI/F20からクライアント端末1に送信され、エージェントの音声で再生される(ステップS261)。具体的には、例えば以下のような会話により、キャラクターAの発言としてユーザに広告内容を提示することができる。
ユーザ:「おはよう」
キャラクターA:「おはよう!今日の調子はどうですか?」
ユーザ:「元気だよ。何か美味しい物食べたいな」
キャラクターA:「CC店の焼肉が美味しいらしいよ」
上記会話では、まず、ユーザの質問文「おはよう」に対して、キャラクターAの会話DBから検索された対応する回答文「おはよう!今日の調子はどうですか?」が音声出力される。次いで、ユーザの質問文「元気だよ。何か美味しい物食べたいな」に、広告挿入のトリガとなる質問文「何か美味しい物食べたいな」が含まれているため(図13の2段目参照)、広告挿入処理部70は広告挿入処理を行い、キャラクターAの音声で広告内容「CC店の焼肉が美味しいらしいよ」といった回答文が出力される。
以上、本実施形態による通信制御システムの基本的な動作処理として、会話データ登録処理、音素DB生成処理、対話制御処理、会話DB更新処理、および広告挿入処理について説明した。
さらに、本実施形態による通信制御システムの対話処理部30は、エージェントの音声発話機能を用いて、エージェントのキャラクターにユーザ自身がなりきる体験を提供し、エージェントシステムの楽しさを高めることを可能とする。このような本実施形態による対話処理部30の音声出力制御処理について、図15〜図42を参照して具体的に説明する。
<<4.音声出力制御処理>>
<4−1.構成>
まず、本実施形態による音声出力制御処理を行う対話処理部30aの構成について、図15を参照して説明する。
図15は、本実施形態による対話処理部30aの構成例を示す図である。図15に示すように、対話処理部30aは、基本対話処理部31、キャラクターA対話処理部32、人物B対話処理部33、人物C対話処理部34、ユーザ管理部35、自動発話制御部36、およびシナリオ管理部37を有する。
基本対話処理部31、キャラクターA対話処理部32、人物B対話処理部33、および人物C対話処理部34は、図3および図4を参照して説明したように、ユーザの発話に対応するエージェントの応答を生成する機能を有する。基本対話処理部31は、エージェントに特化しない汎用の応答を生成し、キャラクターA対話処理部32、人物B対話処理部33、および人物C対話処理部34は、各エージェントキャラクター(キャラクターA、人物B、人物C)にそれぞれ特化した応答を生成する。
(ユーザ管理部35)
ユーザ管理部35は、ユーザ情報の管理(登録、変更、更新、削除)を行う。図16に、本実施形態によるユーザ管理部35の構成例を示す。図16に示すように、ユーザ管理部35は、ログイン管理部351、ユーザ情報DB352、顔情報登録部353、およびユーザ位置情報登録部354を有する。
ログイン管理部351は、クライアント端末1からの要求に応じて、ユーザのログイン認証を行う。具体的には、例えばログイン管理部351は、ユーザによりクライアント端末1で入力されたアカウント情報(アカウント名、パスワード)をユーザ情報DB352と参照し、ログイン認証を行う。ユーザ情報DB352は、ユーザID、アカウント情報、ユーザ属性情報(誕生日、性別、郵便番号等)、顔情報、購入した(ユーザ所有の)エージェントIDおよびシナリオID等を含むユーザ情報を記憶する。これらのユーザ情報は、例えばエージェントサーバ2の音声エージェントI/F20(図3参照)を介してクライアント端末1から送信され、登録される。
顔情報登録部353は、ユーザの顔情報をユーザ情報DB52に登録する。ユーザの顔情報は、例えばクライアント端末1に設けられたカメラにより撮像されたユーザの顔画像を解析した結果であって、クライアント端末1からエージェントサーバ2へ送信され得る。なお、クライアント端末1から顔画像が送信され、顔情報登録部353において解析してもよい。
ユーザ位置情報登録部354は、ユーザの現在位置情報をユーザ情報DB52に登録する。ユーザの現在位置情報は、例えばクライアント端末1に設けられたGPS(Global Positioning System)等の位置測位部により測位され、定期的にエージェントサーバ2に送信される。
(自動発話制御部36)
自動発話制御部36は、エージェントによる自動的な発話を制御する機能を有する。図17に、本実施形態による自動発話制御部36の構成例を示す。図17に示すように、自動発話制御部36は、ユーザ音声抽出部361、音素データ取得部362、位置情報取得部363、フレーズ検索部364、フレーズDB365、および情報解析部366を有する。
ユーザ音声抽出部361は、入力された音声情報を解析し、ユーザ音声を抽出する。かかる音声情報は、例えばクライアント端末1のマイクロホンにより収音され、ネットワークを介してクライアント端末1からエージェントサーバ2に送信される。エージェントサーバ2では、音声エージェントI/F20により受信した当該音声情報を対話処理部30aへ出力する。なおクライアント端末1は、継続的、定期的、または所定のタイミングで周辺の音声情報を収音し、エージェントサーバ2へ送信する。ユーザ音声抽出部361は、抽出したユーザ音声をテキスト化し(発話テキストの生成)、音素データ取得部362へ出力する。
位置情報取得部363は、ユーザの現在位置情報を取得し、フレーズ検索部364へ出力する。ユーザの現在位置情報は、クライアント端末1から送信され得る。
情報解析部366は、クライアント端末1から送信されたユーザ状況を示す種々の情報を解析し、解析結果をフレーズ検索部364へ出力する。具体的には、例えば情報解析部366は、クライアント端末1から送信された顔情報(撮像画像に基づいて解析された、現在のユーザの顔情報または周囲に居る人物の顔情報)から顔の表情を解析する。また、情報解析部366は、クライアント端末1から送信された加速度情報(加速度センサにより検知された情報)からユーザ行動(走っている、ジャンプしている、寝ている等)を解析する。また、情報解析部366は、クライアント端末1から送信された音声情報(マイクロホンにより収音された音声情報)から環境音(ユーザ周辺の雑音等)を解析する。また、情報解析部366は、クライアント端末1から送信された生体情報(脈拍センサ、心拍センサ、発汗センサ、体温センサ、血圧センサ、脳波センサ等により検知された情報)からユーザ状態(緊張している、怒っている、悲しんでいる、喜んでいる等)を解析する。そして、情報解析部366は、解析結果(ユーザまたは周辺人物の状況)をフレーズ検索部364へ出力する。
フレーズ検索部364は、位置情報取得部363により取得されたユーザ位置、情報解析部366により解析されたユーザまたは相手の表情、ユーザ行動、またはユーザ状況等に応じたフレーズ(発話フレーズとも称す)をフレーズDB365から検索し、検索結果を音素データ取得部362へ出力する。フレーズには、ナレーションや効果音が紐付けられていてもよい。また、フレーズDB365は、エージェントキャラクター毎のフレーズデータが格納される。ここで、下記表1に、フレーズDB365に格納されるエージェントキャラクター「ヒーロー」のフレーズデータ例を示す。下記表1に示すように、フレーズDB365には、状況とフレーズや効果音が対応付けて記憶されている。下記表1に示す例では、一のセンサ種別に「状況」が対応付けられているが、本実施形態はこれに限定されず、複数のセンサの解析結果に基づいて「状況」が総合的に判断されてもよい。また、本実施形態では、複数の状況(場所、表情、時刻、状態等)が条件を満たす場合に対応する「フレーズ、効果音」が対応付けられていてもよい。
音素データ取得部362は、音声抽出部361から出力された発話テキスト、またはフレーズ検索部364から出力されたフレーズ、ナレーションを音声化するための音素データを、対応するエージェントの音素記憶部40から取得する。例えば音素データ取得部362は、ユーザ音声をユーザ指定のエージェントの音声に変換するため、当該エージェントの音素データを発話テキストに応じて取得する。クライアント端末1からは、特定のエージェントキャラクターを選択する選択信号が送信され得る。
(シナリオ管理部37)
シナリオ管理部37は、エージェントキャラクターに紐付けられた各シナリオの管理を行う。図18に、本実施形態によるシナリオ管理部37の構成例を示す。図18に示すように、シナリオ管理部37は、データ管理部371、シナリオ実行部372、情報解析部373、およびシナリオDB374を有する。
データ管理部371は、シナリオDB374に格納されているシナリオの登録、変更、更新、削除といった管理を行う。シナリオDB374には、各エージェントキャラクターに対応する1以上のシナリオデータが格納されている。シナリオデータには、タイトル、あらすじ、購入金額等が付随情報として付与され、さらに、イベント(シナリオイベントとも称す)に関するデータが含まれる。イベントに関するデータには、イベント発生のトリガとなる状況(場所、ユーザ行動、表情、ユーザ発話等)と、イベントの開催時刻(開催期間)等が含まれる。
シナリオ実行部372は、ユーザが参加中のシナリオに従って、エージェントキャラクターの音声や画像をユーザに提示するよう制御する。具体的には、シナリオ実行部372は、シナリオに基づく音声や画像等の提示情報を、音声エージェントI/F20からネットワークを介してクライアント端末1へ送信するよう制御する。また、シナリオ実行部372は、情報解析部373による解析結果に基づいて、シナリオに含まれるイベントのトリガ判断を行い、イベントが発生する場合はイベントの音声や画像等の提示情報を、音声エージェントI/F20からネットワークを介してクライアント端末1へ送信するよう制御する。
情報解析部373は、クライアント端末1から送信されたユーザ状況を示す種々の情報を解析し、解析結果をフレーズ検索部364へ出力する。ユーザ状況を示す種々の情報とは、例えば位置情報、顔情報(撮像画像に基づいて解析された、現在のユーザの顔情報または周囲に居る人物の顔情報)、加速度情報、音声情報、生体情報等である。
ここで、下記表2に、シナリオDB374に格納されるシナリオデータに含まれるイベントデータ例を示す。下記表2に示すように、イベントデータでは、トリガ発生の条件、イベント内容、およびアクションが対応付けられている。
以上、本実施形態による対話処理部30aの構成について具体的に説明した。続いて、本実施形態による動作処理について図19〜図42を参照して具体的に説明する。
<4−2.動作処理>
(4−2−1.エージェント購入処理)
図19は、本実施形態によるエージェントアプリケーションの購入処理を示すシーケンス図である。ここで、エージェントアプリケーションとは、特定のエージェントキャラクターによる自動対話をクライアント端末1で享受するために使用されるソフトウェアであって、エージェントアプリケーションの購入は、「エージェントの購入」とも言える。以下、アプリケーションを「App」とも称する。
図19に示すように、まず、クライアント端末1は、エージェントサーバ2により提供されるアプリケーションショップのWebサイトから任意の(すなわち、ユーザにより選択された)エージェントAppのダウンロードおよびインストールを行う(ステップS270)。なお、クライアント端末1とエージェントサーバ2は、ネットワークを介して接続される。エージェントサーバ2のデータの送受信は、音声エージェントI/F20により行われ得る。
次いで、クライアント端末1は、エージェントAppを起動(初回起動)する(ステップS273)。ユーザアカウントが登録済みでない場合(ステップS276/No)、アカウントの登録処理をエージェントサーバ2に要求する(ステップS279)。
次に、エージェントサーバ2のユーザ管理部35(図16参照)は、クライアント端末1からの要求に応じて、新規アカウント情報をユーザ情報DB352に登録する(ステップS282)。新規アカウント情報は、アカウント名やパスワード、ユーザ属性情報(性別、生年月日、ニックネーム)等であって、クライアント端末1においてユーザにより入力され、アカウント登録処理の要求と共に送信される。
一方、ユーザアカウントが登録済みである場合(ステップS276/Yes)、クライアント端末1は、ログイン処理をエージェントサーバ2に要求する(ステップS285)。
次いで、新規アカウント登録を行った場合若しくはログイン処理要求を受信した場合、エージェントサーバ2のログイン管理部351は、ユーザ情報DB352を参照し、アカウントのログイン処理を行う(ステップS288)。ログイン処理の要求では、クライアント端末1においてユーザにより入力されたアカウント名とパスワードが送信されるので、ログイン管理部351はユーザ情報DB352を参照して照合する。
次に、ログイン処理が正常に完了すると、エージェントサーバ2は、ログイン完了通知を、音声エージェントI/F20からネットワークを介してクライアント端末1へ送信する(ステップS291)。
次いで、クライアント端末1は、クライアント端末1のカメラ(または周辺に存在する通信可能な外部端末に設けられているカメラ)を起動し、ユーザの顔を撮像し、撮像画像(顔画像)から顔情報を取得する(ステップS294)。顔情報は、撮像画像(顔画像)の解析結果でもよいし、顔画像自体であってもよい。
次に、クライアント端末1は、顔情報をエージェントサーバ2へ送信し(ステップS297)、エージェントサーバ2は、顔情報をユーザ情報DB352に登録する(ステップS300)。
続いて、クライアント端末1は、バックグラウンドでエージェントAppを実行させるか否かのユーザによる選択を受け付け(ステップS303)、選択内容を設定情報としてエージェントサーバ2へ送信する(ステップS306)。
次いで、エージェントサーバ2は、設定情報をユーザ情報DB352に保存する(ステップS309)。なおかかる設定情報はクライアント端末1の記憶部に保存されていてもよい。
そして、クライアント端末1は、起動したエージェントAppに従ってメイン画面を表示する(ステップS312)。
以上、エージェントApp購入とエージェントApp初回起動時の処理について説明した。ここで、エージェントApp購入とエージェントApp初回起動時におけるクライアント端末1での表示画面例について図20〜図22を参照して説明する。
図20は、本実施形態によるエージェントアプリケーションの購入時における表示画面例を示す図である。図20左に示す画面100には、購入対象の候補となる複数のエージェント Appのタイトルが表示されている。画面100に示す各エージェントAppのタイトルは、例えばエージェントキャラクターの名称である。例えばエージェントキャラクター「パワフルマン」を購入したい場合、ユーザは、画面100の「エージェントApp『パワフルマン』」を選択する。この場合、画面100は図20中央に示す画面101に遷移する。
画面101には、アカウント情報入力欄、アカウント作成ボタン、および「アカウントをお持ちの方はこちら」ボタンが表示されている。アプリケーションショップを利用するためのアカウントを既に登録済みの場合、ユーザは、「アカウントをお持ちの方はこちら」ボタンを選択する。この場合、画面101は図20右に示す画面102に遷移する。
画面102には、アカウント名入力欄、パスワード入力欄、およびログインボタンが表示されている。ユーザは、登録済みのアカウント名(ユーザ名/ID、ログイン名/IDとも称される)およびパスワードを入力し、ログインボタンを選択する。ログインボタンが選択されると、クライアント端末1は、入力されたアカウント名およびパスワードと共に、エージェントサーバ2に対してログイン処理要求を行う。
一方、アカウントが未登録の場合、画面101においてアカウント名等の入力を行い、アカウントの作成をエージェントサーバ2に依頼する。図21は、本実施形態によるアカウント登録画面例を示す図である。図21左の画面103に示すように、アカウント名等が入力され、「アカウント作成」ボタンが選択されると、クライアント端末1は、入力された情報と共にアカウント登録処理の要求をエージェントサーバ2に対して行う。
エージェントサーバ2においてアカウント登録処理が正常に完了すると、図21右に示すように、アカウント作成が完了したことを通知する画面104が表示される。画面104には、「続いて、お客様の顔情報を登録しますか?」といったテキストが表示され、「はい」ボタンが選択されると、クライアント端末1のカメラが起動し、ユーザの顔の撮像、および顔情報の抽出(解析)が行われる。抽出された顔情報は、エージェントサーバ2へ送信され、ユーザ情報として登録される。
図22は、本実施形態によるメイン画面例を示す図である。エージェントAppの初回起動においてログイン処理やアカウント登録処理が終了すると、図22の左に示すように、エージェントAppを開始するか否かを確認する画面105が表示される。開始する場合、ユーザは画面105に表示されている「はい」ボタンを選択する。なお画面105には、バックグラウンドでの実行可否を設定するためのチェックボックスも表示されている。ユーザは、エージェントAppをバックグラウンドで実行したい場合にはチェックを入れる。クライアント端末1は、当該チェックボックスへのチェックの有無を、バックグラウンドでの実行可否の設定情報としてエージェントサーバ2へ送信する。
画面105の「はい」ボタンが選択されると、エージェントAppのメイン画面106が表示される。ここでは、例えばヒーローキャラクターの「パワフルマン」の画像がクライアント端末1の表示部に表示され、さらに「この街は俺が守る!」といった「パワフルマン」の音声やテーマ曲がクライアント端末1のスピーカーから再生される。
(4−2−2.音声変換処理)
続いて、本実施形態による音声変換処理について図23〜図24を参照して説明する。図23は、本実施形態による音声変換処理について説明する図である。本実施形態では、図23に示すように、ユーザの発話音声W4をクライアント端末1(またはクライアント端末1と通信接続する周辺に存在するウェアラブル装置)のマイクロホンにより収音すると、これを対話処理部30aの自動発話制御部36により特定のエージェントキャラクターの音声W5に変換してユーザが装着するイヤホン等から再生する。特定のエージェントキャラクターとは、例えばクライアント端末1において起動中のエージェントAppに対応するキャラクターであって、当該エージェントAppを起動する操作が、実質的なユーザによるエージェントキャラクターの選択として認識され、選択信号がエージェントサーバ2へ送信される。このように、ユーザは自分の発話音声がエージェントキャラクターの音声で聞こえることで、エージェントキャラクターに成りきることができる。
図24は、本実施形態による音声変換処理を示すシーケンス図である。図24に示すように、まず、クライアント端末1は、マイクロホンにより音データを収音すると(ステップS320)、収音した音データをエージェントサーバ2へ送信する(ステップS323)。この際、クライアント端末1は、ユーザが選択しているエージェントキャラクターを示す選択信号も併せて送信してもよい。これらのデータは、クライアント端末1からネットワーク3を介してエージェントサーバ2へ送信され、エージェントサーバ2の音声エージェントI/F20(通信部として機能)で受信され得る。
次いで、エージェントサーバ2は、自動発話制御部36のユーザ音声抽出部361(図17参照)により、音データを解析し、ユーザ音声の抽出を行う。エージェントサーバ2は、ユーザ音声が抽出できた場合、これをユーザに選択された特定のエージェントキャラクター(ここでは、例えば「ヒーローキャラクター」)の音声に変換する(ステップS326)。より具体的には、エージェントサーバ2は、対話処理部30aのユーザ音声抽出部361により抽出、テキスト化したユーザ音声文をエージェントキャラクターの音声で音声化するための音素データを対話処理部30aの音素データ取得部362により取得する。そして、対話処理部30aから出力されたユーザ音声文および対応する特定のエージェントキャラクターの音素データに基づいて、音声エージェントI/F20により、ユーザ音声文を特定のエージェントキャラクターの音声で音声化し(音声変換)、音声化したデータ(音声データ)を音声エージェントI/F20からネットワークを介してクライアント端末1へ送信する(ステップS329)。
次に、クライアント端末1は、エージェントサーバ2で変換されたヒーローキャラクターの声色の音声データをイヤホン等(スピーカーの一例)から再生する(ステップS332)。
以上、音声変換処理について説明したが、本実施形態は、上述したような聴覚的な成りきりに限定されず、視覚的にも成りきり体験を提供することが可能である。以下、図25を参照して説明する。
図25は、本実施形態によるAR(Augmented Reality)変身による視覚的な成りきりについて説明する図である。本実施形態では、図25に示すように、例えばクライアン端末1に設けられたカメラでユーザ自身の顔を撮像し、撮像したユーザの顔画像に、エージェントキャラクターの顔画像を重畳表示した画面107を生成して表示することで、視覚的な成りきり体験を提供することができる。この際、エージェントサーバ2により、撮像した顔画像に基づく顔認識、すなわちユーザ情報DB3532に登録された顔情報と一致するか否かの確認を行い、一致する場合は当該顔画像にエージェントキャラクターの顔画像を重畳表示するようにしてもよい。また、上述した音声変換の聴覚的な成りきり体験と併せて視覚的な成りきり体験を提供するようにしてもよい。
(4−2−3.自動発話処理)
続いて、ユーザ状況に応じた特定エージェントキャラクターの自動発話処理について図26A〜図26Dを参照して説明する。ユーザ状況とは、例えばユーザの場所、人物属性や表情、行動状態(行動認識)、および心理状態等が想定される。
図26Aは、本実施形態による場所に応じた自動発話処理を示すシーケンス図である。図26Aに示すように、まず、クライアント端末1は、GPS等により現在位置情報を取得し(ステップS340)、エージェントサーバ2へ現在位置情報を送信する(ステップS342)。このような現在位置情報の取得および送信は、例えばクライアント端末1でエージェントプログラムが起動している際に定期的に行われ得る。
次に、エージェントサーバ2の自動発話制御部36は、クライアント端末1から送信され位置情報取得部363により取得したクライアント端末1の位置情報(場所)に対応するフレーズを、フレーズ検索部364によりフレーズDB365を参照して検索する(ステップS344)。例えば上記表1に示しように、特定の場所(XX都市、Y公園、Z駅等)や一般的な場所(駅、郵便局、公園、海等)に紐付けられたフレーズや効果音が検索される。
次いで、場所に応じたフレーズが見つかった(すなわち検索がヒットした)場合(ステップS346/Yes)、自動発話制御部36は、検索したフレーズをユーザ指定の特定エージェントキャラクター、例えばヒーローキャラクターの声色に変換する(ステップS348)。具体的には、音素データ取得部362によりフレーズを音声化するためのヒーローキャラクターの音素データを音素記憶部40から取得し、取得された音素データおよびフレーズが音声エージェントI/F20に出力され、音声エージェントI/F20によりフレーズの音声化処理(例えば音声合成)が行われる。
続いて、エージェントサーバ2は、音声エージェントI/F20により生成した音声データをクライアント端末1へ送信する(ステップS350)。
そして、クライアント端末1は、エージェントサーバ2から受信した音声データ、すなわち、所定のフレーズをヒーローキャラクターの声色で音声化された音声データを再生する(ステップS352)。これにより、ユーザが所定の場所に移動したことをトリガにクライアント端末1のスピーカーから特定のエージェントキャラクターの声色でその場所に対応するフレーズが再生される。
図26Bは、本実施形態による人物属性や表情に応じた各自動発話処理を示すシーケンス図である。図26Bに示すように、まず、クライアント端末1は、カメラを起動し、撮像画像を取得し(ステップS354)、エージェントサーバ2へ撮像画像を送信する(ステップS356)。このようなカメラの起動、撮像、および送信は、例えばクライアント端末1でエージェントプログラムが起動している際に定期的に行われ得る。カメラは、クライアント端末1がユーザの視線方向等ユーザの周辺を撮像する外向きのカメラ(アウトカメラとも称される)と、クライアント端末1を操作するユーザを撮像する内向きのカメラ(インカメラとも称される)とが想定される。
次に、エージェントサーバ2の自動発話制御部36は、クライアント端末1から送信された撮像画像がインカメラで撮像されたものであるか否かを判断する(ステップS358)。インカメラで撮像されたか否かは、例えば撮像画像に付属するメタデータから判断し得る。
次いで、インカメラである場合(ステップS358/Yes)、撮像画像にはユーザが写っていると判断され、フレーズ検索部364は、情報解析部366による顔画像解析結果に基づいて、顔の表情に対応するフレーズをフレーズDB365から検索する(ステップS360)。例えば上記表1に示したように、ユーザが笑顔の場合に対応するフレーズや効果音、若しくはユーザが怒り顔の場合に対応するフレーズや効果音等が検索される。
一方、インカメラでない場合(ステップS358/No)、すなわちアウトカメラで撮像されたものである場合、撮像画像にはユーザ周辺の人物(例えばユーザと対面する人物)が写っていると判断され、フレーズ検索部364は、情報解析部366による顔画像解析結果に基づいて、対面する人物の属性(年齢、性別、雰囲気等)や表情に対応するフレーズをフレーズDB365から検索する(ステップS362)。例えば上記表1に示したように、対面する相手が女性である場合に対応するフレーズや効果音等が検索される。
次いで、人物属性や表情に応じたフレーズが見つかった(すなわち検索がヒットした)場合(ステップS364/Yes)、自動発話制御部36は、検索したフレーズをユーザ指定の特定エージェントキャラクター、例えばヒーローキャラクターの声色に変換する(ステップS366)。特定エージェントキャラクターへの変換処理は、上記ステップS348で説明した処理と同様である。
続いて、エージェントサーバ2は、音声エージェントI/F20により生成した音声データをクライアント端末1へ送信する(ステップS368)。
そして、クライアント端末1は、エージェントサーバ2から受信した音声データ、すなわち、所定のフレーズをヒーローキャラクターの声色で音声化された音声データを再生する(ステップS370)。これにより、ユーザの表情、または対面する相手の属性や表情をトリガにクライアント端末1のスピーカーから特定のエージェントキャラクターの声色でその時の表情や属性に対応するフレーズが再生される。
図26Cは、本実施形態によるユーザ行動に応じた各自動発話処理を示すシーケンス図である。図26Cに示すように、まず、クライアント端末1は、加速度センサにより加速度センサ情報を取得し(ステップS372)、エージェントサーバ2へ加速度センサ情報を送信する(ステップS374)。加速度センサ情報の送信は、例えばクライアント端末1でエージェントプログラムが起動している際に定期的に行われ得る。
次に、エージェントサーバ2の自動発話制御部36は、クライアント端末1から送信された加速度センサ情報に基づいて情報解析部366により行動認識処理を行い、行動認識結果で示される行動状態に対応するフレーズをフレーズ検索部364によりフレーズDB365を参照して検索する(ステップS376)。例えば上記表1に示しように、走っている状態や寝ている状態に紐付けられたフレーズや効果音が検索される。なお、行動認識処理に用いるセンサデータとしてここでは加速度センサ情報を用いているが、本実施形態は当然これに限定されず、加速度センサの他、ジャイロセンサ、地磁気センサ等、様々なセンサにより検知されたデータを用いてもよい。
次いで、行動状態に応じたフレーズが見つかった(すなわち検索がヒットした)場合(ステップS378/Yes)、自動発話制御部36は、検索したフレーズをユーザ指定の特定エージェントキャラクター、例えばヒーローキャラクターの声色に変換する(ステップS380)。
続いて、エージェントサーバ2は、音声エージェントI/F20により生成した音声データをクライアント端末1へ送信する(ステップS382)。
そして、クライアント端末1は、エージェントサーバ2から受信した音声データ、すなわち、所定のフレーズをヒーローキャラクターの声色で音声化された音声データを再生する(ステップS384)。これにより、ユーザが所定の行動状態になったことをトリガにクライアント端末1のスピーカーから特定のエージェントキャラクターの声色でその時の行動状態に対応するフレーズが再生される。
図26Dは、本実施形態による心理状態に応じた各自動発話処理を示すシーケンス図である。図26Dに示すように、まず、クライアント端末1は、生体センサによりユーザの生体情報を検知し(ステップS386)、エージェントサーバ2へ生体情報を送信する(ステップS388)。生体情報の送信は、例えばクライアント端末1でエージェントプログラムが起動している際に定期的に行われ得る。
次に、エージェントサーバ2の自動発話制御部36は、クライアント端末1から送信された生体情報を情報解析部366により解析し、解析により得られたユーザの心理状態(すなわち感情)に対応するフレーズを、フレーズ検索部364によりフレーズDB365を参照して検索する(ステップS390)。例えば上記表1に示しように、脈拍が速く緊張した状態に紐付けられたフレーズや効果音が検索される。生体センサは、例えば脈拍、心拍、血圧、発汗量、呼吸、脳波、または筋電等を検知する各種センサである。情報解析部366は、このような生体情報に基づいて、ユーザの心理状態、すなわち、喜び、怒り、悲しみ、緊張、興奮等の感情を解析する。
次いで、心理状態に応じたフレーズが見つかった(すなわち検索がヒットした)場合(ステップS392/Yes)、自動発話制御部36は、検索したフレーズをユーザ指定の特定エージェントキャラクター、例えばヒーローキャラクターの声色に変換する(ステップS394)。
続いて、エージェントサーバ2は、音声エージェントI/F20により生成した音声データをクライアント端末1へ送信する(ステップS396)。
そして、クライアント端末1は、エージェントサーバ2から受信した音声データ、すなわち、所定のフレーズをヒーローキャラクターの声色で音声化された音声データを再生する(ステップS398)。これにより、ユーザの心理状態をトリガにクライアント端末1のスピーカーから特定のエージェントキャラクターの声色でその時の心理状態に対応するフレーズが再生される。
以上、ユーザ状況に応じたエージェントの自動発話制御処理について説明した。なお、本実施形態による自動発話制御処理は上述した例に限定されず、例えば場所、表情、行動、感情、ユーザ発話、日時等のうち少なくとも1以上のユーザ状況に対応するフレーズを検索してもよいし、複数のユーザ状況のうち例えば所定の順序(優先度の高い順等)にフレーズ検索を行ってもよい。
(4−2−4.シナリオ取得処理)
続いて、本実施形態によるシナリオモードについて説明する。本実施形態による対話処理部30aは、上述したようなユーザ音声のエージェントキャラクター音声への変換、およびユーザ状況に応じたエージェントキャラクターの自動発話の他、さらにユーザがエージェントキャラクターに成りきってシナリオ(物語)へ参加する体験を提供することができる。このような体験を提供する際に用いられるシナリオプログラムの取得について、以下図27〜図29を参照して説明する。
図27は、本実施形態によるシナリオ取得処理を示すシーケンス図である。図27に示すように、まず、クライアント端末1の表示部に表示されたメニュー画面から「シナリオ一覧」が選択されると(ステップS410)、クライアント端末1は、エージェントサーバ2に対してシナリオ一覧の取得要求を行う(ステップS413)。ここでは、例えばユーザが購入したエージェントキャラクター「ヒーローキャラクター『パワフルマン』」のシナリオ一覧の取得要求が行われる。
次いで、エージェントサーバ2のシナリオ管理部37は、ヒーローキャラクターに紐づくシナリオの一覧をシナリオDB374から取得し(ステップS416)、クライアント端末1へ音声エージェントI/F20からネットワークを介して送信する(ステップS419)。
次に、クライアント端末1は、エージェントサーバ2から受信したシナリオ一覧を表示部に表示し(ステップS422)、ユーザによるシナリオの選択を受け付ける(ステップS425)。
次いで、クライアント端末1は、ユーザが選択したシナリオを示す選択情報をエージェントサーバ2へ送信する(ステップS428)。
次に、エージェントサーバ2のシナリオ管理部37は、ユーザにより選択されたシナリオが購入済みであるか否かを判断し(ステップS431)、未購入の場合(ステップS431/Yes)、クライアント端末1に対して当該シナリオの購入画面の表示指示を行う(ステップS434)。
次いで、クライアント端末1は、シナリオ購入画面を表示する(ステップS437)。ユーザは、例えばシナリオ購入画面に表示された購入ボタンをタップしてシナリオの購入を決定する。
続いて、シナリオの購入が決定された場合(ステップS440/Yes)、クライアント端末1は、エージェントサーバ2に対してシナリオの購入依頼を行う(ステップS443)。
そして、エージェントサーバ2は、シナリオ購入処理を行う(ステップS446)。シナリオ購入処理は、例えばクレジットカードや電子マネーを用いた決済処理(アプリケーション内の課金処理)により行われ得る。また、ユーザによるシナリオの購入は、ユーザ管理部35によりユーザ情報DB352にユーザ情報として登録される。
なお、シナリオ購入画面が表示された後、購入を見合わせる場合(ステップS440/No)、例えばユーザは戻るボタン等をタップしてメニュー一覧画面に戻り、他のシナリオの取得を検討してもよい。
ここで、図28および図29に、シナリオ購入までのクライアント端末1における画面表示例を示す。例えば、図28左には、ユーザがあるヒーローキャラクターを購入した際のメイン画面110を示す。ユーザがメイン画面110に表示されているメニューボタン111を選択すると、図28中央に示すように、メニュー画面112aが表示される。そして、メニュー画面112aに表示されているメニューに含まれる「シナリオ一覧」の項目を選択すると、図28右に示すように、シナリオ一覧画面113が表示される。シナリオ一覧画面113には、参加可能なシナリオが並び、ユーザは購入したいシナリオを選択する。なお参加期間が既に終了しているシナリオや売り切れのシナリオは、グレーアウト表示され選択できない。例えば画面113では、選択可能なシナリオとしてシナリオ113a、113bが表示され、選択できないシナリオとしてシナリオ113cがグレーアウト表示されている。
次いで、ユーザが例えばシナリオ113a「XX都市でバトル」を選択した場合、図29の左に示すような購入画面114が表示される。購入画面114には、シナリオのタイトル、あらすじ、購入金額、購入ボタン114a、シナリオへの参加場所および期間が表示され、ユーザはシナリオの内容や金額、参加場所、期間等を確認する。シナリオには例えば複数のイベントが用意されていて、それらを全てクリアすることでシナリオをクリアすることが目標となる。「参加場所」とは、イベントが発動するトリガとなる場所であって、その場所に居なくてもシナリオに参加することは可能であるが、発動するイベントが少なく、シナリオをクリアすることが困難となる。
そして、ユーザが購入ボタン114aを選択すると、図29右に示す購入決定画面115が表示され、「はい」ボタンを選択すると購入処理(決算処理)がエージェントサーバ2により行われ、シナリオ購入が完了する。
続いて、シナリオへの参加登録処理について図30を参照して説明する。図30は、本実施形態によるシナリオ参加登録処理を示すシーケンス図である。なお図30に示す処理は、上記ステップS431で、ユーザに選択されたシナリオが購入済みの場合に引き続き行われる処理である。
エージェントサーバ2のシナリオ管理部37は、ユーザに選択されたシナリオにおいて、ユーザが購入した特定のエージェントキャラクター、例えばヒーローキャラクターが未登録のシナリオを検索する(ステップS450)。ここで、本実施形態によるシナリオ構成について図31を参照して説明する。
図31は、本実施形態によるシナリオ構成について説明する図である。本実施形態によるシナリオには1以上のキャラクターが登場し、1つのキャラクターには一人のユーザが登録される。しかしながら、複数のユーザが同じキャラクターのエージェントプログラムを購入している状態も想定されるため、図31に示すように、シナリオ毎に複数の参加グループを設定し、参加グループ毎にユーザ登録を行う。例えば、シナリオ#1には、参加グループ#1-1、#1-2、#1-3…と複数の参加グループが紐付けされ、参加グループ内においてキャラクターが重複しないようユーザの振り分けが行われる。具体的には、現在、シナリオ#1の参加グループ#1-1には「キャラクターA」と「キャラクターB」にそれぞれ成りきるユーザの登録が行われているが、「キャラクターC」は空位の状態である。また、同シナリオの参加グループ#1-2では、「キャラクターA」が空位の状態である。また、同シナリオの参加グループ#1-3では、「キャラクターA」、「キャラクターB」、「キャラクターC」が空位の状態である。シナリオ管理部37は、ユーザがシナリオ#1の選択を行った際に、同シナリオの参加グループにおけるユーザ登録状態を把握し、ユーザが購入したキャラクターが未登録(空位)の参加グループを検索する。例えばユーザのキャラクターが「キャラクターA」の場合、参加グループ#1-2を検索し、「キャラクターB」の場合、参加グループ#1-3を検索し、「キャラクターC」の場合、参加グループ#1-1を検索する。なお、ユーザが同キャラクターで異なるシナリオ(例えばシナリオ#1とシナリオ#2)に同時に参加登録することは可能である。
次いで、シナリオ管理部37は、検索した参加グループのシナリオ情報をクライアント端末1に送信する(ステップS453)。
次に、クライアント端末1は、受信したシナリオ情報を表示部に表示する(ステップS456)。シナリオ情報の表示画面には、シナリオのあらすじや参加場所、日時の詳細と共に、参加ボタンが表示されている。ここで、図32に本実施形態によるシナリオ参加画面の一例を示す。図32左に示す画面116は、シナリオ一覧画面113(図28参照)で選択したシナリオ、若しくはシナリオの購入決定画面115(図29参照)で購入を決定し購入処理が完了したシナリオへ参加登録するための操作を受け付ける画面である。画面116には、例えば選択されたシナリオのタイトル、あらすじ、シナリオ購入済みの表示、参加場所、参加期間情報、および参加ボタン116aが表示されている。ユーザは参加ボタン116aを選択することで本シナリオへの参加意思を入力することができる。
次いで、参加ボタンが選択されユーザの参加意思が入力された場合(ステップS459/Yes)、クライアント端末1はエージェントサーバ2に対して本シナリオ(の参加グループ)への参加依頼を行う(ステップS462)。
次に、エージェントサーバ2のシナリオ管理部37は、クライアント端末1からの要求に応じて、ユーザのシナリオへの参加登録処理を行う(ステップS465)。各シナリオの参加グループに登場するキャラクーへのユーザ登録の情報は、シナリオDB374(図18参照)に登録されていてもよいし、ユーザ情報DB352(図16参照)に登録されていてもよい。
次に、シナリオ管理部37は、ユーザが参加登録しているシナリオが開始時刻前である場合(ステップS468/Yes)、開始時刻をユーザへ通知し(ステップS471)、クライアント端末1ではシナリオの開始時刻を表示画面等を介してユーザに通知する(ステップS474)。表示画面例としては、例えば図32の右上に示す画面117が挙げられる。画面17には、シナリオタイトルと共に、参加予約済みである旨、およびシナリオ開催開始時刻までのカウントダウンが表示されている。
続いて、シナリオの開催開始時刻になった場合(ステップS477/Yes)、若しくは参加登録したシナリオが既に開催開始時刻後であって(ステップS468/No)かつシナリオ開催中の場合(ステップS469/Yes)、シナリオ管理部37は、シナリオの開催開始通知をユーザに通知する(ステップS480)。例えば、参加登録したシナリオが既に開始時刻後である場合(すなわちシナリオ開催中の場合)、図32に示すように、参加ボタン116aをタップした際に、図32右下に示す画面118のように、シナリオタイトルと共に「参加中!」の旨が表示され、直ちにシナリオが開始される。また、既に参加登録しているシナリオの開催開始時刻に達した際、例えば図33または図34に示すような開催開始通知が行われる。なお、シナリオの開催期間が終了している場合(ステップS469/No)、シナリオへの参加はできないため参加登録処理は終了する。
図33は、本実施形態によるエージェントAppがフォアグラウンドで起動中の場合におけるシナリオ開催開始通例例を示す図である。図33左に示すように、エージェントAppの画面120(例えばメイン画面)が表示されている際に、シナリオの開催開始時刻に達すると、図33右に示すように、エージェントAppの画面120上に、シナリオが開始されることを示すポップアップ表示120aが表示される。ユーザが通知内容を確認の上、「OK」ボタンを押すと、ポップアップ表示120aが閉じる。
図34は、本実施形態によるエージェントAppが非起動の場合におけるシナリオ開催開始通例例を示す図である。図34左に示すように、エージェントAppが非起動の場合(例えばホーム画面122が表示されている場合)に、シナリオの開催開始時刻に達すると、ホーム画面122上にシナリオが開始されることを示すポップアップ表示122a(Push通知)が表示される。ユーザが通知内容を確認の上、「開く」ボタンを押すと、エージェントAppが起動し、図34右に示すようにエージェントAppのメイン画面123が表示される。
次いで、クライアント端末1は、シナリオが開始されることを表示画面等を介してユーザに通知する(ステップS483)。
そして、シナリオ管理部37は、シナリオ実行処理を開始する(ステップS486)。
例えば「XX都市でバトル」といったシナリオが開始された場合、例えばクライアント端末1の表示部には、エージェントキャラクター(例えばヒーローキャラクター)の画像が表示され、さらにナレーションとヒーローキャラクターの音声がイヤホン等から以下のように出力される。
・シナリオ音声
ナレーション「2015年10月12日、舞台はXX都市。繰り広げられる激しいバトルに戦士たちは疲弊していた…」
ヒーローキャラ「XX都市が俺を待ってるぜ!」
ナレーション「そのXX都市で8人の敵を倒すことが使命である。」
次いで、シナリオが進行している通常時は、クライアント端末1にヒーローキャラクターが表示され、ユーザの状況に応じてヒーローキャラクターが自動発話したり、対応する効果音が流れたりする。状況に応じた自動発話は、図26A〜図26Dを参照して説明した処理と同様である。
・自動発話音声
ユーザ状況:位置情報の解析により、ユーザがXX都市に移動したことを認識。
ヒーローキャラ「ここがXX都市か。敵はどこだ!?」
続いて、ある条件により、事前にシナリオに用意されたイベントが発生する。イベントが発生した場合は、ヒーローキャラクターまたはナレーションによりイベントが発生した旨と、イベントクリアのために必要なアクションが通知される。ユーザがそのアクションを正しく行うことで、イベントクリアとなる。このような条件に応じたイベント発生といったシナリオ実行処理について、以下詳細に説明する。
(4−2−5.シナリオ実行処理)
本実施形態によるシナリオ管理部37は、シナリオ実行部372により、ユーザの発話や移動場所、アクション(行動)等をトリガとしてシナリオイベント(本実施形態では「イベント」と称される)を発生させ、イベントクリアのための所定のアクションをユーザに指示する等の処理を行う。以下、図35〜図42を参照して具体的に説明する。
・ユーザ音声をトリガとしたイベントの発生
図35は、本実施形態によるユーザ音声をトリガとしたイベントの実行処理を示すシーケンス図である。図35に示すように、まず、クライアント端末1は、マイクにより周辺の音データを収音し(ステップS490)、収音した音データをエージェントサーバ2へ送信する(ステップS493)。
次に、エージェントサーバ2のシナリオ管理部37は、情報解析部373により、音データの解析を行い、ユーザ音声の抽出を行う。ユーザ音声ができた場合、シナリオ実行部372は、ユーザが参加中のシナリオからユーザの発話に対応するイベントを検索する(ステップS496)。イベントの検索は、シナリオDB374に格納されている、ユーザが参加中のシナリオのシナリオデータを参照して行う。上述したように、各シナリオには、1以上のイベントが含まれ、イベント発生のトリガ(条件)とイベント内容とイベントクリアのためのアクションとが対応付けられたデータがシナリオデータとしてシナリオDB374に格納されている。シナリオデータの具体例は、上記表2に示した通りである。シナリオ管理部37は、表2に示したようなイベントデータを参照して、ユーザ音声(すなわち発話内容)をトリガ(発生条件)とするイベントを検索する。
次いで、シナリオ実行部372は、検索したイベントの情報をシナリオデータから抽出し(ステップS499)、対応する指定のアクション(イベントクリアのための指定のアクション)に関する情報をクライアント端末1へ送信する(ステップS502)。なお、対応するイベントが検索できなかった場合、シナリオ実行部372は特にクライアント端末1への情報送信は行わないようにしてもよいし、イベント発生のためのヒント(トリガの示唆)を出すようにしてもよい。また、クライアント端末1による音データの収音およびエージェントサーバ2への送信は、シナリオ開催期間中に定期的に行われ得る。
次に、クライアント端末1は、イベントクリアのための指定のアクションを行うよう、表示出力や音声出力等によりユーザに指示する(ステップS505)。ここで、図36を参照してイベント発生時における表示画面の具体例について説明する。
図36は、本実施形態によるイベント発生時における表示画面例を示す図である。図36左に示すように、例えばユーザのある発話音声W6が上述した音声変換機能によりエージェントキャラクターの音声W7に変換されると共に、当該発話音声W6が特定の発話であって対応するイベントが検索された場合、当該イベントをクリアするためのアクションが指示される。例えば図36右に示すように、「上にジャンプするんだ!今すぐ!」といったエージェントの発話音声W8がイヤホン等から出力されたり、「ジャンプだ!」といったテキストとエージェントの画像を含む画面124がクライアント端末1の表示部に表示されたりする。これにより、ユーザは、イベントに対応する指定のアクションを実行することができる。
続いて、クライアント端末1は、ユーザの行動等を検知する各センサからの出力結果を取得し(ステップS508)、各センサの出力結果をエージェントサーバ2へ送信する(ステップS511)。ユーザの行動等を検知する各センサとは、例えば加速度センサ、ジャイロセンサ、地磁気センサ、カメラ等である。
次いで、エージェントサーバ2は、情報解析部366により、各センサからの出力結果を解析し(例えば行動認識の解析)、解析結果に基づいてシナリオ実行部372により指定のアクションが行われたか否かを判断する(ステップS514)。
次に、指定のアクションが行われたと判断された場合(ステップS514/Yes)、シナリオ実行部372は、対応するイベントがクリアされたと判断し(ステップS517)、クライアント端末1に対して、イベントをクリアした旨を送信する(ステップS520)。また、シナリオ実行部372は、イベントクリアの情報をシナリオDB374に登録(更新)する。
そして、クライアント端末1は、イベントをクリアした旨を表示出力や音声出力等によりユーザに通知する(ステップS523)。
このように、本実施形態では、ユーザの特定の発話をトリガとして所定のイベントを発生させ、所定のアクションをユーザに行うよう促し、アクションが検知された場合に当該イベントをクリアしたとしてシナリオを進行させることができる。
・移動場所(ユーザの位置)をトリガとしたイベントの発生
図37は、本実施形態によるユーザの位置をトリガとしたイベントの実行処理を示すシーケンス図である。図37に示すように、まず、クライアント端末1は、GPS等により現在位置情報を取得し(ステップS530)、取得した現在位置情報をエージェントサーバ2へ送信する(ステップS533)。
次に、エージェントサーバ2のシナリオ管理部37は、情報解析部373により、位置情報の解析を行い、位置情報で示される場所を特定する。例えば情報解析部373は、ランドマーク情報が紐付けられた地図データを参照して、ユーザが現在居る場所の名称(地名、都市名、建物名、公園名等)や種別(駅、公園、海辺、郵便局等)を取得する。場所が特定できた場合、シナリオ実行部372は、ユーザが参加中のシナリオから特定した場所に対応するイベントを検索する(ステップS536)。イベントの検索は、シナリオDB374に格納されている、ユーザが参加中のシナリオのシナリオデータを参照して行う。シナリオ管理部37は、上記表2に示したようなイベントデータを参照して、ユーザの現在居る場所(すなわち移動場所)をトリガとするイベントを検索する。
次いで、シナリオ実行部372は、検索したイベントの情報をシナリオデータから抽出し(ステップS539)、対応する指定のアクション(イベントクリアのための指定のアクション)に関する情報をクライアント端末1へ送信する(ステップS542)。なお、クライアント端末1による現在位置情報の取得およびエージェントサーバ2への送信は、シナリオ開催期間中に定期的に行われ得る。
次に、クライアント端末1は、イベントクリアのための指定のアクションを行うよう、表示出力や音声出力等によりユーザに指示する(ステップS545)。
続いて、クライアント端末1は、ユーザの行動等を検知する各センサからの出力結果を取得し(ステップS548)、各センサの出力結果をエージェントサーバ2へ送信する(ステップS551)。
次いで、エージェントサーバ2は、情報解析部366により、各センサからの出力結果を解析し(例えば行動認識の解析)、解析結果に基づいてシナリオ実行部372により指定のアクションが行われたか否かを判断する(ステップS554)。
次に、指定のアクションが行われたと判断された場合(ステップS554/Yes)、シナリオ実行部372は、対応するイベントがクリアされたと判断し(ステップS557)、クライアント端末1に対して、イベントをクリアした旨を送信する(ステップS560)。また、シナリオ実行部372は、イベントクリアの情報をシナリオDB374に登録(更新)する。
そして、クライアント端末1は、イベントをクリアした旨を表示出力や音声出力等によりユーザに通知する(ステップS563)。
このように、本実施形態では、ユーザの位置をトリガとして所定のイベントを発生させ、所定のアクションをユーザに行うよう促し、アクションが検知された場合に当該イベントをクリアしたとしてシナリオを進行させることができる。
・複数ユーザが出会うこと(複数ユーザの位置)をトリガとしたイベントの発生 図38は、本実施形態による複数ユーザの位置をトリガとしたイベントの実行処理を示すシーケンス図である。図38に示すように、まず、クライアント端末1は、GPS等により現在位置情報を取得し(ステップS570)、取得した現在位置情報をエージェントサーバ2へ送信する(ステップS572)。
次いで、エージェントサーバ2のシナリオ管理部37は、同じシナリオに参加している他のキャラクターをエージェントとしている他ユーザがユーザの近くにいるか否かを判断する(ステップS573)。シナリオに参加している各ユーザの位置情報は、定期的にクライアント端末1から送信され、エージェントサーバ2側で管理されている。また、シナリオ管理部37は、ユーザが特定の場所に移動した際に近辺に居る他のキャラクターのユーザを検索するようにしてもよい。また、シナリオ管理部37は、同じシナリオに参加している不特定の他のキャラクターのユーザを検索するようにしてもよい。
次に、近くに他のキャラクターをエージェントとする他ユーザが居ると判断された場合(ステップS573/Yes)、シナリオ管理部37は、対応するイベントを検索する(ステップS576)。シナリオ管理部37は、例えば上記表2に示したようなイベントデータを参照して、「同じシナリオに参加する他のキャラクターが近くに居る」場合をトリガとするイベント(例えば、「オーバーレイ表示」)を検索する。
次いで、シナリオ実行部372は、検索したイベントの情報をシナリオデータから抽出し(ステップS579)、イベントの実行処理を行う。ここでは、例えば「オーバーレイ表示」というイベントである場合、シナリオ実行部372は、近くに居る人の顔画像の取得要求をクライアント端末1に対して行う(ステップS582)。
次に、クライアント端末1は、エージェントサーバ2からの要求に応じて、カメラを起動し、ユーザに対して近くの人にカメラをかざすよう指示する(ステップS585)。ここでは、カメラを起動して近くの人にかざす行動が、イベントクリアのための指定のアクションとなる。
続いて、クライアント端末1は、近くの人の顔をカメラにより撮像して撮像画像を取得し(ステップS588)、撮像画像をエージェントサーバ2に送信する(ステップS591)。
次いで、エージェントサーバ2のシナリオ管理部37は、情報解析部366により、撮像画像を解析し、ユーザの近辺に居る人物の顔認識を行う(ステップS594)。さらに、シナリオ実行部372は、上記ステップS573で位置情報に基づいてユーザの近辺に居ると判断された他ユーザの顔情報と、撮像画像に基づく顔認識結果とを参照して、近辺に居る人物の顔認証を行ってもよい。
次に、近辺に居る人物の顔認識ができた場合(ステップS594/Yes)、シナリオ実行部372は、上記ステップS573で判断した近辺に居る他のキャラクターの情報をシナリオDB374から取得し(ステップS597)、クライアント端末1へ送信する(ステップS600)。キャラクター情報には、キャラクターの画像が含まれる。
続いて、クライアント端末1は、ユーザが近くの人物(相手ユーザ)にクライアント端末1のカメラをかざしてスルー画像が表示部に表示されている際に、エージェントサーバ2から送信されたキャラクター情報に基づいて、相手が成りきっているエージェントキャラクターの画像をスルー画像上で相手にオーバーレイ表示する(ステップS603)。これにより、ユーザは、現実空間で同シナリオに登場する他のキャラクターと出会うことができる。なお、エージェントサーバ2は、相手のキャラクター画像を相手のスルー画像に重畳表示するのみならず、例えば相手の発話音声を相手のキャラクターの音声に変換してユーザのイヤホン等から再生するようにしてもよい。また、相手ユーザのクライアント端末1においても同様にユーザのスルー画像にユーザのキャラクターを重畳表示させたり、ユーザの音声をユーザのキャラクターの音声に変換して再生したりするようにしてもよい。これにより、両ユーザは、同シナリオに登場するキャラクター同士として出会い、会話することができる。
ここで、図39Aおよび図39Bを参照して本実施形態による他のキャラクターのオーバーレイ表示の具体例について説明する。図39Aは、本実施形態によるカメラをかざす行動をユーザに促す表示画面例を示す図である。図示された画面125は、上記ステップS585でクライアント端末1の表示部に表示される誘導画面であって、エージェントキャラクターの画像およびカメラ起動ボタン125aが含まれる。また、エージェントキャラクターの声色で、「カメラを起動して近くの人にかざしてみるんだ!」といった発話音声W9が再生されてもよい。これによりユーザは、エージェントキャラクターの誘導に従ってカメラ起動ボタン125aをタップしてカメラを起動し、近くの人物にかざすといったイベントクリアのための指定のアクションを取ることができる。
図39Bは、本実施形態による他のキャラクターのオーバーレイ表示について説明する図である。図39Bに示すように、ユーザがクライアント端末1を近くにいる人物にかざすと、クライアント端末1の表示部に、クライアント端末1のカメラで撮像したスルー画像が表示され、さらにスルー画像に写る相手ユーザに相手のキャラクター画像がリアルタイムで重畳された画像126が表示される。この際、クライアント端末1は、エージェントサーバ2により相手ユーザの発話音声が相手ユーザのキャラクター音声に変換された音声や、状況に応じて自動発話される相手ユーザのキャラクターの所定フレーズ音声W10をイヤホン等から再生してもよい。
次いで、シナリオ実行部372は、対応するイベントがクリアされたと判断し(ステップS606)、クライアント端末1に対して、イベントをクリアした旨を送信する(ステップS609)。また、シナリオ実行部372は、イベントクリアの情報をシナリオDB374に登録(更新)する。
そして、クライアント端末1は、イベントをクリアした旨を表示出力や音声出力等によりユーザに通知する(ステップS612)。
このように、本実施形態では、複数ユーザの位置に基づいて、同じシナリオに参加するキャラクター同士が現実空間で出会うことをトリガとして所定のイベントを発生させることができる。
・各センサからの出力結果をトリガとしたイベントの発生
図40は、本実施形態による各センサからの出力結果をトリガとしたイベントの実行処理を示すシーケンス図である。図40に示すように、まず、クライアント端末1は、各センサからの出力結果を取得し(ステップS620)、エージェントサーバ2へ送信する(ステップS623)。各センサとは、例えば加速度センサ、ジャイロセンサ、地磁気センサ、カメラ等であってクライアント端末1や、クライアント端末1と通信接続するウェアラブル端末(例えばスマートバンド、スマートウォッチ、スマートアイグラス)等に設けられ、ユーザの行動を認識する。
次に、エージェントサーバ2のシナリオ管理部37は、情報解析部373により、各センサの出力結果の解析を行い、ユーザの行動を特定する。ユーザの行動(寝ている、起きた、走った、歩いた、電車/自転車/自動車に乗った等)が特定できた場合、シナリオ実行部372は、ユーザが参加中のシナリオからユーザの行動に対応するイベントを検索する(ステップS626)。イベントの検索は、シナリオDB374に格納されている、ユーザが参加中のシナリオのシナリオデータを参照して行う。シナリオ管理部37は、上記表2に示したようなイベントデータを参照して、ユーザの行動をトリガとするイベントを検索する。
次いで、シナリオ実行部372は、検索したイベントの情報をシナリオデータから抽出し(ステップS629)、対応する指定のアクション(イベントクリアのための指定のアクション)に関する情報をクライアント端末1へ送信する(ステップS632)。なお、クライアント端末1による各センサからの出力結果の取得およびエージェントサーバ2への送信は、シナリオ開催期間中に定期的に行われ得る。
次に、クライアント端末1は、イベントクリアのための指定のアクションを行うよう、表示出力や音声出力等によりユーザに指示する(ステップS635)。
続いて、クライアント端末1は、ユーザの行動等を検知する各センサからの出力結果を取得し(ステップS638)、各センサの出力結果をエージェントサーバ2へ送信する(ステップS641)。
次いで、エージェントサーバ2は、情報解析部366により、各センサからの出力結果を解析し(例えば行動認識の解析)、解析結果に基づいてシナリオ実行部372により指定のアクションが行われたか否かを判断する(ステップS644)。
次に、指定のアクションが行われたと判断された場合(ステップS644/Yes)、シナリオ実行部372は、対応するイベントがクリアされたと判断し(ステップS647)、クライアント端末1に対して、イベントをクリアした旨を送信する(ステップS650)。また、シナリオ実行部372は、イベントクリアの情報をシナリオDB374に登録(更新)する。
そして、クライアント端末1は、イベントをクリアした旨を表示出力や音声出力等によりユーザに通知する(ステップS653)。
このように、本実施形態では、ユーザの行動をトリガとして所定のイベントを発生させ、所定のアクションをユーザに行うよう促し、アクションが検知された場合に当該イベントをクリアしたとしてシナリオを進行させることができる。
以上、本実施形態によるシナリオイベントの実行処理について具体的に説明した。なお、本実施形態によるシナリオイベントの発生トリガは、上述した発話(ユーザ音声)、移動場所(位置情報)、複数ユーザが出会うこと(複数ユーザの位置情報)、各センサの出力結果(ユーザ行動)、若しくはユーザの表情(撮像画像)、日時等のうち、少なくともいずれか1以上を含む条件としてもよい。例えば、ある特定の場所で、ある発話を行うことを条件としたり、ある特定の時刻にある場所に移動することを条件としてもよい。また、上述したトリガのうち、所定の順(予め設定された順序、優先度の高い順序等)にイベント発生有無を判断してもよい。
また、上述したイベントは、エージェントAppが非起動時(バッググラウンドで実行中)にも発生し得る。イベント発生時は、例えばプッシュ通知でその旨が知らされ(「エージェントApp通知 イベントが発生!」等)、エージェントAppを起動することでその内容を確認することができる。
・シナリオクリア
1つのシナリオには例えば複数のイベントが含まれ、シナリオ開催期間中に全てのイベントをクリアすることが求められる。以下、図41〜図42を参照して本実施形態によるシナリオクリアの一例について説明する。
図41は、本実施形態によるシナリオクリアの判断処理を示すシーケンス図である。図41に示すように、まず、エージェントサーバ2のシナリオ管理部37は、ユーザが参加中のシナリオにおける全てのイベントがクリアされたか否かを判断する(ステップS660)。
次いで、全てのイベントがクリアされたと判断した場合(ステップS660/Yes)、シナリオ実行部372は、当該シナリオがクリアされたと判断し(ステップS663)、クライアント端末1に対して、シナリオをクリアした旨を送信する(ステップS666)。また、シナリオ実行部372は、シナリオクリアの情報をシナリオDB374に登録(更新)する。
そして、クライアント端末1は、シナリオをクリアした旨を表示出力や音声出力等によりユーザに通知する(ステップS669)。ここで、図42に、本実施形態によるシナリオクリア時の通知画面例を示す。
図示された例では、画面128に、「シナリオ#1 『XX都市でバトル』をクリアしました!!」といった通知と、OKボタンが表示される。これによりユーザは、参加中のシナリオ#1の全てのイベントをクリアしたことが分かる。また、OKボタンをタップすると当該通知の表示画面が閉じられ、例えばエージェントAppのメイン画面に戻る。
<<5.まとめ>>
上述したように、本開示の実施形態による通信制御システムでは、エージェントを通してエージェントのキャラクターをユーザ自身が体験できるようにすることでエージェントシステムの娯楽性をさらに高めることが可能となる。
以上、添付図面を参照しながら本開示の好適な実施形態について詳細に説明したが、本技術はかかる例に限定されない。本開示の技術分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本開示の技術的範囲に属するものと了解される。
例えば、上述したクライアント端末1、またはエージェントサーバ2に内蔵されるCPU、ROM、およびRAM等のハードウェアに、クライアント端末1、またはエージェントサーバ2の機能を発揮させるためのコンピュータプログラムも作成可能である。また、当該コンピュータプログラムを記憶させたコンピュータ読み取り可能な記憶媒体も提供される。
また、上述した実施形態では、クライアント端末1とインターネットを介して接続するエージェントサーバ2で各種機能が実現される構成を示したが、本実施形態はこれに限定されない。例えば、図3、図15〜図18に示すエージェントサーバ2の各構成のうち少なくとも一部が、クライアント端末1(スマートフォンやウェアラブル端末等)にあってもよい。また、図3、図15〜図18に示すエージェントサーバ2の構成全てがクライアント端末1に設けられ、クライアント端末1で全ての処理を行えるようにしてもよい。
また、本明細書に記載された効果は、あくまで説明的または例示的なものであって限定的ではない。つまり、本開示に係る技術は、上記の効果とともに、または上記の効果に代えて、本明細書の記載から当業者には明らかな他の効果を奏しうる。
なお、本技術は以下のような構成も取ることができる。
(1)
複数種類のキャラクターに対応する音素データベースと発話フレーズデータベースを記憶するエージェント記憶部と、
ユーザのクライアント端末を介して特定のキャラクターを選択する選択信号を受信すると共に、当該特定のキャラクターの前記発話フレーズデータベースに応じた発話フレーズを送信する通信部と、
前記通信部を介して受信した前記ユーザのメッセージに基づいて、前記特定のキャラクターに対応する前記音素データベースを用いて前記特定のキャラクターの音声に変換した変換メッセージを生成し;
さらに前記ユーザのメッセージに対応する前記特定のキャラクターの発話フレーズを、前記発話フレーズデータベースを用いて生成し;
前記生成した変換メッセージおよび発話フレーズを前記クライアント端末に返送するよう制御する制御部と、
を備える、情報処理システム。
(2)
前記制御部は、前記通信部を介して受信した前記ユーザのコンテキストと、前記発話フレーズデータベースに基づいて、前記ユーザのメッセージに対応する発話フレーズを生成する、前記(1)に記載の情報処理システム。
(3)
前記ユーザのコンテキストは、前記ユーザの位置、顔認識、加速度情報、または生体センサ情報の少なくともいずれかである、前記(2)に記載の情報処理システム。
(4)
前記ユーザのメッセージは、ユーザの発話音声または当該発話音声をテキスト化したものである、前記(2)または(3)に記載の情報処理システム。
(5)
前記情報処理システムは、前記ユーザがキャラクターとして参加可能な複数のシナリオを記憶するシナリオ記憶部をさらに備え、
前記制御部は;
前記通信部を介して受信した前記ユーザからのシナリオ選択信号に応じて、前記シナリオ記憶部に記憶されるシナリオを選択し;
前記通信部を介して受信した前記ユーザのコンテキストが、前記選択したシナリオに記述されているイベント発生条件に一致すると、所定のイベントの発生を前記ユーザに通知するよう制御する、前記(1)〜(4)のいずれか1項に記載の情報処理システム。
(6)
前記所定のイベント発生時に前記ユーザに通知される内容には、特定のアクションを示す情報が含まれ、
前記制御部は、前記通信部を介して新たに受信した前記ユーザのコンテキストに基づいて、前記特定のアクションが実行された否かを判定し、実行されたと判定すると、イベントクリアを示す通知を前記ユーザに送信するよう制御する、前記(5)に記載の情報処理システム。
(7)
前記イベント発生条件の判断に用いられる前記ユーザのコンテキストは、前記ユーザの位置、発話、加速度情報、または生体センサ情報の少なくともいずれかである、前記(5)または(6)に記載の情報処理システム。
(8)
前記制御部は、前記選択されたシナリオに参加している各ユーザのクライアント端末の位置を示す各位置情報を前記通信部により受信し、前記ユーザの周辺に同一の前記シナリオに参加する他のユーザが存在すると判断した場合、前記通信部を介して前記ユーザにイベント発生の通知を行うよう制御する、前記(5)〜(7)のいずれか1項に記載の情報処理システム。
(9)
前記制御部は、前記通信部を介して受信した前記クライアント端末の撮像部により撮像された撮像画像に人物の顔を認識すると、当該顔に重畳表示するための前記他のユーザのキャラクターの画像を前記クライアント端末に送信するよう制御する、前記(8)に記載の情報処理システム。
(10)
前記制御部は、前記通信部を介して受信した前記クライアント端末の収音部により収音された音声から他のユーザの発話音声を認識すると、当該発話音声を前記他のユーザのキャラクターの音声に変換した変換メッセージと、前記発話フレーズデータベースに基づく対応するフレーズを生成し、前記クライアント端末に送信するよう制御する、前記(8)または(9)に記載の情報処理システム。
(11)
プロセッサが、
複数種類のキャラクターに対応する音素データベースと発話フレーズデータベースをエージェント記憶部に記憶することと、
ユーザのクライアント端末を介して特定のキャラクターを選択する選択信号を受信すると共に、当該特定のキャラクターの前記発話フレーズデータベースに応じた発話フレーズを通信部により送信することと、
前記通信部を介して受信した前記ユーザのメッセージに基づいて、前記特定のキャラクターに対応する前記音素データベースを用いて前記特定のキャラクターの音声に変換した変換メッセージを生成し;
さらに前記ユーザのメッセージに対応する前記特定のキャラクターの発話フレーズを、前記発話フレーズデータベースを用いて生成し;
前記生成した変換メッセージおよび発話フレーズを前記クライアント端末に返送するよう制御部により制御することと、
を含む、情報処理方法。