(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】2019522250
(43)【公表日】20190808
(54)【発明の名称】マルチタスキング環境におけるインテリジェントデジタルアシスタント
(51)【国際特許分類】
   G06F 3/16 20060101AFI20190712BHJP
   G10L 15/10 20060101ALI20190712BHJP
   G10L 15/00 20130101ALI20190712BHJP
   G06F 16/90 20190101ALI20190712BHJP
   G06F 16/00 20190101ALI20190712BHJP
【FI】
   !G06F3/16 650
   !G06F3/16 630
   !G06F3/16 690
   !G10L15/10 500T
   !G10L15/10 200W
   !G10L15/00 200B
   !G06F17/30 180A
   !G06F17/30 340A
【審査請求】有
【予備審査請求】未請求
【全頁数】176
(21)【出願番号】2018535277
(86)(22)【出願日】20161101
(85)【翻訳文提出日】20180706
(86)【国際出願番号】US2016059953
(87)【国際公開番号】WO2017213684
(87)【国際公開日】20171214
(31)【優先権主張番号】15/271,766
(32)【優先日】20160921
(33)【優先権主張国】US
(31)【優先権主張番号】62/348,728
(32)【優先日】20160610
(33)【優先権主張国】US
(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,JP,KE,KG,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,TZ,UA
【公序良俗違反の表示】
特許法第64条第2項第4号の規定により図面の一部または全部を不掲載とする。
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
2.FIREWIRE
3.Linux
4.UNIX
5.WINDOWS
6.JAVA
7.JAVASCRIPT
8.iTunes
9.Blu−ray
10.VxWorks
11.AAC
12.Keynote
13.Safari
(71)【出願人】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所】アメリカ合衆国 95014 カリフォルニア州 クパチーノ アップル パーク ウェイ ワン
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】100076428
【弁理士】
【氏名又は名称】大塚 康徳
(74)【代理人】
【識別番号】100115071
【弁理士】
【氏名又は名称】大塚 康弘
(74)【代理人】
【識別番号】100112508
【弁理士】
【氏名又は名称】高柳 司郎
(74)【代理人】
【識別番号】100116894
【弁理士】
【氏名又は名称】木村 秀二
(74)【代理人】
【識別番号】100130409
【弁理士】
【氏名又は名称】下山 治
(74)【代理人】
【識別番号】100134175
【弁理士】
【氏名又は名称】永川 行光
(72)【発明者】
【氏名】クドゥルシアン, アラム, ディー.
【住所又は居所】アメリカ合衆国 カリフォルニア州 95014, クパチーノ, インフィニット ループ 1, アップル インコーポレイテッド内
(72)【発明者】
【氏名】ジョーンズ, ブロンウィン
【住所又は居所】アメリカ合衆国 カリフォルニア州 95014, クパチーノ, インフィニット ループ 1, アップル インコーポレイテッド内
(72)【発明者】
【氏名】クランフィル, エリザベス, キャロライン
【住所又は居所】アメリカ合衆国 カリフォルニア州 95014, クパチーノ, インフィニット ループ 1, アップル インコーポレイテッド内
(72)【発明者】
【氏名】サドラー, ハリー, ジェイ.
【住所又は居所】アメリカ合衆国 カリフォルニア州 95014, クパチーノ, インフィニット ループ 1, アップル インコーポレイテッド内
(57)【要約】

デジタルアシスタントを動作させるためのシステム及び処理が提供される。一実施例では、方法は、第1の発話入力をユーザから受信することを含む。方法は、コンテクスト情報を特定することと、第1の発話入力及びコンテクスト情報に基づいてユーザ意図を判定することとを更に含む。方法は、ユーザ意図が、検索処理を使用して又はオブジェクト管理処理を使用してタスクを実行することであるかを判定することを更に含む。検索処理は、データを検索するように構成されており、オブジェクト管理処理は、オブジェクトを管理するように構成されている。方法は、ユーザ意図が検索処理を使用してタスクを実行することであるとの判定に従って、検索処理を使用してタスクを実行することと、ユーザ意図がオブジェクト管理処理を使用してタスクを実行することであるとの判定に従って、オブジェクト管理処理を使用してタスクを実行することとを更に含む。
【選択図】図19A
【特許請求の範囲】
【請求項1】
デジタルアシスタントサービスを提供する方法であって、
1つ以上のプロセッサ及びメモリを有するユーザデバイスにおいて、
第1の発話入力をユーザから受信することと、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定することと、
前記第1の発話入力及び前記コンテクスト情報に基づいてユーザ意図を判定することと、
前記ユーザ意図が、検索処理を使用してタスクを実行することであるか又はオブジェクト管理処理を使用してタスクを実行することであるかを判定することであって、前記検索処理は、前記ユーザデバイスの内部又は外部に記憶されたデータを検索するように構成されており、前記オブジェクト管理処理は、前記ユーザデバイスと関連付けられたオブジェクトを管理するように構成されている、ことと、
前記ユーザ意図が前記検索処理を使用して前記タスクを実行することであるとの判定に従って、前記検索処理を使用して前記タスクを実行することと、
前記ユーザ意図が前記オブジェクト管理処理を使用して前記タスクを実行することとの前記判定に従って、前記オブジェクト管理処理を使用して前記タスクを実行することと、
を含む、方法。
【請求項2】
前記第1の発話入力を受信する前に、
前記ユーザデバイスと関連付けられたディスプレイ上で、前記デジタルアシスタントサービスを呼び出すためのアフォーダンスを表示することを更に含む、請求項1に記載の方法。
【請求項3】
所定のフレーズを受信したことに応じて前記デジタルアシスタントを呼び出すことを更に含む、請求項2に記載の方法。
【請求項4】
前記アフォーダンスの選択を受信したことに応じて前記デジタルアシスタントを呼び出すことを更に含む、請求項2に記載の方法。
【請求項5】
前記ユーザ意図を判定することは、
1つ以上の実施可能な意図を判定することと、
前記実施可能な意図と関連付けられた1つ以上のパラメータを判定することと、
を含む、請求項1に記載の方法。
【請求項6】
前記コンテクスト情報は、ユーザ特有データ、1つ以上のオブジェクトと関連付けられたメタデータ、センサデータ、及びユーザデバイス構成データのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項7】
前記ユーザ意図が前記検索処理を使用して又は前記オブジェクト管理処理を使用して前記タスクを実行することであると判定することは、
前記発話入力が前記検索処理又は前記オブジェクト管理処理を表す1つ以上のキーワードを含むか否かを判定することを含む、請求項1に記載の方法。
【請求項8】
前記ユーザ意図が前記検索処理を使用して又は前記オブジェクト管理処理を使用して前記タスクを実行することであると判定することは、
前記タスクが検索することと関連付けられているか否かを判定することと、
前記タスクが検索することと関連付けられているとの判定に従って、前記タスクを実行することが前記検索処理を必要とするか否かを判定することと、
前記タスクは検索することと関連付けられていないとの判定に従って、前記タスクが少なくとも1つのオブジェクトを管理することと関連付けられているか否かを判定することと、
を含む、請求項1に記載の方法。
【請求項9】
前記タスクは、検索することと関連付けられ、前記方法は、
前記タスクを実行することが前記検索処理を必要としないとの判定に従って、
前記検索処理又は前記オブジェクト管理処理を選択するために発話要求を出力することと、
前記ユーザから、前記検索処理又は前記オブジェクト管理処理の前記選択を示す第2の発話入力を受信することと、
を更に含む、請求項8に記載の方法。
【請求項10】
前記タスクは、検索することと関連付けられ、前記方法は、
前記タスクを実行することが前記検索処理を必要としないとの判定に従って、所定の構成に基づいて、前記タスクが前記検索処理又は前記オブジェクト管理処理を使用して実行されるか否かを判定することを更に含む、請求項8に記載の方法。
【請求項11】
前記タスクは、検索することと関連付けられず、前記方法は、
前記タスクが前記少なくとも1つのオブジェクトを管理することと関連付けられていないとの判定に従って、
前記ユーザデバイスに利用可能な第4の処理を使用して前記タスクを実行することができるか否かを判定すること、
前記ユーザとのダイアログを開始することと、
のうちの少なくとも1つを実行することを更に含む、請求項8に記載の方法。
【請求項12】
前記検索処理を使用して前記タスクを実行することは、
前記検索処理を使用して少なくとも1つのオブジェクトを検索することを含む、請求項1に記載の方法。
【請求項13】
前記少なくとも1つのオブジェクトは、フォルダ又はファイルのうちの少なくとも1つを含む、請求項12に記載の方法。
【請求項14】
前記ファイルは、写真、音声、又はビデオのうちの少なくとも1つを含む、請求項13に記載の方法。
【請求項15】
前記ファイルは、前記ユーザデバイスの内部又は外部に記憶されている、請求項13に記載の方法。
【請求項16】
前記フォルダ又は前記ファイルのうちの少なくとも1つを検索することは、前記フォルダ又は前記ファイルと関連付けられたメタデータに基づいている、請求項13に記載の方法。
【請求項17】
前記少なくとも1つのオブジェクトは、通信を含む、請求項12に記載の方法。
【請求項18】
前記通信は、電子メール、メッセージ、通知、及びボイスメールのうちの少なくとも1つを含む、請求項17に記載の方法。
【請求項19】
前記通信と関連付けられたメタデータを検索することを更に含む、請求項17に記載の方法。
【請求項20】
前記少なくとも1つのオブジェクトは、連絡先又はカレンダのうちの少なくも1つを含む、請求項12に記載の方法。
【請求項21】
前記少なくとも1つのオブジェクトは、アプリケーションを含む、請求項12に記載の方法。
【請求項22】
前記少なくとも1つのオブジェクトは、オンライン情報のソースを含む、請求項12に記載の方法。
【請求項23】
前記タスクは、検索することと関連付けられ、前記オブジェクト管理処理を使用して前記タスクを実行することは、
前記オブジェクト管理処理を使用して前記少なくとも1つのオブジェクトを検索することを含む、請求項1に記載の方法。
【請求項24】
前記少なくとも1つのオブジェクトは、フォルダ又はファイルのうちの少なくとも1つを含む、請求項23に記載の方法。
【請求項25】
前記ファイルは、写真、音声、又はビデオのうちの少なくとも1つを含む、請求項24に記載の方法。
【請求項26】
前記ファイルは、前記ユーザデバイスの内部又は外部に記憶されている、請求項24に記載の方法。
【請求項27】
前記フォルダ又は前記ファイルのうちの少なくとも1つを検索することは、前記フォルダ又は前記ファイルと関連付けられたメタデータに基づいている、請求項24に記載の方法。
【請求項28】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記オブジェクト管理処理をインスタンス化することを含み、前記オブジェクト管理処理をインスタンス化することは、前記オブジェクト管理処理を呼び出すこと、前記オブジェクト管理処理の新たなインスタンスを生成すること、又は前記オブジェクト管理処理の既存のインスタンスを実行することを含む、請求項1に記載の方法。
【請求項29】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを作成することを含む、請求項1に記載の方法。
【請求項30】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを記憶することを含む、請求項1に記載の方法。
【請求項31】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを圧縮することを含む、請求項1に記載の方法。
【請求項32】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを第1の物理又は仮想記憶装置から第2の物理又は仮想記憶装置に移動することを含む、請求項1に記載の方法。
【請求項33】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを第1の物理又は仮想記憶装置から第2の物理又は仮想記憶装置に複製することを含む、請求項1に記載の方法。
【請求項34】
前記オブジェクト管理処理を使用して前記タスクを実行することは、物理又は仮想記憶装置に記憶された前記少なくとも1つのオブジェクトを削除することを含む、請求項1に記載の方法。
【請求項35】
前記オブジェクト管理処理を使用して前記タスクを実行することは、物理又は仮想記憶装置に記憶された少なくとも1つのオブジェクトを復元することを含む、請求項1に記載の方法。
【請求項36】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトをマーク付けすることを含み、前記少なくとも1つのオブジェクトをマーク付けすることは、可視的である、又は前記少なくとも1つのオブジェクトのメタデータと関連付けられていることのうちの少なくとも1つである、請求項1に記載の方法。
【請求項37】
前記オブジェクト管理処理を使用して前記タスクを実行することは、バックアップのための所定の期間に従って前記少なくとも1つのオブジェクトをバックアップすることを含む、請求項1に記載の方法。
【請求項38】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記ユーザデバイスに通信可能に接続された1つ以上の電子デバイスの間で前記少なくとも1つのオブジェクトを共有することを含む、請求項1に記載の方法。
【請求項39】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した結果に基づいて応答を提供することを更に含む、請求項1に記載の方法。
【請求項40】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記検索処理又は前記オブジェクト管理処理を使用して前記タスクを実行した前記結果を提供する第1のユーザインタフェースを表示することを含む、請求項39に記載の方法。
【請求項41】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記検索処理を使用して前記タスクを実行した前記結果と関連付けられたリンクを提供することを含む、請求項39に記載の方法。
【請求項42】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に従って発話出力を提供することを含む、請求項39に記載の方法。
【請求項43】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記ユーザが前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果を操作することを可能にするアフォーダンスを提供することを含む、請求項39に記載の方法。
【請求項44】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記タスクを実行した前記結果を使用して動作する第3の処理をインスタンス化することを含む、請求項39に記載の方法。
【請求項45】
検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
信用レベルを判定することと、
前記信用レベルの前記判定に従って前記応答を提供することと、
を含む、請求項39に記載の方法。
【請求項46】
前記信用レベルは、前記第1の発話入力及び前記ユーザデバイスと関連付けられたコンテクスト情報に基づいて前記ユーザ意図を判定する精度を表す、請求項45に記載の方法。
【請求項47】
前記信用レベルは、前記ユーザ意図が、前記検索処理を使用して又は前記オブジェクト管理処理を使用して前記タスクを実行することであるかを判定する精度を表す、請求項45に記載の方法。
【請求項48】
前記信用レベルは、前記検索処理又は前記オブジェクト管理処理を使用して前記タスクを実行する精度を表す、請求項45に記載の方法。
【請求項49】
前記信用レベルの前記判定に従って前記応答を提供することは、
前記信用レベルが閾値信用レベル以上であるか否かを判定することと、
前記信用レベルが前記閾値信用レベル以上であるとの判定に従って、第1の応答を提供することと、
前記信用レベルが閾値信用レベル未満であるとの判定に従って、第2の応答を提供することと、
を含む、請求項45から48のいずれか一項に記載の方法。
【請求項50】
1つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令は、電子デバイスの1つ以上のプロセッサによって実行されるとき、
前記電子デバイスに、
第1の発話入力をユーザから受信させ、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定させ、
前記第1の発話入力及び前記コンテクスト情報に基づいてユーザ意図を判定させ、
前記ユーザ意図が、前記ユーザデバイスの内部又は外部に記憶されたデータを検索するように構成された検索処理を使用してタスクを実行することであるか、又は前記ユーザデバイスと関連付けられたオブジェクトを管理するように構成されたオブジェクト管理処理を使用してタスクを実行することであるかを判定させ、
前記ユーザ意図が前記検索処理を使用して前記タスクを実行することであるとの判定に従って、前記検索処理を使用して前記タスクを実行させ、
前記ユーザ意図が前記オブジェクト管理処理を使用して前記タスクを実行することであるとの前記判定に従って、前記オブジェクト管理処理を使用して前記タスクを実行させる、
非一時的コンピュータ可読記憶媒体。
【請求項51】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
メモリに記憶された1つ以上のプログラムと、を備え、前記1つ以上のプログラムは、
第1の発話入力をユーザから受信し、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定し、
前記第1の発話入力及び前記コンテクスト情報に基づいてユーザ意図を判定し、
前記ユーザ意図が、前記ユーザデバイスの内部又は外部に記憶されたデータを検索するように構成された検索処理を使用してタスクを実行することであるか、又は前記ユーザデバイスと関連付けられたオブジェクトを管理するように構成されたオブジェクト管理処理を使用してタスクを実行することであるかを判定し、
前記ユーザ意図が前記検索処理を使用して前記タスクを実行することであるとの判定に従って、前記検索処理を使用して前記タスクを実行し、
前記ユーザ意図が前記オブジェクト管理処理を使用して前記タスクを実行することとの前記判定に従って、前記オブジェクト管理処理を使用して前記タスクを実行する、
命令を含む、電子デバイス。
【請求項52】
電子デバイスであって、
第1の発話入力をユーザから受信する手段と、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定する手段と、
前記第1の発話入力及び前記コンテクスト情報に基づいてユーザ意図を判定する手段と、
前記ユーザ意図が、検索処理を使用して又はオブジェクト管理処理を使用してタスクを実行することであるかを判定する手段であって、前記検索処理は、前記ユーザデバイスの内部又は外部に記憶されたデータを検索するように構成されており、前記オブジェクト管理処理は、前記ユーザデバイスと関連付けられたオブジェクトを管理するように構成されている、手段と、
前記ユーザ意図が前記検索処理を使用して前記タスクを実行することであるとの判定に従って、前記検索処理を使用して前記タスクを実行する手段と、
前記ユーザ意図が前記オブジェクト管理処理を使用して前記タスクを実行することであるとの前記判定に従って、前記オブジェクト管理処理を使用して前記タスクを実行する手段と、
を備える、電子デバイス。
【請求項53】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
メモリに記憶された1つ以上のプログラムと、を備え、前記1つ以上のプログラムは、請求項1から49のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項54】
電子デバイスであって、
請求項1から49のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【請求項55】
電子デバイスの1つ以上のプロセッサによって実行される1つ以上のプログラムを含む非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令は、前記1つ以上のプロセッサによって実行されるとき、前記電子デバイスに請求項1から49のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項56】
デジタルアシスタントを動作させるシステムであって、前記システムは、請求項1から49のいずれか一項に記載の方法を実行する手段を備える、システム。
【請求項57】
電子デバイスであって、
第1の発話入力をユーザから受信するように構成された受信ユニットと、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定し、
前記第1の発話入力及び前記コンテクスト情報に基づいてユーザ意図を判定し、
前記ユーザ意図が、前記ユーザデバイスの内部又は外部に記憶されたデータを検索するように構成された検索処理を使用してタスクを実行することであるか、又は前記ユーザデバイスと関連付けられたオブジェクトを管理するように構成されたオブジェクト管理処理を使用してタスクを実行することであるかを判定し、
前記ユーザ意図が前記検索処理を使用して前記タスクを実行することであるとの判定に従って、前記検索処理を使用して前記タスクを実行し、
前記ユーザ意図が前記オブジェクト管理処理を使用して前記タスクを実行することであるとの前記判定に従って、前記オブジェクト管理処理を使用して前記タスクを実行する、
ように構成された、プロセッシングユニットと、
を備える、電子デバイス。
【請求項58】
前記第1の発話入力を受信する前に、
前記ユーザデバイスと関連付けられたディスプレイ上で、前記デジタルアシスタントサービスを呼び出すためのアフォーダンスを表示することを更に備える、請求項57に記載の電子デバイス。
【請求項59】
所定のフレーズを受信したことに応じて前記デジタルアシスタントをインスタンス化することを更に備える、請求項58に記載の電子デバイス。
【請求項60】
前記アフォーダンスの選択を受信したことに応じて前記デジタルアシスタントをインスタンス化することを更に備える、請求項58に記載の電子デバイス。
【請求項61】
前記ユーザ意図を判定することは、
1つ以上の実施可能な意図を判定することと、
前記実施可能な意図と関連付けられた1つ以上のパラメータを判定することと、
を含む、請求項57に記載の電子デバイス。
【請求項62】
前記コンテクスト情報は、ユーザ特有データ、1つ以上のオブジェクトと関連付けられたメタデータ、センサデータ、及びユーザデバイス構成データのうちの少なくとも1つを含む、請求項57に記載の電子デバイス。
【請求項63】
前記ユーザ意図が、前記検索処理を使用して又は前記オブジェクト管理処理を使用して前記タスクを実行することであるかを判定することは、
前記発話入力が前記検索処理又は前記オブジェクト管理処理を表す1つ以上のキーワードを含むか否かを判定することを含む、請求項57に記載の電子デバイス。
【請求項64】
前記ユーザ意図が、前記検索処理を使用して又は前記オブジェクト管理処理を使用して前記タスクを実行することであるかを判定することは、
前記タスクが検索することと関連付けられているか否かを判定することと、
前記タスクが検索することと関連付けられているとの判定に従って、前記タスクを実行することが前記検索処理を必要とするか否かを判定することと、
前記タスクは検索することと関連付けられていないとの判定に従って、前記タスクが少なくとも1つのオブジェクトを管理することと関連付けられているか否かを判定することと、
を含む、請求項57に記載の電子デバイス。
【請求項65】
前記タスクは、検索することと関連付けられ、前記電子デバイスは、
前記タスクを実行することが前記検索処理を必要としないとの判定に従って、
前記検索処理又は前記オブジェクト管理処理を選択するために発話要求を出力することと、
前記ユーザから、前記検索処理又は前記オブジェクト管理処理の前記選択を示す第2の発話入力を受信することと、
を更に備える、請求項64に記載の電子デバイス。
【請求項66】
前記タスクは、検索することと関連付けられ、前記電子デバイスは、
前記タスクを実行することが前記検索処理を必要としないとの判定に従って、所定の構成に基づいて、前記タスクが前記検索処理を使用して実行されるか又は前記オブジェクト管理処理を使用して実行されるかを判定することを更に備える、請求項64に記載の電子デバイス。
【請求項67】
前記タスクは、検索することと関連付けられず、前記電子デバイスは、
前記タスクが前記少なくとも1つのオブジェクトを管理することと関連付けられていないとの判定に従って、
前記ユーザデバイスに利用可能な第4の処理を使用して前記タスクを実行することができるか否かを判定することと、
前記ユーザとのダイアログを開始することと、
のうちの少なくとも1つを実行することを更に備える、請求項64に記載の電子デバイス。
【請求項68】
前記検索処理を使用して前記タスクを実行することは、
前記検索処理を使用して少なくとも1つのオブジェクトを検索することを含む、請求項57に記載の電子デバイス。
【請求項69】
前記少なくとも1つのオブジェクトは、フォルダ又はファイルのうちの少なくとも1つを含む、請求項68に記載の電子デバイス。
【請求項70】
前記ファイルは、写真、音声、又はビデオのうちの少なくとも1つを含む、請求項69に記載の電子デバイス。
【請求項71】
前記ファイルは、前記ユーザデバイスの内部又は外部に記憶されている、請求項69に記載の電子デバイス。
【請求項72】
前記フォルダ又は前記ファイルのうちの少なくとも1つを検索することは、前記フォルダ又は前記ファイルと関連付けられたメタデータに基づいている、請求項69に記載の電子デバイス。
【請求項73】
前記少なくとも1つのオブジェクトは、通信を含む、請求項68に記載の電子デバイス。
【請求項74】
前記通信は、電子メール、メッセージ、通知、又はボイスメールのうちの少なくとも1つを含む、請求項73に記載の電子デバイス。
【請求項75】
前記通信と関連付けられたメタデータを検索することを更に備える、請求項73に記載の電子デバイス。
【請求項76】
前記少なくとも1つのオブジェクトは、連絡先又はカレンダのうちの少なくとも1つを含む、請求項68に記載の電子デバイス。
【請求項77】
前記少なくとも1つのオブジェクトは、アプリケーションを含む、請求項68に記載の電子デバイス。
【請求項78】
前記少なくとも1つのオブジェクトは、オンライン情報のソースを含む、請求項68に記載の電子デバイス。
【請求項79】
前記タスクは、検索することと関連付けられ、前記オブジェクト管理処理を使用して前記タスクを実行することは、
前記オブジェクト管理処理を使用して前記少なくとも1つのオブジェクトを検索することを含む、請求項57に記載の電子デバイス。
【請求項80】
前記少なくとも1つのオブジェクトは、フォルダ又はファイルのうちの少なくとも1つを含む、請求項79に記載の電子デバイス。
【請求項81】
前記ファイルは、写真、音声、又はビデオのうちの少なくとも1つを含む、請求項80に記載の電子デバイス。
【請求項82】
前記ファイルは、前記ユーザデバイスの内部又は外部に記憶されている、請求項79に記載の電子デバイス。
【請求項83】
前記フォルダ又は前記ファイルのうちの少なくとも1つを検索することは、前記フォルダ又は前記ファイルと関連付けられたメタデータに基づいている、請求項79に記載の電子デバイス。
【請求項84】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記オブジェクト管理処理をインスタンス化することを含み、前記オブジェクト管理処理をインスタンス化することは、前記オブジェクト管理処理を呼び出すこと、前記オブジェクト管理処理の新たなインスタンスを生成すること、又は前記オブジェクト管理処理の既存のインスタンスを実行することを含む、請求項57に記載の電子デバイス。
【請求項85】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを作成することを含む、請求項57に記載の電子デバイス。
【請求項86】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを記憶することを含む、請求項57に記載の電子デバイス。
【請求項87】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを圧縮することを含む、請求項57に記載の電子デバイス。
【請求項88】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを第1の物理又は仮想記憶装置から第2の物理又は仮想記憶装置に移動することを含む、請求項57に記載の電子デバイス。
【請求項89】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトを第1の物理又は仮想記憶装置から第2の物理又は仮想記憶装置に複製することを含む、請求項57に記載の電子デバイス。
【請求項90】
前記オブジェクト管理処理を使用して前記タスクを実行することは、物理又は仮想記憶装置に記憶された前記少なくとも1つのオブジェクトを削除することを含む、請求項57に記載の電子デバイス。
【請求項91】
前記オブジェクト管理処理を使用して前記タスクを実行することは、物理又は仮想記憶装置に記憶された少なくとも1つのオブジェクトを復元することを含む、請求項57に記載の電子デバイス。
【請求項92】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記少なくとも1つのオブジェクトをマーク付けすることを含み、前記少なくとも1つのオブジェクトをマーク付けすることは、可視的である、又は前記少なくとも1つのオブジェクトのメタデータと関連付けられていることのうちの少なくとも1つである、請求項57に記載の電子デバイス。
【請求項93】
前記オブジェクト管理処理を使用して前記タスクを実行することは、バックアップのための所定の期間に従って前記少なくとも1つのオブジェクトをバックアップすることを含む、請求項57に記載の電子デバイス。
【請求項94】
前記オブジェクト管理処理を使用して前記タスクを実行することは、前記ユーザデバイスに通信可能に接続された1つ以上の電子デバイスの間で前記少なくとも1つのオブジェクトを共有することを含む、請求項57に記載の電子デバイス。
【請求項95】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した結果に基づいて応答を提供することを更に備える、請求項57に記載の電子デバイス。
【請求項96】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記検索処理又は前記オブジェクト管理処理を使用して前記タスクを実行した前記結果を提供する第1のユーザインタフェースを表示することを含む、請求項95に記載の電子デバイス。
【請求項97】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記検索処理を使用して前記タスクを実行した前記結果と関連付けられたリンクを提供することを含む、請求項95に記載の電子デバイス。
【請求項98】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に従って発話出力を提供することを含む、請求項95に記載の電子デバイス。
【請求項99】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記ユーザが前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果を操作することを可能にするアフォーダンスを提供することを含む、請求項95に記載の電子デバイス。
【請求項100】
前記検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
前記タスクを実行した前記結果を使用して動作する第3の処理をインスタンス化することを含む、請求項95に記載の電子デバイス。
【請求項101】
検索処理又は前記オブジェクト管理処理を使用して、前記タスクを実行した前記結果に基づいて前記応答を提供することは、
信用レベルを判定することと、
前記信用レベルの前記判定に従って前記応答を提供することと、
を含む、請求項95に記載の電子デバイス。
【請求項102】
前記信用レベルは、前記第1の発話入力及び前記ユーザデバイスと関連付けられたコンテクスト情報に基づいて前記ユーザ意図を判定する精度を表す、請求項101に記載の電子デバイス。
【請求項103】
前記信用レベルは、前記ユーザ意図が前記検索処理を使用して又は前記オブジェクト管理処理を使用して前記タスクを実行することであるかを判定する精度を表す、請求項101に記載の電子デバイス。
【請求項104】
前記信用レベルは、前記検索処理又は前記オブジェクト管理処理を使用して前記タスクを実行する精度を表す、請求項101に記載の電子デバイス。
【請求項105】
前記信用レベルの前記判定に従って前記応答を提供することは、
前記信用レベルが閾値信用レベル以上であるか否かを判定することと、
前記信用レベルが前記閾値信用レベル以上であるとの判定に従って、第1の応答を提供することと、
前記信用レベルが閾値信用レベル未満であるとの判定に従って、第2の応答を提供することと、
を含む、請求項101から104のいずれか一項に記載の電子デバイス。
【請求項106】
デジタルアシスタントサービスを提供する方法であって、
1つ以上のプロセッサ及びメモリを有するユーザデバイスにおいて、
タスクを実行するために発話入力をユーザから受信することと、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定することと、
前記発話入力及び前記ユーザデバイスと関連付けられたコンテクスト情報に基づいてユーザ意図を判定することと、
ユーザ意図に従って、前記タスクが前記ユーザデバイス、又は前記ユーザデバイスに通信可能に接続された第1の電子デバイスにおいて実行されるかを判定することと、
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに記憶されているとの判定に従って、前記タスクを実行するための前記コンテンツを受信することと、
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供することと、
を含む、方法
【請求項107】
前記ユーザデバイスは、複数のユーザインタフェースを提供するように構成されている、請求項106に記載の方法。
【請求項108】
前記ユーザデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、又はサーバを含む、請求項106に記載の方法。
【請求項109】
前記第1の電子デバイスは、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、スマートフォン、タブレット、セットトップボックス、又は時計を含む、請求項106に記載の方法。
【請求項110】
前記発話入力を受信する前に、
前記ユーザデバイスのディスプレイ上で、前記デジタルアシスタントを呼び出すためのアフォーダンスを表示することを更に含む、請求項106に記載の方法。
【請求項111】
所定のフレーズを受信したことに応じて前記デジタルアシスタントをインスタンス化することを更に含む、請求項110に記載の方法。
【請求項112】
前記アフォーダンスの選択を受信したことに応じて前記デジタルアシスタントをインスタンス化することを更に含む、請求項110に記載の方法。
【請求項113】
前記ユーザ意図を判定することは、
1つ以上の実施可能な意図を判定することと、
前記実施可能な意図と関連付けられた1つ以上のパラメータを判定することと、
請求項106に記載の方法。
【請求項114】
前記コンテクスト情報は、ユーザ特有データ、センサデータ、及びユーザデバイス構成データのうちの少なくとも1つを含む、請求項106に記載の方法。
【請求項115】
前記タスクが前記ユーザデバイス又は前記第1の電子デバイスにおいて実行されるかを判定することは、前記発話入力に含まれる1つ以上のキーワードに基づいている、請求項106に記載の方法。
【請求項116】
前記タスクが前記ユーザデバイス又は前記第1の電子デバイスにおいて実行されるかを判定することは、
前記ユーザデバイスにおいて前記タスクを実行することが実行基準を満たすかを判定することと、
前記ユーザデバイスにおいて前記タスクを実行することが前記実行基準を満たすとの判定に従って、前記タスクが前記ユーザデバイスにおいて実行されると判定することと、
を含む、請求項106に記載の方法。
【請求項117】
前記ユーザデバイスにおいて前記タスクを実行することが前記実行基準を満たさないとの判定に従って、
前記第1の電子デバイスにおいて前記タスクを実行することが前記実行基準を満たすかを判定することを更に含む、請求項116に記載の方法。
【請求項118】
前記第1の電子デバイスにおいて前記タスクを実行することが前記実行基準を満たすとの判定に従って、前記タスクが前記第1の電子デバイスにおいて実行されると判定することと、
前記第1の電子デバイスにおいて前記タスクを前記実行することが前記実行基準を満たさないとの判定に従って、
前記第2の電子デバイスにおいて前記タスクを実行することが前記実行基準を満たすかを判定することと、
を更に含む、請求項117に記載の方法。
【請求項119】
前記実行基準は、1つ以上のユーザ優先度に基づいて判定される、請求項116に記載の方法。
【請求項120】
前記実行基準は、前記デバイス構成データに基づいて判定される、請求項116に記載の方法。
【請求項121】
前記実行基準は、動的に更新される、請求項116に記載の方法。
【請求項122】
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを受信することは、
前記コンテンツの少なくとも一部を前記第1の電子デバイスから受信することを含み、前記コンテンツの少なくとも一部は、前記第1電子デバイスに記憶されている、請求項106に記載の方法。
【請求項123】
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを受信することは、
前記コンテンツの少なくとも一部を第3の電子デバイスから受信することを含む、請求項106に記載の方法。
【請求項124】
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供することは、
前記コンテンツの少なくとも一部を前記ユーザデバイスから前記第1の電子デバイスに提供することを含み、前記コンテンツの少なくとも一部は、前記ユーザデバイスに記憶されている、請求項106に記載の方法。
【請求項125】
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供することは、
前記コンテンツの少なくとも一部を第4の電子デバイスから前記第1の電子デバイスに提供させることを含み、前記コンテンツの少なくとも一部は、前記第4の電子デバイスに記憶されている、請求項106に記載の方法。
【請求項126】
前記タスクは、前記ユーザデバイスにおいて実行され、前記方法は、前記受信されたコンテンツを使用して前記ユーザデバイスにおいて第1の応答を提供することを更に含む、請求項106に記載の方法。
【請求項127】
前記ユーザデバイスにおいて前記第1の応答を提供することは、
前記ユーザデバイスにおいて前記タスクを実行することを含む、請求項126に記載の方法。
【請求項128】
前記ユーザデバイスにおいて前記タスクを実行することは、前記ユーザデバイスに対して部分的にリモートに実行されたタスクの続きである、請求項127に記載の方法。
【請求項129】
前記ユーザデバイスにおいて前記第1の応答を提供することは、
前記ユーザデバイスにおいて実行される前記タスクと関連付けられた第1のユーザインタフェースを表示することを含む、請求項126に記載の方法。
【請求項130】
前記ユーザデバイスにおいて前記第1の応答を提供することは、
前記ユーザデバイスにおいて実行される前記タスクと関連付けられたリンクを提供することを含む、請求項126に記載の方法。
【請求項131】
前記ユーザデバイスにおいて前記第1の応答を提供することは、
前記ユーザデバイスにおいて実行される前記タスクに従って発話出力を提供することを含む、請求項126に記載の方法。
【請求項132】
前記タスクは、前記第1の電子デバイスにおいて実行され、前記方法は、前記ユーザデバイスにおいて第2の応答を提供することを更に含む、請求項106に記載の方法。
【請求項133】
前記ユーザデバイスにおいて前記第2の応答を提供することは、
前記第1の電子デバイスにおいて前記タスクを実行させることを含む、請求項132に記載の方法。
【請求項134】
前記第1の電子デバイスにおいて実行される前記タスクは、前記第1の電子デバイスに対してリモートに実行されたタスクの続きである、請求項133に記載の方法。
【請求項135】
前記ユーザデバイスにおいて前記第2の応答を提供することは、
前記第1の電子デバイスにおいて実行される前記タスクに従って発話出力を提供することを含む、請求項132に記載の方法。
【請求項136】
前記ユーザデバイスにおいて前記第2の応答を提供することは、
前記ユーザが前記タスクの実行のための別の電子デバイスを選択することを可能にするアフォーダンスを提供することを含む、条項132〜135のいずれか一つに記載の方法。
【請求項137】
1つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令は、電子デバイスの1つ以上のプロセッサによって実行されるとき、
前記電子デバイスに、
タスクを実行するために発話入力をユーザから受信させ、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定させ、
前記発話入力及び前記ユーザデバイスと関連付けられたコンテクスト情報に基づいてユーザ意図を判定させ、
ユーザ意図に従って、前記タスクが前記ユーザデバイス、又は前記ユーザデバイスに通信可能に接続された第1の電子デバイスにおいて実行されるかを判定させ、
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに記憶されているとの判定に従って、前記タスクを実行するための前記コンテンツを受信させ、
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供させる、
非一時的コンピュータ可読記憶媒体。
【請求項138】
ユーザデバイスであって、
1つ以上のプロセッサと、
メモリと、
メモリに記憶された1つ以上のプログラムと、を備え、前記1つ以上のプログラムは、
タスクを実行するために発話入力をユーザから受信し、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定し、
前記発話入力及び前記ユーザデバイスと関連付けられたコンテクスト情報に基づいてユーザ意図を判定し、
ユーザ意図に従って、前記タスクが前記ユーザデバイス、又は前記ユーザデバイスに通信可能に接続された第1の電子デバイスにおいて実行されるかを判定し、
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに記憶されているとの判定に従って、前記タスクを実行するための前記コンテンツを受信し、
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供する、
命令を含む、ユーザデバイス。
【請求項139】
ユーザデバイスであって、
タスクを実行するために発話入力をユーザから受信する手段と、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定する手段と、
前記発話入力及び前記ユーザデバイスと関連付けられたコンテクスト情報に基づいてユーザ意図を判定する手段と、
ユーザ意図に従って、前記タスクが前記ユーザデバイス、又は前記ユーザデバイスに通信可能に接続された第1の電子デバイスにおいて実行されるかを判定する手段と、
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに記憶されているとの判定に従って、前記タスクを実行するための前記コンテンツを受信する手段と、
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供する手段と、
を備える、ユーザデバイス。
【請求項140】
ユーザデバイスであって、
1つ以上のプロセッサと、
メモリと、
メモリに記憶された1つ以上のプログラムと、を備え、前記1つ以上のプログラムは、請求項106から136のいずれか一項に記載の方法を実行する命令を含む、ユーザデバイス。
【請求項141】
ユーザデバイスであって、
請求項106から136のいずれか一項に記載の方法を実行する手段を備える、ユーザデバイス。
【請求項142】
電子デバイスの1つ以上のプロセッサによって実行される1つ以上のプログラムを含む非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令は、前記1つ以上のプロセッサによって実行されるとき、前記電子デバイスに請求項106から136のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項143】
デジタルアシスタントを動作させるシステムであって、前記システムは、請求項106から136のいずれか一項に記載の方法を実行する手段を備える、システム。
【請求項144】
ユーザデバイスであって、
タスクを実行するために発話入力をユーザから受信するように構成された受信ユニットと、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定し、
前記発話入力及び前記ユーザデバイスと関連付けられたコンテクスト情報に基づいてユーザ意図を判定し、
ユーザ意図に従って、前記タスクが前記ユーザデバイス、又は前記ユーザデバイスに通信可能に接続された第1の電子デバイスにおいて実行されるかを判定し、
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに記憶されているとの判定に従って、前記タスクを実行するための前記コンテンツを受信し、
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供する、
ように構成されたプロセシングユニットと、
を備える、ユーザデバイス。
【請求項145】
前記ユーザデバイスは、複数のユーザインタフェースを提供するように構成されている、請求項144に記載のユーザデバイス。
【請求項146】
前記ユーザデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、又はサーバを含む、請求項144に記載のユーザデバイス。
【請求項147】
前記第1の電子デバイスは、ラップトップコンピュータ、デスクトップコンピュータ、サーバ、スマートフォン、タブレット、セットトップボックス、又は時計を含む、請求項144に記載のユーザデバイス。
【請求項148】
前記発話入力を受信する前に、
前記ユーザデバイスのディスプレイ上で、前記デジタルアシスタントを呼び出すためのアフォーダンスを表示することを更に備える、請求項144に記載のユーザデバイス。
【請求項149】
所定のフレーズを受信したことに応じて前記デジタルアシスタントをインスタンス化することを更に備える、請求項148に記載のユーザデバイス。
【請求項150】
前記アフォーダンスの選択を受信したことに応じて前記デジタルアシスタントをインスタンス化することを更に備える、請求項148に記載のユーザデバイス。
【請求項151】
前記ユーザ意図を判定することは、
1つ以上の実施可能な意図を判定することと、
前記実施可能な意図と関連付けられた1つ以上のパラメータを判定することと、
を含む、請求項144に記載のユーザデバイス。
【請求項152】
前記コンテクスト情報は、ユーザ特有データ、センサデータ、及びユーザデバイス構成データのうちの少なくとも1つを含む、請求項144に記載のユーザデバイス。
【請求項153】
前記タスクが前記ユーザデバイス又は前記第1の電子デバイスにおいて実行されるかを判定することは、前記発話入力に含まれる1つ以上のキーワードに基づいている、請求項144に記載のユーザデバイス。
【請求項154】
前記タスクが前記ユーザデバイス又は前記第1の電子デバイスにおいて実行されるかを判定することは、
前記ユーザデバイスにおいて前記タスクを実行することが実行基準を満たすかを判定することと、
前記ユーザデバイスにおいて前記タスクを実行することが前記実行基準を満たすとの判定に従って、前記タスクが前記ユーザデバイスにおいて実行されると判定することと、
を含む、請求項144に記載のユーザデバイス。
【請求項155】
前記ユーザデバイスにおいて前記タスクを実行することが前記実行基準を満たさないとの判定に従って、
前記第1の電子デバイスにおいて前記タスクを実行することが前記実行基準を満たすかを判定することを更に備える、請求項154に記載のユーザデバイス。
【請求項156】
前記第1の電子デバイスにおいて前記タスクを実行することが前記実行基準を満たすとの判定に従って、前記タスクが前記第1の電子デバイスにおいて実行されると判定することと、
前記第1の電子デバイスにおいて前記タスクを前記実行することが前記実行基準を満たさないとの判定に従って、
前記第2の電子デバイスにおいて前記タスクを実行することが前記実行基準を満たすかを判定することと、
を更に備える、請求項155に記載のユーザデバイス。
【請求項157】
前記実行基準は、1つ以上のユーザ優先度に基づいて判定される、請求項154に記載のユーザデバイス。
【請求項158】
前記実行基準は、前記デバイス構成データに基づいて判定される、請求項154に記載のユーザデバイス。
【請求項159】
前記実行基準は、動的に更新される、請求項154に記載のユーザデバイス。
【請求項160】
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを受信することは、
前記コンテンツの少なくとも一部を前記第1の電子デバイスから受信することを含み、前記コンテンツの少なくとも一部は、前記第1電子デバイスに記憶されている、請求項144に記載のユーザデバイス。
【請求項161】
前記タスクが前記ユーザデバイスにおいて実行され、前記タスクを実行するためのコンテンツがリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを受信することは、
前記コンテンツの少なくとも一部を第3の電子デバイスから受信することを含む、請求項144に記載のユーザデバイス。
【請求項162】
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供することは、
前記コンテンツの少なくとも一部を前記ユーザデバイスから前記第1の電子デバイスに提供することを含み、前記コンテンツの少なくとも一部は、前記ユーザデバイスに記憶されている、請求項144に記載のユーザデバイス。
【請求項163】
前記タスクが前記第1の電子デバイスにおいて実行され、前記タスクを実行するための前記コンテンツが前記第1の電子デバイスに対してリモートに位置するとの判定に従って、前記タスクを実行するための前記コンテンツを前記第1の電子デバイスに提供することは、
前記コンテンツの少なくとも一部を第4の電子デバイスから前記第1の電子デバイスに提供させることを含み、前記コンテンツの少なくとも一部は、前記第4の電子デバイスに記憶されている、請求項144に記載のユーザデバイス。
【請求項164】
前記タスクは、前記ユーザデバイスにおいて実行され、前記ユーザデバイスは、前記受信されたコンテンツを使用して前記ユーザデバイスにおいて第1の応答を提供することを更に備える、請求項144に記載のユーザデバイス。
【請求項165】
前記ユーザデバイスにおいて前記第1の応答を提供することは、
前記ユーザデバイスにおいて前記タスクを実行することを含む、請求項164に記載のユーザデバイス。
【請求項166】
前記ユーザデバイスにおいて前記タスクを実行することは、前記ユーザデバイスに対して部分的にリモートに実行されたタスクの続きである、請求項165に記載のユーザデバイス。
【請求項167】
前記ユーザデバイスにおいて前記第1の応答を提供することは、
前記ユーザデバイスにおいて実行される前記タスクと関連付けられた第1のユーザインタフェースを表示することを含む、請求項164に記載のユーザデバイス。
【請求項168】
前記ユーザデバイスにおいて前記第1の応答を提供することは、
前記ユーザデバイスにおいて実行される前記タスクと関連付けられたリンクを提供することを含む、請求項164に記載のユーザデバイス。
【請求項169】
前記ユーザデバイスにおいて前記第1の応答を提供することは、
前記ユーザデバイスにおいて実行される前記タスクに従って発話出力を提供することを含む、請求項164に記載のユーザデバイス。
【請求項170】
前記タスクは、前記第1の電子デバイスにおいて実行され、前記ユーザデバイスは、前記ユーザデバイスにおいて第2の応答を提供することを更に備える、請求項144に記載のユーザデバイス。
【請求項171】
前記ユーザデバイスにおいて前記第2の応答を提供することは、
前記第1の電子デバイスにおいて前記タスクを実行させることを含む、請求項170に記載のユーザデバイス。
【請求項172】
前記第1の電子デバイスにおいて実行される前記タスクは、前記第1の電子デバイスに対してリモートに実行されたタスクの続きである、請求項171に記載のユーザデバイス。
【請求項173】
前記ユーザデバイスにおいて前記第2の応答を提供することは、
前記第1の電子デバイスにおいて実行される前記タスクに従って発話出力を提供することを含む、請求項170に記載のユーザデバイス。
【請求項174】
前記ユーザデバイスにおいて前記第2の応答を提供することは、
前記ユーザが前記タスクの実行のための別の電子デバイスを選択することを可能にするアフォーダンスを提供することを含む、条項170〜173のいずれか一つに記載のユーザデバイス。
【請求項175】
デジタルアシスタントサービスを提供する方法であって、
1つ以上のプロセッサ及びメモリを有するユーザデバイスにおいて、
前記ユーザデバイスの1つ以上のシステム構成を管理するために発話入力をユーザから受信することであって、前記ユーザデバイスは、複数のユーザインタフェースを同時に提供するように構成されている、ことと、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定することと、
前記発話入力及びコンテクスト情報に基づいてユーザ意図を判定することと、
前記ユーザ意図が情報の要求を示すか又はタスクを実行する要求を示すかを判定することと、
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への発話応答を提供することと、
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた処理をインスタンス化することと、
を含む、方法。
【請求項176】
前記発話入力を受信する前に、
前記ユーザデバイスのディスプレイ上で、前記デジタルアシスタントを呼び出すためのアフォーダンスを表示することを更に含む、請求項175に記載の方法。
【請求項177】
所定のフレーズを受信したことに応じて前記デジタルアシスタントサービスを呼び出すことを更に含む、請求項176に記載の方法。
【請求項178】
前記アフォーダンスの選択を受信したことに応じて前記デジタルアシスタントサービスをインスタンス化することを更に含む、請求項176に記載の方法。
【請求項179】
前記ユーザデバイスの前記1つ以上のシステム構成は、音声構成を含む、請求項175に記載の方法。
【請求項180】
前記ユーザデバイスの前記1つ以上のシステム構成は、日付及び時間構成を含む、請求項175に記載の方法。
【請求項181】
前記ユーザデバイスの前記1つ以上のシステム構成は、聞き取り構成を含む、請求項175に記載の方法。
【請求項182】
前記ユーザデバイスの前記1つ以上のシステム構成は、表示構成を含む、請求項175に記載の方法。
【請求項183】
前記ユーザデバイスの前記1つ以上のシステム構成は、入力デバイス構成を含む、請求項175に記載の方法。
【請求項184】
前記ユーザデバイスの前記1つ以上のシステム構成は、ネットワーク構成を含む、請求項175に記載の方法。
【請求項185】
前記ユーザデバイスの前記1つ以上のシステム構成は、通知構成を含む、請求項175に記載の方法。
【請求項186】
前記ユーザデバイスの前記1つ以上のシステム構成は、プリンタ構成を含む、請求項175に記載の方法。
【請求項187】
前記ユーザデバイスの前記1つ以上のシステム構成は、セキュリティ構成を含む、請求項175に記載の方法。
【請求項188】
前記ユーザデバイスの前記1つ以上のシステム構成は、バックアップ構成を含む、請求項175に記載の方法。
【請求項189】
前記ユーザデバイスの前記1つ以上のシステム構成は、アプリケーション構成を含む、請求項175に記載の方法。
【請求項190】
前記ユーザデバイスの前記1つ以上のシステム構成は、ユーザインタフェース構成を含む、請求項175に記載の方法。
【請求項191】
前記ユーザ意図を判定することは、
1つ以上の実施可能な意図を判定することと、
前記実施可能な意図と関連付けられた1つ以上のパラメータを判定することと、
を含む、請求項175に記載の方法。
【請求項192】
前記コンテクスト情報は、ユーザ特有データ、デバイス構成データ、及びセンサデータのうちの少なくとも1つを含む、請求項175に記載の方法。
【請求項193】
前記ユーザ意図が情報の要求を示すか又はタスクを実行する要求を示すかを判定することは、
前記ユーザ意図がシステム構成を変えることであるか否かを判定することを含む、請求項175に記載の方法。
【請求項194】
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への前記発話応答を提供することは、
前記情報の要求に従って1つ以上のシステム構成の状況を取得することと、
1つ以上のシステム構成の前記状況に従って前記発話応答を提供することと、
を含む、請求項175に記載の方法。
【請求項195】
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への前記発話応答を提供することに加え、
前記1つ以上のシステム構成の前記状況に従って情報を提供する第1のユーザインタフェースを表示することを更に含む、請求項175に記載の方法。
【請求項196】
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への前記発話応答を提供することに加え、
前記情報の要求と関連付けられたリンクを提供することを更に含む、請求項175に記載の方法。
【請求項197】
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた前記処理をインスタンス化することは、
前記処理を使用して前記タスクを実行することを含む、請求項175に記載の方法。
【請求項198】
前記タスクを実行した結果に従って第1の発話出力を提供することを更に含む、請求項197に記載の方法。
【請求項199】
前記ユーザが前記タスクを実行した結果を操作することを可能にする第2のユーザインタフェースを提供することを更に含む、請求項197に記載の方法。
【請求項200】
前記第2のユーザインタフェースは、前記タスクを実行した前記結果と関連付けられたリンクを含む、請求項199に記載の方法。
【請求項201】
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた前記処理をインスタンス化することは、
前記ユーザが前記タスクを実行することを可能にする第3のユーザインタフェースを提供することを含む、請求項175に記載の方法。
【請求項202】
前記第3のユーザインタフェースは、前記ユーザが前記タスクを実行することを可能にするリンクを含む、請求項201に記載の方法。
【請求項203】
前記第3のユーザインタフェースと関連付けられた第2の発話出力を提供することを更に含む、請求項201から202のいずれか一項に記載の方法。
【請求項204】
1つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令は、電子デバイスの1つ以上のプロセッサによって実行されるとき、
前記電子デバイスに、
複数のユーザインタフェースを同時に提供するように構成されている前記ユーザデバイスの1つ以上のシステム構成を管理するために発話入力をユーザから受信させ、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定させ、
前記発話入力及びコンテクスト情報に基づいてユーザ意図を判定させ、
前記ユーザ意図が、情報の要求を示すか又はタスクを実行する要求を示すかを判定させ、
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への発話応答を提供させ、
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた処理をインスタンス化させる、
非一時的コンピュータ可読記憶媒体。
【請求項205】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
メモリに記憶された1つ以上のプログラムと、を備え、前記1つ以上のプログラムは、
複数のユーザインタフェースを同時に提供するように構成されている前記ユーザデバイスの1つ以上のシステム構成を管理するために発話入力をユーザから受信し、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定し、
前記発話入力及びコンテクスト情報に基づいてユーザ意図を判定し、
前記ユーザ意図が、情報の要求を示すか又はタスクを実行する要求を示すかを判定し、
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への発話応答を提供し、
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた処理をインスタンス化する、
命令を含む、電子デバイス。
【請求項206】
電子デバイスであって、
前記ユーザデバイスの1つ以上のシステム構成を管理するために発話入力をユーザから受信する手段であって、前記ユーザデバイスは、複数のユーザインタフェースを同時に提供するように構成されている、手段と、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定する手段と、
前記発話入力及びコンテクスト情報に基づいてユーザ意図を判定する手段と、
前記ユーザ意図が情報の要求を示すか又はタスクを実行する要求を示すかを判定する手段と、
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への発話応答を提供する手段と、
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた処理をインスタンス化する手段と、
を備える、電子デバイス。
【請求項207】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
メモリに記憶された1つ以上のプログラムと、を備え、前記1つ以上のプログラムは、請求項175から203のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項208】
電子デバイスであって、
請求項175から203のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【請求項209】
電子デバイスの1つ以上のプロセッサによって実行される1つ以上のプログラムを含む非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令は、前記1つ以上のプロセッサによって実行されるとき、前記電子デバイスに請求項175から203のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項210】
デジタルアシスタントを動作させるシステムであって、前記システムは、請求項175から203のいずれか一項に記載の方法を実行する手段を備える、システム。
【請求項211】
電子デバイスであって、
前記ユーザデバイスの1つ以上のシステム構成を管理するために発話入力をユーザから受信するように構成された受信ユニットであって、前記ユーザデバイスは、複数のユーザインタフェースを同時に提供するように構成されている、受信ユニットと、
前記ユーザデバイスと関連付けられたコンテクスト情報を特定し、
前記発話入力及びコンテクスト情報に基づいてユーザ意図を判定し、
前記ユーザ意図が、情報の要求を示すか又はタスクを実行する要求を示すかを判定し、
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への発話応答を提供し、
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた処理をインスタンス化する、
ように構成されたプロセシングユニットと、
を備える、電子デバイス。
【請求項212】
前記発話入力を受信する前に、
前記ユーザデバイスのディスプレイ上で、前記デジタルアシスタントを呼び出すためのアフォーダンスを表示することを更に備える、請求項211に記載の電子デバイス。
【請求項213】
所定のフレーズを受信したことに応じて前記デジタルアシスタントサービスを呼び出すことを更に備える、請求項212に記載の電子デバイス。
【請求項214】
前記アフォーダンスの選択を受信したことに応じて前記デジタルアシスタントサービスをインスタンス化することを更に備える、請求項212に記載の電子デバイス。
【請求項215】
前記ユーザデバイスの前記1つ以上のシステム構成は、音声構成を含む、請求項211に記載の電子デバイス。
【請求項216】
前記ユーザデバイスの前記1つ以上のシステム構成は、日付及び時間構成を含む、請求項211に記載の電子デバイス。
【請求項217】
前記ユーザデバイスの前記1つ以上のシステム構成は、聞き取り構成を含む、請求項211に記載の電子デバイス。
【請求項218】
前記ユーザデバイスの前記1つ以上のシステム構成は、表示構成を含む、請求項211に記載の電子デバイス。
【請求項219】
前記ユーザデバイスの前記1つ以上のシステム構成は、入力デバイス構成を含む、請求項211に記載の電子デバイス。
【請求項220】
前記ユーザデバイスの前記1つ以上のシステム構成は、ネットワーク構成を含む、請求項211に記載の電子デバイス。
【請求項221】
前記ユーザデバイスの前記1つ以上のシステム構成は、通知構成を含む、請求項211に記載の電子デバイス。
【請求項222】
前記ユーザデバイスの前記1つ以上のシステム構成は、プリンタ構成を含む、請求項211に記載の電子デバイス。
【請求項223】
前記ユーザデバイスの前記1つ以上のシステム構成は、セキュリティ構成を含む、請求項211に記載の電子デバイス。
【請求項224】
前記ユーザデバイスの前記1つ以上のシステム構成は、バックアップ構成を含む、請求項211に記載の電子デバイス。
【請求項225】
前記ユーザデバイスの前記1つ以上のシステム構成は、アプリケーション構成を含む、請求項211に記載の電子デバイス。
【請求項226】
前記ユーザデバイスの前記1つ以上のシステム構成は、ユーザインタフェース構成を含む、請求項211に記載の電子デバイス。
【請求項227】
前記ユーザ意図を判定することは、
1つ以上の実施可能な意図を判定することと、
前記実施可能な意図と関連付けられた1つ以上のパラメータを判定することと、
を含む、請求項211に記載の電子デバイス。
【請求項228】
前記コンテクスト情報は、ユーザ特有データ、デバイス構成データ、及びセンサデータのうちの少なくとも1つを含む、請求項211に記載の電子デバイス。
【請求項229】
前記ユーザ意図が情報の要求を示すか又はタスクを実行する要求を示すかを判定することは、
前記ユーザ意図がシステム構成を変えることであるか否かを判定することを含む、請求項211に記載の電子デバイス。
【請求項230】
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への前記発話応答を提供することは、
前記情報の要求に従って1つ以上のシステム構成の状況を取得することと、
1つ以上のシステム構成の前記状況に従って前記発話応答を提供することと、
を含む、請求項211に記載の電子デバイス。
【請求項231】
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への前記発話応答を提供することに加え、
前記1つ以上のシステム構成の前記状況に従って情報を提供する第1のユーザインタフェースを表示することを更に備える、請求項211に記載の電子デバイス。
【請求項232】
前記ユーザ意図が情報の要求を示すとの判定に従って、前記情報の要求への前記発話応答を提供することに加え、
前記情報の要求と関連付けられたリンクを提供することを更に備える、請求項211に記載の電子デバイス。
【請求項233】
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた前記処理をインスタンス化することは、
前記処理を使用して前記タスクを実行することを含む、請求項211に記載の電子デバイス。
【請求項234】
前記タスクを実行した結果に従って第1の発話出力を提供することを更に備える、請求項233に記載の電子デバイス。
【請求項235】
前記ユーザが前記タスクを実行した結果を操作することを可能にする第2のユーザインタフェースを提供することを更に備える、請求項233に記載の電子デバイス。
【請求項236】
前記第2のユーザインタフェースは、前記タスクを実行した前記結果と関連付けられたリンクを含む、請求項235に記載の電子デバイス。
【請求項237】
前記ユーザ意図がタスクを実行する要求を示すとの判定に従って、前記タスクを実行する前記ユーザデバイスと関連付けられた前記処理をインスタンス化することは、
前記ユーザが前記タスクを実行することを可能にする第3のユーザインタフェースを提供することを含む、請求項211に記載の電子デバイス。
【請求項238】
前記第3のユーザインタフェースは、前記ユーザが前記タスクを実行することを可能にするリンクを含む、請求項237に記載の電子デバイス。
【請求項239】
前記第3のユーザインタフェースと関連付けられた第2の発話出力を提供することを更に備える、請求項237から238のいずれか一項に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2016年6月10日に出願された「INTELLIGENT DIGITAL ASSISTANT IN A MULTI−TASKING ENVIRONMENT」と題する米国仮特許出願第62/348,728、及び2016年9月21日に出願された「INTELLIGENT DIGITAL ASSISTANT IN A MULTI−TASKING ENVIRONMENT」と題する米国特許出願15/271,766に対する優先権を主張し、これらの出願の内容は、全体が参照により本明細書に組み込まれる。
【0002】
本開示は、概して、デジタルアシスタントに関し、より具体的には、マルチタスキング環境においてタスクを実行するためにユーザと対話するデジタルアシスタントに関する。
【背景技術】
【0003】
デジタル端末がますます人気になっている。デスクトップ又はタブレット環境において、ユーザは、ファイル又は情報を検索すること、ファイル又はフォルダを管理すること、映画又は曲を再生すること、ドキュメントを編集すること、システム構成を調節すること、電子メールを送信すること等を含む、複数のタスクを頻繁に。ユーザが複数のタスクを並列して手動で実行し、タスクの間で頻繁に切り替えることは、煩わしく、不便であることが多い。よって、デジタルアシスタントは、ユーザの音声入力に基づいて、マルチタスキング環境においてユーザがタスクのいくつかを実行することを支援する能力を有することが望ましい。
【発明の概要】
【0004】
ユーザがマルチタスキング環境においてユーザがタスクを実行することを支援するいくつかの既存の技術は、例えば、聞き取りを含んでもよい。典型的には、ユーザは、マルチタスキング環境において多くの他のタスクを手動で実行することが必要とされることがある。例として、ユーザは、自分のデスクトップコンピュータ上で昨日のプレゼンテーションに取りかかっていることがあり、プレゼンテーションに対する作業を続けることを望むことがある。ユーザは典型的には、自分のデスクトップコンピュータ上でプレゼンテーションを手動で位置付け、プレゼンテーションを開き、プレゼンテーションを編集することを続けることが必要とされる。
【0005】
別の例として、ユーザは、ユーザが自分のデスクトップコンピュータから離れているときに自分のスマートフォン上でフライトを予約していることがある。ユーザは、デスクトップコンピュータが利用可能であるときにフライトを予約することを続けることを望むことがある。既存の技術では、ユーザは、ウェブブラウザを立ち上げ、ユーザのデスクトップコンピュータにおいてフライト予約処理を開始する必要がある。言い換えると、ユーザがスマートフォンにおいて行った前のフライト予約処理は、ユーザのデスクトップコンピュータにおいて続けられないことがある。
【0006】
別の例として、ユーザは、自分のデスクトップコンピュータ上でドキュメントを編集している間に、スクリーンの輝度レベルを変更すること又はBluetooth接続をターンオンすることなど、システム構成を変更することを望むことがある。既存の技術では、ユーザは、ドキュメントを編集することを停止し、輝度構成アプリケーションを発見し、及び立ち上げ、設定を手動で変更する必要があることがある。マルチタスキング環境では、いくつかの既存の技術は、ユーザの発話入力に基づいて上記例で説明されたようなタスクを実行することが可能でない。よって、マルチタスキング環境における音声対応デジタルアシスタントを提供することが望まれ、有利である。
【0007】
デジタルアシスタントを動作させるシステム及び処理が提供される。1つ以上の実施例によれば、方法は、1つ以上のプロセッサ及びメモリを有するユーザデバイスにおいて、第1の発話入力をユーザから受信することを含む。方法は、ユーザデバイスと関連付けられたコンテクスト情報を特定することと、第1の発話入力及びコンテクスト情報に基づいてユーザ意図を判定することとを更に含む。方法は、ユーザ意図が、検索処理を使用してタスクを実行することであるか又はオブジェクト管理処理を使用してタスクを実行することであるかを判定することを更に含む。検索処理は、ユーザデバイスの内部又は外部に記憶されたデータを検索するように構成されており、オブジェクト管理処理は、ユーザデバイスと関連付けられたオブジェクトを管理するように構成されている。方法は、ユーザ意図が検索処理を使用してタスクを実行することであるとの判定に従って、検索処理を使用してタスクを実行することを更に含む。方法は、ユーザ意図がオブジェクト管理処理を使用してタスクを実行することであるとの判定に従って、オブジェクト管理処理を使用してタスクを実行することを更に含む。
【0008】
1つ以上の実施例によれば、方法は、1つ以上のプロセッサ及びメモリを有するユーザデバイスにおいて、タスクを実行するために発話入力をユーザから受信することを含む。方法は、ユーザデバイスと関連付けられたコンテクスト情報を特定することと、発話入力及びユーザデバイスと関連付けられたコンテクスト情報に基づいてユーザ意図を判定することとを更に含む。方法は、ユーザ意図に従って、タスクがユーザデバイス、又はユーザデバイスに通信可能に接続された第1の電子デバイスにおいて実行されるか否かを判定することを更に含む。方法は、タスクがユーザデバイスにおいて実行され、タスクを実行するためのコンテンツがリモートに記憶されているとの判定に従って、タスクを実行するためのコンテンツを受信することを更に含む。方法は、タスクが第1の電子デバイスにおいて実行され、タスクを実行するためのコンテンツが第1の電子デバイスに対してリモートに位置するとの判定に従って、タスクを実行するためのコンテンツを第1の電子デバイスに提供することを更に含む。
【0009】
1つ以上の実施例によれば、方法は、1つ以上のプロセッサ及びメモリを有するユーザデバイスにおいて、ユーザデバイスの1つ以上のシステム構成を管理するために発話入力をユーザから受信することを含む。ユーザデバイスは、複数のユーザインタフェースを同時に提供するように構成されている。方法は、ユーザデバイスと関連付けられたコンテクスト情報を特定することと、発話入力及びコンテクスト情報に基づいてユーザ意図を判定することとを更に含む。方法は、ユーザ意図が情報の要求を示すか又はタスクを実行する要求を示すかを判定することを更に含む。方法は、ユーザ意図が情報の要求を示すとの判定に従って、情報の要求への発話応答を提供することを更に含む。方法は、ユーザ意図がタスクを実行する要求を示すとの判定に従って、タスクを実行するためにユーザデバイスと関連付けられた処理をインスタンス化することを更に含む。
【0010】
それらの機能を実行するための実行可能命令は、任意選択的に、非一時的コンピュータ可読記憶媒体、又は1つ以上のプロセッサによって実行するように構成された他のコンピュータプログラム製品に含まれる。それらの機能を実行するための実行可能命令は、任意選択的に、一時的コンピュータ可読記憶媒体、又は1つ以上のプロセッサによって実行するように構成された他のコンピュータプログラム製品に含まれる。
【図面の簡単な説明】
【0011】
説明される様々な実施形態のより良好な理解のために、以下の図面と併せて、以下の「発明を実装するための形態」を参照されたく、類似の参照番号は、図面全体を通じた対応する部分を指す。
【0012】
【図1】様々な実施例に従った、デジタルアシスタントを実装するためのシステム及び環境を示すブロック図である。
【0013】
【図2A】いくつかの実施形態に従った、デジタルアシスタントのクライアント側部分を実行するポータブル多機能デバイスを示すブロック図である。
【0014】
【図2B】様々な実施例に従った、イベント処理のための例示的な構成要素を示すブロック図である。
【0015】
【図3】様々な実施例に従った、デジタルアシスタントのクライアント側部分を実行するポータブル多機能デバイスを示す図である。
【0016】
【図4】様々な実施例に従った、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。
【0017】
【図5A】様々な実施例に従った、ポータブル多機能デバイス上のアプリケーションのメニューのための例示的なユーザインタフェースを示す図である。
【0018】
【図5B】様々な実施例に従った、ディスプレイとは別個のタッチ感知面を有する多機能デバイスのための例示的なユーザインタフェースを示す図である。
【0019】
【図6A】様々な実施例に従った、パーソナル電子デバイスを示す図である。
【0020】
【図6B】様々な実施例に従った、パーソナル電子デバイスを示すブロック図である。
【0021】
【図7A】様々な実施例に従った、デジタルアシスタントシステム又はそのサーバ部分を示すブロック図である。
【0022】
【図7B】様々な実施例に従った、図7Aに示されるデジタルアシスタントの機能を示す図である。
【0023】
【図7C】様々な実施例に従った、オントロジ(ontology)の一部を示す図である。
【0024】
【図8A】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図8B】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図8C】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図8D】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図8E】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図8F】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【0025】
【図9A】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図9B】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図9C】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図9D】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図9E】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図9F】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図9G】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図9H】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【0026】
【図10A】様々な実施例に従った、デジタルアシスタントによってオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図10B】様々な実施例に従った、デジタルアシスタントによってオブジェクト管理処理を使用してタスクを実行する機能を示す。
【0027】
【図11A】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図11B】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図11C】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【図11D】様々な実施例に従った、デジタルアシスタントによって検索処理を使用してタスクを実行する機能を示す。
【0028】
【図12A】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図12B】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図12C】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図12D】様々な実施例に従った、デジタルアシスタントによって検索処理又はオブジェクト管理処理を使用してタスクを実行する機能を示す。
【0029】
【図13A】様々な実施例に従った、デジタルアシスタントによってオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図13B】様々な実施例に従った、デジタルアシスタントによってオブジェクト管理処理を使用してタスクを実行する機能を示す。
【図13C】様々な実施例に従った、デジタルアシスタントによってオブジェクト管理処理を使用してタスクを実行する機能を示す。
【0030】
【図14A】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【図14B】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【図14C】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【図14D】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【0031】
【図15A】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用して第1の電子デバイスにおいてタスクを実行する機能を示す。
【図15B】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用して第1の電子デバイスにおいてタスクを実行する機能を示す。
【図15C】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用して第1の電子デバイスにおいてタスクを実行する機能を示す。
【図15D】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用して第1の電子デバイスにおいてタスクを実行する機能を示す。
【0032】
【図16A】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用して第1の電子デバイスにおいてタスクを実行する機能を示す。
【図16B】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用して第1の電子デバイスにおいてタスクを実行する機能を示す。
【図16C】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用して第1の電子デバイスにおいてタスクを実行する機能を示す。
【0033】
【図17A】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【図17B】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【図17C】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【図17D】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【図17E】様々な実施例に従った、デジタルアシスタントによってリモートに位置するコンテンツを使用してユーザデバイスにおいてタスクを実行する機能を示す。
【0034】
【図18A】様々な実施例に従った、デジタルアシスタントによってユーザの情報の要求に応じてシステム構成情報を提供する機能を示す。
【図18B】様々な実施例に従った、デジタルアシスタントによってユーザの情報の要求に応じてシステム構成情報を提供する機能を示す。
【図18C】様々な実施例に従った、デジタルアシスタントによってユーザの情報の要求に応じてシステム構成情報を提供する機能を示す。
【図18D】様々な実施例に従った、デジタルアシスタントによってユーザの情報の要求に応じてシステム構成情報を提供する機能を示す。
【図18E】様々な実施例に従った、デジタルアシスタントによってユーザの情報の要求に応じてシステム構成情報を提供する機能を示す。
【図18F】様々な実施例に従った、デジタルアシスタントによってユーザの情報の要求に応じてシステム構成情報を提供する機能を示す。
【0035】
【図19A】様々な実施例に従った、デジタルアシスタントによってユーザ要求に応じてタスクを実行する機能を示している。
【図19B】様々な実施例に従った、デジタルアシスタントによってユーザ要求に応じてタスクを実行する機能を示している。
【図19C】様々な実施例に従った、デジタルアシスタントによってユーザ要求に応じてタスクを実行する機能を示している。
【図19D】様々な実施例に従った、デジタルアシスタントによってユーザ要求に応じてタスクを実行する機能を示している。
【0036】
【図20A】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図20B】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図20C】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図20D】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図20E】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図20F】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図20G】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【0037】
【図21A】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図21B】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図21C】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図21D】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図21E】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【0038】
【図22A】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図22B】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図22C】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【図22D】様々な実施例に従った、デジタルアシスタントを動作させる例示的な処理のフローチャートである。
【0039】
【図23】様々な実施例に従った、電子デバイスのブロック図を示す。
【発明を実施するための形態】
【0040】
以下の開示及び実施形態の説明では、実装することができる特定の実施形態の、実施例として示されている添付の図面への参照がなされる。本開示の範囲から逸脱することなく、他の実施形態及び実施例を実施することができ、変更を行うことができることを理解されたい。
【0041】
マルチタスキング環境におけるデジタルアシスタントを提供する技術が望ましい。本明細書で説明されるように、マルチタスキング環境におけるデジタルアシスタントを提供する技術は、検索対象又は情報を検索する煩雑さを削減すること、効率的なオブジェクト管理を可能にすること、ユーザデバイス及び他の電子デバイスにおいて実行されるタスクの間の連続性を維持すること、並びにシステム構成を調節する際のユーザの手作業を削減すること等、様々な目的に対して望まれる。このような技術は、マルチタスキング環境において発話入力使用して様々なタスクを実行するためにユーザがデジタルアシスタントを操作することを可能にすることによって有利となる。更に、このような技術は、マルチタスキング環境において様々なタスクを実行することと関連付けられた煩わしさ又は不都合を軽減する。更に、ユーザが発話を使用してタスクを実行することを可能にすることによって、コンテクストスイッチを必要とするタスキングを実行する間にキーボード又はマウス上で両手を維持することができ、ユーザの「第3の手」のようにデジタルアシスタントがタスクを実行することを可能にする。理解されるように、ユーザが発話を使用してタスクを実行することを可能にすることによって、ユーザが複数のアプリケーションとの複数の対話を必要とすることがあるタスクをより効率的に完了させることが可能になる。例えば、電子メール内の画像を検索し、それらを個人に送信することは、検索インタフェースを開くこと、検索語を入力すること、1つ以上の結果を選択すること、構成のために電子メールを開くこと、結果として生じたファイルを開いた電子メールに複製又は移動すること、及び電子メールにアドレス指定し、それを送信することを必要とすることがある。このようなタスクは、「X日からの写真を発見し、それらを妻に送信する」こと等、コマンドで音声によって効率的に完了させることができる。ファイルを移動し、インターネット上で情報を検索し、メッセージを構成するための同様の要求は、音声を使用して更に効率的に行うことができると共に、ユーザが自身の手を使用して他のタスクを実行することを可能にする。
【0042】
以下の説明では、様々な要素を説明するために「第1」、「第2」等の用語を使用するが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、1つの要素を別の要素と区別するためにのみ使用される。例えば、説明される様々な実施例の範囲から逸脱することなく、第1の記憶は第2の記憶と称されてもよく、同様に、第2の記憶は第1の記憶と称されてもよい。第1の記憶及び第2の記憶は両方とも記憶とすることができ、いくつかのケースでは、別々及び異なる記憶とすることができる。
【0043】
本明細書で説明される様々な実施例の説明で使用される用語は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明及び添付の特許請求の範囲で使用されるとき、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形をも含むことが意図される。本明細書で使用される用語「and/or(及び/又は)」は、関連する列挙された項目のうちの1つ以上のうちの任意のかつ全ての可能な組み合わせを指し、これを含むことをもまた理解されたい。用語「includes(含む)、「including(含む)」、「comprises(含む)」及び/又は「comprising(含む)」は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を除外しないことが更に理解されるであろう。
【0044】
用語「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.システム及び環境
【0045】
図1は、様々な実施例に従った、システム100のブロック図を示す。いくつかの実施例では、システム100はデジタルアシスタントを実装することができる。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、口頭形式及び/又はテキスト形式にある自然言語入力を解釈してユーザ意図を推測し、推測したユーザ意図に基づいてアクションを実行する任意の情報処理システムを指すことができる。例えば、推測されたユーザの意図に作用するために、システムは、以下のうちの1つ以上、すなわち、推測されたユーザ意図を実現するために設計されたステップ及びパラメータを有するタスクフローを特定することと、推測されたユーザの意図からの特定の要件をタスクフローに入力することと、プログラム、方法、サービス、又はAPI等を呼び出すことによってタスクフローを実行することと、可聴(例えば、発話)形式及び/又は視覚形式でユーザへの出力応答を生成することと、を実行することができる。
【0046】
具体的には、デジタルアシスタントは、自然言語コマンド、要求、陳述、叙述、及び/又は照会の形式で少なくとも部分的にユーザ要求を受け付ける能力を有することができる。典型的には、ユーザ要求はデジタルアシスタントによる情報の回答又はタスクの実行のいずれかを求めることができる。ユーザ要求への満足な応答は、要求された情報の回答の提供、要求されたタスクの実行、又はその2つの組み合わせとすることができる。例えば、ユーザはデジタルアシスタントに「私は今どこにいますか?」等の質問をしてもよい。ユーザの現在位置に基づいて、デジタルアシスタントは、「あなたはセントラルパーク内の西門の近くにいます」と回答することができる。ユーザは、タスクの実行、例えば、「私の友人を、来週のガールフレンドの誕生日パーティーに招待してください。」を要求することができる。それに応じて、デジタルアシスタントは、「はい、ただ今」と述べることによって要求を認知することができ、次に、ユーザの代わりに、ユーザの電子アドレス帳に載っているユーザの友人の各々に適切なカレンダの招待状を送信することができる。要求されたタスクの実行の間、デジタルアシスタントは、時により、長時間にわたって情報を複数回交換することを含む連続的なダイアログにおいてユーザと対話することができる。情報又は様々なタスクの実行を要求するためにデジタルアシスタントと対話する多くの他の方法が存在する。口頭による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントはまた、他の視覚又は音声形式、例えば、テキスト、警報、音楽、ビデオ、アニメーション等で応答を提供することもできる。
【0047】
図1に示されるように、いくつかの実施例では、デジタルアシスタントは、クライアントサーバモデルに従って実装されてもよい。デジタルアシスタントは、ユーザデバイス104上で実行されるクライアント側部分102(以後、「DAクライアント102」)、及びサーバシステム108上で実行されるサーバ側部分106(以後「DAサーバ106」)を含むことができる。DAクライアント102は1つ以上のネットワーク110を通じてDAサーバ106と通信することができる。DAクライアント102は、ユーザ直面(facing)入力及び出力処理、並びにDAサーバ106との通信等のクライアント側機能を提供することができる。DAサーバ106は、それぞれのユーザデバイス104上に各々が常駐する任意の数のDAクライアント102のためのサーバ側機能性を提供することができる。
【0048】
いくつかの実施例では、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は、このような通信を促進することができる。
【0049】
ユーザデバイス104は、任意の適切な電子デバイスとすることができる。例えば、ユーザデバイスは、ポータブル多機能デバイス(例えば、図2Aを参照して以下で説明されるデバイス200)、多機能デバイス(例えば、図4を参照して以下で説明されるデバイス400)、又はパーソナル電子デバイス(例えば、図6A〜図6Bを参照して以下で説明されるデバイス600)とすることができる。ポータブル多機能デバイスは、例えば、PDA及び/又は音楽再生機能等の他の機能も含む携帯電話とすることができる。ポータブル多機能デバイスの具体的な実施例は、Apple Inc.(Cupertino,California)による、iPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含むことができる。ポータブル多機能デバイスの他の実施例は、限定なしに、ラップトップコンピュータ又はタブレットコンピュータを含んでもよい。更に、いくつかの実施例では、ユーザデバイス104は、非ポータブル多機能デバイスとすることができる。特に、ユーザデバイス104は、デスクトップコンピュータ、ゲームコンソール、テレビ、又はテレビセットトップボックスとすることができる。いくつかの実施例では、ユーザデバイス104は、マルチタスキング環境で動作することができる。マルチタスキング環境は、ユーザがデバイス104を操作して複数のタスクを並列して実行することを可能にする。例えば、マルチタスキング環境は、デバイス104が物理ユーザインタフェースデバイスから受信されたユーザ入力に応じて1つのタスクを実行し、ユーザの発話入力に応じて別のタスクを並列して実行することができるデスクトップ又はラップトップ環境であってもよい。いくつかの実施例では、ユーザデバイス104は、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を含むことができる。更に、ユーザデバイス104は、任意選択的に、物理キーボード、マウス、及び/又はジョイスティック等の1つ以上の他の物理ユーザインタフェースデバイスを含むことができる。多機能デバイス等の電子デバイスの様々な実施例は、以下で更に詳細に説明される。
【0050】
通信ネットワーク(単数又は複数)110の例は、ローカルエリアネットワーク(LAN)及び、例えば、インターネットのようなワイドエリアネットワーク(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、又は任意の他の適切な通信プロトコル等、様々な有線又は無線プロトコルを含む任意の既知のネットワークプロトコルを使用して実装されてもよい。
【0051】
サーバシステム108は、1つ以上のスタンドアロンデータ処理装置、又はコンピュータの分散型ネットワーク上で実装されてもよい。いくつかの実施例では、サーバシステム108はまた、サーバシステム108の基本的なコンピューティングリソース及び/又はインフラストラクチャリソースを提供するために、様々な仮想デバイス及び/又はサードパーティサービスプロバイダ(例えば、サードパーティクラウドサービスプロバイダ)のサービスを採用することができる。
【0052】
いくつかの実施例では、ユーザデバイス104は、第2のユーザデバイス122を介してDAサーバ106と通信することができる。第2のユーザデバイス122は、ユーザデバイス104と同様又は同一とすることができる。例えば、第2のユーザデバイス122は、図2A、図4、及び図6A〜図6Bを参照して以下に説明されるデバイス200、デバイス400、又はデバイス600と同様とすることができる。ユーザデバイス104は、Bluetooth、NFC、若しくはBTL等の直接通信接続を介して、又はローカルWi−Fiネットワーク等の有線ネットワーク若しくは無線ネットワークを介して第2のユーザデバイス122に通信可能に結合するよう構成されてもよい。いくつかの実施例では、第2のユーザデバイス122は、ユーザデバイス104とDAサーバ106との間のプロキシとして動作するよう構成されてもよい。例えば、ユーザデバイス104のDAクライアント102は、情報(例えば、ユーザデバイス104において受信されたユーザ要求)を、第2のユーザデバイス122を介してDAサーバ106に送信するよう構成されてもよい。DAサーバ106は情報を処理することができ、関連するデータ(例えば、ユーザの要求に応答したデータコンテンツ)を、第2のユーザデバイス122を介してユーザデバイス104に返すことができる。
【0053】
いくつかの実施例では、ユーザデバイス104は、データに対する短縮された要求を、第2のユーザデバイス122に通信して、ユーザデバイス104から送信される情報量を削減するように構成されてもよい。第2のユーザデバイス122は、追加情報を判定し、短縮された要求を追加して完全な要求を生成し、DAサーバ106に送信するよう構成されてもよい。このシステムアーキテクチャは、より強い通信能力及び/又はより大きなバッテリ電力を有する第2のユーザデバイス122(例えば、携帯電話、ラップトップコンピュータ、又はタブレットコンピュータ等)をDAサーバ106へのプロキシとして使用することによって、限られた通信能力及び/又は限られたバッテリ電力を有するユーザデバイス104(例えば、時計又は同様のコンパクト電子デバイス)がDAサーバ106によって提供されるサービスにアクセスすることを好適に可能にすることができる。図1では2つのユーザデバイス104及びユーザデバイス122のみが示されるが、システム100は、DAサーバシステム106と通信するようにこのプロキシ構成で構成された任意の数及びタイプのユーザデバイスを含むことができることを理解されたい。
【0054】
図1に示すデジタルアシスタントは、クライアント側部分(例えば、DAクライアント102)及びサーバ側部分(例えば、DAサーバ106)の両方を含むことができるが、いくつかの実施例では、デジタルアシスタントの機能は、ユーザデバイス上にインストールされるスタンドアロンアプリケーションとして実装されてもよい。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能の分配は、異なる実装によって変化することができる。例えば、いくつかの実施例では、DAクライアントは、ユーザ直面入力及び出力処理機能のみを提供し、デジタルアシスタントの全ての他の機能をバックエンドサーバに移譲するシンクライアントとすることができる。
2.電子デバイス
【0055】
ここで、デジタルアシスタントのクライアント側部分を実行するための電子デバイスの実施形態に注目する。図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を介して通信する。
【0056】
本明細書及び特許請求の範囲で使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指の接触)の力若しくは圧力(単位面積当りの力)、又はタッチ感知面上の接触の力若しくは圧力の代替物(代用物)を指す。接触の強度は、少なくとも4つの異なる値を含み、より典型的には、何百もの(例えば、少なくとも256個の)異なる値を含む、値範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組み合わせを使用して判定(又は、測定)される。例えば、タッチ感知面の下にあり、又はこれに隣接する1つ以上の力センサは、任意選択的に、タッチ感知面上の様々な点における力を測定するために使用される。いくつかの実装形態において、複数の力センサの力測定値を組み合わせて(例えば、加重平均)、接触力の推定値を判定する。同様に、スタイラスの感圧性先端部は、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。代わりに、タッチ感知面上で検出される接触領域のサイズ及び/若しくはその変化、接触に近接するタッチ感知面の電気容量及び/若しくはその変化、並びに/又は接触に近接するタッチ感知面の抵抗及び/若しくはその変化は、任意選択的に、タッチ感知面上の接触の力又は圧力の代替物として使用される。いくつかの実装形態では、接触の力又は圧力についての代替的測定値は、強度閾値を超えているか否かを判定するために直接使用される(例えば、強度閾値は、代替的測定値に対応する単位で説明される)。いくつかの実装形態では、接触の力又は圧力の代替的測定値は、推定される力又は圧力に変換され、推定された力又は圧力は、強度閾値を超えているか否かを判定するために使用される(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。接触の強度をユーザ入力の属性として使用することによって、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するための、及び/或いは、ユーザ入力を受信するための(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタン等の物理的/機械的制御部を介して)、面積が制限されている低減されたサイズのデバイス上で、他の場合であればユーザによってアクセスすることができないことがある、追加的なデバイス機能へのユーザのアクセスが可能となる。
【0057】
本明細書及び特許請求の範囲で使用されるとき、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)のデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの重心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の知覚された変化に対応する触感としてユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、任意選択的に、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として解釈される。いくつかの場合、ユーザの移動によって物理的に押圧された(例えば、変位した)タッチ感知面と関連付けられた物理アクチュエータボタンの移動がない時でさえ、ユーザは「ダウンクリック」又は「アップクリック」等の触感を感じる。別の実施例として、タッチ感知面の移動は、任意選択的に、タッチ感知面の平滑度に変化がないときでさえ、ユーザによって、タッチ感知面の「粗さ」として、解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。よって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」、「ダウンクリック」、「粗さ」)に対応するものとして説明されるとき、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの説明された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
【0058】
デバイス200は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス200は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有し、任意選択的に、2つ以上の構成要素を組み合わせ、又は、任意選択的に、構成要素の異なる構成若しくは配置を有することを理解されたい。図2Aに示される様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの双方の組み合わせで実装される。
【0059】
メモリ202は、1つ以上のコンピュータ可読記憶媒体を含んでもよい。コンピュータ可読記憶媒体は、有形かつ非一時的であってもよい。メモリ202は、高速ランダムアクセスメモリを含んでもよく、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイス等の不揮発性メモリも含んでもよい。メモリコントローラ222は、デバイス200の他の構成要素によるメモリ202へのアクセスを制御してもよい。
【0060】
いくつかの実施例では、メモリ202の非一時的コンピュータ可読記憶媒体は、(例えば、以下に説明する処理1200の態様を実行する)命令を、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチすることができ、それらの命令を実行する他のシステム等の、命令実行システム、装置、又はデバイスによる使用、又はそれと関連した使用のために記憶するために使用されてもよい。他の実施例では、(例えば、以下で説明する処理1200の態様を実行する)命令は、サーバシステム108の非一時的コンピュータ可読記憶媒体(図示せず)に記憶されていてもよく、又はメモリ202の非一時的コンピュータ可読記憶媒体とサーバシステム108の非一時的コンピュータ可読記憶媒体との間で分配されてもよい。本文書のコンテクストでは、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、又はデバイスによって、又はそれらに関連して使用するためのプログラムを含み、又は記憶することが可能な任意の媒体とすることができる。
【0061】
周辺機器インタフェース218は、デバイスの入力及び出力周辺機器をCPU220及びメモリ202に結合するために使用されてもよい。1つ以上のプロセッサ220は、デバイス200のための様々な機能を実行し、データを処理するために、メモリ202に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させ、又は実行する。いくつかの実施形態では、周辺機器インタフェース218、CPU220、及びメモリコントローラ222は、チップ204等の単一のチップ上で実装されてもよい。いくつかの他の実施形態では、それらは、別個のチップ上で実装されてもよい。
【0062】
RF(radio frequency)(無線周波数)回路208は、電磁信号とも呼ばれるRF信号を送受信する。RF回路208は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路208は、任意選択的に、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタルシグナルプロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、及びメモリ等を含むがこれらに限定されない、それらの機能を実行するための周知の回路を含む。RF回路208は、任意選択的に、ワールドワイドウェブ(WWW)とも称されるインターネット、イントラネット、並びに/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び/若しくはメトロポリタンエリアネットワーク(MAN)等の無線ネットワーク等のネットワークと、他のデバイスと無線通信によって通信する。RF回路208は、任意選択的に、近距離通信無線等によって等、近距離無線通信(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)、或いは本文書の出願日現在までにまだ開発されていない通信プロトコルを含む任意の他の適切な通信プロトコルを含むが、これらに限定されない、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用する。
【0063】
音声回路210、スピーカ211、及びマイクロフォン213は、ユーザとデバイス200との間の音声インタフェースを提供する。音声回路210は、周辺機器インタフェース218から音声データを受信し、音声データを電気信号に変換し、電気信号をスピーカ211に送信する。スピーカ211は、電気信号を人間の可聴音波に変換する。音声回路210はまた、マイクロフォン213によって音波から変換された電気信号を受信する。音声回路210は、電気信号を音声データに変換し、音声データを処理のために周辺機器インタフェース218に送信する。音声データは、周辺機器インタフェース218によって、メモリ202及び/若しくはRF回路208から取得されてもよく、並びに/又はメモリ202及び/若しくはRF回路208に送信されてもよい。いくつかの実施形態では、音声回路210はまた、ヘッドセットジャック(例えば、図3の312)を含む。ヘッドセットジャックは、音声回路210と、出力専用ヘッドホン又は出力(例えば、片耳若しくは両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の双方を有するヘッドセット等の、取り外し可能な音声入出力周辺機器との間のインタフェースを提供する。
【0064】
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)を含む。
【0065】
その全体が参照により本明細書に組み込まれる、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つ以上のソフトキーボードを実装するために使用される。
【0066】
タッチ感知ディスプレイ212は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ256は、タッチスクリーン212から電気信号を受信し、及び/又はタッチスクリーン212に電気信号を送信する。タッチスクリーン212は、ユーザに視覚出力を表示する。視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(「グラフィック」と総称される)を含んでもよい。いくつかの実施形態では、視覚出力の一部又は全てはユーザインタフェースオブジェクトに対応してもよい。
【0067】
タッチスクリーン212は、触覚及び/又は触知接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン212及びディスプレイコントローラ256は(メモリ202における任意の関連モジュール及び/又は命令セットと共に)、タッチスクリーン212上で接触(及び任意の接触の移動又は中断)を検出し、検出された接触をタッチスクリーン212上で表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。例示的な実施形態では、タッチスクリーン212とユーザとの間の接触点は、ユーザの指に対応する。
【0068】
タッチスクリーン212は、LCD(liquid crystal display、液晶ディスプレイ)技術、LPD(light emitting polymer display、発光ポリマーディスプレイ)技術、又はLED(light emitting diode、発光ダイオード)技術を使用してもよいが、他の実施形態では、その他のディスプレイ技術が使用されてもよい。タッチスクリーン212及びディスプレイコントローラ256は、静電容量技術、抵抗性技術、赤外線技術及び表面弾性波技術、並びにタッチスクリーン212との1つ以上の接触点を判定するための他の近接センサアレイ又は他の要素を含むが、これらに限定されない、現在既知の、又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触、及びその接触のいずれかの移動又は中断を検出することができる。例示的な実施形態では、Apple Inc.(California、Cupertino)によるiPhone(登録商標)及びiPod Touch(登録商標)において見られるような、投影型相互静電容量感知技術が使用される。
【0069】
タッチスクリーン212のいくつかの実施形態におけるタッチ感知ディスプレイは、各々のその全体が参照により本明細書に組み込まれる、以下の米国特許第6,323,846号(Westermanら)、同第6,570,557号(Westermanら)、同第6,677,932号(Westerman)、及び/又は米国特許出願公開第2002/0015024(A1)号に記載されているマルチタッチ感知タッチパッドと同様であってもよい。しかしながら、タッチスクリーン212はデバイス200からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【0070】
タッチスクリーン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」。これらの出願の全ては、全体が参照により本明細書に組み込まれる。
【0071】
タッチスクリーン212は、100dpiを超えるビデオ解像度を有してもよい。いくつかの実施形態では、タッチスクリーンは、約160dpiのビデオ解像度を有する。ユーザは、スタイラス及び指等の任意の適切な物体又は付属物を使用して、タッチスクリーン212と接触することができる。いくつかの実施形態では、ユーザインタフェースは、主として指を基準とした接触及びジェスチャで機能するように設計され、タッチスクリーン上の指の接触面積が広いことに起因してスタイラスを基準とした入力よりも精度が低いことがある。いくつかの実施形態では、デバイスは、指に基づく粗い入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【0072】
いくつかの実施形態では、タッチスクリーンに加えて、デバイス200は、特定の機能をアクティブ化又は非アクティブ化するためのタッチパッド(図示せず)を含んでもよい。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しないデバイスのタッチ感知領域である。タッチパッドは、タッチスクリーン212とは別個のタッチ感知面、又はタッチスクリーンによって形成されるタッチ感知面の拡張部であってもよい。
【0073】
デバイス200はまた、様々な構成要素に電力を供給するための電力システム262を含む。電力システム262は、電力管理システム、1つ以上の電源(例えば、バッテリ又は交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイスにおける電力の生成、管理、及び分配と関連付けられた任意の他の構成要素を含んでもよい。
【0074】
デバイス200はまた、1つ以上の光センサ264を含んでもよい。図2Aは、I/Oサブシステム206における光センサコントローラ258に結合された光センサを示す。光センサ264は、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを含んでもよい。光センサ264は、1つ以上のレンズを通じて投影された、環境からの光を受光し、光を、画像を表すデータに変換する。撮像モジュール243(カメラモジュールとも呼ばれる)と連携して、光センサ264は静止画像又はビデオをキャプチャしてもよい。いくつかの実施形態では、タッチスクリーンディスプレイを静止画像及び/又はビデオ画像の取得のためのビューファインダとして使用することができるように、デバイスの前面のタッチスクリーンディスプレイ212の反対側である、デバイス200の背面上に光センサが位置する。いくつの実施形態では、ユーザが他のビデオ会議参加者をタッチスクリーンディスプレイ上で参照する間に、ユーザの画像をビデオ会議のために取得することができるように、デバイスの前面上に光センサが位置する。いくつかの実施形態では、ビデオ会議並びに静止画像及び/又はビデオ画像の取得の双方のために、単一の光センサ264を、タッチスクリーンディスプレイと共に使用することができるように、光センサ264の位置は、ユーザによって(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更されてもよい。
【0075】
デバイス200はまた、任意選択的に、1つ以上の接触強度センサ265を含む。図2Aは、I/Oサブシステム206における強度センサコントローラ259に結合された接触強度センサを示す。接触強度センサ265は、任意選択的に、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は圧力)を測定するために使用されるセンサ)を含む。接触強度センサ265は、環境から接触強度情報(例えば、圧力情報又は圧力情報の代用物)を受信する。いくつかの実施形態では、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)に配置されているか、又はそれに近接している。いくつか実施形態では、少なくとも1つの接触強度センサが、デバイス200の前面上に位置するタッチスクリーンディスプレイ212の反対側である、デバイス200の背面上に位置する。
【0076】
デバイス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をオフにし、無効化する。
【0077】
デバイス200はまた、任意選択的に、1つ以上の触知出力生成器267を含む。図2Aは、I/Oサブシステム206における触覚フィードバックコントローラ261に結合された触知出力生成器を示す。触知出力生成器267は、任意選択的に、スピーカ若しくは他の音声構成要素等の1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)等の、エネルギーを線形的な動きに変換する電気機械デバイスを含む。接触強度センサ265は、触覚フィードバックモジュール233から触知フィードバック生成命令を受信し、デバイス200のユーザによって感知することが可能な触知出力をデバイス200上で生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)に配置され、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス200の表面の内/外)に、又は横方向(例えば、デバイス200の表面と同一の平面内の前後)に移動させることによって触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス200の前面に位置するタッチスクリーンディスプレイ212の反対側である、デバイス200の背面上に位置する。
【0078】
デバイス200はまた、1つ以上の加速度計268も含んでもよい。図2Aは、周辺機器インタフェース218に結合された加速度計268示す。代わりに、加速度計268は、I/Oサブシステム206における入力コントローラ260に結合されてもよい。加速度計268は、その双方のその全体が参照により本明細書に組み込まれる、米国特許出願公開第20050190059号、「Acceleration−based Theft Detection System for Portable Electronic Devices」、及び同第20060017692号、「Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer」で説明されるように実行してもよい。いくつかの実施形態では、情報は、1つ以上の加速度計から受信されたデータの分析に基づいて、縦長表示又は横長表示でタッチスクリーンディスプレイ上で表示される。デバイス200は、任意選択的に、加速度計(単数又は複数)268に加えて、磁気計(図示せず)並びにデバイス200の位置及び向き(例えば、縦長又は横長)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信機(図示せず)を含む。
【0079】
いくつかの実施形態では、メモリ202に記憶されたソフトウェア構成要素は、オペレーティングシステム226、通信モジュール(又は、命令セット)228、接触/動きモジュール(又は、命令セット)230、グラフィックモジュール(又は、命令セット)232、テキスト入力モジュール(又は、命令セット)234、全地球測位システム(GPS)モジュール(又は、命令セット)235、デジタルアシスタントクライアントモジュール229、及びアプリケーション(又は、命令セット)236を含む。更に、メモリ202は、ユーザデータ及びモデル231等のデータ及びモデルを記憶することができる。更に、いくつかの実施形態では、図2A及び図4に示されるように、メモリ202(図2A)又はメモリ470(図4)は、デバイス/グローバル内部状態257を記憶する。デバイス/グローバル内部状態257は、現在アクティブであるアプリケーションがある場合、どのアプリケーションがアクティブであるかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ212の様々な領域を占領しているかを示す表示状態、デバイスの様々なセンサ及び入力制御デバイス216から取得される情報を含むセンサ状態、並びにデバイスの位置及び/又は姿勢に関する位置情報のうちの1つ以上を含む。
【0080】
オペレーティングシステム226(例えば、Darwin、RTXC、LINUX、UNIX、OS X、iOS、WINDOWS、又はVxWorks等の組み込みオペレーティングシステム)は、汎用的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理等)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を促進する。
【0081】
通信モジュール228は、1つ以上の外部ポート224を通じて他のデバイスとの通信を促進し、RF回路208及び/又は外部ポート224によって受信されたデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート224(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIRE等)は、直接的に、又はネットワーク(例えば、インターネット、無線LAN等)を通じて間接的に、他のデバイスに結合するように適応される。いくつかの実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイス上で使用される30ピンコネクタと同一若しくは同様のマルチピン(例えば、30ピン)コネクタ、及び/又は互換性のあるマルチピン(例えば、30ピン)コネクタである。
【0082】
接触/動きモジュール230は、任意選択的に、(ディスプレイコントローラ256と連携して)タッチスクリーン212との接触、及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール230は、接触が生じたかを判定すること(例えば、指を下ろすイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が停止したかを判定すること(例えば、指を上げるイベント又は接触の中断を検出すること)等、接触の検出に関する様々な動作を実行するための様々なソフトウェア構成要素を含む。接触/動きモジュール230は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、並びに/又は加速度(大きさ及び/若しくは方向における変化)を判定することを含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール230及びディスプレイコントローラ256は、タッチパッド上の接触を検出する。
【0083】
いくつかの実施形態では、接触/動きモジュール230は、ユーザによって動作が実行されたかを判定するための(例えば、ユーザがアイコン上で「クリック」したかを判定するための)、1つ以上の強度閾値のセットを使用する。いくつかの実施形態では、少なくとも強度閾値のサブセットは、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス200の物理ハードウェアを変更することなく調節されてもよい)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく、広範囲の予め定義された閾値のうちのいずれかに設定されてもよい。加えて、いくつかの実施形態では、デバイスのユーザは、強度閾値のセットのうちの1つ以上を調節するためのソフトウェア設定が提供される(例えば、個々の強度閾値を調節することによって、及び/又はシステムレベルのクリック「強度」パラメータで一度に複数の強度閾値を調節することによって)。
【0084】
接触/動きモジュール230は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン(例えば、検出される接触の異なる動き、タイミング、及び/又は強度)を有する。よって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指のタップジェスチャを検出することは、(例えば、アイコンの位置における)指を下ろすイベントを検出し、続いて指を下ろすイベントと同一の位置(又は、実質的に同一の位置)で指を上げる(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、1つ以上の指をドラッグするイベントを検出し、その後、続いて指を上げる(リフトオフ)イベントを検出することを含む。
【0085】
グラフィックモジュール232は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含む、タッチスクリーン212又は他のディスプレイ上でグラフィックをレンダリング及び表示するための様々な既知のソフトウェア構成要素を含む。本明細書で使用されるとき、用語「グラフィック」は、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクト等)、デジタル画像、ビデオ、及びアニメーション等を含むが、これらに限定されない、ユーザに対して表示することができる任意のオブジェクトを含む。
【0086】
いくつかの実施形態では、グラフィックモジュール232は、使用されることになるグラフィックを表すデータを記憶する。各々のグラフィックは、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール232は、アプリケーション等から、必要に応じて、座標データ及び他のグラフィック特性データと共に表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次いで、ディスプレイコントローラ256に出力するスクリーンの画像データを生成する。
【0087】
触覚フィードバックモジュール233は、デバイス200とのユーザ対話に応じて、デバイス200上の1つ以上の位置で触知出力を生成するために、触知出力生成器(単数又は複数)267によって使用される命令を生成するための様々なソフトウェア構成要素を含む。
【0088】
グラフィックモジュール232の構成要素とすることができるテキスト入力モジュール234は、様々なアプリケーション(例えば、連絡先237、電子メール240、IM241、ブラウザ247、及びテキスト入力を必要とする任意の他のアプリケーション)においてテキストを入力するためのソフトキーボードを提供する。
【0089】
GPSモジュール235は、デバイスの位置を判定し、この情報を、様々なアプリケーションで使用するために提供する(例えば、位置に基づく電話にて使用するために電話238へ、写真/ビデオメタデータとしてカメラ243へ、及び天気ウィジェット、ローカルイエローページウィジェット、及び地図/ナビゲーションウィジェット等の位置に基づくサービスを提供するアプリケーションへ)。
【0090】
デジタルアシスタントクライアントモジュール229は、デジタルアシスタントのクライアント側機能性を提供する様々なクライアント側デジタルアシスタント命令を含むことができる。例えば、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なユーザインタフェース(例えば、マイクロフォン213、加速度計(単数又は複数)268、タッチ感知ディスプレイシステム212、光センサ(単数又は複数)264、他の入力制御デバイス216等)を通じて、音声入力(例えば、発話入力)、テキスト入力、タッチ入力、及び/又はジェスチャ入力を受け付ける能力を有することができる。デジタルアシスタントクライアントモジュール229はまた、ポータブル多機能デバイス200の様々な出力インタフェース(例えば、スピーカ211、タッチ感知ディスプレイシステム212、触知出力生成器(単数又は複数)267等)を通じて、音声(例えば、発話出力)、視覚、及び/又は触知の形式で出力を提供する能力を有することができる。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び/又は上記の2つ以上の組み合わせとして提供されてもよい。動作の間、デジタルアシスタントクライアントモジュール229は、RF回路208を使用してDAサーバ106と通信することができる。
【0091】
ユーザデータ及びモデル231は、デジタルアシスタントのクライアント側機能性を提供するための、ユーザと関連付けられた様々なデータ(例えば、ユーザ特有の語彙データ、ユーザ優先度データ、ユーザ特有の名前の発音、ユーザの電子アドレス帳からのデータ、to doリスト、買い物リスト等)を含むことができる。更に、ユーザデータ及びモデル231は、ユーザ入力を処理し、ユーザの意図を判定するための様々なモデル(例えば、発話認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデル等)を含むことができる。
【0092】
いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の周囲環境から追加情報を収集して、ユーザ、現在のユーザ対話、及び/又は現在のユーザ入力と関連付けられたコンテクストを確立するために、ポータブル多機能デバイス200の様々なセンサ、サブシステム、及び周辺機器を利用することができる。いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、ユーザの意図の推測を支援するために、ユーザ入力と共にコンテクスト情報又はそのサブセットをDAサーバ106に提供することができる。いくつかの実施例では、デジタルアシスタントはまた、ユーザへの出力をどのように準備及び配信するかを決定するために、コンテクスト情報を使用することができる。コンテクスト情報は、コンテクストデータと呼ばれてもよい。
【0093】
いくつかの実施例では、ユーザ入力に伴うコンテクスト情報は、センサ情報、例えば、照明、周囲ノイズ、周囲温度、周囲環境の画像又はビデオ等を含むことができる。いくつかの実施例では、コンテクスト情報はまた、デバイスの物理状態、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速さ、加速度、動きパターン、セルラー信号強度等を含むことができる。いくつかの実施例では、DAサーバ106のソフトウェア状態、例えば、稼働中の処理、インストールされたプログラム、過去と現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量等、及びポータブル多機能デバイス200のソフトウェア状態に関係する情報が、DAサーバ106に、ユーザ入力と関連付けられたコンテクスト情報として提供されてもよい。
【0094】
いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、DAサーバ106からの要求に応じて、ポータブル多機能デバイス200に記憶された情報(例えば、ユーザデータ231)を選択的に提供することができる。いくつかの実施例では、デジタルアシスタントクライアントモジュール229はまた、DAサーバ106による要求があると、自然言語ダイアログ又は他のユーザインタフェースを介してユーザから追加入力を引き出すことができる。デジタルアシスタントクライアントモジュール229は、ユーザ要求で表されるユーザの意図の意図推論及び/又は履行においてDAサーバ106を支援するために、追加入力をDAサーバ106に渡すことができる。
【0095】
図7A〜Cを参照して、より詳細な情報アシスタントの説明を記述する。デジタルアシスタントクライアントモジュール229は、以下に説明されるデジタルアシスタントモジュール726の任意の数のサブモジュールを含むことができることを認識するべきである。
【0096】
アプリケーション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。
【0097】
メモリ202に記憶することができる他のアプリケーション236の例は、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製を含む。
【0098】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、連絡先モジュール237は、(例えば、メモリ202又はメモリ470内の連絡先モジュール237のアプリケーション内部状態292に記憶された)アドレス帳又は連絡先リストを管理するために使用されてもよく、アドレス帳に名前(単数又は複数)を追加すること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類及び並べ替えること、電話番号又は電子メールアドレスを提供して、電話238、ビデオ会議モジュール239、電子メール240、若しくはIM241による通信を開始及び/又は促進すること等を含む。
【0099】
RF回路208、音声回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、電話モジュール238は、電話番号に対応する一連の文字を入力し、連絡先モジュール237における1つ以上の電話番号にアクセスし、入力された電話番号を修正し、それぞれの電話番号をダイヤルし、会話を行い、そして、会話が完了したときに接続を切り又は電話を切るために使用されてもよい。上述したように、無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用してもよい。
【0100】
RF回路208、音声回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、光センサ264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、連絡先モジュール237、及び電話モジュール238と連携して、ビデオ会議モジュール239は、ユーザの命令に従って、ユーザと1人以上の他の参加者との間のビデオ会議を開始、遂行、及び終了する実行可能な命令を含む。
【0101】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、電子メールクライアントモジュール240は、ユーザの指示に応じて、電子メールを作成、送信、受信、及び管理する実行可能な命令を含む。画像管理モジュール244と連携して、電子メールクライアントモジュール240は、カメラモジュール243で撮影した静止画像又はビデオ画像を有する電子メールを作成及び送信することを非常に容易にする。
【0102】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、インスタントメッセージングモジュール241は、インスタントメッセージに対応する文字列を入力し、前に入力された文字を修正し、(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、若しくはIMPSを使用して)それぞれのインスタントメッセージを送信し、インスタントメッセージを受信し、受信されたインスタントメッセージを参照する実行可能な命令を含む。いくつかの実施形態では、送信及び/又は受信されるインスタントメッセージは、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、EMS)でサポートされるような、グラフィック、写真、音声ファイル、ビデオファイル、及び/又は他の添付ファイルを含んでもよい。本明細書で使用されるとき、「インスタントメッセージ」は、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)の双方を指す。
【0103】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動作モジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、地図モジュール254、及び音楽再生モジュールと連携して、トレーニングサポートモジュール242は、(例えば、時間、距離、及び/又はカロリー消費目標を有する)トレーニングを生成し、トレーニングセンサ(スポーツデバイス)と通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニングのための音楽を選択及び再生し、トレーニングデータを表示、記憶、及び送信する実行可能な命令を含む。
【0104】
タッチスクリーン212、ディスプレイコントローラ256、光センサ(単数又は複数)264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、及び画像管理モジュール244と連携して、カメラモジュール243は、静止画像又は(ビデオストリームを含む)ビデオをキャプチャし、メモリ202にそれらを記憶し、静止画像若しくはビデオの特性を修正し、又はメモリ202から静止画像若しくはビデオを削除する実行可能な命令を含む。
【0105】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びカメラモジュール243と連携して、画像管理モジュール244は、静止画像及び/又はビデオ画像を配置、修正(例えば、編集)、又は別の方法で操作、ラベルを付け、削除、(例えば、デジタルスライドショー又はアルバムにおいて)提示、及び記憶する実行可能な命令を含む。
【0106】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ブラウザモジュール247は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索すること、リンク付けすること、受信すること、及び表示することを含むユーザの命令に従ってインターネットをブラウズする実行可能な命令を含む。
【0107】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、カレンダモジュール248は、ユーザの指示に従って、カレンダ及びカレンダと関連付けられたデータ(例えば、カレンダエントリ、to doリスト等)を作成、表示、変更、記憶する実行可能な命令を含む。
【0108】
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!ウィジェット)を含む。
【0109】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びブラウザモジュール247と連携して、ウィジェットクリエータモジュール250は、ウィジェットを作成する(例えば、ウェブページのユーザ指定箇所をウィジェットに変える)ためにユーザによって使用されてもよい。
【0110】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、検索モジュール251は、ユーザの命令に従って、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索用語)と一致する、メモリ202内のテキスト、音楽、サウンド、画像、ビデオ、及び/又は他のファイルを検索する実行可能な命令を含む。
【0111】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、音声回路210、スピーカ211、RF回路208、及びブラウザモジュール247と連携して、ビデオ及び音楽再生モジュール252は、MP3又はAACファイル等の1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生することを可能にする実行可能な命令、並びにビデオを(タッチスクリーン212上、又は外部ポート224を介して接続された外部のディスプレイ上で)表示、提示、又は別の方法で再生する実行可能な命令を含む。いくつかの実施形態では、デバイス200は、任意選択的に、iPod(Apple Inc.の商標)等のMP3再生の機能を含む。
【0112】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、メモモジュール253は、ユーザの命令に従って、メモ及びto doリスト等を作成及び管理する実行可能な命令を含む。
【0113】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、及びブラウザモジュール247と連携して、地図モジュール254は、ユーザの命令に従って、地図及び地図と関連付けられたデータ(例えば、運転方向、特定の位置若しくはその付近の店舗及び他の関心対象地点についてのデータ、並びに他の位置に基づく他のデータ)を受信、表示、修正、及び記憶するために使用されてもよい。
【0114】
タッチスクリーン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」に見出すことができる。
【0115】
上記特定されたモジュール及びアプリケーションの各々は、上記説明された1つ以上の機能を実行するための実行可能な命令セット及び本出願に記載の方法(例えば、コンピュータにより実装される方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(例えば、命令のセット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、よって、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。例えば、ビデオ再生モジュールは、音楽再生モジュールと組み合わせて、単一のモジュール(例えば、図2Aのビデオ及び音楽再生モジュール252)としてもよい。いくつかの実施形態では、メモリ202は、上記特定されたモジュール及びデータ構造のサブセットを記憶してもよい。更に、メモリ202は、上記説明されていない追加のモジュール及びデータ構造を記憶してもよい。
【0116】
いくつかの実施形態では、デバイス200は、デバイス上の機能の予め定義されたセットの動作が排他的にタッチスクリーン及び/又はタッチパッドを通じて実行されるデバイスである。デバイス200の動作についての主要な入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することによって、デバイス200上の(プッシュボタン及びダイヤル等の)物理入力制御デバイスの数を削減することができる。
【0117】
排他的にタッチスクリーン及び/又はタッチパッドを通じて実行される、予め定義された機能のセットは、任意選択的に、ユーザインタフェースの間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされるとき、デバイス200上で表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス200をナビゲートする。そのような実施形態では、「メニューボタン」はタッチパッドを使用して実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理プッシュボタン又は他の物理入力制御デバイスである。
【0118】
図2Bは、いくつかの実施形態に従った、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ202(図2A)又はメモリ470(図4)は、イベントソート部270(例えば、オペレーティングシステム226内)及びそれぞれアプリケーション236−1(例えば、上述したアプリケーション237〜251、255、480〜490のうちのいずれか)を含む。
【0119】
イベントソート部270は、イベント情報を受信し、イベント情報が配信されるアプリケーション236−1及びアプリケーション236−1のアプリケーションビュー291を判定する。イベントソート部270は、イベントモニタ271及びイベントディスパッチャモジュール274を含む。いくつかの実施形態では、アプリケーション236−1は、アプリケーションがアクティブ又は実行中のとき、タッチ感知ディスプレイ212上で表示される直近のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態292を含む。いくつかの実施形態では、デバイス/グローバル内部状態257は、どのアプリケーション(単数又は複数)が現在アクティブであるか否かを判定するためにイベントソート部270によって使用され、アプリケーション内部状態292は、イベント情報が配信されるアプリケーションビュー291を判定するためにイベントソート部270によって使用される。
【0120】
いくつかの実施形態では、アプリケーション内部状態292は、アプリケーション236−1が実行を再開するときに使用される再開情報、アプリケーション236−1によって情報が表示されているか又は表示の準備がされていることを示すユーザインタフェース状態情報、ユーザがアプリケーション236−1の前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが前に行ったアクションの再実行/取消待ち行列のうちの1つ以上等の追加情報を含む。
【0121】
イベントモニタ271は、周辺機器インタフェース218からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ212上でのユーザのタッチ)に関する情報を含む。周辺機器インタフェース218は、I/Oサブシステム206、又は近接センサ266、加速度計(単数又は複数)268、及び/若しくは(音声回路210を通じた)マイクロフォン213等のセンサから受信する情報を送信する。周辺機器インタフェース218がI/Oサブシステム206から受信する情報は、タッチ感知ディスプレイ212又はタッチ感知面からの情報を含む。
【0122】
いくつかの実施形態では、イベントモニタ271は、所定の間隔で周辺機器インタフェース218に要求を送信する。これに応じて、周辺機器インタフェース218はイベント情報を送信する。他の実施形態では、周辺機器インタフェース218は、重要なイベント(例えば、所定のノイズ閾値を上回り、及び/又は所定の時間を超える入力を受信すること)が存在するときのみ、イベント情報を送信する。
【0123】
いくつかの実施形態では、イベントソート部270はまた、ヒットビュー判定モジュール272及び/又はアクティブイベント認識部判定モジュール273を含む。
【0124】
ヒットビュー判定モジュール272は、タッチ感知ディスプレイ212が2つ以上のビューを表示するときに、サブイベントが1つ以上のビュー内で発生したかを判定するためのソフトウェア手順を提供する。ビューは、制御部及びユーザがディスプレイ上で見ることができる他の要素で構成されている。
【0125】
アプリケーションと関連付けられたユーザインタフェースの別の態様は、本明細書ではアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合があるビューのセットであり、それらにおいて情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(それぞれのアプリケーションの)アプリケーションビューは、そのアプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応してもよい。例えば、タッチが検出される最下位レベルのビューはヒットビューと呼ばれてもよく、適切な入力として認識されるイベントのセットは、少なくとも部分的にタッチに基づくジェスチャを開始する最初のタッチのヒットビューに基づいて判定されてもよい。
【0126】
ヒットビュー判定モジュール272は、タッチに基づくジェスチャのサブイベントと関連する情報を受信する。アプリケーションが、階層で編成された複数のビューを有するとき、ヒットビュー判定モジュール272は、サブイベントを処理するべき階層における最下位のビューとしてヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント(例えば、イベント又は潜在的なイベントを形成する一連のサブイベントにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュール272によって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同一のタッチ又は入力ソースに関連する全てのサブイベントを受信する。
【0127】
アクティブイベント認識部判定モジュール273は、ビュー階層内のどのビュー(単数又は複数)が特定の一連のサブイベントを受信するべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール273は、ヒットビューのみが特定の一連のサブイベントを受信するべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール273は、サブイベントの物理的な位置を含む全てのビューがアクティブに関与しているビューであると判定し、従って、全てのアクティブに関与しているビューが特定の一連のサブイベントを受信するべきであると判定する。他の実施形態では、タッチサブイベントが1つの特定のビューと関連付けられたエリアに完全に制限される場合でさえ、階層における上位のビューは、アクティブに関与しているビューのままである。
【0128】
イベントディスパッチャモジュール274は、イベント情報をイベント認識部(例えば、イベント認識部280)に発送する。アクティブイベント認識部判定モジュール273を含む実施形態では、イベントディスパッチャモジュール274は、アクティブイベント認識部判定モジュール273によって判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール274は、それぞれのイベント受信部282により取得されるイベント情報をイベント待ち行列に記憶する。
【0129】
いくつかの実施形態では、オペレーティングシステム226は、イベントソート部270を含む。代わりに、アプリケーション236−1は、イベントソート部270を含む。更なる他の実施形態では、イベントソート部270は、スタンドアロンモジュール、又は接触/動きモジュール230等のメモリ202に記憶された別のモジュールの一部である。
【0130】
いくつかの実施形態では、アプリケーション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に含まれる。
【0131】
それぞれのイベント認識部280は、イベントソート部270からイベント情報(例えば、イベントデータ279)を受信し、イベント情報からイベントを特定する。イベント認識部280は、イベント受信部282及びイベント比較部284を含む。いくつかの実施形態では、イベント認識部280はまた、メタデータ283及びイベント配信命令288(サブイベント配信命令を含んでもよい)の少なくともサブセットを含む。
【0132】
イベント受信部282は、イベントソート部270からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチの移動に関する情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントの位置等の追加の情報を含む。サブイベントがタッチの動きに関係するとき、イベント情報はまた、そのサブイベントの速さ及び方向も含んでもよい。いくつかの実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへの、又はその逆の)デバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)に関する対応する情報を含む。
【0133】
イベント比較部284は、イベント情報を予め定義されたイベント又はサブイベント定義と比較し、比較に基づいて、イベント若しくはサブイベントを判定し、又はイベント若しくはサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部284は、イベント定義286を含む。イベント定義286は、例えば、イベント1(287−1)、イベント2(287−2)等の、イベントの定義(例えば、予め定義された一連のサブイベント)を含む。いくつかの実施形態では、イベント(287)におけるサブイベントは、例えば、タッチの開始、タッチの終了、タッチの移動、タッチの中止、及び複数のタッチを含む。一実施例では、イベント1(287−1)についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、所定の段階の間の表示されたオブジェクト上の第1のタッチ(タッチの開始)、所定の段階の間の第1のリフトオフ(タッチの終了)、所定の段階の間の表示オブジェクト上の第2のタッチ(タッチの開始)、及び所定の段階の間の第2のリフトオフ(タッチの終了)を含む。別の実施例では、イベント2(287−2)についての定義は、表示されたオブジェクト上のドラッグ操作である。ドラッグ操作は、例えば、所定の段階の間の表示されたオブジェクト上のタッチ(又は、接触)、タッチ感知ディスプレイ212を横断するタッチの移動、及びタッチのリフトオフ(タッチの終了)を含む。いくつかの実施形態では、イベントはまた、1つ以上の関連付けられたイベント処理部290についての情報を含む。
【0134】
いくつかの実施形態では、イベント定義287は、それぞれのユーザインタフェースオブジェクトについてのイベントの定義を含む。いくつかの実施形態では、イベント比較部284は、どのユーザインタフェースオブジェクトがサブイベントと関連付けられるかを判定するためのヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ212に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ212上でタッチが検出されるとき、イベント比較部284は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)と関連付けられているかを判定するためのヒットテストを実行する。表示された各々のオブジェクトがそれぞれのイベント処理部290と関連付けられている場合、イベント比較部は、ヒットテストの結果を使用して、どのイベント処理部290をアクティブ化するべきかを判定する。例えば、イベント比較部284は、サブイベント及びヒットテストをトリガするオブジェクトと関連付けられたイベント処理部を選択する。
【0135】
いくつかの実施形態では、それぞれのイベント(287)についての定義はまた、一連のサブイベントがイベント認識部のイベントタイプに対応するか否かが判定されるまでイベント情報の配信を遅延させる遅延アクションを含む。
【0136】
それぞれのイベント認識部280が、一連のサブイベントがイベント定義286におけるイベントのいずれとも一致しないと判定するとき、それぞれのイベント認識部280は、イベント不可能、イベント失敗、又はイベント終了状態に入り、その後は、タッチに基づくジェスチャの後続のサブイベントを無視する。この状況では、ヒットビューに対してアクティブのままである他のイベント認識部がある場合、そのイベント認識部は、進行中のタッチに基づくジェスチャのサブイベントを追跡及び処理することを続ける。
【0137】
いくつかの実施形態では、それぞれのイベント認識部280は、イベント配信システムがどのようにサブイベント配信を実行するべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ、及び/又はリストを有するメタデータ283を含む。いくつかの実施形態では、メタデータ283は、イベント認識部が相互にどのように対話することができるか、又は対話が可能になるかについて示す、構成変更可能なプロパティ、フラグ、及び/又はリストを含む。いくつかの実施形態では、メタデータ283は、サブイベントがビュー階層又はプログラム階層における様々なレベルに配信されるかを示す、構成変更可能なプロパティ、フラグ、及び/又はリストを含む。
【0138】
いくつかの実施形態では、それぞれのイベント認識部280は、イベントの1つ以上の特定のサブイベントが認識されるときに、イベントと関連付けられたイベント処理部290をアクティブ化する。いくつかの実施形態では、それぞれのイベント認識部280は、イベントと関連付けられたイベント情報をイベント処理部290に配信する。イベント処理部290をアクティブ化することは、それぞれのヒットビューにサブイベントを送信(及び送信を延期する)することとは異なる。いくつかの実施形態では、イベント認識部280は、認識されたイベントと関連付けられたフラグをスローし、フラグと関連付けられたイベント処理部290は、フラグをキャッチし、予め定義された処理を実行する。
【0139】
いくつかの実施形態では、イベント配信命令288は、イベント処理部をアクティブ化することなくサブイベントに関するイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関与しているビューと関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
【0140】
いくつかの実施形態では、データ更新部276は、アプリケーション236−1で使用されるデータを作成及び更新する。例えば、データ更新部276は、連絡先モジュール237で使用される電話番号を更新し、又はビデオ再生モジュールで使用されるビデオファイルを記憶する。いくつかの実施形態では、オブジェクト更新部277は、アプリケーション236−1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部277は、新たなユーザインタフェースオブジェクトを作成し、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部278は、GUIを更新する。例えば、GUI更新部278は、表示情報を作成し、タッチ感知ディスプレイ上で表示するためにそれをグラフィックモジュール232に送信する。
【0141】
いくつかの実施形態では、イベント処理部(単数又は複数)290は、データ更新部276、オブジェクト更新部277、及びGUI更新部278を含み、又はそれらへのアクセスを有する。いくつかの実施形態では、データ更新部276、オブジェクト更新部277、及びGUI更新部278は、それぞれのアプリケーション236−1又はアプリケーションビュー291の単一のモジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
【0142】
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の議論はまた、入力デバイスを有する多機能デバイス200を動作させるための他の形式のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一若しくは複数のキーボードの押圧若しくは保持に任意選択的に合わせたマウスの移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロール等の接触移動、ペンのスタイラス入力、デバイスの移動、口頭による指示、検出された眼球運動、バイオメトリック入力、並びに/又はそれらの任意の組み合わせは、任意選択的に、認識されることになるイベントを定義するサブイベントに対応する入力として利用される。
【0143】
図3は、いくつかの実施形態に従った、タッチスクリーン212を有するポータブル多機能デバイス200を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース(user interface)(UI)300内に1つ以上のグラフィックを表示する。本実施形態と共に以下で説明されるその他では、ユーザは、例えば、1本以上の指302(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス303(図には、正確な縮尺率では描かれていない)で、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することが可能になる。いくつかの実施形態では、ユーザが1つ以上のグラフィックとの接触を中断するときに1つ以上のグラフィックの選択が発生する。いくつかの実施形態では、ジェスチャは、任意選択的に、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上方向へ、及び/若しくは下方向へ)、並びに/又はデバイス200と接触した指の回転(右から左へ、左から右へ、上方向へ、及び/若しくは下方向へ)を含む。いくつかの実施形態又は状況では、グラフィックとの不測の接触は、グラフィックを選択しない。例えば、選択に対応するジェスチャがタップであるとき、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択しない。
【0144】
デバイス200はまた、「ホーム」又はメニューボタン304等の1つ以上の物理ボタンを含んでもよい。前に説明されたように、メニューボタン304は、デバイス200上で実行することができるアプリケーションセットにおける任意のアプリケーション236へナビゲートするために使用されてもよい。代わりに、いくつかの実施形態では、メニューボタンは、タッチスクリーン212に表示されたGUIにおけるソフトキーとして実装される。
【0145】
一実施形態では、デバイス200は、タッチスクリーン212、メニューボタン304、デバイスの電源をオン/オフし、デバイスをロックするためのプッシュボタン306、音量調節ボタン(単数又は複数)308、加入者識別モジュール(SIM)カードスロット310、ヘッドセットジャック312、及びドッキング/充電用外部ポート224を含む。プッシュボタン306は、任意選択的に、ボタンを押し下げ、予め定義された時間間隔の間にボタンを押し下げた状態で保持することによってデバイス上の電力をターンオン/オフし、ボタンを押し下げ予め定義された時間間隔が経過する前にボタンを解放することによってデバイスをロックし、及び/又はデバイスのロックを解除し若しくはロック解除処理を開始するために使用される。代替的な実施形態では、デバイス200はまた、マイクロフォン213を通じていくつかの機能をアクティブ化又は非アクティブ化するための口頭入力を受け付ける。デバイス200はまた、任意選択的に、タッチスクリーン212上の接触の強度を検出するための1つ以上の接触強度センサ265、及び/又はデバイス200のユーザについての触知出力を生成するための1つ以上の触知出力生成器267を含む。
【0146】
図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はこれらのモジュールを記憶しない。
【0147】
図4における上記特定された要素の各々は、前述のメモリデバイスのうちの1つ以上に記憶されていてもよい。上記特定されたモジュールの各々は、上記説明された機能を実行する命令セットに対応する。上記特定されたモジュール又はプログラム(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、よって、様々な実施形態では、これらのモジュールの様々なサブセットは組み合わされてもよく、又は他の方式で再編成されてもよい。いくつかの実施形態では、メモリ470は、上記特定されたモジュール及びデータ構造のサブセットを記憶してもよい。更に、メモリ470は、上記説明されていない追加のモジュール及びデータ構造を記憶してもよい。
【0148】
ここで、例えば、ポータブル多機能デバイス200上で実装することができるユーザインタフェースの実施形態に注意を向ける。
【0149】
図5Aは、いくつかの実施形態に従った、ポータブル多機能デバイス200上のアプリケーションのメニュー用の例示的なユーザインタフェースを示す。同様のユーザインタフェースは、デバイス400上で実装されてもよい。いくつかの実施形態では、ユーザインタフェース500は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
【0150】
セルラー信号及び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。
【0151】
図5Aに示されるアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及び音楽再生モジュール252用のアイコン522は、任意選択的に、「音楽」又は「音楽再生」とラベル付けされてもよい。他のラベルは、任意選択的に、様々なアプリケーションアイコンのために使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンについてのラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンについてのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【0152】
図5Bは、ディスプレイ550(例えば、タッチスクリーンディスプレイ212)とは別個のタッチ感知面551(例えば、図4のタブレット又はタッチパッド455)を有するデバイス(例えば、図4のデバイス400)上の例示的なユーザインタフェースを示す。デバイス400はまた、任意選択的に、タッチ感知面551上の接触の強度を検出するための1つ以上の接触強度センサ(例えば、センサ457のうちの1つ以上)、及び/又はデバイス400のユーザに対する触知出力を生成するための1つ以上の触知出力生成器459を含む。
【0153】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ212上の入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、いくつかの実施形態では、デバイスは、図5Bに示されるように、ディスプレイとは別個のタッチ感知面上の入力を検出する。いくつかの実施形態では、タッチ感知面(例えば、図5Bの551)は、ディスプレイ(例えば、550)上の主軸(例えば、図5Bの553)に対応する主軸(例えば、図5Bの552)を有する。これらの実施形態に従って、デバイスは、タッチ感知面551との接触(例えば、図5Bの560及び562)を、ディスプレイ上のそれぞれの一に対応する位置(例えば、図5Bでは、560は568に対応し、562は570に対応する)において検出する。このように、タッチ感知面がディスプレイとは別個であるとき、タッチ感知面(例えば、図5Bの551)上でデバイスによって検出されたユーザ入力(例えば、接触560及び接触562、並びにそれらの移動)が、多機能デバイスのディスプレイ(例えば、図5Bでの550)上でユーザインタフェースを操作するためにデバイスによって使用される。同様の方法は、任意選択的に、本明細書で説明される他のユーザインタフェースに使用されることを理解されたい。
【0154】
加えて、以下の実施例は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャ)を参照して説明されるが、いくつかの実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力、又はスタイラス入力)で置き換えられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、スワイプの経路に沿ったカーソルの移動がその後に続く(例えば、接触の移動の代わりに)、マウスクリックと置き換えられる(例えば、接触の代わりに)。別の実施例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置の上に位置する間にマウスクリックと置き換えられる(例えば、接触の検出とそれに続いて接触の検出を停止する代わりに)。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが任意選択的に同時に使用され、又はマウス及び指の接触が任意選択的に同時に使用されることを理解されたい。
【0155】
図6Aは、例示的なパーソナル電子デバイス600を示す。デバイス600は、本体602を含む。いくつかの実施形態では、デバイス600は、デバイス200及びデバイス400(例えば、図2A〜図4B)に関して説明される特徴のいくつか又は全てを含むことができる。いくつかの実施形態では、デバイス600は、タッチ感知ディスプレイ画面604、以後、タッチスクリーン604を有する。タッチスクリーン604の代わりに、又はそれに加えて、デバイス600は、ディスプレイ及びタッチ感知面を有する。デバイス200及びデバイス400と同様に、いくつかの実施形態では、タッチスクリーン604(又は、タッチ感知面)は、加えられている接触(例えば、タッチ)の強度を検出するための1つ以上の強度センサを有してもよい。タッチスクリーン604(又は、タッチ感知面)の1つ以上の強度センサは、タッチの強度を表す出力データを提供することができる。デバイス600のユーザインタフェースは、タッチの強度に基づいてタッチに応答してもよく、これは、異なる強度のタッチがデバイス600上で異なるユーザインタフェース動作を呼び出すことができることを意味する。
【0156】
タッチ強度を検出及び処理するための技術は、それぞれが全体として参照により本明細書に組み込まれる、例えば、関連出願である、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号に見出すことができる。
【0157】
いくつかの実施形態では、デバイス600は、1つ以上の入力機構606及び608を有する。入力機構606及び608は、含まれる場合、物理的なものとすることができる。物理入力機構の例は、プッシュボタン及び回転可能機構を含む。いくつかの実施形態では、デバイス600は、1つ以上の取付機構を有する。そのような取付機構は、含まれる場合、例えば、デバイス600を、帽子、アイウェア、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計バンド、チェーン、ズボン、ベルト、靴、財布、及びバックパック等に取り付けることを可能にする。これらの取付機構によって、ユーザはデバイス600を着用することができる。
【0158】
図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は、いくつかの実施例では、ボタンであってもよい。
【0159】
入力機構608は、いくつかの実施例では、マイクロフォンであってもよい。パーソナル電子デバイス600は、GPSセンサ632、加速度計634、方向センサ640(例えば、コンパス)、ジャイロスコープ636、動きセンサ638、及び/又はこれらの組み合わせ等の、様々なセンサを含むことができるが、それらの全ては、I/O部614に動作可能に接続されてもよい。
【0160】
パーソナル電子デバイス600のメモリ618は、コンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体とすることができ、それらの命令は、1つ以上のコンピュータプロセッサ616によって実行されるとき、例えば、コンピュータプロセッサに、処理1200(図12A〜D)を含む、上記説明された技術を実行させることができる。コンピュータ実行可能命令はまた、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチすることができ、命令を実行することができる他のシステム等、命令実行システム、装置、又はデバイスによって、又はそれらと接続して使用するための任意の非一時的コンピュータ可読記憶媒体に記憶及び/又は伝送されてもよい。パーソナル電子デバイス600は、図6Bの構成要素及び構成に限定されるものではなく、複数の構成における他の構成要素又は追加的構成要素を含むことができる。
【0161】
本明細書で使用されるとき、用語「アフォーダンス」は、デバイス200、デバイス400、及び/又はデバイス600(図2、図4、及び図6)のディスプレイスクリーン上で表示することができるユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及びテキスト(例えば、リンク)は各々、アフォーダンスを構成することができる。
【0162】
本明細書で使用されるとき、用語「フォーカスセレクタ」は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含むいくつかの実装形態では、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にある間に、タッチ感知面(例えば、図4のタッチパッド455、又は図5Bのタッチ感知面551)上で入力(例えば、押圧入力)が検出されるとき、特定のユーザインタフェース要素が検出された入力に従って調整されるように、カーソルは「フォーカスセレクタ」として機能する。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、図2Aのタッチ感知ディスプレイシステム212、又は図5Aのタッチスクリーン212)を含むいくつかの実装形態では、入力(例えば、接触による押圧入力)がタッチスクリーンディスプレイ上で特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の位置において検出されるとき、特定のユーザインタフェース要素が検出された入力に従って調節されるように、タッチスクリーン上の検出された接触は、「フォーカスセレクタ」として機能する。いくつかの実装形態では、(例えば、タブキー又は矢印キーを使用してフォーカスを1つのボタンから別のボタンに移動させることにより)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動され、それらの実施形態では、フォーカスセレクタは、ユーザインタフェースの異なる領域の間のフォーカスの移動に従って移動する。フォーカスセレクタによってとられる具体的な形式とは関係なく、フォーカスセレクタは概して、ユーザの意図したユーザインタフェースとの対話を通信するために(例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによって)、ユーザによって制御されるユーザインタフェース要素(又は、タッチスクリーンディスプレイ上の接触)である。例えば、押圧入力がタッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で検出される間、それぞれのボタンの上にあるフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の位置は、(デバイスのディスプレイ上で示される他のユーザインタフェース要素とは反対側の)それぞれのボタンをユーザがアクティブ化することを意図していることを示す。
【0163】
本明細書及び特許請求の範囲で使用するとき、接触の「特性強度」という用語は、接触の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つ以上の動作を実行するか否か(例えば、それぞれの動作を実行するのか、又はそれぞれの動作の実行をしないで済ますか)を判定するために使用される。
【0164】
いくつかの実施形態では、特性強度を判定する目的で、ジェスチャの一部が特定される。例えば、タッチ感知面は、接触の強度が増加する開始位置から遷移して終了位置に到達する連続的なスワイプ接触を受け取ってもよい。この実施例では、終了位置における接触の特性強度は、連続的なスワイプ接触の一部のみに基づいており、全体的なスワイプ接触ではない(例えば、終了位置におけるスワイプ接触の一部のみ)。いくつかの実施形態では、接触の特性強度を判定する前に、平滑化アルゴリズムをそのスワイプ接触の強度に適用してもよい。例えば、平滑化アルゴリズムは、任意選択的に、非荷重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度の小幅な上昇又は低下を除外する。
【0165】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値等などの1つ以上の強度閾値に対して特徴付けられてもよい。いくつかの実施形態では、軽い押圧強度閾値は、典型的に物理マウスのボタン又はトラックパッドのクリックと関連付けられた動作をデバイスが実行する強度に対応する。いくつかの実施形態では、深い押圧強度閾値は、典型的に物理マウスのボタン又はトラックパッドのクリックと関連付けられた動作とは異なる動作をデバイスが実行する強度に対応する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、かつ、それを下回ると接触がもはや検出されないわずかな接触検出強度閾値を上回る)特性強度を有する接触が検出されるとき、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値と関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従ってフォーカスセレクタを移動させる。概して、特に明記しない限り、これらの強度閾値は、ユーザインタフェースの図の異なるセットの間で一貫している。
【0166】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への接触の特性強度の増大は、「軽い押圧」入力と称される場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への接触の特性強度の増大は、「深い押圧」入力と称される場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と称される場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と称される場合がある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロより大きい。
【0167】
本明細書で説明されるいくつかの実施形態では、1つ以上の操作は、それぞれの押圧入力を含むジェスチャを検出したことに応じて、又はそれぞれの接触(又は、複数の接触)で実行されるそれぞれの押圧入力を検出したことに応じて実行され、それぞれの押圧入力は、押圧入力強度閾値を上回る接触(又は、複数の接触)の強度における増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、それぞれの操作は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大(例えば、それぞれの押圧入力の「ダウンストローク」)の検出に応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及び押圧入力強度閾値を下回る接触の強度の後続の減少を含み、それぞれの動作は、押圧入力閾値を下回るそれぞれの接触の強度の後続の減少(例えば、それぞれの押圧入力の「アップストローク」)の検出に応じて実行される。
【0168】
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との予め定義された関係を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりも低いX強度単位であり、又はヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な比率である)。よって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及び押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の後続の減少を含み、それぞれの動作は、ヒステリシス強度閾値を下回る、それぞれの接触の強度の後続の減少(例えば、それぞれの押圧入力の「アップストローク」)の検出に応じて実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への、接触の強度の後続の減少を検出する場合にのみ検出され、それぞれの動作は、押圧入力の検出(例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少)に応じて実行される。
【0169】
説明を容易にするために、押圧入力強度閾値と関連付けられた押圧入力に応じて、又は押圧入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じてトリガされる。加えて、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて動作が実行されるとして説明される実施例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る、接触の強度の減少を検出したことに応じて実行される。
3.デジタルアシスタントシステム
【0170】
図7Aは、様々な実施例に従った、デジタルアシスタントシステム700のブロック図を示す。いくつかの実施例では、デジタルアシスタントシステム700は、スタンドアロンコンピュータシステム上で実装されてもよい。いくつかの実施例では、デジタルアシスタントシステム700は、複数のコンピュータにわたって分散されてもよい。いくつかの実施例では、デジタルアシスタントのモジュール及び機能のいくつかは、サーバ部分及びクライアント部分に分割されてもよく、そこでは、クライアント部分は1つ以上のユーザデバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス400、又はデバイス600)上に常駐し、例えば、図1に示すように、1つ以上のネットワークを通じてサーバ部分(例えば、サーバシステム108)と通信する。いくつかの実施例では、デジタルアシスタントシステム700は、図1に示されたサーバシステム108(及び/又は、DAサーバ106)の実施形態であってもよい。デジタルアシスタントシステム700は、デジタルアシスタントシステムの単なる一実施例に過ぎず、デジタルアシスタントシステム700は、示されているよりも多くの若しくは少ない構成要素を有してもよく、2つ以上の構成要素を組み合わせてもよく、又は構成要素の異なる構成若しくは配置を有することができることに留意されたい。図7Aに示される様々な構成要素は、1つ以上の信号処理回路及び/若しくは特定用途向け集積回路を含む、ハードウェア、1つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、又はそれらの組み合わせの形態で実装されてもよい。
【0171】
デジタルアシスタントシステム700は、メモリ702、1つ以上のプロセッサ704、入出力(I/O)インタフェース706、及びネットワーク通信インタフェース708を含むことができる。これらの構成要素は、1つ以上の通信バス又は信号線710を介して相互に通信することができる。
【0172】
いくつかの実施例では、メモリ702は、高速ランダムアクセスメモリ並びに/又は不揮発性コンピュータ可読記憶媒体(例えば、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、若しくは他の不揮発性固体メモリデバイス)等の非一時的コンピュータ可読媒体を含むことができる。
【0173】
いくつかの実施例では、I/Oインタフェース706は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォン等、デジタルアシスタントシステム700の入出力デバイス716をユーザインタフェースモジュール722に結合することができる。I/Oインタフェース706は、ユーザインタフェースモジュール722と協働して、ユーザ入力(例えば、音声入力、キーボード入力、タッチ入力等)を受信し、対応してそれらを処理する。いくつかの実施例では、例えば、デジタルアシスタントがスタンドアロンユーザデバイス上で実装されるとき、デジタルアシスタントシステム700は、図2A、図4、図6A〜図6Bにおいてそれぞれデバイス200、デバイス400、又はデバイス600に関連して説明されている構成要素及びI/O通信インタフェースのいずれかを含むことができる。いくつかの実施例では、デジタルアシスタントシステム700は、デジタルアシスタントの実施形態のサーバ部分を表すことができ、ユーザデバイス(例えば、デバイス104、デバイス200、デバイス400、又はデバイス600)上に常駐するクライアント側部分を通じてユーザと対話することができる。
【0174】
いくつかの実施例では、ネットワーク通信インタフェース708は、有線通信ポート(単数又は複数)712及び/又は無線送受信回路714を含むことができる。有線通信ポート(単数又は複数)712は、1つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス(USB)、FIREWIRE等を介して通信信号を受信及び送信することができる。無線回路714は、通信ネットワーク及び他の通信デバイスをから/へ、RF信号及び/又は光信号を受信及び送信することができる。無線通信は、GSM、EDGE、CDMA、TDMA、Bluetooth、Wi−Fi、VoIP、Wi−MAX、又は任意のその他の適切な通信プロトコル等の複数の通信規格、プロトコル及び技術のうちのいずれかを使用することができる。ネットワーク通信インタフェース708は、インターネット、イントラネット等のネットワーク、及び/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)等の無線ネットワーク、及び/又はメトロポリタンエリアネットワーク(Metropolitan Area Network、MAN)による、デジタルアシスタントシステム700と他のデバイスとの間の通信を可能にすることができる。
【0175】
いくつかの実施例では、メモリ702、又はメモリ702のコンピュータ可読記憶媒体は、オペレーティングシステム718、通信モジュール720、ユーザインタフェースモジュール722、1つ以上のアプリケーション724、及びデジタルアシスタントモジュール726の全て又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶することができる。特に、メモリ702又はメモリ702のコンピュータ可読記憶媒体は、以下で説明する処理1200を実行する命令を記憶することができる。1つ以上のプロセッサ704はこれらのプログラム、モジュール、及び命令を実行し、データ構造から/へと読み出し/書き込みを行うことができる。
【0176】
オペレーティングシステム718(例えば、Darwin、RTXC、LINUX、UNIX、iOS、OS X、WINDOWS、又はVxWorks等の組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶装置制御、電力管理等)を制御及び管理するための様々なソフトウェア構成要素及び/又はドライバを含むことができ、様々なハードウェア、ファームウェア、及びソフトウェア構成要素間の通信を促進する。
【0177】
通信モジュール720は、ネットワーク通信インタフェース708上でのデジタルアシスタントシステム700と他のデバイスとの間の通信を促進する。例えば、通信モジュール720は、図2A、図4、図6A〜図6Bにそれぞれ示すデバイス200、デバイス400、及びデバイス600等の電子デバイスのRF回路208と通信することができる。通信モジュール720はまた、無線回路714及び/又は有線通信ポート712により受信されたデータを処理するための様々な構成要素も含むことができる。
【0178】
ユーザインタフェースモジュール722はI/Oインタフェース706を介して(例えば、キーボード、タッチスクリーン、ポインティングデバイス、コントローラ、及び/又はマイクロフォンから)ユーザからのコマンド及び/又は入力を受信することができ、ディスプレイ上でユーザインタフェースオブジェクトを生成することができる。ユーザインタフェースモジュール722はまた、I/Oインタフェース706を介して(例えば、ディスプレイ、音声チャネル、スピーカ、タッチパッド等を通じて)、ユーザへの出力(例えば、発話、音声、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光等)を準備及び配信することができる。
【0179】
アプリケーション724は、1つ以上のプロセッサ704により実行されるように構成されたプログラム及び/又はモジュールを含むことができる。例えば、デジタルアシスタントシステムがスタンドアロンのユーザデバイス上で実装される場合、アプリケーション724は、ゲーム、カレンダアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーション等のユーザアプリケーションを含むことができる。デジタルアシスタントシステム700がサーバ上で実装される場合、アプリケーション724は、例えば、リソース管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含むことができる。
【0180】
メモリ702はまた、デジタルアシスタントモジュール726(又は、デジタルアシスタントのサーバ部分)を記憶することができる。いくつかの実施例では、デジタルアシスタントモジュール726は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含むことができる:入出力処理モジュール728、音声テキスト化(STT)処理モジュール730、自然言語処理モジュール732、ダイアログフロー処理モジュール734、タスクフロー処理モジュール736、サービス処理モジュール738、及び発話合成モジュール740。これらのモジュールの各々は、デジタルアシスタントモジュール726の以下のシステム又はデータ及びモデルのうちの1つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有することができる:オントロジ760、語彙索引744、ユーザデータ748、タスクフローモデル754、サービスモデル756、及びASRシステム731。
【0181】
いくつかの実施例では、デジタルアシスタントモジュール726で実装された処理モジュール、データ、及びモデルを使用して、デジタルアシスタントは以下のうちの少なくともいくつかを実行することができる:発話入力をテキストに変換すること、ユーザから受信された自然言語入力で表現されているユーザの意図を特定すること、ユーザの意図を完全に推測するために必要な情報を(例えば、単語、ゲーム、意図等の曖昧さをなくすことによって)能動的に引き出し、取得すること、推測された意図を満たすためのタスクフローを判定すること、及びそのタスクフローを実行して、推測された意図を満たすこと。
【0182】
いくつかの実施例では、図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(又は、発話認識器)へ転送することができる。
【0183】
STT処理モジュール730は、1つ以上のASRシステムを含むことができる。1つ以上のASRシステムは、I/O処理モジュール728を通じて受信された発話入力を処理して、認識結果を生成することができる。各々のASRシステムは、フロントエンド発話プリプロセッサを含むことができる。フロントエンド発話プリプロセッサは、発話入力から代表的な特徴を抽出することができる。例えば、フロントエンド発話プリプロセッサは、発話入力を代表的な多次元ベクトルの列として特徴付けるスペクトル特徴を抽出するために、発話入力に対してフーリエ変換を実行することができる。更に、各々のASRシステムは、1つ以上の発話認識モデル(例えば、音響モデル及び/又は言語モデル)を含むことができ、1つ以上の音声認識エンジンを実装することができる。発話認識モデルの実施例は、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、nグラム言語モデル、及び他の統計モデルを含むことができる。発話認識エンジンの実施例は、動的時間伸縮ベースのエンジン及び重み付き有限状態トランスデューサ(WFST)ベースのエンジンを含むことができる。フロントエンド発話プリプロセッサの抽出された代表的な特徴を処理して、中間認識結果(例えば、音素、音素文字列及びサブワード)を生成し、最終的には、テキスト認識結果(例えば、単語、単語文字列、又はトークンの列)を生成するために、1つ以上の発話認識モデル及び1つ以上の発話認識エンジンを使用することができる。いくつかの実施例では、発話入力は、認識結果を生成するために、サードパーティサービスによって、又はユーザのデバイス(例えば、デバイス104、デバイス200、デバイス400、若しくはデバイス600)上で少なくとも部分的に処理されてもよい。STT処理モジュール730が、テキスト文字列(例えば、単語、単語の列、又はトークンの列)を包含する認識結果を生成すると、認識結果は意図推論のために自然言語処理モジュール732に渡されてもよい。
【0184】
音声テキスト化処理についての更なる詳細は、開示全体が参照により本明細書に組み込まれる、2011年9月20日に出願された、「Consolidating Speech Recognition Results」についての米国実用特許出願第13/236,942号に記載されている。
【0185】
いくつかの実施例では、STT処理モジュール730は、認識可能な単語の語彙を含むことができ、及び/又は音標アルファベット変換モジュール731を介してそれにアクセスすることができる。各々の語彙語は、1つ以上の発話認識音標アルファベットで表される単語の発音候補と関連付けられてもよい。詳細には、認識可能な単語の語彙は、複数の発音候補と関連付けられた単語を含むことができる。例えば、語彙は、発音候補/t?'me??o?/及び/t?'m?to?/と関連付けられた単語「トマト」を含むことができる。更に、ユーザからの前の発話入力に基づいて、語彙語をカスタム発音候補と関連付けることができる。そのようなカスタム発音候補を、STT処理モジュール730に記憶することができて、デバイス上のユーザのプロファイルを介して、特定のユーザと関連付けることができる。いくつかの実施例では、単語の綴り並びに1つ以上の言語規則及び/又は音標規則に基づいて、単語の発音候補を判定することができる。いくつかの実施例では、例えば、既知の正規発音に基づいて、発音候補を手動で生成することができる。
【0186】
いくつかの実施例では、発音候補の一般性に基づいて、発音候補をランク付けすることができる。例えば、発音候補/t?'me??o?/を、/t?'m?to?/よりも高くランク付けすることができるが、これは、発音候補/t?'me??o?/が(例えば、全ユーザのうち、特定の地理的領域のユーザについて、又は任意の他の適切なユーザのサブセットについて)より一般的に使用される発音だからである。いくつかの実施例では、発音候補が、ユーザと関連付けられたカスタム発音候補であるかに基づいて、その発音候補をランク付けすることができる。例えば、カスタム発音候補を、正規発音候補よりも高くランク付けすることができる。このことは、正規発音から逸脱する独特の発音を有する固有名詞を認識するために有用となることがある。いくつかの実施例では、発音候補を出身地、国籍又は民族性等の1つ以上の発話特性と関連付けることができる。例えば、発音候補/t?'me??o?/を米国と関連付けることができるのに対し、発音候補/t?'m?to?/を英国と関連付けることができる。更に、発音候補のランクは、デバイス上のユーザのプロファイルに記憶されたユーザの1つ以上の特性(例えば、出身地、国籍、民族等)に基づくことができる。例えば、ユーザのプロファイルから、ユーザが米国と関連付けられていることを判定することができる。ユーザが米国と関連付けられていることに基づいて、(米国と関連付けられた)発音候補/t?'me??o?/を、(英国と関連付けられた)発音候補/t?'m?to?/よりも高くランク付けすることができる。いくつかの実施例では、ランク付けされた発音候補のうちの1つを、予測された発音(例えば、最も可能性が高い発音)として選択することができる。
【0187】
発話入力が受信されるとき、STT処理モジュール730は、発話入力に対応する音素を(例えば、音響モデルを使用して)判定するために使用されてもよく、次に、音素に一致する単語を(例えば、言語モデルを使用して)判定することを試みる。例えば、STT処理モジュール730は、発話入力の一部分に対応する音素の列/t?'me??o?/を最初に特定することができた場合、語彙インデックス744に基づいて、この列が単語「トマト」に対応すると判定することができる。
【0188】
いくつかの実施例では、STT処理モジュール730は、近似マッチング技術を使用して、音声入力における単語を判定することができる。従って、例えば、STT処理モジュール730は、特定の音素の列が、単語「トマト」の候補音素の列のうちの1つではない場合でさえ、音素の列/t?'me??o?/が単語「トマト」に対応すると判定することができる。
【0189】
デジタルアシスタントの自然言語処理モジュール732(「自然言語プロセッサ」)は、STT処理モジュール730により生成された単語又はトークンの列(「トークン列」)を獲得し、トークン列を、デジタルアシスタントにより認識される1つ以上の「実施可能な意図」と関連付けようと試みることができる。「実施可能な意図」は、デジタルアシスタントにより実行することができるタスクを表すことができ、タスクフローモデル754で実装される、関連付けられたタスクフローを有することができる。関連付けられたタスクフローは、タスクを実行するためにデジタルアシスタントが取る一連のプログラムされたアクション及びステップとすることができる。デジタルアシスタントの能力の範囲は、タスクフローモデル754で実装及び記憶されているタスクフローの数及び種類に依存し、又は、換言すれば、デジタルアシスタントを認識する「実施可能な意図」の数及び種類に依存することができる。しかし、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正しい「実施可能な意図(単数又は複数)」を推定するアシスタントの能力に依存することができる。
【0190】
いくつかの実施例では、STT処理モジュール730から取得される単語又はトークンの列に加えて、自然言語処理モジュール732はまた、例えば、I/O処理モジュール728から、ユーザ要求と関連付けられたコンテクスト情報を受信することができる。自然言語処理モジュール732は、任意選択的に、コンテクスト情報を使用して、STT処理モジュール730から受信したトークン列に含まれる情報を明らかにし、補完し、及び/又は更に定義することができる。コンテクスト情報は、例えば、ユーザ優先度、ユーザデバイスのハードウェア及び/又はソフトウェア状態、ユーザ要求の前、最中、若しくは直後に収集されたセンサ情報、並びにデジタルアシスタントとユーザとの間の以前の対話(例えば、ダイアログ)等を含むことができる。本明細書で説明するように、コンテクスト情報は動的であってもよく、時間、位置、ダイアログの内容、及び他の因子によって変化することができる。
【0191】
いくつかの実施例では、自然言語処理は、例えば、オントロジ760に基づくことができる。オントロジ760は、多数のノードを包含する階層構造とすることができ、各々のノードは、「実施可能な意図」又は他の「属性」のうちの1つ以上に関連する「実施可能な意図」又は「属性」のいずれかを表す。上述したように、「実施可能な意図」は、デジタルアシスタントが実行する能力を有する、即ち、それは「実装可能」である、又は作用することができるタスクを表すことができる。「属性」は、実施可能な意図、又は別の属性の下位態様と関連付けられたパラメータを表すことができる。オントロジ760内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードにより表されるパラメータが、実施可能な意図ノードにより表されるタスクにどのくらい関係するのかを定義することができる。
【0192】
いくつかの実施例では、オントロジ760は実施可能な意図ノード及び属性ノードで構成されてもよい。オントロジ760内で、各々の実施可能な意図ノードは、直接又は1つ以上の中間属性ノードを通じてのいずれかで、1つ以上の属性ノードにリンクされてもよい。同様に、各々の属性ノードは、直接又は1つ以上の中間属性ノードを通じてのいずれかで、1つ以上の実施可能な意図ノードにンクされてもよい。例えば、図7Cに示すように、オントロジ760は、「レストラン予約」ノード(すなわち、実施可能な意図ノード)を含むことができる。属性ノード「レストラン」、「日付/時間」(予約用)及び「参加人数」は各々の、実施可能な意図ノード(即ち、「レストラン予約」ノード)にそれぞれ直接リンクされてもよい。
【0193】
更に、属性ノード「料理」、「価格帯」、「電話番号」及び「ロケーション」は、属性ノード「レストラン」のサブノードであってもよく、中間属性ノード「レストラン」を通じて「レストラン予約」ノード(即ち、実施可能な意図ノード)にそれぞれリンクされてもよい。別の実施例として、図7Cに示されるように、オントロジ760はまた、「リマインダ設定」ノード(即ち、別の実施可能な意図ノード)を含むことができる。属性ノード「日付/時間」(リマインダ設定用)及び「テーマ」(リマインダ用)は、「リマインダ設定」ノードに各々がリンクされてもよい。属性ノード「日付/時間」がレストラン予約をするタスク及びリマインダを設定するタスクの両方に関連することがあるため、属性ノード「日付/時間」はオントロジ760において「レストラン予約」ノード及び「リマインダ設定」ノードの両方にリンクされてもよい。
【0194】
実施可能な意図ノードは、そのリンクされた属性ノードと共に、「ドメイン」として説明されてもよい。本議論では、各々のドメインは、それぞれの実施可能な意図と関連付けられてもよく、特定の実施可能な意図と関連付けられたノードのグループ(及びノード間の関係)を指す。例えば、図7Cに示されるオントロジ760は、オントロジ760内のレストラン予約ドメイン762の例及びリマインダドメイン764の例を含むことができる。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付/時間」、及び「参加人数」、並びに下位属性ノード「料理」、「価格帯」、「電話番号」及び「ロケーション」を含む。リマインダドメイン764は、実施可能な意図ノード「リマインダ設定」、及び属性ノード「テーマ」及び「日付/時間」を含むことができる。いくつかの実施例では、オントロジ760は多くのドメインで構成されてもよい。各々のドメインは、1つ以上の他のドメインと、1つ以上の属性ノードを共有することができる。例えば、「日付/時間」属性ノードは、レストラン予約ドメイン762及びリマインダドメイン764に加えて、多くの異なるドメイン(例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメイン等)と関連付けられてもよい。
【0195】
図7Cは、オントロジ760内の2つの例示的なドメインを示すが、他のドメインは、例えば、「映画を探す」、「通話を開始する」、「道順を探す」、「会議をスケジュールする」、「メッセージを送信する」、及び「質問への回答を提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、並びに「タスクの指示を提供する」等を含むことができる。「メッセージを送信する」ドメインは、「メッセージを送信する」の実施可能な意図ノードと関連付けられており、「受信者(単数又は複数)」、「メッセージタイプ」、及び「メッセージ本文」等の属性ノードを更に含んでもよい。属性ノード「受信者」は更に、例えば、「受信者名」及び「メッセージアドレス」等の下位属性ノードによって定義されてもよい。
【0196】
いくつかの実施例では、オントロジ760は、デジタルアシスタントが理解し、作用することができる全てのドメイン(よって、実施可能な意図)を含むことができる。いくつかの実施例では、オントロジ760は、ドメイン又はノード全体を追加若しくは除去し、又はオントロジ760内のノードの間の関係を修正すること等によって修正されてもよい。
【0197】
いくつかの実施例では、複数の関連する実施可能な意図と関連付けられたノードは、オントロジ760における「スーパドメイン」の下にクラスタ化されてもよい。例えば、「旅行」スーパドメインは、旅行に関連する属性ノード及び実施可能な意図ノードのクラスタを含むことができる。旅行に関連する実施可能な意図ノードは、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、及び「興味のある場所を探す」等を含むことができる。同一のスーパドメイン(例えば、「旅行」スーパドメイン)の下の実施可能な意図ノードは、多くの属性ノードを共通して有することができる。例えば、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」についての実施可能な意図ノードは、属性ノードである「出発場所」、「目的地」、「出発日/時間」、「到着日/時間」、及び「参加人数」のうちの1つ以上を共有することができる。
【0198】
いくつかの実施例では、オントロジ760における各々のノードは、ノードによって表される属性又は実施可能な意図に関連する単語及び/又はフレーズのセットと関連付けられてもよい。各々のノードと関連付けられた単語及び/又はフレーズのそれぞれのセットは、そのノードと関連付けられたいわゆる「語彙」とすることができる。各々のノードと関連付けられた単語及び/又はフレーズのそれぞれのセットは、ノードによって表される属性又は実施可能な意図に関連して語彙索引744に記憶されていてもよい。例えば、図7Bに戻ると、「レストラン」の属性についてのノードと関連付けられた語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」等の単語を含むことができる。別の実施例として、「通話を開始する(initiate a phone call)」の実施可能な意図についてのノードと関連付けられた語彙は、「電話する(call)」、「電話(phone)」、「ダイヤルする(dial)」、「電話をかける(ring)」、「この番号に電話する(call this number)」、及び「〜に電話をかける(make a call to)」等の単語及びフレーズを含むことができる。語彙索引744は、任意選択的に、異なる言語の単語及びフレーズを含むことができる。
【0199】
自然言語処理モジュール732は、STT処理モジュール730からトークン列(例えば、テキスト文字列)を受信することができ、トークン列における単語によってどのノードを暗示されているかを判定することができる。いくつかの実施例では、トークン列内の単語又はフレーズが(語彙索引744を介して)オントロジ760における1つ以上のノードと関連付けられていることが分かった場合、その単語又はフレーズが、それらのノードを「トリガし」又は「アクティブ化する」ことができる。アクティブ化されたノードの量及び/又は相対的重要度に基づいて、自然言語処理モジュール732は、ユーザがデジタルアシスタントに実行させようと意図したタスクとして、実施可能な意図のうちの1つを選択することができる。いくつかの実施例では、最も多く「トリガされた」ノードを有するドメインを選択することができる。いくつかの実施例では、最も高い信頼値を有するドメインを(例えば、その様々なトリガされたノードの相対的重要度に基づいて)選択することができる。いくつかの実施例では、トリガされたノードの数及び重要度の組み合わせに基づいて、ドメインを選択することができる。いくつかの実施例では、ノードを選択する際に、デジタルアシスタントはユーザからの同様の要求を以前に正確に解釈したかどうか等の追加の因子も考慮される。
【0200】
ユーザデータ748は、ユーザ特有語彙、ユーザ優先度、ユーザアドレス、ユーザのデフォルト言語及び第二言語、ユーザの連絡先リスト、並びに各々のユーザに関するその他の短期的若しくは長期的情報等のユーザ特有情報を含むことができる。いくつかの実施例では、自然言語処理モジュール732は、ユーザ入力に含まれる情報を補完してユーザ意図を更に定義するために、ユーザ特有情報を使用することができる。例えば、ユーザ要求「私の誕生日パーティーに私の友人を招待してください(invite my friends to my birthday party)」について、自然言語処理モジュール732は、誰が「友人」であり、いつ及びどこで「誕生日パーティー」が催されるかを判定するために、そのような情報をユーザの要求内で明示的に提供するようにユーザに要求する代わりに、ユーザデータ748にアクセスすることができる。
【0201】
トークン文字列に基づいてオントロジを検索するその他の詳細は、その開示全体が参照により本明細書に組み込まれる、2008年12月22日に出願された「Method and Apparatus for Searching Using an Active Ontology」についての米国特許出願第12/341,743号に記載されている。
【0202】
いくつかの実施例では、自然言語処理モジュール732が、ユーザ要求に基づいて、実施可能な意図(又はドメイン)を特定すると、自然言語処理モジュール732は、特定された実施可能な意図を表すように、構造化されたクエリを生成することができる。いくつかの実施例では、構造化されたクエリは、実施可能な意図についてのドメイン内の1つ以上のノードについてのパラメータを含むことができ、パラメータの少なくともいくつかは、ユーザ要求で指定された特定の情報及び要件が追加される。例えば、ユーザは「私のために7時に寿司屋で夕食の予約を取ってください。(Make me a dinner reservation at a sushi place at 7.)」と言う場合がある。この場合、自然言語処理モジュール732は、ユーザ入力に基づいて、実施可能な意図を「レストラン予約」であると正確に特定することができる。オントロジに従って、「レストラン予約」ドメインについての構造化されたクエリは、{料理}、{時間}、{日付}、及び{参加人数}等のパラメータを含むことができる。いくつかの実施例では、発話入力、及びSTT処理モジュール730を使用して発話入力から導出されたテキストに基づいて、自然言語処理モジュール732は、レストラン予約ドメインについての部分的な構造化されたクエリを生成することができ、この場合、部分的な構造化されたクエリはパラメータ{料理=「寿司」}及び{時間=「午後7時」}を含む。しかしながら、この実施例では、ユーザの発話入力は、ドメインと関連付けられた構造化されたクエリを完了するために十分な情報を包含していない。従って、{参加人数}及び{日付}等のその他の必要パラメータは、現在利用可能な情報に基づいて、構造化されたクエリで指定されなくてもよい。いくつかの実施例では、自然言語処理モジュール732は、構造化されたクエリのいくつかのパラメータに、受信されたコンテクスト情報を追加することができる。例えば、いくつかの実施例では、ユーザが「私の近くの」寿司レストランを要求した場合、自然言語処理モジュール732は、構造化されたクエリにおける{ロケーション}パラメータにユーザデバイスからのGPS座標を追加することができる。
【0203】
いくつかの実施例では、自然言語処理モジュール732は、(任意の完了したパラメータを含む)生成した構造化されたクエリをタスクフロー処理モジュール736(「タスクフロープロセッサ」)に渡すことができる。タスクフロー処理モジュール736は、自然言語処理モジュール732から構造化されたクエリを受信し、必要な場合、構造化されたクエリを完了し、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するように構成されてもよい。いくつかの実施例では、これらのタスクを完了するために必要な様々な手順をタスクフローモデル754で設けられてもよい。いくつかの実施例では、タスクフローモデル754は、ユーザから追加情報を取得するための手順、及び実施可能な意図と関連付けられたアクションを実行するためのタスクフローを含むことができる。
【0204】
上記説明されたように、構造化されたクエリを完了するために、タスクフロー処理モジュール736は、追加情報を取得し、及び/又は潜在的に曖昧な発話入力の曖昧さをなくすために、ユーザとの追加のダイアログを開始することが必要となることがある。このような対話が必要となるとき、タスクフロー処理モジュール736は、ユーザとのダイアログに携わるためにタスクフロー処理モジュール734を呼び出すことができる。いくつかの実施例では、ダイアログフロー処理モジュール734は、どのように(及び/又はいつ)ユーザに追加情報を求めるべきかを判定することができ、ユーザ応答を受信することができ、これを処理することができる。I/O処理モジュール728を通じてユーザに質問を提供することができ、ユーザから回答を受信することができる。いくつかの実施例では、ダイアログフロー処理モジュール734は音声及び/又は視覚出力を介してユーザにダイアログ出力を提示することができ、発話応答又は物理的な(例えば、クリック)応答を介してユーザから入力を受信することができる。上記実施例を続けると、タスクフロー処理モジュール736が、ドメイン「レストラン予約」と関連付けられた構造化されたクエリについての「参加人数」及び「日付」情報を判定するためにダイアログフロー処理モジュール734を呼び出すとき、ダイアログフロー処理モジュール734は、「何人分ですか?」及び「どの日にしますか?」等の質問をユーザに渡すために生成することができる。ユーザから回答が受信されると、次に、ダイアログフロー処理モジュール734は、構造化されたクエリに、欠けている情報を追加し、又は構造化されたクエリから欠けている情報を完了するために、その情報をタスクフロー処理モジュール736に渡すことができる。
【0205】
タスクフロー処理モジュール736が、実施可能な意図についての構造化されたクエリを完了すると、タスクフロー処理モジュール736は、実施可能な意図と関連付けられた最終的なタスクの実行に進むことができる。従って、タスクフロー処理モジュール736は、構造化されたクエリ含まれる具体的なパラメータに従って、タスクフローモデルにおけるステップ及び命令を実行することができる。例えば、「レストラン予約」の実施可能な意図についてのタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に要求するためのステップ及び命令を含むことができる。例えば、{レストラン予約、レストラン=ABC Cafe、日付=3/12/2012、時間=午後7時、参加人数=5}、等の構造化されたクエリを使用して、タスクフロー処理モジュール736は、(1)ABC Cafeのサーバ、又はOPENTABLE(登録商標)等のレストラン予約システムにログオンするステップと、(2)ウェブサイト上のフォームに日付、時間、及び参加人数情報を入力するステップと、(3)フォームを提出し(4)ユーザのカレンダに予約のためのカレンダエントリを作成するステップとを実行することができる。
【0206】
いくつかの実施例では、タスクフロー処理モジュール736は、ユーザ入力で要求されたタスクを完了するために、又はユーザ入力で要求された情報の回答を提供するために、サービス処理モジュール738(「サービス処理モジュール」)の支援を採用することができる。例えば、サービス処理モジュール738は、電話をかけるため、カレンダエントリを設定するため、地図検索を呼び出すため、ユーザデバイス上にインストールされているその他のユーザアプリケーションを呼び出すか若しくはそれと対話するため、並びにサードパーティサービス(例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータル等)を呼び出すか若しくはそれと対話するために、タスクフロー処理モジュール736の代わりに動作することができる。いくつかの実施例では、各々のサービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース(application programming interface、API)は、サービスモデル756の間のそれぞれのサービスモデルによって指定されてもよい。サービス処理モジュール738は、サービスについての適切なサービスモデルにアクセスすることができ、サービスモデルに下従ったサービスによって必要とされるプロトコル及びAPIに従ってサービスの要求を生成することができる。
【0207】
例えば、レストランがオンライン予約サービスを有効にしている場合、レストランは、予約を行うための必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ通信するためのAPIを指定するサービスモデルを提出することができる。タスクフロー処理モジュール736によって要求されるとき、サービス処理モジュール738は、サービスモデルに記憶されているウェブアドレスを使用して、オンライン予約サービスとのネットワーク接続を確立することができ、必要な予約のパラメータ(例えば、時間、日付、参加人数)を、オンライン予約サービスのAPIに従った形式でオンライン予約インタフェースへ送信することができる。
【0208】
いくつかの実施例では、ユーザの意図を推定及び定義し、ユーザ意図を更に明らかにして絞り込むための情報を取得し、ユーザの意図を満たすように応答(即ち、ユーザへの出力又はタスクの完了)を最終的に生成するために、自然言語処理モジュール732、ダイアログフロー処理モジュール734、及びタスクフロー処理モジュール736を集合的かつ反復的に使用することができる。生成された応答は、ユーザの意図を少なくとも部分的に満たす、発話入力へのダイアログ応答とすることができる。更に、いくつかの実施例では、生成された応答を、発話出力として出力することができる。これらの実施例では、生成された応答を、発話合成モジュール740(例えば、発話合成器)に送信することができ、そこでは、発話形態のダイアログ応答を合成するためにそれが処理されてもよい。更なる他の実施例では、生成された応答は、発話入力のユーザ要求を満たすことに関連するデータコンテンツとすることができる。
【0209】
発話合成モジュール740は、ユーザに提示するために、発話出力を合成するように構成されてもよい。発話合成モジュール740は、デジタルアシスタントにより提供されたテキストに基づいて、発話出力を合成する。例えば、生成されたダイアログ応答は、テキスト文字列の形式にあってもよい。発話合成モジュール740は、テキスト文字列を可聴の発話出力に変換することができる。発話合成モジュール740は、テキストから発話出力を生成するために、波形接続合成、単位選択合成、ダイフォン合成、領域特化合成、フォルマント合成、調音合成、隠れマルコフモデル(HMM)ベースの合成、及びサイン波合成を含むが、これらには限定されない任意の適切な発話合成技術を使用することができる。いくつかの実施例では、発話合成モジュール740は、単語に対応する音素文字列に基づいて個々の単語を合成するように構成されてもよい。例えば、音素文字列は、生成したダイアログ応答における単語と関連付けられてもよい。音素文字列は、単語と関連付けられたメタデータに記憶されていてもよい。発話合成モデル740は、単語を発話形式で合成するために、メタデータにおける音素文字列を直接処理するように構成されてもよい。
【0210】
いくつかの実施例では、発話合成モジュール740を使用する代わりに(又は、それに加えて)、リモートデバイス(例えば、サーバシステム108)上で発話合成を実行することができ、合成された発話を、ユーザへの出力のために、ユーザデバイスに送信することができる。例えば、これは、デジタルアシスタントのための出力がサーバシステムにおいて生成される、いくつかの実装形態で行われてもよい。また、サーバシステムは概して、ユーザデバイスよりも多くの処理電力又はリソースを有するので、クライアント側合成での実用的な出力よりも高い品質の発話出力を取得することが可能となることがある。
【0211】
デジタルアシスタントに関する追加の詳細は、その開示全体が参照により本明細書に組み込まれる、2011年1月10日に出願された「Intelligent Automated Assistant」と題する米国実用特許出願第12/987,982号、2011年9月30日に出願された「Generating and Processing Data Items That Represent Tasks to Perform」と題された米国特許出願第13/251,088号に記載されている。
4.デジタルアシスタント−インテリジェント検索及びオブジェクト管理
【0212】
図8A〜8F、9A〜9H、10A〜10B、11A〜11D、12A〜12D、及び13A〜13Cは、デジタルアシスタントによる検索処理又はオブジェクト管理処理を使用してタスクを実行する機能性を示す。いくつかの実施例では、デジタルアシスタントシステム(例えば、デジタルアシスタントシステム700)は、様々な実施例に従ってユーザデバイスによって実装される。いくつかの実施例では、ユーザデバイス、サーバ(例えば、サーバ108)、又はそれらの組み合わせは、デジタルアシスタントシステム(例えば、デジタルアシスタントシステム700)を実装してもよい。ユーザデバイスは、例えば、デバイス104、200、又は400を使用して実装されてもよい。いくつかの実施例では、ユーザデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、又はタブレットコンピュータである。ユーザデバイスは、デスクトップ環境などのマルチタスキング環境で動作することができる。
【0213】
図8A〜8F、9A〜9H、10A〜10B、11A〜11D、12A〜12D、及び13A〜13Cを参照して、いくつかの実施例では、ユーザデバイスは、様々なユーザインタフェース(例えば、ユーザインタフェース810、910、1010、1110、1210、及び1310)を提供する。ユーザデバイスは、ユーザデバイスと関連付けられたディスプレイ(例えば、タッチ感知ディスプレイシステム212、ディスプレイ440)上で様々なユーザインタフェースを表示する。様々なユーザインタフェースは、異なる処理を表す1つ以上のアフォーダンス(例えば、検索処理を表すアフォーダンス820、920、1020、1120、1220、及び1320、並びにオブジェクト管理処理を表すアフォーダンス830、930、1030、1130、1230、及び1330)を提供する。1つ以上の処理は、ユーザによって直接又は間接的にインスタンス化されてもよい。例えば、ユーザは、キーボード、マウス、ジョイスティック、又は指などの入力デバイスを使用してアフォーダンスを選択することによって、1つ以上の処理をインスタンス化する。ユーザはまた、以下で更に詳細に説明されるように、発話入力を使用して1つ以上の処理をインスタンス化することができる。処理をインスタンス化することは、処理がまだ実行中でない場合に処理を呼び出すことを含む。処理の少なくとも1つのインスタンスが実行中である場合、処理をインスタンス化することは、処理の既存のインスタンスを実行すること、又は処理の新たなインスタンスを生成することを含む。例えば、オブジェクト管理処理をインスタンス化することは、オブジェクト管理処理を呼び出すこと、既存のオブジェクト管理処理を使用すること、又はオブジェクト管理処理の新たなインスタンス生成を含む。
【0214】
図8A〜8F、9A〜9H、10A〜10B、11A〜11D、12A〜12D、及び13A〜13Cに示されるように、ユーザデバイスは、ユーザインタフェース(例えば、ユーザインタフェース810、910、1010、1110、1210、及び1310)上で、デジタルアシスタントサービスをインスタンス化するためのアフォーダンス(例えば、アフォーダンス840、940、1040、1140、1240、及び1340)を表示する。アフォーダンスは、例えば、デジタルアシスタントを表すマイクロフォンアイコンとすることができる。アフォーダンスは、ユーザインタフェース上でいずれかの位置で表示されてもよい。例えば、アフォーダンスは、ユーザインタフェースの底部におけるドック(例えば、ドック808、908、1008、1108、1208、及び1308)上で、ユーザインタフェースの最上部におけるメニューバー(例えば、メニューバー806、906、1006、1106、1206、及び1306)上で、又はユーザインタフェースの右側における通知センタ等で表示されてもよい。アフォーダンスはまた、ユーザインタフェース上で動的に表示されてもよい。例えば、ユーザデバイスは、デジタルアシスタントサービスを便利にインスタンス化することができるように、アプリケーションユーザインタフェース(例えば、アプリケーションウィンドウ)の近くでアフォーダンスを表示する。
【0215】
いくつかの実施例では、デジタルアシスタントは、所定のフレーズを受信したことに応じてインスタンス化される。例えば、デジタルアシスタントは、「はい、アシスタント(Hey, Assistant)」、起きて、アシスタント(Wake up, Assistant)」、「聞いて、アシスタント(Listen up, Assistant)」、又は「OK、アシスタント(OK, Assistant)」等のフレーズを受信したことに応じて呼び出される。いくつかの実施例では、デジタルアシスタントは、アフォーダンスの選択を受信したことに応じてインスタンス化される。例えば、ユーザは、マウス、スタイラス、又は指等の入力デバイスを使用してアフォーダンス840、940、1040、1140、1240、及び/又は1340を選択する。ユーザデバイス上でデジタルアシスタントを提供することは、コンピューティングリソース(例えば、電力、ネットワーク帯域幅、メモリ、及びプロセッササイクル)を消費する。いくつかの実施例では、デジタルアシスタントは、ユーザがそれを呼び出すまで一時停止又はシャットダウンされる。いくつかの実施例では、デジタルアシスタントは、様々な期間の間にアクティブである。例えば、デジタルアシスタントは、様々なユーザインタフェースが表示され、ユーザデバイスがターンオンされ、ユーザデバイスが休止若しくはスリープしており、ユーザがログオフし、又はそれらの組み合わせの間、アクティブでいることがあり、ユーザの発話入力を監視していることがある。
【0216】
図8A〜8F、9A〜9H、10A〜10B、11A〜11D、12A〜12D、及び13A〜13Cを参照して、デジタルアシスタントは、ユーザから発話入力852、854、855、856、952、954、1052、1054、1152、1252、又は1352等の1つ以上の発話入力を受信する。ユーザは、例えば、検索処理又はオブジェクト管理処理を使用してタスクを実行する目的で様々な発話入力を提供する。いくつかの実施例では、デジタルアシスタントは、ユーザデバイスにおいてユーザから直接、又はユーザデバイスに通信可能に接続された別の電子デバイスを通じて間接的に発話入力を受信する。デジタルアシスタントは、例えば、ユーザデバイスのマイクロフォン(例えば、マイクロフォン213)を介してユーザから直接発話入力を受信する。ユーザデバイスは、ラップトップコンピュータ、デスクトップコンピュータ、タブレット、又はサーバ等、マルチタスキング環境で動作するように構成されたデバイスを含む。デジタルアシスタントはまた、ヘッドセット、スマートフォン、又はタブレット等の1つ以上の電子デバイスを通じて間接的に発話入力を受信することができる。例えば、ユーザは、ヘッドセット(図示しない)に発話してもよい。ヘッドセットは、例えば、ヘッドセットとユーザデバイスとの間のBluetooth接続を介して、ユーザから発話入力を受信し、発話入力又はその表現をユーザデバイスのデジタルアシスタントに送信する。
【0217】
図8A〜8F、9A〜9H、10A〜10B、11A〜11D、12A〜12D、及び13A〜13Cを参照して、いくつかの実施形態では、デジタルアシスタント(例えば、アフォーダンス840、940、1040、1140、1240、及び1340によって表される)は、ユーザデバイスと関連付けられたコンテクスト情報を特定する。コンテクスト情報は、例えば、ユーザ特有データ、1つ以上のオブジェクトと関連付けられたメタデータ、センサデータ、及びユーザデバイス構成データを含む。オブジェクトは、タスクを実行することと関連付けられた処理(例えば、オブジェクト管理処理)のターゲット若しくは構成要素、又はスクリーン上に現在表示されているグラフィカル要素とすることができ、オブジェクト又はグラフィカル要素は、現在フォーカスを有してもよく(例えば、現在選択されている)又は有してなくてもよい。例えば、オブジェクトは、ファイル(例えば、写真、ドキュメント)、フォルダ、通信(例えば、電子メール、メッセージ、通知、若しくはボイスメール)、連絡先、カレンダ、アプリケーション、又はオンラインリソース等を含むことができる。いくつかの実施例では、ユーザ特有データは、ログ情報、ユーザ優先度、ユーザデバイスとのユーザの対話の履歴等を含む。ログ情報は、処理で使用される直近のオブジェクト(例えば、プレゼンテーションファイル)を示す。いくつかの実施例では、1つ以上のオブジェクトと関連付けられたメタデータは、オブジェクトのタイトル、オブジェクトの時間情報、オブジェクトの著者、又はオブジェクトの概要等を含む。いくつかの実施例では、センサデータは、ユーザデバイスと関連付けられたセンサによって収集された様々なデータを含む。例えば、センサデータは、ユーザデバイスの物理的な位置を示す位置データを含む。いくつかの実施例では、ユーザデバイス構成データは、現在のデバイス構成を含む。例えば、デバイス構成は、ユーザデバイスがスマートフォン又はタブレット等の1つ以上の電子デバイスに通信可能に接続されることを示す。以下で更に詳細に説明されるように、ユーザデバイスは、コンテクスト情報を使用して1つ以上の処理を実行することができる。
【0218】
図8A〜8F、9A〜9H、10A〜10B、11A〜11D、12A〜12D、及び13A〜13Cを参照して、発話入力を受信したことに応じて、デジタルアシスタントは、発話入力に基づいてユーザ意図を判定する。上記説明されたように、いくつかの実施例では、デジタルアシスタントは、I/O処理モジュール(例えば、図7Bに示されるI/O処理モジュール728)、STT処理モジュール(例えば、図7Bに示されるSTT処理モジュール730)、及び自然言語処理モジュール(例えば、図7Bに示される自然言語処理モジュール732)を介して発話入力を処理する。I/O処理モジュールは、発話入力を発話−テキスト変換のためのSTT処理モジュール(又は、発話認識器)に転送する。発話−テキスト変換は、発話入力に基づいてテキストを生成する。上記説明されたように、STT処理モジュールは、単語又トークンの列(「トークン列」)を生成し、トークン列を自然言語処理モジュールに提供する。自然言語処理モジュールは、テキストの自然言語処理を実行し、自然言語処理の結果に基づいてユーザ意図を判定する。例えば、自然言語処理モジュールは、トークン列をデジタルアシスタントによって認識された1つ以上の実施可能な意図と関連付けることを試みてもよい。説明されるように、自然言語処理モジュールがユーザ入力に基づいて実施可能な意図を特定すると、それは、特定された実施可能な意図を表すために構造化されたクエリを生成する。構造化されたクエリは、実施可能な意図と関連付けられた1つ以上のパラメータを含む。1つ以上のパラメータは、実施可能な意図に基づくタスクの実行を促進するために使用される。
【0219】
いくつかの実施形態では、デジタルアシスタントは更に、ユーザ意図が、検索処理を使用して又はオブジェクト管理処理を使用してタスクを実行することであるかを判定する。検索処理は、ユーザデバイスの内部又は外部に記憶されたデータを検索するように構成されている。オブジェクト管理処理は、ユーザデバイスと関連付けられたオブジェクトを管理するように構成されている。ユーザ意図の判定の様々な実施例は、図8A〜8F、9A〜9H、10A〜10B、11A〜11D、12A〜12D、及び13A〜13Cを参照して以下で更に詳細に提供される。
【0220】
図8Aを参照して、いくつかの実施例では、ユーザデバイスは、デジタルアシスタントをインスタンス化するために発話入力852をユーザから受信する。発話入力852は、例えば、「はい、アシスタント。」を含む。発話入力に応じて、ユーザデバイスは、デジタルアシスタントが後続の発話入力をアクティブに監視しているように、アフォーダンス840又は841によって表されるデジタルアシスタントをインスタンス化する。いくつかの実施例では、デジタルアシスタントは、それがインスタンス化されることを示す発話出力872を提供する。例えば、発話出力872は、「さあ、聞いていますよ。(Go ahead, I am listening.)」を含む。いくつかの実施例では、ユーザデバイスは、デジタルアシスタントをインスタンス化するためにアフォーダンス840又はアフォーダンス841の選択をユーザから受信する。アフォーダンスの選択は、マウス、スタイラス、又は指等の入力デバイスを使用することによって実行される。
【0221】
図8Bを参照して、いくつかの実施例では、デジタルアシスタントは、発話入力854を受信する。発話入力854は、例えば、「検索処理を始めて、AAPLの今日の株価を探してください。(Open the searching process and find the AAPL stock price today.)」、又は単純に「AAPLの今日の株価を見せてください。(show me the AAPL stock price today.)」を含む。発話入力854に基づいて、デジタルアシスタントはユーザ意図を判定する。例えば、ユーザ意図を判定するために、デジタルアシスタントは、実施可能な意図がオンライン情報を取得しており、この実施可能な意図と関連付けられた1つ以上のパラメータが「AAPLの今日の株価」及び「今日」を含むと判定する。
【0222】
説明されるように、いくつかの実施例では、デジタルアシスタントは更に、ユーザ意図が、検索処理を使用して又はオブジェクト管理処理を使用してタスクを実行することであるかを判定する。いくつかの実施形態では、判定を行うために、デジタルアシスタントは、発話入力が検索処理又はオブジェクト管理処理を表す1つ以上のキーワードを含むかを判定する。例えば、デジタルアシスタントは、ユーザ意図がタスクを実行するために検索処理を使用することであることを示す、キーワード又は「検索処理を始めてください。(open the searching process.)」等のフレーズを発話入力854が含むと判定する。結果として、デジタルアシスタントは、ユーザ意図が検索処理を使用してタスクを実行することであると判定する。
【0223】
図8Bに示されるように、ユーザ意図が検索処理を使用してタスクを実行することであるとの判定に従って、デジタルアシスタントは、検索処理を使用してタスクを実行する。説明されるように、デジタルアシスタントの自然言語処理モジュールは、ユーザ意図に基づいて構造化されたクエリを生成し、生成された構造化されたクエリをタスクフロー処理モジュール(例えば、タスクフロー処理モジュール736)に渡す。タスクフロー処理モジュールは、構造化されたクエリを自然言語処理モジュールから受信し、必要な場合に構造化されたクエリを完了し、ユーザの最終的な要求を「完了する」ために必要なアクションを実行する。検索処理を使用してタスクを実行することは、例えば、少なくとも1つのオブジェクトを検索することを含む。いくつかの実施形態では、少なくとも1つのオブジェクトは、フォルダ、ファイル(例えば、写真、音声、ビデオ)、通信(例えば、電子メール、メッセージ、通知、ボイスメール)、連絡先、カレンダ、アプリケーション(例えば、Keynote、Number、iTunes、Safari)、オンライン情報のソース(例えば、Google、Yahoo、Bloomberg)、又はそれらの組み合わせを含む。いくつかの実施例では、オブジェクトを検索することは、オブジェクトと関連付けられたメタデータに基づいている。例えば、ファイル又はフォルダを検索することは、タグ、日付、時間、著者、タイトル、ファイルのタイプ、サイズ、ページ数、及び/又はフォルダ若しくはファイルと関連付けられたファイル位置等のメタデータを使用することができる。いくつかの実施例では、ファイル又はフォルダは、ユーザデバイスの内部又は外部に記憶されている。例えば、ファイル又はフォルダは、ユーザデバイスのハードディスクに記憶されていてもよく、又はクラウドサーバに記憶されていてもよい。いくつかの実施例では、通信を検索することは、通信と関連付けられたメタデータに基づいている。例えば、電子メールを検索することは、電子メールの送信者、電子メールの受信者、又は電子メール送信/受信日等のメタデータを使用する。
【0224】
図8Bに示されるように、ユーザ意図が検索処理を使用してAAPLの株価を取得することであるとの判定に従って、デジタルアシスタントは、検索を実行する。例えば、デジタルアシスタントは、アフォーダンス820によって表される検索処理をインスタンス化し、検索処理に今日のAAPLの株価を検索させる。いくつかの実施例では、デジタルアシスタントは更に、検索処理に、発話入力854(例えば、「検索処理を始めて、AAPLの今日の株価を探してください。(Open the searching process and find the AAPL stock price today.)」)に対応するテキストを提供するユーザインタフェース822(例えば、スニペット又はウィンドウ)を表示させる。
【0225】
図8Cを参照して、いくつかの実施形態では、デジタルアシスタントは、検索処理を使用してタスクを実行した結果に基づいて応答を提供する。図8Cに示されるようにAAPLの株価を検索した結果として、デジタルアシスタントは、検索処理を使用してタスクを実行した結果を提供するユーザインタフェース824(例えば、スニペット又はウィンドウ)を表示する。いくつかの実施形態では、ユーザインタフェース824は、別々のユーザインタフェースとしてユーザインタフェース822内に位置する。いくつかの実施形態では、ユーザインタフェース824及び822は、単一のユーザインタフェースとして共に統合される。ユーザインタフェース824上で、AAPLの株価の検索結果が表示される。いくつかの実施形態では、ユーザインタフェース824は更に、アフォーダンス831及び833を提供する。アフォーダンス831によって、ユーザインタフェース824を閉じることが可能になる。例えば、デジタルアシスタントがアフォーダンス831のユーザの選択を受信する場合、ユーザインタフェース824は、ユーザデバイスのディスプレイから見えなくなり、又は閉じられる。アフォーダンス833によって、ユーザインタフェース824上で表示された検索結果を移動又は共有することが可能になる。例えば、デジタルアシスタントがアフォーダンス833のユーザの選択を受信する場合、それは、ユーザインタフェース824(又は、その検索結果)移動し、又は通知アプリケーションと共有する処理(例えば、オブジェクト管理処理)をインスタンス化する。図8Cに示されるように、デジタルアシスタントは、AAPLの株価の検索結果を提供するために、通知アプリケーションと関連付けられたユーザインタフェース826を表示する。いくつかの実施形態では、ユーザインタフェース826は、アフォーダンス827を表示する。アフォーダンス827によって、ユーザがユーザインタフェース826内でコンテンツ全体(例えば、複数の通知)を参照することができるように、ユーザインタフェース826内でのスクロールすることが可能になり、並びに/又はアフォーダンス827は、その全体の長さ及び/若しくは幅に対してドキュメントのその相対的な位置を示す。いくつかの実施形態では、ユーザインタフェース826は、デジタルアシスタントによって記憶された結果並びに/又はダイアログ履歴(例えば、現在及び/若しくは過去の検索処理から取得された検索結果)を表示する。更に、いくつかの実施例では、タスクを実行した結果は、時間と共に動的に更新される。例えば、AAPLの株価は、時間と共に動的に更新されてもよく、ユーザインタフェース826上で表示されてもよい。
【0226】
いくつかの実施形態では、デジタルアシスタントはまた、検索結果に対応する発話出力を提供する。例えば、デジタルアシスタント(例えば、アフォーダンス840によって表される)は、「今日のAAPLの価格は$100.00です。(Today's AAPL price is $100.00.)」を含む発話出力874を提供する。いくつかの実施例では、ユーザインタフェース822は、発話出力874に対応するテキストを含む。
【0227】
図8Dを参照して、いくつかの実施例では、デジタルアシスタントは、後続の発話入力に応じて、ユーザインタフェース824上で表示された検索結果を移動又は共有する処理(例えば、オブジェクト管理処理)をインスタンス化する。例えば、デジタルアシスタントは、「AAPLの株価を私のメモに複製してください。(Copy the AAPL stock price to my notes.)」等の発話入力855を受信する。これに応じて、デジタルアシスタントは、検索結果(例えば、AAPLの株価)をユーザのメモに移動又は複製する処理をインスタンス化する。図8Dに示されるように、いくつかの実施例では、デジタルアシスタントは更に、ユーザのメモに複製又は移動された検索結果を提供するユーザインタフェース825を表示する。いくつかの実施例では、デジタルアシスタントは更に、「OK、AAPLの株価があなたのメモに複製されます。(OK, the AAPL stock price is copied to your notes.)」等の発話出力875を提供する。いくつかの実施例では、ユーザインタフェース822は、発話出力875に対応するテキストを含む。
【0228】
図8Eを参照して、いくつかの実施例では、デジタルアシスタントは、ユーザ意図がオブジェクト管理処理を使用してタスクを実行することであると判定し、オブジェクト管理処理を使用してタスクを実行する。例えば、デジタルアシスタントは、「オブジェクト管理処理を始めて、コロラド旅行からの全ての写真を見せてください。(Open the object managing process and show me all the photos from my Colorado trip.)」、又は単純に「コロラド旅行からの全ての写真を見せてください。(Show me all the photos from my Colorado trip.)」等の発話入力856を受信する。発話入力856及びコンテクスト情報に基づいて、デジタルアシスタントは、ユーザ意図を判定する。例えば、デジタルアシスタントは、実施可能な意図が写真を表示することであると判定し、「全て」、及び「コロラド旅行」等の1つ以上のパラメータを判定する。デジタルアシスタントは更に、コンテクスト情報を使用して、どの写真がユーザのコロラド旅行に対応するかを判定する。説明されるように、コンテクスト情報は、ユーザ特有データ、1つ以上のオブジェクトのメタデータ、センサデータ、及び/又はデバイス構成データを含む。実施例として、1つ以上のファイル(例えば、ユーザインタフェース832に表示されたファイル1、ファイル2、及びファイル3)と関連付けられメタデータは、ファイル名が単語「コロラド」又はコロラドの都市名(例えば、「デンバー」)を含むことを示す。メタデータはまた、フォルダ名が単語「コロラド」又はコロラドの都市名(例えば、「デンバー」)を含むことを示す。別の実施例としてセンサデータ(例えば、GPSデータ)は、ユーザが或る期間の間にコロラド内で旅行をしていたことを示す。結果として、ユーザが特定の期間の間に撮っていたいずれかの写真は、ユーザのコロラド旅行の間に撮られた写真である。また、写真それ自体は、それが撮られた位置と写真とを関連付ける位置情報が付加された(geotagged)メタデータを含んでもよい。コンテクスト情報に基づいて、デジタルアシスタントは、ユーザ意図が、例えば、フォルダ名「コロラド旅行」を有するフォルダに記憶された写真を表示し、又はユーザがコロラド内で旅行していた期間の間に撮られた写真を表示することであると判定する。
【0229】
説明されるように、いくつかの実施例では、デジタルアシスタントは、ユーザ意図が、検索処理を使用して又はオブジェクト管理処理を使用してタスクを実行することであるかを判定する。そのような判定を行うために、デジタルアシスタントは、発話入力が検索処理又はオブジェクト管理処理を表す1つ以上のキーワードを含むか否かを判定する。例えば、デジタルアシスタントは、発話入力856が、ユーザ意図がタスクを実行するためにオブジェクト管理処理を使用することであることを示す、キーワード又は「オブジェクト管理処理を始めてください。(open the object managing process.)」等のフレーズを含むと判定する。
【0230】
ユーザ意図がオブジェクト管理処理を使用してタスクを実行することであると判定したことに従って、デジタルアシスタントは、オブジェクト管理処理を使用してタスクを実行する。例えば、デジタルアシスタントは、オブジェクト管理処理を使用して少なくとも1つのオブジェクトを検索する。いくつかの実施例では、少なくとも1つのオブジェクトは、フォルダ又はファイルのうちの少なくとも1つを含む。ファイルは、写真、音声(例えば、歌)、又はビデオ(例えば、動画)のうちの少なくとも1つを含むことができる。いくつかの実施例では、ファイル又はフォルダを検索することは、フォルダ又はファイルと関連付けられたメタデータに基づいている。例えば、ファイル又はフォルダを検索することは、タグ、日付、時間、著者、タイトル、ファイルのタイプ、サイズ、ページ数、及び/又はフォルダ若しくはファイルと関連付けられたファイル位置等のメタデータを使用する。いくつかの実施例では、ファイル又はフォルダは、ユーザデバイスの内部又は外部に記憶されていてもよい。例えば、ファイル又はフォルダは、ユーザデバイスのハードディスクに記憶されていてもよく、又はクラウドサーバに記憶されていてもよい。
【0231】
図8Eに示されるように、ユーザ意図が、例えば、フォルダ名「コロラド旅行」を有するフォルダに記憶された写真を表示し、又はユーザがコロラド内で旅行していた期間の間に撮られた写真を表示することであるとの判定に従って、デジタルアシスタントは、オブジェクト管理処理を使用してタスクを実行する。例えば、デジタルアシスタントは、アフォーダンス830によって表されるオブジェクト管理処理をインスタンス化し、オブジェクト管理処理にユーザのコロラド旅行からの写真を検索させる。いくつかの実施例では、デジタルアシスタントはまた、オブジェクト管理処理に、ユーザの発話入力856のテキストを提供するスニペット又はウィンドウ(図示しない)を表示させる。
【0232】
図8Fを参照して、いくつかの実施形態では、デジタルアシスタントは更に、オブジェクト管理処理を使用して、タスクを実行した結果に基づいて応答を提供する。図8Fに示されるように、ユーザのコロラド旅行の写真を検索した結果として、デジタルアシスタントは、オブジェクト管理処理を使用して、タスクを実行した結果を提供するユーザインタフェース834(例えば、スニペット又はウィンドウ)を表示する。例えば、ユーザインタフェース834上で、写真のプレビューが表示される。いくつかの実施例では、デジタルアシスタントは、写真をドキュメントに挿入すること、又は写真を電子メールに添付すること等、写真に関する追加のタスクを実行する処理(例えば、オブジェクト管理処理)をインスタンス化する。以下で更に詳細に説明されるように、デジタルアシスタントは、ユーザの追加の発話入力に応じて、追加のタスクを実行する処理をインスタンス化することができる。また、デジタルアシスタントは、「コロラド旅行からの写真を電子メールで母に送信してください。(send the photos from my Colorado trip to my Mom by email.)」等の単一の発話入力に応じて、複数のタスクを実行することができる。デジタルアシスタントはまた、入力デバイス(例えば、1つ以上のアフォーダンスを選択し、又はドラッグ及びドロップ操作を実行するマウス入力)を使用して、ユーザの入力に応じてそのような追加のタスクを実行する処理をインスタンス化することができる。いくつかの実施形態では、デジタルアシスタントは更に、結果に対応する発話出力を提供する。例えば、デジタルアシスタントは、「あなたのコロラド旅行からの写真がここにあります。(Here are the photos from your Colorado trip.)」を含む発話出力876を提供する。
【0233】
図9Aを参照して、いくつかの実施例では、ユーザの発話入力は、ユーザ意図が検索処理又はオブジェクト管理処理を使用することであるかを示す1つ以上のキーワードを含まなくてもよい。例えば、ユーザは、「今日のウォリアーズの試合のスコアは何ですか?(What is the score of today's Warriors game?)」等の発話入力952を提供する。発話入力952は、「検索処理」又は「オブジェクト管理処理」を示すキーワードを含まない。結果として、キーワードは、ユーザ意図が、検索処理を使用して又はオブジェクト管理処理を使用してタスクを実行することであるかを判定するために、デジタルアシスタントに利用可能でないことがある。
【0234】
いくつかの実施形態では、ユーザ意図が、検索処理を使用して又はオブジェクト管理処理を使用してタスクを実行することであるかを判定するために、デジタルアシスタントは、タスクが発話入力に基づいて検索することと関連付けられるか否かを判定する。いくつかの実施例では、検索することと関連付けられたタスクは、検索処理又はオブジェクト管理処理のいずれかによって実行されてもよい。例えば、検索処理及びオブジェクト管理処理の両方は、フォルダ及びファイルを検索することができる。いくつかの実施例では、検索処理は更に、オンライン情報ソース(例えば、ウェブサイト)、通信(例えば、電子メール)、連絡先、又はカレンダ等を含む様々なオブジェクトを検索することができる。いくつかの実施例では、オブジェクト管理処理は、オンライン情報ソース等の或るオブジェクトを検索するように構成されなくてもよい。
【0235】
タスクが検索することと関連付けられるとの判定に従って、デジタルアシスタントは更に、タスクを実行することが検索処理を必要とするか否かを判定する。説明されるように、タスクが検索することと関連付けられる場合、検索処理又はオブジェクト管理処理のいずれかは、タスクを実行するために使用されてもよい。しかしながら、オブジェクト管理処理は、或るオブジェクトを検索するように構成されなくてもよい。結果として、ユーザ意図が検索処理又はオブジェクト管理処理を使用することであるか否かを判定するために、デジタルアシスタントは更に、タスクが検索処理を必要とするか否かを判定する。例えば、図9Aに示されるように、発話入力952に基づいて、デジタルアシスタントは、ユーザ意図が、例えば、今日のウォリアーズの試合のスコアを取得することであると判定する。ユーザ意図に従って、デジタルアシスタントは更に、タスクを実行することがオンライン情報ソースを検索することを必要とし、従って、検索することと関連付けられると判定する。デジタルアシスタントは更に、タスクを実行することが検索処理を必要とするか否かを判定する。説明されるように、いくつかの実施例では、検索処理は、ウェブサイト等のオンライン情報ソースを検索するように構成されているが、オブジェクト管理処理は、そのようなオンライン情報ソースを検索するように構成されなくてもよい。結果として、デジタルアシスタントは、オンライン情報ソースを検索することが(例えば、スコアを取得するためにウォリアーズのウェブサイトを検索する)検索処理を必要とすると判定する。
【0236】
図9Bを参照して、いくつかの実施形態では、タスクを実行することが検索処理を必要とするとの判定に従って、デジタルアシスタントは、検索処理を使用してタスクを実行する。例えば、今日のウォリアーズの試合のスコアを検索することが検索処理を必要とするとの判定に従って、デジタルアシスタントは、アフォーダンス920によって表される検索処理をインスタンス化し、検索処理に今日のウォリアーズの試合のスコアを検索させる。いくつかの実施例では、デジタルアシスタントは更に、検索処理にユーザの発話入力952(例えば、「今日のウォリアーズの試合のスコアは何ですか?」のテキストを提供するユーザインタフェース922(例えば、スニペット又はウィンドウ)を表示させる。ユーザインタフェース922は、1つ以上のアフォーダンス921及び927を含む。上記説明されたのと同様に、アフォーダンス921(例えば、閉ボタン)によって、ユーザインタフェース922を閉じることが可能になり、アフォーダンス927(例えば、スクロールバー)によって、ユーザがユーザインタフェース922内でコンテンツを参照することができるようにユーザインタフェース922内でスクロールすることが可能になる。
【0237】
図9Bを参照して、いくつかの実施例では、検索結果に基づいて、デジタルアシスタントは更に、1つ以上の応答を提供する。図9Bに示されるように、今日のウォリアーズの試合のスコアを検索した結果として、デジタルアシスタントは、検索処理を使用してタスクを実行した結果を提供するユーザインタフェース924(例えば、スニペット又はウィンドウ)を表示する。いくつかの実施形態では、ユーザインタフェース924は、別々のユーザインタフェースとしてユーザインタフェース922内に位置する。いくつかの実施形態では、ユーザインタフェース924及び922は、単一のユーザインタフェースとして共に統合される。いくつかの実施例では、デジタルアシスタントは、現在の検索結果(例えば、ウォリアーズの試合のスコア)を提供するユーザインタフェース924を、前の検索結果(例えば、AAPLの株価)を提供する別のユーザインタフェース(例えば、図8Cに示されるユーザインタフェース824)と共に表示する。いくつかの実施形態では、デジタルアシスタントは、現在の検索結果を提供するユーザインタフェース924のみを表示し、前の検索結果を提供する別のユーザインタフェースを表示しない。図9Bに示されるように、デジタルアシスタントは、現在の検索結果(例えば、ウォリアーズの試合のスコア)を提供するためのユーザインタフェース924のみを表示する。いくつかの実施例では、アフォーダンス927(例えば、スクロールバー)によって、ユーザが前の検索結果を参照することができるように、ユーザインタフェース922内でスクロールすることが可能になる。更に、いくつかの実施例では、前の検索結果は、例えば、株価、スポーツのスコア、天気予報等が時間と共に更新されるように、動的に更新又はリフレッシュ。
【0238】
図9Bに示されるように、ユーザインタフェース924上で、今日のウォリアーズの試合のスコアの検索結果が表示される(例えば、ウォリアーズ104−89キャバリアーズ)。いくつかの実施形態では、ユーザインタフェース924は更に、アフォーダンス923及び925を提供する。アフォーダンス923によって、ユーザインタフェース924を閉じることが可能になる。例えば、デジタルアシスタントがアフォーダンス923のユーザの選択を受信する場合、ユーザインタフェース924は、ユーザデバイスのディスプレイから見えなくなり、又は閉じられる。アフォーダンス925によって、ユーザインタフェース924上で表示された検索結果を移動又は共有することが可能になる。例えば、デジタルアシスタントがアフォーダンス925のユーザの選択を受信する場合、それは、ユーザインタフェース924(又は、その検索結果)を移動し、又は通知アプリケーションと共有する。図9Bに示されるように、デジタルアシスタントは、ウォリアーズの試合のスコアの検索結果を提供するための、通知アプリケーションと関連付けられたユーザインタフェース926を表示する。説明されるように、タスクを実行した結果は、時間と共に動的に更新される。例えば、ウォリアーズの試合のスコアは、ゲームが進行中の間に時間と共に動的に更新されてもよく、ユーザインタフェース924(例えば、スニペット若しくはウィンドウ)及び/又はユーザインタフェース926(例えば、通知アプリケーションユーザインタフェース)上で表示されてもよい。いくつかの実施形態では、デジタルアシスタントは更に、検索結果に対応する発話出力を提供する。例えば、アフォーダンス940又は941によって表されるデジタルアシスタントは、「ウォリアーズがキャバリアーズを104−89で破りました。(Warriors beats Cavaliers, 104-89.)」等の発話出力972を提供する。いくつかの実施例では、ユーザインタフェース922(例えば、スニペット又はウィンドウ)は、発話出力972に対応するテキストを提供する。
【0239】
上記説明されたように、いくつかの実施形態では、デジタルアシスタントは、タスクが検索することと関連付けられるか否かを判定し、そのような判定に従って、デジタルアシスタントは、タスクが検索処理を必要とするか否かを判定する。図9Cを参照して、いくつかの実施形態では、デジタルアシスタントは、タスクを実行することが検索処理を必要としないと判定する。例えば、図9Cに示されるように、デジタルアシスタントは、「支出と呼ばれる全てのファイルを見せてください。(Show me all the files called Expenses.)」等の発話入力954を受信する。発話入力954及びコンテクスト情報に基づいて、デジタルアシスタントは、ユーザ意図がそれらのファイル名、メタデータ、又はファイルの中身等に含まれる単語「支出」(又は、それの一部、変形、言い換え)を有する全てのファイルを表示することであると判定する。ユーザ意図に従って、デジタルアシスタントは、実行されるタスクが単語「支出」と関連付けられた全てのファイルを検索することを含むと判定する。結果として、デジタルアシスタントは、タスクを実行することが検索することと関連付けられていると判定する。上記説明されたように、いくつかの実施例では、検索処理及びオブジェクト管理処理は両方、ファイルの検索を実行することができる。結果として、デジタルアシスタントは、単語「支出」と関連付けられた全てのファイルを検索するタスクを実行することが検索処理を必要としないと判定する。
【0240】
図9Dを参照して、いくつかの実施例では、タスクを実行することが検索処理を必要としないとの判定に従って、デジタルアシスタントは、所定の構成に基づいて、タスクが検索処理又はオブジェクト管理処理を使用して実行されるか否かを判定する。例えば、検索処理及びオブジェクト管理処理の両方がタスクを実行することができる場合、所定の構成は、タスクが検索処理を使用して実行されることを示すことができる。所定の構成は、ユーザ優先度又はユーザ特有データ等のコンテクスト情報を使用して生成及び更新されてもよい。例えば、デジタルアシスタントは、特定のユーザについて、履歴的に、検索処理がファイル検索のためにオブジェクト管理処理よりも多くの頻度で選択されたと判定する。結果として、デジタルアシスタントは、検索処理がファイルを検索するためのデフォルトの処理であることを示すために所定の構成を生成又は更新する。いくつかの実施例では、デジタルアシスタントは、オブジェクト管理処理がデフォルトの処理であることを示すために所定の構成を生成又は更新する。
【0241】
図9Dに示されるように、所定の構成に基づいて、デジタルアシスタントは、単語「支出」と関連付けられた全てのファイルを検索するタスクが検索処理を使用して実行されることであると判定する。結果として、デジタルアシスタントは、検索処理を使用して単語「支出」と関連付けられた全てのファイルの検索を実行する。例えば、デジタルアシスタントは、ユーザインタフェース910上で表示されたアフォーダンス920によって表される検索処理をインスタンス化し、検索処理に、単語「支出」と関連付けられた全てのファイルを検索させる。いくつかの実施例では、デジタルアシスタントは更に、ユーザにタスクが実行されていることを通知する発話出力974を提供する。発話出力974は、例えば、「OK、『支出』と呼ばれる全てのファイルを検索します。(OK, searching all files called 'Expenses'.)」を含む。いくつかの実施例では、デジタルアシスタントは更に、検索処理に、発話入力954及び発話出力974に対応するテキストを提供するユーザインタフェース928(例えば、スニペット又はウィンドウ)を表示させる。
【0242】
図9Eを参照して、いくつかの実施形態では、デジタルアシスタントは更に、検索処理を使用して、タスクを実行した結果に基づいて1つ以上の応答を提供する。図9Eに示されるように、単語「支出」と関連付けられた全てのファイルを検索した結果として、デジタルアシスタントは、検索結果を提供するユーザインタフェース947(例えば、スニペット又はウィンドウ)を表示する。いくつかの実施形態では、ユーザインタフェース947は、別々のユーザインタフェースとしてユーザインタフェース928内に位置する。いくつかの実施形態では、ユーザインタフェース947及び928は、単一のユーザインタフェースとして共に統合される。ユーザインタフェース947上で、単語「支出」と関連付けられたファイルのリストが表示される。いくつかの実施形態では、デジタルアシスタントは更に、検索結果に対応する発話出力を提供する。例えば、アフォーダンス940又は941によって表されるデジタルアシスタントは、「支出と呼ばれる全てのファイルがここにあります。(Here are all the files called Expenses.)」等の発話出力976を提供する。いくつかの実施例では、デジタルアシスタントは更に、ユーザインタフェース928上で、発話出力976に対応するテキストを提供する。
【0243】
いくつかの実施形態では、デジタルアシスタントは、検索処理を使用してタスクを実行した結果と関連付けられた1つ以上のリンクを提供する。リンクによって、検索結果を使用して処理をインスタンス化する(例えば、ファイルを開く、オブジェクト管理処理を呼び出す)ことが可能になる。図9Eに示されるように、ユーザインタフェース947上で、ファイルのそれらのファイル名によって表されるリスト(例えば、支出ファイル1、支出ファイル2、支出ファイル3)は、リンクと関連付けられてもよい。実施例として、リンクは、各々のファイル名の側面上で表示される。別の実施例として、ファイル名は、ファイル名がリンクと関連付けられることを示す特定の色(例えば、青)で表示される。いくつかの実施例では、リンクと関連付けられたファイル名は、ユーザインタフェース947上で表示された他の項目と同一の色で表示される。
【0244】
説明されるように、リンクによって、検索結果を使用して処理をインスタンス化することが可能になる。処理をインスタンス化することは、処理がまだ実行中でない場合に処理を呼び出すことを含む。処理の少なくとも1つのインスタンスが実行中である場合、処理をインスタンス化することは、処理の既存のインスタンスを実行すること、又は処理の新たなインスタンスを生成することを含む。例えば、オブジェクト管理処理をインスタンス化することは、オブジェクト管理処理を呼び出すこと、既存のオブジェクト管理処理を使用すること、又はオブジェクト管理処理の新たなインスタンスを生成することを含む。図9E及び9Fに示されるように、ユーザインタフェース947上で表示されたリンクによって、リンクと関連付けられたオブジェクト(例えば、ファイル)を管理することが可能になる。例えば、ユーザインタフェース947は、ファイル(例えば、「支出ファイル3」)と関連付けられたリンクのユーザ選択(例えば、カーソル934による選択)を受信する。それに応じて、デジタルアシスタントは、ファイルの管理を可能にする、アフォーダンス930によって表されるオブジェクト管理処理をインスタンス化する。図9Fに示されるように、デジタルアシスタントは、リンクと関連付けられたファイル(例えば、「支出ファイル3」)を含むフォルダを提供するユーザインタフェース936(例えば、スニペット又はウィンドウ)を表示する。ユーザインタフェース936を使用して、デジタルアシスタントは、ファイルに関して1つ以上の追加のタスク(例えば、複製すること、編集すること、参照すること、移動すること、又は圧縮すること等)を実行するオブジェクト管理処理をインスタンス化する。
【0245】
再度図9Eを参照して、いくつかの実施例では、ユーザインタフェース947上で表示されたリンクによって、オブジェクトを直接参照及び/又は編集することが可能になる。例えば、デジタルアシスタントは、ユーザインタフェース947を介して、ファイル(例えば、「支出ファイル3」)と関連付けられたリンクの選択(例えば、カーソル934による選択)を受信する。それに応じて、デジタルアシスタントは、ファイルを参照及び/又は編集する処理(例えば、ドキュメント参照/編集処理)をインスタンス化する。いくつかの実施例では、デジタルアシスタントは、オブジェクト管理処理インスタンス化することなく、ファイルを参照及び/又は編集する処理をインスタンス化する。例えば、デジタルアシスタントは、支出ファイル3を参照及び/又は編集するナンバー(Number)処理又はエクセル(Excel)処理を直接インスタンス化する。
【0246】
図9E及び9Gを参照して、いくつかの実施例では、デジタルアシスタントは、検索結果を改善する処理(例えば、検索処理)をインスタンス化する。図9E及9Gに示されるように、ユーザは、ユーザインタフェース947上で表示された検索結果を改善することを望むことがある。例えば、ユーザは、検索結果からの1つ以上のファイルを選択することを望むことがある。いくつかの実施例では、デジタルアシスタントは、ユーザから、「ケビンがちょうど私に送信したものは、ドラフトでタグ付けしたものです。(Just the ones Kevin sent me that I tagged with draft.)」等の発話入力977を受信する。発話入力977及びコンテクスト情報に基づいて、デジタルアシスタントは、ユーザ意図が、ケビンから送信されており、ドラフトタグと関連付けられた支出ファイルのみを表示することであると判定する。ユーザ意図に基づいて、デジタルアシスタントは、検索結果を改善する処理(例えば、検索処理)をインスタンス化する。例えば、図9Gに示されるように、検索結果に基づいて、デジタルアシスタントは、支出ファイル1及び支出ファイル2がケビンからユーザに送信されており、タグ付けされたと判定する。結果として、デジタルアシスタントは、それらの2つのファイルをユーザインタフェース947上で表示することを続け、支出ファイル3をユーザインタフェース947から除去することを続ける。いくつかの実施例では、デジタルアシスタントは、「あなたがドラフトでタグ付けし、ケビンがちょうどあなたに送信したものがここにあります。(Here are just the ones Kevin sent you that you tagged with draft.)」等の発話出力978を提供する。デジタルアシスタントは更に、ユーザインタフェース928上で発話出力978に対応するテキストを提供する。
【0247】
図9Hを参照して、いくつかの実施例では、デジタルアシスタントは、オブジェクト管理タスク(例えば、複製すること、移動すること、共有すること等)を実行する処理(例えば、オブジェクト管理処理)をインスタンス化する。例えば、図9Hに示されるように、デジタルアシスタントは、ユーザから、「支出ファイル1をドキュメントフォルダに移動してください。(Move the Expenses file 1 to Documents folder.)」等の発話入力984を受信する。発話入力984及びコンテクスト情報に基づいて、デジタルアシスタントは、ユーザ意図、が支出ファイル1をその現在のフォルダからドキュメントフォルダに複製又は移動することであると判定する。ユーザ意図に従って、デジタルアシスタントは、支出ファイル1をその現在のフォルダからドキュメントフォルダに複製又は移動する処理(例えば、オブジェクト管理処理)をインスタンス化する。いくつかの実施例では、デジタルアシスタントは、「OK、支出ファイル1をあなたのドキュメントフォルダに移動します。(Ok, moving Expenses File 1 to your Documents folder.)」等の発話出力982を提供する。いくつかの実施例では、デジタルアシスタントは更に、ユーザインタフェース928上で発話出力982に対応するテキストを提供する。
【0248】
説明されるように、いくつかの実施例では、ユーザの発話入力は、ユーザ意図が検索処理又はオブジェクト管理処理を使用してタスクを実行することであるかを示すキーワードを含まなくてもよい。図10A〜10Bを参照して、いくつかの実施形態では、デジタルアシスタントは、タスクを実行することが検索処理を必要としないと判定する。その判定に従って、デジタルアシスタントは、ユーザが検索処理又はオブジェクト管理処理を選択することを要求する発話出力を提供する。例えば、図10Aに示されるように、デジタルアシスタントは、ユーザから、「『支出』と呼ばれる全てのファイルを見せてください。(Show me all the files called 'Expenses'.)」等の発話入力1052を受信する。発話入力1052及びコンテクスト情報に基づいて、デジタルアシスタントは、ユーザ意図が単語「支出」と関連付けられた全てのファイルを表示することであると判定する。ユーザ意図に従って、デジタルアシスタントは更に、タスクが検索処理又はオブジェクト管理処理のいずれかによって実行されてもよく、従って、検索処理を必要としないと判定する。いくつかの実施例では、デジタルアシスタントは、「検索処理又はオブジェクト管理処理を使用して検索を希望しますか?(Do you want to search using the searching process or the object managing process?)」等の発話出力1072を提供する。いくつかの実施例では、デジタルアシスタントは、ユーザから、「オブジェクト管理処理」等の発話入力1054を受信する。よって、発話入力1054は、ユーザ意図がオブジェクト管理処理を使用してタスクを実行することであることを示す。選択に従って、例えば、デジタルアシスタントは、単語「支出」関連付けられた全てのファイルを検索する、アフォーダンス1030によって表されるオブジェクト管理処理をインスタンス化する。図10Bに示されるように、上記説明されたものと同様に、検索の結果として、デジタルアシスタントは、単語「支出」と関連付けられたファイルを含むフォルダを提供するユーザインタフェース1032(例えば、スニペット又はウィンドウ)を表示する。上記説明されたものと同様に、ユーザインタフェース1032を使用して、デジタルアシスタントは、ファイルに関して追加の1つ以上のタスク(例えば、複製すること、編集すること、参照すること、移動すること、又は圧縮すること等)を実行するオブジェクト管理処理をインスタンス化する。
【0249】
図11A及び11Bを参照して、いくつかの実施形態では、デジタルアシスタントは、コンテクスト情報を特定し、コンテクスト情報及びユーザの発話入力に基づいてユーザ意図を判定する。図11Aに示されるように、アフォーダンス1140又は1141によって表されるデジタルアシスタントは、「昨夜作成したKeynoteプレゼンテーションを開いてください。(Open the Keynote presentation I created last night.)」等の発話入力1152を受信する。発話入力1152を受信したことに応じて、デジタルアシスタントは、ユーザデバイスとのユーザの対話の履歴、又はユーザが直近で取りかかったファイルと関連付けられたメタデータ等のコンテクスト情報を特定する。例えば、デジタルアシスタントは、日付、時間、及びユーザが昨日の午後6時〜午前2時に取りかかったユーザのファイルのタイプ等のメタデータを特定する。特定されたコンテクスト情報及び発話入力1152に基づいて、デジタルアシスタントは、ユーザ意図が、ファイルが昨日のおおよそ午後6時〜午前0時に編集されたことを示すメタデータと関連付けられたKeynoteプレゼンテーションファイルを検索すること、及びプレゼンテーションファイルを開く処理(例えば、Keynote処理)をインスタンス化することを含むと判定する。
【0250】
いくつかの実施例では、コンテクスト情報は、アプリケーション名又は識別子(ID)を含む。例えば、ユーザの発話入力は、「Keynoteプレゼンテーションを開いてください。(Open the Keynote presentation.)」、「マイページのドキュメントを探してください。(find my Pages document.)」、又はӎ