以下の実施例の説明では、実践することが可能な特定の実施例が例として示される、添付図面を参照する。それら様々な実施例の範囲から逸脱することなく、他の実施例を使用することができ、構造上の変更を実施することができる点を理解されたい。
以下の説明では、様々な要素を説明するために「第1」、「第2」などの用語が使用されるが、これらの要素は、それらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明される様々な実施例の範囲から逸脱することなく、第1の入力を第2の入力と呼ぶことが可能であり、同様に、第2の入力を第1の入力と呼ぶことも可能である。第1の入力及び第2の入力は、双方とも入力であり、一部の場合には、別個の異なる入力である。
本明細書で説明される様々な実施例の説明で使用される用語法は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明、及び添付の特許請求の範囲で使用するとき、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用するとき、用語「及び/又は」は、関連する列挙された項目のうちの1つ以上の、あらゆる全ての可能な組み合わせを指すものであり、かつそれらの組み合わせを包含することもまた、理解されるであろう。用語「includes(含む)、「including(含む)」、「comprises(備える)」、及び/又は「comprising(備える)」は、本明細書で使用される場合、記述された特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するものであるが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群の存在若しくは追加を排除するものではないことが、更に理解されるであろう。
用語「if(~の場合には)」は、文脈に応じて、「when(~のとき)」若しくは「upon(~すると)」、又は「in response to determining(~という判定に応答して)」、若しくは「in response to detecting(~の検出に応答して)」を意味するものと解釈することができる。同様に、句「if it is determined(~と判定される場合には)」又は「if[a stated condition or event]is detected([記述される条件又はイベント]が検出される場合には)」は、文脈に応じて、「upon determining(~と判定すると)」、若しくは「in response to determining(~という判定に応答して)」、又は「upon detecting[the stated condition or event]([記述される条件又はイベント]を検出すると)」、若しくは「in response to detecting[the stated condition or event]([記述される条件又はイベント]の検出に応答して)」を意味するものと解釈することができる。
1.システム及び環境
図1は、様々な実施例による、システム100のブロック図を示す。一部の実施例では、システム100は、デジタルアシスタントを実装する。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、発話形式及び/又はテキスト形式の自然言語入力を解釈することによりユーザ意図を推測して、その推測されたユーザ意図に基づいてアクションを実行する、任意の情報処理システムを指す。例えば、推測されたユーザ意図を遂行するために、このシステムは、推測されたユーザ意図を実現するべく設計されたステップ及びパラメータを有する、タスクフローを特定することと、推測されたユーザ意図からの具体的な要件を、そのタスクフローに入力することと、プログラム、方法、サービス、又はAPIなどを呼び出すことによって、そのタスクフローを実行することと、可聴(例えば、発話)形式及び/又は視覚形式で、ユーザに対する出力応答を生成することとのうちの、1つ以上を実行する。
具体的には、デジタルアシスタントは、自然言語コマンド、要求、陳述、叙述、及び/又は照会の形式で、少なくとも部分的にユーザ要求を受け入れることが可能である。典型的には、ユーザ要求は、デジタルアシスタントによる情報回答又はタスクの実行のいずれかを求めるものである。このユーザ要求に対する満足な応答は、要求された情報回答の提供、要求されたタスクの実行、又は、それら2つの組み合わせを含む。例えば、ユーザは、デジタルアシスタントに、「私は今どこにいますか?(Where am I right now?)」などの質問をする。ユーザの現在の位置に基づいて、デジタルアシスタントは、「あなたはセントラルパーク内の西門の近くにいます。(You are in Central Park near the west gate.)」と回答する。ユーザはまた、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティーに招待してください。(Please invite my friends to my girlfriend's birthday party next week.)」のように、タスクの実行も要求する。それに応答して、デジタルアシスタントは、「はい、ただ今(Yes, right away)」と述べることによって、その要求に肯定応答することができ、次いで、そのユーザの電子アドレス帳にリスト化されているユーザの友人のそれぞれに、ユーザに代わって、好適なカレンダー招待状を送信することができる。要求されたタスクの実行中に、デジタルアシスタントは、長期間にわたる複数の情報交換を伴う連続的なダイアログ内で、ユーザと対話する場合がある。情報又は様々なタスクの実行を要求するためにデジタルアシスタントと対話する、数多くの他の方法が存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントはまた、他の視覚形式又はオーディオ形式で、例えば、テキスト、警報、音楽、ビデオ、アニメーションなどとして、応答を提供する。
図1に示されるように、一部の実施例では、デジタルアシスタントは、クライアント-サーバモデルに従って実装される。デジタルアシスタントは、ユーザデバイス104上で実行されるクライアント側部分102(以後、「DAクライアント102」)、及びサーバシステム108上で実行されるサーバ側部分106(以後、「DAサーバ106」)を含む。DAクライアント102は、1つ以上のネットワーク110を通じてDAサーバ106と通信する。DAクライアント102は、ユーザ対応入力及び出力処理、並びにDAサーバ106との通信などの、クライアント側機能を提供する。DAサーバ106は、対応のユーザデバイス104上にそれぞれが常駐する、任意数のDAクライアント102に、サーバ側機能を提供する。
一部の実施例では、DAサーバ106は、クライアント対応I/Oインタフェース112、1つ以上の処理モジュール114、データ及びモデル116、並びに、外部サービスへのI/Oインタフェース118を含む。クライアント対応I/Oインタフェース112は、DAサーバ106に関するクライアント対応入力及び出力処理を容易にする。1つ以上の処理モジュール114は、データ及びモデル116を利用して、発話入力を処理し、自然言語入力に基づいてユーザの意図を判定する。更には、1つ以上の処理モジュール114は、タスク実行を、推測されたユーザ意図に基づいて実行する。一部の実施例では、DAサーバ106は、タスクの完了又は情報の取得のために、ネットワーク(単数又は複数)110を通じて外部サービス120と通信する。外部サービスへのI/Oインタフェース118は、そのような通信を容易にする。
ユーザデバイス104は、任意の好適な電子デバイスとすることができる。一部の実施例では、ユーザデバイス104は、ポータブル多機能デバイス(例えば、図2Aを参照して以下で説明されるデバイス200)、多機能デバイス(例えば、図4を参照して以下で説明されるデバイス400)、又はパーソナル電子デバイス(例えば、図6A、図6Bを参照して以下で説明されるデバイス600)である。ポータブル多機能デバイスは、例えば、PDA機能及び/又はミュージックプレーヤ機能などの他の機能もまた含む、携帯電話である。ポータブル多機能デバイスの具体例としては、Apple Inc.(Cupertino,California)による、Apple Watch(登録商標)、iPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスが挙げられる。ポータブル多機能デバイスの他の例としては、限定するものではないが、イヤホン/ヘッドホン、スピーカ、及び、ラップトップコンピュータ若しくはタブレットコンピュータが挙げられる。更には、一部の実施例では、ユーザデバイス104は、非ポータブルの多機能デバイスである。具体的には、ユーザデバイス104は、デスクトップコンピュータ、ゲームコンソール、スピーカ、テレビ、又はテレビセットトップボックスである。一部の実施例では、ユーザデバイス104は、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を含む。更には、ユーザデバイス104は、任意選択的に、物理キーボード、マウス、及び/又はジョイスティックなどの、1つ以上の他の物理ユーザインタフェースデバイスを含む。多機能デバイスなどの電子デバイスの様々な実施例が、以下で更に詳細に説明される。
通信ネットワーク(単数又は複数)110の例としては、ローカルエリアネットワーク(local area network;LAN)、及びワイドエリアネットワーク(wide area network;WAN)、例えば、インターネットが挙げられる。通信ネットワーク(単数又は複数)110は、例えば、イーサネット、ユニバーサルシリアルバス(Universal Serial Bus;USB)、FIREWIRE、移動通信用のグローバルシステム(Global System for Mobile Communications;GSM)、拡張データGSM環境(Enhanced Data GSM Environment;EDGE)、符号分割多元接続(code division multiple access;CDMA)、時分割多元接続(time division multiple access;TDMA)、Bluetooth、Wi-Fi、ボイスオーバーインターネットプロトコル(voice over Internet Protocol;VoIP)、Wi-MAX、又は任意の他の好適な通信プロトコルなどの、様々な有線若しくは無線プロトコルを含めた、任意の既知のネットワークプロトコルを使用して実装される。
サーバシステム108は、1つ以上のスタンドアロン型データ処理装置、又は分散型のコンピュータネットワーク上に実装される。一部の実施例では、サーバシステム108はまた、サーバシステム108の基本的なコンピューティングリソース及び/又はインフラストラクチャリソースを提供するために、様々な仮想デバイス及び/又は第三者サービスプロバイダ(例えば、第三者クラウドサービスプロバイダ)のサービスも採用する。
一部の実施例では、ユーザデバイス104は、第2のユーザデバイス122を介してDAサーバ106と通信する。第2のユーザデバイス122は、ユーザデバイス104と同様又は同一である。例えば、第2のユーザデバイス122は、図2A、図4、及び図6A、図6Bを参照して以下で説明される、デバイス200、400、又はデバイス600と同様である。ユーザデバイス104は、Bluetooth、NFC、BTLEなどの直接通信接続を介して、又は、有線ネットワーク、若しくはローカルWi-Fiネットワークなどの無線ネットワークを介して、第2のユーザデバイス122に通信可能に結合するように構成されている。一部の実施例では、第2のユーザデバイス122は、ユーザデバイス104とDAサーバ106との間のプロキシとしての役割を果たすように構成されている。例えば、ユーザデバイス104のDAクライアント102は、第2のユーザデバイス122を介して、情報(例えば、ユーザデバイス104で受信されたユーザ要求)をDAサーバ106に送信するように構成されている。DAサーバ106は、その情報を処理して、第2のユーザデバイス122を介して、関連データ(例えば、ユーザ要求に応答するデータコンテンツ)をユーザデバイス104に返す。
一部の実施例では、ユーザデバイス104は、データに関する短縮化された要求を第2のユーザデバイス122に通信することにより、ユーザデバイス104から送信される情報の量を低減するように構成されている。第2のユーザデバイス122は、その短縮化された要求に追加するべき補足情報を判定して、DAサーバ106に送信するための完全な要求を生成するように構成されている。このシステムアーキテクチャにより、有利には、限られた通信能力及び/又は限られたバッテリ電力を有するユーザデバイス104(例えば、腕時計又は同様のコンパクト電子デバイス)は、より強力な通信能力及び/又はより大きいバッテリ電力を有する第2のユーザデバイス122(例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータなど)を、DAサーバ106へのプロキシとして使用することによって、DAサーバ106によって提供されるサービスにアクセスすることが可能となり得る。図1では、2つのユーザデバイス104及びユーザデバイス122のみが示されているが、システム100は、一部の実施例では、このプロキシ構成でDAサーバシステム106と通信するように構成された、任意の数及びタイプのユーザデバイスを含むことを理解されたい。
図1に示されるデジタルアシスタントは、クライアント側部分(例えば、DAクライアント102)及びサーバ側部分(例えば、DAサーバ106)の双方を含むものであるが、一部の実施例では、デジタルアシスタントの機能は、ユーザデバイス上にインストールされるスタンドアロン型アプリケーションとして実装される。更には、デジタルアシスタントのクライアント部分とサーバ部分との間での機能の割り振りは、実装形態によって異なり得る。例えば、一部の実施例では、DAクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの他の全ての機能をバックエンドサーバに委ねる、シンクライアントである。
2.電子デバイス
ここで、デジタルアシスタントのクライアント側部分を実装するための、電子デバイスの実施形態に注意を向ける。図2Aは、一部の実施形態による、タッチ感知ディスプレイシステム212を備えるポータブル多機能デバイス200を示すブロック図である。タッチ感知ディスプレイ212は、便宜上「タッチスクリーン」と呼ばれる場合があり、「タッチ感知ディスプレイシステム」として既知であるか、又はそのように呼ばれる場合もある。デバイス200は、メモリ202(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ222、1つ以上の処理ユニット(CPU)220、周辺機器インタフェース218、RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、入出力(I/O)サブシステム206、他の入力制御デバイス216、及び外部ポート224を含む。デバイス200は、任意選択的に、1つ以上の光センサ264を含む。デバイス200は、任意選択的に、デバイス200(例えば、デバイス200のタッチ感知ディスプレイシステム212などのタッチ感知面)上の接触の強度を検出するための、1つ以上の接触強度センサ265を含む。デバイス200は、任意選択的に、デバイス200上に触知出力を生成する(例えば、デバイス200のタッチ感知ディスプレイシステム212、又はデバイス400のタッチパッド455などの、タッチ感知面上に触知出力を生成する)ための、1つ以上の触知出力生成器267を含む。これらの構成要素は、任意選択的に、1つ以上の通信バス又は信号ライン203を介して通信する。
本明細書及び特許請求の範囲で使用するとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指接触)の力若しくは圧力(単位面積当りの力)、又はタッチ感知面上の接触の力若しくは圧力の代替(代用)を指す。接触の強度は、少なくとも4つの異なる値を含み、より典型的には、数百の(例えば、少なくとも256の)異なる値を含む、値の範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ若しくはセンサの組み合わせを使用して、判定(又は、測定)される。例えば、タッチ感知面の下の、又はタッチ感知面に隣接する、1つ以上の力センサを任意選択的に使用して、そのタッチ感知面上の様々な点での力を測定する。一部の実装形態では、複数の力センサからの力測定値を組み合わせて(例えば、加重平均)、推定される接触の力を判定する。同様に、スタイラスの感圧性先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を判定する。あるいは、タッチ感知面上で検出される接触区域のサイズ及び/又はその変化、接触に近接するタッチ感知面の静電容量及び/又はその変化、並びに/あるいは、接触に近接するタッチ感知面の抵抗及び/又はその変化が、任意選択的に、タッチ感知面上の接触の力又は圧力の代替として使用される。一部の実装形態では、これらの接触の力又は圧力に関する代替的測定値は、強度閾値を超過しているか否かを判定するために直接使用される(例えば、強度閾値は、その代替的測定値に対応する単位で説明される)。一部の実装形態では、これらの接触の力又は圧力に関する代替的測定値は、推定される力又は圧力に変換され、その推定される力又は圧力を使用して、強度閾値を超過しているか否かが判定される(例えば、強度閾値は、圧力の単位で測定される圧力閾値である)。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するための、及び/又は、ユーザ入力を(例えば、タッチ感知ディスプレイ、タッチ感知面、又は、ノブ若しくはボタンなどの物理的/機械的制御部を介して)受信するための面積が制限されている、低減されたサイズのデバイス上で、通常であればユーザによってアクセスすることが不可能であり得る追加的なデバイス機能への、ユーザのアクセスが可能となる。
本明細書及び特許請求の範囲で使用するとき、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対する、そのデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、そのデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又は、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況では、物理的変位によって生成された触知出力は、そのデバイス又はデバイスの構成要素の物理的特性の認識される変化に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。一部の場合には、ユーザの移動によって物理的に押圧される(例えば、変位される)、タッチ感知面に関連付けられた物理アクチュエータボタンの移動がない場合であっても、ユーザは、「ダウンクリック」又は「アップクリック」などの触感を感じることになる。別の例として、タッチ感知面の移動は、そのタッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されることになるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。それゆえ、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」、「ダウンクリック」、「粗さ」)に対応するものとして説明される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザに対して、その説明された感覚認知を生じさせることになる、デバイス又はデバイスの構成要素の物理的変位に相当する。
デバイス200は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス200は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有するものであり、任意選択的に、2つ以上の構成要素を組み合わせるものであり、又は、任意選択的に、それらの構成要素の異なる構成若しくは配置を有するものであることを理解されたい。図2Aに示される様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含めた、ハードウェア、ソフトウェア、あるいはハードウェア及びソフトウェアの双方の組み合わせとして実装される。
メモリ202は、1つ以上のコンピュータ可読記憶媒体を含む。このコンピュータ可読記憶媒体は、例えば、有形かつ非一時的なものである。メモリ202は、高速ランダムアクセスメモリを含み、また、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリも含む。メモリコントローラ222は、デバイス200の他の構成要素による、メモリ202へのアクセスを制御する。
一部の実施例では、メモリ202の非一時的コンピュータ可読記憶媒体は、コンピュータベースのシステム、プロセッサを含むシステムなどの、命令実行システム、装置、若しくはデバイス、又は、その命令実行システム、装置、若しくはデバイスから命令をフェッチして、その命令を実行することが可能な他のシステムによって、あるいはそれらのシステムと関連して使用するための(例えば、以下で説明されるプロセスの諸態様を実行するための)命令を、記憶するために使用される。他の実施例では、(例えば、以下で説明されるプロセスの諸態様を実行するための)命令は、サーバシステム108の非一時的コンピュータ可読記憶媒体上に記憶されるか、又は、メモリ202の非一時的コンピュータ可読記憶媒体と、サーバシステム108の非一時的コンピュータ可読記憶媒体との間で割り振られる。
周辺機器インタフェース218は、このデバイスの入力及び出力周辺機器を、CPU220及びメモリ202に結合するために使用される。1つ以上のプロセッサ220は、デバイス200に関する様々な機能を実行し、データを処理するために、メモリ202内に記憶されている様々なソフトウェアプログラム及び/又は命令セットを稼働若しくは実行する。一部の実施形態では、周辺機器インタフェース218、CPU220、及びメモリコントローラ222は、チップ204などの単一チップ上に実装される。一部の他の実施形態では、それらは、別個のチップ上に実装される。
RF(radio frequency;無線周波数)回路208は、電磁信号とも呼ばれるRF信号を送受信する。RF回路208は、電気信号を電磁信号に/電磁信号を電気信号に変換し、その電磁信号を介して、通信ネットワーク及び他の通信デバイスと通信する。RF回路208は、任意選択的に、これらの機能を実行するための周知の回路を含み、それらの回路としては、限定するものではないが、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(subscriber identity module;SIM)カード、メモリなどが挙げられる。RF回路208は、任意選択的に、ワールドワイドウェブ(World Wide Web;WWW)とも称されるインターネット、イントラネット、並びに/あるいは、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(metropolitan area network;MAN)などの無線ネットワークなどの、ネットワークと、また他のデバイスと、無線通信によって通信する。RF回路208は、任意選択的に、近距離通信無線などによる近距離無線通信(near field communication;NFC)フィールドを検出するための、周知の回路を含む。無線通信は、任意選択的に、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用するものであり、それらの規格、プロトコル、及び技術としては、限定するものではないが、移動通信用のグローバルシステム(GSM)、拡張データGSM環境(EDGE)、高速ダウンリンクパケットアクセス(high-speed downlink packet access;HSDPA)、高速アップリンクパケットアクセス(high-speed uplink packet access;HSUPA)、Evolution,Data-Only(EV-DO)、HSPA、HSPA+、2重セルHSPA(Dual-Cell HSPDA;DC-HSPDA)、ロングタームエボリューション(long term evolution;LTE)、近距離通信(NFC)、広帯域符号分割多元接続(wideband code division multiple access;W-CDMA)、符号分割多元接続(CDMA)、時分割多元接続(TDMA)、Bluetooth、Bluetooth Low Energy(BTLE)、Wireless Fidelity(Wi-Fi)(例えば、IEEE802.11a、IEEE802.11b、IEEE802.11g、IEEE802.11n、及び/又はIEEE802.11ac)、ボイスオーバーインターネットプロトコル(VoIP)、Wi-MAX、電子メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol;IMAP)及び/又はポストオフィスプロトコル(post office protocol;POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and Presence Leveraging Extensions;XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions;SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service;IMPS))、及び/又はショートメッセージサービス(Short Message Service;SMS)、あるいは、本文書の出願日現在までに未だ開発されていない通信プロトコルを含めた、任意の他の好適な通信プロトコルが挙げられる。
オーディオ回路210、スピーカ211、及びマイクロフォン213は、ユーザとデバイス200との間のオーディオインタフェースを提供する。オーディオ回路210は、周辺機器インタフェース218からオーディオデータを受信し、そのオーディオデータを電気信号に変換し、その電気信号をスピーカ211に送信する。スピーカ211は、その電気信号を人間の可聴音波に変換する。オーディオ回路210はまた、マイクロフォン213によって音波から変換された、電気信号も受信する。オーディオ回路210は、その電気信号をオーディオデータに変換し、そのオーディオデータを、処理のために周辺機器インタフェース218に送信する。オーディオデータは、周辺機器インタフェース218によって、メモリ202及び/又はRF回路208から取得され、並びに/あるいは、メモリ202及び/又はRF回路208に送信される。一部の実施形態では、オーディオ回路210はまた、ヘッドセットジャック(例えば、図3の312)も含む。このヘッドセットジャックは、オーディオ回路210と、出力専用ヘッドホン、あるいは出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の双方を有するヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器との間の、インタフェースを提供する。
I/Oサブシステム206は、タッチスクリーン212及び他の入力制御デバイス216などの、デバイス200上の入出力周辺機器を、周辺機器インタフェース218に結合する。I/Oサブシステム206は、任意選択的に、ディスプレイコントローラ256、光センサコントローラ258、深度カメラコントローラ269、強度センサコントローラ259、触覚フィードバックコントローラ261、及び、他の入力デバイス若しくは制御デバイス用の1つ以上の入力コントローラ260を含む。1つ以上の入力コントローラ260は、他の入力制御デバイス216との間で、電気信号を受信/送信する。他の入力制御デバイス216は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。一部の代替的実施形態では、入力コントローラ(単数又は複数)260は、任意選択的に、キーボード、赤外線ポート、USBポート、及び、マウスなどのポインタデバイスのうちのいずれかに結合される(又は、いずれにも結合されない)。1つ以上のボタン(例えば、図3の308)は、任意選択的に、スピーカ211及び/又はマイクロフォン213の音量調節のための、アップ/ダウンボタンを含む。1つ以上のボタンは、任意選択的に、プッシュボタン(例えば、図3の306)を含む。
全体が参照により本明細書に組み込まれる、2005年12月23日出願の米国特許第7,657,849号である米国特許出願第11/322,549号、「Unlocking a Device by Performing Gestures on an Unlock Image」で説明されているように、このプッシュボタンの素早い押圧により、任意選択的に、タッチスクリーン212のロックが解除され、又は、任意選択的に、タッチスクリーン上のジェスチャを使用してデバイスをロック解除するプロセスが開始される。プッシュボタン(例えば、306)をより長く押圧することにより、任意選択的に、デバイス200の電源がオン又はオフにされる。これらのボタンのうちの1つ以上の機能は、任意選択的に、ユーザカスタマイズ可能である。タッチスクリーン212は、仮想ボタン若しくはソフトボタン、及び1つ以上のソフトキーボードを実装するために使用される。
タッチ感知ディスプレイ212は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ256は、タッチスクリーン212との間で、電気信号を受信及び/又は送信する。タッチスクリーン212は、ユーザに視覚出力を表示する。この視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(総称して「グラフィック」)を任意選択的に含む。一部の実施形態では、これらの視覚出力の一部又は全ては、任意選択的に、ユーザインタフェースオブジェクトに対応する。
タッチスクリーン212は、触覚及び/又は触知の接触に基づいてユーザからの入力を受け入れる、タッチ感知面、センサ、あるいはセンサのセットを有する。タッチスクリーン212及びディスプレイコントローラ256は(メモリ202内のあらゆる関連モジュール及び/又は命令セットと共に)、タッチスクリーン212上での接触(及び、その接触のあらゆる移動又は中断)を検出し、その検出された接触を、タッチスクリーン212上に表示されているユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。例示的実施形態では、タッチスクリーン212とユーザとの接触点は、ユーザの指に対応する。
タッチスクリーン212は、任意選択的に、LCD(liquid crystal display;液晶ディスプレイ)技術、LPD(light emitting polymer display;発光ポリマーディスプレイ)技術、又はLED(light emitting diode;発光ダイオード)技術を使用するものであるが、他の実施形態では、他のディスプレイ技術が使用される。タッチスクリーン212及びディスプレイコントローラ256は、任意選択的に、現在既知の若しくは今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触及びその接触のあらゆる移動若しくは中断を検出するものであり、それらのタッチ感知技術としては、限定するものではないが、静電容量技術、抵抗性技術、赤外線技術、及び表面音響波技術、並びに、タッチスクリーン212との1つ以上の接触点を判定するための他の近接センサアレイ又は他の要素が挙げられる。例示的実施形態では、Apple Inc.(Cupertino,California)によるiPhone(登録商標)及びiPod Touch(登録商標)において見られるような、投影型相互静電容量感知技術が使用される。
タッチスクリーン212の一部の実施形態におけるタッチ感知ディスプレイは、任意選択的に、米国特許第6,323,846号(Westermanら)、同第6,570,557号(Westermanら)、及び/又は同第6,677,932号(Westerman)、並びに/あるいは米国特許出願公開第2002/0015024(A1)号で説明されている、マルチタッチ感知タッチパッドに類似しており、これらの文献のそれぞれは、全体が参照により本明細書に組み込まれる。しかしながら、タッチスクリーン212は、デバイス200からの視覚出力を表示するものであるが、タッチ感知タッチパッドは、視覚出力を提供しない。
タッチスクリーン212の一部の実施形態におけるタッチ感知ディスプレイは、以下の出願で説明されている:(1)2006年5月2日出願の米国特許出願第11/381,313号、「Multipoint Touch Surface Controller」、(2)2004年5月6日出願の同第10/840,862号、「Multipoint Touchscreen」、(3)2004年7月30日出願の同第10/903,964号、「Gestures For Touch Sensitive Input Devices」、(4)2005年1月31日出願の同第11/048,264号、「Gestures For Touch Sensitive Input Devices」、(5)2005年1月18日出願の同第11/038,590号、「Mode-Based Graphical User Interfaces For Touch Sensitive Input Devices」、(6)2005年9月16日出願の同第11/228,758号、「Virtual Input Device Placement On A Touch Screen User Interface」、(7)2005年9月16日出願の同第11/228,700号、「Operation Of A Computer With A Touch Screen Interface」、(8)2005年9月16日出願の同第11/228,737号、「Activating Virtual Keys Of A Touch-Screen Virtual Keyboard」、及び(9)2006年3月3日出願の同第11/367,749号、「Multi-Functional Hand-Held Device」。これらの出願の全ては、全体が参照により本明細書に組み込まれる。
タッチスクリーン212は、任意選択的に、100dpiを超えるビデオ解像度を有する。一部の実施形態では、このタッチスクリーンは、約160dpiのビデオ解像度を有する。ユーザは、任意選択的に、スタイラス、指などの任意の好適な物体又は付属物を使用して、タッチスクリーン212と接触する。一部の実施形態では、ユーザインタフェースは、主として指に基づく接触及びジェスチャによって機能するように設計されているが、これは、タッチスクリーン上での指の接触面積がより広いことにより、スタイラスに基づく入力よりも精度が低い恐れがある。一部の実施形態では、デバイスは、指に基づく粗い入力を、ユーザによって所望されているアクションを実行するための、正確なポインタ/カーソルの位置又はコマンドに変換する。
一部の実施形態では、タッチスクリーンに加えて、デバイス200は、任意選択的に、特定の機能をアクティブ化又は非アクティブ化するためのタッチパッドを含む。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、そのデバイスのタッチ感知区域である。タッチパッドは、任意選択的に、タッチスクリーン212とは別個のタッチ感知面、又は、タッチスクリーンによって形成されているタッチ感知面の拡張部である。
デバイス200はまた、様々な構成要素に電力を供給するための、電力システム262も含む。電力システム262は、任意選択的に、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びに、ポータブルデバイス内での電力の生成、管理、及び分配に関連付けられている任意の他の構成要素を含む。
デバイス200はまた、任意選択的に、1つ以上の光センサ264も含む。図2Aは、I/Oサブシステム206内の光センサコントローラ258に結合されている、光センサを示す。光センサ264は、電荷結合素子(charge-coupled device;CCD)又は相補的金属酸化物半導体(complementary metal-oxide semiconductor;CMOS)フォトトランジスタを含む。光センサ264は、任意選択的に、1つ以上のレンズを通じて投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール243(カメラモジュールとも呼ばれるもの)と連携して、光センサ264は、静止画像又はビデオをキャプチャする。一部の実施形態では、タッチスクリーンディスプレイが、静止画像及び/又はビデオ画像の取得のためのビューファインダとしての使用に関して有効化されるように、光センサは、デバイスの前面のタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置されている。一部の実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見ている間に、そのユーザの画像が、任意選択的に、テレビ会議のために取得されるように、デバイスの前面に光センサが配置されている。一部の実施形態では、光センサ264の位置は、ユーザによって(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更することができ、それにより、単一の光センサ264が、タッチスクリーンディスプレイと共に、テレビ会議並びに静止画像及び/又はビデオ画像の取得の双方のために使用される。
デバイス200はまた、任意選択的に、1つ以上の深度カメラセンサ275も含む。図2Aは、I/Oサブシステム206内の深度カメラコントローラ269に結合されている、深度カメラセンサを示す。深度カメラセンサ275は、環境からデータを受信して、視点(例えば、深度カメラセンサ)からのシーン内の対象物(例えば、顔面)の3次元モデルを作成する。一部の実施形態では、撮像モジュール243(カメラモジュールとも呼ばれるもの)と連携して、深度カメラセンサ275は、任意選択的に、撮像モジュール243によってキャプチャされた画像の種々の部分の深度マップを決定するために使用される。一部の実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見ている間に、深度情報を有するユーザの画像が、任意選択的に、テレビ会議のために取得されるように、及び、深度マップデータを有する自撮り画像をキャプチャするように、デバイス200の前面に深度カメラセンサが配置されている。一部の実施形態では、深度カメラセンサ275は、デバイスの背面に、あるいはデバイス200の背面及び前面に配置されている。一部の実施形態では、深度カメラセンサ275の位置は、ユーザによって(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更することができ、それにより、深度カメラセンサ275は、タッチスクリーンディスプレイと共に、テレビ会議並びに静止画像及び/又はビデオ画像の取得の双方のために使用される。
一部の実施形態では、深度マップ(例えば、深度マップ画像)は、視点(例えば、カメラ、光センサ、深度カメラセンサ)からのシーン内の対象物の距離に関する情報(例えば、値)を含む。深度マップの一実施形態では、各深度ピクセルは、その対応する2次元ピクセルが位置している、その視点のZ軸における位置を定義するものである。一部の実施形態では、深度マップはピクセルで構成されており、各ピクセルは、値(例えば、0~255)によって定義される。例えば、値「0」は、「3次元」シーン内で最も遠い場所に位置しているピクセルを表し、値「255」は、その「3次元」シーン内で視点(例えば、カメラ、光センサ、深度カメラセンサ)の最も近くに位置しているピクセルを表す。他の実施形態では、深度マップは、シーン内の対象物と視点の平面との間の距離を表す。一部の実施形態では、深度マップは、深度カメラから見た、関心対象物の様々な特徴部の相対深度(例えば、ユーザの顔面の目、鼻、口、耳の相対深度)に関する情報を含む。一部の実施形態では、深度マップは、z方向での関心対象物の輪郭をデバイスが決定することを可能にする、情報を含む。
デバイス200はまた、任意選択的に、1つ以上の接触強度センサ265も含む。図2Aは、I/Oサブシステム206内の強度センサコントローラ259に結合されている、接触強度センサを示す。接触強度センサ265は、任意選択的に、1つ以上のピエゾ抵抗歪みゲージ、容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は、圧力)を測定するために使用されるセンサ)を含む。接触強度センサ265は、環境からの接触強度情報(例えば、圧力情報、又は圧力情報の代用情報)を受信する。一部の実施形態では、少なくとも1つの接触強度センサは、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)と共に、又は近接して配置されている。一部の実施形態では、少なくとも1つの接触強度センサは、デバイス200の前面に配置されているタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置されている。
デバイス200はまた、任意選択的に、1つ以上の近接センサ266も含む。図2Aは、周辺機器インタフェース218に結合されている、近接センサ266を示す。あるいは、近接センサ266は、任意選択的に、I/Oサブシステム206内の入力コントローラ260に結合される。近接センサ266は、任意選択的に、米国特許出願第11/241,839号、「Proximity Detector In Handheld Device」、同第11/240,788号、「Proximity Detector In Handheld Device」、同第11/620,702号、「Using Ambient Light Sensor To Augment Proximity Sensor Output」、同第11/586,862号、「Automated Response To And Sensing Of User Activity In Portable Devices」、及び同第11/638,251号、「Methods And Systems For Automatic Configuration Of Peripherals」で説明されるように機能するものであり、これらの出願は、全体が参照により本明細書に組み込まれる。一部の実施形態では、近接センサは、この多機能デバイスがユーザの耳の近くに配置されている場合に(例えば、ユーザが電話で通話している場合に)、タッチスクリーン212をオフにして無効化する。
デバイス200はまた、任意選択的に、1つ以上の触知出力生成器267も含む。図2Aは、I/Oサブシステム206内の触覚フィードバックコントローラ261に結合されている、触知出力生成器を示す。触知出力生成器267は、任意選択的に、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又は、モータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、電気信号をデバイス上の触知出力に変換する構成要素)などの、エネルギーを直線運動に変換する電気機械デバイスを含む。接触強度センサ265は、触覚フィードバックモジュール233からの触知フィードバック生成命令を受信して、デバイス200のユーザによって感知することが可能な触知出力を、デバイス200上に生成する。一部の実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)と共に、又は近接して配置されており、任意選択的に、タッチ感知面を垂直方向に(例えば、デバイス200の表面内/表面外に)、又は横方向に(例えば、デバイス200の表面と同一平面内で前後に)移動させることによって、触知出力を生成する。一部の実施形態では、少なくとも1つの触知出力生成器センサが、デバイス200の前面に配置されているタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置されている。
デバイス200はまた、任意選択的に、1つ以上の加速度計268も含む。図2Aは、周辺機器インタフェース218に結合されている、加速度計268を示す。あるいは、加速度計268は、任意選択的に、I/Oサブシステム206内の入力コントローラ260に結合される。加速度計268は、任意選択的に、米国特許出願公開第20050190059号、「Acceleration-based Theft Detection System for Portable Electronic Devices」、及び同第20060017692号、「Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer」で説明されるように機能するものであり、これらの文献の双方は、全体が参照により本明細書に組み込まれる。一部の実施形態では、情報は、1つ以上の加速度計から受信されたデータの分析に基づいて、縦置き表示又は横置き表示で、タッチスクリーンディスプレイ上に表示される。デバイス200は、任意選択的に、加速度計(単数又は複数)268に加えて、デバイス200の位置及び向き(例えば、縦置き表示又は横置き表示)に関する情報を取得するための、磁力計(図示せず)及びGPS(又は、GLONASS若しくは他のグローバルナビゲーションシステム)受信機を含む。
一部の実施形態では、メモリ202に記憶されているソフトウェア構成要素は、オペレーティングシステム226、通信モジュール(又は、命令セット)228、接触/動きモジュール(又は、命令セット)230、グラフィックモジュール(又は、命令セット)232、テキスト入力モジュール(又は、命令セット)234、全地球測位システム(Global Positioning System;GPS)モジュール(又は、命令セット)235、デジタルアシスタントクライアントモジュール229、及びアプリケーション(又は、命令セット)236を含む。更には、メモリ202は、ユーザデータ及びモデル231などの、データ及びモデルを記憶している。更には、一部の実施形態では、図2A及び図4に示されるように、メモリ202(図2A)又はメモリ470(図4)は、デバイス/グローバル内部状態257を記憶している。デバイス/グローバル内部状態257は、以下のうちの1つ以上を含む:現在アクティブ状態のアプリケーションがある場合、いずれのアプリケーションが現在アクティブであるかを示す、アクティブアプリケーション状態、いずれのアプリケーション、ビュー、又は他の情報が、タッチスクリーンディスプレイ212の様々な領域を占有しているかを示す、ディスプレイ状態、デバイスの様々なセンサ及び入力制御デバイス216から取得された情報を含む、センサ状態、並びに、デバイスの位置及び/又は姿勢に関する位置情報。
オペレーティングシステム226(例えば、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、iOS(登録商標)、WINDOWS(登録商標)、又は、VxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための、様々なソフトウェア構成要素並びに/あるいはドライバを含み、様々なハードウェア構成要素及びソフトウェア構成要素間の通信を容易にする。
通信モジュール228は、1つ以上の外部ポート224を介した他のデバイスとの通信を容易にし、また、RF回路208及び/又は外部ポート224によって受信されたデータを処理するための様々なソフトウェア構成要素も含む。外部ポート224(例えば、ユニバーサルシリアルバス(Universal Serial Bus)(USB)、FIREWIRE(登録商標)など)は、他のデバイスに直接結合するように、又はネットワーク(例えば、インターネット、無線LANなど)を介して間接的に結合するように適合されている。一部の実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイス上で使用される30ピンコネクタと同じ若しくは同様のマルチピン(例えば、30ピン)コネクタ、及び/又は互換性のあるマルチピン(例えば、30ピン)コネクタである。
接触/動きモジュール230は、任意選択的に、(ディスプレイコントローラ256と連携して)タッチスクリーン212との接触、及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール230は、接触が生じたか否かを判定すること(例えば、指を下ろすイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代替)を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が中止したか否かを判定すること(例えば、指を上げるイベント又は接触の中断を検出すること)などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触/動きモジュール230は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。一部の実施形態では、接触/動きモジュール230及びディスプレイコントローラ256は、タッチパッド上の接触を検出する。
一部の実施形態では、接触/動きモジュール230は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアイコン上で「クリック」したか否かを判定するための)、1つ以上の強度閾値のセットを使用する。一部の実施形態では、少なくとも強度閾値のサブセットは、ソフトウェアパラメータに従って決定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって決定されるものではなく、デバイス200の物理ハードウェアを変更することなく調節することができる)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、そのトラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく、広範囲の既定の閾値のうちのいずれかに設定することができる。更には、一部の実装形態では、デバイスのユーザには、(例えば、個々の強度閾値を調節することによって、及び/又は、システムレベルのクリック「強度」パラメータを使用して、一度に複数の強度閾値を調節することによって)強度閾値のセットのうちの1つ以上を調節するための、ソフトウェア設定が提供される。
接触/動きモジュール230は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上での異なるジェスチャは、異なる接触パターン(例えば、検出された接触の、異なる動き、タイミング、及び/又は強度)を有する。それゆえ、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出されるものである。例えば、指のタップジェスチャを検出することは、(例えば、アイコンの位置での)指を下ろすイベントを検出し、続いて、その指を下ろすイベントと同じ位置(又は、実質的に同じ位置)で指を上げる(リフトオフ)イベントを検出することを含む。別の例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、指をドラッグする1つ以上のイベントを検出し、その後、続いて指を上げる(リフトオフ)イベントを検出することを含む。
グラフィックモジュール232は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚属性)を変更するための構成要素を含めた、タッチスクリーン212又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書で使用するとき、用語「グラフィック」は、ユーザに対して表示することが可能な任意のオブジェクトを含み、それらのオブジェクトとしては、限定するものではないが、テキスト、ウェブページ、アイコン(ソフトキーを含めた、ユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられる。
一部の実施形態では、グラフィックモジュール232は、使用されることになるグラフィックを表すデータを記憶している。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール232は、アプリケーションなどから、必要に応じて座標データ及び他のグラフィック属性データと共に、表示されることになるグラフィックを指定する1つ以上のコードを受信し、次いで、ディスプレイコントローラ256に出力するためのスクリーン画像データを生成する。
触覚フィードバックモジュール233は、デバイス200とのユーザ対話に応答して、デバイス200上の1つ以上の場所で触知出力を生成するために、触知出力生成器(単数又は複数)267によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
テキスト入力モジュール234は、任意選択的にグラフィックモジュール232の構成要素であり、様々なアプリケーション(例えば、連絡先237、電子メール240、IM241、ブラウザ247、及び、テキスト入力を必要とする任意の他のアプリケーション)においてテキストを入力するための、ソフトキーボードを提供する。
GPSモジュール235は、デバイスの位置を判定し、この情報を様々なアプリケーションで使用するために(例えば、位置に基づくダイヤル発呼で使用するために電話238へ、写真/ビデオのメタデータとしてカメラ243へ、並びに、天気ウィジェット、地域のイエローページウィジェット、及び地図/ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ)提供する。
デジタルアシスタントクライアントモジュール229は、デジタルアシスタントのクライアント側機能を提供するための、様々なクライアント側デジタルアシスタント命令を含む。例えば、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なユーザインタフェース(例えば、マイクロフォン213、加速度計(単数又は複数)268、タッチ感知ディスプレイシステム212、光センサ(単数又は複数)229、他の入力制御デバイス216など)を通じて、音声入力(例えば、発話入力)、テキスト入力、タッチ入力、及び/又はジェスチャ入力を受け入れることが可能である。デジタルアシスタントクライアントモジュール229はまた、ポータブル多機能デバイス200の様々な出力インタフェース(例えば、スピーカ211、タッチ感知ディスプレイシステム212、触知出力生成器(単数又は複数)267など)を通じて、オーディオ(例えば、発話出力)、視覚、及び/又は触知の形式で出力を提供することも可能である。例えば、出力は、音声、サウンド、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び/又は上記のうちの2つ以上の組み合わせとして提供される。動作の間に、デジタルアシスタントクライアントモジュール229は、RF回路208を使用して、DAサーバ106と通信する。
ユーザデータ及びモデル231は、デジタルアシスタントのクライアント側機能を提供するための、ユーザに関連付けられた様々なデータ(例えば、ユーザ固有語彙データ、ユーザ選好データ、ユーザ指定の名前の発音、ユーザの電子アドレス帳からのデータ、to doリスト、買い物リストなど)を含む。更には、ユーザデータ及びモデル231は、ユーザ入力を処理して、ユーザ意図を決定するための、様々なモデル(例えば、発話認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデルなど)を含む。
一部の実施例では、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なセンサ、サブシステム、及び周辺機器を利用して、ポータブル多機能デバイス200の周囲環境から追加情報を収集することにより、ユーザ、現在のユーザ対話、及び/又は現在のユーザ入力に関連付けられる、コンテキストを確立する。一部の実施例では、デジタルアシスタントクライアントモジュール229は、ユーザの意図の推測を支援するために、ユーザ入力と共に、コンテキスト情報又はそのサブセットを、DAサーバ106に提供する。一部の実施例では、デジタルアシスタントはまた、どのようにしてユーザへの出力を準備及び配信するかを決定するためにも、コンテキスト情報を使用する。コンテキスト情報は、コンテキストデータと称される。
一部の実施例では、ユーザ入力を伴うコンテキスト情報は、センサ情報、例えば、照明、周囲ノイズ、周囲温度、周囲環境の画像又は動画などを含む。一部の実施例では、コンテキスト情報はまた、デバイスの物理状態、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速度、加速度、動きパターン、セルラー信号強度なども含み得る。一部の実施例では、DAサーバ106のソフトウェア状態、例えば、稼働中のプロセス、インストール済みのプログラム、過去及び現在のネットワークアクティビティ、バックグラウンドサービス、エラーログ、リソース使用量などに関する情報、並びにポータブル多機能デバイス200のソフトウェア状態に関する情報が、ユーザ入力に関連付けられたコンテキスト情報として、DAサーバ106に提供される。
一部の実施例では、デジタルアシスタントクライアントモジュール229は、DAサーバ106からの要求に応答して、ポータブル多機能デバイス200上に記憶されている情報(例えば、ユーザデータ231)を選択的に提供する。一部の実施例では、デジタルアシスタントクライアントモジュール229はまた、DAサーバ106による要求に応じて、自然言語ダイアログ又は他のユーザインタフェースを介して、ユーザから追加入力も引き出す。デジタルアシスタントクライアントモジュール229は、ユーザ要求内に表現されているユーザの意図の、意図推論及び/又は遂行の際に、DAサーバ106を支援するために、その追加入力をDAサーバ106に渡す。
より詳細なデジタルアシスタントの説明は、図7A~図7Cを参照して以下で説明される。デジタルアシスタントクライアントモジュール229は、以下で説明されるデジタルアシスタントモジュール726の任意数のサブモジュールを含み得る点を認識されたい。
アプリケーション236は、任意選択的に、以下のモジュール(又は、命令セット)、又はそれらのサブセット若しくはスーパーセットを含む。
●連絡先モジュール237(アドレス帳又は連絡先リストと呼ばれる場合もある)、
●電話モジュール238、
●テレビ会議モジュール239、
●電子メールクライアントモジュール240、
●インスタントメッセージング(Instant messaging;IM)モジュール241、
●トレーニングサポートモジュール242、
●静止画像及び/又はビデオ画像用のカメラモジュール243、
●画像管理モジュール244、
●ビデオプレーヤモジュール、
●ミュージックプレーヤモジュール、
●ブラウザモジュール247、
●カレンダーモジュール248、
●天気ウィジェット249-1、株価ウィジェット249-2、計算機ウィジェット249-3、アラーム時計ウィジェット249-4、辞書ウィジェット249-5、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット249-6のうちの1つ以上を任意選択的に含む、ウィジェットモジュール249、
●ユーザ作成ウィジェット249-6を作成するためのウィジェット作成モジュール250、
●検索モジュール251、
●ビデオプレーヤモジュール及びミュージックプレーヤモジュールを統合した、ビデオ及びミュージックプレーヤモジュール252、
●メモモジュール253、
●地図モジュール254、及び/又は
●オンラインビデオモジュール255。
メモリ202内に任意選択的に記憶される他のアプリケーション236の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、連絡先モジュール237は、(例えば、メモリ202又はメモリ470内の連絡先モジュール237のアプリケーション内部状態292内に記憶されている)アドレス帳又は連絡先リストを管理するために、任意選択的に使用され、この管理には、アドレス帳に名前(単数又は複数)を追加すること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前に関連付けること、画像を名前に関連付けること、名前を分類して並べ替えること、電話238、テレビ会議モジュール239、電子メール240、又はIM241による通信を開始及び/又は容易にするために、電話番号又は電子メールアドレスを提供することなどが含まれる。
RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、電話モジュール238は、電話番号に対応する文字列を入力し、連絡先モジュール237内の1つ以上の電話番号にアクセスし、入力された電話番号を修正し、対応の電話番号をダイヤルし、会話を遂行し、会話が完了した際に接続を切るか又は電話を切るために、任意選択的に使用される。上述のように、無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを任意選択的に使用する。
RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、光センサ264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、連絡先モジュール237、及び電話モジュール238と連携して、テレビ会議モジュール239は、ユーザの命令に従って、ユーザと1人以上の他の参加者との間のテレビ会議を開始し、遂行し、終了する、実行可能命令を含む。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、電子メールクライアントモジュール240は、ユーザの命令に応答して、電子メールを作成し、送信し、受信し、管理する、実行可能命令を含む。画像管理モジュール244と連携して、電子メールクライアントモジュール240は、カメラモジュール243で撮影された静止画像又はビデオ画像を有する、電子メールの作成及び送信を、非常に容易にする。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、インスタントメッセージングモジュール241は、インスタントメッセージに対応する文字列を入力し、入力済みの文字を修正し、対応のインスタントメッセージを(例えば、電話ベースのインスタントメッセージ用のショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service;MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージ用のXMPP、SIMPLE、若しくはIMPSを使用して)送信し、インスタントメッセージを受信し、受信されたインスタントメッセージを見る、実行可能命令を含む。一部の実施形態では、送信及び/又は受信されるインスタントメッセージは、任意選択的に、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service;EMS)でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び/又は他の添付ファイルを含む。本明細書で使用するとき、「インスタントメッセージング」とは、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)の双方を指す。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、地図モジュール254、及びミュージックプレーヤモジュールと連携して、トレーニングサポートモジュール242は、(例えば、時間、距離、及び/又はカロリー消費目標を有する)トレーニングを作成し、トレーニングセンサ(スポーツデバイス)と通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニング用の音楽を選択して再生し、トレーニングデータを表示し、記憶し、送信する、実行可能命令を含む。
タッチスクリーン212、ディスプレイコントローラ256、光センサ(単数又は複数)264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、及び画像管理モジュール244と連携して、カメラモジュール243は、静止画像又は(ビデオストリームを含む)ビデオをキャプチャし、それらをメモリ202内に記憶し、静止画像又はビデオの特性を修正し、あるいはメモリ202から静止画像又はビデオを削除する、実行可能命令を含む。
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びカメラモジュール243と連携して、画像管理モジュール244は、静止画像及び/又はビデオ画像を配列し、修正(例えば、編集)若しくは他の方式で操作し、ラベルを付け、削除し、(例えば、デジタルスライドショー又はアルバムとして)提示し、記憶する、実行可能命令を含む。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ブラウザモジュール247は、ウェブページ又はその諸部分、並びにウェブページにリンクされた添付ファイル及び他のファイルを検索し、リンクし、受信し、表示することを含めた、ユーザの命令に従ってインターネットをブラウズする、実行可能命令を含む。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、カレンダーモジュール248は、ユーザの命令に従って、カレンダー、及びカレンダーに関連付けられるデータ(例えば、カレンダー項目、to doリストなど)を作成し、表示し、修正し、記憶する、実行可能命令を含む。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びブラウザモジュール247と連携して、ウィジェットモジュール249は、ユーザによって任意選択的にダウンロードされて使用されるミニアプリケーション(例えば、天気ウィジェット249-1、株価ウィジェット249-2、計算機ウィジェット249-3、アラーム時計ウィジェット249-4、及び辞書ウィジェット249-5)、又は、ユーザによって作成されるミニアプリケーション(例えば、ユーザ作成ウィジェット249-6)である。一部の実施形態では、ウィジェットは、HTML(Hypertext Markup Language;ハイパーテキストマークアップ言語)ファイル、CSS(Cascading Style Sheets;カスケーディングスタイルシート)ファイル、及びJavaScript(登録商標)ファイルを含む。一部の実施形態では、ウィジェットは、XML(Extensible Markup Language;拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!(登録商標)ウィジェット)を含む。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びブラウザモジュール247と連携して、ウィジェット作成モジュール250は、任意選択的に、ウィジェットを作成する(例えば、ウェブページのユーザ指定箇所をウィジェットに変える)ために、ユーザによって使用される。
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、検索モジュール251は、ユーザの命令に従って、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索用語)に一致する、メモリ202内のテキスト、音楽、サウンド、画像、ビデオ、及び/又は他のファイルを検索する、実行可能命令を含む。
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、及びブラウザモジュール247と連携して、ビデオ及びミュージックプレーヤモジュール252は、MP3ファイル又はAACファイルなどの1つ以上のファイル形式で記憶された、録音済みの音楽ファイル又は他のサウンドファイルを、ユーザがダウンロード及び再生することを可能にする、実行可能命令と、ビデオを(例えば、タッチスクリーン212上に、又は外部ポート224を介して接続されている外部のディスプレイ上に)表示、提示、又は他の方式で再生する、実行可能命令とを含む。一部の実施形態では、デバイス200は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を含む。
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、メモモジュール253は、ユーザの命令に従って、メモ、to doリストなどを作成及び管理する、実行可能命令を含む。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、及びブラウザモジュール247と連携して、地図モジュール254は、任意選択的に、ユーザの命令に従って、地図、及び地図に関連付けられるデータ(例えば、運転方向、特定の場所若しくはその付近の、店舗及び他の関心対象地点についてのデータ、並びに位置に基づく他のデータ)を受信し、表示し、変更し、記憶するために、使用される。
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、オンラインビデオモジュール255は、ユーザが、特定のオンラインビデオにアクセスし、閲覧し、(例えば、ストリーミング及び/又はダウンロードによって)受信し、(例えば、タッチスクリーン上で、又は外部ポート224を介して接続されている外部のディスプレイ上で)再生し、その特定のオンラインビデオへのリンクを含む電子メールを送信し、また他の方式で、H.264などの1つ以上のファイル形式でオンラインビデオを管理することを可能にする、命令を含む。一部の実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール240ではなく、インスタントメッセージングモジュール241が使用される。オンラインビデオアプリケーションの更なる説明は、2007年6月20日出願の米国特許仮出願第60/936,562号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」、及び2007年12月31日出願の米国特許出願第11/968,067号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」に見出すことができ、これらの出願の内容は、全体が参照により本明細書に組み込まれる。
上記で特定されているモジュール及びアプリケーションのそれぞれは、上述の1つ以上の機能、及び本出願で説明される方法(例えば、コンピュータにより実施される方法及び本明細書で説明される他の情報処理方法)を実行する、実行可能命令のセットに対応する。これらのモジュール(例えば、命令セット)は、別個のソフトウェアプログラム、プロシージャ、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、任意選択的に、これらのモジュールの様々なサブセットが組み合わされるか、又は他の方式で再編成される。例えば、ビデオプレーヤモジュールは、任意選択的に、ミュージックプレーヤモジュールと共に単一のモジュール(例えば、図2Aのビデオ及びミュージックプレーヤモジュール252)へと組み合わされる。一部の実施形態では、メモリ202は、任意選択的に、上記で特定されているモジュール及びデータ構造のサブセットを記憶している。更には、メモリ202は、任意選択的に、上述されていない追加的なモジュール及びデータ構造を記憶している。
一部の実施形態では、デバイス200は、そのデバイス上での既定の機能のセットの動作が、専らタッチスクリーン及び/又はタッチパッドを介して実行される、デバイスである。デバイス200の動作に関する主要な入力制御デバイスとして、タッチスクリーン及び/又はタッチパッドを使用することによって、デバイス200上の物理的な入力制御デバイス(プッシュボタン、ダイヤルなど)の数が、任意選択的に削減される。
専らタッチスクリーン及び/又はタッチパッドを介して実行される、既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。一部の実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス200上に表示されている任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへと、デバイス200をナビゲートする。そのような実施形態では、「メニューボタン」は、タッチパッドを使用して実装される。一部の他の実施形態では、メニューボタンは、タッチパッドではなく、物理プッシュボタン又は他の物理入力制御デバイスである。
図2Bは、一部の実施形態による、イベント処理のための例示的な構成要素を示すブロック図である。一部の実施形態では、メモリ202(図2A)又はメモリ470(図4)は、イベントソータ270(例えば、オペレーティングシステム226内)及び対応のアプリケーション236-1(例えば、前述のアプリケーション237~251、255、480~490のうちのいずれか)を含む。
イベントソータ270は、イベント情報を受信して、そのイベント情報の配信先となるアプリケーション236-1、及びアプリケーション236-1のアプリケーションビュー291を決定する。イベントソータ270は、イベントモニタ271及びイベントディスパッチャモジュール274を含む。一部の実施形態では、アプリケーション236-1は、そのアプリケーションがアクティブであるか又は実行中の場合にタッチ感知ディスプレイ212上に表示される、現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態292を含む。一部の実施形態では、いずれのアプリケーション(単数又は複数)が現在アクティブであるかを判定するために、デバイス/グローバル内部状態257が、イベントソータ270によって使用され、アプリケーション内部状態292は、イベント情報の配信先となるアプリケーションビュー291を決定するために、イベントソータ270によって使用される。
一部の実施形態では、アプリケーション内部状態292は、アプリケーション236-1が実行を再開する際に使用される再開情報、アプリケーション236-1によって情報が表示されているか又は表示の準備が整っていることを示すユーザインタフェース状態情報、ユーザがアプリケーション236-1の以前の状態又はビューに戻ることを可能にするための状態キュー、及び、ユーザが以前に行ったアクションのリドゥ/アンドゥキューのうちの1つ以上などの、追加情報を含む。
イベントモニタ271は、周辺機器インタフェース218からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ212上でのユーザのタッチ)についての情報を含む。周辺機器インタフェース218は、I/Oサブシステム206から、あるいは、近接センサ266、加速度計(単数又は複数)268、及び/又は(オーディオ回路210を介して)マイクロフォン213などのセンサから受信する情報を送信する。周辺機器インタフェース218がI/Oサブシステム206から受信する情報は、タッチ感知ディスプレイ212又はタッチ感知面からの情報を含む。
一部の実施形態では、イベントモニタ271は、所定の間隔で、周辺機器インタフェース218に要求を送信する。これに応答して、周辺機器インタフェース218は、イベント情報を送信する。他の実施形態では、周辺機器インタフェース218は、重要なイベント(例えば、所定のノイズ閾値を上回り、かつ/又は所定の持続時間を超えた入力を受信すること)が存在する場合にのみ、イベント情報を送信する。
一部の実施形態では、イベントソータ270はまた、ヒットビュー判定モジュール272及び/又はアクティブイベント認識部判定モジュール273も含む。
ヒットビュー判定モジュール272は、タッチ感知ディスプレイ212が2つ以上のビューを表示する場合に、サブイベントが1つ以上のビュー内のいずれの場所で発生したかを判定するための、ソフトウェアプロシージャを提供する。ビューは、ユーザがディスプレイ上で見ることが可能な、コントローラ及び他の要素で構成されている。
アプリケーションに関連付けられているユーザインタフェースの別の態様は、本明細書ではアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合がある、ビューのセットであり、それらの中で、情報が表示され、タッチに基づくジェスチャが実施される。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、任意選択的に、そのアプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出される最下位レベルのビューは、任意選択的に、ヒットビューと呼ばれ、また、適切な入力として認識されるイベントのセットは、任意選択的に、タッチに基づくジェスチャを開始する最初のタッチのヒットビューに少なくとも部分的に基づいて判定される。
ヒットビュー判定モジュール272は、タッチに基づくジェスチャのサブイベントに関連する情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール272は、そのサブイベントを処理するべき階層内の最下位のビューとしての、ヒットビューを特定する。殆どの状況では、このヒットビューは、開始サブイベント(例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける、最初のサブイベント)が発生する、最下位レベルのビューである。ヒットビューが、ヒットビュー判定モジュール272によって特定されると、そのヒットビューは、典型的には、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連する、全てのサブイベントを受信する。
アクティブイベント認識部判定モジュール273は、ビュー階層内のいずれのビュー(単数又は複数)が特定のサブイベントのシーケンスを受信するべきかを判定する。一部の実施形態では、アクティブイベント認識部判定モジュール273は、そのヒットビューのみが特定のサブイベントのシーケンスを受信するべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール273は、サブイベントの物理的な場所を含む全てのビューが、アクティブに関与するビューであると判定することにより、アクティブに関与する全てのビューが、特定のサブイベントのシーケンスを受信するべきであると判定する。他の実施形態では、タッチサブイベントが、特定の1つのビューに関連付けられている区域に完全に限定された場合であっても、その階層内の上位のビューは、依然として、アクティブに関与するビューとして維持されることになる。
イベントディスパッチャモジュール274は、イベント情報をイベント認識部(例えば、イベント認識部280)に配布する。アクティブイベント認識部判定モジュール273を含む実施形態では、イベントディスパッチャモジュール274は、アクティブイベント認識部判定モジュール273によって判定されたイベント認識部に、イベント情報を配信する。一部の実施形態では、イベントディスパッチャモジュール274は、それぞれのイベント受信部282によって取得されるイベント情報を、イベントキュー内に記憶する。
一部の実施形態では、オペレーティングシステム226が、イベントソータ270を含む。あるいは、アプリケーション236-1が、イベントソータ270を含む。更に他の実施形態では、イベントソータ270は、スタンドアロン型モジュールであるか、又は、接触/動きモジュール230などの、メモリ202内に記憶されている別のモジュールの一部である。
一部の実施形態では、アプリケーション236-1は、そのアプリケーションのユーザインタフェースの各ビュー内で発生するタッチイベントを処理する命令をそれぞれが含む、複数のイベントハンドラ290及び1つ以上のアプリケーションビュー291を含む。アプリケーション236-1の各アプリケーションビュー291は、1つ以上のイベント認識部280を含む。典型的には、それぞれのアプリケーションビュー291は、複数のイベント認識部280を含む。他の実施形態では、イベント認識部280のうちの1つ以上は、ユーザインタフェースキット、又は、アプリケーション236-1が方法及び他の属性を継承する上位レベルのオブジェクトなどの、別個のモジュールの一部である。一部の実施形態では、それぞれのイベントハンドラ290は、データアップデータ276、オブジェクトアップデータ277、GUIアップデータ278、及び/又は、イベントソータ270から受信されるイベントデータ279のうちの1つ以上を含む。イベントハンドラ290は、アプリケーション内部状態292を更新するために、データアップデータ276、オブジェクトアップデータ277、若しくはGUIアップデータ278を利用するか又は呼び出す。あるいは、アプリケーションビュー291のうちの1つ以上は、1つ以上のそれぞれのイベントハンドラ290を含む。また、一部の実施形態では、データアップデータ276、オブジェクトアップデータ277、及びGUIアップデータ278のうちの1つ以上も、それぞれのアプリケーションビュー291内に含まれる。
それぞれのイベント認識部280は、イベントソータ270からイベント情報(例えば、イベントデータ279)を受信して、そのイベント情報からイベントを特定する。イベント認識部280は、イベント受信部282及びイベント比較部284を含む。一部の実施形態では、イベント認識部280はまた、メタデータ283及び(サブイベント配信命令を任意選択的に含む)イベント配信命令288の、少なくともサブセットも含む。
イベント受信部282は、イベントソータ270からイベント情報を受信する。このイベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントによっては、イベント情報はまた、サブイベントの場所などの追加情報も含む。サブイベントがタッチの動きに関係する場合、イベント情報はまた、任意選択的に、そのサブイベントの速度及び方向も含む。一部の実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦置きの向きから横置きの向きへの、又はその逆の)デバイスの回転を含み、そのイベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれるもの)についての、対応する情報を含む。
イベント比較部284は、そのイベント情報を、既定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、あるいはイベント又はサブイベントの状態を判定若しくは更新する。一部の実施形態では、イベント比較部284は、イベント定義286を含む。イベント定義286は、例えば、イベント1(287-1)、イベント2(287-2)などの、イベントの定義(例えば、既定のサブイベントのシーケンス)を含む。一部の実施形態では、イベント(287)内のサブイベントは、例えば、タッチの開始、タッチの終了、タッチの移動、タッチの取り消し、及び複数のタッチを含む。一実施例では、イベント1(287-1)に関する定義は、表示されているオブジェクト上でのダブルタップである。このダブルタップは、例えば、所定の段階に関する表示オブジェクト上での第1のタッチ(タッチの開始)、所定の段階に関する第1のリフトオフ(タッチの終了)、所定の段階に関する表示オブジェクト上での第2のタッチ(タッチの開始)、及び所定の段階に関する第2のリフトオフ(タッチの終了)を含む。別の実施例では、イベント2(287-2)に関する定義は、表示されているオブジェクト上でのドラッグ操作である。このドラッグ操作は、例えば、所定の段階に関する表示オブジェクト上でのタッチ(又は、接触)、タッチ感知ディスプレイ212を横断するタッチの移動、及びタッチのリフトオフ(タッチの終了)を含む。一部の実施形態では、イベントはまた、関連付けられている1つ以上のイベントハンドラ290に関する情報も含む。
一部の実施形態では、イベント定義287は、それぞれのユーザインタフェースオブジェクトに関するイベントの定義を含む。一部の実施形態では、イベント比較部284は、いずれのユーザインタフェースオブジェクトがサブイベントと関連付けられるかを判定するために、ヒットテストを実行する。例えば、タッチ感知ディスプレイ212上に、3つのユーザインタフェースオブジェクトが表示されているアプリケーションビューでは、タッチ感知ディスプレイ212上でタッチが検出されると、イベント比較部284は、3つのユーザインタフェースオブジェクトのうちのいずれが、そのタッチ(サブイベント)と関連付けられているかを判定するために、ヒットテストを実行する。各表示オブジェクトが、対応のイベントハンドラ290に関連付けられている場合には、イベント比較部は、そのヒットテストの結果を使用して、いずれのイベントハンドラ290をアクティブ化するべきかを決定する。例えば、イベント比較部284は、ヒットテストをトリガするサブイベント及びオブジェクトに関連付けられている、イベントハンドラを選択する。
一部の実施形態では、それぞれのイベント(287)に関する定義はまた、サブイベントのシーケンスがイベント認識部のイベントタイプに対応するか否かが判定されるまでイベント情報の配信を遅延させる、遅延アクションを含む。
それぞれのイベント認識部280が、一連のサブイベントがイベント定義286内のイベントのいずれにも一致していないと判定する場合、それぞれのイベント認識部280は、イベント不可能状態、イベント失敗状態、又はイベント終了状態に入り、その後は、このタッチに基づくジェスチャの後続のサブイベントを無視する。この状況では、そのヒットビューに関してアクティブのまま維持されている他のイベント認識部が存在する場合には、そのイベント認識部が、進行中のタッチに基づくジェスチャのサブイベントを、引き続き追跡及び処理する。
一部の実施形態では、それぞれのイベント認識部280は、アクティブに関与しているイベント認識部にイベント配信システムがどのようにサブイベント配信を実行するべきかを示す、構成変更可能な属性、フラグ、及び/又はリストを有する、メタデータ283を含む。一部の実施形態では、メタデータ283は、イベント認識部が互いにどのように対話し得るか、又は、どのように対話が有効化されるかを示す、構成変更可能な属性、フラグ、及び/又はリストを含む。一部の実施形態では、メタデータ283は、サブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるか否かを示す、構成変更可能な属性、フラグ、及び/又はリストを含む。
一部の実施形態では、それぞれのイベント認識部280は、イベントの1つ以上の特定のサブイベントが認識されると、イベントに関連付けられているイベントハンドラ290をアクティブ化する。一部の実施形態では、それぞれのイベント認識部280は、そのイベントに関連付けられているイベント情報を、イベントハンドラ290に配信する。イベントハンドラ290をアクティブ化することは、それぞれのヒットビューにサブイベントを送信する(及び、送信を延期する)こととは異なる。一部の実施形態では、イベント認識部280は、認識されたイベントに関連付けられたフラグをスローし、そのフラグに関連付けられているイベントハンドラ290は、そのフラグをキャッチし、既定のプロセスを実行する。
一部の実施形態では、イベント配信命令288は、イベントハンドラをアクティブ化することなくサブイベントについてのイベント情報を配信する、サブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントに関連付けられているイベントハンドラ、又はアクティブに関与しているビューに、イベント情報を配信する。一連のサブイベント又はアクティブに関与しているビューに関連付けられているイベントハンドラは、そのイベント情報を受信して、所定のプロセスを実行する。
一部の実施形態では、データアップデータ276は、アプリケーション236-1で使用されるデータを作成及び更新する。例えば、データアップデータ276は、連絡先モジュール237で使用される電話番号を更新し、又はビデオプレーヤモジュールで使用されるビデオファイルを記憶する。一部の実施形態では、オブジェクトアップデータ277は、アプリケーション236-1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクトアップデータ277は、新たなユーザインタフェースオブジェクトを作成し、又はユーザインタフェースオブジェクトの位置を更新する。GUIアップデータ278は、GUIを更新する。例えば、GUIアップデータ278は、表示情報を準備して、その表示情報を、タッチ感知ディスプレイ上に表示するためにグラフィックモジュール232に送信する。
一部の実施形態では、イベントハンドラ(単数又は複数)290は、データアップデータ276、オブジェクトアップデータ277、及びGUIアップデータ278を含むか、若しくはそれらに対するアクセスを有する。一部の実施形態では、データアップデータ276、オブジェクトアップデータ277、及びGUIアップデータ278は、それぞれのアプリケーション236-1若しくはアプリケーションビュー291の単一のモジュール内に含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュール内に含まれる。
タッチ感知ディスプレイ上でのユーザのタッチのイベント処理に関する前述の論考はまた、入力デバイスを使用して多機能デバイス200を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではない点が理解されよう。例えば、キーボードの単一又は複数の押圧若しくは保持と任意選択的に連携される、マウスの移動及びマウスボタンの押圧、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示眼球運動の検出、バイオメトリック入力、及び/又は、これらの任意の組み合わせが、認識対象となるイベントを定義する、サブイベントに対応する入力として、任意選択的に利用される。
図3は、一部の実施形態による、タッチスクリーン212を有するポータブル多機能デバイス200を示す。このタッチスクリーンは、任意選択的に、ユーザインタフェース(user interface;UI)300内に1つ以上のグラフィックを表示する。本実施形態、並びに以下で説明される他の実施形態では、ユーザは、例えば、1本以上の指302(図には正確な縮尺では描かれていない)又は1つ以上のスタイラス303(図には正確な縮尺では描かれていない)を使用して、グラフィック上でジェスチャを実施することによって、それらのグラフィックのうちの1つ以上を選択することが可能となる。一部の実施形態では、1つ以上のグラフィックの選択は、ユーザが、その1つ以上のグラフィックとの接触を中断する場合に実施される。一部の実施形態では、ジェスチャは、任意選択的に、1回以上のタップ、1回以上の(左から右へ、右から左へ、上方向へ、及び/又は下方向への)スワイプ、及び/又は、デバイス200と接触した指の(右から左へ、左から右へ、上方向へ、及び/又は下方向への)ローリングを含む。一部の実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
デバイス200はまた、任意選択的に、「ホーム」又はメニューボタン304などの、1つ以上の物理ボタンも含む。前述のように、メニューボタン304は、デバイス200上で任意選択的に実行されるアプリケーションのセット内の、任意のアプリケーション236にナビゲートするために、任意選択的に使用される。あるいは、一部の実施形態では、メニューボタンは、タッチスクリーン212上に表示されるGUI内のソフトキーとして実装される。
一部の実施形態では、デバイス200は、タッチスクリーン212、メニューボタン304、デバイスの電源をオン/オフし、デバイスをロックするためのプッシュボタン306、音量調節ボタン(単数又は複数)308、加入者識別モジュール(SIM)カードスロット310、ヘッドセットジャック312、及びドッキング/充電用外部ポート224を含む。プッシュボタン306は、ボタンを押下して、既定の時間間隔にわたってボタンを押下した状態で保持することによって、デバイス上の電力をオン/オフし、ボタンを押下して既定の時間間隔が経過する前にボタンを解放することによって、デバイスをロックし、及び/又は、デバイスをロック解除するか、若しくはロック解除プロセスを開始するために、任意選択的に使用される。代替的実施形態では、デバイス200はまた、マイクロフォン213を介して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力も受け入れる。デバイス200はまた、任意選択的に、タッチスクリーン212上の接触の強度を検出するための1つ以上の接触強度センサ265、及び/又は、デバイス200のユーザに対する触知出力を生成するための1つ以上の触知出力生成器267も含む。
図4は、一部の実施形態による、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス400は、ポータブル型である必要はない。一部の実施形態では、デバイス400は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス400は、典型的には、1つ以上の処理ユニット(CPU)410、1つ以上のネットワーク若しくは他の通信インタフェース460、メモリ470、及び、これらの構成要素を相互接続するための1つ以上の通信バス420を含む。通信バス420は、任意選択的に、システム構成要素間の通信を相互接続及び制御する、(チップセットと呼ばれる場合もある)回路を含む。デバイス400は、典型的にはタッチスクリーンディスプレイである、ディスプレイ440を備える入出力(I/O)インタフェース430を含む。I/Oインタフェース430はまた、任意選択的に、キーボード及び/又はマウス(又は、他のポインティングデバイス)450、並びに、タッチパッド455、デバイス400上に触知出力を生成するための(例えば、図2Aを参照して上述された触知出力生成器267(単数又は複数)と同様の)触知出力生成器457、センサ459(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び/又は、図2Aを参照して上述された接触強度センサ(単数又は複数)265と同様の接触強度センサ)も含む。メモリ470は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含み、任意選択的に、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステート記憶デバイスなどの、不揮発性メモリを含む。メモリ470は、任意選択的に、CPU(単数又は複数)410からリモートに配置される1つ以上の記憶デバイスを含む。一部の実施形態では、メモリ470は、ポータブル多機能デバイス200(図2A)のメモリ202内に記憶されているプログラム、モジュール、及びデータ構造に類似する、プログラム、モジュール、及びデータ構造、若しくはそれらのサブセットを記憶している。更には、メモリ470は、任意選択的に、ポータブル多機能デバイス200のメモリ202内には存在しない、追加的なプログラム、モジュール、及びデータ構造を記憶している。例えば、デバイス400のメモリ470は、任意選択的に、描画モジュール480、プレゼンテーションモジュール482、ワードプロセッシングモジュール484、ウェブサイト作成モジュール486、ディスクオーサリングモジュール488、及び/又はスプレッドシートモジュール490を記憶しているが、その一方で、ポータブル多機能デバイス200(図2A)のメモリ202は、任意選択的に、これらのモジュールを記憶していない。
上記で特定されている図4の要素のそれぞれは、任意選択的に、前述のメモリデバイスのうちの1つ以上に記憶される。上記で特定されているモジュールのそれぞれは、上述の機能を実行する命令セットに対応する。上記で特定されているモジュール又はプログラム(例えば、命令セット)は、任意選択的に、別個のソフトウェアプログラム、プロシージャ、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、任意選択的に、これらのモジュールの様々なサブセットが組み合わされるか、又は他の方式で再編成される。一部の実施形態では、メモリ470は、任意選択的に、上記で特定されているモジュール及びデータ構造のサブセットを記憶している。更には、メモリ470は、任意選択的に、上述されていない追加的なモジュール及びデータ構造を記憶している。
ここで、例えばポータブル多機能デバイス200上に任意選択的に実装される、ユーザインタフェースの実施形態に注意を向ける。
図5Aは、一部の実施形態による、ポータブル多機能デバイス200上のアプリケーションのメニューに関する、例示的なユーザインタフェースを示す。同様のユーザインタフェースが、任意選択的に、デバイス400上に実装される。一部の実施形態では、ユーザインタフェース500は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
セルラー信号及びWi-Fi信号などの無線通信(単数又は複数)に関する信号強度インジケータ(単数又は複数)502、
●時刻504、
●Bluetoothインジケータ505、
●バッテリ状態インジケータ506、
●以下のような、頻繁に使用されるアプリケーション用のアイコンを有するトレイ508、
○不在着信又はボイスメールメッセージの数のインジケータ514を任意選択的に含む、「電話」とラベル付けされた、電話モジュール238用のアイコン516、
○未読電子メールの数のインジケータ510を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール240用のアイコン518、
○「ブラウザ」とラベル付けされた、ブラウザモジュール247用のアイコン520、及び
○「iPod」とラベル付けされた、iPod(Apple Inc.の商標)モジュール252とも称されるビデオ及びミュージックプレーヤモジュール252用のアイコン522、並びに
●以下のような、他のアプリケーション用のアイコン、
○「メッセージ」とラベル付けされた、IMモジュール241用のアイコン524、
○「カレンダー」とラベル付けされた、カレンダーモジュール248用のアイコン526、
○「写真」とラベル付けされた、画像管理モジュール244用のアイコン528、
○「カメラ」とラベル付けされた、カメラモジュール243用のアイコン530、
○「オンラインビデオ」とラベル付けされた、オンラインビデオモジュール255用のアイコン532、
○「株価」とラベル付けされた、株価ウィジェット249-2用のアイコン534、
○「マップ」とラベル付けされた、地図モジュール254用のアイコン536、
○「天気」とラベル付けされた、天気ウィジェット249-1用のアイコン538、
○「時計」とラベル付けされた、アラーム時計ウィジェット249-4用のアイコン540、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール242用のアイコン542、
○「メモ」とラベル付けされた、メモモジュール253用のアイコン544、及び
○デバイス200及びその様々なアプリケーション236に関する設定へのアクセスを提供する、「設定」とラベル付けされた、設定アプリケーション若しくはモジュール用のアイコン546。
図5Aに示されるアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及びミュージックプレーヤモジュール252用のアイコン522は、任意選択的に、「ミュージック」又は「ミュージックプレーヤ」とラベル付けされる。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。一部の実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
図5Bは、ディスプレイ550(例えば、タッチスクリーンディスプレイ212)とは別個のタッチ感知面551(例えば、図4のタブレット又はタッチパッド455)を有するデバイス(例えば、図4のデバイス400)上の、例示的なユーザインタフェースを示す。デバイス400はまた、任意選択的に、タッチ感知面551上の接触の強度を検出するための1つ以上の接触強度センサ(例えば、センサ457のうちの1つ以上)、及び/又は、デバイス400のユーザに対する触知出力を生成するための1つ以上の触知出力生成器459も含む。
以下の実施例のうちの一部は、タッチスクリーンディスプレイ212上での入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、一部の実施形態では、デバイスは、図5Bに示されるように、ディスプレイとは別個のタッチ感知面上での入力を検出する。一部の実施形態では、このタッチ感知面(例えば、図5Bでの551)は、ディスプレイ(例えば、550)上の主軸(例えば、図5Bでの553)に対応する主軸(例えば、図5Bでの552)を有する。これらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの場所に対応する場所での、タッチ感知面551との接触(例えば、図5Bの560及び562)を検出する(例えば、図5Bでは、560は568に対応し、562は570に対応する)。この方式で、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面(例えば、図5Bでの551)上でデバイスによって検出されたユーザ入力(例えば、接触560及び接触562、並びにそれらの移動)が、多機能デバイスのディスプレイ(例えば、図5Bでの550)上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、任意選択的に、本明細書で説明される他のユーザインタフェースに関して使用されることを理解されたい。
更には、以下の実施例は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャ)を参照して説明されるが、一部の実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力、又はスタイラス入力)で置き換えられることを理解されたい。例えば、スワイプジェスチャは、(例えば、接触の代わりの)マウスクリックに続けた、(例えば、接触の移動の代わりの)スワイプの経路に沿ったカーソルの移動によって、任意選択的に置き換えられる。別の例として、タップジェスチャは、(例えば、接触の検出に続いて、その接触の検出を中止する代わりの)カーソルがタップジェスチャの場所の上に配置されている間のマウスクリックによって、任意選択的に置き換えられる。同様に、複数のユーザ入力が同時に検出される場合、複数のコンピュータマウスが任意選択的に同時に使用されるか、又は、マウスと指の接触とが任意選択的に同時に使用されることを理解されたい。
図6Aは、例示的なパーソナル電子デバイス600を示す。デバイス600は、本体602を含む。一部の実施形態では、デバイス600は、デバイス200及びデバイス400に関連して説明された特徴(例えば、図2A~図4)のうちの一部又は全てを含み得る。一部の実施形態では、デバイス600は、以降ではタッチスクリーン604である、タッチ感知ディスプレイスクリーン604を有する。あるいは、又はタッチスクリーン604に加えて、デバイス600は、ディスプレイ及びタッチ感知面を有する。デバイス200及びデバイス400と同様に、一部の実施形態では、タッチスクリーン604(又は、タッチ感知面)は、任意選択的に、加えられている接触(例えば、タッチ)の強度を検出するための、1つ以上の強度センサを含む。タッチスクリーン604(又は、タッチ感知面)の1つ以上の強度センサは、タッチの強度を表す出力データを提供することができる。デバイス600のユーザインタフェースは、タッチの強度に基づいてタッチに応答するが、これは、異なる強度のタッチが、デバイス600上に異なるユーザインタフェース動作を呼び出すことができることを意味する。
タッチ強度を検出して処理するための例示的な技術は、例えば、関連出願である、2013年5月8日出願の「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」と題された国際特許出願第PCT/US2013/040061号(国際公開第2013/169849号として公開)、及び2013年11月11日出願の「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」と題された同第PCT/US2013/069483号(国際公開第2014/105276号として公開)に見出され、これらの文献のそれぞれは、全体が参照により本明細書に組み込まれる。
一部の実施形態では、デバイス600は、1つ以上の入力機構606及び入力機構608を有する。入力機構606及び入力機構608は、含まれる場合には、物理的なものとすることができる。物理入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。一部の実施形態では、デバイス600は、1つ以上のアタッチメント機構を有する。そのようなアタッチメント機構は、含まれる場合には、デバイス600を、例えば、帽子、アイウェア、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計バンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどに取り付けることを可能にし得る。これらのアタッチメント機構は、ユーザによってデバイス600が着用されることを可能にする。
図6Bは、例示的なパーソナル電子デバイス600を示す。一部の実施形態では、デバイス600は、任意選択的に、図2A、図2B、及び図4に関連して説明された構成要素のうちの一部又は全てを含む。デバイス600は、I/Oセクション614を、1つ以上のコンピュータプロセッサ616及びメモリ618と動作可能に結合する、バス612を有する。I/Oセクション614は、タッチ感知構成要素622及び任意選択的に強度センサ624(例えば、接触強度センサ)を有し得る、ディスプレイ604に、任意選択的に接続される。更には、I/Oセクション614は、Wi-Fi、Bluetooth、近距離無線通信(「NFC」)、セルラー、及び/又は他の無線通信技術を使用してアプリケーションデータ並びにオペレーティングシステムデータを受信するための、通信ユニット630と、任意選択的に接続される。デバイス600は、任意選択的に、入力機構606及び/又は入力機構608を含む。例えば、入力機構606は、任意選択的に、回転可能入力デバイス、又は押下可能かつ回転可能な入力デバイスである。一部の実施例では、入力機構608は、任意選択的にボタンである。
一部の実施例では、入力機構608は、任意選択的にマイクロフォンである。パーソナル電子デバイス600は、GPSセンサ632、加速度計634、方向センサ640(例えば、コンパス)、ジャイロスコープ636、動きセンサ638、及び/又はこれらの組み合わせなどの、様々なセンサを任意選択的に含むものであり、それらの全ては、任意選択的に、I/Oセクション614に動作可能に接続される。
パーソナル電子デバイス600のメモリ618は、コンピュータ実行可能命令を記憶するための1つ以上の非一時的コンピュータ可読記憶媒体を含み得るものであり、それらの命令は、1つ以上のコンピュータプロセッサ616によって実行されると、例えば、それらのコンピュータプロセッサに、以下で説明される技術及びプロセスを実行させる。それらのコンピュータ実行可能命令はまた、例えば、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチし、それらの命令を実行することが可能な他のシステムなどの、命令実行システム、装置、又はデバイスによって使用するために、あるいはそれらと関連して使用するために、任意の非一時的コンピュータ可読記憶媒体内に、記憶及び/又は伝送される。一部の実施例では、この記憶媒体は、非一時的コンピュータ可読記憶媒体である。非一時的コンピュータ可読記憶媒体は、限定するものではないが、磁気記憶装置、光学式記憶装置、及び/又は半導体記憶装置を含めた、任意のタイプの記憶装置である。そのような記憶装置の例としては、磁気ディスク、CD、DVD、又はBlu-ray技術に基づく光ディスク、並びに、フラッシュ、ソリッドステートドライブなどの永続的ソリッドステートメモリが挙げられる。パーソナル電子デバイス600は、図6Bの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
本明細書で使用するとき、用語「アフォーダンス」とは、デバイス200、400、600、800、1000、1600、及び/又はデバイス1800(図2A、図4、及び図6A、図6B、図8A~図8AF、図10A~図10AJ、図16A~図16S、図18A~図18D)のディスプレイスクリーン上に任意選択的に表示される、ユーザ対話型グラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及びテキスト(例えば、ハイパーリンク)はそれぞれ、任意選択的に、アフォーダンスを構成する。
本明細書で使用するとき、用語「フォーカスセレクタ」とは、ユーザが対話しているユーザインタフェースの現在の部分を示す、入力要素を指す。カーソル又は他の位置マーカを含む一部の実装形態では、そのカーソルは「フォーカスセレクタ」としての役割を果たすことにより、特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にカーソルが存在している間に、入力(例えば、押圧入力)がタッチ感知面(例えば、図4でのタッチパッド455、又は図5Bでのタッチ感知面551)上で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、図2Aでのタッチ感知ディスプレイシステム212、又は図5Aでのタッチスクリーン212)を含む一部の実装形態では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」としての役割を果たすことにより、入力(例えば、接触による押圧入力)が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の場所で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。一部の実装形態では、フォーカスは、対応するカーソルの移動又はタッチスクリーンディスプレイ上の接触の移動を伴うことなく(例えば、タブキー又は矢印キーを使用して、1つのボタンから別のボタンにフォーカスを移動させることによって)、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動され、これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが呈する具体的な形態とは関わりなく、フォーカスセレクタは、全般的に、ユーザが意図するユーザインタフェースとの対話を(例えば、ユーザが対話することを意図しているユーザインタフェースの要素を、デバイスに示すことによって)伝達するために、ユーザによって制御される、ユーザインタフェース要素(又は、タッチスクリーンディスプレイ上での接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出されている間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の位置は、その対応のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
本明細書及び特許請求の範囲で使用するとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。一部の実施形態では、特性強度は、複数の強度サンプルに基づく。特性強度は、任意選択的に、既定数の強度サンプル、すなわち、既定のイベントに関連する(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び/又は、接触の強度の減少を検出する前若しくは後の)所定の期間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に収集された、強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の代表値(average value)、接触の強度の上位10パーセンタイル値、接触の強度の最大値の半分の値、接触の強度の最大値の90パーセントの値などのうちの、1つ以上に基づく。一部の実施形態では、特性強度を判定する際に(例えば、特性強度が、経時的な接触の強度の平均である場合)、接触の持続時間が使用される。一部の実施形態では、動作がユーザによって実行されたか否かを判定するために、特性強度は、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、任意選択的に、第1の強度閾値及び第2の強度閾値を含む。この実施例では、第1の閾値を超過しない特性強度を有する接触は、結果として第1の動作をもたらし、第1の強度閾値を超過し、かつ第2の強度閾値を超過しない特性強度を有する接触は、結果として第2の動作をもたらし、第2の閾値を超過する特性強度を有する接触は、結果として第3の動作をもたらす。一部の実施形態では、特性強度と1つ以上の閾値との比較は、第1の動作又は第2の動作のいずれを実行するかを決定するために使用されるのではなく、1つ以上の動作を実行するか否か(例えば、それぞれの動作を実行するか、又はそれぞれの動作の実行を取り止めるか)を判定するために使用される。
図6Cは、複数の強度センサ624A~624Dを有するタッチ感知ディスプレイスクリーン604上での、複数の接触652A~652Eの検出を示す。図6Cは、強度単位に関連して強度センサ624A~624Dの現在の強度測定値を示す、強度図を更に含む。この実施例では、強度センサ624A及び強度センサ624Dの強度測定値は、それぞれ9強度単位であり、強度センサ624B及び強度センサ624Cの強度測定値は、それぞれ7強度単位である。一部の実装形態では、総計強度は、これら複数の強度センサ624A~624Dの強度測定値の和であり、この実施例では、32強度単位である。一部の実施形態では、各接触には、この総計強度の一部分である、それぞれの強度が割り当てられる。図6Dは、力の中心654からの接触652A~652Eの距離に基づく、それら接触652A~652Eへの総計強度の割り当てを示す。この実施例では、接触652A、接触652B、及び接触652Eのそれぞれには、総計強度のうちの8強度単位の接触の強度が割り当てられており、接触652C及び接触652Dのそれぞれには、総計強度のうちの4強度単位の接触の強度が割り当てられている。より一般的には、一部の実装形態では、各接触jには、既定の数学関数Ij=A・(Dj/ΣDi)に従って、総計強度Aの一部分である、それぞれの強度Ijが割り当てられ、この場合、Djは、力の中心までの、それぞれの接触jの距離であり、ΣDiは、力の中心までの、それぞれの接触の全て(例えば、i=1から最後まで)の距離の和である。図6C、図6Dを参照して説明された動作は、デバイス104、200、400、又はデバイス600と同様若しくは同一の電子デバイスを使用して、実行することができる。一部の実施形態では、接触の特性強度は、その接触の1つ以上の強度に基づく。一部の実施形態では、強度センサを使用して、単一の特性強度(例えば、単一の接触の単一の特性強度)を判定する。これらの強度図は、表示されるユーザインタフェースの一部ではなく、読み手の助けとなるように図6C、図6Dに含まれていることに留意されたい。
一部の実施形態では、特性強度を判定する目的のために、ジェスチャの一部分が特定される。例えば、タッチ感知面は、任意選択的に、開始位置から移行して終了位置に到達し、その時点で接触の強度が増大する、連続的なスワイプ接触を受信する。この実施例では、終了位置での接触の特性強度は、任意選択的に、スワイプ接触の全体ではなく、その連続的なスワイプ接触の一部分のみ(例えば、終了位置におけるスワイプ接触の部分のみ)に基づくものである。一部の実施形態では、接触の特性強度を判定する前に、平滑化アルゴリズムが、任意選択的に、そのスワイプ接触の強度に適用される。例えば、この平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。一部の状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的のために、スワイプ接触の強度の小幅な上昇又は低下を排除する。
タッチ感知面上の接触の強度は、任意選択的に、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値などの、1つ以上の強度閾値に関連して特徴付けされる。一部の実施形態では、軽い押圧強度閾値は、物理マウスのボタン又はトラックパッドをクリックすることに典型的に関連付けられた動作を、デバイスが実行することになる強度に相当する。一部の実施形態では、深い押圧強度閾値は、物理マウスのボタン又はトラックパッドをクリックすることに典型的に関連付けられた動作とは異なる動作を、デバイスが実行することになる強度に相当する。一部の実施形態では、軽い押圧強度閾値を下回る(例えば、かつ、それを下回ると接触がもはや検出されない微弱な接触検出強度閾値を上回る)特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、そのタッチ感知面上の接触の移動に従って、フォーカスセレクタを移動させることになる。全般的には、別途記載のない限り、これらの強度閾値は、異なるユーザインタフェース図のセット間でも一貫している。
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への、接触の特性強度の増大は、「軽い押圧」入力と称される場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への、接触の特性強度の増大は、「深い押圧」入力と称される場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への、接触の特性強度の増大は、タッチ面上の接触の検出と称される場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と称される場合がある。一部の実施形態では、接触検出強度閾値はゼロである。一部の実施形態では、接触検出強度閾値はゼロよりも大きい。
本明細書で説明される一部の実施形態では、1つ以上の動作は、対応の押圧入力を含むジェスチャの検出に応答して、又は、対応の接触(又は、複数の接触)で実行される対応の押圧入力の検出に応答して実行され、それらの対応の押圧入力は、少なくとも部分的に、押圧入力強度閾値を上回る接触(又は、複数の接触)の強度の増大の検出に基づいて検出される。一部の実施形態では、対応の動作は、押圧入力強度閾値を上回る、対応の接触の強度の増大(例えば、対応の押圧入力の「ダウンストローク」)の検出に応答して、実行される。一部の実施形態では、押圧入力は、押圧入力強度閾値を上回る、対応の接触の強度の増大、及び、後続の押圧入力強度閾値を下回る接触の強度の減少を含み、対応の動作は、その後続の押圧入力閾値を下回る、対応の接触の強度の減少(例えば、対応の押圧入力の「アップストローク」)の検出に応答して、実行される。
図6E~図6Hは、図6Eの軽い押圧強度閾値(例えば、「ITL」)を下回る強度から、図6Hの深い押圧強度閾値(例えば、「ITD」)を上回る強度に至る、接触662の強度の増大に対応する押圧入力を含む、ジェスチャの検出を示す。既定領域674内に表示されているアプリケーションアイコン672A~672Dを含む、表示されているユーザインタフェース670上で、カーソル676が、アプリ2に対応するアプリケーションアイコン672B上に表示されている間に、接触662で実行されたジェスチャが、タッチ感知面660上で検出される。一部の実施形態では、このジェスチャは、タッチ感知ディスプレイ604上で検出される。強度センサが、タッチ感知面660上の接触の強度を検出する。このデバイスは、接触662の強度が、深い押圧強度閾値(例えば、「ITD」)を上回るピークに達したことを判定する。接触662は、タッチ感知面660上で維持される。このジェスチャの検出に応答して、かつ、このジェスチャの間に深い押圧強度閾値(例えば、「ITD」)を上回る強度を有する接触662に従って、図6F~図6Hに示されるように、アプリ2に関する最近開かれた文書の縮小表現678A~678C(例えば、サムネイル)が表示される。一部の実施形態では、1つ以上の強度閾値と比較される強度は、接触の特性強度である。接触662に関する強度図は、表示されるユーザインタフェースの一部ではなく、読み手の助けとなるように図6E~図6Hに含まれていることに留意されたい。
一部の実施形態では、表現678A~678Cの表示は、アニメーションを含む。例えば、表現678Aは、最初は、図6Fに示されるように、アプリケーションアイコン672Bの近くに表示される。アニメーションが進行するにつれて、図6Gに示されるように、表現678Aは上方向に移動して、表現678Bが、アプリケーションアイコン672Bの近くに表示される。次いで、図6Hに示されるように、表現678Aが上方向に移動して、678Bが表現678Aに向けて上方へ移動し、表現678Cが、アプリケーションアイコン672Bの近くに表示される。表現678A~678Cは、アイコン672Bの上方にアレイを形成する。一部の実施形態では、このアニメーションは、図6F、図6Gに示されるように、接触662の強度に従って進行するものであり、この場合、接触662の強度が深い押圧強度閾値(例えば、「ITD」)に向けて増大するにつれて、表現678A~678Cが出現し、上方向に移動する。一部の実施形態では、このアニメーションの進行が基づく強度は、接触の特性強度である。図6E~図6Hを参照して説明された動作は、デバイス104、200、400、又はデバイス600と同様若しくは同一の電子デバイスを使用して、実行することができる。
一部の実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的入力を回避するために、強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関連性を有するヒステリシス強度閾値を、定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低いか、又は、ヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な比率である)。それゆえ、一部の実施形態では、押圧入力は、押圧入力強度閾値を上回る、対応の接触の強度の増大、及び後続の、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、対応の動作は、そのヒステリシス強度閾値を下回る、後続の対応の接触の強度の減少(例えば、対応の押圧入力の「アップストローク」)の検出に応答して、実行される。同様に、一部の実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から、押圧入力強度閾値以上の強度への、接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への、後続の接触の強度の減少を検出する場合にのみ、検出され、対応の動作は、その押圧入力(例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少)の検出に応答して、実行される。
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応答して、又はその押圧入力を含むジェスチャに応答して実行される動作の説明は、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかの検出に応答して、任意選択的にトリガされる。更には、押圧入力強度閾値を下回る、接触の強度の減少の検出に応答して、動作が実行されるとして説明される実施例では、その動作は、押圧入力強度閾値に対応し、かつ押圧入力強度閾値よりも低い、ヒステリシス強度閾値を下回る、接触の強度の減少の検出に応答して、任意選択的に実行される。
本明細書で使用するとき、「インストール済みアプリケーション」とは、電子デバイス(例えば、デバイス100、200、400、及び/又はデバイス600)上にダウンロードされており、そのデバイス上で起動される(例えば、開かれた状態になる)準備が整っている、ソフトウェアアプリケーションを指す。一部の実施形態では、ダウンロードされたアプリケーションは、ダウンロードされたパッケージからプログラム部分を抽出して、その抽出部分をコンピュータシステムのオペレーティングシステムと統合するインストールプログラムによって、インストール済みアプリケーションになる。
本明細書で使用するとき、用語「開いているアプリケーション」又は「実行中のアプリケーション」とは、状態情報が(例えば、デバイス/グローバル内部状態157及び/又はアプリケーション内部状態192の一部として)保持されている、ソフトウェアアプリケーションを指す。開いているアプリケーション又は実行中のアプリケーションは、任意選択的に、以下のタイプのアプリケーションのうちのいずれか1つである。
●そのアプリケーションが使用されているデバイスのディスプレイスクリーン上に、現時点で表示されている、アクティブなアプリケーション、
●現時点で表示されていないが、そのアプリケーションに関する1つ以上のプロセスが1つ以上のプロセッサによって処理されている、バックグラウンドアプリケーション(又は、バックグラウンドプロセス)、及び
●稼働していないが、メモリ(それぞれ、揮発性及び/又は不揮発性)内に記憶された、そのアプリケーションの実行を再開するために使用することが可能な状態情報を有する、中断又は休止状態のアプリケーション。
本明細書で使用するとき、用語「閉じているアプリケーション」とは、状態情報が保持されていない(例えば、閉じているアプリケーションに関する状態情報が、デバイスのメモリ内に記憶されていない)ソフトウェアアプリケーションを指す。したがって、アプリケーションを閉じることは、そのアプリケーションに関するアプリケーションプロセスを停止及び/又は除去すること、並びに、そのアプリケーションに関する状態情報をデバイスのメモリから除去することを含む。一般的には、第1のアプリケーション中に第2のアプリケーションを開くことにより、第1のアプリケーションが閉じられることはない。第2のアプリケーションが表示され、第1のアプリケーションの表示が中止されると、第1のアプリケーションは、バックグラウンドアプリケーションになる。
3.デジタルアシスタントシステム
図7Aは、様々な実施例による、デジタルアシスタントシステム700のブロック図を示す。一部の実施例では、デジタルアシスタントシステム700は、スタンドアロン型コンピュータシステム上に実装される。一部の実施例では、デジタルアシスタントシステム700は、複数のコンピュータにわたって分散される。一部の実施例では、デジタルアシスタントのモジュール及び機能のうちの一部は、サーバ部分とクライアント部分とに割り振られており、クライアント部分は、例えば、図1に示されるように、1つ以上のユーザデバイス(例えば、デバイス104、122、200、400、600、800、1000、1404、1600、1800)上に常駐し、1つ以上のネットワークを通じてサーバ部分(例えば、サーバシステム108)と通信する。一部の実施例では、デジタルアシスタントシステム700は、図1に示されるサーバシステム108(及び/又は、DAサーバ106)の実装形態である。デジタルアシスタントシステム700は、デジタルアシスタントシステムの一実施例に過ぎず、デジタルアシスタントシステム700は、示されているものよりも多くの構成要素又は少ない構成要素を有し得るものであり、2つ以上の構成要素を組み合わせることもでき、又は、それらの構成要素の異なる構成若しくは配置を有し得ることに留意されたい。図7Aに示される様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含めたハードウェア、1つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、若しくはそれらの組み合わせとして実装される。
デジタルアシスタントシステム700は、メモリ702、1つ以上のプロセッサ704、入出力(I/O)インタフェース706、及びネットワーク通信インタフェース708を含む。これらの構成要素は、1つ以上の通信バス又は信号ライン710を介して互いに通信することができる。
一部の実施例では、メモリ702は、高速ランダムアクセスメモリ及び/又は不揮発性コンピュータ可読記憶媒体(例えば、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイス)などの、非一時的コンピュータ可読媒体を含む。
一部の実施例では、I/Oインタフェース706は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォンなどの、デジタルアシスタントシステム700の入出力デバイス716を、ユーザインタフェースモジュール722に結合する。I/Oインタフェース706は、ユーザインタフェースモジュール722と連携して、ユーザ入力(例えば、音声入力、キーボード入力、タッチ入力など)を受信し、それらを適宜に処理する。一部の実施例では、例えば、デジタルアシスタントがスタンドアロン型ユーザデバイス上に実装される場合、デジタルアシスタントシステム700は、図2A、図4、図6A~図6H、図12、及び図14で、それぞれデバイス200、400、600、1200、及びデバイス1404に関連して説明される、構成要素並びにI/O通信インタフェースのうちのいずれかを含む。一部の実施例では、デジタルアシスタントシステム700は、デジタルアシスタントの実装形態のサーバ部分を表すものであり、ユーザデバイス(例えば、デバイス104、200、400、600、800、1000、1404、1600、1800)上に常駐するクライアント側部分を通じて、ユーザと対話することができる。
一部の実施例では、ネットワーク通信インタフェース708は、有線通信ポート(単数又は複数)712及び/又は無線送受信回路714を含む。有線通信ポート(単数又は複数)は、1つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス(USB)、FIREWIREなどを介して、通信信号を送受信する。無線回路714は、通信ネットワーク及び他の通信デバイスとの間で、RF信号及び/又は光信号を送受信する。無線通信は、GSM、EDGE、CDMA、TDMA、Bluetooth、Wi-Fi、VoIP、Wi-MAX、又は任意の他の好適な通信プロトコルなどの、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用する。ネットワーク通信インタフェース708は、デジタルアシスタントシステム700と、インターネット、イントラネット、並びに/あるいは、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)などの無線ネットワークなどの、ネットワークとの間の、また他のデバイスとの間の、通信を可能にする。
一部の実施例では、メモリ702、又はメモリ702のコンピュータ可読記憶媒体は、オペレーティングシステム718、通信モジュール720、ユーザインタフェースモジュール722、1つ以上のアプリケーション724、及びデジタルアシスタントモジュール726の全て若しくはサブセットを含めた、プログラム、モジュール、命令、及びデータ構造を記憶している。特に、メモリ702、又はメモリ702のコンピュータ可読記憶媒体は、以下で説明されるプロセスを実行する命令を記憶している。1つ以上のプロセッサ704は、これらのプログラム、モジュール、及び命令を実行し、データ構造からの読み出し/データ構造への書き込みを行う。
オペレーティングシステム718(例えば、Darwin、RTXC、LINUX、UNIX、iOS、OS X、WINDOWS、又は、VxWorksなどの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための、様々なソフトウェア構成要素並びに/あるいはドライバを含み、様々なハードウェア、ファームウェア、及びソフトウェア構成要素間の通信を容易にする。
通信モジュール720は、ネットワーク通信インタフェース708を介した、デジタルアシスタントシステム700と他のデバイスとの間の通信を容易にする。例えば、通信モジュール720は、図2A、図4、図6A~図6Bにそれぞれ示される、デバイス200、400、及びデバイス600などの電子デバイスの、RF回路208と通信する。通信モジュール720はまた、無線回路714及び/又は有線通信ポート712によって受信されたデータを処理するための、様々な構成要素も含む。
ユーザインタフェースモジュール722は、I/Oインタフェース706を介して(例えば、キーボード、タッチスクリーン、ポインティングデバイス、コントローラ、及び/又はマイクロフォンから)、ユーザからのコマンド及び/又は入力を受信して、ディスプレイ上にユーザインタフェースオブジェクトを生成する。ユーザインタフェースモジュール722はまた、I/Oインタフェース706を介して(例えば、ディスプレイ、オーディオチャネル、スピーカ、タッチパッドなどを通じて)、ユーザへの出力(例えば、発話、サウンド、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光など)も準備及び配信する。
アプリケーション724は、1つ以上のプロセッサ704によって実行されるように構成された、プログラム及び/又はモジュールを含む。例えば、デジタルアシスタントシステムがスタンドアロン型ユーザデバイス上に実装される場合には、アプリケーション724は、ゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーションなどの、ユーザアプリケーションを含む。デジタルアシスタントシステム700がサーバ上に実装される場合には、アプリケーション724は、例えば、リソース管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含む。
メモリ702はまた、デジタルアシスタントモジュール726(又は、デジタルアシスタントのサーバ部分)も記憶している。一部の実施例では、デジタルアシスタントモジュール726は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含む:入出力処理モジュール728、音声テキスト化(speech-to-text;STT)処理モジュール730、自然言語処理モジュール732、ダイアログフロー処理モジュール734、タスクフロー処理モジュール736、サービス処理モジュール738、及び発話合成処理モジュール740。これらのモジュールのそれぞれは、デジタルアシスタントモジュール726の以下のシステムあるいはデータ及びモデルのうちの1つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有する:オントロジ760、語彙索引744、ユーザデータ748、タスクフローモデル754、サービスモデル756、及びASRシステム758。
一部の実施例では、デジタルアシスタントモジュール726内に実装されている処理モジュール、データ、及びモデルを使用して、このデジタルアシスタントは、以下のうちの少なくとも一部を実行することができる:発話入力をテキストに変換すること、ユーザから受信した自然言語入力内で表現されているユーザの意図を特定すること、ユーザの意図を完全に推測するために必要な情報を(例えば、単語、ゲーム、意図などの曖昧性を除去することによって)能動的に引き出し、取得すること、推測された意図を満たすためのタスクフローを決定すること、及び、そのタスクフローを実行して、推測された意図を満たすこと。
一部の実施例では、図7Bに示されるように、I/O処理モジュール728は、ユーザ入力(例えば、発話入力)を取得するために、及びユーザ入力への応答を(例えば、発話出力として)提供するために、図7AのI/Oデバイス716を通じてユーザと対話し、又は、図7Aのネットワーク通信インタフェース708を通じてユーザデバイス(例えば、デバイス104、200、400、又はデバイス600)と対話する。I/O処理モジュール728は、任意選択的に、ユーザ入力と共に、又はユーザ入力の受信の直後に、そのユーザ入力に関連付けられたコンテキスト情報をユーザデバイスから取得する。コンテキスト情報は、そのユーザ入力に関連する、ユーザ固有のデータ、語彙、及び/又は選好を含む。一部の実施例では、コンテキスト情報はまた、ユーザ要求が受信される時点での、ユーザデバイスのソフトウェア状態及びハードウェア状態、並びに/あるいは、ユーザ要求が受信された時点での、ユーザの周囲環境に関する情報も含む。一部の実施例では、I/O処理モジュール728はまた、ユーザ要求に関して、ユーザに補足質問を送信し、ユーザから回答を受信する。ユーザ要求がI/O処理モジュール728によって受信され、そのユーザ要求が発話入力を含む場合、I/O処理モジュール728は、音声テキスト化変換のために、その発話入力をSTT処理モジュール730(又は、発話認識器)に転送する。
STT処理モジュール730は、1つ以上のASRシステム758を含む。1つ以上のASRシステム758は、I/O処理モジュール728を介して受信された発話入力を処理して、認識結果を生成することができる。各ASRシステム758は、フロントエンド発話プリプロセッサを含む。このフロントエンド発話プリプロセッサは、発話入力から代表的特徴を抽出する。例えば、フロントエンド発話プリプロセッサは、発話入力に対してフーリエ変換を実行することにより、その発話入力を代表的な多次元ベクトルのシーケンスとして特徴付ける、スペクトル特徴を抽出する。更には、各ASRシステム758は、1つ以上の発話認識モデル(例えば、音響モデル及び/又は言語モデル)を含み、1つ以上の発話認識エンジンを実装する。発話認識モデルの例としては、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、nグラム言語モデル、及び他の統計的モデルが挙げられる。発話認識エンジンの例としては、動的時間伸縮法ベースのエンジン、及び重み付き有限状態トランスデューサ(weighted finite-state transducer;WFST)ベースのエンジンが挙げられる。1つ以上の発話認識モデル及び1つ以上の発話認識エンジンは、フロントエンド発話プリプロセッサの、抽出された代表的特徴を処理して、中間認識結果(例えば、音素、音素列(phonemic string)、及び部分語)を生成し、最終的に、テキスト認識結果(例えば、単語、単語文字列、又はトークンの列)を生成するために使用される。一部の実施例では、発話入力は、認識結果を生成するために、第三者サービスによって、又はユーザのデバイス(例えば、デバイス104、200、400、又はデバイス600)上で、少なくとも部分的に処理される。STT処理モジュール730が、テキスト文字列(例えば、単語、単語の列、又はトークンの列)を含む認識結果を生成すると、その認識結果は、意図推論のために自然言語処理モジュール732に渡される。一部の実施例では、STT処理モジュール730は、発話入力の複数のテキスト表現候補を生成する。各テキスト表現候補は、発話入力に対応する、単語又はトークンの列である。一部の実施例では、各テキスト表現候補は、発話認識信頼性スコアに関連付けられる。この発話認識信頼性スコアに基づいて、STT処理モジュール730は、テキスト表現候補をランク付けし、n個の最良の(例えば、n個の最高ランクの)テキスト表現候補(単数又は複数)を、意図推論のために自然言語処理モジュール732に提供する(nは、ゼロよりも大きい所定の整数である)。例えば、一実施例では、最も高いランク(n=1)のテキスト表現候補のみが、意図推論のために自然言語処理モジュール732に渡される。別の実施例では、5つの最高ランク(n=5)のテキスト表現候補が、意図推論のために自然言語処理モジュール732に渡される。
音声テキスト化処理についての更なる詳細は、開示全体が参照により本明細書に組み込まれる、2011年9月20日出願の、「Consolidating Speech Recognition Results」に関する米国実用特許出願第13/236,942号で説明されている。
一部の実施例では、STT処理モジュール730は、認識可能な単語の語彙を含み、及び/又は、音標文字変換モジュール731を介して、その語彙にアクセスする。各語彙単語は、発話認識音標文字で表された、その単語の1つ以上の発音候補と関連付けられている。具体的には、認識可能な単語の語彙は、複数の発音候補に関連付けられている単語を含む。例えば、語彙は、
の発音候補に関連付けられている単語「tomato(トマト)」を含む。更には、語彙単語は、ユーザからの以前の発話入力に基づく、カスタム発音候補に関連付けられている。そのようなカスタム発音候補は、STT処理モジュール730内に記憶され、デバイス上のユーザのプロファイルを介して、特定のユーザに関連付けられている。一部の実施例では、単語に関する発音候補は、単語の綴り、並びに1つ以上の言語規則及び/又は音標規則に基づいて判定される。一部の実施例では、発音候補は、例えば既知の正規発音に基づいて、手動で生成される。
一部の実施例では、発音候補は、その発音候補の一般性に基づいてランク付けされる。例えば、発音候補
よりも高くランク付けされるが、これは、前者が、(例えば、全てのユーザの間で、特定の地理的領域内のユーザに関して、又は、任意の他の適切なユーザのサブセットに関して)より一般的に使用される発音であるためである。一部の実施例では、発音候補は、その発音候補がユーザに関連付けられているカスタム発音候補であるか否かに基づいて、ランク付けされる。例えば、カスタム発音候補は、正規発音候補よりも高くランク付けされる。このことは、正規発音から逸脱した独特の発音を有する固有名詞を認識するために、有用となり得る。一部の実施例では、発音候補は、出身地、国籍、又は民族性などの、1つ以上の発話特性に関連付けられている。例えば、発音候補
は、米国に関連付けられており、その一方で、発音候補
は、英国に関連付けられている。更には、発音候補のランクは、デバイス上のユーザのプロファイル内に記憶されている、そのユーザの1つ以上の特性(例えば、出身地、国籍、民族性など)に基づく。例えば、ユーザのプロファイルから、そのユーザが米国に関連付けられていることを判定することができる。ユーザが米国に関連付けられていることに基づいて、(米国に関連付けられている)発音候補
は、(英国に関連付けられている)発音候補
よりも高くランク付けされる。一部の実施例では、ランク付けされた発音候補のうちの1つが、予測される発音(例えば、最も可能性が高い発音)として選択される。
発話入力が受信されると、STT処理モジュール730を使用して、その発話入力に対応する音素が(例えば、音響モデルを使用して)判定され、次いで、その音素に一致する単語を(例えば、言語モデルを使用して)決定することが試みられる。例えば、STT処理モジュール730が最初に、発話入力の一部分に対応する音素の列
を特定した場合には、次いで、語彙索引744に基づいて、この列が単語「tomato(トマト)」に対応すると判定することができる。
一部の実施例では、STT処理モジュール730は、近似照合技術を使用して、発言内の単語を判定する。それゆえ、例えば、STT処理モジュール730は、音素の列
が単語「tomato(トマト)」に対応するものであることを、その特定の音素の列が、その単語の音素列候補のうちの1つではない場合であっても、判定する。
デジタルアシスタントの自然言語処理モジュール732(「自然言語プロセッサ」)は、STT処理モジュール730によって生成された、n個の最良のテキスト表現候補(単数又は複数)(「単語列(単数又は複数)」又は「トークン列(単数又は複数)」)を取得して、それらのテキスト表現候補のそれぞれを、デジタルアシスタントによって認識される1つ以上の「実施可能な意図」に関連付けることを試みる。「実施可能な意図」(又は、「ユーザ意図」)とは、デジタルアシスタントによって実行することが可能なタスクを表すものであり、タスクフローモデル754内に実装される、関連するタスクフローを有し得る。この関連するタスクフローは、そのタスクを実行するためにデジタルアシスタントが実施する、一連のプログラムされたアクション及びステップである。デジタルアシスタントの能力の範囲は、タスクフローモデル754内に実装及び記憶されている、タスクフローの数及び多様性に応じて決定され、あるいは、換言すれば、そのデジタルアシスタントが認識する「実施可能な意図」の数及び多様性に応じて決定される。しかしながら、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正しい「実施可能な意図(単数又は複数)」を推測する、そのアシスタントの能力に応じても決定される。
一部の実施例では、STT処理モジュール730から取得される単語又はトークンの列に加えて、自然言語処理モジュール732はまた、例えばI/O処理モジュール728から、ユーザ要求に関連付けられたコンテキスト情報も受信する。自然言語処理モジュール732は、任意選択的に、そのコンテキスト情報を使用して、STT処理モジュール730から受信されたテキスト表現候補内に含まれている情報を、明らかにし、補完し、及び/又は更に定義する。コンテキスト情報は、例えば、ユーザ選好、ユーザデバイスのハードウェア及び/又はソフトウェア状態、ユーザ要求の前、最中、又は直後に収集されたセンサ情報、並びに、デジタルアシスタントとユーザとの間の以前の対話(例えば、ダイアログ)などを含む。本明細書で説明されるように、コンテキスト情報は、一部の実施例では動的であり、時間、場所、ダイアログの内容、及び他の因子によって変化する。
一部の実施例では、自然言語処理は、例えば、オントロジ760に基づく。オントロジ760は、多数のノードを含む階層構造であり、各ノードは、「実施可能な意図」、又は、その「実施可能な意図」のうちの1つ以上に関連する「属性」若しくは他の「属性」のいずれかを表す。上述のように、「実施可能な意図」は、デジタルアシスタントが実行することが可能なタスクを表すものであり、すなわち、そのタスクは、「実施可能」であるか、又は実施対象となり得るものである。「属性」は、実施可能な意図に関連付けられた、又は別の属性の下位態様に関連付けられた、パラメータを表す。オントロジ760内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードによって表されるパラメータが、実施可能な意図ノードによって表されるタスクにどのように関与するかを定義する。
一部の実施形態では、オントロジ760は、実施可能な意図ノード及び属性ノードで構成されている。オントロジ760内では、各実施可能な意図ノードは、1つ以上の属性ノードに直接リンクされているか、又は、1つ以上の中間属性ノードを介してリンクされている。同様に、各属性ノードは、1つ以上の実施可能な意図ノードに直接リンクされているか、又は、1つ以上の中間属性ノードを介してリンクされている。例えば、図7Cに示されるように、オントロジ760は、「レストラン予約」ノード(すなわち、実施可能な意図ノード)を含む。属性ノード「レストラン」、「日付/時間」(予約用)、及び「参加人数」が、それぞれ、実施可能な意図ノード(すなわち、「レストラン予約」ノード)に直接リンクされている。
更には、属性ノード「料理」、「価格帯」、「電話番号」、及び「場所」は、属性ノード「レストラン」の下位ノードであり、それぞれ、中間属性ノード「レストラン」を介して、「レストラン予約」ノード(すなわち、実施可能な意図ノード)にリンクされている。別の例として、図7Cに示されるように、オントロジ760はまた、「リマインダ設定」ノード(すなわち、別の実施可能な意図ノード)も含む。属性ノード「日付/時間」(リマインダ設定用)及び「テーマ」(リマインダ用)が、それぞれ、「リマインダ設定」ノードにリンクされている。属性ノード「日付/時間」は、レストラン予約を実施するタスク及びリマインダを設定するタスクの双方に関連しているため、属性ノード「日付/時間」は、オントロジ760内で、「レストラン予約」ノード及び「リマインダ設定」ノードの双方にリンクされている。
実施可能な意図ノードは、そのリンクされている属性ノードと共に、「ドメイン」として説明される。本論考では、各ドメインは、対応の実施可能な意図と関連付けられており、その特定の実施可能な意図に関連付けられているノードのグループ(及び、それらノード間の関係)を指すものである。例えば、図7Cに示されるオントロジ760は、レストラン予約ドメイン762の一実施例、及びリマインダドメイン764の一実施例を、オントロジ760内に含む。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付/時間」、及び「参加人数」、並びに、下位属性ノード「料理」、「価格帯」、「電話番号」、及び「場所」を含む。リマインダドメイン764は、実施可能な意図ノード「リマインダ設定」、並びに属性ノード「テーマ」及び「日付/時間」を含む。一部の実施例では、オントロジ760は、多数のドメインで構成される。各ドメインは、1つ以上の属性ノードを、1つ以上の他のドメインと共有している。例えば、「日付/時間」属性ノードは、レストラン予約ドメイン762及びリマインダドメイン764に加えて、多数の異なるドメイン(例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど)に関連付けられている。
図7Cは、オントロジ760内の2つの例示的なドメインを示すものであるが、他のドメインとしては、例えば、「映画を探す」、「電話通話を開始する」、「道順を探す」、「会合をスケジュールする」、「メッセージを送信する」、「質問の答えを提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、及び「タスクに関する指示を提供する」などが挙げられる。「メッセージを送信する」ドメインは、「メッセージを送信する」実施可能な意図ノードに関連付けられており、「受信者(単数又は複数)」、「メッセージタイプ」、及び「メッセージ本文」などの属性ノードを更に含む。属性ノード「受信者」は、例えば、「受信者名」及び「メッセージアドレス」などの下位属性ノードによって、更に定義される。
一部の実施例では、オントロジ760は、デジタルアシスタントが理解及び遂行することが可能な、全てのドメイン(またそれゆえ、実施可能な意図)を含む。一部の実施例では、オントロジ760は、ドメイン若しくはノード全体を追加又は除去することによって、あるいは、オントロジ760内のノード間の関係を修正することなどによって、修正される。
一部の実施例では、関連する複数の実施可能な意図に関連付けられているノードは、オントロジ760内の「上位ドメイン」の下にクラスタ化されている。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードの、クラスタを含む。旅行に関連する実施可能な意図ノードとしては、「航空券予約」、「ホテル予約」、「自動車のレンタル」、「道順を知る」、及び「興味のある場所を探す」などが挙げられる。同じ上位ドメイン(例えば、「旅行」上位ドメイン)の下の実施可能な意図ノードは、多数の属性ノードを共有している。例えば、「航空券予約」、「ホテル予約」、「自動車のレンタル」、「道順を知る」、及び「興味のある場所を探す」に関する実施可能な意図ノードは、属性ノード「出発地」、「目的地」、「出発日/時間」、「到着日/時間」、及び「参加人数」のうちの1つ以上を共有している。
一部の実施形態では、オントロジ760内の各ノードは、そのノードによって表される属性若しくは実施可能な意図に関連する、単語及び/又はフレーズのセットに関連付けられている。各ノードに関連付けられている対応の単語及び/又はフレーズのセットは、そのノードに関連付けられた、いわゆる「語彙」である。各ノードに関連付けられている対応の単語及び/又はフレーズのセットは、そのノードによって表される属性又は実施可能な意図に関連して、語彙索引744内に記憶されている。例えば、図7Cに戻ると、「レストラン」の属性に関するノードに関連付けられている語彙としては、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」などの単語が挙げられる。別の例として、「電話通話を開始する」の実施可能な意図に関するノードに関連付けられている語彙としては、「電話する(call)」、「電話(phone)」、「ダイヤルする(dial)」、「電話をかける(ring)」、「この番号に電話する(call this number)」、「~に電話をかける(make a call to)」などの、単語及びフレーズが挙げられる。語彙索引744は、任意選択的に、異なる言語の単語及びフレーズを含む。
自然言語処理モジュール732は、STT処理モジュール730からテキスト表現候補(例えば、テキスト文字列(単数又は複数)又はトークン列(単数又は複数))を受信し、各表現候補に関して、いずれのノードが、そのテキスト表現候補内の単語によって暗示されているかを判定する。一部の実施例では、テキスト表現候補内の単語又はフレーズが、オントロジ760内の1つ以上のノードに関連付けられていることが(語彙索引744を介して)見出される場合には、その単語又はフレーズは、それらのノードを「トリガ」又は「アクティブ化」する。アクティブ化されたノードの量及び/又は相対的重要性に基づいて、自然言語処理モジュール732は、それらの実施可能な意図のうちの1つを、デジタルアシスタントにユーザが実行させるように意図したタスクとして選択する。一部の実施例では、最も多く「トリガされた」ノードを有するドメインが選択される。一部の実施例では、最も高い信頼値(例えば、そのトリガされた様々なノードの相対的重要性に基づくもの)を有するドメインが選択される。一部の実施例では、トリガされたノードの数及び重要性の組み合わせに基づいて、ドメインが選択される。一部の実施例では、ノードを選択する際には、デジタルアシスタントが、ユーザからの同様の要求を以前に正確に解釈したか否かなどの、追加的因子も考慮される。
ユーザデータ748は、ユーザ固有語彙、ユーザ選好、ユーザアドレス、ユーザの既定言語及び第2言語、ユーザの連絡先リスト、並びに各ユーザに関する他の短期的若しくは長期的情報などの、ユーザ固有情報を含む。一部の実施例では、自然言語処理モジュール732は、ユーザ入力内に含まれている情報を補完して、ユーザ意図を更に定義するために、これらのユーザ固有情報を使用する。例えば、ユーザ要求「私の誕生日パーティーに私の友人を招待して(invite my friends to my birthday party)」に関して、自然言語処理モジュール732は、誰が「友人」であり、いつ及びどこで「誕生日パーティー」が催されることになるかを判定するために、そのような情報をユーザ要求内で明示的に提供するようにユーザに要求することなく、ユーザデータ748にアクセスすることが可能である。
一部の実施例では、自然言語処理モジュール732は、1つ以上の機械学習機構(例えば、ニューラルネットワーク)を使用して実装されることを認識されたい。具体的には、1つ以上の機械学習機構は、テキスト表現候補、及び、そのテキスト表現候補に関連付けられたコンテキスト情報を受信するように構成されている。それらテキスト表現候補及び関連するコンテキスト情報に基づいて、1つ以上の機械学習機構は、実施可能な意図候補のセットにわたって、意図信頼性スコアを判定するように構成されている。自然言語処理モジュール732は、判定された意図信頼性スコアに基づいて、実施可能な意図候補のセットから、1つ以上の実施可能な意図候補を選択することができる。一部の実施例では、オントロジ(例えば、オントロジ760)もまた、実施可能な意図候補のセットから、1つ以上の実施可能な意図候補を選択するために使用される。
トークン文字列に基づくオントロジの検索の他の詳細は、開示全体が参照により本明細書に組み込まれる、2008年12月22日出願の「Method and Apparatus for Searching Using an Active Ontology」に関する米国実用特許出願第12/341,743号で説明されている。
一部の実施例では、自然言語処理モジュール732が、ユーザ要求に基づいて実施可能な意図(又は、ドメイン)を特定すると、自然言語処理モジュール732は、その特定された実施可能な意図を表すように、構造化クエリを生成する。一部の実施例では、この構造化クエリは、その実施可能な意図に関するドメイン内の1つ以上のノードについてのパラメータを含み、それらのパラメータの少なくとも一部には、ユーザ要求内で指定された具体的な情報及び要件が入力されている。例えば、「7時に寿司屋で夕食の予約を取ってください(Make me a dinner reservation at a sushi place at 7)」とユーザが言う。この場合には、自然言語処理モジュール732は、そのユーザ入力に基づいて、実施可能な意図が「レストラン予約」であると、正確に特定することが可能である。オントロジによれば、「レストラン予約」ドメインに関する構造化クエリは、{料理}、{時間}、{日付}、{参加人数}などのパラメータを含む。一部の実施例では、発話入力、及びSTT処理モジュール730を使用して発話入力から導出されたテキストに基づいて、自然言語処理モジュール732は、レストラン予約ドメインに関する部分的構造化クエリを生成し、この部分的構造化クエリは、パラメータ{料理=「寿司」}及びパラメータ{時間=「午後7時」}を含む。しかしながら、この実施例では、ユーザの発言に含まれる情報は、そのドメインに関連付けられる構造化クエリを完成するためには不十分である。それゆえ、{参加人数}及び{日付}などの他の必要なパラメータは、現時点で入手可能な情報に基づく構造化クエリ内では指定されていない。一部の実施例では、自然言語処理モジュール732は、この構造化クエリの一部のパラメータに、受信されたコンテキスト情報を追加入力する。例えば、一部の実施例では、ユーザが「近所の」寿司レストランを要求した場合には、自然言語処理モジュール732は、構造化クエリ内の{場所}パラメータに、ユーザデバイスからのGPS座標を追加入力する。
一部の実施例では、自然言語処理モジュール732は、STT処理モジュール730から受信された各テキスト表現候補に関して、複数の実施可能な意図候補を特定する。更には、一部の実施例では、特定された実施可能な意図候補のそれぞれに関して、対応の(部分的又は完全な)構造化クエリが生成される。自然言語処理モジュール732は、実施可能な意図候補のそれぞれに関する意図信頼性スコアを判定し、その意図信頼性スコアに基づいて、それら実施可能な意図候補をランク付けする。一部の実施例では、自然言語処理モジュール732は、任意の入力済みパラメータを含む、生成された構造化クエリ(単数又は複数)を、タスクフロー処理モジュール736(「タスクフロープロセッサ」)に渡す。一部の実施例では、m個の最良の(例えば、m個の最高ランクの)実施可能な意図候補に関する構造化クエリ(単数又は複数)が、タスクフロー処理モジュール736に提供される(mは、ゼロよりも大きい所定の整数である)。一部の実施例では、m個の最良の実施可能な意図候補に関する構造化クエリ(単数又は複数)は、対応するテキスト表現候補(単数又は複数)と共に、タスクフロー処理モジュール736に提供される。
発話入力の複数のテキスト表現候補から判定された複数の実施可能な意図候補に基づく、ユーザ意図の推測の他の詳細は、開示全体が参照により本明細書に組み込まれる、2014年6月6日出願の「System and Method for Inferring User Intent From Speech Inputs」に関する米国実用特許出願第14/298,725号で説明されている。
タスクフロー処理モジュール736は、自然言語処理モジュール732から構造化クエリ(単数又は複数)を受信して、必要に応じて構造化クエリを完成させ、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するように構成されている。一部の実施例では、これらのタスクを完了するために必要な様々な手順が、タスクフローモデル754内で提供される。一部の実施例では、タスクフローモデル754は、ユーザから追加情報を取得するための手順、及び、実施可能な意図に関連付けられたアクションを実行するためのタスクフローを含む。
上述のように、構造化クエリを完成させるためには、タスクフロー処理モジュール736は、追加情報を取得し、及び/又は潜在的に曖昧な発言の曖昧性を除去するために、ユーザとの追加的なダイアログを開始することを必要とする。そのような対話が必要である場合、タスクフロー処理モジュール736は、ユーザとのダイアログに携わるために、ダイアログフロー処理モジュール734を呼び出す。一部の実施例では、ダイアログフロー処理モジュール734は、どのようにして(及び/又は、いつ)ユーザに追加情報を要求するべきかを決定し、そのユーザ応答を受信及び処理する。I/O処理モジュール728を介して、ユーザに質問が提供され、ユーザから回答が受信される。一部の実施例では、ダイアログフロー処理モジュール734は、オーディオ出力及び/又は視覚出力を介して、ユーザにダイアログ出力を提示し、発話応答又は物理的(例えば、クリック)応答を介して、ユーザから入力を受信する。上記の実施例を続けると、タスクフロー処理モジュール736が、ドメイン「レストラン予約」に関連付けられる構造化クエリに関する「参加人数」及び「日付」の情報を決定するために、ダイアログフロー処理モジュール734を呼び出すと、ダイアログフロー処理モジュール734は、「何人分ですか?(For how many people?)」及び「どの日にしますか?(On which day?)」などの質問を生成して、ユーザに渡す。ユーザから回答が受信されると、次いで、ダイアログフロー処理モジュール734は、構造化クエリに、欠落している情報を追加入力するか、又は、構造化クエリから欠落している情報を完成させるために、その情報をタスクフロー処理モジュール736に渡す。
タスクフロー処理モジュール736が、実施可能な意図に関する構造化クエリを完成させると、タスクフロー処理モジュール736は、その実施可能な意図に関連付けられた最終的なタスクの実行に進む。したがって、タスクフロー処理モジュール736は、構造化クエリ内に含まれている特定のパラメータに従って、タスクフローモデル内のステップ及び命令を実行する。例えば、「レストラン予約」の実施可能な意図に関するタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に依頼する、ステップ及び命令を含む。例えば、{レストラン予約、レストラン=ABC Cafe、日付=3/12/2012、時間=午後7時、参加人数=5}などの構造化クエリを使用して、タスクフロー処理モジュール736は、(1)ABC Cafeのサーバ、又はOPENTABLE(登録商標)などのレストラン予約システムにログオンするステップと、(2)ウェブサイト上のフォーム内に日付、時間、及び参加人数の情報を入力するステップと、(3)そのフォームを提出するステップと、(4)ユーザのカレンダー内に、その予約に関するカレンダー項目を入力するステップとを実行する。
一部の実施例では、タスクフロー処理モジュール736は、ユーザ入力で要求されているタスクを完了するために、又は、ユーザ入力で要求されている情報の回答を提供するために、サービス処理モジュール738(「サービス処理モジュール」)の支援を採用する。例えば、サービス処理モジュール738は、タスクフロー処理モジュール736の代わりに、電話通話し、カレンダー項目を設定し、地図検索を呼び出し、ユーザデバイス上にインストールされている他のユーザアプリケーションを呼び出すか若しくはそのユーザアプリケーションと対話し、第三者サービス(例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータルなど)を呼び出すか若しくはその第三者サービスと対話する機能を果たす。一部の実施例では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース(application programming interface;API)は、サービスモデル756の中の対応のサービスモデルによって指定されている。サービス処理モジュール738は、サービスに関する適切なサービスモデルにアクセスし、そのサービスモデルに従った、そのサービスによって必要とされるプロトコル及びAPIに準拠して、そのサービスに関する要求を生成する。
例えば、レストランが、オンライン予約サービスに対応している場合、そのレストランは、予約を行うために必要なパラメータ、及び、その必要なパラメータの値をオンライン予約サービスに通信するためのAPIを指定する、サービスモデルを提出する。タスクフロー処理モジュール736によって要求されると、サービス処理モジュール738は、そのサービスモデル内に記憶されているウェブアドレスを使用して、オンライン予約サービスとのネットワーク接続を確立し、必要な予約パラメータ(例えば、時間、日付、参加人数)を、そのオンライン予約サービスのAPIに従った形式で、オンライン予約インタフェースに送信する。
一部の実施例では、自然言語処理モジュール732、ダイアログフロー処理モジュール734、及びタスクフロー処理モジュール736は、ユーザの意図を推測及び定義し、そのユーザ意図を更に明らかにして絞り込むための情報を取得し、ユーザの意図を満たすための応答(すなわち、ユーザへの出力又はタスクの完了)を最終的に生成するために、集合的かつ反復的に使用される。生成された応答は、ユーザの意図を少なくとも部分的に満たす、発話入力に対するダイアログ応答である。更には、一部の実施例では、生成された応答は、発話出力として出力される。これらの実施例では、生成された応答は、発話合成処理モジュール740(例えば、発話合成器)に送信され、その発話合成処理モジュールで、発話形式のダイアログ応答を合成するように処理することができる。更に他の実施例では、生成された応答は、発話入力内のユーザ要求を満たすことに関連する、データコンテンツである。
タスクフロー処理モジュール736が、自然言語処理モジュール732から複数の構造化クエリを受信する実施例では、タスクフロー処理モジュール736は、最初に、受信された構造化クエリのうちの第1の構造化クエリを処理して、その第1の構造化クエリを完成させるように、及び/又は、その第1の構造化クエリによって表されている1つ以上のタスク若しくはアクションを実行するように試みる。一部の実施例では、第1の構造化クエリは、最高ランクの実施可能な意図に対応する。他の実施例では、第1の構造化クエリは、受信された構造化クエリから、対応する発話認識信頼性スコアと、対応する意図信頼性スコアとの組み合わせに基づいて、選択される。一部の実施例では、タスクフロー処理モジュール736が、第1の構造化クエリの処理中に(例えば、必要なパラメータが判定不能であることにより)エラーに遭遇した場合には、タスクフロー処理モジュール736は、より低いランクの実施可能な意図に対応する、受信された構造化クエリのうちの第2の構造化クエリを選択して処理するように、進むことができる。この第2の構造化クエリは、例えば、対応するテキスト表現候補の発話認識信頼性スコア、対応する実施可能な意図候補の意図信頼性スコア、第1の構造化クエリ内の欠落している必要なパラメータ、又はこれらの任意の組み合わせに基づいて選択される。
発話合成処理モジュール740は、ユーザに提示するための発話出力を合成するように構成されている。発話合成処理モジュール740は、デジタルアシスタントによって提供されたテキストに基づいて、発話出力を合成する。例えば、生成されたダイアログ応答は、テキスト文字列の形態である。発話合成処理モジュール740は、そのテキスト文字列を、可聴の発話出力に変換する。発話合成処理モジュール740は、テキストから発話出力を生成するために、限定するものではないが、波形接続合成、単位選択合成、ダイフォン合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル(hidden Markov model;HMM)に基づく合成、及びサイン波合成を含めた、任意の適切な発話合成技術を使用する。一部の実施例では、発話合成処理モジュール740は、個々の単語を、その単語に対応する音素列に基づいて合成するように構成されている。例えば、生成されたダイアログ応答内の単語に、音素列が関連付けられる。この音素列は、その単語に関連付けられたメタデータ内に記憶されている。発話合成処理モジュール740は、そのメタデータ内の音素列を直接処理して、発話形式の単語を合成するように構成されている。
一部の実施例では、発話合成処理モジュール740を使用する代わりに(又は、それに加えて)、発話合成は、リモートデバイス(例えば、サーバシステム108)上で実行され、合成された発話は、ユーザに出力するためにユーザデバイスに送信される。例えば、このことは、デジタルアシスタントに対する出力がサーバシステムで生成される、一部の実装形態で実施することができる。また、サーバシステムは、一般に、ユーザデバイスよりも多くの処理能力又はリソースを有するため、クライアント側での合成の場合に実用的となる出力よりも、高品質の発話出力を得ることが可能である。
デジタルアシスタントについての更なる詳細は、開示全体が参照により本明細書に組み込まれる、2011年1月10日出願の「Intelligent Automated Assistant」と題された米国実用特許出願第12/987,982号、及び2011年9月30日出願の「Generating and Processing Task Items That Represent Tasks to Perform」と題された同第13/251,088号に見出すことができる。
4.促進されたタスク実行
図8A~図8AFは、一部の実施形態による、電子デバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス600、又はデバイス700)上に提案を提供するための、例示的なユーザインタフェースである。これらの図中のユーザインタフェースは、図9A、図9Bでのプロセスを含めた、以下で説明されるプロセスを例示するために使用される。
図8Aは、電子デバイス800(例えば、デバイス104、デバイス122、デバイス200、デバイス600、又はデバイス700)を示す。図8A~図8AFに示される非限定的な例示的実施形態では、電子デバイス800は、スマートフォンである。他の実施形態では、電子デバイス800は、ウェアラブルデバイス(例えば、スマートウォッチ)などの、異なるタイプの電子デバイスとすることができる。一部の実施例では、電子デバイス800は、ディスプレイ801、1つ以上の入力デバイス(例えば、ディスプレイ801のタッチスクリーン、ボタン、マイクロフォン)、及び無線通信装置(wireless communication radio)を有する。一部の実施例では、電子デバイス800は、複数のカメラを含む。一部の実施例では、この電子デバイスは、1つのみのカメラを含む。一部の実施例では、この電子デバイスは、赤外線カメラ、サーモグラフィカメラ、又はそれらの組み合わせなどのカメラを任意選択的に含む、1つ以上のバイオメトリックセンサ(例えば、バイオメトリックセンサ803)を含む。
図8Aでは、電子デバイス800は、電子デバイスがロック状態にある間、ディスプレイ801上に、ロック画面インタフェース804などのロック画面インタフェースを表示する。ロック画面インタフェース804は、提案アフォーダンス806及び通知808を含む。図示のように、提案アフォーダンス806は、「コーヒー」という名前のアプリケーションに関連付けられており、通知808は、この電子デバイスが、その電子デバイス上に記憶されている連絡先(「John Appleseed」)から新しいメッセージを受信したことを示す、メッセージングアプリケーションに関連付けられたメッセージ通知である。一部の実施例では、アプリケーション(例えば、第三者アプリケーション)は、提案アフォーダンスが表示される方式を指定することができる。アプリケーションは、例えば、提案アフォーダンスの色を指定することができる。一部の実施例では、ロック状態にある間、電子デバイス800は、セキュリティ保護方式で動作する。例として、ロック状態で動作している間に、電子デバイス800は、提案アフォーダンス806に関連付けられているタスク提案のコンテンツ、又は通知808に関連付けられているメッセージを表示しない。一部の実施形態では、このロック状態は、他のデータ(他のアプリケーションを含む)へのアクセスに対する制約、及び/又は、許容入力に対する制限に、更に対応するものである。
一部の実施例では、提案アフォーダンス806は第1の方式で表示され、通知808は第2の方式で表示される。一例として、提案アフォーダンス806は、第1の色を使用して表示され、通知808は、第1の色とは異なる第2の色を使用して表示される。別の例として、提案アフォーダンス806は、第1の形状を使用して表示することができ、通知808は、第1の形状とは異なる第2の形状を使用して表示することができる。
一部の実施例では、ロック状態で動作している間に、電子デバイスは、その電子デバイスのユーザを認証する。例えば、バイオメトリックセンサ803(例えば、顔認識、指紋認識)を使用して、又は有効なパスコード(例えば、パスワード、数値パスコード)の入力に応答して、ユーザを認証することができる。一部の実施例では、ユーザの認証に応答して、電子デバイス800は、アンロック状態に移行して、ロック画面インタフェース810を表示する。一部の実施例では、ロック画面インタフェース810を表示している間に、電子デバイス800は、ロック状態からアンロック状態に電子デバイス800が移行していることを示す、アニメーションを表示する(例えば、ロックインジケータ805が、ロック状態からアンロック状態に移行する)。
一部の実施例では、アンロック状態で動作している間に、電子デバイス800は、非セキュリティ保護方式で動作する(例えば、認証済みユーザは、セキュリティ保護されたデータにアクセス可能である)。例として、図8Bに示されるように、電子デバイス800は、提案アフォーダンス806に関連付けられているタスク提案のコンテンツ、及び通知808に関連付けられているメッセージを表示する。図示のように、例示的には、提案アフォーダンスに関連付けられているタスク提案のコンテンツは、そのタスク提案に関連付けられているタスクを示すタスクインジケータ812と、そのタスクに関連付けられている1つ以上のパラメータとを含む。
ロック画面インタフェース810を表示している間に、電子デバイス800は、提案アフォーダンス806の選択(例えば、アクティブ化)を検出する。例えば、図8Cに示されるように、この選択は、提案アフォーダンス806上でのタップジェスチャ816である。以下でより詳細に説明されるように、タップジェスチャ816の検出に応答して、電子デバイス800は、提案アフォーダンス806に関連付けられているタスクを選択的に実行する。そのタスクが第1のタイプのタスク(例えば、バックグラウンドタスク)である場合には、電子デバイス800は、更なるユーザ入力を必要とすることなく、そのタスクを実行する。電子デバイス800は、更に、図8Hに示されるように、提案アフォーダンス806の表示を中止することができる。
図8Dを参照すると、そのタスクが、第1のタイプとは異なる第2のタイプのタスクである場合には、電子デバイス800は、確認インタフェース820などの確認インタフェースを表示する。確認インタフェース820は、タスクコンテンツ822、確認アフォーダンス824、及びキャンセルアフォーダンス826を含む。一部の実施例では、タスクコンテンツ822は、アプリケーションインジケータ828、アプリケーションアイコン830、及びタスクインジケータ832のうちの1つ以上を含む。一部の実施例では、アプリケーションインジケータ828は、そのタスクに関連付けられているアプリケーションを示す。アプリケーションインジケータ828は、アプリケーションの名前(例えば、「コーヒー」)、及び/又はアプリケーションに関連付けられているアイコンを含む。アプリケーションアイコン830は、タスク及び/又はタスクに関連付けられたアプリケーションに関連付けられている、アイコン(又は、他の画像)を含む。タスクインジケータ832は、提案アフォーダンスに対応するタスク(「注文する」)、及び/又は、そのタスクに関連付けられている1つ以上のパラメータ(スモール、ラッテ、Homestead Rd.Cupertino CA)を示す。
一部の実施例では、キャンセルアフォーダンス826の選択に応答して、電子デバイス800は、確認インタフェース820の表示を中止する。一部の実施例では、アプリケーションインジケータ828は、アプリケーションアフォーダンスとして実装されており、アプリケーションインジケータ828の選択に応答して、電子デバイス800は、タスクに関連付けられているアプリケーション(例えば、「コーヒー」)を開く。一部の実施例では、アプリケーションアイコン830が、アプリケーションアフォーダンスとして実装されており、アプリケーションアイコン830の選択に応答して、電子デバイス800は、タスクに関連付けられているアプリケーションを開く。
一部の実施例では、アプリケーションを開くことは、そのアプリケーションに1つ以上のパラメータをプリロードすることを含む。例えば、提案アフォーダンス806は、コーヒーアプリケーションを使用して注文するためのタスクに関連付けられており、そのタスクに関連付けられているパラメータは、コーヒーのサイズ(例えば、スモール)、コーヒーのタイプ(例えば、ラッテ)、及び注文を受け取るための位置(Cupertino CAのHomestead Rd.の位置)を含む。したがって、一部の実施例では、この方式でアプリケーションを開くことは、ユーザに代わって、そのタスクの1つ以上のパラメータを挿入することを含む。例として、アプリケーションインジケータ828又はアプリケーションアイコン830を選択することによって、アプリケーションを開くことにより、電子デバイスに、コーヒーアプリケーションを開かせることができ、Homestead Rd.の位置でのスモールラッテの注文をユーザが確認することが可能なインタフェース(例えば、ショッピングカートのインタフェース)を提示させることができる。一部の実施例では、パラメータがプリロードされていることにより、電子デバイスは、タスクを実行する意図を確認する入力に応答して、そのタスクを実行する。この方式で、ユーザがアプリケーションを使用して特定のタスクを実行するために必要とされる入力の数を、削減することができる。
一部の実施例では、アプリケーション(例えば、第三者アプリケーション)は、確認アフォーダンスが表示される方式を指定することができる。アプリケーションは、例えば、確認アフォーダンスの色を指定することができる。一部の実施例では、確認インタフェース820を表示している間に、電子デバイス800は、確認アフォーダンス824の選択を検出する。例えば、図8Eに示されるように、この選択は、確認アフォーダンス824上でのタップジェスチャ836である。タップジェスチャ836の検出に応答して、電子デバイス800は、タスクを実行する。一部の実施例では、タスクを実行している間に、電子デバイス800は、任意選択的に、そのタスクが実行中であることを示すプロセスインジケータ840を表示する。一部の実施例では、プロセスインジケータ840の表示は、確認アフォーダンス824の表示に置き換わるものである。
タスクが実行されると、電子デバイス800は、そのタスクの実行が成功したか否かを示す出力を提供する。図8Gの実施例では、タスクの実行が成功しており、結果として、電子デバイス800は、そのタスクの実行が成功したことを示す、成功インジケータ842を表示する。一部の実施例では、成功インジケータ842の表示は、プロセスインジケータ840の表示に置き換わるものである。一部の実施例では、タスクが完了してから所定の時間の後に、電子デバイスは、確認インタフェース820の表示を、ロック画面インタフェース810に置き換える。図示のように、提案アフォーダンス806に関連付けられたタスクが実行されたため、提案アフォーダンス806は、図8Hでのロック画面インタフェース810内には含まれていない。
図8Iの実施例では、タスクの実行が成功しなかった結果として、電子デバイス800は、失敗インタフェース844を表示する。失敗インタフェース844は、再試行アフォーダンス846、キャンセルアフォーダンス848、及びアプリケーションアフォーダンス850を含む。失敗インタフェースは、コンテンツ852を更に含む。一部の実施例では、再試行アフォーダンス846の選択に応答して、電子デバイス800は、再度そのタスクを実行する。一部の実施例では、キャンセルアフォーダンスの選択に応答して、電子デバイス800は、失敗インタフェース844の表示を中止する。一部の実施例では、アプリケーションアフォーダンス850の選択に応答して、電子デバイス800は、そのタスクに関連付けられているアプリケーションを開く。コンテンツ852は、タスクを実行するために使用される1つ以上のパラメータなどの、そのタスクを対象とする情報を含み得る。一部の実施例では、コンテンツ852は更に、タスクの実行が成功したか否かを指定する。コンテンツ852は、例えば、電子デバイスがタスクの実行を成功させることができなかったこと(例えば、「問題が発生しました。再試行してください。(There was a problem. Please try again.)」)を示し得る。
図8Jでは、提案アフォーダンス806の選択は、提案アフォーダンス806上でのスワイプジェスチャ854である。スワイプジェスチャ854の検出に応答して、電子デバイス800は、提案アフォーダンス806を左方向に変位させて(例えば、スライドさせて)、図8Kに示されるように、表示アフォーダンス856及び消去アフォーダンス858を表示する(例えば、表出させる)。一部の実施例では、表示アフォーダンス856の選択に応答して、電子デバイス800は、確認インタフェース820(図8D)などの確認インタフェースを表示する。一部の実施例では、消去アフォーダンス858の選択に応答して、電子デバイス800は、提案アフォーダンス806を表示することを中止する。
図8Lでは、提案アフォーダンス806の選択は、提案アフォーダンス806上でのスワイプジェスチャ860である。スワイプジェスチャ860の検出に応答して、電子デバイス800は、提案アフォーダンス806を右方向に変位させて(例えば、スライドさせて)、図8Mに示されるように、「開く」アフォーダンス862を表示する(例えば、表出させる)。一部の実施例では、「開く」アフォーダンス862の選択に応答して、電子デバイスは、その提案アフォーダンスのタスクに関連付けられているアプリケーション(例えば、「コーヒー」)を開く。
図8Nでは、電子デバイス800は、ディスプレイ801上に、検索画面インタフェース866などの検索画面インタフェースを表示している。検索画面インタフェース866は、提案アプリケーション868、及び提案アフォーダンス870、872、874を含む。図示のように、提案アフォーダンス870は、メッセージングアプリケーションに関連付けられており、提案アフォーダンス872は、電話アプリケーションに関連付けられており、提案アフォーダンス874は、メディア再生アプリケーションに関連付けられている。
一部の実施例では、提案アフォーダンスは、任意選択的に、その提案アフォーダンスに関連付けられているタスクのカテゴリを示す、グリフ(例えば、グリフ876、878、880)を含む。この方式で指定されるカテゴリは、一部の実施例では、「金融」、「メッセージ」、「電話」、「ビデオ」、及び「メディア」を含み得る。提案アフォーダンス(例えば、図8Aの提案アフォーダンス806)は、例えば、その提案アフォーダンスのタスクがタスクカテゴリに対応していない場合には、グリフを伴わずに表示することができる。図8Nに示される実施例では、提案アフォーダンス870は、テキストメッセージを送信するためのタスクに関連付けられており、したがって、そのタスクがテキストメッセージングに関連付けられていることを示す、メッセージンググリフ876を含む。別の例として、提案アフォーダンス872は、電話通話を開始するためのタスクに関連付けられており、したがって、そのタスクが電話機能に関連付けられていることを示す、電話グリフ878を含む。更に別の例として、提案アフォーダンス874は、ビデオの再生のためのタスクに関連付けられており、したがって、そのタスクがメディア再生に関連付けられていることを示す、再生グリフ880を含む。任意数のタイプのグリフを、任意数のそれぞれのタスクカテゴリに対応させて使用することができる点が、理解されるであろう。
図8N~図8Pは、この検索画面インタフェースなどの検索画面インタフェースにおいて、提案アプリケーション及び提案アフォーダンスを表示することが可能な、様々な方式を示すものである。図8Nに示されるように、少なくとも一実施例では、提案アプリケーション及び提案アフォーダンスは、検索画面インタフェースの対応の部分(例えば、部分882、884)内に表示することができる。図8Oに示されるように、少なくとも一実施例では、提案アプリケーション及び提案アフォーダンスは、検索画面インタフェースの同じ部分(例えば、部分886)内に表示することができる。図8Pに示されるように、少なくとも一実施例では、提案アプリケーション及び各提案アフォーダンスは、検索画面インタフェースの対応の部分(例えば、部分888、890、892、894)内に表示することができる。
一部の実施例では、検索画面インタフェース866を表示している間に、電子デバイス800は、提案アフォーダンス870などの提案アフォーダンスの選択を検出する。一部の実施例では、提案アフォーダンス870に関連付けられているタスクは、所定のタイプのタスク(例えば、バックグラウンドタスク)であるため、電子デバイスは、第1のタイプの入力(例えば、タップジェスチャ)によるアフォーダンス870の選択に応答して、提案アフォーダンス870に関連付けられているタスクを実行する(例えば、自動的に実行する)。更には、又は代替的に、第1のタイプとは異なる第2のタイプの入力によるアフォーダンス870の選択に応答して、電子デバイス800は、ユーザにタスクの確認を要求する、確認インタフェースを表示する。
例えば、図8Qに示されるように、この選択は、確認アフォーダンス824上でのタッチジェスチャ896である。一部の実施例では、タッチジェスチャ896は、タッチジェスチャ896をタップジェスチャと区別することができるような、閾値強度及び/又は閾値持続時間を満たす、タッチ入力である。図8Rに示されるように、タッチジェスチャ896の検出に応答して、電子デバイス800は、確認インタフェース898を表示する。確認インタフェース898は、確認アフォーダンス802A、キャンセルアフォーダンス804A、アプリケーションインジケータ806A、及びコンテンツ808Aを含む。一部の実施例では、キャンセルアフォーダンス804Aの選択は、電子デバイス800に、確認インタフェース898の表示を中止させ、及び/又は、提案アフォーダンス870に関連付けられているタスクを実行することを取り止めさせる。一部の実施例では、アプリケーションインジケータ806Aは、タスクに関連付けられているアプリケーションを示す。アプリケーションインジケータ806Aは、アプリケーションの名前(例えば、「メッセージ」)及び/又はアプリケーションに関連付けられているアイコンを含み得る。コンテンツ808Aは、タスクを実行するために使用される1つ以上のパラメータなどの、そのタスクを対象とする情報を含み得る。例えば、コンテンツ808Aは、テキストメッセージの受信者が連絡先「ママ(Mom)」であり、そのテキストメッセージのテキストが「おはよう(Good Morning)」であることを指定することができる。一部の実施例では、コンテンツ808Aは、アフォーダンスとして実装することができる。
確認インタフェース898を表示している間に、電子デバイス800は、確認アフォーダンス802Aの選択を検出する。例えば、図8Sに示されるように、この選択は、確認アフォーダンス824上でのタップジェスチャ810Aである。タップジェスチャ810Aの検出に応答して、電子デバイス800は、提案アフォーダンス870に関連付けられているタスクを実行する。図8Tに示されるように、一部の実施例では、タスクを実行している間に、電子デバイス800は、任意選択的に、そのタスクが実行中であることを示すプロセスインジケータ812Aを表示する。一部の実施例では、プロセスインジケータ812Aの表示は、確認アフォーダンス802A及びキャンセルアフォーダンス804Aの表示に置き換わるものである。
タスクが実行されると、電子デバイス800は、そのタスクの実行が成功したか否かを示す出力を提供する。図8Uの実施例では、タスクの実行が成功しており、結果として、電子デバイス800は、そのタスクの実行が成功した(例えば、「ママ」へのテキストメッセージの送信が成功した)ことを示す、成功インジケータ814Aを表示する。一部の実施例では、成功インジケータ814Aの表示は、プロセスインジケータ812Aの表示に置き換わるものである。一部の実施例では、タスクが完了してから所定の時間の後に、電子デバイスは、確認インタフェース898の表示を、検索画面インタフェース866に置き換える。図8Vに示されるように、提案アフォーダンス870に関連付けられたタスクが実行されたため、提案アフォーダンス870は、検索画面インタフェース866内には含まれていない。
一部の実施例では、確認インタフェース898を表示している間に、電子デバイス800は、コンテンツ808Aの選択を検出する。例えば、図8Wに示されるように、この選択は、コンテンツ808A上でのタップジェスチャ816Aである。タップジェスチャ816Aの検出に応答して、電子デバイス800は、図8Xに示されるように、提案アフォーダンス870に関連付けられているアプリケーションを開く。
一部の実施例では、この方式でアプリケーションを開くことは、そのアプリケーションに、タスクに関連付けられている1つ以上のパラメータをプリロードすることを含む。この方式で、ユーザは、削減された数の入力を使用して、アプリケーション内でタスクを実行することができる。例として、提案アフォーダンス870に関連付けられているコンテンツ808Aの選択に応答して、電子デバイス800は、メッセージングアプリケーションを開いて、そのメッセージングアプリケーションに、提案アフォーダンス870によって指定されているパラメータをプリロードする。具体的には、メッセージングアプリケーションは、受信者「ママ」にメッセージを提供するための、メッセージングインタフェース817Aを対象とし得るものであり、このメッセージングアプリケーションのメッセージ作成フィールド818A内に、入力文字列「おはよう」を挿入することができる。
メッセージングインタフェース817Aを表示している間に、電子デバイス800は、送信アフォーダンス820Aの選択を検出する。例えば、図8Yに示されるように、この選択は、送信アフォーダンス820A上でのタップジェスチャ822Aである。図8Zでは、タップジェスチャ822Aの検出に応答して、電子デバイス800は、プリロードされているメッセージ(例えば、「おはよう」)を受信者「ママ」に送信する。この方式でパラメータをプリロードすることによって、ユーザは、提案アフォーダンスを使用してアプリケーションを開き、他の方式で可能となる場合よりも少ない入力で、タスクを実行することができる。上述の実施例では、例えば、ユーザは、受信者を選択することも、受信者に対するメッセージを入力することも必要とせずに、テキストメッセージを送信した。
一部の実施例では、アプリケーションは、パラメータをプリロードすることなく開くことができる。図8AAでは、電子デバイス800は、ディスプレイ801上に、検索画面インタフェース826Aなどの検索画面インタフェースを表示している。検索画面インタフェース826Aは、提案アプリケーション282A、及び提案アフォーダンス830A、832Aを含む。図示のように、提案アフォーダンス830Aは、メモアプリケーションに関連付けられており、提案アフォーダンス832Aは、テレビ電話アプリケーションに関連付けられている。更には、提案アフォーダンス830Aは、メモアプリケーションを開くためのタスクに関連付けられている。一部の実施例では、メモアプリケーションに対応するタスクは、タスクカテゴリに対応していない場合があり、したがって、提案アフォーダンス830Aはグリフを含まない。提案アフォーダンス832Aは、ビデオ通話(例えば、スカイプ通話)を開始するためのタスクに関連付けられており、したがって、そのタスクがビデオ通話機能に関連付けられていることを示すビデオグリフ836Aを含む。
検索画面インタフェース826Aを表示している間に、電子デバイス800は、提案アフォーダンス834Aの選択を検出する。例えば、図8AAに示されるように、この選択は、提案アフォーダンス834A上でのタップジェスチャ834Aである。図8ABでは、タップジェスチャ834Aの検出に応答して、電子デバイス800は、提案アフォーダンス830Aに関連付けられているメモアプリケーションを開く。
一部の実施例では、電子デバイスがインタフェースを表示する方式は、本明細書で説明されるように、電子デバイスのタイプに応じて決定される。一部の実施例では、例えば、電子デバイス800は、ロック画面インタフェース804又は検索画面インタフェース866などのインタフェースを表示するために実用的ではない恐れがある、比較的小さいディスプレイを有するデバイスとして実装される場合がある。したがって、一部の実施例では、電子デバイス800は、前述のインタフェースに対する代替的インタフェースを表示することができる。
図8ACを参照すると、例えば、電子デバイス800は、ディスプレイ801上に、ホーム画面インタフェース850Aを表示している。ホーム画面インタフェース850Aは、提案アフォーダンス852A及び通知854Aを含む。図示のように、提案アフォーダンス852Aは、「コーヒー」という名前のアプリケーションに関連付けられており、通知854Aは、ユーザが今後のイベント(「会合(Meeting)」)を有することを示す、カレンダーアプリケーションに関連付けられているカレンダー通知である。
ホーム画面インタフェース850Aは、提案アフォーダンス852Aを含むように示されているが、一部の実施例では、ホーム画面インタフェース850Aは、複数の提案アフォーダンス852Aを含むことが理解されるであろう。例えば、スワイプジェスチャ(例えば、上向きのスワイプジェスチャ、下向きのスワイプジェスチャ)などのユーザ入力に応答して、この電子デバイスは、1つ以上の追加的な提案アフォーダンスを表示する(例えば、表出させる)ことができる。
ホーム画面インタフェース850Aを表示している間に、電子デバイス800は、提案アフォーダンス852Aの選択を検出する。例えば、図8ADに示されるように、この選択は、提案アフォーダンス852A上でのタップジェスチャ858Aである。以下でより詳細に説明されるように、タップジェスチャ858Aの検出に応答して、電子デバイス800は、確認インタフェース820などの確認インタフェースを表示する。確認インタフェース820は、アプリケーションインジケータ861A、タスクインジケータ862A、確認アフォーダンス864A、及びキャンセルアフォーダンス866Aを含む。一部の実施例では、アプリケーションインジケータ861Aは、そのタスクに関連付けられているアプリケーションを示す。アプリケーションインジケータ861Aは、アプリケーションの名前(例えば、「コーヒー」)及び/又はアプリケーションに関連付けられているアイコンを含み得る。タスクインジケータ862Aは、アプリケーションに関連付けられているタスク、及び、そのタスクに関連付けられている1つ以上のパラメータ(スモール、ラッテ、オーツミルク)を示す。
一部の実施例では、キャンセルアフォーダンス866Aの選択に応答して、電子デバイス800は、確認インタフェース860Aの表示を中止する。一部の実施例では、確認インタフェース860Aを表示している間に、電子デバイス800は、確認アフォーダンス864Aの選択を検出する。例えば、図8AEに示されるように、この選択は、確認アフォーダンス864A上でのタップジェスチャ868Aである。タップジェスチャ868Aの検出に応答して、電子デバイス800は、選択的にタスクを実行する。タスクが第1のタイプのタスクである場合には、電子デバイス800は、更なるユーザ入力を使用することなく、そのタスクを実行し、任意選択的に、確認インタフェース860Aの表示を、図8AFに示されるようにホーム画面インタフェース850Aに置き換える。提案アフォーダンス852Aに関連付けられたタスクが実行されたため、提案アフォーダンス852Aは、ホーム画面インタフェース850A内には表示されていない。タスクが第2のタイプのタスクである場合には、電子デバイス800は、説明されたように、タスクを実行する前に、そのタスクのユーザ確認を要求することができる。
図9A、図9Bは、一部の実施形態による、提案を提供するための方法900を示すフロー図である。方法900は、ディスプレイ、1つ以上の入力デバイス(例えば、タッチスクリーン、マイク、カメラ)、及び無線通信装置(例えば、Bluetooth接続、WiFi接続、4G LTE接続などの移動体広帯域接続)を有する、デバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス600、デバイス700、デバイス800)において実行される。一部の実施形態では、ディスプレイは、タッチ感知ディスプレイである。一部の実施形態では、ディスプレイは、タッチ感知ディスプレイではない。一部の実施形態では、この電子デバイスは、複数のカメラを含む。一部の実施形態では、この電子デバイスは、1つのみのカメラを含む。一部の実施例では、この電子デバイスは、赤外線カメラ、サーモグラフィカメラ、又はそれらの組み合わせなどのカメラを任意選択的に含む、1つ以上のバイオメトリックセンサを含む。方法900における一部の動作は、任意選択的に組み合わされ、一部の動作の順序は、任意選択的に変更され、一部の動作は、任意選択的に省略される。
以下で説明されるように、提案アフォーダンスを含むユーザインタフェースを表示し、その提案アフォーダンスの選択に応答して、タスクを実行する確認を選択的に要求することは、電子デバイス上でタスクを実行するための、容易に認識可能かつ直感的な手法をユーザに提供するものであり、それにより、そのようなタスクを実行するために通常であれば必要とされる、ユーザ入力の数が削減される。それゆえ、この方式でユーザインタフェースを表示することにより、デバイスの操作性が向上し、ユーザ-デバイスインタフェースが(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)より効率的なものとなり、更には、ユーザが、より素早くかつ効率的にデバイスを使用することが可能となることによって、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、この電子デバイスは、第1のタスク候補のセットを決定し(902)、その第1のタスク候補のセットからタスクを特定する(904)。一部の実施例では、タスクは、電子デバイスのコンテキストがタスク提案基準を満たしているという判定に基づいて、特定される。
一部の実施例では、ディスプレイ上にユーザインタフェースを表示する前に、電子デバイスは、その電子デバイスの第1のコンテキスト(例えば、その電子デバイスの以前の使用を説明するコンテキストデータ)に基づいて、コンテキスト基準(例えば、タスク提案基準)が満たされているか否かを判定する。一部の実施例では、電子デバイスは、タスク提案が、その提案を表示するための信頼性閾値を満たしているか否かを判定する。一部の実施例では、コンテキスト基準が満たされている(例えば、1つ以上のタスク提案が信頼性閾値を満たしている)という判定に従って、電子デバイスは、第1のタスク候補のセットを決定する。一部の実施例では、電子デバイスは、その電子デバイスの第2のコンテキストに基づいて、ヒューリスティック基準が満たされているか否かを判定する。一部の実施例では、この電子デバイスの第2のコンテキストは、そのデバイスの以前の使用、及び/又は、ユーザに関連付けられているコンテキストデータ(例えば、連絡先、カレンダー、位置)を示す。一部の実施例では、ヒューリスティック基準が満たされているか否かを判定することは、提案タスクの代わりにヒューリスティックなタスク提案が提供されるような、ヒューリスティックなタスク提案に関する条件のセットが満たされているか否かを判定することを含む。一部の実施例では、電子デバイスは、コンテキスト基準が満たされているか否かを判定し、次いで、ヒューリスティック基準が満たされているか否かを判定する。一部の実施例では、電子デバイスは、ヒューリスティック基準が満たされているか否かを判定し、次いで、コンテキスト基準が満たされているか否かを判定する。一部の実施例では、電子デバイスは、コンテキスト基準が満たされているか否か及びヒューリスティック基準が満たされているか否かを、同時に判定する。一部の実施例では、ヒューリスティック基準が満たされているという判定に従って、電子デバイスは、第1のタスク候補のセットとは異なる第2のタスク候補のセットを決定し、その第2のタスク候補のセットからタスクを特定する。一部の実施例では、ヒューリスティック基準が満たされておらず、コンテキスト基準が満たされているという判定に従って、電子デバイスは、第1のタスク候補のセットからタスクを特定する。一部の実施例では、ヒューリスティック基準が満たされておらず、かつコンテキスト基準が満たされていないという判定に従って、電子デバイスは、第1のタスク候補のセットを決定することを取り止め、第2のタスク候補のセットを決定することを取り止める。
この方式でヒューリスティックなタスク提案を提供することにより、電子デバイスは、例えば、以下に記載されるような、それぞれの条件のセットに従って、電子デバイスのコンテキストデータに加えて、ユーザ固有のコンテキストデータに基づいて、タスク提案を提供することが可能となる。このことにより、電子デバイスは、電子デバイス上でタスクを実行するための有力なタスク提案をユーザに提供することが可能となり、それにより、そのようなタスクを実行するために通常であれば必要とされる、ユーザ入力の数が削減される。それゆえ、この方式でヒューリスティックなタスク提案を提供することにより、デバイスの操作性が改善され、電子デバイスの使用が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)より効率的なものとなり、更には、ユーザが、より素早くかつ効率的にデバイスを使用することが可能となることによって、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、電子デバイスは、タスクが第1のタイプのタスクであるか否かを判定する(906)。一部の実施例では、タスクが第1のタイプのタスクであるか否かを判定することは、そのタスクがバックグラウンドタスク(例えば、ユーザ確認及び/又は追加ユーザ入力を使用せずに実行することが可能なタスク)であるか否かを判定することを含む。
一部の実施例では、タスクが第1のタイプのタスクであるか否かを判定することは、そのタスクに関連付けられている1つ以上のパラメータが、有効であるか否かを判定することを含む。一部の実施例では、タスクのパラメータは、そのタスクに必要とされる各パラメータに、そのパラメータに関する許容可能な値の範囲又はセットが割り当てられている場合に、有効であり、任意選択的に、タスクに関する任意選択的な各パラメータは、そのパラメータに関する許容可能な範囲又はセット内の値を有するか、あるいは値が割り当てられていない。
一部の実施例では、電子デバイス(104、200、600、700、800)は、その電子デバイスのディスプレイ上に、タスクに関連付けられている提案アフォーダンス(806、870、872、874、834A、854A)を含むユーザインタフェース(804、810、866、826A、850A)を表示する(908)。一部の実施例では、このユーザインタフェースは、ロック画面インタフェース(804、810)である。一部の実施例では、このユーザインタフェースは、検索画面インタフェース(866、826A)である。一部の実施例では、このユーザインタフェースは、ユーザとデジタルアシスタントとの間のダイアログのための、デジタルアシスタントインタフェースである。一部の実施例では、提案アフォーダンスは、電子デバイスによって、及び一部の場合には、電子デバイスのデジタルアシスタントによって提供されるタスク提案に対応する、アフォーダンスである。一部の実施例では、この提案は、タスク固有及び/又はパラメータ固有のものである。一部の実施例では、タスク提案は、電子デバイスのコンテキスト(例えば、位置、WiFi接続性、WiFiネットワーク識別子(例えば、SSID)、使用履歴、時間/日、ヘッドホン接続性など)に基づいて提供される。一部の実施例では、タスク提案は、ユーザインタフェース内に電子デバイスによって表示される他の通知とは、視覚的に区別可能である。
電子デバイスのコンテキストに基づいてタスク提案を提供することにより、電子デバイスは、その電子デバイスの以前のユーザの使用、及び/又は、その電子デバイスの現在の状態に従って、有力なタスク提案を提供することが可能となる。結果として、電子デバイス上でタスクを実行するために必要な、入力の数及び時間が削減され、電子デバイスとのユーザ対話が促進される。このことによりまた、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、ディスプレイ上に、タスクに関連付けられている提案アフォーダンスを含むユーザインタフェースを表示することは、そのタスクが第1のタイプのタスクであることに従って、グリフを有する提案アフォーダンスを表示することと、そのタスクが第2のタイプのタスクであることに従って、グリフを有さない提案アフォーダンスを表示することとを含む。一部の実施例では、グリフは、タスクのタイプ(例えば、バックグラウンドか非バックグラウンドか、タスクがユーザ確認を必要とするか否か)を示す。一部の実施例では、グリフは、そのタスクがユーザ確認を必要としていることを示す、矢印である。一部の実施例では、グリフは、そのタスクが商取引であることを示す、ドル記号(又は、他の通貨記号)である。一部の実施例では、グリフは、円によって取り囲まれている。
一部の実施例では、ディスプレイ上に、タスクに関連付けられている提案アフォーダンスを含むユーザインタフェースを表示することは、そのタスクが第1のタスクのセットに対応しているという判定に従って、第1のタイプのグリフを有する提案アフォーダンスを表示すること(910)を含む。一部の実施例では、タスクのセットは、タスクのカテゴリである。タスクのカテゴリとしては、一部の実施例では、メッセージタスク、電話タスク、テレビ電話タスク、及びメディアタスクが挙げられる。一部の実施例では、タスクの各セットは、1つ以上のそれぞれの第一者アプリケーションに対応している。一部の実施例では、タスクの各セットは、1つ以上の第三者アプリケーションに対応するタスクを更に含む。一部の実施例では、タスクが、特定のタスクのカテゴリに対応するタスクである場合には、そのタスクに対応する提案アフォーダンスダンスは、そのカテゴリを特定するグリフ(876、878、880、836A)を含む。一部の実施例では、ディスプレイ上に、タスクに関連付けられている提案アフォーダンスを含むユーザインタフェースを表示することは、そのタスクが第1のタスクのセットとは異なる第2のタスクのセットに対応しているという判定に従って、第1のタイプとは異なる第2のタイプのグリフを有する提案アフォーダンスを表示すること(912)を更に含む。一部の実施例では、ディスプレイ上に、タスクに関連付けられている提案アフォーダンスを含むユーザインタフェースを表示することは、そのタスクが第1のタスクのセットに対応しておらず、かつ第2のタスクのセットに対応していないという判定に従って、グリフを有さない提案アフォーダンス(830A)を表示することを更に含む。一部の実施例では、タスクが、1つ以上の所定のタスクのカテゴリに対応していない場合には、そのタスクに対応する提案アフォーダンスは、グリフを有さずに表示される(914)。
一部の実施例では、ユーザインタフェース(804、810)は、通知(808)を含む。この通知は、テキストメッセージの受信などのイベントに関する通知とすることができる。一部の実施例では、提案アフォーダンス(806)は第1の方式で表示され、通知(808)は、第1の方式とは異なる第2の方式で表示される。例えば、一部の実施例では、提案アフォーダンスと通知とは、異なる色、色彩設計、及び/又はパターンに対応している。一部の実施例では、提案アフォーダンスと通知とは、異なる形状及び/又はサイズを有する。
通知と提案アフォーダンスとを、本明細書で説明されるように、異なる方式で表示することにより、ユーザは、電子デバイスのディスプレイ上で、通知と提案アフォーダンスとを容易に区別することが可能となり、それにより、タスクを実行するために必要な時間が短縮される。それゆえ、この方式で時間を短縮することにより、デバイスの操作性が向上し、ユーザ-デバイスインタフェースが(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)より効率的なものとなり、更には、ユーザが、より素早くかつ効率的にデバイスを使用することが可能となることによって、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、ユーザインタフェースを表示することは、電子デバイスがロック状態にあるという判定に従って、第1の視覚状態で提案アフォーダンスを表示することを含む。一部の実施例では、デバイスがロックされている場合には、その電子デバイスは、提案アフォーダンスに対応する情報の量を削減して表示する。一部の実施例では、ユーザインタフェースを表示することは、電子デバイスがロック状態ではないという判定に従って、第1の視覚状態とは異なる第2の視覚状態で提案アフォーダンスを表示することを更に含む。一部の実施例では、デバイスがロック解除されている場合には、その電子デバイスは、提案アフォーダンスに対応するコンテンツを表示する。この方式で表示されるコンテンツとしては、限定するものではないが、提案アフォーダンスに関連付けられているアプリケーションの名前及び/又はアイコン、提案アフォーダンスのタスクに関連付けられている1つ以上のパラメータ、並びに、任意選択的に、提案アフォーダンスのタスクのカテゴリを示すグリフが挙げられる。
一部の実施例では、電子デバイスは、1つ以上の入力デバイスを介して、提案アフォーダンスの選択に対応する第1のユーザ入力(816、834A、858A)を検出する(916)。一部の実施例では、提案アフォーダンスは、タッチ入力、ジェスチャ、又はそれらの組み合わせを使用して選択される。一部の実施例では、提案アフォーダンスは、音声入力を使用して選択される。一部の実施例では、タッチ入力は、比較的短い持続時間又は低い強度の押圧などの、第1のタイプの入力である。
一部の実施例では、第1のユーザ入力の検出に応答して(918)、電子デバイスは、そのタスクが第1のタイプのタスクであるという判定に従って、タスクを実行する(920)。一部の実施例では、タスクを実行することは、そのタスクを別の電子デバイスによって実行させることを含む。一部の実施例では、電子デバイスは、第1のタイプのデバイス(例えば、スマートウォッチ)であり、そのタスクを第2のタイプのデバイス(例えば、携帯電話)上で実行させる。
一部の実施例では、第1のユーザ入力の検出に更に応答して(918)、電子デバイスは、そのタスクが第1のタイプのタスクとは異なる第2のタイプのタスクであるという判定に従って、確認アフォーダンスを含む確認インタフェース(820、898、860A)を表示する(922)。一部の実施例では、第2のタイプのタスクは、商取引に対応するタスクなどの、タスクの実行の前にユーザ確認及び/又はユーザからの追加情報を必要とするタスクである。一部の実施例では、第2のタイプのタスクは、スマートウォッチなどの特定のタイプのデバイスによって実行されるタスクである。一部の実施例では、確認インタフェースは、ユーザインタフェースと同時に表示される。確認インタフェースは、例えば、ユーザインタフェースに重ね合わせることができる。一部の実施例では、確認インタフェースは、ユーザインタフェースの第1の部分の上に表示され、ユーザインタフェースの第2の部分は、視覚的に不明瞭化される(例えば、暗くなる、ぼやける)。
提案アフォーダンスの選択に応答して、タスクを実行するための確認を選択的に要求することにより、電子デバイスは、第1のタイプのタスクを迅速に実行することが可能となり、第2のタイプのタスクを実行する前にユーザ意図を確認することが可能となる。結果として、ユーザには、電子デバイス上で迅速かつ確実にタスクを実行するための、直感的かつ確実な手法が提供され、それにより、そのようなタスクを実行するために通常であれば必要とされる、ユーザ入力の数が削減され、タスク実行が促進される。そのような利益により、タスクを実行するために必要な時間が短縮され、電子デバイスの使用がより効率化し、更には、ユーザが、より素早くかつ効率的にデバイスを使用することが可能となることによって、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、確認インタフェースを表示している間に(926)、電子デバイスは、確認アフォーダンス(824、802A、864A)の選択に対応する第2のユーザ入力(836、810A、868A)を検出する(928)。一部の実施例では、確認アフォーダンスは、タッチ入力、ジェスチャ、又はそれらの組み合わせを使用して選択される。一部の実施例では、確認アフォーダンスは、音声入力を使用して選択される。一部の実施例では、第2のユーザ入力の検出に応答して、電子デバイスは、そのタスクを実行する(930)。一部の実施例では、タスクを実行している間に、電子デバイスは、その電子デバイスがタスクを実行中であることを示す、第1の進度インジケータ(840、812A)を表示する。一部の実施例では、電子デバイスがタスクの実行に成功した場合には、電子デバイスは、そのタスクの実行が成功したことを示す、第2の進度インジケータ(842、814A)を表示する。一部の実施例では、タスクの実行及び/又は第2の進度インジケータの表示の後に続けて、電子デバイスは、アプリケーションによって指定された1つ以上の視覚オブジェクト(例えば、「ご注文ありがとうございます(Thank you for your order)」という旨のメッセージ又は画像)を含む、インタフェースを表示する。一部の実施例では、電子デバイスがタスクの実行に成功しなかった場合には、電子デバイスは、そのタスクの実行が成功しなかったことを示す、ユーザへの自然言語出力(例えば、「問題が発生しました。再試行してください(There was a problem. Try again)」)を提供し、そのタスクの実行の更なる試みをユーザが開始することが可能なアフォーダンス(846)を、任意選択的に表示する。
一部の実施例では、確認インタフェースは、アプリケーションアフォーダンス(828、850)を含む。一部の実施例では、アプリケーションアフォーダンスは、提案アフォーダンスに関連付けられているアプリケーション及び/又はタスクを示す(例えば、特定する)アフォーダンスである。一部の実施例では、アプリケーションアフォーダンスは、確認アフォーダンス及び/又はキャンセルアフォーダンス以外の、確認インタフェースの任意の部分である。一部の実施例では、電子デバイスは、アプリケーションアフォーダンスの選択に対応する、第3のユーザ入力を検出する(932)。一部の実施例では、アプリケーションアフォーダンスは、タッチ入力、ジェスチャ、又はそれらの組み合わせを使用して選択される。一部の実施例では、アプリケーションアフォーダンスは、音声入力を使用して選択される。一部の実施例では、第3のユーザ入力の検出に応答して、電子デバイスは、タスクに関連付けられているアプリケーションを実行する(例えば、起動する、開始する)(934)。一部の実施例では、ユーザは、アプリケーションの表示されているアイコン及び/又は名前を選択することにより、その選択アフォーダンスのタスクに対応するアプリケーションを起動する。一部の実施例では、そのアプリケーションには、任意選択的に、1つ以上のパラメータ(例えば、電子メールの件名及び/又は本文)がプリロードされる。
一部の実施例では、提案アフォーダンスは、タスクの実行に影響を及ぼすパラメータの視覚的インジケーションを含む。一部の実施例では、提案アフォーダンスは、1つ以上の指定されたパラメータを使用して実行される(例えば、Starbucksアプリを使用して特定のコーヒーのサイズ及びタイプを注文する、特定のメッセージを有するテキストを送信する)タスクに対応している。一部の実施例では、タスクに関連付けられているアプリケーションを実行することは、そのアプリケーションにパラメータをプリロードすることを含む。一部の実施例では、アプリケーションは、ユーザに代わってタスクのパラメータが入力される(例えば、注文は既にカート内にあり、ユーザは、注文する意図を示すことのみが必要とされ、メッセージはメッセージ作成フィールド内に挿入されており、ユーザは送信する意図を示すことのみが必要とされる)ように実行される。
一部の実施例では、確認インタフェースは、キャンセルアフォーダンスを含む。一部の実施例では、電子デバイスは、キャンセルアフォーダンスの選択に対応する第4のユーザ入力を検出する。一部の実施例では、キャンセルアフォーダンスは、タッチ入力、ジェスチャ、又はそれらの組み合わせを使用して選択される。一部の実施例では、キャンセルアフォーダンスは、音声入力を使用して選択される。一部の実施例では、この第4のユーザ入力の検出に応答して、電子デバイスは、タスクを実行することを取り止める。一部の実施例では、電子デバイスは更に、第4のユーザ入力の検出に応答して、確認インタフェースを表示することを中止する。
一部の実施例では、第1のユーザ入力は、第1のタイプの入力である。一部の実施例では、電子デバイスは、ユーザインタフェースを表示している間に、提案アフォーダンスの選択に対応する第2のタイプのユーザ入力を検出する。一部の実施例では、提案アフォーダンスは、タッチ入力、ジェスチャ、又はそれらの組み合わせを使用して選択される。一部の実施例では、提案アフォーダンスは、音声入力を使用して選択される。一部の実施例では、タッチ入力は、比較的長い持続時間又は高い強度の押圧などの、第2のタイプの入力である。一部の実施例では、この第2のタイプの入力は、第1のタイプの入力とは異なる。一部の実施例では、第2のタイプのユーザ入力の検出に応答して、電子デバイスは、確認インタフェースを表示する。
方法900に関連して上述されたプロセス(例えば、図9A、図9B)の詳細はまた、以下で説明される方法にも、類似の方式で適用可能であることに留意されたい。例えば、方法900は、任意選択的に、方法1100、1300、1500、1700、及び方法1900を参照して説明される、様々な方法の特性のうちの1つ以上を含む。
上述の方法における動作は、汎用プロセッサ(例えば、図2A、図4、及び図6Aに関連して説明されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。更には、図8A~図8AFを参照して上述された動作は、図2A、図1Bに示された構成要素によって任意選択的に実施される。例えば、表示動作908、検出動作916、実行動作920、及び表示動作922は、イベントソータ270、イベント認識部280、及びイベントハンドラ290によって任意選択的に実行される。イベントソータ270内のイベントモニタ271は、タッチ感知面604(図6A)上の接触を検出し、イベントディスパッチャモジュール274は、そのイベント情報をアプリケーション236-1(図2B)に配信する。アプリケーション236-1のそれぞれのイベント認識部280は、そのイベント情報を、それぞれのイベント定義286と比較して、タッチ感知面上の第1の場所での第1の接触が、ユーザインタフェース上のオブジェクトの選択などの、既定のイベント又はサブイベントに対応するか否かを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部280は、そのイベント又はサブイベントの検出に関連付けられているイベントハンドラ290をアクティブ化する。イベントハンドラ290は、アプリケーション内部状態292を更新するために、データアップデータ276若しくはオブジェクトアップデータ277を任意選択的に利用するか又は呼び出す。一部の実施形態では、イベントハンドラ290は、アプリケーションによって表示されているものを更新するために、それぞれのGUIアップデータ278にアクセスする。同様に、図2A、図2Bに示される構成要素に基づいて、どのように他のプロセスを実施することができるかは、当業者には明らかであろう。
図10A~図10AJは、一部の実施形態による、電子デバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス600、又はデバイス700)上に音声ショートカットを提供するための、例示的なユーザインタフェースを示す。これらの図中のユーザインタフェースは、図11A、図11Bでのプロセスを含めた、以下で説明されるプロセスを例示するために使用される。
一般に、図10A~図10AJを参照して説明されるユーザインタフェースは、ユーザが、タスクを対応のユーザ固有フレーズに関連付けることができるように、採用することができる。これらのフレーズを使用して、電子デバイスに、関連付けられたタスクを実行させることができる。
図10Aは、電子デバイス1000(例えば、デバイス104、デバイス122、デバイス200、デバイス600、又はデバイス700)を示す。図10A~図10AJに示される非限定的な例示的実施形態では、電子デバイス1000は、スマートフォンである。他の実施形態では、電子デバイス1000は、ウェアラブルデバイス(例えば、スマートウォッチ)などの、異なるタイプの電子デバイスとすることができる。一部の実施例では、電子デバイス1000は、ディスプレイ1001、1つ以上の入力デバイス(例えば、ディスプレイ1001のタッチスクリーン、ボタン、マイクロフォン)、及び無線通信装置を有する。一部の実施例では、電子デバイス1000は、複数のカメラを含む。一部の実施例では、この電子デバイスは、1つのみのカメラを含む。一部の実施例では、この電子デバイスは、赤外線カメラ、サーモグラフィカメラ、又はそれらの組み合わせなどのカメラを任意選択的に含む、1つ以上のバイオメトリックセンサ(例えば、バイオメトリックセンサ1003)を含む。
図10Aでは、電子デバイス1000は、ディスプレイ1001上に、設定インタフェース1004を表示している。設定インタフェース1004は、タスク候補部分1006、及び追加タスクアフォーダンス1014を含む。タスク候補部分1006は、タスク候補アフォーダンス1008、1010、及びタスク候補アフォーダンス1012を含む。一部の実施例では、追加タスクアフォーダンス1014の選択に応答して、電子デバイス1000は、以下の図10Sに関連して説明されるような、グローバルタスクインタフェース1018Aなどの、グローバルタスクインタフェースを表示する。
一部の実施例では、タスク候補アフォーダンスの選択に応答して、電子デバイス1000は、タスク固有インタフェースを表示する。このタスク固有インタフェースは、一部の実施例では、タスク候補アフォーダンスのタスクに関連付けられている。例として、設定インタフェース1004を表示している間に、電子デバイス1000は、タスク候補アフォーダンス1008の選択を検出する。一部の実施例では、この選択は、タスク候補アフォーダンス1008上でのタップジェスチャ1016である。図10Bに示されるように、タップジェスチャ1016の検出に応答して、電子デバイス1000は、タスク固有インタフェース1018を表示する。タスク固有インタフェース1018は、タスク候補アフォーダンス1008のタスク(例えば、家の側方のカメラを見る)に関連付けることができる。一部の実施例では、タスク候補アフォーダンスを選択することは、そのタスク候補アフォーダンスに対応するタスクに関する、音声ショートカット生成プロセスを開始させるものである。したがって、タスク候補アフォーダンス1008の選択により、タスク候補アフォーダンス1008のタスクに関する、音声ショートカット生成プロセスを開始させることができる。
タスク固有インタフェース1018は、タスクアイコン1020、タスクインジケータ1022、タスク記述子1024、アプリケーションインジケータ1026、候補フレーズ1028、及び録音アフォーダンス1030を含む。一部の実施例では、タスクアイコン1020は、タスクに対応するアイコン又は画像を含む。一部の実施例では、タスクインジケータ1022は、タスクの名前及び/又はタイプを示す。一部の実施例では、タスク記述子1024は、タスクの説明を含み、かつ/又は、そのタスクにリンクさせるためのコマンド若しくはフレーズを、ユーザが記録することができることを示す。一部の実施例では、アプリケーションインジケータ1026は、タスクに対応しているアプリケーションを特定する。アプリケーションインジケータ1026は、例えば、そのアプリケーションの名前、及び/又は、そのアプリケーションに関連付けられているアイコンを含み得る。候補フレーズ1028は、タスクに関連付けるようにユーザが選択することが可能な、提案フレーズを含む。
タスク固有インタフェース1018を表示している間に、電子デバイス1000は、録音アフォーダンス1030の選択を検出する。図10Cに示されるように、録音アフォーダンス1030の選択は、タップジェスチャ1032である。録音アフォーダンス1030の選択に応答して、電子デバイスは、ディスプレイ1001上に、録音インタフェース1034を表示する(例えば、タスク固有インタフェース1018の表示と置き換える)。
図10Dを参照すると、録音インタフェース1034は、キャンセルアフォーダンス1036、「戻る」アフォーダンス1038、プレビュー1042、及び停止アフォーダンス1044を含む。一部の実施例では、キャンセルアフォーダンス1036の選択に応答して、電子デバイスは、録音インタフェース1034の表示を中止して、任意選択的に、音声ショートカット生成プロセスを終了する。一部の実施例では、「戻る」アフォーダンスの選択に応答して、電子デバイスは、タスク固有インタフェース1018を表示する(例えば、録音インタフェース1038の表示と置き換える)。
一部の実施例では、録音インタフェース1034を表示している間に、電子デバイス1000は、電子デバイス1000のオーディオ入力デバイス(例えば、マイクロフォン)を使用して、ユーザから自然言語発話入力を受信する。一部の実施例では、自然言語発話入力を受信している間に、電子デバイス1000は、ライブプレビュー1042などの、その自然言語発話入力のライブプレビューを提供する。図10Dに示されるように、ライブプレビュー1042は、一部の実施例では、自然言語発話入力の1つ以上の聴覚特性を示す、視覚波形である。
図10Eを参照すると、最初に録音インタフェース1034を表示した後、ユーザが所定の時間にわたって自然言語発話入力を提供しない場合には、電子デバイス1000は、任意選択的に、候補フレーズ1046(例えば、「家の側方のライブストリームを見る(View Side of House Live Stream)」)などの候補フレーズを含む、ユーザに対するプロンプトを表示することができる。一部の実施例では、候補フレーズ1046は、候補フレーズ1028(図10C)と同じである。他の実施例では、候補フレーズ1046は、候補フレーズ1028とは異なる。
一部の実施例では、自然言語発話入力を受信している間に、電子デバイス1000は、その自然言語発話入力に対して音声テキスト化変換(例えば、自然言語発話処理)を実行することにより、候補フレーズ1048を提供する。図10F、図10Gに示されるように、この音声テキスト化変換は、自然言語発話入力が受信されている間に実行されるため、その自然言語発話入力が受信されている間に、候補フレーズ1048を、反復的及び/又は継続的に更新することができる。
一部の実施例では、電子デバイス1000は、その候補フレーズが、1つ以上の所定のフレーズ(例えば、「911に電話して(call 911)」)とは異なるものであることを保証する。例として、電子デバイス1000は、その候補フレーズと1つ以上の所定のフレーズのそれぞれとの類似性が、類似性閾値を超過しているか否かを判定する。類似性閾値が満たされていない場合には、電子デバイス1000は、提供されている候補フレーズが十分なものではなく、かつ/又は許容されるものではないことを、ユーザに通知することになる。電子デバイス1000は、別の自然言語発話入力をユーザが提供することを、更に要求することができる。
録音インタフェース1034を表示している間に、電子デバイス1000は、停止アフォーダンス1044の選択を検出する。図10Gに示されるように、録音アフォーダンス1044の選択は、タップジェスチャ1050である。停止アフォーダンスの選択1050に応答して、電子デバイス1000は、図10Hに示されるように、ディスプレイ1001上に、完了インタフェース1052を表示する(例えば、録音インタフェース1034の表示と置き換える)。
完了インタフェース1052は、完了アフォーダンス1054、キャンセルアフォーダンス1056、タスクアイコン1058、タスクインジケータ1060、アプリケーションインジケータ1062、候補フレーズ1064、及び編集アフォーダンス1066を含む。一部の実施例では、キャンセルアフォーダンス1056の選択に応答して、電子デバイス1000は、完了インタフェース1052の表示を中止して、任意選択的に、音声ショートカット生成プロセスを終了する。一部の実施例では、タスクアイコン1058は、タスクに対応するアイコン又は画像を含む。一部の実施例では、タスクインジケータ1060は、タスクの名前及び/又はタイプを示す。一部の実施例では、アプリケーションインジケータ1062は、タスクに対応しているアプリケーションを特定する。アプリケーションインジケータは、例えば、そのアプリケーションの名前、及び/又は、そのアプリケーションに関連付けられているアイコンを含み得る。候補フレーズ1028は、タスクに関連付けるようにユーザが選択することが可能な、提案フレーズである。
一部の実施例では、完了インタフェース1052を表示している間に、電子デバイス1000は、編集アフォーダンス1066の選択を検出する。図10Iに示されるように、編集アフォーダンス1066の選択は、タップジェスチャ1068である。編集アフォーダンスの選択1068に応答して、電子デバイス1000は、図10Jに示されるように、ディスプレイ1001上に、編集インタフェース1070を表示する(例えば、完了インタフェース1052の表示と置き換える)。
編集インタフェース1070は、完了アフォーダンス1072、キャンセルアフォーダンス1074、タスクアイコン1076、タスクインジケータ1078、候補フレーズのランク付け1080、及び再録音アフォーダンス1088を含む。一部の実施例では、キャンセルアフォーダンス1056の選択に応答して、電子デバイス1000は、編集インタフェース1070の表示を中止して、任意選択的に、音声ショートカット生成プロセスを終了する。一部の実施例では、タスクアイコン1076は、タスクに対応するアイコン又は画像を含む。一部の実施例では、タスクインジケータ1078は、タスクの名前及び/又はタイプを示す。
説明されたように、一部の実施例では、電子デバイス1000は、ユーザによって提供された自然言語発話入力に基づいて、候補フレーズ(例えば、候補フレーズ1048)を提供する。一部の実施例では、この方式で候補フレーズを提供することは、複数の候補フレーズ(例えば、候補フレーズ1082、1084、1086)を生成して、最も高いスコア(例えば、テキスト表現信頼性スコア)に関連付けられている候補フレーズを選択することを含む。一部の実施例では、候補フレーズのランク付け1080は、最も高いスコアに関連付けられている候補フレーズを選択する前の、電子デバイス1000によって生成された複数の候補フレーズを含む。一部の実施例では、候補フレーズのランク付け1080は、各候補フレーズのそれぞれのスコアに従って任意選択的にリスト化されている、上位ランクの候補フレーズのセット(例えば、3つ)を含む。図10Jに示されるように、例えば、候補フレーズのランク付け1080は、候補フレーズ1082、1084、及び候補フレーズ1086を含む。候補フレーズ1082は、一部の実施例では、候補フレーズ1064に対応し得る。
一部の実施例では、ユーザは、候補フレーズのランク付け1080の候補フレーズ1082、1084、1086から新たな(又は、同じ)候補フレーズを選択することができる。図10Kに示されるように、例えば、電子デバイス1000は、編集インタフェース1070を表示している間に、候補フレーズ1080の選択を検出する。候補フレーズ1080の選択は、タップジェスチャ1090である。一部の実施例では、候補フレーズ1080の選択に応答して、電子デバイス1000は、候補フレーズ1080を新たな(又は、同じ)候補フレーズとして選択する。一部の実施例では、電子デバイスは、候補フレーズ1080及び完了アフォーダンス1072の双方の選択に応答して、候補フレーズ1080を新たな(又は、同じ)候補フレーズとして選択する。
一部の実施例では、この候補フレーズのランク付けは、ユーザによって意図又は選好されているフレーズを含まない場合がある。したがって、一部の実施例では、再録音アフォーダンス1088の選択に応答して、電子デバイス1000が、録音インタフェース1034などの録音インタフェースを表示する(例えば、編集インタフェース1070の表示と置き換える)ことにより、ユーザは、説明されたように、新たな自然言語発話入力を提供することが可能となる。
一部の実施例では、完了インタフェース1052を表示している間に、電子デバイス1000は、完了アフォーダンス1054の選択を検出する。図10Lに示されるように、完了アフォーダンス1054の選択は、タップジェスチャ1092である。完了アフォーダンス1054の選択に応答して、電子デバイス1000は、その候補フレーズを、タスク候補アフォーダンス1008のタスクに関連付ける。この方式で候補フレーズをタスクに関連付けることによって、ユーザは、その候補フレーズを電子デバイスのデジタルアシスタントに提供(例えば、発話)して、その候補フレーズに関連付けられたタスクをデバイスに実行させることができる。それぞれのタスクに関連付けられた候補フレーズは、本明細書では、音声ショートカットと称される場合がある。一部の実施例では、完了アフォーダンス1054の選択に更に応答して、電子デバイス1000は、図10Mに示されるように、ディスプレイ1001上に、設定インタフェース1004を表示する(例えば、完了インタフェース1052の表示と置き換える)。
一部の実施例では、タスク候補アフォーダンス1008のタスクが、タスクに割り当てられているため、タスク候補アフォーダンス1008は、タスク候補部分1006内には含まれていない。一部の実施例では、タスク候補部分1006は、その代わりに、少なくとも閾値数のタスク候補アフォーダンスをタスク候補部分1006が含むように、タスク候補提案1094を含む。
一部の実施例では、1つ以上のタスク候補アフォーダンスが、対応のタスクに関連付けられている場合には、設定インタフェース1004は、ユーザショートカットアフォーダンス1096を含む。一部の実施例では、設定インタフェース1004を表示している間に、電子デバイス1000は、ユーザショートカットアフォーダンス1096の選択を検出する。図10Nに示されるように、ユーザショートカットアフォーダンス1096の選択は、タップジェスチャ1098である。一部の実施例では、ユーザショートカットアフォーダンス1096の選択に応答して、電子デバイス1000は、図10Oに示されるように、ディスプレイ1001上に、ユーザショートカットインタフェース1002Aを表示する(例えば、設定インタフェース1004の表示と置き換える)。
ユーザショートカットインタフェース1002Aは、編集アフォーダンス1004A、「戻る」アフォーダンス1006A、ショートカットアフォーダンス1008A、及び追加タスクアフォーダンス1010Aを含む。一部の実施例では、「戻る」アフォーダンス1006Aの選択に応答して、電子デバイス1000は、設定インタフェース1004(図10N)を表示する。一部の実施例では、編集アフォーダンス1004Aの選択に応答して、電子デバイス1000は、ショートカットアフォーダンス1008Aに関連付けられている音声ショートカットを削除することが可能なインタフェースを表示する。一部の実施例では、追加タスクアフォーダンス1010Aの選択に応答して、電子デバイス1000は、以下で更に詳細に説明される、図10Sのグローバルタスクインタフェース1018Aなどの、1つ以上のタスク候補アフォーダンス含むインタフェースを表示する。
一部の実施例では、ユーザショートカットインタフェース1002Aを表示している間に、電子デバイス1000は、ショートカットアフォーダンス1008Aの選択を検出する。図10Pに示されるように、ショートカットアフォーダンス1008Aの選択は、タップジェスチャ1004Aである。一部の実施例では、ショートカットアフォーダンス1008Aの選択に応答して、電子デバイス1000は、図10Qに示されるように、ディスプレイ1001上に、ショートカットアフォーダンス1008Aに関する完了インタフェース1054を表示する(例えば、ユーザショートカットインタフェース1002Aの表示と置き換える)。完了インタフェース1054は、削除アフォーダンス1014Aを含み得る。削除アフォーダンス1014Aの選択に応答して、電子デバイス1000は、そのタスクに関連付けられている音声ショートカットを削除する。この方式でショートカットを削除することは、電子デバイス1000のデジタルアシスタントに音声ショートカットを提供することで、電子デバイス1000にタスクを実行させることがないように、その音声ショートカットをタスクから切り離すことを含み得る。
一部の実施例では、設定インタフェース1004を表示している間に、電子デバイス1000は、追加タスクアフォーダンス1014の選択を検出する。図10Rに示されるように、追加タスクアフォーダンス1014の選択は、タップジェスチャ1016Aである。一部の実施例では、ショートカットアフォーダンス1014の選択に応答して、電子デバイス1000は、図10Sに示されるように、ディスプレイ1001上に、グローバルタスクインタフェース1018Aを表示する(例えば、設定インタフェース1004の表示と置き換える)。
グローバルタスクインタフェース1018Aは、複数のアプリケーションのそれぞれに関して、対応するタスク候補アフォーダンスのセットを含む。例として、グローバルタスクインタフェース1018Aは、アクティビティアプリケーションに関連付けられているタスク候補アフォーダンスのセット1020A、カレンダーアプリケーションに関連付けられているタスク候補アフォーダンスのセット1026A、及びミュージックアプリケーションに関連付けられているタスク候補アフォーダンスのセット1036Aを含む。タスク候補アフォーダンスのセット1020Aは、任意選択的に、「トレーニングを開始する(Start Workout)」タスク候補アフォーダンス1022A、及び「毎日の進捗を見る(View Daily Progress)」タスク候補アフォーダンス1024Aを含み得る。タスク候補アフォーダンスのセット1026Aは、任意選択的に、「ランチの招待状を送る(Send Lunch invitation)」タスク候補アフォーダンス1028A、「会合をスケジュールする(Schedule Meeting)」タスク候補アフォーダンス1030A、及び「一日のイベントを消去する(Clear Events for a Day)」タスク候補アフォーダンス1032Aを含み得る。タスク候補アフォーダンスのセット1036Aは、任意選択的に、「トレーニングのプレイリストを再生する(Play Workout Playlist)」タスク候補アフォーダンス1038A、及び「R&Bラジオを開始する(Start R&B Radio)」タスク候補アフォーダンス1040Aを含み得る。
一部の実施例では、グローバルタスクインタフェース1018Aのタスク候補アフォーダンスは、検索可能である。例として、グローバルタスクインタフェース1018Aを表示している間に、電子デバイスは、図10Tのスワイプジェスチャ1046Aなどの、ディスプレイ1001上でのスワイプジェスチャを検出する。スワイプジェスチャ1046Aに応答して、電子デバイスは、図10Uに示されるように、グローバルタスクインタフェース1018Aを下方向にスライドさせることにより、そのグローバルタスクインタフェース1018Aのタスク候補アフォーダンスを検索するために使用することが可能な、検索フィールド1048Aを表示する(例えば、表出させる)。
一部の実施例では、電子デバイス1000によって表示されるタスク候補アフォーダンスの各セットは、それぞれのアプリケーションに関する、利用可能な全てのタスク候補アフォーダンスのサブセットとすることができる。したがって、ユーザは、アプリケーション固有のタスクリストアフォーダンス1034A、1042Aなどの、アプリケーションタスクリストアフォーダンスを選択することにより、そのアプリケーションタスクリストアフォーダンスに対応しているアプリケーションに関する、1つ以上の更なるタスク候補アフォーダンスを表出させることができる。例えば、グローバルタスクインタフェース1018Aを表示している間に、電子デバイス1000は、アプリケーションタスクリストアフォーダンス1042Aの選択を検出する。図10Vに示されるように、アプリケーションタスクリストアフォーダンス1042Aの選択は、タップジェスチャ1050Aである。一部の実施例では、アプリケーションタスクリストアフォーダンス1042Aの選択に応答して、電子デバイス1000は、図10Wに示されるように、ディスプレイ1001上に、アプリケーションタスクインタフェース1052Aを表示する(例えば、グローバルタスクインタフェース1018Aの表示と置き換える)。図示のように、アプリケーションタスクインタフェース1052Aは、選択された場合に電子デバイス1000にグローバルタスクインタフェース1018Aを表示させる「戻る」アフォーダンスと、タスク候補アフォーダンス1054A~1070Aとを含む。
一部の実施例では、設定インタフェース1004を表示している間に、電子デバイス1000は、図10Xのスワイプジェスチャ1074Aなどの、ディスプレイ1001上でのスワイプジェスチャを検出する。図10Yに示されるように、スワイプジェスチャ1074Aに応答して、電子デバイス1000は、設定インタフェース1004を上方向にスライドさせることにより、様々な設定を表示する(例えば、表出させる)。これらの設定は、有効化された場合に、図8A~図8AFを参照して説明されたものなどのタスク候補アフォーダンス及び提案アフォーダンスが、電子デバイス1000によって表示される方式を調節するものである。例えば、設定インタフェース1004は、ショートカット有効化設定1076Aを含み、この設定は、有効化された場合、電子デバイス1000が、本明細書で説明されるようにタスク候補アフォーダンスを表示することを可能にする。別の例として、設定インタフェース1004は、検索提案有効化設定1078Aを含み、この設定は、有効化された場合、電子デバイス1000が、検索画面インタフェース上に提案アフォーダンスを表示することを可能にする。別の例として、設定インタフェース1004は、「調べる」提案有効化設定1080Aを含み、この設定は、有効化された場合、電子デバイス1000が、「調べる」結果画面インタフェース上に提案アフォーダンスを表示することを可能にする。更に別の例として、設定インタフェース1004は、ロック画面提案有効化設定1082Aを含み、この設定は、有効化された場合、電子デバイス1000が、ロック画面インタフェース上に提案アフォーダンスを表示することを可能にする。
設定インタフェース1004は、それぞれが対応のアプリケーションに関連付けられている、アプリケーションアフォーダンス1084A及びアプリケーションアフォーダンス1086Aを更に含む。一部の実施例では、設定インタフェース1004を表示している間に、電子デバイス1000は、アプリケーションアフォーダンス1086Aの選択を検出する。図10Yに示されるように、アプリケーションアフォーダンス1086Aの選択は、タップジェスチャ1088Aである。一部の実施例では、アプリケーションアフォーダンス1086Aの選択に応答して、電子デバイス1000は、図10Zに示されるように、ディスプレイ1001上に、アプリケーション設定インタフェース1090Aを表示する(例えば、設定インタフェース1004の表示と置き換える)。
一部の実施例では、アプリケーション設定インタフェース1090Aは、例えば本明細書で説明される音声ショートカット生成プロセスを使用して、ユーザによって以前に生成された音声ショートカットに対応し得る、アプリケーションユーザショートカットアフォーダンス1092Aを含む。アプリケーション設定インタフェース1090Aは、タスク候補アフォーダンス1094A~1098Aを更に含み得るものであり、それらのアフォーダンスのそれぞれは、アプリケーション設定インタフェース1090Aのアプリケーションに関連付けられている、それぞれのタスクに対応し得る。一部の実施例では、アプリケーション設定インタフェース1090Aは、アプリケーションタスクリストアフォーダンス1002Bを更に含む。一部の実施例では、アプリケーションタスクリストアフォーダンス1002Bの選択に応答して、電子デバイス1000は、ディスプレイ1001上に、アプリケーションタスクインタフェース1052A(図10W)などの、アプリケーションタスクインタフェースを表示する(例えば、アプリケーション設定インタフェース1090Aの表示と置き換える)。一部の実施例では、アプリケーション設定インタフェース1090Aは、アプリケーション提案有効化設定1004Bを更に含み、この設定は、有効化された場合、電子デバイス1000が、検索画面インタフェース、「調べる」結果画面インタフェース、及び/又はキーボードインタフェース上に、そのアプリケーションに関連付けられている提案アフォーダンスを表示することを可能にする。一部の実施例では、アプリケーション設定インタフェース1090Aは、アプリケーション提案有効化設定1006Bを更に含み、この設定は、有効化された場合、電子デバイス1000が、ロック画面インタフェース上に、そのアプリケーションに関連付けられている提案アフォーダンスを表示することを可能にする。
一部の実施例では、アプリケーション設定インタフェース1090Aは、編集アフォーダンス1010Bを更に含む。一部の実施例では、アプリケーション設定インタフェース1090Aを表示している間に、電子デバイス1000は、編集アフォーダンス1010Bの選択を検出する。図10AAに示されるように、編集アフォーダンス1010Bの選択は、タップジェスチャ1012Bである。一部の実施例では、編集アフォーダンス1010Bの選択に応答して、電子デバイス1000は、図10ABに示されるように、ディスプレイ1001上に、アプリケーション固有編集インタフェース1014Bを表示する(例えば、アプリケーション設定インタフェース1090Aの表示と置き換える)。一部の実施例では、アプリケーション固有編集インタフェース1014Bは、アプリケーション設定インタフェース1090Aの第1の部分の上に表示され、アプリケーション設定インタフェース1090Aの第2の部分は、視覚的に不明瞭化される(例えば、暗くなる、ぼやける)。
一部の実施例では、アプリケーション設定インタフェース1090Aを表示することは、アプリケーション設定インタフェース1090Aの各アプリケーションユーザショートカットアフォーダンス(例えば、アプリケーションユーザショートカットアフォーダンス1092A)に関する、選択アフォーダンス(例えば、選択アフォーダンス1020B)を表示することを含む。例示的動作では、電子デバイス1000は、対応するアプリケーションユーザショートカットアフォーダンス1092Aの選択、及び、アプリケーションユーザショートカットアフォーダンス1092Aを削除するユーザの意図を示す、選択アフォーダンス1020Bの選択を検出する。一部の実施例では、ユーザは、確認アフォーダンス1018Bを選択することによって、削除を確認することができ、又は、キャンセルアフォーダンス1016Bを選択することによって、削除を取り止めることもできる。
図10ACでは、電子デバイス1000は、特定のアプリケーションに関するアプリケーション許可インタフェース1022Bを表示している。アプリケーション許可インタフェース1022は、提案許可アフォーダンス1026Bを含む。アプリケーション許可インタフェース1022を表示している間に、電子デバイス1000は、提案許可アフォーダンス1026Bの選択を検出する。図10ACに示されるように、提案許可アフォーダンス1026Bの選択は、タップジェスチャ1032Bである。一部の実施例では、提案許可アフォーダンス1026Bの選択に応答して、電子デバイス1000は、ディスプレイ1001上に、図10ADのアプリケーション設定インタフェース1034Bなどの、アプリケーション設定インタフェースを表示する(例えば、アプリケーション固有許可インタフェース1022Bの表示と置き換える)。
一部の実施例では、音声ショートカット生成プロセスは、アプリケーション固有設定インタフェースを使用して開始させることができる。したがって、一部の実施例では、アプリケーション設定インタフェース1034Bは、タスク候補アフォーダンス1038Bを含み得る。一部の実施例では、アプリケーション設定インタフェース1034Bを表示している間に、電子デバイス1000は、タスク候補アフォーダンス1038Bの選択を検出する。図10AEに示されるように、タスク候補アフォーダンス1038Bの選択は、タップジェスチャ1050Bである。提案候補アフォーダンス1038Bの選択に応答して、電子デバイス1000は、図10AFに示されるように、タスク候補アフォーダンス1038Bのタスクに関連付けられているタスク固有インタフェース1054Bを表示する。
図AF~図AHを参照すると、ユーザは、その後、電子デバイスに自然言語発話入力(例えば、「私にコーヒーを(Coffee Me)」)を提供することによって、音声ショートカットを生成することができ、電子デバイスは、上述のように、タスク候補アフォーダンス1038Bのタスク(例えば、近所のコーヒーショップに、オーツミルクを使用したラージラッテを注文すること)に関連付けるための候補フレーズを提供する。そのタスクに関する音声ショートカットが生成されると、電子デバイス1000は、アプリケーション設定インタフェース1034Bを表示する。図10AIに示されるように、アプリケーション設定インタフェース1034Bは、アプリケーションユーザショートカットアフォーダンス1036Bを含む。一部の実施例では、アプリケーション固有ユーザショートカットアフォーダンス1036Bの選択に応答して、電子デバイスは、そのアプリケーションのタスクに関連付けられている音声ショートカットを表示する。
一部の実施例では、音声ショートカット生成プロセスは、第三者アプリケーションインタフェースなどのアプリケーションインタフェースを使用して、開始させることができる。図10AJに示されるように、例えば、ユーザは、アプリケーションを使用してタスクを完了する(例えば、コーヒーを注文する)ことができる。それに応答して、アプリケーションは、タスク候補提案アフォーダンス1062Bを含むタスク完了インタフェース1060Bを表示することができる。一部の実施例では、タスク候補提案アフォーダンス1062Bの選択に応答して、電子デバイスは、音声ショートカット生成プロセスを開始する。
図11A、図11Bは、一部の実施形態による、音声ショートカットを提供するための方法を示すフロー図である。方法1100は、ディスプレイ、1つ以上の入力デバイス(例えば、タッチスクリーン、マイク、カメラ)、及び無線通信装置(例えば、Bluetooth接続、WiFi接続、4G LTE接続などの移動体広帯域接続)を有する、デバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス600、デバイス700、デバイス1000)において実行される。一部の実施形態では、ディスプレイは、タッチ感知ディスプレイである。一部の実施形態では、ディスプレイは、タッチ感知ディスプレイではない。一部の実施形態では、この電子デバイスは、複数のカメラを含む。一部の実施形態では、この電子デバイスは、1つのみのカメラを含む。一部の実施例では、この電子デバイスは、赤外線カメラ、サーモグラフィカメラ、又はそれらの組み合わせなどのカメラを任意選択的に含む、1つ以上のバイオメトリックセンサを含む。方法1100における一部の動作は、任意選択的に組み合わされ、一部の動作の順序は、任意選択的に変更され、一部の動作は、任意選択的に省略される。
以下で説明されるように、自然言語発話入力に基づいて候補フレーズを提供し、候補フレーズを対応のタスクに関連付けることにより、ユーザは、電子デバイス上でタスクを実行するために使用することが可能なユーザ固有の音声ショートカットを、正確かつ効率的に生成することが可能となる。例えば、この方式でユーザが音声ショートカットをタスクに関連付けることを、可能にすることにより、ユーザは、所望の音声ショートカットが選択されて正しいタスクに割り当てられていることを、視覚的に確認することが可能となり、それにより、不正確又は不要な関連付けの可能性が低減する。それゆえ、説明された方式で候補フレーズを提供することにより、より効率的な電子デバイスの使用が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)もたらされ、更には、ユーザが、より素早くかつ効率的にデバイスを使用することが可能となることによって、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、電子デバイス(104、200、600、700、1000)は、タスクに関連付けられたタスク候補アフォーダンス(1008、1038B)を含む、複数のタスク候補アフォーダンス(1008、1010、1012、1038B)を表示する(1102)。一部の実施例では、それら複数のタスクは、設定インタフェース又はアプリケーションインタフェース内に表示される。一部の実施例では、複数のタスクのうちの各タスクは、例えば、電子デバイスのコンテキストに基づいて提案されるタスクである。
一部の実施例では、電子デバイスが、タスクに関連付けられたタスク候補アフォーダンスを含む、複数のタスク候補アフォーダンスを表示することは、それら複数のタスク候補アフォーダンスを含むアプリケーションインタフェース(1034B)を表示することを含む。一部の実施例では、アプリケーションインタフェースは、ユーザが第1のユーザインタフェースの表示を引き起こすことを選択し、それにより、選択されたタスクに関する音声ショートカットを作成することが可能な、1つ以上のアフォーダンス(それぞれの1つ以上のタスク候補に対応するもの)を含む第三者アプリケーションのインタフェース(1062B)である。一部の実施例では、第1のユーザインタフェース(1018)は、アプリケーションインタフェース上に重ね合わせられる。一部の実施例では、第1のユーザインタフェースは、アプリケーションインタフェースの一部分にわたって重ね合わせられる。一部の実施例では、第1のユーザインタフェースは、アプリケーションインタフェースの全体にわたって重ね合わせられる。一部の実施例では、1つ以上のアフォーダンスは、1つ以上のそれぞれのタスクに対応しており、それら1つ以上のタスクの完了に応答して表示される。
一部の実施例では、電子デバイスは、タスクに関連付けられたタスク候補アフォーダンスの選択に対応する第1のユーザ入力(1016)を含む、入力のセット(1016、1032)を検出する(1104)。
一部の実施例では、電子デバイスは、第1のユーザ入力に応答して、タスクに関連付けられた第4のインタフェース(1018)を表示する。一部の実施例では、第4のユーザインタフェースは、音声ショートカットを生成するための、初期タスク固有インタフェースである。一部の実施例では、このインタフェースは、タスクを音声ショートカット(1022)に関連付けるように指定するものであり、更に、関連するアプリケーションのインジケーション(例えば、アプリケーションの名前)(1026)及び/又はアプリケーションに関連付けられている(例えば、アプリケーションによって供与されている)アイコン(1020、1026)を含む。一部の実施例では、このインタフェースは、キャンセルアフォーダンスを含む。このキャンセルアフォーダンスの選択に応答して、電子デバイスは、直前のインタフェースに戻る。一部の実施例では、このインタフェースは、録音アフォーダンス(1030)を含む。録音アフォーダンスの選択に応答して、電子デバイスは、音声記録インタフェース(1034)を表示している間に、発話入力を録音する。一部の実施例では、第4のインタフェースは、第1の提案音声ショートカットフレーズ(1028)を含む。一部の実施例では、電子デバイスは、関連するタスクのための音声ショートカットとしてユーザが採用することが可能な、提案音声ショートカットを表示する。
一部の実施例では、ユーザ入力のセットの検出に応答して、電子デバイスは、タスクに関連付けられる音声ショートカットを生成するための第1のインタフェース(1034)を表示する(1106)。一部の実施例では、この第1のインタフェースは、音声記録インタフェースである。一部の実施例では、この音声記録インタフェースは、タスクを開始するための音声ショートカットとして使用されることになるフレーズをユーザに録音させるための、プロンプト(1046)を含む。一部の実施例では、音声記録インタフェースは、ユーザによって提供される自然言語発話入力のライブプレビュー(1042)を含む。一部の実施例では、このライブプレビューは、オーディオ波形である。
一部の実施例では、第1のインタフェースを表示している間に(1108)、電子デバイスは、オーディオ入力デバイスによって自然言語発話入力を受信する(例えば、サンプリングする、取得する、キャプチャする)(1110)。一部の実施例では、この自然言語発話入力は、デバイスのユーザによって発話されるフレーズである。一部の実施例では、電子デバイスは、所定の時間にわたって、及び/又は、ユーザが停止アフォーダンス(1044)を選択するまで、発話入力を受信する。
一部の実施例では、自然言語発話入力を受信している間に、電子デバイスは、その自然言語発話入力の、ライブ(例えば、リアルタイム)プレビューを提供する(例えば、表示する)。一部の実施例では、このライブプレビューは、その自然言語入力の波形、及び/又は、その自然言語入力の音声テキスト化変換のリアルタイム表示である。一部の実施例では、自然言語発話入力のライブプレビューは、その自然言語発話入力の視覚波形である。
一部の実施例では、自然言語発話入力の受信に応答して、電子デバイスは、その自然言語発話入力に基づいて候補フレーズを決定する。一部の実施例では、自然言語発話入力に基づいて候補フレーズを決定することは、自然言語処理を使用して候補フレーズを決定することを含む。一部の実施例では、ユーザが自然言語発話入力を提供している間に、電子デバイスは、自然言語処理を使用して、その自然言語発話入力をテキストに変換する。
一部の実施例では、自然言語発話入力に基づいて候補フレーズを決定することは、その自然言語発話入力を別の電子デバイスに提供し、その別の電子デバイスから候補フレーズの表現(例えば、テキスト表現、ベクトル表現)を受信することを含む。一部の実施例では、電子デバイスは、自然言語発話入力、及び/又はそのNL発話入力の表現をサーバに提供し、サーバは、1つ以上の候補フレーズを返す。
一部の実施例では、自然言語発話入力に基づいて候補フレーズを決定することは、その自然言語発話入力が、フレーズ類似性基準を満たしているか否かを判定することを含む。自然言語発話入力がフレーズ類似性基準を満たしているという判定に従って、電子デバイスは、その自然言語発話入力が類似性基準を満たしているということを示す(例えば、インジケーションを表示する)。一部の実施例では、電子デバイスは、自然言語発話入力が、1つ以上の所定のフレーズ(例えば、「911に電話して(call 911)」)とは異なるものであることを保証する。一部の実施例では、電子デバイスは、自然言語発話入力が、1つ以上の所定のフレーズとは十分に異なるものであることを保証する。例として、電子デバイスは、自然言語発話入力の表現と1つ以上の所定のフレーズのそれぞれとの類似性が、類似性閾値を超過していないことを保証し得る。一部の実施例では、自然言語発話入力が類似性基準を満たしていない場合には、電子デバイスは、提供されている発話入力が十分なものではなく、かつ/又は許容されるものではないことを、ユーザに通知することになる。電子デバイスは、新たな自然言語発話入力をユーザが提供することを、更に要求することができる。一部の実施例では、電子デバイスは、自然言語入力と、記憶されている1つ以上の音声ショートカットに関連付けられたフレーズとを、更に比較する。一部の実施例では、電子デバイスは、ユーザに、新たな自然言語発話入力を提供するように指示し、かつ/又は、その自然言語発話入力に関して、ユーザが1つ以上の他の同様のフレーズの音声ショートカットを置き換えることを意図していることの確認を要求する。一部の実施例では、置き換えられた音声ショートカットは削除される。
一部の実施例では、電子デバイスは、第1のインタフェース(1034)を表示している間に、自然言語発話入力が閾値時間内に受信されたか否かを判定する。一部の実施例では、電子デバイスは、自然言語発話入力が閾値時間内に受信されなかったという判定に従って、第1のインタフェース上に、第2の提案音声ショートカットフレーズ(1046)(「『側方カメラを見せて』のように言うこともできます(You could say something like 'Show me side camera')」)を表示する。一部の実施例では、第1のインタフェース(1034)上に提供された提案音声ショートカットは、第2のインタフェース上に提供された提案音声ショートカット(1028)と同じものである。一部の実施例では、第1のインタフェースの提案音声ショートカットと第2のインタフェースの提案音声ショートカットとは、異なるものである。
一部の実施例では、更に第1のインタフェースを表示している間に、電子デバイスは、第1のインタフェース(1034)内に、自然言語発話入力に基づく候補フレーズ(1046)を表示する(1120)。一部の実施例では、この候補フレーズは、自然言語発話入力の音声テキスト化変換であり、その自然言語入力が電子デバイスによって受信されている間に表示される。一部の実施例では、電子デバイスは、自然言語入力に応答して候補フレーズを表示し、及び/又は、その自然言語発話入力をリアルタイムでテキストに変換する。したがって、一部の実施例では、電子デバイスは、その電子デバイスによって自然言語が受信されている間、候補フレーズの表示を継続的に更新する。
一部の実施例では、候補フレーズを表示した後、電子デバイスは、タッチ感知面を介して、第2のユーザ入力(1092)を検出する(1122)。一部の実施例では、第2のユーザ入力は、完了アフォーダンス(1072)の選択である。一部の実施例では、第2のユーザ入力は、完了インタフェース(1054)の確認アフォーダンスなどの、アフォーダンスの選択である。
一部の実施例では、第2のユーザ入力の検出に応答して、電子デバイスは、候補フレーズをタスクに関連付ける(1124)。一部の実施例では、電子デバイスは、デジタルアシスタントへのユーザによる候補フレーズの口述により、そのタスクの実行がもたらされるように、音声ショートカットを生成する。
一部の実施例では、候補フレーズをタスクに関連付けることは、候補フレーズを第1のアクションに関連付けることと、候補フレーズを第2のアクションに関連付けることとを含む。一部の実施例では、音声ショートカットは、複数のタスクに対応する。一部の実施例では、デジタルアシスタントによって、タスクの組み合わせが提案され、ユーザは、そのタスクの組み合わせの実行を開始することを、1つのフレーズに割り当てることができる。例として、音声ショートカット「家の安全確認を(secure house)」は、照明を消すタスク及びドアをロックするタスクに対応し得る。
一部の実施例では、電子デバイスは、オーディオ入力デバイスによって、ユーザ発話入力(例えば、自然言語発話入力)を受信する。一部の実施例では、電子デバイスは、そのユーザ発話入力が候補フレーズを含むか否かを判定する。一部の実施例では、電子デバイスは、ユーザ発話入力が候補フレーズを含むという判定に従って、タスクを実行する。一部の実施例では、電子デバイスは、ユーザ発話入力が候補フレーズを含まないという判定に従って、タスクを実行することを取り止める。
一部の実施例では、電子デバイスは、候補フレーズをタスクに関連付けた後に、編集アフォーダンスを含む第2のインタフェースを表示する。一部の実施例では、電子デバイスは、音声ショートカット生成プロセスの終了時に、この第2のインタフェースを表示する。一部の実施例では、ユーザは、記憶されている1つ以上の音声ショートカット(1008A)をリスト化しているインタフェース(1004A)内の、音声ショートカットにナビゲートして、その音声ショートカットを選択することにより、第2のインタフェースの表示を引き起こすことができる。一部の実施例では、この第2のユーザインタフェース(1054)は、タスクのテキスト表現(1060)と、タスクのインジケーション(1058)と、候補フレーズ(1064)と、選択された場合に候補ショートカットの表示を引き起こす、編集アフォーダンス(1066)と、選択された場合にデバイスに音声ショートカット生成プロセスをキャンセルさせる、キャンセルアフォーダンス(1056)と、選択された場合に電子デバイスに候補フレーズをタスクに関連付けさせるか、又は、既に関連付けされている場合には、その候補フレーズのタスクとの関連付けを維持させる、完了アフォーダンス(1054)とを含む。
一部の実施例では、電子デバイスは、編集アフォーダンスの選択(1068)を示す、第3のユーザ入力を検出する。一部の実施例では、電子デバイスは、第3のユーザ入力の検出に応答して、その候補フレーズに対応する第1の候補フレーズアフォーダンスと、別の候補フレーズに対応する第2の候補フレーズアフォーダンスとを含む、複数の候補フレーズアフォーダンス(1082、1084、1086)を表示する。一部の実施例では、この別の候補フレーズは、自然言語発話入力に基づくものである。一部の実施例では、電子デバイスは、編集アフォーダンスの選択に応答して、複数の候補フレーズを含む編集インタフェース(1070)を表示する。一部の実施例では、ユーザは、それらの候補フレーズのうちの1つを、タスクに関連付けるために選択することができる。一部の実施例では、複数の候補フレーズのそれぞれは、1つ以上のNLP方法論を使用して、自然言語発話入力に基づいて生成された、音声テキスト化候補である。一部の実施例では、NL発話入力は、別のデバイス(例えば、バックエンドサーバ)に提供され、このバックエンドサーバが、1つ以上の候補フレーズを電子デバイスに返す。一部の実施例では、候補フレーズは、電子デバイス及びバックエンドサーバの双方で生成され、電子デバイスは、1つ以上の「最良の」候補フレーズ(例えば、それぞれの最も高い信頼性スコアに関連付けられた候補フレーズ)を選択する。
一部の実施例では、電子デバイスは、第2の候補フレーズアフォーダンスの選択を示す第4のユーザ入力を含む、別の入力のセット(1090、1092)を検出する。一部の実施例では、電子デバイスは、この別の入力のセットの検出に応答して、別の候補フレーズをタスクに関連付ける。一部の実施例では、ユーザは、タスクに関連付けるための新たな候補フレーズを選択することにより、その新たな候補フレーズを提供することが、タスクの実行を引き起こす。一部の実施例では、新たなタスク候補を関連付けることは、電子デバイスに、そのタスクから、以前に関連付けられていた候補フレーズを切り離させる。
一部の実施例では、電子デバイスは、候補フレーズをタスクに関連付けた後に、第5の入力を検出する(1092)。一部の実施例では、電子デバイスは、この第5のユーザ入力の検出に応答して、別の複数のタスク候補アフォーダンスを表示するが、それら別の複数のタスク候補アフォーダンスは、タスクに関連付けされたタスク候補アフォーダンスを含まない。一部の実施例では、音声ショートカットを作成した後、電子デバイスは、デジタルアシスタント及び/又は1つ以上のアプリケーションによって提案されるタスク候補をリスト化している、設定インタフェース(1004)を表示する。一部の実施例では、以前にタスクが提案されており、そのタスクに関してユーザがショートカットを作成していた場合には、そのタスクは、提案タスクのリストから除去される。
一部の実施例では、電子デバイスは、候補フレーズを別の電子デバイスに提供する。一部の実施例では、生成された音声ショートカットは、後続の発話入力照合のために、バックエンドサーバに提供される。一部の実施例では、生成された音声ショートカット及び関連付けされたタスクは、バックエンドサーバに提供される。一部の実施例では、電子デバイスからバックエンドサーバに入力が提供され、バックエンドサーバは、その入力が音声ショートカットに対応しているか否かを判定する。入力が音声ショートカットに対応しているとバックエンドサーバが判定した場合には、電子デバイスは、タスクを実行する。一部の実施例では、この方式で、ショートカット及びタスクのそれぞれをサーバに提供することにより、その後、同じショートカットを使用して、そのタスクを他の電子デバイス上で実行することが更に可能となる。
方法1100に関連して上述されたプロセス(例えば、図11A、図11B)の詳細はまた、以下で説明される方法にも、類似の方式で適用可能であることに留意されたい。例えば、方法1100は、任意選択的に、方法900、1300、1500、1700、及び方法1900を参照して説明される、様々な方法の特性のうちの1つ以上を含む。例えば、方法1200で説明されるように音声ショートカットを提供することは、方法1300で説明されるような使用に関する音声ショートカットを生成するために、適用することができる。簡潔性のために、これらの詳細は、以下では繰り返さない。
上述の方法における動作は、汎用プロセッサ(例えば、図2A、図4、及び図6Aに関連して説明されたようなもの)又は特定用途向けチップなどの、情報処理装置内の1つ以上の機能モジュールを稼働することによって、任意選択的に実施される。更には、図10A~図10AJを参照して上述された動作は、図2A、図2Bに示される構成要素によって、任意選択的に実施される。例えば、表示動作1102、検出動作1104、表示動作1106、受信動作1110、表示動作1120、検出動作1122、及び関連付け動作1124は、イベントソータ270、イベント認識部280、及びイベントハンドラ290によって、任意選択的に実施される。イベントソータ270内のイベントモニタ271は、タッチ感知面604(図6A)上の接触を検出し、イベントディスパッチャモジュール274は、そのイベント情報をアプリケーション236-1(図2B)に配信する。アプリケーション236-1のそれぞれのイベント認識部280は、そのイベント情報を、それぞれのイベント定義286と比較して、タッチ感知面上の第1の場所での第1の接触が、ユーザインタフェース上のオブジェクトの選択などの、既定のイベント又はサブイベントに対応するか否かを判定する。対応する既定のイベント又はサブイベントが検出されると、イベント認識部280は、そのイベント又はサブイベントの検出に関連付けられているイベントハンドラ290をアクティブ化する。イベントハンドラ290は、アプリケーション内部状態292を更新するために、データアップデータ276若しくはオブジェクトアップデータ277を任意選択的に利用するか又は呼び出す。一部の実施形態では、イベントハンドラ290は、アプリケーションによって表示されているものを更新するために、それぞれのGUIアップデータ278にアクセスする。同様に、図2A、図2Bに示される構成要素に基づいて、どのように他のプロセスを実施することができるかは、当業者には明らかであろう。
図12は、様々な実施例による、タスク提案システム1200を示すブロック図である。図12はまた、図13の方法1300を含めた、以下で説明されるプロセスのうちの1つ以上を例示するためにも使用される。
図12は、例えば、限定するものではないが、デバイス104、200、400、及びデバイス600(図1、図2A、図4、及び図6A、図6B)を含めた、本明細書で説明される電子デバイス上に実装することが可能な、タスク提案システム1200を示す。タスク提案システム1200は、本明細書ではモバイルデバイス上に実装されるように説明されているが、タスク提案システム1200は、電話機、ラップトップコンピュータ、デスクトップコンピュータ、タブレット、ウェアラブルデバイス(例えば、スマートウォッチ)、セットトップボックス、テレビ、ホームオートメーションデバイス(例えば、サーモスタット)、又はこれらの任意の組み合わせ若しくは部分的組み合わせなどの、任意のタイプのデバイス上に実装することができる点が、理解されるであろう。
一般に、タスク提案システム1200は、電子デバイスのコンテキストデータに基づいて、タスク提案を提供する。タスク提案システム1200によって提供されたタスク提案は、図8A~図8AFに関連して説明されたものなどの、提案アフォーダンスを提供するために使用することができる。一部の実施例では、タスク提案システム1200は、確率モデルとして実装される。このモデルは、限定するものではないが、第1段階1210、第2段階1220、及び第3段階1230を含めた、1つ以上の段階を含み得るものであり、これらの段階のそれぞれが、以下で更に詳細に説明される。一部の実施例では、第1段階1210、第2段階1220、及び第3段階1230のうちの1つ以上は、単一の段階に組み合わされる場合があり、及び/又は、複数の段階に分割される場合もある。例として、代替的実装形態では、タスク提案システム1200は、第1段階及び第2段階を含み得るものであり、この第1段階は、第1段階1210及び第2段階1220の双方の機能を実装している。
一部の実施例では、電子デバイスのコンテキストデータは、その電子デバイスの状態又はコンテキストを示す。例として、コンテキストデータは、特定のタスクが実行された時間中の、電子デバイスの様々な特性を示し得る。例えば、電子デバイスによって実行された各タスクに関して、コンテキストデータは、その電子デバイスの位置、その電子デバイスがネットワーク(例えば、WiFiネットワーク)に接続されていたか否か、その電子デバイスが1つ以上の他のデバイス(例えば、ヘッドホン)に接続されていたか否か、並びに/あるいは、そのタスクが実行された時間、日付、及び/又は曜日を示し得る。電子デバイスが、タスクの実行の間に、ネットワーク又はデバイスに接続されていた場合には、コンテキストデータは、そのネットワーク又はデバイスの、それぞれ、名前及び/又はタイプを更に示し得る。コンテキストデータは、タスクに関連付けられている提案アフォーダンスが、以前にユーザに提示されたか否か、及び、その提案アフォーダンスにユーザが応答した方式を、更に示し得る。例えば、コンテキストデータは、ユーザがタスク提案を無視したか、又はタスク提案を使用して対応するタスクを実行したかを示し得る。
一部の実施例では、電子デバイスは、その電子デバイスの動作中に、アプリケーションからコンテキストデータを受信する。一部の実施例では、アプリケーションは、タスクを実行している間に、又はタスクを実行した後に、タスクに関するコンテキストデータを提供する。この方式で提供されるコンテキストデータは、タスク、及び任意選択的に、そのタスクに関連付けられている1つ以上のパラメータを示し得る。一部の実施例では、アプリケーションによって提供されるコンテキストデータは、上述の、タスクが実行されていた間の電子デバイスの状態(例えば、その電子デバイスの位置、その電子デバイスがネットワークに接続されていたか否かなど)を示すデータを更に含む。他の実施例では、アプリケーションによって提供されるコンテキストデータは、タスクが実行されていた間の電子デバイスの状態を示すデータを含まず、アプリケーションからのコンテキストデータの受信に応答して、電子デバイスは、その電子デバイスの状態を示すデータを取得する。
一部の実施例では、コンテキストデータは、複数のコンテキストデータ供与機構のうちのいずれかを使用して、アプリケーションによって提供される。少なくとも一実施例では、コンテキストデータは、アプリケーションの実行に関する情報をそのアプリケーションに返信させる、API呼び出しに応答して、アプリケーションから受信される。例として、ワードプロセッシングアプリケーション(例えば、メモ、Word)は、ユーザによってアクセスされたワードプロセッシング文書の識別子(例えば数値ID、名前)を返すことができる。別の例として、メディア再生アプリケーション(例えば、ミュージック、Spotify)は、現在のメディアアイテム(例えば、曲)、アルバム、プレイリスト、コレクション、及び、そのメディア再生アプリケーションによって提案されている1つ以上のメディアアイテムの識別子を、ユーザに返すことができる。
一部の実施例では、コンテキストデータは、アプリケーションによって実行されたタスクを示す(例えば、特定する)データ構造を、そのアプリケーションに提供させる、API呼び出しに応答して、アプリケーションから受信される。このデータ構造は、例えば、タスクに関連付けられている1つ以上のパラメータに関する値を含み得る。一部の実施例では、このデータ構造は、意図オブジェクトデータ構造として実装される。意図オブジェクトデータ構造を使用する動作の更なる例示的説明は、全体が参照により本明細書に組み込まれる、2016年9月18日出願の、米国特許出願第15/269,728号「APPLICATION INTEGRATION WITH A DIGITAL ASSISTANT」に見出すことができる。
一部の実施例では、コンテキストデータは、アプリケーションによって実行されたタスクを示すアプリケーション固有(例えば、第三者アプリケーション)データ構造を、そのアプリケーションに提供させる、API呼び出しに応答して、アプリケーションから受信される。このアプリケーション固有データ構造は、例えば、タスクに関連付けられている1つ以上のパラメータに関する値を含み得る。このアプリケーション固有データ構造は、任意選択的に、タスク提案を提供する際、そのタスクのいずれのパラメータ値、並びにいずれのパラメータ値の組み合わせを指定することができるかを、更に示し得る。それゆえ、M個のパラメータを有するタスクは、2M-1個もの、許容されるパラメータの組み合わせを有し得るが、アプリケーション固有データ構造は、その許容される組み合わせの数を明示的に削減することができる。一部の実施例では、アプリケーション固有データ構造は、図8A~図8AFに関連して前述されたように、そのタスクがバックグラウンドタスクであるか、又は、確認を必要とするタスクであるかを示す。
一部の実施例では、コンテキストデータは、電子デバイス上でタスクが実行されるたびに、アプリケーションによって提供される。コンテキストデータは、例えば、タスクが実行されている間に、又はタスクが実行された後に、提供することができる。例えば、一部の実施例では、電子デバイスは、アプリケーションが閉じられたことを検出し、それに応答して、1つ以上のコンテキストデータ供与機構を採用して、そのアプリケーションからコンテキストデータを要求する。
一部の実施例では、コンテキストデータは、タスクのタイプに基づいて、選択的に提供される。例として、ユーザがテキストメッセージを送信すること、又は電話をかけることに応答して、コンテキストデータを提供することができるが、ユーザがブラウザを使用してウェブページにナビゲートすること、又は電子デバイスをロック解除することに応答して、コンテキストデータを提供することはできない。一部の実施例では、コンテキストデータは、電子デバイスのコンテキストに基づいて、選択的に提供される。例えば、電子デバイスのバッテリの充電レベルが、閾値充電レベルを下回る場合には、コンテキストデータを提供することができない。
一部の実施例では、各タイプのコンテキストデータ(例えば、電子デバイスの位置、電子デバイスがネットワークに接続されているか否かなど)は、それぞれのコンテキスト重みに関連付けられる。このコンテキスト重みを使用することにより、例えば、確率を判定するためのコンテキストデータの使用方式に、影響を及ぼすことができる。一例として、より強いユーザ挙動予測子であると判定されたタイプのコンテキストは、比較的大きい重みに関連付けることができ、及び/又は、より弱いユーザ挙動予測子であると判定されたタイプのコンテキストは、比較的小さい重みに関連付けることができる。例として、電子デバイスが特定の場所に存在している場合に、ユーザによって実行されるタスクは、特定の曜日にユーザによって実行されるタスクよりも、ユーザ挙動の良好な指標とすることができる。したがって、場所コンテキストデータは、比較的大きい重みに関連付けることができ、曜日コンテキストデータは、比較的小さい重みに関連付けることができる。別の例として、タスクに関する提案アフォーダンスをユーザが選択したか否かは、比較的大きい重みに関連付けることができるが、これは、ユーザが、そのタスクに関する後続の提案アフォーダンスを選択する可能性が高いか否かを、そのようなコンテキストデータが強く示し得るためである。
一部の実施例では、コンテキスト重みは、電子デバイスによって決定される。他の実施例では、重みは、集約データを使用して、別のデバイスによって決定される。例えば、一部の実施例では、匿名コンテキストデータを、電子デバイス及び/又は1つ以上の他のデバイスによって、データ集約サーバに提供することができる。次に、データ集約サーバは、いずれのタイプのコンテキストデータが、より弁別的及び/又はより強いユーザ挙動予測子であるかを、判定することができる。一部の実施例では、データ集約サーバは、いずれのタイプのコンテキストデータが、比較的弁別的及び/又はより強いユーザ挙動予測子であるかを判定するために、1つ以上の機械学習技術を採用する。この判定に基づいて、データ集約サーバは、各タイプのコンテキストデータに関する重みを決定して、その重みを電子デバイスに提供することができる。一部の実施例では、ユーザは、コンテキスト重みを決定するために別のデバイスに匿名データを提供することを、取り止める(例えば、オプトアウトする)ように選択することができる。
データ集約サーバによって使用されるコンテキストデータが匿名化されることを保証することによって、電子デバイスのユーザのプライバシーを保護することができる。コンテキストデータを匿名化することは、ユーザの名前、電子デバイスによって記録された具体的な場所、WiFiネットワークの名前、及び任意の他のユーザ固有情報を除去することを含み得る。匿名コンテキストデータは、例えば、ユーザが、同じ場所にいる時間のうちの20%で、特定のタスクを実行したことを指定し得るものであるが、いずれのタスク又は場所であるかを指定するものではない。
例示的動作では、第1段階1210は、電子デバイスのコンテキストデータに基づいて、タスク固有モデリングを実行する。一部の実施例では、タスク固有モデリングを実行することは、複数のタスク(例えば、電子デバイスによって以前に実行された1つ以上のタスク、及び/又は、電子デバイスによって実行することが可能な1つ以上のタスク)のそれぞれに関する、1つ以上の確率(例えば、タスク確率)を判定することを含む。この方式で判定された各タスク確率は、ユーザが、その電子デバイスのコンテキストを所与としてタスクを実行する可能性を示す。
一部の実施例では、この方式でタスク確率を判定することは、コンテキストデータに基づいて、1つ以上のヒストグラムを生成及び/又は更新することを含む。第1段階1210は、例えば、ユーザが、電子デバイスの様々なコンテキストを所与としてタスクを実行する確率を示す、各タスクに関するそれぞれのヒストグラムのセットを生成することができる。一部の実施例では、タスクに関連付けられる各ヒストグラムは、単一のタイプのコンテキストに対応する。一例として、サーモスタットを有効化するためのタスクに関連付けられる第1のヒストグラムは、場所コンテキストヒストグラムとすることができる。この場所コンテキストヒストグラムは、以前にユーザがサーモスタットを有効化している複数の場所のそれぞれに関して、ユーザがその場所にいる場合に、サーモスタットを有効化する確率を示し得る。サーモスタットを有効化するためのタスクに関連付けられる第2のヒストグラムは、WiFiコンテキストヒストグラムとすることができる。このWiFiコンテキストヒストグラムは、以前に電子デバイスが接続されている複数のWiFiネットワークのそれぞれに関して、その電子デバイスがWiFiネットワークに接続される場合に、ユーザがサーモスタットを有効化する確率を示し得る。電子デバイスのコンテキストデータは、任意数のタイプのコンテキストを含み得ることが、理解されるであろう。したがって、タスクは、任意数のヒストグラムに関連付けることができる。
一部の実施例では、特定のコンテキストを所与とした、タスクに関するタスク確率を判定するために、第1段階1210は、そのコンテキストを所与とする、各コンテキストタイプに関する(例えば、そのタスクに関連付けられた各ヒストグラムによって示されるような)それぞれの確率を判定し、それらのコンテキストタイプに関する確率に基づいて、タスク確率を判定することができる。
一部の実施例では、タスク確率を判定することは、コンテキスト重みを使用して、コンテキストデータを調節することを更に含み得る。説明されたように、各コンテキストタイプは、重みに関連付けることができる。したがって、コンテキスト確率に基づいてタスク確率を判定する前に、各コンテキスト確率を、対応するコンテキスト重みによって調節する(例えば、乗算する)ことができる。
一部の実施例では、第1段階1210によって提供されるタスク確率は、パラメータ非依存性である。すなわち、タスク確率は、各タスクに関して、そのタスクを実行するために使用される具体的なパラメータ値を考慮することなく、判定する(例えば、ヒストグラム生成する)ことができる。一例として、第1段階1210は、ユーザが特定のコンテキストを所与として(例えば、特定の時間に)テキストメッセージを送信する確率を判定することができるが、そのテキストメッセージの受信者又はテキストメッセージのコンテンツ(例えば、テキスト、画像)を対象とする確率を判定することは、取り止める場合がある。別の例として、第1段階1210は、ユーザが家に到着したときにサーモスタットを有効化する確率を判定することができるが、サーモスタットの温度閾値を対象とする確率を判定することは、取り止める場合がある。
一部の実施例では、第1段階1210は、タスクの実行に応答して、コンテキストデータを更新する。一部の実施例では、この方式でコンテキストデータを更新することは、実行されたタスクに関する1つ以上のヒストグラムを更新することを含む。
一般に、第2段階1220は、電子デバイスのコンテキストデータに基づいて、パラメータ固有モデリングを実行する。一部の実施例では、パラメータ固有モデリングを実行することは、タスク(例えば、電子デバイスによって以前に実行されたタスク)に与えられているパラメータのセットの各パラメータに関して、ユーザが特定の値を選択する可能性を示す、パラメータのセットに関する確率(例えば、パラメータ確率)を判定することを含む。パラメータ確率は、単一のパラメータに関して、ユーザが特定の値を選択する(及び、他の値を選択しない)可能性を示し得るものであり、及び/又は、複数のパラメータ(例えば、パラメータの組み合わせ)に関して、ユーザが特定の値を選択する可能性を示し得るものである。
例えば、動作の間に、第2段階1220は、コンテキストデータに基づいて、タスクのセットを提供する。一部の実施例では、タスクのセットを提供するために、第2段階1220は、複数のタスクを特定し、それらの対応のタスク確率に従って、タスクをランク付けする。一部の実施例では、第2段階1220は、電子デバイスによって以前に実行された1つ以上のタスクを特定する。第2段階1220は、一部の実施例では、頻度閾値を超過する頻度で実施されると判定されたタイプのタスクを、省略することができる。
その後、第2段階1220は、特定されたタスクのうちのいずれが、N(例えば、N=10)個の最も高い(第1段階1210で判定されるような)対応のタスク確率に関連付けられているかを判定し、そのN個の最高ランクのタスク確率に関連付けられているN個のタスクを、タスクのセットとして提供する。一部の実施例では、特定されたタスクのうちのいずれがN個の最も高いタスク確率に関連付けられているかを判定することは、いずれのタスクが、電子デバイスの任意のコンテキストを所与として、N個の最も高いタスク確率に関連付けられているかを判定することを含む。他の実施例では、特定されたタスクのうちのいずれがN個の最も高いタスク確率に関連付けられているかを判定することは、いずれのタスクが、電子デバイスの現在のコンテキストに関して、N個の最も高いタスク確率に関連付けられているかを判定することを含む。
一部の実施例では、第2段階1220がタスクのセットを特定すると、第2段階1220は、コンテキストデータに基づいて、そのタスクのセットの、各セットに関するパラメータ確率を判定する。一部の実施例では、第2段階1220は、電子デバイスのコンテキストデータのサブセットを使用して、パラメータ確率を判定する。一例として、第2段階1220は、閾値時間内(例えば、過去30日)に受信されたコンテキストデータを使用して、パラメータ確率を判定することができる。別の例として、第2段階1220は、タスクのセットの各タスクが実行された直近のN(例えば、N=100)個のインスタンスに対応するコンテキストデータを使用して、所与のタスクに関するパラメータ確率を判定することができる。例えば、第2段階1220が、テキストメッセージを送信することを目的としたタスクに関するパラメータ確率を判定する実施例では、第2段階1220は、電子デバイスがテキストメッセージを送信した最近のN個のインスタンスに対応するコンテキストデータを使用して、そのタスクに関するパラメータ確率を判定する。
一部の実施例では、パラメータ確率を判定することは、例えばリアルタイムで、コンテキストに基づいて1つ以上のヒストグラムを生成及び/又は更新することを含む。第2段階1220は、例えば、タスクに与えられているパラメータに関して、ユーザが特定のパラメータ値を選択する確率を示す、各タスクに関するヒストグラムのそれぞれのセットを生成することができる。一部の実施例では、タスクに関連付けられた各ヒストグラムは、単一のパラメータに対応している。それゆえ、各ヒストグラムは、タスクを実行するために使用されたパラメータに関する値の、経時的な分布を表し得る。
一部の実施例では、第2段階1220は、電子デバイスの現在のコンテキストに基づいて、パラメータ確率を判定する。このことにより、例えば、パラメータ確率を提供するために必要とされる計算の複雑性を、低減することができる。例えば、動作の間に、第2段階1220は、電子デバイスが特定の場所に存在していることを判定することができる。結果として、パラメータ確率を判定する際、第2段階1220は、判定された場所にデバイスが存在していたときの、以前に使用されたパラメータ値に関する確率を判定することができる。
例示的動作では、第2段階1220は、コンテキストデータに基づいて、テキストメッセージを送信するために使用することが可能な1つ以上のパラメータ値に関する確率を判定することができる。第2段階1220は、例えば、コンテキストデータ(例えば、電子デバイスの以前の使用)に基づいて、そのテキストメッセージの受信者が第1の連絡先である20%の可能性、及び、そのテキストメッセージの受信者が第2の連絡先である30%の可能性が存在していると、判定することができる。第2段階1220は、更に、そのテキストメッセージが第1のペイロード(例えば、文字列、画像)を含む40%の可能性、及び、そのテキストメッセージが第2のペイロードを含む55%の可能性が存在していると、判定することができる。一部の実施例では、第2段階1220は、更に、パラメータ値の1つ以上の組み合わせに関する確率を判定することができる。第2段階1220は、更に、そのテキストメッセージの受信者が第1の連絡先であり、そのテキストメッセージが第1のペイロードを含む、20%の可能性が存在していると、判定することができる。第2段階1220は、更に、そのテキストメッセージの受信者が第1の連絡先であり、そのテキストメッセージが第2のペイロードを含む、15%の可能性が存在していると、判定することができる。この実施例は、限定することを意図するものではなく、第2段階1220は、任意のパラメータ値の数及び/又は組み合わせに関して、確率を判定することができる点が理解されるであろう。
一部の実施例では、第2段階1220は、周期的に(例えば、7.5分毎に)、及び/又は、電子デバイスのコンテキストの変化などのイベントに応答して、パラメータ確率を判定する。例として、電子デバイスの位置若しくは環境の変化(例えば、電子デバイスが家から車に移動されること)、電子デバイスのバッテリの充電レベルの変化、電子デバイスの構成の変化(例えば、アプリケーションのインストール又は削除)、及び/又は、電子デバイスの接続性の変化(例えば、ネットワークに対する接続又は接続解除)に応答して、確率を判定することができる。
一部の実施例では、第1段階1210及び第2段階1220によって、それぞれ、タスク確率及びパラメータ確率が判定されると、第3段階1230は、任意選択的に、1つ以上の確率を調節する。一部の実施例では、第3段階1230は、タスク確率を調節する。タスク確率は、例えば、そのタスク確率に関連付けられているタスクのタイプに基づいて、調節することができる。更には、又は代替的に、一部の実施例では、第3段階1230は、パラメータ確率を調節する(例えば、増大、減少させる)。一例として、相対的に大きい数のパラメータ(例えば、3以上)に関連付けられるパラメータ確率を増大させることができ、及び/又は、比較的小さい数のパラメータ(例えば、2以下)を有するタスクのパラメータ確率を減少させることができる。別の例として、第1のタイプのパラメータに関するパラメータ確率を増大させることができ、及び/又は、指定された1つ以上の特定のタイプのパラメータを有さない第2のタイプのパラメータに関するパラメータ確率を減少させることができる。具体的には、文字列などの比較的弁別的なパラメータタイプに関するパラメータ確率を増大させることができ、及び/又は、ブール値などの比較的非弁別的なパラメータタイプに関するパラメータ確率を減少させることができる。更に別の例として、コンテキストデータによって示される比較的高いエントロピー(例えば、値の変動)を有するパラメータに関するパラメータ確率を増大させることができ、及び/又は、コンテキストデータによって示される比較的低いエントロピーを有するパラメータのパラメータ確率を減少させることができる。
確率が調節されると、第3段階1220は、各タスクに関するタスク確率及びパラメータ確率を判定する。一部の実施例では、第3段階1220は、各タスクに関する最も高いパラメータ確率を特定する。他の実施例では、第3段階1220は、タスクに関するいくつかのパラメータ確率を特定する。一部の実施例では、以下に記載されるように、タスク提案を提供する目的のために、複数のパラメータ確率を有するタスクは、各パラメータ確率に関して、別個のタスクとして処理することができる(例えば、第1のパラメータ値のセットを有するタスクは、第2のパラメータ値のセットを有するタスクとは別個のものと見なされる)。説明されたように、各パラメータ確率は、単一のパラメータ値に対応する場合もあり、及び/又は、複数のパラメータ値に対応する場合もある。
一部の実施例では、確率が(任意選択的に)調節された後、第3段階1230は、各タスクに関して、そのタスクに関連付けられたタスク確率及びパラメータ確率に基づいて、そのタスクが提案基準を満たしているか否かを判定する。
一部の実施例では、タスクが提案基準を満たしているか否かを判定することは、そのタスクに関するタスク確率及びパラメータ確率に基づいて、タスクに関する同時確率を提供し、その同時確率が確率閾値を超過しているか否かを判定することを含む。一部の実施例では、同時確率は、タスク確率とパラメータ確率とを乗算することによって提供される。一部の実施例では、同時確率が確率閾値を超過していると第3段階1230が判定した場合には、第3段階1230は、その同時確率に関連付けられているタスクが提案基準を満たしていると判定する。
一部の実施例では、第3段階1230が、提案基準を満たしているタスクを決定(例えば、特定)すると、第3段階1230は、そのタスクに関連付けられているタスク(及び、対応するパラメータ値)を、タスク提案として提供する。一部の実施例では、第3段階1230は、提案基準を満たしている全てのタスクを、タスク提案として提供する。他の実施例では、第3段階1230は、提案基準を満たしているタスクのサブセットを、タスク提案として提供する。第3段階1230は、例えば、それぞれの最も高い同時確率に関連付けられているタスクを、タスク提案として提供することができる。
次に、電子デバイスは、タスク提案のそれぞれに関して、そのタスク提案に対応する提案アフォーダンスを表示するか否かを判定する。一部の実施例では、このことは、タスク提案が、第1の提案基準及び/又は第2の提案基準を満たしているか否かを判定することを含む。一部の実施例では、タスク提案が第1の提案基準及び/又は第2の提案基準を満たしているか否かを判定することは、そのタスク提案に関連付けられている同時確率が、それぞれ、第1の表示閾値及び第2の表示閾値を満たしているか否かを判定することを含む。
例えば、タスク提案に関する同時確率が、第1の表示閾値を満たしている場合には、そのタスク提案に対応する提案アフォーダンスが、第1のユーザインタフェース(例えば、図8Nの検索画面インタフェース866)内に表示される。タスク提案に対応する同時確率が、第2の表示閾値を満たしている場合には、そのタスク提案に対応する提案アフォーダンスが、更に、又は代替的に、第2のユーザインタフェース(例えば、図8Bのロック画面インタフェース810)内に表示される。一部の実施形態では、第1の表示閾値は、確率閾値と同じである。一部の実施例では、第2の表示閾値は、第1の表示閾値よりも大きい。
その後、ユーザが提案アフォーダンスを選択した場合には、電子デバイスは、図8A~図8AFを参照して説明されたように、その提案アフォーダンスの選択に応答して、選択的にタスクを実行する。そのタスクがバックグラウンドタスク(例えば、ユーザ確認を必要としないタスク)である場合には、電子デバイスは、説明されたように、そのタスクを実行する。そのタスクがバックグラウンドタスクではない(例えば、そのタスクが、タスク実行の前にユーザ確認及び/又は追加ユーザ入力を必要とする)場合には、電子デバイスは、ユーザからの確認及び/又は追加入力を要求する、インタフェースを表示する。一部の実施例では、ユーザは、その確認インタフェースの確認アフォーダンスを選択することによって、タスクの実行を確認することができる。
一部の実施例では、電子デバイスのコンテキストの変化(例えば、電子デバイスの位置の変化、ユーザがデバイスをヘッドホンに接続するか、又はヘッドホンからデバイスを接続解除すること)に応答して、提案アフォーダンスの表示を修正することができる。例として、コンテキストの変化に応答して、電子デバイスは、表示されている1つ以上の提案アフォーダンスの表示を中止することができ、1つ以上の新たな提案アフォーダンスを表示することができ、及び/又は、提案アフォーダンスを新たな順序で表示することができる。この方式で提案アフォーダンスの表示を修正することは、電子デバイスの現在のコンテキストを使用して(例えば、電子デバイスのコンテキストの変化を検出することに応答して)新たな提案のセットを決定することと、説明されたように、提案基準及び/又は表示基準を満たす、それらのタスク提案に関する1つ以上の提案アフォーダンスを表示することとを含み得る(一部の実施例では、最も高いスコアのタスク提案のみが、提案アフォーダンスの表示のために使用されることを想起されたい)。提案アフォーダンスの表示を修正することは、コンテキストに従った提案基準及び/又は表示基準を満たしていない、タスク提案に関する提案アフォーダンスの表示を中止することを更に含み得る。一部の実施例では、提案アフォーダンスは、電子デバイスのコンテキストに対応する順序で、及び/又は、その提案アフォーダンスに関連付けられている、それぞれの同時確率のランク付けに対応する順序で表示される。したがって、電子デバイスのコンテキストの変化により、その電子デバイスは、提案アフォーダンスが表示される順序を変更することができる。
一部の実施例では、タスクが提案基準を満たしているか否かを判定することは、ヒューリスティック基準が満たされているか否かを判定することを更に含む。例えば、第3段階1230(又は、タスク提案システム1200の任意の他の段階)は、1つ以上の所定の条件のセットが満たされているか否かを判定することができる。満たされている場合には、第3段階1230は、満たされている所定の条件のセットのそれぞれに対応するタスクに関する、タスク提案(例えば、ヒューリスティックなタスク提案)を提供する。例として、電子デバイスは、ユーザの位置及びユーザのカレンダーに基づいて、ユーザが会合に送れるであろうと(例えば、ユーザが定時に到着することができないであろうと)判定することができる。したがって、電子デバイスは、ユーザが遅れることになる会合の主催者にテキストメッセージを送信する、ヒューリスティックなタスク提案を、ユーザに提供することができる。電子デバイスは、次に、そのヒューリスティックなタスク提案に対応する提案アフォーダンスを表示することができる。
一部の実施例では、この方式で提供されるタスク提案は、そのタスク提案が表示に関する閾値を常に満たすような、100%の同時確率を有するものである。一部の実施例では、この方式で提供されるタスク提案は、以前に電子デバイスによって表示された同じタイプのタスク提案をユーザが選択していなかった場合には、100%未満の同時確率を有し得る。それゆえ、この方式で提供されるタスク提案の同時確率は、ユーザ挙動に従って増大又は減少(例えば、低下)し得る。
一部の実施例では、ヒューリスティックなタスク提案に関する提案アフォーダンスは、タスク提案に関する提案アフォーダンスと組み合わせて表示される。他の実施例では、ヒューリスティックなタスク提案に関する提案アフォーダンスは、タスク提案に関する提案アフォーダンスと組み合わせて表示されない。例えば、一部の実施例では、ヒューリスティックなタスク提案に関する提案アフォーダンスの表示は、タスク提案に関する提案アフォーダンスの表示をオーバーライドする(例えば、排除する)。
一部の実施例では、所定の条件の単一のセットのみが、所与の時間に満たされ得るため、単一のヒューリスティックなタスク提案のみが、任意の所与の時間に提供される。一部の実施例では、コンテキストデータに加えて、条件のセット(例えば、ハードコーディングされた規則のセット)に基づいて、ヒューリスティックなタスク提案が提供されるため、ヒューリスティックなタスク提案により、電子デバイスは、その電子デバイスによって以前に提供されていないタスクに関するタスク提案を提供することが可能となる。
以下の表は、ヒューリスティックなタスク提案を提供するために使用することが可能な、例示的な所定の条件の様々なセットを記載するものである。これらのセットは、限定することを意図するものではないことが理解されるであろう。更には、この表は、ヒューリスティックなタスク提案に対応する提案アフォーダンスの表示を、電子デバイスに中止させる条件を記載するものである。一部の実施例では、電子デバイスは、それらの条件の全てが満たされることに応答して、提案アフォーダンスの表示を中止する。一部の実施例では、電子デバイスは、それらの条件のうちの任意数が満たされることに応答して、提案アフォーダンスの表示を中止する。
図13は、様々な実施例による、提案を提供するための方法1300を示す。方法1300は、例えば、図12のタスク提案システム1200などのタスク提案システムを実装する、1つ以上の電子デバイスを使用して実行される。一部の実施例では、方法1300は、クライアント-サーバシステム(例えば、システム100)を使用して実行され、方法1300のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイスとの間で、任意の方式で割り振られる。他の実施例では、方法1300のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で割り振られる。それゆえ、方法1300の諸部分は、本明細書ではクライアント-サーバシステムの特定のデバイスによって実行されるように説明されているが、方法1300は、そのように限定されるものではないことが理解されるであろう。他の実施例では、方法1300は、クライアントデバイス(例えば、ユーザデバイス104)のみを使用して、又は複数のクライアントデバイスのみを使用して実行される。方法1300では、一部のブロックは任意選択的に組み合わされ、一部のブロックの順序は任意選択的に変更され、一部のブロックは任意選択的に省略される。一部の実施例では、方法1300と組み合わせて、追加的ステップを実行することができる。
以下で説明されるように、タスクに関連付けられている提案アフォーダンスを、本明細書で説明されるように選択的に提供することにより、ユーザは、電子デバイス上で、そのユーザに関連するタスクを効率的かつ簡便に実行することが可能となる。例として、電子デバイスによって表示される提案アフォーダンスは、ユーザによる電子デバイスの以前の使用を示すコンテキストデータなどの、その電子デバイスのコンテキストデータに基づいて特定されたタスクに対応し得る。それゆえ、この方式で選択的に提案を提供することにより、ユーザが電子デバイスを操作するために必要とされる入力の数及び時間が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)減少し、更には、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、電子デバイスは、キーボード、マウス、マイクロフォン、ディスプレイ、及びタッチ感知面のうちの1つ以上を含む。一部の実施例では、ディスプレイは、タッチ感知ディスプレイである。他の実施例では、ディスプレイは、タッチ感知ディスプレイではない。
ブロック1305で、電子デバイス(例えば、デバイス104、200、400、600、又は、タスク提案システム1200を実装する別のデバイス)は、その電子デバイスに関連付けられたコンテキストデータを受信する。一部の実施例では、コンテキストデータを受信することは、タスクを実行している間に、電子デバイスのコンテキストを判定する(例えば、そのデバイスの位置、そのデバイスがWiFiネットワークに接続されているか否かなどを判定する)ことを含む。一部の実施例では、コンテキストデータは、1つ以上の条件を所与とする、電子デバイスの状態を示す。一部の実施例では、コンテキストデータは、複数のタスクのそれぞれが実行された際の、電子デバイスの様々なコンテキスト態様を示す。一部の実施例では、コンテキストデータは、電子デバイスの位置、デバイスがネットワーク(例えば、WiFiネットワーク)に接続されているか否か、また接続されている場合には、そのネットワークの名前(例えば、SSID)、タスクが実行された時間及び/又は日、ヘッドホンが接続されていたか否かを示す。一部の実施例では、電子デバイスのコンテキストを判定することは、電子デバイスの位置を判定すること、電子デバイスがネットワークに接続されているか否かを判定すること、時刻を判定すること、又はこれらの任意の組み合わせを含む。一部の実施例では、タスクが、以前に(例えば、提案アフォーダンスを使用して)提案タスクとしてユーザに提示されている場合には、コンテキストデータは、その提案にユーザが応答した方式(例えば、ユーザが、その提案と対話したか否か、その提案を削除したか否か、その提案を無視したか否かなど)を示す。
一部の実施例では、コンテキストデータの各タイプには、それぞれの重みに従って(例えば、ドット積を使用して)スコアが割り当てられる。一部の実施例では、この方式で利用される重みのそれぞれの大きさは、プライバシー保護方式でデータが利用されるように、匿名化された集約データを使用して、サーバによって決定される。
一部の実施例では、コンテキストデータは、電子デバイスの使用中に、例えば、いくつものデータ供与機構を使用して、アプリケーションから取得される。一部の実施例では、コンテキストデータは、API呼び出しを使用して、アプリケーションから取得され、このAPI呼び出しは、そのAPI呼び出しの時点でユーザが何をしていたかをアプリケーションに示させる(例えば、ユーザが「メモ」アプリを使用している場合には、呼び出しは、そのメモのID及び/又はメモの名前を返す)。一部の実施例では、コンテキストデータを受信することは、タスク、及びタスクに関連付けられている1つ以上のパラメータに対応する、データ構造(例えば、標準化意図オブジェクト、第三者アプリケーション意図オブジェクト)を受信することを含む。一部の実施例では、コンテキストデータは、アプリケーションによって実行されたタスクを示す標準化データ構造を、そのアプリケーションに供与させる、API呼び出しを使用して、アプリケーションから取得される。一部の実施例では、このデータ構造は、意図オブジェクトである。一部の実施例では、コンテキストデータは、アプリケーションによって実行されたタスクを示すアプリケーション固有の(例えば、第三者アプリケーションの)データ構造を使用して、アプリケーションから取得される。一部の実施例では、この第三者データ構造は、タスクのいずれのパラメータを一緒に予測することができるか、及び/又は、タスクがバックグラウンドタスク(例えば、タスクの実行の前に追加入力を必要としないタスク)であるか否かを、更に示す。一部の実施例では、アプリケーションは、ユーザがタスクを実行するたびに、コンテキストデータを供与する。一部の実施例では、アプリケーションは、例えば電子デバイスのコンテキストに基づいて、選択的にコンテキストデータを供与する(例えば、アプリケーションは、デバイスのバッテリ充電レベルが閾値を下回る場合には、コンテキストデータを提供することを取り止めることができる)。
ブロック1310で、電子デバイスは、コンテキストデータに基づいて、タスクに関するタスク確率を判定する。一部の実施例では、コンテキストデータを使用して、電子デバイスは、提案を提供するための多段階モデルを採用する。一部の実施例では、このモデルの第1段階(1210)で、電子デバイスは、特定のコンテキストを所与としてユーザがタスクを実行する可能性を示す、複数のタスクのそれぞれに関する確率を判定する。一部の実施例では、タスクに関するタスク確率を判定することは、複数のタイプのコンテキストのそれぞれに関して、コンテキストデータに基づいて、そのタスクに対応するヒストグラムを生成することを含む。一部の実施例では、タスク確率を特定することは、電子デバイスの使用中にアプリケーションによって提供されたデータを使用して、1つ以上のヒストグラムを提供する(例えば、生成する)ことを含む。一部の実施例では、この方式で提供されたヒストグラムは、ユーザ挙動のパターンを示す。例として、ヒストグラムのそれぞれは、ユーザが特定のコンテキストを所与として特定のアクションを取る確率(例えば、ユーザが、特定のWiFiネットワークに接続している場合に、80%の割合で特定の音楽アプリを選択すること)を示し得る。一部の実施例では、タスク確率は、パラメータ非依存性である。すなわち、一部の実施例では、電子デバイスは、タスクを実行するために使用されるパラメータに関わりなく、そのタスクに関連付けられているコンテキストデータを使用して、タスク確率を判定する。一部の実施例では、この方式で判定されるタスク確率は、パラメータ固有のものである。
ブロック1315で、電子デバイスは、コンテキストデータに基づいて、そのタスクに関連付けられているパラメータに関する、パラメータ確率を判定する。一部の実施例では、このモデルの第2段階(1220)で、電子デバイスは、各タスクに関して特定のパラメータをユーザが使用する可能性を示す、複数のタスクのそれぞれに関する確率(例えば、条件確率)を判定する。一部の実施例では、コンテキストデータに基づいて、パラメータに関するパラメータ確率を判定することは、電子デバイスの現在のコンテキストを判定することと、その電子デバイスの現在のコンテキストに基づいて、パラメータ確率を判定することと(例えば、電子デバイスのコンテキストを判定することと、その電子デバイスのコンテキストに従って、パラメータ確率を判定することと(例えば、電子デバイスの位置を判定することと、その判定された位置に関連するパラメータ確率を判定することと))を含む。一部の実施例では、電子デバイスは、各タスクタイプに関する、直近のNの数(例えば、100)のタスクのリストを保持している。電子デバイスは、例えば、それら直前のN個のタスクのそれぞれを実行するために、いずれのパラメータが以前に使用されたかを追跡することができる。一部の実施例では、電子デバイスは、特定のタイプのタスクのみを追跡する(例えば、電子デバイスによって最終的に提供される提案が、比較的高い弁別性及び/又は促進性のものであることを保証するために、容易にアクセス可能な機能は追跡しない)。一部の実施例では、電子デバイスは、第1段階(1210)で評価された複数のタスクのサブセットを特定し、それらタスクのサブセットのタスクに関してのみ、確率を判定する。一部の実施例では、電子デバイスによって特定されるサブセットは、第1段階で判定されたような、最も高い確率に関連付けられたタスクを含む。一部の実施例では、電子デバイスは、現時点で関連しているコンテキストデータのみを使用して(すなわち、電子デバイスのコンテキストによって現時点で満たされているコンテキスト信号(例えば、デバイスの現在位置であって他の位置ではないもの)に関して)、条件確率を計算する。この方式で、このモデルの第2段階を実行するために必要とされる計算上の要求が低減され、すなわち、第1段階からの高いスコアのタスクのみが考慮され、かつ現在適用されているコンテキスト信号に関してのみ考慮される。したがって、デバイスの使用が、より効率的になることにより、タスク提案を提供するために必要とされる時間及び電力を低減することができる。一部の実施例では、電子デバイスは、この方式で周期的に確率を判定する。一部の実施例では、電子デバイスは、特定のイベント(例えば、電子デバイス上のアプリケーションの削除)に応答して、この方式で確率を判定する。
電子デバイスのコンテキストに基づいて確率(例えば、タスク確率、パラメータ確率)を判定することは、本明細書で説明されるような、電子デバイスによって提供されるタスク提案が、ユーザによる電子デバイスの以前の使用に基づいて提供されることを保証するものである。これにより、ユーザには、電子デバイスの典型的な使用に対応する、有力なタスク提案が提供され、結果として、ユーザ挙動を促進する可能性が比較的高い提案が提供されることが、保証される。それゆえ、この方式で提案を提供することにより、ユーザが電子デバイスを操作するために必要とされる入力の数及び時間が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)減少し、更には、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
ブロック1320で、電子デバイスは、タスク確率及びパラメータ確率に基づいて、そのタスクが提案基準を満たしているか否かを判定する。一部の実施例では、このモデルの第3段階(1230)で、電子デバイスは、特定されたタスクのうちのいずれかが、その電子デバイスのコンテキストデータ及び現在のコンテキストを所与として、それらタスクのうちの1つ以上を電子デバイスが提案として提供するべきであるような、確率的閾値を満たしているか否かを判定する。一部の実施例では、2つ以上のタスクが閾値を満たしている場合には、電子デバイスは、最も高いスコアのタスクのみを選択する。一部の実施例では、タスクは、第1段階及び第2段階の確率のそれぞれを使用してスコア化される。一部の実施例では、この方式で確率を判定することは、それらの確率を乗算することを含む。例として、電子デバイスは、タスクに関する確率(すなわち、このモデルの第1段階を使用して判定されるようなもの)と、対応のパラメータ又はパラメータの組み合わせを所与とする、そのタスクに関する確率のそれぞれ(すなわち、このモデルの第2段階を使用して判定されるようなもの)とを乗算することができる。一部の実施例では、確率を調節するために、追加的なスコア調節が実施される。そのような調節は、パラメータの数(例えば、より大きいパラメータの数は、より高いスコアをもたらす)、パラメータのタイプ(例えば、文字列などの、より弁別的なパラメータは、ブール値とは反対に、より高いスコアをもたらす)、及び、コンテキストデータによって示されるようなイベント履歴にわたるパラメータのエントロピー(例えば、より高いエントロピー(すなわち、より高い変動性)は、より高いスコアをもたらす)に基づく。一部の実施例では、電子デバイスの異なるインタフェース上での表示に関して、異なる閾値が使用される。第1の閾値が満たされている場合には、電子デバイスは、検索ユーザインタフェース(866)上に提案を表示することができ、第2の閾値が満たされている場合には、電子デバイスは、更に、又は代替的に、ロック画面インタフェース(810)上に提案を表示することができる。
ブロック1325で、タスクが提案基準を満たしているという判定に従って、電子デバイスは、電子デバイスのディスプレイ上に、そのタスク及びパラメータに対応する、提案アフォーダンスを表示する。一部の実施例では、確率的閾値が満たされている場合には、電子デバイスは、ディスプレイ上に1つ以上の提案アフォーダンスを表示する。一部の実施例では、いくつものインタフェース、すなわち、ロック画面UI(810)、検索画面UI(866)、及び/又はデジタルアシスタントUI(1604)内に、提案アフォーダンスを表示することができる。一部の実施例では、タスク及びパラメータに対応する提案アフォーダンスを表示することは、タスクが第1の提案基準のセット(例えば、第1の確率的閾値)を満たしているという判定に従って、第1のユーザインタフェース(810)上に提案アフォーダンスを表示することと、タスクが第2の提案基準のセット(例えば、第2の確率的閾値)を満たしているという判定に従って、第1のユーザインタフェースとは異なる第2のユーザインタフェース(866、1604)上に提案アフォーダンスを表示することとを含む。
ブロック1330で、タスクが提案基準を満たしていないという判定に従って、電子デバイスは、提案アフォーダンスを表示することを取り止める。
一部の実施例では、このタスク確率は第1のタスク確率であり、このタスクは第1のタスクであり、このパラメータ確率は第1のパラメータであり、このパラメータは第1のパラメータである。一部の実施例では、電子デバイスは、コンテキストデータに基づいて、第2のタスクに関する第2のタスク確率を判定し、コンテキストデータに基づいて、第2のタスクに関連付けられている第2のパラメータに関するパラメータ確率を判定し、それら第2のタスク確率及び第2のパラメータ確率に基づいて、その第2のタスクが提案基準を満たしているか否かを判定する。
一部の実施例では、この選択アフォーダンスは、第1の選択アフォーダンスであり、タスクが提案基準を満たしているか否かを判定することは、ヒューリスティック基準が満たされているか否かを判定することを含む。一部の実施例では、ヒューリスティック基準が満たされているという判定に従って、電子デバイスは、別のタスクに対応する第2の選択アフォーダンスを表示する。一部の実施例では、1つ以上のヒューリスティックに従って、提案がオーバーライドされる場合がある。一部の実施例では、各ヒューリスティックは、条件のセットを示す規則(例えば、スクリプト記述規則及び/又はハードコーディング規則)であり、この条件のセットは、満たされた場合に、その条件に対応する提案を電子デバイスに指定させる。一部の実施例では、各ヒューリスティック提案は、最大の確率(例えば、100%)を有するものと見なされることにより、電子デバイスによって評価されるいずれの他の提案にも関わりなく、そのヒューリスティックは、自動的に最良の結果と見なされる。一部の実施例では、ヒューリスティックの確率は、そのヒューリスティックに関する提案がユーザに提示され、ユーザが、その提案に関連付けられたタスクを実行することを拒否した場合には、低下する。一部の実施例では、ヒューリスティックは、2つの条件セットを同時に満たすことができないように構成される。一部の実施例では、ヒューリスティクは、電子デバイスによって実行されておらず、かつ/又は、電子デバイスのコンテキストに依存する、タスクの提案である(例えば、交通状況に基づいて、ユーザが遅れることを会合の主催者にテキストで送る)。
一部の実施例では、提案アフォーダンスを表示した後、電子デバイスは、その提案アフォーダンスの選択に対応する第1のユーザ入力を検出し、その第1のユーザ入力の検出に応答して、選択的にタスクを実行する。一部の実施例では、提案アフォーダンス(806)は、タッチ入力(816)、ジェスチャ、又はそれらの組み合わせを使用して選択される。一部の実施例では、提案アフォーダンスは、音声入力を使用して選択される。一部の実施例では、提案アフォーダンスの選択に応答して、電子デバイスは、自動的にタスクを実行し、電子デバイスは、タスクに関連付けられているアプリケーションを起動し、及び/又は、電子デバイスは、タスクの実行をユーザが確認することが可能な、ユーザインタフェースを表示する。一部の実施例では、選択的にタスクを実行することは、そのタスクが第1のタイプのタスクであるという判定に従って、そのタスクを実行することと、そのタスクが第2のタイプのタスクであるという判定に従って、確認アフォーダンス(824)を含む確認インタフェース(820)を表示することとを含む。
図13を参照して上述された動作は、任意選択的に、図1~図4、図6A、図6B、及び図7A~図7Cに示される構成要素によって実施される。例えば、方法1900の動作は、限定するものではないが、デバイス104、200、400、600、及びデバイス1200を含めた、本明細書で説明される任意のデバイス(又は、その構成要素)によって実施することができる。図1~図4、図6A、図6B、及び図7A~図7Cに示される構成要素に基づいて、どのように他のプロセスが実施されるかは、当業者には明らかであろう。
図14は、様々な実施例による、タスクを実行するためのシーケンス1400を示す。図14はまた、図15の方法1500を含めた、以下で説明されるプロセスのうちの1つ以上を例示するためにも使用される。一部の実施例では、シーケンス1400の1つ以上の動作は、任意選択的に組み合わされ、動作の順序は、任意選択的に変更され、かつ/又は、一部の動作は、任意選択的に省略される。一部の実施例では、シーケンス1400と組み合わせて、追加的動作を実行することができる。更には、「シーケンス」の使用は、別途指示のない限り、特定の対話の順序が必要とされることを意図するものではない。
本明細書で説明されるように、シーケンス1400の動作は、電子デバイス1404及びサーバ1406を使用して実行することができる。電子デバイス1404は、デバイス104、200、400、及びデバイス600(図1、図2A、図4、及び図6A、図6B)のうちのいずれかとすることができ、サーバ1406は、DAサーバ106(図1)とすることができる。一部の実施例では、シーケンス1400の動作は、1つ以上の代替的又は追加的デバイスを使用して実行することができる点が、理解されるであろう。例として、電子デバイス1404によって実行されるとして説明される、シーケンス1400の1つ以上の動作は、複数の電子デバイスを使用して実行することができる。
一般に、プロセス1400の動作は、例えば自然言語発話入力に応答してタスクを実行するように、実施することができる。以下で更に詳細に説明されるように、自然言語発話入力は、電子デバイスに、具体的には電子デバイスのデジタルアシスタントに、提供することができる。それに応答して、その自然言語発話入力が所定のフレーズ(例えば、音声ショートカット)を含むか否かについて、判定が実施される。この判定は、その電子デバイス及び/又は別のデバイスによって実施することができる。自然言語発話入力が所定のフレーズを含むと判定された場合には、電子デバイスは、その所定のフレーズに関連付けられているタスクを実行する。そうではない場合には、その自然言語発話入力は、その自然言語発話入力に関連付けられるタスクを決定するために、自然言語処理を使用して処理され、電子デバイスは、その自然言語処理を使用して決定されたタスクを実行する。
動作1410で、電子デバイス1404は、(例えば、マイクロフォンを介して)自然言語発話入力を受信する。一部の実施例では、電子デバイス1404は、電子デバイス1404のデジタルアシスタントを対象とする要求を示す、自然言語発話入力を受信する。例えば、この自然言語発話入力は、例えばデジタルアシスタントをアクティブ化することが可能な、音声トリガを含み得る。一部の実施例では、自然言語発話入力は、デジタルアシスタントを対象とすることが可能な、任意の要求を含み得る。例として、自然言語入力「Starbucksへの道順を教えて(Get me directions to Starbucks)」は、電子デバイス1404のデジタルアシスタントが、その電子デバイスの位置から最も近いStarbucksの場所まで車で行く道順を提供することを、要求し得る。
一部の実施例では、自然言語発話入力は、その電子デバイスに通信可能に結合されているデバイス(例えば、スマートウォッチ)などの、別のデバイスから受信される。一部の実施例では、自然言語発話入力は、その電子デバイスと他のデバイスとの間のアドホック接続を介して提供される。他の実施例では、自然言語発話入力は、インターネットなどのマルチホップネットワークを介して提供される。
一部の実施例では、自然言語発話入力は、図10A~図10AFを参照して説明されたものなどの、所定のフレーズ(例えば、音声ショートカット)を含む。説明されたように、所定のフレーズは、1つ以上のタスクに関連付けることができ、1つ以上のタスクは、電子デバイスのデジタルアシスタントに提供されると、そのフレーズに関連付けられている1つ以上のタスクを電子デバイスに実行させる。
動作1415で、電子デバイス1404は、その自然言語発話入力をサーバ1406に提供する。一部の実施例では、自然言語発話入力をサーバ1406に提供することは、その自然言語発話入力の表現(例えば、テキスト表現、空間表現、オーディオ表現)をサーバ1406に提供することを含む。テキスト表現は、例えば、一部の実施例では、STT処理モジュール730などの音声テキスト化処理モジュールを使用して提供することができる。
動作1420で、サーバ1406は、電子デバイス1404から自然言語発話入力を受信し、その自然言語発話入力が音声ショートカット基準を満たしているか否かを判定する。一部の実施例では、自然言語発話入力が音声ショートカット基準を満たしているか否かを判定することは、その自然言語発話入力、又は、その自然言語発話入力のテキスト表現が、電子デバイスのユーザに関連付けられている1つ以上の所定のフレーズ(例えば、音声ショートカット)のうちのいずれかと一致するか否かを判定することを含む。一部の実施例では、自然言語発話入力が所定のフレーズに一致するか否かを判定することは、その自然言語発話入力が、1つ以上の所定のフレーズと厳密に一致するか否かを判定することを含む。他の実施例では、自然言語発話入力が所定のフレーズと一致するか否かを判定することは、その自然言語発話入力と所定の各フレーズとの類似性が、類似性閾値を超過しているか否かを判定することを含む。
サーバ1406が、自然言語発話入力が音声ショートカット基準を満たしていると判定した場合(例えば、サーバ1406が、自然言語発話入力が所定のフレーズと一致すると判定した場合)には、サーバ1406は、その一致した所定のフレーズに関連付けられている、タスクを特定する。一部の実施例では、この方式でタスクを特定することは、そのタスクの1つ以上のパラメータに関する値を決定することを含む。例として、コーヒーを注文するためのタスクに対応するフレーズ「コーヒータイム(Coffee Time)」に関しては、サーバ1406は、コーヒーのサイズ、コーヒーのタイプ、及び/又は、その商取引に関する支払い方式を決定することができる。パラメータ値は、ユーザによって(例えば、そのフレーズをタスクに関連付ける際に)指定することもでき、電子デバイスのコンテキスト(例えば、電子デバイスの位置)に基づいて決定することもでき、及び/又は、既定のパラメータ値を割り当てることもできる。
サーバ1406が、自然言語発話入力が音声ショートカット基準を満たしていないと判定した場合には、サーバ1406は、任意選択的に、自然言語処理モジュール732などの自然言語処理モジュールを使用して、その自然言語発話入力(又は、そのテキスト表現)を処理する。一部の実施例では、電子デバイス1404は、自然言語発話入力のオーディオ表現を提供し、タスクを決定するために自然言語発話処理を使用して自然言語発話入力を処理することは、例えばSTT処理モジュール730を使用して、その自然言語発話入力の1つ以上のテキスト表現候補(例えば、テキスト文字列)を提供することを含む。テキスト表現候補のそれぞれは、発話認識信頼性スコアに関連付けることができ、それに従って、それらのテキスト表現候補をランク付けすることができる。他の実施例では、電子デバイス1404は、自然言語発話入力のテキスト表現を提供し、そのテキスト表現は、n=1である、テキスト表現候補として提供される。この方式でテキスト表現候補として提供されるテキスト表現には、最大の発話認識信頼性スコア、又は任意の他の発話認識信頼性スコアを割り当てることができる。
タスクを決定することは、例えば、自然言語処理モジュール732を使用して、n個の最良の(例えば、最高ランクの)テキスト表現候補に基づいて、1つ以上の意図候補を提供することを更に含み得る。それらの意図候補のそれぞれは、意図信頼性スコアに関連付けることができ、それに従って、それらの意図候補をランク付けすることができる。一部の実施例では、各テキスト表現候補に関して、複数の意図候補が特定される。更には、一部の実施例では、各意図候補に関して、(部分的又は完全な)構造化クエリが生成される。その後、例えばタスクフロー処理モジュール736を使用して、m個の最良の(例えば、最高ランクの)意図候補に基づいて、タスク候補が決定される。一部の実施例では、タスク候補は、m個の最良の(例えば、最高ランクの)意図候補のそれぞれに関する構造化クエリに基づいて、特定される。例として、説明されたように、構造化クエリは、意図候補に関連付けられるタスクを決定するために、タスクフロー754などの1つ以上のタスクフローに従って実装することができる。各タスク候補には、例えば、信頼性スコア及び/又は電子デバイスのコンテキストに基づいて、結合スコアを割り当てることができ、最も高いスコアを有するタスクを、タスクとして選択することができる。
動作1425で、電子デバイス1404は、サーバ1406からタスクを受信する。説明されたように、このタスクは、ユーザの1つ以上の所定のフレーズに関連付けられているタスクの場合もあれば、又は、自然言語処理を使用して特定された場合もある。一部の実施例では、電子デバイスは、受信されたタスクを実行する際に使用される、1つ以上のパラメータ値を更に受信する。
動作1430で、電子デバイスは、タスクを実行し、任意選択的に、動作1435で、そのタスクの実行が成功したか否かを示す出力(例えば、自然言語出力)を提供する。この出力は、一部の実施例では、電子デバイスのデジタルアシスタントによって提供することができる。
一部の実施例では、タスクを実行することは、そのタスクを別のデバイスに実行させることを含む。電子デバイスは、例えば、タスクが別のデバイス上で実行されることに、より適していると判定する場合があり、及び/又は、タスクを別のデバイス上で実行しなければならない(例えば、電子デバイスがディスプレイを有さず、インタフェースの表示を必要とするタスクを実行することができない)と判定する場合もある。したがって、電子デバイスは、別のデバイスにタスクを提供することができ、及び/又は、他のデバイスにタスクを実行させることができる。
一部の実施例では、タスクを実行することは、第三者アプリケーションにタスクを実行させることを含む。例として、音声ショートカット「ガレージを閉めて(Close garage)」は、第三者ホームオートメーションアプリケーションにガレージの扉を閉じさせることができる。一部の実施例では、第三者アプリケーションは、タスクの実行が成功したか否かを示す応答を提供する。
一部の実施例では、第三者デバイスのデジタルアシスタントによって提供される出力は、アプリケーションによって提供される応答に基づく。例として、アプリケーションによって提供される応答は、「ガレージドアの閉鎖が成功しました(The garage door was successfully closed)」などの自然言語表現を含み得る。電子デバイス、具体的には電子デバイスのデジタルアシスタントは、その応答を受信して、その応答の自然言語表現に基づいて自然言語出力を提供することができる。この自然言語出力は、一部の実施例では、オーディオ出力とすることができる。例えば、電子デバイスは、「ホームオートメーションが『ガレージドアの閉鎖が成功しました』と言っています(Home Automation says 'The garage door was successfully closed.')」と述べる自然言語出力を提供することができる。この方式でアプリケーションによって提供される応答は、タスクの実行が成功したか否かを示すことができ、及び/又は、ユーザに他の情報を(例えば、バスの時刻表に関する要求に応答して、現在のバスの時間を)提供することもできる。
一部の実施例では、サーバ1406によって提供されるタスクを実行することは、複数のタスクを実行することを含む。例として、タスクを実行することは、第1のアプリケーションに第1のタスクを実行させることと、第2のアプリケーションに、第1のタスクとは異なる第2のタスクを実行させることとを含み得る。
本明細書では、自然言語発話入力がサーバ1406に提供されること(動作1415)に関連して説明されているが、一部の実施例では、電子デバイスが、サーバ1406の代わりに、又はサーバ1406と並行して、自然言語発話入力が音声ショートカット基準を満たしているか否かを判定する。
図15は、様々な実施例による、タスクを実行するための方法1500を示す。方法1500は、例えば、デジタルアシスタントを実装する1つ以上の電子デバイスを使用して実行される。一部の実施例では、方法1500は、クライアント-サーバシステム(例えば、システム100)を使用して実行され、方法1500のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイスとの間で、任意の方式で割り振られる。他の実施例では、方法1500のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で割り振られる。それゆえ、方法1500の諸部分は、本明細書ではクライアント-サーバシステムの特定のデバイスによって実行されるように説明されているが、方法1500は、そのように限定されるものではないことが理解されるであろう。他の実施例では、方法1500は、クライアントデバイス(例えば、ユーザデバイス104)のみを使用して、又は複数のクライアントデバイスのみを使用して実行される。方法1500では、一部のブロックは任意選択的に組み合わされ、一部のブロックの順序は任意選択的に変更され、一部のブロックは任意選択的に省略される。一部の実施例では、方法1500と組み合わせて、追加的ステップを実行することができる。
以下で説明されるように、自然言語発話入力(例えば、音声ショートカット)に応答して、本明細書で説明されるようにタスクを実行することにより、電子デバイス上でタスクを実行するための、直感的かつ効率的な手法が提供される。例として、ユーザからの追加入力を全く使用することなく、自然言語発話入力に応答して、1つ以上のタスクを実行することができる。したがって、この方式で、自然言語発話入力に応答してタスクを実行することにより、ユーザが電子デバイスを操作するために必要とされる入力の数及び時間が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)減少し、更には、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、電子デバイスは、キーボード、マウス、マイクロフォン、ディスプレイ、及びタッチ感知面のうちの1つ以上を含む。一部の実施例では、ディスプレイは、タッチ感知ディスプレイである。他の実施例では、ディスプレイは、タッチ感知ディスプレイではない。
ブロック1505で、電子デバイスは、自然言語発話入力(例えば、発話された発言1606)を受信する(1410)。一部の実施例では、自然言語発話入力を受信することは、第2の電子デバイス(例えば、スマートウォッチ)から、その自然言語発話入力の表現を受信することを含む。一部の実施例では、第2の電子デバイスから自然言語発話入力の表現を受信することは、マルチホップネットワークを介して、自然言語発話入力の表現を受信することを含む。一部の実施例では、この表現は、例えばWiFi接続及び/又はインターネットを介して、リモートデバイスから受信される。一部の実施例では、自然言語発話入力は、音声トリガ(例えば、「ヘイ、Siri(Hey Siri)」)を含む。
ブロック1510で、電子デバイスは、自然言語発話入力が音声ショートカット基準を満たしているか否かを判定する。一部の実施例では、電子デバイスは、自然言語発話入力が、電子デバイスのユーザに関連付けられている1つ以上の音声ショートカットと一致するか否かを判定する。一部の実施例では、この方式で一致が存在するか否かを判定することは、ローカル及び/又はリモートで、一致が存在するか否かを判定することを含む。例えば、一部の場合には、一致が存在するか否かを、電子デバイスが判定する。別の実施例では、電子デバイスが、自然言語発話入力又はその表現を、バックエンドサーバ(1406)に提供し(1415)、バックエンドサーバが、一致が存在するか否かを判定する(1420)。一部の実施例では、自然言語発話入力が音声ショートカット基準を満たしているか否かを判定することは、その自然言語発話入力の表現(例えば、テキスト表現、空間表現、オーディオ表現)を、別の電子デバイス(例えば、バックエンド自然言語処理サーバなどのバックエンドサーバ)に提供して、その別の電子デバイスから、音声ショートカット又はタスクの少なくとも一方を受信すること(1425)を含む。一部の実施例では、電子デバイス及びバックエンドサーバの双方が、一致が存在するか否かを判定し、電子デバイスは、双方の結果を評価して、一致が存在するか否かを判定する。
ブロック1515で、自然言語発話入力が音声ショートカット基準を満たしているという判定に従って(例えば、自然言語発話入力が音声ショートカットと一致する場合には)、電子デバイスは、その音声ショートカットに関連付けられているタスクを特定し、その音声ショートカットに関連付けられているタスクを実行する(例えば、電子デバイス又は別の電子デバイス(例えば、バックエンドサーバ)のいずれかが、その音声ショートカットに関連付けられているタスクを決定する)(1430)。一部の実施例では、音声ショートカットに関連付けられているタスクを実行することは、第1のアプリケーションに第1のタスクを実行させることと、第2のアプリケーションに、第1のタスクとは異なる第2のタスクを実行させることとを含む。一部の実施例では、電子デバイスが、自然言語発話入力と音声ショートカットとの間に一致が存在すると判定した場合には、電子デバイスは、その音声ショートカットに関連付けられているタスクを特定し、そのタスクを実行する。一部の実施例では、音声ショートカットは、複数のタスク(例えば、タスクのシーケンス)に関連付けられており、電子デバイスは、それら複数のタスクのそれぞれを実行する。一部の実施例では、音声ショートカットに関連付けられているタスクを実行することは、その音声ショートカットに関連付けられているタスクが、第1のタイプのタスクであるか否かを判定することと、その音声ショートカットが第1のタイプのタスクであるという判定に従って、電子デバイスを使用して、そのタスクを実行することと、その音声ショートカットが、第1のタイプとは異なる第2のタイプのタスクであるという判定に従って、第3の電子デバイスを使用して、そのタスクを実行させることとを含む。一部の実施例では、電子デバイスは、その電子デバイス又は別のデバイスによってタスクを実行することができるかを判定することによって、そのタスクが第1のタイプのタスクであるか否かを判定する。
ブロック1520で、自然言語発話入力が音声ショートカット基準を満たしていないという判定に従って(例えば、自然言語発話入力が音声ショートカットと一致しない場合には)、電子デバイスは、その自然言語発話入力に関連付けられるタスクを特定し、その自然言語発話入力に関連付けられるタスクを実行する(1430)。一部の実施例では、電子デバイスは、自然言語処理を実行して、意図及び/又はタスクを決定する。一部の実施例では、バックエンドサーバが、自然言語処理を実行して、電子デバイスにタスクを提供する。一部の実施例では、第1のタイプのタスクではないタスクは、別のデバイスに「より適している」タスク、及び/又は、その電子デバイスによって実行することができないタスクである。例として、ユーザは、音声ショートカット「ゲーム・オブ・スローンズを再生して(Play Game of Thrones)」を電話に提供することができ、電話は、その音声ショートカットに関するタスクをTVに実行させることができる。
発話入力が音声ショートカット基準を満たしていない場合に、その自然言語発話入力に対して自然言語処理を実行することにより、その発話入力が音声ショートカットに対応していない場合であっても、ユーザによって電子デバイスに提供されたコマンドが対処されることが保証される。この方式で、電子デバイスは、ユーザによって指定される、より広範囲のコマンド及び/又は意図に対処することができる。したがって、この方式でタスクを実行することにより、ユーザが電子デバイスを操作するために必要とされる入力の数及び時間が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)減少し、更には、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、電子デバイスは、タスクが成功したか否かを示す自然言語出力(1616、1630、1662、1676)を提供する(1435)。一部の実施例では、タスクを実行することは、第三者アプリケーションにタスクを実行させることを含み、自然言語出力を提供することは、第三者アプリケーションから応答を受信し、その第三者から受信された応答に基づいて、自然言語出力を生成することを含む。一部の実施例では、第三者アプリケーションを使用してタスクが実行されると、その第三者アプリケーションは、タスクが成功したか否かを示す応答を提供する。一部の実施例では、この応答は、タスクの実行が成功したか又は失敗したかを、明示的に示す。一部の実施例では、この応答は、要求されていた情報を含み(例えば、そのタスクは、バスの時刻表に関する要求に応答して、そのバスの時刻表を取得することであった)(1688)、その要求されていた情報の返信は、そのタスクが成功したことを暗黙的に示すものである。一部の実施例では、自然言語出力は音声発話出力である。一部の実施例では、電子デバイス、具体的には電子デバイスのデジタルアシスタントは、アプリケーションの応答に基づいて自然言語入力を生成し、生成された自然言語出力をユーザに提供する。
図15を参照して上述された動作は、任意選択的に、図1~図4、図6A、図6B、及び図7A~図7Cに示される構成要素によって実施される。例えば、方法1900の動作は、限定するものではないが、デバイス104、200、400、600、及びデバイス1400を含めた、本明細書で説明される任意のデバイス(又は、その構成要素)によって実施することができる。図1~図4、図6A、図6B、及び図7A~図7Cに示される構成要素に基づいて、どのように他のプロセスが実施されるかは、当業者には明らかであろう。
図16A~図16Sは、一部の実施形態による、電子デバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス600、又はデバイス700)上でタスクを実行するための、例示的なユーザインタフェースを示す。これらの図中のユーザインタフェースは、図17でのプロセスを含めた、以下で説明されるプロセスを例示するために使用される。
図16Aは、電子デバイス1600(例えば、デバイス104、デバイス122、デバイス200、デバイス600、又はデバイス700)を示す。図16A~図16Sに示される非限定的な例示的実施形態では、電子デバイス1600は、スマートフォンである。他の実施形態では、電子デバイス1600は、ウェアラブルデバイス(例えば、スマートウォッチ)などの、異なるタイプの電子デバイスとすることができる。一部の実施例では、電子デバイス1600は、ディスプレイ1601、1つ以上の入力デバイス(例えば、ディスプレイ1601のタッチスクリーン、ボタン、マイクロフォン)、及び無線通信装置を有する。一部の実施例では、電子デバイス1600は、複数のカメラを含む。一部の実施例では、この電子デバイスは、1つのみのカメラを含む。一部の実施例では、この電子デバイスは、赤外線カメラ、サーモグラフィカメラ、又はそれらの組み合わせなどのカメラを任意選択的に含む、1つ以上のバイオメトリックセンサ(例えば、バイオメトリックセンサ1603)を含む。
図16Aでは、電子デバイス1600は、ディスプレイ1601上に、デジタルアシスタントインタフェース1604などの、デジタルアシスタントインタフェース(例えば、会話インタフェース)を表示している。デジタルアシスタントインタフェース1604を表示している間に、電子デバイス1600は、自然言語入力1606(例えば、「ヘイ、Siri、私の食料品を注文して。(Hey Siri, order my groceries.)」)を受信する(例えば、取得する、キャプチャする)。一部の実施例では、自然言語入力1606は、例えば、電子デバイスの入力デバイス(例えば、マイクロフォン)を使用して受信される、自然言語発話入力である。図16Aに示されるように、自然言語入力1606が自然言語発話入力である一部の実施例では、デジタルアシスタントインタフェースは、自然言語入力1606のプレビュー1608(例えば、ライブプレビュー)を任意選択的に含む。
一部の実施例では、この自然言語入力に応答して、電子デバイス1600は、タスクを実行する。例として、図14を参照して説明されたように、電子デバイス1600は、自然言語入力が所定のフレーズに一致するか否かを判定することができ、一致する場合には、そのフレーズに対応するタスクを実行することができる。タスクがフレーズに対応していない場合には、自然言語処理を使用して、その自然言語入力に関連付けられるタスクを決定することができ、電子デバイス1600は、そのタスクを実行することができる。
一部の実施例では、タスクを実行する前に、電子デバイスは、ユーザにタスクの確認を要求する。例えば、図16Bに示されるように、電子デバイス1600が、自然言語入力に対応するタスクを特定すると、電子デバイス1600は、確認インタフェース1610などの確認インタフェースを表示することができる。確認インタフェース1610は、確認アフォーダンス1612、キャンセルアフォーダンス1614、及びアプリケーションアフォーダンス1616を含む。確認インタフェースは、更に、そのタスクに関連付けられているコンテンツ1618を含み得る。一部の実施例では、キャンセルアフォーダンス1614の選択は、電子デバイス1600に、確認インタフェース1610の表示を中止させ、及び/又は、特定されたタスクを実行することを取り止めさせる。一部の実施例では、アプリケーションアフォーダンス1616の選択は、電子デバイス1600に、そのタスクに関連付けられているアプリケーションを開かせる。説明されたように、この方式でアプリケーションを開くことにより、そのタスクに関連付けられている1つ以上のパラメータを、アプリケーションにプリロードさせることができる。コンテンツ1618は、タスクを実行するために使用される1つ以上のパラメータなどの、そのタスクを対象とする情報を含み得る。図16Bに示されるように、例えば、コンテンツ1618は、そのタスクが、グループ「私の食料品リスト(My Grocery List)」内に含まれる食料品目のセットの注文を目的とするものであること、注文する品目の数、配送先住所、及び配送が行われる時間枠を指定することができる。任意選択的に、確認インタフェース1610は、タスクを実行するアプリケーションを、より容易にユーザが特定することを支援するために、そのタスクのアプリケーションに関連付けられているアイコン(例えば、画像、GIF)を含む。
一部の実施例では、例えばユーザ入力1620による、確認アフォーダンス1612の選択に応答して、電子デバイス1600は、タスクを実行する。図16Cに示されるように、一部の実施例では、電子デバイスがタスクを実行している間に、電子デバイス1600は、タスクが実行中であることを示すプロセスインジケータ1615を、任意選択的に表示する。一部の実施例では、プロセスインジケータ1615の表示は、確認アフォーダンス1612及びキャンセルアフォーダンス1614の表示に置き換わるものである。
タスクが実行されると、電子デバイス1600は、そのタスクの実行が成功したか否かを示す出力を提供する。図16Dの実施例では、タスクの実行が成功しており、結果として、電子デバイス1600は、そのタスクの実行が成功したことを示す、成功インジケータ1616を表示する。一部の実施例では、成功インジケータ1616の表示は、プロセスインジケータ1615の表示に置き換わるものである。
図16Eの実施例では、タスクの実行が成功しておらず、結果として、電子デバイスは、失敗インタフェース1621を表示する。失敗インタフェース1621は、再試行アフォーダンス1622、キャンセルアフォーダンス1624、及びアプリケーションアフォーダンス1626、1628を含む。失敗インタフェースは、コンテンツ1630を更に含む。一部の実施例では、再試行アフォーダンス1622の選択は、電子デバイス1600に、再度そのタスクを実行させる。一部の実施例では、キャンセルアフォーダンスの選択は、電子デバイス1600に、失敗インタフェース1620の表示を中止させる。一部の実施例では、アプリケーションアフォーダンス1626又はアプリケーションアフォーダンス1628のいずれかの選択は、電子デバイス1600に、そのタスクに関連付けられているアプリケーションを開かせる。説明されたように、この方式でアプリケーションを開くことにより、そのタスクに関連付けられている1つ以上のパラメータを、アプリケーションにプリロードさせることができる。コンテンツ1630は、タスクを実行するために使用される1つ以上のパラメータなどの、そのタスクを対象とする情報を含み得る。一部の実施例では、コンテンツ1630は、コンテンツ1618と同じコンテンツである。一部の実施例では、コンテンツ1630は、コンテンツ1618とは異なる。コンテンツ1630は、例えば、電子デバイスがタスクの実行を成功させることができなかったこと(例えば、「問題が発生しました。再試行してください。(There was a problem. Please try again.)」)を示し得る。
一部の実施例では、タスクを実行することは、アプリケーションにタスクを実行させることを含み得るものであり、任意選択的に、そのタスクの実行が成功したか否かを示す、そのアプリケーションからの応答を受信することができる。一部の実施例では、以下の図16F~図16Lに示されるように、アプリケーションによって提供される応答は、自然言語表現を含み、この自然言語表現は、タスクの実行が成功したか否かを示すために電子デバイス1600によって使用することができ、及び/又は、アプリケーションからユーザに、追加情報を提供することもできる。
図16Fを参照すると、電子デバイス1600は、ディスプレイ1601上に、デジタルアシスタントインタフェース1654などの、デジタルアシスタントインタフェース(例えば、会話インタフェース)を表示している。デジタルアシスタントインタフェース1654を表示している間に、電子デバイス1600は、自然言語入力1656(例えば、「ヘイ、Siri、私にコーヒーを。(Hey Siri, coffee me.)」)を受信する(例えば、取得する、キャプチャする)。一部の実施例では、この自然言語入力は、例えば、電子デバイスの入力デバイス(例えば、マイクロフォン)を使用して受信される、自然言語発話入力である。図16Fに示されるように、自然言語入力が自然言語発話入力である一部の実施例では、デジタルアシスタントインタフェースは、その自然言語入力のプレビュー1658(例えば、ライブプレビュー)を任意選択的に含む。
自然言語入力1656に応答して、電子デバイス1600は、説明されたようにタスクを実行する(一部の実施例では、電子デバイスは、タスクの実行をユーザに確認することができる点を想起されたい)。例えば、自然言語入力が所定のフレーズに対応している(例えば、所定のフレーズを含む)場合には、電子デバイス1600は、そのフレーズに関連付けられているタスクを実行することができ、又は、自然言語入力が所定のフレーズに対応していない場合には、電子デバイス1600は、自然言語処理によって判定されるような、その自然言語入力に関連付けられるタスクを実行することができる。
一部の実施例では、タスクが実行されると、電子デバイス1600は、そのタスクを実行するために使用されたアプリケーションから応答を受信し、その応答に基づいて、タスクの実行が成功したか否かを示す出力を提供する。図16Gの実施例では、タスクの実行が成功している。したがって、電子デバイス1600は、成功インタフェース1660を表示する。成功インタフェース1660は、デジタルアシスタント応答1664及びアプリケーション応答1666を含む出力1662と、アプリケーションアフォーダンス1670とを含む。一部の実施例では、アプリケーション応答1666は、タスクの実行に続いてアプリケーションによって提供された応答の、少なくとも一部分である。一部の実施例では、アプリケーション応答1666は、コンテンツ及び/又は1つ以上の自然言語表現を含む。図16Gに示されるように、例えば、アプリケーション応答1666は、タスクの実行が成功したことを示し、かつ/又は、タスクに関連する情報を提供する、自然言語表現1668(例えば、「あなたのラッテは20分でお受け取りとなります(Your latte will be ready in 20 min)」)を含む。コンテンツ1670などの、アプリケーション応答のコンテンツは、画像、動画、及び/又は対話型コンテンツ(例えば、対話型の地図)などの、任意のタイプのコンテンツを含み得る。この方式で、アプリケーションは、タスクに関連する追加情報を指定することができる。一部の実施例では、デジタルアシスタント応答1664は、タスクの実行が成功したか否か(例えば、「了解、注文しました。(OK ordered.)」)を示す。一部の実施例では、デジタルアシスタント応答1664は、例えば、アプリケーションによって提供された情報をアプリケーション応答1666が含むこと(例えば、「コーヒーアプリが、このように言っています(The Coffee App says)」)を、ユーザに対して明らかにするために使用することができる。一部の実施例では、コンテンツ1670の選択は、電子デバイス1600に、そのタスクに関連付けられているアプリケーションを開かせる。説明されたように、この方式でアプリケーションを開くことにより、そのタスクに関連付けられている1つ以上のパラメータを、アプリケーションにプリロードさせることができる。
図16Hの実施例では、タスクの実行は成功していない(例えば、電子デバイス1600は、タスクを実行することに失敗した)。したがって、電子デバイスは、失敗インタフェース1674を表示する。失敗インタフェース1674は、デジタルアシスタント応答1678及びアプリケーション応答1680を含む出力1676と、アプリケーションアフォーダンス1682とを含む。一部の実施例では、アプリケーション応答1680は、タスクの実行に続いてアプリケーションによって提供された応答の、少なくとも一部分である。一部の実施例では、アプリケーション応答1680は、コンテンツ及び/又は1つ以上の自然言語表現を含む。図16Hに示されるように、例えば、アプリケーション応答1680は、タスクの実行が成功しなかったことを示し、かつ/又は、タスクに関連する追加情報を更に提供する、自然言語表現1682(例えば、「カード残高が不足しています。続行するためにはアプリを開いてください。(Your card balance is insufficient. Open the app to continue.)」)を含む。一部の実施例では、デジタルアシスタント応答1664は、タスクの実行が成功したか否か(例えば、「何か不具合がありました。(Something went wrong.)」)を示す。一部の実施例では、デジタルアシスタント応答1664は、例えば、アプリケーションによって提供された情報をアプリケーション応答1666が含むこと(例えば、「コーヒーアプリが、このように言っています(The Coffee App says)」)を、ユーザに対して明らかにするために使用することができる。一部の実施例では、アプリケーションアフォーダンス1682の選択は、電子デバイス1600に、そのタスクに関連付けられているアプリケーションを開かせる。説明されたように、この方式でアプリケーションを開くことにより、そのタスクに関連付けられている1つ以上のパラメータを、アプリケーションにプリロードさせることができる。
一部の実施例では、この方式でアプリケーションから受信された応答を提供することにより、デジタルアシスタントは、アプリケーションを開くようにユーザに要求することなく、アプリケーションとユーザとの間の情報交換を提供することが可能となる。例えば、一部の実施例では、ユーザは、本来であればユーザがアプリケーションを開いて取得しなければならない可能性がある情報を、電子デバイスに要求することができる。
例えば図16Iを参照すると、ユーザは、バスの時刻表に関する情報を要求する、電子デバイス1600への自然言語入力を提供することができる。次に、電子デバイス1600は、そのタスクに対応しているアプリケーションに情報を取得させ、図16Jに示されるように、その情報を応答として返させることができる。説明されたように、電子デバイス1600によって提供される出力(例えば、出力1688)は、デジタルアシスタント応答1690及びアプリケーション応答1692などの、デジタルアシスタント応答及びアプリケーション応答を含み得る。
一部の実施例では、ユーザは、タスクに対応する出力を電子デバイス1600が提供する時間よりも前に、デジタルアシスタントインタフェースを終了する場合がある。したがって、一部の実施例では、電子デバイス1600によって提供される出力は、ロック画面インタフェース上に表示することができる。図16K、図16Lを参照すると、電子デバイス1600は、電子デバイス1600が、それぞれロック状態(図16K)又はアンロック状態(図16L)のいずれかである場合のロック画面インタフェース上に、タスクに対応する出力を表示することができる。説明されたように、電子デバイス1600は、電子デバイス1600がロック状態にある場合、コンテンツを表示することを取り止めることができる。
一部の実施例では、電子デバイスがインタフェースを表示する方式は、本明細書で説明されるように、電子デバイスのタイプに応じて決定される。一部の実施例では、例えば、電子デバイス1600は、デジタルアシスタントインタフェース1604又はデジタルアシスタントインタフェース1654などのインタフェースを表示するために実用的ではない恐れがある、比較的小さいディスプレイを有するデバイスとして実装される場合がある。したがって、一部の実施例では、電子デバイス1600は、前述のインタフェースに対する代替的インタフェースを表示することができる。
図16Mを参照すると、例えば、電子デバイス1600は、ディスプレイ1601上に、デジタルアシスタントインタフェース1604Aなどの、デジタルアシスタントインタフェース(例えば、会話インタフェース)を表示している。デジタルアシスタントインタフェース1604Aを表示している間に、電子デバイス1600は、自然言語入力1606A(例えば、「ヘイ、Siri、私にコーヒーを。(Hey Siri, coffee me.)」)を受信する(例えば、取得する、キャプチャする)。一部の実施例では、自然言語入力1606Aは、例えば、電子デバイスの入力デバイス(例えば、マイクロフォン)を使用して受信される、自然言語発話入力である。図16Mに示されるように、自然言語入力1608Aが自然言語発話入力である一部の実施例では、デジタルアシスタントインタフェースは、その自然言語入力1606Aのプレビュー1608A(例えば、ライブプレビュー)を任意選択的に含む。
図16Nでは、自然言語入力1606Aに応答して、電子デバイス1600は、自然言語入力1606Aに関連付けられるタスクの確認を要求する、確認インタフェース1610Aを表示する。確認インタフェース1610Aは、確認アフォーダンス1612A及びキャンセルアフォーダンス1614Aを含む。確認インタフェースは、更に、そのタスクに関連付けられているコンテンツ1618Aを含み得る。一部の実施例では、キャンセルアフォーダンス1614Aの選択は、電子デバイス1600に、確認インタフェース1610Aの表示を中止させ、及び/又は、特定されたタスクを実行することを取り止めさせる(一部の実施例では、タスクを実行することは、別のデバイスにタスクを実行させることを含み得る点を想起されたい)。コンテンツ1618Aは、タスクを実行するために使用される1つ以上のパラメータなどの、そのタスクを対象とする情報を含み得る。図16Nに示されるように、例えば、コンテンツ1618Aは、そのタスクが、Homestead Rdに位置している仕事場からのラージのラッテコーヒーの注文を目的とするものであることを、指定し得る。
一部の実施例では、例えばユーザ入力1620Aによる、確認アフォーダンス1612Aの選択に応答して、電子デバイス1600は、タスクを実行する。図16Oに示されるように、一部の実施例では、電子デバイス1600がタスクを実行している間に、電子デバイス1600は、タスクが実行中であることを示すプロセスインジケータ1614A を表示する。一部の実施例では、プロセスインジケータ1615Aの表示は、確認アフォーダンス1612A及びキャンセルアフォーダンス1614Aの表示に置き換わるものである。
タスクが実行されると、電子デバイス1600は、そのタスクの実行が成功したか否かを示す出力を提供する。図16Pの実施例では、タスクの実行が成功しており、結果として、電子デバイス1600は、そのタスクの実行が成功したことを示す、成功インジケータ1616Aを表示する。一部の実施例では、成功インジケータ1616Aの表示は、プロセスインジケータ1615Aの表示に置き換わるものである。
図16Qの実施例では、タスクの実行が成功しておらず、結果として、電子デバイスは、失敗インタフェース1620Aを表示する。失敗インタフェース1620Aは、再試行アフォーダンス1622及びキャンセルアフォーダンス1624Aを含む。失敗インタフェースは、コンテンツ1630Aを更に含む。一部の実施例では、再試行アフォーダンス1622Aの選択は、電子デバイス1600に、再度そのタスクを実行させる。一部の実施例では、キャンセルアフォーダンス1624Aの選択は、電子デバイス1600に、失敗インタフェース1620Aの表示を中止させる。コンテンツ1630Aは、タスクを実行するために使用される1つ以上のパラメータなどの、そのタスクを対象とする情報を含み得る。一部の実施例では、コンテンツ1630Aは、コンテンツ1618Aと同じコンテンツである。一部の実施例では、コンテンツ1630Aは、コンテンツ1618Aとは異なる。コンテンツ1630Aは、例えば、電子デバイスがタスクの実行を成功させることができなかったこと(例えば、「エラーが発生しました。再試行してください。(There was an error. Please try again.)」)を示し得る。
図16Rに示される実施例では、電子デバイス1600は、自然言語入力(例えば、「ヘイ、Siri、私にコーヒーを。(Hey Siri, coffee me.)」)を受信し、その自然言語入力に対応するタスクの実行を成功させ、それに応答して、成功インタフェース1660Aを表示する。成功インタフェース1660Aは、デジタルアシスタント応答1664A及びアプリケーション応答1666Aを含む、出力1662Aを含む。一部の実施例では、アプリケーション応答1666Aは、タスクの実行に続いてアプリケーションによって提供された応答の、少なくとも一部分である。一部の実施例では、アプリケーション応答1666Aは、コンテンツ及び/又は1つ以上の自然言語表現を含む。図16Rに示されるように、例えば、アプリケーション応答1666Aは、タスクの実行が成功したことを示し、かつ/又は、タスクに関連する追加情報を提供する、自然言語表現1668A(例えば、「ラージラッテは20分でお受け取りとなります。(Large latte ready in 20 min.)」)を含む。コンテンツ1670Aなどの、アプリケーション応答のコンテンツは、画像、動画、及び/又は対話型コンテンツ(例えば、対話型の地図)などの、任意のタイプのコンテンツを含み得る。この方式で、アプリケーションは、タスクに関連する追加情報を更に指定することができる。一部の実施例では、デジタルアシスタント応答1664Aは、タスクの実行が成功したか否か(例えば、「了解、注文しました。(OK ordered.)」)を示す。一部の実施例では、デジタルアシスタント応答1664Aは、例えば、アプリケーションによって提供された情報をアプリケーション応答1666Aが含むこと(例えば、「コーヒーアプリが、このように言っています(The Coffee App says)」)を、ユーザに対して明らかにするために使用することができる。
図16Sの実施例では、タスクの実行は成功していない(例えば、電子デバイス1600は、タスクを実行することに失敗した)。したがって、電子デバイスは、失敗インタフェース1674Aを表示する。失敗インタフェース1674Aは、デジタルアシスタント応答1678A及びアプリケーション応答1680Aを含む、出力1676Aを含む。一部の実施例では、アプリケーション応答1680Aは、タスクの実行に続いてアプリケーションによって提供された応答の、少なくとも一部分である。一部の実施例では、アプリケーション応答1680Aは、コンテンツ及び/又は1つ以上の自然言語表現を含む。図16Sに示されるように、例えば、アプリケーション応答1680Aは、タスクの実行が成功しなかったことを示し、かつ/又は、タスクに関連する追加情報(例えば、現在のデバイスが、タスクを実行したアプリケーションを開くことができないこと)を更に提供する、自然言語表現1682A(例えば、「あなたの電話で続行してください。(Continue on your phone.)」)を含む。一部の実施例では、デジタルアシスタント応答1664Aは、タスクの実行が成功したか否か(例えば、「うーん、何か不具合がありました。(Hmm, something went wrong.)」)を示す。一部の実施例では、デジタルアシスタント応答1664Aは、例えば、アプリケーションによって提供された情報をアプリケーション応答1666Aが含むこと(例えば、「コーヒーアプリが、このように言っています(The Coffee App says)」)を明らかにするために使用することができる。
図17は、様々な実施例による、デジタルアシスタントを使用してタスクを実行するための方法1700を示す。方法1700は、例えば、デジタルアシスタントを実装する1つ以上の電子デバイスを使用して実行される。一部の実施例では、方法1700は、クライアント-サーバシステム(例えば、システム100)を使用して実行され、方法1700のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイスとの間で、任意の方式で割り振られる。他の実施例では、方法1700のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で割り振られる。それゆえ、方法1700の諸部分は、本明細書ではクライアント-サーバシステムの特定のデバイスによって実行されるように説明されているが、方法1700は、そのように限定されるものではないことが理解されるであろう。他の実施例では、方法1700は、クライアントデバイス(例えば、ユーザデバイス104)のみを使用して、又は複数のクライアントデバイスのみを使用して実行される。方法1700では、一部のブロックは任意選択的に組み合わされ、一部のブロックの順序は任意選択的に変更され、一部のブロックは任意選択的に省略される。一部の実施例では、方法1700と組み合わせて、追加的ステップを実行することができる。
本明細書で説明されるように、タスクを実行し、アプリケーションからの応答を提供することにより、デジタルアシスタントは、アプリケーションを開くことを必要とせずに、タスクを実行し、ユーザにタスクのフィードバックを提供することが可能となる。したがって、ユーザは、アプリケーションを開くことも、又は他の方式でアプリケーションに直接アクセスすることもなく、アプリケーションと対話することができる。結果として、ユーザが電子デバイスを操作するために必要とされる入力の数及び時間が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)減少し、更には、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、電子デバイスは、キーボード、マウス、マイクロフォン、ディスプレイ、及びタッチ感知面のうちの1つ以上を含む。一部の実施例では、ディスプレイは、タッチ感知ディスプレイである。他の実施例では、ディスプレイは、タッチ感知ディスプレイではない。
ブロック1705で、電子デバイスは、デジタルアシスタントを使用して、自然言語発話入力(例えば、発話された発言)を受信する(1606)。
ブロック1710で、電子デバイスは、その自然言語発話入力に関連付けられている音声ショートカットを決定する。
ブロック1715で、電子デバイスは、その音声ショートカットに対応するタスクを決定する。一部の実施例では、このタスクは、第三者サービスからの情報に関する要求である。一部の実施例では、電子デバイスは、自然言語発話入力が音声ショートカットに関連付けられていると判定し、その音声ショートカットに関連付けられているタスクを決定する。
ブロック1720で、電子デバイスは、アプリケーション(例えば、第一者アプリケーション、第三者アプリケーション)に、そのタスクの実行を開始させる。一部の実施例では、アプリケーション(例えば、第一者アプリケーション、第三者アプリケーション)にタスクの実行を開始させることは、タスク実行アニメーションを表示することを含む。一部の実施例では、タスク実行アニメーションは、タスクの実行が生じていることを示すように、円形のオブジェクト(1615)を回転させることを含む。一部の実施例では、アプリケーション(例えば、第一者アプリケーション、第三者アプリケーション)にタスクの実行を開始させることは、タスクの実行を確認するようにユーザを促すことを含む。一部の実施例では、タスクが決定されると、電子デバイスは、そのタスクの実行をユーザが確認することを要求する、確認インタフェース(1610、1610A)を表示する。一部の実施例では、この確認インタフェースは、ユーザが確認することが可能なアフォーダンス(1612、1612A)を含み、任意選択的に、ユーザが電子デバイスに確認インタフェースの表示を中止させ、タスクを実行することを取り止めさせることが可能な、キャンセルアフォーダンス(1614、1614A)を更に含む。
ブロック1725で、電子デバイスは、アプリケーションから、そのタスクに関連付けられている応答を受信する。一部の実施例では、第三者アプリケーションなどのアプリケーションを使用してタスクが実行される場合、そのアプリケーションは、タスクが成功したか否かを示す応答(1666、1680、1692)を提供する。一部の実施例では、この応答は、タスクの実行が成功したか又は失敗したかを、明示的に示す。一部の実施例では、この応答は、要求されていた情報を含み(例えば、そのタスクは、バスの時刻表に関する要求に応答して、そのバスの時刻表を取得することであった)、その要求されていた情報の返信は、そのタスクが成功したことを暗黙的に示すものである。
一部の実施例では、応答を受信した後に、電子デバイスは、そのアプリケーションに関連付けられているアプリケーションユーザインタフェース(1660)を表示する。一部の実施例では、アプリケーションにタスクを実行させた後、電子デバイスは、そのアプリケーションに関連付けられている情報、及び任意選択的に、そのタスクに関連付けられている情報を表示する。例として、特定の場所への道順を取得するタスク関しては、電子デバイスは地図を表示し、その地図は、選択された場合に、関連の地図アプリケーションの実行を引き起こす。一部の実施例では、このユーザインタフェースの1つ以上の態様は、アプリケーションによって指定される。一部の実施例では、このユーザインタフェースは、文字列、グラフィック、アニメーション、又はそれらの組み合わせである。一部の実施例では、第三者アプリケーションなどのアプリケーションが、アプリケーションユーザインタフェース内に表示するためのコンテンツ(例えば、成功した商取引に応答して、「ありがとうございます(Thank you)」と述べるグラフィック)を提供する。一部の実施例では、アプリケーションユーザインタフェースは、タスクの実行が成功したか否かを示す出力を含む。一部の実施例では、アプリケーションユーザインタフェースは、この出力と同時に表示される。
ブロック1730で、電子デバイスは、応答に基づいて、タスクの実行が成功したか否かを判定する。
ブロック1735で、電子デバイスは、タスクの実行が成功したか否かを示す出力を提供する。一部の実施例では、タスクの実行が成功したか否かを示す出力を提供することは、タスクの実行が成功したという判定に従って、そのタスクの実行が成功したというインジケーションを表示することと、タスクの実行が成功しなかったという判定に従って、そのタスクの実行が成功しなかったというインジケーションを表示することとを含む。一部の実施例では、電子デバイスは、タスクの実行が成功したか否かを示す記号(例えば、成功の場合のチェックマーク、失敗の場合の「×」)を表示する。一部の実施例では、電子デバイスは、チェックマーク(1616)を表示して、タスクの実行が成功したことを示す。一部の実施例では、電子デバイスは、タスクが失敗したことを示す「×」を表示する。一部の実施例では、電子デバイスは、タスクが失敗したことを示すメッセージ(例えば、「問題が発生しました。再試行してください。(There was a problem. Please try again.)」)を表示する。一部の実施例では、電子デバイスは、応答に基づいて自然言語出力を生成し、デジタルアシスタントを使用して、自然言語出力を提供する(例えば、出力する、表示する)。一部の実施例では、タスクの実行が成功しなかったという判定に更に従って、電子デバイスは、失敗ユーザインタフェース(1620)を表示する。
一部の実施例では、出力を提供することは、応答に基づいて自然言語出力(1662、1676)を生成し、デジタルアシスタントを使用して、自然言語出力を提供することを含む。一部の実施例では、自然言語出力を提供する(例えば、出力する、表示する)ことは、音声発話出力を提供することを含む。一部の実施例では、自然言語出力を提供することは、その自然言語出力を表示することを含む。一部の実施例では、自然言語出力は、アプリケーションに対する言及を含む。一部の実施例では、自然言語出力は、アプリケーションの名前又はニックネームを含む。一部の実施例では、応答は、自然言語表現を含むものであり、自然言語出力は、第三者自然言語表現(例えば、1666、「了解、注文しました。Starbucksは『あなたの注文は5分でお受け取りとなります』と言っています(Okay, ordered. Starbucks says 'Your order will be ready in 5 minutes)」)を含む。一部の実施例では、応答は、自然言語表現(1668、1682)を含み、自然言語出力は、その自然言語表現の少なくとも一部分を含む。一部の実施例では、自然言語出力は、アプリケーションによってタスクの実行が成功しなかったこと(例えば、「何か不具合がありました。Starbucksは『残高が不足しています』と言っています。(Something went wrong. Starbucks says 'You have insufficient funds.')」)を示す。一部の実施例では、自然言語出力は、アプリケーションによってタスクの実行が成功したことを示す。
本明細書で説明されるように出力を提供することにより、デジタルアシスタントは、例えば、ユーザとデジタルアシスタントとの間のダイアログ(例えば、対話型ダイアログ)の過程において、アプリケーションからのフィードバック及び/又は他の情報を、直感的かつ柔軟な方式で提供することが可能となる。例として、デジタルアシスタントは、アプリケーションからユーザに自然言語表現を提供する(例えば、中継する)ことができるため、ユーザは、アプリケーションを開くことも、又は他の方式でアプリケーションに直接アクセスすることもなく、そのアプリケーションと対話することができる。したがって、この方式で自然言語出力を提供することにより、ユーザが電子デバイスを操作するために必要とされる入力の数及び時間が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)減少し、更には、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、失敗ユーザインタフェースは、再試行アフォーダンス(1622)を含む。一部の実施例では、電子デバイスは、再試行アフォーダンスの選択に対応するユーザ入力を検出し、その再試行アフォーダンスの選択に対応するユーザ入力の検出に応答して、タスクの実行をアプリケーションに開始させる。
一部の実施例では、失敗ユーザインタフェースは、キャンセルアフォーダンス(1624)を含む。一部の実施例では、電子デバイスは、キャンセルアフォーダンスの選択に対応するユーザ入力を検出し、そのキャンセルアフォーダンスの選択に対応するユーザ入力に応答して、失敗ユーザインタフェースの表示を中止する。
一部の実施例では、失敗ユーザインタフェースは、アプリケーション起動アフォーダンス(1626、1628)を含む。一部の実施例では、電子デバイスは、アプリケーション起動アフォーダンスの選択に対応するユーザ入力を検出し、そのアプリケーション起動アフォーダンスの選択に対応するユーザ入力に応答して、アプリケーションを起動する(例えば、実行する、開く)。一部の実施例では、ユーザは、(1)アプリケーション起動アフォーダンス、又は(2)アプリケーションに関連付けられているアイコンを選択することにより、アプリケーションを起動する。
一部の実施例では、タスクの実行が成功したという判定に更に従って、電子デバイスは、タスク成功アニメーションを表示する。一部の実施例では、タスク成功アニメーションは、形状(例えば、正方形、円)に「チェックマークが付けられる」こと(1616)を含む。
図17を参照して上述された動作は、任意選択的に、図1~図4、図6A、図6B、及び図7A~図7Cに示される構成要素によって実施される。例えば、方法1900の動作は、限定するものではないが、デバイス104、200、400、600、及びデバイス1600を含めた、本明細書で説明される任意のデバイス(又は、その構成要素)によって実施することができる。図1~図4、図6A、図6B、及び図7A~図7Cに示される構成要素に基づいて、どのように他のプロセスが実施されるかは、当業者には明らかであろう。
図12に関連して説明されたように、電子デバイスは、その電子デバイスのコンテキストに基づいて提案を提供することができる。しかしながら、一部の場合には、他のタイプの情報(例えば、ユーザ固有情報)も使用して、タスク提案を提供することが望ましい場合がある。例として、以下で更に詳細に説明されるように、ユーザのキュー(例えば、TV番組のエピソードのプレイリスト)の進捗を示す情報を、コンテキストデータと組み合わせて使用することにより、タスク提案を提供することができる。
例示的動作では、電子デバイスは、アプリケーション(例えば、メディアストリーミングアプリケーション)から、ユーザに関する、そのアプリケーションによって特定されたメディアアイテム(例えば、曲、ビデオ、アルバム、プレイリストなどのコンテンツ)のセットなどの情報(例えば、ユーザ固有情報)を、受信することができる。この情報は、例えば、アプリケーションに提供されたAPI呼び出しに応答して、受信することができる。一部の実施例では、このアプリケーションは、第三者アプリケーション(例えば、Netflix)である。一部の実施例では、このアプリケーションは、インターネットなどのネットワークを介して電子デバイスに通信可能に結合されている、リモートメディア予測サービスなどのリモートアプリケーションである。この情報は、タスク提案の予測よりも前に、随時受信することができる。
一部の実施例では、それらのメディアアイテムのセットは、アプリケーションによってユーザに推奨されているメディアアイテムを含む。アイテムは、ユーザによってアクセスされた以前のメディアアイテムに基づいて、推奨することができる。一例として、アプリケーションは、ユーザによってアクセスされたプレイリスト内の、現在又は次の曲を推奨することができる。別の例として、アプリケーションは、以前にアクセスされたメディアアイテムと同じカテゴリを共有しているメディアアイテムなどの、以前にアクセスしたメディアアイテムに関連しているアイテムを推奨することができる。カテゴリとしては、例えば、ジャンル(例えば、ヒップホップ)、年代(例えば、90年代)、アクティビティ(例えば、学習、トレーニング)、ムード(例えば、楽しい)、休日(例えば、クリスマス)を挙げることができる。
一部の実施例では、メディアアイテムのセットは、メディアアイテムのリストとして提供される。一部の実施例では、メディアアイテムのセットは、ベクトルとして提供される。一部の実施例では、メディアアイテムのセットは、そのメディアアイテムのセットのうちの1つ以上のメディアアイテムを説明する、再生データと組み合わせて提供される。この再生データは、任意選択的に、そのメディアアイテムの再生に関する1つ以上の態様を指定し得る。一例として、再生データは、それらメディアアイテムのうちの1つ以上における特定の時間(例えば、ユーザがメディアアイテムの再生を中止した時間)を指定し得る。別の例として、再生データは、再生に関する言語、及び/又は字幕を表示するか否かを指定し得る。更に別の例として、再生データは、メディアアイテムの再生に関する解像度及び/又はビットレートを示し得る。
本明細書では、1つのアプリケーションから1つのメディアアイテムのセットを受信する電子デバイスに関連して説明されているが、電子デバイスは、任意数のアプリケーションから任意数のメディアアイテムのセットを受信することができる点が理解されるであろう。説明された方式で(例えば、API呼び出しに応答して)受信されるメディアアイテムのセットは、周期的に、及び/又はイベントに応答して受信することができる。一部の実施例では、電子デバイスは、タスク提案を選択的に提供する前に、1つ以上のメディアアイテムのセットを要求する。
一部の実施例では、電子デバイスがメディアアイテムのセットを受信すると、電子デバイスは、図12を参照して説明されたように、そのメディアアイテムのセット及び/又は電子デバイスのコンテキストデータに基づいて、1つ以上のタスク提案を提供するか否かを判定する。
一例として、メディアアイテムのセットを受信することに加えて、電子デバイスは、その電子デバイスに関連付けられたコンテキストデータを受信し、それらメディアアイテムのセット及びコンテキストデータに基づいて、1つ以上のタスクを決定する。それら1つ以上のタスクのうちの少なくとも1つは、例えば、そのメディアアイテムのセットのうちの1つのメディアアイテムの再生に対応し得る。一部の実施例では、このメディアアイテムの再生に対応するタスクの1つ以上のパラメータは、再生データに基づき得る。例として、このタスクは、特定の時間におけるメディアアイテムの再生に対応し得る。
その後、電子デバイスは、説明されたように、それら1つ以上のタスクのうちのいずれかが、提案基準を満たしているか否かを判定する。提案基準を満たしている1つ以上のタスクのそれぞれに関して、電子デバイスは、説明されたように、タスク提案を提供し、電子デバイスのディスプレイ上に、そのタスク提案に対応する提案アフォーダンスを表示する。
別の例として、電子デバイスは、タスクを決定し、1つ以上のメディアアイテムを使用して、そのタスクを選択的に修正する。例えば、メディアアイテムのセットを受信することに加えて、電子デバイスは、コンテキストデータを受信し、そのコンテキストデータに基づいてタスクを決定する。そのタスクがメディアアイテムの再生に対応する場合、そのタスクは、メディアアイテムのセットのうちの1つのメディアアイテム、及び/又は複数のメディアアイテムのうちの1つのメディアアイテムのパラメータを含むように、修正することができる。一部の実施例では、タスクは、そのタスクが提案基準を満たしているか否かを判定する前に修正される。一部の実施例では、タスクは、そのタスクが提案基準を満たしているか否かを判定した後に修正される。
図18A~図18Dは、一部の実施形態による、電子デバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス600、又はデバイス700)上にメディアアイテム提案アフォーダンスを提供するための、例示的なユーザインタフェースを示す。これらの図中のユーザインタフェースは、図19でのプロセスを含めた、以下で説明されるプロセスを例示するために使用される。
図18Aは、電子デバイス1800(例えば、デバイス104、デバイス122、デバイス200、デバイス600、又はデバイス700)を示す。図18A~図18Dに示される非限定的な例示的実施形態では、電子デバイス1800は、スマートフォンである。他の実施形態では、電子デバイス1800は、ウェアラブルデバイス(例えば、スマートウォッチ)などの、異なるタイプの電子デバイスとすることができる。一部の実施例では、電子デバイス1800は、ディスプレイ1801、1つ以上の入力デバイス(例えば、ディスプレイ1801のタッチスクリーン、ボタン、マイクロフォン)、及び無線通信装置を有する。一部の実施例では、電子デバイス1800は、複数のカメラを含む。一部の実施例では、この電子デバイスは、1つのみのカメラを含む。一部の実施例では、この電子デバイスは、赤外線カメラ、サーモグラフィカメラ、又はそれらの組み合わせなどのカメラを任意選択的に含む、1つ以上のバイオメトリックセンサ(例えば、バイオメトリックセンサ1803)を含む。
図18Aでは、電子デバイス1800は、電子デバイスがアンロック状態にある間、ディスプレイ1801上に、ロック画面インタフェース1804などのロック画面インタフェースを表示する。ロック画面インタフェース1804は、提案アフォーダンス1806及び通知1808を含む。一部の実施例では、選択アフォーダンス1806の選択は、図8A~図8AFに関連して説明されたように、電子デバイス1800に、その提案アフォーダンスに関連付けられているタスクを選択的に実行させる。提案アフォーダンス1806は、メディア再生アプリケーション(例えば、TVアプリ)でのメディアアイテム(例えば、シリコンバレー(Silicon Valley)のシーズン2のエピソード3)の再生に関するタスクに対応している。一部の実施例では、通知1808の選択は、電子デバイスに、その通知に関連付けられているアプリケーションを開かせる。
一部の実施例では、例えばユーザ入力1814による、提案アフォーダンス1806の選択に応答して、電子デバイス1800は、タスクを実行する。図18Bに示されるように、電子デバイス1800は、提案アフォーダンス1806に関連付けられているメディアアイテム(例えば、シリコンバレーのシーズン2のエピソード3)の再生を開始する。
一部の実施例では、提案アフォーダンスは、検索画面上に表示することができ、及び/又は、電子デバイスの検索機能を使用して検索可能とすることもできる。図18Cでは、例えば、電子デバイス1800は、検索インタフェース1820を表示している。検索インタフェース1820を表示している間に、検索文字列(例えば、「S」)の入力に応答して、電子デバイス1800は、提案アフォーダンス1822、1828、1832、連絡先結果1834、及びメール結果1836を含む、検索結果を返す。一部の実施例では、提案アフォーダンスは、他の全ての結果よりも上方に提示される。したがって、提案アフォーダンス1822、1828、及び提案アフォーダンス1832は、検索インタフェース1820内で、連絡先結果1834及びメール結果1836よりも上方に提示される。
一部の実施例では、メディアアイテムの再生に関するタスクに対応している提案アフォーダンスは、他の提案アフォーダンスとは異なる方式で表示される。図18Cに示されるように、例えば、提案アフォーダンス1822は、メディアアイコン1824及び再生グリフ1826を含む。一部の実施例では、アイコン1824は、他の提案アフォーダンスのアイコン(例えば、提案アフォーダンス1828のアイコン1830、提案アフォーダンス1832のアイコン1834)に比べて、相対的に大きいものとすることができる。アイコン1824は、更に、映像フレームなどの、そのメディアアイテムに関連付けられている画像を含み得る。再生グリフ1826は、メディアタスクカテゴリに対応するタスクに、提案アフォーダンス1822が対応していることを示し得る。
一部の実施例では、例えばユーザ入力1836による、提案アフォーダンス1822の選択に応答して、電子デバイス1800は、提案アフォーダンス1822に関連付けられている拡張インタフェース1850を表示する。一部の実施例では、ユーザ入力1836は、所定のタイプのタッチ入力(例えば、閾値強度又は閾値持続時間を満たすタッチ入力)である。図18Dを参照すると、拡張インタフェース1850は、一部の実施例では提案インタフェース1822に対応する、提案アフォーダンス1838を含む。一部の実施例では、提案アフォーダンス1838は、アイコン1824に対応するアイコン1840、及び、アイコン1826に対応する再生グリフ1842を含む。一部の実施例では、アイコン1840は、映像フレームなどの、そのメディアアイテムに関連付けられている画像を含む。一部の実施例では、アイコン1822及びアイコン1840は、同じ画像を含む。一部の実施例では、提案アフォーダンス1838のアイコン1840は、アイコン1824よりも大きい。一部の実施例では、拡張ビューインタフェース1850の表示は、電子デバイス1800のディスプレイの1つ以上の部分を、ぼやけさせ、暗くさせ、及び/又は他の方式で不明瞭化させる。
図19は、様々な実施例による、メディアアイテム提案を提供するための方法1900を示す。方法1900は、例えば、デジタルアシスタントを実装する1つ以上の電子デバイスを使用して実行される。一部の実施例では、方法1900は、クライアント-サーバシステム(例えば、システム100)を使用して実行され、方法1900のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイスとの間で、任意の方式で割り振られる。他の実施例では、方法1900のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で割り振られる。それゆえ、方法1900の諸部分は、本明細書ではクライアント-サーバシステムの特定のデバイスによって実行されるように説明されているが、方法1900は、そのように限定されるものではないことが理解されるであろう。他の実施例では、方法1900は、クライアントデバイス(例えば、ユーザデバイス104)のみを使用して、又は複数のクライアントデバイスのみを使用して実行される。方法1900では、一部のブロックは任意選択的に組み合わされ、一部のブロックの順序は任意選択的に変更され、一部のブロックは任意選択的に省略される。一部の実施例では、方法1900と組み合わせて、追加的ステップを実行することができる。
以下で説明されるように、タスクに対応する提案アフォーダンスを、本明細書で説明されるように選択的に提供することにより、ユーザは、電子デバイス上で、そのユーザに関連するタスクを効率的かつ簡便に実行することが可能となる。例として、電子デバイスによって表示される提案アフォーダンスは、ユーザのメディア消費及び/又は判定されたメディア選好に基づいて特定される、タスクに対応し得る。それゆえ、この方式で選択的に提案を提供することにより、ユーザが電子デバイスを操作するために必要とされる入力の数及び時間が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)減少し、更には、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
一部の実施例では、電子デバイスは、キーボード、マウス、マイクロフォン、ディスプレイ、及びタッチ感知面のうちの1つ以上を含む。一部の実施例では、ディスプレイは、タッチ感知ディスプレイである。他の実施例では、ディスプレイは、タッチ感知ディスプレイではない。
ブロック1905で、電子デバイスは、アプリケーションから複数のメディアアイテムを受信する。一部の実施例では、電子デバイスは、API呼び出しを使用して、アプリケーション(例えば、第三者アプリケーション)から複数のメディアアイテムを要求する。一部の実施例では、API呼び出しに応答して、アプリケーションは、そのアプリケーションによってユーザに推奨される今後のメディアアイテムのリスト(例えば、ベクトル)を返す。一部の実施例では、この方式で受信されるメディアアイテムとしては、アルバム、曲、TV番組、エピソード(又は、これらの任意の組み合わせのプレイリスト)を挙げることができる。一部の実施例では、アプリケーションから複数のメディアアイテムを受信することは、そのアプリケーションから複数のメディアアイテムを含むベクトルを受信することを含む。一部の実施例では、各メディアアイテムは、それぞれのメディアアイテム又はメディアアイテムのセットについての情報を含む、コンテナである。一部の実施例では、アプリケーションから複数のメディアアイテムを受信することは、そのアプリケーションとは異なる別のアプリケーションを表示している間に、複数のメディアアイテムを受信することを含む。一部の実施例では、アプリケーションから複数のメディアアイテムを受信する前に、電子デバイスは、そのアプリケーションに複数のメディアアイテムを要求する。一部の実施例では、メディアアイテムは、提案が予測された時点で、要求/受信される。一部の実施例では、メディアアイテムは、ユーザによってアプリケーションが開かれる際及び/又は閉じられる際に、要求/受信される。一部の実施例では、複数のメディアアイテムは、リモートアプリケーション(例えば、リモートメディア予測サービス)から受信される。一部の実施例では、複数のメディアアイテムは、電子デバイスに選択的に予測を提供させるイベントの前に受信される。
ブロック1910で、電子デバイスは、その電子デバイスに関連付けられたコンテキストデータを受信する。一部の実施例では、電子デバイスは、その電子デバイスのコンテキスト情報を受信する。この方式で受信されるコンテキスト情報は、電子デバイスの位置、時刻、曜日などを含み得る。
ブロック1915で、電子デバイスは、それら複数のメディアアイテム及びコンテキストデータに基づいて、タスクを決定する。一部の実施例では、このタスクは、複数のメディアアイテムのうちの1つのメディアアイテムの再生に関するタスクである。一部の実施例では、このタスクは、特定の再生時間を指定する。一部の実施例では、このタスクは、メディアアイテムの再生が、そのメディアアイテム内の特定の箇所(例えば、1:02)で開始されることを指定することができる。一部の実施例では、電子デバイスは、説明されたように、複数の提案を生成する。1つ以上の提案タスクが、要求されたリスト内のメディアアイテムに対応している場合には、対応のメディアアイテムの再生に関する1つ以上のタスクが提供される。
電子デバイスのコンテキスト及び複数のメディアアイテムに基づいて、タスク(例えば、タスク確率、パラメータ確率)を決定することは、本明細書で説明されるような、電子デバイスによって提供されるタスク提案が、ユーザによる電子デバイスの以前の使用のみならず、そのメディアドメインにおける将来の挙動についての直感的かつ適切な予測にもまた基づいて提供されることを保証するものである。このことはまた、ユーザ挙動を促進する可能性が比較的高い有力なタスク提案が、ユーザに提供されることを保証する。それゆえ、この方式で提案を提供することにより、ユーザが電子デバイスを操作するために必要とされる入力の数及び時間が(例えば、デバイスを操作/デバイスと対話する際に、適切な入力を提供するようにユーザを支援し、ユーザの誤りを削減することによって)減少し、更には、電力使用量が低減され、デバイスのバッテリ寿命が向上する。
ブロック1920で、電子デバイスは、タスクが提案基準を満たしているか否かを判定する。一部の実施例では、電子デバイスは、特定されたタスクのうちのいずれかが、その電子デバイスのコンテキストデータ及び現在のコンテキストを所与として、それらタスクのうちの1つ以上を電子デバイスが提案として提供するべきであるような、確率的閾値を満たしているか否かを判定する。
ブロック1925で、タスクが提案基準を満たしているという判定に従って、電子デバイスは、電子デバイスのディスプレイ上に、そのタスクに対応する提案アフォーダンス(1806)を表示する。
ブロック1930で、タスクが提案基準を満たしていないという判定に従って、電子デバイスは、提案アフォーダンスを表示することを取り止める。
一部の実施例では、このタスクは第1のタスクであり、この提案アフォーダンスは第1の提案アフォーダンスである。一部の実施例では、電子デバイスは、コンテキストデータに基づいて第2のタスクを決定し、その第2のタスクが提案基準を満たしているか否かを判定し、その第2のタスクが提案基準を満たしているという判定に従って、ディスプレイ上に、その第2のタスクに対応する第2の提案アフォーダンスを表示し、その第2のタスクが提案基準を満たしていないという判定に従って、第2の提案アフォーダンスを表示することを取り止める。
一部の実施例では、このアプリケーションは第1のアプリケーションであり、タスクは、その第1のアプリケーションに関連付けられており、この提案アフォーダンスは、第1のアプリケーションとは異なる第2のアプリケーションに関連付けられている。一部の実施例では、メディアアイテムに関するタスクの提案を生成する際、電子デバイスは、その提案アフォーダンスに関するアプリケーションのレプリカをシミュレートする。この方式で、電子デバイスは、そのアプリケーションの現在再生中のアイテム、及び/又はキューに上書きすることなく、その提案に関する再生コントローラ及び/又はプレイリストを表示することができる。一部の実施例では、ユーザが提案を選択した場合には、電子デバイスは、提案されているメディアアイテム(単数又は複数)を使用して、アプリケーションの再生を開始する。
一部の実施例では、第2の電子デバイスが、アプリケーション(例えば、リモートメディア予測サービス)を使用して、電子デバイス上で以前に再生された1つ以上のメディアアイテムを決定し、その決定された1つ以上のメディアアイテムに基づいて、複数のメディアアイテムを生成する。一部の実施例では、電子デバイスは、例えば同じユーザに関連付けられている、任意数のデバイス上で再生された、1つ以上のメディアアイテムを決定する。この方式では、提案を作成するために使用されるメディアは、そのユーザの全てのデバイス間で一貫している。一部の実施例では、メディアアイテムは、電子デバイスに通信可能に結合されているバックエンドサーバから受信される。一部の実施例では、複数のメディアアイテムを生成することは、電子デバイス上で以前に再生された1つ以上のメディアアイテムのうちの少なくとも1つのカテゴリ(例えば、ジャンル、年代、アクティビティ、ムード、休日)を特定し、その特定されたカテゴリに関連付けられているメディアアイテムを特定することを含む。
図19を参照して上述された動作は、任意選択的に、図1~図4、図6A、図6B、及び図7A~図7Cに示される構成要素によって実施される。例えば、方法1900の動作は、限定するものではないが、デバイス104、200、400、600、及びデバイス1800を含めた、本明細書で説明される任意のデバイス(又は、その構成要素)によって実施することができる。図1~図4、図6A、図6B、及び図7A~図7Cに示される構成要素に基づいて、どのように他のプロセスが実施されるかは、当業者には明らかであろう。
一部の実装形態によれば、コンピュータ可読記憶媒体(例えば、非一時的コンピュータ可読記憶媒体)が提供され、このコンピュータ可読記憶媒体は、電子デバイスの1つ以上のプロセッサによって実行される1つ以上のプログラムを記憶し、それら1つ以上のプログラムは、本明細書で説明される方法又はプロセスのうちのいずれかを実行する命令を含む。
一部の実装形態によれば、本明細書で説明される方法又はプロセスのうちのいずれかを実行するための手段を備える、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
一部の実装形態によれば、本明細書で説明される方法又はプロセスのうちのいずれかを実行するように構成された処理ユニットを備える、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
一部の実装形態によれば、1つ以上のプロセッサと、その1つ以上のプロセッサによって実行するための1つ以上のプログラムを記憶しているメモリとを備え、それら1つ以上のプログラムが、本明細書で説明される方法又はプロセスのうちのいずれかを実行する命令を含む、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
前述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかしながら、上記の例示的な論考は、網羅的であること、又は、開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を鑑みて、多くの修正及び変形が可能である。これらの実施形態は、本技術の原理、及びその実際の適用を最も良好に説明するために、選択及び説明されたものである。それにより、他の当業者は、想到される具体的な用途に適するような様々な修正を使用して、本技術及び様々な実施形態を最も良好に利用することが可能となる。
添付図面を参照して、本開示及び実施例を十分に説明してきたが、様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるような、本開示及び実施例の範囲内に含まれるものとして理解されたい。
上述のように、本技術の一態様は、タスク提案を使用してユーザ挙動を促進するために、様々なソースから入手可能なデータを収集及び使用することである。本開示は、一部の場合には、この収集されたデータが、特定の人物を一意に特定する個人情報データ、又は、特定の人物に連絡するために、若しくはその人物の位置を特定するために使用することが可能な、個人情報データを含み得ることを想到している。そのような個人情報データとしては、人口統計データ、位置ベースのデータ、電話番号、電子メールアドレス、ツイッターID、自宅の住所、ユーザの健康又はフィットネスのレベルに関するデータ若しくは記録(例えば、バイタルサイン測定値、投薬情報、運動情報)、誕生日、あるいは任意の他の識別情報又は個人情報を挙げることができる。
本開示は、本技術において、そのような個人情報データの使用を、ユーザの利益のために使用することができる点を認識するものである。例えば、個人情報データを使用することにより、ユーザがより興味を示すタスク提案を配信することができる。したがって、そのような個人情報データの使用は、ユーザによる、電子デバイスの促進されたより効率的な使用を可能にする。更には、ユーザに利益をもたらす、個人情報データに関する他の使用もまた、本開示によって想到される。例えば、健康データ及びフィットネスデータは、ユーザの全般的なウェルネスについての洞察を提供するために使用することができ、あるいは、ウェルネスの目標を追求するための技術を使用している個人への、積極的なフィードバックとして使用することもできる。
本開示は、そのような個人情報データの収集、分析、開示、伝送、記憶、又は他の使用に関与するエンティティが、確固たるプライバシーポリシー及び/又はプライバシー慣行を遵守するものとなることを想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。そのようなポリシーは、ユーザによって容易にアクセス可能とするべきであり、データの収集及び/又は使用が変化するにつれて更新されるべきである。ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いては、共有又は販売されるべきではない。更には、そのような収集/共有は、ユーザに告知して同意を得た後に実施されるべきである。更には、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、それらのプライバシーポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じることを考慮するべきである。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。更には、ポリシー及び慣行は、収集及び/又はアクセスされる具体的な個人情報データのタイプに適合されるべきであり、また、管轄権固有の考慮事項を含めた、適用可能な法令及び規格に適合されるべきである。例えば、アメリカ合衆国では、特定の健康データの収集又はアクセスは、医療保険の相互運用性と説明責任に関する法律(Health Insurance Portability and Accountability Act;HIPAA)などの、連邦法及び/又は州法によって管理することができ、その一方で、他国における健康データは、他の規制及びポリシーの対象となり得るものであり、それに従って対処されるべきである。それゆえ、各国の異なる個人データのタイプに関して、異なるプライバシー慣行が保たれるべきである。
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するように、ハードウェア要素及び/又はソフトウェア要素を提供することができると想到する。例えば、電子デバイスによって受信されるコンテキストデータ(図12を参照して説明されたコンテキストデータなど)の場合、本技術は、ユーザが、サービスの登録中又はその後の任意の時点で、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することが可能となるように、構成することができる。「オプトイン」及び「オプトアウト」の選択肢を提供することに加えて、本開示は、個人情報のアクセス又は使用に関する通知を提供することを想到する。例えば、ユーザには、アプリケーションをダウンロードする際に、自身の個人情報データがアクセスされることを通知することができ、次いで、そのアプリケーションによって個人情報データがアクセスされる直前に、再び注意を促すことができる。
更には、本開示の意図は、個人情報データを、非意図的若しくは不正なアクセス又は使用の危険性を最小限に抑える方法で、管理及び処理するべきであるという点である。データの収集を制限し、データがもはや必要とされなくなった時点で削除することによって、危険性を最小限に抑えることができる。更には、適用可能な場合、特定の健康関連アプリケーションにおいて、ユーザのプライバシーを保護するために、データの非特定化を使用することができる。非特定化は、適切な場合、特定の識別子(例えば、生年月日など)を除去すること、記憶されるデータの量又は具体性を制御すること(例えば、位置データを、住所レベルではなく都市レベルで収集すること)、データがどのように記憶されるかを制御すること(例えば、ユーザ全体にわたってデータを集約すること)、及び/又は他の方法によって、容易にすることができる。
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものではあるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することもまた可能であることを想到している。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分が欠如することにより、実施不可能となるものではない。例えば、タスク提案は、ユーザに関連付けられたデバイスによって要求されているコンテンツ、電子デバイスに入手可能な他の非個人情報、若しくは公的に入手可能な情報などの、非個人情報データ又は必要最小限の量の個人情報に基づいて、その電子デバイスの以前の使用の可能性を推測することによって、ユーザに提供することができる。