(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-14
(45)【発行日】2024-02-22
(54)【発明の名称】情報処理装置、及びプログラム
(51)【国際特許分類】
G06F 3/01 20060101AFI20240215BHJP
G10L 13/00 20060101ALI20240215BHJP
G06F 3/16 20060101ALI20240215BHJP
G06F 16/90 20190101ALI20240215BHJP
【FI】
G06F3/01 510
G10L13/00 100M
G06F3/16 650
G06F3/16 690
G06F3/16 530
G06F16/90 100
(21)【出願番号】P 2020009102
(22)【出願日】2020-01-23
【審査請求日】2022-11-15
(73)【特許権者】
【識別番号】500033117
【氏名又は名称】株式会社MIXI
(74)【代理人】
【識別番号】100122275
【氏名又は名称】竹居 信利
(72)【発明者】
【氏名】長岡 輝
(72)【発明者】
【氏名】信田 春満
(72)【発明者】
【氏名】前澤 敏之
【審査官】木内 康裕
(56)【参考文献】
【文献】特開2019-020775(JP,A)
【文献】特開2018-185362(JP,A)
【文献】国際公開第2019/187590(WO,A1)
【文献】国際公開第2018/066258(WO,A1)
【文献】国際公開第2018/142686(WO,A1)
【文献】特開2010-020531(JP,A)
【文献】特開2018-185771(JP,A)
【文献】国際公開第2019/098038(WO,A1)
【文献】米国特許出願公開第2019/0163961(US,A1)
【文献】特開2015-227951(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G10L 13/00
G06F 3/16
G06F 16/90
(57)【特許請求の範囲】
【請求項1】
日時情報に関連付けられた、ユーザのイベントを特定するイベント特定情報を取得する取得手段と、
前記日時情報が表す日時より後の日時に発話する処理において、当該イベント特定情報に関連する関連会話文を生成する会話文生成手段と、
実行手段と、
を備
え、
前記会話文生成手段は、前記関連会話文を、予め定められた日数候補から選択された日数を加算して得られる、前記日時情報が表す日時より後の日時を初日とする発話期間を表す情報に関連付けて記録し、
前記実行手段が、前記発話期間に、現在の日時が含まれる場合に、当該関連会話文の発話処理を実行する情報処理装置。
【請求項2】
日時情報に関連付けられた、ユーザのイベントを特定するイベント特定情報を取得する取得手段と、
前記日時情報が表す日時より後の日時に発話する処理において、当該イベント特定情報に関連する関連会話文を生成する会話文生成手段と、
を備
え、
前記会話文生成手段は、前記関連会話文を発話する期間を表す情報に関連付けて記録し、
前記期間に、現在の日時が含ま
れ、ユーザから入力される会話文と、当該関連会話文とが連続性を有する場合に、当該関連会話文の発話処理を実行する実行手段と、を含む情報処理装置。
【請求項3】
請求項
2に記載の情報処理装置であって、
前記実行手段は、第1の会話文と、第2の会話文と、当該第1,第2の会話文の連続性を表す情報とを互いに関連付けた学習データを用いて機械学習されたニューラルネットワークを用いて、前記入力された会話文と、当該関連会話文とが連続性を有するか否かを判定する情報処理装置。
【請求項4】
請求項1
から3のいずれかに記載の情報処理装置であって、
ユーザから入力される会話文に、予め定められたイベントに関わるイベント関連語と、日時を特定する日時関連語とが含まれる場合に、前記イベント関連語に関連する前記イベント特定情報と、前記日時関連語が表す前記日時情報とを関連付けて蓄積する蓄積手段、を備える
情報処理装置。
【請求項5】
請求項1から4のいずれかに記載の情報処理装置であって、
前記関連会話文が発話されている間、ユーザが所定の入力を行うと、当該発話を停止する情報処理装置。
【請求項6】
請求項1から5のいずれかに記載の情報処理装置であって、
前記生成した関連会話文を発話する再生装置と、
当該再生装置の近傍に所在する人物を検出する手段をさらに含み、
前記再生装置の近傍に所在する人物が単数であるときに限り、前記関連会話文の発話を、前記再生装置に行わせる情報処理装置。
【請求項7】
コンピュータを、
日時情報に関連付けられた、ユーザのイベントを特定するイベント特定情報を取得する取得手段と、
前記日時情報が表す日時より後の日時に発話する処理において、当該イベント特定情報に関連する関連会話文を生成
し、当該関連会話文を、予め定められた日数候補から選択された日数を加算して得られる、前記日時情報が表す日時より後の日時を初日とする発話期間を表す情報に関連付けて記録する会話文生成手段と、
前記発話期間に、現在の日時が含まれる場合に、当該関連会話文の発話処理を実行する実行手段と、を含む
として機能させるプログラム。
【請求項8】
情報処理装置を用い、
取得手段が、日時情報に関連付けられた、ユーザのイベントを特定するイベント特定情報を取得し、
会話文生成手段が、前記日時情報が表す日時より後の日時に発話する処理において、当該イベント特定情報に関連する関連会話文を生成して、当該関連会話文を、予め定められた日数候補から選択された日数を加算して得られる、前記日時情報が表す日時より後の日時を初日とする発話期間を表す情報に関連付けて記録し、
実行手段が、前記発話期間に、現在の日時が含まれる場合に、当該関連会話文の発話処理を実行する情報処理装置の制御方法。
【請求項9】
情報処理装置を用い、
取得手段が日時情報に関連付けられた、ユーザのイベントを特定するイベント特定情報を取得し、
会話文生成手段が前記日時情報が表す日時より後の日時に発話する処理において、当該イベント特定情報に関連する関連会話文を生成して、当該関連会話文を発話する期間を表す情報に関連付けて記録し、
実行手段が、前記期間に、現在の日時が含まれ、ユーザから入力される会話文と、当該関連会話文とが連続性を有する場合に、当該関連会話文の発話処理を実行する情報処理装置の制御方法。
【請求項10】
コンピュータを、
日時情報に関連付けられた、ユーザのイベントを特定するイベント特定情報を取得する取得手段と、
前記日時情報が表す日時より後の日時に発話する処理において、当該イベント特定情報に関連する関連会話文を生成する会話文生成手段と、
を備え、
前記会話文生成手段は、前記関連会話文を発話する期間を表す情報に関連付けて記録し、
前記期間に、現在の日時が含まれ、ユーザから入力される会話文と、当該関連会話文とが連続性を有する場合に、当該関連会話文の発話処理を実行する実行手段と、として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、及びプログラムに関する。
【背景技術】
【0002】
近年では、ユーザの予定を管理するツールが種々開発されている。こうしたツールのうちには、ユーザからの会話に含まれる所定のキーワードに基づいて予定を登録して管理する技術が知られている(例えば、非特許文献1等などを参照)。
【先行技術文献】
【非特許文献】
【0003】
【文献】「iPhoneユーザガイド」、[online]、アップルコンピュータ、[令和元年12月16日検索]、インターネット<URL: https://support.apple.com/ja-jp/guide/iphone/iph3d110f84/ios>
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、上記従来のツールでは、会話的な文でユーザとのやりとりをしていながら、将来の予定を管理するだけで、その予定に関わる会話文の提供を行うなどの活用ができておらず、ユーザごとの事情に合わせた情報提供が十分でない。
【0005】
本発明は上記実情に鑑みて為されたもので、ユーザごとの事情に合わせた会話文の提供を可能とする情報処理装置、及びプログラムを提供することを、その目的の一つとする。
【課題を解決するための手段】
【0006】
上記従来例の問題点を解決する本発明の一態様は、情報処理装置であって、日時情報に関連付けられた、ユーザのイベントを特定するイベント特定情報を取得する取得手段と、前記日時情報が表す日時より後の日時に発話する処理において、当該イベント特定情報に関連する関連会話文を生成する会話文生成手段と、を備えることとしたものである。
【発明の効果】
【0007】
本発明によると、ユーザごとの事情に合わせた会話文の提供が可能となる。
【図面の簡単な説明】
【0008】
【
図1】本発明の実施の形態に係る情報処理システムの構成例を表すブロック図である。
【
図2】本発明の実施の形態に係る端末装置の構成例を表すブロック図である。
【
図3】本発明の実施の形態に係るサーバの例を表す機能ブロック図である。
【
図4】本発明の実施の形態に係る情報処理システムで利用される会話文キューの例を表す説明図である。
【
図5】本発明の実施の形態に係る情報処理システムで利用されるアクションデータベースの内容例を表す説明図である。
【
図6】本発明の実施の形態に係る端末装置の例を表す機能ブロック図である。
【
図7】本発明の実施の形態に係る情報処理システムで利用される設定情報の例を表す説明図である。
【
図8】本発明の実施の形態に係る情報処理システムの動作例を表す流れ図である。
【
図9】本発明の実施の形態に係る情報処理システムの動作例を表すもう一つの流れ図である。
【
図10】本発明の実施の形態に係る情報処理システムの会話文の選択の処理の例を表すフローチャート図である。
【発明を実施するための形態】
【0009】
本発明の実施の形態について図面を参照しながら説明する。本発明の実施の形態に係る情報処理システム1は、
図1に例示するように、情報処理装置としてのサーバ10と、当該サーバ10にネットワーク等の通信手段を介して通信可能に接続された端末装置20とを含んで構成される。
【0010】
ここでサーバ10は、
図1に示したように、制御部11と、記憶部12と、通信部13とを含んで構成される。また、端末装置20は、ロボットであり、
図2に例示するように、脚部21と、本体部22とを少なくとも含み、本体部22に、制御部31と、記憶部32と、センサ部33と、表示部34と、音声出力部35と、通信部36と、駆動部37とを収納している。また脚部21と本体部22とは、少なくとも1軸まわりに回転可能なアクチュエータを介して連結されており、脚部21に対して本体部22の向きを回動可能となっている。
【0011】
サーバ10の制御部11は、CPU等のプログラム制御デバイスであり、記憶部12に格納されたプログラムに従って動作する。本実施の形態では、この制御部11は、端末装置20からリクエスト情報を受け入れる。またこの制御部11は、当該受け入れたリクエスト情報に基づく処理を実行する。例えば制御部11は、当該処理の一つとして、端末装置20にて実行されるアクションを指示するアクション指示と、端末装置20にて発声される音声の内容を表す文字列情報とを含むアクション情報を、上記リクエスト情報の送信元である端末装置20へ送信する。
【0012】
また、本実施の形態の一例では、この制御部11は、日時を表す日時情報に関連付けられた、ユーザの、「デート」などのイベントを表す情報(以下、イベント特定情報と呼ぶ)を取得し、当該日時情報が表す日時より後の日時に、端末装置20にて発声される音声を、端末装置20へ送出する処理を実行する過程で、上記取得したイベント特定情報に関連する関連会話文を生成する。この制御部11の詳しい処理の内容については、後に説明する。
【0013】
記憶部12は、ディスクデバイスまたはメモリデバイスであり、制御部11によって実行されるプログラムを保持する。この記憶部12は、また、制御部11のワークメモリとしても動作する。本実施の形態の一例では、この記憶部12には、端末装置20への指示を生成するための情報が格納されていてもよい。例えば、この記憶部12には端末装置20にて発話させるための会話文の候補を蓄積した会話文キューを保持する。この会話文キューの内容については後に述べる。
【0014】
通信部13は、ネットワークインタフェース等であり、制御部11から入力される指示に従い、ネットワークを介して端末装置20宛に種々の情報を送出する。またこの通信部13は、ネットワークを介して受信した情報を、制御部11に出力する。
【0015】
端末装置20の制御部31は、CPU等のプログラム制御デバイスであり、記憶部32に格納されたプログラムに従って動作する。本実施の形態では、この制御部31は、所定のタイミングで、サーバ10に対して後に説明する、端末装置20に固有な機器識別情報とともにリクエスト情報を送出する。
【0016】
本実施の形態の一例では、端末装置20の制御部31は、後に説明するセンサ部33がユーザの音声の入力を受け入れると、当該入力された音声を文字列情報に変換する。この処理は、広く知られた音声認識の処理を用いることができ、制御部31は例えば音声認識処理を実行する音声認識サーバに入力された音声の情報を送出し、認識した文字列情報を受信することでこの処理を実行してもよい。
【0017】
また制御部31は、ユーザにより音声が入力されたことを契機(トリガ)として、サーバ10に対してリクエスト情報を送出する。このリクエスト情報には、トリガを特定する情報(例えばユーザにより音声が入力された旨の情報)と、サーバ10での処理に必要な情報、例えば、ここではユーザが入力した音声の認識結果である文字列情報とを含む。
【0018】
すなわち制御部31は、予め定められたトリガが発生したと判断すると、サーバ10での処理に必要な情報を収集して、当該トリガを特定する情報とともに、当該収集した情報を含むリクエスト情報をサーバ10へ送出することとなる。このトリガは、先の例のように、ユーザにより音声が入力されたことのほか、所定の時刻になった、など、任意に定め得る。この制御部31の詳しい動作の内容についても後に説明する。
【0019】
記憶部32は、メモリデバイス等であり、制御部31によって実行されるプログラムを保持する。この記憶部32は、また、制御部31のワークメモリとしても動作する。
【0020】
本実施の形態では、この記憶部32には、上記トリガと、サーバ10に送出するべき情報を特定する情報等とを関連付けた設定情報が格納されていてもよい。この設定情報については後に具体的な例を挙げて説明する。またこの記憶部32には、端末装置20に固有に設定された機器識別情報が格納されている。
【0021】
さらに、本実施の形態のある例では、この記憶部32は、表示部34に表示するべきアニメーションの画像データを格納している。具体的に記憶部32は、笑顔の目の画像データ、涙の流れるアニメーションの目の画像データ…など目のアニメーションの画像データや、笑った状態で閉じた口の画像データ、泣いている状態での閉じた口の画像データ、発声中の口のアニメーションの画像データ…など、口のアニメーションの画像データ…といったように、キャラクタの表情を表す各部の複数の画像データを格納していてもよい。
【0022】
センサ部33は、少なくとも音声センサであるマイクを含む。またこのセンサ部33は、タッチセンサや、加速度センサ等を含んでもよい。このセンサ部33は、各センサで検出した音声信号や、ユーザが触れた位置を表す情報、加速度の情報等を、制御部31に出力する。
【0023】
表示部34は、液晶ディスプレイ等であり、制御部31から入力される指示に従って画像データを表示する。本実施の形態の一例では、表示部34は、目や口の画像データを用いて、キャラクタの表情を表示する。音声出力部35は、スピーカー等であり、制御部31から入力される音声信号に従って音声を鳴動する。
【0024】
通信部36は、ネットワークインタフェースを含む。この通信部36は、無線または有線にてネットワークを介してサーバ10との間で情報を送受する。具体的に通信部36は、制御部31から入力される指示に従って、サーバ10に対してリクエスト情報等を送出する。また、この通信部36は、サーバ10から受信した情報を制御部31に出力する。
【0025】
駆動部37は、制御部31から入力される指示に従い、脚部21に対して本体部22を回転するようアクチュエータを駆動する。
【0026】
次に、本実施の形態のサーバ10の制御部11の動作について説明する。本実施の形態では、このサーバ10の制御部11は、
図3に例示するように、受信部41と、イベント管理部42と、イベント情報取得部43と、会話文生成部44と、会話履歴管理部45と、アクション情報生成部46と、指示送信部47とを含んで構成される。
【0027】
受信部41は、端末装置20からリクエスト情報と、機器識別情報とを受信する。このリクエスト情報には、端末装置20で実行するべきアクションの要求の原因(トリガ)を特定する情報を含む。トリガの種類については後述するが、例えばユーザによる音声の入力等がその一例となる。ユーザによる音声入力があったとのトリガに基づく上記リクエスト情報には、当該トリガを特定する情報とともに、ユーザにより入力された音声の内容を表す情報が含まれてもよい。ここでユーザにより入力された音声の内容を表す情報は、音声を認識した結果である文字列情報でよい。
【0028】
受信部41は、ここで受け入れたリクエスト情報に含まれる、トリガを特定する情報や、ユーザにより入力された音声の内容を表す文字列情報等を、イベント情報取得部43と、アクション情報生成部46とに出力する。
【0029】
イベント管理部42は、ユーザごとのイベント情報を記憶部12に格納して管理する。ここでイベント情報は、ユーザの予定であり、日時情報と、イベントを特定するイベント特定情報とを関連付けたものである。
【0030】
イベント情報取得部43は、ユーザにより入力された音声の内容を表す文字列情報の入力を、受信部41から受け入れる。そしてイベント情報取得部43は、当該受け入れた文字列情報がイベントに関わる情報であるか否かを判断する。具体的に本実施の形態のイベント情報取得部43は、当該文字列情報と、予め定められたイベントに関わる情報のパターンとを比較する。
【0031】
ここでパターンは、「明日」や「明後日」、「来週」など予め定めた日時を表す語(日時関連語)に合致する部分と、「デート」や「仕事」、「美容院」など、イベントに関連する語(イベント関連語)に合致する部分とを含む。このパターンは例えば正規表現の文字列で表すことができ、例えば、「[明日|明後日|週末|来週][D+日][W+曜][日][は|に]W+[が][ある|なん]*」などと設定される。
【0032】
ここで上記の例では、「*」は、空白を含む任意の文字に合致する正規表現であり、「+」は、一文字以上の直前の文字で指定された種類の文字に合致する正規表現であり、[X|Y|…]は、X,Y…のいずれかに合致する正規表現であるものとする。また[Z]は、存在してもしなくてもよいパターンを意味し、「D」は数字に、「W」は文字にそれぞれ合致するものとする。従って上記の文字列は、
「明日、デートがあるんだ」や、
「来週の月曜日は試験だよ」
などの文字列情報に合致する。そして、上記パターンにおいて、
「[明日|明後日|週末|来週][D+日][W+曜][日]」
の部分が日時関連語に、
「W+[が][ある|なん]」のうち、先頭の「W+」の(任意の文字に合致する)部分
がイベント関連語にそれぞれ相当する。
【0033】
またこのパターンは一つに限られず、複数あってもよい。例えば上記パターンのほか、「W+[が][ある|なん]*[明日|明後日|週末|来週][D+日][W+曜][日]」などといったパターンを設定しておくこととしてもよい。この例は「ライブがあるんだよね、明日」のように、先に例示したパターンには合致しない例に合致するものであり、イベント情報取得部43はユーザにより入力された音声の内容を表す文字列情報が上記の例のような、イベントに関わる情報のパターン(複数ある場合はそのいずれか)に合致する場合に、受け入れた文字列情報がイベントに関わる情報であると判断する。
【0034】
すなわちイベント情報取得部43は、ユーザにより入力された音声の内容を表す文字列情報が上記の例のような、イベントに関わる情報のパターンに合致し、イベントに関わる情報であると判断した場合は、当該文字列情報から日時情報と、イベントを特定するイベント特定情報とを取り出す。具体的に、文字列情報が「明日、デートがあるんだ」である場合は、イベント情報取得部43は、処理を実行している日時の次の日の日時情報を得る。
【0035】
ここで日時情報は、上記パターンにより見出された日時関連語に基づいて推定される、イベントが発生する日時を表す情報である。日時関連語等から日時情報を推定する処理については、広く知られた技術を採用できるので、ここでの詳しい説明は省略する。
【0036】
例えば処理が12月15日に行われている場合、イベント情報取得部43は、その日から見て「明日」である12月16日という日時情報を取得する。また、イベントを特定するイベント特定情報として、イベント情報取得部43は、上記文字列情報から「デート」を抽出する。このイベント特定情報の抽出の方法も、広く知られている方法を採用できる。
【0037】
イベント情報取得部43は、ここで取り出した、日時情報と、イベントを特定するイベント特定情報とを会話文生成部44に出力する。またイベント情報取得部43は、ユーザにより入力された音声の内容を表す文字列情報が、イベントに関わる情報のパターン(複数ある場合はそのいずれにも)に合致しない場合は、処理を中断する。
【0038】
会話文生成部44は、イベント情報取得部43が出力する日時情報と、イベント特定情報とを受けて、会話文を生成する。具体的にこの会話文生成部44は、イベント情報取得部43が出力する日時より後の日時(発話期間)を定める。
【0039】
この発話期間の決定は、例えば次のようにして行う。本実施の形態のある例では、サーバ10は、日数候補情報として、予め、「1日」、「2日」、「1週間」など予め定めた日数候補と、日数候補ごとに定めた発話期間の初日から末日までの日数(発話期間長)と、イベントの発生日を特定する語(日時指示語と呼ぶ)とを互いに関連付けた日数データテーブルを、記憶部12に格納しているものとする。
【0040】
会話文生成部44は、イベント情報取得部43が出力する日時に対して、上記日数データテーブルに含まれる日数候補のうち一つをランダムに選択して加算して、発話期間の初日を定める。また、会話文生成部44は、この発話期間の初日に、上記選択した日数候補に関連付けられた発話期間長を加算して発話期間の末日を定める。
【0041】
一例として、イベント情報取得部43が出力する日時が「12月15日」であるとき、日数候補のうち「2日」(関連付けられた発話期間長を「0日」とする)を選択したとすると、会話文生成部44は、発話期間の初日を「12月17日」、末日を「12月17日」とする。
【0042】
また会話文生成部44は、選択した日数候補に関連付けられた日時指示語と、イベント情報取得部43が出力するイベント特定情報とを用いて、会話文を生成する。例えば会話文生成部44は、予め定められた会話文パターンの候補である、
「そういえば、<日時指示語>の<イベント特定情報>は、どうだった?」
「あ。<日時指示語>は、<イベント特定情報>だったんだよね?」
…
などといった候補のうちから一つをランダムに選択して、日時指示とイベント特定情報とを、当該選択した会話文パターンに差し込む。
【0043】
これにより会話文生成部44は、例えば、
「そういえば、一昨日のデートは、どうだった?」
のような会話文を生成する。
【0044】
会話文生成部44は、ここで生成した会話文を上記決定した発話期間を発話条件として関連付けて、記憶部12に格納した会話文キューに蓄積する。すなわちサーバ10の記憶部12に格納される会話文キューは、ここでの例では、
図4に例示するように、発話条件(C)と、会話文(D)とを関連付けて格納したものとなる。
【0045】
なお、発話条件は、上記の発話期間のほか、発話の時刻に係る条件や、発話時の気温等の条件が含まれてもよい。さらに発話条件は必ずしも必要でなく、定めなくてもよい。発話条件が定められない場合(発話条件なしの場合)、当該発話条件の定めのない会話文は、常時発話可能な会話文となる。
【0046】
また本実施の形態では、この会話文キューには、会話文生成部44が生成した会話文のほかにも、会話文が予め登録されていてもよい。このように、予め登録された会話文は例えば、
・最高気温が35度以上だった、かつ、時刻が18時以降であるとの発話条件に関連付けて、「今日は、暑かったね」
・時刻が午前2時から午前4時の間であるとの発話条件に関連付けて、「そろそろ寝ない?」
などといった例があり得る。
【0047】
会話履歴管理部45は、ユーザごとに、受信部41が受け入れた、当該ユーザにより入力された音声の内容と、後に説明するアクション情報生成部46が指示した、当該ユーザの端末装置20により発話される会話文の内容とを順次記録する。つまり、この会話履歴管理部45は、ユーザと端末装置20との間での会話の履歴を記録することとなる。
【0048】
アクション情報生成部46は、受信部41から入力される情報に基づいて、リクエストを送出した端末装置20が実行するべきアクションを決定し、当該アクションを指示する情報(アクション指示)と、アクションの実行に必要となる情報(以下、パラメータ情報と呼ぶ)とを含むアクション情報を生成して指示送信部47に出力する。
【0049】
本実施の形態の一例では、サーバ10の記憶部12には、端末装置20への指示を生成するための情報として、
図5に例示するように、トリガを特定する情報(T)と、ユーザにより入力された音声の内容を表す情報と比較する情報(V、以下、比較文字列情報と呼ぶ。ただしこの比較文字列情報は、トリガの種類によってはなくてもよい)と、アクション情報の生成のためにサーバ10が実行する処理を表す情報(S)とを互いに関連づけたレコード(R)を少なくとも一つ含む、アクションデータベースが格納されているものとする。
【0050】
アクション情報生成部46は、受信部41から入力されるトリガを特定する情報(T)に関連付けられた、比較文字列情報(V、あれば)とアクション情報の生成のためにサーバ10が実行するべき処理を表す情報とを取得する。
【0051】
そしてアクション情報生成部46は、比較文字列情報が取得されれば(トリガを特定する情報に比較文字列情報が関連付けられていれば)、受信部41が出力する文字列情報と当該比較文字列情報とを比較する。そして、アクション情報生成部46は、受信部41が出力する文字列情報が比較文字列情報に一致していると判断すると、取得した情報が表す処理を実行して、アクション情報を生成する。
【0052】
また、アクション情報生成部46は、比較文字列情報が取得されていなければ、上記取得した情報が表す処理を実行して、アクション情報を生成する。
【0053】
具体的な例として、ここではアクションデータベースには、「ユーザによる音声入力があった」旨のトリガを特定する情報と、ユーザにより入力された音声の内容を表す情報と比較するべき比較文字列情報として「*ニュース[を|は]*[ない|教えて|読みあげて]*」などといった文字列の情報とに「ニュースの文字列情報を、インターネット上の所定のウェブサーバから取得し、当該文字列情報を読み上げるよう指示する」との情報を関連付けたレコードが記録されているものとする。
【0054】
なお、この比較文字列情報も正規表現で表されているものとする。従って上記の文字列は、
「今日のニュースを教えて」や、
「何かニュースはない?」
といった文字列情報に合致することとなる。
【0055】
アクション情報生成部46は、例えば受信部41から「ユーザによる音声入力があった」旨のトリガを特定する情報と、ユーザにより入力された音声の内容を表す情報として「何かニュースはない?」といった文字列情報との入力を受け入れると、当該トリガを特定する情報を含むレコードをアクションデータベースから検索する。
【0056】
ここではアクション情報生成部46は、上記のレコードをアクションデータベースから見出すこととなり、当該レコードに含まれる、比較文字列情報と、受け入れた文字列情報とを比較する。上記の例では受け入れた文字列情報「何かニュースはない?」が、比較文字列情報「*ニュース[を|は]*[ない|教えて|読みあげて]*」に合致すると判断されるので、アクション情報生成部46は、検索で見出した上記のレコードに含まれる、サーバ10が実行するべき処理を表す情報、例えば
「(ステップ1)ニュースの文字列情報を、インターネット上の所定のウェブサーバから取得する、
(ステップ2)当該文字列情報を読み上げる指示を生成
(ステップ3)読み上げのときに再生するアニメーション情報を表示させる指示を生成する」を取得して、この情報に従った処理を実行する。
【0057】
すなわちアクション情報生成部46は、この読み出した情報に従って、インターネット上の所定のウェブサーバからニュースの文字列情報を取得する。またアクション情報生成部46は、並列して行われるアクション処理の実行開始の時点で表示するべきアニメーションの画像データと、実行中に表示するべきアニメーションの画像データと、実行終了の時点で表示するべきアニメーションの画像データとをそれぞれ特定する情報(各画像データのファイル名でよい)を含むアニメーション情報の表示指示を生成する。
【0058】
そしてこの例では、アクション情報生成部46は、アクション指示とパラメータ情報とを含んだアクション情報を生成して指示送信部47に出力する。ここでアクション指示には、文字列情報を読み上げるべき旨の指示と、アニメーション情報の表示指示とを含む。また、パラメータ情報には、上記取得した文字列情報と、アニメーションの画像データを特定する情報とを含む。
【0059】
またここで、サーバ10が実行するべき処理を表す情報には「会話文の選択」の指示が含まれてもよい。このような指示が含まれる場合、アクション情報生成部46は、当該指示に従い、例えば次のような方法で会話文を選択する。
【0060】
アクション情報生成部46は、会話文キューに格納されている会話文のうち、当該会話文に関連付けられた発話条件を満足する会話文を抽出する。ここで発話条件を満足するか否かの判断に必要な種々の情報、例えば現在日時(処理を実行している日時)の情報や、気象情報等はネットワークを介してNTP(Network Time Protocol)サーバや、所定のウェブサーバから取得すればよい。
【0061】
アクション情報生成部46は、発話条件を満足するとして抽出した会話文のうちから一つを例えばランダムに選択する。またアクション情報生成部46は、会話履歴管理部45が記録している、リクエストを送出した端末装置20のユーザに係る会話の履歴を読み出す。そしてアクション情報生成部46は、現在記録されている会話の履歴に続いて、上記選択した会話文が発話されたときに自然な会話となるか否かを判断する。
【0062】
この判断は例えば、人間同士の間でなされた会話のテキストを機械学習したニューラルネットワーク等を用いて、現在記録されている会話の履歴に続く文として妥当であるか否か、すなわち会話に連続性があるか否かを判断させることで実現できる。このような処理は、いわゆる次文予測(Next Sentence Prediction:NSP)として知られる処理である。次文予測を行うためのニューラルネットワークとしては、例えばBERTとして知られるモデル(https://arxiv.org/pdf/1706.03762.pdf)を利用できる。このような次文予測を行うための機械学習の学習用データとしては、一対の会話文(第1の会話文と第2の会話文ととする)と、当該第1,第2の会話文の連続性を表す情報とを互いに関連付けたものを用いる方法等、広く知られた学習用データ並びに、それを用いた機械学習処理方法を採用できる。
【0063】
このようにニューラルネットワークを利用して現在記録されている会話の履歴に続く文として、選択した会話文が妥当であるか否か、つまり会話の連続性を判断させた場合、ニューラルネットワークの出力は、その妥当性を数値として表したものとなる。そこでアクション情報生成部46は、予め定めたしきい値を超える数値となるときに、自然な会話となると判断(連続性ありと判断)する。
【0064】
そしてアクション情報生成部46は、上記のように連続性ありとの判断をしたときには、文字列情報を読み上げるべき旨の指示と、アニメーション情報の表示指示とを含むアクション指示を生成する。またアクション情報生成部46は、上記選択した会話文の文字列情報と、アニメーションの画像データを特定する情報とを含むパラメータ情報を生成し、当該生成したアクション指示とパラメータ情報とをアクション情報として、端末装置20へ送出するよう、指示送信部47に指示する。
【0065】
指示送信部47は、アクション情報生成部46が生成したアクション情報を、受信部41が受信したリクエスト情報の送信元である端末装置20に対して送出する。
【0066】
次に、端末装置20の制御部31の動作について説明する。本実施の形態では、制御部31は、
図6に例示するように、リクエスト送出部51と、アクション情報受信部52と、音声合成部53と、アクション処理実行部54とを機能的に含んで構成される。
【0067】
リクエスト送出部51は、予め定められたトリガが発生したと判断すると、サーバ10での処理に必要な情報を収集して、当該トリガを特定する情報とともに、当該収集した情報を含むリクエスト情報をサーバ10へ送出する。具体的にここでは、ユーザにより音声が入力されたことや、所定の時刻になったなどといったトリガを予め列挙して、設定情報に含め、記憶部32に格納しておく。
【0068】
一例として設定情報には、
図7に例示するように、トリガごとに、それぞれの名称(トリガ名:N)に対して発生条件(C)や当該トリガに関係してサーバ10での処理に必要な情報を特定する情報(P)、インターバル時間(T)等のトリガの処理に関わる情報に関連付けて列挙して記録されているものとする。
【0069】
リクエスト送出部51は、この設定情報を参照して、発生条件が満足されたと判断すると、当該発生条件が満足されたトリガが発生したとして、当該トリガに関係してサーバ10での処理に必要な情報(P)を参照する。
【0070】
そしてリクエスト送出部51は、当該参照した情報で特定される、サーバ10での処理に必要な情報を収集し、当該収集した情報と、発生したトリガを特定する情報(トリガ名でよい)とを含むリクエスト情報を、サーバ10へ送出する。
【0071】
アクション情報受信部52は、サーバ10からアクション情報を受信して、当該受信したアクション情報を、アクション処理実行部54に出力する。
【0072】
音声合成部53は、後に説明するアクション処理実行部54から入力される文字列情報に基づいて、音声データを合成する。この音声合成部53は、合成して得られた音声データを、アクション処理実行部54に出力する。
【0073】
アクション処理実行部54は、サーバ10が送出したアクション情報から、アクション指示とパラメータ情報とを取り出し、アクション指示に従って処理を実行する。具体的に、上述の例のように、当該取得した文字列情報を読み上げるべき旨の指示と、上記アニメーション情報の表示指示とを含むアクション指示、及び、取得した文字列情報と、アニメーションの画像データとを含むパラメータ情報を含んだアクション情報を、アクション情報受信部52が受信した場合について説明する。
【0074】
この例ではアクション処理実行部54は、取得した文字列情報を音声合成部53に出力して、音声データを取得する。また、アクション処理実行部54は、アクション情報に含まれる情報で特定されるアニメーションの画像データを記憶部22から読み出す。そしてアクション処理実行部54は、音声合成部53が出力した音声データを、音声出力部35に出力して、音声を鳴動させるとともに、上記読み出したアニメーションの画像データを表示部34に出力して、アニメーションの画像データを再生する。
【0075】
[動作]
本実施の形態の情報処理システム1は、以上の構成を備えており、次の例のように動作する。なお以下の例ではサーバ10の記憶部12には、アクションの要求の原因であるトリガごとに、アクション情報の生成のためにサーバ10が実行する処理を表す情報が関連付けられて、アクションデータベースとして格納されているものとする。
【0076】
以下の例では、このアクションデータベースに含まれる情報の例として、
・トリガを特定する情報(T):ユーザが会話をしている
・実行する処理:
(ステップ1)会話文の文字列情報を選択
(ステップ2)当該文字列情報を読み上げる指示を生成
(ステップ3)読み上げのときに再生するアニメーション情報を表示させる指示を生成する
との情報が含まれるものとする。
【0077】
また、端末装置20の記憶部32は、設定情報として、
図7に例示したように、トリガごとに、発生条件(C)や当該トリガに関係してサーバ10での処理に必要な情報を特定する情報(P)等を関連付けて格納している。
【0078】
以下の例では、この設定情報に、
・トリガを特定する情報(トリガ名N):ユーザによる音声入力があった
・発生条件(C):ユーザが所定のウェイクワードを発声した
・サーバ10での処理に必要な情報を特定する情報(P):
ユーザが発話した内容の文字列情報
…
といった情報が含まれるものとする。ここでウェイクワードとは、ユーザがその語を発話したときに、音声入力の開始として認識するべき、「ねえ聞いてよ」や「起きてよ」等の語であり、予め定められているものとする。端末装置20は、サーバ10での処理に必要となるユーザが発話した内容の文字列情報から、このウェイクワードに相当する文字列部分を除いてもよい。
【0079】
以下、このような設定の情報等を保持するサーバ10と、端末装置20との動作について、
図8,
図9を参照しながら説明する。
【0080】
ユーザが、端末装置20に対して「ねえ聞いてよ。明日はデートなんだけど…」などと発話する(
図8のS11)と、端末装置20はこのユーザの音声を認識する処理を実行して(S12)、ユーザが発話した音声に対応する文字列情報を取得する。既に述べたように、音声認識の処理は端末装置20自身が行わなくても、ネットワークを介して音声認識処理のサービスにアクセスすることで行ってもよい。
【0081】
端末装置20は、設定情報を参照して、いずれかのトリガの発生条件が満足されたかを調べる(S13)。ここでは、ユーザがウェイクワードである「ねえ聞いてよ」を発声しているので、「ユーザによる音声入力があった」旨のトリガが発生したものとして(S13:Yes)、設定情報に従い、ユーザが発話した内容の文字列情報を収集する。なお、ステップS13において、いずれのトリガの発生条件も満足していないと判断すると(S13:No)、端末装置20は処理を終了する。
【0082】
ここでは、ユーザが発話した内容は既にステップS12にて、ユーザが発話した内容の文字列情報を取得しているので、端末装置20は、当該文字列情報と、発生したトリガを特定する情報(トリガ名「ユーザによる音声入力があった」)とを含むリクエスト情報をサーバ10宛に送出する(S14)。
【0083】
サーバ10では端末装置20からのリクエスト情報を受信する。そしてサーバ10は、当該リクエスト情報に含まれる文字列情報がイベントに関わる情報であるか否かを、予め定められたイベントに関わる情報のパターンと当該リクエスト情報に含まれる文字列情報とを比較することで判断する(S15)。
【0084】
ここでパターンが「*[明日|明後日|週末|来週][D+日][W+曜][日][は|に]W+[が][ある|なん]*」であるとすると、上記受け入れた文字列情報が「ねえ聞いてよ。明日はデートなんだけど…」であるので、サーバ10は、当該パターンに一致するものと判断する。つまり、この文字列情報は、イベントに関わる情報であると判断される(S15:Yes)こととなる。
【0085】
なお、イベントに関わる情報でないと判断されたとき(S15:No)には、サーバ10は、他の処理、つまりアクションデータベースを参照して得られる処理を実行する。
【0086】
そこでサーバ10は、この文字列情報から日時情報と、イベント特定情報とを取り出す(S16)。ここでは「明日」とあるので、サーバ10は、この処理を実行している日時(例えば12月15日)の次の日である「12月16日」との日時情報を得る。また、サーバ10は、イベント特定情報として、上記文字列情報から「デート」を抽出する。
【0087】
次にサーバ10は、会話文を生成する。サーバ10は、まず会話文の発話期間として、予め日数データテーブルに定められた日数候補から一つの日数を、ランダムに取得する(S17:発話期間の決定)。ここでは日数候補として「7日」を取得したものとする。またこのステップS16の処理においてサーバ10は、取得した日数候補に関連付けて日数データテーブルに記録されている発話期間長(ここでは「7日」とする)と、日時指示語(ここでは「この間の」とする)を取得し、ステップS16で取り出した日時情報(12月16日)と、取得した日数候補と、発話期間長とを用い、発話期間を「12月23日から12月30日まで」と決定する。
【0088】
なお、この発話期間の決定の処理では、予め日数データテーブルに定められた日数候補から一つの日数をランダムに決定する例としたが、本実施の形態はこれに限られず、サーバ10は、ステップS16で取得したイベント特定情報に関連付けて予め定められた日数を、発話期間として取得してもよい。
【0089】
この例では、例えばイベント特定情報が「デート」(比較的頻繁に発生し得るイベントであり、話題のライフタイムが比較的短いと考えられるイベント)である場合は、比較的短い日数として「4日」、また、「旅行」(話題のライフタイムが比較的長いと考えられるイベント)である場合は、比較的長い日数として「14日」などと予め定めたデータテーブルを記憶部12に記憶させておき、サーバ10は、このデータテーブルを参照して、発話期間を設定する。
【0090】
また別の例では、ステップS16で取得したイベント特定情報のそれぞれに関連付けて複数の日数候補を記憶したデータテーブルを参照して発話期間を決定してもよい。
【0091】
この例では、イベント特定情報が「デート」(比較的頻繁に発生し得るイベントであり、話題のライフタイムが比較的短いと考えられるイベント)である場合は、比較的短い日数の日数候補として「1日、2日、3日、4日」、また、「旅行」(話題のライフタイムが比較的長いと考えられるイベント)である場合は、比較的長い日数まで含めて「1日、2日、…、13日、14日」などと予め定めたデータテーブルを記憶部12に記憶させておく。
【0092】
そしてサーバ10は、ステップS16で取得したイベント特定情報に関連付けて、上記データテーブルに予め定められた日数候補から一つの日数をランダムに選択し、当該選択した日数を発話期間として設定する。
【0093】
この例では、ステップS16で取得したイベント特定情報で特定されるイベントが「デート」の場合は、1日乃至4日の発話期間が設定されることとなり、ステップS16で取得したイベント特定情報で特定されるイベントが「旅行」であるときには、1日乃至14日の発話期間が設定されることとなる。
【0094】
サーバ10は、選択した日数候補に関連付けられた日時指示語と、イベント情報取得部43が出力するイベント特定情報と、予め定められた会話文パターンの候補の情報とを用いて、会話文を生成する(S18)。ここではサーバ10は、予め定められた、複数の会話文パターンの候補のうちから一つを選択して、日時指示語(「この間の」)とイベント特定情報(「デート」)とを差し込むことで、会話文、例えば、
「そういえば、この間のデートは、どうだった?」
といった会話文を生成する。
【0095】
サーバ10は、このステップS18の処理で生成した会話文に、ステップS17の処理で決定した発話期間を発話条件として関連付けて、記憶部12に格納した会話文キューに蓄積する(S19)。
【0096】
この処理により、会話文キューには、予め設定されている会話文である、
(1)発話条件:最高気温が35度以上だった、かつ、時刻が18時以降である
会話文:「今日は、暑かったね」
(2)発話条件:時刻が午前2時から午前4時の間である
会話文「そろそろ寝ない?」
…
などとともに、
(n)発話条件:12月23日から12月30日までの発話期間内である
会話文:「そういえば、この間のデートは、どうだった?」
との会話文が蓄積された状態となる。
【0097】
なお、この動作の間も、サーバ10は、ユーザにより入力された音声の内容と、当該ユーザの端末装置20により発話される会話文の内容とを順次記録して、会話履歴の情報を生成している。ここでは例えば、ユーザとの間で次のような会話が行われる場合、その会話履歴の情報が保持される。
【0098】
すなわち、サーバ10では、
ユーザ:「ねえ聞いてよ。明日はデートなんだけどね」
端末装置20の発話:「へえ、そうなんだ」
ユーザ:「天気はどうかな」
端末装置20の発話:「明日は晴れるみたいだよ」
といった会話履歴の情報が記録されることとなる。
【0099】
なお、サーバ10は、このステップS16乃至S19の処理と並行して、他の処理、つまりアクションデータベースを参照して得られる処理を実行してもよい。
【0100】
その後、例えば12月24日にユーザが、端末装置20に対して「起きてよ。何かニュースある?」などと発話する(
図9のS21)と、端末装置20はこのユーザの音声を認識する処理を実行して(S22)、ユーザが発話した音声に対応する文字列情報を取得する。
【0101】
また端末装置20は、設定情報を参照して、いずれかのトリガの発生条件が満足されたかを調べる(S23)。ここでは、ユーザがウェイクワードを発声しているので、「ユーザによる音声入力があった」旨のトリガが発生したものとして(S23:Yes)、設定情報に従い、ユーザが発話した内容の文字列情報「起きてよ。何かニュースある?」を収集する。そして端末装置20は、当該文字列情報と、発生したトリガを特定する情報(トリガ名「ユーザによる音声入力があった」)とを含むリクエスト情報をサーバ10宛に送出する(S24)。
【0102】
サーバ10では、「ユーザによる音声入力があった」旨のトリガに関連付けられた、比較文字列情報「*ニュース[を|は]*[ない|教えて|読みあげて]*」に、端末装置20が送信した文字列情報「起きてよ。何かニュースある?」とが比較して一致しているか否かを判断する(S25)。
【0103】
ここでは、サーバ10が端末装置20から受信した文字列情報「起きてよ。何かニュースある?」が比較文字列情報に一致するため、サーバ10は、ステップS25で比較文字列情報と受信した文字列情報とが一致したと判断して、「ユーザによる音声入力があった」旨のトリガと上記比較文字列情報とに関連付けられている情報で特定される処理を開始する。
【0104】
例えばサーバ10は、インターネット上の所定のウェブサーバからニュースの文字列情報を取得し、当該文字列情報を読み上げるべき旨の指示とともに、アクション情報として端末装置20に対して送出する(S26)。
【0105】
端末装置20では、この指示に従い、ニュースの情報を読み上げる処理を実行する(S27)。ここでは例えば「先週に引き続き、暖かい日が続いていますが、年末は寒波が襲来すると予想されています」のようなニュースが読み上げられる。
【0106】
サーバ10では、ここまでで端末装置20との間で送受した文字列情報を会話の履歴として記録している。上述の例では、
ユーザ:「起きてよ。何かニュースある?」
端末装置20の発話:「『先週に引き続き、暖かい日が続いていますが、年末は寒波が襲来すると予想されています』、だって」
といった会話の履歴が記録される。
【0107】
なお、ここまでの処理において、サーバ10は、当該リクエスト情報に含まれる文字列情報がイベントに関わる情報であるか否かを、予め定められたイベントに関わる情報のパターンと当該リクエスト情報に含まれる文字列情報とを比較することで判断するが、「起きてよ。何かニュースある?」の文字列情報は、パターン「*[明日|明後日|週末|来週][D+日][W+曜][日][は|に]W+[が][ある|なん]*」に合致しないため、イベントに関わる情報とされず、対応する処理は行われない。
【0108】
この後、ユーザがさらに、端末装置20に対して「ああ。確かに先週は暖かかったなあ」などと発話すると(S28)、端末装置20はユーザが発話した音声に対応する文字列情報を取得する。そして端末装置20は例えば「ユーザが会話をしている」旨のトリガが発生したものとして、設定情報に従い、ユーザが発話した内容の文字列情報「ああ。確かに先週は暖かかったなあ」と、発生したトリガを特定する情報とを含むリクエスト情報をサーバ10宛に送出する(S29)。
【0109】
サーバ10ではこのリクエスト情報に含まれる文字列情報がイベントに関わる情報であるか否かを、予め定められたイベントに関わる情報のパターンと当該リクエスト情報に含まれる文字列情報とを比較することで判断するが、この文字列情報も、上記パターンに合致しないので、イベントに関わる情報とされず、対応する処理は行われない。
【0110】
一方、サーバ10は、「ユーザが会話をしている」とのトリガを特定する情報に関連付けられている情報で特定される処理を実行し、会話文の文字列情報を選択して、当該文字列情報を発声させる指示を端末装置20へ送出する(S30)。
【0111】
すなわちサーバ10は、
図10に例示するように、このステップS30の処理において、会話文キューに格納されている会話文のうち、当該会話文に関連付けられた発話条件を満足する会話文を抽出する(S41)。またサーバ10は、ここで会話文のうち、未選択の会話文の一つを例えばランダムに選択する(S42)。
【0112】
他方、サーバ10は、リクエストを送出した端末装置20のユーザに係る会話の履歴を参照し、現在記録されている会話の履歴に続いて、ステップS42で選択した会話文が発話されたときに自然な会話となるか否かを判断する(S43)。
【0113】
具体的にサーバ10は、人間同士の間でなされた会話のテキストを機械学習したBERTのモデルを用いた次文予測処理により、選択した会話文が、現在記録されている会話の履歴に続く文としての妥当性を表す数値(妥当であるほど大きい値となるものとする)を取得する。そしてサーバ10は、取得した値が予め定めたしきい値を超える数値となるときに、自然な会話となる(連続性あり)と判断し、そうでないときには自然な会話とならない(連続性なし)と判断する。
【0114】
サーバ10は、ステップS43において、選択した会話文が発話されたときに自然な会話となると判断する(S43:Yes)と、当該選択した会話文の文字列情報を読み上げるべき旨の指示を含むアクション情報を生成する。そしてサーバ10は、当該アクション情報を端末装置20へ送出する(S44)。
【0115】
なお、ステップS43において、選択した会話文が発話されたときに自然な会話とならないと判断する(S43:No)と、サーバ10は、処理S42に戻って処理を続ける。なお、処理S42において未選択の会話文がない場合は、予め定めた会話文の文字列情報を読み上げるべき旨の指示を含むアクション情報を生成して端末装置20へ送出するなど、予め定めた処理を実行する(S45:既定処理の実行)。
【0116】
図9に戻り、端末装置20では、アクション情報の指示に従い、文字列情報を読み上げる処理を実行する(S31)。
【0117】
具体的な例として、上記ステップS43の処理においては、
ユーザ:「起きてよ。何かニュースある?」
端末装置20の発話:「『先週に引き続き、暖かい日が続いていますが、年末は寒波が襲来すると予想されています』、だって」
ユーザ:「ああ。確かに先週は暖かかったなあ」
といった会話の履歴に引き続いて、発話条件が満足されている会話文の一つとして、「そういえば、この間のデートは、どうだった?」との会話文が自然に連続するか否かが判断される。
【0118】
ここで会話に連続性があると判断された場合、この会話文を発話するようサーバ10が端末装置20に指示するので、会話は全体として、
ユーザ:「起きてよ。何かニュースある?」
端末装置20の発話:「『先週に引き続き、暖かい日が続いていますが、年末は寒波が襲来すると予想されています』、だって」
ユーザ:「ああ。確かに先週は暖かかったなあ」
端末装置20の発話:「そういえば、この間のデートは、どうだった?」
といったようになる。
【0119】
このように本実施の形態では、過去の予定に関する会話が現れることで、ユーザに対応した内容の会話を実現でき、親近感を喚起できる。
【0120】
[端末装置単体の場合]
ここまでの説明では、端末装置20がユーザの発した音声を認識して得た文字列情報をサーバ10へ送出していた。そしてサーバ10にて端末装置20で発声するべき音声データのもととなる文字列情報(会話文)を生成して提供することとしていた。
【0121】
しかしながら本発明の実施の形態の一態様では、端末装置20が情報処理装置として機能してもよい。この場合、サーバ10は必ずしも必要ではない。
【0122】
この例では、端末装置20の制御部31が、リクエスト送出部51と、アクション情報受信部52と、音声合成部53と、アクション処理実行部54としての機能を実現するとともに、受信部41と、イベント管理部42と、イベント情報取得部43と、会話文生成部44と、会話履歴管理部45と、アクション情報生成部46としても動作することとなる。
【0123】
またこの場合、アクションデータベースや会話文キュー等、上記の説明で記憶部12に格納されているデータはいずれも端末装置20の記憶部32に格納される。
【0124】
そしてこの例ではリクエスト送出部51は、リクエスト情報を、制御部31自身が実現する受信部41に対して出力することとなる。また受信部41は、当該出力されたリクエスト情報を受け入れて処理を行う。さらにアクション情報生成部46は、生成したアクション情報を、制御部31自身が実現するアクション情報受信部52に対して出力する。
【0125】
これらの情報の出力と受け入れは、ローカルループバックを通じて、ネットワーク(通信部36)経由で行われてもよいし、ネットワークを介することなく、記憶部32に格納して読み出すことで行われてもよい。
【0126】
[発話の停止動作]
また端末装置20は、音声データ(サーバ10から受信した文字列情報に基づいて合成した音声データを含む)の再生中に、ユーザが端末装置20に対して所定の操作を行ったときに、音声データの再生を中断することとしてもよい。
【0127】
この所定の操作は、例えばセンサ部33がタッチセンサを備える場合は、タッチセンサに触れることにより行われてもよい。この例では、端末装置20は音声データの再生中、ユーザがタッチセンサに触れたことを検出すると、音声データの再生を中断する。
【0128】
また別の例では、この所定の操作は、ユーザが所定の語を発したことであってもよい。例えば端末装置20は音声データの再生中、ユーザが「しっ」と、静かにするよう要求する語を発したと判断すると、端末装置20は、音声データの再生を中断する。
【0129】
さらに別の例では、情報処理システム1は、ユーザが操作を行わない場合であっても所定の会話文の発声をしないよう制御してもよい。
【0130】
具体的に端末装置20のセンサ部33は、人数を検出可能な人感センサ(広く知られているデバイスであるので、その詳しい説明を省略する)を備えてもよい。そしてこの人感センサが端末装置20の周囲で検出した人数の情報を、会話文の選択に用いてもよい。
【0131】
この例では、会話文生成部44としての機能を実行するサーバ10または端末装置20は、イベント情報取得部43が出力する情報に基づいて会話文を生成して会話文キューに登録する際、発話条件に、発話期間の情報に加えて、端末装置20が検出した人数の情報に係る条件を含める。一例としてこの人数に係る条件は、人数が「1」(単数)であるとの条件としておく。
【0132】
端末装置20は、サーバ10で会話文を選択する場合には、サーバ10に対して送出するリクエスト情報に、周囲で検出した人数を表す人数情報を含めて送出する。
【0133】
そしてアクション情報生成部46としての機能を実行するサーバ10または端末装置20は、会話文キューに格納されている会話文のうち、当該会話文に関連付けられた発話条件を満足する会話文を抽出する際に、この人数情報を用いた条件も満足する会話文を選択する。
【0134】
上述の例のように、過去のイベント情報に関係する会話文の発話条件として人数が「1」であるとの条件を含めておくと、端末装置20の周囲に複数の人物が存在する場合には、過去のイベント情報に関係する会話文が選択されない状態となるので、ユーザのプライベートな情報が漏出する機会を低減できる。
【0135】
[感情の表現]
本実施の形態の一例ではさらに、アクション情報に、端末装置20の表示部34に表示するキャラクタの感情に関係する情報が含まれてもよい。この感情の情報は、例えば喜び(Joy)、や悲しみ(Sad)などを特定する情報等でよい。またこの感情の情報には、無感情を表す情報(flat)を含んでもよい。
【0136】
端末装置20では、受信したアクション情報に含まれる感情の情報を参照して、表示部34に表示する目の画像データを選択する。一例として感情の情報が「Sad」である場合は、端末装置20は目の画像データのうち、涙を流している目のアニメーションの画像データを選択して表示する。
【0137】
さらに本実施の形態の一例では、アクション情報に含める感情の情報を決定する際に、発話の対象となる文字列情報を生成するサーバ10あるいは端末装置20は、当該文字列情報に含まれる語に基づいて感情を決定してもよい。このような処理は例えば文字列情報に含まれる単語に基づく文字列情報が表す文の極性判断の処理などとして行うことができる。具体的に、ニュースの文字列情報を発話させる場合、悲劇的な事件を表す単語が含まれているときには悲しみの感情を特定する情報とともに、当該ニュースの文字列情報をアクション情報に含める。
【0138】
[情報の削除]
また、本実施の形態において、会話文キューを記憶するサーバ10または端末装置20は、所定のタイミングごとに会話文キューから、既に経過している発話期間(終了している発話期間)に関連付けられた会話文を削除することとしてもよい。
【0139】
さらに、会話文キューに格納した情報のうち、会話文生成部44が格納した会話文については、当該会話文が発話されたときに会話文キューから削除してもよい。これにより、同じ会話文が何度も再生されてしまうことを防止する。
【0140】
[スケジュール情報からの取得]
さらに本実施の形態のここまでの説明では、イベント情報取得部43として機能するサーバ10または端末装置20は、ユーザにより入力された音声の内容を表す文字列情報がイベントに関わる情報のパターンに合致する場合に、当該文字列情報から日時情報と、イベント特定情報とを取り出していた。しかしながら本実施の形態はこれに限られない。
【0141】
本実施の形態の一例では、イベント情報取得部43は、上記の処理に代えて、あるいは上記の処理とともに、予め定められたスケジュール情報を取得して日時情報と、イベント特定情報とを取り出してもよい。具体的に、イベント情報取得部43として機能するサーバ10または端末装置20は、予めユーザから、ユーザがスケジュール情報を登録するウェブサービスへのアクセス権の設定を受けておく。そして端末装置20は、当該設定に従い、ウェブサービスからスケジュール情報を取得する。
【0142】
このイベント情報取得部43は、ここで取得したスケジュール情報に、日時情報と、当該日時にユーザが関わるイベントを特定するイベント特定情報(例えば「デート」や「仕事」など)が含まれるときに、これら日時情報と、イベント特定情報とを取り出し、会話文生成部44に出力する。
【0143】
この例によると、ユーザとの会話に表れなくても、ユーザの過去の予定に基づいて、会話を提供できる。
【0144】
[発話期間を広くとる場合]
またここまでの説明では、会話文生成部44が、予め会話文全体を生成して会話文キューに蓄積することとしていた。そこで発話期間に応じて、会話の主題である過去のイベントが発生した日までの相対的な指示語(「昨日」、「一昨日」など)を会話文生成部44が予め含めていた。
【0145】
しかしながら本実施の形態はこれに限られず、会話文生成部44は、会話文のうち、過去のイベントが発生した日を表す語の位置のみを表す会話文のテンプレートを生成して会話文キューに蓄積しておいてもよい。この場合、会話文が選択された後にアクション情報生成部46の処理において、選択された会話文を発話するべき指示を生成する際に、その時点から、対象となる過去のイベントが発生した日を表す語を生成してもよい。
【0146】
この例では、イベント情報取得部43は、イベント管理部42に対して取得したイベント情報を記録させ、当該記録させたイベントを識別する、イベントに固有なイベント識別子を発行させる。
【0147】
そして会話文生成部44は、このイベント情報取得部43が取得したイベント情報(日時情報及びイベント特定情報を含む)に関わる会話文の生成時に、過去のイベントが発生した日を表す語の位置のみを表す会話文のテンプレートを生成し、対応するイベント識別子に関連付けて会話文キューに蓄積する。ここで会話文のテンプレートは例えば、「<日時>のデートはどうだった?」のように、日時を特定する語に置き換えるべき符号を含むものとなる。
【0148】
その後、アクション情報生成部46が、このイベント識別子に関連付けられた会話文を発話の対象として選択すると、アクション情報生成部46は、当該選択した会話文に関連付けられたイベント識別子を参照して、イベント管理部42から当該イベント識別子に対応するイベント情報(少なくともその日時情報を含む)を取得する。
【0149】
そして現在の日時から見て、当該日時を特定する語を生成して、選択した会話文のうち、日時を特定する語に置き換えるべき符号に置き換える。この語の生成は、予め日数の間隔に基づいて1日であれば「昨日」、2日であれば「一昨日」、3日から6日であれば「この間」、7日から13日であれば「先週」…などとして予め定めておけば、現在の日時と対象となったイベントの発生した日時との差(日数の間隔)に基づいて得ることができる。
【0150】
そしてアクション情報生成部46は、日時を特定する語を含めた会話文を発話させる指示を含めたアクション情報を生成する。
【0151】
[実施形態の特徴]
本実施の形態は、また次のことを特徴とする。すなわち、本実施の形態の一態様は、情報処理装置であって、日時情報に関連付けられた、ユーザのイベントを特定する、「デート」などのイベント特定情報を取得する取得手段と、前記日時情報が表す日時より後の日時に発話する処理において、「先週のデートどうだった」などといった、当該イベント特定情報に関連する会話文である関連会話文を生成する会話文生成手段と、を備える。
【0152】
この情報処理装置は、ユーザごとに提供される端末装置として実装されてもよいし、当該端末装置に通信可能に接続されて上記の各手段を実現するサーバとして実装されてもよい。
【0153】
この例によると、情報処理装置が過去の予定に関する会話文を提供することとなり、過去のイベントについての会話が実現されるため、ユーザにとってよりプライベートな内容の会話を実現でき、親近感を喚起できる。
【0154】
またここで、ユーザから入力される会話文に、予め定められたイベントに関わる「デート」などのイベント関連語と、「来週末」などといった日時を特定する日時関連語とが含まれる場合に、前記イベント関連語に関連する前記イベント特定情報と、前記日時関連語が表す前記日時情報とを関連付けて蓄積する蓄積手段、を備える。
【0155】
この例では、ユーザがスケジュール情報などとして登録せずとも、会話文として入力しているだけでイベントに関する情報が蓄積できる。
【0156】
さらに、前記会話文生成手段は、「先週のデートどうだった?」などといった前記関連会話文を、当該関連会話文を発話する期間を表す情報に関連付けて記録し、前記期間に、現在の日時が含まれる場合に、ユーザから入力される会話文と、当該関連会話文とが連続性を有するか否かが判断され、連続性を有すると判断されたときに、当該関連会話文の発話処理を実行する実行手段と、を含むこととしてもよい。
【0157】
この例によると、過去の予定に関する会話が、自然に連続すると判断されたタイミングで現れるので、会話が自然になる。
【0158】
ここで、前記実行手段は、第1の会話文と、第2の会話文と、当該第1,第2の会話文の連続性を表す情報とを互いに関連付けた学習データを用いて機械学習されたニューラルネットワークを用いて、前記受け入れた会話文と、当該関連会話文とが連続性を有するか否かを判定することとしてもよい。
【0159】
さらに前記関連会話文が発話されている間、ユーザが、発話を強制的に停止させる動作など、所定の入力を行うと、当該発話を停止することとしてもよい。これにより、発話が適切でない場合に発話を停止できる。
【0160】
また、前記生成した関連会話文を発話する再生装置と、当該再生装置の近傍に所在する人物を検出する手段をさらに含み、前記再生装置の近傍に所在する人物が単数であるときに限り、前記関連会話文の発話を、前記再生装置に行わせることとしてもよい。これにより、適切でない場面での発話を抑止できる。
【符号の説明】
【0161】
1 情報処理システム、10 サーバ、11 制御部、12 記憶部、13 通信部、20 端末装置、21 脚部、22 本体部、31 制御部、32 記憶部、33 センサ部、34 表示部、35 音声出力部、36 通信部、37 駆動部、41 受信部、42 イベント管理部、43 イベント情報取得部、44 会話文生成部、45 会話履歴管理部、46 アクション情報生成部、47 指示送信部、51 リクエスト送出部、52 アクション情報受信部、53 音声合成部、54 アクション処理実行部。