(57)【要約】  本技術は、過去の記憶から連想される指示語を用いて機能の実行を指示することができるようにする情報処理装置、情報処理方法、およびプログラムに関する。本技術の一側面の情報処理装置は、ユーザによる操作に応じて実行した機能と、操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、ユーザにより入力された指示語が指し示すコンテキストと対応付けて記録された機能を検索し、検索した機能を実行し、ユーザに対する応答を出力させる。本技術は、音声によって操作可能なエージェント機器に適用することができる。
2020026799.tif 000002
【特許請求の範囲】
【請求項１】
ユーザによる操作に応じて実行した機能と、前記操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、前記ユーザにより入力された指示語が指し示す前記コンテキストと対応付けて記録された前記機能を検索する検索部と、
検索された前記機能を実行し、前記ユーザに対する応答を出力させる応答制御部と
を備える情報処理装置。
【請求項２】
前記ユーザによる前記操作に応じて実行した前記機能をクラスタリングすることによって、複数の前記機能からなるシーケンスを生成し、前記シーケンスと前記コンテキストとを対応付けて前記操作ログに記録する記録制御部をさらに備える
請求項１に記載の情報処理装置。
【請求項３】
前記ユーザの状況を含む前記コンテキストを認識する認識処理部をさらに備える
請求項１に記載の情報処理装置。
【請求項４】
前記認識処理部は、前記ユーザの状況として、日時、場所、前記ユーザが行っているタスク、前記ユーザの感情、前記ユーザの周辺の環境の雰囲気、および、前記ユーザの行動のうちの少なくともいずれかを認識する
請求項３に記載の情報処理装置。
【請求項５】
所定の出来事を前記ユーザに体験させるための処理を実行し、前記コンテキストを生成するコンテキスト生成部をさらに備える
請求項１に記載の情報処理装置。
【請求項６】
前記コンテキスト生成部は、前記操作が行われることに応じて、前記コンテキストを生成する
請求項５に記載の情報処理装置。
【請求項７】
前記コンテキスト生成部は、前記ユーザが行っているタスク上のイベントを発生するための処理を行い、前記イベントに関する情報を前記コンテキストとして記録させる
請求項５に記載の情報処理装置。
【請求項８】
前記コンテキスト生成部は、前記ユーザがコミュニケーションをとっている対象の行動を変化させるための処理を行い、前記行動に関する情報を前記コンテキストとして記録させる
請求項５に記載の情報処理装置。
【請求項９】
前記検索部は、前記シーケンスを定義した複数のテンプレートのうち、前記ユーザによる入力の意図に応じた前記テンプレートに定義された前記シーケンスと同じ前記シーケンスであって、前記指示語が指し示す前記コンテキストと対応付けて記録された前記シーケンスを検索する
請求項２に記載の情報処理装置。
【請求項１０】
前記検索部は、検索結果の前記シーケンスが複数ある場合、それぞれの前記シーケンスに関する情報を提示し、
前記応答制御部は、前記ユーザにより指定された前記シーケンスを構成する複数の前記機能を実行する
請求項９に記載の情報処理装置。
【請求項１１】
前記検索部は、前記シーケンスに関する情報として、それぞれの前記コンテキストの差分を表す情報を提示する
請求項１０に記載の情報処理装置。
【請求項１２】
前記応答制御部は、前記コンテキストと対応付けて記録された前記シーケンスを構成する複数の前記機能を実行する
請求項２に記載の情報処理装置。
【請求項１３】
前記ユーザによる前記操作は、音声により行われる
請求項１に記載の情報処理装置。
【請求項１４】
情報処理装置が、
ユーザによる操作に応じて実行した機能と、前記操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、前記ユーザにより入力された指示語が指し示す前記コンテキストと対応付けて記録された前記機能を検索し、
検索した前記機能を実行し、前記ユーザに対する応答を出力させる
情報処理方法。
【請求項１５】
コンピュータに、
ユーザによる操作に応じて実行した機能と、前記操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、前記ユーザにより入力された指示語が指し示す前記コンテキストと対応付けて記録された前記機能を検索し、
検索した前記機能を実行し、前記ユーザに対する応答を出力させる
処理を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法、およびプログラムに関し、特に、過去の記憶から連想される指示語を用いて機能の実行を指示することができるようにした情報処理装置、情報処理方法、およびプログラムに関する。
【背景技術】
【０００２】
音声による操作が可能なエージェント機能を搭載した機器が普及してきている。ユーザは、音楽の再生、メッセージの送信などの各種の機能を実行させることができる。【０００３】
例えば、ユーザは、アーティスト名を指定して「〇〇の曲をかけて」と発話することによって、音楽の再生機能を実行させることができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開ＷＯ２０１６／１５１６９９号公報
【特許文献２】特表２０１７−５１６１５３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
メッセージの作成機能と送信機能などを含む複数の機能をマクロ化して実行することを、「〇〇にいつものメッセージを送って」などの、指示語を用いた発話によって一括して操作することができれば便利である。ユーザは、実行させるマクロを登録済みの特定の名前で指定しないで済むため、それぞれのマクロの名前を覚えておく必要がない。このことは、機器を使い込み、登録済みのマクロの数が増えるほど有用となる。ここで、「〇〇にいつものメッセージを送って」の発話における指示語は「いつも」である。【０００６】
本技術はこのような状況に鑑みてなされたものであり、過去の記憶から連想される指示語を用いて機能の実行を指示することができるようにするものである。
【課題を解決するための手段】
【０００７】
本技術の一側面の情報処理装置は、ユーザによる操作に応じて実行した機能と、前記操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、前記ユーザにより入力された指示語が指し示す前記コンテキストと対応付けて記録された前記機能を検索する検索部と、検索された前記機能を実行し、前記ユーザに対する応答を出力させる応答制御部とを備える。【０００８】
本技術の一側面においては、ユーザによる操作に応じて実行した機能と、前記操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、前記ユーザにより入力された指示語が指し示す前記コンテキストと対応付けて記録された前記機能が検索され、検索された前記機能が実行され、前記ユーザに対する応答が出力される。
【発明の効果】
【０００９】
本技術によれば、ユーザは、過去の記憶から連想される指示語を用いて機能の実行を指示することができる。【００１０】
なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１１】
【図１】本技術の一実施形態に係る情報処理システムの構成例を示す図である。
【図２】ユーザ操作ログの記録の例を示す図である。
【図３】マクロの実行の例を示す図である。
【図４】情報処理システムの他の構成例を示す図である。
【図５】情報処理端末のハードウェア構成例を示すブロック図である。
【図６】情報処理サーバのハードウェア構成例を示すブロック図である。
【図７】情報処理システムの機能構成例を示すブロック図である。
【図８】NLU処理の例を示す図である。
【図９】図７の操作記録検索処理部の構成例を示すブロック図である。
【図１０】ユーザ操作ログの構造の例を示す図である。
【図１１】観測コンテキストの例を示す図である。
【図１２】生成コンテキストの例を示す図である。
【図１３】エージェントの例を示す図である。
【図１４】マクロ抽出テンプレートの第１の例を示す図である。
【図１５】マクロ抽出テンプレートの第２の例を示す図である。
【図１６】マクロ抽出テンプレートの第３の例を示す図である。
【図１７】機能シーケンスの検索例を示す図である。
【図１８】各発話が行われた場合の情報処理システムの動作を示す図である。
【図１９】各発話が行われた場合の情報処理システムの動作を示す他の図である。
【図２０】情報処理サーバの応答処理について説明するフローチャートである。
【図２１】図２０のステップＳ４において行われる操作記録／検索処理について説明するフローチャートである。
【図２２】図２０のステップＳ４において行われる操作記録／検索処理について説明する、図２１に続くフローチャートである。
【図２３】マクロの提示画面の例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本技術を実施するための形態について説明する。説明は以下の順序で行う。
１．エピソード記憶に基づく音声操作
２．情報処理システムの構成
３．情報処理システムの動作
４．変形例
【００１３】
＜＜エピソード記憶に基づく音声操作＞＞
図１は、本技術の一実施形態に係る情報処理システムの構成例を示す図である。
【００１４】
図１の情報処理システムは、情報処理端末１と情報処理サーバ２が、インターネットなどのネットワーク１１を介して接続されることによって構成される。情報処理端末１と情報処理サーバ２が協働して処理を行うことにより、いわゆるエージェント機能が実現される。ユーザは、音楽の再生、メッセージの送信などの各種の機能を音声によって実行させることができる。
【００１５】
情報処理端末１は、マイク、カメラ、スピーカなどの入出力デバイスを有する。情報処理端末１は、ユーザの音声をマイクにより検出し、音声データを情報処理サーバ２に送信する。
【００１６】
情報処理サーバ２は、発話の内容を解析することによってユーザの意図を推定し、ユーザの意図に応じた機能を実行する。情報処理サーバ２は、機能の実行結果を情報処理端末１に送信し、ユーザに対する応答として出力させる。
【００１７】
このように、図１の情報処理システムにおいては、基本的に、UI(User Interface)の機能を情報処理端末１が担い、ユーザの意図に応じた機能の実行を情報処理サーバ２が担うことによって、エージェント機能が実現される。
【００１８】
情報処理システムにおいては、ユーザは、過去に実行させた機能と同じ複数の機能からなる機能シーケンスをマクロとして一括して実行させることができるようになされている。また、ユーザは、そのようなマクロの実行を、自分が体験した過去の出来事を指し示すような指示語を用いた発話によって指定することができるようになされている。
【００１９】
情報処理システムにおいては、ユーザの操作の履歴がユーザ操作ログとして管理されている。マクロの生成は、ユーザ操作ログに記録されている情報に基づいて行われる。
【００２０】
図２は、ユーザ操作ログの記録の例を示す図である。
【００２１】
図２の左側の吹き出しに示すように、ユーザが、所定の発話を行うことによって、機能Ａ、機能Ｂ、機能Ｃを実行させるための操作を順に行ったものとする。ユーザの発話に応じて情報処理サーバ２において所定の処理が行われ、情報処理端末１からは、機能Ａの実行結果、機能Ｂの実行結果、機能Ｃの実行結果がそれぞれ出力される。
【００２２】
ここで、ユーザは、機能Ａ、機能Ｂ、機能Ｃを実行させるための操作を行ったという出来事を、いつ、どこで、どんな状況で経験したのかなどを表す付随情報とともに、エピソード記憶として覚える。エピソード記憶は、出来事の内容を、出来事を経験したときの付随情報とともに記憶する記憶の仕組みである。付随情報としての状況には、ユーザが行っていたタスク（主タスク）、周辺環境の雰囲気、ユーザやユーザの周辺にいる人の行動、感情などが含まれる。
【００２３】
吹き出し＃１に示す時間文脈は、機能Ａ、機能Ｂ、機能Ｃを実行させるための操作を行ったときの時期的な記憶を表す。主タスクは、機能Ａ、機能Ｂ、機能Ｃを実行させるための操作時に行っていたタスクの内容に関する記憶を表す。付随エピソードは、機能Ａ、機能Ｂ、機能Ｃを実行させるための操作を行ったときの他の付随情報を表す。
【００２４】
情報処理システムにおいては、上述したようにユーザの操作の履歴であるユーザ操作ログが管理される。機能Ａ、機能Ｂ、機能Ｃを実行させるための操作をユーザが行ったときに生成されるユーザ操作ログには、矢印Ａ１の先に示すように、機能Ａ、機能Ｂ、機能Ｃを表す情報と、実行属性を表す情報が記録される。実行属性は、機能の実行に用いられた値などの属性である。
【００２５】
また、ユーザ操作ログには、機能Ａ、機能Ｂ、機能Ｃを実行させるための操作を行ったという出来事とともにエピソード記憶の付随情報としてユーザが記憶していると推測されるコンテキストを表す情報が記録される。
【００２６】
コンテキストには、操作を行った日時、操作を行った場所などの、操作を行った時の状況が含まれる。コンテキストとしての状況にも、ユーザが行っていたタスク、周辺環境の雰囲気、ユーザやユーザの周辺にいる人の行動、感情などが含まれる。日時、場所、ユーザが行っていたタスク、周辺環境の雰囲気、ユーザやユーザの周辺にいる人の行動、感情のうちの少なくともいずれかがコンテキストとして記録される。
【００２７】
例えば、情報処理端末１のカメラにより撮影された画像、情報処理端末１のセンサにより検出されたセンサデータを解析することによってコンテキストが観測され、ユーザ操作ログに記録される。
【００２８】
後に詳述するように、観測されたコンテキストではなく、情報処理システム側で生成されたコンテキストも、適宜、ユーザ操作ログに記録される。エピソード記憶の付随情報としてユーザが記憶することが推測されるイベントなどが情報処理システム側で生成され、ユーザに提示されるとともに、イベントの内容に関する情報がコンテキストとしてユーザ操作ログに記録される。
【００２９】
このように、情報処理システムにおいては、複数の機能からなる機能シーケンスと、それらの機能を実行させるための操作を行った時のコンテキストが対応付けて管理される。コンテキストと対応付けられた機能シーケンスが、１つのマクロとして実行される。
【００３０】
なお、図２においては、情報処理端末１の操作が音声により行われるものとしたが、コントローラを用いた操作、タッチ操作などの他の操作によって行われるようにしてもよい。
【００３１】
図３は、マクロの実行の例を示す図である。
【００３２】
ユーザ操作ログが生成されてから所定の時間が経過した後、ユーザが、過去に実行させた機能Ａ、機能Ｂ、機能Ｃを再度実行させたいと考えているものとする。
【００３３】
ユーザは、図３の左側の吹き出しに示すように、機能Ａ、機能Ｂ、機能Ｃの実行を、指示語Entityを含む形で依頼する内容の発話を行う。発話の目的は、機能Ａ、機能Ｂ、機能Ｃの実行ということになる。指示語Entityは、過去に実行させたどの機能であるかを、エピソード記憶の付随情報に基づいて指し示す語句である。
【００３４】
情報処理システムにおいては、ユーザ操作ログの中から、ユーザの発話の目的に一致する内容の機能シーケンスが検索される。ここでは、機能Ａ、機能Ｂ、機能Ｃからなる機能シーケンスが検索される。
【００３５】
また、検索結果の機能シーケンスのうち、矢印Ａ１１に示すように、指示語Entityが指し示すコンテキストと対応付けて記録されている機能シーケンスが選択され、選択された機能シーケンスを構成する機能Ａ、機能Ｂ、機能Ｃが、マクロとして一括して実行される。
【００３６】
例えば、機能Ａ、機能Ｂ、機能Ｃを実行させるための操作を自宅のリビングで行っていた場合、機能Ａ、機能Ｂ、機能Ｃの機能シーケンスと実行属性がユーザ操作ログに記録される。機能シーケンスには、操作を行った場所がリビングであることを表す情報がコンテキストとして対応付けて記録される。
【００３７】
一方、ユーザは、機能Ａ、機能Ｂ、機能Ｃを実行させるための操作を、リビングで行った、ということを覚えていることになる。例えば、機能Ａ、機能Ｂ、機能Ｃが、メッセージの作成機能、メッセージの送信機能を含む、メッセージの送信に関する一連の機能であるものとする。
【００３８】
この状態において、ユーザが、自身のエピソード記憶に基づいて、「前にリビングで送ったメッセージ」と発話した場合、機能Ａ、機能Ｂ、機能Ｃからなる機能シーケンスのうち、操作を行った場所がリビングであることを表す情報がコンテキストとして対応付けられている機能シーケンスが検索される。また、検索された機能シーケンスの実行属性を用いて、機能Ａ、機能Ｂ、機能Ｃが一括して実行される。エピソード記憶に基づく指示語Entityはリビングとなる。
【００３９】
このように、図１の情報処理システムは、出来事の付随情報をエピソード記憶として覚え、思い出すという人間の記憶の特性を活用し、過去に行った操作と同じ操作を、自然な発話によって一括して実行することが可能なシステムである。
【００４０】
ユーザは、実行属性として管理される内容などの、過去に行った操作の内容の詳細を覚えていない場合でも、付随情報として覚えている、状況などを指し示す発話を行うことで、過去の操作と同じ操作を容易に行うことが可能となる。
【００４１】
以上のような音声を用いた操作は、例えば、ゲームなどの行動を主タスクとしてユーザが行っている最中に行われる。情報処理システムにおいて管理されるユーザ操作ログには、主タスクであるゲームの状況を表す情報がコンテキストとして含まれる。情報処理サーバ２は、ユーザが行っているゲームの状況などを確認することができる。
【００４２】
図４は、情報処理システムの他の構成例を示す図である。
【００４３】
図４の例においては、情報処理端末１が置かれているユーザの自宅のリビングなどに据え置き型のゲーム機であるゲーム機３が設置されている。ユーザは、ゲーム機３を用いてゲームを行いながら情報処理端末１に向かって発話することにより、BGMを聴くなどのエージェント機能を利用することができる。
【００４４】
ゲーム機３は、情報処理端末１と同様に、自宅に設けられたルータなどを介してネットワーク１１に接続される。ゲーム機３は、ネットワーク１１を介してタスク管理サーバ４と通信を行い、ゲームのプログラムをタスク管理サーバ４からダウンロードしたり、ユーザによるゲームの操作に関する情報をタスク管理サーバ４に送信したりする。
【００４５】
タスク管理サーバ４は、ゲーム機３のユーザが行うゲームに関する情報を管理する。タスク管理サーバ４が管理する情報は、適宜、矢印Ａ２１に示すように、ユーザの主タスクに関する情報として情報処理サーバ２に提供される。
【００４６】
情報処理サーバ２においては、タスク管理サーバ４から送信されてきた情報に基づいて、ユーザの主タスクの状況などが確認される。情報処理サーバ２は、ユーザがゲームを行っている場合、特定のキャラクタを出現させたり、特定のアイテムを取得させたりするなどの所定のイベントをゲームにおいて発生させることをタスク管理サーバ４に対して依頼するなどの処理を行う。
【００４７】
タスク管理サーバ４においては、適宜、仮想空間（VR空間／AR空間）を利用したコミュニケーションサービスなども管理される。ユーザは、ゲーム機３を操作したり、図示せぬスマートフォンを操作したりして、タスク管理サーバ４が管理する仮想空間にアクセスし、仮想空間上で、他のユーザとコミュニケーションをとることができる。
【００４８】
この場合、タスク管理サーバ４から情報処理サーバ２に対しては、仮想空間上でのユーザの行動に関する情報、仮想空間上のユーザの場所の情報、仮想空間の情景に関するなどが、ユーザの主タスクに関する情報として提供される。
【００４９】
以上のようにしてユーザ操作ログを管理し、ユーザの発話に応じて機能を実行するタスク管理サーバ４の処理の詳細については後述する。ユーザの主タスクを管理するタスク管理サーバ４の機能が、情報処理サーバ２に設けられるようにしてもよい。
【００５０】
＜＜情報処理システムの構成＞＞
＜情報処理端末の構成例＞
図５は、情報処理端末１のハードウェア構成例を示すブロック図である。
【００５１】
CPU(Central Processing Unit)１０１、ROM(Read Only Memory)１０２、RAM(Random Access Memory)１０３は、バス１０４により相互に接続される。
【００５２】
バス１０４には、マイク１０５、カメラ１０６、センサ１０７、スピーカ１０８、ディスプレイ１０９、記憶部１１０、および通信部１１１が接続される。
【００５３】
マイク１０５は、ユーザの音声や環境音などの各種の音を検出する。
【００５４】
カメラ１０６は、ユーザを含む、情報処理端末１の周囲を撮影する。
【００５５】
センサ１０７は、周囲の明るさを検出する照度センサ、周囲にある物体までの距離を測定する測距センサ、GPS(Global Positioning System)を用いた測位センサなどの各種のセンサにより構成される。
【００５６】
スピーカ１０８は、例えば情報処理サーバ２による制御に従って合成音声を出力することにより、ユーザの操作に対する応答を行い、各種の情報を提示する。スピーカ１０８からは、例えば情報処理サーバ２により再生された音楽なども出力される。
【００５７】
ディスプレイ１０９は、LCD、有機ELディスプレイなどのディスプレイにより構成される。ディスプレイ１０９には、例えば情報処理サーバ２による制御に従って各種の情報が提示される。
【００５８】
このように、ユーザに対する情報の提示が画面表示により行われるようにしてもよい。ユーザに対する情報の提示が情報処理端末１に設けられたディスプレイ１０９を用いて行われるのではなく、無線通信を介して接続された外部のディスプレイを用いて行われるようにしてもよい。
【００５９】
記憶部１１０は、不揮発性のメモリなどにより構成される。記憶部１１０は、CPU１０１が実行するプログラムなどの各種のデータを記憶する。
【００６０】
通信部１１１は、無線や有線による通信を介して、情報処理サーバ２、ゲーム機３などの外部の装置との間で各種の情報の送受信を行う。通信部１１１は、マイク１０５により検出された音声のデータ、カメラ１０６により撮影された画像データ、および、センサ１０７により検出されたセンサデータを情報処理サーバ２に送信する。
【００６１】
また、通信部１１１は、情報処理サーバ２から送信されてきた音声データを受信してスピーカ１０８に出力し、合成音声を出力させる。通信部１１１は、情報処理サーバ２から送信されてきた情報を受信してディスプレイ１０９に出力し、画像やテキストなどの各種の情報を表示させる。
【００６２】
＜情報処理サーバの構成例＞
図６は、情報処理サーバ２のハードウェア構成例を示すブロック図である。
【００６３】
CPU２０１、ROM２０２、RAM２０３は、バス２０４により相互に接続される。
【００６４】
バス２０４には、さらに、入出力インタフェース２０５が接続される。入出力インタフェース２０５には、キーボード、マウスなどよりなる入力部２０６、ディスプレイ、スピーカなどよりなる出力部２０７が接続される。
【００６５】
また、入出力インタフェース２０５には、ハードディスクや不揮発性のメモリなどよりなる記憶部２０８、ネットワークインタフェースなどよりなる通信部２０９、リムーバブルメディア２１１を駆動するドライブ２１０が接続される。
【００６６】
情報処理サーバ２は、このような構成を有するコンピュータにより構成される。１台のコンピュータではなく、複数台のコンピュータにより情報処理サーバ２が構成されるようにしてもよい。
【００６７】
＜情報処理システムの機能構成例＞
図７は、以上のような構成を有する情報処理端末１と情報処理サーバ２からなる情報処理システムの機能構成例を示すブロック図である。
【００６８】
図７の右側に示すように、情報処理サーバ２においては、音声認識処理部２５１、発話意図理解処理部２５２、指示語EntityDB２５３、画像認識処理部２５４、センサデータ認識処理部２５５が実現される。
【００６９】
また、情報処理サーバ２においては、操作記録検索処理部２５６、マクロ抽出テンプレートDB２５７、ユーザ操作ログDB２５８、応答生成部２５９、音声合成処理部２６０、および表示画像処理部２６１が構成される。各機能部のうちの少なくとも一部は、図６のCPU２０１により所定のプログラムが実行されることによって実現される。
【００７０】
音声入力デバイスとしてのマイク１０５により検出され、情報処理端末１から送信された音声データは、通信部２０９において受信され、音声認識処理部２５１に入力される。画像入力デバイスとしてのカメラ１０６により撮影され、情報処理端末１から送信された画像データは、通信部２０９において受信され、画像認識処理部２５４に入力される。センサデバイスとしてのセンサ１０７により検出され、情報処理端末１から送信されたセンサデータは、通信部２０９において受信され、センサデータ認識処理部２５５に入力される。
【００７１】
音声認識処理部２５１は、ユーザの発話に対して音声認識（ASR(Automatic Speech Recognition)）処理を施し、テキストデータに変換する。音声認識処理部２５１は、ユーザの発話の内容を表すテキストデータである発話テキストを発話意図理解処理部２５２に出力する。
【００７２】
発話意図理解処理部２５２は、発話テキストに対して発話意図理解（NLU(Natural Language Understanding)）処理を施すことによって、発話の意図を表すIntentを推定するとともに、発話に含まれる意味のある要素としてのEntityを抽出する。
【００７３】
ユーザの発話のIntentは、例えば、所定の機能の実行を意図するものとなる。また、ユーザの発話に含まれるEntityは、機能の実行に用いられる属性情報となる。発話意図理解処理部２５２が抽出するEntityには、Entityの種類を表すEntityタイプと、Entityを構成する文字列や数値であるEntityリテラルが含まれる。
【００７４】
図８は、NLU処理の例を示す図である。
【００７５】
図８の上方に示すように、「佐藤さんと鈴木さんに今から遊ぼうよってメッセージする」の発話をユーザが行ったものとする。
【００７６】
この場合、下向き矢印の先に示すように、Intentとして“CreateMessage“が推定される。“CreateMessage“は、メッセージの作成機能の実行を表す。
【００７７】
また、Entityとして、Entity＃１乃至＃３の３つのEntityが推定される。
【００７８】
Entity＃１は、Entityタイプを“TO”、Entityリテラルを“佐藤さん”とするEntityである。Entity＃２は、Entityタイプを“TO”、Entityリテラルを“鈴木さん”とするEntityである。Entityタイプが“TO”であることは、メッセージの送信先を表すEntityであることを表す。
【００７９】
Entity＃３は、Entityタイプを“BODY”、Entityリテラルを“今から遊ぼうよ”とするEntityである。Entityタイプが“BODY”であることは、メッセージの本文を表すEntityであることを表す。
【００８０】
このように、ユーザの操作は、IntentとEntityの組として表される。図７の発話意図理解処理部２５２は、NLU処理によって得られたIntentとEntityを操作記録検索処理部２５６に出力する。
【００８１】
なお、ここでは、ユーザが音声によって操作を行う場合の処理について説明しているが、上述したように、ユーザの操作は、コントローラを用いた操作、タッチ操作などの他の操作によっても行われる。
【００８２】
音声以外によって操作が行われた場合、ユーザの操作の内容を表す情報が、NLU処理の結果として得られるIntent/Entityと同じフォーマットのデータに変換される。操作記録検索処理部２５６に対しては、音声以外による操作に応じたIntent/Entityが供給される。
【００８３】
また、発話意図理解処理部２５２は、発話テキストに指示語Entityが含まれている場合、発話テキストに含まれる指示語Entityを抽出する。発話意図理解処理部２５２による指示語Entityの抽出は、指示語EntityDB２５３に記憶されている情報を参照して行われる。
【００８４】
一般的に、NLU処理は、各Entityタイプのフレーズと、Intent毎の、Entityを含む複数の文例を予め登録しておき、登録しておいた情報に基づいて、Intentを推定するとともに、発話テキストに含まれるEntityを抽出するようにして行われる。
【００８５】
例えば「〇〇（曲名）をかけて」の発話テキストのNLU処理は、登録しておいた文例に基づいて“PlayMisic”のIntentを推定し、登録しておいた曲名に基づいて、Entityタイプが“曲名”のEntityを抽出するようにして行われる。
【００８６】
後述するような機能シーケンスの検索に用いられる指示語Entityの抽出も、この仕組みと同様の仕組みに従って行われる。すなわち、指示語Entityと、Intent毎の、指示語Entityを含む複数の文例を登録しておき、登録しておいた情報に基づいて、Intentの推定と、発話テキストに含まれる指示語Entityの抽出が行われる。
【００８７】
例えば「昨日の音楽かけて」のNLU処理は、登録しておいた文例に基づいて“PlayMisic”のIntentを推定し、登録しておいた指示語Entityに基づいて、“昨日”の指示語Entityを抽出するようにして行われる。このようにして推定されたIntentと、発話テキストから抽出された指示語Entityも操作記録検索処理部２５６に供給される。
【００８８】
画像認識処理部２５４は、カメラ１０６により撮影された画像を解析し、発話時のユーザの状況や、雰囲気などの周囲の環境の状況を認識する。画像認識処理部２５４による認識結果は、観測コンテキストとして操作記録検索処理部２５６に出力される。
【００８９】
センサデータ認識処理部２５５は、センサ１０７により検出されたセンサデータを解析し、発話時のユーザの状況や、雰囲気などの周囲の環境の状況を認識する。センサデータ認識処理部２５５による認識結果は、観測コンテキストとして操作記録検索処理部２５６に出力される。
【００９０】
発話時のユーザの状況などが、マイク１０５により検出された音声や環境音に基づいて認識されるようにしてもよい。
【００９１】
操作記録検索処理部２５６は、発話意図理解処理部２５２から供給されたIntent/Entityと、画像認識処理部２５４、センサデータ認識処理部２５５から供給された観測コンテキストに基づいて、ユーザの操作の履歴を管理する。
【００９２】
詳細については後述するが、操作記録検索処理部２５６は、発話意図理解処理部２５２から供給されたIntent/Entityをクラスタリングすることにより、複数の機能からなる機能シーケンスを生成する。操作記録検索処理部２５６は、機能シーケンスと、複数の機能の実行するための操作が行われた時のコンテキストとを対応付けて、ユーザ操作ログDB２５８に記憶されているユーザ操作ログに記録する（書き込む）。
【００９３】
また、操作記録検索処理部２５６は、ユーザの発話に含まれる指示語Entityに基づいて、ユーザが意図している機能シーケンスを、ユーザ操作ログに記録されている機能シーケンスの中から検索する。機能シーケンスの検索には、マクロ抽出テンプレートDB２５７に記憶されているマクロ抽出テンプレートも用いられる。操作記録検索処理部２５６は、検索された機能シーケンスを構成する複数の機能をマクロとして抽出し、応答生成部２５９に実行させる。
【００９４】
応答生成部２５９は、操作記録検索処理部２５６による制御に従って、機能シーケンスを構成する複数の機能をマクロとして一括して実行する。
【００９５】
応答生成部２５９は、マクロの実行結果を音声によってユーザに提示する場合、マクロの実行結果を音声合成処理部２６０に出力する。また、応答生成部２５９は、マクロの実行結果を画面表示によってユーザに提示する場合、マクロの実行結果を表示画像処理部２６１に出力する。
【００９６】
応答生成部２５９は、音声や画面表示を用いた情報の提示以外にも、ユーザの操作に対する応答として、メッセージの送信などの各種の処理を行う。
【００９７】
音声合成処理部２６０は、ユーザの発話に対する応答となる合成音声を応答生成部２５９による制御に従って生成し、合成音声のデータを情報処理端末１に送信する。情報処理端末１においては、情報処理サーバ２から送信されてきた合成音声のデータが受信され、音声出力デバイスとしてのスピーカ１０８から合成音声が出力される。
【００９８】
表示画像処理部２６１は、ユーザの発話に対する応答となる画像を応答生成部２５９から供給された情報に基づいて生成し、画像データを情報処理端末１に送信する。情報処理端末１においては、情報処理サーバ２から送信されてきた画像データが受信され、画像出力デバイスとしてのディスプレイ１０９に画像が表示される。
【００９９】
＜操作記録検索処理部の詳細構成＞
図９は、操作記録検索処理部２５６の構成例を示すブロック図である。
【０１００】
図９に示すように、操作記録検索処理部２５６は、ユーザ操作ログ記録制御部２７１、コンテキスト生成部２７２、マクロ抽出部２７３、および応答制御部２７４から構成される。発話意図理解処理部２５２から出力されたIntent/Entityは、ユーザ操作ログ記録制御部２７１、マクロ抽出部２７３、応答制御部２７４に入力される。また、画像認識処理部２５４、センサデータ認識処理部２５５から出力された観測コンテキストはユーザ操作ログ記録制御部２７１に入力される。
【０１０１】
・ユーザ操作ログの記録
ユーザ操作ログ記録制御部２７１は、発話意図理解処理部２５２から供給されたIntent/Entityにより表される機能をクラスタリングすることにより、複数の機能からなる機能シーケンスを含むクラスタを生成する。
【０１０２】
機能シーケンスは、ひとまとまりの複数の操作がユーザにより行われることに応じて生成される。機能シーケンスは、複数の操作を組み合わせた複合操作の情報となる。クラスタリングは、例えば以下のようにして行われる。
【０１０３】
（１）発話間の時間に基づくクラスタリング
直前の発話から例えば５秒といったような所定の時間内に行われた発話による操作は、直前の発話による操作と同一クラスタを構成する操作として記録される。同一クラスタの時間内で観測コンテキストが変化した場合、変化後の観測コンテキストが、そのクラスタのコンテキストとして記録される。
【０１０４】
（２）コンテキストの同一性に基づくクラスタリング
直前の発話から例えば３分といったような所定の時間内に行われた発話による操作が、直前の発話による操作と同じコンテキストの元で行われた場合、それらの操作は同一クラスタを構成する操作として記録される。
【０１０５】
（３）言語的な意味概念の近さに基づくクラスタリング
直前の発話から例えば３分といったような所定の時間内に行われた発話による操作が、直前の発話による操作と意味的に似た操作である場合、それらの操作は同一クラスタを構成する操作として記録される。
【０１０６】
（４）UnDo操作の記録
特定の操作の取り消しが指示された場合、取り消しが指示された特定の操作が、クラスタを構成する操作として含まれないようにしてもよい。
【０１０７】
例えば、Intent=“PlayMusic”、Entity=“A[TARGET_MUSIC]”とする操作（Aの音楽再生の操作）が行われてから５秒以内に、Intent=“StopMusic”の操作（音楽再生停止の操作）が行われた場合、これらの操作に関する情報がクラスタから消去される。直後に再生を停止したということは、ユーザが聞きたい曲ではなかったと考えられる。これにより、ユーザが意図していなかった機能がマクロに含めて実行されてしまうことを防ぐことが可能となる。
【０１０８】
ユーザ操作ログ記録制御部２７１は、クラスタリングによって生成した機能シーケンスの情報と、機能シーケンスを構成する複数の機能を実行するための操作が行われた時のコンテキストの情報とをユーザ操作ログに記録させる。
【０１０９】
図１０は、ユーザ操作ログの構造の例を示す図である。
【０１１０】
図１０の左側に示すように、ユーザ操作ログは、例えばJSON(Java Script（登録商標） Object Notation)形式の情報として生成される。図１０に示すユーザ操作ログの各記述の先頭の数字とコロン（：）は、説明の便宜上付してあるものであり、ユーザ操作ログを構成する記述ではない。
【０１１１】
１行目乃至３８行目の記述全体が、１つのユーザ操作ログの記述となる。２行目に示すように、ユーザ操作ログには、クラスタリングにより生成された各クラスタの情報が記述される。
【０１１２】
４行目乃至２９行目のItemsが、クラスタに含まれる機能シーケンスの記述となる。機能シーケンスには、アイテム（シーケンス内アイテム）として、機能シーケンスを構成する各機能に関する情報が含まれる。各機能に関する情報として、発話テキストであるSpeech、Intent、Entityが記述される。
【０１１３】
６行目乃至２１行目の記述が、機能シーケンスを構成する１つ目の機能に関する記述となる。１つ目の機能は、図８を参照して説明した機能と同じ操作である。
【０１１４】
すなわち、６行目に示すように、Speechとして“佐藤さんと鈴木さんに今から遊ぼうよってメッセージする”が記述される。また、７行目に示すように、Intentとして“CreateMessage”が記述される。
【０１１５】
１０行目、１１行目に示すように、１つ目のEntityとして、Entityタイプ“TO”、Entityリテラル“佐藤さん”が記述される。１４行目、１５行目に示すように、２つ目のEntityとして、Entityタイプ“TO”、Entityリテラル“鈴木さん”が記述される。１８行目、１９行目に示すように、３つ目のEntityとして、Entityタイプ“BODY”、Entityリテラル“今から遊ぼうよ”が記述される。
【０１１６】
２４行目乃至２６行目の記述が、機能シーケンスを構成する２つ目の機能に関する記述となる。
【０１１７】
２４行目に示すように、Speechとして“メッセージ送って”が記述される。また、２５行目に示すように、Intentとして“MessageSend”が記述される。“MessageSend”は、メッセージの送信機能の実行を表す。なお、“MessageSend”の操作にはEntityが含まれない。
【０１１８】
機能シーケンスを構成するそれぞれの機能に関する情報が、このようにして順に記述される。
【０１１９】
３０行目乃至３４行目のContextが、機能を実行するための操作が行われた時のコンテキストの記述となる。
【０１２０】
３１行目のDateTimeは、操作の日時を表す。図１０の例においては、DateTimeは“2018-06-07T11:14:28.867+09:00”とされている。
【０１２１】
３２行目のGameTitleは、ユーザが主タスクとして行っているゲームのタイトルを表す。図１０の例においては、GameTitleは“HappyLand”とされている。
【０１２２】
３３行目のGameSceneは、ユーザが主タスクとして行っているゲームのシーンを表す。図１０の例においては、GameSceneは“Stage3”とされている。
【０１２３】
上述したように、ユーザは、主タスクとしてゲームを行いながら、エージェント機能を操作することができる。GameTitleとGameSceneは、例えばタスク管理サーバ４から取得された情報に基づいて記述される。
【０１２４】
タスク管理サーバ４から取得された主タスクに関する情報なども、適宜、観測コンテキストとしてユーザ操作ログ記録制御部２７１に供給され、ユーザ操作ログに記述される。
【０１２５】
図１１は、観測コンテキストの例を示す図である。
【０１２６】
図１１の左列に示すように、観測コンテキストの種別には、日時、場所（Real）、場所（Virtual）、ゲーム、感情、雰囲気、行動が含まれる。
【０１２７】
日時の観測コンテキストは、操作の日時を表す。
【０１２８】
日時の観測コンテキストは、例えば、情報処理サーバ２が管理するカレンダーと時計から取得された情報に基づいて記述される。図１０のDateTimeが、日時の観測コンテキストとなる。
【０１２９】
場所（Real）の観測コンテキストは、操作時のユーザの現実の位置を表す。
【０１３０】
場所（Real）の観測コンテキストは、GPSセンサにより測位されたユーザの屋外の位置情報とマップに基づいて記述される。GPSセンサは、情報処理端末１、または、ユーザが携帯するスマートフォンなどの端末に搭載される。また、場所（Real）の観測コンテキストは、IoTセンサにより検出されたユーザの屋内の位置に基づいて記述される。
【０１３１】
場所（Virtual）の観測コンテキストは、操作時のユーザの仮想空間上の位置を表す。例えば、仮想空間上において他のユーザとコミュニケーションをとるといった主タスクをユーザが行っている場合に、場所（Virtual）の観測コンテキストが記述される。
【０１３２】
場所（Virtual）の観測コンテキストは、例えば、タスク管理サーバ４から取得された、仮想空間上のユーザの位置に基づいて記述される。仮想空間上の位置を表す情報が、仮想空間を管理するシステムとしてのタスク管理サーバ４から送信されてくる。
【０１３３】
ゲームの観測コンテキストは、操作時のユーザのゲームの状態を表す。例えば、ユーザが主タスクとしてゲームを行っている場合にゲームの観測コンテキスが記述される。
【０１３４】
ゲームの観測コンテキストは、ゲーム機３から取得された情報に基づいて、または、タスク管理サーバ４などの、ユーザが行っているゲームを管理するシステムから取得された情報に基づいて記述される。図１０のGameTitle、GameSceneが、ゲームの観測コンテキストとなる。
【０１３５】
感情の観測コンテキストは、操作時のユーザの感情を表す。
【０１３６】
感情の観測コンテキストは、カメラ１０６により撮影された画像に基づくユーザの表情の解析結果、または、マイク１０５により検出された音声に基づくユーザの声質の解析結果に基づいて記述される。感情の観測コンテキストとして、例えば、“嬉しい”、“悲しい”、“楽しい”、“怒っている”、“驚いている”を表す情報が記述される。
【０１３７】
雰囲気の観測コンテキストは、操作時のユーザの雰囲気、または、周囲の環境の雰囲気を表す。
【０１３８】
雰囲気の観測コンテキストは、カメラ１０６により撮影された画像やマイク１０５により検出された音声に基づく雰囲気の認識結果に基づいて記述される。雰囲気の観測コンテキストとして、例えば、“盛り上がっている”、“静か”、“みんなが笑っている”を表す情報が記述される。
【０１３９】
行動の観測コンテキストは、操作時のユーザの行動、または、周囲にいる人の行動を表す。
【０１４０】
行動の観測コンテキストは、例えば、センサ１０７や、情報処理端末１と連携が可能な外部機器のIoTセンサにより検出された各種のセンサデータに基づく行動の認識結果に基づいて記述される。行動の観測コンテキストとして、例えば、“料理中”、“食事中”、“テレビを見ている”、“○○さんと一緒にいる”を表す情報が記述される。
【０１４１】
このように、ユーザ操作ログには、エピソード記憶の付随情報としてユーザが記憶していると考えられる、操作時の観測コンテキストが記録される。
【０１４２】
なお、感情、雰囲気、行動等の観測コンテキストは、人の記憶に残る、抽象度の高いメタ情報といえる。このような観測コンテキストについては、図１０を参照して説明したように機能シーケンスと対応付けてユーザ操作ログに記録されるようにしてもよいし、ユーザ操作ログとは別のデータである状態監視ログに記録されるようにしてもよい。
【０１４３】
各タイミングのコンテキストをユーザ操作ログのタイムスタンプに基づいて照合できるように、状態監視ログには、それぞれの操作時の観測コンテキストを表す状態が、観測コンテキストの変化点のタイムスタンプとともに記録される。
【０１４４】
また、ユーザ操作ログには、適宜、エピソード記憶の付随情報としてユーザが記憶していると考えられる、操作時の生成コンテキストが記録される。生成コンテキストは、情報処理システム側が生成し、ユーザに体験させる出来事を表す。
【０１４５】
図９のコンテキスト生成部２７２は、所定の機能を実行するための操作が行われたことに応じて、ユーザ操作ログに記録するための生成コンテキストを生成し、ユーザに提示することによって出来事として体験させる。
【０１４６】
図１２は、生成コンテキストの例を示す図である。
【０１４７】
図１２の左列に示すように、生成コンテキストの種別には、ゲーム、感情、行動、情景が含まれる。
【０１４８】
ゲームの生成コンテキストは、ユーザが主タスクとして行っているゲーム内で体験させた出来事を表す。
【０１４９】
ゲームの生成コンテキストは、例えば、ゲーム内で、キャラクタの出現、アイテムの獲得、レベルアップなどのイベントを発生させることによって生成される。コンテキスト生成部２７２は、ユーザが行っているゲーム中でこのようなイベントを発生させることをタスク管理サーバ４に指示し、ユーザにイベントを体験させる。
【０１５０】
ユーザ操作ログには、“キャラクタの出現”、“アイテムの獲得”、“レベルアップ”などのイベントが発生したことを表す情報が、ゲームの生成コンテキストとして記述される。
【０１５１】
感情の生成コンテキストは、ユーザがコミュニケーションをとっているエージェントの感情を表す。例えば、図１３に示すように、情報処理端末１のディスプレイ１０９に表示された、擬人化されたエージェントＡ（キャラクタ）に話しかける形でユーザが操作を行っている場合に、感情の生成コンテキストが生成される。エージェントＡの表示は、例えば表示画像処理部２６１により制御される。
【０１５２】
感情の生成コンテキストは、エージェントＡの感情を変化させることによって生成される。コンテキスト生成部２７２は、例えば応答制御部２７４を制御するなどして、エージェントＡの表情を変化させ、エージェントＡの感情をユーザに認識させる。
【０１５３】
ユーザ操作ログには、“嬉しい”、“悲しい”、“怒っている”、“驚いている”などの、エージェントＡの感情を表す情報が、感情の生成コンテキストとして記述される。
【０１５４】
行動の生成コンテキストは、ユーザがコミュニケーションをとっているエージェントやロボットの行動を表す。例えば、エージェントＡに話しかける形でユーザが操作を行っている場合、行動の生成コンテキストが生成される。情報処理サーバ２から制御可能なロボットに話しかける形でユーザが操作を行っている場合に行動の生成コンテキストが生成されるようにしてもよい。
【０１５５】
行動の生成コンテキストは、ユーザがコミュニケーションをとっているエージェントやロボットの行動を変化させることによって生成される。コンテキスト生成部２７２は、応答制御部２７４を制御するなどして、エージェントやロボットの行動を制御し、エージェントやロボットの行動をユーザに認識させる。
【０１５６】
ユーザ操作ログには、“笑う”、“泣く”、“起きる”などの、エージェントやロボットの行動を表す情報が、行動の生成コンテキストとして記述される。
【０１５７】
情景の生成コンテキストは、仮想空間上でユーザに認識させた情景を表す。
【０１５８】
情景の生成コンテキストは、例えば、仮想空間上の情景を変化させることによって生成される。コンテキスト生成部２７２は、仮想空間上の情景を変化させることをタスク管理サーバ４に指示し、情景の変化をユーザに体験させる。
【０１５９】
ユーザ操作ログには、“雨が降り出す”、“キャラクタの出現”などの情景の変化を表す情報が、情景の生成コンテキストとして記述される。
【０１６０】
このように、情報処理サーバ２においては、エピソード記憶の付随情報としてユーザが記憶すると考えられる出来事を生成してユーザに体験させるとともに、出来事に関する情報を生成コンテキストとしてユーザ操作ログに記録する処理が行われる。
【０１６１】
音声による操作時に、ゲームや、仮想空間上での活動などを主タスクとして行っている場合、ユーザの意識が主タスク側に向いているため、そのときの操作を思い出すことが困難となる。ゲームのイベントなどを情報処理システム側から発生させ、ユーザに出来事を体験させることにより、ユーザに、出来事の内容をエピソード記憶の付随情報として覚えさせることが可能となる。
【０１６２】
ユーザは、過去の操作と同じ操作を行う場合、主タスクとして行っていたゲームにおいて発生したイベントなどから、過去の操作を連想することが可能となる。
【０１６３】
なお、それぞれの機能シーケンスのコンテキスト（対応付けて記録されるコンテキスト）が重複しないようにするために、生成コンテキストの生成が行われるようにしてもよい。
【０１６４】
具体的には、ある操作時に観測された観測コンテキストが、同様の操作に関する機能シーケンスの観測コンテキストと重複しない場合、生成コンテキストの生成は行われない。
【０１６５】
反対に、ある操作時に観測された観測コンテキストが、同様の操作に関する機能シーケンスの観測コンテキストと重複する場合、生成コンテキストの生成が行われることになる。日時、場所以外の観測コンテキストが観測できなかった場合も同様に、生成コンテキストが生成される。
【０１６６】
ある操作時のコンテキストとして生成コンテキストを生成する場合、同様の操作に関する機能シーケンスと対応付けて記録されていない種別、あるいは、重複が少ない種別の生成コンテキストが生成されるようにしてもよい。
【０１６７】
このように、ユーザ操作ログのコンテキストが重複しないように、または、コンテキストの重複が少なくなるようにして、生成コンテキストの生成が行われる。それぞれの機能シーケンスのコンテキストが重複しないようにすることにより、機能シーケンスとコンテキストがいわば１対１に対応することになる。ユーザは、機能シーケンスの実行を、指示語Entityを用いて容易に指示することが可能となる。
【０１６８】
図９の説明に戻り、コンテキスト生成部２７２は、応答制御部２７４を制御するなどして各種の生成コンテキストを生成し、ユーザに出来事を体験させる。また、コンテキスト生成部２７２は、生成コンテキストの情報をユーザ操作ログ記録制御部２７１に出力し、ユーザ操作ログに記録させる。
【０１６９】
・機能シーケンスの検索と実行
マクロ抽出部２７３は、ユーザの発話に応じた機能シーケンスを検索する場合、マクロ抽出テンプレートDB２５７に記憶されているマクロ抽出テンプレートのうち、発話意図理解処理部２５２により推定されたIntent用のマクロ抽出テンプレートを選択する。
【０１７０】
マクロ抽出テンプレートは、マクロとして一括して実行することが有用な複数の機能からなるシーケンスを定義したテンプレートである。マクロ化の対象となる機能毎に、複数のマクロ抽出テンプレートが予め定義され、マクロ抽出テンプレートDB２５７に用意される。
【０１７１】
マクロ抽出テンプレートに定義された機能シーケンスと一致する機能シーケンスが、ユーザ操作ログに記録されている機能シーケンスの中から検索され、マクロとして抽出される。このように、マクロ抽出テンプレートは、機能シーケンスの検索に用いられる情報である。
【０１７２】
図１４乃至１６は、マクロ抽出テンプレートの例を示す図である。
【０１７３】
図１４に示すように、マクロ抽出テンプレートには、ObjectiveIntentとFramesが記述される。Framesには、機能シーケンスを構成する各機能の情報である、FunctionalIntent、IsFloating、EntityTypesが記述される。
【０１７４】
ObjectiveIntentは、マクロ抽出テンプレートの目的Intentを表す。指示語Entityを含むユーザの発話から推定されたIntentと目的Intentが一致するマクロ抽出テンプレートが選択される。
【０１７５】
Framesは、マクロ化の対象となる機能シーケンスを表す。
【０１７６】
FunctionalIntentは、マクロ化の対象となる機能シーケンスを構成する機能のIntentを表す。
【０１７７】
IsFloatingは、各機能が、機能シーケンスを構成する機能として必須であるか否かを表すフラグである。
【０１７８】
IsFloatingが“False”として設定された機能は、機能シーケンスを構成する機能として必須の要素である。IsFloatingが“False”として設定された機能と同じ機能が、マクロ抽出テンプレートに記述された順番通りに記録されている機能シーケンスが検索される。
【０１７９】
一方、IsFloatingが“True”として設定された機能は、機能シーケンスを構成する機能としてオプションの要素である。IsFloatingが“True”として設定された機能と同じ機能が、IsFloatingが“False”として設定された機能と同じクラスタ内に存在する場合、マクロに組み込まれる。
【０１８０】
EntityTypesは、Entityタイプを表す。EntityTypesに定義された全てのEntityタイプのEntityが、Intentに対応するEntityとして記録されている機能シーケンスが検索される。
【０１８１】
図１４のマクロ抽出テンプレートは、メッセージ送信用のマクロ抽出テンプレートである。
【０１８２】
図１４の２行目に示すように、メッセージ送信用のマクロ抽出テンプレートのObjectiveIntentは、メッセージの送信機能を表す“MessageSend”となる。指示語Entityを含む発話のIntentが“MessageSend”である場合、メッセージ送信用のマクロ抽出テンプレートが選択される。
【０１８３】
メッセージ送信用のマクロ抽出テンプレートのFramesには、５行目乃至７行目に示すように、機能シーケンスを構成する１つ目の機能に関する情報として、FunctionalIntent=“CreateMessage”、IsFloating=“false”、EntityTypes=“[“TO”,“BODY”]”が記述される。また、１０行目乃至１２行目に示すように、機能シーケンスを構成する２つ目の機能に関する情報として、FunctionalIntent=“MessageSend”、IsFloating=“false”、EntityTypes=“[]”が記述される。
【０１８４】
このような記述を含むマクロ抽出テンプレートに基づいて、“TO”と“BODY”のEntityタイプのEntityを含む“CreateMessage”のIntentが記録され、それに続けて、“MessageSend”のIntentが記録されている機能シーケンスが検索される。“CreateMessage”のIntentはメッセージ作成を表し、“MessageSend”のIntentはメッセージ送信指示を表す。
【０１８５】
図１５のマクロ抽出テンプレートは、音楽再生用のマクロ抽出テンプレートである。
【０１８６】
図１５の２行目に示すように、音楽再生用のマクロ抽出テンプレートのObjectiveIntentは、音楽の再生機能を表す“PlayMusic”となる。指示語Entityを含む発話のIntentが“PlayMusic”である場合、音楽再生用のマクロ抽出テンプレートが選択される。
【０１８７】
音楽再生用のマクロ抽出テンプレートのFramesにも、機能シーケンスを構成する各機能に関する情報が順に記述される。図１５の記述を含むマクロ抽出テンプレートに基づいて、“TARGET_MUSIC”のEntityタイプのEntityを含む“PlayMusic”のIntentが記録されている機能シーケンスが検索される。“PlayMusic”のIntentは音楽再生指示を表す。
【０１８８】
検索された機能シーケンスに、“VolumeControl”、“MuteGameSound”、“MusicForward”、“MusicBackward”、“MusicCheckCurrent”のIntentが記述されている場合、その機能についてもマクロに組み込まれて実行される。
【０１８９】
図１６は、パーティー招待用のマクロ抽出テンプレートの例を示す図である。パーティーは、例えば、オンラインゲーム内で一緒にゲームを行うユーザのグループである。
【０１９０】
図１６の２行目に示すように、パーティー招待用のマクロ抽出テンプレートのObjectiveIntentは、パーティーに招待するための案内の送信機能を表す“InviteParty”となる。指示語Entityを含む発話のIntentが“InviteParty”である場合、パーティー招待用のマクロ抽出テンプレートが選択される。
【０１９１】
パーティー招待用のマクロ抽出テンプレートのFramesにも、機能シーケンスを構成する各機能に関する情報が順に記述される。図１６の記述を含むマクロ抽出テンプレートに基づいて、“ShowFriends”のIntent、“CreateInvitation”のIntent、“InputInvitationBody”のIntent、“SendInvitation”のIntentが順に記述されている機能シーケンスが検索される。
【０１９２】
図１７は、マクロ抽出テンプレートを用いた機能シーケンスの検索例を示す図である。
【０１９３】
マクロ抽出部２７３は、矢印Ａ３１に示すように、発話のIntentと一致する目的Intentを有するマクロ抽出テンプレートを、マクロ抽出テンプレートDB２５７に記憶されているマクロ抽出テンプレートの中から選択する。
【０１９４】
また、マクロ抽出部２７３は、矢印Ａ３２に示すように、選択したマクロ抽出テンプレートに定義された機能シーケンスと一致する機能シーケンスを、ユーザ操作ログに記録された機能シーケンスの中から検索する。検索された機能シーケンスにはコンテキストが対応付けて記録されている。
【０１９５】
マクロ抽出部２７３は、矢印Ａ３３に示すように、発話テキストに含まれる指示語Entityが指し示すコンテキストと対応付けて記録された機能シーケンスを、マクロ抽出テンプレートに基づく検索結果の機能シーケンスの中から検索する。マクロ抽出部２７３は、検索した機能シーケンスを構成する複数の機能をマクロとして抽出する。このように、マクロ抽出部２７３は、指示語Entityが指し示すコンテキストと対応付けて記録された機能シーケンスを検索する検索部として機能する。
【０１９６】
マクロ抽出部２７３は、検索結果として見つかったマクロが１つである場合、マクロの実行を応答制御部２７４に指示する。また、マクロ抽出部２７３は、検索結果として見つかったマクロが複数である場合、それぞれのマクロの情報をユーザに提示し、選択されたマクロを実行することを応答制御部２７４に指示する。
【０１９７】
応答制御部２７４は、応答生成部２５９を制御し、発話意図理解処理部２５２から供給されたIntent/Entityにより表される機能を実行させる。
【０１９８】
また、応答制御部２７４は、１つのマクロの情報がマクロ抽出部２７３から供給された場合、応答生成部２５９を制御し、機能シーケンスを構成する複数の機能をマクロとして一括して実行させる。
【０１９９】
応答制御部２７４は、複数のマクロの情報が検索結果としてマクロ抽出部２７３から供給された場合、応答生成部２５９を制御し、マクロをユーザに提示させる。応答制御部２７４は、提示したものの中からユーザにより選択されたマクロを実行させる。
【０２００】
・機能シーケンスの検索の具体例
機能シーケンスの検索の具体例について説明する。
【０２０１】
ここでは、「昨日のメッセージ送って」の発話が６月８日にユーザにより行われたものとする。この場合、発話意図理解処理部２５２によるNLU処理によって、“MessageSend”のIntentが推定され、“昨日”の指示語Entityが抽出される。
【０２０２】
操作記録検索処理部２５６のマクロ抽出部２７３においては、マクロ抽出テンプレートDB２５７に記憶されているマクロ抽出テンプレートの中から、目的Intentが“MessageSend”である、図１４のメッセージ送信用のマクロ抽出テンプレートが選択される。
【０２０３】
メッセージ送信用のマクロ抽出テンプレートに定義された機能シーケンスと一致する機能シーケンスとして、図１０に示す機能シーケンスがユーザ操作ログから検索される。
【０２０４】
検索結果の機能シーケンスは、Intent=“CreateMessage”のアイテムと、Intent=“MessageSend”のアイテムからなる機能シーケンスである。
【０２０５】
Intent=“CreateMessage”のアイテムには、Entityタイプ=“TO”、Entityリテラル=“佐藤さん”のEntity、Entityタイプ=“TO”、Entityリテラル=“鈴木さん”のEntity、および、Entityタイプ=“BODY”、Entityリテラル=“今から遊ぼうよ”のEntityが含まれる。
【０２０６】
図１０に示す機能シーケンス以外の機能シーケンスが、メッセージ送信用のマクロ抽出テンプレートに定義された機能シーケンスに基づいて検索されたものとする。
【０２０７】
６月８日に行われた発話に含まれる指示語Entityである“昨日”は、前日の６月７日を指し示す。マクロ抽出部２７３においては、マクロ抽出テンプレートに基づく複数の検索結果の機能シーケンスの中から、６月７日を表すコンテキストが対応付けて記録されている、図１０の機能シーケンスが最終的な検索結果として選択される。図１０の機能シーケンスには、６月７日を表す、DateTime=“2018-06-07T11:14:28.867+09:00”のコンテキストが対応付けて記録されている。
【０２０８】
図１０の機能シーケンスに含まれる、Intent=“CreateMessage”のアイテムとIntent=“MessageSend”のアイテムからなる機能シーケンスがマクロとして抽出され、応答制御部２７４を介して応答生成部２５９に供給される。
【０２０９】
応答生成部２５９は、応答制御部２７４による制御に従って、“佐藤さん”と“鈴木さん”を送り先とする“今から遊ぼうよ”のメッセージを生成し、送信することになる。
【０２１０】
このように、ユーザは、“昨日”送ったというエピソード記憶の付随情報に基づいて、それを指示語Entityにより指し示すことにより、“今から遊ぼうよ”のメッセージの作成と、その送信を容易に実行させることが可能となる。
【０２１１】
図１８および図１９は、指示語Entityを用いた検索例を示す図である。
【０２１２】
図１８および図１９には、各発話が行われた場合の情報処理システム（情報処理サーバ２）の動作が示されている。左から２列目に示すユーザの発話のうち、下線を付して示す文字列が指示語Entityである。
【０２１３】
No.１の発話は、あるタイミングを指し示す指示語Entityを含む発話である。
【０２１４】
No.１の発話が行われた場合、日付のコンテキスト（DateTime）を用いて機能シーケンスの検索が行われる。すなわち、マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、最も新しい日付がコンテキストとして記録された機能シーケンスが抽出され、マクロとして即時実行される。マクロの即時実行は、ユーザに選択させることなく、検索結果の機能シーケンスをマクロとして自動的に実行することを意味する。
【０２１５】
No.２の発話は、日付／期間を指し示す指示語Entityを含む発話である。
【０２１６】
No.２の発話が行われた場合も、日付のコンテキスト（DateTime）を用いて機能シーケンスの検索が行われる。マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、指示語Entityが指し示す日付／期間を表すコンテキストが記録された機能シーケンスが検索される。検索結果の機能シーケンスが１つである場合、検索結果の機能シーケンスがマクロとして即時実行され、複数である場合、各マクロがユーザに提示された後、ユーザにより選択されたマクロが実行される。
【０２１７】
No.３の発話は、ゲームシーンを指し示す指示語Entityを含む発話である。
【０２１８】
No.３の発話が行われた場合、ゲームシーンコンテキスト（GameScene）を用いて機能シーケンスの検索が行われる。マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、指示語Entityが指し示すゲームシーンを表すコンテキストが記録された機能シーケンスが検索される。検索結果の機能シーケンスが１つである場合、検索結果の機能シーケンスがマクロとして即時実行され、複数である場合、各マクロがユーザに提示された後、ユーザにより選択されたマクロが実行される。
【０２１９】
No.３の発話は、例えばユーザが主タスクとしてゲームを行っているときに行われる。ゲームシーンコンテキストを用いて検索が行われる場合の発話には、図１８に示す発話以外に、「○○を倒した時のメッセージ」、「○○がゴールした時に聞いてたBGM」、「○○を攻める前のパーティー」、「この敵の時のパーティー」などがある。
【０２２０】
No.４の発話は、ゲームシーンを指し示す代名詞を指示語Entityとして含む発話である。
【０２２１】
No.４の発話が行われた場合、ゲームシーンコンテキスト（GameScene）を用いて機能シーケンスの検索が行われる。マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、代名詞の指示語Entityが指し示す現在のゲームシーンと一致するゲームシーンを表すコンテキストが記録された機能シーケンスが検索される。検索結果の機能シーケンスが１つである場合、検索結果の機能シーケンスがマクロとして即時実行され、複数である場合、各マクロがユーザに提示された後、ユーザにより選択されたマクロが実行される。
【０２２２】
No.４の発話は、例えばユーザが主タスクとしてゲームを行い、ゲームの画面において、カーソルによってハイライト表示される対象を代名詞で指し示すことによって行われる。ゲームシーンコンテキストを用いて検索が行われる場合の発話には、図１８に示す発話以外に、ゲームの画面に表示されたアイテムがハイライト表示されている状態における「これを取った時のメッセージ」などがある。また、ゲームの画面に表示されたマップ上で、特定の場所が指定されている状態における「ここの時のパーティー」などがある。
【０２２３】
No.５の発話は、マクロの番号を指し示す指示語Entityを含む発話である。
【０２２４】
No.５の発話は、検索結果のマクロが提示されている場合に行われる。No.２〜４の発話が行われることに応じて、マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、指示語Entityが指し示すコンテキストが対応付けて記録された機能シーケンスが検索される。
【０２２５】
検索結果のマクロが複数ある場合、それぞれのマクロに対して番号が割り当てられ、ユーザに提示される。マクロの提示画面には、それぞれの機能シーケンスのコンテキストのうち、他の機能シーケンスのコンテキストとの差分となる（重複しない）コンテキストが表示される。
【０２２６】
指示語Entityとして番号を含む発話が行われた場合、指示語Entityにより指定された番号が割り当てられた機能シーケンスがマクロとして実行される。マクロの提示画面の詳細については後述する。
【０２２７】
図１９のNo.６の発話は、マクロを、日付／期間により、またはゲームシーンにより指し示す指示語Entityを含む発話である。
【０２２８】
No.６の発話も、検索結果のマクロが提示されている場合に行われる。No.２〜４の発話が行われることに応じて、マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、指示語Entityが指し示すコンテキストが対応付けて記録された機能シーケンスが検索される。
【０２２９】
検索結果のマクロが複数ある場合、それぞれのマクロに対して番号が割り当てられ、ユーザに提示される。マクロの提示画面には、それぞれの機能シーケンスのコンテキストのうち、他の機能シーケンスのコンテキストとの差分となるコンテキストが表示される。
【０２３０】
指示語Entityを含む発話が行われた場合、指示語Entityにより指定された日付／期間を表すコンテキストが対応付けて記録された機能シーケンス、または、指示語Entityにより指定されたゲームシーンを表すコンテキストが対応付けて記録された機能シーケンスがマクロとして実行される。
【０２３１】
No.７の発話は、複数の指示語Entityを含む発話である。
【０２３２】
No.７の発話が行われた場合、マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、複数の指示語EntityのAND条件が指し示すコンテキストを含む機能シーケンスが検索される。検索結果の機能シーケンスが１つである場合、検索結果の機能シーケンスがマクロとして即時実行され、複数である場合、各マクロがユーザに提示された後、ユーザにより選択されたマクロが実行される。
【０２３３】
No.８の発話は、マクロをキーワードにより指し示す発話である。
【０２３４】
No.８の発話も、検索結果のマクロが提示されている場合に行われる。No.２〜４の発話が行われることに応じて、マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、指示語Entityが指し示すコンテキストが対応付けて記録された機能シーケンスが検索される。
【０２３５】
検索結果のマクロが複数ある場合、それぞれのマクロに対して番号が割り当てられ、ユーザに提示される。マクロの提示画面には、それぞれの機能シーケンスのコンテキストのうち、他のクラスタのコンテキストとの差分となるコンテキストが表示される。
【０２３６】
No.８の発話が行われた場合、ユーザの発話から名詞の文字列がキーワードとして抽出される。抽出されたキーワードと同じ文字列をEntityとして含むマクロが実行される。
【０２３７】
「５人でやったパーティー」といったように、Entityの数を使用した発話によって、マクロが指定されるようにしてもよい。
【０２３８】
No.９の発話は、周期・頻度を指し示す指示語Entityを含む発話である。
【０２３９】
No.９の発話が行われた場合、日付のコンテキスト（DateTime）を用いて機能シーケンスの検索が行われる。マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、出現頻度が最も高い機能シーケンスが選択され、マクロとして即時実行される。
【０２４０】
No.１０の発話は、周期・頻度を指し示す指示語Entityを含む発話である。
【０２４１】
No.１０の発話が行われた場合、日付のコンテキスト（DateTime）を用いて機能シーケンスの検索が行われる。マクロ抽出テンプレートに基づく機能シーケンスの検索結果の中から、指示語Entityにより指定される条件に一致し、出現頻度が最も高い機能シーケンスが選択され、マクロとして即時実行される。
【０２４２】
指示語Entityを用いたマクロの検索は、以上のようにして行われる。
【０２４３】
図１８、図１９に示す指示語Entityに代えて、図１１の観測コンテキスト、または図１２の生成コンテキストを指し示す指示語Entityを用いた発話に基づくマクロの検索が行われる。
【０２４４】
例えば、「嬉しい時の音楽」の発話は、感情の観測コンテキスト（図１１）を指示語Entityによって指し示す発話となる。また、「盛り上がった時の音楽」の発話は、雰囲気の観測コンテキストを指示語Entityによって指し示す発話となる。「料理中の音楽」の発話は、行動の観測コンテキストを指示語Entityによって指し示す発話となる。
【０２４５】
「驚かれたメッセージ」の発話は、感情の生成コンテキスト（図１２）を指示語Entityによって指し示す発話となる。「雨が降った時の音楽」の発話は、情景の生成コンテキストを指示語Entityによって指し示す発話となる。
【０２４６】
＜＜情報処理システムの動作＞＞
図２０のフローチャートを参照して、ユーザの発話に対する応答を行う情報処理サーバ２の処理について説明する。
【０２４７】
図２０の処理は、例えば、ユーザの発話に応じた音声データが情報処理端末１から送信されてきたときに開始される。情報処理端末１から送信された音声データは、通信部２０９において受信され、音声認識処理部２５１に供給される。
【０２４８】
ステップＳ１において、音声認識処理部２５１は、ユーザの発話に対して音声認識処理を施し、テキストデータに変換する。
【０２４９】
ステップＳ２において、発話意図理解処理部２５２は、発話テキストに対してNLU処理を施すことによって、発話の意図を表すIntentを推定するとともに、実行属性であるEntityを抽出する。
【０２５０】
ステップＳ３において、コンテキストの観測が行われる。すなわち、カメラ１０６により撮影された画像に基づくコンテキストの観測が画像認識処理部２５４により行われ、センサ１０７により検出されたセンサデータに基づくコンテキストの観測がセンサデータ認識処理部２５５により行われる。観測されたコンテキストは、観測コンテキストとして操作記録検索処理部２５６に出力される。
【０２５１】
ステップＳ４において、操作記録／検索処理が操作記録検索処理部２５６により行われる。操作記録／検索処理により、ユーザの操作の履歴が管理されるとともに、適宜、発話に含まれる指示語Entityに基づいてマクロが実行される。操作記録／検索処理の詳細については、図２１、図２２のフローチャートを参照して後述する。
【０２５２】
ステップＳ５において、応答生成部２５９は、機能の実行が操作記録検索処理部２５６により指示されたか否かを判定する。
【０２５３】
機能の実行が指示されたとステップＳ５において判定した場合、ステップＳ６において、応答生成部２５９は、操作記録検索処理部２５６による制御に従って、１つの機能を実行し、ユーザに対する応答を出力する。また、応答生成部２５９は、操作記録検索処理部２５６による制御に従って、複数の機能をマクロとして一括して実行し、ユーザに対する応答を出力する。
【０２５４】
所定の機能がステップＳ６において実行された場合、または、機能の実行が指示されていないとステップＳ５において判定された場合、処理は終了となる。以上の処理が、ユーザが発話を行う毎に繰り返し行われる。
【０２５５】
次に、図２１、図２２のフローチャートを参照して、図２０のステップＳ４において行われる操作記録／検索処理について説明する。
【０２５６】
ステップＳ１１において、操作記録検索処理部２５６は、発話意図理解処理部２５２から供給されたIntent/Entityを取得する。
【０２５７】
ステップＳ１２において、操作記録検索処理部２５６は、ユーザの発話に指示語Entityが含まれているか否かを判定する。
【０２５８】
ユーザの発話に指示語Entityが含まれていないとステップＳ１２において判定した場合、ステップＳ１３において、操作記録検索処理部２５６は、Intentに応じた機能の実行に必要なEntityが揃っているか否かを判定する。
【０２５９】
Intentに応じた機能の実行に必要なEntityが揃っていないとステップＳ１３において判定した場合、ステップＳ１４において、操作記録検索処理部２５６の応答制御部２７４は、不足しているEntityの入力を促す応答を応答生成部２５９に指示する。応答生成部２５９においては、Entityの入力を促す合成音声をスピーカ１０８から出力させる処理などが行われる。
【０２６０】
一方、Intentに応じた機能の実行に必要なEntityが揃っているとステップＳ１３において判定された場合、処理はステップＳ１５に進む。
【０２６１】
ステップＳ１５において、コンテキスト生成部２７２は、ユーザの記憶に残ると考えられる出来事を生成コンテキストとして生成し、ユーザに対して提示することを応答制御部２７４に指示する。
【０２６２】
コンテキスト生成部２７２による指示に応じて、応答制御部２７４は、例えば、ユーザが主タスクとして行っているゲーム内で所定のイベントを発生させることをタスク管理サーバ４に対して要求する。タスク管理サーバ４においては、応答制御部２７４による要求に応じてゲームのイベントを発生させ、出来事としてユーザに体験させる処理が行われる。
【０２６３】
ステップＳ１６において、応答制御部２７４は、発話意図理解処理部２５２から供給されたIntent/Entityに応じた機能の実行と応答を応答生成部２５９に指示する。
【０２６４】
ステップＳ１７において、ユーザ操作ログ記録制御部２７１は、発話意図理解処理部２５２から供給されたIntent/Entityにより表される機能をクラスタリングすることにより、複数の機能からなる機能シーケンスを生成する。
【０２６５】
また、ユーザ操作ログ記録制御部２７１は、機能シーケンスを、図２０のステップＳ３において観測された観測コンテキスト、コンテキスト生成部２７２により生成された生成コンテキストと対応付けてユーザ操作ログに記録する。観測コンテキストと生成コンテキストの両方が記録されるのではなく、いずれか一方が機能シーケンスと対応付けて記録されるようにしてもよい。
【０２６６】
ステップＳ１７において機能シーケンスが記録された後、または、ステップＳ１４においてEntityの入力を促す応答が指示された後、図２０のステップＳ４に戻り、それ以降の処理が行われる。
【０２６７】
なお、ユーザ操作ログに対する記録が行われる際、「今の操作を覚えておきます」などの合成音声を情報処理システム側から出力させ、一連の操作に関する情報を記録したことをユーザに認知させるようにしてもよい。ユーザは、一連の操作をマクロとして実行させることができるようになったことを知ることが可能となる。
【０２６８】
なお、メッセージの内容などの個人的な情報を含み、ユーザ操作ログに内容を記録させることにユーザが違和感を覚える可能性のある機能については、「送信したメッセージの内容も覚えますか？」などの合成音声を出力して確認が行われるようにしてもよい。この場合、情報を記録することについて了承が得られたときに、ユーザ操作ログに対する記録が行われることになる。
【０２６９】
一方、ユーザの発話に指示語Entityが含まれているとステップＳ１２において判定された場合、処理は図２２のステップＳ１８に進む。ユーザの発話に指示語Entityが含まれている場合、上述したようにして機能シーケンスの検索が行われる。
【０２７０】
ステップＳ１８において、操作記録検索処理部２５６のマクロ抽出部２７３は、ユーザの発話のIntentと一致する目的Intentを有するマクロ抽出テンプレートを、マクロ抽出テンプレートDB２５７に記憶されているマクロ抽出テンプレートの中から選択する。
【０２７１】
ステップＳ１９において、マクロ抽出部２７３は、選択したマクロ抽出テンプレートに定義された機能シーケンスと一致する機能シーケンスを、ユーザ操作ログに記録された機能シーケンスの中から検索する。また、マクロ抽出部２７３は、発話テキストに含まれる指示語Entityが指し示すコンテキストと対応付けて記録された機能シーケンスを、マクロ抽出テンプレートに基づく検索結果の機能シーケンスの中から検索する。
【０２７２】
ステップＳ２０において、マクロ抽出部２７３は、検索した機能シーケンスを構成する複数の機能をマクロとして抽出する。
【０２７３】
ステップＳ２１において、マクロ抽出部２７３は、検索結果として抽出されたマクロが１つであるか否かを判定する。
【０２７４】
検索結果として抽出されたマクロが１つであるとステップＳ２１において判定した場合、ステップＳ２２において、マクロ抽出部２７３は、マクロの実行とユーザに対する応答を応答制御部２７４に指示する。
【０２７５】
ステップＳ２３において、ユーザ操作ログ記録制御部２７１は、実行したマクロに関する複数の機能のIntent/Entityを観測コンテキストとともにユーザ操作ログに記録させる。
【０２７６】
検索結果として抽出されたマクロが１つではないとステップＳ２１において判定した場合、ステップＳ２４において、マクロ抽出部２７３は、検索結果の複数のマクロを提示し、マクロの絞り込みを促す応答の出力を応答制御部２７４に指示する。
【０２７７】
実行したマクロに関する情報がステップＳ２３においてユーザ操作ログに記録された後、または、検索結果の複数のマクロの提示などの指示がステップＳ２４において行われた後、図２０のステップＳ４に戻り、それ以降の処理が行われる。
【０２７８】
以上の処理により、ユーザは、過去の記憶から連想されるフレーズを発話することで、過去に行った複数の操作と同じ操作をマクロとして一括して実行させることが可能となる。
【０２７９】
また、指示語Entityを用いてコンテキストを指し示すことでマクロを実行させることができるため、各マクロに対して設定された名前などを発話してマクロの実行を指示する場合に比べて、より自然な発話に近い対話システムが実現される。
【０２８０】
＜マクロ提示画面の例＞
図２３は、マクロの提示画面の例を示す図である。
【０２８１】
検索結果のマクロが複数ある場合、図２３に示すような提示画面がディスプレイ１０９に表示される。
【０２８２】
図２３の例においては、「先週聞いた曲かけて」の発話がユーザにより行われたことに応じて、上述したような検索が行われ、目的Intentを“PlayMusic”とする４つの音楽再生マクロが見つかったものとされている。提示画面には、４つの音楽再生マクロに関する情報であるマクロ候補情報３０１乃至３０４が表示される。
【０２８３】
マクロ候補情報３０１は、１番の音楽再生マクロに関する情報である。マクロ候補情報３０１として、「寝室」、「６／８（金）」の文字列が表示され、その下に、１番の音楽再生マクロを実行したときに再生される音楽の情報が表示される。
【０２８４】
「寝室」、「６／８（金）」の文字列は、矢印Ａ４１に示すように、１番の音楽再生マクロに関するコンテキストであるコンテキストＣ１に基づいて表示される。コンテキストＣ１には、「６月８日」を表す日付のコンテキストと、「寝室」を表す場所のコンテキストが含まれている。
【０２８５】
なお、「寝室」、「６／８（金）」の文字列の下に表示される音楽の情報は、１番の音楽再生マクロを構成する機能のIntentとEntityに基づいて表示される情報である。
【０２８６】
マクロ候補情報３０２乃至３０３も、それぞれ、同様の情報から構成される。
【０２８７】
すなわち、２番の音楽再生マクロに関する情報であるマクロ候補情報３０２として、「盛り上がっている」、「６／７（木）」の文字列が表示される。
【０２８８】
「盛り上がっている」、「６／７（木）」の文字列は、矢印Ａ４２に示すように、２番の音楽再生マクロに関するコンテキストであるコンテキストＣ２に基づいて表示される。コンテキストＣ２には、「６月７日」を表す日付のコンテキストと、「盛り上がっている」を表す雰囲気のコンテキストが含まれている。
【０２８９】
３番の音楽再生マクロに関する情報であるマクロ候補情報３０３として、「雨が降っている」、「６／５（火）」の文字列が表示される。
【０２９０】
「雨が降っている」、「６／５（火）」の文字列は、矢印Ａ４３に示すように、３番の音楽再生マクロに関するコンテキストであるコンテキストＣ３に基づいて表示される。コンテキストＣ３には、「６月５日」を表す日付のコンテキストと、「雨が降っている」を表す天気のコンテキストが含まれている。
【０２９１】
４番の音楽再生マクロに関する情報であるマクロ候補情報３０４として、「悲しい」、「６／４（月）」の文字列が表示される。
【０２９２】
「悲しい」、「６／４（月）」の文字列は、矢印Ａ４４に示すように、４番の音楽再生マクロに関するコンテキストであるコンテキストＣ４に基づいて表示される。コンテキストＣ４には、「６月４日」を表す日付のコンテキストと、「悲しい」を表す感情のコンテキストが含まれている。
【０２９３】
このように、マクロの検索結果の提示画面には、各マクロを構成する機能のIntentとEntityを表す情報に加えて、コンテキストの差分要素となる文字列が表示される。マクロ候補情報３０１の「寝室」と「６／８（金）」、マクロ候補情報３０２の「盛り上がっている」と「６／７（木）」、マクロ候補情報３０３の「雨が降っている」と「６／５（火）」、マクロ候補情報３０４の「悲しい」と「６／４（月）」は、それぞれ、他のマクロのコンテキストと重複しないコンテキストに基づいて表示される文字列である。
【０２９４】
一方、場所のコンテキストとして重複している「リビング」は、マクロに関する情報として表示されない。「リビング」を表すコンテキストは、コンテキストＣ２，Ｃ３，Ｃ４のそれぞれに重複して記録されている。
【０２９５】
このように、指示語Entityを含む発話によってユーザが指示していると考えられるマクロとして同じような機能シーケンスのマクロが複数ある場合、それぞれのマクロの情報が提示される。また、それぞれのマクロの情報として、コンテキストの差分要素となる文字列が表示される。
【０２９６】
ユーザは、類似したマクロを見比べ、過去の断片的な記憶に基づいて絞り込むことができるため、目的とするマクロを容易に見つけることが可能となる。
【０２９７】
なお、図２３に示す提示画面が表示されている状態で番号を指定してマクロが選択された場合、図１８のNo.５の発話が行われたときと同様の処理が行われ、選択されたマクロが実行される。また、コンテキストの差分要素となる文字列を指定してマクロが選択された場合、図１９のNo.６の発話が行われたときと同様の処理が行われ、選択されたマクロが実行される。
【０２９８】
マクロの提示画面においては、コンテキストの日付が新しいマクロの情報ほど上位に提示される。
【０２９９】
日付のコンテキスト以外の種別のコンテキストに基づいて提示順が切り替わるようにしてもよい。例えば、感情のコンテキストに基づいて提示順が切り替わるようにすることが可能である。この場合、嬉しい、楽しいといったような、ポジティブなコンテキストのマクロがより上位に提示される。
【０３００】
提示画面を用いたGUIでの提示に加えて、「<コンテキスト>が違いますが、どちらにしますか？」などの合成音声を出力し、ユーザに問いかけるようにしてもよい。
【０３０１】
＜＜変形例＞＞
＜マクロ抽出テンプレートを用いないマクロ化手法＞
マクロ抽出テンプレートに定義された機能シーケンスを構成する複数の機能からマクロが生成されるものとしたが、マクロ抽出テンプレートに定義された機能シーケンスに含まれていない機能を含むようにしてマクロが生成されるようにしてもよい。
【０３０２】
・出現頻度の高い機能を提案する例
機能シーケンスが選択され、マクロが生成されたものとする。この場合において、選択された機能シーケンスを含むクラスタに、出現頻度の高い機能があるとき、その機能について、実行するか否かの提案がユーザに対して行われる。
【０３０３】
例えば、ユーザが「HappyLandのパーティー招待」の発話を行い、これに応じて、HappyLandプレイ時のパーティー招待用のマクロが生成されたものとする。「HappyLand」はゲームの名前である。パーティー招待用のマクロの元になった機能シーケンスには、パーティー招待の配信機能が含まれていない。
【０３０４】
この場合、「配信もしますか？」の合成音声が出力され、パーティー招待の配信機能を実行するか否かの提案が行われる。この提案は、例えば、HappyLandのプレイ時に、パーティー招待の機能と配信の機能を高い頻度でユーザが行っていたことに基づいて行われるものである。
【０３０５】
ユーザが「配信もして」の発話を行うことにより、配信の機能についても、パーティー招待の機能とまとめて実行される。
【０３０６】
なお、提案した同じ機能について、実行することが一定回数（例えば２回）を超えた場合、提案なしでマクロに含めて自動的に実行されるようにしてもよい。
【０３０７】
・コンテキストを指示するだけでクラスタ内の全機能を実行する例
例えば、ユーザが「このゲーム始める時の設定をまとめてやって」の発話を行った場合、ユーザ操作ログ上の、該当ゲームの開始時の操作に関するクラスタに記録されている、パーティー招待、BGM再生、配信などの全ての機能がマクロとして実行されるようにしてもよい。
【０３０８】
「寝る準備して」、「おやすみ」などの発話を行った場合、ユーザ操作ログ上の、就寝時間帯の操作に関するクラスタに記録されている、電気を消す、テレビを消す、アラーム設定などの全ての機能がマクロとして実行されるようにしてもよい。
【０３０９】
これにより、ユーザは、自身に特有の習慣的な操作をまとめて実行することが可能となる。
【０３１０】
＜その他の例＞
・情報処理システムの構成
ユーザの操作に応じたマクロを実行する処理が、情報処理端末１と情報処理サーバ２により実現されるものとしたが、情報処理端末１単体で実現されるようにしてもよい。この場合、図７に示す情報処理サーバ２の構成が情報処理端末１に設けられることになる。
【０３１１】
図７に示す情報処理サーバ２の全ての構成が情報処理端末１に設けられるのではなく、一部の構成が情報処理端末１に設けられ、他の構成については情報処理サーバ２などの他の装置に設けられるようにしてもよい。
【０３１２】
・ユーザ操作ログの記録内容の例
複数の機能からなる機能シーケンスがコンテキストと対応付けて記録されるものとしたが、１つの機能に関する情報が、その機能を実行するための操作が行われた時のコンテキストと対応付けてユーザ操作ログに記録されるようにしてもよい。
【０３１３】
・観測コンテキストのバリエーション
以下のコンテキストが観測され、観測コンテキストとして記録されるようにしてもよい。
・ゲームでの特定シーンのクリア（成功体験）
・ゲームオーバー・ゲームでのミッション失敗（失敗体験）
・食事中に何を食べているか
・ユーザが「眠い時の音楽で覚えて」の発話が行われた場合、“眠い”を観測コンテキストとして記録。
・うなずく等の所定のジェスチャとともに、「これをした時の音楽で覚えて」の発話が行われた場合、ジェスチャを観測コンテキストとして記録。この場合、ジェスチャしながら「これの時の音楽」の発話が行われた場合、そのジェスチャを表す観測コンテキストが対応付けて記録されている音楽が再生される。
【０３１４】
・生成コンテキストのバリエーション
以下のコンテキストが生成コンテキストとして生成され、記録されるようにしてもよい。
・音楽や効果音を出力させる。
・匂いを発生させる。この場合、ユーザは、「○○の匂い」といった、嗅覚で知覚した内容をエピソード記憶の付随情報として記憶することになる。
・コントローラなどのユーザが触れるデバイスに対して、振動を発生、痛みを生じさせる、温度を変化させる。この場合、ユーザは、触覚で知覚した内容を付随情報として記憶することになる。
・システム応答に用いた合成音声の話者声質（男女、大人／子供など）
【０３１５】
・フィードバック
機能の内容をユーザ操作ログに記録する際、何のコンテキストと対応付けて記録するのかをユーザに提示するようにしてもよい。例えば、コンテキストの内容を表すテキストが画面上に表示されようにしてもよいし、「食事中の音楽として覚えます」といったような合成音声が出力されるようにしてもよい。
【０３１６】
指示語Entityを用いたマクロの実行時に、ユーザが発話した指示語Entityが、マクロの検索に用いられるコンテキストを指し示す対象として情報処理システムにおいて管理されている場合、効果音が出力され、そのことがユーザに提示されるようにしてもよい。
【０３１７】
・セキュリティ
ユーザ操作ログが個人毎に管理されるようにしてもよい。指示語Entityを含む発話が行われた場合において、発話を行ったユーザの周りに他の人がいるとき、メッセージの内容などの、プライバシーにかかわる機能の実行が制限され、内容が提示されないようにしてもよい。
【０３１８】
・おすすめマクロの提示
性別、年齢、地域などのユーザの属性毎に、ユーザ操作ログに記録されているコンテキストの統計を収集しておき、統計に基づいて、コンテキストに応じたおすすめのマクロがユーザに提示されるようにしてもよい。
【０３１９】
＜コンピュータの構成例＞
上述した一連の処理は、ハードウェアにより実行することもできるし、ソフトウェアにより実行することもできる。一連の処理をソフトウェアにより実行する場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０３２０】
インストールされるプログラムは、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)等）や半導体メモリなどよりなる図６に示されるリムーバブルメディア２１１に記録して提供される。また、ローカルエリアネットワーク、インターネット、デジタル放送といった、有線または無線の伝送媒体を介して提供されるようにしてもよい。プログラムは、ROM２０２や記憶部２０８に、あらかじめインストールしておくことができる。
【０３２１】
コンピュータが実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【０３２２】
なお、本明細書において、システムとは、複数の構成要素（装置、モジュール（部品）等）の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、１つの筐体の中に複数のモジュールが収納されている１つの装置は、いずれも、システムである。
【０３２３】
本明細書に記載された効果はあくまで例示であって限定されるものでは無く、また他の効果があってもよい。
【０３２４】
本技術の実施の形態は、上述した実施の形態に限定されるものではなく、本技術の要旨を逸脱しない範囲において種々の変更が可能である。
【０３２５】
例えば、本技術は、１つの機能をネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【０３２６】
また、上述のフローチャートで説明した各ステップは、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０３２７】
さらに、１つのステップに複数の処理が含まれる場合には、その１つのステップに含まれる複数の処理は、１つの装置で実行する他、複数の装置で分担して実行することができる。
【０３２８】
＜構成の組み合わせ例＞
本技術は、以下のような構成をとることもできる。
【０３２９】
（１）
ユーザによる操作に応じて実行した機能と、前記操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、前記ユーザにより入力された指示語が指し示す前記コンテキストと対応付けて記録された前記機能を検索する検索部と、
検索された前記機能を実行し、前記ユーザに対する応答を出力させる応答制御部と
を備える情報処理装置。
（２）
前記ユーザによる前記操作に応じて実行した前記機能をクラスタリングすることによって、複数の前記機能からなるシーケンスを生成し、前記シーケンスと前記コンテキストとを対応付けて前記操作ログに記録する記録制御部をさらに備える
前記（１）に記載の情報処理装置。
（３）
前記ユーザの状況を含む前記コンテキストを認識する認識処理部をさらに備える
前記（１）または（２）に記載の情報処理装置。
（４）
前記認識処理部は、前記ユーザの状況として、日時、場所、前記ユーザが行っているタスク、前記ユーザの感情、前記ユーザの周辺の環境の雰囲気、および、前記ユーザの行動のうちの少なくともいずれかを認識する
前記（３）に記載の情報処理装置。
（５）
所定の出来事を前記ユーザに体験させるための処理を実行し、前記コンテキストを生成するコンテキスト生成部をさらに備える
前記（１）乃至（４）のいずれかに記載の情報処理装置。
（６）
前記コンテキスト生成部は、前記操作が行われることに応じて、前記コンテキストを生成する
前記（５）に記載の情報処理装置。
（７）
前記コンテキスト生成部は、前記ユーザが行っているタスク上のイベントを発生するための処理を行い、前記イベントに関する情報を前記コンテキストとして記録させる
前記（５）または（６）に記載の情報処理装置。
（８）
前記コンテキスト生成部は、前記ユーザがコミュニケーションをとっている対象の行動を変化させるための処理を行い、前記行動に関する情報を前記コンテキストとして記録させる
前記（５）または（６）に記載の情報処理装置。
（９）
前記検索部は、前記シーケンスを定義した複数のテンプレートのうち、前記ユーザによる入力の意図に応じた前記テンプレートに定義された前記シーケンスと同じ前記シーケンスであって、前記指示語が指し示す前記コンテキストと対応付けて記録された前記シーケンスを検索する
前記（２）に記載の情報処理装置。
（１０）
前記検索部は、検索結果の前記シーケンスが複数ある場合、それぞれの前記シーケンスに関する情報を提示し、
前記応答制御部は、前記ユーザにより指定された前記シーケンスを構成する複数の前記機能を実行する
前記（９）に記載の情報処理装置。
（１１）
前記検索部は、前記シーケンスに関する情報として、それぞれの前記コンテキストの差分を表す情報を提示する
前記（１０）に記載の情報処理装置。
（１２）
前記応答制御部は、前記コンテキストと対応付けて記録された前記シーケンスを構成する複数の前記機能を実行する
前記（２）、（９）乃至（１１）のいずれかに記載の情報処理装置。
（１３）
前記ユーザによる前記操作は、音声により行われる
前記（１）乃至（１２）のいずれかに記載の情報処理装置。
（１４）
情報処理装置が、
ユーザによる操作に応じて実行した機能と、前記操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、前記ユーザにより入力された指示語が指し示す前記コンテキストと対応付けて記録された前記機能を検索し、
検索した前記機能を実行し、前記ユーザに対する応答を出力させる
情報処理方法。
（１５）
コンピュータに、
ユーザによる操作に応じて実行した機能と、前記操作が行われた時のコンテキストとを対応付けて記録した操作ログに基づいて、前記ユーザにより入力された指示語が指し示す前記コンテキストと対応付けて記録された前記機能を検索し、
検索した前記機能を実行し、前記ユーザに対する応答を出力させる
処理を実行させるためのプログラム。
【符号の説明】
【０３３０】
１  情報処理端末，  ２  情報処理サーバ，  ２５１  音声認識処理部，  ２５２  発話意図理解処理部，  ２５３  指示語EntityDB，  ２５４  画像認識処理部，  ２５５  センサデータ認識処理部，  ２５６  操作記録検索処理部，  ２５７  マクロ抽出テンプレートDB，  ２５８  ユーザ操作ログDB，  ２５９  応答生成部，  ２６０  音声合成処理部，  ２６１  表示画像処理部，  ２７１  ユーザ操作ログ記録制御部，  ２７２  コンテキスト生成部，  ２７３  マクロ抽出部，  ２７４  応答制御部
【図１】
2020026799.tif 000003
【図２】
2020026799.tif 000004
【図３】
2020026799.tif 000005
【図４】
2020026799.tif 000006
【図５】
2020026799.tif 000007
【図６】
2020026799.tif 000008
【図７】
2020026799.tif 000009
【図８】
2020026799.tif 000010
【図９】
2020026799.tif 000011
【図１０】
2020026799.tif 000012
【図１１】
2020026799.tif 000013
【図１２】
2020026799.tif 000014
【図１３】
2020026799.tif 000015
【図１４】
2020026799.tif 000016
【図１５】
2020026799.tif 000017
【図１６】
2020026799.tif 000018
【図１７】
2020026799.tif 000019
【図１８】
2020026799.tif 000020
【図１９】
2020026799.tif 000021
【図２０】
2020026799.tif 000022
【図２１】
2020026799.tif 000023
【図２２】
2020026799.tif 000024
【図２３】
2020026799.tif 000025
【国際調査報告】
2020026799.tif 000026
2020026799.tif 000027
2020026799.tif 000028
2020026799.tif 000029