(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,ST,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DJ,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JO,JP,KE,KG,KH,KN,KP,KR,KW,KZ,LA,LC,LK,LR,LS,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT
前記第2の自然言語音声入力を受信することに応答して、前記第1のメディアアイテムが提供される前記方法を調整することを更に含む、請求項1から5のいずれか一項に記載の方法。
前記第2の自然言語音声入力が前記メディアの要求を絞り込むというユーザの意図に対応しているかどうかを判定することは、1つ以上の所定のフレーズ及び前記1つ以上のフレーズと等価の自然言語に基づいて、前記メディアの要求を絞り込むというユーザの意図の表現を導き出すことを含む、請求項1から6のいずれか一項に記載の方法。
前記第2の自然言語音声入力に基づいて、前記メディアの要求を絞り込むための1つ以上のパラメータを取得することを更に含む、請求項1から7のいずれか一項に記載の方法。
前記第2の自然言語音声入力が前記メディアの要求を絞り込むというユーザの意図に対応しているかどうかを判定することは、コンテキスト情報に基づいて、前記メディアの要求を絞り込むというユーザの意図の表現を導き出すことを含む、請求項8に記載の方法。
前記メディアの要求を絞り込むための前記1つ以上のパラメータを取得することは、コンテキスト情報に基づいて前記1つ以上のパラメータを決定することを含む、請求項8から18のいずれか一項に記載の方法。
メディアアイテムのユーザ固有のコーパスから前記第2のメディアアイテムを取得することを更に含み、メディアアイテムの前記ユーザ固有のコーパスは、ユーザに関連付けられたデータに基づいて生成される、請求項1から26のいずれか一項に記載の方法。
前記第2の自然言語音声入力に関連付けられた音響情報に基づいて、メディアアイテムの前記ユーザ固有のコーパスを特定することを更に含む、請求項27に記載の方法。
メディアアイテムの前記ユーザ固有のコーパス内のメディアアイテムは、活動、雰囲気、場面、場所、時間、キュレータ、プレイリスト、1つ以上の以前のユーザ入力、又はこれらの任意の組み合わせを示すメタデータを含む、請求項27又は28に記載の方法。
前記第1のメディアアイテムは、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせである、請求項1から37のいずれか一項に記載の方法。
前記第2のメディアアイテムは、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせである、請求項1から37のいずれか一項に記載の方法。
前記電子デバイスは、コンピュータ、セットトップボックス、スピーカ、スマートウォッチ、電話、又はこれらの組み合わせである、請求項1から39のいずれか一項に記載の方法。
前記第2のメディアアイテムは、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの組み合わせを含む、請求項44から50のいずれか一項に記載の方法。
前記特定されたタスクに関連付けられた音声応答を示す音声出力を提供することは、前記1つ以上の結果のうちの結果の言葉による説明を示す音声出力を提供することを含み、
前記音声応答に対応するメディアアイテムを再生することは、前記結果に対応する音響効果を再生することを含む、請求項52に記載の方法。
前記音声出力が第1の音量で提供され、メディアアイテムの前記再生が、前記第1の音量とは異なる第2の音量で行われる、請求項41から53のいずれか一項に記載の方法。
前記電子デバイスは、コンピュータ、セットトップボックス、スピーカ、スマートウォッチ、電話、又はこれらの組み合わせである、請求項41から54のいずれか一項に記載の方法。
前記第2の音声入力が前記メディアの要求に対する非肯定応答を示しているかどうかを判定することは、前記第2の音声入力が拒否を示しているかどうかを判定することを含む、請求項58に記載の方法。
前記ユーザ入力の要求を示す前記オーディオ出力を提供した後に、前記メディアの要求に関する1つ以上のパラメータを示す音声入力を受信することを更に含む、請求項64に記載の方法。
前記1つ以上のパラメータに基づいて第3のメディアアイテムを取得することを更に含み、前記第3のメディアアイテムが前記第1のメディアアイテム及び前記第2のメディアアイテムとは異なる、請求項65に記載の方法。
前記第1のメディアアイテムが、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせである、請求項56から66のいずれか一項に記載の方法。
前記第2のメディアアイテムが、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせである、請求項56から67のいずれか一項に記載の方法。
前記電子デバイスが、コンピュータ、セットトップボックス、スピーカ、スマートウォッチ、電話、又はこれらの組み合わせである、請求項56から68のいずれか一項に記載の方法。
前記第2の電子デバイスに対応する情報を受信することは、前記第1の電子デバイスで、前記第2の電子デバイスから識別情報を受信することを含む、請求項71に記載の方法。
前記メディアアイテムは前記メディアアイテムの第1のセットの一部ではなく、前記メディアアイテムは前記メディアアイテムの第2のセットの一部である、請求項78に記載の方法。
前記複数のメディアアイテムを更新することは、前記メディアアイテムを前記複数のメディアアイテムから削除することを含む、請求項78から80のいずれか一項に記載の方法。
前記特定されたメディアアイテムは、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせである、請求項70から83のいずれか一項に記載の方法。
前記電子デバイスは、コンピュータ、セットトップボックス、スピーカ、スマートウォッチ、電話、又はこれらの組み合わせである、請求項70から84のいずれか一項に記載の方法。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは命令を含み、前記命令は、電子デバイスの1つ以上のプロセッサによって実行されるときに、前記電子デバイスに対して、
メディアの要求を示す第1の自然言語音声入力を受信することであって、前記第1の自然言語音声入力は、第1の検索パラメータを含む、ことと、
デジタルアシスタントによって、第1のメディアアイテムを提供することであって、前記第1の検索パラメータに基づいて前記第1のメディアアイテムが特定される、ことと、
前記第1のメディアアイテムを提供しながら、第2の自然言語音声入力を受信することと、
前記第2の自然言語音声入力が、前記メディアの要求を絞り込むというユーザの意図に対応するかどうかを判定することと、
前記第2の自然言語音声入力が、前記メディアの要求を絞り込むというユーザの意図に対応するという決定に従って、
前記第1のパラメータ及び前記第2の自然言語音声入力に基づいて、前記第1のメディアアイテムとは異なる第2のメディアアイテムを特定することと、
前記デジタルアシスタントによって、前記第2のメディアアイテムを提供することとを実行させる、非一時的コンピュータ可読記憶媒体。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは命令を含み、前記命令は、電子デバイスの1つ以上のプロセッサによって実行されるときに、前記電子デバイスに対して、
自然言語音声入力を受信することと、
デジタルアシスタントによって、自然言語音声入力に基づいてタスクを特定することと、
前記デジタルアシスタントによって、前記特定されたタスクに関連付けられた音声応答を示す音声出力を提供することと、
音声応答を示す前記音声出力を提供しながら、
前記デジタルアシスタントによって、前記音声応答に対応するメディアアイテムを再生することとを実行させる、非一時的コンピュータ可読記憶媒体。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは命令を含み、前記命令は、電子デバイスの1つ以上のプロセッサによって実行されるときに、前記電子デバイスに対して、
メディアの要求を示す音声入力を受信することと、
前記音声入力を受信することに応答して、デジタルアシスタントによって、第1のメディアアイテムの提案を示すオーディオ出力を提供することと、
前記デジタルアシスタントによって、前記メディアの要求に対応する連続する非肯定応答の数が閾値を満たしているかどうかを判定することと、
前記連続する非肯定応答の数が前記閾値を満たしていないという決定に従って、
前記デジタルアシスタントによって、前記第1のメディアアイテムとは異なる第2のメディアアイテムの提案を示すオーディオ出力を提供することと、
前記連続する非肯定応答の数が前記閾値を満たしているという決定に従って、
第2のメディアアイテムの提案を示すオーディオ出力を提供することを止めることと、
前記デジタルアシスタントによって、ユーザ入力の要求を示すオーディオ出力を提供することとを実行させる、非一時的コンピュータ可読記憶媒体。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは命令を含み、前記命令は、電子デバイスの1つ以上のプロセッサによって実行されるときに、前記電子デバイスに対して、
メディアの要求を示す音声入力を受信することと、
デジタルアシスタントによって、前記電子デバイスに対する複数のユーザの物理的存在を検出することと、
前記複数のユーザの前記物理的存在を検出することに応答して、前記複数のユーザに対応する複数の嗜好プロファイルを取得することと、
前記デジタルアシスタントによって、前記複数の嗜好プロファイルに基づいて、マージされた嗜好プロファイルを提供することと、
前記デジタルアシスタントによって、前記マージされた嗜好プロファイルに基づいてメディアアイテムを特定することと、
前記デジタルアシスタントによって、前記特定されたメディアアイテムを含むオーディオ出力を提供することとを実行させる、非一時的コンピュータ可読記憶媒体。
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは命令を含み、前記命令は電子デバイスの1つ以上のプロセッサによって実行されるときに、前記電子デバイスに対して、請求項1から85のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【発明を実施するための形態】
【0047】
以下の実施例の説明では、実施することが可能な特定の実施例が例示として示される、添付図面を参照する。様々な実施例の範囲から逸脱することなく、他の実施例を使用することができ、構造上の変更を実施することができることを理解されたい。
【0048】
前述したように、デジタルアシスタントは、表示能力が制限されているか、又は表示能力がない電子デバイス上に実装されることがある。したがって、主に聴覚に基づくインターフェースを提供する電子デバイス(又は、電子デバイス上のデジタルアシスタント)が必要である。更に、デジタルアシスタントとユーザとの間での自然で直感的、かつリッチな対話を提供するための、主に聴覚に基づくインターフェースが必要である。そのような技法は、デバイスの操作性を向上させ、(例えば、ユーザが提示されたコンテンツを素早く取得して理解できるようにすることによって)デジタルアシスタントとの対話をより効率的にすることができ、加えて、ユーザがデバイスを更に素早くかつ効率的に使用できるようにすることによって、デバイスの電力使用を削減し、バッテリ寿命を改善する。
【0049】
以下の説明では、様々な要素を説明するために「第1」、「第2」等の用語を使用するが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施例の範囲から逸脱することなく、第1の入力は第2の入力と称することができ、同様に、第2の入力は第1の入力と称し得る。第1の入力及び第2の入力は双方とも入力であり得、いくつかの場合では、個別の、異なる入力である。
【0050】
本明細書で説明される様々な実施例の説明で使用される用語は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明及び添付の特許請求の範囲で使用されるとき、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用されるときに、用語「及び/又は」は、関連する列挙された項目のうちの1つ以上の任意のすべての可能な組み合わせを指し、かつこれを含むことをもまた理解されたい。用語「includes(含む)、「including(含む)」、「comprises(含む)」及び/又は「comprising(含む)」は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群、の存在又は追加を除外しないことが更に理解されるであろう。
【0051】
用語「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.システム及び環境
【0052】
図1は、様々な実施例に係る、システム100のブロック図を示す。いくつかの実施例では、システム100はデジタルアシスタントを実装し得る。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、口頭及び/又はテキスト形式の自然言語入力を解釈してユーザ意図を推測し、推測されたユーザ意図に基づきアクションを実行する任意の情報処理システムを指す。例えば、推測されたユーザの意図を実行するために、システムは、以下の1つ以上、すなわち、推測されたユーザの意図を実現するために設計されたステップ及びパラメータを有するタスクフローを特定すること、推測されたユーザの意図からの特定の要件をタスクフローに入力すること、プログラム、方法、サービス、API等を呼び出すことによりタスクフローを実行すること、並びに可聴(例えば、スピーチ)形式及び/又は視覚形式でユーザへの出力応答を生成すること、を実行する。
【0053】
具体的には、デジタルアシスタントは、自然言語命令、要求、陳述、叙述、及び/又は照会の形で少なくとも部分的にユーザ要求を受け入れることができる。通例、ユーザ要求はデジタルアシスタントによる情報回答又はタスクの実行のいずれかを求める。ユーザ要求への満足な応答は、要求された情報回答の提供、要求されたタスクの実行、又はその2つの組み合わせを含む。例えば、ユーザはデジタルアシスタントに「私は今どこにいますか?」等の質問をする。ユーザの現在の場所に基づき、デジタルアシスタントは、「あなたはセントラルパーク内の西門の近くにいます」と回答する。ユーザは、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティに招待してください」のように、タスク実行を要求する。それに応じて、デジタルアシスタントは、「はい、ただ今」と述べることによって要求を受け取ったことを通知し、次に、ユーザの代わりに、ユーザの電子アドレス帳に載っているユーザの友人の各々に適切なカレンダ招待状を送信してもよい。要求されたタスクの実行中、デジタルアシスタントは、長時間にわたって情報を複数回交換する連続的なダイアログにおいて、ユーザと対話する場合がある。情報又は種々のタスクの実行を要求するためにデジタルアシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントはまた、他の視覚又はオーディオ形式の応答を、例えば、テキスト、警報、音楽、ビデオ、アニメーション等として、提供する。
【0054】
図1に示されているように、いくつかの実施例では、デジタルアシスタントはクライアント−サーバモデルに従って実装される。デジタルアシスタントは、ユーザデバイス104上で実行されるクライアント側部分102(以後、「DAクライアント102」)、及びサーバシステム108上で実行されるサーバ側部分106(以後「DAサーバ106」)を含む。DAクライアント102は1つ以上のネットワーク110を通じてDAサーバ106と通信する。DAクライアント102は、ユーザ対応入力及び出力処理、並びにDAサーバ106との通信等のクライアント側機能を提供する。DAサーバ106は、それぞれのユーザデバイス104上に各々常駐する任意の数のDAクライアント102のためのサーバ側機能を提供する。
【0055】
いくつかの実施例では、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はこのような通信を促進する。
【0056】
ユーザデバイス104は、任意の好適な電子デバイスであり得る。いくつかの実施例では、ユーザデバイスは、ポータブル多機能デバイス(例えば、図2Aを参照して以下に説明するデバイス200)、多機能デバイス(例えば、図4を参照して以下に説明するデバイス400)、又はパーソナル電子デバイス(例えば、図6A〜図6Bを参照して以下に説明するデバイス600)である。ポータブル多機能デバイスは、例えば、他の機能、例えば、PDA及び/又はミュージックプレーヤ機能、も含む携帯電話である。ポータブル多機能デバイスの具体的な実施例は、Apple Inc.(Cupertino,California)による、iPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含む。ポータブル多機能デバイスの他の実施例は、限定を伴わずに、ラップトップコンピュータ又はタブレットコンピュータを含む。更に、いくつかの実施例では、ユーザデバイス104は、非ポータブル多機能デバイスである。特に、ユーザデバイス104は、デスクトップコンピュータ、ゲームコンソール、テレビ、又はテレビセットトップボックスである。いくつかの実施例では、ユーザデバイス104は、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を含む。更に、ユーザデバイス104は、1つ以上の他の物理ユーザインターフェースデバイス、例えば、物理キーボード、マウス、及び/又はジョイスティック、を任意選択的に含む。電子デバイスの様々な実施例、例えば、多機能デバイス、を以下に詳細に説明する。
【0057】
通信ネットワーク(単数又は複数)110の例としては、ローカルエリアネットワーク(Local Area Networks、LAN)及び、例えば、インターネットのようなワイドエリアネットワーク(Wide Area Networks、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(登録商標)、又は任意の他の好適な通信プロトコル等の、様々な有線又は無線プロトコルを含む、任意の周知のネットワークプロトコルを用いて実装される。
【0058】
サーバシステム108は、1つ以上のスタンドアロンデータ処理装置、又はコンピュータの分散型ネットワーク上に実装される。いくつかの実施例では、サーバシステム108は、また、様々な仮想デバイス及び/又はサードパーティサービスプロバイダ(例えば、サードパーティクラウドサービスプロバイダ)のサービスを利用して、サーバシステム108の基本的なコンピューティングリソース及び/又はインフラストラクチャリソースを提供する。
【0059】
いくつかの実施例では、ユーザデバイス104は、DAサーバ106と、第2のユーザデバイス122を介して通信する。第2のユーザデバイス122は、ユーザデバイス104と同様又は同一である。例えば、第2のユーザデバイス122は、図2A、図4、及び図6A〜図6Bを参照して以下に説明する、デバイス200、デバイス400、又はデバイス600と同様である。ユーザデバイス104は、第2のユーザデバイス122に、直接通信接続、例えば、Bluetooth(登録商標)、NFC、BTLE等を介して、又は、有線ネットワーク若しくは無線ネットワーク、例えば、ローカルWi−Fiネットワーク、を介して通信可能に連結するよう構成される。いくつかの実施例では、第2のユーザデバイス122は、ユーザデバイス104とDAサーバ106との間のプロキシとして動作するよう構成される。例えば、ユーザデバイス104のDAクライアント102は、情報(例えば、ユーザデバイス104にて受信したユーザの要求)を、DAサーバ106に、第2のユーザデバイス122を介して送信するよう構成される。DAサーバ106は情報を処理し、関連データ(例えば、ユーザの要求に応じてのデータコンテンツ)を、ユーザデバイス104に、第2のユーザデバイス122を介して返す。
【0060】
いくつかの実施例では、ユーザデバイス104は、データに対する省略された要求を、第2のユーザデバイス122に通信し、ユーザデバイス104から送信する情報量を減らすよう構成される。第2のユーザデバイス122は、追加情報を決定し、省略された要求に加えて完全な要求を生成し、DAサーバ106に送信するよう構成される。このシステムアーキテクチャは、限られた通信能力及び/又は限られたバッテリ電力を有するユーザデバイス104(例えば、携帯時計又は同様のコンパクト電子デバイス)を、DAサーバ106が提供するサービスに、より強い通信能力及び/又はより大きなバッテリ電力を有する第2のユーザデバイス122(例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータ等)を、DAサーバ106へのプロキシとして使用して、好適にアクセス可能とし得る。図1では2つのユーザデバイス104及びユーザデバイス122のみが示されるが、システム100は、いくつかの実施例では、DAサーバシステム106と通信するよう、このプロキシ構成に構成された任意の数及び種類のユーザデバイスを含むということを理解されたい。
【0061】
図1に示されるデジタルアシスタントはクライアント側部分(例えば、DAクライアント102)及びサーバ側部分(例えば、DAサーバ106)の両方を含むが、いくつかの実施例では、デジタルアシスタントの機能は、ユーザデバイス上にインストールされる独立型アプリケーションとして実装される。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能の分配は実装によって異なり得る。例えば、いくつかの実施例では、DAクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントのすべての他の機能をバックエンドサーバに委ねるシンクライアントである。
2.電子デバイス
【0062】
ここで、デジタルアシスタントのクライアント側部分を実装するための電子デバイスの実施形態に注目する。図2Aは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム212を備えるポータブル多機能デバイス200を示すブロック図である。タッチ感知ディスプレイ212は、便宜上「タッチスクリーン」と呼ばれる場合があり、「タッチ感知ディスプレイシステム」として既知である場合又は呼ばれる場合もある。デバイス200は、メモリ202(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ222、1つ以上の処理ユニット(CPU)220、周辺機器インターフェース218、RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、入出力(I/O)サブシステム206、他の入力制御デバイス216、及び外部ポート224を含む。デバイス200は、1つ以上の光センサ264を任意選択的に含む。デバイス200は、デバイス200(例えば、デバイス200のタッチ感知ディスプレイシステム212等のタッチ感知面)上の接触の強度を検出するための、1つ以上の接触強度センサ265を任意選択的に含む。デバイス200は、デバイス200上に触知出力を生成する(例えば、デバイス200のタッチ感知ディスプレイシステム212又はデバイス400のタッチパッド455等の、タッチ感知面上に触知出力を生成する)ための、1つ以上の触知出力生成器267を、任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン203を介して任意選択的に通信する。
【0063】
本明細書及び特許請求の範囲で使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指接触)の力若しくは圧力(単位面積当りの力)、又はタッチ感知面上の接触の力若しくは圧力の代替物(代用物)を指す。接触の強度は、少なくとも4つの異なる値を含み、より典型的には、何百もの(例えば、少なくとも256個の)異なる値を含む、値範囲を有する。接触の強度は任意選択的に、様々な手法、及び様々なセンサ又はセンサの組み合わせを使用して判定(又は、測定)される。例えば、タッチ感知面の下に又はこれに隣接する1つ以上の力センサは任意選択的に、タッチ感知面上の様々な点における力を測定するために使用される。いくつかの実装において、複数の力センサの力測定値を組み合わせて(例えば、加重平均)、接触力の推定値を判定する。同様に、スタイラスの感圧性先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を判定する。あるいは、タッチ感知面上で検出される接触領域のサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変化が、タッチ感知面上の接触の力又は圧力の代替物として、任意選択的に用いられる。いくつかの実装では、接触の力又は圧力の代替的測定値は、強度閾値を超えているか否かを判定するために直接に用いられる(例えば、強度閾値は、代替的測定値に対応する単位で記述される)。いくつかの実装では、接触の力又は圧力の代替的測定値は、推定される力又は圧力に変換され、この推定される力又は圧力を用いて、強度閾値を超えているか否かを判定する(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するための、及び/又は、ユーザ入力を(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタン等の物理的/機械的制御部を介して)受け取るための、面積が制限されている、低減されたサイズのデバイス上で、他の場合であればユーザによってアクセスすることが不可能であり得る、追加的なデバイス機能への、ユーザのアクセスが可能となる。
【0064】
本明細書及び特許請求の範囲で使用されるとき、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、デバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」等の触感を感じる。別の実施例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるものではあるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
【0065】
デバイス200は、ポータブル多機能デバイスの一実施例にすぎず、デバイス200は任意選択的に、示されているものよりも多くの構成要素若しくは少ない構成要素を有し、任意選択的に、2つ以上の構成要素を組み合わせ、又は任意選択的に、構成要素の異なる構成若しくは配置を有することを理解されたい。図2Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの双方の組み合わせで実装される。
【0066】
メモリ202は、1つ以上のコンピュータ可読記憶媒体を含む。コンピュータ可読記憶媒体は、例えば、有形かつ非一時的である。メモリ202は高速ランダムアクセスメモリを含み、また、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイス等の、不揮発性メモリも含む。メモリコントローラ222は、デバイス200の他の構成要素によるメモリ202へのアクセスを制御する。
【0067】
いくつかの実施例では、メモリ202の非一時的コンピュータ可読記憶媒体は、(例えば、以下に説明するプロセスの態様を実行する)命令を、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、装置、若しくはデバイスから命令を取ってくることができ、それらの命令を実行する他のシステム等の、命令実行システム、装置、若しくはデバイスによる使用、又はそれと関連した使用のために、記憶するために用いられる。他の実施例では、(例えば、以下で説明するプロセスの態様を実行する)命令は、サーバシステム108の非一時的コンピュータ可読記憶媒体(図示せず)上に記憶されるか、又はメモリ202の非一時的コンピュータ可読記憶媒体とサーバシステム108の非一時的コンピュータ可読記憶媒体との間で分配される。
【0068】
周辺機器インターフェース218を使用して、デバイスの入力及び出力周辺機器を、CPU220及びメモリ202に連結する。1つ以上のプロセッサ220は、デバイス200のための様々な機能を実行し、データを処理するために、メモリ202に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させ、又は実行する。一部の実施形態では、周辺機器インターフェース218、CPU220、及びメモリコントローラ222は、チップ204等の単一チップ上に実装される。一部の他の実施形態では、それらは、別々のチップ上で実装される。
【0069】
RF(radio frequency)(無線周波数)回路208は、電磁信号とも呼ばれるRF信号を送受信する。RF回路208は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路208は任意選択的に、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(Subscriber Identity Module、SIM)カード、メモリ等を含むがこれらに限定されない、それらの機能を実行するための周知の回路を含む。RF回路208は任意選択的に、ワールドワイドウェブ(World Wide Web、WWW)とも称されるインターネット、イントラネット、並びに/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び/若しくはメトロポリタンエリアネットワーク(Metropolitan Area Network、MAN)等の無線ネットワーク等のネットワークと、他のデバイスと無線通信によって通信する。RF回路208は、近距離通信無線等による近距離無線通信(Near Field Communication、NFC)フィールドを検出するための周知の回路を任意選択的に含む。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用する。これらとしては、移動通信用のグローバルシステム(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+、2重セルHSPA(Dual−Cell HSPDA、DC−HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W−CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth(登録商標)、Bluetooth Low Energy(BTLE)、Wireless Fidelity(Wi−Fi)(例えば、IEEE802.11a、IEEE802.11b、IEEE802.11g、IEEE802.11n、及び/又はIEEE802.11ac)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi−MAX、電子メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/又はポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and Presence Leveraging Extensions、XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、及び/又はショートメッセージサービス(Short Message Service、SMS)、あるいは本文書の出願日現在までにまだ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコル、が挙げられるが、これらに限定されない。
【0070】
オーディオ回路210、スピーカ211、及びマイクロフォン213は、ユーザとデバイス200との間のオーディオインターフェースを提供する。オーディオ回路210は、周辺機器インターフェース218からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ211に送信する。スピーカ211は、電気信号を人間の可聴音波に変換する。音声回路210はまた、マイクロフォン213により音波から変換された電気信号を受信する。音声回路210は、電気信号を音声データに変換し、音声データを処理のために周辺機器インターフェース218に送信する。オーディオデータは、周辺機器インターフェース218によって、メモリ202及び/若しくはRF回路208から取得され、かつ/又はメモリ202及び/若しくはRF回路208に送信される。一部の実施形態において、オーディオ回路210はヘッドセットジャック(例えば、図3の312)も含む。ヘッドセットジャックは、オーディオ回路210と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の双方を有するヘッドセット等の、取り外し可能なオーディオ入出力周辺機器と、の間のインターフェースを提供する。
【0071】
I/Oサブシステム206は、周辺機器インターフェース218に、タッチスクリーン212及び他の入力制御デバイス216等のデバイス200の入出力周辺機器を接続する。I/Oサブシステム206は、任意選択的に、ディスプレイコントローラ256、光センサコントローラ258、強度センサコントローラ259、触覚フィードバックコントローラ261、及び他の入力又は制御デバイスのための1つ以上の入力コントローラ260を含む。1つ以上の入力コントローラ260は、他の入力制御デバイス216から/へ、電気信号を受信/送信する。他の入力制御デバイス216は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカーボタン等)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイール等を含む。一部の代替的実施形態では、入力コントローラ(単数又は複数)260は、任意選択的に、キーボード、赤外線ポート、USBポート、及びマウス等のポインタデバイスのうちのいずれかに接続される(又は、いずれにも接続されない)。1つ以上のボタン(例えば、図3の308)は、任意選択的に、スピーカ211及び/又はマイクロフォン213の音量調節のための、アップ/ダウンボタンを含む。1つ以上のボタンは、任意選択的に、プッシュボタン(例えば、図3の306)を含む。
【0072】
2005年12月23日に出願された、米国特許第7,657,849号である米国特許出願第11/322,549号、「Unlocking a Device by Performing Gestures on an Unlock Image」に記載されているように、プッシュボタンの素早い押し下げにより、タッチスクリーン212のロックを解除するか、又はデバイスのロックを解除するためにタッチスクリーン上のジェスチャを用いる処理を開始する。この特許は、その全体が本明細書において参照により組み込まれる。プッシュボタン(例えば、306)をより長く押し下げることにより、デバイス200の電源をオン又はオフする。ユーザは、1つ以上のボタンの機能をカスタマイズすることができる。タッチスクリーン212は、仮想又はソフトボタン、及び1つ以上のソフトキーボードを実装するために用いられる。
【0073】
タッチ感知ディスプレイ212は、デバイスとユーザとの間の入力インターフェース及び出力インターフェースを提供する。ディスプレイコントローラ256は、タッチスクリーン212から電気信号を受信し、かつ/又はタッチスクリーン212に電気信号を送信する。タッチスクリーン212は、ユーザに視覚出力を表示する。視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(総称して「グラフィック」と称する)を含む。一部の実施形態では、視覚出力の一部又はすべては、ユーザインターフェースオブジェクトに対応する。
【0074】
タッチスクリーン212は、触覚及び/又は触感の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有している。タッチスクリーン212及びディスプレイコントローラ256は(メモリ202内の任意の関連モジュール及び/又は命令セットと共に)、タッチスクリーン212上で接触(及び任意の接触の移動又は中断)を検出し、検出された接触をタッチスクリーン212上に表示されたユーザインターフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。例示的な実施形態では、タッチスクリーン212とユーザとの間の接触点は、ユーザの指に対応する。
【0075】
タッチスクリーン212は、LCD(liquid crystal display、液晶ディスプレイ)技術、LPD(light emitting polymer display、発光ポリマーディスプレイ)技術、又はLED(light emitting diode、発光ダイオード)技術を用いるが、他の実施形態では、その他のディスプレイ技術を用いてもよい。タッチスクリーン212及びディスプレイコントローラ256は、現在既知の、又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触、及びその接触のあらゆる移動又は中断を検出し、これらの技術としては、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術、並びにタッチスクリーン212との1つ以上の接触点を判定するための他の近接センサアレイ又は他の要素が挙げられるが、これらに限定されない。例示的な実施形態では、California州CupertinoのApple Inc.によるiPhone(登録商標)及びiPod Touch(登録商標)において見られるような、投影型相互静電容量感知技術が使用されている。
【0076】
タッチスクリーン212のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の米国特許第6,323,846号(Westermanら)、同第6,570,557号(Westermanら)、及び/又は同第6,677,932号(Westerman)、及び/又は米国特許出願公開第2002/0015024(A1)号に記載されているマルチタッチ感知タッチパッドに類似する。これらの文献は、それぞれその全体が本明細書において参照により組み込まれている。ただし、タッチスクリーン212はデバイス200からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【0077】
タッチスクリーン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」。これらの出願のすべては、全体が参照により本明細書に組み込まれている。
【0078】
タッチスクリーン212は、例えば、100dpiを超えるビデオ解像度を有する。一部の実施形態において、タッチスクリーンは約160dpiのビデオ解像度を有する。ユーザは、スタイラス、指等の任意の好適な物体又は付属物を使用して、タッチスクリーン212と接触する。いくつかの実施形態において、ユーザインターフェースは、主として指を基準とした接触及びジェスチャで機能するように設計され、タッチスクリーン上の指の接触面積が広いためスタイラスを基準とした入力よりも精度が低いことがある。一部の実施形態では、デバイスは、指に基づく粗い入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【0079】
いくつかの実施形態では、タッチスクリーンに加えて、デバイス200は、特定の機能をアクティブ化又は非アクティブ化させるためのタッチパッド(図示せず)を含む。一部の実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは、タッチスクリーン212とは別個のタッチ感知面、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
【0080】
デバイス200はまた、様々な構成要素に電力を供給するための電力システム262を含む。電力システム262は、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイスにおける電力の生成、管理、及び分配に関連する任意の他の構成要素を含む。
【0081】
デバイス200はまた、1つ以上の光センサ264を含む。図2Aでは、I/Oサブシステム206内の光センサコントローラ258に連結された光センサを示す。光センサ264は、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを含む。光センサ264は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール243(カメラモジュールとも呼ばれる)と連携して、光センサ264は静止画像又はビデオをキャプチャする。いくつかの実施形態では、タッチスクリーンディスプレイが静止画像及び/又はビデオ画像取得のためのビューファインダとして使用されるように、デバイスの前面のタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に光センサが配置されている。一部の実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見るのと同時に、そのユーザの画像をテレビ会議のために得るように、デバイスの前面に光センサが配置されている。一部の実施形態では、光センサ264の位置は、ユーザによって(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更することができ、それにより、テレビ会議並びに静止画像及び/又はビデオ画像の取得の双方のために、単一の光センサ264を、タッチスクリーンディスプレイと共に使用する。
【0082】
デバイス200はまた任意選択的に、1つ以上の接触強度センサ265を含む。図2Aでは、I/Oサブシステム206内の強度センサコントローラ259に連結された、接触強度センサを示す。接触強度センサ265は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は圧力)を測定するために使用するセンサ)を、任意選択的に含む。接触強度センサ265は、環境から接触強度情報(例えば、圧力情報又は圧力情報のプロキシ)を受信する。一部の実施形態において、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)に配置されているか、又は、それに近接している。一部の実施形態において、少なくとも1つの接触強度センサが、デバイス200の前面に配置されたタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置されている。
【0083】
デバイス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をオフにして無効化する。
【0084】
デバイス200はまた、任意選択的に、1つ以上の触知出力生成器267を含む。図2Aでは、I/Oサブシステム206内の触覚フィードバックコントローラ261に連結された、触知出力生成器を示す。触知出力生成器267は、スピーカ若しくは他のオーディオ構成要素等の1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)等の、エネルギーを直線運動に変換する電気機械デバイスを、任意選択的に含む。接触強度センサ265は、触覚フィードバックモジュール233から触覚フィードバック生成命令を受信し、デバイス200のユーザが感知できる触知出力をデバイス200上で生成する。一部の実施形態において、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)に配置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス200の表面の内/外)に、又は横方向(例えば、デバイス200の表面と同じ平面内の前後)に動かすことによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス200の前面に配置されたタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置されている。
【0085】
デバイス200はまた、1つ以上の加速度計268も含む。図2Aは、加速度計268を周辺機器インターフェース218に連結して示す。あるいは、加速度計268は、I/Oサブシステム206内の入力コントローラ260に、連結される。加速度計268は、米国特許出願公開第20050190059号、「Acceleration−based Theft Detection System for Portable Electronic Devices」、及び同第20060017692号、「Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer」で説明されているように機能し、これらの文献の双方は、その全体が参照により本明細書に組み込まれる。一部の実施形態では、情報は、1つ以上の加速度計から受信されたデータの分析に基づいて、縦方向ビュー又は横方向ビュー内でタッチスクリーンディスプレイ上に表示される。デバイス200は任意選択的に、加速度計(単数又は複数)268に加えて、磁気計(図示せず)並びにデバイス200の位置及び方位(例えば、縦方向又は横方向)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信機(図示せず)を含む。
【0086】
いくつかの実施形態では、メモリ202に記憶されたソフトウェア構成要素は、オペレーティングシステム226、通信モジュール(又は命令セット)228、接触/動きモジュール(又は命令セット)230、グラフィックモジュール(又は命令セット)232、テキスト入力モジュール(又は命令セット)234、全地球測位システム(GPS)モジュール(又は命令セット)235、デジタルアシスタントクライアントモジュール229、及びアプリケーション(又は命令セット)236を含む。更に、メモリ202は、データ及びモデル、例えば、ユーザデータ及びモデル231を記憶する。更に、いくつかの実施形態では、図2A及び図4に示すように、メモリ202(図2A)又はメモリ470(図4)は、デバイス/グローバル内部状態257を記憶する。デバイス/グローバル内部状態257は、現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ212の様々な領域を占領しているかを示す、表示状態、デバイスの様々なセンサ及び入力制御デバイス216から得られる情報を含む、センサ状態、並びに、デバイスの位置及び/又は姿勢に関する位置情報、のうちの1つ以上を含む。
【0087】
オペレーティングシステム226(例えば、Darwin、RTXC、LINUX、UNIX(登録商標)、OS X、iOS、WINDOWS(登録商標)、又はVxWorks等の組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理等)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を促進する。
【0088】
通信モジュール228は、1つ以上の外部ポート224を介して他のデバイスとの通信を容易にし、RF回路208及び/又は外部ポート224が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート224(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIRE(登録商標)等)は、直接的に、又はネットワーク(例えば、インターネット、無線LAN等)を通して間接的に、他のデバイスに連結するように適応している。一部の実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイス上で使用される30ピンコネクタと同じマルチピン(例えば、30ピン)コネクタか、又は同様の、及び/若しくは互換性のあるマルチピン(例えば、30ピン)コネクタである。
【0089】
接触/動きモジュール230は、任意選択的に、(ディスプレイコントローラ256と連携して)タッチスクリーン212との接触、及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール230は、接触が生じたか否かを判定すること(例えば、指を下ろすイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が停止したか否かを判定すること(例えば、指を上げるイベント又は接触の中断を検出すること)等の、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触/動きモジュール230は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向における変化)を判定することを含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。一部の実施形態では、接触/動きモジュール230及びディスプレイコントローラ256は、タッチパッド上の接触を検出する。
【0090】
一部の実施形態において、接触/動きモジュール230は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアイコン上で「クリック」したか否かを判定するための)、1つ以上の強度閾値のセットを使用する。一部の実施形態では、少なくとも強度閾値のサブセットは、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス200の物理ハードウェアを変更することなく調節されてもよい)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく、広範囲の予め定義された閾値のうちのいずれかに設定されてもよい。加えて、一部の実装形態では、デバイスのユーザは、強度閾値の組のうちの1つ以上を調整するためのソフトウェア設定が提供される(例えば、個々の強度閾値を調整することによって、及び/又はシステムレベルのクリック「強度」パラメータで一度に複数の強度閾値を調整することによって)。
【0091】
接触/動きモジュール230は任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン(例えば、検出される接触の異なる動き、タイミング、及び/又は強度)を有する。よって、ジェスチャは任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指のタップジェスチャを検出することは、(例えば、アイコンの位置での)指を下ろすイベントを検出し、続いてその指を下ろすイベントと同じ位置(又は、実質的に同じ位置)で指を上げる(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、1つ以上の、指をドラッグするイベントを検出し、その後、続いて指を上げる(リフトオフ)イベントを検出することを含む。
【0092】
グラフィックモジュール232は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含めた、タッチスクリーン212又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェア構成要素を含む。本明細書にて使用されるとき、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、これらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインターフェースオブジェクト等)、デジタル画像、ビデオ、アニメーション等が挙げられるが、これらに限定されない。
【0093】
一部の実施形態では、グラフィックモジュール232は、使用されることになるグラフィックを表すデータを記憶する。各グラフィックは任意選択的に、対応するコードが割り当てられる。グラフィックモジュール232は、アプリケーション等から、必要に応じて、座標データ及び他のグラフィック特性データと共に表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次いで、ディスプレイコントローラ256に出力するスクリーンの画像データを生成する。
【0094】
触覚フィードバックモジュール233は、デバイス200とのユーザ対話に応じて、デバイス200上の1つ以上の位置で触知出力を生成するために、触知出力生成器(単数又は複数)267によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
【0095】
テキスト入力モジュール234は、いくつかの実施例では、グラフィックモジュール232の構成要素であり、様々なアプリケーション(例えば、連絡先237、電子メール240、IM241、ブラウザ247、及びテキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するための、ソフトキーボードを提供する。
【0096】
GPSモジュール235はデバイスの位置を判定し、この情報を、様々なアプリケーションで使用するために提供する(例えば、位置に基づく電話にて使用するために電話238へ、写真/ビデオメタデータとしてカメラ243へ、及び、天気ウィジェット、ローカルイエローページウィジェット、及びマップ/ナビゲーションウィジェット等の、位置に基づくサービスを提供するアプリケーションへ)。
【0097】
デジタルアシスタントクライアントモジュール229は様々なクライアント側デジタルアシスタント命令を含み、デジタルアシスタントのクライアント側機能を提供する。例えば、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なユーザインターフェース(例えば、マイクロフォン213、加速度計(単数又は複数)268、タッチ感知ディスプレイシステム212、光センサ(単数又は複数)229、他の入力制御デバイス216等)を通して、声の入力(例えば、音声入力)、テキスト入力、タッチ入力、及び/又はジェスチャ入力を受信できる。デジタルアシスタントクライアントモジュール229はまた、ポータブル多機能デバイス200の様々な出力インターフェース(例えば、スピーカ211、タッチ感知ディスプレイシステム212、触知出力生成器(単数又は複数)267等)を通して、オーディオ(例えば、音声出力)、視覚、及び/又は触知の形態での出力を提供できる。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び/又は上記の2つ以上の組み合わせとして提供される。動作時、デジタルアシスタントクライアントモジュール229は、RF回路208を用いてDAサーバ106と通信する。
【0098】
ユーザデータ及びモデル231は、ユーザに関連付けられた様々なデータ(例えば、ユーザ固有の語彙データ、ユーザ嗜好データ、ユーザ固有の名前の発音、ユーザの電子アドレス帳からのデータ、to doリスト、買い物リスト等)を含み、デジタルアシスタントのクライアント側機能を提供する。更に、ユーザデータ及びモデル231は、ユーザ入力を処理してユーザの意図を判定するための様々なモデル(例えば、音声認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデル等)を含む。
【0099】
いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なセンサ、サブシステム、及び周辺機器を使用して、ポータブル多機能デバイス200の周囲環境から追加情報を収集し、ユーザ、現在のユーザ対話及び/又は現在のユーザ入力に関連付けられたコンテキストを確立する。いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、ユーザの意図の推測を助けるために、ユーザ入力と共にコンテキスト情報又はそのサブセットをDAサーバ106に提供する。いくつかの実施例では、デジタルアシスタントはまた、ユーザへの出力をどのように準備し、配信するかを決定するために、コンテキスト情報を用いる。コンテキスト情報は、コンテキストデータと呼ばれる。
【0100】
いくつかの実施例では、ユーザ入力に伴うコンテキスト情報は、センサ情報、例えば、照明、周囲ノイズ、周囲温度、周囲環境の画像又は映像等を含む。いくつかの実施例では、コンテキスト情報は、デバイスの物理状態、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速度、加速度、運動パターン、セルラー信号強度等をも含み得る。いくつかの実施例では、DAサーバ106のソフトウェア状態、例えば、稼働中のプロセス、インストール済みのプログラム、過去と現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量、等、及びポータブル多機能デバイス200の、ソフトウェア状態に関係する情報が、DAサーバ106に、ユーザ入力に関連付けられたコンテキスト情報として提供される。
【0101】
いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、DAサーバ106からの要求に応じて、ポータブル多機能デバイス200上に記憶されている情報(例えば、ユーザデータ231)を選択的に提供する。いくつかの実施例では、デジタルアシスタントクライアントモジュール229はまた、DAサーバ106による要求に応じて、自然言語ダイアログ又は他のユーザインターフェースを介してユーザから追加入力を引き出す。デジタルアシスタントクライアントモジュール229は、ユーザ要求内に表されているユーザの意図の意図推論及び/又は履行においてDAサーバ106を助けるために、追加入力をDAサーバ106に渡す。
【0102】
デジタルアシスタントの更なる詳細を、図7A〜図7Cを参照して以下に説明する。デジタルアシスタントクライアントモジュール229が、以下に説明するデジタルアシスタントモジュール726の任意の数のサブモジュールを含み得ることが認識されるべきである。
【0103】
アプリケーション236は、以下のモジュール(又は、命令セット)、又はそれらのサブセット若しくはスーパーセットを含む。
●連絡先モジュール237(ときには、アドレス帳又は連絡先リストとも呼ぶ)、
●電話モジュール238、
●テレビ会議モジュール239、
●電子メールクライアントモジュール240、
●インスタントメッセージング(IM)モジュール241、
●トレーニングサポートモジュール242、
●静止画像及び/又はビデオ画像用のカメラモジュール243、
●画像管理モジュール244、
●ビデオ再生モジュール、
●音楽再生モジュール、
●ブラウザモジュール247、
●カレンダモジュール248、
●天気ウィジェット249−1、株価ウィジェット249−2、計算機ウィジェット249−3、アラーム時計ウィジェット249−4、辞書ウィジェット249−5、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット249−6、のうちの1つ以上を一部の例において含む、ウィジェットモジュール249、
●ユーザ作成ウィジェット249−6を作成するためのウィジェットクリエータモジュール250、
●検索モジュール251、
●ビデオプレーヤモジュール及びミュージックプレーヤモジュールを統合した、ビデオ及びミュージックプレーヤモジュール252、
●メモモジュール253、
●マップモジュール254、及び/又は
●オンラインビデオモジュール255。
【0104】
メモリ202内に記憶される他のアプリケーション236の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【0105】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、連絡先モジュール237は、(例えば、メモリ202又はメモリ470内の連絡先モジュール237のアプリケーション内部状態292に記憶される)アドレス帳又は連絡先リストを管理するために用いられる。この管理することとしては、アドレス帳に名前(単数又は複数)を加えること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類及び並べ替えること、電話番号又は電子メールアドレスを提供して、電話238、テレビ会議モジュール239、電子メール240、若しくはIM241による通信を開始する及び/又は容易にすること、等が含まれる。
【0106】
RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、電話モジュール238は、電話番号に対応する一連の文字を入力し、連絡先モジュール237内の1つ以上の電話番号にアクセスし、入力された電話番号を修正し、対応する電話番号をダイヤルし、会話を行い、そして、会話が終了した際に接続を切るか又は電話を切るために、使用される。上述したように、無線通信は、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
【0107】
RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、光センサ264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、連絡先モジュール237、及び電話モジュール238と連携して、テレビ会議モジュール239は、ユーザの命令に従って、ユーザと1人以上の他の参加者との間のテレビ会議を開始し、遂行し、終了するための、実行可能な命令を含む。
【0108】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、電子メールクライアントモジュール240は、ユーザの命令に応答して、電子メールを作成し、送信し、受信し、かつ管理するための、実行可能な命令を含む。画像管理モジュール244と連携して、電子メールクライアントモジュール240は、カメラモジュール243で撮影された静止画像又はビデオ画像を有する電子メールを作成及び送信することを非常に容易にする。
【0109】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、インスタントメッセージングモジュール241は、インスタントメッセージに対応する文字列を入力したり、入力済みの文字を修正したり、(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、若しくはIMPSを使用して)対応するインスタントメッセージを送信したり、インスタントメッセージを受信したり、その受信したインスタントメッセージを表示したりするための、実行可能な命令を含む。一部の実施形態において、送信及び/又は受信されるインスタントメッセージは、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、EMS)でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び/又は他の添付ファイルを含む。本明細書で使用するとき、「インスタントメッセージ」とは、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)の双方を示す。
【0110】
RF回路208、タッチ画面212、ディスプレイコントローラ256、接触/動作モジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、マップモジュール254、及びミュージックプレーヤモジュールと連携して、トレーニングサポートモジュール242は、(例えば、時間、距離、及び/又はカロリー消費目標を有する)トレーニングを生成することと、トレーニングセンサ(スポーツデバイス)と通信することと、トレーニングセンサデータを受信することと、トレーニングをモニタするために使用されるセンサを較正することと、トレーニングのための音楽を選択し、再生することと、トレーニングデータを表示し、記憶し、送信することとを実行するための実行可能な命令を含む。
【0111】
タッチスクリーン212、ディスプレイコントローラ256、光センサ(単数又は複数)264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、及び画像管理モジュール244と連携して、カメラモジュール243は、静止画像又は(ビデオストリームを含む)ビデオをキャプチャしてメモリ202にそれらを記憶する、静止画像又はビデオの特性を変更する、又はメモリ202から静止画像若しくはビデオを削除する、実行可能な命令を含む。
【0112】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びカメラモジュール243と連携して、画像管理モジュール244は、静止画像及び/又はビデオ画像を配置する、修正し(例えば、編集し)又は別の方法で操作する、ラベルを付ける、削除する、(例えば、デジタルスライドショー又はアルバムにおいて)提示する、及び記憶したりする、実行可能な命令を含む。
【0113】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ブラウザモジュール247は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付け、受信し、表示することを含むユーザの命令に従い、インターネットをブラウズするための、実行可能な命令を含む。
【0114】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と関連して、カレンダモジュール248は、ユーザの命令に従い、カレンダ及びカレンダに関連付けられたデータ(例えば、カレンダ項目、to doリスト等)を作成し、表示し、変更し、かつ記憶するための実行可能な命令を含む。
【0115】
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(拡張可能マークアップ言語)ファイル及びJavaScript(登録商標)ファイル(例えば、Yahoo!ウィジェット)を含む。
【0116】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びブラウザモジュール247と連携して、ウィジェットクリエータモジュール250は、ウィジェットを作成する(例えば、ウェブページのユーザ指定箇所をウィジェットに変える)ために、ユーザによって使用される。
【0117】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、検索モジュール251は、ユーザの命令に従って、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ202内のテキスト、音楽、音、画像、ビデオ、及び/又は他のファイルを検索するための、実行可能な命令を含む。
【0118】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、及びブラウザモジュール247と連携して、ビデオ及びミュージックプレーヤモジュール252は、MP3又はAACファイル等の1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能な命令、並びにビデオを(タッチスクリーン212上、又は外部ポート224を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための、実行可能な命令を含む。一部の実施形態では、デバイス200は、任意選択的に、iPod(Apple Inc.の商標)等のMP3プレーヤの機能を含む。
【0119】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、メモモジュール253は、ユーザの命令に従って、メモ、to doリスト等を作成及び管理するための、実行可能な命令を含む。
【0120】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、及びブラウザモジュール247と連携して、マップモジュール254は、ユーザの命令に従って、マップ、及びマップに関連付けられたデータ(例えば、運転方向、特定の場所又はその付近の店舗及び他の関心対象地点についてのデータ、並びに他の位置に基づくデータ)を受信し、表示し、修正し、かつ記憶するために使用される。
【0121】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、オンラインビデオモジュール255は、ユーザがH.264等の1つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、(例えば、ストリーミング及び/又はダウンロードにより)受信し、(例えば、タッチスクリーン上で又は外部ポート224を介して接続された外部のディスプレイ上で)再生し、特定のオンラインビデオへのリンクを含む電子メールを送信し、かつ別の方法で管理することが可能となる命令を含む。一部の実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール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」に見出すことができ、これらの出願の内容はその全体が本明細書において参照により組み込まれている。
【0122】
上記で特定されたモジュール及びアプリケーションのそれぞれは、1つ以上の上記の機能を実行する実行可能な命令セット及び本出願に記載の方法(例えば、コンピュータにより実装される方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(例えば、命令のセット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットが組み合わせられるか、又は他の方式で再編成され得る。例えば、ビデオプレーヤモジュールは、ミュージックプレーヤモジュールと組み合わせて、単一のモジュール(例えば、図2Aのビデオ及びミュージックプレーヤモジュール252)にすることができる。一部の実施形態において、メモリ202は、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ202は、上述されていない追加のモジュール及びデータ構造を記憶する。
【0123】
一部の実施形態では、デバイス200は、デバイス上で予め定義された機能の組の動作がタッチスクリーン及び/又はタッチパッドを通じて排他的に実行されるデバイスである。デバイス200の動作のための主要な入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することによって、デバイス200上の物理的な入力制御デバイス(プッシュボタン、ダイヤル等)の数が削減される。
【0124】
タッチスクリーン及び/又はタッチパッドを通じて排他的に実行される予め定義された機能の組は任意選択的に、ユーザインターフェース間のナビゲーションを含む。一部の実施形態では、タッチパッドは、ユーザによってタッチされるとき、デバイス200上で表示される任意のユーザインターフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス200をナビゲートする。そのような実施形態では、「メニューボタン」はタッチパッドを使用して実装される。一部の他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理プッシュボタン又は他の物理入力制御デバイスである。
【0125】
図2Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ202(図2A)又はメモリ470(図4)は、イベントソート部270(例えば、オペレーティングシステム226内)及び対応するアプリケーション236−1(例えば、上述のアプリケーション237〜アプリケーション251、アプリケーション255、アプリケーション480〜アプリケーション490のうちのいずれか)を含む。
【0126】
イベントソート部270は、イベント情報を受信し、イベント情報が配信されるアプリケーション236−1及びアプリケーション236−1のアプリケーションビュー291を判定する。イベントソート部270は、イベントモニタ271及びイベントディスパッチャモジュール274を含む。いくつかの実施形態では、アプリケーション236−1は、アプリケーションがアクティブ又は実行中のとき、タッチ感知ディスプレイ212上に表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態292を含む。いくつかの実施形態では、デバイス/グローバル内部状態257は、いずれのアプリケーション(単数又は複数)が現在アクティブであるかを判定するために、イベントソート部270によって使用され、アプリケーション内部状態292は、イベント情報が配信されるアプリケーションビュー291を判定するために、イベントソート部270によって使用される。
【0127】
一部の実施形態において、アプリケーション内部状態292は、アプリケーション236−1が実行を再開する際に使用される再開情報、アプリケーション236−1によって情報が表示されているか又は表示の準備が整っていることを示すユーザインターフェース状態情報、ユーザがアプリケーション236−1の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ/アンドゥ待ち行列、のうちの1つ以上等の追加情報を含む。
【0128】
イベントモニタ271は、周辺機器インターフェース218からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ212上でのユーザのタッチ)についての情報を含む。周辺機器インターフェース218は、I/Oサブシステム206、又は近接センサ266、加速度計(単数又は複数)268、及び/若しくは(オーディオ回路210を介する)マイクロフォン213等のセンサから受信する情報を送信する。周辺機器インターフェース218がI/Oサブシステム206から受信する情報には、タッチ感知ディスプレイ212又はタッチ感知面からの情報が含まれる。
【0129】
一部の実施形態では、イベントモニタ271は、所定の間隔で周辺機器インターフェース218に要求を送信する。これに応じて、周辺機器インターフェース218はイベント情報を送信する。他の実施形態では、周辺機器インターフェース218は、重要なイベント(例えば、所定のノイズ閾値を上回り、かつ/又は所定の持続時間を超えた入力を受けること)が存在する場合にのみ、イベント情報を送信する。
【0130】
いくつかの実施形態では、イベントソート部270はまた、ヒットビュー判定モジュール272及び/又はアクティブイベント認識部判定モジュール273も含む。
【0131】
ヒットビュー判定モジュール272は、タッチ感知ディスプレイ212が2つ以上のビューを表示する場合に、サブイベントが1つ以上のビュー内のいずれの場所で発生したかを判定するための、ソフトウェア手順を提供する。ビューは、制御部及びユーザがディスプレイ上で見ることが可能な他の要素で構成される。
【0132】
アプリケーションに関連付けられたユーザインターフェースの別の態様は、本明細書では、アプリケーションビュー又はユーザインターフェースウィンドウと呼ばれる場合があるビューのセットであり、それらの中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出される最下位レベルのビューは、ヒットビューと呼ばれ、また、適切な入力として認識されるイベントの組は、タッチに基づくジェスチャを開始する初期のタッチのヒットビューに少なくとも部分的に基づいて判定される。
【0133】
ヒットビュー判定モジュール272は、タッチベースのジェスチャのサブイベントと関連する情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール272は、そのサブイベントを処理すべき階層内の最下位のビューとしての、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント(例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュール272によって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連するすべてのサブイベントを受信する。
【0134】
アクティブイベント認識部判定モジュール273は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール273は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール273は、サブイベントの物理位置を含むすべてのビューはアクティブに関わっているビューであると判定し、したがって、すべてのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
【0135】
イベントディスパッチャモジュール274は、イベント情報をイベント認識部(例えば、イベント認識部280)に送信する。アクティブイベント認識部判定モジュール273を含む実施形態において、イベントディスパッチャモジュール274は、アクティブイベント認識部判定モジュール273により判定されたイベント認識部にイベント情報を配信する。一部の実施形態では、イベントディスパッチャモジュール274は、対応するイベント受信部282により取得されるイベント情報をイベント待ち行列に記憶する。
【0136】
一部の実施形態では、オペレーティングシステム226は、イベントソート部270を含む。あるいは、アプリケーション236−1は、イベントソート部270を含む。更なる他の実施形態では、イベントソート部270は、スタンドアロンモジュール、又は接触/動きモジュール230等のメモリ202に記憶された別のモジュールの一部である。
【0137】
一部の実施形態では、アプリケーション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に含まれる。
【0138】
それぞれのイベント認識部280は、イベントソート部270からイベント情報(例えば、イベントデータ279)を受信して、そのイベント情報からイベントを特定する。イベント認識部280は、イベント受信部282及びイベント比較部284を含む。いくつかの実施形態では、イベント認識部280は更に、メタデータ283及びイベント配信命令288(サブイベント配信命令を含む)の少なくともサブセットを含む。
【0139】
イベント受信部282は、イベントソート部270からイベント情報を受信する。イベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントに依存して、イベント情報はまた、サブイベントの位置等の追加の情報を含む。サブイベントがタッチの動きに関わるとき、イベント情報はまた、サブイベントの速さ及び方向を含む。一部の実施形態では、イベントは、1つの方位から別の方位への(例えば、縦方位から横方位への、又はその逆の)デバイスの回転を含み、イベント情報は、デバイスの現在の方位(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
【0140】
イベント比較部284は、イベント情報を既定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント若しくはサブイベントを判定する、又はイベント若しくはサブイベントの状態を判定若しくは更新する。いくつかの実施形態において、イベント比較部284は、イベント定義286を含む。イベント定義286は、例えば、イベント1(287−1)、イベント2(287−2)等の、イベントの定義(例えば、サブイベントの既定のシーケンス)を含む。一部の実施形態において、イベント(287)内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例では、イベント1(287−1)の定義は、表示されたオブジェクト上のダブルタップである。このダブルタップは、例えば、所定の段階に関する表示オブジェクト上での第1のタッチ(タッチの開始)、所定の段階に関する第1のリフトオフ(タッチの終了)、所定の段階に関する表示オブジェクト上での第2のタッチ(タッチの開始)、及び所定の段階に関する第2のリフトオフ(タッチの終了)を含む。別の実施例では、イベント2(287−2)の定義は、表示されたオブジェクト上のドラッグ操作である。このドラッグ操作は、例えば、所定の段階に関する表示オブジェクト上でのタッチ(又は、接触)、タッチ感知ディスプレイ212を横断するタッチの移動、及びタッチのリフトオフ(タッチの終了)を含む。一部の実施形態において、イベントはまた、1つ以上の関連付けられたイベントハンドラ290に関する情報も含む。
【0141】
一部の実施形態において、イベント定義287は、それぞれのユーザインターフェースオブジェクトに関するイベントの定義を含む。一部の実施形態において、イベント比較部284は、サブイベントに関連付けられたユーザインターフェースオブジェクトを判定するヒットテストを実行する。例えば、3つのユーザインターフェースオブジェクトがタッチ感知ディスプレイ212に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ212上でタッチが検出されると、イベント比較部284は、3つのユーザインターフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判定するためのヒットテストを実行する。表示された各オブジェクトが、対応するイベントハンドラ290と関連付けられている場合、イベント比較部は、ヒットテストの結果を使用して、どのイベントハンドラ290をアクティブ化すべきかを判定する。例えば、イベント比較部284は、サブイベント及びヒットテストのトリガとなるオブジェクトと関連付けられたイベントハンドラを選択する。
【0142】
いくつかの実施形態では、それぞれのイベント(287)に関する定義はまた、サブイベントのシーケンスがイベント認識部のイベントタイプに対応するか否かが判定されるまでイベント情報の配信を遅延させる遅延動作をも含む。
【0143】
それぞれのイベント認識部280が、一連のサブイベントがイベント定義286におけるイベントのいずれとも一致しないと判定するとき、それぞれのイベント認識部280は、イベント不可能、イベント失敗、又はイベント終了状態に入り、その後は、タッチに基づくジェスチャの後続のサブイベントを無視する。この状況では、ヒットビューに対してアクティブのままである他のイベント認識部がある場合、そのイベント認識部は、進行中のタッチに基づくジェスチャのサブイベントを追跡及び処理し続ける。
【0144】
一部の実施形態では、それぞれのイベント認識部280は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能な属性、フラグ、及び/又はリストを有するメタデータ283を含む。一部の実施形態では、メタデータ283は、イベント認識部が相互にどのように対話するか又は対話することが可能とされているかについて示す構成可能な属性、フラグ、及び/又はリストを含む。一部の実施形態では、メタデータ283は、サブイベントがビュー階層又はプログラム階層における多様なレベルに配信されるかを示す構成可能な属性、フラグ、及び/又はリストを含む。
【0145】
一部の実施形態では、それぞれのイベント認識部280は、イベントの1つ以上の特定のサブイベントが認識されるときに、イベントと関連付けられたイベントハンドラ290をアクティブ化する。一部の実施形態では、それぞれのイベント認識部280は、イベントと関連付けられたイベント情報をイベントハンドラ290に配信する。イベントハンドラ290をアクティブ化することは、それぞれのヒットビューにサブイベントを送信する(及び、送信を延期する)こととは別個である。一部の実施形態では、イベント認識部280は、認識されたイベントと関連付けられたフラグを投入し、フラグと関連付けられたイベントハンドラ290は、フラグを捕らえ、予め定義された処理を実行する。
【0146】
一部の実施形態では、イベント配信命令288は、イベントハンドラをアクティブ化することなくサブイベントについてのイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベントハンドラに、又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベントに又はアクティブに関与しているビューと関連付けられたイベントハンドラは、イベント情報を受信し、予め定義された処理を実行する。
【0147】
一部の実施形態では、データ更新部276は、アプリケーション236−1で使用されるデータを作成及び更新する。例えば、データ更新部276は、連絡先モジュール237で使用される電話番号を更新したり、又はビデオ再生モジュールで使用されるビデオファイルを記憶したりする。一部の実施形態では、オブジェクト更新部277は、アプリケーション236−1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部277は、新たなユーザインターフェースオブジェクトを作成するか、又はユーザインターフェースオブジェクトの位置を更新する。GUI更新部278は、GUIを更新する。例えば、GUI更新部278は、表示情報を作成し、タッチ感知ディスプレイ上で表示するためにそれをグラフィックモジュール232に送信する。
【0148】
一部の実施形態では、イベントハンドラ(単数又は複数)290は、データ更新部276、オブジェクト更新部277、及びGUI更新部278を含むか、又はそれらへのアクセスを有する。一部の実施形態では、データ更新部276、オブジェクト更新部277、及びGUI更新部278は、それぞれのアプリケーション236−1又はアプリケーションビュー291の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
【0149】
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の論考はまた、入力デバイスを使用して多機能デバイス200を動作させるための他の形態のユーザ入力にも適用されるが、そのすべてがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一若しくは複数のキーボードの押圧若しくは保持に任意選択的に合わせたマウスの移動及びマウスボタンの押圧、タッチパッド上でのタップ、ドラッグ、スクロール等の接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示検出された眼球運動、バイオメトリック入力、並びに/又はそれらの任意の組み合わせは任意選択的に、認識されることになるイベントを定義するサブイベントに対応する入力として利用される。
【0150】
図3は、一部の実施形態に係る、タッチスクリーン212を有するポータブル多機能デバイス200を示す。タッチスクリーンは、ユーザインターフェース(user interface、UI)300内に1つ以上のグラフィックを、任意選択的に表示する。本実施形態、並びに後述する実施形態において、ユーザは、例えば、1本以上の指302(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス303(図には、正確な縮尺率では描かれていない)を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することができる。一部の実施形態では、ユーザが1つ以上のグラフィックとの接触を断った際に、その1つ以上のグラフィックの選択が生じる。いくつかの実施形態において、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上方向へ、及び/又は下方向へ)、及び/又はデバイス200と接触した指のローリング(右から左へ、左から右へ、上方向へ、及び/又は下方向へ)を、任意選択的に、含む。一部の実装形態又は状況では、グラフィックとの不測の接触は、グラフィックを選択しない。例えば、選択に対応するジェスチャがタップであるとき、アプリケーションアイコンの上をスイープするスワイプジェスチャは任意選択的に、対応するアプリケーションを選択しない。
【0151】
デバイス200は、「ホーム」又はメニューボタン304等の、1つ以上の物理ボタンも含む。前で説明されたように、メニューボタン304は、デバイス200上で実行される、アプリケーションの組における任意のアプリケーション236にナビゲートするために使用される。あるいは、一部の実施形態では、メニューボタンは、タッチスクリーン212に表示されたGUIにおけるソフトキーとして実装されている。
【0152】
一実施形態では、デバイス200は、タッチスクリーン212、メニューボタン304、デバイスの電源をオン/オフし、デバイスをロックするためのプッシュボタン306、音量調節ボタン(単数又は複数)308、加入者識別モジュール(SIM)カードスロット310、ヘッドセットジャック312、及びドッキング/充電用外部ポート224を含む。プッシュボタン306は任意選択的に、ボタンを押し下げ、予め定義された時間間隔の間にボタンを押し下げた状態で保持することによってデバイス上の電力をターンオン/オフし、ボタンを押し下げ予め定義された時間間隔が経過する前にボタンを解放することによってデバイスをロックし、及び/又はデバイスのロックを解除し若しくはロック解除処理を開始するために使用される。別の実施形態では、デバイス200はまた、マイクロフォン213を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力を受ける。デバイス200はまた、タッチスクリーン212上の接触の強度を検出するための1つ以上の接触強度センサ265、及び/又は、デバイス200のユーザに対する触知出力を生成するための1つ以上の触知出力生成器267をも、任意選択的に含む。
【0153】
図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はこれらのモジュールを任意選択的に記憶しない。
【0154】
上記で特定された図4の要素のそれぞれは、いくつかの実施例では、前述のメモリデバイスのうち1つ以上に記憶される。上記で特定されたモジュールのうちのそれぞれは、上述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成する。一部の実施形態では、メモリ470は、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ470は、上述されていない追加のモジュール及びデータ構造を記憶する。
【0155】
ここで、例えば、ポータブル多機能デバイス200上に実装され得るユーザインターフェースの実施形態に注意を向ける。
【0156】
図5Aは、いくつかの実施形態に係る、ポータブル多機能デバイス200上のアプリケーションのメニュー用の例示的なユーザインターフェースを示す。同様のユーザインターフェースは、デバイス400上で実装される。一部の実施形態では、ユーザインターフェース500は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
【0157】
セルラー信号及び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。
【0158】
図5Aに示されているアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及びミュージックプレーヤモジュール252用のアイコン522は、任意選択的に、「ミュージック」又は「ミュージックプレーヤ」とラベル付けされる。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。一部の実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。一部の実施形態では、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【0159】
図5Bは、ディスプレイ550(例えば、タッチスクリーンディスプレイ212)とは別個のタッチ感知面551(例えば、図4のタブレット又はタッチパッド455)を備えるデバイス(例えば、図4のデバイス400)上の、例示的なユーザインターフェースを示す。デバイス400はまた、タッチ感知面551上の接触の強度を検出するための1つ以上の接触強度センサ(例えば、センサ457のうちの1つ以上)、及び/又はデバイス400のユーザに対する触知出力を生成するための1つ以上の触知出力生成器459を任意選択的に含む。
【0160】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ212上での入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、いくつかの実施形態では、デバイスは、図5Bに示すように、ディスプレイとは別個のタッチ感知面上での入力を検出する。いくつかの実施形態では、このタッチ感知面(例えば、図5Bの551)は、ディスプレイ(例えば、550)上の主軸(例えば、図5Bの553)に対応する主軸(例えば、図5Bの552)を有する。これらの実施形態によれば、デバイスは、タッチ感知面551との接触(例えば、図5Bの560及び562)を、ディスプレイ上のそれぞれの場所に対応する場所(例えば、図5Bでは、560は568に対応し、562は570に対応する)にて検出する。このように、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面(例えば、図5Bの551)上でデバイスによって検出されたユーザ入力(例えば、接触560及び接触562、並びにそれらの移動)が、多機能デバイスのディスプレイ(例えば、図5Bでの550)上のユーザインターフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインターフェースに任意選択的に使用されることを理解されたい。
【0161】
更に加えて、以下の実施例は主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャ)を参照して説明されるが、いくつかの実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力、又はスタイラス入力)で置き換えられることを理解されたい。例えば、スワイプジェスチャは任意選択的に、マウスクリックと置き換えられ(例えば、接触の代わりに)、その後、スワイプの経路に沿ってカーソルの移動が行われる(例えば、接触の移動の代わりに)。別の例として、タップジェスチャは任意選択的に、カーソルがタップジェスチャの位置の上に位置する間のマウスクリックと置き換えられる(例えば、接触の検出、それに続いて接触の検出を停止する代わりに)。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスは任意選択的に同時に使用され、又はマウス及び指の接触が任意選択的に同時に使用されることを理解されたい。
【0162】
図6Aは、例示的なパーソナル電子デバイス600を示す。デバイス600は、本体602を含む。いくつかの実施形態では、デバイス600は、デバイス200及びデバイス400(例えば、図2A〜図4B)に関して記載した特徴のいくつか又はすべてを含む。一部の実施形態では、デバイス600は、タッチ感知ディスプレイ画面604、以後、タッチスクリーン604を有する。タッチスクリーン604の代わりに、又はそれに追加して、デバイス600は、ディスプレイ及びタッチ感知面を有する。デバイス200及びデバイス400と同様に、一部の実施形態において、タッチスクリーン604(又はタッチ感知面)は、加えられている接触(例えば、タッチ)の強度を検出するための1つ以上の強度センサを有する。タッチスクリーン604(又は、タッチ感知面)の1つ以上の強度センサは、タッチの強度を表す出力データを提供する。デバイス600のユーザインターフェースは、タッチの強度に基づいてタッチに応答し、これは、異なる強度のタッチは、デバイス600上で異なるユーザインターフェース動作を呼び出し得ることを意味する。
【0163】
タッチ強度を検出して処理するための技法は、例えば、関連出願である、2013年5月8日出願の「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」と題された国際出願PCT/US2013/040061号、及び2013年11月11日出願の「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」と題された同PCT/US2013/069483号に記載されており、これらの文献のそれぞれは、全体が参照により本明細書に組み込まれる。
【0164】
一部の実施形態において、デバイス600は、1つ以上の入力機構606及び入力機構608を有する。入力機構606及び入力機構608は、含まれている場合、物理的なものである。物理入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。一部の実施形態では、デバイス600は、1つ以上のアタッチメント機構を有する。かかるアタッチメント機構は、含まれる場合には、例えば、デバイス600を、帽子、アイウェア、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計バンド、チェーン、ズボン、ベルト、靴、財布、バックパック等に、取り付けることを可能にする。これらのアタッチメント機構は、ユーザによってデバイス600が着用されることを可能にし得る。
【0165】
図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は、一部の実施例では、ボタンである。
【0166】
入力機構608は、一部の実施例では、マイクロフォンである。パーソナル電子デバイス600は、例えば、GPSセンサ632、加速度計634、方向センサ640(例えば、コンパス)、ジャイロスコープ636、動きセンサ638、及び/又はこれらの組み合わせ等の、様々なセンサを含み、それらのすべては、I/O部614に動作可能に接続される。
【0167】
パーソナル電子デバイス600のメモリ618は、コンピュータ実行可能な命令を記憶するための非一時的コンピュータ可読記憶媒体とすることができ、それらの命令は、1つ以上のコンピュータプロセッサ616によって実行されると、例えば、コンピュータプロセッサに、下で説明されている技法及び処理を実行させる。コンピュータ実行可能な命令はまた、例えば、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチしてその命令を実行し得る他のシステム、等の、命令実行システム、装置、若しくはデバイス、によって、又はそれらと接続して使用される、任意の非一時的コンピュータ可読記憶媒体に記憶及び/又は伝送される。パーソナル電子デバイス600は図6Bの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
【0168】
本明細書で使用する場合、用語「アフォーダンス」は、例えば、デバイス200、400、600、800、900、1000、及び/又は1100(図2A、図4、図6A〜図6B、図8A〜図8B、図9A〜図9B、図10A〜図10B、及び図11)のディスプレイ画面上に表示されるユーザ対話式のグラフィカルユーザインターフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及びテキスト(例えば、ハイパーリンク)はそれぞれ、アフォーダンスを構成する。
【0169】
本明細書にて使用されるとき、用語「フォーカスセレクタ」とは、ユーザが対話しているユーザインターフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含むいくつかの実装において、タッチ感知面(例えば、図4のタッチパッド455、又は図5Bのタッチ感知面551)上で入力(例えば、押圧入力)が検出された時に、カーソルが特定のユーザインターフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインターフェース要素)の上にあるとき、カーソルは「フォーカスセレクタ」として機能し、特定のユーザインターフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインターフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、図2Aのタッチ感知ディスプレイシステム212、又は図5Aのタッチスクリーン212)を含むいくつかの実装では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」の役割を果たすため、入力(例えば、接触による押圧入力)がタッチスクリーンディスプレイ上の特定のユーザインターフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインターフェース要素)の場所で検出されると、その特定のユーザインターフェース要素は検出された入力に従って調節される。一部の実装では、(例えば、タブキー又は矢印キーを使ってフォーカスを1つのボタンから別のボタンに移動させることにより)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスが、ユーザインターフェースの1つの領域からユーザインターフェースの別の領域に移動される。それらの実装形態では、フォーカスセレクタは、ユーザインターフェースの異なる領域の間のフォーカスの移動に従って移動する。フォーカスセレクタによってとられる具体的な形態とは関わりなく、フォーカスセレクタは一般的に、ユーザの意図したユーザインターフェースとの対話を通信するために(例えば、ユーザが対話することを意図しているユーザインターフェースの要素をデバイスに示すことによって)、ユーザによって制御されるユーザインターフェース要素(又は、タッチスクリーンディスプレイ上の接触)である。例えば、押圧入力がタッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で検出されたときに、対応するボタンの上にあるフォーカスセレクタ(例えば、カーソル、接触又は選択ボックス)の位置は、(デバイスのディスプレイ上に示されている他のユーザインターフェース要素ではなく)対応するボタンをユーザがアクティブ化しようとしていることを示すものである。
【0170】
本明細書及び特許請求の範囲で使用するとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。一部の実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は任意選択的に、予め定義された数の強度サンプル、又は予め定義されたイベントに対する(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終わりを検出する前、接触の強度における増大を検出する前若しくは後、及び/又は接触の強度における減少を検出する前若しくは後)予め定められた時間期間の間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)に収集された強度サンプルの組に基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の平均値(average value)、接触の強度の上位10%値、接触の強度の最大値の半分の値、接触の強度の最大値の90%の値等、のうちの1つ以上に基づく。一部の実施形態では、接触の期間は、特性強度を判定する際に使用される(例えば、特性強度が経時的な接触の強度の平均にあるとき)。一部の実施形態では、特性強度は、操作がユーザによって実行されたかを判定するために1つ以上の強度閾値の組と比較される。例えば、1つ以上の強度閾値の組は、第1の強度閾値及び第2の強度閾値を含む。この実施例では、第1の閾値を越えない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を越え、第2の強度閾値を越えない特性強度を有する接触の結果として第2の動作が実行され、第2の閾値を越える特性強度を有する接触の結果として第3の動作が実行される。一部の実施形態では、特性強度と1つ以上の閾値との間の比較が、第1の動作又は第2の動作のいずれを実行するかを判定するために使用されるのではなく、1つ以上の動作を実行するかどうか(例えば、それぞれの動作を実行するのか、又はそれぞれの動作の実行を省略するのか)を判定するために使用される。
【0171】
一部の実施形態では、特性強度を判定する目的で、ジェスチャの一部分が特定される。例えば、タッチ感知面は、開始位置から遷移して、接触の強度が増大する終了位置に到達する連続的なスワイプ接触を受信する。この実施例では、終了位置における接触の特性強度は、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部分のみ(例えば、終了位置におけるスワイプ接触の部分のみ)に基づく。一部の実施形態では、平滑化アルゴリズムは、接触の特性強度を判定する前にスワイプ接触の強度に適用される。例えば、平滑化アルゴリズムは任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。一部の状況では、それらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度における小幅な上昇又は低下を除去する。
【0172】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値等の1つ以上の強度閾値に対して特徴付けする。一部の実施形態では、軽い押圧強度閾値は、物理マウスのボタン又はトラックパッドをクリックすることと典型的に関連付けられた操作をデバイスが実行する強度に対応する。一部の実施形態では、深い押圧強度閾値は、物理マウスのボタン又はトラックパッドをクリックすることと典型的に関連付けられた操作とは異なる操作をデバイスが実行する強度に対応する。一部の実施形態では、軽い押圧強度閾値を下回る(例えば、かつ、それを下回ると接触がもはや検出されないわずかな接触検出強度閾値を上回る)特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従って、フォーカスセレクタを移動させる。全般的には、特に明記しない限り、これらの強度閾値は、ユーザインターフェース図の異なるセット間でも一貫している。
【0173】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への接触の特性強度の増大は、「軽い押圧」入力と呼ばれる場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への接触の特性強度の増大は、「深い押圧」入力と呼ばれる場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれる場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれる場合がある。一部の実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロより大きい。
【0174】
本明細書で説明される一部の実施形態では、1つ以上の操作は、それぞれの押圧入力を含むジェスチャを検出したことに応じて、又はそれぞれの接触(又は、複数の接触)で実行されるそれぞれの押圧入力を検出したことに応じて実行され、それぞれの押圧入力は、押圧入力強度閾値を上回る接触(又は、複数の接触)の強度における増大を検出したことに少なくとも部分的に基づいて検出される。一部の実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、対応する接触の強度の増大(例えば、対応する押圧入力の「ダウンストローク」)の検出に応じて実行される。一部の実施形態では、押圧入力は、押圧入力強度閾値を上回る、対応する接触の強度の増大、及び後続の、押圧入力強度閾値を下回る接触の強度の減少を含み、対応する動作は、その後続の押圧入力閾値を下回る対応する接触の強度の減少(例えば、対応する押圧入力の「アップストローク」)の検出に応じて、実行される。
【0175】
一部の実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある不測の入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関連性を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低いか、又は、ヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な比率である)。したがって、一部の実施形態では、押圧入力は、押圧入力強度閾値を上回る対応する接触の強度の増大、及び後続の、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、対応する動作は、そのヒステリシス強度閾値を下回る、後続の対応する接触の強度の減少(例えば、対応する押圧入力の「アップストローク」)の検出に応じて、実行される。同様に、一部の実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への、後続の接触の強度の減少を検出する場合にのみ検出され、対応する動作は、その押圧入力の検出(例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少)に応じて、実行される。
【0176】
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応じて、又はその押圧入力を含むジェスチャに応じて実行される動作の説明は、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じて、任意選択的にトリガされる。更に加えて、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて動作が実行されるとして説明される実施例では、その動作は、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る、接触の強度の減少を検出したことに応じて任意選択的に実行される。
3.デジタルアシスタントシステム
【0177】
図7Aは、様々な実施例に係る、デジタルアシスタントシステム700のブロック図を示す。いくつかの実施例では、デジタルアシスタントシステム700はスタンドアロンコンピュータシステム上に実装される。いくつかの実施例では、デジタルアシスタントシステム700は複数のコンピュータにわたって分散される。いくつかの実施例では、デジタルアシスタントのモジュール及び機能のいくつかはサーバ部分及びクライアント部分に分割される。この場合には、クライアント部分は1つ以上のユーザデバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス400、デバイス600、デバイス800、デバイス900、デバイス1000、又はデバイス1100)上に常駐し、例えば、図1に示すように、1つ以上のネットワークを通してサーバ部分(例えば、サーバシステム108)と通信する。いくつかの実施例では、デジタルアシスタントシステム700は、図1に示したサーバシステム108(及び/又はDAサーバ106)の一実装形態である。デジタルアシスタントシステム700はデジタルアシスタントシステムの単なる一実施例にすぎず、デジタルアシスタントシステム700は、図示されているよりも多数若しくは少数の構成要素を有することができ、2つ以上の構成要素を組み合わせることができ、又は構成要素の異なる構成若しくは配置を有することができることに留意されたい。図7Aに示す様々な構成要素は、1つ以上の信号処理回路及び/若しくは特定用途向け集積回路を含む、ハードウェア、1つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、又はそれらの組み合わせの形態で実装される。
【0178】
デジタルアシスタントシステム700は、メモリ702、1つ以上のプロセッサ704、入出力(I/O)インターフェース706、及びネットワーク通信インターフェース708を含む。これらの構成要素は1本以上の通信バス又は信号線710を介して、互いに通信することができる。
【0179】
いくつかの実施例では、メモリ702は、高速ランダムアクセスメモリ及び/又は不揮発性コンピュータ可読記憶媒体(例えば、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体メモリデバイス)等、非一時的コンピュータ可読媒体を含む。
【0180】
いくつかの実施例では、I/Oインターフェース706は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォン等の、デジタルアシスタントシステム700の入出力デバイス716をユーザインターフェースモジュール722に連結する。I/Oインターフェース706は、ユーザインターフェースモジュール722と協働して、ユーザ入力(例えば、音声入力、キーボード入力、タッチ入力等)を受け取り、それらを適宜に処理する。いくつかの実施例では、例えば、デジタルアシスタントが独立型ユーザデバイス上に実装される場合には、デジタルアシスタントシステム700は、図2A、図4、図6A〜図6B、図8A〜図8B、図9A〜図9B、図10A〜図10B、及び図11においてそれぞれデバイス200、デバイス400、デバイス600、デバイス800、デバイス900、デバイス1000、又はデバイス1100に関連して説明されている構成要素及びI/O通信インターフェースの任意のものを含む。いくつかの実施例では、デジタルアシスタントシステム700はデジタルアシスタントの実施形態のサーバ部分を表し、ユーザデバイス(例えば、デバイス104、デバイス200、デバイス400、デバイス600、デバイス800、デバイス900、デバイス1000、又はデバイス1100)上に常駐するクライアント側部分を通してユーザと対話することができる。
【0181】
いくつかの実施例では、ネットワーク通信インターフェース708は、有線通信ポート(単数又は複数)712及び/又は無線送受信回路714を含む。有線通信ポート(単数又は複数)は、1つ以上の有線インターフェース、例えば、イーサネット(登録商標)、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)等を介して通信信号を受信及び送信する。無線回路714は、通信ネットワーク及び他の通信デバイスを起点/終点として、RF信号及び/又は光信号を受信及び送信する。無線通信は、GSM(登録商標)、EDGE、CDMA、TDMA、Bluetooth(登録商標)、Wi−Fi(登録商標)、VoIP、Wi−MAX(登録商標)、あるいは任意のその他の好適な通信プロトコル等の、複数の通信規格、プロトコル及び技術のうちの任意のものを使用する。ネットワーク通信インターフェース708は、インターネット、イントラネット等のネットワーク、及び/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)等の無線ネットワーク、及び/又はメトロポリタンエリアネットワーク(Metropolitan Area Network、MAN)を用いた、デジタルアシスタントシステム700と他のデバイスとの間の通信を可能にする。
【0182】
いくつかの実施例では、メモリ702、又はメモリ702のコンピュータ可読記憶媒体は、オペレーティングシステム718、通信モジュール720、ユーザインターフェースモジュール722、1つ以上のアプリケーション724、及びデジタルアシスタントモジュール726のすべて又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶する。詳細には、メモリ702又はメモリ702のコンピュータ可読記憶媒体は、以下で説明するプロセスを実行する命令を記憶する。1つ以上のプロセッサ704はこれらのプログラム、モジュール、及び命令を実行し、データ構造から/への読み出し/書き込みを行う。
【0183】
オペレーティングシステム718(例えば、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、iOS(登録商標)、OS X(登録商標)、WINDOWS(登録商標)、又はVxWorks等の組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶装置制御、電力管理等)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、種々のハードウェア、ファームウェア、及びソフトウェア構成要素間の通信を可能にする。
【0184】
通信モジュール720は、ネットワーク通信インターフェース708上でのデジタルアシスタントシステム700と他のデバイスとの間の通信を可能にする。例えば、通信モジュール720は、図2A、図4、図6A〜図6Bにそれぞれ示すデバイス200、デバイス400、及びデバイス600等の電子デバイスのRF回路208と通信する。通信モジュール720はまた、無線回路機構714及び/又は有線通信ポート712によって受信されたデータを処理するための種々の構成要素も含む。
【0185】
ユーザインターフェースモジュール722はI/Oインターフェース706を介して(例えば、キーボード、タッチスクリーン、ポインティングデバイス、コントローラ、及び/又はマイクロフォンから)ユーザからのコマンド及び/又は入力を受け取り、ディスプレイ上にユーザインターフェースオブジェクトを生成する。ユーザインターフェースモジュール722はまた、I/Oインターフェース706を介した(例えば、ディスプレイ、オーディオチャネル、スピーカ、タッチパッド等を通じて)ユーザへの出力(例えば、発語、音声、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光等)も準備及び配信する。
【0186】
アプリケーション724は、1つ以上のプロセッサ704により実行されるように構成されたプログラム及び/又はモジュールを含む。例えば、デジタルアシスタントシステムがスタンドアロンのユーザデバイス上に実装される場合には、アプリケーション724は、ゲーム、カレンダアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーション等の、ユーザアプリケーションを含む。デジタルアシスタントシステム700がサーバ上に実装される場合には、アプリケーション724は、例えば、リソース管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含む。
【0187】
メモリ702はまた、デジタルアシスタントモジュール726(又はデジタルアシスタントのサーバ部分)も記憶する。いくつかの実施例では、デジタルアシスタントモジュール726は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含む:入出力処理モジュール728、音声テキスト化(Speech−To−Text、STT)処理モジュール730、自然言語処理モジュール732、ダイアログフロー処理モジュール734、タスクフロー処理モジュール736、サービス処理モジュール738、及び音声合成モジュール740。これらのモジュールの各々は、デジタルアシスタントモジュール726の以下のシステム又はデータ及びモデルのうちの1つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有する:オントロジ760、語彙索引744、ユーザデータ748、タスクフローモデル754、サービスモデル756、及びASRシステム。
【0188】
いくつかの実施例では、デジタルアシスタントモジュール726内に実装された処理モジュール、データ、及びモデルを用いて、デジタルアシスタントは以下のもののうちの少なくともいくつかを実行することができる:音声入力をテキストに変換すること、ユーザから受信した自然言語入力内に表現されているユーザの意図を特定すること、ユーザの意図を完全に推測するために必要な情報を(例えば、単語、ゲーム、意図等の曖昧さを除去することによって)能動的に引き出し、取得すること、推測された意図を満たすためのタスクフローを判定すること、及び、そのタスクフローを実行し、推測された意図を満たすこと。
【0189】
いくつかの実施例では、図7Bに示すように、I/O処理モジュール728は、ユーザ入力(例えば、音声入力)を取得するため、及びユーザ入力への応答を(例えば、音声出力として)提供するために、図7AにおけるI/Oデバイス716を通してユーザと対話するか、又は、図7Aにおけるネットワーク通信インターフェース708を通してユーザデバイス(例えば、デバイス104、デバイス200、デバイス400、又はデバイス600)と対話する。I/O処理モジュール728は、ユーザ入力と共に、又はその受信の直後に、ユーザ入力に関連付けられるコンテキスト情報をユーザデバイスから任意選択的に取得する。コンテキスト情報は、ユーザ入力に関連するユーザ固有のデータ、語彙、及び/又は嗜好を含む。いくつかの実施例では、コンテキスト情報はまた、ユーザ要求が受信された時点におけるユーザデバイスのソフトウェア及びハードウェア状態、並びに/又はユーザ要求が受信された時点におけるユーザの周囲環境に関する情報も含む。いくつかの実施例では、I/O処理モジュール728はまた、ユーザ要求について、ユーザに補足質問を送信し、ユーザから回答を受信する。ユーザ要求がI/O処理モジュール728によって受信され、そのユーザ要求が音声入力を含んでいる場合、I/O処理モジュール728は、音声テキスト化変換のために、その音声入力をSTT処理モジュール730(又は音声レコナイザ)へ転送する。
【0190】
STT処理モジュール730は1つ以上のASRシステムを含む。1つ以上のASRシステムは、I/O処理モジュール728を介して受信した音声入力を処理して、認識結果を生成することができる。各ASRシステムは、フロントエンド音声プリプロセッサを含む。フロントエンド音声プリプロセッサは、音声入力から代表的な特徴を抽出する。例えば、フロントエンド音声プリプロセッサは、音声入力を代表的な多次元ベクトルの列として特徴付けるスペクトルの特徴を抽出するために、音声入力に対してフーリエ変換を実行する。更に、各ASRシステムは、1つ以上の音声認識モデル(例えば、音響モデル及び/又は言語モデル)を含み、1つ以上の音声認識エンジンを実装する。音声認識モデルの実施例は、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、nグラム言語モデル、及び他の統計モデルを含む。音声認識エンジンの実施例は、動的時間伸縮ベースのエンジン及び重み付き有限状態トランスデューサ(Weighted Finite−State Transducers、WFST)ベースのエンジンを含む。フロントエンド音声プリプロセッサの抽出された代表的な特徴を処理して、中間認識結果(例えば、音素、音素文字列及びサブワード)を生成し、最終的には、テキスト認識結果(例えば、単語、単語文字列、又はトークンの列)を生成するために、1つ以上の音声認識モデル及び1つ以上の音声認識エンジンが使用される。いくつかの実施例では、音声入力は、認識結果を生成するために、サードパーティサービスによって、又はユーザのデバイス(例えば、デバイス104、デバイス200、デバイス400、又はデバイス600)上で少なくとも部分的に処理される。STT処理モジュール730が、テキスト文字列(例えば、単語、又は単語の列、又はトークンの列)を包含する認識結果を生成すると、認識結果は意図推論のために自然言語処理モジュール732に渡される。いくつかの例では、STT処理モジュール730は、音声入力の複数の候補テキスト表現を生成する。各候補テキスト表現は、音声入力に対応する単語又はトークンの列である。いくつかの例では、各候補テキスト表現は、音声認識信頼度スコアに関連付けられる。STT処理モジュール730は、音声認識信頼度スコアに基づいて、候補テキスト表現をランク付けし、最良のn個(例えば、最上位のn個)の候補テキスト表現(単数又は複数)を意図推論のために自然言語処理モジュール732に提供し、nはゼロより大きい既定の整数である。例えば、1つの例において、最上位の1個(n=1)の候補テキスト表現のみが、意図推論のために自然言語処理モジュール732に渡される。別の例では、最上位の5個(n=5)の候補テキスト表現が、意図推論のために自然言語処理モジュール732に渡される。
【0191】
音声テキスト化処理についての更なる詳細が、2011年9月20日に出願された、「Consolidating Speech Recognition Results」についての米国実用特許出願第13/236,942号に記載されている。同出願の開示全体は本明細書において参照により組み込まれている。
【0192】
いくつかの実施例では、STT処理モジュール730は、認識可能な単語の語彙を含み、かつ/又は、音標アルファベット変換モジュール731を介してそれにアクセスする。各語彙語は、1つ以上の音声認識音標アルファベットで表される単語の発音候補と関連付けられる。詳細には、認識可能な単語の語彙は、複数の発音候補に関連付けられた単語を含む。例えば、語彙は、発音候補
に関連付けられた単語「トマト」を含む。更に、語彙語は、ユーザからの以前の音声入力に基づくカスタム発音候補に関連付けられる。そのようなカスタム発音候補は、STT処理モジュール730に記憶され、デバイス上のユーザのプロファイルを介して、特定のユーザに関連付けられる。いくつかの実施例では、単語の綴り並びに1つ以上の言語規則及び/又は音標規則に基づいて、単語の発音候補が判定される。いくつかの実施例では、例えば、既知の正規発音に基づいて、発音候補が手動で生成される。
【0193】
いくつかの実施例では、発音候補の一般性に基づいて、発音候補がランク付けされる。例えば、発音候補
は、
よりも高くランク付けされるが、これは、発音候補
が(例えば、全ユーザのうち、特定の地理的領域のユーザについて、又は、任意の他の適切なユーザのサブセットについて)より一般的に使用される発音だからである。いくつかの実施例では、発音候補が、ユーザに関連付けられたカスタム発音候補であるかどうかに基づいて、その発音候補がランク付けされる。例えば、カスタム発音候補は、正規発音候補よりも高くランク付けされる。このことは、正規発音から逸脱して独特の発音を有する固有名詞を認識するために有用であり得る。いくつかの実施例では、発音候補は、出身地、国籍又は民族性等の1つ以上の音声特性と関連付けられる。例えば、発音候補
は米国と関連付けられるのに対し、発音候補
は英国と関連付けられる。更に、発音候補のランクは、デバイス上のユーザのプロファイルに記憶されたユーザの1つ以上の特性(例えば、出身地、国籍、民族等)に基づく。例えば、ユーザのプロファイルから、ユーザが米国に関連付けられていることを判定することができる。ユーザが米国に関連付けられていることに基づいて、(米国に関連付けられた)発音候補
が、(英国に関連付けられた)発音候補
よりも高くランク付けされる。いくつかの実施例では、ランク付けされた発音候補のうちの1つが、予測された発音(例えば、最も可能性が高い発音)として選択される。
【0194】
音声入力が受信されると、STT処理モジュール730が、音声入力に対応する音素を(例えば、音響モデルを用いて)決定し、次に、音素に一致する単語を(例えば、言語モデルを用いて)決定することを試みるために使用される。例えば、STT処理モジュール730は、音声入力の一部分に対応する音素の列
を最初に特定した場合、語彙インデックス744に基づいて、この音素の列が単語「トマト」に対応すると判定することができる。
【0195】
いくつかの実施例では、STT処理モジュール730は、近似マッチング技法を使用して、発言内の単語を判定する。したがって、例えば、STT処理モジュール730は、特定の音素の列が、単語「トマト」の候補音素の列のうちの1つではない場合でも、音素の列
が単語「トマト」に対応すると判定する。
【0196】
デジタルアシスタントの自然言語処理モジュール732(「自然言語プロセッサ」)は、STT処理モジュール730によって生成された最良のn個の候補テキスト表現(単数又は複数)(「単語列(単数又は複数)」又は「トークン列(単数又は複数)」)を受け取り、各候補テキスト表現を、デジタルアシスタントにより認識される1つ以上の「実施可能な意図」に関連付けようと試みる。「実施可能な意図」(又は「ユーザの意図」)は、デジタルアシスタントにより実行することができるタスクを表し、タスクフローモデル754内に実装される、関連付けられたタスクフローを有することができる。関連付けられたタスクフローは、タスクを実行するためにデジタルアシスタントが取る一連のプログラムされたアクション及びステップである。デジタルアシスタントの能力の範囲は、タスクフローモデル754内に実装され、記憶されているタスクフローの数及び種類に依存し、又は、換言すれば、デジタルアシスタントが認識する「実施可能な意図」の数及び種類に依存する。しかし、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正しい「実施可能な意図(単数又は複数)」を推定するアシスタントの能力にも依存する。
【0197】
いくつかの実施例では、STT処理モジュール730から取得される単語又はトークン列に加えて、自然言語処理モジュール732はまた、例えば、I/O処理モジュール728から、ユーザ要求に関連付けられるコンテキスト情報も受信する。自然言語処理モジュール732は、任意選択的に、コンテキスト情報を使用して、STT処理モジュール730から受信した候補テキスト表現内に包含されている情報を明らかにし、補完し、かつ/又は更に定義する。コンテキスト情報は、例えば、ユーザの嗜好、ユーザデバイスのハードウェア及び/又はソフトウェア状態、ユーザ要求の前、最中、又は直後に集められたセンサ情報、デジタルアシスタントとユーザとの間の以前の対話(例えば、ダイアログ)等を含む。本明細書で説明するように、コンテキスト情報は、いくつかの実施例では動的であり、かつ時間、場所、ダイアログの内容及び他の因子によって変化する。
【0198】
いくつかの実施例では、自然言語処理は、例えばオントロジ760に基づく。オントロジ760は、多数のノードを包含する階層構造であり、各ノードは、「実施可能な意図群」又はその他の「属性群」のうちの1つ以上に関連する「実施可能な意図」又は「属性」のいずれかを表す。上述したように、「実施可能な意図」は、デジタルアシスタントが実行可能なタスク、すなわち、「実施可能」であるか、又はアクションを及ぼされ得るタスクを表す。「属性」は、実施可能な意図、又は別の属性の下位態様に関連付けられるパラメータを表す。オントロジ760内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードによって表されるパラメータが、実施可能な意図ノードによって表されるタスクにどのように関連するのかを定義する。
【0199】
いくつかの実施例では、オントロジ760は実施可能な意図ノード及び属性ノードで構成される。オントロジ760内において、それぞれの実施可能な意図ノードは1つ以上の属性ノードに直接又は1つ以上の中間属性ノードを介してリンクされる。同様に、それぞれの属性ノードは、1つ以上の実施可能な意図ノードに直接又は1つ以上の中間属性ノードを介してリンクされる。例えば、図7Cに示すように、オントロジ760は、「レストラン予約」ノード(すなわち、実施可能な意図ノード)を含む。属性ノードである「レストラン」、「日付/時間」(予約用)及び「参加人数」が、実施可能な意図ノード(すなわち、「レストラン予約」ノード)にそれぞれ直接に接続される。
【0200】
更に、属性ノードである「料理」、「価格帯」、「電話番号」及び「ロケーション」は、属性ノード「レストラン」のサブノードであり、中間属性ノード「レストラン」を介して「レストラン予約」ノード(すなわち、実施可能な意図ノード)にそれぞれ接続される。別の例として、図7Cに示すように、オントロジ760は「リマインダ設定」ノード(すなわち、別の実施可能な意図ノード)も含む。属性ノード「日付/時間」(リマインダ設定用)及び「テーマ」(リマインダ用)は、「リマインダ設定」ノードにそれぞれリンクされる。属性ノード「日付/時間」は、レストラン予約をするタスク及びリマインダを設定するタスクの両方に関連しているため、属性ノード「日付/時間」はオントロジ760内において「レストラン予約」ノード及び「リマインダ設定」ノードの両方にリンクされる。
【0201】
実施可能な意図ノードは、そのリンクされた属性ノードと共に、「ドメイン」として説明される。本説明では、各ドメインは、それぞれの実施可能な意図に関連付けられ、特定の実施可能な意図に関連付けられたノードのグループ(及びノード間の関係)を指す。例えば、図7Cに示すオントロジ760は、オントロジ760内のレストラン予約ドメイン762の例及びリマインダドメイン764の例を含む。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付/時間」、及び「参加人数」、並びに下位属性ノード「料理」、「価格帯」、「電話番号」及び「ロケーション」を含む。リマインダドメイン764には、実施可能な意図ノード「リマインダ設定」、及び属性ノード「テーマ」及び「日付/時間」が含まれている。いくつかの実施例では、オントロジ760は多くのドメインで構成される。各ドメインは、1つ以上の他のドメインと、1つ以上の属性ノードを共有する。例えば、「日付/時間」属性ノードは、レストラン予約ドメイン762及びリマインダドメイン764に加えて、多くの異なるドメイン(例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメイン等)に関連付けられる。
【0202】
図7Cは、オントロジ760内に2つの例示的なドメインを示すが、他のドメインとして、例えば、「映画を探す」、「電話をかける」、「道順を探す」、「会議をスケジュールする」、「メッセージを送信する」、及び「質問の答えを提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、「タスクの手順を提供する」等が挙げられ得る。「メッセージを送信する」のドメインは、「メッセージを送信する」の実施可能な意図ノードに関連付けられ、「受信者(単数又は複数)」、「メッセージタイプ」、及び「メッセージ本文」等の属性ノードを更に含む。属性ノード「受信者」は、例えば、「受信者名」及び「メッセージアドレス」等の下位属性ノードによって更に定義される。
【0203】
いくつかの実施例では、オントロジ760は、デジタルアシスタントが理解し、作用を及ぼすことができるすべてのドメイン(したがって実施可能な意図)を含む。いくつかの実施例では、オントロジ760は、ドメイン若しくはノード全体を追加若しくは除去すること、又はオントロジ760内のノード間の関係を変更すること等によって、修正される。
【0204】
いくつかの実施例では、複数の関連する実施可能な意図に関連付けられるノードは、オントロジ760内の「上位ドメイン」の下にクラスタ化される。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードのクラスタを含む。旅行に関連する実施可能な意図ノードは、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」等を含む。同じ上位ドメイン(例えば、「旅行」上位ドメイン)の下の実施可能な意図ノードは、多くの属性ノードを共有する。例えば、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、及び「興味のある場所を探す」についての実施可能な意図ノードは、属性ノードである「出発場所」、「目的地」、「出発日/時間」、「到着日/時間」、及び「参加人数」のうちの1つ以上を共有する。
【0205】
いくつかの実施例では、オントロジ760内の各ノードは、そのノードによって表される属性又は実施可能な意図に関連する単語及び/又はフレーズのセットに関連付けられる。各ノードに関連付けられる単語及び/又はフレーズのそれぞれのセットは、そのノードに関連付けられるいわゆる「語彙」である。各ノードに関連付けられる単語及び/又はフレーズのそれぞれのセットは、ノードによって表される属性又は実施可能な意図に関連して語彙索引744内に記憶される。例えば、図7Bに戻ると、「レストラン」の属性についてのノードに関連付けられる語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」等の単語を含む。別の例として、「通話を開始する(initiate a phone call)」という実施可能な意図のノードに関連付けられる語彙は、「電話する(call)」、「電話(phone)」、「ダイヤルする(dial)」、「電話をかける(ring)」、「この番号に電話する(call this number)」、「〜に電話をかける(make a call to)」等の単語及びフレーズを含む。語彙索引744は異なる言語の単語及びフレーズを任意選択的に含む。
【0206】
自然言語処理モジュール732は、STT処理モジュール730から候補テキスト表現(例えば、テキスト列(単数又は複数)又はトークン列(単数又は複数))を受け取り、候補表現ごとに、候補テキスト表現内の単語にどのノードが関係しているかを決定する。いくつかの実施例では、候補テキスト表現内の単語又はフレーズが(語彙索引744を介して)オントロジ760内の1つ以上のノードに関連付けられていることがわかった場合、その単語又はフレーズが、それらのノードを「トリガ」又は「アクティブ化」する。アクティブ化されたノードの量及び/又は相対的重要度に基づき、自然言語処理モジュール732は、ユーザがデジタルアシスタントに実行させようと意図したタスクとして、実施可能な意図のうちの1つを選択する。いくつかの実施例では、最も多く「トリガされた」ノードを有するドメインが選択される。いくつかの実施例では、最も高い信頼値(例えば、その種々のトリガされたノードの相対的重要度に基づく)を有するドメインが選択される。いくつかの実施例では、ドメインは、トリガされたノードの数及び重要度の組み合わせに基づき選択される。いくつかの実施例では、ノードを選択する際には、デジタルアシスタントはユーザからの同様の要求を以前に正確に解釈したかどうか等の追加の因子も考慮される。
【0207】
ユーザデータ748は、ユーザ固有語彙、ユーザの嗜好、ユーザアドレス、ユーザの既定言語及び第二言語、ユーザの連絡先リスト、並びに各ユーザに関するその他の短期的又は長期的情報等の、ユーザ固有の情報を含む。いくつかの実施例では、自然言語処理モジュール732は、ユーザ入力内に包含されている情報を補完してユーザ意図を更に明確にするために、ユーザ固有の情報を使用する。例えば、ユーザ要求「私の誕生日パーティに私の友人を招待してほしい」に対して、自然言語処理モジュール732は、誰が「友人」であり、いつ及びどこで「誕生日パーティ」が催されるのであろうかを判定するために、こうした情報をユーザの要求内で明示的に提供するようにユーザに要請する代わりに、ユーザデータ748にアクセスすることができる。
【0208】
いくつかの実施例では、自然言語処理モジュール732が、1つ以上の機械学習機構(例えば、ニューラルネットワーク)を用いて実装されるということが認識されるべきである。具体的には、1つ以上の機械学習機構は、候補テキスト表現と、候補テキスト表現に関連付けられたコンテキスト情報とを受け取るように構成される。1つ以上の機械学習機構は、候補テキスト表現及び関連するコンテキスト情報に基づいて、実施可能な意図の候補のセットにわたる意図信頼度スコアを決定するように構成される。自然言語処理モジュール732は、決定された意図信頼度スコアに基づいて、実施可能な意図の候補のセットから1つ以上の実施可能な意図の候補を選択することができる。また、いくつかの実施例では、オントロジ(例えば、オントロジ760)が、1つ以上の実施可能な意図の候補を実施可能な意図の候補のセットから選択するために使用される。
【0209】
トークン文字列に基づくオントロジ検索のその他の詳細が、2008年12月22日出願の「Method and Apparatus for Searching Using an Active Ontology」に対する米国実用特許出願第12/341,743号に記載されている。同出願の開示全体は本明細書において参照により組み込まれている。
【0210】
いくつかの実施例では、自然言語処理モジュール732が、ユーザ要求に基づいて、実施可能な意図(又はドメイン)を特定すると、自然言語処理モジュール732は、特定された実施可能な意図を表すように、構造化されたクエリを生成する。いくつかの実施例では、構造化されたクエリは、実施可能な意図のためのドメイン内の1つ以上のノードのためのパラメータを含み、パラメータの少なくとも一部には、ユーザ要求内で指定される特定の情報及び要求事項が入力される。例えば、ユーザが「私のために7時に寿司屋で夕食の予約を取ってください」と言うとする。この場合、自然言語処理モジュール732は、ユーザ入力に基づき、実施可能な意図を「レストラン予約」であると正確に特定することができる。オントロジによれば、「レストラン予約」ドメインのための構造化されたクエリは、{料理}、{時間}、{日付}、{参加人数}、及び同様のもの等のパラメータを含む。いくつかの実施例では、音声入力、及びSTT処理モジュール730を用いて音声入力から導き出されたテキストに基づいて、自然言語処理モジュール732は、レストラン予約ドメインのための部分的な構造化されたクエリを生成する。この場合、部分的な構造化されたクエリはパラメータ{料理=「寿司」}及びパラメータ{時間=「午後7時」}を含む。しかし、本例では、ユーザの発言は、ドメインに関連付けられる構造化されたクエリを完成するために十分な情報を包含していない。したがって、{参加人数}及び{日付}等のその他の必要パラメータは、現在利用可能な情報に基づいては、構造化されたクエリ内に指定されない。いくつかの実施では、自然言語処理モジュール732は、構造化されたクエリのいくつかのパラメータに、受信したコンテキスト情報を入力する。例えば、いくつかの実施例では、ユーザが「私の近くの」寿司レストランを要求した場合、自然言語処理モジュール732は、構造化されたクエリ内の{ロケーション}パラメータにユーザデバイスからのGPS座標を入力する。
【0211】
いくつかの例では、自然言語処理モジュール732は、STT処理モジュール730から受信した候補テキスト表現ごとに、複数の実施可能な意図の候補を特定する。更にいくつかの例では、特定された実施可能な意図の候補ごとに、(部分的又は完全な)構造化されたクエリがそれぞれ生成される。自然言語処理モジュール732は、実施可能な意図の候補ごとに意図信頼度スコアを決定し、その意図信頼度スコアに基づいて実施可能な意図の候補をランク付けする。いくつかの実施例では、自然言語処理モジュール732は、任意の完成したパラメータを含む生成した構造化されたクエリ(単数又は複数)を、タスクフロー処理モジュール736(「タスクフロープロセッサ」)に渡す。いくつかの実施例では、最良のm個(例えば、最上位のm個)の実施可能な意図の候補のための構造化されたクエリ(単数又は複数)がタスクフロー処理モジュール736に提供され、mはゼロより大きい既定の整数である。いくつかの実施例では、最良のm個の実施可能な意図の候補のための構造化されたクエリ(単数又は複数)が、対応する候補テキスト表現(単数又は複数)と共に、タスクフロー処理モジュール736に提供される。
【0212】
音声入力の複数の候補テキスト表現から決定された複数の実施可能な意図の候補に基づくユーザの意図の推測に関するその他の詳細は、2014年6月6日に出願された米国実用特許出願第14/298,725号「System and Method for Inferring User Intent From Speech Inputs」に記載されており、同出願の開示全体は本明細書において参照により組み込まれている。
【0213】
タスクフロー処理モジュール736は、自然言語処理モジュール732から、構造化されたクエリ(単数又は複数)を受信し、必要ならば、構造化されたクエリを完成させ、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するように構成される。いくつかの実施例では、これらのタスクを完了させるために必要な様々な手順がタスクフローモデル754内で提供される。いくつかの実施例では、タスクフローモデル754は、ユーザから追加情報を取得するための手順、及び実施可能な意図に関連付けられるアクションを実行するためのタスクフローを含む。
【0214】
上述したように、構造化されたクエリを完成させるために、タスクフロー処理モジュール736は、追加情報を取得し、かつ/又は潜在的に曖昧な発言の曖昧性を回避するために、ユーザとの追加のダイアログを開始することが必要になる。このような対話が必要となる場合には、タスクフロー処理モジュール736は、ユーザとのダイアログに携わるためにダイアログフロー処理モジュール734を呼び出す。いくつかの実施例では、ダイアログフロー処理モジュール734は、どのように(及び/又はいつ)ユーザに追加情報を求めるべきかを決定し、ユーザ応答を受信し、これらを処理する。I/O処理モジュール728を通じてユーザに質問が提供され、ユーザから回答が受け取られる。いくつかの実施例では、ダイアログフロー処理モジュール734は、音声及び/又は視覚出力を介してユーザにダイアログ出力を提示し、口頭の応答又は物理的な(例えば、クリック)応答を介してユーザから入力を受信する。上述の例を続けると、タスクフロー処理モジュール736が、ドメイン「レストラン予約」に関連付けられる構造化されたクエリについての「参加人数」及び「日付」情報を決定するためにダイアログフロー処理モジュール734を呼び出すと、ダイアログフロー処理モジュール734は、「何人分ですか?」及び「どの日にしますか?」等の質問を、ユーザに渡すために生成する。ユーザから回答が受信されると、次に、ダイアログフロー処理モジュール734は、構造化されたクエリに、欠けている情報を入力するか、又は構造化されたクエリから欠けている情報を完成させるために、その情報をタスクフロー処理モジュール736に渡す。
【0215】
タスクフロー処理モジュール736が、実施可能な意図のための構造化されたクエリを完成すると、タスクフロー処理モジュール736は、実施可能な意図に関連付けられる最終的なタスクの実行に進む。それに応じて、タスクフロー処理モジュール736は、構造化されたクエリ内に包含されている具体的なパラメータに応じて、タスクフローモデル内のステップ及び命令を実行する。例えば、「レストラン予約」の実施可能な意図のためのタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に希望するためのステップ及び命令を含む。例えば、{レストラン予約、レストラン=ABC Cafe、日付=3/12/2012、時間=午後7時、参加人数=5}、等の構造化されたクエリを用いて、タスクフロー処理モジュール736は、(1)ABC Cafeのサーバ、又はOPENTABLE(登録商標)等のレストラン予約システムにログオンするステップと、(2)ウェブサイト上のフォーム内に日付、時間、及び参加人数情報を入力するステップと、(3)フォームを送信するステップと、(4)ユーザのカレンダ内に予約のためのカレンダ項目を記入するステップと、を実行する。
【0216】
いくつかの実施例では、タスクフロー処理モジュール736は、ユーザ入力で要求されたタスクを完了するために、又はユーザ入力で要求された情報の回答を提供するために、サービス処理モジュール738(「サービス処理モジュール」)の支援を採用する。例えば、サービス処理モジュール738は、電話をかけるため、カレンダ項目を設定するため、マップ検索を呼び出すため、ユーザデバイス上にインストールされているその他のユーザアプリケーションを呼び出すか又はそれと対話するため、及びサードパーティサービス(例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータル等)を呼び出すか又はそれと対話するために、タスクフロー処理モジュール736の代わりに動作する。いくつかの実施例では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインターフェース(application programming interface、API)は、サービスモデル756の中のそれぞれのサービスモデルによって指定される。サービス処理モジュール738は、サービスに適したサービスモデルにアクセスし、サービスモデルに従ってサービスによって必要とされるプロトコル及びAPIに従ってサービスの要求を生成する。
【0217】
例えば、レストランがオンライン予約サービスを可能にしている場合には、レストランは、予約を行うために必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ伝達するためのAPIを指定するサービスモデルを提出する。タスクフロー処理モジュール736によって要求されると、サービス処理モジュール738は、サービスモデルに記憶されているウェブアドレスを用いて、オンライン予約サービスとのネットワーク接続を確立し、必要な予約のパラメータ(例えば、時間、日付、参加人数)を、オンライン予約サービスのAPIに従う形式でオンライン予約インターフェースへ送信する。
【0218】
いくつかの実施例では、ユーザの意図を推定して明確にし、ユーザ意図を更に明らかにして絞り込むための情報を入手し、ユーザの意図を達成するべく応答(すなわち、ユーザへの出力又はタスクの完了)を最終的に生成するために、自然言語処理モジュール732、ダイアログフロー処理モジュール734、及びタスクフロー処理モジュール736が集合的かつ反復的に使用される。生成された応答は、ユーザの意図を少なくとも部分的に達成する、音声入力へのダイアログ応答になる。更に、いくつかの実施例では、生成された応答は、音声出力として出力される。これらの実施例では、生成された応答は、音声合成モジュール740(例えば、音声合成器)に送信され、そこで、生成された応答を処理して、音声形態のダイアログ応答を合成することができる。更に他の実施例では、生成された応答は、音声入力のユーザ要求を満たすことに関連するデータコンテンツになる。
【0219】
タスクフロー処理モジュール736が自然言語処理モジュール732から複数の構造化されたクエリを受信する例において、タスクフロー処理モジュール736は、受信された構造化されたクエリのうちの第1の構造化されたクエリを最初に処理し、第1の構造化されたクエリを完成させようとするか、かつ/又は第1の構造化されたクエリによって表される1つ以上のタスク又はアクションを実行しようとする。いくつかの実施例では、第1の構造化されたクエリは、最上位の実施可能な意図に対応する。他の実施例では、第1の構造化されたクエリは、対応する音声認識信頼度スコアと対応する意図信頼度スコアとの組み合わせに基づいて、受信された構造化されたクエリから選択される。いくつかの実施例では、タスクフロー処理モジュール736で、(例えば、必要なパラメータを決定できないことにより)第1の構造化されたクエリ処理中にエラーが発生した場合、タスクフロー処理モジュール736は、下位の実施可能な意図に対応する、受信された構造化されたクエリのうちの第2の構造化されたクエリを選択して処理することができる。第2の構造化されたクエリは、例えば、対応する候補テキスト表現の音声認識信頼度スコア、対応する実施可能な意図の候補の意図信頼度スコア、第1の構造化されたクエリ内で欠落している必要なパラメータ、又はこれらの任意の組み合わせに基づいて選択される。
【0220】
音声合成モジュール740は、ユーザに提示するために、音声出力を合成するように構成される。音声合成モジュール740は、デジタルアシスタントにより提供されたテキストに基づいて、音声出力を合成する。例えば、生成されたダイアログ応答は、テキスト文字列の形態である。音声合成モジュール740は、テキスト文字列を可聴の音声出力に変換する。音声合成モジュール740は、テキストから音声出力を生成するために、波形接続合成、単位選択合成、ダイフォン合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル(HMM)ベースの合成、及びサイン波合成を含むが、これらには限定されない任意の適切な音声合成技法を使用する。いくつかの実施例では、音声合成モジュール740は、単語に対応する音素文字列に基づいて、個々の単語を合成するように構成される。例えば、音素文字列は、生成されたダイアログ応答中の単語に関連付けられる。音素文字列は、単語に関連付けられたメタデータ中に記憶される。音声合成モデル740は、単語を音声形式で合成するために、メタデータ内の音素文字列を直接処理するよう構成される。
【0221】
いくつかの実施例では、音声合成モジュール740の使用の代わりに(又は、それに加えて)、リモートデバイス(例えば、サーバシステム108)上で音声合成が実行され、合成された音声が、ユーザへの出力のために、ユーザデバイスに送信される。例えば、これは、デジタルアシスタントのための出力がサーバシステムにおいて生成される、いくつかの実装形態で起こり得る。また、サーバシステムは概して、ユーザデバイスよりも多くの処理電力又はリソースを有するので、クライアント側合成を用いた実用的な出力よりも高い品質の音声出力を取得することが可能である。
【0222】
デジタルアシスタントに関する追加の詳細は、その開示全体が参照により本明細書に組み込まれる、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.メディア探索のためにデジタルアシスタントの聴覚に基づくインターフェースを提供する例示的な技法
【0223】
図8A〜図8B、図9A〜図9B、図10A〜図10B、及び図11は、いくつかの実施形態に係る、デジタルアシスタントを提供する例示的なユーザインターフェース(「UI」)を含む例示的な技法を示す。これらの図は、図12〜図15の各プロセス1200、1300、1400、及び1500を含む、以下で説明されるプロセスを例示するためにも使用される。
【0224】
図8Aは、電子デバイス800を示す。電子デバイス800は、いくつかの実施形態では、デバイス200、デバイス400、及びデバイス600(図2A、図4、図6A〜図6B)の任意のものであってよい。示された実施例では、電子デバイス800は、1つ以上のスピーカを備えた電子デバイスであるが、電子デバイスが、電話、ラップトップコンピュータ、デスクトップコンピュータ、タブレット、ウェアラブルデバイス(例えば、スマートウォッチ)、セットトップボックス、テレビ、スピーカ、又はこれらの任意組み合わせ若しくは部分的組み合わせ等の、任意の種類のデバイスであってよいということが理解されるであろう。
【0225】
動作中に、電子デバイス800は、ユーザとインテリジェント自動アシスタント(又はデジタルアシスタント)との間の自然言語音声の交換を提供する。いくつかの実施例では、交換は純粋に聴覚による。いくつかの実施例では、交換は、追加的に又は代替的に視覚(例えば、グラフィカルユーザインターフェース及び/又は1つ以上のライトインジケータによる)及び/又は触覚による。
【0226】
図8Aでは、電子デバイス800は、電子デバイス800のデジタルアシスタントへの要求を示す自然言語音声入力810を(例えば、マイクロフォンを介して)受信する。自然言語音声入力810は、デジタルアシスタントに向けられ得る任意の要求を含むことができる。いくつかの実施例では、自然言語音声入力は、既定のトリガフレーズ(例えば、「ヘイシリ」)を含む。いくつかの実施例では、自然言語音声入力は、メディアアイテムの要求(例えば、「Rich Rubinが作った音楽を再生する」、「ラップの曲を再生する」、「80年代の曲を再生する」、「アップビートの曲を再生する」)を含む。図8Aを参照すると、ユーザ802は、特定のアーチストのメディアアイテムに対するトリガフレーズ及び要求を含んでいる自然言語音声入力810「ヘイシリ、アデルによるあの新しい曲を再生する」を提供する。
【0227】
いくつかの実施例では、電子デバイス800は、自然言語音声入力810を処理して、1つ以上のタスクを実行する。いくつかの実施例では、このようにして自然言語音声入力810を処理することは、例えば、STT処理モジュール730を使用して、自然言語音声入力の1つ以上の候補テキスト表現(例えば、テキスト列)を提供することを含む。説明したように、各候補テキスト表現は音声認識信頼度スコアに関連付けられてよく、それに応じて候補テキスト表現がランク付けされてよい。他の実施例では、自然言語入力はテキスト入力(例えば、電子デバイス800のタッチパッドを介して入力される)であり、n=1の場合の候補テキスト表現として提供される。このようにして候補テキスト表現として提供されるテキスト入力には、最大音声認識信頼度スコア、又は任意の他の音声認識信頼度スコアが割り当てられてよい。図8Aを参照すると、デジタルアシスタントは、候補テキスト表現「ヘイシリ、アデルによるあの新しい曲を再生する」を含む1つ以上の候補テキスト表現を提供する。
【0228】
いくつかの実施例では、電子デバイス800は、例えば、自然言語処理モジュール732を使用して、最良のn個(例えば、最上位の)候補テキスト表現に基づいて1つ以上の候補意図を提供する。各候補意図は意図信頼度スコアに関連付けられてよく、それに応じて候補意図がランク付けされてよい。いくつかの実施例では、候補テキスト表現ごとに複数の候補意図が特定される。更に、いくつかの実施例では、1つ以上のパラメータを含む(部分的又は完全な)構造化されたクエリが、候補意図ごとに生成される。図8Aを参照すると、電子デバイス800のデジタルアシスタントは、候補テキスト表現「ヘイシリ、アデルによるあの新しい曲を再生する」に基づく「メディアアイテムの推奨を取得する」という候補意図を含む、1つ以上の候補意図を提供する。更に、電子デバイス800のデジタルアシスタントは、{メディアアイテムの推奨を取得する、アーチスト=アデル、メディタイプ=曲、期間=新しい}という複数のパラメータを含む構造化されたクエリを決定する。
【0229】
その後、例えばタスクフロー処理モジュール736を使用して、最良のm個(例えば、最上位)の候補意図に基づいて、候補タスクが決定される。いくつかの実施例では、候補タスクは、最良のm個(例えば、最上位)の候補意図ごとに、構造化されたクエリに基づいて特定される。例として、説明したように、1つ以上のタスクフロー754等の1つ以上のタスクフローに従って、構造化されたクエリが実装されてよい。
【0230】
いくつかの実施例では、電子デバイス800は、特定されたパラメータに基づいて候補タスクを実行し、1つ以上の結果を得る。例えば、構造化されたクエリに基づいて、電子デバイス800のタスクフロー処理モジュール(例えば、タスクフロー処理モジュール736)は、プログラム、メソッド、サービス、API等を呼び出して、1つ以上の結果を取得する。結果としては、例えば、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせを含むが、これらに限定されない、1つ以上のメディアアイテムに関する情報が挙げられる。図8Aを参照すると、デジタルアシスタントは、構造化されたクエリ{メディアアイテムの推奨を取得する、アーチスト=アデル、メディタイプ=曲、期間=新しい}に基づいて、検索パラメータ「アデル」、「曲」、及び「新しい」を使用して、メディア検索を実行し、「Hello」(以下では、「第1のメディアアイテム」と呼ぶ)というタイトルの曲を特定する。
【0231】
その後、電子デバイス800は、第1のメディアアイテムを提供する。図8Aを参照すると、電子デバイス800のデジタルアシスタントは、曲「Hello」を再生812している。図に示されているように、デジタルアシスタントは、第1のメディアアイテムを再生しながら、第1のメディアアイテムの説明(例えば、言葉による説明)(「これはアデルによるHelloです」)を含む自然言語音声出力813も提供する。いくつかの実施例では、第1のメディアアイテムの再生及び第1のメディアアイテムの説明が同時に提供されてよい。
【0232】
いくつかの実施例では、電子デバイス800は、自然言語音声入力810に応答して、第1のメディアアイテムの一部を再生する。第1のメディアアイテムの一部は、メディアアイテムの代表サンプル(例えば、コーラス、最初の一節)であることができる。いくつかの実施例では、デジタルアシスタントは、第1のメディアアイテムに関連付けられた説明(例えば、「これはアデルによるHelloです」)を示す音声出力を提供しながら、その部分(例えば、コーラス)を再生する。ユーザが肯定応答(例えば、自然言語応答)を音声出力に対して提供した場合(例えば、「わかった、これを再生する」)、電子デバイス800は、第1のメディアアイテム全体を(例えば、最初から)再生する。本明細書では、層化オーディオ出力機構の詳細が更に説明される。
【0233】
いくつかの実施例では、電子デバイス800は、自然言語音声入力810に基づいて特定された複数のメディアアイテムの要約及び/又はリストを提供する(例えば、「このアーチストから多数の曲を取得しました。10曲のうちの最初の3曲は、「Hello」、...」)。いくつかの実施例では、電子デバイス800は、リストを提供する前に、1つ以上の提案(例えば、「何か好きな曲を聴く場合、又は次の5曲を聴く場合は、お知らせください」)を提供する。いくつかの実施例では、電子デバイスは、既定の回数の提案を提示した後に、提案を提供することを止める。例えば、電子デバイスは、同じメディアの要求に関して、「何か好きな曲を聴く場合は、お知らせください」という提案を3回提供した後に、この提案を提供することを止めることができる。メディアの推奨を提供することに関するその他の説明は、2016年9月23日に出願された米国特許出願第62/399,232号「INTELLIGENT AUTOMATED ASSISTANT」において提供されており、この出願は、その全体が本明細書において参照により組み込まれている。米国特許出願第62/399,232号は、特に、メディアコンテンツを提示するための複数の形式(例えば、アルバム名、曲名等)を出力する例示的な技法について説明している。
【0234】
電子デバイス800は、メディアアイテムを再生しながら自然言語音声入力を受信することができる。図8Aを参照すると、電子デバイス800は、「Hello」という曲を再生しながら、自然言語音声入力814(「実は、「I’m giving you up I’m forgiving it all」という歌詞の曲を再生する」)を受信している。いくつかの実施例では、電子デバイスは、自然言語音声入力814を受信することに応答して、第1のメディアアイテムの現在の再生が行われる方法(例えば、より低い音量又は速度で再生する)を調整する。オーディオ出力を調整することに関するその他の例示的記述は、2016年9月23日に出願された米国特許出願第62/399,232号「INTELLIGENT AUTOMATED ASSISTANT」において提供されており、この出願は、その全体が本明細書において参照により組み込まれている。米国特許出願第62/399,232号は、特に、オーディオ出力の音量を増減すること、オーディオ出力を異なる速度で提供すること、及び/又はオーディオ入力を異なる言語で提供することを含む、オーディオ出力を調整するための例示的な技法について説明している。いくつかの実施例では、オーディオ出力は、オーディオ出力に関連付けられたユーザ入力に応答して調整される。
【0235】
電子デバイス800は、自然言語入力812に関して前述した内容と一致する方法で、自然言語入力814を処理する。具体的には、電子デバイス800は、自然言語入力814に基づいて、1つ以上の候補テキスト表現、1つ以上の候補意図を提供し、最上位の候補意図に関連付けられたタスクを実行する。示された例では、自然言語音声入力814(「実は、「I’m giving you up I’m forgiving it all」という歌詞の曲を再生する」)に対応する1つの候補意図が、メディアの要求を絞り込んでいる。いくつかの実施例では、候補意図は、最良のm個の候補意図のうちの1つである。
【0236】
いくつかの実施例では、電子デバイス800は、1つ以上の所定のフレーズ及びそれらの1つ以上のフレーズと等価の自然言語に基づいて、メディアの要求を絞り込むというユーザの意図を導き出す。所定のフレーズの例としては、「はい、しかし〜(yes,but)」、「〜はどうですか(what about)」、「〜はどうですか(how about)」、「だけ(only)」、「他に(else)」、「他の(other)」、「更に(more)」、「より少ない(less)」、「更に何か(something more)」、「より少ない何か(something less)」、「新しい曲(the new one)」、「古い曲(the old one)」、「〜という歌詞の曲(the one that goes)」、「〜のように聞こえる曲(the one that sounds like)」、「実は(actually)」、「待って(wait)」、「再生する(play)」、「いいえ(no)」、「別の(different)」、「スキップする(skip)」、及び「次へ(next)」が挙げられるが、これらに限定されない。このようにして、電子デバイス800は、「いいえ、他に何かありますか?」、「更に何かアップビートの曲を再生する」、「他に何かを再生する」、「彼が80年代に作った曲だけ」等の入力例を処理することができる。図8Aを参照すると、電子デバイス800は、自然言語音声入力814内の所定のフレーズ(例えば、「実は」、「再生する」、「〜という歌詞の曲」)に基づいて、メディアの要求を絞り込むというユーザの意図を導き出すことができる。自然言語入力814を処理する例示的な技法は、自然言語処理モジュール732に関して前述されている。例えば、電子デバイス800は、自然言語入力814(テキスト文字列「実は、「I’m giving you up I’m forgiving it all」という歌詞の曲を再生する」)の候補テキスト表現を(例えば、STT処理モジュール730から)受信し、候補テキスト表現内の単語に、デジタルアシスタントのオントロジ(例えば、オントロジ760)内のどのノードが関係しているかを決定することができる。アクティブ化されたノードの量及び/又は相対的重要度に基づいて、電子デバイス(更に具体的には、自然言語処理モジュール)は、ユーザがデジタルアシスタントに実行させようと意図したタスクとして、実施可能な意図のうちの1つを選択することができる。
【0237】
いくつかの実施例では、電子デバイス800は、コンテキスト情報に基づいて、メディアの要求を絞り込むというユーザの意図を導き出す。コンテキスト情報は、電子デバイスとの1つ以上の前回のユーザ対話(例えば、ユーザセッション)を含む。例えば、ユーザの以前の要求が、メディアの推奨(例えば、音声入力812)を取得するというユーザの意図に関連付けられている場合、及び/又はユーザの現在の入力が、メディア推奨ドメイン内の1つ以上の属性(例えば、属性ノード)に対応する場合、電子デバイス800は、(例えば、1つ以上の指定された属性を使用して)以前のメディアの要求を絞り込むというユーザの意図を導き出すことができる。メディア推奨ドメイン内の属性は、アーチスト、ジャンル、歌詞、リリース日付、又は下に記載された検索パラメータのいずれかに対応することができる。図8Aを参照すると、電子デバイス800は、ユーザの以前の音声入力912及び/又は現在の音声入力(歌詞「I’m giving you up I’m forgiving it all」)で指定された属性に基づいて、メディアの要求を絞り込むというユーザの意図を導き出すことができる。
【0238】
いくつかの実施例では、電子デバイス800は、自然言語音声入力814に基づいて、1つ以上の候補タスク及び対応するパラメータを特定する。図8Aを参照すると、電子デバイス800は、「以前のメディアの要求を絞り込む」という候補タスク、及び以前のメディアの要求を絞り込むための「I’m giving you up I’m forgiving it all」というパラメータを特定する。
【0239】
自然言語音声入力に基づいて特定されたパラメータは、メディアの要求を絞り込むために使用され得る。本明細書では、パラメータの例が提供される。いくつかの実施例では、パラメータは、メディアアイテムの歌詞の内容(例えば、「ヘイジュード」)、ジャンル(例えば、「ヒップホップ」)、曲又はアルバムのタイトル(例えば、「ホテルカリフォルニア」)、場面又は期間(例えば、季節、休日、その日の時間、10年)、活動(例えば、トレーニング、運転、睡眠)、場所(例えば、海辺、職場、自宅、ハワイ)、雰囲気(例えば、アップビート)、アーチスト(例えば、歌手、プロデューサー)、又はこれらの任意の組み合わせに対応する。
【0240】
いくつかの実施例では、パラメータは、既定のタイムフレーム内の日付(例えば、リリース日付)に対応する。例えば、電子デバイス800は、フレーズ(及びそれらのフレーズと等価の自然言語)とタイムフレームとの間の相関関係を記憶する。例えば、電子デバイス800は、「新しい」を1か月のタイムフレームに関連付け、「最近」を3か月のタイムフレームに関連付け、「発売された直後」及び「最新」を1週間のタイムフレームに関連付ける。
【0241】
いくつかの実施例では、パラメータは、1人以上の人(例えば、対象とする視聴者)に対応する。例えば、自然言語音声入力814は、「私の友人は何を聴いていますか?」、「ジェーソンは何を再生していますか?」、「更に多くのエイミーの音楽を再生する」、「私の友人が好きな何かを再生する」等の、ユーザに関連付けられた人への参照を含むことができる。電子デバイス800は、自然言語音声入力を処理して、ユーザ(例えば、「私(me)」、「私の(for me)」、「私(I)」、「私(my)」)、ユーザ以外の人(例えば、「エイミー(Amy)」)、又はこれらの任意の組み合わせ(例えば、「私たち(our)」、「私の友人及び私(my friends and me)」)を参照している単語又はフレーズを特定する。これらの単語又はフレーズに基づいて、電子デバイス800は、1つ以上のソース(例えば、連絡先リスト、ソーシャルメディアサービス及びメディアサービス等のソフトウェアサービス)から識別情報を取得する。いくつかの実施例では、電子デバイス800は、解釈の候補間の曖昧さをなくすようにユーザに促すこと(例えば、「John Smith又はJohn Doeを意味していましたか?」)によって、識別情報を取得する。他のいくつかの実施例では、電子デバイス800は、電子デバイスの近くの1人以上の人の物理的存在等のコンテキスト情報に基づいて、識別情報を取得する。以下では、1人以上の人の物理的存在を検出する技法について更に詳細に説明する。
【0242】
いくつかの実施例では、パラメータは、メディアアイテムのソースに対応する。例えば、自然言語音声入力814は、メディアアイテムのコレクションへの参照を含むことができる(例えば、「私のライブラリ内には何がありますか?」、「私の週末の音楽リストから何かを再生する」)。別の実施例として、自然言語音声入力814は、メディアアイテムの所有者への参照を含むことができる(例えば、「ジェーソンのコレクションから何かを再生する」)。これに応答して、電子デバイス800は、識別情報を取得し、更に、下で更に詳細に説明されるように、適切な許可設定で1つ以上のメディアアイテムを特定する。
【0243】
いくつかの実施例では、電子デバイス800は、コンテキスト情報に少なくとも部分的に基づいて、メディアの要求を絞り込むためのパラメータを特定する。前述したように、コンテキスト情報(context information)(又は、コンテキスト情報(contextual information))は、電子デバイス800の環境に関連付けられた情報(例えば、照明、周囲ノイズ、周囲温度、周囲の環境の画像又は動画等)を含むことができる。いくつかの実施例では、コンテキスト情報は、電子デバイス800の物理的状態(例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速度、加速度、運動パターン、セルラー信号強度等)を含む。デバイスの位置は、絶対的(例えば、GPS座標に基づく)又は相対的(例えば、デバイスが、ユーザの居間、ガレージ、寝室内にある)であることができる。いくつかの実施例では、コンテキスト情報は電子デバイスでの現在の時刻を含む。いくつかの実施例では、コンテキスト情報は、デジタルアシスタントサーバ(例えば、DAサーバ106)の状態に関する情報(例えば、実行中のプロセス、インストールされたプログラム、過去及び現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量等)、及び電子デバイス800の情報を含む。
【0244】
いくつかの実施例では、コンテキスト情報は、電子デバイス800へ物理的に近接している人の識別情報を含む。いくつかの実施例では、電子デバイス800は、1つ以上のソースから情報を取得し、その情報を、1人以上のユーザに関する既知の情報と比較して、1人以上の特定を行うことによって、1人以上のユーザの物理的存在及び/又は識別情報を検出することができる。例えば、電子デバイス800は、人の電子デバイスの接続情報(例えば、同じWi−Fiネットワーク上、Bluetooth(登録商標)の範囲内、NFCの範囲内)等の、人に関連付けられた電子デバイスに関する情報に基づいて、その人の物理的存在を検出することができる。別の実施例として、電子デバイス800は、(例えば、カメラ及びマイクロフォンを介してキャプチャされた)人の顔の特徴及び/又は声の特徴に基づいて、その人の物理的存在を検出することができる。別の実施例として、電子デバイス800は、ローカルに利用可能な情報(カレンダの(現在の時刻に設定された)招待又は電子メールメッセージに示された連絡先等)に基づいて、人の物理的存在を検出することができる。更に別の実施例として、電子デバイス800は、人が提供する認証情報(例えば、ユーザ名及びパスワード)に基づいて、人の物理的存在を検出することができる。いくつかの実施例では、電子デバイス800は、人の物理的存在を検出した後に、曖昧さをなくすための入力(例えば、「私が聞いているのはジェーソンですか、それともジョンですか?」)及び/又は確認(例えば、「ジョンは今パーティに参加しましたか?」)を促す。
【0245】
いくつかの実施例では、コンテキスト情報は、電子デバイス800に物理的に近接している人に関する情報を含む。例えば、コンテキスト情報は、電子デバイスに物理的に近接していることが検出された各人々の嗜好、メディアコレクション、履歴を含むことができる。例えば、電子デバイス800が、ユーザの友人エイミーが「私も好きな何かを再生する」と発言したと判定した場合、電子デバイスは、エイミーの嗜好(好きなジャンル、明示的な言語設定)を1つ以上のソースから特定し、その嗜好をメディアの要求を絞り込むための検索パラメータとして使用する。以下では、複数の人間のマージされた嗜好プロファイルの提供に関する追加情報について説明する。
【0246】
いくつかの実施例では、コンテキスト情報は第1のメディアアイテムに関連する情報を含む。例えば、第1のメディアアイテムの推奨に応答してユーザが「これよりも新しい何かを再生する」と発言した場合、電子デバイス800は、第1のメディアアイテムのリリース日付に基づいて、時間パラメータを導き出す。
【0247】
メディアリクエストを絞り込むための前述のパラメータは、単なる例であると理解されるべきである。電子デバイスが元のメディアの要求を処理しているとき、及び/又は電子デバイスが元のメディアの要求に基づいて1つ以上のメディアアイテムを提供している(例えば、関連する情報を提供しているか、又は再生している)ときに、電子デバイスはいつでもメディアの要求を絞り込むためのユーザ要求を受信できるということが、更に理解されるべきである。メディアの要求を絞り込むための自然言語音声入力(例えば、自然言語音声入力814)の使用が単なる例であるということが、更に理解されるべきである。いくつかの実施例では、電子デバイス800は、電子デバイスの1つ以上のセンサ(例えば、触知入力、ジェスチャ入力、ボタン押下)を介して入力を受信することに応答して、メディアの要求を絞り込む処理及び/又は追加のメディアアイテムを提供する処理を開始することができる。メディア検索を実行することに関するその他の例示的記述は、2016年6月8日に出願された米国特許出願第62/347,480号「INTELLIGENT AUTOMATED ASSISTANT FOR MEDIA EXPLORATION」において提供されており、この出願は、その全体が本明細書において参照により組み込まれている。米国特許出願第62/347,480号は、特に、音声入力が、メディアアイテムの個別化された推奨を取得するというユーザの意図に対応しているかどうかを判定する例示的な技法を説明している。そのような判定に応じて、いくつかの実施例では、メディアアイテムのユーザ固有のコーパスから、少なくとも1つのメディアアイテムが取得される。コンテキスト情報を取得することに関するその他の例示的記述は、2017年5月16日に出願された米国特許出願第62/507,056号「PROVIDING AN AUDITORY−BASED INTERFACE OF A DIGITAL ASSISTANT」において提供されており、この出願は、その全体が本明細書において参照により組み込まれている。米国特許出願第62/507,056号は、特に、自然言語音声入力の受信前、受信中、又は受信後にコンテキスト情報を取得する例示的な技法を説明している。いくつかの実施例では、取得されたコンテキスト情報は、ユーザ固有の情報及び電子デバイスの物理的状態を含む。
【0248】
電子デバイスは、自然言語音声入力814が以前のメディアの要求(例えば、最良のm個の候補意図のうちの1つ)を絞り込むというユーザの意図に対応していると判定した後に、第1のメディアアイテムとは異なる第2のメディアアイテムを特定する。第2のメディアアイテムは、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせであることができる。図8Aを参照すると、電子デバイス800は、音声入力812内のパラメータ(「アデル」、「新しい」、「曲」)及び音声入力814内のパラメータ(「I’m giving you up I’m forgiving it all」)に基づいて、第2のメディアアイテム(例えば、「Send My Love」)を特定している。
【0249】
いくつかの実施例では、電子デバイス800は、自然言語音声入力812(「ヘイシリ、アデルによるあの新しい曲を再生する」)に基づいて、メディアアイテムの第1のセット(例えば、過去3か月以内にリリースされたアデルによる曲のセット)を特定している。電子デバイスは、メディアアイテムの第1のセットから(例えば、人気ランキングに基づいて)曲「Hello」を選択し、ユーザに提供する。その後、電子デバイス800は、その後の自然言語音声入力814に基づいて、自然言語音声入力814から導き出された指定パラメータに基づいて、メディアアイテムの第1のセットのサブセット(例えば、曲の第1のセットからの「I’m giving you up I’m forgiving it all」という歌詞を含んでいる曲のみ)を特定する。いくつかの実施例では、メディアアイテムの第1のセットのサブセットを特定することが、第1のセットのメディアアイテムが、自然言語入力814内の指定されたパラメータに一致するコンテンツ(例えば、歌詞、スクリプト)又はメタデータ(ジャンル、リリース日付)に関連付けられているかどうかを判定することを含む。関連付けられている場合、電子デバイス800は、サブセットから第2のメディアアイテム(「Send My Love」という曲)を選択して、ユーザに提供する。関連付けられていない場合、電子デバイス800は、第2のメディアアイテムを選択してユーザに提供することを止める。
【0250】
いくつかの実施例では、電子デバイスは、メディアアイテムのユーザ固有のコーパスから第1のメディアアイテム及び/又は第2のメディアアイテムを特定する。いくつかの実施例では、電子デバイス800は、ユーザ入力に関連付けられた音響情報(例えば、自然言語音声入力814)に基づいて、ユーザ固有のコーパスを特定する。ユーザ固有のコーパスは、ユーザに関連付けられたデータ(例えば、嗜好、設定、以前の要求、以前の選択、以前の拒否、以前のユーザの購入、ユーザ固有のプレイリスト)に基づいて生成される。いくつかの実施例では、ユーザ固有のコーパスの少なくとも一部は、ソフトウェアサービス(例えば、メディアサービス又はソーシャルメディアサービス)に基づいて生成される。例えば、ユーザ固有のコーパスは、(例えば、ソフトウェアサービス上で)ユーザによって以前に拒否されたか若しくは嫌われたメディアアイテムを低いランキングに関連付けるか、又はそれらのメディアアイテムを含まない。別の実施例として、ユーザ固有のコーパスは、ソフトウェアサービス上でユーザによって所有/購入されたメディアアイテムに対応するデータを含む。更に別の実施例として、ユーザ固有のコーパスは、ソフトウェアサービス上でユーザによって作成されたメディアアイテム(例えば、プレイリスト)に対応するデータを含む。前述したように、電子デバイスは、ユーザ固有のコーパス内のメディアアイテムが、指定された検索パラメータに一致するメタデータ又はコンテンツに関連付けられているかどうかを判定することによって、メディアアイテムを特定することができる。いくつかの実施例では、ユーザ固有のコーパス内の少なくとも1つのメディアアイテムは、活動(例えば、トレーニング、睡眠)、雰囲気(例えば、アップビート、落ち着いている、悲しい)、場面(例えば、誕生日)、期間(例えば、80年代)、場所、キュレータ(例えば、ローリングストーンズのリスト)、コレクション(例えば、夏のプレイリスト)、1つ以上の以前のユーザ入力(ユーザによる以前の拒否、ユーザによる以前の好み)、又はこれらの任意の組み合わせを示すメタデータを含む。ユーザ固有のコーパスに関するその他の例示的記述は、2016年6月8日に出願された米国特許出願第62/347,480号「INTELLIGENT AUTOMATED ASSISTANT FOR MEDIA EXPLORATION」において提供されており、この出願は、その全体が本明細書において参照により組み込まれている。
【0251】
いくつかの実施例では、ユーザ固有のコーパス内の少なくとも1つのメディアアイテムは、メディアの要求を提供したユーザとは異なる人からの情報に基づくメタデータを含む。例えば、海辺に対応する場所でソフトウェアアプリケーション(例えば、iTunes等のメディアサービス)のすべてのユーザによって再生される頻度に基づいて、メディアアイテムを「海辺」の場所に関連付けることができる。別の実施例として、メディアアイテムを、ユーザの友人(すなわち、ソーシャルメディアサービス上でユーザに関連付けられた友人)によって、及び/又は同様の人口統計セグメントの人によって再生された回数に基づいて、活動(例えば、パーティ)に関連付けることができる。いくつかの実施例では、メタデータは、電子デバイス800とは異なるリモートデバイス上で生成される。いくつかの実施例では、ユーザ固有のコーパス内の少なくとも1つのメディアアイテムは、更に詳細に説明されるように、ユーザがアクセスすることが許可されていない(例えば、購入していない)が、電子デバイス800に物理的に近接している別の人がアクセスすることが許可されているメディアアイテムである。
【0252】
その後、電子デバイス800は、第2のメディアアイテムを提供する。いくつかの実施例では、第1のメディアアイテムに関して前述された内容と一致する方法で、第2のメディアアイテムが提供される。図8Aを参照すると、電子デバイス800のデジタルアシスタントは、曲「Send My Love」を再生816している。図に示されているように、デジタルアシスタントは、例えば第2のメディアアイテムを再生しながら、第2のメディアアイテムの説明(「これはSend My Loveです」)を含む自然言語音声出力817も提供する。いくつかの実施例(図示されていない)では、電子デバイス800は、自然言語音声入力814に応答して第2のメディアアイテムの代表サンプルを再生し、第2のメディアアイテム全体を提供する前に、ユーザに確認を要求する。いくつかの実施例では、電子デバイス800は、自然言語音声入力814に基づいて特定された複数のメディアアイテムの要約及び/又はリストを提供する(例えば、「それらの歌詞を含む2つの曲(「Send My Love」、「Send My Love Acoustic Version...」)を見つけました」)。
【0253】
いくつかの実施例では、図8Bを参照すると、電子デバイス800は、第3の自然言語音声入力818(「ヘイシリ、これを私のSaturday Morningプレイリストに追加する」)を受信している。電子デバイスは、第3の自然言語音声入力818に基づいて、メディアアイテムをメディアアイテムのコレクションに関連付けるというユーザの意図を決定する。電子デバイスは、コンテキスト情報(例えば、現在再生されている/以前に再生されたメディアアイテム)に基づいて、ユーザの意図を決定することができる。示されている例では、電子デバイス800は、現在再生されている曲「Send My Love」を、「Saturday Morning」という名前のプレイリストに関連付け、その関連付けを示す音声出力820(「完了しました」)を提供する。別の実施例(図示されていない)では、電子デバイスは、自然言語音声入力「最後の10曲をNew Favsという名前の新しいプレイリストに追加する」を受信することができる。それに応じて、電子デバイスは、「New Favs」という名前のメディアアイテムのコレクションを作成し、以前に再生された10曲をこの新しいコレクションに関連付けることができる。
【0254】
いくつかの実施例では、電子デバイス800は、「Send My Love」を再生しながら、第4の自然言語音声入力822(「アデルはツアー中ですか?」)を受信する。第4の自然言語音声入力822に基づいて、電子デバイスは、特定のメディアアイテムに関連する情報(例えば、アーチスト、リリース日付、関連するインタビュー、生い立ち、歌詞の意味、ツアー情報、ユーザのどの友人がこのメディアアイテムを聴いたことがあるか)を取得するというユーザの意図を決定する。いくつかの実施例では、特定のメディアアイテムは、コンテキスト情報(再生中の曲、以前に再生された曲)に基づいて特定される。示されている例では、電子デバイス800は、アデル(現在再生されている曲の歌手)に関連するツアー情報を取得するというユーザの意図を決定し、その情報を示す音声出力824(「はい、アデルは来月あなたの市にいることになっています。チケットを購入しますか?」)を提供する。示されている例では、ユーザは、否定応答826(「今は購入しません」)を提供する。別の実施例(図示されていない)では、ユーザは肯定応答を提供することができ、電子デバイス800はコンサートチケットを購入するためのプロセスを開始することができる。いくつかの実施例では、電子デバイス800は、第4の自然言語音声入力822なしで、情報を自動的に提供する。
【0255】
いくつかの実施例では、電子デバイス800は、メディアアイテムを再生しながら、別のメディアアイテムを示す音声出力を提供してよい。例として、電子デバイス800は、第2のメディアアイテム(「Send My Love」)を提供しながら、再生される第3のメディアアイテムを示す音声出力828(「次の曲は、アデルによるSomeone Like Youです」)を提供する。電子デバイス800は、第2のメディアアイテムを提供した後に、第3のメディアアイテムを提供する。いくつかの実施例では、電子デバイス800は、メディアアイテムを再生しながら、場所を示す自然言語音声入力(例えば、「これをガレージ内で再生する」)を受信してよい。それに応じて、電子デバイス800は、指定された場所に基づいて別の電子デバイス(例えば、ユーザのガレージに関連付けられたスピーカ、ユーザのガレージ内に物理的に配置された電話)を特定し、特定された電子デバイスにメディアアイテムを再生させる。いくつかの実施例では、電子デバイス800は、再生に関連する情報(例えば、メディアアイテムの識別情報、再生の進行、音量等の再生設定)を、特定された電子デバイスに(例えば、直接又はリモートデバイスを介して)送信することができる。場所を示す自然言語音声入力の処理及びそれに応じたメディアの要求の処理に関するその他の説明は、例えば、2014年9月30日に出願された米国実用特許出願第14/503,105号「Intelligent Assistant for Home Automation」(弁護士整理番号106842108200(P23013US1))、2016年6月9日に出願された米国特許仮出願第62/348,015号「Intelligent Automated Assistant in a Home Environment」(弁護士整理番号770003000100(P30331USP1))、及び2016年6月11日に出願された米国特許仮出願第62/348,896号「Intelligent Device Arbitration and Control」(弁護士整理番号770003001400(P30585USP1)に記載されており、これらの出願の開示全体は、本明細書において参照により組み込まれている。米国実用特許出願第14/503,105号は、特に、仮想アシスタントを使用して電子デバイス(例えば、ドアロック、サーモスタット等)を制御する例示的な技法を説明している。米国特許仮出願第62/348,015号は、特に、ユーザ入力が、確立された場所のデバイスを使用してタスクを実行し、確立された場所のデバイスのセットを表すデータ構造を取得するという意図に対応するかどうかを判定する例示的な技法を説明している。米国特許仮出願第62/348,896号は、特に、口頭入力に基づいてブロードキャストされる値を使用して、多くのデバイスのうちのどのデバイスが口頭入力に応答するべきかを決定する例示的な技法を説明している。
【0256】
図9A〜図9Bは、電子デバイス900を示している。電子デバイス900は、いくつかの実施形態では、デバイス200、デバイス400、デバイス600、及びデバイス800(図2A、図4、図6A〜図6B、及び図8A〜図8B)の任意のものであってよい。示された実施例では、電子デバイス900は、1つ以上のスピーカを備えた電子デバイスであるが、電子デバイスが、電話、ラップトップコンピュータ、デスクトップコンピュータ、タブレット、ウェアラブルデバイス(例えば、スマートウォッチ)、セットトップボックス、テレビ、スピーカ、又はこれらの任意の組み合わせ若しくは部分的組み合わせ等の、任意の種類のデバイスであってよいということが理解されるであろう。
【0257】
図9Aを参照すると、電子デバイス900は、電子デバイス900のデジタルアシスタントへの要求を示す自然言語音声入力910を(例えば、マイクロフォンを介して)受信する。自然言語音声入力910は、デジタルアシスタントに向けられ得る任意の要求を含むことができる。いくつかの実施例では、自然言語音声入力は、既定のトリガフレーズ(例えば、「ヘイシリ」)を含む。図9Aに示されている例では、ユーザ902は、トリガフレーズ及びメディアアイテムの要求を含む自然言語音声入力910「ヘイシリ、今日は、私向けにどんな音楽がありますか?」を提供している。
【0258】
電子デバイス900は、電子デバイス800に関して前述した内容と一致する方法で、自然言語音声入力を処理する。例えば、電子デバイス900は、自然言語音声入力910を処理して、1つ以上の候補テキスト表現(例えば、テキスト表現「ヘイシリ、今日は、私向けにどんな音楽がありますか?」)及び1つ以上の候補意図(例えば、「メディアの推奨を取得する」というユーザの意図)を提供する。
【0259】
電子デバイス900は、自然言語音声入力910に基づいてタスクを特定する。いくつかの実施例では、電子デバイス900は、前述したように、1つ以上の候補意図(1つ以上の候補テキスト表現に基づいて順番に特定される)に基づいて、1つ以上の候補タスクを特定する。更に電子デバイスは、1つ以上の結果を取得するために、候補タスクを実行する。1つ以上の結果は、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、またこれらの組み合わせ等の、メディアアイテムに関連する情報を含むことができる。図9Aに示された例では、電子デバイス900は、自然言語音声入力910に基づいて、パラメータ「私の」及び「音楽」を含む「メディアアイテムを提供する」という候補タスクを特定する。更に、電子デバイス900は、特定されたタスクを実行して、プレイリスト「Transgressive New Releases」に関連する情報を取得する。
【0260】
図9Aを参照すると、電子デバイス900は、特定されたタスクに関連付けられた音声応答を示す音声出力914を提供している。具体的には、電子デバイス900は、特定されたプレイリストの言葉による説明(「プレイリストTransgressive New Releasesを取得しました」)を提供する。いくつかの実施例では、ユーザに提供される言葉による説明は、特定されたメディアアイテムに対応する情報(例えば、メタデータ)、ユーザ要求から特定されたパラメータ、又はこれらの組み合わせを含む。例えば、電子デバイス900は、ユーザ要求「私のお気に入りのアーチストの何かの曲を再生する」に応答して、音声出力「これは、あなたのお気に入りの歌手の1人であるアデルによる、先週リリースされた曲です」を提供することができる。電子デバイス900は、ユーザ固有のコーパスのメタデータに基づいて、ユーザのお気に入りの歌手を決定することができる。図8を参照して説明したように、いくつかの実施例では、ユーザ固有のコーパス内の少なくとも1つのメディアアイテムは、(ユーザによって以前に拒否された、ユーザによって以前に好まれた、ユーザによって以前に検索された)1つ以上の以前のユーザ入力を示すメタデータを含む。あるいは、いくつかの他の実施例では、電子デバイス900は、ユーザの嗜好データ(例えば、ユーザデータ及びモデル231)に基づいて、ユーザのお気に入りの歌手を決定することができる。
【0261】
いくつかの実施例では、電子デバイス900は、1つ以上のテキスト発語化モードに従って、音声出力914を提供する。例えば、音声出力914は、デジタルアシスタントの音声、メディアアイテムに関連付けられた音声(例えば、アーチスト、DJ)、又はこれらの組み合わせで提供され得る。様々なテキスト発語化モードの使用に関するその他の例示的記述は、2017年5月16日に出願された米国特許出願第62/507,056号「PROVIDING AN AUDITORY−BASED INTERFACE OF A DIGITAL ASSISTANT」(弁護士整理番号770003015700(P34183USP1))において提供されており、この出願は、その全体が本明細書において参照により組み込まれている。米国特許出願第62/507,056号は、特に、自然言語音声入力において指定される情報等のコンテキスト情報に基づいて様々なテキスト発語化モードを使用する例示的な技法を説明している。
【0262】
電子デバイス900は、音声応答を示す音声出力(例えば、音声出力914)を提供しながら、その音声応答に対応するメディアアイテムの再生であるオーディオ出力912を同時に提供する。いくつかの実施例では、再生されるメディアアイテムは、特定されたメディアアイテムの一部(例えば、代表サンプル)である。例えば、特定されたメディアアイテムが単一の曲である場合、再生は、曲のコーラス又は最初の一節を含むことができる。別の実施例として、特定されたメディアアイテムがプレイリストである場合、再生は、プレイリスト内の各曲の5秒間の断片を含むことができる。
【0263】
いくつかの実施例では、電子デバイス900は、音声出力とは異なる(例えば、低い)音量で再生する。いくつかの実施例では、電子デバイス900は、音声出力とは異なる(例えば、低い)忠実性で再生する。いくつかの実施例では、電子デバイス900は、音声出力914を提供する前に、オーディオ出力912の提供を開始する。他の実施例では、電子デバイス900は、オーディオ出力912及び音声出力914の提供を同時に開始する。更に他の実施例では、電子デバイス900は、オーディオ出力912を提供する前に、音声出力914の提供を開始する。再生時のオーディオを調整することに関するその他の説明は、2016年9月23日に出願された米国特許出願第62/399,232号「INTELLIGENT AUTOMATED ASSISTANT」(弁護士整理番号770003001300(P30584USP1)において提供されており、この出願は、その全体が本明細書において参照により組み込まれている。
【0264】
いくつかの実施例では、電子デバイスは、再生しながら(912)、自然言語音声入力916(「それを再生する」)を受信する。電子デバイス900は、自然言語音声入力916の受信に応答して、特定されたメディアアイテムの再生であるオーディオ出力918を全体として(例えば、最初から)提供する。いくつかの実施例では、再生918は、再生912とは異なる音量及び/又は忠実性で提供される。
【0265】
いくつかの実施例では、電子デバイス800は、再生しながら(918)、メディアアイテムに関連する情報を示す音声出力(図示されていない)を提供する。この情報は、例えば、曲の雑学的知識(「これは先週リリースされました」)、アーチストのツアー情報(「このアーチストは、来月カリフォルニアに来ます。チケットを購入しますか?」)、又はニュース(「このアーチストは、最近婚約しました。これについて更に知りたいかどうか、教えてください。」)に対応することができる。このメディアアイテムは、電子デバイス900によって再生されているメディアアイテム、以前に再生されたメディアアイテム、又は再生されることになるメディアアイテムであることができる。
【0266】
いくつかの実施例では、電子デバイス900は、オーディオの2つの層(例えば、特定されたメディアアイテムの言葉による説明及び代表サンプル)を同時に提供する代わりに、代表サンプルを再生せずに、特定されたメディアアイテムの説明を提供する。いくつかの実施例では、ユーザ902は、代表サンプルを聴くための補足要求(例えば、「それはどのように聞こえますか?」、「プレイリストにはどんな種類の曲がありますか?」)を提供することができる。それに応じて、電子デバイス900は、代表サンプルを再生し(例えば、「これを聴いてください。<30秒間の要約>」)、場合によっては、追加の入力をユーザに促す(「これを再生しますか?」)。
【0267】
オーディオの複数の層を提供する前述の技法は、単なる例であると理解されるべきである。通常、電子デバイス900は、層化及び/又は調整されたオーディオ情報を、デジタルアシスタントとユーザとの間のいずれかの対話の一部として提供することができる。例えば、図9Bを参照すると、電子デバイス900は、自然言語音声入力918(「ヘイシリ、私のチームはどうだった?」)を受信している。電子デバイス900は、その入力に基づいて、タスク(例えば、「スポーツイベントのスコアを取得する」という候補タスク)及び1つ以上のパラメータ(例えば、「ジャイアンツ」)を特定し、そのタスクを実行して1つ以上の結果(例えば、スコア)を取得する。いくつかの他の実施例では、電子デバイス900は、ユーザの嗜好データ(例えば、ユーザデータ及びモデル231)に基づいて、1つ以上のパラメータを決定することができる。電子デバイス900は、特定されたタスクに関連付けられた音声応答を示す音声出力922を提供している。示された例では、音声出力922は、取得された結果の言葉による説明(「昨日、ジャイアンツは勝ちました。スコアは...でした。」)を示す。
【0268】
電子デバイス900は、音声出力922を提供しながら、音声応答に対応するメディアアイテムも再生する(920)。示された例では、メディアアイテムは、勝利のスコアに対応する音響効果(例えば、群衆の歓声)である。いくつかの実施例では、音響効果は、予め記録されたオーディオ(例えば、一般的な音響効果、関連するスポーツイベントで記録されたオーディオ)又はライブストリーム(例えば、電子デバイスの現在位置での雨の音)である。いくつかの実施例では、音声出力922は、再生920とは異なる(例えば、高い)音量及び/又は(例えば、高い)忠実性で提供される。
【0269】
電子デバイス900のデジタルアシスタントは、様々なテキスト発語化モード、音声、及びシーケンでユーザと対話する(例えば、情報を提供する)ことができると理解されるべきである。通常、デジタルアシスタントは、オーディオ出力の様々な層(例えば、バックグラウンドオーディオ、フォアグラウンドオーディオ)と様々なタイプ(例えば、音響効果、音声、音楽)との間で調整し、直感的でリッチ、かつ自然なユーザインターフェースを提供することができる。例えば、電子デバイスは、フォアグラウンドオーディオのタイミング、音量、忠実性、及び内容に基づいて、バックグラウンドオーディオのタイミング、音量、忠実性、及び内容を調整することができる。
【0270】
図10A〜図10Bは、電子デバイス1000を示している。電子デバイス1000は、いくつかの実施形態では、デバイス200、デバイス400、デバイス600、デバイス800、及びデバイス900(図2A、図4、図6A〜図6B、図8A〜図8B、及び図9A〜9B)の任意のものであってよい。示された実施例では、電子デバイス1000は、1つ以上のスピーカを備えた電子デバイスであるが、電子デバイスが、電話、ラップトップコンピュータ、デスクトップコンピュータ、タブレット、ウェアラブルデバイス(例えば、スマートウォッチ)、セットトップボックス、テレビ、スピーカ、又はこれらの任意の組み合わせ若しくは部分的組み合わせ等の、任意の種類のデバイスであってよいということが理解されるであろう。
【0271】
図10Aを参照すると、電子デバイス1000は、電子デバイス1000のデジタルアシスタントへのメディアの要求を示す自然言語音声入力1010(「ヘイシリ、私は何を聴くべきですか?」)を(例えば、マイクロフォンを介して)受信する。電子デバイス1000は、電子デバイス800及び900に関して前述した内容と一致する方法で、自然言語音声入力を処理する。例えば、電子デバイス1000は、自然言語音声入力1010を処理して、1つ以上の候補テキスト表現(例えば、テキスト表現「ヘイシリ、私は何を聴くべきですか?」)及び1つ以上の候補意図(例えば、「メディアの推奨を取得する」というユーザの意図)を提供する。
【0272】
電子デバイス1000は、自然言語音声入力1010に基づいてタスクを特定する。いくつかの実施例では、電子デバイス1000は、前述したように、1つ以上の候補意図に基づいて1つ以上の候補タスクを特定し、最上位の候補タスクを実行して、1つ以上の結果を取得する。いくつかの実施例では、1つ以上の結果は、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの組み合わせに関連する情報を含む。図10Aに示された例では、電子デバイス1000は、パラメータ「私の」を含む「メディアアイテムを提供する」という候補タスクを特定し、このタスクを実行して第1のメディアアイテム(バンクスによる「The Altar」)を取得する。
【0273】
電子デバイス1000は、音声入力1010の受信に応答して、第1のメディアアイテムの提案を示すオーディオ出力1012(「オルタナティヴを聴きたい気分でしたら、バンクスによる「The Altar」を取得しています」)を提供する。いくつかの実施例では、第1のメディアアイテムの提案は、メディアアイテムのメタデータ(例えば、ジャンル、アーチスト)、及びこのメディアアイテムが推奨された理由(単数又は複数)(例えば、「オルタナティヴを聴きたい気分でしたら...」)等の、メディアの推奨をコンテキスト化するための追加情報を含む。いくつかの実施例では、電子デバイス1000は、推奨されたメディアアイテムの一部を同時に再生する。
【0274】
いくつかの実施例では、電子デバイス1000は、オーディオ出力1012を提供した後に、音声入力1014(「いいえ」)を受信する。電子デバイスは、音声入力1014が、メディアの要求に対応する非肯定応答(例えば、「いいえ」、「次へ」、「好きではない」、「嫌い」、「更に2つ」、及び拒否を示す任意のフレーズと等価の自然言語)を示しているかどうかを判定する。電子デバイスは、音声入力1014が非肯定応答を示しているという決定に従って、この要求に対応する連続する非肯定応答の数を更新する。一方、電子デバイスは、音声入力1014が非肯定応答を示していないという決定に従って、この数の更新を止める。示された例では、電子デバイスは、音声入力1014に基づいて、この数を0から1に更新する。
【0275】
図10Aを参照すると、いくつかの実施例では、電子デバイス1000は、第2のメディアアイテムの提案を示す別のオーディオ出力1016(「プレイリストWhen Hip−Hop Goes Leftはどうですか?」)を提供している。いくつかの実施例では、電子デバイス900は、第1のメディアアイテム及び第2のメディアアイテムを単一の検索の一部として特定し、第1のメディアアイテムが、第2のメディアアイテムよりも高い信頼度スコアを有しているため、電子デバイスによって最初に提案される。いくつかの実施例では、電子デバイスは、第1のメディアアイテム及び第2のメディアアイテムをそれぞれ特定するために2つの別々の検索を実行し、ユーザが第1のメディアアイテムの提案に対する非肯定応答(例えば、オーディオ入力1014)を提供した後に、第2の検索が実行される。
【0276】
電子デバイス1000は、第2のメディアアイテムの提案を提供した後に、音声入力1018(「次へ」)を受信する。電子デバイスは、音声入力1014に関して説明された内容と一致する方法で、音声入力1018がメディアの要求に対応する非肯定応答を示しているかどうかを判定する。示された例では、電子デバイスは、音声入力1018が非肯定応答を示していることを決定し、この数を1から2に更新する。
【0277】
図10Aを参照すると、いくつかの実施例では、電子デバイス1000は、第3のメディアアイテムの提案を示す更に別のオーディオ出力1020(「プレイリスト「If You Like Alabama Shakes」も取得しています」)を提供している。電子デバイス900は、単一の検索又は異なる検索で(例えば、異なる検索パラメータ及び/又はコンテキスト情報を使用して)、第1のメディアアイテム、第2のメディアアイテム、及び第3のメディアアイテムを特定することができる。
【0278】
電子デバイス1000は、第3のメディアアイテムの提案を提供した後に、ユーザからの入力を(例えば、マイクロフォンを介して)サンプリングする。いくつかの実施例では、電子デバイスは、既定の期間(例えば、5秒)内に応答が受信されないということを決定する。電子デバイスは、この判定に従って、この要求に対応する連続する非肯定応答の数を更新する。示された例では、電子デバイスは、既定の期間内に応答が受信されない(例えば、沈黙している)ことを決定し、この数を2から3に更新する。
【0279】
電子デバイス1000は、メディアの要求に対応する連続する非肯定応答の数が閾値を満たしているかどうかを判定する。いくつかの実施例では、電子デバイスは、各オーディオ出力1012、1016、及び1020を提供した後に、判定を行う。電子デバイスは、連続する非肯定応答の数が閾値を満たしていないという決定に従って、別のメディアアイテムの提案を示すオーディオ出力を提供する。例えば、電子デバイスは、オーディオ出力1018(「次へ」)を受信した後に、連続する非肯定応答の数(2)が所定の閾値(例えば、3)に等しくないということを決定する。それに応じて、電子デバイスは、提案されたものとは異なる別のメディアアイテムを提案するために、音声出力1020を提供する。
【0280】
電子デバイスは、連続する非肯定応答の数が閾値を満たすという決定に従って、別のメディアアイテムの提案を提供することを止め、代わりに、ユーザ入力の要求を示すオーディオ出力を提供する。例えば、電子デバイスは、非肯定応答1022(例えば、所定の時間の間の沈黙)を受信した後に、連続する非肯定応答の数(3)が所定の閾値(例えば、3)に等しいということを決定する。図10Bを参照すると、それに応じて電子デバイスは、音声出力1024(「わかりました。あなたが最近楽しんだアーチストの名前を挙げてください」)を提供している。
【0281】
いくつかの実施例では、音声出力1024は、メディアの要求に関する1つ以上のパラメータの提供を促すことを示す。示された例において、電子デバイス1000は、アーチストのパラメータの提供をユーザに促し(「あなたが最近楽しんだアーチストの名前を挙げてください」)、音声入力1026(「えーと、Flume」)を受信している。音声入力1026は、メディアの要求に関するパラメータ(アーチスト=Flume)を示す。電子デバイス1000は、受信されたパラメータに基づいて、以前に推奨されたメディアアイテムとは異なる別のメディアアイテムを特定する。それに応じて、電子デバイス1000は、特定されたメディアアイテムを音声出力1028(「わかりました。これは、プレイリスト「If You Like Flume」です。」)を介して提供する。いくつかの実施例では、電子デバイスは、受信されたパラメータに基づいて、適切に、ユーザの嗜好データ(例えば、ユーザデータ及びモデル231)及び/又はユーザ固有のコーパスを更新する。
【0282】
いくつかの実施例では、電子デバイス1000は、音声出力1024を提供する代わりに、又は追加として、以前に提案された複数のメディアアイテムからのユーザの選択を促すことを示す音声出力(例えば、「これらのうち、どれが良さそうですか?」)を提供する。いくつかの実施例では、電子デバイスは、ユーザの選択を示す音声入力(例えば、「うん、2番目の曲」、「ヒップホップの曲」、「アデルによる曲」)を受信し、コンテキスト情報に基づいて、この音声入力を解釈する。コンテキスト情報は、電子デバイスによって以前に提案された複数のメディアアイテムを含むことができる。
【0283】
図11は、電子デバイス1100を示している。電子デバイス1100は、いくつかの実施形態では、デバイス200、デバイス400、デバイス600、デバイス800、デバイス900、及びデバイス1000(図2A、図4、図6A〜図6B、図8A〜図8B、図9A〜9B、及び図10)の任意のものであってよい。示された実施例では、電子デバイス1100は、1つ以上のスピーカを備えた電子デバイスであるが、電子デバイスが、電話、ラップトップコンピュータ、デスクトップコンピュータ、タブレット、ウェアラブルデバイス(例えば、スマートウォッチ)、セットトップボックス、テレビ、スピーカ、又はこれらの任意の組み合わせ若しくは部分的組み合わせ等の、任意の種類のデバイスであってよいということが理解されるであろう。
【0284】
動作中に、電子デバイス1100は、ユーザ1102によって発言された、電子デバイス1100のデジタルアシスタントへのメディアの要求を示す自然言語音声入力1110(「ヘイシリ、何かを再生する」)を(例えば、マイクロフォンを介して)受信する。示された例では、電子デバイス1100は、ユーザ1102に関連付けられている。電子デバイス1100は、電子デバイス800、900、及び1000に関して前述した内容と一致する方法で、自然言語音声入力を処理する。例えば、電子デバイス1100は、自然言語音声入力1110を処理して、1つ以上の候補テキスト表現(例えば、テキスト表現「ヘイシリ、何かを再生する」)及び1つ以上の候補意図(例えば、「メディアの推奨を取得する」というユーザの意図)を提供する。
【0285】
電子デバイス1100は、電子デバイスに近接している複数のユーザの物理的存在を検出する。いくつかの実施例では、電子デバイス1100は、人の電子デバイスの接続状態(例えば、同じWi−Fiネットワーク上、Bluetooth(登録商標)の範囲内、NFCの範囲内)等の、人に関連付けられた電子デバイスに関連する情報、人の電子デバイスに関する情報等に基づいて、その人の物理的存在を検出することができる。例えば、ユーザの姉妹も電子デバイス1100に物理的に近接していて、自分の電話を持っている場合、電子デバイス1100は、この姉妹の電話に対応する情報を受信することができる。例えば、電子デバイス1100は、(例えば、Bluetooth(登録商標)接続を介して)この姉妹のデバイスから識別情報(例えば、電話番号、ユーザ名)を受信することができる。別の実施例として、電子デバイス1100は、ルーティングデバイス(例えば、電子デバイス1100と姉妹のデバイスの両方が接続されている無線ルータ)から識別情報を受信することができる。
【0286】
いくつかの実施例では、電子デバイス1100は、(例えば、カメラ及びマイクロフォンを介してキャプチャされた)人の顔の特徴及び/又は声の特徴に基づいて、その人の物理的存在を検出することができる。他の実施例では、電子デバイス800は、ローカルに利用可能な情報(カレンダの招待又は電子メールメッセージに示された連絡先等)に基づいて、人の物理的存在を検出することができる。更にいくつかの他の実施例では、電子デバイス800は、人が提供する認証情報(例えば、ユーザ名及びパスワード)に基づいて、人の物理的存在を検出することができる。いくつかの実施例では、電子デバイス1100は、人の物理的存在を検出した後に、曖昧さをなくすための入力(例えば、「私が聞いているのはジェーソンですか、それともジョンですか?」)及び/又は確認入力(例えば、「ジョンは今パーティに参加しましたか?」)を促す。
【0287】
複数のユーザ(例えば、家族、訪問者)の物理的存在を検出することに応答して、電子デバイス1100は、複数のユーザに対応する複数の嗜好プロファイルを取得する。いくつかの実施例では、電子デバイス1100は、リモートデバイス(例えば、サーバデバイス)から、ユーザ1102以外の人(例えば、ユーザの姉妹)に対応する嗜好プロファイルを受信する。いくつかの実施例では、電子デバイス1100は、ユーザ1102以外の人(例えば、ユーザ1102の姉妹)に対応する嗜好プロファイルを、その人の電子デバイス(例えば、姉妹の電話)から直接受信する。いくつかの実施例では、電子デバイス1100は、ユーザ1102以外の人の嗜好プロファイルをローカルに記憶する。例えば、ユーザ1102は、嗜好をローカルに記憶するように、デジタルアシスタントにすでに頼んでおいてよい(例えば、「ヘイシリ、私の姉妹がビートルズが好きだということを覚えておいて」)。
【0288】
電子デバイス1100は、複数の嗜好プロファイルに基づいて、マージされた嗜好プロファイルを提供する。いくつかの実施例では、マージされた嗜好プロファイルを提供することが、複数の嗜好プロファイルそれぞれによって共有された1つ以上の嗜好を特定することを含む。示された例では、電子装置1100は、ユーザの嗜好プロファイル及び姉妹の嗜好プロファイルに基づいて、マージされた嗜好プロファイルを提供する。ユーザと姉妹の両方がビートルズに対する嗜好を有しているため、マージされた嗜好プロファイルはビートルズに対する嗜好を含む。一方、バンクスに対する嗜好をユーザのみが有しており、姉妹が有していないため、いくつかの実施例では、マージされた嗜好プロファイルは、バンクスに対する嗜好を含まなくてよい。
【0289】
電子デバイス1100は、マージされた嗜好プロファイルに基づいて、メディアアイテムを特定する。特定されたメディアアイテムは、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせであることができる。例えば、電子デバイス1100は、曲のメタデータ(例えば、アーチスト)が、マージされたプロファイルの1つ以上の嗜好(例えば、ビートルズ)と一致するため、曲「ヘイジュード」を特定する。それに応じて、電子デバイス1100は、オーディオ出力1112(「これは、あなた達が両方とも好むかもしれないビートルズの曲です」)を提供する。オーディオ出力1112は、特定されたメディアアイテムの説明(「ビートルズの」)を含み、マージされたプロファイルを参照する(例えば、「あなた達が両方とも好むかもしれない曲」)。電子デバイス1100は、特定されたメディアを含むオーディオ出力1113(曲「ヘイジュード」の再生)も提供する。
【0290】
いくつかの実施例では、マージされた嗜好プロファイルに基づいてメディアアイテムを特定することは、複数のメディアアイテムからメディアアイテムを特定することを含む。いくつかの実施例では、複数のメディアアイテムは、第1のユーザに関連付けられた(例えば、第1のユーザがアクセスすることを許可された)メディアアイテムの第1のセット、及び第2のユーザに関連付けられた(例えば、第2のユーザがアクセスすることを許可された)メディアアイテムの第2のセットを含む。示された例において、特定されたメディアアイテムは、メディアアイテムの第1のセットの一部ではなく、メディアアイテムの第2のセットの一部である(すなわち、ユーザは曲「ヘイジュード」にアクセスできないが、ユーザの姉妹はこの曲にアクセスできる)。
【0291】
いくつかの実施例では、電子デバイス1100は、第2のユーザ(例えば、姉妹)を含む複数のユーザの物理的存在を検出した後に、第2のユーザの不在を検出する。電子デバイス1100は、第2のユーザの存在を検出する技法と同様の技法を使用して、第2のユーザの不在を検出することができる。例えば、電子デバイス1100は、第2のユーザの電子デバイスに関連する情報(例えば、姉妹のデバイスが無線ネットワークにまだ接続されているかどうか)を取得することによって、不在を検出することができる。この情報は、第2のユーザのデバイスから直接、又はネットワークルータから、取得され得る。電子デバイス1100は、第2のユーザの不在を検出した後に、マージされた嗜好プロファイル及び/又は検索される複数のメディアアイテムを更新する。例えば、電子デバイス1100がユーザの姉妹の不在を検出した場合、電子デバイス1100は、姉妹のみがアクセスできるメディアアイテム(例えば、姉妹のビートルズコレクション)を、検索される複数のメディアアイテムから削除する。
【0292】
いくつかの実施例では、電子デバイス1100は、ユーザ以外の人の嗜好及び/又は活動に基づいて、メディアの要求を示す自然言語音声入力1114を受信する。図11に示された例では、ユーザ1102は、オーディオ出力1114(「私の友人は何を聴いていますか?」)を提供する。それに応じて、電子デバイス1100は、(例えば、連絡先リスト、ソーシャルメディアサービス及びメディアサービス等のソフトウェアサービス、並びにその他のユーザ固有のデータを介して)1人以上の人を特定する。電子デバイスは更に、1つ以上のソース(例えば、ソーシャルメディアサービス及びメディアサービス等のソフトウェアサービス)から、1人以上の人の嗜好(例えば、好みのジャンル、好みのアーチスト)及び/又は活動(最近再生された曲)に関連する情報を取得する。例えば、電子デバイス1100は、ソフトウェアサービス上でユーザに関連付けられた1人以上の人を特定することができ、これらの人の一部又は全部がソフトウェアサービスを利用して再生したメディアアイテムを特定する。あるいは、電子デバイス1100は、データベース(例えば、前述したユーザ固有のコーパス)内の適切なメタデータ(例えば、友人タグ)を使用してメディアアイテムを検索することによって、メディアアイテムを特定する。示された例では、電子デバイス1100は、オーディオ出力1116(「これは、アデルによるHelloです」)を提供して、特定されたメディアアイテムを提供する。
【0293】
いくつかの実施例では、電子デバイスは、情報の要求を示す自然言語音声入力1118(「誰がこれを聴いていますか?」)を受信する。それに応じて、電子デバイス1100は、(例えば、関連するソフトウェアサービスを使用し、ユーザ固有のコーパスを使用して)メディアアイテムに関連付けられた1人以上の人の識別情報を提供する。識別情報は、ローカルに、及び/又は1つ以上のリモートデバイスから、取得され得る。示された例では、電子デバイス1100は、オーディオ出力1120(「あなたの友人のジョン及びジェーンです」)を提供して、識別情報を提供する。
4.メディア探索のためにデジタルアシスタントの聴覚に基づくインターフェースを提供するプロセス
【0294】
図12は、様々な実施例に係る、デジタルアシスタントの聴覚に基づくインターフェースを提供するプロセス1200を示している。プロセス1200は、例えば、デジタルアシスタントを実装する1つ以上の電子デバイスを使用して実行される。いくつかの実施例では、プロセス1200は、クライアントサーバシステム(例えばシステム100)を使用して実行され、プロセス1200のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイスとの間で任意の方法で分割される。他の実施例では、プロセス1200のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で分割される。したがって、本明細書では、プロセス1200の一部がクライアントサーバシステムの特定のデバイスによって実行されるように説明されているが、プロセス1200がそのように限定されないということが理解されるであろう。他の実施例では、プロセス1200は、1つのクライアントデバイス(例えば、ユーザデバイス104)のみ又は複数のクライアントデバイスのみを使用して実行される。プロセス1200では、いくつかのブロックは任意選択的に組み合わされ、いくつかのブロックの順序は任意選択的に変更され、いくつかのブロックは任意選択的に省略される。いくつかの実施例では、プロセス1200と組み合わせて、追加のステップが実行されてよい。
【0295】
ブロック1202で、電子デバイスは、メディアの要求を示す第1の自然言語音声入力を受信する。第1の自然言語音声入力は、第1の検索パラメータを含む。いくつかの実施例では、電子デバイスは、第1の自然言語音声入力に基づいてテキスト文字列を取得する。また、電子デバイスは、このテキスト文字列に基づいて、メディアアイテムの推奨を取得するというユーザの意図の表現を決定する。更に、電子デバイスは、ユーザの意図の表現に基づいて、タスク及びタスクを実行するための1つ以上のパラメータ(第1の検索パラメータを含む)を決定する。
【0296】
ブロック1204で、電子デバイス(又は電子デバイスのデジタルアシスタント)は、第1のメディアアイテムを提供する。第1のメディアアイテムは、第1の検索パラメータに基づいて特定される。いくつかの実施例では、第1のメディアアイテムは、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせである。
【0297】
いくつかの実施例では、第1のメディアアイテムを提供することは、デジタルアシスタントによって、第1のメディアアイテムに関連付けられた音声応答を示す音声出力を提供することを含む。第1のメディアアイテムを提供することは、音声応答を示す音声出力を提供しながら、デジタルアシスタントによって、第1のメディアアイテムの一部を再生することを更に含む。いくつかの他の実施例では、第1のメディアアイテムを提供することは、デジタルアシスタントによって、第1のメディアアイテムを再生することを含む。いくつかの他の実施例では、第1のメディアアイテムを提供することは、デジタルアシスタントによって、第1のメディアアイテムを含む複数のメディアアイテムを提供することを含む。
【0298】
ブロック1206で、電子デバイスは、第1のメディアアイテムを提供しながら、第2の自然言語音声入力を受信する。いくつかの実施例では、電子デバイスは、第2の自然言語音声入力を受信することに応答して、第1のメディアアイテムが提供される方法を調整する。
【0299】
ブロック1208で、電子デバイスは、第2の自然言語音声入力が、メディアの要求を絞り込むというユーザの意図に対応するかどうかを判定する。いくつかの実施例では、第2の自然言語音声入力がメディアの要求を絞り込むというユーザの意図に対応しているかどうかを判定することは、1つ以上の所定のフレーズ及び1つ以上のフレーズと等価の自然言語に基づいて、メディアの要求を絞り込むというユーザの意図の表現を導き出すことを含む。いくつかの実施例では、第2の自然言語音声入力がメディアの要求を絞り込むというユーザの意図に対応しているかどうかを判定することは、コンテキスト情報に基づいて、メディアの要求を絞り込むというユーザの意図の表現を導き出すことを含む。
【0300】
いくつかの実施例では、電子デバイスは、第2の自然言語音声入力に基づいて、メディアの要求を絞り込むための1つ以上のパラメータを取得する。いくつかの実施例では、1つ以上のパラメータのパラメータは、メディアアイテムの歌詞の内容、場面又は期間、活動、場所、雰囲気、既定のタイムフレーム内のリリース日付、対象とする視聴者、メディアアイテムのコレクション、又はこれらの任意の組み合わせに対応する。いくつかの実施例では、第2の自然言語音声入力が第1のユーザに関連付けられ、1つ以上のパラメータのパラメータが、第1のユーザとは異なる第2のユーザに対応する。
【0301】
いくつかの実施例では、メディアの要求を絞り込むための1つ以上のパラメータを取得することは、コンテキスト情報に基づいて1つ以上のパラメータを決定することを含む。いくつかの実施例では、コンテキスト情報は第1のメディアアイテムに関連する情報を含む。
【0302】
いくつかの実施例では、電子デバイスが1人以上のユーザの物理的存在を検出し、コンテキスト情報が、1人以上のユーザに関連する情報を含む。いくつかの実施例では、コンテキスト情報は、電子デバイスの1人以上のユーザに関連付けられた設定を含む。
【0303】
ブロック1210で、電子デバイス(又はデジタルアシスタント)が、第2の自然言語音声入力がメディアの要求を絞り込むというユーザの意図に対応するという決定に従って、第1のパラメータ及び第2の自然言語音声入力に基づいて、第1のメディアアイテムとは異なる第2のメディアアイテムを特定し、第2のメディアアイテムを提供する。第2のメディアアイテムは、曲、オーディオブック、ポッドキャスト、ステーション、プレイリスト、又はこれらの任意の組み合わせであることができる。
【0304】
いくつかの実施例では、電子デバイスは、第1の自然言語音声入力に基づいて、メディアアイテムの第1のセットを取得し、このメディアアイテムの第1のセットから第1のメディアアイテムを選択する。更に、電子デバイスは、第2の自然言語音声入力に基づいて、メディアアイテムの第1のセットのサブセットであるメディアアイテムの第2のセットを取得し、このメディアアイテムの第2のセットから第2のメディアアイテムを選択する。いくつかの実施例では、メディアアイテムの第2のセットを取得することは、メディアの要求を絞り込むための1つ以上のパラメータに基づいて、メディアアイテムの第1のセットから1つ以上のメディアアイテムを選択するこ