(57)【要約】  ユーザ入力に対応した処理を良好に行い得るようにする。  意図解釈部により、ユーザ入力の意図を解釈する。リクエスト発行部により、解釈された意図に応じたリクエストを発行する。ローカル処理制御部により、発行されたリクエストに基づき、該リクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかを判断し、クラウド処理実行部で実行させると判断した場合にはリクエストをクラウド処理制御部に送る。
2019176670.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ入力の意図を解釈する意図解釈部と、
上記解釈された意図に応じたリクエストを発行するリクエスト発行部と、
上記発行されたリクエストに基づき、該リクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかを判断し、上記クラウド処理実行部で実行させると判断した場合には上記リクエストをクラウド処理制御部に送るローカル処理制御部を備える
情報処理装置。
【請求項２】
上記ローカル処理制御部は、上記クラウド処理制御部に上記リクエストを送るとき、上記クラウド処理制御部から上記リクエストに対応したレスポンスを受ける
請求項１に記載の情報処理装置。
【請求項３】
上記ローカル処理制御部は、上記レスポンスに含まれるアプリリクエストを上記リクエスト発行部に送り、
上記リクエスト発行部は、上記アプリリクエストを受けたとき、該アプリリクエストに含まれるアプリ指定情報を含むリクエストを発行する
請求項２に記載の情報処理装置。
【請求項４】
上記アプリリクエストに含まれるアプリ指定情報は、上記レスポンスの発生に係るアプリを再度指定する
請求項３に記載の情報処理装置。
【請求項５】
上記アプリリクエストが含まれるレスポンスは、上記クラウド処理制御部で発行される
請求項４に記載の情報処理装置。
【請求項６】
上記レスポンスに含まれる応答情報に基づいて音声または映像の信号を出力するレンダリング部をさらに備える
請求項２に記載の情報処理装置。
【請求項７】
上記レンダリング部は、第１のリクエストに対応した音声または映像の信号出力中に、第２のリクエストに対応した応答情報が送られてくるとき、上記第１のリクエストに対応した音声または映像の信号出力を中止し、上記第２のリクエストに対応した音声または映像の信号の出力を始める
請求項６に記載の情報処理装置。
【請求項８】
意図解釈部が、ユーザ入力の意図を解釈する意図解釈ステップと、
リクエスト発行部が、上記解釈された意図に応じたリクエストを発行するリクエスト発行ステップと、
ローカル処理情報制御部が、上記発行されたリクエストに基づき、該リクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかを判断し、上記クラウド処理実行部で実行させると判断した場合には上記リクエストをクラウド処理制御部に送るローカル処理制御ステップを有する
情報処理方法。
【請求項９】
上記ローカル処理制御部は、上記クラウド処理制御部に上記リクエストを送るとき、上記クラウド処理制御部から上記リクエストに対応したレスポンスを受ける
請求項８に記載の情報処理方法。
【請求項１０】
上記ローカル処理制御部は、上記レスポンスに含まれるアプリリクエストを上記リクエスト発行部に送り、
上記リクエスト発行部は、上記アプリリクエストを受けたとき、該アプリリクエストに含まれるアプリ指定情報を含むリクエストを発行する
請求項９に記載の情報処理方法。
【請求項１１】
上記アプリリクエストに含まれるアプリ指定情報は、上記レスポンスの発生に係るアプリを再度指定する
請求項１０に記載の情報処理方法。
【請求項１２】
上記アプリリクエストが含まれるレスポンスは、上記クラウド処理制御部で発行される
請求項１１に記載の情報処理方法。
【請求項１３】
レンダリング部が、上記レスポンスに含まれる応答情報に基づいて音声または映像の信号を出力するレンダリングステップをさらに有する
請求項９に記載の情報処理方法。
【請求項１４】
上記レンダリング部は、第１のリクエストに対応した音声または映像の信号出力中に、第２のリクエストに対応した応答情報が送られてくるとき、上記第１のリクエストに対応した音声または映像の信号出力を中止し、上記第２のリクエストに対応した音声または映像の信号の出力を始める
請求項１３に記載の情報処理方法。
【請求項１５】
コンピュータを、
ユーザ入力の意図を解釈する意図解釈手段と、
上記解釈された意図に応じたリクエストを発行するリクエスト発行手段と、
上記発行されたリクエストに基づき、該リクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかを判断し、上記クラウド処理実行部で実行させると判断した場合には上記リクエストをクラウド処理制御部に送るローカル処理制御手段として機能させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、情報処理装置、情報処理方法およびプログラムに関し、特に、音声エージェントに適用して好適な情報処理装置等に関する。
【背景技術】
【０００２】
例えば、音声エージェントにおいて、ユーザ入力に対応した処理の全てをクラウド側で行うことも考えられるが、ローカル側でも十分に対応でき、あるいはローカル側で処理した方が好適な場合もある。【０００３】
また、一般的に、ユーザ入力に対してシステムからの出力によるフィードバックを与えることは、優れたユーザインタフェース(ＵＩ：Use interface)を実現するためには重要な要素である。しかし、発話によってユーザ入力を行う音声ＵＩでは、文字入力等に比べて、入力過程で「音声認識の精度」、「意味解析の精度」という不確実性を含むことから、意図した入力を受領できたこと、あるいはできなかったことを早期にフィードバックすることは重要である。【０００４】
例えば、特許文献１には、ユーザの発話に基づいてアプリケーション（以下、適宜、「アプリ」という）を起動し、その応答に応じた処理を実行する、という音声ＵＩ（User Interface）フレームワークについての記載がある。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１７−５２７８４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本技術の目的は、ユーザ入力に対応した処理を良好に行い得るようにすることにある。
【課題を解決するための手段】
【０００７】
本技術の概念は、
ユーザ入力の意図を解釈する意図解釈部と、
上記解釈された意図に応じたリクエストを発行するリクエスト発行部と、
上記発行されたリクエストに基づき、該リクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかを判断し、上記クラウド処理実行部で実行させると判断した場合には上記リクエストをクラウド処理制御部に送るローカル処理制御部を備える
情報処理装置にある。【０００８】
本技術において、意図解釈部により、ユーザ入力の意図が解釈される。リクエスト発行部により、解釈された意図に応じたリクエストが発行される。そして、ローカル処理制御部により、発行されたリクエストに基づき、このリクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかが判断され、クラウド処理実行部で実行させると判断した場合にはリクエストがクラウド処理制御部に送られる。例えば、ローカル処理制御部は、クラウド処理制御部にリクエストを送るとき、クラウド処理制御部からリクエストに対応したレスポンスを受ける、ようにされてもよい。【０００９】
例えば、ローカル処理制御部は、レスポンスに含まれるアプリリクエストをリクエスト発行部に送り、リクエスト発行部は、アプリリクエストを受けたとき、このアプリリクエストに含まれるアプリ指定情報を含むリクエストを発行する、ようにされてもよい。これにより、リクエストに対応した処理を、順次指定されたアプリで連鎖的に行うことが可能となる。【００１０】
この場合、例えば、アプリリクエストに含まれるアプリ指定情報は、レスポンスの発生に係るアプリを再度指定する、ようにされてもよい。これにより、リクエストに対するレスポンスを複数段階、例えば２段階で行うことが可能となり、リクエストに対応した処理に時間がかかる場合であっても、ユーザに即座に１段階目の応答を行うことが可能となる。例えば、アプリリクエストが含まれるレスポンスは、クラウド処理制御部で発行される、ようにされてもよい。【００１１】
また、例えば、レスポンスに含まれる応答情報に基づいて音声または映像の信号を出力するレンダリング部をさらに備える、ようにされてもよい。そして、この場合、例えば、レンダリング部は、第１のリクエストに対応した音声または映像の信号出力中に、第２のリクエストに対応した応答情報が送られてくるとき、第１のリクエストに対応した音声または映像の信号出力を中止し、第２のリクエストに対応した音声または映像の信号の出力を始める、ようにされてもよい。これにより、ユーザ入力の割り込みがあった場合に、その割り込みに対する応答の音声あるいは映像を優先的に出力させることができる。【００１２】
このように本技術においては、発行されたリクエストに基づき、このリクエストに対応した処理をローカル処理実行部で処理させるか、またはクラウド処理実行部で処理させるかを判断し、クラウド処理実行部で処理させると判断した場合にはリクエストをクラウド処理制御部に送るものである。そのため、ユーザ入力に対応した処理を、ローカル処理実行部およびクラウド処理実行部の協働で良好に行い得る。
【発明の効果】
【００１３】
本技術によれば、ユーザ入力に対応した処理を良好に行い得る。なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。
【図面の簡単な説明】
【００１４】
【図１】実施の形態としての情報処理装置の構成例を示すブロック図である。
【図２】２段階応答のシーケンスの一例を示す図である。
【図３】ディスパッチ後、応答再生中の割り込みのシーケンスの一例を示す図である。
【図４】ディスパッチ中の割り込みのシーケンスの一例を示す図である。
【図５】ディスパッチ中の割り込み＆追い越しのシーケンスの一例を示す図である。
【図６】ディスパッチ後、応答再生中の割り込み（応答無視されるケース）のシーケンスの一例を示す図である。
【図７】ディスパッチ中の割り込み（応答無視されるケース）のシーケンスの一例を示す図である。
【図８】ディスパッチ中の割り込み＆追い越し（応答無視されるケース）のシーケンスの一例を示す図である。
【図９】２段階応答に対する割り込みのシーケンスの一例を模式的に示す図である。
【図１０】２段階応答に対する割り込みのシーケンスの一例を模式的に示す図である。
【図１１】２段階応答中の割り込みのシーケンスの一例を示す図である。
【図１２】２段階応答中の割り込みのシーケンスの一例を示す図である。
【図１３】２段階応答中の割り込みのシーケンスの一例を示す図である。
【図１４】２段階応答中の割り込みのシーケンスの一例を示す図である。
【図１５】既定の２段階応答のシーケンスの一例を示す図である。
【図１６】ドメインゴールの推定におけるシーケンスの一例を示す図である。
【図１７】ドメインゴールの推定におけるシーケンスの一例を示す図である。
【図１８】割り込みであることを理解した上での応答に係るシーケンスの一例を示す図である。
【発明を実施するための形態】
【００１５】
以下、発明を実施するための形態（以下、「実施の形態」とする）について説明する。なお、説明は以下の順序で行う。
１．実施の形態
２．変形例
【００１６】
＜１．第１の実施の形態＞
［情報処理装置］
図１は、実施の形態としての情報処理装置１０の構成例を示している。この情報処理装置１０は、ローカル側処理装置１００と、クラウド側処理装置２００からなる。ローカル側処理装置１００は、入力部１０１と、意図解釈部（Agent Core）１０２と、通知監視部（Event Monitor）１０３と、ローカル処理制御部（Local App Dispatcher）１０４と、ローカル処理実行部（Local App Actions）１０５と、レンダリング部（App Renderer）１０６と、出力部１０７を有している。また、クラウド側処理装置２００は、クラウド処理制御部（Cloud App Dispatcher）２０１と、クラウド処理実行部（Cloud App Actions）２０２と、外部サービス２０３を有している。
【００１７】
入力部１０１は、ユーザの発話を検出するマイクロホン、周囲画像を取得するイメージセンサ、ユーザが入力操作を行うためのハードウェアキー、ネットワークからの通知受信部などからなる。入力部１０１は、キー入力情報、ネットワークからの通知情報などをシステムイベントとして通知監視部１０３に入力する。
【００１８】
また、入力部１０１は、マイクロホンで検出されたユーザの発話やイメージセンサで取得された周囲画像を意図解釈部１０２に送る。意図解釈部１０２は、ユーザの発話に対して音声認識をし、さらにその意図を解釈し、その解釈情報を含む発話イベントを通知監視部１０３に入力する。また、意図解釈部１０２は、周囲画像に対して画像解析を行い、さらにその意図を解釈し、その解釈情報を含むセンシングイベントを通知監視部１０３に入力する。
【００１９】
通知監視部１０３は、各種入力イベントに基づいて、アプリアクション（AppAction）のリクエスト（Request）であるアクションリクエスト（ActionRequest）を発行する。この意味で、通知監視部１０３は、リクエスト発行部も構成している。このアクションリクエストには、タイプ（type）、インテント（intent）、スロット（slots）の各情報が含まれる。なお、通知監視部１０３は、後述するアプリリクエスト（AppRequest）によるアプリイベントに基づいてもアクションリクエストを発行するが、そのアクションリクエストには、さらに、アプリＩＤ（appId）の情報が含まれる。
【００２０】
タイプは、イベントタイプを示す。例えば、発話イベントのアクションリクエストでは、イベントタイプは“speech”となる。また、例えば、システムイベントのアクションリクエストでは、“system”となる。また、例えば、アプリイベントのアクションリクエストでは、インベントタイプは“app”となる。
【００２１】
インテントは、それぞれのイベントにおける意図を示す。例えば、“時間を教えて”という発話があった場合、インテントは“CHECK-TIME”となる。また、例えば、“天気を教えて”という発話があった場合、インテントは“WEATHER-CHECK”となる。また、例えば、ハードウェアキーが押された場合、インテントは“KEY-PRESSED”となる。スロットは、は、インテントを補足する情報を示す。
【００２２】
例えば、「今日の品川の天気を教えて」のユーザ発話時におけるアクションリクエストの例を以下に示す。
type: "speech"
intent: "WEATHER-CHECK"
slots: { DATE-TIME: "2017/11/10 20:34:24", PLACE: "品川" }
【００２３】
また、例えば、「２時にアラームをセットして」のユーザ発話時におけるアクションリクエストの例を以下に示す。
type: "speech"
intent: "SET-ALARM"
slots: { DATE-TIME: "2017/11/10 14:00:00"}
【００２４】
ローカル処理制御部１０４は、通知監視部１０３で発行されるアクションリクエストに基づき、このアクションリクエストに対応した処理をローカル処理実行部１０５で実行させるか、またはクラウド処理制御部２０１に判断を任せるかを判断する。ローカル処理制御部１０４は、ローカル処理実行部１０５で処理できる場合には、ローカル処理実行部１０５で実行させると判断し、アクションリクエストをローカル処理実行部１０５に送る。そして、ローカル処理制御部１０４は、ローカル処理実行部１０５から、アプリアクション（AppAction）のレスポンス（Response）であるアクションレスポンス（ActionResponse）を受け取る。
【００２５】
ローカル処理制御部１０４は、”このインテントを含むアクションリスエストが来たらローカル処理実行部１０５に存在するこのアプリアクションで実行させる”という対応表を持っている。従って、通知監視部１０３から受けたアクションリクエストに含まれるインテントが対応表に含まれている場合、ローカル処理制御部１０４は、ローカル処理実行部１０５で実行させると判断し、アクションリクエストを対応するアプリアクションに送って処理させる。なお、ローカル側のアプリアクションは、後述するクラウド側のアプリアクションのように集合体としてのアプリの体をなしておらず、各アプリアクションが単体で存在している。
【００２６】
また、ローカル処理制御部１０４は、通知監視部１０３から受けたアクションリクエストに含まれるインテントが対応表に含まれていない場合には、クラウド側、つまりクラウド処理制御部２０１に判断を委譲することとし、アクションリクエストをクラウド処理制御部２０１に送る。
【００２７】
ローカル処理制御部１０４は、例えば、インターネット非接続環境でも動作するアクション、レンダリングを即時的に行うアクション（センシング状況のビジュアルフィードバックなど）、専用のモードで動作するアクション（システムアップデートやWifi AP接続、起動フィードバックやユーザ登録アプリなど）は、ローカル処理実行部１０５で実行させる。例えば、ボリューム増減の処理など、ローカル側に特化した処理は、ローカル処理実行部１０５で実行される。
【００２８】
ローカル処理制御部１０４は、クラウド処理制御部２０１にアクションリクエストを送った後、クラウド制御部２０１から、アクションレスポンス（ActionResponse）を受け取る。
【００２９】
アクションレスポンスには、アウトプットスピーチ（outputSpeech）、アウトプットビジュアル（outputVisual）、アプリリクエスト（appRequest）の各情報が含まれる。アウトプットスピーチは、応答を音声で提示するための情報（音声応答情報）であり、例えば、“今日の天気を教えて”という発話に対しては、「今日の天気を表示します」などの応答文のテキストデータが該当する。
【００３０】
アウトプットビジュアルは、応答を映像で提示するための情報（画面応答情報）であり、例えば、テキストベースのデータフォーマットで提供される。アプリリクエストは、アプリアクション間の連携を目的としたアプリ実行要求を示す。
【００３１】
例えば、「今日の品川の天気を教えて」のユーザ発話時におけるアクションレスポンスの例を以下に示す。
outputSpeech: "今日の天気を表示します"
outputVisual: <表示を作るためのレイアウト情報＆データ>,
【００３２】
また、アクションレスポンスのアプリリクエストには、アプリＩＤ（appId）、インテント（intent）、スロット（slots）、ディレイ（delay）の各情報が含まれる。アプリＩＤは、アクションリスエストをどのアプリに対して発行するかを指定するアプリ指定情報を示す。インテントは、アクションリクエストに含めるインテントの情報を示す。スロットは、アクションリクエストに含めるスロットの情報を示す。ディレイは、アクションリクエストを発行するまでの遅延時間を示す。
【００３３】
例えば、受けたアクションリクエストと同じパラメータで、自身のアプリアクションを呼び直す例を以下に示す。この例のようにアクションレスポンスのアプリリクエストを生成することで、後述する、２段階応答が実現される。
appId: <自アプリのアプリID>
intent: <ActionRequest に入っていた Intent>
slots: <ActionRequest に入っていた slots>
delay: 0
【００３４】
また、ローカル処理制御部１０４は、アクションレスポンスに含まれる応答情報（アウトプットスピーチ、アウトプットビジュアル）をレンダリング部１０６に送る。レンダリング部１０６は、応答情報に基づき、レンダリング（サウンドエフェクト、音声合成、アニメーション）を実行し、生成された音声信号や映像信号を出力部１０７に送る。出力部１０７は、スピーカ等の音声出力装置やプロジェクタ等の映像出力装置を備え、音声信号や映像信号による音声や映像を出力する。
【００３５】
なお、レンダリング部１０６では、第１のアクションリクエストに対応した音声信号や映像信号の出力中に、それに続く第２のアクションリクエストに対応した応答情報がローカル処理制御部１０４から送られてくるとき、第１のアクションリクエストに対応した音声信号や映像信号の出力を中止し、第２のアクションリクエストに対応した音声信号や映像信号の出力を開始する。これにより、ユーザ入力の割り込みがあった場合に、その割り込みに対する応答の音声あるいは映像を優先的に出力することが実現される。
【００３６】
ローカル処理制御部１０４は、アクションレスポンスにアプリリクエストが含まれている場合、このアプリリクエストをアプリイベントとして通知監視部１０３に送る。通知監視部１０３は、このアプリイベントに基づいて、ディレイ（delay）で示される遅延時間が経過した後に、アクションリクエストを発行する。このアクションリクエストには、上述したように、タイプ（type）、インテント（intent）、スロット（slots）の各情報の他に、アプリＩＤ（appId）の情報が含まれる。ここで、インテント、スロット、アプリＩＤの各情報は、アプリリクエストに含まれているものと等しくされる。
【００３７】
クラウド処理制御部２０１は、ローカル処理制御部１０４から送られてくるアクションリクエストを受け、そのアクションリクエストをクラウド処理実行部２０２に送る。クラウド処理実行部２０２は、複数のアプリ（クラウドアプリ）を備えている。ここで、アプリは、関連するアプリアクションをまとめたものであり、複数のアプリアクションの集合体である。例えば、“CHECK-TIME”を処理するアプリアクションと“SET-ALARM”を処理するアプリアクションは、クロック（Clock）アプリに含まれる。
【００３８】
また、アプリアクションは、インテントに対応して呼び出される実行単位であり、アクションリクエストを受けてアクションレスポンスを返す関数である。アプリアクションは、ウェブＡＰＩなどの外部サービス２０３にアクセスして取得した情報を応答情報として返すこともある。
【００３９】
クラウド処理制御部２０１は、ローカル処理制御部１０４から送られてくるアクションリクエストに含まれるインテントの情報に基づいて、このアクションリクエストを実行するアプリアクションを一意に決定する。また、クラウド処理制御部２０１は、アクションリクエストのタイプが発話イベントを示していて、発話のスロット情報に補完可能な不足、あるいは意味があいまいな内容があれば、このスロット情報の不足やあいまいさの解決を行う。
【００４０】
例えば、クラウド処理制御部２０１は、直近で返したアクションレスポンスの内容から、現在表示されている画面情報を把握できる。画面に時刻、あるいは場所などの情報を表示している際に、スロットに時刻、あるいは場所などの情報が不足している際には、これを補完する。また、ユーザ発話に「ここの天気見せて」のような指示語が含まれる場合も、同様に表示情報から補完を行う。また対話履歴から、複数の解釈を持つ言葉の解決も行う。例えば過去の対話で「大崎の天気を教えて」とユーザに聞かれ「大崎市」の天気を提示後、ユーザが「大崎駅」と言い直したことがあった場合には、大崎といえば大崎駅、という知識をクラウド処理制御部２０１の内部で保持し、以降のスロット解決に利用する。
【００４１】
クラウド処理制御部２０１は、ローカル処理制御部１０４から送られてくるアクションリクエストを、クラウド処理実行部２０２に存在する、上述したように一意に決定されたアプリアクションに送る。また、クラウド処理制御部２０１は、アクションリクエストの処理を行ったアプリアクションから応答情報などを含むアクションレスポンスを受け、ローカル処理制御部１０４に送る。
【００４２】
クラウド処理制御部２０１は、アプリ毎に、どのインテントを受け付け、そのアプリアクションを呼び出すという対応表を持っている。
【００４３】
クラウド処理制御部２０１は、以下の順に処理をして、ローカル処理制御部１０４から送られてくるアクションリクエストを実行するアプリアクションを決定する。
（１）アクションリクエストにアプリ指定情報であるアプリＩＤが含まれている場合、そのアプリＩＤで指定されるアプリの対応表を参照する。
（２）上記でない場合、フォアグランド（Foreground）アプリ、つまり最後に画面表示を行ったアプリの対応表を参照する。例えば、“天気を見せて”という発話がある場合、天気の画面が表示される。この場合は、天気アプリがフォアグランドアプリとなる。
【００４４】
（３）上記でない場合、特別に用意されたコモン（Common）アプリの対応表を参照する。クラウド処理制御部２０１は、このコモンアプリの対応表も持っている。この対応表は、「戻って」という発話で前の画面表示に戻るなどの共通動作を処理するアプリアクションを指定するためのものである。
（４）上記でない場合、デフォルトの対応表を参照する。このデフォルトの対応表は、アプリ毎の対応表とは別に、インテントとアプリとの対応関係を示しており、実際にはこのデフォルトの対応表で得られたアプリの対応表を参照して、アプリアクションを決定する。
【００４５】
なお、最終的に、ローカル処理制御部１０４から送られてくるアクションリクエストを実行するアプリアクションを決定できない場合も存在する。その場合、クラウド処理制御部２０１は、エラー情報を含めたアクションレスポンスを、ローカル処理制御部１０４に送る。
【００４６】
「２段階応答」
２段階応答について説明する。例えば、ユーザの「予定を表示して」の発話に対し、クラウド側の対応するアプリアクションは外部カレンダーサービスに問い合わせるため、その外部カレンダーサービスからの応答に基づいたアクションレスポンスの生成には時間がかかる。
【００４７】
この２段階応答は、応答内容を生成するのに時間がかかる処理に対する応答の工夫である。この２段階応答では、１段目では、アプリアクションは、すぐに返せる内容を即座に応答し、同時に、アプリリクエストで自分自身を最呼び出しする。２段目では、時間のかかる処理に係る応答をする。
【００４８】
図２は、２段階応答のシーケンスの一例を示している。この例では、簡単化のために、意図解釈部１０２および通知監視部１０３の図示は省略している。「予定を表示して」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト（１段目）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクションに送られる。
【００４９】
このアプリアクションでは、「本日の予定を表示します」という音声応答情報と自分自身を呼び戻すためのアプリリクエストを含む１段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００５０】
この１段目のアクションレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答として「本日の予定を表示します」の音声出力（応答再生）が開始される。また、アクションレスポンスに含まれるアプリリクエストによるアプリイベントのアクションリクエスト（２段目）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクションに送られる。
【００５１】
このアプリアクションでは、外部サービスへの問い合わせなど、時間のかかる処理が行われた後に、「こちらです」という音声応答情報と、予定の埋まったカレンダーの画面応答情報を含む２段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００５２】
この２段目のアクションレスポンスに含まれる音声応答情報および画面応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答が完了した状態で、２段目の応答として、「こちらです」の音声出力が開始されると共にカレンダー画面の表示が開始される。
【００５３】
「２段階応答を用いると良いケース」
２段階応答を用いると良いケースについて述べる。２段階応答は、以下のような、応答生成をするのに時間がかかるケースにおいて効果を発揮する。
（１）アプリアクション内部で外部サービスの時間のかかる可能性のあるＡＰＩ（Application Programming Interface）を実行するケース。
時間のかかる要因は、外部サービス側の事情によってさまざまであるが、サーバが貧弱でリクエストに対する処理が遅い(外部サービス側のリソースの問題)、本質的に時間のかかる処理を依頼している(大規模データベースに対するクエリ)、などが考えられる。
【００５４】
（２）アプリアクション内部で複雑で時間のかかる演算を行うケース。
ユーザ発話文言のテキストに対する意味解析を行う、外部サービス(場合によっては複数)からの応答に基づき、応答生成のための2次解析を行う(機械学習を内部的に用いるなど)、画面応答のための画像をピクセルレベルで生成・加工する（画像処理を内部的に行う）、アプリアクション内部で大規模データベースへのアクセスを行う、などが考えられる。
【００５５】
（３）アプリアクション内部で、なんらかの待ち時間を設けた処理を行う必要があるケース。
ユーザ発話に対する応答を遅らせるために、アプリアクション内で意図的にスリープ（sleep））する、などが考えられる。
【００５６】
「１段目の応答生成」
１段目の応答生成について述べる。1段目にどのような応答をするかはアプリアクション側の実装次第で自由であるが、時間のかかる処理を遅延させて２段目に応答する、という２段階応答の性質を考えると、1段目の応答を以下のように返すのが望ましい。
（１）即座に応答できるものを返す。
この場合、入力情報のみから応答を返す。
（２）ユーザに対し、要求を正しく受け付けたことを知らせる。
この場合、ユーザのリクエスト内容を繰り返す（ミラーリング）か、あるいは日時、場所、予定名など、具体的な要求内容を応答文に入れる。
【００５７】
また、以下は必須ではないが、より自然な応答とするためには考慮することが望ましい。
（１）応答パターンを複数用意して置き、適切なものを返す（毎回定型的な応答だと機械的な印象を与えるため）。
この場合、ランダムで選択、発話ユーザの年齢/男女などのユーザ属性に基づいて優先順位付けして選択する。
（２）発話ユーザの普段の口調に合わせ、応答の口調を調整する。
この場合、「〜だよね」と話すユーザに対しては「〜だよ」、「〜ですか」と話すユーザに対しては「〜です」と語尾を調整する。
【００５８】
「割り込み」
割り込みについて説明する。ユーザ入力の割り込みがあった場合、その割り込みに対する応答の音声あるいは映像を優先的に出力させる。発話の割り込みに対する基本挙動を説明する。図３は、ディスパッチ後、応答再生中の割り込みのシーケンスの一例を示している。この例では、簡単化のために、意図解釈部１０２および通知監視部１０３の図示は省略している。このことは以下のシーケンス例においても同様である。
【００５９】
「今日の天気を見せて」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト「request 1」がクラウド処理制御部２０１に送られ、さらにこのアクションリクエスト「request 1」はクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【００６０】
このアプリアクション（１）では、アクションリクエスト「request 1」に対する処理が実行され、「今日の天気は・・・」という音声応答情報を含むアクションレスポンス「response 1」が生成され、このアクションレスポンス「response 1」はクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。このアクションレスポンス「response 1」に含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「今日の天気は・・・」の応答音声の出力（再生）が開始される。
【００６１】
この応答音声出力中に、同じユーザ、あるいは別なユーザの「今何時？」の発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト「request 2」がクラウド処理制御部２０１に送られ、さらにこのアクションリクエスト「request 2」はクラウド処理実行部２０２の対応するアプリアクション（２）に送られる。
【００６２】
このアプリアクション（２）では、アクションリクエスト「request 2」に対する処理が実行され、「現在の時刻は１８：０２分です」という音声応答情報を含むアクションレスポンス「response 2」が生成され、このアクションレスポンス「response 2」はクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００６３】
このアクションレスポンス「response 2」に含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「現在の時刻は１８：０２分です」の応答音声の出力が開始される。なお、この時点で、アクションリクエスト「request 1」に対する応答音声の出力が続いていれば、それは中断される。
【００６４】
図４は、ディスパッチ中の割り込みのシーケンスの一例を示している。「今日の天気を見せて」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト「request 1」がクラウド処理制御部２０１に送られ、さらにこのアクションリクエスト「request 1」はクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【００６５】
また、同じユーザ、あるいは別なユーザの「今何時？」の発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト「request 2」がクラウド処理制御部２０１に送られ、さらにこのアクションリクエスト「request 2」はクラウド処理実行部２０２の対応するアプリアクション（２）に送られる。
【００６６】
アプリアクション（１）では、アクションリクエスト「request 1」に対する処理が実行され、「今日の天気は・・・」という音声応答情報を含むアクションレスポンス「response 1」が生成され、このアクションレスポンス「response 1」はクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。このアクションレスポンス「response 1」に含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「今日の天気は・・・」の応答音声の出力（再生）が開始される。
【００６７】
また、アプリアクション（２）では、アクションリクエスト「request 2」に対する処理が実行され、「現在の時刻は１８：０２分です」という音声応答情報を含むアクションレスポンス「response 2」が生成され、このアクションレスポンス「response 2」はクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００６８】
このアクションレスポンス「response 2」に含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「現在の時刻は１８：０２分です」の応答音声の出力が開始される。なお、この時点で、アクションリクエスト「request 1」に対する応答音声の出力が続いていれば、それは中断される。
【００６９】
図５は、ディスパッチ中の割り込み＆追い越しのシーケンスの一例を示している。「今日の天気を見せて」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト「request 1」がクラウド処理制御部２０１に送られ、さらにこのアクションリクエスト「request 1」はクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【００７０】
また、同じユーザ、あるいは別なユーザの「今何時？」の発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト「request 2」がクラウド処理制御部２０１に送られ、さらにこのアクションリクエスト「request 2」はクラウド処理実行部２０２の対応するアプリアクション（２）に送られる。
【００７１】
アプリアクション（２）では、アクションリクエスト「request 2」に対する処理が実行され、「現在の時刻は１８：０２分です」という音声応答情報を含むアクションレスポンス「response 2」が生成され、このアクションレスポンス「response 2」はクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。このアクションレスポンス「response 2」に含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「現在の時刻は１８：０２分です」の応答音声の出力（再生）が開始される。
【００７２】
また、アプリアクション（１）では、アクションリクエスト「request 1」に対する処理が実行され、「今日の天気は・・・」という音声応答情報を含むアクションレスポンス「response 1」が生成され、このアクションレスポンス「response 1」はクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。この時点で、アクションリクエスト「request 2」に対する応答音声の出力が既に開始されており、ローカル処理制御部１０４はそのことを知っているので、このアクションリクエスト「request 1」に対するアクションレスポンス「response 1」は無視される。
【００７３】
図６、図７、図８は、それぞれ、図３、図４、図５と同様のパターンのシーケンスの一例を示しているが、これらのシーケンスではアクションレスポンス「response 2」がエラー応答である場合であって無視される。この場合、アクションリクエスト「request 2」は、アクションリクエスト「request 1」に係る挙動に影響を与えない。
【００７４】
アクションレスポンス「response 2」がエラー応答となるのは、アクションリクエスト「request 2」に対するアプリアクション（２）の処理まで行ったがその内部でエラーが発生した場合、あるいはアクションリクエスト「request 2」を処理するアプリアクションを決定できなかった場合などである。なお、図６、図７、図８においては、クラウド処理制御部２０１からアプリアクション（２）にアクションリクエスト「request 2」が送られるように示しているが、クラウド処理制御部２０１でアクションリクエスト「request 2」を処理するアプリアクションを決定できなかった場合は、アプリアクション（２）にアクションリクエスト「request 2」が送られることはなくエラー応答としてのアクションレスポンス「response 2」はクラウド処理制御部２０１で生成される。
【００７５】
「２段階応答に対する割り込み」
２段階応答に対する割り込みについて説明する。図９（ａ）〜（ｆ）、図１０（ａ）〜（ｄ）は、２段階応答に対する割り込みのシーケンスの一例を模式的に示している。破線は、割り込みの挙動を示している。
【００７６】
図９（ａ），（ｂ），（ｃ）は、１段目に対して、図３、図４、図５のシーケンス例と同様の割り込みが行われる場合のシーケンス例を示している。この場合、２段階応答に関係なく、割り込みのアクションリクエストに対するアクションレスポンスが帰ってきた時点で、１段目の応答出力（再生）はキャンセルされ、さらに、２段目のアクションリクエストもキャンセルされる。
【００７７】
図９（ｄ），（ｅ），（ｆ）は２段目に対して、図３、図４、図５のシーケンス例と同様の割り込みが行われる場合のシーケンス例を示している。この場合、割り込みのアクションリクエストに対するアクションレスポンスが帰ってきた時点で、２段目のアクションリクエストはキャンセルされる。なお、この場合、その時点で１段目の応答出力（再生）がまだ継続している場合には、当然それもキャンセルされる。
【００７８】
図１０（ａ）〜（ｄ）は、割り込みに係るアクションリクエストとアクションレスポンスが１段目と２段目にまたがっている場合のシーケンス例を示している。図１１は、図１０（ａ）に対応した２段階応答中の割り込みのシーケンスの一例を示している。
【００７９】
「予定を表示して」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト（１段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【００８０】
また、同じユーザ、あるいは別なユーザの「今何時？」の発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエストである割り込みリクエストがクラウド処理制御部２０１に送られ、さらにこの割り込みリクエストはクラウド処理実行部２０２の対応するアプリアクション（２）に送られる。
【００８１】
アプリアクション（１）では、「本日の予定を表示します」という音声応答情報と自分自身を呼び戻すためのアプリリクエストを含む１段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００８２】
この１段目のアクションレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答として「本日の予定を表示します」の応答音声の出力（再生）が開始される。また、アクションレスポンスに含まれるアプリリクエストによるアプリイベントのアクションリクエスト（２段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【００８３】
アプリアクション（２）では、割り込みリクエストに対する処理が実行され、「現在の時刻は１８：０２分です」という音声応答情報を含むアクションレスポンスである割り込みレスポンスが生成され、破線で示すように、この割り込みレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００８４】
この割り込みレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「現在の時刻は１８：０２分です」の割り込みの応答音声の出力が開始される。なお、この時点で、１段目のアクションレスポンスの応答音声の出力が続いていれば、それは中断される。
【００８５】
また、アプリアクション（１）では、２段目のアクションリクエストに対する処理が実行され、２段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。この時点で、割り込みレスポンスに対する応答音声の出力が既に開始されており、ローカル処理制御部１０４はそのことを知っているので、このアクションレスポンスを無視される。
【００８６】
図１２は、図１０（ｂ）に対応した２段階応答中の割り込みのシーケンスの一例を示している。
【００８７】
「予定を表示して」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト（１段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【００８８】
また、同じユーザ、あるいは別なユーザの「今何時？」の発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエストである割り込みリクエストがクラウド処理制御部２０１に送られ、さらにこの割り込みリクエストはクラウド処理実行部２０２の対応するアプリアクション（２）に送られる。
【００８９】
アプリアクション（１）では、「本日の予定を表示します」という音声応答情報と自分自身を呼び戻すためのアプリリクエストを含む１段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００９０】
この１段目のアクションレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答として「本日の予定を表示します」の応答音声の出力（再生）が開始される。また、このアクションレスポンスに含まれるアプリリクエストによるアプリイベントのアクションリクエスト（２段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【００９１】
このアプリアクション（１）では、外部サービスへの問い合わせなど、時間の係る処理が行われた後に、「こちらです」という音声応答情報と、予定の埋まったカレンダーの画面応答情報を含む２段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００９２】
この２段目のアクションレスポンスに含まれる音声応答情報および画面応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答の完了した状態で、２段目の応答として、「こちらです」の音声出力が開始されると共にカレンダー画面の表示が開始される。
【００９３】
また、アプリアクション（２）では、割り込みリクエストに対する処理が実行され、「現在の時刻は１８：０２分です」という音声応答情報を含むアクションレスポンスである割り込みレスポンスが生成され、破線で示すように、この割り込みレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００９４】
この割り込みレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「現在の時刻は１８：０２分です」の割り込みの応答音声の出力が開始される。なお、この時点で、２段目のアクションレスポンスの応答（音声、画面）の出力が続いていれば、それは中断される。
【００９５】
図１３は、図１０（ｃ）に対応した２段階応答中の割り込みのシーケンスの一例を示している。
【００９６】
「予定を表示して」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト（１段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【００９７】
アプリアクション（１）では、「本日の予定を表示します」という音声応答情報と自分自身を呼び戻すためのアプリリクエストを含む１段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【００９８】
また、同じユーザ、あるいは別なユーザの「今何時？」の発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエストである割り込みリクエストがクラウド処理制御部２０１に送られ、さらにこの割り込みリクエストはクラウド処理実行部２０２の対応するアプリアクション（２）に送られる。
【００９９】
ローカル処理制御部１０４に送られてくる１段目のアクションレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答として「本日の予定を表示します」の応答音声の出力（再生）が開始される。また、このアクションレスポンスに含まれるアプリリクエストによるアプリイベントのアクションリクエスト（２段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【０１００】
アプリアクション（２）では、割り込みリクエストに対する処理が実行され、「現在の時刻は１８：０２分です」という音声応答情報を含むアクションレスポンスである割り込みレスポンスが生成され、破線で示すように、この割り込みレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１０１】
この割り込みレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「現在の時刻は１８：０２分です」の割り込みの応答音声の出力が開始される。なお、この時点で、１段目のアクションレスポンスの応答音声の出力が続いていれば、それは中断される。
【０１０２】
また、アプリアクション（１）では、２段目のアクションリクエストに対する処理が実行され、２段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。この時点で、割り込みレスポンスに対する応答音声の出力が既に開始されており、ローカル処理制御部１０４はそのことを知っているので、このアクションレスポンスを無視される。
【０１０３】
図１４は、図１０（ｄ）に対応した２段階応答に対する割り込みのシーケンスの一例を示している。
【０１０４】
「予定を表示して」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト（１段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【０１０５】
アプリアクション（１）では、「本日の予定を表示します」という音声応答情報と自分自身を呼び戻すためのアプリリクエストを含む１段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１０６】
また、同じユーザ、あるいは別なユーザの「今何時？」の発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエストである割り込みリクエストがクラウド処理制御部２０１に送られ、さらにこの割り込みリクエストはクラウド処理実行部２０２の対応するアプリアクション（２）に送られる。
【０１０７】
ローカル処理制御部１０４に送られてくる１段目のアクションレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答として「本日の予定を表示します」の応答音声の出力（再生）が開始される。また、このアクションレスポンスに含まれるアプリリクエストによるアプリイベントのアクションリクエスト（２段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【０１０８】
このアプリアクション（１）では、外部サービスへの問い合わせなど、時間の係る処理が行われた後に、「こちらです」という音声応答情報と、予定の埋まったカレンダーの画面応答情報を含む２段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１０９】
この２段目のアクションレスポンスに含まれる音声応答情報および画面応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答の完了した状態で、２段目の応答として、「こちらです」の音声出力が開始されると共にカレンダー画面の表示が開始される。
【０１１０】
また、アプリアクション（２）では、割り込みリクエストに対する処理が実行され、「現在の時刻は１８：０２分です」という音声応答情報を含むアクションレスポンスである割り込みレスポンスが生成され、破線で示すように、この割り込みレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１１１】
この割り込みレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「現在の時刻は１８：０２分です」の割り込みの応答音声の出力が開始される。なお、この時点で、２段目のアクションレスポンスの応答（音声、画面）の出力が続いていれば、それは中断される。
【０１１２】
なお、上述の２段階応答に対する割り込みにおいて、通常の割り込み時と同様に（図６〜図８参照）、割り込んだ側のレスポンス（割り込みレスポンス）がエラー応答である場合であって無視されるケースにおいては、既存の挙動に影響を与えない（図２参照）。
【０１１３】
なお、上述の２段階応答に関しては、アプリアクションの設計時点で、このアプリアクションは時間のかかる処理を行うので２段階応答をする、というように予め決めることもできるが、以下のようにすることで、処理に時間がかかりそうだとわかった際に、アプリアクションは２段階応答に切り替えることもできる。
【０１１４】
例えば、アプリアクションは、アクションリクエストを受け取ると同時に、タイマーを設定する（例えば１秒）。そして、アプリアクションは、タイマー発火より前に必要な処理が全て完了したら、タイマーをキャンセルし、通常通りにアクションレスポンスを返す。一方、アプリアクションは、必要な処理が全て完了する前にタイマーが発火したら、必要な処理の実行を中断し、２段階応答に方針を切り替え、２段階応答の1段目に相当するアクションレスポンスを返すようにする。その後のアプリアクションの処理は、上述した２段階応答の場合と同様である。
【０１１５】
以上説明したように、図１に示す情報処理装置１０において、ローカル処理制御部１０４は、通知監視部１０３で発行されたアクションリクエストに基づいて、このアクションリクエストに対応した処理をローカル処理実行部１０５で処理させるか、またはクラウド処理実行部２０２で処理させるかを判断し、クラウド処理実行部２０２で処理させると判断した場合に、このアクションリクエストをクラウド処理制御部２０１に送るものである。そのため、ユーザ入力に対応した処理を、ローカル処理実行部１０５およびクラウド処理実行部２０２の協働で良好に行い得る。
【０１１６】
また、図１に示す情報処理装置１０において、クラウド処理実行部２０２のアプリアクションが生成するアクションレスポンスにアプリ指定情報を持つアプリリクエストを含ませることができ、そのアプリ指定情報で自身のアプリアクションが含まれるアプリを指定できる。そのため、アクションリクエストに対するレスポンスを複数段階、例えば２段階で行うことが可能となり、アクションリクエストに対応した処理に時間がかかる場合であっても、ユーザに即座に１段階目の応答を行うことができる。
【０１１７】
また、図１に示す情報処理装置１０において、レンダリング部１０６は、第１のアクションリクエストに対応した音声または映像の信号出力中に、第２のアクションリクエスト（割り込みリクエスト）に対応した応答情報が送られてくるとき、第１のアクションリクエストに対応した音声または映像の信号出力を中止し、第２のアクションリクエストに対応した音声または映像の信号の出力を始める。そのため、ユーザ入力の割り込みがあった場合に、その割り込みに対する応答の音声あるいは映像を優先的に出力させることができ、自然な割り込み応答を実行できる。
【０１１８】
＜２．変形例＞
なお、上述実施の形態においては、２段階応答において、１段目の応答もアプリアクションが行う例を示したが、この１段目の応答に関しては、クラウド処理制御部２０１で行うことも考えられる。以下、このように１段目の応答をクラウド処理制御部２０１で行う２段階応答を「既定の２段階応答」と呼ぶ。この既定の２段階応答を用いる際に、クラウド処理制御部２０１に、どのインテント（intent）がきたときに既定の２段階応答で扱うかどうかを示すブーリアン（boolean）値を設定で持たせるようにしてもよい。
【０１１９】
図１５は、既定の２段階応答のシーケンスの一例を示している。この例では、簡単化のために、意図解釈部１０２および通知監視部１０３の図示は省略している。「予定を表示して」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト（１段目のrequest）がクラウド処理制御部２０１に送られる。
【０１２０】
クラウド制御処理部２０１は、このアクションリクエストに含まれるインテントの情報から、既定の２段階応答で扱うものと判断する。そして、クラウド制御処理部２０１では、インテントに応じた既定の２段階応答である「本日の予定を表示します」という音声応答情報と、実際にアクションリクエストを処理するアプリアクションを呼び出すためのアプリリクエストを含む１段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１２１】
この１段目のアクションレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答として「本日の予定を表示します」の音声出力（応答再生）が開始される。また、アクションレスポンスに含まれるアプリリクエストによるアプリイベントのアクションリクエスト（２段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクションに送られる。
【０１２２】
このアプリアクションでは、外部サービスへの問い合わせなど、時間の係る処理が行われた後に、「こちらです」という音声応答情報と、予定の埋まったカレンダーの画面応答情報を含む２段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１２３】
この２段目のアクションレスポンスに含まれる音声応答情報および画面応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答の完了した状態で、２段目の応答として、「こちらです」の音声出力が開始されると共にカレンダー画面の表示が開始される。
【０１２４】
「既定の２段階応答を用いる場合の１段目の応答生成について」
ここで、既定の２段階応答を用いる場合の１段目の応答生成について説明する。既定の２段階応答を用いる場合、１段目の応答は共通部分であるクラウド処理制御部２０１で行われるため、応答内容には工夫が必要である。既定の２段階応答における1段目の応答生成は以下のようなパターンの中からランダムに選択することで行うことができる。
【０１２５】
（１）ユーザ発話に基づく方法
「{ユーザ発話}ですね」「{ユーザ発話}で了解しました」等、ユーザ発話を含むミラーリングにより応答生成をする。
【０１２６】
（２）インテント（intent）に基づく方法
「intent = WEATHER-CHECK 」であれば「天気ですね」、「intent = SCHEDULE-ADD」であれば「予定の追加ですね」等、インテントに対して固定で割り当てた文言（複数バリエーション可）により応答生成をする。
【０１２７】
（３）インテント（intent）＋スロット（slot）に基づく方法
「intent = WEATHER-CHECK」に対し、スロットに「DATE = "today"」が入っていた際に、「今日の天気ですね」等、インテント＋スロットに対して割り当てた文言（複数バリエーション可）により応答生成をする。
【０１２８】
（４）汎用的に使える応答文言
「了解しました」、「わかりました」、「少々おまちください」等により応答生成をする。
【０１２９】
なお、一律ランダムではなく、アプリアクション側でどのパターンを優先するかの優先度を指定できてもよい。また、アプリアクション側にて、「既定の２段階応答で扱うかどうか」の設定に加え、その際の応答内容を設定として渡せるようになっていてもよい。例えば天気のアプリが、応答内容として「ちょっと今からお天気博士に聞きに行ってきますね」と設定しておくなどである。この場合、クラウド処理制御部２０１は、それをそのまま応答として用いてもよいし、上記候補の1つとしてもよい。また、クラウド処理制御部２０１は、通常の２段階応答における、アプリアクション側での１段目の応答生成と同様に、ユーザ属性の考慮や口調の調整等を行ってもよい。
【０１３０】
「ドメインゴール（intent）の推定」
上述の実施の形態で説明したように、ユーザの発話は、意図解釈部（Agent Core）１０２において、音声認識されると共にその意図解釈が行われる。また、図１６のシーケンスの一例に示すように、意図解釈部１０２の対話制御機能により。省略された発話に対するユーザの意図の補完も行われる。
【０１３１】
例えば、ユーザの「予定を表示して」の発話の後に、ユーザが「明日は？」の省略された発話を行った場合、意図解釈部１０２は、「明日の予定」のように補完をすることも行われる。これにより、この場合、通知監視部（Event Monitor）1０３からは、「明日の予定」に相当するアクションリクエストが発行される。
【０１３２】
意図解釈部１０２では、基本的には、別の意図のユーザ発話が発生することでコンテキストが切り替わる。一方、アプリアクション側からのフィードバックでコンテキストが切り替わることもある。図１７は、その場合におけるシーケンスの一例を示している。なお、この例では、簡単化のために、通知監視部１０３の図示は省略している。
【０１３３】
「予定を表示して」のユーザ発話があるとき、意図解釈部（Agent Core）１０２は、その意図解釈を行う。この場合、意図解釈部１０２のコンテキストは、「予定のコンテキスト」に切り替わる。意図解釈部１０２の解釈結果は通知監視部（Event Monitor）1０３に送られ、「予定を表示して」に相当するアクションリクエストが発行される。このアクションリクエストは、ローカル処理制御部１０４からクラウド処理制御部２０１に送られ、さらにクラウド処理実行部２０２の対応するアプリアクションに送られる。
【０１３４】
アプリアクション２０２では、アクションリクエストの処理が行われる。この場合、予定について聞かれたが「予定じゃなくて天気はどうですか？」という音声情報と、天気の話題であることのフィードバック“dalogueState”の情報を含むアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１３５】
このアクションレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、応答として、「予定じゃなくて天気はどうですか？」の音声出力が開始される。また、このアクションレスポンスに含まれる天気の話題であることのフィードバック“dalogueState”の情報は意図解釈部１０２に送られ、この意図解釈部１０２のコンテキストは、「天気のコンテキスト」に切り替わる。
【０１３６】
その後に、ユーザが「明日は？」の省略された発話を行った場合、意図解釈部１０２では、「天気のコンテキスト」に基づき、図１６の例とは異なり、「明日の天気」のように補完が行われる。これにより、通知監視部（Event Monitor）1０３からは、「明日の天気」に相当するアクションリクエストが発行される。
【０１３７】
「割り込みであることを理解した上での応答」
次に、割り込みであることを理解した上での応答について説明する。ローカル処理制御部（Local App Dispatcher）１０４は、例えば、以下のケースにおいて「割り込みフラグ」を付与する。
（１）別のユーザ発話に対するディスパッチ中、あるいはそのレスポンスを応答再生中である場合
（２）別のユーザ発話に対するディスパッチ中、あるいはそのレスポンスを応答再生中であり、かつ割り込まれる発話と割り込む発話とが同一のインテント（intent）である場合
【０１３８】
また、アプリアクション（App Action）は、割り込みフラグに応じて応答内容を変えることができる。例えば、予定を表示するアプリアクションが、「明日の予定」＋割り込みフラグ のリクエストを受けた場合、通常であれば「明日の予定ですね」と応答すべきところを「おっと、明日でしたか。了解です」のように応答するなどが考えられる。
【０１３９】
図１８は、割り込みであることを理解した上での応答に係るシーケンスの一例を示している。「予定を表示して」のユーザ発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト（１段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【０１４０】
アプリアクション（１）では、「本日の予定を表示します」という音声応答情報と自分自身を呼び戻すためのアプリリクエストを含む１段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１４１】
ローカル処理制御部１０４に送られてくる１段目のアクションレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答として「本日の予定を表示します」の応答音声の出力（再生）が開始される。また、このアクションレスポンスに含まれるアプリリクエストによるアプリイベントのアクションリクエスト（２段目のrequest）がクラウド処理制御部２０１に送られ、さらにこのアクションリクエストはクラウド処理実行部２０２の対応するアプリアクション（１）に送られる。
【０１４２】
また、同じユーザ、あるいは別なユーザの「明日は」の発話があるとき、ローカル処理制御部１０４からその発話イベントのアクションリクエスト（割り込みリクエスト）がクラウド処理制御部２０１に送られ、さらに対応するアプリアクション（２）に送られる。この割り込みリクエストには、割り込みであることを示す割り込みフラグが付加される。
【０１４３】
このアプリアクション（１）では、外部サービスへの問い合わせなど、時間の係る処理が行われた後に、「こちらです」という音声応答情報と、予定の埋まったカレンダーの画面応答情報を含む２段目のアクションレスポンスが生成され、破線で示すように、このアクションレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１４４】
この２段目のアクションレスポンスに含まれる音声応答情報および画面応答情報はレンダリング部１０６に送られてレンダリングされ、１段目の応答の完了した状態で、２段目の応答として、「こちらです」の音声出力が開始されると共にカレンダー画面の表示が開始される。
【０１４５】
また、アプリアクション（２）では、割り込みリクエストに対する処理が実行され、割り込みフラグに基づき、割り込みであることを理解した上での応答を作成できる。例えば、「おっと、明日ですか」という音声応答情報を含むアクションレスポンスである割り込みレスポンスが生成され、破線で示すように、この割り込みレスポンスはクラウド処理制御部２０１を通じてローカル処理制御部１０４に送られる。
【０１４６】
この割り込みレスポンスに含まれる音声応答情報はレンダリング部１０６に送られてレンダリングされ、「おっと、明日ですか」の割り込みの応答音声の出力が開始される。なお、この時点で、２段目のアクションレスポンスの応答（音声、画面）の出力が続いていれば、それは中断される。
【０１４７】
また、上述実施の形態においては、アクションレスポンス（ActionResponse）に含めるアプリリクエスト（appRequest）を用いて２段階応答をする例を説明したが、２段階に限定されるものではなく、同様にして３段階以上で応答することも考えられる。例えば、画面を切り替えながら、順次情報を提示していきたいというケースに適用できる。また、同一のアプリアクションを再度呼び出すだけでなく、他のアプリアクションをも含めて順次呼び出して、段階的な応答をさせることも可能である。
【０１４８】
また、本技術は、以下のような構成を取ることもできる。
（１）ユーザ入力の意図を解釈する意図解釈部と、
上記解釈された意図に応じたリクエストを発行するリクエスト発行部と、
上記発行されたリクエストに基づき、該リクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかを判断し、上記クラウド処理実行部で実行させると判断した場合には上記リクエストをクラウド処理制御部に送るローカル処理制御部を備える
情報処理装置。
（２）上記ローカル処理制御部は、上記クラウド処理制御部に上記リクエストを送るとき、上記クラウド処理制御部から上記リクエストに対応したレスポンスを受ける
前記（１）に記載の情報処理装置。
（３）上記ローカル処理制御部は、上記レスポンスに含まれるアプリリクエストを上記リクエスト発行部に送り、
上記リクエスト発行部は、上記アプリリクエストを受けたとき、該アプリリクエストに含まれるアプリ指定情報を含むリクエストを発行する
前記（２）に記載の情報処理装置。
（４）上記アプリリクエストに含まれるアプリ指定情報は、上記レスポンスの発生に係るアプリを再度指定する
前記（３）に記載の情報処理装置。
（５）上記アプリリクエストが含まれるレスポンスは、上記クラウド処理制御部で発行される
前記（４）に記載の情報処理装置。
（６）上記レスポンスに含まれる応答情報に基づいて音声または映像の信号を出力するレンダリング部をさらに備える
前記（２）から（５）のいずれかに記載の情報処理装置。
（７）上記レンダリング部は、第１のリクエストに対応した音声または映像の信号出力中に、第２のリクエストに対応した応答情報が送られてくるとき、上記第１のリクエストに対応した音声または映像の信号出力を中止し、上記第２のリクエストに対応した音声または映像の信号の出力を始める
前記（６）に記載の情報処理装置。
（８）意図解釈部が、ユーザ入力の意図を解釈する意図解釈ステップと、
リクエスト発行部が、上記解釈された意図に応じたリクエストを発行するリクエスト発行ステップと、
ローカル処理情報制御部が、上記発行されたリクエストに基づき、該リクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかを判断し、上記クラウド処理実行部で実行させると判断した場合には上記リクエストをクラウド処理制御部に送るローカル処理制御ステップを有する
情報処理方法。
（９）上記ローカル処理制御部は、上記クラウド処理制御部に上記リクエストを送るとき、上記クラウド処理制御部から上記リクエストに対応したレスポンスを受ける
前記（８）に記載の情報処理方法。
（１０）上記ローカル処理制御部は、上記レスポンスに含まれるアプリリクエストを上記リクエスト発行部に送り、
上記リクエスト発行部は、上記アプリリクエストを受けたとき、該アプリリクエストに含まれるアプリ指定情報を含むリクエストを発行する
前記（９）に記載の情報処理方法。
（１１）上記アプリリクエストに含まれるアプリ指定情報は、上記レスポンスの発生に係るアプリを再度指定する
前記（１０）に記載の情報処理方法。
（１２）上記アプリリクエストが含まれるレスポンスは、上記クラウド処理制御部で発行される
前記（１１）に記載の情報処理方法。
（１３）レンダリング部が、上記レスポンスに含まれる応答情報に基づいて音声または映像の信号を出力するレンダリングステップをさらに有する
前記（９）から（１２）のいずれかに記載の情報処理方法。
（１４）上記レンダリング部は、第１のリクエストに対応した音声または映像の信号出力中に、第２のリクエストに対応した応答情報が送られてくるとき、上記第１のリクエストに対応した音声または映像の信号出力を中止し、上記第２のリクエストに対応した音声または映像の信号の出力を始める
前記（１３）に記載の情報処理方法。
（１５）コンピュータを、
ユーザ入力の意図を解釈する意図解釈手段と、
上記解釈された意図に応じたリクエストを発行するリクエスト発行手段と、
上記発行されたリクエストに基づき、該リクエストに対応した処理をローカル処理実行部で実行させるか、またはクラウド処理実行部で実行させるかを判断し、上記クラウド処理実行部で実行させると判断した場合には上記リクエストをクラウド処理制御部に送るローカル処理制御手段として機能させる
プログラム。
【符号の説明】
【０１４９】
１０・・・情報処理装置
１００・・・ローカル側処理装置
１０１・・・入力部
１０２・・・意図解釈部（Agent Core）
１０３・・・通知監視部（Event Monitor）
１０４・・・ローカル処理制御部（Local App Dispatcher）
１０５・・・ローカル処理実行部（Local App Actions）
１０６・・・レンダリング部（App Renderer）
１０７・・・出力部
２００・・・クラウド側処理装置
２０１・・・クラウド処理制御部（Cloud App Dispatcher）
２０２・・・クラウド処理実行部（Cloud App Actions）
２０３・・・外部サービス
【図１】
2019176670.tif 000003
【図２】
2019176670.tif 000004
【図３】
2019176670.tif 000005
【図４】
2019176670.tif 000006
【図５】
2019176670.tif 000007
【図６】
2019176670.tif 000008
【図７】
2019176670.tif 000009
【図８】
2019176670.tif 000010
【図９】
2019176670.tif 000011
【図１０】
2019176670.tif 000012
【図１１】
2019176670.tif 000013
【図１２】
2019176670.tif 000014
【図１３】
2019176670.tif 000015
【図１４】
2019176670.tif 000016
【図１５】
2019176670.tif 000017
【図１６】
2019176670.tif 000018
【図１７】
2019176670.tif 000019
【図１８】
2019176670.tif 000020
【国際調査報告】
2019176670.tif 000021
2019176670.tif 000022
2019176670.tif 000023