(57)【要約】  バーチャルアシスタントなどのシステム用のユーザインターフェースは、ハンズフリー使用に自動的に適合される。ハンズフリーコンテキストは自動又は手動の手段を介して検出され、システムは、こうしたコンテキストの特定の制約を反映するために複雑なインタラクティブシステムの様々な段階をユーザエクスペリエンスを変更するように適合する。したがって、本発明のシステムは、バーチャルアシスタントのような複雑なシステムの単一の実施を可能とすることによりユーザインターフェース要素を動的に提供し、ハンズオン使用における同じシステムのユーザエクスペリエンスを損なわずにハンズフリー使用を可能とするようにユーザインターフェースの挙動を変更するものである。
2015501022.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを有するコンピューティング機器上でタスクを実行するためにユーザ入力を解釈するためのコンピュータにより実行される方法であって、
プロセッサにおいて、ハンズフリーコンテキストが有効であるか否かを検出するステップと、
出力装置において、ユーザに入力を促すステップと、
入力装置において、ユーザ入力を受け取るステップと、
前記プロセッサにおいて、前記受け取られたユーザ入力を解釈してユーザ意図の表現を導出するステップと、
前記プロセッサにおいて、前記導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するステップと、
前記プロセッサにおいて、前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行して結果を導出するステップと、
前記プロセッサにおいて、前記導出された結果に基づいてダイアログ応答を生成するステップと、
前記出力装置において、前記生成されたダイアログ応答を出力するステップと、を含み、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、前記ハンズフリーコンテキストにともなう制約と整合した方法で実行される、方法。
【請求項２】
前記コンピューティング機器とのユーザインタラクションに少なくとも２つのインタラクションモードが利用可能であり、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、ハンズフリー動作に適合された第１のインタラクションモードを使用して実行され、
前記機器がハンズフリーコンテキストにないことの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、ハンズフリー動作に適合されていない第２のインタラクションモードを使用して実行される、請求項１に記載の方法。
【請求項３】
ハンズフリーコンテキストが有効であるか否かを検出するステップが、
前記コンピューティング機器により提示される視覚的出力をユーザが見ることができることと、
前記コンピューティング機器により提示されるグラフィカルユーザインターフェースとユーザがインタラクトできることと、
前記コンピューティング機器の物理的構成要素をユーザが使用することができることと、
前記コンピューティング機器上でタッチ入力をユーザが行うことができることと、
前記コンピューティング機器上のスイッチをユーザが作動できることと、
前記コンピューティング機器上のキーボードをユーザが使用できることと、からなる群から選択される少なくとも１つにおける制約を示す条件を検出することを含む、請求項１又は２に記載の方法。
【請求項４】
ユーザに入力を促すステップが、
前記機器がハンズフリーコンテキストにないことの検出に応じて、前記ハンズフリーコンテキストに適合されていない第１の出力モードにより前記ユーザを促すステップと、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ハンズフリーコンテキストに適合された第２の出力モードにより前記ユーザを促すステップと、を含む、請求項１〜３のいずれかに記載の方法。
【請求項５】
第１の出力モードにより前記ユーザを促すステップが、視覚的出力モードにより前記ユーザを促すステップを含み、
第２の出力モードにより前記ユーザを促すステップが、聴覚的出力モードにより前記ユーザを促すステップを含む、請求項４に記載の方法。
【請求項６】
視覚的出力モードにより前記ユーザを促すステップが、ディスプレイ画面にプロンプトを表示するステップを含み、
聴覚的出力モードにより前記ユーザを促すステップが、音声プロンプトを出力するステップを含む、請求項５に記載の方法。
【請求項７】
前記受け取られたユーザ入力を解釈するステップが、
前記機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた語彙を使用して前記受け取られたユーザ入力を解釈するステップを含む、請求項１〜６のいずれかに記載の方法。
【請求項８】
少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するステップが、前記機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することを含む、請求項１〜７のいずれかに記載の方法。
【請求項９】
ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することが、音声によるインターフェースにより入力された内容を修正及び確認するように前記ユーザに促すステップを含む、請求項８に記載の方法。
【請求項１０】
ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することが、聴覚的出力を用いて少なくとも１つのタスクフローステップを実行することを含む、請求項８又は９に記載の方法。
【請求項１１】
ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することが、前記ハンズフリーコンテキストに適した、限定された使用可能なタスクフローステップ群から選択される少なくとも１つのタスクフローステップを実行することを含む、請求項８〜１０のいずれかに記載の方法。
【請求項１２】
ダイアログ応答を生成するステップが、前記機器がハンズフリーコンテキストにあることの検出に応じて、音声による出力モードでダイアログ応答を生成するステップを含む、請求項１〜１１のいずれかに記載の方法。
【請求項１３】
音声による出力モードでダイアログ応答を生成するステップが、前記ユーザ入力の少なくとも一部を音声の形態で言い換えるステップを含む、請求項１２に記載の方法。
【請求項１４】
音声による出力モードでダイアログ応答を生成するステップが、言い換えられたユーザ入力を他の音声出力から区別するために複数の声を使用して音声を生成するステップを更に含む、請求項１３に記載の方法。
【請求項１５】
音声による出力モードでダイアログ応答を生成するステップが、ダイアログテンプレートを少なくとも１つの個人データのアイテムと組み合わせるステップを含む、請求項１３又は１４に記載の方法。
【請求項１６】
ハンズフリーコンテキストが有効であるか否かを検出するステップが、
ハンズフリーコンテキストを特定するユーザ入力を受け取るステップと、
ハンズフリーコンテキストに関連付けられた環境条件を示す少なくとも１つのセンサからデータを受け取るステップと、
ハンズフリーコンテキストに関連付けられた周辺機器の接続を検出するステップと、
ハンズフリーコンテキストに関連付けられていない周辺機器の切断を検出するステップと、
車両の車載システムとの通信を検出するステップと、
現在位置を検出するステップと、
現在速度を検出するステップと、からなる群から選択される少なくとも１つを含む、請求項１に記載の方法。
【請求項１７】
前記ユーザを促すステップが、会話インターフェースにより前記ユーザを促すステップを含み、
ユーザ入力を受け取るステップが、前記会話インターフェースによりユーザ入力を受け取るステップを含む、請求項１〜１６のいずれかに記載の方法。
【請求項１８】
ユーザ入力を受け取るステップが、
音声入力を受け取るステップと、
前記音声入力をテキスト表現に変換するステップと、を含む、請求項１〜１７のいずれかに記載の方法。
【請求項１９】
前記コンピューティング機器が、
電話と、
スマートフォンと、
タブレットコンピュータと、
ラップトップコンピュータと、
携帯情報端末と、
デスクトップコンピュータと、
キオスクと、
家庭用電子機器と、
家庭用娯楽機器と、
音楽プレーヤと、
カメラと、
テレビと、
電子ゲーム機と、
セットトップボックスと、からなる群から選択される少なくとも１つを含む、請求項１〜１８のいずれかに記載の方法。
【請求項２０】
少なくとも１つのプロセッサを有するコンピューティング機器上でタスクを実行するためにユーザ入力を解釈するためのコンピュータプログラム製品であって、
永続的なコンピュータ可読記憶媒体と、
前記媒体上にコード化されたコンピュータプログラムコードであって、少なくとも１つのプロセッサに、
ハンズフリーコンテキストが有効であるか否かを検出するステップと、
出力装置に、ユーザに対して入力を促させるステップと、
入力装置によりユーザ入力を受け取るステップと、
前記受け取られたユーザ入力を解釈してユーザ意図の表現を導出するステップと、
前記導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するステップと、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行することにより結果を導出するステップと、
前記導出された結果に基づいてダイアログ応答を生成するステップと、
前記出力装置に、前記生成されたダイアログ応答を出力させるステップと、を実行させるように構成されたコンピュータプログラムコードと、を備え、
前記コンピュータプログラムコードが、前記機器がハンズフリーコンテキストにあることの検出に応じて、少なくとも１つのプロセッサに、ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つを、前記ハンズフリーコンテキストにともなう制約と整合した方法で実行させるように構成されている、コンピュータプログラム製品。
【請求項２１】
前記コンピューティング機器とのユーザインタラクションに少なくとも２つのインタラクションモードが利用可能であり、
前記コンピュータプログラムコードが、少なくとも１つのプロセッサに、前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つを、ハンズフリー動作に適合された第１のインタラクションモードを使用して実行させるように構成され、
前記コンピュータプログラムコードが、少なくとも１つのプロセッサに、前記機器がハンズフリーコンテキストにないことの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つを、ハンズフリー動作に適合されていない第２のインタラクションモードを使用して実行させるように構成されている、請求項２０に記載のコンピュータプログラム製品。
【請求項２２】
少なくとも１つのプロセッサにハンズフリーコンテキストが有効であるか否かを検出させるように構成された前記コンピュータプログラムコードが、少なくとも１つのプロセッサに、
前記コンピューティング機器により提示される視覚的出力をユーザが見ることができることと、
前記コンピューティング機器により提示されるグラフィカルユーザインターフェースとユーザがインタラクトできることと、
前記コンピューティング機器の物理的構成要素をユーザが使用することができることと、
前記コンピューティング機器上でタッチ入力をユーザが行うことができることと、
前記コンピューティング機器上のスイッチをユーザが作動できることと、
前記コンピューティング機器上のキーボードをユーザが使用できることと、からなる群から選択される少なくとも１つにおける制約を示す条件を検出させるように構成されたコンピュータプログラムコードを備える、請求項２０又は２１に記載のコンピュータプログラム製品。
【請求項２３】
出力装置に、ユーザに対して入力を促させるように構成された前記コンピュータプログラムコードが、
前記機器がハンズフリーコンテキストにないことの検出に応じて、出力装置に、前記ハンズフリーコンテキストに適合されていない第１の出力モードにより前記ユーザを促させるように構成されたコンピュータプログラムコードと、
前記機器がハンズフリーコンテキストにあることの検出に応じて、出力装置に、前記ハンズフリーコンテキストに適合された第２の出力モードにより前記ユーザを促させるように構成されたコンピュータプログラムコードと、を含む、請求項２０〜２２のいずれかに記載のコンピュータプログラム製品。
【請求項２４】
少なくとも１つのプロセッサに前記受け取られたユーザ入力を解釈させるように構成された前記コンピュータプログラムコードが、
前記機器がハンズフリーコンテキストにあることの検出に応じて、少なくとも１つのプロセッサに、ハンズフリー動作に関連付けられた語彙を使用して前記受け取られたユーザ入力を解釈させるように構成されたコンピュータプログラムコードを含む、請求項２０〜２３のいずれかに記載のコンピュータプログラム製品。
【請求項２５】
少なくとも１つのプロセッサに少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定させるように構成された前記コンピュータプログラムコードが、前記機器がハンズフリーコンテキストにあることの検出に応じて、少なくとも１つのプロセッサに、ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行させるように構成されたコンピュータプログラムコードを含む、請求項２０〜２４のいずれかのコンピュータプログラム製品。
【請求項２６】
少なくとも１つのプロセッサにダイアログ応答を生成させるように構成された前記コンピュータプログラムコードが、前記機器がハンズフリーコンテキストにあることの検出に応じて、少なくとも１つのプロセッサに、音声による出力モードでダイアログ応答を生成させるように構成されたコンピュータプログラムコードを含む、請求項２０〜２５のいずれかに記載のコンピュータプログラム製品。
【請求項２７】
少なくとも１つのプロセッサにハンズフリーコンテキストが有効であるか否かを検出させるように構成された前記コンピュータプログラムコードが、少なくとも１つのプロセッサに、
ハンズフリーコンテキストを特定するユーザ入力を受け取ることと、
ハンズフリーコンテキストに関連付けられた環境条件を示す少なくとも１つのセンサからデータを受け取ることと、
ハンズフリーコンテキストに関連付けられた周辺機器の接続を検出することと、
ハンズフリーコンテキストに関連付けられていない周辺機器の切断を検出することと、
車両の車載システムとの通信を検出することと、
現在位置を検出することと、
現在速度を検出することと、からなる群から選択される少なくとも１つを実行させるように構成されたコンピュータプログラムコードを含む、請求項２０に記載のコンピュータプログラム製品。
【請求項２８】
出力装置に前記ユーザを促させるように構成された前記コンピュータプログラムコードが、出力装置に、会話インターフェースにより前記ユーザを促させるように構成されたコンピュータプログラムコードを含み、
少なくとも１つのプロセッサにユーザ入力を受け取らせるように構成された前記コンピュータプログラムコードが、少なくとも１つのプロセッサに前記会話インターフェースによりユーザ入力を受け取らせるように構成されたコンピュータプログラムコードを含む、請求項２０〜２７のいずれかに記載のコンピュータプログラム製品。
【請求項２９】
少なくとも１つのプロセッサにユーザ入力を受け取らせるように構成された前記コンピュータプログラムコードが、少なくとも１つのプロセッサに音声入力を受け取らせるように構成されたコンピュータプログラムコードと、
少なくとも１つのプロセッサに前記音声入力をテキスト表現に変換させるように構成されたコンピュータプログラムコードと、を含む、請求項２０〜２８のいずれかに記載のコンピュータプログラム製品。
【請求項３０】
前記コンピューティング機器が、
電話と、
スマートフォンと、
タブレットコンピュータと、
ラップトップコンピュータと、
携帯情報端末と、
デスクトップコンピュータと、
キオスクと、
家庭用電子機器と、
家庭用娯楽機器と、
音楽プレーヤと、
カメラと、
テレビと、
電子ゲーム機と、
セットトップボックスと、からなる群から選択される少なくとも１つを含むことを特徴とする請求項２０〜２９のいずれかに記載のコンピュータプログラム製品。
【請求項３１】
コンピューティング機器上でタスクを実行するためにユーザ入力を解釈するためのシステムであって、
ユーザに入力を促すように構成された出力装置と、
ユーザ入力を受け取るように構成された入力装置と、
前記出力装置及び前記入力装置と通信可能に結合された少なくとも１つのプロセッサであって、
ハンズフリーコンテキストが有効であるか否かを検出するステップと、
前記受け取られたユーザ入力を解釈してユーザ意図の表現を導出するステップと、
前記導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するステップと、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行することにより結果を導出するステップと、
前記導出された結果に基づいてダイアログ応答を生成するステップとを実行するように構成された、少なくとも１つのプロセッサと、を備え、
前記出力装置が、前記生成されたダイアログ応答を出力するように更に構成され、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促すこと、ユーザ入力を受け取ること、前記受け取りユーザ入力を解釈すること、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定すること、及び前記ダイアログ応答を生成することのうちの少なくとも１つが、前記ハンズフリーコンテキストにともなう制約と整合した方法で実行される、システム。
【請求項３２】
ユーザインタラクションに少なくとも２つのインタラクションモードが利用可能であり、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促すこと、ユーザ入力を受け取ること、受け取りユーザ入力を解釈すること、前記少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定すること、及び前記ダイアログ応答を生成することのうちの少なくとも１つが、ハンズフリー動作に適合された第１のインタラクションモードを使用して実行され、
前記機器がハンズフリーコンテキストにないことの検出に応じて、ユーザに入力を促すこと、ユーザ入力を受け取ること、受け取られたユーザ入力を解釈すること、
前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定すること、及び前記ダイアログ応答を生成することのうちの少なくとも１つが、ハンズフリー動作に適合されていない第２のインタラクションモードを使用して実行されることを特徴とする請求項３１に記載のシステム。
【請求項３３】
前記少なくとも１つのプロセッサが、
前記出力装置により提示される視覚的出力をユーザが見ることができることと、
前記出力装置により提示されるグラフィカルユーザインターフェースとユーザがインタラクトできることと、
前記コンピューティング機器の物理的構成要素をユーザが使用することができることと、
前記入力装置上でタッチ入力をユーザが行うことができることと、
前記コンピューティング機器上のスイッチをユーザが作動できることと、
前記コンピューティング機器上のキーボードをユーザが使用できることと、からなる群から選択される少なくとも１つにおける制約を示す条件を検出することにより、ハンズフリーコンテキストが有効であるか否かを検出するように構成されている、請求項３１又は３２に記載のシステム。
【請求項３４】
前記出力装置が、
前記機器がハンズフリーコンテキストにないことの検出に応じて、前記ハンズフリーコンテキストに適合されていない第１の出力モードによりユーザを促すことと、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ハンズフリーコンテキストに適合された第２の出力モードにより前記ユーザを促すことにより、前記ユーザに入力を促すように構成されている、請求項３１〜３３のいずれかに記載のシステム。
【請求項３５】
前記第１の出力モードが視覚的出力モードを含み、
前記第２の出力モードが聴覚的出力モードを含み、
前記出力装置が、
前記視覚的出力モードにより前記ユーザを促すように構成されたディスプレイ画面と、
前記聴覚的出力モードにより前記ユーザを促すように構成されたスピーカと、を含む、請求項３４に記載のシステム。
【請求項３６】
前記ディスプレイ画面が視覚的プロンプトを表示するように構成され、
前記スピーカが音声プロンプトを出力するように構成されている、請求項３５に記載のシステム。
【請求項３７】
前記少なくとも１つのプロセッサが、前記機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた語彙を使用して前記受け取られたユーザ入力を解釈するように構成されている、請求項３１〜３６のいずれかに記載のシステム。
【請求項３８】
前記少なくとも１つのプロセッサが、前記機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することにより、少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するように構成されている、請求項３１〜３７のいずれかに記載のシステム。
【請求項３９】
前記少なくとも１つのプロセッサが、前記機器がハンズフリーコンテキストにあることの検出に応じて、音声による出力モードで前記ダイアログ応答を生成するように構成されている、請求項３１〜３８に記載のシステム。
【請求項４０】
前記少なくとも１つのプロセッサが、
ハンズフリーコンテキストを特定するユーザ入力と、
ハンズフリーコンテキストに関連付けられた環境条件を示す少なくとも１つのセンサからのデータと、
ハンズフリーコンテキストに関連付けられた周辺機器の接続と、
ハンズフリーコンテキストに関連付けられていない周辺機器の切断と、
車両の車載システムとの通信と、
現在位置と、
現在速度と、からなる群から選択される少なくとも１つに基づいてハンズフリーコンテキストが有効であるか否かを検出するように構成されている、請求項３１〜３９のいずれかに記載のシステム。
【請求項４１】
前記出力装置が、会話インターフェースにより前記ユーザを促すように構成され、前記入力装置が、前記会話インターフェースによりユーザ入力を受け取るように構成されている、請求項３１〜４０のいずれかに記載のシステム。
【請求項４２】
前記入力装置が、音声入力を受け取るように構成されたマイクロフォンを含み、前記少なくとも１つのプロセッサが前記音声入力をテキスト表現に変換するように構成されている、請求項３１〜４１のいずれかに記載のシステム。
【請求項４３】
前記コンピューティング機器が、
電話と、
スマートフォンと、
タブレットコンピュータと、
ラップトップコンピュータと、
携帯情報端末と、
デスクトップコンピュータと、
キオスクと、
家庭用電子機器と、
家庭用娯楽機器と、
音楽プレーヤと、
カメラと、
テレビと、
電子ゲーム機と、
セットトップボックスと、からなる群から選択される少なくとも１つを含む、請求項３１〜４２のいずれかに記載のシステム。
【請求項４４】
電子機器であって、
ハンズフリーコンテキストが有効であるか否かを検出するための手段と、
ユーザに入力を促すための手段と、
ユーザ入力を受け取るための手段と、
前記受け取られたユーザ入力を解釈してユーザ意図の表現を導出するための手段と、
前記導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するための手段と、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行することにより結果を導出するための手段と、
前記導出された結果に基づいてダイアログ応答を生成する手段と、
前記生成されたダイアログ応答を出力するための手段と、を備え、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、前記ハンズフリーコンテキストにともなう制約と整合した方法で実行される、電子機器。
【請求項４５】
電子機器に使用するための情報処理装置であって、
ハンズフリーコンテキストが有効であるか否かを検出するための手段と、
ユーザに入力を促すための手段と、
ユーザ入力を受け取るための手段と、
前記受け取られたユーザ入力を解釈してユーザ意図の表現を導出するための手段と、
前記導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するための手段と、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行することにより結果を導出するための手段と、
前記導出された結果に基づいてダイアログ応答を生成する手段と、
前記生成されたダイアログ応答を出力するための手段と、を備え、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、前記ハンズフリーコンテキストにともなう制約と整合した方法で実行される、装置。
【請求項４６】
電子機器であって、
ハンズフリーコンテキストが有効であるか否かを検出するように構成された処理ユニットと、前記処理ユニットに結合され、ユーザに入力を促すように構成された出力ユニットと、
前記処理ユニットに結合され、ユーザ入力を受け取るように構成された入力ユニットと、を備え、前記処理ユニットが、
前記受け取られたユーザ入力を解釈してユーザ意図の表現を導出し、
前記導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定し、
前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行することにより結果を導出し、
前記導出された結果に基づいてダイアログ応答を生成し、
前記出力装置に、前記生成されたダイアログ応答を出力させるように更に構成され、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、前記ハンズフリーコンテキストにともなう制約と整合した方法で実行される、電子機器。
【請求項４７】
前記コンピューティング機器とのユーザインタラクションに少なくとも２つのインタラクションモードが利用可能であり、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、ハンズフリー動作に適合された第１のインタラクションモードを使用して実行され、
前記機器がハンズフリーコンテキストにないことの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、ハンズフリー動作に適合されていない第２のインタラクションモードを使用して実行される、請求項４６に記載の電子機器。
【請求項４８】
前記処理ユニットが、
前記コンピューティング機器により提示される視覚的出力をユーザが見ることができることと、
前記コンピューティング機器により提示されるグラフィカルユーザインターフェースとユーザがインタラクトできることと、
前記コンピューティング機器の物理的構成要素をユーザが使用することができることと、
前記コンピューティング機器上でタッチ入力をユーザが行うことができることと、
前記コンピューティング機器上のスイッチをユーザが作動できることと、
前記コンピューティング機器上のキーボードをユーザが使用できることと、からなる群から選択される少なくとも１つにおける制約を示す条件を検出することにより、ハンズフリーコンテキストが有効であるか否かを検出するように更に構成されている、請求項４６又は４７に記載の電子機器。
【請求項４９】
前記出力ユニットが、
前記機器がハンズフリーコンテキストにないことの検出に応じて、前記ハンズフリーコンテキストに適合されていない第１の出力モードによりユーザを促すことと、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ハンズフリーコンテキストに適合された第２の出力モードにより前記ユーザを促すことにより、前記ユーザに入力を促すように構成されている、請求項４６〜４８のいずれかに記載の電子機器。
【請求項５０】
第１の出力モードにより前記ユーザを促すことが、視覚的出力モードにより前記ユーザを促すことを含み、
第２の出力モードにより前記ユーザを促すことが、聴覚的出力モードにより前記ユーザを促すことを含む、請求項４９に記載の電子機器。
【請求項５１】
視覚的出力モードにより前記ユーザを促すことが、ディスプレイ画面にプロンプトを表示することを含み、
聴覚的出力モードにより前記ユーザを促すことが、音声プロンプトを出力することを含む、請求項５に記載の電子機器。
【請求項５２】
前記処理ユニットが、前記機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた語彙を使用して前記受け取られたユーザ入力を解釈するように構成されている、請求項４６〜５１のいずれかに記載の電子機器。
【請求項５３】
前記処理ユニットが、前記機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行するように構成されている、請求項４６〜５２のいずれかに記載の電子機器。
【請求項５４】
ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することが、音声によるインターフェースにより入力された内容を修正及び確認するように前記ユーザに促すステップを含むことを特徴とする請求項５３に記載の電子機器。
【請求項５５】
前記処理ユニットが、聴覚的出力を用いて前記少なくとも１つのタスクフローステップを実行するように更に構成されている、請求項５３又は５４に記載の電子機器。
【請求項５６】
前記処理ユニットが、前記ハンズフリーコンテキストに適した、限定された使用可能なタスクフローステップ群から選択される少なくとも１つのタスクフローステップを実行することにより、前記少なくとも１つのタスクフロー特定ステップを実行するように更に構成されている、請求項５３〜５５のいずれかに記載の電子機器。
【請求項５７】
前記処理ユニットが、前記機器がハンズフリーコンテキストにあることの検出に応じて、音声による出力モードで前記ダイアログ応答を生成するように構成されている、請求項４６〜５６のいずれかに記載の電子機器。
【請求項５８】
前記処理ユニットが、前記ユーザ入力の少なくとも一部を音声の形態で言い換えることにより、前記音声による出力モードで前記ダイアログ応答を生成するように構成されている、請求項５７に記載の電子機器。
【請求項５９】
前記処理ユニットが、言い換えられたユーザ入力を他の音声出力から区別するために複数の声を使用して音声を生成することにより、前記音声による出力モードで前記ダイアログ応答を生成するように構成されている、請求項５８に記載の電子機器。
【請求項６０】
前記処理ユニットが、ダイアログテンプレートを少なくとも１つの個人データのアイテムと組み合わせることにより前記音声による出力モードで前記ダイアログ応答を生成するように構成されている、請求項５８又は５９に記載の電子機器。
【請求項６１】
前記処理ユニットが、
ハンズフリーコンテキストを特定するユーザ入力を受け取ることと、
ハンズフリーコンテキストに関連付けられた環境条件を示す少なくとも１つのセンサからデータを受け取ることと、
ハンズフリーコンテキストに関連付けられた周辺機器の接続を検出することと、
ハンズフリーコンテキストに関連付けられていない周辺機器の切断を検出することと、
車両の車載システムとの通信を検出することと、
現在位置を検出することと、
現在速度を検出することと、からなる群から選択される少なくとも１つのプロセスを実行することによりハンズフリーコンテキストが有効であるか否かを検出するように構成されている、請求項４６に記載の電子機器。
【請求項６２】
前記出力ユニットが、会話インターフェースにより前記ユーザを促すように構成され、前記入力ユニットが、前記会話インターフェースによりユーザ入力を受け取るように構成されている、請求項４６〜６１のいずれかに記載の電子機器。
【請求項６３】
前記入力ユニットが音声入力を受け取るように構成され、
前記処理ユニットが前記音声入力をテキスト表現に変換するように構成されている、求項４６〜６２のいずれかに記載の電子機器。
【請求項６４】
電子機器の１つ以上のプロセッサにより実行されるための１つ以上のプログラムを記憶したコンピュータ可読記憶媒体であって、前記１つ以上のプログラムが、請求項１〜１９に記載の方法のいずれかを実行するための命令を含んでいる、コンピュータ可読記憶媒体。
【請求項６５】
１つ以上のプロセッサ、及び請求項１〜１９に記載の方法のいずれかを実行するための命令を含む、前記１つ以上のプロセッサにより実行されるための１つ以上のプログラムを記憶したメモリとを備える、電子機器。
【請求項６６】
請求項１〜１９に記載の方法のいずれかを実行するための手段を備える、電子機器。
【請求項６７】
請求項１〜１９に記載の方法のいずれかを実行するための手段を備える、電子機器において使用するための情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチモーダルユーザインターフェースに関し、より詳細には音声ベース及び視覚的モダリティの両方を含むユーザインターフェースに関する。
【背景技術】
【０００２】
多くの既存のオペレーティングシステム及び機器は、ユーザがそれにより操作を制御することができるモダリティとして音声入力を使用している。１つの例として、例えば、人の名前を声に出すことにより電話番号のダイアリングを開始するなど、特定の言語コマンドを操作に対してマッピングするボイスコマンドシステムがある。別の例として、自動電話サービスデスクなどの人が電話で静的情報にアクセスすることを可能とする自動音声応答（ＩＶＲ）システムがある。
【０００３】
多くのボイスコマンド及びＩＶＲシステムは比較的範囲が狭く、既定のボイスコマンドしか扱うことができない。更に、それらの出力は、固定された応答群からしばしば引き出される。
【０００４】
本明細書においてバーチャルアシスタントとも称するインテリジェント自動アシスタントは、自然言語入力の処理を含む、人とコンピュータとの間の改良されたインターフェースを提供することができる。このようなアシスタントは、その開示内容の全体を本明細書に参照により援用するところの２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」についての関連する米国実用特許出願第１２／９８７，９８２号に述べられるようにして実施することが可能であり、ユーザが音声及び／又はテキストの形態の自然言語を使用して機器又はシステムとインタラクトすることを可能とするものである。このようなアシスタントは、ユーザ入力を解釈し、ユーザ意図をタスク及びこれらのタスクに対するパラメータに操作可能にし、これらのタスクに対応するためのサービスを実行し、ユーザに理解できる出力を生成する。
【０００５】
バーチャルアシスタントは、一般的な音声及び自然言語理解技術を使用してより広い範囲の入力を認識することで、ユーザとのダイアログを生成することが可能である。いくつかのバーチャルアシスタントは、言語応答及び書かれたテキストを含むモードの組み合わせとして出力を生成することができ、画面上の要素の直接的操作を可能とするグラフィカルユーザインターフェース（ＧＵＩ）を与えることもできる。しかしながら、ユーザは、常にこうした視覚的出力又は直接操作インターフェースを利用できる状況にあるわけではない。例えば、ユーザは、運転中か若しくは機械の操作中である場合もあり、又は視覚障害を有する場合もあり、又は単純に視覚的インターフェースが苦手であるか若しくはそれに慣れていない場合もある。
【０００６】
ユーザが、画面を読む、又は接触によって（キーボード、マウス、タッチスクリーン、ポインティングデバイスなどを含む）機器とインタラクトすることが制限されるか、又はできないあらゆる状況のことを本明細書では「ハンズフリーコンテキスト」と称する。例えば、上記に述べたようなユーザが運転中に機器を操作しようとするような状況では、ユーザは、耳に聞こえる出力を聞いて声で応答することができるが、安全上の理由から細かい文字を読んだり、メニューをタップしたり、又はテキストを入力することはするべきではない。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ハンズフリーコンテキストは、バーチャルアシスタントなどの複雑なシステムの設計者にとって特有の課題を与える。ユーザは、ハンズフリーコンテキストにあるか否かとは関係なく、機器の機能への完全なアクセスを求める。しかしながら、ハンズフリー動作に固有の特定の制約を解決することができないと、機器又はシステムの有用性及び利用性の両方を制限する状況が生じうるものであり、自動車の操作などの一次タスクからユーザの注意をそらせることにより、安全上の問題を生じる可能性すらある。
【課題を解決するための手段】
【０００８】
本発明の様々な実施形態に係る、バーチャルアシスタントなどのシステム用のユーザインターフェースがハンズフリー使用に自動的に適合される。ハンズフリーコンテキストは自動又は手動の手段によって検出され、システムは、こうしたコンテキストの特定の制約を反映するために複雑なインタラクティブシステムの様々な段階をユーザエクスペリエンスを変更するように適合する。したがって、本発明のシステムは、バーチャルアシスタント又は他の複雑なシステムの単一の実施を可能とすることによりユーザインターフェース要素を動的に提供し、更に、ハンズオン使用における同じシステムのユーザエクスペリエンスを損なわずにハンズフリー使用を可能とするようにユーザインターフェースの挙動を変更するものである。
【０００９】
例えば、様々な実施形態において、本発明のシステムは、ユーザが画面上の詳細を読む必要なくしてタスクを完了することができるような方法でシステムが出力を与えるようにバーチャルアシスタントの動作を調節するための機構を提供する。更に様々な実施形態において、バーチャルアシスタントは、読むこと、タップすること、タイプすること、又はしばしばグラフィカルユーザインターフェースを使用して実現される他の機能を実行することに代わるものとして、音声入力を受け取るための機構を設けることができる。
【００１０】
様々な実施形態において、本発明のシステムは、ハンズフリーコンテキストにともなう特定の要求条件及び制約を考慮しながら、従来のグラフィカルユーザインターフェースと同じ（又はそれに近い）基礎的機能を提供する。より一般的には、本発明のシステムは、ハンズフリーコンテキストにおける動作を促す一方で、コアとなる機能はほぼ同じ状態に維持する。いくつかの実施形態では、本発明の技術に従って構築されたシステムは、ハンズフリーモードと従来の（「ハンズオン」）モードとの間で、場合により単一のセッションにおいて、ユーザが自由に選択することを可能とする。例えば、同じインターフェースを、オフィス環境と移動中の車の両方に適合させることが可能であり、環境の変化にともなってシステムが必要な変更をユーザインターフェースに動的に行う。
【００１１】
本発明の様々な実施形態に係る、多くの機構のいずれも、バーチャルアシスタントの動作をハンズフリーコンテキストに適合させるように実施することができる。様々な実施形態において、バーチャルアシスタントは、その開示内容の全体を本明細書に参照により援用するところの２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」に対する米国実用特許出願第１２／９８７，９８２号に述べられるようなインテリジェント自動アシスタントである。このようなアシスタントは、自然言語ダイアログを使用して統合された会話様式でユーザと関わり、適当な場合に、情報を得るか又は様々な動作を実行するために外部のサービスを呼び出す。
【００１２】
本発明の様々な実施形態に係る、バーチャルアシスタントシステムは、ハンズフリーコンテキストを検出するように、並びに、様々な異なる種類の動作、機能、及び／若しくは特徴を実行するうえでこれに応じてその動作を調節するように、並びに／又はバーチャルアシスタントシステムがインストールされた電子機器の複数の特徴、動作及びアプリケーションを組み合わせるように構成、設計、及び／又は動作させることが可能である。いくつかの実施形態では、本発明のバーチャルアシスタントはハンズフリーコンテキストを検出することが可能であり、並びに、入力を受け取る、出力を与える、ユーザとのダイアログを行う、及び／又は識別された意図に基づいて動作を実行（若しくは開始）する際にこれに応じてその動作を調節することが可能である。
【００１３】
動作は、例えば、電子機器上で利用可能な任意のアプリケーション又はサービス、並びにインターネットなどの電子ネットワーク上で利用可能なサービスを作動させるか、及び／若しくはこれらとインターフェースすることにより実行することが可能である。様々な実施形態において、このような外部サービスの作動は、アプリケーションプログラミングインターフェース（ＡＰＩ）を介して、又は他の任意の適当な機構によって実行することができる。このようにして、本発明の様々な実施形態に係って実施されたバーチャルアシスタントは、電子機器の多くの異なるアプリケーション及び機能に対して、及びインターネット上で利用可能なサービスに関してハンズフリー使用環境を提供することができる。上記に参照した関連出願に述べられるように、このようなバーチャルアシスタントの使用は、機器上及びウェブ接続されたサービス上でどの機能が利用可能であるか、ユーザが望むものを得るためにどのようにしてこうしたサービスとインターフェースするか、並びにこうしたサービスから受信される出力をどのように解釈するかを学習する負担からユーザを解放することができる。それどころか、本発明のアシスタントは、ユーザとこのような多様なサービスとの間の橋渡しとして機能することができる。
【００１４】
更に、様々な実施形態において、本発明のバーチャルアシスタントは、ユーザが、従来のグラフィカルユーザインターフェースと比較してより直観的で、より煩わしくないと感じることができる会話インターフェースを提供する。ユーザは、ハンズフリー又はハンズオンコンテキストのいずれが有効であるかに一部依存して、多くの利用可能な入力及び出力機構のいずれかを使用して会話ダイアログの形でアシスタントと関わることができる。このような入力及び出力機構の例としては、これらに限定されるものではないが、音声、グラフィカルユーザインターフェース（ボタン及びリンク）、テキスト入力などが挙げられる。システムは、機器ＡＰＩ、ウェブ、電子メーなど、又はこれらの任意の組み合わせなどの多くの異なるプラットフォームのいずれを用いても実施することができる。更なる入力に対する要求を、聴覚的及び／又は視覚的な方法で提示される会話の文脈においてユーザに提示することができる。所与のセッション内での所与の先のイベント及び通信、並びにユーザに関する履歴及びプロファイル情報が与えられるものとして、ユーザ入力が正しい文脈で解釈されるように短期及び長期メモリが用いられうる。
【００１５】
様々な実施形態において、本発明のバーチャルアシスタントは、電子機器の様々な特徴及び動作を制御することができる。例えば、バーチャルアシスタントは、ＡＰＩ又は他の手段を介して機器上の機能及びアプリケーションとインターフェースするサービスを呼び出すことにより、そうでない場合には機器上で従来のユーザインターフェースを使用して開始されうる機能及び動作を実行することができる。このような機能及び動作には、例えば、アラームを設定する、電話をかける、テキストメッセージ又は電子メールメッセージを送信する、及びカレンダイベントを追加することなどが含まれうる。このような機能及び動作は、ユーザとアシスタントとの間の会話ダイアログのコンテキストにおいてアドオン機能として実行することができる。このような機能及び動作は、このようなダイアログのコンテキストにおいてユーザが指定するか、又はダイアログのコンテキストに基づいて自動的に実行することができる。これによりアシスタントを、電子機器上の様々な動作を開始及び制御するための機構として使用することができる点は当業者であれば認識されるところであろう。ユーザの現在の状況についての推論に寄与するコンテキスト証拠を収集することにより、これに応じてユーザインターフェースの動作を調節することにより、本発明のシステムは、バーチャルアシスタントのハンズフリー動作を可能とするための機構を設けることで、機器を制御するためのこうした機構を実施することが可能である。
【００１６】
いくつかの実施形態に係る、方法は、プロセッサにおいて、ハンズフリーコンテキストが有効であるか否かを検出することを含む。本方法は、出力装置において、ユーザに入力を促すことを更に含む。本方法は、入力装置において、ユーザ入力を受け取ることを更に含む。本発明は、プロセッサにおいて、受け取られたユーザ入力を解釈してユーザ意図の表現を導出することと、導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及びそのタスクの少なくとも１つのパラメータを特定することと、該少なくとも１つのパラメータを使用して少なくとも１つのタスクを実行することにより結果を導出することと、導出された結果に基づいてダイアログ応答を生成することと、を更に含む。方法は、出力装置において、生成されたダイアログ応答を出力することを更に含む。機器がハンズフリーコンテキストにあることの検出に応じて、ユーザに入力を促すステップ、ユーザ入力を受け取るステップ、受け取られたユーザ入力を解釈するステップ、少なくとも１つのタスク及びそのタスクの少なくとも１つのパラメータを特定するステップ、並びにダイアログ応答を生成するステップのうちの少なくとも１つが、ハンズフリーコンテキストにともなう制約と整合した方法で実行される。
【００１７】
いくつかの実施形態に係る、電子機器は、１つ以上のプロセッサ、メモリ、及び１つ以上のプログラムを含み、１つ以上のプログラムは、メモリに記憶され、１つ以上のプロセッサによって実行されるように構成され、１つ以上のプログラムは上記に述べた方法のいずれかの動作を実行するための命令を含む。いくつかの実施形態に係る、コンピュータ可読記憶媒体は内部に命令を記憶し、この命令は電子機器によって実行されると、機器に上記に述べた方法のいずれかの動作を実行させる。いくつかの実施形態に係る、電子機器は、上記に述べた方法のいずれかの動作を実行するための手段を含む。いくつかの実施形態に係る、電子機器において使用するための情報処理装置は、上記に述べた方法のいずれかの動作を実行するための手段を含む。
【００１８】
いくつかの実施形態に係る、電子機器は、ハンズフリーコンテキストが有効であるか否かを検出するように構成された処理ユニットを含む。電子機器は、処理ユニットに結合され、ユーザに入力を促すように構成された出力ユニットと、処理ユニットに結合され、ユーザ入力を受け取るように構成された入力ユニットとを更に含む。処理ユニットは、受け取られたユーザ入力を解釈してユーザ意図の表現を導出し、導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及びそのタスクの少なくとも１つのパラメータを特定し、少なくとも１つのパラメータを使用して少なくとも１つのタスクを実行することにより結果を導出し、導出された結果に基づいてダイアログ応答を生成し、出力装置に、生成されたダイアログ応答を出力させるように更に構成されている。前記機器がハンズフリーコンテキストにあることの検出に応じて、ユーザに入力を促すステップ、ユーザ入力を受け取るステップ、受け取られたユーザ入力を解釈するステップ、少なくとも１つのタスク及びそのタスクの少なくとも１つのパラメータを特定するステップ、及びダイアログ応答を生成するステップのうちの少なくとも１つが、ハンズフリーコンテキストにともなう制約と整合した方法で実行される。
【図面の簡単な説明】
【００１９】
付属の図面は、本発明の幾つかの実施形態を示すものであり、説明文とともに、実施形態に係る発明の原理を説明する役割を果たすものである。当業者であれば、図面に示される特定の実施形態は、あくまで例示的なものにすぎず、本発明の範囲を限定することを目的としたものではない点は認識されるであろう。
【図１】先行技術に従う、テキストメッセージを読むためのハンズオンインターフェースの一例を示したスクリーンショットである。
【図２】テキストメッセージに返信するためのインターフェースの一例を示したスクリーンショットである。
【図３Ａ】テキストメッセージに返信するためにボイスディクテーションインターフェースが使用される一例を示した一連のスクリーンショットである。
【図３Ｂ】テキストメッセージに返信するためにボイスディクテーションインターフェースが使用される一例を示した一連のスクリーンショットである。
【図４】一実施形態に係る、テキストメッセージを受信するためのインターフェースの一例を示したスクリーンショットである。
【図５Ａ】ユーザがハンズフリーコンテキストでテキストメッセージを受信し、これに返信している本発明の一実施形態に係るマルチモーダルバーチャルアシスタントの動作の一例を示した一連のスクリーンショットである。
【図５Ｂ】ユーザがハンズフリーコンテキストでテキストメッセージを受信し、これに返信している本発明の一実施形態に係るマルチモーダルバーチャルアシスタントの動作の一例を示した一連のスクリーンショットである。
【図５Ｃ】ユーザがハンズフリーコンテキストでテキストメッセージを受信し、これに返信している本発明の一実施形態に係るマルチモーダルバーチャルアシスタントの動作の一例を示した一連のスクリーンショットである。
【図５Ｄ】ユーザがハンズフリーコンテキストでテキストメッセージを受信し、これに返信している本発明の一実施形態に係るマルチモーダルバーチャルアシスタントの動作の一例を示した一連のスクリーンショットである。
【図６Ａ】ユーザがハンズフリーコンテキストでテキストメッセージを修正している本発明の一実施形態に係るマルチモーダルバーチャルアシスタントの動作の一例を示した一連のスクリーンショットである。
【図６Ｂ】ユーザがハンズフリーコンテキストでテキストメッセージを修正している本発明の一実施形態に係るマルチモーダルバーチャルアシスタントの動作の一例を示した一連のスクリーンショットである。
【図６Ｃ】ユーザがハンズフリーコンテキストでテキストメッセージを修正している本発明の一実施形態に係るマルチモーダルバーチャルアシスタントの動作の一例を示した一連のスクリーンショットである。
【図７】一実施形態に係る、ハンズフリーコンテキストの動的検出及びハンズフリーコンテキストに対する適合をサポートするバーチャルアシスタントの動作の方法を示したフロー図である。
【図８】一実施形態に係るバーチャルアシスタントシステムの一例を示したブロック図である。
【図９】少なくとも一実施形態に係るバーチャルアシスタントの少なくとも一部を実施するのに適したコンピューティング機器を示したブロック図である。
【図１０】少なくとも１つの実施形態に係る、スタンドアロンコンピューティングシステム上でバーチャルアシスタントの少なくとも一部を実施するためのアーキテクチャを示したブロック図である。
【図１１】少なくとも１つの実施形態に係る、分散コンピューティングネットワーク上でバーチャルアシスタントの少なくとも一部を実施するためのアーキテクチャを示したブロック図である。
【図１２】幾つかの異なる種類のクライアント及び動作モードを示すシステムアーキテクチャを示したブロック図である。
【図１３】一実施形態に係る、本発明を実施するために互いに通信しているクライアント及びサーバーを示したブロック図である。
【図１４】いくつかの実施形態に係る電子機器の機能ブロック図である。
【発明を実施するための形態】
【００２０】
本発明の様々な実施形態に係る、ハンズフリーコンテキストは、バーチャルアシスタントの動作に関連して検出され、これに応じてバーチャルアシスタントのユーザインターフェースが調節されることにより、ユーザがアシスタントとハンズフリーコンテキストで意味のあるインタラクトを行うことが可能となる。
【００２１】
説明の目的で「バーチャルアシスタント」なる用語は、「インテリジェント自動アシスタント」なる用語と等価であり、いずれも以下の機能の１つ以上を実行する任意の情報処理システムのことを指す。すなわち、
●音声及び／又はテキストの形態の人の言語入力を解釈する。
●ユーザ意図の表現を、ステップ及び／又はパラメータを有するタスクの表現などの実行可能な形態で操作可能にする。
●プログラム、方法、サービス、ＡＰＩなどを呼び出すことによりタスク表現を実行する。
●ユーザへの出力応答を言語及び／又はグラフィックの形態で生成する。
【００２２】
このようなバーチャルアシスタントの１つの例が、その開示内容の全体を本明細書に参照により援用するところの２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」についての関連する米国実用特許出願第１２／９８７，９８２号に述べられている。
【００２３】
以下に、様々な方法について、添付の図面に示される例示的な実施形態を参照しながら詳細に述べる。以下の説明では、本明細書において説明又は参照する１つ以上の態様及び／又は特徴の完全な理解を与えるために多くの具体的な詳細を記載する。しかしながら、本明細書において説明又は参照する１つ以上の態様及び／又は特徴は、これらの具体的な詳細の一部又はすべてがなくとも実施可能である点は当業者には明らかであろう。他の場合では、本明細書において説明又は参照する態様及び／又は特徴の特定のものを分かりにくくすることがないよう、周知のプロセスのステップ及び／又は構造については説明していない。
【００２４】
本出願には、１つ以上の異なる発明が述べられうる。更に、本明細書に述べられる発明の１つ以上について、多くの実施形態が本特許出願に述べられうるが、これらはあくまで説明を目的として示されるものである。述べられる実施形態は、いかなる意味においても限定することを目的としたものではない。本発明の１つ以上のものは、本開示より直ちに明らかであるように、多くの実施形態に広く応用することが可能である。これらの実施形態は、本発明の１つ以上のものを当業者が実施することを可能とするように充分な詳細にわたって説明されるものであり、他の実施形態の使用も可能であって、構造的、論理的、ソフトウェア上、電気的、及び他の変更を、上記の１つ以上の発明の範囲から逸脱することなく行うことができる点は理解されるはずである。したがって、当業者であれば、上記の１つ以上の発明は、様々な改変及び変更を加えて実施することができる点は認識されるであろう。１つ以上の本発明の特定の特徴は、１つ以上の特定の実施形態、又は本開示の一部をなすとともに、実例として１つ以上の発明の特定の実施形態が示された図面を参照して述べることができる。しかしながら、こうした特徴は、１つ以上の特定の実施形態、又はそれを参照しながら実施形態が述べられる図面における使用に限定されない点は理解されるべきである。本開示は、１つ以上の発明のすべての実施形態の文字通りの記載でもなければ、すべての実施形態において含まれなければならない１つ以上の発明の特徴を列記するものでもない。
【００２５】
本特許出願に示される項目の見出し、及び本出願の名称はあくまで便宜上のものであって、いかなる意味においても開示内容を限定するものとして解釈されるべきではない。
【００２６】
互いに通信状態にある機器同士は、明らかに断らないかぎりは、互いに継続的に通信している必要はない。更に、互いに通信状態にある機器同士は、１つ以上の中間物を介して直接的又は間接的に通信しうる。
【００２７】
互いに通信状態にある複数の要素を含む実施形態の説明は、すべてのこうした要素が必要とされることを示唆するものではない。その逆に、１つ以上の発明の様々な可能な実施形態を説明するために様々な任意要素が説明される。
【００２８】
更に、プロセスのステップ、方法のステップ、アルゴリズムなどは、連続的な順序で述べられうるが、こうしたプロセス、方法、及びアルゴリズムは任意の適当な順序で機能するように構成することができる。換言するならば、本特許出願に述べられうるステップの任意の順番又は順序は、これらのステップがその順序で実行される必要性をそれ自体示唆するものではない。更に、一部のステップは、（例えば、あるステップが他のステップの後に述べられていることにより）同時に起こらないものとして述べられるか又は示唆されていても同時に実行される場合もある。更に、図面における描写によるあるプロセスの説明は、説明されるプロセスがそのプロセスに対する他の変形及び改変を除外することを示唆するものではなく、説明されるプロセス又はその任意のステップが１つ以上の発明に必要であることを示唆するものでもなく、説明されるプロセスが好ましいものであることを示唆するものでもない。
【００２９】
単一の機器又は物品について述べる場合、単一の機器／物品に代えて複数の機器／物品（それらが協働するか否かによらず）の使用が可能である点は直ちに明らかとなろう。同様に、複数の機器又は物品について述べる場合（それらが協働するか否かによらず）、複数の機器又は物品に代えて単一の機器／物品の使用が可能である点は直ちに明らかとなろう。
【００３０】
ある機器の機能及び／又は特徴は、こうした機能／特徴を有するものとして明確に述べられない１つ以上の他の機器によって代替的に実施することもできる。したがって、１つ上の発明の他の実施形態は、その機器自体を必ずしも含まない。
【００３１】
本明細書において説明又は参照する方法及び機構は、理解を助けるために単数形で述べられる場合がある。しかしながら、特定の実施形態は、特にそうでないことが断られないかぎりは、ある方法の複数回の繰り返し、又はある機構の複数の設置を含む点に留意されなければならない。
【００３２】
本明細書に述べられる様々な態様及び方法は、バーチャルアシスタントとしても知られるインテリジェント自動アシスタントを実施するための技術のコンテキストの範囲内で述べられるものであるが、ソフトウェアとの、人及び／又はコンピュータ化されたインタラクションが行われる他の技術分野において展開及び／又は応用することも可能である点は理解されうる。
【００３３】
バーチャルアシスタント技術（例えば、本明細書に述べられる１つ以上のバーチャルアシスタントシステムの実施形態によって利用されるか、提供されるか、及び／又は実施されうる）に関連する他の態様が、それらの開示内容の全体を本明細書に参照により援用するところの以下の文献の１つ以上において開示されている。すなわち、
●２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」に対する米国実用特許出願第１２／９８７，９８２号、
●２０１０年１月１８日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」に対する米国特許仮出願第６１／２９５，７７４号、
●２０１１年９月３０日出願の発明の名称が「Ｕｓｉｎｇ  Ｃｏｎｔｅｘｔ  Ｉｎｆｏｒｍａｔｉｏｎ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｆ  Ｃｏｍｍａｎｄｓ  ｉｎ  ａ  Ｖｉｒｔｕａｌ  Ａｓｓｉｓｔａｎｔ」である米国実用特許出願第１３／２５０，８５４号、
●２００６年９月８日に出願された「Ｍｅｔｈｏｄ  Ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｂｕｉｌｄｉｎｇ  ａｎ  Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」に対する米国特許出願第１１／５１８，２９２号、
●２００９年６月１２日出願の「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｓｅｍａｎｔｉｃ  Ａｕｔｏ−Ｃｏｍｐｌｅｔｉｏｎ」に対する米国仮特許出願第６１／１８６，４１４号。
【００３４】
ハードウェアアーキテクチャ
一般的に、本明細書に開示されるバーチャルアシスタント技術は、ハードウェア上又はソフトウェアとハードウェアとの組み合わせにおいて実施することができる。例えば、これらの技術は、オペレーティングシステムカーネル、別のユーザプロセス、ネットワークアプリケーションに組み込まれたライブラリパッケージ、特別に構築されたマシン、及び／又はネットワークインターフェースカードにおいて実施することができる。特定の一実施形態では、本明細書に開示される技術は、オペレーティングシステムなどのソフトウェア、又はオペレーティングシステム上で動作するアプリケーションにおいて実施することができる。
【００３５】
本明細書で開示するバーチャルアシスタントの少なくとも一部の実施形態のソフトウェア／ハードウェアのハイブリッドの実施は、メモリに記憶されたコンピュータプログラムにより選択的に起動又は再構成されるプログラマブルマシン上で実施することができる。このようなネットワーク機器は、異なる種類のネットワーク通信プロトコルを利用するように構成又は設計することができる複数のネットワークインターフェースを有しうる。これらのマシンの一部のものの一般的なアーキテクチャは、本明細書に開示される説明より明らかとなろう。特定の実施形態に係る、本明細書に開示される様々なバーチャルアシスタントの実施形態の少なくとも一部の特徴及び／又は機能は、エンドユーザコンピュータシステム、コンピュータ、ネットワークサーバー若しくはサーバーシステム、モバイルコンピューティング機器（例えば、携帯情報端末、モバイル電話、スマートフォン、ラップトップ、タブレットコンピュータなど）、家庭用電子機器、音楽プレーヤ、又は他の任意の適当な電子機器、ルータ若しくはスイッチなど、又はこれらの任意の組み合わせなどの１つ以上の汎用ネットワークホストマシン上で実施することができる。少なくともいくつかの実施形態では、本明細書に開示される様々なバーチャルアシスタントの実施形態の特徴及び／又は機能の少なくとも一部は、１つ以上の仮想化コンピューティング環境（例えば、ネットワークコンピューティングクラウドなど）において実施することができる。
【００３６】
ここで図９を参照すると、本明細書に開示されるバーチャルアシスタントの特徴及び／又は機能の少なくとも一部を実施するのに適したコンピューティング機器６０を示したブロック図が示されている。コンピューティング機器６０は、例えば、エンドユーザコンピュータシステム、コンピュータ、ネットワークサーバー若しくはサーバーシステム、モバイルコンピューティング機器（例えば、携帯情報端末、モバイル電話、スマートフォン、ラップトップ、タブレットコンピュータなど）、家庭用電子機器、音楽プレーヤ、又は他の任意の適当な電子機器、又はこれらの任意の組み合わせ若しくはその一部であってもよい。コンピューティング機器６０は、インターネットなどの通信ネットワーク上で、クライアント及び／又はサーバーなどの他のコンピューティング機器と、公知のこうした通信用のプロトコルを使用して無線又は有線で通信するように適合することができる。
【００３７】
一実施形態では、コンピューティング機器６０は、中央処理装置（ＣＰＵ）６２、インターフェース６８、及びバス６７（ペリフェラルコンポーネントインターコネクト（周辺要素相互接続）（ＰＣＩ）バスなど）を有している。適当なソフトウェア又はファームウェアの制御下で動作している場合、ＣＰＵ  ６２は、特別に構成されたコンピューティング機器又はマシンの機能と関連付けられた特定の機能を実行する役割を担うことができる。例えば、少なくとも１つの実施形態において、ユーザの携帯情報端末（ＰＤＡ）又はスマートフォンを、ＣＰＵ  ６２、メモリ６１、６５、及びインターフェース６８を使用するバーチャルアシスタントシステムとして機能するように構成又は設計することができる。少なくとも１つの実施形態において、ＣＰＵ  ６２に、例えば、オペレーティングシステム及び任意の適当なアプリケーションソフトウェア、ドライバなどを含みうるソフトウェアモジュール／要素の制御下で１つ以上の異なる種類のバーチャルアシスタント機能及び／又は動作を実行させることができる。
【００３８】
ＣＰＵ  ６２は、例えば、Ｍｏｔｏｒｏｌａ又はＩｎｔｅｌ系のマイクロプロセッサ又はＭＩＰＳ系のプロセッサなどの１つ以上のプロセッサ６３を含みうる。いくつかの実施形態では、プロセッサ６３は、コンピューティング機器６０の動作を制御するための特別に設計されたハードウェア（例えば、特定用途向け集積回路（ＡＳＩＣ）、電気的に消去可能なプログラマブル読み出し専用メモリ（ＥＥＰＲＯＭ）及びフィールドプログラマブルゲートアレイ（ＦＰＧＡ）など）を含みうる。特定の一実施形態では、メモリ６１（不揮発性ランダムアクセスメモリ（ＲＡＭ）及び／又は読み出し専用メモリ（ＲＯＭ）など）は、ＣＰＵ  ６２の一部を更に形成する。しかしながら、メモリをシステムと結合する多くの異なる方法が存在している。メモリブロック６１は、例えば、データ、及びプログラミング命令などのキャッシュ及び／又は記憶などの様々な目的で使用されうる。
【００３９】
本明細書において使用するところの「プロセッサ」なる用語は、従来技術においてプロセッサと呼ばれる集積回路のみに限定されるものではなく、マイクロコントローラ、マイクロコンピュータ、プログラマブルロジックコントローラ、特定用途向け集積回路及び他の任意のプログラマブル回路を広く指すものである。
【００４０】
一実施形態では、インターフェース６８はインターフェースカード（「ラインカード」と呼ばれる場合もある）として提供される。一般的に、こうしたインターフェースは、コンピューティングネットワーク上でのデータパケットの送受信を制御し、場合によりコンピューティング機器６０とともに使用される他の周辺機器に対応する。提供されうるインターフェースは、Ｅｔｈｅｒｎｅｔインターフェース、フレームリレーインターフェース、ケーブルインターフェース、ＤＳＬインターフェース及びトークンリングインターフェースなどである。更に、例えば、ユニバーサルシリアルバス（ＵＳＢ）、Ｓｅｒｉａｌ、Ｅｔｈｅｒｎｅｔ、Ｆｉｒｅｗｉｒｅ、ＰＣＩ、パラレル、無線周波数（ＲＦ）、Ｂｌｕｅｔｏｏｔｈ（商標）、近距離無線通信（例えば、近傍磁界を使用する）、８０２．１１（ＷｉＦｉ）、フレームリレー、ＴＣＰ／ＩＰ、ＩＳＤＮ、高速Ｅｔｈｅｒｎｅｔインターフェース、ギガビットＥｔｈｅｒｎｅｔインターフェース、非同期転送モード（ＡＴＭ）インターフェース、高速シリアルインターフェース（ＨＳＳＩ）、販売時点情報管理（ＰＯＳ）インターフェース及び光ファイバ分散データインターフェース（ＦＤＤＩ）などの様々な種類のインターフェースが提供されうる。一般的に、こうしたインターフェース６８は、適当な媒体と通信するのに適したポートを含みうる。特定の場合では、こうしたインターフェースは、独立したプロセッサを含んでもよく、場合により揮発性及び／又は不揮発性メモリ（例えば、ＲＡＭ）を含んでもよい。
【００４１】
図９に示されるシステムは、本明細書に述べられる発明の方法を実施するためのコンピューティング機器６０の１つの特定のアーキテクチャを示しているが、これは、本明細書に述べられる特徴及び方法の少なくとも一部を実施することが可能な唯一のデバイスアーキテクチャというわけでは決してない。例えば、１つ又は任意の数のプロセッサ６３を有するアーキテクチャを使用することが可能であり、そのようなプロセッサ６３は単一の機器に存在してもよく、又は任意の数の機器の間で分散されてもよい。一実施形態では、単一のプロセッサ６３は、通信及びルーティング計算を行う。様々な実施形態において、異なる種類のバーチャルアシスタントの特徴及び／又は機能を、クライアント機器（クライアントソフトウェアが動作するスマートフォン又は携帯情報端末など）及びサーバーシステム（以下に更に詳細に説明するサーバーシステムなど）を含むバーチャルアシスタントシステムにおいて実施することができる。
【００４２】
ネットワーク機器の構成に関係なく、本発明のシステムは、データ、汎用ネットワーク動作のためのプログラム命令、及び／又は本明細書に述べられるバーチャルアシスタント技術の機能に関する他の情報を記憶するように構成された１つ以上のメモリ又はメモリモジュール（例えば、メモリブロック６５など）を使用することができる。プログラム命令は、例えば、オペレーティングシステム及び／又は１つ以上のアプリケーションの動作を制御することができる。１又は複数のメモリを、データ構造、キーワードタクソノミー情報、広告情報、ユーザクリック及びインプレッション情報、及び／又は本明細書に述べられる他の特定の非プログラム情報を記憶するように構成することもできる。
【００４３】
こうした情報及びプログラム命令を、本明細書に述べられるシステム／方法を実施するために使用することができることから、少なくとも一部のネットワーク機器の実施形態では、例えば、本明細書に述べられる様々な動作を実行するためのプログラム命令及び状態情報などを記憶するように構成又は設計することができる永続的な機械可読記憶媒体を含む。このような永続的な機械可読記憶媒体の例としては、これらに限定されるものではないが、ハードディスク、フロッピーディスク及び磁気テープなどの磁気媒体、ＣＤ−ＲＯＭディスクなどの光媒体、フロプティカルディスクなどの光磁気媒体、並びに読み出し専用メモリ素子（ＲＯＭ）、フラッシュメモリ、メモリスタメモリ及びランダムアクセスメモリ（ＲＡＭ）などのプログラム命令を記憶及び実行するように特別に構成されたハードウェア機器などが挙げられる。プログラム命令の例としては、コンパイラによって生成されるなどのマシンコード、インタプリタを使用してコンピュータにより実行される高水準コードを含むファイルの両方が挙げられる。
【００４４】
一実施形態では、本発明のシステムは、スタンドアロンコンピューティングシステム上で実施される。次に図１０を参照すると、少なくとも一実施形態に係る、スタンドアロンコンピューティングシステム上でバーチャルアシスタントの少なくとも一部を実施するためのアーキテクチャを示すブロック図が示されている。コンピューティング機器６０は、マルチモードバーチャルアシスタント１００２を実施するためのソフトウェアを動作させるプロセッサ６３を含む。入力装置１２０６は、例えば、キーボード、タッチスクリーン、マウス、タッチパッド、トラックボール、ファイブウェイスイッチ、ジョイスティック、及び／又はそれらの任意の組み合わせを含む、ユーザ入力を受け取るのに適した任意の種類の入力装置であってもよい。機器６０は、例えば、マイクロフォンなどの音声入力装置１２１１も含みうる。出力装置１２０７は、スクリーン、スピーカ、プリンタ、及び／又はそれらの任意の組み合わせであってもよい。メモリ１２１０は、ソフトウェアの動作時にプロセッサ６３により使用される、従来技術において周知の構造及びアーキテクチャを有するランダムアクセスメモリであってもよい。記憶装置１２０８は、デジタル形式でデータを記憶するための任意の磁気的、光学的、及び／又は電気的記憶装置であり、例として、フラッシュメモリ、磁気ハードドライブ、ＣＤ−ＲＯＭなどが挙げられる。
【００４５】
別の実施形態では、本発明のシステムは、任意の数のクライアント及び／又はサーバーを有するものなどの分散コンピューティングネットワークにおいて実施される。次に図１１を参照すると、少なくとも１つの実施形態に係る、分散コンピューティングネットワーク上でバーチャルアシスタントの少なくとも一部を実施するアーキテクチャを示すブロック図が示されている。
【００４６】
図１１に示す構成では、任意の数のクライアント１３０４が与えられ、各クライアント１３０４は、本発明のクライアント側部分を実施するためソフトウェアを動作させることができる。更に、クライアント１３０４から受信される要求を処理するために任意の数のサーバー１３４０が設けられてもよい。クライアント１３０４及びサーバー１３４０は、インターネットなどの電子ネットワーク１３６１を介して互いに通信することができる。ネットワーク１３６１は、例えば、有線及び／又は無線プロトコルを含む任意の公知のネットワークプロトコルを使用して実施することができる。
【００４７】
更に、一実施形態では、サーバー１３４０は、追加的な情報を取得する必要がある場合、又は特定のユーザとの先のインタラクションに関する記憶データを参照する必要がある場合に外部サービス１３６０を呼び出すことができる。外部サービス１３６０との通信は、例えば、ネットワーク１３６１を介して行うことができる。様々な実施形態において、外部サービス１３６０は、ハードウェア機器自体と関連するか又はハードウェア機器自体にインストールされたウェブ対応サービス及び／又は機能を含む。例えば、アシスタント１００２がスマートフォン又は他の電子機器上で実施される一実施形態では、アシスタント１００２は、カレンダアプリケーション（「ａｐｐ」）に記憶された情報、連絡先及び／又は他のソースを取得することができる。
【００４８】
様々な実施形態において、アシスタント１００２は、アシスタント１００２がインストールされた電子機器の多くの特徴及び動作を制御することができる。例えば、アシスタント１００２は、ＡＰＩ又は他の手段を介して機器の機能及びアプリケーションとインターフェースする外部サービス１３６０を呼び出すことにより、そうでない場合には機器上で従来のユーザインターフェースを使用して開始されうる機能及び動作を実行することができる。このような機能及び動作には、例えば、アラームを設定する、電話をかける、テキストメッセージ又は電子メールメッセージを送信する、及びカレンダイベントを追加することなどが含まれうる。このような機能及び動作は、ユーザとアシスタント１００２との間の会話ダイアログのコンテキストにおいてアドオン機能として実行することができる。このような機能及び動作は、このようなダイアログのコンテキストにおいてユーザが指定するか、又はダイアログのコンテキストに基づいて自動的に実行することができる。これによりアシスタント１００２を電子機器の様々な動作を開始及び制御するための制御機構として使用することが可能であり、これをボタン又はグラフィカルユーザインターフェースなどの従来の機構に代わるものとして使用することができる点は当業者であれば認識されるところであろう。
【００４９】
例えば、ユーザは、「明日、８時に起きます」などの入力をアシスタント１００２に与えることができる。本明細書に述べられる方法を使用してアシスタント１００２がユーザ意図を判定すると、アシスタント１００２は機器のアラームクロック機能又はアプリケーションとインターフェースするために外部サービス１３６０を呼び出すことができる。アシスタント１００２は、ユーザの代わりにアラームを設定する。このようにして、ユーザはアラームを設定するか又は機器の他の機能を実行する従来の機構に代わるものとしてアシスタント１００２を使用することができる。ユーザの要求が曖昧であるか又は更なる説明を必要とする場合、アシスタント１００２は、適切なサービス１３６０が呼び出され、意図した動作が行われるように、能動的な誘導、言い換え及び提案などを含む、ハンズフリーコンテキストに適合させることができる、本明細書に述べられる様々な技術を使用することができる。一実施形態では、アシスタント１００２は、機能を実行するためにサービス１３６０を呼び出す前にユーザに確認を促すか、及び／又は任意の適当なソースから更なるコンテキスト情報を要求することができる。一実施形態では、ユーザは、特定のサービス１３６０を呼び出すアシスタント１００２の能力を選択的に無効化するか、又は必要に応じてすべてのそのようなサービスの呼び出しを無効化することができる。
【００５０】
本発明のシステムは、多くの異なる種類のクライアント１３０４及び動作モードのいずれによっても実施することができる。次に図１２を参照すると、いくつかの異なる種類のクライアント１３０４及び動作モードを示したシステムアーキテクチャを示すブロック図が示されている。図１２に示される様々な種類のクライアント１３０４及び動作モードはあくまで代表的なものであって、本発明のシステムは図に示した以外のクライアント１３０４及び／又は動作モードを使用して実施可能である点は、当業者であれば認識されるところであろう。更にシステムは、このようなクライアント１３０４及び／又は動作モードのいずれか又はすべてを単独で又はあらゆる組み合わせとして含むことができる。図に示される例には以下が含まれる。すなわち、
●入出力装置及び／又はセンサを有するコンピュータ機器１４０２。クライアント要素は、任意のこうしたコンピュータ機器１４０２上で展開することができる。少なくとも１つの実施形態を、ウェブブラウザ１３０４Ａ又はネットワーク１３６１を介したサーバー１３４０との通信を可能にする他のソフトウェアアプリケーションを使用して実施することができる。入出力チャンネルは、例えば、視覚及び／又は聴覚チャンネルを含む任意の種類のものであってもよい。例えば、一実施形態では、本発明のシステムは、音声による通信方法を使用して実施することが可能であるが、これは視覚障害者のためのアシスタントの一実施形態を可能にするものであり、視覚障害者にとってのウェブブラウザに相当する実施形態が音声によって作動され、出力に音声を使用する。
●クライアントをモバイル機器１３０４Ｂ上でアプリケーションとして実施することができる、Ｉ／Ｏ及びセンサを有するモバイル機器１４０６。これには、モバイル電話、スマートフォン、携帯情報端末、タブレット機器及びネットワーク化ゲーム機が含まれるがこれらに限定されない。
●クライアントを機器１３０４Ｃ上で組み込みアプリケーションとして実施することができる、Ｉ／Ｏ及びセンサを有する家電製品１４１０。
●クライアントを組み込みシステムアプリケーション１３０４Ｄとして実施することができる、ダッシュボードインターフェース及びセンサを有する自動車及び他の乗り物１４１４。これには、自動車のナビゲーションシステム、音声制御システム及び車載エンターテイメントシステムなどが含まれるがこれらに限定されない。
●クライアントを機器常駐アプリケーション１３０４Ｅとして実施することができる、ルータなどのネットワーク化コンピューティング機器１４１８、又はネットワーク上に常駐するか若しくはネットワークとインターフェースする他の任意の機器。
●アシスタントの一実施形態が電子メールモダリティサーバー１４２６を介して接続される電子メールクライアント１４２４。電子メールモダリティサーバー１４２６は通信ブリッジとして動作し、例えば、アシスタントに送信された電子メールメッセージとしてユーザからの入力を取り込み、応答としてアシスタントからユーザに出力を送出する。
●アシスタントの一実施形態がメッセージングモダリティサーバー１４３０を介して接続されるインスタントメッセージングクライアント１４２８。メッセージングモダリティサーバー１４３０は、通信ブリッジとして動作し、ユーザからの入力をアシスタントに送信されたメッセージとして取り込み、応答のメッセージとしてアシスタントからユーザに出力を送出する。
●アシスタントの一実施形態がボイスオーバーインターネットプロトコル（ＶｏＩＰ）モダリティサーバー１４３４を介して接続される音声電話１４３２。ＶｏＩＰモダリティサーバー１４３４は、通信ブリッジとして動作し、ユーザからの入力をアシスタントに話しかけられた音声として取り込み、応答としてアシスタントからユーザに、例えば、合成音声として出力を送出する。
【００５１】
これらに限定されるものではないが、電子メール、インスタントメッセージング、ディスカッションフォーラム、グループチャットセッション、ライブヘルプ又は顧客サポートセッションなどを含むメッセージングプラットフォームの場合では、アシスタント１００２は会話の参加者として動作することができる。アシスタント１００２は、１対１のインタラクションのために本明細書に述べられる１つ以上の技術及び方法を使用して、会話を監視し、個人又はグループに応答することができる。
【００５２】
様々な実施形態において、本発明の技術を実施するための機能は、任意の数のクライアント及び／又はサーバー要素に分散されてもよい。例えば、様々なソフトウェアモジュールを、本発明と関連する様々な機能を行うために実施することが可能であるが、そのようなモジュールは、サーバー及び／又はクライアント要素上で動作させるために様々な形態で実施することができる。このような構成の更なる詳細については、その開示内容の全体を本明細書に参照により援用するところの２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」に対する関連する米国実用特許出願第１２／９８７，９８２号に示されている。
【００５３】
図１３の例では、入力誘導機能及び出力処理機能はクライアント１３０４とサーバー１３４０との間で分散され、入力誘導のクライアント部分２７９４ａ及び出力処理のクライアント部分２７９２ａはクライアント１３０４に配置され、入力誘導のサーバー部分２７９４ｂ及び出力処理のサーバー部分２７９２ｂはサーバー１３４０に配置されている。以下の要素が、サーバー１３４０に配置されている。すなわち、
●完全な用語集２７５８ｂ、
●言語パターンレコグナイザの完全なライブラリ２７６０ｂ、
●短期個人メモリのマスターバージョン２７５２ｂ、
●長期個人メモリのマスターバージョン２７５４ｂ。
【００５４】
一実施形態では、クライアント１３０４は、応答性を向上させ、ネットワーク通信への依存性を低減するためにこれらの要素のサブセット及び／又は部分をローカルに保守する。このようなサブセット及び／又は部分は、公知のキャッシュ管理技術に従って保守及び更新することができる。そのような部分集合及び／又は部分には、例えば、以下のものが含まれる。すなわち、
●用語集のサブセット２７５８ａ、
●言語パターンレコグナイザのライブラリのサブセット２７６０ａ、
●短期個人メモリのキャッシュ２７５２ａ、
●長期個人メモリのキャッシュ２７５４ａ。
【００５５】
以下のものを含む更なる要素をサーバー１３４０の一部として実施することができる。すなわち、
●言語インタプリタ２７７０、
●ダイアログフロープロセッサ２７８０、
●出力プロセッサ２７９０、
●ドメインエンティティデータベース２７７２、
●タスクフローモデル２７８６、
●サービスオーケストレーション２７８２、
●サービス機能モデル２７８８。
【００５６】
サーバー１３４０は、必要な場合に外部サービス１３６０とインターフェースすることにより追加的な情報を取得する。
【００５７】
次に図１４を参照すると、いくつかの実施形態に係る電子機器２０００の機能ブロック図が示されている。この機器の機能ブロックは、本発明の原理を実行するためにハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせにより実施することができる。当業者によれば、図１４に述べられる機能ブロックは、上記に述べたような本発明の原理を実施するために組み合わせるか、又はサブブロックに分割することができる。したがって、本明細書における説明は、あらゆる可能な組み合わせ若しくは分割、又は本明細書に述べられる更なる機能ブロックの定義を支持しうるものである。
【００５８】
図１４に示されるように、電子機器２０００は、処理ユニット２００６を含む。いくつかの実施形態では、処理ユニット２００６は、コンテキスト検出ユニット２００８、ユーザ入力解釈ユニット２０１０、タスク及びパラメータ特定ユニット２０１２、タスク実行ユニット２０１４、及びダイアログ応答生成ユニット２０１６を含む。電子機器２０００は、処理ユニットに結合され、ユーザに入力を促すように構成された出力ユニット２００２を更に含む。電子機器は、処理ユニットに結合され、ユーザ入力を受け取るように構成された入力ユニット２００３を更に有している。いくつかの実施形態では、電子機器２０００は、機器２０００の１つ以上のセンサ、及び／又は、環境状態センサ、周辺機器、車両の車載システム、位置センサ（例えば、ＧＰＳセンサ）、速度センサ他などの電子機器２０００の外部のセンサ／機器からデータを受信するように構成された通信ユニット２００４も含む。
【００５９】
処理ユニットは、ハンズフリーコンテキストが有効であるか否かを検出し（例えば、コンテキスト検出ユニット２００８により）、受け取られたユーザ入力を解釈してユーザ意図の表現を導出し（例えば、ユーザ入力解釈ユニット２０１０により）、前記導出されたユーザ意図の表現に少なくとも一部基づいて、少なくとも１つのタスク及びそのタスクの少なくとも１つのパラメータを特定し（例えば、タスク及びパラメータ特定ユニット２０１２により）、前記少なくとも１つのパラメータを用いて前記少なくとも１つのタスクを実行することにより結果を導出し（例えば、タスク実行ユニット２０１４により）、前記導出された結果に基づいてダイアログ応答を生成し（例えば、ダイアログ応答生成ユニット２０１６により）、出力装置に前記生成されたダイアログ応答を出力させる（例えば、出力ユニット２００２により）ように構成されている。機器がハンズフリーコンテキストにあることの検出（例えば、コンテキスト検出ユニット２００８により）に応じて、ユーザに入力を促すステップ、ユーザ入力を受け取るステップ、受け取られたユーザ入力を解釈するステップ、少なくとも１つのタスク及びそのタスクの少なくとも１つのパラメータを特定するステップ、並びにダイアログ応答を生成するステップのうちの少なくとも１つが、ハンズフリーコンテキストにともなう制約と整合した方法で実行される（例えば、入力ユニット２００３、出力ユニット２００２、及び／又は処理ユニット２００６により）。
【００６０】
少なくとも２つのインタラクションモードがコンピューティング機器とのユーザインタラクションに利用可能であるようないくつかの実施形態では、機器がハンズフリーコンテキストにあることの検出に応じて、ユーザに入力を促すステップ、ユーザ入力を受け取るステップ、受け取られたユーザ入力を解釈するステップ、少なくとも１つのタスク及びそのタスクの少なくとも１つのパラメータを特定するステップ、並びにダイアログ応答を生成するステップのうちの少なくとも１つが、ハンズフリー動作に適合された第１のインタラクションモードを用いて実行され（例えば、処理ユニット２００６の１つ以上のユニットにより）、機器がハンズフリーコンテキストにないことの検出に応じて、ユーザに入力を促すステップ、ユーザ入力を受け取るステップ、受け取られたユーザ入力を解釈するステップ、少なくとも１つのタスク及びそのタスクの少なくとも１つのパラメータを特定するステップ、並びにダイアログ応答を生成するステップのうちの少なくとも１つが、ハンズフリー動作に適合されていない第２のインタラクションモードを用いて実行される（例えば、処理ユニット２００６の１つ以上のユニットにより）。
【００６１】
いくつかの実施形態では、処理ユニット２００６は、コンピューティング機器により提示される視覚的出力をユーザが見ることができること、コンピューティング機器により提示されるグラフィカルユーザインターフェースとユーザがインタラクトできること、コンピューティング機器の物理的構成要素をユーザが使用することができること、コンピューティング機器上でタッチ入力をユーザが行うことができること、コンピューティング機器上のスイッチをユーザが作動できること、及び、コンピューティング機器上のキーボードをユーザが使用できること、からなる群から選択される少なくとも１つにおける制約を示す条件を検出することによりハンズフリーコンテキストが有効であるか否かを検出する（例えば、コンテキスト検出ユニット２００８により）ように更に構成される。
【００６２】
いくつかの実施形態では、出力ユニット２００２は、機器がハンズフリーコンテキストにないことの検出に応じて、ハンズフリーコンテキストに適合されていない第１の出力モードによりユーザを促し、機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリーコンテキストに適合された第２の出力モードによりユーザを促すように構成される。いくつかの実施形態では、第１の出力モードは視覚的出力モードである。いくつかの実施形態では、第２の出力モードは聴覚的出力モードである。
【００６３】
いくつかの実施形態では、視覚的出力モードによりユーザを促す（例えば、出力ユニット２００２により）ことは、ディスプレイ画面にプロンプトを表示することを含み、聴覚的出力モードによりユーザを促す（例えば、出力ユニット２００２により）ことは、音声プロンプトを出力することを含む。
【００６４】
いくつかの実施形態では、処理ユニット２００６は、機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた語彙を使用して、受け取られたユーザ入力を解釈する（例えば、ユーザ入力解釈ユニット２０１０により）ように構成される。
【００６５】
いくつかの実施形態では、処理ユニット２００６は、機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行する（例えば、タスク実行ユニット２０１４により）ように構成される。いくつかの実施形態では、ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することは、音声によるインターフェースにより入力された内容を修正及び確認するようにユーザに促す（例えば、出力ユニット２００２及び／又は入力ユニット２００３により）ことを含む。
【００６６】
いくつかの実施形態では、処理ユニット２００６は、聴覚的出力を用いて少なくとも１つのタスクフローステップを実行する（例えば、タスク実行ユニット２０１４及び／又は出力ユニット２００２により）ように更に構成される。いくつかの実施形態では、処理ユニット２００６は、ハンズフリーコンテキストに適した、限定された使用可能なタスクフローステップ群から選択される少なくとも１つのタスクフローステップを実行することにより、少なくとも１つのタスクフロー特定ステップを実行する（例えば、タスク実行ユニット２０１４により）ように構成される。
【００６７】
いくつかの実施形態では、処理ユニット２００６は、機器がハンズフリーコンテキストにあることの検出に応じて、音声による出力モードでダイアログ応答を生成する（例えば、ダイアログ応答生成ユニット２０１６により）ように構成される。
【００６８】
いくつかの実施形態では、処理ユニット２００６は、ユーザ入力の少なくとも一部を音声の形態で言い換えることにより、音声による出力モードでダイアログ応答を生成する（例えば、ダイアログ応答生成ユニット２０１６により）ように構成される。いくつかの実施形態では、処理ユニット２００６は、言い換えられたユーザ入力を他の音声出力から区別するために複数の声を使用して音声を生成することにより、音声による出力モードでダイアログ応答を生成する（例えば、ダイアログ応答生成ユニット２０１６により）ように構成される。いくつかの実施形態では、処理ユニット２００６は、ダイアログテンプレートを少なくとも１つの個人データのアイテムと組み合わせることにより、会話による出力モードでダイアログ応答を生成する（例えば、ダイアログ応答生成ユニット２０１６により）ように構成される。
【００６９】
いくつかの実施形態では、処理ユニット２００６は、ハンズフリーコンテキストを特定するユーザ入力を受け取ることと（例えば、入力ユニット２００３により）、ハンズフリーコンテキストに関連付けられた環境条件を示す少なくとも１つのセンサからデータを受信することと（例えば、通信ユニット２００４により）、ハンズフリーコンテキストに関連付けられた周辺機器の接続を検出することと（例えば、通信ユニット２００４により）、ハンズフリーコンテキストに関連付けられていない周辺機器の切断を検出することと（例えば、通信ユニット２００４により）、車両の車載システムとの通信を検出することと（例えば、通信ユニット２００４により）、現在位置を検出することと（例えば、通信ユニット２００４により）、現在速度を検出することと（例えば、通信ユニット２００４により）からなる群から選択される少なくとも１つのプロセスを実行することにより、ハンズフリーコンテキストが有効であるか否かを検出するように構成される。
【００７０】
いくつかの実施形態では、出力ユニット２００２は、会話インターフェースによりユーザを促すように構成され、入力ユニット２００３は、会話インターフェース  によりユーザ入力を受け取るように構成される。いくつかの実施形態では、入力ユニット２００３は音声入力を受け取るように構成され、処理ユニット２００６は、音声入力をテキスト表現に変換するように構成される（例えば、ユーザ入力解釈ユニット２０１０により）。
【００７１】
概念的アーキテクチャ
次に図８を参照すると、マルチモーダルバーチャルアシスタント１００２の特定の例示的な一実施形態の概略ブロック図が示されている。上記に参照した関連する米国実用特許出願により詳細に述べられるように、マルチモーダルバーチャルアシスタント１００２の異なる実施形態を、一般的にバーチャルアシスタント技術に関連した様々な異なる種類の動作、機能及び／若しくは特徴を与えるように構成、設計し、並びに／又は動作させることが可能である。更に、本明細書により詳細に述べられるように、本明細書に開示されるマルチモーダルバーチャルアシスタント１００２の様々な動作、機能及び／又は特徴の多くは、マルチモーダルバーチャルアシスタント１００２とインタラクトする異なるエンティティに対する異なる種類の利点及び／若しくは利益を実施可能とするか又は与えることができる。図８に示される実施形態は、上記に述べたハードウェアアーキテクチャのいずれかを使用するか、又は異なる種類のハードウェアアーキテクチャを使用して実施することができる。
【００７２】
例えば、異なる実施形態に係る、マルチモーダルバーチャルアシスタント１００２は、例えば、以下のうちの１つ以上（あるいはそれらの組み合わせ）などの様々な異なる種類の動作、機能及び／若しくは特徴を与えるように構成、設計され、並びに／又は動作させることが可能である。すなわち、
●製品及びサービスを発見、検索、選択、購入、予約又は注文するためにインターネット上で利用可能なデータ及びサービスの適用を自動化する。これらのデータ及びサービスを使用するプロセスを自動化することに加え、マルチモーダルバーチャルアシスタント１００２は、複数のデータソース及びサービスを組み合わせて同時に使用することも可能とする。例えば、マルチモーダルバーチャルアシスタント１００２は、複数のレビューサイトからの製品に関する情報を組み合わせ、複数の販売業者からの価格及び購入可能性を確認し、販売業者の場所及び時間的制約を確認し、ユーザがユーザの問題に対する個別の解決策を見つける助けとなりうる。
●やること（映画、イベント、演奏、展示、ショー及び観光名所を含むがこれらに限定されない）、行く場所（旅行目的地、滞在するホテル及び他の施設、ランドマーク及び対象となる他の目的地などを含むがこれらに限定されない）、飲食を行う場所（レストラン及びバーなど）、他の人との待ち合わせ時間及び場所、並びにインターネットで見つけることができる娯楽又は社会的交流の他の任意のソースを発見、調査、選択、予約、又は他の何らかの方法で知るためにインターネット上で利用可能なデータ及びサービスの使用を自動化する。
●検索（場所に基づく検索を含む）、ナビゲーション（地図及び方向）、データベースの検索（名前又は他の特性によりビジネス又は人を見つけることなど）、天気の状態及び予報の取得、市場アイテムの価格又は金融取引の状態の確認、交通又は飛行機の便の状態の監視、カレンダー及びスケジュールへのアクセス及びそれらの更新；リマインダ、アラート、タスク及びプロジェクトの管理、電子メール又は他のメッセージングプラットフォームによる通信、機器のローカル又はリモート操作（例えば、電話をかける、照明及び温度を制御する、ホームセキュリティデバイスを制御する、音楽又はビデオを再生するなど）を含むグラフィカルユーザインターフェースを有する専用アプリケーションによって与えられる自然言語ダイアログを介したアプリケーション及びサービスの操作を可能とする。一実施形態では、マルチモーダルバーチャルアシスタント１００２を、機器上で利用可能な多くの機能及びアプリケーションを開始、操作及び制御するために使用することができる。
●自然言語でのインタラクティブダイアログ、並びにデータ及びサービスへの自動アクセスによる利点が得られるアクティビティ、製品、サービス、娯楽のソース、時間管理、又は他の任意の種類の推薦サービスについて個人的な推薦を提供する。
【００７３】
異なる実施形態に係る、マルチモーダルバーチャルアシスタント１００２によって与えられる様々な種類の機能、操作、動作、及び／又は他の特徴の少なくとも一部のものを１つ以上のクライアントシステム、１つ以上のサーバーシステム、及び／又はそれらの組み合わせにおいて実施することができる。
【００７４】
異なる実施形態に係る、マルチモーダルバーチャルアシスタント１００２によって与えられる様々な種類の機能、操作、動作及び／又は他の特徴の少なくとも一部のものは、本明細書により詳細に述べられるように、ユーザ入力を解釈及び操作化するうえでコンテキスト情報を使用することができる。
【００７５】
例えば、少なくとも１つの実施形態において、マルチモーダルバーチャルアシスタント１００２は、特定のタスク及び／又は操作を実行する際に様々な異なる種類のデータ及び／又は他の種類の情報を利用及び／又は生成するように動作可能である。これには例えば、入力データ／情報及び／又は出力データ／情報が含まれうる。例えば、少なくとも１つの実施形態において、マルチモーダルバーチャルアシスタント１００２は、例えば、１つ以上のローカル及び／若しくはリモートメモリ、機器、並びに／又はシステムなどの１つ以上の異なる種類のソースからの情報にアクセスし、こうした情報を処理し、並びに／又は他の方法で利用するように動作可能であってもよい。更に、少なくとも１つの実施形態において、マルチモーダルバーチャルアシスタント１００２は、例えば、１つ以上のローカル及び／又はリモート機器及び／又はシステムのメモリに記憶することができる１つ以上の異なる種類の出力データ／情報を生成するように動作可能であってもよい。
【００７６】
マルチモーダルバーチャルアシスタント１００２によりアクセス及び／又は利用することが可能な異なる種類の入力データ／情報の例としては、これらに限定されるものではないが、以下のもの（又はそれらの組み合わせ）の１つ以上を挙げることができる。すなわち、
●モバイル電話及びタブレットなどのモバイル機器、マイクロフォン付きコンピュータ、Ｂｌｕｅｔｏｏｔｈヘッドセット、自動車の音声制御システム、電話システム、応答サービスによる記録、統合されたメッセージングサービス上の音声メール、クロックラジオなどの音声入力を有する消費者アプリケーション、電話局、ホームエンターテインメント制御システム、及びゲームコンソールからの音声入力。
●コンピュータ又はモバイル機器のキーボード、リモートコントロール又は他の家庭用電子機器のキーパッド、アシスタントに送信される電子メールメッセージ、アシスタントに送信されるインスタントメッセージ又は同様のショートメッセージ、マルチユーザゲーム環境においてプレーヤから受け取られるテキスト、及びメッセージフィードにおいてストリーミングされるテキストからのテキスト入力。
●センサ又は位置に基づくシステムから入力される位置情報。例としては、モバイル電話の全地球測位システム（ＧＰＳ）及びアシスト型ＧＰＳ（Ａ−ＧＰＳ）が挙げられる。一実施形態では、位置情報は、系統だったユーザ入力と組み合わされる。一実施形態では、本発明のシステムは、既知の住所情報及び現在位置の決定に基づいてユーザが家にいる場合にこれを検出できる。このようにして、ユーザが家の外にいる場合に対して家にいる場合に関心を有しうる情報の種類、並びにユーザが家にいるか否かに応じてユーザのために呼び出されるべきサービス及び動作の種類に関して特定の推論を行うことができる。
●クライアント機器のクロックからの時間情報。これには、例えば、現地時間及びタイムゾーンを示す電話又は他のクライアント機器からの時間が含まれる。更に、時間は、例えば、「１時間以内」及び「今夜」などの語句を解釈するためにユーザ要求のコンテキストで使用することができる。
●コンパス、加速度計、ジャイロスコープ及び／又は移動速度データ、並びにモバイル若しくはハンドヘルド機器、又は自動車の制御システムなどの組み込み型システムからの他のセンサデータ。これには、リモートコントロールから器具及びゲームコンソールへの機器測位データも含まれうる。
●グラフィカルユーザインターフェース（ＧＵＩ）を有するあらゆる機器におけるＧＵＩからのクリック、メニュー選択及び他のイベント。更なる例には、タッチスクリーンへのタッチが含まれる。
●アラームクロック、カレンダアラート、価格変更トリガ、位置トリガ及びサーバーから機器へのプッシュ通知他などのセンサ及び他のデータ駆動型トリガからのイベント。
【００７７】
本明細書に述べられる実施形態に対する入力は、ダイアログ及び要求履歴を含むユーザ対話インタラクション履歴のコンテキストを更に含む。
【００７８】
上記に参照した関連する米国実用特許出願に述べられるように、多くの異なる種類の出力データ／情報がマルチモーダルバーチャルアシスタント１００２によって生成されうる。これらには、以下のうちの１つ以上（又はそれらの組み合わせ）が含まれるがこれらに限定されない。すなわち、
●出力装置及び／又は機器のユーザインターフェースに直接送信されるテキスト出力、
●電子メールによりユーザに送信されるテキスト及びグラフィック、
●メッセージングサービスによりユーザに送信されるテキスト及びグラフィック、
●以下のうちの１つ以上（又はそれらの組み合わせ）を含みうる音声出力、すなわち、
○合成音声、
○サンプリング音声、
○記録メッセージ、
●写真、リッチテキスト、ビデオ、音及びハイパーリンクを含む情報のグラフィックレイアウト（例えば、ウェブブラウザでレンダリングされたコンテンツ）、
●電源をオン又はオフする、音を出す、色を変更する、振動させる、又は照明を制御する他などの機器に対する物理的動作を制御するためのアクチュエータ出力、
●マッピングアプリケーションの呼び出し、電話のボイスダイヤリング、電子メール又はインスタントメッセージの送信、メディアの再生、カレンダー、タスクマネージャ及びメモアプリケーションへの入力、並びに他のアプリケーションなどの機器上における他のアプリケーションの呼び出し、
●リモートカメラの操作、車椅子の制御、リモートスピーカでの音楽の再生及びリモートディスプレイでのビデオの再生他などの、機器に取り付けられているか又は機器によって制御される機器に対する物理的動作を制御するためのアクチュエータ出力。
【００７９】
図８のマルチモーダルバーチャルアシスタント１００２は、実施可能な様々なバーチャルアシスタントシステムの実施形態のあくまで１つの例であることは認識されるであろう。バーチャルアシスタントシステムの他の実施形態（図示せず）は、例えば、図８の例示的なバーチャルアシスタントシステムの実施形態において示されるものと比較して、更なる要素／特徴、より少ない要素／特徴、及び／又は異なる要素／特徴を含みうる。
【００８０】
マルチモーダルバーチャルアシスタント１００２は、例えば、ハードウェア及び／又はハードウェアとソフトウェアとの組み合わせの使用により実施及び／又は例示することが可能な、複数の異なる種類の要素、機器、モジュール、プロセス、システムなどが含まれうる。例えば、図８の例示的な実施形態に示されるように、アシスタント１００２は、以下の種類のシステム、構成要素、機器、プロセスなどの１つ以上（又はそれらの組み合わせ）を含みうる。すなわち、
●１つ以上の能動的オントロジ１０５０、
●能動的入力誘導要素２７９４（クライアント部分２７９４ａ及びサーバー部分２７９４ｂを含みうる）、
●短期個人メモリ要素２７５２（マスターバージョン２７５２ｂ及びキャッシュ２７５２ａを含みうる）、
●長期個人メモリ要素２７５４（マスターバージョン２７５４ｂ及びキャッシュ２７５４ａを含みうる）、
●ドメインモデル要素２７５６、
●語彙要素２７５８（完全な用語集２７５８ｂ及びサブセット２７５８ａを含みうる）、
●言語パターンレコグナイザ要素２７６０（フルライブラリ２７６０ｂ及び部分集合２７６０ａを含みうる）、
●言語インタプリタ要素２７７０、
●ドメインエンティティデータベース２７７２、
●ダイアログフロープロセッサ要素２７８０、
●サービスオーケストレーション要素２７８２、
●サービス要素２７８４、
●タスクフローモデル要素２７８６、
●ダイアログフローモデル要素２７８７、
●サービスモデル要素２７８８、
●出力プロセッサ要素２７９０。
【００８１】
特定のクライアント／サーバーに基づいた実施形態では、これらの要素の一部又はすべてはクライアント１３０４とサーバー１３４０との間で分散されてもよい。このような要素については、上記に参照した関連する米国実用特許出願に更に述べられている。
【００８２】
一実施形態では、バーチャルアシスタント１００２は、例えば、タッチスクリーン入力、キーボード入力、音声入力、及び／又はこれらの任意の組み合わせを含む任意の適当な入力モダリティによりユーザ入力２７０４を受け取る。一実施形態では、アシスタント１００２は、その開示内容の全体を本明細書に参照により援用するところの２０１１年９月３０日出願の発明の名称が「Ｕｓｉｎｇ  Ｃｏｎｔｅｘｔ  Ｉｎｆｏｒｍａｔｉｏｎ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｆ  Ｃｏｍｍａｎｄｓ  ｉｎ  ａ  Ｖｉｒｔｕａｌ  Ａｓｓｉｓｔａｎｔ」である関連する米国実用特許出願第１３／２５０，８５４号に述べられるような、イベントコンテキスト、アプリケーションコンテキスト、個人音声コンテキスト、及び／又は他の形態のコンテキストを含みうるコンテキスト情報１０００を更に受信する。コンテキスト情報１０００は、適用可能な場合に、本明細書に述べられる方法に従ってユーザインターフェースを適合させるために使用することが可能なハンズフリーコンテキストを更に含む。
【００８３】
本明細書に述べられる方法に従ってユーザ入力２７０４及びコンテキスト情報１０００が処理されると、バーチャルアシスタント１００２はユーザに提示するための出力２７０８を生成する。出力２７０８は、ハンズフリーコンテキスト、及び適当な場合には他の因子により通知されうる任意の適当な出力モダリティに従って生成することができる。出力モダリティの例としては、画面上に提示される視覚的出力、聴覚的出力（音声出力及び／又はビープ音、並びに他の音を含みうる）、触覚的出力（振動など）、並びに／又はこれらの任意の組み合わせが挙げられる。
【００８４】
図８に示される様々な要素の動作に関する更なる詳細は、その開示内容の全体を本明細書に参照により援用するところの２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」についての関連する米国実用特許出願第１２／９８７，９８２号に示されている。
【００８５】
ユーザインターフェースのハンズフリーコンテキストへの適合
本発明は、説明を目的として、例として本明細書に述べられるものである。しかしながら、実施例に示される特定の入力及び出力の機構は、あくまでユーザとアシスタント１００２との間の１つの可能なインタラクションを例示することを目的としたものに過ぎず、特許請求される発明の範囲を限定することを目的としたものではない点は当業者であれば認識されるところであろう。更に、代替的な実施形態において、本発明は、必ずしもマルチモーダルバーチャルアシスタント１００２を使用することなく機器において実施することが可能であり、むしろ、本発明の機能は、特許請求の範囲において一義的に定義される発明の本質的特徴から逸脱することなく、任意の適当な機器で動作するオペレーティングシステム又はアプリケーションにおいて直接実施することが可能である。
【００８６】
次に図１を参照すると、先行技術に従う、テキストメッセージを読むための従来のハンズオンインターフェース１６９の一例を示したスクリーンショットが示されている。図１に示されるようなグラフィカルユーザインターフェース（ＧＵＩ）は、一般的に、ユーザが、吹き出し１７１内に示されるメッセージテキストなどの詳細を読み、テキストフィールド１７２内にタイプし、送信ボタン１７３をタップすることによって返信できることが求められる。多くの機器では、このような動作では画面を見て画面に触れることが求められ、したがって、本明細書においてハンズフリーコンテキストと呼ぶ特定のコンテキストにおいてこれを行うことは実用的ではない。
【００８７】
次に図２を参照すると、テキストメッセージ１７１に返信するためのインターフェース１７０の一例を示したスクリーンショットが示されている。ユーザがテキストフィールド１７２内をタップすることに応じてバーチャルキーボード２７０が提示され、キーに対応する画面上の領域をタップすることによりテキストフィールド１７２内にテキストを入力することが可能となる。ユーザは、テキストメッセージが入力された時点で送信ボタン１７３をタップする。ユーザが話すことによってテキストを入力したい場合には、スピーチボタン２７１をタップすることで、音声入力を受け取ってこれをテキストに変換するためのボイスディクテーションインターフェースが呼び出される。したがって、ボタン２７１は、ユーザがハンズフリーコンテキストにあることを示すことができる機構を与えるものである。
【００８８】
次に図３Ａ及び３Ｂを参照すると、テキストメッセージ１７１に返信するためにボイスディクテーションインターフェースが使用されているインターフェース１７５の一例を示したスクリーンショットのシークエンスが示されている。画面３７０は、例えば、ユーザがスピーチボタン２７１をタップした後に提示される。マイクロフォンアイコン３７２は、機器が音声入力を受ける準備ができていることを示す。ユーザが音声を入力すると、音声は、マイクロフォン又はこれに類する機器でありうる音声入力装置１２１１によって受け取られる。ユーザは、音声入力を完了したことを示すために完了ボタン３７１をタップする。
【００８９】
音声入力は、任意の公知のスピーチ・トゥ・テキストアルゴリズム又はシステムを使用してテキストに変換される。スピーチ・トゥ・テキスト機能は、機器６０又はサーバー上に常駐させることができる。一実施形態では、スピーチ・トゥ・テキスト機能は、例えば、Ｍａｓｓａｃｈｕｓｅｔｔｓ州Ｂｕｒｌｉｎｇｔｏｎ所在のＮｕａｎｃｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ，Ｉｎｃ．より販売されるＮｕａｎｃｅ  Ｒｅｃｏｇｎｉｚｅｒを使用して実施される。
【００９０】
図３Ｂに示されるように、会話の結果がフィールド１７２内に示されうる。キーボード２７０が示されることで、ユーザがフィールド１７２内に生成されたテキストを編集することができる。ユーザが入力されたテキストに満足であれば、送信ボタン１７３をタップすることでテキストメッセージが送信される。
【００９１】
図２、３Ａ、及び３Ｂに関連して述べた例では、複数の操作において、ユーザがディスプレイ画面を見て、及び／又は入力に触れることが求められる。こうした操作としては以下のものが挙げられる。すなわち、
●ディスプレイ画面上のテキストメッセージ１７１を読む。
●音声入力モードに入るためにボタン２７１に触れる。
●音声入力が完了したことを示すために完了ボタン３７１に触れる。
●ユーザの音声入力から生成された変換されたテキストを見る。
●メッセージを送信するために送信ボタン１７３に触れる。
【００９２】
本発明の一実施形態では、音声入力を受け取って処理するための機構は、ユーザがハンズフリーコンテキストにある場合にディスプレイ画面とインタラクトし、及び／又はタッチインターフェースを使用する必要性が低減されるようにして機器６０に組み込まれる。したがって、本発明のシステムは、ハンズフリーコンテキストでのインタラクションのための改良されたユーザインターフェースを提供することができる。
【００９３】
次に図４及び図５Ａ〜５Ｄを参照すると、ハンズフリーコンテキストが認識された一実施形態に係る、テキストメッセージを受信してこれに返信するためのインターフェースの一例を示した一連のスクリーンショットが示されている。したがって、この例では、本発明の方法に基づいて、ユーザが画面とインタラクトする必要性は低減されている。
【００９４】
図４において、画面４７０は、機器６０がロックモードにある間に受信されたテキストメッセージ４７１を示している。ユーザは、公知の技術に係るスライダ４７２をアクティベートしてメッセージ４７１に返信するか又は他の方法でメッセージ４７１とインタラクトすることができる。しかしながら、この例では、機器６０が目に見えないか、及び／若しくは手の届かない状態である可能性があり、又は、ユーザが運転中であるか若しくは他の何らかの活動を行っている場合には機器６０とインタラクトできない可能性がある。本明細書に述べられるように、マルチモーダルバーチャルアシスタント１００２は、このようなハンズフリーコンテキストにおいてテキストメッセージ４７１を受信してこれに返信するための機能を与えるものである。
【００９５】
一実施形態では、機器６０にインストールされたバーチャルアシスタント１００２は、ハンズフリーコンテキストを自動的に検出する。このような検出は、ユーザが機器６０の画面とインタラクトすること、又はＧＵＩを適切に操作することが困難であるか若しくは不可能であるようなシナリオ又は状況を判定するための任意の手段によって行うことができる。
【００９６】
例えば、限定せずに言えば、ハンズフリーコンテキストの判定は、以下のいずれか（単独又は任意の組み合わせで）に基づいて行うことができる。すなわち、
●センサ（例えば、コンパス、加速度計、ジャイロスコープ、速度計、周辺光センサ、ＢｌｕｅＴｏｏｔｈ接続検出器、時計、ＷｉＦｉ信号検出器、マイクロフォンなど）からのデータ。
●機器６０が例えば、ＧＰＳにより特定の地理的位置にあることが決定されること。
●時計からのデータ（例えば、ハンズフリーコンテキストは、一日のうちの特定の時間、及び／又は一週間のうちの特定の曜日に有効であると指定することができる）。
●既定のパラメータ（例えば、ユーザ又はアドミニストレータは、任意の条件又は条件の組み合わせが検出された場合にハンズフリーコンテキストが有効であると指定することができる。）。
●Ｂｌｕｅｔｏｏｔｈ又は他の無線Ｉ／Ｏ機器の接続（例えば、移動中の車のＢｌｕｅＴｏｏｔｈに基づくインターフェースとの接続が検出された場合）。
●ユーザが移動中の車内にいるか又は車の運転中であることを示しうる他の任意の情報。
●ヘッドホン、ヘッドセット、アダプターケーブルにより接続された物などの取り付けられた周辺機器の有無。
●ユーザが機器６０と接触していない、又は近接していないことが決定されること。
●アシスタント１００２とのインタラクションを誘導するために使用される特定のシグナル（例えば、ユーザが機器を耳に当てるジェスチャー動作、又はＢｌｕｅｔｏｏｔｈのボタンを押すこと、又は取り付けられたオーディオ機器のボタンを押すこと）。
●連続的な単語のつながりの中の特定の単語の検出（例えば、アシスタント１００２は、コマンドを聞き取り、ユーザが名前を呼ぶか若しくは「コンピューター！」などの何らかのコマンドを言う場合に呼び出されるように構成することができる。）。特定のコマンドは、ハンズフリーコンテキストが有効であるか否かを示すことができる。
【００９７】
他の実施形態では、ユーザは、ハンズフリーコンテキストが有効であるか無効であるかをマニュアルで示すことができ、並びに／又は、ハンズフリーコンテキストが一日のうちの特定の時間及び／若しくは一週間のうちの特定の曜日に有効化及び／若しくは無効化されるようにスケジューリングすることができる。
【００９８】
一実施形態では、ハンズフリーコンテキストにある間にテキストメッセージ４７０を受信すると、マルチモーダルバーチャルアシスタント１００２が、テキストメッセージの着信を示すビープ音又はトーンなどの音声指示を機器６０に出力させる。上記に述べたように、ユーザは、公知の技術に従ってスライダ４７２をアクティベートして、メッセージ４７１に返信するか又は他の方法でメッセージ４７１とインタラクトすることができる（例えば、ハンズフリーモードが誤って検出された場合、又はユーザが車の運転を停止することを選択するか、若しくは他の方法で機器６０とユーザとのハンズオンインタラクションができるようにする場合）。また、ユーザは、アシスタント１００２と音声ダイアログを行うことによって、ハンズフリー方式でアシスタント１００２とインタラクションを行うこともできる。
【００９９】
一実施形態では、ユーザは、ハンズフリーコンテキストに適した任意の適当な機構によって音声ダイアログを開始する。例えば、ユーザがＢｌｕｅＴｏｏｔｈを装備した車を運転しており、機器６０が車と通信しているような環境では、アクセスが容易なボタン（例えば、車のハンドルに取り付けられたもの）を設けることができる。このボタンを押すことでアシスタント１００２との音声ダイアログが開始され、ユーザが、ＢｌｕｅＴｏｏｔｈ接続を介して、車内に設置されたマイクロフォン及び／又はスピーカを通じてアシスタント１００２と通信することが可能となる。また、ユーザは、機器６０自体、若しくはヘッドセット、若しくは他の任意の周辺機器に設けられたボタンを押すことによって、又はユーザが音声ダイアログを開始したいことをアシスタント１００２に伝える他の何らかの明確な動作を行うことによって音声ダイアログを開始することもできる。別の例として、ユーザは、アシスタント１００２によって理解され、音声ダイアログを開始するコマンドを発語することができる。ユーザにアシスタント１００２との音声ダイアログを容易に開始させることができる他の多くの技術を提供することができる点は当業者であれば認識されるところであろう。音声ダイアログを開始させるために使用される機構は、ユーザ側のハンド・アイ・コーディネーションを必要としないことにより、ユーザが車の運転などの主要なタスクに集中することを可能とし、及び／又は、図２、３Ａ、及び３Ｂに示されるようなＧＵＩとインタラクトする能力を妨害、阻害、規制、又は制限するようなハンディキャップを有する個人が行うことが可能なものであることが好ましい。
【０１００】
音声ダイアログがいったん開始すると、アシスタント１００２は音声入力を聞き取る。一実施形態では、アシスタント１００２は、ハンズフリーコンテキストにある間、ユーザによって容易に検出される特定の出力機構により音声入力を受け取ったことを知らせる。１つの例として、ビープ音又はトーン、及び／又は運転中であってもユーザに見えやすい、車のダッシュボード上の視覚的出力、及び／又は他の特定の機構によるものがある。音声入力は、公知の音声認識技術を使用して処理される。次いでアシスタント１００２は、音声入力により支持された動作を実行する。一実施形態では、アシスタント１００２は、スピーカ（機器６０又は車内に設置された）、ヘッドホンなどにより出力することができる音声出力を与えることにより、ユーザとの音声ダイアログを続ける。例えば、アシスタント１００２はテキストメッセージ、電子メッセージなどの内容を読み上げ、音声でユーザに選択肢を与えることができる。
【０１０１】
例えば、ユーザが「新しいメッセージを読んでください」と言うと、アシスタント１００２は機器６０に受信確認トーンを発させることができる。次いで、アシスタント１００２は「トム・デボンから新しいメッセージがあります。『やぁ、試合観に行くかい？』と言っています」などの音声出力を発することができる。音声出力は、テキストを音声に変換するための任意の公知の技術を使用してアシスタント１００２によって生成されうる。一実施形態では、テキスト・トゥ・スピーチ機能は、例えば、Ｍａｓｓａｃｈｕｓｅｔｔｓ州Ｂｕｒｌｉｎｇｔｏｎ所在のＮｕａｎｃｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，Ｉｎｃ．より販売されるＮｕａｎｃｅ  Ｖｏｃａｌｉｚｅｒを使用して実施される。
【０１０２】
次に図５Ａを参照すると、ユーザとアシスタント１００２との間の言葉のやりとりが行われている間に機器６０の画面に提示されうる出力を示したスクリーンショット５７０の一例が示されている。特定のハンズフリー状況では、例えば、機器６０の画面上の出力が車のナビゲーションシステムのディスプレイ画面上に再現されているような場合に、ユーザは画面を見ることはできるが画面に簡単に触れることができない場合がある。図５Ａ〜５Ｄに示されるような音声会話の視覚的エコーイングは、ユーザの音声入力がアシスタント１００２によって適切及び正確に理解されたことをユーザが確認する助けとなり、更にユーザがアシスタント１００２の音声応答を理解する助けとなりうる。しかしながら、このような視覚的エコーイングは必須のものではなく、本発明は、機器６０の画面上、又はその他の場所におけるいっさいの視覚的表示を行うことなく実施することができる。したがって、ユーザは、純粋に音声入力及び出力によって、又は視覚的入力及び／若しくは出力と音声入力及び／若しくは出力との組み合わせによってアシスタント１００２とインタラクトすることができる。
【０１０３】
この例では、アシスタント１００２は、プロンプト５７１を表示して発話する。ユーザ入力に応じて、アシスタント１００２はディスプレイ上及び／又は音声でユーザ入力５７２を繰り返す。次いで、アシスタントは着信テキストメッセージを導入（５７３）してこれを読み上げる。一実施形態では、テキストメッセージは画面上にも表示されうる。
【０１０４】
図５Ｂに示されるように、着信メッセージをユーザに対して読み上げた後、アシスタント１００２は次に、ユーザが「返信するか、もう一度読む」（５７４）ことができることをユーザに伝える。この場合もやはり、このような出力は一実施形態では音声で（すなわち、言葉で）与えられる。このようにして、本発明のシステムは、ユーザがテキストフィールド、ボタン、及び／又はリンクを見る必要がなく、タッチによる直接操作又は画面上のオブジェクトとのインタラクションを必要としない点でハンズフリーコンテキストによく適合した方法でユーザに利用可能な動作を知らせるものである。図５Ｂに示されるように、一実施形態では、音声出力は、画面上にエコーされる（５７４）が、このような音声出力の表示は必須ではない。一実施形態では、画面上に表示されたエコーメッセージは周知の機構に従って自動的に上方にスクロールする。
【０１０５】
この例では、ユーザは「『いいよ、６時にいくね』と返信」と言う。図５Ｂに示されるように、一実施形態では、ユーザの音声入力がエコーされる（５７５）ことによって、ユーザはそれが正しく理解されたことを確認することができる。更に、一実施形態では、アシスタント１００２がユーザの音声入力を聴覚的な形態で繰り返すことにより、ユーザは画面を見ることができない場合であってもユーザのコマンドが理解されたことを確認することができる。したがって、本発明のシステムは、いずれもハンズフリーコンテキストで、ユーザがその時点での操作環境では不可能又は不適当な方法で画面を見るか又は機器６０とインタラクトする必要なくして、ユーザが返信コマンドを開始し、返信を作成し、コマンド及び作成した返信が正しく理解されたことを確認することができる機構を提供するものである。
【０１０６】
一実施形態では、アシスタント１００２は、ユーザの作成したテキストメッセージを読み返すことによってメッセージを更に確認することを可能とする。この例では、アシスタント１００２は、音声で、「トム・デボンへのあなたの返信です。『いいよ、６時にいくね』」と言う。一実施形態では、クォーテーションマークの意味は、声及び／又は韻律の変化によって伝えられる。例えば、「トム・デボンへのあなたの返信です」という文を、１つの声、例えば、男性の声などで発話させ、「いいよ、６時にいくね」などの文は、別の声、例えば、女性の声で発話させることができる。また、同じ声であるが異なる韻律を使用してクォーテーションマークを伝えることもできる。
【０１０７】
一実施形態では、アシスタント１００２は、図５Ｂ及び５Ｃに示されるような言葉のやりとりの視覚的エコーイングを与える。図５Ｂ及び５Ｃは、「トム・デボンへのあなたの返信です」のアシスタント１００２による音声出力をエコーしたメッセージ５７６を示している。図５Ｃは、メッセージの受け手及び内容を含む、作成されつつあるテキストメッセージのサマリ５７７を示している。図５Ｃでは、先のメッセージはスクリーンの上側にスクロールアウトされているが、公知の機構に従って下方にスクロールさせることにより見ることができる。送信ボタン５７８はメッセージを送信し、取り消しボタン５７９はメッセージを取り消しする。一実施形態では、ユーザは、「送信」又は「取り消し」などのキーワードを発話することにより、メッセージを送信するか又は取り消しすることもできる。また、アシスタント１００２は、「送信の準備はできましたか？」などの音声プロンプトを生成することもできる。この場合もやはり、音声プロンプトが出力される間にボタン５７８、５７９を含むディスプレイ５７０が示されてもよい。次いで、ユーザは、ボタン５７８、５７９に触れることにより、又は音声プロンプトに答えることにより、ユーザがしたいことを指示する。プロンプトは、「はい」又は「いいえ」の応答を可能とするフォーマットで示されてよく、このためユーザは意図を知らせるために特別な語彙を使用する必要がない。
【０１０８】
一実施形態では、アシスタント１００２は、例えば、「了解しました。メッセージを送信します」などの音声出力を生成することによりユーザの音声コマンドを確認してメッセージを送信することができる。図５Ｄに示されるように、この音声出力は、送信されるテキストメッセージのサマリ５８１とともに画面５７０上でエコーされてもよい（５８０）。
【０１０９】
上記に述べた音声交換は、任意に用いられる視覚的エコーイングとともに、アシスタント１００２がマルチモーダルインターフェースで重複した出力を与える一例を示すものである。このようにして、アシスタント１００２は、アイズフリー、ハンズフリー、及び完全なハンズオンを含む幅広いコンテキストをサポートすることができる。
【０１１０】
この例は、表示される出力と音声出力とが互いに異なることでそれらの異なるコンテキストを反映する機構も示している。この例は、返信するための代替的な機構が利用可能とされる方法も示している。例えば、アシスタントが「送信の準備はできましたか？」と発話し、図５Ｃに示されるスクリーン５７０を表示した後で、ユーザは「送信」又は「はい」と言うか、又は画面上の送信ボタン５７８をタップすることができる。これらの動作はいずれもアシスタント１００２により同じ意味に解釈されてテキストメッセージが送信されることになる。したがって、本発明のシステムは、ユーザとアシスタント１００２とのインタラクションに関し高い柔軟度を与えるものである。
【０１１１】
次に図６Ａ〜６Ｃを参照すると、ユーザが、例えば、間違いを直すか又は更に内容を追加するためにハンズフリーコンテキストでテキストメッセージ５７７の修正をする、本発明の一実施形態に係るマルチモーダルバーチャルアシスタント１００２の操作の一例を示した一連のスクリーンショットが示されている。図３Ａ及び３Ｂに関連して上記に述べたような直接的操作が行われる視覚的インターフェースでは、ユーザはバーチャルキーボード２７０上にタイピングすることでテキストフィールド１７２の内容を編集することによってテキストメッセージ５７７を修正することができる。このような操作はハンズフリーコンテキストでは行えない可能性があるため、マルチモーダルバーチャルアシスタント１００２は、このようなテキストメッセージ５７７の編集を会話インターフェースにおいて音声入力及び出力によって行うことができる機構を提供する。
【０１１２】
一実施形態では、テキストメッセージ５７７が作成された（例えば、ユーザの音声入力に基づき）時点で、マルチモーダルバーチャルアシスタント１００２は、メッセージの送信の準備ができたことをユーザに知らせ、ユーザにメッセージを送信するか否かを尋ねる音声出力を生成する。ユーザが、言葉による、又は直接操作による入力によってメッセージを送信する準備ができていないことを示した場合、マルチモーダルバーチャルアシスタント１００２は、ユーザに、メッセージの送信、取り消し、修正、又は変更などの利用可能な選択肢を知らせるための音声出力を生成する。例えば、アシスタント１００２は、「了解。まだ送信しません。続けるには、メッセージを送信、取り消し、修正、又は変更することができます」と発話することができる。
【０１１３】
図６Ａに示されるように、一実施形態では、マルチモーダルバーチャルアシスタント１００２は、メッセージ７７０を表示することによって音声出力をエコーし、テキストメッセージ５７７に関して利用可能な選択肢をユーザに視覚的に知らせる。一実施形態では、ユーザがフィールド７７３内をタップすることによりメッセージ５７７を編集することができることを示すため、テキストメッセージ５７７がそれぞれテキストメッセージ５７７を送信又は取り消しするためのボタン５７８、５７９とともに編集フィールド７７３内に表示される。一実施形態では、編集フィールド７７３内をタップすることでバーチャルキーボードが呼び出され（図３Ｂに示されるものと同様の）、直接的操作による編集が可能となる。
【０１１４】
ユーザは、音声入力を与えることによりアシスタント１００２とインタラクトすることもできる。例えば、テキストメッセージ５７７とインタラクトするための選択肢を与えるアシスタント１００２の音声メッセージに応じて、ユーザは、「変更する」と言うことができる。アシスタント１００２は、この音声テキストを認識し、ユーザに修正されたメッセージを発話することを促す音声メッセージにより応答する。例えば、アシスタント１００２は「了解．．。どんなメッセージにしますか？」と発話し、次いでユーザの応答の聞き取りを開始する。図６Ｂは、このような音声プロンプトと関連して示されうる画面５７０の一例を示している。この場合もやはり、ユーザの音声テキストはアシスタント１００２のプロンプト７７２とともに視覚的にエコーされる（７７１）。
【０１１５】
一実施形態では、ユーザがこのように促された時点で、ユーザのこれに続く音声入力の正確な内容がテキストメッセージの内容として解釈され、ユーザコマンドの通常の自然言語解釈はバイパスされる。ユーザの音声入力は、入力に充分な長さの途切れが検出されるか、又は入力が完了したことを示す特定の単語が検出されるか、又はユーザがテキストメッセージを言い終わったことを示すためにユーザがボタンを押したか若しくは他の何らかのコマンドをアクティベートしたことが検出された場合に完了したものと仮定される。一実施形態では、アシスタント１００２は、入力されたテキストメッセージを音声で繰り返し、必要に応じて図６Ｃに示されるようにこれをエコーすることができる。アシスタント１００２は、「送信の準備はできましたか？」などの音声プロンプトを与え、これもやはり、図６Ｃに示されるように画面上にエコーさせる（７７０）ことができる。次いでユーザは、いずれもアシスタント１００２によって正しく解釈される「取り消し」、「送信」、「はい」、又は「いいえ」と発語することにより応答することができる。また、ユーザは画面上のボタン５７８又は５７９を押すことにより所望の動作を引き起こすこともできる。
【０１１６】
このようにしてテキストメッセージ５７７を変更するための機構を与えることにより、本発明のシステムは一実施形態において、ユーザがそれぞれのステージでインタラクションのモードを自由に選択することができるようにハンズオンアプローチと統合される、ハンズフリーコンテキストに適したフロー経路を与えるものである。更に一実施形態では、アシスタント１００２は、その自然言語処理機構を全体のフローの中の特定のステップに適合させる。例えば、上記に述べたように、特定の状況では、アシスタント１００２は、ユーザがテキストメッセージを発話するように促された場合にユーザコマンドの通常の自然言語解釈をバイパスするモードに入ることができる。
【０１１７】
方法
一実施形態では、マルチモーダルバーチャルアシスタント１００２は、ハンズフリーコンテキストを検出し、その動作の１つ以上のステージを、ハンズフリー動作におけるユーザエクスペリエンスを変更するように適合する。上記に述べたように、ハンズフリーコンテキストの検出を、マルチモーダルバーチャルアシスタント１００２の動作に影響するように様々な方法で適用することができる。図７を参照すると、一実施形態に係るハンズフリーコンテキストの動的検出及びハンズフリーコンテキストに対する適合をサポートするバーチャルアシスタント１００２の動作の方法１０を示したフロー図が示されている。方法１０は、マルチモーダルバーチャルアシスタント１００２の１つ以上の実施形態と関連して実施することができる。図７に示されるように、ハンズフリーコンテキストは、一実施形態に係る、マルチモーダルバーチャルアシスタント１００２における処理の様々なステージにおいて用いることができる。
【０１１８】
少なくとも１つの実施形態において、方法１０は、例えば、以下のうちの１つ以上（又はそれらの組み合わせ）などの様々な種類の機能、操作、動作、及び／又は他の特徴を実行及び／又は実施するように動作可能であってもよい。すなわち、
●ユーザとマルチモーダルバーチャルアシスタント１００２との間の会話インターフェースのインターフェース制御フローループを実行する。方法１０の少なくとも１回の繰り返しは、会話における傾向として機能しうる。会話インターフェースは、ユーザとアシスタント１００２とが、会話様式で発話を交換することにより通信するインターフェースである。
●マルチモーダルバーチャルアシスタント１００２の実行制御フローを与える。すなわち、この手順は、入力の収集、入力の処理、出力の生成、及びユーザへの出力の提示を制御する。
●マルチモーダルバーチャルアシスタント１００２の要素間の通信を協調する。すなわち、この手順は、１つの要素の出力が別の要素に供給される位置、及び環境からの全体の入力及び環境に対する動作が行われる位置を指示する。
【０１１９】
少なくともいくつかの実施形態において、方法１０の一部を、コンピュータネットワークの他の機器及び／又はシステムにおいて実施することができる。
【０１２０】
特定の実施形態に係る、方法１０の複数のインスタンス又はスレッドを、１つ以上のプロセッサ６３、並びに／又はハードウェア及び／若しくはハードウェアとソフトウェアとの他の組み合わせの使用により同時に実施及び／又は開始することができる。少なくとも１つの実施形態において、方法１０の１つ以上の部分又は選択された部分を、１つ以上のクライアント１３０４、１つ以上のサーバー１３４０、及び／又はそれらの組み合わせにおいて実施することができる。
【０１２１】
例えば、少なくともいくつかの実施形態において、方法１０の様々な態様、特徴及び／又は機能を、ソフトウェア要素、ネットワークサービス、データベースなど、又はこれらの任意の組み合わせにより実行、実施及び／又は開始することができる。
【０１２２】
異なる実施形態に係る、方法１０の１つ以上の異なるスレッド又はインスタンスを、方法１０の少なくとも１つのインスタンスの開始をトリガする１つ以上の異なる種類の基準（例えば、最小閾値基準など）を満たす１つ以上の条件又はイベントの検出に応じて開始することができる。方法１０の１つ以上の異なるスレッド又はインスタンスの開始及び／又は実施をトリガする様々な種類の条件又はイベントの例としては、それらに限定されるものではないが、以下のうちの１つ以上（又はそれらの組み合わせ）を挙げることができる。すなわち、
●例えば、それらに限定されるものではないが、以下のうちの１つ以上を含むマルチモーダルバーチャルアシスタント１００２のインスタンスとのユーザセッション、すなわち、
○例えば、マルチモーダルバーチャルアシスタント１００２の一実施形態を実施しているモバイル機器アプリケーションを起動するモバイル機器アプリケーション、
○例えば、マルチモーダルバーチャルアシスタント１００２の一実施形態を実施しているアプリケーションを起動するコンピュータアプリケーション、
○「音声入力ボタン」などの押されたモバイル機器上の専用ボタン、
○ヘッドセット、電話の送受話器若しくは基地局、ＧＰＳナビゲーションシステム、家電製品、リモートコントロール、又は呼び出し支援と関連付けられたボタンを有する他の任意の機器などの、コンピュータ又はモバイル機器に取り付けされた周辺機器のボタン、
○ウェブブラウザからマルチモーダルバーチャルアシスタント１００２を実施しているウェブサイトに対して開始されたウェブセッション、
○例えば、マルチモーダルバーチャルアシスタント１００２のサービスが要求されるマルチモーダルバーチャルアシスタント１００２を実施しているウェブサイトに対する既存のウェブブラウザセッション内から開始された対話、
○マルチモーダルバーチャルアシスタント１００２の一実施形態との通信を仲介しているモダリティサーバー１４２６に送信された電子メールメッセージ、
○マルチモーダルバーチャルアシスタント１００２の一実施形態との通信を仲介しているモダリティサーバー１４２６に送信されたテキストメールメッセージ、
○マルチモーダルバーチャルアシスタント１００２の一実施形態との通信を仲介しているモダリティサーバー１４３４に対してかけられた電話、
○マルチモーダルバーチャルアシスタント１００２の一実施形態を与えているアプリケーションに送信されたアラート又は通知などのイベント、
●マルチモーダルバーチャルアシスタント１００２を与える機器の電源が入れられるか、及び／又は起動される場合。
【０１２３】
異なる実施形態に係る、方法１０の１つ以上の異なるスレッド又はインスタンスを、手動で、自動で、静的に、動的に、同時に、及び／若しくはそれらの組み合わせによって開始並びに／又は実施することができる。更に、方法１０の異なるインスタンス及び／又は実施形態を、１つ以上の異なる時間間隔で（例えば、特定の時間間隔の間に、規則的な間隔で、不規則な間隔で、要求に応じて、など）開始することができる。
【０１２４】
少なくとも１つの実施形態において、方法１０の所与のインスタンスは、本明細書に述べられるハンズフリーコンテキストの検出を含む特定のタスク及び／又は動作を実行する際に様々な異なる種類のデータ及び／又は他の種類の情報を利用及び／又は生成することができる。データには他の任意の種類の入力データ／情報、及び／又は出力データ／情報も含まれうる。例えば、少なくとも１つの実施形態において、方法１０の少なくとも１つのインスタンスは、例えば、１つ以上のデータベースなどの１つ以上の異なる種類のソースからの情報にアクセスし、これを処理、及び／又は他の方法で利用することができる。少なくとも１つの実施形態において、データベース情報の少なくとも一部は、１つ以上のローカル及び／又はリモートメモリ機器との通信を介してアクセスすることができる。更に、方法１０の少なくとも１つのインスタンスは、例えば、ローカルメモリ及び／又はリモートメモリ機器に記憶することが可能な１つ以上の異なる種類の出力データ／情報を生成することができる。
【０１２５】
少なくとも１つの実施形態において、方法１０の所与のインスタンスの初期構成は、１つ以上の異なる種類の初期化パラメータを使用して実行することができる。少なくとも１つの実施形態において、初期化パラメータの少なくとも一部は、１つ以上のローカル及び／又はリモートメモリ機器との通信を介してアクセスすることができる。少なくとも１つの実施形態において、方法１０のインスタンスに与えられる初期化パラメータの少なくとも一部は、入力データ／情報に対応したものでもよく、及び／又は入力データ／情報から導出されたものでもよい。
【０１２６】
図７の特定の例では、単一のユーザが、音声入力機能を有するクライアントアプリケーションからネットワークを介してマルチモーダルバーチャルアシスタント１００２のインスタンスにアクセスしていると仮定する。一実施形態では、アシスタント１００２は、モバイルコンピューティング機器、携帯情報端末、モバイル電話、スマートフォン、ラップトップ、タブレットコンピュータ、家庭用電子機器、音楽プレーヤ他などの機器６０にインストールされる。アシスタント１００２は、ユーザが、音声入力及び出力、並びに直接的操作及び／又はグラフィカルユーザインターフェースの表示（例えば、タッチスクリーンを介して）を介してアシスタント１００２とインタラクトすることを可能とするユーザインターフェースに関連して動作する。
【０１２７】
機器６０は、機器６０がハンズフリーコンテキストにあるか否かを検出する（２０）ために分析することが可能な現在の状態１１を有している。ハンズフリーコンテキストは、自動であるか手動であるかを問わず、任意の適用可能な検出機構又は機構の組み合わせを使用し、状態１１に基づいて検出することができる（２０）。その例は上記に示した。
【０１２８】
その開示内容の全体を参照により本明細書に援用するところの２０１１年９月３０日出願の発明の名称が「Ｕｓｉｎｇ  Ｃｏｎｔｅｘｔ  Ｉｎｆｏｒｍａｔｉｏｎ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｆ  Ｃｏｍｍａｎｄｓ  ｉｎ  ａ  Ｖｉｒｔｕａｌ  Ａｓｓｉｓｔａｎｔ」である関連する米国実用特許出願第１３／２５０，８５４号に述べられるように、ハンズフリーコンテキストが検出（２０）された場合、その情報は、アシスタントの様々なプロセスを通知するために使用することが可能な他のコンテキスト情報１０００に追加される。
【０１２９】
音声入力が誘導され、解釈される（１００）。誘導には、任意の適当なモードでプロンプトを提示することが含まれうる。これにより、様々な実施形態においてハンズフリーコンテキストが検出されたか否かに応じて、アシスタント１００２が複数の入力のモードのうちの１つ以上を与えることができる。入力のモードには例えば、以下のものが含まれうる。すなわち、
●能動的タイプ入力誘導手順を呼び出すことが可能な、タイプ入力用インターフェース、
●能動的音声入力誘導手順を呼び出すことが可能な、音声入力用インターフェース、
●能動的ＧＵＩ入力誘導を呼び出すことが可能な、メニューから入力を選択するためのインターフェース。
【０１３０】
例えば、ハンズフリーコンテキストが検出された場合、トーン又は他の聴覚的なプロンプトによって音声入力を誘導し、ユーザの発語をテキストとして解釈することができる。しかしながら、他の入力モードも提供されうる点は当業者であれば認識されるところであろう。
【０１３１】
ステップ１００の出力は、入力音声のテキストの候補解釈のセットでありうる。この候補解釈のセットは、テキスト入力を構文解析してユーザ意図の可能な意味上の解釈のセットを生成する言語インタプリタ２７７０（自然言語プロセッサ、すなわちＮＬＰとも呼ばれる）によって処理（２００）される。
【０１３２】
ステップ３００において、これらのユーザ意図の表現が、ユーザ意図をタスクのステップとして操作化するためのダイアログ及びフロー解析手順の一実施形態を実施するダイアログフロープロセッサ２７８０にわたされる。ダイアログフロープロセッサ２７８０は、最も可能性の高い意図の解釈を決定し、この解釈をドメインモデルのインスタンス及びタスクモデルのパラメータにマッピングし、タスクフローにおける次のフローステップを決定する。適当であれば、ハンズフリー動作に適合された１つ以上のタスクフローステップが選択される（３１０）。例えば、上記に述べたように、テキストメッセージを改変するためのタスクフローステップは、ハンズフリーコンテキストが検出された場合には異なりうる。
【０１３３】
ステップ４００において、特定されたフローステップが実行される。一実施形態では、フローステップの呼び出しがサービスオーケストレーション要素２７８２によって実行され、これによりユーザの要求のためのサービスのセットが呼び出される。一実施形態では、これらのサービスは一般的な結果にいくつかのデータを与える。
【０１３４】
ステップ５００において、ダイアログ応答が生成される。一実施形態では、ダイアログ応答の生成５００は、ハンズフリーコンテキストの状態によって影響される。したがってハンズフリーコンテキストが検出された場合、異なる、及び／又は更なるダイアログユニットが音声チャンネルを使用して提示用に選択されうる（５１０）。例えば、「送信の準備はできましたか？」などの更なるプロンプトが言葉で発語されうるが、画面上には必ずしも表示されずともよい。一実施形態では、ハンズフリーコンテキストの検出は、例えば、入力を確認するための更なる入力５２０を促すことに影響を及ぼしうる。
【０１３５】
ステップ７００では、マルチモーダル出力（一実施形態では音声及び視覚的内容を含む）がユーザに提示され、次いでユーザは必要に応じて音声入力を使用して再び応答することができる。
【０１３６】
応答を見た、及び／又は聞いた後でユーザのすることが済んだ（７９０）場合、方法は終了する。ユーザのすることが済んでいない場合、ステップ１００に戻ることによりループの繰り返しがもう一回開始される。
【０１３７】
本明細書に述べられるように、検出されたハンズフリーコンテキストを含むコンテキスト情報１０００は、方法１０の様々なステップに影響を与えるためにシステムの様々な要素によって使用されうる。例えば、図７に示されるように、ハンズフリーコンテキストを含むコンテキスト１０００は、ステップ１００、２００、３００、３１０、５００、５１０、及び／又は５２０において使用されうる。しかしながら、ハンズフリーコンテキストを含むコンテキスト情報１０００に使用は、これらの特定のステップに限定されるものではなく、本明細書の本質的な特徴から逸脱することなくシステムはコンテキスト情報を他の時点で使用することもできる点は当業者であれば認識されるところであろう。アシスタント１００２の動作の様々なステップにおけるコンテキスト１０００の使用の更なる説明が、それらの開示内容の全体を参照により本明細書に援用するところの２０１１年９月３０日出願の発明の名称が「Ｕｓｉｎｇ  Ｃｏｎｔｅｘｔ  Ｉｎｆｏｒｍａｔｉｏｎ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｆ  Ｃｏｍｍａｎｄｓ  ｉｎ  ａ  Ｖｉｒｔｕａｌ  Ａｓｓｉｓｔａｎｔ」である関連する米国実用特許出願第１３／２５０，８５４号、及び２００９年６月５日出願の「コンテキスト音声コマンド」に対する関連する米国実用特許出願第１２／４７９，４７７号に示されている。
【０１３８】
更に、方法１０の異なる実施形態は、図７に示される特定の実施形態に示されるもの以外の更なる特徴及び／又は動作を含みうるものであり、並びに／又は図７の特定の実施形態に示される方法１０の特徴及び／若しくは動作の少なくとも一部を省略しうる点は当業者であれば認識されるところであろう。
【０１３９】
ステップ１００、２００、３００、３１０、５００、５１０、及び／又は５２０のハンズフリーコンテキストへの適合について、以下により詳細に述べる。
【０１４０】
入力誘導及び解釈１００のハンズフリーコンテキストへの適合
音声入力の誘導及び解釈１００は、複数の方法のいずれか（単独又は任意の組み合わせで）によりハンズフリーコンテキストに適合させることができる。上記に述べたように、一実施形態では、ハンズフリーコンテキストが検出された場合、トーン及び／又は他の聴覚的プロンプトにより音声入力を誘導することができ、ユーザの発話がテキストとして解釈される。一般的に、マルチモーダルバーチャルアシスタント１００２は、音声入力用の複数の可能な機構（例えば、Ｂｌｕｅｔｏｏｔｈ接続されたマイクロフォン、又は他の取り付けられた周辺機器など）、及びアシスタント１００２を呼び出すための複数の可能な機構（例えば、周辺機器のボタンを押すこと、又は機器６０の近くでジェスチャー動作を用いることなど）を与えることができる。アシスタント１００２がどのように呼び出され、及び／又は音声入力にどの機構が使用されているかについての情報を使用して、ハンズフリーコンテキストが有効であるか否か、及びハンズフリーエクスペリエンスを変更するためにハンズフリーコンテキストを使用することができるか否かを示すことができる。より詳細には、このような情報を使用することで、ステップ１００において入力及び出力に特定の音声経路が用いられるようにすることができる。
【０１４１】
更に、ハンズフリーコンテキストが検出された場合には、音声入力装置の使われ方を変えることができる。例えば、ハンズオンモードでは、インターフェースは、アシスタント１００２に音声入力の聞き取りを開始させるうえでユーザがボタンを押すか又は物理的ジェスチャーを行うことを必要とする場合がある。これに対してハンズフリーモードでは、インターフェースは、アシスタント１００２による毎回の出力の後に継続的に入力を促すか、又は双方向に継続的な発話を可能とする（アシスタント１００２がまだ話している間にアシスタント１００２にユーザが割り込むことができる）。
【０１４２】
自然言語処理２００のハンズフリーコンテキストへの適合
自然言語処理（ＮＬＰ）２００は、例えば、ハンズフリー動作に特に適した特定の音声応答にサポートを追加することによって、ハンズフリーコンテキストに適合させることができる。このような応答としては、例えば、「はい」、「メッセージを読む」、及び「変更する」などが挙げられる。一実施形態では、このような応答に対するサポートを、ハンズオン状況において使用可能な音声コマンドに対するサポートに加えて与えることができる。したがって、例えば、一実施形態では、ユーザは、画面に現れるコマンドを発話することによりグラフィカルユーザインターフェースを操作することができる（例えば、「送信」と表示されたボタンが画面に現れた場合、「送信する」という発話及びその意味上の等価表現を理解するためにサポートを与えることができる）。ハンズフリーコンテキストでは、ユーザが画面を見ることができない可能性があることを解決するために更なるコマンドが認識されうる。
【０１４３】
ハンズフリーコンテキストの検出は、アシスタント１００２による単語の解釈も変化させうる。例えば、ハンズフリーコンテキストでは、アシスタント１００２を「静かに！」というコマンド及びその意味上の変形を認識し、このようなコメントに応じてすべての音声出力を停止するように調整することができる。非ハンズフリーコンテキストでは、このようなコマンドは関連性がないものとして無視されうる。
【０１４４】
タスクフロー３００のハンズフリーコンテキストへの適合
ステップ３００は、ユーザ意図に関連付けられたタスク、そのタスクのパラメータ、及び／又は実行すべきタスクフローステップ３００を特定することを含み、複数の方法のいずれか（単独又は任意の組み合わせで）によりハンズフリーコンテキストに適合させることができる。
【０１４５】
一実施形態では、ハンズフリー動作に適合された１つ以上の更なるタスクフローステップが動作のために選択される（３１０）。例としては、内容を音声によって修正及び確認するステップが挙げられる。更に、ハンズフリーコンテキストでは、アシスタント１００２は、ハンズフリーコンテキストになければディスプレイ画面に提示される結果のリストを読み上げることができる。音声コマンドを、リストの個々のアイテムとインタラクトするために与えることができる。例えば、複数の着信テキストメッセージがユーザに提示される場合で、ハンズフリーコンテキストが検出された場合では、特定されるタスクフローステップには、各テキストメッセージを個々に読み上げること、及びユーザが音声コマンドを与えることができるように各メッセージの後にポーズすることが含まれる。
【０１４６】
一実施形態では、タスクフローはハンズフリーコンテキスト用に改変することができる。例えば、メモアプリケーションにおいてメモを取るためのタスクフローは、通常、内容について促し、これを直ちにメモに追加することを含みうる。このような動作は、内容が直ちに視覚的インターフェースに示され、直ぐに直接的操作による改変を行うことができるようなハンズオン環境では適当でありうる。しかしながら、ハンズフリーコンテキストが検出された場合、タスクフローは、例えば、内容を音声で修正し、内容がメモに追加される前に内容を改変することができるように改変することができる。これにより、ユーザが音声ディクテーションの間違いを永続的な文書に保存される前に見つけることができる。
【０１４７】
一実施形態では、ハンズフリーコンテキストを、所与の時間において可能なタスクを限定するために用いることもできる。例えば、ユーザの機器がハンズフリーコンテキスト、又は車の運転中などの特定のハンズフリーコンテキストにある場合にビデオの再生ができないようなポリシーを実施することができる。
【０１４８】
一実施形態では、アシスタント１００２は、ハンズフリーコンテキストにおいてのみ適用可能な会話及び／又はタスクのドメイン全体を利用可能とすることができる。例としては、視力が制限されているか又は手の使用が制限されている人用に設計されたものなどのアクセシビリティーモードが挙げられる。これらのアクセシビリティーモードには、例えば、「ボタンを押す」又は「スクロールアップ」などのコマンドを認識するため、所与のアプリケーションプラットフォーム上で任意のＧＵＩを動作させるためのハンズフリー代替手段として実施されるコマンドが挙げられる。ハンズフリーモードにおいてのみ適用可能とすることができる他のタスクとしては、「車のブルートゥースキットを使う」又は「［テキスト・トゥ・スピーチ出力］遅くする」などのハンズフリーエクスペリエンス自体に関連したタスクが挙げられる。
【０１４９】
ダイアログ生成５００のハンズフリーコンテキストへの適合
様々な実施形態において、多くの技術の任意のものを、ハンズフリーコンテキストに適合するようにダイアログ生成５００を改変するために使用することができる。
【０１５０】
ハンズオンインターフェースでは、アシスタント１００２のユーザ入力の解釈を書かれたものとしてエコーさせることができるが、このようなフィードバックは、ハンズフリーコンテキストにある場合にはユーザに見えない場合がある。このため、一実施形態では、ハンズフリーコンテキストが検出された場合、アシスタント１００２は、テキスト・トゥ・スピーチ（ＴＴＳ）技術を利用してユーザの入力を言い換える。このような言い換えは選択的であってもよく、例えば、テキストメッセージを送信する前に、アシスタント１００２は、ユーザがディスプレイ画面を見ることができない場合にもテキストメッセージの内容を確認することができるようにテキストメッセージを発語することができる。
【０１５１】
ユーザの発語をいつ言い換えるか、発語のどの部分を言い換えるかに関する決定は、タスク限定的及び／又はフロー限定的ダイアログによって駆動することができる。例えば、「新しいメッセージを読む」などのユーザの音声コマンドに応じて、一実施形態では、アシスタント１００２の応答（メッセージを読み上げている）より、コマンドが理解されたことが明らかであるため、アシスタント１００２はコマンドの言い換えをしない。しかしながら、ユーザの入力がステップ１００において認識されないか又はステップ２００において理解されない場合などの他の状況では、アシスタント１００２はユーザになぜ入力が理解されなかったかを知らせるためにユーザの音声入力の言い換えを行うことができる。例えば、アシスタント１００２は、「『reel my newt massage』がわかりません。もう一度お願いします」と言うことができる。
【０１５２】
一実施形態では、情報の音声による言い換えでは、ダイアログテンプレートを機器上の個人データと組み合わせることができる。例えば、テキストメッセージを読み上げる場合、一実施形態では、アシスタント１００２は音声出力テンプレートを、「＄（人名）からの新しいメッセージがあります。＄（メッセージ）と言っています」のフォームの変数と共に使用する。テンプレート内の変数をユーザデータで置き換えてから機器６０上で動作するプロセスにより発語に変換することができる。本発明がクライアント／サーバー環境で実施されるような一実施形態では、このような技術は、個人データは機器６０上に残り、サーバーから出力テンプレートを受信する際に埋めることができることから、出力のパーソナライゼーションを可能とする一方でユーザのプライバシーを保護する助けとなりうる。
【０１５３】
一実施形態では、ハンズフリーが検出された場合、ハンズフリーコンテキストに具体的に適合された、異なる及び／又は更なるダイアログユニットを、音声チャンネルを使用して提示するために選択することができる（５１０）。どのダイアログユニットを選択するかを決定するためのコード又は規則は、ハンズフリーコンテキストの詳細によって影響されうる。このようにして、一般的なダイアログ生成要素を、異なるハンズフリー状況に対して別々のユーザエクスペリエンスを必ずしも構築することなく、様々なハンズフリーバリエーションをサポートするように適合及び拡張することができる。
【０１５４】
一実施形態では、テキスト及びＧＵＩ出力ユニットを生成する同じ機構を、音声（発語）出力モダリティに適合されたテキストによりアノテーションをつけることができる。例えば、
●一実施形態では、ダイアログ生成要素は、ＴＴＳを使用して、書かれたダイアログ応答のすべてを読み上げることによりハンズフリーコンテキストに適合させることができる。
●一実施形態では、ダイアログ生成要素は、書かれたダイアログ応答の一部を、ＴＴＳ上で逐語的に読み上げ、他のダイアログ応答ではＴＴＳの変形を使用することにより、ハンズフリーコンテキストに適合させることができる。
●一実施形態では、このようなアノテーションは、ユーザデータをダイアログ生成から分離する可変置換テンプレート機構に対応する。
●一実施形態では、グラフィカルユーザインターフェース要素に、それらがＴＴＳ上でどのように音声で言い換えられるべきかを示したテキストによってアノテーションをつけることができる。
●一実施形態では、ＴＴＳテキストは、音声でなければ句読法又は視覚的レンダリングで伝えられるものを音声で伝えるために声、話す速さ、ピッチ、途切れ、及び／又は他のパラメータが使用されるように調整することができる。例えば、ユーザの言葉を繰り返す場合に使用される声は、他のダイアログユニットで使用されるものとは異なる声としてもよく、又は異なる韻律を使用してもよい。別の例として、声及び／又は韻律は、内容又は命令が発語されているか否かに応じて異なりうる。別の例として、理解を助けるために異なる意味を有するテキストの部分間にポーズを挿入することもできる。例えば、メッセージの言い換えを行い、確認を求める場合、「あなたのメッセージは．．．です」という内容のパラフレーズと、「送信の準備はできましたか？」という確認のプロンプトとの間にポーズを挿入することができる。
【０１５５】
一実施形態では、非ハンズフリーコンテキストを、ハンズフリーコンテキストについて上記に述べたようなＴＴＳを使用する同様の機構を使用して拡張することができる。例えば、ダイアログは、書かれたテキスト及びＧＵＩ要素以外に音声のみのプロンプトを生成することができる。例えば、特定の状況では、アシスタント１００２は、音声で「送信しますか？」と発語することにより、画面上の送信ボタンの表示を補助することができる。一実施形態では、ハンズフリー及び非ハンズフリーコンテキストで使用されるＴＴＳ出力は、それぞれの場合に適合させることができる。例えば、アシスタント１００２は、ハンズフリーコンテキストにある場合により長いポーズを用いることができる。
【０１５６】
一実施形態では、ハンズフリーコンテキストの検出は、ユーザに応答を自動的に促すか否か、及びいつ促すかを決定するために使用することもできる。例えば、アシスタント１００２とユーザとの間のインタラクションが自然に同期しており、一方が発話している間、他方が聞いているような場合、アシスタント１００２が話した後でユーザからの音声入力の聞き取りをアシスタント１００２が自動的に開始するべきか否か、及びいつ開始するべきかについて設計の選択を行うことができる。ハンズフリーコンテキストの詳細を使用して、このようなダイアログの自動開始聞き取り特性に関する様々なポリシーを実施することができる。例としては、これらに限定されるものではないが、以下が挙げられる。すなわち、
●常に自動開始聞き取りを行う。
●ハンズフリーコンテキストにある場合にのみ自動開始聞き取りを行う。
●特定のタスクフローステップ及びダイアログ状態においてのみ自動開始聞き取りを行う。
●ハンズフリーコンテキストにおいて特定のタスクフローステップ及びダイアログ状態においてのみ自動開始聞き取りを行う。
【０１５７】
他の実施形態では、ハンズフリーコンテキストの検出は、例えば、以下のようなダイアログの他のパラメータに関する選択にも影響を及ぼしうる。すなわち、
●ユーザに与える選択肢のリストの長さ、
●リストを読み上げるべきか否か、
●単一又は複数の答えのある質問を尋ねるべきか否か、
●直接的操作のインターフェースを使用してのみ与えることのできるデータを促すべきか否か。
【０１５８】
したがって、様々な実施形態において、ハンズフリーコンテキストは、検出された場合、マルチモーダルバーチャルアシスタント１００２などの複雑なシステムの様々な処理ステップを適合させるために使用することが可能なシステム側のパラメータである。本明細書に述べられる様々な方法は、同じ基礎となるシステムからの幅広いユーザエクスペリエンスをサポートするように、ハンズフリーコンテキストにおけるアシスタント１００２の一般的な手順を適合させるための方法を与えるものである。
【０１５９】
コンテキストを収集、通信、表現し、これにアクセスするための様々な機構について、その開示内容の全体を参照により本明細書に援用するところの２０１１年９月３０日出願の発明の名称が「Ｕｓｉｎｇ  Ｃｏｎｔｅｘｔ  ｉｎｆｏｒｍａｔｉｏｎ  ｔｏ  Ｆａｃｉｌｉｔａｔｅ  Ｐｒｏｃｅｓｓｉｎｇ  ｏｆ  Ｃｏｍｍａｎｄｓ  ｉｎ  ａ  ｖｉｒｔｕａｌ  ａｓｉｓｔａｎｔ」である関連する米国実用特許出願第１３／２５０，８５４号に述べられている。こうした技術はハンズフリーコンテキストにも同様に適用可能である点は、当業者であれば認識されるところであろう。
【０１６０】
使用事例
以下の使用事例は、ハンズフリーコンテキストにおけるアシスタント１００２の動作の例として与えられるものである。これらの使用事例は例示的なものであり、あくまで説明の目的で示されるものに過ぎない点は当業者であれば認識されるところであろう。
【０１６１】
電話の使用事例
一実施形態では、ハンズフリーコンテキストにある場合、アシスタント１００２は、ユーザが電話をかける相手を指定することができる場合に機器をタップするか又は他の方法で触れることなくユーザが誰にでも電話をかけられるようにする。例としては、連絡先で電話をかける、電話番号で電話をかける（ユーザが数字を読み上げる）、などが挙げられる。曖昧性は更なる音声プロンプトによって解消することができる。以下に実施例を示す。
【実施例】
【０１６２】
実施例１：連絡先に電話する。曖昧性なし。
●ユーザの音声入力：「アダム・スミスに電話する」
●アシスタント１００２の音声出力：「アダム・スミスに電話します、モバイル」
●電話がかけられる。
【０１６３】
以下の使用事例のすべてにおいて、同様のインタラクションが行われる。すなわち、
●名前による電話連絡（「アダム・スミスに電話する」）
●名前による電話連絡、デフォルトではない電話番号（「アダム・スミスのモバイルに電話する」）
●電話番号でかける（８００  ５５５  １２１２にかける）。
●関係エイリアスによる電話連絡（「母に電話する」）
●位置エイリアスによる電話連絡（「家に電話する」）
●ＦａｃｅＴｉｍｅでかける（「アダム・スミスにフェースタイムする」）。
●コンテキストからかけなおす（「かけなおす」）。
【０１６４】
実施例２：電話発信の取り消し
●ユーザの音声入力：「アダム・スミスに電話する」
●アシスタント１００２の音声出力：「アダム・スミスに電話します、モバイル」
●ユーザが間違った人にかけたことに気付き、ホームボタンを１回押すか又は「ストップ」と言う。
●発信が取り消しされる。
【０１６５】
実施例３：名前でかける。曖昧性あり。
●ユーザの音声入力：「アダムに電話する」
●アシスタント１００２の音声出力：「アダム＜声の変化＞で複数の名前が見つかりました」
●アシスタント１００２の視覚的出力：「アダム＜声の変化＞で複数の名前が見つかりました」
●アシスタント１００２の音声出力：「名前を読んでください」
●アシスタント１００２の視覚的出力：
曖昧さ回避メニュー
アダム・チェヤー  自宅
アダム・サンドラー  自宅
アダム・スミス  モバイル
●ユーザの音声入力：「アダム・チェヤー」
●アシスタント１００２の音声出力：「アダム・チェヤーに電話します」
●電話がかけられる。
【０１６６】
実施例４：名前でかける。２重の曖昧性。
●ユーザの音声入力：「ポールに電話する」
●アシスタント１００２の音声出力：「ポール＜声の変化＞で複数の名前が見つかりました」
●アシスタント１００２の視覚的出力：「ポール＜声の変化＞で複数の名前が見つかりました」
●アシスタント１００２の音声出力：「名前を読んでください」
●アシスタント１００２の視覚的出力：
曖昧さ回避メニュー
ポール・ホールデン  自宅
ポール・マルコス  アイフォン
ポール・マルコス  モバイル
ポール・マルコス  自宅
パブロ・ピカソ  自宅
●ユーザの音声入力：「ポール・マルコス」
●アシスタント１００２の音声出力：「ポール・マルコスのどの番号ですか：アイフォン、モバイル、自宅？」
●アシスタント１００２の視覚的出力：「ポール・マルコスのどの番号ですか？」
●アシスタント１００２の視覚的出力：
曖昧さ回避メニュー
ポール・マルコス  アイフォン
ポール・マルコス  モバイル
ポール・マルコス  自宅
●ユーザの音声入力：「モバイル」
●アシスタント１００２の音声出力：「ポール・マルコスに電話します。＜ポーズ＞モバイル」
●電話がかけられる。
【０１６７】
実施例５：名前で会社にかける。曖昧さなし。
●ユーザの音声入力：「サンフランシスコのソニー・メトレオンに電話する」
●アシスタント１００２の音声出力：「ＡＭＣローズ・メトレオン１６を４番街に見つけました」
●アシスタント１００２の視覚的出力：「ＡＭＣローズ・メトレオン１６を４番街に見つけました」
●アシスタント１００２の視覚的出力：
ローカル検索スニペット
ＡＭＣローズ・メトレオン１６
サンフランシスコ市、４番街１０１号
（８８８）２６２〜４３８６
＜取り消しボタン＞＜発信ボタン＞
●アシスタント１００２の音声出力：「電話しますか？」
●ユーザの音声入力：「電話する」
●アシスタント１００２の音声出力：「ＡＭＣローズ・メトレオン１６に電話します」
●電話がかけられる。
【０１６８】
実施例６：名前で会社にかける。複数の一致。
●ユーザの音声入力：「ウォルグリーンズに電話する」
●アシスタント１００２の音声出力：「ウォルグリーンズ＜声の変化＞で複数の一致が見つかりました」
●アシスタント１００２の視覚的出力：「ウォルグリーンズ＜声の変化＞で複数の一致が見つかりました」
●アシスタント１００２の視覚的出力：
ローカル検索スニペットのリスト
ウォルグリーンズ・ストアロスガトス
ロスガトス、サンタクルーズアベニュー、４２３Ｎ
ウォルグリーンズ
カリフォルニア州、キャンベル、キャンベルアベニュー、１５７０
ウォルグリーンズ
カリフォルニア州、クパチーノ、ボリンジャーロード、２００１１
ウォルグリーンズ
カリフォルニア州、サンホセ、サラトガアベニュー、１３３４
ウォルグリーンズ
カリフォルニア州、サンホセ、ユニオンアベニュー、２６８０
●アシスタント１００２の音声出力：「読み上げますか？」
●ユーザの音声入力：「はい」
●アシスタント１００２の音声出力：「ウォルグリーンズ・ストアロスガトス店、ロスガトス、ノースサンタクルーズアベニュー４２３＜ポーズ＞２．ウォルグリーンズ、キャンベル、キャンベルアベニュー、１５７０＜ポーズ＞３．．．．」
●ユーザの音声入力：「クパチーノの会社」
●アシスタント１００２の音声出力：「クパチーノのウォルグリーンズにかけます」
●電話がかけられる。
【０１６９】
実施例６：車内で予定された電話をかける。
●ユーザが家に向かって運転を始める。
●アシスタント１００２が車内リマインダのトーンを鳴らす。
●アシスタント１００２の視覚的出力：
リマインダアラート
アダム・スミスに電話してください
＜閉じるボタン＞＜発信ボタン＞
●ユーザの音声入力：「読み上げる」
●アシスタント１００２の音声出力：「アダム・スミスに電話してくださいというリマインダがあります」
●ユーザの音声入力：「すぐに電話する」
●アシスタント１００２の音声出力：「アダム・スミスに電話します、モバイル」
●電話がかけられる。
【０１７０】
実施例７：新しいボイスメールを再生する。
●ユーザの音声入力：「ボイスメールを再生する」
●アシスタント１００２の音声出力：「新しいボイスメールメッセージが３通あります」
●アシスタント１００２がプロンプトとともにボイスメールを一度に再生する。
【０１７１】
ＳＭＳテキストメッセージングの使用事例
実施例８：単一のテキストメッセージアラートを読み上げる。
●アシスタント１００２の音声出力：１又は複数のアラートを読み上げるか、又はテキストメッセージの着信を示す音を生成する。
●アシスタント１００２の視覚的出力：
テキストメッセージ
メアリー・リチャーズ
今晩食事でもいかがですか？
＜閉じるボタン＞＜返信ボタン＞
●ユーザの音声入力：「読み上げる」
●アシスタント１００２の音声出力：「メアリー・リチャーズからのメッセージです。＜声の変化＞今晩食事でもいかがですか？」
【０１７２】
実施例９：テキストメッセージに返信する（実施例８の続き）。
●ユーザの音声入力：「返信する。＜ポーズ＞いいね、８時でどう？」
●アシスタント１００２の音声出力：「いいね、８時でどう？＜声の変化＞のメッセージでメアリー・リチャーズに返信する準備ができました」
●アシスタント１００２の視覚的出力：
宛先：メアリー・リチャーズ
いいね、８時でどう？
＜取り消しボタン＞＜送信ボタン＞
●ユーザの音声入力：「送信する」
●アシスタント１００２の音声出力：「送信中」又はテキストメッセージの送信音を生成する。
【０１７３】
実施例１０：１人の受信者にテキストメッセージを送信する。
●ユーザの音声入力：「１５分遅れますとリサに伝える」
●アシスタント１００２の音声出力：「１５分遅れます＜声の変化＞というメッセージでリサ・ゴンザレスにテキストを送信する準備ができました」
●アシスタント１００２の視覚的出力：
テキストメッセージ
宛先：リサ・ゴンザレス
１５分遅れます
＜取り消しボタン＞＜送信ボタン＞
●ユーザの音声入力：「送信する」
●アシスタント１００２の音声出力：「送信中」又はテキストメッセージの送信音を生成する。
【０１７４】
実施例１１：１人の受信者にテキストメッセージを送信する。曖昧性あり。
●ユーザの音声入力：「会議はどこで？というメッセージをアダムに送信する」
●アシスタント１００２の音声出力：「アダム＜声の変化＞で複数の名前が見つかりました」
●アシスタント１００２の音声出力：「名前を読んでください」
●アシスタント１００２の視覚的出力：
曖昧さ回避メニュー
アダム・チェヤー  自宅
アダム・サンドラー  自宅
アダム・スミス  モバイル
●ユーザの音声入力：「アダム・チェヤー」
●アシスタント１００２の音声出力：「アダム・チェヤー」
●アシスタント１００２の視覚的出力：
テキストメッセージ
宛先：アダム・チェヤー
会議はどこで？
＜取り消しボタン＞＜送信ボタン＞
●アシスタント１００２の音声出力：「会議はどこで？＜声の変化＞というメッセージでアダム・チェヤーにテキストを送信する準備ができました」
●ユーザの音声入力：「送信する」
●アシスタント１００２の音声出力：「送信中」又はテキストメッセージの送信音を生成する。
【０１７５】
実施例１２：メッセージａｐｐからのＳＭＳメッセージを読む。
●アシスタント１００２の視覚的出力：
テキストメッセージ
ベティー・ジョー・ビアロウスキー
ナンシーでいいわよ
＜閉じるボタン＞＜返信ボタン＞
●ユーザの音声入力：「読み上げる」
●アシスタント１００２の音声出力：「ナンシーでいいわよ＜声の変化＞というベティー・ジョー・ビアロウスキーからのメッセージがあります」
【０１７６】
実施例１３：メッセージＡｐｐのコンテキストで返信する（実施例１２からの続き）。
●ユーザの音声入力：「こんにちは、ナンシー＜ポーズ＞と返信する」
●アシスタント１００２の音声出力：「こんにちは、ナンシー＜声の変化＞というメッセージでベティー・ジョー・ビアロウスキーに返信する準備ができました」
●アシスタント１００２の視覚的出力：
宛先：ベティー・ジョー・ビアロウスキー
こんにちは、ナンシー
＜取り消しボタン＞＜送信ボタン＞
●ユーザの音声入力：「送信する」
●アシスタント１００２の音声出力：「送信中」又はテキストメッセージの送信音を生成する。
【０１７７】
実施例１４：すべての未読のＳＭＳメッセージを読む。
●アシスタント１００２の視覚的出力：
メラニー・ヘイバー（１）
ベティー・ジョー・ビアロウスキー（３）
オードリー・ファーバー（１）
●ユーザの音声入力：「新しいメッセージを読む」
●アシスタント１００２の音声出力：「４通の新しいメッセージがあります。メラニー・ヘイバーから＜声の変化＞夕食でもいかが？＜ポーズ＞ベティー・ジョー・ビアロウスキーから２通のメッセージがあります＜ポーズ＞１．＜声の変化＞私の名前はマクギルよ。
＜ポーズ＞２．＜声の変化＞自分ではリルと呼んでるの。＜ポーズ＞３．＜声の変化＞ナンシーでいいわよ」
【０１７８】
実施例１５：メッセージＡｐｐのコンテキストを名前で返信する。
●ユーザの音声入力：「１５分遅れますとオードリーに伝える」
●アシスタント１００２の音声出力：「１５分遅れます＜声の変化＞というメッセージでオードリー・ファーバーにテキストを送信する準備ができました」
●アシスタント１００２の視覚的出力：
テキストメッセージ
宛先：オードリー・ファーバー
１５分遅れます
＜取り消しボタン＞＜送信ボタン＞
●アシスタント１００２の音声出力：「送信しますか？」
●ユーザの音声入力：「はい」
●アシスタント１００２の音声出力：「送信中」又はテキストメッセージの送信音を生成する。
【０１７９】
実施例１６：複数の受信者にテキストメッセージを送信する。
一実施形態では、このタスクはハンズフリーコンテキストの範囲の外にあるものとされる。したがって、アシスタント１００２は曖昧さ回避のためのタップ動作に戻る。
●ユーザの音声入力：「我々の重要な会議に１５分遅れますとリサ、ポール、ナンシーに伝える」
●アシスタント１００２の音声出力：「これらの人から選択してください」
●アシスタント１００２の視覚的出力：複数の受信者を選択するためのＧＵＩ
●ユーザがＧＵＩにより受信者を選択する。
●アシスタント１００２の音声出力：「我々の重要な会議に１５分遅れます＜声の変化＞というメッセージでリサ・ゴンザレス、ポール・マルコス、オードリー・ファーバーにテキストを送信する準備ができました」
●アシスタント１００２の視覚的出力：
テキストメッセージ
宛先：リサ・ゴンザレス、ポール・マルコス、オードリー・ファーバー
我々の重要な会議に１５分遅れます
＜取り消しボタン＞＜送信ボタン＞
●ユーザの音声入力：「送信する」
●アシスタント１００２の音声出力：「送信中」又はテキストメッセージの送信音を生成する。
【０１８０】
アラート＆リマインダの使用事例
実施例１７：単一のリマインダアラートを読む。
●アシスタント１００２がリマインダトーンを鳴らす。
●アシスタント１００２の視覚的出力：
リマインダ
メアリー・リチャーズに電話してください
＜閉じるボタン＞＜発信ボタン＞
●ユーザの音声入力：「読み上げる」
●アシスタント１００２の音声出力：「メアリー・リチャーズに電話してくださいという確認です」
【０１８１】
実施例１８：リマインダアラートを実行する（実施例１７からの続き）。
●ユーザの音声入力：「メアリーにかける」
●アシスタント１００２の音声出力：「メアリー・リチャーズに電話します、モバイル」
●電話がかけられる。
【０１８２】
実施例１９：アラート付きの新しいリマインダを作成する。
●ユーザの音声入力：「午後５時にボブ・ジョーンズに電話するようにリマインドする」
●アシスタント１００２の音声出力：「確認してください。今日午後５時に＜声の変化＞ボブ・ジョーンズに電話してください、とリマインドします」
●アシスタント１００２の視覚的出力：
リマインダを確認してください
ボブ・ジョーンズに電話する（
確認時刻：今日、午後５時
＜取り消し＞＜保存＞
●ポーズ
●アシスタント１００２の音声出力：「これでよいですか」
●ユーザの音声入力：「はい。保存する」
●アシスタント１００２の音声出力：「リマインダが保存されました」
【０１８３】
実施例２０：アラートＰＩのない新しいリマインダを作成する。
●ユーザの音声入力：「パンを買うようにリマインドする」又は「忘れずにパンを買う」
●アシスタント１００２の音声出力：「確認してください。忘れずにパンを買う」
●アシスタント１００２の視覚的出力：
リマインダを確認してください
パンを買う
＜取り消し＞＜保存＞
●ポーズ
●アシスタント１００２の音声出力：「これでよいですか?」
●ユーザの音声入力：「よし」
●アシスタント１００２の音声出力：「ＴｏＤｏリストに追加しました」
【０１８４】
カレンダーの使用事例
実施例２１：単純なアポイントメントを作成する（説明及び日付／時間が与えられている場合）。
●ユーザの音声入力：「明日２時に会社のピクニックの計画を立てる会議の予定を入れる」
●アシスタント１００２の音声出力：「明日午後２時でカレンダーに書き込みました」
●アシスタント１００２の視覚的出力：
説明：会社のピクニックを計画する
いつ：明日午後２時
【０１８５】
実施例２２：単純なアポイントメントを作成する（説明が与えられていない場合）。
●ユーザの音声入力：「明日２に時にキャロルと会う」
●アシスタント１００２の音声出力：「明日午後２時でカレンダーに書き込みました」
●アシスタント１００２の視覚的出力：
説明：待ち合わせ
いつ：明日午後２時
【０１８６】
実施例２３：単純なアポイントメントを作成する（時間が与えられていない場合）。
●ユーザの音声入力：「次の木曜日に歯医者の予約」
●アシスタント１００２の音声出力：「次の木曜日の何時ですか」
●ユーザの音声入力：「３時」
●アシスタント１００２の音声出力：「次の木曜日の午後３時でカレンダーに書き込みました」
●アシスタント１００２の視覚的出力：
説明：歯医者の予約
いつ：次の木曜日、午後３時
【０１８７】
実施例２４：単純なアポイントメントを作成する（日付も時間も与えられていない場合）。
●ユーザの音声入力：「会社のピクニックの計画を立てる会議の予定を入れる」
●アシスタント１００２の音声出力：「会議はいつにしますか？」
●アシスタント１００２の視覚的出力：編集可能なアポイントメントフォーム
●ユーザの音声入力：「火曜日の３時」
●アシスタント１００２の音声出力：「火曜日の午後３時でカレンダーに書き込みました」
●アシスタント１００２の視覚的出力：
説明：会社のピクニックを計画するための打ち合わせ
いつ：火曜日、午後３時
【０１８８】
上記に述べた実施例はあくまで特定の状況におけるハンズフリーコンテキストの使用を説明するためのものに過ぎない点は当業者であれば認識されるところであろう。更なる使用例としては、例えば、地図、音楽などの再生メディアなどが挙げられる。
【０１８９】
以上、本発明を可能な実施形態に関して特に詳細に述べた。本発明は他の実施形態でも実施可能である点は当業者であれば認識されるところであろう。第一に、要素の特定の名称、用語の大文字の使用、属性、データ構造、又は他の任意のプログラミング若しくは構造的な態様は必須でも重要でもなく、本発明又はその特徴を実施する機構は、異なる名称、フォーマット又はプロトコルを有しうるものである。更に、システムは、上述したようにハードウェア及びソフトウェアの組み合わせによって実施されてもよく、その全体がハードウェア要素で実施されてもよく、又はその全体がソフトウェア要素で実施されてもよい。また、本明細書に述べられる様々なシステムの要素間における機能の特定の分割はあくまで例示的なものであって必須のものではない。単一のシステム要素により実行される機能は、代わりに複数の要素により実行される場合もあり、複数の要素により実行される機能は、代わりに単一の要素により実行される場合もある。
【０１９０】
様々な実施形態において、本発明は、上記に述べた技術を単独で又は任意の組み合わせとして実行するためのシステム又は方法として実施することが可能である。別の実施形態では、本発明は、永続的なコンピュータ可読記憶媒体と、コンピューティング機器又は他の電子機器のプロセッサに上述の技術を実行させるための、上記媒体上でコード化されたコンピュータプログラムコードとを含むコンピュータプログラムとして実施することができる。
【０１９１】
本明細書において「一実施形態」又は「実施形態」と言う場合、その実施形態と関連して述べられる特定の機能、構造又は特徴が、本発明の少なくとも１つの実施形態に含まれていることを意味する。本明細書の様々な箇所で「一実施形態において」という語句が見られる場合、必ずしもすべてが同じ実施形態のことを指しているわけではない。
【０１９２】
上記の一部は、コンピューティング機器のメモリ内のデータビット上での動作のアルゴリズム及び記号表現に関して示される。これらのアルゴリズムの説明及び表現は、データ処理分野の当業者の研究の本質を他の当業者に最も効果的に伝えるために当業者によって使用される手段である。アルゴリズムとは、本明細書において、また一般的に、所望の結果をもたらす自己矛盾のないステップ（命令）のシークエンスと考えられる。これらのステップは、物理量の物理的操作を必要とするものである。通常、必ずしもではないが、これらの量は記憶、移動、組み合わせ、比較及び他の何らかの方法で操作することが可能である電気信号、磁気信号又は光信号の形態をとる。主として一般的な使用の理由から、これらの信号は、ビット、値、要素、記号、文字、用語、数字などと呼ぶことがしばしば都合がよい。更に、物理量の物理的操作を必要とするステップの特定の配列を、一般性を失うことなくモジュール又はコード機器と呼ぶこともしばしば都合がよい。
【０１９３】
しかしながら、これら及び同様の用語はすべて、適切な物理量と関連付けられるべきものであり、これらの量に適用される便宜的な標識にすぎない点は心に留めおくべきである。特に断りのない限り、以下の考察から明らかであるように、説明文の全体を通じて、「処理する」又は「計算する」又は「算出する」又は「表示する」、又は「判定する」、又はこれらに類する用語を用いた考察は、コンピュータシステムメモリ若しくはレジスタ、又は他のこうした情報記憶、伝達又は表示装置内で物理的（電子的）量として表されるデータを操作及び変換するコンピュータシステム、又は同様の電子コンピューティングモジュール及び／又は機器の動作及びプロセスを指すものであることが認識される。
【０１９４】
本発明の特定の態様は、本明細書に述べられる処理ステップ及び命令をアルゴリズムの形態で含む。本発明の処理ステップ及び命令は、ソフトウェア、ファームウェア及び／又はハードウェアとして具体化されうるものであり、ソフトウェアとして具体化される場合には、様々なオペレーティングシステムによって使用される異なるプラットフォーム上に存在し、そこから操作されるようにダウンロードすることができる点に留意されたい。
【０１９５】
本発明は、本明細書において動作を実行するための装置にも関する。この装置は、必要な目的のために特別に構築されてもよく、又はコンピューティング機器に記憶されたコンピュータプログラムにより選択的に作動されるか若しくは再構成される汎用コンピューティング機器からなるものでもよい。このようなコンピュータプログラムは、これらに限定されるものではないが、フロッピーディスク、光ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気若しくは光カード、特定用途向け集積回路（ＡＳＩＣ）、又は電子的命令を記憶するのに適当であり、それぞれがコンピュータシステムバスに結合される任意の種類の媒体を含む任意の種類のディスクなどのコンピュータ可読記憶媒体に記憶することができる。更に、本明細書において参照されるコンピューティング機器は、単一のプロセッサを含んでもよく、又は計算機能を向上させるために複数プロセッサの設計を用いたアーキテクチャであってもよい。
【０１９６】
本明細書に示されるアルゴリズム及びディスプレイは、いずれの特定のコンピューティング機器、仮想化システム又は他の装置にも本質的には関連しない。様々な汎用システムを本明細書の教示に基づいてプログラムとともに使用することも可能であり、又は必要な方法ステップを実行するために更に特化した装置を構築することが都合よい場合もありうる。様々なこれらのシステムに求められる構造は、本明細書に示される説明より明らかとなるであろう。更に本発明は、いずれの特定のプログラミング言語に関連しても述べられていない。様々なプログラミング言語を使用して本明細書に述べられるような本発明の教示を実施することが可能であり、上記における特定の言語に対するいずれの言及も、本発明の実現化及び最良の形態を開示する目的で与えられたものである点は認識されるであろう。
【０１９７】
したがって、様々な実施形態において、本発明は、ソフトウェア、ハードウェア及び／若しくはコンピュータシステム、コンピューティング機器、又は他の電子機器を制御する他の要素、又はそれらの任意の組み合わせ若しくはそれらの複数のものとして実施することが可能である。このような電子機器には、当該技術分野では周知の技術に従う、例えば、プロセッサ、入力装置（キーボード、マウス、タッチパッド、トラックパッド、ジョイスティック、トラックボール、マイクロフォン及び／又はこれらの任意の組み合わせなど）、出力装置（画面、スピーカなど）、メモリ、長期記憶装置（磁気記憶装置、光学記憶装置など）、及び／又はネットワーク接続が含まれうる。こうした電子機器は、携帯型であっても非携帯型であってもよい。本発明を実施するために使用することが可能な電子機器の例としては、モバイル電話、携帯情報端末、スマートフォン、キオスク、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、家庭用電子機器、家庭用娯楽機器、音楽プレーヤ、カメラ、テレビ、セットトップボックス又は電子ゲーム機などが挙げられる。本発明を実施するための電子機器では、例えば、Ｃａｌｉｆｏｒｎｉａ州Ｃｕｐｅｒｔｉｎｏ所在のＡｐｐｌｅ  Ｉｎｃ．より入手可能なｉＯＳ又はＭａｃＯＳ、又は機器上での使用に適合された他の任意のオペレーティングシステムなどの任意のオペレーティングシステムを使用することができる。
【０１９８】
以上、本発明を限られた数の実施形態に関して説明したが、当業者であれば、上記の説明文を利用することで、本明細書に述べられる本発明の範囲から逸脱しない他の実施形態も考案することが可能である点は認識されるであろう。更に、本明細書において使用される文言は、専ら読みやすさ及び説明の目的で選択されたものであり、本発明の主題を限定又は制限するために選択されたものではない点には留意されたい。したがって、本発明の開示は、特許請求の範囲に記載される本発明の範囲を例示することを目的としたものであって、その限定を目的としたものではない。
【図１】
2015501022.tif 000003
【図２】
2015501022.tif 000004
【図３Ａ】
2015501022.tif 000005
【図３Ｂ】
2015501022.tif 000006
【図４】
2015501022.tif 000007
【図５Ａ】
2015501022.tif 000008
【図５Ｂ】
2015501022.tif 000009
【図５Ｃ】
2015501022.tif 000010
【図５Ｄ】
2015501022.tif 000011
【図６Ａ】
2015501022.tif 000012
【図６Ｂ】
2015501022.tif 000013
【図６Ｃ】
2015501022.tif 000014
【図７】
2015501022.tif 000015
【図８】
2015501022.tif 000016
【図９】
2015501022.tif 000017
【図１０】
2015501022.tif 000018
【図１１】
2015501022.tif 000019
【図１２】
2015501022.tif 000020
【図１３】
2015501022.tif 000021
【図１４】
2015501022.tif 000022
【手続補正書】
【提出日】平成26年5月26日(2014.5.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
少なくとも１つのプロセッサを有するコンピューティング機器上でタスクを実行するためにユーザ入力を解釈するためのコンピュータにより実行される方法であって、
プロセッサにおいて、ハンズフリーコンテキストが有効であるか否かを検出するステップと、
出力装置において、ユーザに入力を促すステップと、
入力装置において、ユーザ入力を受け取るステップと、
前記プロセッサにおいて、前記受け取られたユーザ入力を解釈してユーザ意図の表現を導出するステップと、
前記プロセッサにおいて、前記導出されたユーザ意図の表現に少なくとも一部基づいて少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するステップと、
前記プロセッサにおいて、前記少なくとも１つのパラメータを使用して前記少なくとも１つのタスクを実行して結果を導出するステップと、
前記プロセッサにおいて、前記導出された結果に基づいてダイアログ応答を生成するステップと、
前記出力装置において、前記生成されたダイアログ応答を出力するステップと、を含み、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、前記ハンズフリーコンテキストにともなう制約と整合した方法で実行される、方法。
【請求項２】
前記コンピューティング機器とのユーザインタラクションに少なくとも２つのインタラクションモードが利用可能であり、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、ハンズフリー動作に適合された第１のインタラクションモードを使用して実行され、
前記機器がハンズフリーコンテキストにないことの検出に応じて、前記ユーザに入力を促す前記ステップ、ユーザ入力を受け取る前記ステップ、前記受け取りユーザ入力を解釈する前記ステップ、前記少なくとも１つのタスク及び前記タスクの前記少なくとも１つのパラメータを特定する前記ステップ、及び前記ダイアログ応答を生成する前記ステップのうちの少なくとも１つが、ハンズフリー動作に適合されていない第２のインタラクションモードを使用して実行される、請求項１に記載の方法。
【請求項３】
ハンズフリーコンテキストが有効であるか否かを検出するステップが、
前記コンピューティング機器により提示される視覚的出力をユーザが見ることができることと、
前記コンピューティング機器により提示されるグラフィカルユーザインターフェースとユーザがインタラクトできることと、
前記コンピューティング機器の物理的構成要素をユーザが使用することができることと、
前記コンピューティング機器上でタッチ入力をユーザが行うことができることと、
前記コンピューティング機器上のスイッチをユーザが作動できることと、
前記コンピューティング機器上のキーボードをユーザが使用できることと、からなる群から選択される少なくとも１つにおける制約を示す条件を検出することを含む、請求項１又は２に記載の方法。
【請求項４】
ユーザに入力を促すステップが、
前記機器がハンズフリーコンテキストにないことの検出に応じて、前記ハンズフリーコンテキストに適合されていない第１の出力モードにより前記ユーザを促すステップと、
前記機器がハンズフリーコンテキストにあることの検出に応じて、前記ハンズフリーコンテキストに適合された第２の出力モードにより前記ユーザを促すステップと、を含む、請求項１〜３のいずれかに記載の方法。
【請求項５】
第１の出力モードにより前記ユーザを促すステップが、視覚的出力モードにより前記ユーザを促すステップを含み、
第２の出力モードにより前記ユーザを促すステップが、聴覚的出力モードにより前記ユーザを促すステップを含む、請求項４に記載の方法。
【請求項６】
視覚的出力モードにより前記ユーザを促すステップが、ディスプレイ画面にプロンプトを表示するステップを含み、
聴覚的出力モードにより前記ユーザを促すステップが、音声プロンプトを出力するステップを含む、請求項５に記載の方法。
【請求項７】
前記受け取られたユーザ入力を解釈するステップが、
前記機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた語彙を使用して前記受け取られたユーザ入力を解釈するステップを含む、請求項１〜６のいずれかに記載の方法。
【請求項８】
少なくとも１つのタスク及び前記タスクの少なくとも１つのパラメータを特定するステップが、前記機器がハンズフリーコンテキストにあることの検出に応じて、ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することを含む、請求項１〜７のいずれかに記載の方法。
【請求項９】
ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することが、音声によるインターフェースにより入力された内容を修正及び確認するように前記ユーザに促すステップを含む、請求項８に記載の方法。
【請求項１０】
ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することが、聴覚的出力を用いて少なくとも１つのタスクフローステップを実行することを含む、請求項８又は９に記載の方法。
【請求項１１】
ハンズフリー動作に関連付けられた少なくとも１つのタスクフロー特定ステップを実行することが、前記ハンズフリーコンテキストに適した、限定された使用可能なタスクフローステップ群から選択される少なくとも１つのタスクフローステップを実行することを含む、請求項８〜１０のいずれかに記載の方法。
【請求項１２】
ダイアログ応答を生成するステップが、前記機器がハンズフリーコンテキストにあることの検出に応じて、音声による出力モードでダイアログ応答を生成するステップを含む、請求項１〜１１のいずれかに記載の方法。
【請求項１３】
音声による出力モードでダイアログ応答を生成するステップが、前記ユーザ入力の少なくとも一部を音声の形態で言い換えるステップを含む、請求項１２に記載の方法。
【請求項１４】
音声による出力モードでダイアログ応答を生成するステップが、言い換えられたユーザ入力を他の音声出力から区別するために複数の声を使用して音声を生成するステップを更に含む、請求項１３に記載の方法。
【請求項１５】
音声による出力モードでダイアログ応答を生成するステップが、ダイアログテンプレートを少なくとも１つの個人データのアイテムと組み合わせるステップを含む、請求項１３又は１４に記載の方法。
【請求項１６】
ハンズフリーコンテキストが有効であるか否かを検出するステップが、
ハンズフリーコンテキストを特定するユーザ入力を受け取るステップと、
ハンズフリーコンテキストに関連付けられた環境条件を示す少なくとも１つのセンサからデータを受け取るステップと、
ハンズフリーコンテキストに関連付けられた周辺機器の接続を検出するステップと、
ハンズフリーコンテキストに関連付けられていない周辺機器の切断を検出するステップと、
車両の車載システムとの通信を検出するステップと、
現在位置を検出するステップと、
現在速度を検出するステップと、からなる群から選択される少なくとも１つを含む、請求項１に記載の方法。
【請求項１７】
前記ユーザを促すステップが、会話インターフェースにより前記ユーザを促すステップを含み、
ユーザ入力を受け取るステップが、前記会話インターフェースによりユーザ入力を受け取るステップを含む、請求項１〜１６のいずれかに記載の方法。
【請求項１８】
ユーザ入力を受け取るステップが、
音声入力を受け取るステップと、
前記音声入力をテキスト表現に変換するステップと、を含む、請求項１〜１７のいずれかに記載の方法。
【請求項１９】
前記コンピューティング機器が、
電話と、
スマートフォンと、
タブレットコンピュータと、
ラップトップコンピュータと、
携帯情報端末と、
デスクトップコンピュータと、
キオスクと、
家庭用電子機器と、
家庭用娯楽機器と、
音楽プレーヤと、
カメラと、
テレビと、
電子ゲーム機と、
セットトップボックスと、からなる群から選択される少なくとも１つを含む、請求項１〜１８のいずれかに記載の方法。
【請求項２０】
電子機器の１つ以上のプロセッサにより実行されるための１つ以上のプログラムを記憶したコンピュータ可読記憶媒体であって、前記１つ以上のプログラムが、請求項１〜１９に記載の方法のいずれかを実行するための命令を含んでいる、コンピュータ可読記憶媒体。
【請求項２１】
１つ以上のプロセッサ、及び請求項１〜１９に記載の方法のいずれかを実行するための命令を含む、前記１つ以上のプロセッサにより実行されるための１つ以上のプログラムを記憶したメモリとを備える、電子機器。
【請求項２２】
請求項１〜１９に記載の方法のいずれかを実行するための手段を備える、電子機器。
【請求項２３】
請求項１〜１９に記載の方法のいずれかを実行するための手段を備える、電子機器において使用するための情報処理装置。
【国際調査報告】
2015501022.tif 000023
2015501022.tif 000024