以下の実施例の説明では、実践することが可能な特定の実施例が例として示される、添付図面を参照する。それら様々な実施例の範囲から逸脱することなく、他の実施例を使用することができ、構造上の変更を実施することができる点を理解されたい。
以下の説明では、様々な要素について説明するために、「第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は、デジタルアシスタントを実装する。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、発語形式及び/又はテキスト形式の自然言語入力を解釈することによりユーザ意図を推測して、その推測されたユーザ意図に基づいてアクションを実行する、任意の情報処理システムを指す。例えば、推測されたユーザ意図に基づいて動作するために、システムは、以下のことのうちの1つ以上を実行する:推測されたユーザ意図を果たすように設計されたステップ及びパラメータを有するタスクフローを特定すること、推測されたユーザ意図からの特定の要求事項をタスクフロー内に入力すること、プログラム、方法、サービス、API、若しくは同様のものを呼び出すことによってタスクフローを実行すること、並びに可聴(例えば、発語)及び/又は視覚形式のユーザへの出力応答を生成すること。
具体的には、デジタルアシスタントは、少なくとも部分的に、自然言語によるコマンド、要求、意見、談話、及び/又は照会の形態で、ユーザ要求を受け入れることが可能である。典型的には、ユーザ要求は、デジタルアシスタントによる情報回答又はタスクの実行のいずれかを求めるものである。ユーザ要求に対する満足な応答は、要求された情報回答の提供、要求されたタスクの実行、又は、それら2つの組み合わせを含む。例えば、ユーザは、デジタルアシスタントに、「私は今どこにいますか?(Where am I right now?)」などの質問をする。ユーザの現在位置に基づいて、デジタルアシスタントは、「あなたは西ゲート付近の中央公園にいます」と応答する。ユーザはまた、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティーに招待してください。」のように、タスクの実行も要求する。それに応じて、デジタルアシスタントは、「はい、ただ今。」と述べて、その要求に肯定応答することができ、次いで、そのユーザの電子アドレス帳にリストされているユーザの友人のそれぞれに、ユーザに代わって、好適なカレンダー招待状を送信することができる。要求されたタスクの実施中に、デジタルアシスタントは、長時間にわたる複数の情報交換を伴う連続的な会話で、ユーザと対話する場合がある。情報又は様々なタスクの実行を要求するためにデジタルアシスタントと対話する、数多くの他の方法が存在する。言葉による応答を提供してプログラムされたアクションを取ることに加えて、デジタルアシスタントはまた、他の視覚形式又は音声形式で、例えば、テキスト、警報、音楽、動画、アニメーションなどで応答を提供する。
図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(例えば、腕時計又は類似の小型電子デバイス)が、DAサーバ106へのプロキシとしてより高い通信能力及び/又はバッテリ電力を有する第2のユーザデバイス122(例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータなど)を使用することによって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上の接触の強度を検出する1つ以上の接触強度センサ265(例えば、デバイス200のタッチ感知ディスプレイシステム212などのタッチ感知面)を含む。デバイス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は、メモリ202に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる又は実行して、デバイス200のための様々な機能を実行し、データを処理する。一部の実施形態では、周辺機器インタフェース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)とも呼ばれるインターネット、イントラネット、並びに/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(local area network、LAN)及び/若しくはメトロポリタンエリアネットワーク(metropolitan area network、MAN)などの無線ネットワークなどのネットワークと、また他のデバイスと、無線通信によって通信する。RF回路208は、任意選択的に、短距離通信無線機などによって近距離通信(near field communication、NFC)フィールドを検出する周知の回路を含む。無線通信は、任意選択的に、それだけに限定されるものではないが、動き通信用のグローバルシステム(Global System for Mobile Communications、GSM)、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケットアクセス(high-speed downlink packet access、HSDPA)、高速アップリンクパケットアクセス(high-speed uplink packet access、HSUPA)、エボリューションデータオンリ(Evolution,Data-Only、EV-DO)、HSPA、HSPA+、デュアルセルHSPA(Dual-Cell HSPA、DC-HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離通信(NFC)、広帯域符号分割多元接続(wideband code division multiple access、W-CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth、Bluetoothローエネルギ(Bluetooth Low Energy、BTLE(登録商標))、ワイヤレスフィデリティ(Wireless Fidelity、Wi-Fi)(例えば、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、及び/若しくはIEEE 802.11ac)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi-MAX(登録商標)、電子メール用プロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/若しくはポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能なメッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、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、強度センサコントローラ259、触覚フィードバックコントローラ261、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ260を含む。1つ以上の入力コントローラ260は、他の入力コントロールデバイス216からの電気信号の受信/他の入力コントロールデバイスへの電気信号の送信を行う。他の入力コントロールデバイス216は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的な実施形態では、入力コントローラ260は、任意選択的に、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに結合される(又はいずれにも結合されない)。1つ以上のボタン(例えば、図3の308)は、任意選択的に、スピーカ211及び/又はマイクロフォン213の音量制御のためのアップ/ダウンボタンを含む。1つ以上のボタンは、任意選択的に、プッシュボタン(例えば、図3の306)を含む。
プッシュボタンを素早く押圧すると、タッチスクリーン212のロックを解除するか、又は2005年12月23日に出願された米国特許出願第11/322,549号、米国特許第7,657,849号の「Unlocking a Device by Performing Gestures on an Unlock Image」に記載されているように、デバイスのロック解除のためにタッチスクリーン上でジェスチャを使う処理を開始し、その全体が参照により本明細書に組み込まれる。プッシュボタン(例えば、306)を長く押圧すると、デバイス200の電源をオン又はオフする。ユーザは、1つ以上のボタンの機能をカスタマイズすることができる。タッチスクリーン212は、仮想又はソフトボタン及び1つ以上のソフトキーボードを実装するために使用される。
タッチ感知ディスプレイ212は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ256は、タッチスクリーン212からの電気信号の受信、及び/又はタッチスクリーンへの電気信号の送信を行う。タッチスクリーン212は、ユーザに対して視覚出力を表示する。視覚出力は、グラフィックス、テキスト、アイコン、動画、及びそれらの任意の組み合わせ(まとめて「グラフィックス」と呼ばれる)を含む。一部の実施形態では、視覚出力のいくつか又は全部が、ユーザインタフェースオブジェクトに対応する。
タッチスクリーン212は、触覚及び/又は触知接触に基づくユーザからの入力を受け入れるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン212及びディスプレイコントローラ256は、(メモリ202内の任意の関連モジュール及び/又は命令セットと共に)、タッチスクリーン212上で接触(及び任意の接触の移動又は中断)を検出し、検出された接触をタッチスクリーン212に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との相互作用に変換する。例示的な実施形態では、タッチスクリーン212とユーザとの間の接触点は、ユーザの指に対応する。
タッチスクリーン212は、LCD(液晶ディスプレイ)技術、LPD(発光ポリマーディスプレイ)技術、又はLED(発光ダイオード)技術を用いるが、他の実施形態では他のディスプレイ技術を使用してもよい。タッチスクリーン212及びディスプレイコントローラ256は、容量性、抵抗性、赤外線及び表面弾性波技術、並びに他の近接センサアレイ又はタッチスクリーン212を用いて1つ以上の接触点を判定する他の要素を含むがこれに限定されない現在知られている又は今後開発される複数のタッチ感知技術のいずれかを使用して接触及びその移動又は切断を検出する。例示的な実施形態では、カリフォルニア州クパチーノのApple Inc.からの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つ以上の接触強度センサ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号の「ポータブ電子デバイスのための加速度ベースの窃盗検出」、及び、米国特許公開第20060017692号の「Acceleration-based Theft Detection System for Portable Electronic Devices」に記載のように動作し、これらの両方は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、情報は、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は、現在アクティブ状態のアプリケーションがある場合に、どのアプリケーションがアクティブであるかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ212の様々な領域を占めているかを示す表示状態、デバイスの様々なセンサ及び入力コントロールデバイス216から取得した情報を含むセンサ状態、並びにデバイスの位置、及び/又は姿勢に関する位置情報、のうちの1つ以上を含む。
オペレーティングシステム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ピン)コネクタである。
接触/動きモジュール230は、任意選択的に、タッチスクリーン212及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を(ディスプレイコントローラ256と連携して)検出する。接触/動きモジュール230は、接触が生じたかどうかを判定すること(例えば、指ダウンイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するかどうかを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が停止したかどうかを判定すること(例えば、指アップイベント又は接触の中断を検出すること)などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触/動きモジュール230は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。一部の実施形態では、接触/動きモジュール230及びディスプレイコントローラ256は、タッチパッド上の接触を検出する。
一部の実施形態では、接触/動きモジュール230は、ユーザによって動作が実行されたかどうかを判定するために(例えば、ユーザがアイコン上で「クリック」したかどうかを判定するために)、1つ以上の強度閾値のセットを使用する。一部の実施形態では、強度閾値の少なくとも1つのサブセットは、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって決定されるのではなく、デバイス200の物理ハードウェアを変更することなく調整することができる)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイハードウェアを変更することなく、広範囲の既定閾値のうちのいずれかに設定することができる。加えて、いくつかの実装形態では、デバイスのユーザに、(例えば、個々の強度閾値を調整すること、及び/又は複数の強度閾値をシステムレベルのクリック「強度」パラメータによって一度に調整することによって)強度閾値のセットのうちの1つ以上を調整するソフトウェア設定が提供される。
接触/動きモジュール230は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターンを有する(例えば検出される接触の動き、タイミング、及び/又は強度が異なる)。したがって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指タップジェスチャを検出することは、指ダウンイベントを検出し、それに続いて指ダウンイベントと同じ位置(又は実質的に同じ位置)(例えば、アイコンの位置)で指アップ(リフトオフ)イベントを検出することを含む。別の例として、タッチ感知面上で指スワイプジェスチャを検出することは、指ダウンイベントを検出し、それに続いて1つ以上の指ドラッグイベントを検出し、その後それに続いて指アップ(リフトオフ)イベントを検出することを含む。
グラフィックモジュール232は、表示されるグラフィックの視覚的な影響(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚的特性)を変化させる構成要素を含む、タッチスクリーン212又は他のディスプレイ上にグラフィックをレンダリング及び表示する様々な既知のソフトウェア構成要素を含む。本明細書で使用するとき、用語「グラフィック」は、ユーザに対して表示することが可能な任意のオブジェクトを含み、それらのオブジェクトとしては、限定するものではないが、テキスト、ウェブページ、アイコン(ソフトキーを含めた、ユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられる。
一部の実施形態では、グラフィックモジュール232は、使用されることになるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール232は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ256に出力するスクリーンの画像データを生成する。
触覚フィードバックモジュール233は、触知出力生成器267によって使用される命令を生成するための様々なソフトウェア構成要素を含み、ユーザのデバイス200との相互作用に応じて、デバイス200上の1つ以上の位置での触知出力を生成する。
グラフィックモジュール232のコンポーネントであるテキスト入力モジュール234は、いくつかの例では、様々なアプリケーション(例えば、連絡先237、電子メール240、IM241、ブラウザ247、及びテキスト入力を必要とする他の任意のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
GPSモジュール235は、デバイスの場所を判定し、様々なアプリケーション内で使用するためにこの情報を提供する(例えば、場所ベースのダイアリングで使用するために電話238へ、ピクチャ/ビデオメタデータとしてカメラ243へ、及び気象ウィジェット、ローカルイエローページウィジェット、及び地図/ナビゲーションウィジェットなどの場所ベースのサービスを提供するアプリケーションへ)。
デジタルアシスタントクライアントモジュール229は、デジタルアシスタントのクライアント側機能を提供するための、様々なクライアント側デジタルアシスタント命令を含む。例えば、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なユーザインタフェース(例えば、マイクロフォン213、加速度計268、タッチ感知ディスプレイシステム212、光センサ(単数又は複数)264、他の入力コントロールデバイス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であって、一部の実施例では、気象ウィジェット249-1、株価ウィジェット249-2、計算機ウィジェット249-3、目覚まし時計ウィジェット249-4、辞書ウィジェット249-5、及びユーザ作成ウィジェット249-6のうちの1つ以上を含む、ウィジェットモジュール、
・ユーザ作成ウィジェット249-6を作成するためのウィジェットクリエータモジュール250、
・検索モジュール251、
・動画プレーヤモジュール及び音楽プレーヤモジュールを一体化した動画及び音楽プレーヤモジュール252、
・メモモジュール253、
・地図モジュール254、及び/又は、
・オンライン動画モジュール255。
メモリ202に格納される他のアプリケーション236の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
連絡先モジュール237は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連動して、アドレス帳に名前を追加すること、アドレス帳から名前を削除すること、電話番号、電子メールアドレス、物理住所、又は他の情報を名前に関連付けることを含む、アドレス帳又は連絡先リスト(例えば、メモリ202又はメモリ470の連絡先モジュール237のアプリケーション内部状態292に記憶される)を管理するために使用される。画像を名前に関連付けること、名前を分類して並べ替えること、電話238、テレビ会議モジュール239、電子メール240、又はIM241による通信を開始及び/又は容易にするために、電話番号又は電子メールアドレスを提供することなどが含まれる。
電話モジュール238は、RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連動して、電話番号に対応する文字列を入力し、連絡先モジュール237内の1つ以上の電話番号にアクセスし、入力された電話番号を修正し、それぞれの電話番号をダイヤルし、会話を行い、会話が完了したら切断又は電話を切るために使用される。このように、無線通信は、複数の通信規格、プロトコル、及び技術のいずれかを用いる。
テレビ会議モジュール239は、RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、光センサ264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、連絡先モジュール237、及び電話モジュール238と連携して、ユーザの命令に従ってユーザと1人以上の他の参加者との間のテレビ会議を開始、実行、及び終了するための実行可能な命令を含む。
電子メールクライアントモジュール240は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ユーザの命令に応じて電子メールを作成、送信、受信、及び管理するための実行可能な命令を含む。画像管理モジュール244と連携して、電子メールクライアントモジュール240は、カメラモジュール243で撮影された静止画像又は動画画像を有する電子メールの作成及び送信を非常に容易にする。
インスタントメッセージングモジュール241は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、インスタントメッセージに対応する文字シーケンスの入力、以前に入力された文字の修正、(例えば、電話通信ベースのインスタントメッセージ向けのショートメッセージサービス(Short Message Service、SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service、MMS)プロトコル、又はインターネットベースのインスタントメッセージ向けのXMPP、SIMPLE、若しくはIMPSを使用する)個別のインスタントメッセージの送信、インスタントメッセージの受信、及び受信したインスタントメッセージの閲覧のための実行可能な命令を含む。一部の実施形態では、送信及び/又は受信されたインスタントメッセージは、グラフィックス、写真、オーディオファイル、ビデオファイル並びに/又は、MMS及び/若しくは強化されたメッセージングサービス(EMS)でサポートされた他のアタッチメントを含む。本明細書では、「インスタントメッセージング」とは、電話通信ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)と、インターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)との両方を指す。
トレーニングサポートモジュール242は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、地図モジュール254、及び音楽プレーヤモジュールと連携して、トレーニング(例えば、時間、距離、及び/又はカロリー燃焼の目標を有する)を作成し、トレーニングセンサ(スポーツデバイス)と通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニングのための音楽を選択及び再生し、並びに、トレーニングデータを表示、記憶、及び送信するための実行可能な命令を含む。
カメラモジュール243は、タッチスクリーン212、ディスプレイコントローラ256、光センサ264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、及び画像管理モジュール244と連携して、静止画像若しくは(動画ストリームを含む)動画のキャプチャ及びメモリ202内への記憶、静止画像若しくは動画の特性の修正、又はメモリ202からの静止画像若しくは動画の削除のための実行可能な命令を含む。
画像管理モジュール244は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びカメラモジュール243と連携して、静止画像及び/若しくは動画の配置、修正(例えば、編集)、又はその他の操作、ラベル付け、削除、(例えば、デジタルスライドショー若しくはアルバムにおける)提示、及び記憶のための実行可能な命令を含む。
ブラウザモジュール247は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ウェブページ又はその一部分、並びにウェブページにリンクされた添付ファイル及び他のファイルの検索、リンク、受信、及び表示を含む、ユーザの命令に従ってインターネットをブラウジングするための実行可能な命令を含む。
カレンダーモジュール248は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、ユーザの命令に従って、カレンダー及びカレンダーに関連付けられたデータ(例えば、カレンダーアイテム、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は、ウィジェットを作成するためにユーザによって使用される(例えば、ウェブページのユーザ指定部分をウィジェットに変える)。
検索モジュール251は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ユーザの命令に従って1つ以上の検索基準(例えば、1つ以上のユーザ指定検索語)と一致するメモリ202内の文字、音楽、サウンド、画像、動画、及び/又は他のファイルを検索するための実行可能な命令を含む。
動画及び音楽プレーヤモジュール252は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、及びブラウザモジュール247と連携して、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽及び他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能な命令、並びに動画を(例えば、タッチスクリーン212上又は外部ポート224を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための実行可能な命令を含む。一部の実施形態では、デバイス200は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を含む。
メモモジュール253は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ユーザの命令に従ってメモ、to-doリストなどを作成及び管理するための実行可能な命令を含む。
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、及びブラウザモジュール247と連動して、地図モジュール254は、ユーザの命令に従って地図及び地図に関連付けられたデータ(例えば、運転指示、店舗に関するデータ、特定の場所又はその近くの他の場所、及び他の場所ベースのデータ)を受信、表示、修正、及び格納するために使用される。
オンライン動画モジュール255は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、ユーザが特定のオンライン動画へのアクセス、特定のオンライン動画のブラウジング、(例えば、ストリーミング及び/又はダウンロードによる)受信、(例えば、タッチスクリーン上又は外部ポート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つ以上の機能及び本出願に記載した方法(例えば、本明細書に記載したコンピュータにより実装される方法及び他の情報処理方法)を実行する実行可能な命令のセットに対応する。これらのモジュール(例えば、命令のセット)は、個別のソフトウェアプログラム、手順、又はモジュールとして実装する必要がないので、様々な実施形態でこれらのモジュールの様々なサブセットを組み合わせる又はさもなければ再構成することができる。例えば、ビデオプレーヤモジュールは、単一モジュール(例えば、ビデオ及び音楽プレーヤモジュール252、図2A)に音楽プレーヤモジュールと組み合わせることができる。一部の実施形態では、メモリ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は、サブイベントを処理すべき階層内の最下位のビューとして、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、開始サブイベント(例えば、イベント又は潜在的イベントを形成するサブイベントシーケンスにおける第1のサブイベント)が発生する最も低いレベルのビューである。ヒットビューがヒットビュー判定モジュール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つ以上のグラフィックとの接触を中断する場合に実施される。一部の実施形態では、ジェスチャは、デバイス200と接触した指の、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上向きに及び/若しくは下向きに)、並びに/又は、ローリング(右から左へ、左から右へ、上向きに及び/若しくは下向きに)を、任意選択的に含む。一部の実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
デバイス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日に出願された国際特許出願第PCT/US2013/040061号の「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」、及び2013年11月11日に出願された国際特許出願第PCT/US2013/069483号の「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」に見出すことができ、これらのそれぞれは、全体が参照により本明細書に組み込まれる。
一部の実施形態では、デバイス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つ以上のコンピュータプロセッサ616によって実行されると、コンピュータプロセッサに以下の技術及び処理を実行させる。それらのコンピュータ実行可能命令はまた、例えば、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチし、それらの命令を実行することが可能な他のシステムなどの、命令実行システム、装置、又はデバイスによって使用するために、あるいはそれらと関連して使用するために、任意の非一時的コンピュータ可読記憶媒体内に、記憶及び/又は伝送される。パーソナル電子デバイス600は、図6Bの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
本明細書で使用されるとき、用語「アフォーダンス」とは、例えば、デバイス200、400、600、800、900、902、又は904(図2A、図4、図6A~図6B、図8A~図8CT、図9A~図9C、図10A~図10V、図12、図14、図15、及び図16)のディスプレイスクリーン上に表示される、ユーザ相互作用型グラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及びテキスト(例えば、ハイパーリンク)はそれぞれ、アフォーダンスを構成する。
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含む一部の実装形態では、そのカーソルは「フォーカスセレクタ」としての役割を果たすことにより、特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にカーソルが存在している間に、入力(例えば、押圧入力)がタッチ感知面(例えば、図4でのタッチパッド455、又は図5Bでのタッチ感知面551)上で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、図2Aでのタッチ感知ディスプレイシステム212、又は図5Aでのタッチスクリーン212)を含む一部の実装形態では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」としての役割を果たすことにより、入力(例えば、接触による押圧入力)が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の場所で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。いくつかの実装形態では、(例えば、フォーカスを1つのボタンから別のボタンへ動かすためにタブキー又は矢印キーを使用することによって)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスがユーザインタフェースの1つの領域からユーザインタフェースの別の領域に動かされ、これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタがとる具体的な形態に関わらず、フォーカスセレクタは、一般に、ユーザが意図するユーザインタフェースとの対話について(例えば、ユーザがそれを通じて対話することを意図しているユーザインタフェースの要素をデバイスに示すことによって)伝えるためにユーザによって制御されるユーザインタフェース要素(又はタッチスクリーンディスプレイ上の接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出されている間の、個別のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の位置は、その個別のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
本明細書及び特許請求の範囲において使用されるとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、すなわち、既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び/又は、接触の強度の減少を検出する前若しくは後の)に関連する所定の時間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の中間値、接触の強度の平均値、接触の強度の上位10パーセント値、接触の強度の最大値の半分の値、接触の強度の最大値の90パーセントの値などのうちの1つ以上に基づく。いくつかの実施形態では、特性強度を判定する際に(例えば、特性強度が経時的な接触の強度の平均であるときに)、接触の持続期間が使用される。いくつかの実施形態では、特性強度は、ユーザによって動作が実行されたかどうかを判定するために、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、第1の強度閾値と第2の強度閾値とを含む。この例では、第1の閾値を超えない特性強度を有する接触は第1の動作をもたらし、第1の強度閾値を上回るが第2の強度閾値を超えない特性強度を有する接触は第2の動作をもたらし、第2の閾値を超える特性強度を有する接触は第3の動作をもたらす。一部の実施形態では、特性強度と1つ以上の閾値との比較は、第1の動作又は第2の動作のいずれを実行するかを判定するために使用されるのではなく、1つ以上の動作を実行するか否か(例えば、それぞれの動作を実行するか、又はそれぞれの動作の実行を取り止めるか)を判定するために使用される。
いくつかの実施形態では、特性強度を判定する目的のために、ジェスチャの一部分が特定される。例えば、タッチ感知面は、接触強度が増加する開始位置点から終了位置点に移行する連続スワイプ接触を受け取る。この例では、終了位置における接触の特性強度は、スワイプ接触全体(例えば、終了位置でのスワイプ接触の一部分のみ)ではなく、連続スワイプ接触の一部分のみに基づく。一部の実施形態では、平滑化アルゴリズムは、接触の特性強度を判定する前に、スワイプ接触の強度に適用される。例えば、平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的のために、スワイプ接触強度の幅の狭いスパイク又は下落を排除する。
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値などの1つ以上の強度閾値に対して特徴付けられる。いくつかの実施形態では、軽い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作をデバイスが実行する強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、かつそれを下回ると接触が検出されなくなる公称接触検出強度閾値を上回る)特性強度を有する接触が検出されたとき、デバイスは、タッチ感知面上の接触の移動に従い、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、フォーカスセレクタを動かす。一般に、特に明記しない限り、これらの強度閾値は、ユーザインタフェースの値の様々なセットの間で一貫している。
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への、接触の特性強度の増大は、「軽い押圧」の入力と呼ばれることがある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への、接触の特性強度の増大は、「深い押圧」の入力と呼ばれることがある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への、接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれることがある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれることがある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロより大きい。
本明細書に記載するいくつかの実施形態では、個別の押圧入力を含むジェスチャを検出したことに応じて、又は個別の接触(若しくは複数の接触)によって実行された個別の押圧入力を検出したことに応じて、1つ以上の動作が実行され、個別の押圧入力は、押圧入力強度閾値を上回る接触(又は複数の接触)の強度の増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、個別の動作は、押圧入力強度閾値を上回る個別の接触の強度の増大(例えば、個別の押圧入力の「ダウンストローク」)を検出したことに応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る個別の接触の強度の増大、及びそれに続く押圧入力強度閾値を下回る接触の強度の減少を含み、個別の動作は、それに続く押圧入力閾値を下回る個別の接触の強度の減少(例えば、個別の押圧入力の「アップストローク」)を検出したことに応じて実行される。
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関係を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低い、又はヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくはなんらかの妥当な割合である)。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る個別の接触の強度の増大、及びそれに続く押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、個別の動作は、それに続くヒステリシス強度閾値を下回る個別の接触の強度の減少(例えば、個別の押圧入力の「アップストローク」)を検出したことに応じて実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、その後のヒステリシス強度以下の強度への接触の強度の減少を検出するときにのみ検出され、個別の動作は、押圧入力(例えば、状況に応じて、接触の強度の増大又は接触の強度の減少)を検出したことに応じて実行される。
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力、又は押圧入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じてトリガされる。更に、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて実行されるように動作が記載される例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。
3.デジタルアシスタントシステム
図7Aは、様々な実施例による、デジタルアシスタントシステム700のブロック図を示す。一部の実施例では、デジタルアシスタントシステム700は、スタンドアロン型コンピュータシステム上に実装される。一部の実施例では、デジタルアシスタントシステム700は、複数のコンピュータにわたって分散される。一部の実施例では、デジタルアシスタントのモジュール及び機能のうちの一部は、サーバ部分とクライアント部分とに割り振られており、クライアント部分は、例えば、図1に示すように、1つ以上のユーザデバイス(例えば、デバイス104、122、200、400、600、800、900、902、又は904)上に常駐し、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~図6B、図8A~図8CT、図9A~図9C、図10A~図10V、図12、図14、図15、及び図16で、それぞれデバイス200、400、600、800、900、902、及び904に関連して説明される、構成要素並びにI/O通信インタフェースのうちのいずれかを含む。一部の実施例では、デジタルアシスタントシステム700は、デジタルアシスタントの実装形態のサーバ部分を表すものであり、ユーザデバイス(例えば、デバイス104、200、400、600、800、900、902、又は904)上に常駐するクライアント側部分を通じて、ユーザと相互作用することができる。
一部の実施例では、ネットワーク通信インタフェース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、又は800)と相互作用する。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つ以上の音声認識エンジンが、フロントエンド音声プリプロセッサの抽出された代表的特徴を処理して中間認識結果(例えば、音素、音素列、部分語)、最終的にテキスト認識結果(単語、単語列、トークンのシーケンス)を生成するために使用される。一部の実施例では、発話入力は、認識結果を生成するために、第三者サービスによって、又はユーザのデバイス(例えば、デバイス104、200、400、600、又は800)上で、少なくとも部分的に処理される。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内に記憶されている。例えば、図7Bに戻ると、「レストラン」の属性に関するノードに関連付けられている語彙としては、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」などの単語が挙げられる。別の例として、「電話通話を開始する」の実施可能な意図に関するノードに関連付けられている語彙としては、「電話する(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~図8CTは、様々な実施例による、ユーザインタフェース及びデジタルアシスタントユーザインタフェースを示す。図8A~図8CTは、図17A~図17Fのプロセスを含む後述のプロセスを例示するために使用される。
図8Aは、電子デバイス800を示す。デバイス800は、デバイス104、デバイス122、デバイス200、又はデバイス600として実装される。一部の実施例では、デバイス800は、デジタルアシスタントシステム700を少なくとも部分的に実装する。図8Aの実施例では、デバイス800は、ディスプレイ及びタッチ感知面を有するスマートフォンである。他の実施例では、デバイス800は、ウェアラブルデバイス(例えば、スマートウォッチ)、タブレットデバイス、ラップトップコンピュータ、又はデスクトップコンピュータなどの異なる種類のデバイスである。
図8Aでは、デバイス800は、ディスプレイ801上に、以下で論じるデジタルアシスタント(DA)ユーザインタフェース803とは異なるユーザインタフェース802を表示する。図8Aの実施例では、ユーザインタフェース802は、ホーム画面ユーザインタフェースである。他の実施例では、ユーザインタフェースは、ロック画面ユーザインタフェース又はアプリケーション固有のユーザインタフェース、例えば、マップアプリケーションユーザインタフェース、気象アプリケーションユーザインタフェース、メッセージングアプリケーションユーザインタフェース、音楽アプリケーションユーザインタフェース、動画アプリケーションユーザインタフェースなどの別の種類のユーザインタフェースである。
一部の実施例では、DAユーザインタフェース803とは異なるユーザインタフェースを表示している間に、デバイス800は、ユーザ入力を受信する。デバイス800は、ユーザ入力がDAを開始するための基準を満たすかどうかを判定する。DAを開始するための基準を満たす例示的なユーザ入力は、所定の種類の発話入力(例えば、「ヘイ、Siri」)、デバイス800の仮想又は物理ボタンを選択する入力(又は所定の期間そのようなボタンを選択する入力)、デバイス800に結合された外部デバイスで受信された入力の種類、ディスプレイ801上で実行されるユーザジェスチャの種類(例えば、ディスプレイ801の角からディスプレイ801の中心に向かうドラッグ又はスワイプジェスチャ)、及び、デバイス800の動きを表す入力の種類(例えば、デバイス800を目視位置に持ち上げる)を含む。
一部の実施例では、ユーザ入力がDAを開始するための基準を満たすとの判定に従って、デバイス800は、ユーザインタフェース上にDAユーザインタフェース803を表示する。一部の実施例では、ユーザインタフェース上にDAユーザインタフェース803(又は別の表示要素)を表示することは、ユーザインタフェースのディスプレイの少なくとも一部をDAユーザインタフェース803の表示(又は別のグラフィック要素の表示)に置き換えることを含む。一部の実施例では、ユーザ入力がDAを開始するための基準を満たさないという判定に従って、デバイス800は、DAユーザインタフェース803を表示することを取り止め、代わりに、ユーザ入力に応答して動作を実行する(例えば、ユーザインタフェース802を更新する)。
図8Bは、ユーザインタフェース802上に表示されたDAユーザインタフェース803を示す。一部の実施例では、図8Bに示すように、DAユーザインタフェース803は、DAインジケータ804を含む。一部の実施例では、インジケータ804は、DAのそれぞれの状態を示すために異なる状態で表示される。DA状態は、リスニング状態(DAがサンプリング発話入力であることを示す)、処理状態(DAが自然言語要求を処理することを示す)、発話状態(DAが音声及び/又はテキスト出力を提供することを示す)、及びアイドル状態を含む。一部の実施例では、インジケータ804は、異なるDA状態を示すそれぞれ異なる視覚化を含む。図8Bは、DAが基準を満たすユーザ入力の検出に基づいて開始後に発話入力を受け入れる準備ができているため、リスニング状態にあるインジケータ804を示している。
一部の実施例では、リスニング状態のインジケータ804のサイズは、受信された自然言語入力に基づいて変化する。例えば、インジケータ804は、受信された発話入力の振幅に従って、リアルタイムで拡張及び収縮する。図8Cは、リスニング状態にあるインジケータ804を示す。図8Cでは、デバイス800は、自然言語発話入力「今日の天気は?」を受信し、インジケータ804は、発話入力に従って、リアルタイムで拡張及び収縮する。
図8Dは、処理状態のインジケータ804を示し、例えば、DAが要求「今日の天気は?」を処理していることを示す。図8Eは、例えば、DAが要求に応答して音声出力「今日は良い天気」を現在提供していることを示す、発話状態のインジケータ804を示す。図8Fは、アイドル状態にあるインジケータ804を示す。一部の実施例では、アイドル状態のインジケータ804を選択するユーザ入力は、例えば、音声入力をサンプリングするために1つ以上のマイクロフォンを起動することによって、DA(及びインジケータ804)をリスニング状態に移行させる。
一部の実施例では、DAは、デバイス800が他の音声出力を提供する間に、ユーザ要求に応答して音声出力を提供する。一部の実施例では、ユーザ要求及び他の音声出力に応答して音声出力を同時に提供しながら、DAは、他の音声出力のボリュームを低下させる。例えば、DAユーザインタフェース803は、現在再生しているメディア(例えば、映画又は歌)を含むユーザインタフェース上に表示される。DAがユーザ要求に応答して音声出力を提供するとき、DAは、再生メディアの音声出力のボリュームを低下させる。
一部の実施例では、DAユーザインタフェース803は、DA応答アフォーダンスを含む。一部の実施例では、応答アフォーダンスは、DAによって、自然言語入力を受信するための応答に対応する。例えば、図8Eは、受信した発話入力に応答する気象情報を含む応答アフォーダンス805を表示するデバイス800を示す。
図8E~図8Fに示すように、デバイス800は、ディスプレイ801の第1の部分及びディスプレイ801の第2の部分の応答アフォーダンス805にインジケータ804を表示する。ディスプレイ801の第3の部分では、DAユーザインタフェース803が表示されるユーザインタフェース802の一部が見えるままである(例えば、視覚的に不明瞭ではない)。例えば、見えるままであるユーザインタフェース802の部分は、デジタルアシスタントを開始したユーザ入力を受信する前に、ディスプレイ801の第3の部分に表示された(例えば、図8A)。一部の実施例では、ディスプレイ801の第1、第2、及び第3の部分は、それぞれ「インジケータ部分」、「応答部分」、及び「ユーザインタフェース(UI)部分」と呼ばれる。
一部の実施例では、UI部分は、インジケータ部分(インジケータ804を表示する)と応答部分(応答アフォーダンス805を表示する)との間にある。例えば、図8Fでは、UI部分は、応答アフォーダンス805の下部とインジケータ804の上部との間の表示領域8011(例えば、矩形領域)を含み、表示領域8011の側縁は、応答アフォーダンス805(又はディスプレイ801)の側縁によって画定される。一部の実施例では、ディスプレイ801のUI部分で見えるままであるユーザインタフェース802の部分は、1つ以上のユーザ選択可能なグラフィック要素、例えば、図8Fのホーム画面アプリケーションアフォーダンスなどのリンク及び/又はアフォーダンスを含む。
一部の実施例では、デバイス800は、応答アフォーダンス805を第1の状態で表示する。一部の実施例では、第1の状態は、コンパクト状態を含み、ここで、応答アフォーダンス805の表示サイズは、(例えば、後述する拡張応答アフォーダンス状態と比較して)小さい、及び/又は応答アフォーダンス805は、(例えば、拡張応答アフォーダンス状態と比較して)コンパクトな(例えば、要約された)形式で情報を表示する。一部の実施例では、デバイス800は、第1の状態の応答アフォーダンス805の選択に対応するユーザ入力を受信し、それに応答して、第1の状態の応答アフォーダンス805の表示を第2の状態の応答アフォーダンス805の表示に置き換える。一部の実施例では、第2の状態は、拡張状態であり、応答アフォーダンス805の表示サイズは、(例えば、コンパクト状態と比較して)大きく、及び/又は応答アフォーダンス805は、(例えば、コンパクト状態と比較して)より大量の情報/より詳細な情報を表示する。一部の実施例では、デバイス800は、デフォルトで、例えば、デバイス800が最初に第1の状態にある応答アフォーダンス805を表示するように(図8E~図8G)、第1の状態で応答アフォーダンス805を表示する。
図8E~図8Gは、第1の状態の応答アフォーダンス805を示す。示すように、応答アフォーダンス805は、例えば、現在の温度及び状態を提供し、より詳細な気象情報(例えば、毎時の気象情報)を省略することによって、コンパクトな天気情報を提供する。図8Gは、デバイス800が、第1の状態の応答アフォーダンス805の選択に対応するユーザ入力806(例えば、タップジェスチャ)を受信することを示す。図8G~図8Pは、一般に、応答アフォーダンスのそれぞれの選択に対応するユーザ入力がタッチ入力であることを示しているが、他の実施例では、応答アフォーダンスの選択に対応するユーザ入力は、音声入力(例えば、「もっと見せて」)、又は周辺デバイス入力(例えば、マウス又はタッチパッドからの入力)などの別の種類の入力である。図8Hは、ユーザ入力806を受信したことに応答して、デバイス800が第1の状態の応答アフォーダンス805の表示を第2の状態の応答アフォーダンス805の表示に置き換えることを示す。示すように、第2の状態における応答アフォーダンス805は、より詳細な気象情報を含む。
一部の実施例では、第2の状態に応答アフォーダンス805を表示している間に、デバイス800は、第1の状態で応答アフォーダンス805を表示するように要求するユーザ入力を受信する。一部の実施例では、ユーザ入力を受信したことに応答して、デバイス800は、第2の状態の応答アフォーダンス805の表示を、第1の状態の応答アフォーダンス805の表示に置き換える。例えば、図8Hでは、DAユーザインタフェース803は、選択可能要素(例えば、戻るボタン)807を含む。選択可能要素807を選択するユーザ入力は、デバイス800を図8Fのディスプレイに戻す。
一部の実施例では、第2の状態で応答アフォーダンス805を表示している間に、デバイス800は、応答アフォーダンス805の選択に対応するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイス800は、応答アフォーダンス805に対応するアプリケーションのユーザインタフェースを表示する。例えば、図8Iは、応答アフォーダンス805の選択に対応するユーザ入力808(例えば、タップジェスチャ)を受信するデバイス800を示す。図8Jは、ユーザ入力808を受信したことに応答して、デバイス800が気象アプリケーションのユーザインタフェース809を表示することを示す。
一部の実施例では、アプリケーションのユーザインタフェースを表示している間に、デバイス800は、選択可能なDAインジケータを表示する。例えば、図8Jは、選択可能なDAインジケータ810を示す。一部の実施例では、アプリケーションのユーザインタフェースを表示している間に、デバイス800は、追加的又は代替的に、例えば、アイドル状態で、ディスプレイ801の第1の部分にインジケータ804を表示する。
一部の実施例では、アプリケーションのユーザインタフェースを表示している間に、デバイス800は、選択可能なDAインジケータを選択するユーザ入力を受信する。一部の実施例では、ユーザ入力を受信したことに応答して、デバイス800は、アプリケーションのユーザインタフェースの表示をDAユーザインタフェース803と置き換える。一部の実施例では、DAユーザインタフェース803は、アプリケーションのユーザインタフェースを表示する直前に表示されるDAユーザインタフェースである。例えば、図8Kは、DAインジケータ810を選択するユーザ入力811(例えば、タップジェスチャ)を受信するデバイス800を示す。図8Lは、ユーザ入力811を受信したことに応答して、デバイス800が気象アプリケーションのユーザインタフェース809の表示をDAユーザインタフェース803の表示に置き換えることを示す。
図8Gのユーザ入力806は、応答アフォーダンス805の第1の部分の選択に対応する。一部の実施例では、デバイス800が第1の状態(例えば、コンパクト状態)で応答アフォーダンス805を表示している間、デバイス800は、応答アフォーダンス805の第2の部分の選択に対応するユーザ入力を受信する。一部の実施例では、応答アフォーダンス805の第1の部分(例えば、下部)は、ユーザの要求に応答することを意図した情報を含む。一部の実施例では、応答アフォーダンス805の第2の部分(例えば、上部)は、応答アフォーダンス805及び/又は関連付けられたテキストのカテゴリを示すグリフを含む。応答アフォーダンスの例示的なカテゴリは、気象、株価、知識、計算機、メッセージング、音楽、地図などを含む。カテゴリは、DAが提供することができるサービスのカテゴリに対応することができる。一部の実施例では、応答アフォーダンス805の第1の部分は、応答アフォーダンス805の第2の部分よりも大きい表示領域を占める。
一部の実施例では、応答アフォーダンス805の第2の部分の選択に対応するユーザ入力を受信したことに応答して、デバイス800は、(例えば、第2の状態で応答アフォーダンス805を表示することなく)応答アフォーダンス805に対応するアプリケーションのユーザインタフェースを表示する。例えば、図8Mは、第1の状態で表示された応答アフォーダンス805の第2の部分を選択するユーザ入力812(例えば、タップジェスチャ)を受信するデバイス800を示す。図8Nは、ユーザ入力812を受信したことに応答して、デバイス800が気象アプリケーションのユーザインタフェース809を表示することを示す(例えば、応答アフォーダンス805を拡張状態で表示することなく)。このようにして、ユーザは、図8G~図8H及び図8M~図8Nに示すように、応答アフォーダンス805を拡張するか、又は応答アフォーダンス805に対応するアプリケーションの表示を引き起こす、応答アフォーダンス805の異なる部分を選択する入力を提供することができる。
図8Nは、ユーザインタフェース809を表示している間に、デバイス800が選択可能なDAインジケータ810を表示することを更に示す。DAインジケータ810を選択するユーザ入力は、デバイス800に、例えば、図8K~図8Lにより例示される例と同様に、図8Mのディスプレイに戻す。一部の実施例では、ユーザインタフェース809を表示している間に、デバイス800は、ディスプレイ801の第1の部分にDAインジケータ804を(例えば、アイドル状態に)表示する。
一部の実施例では、いくつかの種類の応答アフォーダンスについて、応答アフォーダンスの任意の部分の選択に対応するユーザ入力は、デバイス800に、応答アフォーダンスに対応するアプリケーションのユーザインタフェースを表示させる。一部の実施例では、これは、応答アフォーダンスをより詳細に(例えば、第2の状態で)表示することができないためである。例えば、DAは、自然言語入力に応答して提供することができる追加情報がない場合がある。例えば、「5かける6は何?」という自然言語入力を考えてみる。図8Oは、自然言語入力に応答して表示されるDAユーザインタフェース803を示す。DAユーザインタフェース803は、第1の状態で表示される応答アフォーダンス813を含む。応答アフォーダンス813は、答え「5×6=30」を含むが、DAが提供することができる追加情報はない。図8Oは、応答アフォーダンス813の第1の部分を選択するユーザ入力814(例えば、タップジェスチャ)を受信するデバイス800を更に示す。図8Pは、ユーザ入力814を受信したことに応答して、デバイス800が、応答アフォーダンス813、例えば、計算機アプリケーションユーザインタフェースに対応するアプリケーションのユーザインタフェース815を表示することを示す。
一部の実施例では、応答アフォーダンスは、リンクを示す選択可能なテキストなどの選択可能要素を含む。図8Qは、自然言語入力「有名なバンドについて教えて」に応答して表示されるDAユーザインタフェース803を示す。DAユーザインタフェース803は、応答アフォーダンス816を含む。応答アフォーダンス816は、「有名なバンド」及び「有名なバンド」のメンバー#1に対応する選択可能要素817に関する情報を含む。一部の実施例では、デバイス800は、選択可能要素の選択に対応するユーザ入力を受信し、それに応答して、応答アフォーダンス上に、選択可能要素に対応するアフォーダンス(第2の応答アフォーダンス)を表示する。図8Rは、選択可能要素817を選択するユーザ入力818(例えば、タップジェスチャ)を受信するデバイス800を示す。図8Sは、ユーザ入力818を受信したことに応答して、デバイス800が、応答アフォーダンス816上に、メンバー#1に関する情報を含む第2の応答アフォーダンス819を表示して、応答アフォーダンスのスタックを形成することを示す。
一部の実施例では、応答アフォーダンス上に第2の応答アフォーダンスを表示している間に、デバイス800は、ディスプレイ801の第3の部分(例えば、任意の応答アフォーダンス又はインジケータ804を表示しない部分)、又はその一部でユーザインタフェースを視覚的に隠す。一部の実施例では、ユーザインタフェースを視覚的に不明瞭にすることは、ユーザインタフェースを暗くするか、又はユーザインタフェースをぼかすことを含む。図8Sは、第2の応答アフォーダンス819が応答アフォーダンス816上に表示されている間に、デバイス800が、ディスプレイ801の第3の部分でユーザインタフェース802を視覚的に隠すことを示す。
図8Sは、第2の応答アフォーダンス819がその上に表示されている間に、応答アフォーダンス816の一部が見えるままであることを示す。他の実施例では、第2の応答アフォーダンス819は、応答アフォーダンス816の表示を置き換えることにより、応答アフォーダンス816の一部が見えない。
図8Tは、第2の応答アフォーダンス819内の選択可能要素821(「デトロイト」)を選択するユーザ入力820(例えば、タップジェスチャ)を受信するデバイス800を示す。図8Uは、ユーザ入力820を受信したことに応答して、デバイス800が第2の応答アフォーダンス819に第3の応答アフォーダンス822を表示することを示す。第3の応答アフォーダンス822は、メンバー#1の出身地であるデトロイトに関する情報を含む。図8Uは、ユーザインタフェース802がディスプレイ801の第3の部分で視覚的に隠され続けることを示す。
図8Uは、応答アフォーダンスのスタックに3つの応答アフォーダンス(例えば、816、819、及び822)があるが、デバイス800が、スタック内の2つの応答アフォーダンスのみを示すことを更に示す。例えば、第3の応答アフォーダンス822及び第2の応答アフォーダンス819の一部が表示されるが、応答アフォーダンス816の一部は表示されない。したがって、一部の実施例では、3つ以上の応答アフォーダンスがスタックされると、デバイス800は、2つの応答アフォーダンスがスタック内にあることを視覚的にのみ示す。他の実施例では、応答アフォーダンスがスタックされると、デバイス800は、スタックの単一の応答アフォーダンスのみを視覚的に示す(例えば、次の応答アフォーダンスの表示が、以前の応答アフォーダンスの表示を完全に置き換えるように)。
図8V~図8Yは、ユーザがスタック内の以前の応答アフォーダンスに戻る入力を提供することを示す。特に、図8Vでは、デバイス800は、第2の応答アフォーダンス819に戻るように要求する第3の応答アフォーダンス822上のユーザ入力823(例えば、スワイプジェスチャ)を受信する。図8Wは、ユーザ入力823を受信したことに応答して、デバイス800が第3の応答アフォーダンス822を表示することを停止し、その全体が第2の応答アフォーダンス819を表示することを示す。デバイス800は、応答アフォーダンス816の一部を更に表示する(例えば、明らかにする)。図8Xは、応答アフォーダンス816に戻るように要求する第2の応答アフォーダンス819上のユーザ入力824(例えば、スワイプジェスチャ)を受信するデバイス800を示す。図8Yは、ユーザ入力824を受信したことに応答して、デバイス800が第2の応答アフォーダンス819を表示することを停止し、その全体が応答アフォーダンス816を表示することを示す。一部の実施例では、デバイス800は、スタック内の次の応答アフォーダンスを表示するための入力(例えば、反対方向のスワイプジェスチャ)を受信し、それに応答して、上述のものと同様の方法で、スタック内の次の応答アフォーダンスを表示する。他の実施例では、スタック内の応答アフォーダンスを介してナビゲートすることは、上述のものと同様の方法で、他の入力手段(例えば、表示された「戻る」又は「次の」ボタンのユーザ選択)に依存する。
図8Yは、ユーザインタフェース802がディスプレイ801の第3の部分ではもはや視覚的に隠れていないことを更に示す。したがって、一部の実施例では、図8Q~図8Yに示すように、ユーザインタフェース802は、応答アフォーダンスがスタックされたときに視覚的に不明瞭であり、アフォーダンスがスタックされていないときに視覚的に不明瞭でない。例えば、ユーザインタフェース802は、初期応答アフォーダンス816が表示されない(又は部分的にのみ表示されている)ときに視覚的に不明瞭であり、ユーザインタフェース802は、初期応答アフォーダンス816がその全体に表示されるときに視覚的に不明瞭ではない。
一部の実施例では、ユーザインタフェース(例えば、DAユーザインタフェース803が上に表示されるユーザインタフェース)は、ディスプレイ801の第4の部分(例えば、「入力フィールド部分」)を占める入力フィールドを含む。入力フィールドは、ユーザが自然言語入力を提供することができる領域を含む。一部の実施例では、入力フィールドは、メッセージングアプリケーション、電子メールアプリケーション、メモ取りアプリケーション、リマインダアプリケーション、カレンダーアプリケーションなどのアプリケーションに対応する。図8Zは、ディスプレイ801の第4の部分を占める入力フィールド826を含むメッセージングアプリケーションのユーザインタフェース825を示す。
図8AAは、ユーザインタフェース825上に表示されたDAユーザインタフェース803を示す。デバイス800は、自然言語入力「この歌は何?」に応答して、DAユーザインタフェース803を表示する。DAユーザインタフェース803は、ディスプレイ801の第1の部分にインジケータ804を含み、ディスプレイ801の第2の部分に応答アフォーダンス827(DAによって識別された歌を示す)を含む。
一部の実施例では、デバイス800は、第1の部分ディスプレイ801からディスプレイ801の第4の部分への応答アフォーダンスの変位に対応するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイス800は、ディスプレイ801の第1の部分における応答アフォーダンスの表示を入力フィールド内の応答アフォーダンスの表示に置き換える。例えば、図8AB~図8ADは、デバイス800が、ディスプレイ801の第1の部分から入力フィールド826に応答アフォーダンス827を変位させるユーザ入力828を受信することを示す。ユーザ入力828は、ディスプレイ801の第1の部分からディスプレイ801の第4の部分までのドラッグジェスチャに対応し、入力フィールド826の表示でリフトオフイベント(例えば、フィンガーリフトオフイベント)で終了する。
一部の実施例では、図8AB~図8ADに示されるように、ユーザ入力828を受信している間、デバイス800は、応答アフォーダンス827をディスプレイ801の第1の部分からディスプレイ801の第4の部分に連続的に変位させる。例えば、応答アフォーダンス827が変位している間、デバイス800は、ユーザ入力828のそれぞれの現在のディスプレイ接触位置に対応する位置に応答アフォーダンス827を表示する。一部の実施例では、応答アフォーダンス827が変位している間、応答アフォーダンス827の表示サイズは、例えば、応答アフォーダンス827が変位しながらユーザの指(又は他の入力装置)の下で収縮するように減少する。図8AB~図8ADは、応答アフォーダンス827を連続的に変位させている間、インジケータ804が表示されることを停止することを更に示す。
図8ADは、ここで、メッセージングアプリケーションの入力フィールド826に応答アフォーダンス827が表示されることを示す。図8AEは、電子デバイス800が送信メッセージアフォーダンス829の選択に対応するユーザ入力830(例えば、タップジェスチャ)を受信することを示す。図8AFは、ユーザ入力830を受信したことに応答して、デバイス800が応答アフォーダンス827をメッセージとして送信することを示す。このようにして、ユーザは、応答アフォーダンスを適切な入力フィールドに変位させるために入力(例えば、ドラッグアンドドロップ)を提供することによって、通信(例えば、テキストメッセージ、電子メール)において応答アフォーダンスを送信することができる。他の実施例では、ユーザは、同様の方法で、メモ、カレンダーエントリ、ワード処理文書、リマインダエントリなどに応答アフォーダンスを含めることができる。
一部の実施例では、(入力フィールドを表示する)ディスプレイ801の第1の部分からディスプレイ801の第4の部分への応答アフォーダンスの変位に対応するユーザ入力は、アフォーダンスの選択に対応する。一部の実施例では、アフォーダンスは、(例えば、通信中の応答アフォーダンスを共有するための)共有アフォーダンス又は(例えば、メモ又はリマインダエントリ内にアフォーダンスを保存するための)保存アフォーダンスのいずれかである。例えば、デバイス800が入力フィールドを含むユーザインタフェースの上にDAユーザインタフェース803を表示するとき、応答アフォーダンスは、ユーザインタフェースの種類に応じて、共有アフォーダンス又は保存アフォーダンスのいずれかを含む。例えば、ユーザインタフェースが通信アプリケーション(例えば、メッセージング又は電子メール)に対応する場合、応答アフォーダンスは、共有アフォーダンスを含み、ユーザインタフェースが入力フィールド(例えば、ワード処理、リマインダ、カレンダー、メモ)を有する別の種類のアプリケーションに対応する場合、応答アフォーダンスは保存アフォーダンスを含む。共有又は保存アフォーダンスを選択するユーザ入力は、デバイス800に、ディスプレイ801の第1の部分の応答アフォーダンスの表示を、上述したものと同様に、入力フィールド内の応答アフォーダンスの表示に置き換える。例えば、応答アフォーダンスが入力フィールドに表示されるとき、デバイス800は、インジケータ804を表示することを停止する。
一部の実施例では、ユーザインタフェース(例えば、DAユーザインタフェース803が上に表示されるユーザインタフェース)は、ディスプレイ801の第5の部分(例えば、「ウィジェット部分」)を占めるウィジェット領域を含む。図8AGの例では、デバイス800はタブレットデバイスである。デバイス800は、ディスプレイ801上に、ディスプレイ801の第5の部分を占めるウィジェット領域832を含むユーザインタフェース831を表示する。デバイス800は、ユーザインタフェース831上にDAユーザインタフェース803を更に表示する。自然言語入力「フライト23を追跡」に応答して、DAユーザインタフェース803が表示される。DAユーザインタフェース803は、ディスプレイ801の第1の部分に表示されるインジケータ804と、ディスプレイ801の第2の部分に表示される応答アフォーダンス833(フライト23に関する情報を含む)と、を含む。
一部の実施例では、デバイス800は、ディスプレイ801の第1の部分からディスプレイ801の第5の部分への応答アフォーダンスの変位に対応するユーザ入力を受信する。一部の実施例では、ユーザ入力を受信したことに応答して、デバイス800は、ディスプレイの第1の部分における応答アフォーダンスの表示を、ウィジェット領域内の応答アフォーダンスの表示に置き換える。例えば、図8AH~図8AJは、デバイス800が、ディスプレイ801の第1の部分からウィジェット領域832に応答アフォーダンス833を変位させるユーザ入力834を受信することを示す。ユーザ入力834は、ディスプレイ801の第1の部分からディスプレイ801の第5の部分までのドラッグジェスチャに対応し、ウィジェット領域832の表示でのリフトオフイベントで終了する。一部の実施例では、ディスプレイ801の第1の部分からディスプレイ801の第5の部分へと応答アフォーダンス833を変位させることは、上述した応答アフォーダンス827の変位と類似した様式で実行される。例えば、応答アフォーダンス833が変位している間、インジケータ804は表示されることを停止する。
図8AJは、表示されたカレンダー及び音楽ウィジェットを有するウィジェット領域832内に応答アフォーダンス833が現在表示されていることを示す。このようにして、ユーザは、応答アフォーダンス833をウィジェット領域832に変位させる入力(例えば、ドラッグアンドドロップ)を提供し、応答アフォーダンス833をウィジェットとして追加することができる。
一部の実施例では、ディスプレイ801の第1の部分からディスプレイ801の第5の部分への応答アフォーダンスの変位に対応するユーザ入力は、アフォーダンスの選択に対応する。一部の実施例では、アフォーダンスは、「ウィジェット内の表示」アフォーダンスである。例えば、デバイス800がウィジェット領域を含むユーザインタフェースの上にDAユーザインタフェース803を表示するとき、応答アフォーダンスは、「ウィジェット内の表示」アフォーダンスを含む。「ウィジェット内の表示」アフォーダンスを選択するユーザ入力は、デバイス800に、ディスプレイ801の第1の部分の応答アフォーダンスの表示を、上述したものと同様の方法で、ウィジェット領域内の応答アフォーダンスの表示に置き換えさせる。
一部の実施例では、応答アフォーダンスはイベントに対応し、デバイス800は、イベントの完了を判定する。一部の実施例では、イベントの完了を判定したことに応答して、デバイス800は、ウィジェット領域内の応答アフォーダンスを表示することを停止する(例えば、完了を決定した後の所定の期間)。例えば、応答アフォーダンス833は、フライトに対応し、フライトが完了した(例えば、着陸した)という判定に応答して、デバイス800は、ウィジェット領域832内に応答アフォーダンス833を表示することを停止する。別の実施例として、応答アフォーダンスは、スポーツゲームに対応し、スポーツゲームが終了したという判定に応答して、デバイス800は、ウィジェット領域内の応答アフォーダンスを表示することを停止する。
図8AK~図8ANは、様々な例示的な種類の応答アフォーダンスを示す。特に、図8AKは、自然言語要求「有名人Xは何歳ですか?」に応答して表示されるコンパクト応答アフォーダンス835を示す。コンパクト応答アフォーダンス835は、更なる情報(例えば、有名人Xに関する追加情報)を含まない要求に対する直接回答(例えば、「30歳」)を含む。一部の実施例では、全てのコンパクト応答アフォーダンスは、同じ最大サイズを有するため、コンパクト応答アフォーダンスは、ディスプレイ801の(比較的小さい)領域のみを占めることができる。図8ALは、自然言語要求「チーム#1のスタットを教えて」に応答して表示される詳細応答アフォーダンス836を示す。詳細応答アフォーダンス836は、チーム#1に関する詳細な情報(例えば、様々な統計)を含み、コンパクト応答アフォーダンス835よりも大きい表示サイズを有する。図8AMは、自然言語「近くのレストランのリストを見せて」に応答して表示されるリスト応答アフォーダンス837を示す。リスト応答アフォーダンス837は、オプションのリスト(例えば、レストラン)を含み、コンパクト応答アフォーダンス835よりも大きい表示サイズを有する。図8ANは、自然言語要求「Nealに電話」に応答して表示される曖昧性除去応答アフォーダンス838を示す。曖昧性除去応答アフォーダンスは、選択可能な曖昧性除去オプションを含む:(1)Neal Ellis、(2)Neal Smith、及び(3)Neal Johnson。デバイス800は、「どのNeal?」と尋ねる音声出力を更に提供する。
図8AK~図8ANが示すように、表示された応答アフォーダンスの種類(例えば、コンパクト、詳細、リスト、曖昧性除去)は、自然言語入力の内容及び/又は自然言語入力のDAの解釈に依存する。一部の実施例では、アフォーダンスオーサリングルールは、特定の種類の自然言語入力を表示するために、特定の種類の応答アフォーダンスを指定する。一部の実施例では、オーサリングルールは、例えば、デバイス800がコンパクト応答アフォーダンスによって十分に回答されることができる自然言語入力に応答してコンパクト応答アフォーダンスを表示するように、デフォルトでコンパクト応答アフォーダンスを表示しようと試みることを指定する。一部の実施例では、応答アフォーダンスが異なる状態(例えば、第1のコンパクト状態及び第2の拡張(詳細)状態)に表示されることができる場合、オーサリングルールは、最初にコンパクトアフォーダンスとして応答アフォーダンスを表示するように指定される。図8G~図8Hに関して論じたように、コンパクトアフォーダンスの詳細バージョンは、適切なユーザ入力を受信したことに応答して、表示に利用可能であり得る。いくつかの自然言語入力(例えば、「チーム#1上の統計を教えて」、「近くのレストランのリストを見せて」)は、コンパクトアフォーダンスでは十分に回答することができない(又は入力に答えることが望ましくない場合がある)ことが理解されよう。したがって、オーサリングルールは、そのような入力のために(例えば、詳細に、リストを)表示するために、特定の種類のアフォーダンスを指定することができる。
一部の実施例では、DAは、受信された自然言語入力に対応する複数の結果を決定する。一部の実施例では、デバイス800は、複数の結果のうちの単一の結果を含む応答アフォーダンスを表示する。一部の実施例では、応答アフォーダンスを表示している間に、複数の結果のうちの他の結果は表示されない。例えば、自然言語入力「最も近いコーヒー」を考えてみる。DAは、入力に対応する複数の結果(複数の近くのコーヒーショップ)を決定する。図8AOは、入力に応答して表示される応答アフォーダンス839(例えば、コンパクトアフォーダンス)を示す。応答アフォーダンス839は、複数の結果のうちの単一の結果(デバイス800の位置に最も近いコーヒーショップ)を含む。デバイス800は、「ここは最も近いコーヒーショップ」の発話出力を更に提供する。このようにして、自然言語が複数の結果を意味することを要求するために、DAは、最初に単一の結果、例えば、最も関連する結果を提供することができる。
一部の実施例では、単一の結果を提供した後(例えば、応答アフォーダンス839を表示する)、DAは、複数の結果のうちの次の結果を提供する。例えば、図8APでは、デバイス800は、応答アフォーダンス839を、第2の最も近いコーヒーショップを含む応答アフォーダンス840に置き換える。デバイス800は、「ここは2番目に近いコーヒーショップ」の発話出力を更に提供する。いくつかの実施例では、デバイス800は、単一の結果を拒否するユーザ入力(例えば、「私はそれを望まない」)、又は次の結果を提供するように指示するユーザ入力を受信したことに応答して、図8AOから図8APに遷移する。一部の実施例では、デバイス800は、例えば、アフォーダンス839を選択するユーザ入力が受信されない場合、アフォーダンス839を表示した後及び/又は「ここは最も近いコーヒーショップ」という発話出力を提供した後、図8AOから図8APに所定の期間だけ遷移する。このようにして、デバイス800は、複数の結果を意味する自然言語入力の結果を順次提供することができる。
一部の実施例では、応答アフォーダンスは、1つ以上のタスクアフォーダンスを含む。タスクアフォーダンスを選択するユーザ入力(例えば、タップジェスチャ)は、デバイス800に対応するタスクを実行させる。例えば、図8ANでは、応答アフォーダンス838は、タスクアフォーダンス841、842、及び843を含み、タスクアフォーダンス841のユーザ選択は、デバイス800にNeal Ellisへの電話を開始させ、タスクアフォーダンス842のユーザ選択は、デバイス800にNeal Smithへの電話を開始させ、以下同様である。別の実施例として、応答アフォーダンス839は、タスクアフォーダンス844を含み、応答アフォーダンス840は、タスクアフォーダンス845を含む。タスクアフォーダンス844のユーザ選択は、デバイス800に、最も近いコーヒーショップへの方向を表示する地図アプリケーションを起動させる一方で、タスクアフォーダンス845のユーザ選択は、デバイス800に、2番目に近いコーヒーショップへの方向を表示する地図アプリケーションを起動させる。
一部の実施例では、デバイス800は、自然言語入力に応答する複数の応答アフォーダンスを同時に表示する。一部の実施例では、複数の応答アフォーダンスの各々は、自然言語入力のための異なる可能なドメインに対応する。一部の実施例では、デバイス800は、自然言語入力が曖昧であると判定された場合、例えば、複数のドメインに対応する場合、複数の応答アフォーダンスを表示する。
例えば、自然言語入力「ビヨンセ」を考えてみる。図8AQは、自然言語入力に応答して同時に表示される応答アフォーダンス846、847、及び848を示す。応答アフォーダンス846、847、及び848は、それぞれ、ニュースドメイン(例えば、ユーザがビヨンセに関するニュースを要求した)、音楽ドメイン(例えば、ユーザは、ビヨンセによって音楽を再生するように要求した)、及び知識ドメイン(例えば、ユーザがビヨンセに関する情報を要求した)にそれぞれ対応する。一部の実施例では、応答アフォーダンス846、847、及び848の選択に対応するそれぞれのユーザ入力は、デバイス800に対応するアクションを実行させる。例えば、応答アフォーダンス846の選択は、ビヨンセに関するニュースを含む詳細応答アフォーダンスの表示を引き起こし、応答アフォーダンス847の選択は、デバイス800に、ビヨンセによる歌を含む音楽アプリケーションを起動させ、応答アフォーダンス848の選択は、ビヨンセに関する情報を含む詳細応答アフォーダンスの表示を引き起こす。
一部の実施例では、応答アフォーダンスは、編集可能なテキストフィールド、自然言語入力から決定されたテキストを含む編集可能なテキストフィールドを含む。例えば、図8ARは、自然言語発話入力「テキスト、ママただいま」に応答して表示される応答アフォーダンス849を示す。応答アフォーダンス849は、例えば、DAが「私は孔(I’m hole)」として「ただいま(I’m home)」を誤って認識したため、テキスト「I’m hole」を含む編集可能なテキストフィールド850を含む。応答アフォーダンスは、タスクアフォーダンス851を更に含む。タスクアフォーダンス851を選択するユーザ入力は、デバイス800にテキストメッセージを送信させる。
一部の実施例では、デバイス800は、編集可能なテキストフィールドの選択に対応するユーザ入力を受信し、それに応答して、応答アフォーダンスを表示している間にキーボードを表示する。例えば、図8ASは、編集可能なテキストフィールド850を選択するユーザ入力852(例えば、タップジェスチャ)を受信するデバイス800を示す。図8ATは、ユーザ入力852を受信したことに応答して、デバイス800が応答アフォーダンス849を表示している間に、キーボード853を表示することを示す。示すように、デバイス800は、ユーザインタフェース802上にキーボード853を表示する(例えば、ユーザインタフェースDAユーザインタフェース803が上に表示される)。図8AT~図8AVは、応答アフォーダンス及びキーボードがユーザインタフェース802上に表示されている間、ユーザインタフェース802の一部が視覚的に不明瞭にされないことを示しているが、他の実施例では、ユーザインタフェース802の少なくとも一部が視覚的に不明瞭にされる(例えば、キーボード又は応答アフォーダンス849を表示しないディスプレイ801の一部において)。
一部の実施例では、デバイス800は、1つ以上のキーボード入力を受信し、それに応答して、1つ以上のキーボード入力に従って編集可能なテキストフィールド内のテキストを更新する。例えば、図8AUは、デバイス800が「孔(hole)」を「家(home)」に補正するキーボード入力を受信したことを示す。デバイス800は、応答アフォーダンス849の編集可能なテキストフィールド850に補正テキストを表示する。
他の実施例では、デバイス800は、編集可能なテキストフィールドに表示されるテキストを編集するように要求する発話入力を受信する。発話入力を受信したことに応答して、デバイス800は、発話入力に従って編集可能なテキストフィールド内のテキストを更新する。例えば、図8ARでは、ユーザは、発話入力「いいえ、ただいまと言った」を提供し、それに応じてデバイス800に編集可能なテキストフィールド850内のテキストを更新させることができる。
一部の実施例では、編集可能なテキストフィールド内のテキストを更新した後、デバイス800は、アフォーダンスに関連付けられたタスクを実行するように要求するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイス800は、更新されたテキストに基づいて、要求されたタスクを実行する。例えば、図8AVは、デバイス800が「孔(hole)」を「家(home)」に編集した後、タスクアフォーダンス851の選択に対応するユーザ入力854(例えば、タップジェスチャ)を受信することを示す。図8AWは、ユーザ入力854を受信したことに応答して、デバイス800が、メッセージ「ただいま」をユーザの母に送信することを示す。デバイス800は、タスクの完了を示すグリフ855を更に表示する。図8AWは、ユーザ入力854を受信したことに応答して、デバイス800がキーボード853を表示することを停止して、ユーザインタフェース802の一部を表示(例えば、明らかにする)し、デバイス800がインジケータ804を表示することを更に示す。
このようにして、ユーザは、応答アフォーダンスに含まれるテキストを編集することができ(例えば、DAがユーザの発話入力を誤認識した場合)、DAに正しいテキストを使用してアクションを実行させることができる。図8AR~図8AWは、テキストメッセージを編集及び送信する例を示しているが、他の実施例では、ユーザは、同様の方法で、メモ、カレンダーエントリ、リマインダエントリ、電子メールエントリなどを編集及び保存(又は送信)することができる。
一部の実施例では、デバイス800は、DAを閉じるためのユーザ入力を受信する。一部の実施例では、DAを閉じることは、DAユーザインタフェース803を表示することを停止することを含む。DAを閉じることは、以下の図10A~図10Vに関してより詳細に論じられる。一部の実施例では、DAを閉じた後、デバイス800は、ユーザ入力(例えば、DAを開始するための基準を満たすユーザ入力)を受信して、DAを再開する。一部の実施例では、DAを再開するためのユーザ入力を受信したことに従って、デバイス800は、同じ応答アフォーダンス、例えば、DAが閉じられた前に表示される応答アフォーダンスを含むDAユーザインタフェースを表示する。
一部の実施例では、デバイス800は、同じ応答アフォーダンスが、自然言語入力を受信した応答(例えば、再開DAを意図した入力)に対応するとの判定に従って、同じ応答アフォーダンスを表示する。例えば、図8AXは、応答アフォーダンス856を含むDAユーザインタフェース803を示す。デバイス800は、自然言語入力「天気は何?」に応答して、DAユーザインタフェース803を表示する。図8AYは、デバイス800が、ユーザ入力857を受信して、DA、例えば、ユーザインタフェース802の選択に対応するタップジェスチャを閉じることを示す。図8AZは、ユーザ入力857を受信したことに応答して、デバイス800がDAを閉じ、例えば、DAユーザインタフェース803を表示することを停止することを示す。図8BAは、デバイス800が、DAを再開するための入力を受信し、現在、自然言語入力「風が強い?」を受信していることを示す。図8BBは、同じ応答アフォーダンス856を含み且つ発話出力「はい、風が強い」を提供するDAユーザインタフェース803を表示するデバイス800を示す。例えば、DAは、同じ応答アフォーダンス856が自然言語入力「天気は何?」及び「風が強い?」に対応すると判定されている。このようにして、以前の応答アフォーダンスが現在の自然言語要求に関連する場合、以前の応答アフォーダンスは、続いて開始されたDAユーザインタフェースに含まれることができる。
一部の実施例では、デバイス800は、DAを再開するためのユーザ入力がDAを閉じる所定の期間内に受信されるという判定に従って、同じ応答アフォーダンスを表示する。例えば、図8BCは、自然言語入力「3かける5は何?」に応答して表示されるDAユーザインタフェース803を示す。DAユーザインタフェース803は、応答アフォーダンス858を含む。図8BDは、DAが第1の時間に閉じられたことを示す。図8BEは、第1の時間の所定の期間(例えば、5秒)内で、デバイス800がDAを再開するためのユーザ入力を受信したことを示す。例えば、デバイス800は、DAを開始するための基準を満たす上記の入力の種類のうちのいずれか1つを受信したが、DAに異なる要求を含む別の自然言語入力を受信していない。したがって、図8BEでは、デバイス800は、リスニング状態にある同じ応答アフォーダンス858及びインジケータ804を含むDAユーザインタフェース803を表示する。このようにして、以前の応答アフォーダンスは、例えば、ユーザが以前にDAを誤って閉じたため、ユーザがDAを迅速に再開する場合、続いて開始されたDAユーザインタフェースに含まれることができる。
図8BFは、横向きのデバイス800を示す。一部の実施例では、デバイス800が横向きにあるため、デバイス800は、横向きモードでユーザインタフェースを表示する。例えば、図8BFは、横向きモードで表示されたメッセージングアプリケーションユーザインタフェース859を示す。一部の実施例では、デバイス800は、横向きモードのユーザインタフェースを介して、DAユーザインタフェース803を横向きモードに表示する。例えば、図8BGは、ユーザインタフェース859上に表示された横向きモードのDAユーザインタフェース803を示す。ユーザは、本明細書で論じられる技術と一致する方法で、横向きモードでDAユーザインタフェース803と相互作用するための1つ以上の入力を提供することができることが理解されよう。
一部の実施例では、いくつかのユーザインタフェースは、横向きモードを有しない。例えば、ユーザインタフェースの表示は、デバイス800が横向き又は縦向きにあるかどうかに関係なく同じである。横向きモードのないユーザインタフェースの例は、ホーム画面ユーザインタフェース及びロック画面ユーザインタフェースを含む。図8BHは、デバイス800が横向きにあるときに表示されるホーム画面ユーザインタフェース860(横向きモードなし)を示す。
一部の実施例では、デバイス800が横向きにあるとき、デバイス800は、横向きモードなしで、ユーザインタフェースの上にDAユーザインタフェース803を表示する。一部の実施例では、横向きモードを有しないユーザインタフェース上に(横向きモードで)DAユーザインタフェース803を表示するとき、デバイス800は、ユーザインタフェースを視覚的に不明瞭にし、例えば、DAユーザインタフェース803が表示されないユーザインタフェースの部分を視覚的に不明瞭にする。例えば、図8BIは、横向きのデバイス800を示し、ホーム画面ユーザインタフェース860上に横向きモードでDAユーザインタフェース803を表示する。ホーム画面ユーザインタフェース860は、ホーム画面ユーザインタフェース860が横向きモードを有しないため、(デバイス800が横向きであるにもかかわらず)縦向きモードで表示される。示すように、デバイス800は、ホーム画面ユーザインタフェース860を視覚的に隠す。このようにして、デバイス800は、横向きモードDAユーザインタフェース803及び視覚的に隠れていない縦向きモードユーザインタフェース(例えば、ホーム画面ユーザインタフェース860)を同時に表示することを回避し、これは、ユーザの視覚的体験を混乱させることがある。
一部の実施例では、デバイス800が所定の種類のユーザインタフェース上にDAユーザインタフェース803を表示するとき、デバイス800は、所定の種類のユーザインタフェースを視覚的に隠す。例示的な所定の種類のユーザインタフェースは、ロック画面ユーザインタフェースを含む。図8BJは、例示的なロック画面ユーザインタフェース861を表示するデバイス800を示す。図8BKは、ロック画面ユーザインタフェース861上にDAユーザインタフェース803を表示するデバイス800を示す。示すように、デバイス800は、DAユーザインタフェース803が表示されなロック画面ユーザインタフェース861の部分でロック画面ユーザインタフェース861を視覚的に覆い隠す。
一部の実施例では、DAユーザインタフェース803は、ダイアログアフォーダンスを含む。一部の実施例では、ダイアログアフォーダンスは、受信された自然言語入力に応答して、DAによって生成されるダイアログを含む。一部の実施例では、ダイアログアフォーダンスは、ディスプレイ801の第6の部分(例えば、「会話部分」)に表示され、ディスプレイ801の第6の部分は、ディスプレイ801の第1の部分(DAインジケータ804を表示する)と、ディスプレイ801の第2の部分(応答アフォーダンスを表示する)との間にある。例えば、図8BLは、以下で更に説明するように、自然言語入力に応答してDAによって生成されたダイアログを含むダイアログアフォーダンス862を示す。図8BMは、以下で更に説明する自然言語入力「削除会議#1」に応答してDAによって生成されたダイアログを含むダイアログアフォーダンス863を示す。図8BMは、デバイス800がディスプレイ801の第6の部分にダイアログアフォーダンス863を表示することを更に示し、第6の部分は、インジケータ804の表示と応答アフォーダンス864の表示との間にある。
一部の実施例では、DAは、受信された自然言語入力のための複数の選択可能な曖昧性除去オプションを決定する。一部の実施例では、ダイアログアフォーダンスのダイアログは、複数の選択可能な曖昧性除去オプションを含む。複数の曖昧性除去オプションは、一部の実施例では、自然言語入力が曖昧であると判定するDAに従って決定される。曖昧な自然言語入力は、例えば、各々が比較的高い(及び/又は等しい)信頼スコアを有する、複数の可能な実施可能な意図に対応する。例えば、図8BLでは、自然言語入力「Frozenをプレイする」を考えてみる。DAは、2つの選択可能な曖昧性除去オプションを決定する:オプション865「動画再生」(例えば、ユーザは、動画「Frozen」を再生することを意図した)及びオプション866「音楽再生」(例えば、ユーザは、動画「Frozen」から音楽を再生することを意図した)を決定する。ダイアログアフォーダンス862は、オプション865及び866を含み、オプション865のユーザ選択はデバイス800に動画「Frozen」を再生させ、オプション866のユーザ選択はデバイス800に動画「Frozen」からの音楽を再生させる。別の例として、図8BMの自然言語入力「削除会議#1」を考慮すると、「会議#1」は繰り返しの会議である。DAは、2つの選択可能な曖昧性除去オプションを決定する:オプション867「単一を削除する」(例えば、ユーザは、会議#1の単一のインスタンスを削除することを意図した)及びオプション868「全てを削除する」(例えば、ユーザは、会議#1の全てのインスタンスを削除することを意図した)。ダイアログアフォーダンス863は、キャンセルオプション869と共に、オプション867及び868を含む。
一部の実施例では、DAは、受信された自然言語入力に基づいてタスクを実行するために追加の情報が必要であると判定する。一部の実施例では、ダイアログアフォーダンスのダイアログは、必要な追加情報に対してDAによって提案される1つ以上の選択可能なオプションを含む。例えば、DAは、受信された自然言語入力のためのドメインを決定してもよいが、ドメインに関連付けられたタスクを完了するために必要なパラメータを決定することはできない。例えば、自然言語入力「電話」を考えてみる。DAは、自然言語入力のために電話通話ドメイン(例えば、電話呼び出しの実施可能な意図に関連付けられたドメイン)を決定するが、呼び出しのパラメータを決定することができない。したがって、一部の実施例では、DAは、パラメータの提案として1つ以上の選択可能なオプションを決定する。例えば、デバイス800は、ダイアログアフォーダンスにおいて、ユーザの最も頻繁に呼び出される連絡先に対応する選択可能なオプションを表示する。選択可能なオプションのうちのいずれか1つのユーザ選択は、デバイス800に個別の連絡先を呼び出させる。
一部の実施例では、DAは、受信された自然言語入力及び受信された自然言語入力に基づく代替ユーザ意図に基づいて、一次ユーザ意図を決定する。一部の実施例では、一次意図は、最高ランクの実施可能な意図であり、代替ユーザ意図は、第2の最高ランクの実施可能な意図である。一部の実施例では、表示された応答アフォーダンスは、一次ユーザ意図に対応し、同時に表示されたダイアログアフォーダンスのダイアログは、代替ユーザ意図に対応する選択可能なオプションを含む。例えば、図8BNは、自然言語入力「Philの方向」に応答して表示されるDAユーザインタフェース803を示しており、DAは、ユーザが「Philのコーヒー」への方向を取得することを意図し、ユーザが「Phil」と命名された連絡先の家への方向を取得することを意図する代替ユーザ意図を意図する一次ユーザ意図を決定する。DAユーザインタフェース803は、一次ユーザ意図及びダイアログアフォーダンス871に対応する応答アフォーダンス870を含む。ダイアログアフォーダンス871のダイアログ872は、二次ユーザ意図に対応する。ユーザ入力を選択するダイアログベース872は、デバイス800に「Phil」と命名された連絡先の家への方向を取得するが、ユーザ入力選択応答アフォーダンス870は、デバイス800に「Philのコーヒー」への方向を取得させる。
一部の実施例では、ダイアログアフォーダンスが第1の状態で表示される。一部の実施例では、第1の状態は初期状態であり、例えば、ダイアログアフォーダンスと相互作用するためのユーザ入力を受信する前にダイアログアフォーダンスが最初に表示される記述方法である。図8BOは、初期状態に表示されたダイアログアフォーダンス873を含むDAユーザインタフェース803を示す。デバイス800は、自然言語入力「天気は何?」に応答して、DAユーザインタフェース803を表示する。ダイアログアフォーダンス873は、DAによって生成され、入力、例えば「現在70度で風が強い...」に応答するダイアログの少なくとも一部を含む。DAによって生成されたダイアログを表示するかどうかに関する更なる説明が、図11~図16に関して以下で論じられる。
一部の実施例では、デバイス800は、第1の状態に表示されるダイアログアフォーダンスの選択に対応するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイス800は、第1の状態のダイアログアフォーダンスの表示を、第2の状態のダイアログアフォーダンスの表示に置き換える。一部の実施例では、第2の状態は拡張状態であり、拡張状態のダイアログアフォーダンスの表示サイズは、初期状態のダイアログアフォーダンスの表示サイズよりも大きく、及び/又は拡張状態のダイアログアフォーダンスは、初期状態のダイアログアフォーダンスよりも大量のコンテンツを表示する。図8BPは、初期状態で表示されたダイアログアフォーダンス873の選択に対応するユーザ入力874(例えば、ドラッグジェスチャ)を受信するデバイス800を示す。図8BQは、ユーザ入力874(又はその一部)を受信したことに応答して、デバイス800が、初期状態で表示されたダイアログアフォーダンス873の表示を、拡張状態でダイアログアフォーダンス873の表示に置き換えることを示す。示すように、図8BQのダイアログアフォーダンス873は、より大きな表示サイズを有し、図8BPのダイアログアフォーダンスよりも大量のテキストを含む。
一部の実施例では、(第2の状態の)ダイアログアフォーダンスの表示サイズは、ダイアログアフォーダンスを第2の状態で表示させるユーザ入力の長さに比例する。例えば、図8BP~図8BQでは、ダイアログアフォーダンス873の表示サイズは、ドラッグジェスチャ874の長さ(例えば、物理的距離)に比例して増加する。このようにして、ユーザは、ドラッグジェスチャのドラッグ長に従って応答アフォーダンス873を拡張するために連続ドラッグジェスチャを提供することができる。更に、図8BO~図8BQは、デバイス800が図8BOに示すようにダイアログアフォーダンス873を最初に表示し、次いで図8BQのダイアログアフォーダンスを拡張し、他の実施例では、デバイス800が最初に図8BQに示すようにダイアログアフォーダンス873を表示することを示す。したがって、一部の実施例では、デバイス800は、最初にダイアログアフォーダンスが最大量のコンテンツを表示するように、例えば、同時に表示された応答アフォーダンスを不明瞭にする(被覆する)ことなく、ダイアログアフォーダンスを表示する。
一部の実施例では、ダイアログアフォーダンスの表示は、同時に表示された応答アフォーダンスの表示を不明瞭にする。具体的には、一部の実施例では、第2の(例えば、拡張された)状態のダイアログアフォーダンスの表示は、ディスプレイ801の第2の部分の少なくとも一部を占める(応答アフォーダンスを表示する)。一部の実施例では、第2の状態でダイアログアフォーダンスを表示することは、応答アフォーダンスの少なくとも一部上にダイアログアフォーダンスを表示することを更に含む。例えば、図8BQは、ドラッグジェスチャ874が継続することを示す。図8BRは、継続的なドラッグジェスチャ874を受信したことに応答して、デバイス800が、応答アフォーダンス875の表示上でダイアログアフォーダンス873の表示を拡張することを示す。
一部の実施例では、ユーザ入力を受信する前に、ダイアログアフォーダンスを(例えば、拡張するために)第2の状態で表示させ、応答アフォーダンスは、元の状態で表示された。一部の実施例では、元の状態は、ダイアログアフォーダンス(又はその一部)が応答アフォーダンス上に表示される前の応答アフォーダンスの状態を表す。例えば、図8BO~図8BQは、元の状態に表示された応答アフォーダンス875を示す。一部の実施例では、応答アフォーダンスの少なくとも一部にわたって第2の(例えば、拡張された)状態でダイアログアフォーダンスを表示することは、元の状態の応答アフォーダンスの表示を、被覆状態にある応答アフォーダンスの表示に置き換えることを含む。図8BRは、被覆状態で表示された応答アフォーダンス875を示す。一部の実施例では、被覆状態で表示されると、応答アフォーダンスは、表示サイズが縮小し(例えば、元の状態に対して)、及び/又は薄暗くなる(例えば、元の状態よりも目立たないように表示される)。いくつかの例では、応答アフォーダンスが収縮する及び/又は薄暗くなる度合いは、応答アフォーダンス上に表示されるダイアログアフォーダンスの量に比例する。
一部の実施例では、ダイアログアフォーダンスは、最大表示サイズを有し、ダイアログアフォーダンスの第2の(例えば、拡張された)状態は、最大表示サイズに対応する。一部の実施例では、最大表示サイズで表示されるダイアログアフォーダンスは、ドラッグジェスチャなどのユーザ入力に応答して更に拡張されることができない。一部の実施例では、最大表示サイズで表示されるダイアログアフォーダンスは、ダイアログアフォーダンスのコンテンツの全体を表示する。他の実施例では、最大表示サイズで表示されるダイアログアフォーダンスは、ダイアログアフォーダンスのコンテンツの全体を表示しない。したがって、一部の実施例では、デバイス800は、(最大表示サイズを有する)第2の状態のダイアログアフォーダンスを表示している間に、デバイス800は、ユーザ入力(例えば、ドラッグジェスチャ/スワイプジェスチャ)がダイアログアフォーダンスのコンテンツをスクロールすることを可能にする。図8BSは、最大表示サイズで表示されたダイアログアフォーダンス873を示す。特に、図8BRでは、ドラッグジェスチャ874は継続する。継続的なドラッグジェスチャ874を受信したことに応答して、デバイス800は、図8BSのその最大表示サイズにダイアログアフォーダンス873を表示(例えば、拡張)する。ダイアログアフォーダンス873は、スクロールインジケータ876を含み、ユーザは、ダイアログアフォーダンス873のコンテンツをスクロールするための入力を提供することができることを示す。
一部の実施例では、応答アフォーダンスの一部は、ダイアログアフォーダンスが第2の状態(及びその最大サイズ)に表示されるときに見えるままである。したがって、一部の実施例では、デバイス800は、ダイアログアフォーダンスが応答アフォーダンスを完全には被覆しないように、応答アフォーダンス上に表示されるダイアログアフォーダンスの最大サイズを制約する。一部の実施例では、見える応答アフォーダンスの部分は、図8Mに関して上述した応答アフォーダンスの第2の部分である。例えば、部分は、応答アフォーダンス及び/又は関連付けられたテキストのカテゴリを示すグリフを含む応答アフォーダンスの上部である。図8BSは、デバイス800が、応答アフォーダンス875上のその最大サイズでダイアログアフォーダンス873を表示するとき、応答アフォーダンス875の上部が見えるままであることを示す。
一部の実施例では、デバイス800は、(ダイアログアフォーダンスが応答アフォーダンスにわたって第2の状態に表示されるとき)見えるままの応答アフォーダンスの一部の選択に対応するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイスは、ディスプレイ801の第1の部分に応答アフォーダンスを表示し、例えば、その元の状態で応答アフォーダンスを表示する。ユーザ入力を受信したことに応答して、デバイス800は、第2の(例えば、拡張)状態のダイアログアフォーダンスの表示を、第3の状態のダイアログアフォーダンスの表示に更に置き換える。一部の実施例では、第3の状態は、第3の状態のダイアログアフォーダンスがより小さい表示サイズ(初期又は拡張状態のダイアログアフォーダンスよりも)を有し、及び/又はダイアログアフォーダンスは、(初期又は拡張状態のダイアログアフォーダンスよりも)少量のコンテンツを含む。他の例では、第3の状態は、第1の状態(例えば、初期状態)である。図8BTは、応答アフォーダンス875の上部を選択するユーザ入力877(例えば、タップジェスチャ)を受信するデバイス800を示す。図8BUは、ユーザ入力877を受信したことに応答して、デバイス800が、拡張状態にあるダイアログアフォーダンス873の表示(図8BT)を折り畳み状態にあるダイアログアフォーダンス873の表示に置き換えることを示す。デバイス800は、その元の状態で応答アフォーダンス875を更に表示する。
一部の実施例では、デバイス800は、第3の状態で表示されるダイアログアフォーダンスの選択に対応するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイス800は、第3の状態の応答アフォーダンスの表示を、第1の状態のダイアログアフォーダンスの表示に置き換える。例えば、図8BUでは、ユーザは、折り畳み状態で表示されたダイアログアフォーダンス873を選択する入力(例えば、タップジェスチャ)を提供することができる。入力を受信したことに応答して、デバイス800は、初期状態でダイアログアフォーダンスを表示し、例えば、図8BOの表示に戻る。
一部の実施例では、ダイアログアフォーダンスが第1又は第2の状態(例えば、初期又は拡張状態)で表示されている間、デバイス800は、同時に表示された応答アフォーダンスの選択に対応するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイス800は、第1又は第2の状態のダイアログアフォーダンスの表示を、第3の(例えば、折り畳まれた)状態のダイアログアフォーダンスの表示に置き換える。例えば、図8BVは、自然言語入力「チーム#1の登録選手名簿を見せて」に応答して表示されるDAユーザインタフェース803を示す。DAユーザインタフェース803は、初期状態で表示された詳細応答アフォーダンス878及びダイアログアフォーダンス879を含む。図8BVは、応答アフォーダンス878を選択するユーザ入力880(例えば、ドラッグジェスチャ)を受信するデバイス800を更に示す。図8BWは、ユーザ入力880を受信したことに応答して、デバイス800が、ダイアログアフォーダンス879の表示を、折り畳み状態でダイアログアフォーダンス879の表示に置き換えることを示す。
一部の実施例では、第1又は第2の状態(例えば、初期又は拡張状態)でダイアログアフォーダンスを表示している間に、デバイス800は、ダイアログアフォーダンスの選択に対応するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイス800は、第1又は第2の状態のダイアログアフォーダンスの表示を、第3の(例えば、折り畳まれた)状態のダイアログアフォーダンスの表示に置き換える。例えば、図8BXは、自然言語入力「私のためにどんな音楽がある?」に応答して表示されるDAユーザインタフェース803を示す。DAユーザインタフェース803は、応答アフォーダンス881及び初期状態で表示されるダイアログアフォーダンス882を含む。図8BXは、ユーザ入力883(例えば、下向きドラッグ又はスワイプジェスチャ)を受信するデバイス800を、ダイアログアフォーダンス882を選択することを更に示す。図8BYは、ユーザ入力883を受信したことに応答して、デバイス800が、初期状態にあるダイアログアフォーダンス882の表示を、折り畳み状態にあるダイアログアフォーダンス882の表示に置き換えることを示す。図8BX~図8BYは、ダイアログアフォーダンスの選択に対応するユーザ入力がドラッグ又はスワイプジェスチャであることを示しているが、他の実施例では、ユーザ入力は、ダイアログアフォーダンスに含まれる表示されたアフォーダンスの選択である。例えば、第1又は第2の状態で表示されるダイアログアフォーダンス内の「折り畳み」アフォーダンスを選択するユーザ入力(例えば、タップジェスチャ)は、デバイス800に、第1又は第2の状態のダイアログアフォーダンスの表示を第3の状態のダイアログアフォーダンスの表示に置き換える。
一部の実施例では、デバイス800は、ダイアログアフォーダンス内の受信された自然言語発話入力の転記を表示する。この転記は、自然言語発話入力に自動音声認識(ASR)を実行することによって取得される。図8BZは、自然言語発話入力「天気は何?」に応答して表示されるDAユーザインタフェース803を示す。DAユーザインタフェースは、応答アフォーダンス884及びダイアログアフォーダンス885を含む。ダイアログアフォーダンス885は、発話入力の転記886と、発話入力に応答してDAによって生成されたダイアログ887とを含む。
一部の実施例では、デバイス800は、デフォルトで受信した自然言語発話入力の転記を表示しない。一部の実施例では、デバイス800は、アクティブ化されると、デバイス800に自然言語発話入力の転記を常に表示させる設定を含む。ここで、デバイス800が受信した自然言語発話入力の転記を表示することができる様々な他の例について説明する。
一部の実施例では、自然言語発話入力(表示された転記を有する)は、自然言語発話入力の前に受信された第2の自然言語発話入力に連続している。一部の実施例では、転記を表示することは、DAが自然言語発話入力についてのユーザ意図を判定することができず且つ第2の自然言語発話入力についての第2のユーザ意図を判定することができなかったという判定に従って実行される。したがって、一部の実施例では、デバイス800は、DAが2つの連続する自然言語入力の実施可能な意図を決定することができなかった場合、自然言語入力のための転記を表示する。
例えば、図8CAは、デバイス800が発話入力「Dish n’Dashまでの距離は?」を受信し、DAが自然言語入力に対するユーザ意図を決定することができないことを示している。例えば、デバイス800は、私が理解していない限り、音声出力「よくわからないので、もう一度言ってください?」を提供する。したがって、ユーザは、発話入力を繰り返す。例えば、図8CBは、連続する発話入力「Dish n’Dashまでの距離は?」を受信するデバイス800を示す。図8CCは、DAが連続する発話入力のユーザ意図を決定することができないことを示す。例えば、デバイス800は、音声出力「よく理解できません」を提供する。したがって、デバイス800は、連続発話入力の転記889「Rish and Rashまでの距離は?」を含むダイアログアフォーダンス888を更に表示する。この例では、転記889は、DAが「Dish n’Dashまでの距離は?」を「Rish and Rashまでの距離は?」として二回誤って認識したことを明らかにする。「Rish and Rash」は、実際の場所ではない場合があるため、DAは、双方の発話入力のユーザ意図を決定することができなかった。
一部の実施例では、受信された自然言語発話入力の表示を表示することは、自然言語発話入力が以前の自然言語発話入力を繰り返すという判定に従って実行される。例えば、図8CDは、発話入力(以前の発話入力)「スターバックスはどこ?」に応答して表示されるDAユーザインタフェース803を示す。DAは、「Star Mallはどこ?」として発話入力を誤って認識したため、「Star Mall」を含む応答アフォーダンス890を表示する。DAは発話入力を誤って理解したため、ユーザは発話入力を繰り返す。例えば、図8CEは、以前の発話入力「スターバックスはどこ?」の繰り返し(例えば、連続的な繰り返し)を受信するデバイス800を示す。DAは、発話入力が以前の発話入力を繰り返すと決定する。図8CFは、そのような決定に従って、デバイス800が転記892を含むダイアログアフォーダンス891を表示することを示す。転記892は、DAが(例えば、2回)「スターバックスはどこ?」を「Star Mallはどこ?」と誤って認識したことを明らかにする。
一部の実施例では、自然言語発話入力(例えば、転記が表示される)を受信した後、デバイスは、自然言語発話入力に連続する第2の自然発話入力を受信する。一部の実施例では、第2の自然言語発話入力が音声認識エラーを示すという判定に従って、転記の表示が実行される。したがって、一部の実施例では、デバイス800は、DAが以前の発話入力を誤って認識したことを示す場合、以前の発話入力の転記を表示する。例えば、図8CGは、発話入力「15分タイマをセット」に応答して表示されるDAユーザインタフェース803を示す。DAは、「15分」を「50分」として誤って認識した。したがって、DAユーザインタフェース803は、タイマが50分に設定されることを示す応答アフォーダンス893を含む。DAが発話入力を誤って認識したため、ユーザは、音声認識エラーを示す第2の発話入力を提供する(例えば、「それは私が言ったことではない」、「私が間違っていると聞こえた」、「それは間違っている」など)。例えば、図8CHは、デバイス800が第2の発話入力「それは私が言ったことではない」を受信することを示している。DAは、第2の発話入力が音声認識エラーを示すと決定する。図8CIは、そのような決定に従って、デバイス800が、転記895を含むダイアログアフォーダンス894を表示することを示す。転記895は、DAが「15分」を「50分」として誤って認識されたことを明らかにしている。
一部の実施例では、デバイス800は、表示された転記の選択に対応するユーザ入力を受信する。ユーザ入力を受信したことに応答して、デバイス800は、キーボード及び転記を含む編集可能なテキストフィールドを同時に表示し、例えば、キーボード及びユーザインタフェースDAユーザインタフェース803上の編集可能なテキストフィールドを表示した。一部の実施例では、デバイス800は、(例えば、キーボード又は編集可能なテキストフィールドを表示しないディスプレイ801の部分で)ユーザインタフェースの少なくとも一部を更に視覚的に隠す。図8CIの例を続けると、図8CJは、転記895を選択するユーザ入力896(例えば、タップジェスチャ)を受信するデバイス800を示す。図8CKは、ユーザ入力896を受信したことに応答して、デバイス800が、キーボード897及び転記895を含む編集可能なテキストフィールド898を表示することを示す。図8CKは、デバイス800がユーザインタフェース802の一部を視覚的に隠すことを更に示す。
図8CLは、デバイス800が1つ以上のキーボード入力を受信し、1つ以上のキーボード入力に従って、例えば、「50分タイマをセット」から「15分タイマをセット」など、編集された転記895を有することを示す。図8CLは、キーボード897の完了キー8001の選択に対応するユーザ入力899(例えば、タップジェスチャ)を受信するデバイス800を更に示す。図8CMは、ユーザ入力899を受信したことに応答して、DAが、現在の(例えば、編集された)転記895に基づいてタスクを実行することを示す。例えば、デバイス800は、タイマが15分間設定されていることを示す応答アフォーダンス8002を含むDAユーザインタフェース803を表示する。デバイス800は、発話出力「Ok、15分タイマをセットする」を更に提供する。このようにして、ユーザは、正しいタスクの性能を引き起こすために、誤った転記を(例えば、キーボード入力を使用して)手動で補正することができる。
一部の実施例では、キーボード及び編集可能なテキストフィールドを表示している間に、デバイス800は、視覚的に不明瞭なユーザインタフェースの選択に対応するユーザ入力を受信する。一部の実施例では、ユーザ入力を受信したことに応答して、デバイス800は、キーボード及び編集可能なテキストフィールドを表示することを停止する。一部の実施例では、デバイス800は、追加的又は代替的に、DAユーザインタフェース803を表示することを停止する。例えば、図8CK~図8CLでは、視覚的に不明瞭なユーザインタフェース802を選択するユーザ入力(例えば、タップジェスチャ)は、デバイス800に図8CIのディスプレイに戻らせるか、又は図8Aに示すように、デバイス800にDAユーザインタフェース803を表示させないようにし、ユーザインタフェース802をその全体で表示させることができる。
一部の実施例では、デバイス800は、第1の時間にデジタルアシスタント結果(例えば、応答アフォーダンス及び/又は音声出力)を提示する。一部の実施例では、デジタルアシスタント結果が所定の種類のデジタルアシスタント結果に対応するとの判定に従って、デバイス800は、第1の時間後に所定の期間、DAユーザインタフェース803を表示することを自動的に停止する。したがって、一部の実施例では、デバイス800は、所定の種類の結果を提供した後に、DAユーザインタフェース803を迅速に(例えば、5秒以内に)閉じることができる。例示的な所定の種類の結果は、更なるユーザ入力が必要とされない(又は更なるユーザ相互作用が望まれない)完了したタスクに対応する。例えば、そのような結果は、タイマが設定されたこと、メッセージが送信されたこと、家庭用器具(例えば、ライト)が状態が変化したことを確認する結果を含む。所定の種類に対応しない結果の例は、DAが、ユーザの情報要求に応答して、DAが情報(例えば、ニュース、Wikipedia記事、場所)を提供する更なるユーザ入力及び結果を尋ねる結果を含む。
例えば、図8CMは、デバイス800が第1の時間に結果を提示し、例えば、発話出力「Ok、15分タイマをセットする」の提供を終了することを示す。結果は、所定の種類に対応するため、図8CNは、デバイス800が、第1の時間後に自動的に(例えば、更なるユーザ入力なしで)DAを所定の期間(例えば、5秒)に閉じることを示す。
図8CO~図8CTは、デバイス800がタブレットデバイスであるときのDAユーザインタフェース803及び例示的なユーザインタフェースの例を示す。タブレットデバイスであるデバイス800に関して本明細書で論じられる技術のいずれかは、デバイス800が別の種類のデバイス(及び逆も同様)であるときに等しく適用可能であることが理解されよう。
図8COは、ユーザインタフェース8003を表示するデバイス800を示す。ユーザインタフェース8003は、ドック領域8004を含む。図8COでは、デバイス800は、ユーザインタフェース8003上にDAユーザインタフェース803を表示する。DAユーザインタフェース803は、ディスプレイ801の第1の部分に表示されるインジケータ804と、ディスプレイ801の第2の部分に表示される応答アフォーダンス8005と、を含む。示すように、ユーザインタフェース8003の一部は、ディスプレイ801の第3の部分で見えるままである(例えば、視覚的に不明瞭ではない)。一部の実施例では、第3の部分は、ディスプレイ801の第1の部分とディスプレイ801の第2の部分との間にある。一部の実施例では、図8COに示すように、DAユーザインタフェース803の表示は、ドック領域8004を視覚的に不明瞭にしない、例えば、DAユーザインタフェース803の一部は、ドック領域8004上に表示されない。
図8CPは、ダイアログアフォーダンス8006を含むDAユーザインタフェース803を表示するデバイス800を示す。示すように、ダイアログアフォーダンス8006は、ディスプレイ801の第1の部分(インジケータ804を表示する)とディスプレイの第2の部分(応答アフォーダンス8005を表示する)との間のディスプレイ801の一部に表示される。ダイアログアフォーダンス8006を表示することは、応答アフォーダンス8005が、ディスプレイ801の上部に向かって(図8COから)変位することを更に引き起こす。
図8CQは、現在再生しているメディアを示すメディアパネル8007を含むユーザインタフェース8003を表示するデバイス800を示す。図8CRは、ユーザインタフェース8003にDAユーザインタフェース803を表示するデバイス800を示す。DAユーザインタフェース803は、応答アフォーダンス8008及びインジケータ804を含む。示すように、DAユーザインタフェース803の表示は、メディアパネル8007を視覚的に不明瞭にしない。例えば、示すように、DAユーザインタフェース803の要素(例えば、インジケータ804、応答アフォーダンス8008、ダイアログアフォーダンス)を表示することは、メディアパネル8007をディスプレイ801の上部に向かって変位させる。
例えば、図8CSは、デバイス800がキーボード8010を含むユーザインタフェース8009を表示することを示す。図8CTは、ユーザインタフェース8009上に表示されたDAユーザインタフェース803を示す。図8CTは、いくつかの実施例では、キーボード8010を含むユーザインタフェース8009上にDAユーザインタフェース803を表示することは、デバイス800にキーボード8010のキーを視覚的に隠す(例えば、グレーアウト)させることを示す。
図9A~図9Cは、様々な実施例による、どのデバイスが発話入力に応答するべきかを決定する複数のデバイスを示す。特に、図9Aは、デバイス900、902、及び904を示す。デバイス900、902、及び904は、各々、デバイス104、デバイス122、デバイス200、又はデバイス600として実装される。一部の実施例では、デバイス900、902、及び904は、各々、DAシステム700を少なくとも部分的に実装する。
図9Aでは、デバイス900、902、及び904のそれぞれのディスプレイは、ユーザが、DAを開始するためのトリガフレーズ(例えば、「Hey Siri」)を含む発話入力、例えば、「Hey Siri、天気は何?」を提供するとき表示しない。一部の実施例では、デバイス900、902、及び904のうちの少なくとも1つのそれぞれのディスプレイは、ユーザが発話入力を提供するときにユーザインタフェース(例えば、ホーム画面ユーザインタフェース、アプリケーション固有ユーザインタフェース)を表示する。図9Bは、トリガフレーズを含む発話入力を受信したことに応答して、デバイス900、902、及び904が、各々、インジケータ804を表示することを示す。一部の実施例では、各インジケータ804は、リスニング状態で表示され、例えば、それぞれのデバイスがオーディオ入力をサンプリングすることを示す。
図9Bのデバイス900、902、及び904は、それら自体の間で(又は第4のデバイスを介して)協調して、どのデバイスがユーザ要求に応答するべきかを決定する。どのデバイスがユーザ要求に応答するべきかを判定するためのデバイスを調整するための例示的な技術は、2018年10月2日付けの「INTELLIGENT DEVICE ARBITRATION AND CONTROL」と題された米国特許第10,089,072号明細書、及び2020年5月11日に出願された「DIGITAL ASSISTANT HARDWARE ABSTRACTION」と題された米国特許出願第63/022,942号に記載されており、それらの内容は、それらの全体が参照により本明細書に組み込まれる。図9Bに示すように、各デバイスは、ユーザ要求に応答するかどうかを判定し、各デバイスは、インジケータ804のみを表示する。例えば、インジケータ804を表示しないデバイス900、902、及び904のディスプレイのそれぞれの部分は、各々表示されない。一部の実施例では、デバイス900、902、及び904のうちの少なくとも1つが、ユーザが発話入力を提供するときにユーザインタフェース(以前のユーザインタフェース)を表示すると、少なくとも1つのデバイスが、ユーザ要求に応答するかどうかを判定し、少なくとも1つのデバイスは、以前のユーザインタフェース上にインジケータ804のみを表示する。
図9Cは、デバイス902が、ユーザ要求に応答するデバイスとして決定されることを示す。示すように、別のデバイス(例えば、デバイス902)がユーザ要求に応答するべきであるという判定に応答して、デバイス900及び904のディスプレイは、表示を停止する(又はインジケータ804を表示することを停止して、以前のユーザインタフェースを完全に表示する)。更に示すように、デバイス902がユーザ要求に応答するべきであるという判定に応答して、デバイス902は、ユーザインタフェース(例えば、ロック画面ユーザインタフェース)906及びDAユーザインタフェース803をユーザインタフェース906上に表示する。DAユーザインタフェース803は、ユーザ要求に対する応答を含む。このようにして、複数のデバイスのどのデバイスが発話入力に応答するべきかを決定する際の視覚的混乱が最小化される。例えば、図9Bでは、ユーザ要求に応答しないと判定されたデバイスのディスプレイは、例えば、ディスプレイの全体にユーザインタフェースを表示することとは対照的に、インジケータ804のみを表示する。
複数のデバイスのどのデバイスが、上記の様式で発話入力に応答するべきかを決定することは、発話入力が受信され、処理されているというフィードバックをユーザに提供する。更に、そのような方法でフィードバックを提供することは、発話入力に応答するときに不必要な視覚的又は可聴の混乱を有利に低減することができる。例えば、ユーザは、選択されていないデバイスに表示及び/又は可聴出力を停止させる必要はなく、選択されていないデバイスのユーザインタフェースに対する視覚的混乱が最小限に抑えられる(例えば、ユーザが以前に選択されていないデバイスのユーザインタフェースと相互作用していた場合)。改善された視覚的フィードバックをユーザへ提供することは、(例えば、ユーザが不要な入力を提供することを回避することを支援することによって)デバイスの操作性を高め、ユーザデバイスインタフェースをより効率的にし、これは、更に、ユーザがデバイスをより迅速且つ効率的に使用できるようにすることによって、電力使用量を低減し、デバイスのバッテリ寿命を改善する。
図10A~図10Vは、様々な実施例による、ユーザインタフェース及びデジタルアシスタントユーザインタフェースを示す。図10A~図10Vは、図18A~図18Bのプロセスを含む後述のプロセスを例示するために使用される。
図10Aは、デバイス800を示す。デバイス800は、ディスプレイ801上に、ユーザインタフェース上のDAユーザインタフェース803を表示する。図10Aでは、デバイス800は、ホーム画面ユーザインタフェース1001上にDAユーザインタフェース803を表示する。他の実施例では、ユーザインタフェースは、ロック画面ユーザインタフェース又はアプリケーション固有のユーザインタフェースなどの別の種類のユーザインタフェースである。
一部の実施例では、DAユーザインタフェース803は、ディスプレイ801の第1の部分(例えば、「インジケータ部分」)に表示されるインジケータ804と、ディスプレイ801の第2の部分(例えば、「応答部分」)に表示される応答アフォーダンスとを含む。ディスプレイ801の第3の部分(例えば、「UI部分」)は、ユーザインタフェースの一部を表示する(ユーザインタフェースDAユーザインタフェース803が上に表示される)。例えば、図10Aでは、ディスプレイ801の第1の部分は、インジケータ804を表示し、ディスプレイ801の第2の部分は、応答アフォーダンス1002を表示し、ディスプレイ801の第3の部分は、ホーム画面ユーザインタフェース1001の一部を表示する。
一部の実施例では、ユーザインタフェース上にDAユーザインタフェース803を表示している間に、デバイス800は、ディスプレイ801の第3の部分の選択に対応するユーザ入力を受信する。デバイス800は、ユーザ入力が第1の種類の入力又は第2の種類の入力に対応するかどうかを判定する。一部の実施例では、第1の種類のユーザ入力は、タップジェスチャを含み、第2の種類のユーザ入力は、ドラッグ又はスワイプジェスチャを含む。
一部の実施例では、ユーザ入力が第1の種類の入力に対応するという判定に従って、デバイス800は、DAユーザインタフェース803を表示することを停止する。DAユーザインタフェース803を表示することを停止することは、DAユーザインタフェース803の任意の部分、例えば、インジケータ804、応答アフォーダンス、及びダイアログアフォーダンス(含まれる場合)を表示することを停止することを含む。一部の実施例では、DAユーザインタフェース803を表示することを停止することは、DAユーザインタフェース803の要素の表示を、ディスプレイ801のそれらのそれぞれの部分において、それぞれの部分におけるユーザインタフェースの表示に置き換えることを含む。例えば、デバイス800は、インジケータ804の表示をディスプレイ801の第1の部分でユーザインタフェースの第1の部分の表示に置き換え、応答アフォーダンスの表示をディスプレイ801の第2の部分でユーザインタフェースの第2の部分の表示に置き換える。
例えば、図10Bは、ディスプレイ801の第3の部分の選択に対応するユーザ入力1003(例えば、タップジェスチャ)を受信するデバイス800を示す。デバイス800は、ユーザ入力1003が第1の種類の入力に対応すると判定する。図10Cは、そのような決定に従って、デバイス800がDAユーザインタフェース803を表示することを停止し、その全体がユーザインタフェース1001を表示することを示す。
このようにして、ユーザは、DAユーザインタフェース803のいかなる部分も表示しないディスプレイ801の一部を選択する入力を提供することによって、DAユーザインタフェース803を閉じることができる。例えば、上記の図8S~図8Xでは、視覚的に隠れたホーム画面ユーザインタフェース802を表示するディスプレイ801の部分を選択するタップジェスチャは、デバイス800に図8Aのディスプレイに戻させる。
一部の実施例では、ユーザ入力は、ディスプレイ801の第3の部分に表示される選択可能要素の選択に対応する。一部の実施例では、ユーザ入力が第1の種類の入力に対応するという判定に従って、デバイス800は、選択可能要素に対応するユーザインタフェースを表示する。例えば、デバイス800は、(ディスプレイ801の第3の部分に表示される)ユーザインタフェースの部分の表示、応答アフォーダンスのディスプレイ、及び選択可能要素に対応するユーザインタフェースの表示を用いてインジケータ804の表示を置き換える。
一部の実施例では、ユーザインタフェースは、ホーム画面ユーザインタフェース1001であり、選択可能要素は、ホーム画面ユーザインタフェース1001のアプリケーションアフォーダンスであり、選択可能要素に対応するユーザインタフェースは、アプリケーションアフォーダンスに対応するユーザインタフェースである。例えば、図10Dは、ホーム画面ユーザインタフェース1001上に表示されたDAユーザインタフェース803を示す。ディスプレイ801は、第1の部分にインジケータ804を、第2の部分に応答アフォーダンス1004を、及び第3の部分にユーザインタフェース1001の一部を表示する。図10Eは、第3の部分に表示された健康アプリケーションアフォーダンス1006を選択するユーザ入力1005(例えば、タップジェスチャ)を受信するデバイス800を示す。図10Fは、デバイス800が、ユーザ入力1005が第1の種類の入力に対応すると判定したことに従って、インジケータ804、応答アフォーダンス1004、及びユーザインタフェース1001の一部を表示することを停止することを示す。デバイス800は、健康アプリケーションに対応するユーザインタフェース1007を更に表示する。
一部の実施例では、選択可能要素はリンクであり、選択可能要素に対応するユーザインタフェースは、リンクに対応するユーザインタフェースである。例えば、図10Gは、ウェブブラウジングアプリケーションユーザインタフェース1008上に表示されたDAユーザインタフェース803を示す。ディスプレイ801は、第1の部分にインジケータ804を、第2の部分に応答アフォーダンス1009を、及び第3の部分にユーザインタフェース1008の一部を表示する。図10Gは、第3の部分に表示されたリンク1011(例えば、ウェブページリンク)を選択するユーザ入力1010(例えば、タップジェスチャ)を受信するデバイス800を更に示す。図10Hは、デバイス800が、ユーザ入力1010が第1の種類の入力に対応すると判定したことに従って、デバイス800は、インジケータ804、応答アフォーダンス1009、及びユーザインタフェース1008の一部を表示することを停止する。デバイス800は、ウェブページリンク1011に対応するユーザインタフェース1012を更に表示することを示す。
このようにして、ディスプレイ801の第3の部分を選択するユーザ入力は、ユーザが選択したものに従って、DAユーザインタフェース803を閉じ、更にアクションの性能を引き起こす(例えば、ディスプレイ801を更新する)ことができる。
一部の実施例では、ユーザ入力が第2の種類の入力(例えば、ドラッグ又はスワイプジェスチャ)に対応するという判定に従って、デバイス800は、ユーザ入力に従ってディスプレイ801の第3の部分でユーザインタフェースの表示を更新する。一部の実施例では、デバイス800は、ディスプレイ801の第3の部分でユーザインタフェースの表示を更新する間、デバイス800は、それぞれのディスプレイ部分にDAユーザインタフェース803の要素の少なくとも一部を表示し続ける。例えば、デバイス800は、ディスプレイ801の第2の部分で応答アフォーダンスを表示する(例えば、表示し続ける)。一部の実施例では、デバイス800は、ディスプレイ801の第1の部分にインジケータ804を更に表示する(例えば、表示し続ける)。一部の実施例では、第3の部分でユーザインタフェースの表示を更新することは、ユーザインタフェースのコンテンツをスクロールすることを含む。
例えば、図10Iは、ウェブページを表示するウェブブラウザアプリケーションユーザインタフェース1013上に表示されたDAユーザインタフェース803を示す。ディスプレイ801は、第1の部分にインジケータ804を、第2の部分に応答アフォーダンス1014を、及び第3の部分にユーザインタフェース1013の一部を表示する。図10Iは、第3の部分を選択するユーザ入力1015(例えば、ドラッグジェスチャ)を受信するデバイス800を更に示す。図10Jは、デバイス800に従って、ユーザ入力1015が第2の種類の入力に対応すると判定したことを示し、デバイス800は、ユーザ入力1015に従ってユーザインタフェース1013のコンテンツを更新し(例えば、スクロールする)、例えば、ウェブページのコンテンツをスクロールする。図10I~図10Jは、(ディスプレイ801の第3の部分で)ユーザインタフェース1013を更新している間に、デバイス800がディスプレイ801の第1の部分にインジケータ804を及びディスプレイ801の第2の部分に応答アフォーダンス1014を表示し続けることを示す。
別の例として、図10Kは、ホーム画面ユーザインタフェース1001上に表示されたDAユーザインタフェース803を示す。ディスプレイ801は、第1の部分にインジケータ804を、第2の部分に応答アフォーダンス1016を、第3の部分にユーザインタフェース1001の一部を表示する。図10Kは、第3の部分を選択するユーザ入力1017(例えば、スワイプジェスチャ)を受信するデバイス800を更に示す。図10Lは、デバイス800に従って、ユーザ入力1017が第2の種類の入力に対応すると判定したことを示し、デバイス800は、ユーザ入力1017に従ってユーザインタフェース1001の内容を更新する。例えば、示されるように、デバイス800は、ユーザインタフェース1001を更新して、ホーム画面ユーザインタフェース1001のものとは異なる1つ以上のアプリケーションアフォーダンスを含む二次ホーム画面ユーザインタフェース1018を表示する。図10K~図10Lは、ユーザインタフェース1001を更新している間に、デバイス800が、ディスプレイ801の第1の部分にインジケータ804を及びディスプレイ801の第2の部分に応答アフォーダンス1016を表示し続けることを示す。
このようにして、ユーザは、入力がDAユーザインタフェース803を停止させることなく、DAユーザインタフェース803が表示されるユーザインタフェースを更新する入力を提供することができる。
一部の実施例では、ディスプレイ801の第3の部分でユーザインタフェースの表示を更新することは、DAがリスニング状態にあるという判定に従って実行される。したがって、デバイス800は、DAがリスニング状態にあるときにのみ、ドラッグ又はスワイプジェスチャがユーザインタフェースを更新する(DAユーザインタフェース803が上に表示される)ことを可能にすることができる。そのような例では、DAがリスニング状態にない場合、第2の種類に対応する(及びディスプレイ801の第3の部分の選択に対応する)ユーザ入力を受信したことに応答して、デバイス800は、ユーザ入力に応答してディスプレイ801を更新しないか、又はDAユーザインタフェース803を表示することを停止しない。一部の実施例では、DAがリスニング状態にある間にユーザインタフェースの表示を更新しながら、インジケータ804の表示サイズは、上述したように、受信された発話入力の大きさに基づいて変化する。
一部の実施例では、デバイス800は、ユーザインタフェース上にDAユーザインタフェース803を表示している間に、デバイス800は、第2のユーザ入力を受信する。一部の実施例では、第2のユーザ入力が第3の種類の入力に対応するという判定に従って、デバイス800は、DAユーザインタフェース803を表示することを停止する。一部の実施例では、第3の種類の入力は、ディスプレイ801の下部からディスプレイ801の上部に向かって発生するスワイプジェスチャを含む。第3の種類の入力は、デバイス800がホーム画面ユーザインタフェースと異なるユーザインタフェースを表示し(及びDAユーザインタフェース803を表示しない)、デバイス800にホーム画面ユーザインタフェースの表示に戻らせるとき、そのような入力を受信すると、「ホームスワイプ」と見なされることがある。
図10Mは、ホーム画面ユーザインタフェース1001にDAユーザインタフェース803を表示するデバイス800を示す。DAユーザインタフェース803は、応答アフォーダンス1020及びインジケータ804を含む。図10Mは、ディスプレイ801の下部からディスプレイ801の上部に向かうスワイプジェスチャであるユーザ入力1019を受信するデバイス800を更に示す。図10Nは、デバイス800に従って、ユーザ入力1019が第3の種類の入力に対応すると判定することを示し、デバイス800は、応答アフォーダンス1020及びインジケータ804を表示することを停止する。
一部の実施例では、ユーザインタフェース(DAユーザインタフェース803が上に表示される)は、アプリケーション固有のユーザインタフェースである。一部の実施例では、デバイス800は、アプリケーション固有のユーザインタフェース上にDAユーザインタフェース803を表示するが、デバイス800は、第2のユーザ入力を受信する。一部の実施例では、第2のユーザ入力が第3の種類の入力に対応するという判定に従って、デバイスは、DAユーザインタフェース803を表示することを停止し、更にホーム画面ユーザインタフェースを表示する。例えば、図10Oは、健康アプリケーションユーザインタフェース1022にDAユーザインタフェース803を表示するデバイス800を示す。DAユーザインタフェース803は、応答アフォーダンス1021及びインジケータ804を含む。図10Oは、ディスプレイ801の下部からディスプレイ801の上部に向かうスワイプジェスチャであるユーザ入力1023を受信するデバイス800を更に示す。図10Pは、デバイス800に従って、ユーザ入力1023が第3の種類の入力に対応すると判定することを示し、デバイス800は、ホーム画面ユーザインタフェース1001を表示する。例えば、示すように、デバイス800は、インジケータ804、応答アフォーダンス1021、及びメッセージングアプリケーションユーザインタフェース1022の表示をホーム画面ユーザインタフェース1001の表示に置き換える。
一部の実施例では、デバイス800は、ユーザインタフェース上にDAユーザインタフェース803を表示している間に、デバイス800は、応答アフォーダンスの選択に対応する第3のユーザ入力を受信する。第3のユーザ入力を受信したことに応答して、デバイス800は、DAユーザインタフェース803を表示することを停止する。例えば、図10Qは、ホーム画面ユーザインタフェース1001上に表示されたDAユーザインタフェース803を示す。DAユーザインタフェース803は、応答アフォーダンス1024、ダイアログアフォーダンス1025、及びインジケータ804を含む。図10Qは、応答アフォーダンス1024を選択するユーザ入力1026(例えば、上向きスワイプ又はドラッグジェスチャ)を受信するデバイス800を更に示す。図10Rは、ユーザ入力1026を受信したことに応答して、デバイス800がDAユーザインタフェース803を表示することを停止することを示す。
一部の実施例では、デバイス800は、ユーザインタフェースの上にユーザインタフェース803を表示している間に、デバイス800は、ディスプレイ801の第1の部分からディスプレイ801のエッジへのインジケータ804の変位に対応する第4のユーザ入力を受信する。第4のユーザ入力を受信したことに応答して、デバイス800は、DAユーザインタフェース803を表示することを停止する。例えば、図10Sは、ホーム画面ユーザインタフェース1001上に表示されたDAユーザインタフェース803を示す。図10Sでは、デバイス800は、ディスプレイ801の第1の部分からディスプレイ801のエッジにインジケータを変位させるユーザ入力1027(例えば、ドラッグ又はスワイプジェスチャ)を受信する。図10S~図10Vは、ユーザ入力1027を受信したことに応答して(例えば、インジケータ804がディスプレイ801のエッジに到達したことに応答して)、デバイス800は、DAユーザインタフェース803を表示することを停止することを示す。
5.デジタルアシスタント応答モード
図11は、様々な例による、DA応答モードを選択し、選択されたDA応答モードに従って応答を提示するためのシステム1100を示す。一部の実施例では、システム1100はスタンドアロンコンピュータシステム(例えば、デバイス104、122、200、400、600、800、900、902、又は904)上に実装される。システム1100は、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせを使用して実装されて、本明細書で論じられる原理を実行する。一部の実施例では、システム1100のモジュール及び機能は、図7A~図7Cに関して上述したように、DAシステム内に実装される。
システム1100は例示的であり、したがって、システム1100は、示されているよりも多い又はより少ない構成要素を有することができ、2つ以上の構成要素を組み合わせることができ、又は構成要素の異なる構成若しくは配置を有することができる。更に、以下の考察は、システム1100の単一の構成要素で実行される機能について説明しているが、そのような機能は、システム1100の他の構成要素で実行されることができ、そのような機能は、システム1100の2つ以上の構成要素で実行されることができることを理解されたい。
図12は、様々な例による、異なるDA応答モードに従って自然言語入力を受信した応答を提示するデバイス800を示す。図12では、デバイス800の各例示について、デバイス800は、DAを開始し、以下に論じられる、サイレント応答モード、混合応答モード、又は音声応答モードに従って、発話入力「天気は何?」に対する応答を提示する。システム1100を実装するデバイス800は、DA応答モードを選択し、以下で論じられる技術を使用して、選択された応答モードに従って応答を提示する。
システム1100は、取得モジュール1102を含む。取得モジュール1102は、自然言語入力に応答して応答パッケージを取得する。応答パッケージは、自然言語入力に対する応答として意図されたコンテンツ(例えば、スピーカブルテキスト)を含む。一部の実施例では、応答パッケージは、デジタルアシスタント応答アフォーダンス(例えば、応答アフォーダンス1202)に関連付けられた第1のテキスト(コンテンツテキスト)と、応答アフォーダンスに関連付けられた第2のテキスト(キャプションテキスト)とを含む。一部の実施例では、キャプションテキストは、コンテンツテキストよりも詳細でない(例えば、より少ない単語を含む)。コンテンツテキストは、ユーザの要求に対する完全な応答を提供することができ、一方、キャプションテキストは、要求に対する省略(例えば、不完全)応答を提供することができる。要求に対する完全な応答について、デバイス800は、例えば、コンテンツテキストの提示が完全な応答のための応答アフォーダンスの提示を必要としない場合があるのに対して、キャプションテキストを応答アフォーダンスと同時に提示することができる。
例えば、図12における自然言語入力「天気は何?」を考えてみる。コンテンツテキストは、「現在70度で晴れであり、今日の雨の可能性はない。今日の最高は75度であり、最低は60度である。」キャプションテキストは、単に「今日はいい天気」である。示すように、キャプションテキストは、コンテンツテキストの情報を視覚的に示す応答アフォーダンス1202との提示を意図している。したがって、コンテンツテキスト単独の提示は、キャプションテキスト及び応答アフォーダンスの双方を提示している間、要求に完全に回答することができる。
一部の実施例では、取得モジュール1102は、例えば、図7A~図7Cに関して説明したように、自然言語入力を処理するデバイス800によって、応答パッケージをローカルに取得する。一部の実施例では、取得モジュール1102は、DAサーバ106などの外部デバイスから応答パッケージを取得する。そのような例では、DAサーバ106は、図7A~図7Cに関して説明したように、自然言語入力を処理して、応答パッケージを決定する。一部の実施例では、取得モジュール1102は、応答パッケージの一部分をローカルに、応答パッケージの別の部分を外部デバイスから取得する。
システム1100は、モード選択モジュール1104を含む。選択モジュール1104は、デバイス800と関連付けられたコンテキスト情報に基づいて、複数のDA応答モードからDA応答モードを選択する。DA応答モードは、DAが自然言語入力(例えば、応答パッケージ)に対する応答を提示する方法(例えば、フォーマット)を指定する。
一部の実施例では、選択モジュール1104は、デバイス800が自然言語入力を受信した後、例えば、自然言語入力を受信した後に取得された現在のコンテキスト情報に基づいて、DA応答モードを選択する。一部の実施例では、選択モジュール1104は、取得モジュール1102が応答パッケージを取得した後、例えば、応答パッケージを取得した後に取得された現在のコンテキスト情報に基づいて、DA応答モードを選択する。現在のコンテキスト情報は、時間選択モジュール1104におけるコンテキスト情報を、DA応答モードを選択することについて説明する。一部の実施例では、時間は、自然言語入力を受信した後、及び自然言語入力に応答を提示する前にある。一部の実施例では、複数のDA応答モードは、以下で更に論じられる、サイレント応答モード、混合応答モード、及び音声応答モードを含む。
システム1100は、フォーマットモジュール1106を含む。選択モジュール1104がDA応答モードを選択したことに応答して、フォーマットモジュール1106は、DAに、(例えば、選択されたDA応答モードと一致するフォーマットで)応答パッケージを提示させる。一部の実施例では、選択されたDA応答モードは、サイレント応答モードである。一部の実施例では、サイレント応答モードに従って応答パッケージを提示することは、応答アフォーダンスを表示することと、キャプションテキストを表す(例えば、発話する)音声出力を提供することなく、キャプションテキストを表示することとを含む(コンテンツテキストを提供することなく)。一部の実施例では、選択されたDA応答モードは、混合応答モードである。一部の実施例では、混合応答モードに従って応答パッケージを提示することは、応答アフォーダンスを表示することと、キャプションテキストを表示することなくキャプションテキストを発話することとを含む(コンテキストテキストを提供することなく)。一部の実施例では、選択されたDA応答モードは、音声応答モードである。一部の実施例では、音声応答モードに従って応答パッケージを提示することは、例えば、キャプションテキストを提示することなく、及び/又は応答アフォーダンスを表示することなく、コンテンツテキストを発話することを含む。
例えば、図12では、サイレント応答モードに従って応答パッケージを提示することは、応答アフォーダンス1202を表示することと、ダイアログアフォーダンス1204内で、キャプションテキストを発話することなくキャプションテキスト「今日はいい天気」を表示することと、を含む。混合応答モードに従って応答パッケージを提示することは、応答アフォーダンス1202を表示することと、キャプションテキストを表示することなく、キャプションテキスト「今日はいい天気」を発話することと、を含む。音声応答モードに従って応答パッケージを提示することは、コンテンツテキスト「現在70度であり、今日の雨の可能性はない。今日の最高は75度であり、最低は60度である。」図12は、音声応答モードに従って応答パッケージを提示するときにデバイス800が応答アフォーダンス1202を表示することを示しているが、他の実施例では、応答パッケージを音声応答モードに従って提示するときに応答アフォーダンスは表示されない。
一部の実施例では、DAがサイレント応答モードに従って応答を提示するとき、デバイス800は、ダイアログアフォーダンス(例えば、テキストを含む)を表示することなく応答アフォーダンスを表示する。一部の実施例では、デバイス800は、応答アフォーダンスが自然言語要求への直接回答を含むと判定することに従ってテキストを提供することを取り止める。例えば、デバイス800は、キャプションテキスト及び応答アフォーダンスが各々、ユーザ要求に応答するそれぞれのマッチングテキストを含むことを判定する(したがって、キャプションテキストを冗長にする)。例えば、自然言語要求「温度は?」について、応答アフォーダンスが現在の温度を含む場合、サイレントモードでは、デバイス800は、現在の温度を含むキャプションテキストが応答アフォーダンスと冗長であるため、いかなるキャプションテキストも表示しない。対照的に、例示的な自然言語要求「寒い?」を考えてみる。要求についての応答アフォーダンスは、現在の温度及び気象状態を含むことができるが、「はい」又は「いいえ」などの要求に対する直接的な(例えば、明示的な)回答を含まなくてもよい。したがって、そのような自然言語入力について、サイレントモードでは、デバイス800は、応答アフォーダンス及び要求に対する直接回答、例えば「いいえ、寒くない」を含むキャプションテキストの双方を表示する。
図12は、一部の実施例では、DA応答モードを選択することが、(1)キャプションテキストを発話することなくキャプションテキストを表示するか、又は(2)キャプションテキストを表示することなくキャプションテキストを発話するかどうかを判定することを含むことを示す。一部の実施例では、応答モードを選択することは、コンテンツテキストを発話するかどうかを判定することを含む。
一般に、サイレント応答モードは、ユーザがディスプレイを閲覧することを望み、音声出力を望まないときに好適であり得る。混合応答モードは、ユーザがディスプレイを閲覧し、音声出力を所望する場合に好適であり得る。音声応答モードは、ユーザがディスプレイを表示することを望まない(又はそれを見ることができない)ときに好適であり得る。ここで、DA応答モードを選択するために使用する様々な技術及びコンテキスト情報選択モジュール1104について説明する。
図13は、様々な実施例による、DA応答モードを選択するために、選択モジュール1104によって実装される例示的なプロセス1300を示す。一部の実施例では、選択モジュール1104は、例えば、デバイス800のメモリに記憶されたコンピュータ実行可能命令としてプロセス1300を実装する。
ブロック1302において、選択モジュール1104は、現在のコンテキスト情報を取得する(例えば、判定する)。ブロック1304において、モジュール1104は、現在のコンテキスト情報に基づいて、音声モードを選択するかどうかを判定する。モジュール1104が音声モードを選択すると判定した場合、モジュール1104は、ブロック1306において音声モードを選択する。モジュール1104が音声モードを選択しないと判定する場合、プロセス1300は、ブロック1308に進む。ブロック1308において、モジュール1104は、サイレントモードと混合モードとの間で選択する。モジュール1104がサイレントモードを選択すると判定する場合、モジュール1104は、ブロック1310においてサイレントモードを選択する。モジュール1104が混合モードを選択すると判定する場合、モジュール1104は、ブロック1312において混合モードを選択する。
一部の実施例では、ブロック1304及び1308は、ルールベースのシステムを使用して実装される。例えば、ブロック1304において、モジュール1104は、現在のコンテキスト情報が音声モードを選択するための特定の条件を満たすかどうかを判定する。特定の条件が満たされている場合、モジュール1104は、音声モードを選択する。特定の条件が満たされていない場合(現在のコンテキスト情報が混合モード又は音声モードを選択するための条件を満たすことを意味する)、モジュール1104は、ブロック1308に進む。同様に、ブロック1308において、モジュール1104は、現在のコンテキスト情報がサイレントモード又は混合モードを選択するための特定の条件を満たし、それに応じてサイレントモード又は混合モードを選択するかどうかを判定する。
一部の実施例では、ブロック1304及び1308は、確率的(例えば、機械学習)システムを使用して実装される。例えば、ブロック1304において、モジュール1104は、現在のコンテキスト情報に基づいて、音声モードを選択する確率及び音声モードを選択しない確率(例えば、サイレントモード又は混合モードを選択する確率)を判定し、最も高い確率を有する分岐を選択する。ブロック1308において、モジュール1104は、現在のコンテキスト情報に基づいて、混合モードを選択する確率及びサイレントモードを選択する確率を判定し、最も高い確率を有するモードを選択する。一部の実施例では、音声モード、混合モード、及びサイレントモード確率は、合計1になる。
ここで、ブロック1304及び/又は1308の決定に使用される様々な種類の現在のコンテキスト情報について論じる。
一部の実施例では、コンテキスト情報は、デバイス800がディスプレイを有するかどうかを含む。ルールベースのシステムでは、デバイス800がディスプレイを有しないという判定は、音声モードを選択するための条件を満たす。確率システムでは、デバイス800がディスプレイを有しないという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。
一部の実施例では、コンテキスト情報は、デバイス800が音声入力(例えば、「Hey Siri」)を検出してDAを開始するかどうかを含む。ルールベースのシステムでは、DAを開始する音声入力を検出することは、音声モードを選択するための条件を満たす。ルールベースのシステムでは、DAを開始する音声入力を検出しないことは、音声モードを選択するための条件を満たさない(したがって、混合モード又はサイレントモードを選択するための条件を満たす)。確率システムでは、一部の実施例では、DAを開始する音声入力を検出することは、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、DAを開始する音声入力を検出しないことは、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、デバイス800がデバイス800の物理的接触を検出してDAを開始するかどうかを含む。ルールベースのシステムでは、物理的接触を検出しないことは、音声モードを選択するための条件を満たしている。ルールベースのシステムでは、物理的接触の検出は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、物理的接触を検出しないことは、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、物理的接触の検出は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、デバイス800がロック状態にあるかどうかを含む。ルールベースのシステムでは、デバイス800がロック状態にあるという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、デバイス800がロック状態にないという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、デバイス800がロック状態にあるという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、デバイス800がロック状態にないという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、DAを開始する前にデバイス800のディスプレイが表示されたかどうかを含む。ルールベースのシステムでは、DAを開始する前にディスプレイが表示されなかったという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、DAを開始する前にディスプレイが表示されたという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、DAを開始する前にディスプレイが表示されなかったという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、DAを開始する前にディスプレイが表示されたという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、デバイス800の表示配向を含む。ルールベースのシステムでは、ディスプレイがフェイスダウンするという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、ディスプレイがフェイスアップするという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、ディスプレイがフェイスダウンするとの判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、表示がフェイスアップするとの判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、デバイス800のディスプレイが隠されているかどうかを含む。例えば、デバイス800は、1つ以上のセンサ(例えば、光センサ、マイクロフォン、近接センサ)を使用して、ユーザがディスプレイを見ることができないかどうかを判定する。例えば、ディスプレイは、少なくとも部分的に囲まれた空間(例えば、ポケット、バッグ、又は引き出し)にあってもよく、又は物体によって覆われてもよい。ルールベースのシステムでは、ディスプレイが隠されているという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、ディスプレイが隠されていないという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、ディスプレイが隠されているという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、ディスプレイが隠されていないという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、デバイス800が外部音声出力デバイス(例えば、ヘッドホン、Bluetoothデバイス、スピーカ)に結合されているかどうかを含む。ルールベースのシステムでは、デバイス800が外部デバイスに結合されているという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、デバイス800が外部デバイスに結合されていないという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、デバイス800が外部デバイスに結合されているという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、デバイス800が外部デバイスに結合されていないという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、ユーザ視線の方向がデバイス800に向けられているかどうかを含む。ルールベースのシステムでは、ユーザ視線の方向がデバイス800に向けられていないという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、ユーザ視線の方向がデバイス800に向けられているという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、ユーザ視線の方向がデバイス800に向けられていないという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、ユーザ視線の方向がデバイス800に向けられているという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、応答モードを選択する前に、所定の期間内にデバイス800の所定の種類のジェスチャが検出されたかどうかを含む。所定の種類のジェスチャは、例えば、デバイス800にディスプレイをオンにするための持ち上げ及び/又は回転ジェスチャを含む。ルールベースのシステムでは、所定の期間内の所定の種類のジェスチャを検出しないことは、音声モードを選択するための条件を満たす。ルールベースのシステムでは、所定の期間内の所定の種類のジェスチャの検出は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、所定の期間内に所定の種類のジェスチャを検出しないことは、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、所定の期間内の所定の種類のジェスチャの検出は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、自然言語入力の方向を含む。ルールベースのシステムでは、自然言語入力の方向がデバイス800に向けられていないという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、自然言語入力の方向がデバイス800に向けられているという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、自然言語入力の方向がデバイス800に向けられていないという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、自然言語入力の方向がデバイス800に向けられているという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、応答モードを選択する前に、所定の期間内にデバイス800で実行されたタッチ(例えば、応答アフォーダンスを選択するユーザ入力)をデバイス800が検出したかどうかを含む。ルールベースのシステムでは、所定の期間内のタッチを検出しないことは、音声モードを選択するための条件を満たす。ルールベースのシステムでは、所定の期間内のタッチの検出は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、所定の期間内のタッチを検出しないことは、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、所定の期間内のタッチの検出は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、例えば、発話入力とは対照的に、自然言語入力が入力されたかどうかを含む。ルールベースのシステムでは、自然言語入力が入力されなかったという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、自然言語入力が入力されたという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、自然言語入力が入力されなかったという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、自然言語入力が入力されたという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、応答モードを選択する前に、デバイス800が所定の期間(例えば、10、15、30秒)内に通知(例えば、テキストメッセージ、電子メールメッセージ、アプリケーション通知、システム通知)を受信したかどうかを含む。ルールベースのシステムでは、所定の期間内の通知を受信しないことは、音声モードを選択するための条件を満たす。ルールベースのシステムでは、所定の期間内に通知を受信することは、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、所定の期間内に通知を受信しないことは、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、所定の期間内に通知を受信することは、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、デバイス800によって検出された周囲ノイズレベルを含む。閾値を超える周囲ノイズレベルは、例えば、ユーザがノイズの多い環境にあるため、ユーザが音声出力を聴取することができないことを提案することができる。したがって、閾値を超える周囲ノイズレベルを検出することは、(デバイス800が音声モード及び混合モードで音声出力を提供するときに)サイレントモードを選択することを提案することができる。したがって、ルールベースのシステムでは、周囲ノイズレベルが閾値を下回るという判定は、音声モードを選択するための条件を満たし、(ブロック1308において)混合モードを選択するための条件を満たし、(ブロック1308において)サイレントモードを選択するための条件を満たさない。ルールベースのシステムでは、周囲ノイズレベルが閾値を超えているという判定は、音声モードを選択するための条件を満たさず、混合モードを選択するための条件を満たさず(ブロック1308)、サイレントモードを選択するための条件を満たす(ブロック1308)。確率システムでは、一部の実施例では、周囲ノイズレベルが閾値未満であるという判定は、音声モードの確率を増加させ、混合モードの確率を増加させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、周囲ノイズレベルが閾値を超えるとの判定は、音声モードの確率を減少させ、混合モードの確率を減少させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、自然言語入力がささやき入力に対応するかどうかを含む。自然言語発話入力をささやくユーザは、例えば、ユーザが映画館のような静かな環境にいるため、ユーザが音声出力を望まないことを提案することができる。したがって、自然言語入力がささやき入力に対応すると判定することは、サイレントモードを選択することを提案することができる。したがって、ルールベースのシステムでは、自然言語入力がささやき入力に対応しないという判定は、音声モードを選択するための条件を満たし、(ブロック1308において)混合モードを選択するための条件を満たし、(ブロック1308において)サイレントモードを選択するための条件を満たさない。ルールベースのシステムでは、自然言語入力がささやき入力に対応するという判定は、音声モードを選択するための条件を満たさず、混合モードを選択するための条件を満たさず(ブロック1308)、サイレントモードを選択するための条件を満たす(ブロック1308)。確率システムでは、一部の実施例では、自然言語入力がささやき入力に対応しないという判定は、音声モードの確率を増加させ、混合モードの確率を増加させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、自然言語入力がささやき入力に対応するという判定は、音声モードの確率を減少させ、混合モードの確率を減少させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、ユーザのスケジュール情報がユーザが占有されていることを示すかどうか(例えば、会議において)を含む。ユーザが占有していることを示すスケジュール情報は、サイレントモードを選択することを提案することができる。したがって、ルールベースのシステムでは、ユーザが占有していないことをスケジュール情報が示すという判定は、音声モードを選択するための条件を満たし、(ブロック1308において)混合モードを選択するための条件を満たし、(ブロック1308において)サイレントモードを選択するための条件を満たさない。ルールベースのシステムでは、ユーザが占有していることをスケジュール情報が示すという判定は、音声モードを選択するための条件を満たさず、混合モードを選択するための条件を満たさず(ブロック1308)、サイレントモードを選択するための条件を満たす(ブロック1308)。確率システムでは、一部の実施例では、ユーザが占有していないことをスケジュール情報が示すとの判定は、音声モードの確率を増加させ、混合モードの確率を増加させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、ユーザが占有していることをスケジュール情報が示すとの判定は、音声モードの確率を減少させ、混合モードの確率を減少させ、サイレントモードの確率を増加させる。
一部の実施例では、コンテキスト情報は、デバイス800が車両にあるかどうかを含む。一部の実施例では、デバイス800は、車両とのペアリングを検出することによって(例えば、Apple Inc.によるBluetooth又はCarPlay(登録商標)を介して)、又はデバイス800が車両内にあることを示す設定の起動(例えば、運転設定中に妨害しない)を判定することによって、車両内にあるかどうかを判定する。一部の実施例では、デバイス800は、デバイス800の位置及び/又は速度を使用して車両内にあるかどうかを判定する。例えば、デバイス800がハイウェイで時間65マイルを移動していることを示すデータは、デバイス800が車両にあることを示すことができる。
ルールベースのシステムでは、デバイス800が車両にあるという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、デバイス800が車両内にないという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、デバイス800が車両にあるという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、デバイス800が車両内にないという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
図14は、様々な例による、ユーザが車両にいる(例えば、運転している)と判定されたときに、音声応答モードに従って応答を提示するデバイス800を示す。示すように、デバイス800は、駆動ユーザインタフェース1400上にDAユーザインタフェース803を表示する。ユーザが運転している間の視覚的な伸延を最小限に抑えるために、DAユーザインタフェース803は、応答アフォーダンスを含まず、インジケータ804のみを含む。自然言語入力「天気は何?」に応答して、DAは、コンテンツテキスト「現在70度で晴れであり、今日の雨の可能性はない。今日の最高は75度であり、最低は60度である。」を話す。したがって、DAは、ユーザが運転している間に視覚的な伸延を低減する方法で、ユーザの要求に応答することができる。
一部の実施例では、コンテキスト情報は、デバイス800が所定の種類のアプリケーションを実行しているかどうかを含む。一部の実施例では、所定の種類のアプリケーションは、ナビゲーションアプリケーションを含む。ルールベースのシステムでは、デバイス800が所定の種類のアプリケーションを実行しているという判定は、音声モードを選択するための条件を満たす。ルールベースのシステムでは、デバイス800が所定の種類のアプリケーションを実行していないという判定は、音声モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、デバイス800が所定の種類のアプリケーションを実行しているという判定は、音声モードの確率を増加させ、及び/又は混合モードの確率を減少させ、サイレントモードの確率を減少させる。確率システムでは、一部の実施例では、デバイス800が所定の種類のアプリケーションを実行していないという判定は、音声モードの確率を減少させ、及び/又は混合モードの確率を増加させ、サイレントモードの確率を増加させる。
図15は、様々な例による、デバイス800がナビゲーションアプリケーションを実行しているときに、音声応答モードに従って応答を提示するデバイス800を示す。示すように、デバイス800は、ナビゲーションアプリケーションユーザインタフェース1500にDAユーザインタフェース803を表示する。ユーザインタフェース1500への視覚的混乱を最小限に抑えるために、DAユーザインタフェース803は、応答アフォーダンス(又はダイアログアフォーダンス)を含まず、インジケータ804のみを含む。自然言語入力「天気は何?」に応答して、DAは、コンテンツテキスト「現在70度で晴れであり、今日の雨の可能性はない。今日の最高は75度であり、最低は60度である。」を話す。したがって、DAは、実行されるナビゲーションアプリケーションへの視覚的混乱を低減する方法で、ユーザの要求に応答することができる。
図13に戻ると、ブロック1308において、モジュール1104は、サイレントモードと混合モードとの間で選択する。一部の実施例では、モジュール1104は、特定の条件が満たされたモードを選択する(ブロック1304の実行はまた、現在のコンテキスト情報が混合モードを選択するための条件又はサイレントモードを選択するための条件を満たすかどうかを判定することもできることを想起されたい)。一部の実施例では、モジュール1104は、確率が最も高いモードを選択する(ブロック1304を実行することは、サイレントモード及び混合モードのそれぞれの確率を判定することができる)。一部の実施例では、ブロック1308において、モジュール1104は、以下で論じられる現在のコンテキスト情報に基づいて、サイレントモードと混合モードとの間で選択する。
一部の実施例では、コンテキスト情報は、DAがユーザ要求に応答して音声出力を提供するべきかどうかを示すDA音声フィードバック設定を含む。一部の実施例では、音声フィードバック設定は、(例えば、常に)音声フィードバックを提供することを示す。ルールベースのシステムでは、音声フィードバック設定が音声フィードバックを提供することを示す判定は、混合モードを選択するための条件を満たし、サイレントモードを選択するための条件を満たさない。確率システムでは、一部の実施例では、音声フィードバック設定が音声フィードバックを提供することを示す判定は、混合モードの確率を増加させ、サイレントモードの確率を減少させる。
一部の実施例では、DA音声フィードバック設定は、デバイス800のスイッチ(例えば、リンガースイッチ)で音声フィードバックを制御することを示す。例えば、音声フィードバック設定は、リンガースイッチがオンになっているときに音声フィードバックを提供し、リンガースイッチがオフになったときに音声フィードバックを提供しないことを示す。そのような実施例では、ルールベースのシステムでは、リンガースイッチがオンであるという判定(音声フィードバック設定は音声フィードバックを提供することを示す)は、混合モードを選択するための条件を満たし、サイレントモードを選択するための条件を満たさない。ルールベースのシステムでは、リンガースイッチがオフであるという判定(音声フィードバック設定は音声フィードバックを提供しないことを示す)は、サイレントモードを選択するための条件を満たし、混合モードを選択するための条件を満たさない。確率システムでは、一部の実施例では、リンガースイッチがオンになるとの判定は、混合モード確率を増加させ、サイレントモード確率を減少させる。確率システムでは、一部の実施例では、リンガースイッチがオフであるという判定は、混合モード確率を減少させ、サイレントモード確率を増加させる。
一部の実施例では、DA音声フィードバック設定は、「ハンズフリー」コンテキストで音声フィードバックを提供することを示す。例えば、DA音声フィードバック設定は、DAが発話入力を使用して開始されるか、又はデバイスが外部デバイス(例えば、ヘッドホン、Bluetoothデバイス、又はApple Inc.によってCarPlay(登録商標)を実装するデバイス)に結合/ペアリングされる場合にのみ音声フィードバックを提供することを指定する。一部の実施例では、音声フィードバック設定が「ハンズフリー」コンテキストで音声フィードバックを提供することを示す判定は、モジュール1104に、デバイス800が物理的接触を検出してDAを開始するかどうかを判定する。ルールベースのシステムでは、デバイス800が物理的接触を検出したという判定は、サイレントモードを選択するための条件を満たし、混合モードを選択するための条件を満たさない。ルールベースのシステムでは、デバイス800が物理的接触を検出しなかったという判定は、混合モードを選択するための条件を満たし、サイレントモードを選択するための条件を満たさない。確率システムでは、一部の実施例では、デバイス800が物理的接触を検出したという判定は、サイレントモード確率を増加させ、混合モード確率を減少させる。確率システムでは、一部の実施例では、デバイス800が物理的接触を検出しなかったという判定は、サイレントモード確率を減少させ、混合モード確率を増加させる。一部の実施例では、音声フィードバック設定が「ハンズフリー」コンテキストにおいて音声フィードバックを提供することを示さないという判定は、上述したように、モジュール1104に別の音声フィードバック設定に従って(例えば、音声フィードバックを制御するために、又は常に音声フィードバックを提供するために)混合モード又はサイレントモードを選択する。
一部の実施例では、ルールベースのシステムでは、モジュール1104は、例えば、特定のモードを選択するための他の条件が満たされる限り、特定のモードを選択するための1つ以上の条件が満たされない(又は決定されない)場合でも、特定のDA応答モードを選択する。一部の実施例では、特定のモードを選択するための条件は、順次である。例えば、モジュール1104が、コンテキスト情報が特定のモードを選択するための条件を満たす(又はそうでない)と判定した後、モジュール1104は、コンテキスト情報が特定のモードを選択するための別の条件を満たすかどうか、などを判定して、特定のモードを選択する。一部の実施例では、特定のモードを選択するための特定の条件は、他の条件が満たされているかどうかに関係なく、特定の条件が満たされる場合、例えば、モジュール1104が特定のモードを選択するように、他の条件に優先される。特定のモードを選択するために、様々な条件が満たされる特定の条件及び配列は、モジュール1104の様々な実装形態に従って変化することができる。例えば、モジュール1104は、デバイス800が車両にあると判定された場合、デバイス800が物理的接触を検出してDAを検出した場合(音声モードではなく、混合モード又はサイレントモードを選択するための条件を満たす)、音声応答モードを選択する。
一部の実施例では、コンテキスト情報の特定の種類は、確率システムで決定されない。一部の実施例では、確率システムでは、モジュール1104がそれぞれの応答モード確率を増加又は減少させる量は、例えば、異なる種類のコンテキスト情報が特定の応答モードを選択するときに異なる重みを有するように、例えば、コンテキスト情報の特定の種類に基づいて変化する。例えば、モジュール1104は、第1のコンテキスト情報が確率を増加させることを示すことを決定したことに応答して、特定のモードの確率を、第1の量によって増加させ、異なる第2のコンテキスト情報が確率を増加させることを示すことを判定したことに応答して、異なる第2の量によって確率を増加させる。特定の実施例として、デバイス800が車両にあるという判定は、音声モード確率を大量に増加させ、デバイス800がロック状態にあるという判定は、音声モード確率をより少ない量だけ増加させる。一部の実施例では、モジュール1104は、モードの確率が閾値を超えたときに特定のモードを選択する。一部の実施例では、特定の種類のコンテキスト情報は、例えば、コンテキスト情報が特定のモードを選択するときに重みを有しないように、特定のモードの確率に影響を及ぼさない。例えば、デバイス800がDAを開始する音声入力を受信しなかったことを示すコンテキスト情報は、音声モード、混合モード、及びサイレントモード、又はそれらのサブ組み合わせを選択する確率に影響を与えない。
プロセス1300は例示的であり、モジュール1104が応答モードを選択することができる方法を制限しないことを理解されたい。したがって、本開示は、上述したコンテキスト情報に基づいて応答モードを選択する他の方法を企図する。例えば、最初に音声モードを選択するかどうかを判定する代わりに、モジュール1104は、コンテキスト情報に基づいて、音声、サイレント、及び混合モードのそれぞれの確率を同時に決定する。別の実施例として、モジュール1104は、本明細書の教示と一致する方法で、コンテキスト情報が特定の条件を満たすかどうかに基づいて、決定木又はフローチャートを実装して、応答モードを選択する。決定木又はフローチャートの特定の構成は、モジュール1104の様々な実装によって変化することができる。
一部の実施例では、選択されたDA応答モードは、マルチターンDA相互作用の過程を通して変化する。マルチターンDA相互作用は、ユーザがDAへの第1の自然言語入力を提供する相互作用を表し、DAは、更なるユーザ入力を要求する応答を提示する。したがって、一部の実施例では、デバイス800は、第1の自然言語入力を受信し、DAは、第1の選択された応答モードに従って(第1の自然言語入力に応答して)第1の応答パッケージを提示する。第1の応答パッケージの提示は、更なるユーザ入力を要求することを含む。したがって、第1の応答パッケージを提示した後、デバイス800は、第1の応答パッケージの提示に応答して第2の自然言語入力を受信する。デバイス800は、第2の自然言語入力に応答して第2の応答パッケージを取得する。第2の自然言語入力を受信した後、デバイス800は、複数のDA応答モードから第2のDA応答モード(第1のDA応答モードとは異なる)を更に選択する。第2の応答モードを選択したことに応答して、DAは、第2の応答モードに従って第2の応答パッケージを提示する。
図16は、様々な実施例による、マルチターンDA相互作用の過程にわたる応答モード変動を示す。図16では、時間T1において、ユーザは、DAを開始し、第1の発話入力「Samにメッセージを送信する」を提供する。デバイス800は、第1の発話入力に応答して第1の応答パッケージを取得する。第1の応答パッケージは、コンテンツテキスト「Samに伝えたいメッセージは何?及びキャプションテキスト「何て言ってるの?」を含む。デバイス800は、例えば、ユーザがデバイス800及び/又はデバイス800のDA音声フィードバック設定を物理的にタッチして、音声フィードバックを提供することを示すことでユーザがDAを開示したため、混合応答モードを更に選択する。したがって、時間T2において、DAは、混合応答モードに従って第1の応答パッケージを提示する。具体的には、デバイス800は、キャプションテキスト「何て言ってるの?」を発話し、Samへのメッセージを示す応答アフォーダンス1600を表示する。
時間T3において、ユーザは、デバイス800のディスプレイを下向きにしてテーブル上に配置し、第2の発話入力「夕食は何?」を提供する。デバイス800は、第2の発話入力に応答して第2の応答パッケージを取得する。第2の応答パッケージは、キャプションテキスト「これがあなたのメッセージです、送信する準備はできた?」と、コンテンツテキスト「Samへのメッセージは「夕食は何?」というものであり、送信する準備はできた?」を含む。デバイス800は、例えば、デバイス800のディスプレイが第2の発話入力を受信した後にフェイスダウンするため、音声応答モードを更に選択する。したがって、時間T4において、DAは、音声応答モードに従って第2の応答パッケージを提示する。具体的には、デバイス800は、コンテンツテキスト(キャプションテキストではない)「Samへのメッセージは「夕食は何?」というものであり、送信する準備はできた?」を発話する。
このようにして、DAは、デバイス800の現在のコンテキストに適した様式でインテリジェントに応答することができる。例えば、時間T2において、ユーザがディスプレイ801を見ることができるため、混合モードは適切であった。したがって、時間T2において、デバイス800は「何て言ってるの?」と発話するだけであるため、応答アフォーダンス1600は、DAがSamにメッセージを聴覚的に示すことなく、Samにメッセージを視覚的に示す。DAは、(Samに対するメッセージを示す)より長いコンテンツテキストを発話せず、したがって、相互作用効率を高める。しかしながら、時間T4において、ユーザは、ディスプレイ801を見ることができない。ユーザはメッセージコンテンツを視覚的に確認することができないため、DAは、単にキャプションテキスト「これがあなたのメッセージです、送信する準備はできた?」を単に提示しない。むしろ、DAは、より情報的なコンテンツテキストを発話して、メッセージコンテンツを可聴的に確認する。
6.デジタルアシスタントを動作させる処理
図17A~図17Fは、様々な実施例による、デジタルアシスタントを動作させるためのプロセス1700を示す。プロセス1700は、例えば、デジタルアシスタントを実装する1つ以上の電子デバイスを使用して実行される。一部の実施例では、プロセス1700は、クライアント-サーバシステム(例えば、システム100)を使用して実行され、プロセス1700のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイス(例えば、デバイス800、900、902、又は904)との間で任意の方法で分割される。他の実施例では、プロセス1700のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で分割される。したがって、プロセス1700の一部はクライアント-サーバシステムの特定のデバイスによって実行されるように本明細書では説明されているが、プロセス1700は、そのように限定されないことが理解されよう。他の実施例では、プロセス1700は、クライアントデバイス(例えば、ユーザデバイス104)のみを使用して、又は複数のクライアントデバイスのみを使用して実行される。プロセス1700では、いくつかのブロックが任意選択的に組み合わせられ、いくつかのブロックの順序が任意選択的に変更され、いくつかのブロックが任意選択的に省略される。一部の実施例では、プロセス1700と組み合わせて追加のステップが実行されることができる。
一般に、プロセス1700は、上述した図8A~図8CTを使用して例示される。しかしながら、上述した他の図は、プロセス1700に等しく適用可能であり得ることを理解されたい。
ブロック1701において、(例えば、ディスプレイ801に)デジタルアシスタントユーザインタフェースとは異なるユーザインタフェース(例えば、図8Aのユーザインタフェース802)を表示している間に、ユーザ入力が受信される。
ブロック1702において、ユーザ入力がデジタルアシスタントを開始するための基準を満たすとの判定に従って、デジタルアシスタントユーザインタフェース(例えば、図8FのDAユーザインタフェース803)がユーザインタフェース上に表示される。デジタルアシスタントユーザインタフェースは、ディスプレイの第1の部分に表示されるデジタルアシスタントインジケータ(例えば、図8Fのインジケータ804)と、ディスプレイの第2の部分に表示される応答アフォーダンス(例えば、図8Fの応答アフォーダンス805)とを含む。ユーザインタフェースの一部は、ディスプレイの第3の部分で見えるままである。一部の実施例では、第3の部分は、第1の部分と第2の部分との間にある。一部の実施例では、ユーザインタフェースの部分は、ユーザ入力を受信する前に、ディスプレイの第3の部分に表示された。一部の実施例では、ユーザインタフェースは、ホーム画面ユーザインタフェース(例えば、図8Aのユーザインタフェース802)又はアプリケーション固有ユーザインタフェース(例えば、図8Jのユーザインタフェース809)である。
一部の実施例では、応答アフォーダンスは、第1の状態で表示される(例えば、図8Gの応答アフォーダンス805)。一部の実施例では、ブロック1703において、ユーザインタフェース上に表示されている間に、デジタルアシスタントユーザインタフェースに、応答アフォーダンス(例えば、図8Gの入力806)の選択に対応する第2のユーザ入力が受信される。一部の実施例では、ブロック1704において、第2のユーザ入力を受信したことに応答して、第1の状態の応答アフォーダンスの表示は、第2の状態(例えば、図8Hの応答アフォーダンス805)の応答アフォーダンスの表示に置き換えられる。一部の実施例では、第1の状態は、コンパクト状態であり、第2の状態は、拡張状態である。
一部の実施例では、ブロック1705において、第2の状態に応答アフォーダンスを表示している間に、第1の状態で応答アフォーダンスを表示するように要求する第3のユーザ入力が受信される。一部の実施例では、ブロック1706において、第3のユーザ入力を受信したことに応答して、第2の状態の応答アフォーダンスの表示は、第1の状態の応答アフォーダンスの表示に置き換えられる。
一部の実施例では、ブロック1707において、第2の状態に応答アフォーダンスを表示している間に、応答アフォーダンスの選択(例えば、図8Iの入力808)に対応する第4のユーザ入力が受信される。一部の実施例では、ブロック1708において、第4のユーザ入力を受信したことに応答して、応答アフォーダンスに対応するアプリケーションのユーザインタフェース(例えば、図8Jのユーザインタフェース809)が表示される。
一部の実施例では、第2のユーザ入力は、応答アフォーダンスの第1の部分(例えば、図8Gの応答アフォーダンス805の選択された部分)の選択に対応する。一部の実施例では、ブロック1709において、ユーザインタフェース上に第1の状態に表示された応答アフォーダンスを含むデジタルアシスタントユーザインタフェースは、応答アフォーダンスの第2の部分の選択に対応する第5のユーザ入力(例えば、図8Mの入力812)を受信する。一部の実施例では、ブロック1710において、第5のユーザ入力を受信したことに応答して、応答アフォーダンスに対応する第2のアプリケーションの第2のユーザインタフェース(例えば、図8Nのユーザインタフェース809)が表示される。一部の実施例では、ブロック1711において、第2のアプリケーションの第2のユーザインタフェースを表示している間に、選択可能なデジタルアシスタントインジケータ(例えば、図8Nのインジケータ810)が表示される。
一部の実施例では、応答アフォーダンス(例えば、図8Qの応答アフォーダンス816)は、選択可能要素(例えば、図8Qの選択可能要素817)を含む。一部の実施例では、ブロック1712において、選択可能要素の選択に対応するユーザ入力(例えば、図8Rの入力818)が受信される。一部の実施例では、ブロック1713において、選択可能要素の選択に対応するユーザ入力を受信したことに応答して、選択可能要素に対応するアフォーダンス(例えば、図8Sのアフォーダンス819)が応答アフォーダンスの上に表示される。一部の実施例では、ブロック1714において、選択可能要素に対応する応答アフォーダンス上に表示されている間に、ユーザインタフェースは、ディスプレイの第3の部分(例えば、図8Sのユーザインタフェース802)で視覚的に隠される。
一部の実施例では、ユーザインタフェースは、ディスプレイの第4の部分を占める入力フィールド(例えば、図8Zの入力フィールド826)を含む。一部の実施例では、ブロック1715において、ディスプレイの第1の部分からディスプレイの第4の部分への応答アフォーダンスの変位に対応する第6のユーザ入力(例えば、図8AB~図8ACの入力828)が受信される。一部の実施例では、ブロック1716において、第6のユーザ入力を受信したことに応答して、ディスプレイの第1の部分における応答アフォーダンスの表示は、入力フィールド(例えば、図8AD)内の応答アフォーダンスの表示に置き換えられる。一部の実施例では、入力フィールドは、メッセージングアプリケーション、電子メールアプリケーション、又はメモ取りアプリケーションに対応する。一部の実施例では、ブロック1717において、第6のユーザ入力を受信している間、応答アフォーダンスは、ディスプレイの第1の部分からディスプレイの第4の部分に連続的に変位される(例えば、図8AB~図8AC)。実施例では、ブロック1718において、応答アフォーダンスを連続的に変位させながら、デジタルアシスタントインジケータの表示を停止する。
一部の実施例では、ユーザインタフェースは、ディスプレイの第5の部分を占めるウィジェット領域(例えば、図8AGのウィジェット領域832)を含む。一部の実施例では、ブロック1719において、ディスプレイの第1の部分からディスプレイの第5の部分への応答アフォーダンスの変位に対応する第7のユーザ入力(例えば、図8AH~図8AIのユーザ入力834)が受信される。一部の実施例では、ブロック1720において、第7のユーザ入力を受信したことに応答して、ディスプレイの第1の部分における応答アフォーダンスの表示は、ウィジェット領域内の応答アフォーダンスの表示(例えば、図8AJ)に置き換えられる。一部の実施例では、応答アフォーダンスは、イベントに対応する。一部の実施例では、ブロック1721において、イベントの完了が判定される。一部の実施例では、ブロック1722において、イベントの完了を判定したことに応答して、ウィジェット領域内の応答アフォーダンスの表示が停止される。
一部の実施例では、ブロック1723において、自然言語入力が受信され、応答アフォーダンスが、デジタルアシスタントによる自然言語入力による応答に対応する。一部の実施例では、デジタルアシスタントは、自然言語入力に対応する複数の結果を判定し、応答アフォーダンスは、複数の結果のうちの単一の結果(例えば、図8AOの応答アフォーダンス839)を含む。一部の実施例では、応答アフォーダンスは、編集可能なテキストフィールドを含み、編集可能なテキストフィールドは、自然言語入力から決定されたテキストを含む(例えば、図8ARの編集可能なテキストフィールド850)。
一部の実施例では、デジタルアシスタントユーザインタフェースは、ダイアログアフォーダンス(例えば、図8BMのダイアログアフォーダンス863)を含む。一部の実施例では、ブロック1724において、ダイアログアフォーダンスは、ディスプレイの第6の部分に表示される。一部の実施例では、第6の部分は、第1の部分と第2の部分との間にある。一部の実施例では、ダイアログアフォーダンスは、自然言語入力に応答して、デジタルアシスタントによって生成されるダイアログを含む。
一部の実施例では、ブロック1725において、自然言語入力のための複数の選択可能な曖昧性除去オプションが、デジタルアシスタントによって決定される。一部の実施例では、ダイアログは、複数の選択可能な曖昧性除去オプション(例えば、図8BLのオプション865及び866)を含む。
一部の実施例では、ブロック1726において、自然言語入力に基づく一次ユーザ意図が判定される。一部の実施例では、応答アフォーダンスは、一次ユーザ意図に対応する(例えば、図8BNの応答アフォーダンス870)。一部の実施例では、ブロック1727において、自然言語入力に基づく代替ユーザ意図が判定される。一部の実施例では、ダイアログは、代替ユーザ意図に対応する選択可能なオプション(例えば、図8BNのオプション872)を含む。
一部の実施例では、ダイアログアフォーダンスは、第3の状態で表示される(例えば、図8BOのダイアログアフォーダンス873)。一部の実施例では、ブロック1728において、ダイアログアフォーダンス(例えば、図8BP~図8BRのユーザ入力874)の選択に対応する第8のユーザ入力が受信される。一部の実施例では、ブロック1729において、第8のユーザ入力を受信したことに応答して、第3の状態のダイアログアフォーダンスの表示は、第4の状態のダイアログアフォーダンス(例えば、図8BQ、図8BR、図8BS、又は図8BTのダイアログアフォーダンス)の表示に置き換えられる。一部の実施例では、第4の状態は、ダイアログアフォーダンスの最大サイズに対応する。一部の実施例では、第4の状態のダイアログアフォーダンスを表示している間に、ダイアログアフォーダンスのコンテンツをスクロールするためのユーザ入力が有効にされる(例えば、図8BS)。
一部の実施例では、第4の状態のダイアログアフォーダンスの表示は、ディスプレイの第1の部分の少なくとも一部(例えば、図8BR~図8BT)を占める。一部の実施例では、ブロック1730において、第4の状態のダイアログアフォーダンスを表示することは、応答アフォーダンス(例えば、図8BR~図8BT)の少なくとも第3の部分上にダイアログアフォーダンスを表示することを含む。
一部の実施例では、第8のユーザ入力を受信する前に、応答アフォーダンスは、第5の状態で表示された(例えば、図8BOの応答アフォーダンス875)。一部の実施例では、ブロック1731において、第4の状態のダイアログアフォーダンスを表示することは、第5の状態の応答アフォーダンスの表示を、第6の状態の応答アフォーダンス(例えば、図8BR~図8BTの応答アフォーダンス875)の表示に置き換えることを含む。
一部の実施例では、第4の状態は、ダイアログアフォーダンスの第2の最大サイズに対応する。一部の実施例では、応答アフォーダンスの第4の部分は、第4の状態のダイアログアフォーダンスを表示するときに見えるままである(例えば、図8BS~図8BT)。
一部の実施例では、ブロック1732において、応答アフォーダンスの第4の部分の選択に対応する第9のユーザ入力(例えば、図8BTの入力877)が受信される。一部の実施例では、ブロック1733において、第9のユーザ入力を受信したことに応答して、第4の状態のダイアログアフォーダンスの表示は、第7の状態のダイアログアフォーダンス(例えば、図8BUのダイアログアフォーダンス873)の表示に置き換えられる。一部の実施例では、ブロック1734において、第9のユーザ入力を受信したことに応答して、応答アフォーダンスは、ディスプレイの第1の部分に表示される(例えば、図8BUの応答アフォーダンス875)。
一部の実施例では、ブロック1735において、第4の状態のダイアログアフォーダンスを表示している間に、ダイアログアフォーダンスの選択に対応する第10のユーザ入力(例えば、図8BXの入力883)が受信される。一部の実施例では、ブロック1736において、第10のユーザ入力を受信したことに応答して、第4の状態のダイアログアフォーダンスの表示は、第8の状態のダイアログアフォーダンス(例えば、図8BYのダイアログアフォーダンス882)の表示に置き換えられる。
一部の実施例では、ブロック1737において、第4の状態のダイアログアフォーダンスを表示している間に、応答アフォーダンスの選択に対応する第11のユーザ入力が受信される(例えば、図8BVの入力880)。一部の実施例では、ブロック1738において、第11のユーザ入力を受信したことに応答して、第4の状態のダイアログアフォーダンスの表示は、第9の状態のダイアログアフォーダンス(例えば、図8BWのダイアログアフォーダンス879)の表示に置き換えられる。
一部の実施例では、自然言語入力は、自然言語発話入力である。一部の実施例では、ブロック1739において、自然言語発話入力の転記がダイアログアフォーダンスに表示される(図8BZ)。
一部の実施例では、自然言語発話入力は、自然言語発話入力の前に受信された第2の自然言語発話入力に連続している。一部の実施例では、ブロック1740において、デジタルアシスタントが自然言語発話入力のユーザ意図を判定し、第2の自然言語発話入力の第2のユーザ意図を決定することができないという判定に従って(例えば、図8CA~図8CC)、転記を表示することが実行される。
一部の実施例では、ブロック1741において、自然言語発話入力が以前の自然言語発話入力を繰り返すという判定に従って(例えば、図8CD~図8CF)、転記を表示することが実行される。
一部の実施例では、ブロック1742において、自然言語発話入力を受信した後に、自然言語発話入力に連続する第2の自然言語発話入力が受信される。一部の実施例では、ブロック1743において、第2の自然言語発話入力が音声認識エラーを示すという判定に従って(例えば、図8CG~図8CI)、転記を表示することが実行される。
一部の実施例では、デジタルアシスタント結果が第1の時間に提示される。一部の実施例では、ブロック1744において、デジタルアシスタント結果が所定の種類のデジタルアシスタント結果に対応するという判定に従って、デジタルアシスタントユーザインタフェースの表示は、第1の時間の後の所定の期間に自動的に停止される(例えば、図8CM~図8CN)。
図17A~図17Fを参照して上述した動作は、任意選択的に、図1~図4、図6A~図6B、図7A~図7C、及び図8A~図8CTに示す構成要素によって実装される。例えば、プロセス1700の動作は、デバイス800によって実装されてもよい。図1~図4、図6A~図6B、及び図7A~図7Cに示される構成要素に基づいて、どのように他のプロセスが実装されるかは、当業者にとって明らかであろう。
図17A~図17Fに関して上述したプロセス1700の詳細はまた、後述するプロセス1800と同様に適用可能であることに留意されたい。例えば、プロセス1800は、任意選択的に、上述したプロセス1700の特性のうちの1つ以上を含む。例えば、プロセス1800に関して以下に説明されるユーザインタフェースと相互作用する場合、ユーザは、プロセス1700に関して説明したように、デジタルアシスタントユーザインタフェースと相互作用するための1つ以上の入力を提供することができる。簡潔にするために、これらの詳細は、以下で繰り返さない。
7.デジタルアシスタントを動作させる処理
図18A~図18Bは、様々な実施例による、デジタルアシスタントを動作させるためのプロセス1800を示す。プロセス1800は、例えば、デジタルアシスタントを実装する1つ以上の電子デバイスを使用して実行される。一部の実施例では、プロセス1800は、クライアント-サーバシステム(例えば、システム100)を使用して実行され、プロセス1800のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイス(例えば、デバイス800、900、902、又は904)との間で任意の方法で分割される。他の例では、プロセス1800のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で分割される。したがって、プロセス1800の一部は、クライアント-サーバシステムの特定のデバイスによって実行されるように本明細書では説明されているが、プロセス1800は、そのように限定されないことが理解されよう。他の実施例では、プロセス1800は、クライアントデバイス(例えば、ユーザデバイス104)のみを使用して、又は複数のクライアントデバイスのみを使用して実行される。プロセス1800では、いくつかのブロックが任意選択的に組み合わせられ、いくつかのブロックの順序が任意選択的に変更され、いくつかのブロックが任意選択的に省略される。一部の実施例では、プロセス1800と組み合わせて追加のステップが実行されることができる。
一般に、プロセス1800は、上述した図10A~図10Vを使用して例示される。しかしながら、上述した他の図は、プロセス1800に等しく適用可能であり得ることを理解されたい。
ブロック1801において、デジタルアシスタントユーザインタフェース(例えば、図10Aのユーザインタフェース803)が、ユーザインタフェース(例えば、図10Aのユーザインタフェース1001)上に表示される。デジタルアシスタントユーザインタフェースは、ディスプレイの第1の部分(例えば、図10Aのインジケータ804)に表示されるデジタルアシスタントインジケータと、ディスプレイの第2の部分に表示される応答アフォーダンス(例えば、図10Aの応答アフォーダンス1002)とを含む。
ブロック1802において、ユーザインタフェース上にデジタルアシスタントユーザインタフェースを表示している間に、ディスプレイの第3の部分の選択に対応するユーザ入力(例えば、図10Bの入力1003又は図10Iの入力1015)が受信される。第3の部分は、ユーザインタフェースの一部を表示する。一部の実施例では、ユーザインタフェースは、デジタルアシスタントユーザインタフェースとは異なる。
ブロック1803において、ユーザ入力が第1の種類の入力(例えば、図10Bの入力1003)に対応するという判定に従って、デジタルアシスタントインジケータ及び応答アフォーダンスが表示されることを停止する(例えば、図10C)。一部の実施例では、第1の種類の入力は、タップジェスチャを含む。一部の実施例では、ブロック1804において、デジタルアシスタントインジケータ及び応答アフォーダンスを表示することを停止することは、デジタルアシスタントインジケータの表示を、ディスプレイの第1の部分でユーザインタフェースの第1の部分の表示に置き換えることを含む。一部の実施例では、ブロック1805において、デジタルアシスタントインジケータ及び応答アフォーダンスを表示することを停止することは、応答アフォーダンスの表示をディスプレイの第2の部分でユーザインタフェースの第2の部分の表示に置き換えることを含む。
一部の実施例では、ユーザ入力は、ディスプレイの第3の部分に表示される選択可能要素(例えば、図10Eの選択可能要素1006又は図10Gの選択可能要素1011)の選択に対応する。一部の実施例では、ブロック1806において、ユーザ入力が第1の種類の入力に対応するという判定に従って、選択可能要素に対応するユーザインタフェース(例えば、図10Fのユーザインタフェース1007又は図10Hのユーザインタフェース1012)が表示される。一部の実施例では、ブロック1807において、選択可能要素に対応するユーザインタフェースを表示することは、ユーザインタフェースの部分の表示、応答アフォーダンスの表示、及び選択可能要素に対応するユーザインタフェースの表示でデジタルアシスタントインジケータの表示を置き換えることを含む。
一部の実施例では、選択可能要素は、リンク(例えば、図10Gのリンク1011)であり、選択可能要素に対応するユーザインタフェースは、リンクに対応するユーザインタフェース(図10Hのユーザインタフェース1012)である。一部の実施例では、ユーザインタフェースは、ホーム画面ユーザインタフェース(例えば、図10Eのユーザインタフェース1001)であり、選択可能要素は、ホーム画面ユーザインタフェースのアプリケーションアフォーダンス(例えば、図10Eのアプリケーションアフォーダンス1006)であり、選択可能要素に対応するユーザインタフェースは、アプリケーションアフォーダンスに対応するユーザインタフェース(例えば、図10Fのユーザインタフェース1007)である。
一部の実施例では、ブロック1808において、ユーザ入力が第1の種類の入力とは異なる第2の種類の入力(例えば、図10Iの入力1015)に対応するという判定に従って、ユーザインタフェースの表示は、第2の部分に応答アフォーダンスを表示している間に、ユーザ入力に従って第3の部分で更新される(例えば、図10J)。一部の実施例では、第2の種類の入力は、ドラッグジェスチャを含む。一部の実施例では、ブロック1809において、第3の部分でユーザインタフェースの表示を更新することは、ユーザインタフェースのコンテンツをスクロールすることを含む(例えば、図10I~図10J及び図10K~図10L)。一部の実施例では、ブロック1810において、第3の部分でユーザインタフェースの表示を更新することは、デジタルアシスタントインジケータを第1の部分に表示している間に実行される(例えば、図10I~図10J及び図10K~図10L)。一部の実施例では、第3の部分でユーザインタフェースの表示を更新することは、デジタルアシスタントユーザインタフェースに対応するデジタルアシスタントがリスニング状態にあるという判定に従って更に実行される。
一部の実施例では、ブロック1811において、ユーザインタフェース上にデジタルアシスタントユーザインタフェースを表示している間に、第2のユーザ入力(例えば、図10Mの入力1019又は図10Oの入力1023)が受信される。一部の実施例では、ブロック1812において、第2のユーザ入力が第3の種類の入力に対応するという判定に従って、応答アフォーダンス及びデジタルアシスタントインジケータが表示されることを停止する(例えば、図10M~図10N又は図10O~図10P)。一部の実施例では、ユーザインタフェースは、アプリケーション固有のユーザインタフェース(例えば、図10Oのユーザインタフェース1022)である。一部の実施例では、ブロック1813において、第2のユーザ入力が第3の種類の入力に対応するという判定に従って、ホーム画面ユーザインタフェース(例えば、図10Pのユーザインタフェース1001)が表示される。
一部の実施例では、ブロック1814において、ユーザインタフェース上にデジタルアシスタントユーザインタフェースを表示している間に、応答アフォーダンスの選択に対応する第3のユーザ入力(例えば、図10Qの入力1026)が受信される。一部の実施例では、ブロック1815において、第3のユーザ入力を受信したことに応答して、応答アフォーダンス及びデジタルアシスタントインジケータが表示されることを停止する(例えば、図10R)。
図18A~図18Bを参照した上述した動作は、図1~図4、図6A~図6B、図7A~図7C、及び図10A~図10Vに示す構成要素によって任意選択的に実装される。例えば、プロセス1800の動作は、デバイス800によって実装されてもよい。図1~図4、図6A~図6B、及び図7A~図7Cに示される構成要素に基づいて、どのように他のプロセスが実装されるかは、当業者にとって明らかであろう。
図18A~図18Bに関して上述したプロセス1800の詳細はまた、後述するプロセス1900と同様に適用可能であることに留意されたい。例えば、プロセス1900は、任意選択的に、上述したプロセス1800の特性のうちの1つ以上を含む。例えば、ユーザは、(プロセス1800に関して論じたように)デジタルアシスタントユーザインタフェースと相互作用するために1つ以上の入力を提供することができ、デジタルアシスタントは、プロセス1900に関して以下で論じられる選択されたデジタルアシスタント応答モードに従って応答を提示する。簡潔にするために、これらの詳細は、以下で繰り返さない。
8.デジタルアシスタント応答モードを選択するためのプロセス
図19A~図19Eは、様々な実施例による、デジタルアシスタント応答モードを動作させるためのプロセス1900を示す。プロセス1900は、例えば、デジタルアシスタントを実装する1つ以上の電子デバイスを使用して実行される。一部の実施例では、プロセス1900は、クライアント-サーバシステム(例えば、システム100)を使用して実行され、プロセス1900のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイス(例えば、デバイス800、900、902、又は904)との間で任意の方法で分割される。他の実施例では、プロセス1900のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で分割される。したがって、プロセス1900の一部は、クライアント-サーバシステムの特定のデバイスによって実行されるように本明細書では説明されているが、プロセス1900は、そのように限定されないことが理解されよう。他の実施例では、プロセス1900は、クライアントデバイス(例えば、ユーザデバイス104)のみを使用して、又は複数のクライアントデバイスのみを使用して実行される。プロセス1900では、いくつかのブロックが任意選択的に組み合わせられ、いくつかのブロックの順序が任意選択的に変更され、いくつかのブロックが任意選択的に省略される。一部の実施例では、プロセス1900と組み合わせて追加のステップが実行されることができる。
一般に、プロセス1900は、上述した図11~図16を使用して例示される。しかしながら、上述した他の図は、プロセス1900に等しく適用可能であり得ることを理解されたい。
ブロック1901において、自然言語入力が(例えば、デバイス800によって)受信される。
ブロック1902において、デジタルアシスタントが(例えば、デバイス800によって)開始される。
ブロック1903において、デジタルアシスタントを開始することに従って、自然言語入力に応答する応答パッケージが(例えば、モジュール1102によって)取得される。一部の実施例では、応答パッケージは、デジタルアシスタント応答アフォーダンスに関連付けられた第1のテキストと、デジタルアシスタント応答アフォーダンスに関連付けられた第2のテキストとを含む。一部の実施例では、第2のテキストは、第1のテキストよりも少ない単語を有する。
ブロック1904において、自然言語入力を受信した後、デジタルアシスタントの第1の応答モードは、(例えば、モジュール1104によって)電子デバイスに関連付けられたコンテキスト情報に基づいて、複数のデジタルアシスタント応答モードから選択される。一部の実施例では、複数のデジタルアシスタント応答モードは、サイレント応答モード、混合応答モード、及び音声応答モード(例えば、図12)を含む。一部の実施例では、デジタルアシスタントの第1の応答モードを選択することは、応答パッケージを取得した後に実行される。一部の実施例では、ブロック1905において、第1の応答モードを選択することは、第2のテキストを表す音声出力を提供することなく第2のテキストを表示するか、又は第2のテキストを表示することなく第2のテキストを表す音声出力を提供するかどうかを判定することを含む。一部の実施例では、ブロック1906において、第1の応答モードを選択することは、第1のテキストを表す音声出力を提供するかどうかを判定することを含む。
ブロック1907において、第1の応答モードを選択したことに応答して、応答パッケージは、(例えば、フォーマットモジュール1106を使用して)第1の応答モードに従ってデジタルアシスタントによって提示される。
一部の実施例では、第1の応答モードは、サイレント応答モードであり、ブロック1908に示すように、デジタルアシスタントによって第1の応答モードに従って応答パッケージを提示することは、デジタルアシスタント応答アフォーダンスを表示することと、第2のテキストを表す第2の音声出力を提供することなく第2のテキストを表示することと、を含む。
一部の実施例では、コンテキスト情報は、ブロック1909に示すように、デジタルアシスタント音声フィードバック設定を含み、サイレント応答モードを選択することは、デジタルアシスタント音声フィードバック設定が音声フィードバックを提供しないことを判定することに基づく。
一部の実施例では、コンテキスト情報は、デジタルアシスタントを開始するための電子デバイスの物理的接触の検出を含み、サイレント応答モードを選択することは、ブロック1910に示すように、物理的接触の検出に基づく。
一部の実施例では、コンテキスト情報は、ブロック1911に示すように、電子デバイスがロック状態にあるかどうかを含み、サイレント応答モードを選択することは、電子デバイスがロック状態にないと判定することに基づく。
一部の実施例では、コンテキスト情報は、デジタルアシスタントを開始する前に電子デバイスのディスプレイが表示されるかどうかを含み、サイレント応答モードを選択することは、ブロック1912に示すように、ディスプレイがデジタルアシスタントを開始する前に表示されたことを判定することに基づく。
一部の実施例では、コンテキスト情報は、ブロック1913に示すように、サイレント応答モードを選択する前に、所定の期間内に電子デバイス上で実行されるタッチの検出を含み、サイレント応答モードを選択することは、タッチの検出に基づく。
一部の実施例では、コンテキスト情報は、ブロック1914に示すように、サイレント応答モードを選択し、サイレント応答モードを選択する前の第2の所定の期間内の電子デバイスの所定のジェスチャの検出を含み、サイレント応答モードの選択は、所定のジェスチャの検出に基づく。
一部の実施例では、第1の応答モードは混合応答モードであり、ブロック1915に示すように、デジタルアシスタントによって、第1の応答モードに従って応答パッケージを提示することは、デジタルアシスタント応答アフォーダンスを表示することと、第2のテキストを表示せずに第2のテキストを表す第2の音声出力を提供することと、を含む。
一部の実施例では、コンテキスト情報は、ブロック1916に示すように、デジタルアシスタント音声フィードバック設定を含み、混合応答モードを選択することは、デジタルアシスタント音声フィードバック設定が音声フィードバックを提供することを示すことに基づく。
一部の実施例では、コンテキスト情報は、ブロック1917に示すように、デジタルアシスタントを開始するための電子デバイスの物理的接触の検出を含み、混合応答モードを選択することは、物理的接触の検出に基づく。
一部の実施例では、コンテキスト情報は、ブロック1918に示すように、電子デバイスがロック状態にあるかどうかを含み、混合応答モードを選択することは、電子デバイスがロック状態にないと判定することに基づく。
一部の実施例では、コンテキスト情報は、デジタルアシスタントを開始する前に電子デバイスのディスプレイが表示されるかどうかを含み、混合応答モードを選択することは、ブロック1919に示すように、ディスプレイがデジタルアシスタントを開始する前に表示されたことを判定することに基づく。
一部の実施例では、コンテキスト情報は、ブロック1920に示すように、混合応答モードを選択する前に、所定の期間内に電子デバイス上で実行されるタッチの検出を含み、混合応答モードを選択することは、タッチの検出に基づく。
一部の実施例では、コンテキスト情報は、ブロック1921に示すように、混合応答モードを選択する前の第2の所定の期間内の電子デバイスの所定のジェスチャの検出を含み、混合応答モードの選択は、所定のジェスチャの検出に基づく。
一部の実施例では、第1の応答モードは音声応答モードであり、デジタルアシスタントによって、第1の応答モードに従って応答パッケージを提示することは、ブロック1922に示すように、第1のテキストを表す音声出力を提供することを含む。
一部の実施例では、コンテキスト情報は、電子デバイスが車両内にあることの判定を含み、音声応答モードを選択することは、ブロック1923に示するように、電子デバイスが車両内にあるという判定に基づく。
一部の実施例では、コンテキスト情報は、電子デバイスが外部音声出力デバイスに結合されるという判定を含み、音声応答モードを選択することは、ブロック1924に示すように、電子デバイスが外部音声出力デバイスに結合されているという判定に基づく。
一部の実施例では、コンテキスト情報は、デジタルアシスタントを開始するための音声入力の検出を含み、音声応答モードを選択することは、ブロック1925に示すように、音声入力の検出に基づく。
一部の実施例では、コンテキスト情報は、電子デバイスがロック状態にあるかどうかを含み、音声応答モードを選択することは、ブロック1926に示すように、電子デバイスがロック状態にあると判定することに基づく。
一部の実施例では、コンテキスト情報は、デジタルアシスタントを開始する前に電子デバイスのディスプレイが表示されるかどうかを含み、音声応答モードを選択することは、ブロック1927に示すように、電子デバイスのディスプレイがデジタルアシスタントを開始する前に表示されていないと判定することに基づく。
一部の実施例では、ブロック1928において、デジタルアシスタントによって応答パッケージを提示した後、応答パッケージの提示に応答する第2の自然言語入力が(例えば、デバイス800によって)受信される。
一部の実施例では、ブロック1929において、第2の自然言語入力に応答する第2の応答パッケージが(例えば、モジュール1102によって)取得される。
一部の実施例では、ブロック1930において、第2の自然言語発話入力を受信した後、デジタルアシスタントの第2の応答モードは、複数のデジタルアシスタント応答モードから(例えば、モジュール1104によって)選択され、第2の応答モードは、第1の応答モードとは異なる。
一部の実施例では、ブロック1931において、第2の応答モードを選択したことに応答して、第2の応答パッケージは、(例えば、モジュール1106を使用して)第2の応答モードに従ってデジタルアシスタントによって提示される(例えば、図16)。
図19A~図19Eを参照した上述した動作は、図1~図4、図6A~図6B、図7A~図7C、図11、及び図12に示す構成要素によって任意選択的に実装される。例えば、プロセス1900の動作は、システム1100を実装するデバイス800によって実装されてもよい。図1~図4、図6A~図6B、及び図7A~図7Cに示される構成要素に基づいて、どのように他のプロセスが実装されるかは、当業者にとって明らかであろう。
一部の実装形態によれば、コンピュータ可読記憶媒体(例えば、非一時的コンピュータ可読記憶媒体)が提供され、このコンピュータ可読記憶媒体は、電子デバイスの1つ以上のプロセッサによって実行される1つ以上のプログラムを記憶し、それら1つ以上のプログラムは、本明細書で説明される方法又はプロセスのうちのいずれかを実行する命令を含む。
一部の実装形態によれば、本明細書で説明される方法又はプロセスのうちのいずれかを実行する手段を備える、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
一部の実装形態によれば、本明細書で説明される方法又はプロセスのうちのいずれかを実行するように構成された処理ユニットを備える、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
一部の実装形態によれば、1つ以上のプロセッサと、その1つ以上のプロセッサによって実行するための1つ以上のプログラムを記憶しているメモリとを備え、それら1つ以上のプログラムが、本明細書で説明される方法又はプロセスのうちのいずれかを実行する命令を含む、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。本技術の原理、及びそれらの実際の用途を最もよく説明するために、実施形態が選択及び記載されている。それにより、他の当業者は、意図された具体的な用途に適するような様々な修正を用いて、本技術及び様々な実施形態を最も良好に利用することが可能となる。
添付図面を参照して、本開示及び例を十分に説明してきたが、様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるような、本開示及び例の範囲内に含まれるものとして理解されたい。
上述したように、本技術の一態様は、デジタルアシスタントがユーザ要求に対する応答を提示するフォーマットを改善するために様々なソースから利用可能なデータを収集して使用することである。本開示は、いくつかの場合には、この収集されたデータが、特定の人を一意に特定する個人情報データ、又は特定の人に連絡する若しくはその所在を突き止めるために使用できる個人情報データを含み得ることを考察する。そのような個人情報データとしては、人口統計データ、位置ベースのデータ、電話番号、電子メールアドレス、ツイッターID、自宅の住所、ユーザの健康若しくはフィットネスのレベルに関するデータ若しくは記録(例えば、バイタルサイン測定値、投薬情報、運動情報)、誕生日、又は任意の他の識別情報若しくは個人情報を挙げることができる。
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。例えば、個人情報データが使用されて、ユーザの現在のコンテキストに適切なデジタルアシスタントの応答を適応させることができる。更に、ユーザに利益をもたらす個人情報データに関する他の使用も本開示によって意図されている。例えば、健康データ及びフィットネスデータは、ユーザの全般的なウェルネスについての洞察を提供するために使用することができ、又は、ウェルネスの目標を追求する技術を使用している個人への、積極的なフィードバックとして使用することもできる。
本開示は、そのような個人情報データの収集、分析、開示、伝送、記憶、又は他の使用に関与するエンティティが、確固たるプライバシーポリシー及び/又はプライバシー慣行を遵守するものとなることを想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。そのようなポリシーは、ユーザによって容易にアクセス可能とするべきであり、データの収集及び/又は使用が変化するにつれて更新されるべきである。ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いては、共有又は販売されるべきではない。更には、そのような収集/共有は、ユーザに告知して同意を得た後に実施されるべきである。その上、そのようなエンティティは、そのような個人情報データへのアクセスを保護及び安全化し、個人情報データへのアクセス権を有する他者が、それらのプライバシーポリシー及び手順を忠実に守ることを保証するための、あらゆる必要な措置を講じることを考慮するべきである。更に、そのようなエンティティは、広く受け入れられているプライバシーポリシー及び慣行に対する自身の遵守を証明するために、サードパーティによる評価を自らが受けることができる。更には、ポリシー及び慣行は、収集及び/又はアクセスされる具体的な個人情報データのタイプに適合されるべきであり、また、管轄権固有の考慮事項を含めた、適用可能な法令及び規格に適合されるべきである。例えば、アメリカ合衆国では、特定の健康データの収集又はそれへのアクセスは、医療保険の相互運用性と説明責任に関する法律(HIPAA)等の、連邦法及び/又は州法によって管理されてもよく、その一方で、他国における健康データは、他の規制及びポリシーの対象となり得るものであり、それに従って対処されるべきである。それゆえ、各国において、異なる個人データのタイプに関して異なるプライバシー慣行が保たれるべきである。
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び/又はソフトウェア要素が提供され得ることを意図している。例えば、デジタルアシスタント応答モードを選択するためにコンテキストデータを収集する場合、本技術は、ユーザが、サービスの登録中又はその後いつでも個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするように構成されることができる。別の実施例では、ユーザは、デジタルアシスタント応答モードの選択のためにデバイスがコンテキストデータを収集することを可能にしないように選択することができる。更に別の実施例では、ユーザは、コンテキストデータが維持される時間の長さを制限することを選択することができる。「オプトイン」及び「オプトアウト」の選択肢を提供することに加えて、本開示は、個人情報のアクセス又は使用に関する通知を提供することを意図している。例えば、ユーザの個人情報データにアクセスすることとなるアプリのダウンロード時にユーザに通知され、その後、個人情報データがアプリによってアクセスされる直前に再びユーザに注意してもよい。
更には、本開示の意図は、個人情報データを、非意図的若しくは無許可アクセス又は使用の危険性を最小限に抑える方法で、管理及び処理するべきであるという点である。データの収集を制限し、データがもはや必要とされなくなると削除することにより、リスクを最小化することができる。加えて、かつ、特定の健康関連アプリケーションにおいて適用可能な場合、ユーザのプライバシーを保護するために、データの匿名化を使用することができる。匿名化は、必要に応じて、特定の識別子(例えば、生年月日等)を削除すること、記憶されたデータの量又は特異性を制御すること(例えば、位置データを、住所レベルではなく都市レベルで収集する)、データがどのように記憶されるかを制御すること(例えば、ユーザ間でデータを集約する)、及び/又は他の方法によって、容易にすることができる。
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものであるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することも可能であることを想到する。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部分が欠如することにより、動作不可能にされるものではない。例えば、デバイスは、コンテキストデータが利用できない場合(例えば、ユーザがデジタルアシスタント応答モードを選択するためにコンテキストデータの収集を禁止する場合)、デフォルトのデジタルアシスタント応答モードを選択してもよく、ユーザに関連付けられたデバイスによって要求されているコンテンツ、デバイスに利用可能な他の非個人情報(例えば、デバイスがロック状態にあるかどうか)、又は公的に利用可能な情報など、非個人情報データ又は最低限の個人情報に基づいてデジタルアシスタント応答モードを選択してもよい。