IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アップル インコーポレイテッドの特許一覧

特表2024-534777通信セッションにおけるデジタルアシスタント対話
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-09-26
(54)【発明の名称】通信セッションにおけるデジタルアシスタント対話
(51)【国際特許分類】
   G06F 3/0484 20220101AFI20240918BHJP
   G06F 3/01 20060101ALI20240918BHJP
   G06F 3/16 20060101ALI20240918BHJP
【FI】
G06F3/0484
G06F3/01 510
G06F3/16 650
G06F3/16 690
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2024508754
(86)(22)【出願日】2022-08-10
(85)【翻訳文提出日】2024-02-13
(86)【国際出願番号】 IB2022000474
(87)【国際公開番号】W WO2023017320
(87)【国際公開日】2023-02-16
(31)【優先権主張番号】63/233,001
(32)【優先日】2021-08-13
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】17/866,984
(32)【優先日】2022-07-18
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.FIREWIRE
2.WCDMA
3.Linux
4.UNIX
5.OS X
6.WINDOWS
7.VXWORKS
8.JAVA
9.JAVASCRIPT
10.Yahoo!ウィジェット
11.ツイッター
(71)【出願人】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】100094569
【弁理士】
【氏名又は名称】田中 伸一郎
(74)【代理人】
【識別番号】100103610
【弁理士】
【氏名又は名称】▲吉▼田 和彦
(74)【代理人】
【識別番号】100067013
【弁理士】
【氏名又は名称】大塚 文昭
(74)【代理人】
【識別番号】100139712
【弁理士】
【氏名又は名称】那須 威夫
(72)【発明者】
【氏名】ラスコ レイ エル
(72)【発明者】
【氏名】バウアー ジャーマン ダブリュ
(72)【発明者】
【氏名】エドワーズ フェリシア ダブリュ
(72)【発明者】
【氏名】マンジュナス ニランジャン
(72)【発明者】
【氏名】ピアーソル カート ダブリュ
(72)【発明者】
【氏名】ラッセル ジョナサン エイチ
(72)【発明者】
【氏名】ストレヤ リン アイ
(72)【発明者】
【氏名】ストリックリング キース シー
(72)【発明者】
【氏名】ウェインバーグ ギャレット エル
【テーマコード(参考)】
5E555
【Fターム(参考)】
5E555AA46
5E555BA04
5E555BA17
5E555BB04
5E555BB17
5E555BC04
5E555BD01
5E555CA12
5E555CA47
5E555CB12
5E555CB64
5E555CC01
5E555DA02
5E555DA23
5E555DB05
5E555DB41
5E555DC09
5E555DD08
5E555EA05
5E555EA07
5E555EA11
5E555FA00
(57)【要約】
例示的なプロセスは、電子デバイスが外部デバイス(単数又は複数)との通信セッションに関与している間に、電子デバイスの第1のユーザから、第1のデジタルアシスタントを呼び出すための入力を受信することと、第1のユーザから、タスクに対応する自然言語入力を受信することと、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、タスクに関する更なるユーザ入力のためのプロンプトを生成することと、外部デバイス(単数又は複数)に、タスクに関する更なるユーザ入力のためのプロンプトを伝送することと、更なるユーザ入力のためのプロンプトを伝送した後に、外部デバイス(単数又は複数)の外部デバイスから、更なるユーザ入力のためのプロンプトに対する応答を受信することと、第1のデジタルアシスタントによって、応答及び電子デバイスに記憶された第1のユーザに対応する情報に基づいて、タスクを開始することと、外部デバイス(単数又は複数)に、開始されたタスクを示す出力を伝送することと、を含む。
【特許請求の範囲】
【請求項1】
方法であって、
1つ以上のプロセッサ及びメモリを有する電子デバイスにおいて、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイスの第1のユーザから、前記電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信することと、
前記第1のユーザから、タスクに対応する自然言語入力を受信することと、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記タスクに関する更なるユーザ入力のためのプロンプトを生成することと、
前記タスクに関する更なるユーザ入力のための前記プロンプトを前記1つ以上の外部デバイスに伝送することと、
更なるユーザ入力のための前記プロンプトを伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のための前記プロンプトに対する応答を受信することと、
前記第1のデジタルアシスタントによって、前記応答及び前記電子デバイスに記憶された前記第1のユーザに対応する情報に基づいて、前記タスクを開始することと、
前記開始されたタスクを示す出力を前記1つ以上の外部デバイスに伝送することと、を含む、方法。
【請求項2】
前記電子デバイスにおいて、
前記開始されたタスクを示す前記出力を前記1つ以上の外部デバイスに伝送した後に、
前記1つ以上の外部デバイスのうちの第2の外部デバイスであって、前記第2の外部デバイスは、前記第2の外部デバイスの第2のユーザから前記第2の自然言語入力を受信する、第2の外部デバイスから、第2のタスクに対応する第2の自然言語入力を受信することと、
前記第2の自然言語入力を受信した後に、前記第2のタスクに関するユーザ入力のための第2のプロンプトであって、前記第2のプロンプトは、前記第2の外部デバイス上で動作する第2のデジタルアシスタントによって生成される、第2のプロンプトを、前記第2の外部デバイスから受信することと、
前記第1のユーザから、ユーザ入力のための前記第2のプロンプトに対する第2の応答を受信することと、
前記第2の応答を前記1つ以上の外部デバイスに伝送することと、
前記第2の外部デバイスから第2の出力を受信することと、を更に含む、方法であって、
前記第2のデジタルアシスタントは、前記第2の応答及び前記第2の外部デバイスに記憶された前記第2のユーザに対応する情報に基づいて、前記第2のタスクを開始し、
前記第2の出力は、前記開始された第2のタスクを示す、請求項1に記載の方法。
【請求項3】
前記第2のプロンプトは、前記第2の外部デバイスが前記第2のデジタルアシスタントを呼び出すための第2の入力を前記第2のユーザから受信したことに従って受信される、請求項2に記載の方法。
【請求項4】
前記タスクが所定のタイプのタスクに対応するかどうかを判定することと、
前記タスクが前記所定のタイプのタスクに対応するという判定に従って、
前記外部デバイスから前記応答を受信したことに従って、前記第1のデジタルアシスタントによって、前記第1のデジタルアシスタントが、前記タスクを完了することができないことを示す第3の出力を生成することと、を更に含む、方法であって、前記タスクを開始することは、前記タスクが前記所定のタイプのタスクに対応しないという判定に従って実行される、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記第1のユーザから、更なるユーザ入力のための前記プロンプトに対する第3の応答を受信することと、
前記タスクが前記所定のタイプのタスクに対応するという判定に従って、且つ前記第3の応答が前記第1のユーザから受信されたという判定に従って、前記第1のデジタルアシスタントによって、前記第3の応答及び前記第1のユーザに対応する前記情報に基づいて、前記タスクを開始することと、
前記開始されたタスクを示す第4の出力を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項4に記載の方法。
【請求項6】
前記自然言語入力は、第1の言語であり、前記第1のデジタルアシスタントは、前記第1の言語において動作するように構成されており、前記方法は、
前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈できるかどうかを判定することであって、前記タスクを開始することは、前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈できるという判定に従って実行される、ことと、
前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈することができないという判定に従って、エラーを示す第5の出力を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項1から5のいずれか一項に記載の方法。
【請求項7】
前記外部デバイス上で動作する第3のデジタルアシスタントは、前記第1の言語とは異なる第2の言語で動作するように構成されている、請求項6に記載の方法。
【請求項8】
前記タスクを開始することは、前記電子デバイス上に、前記タスクに対応するアフォーダンスを表示することを含み、前記第1のデジタルアシスタントは、前記第1のユーザに対応する前記情報に基づいて前記アフォーダンスを生成し、前記方法は、
前記1つ以上の外部デバイスに、前記アフォーダンスをそれぞれ表示させることを更に含む、請求項1から7のいずれか一項に記載の方法。
【請求項9】
前記1つ以上の外部デバイスに前記アフォーダンスをそれぞれ表示させることは、前記タスクが第2の所定のタイプのタスクに対応しないという判定に従って実施され、
前記電子デバイス上に前記アフォーダンスを表示することは、
前記タスクが前記第2の所定のタイプのタスクに対応するという判定に従って、前記1つ以上の外部デバイスの前記アフォーダンスをそれぞれ表示させることなく、前記アフォーダンスを表示することを含む、請求項8に記載の方法。
【請求項10】
前記表示されたアフォーダンスの選択に対応する第1のユーザ入力を受信することと、
前記第1のユーザ入力を受信したことに応じて、前記アフォーダンスを修正状態で表示することと、
前記1つ以上の外部デバイスに、前記アフォーダンスを前記修正状態でそれぞれ表示させることと、を更に含む、請求項8又は9に記載の方法。
【請求項11】
前記1つ以上の外部デバイスのうちの第3の外部デバイスから、前記アフォーダンスであって、前記アフォーダンスは、前記第3の外部デバイスにおいて、前記アフォーダンスの選択に対応する第2のユーザ入力を受信したことに応じて、前記第3の外部デバイス上に前記第2の修正状態で表示される、前記アフォーダンスを、第2の修正状態で表示するための命令を受信することと、
前記命令を受信したことに応じて、前記電子デバイス上に、前記アフォーダンスを前記第2の修正状態で表示することと、を更に含む、請求項8から10のいずれか一項に記載の方法。
【請求項12】
前記第1のデジタルアシスタントを呼び出すための前記入力は、口頭のトリガ入力又は前記電子デバイスのボタンの選択を含む、請求項1から11のいずれか一項に記載の方法。
【請求項13】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備える、電子デバイスであって、前記1つ以上のプログラムは前記メモリに記憶され、前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムは、命令を含み、前記命令が、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイスの第1のユーザから、前記電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信し、
前記第1のユーザから、タスクに対応する自然言語入力を受信し、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記タスクに関する更なるユーザ入力のためのプロンプトを生成し、
前記タスクに関する更なるユーザ入力のための前記プロンプトを前記1つ以上の外部デバイスに伝送し、
更なるユーザ入力のための前記プロンプトを伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のための前記プロンプトに対する応答を受信し、
前記第1のデジタルアシスタントによって、前記応答及び前記電子デバイスに記憶された前記第1のユーザに対応する情報に基づいて、前記タスクを開始し、
前記開始されたタスクを示す出力を前記1つ以上の外部デバイスに伝送する、電子デバイス。
【請求項14】
1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、命令を含み、前記命令が、第1の電子デバイスの1つ以上のプロセッサによって実行されると、前記第1の電子デバイスに、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイスの第1のユーザから、前記電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信させ、
前記第1のユーザから、タスクに対応する自然言語入力を受信させ、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記タスクに関する更なるユーザ入力のためのプロンプトを生成させ、
前記タスクに関する更なるユーザ入力のための前記プロンプトを前記1つ以上の外部デバイスに伝送させ、
更なるユーザ入力のための前記プロンプトを伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のための前記プロンプトに対する応答を受信させ、
前記第1のデジタルアシスタントによって、前記応答及び前記電子デバイスに記憶された前記第1のユーザに対応する情報に基づいて、前記タスクを開始させ、
前記開始されたタスクを示す出力を前記1つ以上の外部デバイスに伝送させる、非一時的コンピュータ可読記憶媒体。
【請求項15】
電子デバイスであって、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイスの第1のユーザから、前記電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信し、
前記第1のユーザから、タスクに対応する自然言語入力を受信し、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記タスクに関する更なるユーザ入力のためのプロンプトを生成し、
前記タスクに関する更なるユーザ入力のための前記プロンプトを前記1つ以上の外部デバイスに伝送し、
更なるユーザ入力のための前記プロンプトを伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のための前記プロンプトに対する応答を受信し、
前記第1のデジタルアシスタントによって、前記応答及び前記電子デバイスに記憶された前記第1のユーザに対応する情報に基づいて、前記タスクを開始し、
前記開始されたタスクを示す出力を前記1つ以上の外部デバイスに伝送する手段を備える、電子デバイス。
【請求項16】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備える電子デバイスであって、前記1つ以上のプログラムは、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムは、請求項1から12のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項17】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令が、電子デバイスの1つ以上のプロセッサによって実行されると、前記電子デバイスに、請求項1から12のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項18】
電子デバイスであって、
請求項1から12のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【請求項19】
方法であって、
1つ以上のプロセッサ及びメモリを有する電子デバイスにおいて、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイス上で動作している第1のデジタルアシスタントであって、前記第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、前記電子デバイスの第1のユーザから受信することと、
前記第1のユーザから、前記第1の言語による第1の自然言語入力を受信することと、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記第1の自然言語入力に対する前記第1の言語による第1の応答を生成することと、
前記第1の応答を前記1つ以上の外部デバイスに伝送し、
前記第1の応答を伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、第2の言語による第2の自然言語入力であって、
前記第2の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、
前記第2のデジタルアシスタントは、前記第2の言語で動作するように構成されている、第2の自然言語入力を受信することと、
前記外部デバイスから、前記第2の自然言語入力に対する前記第2の言語による第2の応答を受信することと、を含み、前記第2の応答は、前記第2のデジタルアシスタントによって生成される、方法。
【請求項20】
前記第1の自然言語入力に関連付けられたコンテキスト情報を前記外部デバイスに伝送することを更に含み、前記第2のデジタルアシスタントは、前記コンテキスト情報に基づいて前記第2の応答を生成する、請求項19に記載の方法。
【請求項21】
前記第1の応答を伝送した後に、前記外部デバイスから、前記第1の言語による第3の自然言語入力であって、前記第3の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記第2のデジタルアシスタントを呼び出すための第3の入力を受信することなく受信される、第3の自然言語入力を受信することと、
前記第3の自然言語入力に対する前記第2の言語による第3の応答を前記外部デバイスから受信することと、を更に含み、前記第3の応答は、前記第2のデジタルアシスタントによって生成され、前記第2のデジタルアシスタントが前記第3の自然言語入力を解釈することができないことを示す、請求項19又は20に記載の方法。
【請求項22】
前記第1の応答を伝送した後に、前記外部デバイスから、前記第2の言語による第4の自然言語入力を受信することと、
前記外部デバイスから、前記第4の自然言語入力に対する前記第2の言語による第4の応答を受信することと、を更に含む、方法であって、
前記第4の応答は、前記第2のデジタルアシスタントによって生成され、
前記第4の応答は、前記外部デバイスが前記第2のデジタルアシスタントを呼び出すための第4の入力を受信したことに従って受信され、
前記第4の応答は、前記第2のデジタルアシスタントが前記第4の自然言語入力に対応するタスクを開始したことを示す、請求項19から21のいずれか一項に記載の方法。
【請求項23】
前記第2のデジタルアシスタントは、前記外部デバイスの第2のユーザに対応する情報に基づいて前記第2の応答を生成し、前記情報は、前記外部デバイスに記憶される、請求項19から22のいずれか一項に記載の方法。
【請求項24】
前記第1の応答を伝送した後に、前記第1のユーザから、前記第1の言語による第5の自然言語入力であって、前記第5の自然言語入力は、前記電子デバイスが、第1の応答を伝送した後に、前記第1のデジタルアシスタントを呼び出すための第5の入力を受信することなく受信される、第5の自然言語入力を受信することと、
前記第5の自然言語入力を受信したことに従って、前記第1のデジタルアシスタントによって、前記第5の自然言語入力に対する前記第1の言語による第5の応答であって、前記第5の応答は、前記第5の自然言語入力に対応する開始されたタスクを示す、第5の応答を生成することと、
前記第5の応答を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項19から23のいずれか一項に記載の方法。
【請求項25】
前記第1の応答を伝送した後に、前記第1のユーザから、前記第1の言語とは異なる第3の言語による第6の自然言語入力であって、前記第6の自然言語入力は、前記電子デバイスが、第1の応答を伝送した後に、前記第1のデジタルアシスタントを呼び出すための第6の入力を受信することなく受信される、第6の自然言語入力を受信することと、
前記第6の自然言語入力を受信したことに従って、前記第1のデジタルアシスタントによって、前記第6の自然言語入力に対する前記第1の言語による第6の応答であって、前記第6の応答は、前記第1のデジタルアシスタントが前記第6の自然言語入力を解釈することができないことを示す、第6の応答を生成することと、
前記第6の応答を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項19から24のいずれか一項に記載の方法。
【請求項26】
前記外部デバイスは、前記外部デバイスの第3のユーザの視線方向に基づいて、前記第2の自然言語入力が前記第2のデジタルアシスタントを対象としていると判定し、
前記第2のデジタルアシスタントは、前記第2の自然言語入力が前記第2のデジタルアシスタントを対象としているという判定に従って、前記第2の応答を生成する、請求項19から25のいずれか一項に記載の方法。
【請求項27】
前記第2の自然言語入力は、前記第1のデジタルアシスタント又は前記第2のデジタルアシスタントによって生成されたユーザ入力のためのプロンプトに対する応答を含まない、請求項19から26のいずれか一項に記載の方法。
【請求項28】
前記第1のデジタルアシスタントを呼び出すための前記入力は、口頭のトリガ入力又は前記電子デバイスのボタンの選択を含み、
前記第2のデジタルアシスタントを呼び出すための前記第2の入力は、前記口頭のトリガ入力又は前記外部デバイスのボタンの選択を含む、請求項19から27のいずれか一項に記載の方法。
【請求項29】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備える、電子デバイスであって、前記1つ以上のプログラムは前記メモリに記憶され、前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムは、命令を含み、前記命令が、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイス上で動作している第1のデジタルアシスタントであって、前記第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、前記電子デバイスの第1のユーザから受信し、
前記第1のユーザから、前記第1の言語による第1の自然言語入力を受信し、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記第1の自然言語入力に対する前記第1の言語による第1の応答を生成し、
前記第1の応答を前記1つ以上の外部デバイスに伝送し、
前記第1の応答を伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、第2の言語による第2の自然言語入力であって、
前記第2の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信し、
前記第2のデジタルアシスタントは、前記第2の言語で動作するように構成されている、第2の自然言語入力を受信し、
前記外部デバイスから、前記第2の自然言語入力に対する前記第2の言語による第2の応答を受信し、前記第2の応答は、前記第2のデジタルアシスタントによって生成される、第2の応答を受信する、電子デバイス。
【請求項30】
1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、命令を含み、前記命令が、第1の電子デバイスの1つ以上のプロセッサによって実行されると、前記第1の電子デバイスに、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイス上で動作している第1のデジタルアシスタントであって、前記第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、前記電子デバイスの第1のユーザから受信させ、
前記第1のユーザから、前記第1の言語による第1の自然言語入力を受信させ、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記第1の自然言語入力に対する前記第1の言語による第1の応答を生成させ、
前記第1の応答を前記1つ以上の外部デバイスに伝送させ、
前記第1の応答を伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、第2の言語による第2の自然言語入力であって、
前記第2の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、
前記第2のデジタルアシスタントは、前記第2の言語で動作するように構成されている、第2の自然言語入力を受信させ、
前記外部デバイスから、前記第2の自然言語入力に対する前記第2の言語による第2の応答を受信させ、前記第2の応答は、前記第2のデジタルアシスタントによって生成される、非一時的コンピュータ可読記憶媒体。
【請求項31】
電子デバイスであって、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイス上で動作している第1のデジタルアシスタントであって、前記第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、前記電子デバイスの第1のユーザから受信し、
前記第1のユーザから、前記第1の言語による第1の自然言語入力を受信し、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記第1の自然言語入力に対する前記第1の言語による第1の応答を生成し、
前記第1の応答を前記1つ以上の外部デバイスに伝送し、
前記第1の応答を伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、第2の言語による第2の自然言語入力であって、
前記第2の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、
前記第2のデジタルアシスタントは、前記第2の言語で動作するように構成されている、第2の自然言語入力を受信し、
前記外部デバイスから、前記第2の自然言語入力に対する前記第2の言語による第2の応答を受信する手段を備え、前記第2の応答は、前記第2のデジタルアシスタントによって生成される、電子デバイス。
【請求項32】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備える電子デバイスであって、前記1つ以上のプログラムは、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムは、請求項19から28のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項33】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令が、電子デバイスの1つ以上のプロセッサによって実行されると、前記電子デバイスに、請求項19から28のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項34】
電子デバイスであって、
請求項19から28のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【請求項35】
方法であって、
1つ以上のプロセッサ及びメモリを有する電子デバイスにおいて、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイス上で動作している第1のデジタルアシスタントであって、前記第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、前記電子デバイスの第1のユーザから受信することと、
前記第1のユーザから、前記第1の言語による第1の自然言語入力を受信することと、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記第1の自然言語入力に対する前記第1の言語による第1の応答を生成することと、
前記第1の応答を1つ以上の前記外部デバイスに伝送することと、
前記第1の応答を伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、前記第1の言語による第2の自然言語入力であって、
前記第2の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、
前記第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信することと、
前記第1のデジタルアシスタントによって、前記第2の自然言語入力に対する前記第1の言語による第2の応答を生成することと、
前記第2の応答を前記1つ以上の外部デバイスに伝送することと、を含む、方法。
【請求項36】
前記第1のデジタルアシスタントは、前記第1の自然言語入力及び前記第1の応答に関連付けられたコンテキスト情報に基づいて、前記第2の応答を生成する、請求項35に記載の方法。
【請求項37】
前記外部デバイスから、前記第2の言語による第3の自然言語入力であって、前記第3の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記第2のデジタルアシスタントを呼び出すための第3の入力を受信することなく受信される、第3の自然言語入力を受信することと、
前記第3の自然言語入力を受信したことに従って、前記第1のデジタルアシスタントによって、前記第3の自然言語入力に対する前記第1の言語による第3の応答であって、前記第3の応答は、前記第1のデジタルアシスタントが前記第3の自然言語入力を解釈することができないことを示す、第3の応答を生成することと、
前記第3の応答を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項35又は36に記載の方法。
【請求項38】
前記外部デバイスから、前記第2の言語による第4の自然言語入力を受信することと、
前記外部デバイスから、前記第4の自然言語入力に対する前記第2の言語による第4の応答を受信することと、を更に含む、方法であって、
前記第4の応答は、前記第2のデジタルアシスタントによって生成され、
前記第4の応答は、前記外部デバイスが前記第2のデジタルアシスタントを呼び出すための第4の入力を受信したことに従って受信され、
前記第4の応答は、前記第2のデジタルアシスタントが前記第4の自然言語入力に対応するタスクを開始することを示す、請求項35から37のいずれか一項に記載の方法。
【請求項39】
前記第2の自然言語入力がパーソナル要求に対応するかどうかを判定することを更に含み、前記第2の応答を生成することは、前記第2の自然言語入力がパーソナル要求に対応しないという判定に従って実行される請求項35から38のいずれか一項に記載の方法。
【請求項40】
方法であって、
前記第2の自然言語入力がパーソナル要求に対応するという判定に従って、前記第1のデジタルアシスタントによって、前記第2の自然言語入力に対する前記第1の言語による第5の応答であって、前記第5の応答は、前記第1のデジタルアシスタントが前記第2の自然言語入力に含まれるユーザ要求を満たすことができないことを示す、第5の応答を生成することと、
前記第5の応答を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項39に記載の方法。
【請求項41】
前記外部デバイスから、前記第2の言語による第6の自然言語入力であって、前記第6の自然言語入力は、パーソナル要求に対応する、第6の自然言語入力を受信することと、
前記外部デバイスから、前記第6の自然言語入力に対する前記第2の言語による第6の応答を受信することと、を更に含む、方法であって、
前記第6の応答は、前記第2のデジタルアシスタントによって生成され、
前記第6の応答は、前記外部デバイスが前記第2のデジタルアシスタントを呼び出すための第6の入力を受信したことに従って受信され、
前記第6の応答は、前記第2のデジタルアシスタントが前記第6の自然言語入力に対応するタスクを開始したことを示す、請求項35から40のいずれか一項に記載の方法。
【請求項42】
前記外部デバイスは、前記外部デバイスの第2のユーザの視線方向に基づいて、前記第2の自然言語入力が前記第1のデジタルアシスタントを対象としていると判定し、
前記第1のデジタルアシスタントは、前記第2の自然言語入力が前記第1のデジタルアシスタントを対象としているという判定に従って、前記第2の応答を生成する、請求項35から41のいずれか一項に記載の方法。
【請求項43】
前記第2の自然言語入力は、前記第1のデジタルアシスタント又は前記第2のデジタルアシスタントによって生成されたユーザ入力のためのプロンプトに対する応答を含まない、請求項35から42のいずれか一項に記載の方法。
【請求項44】
前記第1のデジタルアシスタントを呼び出すための前記入力は、口頭のトリガ入力又は前記電子デバイスのボタンの選択を含み、
前記第2のデジタルアシスタントを呼び出すための前記第2の入力は、前記口頭のトリガ入力又は前記外部デバイスのボタンの選択を含む、請求項35から43のいずれか一項に記載の方法。
【請求項45】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備える、電子デバイスであって、前記1つ以上のプログラムは前記メモリに記憶され、前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムは、命令を含み、前記命令が、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイス上で動作している第1のデジタルアシスタントであって、前記第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、前記電子デバイスの第1のユーザから受信し、
前記第1のユーザから、前記第1の言語による第1の自然言語入力を受信し、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記第1の自然言語入力に対する前記第1の言語による第1の応答を生成し、
前記第1の応答を前記1つ以上の外部デバイスに伝送し、
前記第1の応答を伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、前記第1の言語による第2の自然言語入力であって、
前記第2の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信し、
前記第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信し、
前記第1のデジタルアシスタントによって、前記第2の自然言語入力に対する前記第1の言語による第2の応答を生成し、
前記第2の応答を前記1つ以上の外部デバイスに伝送する、電子デバイス。
【請求項46】
1つ以上のプログラムを記憶している非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、命令を含み、前記命令が、第1の電子デバイスの1つ以上のプロセッサによって実行されると、前記第1の電子デバイスに、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイス上で動作している第1のデジタルアシスタントであって、前記第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、前記電子デバイスの第1のユーザから受信させ、
前記第1のユーザから、前記第1の言語による第1の自然言語入力を受信させ、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記第1の自然言語入力に対する前記第1の言語による第1の応答を生成させ、
前記第1の応答を前記1つ以上の外部デバイスに伝送させ、
前記第1の応答を伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、前記第1の言語による第2の自然言語入力であって、
前記第2の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、
前記第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信させ、
前記第1のデジタルアシスタントによって、前記第2の自然言語入力に対する前記第1の言語による第2の応答を生成させ、
前記第2の応答を前記1つ以上の外部デバイスに伝送させる、非一時的コンピュータ可読記憶媒体。
【請求項47】
電子デバイスであって、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイス上で動作している第1のデジタルアシスタントであって、前記第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、前記電子デバイスの第1のユーザから受信し、
前記第1のユーザから、前記第1の言語による第1の自然言語入力を受信し、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記第1の自然言語入力に対する前記第1の言語による第1の応答を生成し、
前記第1の応答を前記1つ以上の外部デバイスに伝送し、
前記第1の応答を伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、前記第1の言語による第2の自然言語入力であって、
前記第2の自然言語入力は、前記外部デバイスが、前記伝送された第1の応答を受信した後に、前記外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、
前記第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信し、
前記第1のデジタルアシスタントによって、前記第2の自然言語入力に対する前記第1の言語による第2の応答を生成し、
前記第2の応答を前記1つ以上の外部デバイスに伝送する手段を備える、電子デバイス。
【請求項48】
電子デバイスであって、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、を備える電子デバイスであって、前記1つ以上のプログラムは、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるように構成されており、前記1つ以上のプログラムは、請求項35から44のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項49】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムは、命令を含み、前記命令が、電子デバイスの1つ以上のプロセッサによって実行されると、前記電子デバイスに、請求項35から44のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項50】
電子デバイスであって、
請求項35から44のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2021年8月13日に出願された「DIGITAL ASSISTANT INTERACTION IN A COMMUNICATION SESSION」という名称の米国仮出願第 63/233,001号、及び2022年7月18日に出願された「DIGITAL ASSISTANT INTERACTION IN A COMMUNICATION SESSION」という名称の米国非仮出願第17/866,984号の優先権を主張する。その内容は、あらゆる目的のために参照により本明細書に組み込まれる。
【0002】
本発明は、概して、インテリジェント自動アシスタントに関し、より具体的には、通信セッションにおけるインテリジェント自動アシスタントとの対話に関する。
【背景技術】
【0003】
インテリジェント自動アシスタント(又は、デジタルアシスタント)は、人間のユーザと電子デバイスとの間の有益なインタフェースを提供することができる。そのようなアシスタントにより、ユーザは、口頭及び/又はテキスト形式の自然言語を使用して、デバイス又はシステムと対話することが可能となり得る。例えば、ユーザは、電子デバイス上で動作しているデジタルアシスタントに、ユーザ要求を含む発語入力を提供することができる。デジタルアシスタントは、発話入力からユーザの意図を解釈し、ユーザの意図をタスクに動作可能にすることができる。次いで、タスクは、電子デバイスの1つ以上のサービスを実行することによって実行され、ユーザ要求への関連出力応答をユーザに戻すことができる。
【発明の概要】
【0004】
例示的な方法を本明細書に開示する。例示的な方法は、1つ以上のプロセッサ及びメモリを有する電子デバイスにおいて、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイスの第1のユーザから、電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信することと、第1のユーザから、タスクに対応する自然言語入力を受信し、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、タスクに関する更なるユーザ入力のためのプロンプトを生成し、タスクに関する更なるユーザ入力のためのプロンプトを1つ以上の外部デバイスに伝送し、更なるユーザ入力のためのプロンプトを伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のためのプロンプトに対する応答を受信し、第1のデジタルアシスタントによって、応答及び電子デバイスに記憶された第1のユーザに対応する情報に基づいて、タスクを開始することと、開始されたタスクを示す出力を1つ以上の外部デバイスに伝送することと、を含む。
【0005】
例示的な非一時的コンピュータ可読媒体が、本明細書で開示される。例示的な非一時的コンピュータ可読記憶媒体は、1つ以上のプログラムを記憶している。1つ以上のプログラムは、電子デバイスの1つ以上のプロセッサによって実行されたときに、電子デバイスに、電子デバイスの第1のユーザから、電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信させ、第1のユーザから、タスクに対応する自然言語入力を受信させ、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、タスクに関する更なるユーザ入力のためのプロンプトを生成させ、タスクに関する更なるユーザ入力のためのプロンプトを1つ以上の外部デバイスに伝送させ、更なるユーザ入力のためのプロンプトを伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のためのプロンプトに対する応答を受信させ、第1のデジタルアシスタントによって、応答及び電子デバイスに記憶された第1のユーザに対応する情報に基づいて、タスクを開始させ、開始されたタスクを示す出力を1つ以上の外部デバイスに伝送させる命令を含む。
【0006】
例示的な電子デバイスが本明細書に開示されている。例示的な電子デバイスは、1つ以上のプロセッサと、メモリと、1つ以上のプログラムと、を備える、電子デバイスであって、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、命令を含み、命令が、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイスの第1のユーザから、電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信し、第1のユーザから、タスクに対応する自然言語入力を受信し、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、タスクに関する更なるユーザ入力のためのプロンプトを生成し、タスクに関する更なるユーザ入力のためのプロンプトを1つ以上の外部デバイスに伝送し、更なるユーザ入力のためのプロンプトを伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のためのプロンプトに対する応答を受信し、第1のデジタルアシスタントによって、応答及び電子デバイスに記憶された第1のユーザに対応する情報に基づいて、タスクを開始し、開始されたタスクを示す出力を1つ以上の外部デバイスに伝送する。
【0007】
例示的な電子デバイスは、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイスの第1のユーザから、電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信し、第1のユーザから、タスクに対応する自然言語入力を受信し、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、タスクに関する更なるユーザ入力のためのプロンプトを生成し、タスクに関する更なるユーザ入力のためのプロンプトを1つ以上の外部デバイスに伝送し、更なるユーザ入力のためのプロンプトを伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のためのプロンプトに対する応答を受信し、第1のデジタルアシスタントによって、応答及び電子デバイスに記憶された第1のユーザに対応する情報に基づいて、タスクを開始することと、開始されたタスクを示す出力を1つ以上の外部デバイスに伝送する手段を備える。
【0008】
上記の方法でタスクを開始し、開始されたタスクを示す出力を伝送することは、通信セッションの参加者に、任意の参加者が更なるユーザ入力のためのプロンプトに応答し得るというフィードバックと、タスクが開始されたというフィードバックと、を提供する。したがって、プロンプトに対して正しい及び/又は最適な応答を有する参加者などの任意の参加者が、デジタルアシスタントにタスクを正しく開始させることを可能にすることによって、ユーザとデバイスの対話がより効率的且つ柔軟になる。改善されたフィードバックを参加者に提供することは、デバイスの操作性を向上させ、ユーザ-デバイスインタフェースをより効率的にし(例えば、タスクを実施するためにデバイスに必要とされるユーザ入力の数を低減することによって、ユーザが適切な入力を提供するのを助けることによって、且つデバイスと対話するときのユーザの誤りを低減することによって)、更に、電力使用量を低減し、ユーザがデバイスをより迅速且つ効率的に使用することを可能にすることによってデバイスのバッテリ寿命を改善する。
【0009】
更に、第1のユーザに対応する情報に基づいてタスクを開始し、出力を伝送することにより、通信セッションの参加者に、別の参加者がデジタルアシスタントのプロンプトに応答したにもかかわらず、デジタルアシスタントを直近に呼び出した参加者に対応する情報に基づいてデジタルアシスタントがタスクを開始したというフィードバックが提供される。したがって、タスクを開始するためにデジタルアシスタントがどの情報を使用するかについての混乱を回避することによって、且つ正しい参加者の情報を使用してタスクが開始されることを参加者が確認することを可能にすることによって(又は参加者が訂正入力を提供することができるように、誤った参加者の情報を使用してタスクが開始されることを参加者に通知することによって)、より一貫した効率的なユーザ-デバイス対話が提供され得る。改善されたフィードバックを参加者に提供し、第1のユーザの情報に基づいて(例えば、デバイスが外部デバイスから応答を受信した後に更なるユーザ入力を必要とすることなく)タスクを自動的に開始することは、デバイスの操作性を向上させ、ユーザ-デバイスインタフェースをより効率的にし(例えば、ユーザが適切な入力を提供するのを助け、デバイスと対話するときのユーザの誤りを低減することによって)、更に、電力使用量を低減し、ユーザがデバイスをより迅速且つ効率的に使用することを可能にすることによってデバイスのバッテリ寿命を改善する。
【0010】
例示的な方法を本明細書に開示する。例示的な方法は、1つ以上のプロセッサ及びメモリを有する電子デバイスにおいて、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイス上で動作している第1のデジタルアシスタントであって、第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、電子デバイスの第1のユーザから受信することと、第1のユーザから、第1の言語による第1の自然言語入力を受信することと、第1のデジタルアシスタントの呼び出しに従って、第1のデジタルアシスタントによって、第1の自然言語入力に対する第1の言語による第1の応答を生成することと、第1の応答を1つ以上の外部デバイスに伝送することと、第1の応答を伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、第2の言語による第2の自然言語入力であって、第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信することと、外部デバイスから、第2の自然言語入力に対する第2の言語による第2の応答を受信することと、を含み、第2の応答は、第2のデジタルアシスタントによって生成される、第2の応答を受信する。
【0011】
例示的な非一時的コンピュータ可読媒体が、本明細書で開示される。例示的な非一時的コンピュータ可読記憶媒体は、1つ以上のプログラムを記憶している。1つ以上のプログラムは、命令を含み、命令が、電子デバイスの1つ以上のプロセッサによって実行されたときに、電子デバイスに、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイス上で動作している第1のデジタルアシスタントであって、第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、電子デバイスの第1のユーザから受信させ、第1のユーザから、第1の言語による第1の自然言語入力を受信させ、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、第1の自然言語入力に対する第1の言語による第1の応答を生成させ、第1の応答を1つ以上の外部デバイスに伝送させ、第1の応答を伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、第2の言語による第2の自然言語入力であって、第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信させ、外部デバイスから、第2の自然言語入力に対する第2の言語による第2の応答を受信させ、第2の応答は、第2のデジタルアシスタントによって生成される。
【0012】
例示的な電子デバイスが本明細書に開示されている。例示的な電子デバイスは、1つ以上のプロセッサと、メモリと、1つ以上のプログラムと、を備える、電子デバイスであって、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、命令を含み、命令が、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイス上で動作している第1のデジタルアシスタントであって、第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、電子デバイスの第1のユーザから受信し、第1のユーザから、第1の言語による第1の自然言語入力を受信し、第1のデジタルアシスタントの呼び出しに従って、第1のデジタルアシスタントによって、第1の自然言語入力に対する第1の言語による第1の応答を生成し、第1の応答を1つ以上の外部デバイスに伝送し、第1の応答を伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、第2の言語による第2の自然言語入力であって、第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信し、外部デバイスから、第2の自然言語入力に対する第2の言語による第2の応答を受信すし、第2の応答は、第2のデジタルアシスタントによって生成される。
【0013】
例示的な電子デバイスは、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイス上で動作している第1のデジタルアシスタントであって、第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、電子デバイスの第1のユーザから受信し、第1のユーザから、第1の言語による第1の自然言語入力を受信し、第1のデジタルアシスタントの呼び出しに従って、第1のデジタルアシスタントによって、第1の自然言語入力に対する第1の言語による第1の応答を生成し、第1の応答を1つ以上の外部デバイスに伝送し、第1の応答を伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、第2の言語による第2の自然言語入力であって、第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信することと、外部デバイスから、第2の自然言語入力に対する第2の言語による第2の応答を受信する手段を備え、第2の応答は、第2のデジタルアシスタントによって生成される。
【0014】
第2のデジタルアシスタントによって生成された第2の応答を第2の言語で受信することは、通信セッションの参加者に、任意の参加者が、自身のデジタルアシスタントが動作するように構成された言語でフォローアップ要求(例えば、第2の自然言語入力)をデジタルアシスタントに正常に発行し得るというフィードバックを提供する。したがって、参加者は、例えば、通信セッション内の複数のデジタルアシスタントがそれぞれ異なる言語で動作するように構成されているにもかかわらず、通信セッション内でデジタルアシスタントと対話するための正しい言語を通知される。加えて、第2のデジタルアシスタントは、(例えば、伝送された第1の応答を受信した後に)第2のデジタルアシスタントを呼び出すための入力を必要とすることなく、フォローアップ要求に対する第2の応答を生成してもよく、それによって、タスクの実施を成功させるために必要なユーザ入力の数が低減される。改善されたフィードバックを参加者に提供し、デジタルアシスタントがタスクを実施するのに必要な入力の数を低減することは、デバイスの操作性を向上させ、(例えば、ユーザが適切な入力を提供するのを助け、デバイスと対話するときのユーザの誤りを低減することによって)ユーザ-デバイスインタフェースをより効率的にし、加えて、電力使用量を低減し、ユーザがデバイスをより迅速且つ効率的に使用することを可能にすることによってデバイスのバッテリ寿命を改善する。
【0015】
例示的な方法を本明細書に開示する。例示的な方法は、1つ以上のプロセッサ及びメモリを有する電子デバイスにおいて、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイス上で動作している第1のデジタルアシスタントであって、第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、電子デバイスの第1のユーザから受信することと、第1のユーザから、第1の言語による第1の自然言語入力を受信することと、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、第1の自然言語入力に対する第1の言語による第1の応答を生成することと、第1の応答を1つ以上の外部デバイスに伝送することと、第1の応答を伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、第1の言語による第2の自然言語入力であって、第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信することと、第1のデジタルアシスタントによって、第2の自然言語入力に対する第1の言語による第2の応答を生成することと、第2の応答を1つ以上の外部デバイスに伝送することと、を含む。
【0016】
例示的な非一時的コンピュータ可読媒体が、本明細書で開示される。例示的な非一時的コンピュータ可読記憶媒体は、1つ以上のプログラムを記憶している。1つ以上のプログラムは、命令を含み、命令が、電子デバイスの1つ以上のプロセッサによって実行されたときに、電子デバイスに、電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、電子デバイス上で動作している第1のデジタルアシスタントであって、第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、電子デバイスの第1のユーザから受信させ、第1のユーザから、第1の言語による第1の自然言語入力を受信させ、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、第1の自然言語入力に対する第1の言語による第1の応答を生成させ、第1の応答を1つ以上の外部デバイスに伝送させ、第1の応答を伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、第1の言語による第2の自然言語入力であって、第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信させ、第1のデジタルアシスタントによって、第2の自然言語入力に対する第1の言語による第2の応答を生成させ、第2の応答を1つ以上の外部デバイスに伝送させる。
【0017】
例示的な電子デバイスが本明細書に開示されている。例示的な電子デバイスは、1つ以上のプロセッサと、メモリと、1つ以上のプログラムと、を備える、電子デバイスであって、1つ以上のプログラムはメモリに記憶され、1つ以上のプロセッサによって実行されるように構成されており、1つ以上のプログラムは、命令を含み、命令が、電子デバイス上で動作している第1のデジタルアシスタントであって、第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、電子デバイスの第1のユーザから受信し、第1のユーザから、第1の言語による第1の自然言語入力を受信し、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、第1の自然言語入力に対する第1の言語による第1の応答を生成し、第1の応答を1つ以上の外部デバイスに伝送し、第1の応答を伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、第1の言語による第2の自然言語入力であって、第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信し、第1のデジタルアシスタントによって、第2の自然言語入力に対する第1の言語による第2の応答を生成することと、第2の応答を1つ以上の外部デバイスに伝送する。
【0018】
例示的な電子デバイスは、電子デバイス上で動作している第1のデジタルアシスタントであって、第1のデジタルアシスタントは、第1の言語で動作するように構成されている、第1のデジタルアシスタントを呼び出すための入力を、電子デバイスの第1のユーザから受信し、第1のユーザから、第1の言語による第1の自然言語入力を受信し、第1のデジタルアシスタントを呼び出したことに従って、第1のデジタルアシスタントによって、第1の自然言語入力に対する第1の言語による第1の応答を生成し、第1の応答を1つ以上の外部デバイスに伝送し、第1の応答を伝送した後に、1つ以上の外部デバイスのうちの外部デバイスから、第1の言語による第2の自然言語入力であって、第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく受信され、第2のデジタルアシスタントは、第2の言語で動作するように構成されている、第2の自然言語入力を受信し、第1のデジタルアシスタントによって、第2の自然言語入力に対する第1の言語による第2の応答を生成することと、第2の応答を1つ以上の外部デバイスに伝送する手段を備える。
【0019】
第1のデジタルアシスタントによって生成された第2の応答を第1の言語で伝送することは、通信セッションの参加者に、任意の参加者が、直近に呼び出されたデジタルアシスタントが動作するように構成された言語でフォローアップ要求(例えば、第2の自然言語入力)をデジタルアシスタントに正常に発行し得るというフィードバックを提供する。したがって、参加者は、例えば、通信セッション内の複数のデジタルアシスタントがそれぞれ異なる言語で動作するように構成されているにもかかわらず、通信セッション内でデジタルアシスタントと対話するための正しい言語を通知される。加えて、第1のデジタルアシスタントは、(例えば、外部デバイスが伝送された第1の応答を受信した後に)デジタルアシスタントを呼び出すための入力を必要とすることなく、フォローアップ要求に対する第2の応答を生成してもよく、それによって、タスクの実施を成功させるために必要なユーザ入力の数が低減される。改善されたフィードバックを参加者に提供し、デジタルアシスタントがタスクを実施するのに必要な入力の数を低減することは、デバイスの操作性を向上させ、(例えば、ユーザが適切な入力を提供するのを助け、デバイスと対話するときのユーザの誤りを低減することによって)ユーザ-デバイスインタフェースをより効率的にし、加えて、電力使用量を低減し、ユーザがデバイスをより迅速且つ効率的に使用することを可能にすることによってデバイスのバッテリ寿命を改善する。
【図面の簡単な説明】
【0020】
図1】様々な実施例による、デジタルアシスタントを実行するためのシステム及び環境を示すブロック図である。
図2A】様々な実施例による、デジタルアシスタントのクライアント側部分を実行するポータブル多機能デバイスを示すブロック図である。
図2B】様々な実施例による、イベント処理のための例示的な構成要素を示すブロック図である。
図3】様々な実施例による、デジタルアシスタントのクライアント側部分を実行するポータブル多機能デバイスを示す図である。
図4】様々な実施例による、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。
図5A】様々な実施例による、ポータブル多機能デバイス上のアプリケーションのメニューに関する、例示的なユーザインタフェースを示す図である。
図5B】様々な実施例による、ディスプレイとは別個のタッチ感知面を有する多機能デバイスに関する、例示的なユーザインタフェースを示す図である。
図6A】様々な実施例による、パーソナル電子デバイスを示す図である。
図6B】様々な実施例による、パーソナル電子デバイスを示すブロック図である。
図7A】様々な実施例による、デジタルアシスタントシステム又はそのサーバ部分を示すブロック図である。
図7B】様々な実施例による、図7Aに示されるデジタルアシスタントの機能を示す図である。
図7C】様々な実施例による、オントロジの一部分を示す図である。
図8A】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのシステム及び技術を示す。
図8B】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのシステム及び技術を示す。
図8C】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのシステム及び技術を示す。
図8D】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのシステム及び技術を示す。
図8E】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのシステム及び技術を示す。
図8F】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのシステム及び技術を示す。
図8G】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのシステム及び技術を示す。
図8H】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのシステム及び技術を示す。
図9A】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図9B】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図9C】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図9D】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図9E】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図9F】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図10A】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図10B】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図10C】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図10D】様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるデジタルアシスタント対話のための技術を示す。
図11A】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのプロセスを示す。
図11B】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのプロセスを示す。
図11C】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのプロセスを示す。
図12A】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのプロセスを示す。
図12B】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのプロセスを示す。
図13A】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのプロセスを示す。
図13B】様々な実施例による、通信セッションにおけるデジタルアシスタント対話のためのプロセスを示す。
【発明を実施するための形態】
【0021】
以下の実施例の説明では、実践することが可能な特定の実施例が例として示される、添付図面を参照する。それら様々な実施例の範囲から逸脱することなく、他の実施例を使用することができ、構造上の変更を実施することができる点を理解されたい。
【0022】
以下の説明では、様々な要素について説明するために、「第1の」、「第2の」などの用語を使用するが、これらの要素は、それらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明される様々な実施例の範囲から逸脱することなく、第1の入力を第2の入力と呼ぶことが可能であり、同様に、第2の入力を第1の入力と呼ぶことも可能である。第1の入力及び第2の入力は、双方とも入力であり、一部の場合には、別個の異なる入力である。
【0023】
本明細書で説明される様々な実施例の説明で使用される用語法は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明、及び添付の特許請求の範囲で使用するとき、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。また、本明細書で使用されるとき、用語「及び/又は」は、関連する列挙された項目のうちの1つ以上のいずれか及び全ての考えられる組み合わせを指し、且つこれを含むことを理解されたい。用語「includes(含む)」、「including(含む)」、「comprises(含む、備える)」、及び/又は「comprising(含む、備える)」は、本明細書で使用する場合、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらのグループの存在又は追加を除外しないことが更に理解されるであろう。
【0024】
用語「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. システム及び環境
【0025】
図1は、様々な実施例による、システム100のブロック図を示す。一部の実施例では、システム100は、デジタルアシスタントを実行する。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、口頭及び/又はテキスト形式の自然言語入力を解釈することによりユーザ意図を推測して、その推測されたユーザ意図に基づいてアクションを実行する、任意の情報処理システムを指す。例えば、推測されたユーザ意図に基づいて動作するために、システムは、以下のことのうちの1つ以上を実行する:推測されたユーザ意図を果たすように設計されたステップ及びパラメータを有するタスクフローを特定すること、推測されたユーザ意図からの特定の要求事項をタスクフロー内に入力すること、プログラム、方法、サービス、API、若しくは同様のものを呼び出すことによってタスクフローを実行すること、並びに可聴(例えば、発語)及び/又は視覚形式のユーザへの出力応答を生成すること。
【0026】
具体的には、デジタルアシスタントは、少なくとも部分的に、自然言語によるコマンド、要求、意見、談話、及び/又は照会の形態で、ユーザ要求を受け入れることが可能である。典型的には、ユーザ要求は、デジタルアシスタントによる情報回答又はタスクの実行のいずれかを求めるものである。ユーザ要求に対する満足な応答は、要求された情報回答の提供、要求されたタスクの実行、又は、それら2つの組み合わせを含む。例えば、ユーザは、デジタルアシスタントに、「私は今どこにいますか?(Where am I right now?)」などの質問をする。ユーザの現在のロケーションに基づいて、デジタルアシスタントは、「あなたは西ゲート付近の中央公園にいます」と応答する。ユーザはまた、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティに招待してください。」のように、タスクの実行も要求する。それに応じて、デジタルアシスタントは、「はい、ただ今。」と述べて、その要求に肯定応答することができ、次いで、そのユーザの電子アドレス帳にリストされているユーザの友人のそれぞれに、ユーザに代わって、好適なカレンダー招待状を送信することができる。要求されたタスクの実施中に、デジタルアシスタントは、長時間にわたる複数の情報交換を伴う連続的な会話で、ユーザと対話する場合がある。情報又は様々なタスクの実行を要求するためにデジタルアシスタントと対話する、数多くの他の方法が存在する。言葉による応答を提供してプログラムされたアクションを取ることに加えて、デジタルアシスタントはまた、他の視覚形式又は音声形式で、例えば、テキスト、警報、音楽、動画、アニメーションなどで応答を提供する。
【0027】
図1に示すように、一部の実施例では、デジタルアシスタントは、クライアント-サーバモデルに従って実行される。デジタルアシスタントは、ユーザデバイス104上で実行されるクライアント側部分102(以後、「DAクライアント102」)、及びサーバシステム108上で実行されるサーバ側部分106(以後、「DAサーバ106」)を含む。DAクライアント102は、1つ以上のネットワーク110を通じてDAサーバ106と通信する。DAクライアント102は、ユーザ対応入力及び出力処理、並びにDAサーバ106との通信などの、クライアント側機能を提供する。DAサーバ106は、個別のユーザデバイス104上にそれぞれが常駐する、任意の数のDAクライアント102に、サーバ側機能を提供する。
【0028】
一部の実施例では、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は、そのような通信を容易にする。
【0029】
ユーザデバイス104は、任意の好適な電子デバイスとすることができる。一部の実施例では、ユーザデバイス104は、ポータブル多機能デバイス(例えば、図2Aに関連して以下に記載されるデバイス200)、多機能デバイス(例えば、図4に関連して以下に記載されるデバイス400)、又はパーソナル電子デバイス(例えば、図6A図6Bに関連して以下に記載されるデバイス600)である。ポータブル多機能デバイスは、例えば、PDA及び/又は音楽プレーヤ機能などの他の機能も含む携帯電話機である。ポータブル多機能デバイスの具体例としては、Apple Inc.(Cupertino,California)による、Apple Watch(登録商標)、iPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスが挙げられる。ポータブル多機能デバイスの他の例としては、限定するものではないが、イヤホン/ヘッドホン、スピーカ、及び、ラップトップコンピュータ若しくはタブレットコンピュータが挙げられる。更に、一部の実施例では、ユーザデバイス104は、非ポータブル多機能デバイスである。具体的には、ユーザデバイス104は、デスクトップコンピュータ、ゲームコンソール、スピーカ、テレビ、又はテレビセットトップボックスである。一部の実施例では、ユーザデバイス104は、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を含む。更に、ユーザデバイス104は、任意選択的に、物理キーボード、マウス、及び/又はジョイスティックなどの、1つ以上の他の物理ユーザインタフェースデバイスを含む。多機能デバイスなどの電子デバイスの様々な実施例が、以下で更に詳細に説明される。
【0030】
通信ネットワーク(単数又は複数)110の例としては、ローカルエリアネットワーク(local area network;LAN)、及びワイドエリアネットワーク(wide area network;WAN)、例えば、インターネットが挙げられる。通信ネットワーク(単数又は複数)110は、例えば、イーサネット、ユニバーサルシリアルバス(Universal Serial Bus;USB)、FIREWIRE、移動通信用のグローバルシステム(Global System for Mobile Communications;GSM)、拡張データGSM環境(Enhanced Data GSM Environment;EDGE)、符号分割多元接続(code division multiple access;CDMA)、時分割多元接続(time division multiple access;TDMA)、Bluetooth(登録商標)、Wi-Fi(登録商標)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol;VoIP)、Wi-MAX、又は任意の他の好適な通信プロトコルなどの、様々な有線若しくは無線プロトコルを含めた、任意の既知のネットワークプロトコルを使用して実装される。
【0031】
サーバシステム108は、1つ以上のスタンドアロン型データ処理装置、又は分散型のコンピュータネットワーク上に実装される。一部の実施例では、サーバシステム108はまた、サーバシステム108の基本的なコンピューティングリソース及び/又はインフラストラクチャリソースを提供するために、様々な仮想デバイス及び/又はサードパーティサービスプロバイダ(例えば、サードパーティクラウドサービスプロバイダ)のサービスも採用する。
【0032】
一部の実施例では、ユーザデバイス104は、第2のユーザデバイス122を介してDAサーバ106と通信する。第2のユーザデバイス122は、ユーザデバイス104と類似又は同一である。例えば、第2のユーザデバイス122は、図2A図4、及び図6A図6Bに関連して以下で説明されるデバイス200、400、又は600と類似する。ユーザデバイス104は、Bluetooth、NFC、BTLEなどの直接通信接続を介して、又はローカルWi-Fiネットワークなどの有線又は無線ネットワークを介して第2のユーザデバイス122に通信可能に結合されるように構成されている。一部の実施例では、第2のユーザデバイス122は、ユーザデバイス104とDAサーバ106との間のプロキシとしての役割を果たすように構成されている。例えば、ユーザデバイス104のDAクライアント102は、第2のユーザデバイス122を介して、情報(例えば、ユーザデバイス104で受信されたユーザ要求)をDAサーバ106に送信するように構成されている。DAサーバ106は、情報を処理して、第2のユーザデバイス122を介して、関連データ(例えば、ユーザ要求に応答するデータコンテンツ)をユーザデバイス104に返す。
【0033】
一部の実施例では、ユーザデバイス104は、データに関する短縮化された要求により第2のユーザデバイス122と通信することにより、ユーザデバイス104から伝送される情報の量を低減するように構成されている。第2のユーザデバイス122は、その短縮化された要求に追加するべき補足情報を判定して、DAサーバ106に送信するための完全な要求を生成するように構成されている。このシステムアーキテクチャは、制限された通信能力及び/又は制限されたバッテリ電力を有するユーザデバイス104(例えば、腕時計又は類似の小型電子デバイス)が、DAサーバ106へのプロキシとしてより高い通信能力及び/又はバッテリ電力を有する第2のユーザデバイス122(例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータなど)を使用することによってDAサーバ106によって提供されるサービスにアクセスすることを有利に許容することができる。図1では、2つのユーザデバイス104及びユーザデバイス122のみが示されているが、システム100は、一部の実施例では、このプロキシ構成でDAサーバシステム106と通信するように構成された、任意の数及びタイプのユーザデバイスを含むことを理解されたい。
【0034】
図1に示すデジタルアシスタントは、クライアント側部分(例えば、DAクライアント102)とサーバ側部分(例えばDAサーバ106)の両方を含むが、一部の実施例では、デジタルアシスタントの機能は、ユーザデバイスにインストールされた独立したアプリケーションとして実行される。更には、デジタルアシスタントのクライアント部分とサーバ部分との間での機能の割り振りは、実装形態によって異なり得る。例えば、一部の実施例では、DAクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの他の全ての機能をバックエンドサーバに委ねる、シンクライアントである。
2. 電子デバイス
【0035】
ここで、デジタルアシスタントのクライアント側部分を実行するための、電子デバイスの実施形態に注意を向ける。図2Aは、一部の実施形態による、タッチ感知ディスプレイシステム212を備えるポータブル多機能デバイス200を示すブロック図である。タッチ感知ディスプレイ212は、便宜上「タッチスクリーン」と呼ばれることがあり、「タッチ感知ディスプレイシステム」として知られている又は呼ばれることがある。デバイス200は、メモリ202(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ222、1つ以上の処理ユニット(CPU)220、周辺機器インタフェース218、RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、入出力(I/O)サブシステム206、他の入力制御デバイス216、及び外部ポート224を含む。デバイス200は、任意選択的に、1つ以上の光学センサ264を含む。デバイス200は、任意選択的に、デバイス200上の接触の強度を検出する1つ以上の接触強度センサ265(例えば、デバイス200のタッチ感知ディスプレイシステム212などのタッチ感知面)を含む。デバイス200は、任意選択的に、デバイス200上で触知出力を生成する(例えばデバイス200のタッチ感知ディスプレイシステム212又はデバイス400のタッチパッド455などのタッチ感知面上で触知出力を生成する)1つ以上の触知出力生成器267を含む。これらの構成要素は、任意選択的に、1つ以上の通信バス又は信号ライン203を介して通信する。
【0036】
本明細書及び特許請求において使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指の接触)の力若しくは圧力(単位面積当たりの力)、又はタッチ感知面上の接触の力若しくは圧力に対する代理(プロキシ)を指す。接触の強度は、少なくとも4つの別個の値を含み、より典型的には、数百の(例えば、少なくとも256の)別個の値を含む、値の範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組み合わせを使用して、判定(又は測定)される。例えば、タッチ感知面の下又はそれに隣接する1つ以上の力センサは、任意選択的に、タッチ感知面上の様々なポイントにおける力を測定するために使用される。いくつかの実装形態では、複数の力センサからの力測定値が、接触の推定される力を判定するために組み合わされる(例えば、加重平均される)。同様に、スタイラスの感圧性先端部が、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。あるいは、タッチ感知面上で検出される接触エリアのサイズ及び/若しくはその変更、接触に近接するタッチ感知面の電気容量及び/若しくはその変更、並びに/又は、接触に近接するタッチ感知面の抵抗及び/若しくはその変更が、任意選択的に、タッチ感知面上の接触の力又は圧力の代替物として使用される。一部の実装形態では、接触の力又は圧力の代替測定値が、強度閾値を上回っているか否かを判定するために直接使用される(例えば、強度閾値は、代替測定値に対応する単位で記述される)。いくつかの実装形態では、接触力又は圧力の代理測定値は、力又は圧力の推定値に変換され、力又は圧力の推定値が、強度閾値を上回っているか否かを判定するために使用される(例えば、強度閾値は、圧力の単位で測定される圧力閾値である)。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを表示する実装面積が限られている低減されたサイズのデバイス上で、ユーザが他の方法ではアクセス不可能であり得る追加のデバイス機能にユーザがアクセスすること(例えば、タッチ感知ディスプレイ上で)、及び/又は、ユーザ入力を受信すること(例えば、タッチ感知ディスプレイ、タッチ感知面、又は、ノブ若しくはボタンなどの物理的/機械的コントロールを介して)が可能となる。
【0037】
本明細書及び特許請求の範囲で使用されるように、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前のポジションに対するそのデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、そのデバイスの別の構成要素(例えば、筐体)に対する物理的変位、又は、デバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況では、物理的変位によって生成された触知出力は、そのデバイス又はデバイスの構成要素の物理的特性の認識される変更に相当する触感として、ユーザによって解釈されることになる。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として、任意選択的に解釈される。場合によっては、ユーザの動作により物理的に押圧された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の実施例として、タッチ感知面の移動は、タッチ感知面の平滑度に変更がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
【0038】
デバイス200は、ポータブル多機能デバイスの一例に過ぎず、デバイス200は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有するものであり、任意選択的に、2つ以上の構成要素を組み合わせるものであり、又は、任意選択的に、それらの構成要素の異なる構成若しくは配置を有するものであることを理解されたい。図2Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含めた、ハードウェア、ソフトウェア、あるいはハードウェア及びソフトウェアの双方の組み合わせとして実装される。
【0039】
メモリ202は、1つ以上のコンピュータ可読記憶媒体を含む。このコンピュータ可読記憶媒体は、例えば、有形且つ非一時的なものである。メモリ202は、高速ランダムアクセスメモリを含み、また、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリも含む。メモリコントローラ222は、デバイス200の他の構成要素による、メモリ202へのアクセスを制御する。
【0040】
一部の実施例では、メモリ202の非一時的コンピュータ可読記憶媒体は、コンピュータベースのシステム、プロセッサを含むシステムなどの、命令実行システム、装置、若しくはデバイス、又は、その命令実行システム、装置、若しくはデバイスから命令をフェッチして、その命令を実行することが可能な他のシステムによって、あるいはそれらのシステムと関連して使用するための(例えば、以下で説明されるプロセスの諸態様を実行するための)命令を、記憶するために使用される。他の例では、(例えば、以下に説明する処理の態様を実行するための)命令は、サーバシステム108の非一時的コンピュータ可読記憶媒体(図示せず)に記憶されるか、又は、メモリ202の非一時的コンピュータ可読記憶媒体とサーバシステム108の非一時的コンピュータ可読記憶媒体との間で分割される。
【0041】
周辺機器インタフェース218は、このデバイスの入力及び出力周辺機器を、CPU220及びメモリ202に結合するために使用される。1つ以上のプロセッサ220は、メモリ202に記憶された様々なソフトウェアプログラム及び/又は命令セットを動作させる又は実行して、デバイス200のための様々な機能を実行し、データを処理する。一部の実施形態では、周辺機器インタフェース218、CPU220、及びメモリコントローラ222は、チップ204などの単一チップ上に実装される。一部の他の実施形態では、それらは、別個のチップ上に実装される。
【0042】
RF(radio frequency、無線周波数)回路208は、電磁信号とも呼ばれるRF信号を送受信する。RF回路208は、電気信号を電磁信号に又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路208は、任意選択的に、これらの機能を実施するための周知の回路を含み、それらの回路としては、限定するものではないが、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(subscriber identity module、SIM)カード、メモリなどが挙げられる。RF回路208は、任意選択的に、ワールドワイドウェブ(World Wide Web、WWW)とも呼ばれるインターネット、イントラネット、並びに/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(local area network、LAN)及び/若しくはメトロポリタンエリアネットワーク(metropolitan area network、MAN)などの無線ネットワークなどのネットワークと、また他のデバイスと、無線通信によって通信する。RF回路208は、任意選択的に、短距離通信無線機などによって近距離通信(near field communication、NFC)フィールドを検出するよく知られている回路を含む。無線通信は、任意選択的に、それだけに限定されるものではないが、動き通信用のグローバルシステム(Global System for Mobile Communications、GSM)、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケットアクセス(high-speed downlink packet access、HSDPA)、高速アップリンクパケットアクセス(high-speed uplink packet access、HSUPA)、エボリューションデータオンリ(Evolution,Data-Only、EV-DO)、HSPA、HSPA+、デュアルセルHSPA(Dual-Cell HSPA、DC-HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離通信(NFC)、広帯域符号分割多元接続(wideband code division multiple access、W-CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth、Bluetoothローエネルギ(Bluetooth Low Energy、BTLE(登録商標))、ワイヤレスフィデリティ(Wireless Fidelity、Wi-Fi)(例えば、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、及び/若しくはIEEE 802.11ac)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi-MAX(登録商標)、電子メール用プロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/若しくはポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能なメッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、XMPP)、インスタントメッセージング及びプレゼンスレベレイジングエクステンションのためのセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、並びに/若しくはショートメッセージサービス(Short Message Service、SMS)、又は本明細書の出願日の時点でまだ開発されていない通信プロトコルを含む任意の他の適した通信プロトコルを含む、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
【0043】
オーディオ回路210、スピーカ211、及びマイクロフォン213は、ユーザとデバイス200との間のオーディオインタフェースを提供する。オーディオ回路210は、周辺機器インタフェース218からオーディオデータを受信し、オーディオデータを電気信号に変換し、電気信号をスピーカ211に伝送する。スピーカ211は、電気信号を人間の可聴音波に変換する。また、オーディオ回路210は、マイクロフォン213によって音波から変換された電気信号を受信する。オーディオ回路210は、電気信号をオーディオデータに変換し、このオーディオデータを処理のために周辺機器インタフェース218に伝送する。オーディオデータは、周辺機器インタフェース218によって、メモリ202及び/又はRF回路208から取得され、並びに/あるいは、メモリ202及び/又はRF回路208に送信される。いくつかの実施形態では、オーディオ回路210はまた、ヘッドセットジャック(例えば、図3の312)を含む。ヘッドセットジャックは、オーディオ回路210と、出力専用ヘッドホン又は出力(例えば片耳又は両耳用のヘッドホン)及び入力(例えばマイクロフォン)の両方を備えるヘッドセットなどの着脱可能なオーディオ入出力周辺機器との間のインタフェースを提供する。
【0044】
I/Oサブシステム206は、タッチスクリーン212及び他の入力制御デバイス216などの、デバイス200上の入出力周辺機器を周辺機器インタフェース218に結合する。I/Oサブシステム206は、ディスプレイコントローラ256、光学センサコントローラ258、強度センサコントローラ259、触覚フィードバックコントローラ261、及び他の入力又は制御デバイスのための1つ以上の入力コントローラ260を任意選択的に含む。1つ以上の入力コントローラ260は、他の入力制御デバイス216から/へ電気信号を受信/送信する。他の入力制御デバイス216は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的な実施形態では、入力コントローラ(単数又は複数)260は、任意選択的に、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに結合される(又はいずれにも結合されない)。1つ以上のボタン(例えば、図3の308)は、スピーカ211及び/又はマイクロフォン213の音量制御のためのアップ/ダウンボタンを任意選択的に含む。1つ以上のボタンは、プッシュボタン(例えば、図3の306)を任意選択的に含む。
【0045】
プッシュボタンを素早く押圧すると、タッチスクリーン212のロックを解除するか、又は2005年12月23日に出願された米国特許出願第11/322,549号、米国特許第7,657,849号の「Unlocking a Device by Performing Gestures on an Unlock Image」に記載されているように、デバイスのロック解除のためにタッチスクリーン上でジェスチャを使う処理を開始し、その全体が参照により本明細書に組み込まれる。プッシュボタン(例えば、306)を長く押圧すると、デバイス200の電源をオン又はオフする。ユーザは、1つ以上のボタンの機能をカスタマイズすることができる。タッチスクリーン212は、仮想又はソフトボタン及び1つ以上のソフトキーボードを実装するために使用される。
【0046】
タッチ感知ディスプレイ212は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ256は、タッチスクリーン212からの電気信号の受信、及び/又はタッチスクリーン212への電気信号の送信を行う。タッチスクリーン212は、ユーザに対して視覚的出力を表示する。視覚出力は、グラフィックス、テキスト、アイコン、動画、及びそれらの任意の組み合わせ(まとめて「グラフィックス」と呼ばれる)を含む。一部の実施形態では、視覚出力のいくつか又は全部が、ユーザインタフェースオブジェクトに対応する。
【0047】
タッチスクリーン212は、触覚及び/又は触知接触に基づくユーザからの入力を受け入れるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン212及びディスプレイコントローラ256は、(メモリ202内の任意の関連モジュール及び/又は命令セットと共に)、タッチスクリーン212上で接触(及び任意の接触の移動又は中断)を検出し、検出された接触をタッチスクリーン212に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との相互作用に変換する。例示的な実施形態では、タッチスクリーン212とユーザとの間の接触点は、ユーザの指に対応する。
【0048】
タッチスクリーン212は、LCD(液晶ディスプレイ)技術、LPD(発光ポリマーディスプレイ)技術、又はLED(発光ダイオード)技術を用いるが、他の実施形態では他のディスプレイ技術を使用してもよい。タッチスクリーン212及びディスプレイコントローラ256は、容量性、抵抗性、赤外線及び表面弾性波技術、並びに他の近接センサアレイ又はタッチスクリーン212を用いて1つ以上の接触点を判定する他の要素を含むがこれに限定されない現在知られている又は今後開発される複数のタッチ感知技術のいずれかを使用して接触及びその移動又は切断を検出する。例示的な実施形態では、カリフォルニア州クパチーノのApple Inc.からのiPhone(登録商標)及びiPod Touch(登録商標)に見られるものなどの、投影型相互静電容量感知技術が使用される。
【0049】
タッチスクリーン212のいくつかの実施形態のタッチ感知ディスプレイは、米国特許6,323,846(Westermanら)、6,570,557(Westermanら)及び/又は6,677,932(Westerman)及び/又は米国特許公開2002/0015024(A1)に記載されたマルチタッチ感知タッチパッドと類似しており、これらの各々は、参照によりその全体が本明細書に組み込まれる。しかし、タッチスクリーン212はデバイス200からの視覚的出力を表示するのに対して、タッチ感知タッチパッドは視覚的出力を提供しない。
【0050】
タッチスクリーン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」で説明されているようなものである。これらの出願は全て、全体が参照により本明細書に組み込まれる。
【0051】
タッチスクリーン212は、例えば、100dpiを超えるビデオ解像度を有する。いくつかの実施形態では、タッチスクリーンは、約160dpiの動画解像度を有する。ユーザは、スタイラス、指などの好適なオブジェクト又は付属物を使用してタッチスクリーン212に接触する。いくつかの実施形態では、ユーザインタフェースは、指ベースの接触及びジェスチャを主に使用して動作するように設計されるが、これは、タッチスクリーン上の指の接触面積がより大きいため、スタイラスベースの入力ほど正確でない可能性がある。いくつかの実施形態では、デバイスは、指による粗い入力を、ユーザによって所望されているアクションを実行するための、正確なポインタ/カーソルのポジション又はコマンドに変換する。
【0052】
一部の実施形態では、タッチスクリーンに加えて、デバイス200は、特定の機能をアクティブにする又は非アクティブにするタッチパッド(図示しない)を含む。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚的出力を表示しない、デバイスのタッチ感知エリアである。タッチパッドは、タッチスクリーン212とは別個のタッチ感知面であるか、又はタッチスクリーンによって形成されたタッチ感知面の延長である。
【0053】
デバイス200は、様々な構成要素に電力を供給する電力システム262も含む。電力システム262は、電力管理システム、1つ以上の電源(例えばバッテリ、交流(AC))、充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、及びポータブルデバイスにおける電力の生成、管理及び分配に関連付けられた任意の他の構成要素を含む。
【0054】
デバイス200はまた、1つ以上の光学センサ264を含む。図2Aは、I/Oサブシステム206内の光学センサコントローラ258に結合されている、光学センサを示す。光学センサ264は、電荷結合素子(charge-coupled device;CCD)又は相補的金属酸化物半導体(complementary metal-oxide semiconductor;CMOS)フォトトランジスタを含む。光学センサ264は、1つ以上のレンズを通って投影された環境からの光を受信し、その光を、画像を表すデータに変換する。撮像モジュール243(カメラモジュールとも呼ばれるもの)と連動して、光学センサ264は、静止画像又はビデオをキャプチャする。一部の実施形態では、光学センサは、タッチスクリーンディスプレイが静止画像及び/又は動画取得のためのビューファインダとして使用されるように、デバイスの前面のタッチスクリーンディスプレイ212とは反対のデバイス200の背面に配置される。一部の実施形態では、光学センサは、ユーザがタッチスクリーンディスプレイで他のテレビ会議参加者を見る間にビデオ会議のためのユーザの画像が取得されるように、デバイスの前面に配置される。いくつかの実施形態では、光学センサ264のポジションは、ユーザによって(例えば、デバイス筐体内でレンズ及びセンサを回転させることによって)変更することができ、したがって単一の光学センサ264が、タッチスクリーンディスプレイと共に、テレビ会議にも静止画像及び/又は動画の取得にも使用される。
【0055】
デバイス200はまた、任意選択的に、1つ以上の接触強度センサ265を含む。図2Aは、I/Oサブシステム206内の強度センサコントローラ259に結合されている、接触強度センサを示す。接触強度センサ265は、任意選択的に、1つ以上のピエゾ抵抗ひずみゲージ、容量性力センサ、電気力センサ、圧電力センサ、光学力センサ、容量性タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(若しくは圧力)を測定するために使用されるセンサ)を含む。接触強度センサ265は、接触強度情報(例えば、圧力情報、又は圧力情報に対するプロキシ)を環境から受信する。いくつかの実施形態では、少なくとも1つの接触強度センサは、タッチ感知面(例えばタッチ感知ディスプレイシステム212)と並置される、又はそれに近接される。いくつかの実施形態では、少なくとも1つの接触強度センサは、デバイス200の前面に配置されたタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置される。
【0056】
デバイス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をオフにして無効化する。
【0057】
デバイス200はまた、任意選択的に、1つ以上の触知出力生成器267を含む。図2Aは、I/Oサブシステム206内の触覚フィードバックコントローラ261に結合されている、触知出力生成器を示す。触知出力生成器267は、任意選択的に、スピーカ若しくは他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などのエネルギーを直線の動きに変換する電気機械デバイスを含む。接触強度センサ265は、触知フィードバック生成命令を触覚フィードバックモジュール233から受信し、デバイス200のユーザが感知することが可能な触知出力をデバイス200上に生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)と並置される、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス200の表面の内/外)に、又は水平方向(例えば、デバイス200の表面と同じ平面内の前後)に移動させることによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス200の前面に配置されたタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置される。
【0058】
デバイス200はまた、1つ以上の加速度計268も含む。図2Aは、周辺機器インタフェース218に結合されている、加速度計268を示す。代替的に、加速度計268は、I/Oサブシステム206内の入力コントローラ260に結合される。加速度計268は、例えば、米国特許公開第20050190059号の「ポータブ電子デバイスのための加速度ベースの窃盗検出」、及び、米国特許公開第20060017692号の「Acceleration-based Theft Detection System for Portable Electronic Devices」に記載のように動作し、これらの両方は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、縦長表示又は横長表示でタッチスクリーンディスプレイに表示される。デバイス200は、任意選択的に、加速度計(単数又は複数)268に加えて、磁気計(図示せず)、並びにデバイス200のロケーション及び向き(例えば、縦向き又は横向き)に関する情報を取得するためのGPS(又はGLONASS若しくは他のグローバルナビゲーションシステム)受信機(図示せず)を含む。
【0059】
一部の実施形態では、メモリ202に記憶されているソフトウェア構成要素は、オペレーティングシステム226、通信モジュール(又は、命令セット)228、接触/動きモジュール(又は、命令セット)230、グラフィックモジュール(又は、命令セット)232、テキスト入力モジュール(又は、命令セット)234、全地球測位システム(Global Positioning System;GPS)モジュール(又は、命令セット)235、デジタルアシスタントクライアントモジュール229、及びアプリケーション(又は、命令セット)236を含む。更には、メモリ202は、ユーザデータ及びモデル231などの、データ及びモデルを記憶している。更には、一部の実施形態では、図2A及び図4に示すように、メモリ202(図2A)又はメモリ470(図4)は、デバイス/グローバル内部状態257を記憶している。デバイス/グローバル内部状態257は、現在アクティブ状態のアプリケーションがある場合に、どのアプリケーションがアクティブであるかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ212の様々な領域を占めているかを示す表示状態、デバイスの様々なセンサ及び入力制御デバイス216から取得した情報を含むセンサ状態、並びにデバイスのロケーション及び/又は姿勢に関するロケーション情報のうちの1つ以上を含む。
【0060】
オペレーティングシステム226(例えば、Darwin、RTXC、LINUX、UNIX、OS X、iOS、WINDOWS、又はVxWorksなどの組込み型オペレーティングシステム)は、全般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理する様々なソフトウェア構成要素及び/又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を容易にする。
【0061】
通信モジュール228は、1つ以上の外部ポート224を介して他のデバイスとの通信を容易にし、RF回路208及び/又は外部ポート224が受信したデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート224(例えば、ユニバーサルシリアルバス(Universal Serial Bus、USB)、FIREWIREなど)は、直接的に、又はネットワーク(例えばインターネット、無線LANなど)を介して間接的に、他のデバイスに結合するように適合されている。いくつかの実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイス上で使用される30ピンコネクタと同じ若しくは同様であり、且つ/又はそれに適合しているマルチピン(例えば、30ピン)コネクタである。
【0062】
接触/動きモジュール230は、任意選択的に、タッチスクリーン212及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を(ディスプレイコントローラ256と連携して)検出する。接触/動きモジュール230は、接触が生じたか否かを判定すること(例えば、指ダウンイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が中止したか否かを判定すること(例えば、指アップイベント又は接触の中断を検出すること)などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェア構成要素を含む。接触/動きモジュール230は、タッチ感知面から接触データを受信する。一連の接触データによって表される、接触点の移動を判定することは、任意選択的に、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変更)を判定することを含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール230及びディスプレイコントローラ256は、タッチパッド上の接触を検出する。
【0063】
いくつかの実施形態では、接触/動きモジュール230は、ユーザによって動作が実行されたか否かを判定するために(例えば、ユーザがアイコン上で「クリック」したか否かを判定するために)、1つ以上の強度閾値のセットを使用する。いくつかの実施形態では、強度閾値の少なくともサブセットは、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されるのではなく、デバイス200の物理ハードウェアを変更することなく調整することができる)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイハードウェアを変更することなく、広範囲の規定の閾値のうちのいずれかに設定することができる。加えて、いくつかの実装形態では、デバイスのユーザに、(例えば、個々の強度閾値を調整すること、及び/又は複数の強度閾値をシステムレベルのクリック「強度」パラメータによって一度に調整することによって)強度閾値のセットのうちの1つ以上を調整するソフトウェア設定が提供される。
【0064】
接触/動きモジュール230は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターンを有する(例えば検出される接触の動き、タイミング、及び/又は強度が異なる)。したがって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指タップジェスチャを検出することは、指ダウンイベントを検出し、それに続いて指ダウンイベントと同じポジション(又は実質的に同じポジション)(例えば、アイコンのポジション)で指アップ(リフトオフ)イベントを検出することを含む。別の例として、タッチ感知面上で指スワイプジェスチャを検出することは、指ダウンイベントを検出し、それに続いて1つ以上の指ドラッグイベントを検出し、その後それに続いて指アップ(リフトオフ)イベントを検出することを含む。
【0065】
グラフィックモジュール232は、表示されるグラフィックの視覚的な影響(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚的プロパティ)を変更する構成要素を含む、タッチスクリーン212又は他のディスプレイ上にグラフィックをレンダリング及び表示する様々な既知のソフトウェア構成要素を含む。本明細書で使用するとき、用語「グラフィック」は、ユーザに対して表示することが可能な任意のオブジェクトを含み、それらのオブジェクトとしては、限定するものではないが、テキスト、ウェブページ、アイコン(ソフトキーを含めた、ユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられる。
【0066】
いくつかの実施形態では、グラフィックモジュール232は、使用されることになるグラフィックを表すデータを記憶する。各グラフィックには、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール232は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィックプロパティデータと共に、表示されることとなるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ256に出力するスクリーンの画像データを生成する。
【0067】
触覚フィードバックモジュール233は、触知出力生成器(単数又は複数)267によって使用される命令を生成するための様々なソフトウェア構成要素を含み、ユーザのデバイス200との相互作用に応じて、デバイス200上の1つ以上のロケーションでの触知出力を生成する。
【0068】
グラフィックモジュール232のコンポーネントであるテキスト入力モジュール234は、一部の実施例では、様々なアプリケーション(例えば、連絡先237、電子メール240、IM241、ブラウザ247、及びテキスト入力を必要とする他の任意のアプリケーション)でテキストを入力するためのソフトキーボードを提供する。
【0069】
GPSモジュール235は、デバイスのロケーションを判定し、様々なアプリケーション内で使用するためにこの情報を提供する(例えば、ロケーションベースのダイアリングで使用するために電話238へ、ピクチャ/ビデオメタデータとしてカメラ243へ、及び気象ウィジェット、ローカルイエローページウィジェット、及び地図/ナビゲーションウィジェットなどのロケーションベースのサービスを提供するアプリケーションへ)。
【0070】
デジタルアシスタントクライアントモジュール229は、デジタルアシスタントのクライアント側機能を提供するための、様々なクライアント側デジタルアシスタント命令を含む。例えば、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なユーザインタフェース(例えば、マイクロフォン213、加速度計(単数又は複数)268、タッチ感知ディスプレイシステム212、光学センサ(単数又は複数)264、他の入力制御デバイス216など)を通じて、音声入力(例えば、発話入力)、テキスト入力、タッチ入力、及び/又はジェスチャ入力を受け入れることが可能である。デジタルアシスタントクライアントモジュール229はまた、ポータブル多機能デバイス200の様々な出力インタフェース(例えば、スピーカ211、タッチ感知ディスプレイシステム212、触知出力生成器(単数又は複数)267など)を介して、オーディオ(例えば、発話出力)、視覚、及び/又は触知形状の出力などを提供することができる。例えば、出力は、音声、サウンド、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び/又は上記のうちの2つ以上の組み合わせとして提供される。動作の間に、デジタルアシスタントクライアントモジュール229は、RF回路208を使用して、DAサーバ106と通信する。
【0071】
ユーザデータ及びモデル231は、デジタルアシスタントのクライアント側機能を提供するための、ユーザに関連付けられた様々なデータ(例えば、ユーザ固有語彙データ、ユーザ選好データ、ユーザ指定の名前の発音、ユーザの電子アドレス帳からのデータ、to doリスト、買い物リストなど)を含む。更には、ユーザデータ及びモデル231は、ユーザ入力を処理して、ユーザ意図を判定するための、様々なモデル(例えば、音声認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデルなど)を含む。
【0072】
一部の実施例では、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なセンサ、サブシステム、及び周辺機器を利用して、ポータブル多機能デバイス200の周囲環境から追加情報を収集することにより、ユーザ、現在のユーザ対話、及び/又は現在のユーザ入力に関連付けられる、コンテキストを確立する。一部の実施例では、デジタルアシスタントクライアントモジュール229は、ユーザの意図の推測を支援するために、ユーザ入力と共に、コンテキスト情報又はそのサブセットを、DAサーバ106に提供する。一部の実施例では、デジタルアシスタントはまた、どのようにしてユーザへの出力を準備及び配信するかを判定するためにも、コンテキスト情報を使用する。コンテキスト情報は、コンテキストデータと称される。
【0073】
一部の実施例では、ユーザ入力を伴うコンテキスト情報は、センサ情報、例えば、照明、周囲ノイズ、周囲温度、周囲環境の画像又は動画などを含む。一部の実施例では、コンテキスト情報はまた、デバイスの物理状態、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速度、加速度、動きパターン、セルラー信号強度なども含み得る。一部の実施例では、DAサーバ106のソフトウェア状態、例えば、稼働中のプロセス、インストール済みのプログラム、過去及び現在のネットワークアクティビティ、バックグラウンドサービス、エラーログ、リソース使用量などに関する情報、並びにポータブル多機能デバイス200のソフトウェア状態に関する情報が、ユーザ入力に関連付けられたコンテキスト情報として、DAサーバ106に提供される。
【0074】
一部の実施例では、デジタルアシスタントクライアントモジュール229は、DAサーバ106からの要求に応じて、ポータブル多機能デバイス200上に記憶されている情報(例えば、ユーザデータ231)を選択的に提供する。一部の実施例では、デジタルアシスタントクライアントモジュール229はまた、DAサーバ106による要求に応じて、自然言語ダイアログ又は他のユーザインタフェースを介して、ユーザから追加入力も引き出す。デジタルアシスタントクライアントモジュール229は、ユーザ要求内に表現されているユーザの意図の、意図推論及び/又は遂行の際に、DAサーバ106を支援するために、その追加入力をDAサーバ106に渡す。
【0075】
より詳細なデジタルアシスタントの説明は、図7A図7Cを参照して以下で説明される。デジタルアシスタントクライアントモジュール229は、以下に説明するデジタルアシスタントモジュール726の任意の数のサブモジュールを含み得ることを認識すべきである。
【0076】
アプリケーション236は、以下のモジュール(又は命令のセット)、又はそのサブセット又はスーパーセットを含む。
●連絡先モジュール237(アドレス帳又は連絡先リストと称されることもある)、
●電話モジュール238、
●テレビ会議モジュール239、
●電子メールクライアントモジュール240、
●インスタントメッセージング(IM)モジュール241、
●トレーニングサポートモジュール242、
●静止画像及び/又は動画用のカメラモジュール243、
●画像管理モジュール244、
●動画プレーヤモジュール、
●音楽プレーヤモジュール、
●ブラウザモジュール247、
●カレンダーモジュール248、
●ウィジェットモジュール249であって、一部の実施例では、気象ウィジェット249-1、株価ウィジェット249-2、計算機ウィジェット249-3、目覚まし時計ウィジェット249-4、辞書ウィジェット249-5、及びユーザが得た他のウィジェット並びにユーザ作成ウィジェット249-6のうちの1つ以上を含む、ウィジェットモジュール、
●ユーザ作成ウィジェット249-6を作成するためのウィジェットクリエータモジュール250、
●検索モジュール251、
●動画プレーヤモジュール及び音楽プレーヤモジュールを一体化した動画及び音楽プレーヤモジュール252、
●メモモジュール253、
●地図モジュール254、並びに/又は
●オンラインビデオモジュール255。
【0077】
メモリ202に格納される他のアプリケーション236の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【0078】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連動して、連絡先モジュール237は、アドレス帳に名前(単数又は複数)を追加すること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、電子メールアドレス(単数又は複数)、物理住所(単数又は複数)、又は他の情報を名前に関連付けることを含む、アドレス帳又は連絡先リスト(例えば、メモリ202又はメモリ470の連絡先モジュール237のアプリケーション内部状態292に記憶される)を管理するために使用される。画像を名前に関連付けること、名前を分類して並べ替えること、電話238、テレビ会議モジュール239、電子メール240、又はIM241による通信を開始及び/又は容易にするために、電話番号又は電子メールアドレスを提供することなどが含まれる。
【0079】
RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連動して、電話モジュール238は、電話番号に対応する文字列を入力し、連絡先モジュール237内の1つ以上の電話番号にアクセスし、入力された電話番号を修正し、個別の電話番号をダイヤルし、会話を行い、会話が完了したら切断又は電話を切るために使用される。このように、無線通信は、複数の通信規格、プロトコル、及び技術のいずれかを用いる。
【0080】
テレビ会議モジュール239は、RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、光学センサ264、光学センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、連絡先モジュール237、及び電話モジュール238と連携して、ユーザ命令に従って、ユーザと1人以上の他の参加者との間のテレビ会議を開始、実施、及び終了するための実行可能命令を含む。
【0081】
電子メールクライアントモジュール240は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ユーザ命令に応じて電子メールを作成、送信、受信、及び管理するための実行可能命令を含む。画像管理モジュール244と連携して、電子メールクライアントモジュール240は、カメラモジュール243で撮影された静止画像又は動画画像を有する電子メールの作成及び送信を非常に容易にする。
【0082】
インスタントメッセージングモジュール241は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、インスタントメッセージに対応する一連の文字の入力、以前に入力された文字の修正、(例えば、電話通信ベースのインスタントメッセージ向けのショートメッセージサービス(Short Message Service、SMS)若しくはマルチメディアメッセージサービス(Multimedia Message Service、MMS)プロトコル、又はインターネットベースのインスタントメッセージ向けのXMPP、SIMPLE、若しくはIMPSを使用する)個別のインスタントメッセージの伝送、インスタントメッセージの受信、及び受信したインスタントメッセージの閲覧のための実行可能な命令を含む。一部の実施形態では、送信及び/又は受信されたインスタントメッセージは、グラフィックス、写真、オーディオファイル、ビデオファイル並びに/又は、MMS及び/若しくは強化されたメッセージングサービス(EMS)でサポートされた他のアタッチメントを含む。本明細書では、「インスタントメッセージング」とは、電話通信ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)と、インターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)との両方を指す。
【0083】
トレーニングサポートモジュール242は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、地図モジュール254、及び音楽プレーヤモジュールと連携して、トレーニング(例えば、時間、距離、及び/又はカロリー燃焼目標を伴う)を作成するための実行可能命令を含む。トレーニングセンサ(スポーツデバイス)と通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニングのための音楽を選択及び再生し、並びに、トレーニングデータを表示、記憶、及び送信する。
【0084】
カメラモジュール243は、タッチスクリーン212、ディスプレイコントローラ256、光学センサ(単数又は複数)264、光学センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、及び画像管理モジュール244と連携して、静止画像若しくは(動画ストリームを含む)動画のキャプチャ及びメモリ202内への記憶、静止画像若しくは動画の特性の修正、又はメモリ202からの静止画像若しくは動画を削除するための実行可能な命令を含む。
【0085】
画像管理モジュール244は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びカメラモジュール243と連携して、静止画像及び/若しくは動画の配置、修正(例えば、編集)、又はその他の操作、ラベル付け、削除、(例えば、デジタルスライドショー若しくはアルバムにおける)提示、及び記憶のための実行可能な命令を含む。
【0086】
ブラウザモジュール247は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ウェブページ又はその一部、並びにウェブページにリンクされた添付ファイル及び他のファイルの検索、リンク、受信、及び表示を含む、ユーザの命令に従ってインターネットをブラウジングするための実行可能な命令を含む。
【0087】
カレンダーモジュール248は、RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、ユーザの命令に従って、カレンダー及びカレンダーに関連付けられたデータ(例えば、カレンダーアイテム、to-doリストなど)を作成、表示、修正、及び記憶するための実行可能な命令を含む。
【0088】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びブラウザモジュール247と連動して、ウィジェットモジュール249は、ユーザによってダウンロード及び使用され得る(例えば、気象ウィジェット249-1、株価ウィジェット249-2、計算機ウィジェット249-3、目覚まし時計ウィジェット249-4、及び辞書ウィジェット249-5)、又はユーザによって作成され得る(例えば、ユーザ作成ウィジェット249-6)ミニアプリケーションである。いくつかの実施形態では、ウィジェットは、HTML(Hypertext Markup Language、ハイパーテキストマークアップ言語)ファイル、CSS(Cascading Style Sheets、カスケーディングスタイルシート)ファイル、及びJavaScriptファイルを含む。いくつかの実施形態では、ウィジェットは、XML(Extensible Markup Language、拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!ウィジェット)を含む。
【0089】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びブラウザモジュール247と連動して、ウィジェット作成モジュール250は、ウィジェットを作成するためにユーザによって使用される(例えば、ウェブページのユーザ指定部分をウィジェットに変える)。
【0090】
検索モジュール251は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ユーザの命令に従って1つ以上の検索基準(例えば、1つ以上のユーザ指定検索語)と一致するメモリ202内の文字、音楽、サウンド、画像、動画、及び/又は他のファイルを検索するための実行可能な命令を含む。
【0091】
動画及び音楽プレーヤモジュール252は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、及びブラウザモジュール247と連携して、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽及び他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能な命令、並びに動画を(例えば、タッチスクリーン212上又は外部ポート224を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための実行可能な命令を含む。いくつかの実施形態では、デバイス200は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を含む。
【0092】
メモモジュール253は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ユーザの命令に従ってメモ、to-doリストなどを作成及び管理するための実行可能な命令を含む。
【0093】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、及びブラウザモジュール247と連動して、地図モジュール254は、ユーザの命令に従って地図及び地図に関連付けられたデータ(例えば、運転指示、店舗に関するデータ、特定の場所又はその近くの他のロケーション、及び他のロケーションベースのデータ)を受信、表示、修正、及び格納するために使用される。
【0094】
オンライン動画モジュール255は、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、ユーザが特定のオンライン動画へのアクセス、特定のオンライン動画のブラウジング、(例えば、ストリーミング及び/又はダウンロードによる)受信、(例えば、タッチスクリーン上又は外部ポート224を介して接続された外部ディスプレイ上の)再生、特定のオンライン動画へのリンクを有する電子メールの送信、並びにH.264などの1つ以上のファイル形式のオンライン動画の他の管理を行うことを可能にする命令を含む。いくつかの実施形態では、特定のオンライン動画へのリンクを送信するために、電子メールクライアントモジュール240ではなく、インスタントメッセージングモジュール241が使用される。オンライン動画アプリケーションについての追加の説明は、その内容の全体が参照により本明細書に組み込まれる、2007年6月20日出願の米国仮特許出願第60/936,562号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」、及び2007年12月31日出願の米国特許出願第11/968,067号、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」を参照されたい。
【0095】
上記で識別したモジュール及びアプリケーションは各々、前述した1つ以上の機能及び本出願に記載した方法(例えば、本明細書に記載したコンピュータにより実行される方法及び他の情報処理方法)を実行する実行可能な命令のセットに対応する。これらのモジュール(例えば、命令のセット)は、個別のソフトウェアプログラム、手順、又はモジュールとして実装する必要がないので、様々な実施形態でこれらのモジュールの様々なサブセットを組み合わせる又はさもなければ再構成することができる。例えば、ビデオプレーヤモジュールは、単一モジュール(例えば、ビデオ及び音楽プレーヤモジュール252、図2A)に音楽プレーヤモジュールと組み合わせることができる。一部の実施形態では、メモリ202は、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ202は、上述しない追加モジュール及びデータ構造を記憶する。
【0096】
いくつかの実施形態では、デバイス200は、そのデバイスにおける既定の機能のセットの動作がタッチスクリーン及び/又はタッチパッドのみを介して実行されるデバイスである。デバイス200の動作のためのプライマリ入力制御デバイスとして、タッチスクリーン及び/又はタッチパッドを用いることにより、デバイス200上の物理的な入力制御デバイス(押しボタン、ダイヤルなど)の数が削減される。
【0097】
タッチスクリーン及び/又はタッチパッドを通じてのみ実行される既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされたときに、デバイス200上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス200をナビゲートする。このような実施形態では、「メニューボタン」は、タッチパッドを使用して実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドではなく、物理プッシュボタン又はその他の物理入力制御デバイスである。
【0098】
図2Bは、一部の実施形態による、イベント処理のための例示的な構成要素を示すブロック図である。一部の実施形態では、メモリ202(図2A)又はメモリ470(図4)は、イベントソータ270(例えば、オペレーティングシステム226内)及び個別のアプリケーション236-1(例えば、前述のアプリケーション237~251、255、480~490のうちのいずれか)を含む。
【0099】
イベントソート部270は、イベント情報を受信し、イベント情報を配信するアプリケーション236-1、及びアプリケーション236-1のアプリケーションビュー291を判定する。イベントソート部270は、イベントモニタ271及びイベントディスパッチャモジュール274を含む。いくつかの実施形態では、アプリケーション236-1は、アプリケーションがアクティブ又は実行中であるときにタッチ感知ディスプレイ212に表示される現在のアプリケーションビュー(単数又は複数)を示すアプリケーション内部状態292を含む。いくつかの実施形態では、デバイス/グローバル内部状態257は、どのアプリケーション(単数又は複数)が現在アクティブであるかを判定するためにイベントソート部270によって使用され、アプリケーション内部状態292は、イベント情報が配信されるアプリケーションビュー291を判定するためにイベントソート部270によって使用される。
【0100】
いくつかの実施形態では、アプリケーション内部状態292は、アプリケーション236-1が実行を再開するときに使用すべき再開情報、アプリケーション236-1によって表示されている情報を示す又は表示する準備ができたユーザインタフェース状態情報、ユーザがアプリケーション236-1の前の状態又はビューに戻ることを可能にする状態キュー、及びユーザによって行われた前のアクションのリドゥ/アンドゥキューのうちの1つ以上などの追加情報を含む。
【0101】
イベントモニタ271は、周辺機器インタフェース218からイベント情報を受信する。イベント情報は、サブイベント(例えば、タッチ感知ディスプレイ212でのマルチタッチジェスチャの一部としてのユーザタッチ)に関する情報を含む。周辺機器インタフェース218は、I/Oサブシステム206、又は近接センサ266、加速度計(単数又は複数)268、及び/若しくは(オーディオ回路210を介した)マイクロフォン213などのセンサから受信する情報を伝送する。周辺機器インタフェース218がI/Oサブシステム206から受信する情報は、タッチ感知ディスプレイ212又はタッチ感知面からの情報を含む。
【0102】
いくつかの実施形態では、イベントモニタ271は、所定の間隔で周辺機器インタフェース218に要求を送信する。それに応じて、周辺機器インタフェース218は、イベント情報を伝送する。他の実施形態では、周辺機器インタフェース218は、重要なイベント(例えば、所定のノイズ閾値を上回る及び/又は所定の持続期間を超える入力の受信)があるときのみイベント情報を伝送する。
【0103】
いくつかの実施形態では、イベントソート部270はまた、ヒットビュー判定モジュール272及び/又はアクティブイベント認識部判定モジュール273を含む。
【0104】
ヒットビュー判定モジュール272は、タッチ感知ディスプレイ212が2つ以上のビューを表示しているときに、サブイベントが1つ以上のビュー内のどこで起きたかを判定するソフトウェア手順を提供する。ビューは、ユーザがディスプレイ上で見ることができる制御装置及び他の要素から構成されている。
【0105】
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書ではアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれることもあるビューのセットであり、その中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出された(個別のアプリケーションの)アプリケーションビューは、アプリケーションのプログラム又はビュー階層内のプログラムレベルに対応する。例えば、タッチが検出された最低レベルのビューはヒットビューと呼ばれ、正しい入力として認識されるイベントのセットは、タッチベースのジェスチャを開始する初期タッチのヒットビューに少なくとも部分的に基づいて判定される。
【0106】
ヒットビュー判定モジュール272は、タッチに基づくジェスチャのサブイベントに関連する情報を受信する。アプリケーションが階層状に構成された複数のビューを有するとき、ヒットビュー判定モジュール272は、サブイベントを処理すべき階層内の最下位のビューとして、ヒットビューを識別する。ほとんどの状況では、ヒットビューは、開始サブイベント(例えば、イベント又は潜在的イベントを形成する一連のサブイベントにおける第1のサブイベント)が発生する最も低いレベルのビューである。ヒットビューがヒットビュー判定モジュール272によって識別されると、ヒットビューは、通常、ヒットビューとして識別された同じタッチ又は入力ソースに関係する全てのサブイベントを受信する。
【0107】
アクティブイベント認識部判定モジュール273は、ビュー階層内のどのビュー(単数又は複数)が特定の一連のサブイベントを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール273は、ヒットビューのみが特定の一連のサブイベントを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール273は、サブイベントの物理的ロケーションを含む全てのビューがアクティブに関わりがあるビューであると判定し、したがって、全てのアクティブに関わりがあるビューが、特定の一連のサブイベントを受信すべきであると判定する。他の実施形態では、タッチサブイベントが1つの特定のビューに関連付けられたエリアに完全に限定された場合でも、階層内の上位のビューは、依然としてアクティブに関わりがあるビューであり続ける。
【0108】
イベントディスパッチャモジュール274は、イベント情報をイベント認識部(例えばイベント認識部280)にディスパッチする。アクティブイベント認識部判定モジュール273を含む実施形態では、イベントディスパッチャモジュール274は、アクティブイベント認識部判定モジュール273により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール274は、個別のイベント受信部282によって取り出されるイベント情報をイベントキューに記憶する。
【0109】
いくつかの実施形態では、オペレーティングシステム226は、イベントソート部270を含む。あるいは、アプリケーション236-1がイベントソート部270を含む。更に他の実施形態では、イベントソート部270は、独立型のモジュールであり、又は接触/動きモジュール230などのメモリ202内に記憶されている別のモジュールの一部である。
【0110】
いくつかの実施形態では、アプリケーション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に含まれる。
【0111】
個別のイベント認識部280は、イベントソート部270からイベント情報(例えば、イベントデータ279)を受信し、イベント情報からイベントを識別する。イベント認識部280は、イベント受信部282及びイベント比較部284を含む。一部の実施形態では、イベント認識部280は、メタデータ283とイベント配信命令288(サブイベント配信命令を含む)との少なくともサブセットを含む。
【0112】
イベント受信部282は、イベントソート部270からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントのロケーションなどの追加情報を含む。サブイベントがタッチの動きに関連する場合、イベント情報は、サブイベントの速度及び方向も含む。いくつかの実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへ、又はその逆の)デバイスの回転を含み、イベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ぶ)についての対応する情報を含む。
【0113】
イベント比較部284は、そのイベント情報を、既定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、あるいはイベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部284は、イベント定義286を含む。イベント定義286は、例えばイベント1(287-1)及びイベント2(287-2)などのイベント(例えば、既定の一連のサブイベント)の定義を含む。いくつかの実施形態では、イベント(287)内のサブイベントは、例えば、タッチの開始、タッチの終了、タッチの移動、タッチのキャンセル、及び複数のタッチを含む。一実施例では、イベント1(287-1)についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、所定の段階に対する表示オブジェクト上の第1のタッチ(タッチ開始)、所定の段階に対する第1のリフトオフ(タッチ終了)、所定の段階に対する表示オブジェクト上の第2のタッチ(タッチ開始)、及び所定の段階に対する第2のリフトオフ(タッチ終了)を含む。別の実施例では、イベント2(287-2)の定義は、表示されたオブジェクト上のドラッグである。ドラッグは、例えば、所定の段階に対する表示オブジェクト上のタッチ(又は接触)、タッチ感知ディスプレイ212にわたるタッチの移動、及びタッチのリフトオフ(タッチ終了)を含む。いくつかの実施形態では、イベントは、1つ以上の関連付けられたイベント処理部290に関する情報も含む。
【0114】
いくつかの実施形態では、イベント定義287は、個別のユーザインタフェースオブジェクトについてのイベントの定義を含む。いくつかの実施形態では、イベント比較部284は、どのユーザインタフェースオブジェクトがサブイベントに関連付けられているかを判定するヒットテストを実行する。例えば、タッチ感知ディスプレイ212に3つのユーザインタフェースオブジェクトが表示されているアプリケーションビュー内で、タッチ感知ディスプレイ212上でタッチが検出されると、イベント比較部284は、ヒットテストを実行して、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判定する。表示された各オブジェクトが、個別のイベント処理部290に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部290をアクティブ化すべきかを判定する。例えば、イベント比較部284は、ヒットテストをトリガするサブイベント及びオブジェクトに関連付けられたイベント処理部を選択する。
【0115】
いくつかの実施形態では、個別のイベント287の定義は、一連のサブイベントがイベント認識部のイベントタイプに対応するか否かが判定されるまで、イベント情報の配信を遅らせる遅延アクションも含む。
【0116】
個別のイベント認識部280は、一連のサブイベントがイベント定義286のイベントのいずれとも一致しないと判定した場合、個別のイベント認識部280は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチに基づくジェスチャの次のサブイベントを無視する。この状況では、ヒットビューについてアクティブのままである他のイベント認識部があれば、そのイベント認識部は、進行中のタッチによるジェスチャのサブイベントの追跡及び処理を続行する。
【0117】
いくつかの実施形態では、個別のイベント認識部280は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ、及び/又はリストを有するメタデータ283を含む。いくつかの実施形態では、メタデータ283は、イベント認識部が互いにどのように相互作用するか、又はイベント認識部が互いにどのように相互作用することが可能となるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。いくつかの実施形態では、メタデータ283は、サブイベントがビュー階層又はプログラム階層における多様なレベルに配信されるかを示す構成可能なプロパティ、フラグ、及び/又はリストを含む。
【0118】
いくつかの実施形態では、個別のイベント認識部280は、イベントの1つ以上の特定のサブイベントが認識されるときに、イベントに関連付けられたイベント処理部290をアクティブ化する。いくつかの実施形態では、個別のイベント認識部280は、イベントに関連付けられたイベント情報をイベント処理部290に配信する。イベント処理部290をアクティブ化することは、個別のヒットビューにサブイベントを送信する(及び、送信を延期する)こととは別個である。いくつかの実施形態では、イベント認識部280は、認識したイベントに関連付けられたフラグを投入し、そのフラグに関連付けられたイベント処理部290は、そのフラグを捕らえ、既定のプロセスを実行する。
【0119】
いくつかの実施形態では、イベント配信命令288は、イベント処理部をアクティブ化することなく、サブイベントについてのイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部に、又はアクティブに関与しているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関与しているビューと関連付けられたイベント処理部は、イベント情報を受信し、所定のプロセスを実行する。
【0120】
いくつかの実施形態では、データ更新部276は、アプリケーション236-1で使用されるデータを作成及び更新する。例えば、データ更新部276は、連絡先モジュール237で使用される電話番号を更新し、又は動画プレーヤモジュールで使用される動画ファイルを記憶する。いくつかの実施形態では、オブジェクト更新部277は、アプリケーション236-1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部277は、新しいユーザインタフェースオブジェクトを作成し、又はユーザインタフェースオブジェクトのポジションを更新する。GUI更新部278は、GUIを更新する。例えば、GUI更新部278は、表示情報を準備し、タッチ感知ディスプレイ上に表示するために表示情報をグラフィックモジュール232に送る。
【0121】
いくつかの実施形態では、イベント処理部(単数又は複数)290は、データ更新部276、オブジェクト更新部277、及びGUI更新部278を含む又はそれらへのアクセスを有する。いくつかの実施形態では、データ更新部276、オブジェクト更新部277、及びGUI更新部278は、個別のアプリケーション236-1又はアプリケーションビュー291の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
【0122】
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の記載は、入力デバイスを用いて多機能デバイス200を動作させるための他の形態のユーザ入力にも適用されるが、それらの全てがタッチスクリーン上で開始されるわけではないことを理解されたい。例えば、キーボードの単一又は複数の押圧若しくは保持と任意選択的に連携される、マウスの移動及びマウスボタンの押圧、タッチパッド上のタップ、ドラッグ、スクロールなどの接触の移動、ペンスタイラス入力、デバイスの移動、口頭による命令、検出された目の移動、バイオメトリック入力、並びに/又はそれらの任意の組み合わせを、任意選択的に、認識するイベントを定義するサブイベントに対応する入力として利用する。
【0123】
図3は、いくつかの実施形態に係る、タッチスクリーン212を有するポータブル多機能デバイス200を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース(user interface、UI)300内に1つ以上のグラフィックを表示する。本実施形態、並びに以下で説明される他の実施形態では、ユーザは、例えば、1本以上の指302(図には正確な縮尺では描かれていない)又は1つ以上のスタイラス303(図には正確な縮尺では描かれていない)を使用して、グラフィック上でジェスチャを実施することによって、それらのグラフィックのうちの1つ以上を選択することが可能となる。いくつかの実施形態では、1つ以上のグラフィックの選択は、ユーザが、その1つ以上のグラフィックとの接触を中断する場合に実施される。いくつかの実施形態では、ジェスチャは、デバイス200と接触した指の、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上向きに及び/若しくは下向きに)、並びに/又は、ローリング(右から左へ、左から右へ、上向きに及び/若しくは下向きに)を、任意選択的に含む。いくつかの実装形態又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択するものではない。
【0124】
デバイス200はまた、「ホーム」又はメニューボタン304などの1つ以上の物理ボタンを含む。上記で説明されているように、メニューボタン304は、デバイス200上で実行されるアプリケーションのセット内の任意のアプリケーション236にナビゲーションするために用いられる。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーン212に表示されるGUI内のソフトキーとして実装される。
【0125】
一実施形態では、デバイス200は、タッチスクリーン212、メニューボタン304、デバイスの電源をオン/オフし、デバイスをロックするためのプッシュボタン306、音量調節ボタン(単数又は複数)308、加入者識別モジュール(SIM)カードスロット310、ヘッドセットジャック312、及びドッキング/充電用外部ポート224、を含む。プッシュボタン306は、任意選択的に、ボタンを押し下げて、既定の期間にわたってボタンを押し下げた状態に保持することによって、デバイスの電源をオン/オフするため、ボタンを押し下げて、既定の時間が経過する前にボタンを解放することによってデバイスをロックするため、及び/又はデバイスをロック解除する、若しくはロック解除プロセスを開始するために、使用される。代替の実施形態では、デバイス200は、マイクロフォン213を介して、いくつかの機能をアクティブ化又は非アクティブ化するための口頭入力もまた受け入れる。デバイス200は、任意選択的に、タッチスクリーン212上の接触の強度を検出する1つ以上の接触強度センサ265、及び/又はデバイス200のユーザに対する触知出力を生成する1つ以上の触知出力生成器267もまた含む。
【0126】
図4は、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス400は、ポータブル型である必要はない。いくつかの実施形態では、デバイス400は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育的デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス400は、通常、1つ以上の処理ユニット(CPU)410、1つ以上のネットワーク又は他の通信インタフェース460、メモリ470、及びこれらの構成要素を相互接続する1つ以上の通信バス420を含む。通信バス420は、任意選択的に、システム構成要素間の通信を相互接続及び制御する回路(チップセットと呼ばれることもある)を含む。デバイス400は、ディスプレイ440を含む入出力(I/O)インタフェース430を含み、ディスプレイ440は、通常、タッチスクリーンディスプレイである。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は、任意選択的に、これらのモジュールを記憶していない。
【0127】
図4中の上記で特定された各要素は、一部の実施例では、上記で言及されたメモリデバイスのうちの任意の1つ以上に格納される。上記で識別したモジュールは各々、前述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(例えば、命令のセット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、したがって、これらのモジュールの様々なサブセットは、様々な実施形態において結合されるか、さもなければ再構成されている。一部の実施形態では、メモリ470は、上記で特定されたモジュール及びデータ構造のサブセットを記憶する。更に、メモリ470は、上述しない追加モジュール及びデータ構造を記憶する。
【0128】
ここで、例えば、ポータブル多機能デバイス200に実装することができるユーザインタフェースの実施形態に注目する。
【0129】
図5Aは、一部の実施形態による、ポータブル多機能デバイス200上のアプリケーションのメニューに関する、例示的なユーザインタフェースを示す。類似のユーザインタフェースは、デバイス400に実装される。いくつかの実施形態では、ユーザインタフェース500は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
【0130】
セルラー及び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。
【0131】
図5Aに示されるアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及び音楽プレーヤモジュール252用のアイコン522は、任意選択的に、「ミュージック」又は「音楽プレーヤ」とラベル付けされる。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。いくつかの実施形態では、個別のアプリケーションアイコンに関するラベルは、個別のアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【0132】
図5Bは、ディスプレイ550(例えば、タッチスクリーンディスプレイ212)とは別個のタッチ感知面551(例えば、図4のタブレット又はタッチパッド455)を有するデバイス(例えば、図4のデバイス400)上の、例示的なユーザインタフェースを示す。デバイス400はまた、任意選択的に、タッチ感知面551上の接触の強度を検出する1つ以上の接触強度センサ(例えば、センサ459のうちの1つ以上)、及び/又はデバイス400のユーザに対して触知出力を生成する1つ以上の触知出力生成器457を含む。
【0133】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ212上の入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、一部の実施形態では、デバイスは、図5Bに示すように、ディスプレイとは別個のタッチ感知面上の入力を検出する。一部の実施形態では、このタッチ感知面(例えば、図5Bでの551)は、ディスプレイ(例えば、550)上の主軸(例えば、図5Bでの553)に対応する主軸(例えば、図5Bでの552)を有する。これらの実施形態によれば、デバイスは、ディスプレイ上のそれぞれの場所に対応する場所での、タッチ感知面551との接触(例えば、図5Bの560及び562)を検出する(例えば、図5Bでは、560は568に対応し、562は570に対応する)。この方式で、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面(例えば、図5Bでの551)上でデバイスによって検出されたユーザ入力(例えば、接触560及び接触562、並びにそれらの移動)が、多機能デバイスのディスプレイ(例えば、図5Bでの550)上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
【0134】
加えて、以下の例は、主に指入力(例えば、指接触、指タップジェスチャ、指スワイプジェスチャ)を参照して与えられる一方、いくつかの実施形態では、指入力のうちの1つ以上が別の入力デバイスからの入力(例えば、マウスベースの入力又はスタイラス入力)に置き換えられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、(例えば、接触の代わりに、)マウスクリックであって、その後に(例えば、接触の移動の代わりに)スワイプの経路に沿ったカーソルの移動を伴うマウスクリックによって置き換えられる。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャのロケーション上に位置している間、(例えば、接触を検出して、それに続いて接触の検出を中止する代わりに)マウスクリックによって置き換えられる。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが、任意選択的に、同時に使用され、又はマウス及び指の接触が、任意選択的に、同時に使用されることを理解されたい。
【0135】
図6Aは、例示的なパーソナル電子デバイス600を示す。デバイス600は、本体602を含む。一部の実施形態では、デバイス600は、デバイス200及び400(例えば、図2A図4)に関連して説明した特徴のいくつか又は全てを含む。いくつかの実施形態では、デバイス600は、タッチ感知ディスプレイスクリーン604、以下ではタッチスクリーン604を有する。あるいは、又はタッチスクリーン604に加えて、デバイス600は、ディスプレイ及びタッチ感知面を有する。デバイス200及び400と共に、一部の実施形態では、タッチスクリーン604(又はタッチ感知面)は、適用される接触(例えば、タッチ)の強度を検出する1つ以上の強度センサを有する。タッチスクリーン604(又はタッチ感知面)の1つ以上の強度センサは、タッチの強度を表す出力データを提供する。デバイス600のユーザインタフェースは、タッチの強度に基づいてタッチに応答するが、これは、異なる強度のタッチが、デバイス600上に異なるユーザインタフェース動作を呼び出すことができることを意味する。
【0136】
タッチ強度を検出して処理する技術は、例えば、関連出願:2013年5月8日に出願された国際特許出願第PCT/US2013/040061号の「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」、及び2013年11月11日に出願された国際特許出願第PCT/US2013/069483号の「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」に見出すことができ、これらのそれぞれは、全体が参照により本明細書に組み込まれる。
【0137】
いくつかの実施形態では、デバイス600は、1つ以上の入力機構606及び608を有する。入力機構606及び608は、含まれる場合、物理的である。物理的入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。いくつかの実施形態では、デバイス600は、1つ以上のアタッチメント機構を有する。そのようなアタッチメント機構は、含まれる場合、例えば帽子、眼鏡類、イアリング、ネックレス、シャツ、ジャケット、ブレスレット、ウォッチのバンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどにデバイス600を取り付けることを可能にすることができる。これらのアタッチメント機構は、ユーザがデバイス600を着用することを可能にする。
【0138】
図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は、一部の実施例では、ボタンである。
【0139】
入力機構608は、一部の実施例では、マイクロフォンである。パーソナル電子デバイス600は、例えば、GPSセンサ632、加速度計634、方向センサ640(例えばコンパス)、ジャイロスコープ636、動きセンサ638、及び/又はこれらの組み合わせなどの各種センサを含み、これらの全てはI/O部614に動作可能に接続される。
【0140】
パーソナル電子デバイス600のメモリ618は、コンピュータ実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であり、例えば、1つ以上のコンピュータプロセッサ616によって実行されると、コンピュータプロセッサに以下の技術及び処理を実行させる。それらのコンピュータ実行可能命令はまた、例えば、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチし、それらの命令を実行することが可能な他のシステムなどの、命令実行システム、装置、又はデバイスによって使用するために、あるいはそれらと関連して使用するために、任意の非一時的コンピュータ可読記憶媒体内に、記憶及び/又は伝送される。パーソナル電子デバイス600は、図6Bの構成要素及び構成に限定されるものではなく、他の構成要素又は追加的構成要素を、複数の構成で含み得る。
【0141】
本明細書で使用されるとき、用語「アフォーダンス」は、例えば、デバイス200、400、600、800、及び/又は900(図2A図4図6A図6B図8A図8H図9A図9F、及び図10A図10D)のディスプレイ画面上に表示されるユーザ対話式グラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及びテキスト(例えば、ハイパーリンク)はそれぞれ、アフォーダンスを構成する。
【0142】
本明細書で使用される「フォーカスセレクタ」という用語は、ユーザが相互作用しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含む一部の実装形態では、そのカーソルは「フォーカスセレクタ」としての役割を果たすことにより、特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にカーソルが存在している間に、入力(例えば、押圧入力)がタッチ感知面(例えば、図4でのタッチパッド455、又は図5Bでのタッチ感知面551)上で検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、図2Aでのタッチ感知ディスプレイシステム212、又は図5Aでのタッチスクリーン212)を含む一部の実装形態では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」としての役割を果たすことにより、入力(例えば、接触による押圧入力)が、タッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)のロケーションで検出されると、その特定のユーザインタフェース要素が、検出された入力に従って調節される。いくつかの実装形態では、(例えば、フォーカスを1つのボタンから別のボタンへ動かすためにタブキー又は矢印キーを使用することによって)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスがユーザインタフェースの1つの領域からユーザインタフェースの別の領域に動かされ、これらの実装形態では、フォーカスセレクタは、ユーザインタフェースの種々の領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが取る具体的な形態に関わらず、フォーカスセレクタは、概して、ユーザが意図するユーザインタフェースとの相互作用を(例えば、ユーザがそれを通じて相互作用することを意図しているユーザインタフェースの要素をデバイスに示すことによって)通信するためにユーザによって制御されるユーザインタフェース要素(又はタッチスクリーンディスプレイ上の接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出されている間の、個別のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)のロケーションは、その個別のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
【0143】
本明細書及び特許請求の範囲において使用されるとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、すなわち、既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増大を検出する前若しくは後、及び/又は、接触の強度の減少を検出する前若しくは後の)に関連する所定の時間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)の間に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の中間値、接触の強度の平均値、接触の強度の上位10パーセント値、接触の強度の最大値の半分の値、接触の強度の最大値の90パーセントの値などのうちの1つ以上に基づく。いくつかの実施形態では、特性強度を判定する際に(例えば、特性強度が経時的な接触の強度の平均であるときに)、接触の持続期間が使用される。いくつかの実施形態では、特性強度は、ユーザによって動作が実行されたか否かを判定するために、1つ以上の強度閾値のセットと比較される。例えば、1つ以上の強度閾値のセットは、第1の強度閾値と第2の強度閾値とを含む。この実施例では、第1の閾値を超えない特性強度を有する接触は第1の動作をもたらし、第1の強度閾値を上回るが第2の強度閾値を超えない特性強度を有する接触は第2の動作をもたらし、第2の閾値を超える特性強度を有する接触は第3の動作をもたらす。一部の実施形態では、特性強度と1つ以上の閾値との比較は、第1の動作又は第2の動作のいずれを実行するかを判定するために使用されるのではなく、1つ以上の動作を実行するか否か(例えば、個別の動作を実行するか、又は個別の動作の実行を取り止めるか)を判定するために使用される。
【0144】
いくつかの実施形態では、特性強度を判定する目的のために、ジェスチャの一部分が特定される。例えば、タッチ感知面は、接触強度が増加する開始ロケーション点から終了ロケーション点に移行する連続スワイプ接触を受け取る。この例では、終了位置における接触の特性強度は、スワイプ接触全体(例えば、終了位置でのスワイプ接触の一部分のみ)ではなく、連続スワイプ接触の一部分のみに基づく。一部の実施形態では、平滑化アルゴリズムは、接触の特性強度を判定する前に、スワイプ接触の強度に適用される。例えば、平滑化アルゴリズムは、任意選択的に、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズムのうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的のために、スワイプ接触強度の幅の狭いスパイク又は下落を排除する。
【0145】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値などの1つ以上の強度閾値に対して特徴付けられる。いくつかの実施形態では、軽い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作をデバイスが実行する強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、通常、物理マウスのボタン又はトラックパッドをクリックすることに関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、且つそれを下回ると接触が検出されなくなる公称接触検出強度閾値を上回る)特性強度を有する接触が検出されたとき、デバイスは、タッチ感知面上の接触の移動に従って、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、フォーカスセレクタを動かす。一般に、特に明記しない限り、これらの強度閾値は、ユーザインタフェースの値の様々なセットの間で一貫している。
【0146】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への、接触の特性強度の増大は、「軽い押圧」の入力と呼ばれることがある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への、接触の特性強度の増大は、「深い押圧」の入力と呼ばれることがある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への、接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれることがある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への、接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれることがある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロより大きい。
【0147】
本明細書に記載するいくつかの実施形態では、個別の押圧入力を含むジェスチャを検出したことに応じて、又は個別の接触(若しくは複数の接触)によって実行された個別の押圧入力を検出したことに応じて、1つ以上の動作が実行され、個別の押圧入力は、押圧入力強度閾値を上回る接触(又は複数の接触)の強度の増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、個別の動作は、押圧入力強度閾値を上回る個別の接触の強度の増大(例えば、個別の押圧入力の「ダウンストローク」)を検出したことに応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る個別の接触の強度の増大、及びそれに続く押圧入力強度閾値を下回る接触の強度の減少を含み、個別の動作は、それに続く押圧入力閾値を下回る個別の接触の強度の減少(例えば、個別の押圧入力の「アップストローク」)を検出したことに応じて実行される。
【0148】
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある偶発的な入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関係を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低い、又はヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な割合である)。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る個別の接触の強度の増大、及びそれに続く押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、個別の動作は、それに続くヒステリシス強度閾値を下回る個別の接触の強度の減少(例えば、個別の押圧入力の「アップストローク」)を検出したことに応じて実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、その後のヒステリシス強度以下の強度への接触の強度の減少を検出するときにのみ検出され、個別の動作は、押圧入力(例えば、状況に応じて、接触の強度の増大又は接触の強度の減少)を検出したことに応じて実行される。
【0149】
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力、又は押圧入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じてトリガされる。更に、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて実行されるように動作が記載される例では、動作は、任意選択的に、押圧入力強度閾値に対応し、且つそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。
3. デジタルアシスタントシステム
【0150】
図7Aは、様々な実施例による、デジタルアシスタントシステム700のブロック図を示す。一部の実施例では、デジタルアシスタントシステム700は、スタンドアロン型コンピュータシステム上に実現される。一部の実施例では、デジタルアシスタントシステム700は、複数のコンピュータにわたって分散される。一部の実施例では、デジタルアシスタントのモジュール及び機能のうちの一部は、サーバ部分とクライアント部分とに割り振られており、クライアント部分は、例えば、図1に示すように、1つ以上のユーザデバイス(例えば、デバイス104、122、200、400、600、800、又は900)上に常駐し、1つ以上のネットワークを通じてサーバ部分(例えば、サーバシステム108)と通信する。一部の実施例では、デジタルアシスタントシステム700は、図1に示すサーバシステム108(及び/又は、DAサーバ106)の実装形態である。デジタルアシスタントシステム700は、デジタルアシスタントシステムの一実施例に過ぎず、デジタルアシスタントシステム700は、示しているものよりも多くの構成要素又は少ない構成要素を有し得るものであり、2つ以上の構成要素を組み合わせることもでき、又は、それらの構成要素の異なる構成若しくは配置を有し得ることに留意されたい。図7Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含めたハードウェア、1つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、若しくはそれらの組み合わせとして実装される。
【0151】
デジタルアシスタントシステム700は、メモリ702、1つ以上のプロセッサ704、入出力(I/O)インタフェース706、及びネットワーク通信インタフェース708を含む。これらの構成要素は、1つ以上の通信バス又は信号ライン710を介して互いに通信することができる。
【0152】
一部の実施例では、メモリ702は、高速ランダムアクセスメモリ及び/又は不揮発性コンピュータ可読記憶媒体(例えば、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイス)などの、非一時的コンピュータ可読媒体を含む。
【0153】
一部の実施例では、I/Oインタフェース706は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォンなどの、デジタルアシスタントシステム700の入出力デバイス716を、ユーザインタフェースモジュール722に結合する。I/Oインタフェース706は、ユーザインタフェースモジュール722と連動して、ユーザ入力(例えば、音声入力、キーボード入力、タッチ入力など)を受信し、それらを適宜に処理する。一部の実施例では、例えば、デジタルアシスタントがスタンドアロンユーザデバイス上に実現される場合、デジタルアシスタントシステム700は、図2A図4図6A図6B図8A図8H図9A図9F、及び図10A図10Dのデバイス200、400、600、800、又は900に関して説明した構成要素及びI/O通信インタフェースのいずれかを含む。一部の実施例では、デジタルアシスタントシステム700は、デジタルアシスタントの実装形態のサーバ部分を表すものであり、ユーザデバイス(例えば、デバイス104、200、400、600、800、又は900)上に常駐するクライアント側部分を通じて、ユーザと相互作用することができる。
【0154】
一部の実施例では、ネットワーク通信インタフェース708は、有線通信ポート(単数又は複数)712及び/又は無線送受信回路714を含む。有線通信ポート(単数又は複数)は、1つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス(USB)、FIREWIREなどを介して、通信信号を送受信する。無線回路714は、通信ネットワーク及び他の通信デバイスとの間で、RF信号及び/又は光信号を送受信する。無線通信は、GSM、EDGE、CDMA、TDMA、Bluetooth、Wi-Fi、VoIP、Wi-MAX、又は任意の他の好適な通信プロトコルなどの、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用する。ネットワーク通信インタフェース708は、デジタルアシスタントシステム700と、インターネット、イントラネット、並びに/あるいは、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)、及び/又はメトロポリタンエリアネットワーク(MAN)などの無線ネットワークなどの、ネットワークとの間の、また他のデバイスとの間の、通信を可能にする。
【0155】
一部の実施例では、メモリ702、又はメモリ702のコンピュータ可読記憶媒体は、オペレーティングシステム718、通信モジュール720、ユーザインタフェースモジュール722、1つ以上のアプリケーション724、及びデジタルアシスタントモジュール726の全て若しくはサブセットを含めた、プログラム、モジュール、命令、及びデータ構造を記憶している。特に、メモリ702、又はメモリ702のコンピュータ可読記憶媒体は、以下で説明されるプロセスを実行する命令を記憶している。1つ以上のプロセッサ704は、これらのプログラム、モジュール、及び命令を実行し、データ構造からの読み出し/データ構造への書き込みを行う。
【0156】
オペレーティングシステム718(例えば、Darwin、RTXC、LINUX、UNIX、iOS、OS X、WINDOWS、又は、VxWorksなどの組込み型オペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための、様々なソフトウェア構成要素並びに/あるいはドライバを含み、様々なハードウェア、ファームウェア、及びソフトウェア構成要素間の通信を容易にする。
【0157】
通信モジュール720は、ネットワーク通信インタフェース708を介した、デジタルアシスタントシステム700と他のデバイスとの間の通信を容易にする。例えば、通信モジュール720は、それぞれ、図2A図4図6A図6Bに示すデバイス200、400、及び600などの電子デバイスのRF回路208と通信する。通信モジュール720はまた、無線回路714及び/又は有線通信ポート712によって受信されたデータを処理するための、様々な構成要素も含む。
【0158】
ユーザインタフェースモジュール722は、I/Oインタフェース706を介して(例えば、キーボード、タッチスクリーン、ポインティングデバイス、コントローラ、及び/又はマイクロフォンから)、ユーザからのコマンド及び/又は入力を受信して、ディスプレイ上にユーザインタフェースオブジェクトを生成する。ユーザインタフェースモジュール722はまた、I/Oインタフェース706を介して(例えば、ディスプレイ、オーディオチャネル、スピーカ、タッチパッドなどを通じて)、ユーザへの出力(例えば、発話、サウンド、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光など)も準備及び配信する。
【0159】
アプリケーション724は、1つ以上のプロセッサ704によって実行されるように構成された、プログラム及び/又はモジュールを含む。例えば、デジタルアシスタントシステムがスタンドアロン型ユーザデバイス上に実現される場合には、アプリケーション724は、ゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーションなどのユーザアプリケーションを含む。デジタルアシスタントシステム700がサーバ上に実現される場合には、アプリケーション724は、例えば、リソース管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含む。
【0160】
メモリ702はまた、デジタルアシスタントモジュール726(又は、デジタルアシスタントのサーバ部分)も記憶している。一部の実施例では、デジタルアシスタントモジュール726は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含む:入出力処理モジュール728、音声テキスト化(speech-to-text;STT)処理モジュール730、自然言語処理モジュール732、ダイアログフロー処理モジュール734、タスクフロー処理モジュール736、サービス処理モジュール738、及び発話合成処理モジュール740。これらのモジュールのそれぞれは、デジタルアシスタントモジュール726の以下のシステムあるいはデータ及びモデルのうちの1つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有する:オントロジ760、語彙索引744、ユーザデータ748、タスクフローモデル754、サービスモデル756、及びASRシステム758。
【0161】
一部の実施例では、デジタルアシスタントモジュール726に実現された処理モジュール、データ、及びモデルを使用することにより、デジタルアシスタントは、以下のうちの少なくとも一部を実行することができる:発話入力をテキストに変換することと、ユーザから受信した自然言語入力で表現されるユーザの意図を識別すること、(例えば、単語、ゲーム、意図などを明確にすることによって)ユーザの意図を完全に推測するために必要な情報を能動的に引き出して取得すること、推測された意図を満たすためのタスクフローを判定すること、及び、そのタスクフローを実行して、推測された意図を満たすこと。
【0162】
一部の実施例では、図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(又は、音声認識器)に転送する。
【0163】
STT処理モジュール730は、1つ以上のASRシステム758を含む。1つ以上のASRシステム758は、I/O処理モジュール728を介して受信された発話入力を処理して、認識結果を生成することができる。各ASRシステム758は、フロントエンド発話プリプロセッサを含む。このフロントエンド発話プリプロセッサは、発話入力から代表的特徴を抽出する。例えば、フロントエンド発話プリプロセッサは、発話入力に対してフーリエ変換を実行することにより、その発話入力を代表的な多次元ベクトルのシーケンスとして特徴付ける、スペクトル特徴を抽出する。更には、各ASRシステム758は、1つ以上の音声認識モデル(例えば、音響モデル及び/又は言語モデル)を含み、1つ以上の音声認識エンジンを実装する。音声認識モデルの例としては、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、nグラム言語モデル、及び他の統計的モデルが挙げられる。音声認識エンジンの例としては、動的時間伸縮法ベースのエンジン、及び重み付き有限状態トランスデューサ(weighted finite-state transducer;WFST)ベースのエンジンが挙げられる。1つ以上の音声認識モデル及び1つ以上の音声認識エンジンが、フロントエンド音声プリプロセッサの抽出された代表的特徴を処理して中間認識結果(例えば、音素、音素列、部分語)、最終的にテキスト認識結果(単語、単語列、トークンのシーケンス)を生成するために使用される。一部の実施例では、発話入力は、認識結果を生成するために、サードパーティサービスによって、又はユーザのデバイス(例えば、デバイス104、200、400、又はデバイス600)上で、少なくとも部分的に処理される。STT処理モジュール730が、テキスト文字列(例えば、単語、単語の列、又はトークンの列)を含む認識結果を生成すると、その認識結果は、意図推論のために自然言語処理モジュール732に渡される。一部の実施例では、STT処理モジュール730は、発話入力の複数のテキスト表現候補を生成する。各テキスト表現候補は、発話入力に対応する、単語又はトークンのシーケンスである。一部の実施例では、各テキスト表現候補は、音声認識信頼性スコアに関連付けられる。この音声認識信頼性スコアに基づいて、STT処理モジュール730は、テキスト表現候補をランク付けし、n個の最良の(例えば、n個の最高ランクの)テキスト表現候補(単数又は複数)を、意図推論のために自然言語処理モジュール732に提供する(nは、ゼロよりも大きい所定の整数である)。例えば、一実施例では、最高ランク(n=1)のテキスト表現候補のみが、意図推論のために自然言語処理モジュール732に渡される。別の実施例では、5つの最高ランク(n=5)のテキスト表現候補が、意図推論のために自然言語処理モジュール732に渡される。
【0164】
音声テキスト化処理についての更なる詳細は、開示全体が参照により本明細書に組み込まれる、2011年9月20日出願の、「Consolidating Speech Recognition Results」に関する米国実用特許出願第13/236,942号で説明されている。
【0165】
一部の実施例では、STT処理モジュール730は、認識可能な単語の語彙を含み、及び/又は、音標文字変換モジュール731を介して、その語彙にアクセスする。各語彙単語は、音声認識音標文字で表された、その単語の1つ以上の発音候補と関連付けられている。具体的には、認識可能な単語の語彙は、複数の発音候補に関連付けられている単語を含む。例えば、語彙は、
【表1】
の発音候補に関連付けられている単語「tomato(トマト)」を含む。更には、語彙単語は、ユーザからの以前の発話入力に基づく、カスタム発音候補に関連付けられている。そのようなカスタム発音候補は、STT処理モジュール730内に記憶され、デバイス上のユーザのプロファイルを介して、特定のユーザに関連付けられている。一部の実施例では、単語に関する発音候補は、単語の綴り、並びに1つ以上の言語規則及び/又は音標規則に基づいて判定される。一部の実施例では、発音候補は、例えば既知の正規発音に基づいて、手動で生成される。
【0166】
一部の実施例では、発音候補は、その発音候補の一般性に基づいてランク付けされる。例えば、発音候補
【表2】
は、
【表3】
よりも高くランク付けされるが、これは、前者が、(例えば、全てのユーザの間で、特定の地理的領域内のユーザに関して、又は、任意の他の適切なユーザのサブセットに関して)より一般的に使用される発音であるためである。一部の実施例では、発音候補は、その発音候補がユーザに関連付けられているカスタム発音候補であるか否かに基づいて、ランク付けされる。例えば、カスタム発音候補は、正規発音候補よりも高くランク付けされる。このことは、正規発音から逸脱した独特の発音を有する固有名詞を認識するために、有用となり得る。一部の実施例では、発音候補は、出身地、国籍、又は民族性などの、1つ以上の発話特性に関連付けられている。例えば、発音候補
【表4】
は、米国に関連付けられており、その一方で、発音候補
【表5】
は、英国に関連付けられている。更には、発音候補のランクは、デバイス上のユーザのプロファイル内に記憶されている、そのユーザの1つ以上の特性(例えば、出身地、国籍、民族性など)に基づく。例えば、ユーザのプロファイルから、そのユーザが米国に関連付けられていることを判定することができる。ユーザが米国に関連付けられていることに基づいて、(米国に関連付けられている)発音候補
【表6】
は、(英国に関連付けられている)発音候補
【表7】
よりも高くランク付けされる。一部の実施例では、ランク付けされた発音候補のうちの1つが、予測される発音(例えば、最も可能性が高い発音)として選択される。
【0167】
発話入力が受信されると、STT処理モジュール730を使用して、その発話入力に対応する音素が(例えば、音響モデルを使用して)判定され、次いで、その音素に一致する単語を(例えば、言語モデルを使用して)判定することが試みられる。例えば、STT処理モジュール730が最初に、発話入力の一部分に対応する音素の列
【表8】
を特定した場合には、次いで、語彙索引744に基づいて、この列が単語「tomato(トマト)」に対応すると判定することができる。
【0168】
一部の実施例では、STT処理モジュール730は、近似照合技術を使用して、発言内の単語を判定する。それゆえ、例えば、STT処理モジュール730は、音素の列
【表9】
が単語「tomato(トマト)」に対応するものであることを、その特定の音素の列が、その単語の音素列候補のうちの1つではない場合であっても、判定する。
【0169】
デジタルアシスタントの自然言語処理モジュール732(「自然言語プロセッサ」)は、STT処理モジュール730によって生成された、n個の最良のテキスト表現候補(単数又は複数)(「単語列(単数又は複数)」又は「トークン列(単数又は複数)」)を取得して、それらのテキスト表現候補のそれぞれを、デジタルアシスタントによって認識される1つ以上の「実施可能な意図」に関連付けることを試みる。「実施可能な意図」(又は、「ユーザ意図」)とは、デジタルアシスタントによって実行することが可能なタスクを表すものであり、タスクフローモデル754内に実現される、関連するタスクフローを有し得る。この関連するタスクフローは、そのタスクを実行するためにデジタルアシスタントが実施する、一連のプログラムされたアクション及びステップである。デジタルアシスタントの能力の範囲は、タスクフローモデル754内に実現及び記憶されている、タスクフローの数及び多様性に応じて判定され、あるいは、換言すれば、そのデジタルアシスタントが認識する「実施可能な意図」の数及び多様性に応じて判定される。しかしながら、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正しい「実施可能な意図(単数又は複数)」を推測する、そのアシスタントの能力に応じても判定される。
【0170】
一部の実施例では、STT処理モジュール730から取得される単語又はトークンの列に加えて、自然言語処理モジュール732はまた、例えばI/O処理モジュール728から、ユーザ要求に関連付けられたコンテキスト情報をも受信する。自然言語処理モジュール732は、任意選択的に、そのコンテキスト情報を使用して、STT処理モジュール730から受信されたテキスト表現候補内に含まれている情報を、明らかにし、補完し、及び/又は更に定義する。コンテキスト情報は、例えば、ユーザ選好、ユーザデバイスのハードウェア及び/又はソフトウェア状態、ユーザ要求の前、最中、又は直後に収集されたセンサ情報、並びに、デジタルアシスタントとユーザとの間の以前の対話(例えば、ダイアログ)などを含む。本明細書で説明するように、コンテキスト情報は、一部の実施例では動的であり、時間、場所、ダイアログの内容、及び他の因子によって変化する。
【0171】
一部の実施例では、自然言語処理は、例えば、オントロジ760に基づく。オントロジ760は、多数のノードを含む階層構造であり、各ノードは、「実施可能な意図」を表すか、又は、「実施可能な意図」のうちの1つ以上に関連する「属性」若しくは他の「属性」を表す。上述のように、「実施可能な意図」は、デジタルアシスタントが実行することが可能なタスクを表すものであり、すなわち、そのタスクは、「実施可能」であるか、又は実施対象となり得るものである。「属性」は、実施可能な意図に関連付けられた、又は別の属性の下位態様に関連付けられた、パラメータを表す。オントロジ760内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードによって表されるパラメータが、実施可能な意図ノードによって表されるタスクにどのように関与するかを定義する。
【0172】
一部の実施例では、オントロジ760は、実施可能な意図ノード及び属性ノードで構成されている。オントロジ760内では、各実施可能な意図ノードは、1つ以上の属性ノードに直接リンクされているか、又は、1つ以上の中間属性ノードを介してリンクされている。同様に、各属性ノードは、1つ以上の実施可能な意図ノードに直接リンクされているか、又は、1つ以上の中間属性ノードを介してリンクされている。例えば、図7Cに示すように、オントロジ760は、「レストラン予約」ノード(すなわち、実施可能な意図ノード)を含む。属性ノード「レストラン」、「日付/時間」(予約用)、及び「参加人数」が、それぞれ、実施可能な意図ノード(すなわち、「レストラン予約」ノード)に直接リンクされている。
【0173】
更には、属性ノード「料理」、「価格帯」、「電話番号」、及び「場所」は、属性ノード「レストラン」の下位ノードであり、それぞれ、中間属性ノード「レストラン」を介して、「レストラン予約」ノード(すなわち、実施可能な意図ノード)にリンクされている。別の例として、図7Cに示されるように、オントロジ760はまた、「リマインダ設定」ノード(すなわち、別の実施可能な意図ノード)も含む。属性ノード「日付/時間」(リマインダ設定用)及び「テーマ」(リマインダ用)が、それぞれ、「リマインダ設定」ノードにリンクされている。属性ノード「日付/時間」は、レストラン予約を実施するタスク及びリマインダを設定するタスクの双方に関連しているため、属性ノード「日付/時間」は、オントロジ760内で、「レストラン予約」ノード及び「リマインダ設定」ノードの双方にリンクされている。
【0174】
実施可能な意図ノードは、そのリンクされている属性ノードと共に、「ドメイン」として説明される。本論考では、各ドメインは、個別の実施可能な意図と関連付けられており、その特定の実施可能な意図に関連付けられているノードのグループ(及び、それらノード間の関係)を指すものである。例えば、図7Cに示されるオントロジ760は、レストラン予約ドメイン762の一実施例、及びリマインダドメイン764の一実施例を、オントロジ760内に含む。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付/時間」、及び「参加人数」、並びに、下位属性ノード「料理」、「価格帯」、「電話番号」、及び「ロケーション」を含む。リマインダドメイン764は、実施可能な意図ノード「リマインダ設定」、並びに属性ノード「テーマ」及び「日付/時間」を含む。一部の実施例では、オントロジ760は、多数のドメインで構成されている。各ドメインは、1つ以上の属性ノードを、1つ以上の他のドメインと共有している。例えば、「日付/時間」属性ノードは、レストラン予約ドメイン762及びリマインダドメイン764に加えて、多数の異なるドメイン(例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど)に関連付けられている。
【0175】
図7Cは、オントロジ760内の2つの例示的なドメインを示すものであるが、他のドメインとしては、例えば、「映画を探す」、「電話通話を開始する」、「道順を探す」、「会合をスケジュールする」、「メッセージを送信する」、「質問の答えを提供する」、「リストを読み上げる」、「ナビゲーションの命令を提供する」、及び「タスクに関する命令を提供する」などが挙げられる。「メッセージを送る」ドメインは、「メッセージを送る」の実施可能な意図に関連付けられ、「受信者(単数又は複数)」、「メッセージのタイプ」、及び「メッセージ本文」などの属性ノードを更に含む。属性ノード「受信者」は、例えば、「受信者名」及び「メッセージアドレス」などの下位属性ノードによって、更に定義される。
【0176】
一部の実施例では、オントロジ760は、デジタルアシスタントが理解及び遂行することが可能な、全てのドメイン(またそれゆえ、実施可能な意図)を含む。一部の実施例では、オントロジ760は、ドメイン若しくはノード全体を追加又は除去することによって、あるいは、オントロジ760内のノード間の関係を修正することなどによって、修正される。
【0177】
一部の実施例では、関連する複数の実施可能な意図に関連付けられているノードは、オントロジ760内の「上位ドメイン」の下にクラスタ化されている。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードの、クラスタを含む。旅行に関係する実施可能な意図ノードは、「航空会社の予約」、「ホテル予約」、「レンタカー」、「行き方を知る」、「興味のあるポイントを見つける」などを含む。同じ上位ドメイン(例えば、「旅行」上位ドメイン)の下の実施可能な意図ノードは、多数の属性ノードを共有している。例えば、「航空券予約」、「ホテル予約」、「自動車のレンタル」、「道順を知る」、及び「興味のある場所を探す」に関する実施可能な意図ノードは、属性ノード「出発ロケーション」、「目的地」、「出発日/時間」、「到着日/時間」、及び「参加人数」のうちの1つ以上を共有している。
【0178】
一部の実施例では、オントロジ760内の各ノードは、そのノードによって表される属性若しくは実施可能な意図に関連する、単語及び/又はフレーズのセットに関連付けられている。各ノードに関連付けられている個別の単語及び/又はフレーズのセットは、そのノードに関連付けられた、いわゆる「語彙」である。各ノードに関連付けられている個別の単語及び/又はフレーズのセットは、そのノードによって表される属性又は実施可能な意図に関連して、語彙索引744内に記憶されている。例えば、図7Bに戻ると、「レストラン」の属性に関するノードに関連付けられている語彙としては、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」などの単語が挙げられる。別の例として、「電話通話を開始する」の実施可能な意図に関するノードに関連付けられている語彙としては、「電話する(call)」、「電話(phone)」、「ダイヤルする(dial)」、「電話をかける(ring)」、「この番号に電話する(call this number)」、「~に電話をかける(make a call to)」などの、単語及びフレーズが挙げられる。語彙索引744は、任意選択的に、異なる言語の単語及びフレーズを含む。
【0179】
自然言語処理モジュール732は、STT処理モジュール730から候補テキスト表現(例えば、文字列(単数又は複数)又はトークン列(単数又は複数))を受信し、候補表現ごとに、候補文字表現中の単語がどのノードを暗示しているかを判定する。一部の実施例では、テキスト表現候補内の単語又はフレーズが、オントロジ760内の1つ以上のノードに関連付けられていることが(語彙索引744を介して)見出される場合には、その単語又はフレーズは、それらのノードを「トリガ」又は「アクティブ化」する。アクティブ化されたノードの量及び/又は相対的重要性に基づいて、自然言語処理モジュール732は、それらの実施可能な意図のうちの1つを、デジタルアシスタントにユーザが実行させるように意図したタスクとして選択する。一部の実施例では、最も多く「トリガされた」ノードを有するドメインが選択される。一部の実施例では、最も高い信頼値(例えば、そのトリガされた様々なノードの相対的重要性に基づくもの)を有するドメインが選択される。一部の実施例では、トリガされたノードの数及び重要性の組み合わせに基づいて、ドメインが選択される。一部の実施例では、ノードを選択する際には、デジタルアシスタントが、ユーザからの同様の要求を以前に正確に解釈したか否かなどの、追加的因子も考慮される。
【0180】
ユーザデータ748は、ユーザ固有語彙、ユーザ選好、ユーザアドレス、ユーザの既定言語及び第2言語、ユーザの連絡先リスト、並びに各ユーザに関する他の短期的若しくは長期的情報などの、ユーザ固有情報を含む。一部の実施例では、自然言語処理モジュール732は、ユーザ入力内に含まれている情報を補完して、ユーザ意図を更に定義するために、これらのユーザ固有情報を使用する。例えば、ユーザ要求「私の誕生日パーティに私の友人を招待して(invite my friends to my birthday party)」に関して、自然言語処理モジュール732は、誰が「友人」であり、いつ及びどこで「誕生日パーティ」が催されることになるかを判定するために、そのような情報をユーザ要求内で明示的に提供するようにユーザに要求することなく、ユーザデータ748にアクセスすることが可能である。
【0181】
一部の実施例では、自然言語処理モジュール732は、1つ以上の機械学習機構(例えば、ニューラルネットワーク)を使用して実装されることを認識されたい。具体的には、1つ以上の機械学習機構は、テキスト表現候補、及び、そのテキスト表現候補に関連付けられたコンテキスト情報を受信するように構成されている。それらテキスト表現候補及び関連するコンテキスト情報に基づいて、1つ以上の機械学習機構は、実施可能な意図候補のセットにわたって、意図信頼性スコアを判定するように構成されている。自然言語処理モジュール732は、判定された意図信頼性スコアに基づいて、実施可能な意図候補のセットから、1つ以上の実施可能な意図候補を選択することができる。一部の実施例では、オントロジ(例えば、オントロジ760)もまた、実施可能な意図候補のセットから、1つ以上の実施可能な意図候補を選択するために使用される。
【0182】
トークン文字列に基づくオントロジの検索の他の詳細は、開示全体が参照により本明細書に組み込まれる、2008年12月22日出願の「Method and Apparatus for Searching Using an Active Ontology」に関する米国実用特許出願第12/341,743号で説明されている。
【0183】
一部の実施例では、自然言語処理モジュール732が、ユーザ要求に基づいて実施可能な意図(又は、ドメイン)を特定すると、自然言語処理モジュール732は、その特定された実施可能な意図を表すように、構造化クエリを生成する。一部の実施例では、この構造化クエリは、その実施可能な意図に関するドメイン内の1つ以上のノードについてのパラメータを含み、それらのパラメータの少なくとも一部には、ユーザ要求内で指定された具体的な情報及び要件が入力されている。例えば、「7時に寿司屋で夕食の予約を取ってください(Make me a dinner reservation at a sushi place at 7)」とユーザが言う。この場合には、自然言語処理モジュール732は、そのユーザ入力に基づいて、実施可能な意図が「レストラン予約」であると、正確に特定することが可能である。オントロジによれば、「レストラン予約」ドメインに関する構造化クエリは、{料理}、{時間}、{日付}、{参加人数}などのパラメータを含む。一部の実施例では、発話入力、及びSTT処理モジュール730を使用して発話入力から導出されたテキストに基づいて、自然言語処理モジュール732は、レストラン予約ドメインに関する部分的構造化クエリを生成し、この部分的構造化クエリは、パラメータ{料理=「寿司」}及びパラメータ{時間=「午後7時」}を含む。しかしながら、この実施例では、ユーザの発言に含まれる情報は、そのドメインに関連付けられる構造化クエリを完成するためには不十分である。それゆえ、{参加人数}及び{日付}などの他の必要なパラメータは、現時点で入手可能な情報に基づく構造化クエリ内では指定されていない。一部の実施例では、自然言語処理モジュール732は、この構造化クエリの一部のパラメータに、受信されたコンテキスト情報を追加入力する。例えば、一部の実施例では、ユーザが「近所の」寿司レストランを要求した場合には、自然言語処理モジュール732は、構造化クエリ内の{場所}パラメータに、ユーザデバイスからのGPS座標を追加入力する。
【0184】
一部の実施例では、自然言語処理モジュール732は、STT処理モジュール730から受信された各テキスト表現候補に関して、複数の実施可能な意図候補を特定する。更には、一部の実施例では、特定された実施可能な意図候補のそれぞれに関して、個別の(部分的又は完全な)構造化クエリが生成される。自然言語処理モジュール732は、実施可能な意図候補のそれぞれに関する意図信頼性スコアを判定し、その意図信頼性スコアに基づいて、それら実施可能な意図候補をランク付けする。一部の実施例では、自然言語処理モジュール732は、任意の入力済みパラメータを含む、生成された構造化クエリ(単数又は複数)を、タスクフロー処理モジュール736(「タスクフロープロセッサ」)に渡す。一部の実施例では、m個の最良の(例えば、m個の最高ランクの)実施可能な意図候補に関する構造化クエリ(単数又は複数)が、タスクフロー処理モジュール736に提供される(mは、ゼロよりも大きい所定の整数である)。一部の実施例では、m個の最良の実施可能な意図候補に関する構造化クエリ(単数又は複数)は、対応するテキスト表現候補(単数又は複数)と共に、タスクフロー処理モジュール736に提供される。
【0185】
発話入力の複数のテキスト表現候補から判定された複数の実施可能な意図候補に基づく、ユーザ意図の推測の他の詳細は、開示全体が参照により本明細書に組み込まれる、2014年6月6日出願の「System and Method for Inferring User Intent From Speech Inputs」に関する米国実用特許出願第14/298,725号で説明されている。
【0186】
タスクフロー処理モジュール736は、自然言語処理モジュール732から構造化クエリ(単数又は複数)を受信して、必要に応じて構造化クエリを完成させ、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するように構成されている。一部の実施例では、これらのタスクを完了するために必要な様々な手順が、タスクフローモデル754内で提供される。一部の実施例では、タスクフローモデル754は、ユーザから追加情報を取得するための手順、及び、実施可能な意図に関連付けられたアクションを実行するためのタスクフローを含む。
【0187】
上述のように、構造化クエリを完成させるためには、タスクフロー処理モジュール736は、追加情報を取得し、及び/又は潜在的に曖昧な発言の曖昧性を除去するために、ユーザとの追加的なダイアログを開始することを必要とする。そのような対話が必要である場合、タスクフロー処理モジュール736は、ユーザとのダイアログに携わるために、ダイアログフロー処理モジュール734を呼び出す。一部の実施例では、ダイアログフロー処理モジュール734は、どのようにして(及び/又は、いつ)ユーザに追加情報を要求するべきかを判定し、そのユーザ応答を受信及び処理する。I/O処理モジュール728を介して、ユーザに質問が提供され、ユーザから回答が受信される。一部の実施例において、ダイアログフロー処理モジュール734は、オーディオ及び/又は視覚出力を介してユーザにダイアログ出力を提示し、ユーザからの入力を口頭又は物理的(例えば、クリック)応答を介して受け取る。上記の実施例を続けると、タスクフロー処理モジュール736が、ドメイン「レストラン予約」に関連付けられる構造化クエリに関する「参加人数」及び「日付」の情報を判定するために、ダイアログフロー処理モジュール734を呼び出すと、ダイアログフロー処理モジュール734は、「何人分ですか?(For how many people?)」及び「どの日にしますか?(On which day?)」などの質問を生成して、ユーザに渡す。ユーザから回答が受信されると、次いで、ダイアログフロー処理モジュール734は、構造化クエリに、欠落している情報を追加入力するか、又は、構造化クエリから欠落している情報を完成させるために、その情報をタスクフロー処理モジュール736に渡す。
【0188】
タスクフロー処理モジュール736が、実施可能な意図に関する構造化クエリを完成させると、タスクフロー処理モジュール736は、その実施可能な意図に関連付けられた最終的なタスクの実行に進む。したがって、タスクフロー処理モジュール736は、構造化クエリ内に含まれている特定のパラメータに従って、タスクフローモデル内のステップ及び命令を実行する。例えば、「レストラン予約」の実施可能な意図に関するタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に依頼する、ステップ及び命令を含む。例えば、{レストラン予約、レストラン=ABC Cafe、日付=3/12/2012、時間=午後7時、参加人数=5}などの構造化クエリを使用して、タスクフロー処理モジュール736は、(1)ABC Cafeのサーバ、又はOPENTABLE(登録商標)などのレストラン予約システムにログオンするステップと、(2)ウェブサイト上のフォーム内に日付、時間、及び参加人数の情報を入力するステップと、(3)そのフォームを提出するステップと、(4)ユーザのカレンダー内に、その予約に関するカレンダー項目を入力するステップとを実行する。
【0189】
一部の実施例では、タスクフロー処理モジュール736は、ユーザ入力で要求されているタスクを完了するために、又は、ユーザ入力で要求されている情報の回答を提供するために、サービス処理モジュール738(「サービス処理モジュール」)の支援を採用する。例えば、サービス処理モジュール738は、タスクフロー処理モジュール736の代わりに、電話通話し、カレンダー項目を設定し、地図検索を呼び出し、ユーザデバイス上にインストールされている他のユーザアプリケーションを呼び出すか若しくはそのユーザアプリケーションと対話し、サードパーティサービス(例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータルなど)を呼び出すか若しくはそのサードパーティサービスと対話する機能を果たす。一部の実施例では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース(application programming interface;API)は、サービスモデル756の中の個別のサービスモデルによって指定されている。サービス処理モジュール738は、サービスに関する適切なサービスモデルにアクセスし、そのサービスモデルに従った、そのサービスによって必要とされるプロトコル及びAPIに準拠して、そのサービスに関する要求を生成する。
【0190】
例えば、レストランが、オンライン予約サービスに対応している場合、そのレストランは、予約を行うために必要なパラメータ、及び、その必要なパラメータの値をオンライン予約サービスに通信するためのAPIを指定する、サービスモデルを提出する。タスクフロー処理モジュール736によって要求されると、サービス処理モジュール738は、そのサービスモデル内に記憶されているウェブアドレスを使用して、オンライン予約サービスとのネットワーク接続を確立し、必要な予約パラメータ(例えば、時間、日付、参加人数)を、そのオンライン予約サービスのAPIに従った形式で、オンライン予約インタフェースに送信する。
【0191】
一部の実施例では、自然言語処理モジュール732、ダイアログフロー処理モジュール734、及びタスクフロー処理モジュール736は、ユーザの意図を推測及び定義し、そのユーザ意図を更に明らかにして絞り込むための情報を取得し、ユーザの意図を満たすための応答(すなわち、ユーザへの出力又はタスクの完了)を最終的に生成するために、集合的且つ反復的に使用される。生成された応答は、ユーザの意図を少なくとも部分的に満たす、発話入力に対するダイアログ応答である。更には、一部の実施例では、生成された応答は、発話出力として出力される。これらの実施例では、生成された応答は、発話合成処理モジュール740(例えば、発話合成器)に送信され、その発話合成処理モジュールで、発話形式のダイアログ応答を合成するように処理することができる。更に他の実施例では、生成された応答は、発話入力内のユーザ要求を満たすことに関連する、データコンテンツである。
【0192】
タスクフロー処理モジュール736が、自然言語処理モジュール732から複数の構造化クエリを受信する実施例では、タスクフロー処理モジュール736は、最初に、受信された構造化クエリのうちの第1の構造化クエリを処理して、その第1の構造化クエリを完成させるように、及び/又は、その第1の構造化クエリによって表されている1つ以上のタスク若しくはアクションを実行するように試みる。一部の実施例では、第1の構造化クエリは、最高ランクの実施可能な意図に対応する。他の実施例では、第1の構造化クエリは、受信された構造化クエリから、対応する音声認識信頼性スコアと、対応する意図信頼性スコアとの組み合わせに基づいて、選択される。一部の実施例では、タスクフロー処理モジュール736が、第1の構造化クエリの処理中に(例えば、必要なパラメータが判定不能であることにより)エラーに遭遇した場合には、タスクフロー処理モジュール736は、より低いランクの実施可能な意図に対応する、受信された構造化クエリのうちの第2の構造化クエリを選択して処理するように、進むことができる。この第2の構造化クエリは、例えば、対応するテキスト表現候補の音声認識信頼性スコア、対応する実施可能な意図候補の意図信頼性スコア、第1の構造化クエリ内の欠落している必要なパラメータ、又はこれらの任意の組み合わせに基づいて選択される。
【0193】
発話合成処理モジュール740は、ユーザに提示するための発話出力を合成するように構成されている。発話合成処理モジュール740は、デジタルアシスタントによって提供されたテキストに基づいて、発話出力を合成する。例えば、生成されたダイアログ応答は、テキスト文字列の形態である。発話合成処理モジュール740は、そのテキスト文字列を、可聴の発話出力に変換する。発話合成処理モジュール740は、テキストから発話出力を生成するために、限定するものではないが、波形接続合成、単位選択合成、ダイフォン合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル(hidden Markov model;HMM)に基づく合成、及びサイン波合成を含めた、任意の適切な発話合成技術を使用する。一部の実施例では、発話合成処理モジュール740は、単語に対応する音素列に基づいて個々の単語を合成するように構成されている。例えば、生成されたダイアログ応答内の単語に音素列が関連付けられる。音素列は、単語に関連付けられたメタデータに記憶される。発話合成処理モジュール740は、メタデータ中の音素列を直接処理して音声形式で単語を合成するように構成されている。
【0194】
一部の実施例では、発話合成処理モジュール740を使用する代わりに(又は、それに加えて)、発話合成は、リモートデバイス(例えば、サーバシステム108)上で実行され、合成された発話は、ユーザに出力するためにユーザデバイスに送信される。例えば、このことは、デジタルアシスタントに対する出力がサーバシステムで生成される、一部の実装形態で実施することができる。また、サーバシステムは、一般に、ユーザデバイスよりも多くの処理能力又はリソースを有するため、クライアント側での合成の場合に実用的となる出力よりも、高品質の発話出力を得ることが可能である。
【0195】
デジタルアシスタントについて更に詳しくは、参照することによりその開示全体が本明細書に組み込まれる、2011年1月10日に出願された、「Intelligent Automated Assistant」と題する米国実用出願第12/987,982号と、2011年9月30日に出願された、「Generating and Processing Task Items That Represent Tasks to Perform」と題する米国実用出願第13/251,088号とにおいて見ることができる。
4. 通信セッションにおけるデジタルアシスタント対話
【0196】
図8A図8Hは、様々な実施例による、通信セッションにおけるデジタルアシスタント(DA)対話のためのシステム及び技術を示す。
【0197】
図8Aは、デバイス800及び外部デバイス900のブロック図を示す。以下で説明するように、デバイス800及び900の各々は、通信セッションにおけるDA対話を処理するように構成されている。
【0198】
デバイス800は、例えば、デバイス200、400、又は600として実装される。同様に、外部デバイス900は、例えば、デバイス200、400、又は600の別のインスタンスとして実装される。以下の図8B図8Hは、スマートフォンデバイスとしてそれぞれ実装されるデバイス800及び外部デバイス900を示すが、デバイス800及び900は、スマートウォッチ、スマートスピーカ、情報家電、ラップトップコンピュータ、デスクトップコンピュータ、タブレットデバイス、ヘッドマウントデバイスなどの別のタイプのデバイスとしてそれぞれ実装され得る。
【0199】
デバイス800は、メモリ802(例えば、コンピュータ実行可能命令として)において、第1のDA804、オーディオ制御モジュール806、及び表示制御モジュール808を実装する。第1のDA804は、図7A図7Cに関して説明したように、デバイス800にDAサービスを提供するように構成されている。一部の実施例では、第1のDA804は、上記で図7A図7Bに関して説明したDAモジュール726の構成要素を少なくとも部分的に含む。
【0200】
オーディオ制御モジュール806は、デバイス800が通信セッションに関与しているときにデバイス800のオーディオ体験を管理するように構成されている。例えば、オーディオ通信を提供するように構成されたデバイス800の他の構成要素(例えば、通信モジュール228、RF回路208、オーディオ回路210、スピーカ211、周辺機器インタフェース218)と連携して、オーディオ制御モジュール806は、デバイス800に、第1のDA804によって生成されたオーディオ出力を通信セッション中の他のデバイス(単数又は複数)に伝送させ、且つ/又はデバイス800に、他のデバイス(単数又は複数)上でそれぞれ動作する他のDA(単数又は複数)によって生成された受信オーディオを出力させるように構成されている。
【0201】
表示制御モジュール808は、デバイス800が通信セッションに関与しているときに、デバイス800の表示された体験を管理するように構成されている。例えば、デバイス800の他の構成要素(例えば、通信モジュール228、RF回路208、ディスプレイコントローラ256、タッチ感知ディスプレイシステム212、周辺機器インタフェース218)と連携して、表示制御モジュール808は、デバイス800に、DA情報(例えば、第1のDA804によって生成された表示出力及び第1のDA804の状態の表示インジケーション)及び通信セッションの参加者に関する情報(例えば、通信セッションの参加者を識別する情報)を表示させ、デバイス800に、DA情報を表示する命令を他のデバイス(単数又は複数)に伝送させ、デバイス800に、DA情報を表示する命令を他のデバイス(単数又は複数)から受信させ、及び/又はデバイス800に、受信した命令に基づいてDA情報を表示させるように構成されている。
【0202】
同様に、外部デバイス900は、メモリ902において、第2のDA904、オーディオ制御モジュール906、及び表示制御モジュール908を実装する。第2のDA904、オーディオ制御モジュール906、及び表示制御モジュール908は各々、それぞれ、第1のDA804、オーディオ制御モジュール806、及び表示制御モジュール808と同様又は実質的に同一である。例えば、第2のDA904は、DAモジュール726の構成要素を少なくとも部分的に含む。オーディオ制御モジュール906は、例えば、オーディオ制御モジュール806に関して説明したように、外部デバイス900が通信セッションに関与しているとき、外部デバイス900のオーディオ体験を管理するように構成されている。表示制御モジュール908は、例えば、表示制御モジュール808に関して説明したように、外部デバイス900が通信セッションに関与しているときに、外部デバイス900の表示された体験を管理するように構成されている。
【0203】
本明細書の説明は、通信セッションに関与する別個のDAを説明するが、一部の実施例では、本開示は、通信セッションの各参加者に、通信セッションに関与している単一のDAと一致するユーザ体験を提供する。例えば、第1のDA804及び第2のDA904は各々、通信セッションにおいてそれぞれの応答を生成し得るが、第1のDA804及び第2のDA904は、同じ音声特性を使用して応答を提供することができる。更に、通信セッション内の各デバイスは、単一のDA表現(例えば、以下で説明するDAインジケータ812)のみを表示することができ、(例えば、DAが話しているかどうかを示す)DA表現の表示方式は、デバイスにわたって同期され得る。したがって、単一のDAがユーザ要求を処理し、ユーザ要求に対する応答を生成/提供するように見える場合がある。他の例では、本開示は、通信セッションの各参加者に、通信セッションに関与している複数のDAと一致するユーザ体験を提供する。例えば、DA804及び904によって生成されたそれぞれの応答は、異なる音声特性を有し得、且つ/又は各デバイスは、どのDAが各応答を与えるかを示すことができる。
【0204】
図8Bは、外部デバイス900との通信セッションに関与しているデバイス800を示す。以下の図8B図8Hは、単一の外部デバイス900との通信セッションに関与しているデバイス800を示すが、他の例では、デバイス800は、複数の外部デバイスとの通信セッションに関与している。デバイス800が1つ以上の外部デバイス(例えば、各々が外部デバイス900の別個のインスタンスとして実装される)との通信セッションに関与しているとき、以下で説明する技術が適用されることを理解されよう。
【0205】
通信セッションは、複数の電子デバイスによって提供され、セッションの参加者が、通信、例えば、テキスト、オーディオ、及び/又はビデオ通信を共有することを可能にする。例えば、通信セッションは、音声通信セッション(例えば、通話)、映像通信セッション(例えば、テレビ会議)、テキスト通信セッション(例えば、グループテキストメッセージセッション)、及び/又は仮想若しくは複合現実通信セッションに対応する。例えば、仮想又は複合現実通信セッションでは、参加者のそれぞれのデバイスは各々、共有ロケーションに同時に存在している各参加者(又はそれらの個別のアバター)をシミュレートするためにオーディオビジュアル体験を提供する。例えば、仮想又は複合現実通信セッションは、家の物理的又は仮想の部屋に存在する各参加者をシミュレートすることができる。一部の実施例では、通信セッションは、参加者のそれぞれのデバイスによって提供される異なるタイプの通信体験(例えば、オーディオ、ビデオ、テキスト、仮想又は複合現実)を含む。例えば、通信セッションにおいて、第1のデバイスは、(例えば、仮想設定において他の参加者(単数又は複数)の仮想表現(単数又は複数)を表示することによって)仮想又は複合現実通信体験を提供し得、第2のデバイスは、(例えば、他の参加者(単数又は複数)のビデオを表示することによって)ビデオ通信体験を提供し得る。したがって、通信セッションは、異なる能力を有するマルチデバイスによって、例えば、仮想現実能力を有するデバイスと限られた仮想現実能力を有するか又は仮想現実能力を有しないデバイスとによって、ビデオ能力を有するデバイスとビデオ能力を有しないデバイスとによって、提供され得る。
【0206】
図8Bにおいて、デバイス800は、外部デバイス900のユーザ(例えば、Rae)が通信セッションに参加していることを示す表現810を表示する。同様に、外部デバイス900は、デバイス800のユーザ(例えば、Tim)が通信セッションに参加していることを示す表現910を表示する。図8Bは、表現810及び910が各々、個別のユーザの名前を示すことを示すが、他の例では、表現810及び910は各々、個別のユーザのライブビデオを含み、且つ/又は各々、個別のユーザの個別の物理的表現(例えば、アバター)を含む。
【0207】
デバイス800が外部デバイス900との通信セッションに関与している間、デバイス800は、Timから、第1のDA804を呼び出すための入力を受信する。一部の実施例では、一部のタイプの入力はDAを呼び出すが、他のタイプの入力は、以下で説明されるように、自然言語入力がDAを呼び出すことなくDAを対象としているかどうかを示す。一部の実施例では、DAを呼び出すための入力は、DAを呼び出すための所定の単語又は語句、例えば、「Hey Siri」、「Siri」、「アシスタント」、「ウェイクアップ」などを含む発話入力などの口頭のトリガ入力を含む。一部の実施例では、DAを呼び出すための入力は、デバイスの物理ボタンの選択又はデバイスによって表示されたアフォーダンスの選択などの、対応するデバイス(例えば、デバイス800)のボタンの選択を含む。一部の実施例では、DAを呼び出すための入力は、検出されたユーザ視線入力、例えば、ユーザ視線が所定の持続期間にわたって特定の表示されたアフォーダンスに向けられていることを示す入力を含む。一部の実施例では、デバイスは、ユーザ視線入力に対する自然言語入力のタイミングに基づいて、ユーザ視線入力がDAを呼び出すための入力であると判定する。例えば、デバイスは、自然言語入力の開始時間及び/又は自然言語入力の終了時間にユーザの視線がアフォーダンスに向けられている場合、ユーザの視線入力がDAを呼び出すべきであると判定する。一部の実施例では、デバイスは、通信セッションが現在呼び出されているDAを含まない場合、ユーザ視線入力を、DAを呼び出すための入力として解釈する。通信セッションが、現在呼び出されているDAを含む(例えば、DAが、却下されることなく通信セッション内の任意のデバイス上で呼び出された)とき、デバイスは、自然言語入力がDAを対象とすることを示すようにユーザ視線入力を解釈するが、ユーザ視線入力をDAを呼び出すための入力として解釈しない。
【0208】
図8Bにおいて、Timは、口頭のトリガ入力「Hey Siri」をデバイス800に提供する。一部の実施例では、デバイス800は、口頭のトリガ入力を外部デバイス900に伝送し、外部デバイス900は、口頭のトリガ入力を出力する。
【0209】
一部の実施例では、第1のDA804を呼び出すための入力を受信したことに応じて、デバイス800は第1のDA804を呼び出す。例えば、デバイス800は、呼び出されたDAを示すためにDAインジケータ812を表示し、第1のDA804に対応する特定のプロセス及び/又はスレッドの実行を開始する。一部の実施例では、通信セッションにおいて第1のDA804を呼び出すことは、デバイス800が外部デバイス900(及び通信セッションにおける任意の他のデバイス(単数又は複数))にDAインジケータ812を表示させることを含む。例えば、表示制御モジュール808を使用して、デバイス800は、外部デバイス900に、デバイス800と同時にDAインジケータ812を表示させる。
【0210】
一部の実施例では、デバイス800は、通信セッション内の各デバイスにわたってDAインジケータ812の表示状態を(例えば、表示制御モジュール808を使用して)同期させる。したがって、通信セッション中の各デバイスは、同じ状態でDAインジケータ812を同時に表示する。例えば、デバイス800は、第1のDA804の異なる状態を示すために、それぞれの異なる可視化に対応する異なる状態でDAインジケータ812を表示する。例えば、DAインジケータ812の第1の表示状態は、第1のDA804が自然言語入力を受け入れる(例えば、聞く)準備ができていることを示し、第2の表示状態は、第1のDA804が現在自然言語入力を受信していることを示し、第3の表示状態は、第1のDA804が現在自然言語入力を処理していることを示し、第4の表示状態は、第1のDA804が現在自然言語入力に応じていることを示す。
【0211】
デバイス800が外部デバイス900との通信セッションに関与している間、デバイス800は、Timから、タスクに対応する自然言語入力を受信する。例えば、図8Bにおいて、Timが口頭のトリガ入力「Hey Siri」を提供した後、Timは、第1のDA804にメッセージを送信させることを意図した発話入力「「こんにちは」とメッセージを送信する」を提供する。一部の実施例では、デバイス800は、自然言語入力を外部デバイス900(及び通信セッション内の任意の他の外部デバイス(単数又は複数))に伝送し、外部デバイス(単数又は複数)はそれぞれ、自然言語入力を出力する。例えば、外部デバイス900は、「「こんにちは」とメッセージを送信する」を出力し、それによって、Timが第1のDA804を使用してメッセージを送信しようとしていることをRaeに通知する。
【0212】
一部の実施例では、第1のDA804を呼び出したことに従って、第1のDA804は、タスクに関する更なるユーザ入力のためのプロンプトを生成する。例えば、第1のDA804は、(例えば、図7A図7Cに関して説明したように)自然言語入力を処理して、プロンプトを生成する。図8Bの例では、自然言語入力「「こんにちは」とメッセージを送信する」に応じて、第1のDA804は、プロンプト「誰にメッセージを送信しますか?」を生成する。一部の実施例では、デバイス800は、プロンプトを出力し、例えば、オーディオ制御モジュール806を使用して、外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数))にプロンプトを伝送する。伝送されたプロンプトを受信すると、外部デバイス900は、第1のDA804の生成されたプロンプトをRaeに通知するために、「誰にメッセージを送信しますか?」を出力する。
【0213】
第1のDA804は、通信セッションの任意の参加者がプロンプトに応答することを可能にすることができる。したがって、かかる方法で第1のDA804を動作させることは、DAが要求されたタスクを満たすことができる柔軟性及び効率を改善することができる。例えば、プロンプトに対する応答を特定の参加者に限定しないことによって、プロンプトに対する正しい及び/又は最適な応答を有する参加者が応答を提供してもよい。かかる方法でDAを動作させることはまた、通信セッションへのより直感的なDA参加を提供することができ、例えば、人間の参加者間の通信セッションのように、任意の参加者が別の参加者からの質問又はプロンプトに応答することができる。
【0214】
図8Cを参照すると、更なるユーザ入力のためのプロンプトを伝送した後に、デバイス800は、外部デバイス900から、プロンプトに対する応答を受信する。一部の実施例では、応答は、外部デバイス900が、プロンプトを出力した後に、第2のDA904を呼び出すための入力を受信することなく、外部デバイス900において受信される。図8Cにおいて、Raeは、「Qingwei」と発話することによって、「誰にメッセージを送信しますか?」というプロンプトに応答する。外部デバイス900は、応答「Qingwei」を受信し、その応答をデバイス800(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。一部の実施例では、デバイス800は、受信したプロンプトへの応答を出力する。
【0215】
プロンプトに対する応答を受信すると、第1のDA804は、応答と、デバイス800に記憶され、デバイス800のユーザに対応する情報とに基づいて、タスクを開始する。記憶された情報は、例えば、Timの連絡先に関する情報(例えば、Timのデバイスに記憶された連絡先の識別情報、電話番号、及び電子メールアドレス)、カレンダー情報、ビデオ、写真、メモ、文書、テキスト及び電子メールメッセージ、健康情報、金融情報、家電情報(例えば、オン又はオフ、ロック又はアンロック、温度設定など)、デバイス800にインストールされたアプリケーション、デバイス800の設定などを含む。一部の実施例では、第1のDA804は、図7A図7Cに関して説明したように、ユーザの情報を使用して応答を処理することによってタスクを開始する。図8Cにおいて、例えば、第1のDA804は、QingweiがTimの(Raeのではない)連絡先である場合、「こんにちは」というメッセージをQingweiに送信するタスクを開始する。
【0216】
一部の実施例では、第1のDA804は、開始されたタスクを示す出力を生成し、デバイス800は、その出力を外部デバイス900に(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。一部の実施例では、出力は、タスクを開始するためにその情報が使用されたユーザを示す。例えば、第1のDA804は、「Timの連絡先、Qingweiへのメッセージ「こんにちは」を送信しますか?」という出力を生成し、ここで、「Timの連絡先、Qinqwei」は、タスクを開始するためにTimの連絡先情報を使用することを示す。出力を受信すると、外部デバイス900は、出力を提供する。別の例として、上記で説明した技術と一致して、Timが第1のDA804に「新しいメモを作成する」ように要求し、第1のDA804がプロンプト「メモに何を言いたいですか?」を生成し、Raeが「食料品リスト」を応答した場合、第1のDA804は、出力「OK、ティムのメモには「食料品リスト」とあります」を生成する。
【0217】
したがって、第1のDA804は、別のユーザ(例えば、Rae)が更なる入力のために第1のDA804のプロンプトに応答するにもかかわらず、タスクを開始するために、DAを直近に呼び出したユーザ(例えば、現在の呼び出し元Tim)の情報を使用することができる。かかる方法で第1のDA804を動作させることは、タスクを開始するために第1のDA804がどの情報を使用するかについての混乱を回避することによって、より一貫した効率的なユーザDA体験を提供することができる。かかる方式で第1のDA804を動作させることは、タスクを開始するために誰の情報が使用されるかを示すことによって、改善されたユーザフィードバックを更に提供することができ、それによって、第1のDA804が(正しいユーザの情報を使用して)正しいタスクを開始したことを確認するか、又は(誤ったユーザの情報を使用して開始された場合)ユーザがタスクを訂正することを可能にし、それは更に、ユーザDA対話の精度及び効率を改善する。
【0218】
一部の実施例では、タスクを開始することは、デバイス800上に、タスクに対応するアフォーダンス814を表示することを含む。一部の実施例では、第1のDA804は、デバイス800のユーザに対応する情報に基づいてアフォーダンス814を生成する。例えば、図8Cにおいて、「こんにちは」というメッセージをQingweiに送信するタスクを開始することは、Qingweiへの作成されたメッセージを送信する準備ができていることを示すアフォーダンス814を表示することを含む。
【0219】
一部の実施例では、デバイス800は、通信セッション内の各デバイスにわたって開始されたタスクに対応するアフォーダンスの表示を同期させる。例えば、デバイス800は更に、(例えば、表示制御モジュール808を使用して)外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数))にアフォーダンス814をそれぞれ表示させ、例えば、デバイス800と同時にアフォーダンス814をそれぞれ表示させる。
【0220】
図8Dを参照すると、一部の実施例では、デバイス800はまた、通信セッション内の各デバイスにわたって、表示されたアフォーダンスに対する任意の修正を同期させる。例えば、デバイス800は、アフォーダンス814の選択に対応するユーザ入力を受信し、それに応じて、アフォーダンス814を修正状態で表示する。図8Dでは、Timはアフォーダンス814を選択し、「鑑賞パーティに来ますか?」と読むようにメッセージを修正する。したがって、一部の実施例では、修正状態は、アフォーダンス814の修正されたテキストコンテンツに対応する。他の例では、修正状態は、アフォーダンス814の修正された表示方式(例えば、サイズ、形状、色、輝度、アニメーション)に対応する。アフォーダンス814の状態を修正したことに応じて、デバイス800は(例えば、表示制御モジュール808を使用して)、外部デバイス(単数又は複数)に、修正状態のアフォーダンス814を(例えば、デバイス800と同時に)それぞれ表示させる。例えば、図8Dにおいて、外部デバイス900はまた、更新されたメッセージ「鑑賞パーティに来ますか?」を示す修正されたアフォーダンス814を表示する。
【0221】
一部の実施例では、通信セッション内の外部デバイス(単数又は複数)の個別のユーザ(単数又は複数)によって行われたアフォーダンス814に対する修正も、通信セッション内の各デバイスにわたって同期される。例えば、外部デバイス900において、Raeは、アフォーダンス814の選択に対応する入力、例えば、アフォーダンス814を拡大するための入力を提供する。入力を受信したことに応じて、外部デバイス900は、アフォーダンス814を第2の修正状態、例えば、拡大された状態で表示する。入力を受信したことに応じて、外部デバイス900は、デバイス800に、例えば、表示制御モジュール908を使用して、アフォーダンス814を第2の修正状態で表示する命令を更に伝送する。命令を受信したことに応じて、デバイス800は、アフォーダンス814を第2の修正状態で表示する。したがって、外部デバイス900においてアフォーダンス814を拡大することに応じて、通信セッション内の各デバイスは、拡大されたアフォーダンス814を同時に表示する。
【0222】
一部の実施例では、通信セッションの参加者のデバイス上で動作するそれぞれのDAは、異なる言語で動作するように構成されている。例えば、それぞれのDAのスピーチ認識及び自然言語処理能力(例えば、STT処理モジュール730、音標文字変換モジュール731、語彙744、及び自然言語処理モジュール732によって提供される)は、それぞれの異なる言語で動作するように構成されている。例えば、デバイス800上で動作する第1のDA804は、第1の言語(例えば、英語)で動作するように構成されており、一方、外部デバイス900上で動作する第2のDA904は、異なる第2の言語(例えば、中国語)で動作するように構成されている。
【0223】
一部の実施例では、第1のDA804は、自然言語入力(例えば、更なるユーザ入力のためのプロンプトに対する応答)をその個別の言語で解釈することができるかどうかを判定する。一部の実施例では、第1のDA804は、(例えば、STT処理モジュール730によって決定された)自然言語入力に対応するSTT信頼スコア、(例えば、自然言語処理モジュール732によって決定された)自然言語入力に対応する意図信頼スコアに基づいて自然言語入力を解釈することができるかどうか、及び/又は第1のDA804が(例えば、タスクフロー処理モジュール736を使用して)自然言語入力に基づいてタスクを正常に開始することができるかどうかを判定する。例えば、第1のDA804は、STT信頼スコアが閾値を上回る場合、意図信頼スコアが閾値を上回る場合、及び/又は第1のDA804がタスクを正常に開始することができる場合、自然言語入力を解釈することができると判定する。
【0224】
図8Bの例では、自然言語入力「「こんにちは」とメッセージを送信する」は第1の言語(英語)であり、第1のDA804は第1の言語で動作するように構成されている。したがって、第1のDA804は、第1の言語による自然言語入力を解釈することができる。しかしながら、図8Cでは、プロンプト「誰にメッセージを送信しますか?」に対する応答が、第1の言語とは異なる第2の言語(例えば、中国語)であると仮定する。例えば、第2のDA904は中国語で動作するように構成されているため、Raeは中国語でDAと対話することに慣れている。したがって、Raeは、
【表10】
という名前の連絡先にメッセージを送信する要求を示す中国語の応答
【表11】
を提供する。第1のDA804は、第1の言語において応答を解釈することができるかどうかを判定する。本例では、第1のDA804は、(例えば、応答に個別のSTT信頼スコア及び/又は意図信頼スコアが個別の閾値を下回り、及び/又は第1のDA804が応答に基づいてタスクを開始することができないので)第1の言語において応答を解釈することができないと判定する。第1のDA804が出力において応答を解釈することができないという判定に従って、第1のDA804は、エラーを示す第1の言語を生成する。例えば、第1のDA804は、「残念ながら、Song How Youngという名前の連絡先を見つけることができませんでした。」という出力を生成し、ここで、「Song How Young」は、第1のDA804が試みた中国語応答
【表12】
の英語表記である。デバイス800は、通信セッション内の外部デバイス(単数又は複数)に、エラーを示す出力を更に伝送する。したがって、Raeが
【表13】
でプロンプトに応答すると、外部デバイス900は、「残念ながら、Song How Youngという名前の連絡先を見つけることができませんでした。」を出力する。このようにして、第1のDA804は、第1のDA804と対話するための正しい言語を(例えば、英語応答を介して)有利に示すことができ、それによって、効率的で正確なタスク開始を容易にする。
【0225】
図8E図8Fを参照すると、一部の実施例では、通信セッション内の外部デバイス(デバイス800とは異なる)のユーザがDAを呼び出す。呼び出されたDAは、外部デバイスに記憶されたユーザに対応する情報を使用して、要求されたタスクを開始する。図8Eでは、デバイス800が「Timの連絡先、Qingweiへのメッセージ「こんにちは」を送信しますか?」という出力を伝送した(及び外部デバイス900が出力した)後に、外部デバイス900は、Raeから、第2のDA904を呼び出すための入力を受信する。例えば、Raeは、口頭のトリガ入力
【表14】
を提供する。第2のDA904を呼び出すための入力を受信すると、図8Dのデバイス800から図8Eの外部デバイス900にDA呼び出しが転送され、これは、Raeが現在の(例えば、最新の)呼び出し元であることを意味する。外部デバイス900上で呼び出されると、第2のDA904は、例えば、第2のDA904が消える(例えば、DAインジケータ812が表示されなくなる、及び/又は第2のDA904に対応する特定のプロセス/スレッドが外部デバイス900上で実行しなくなる)まで、又は別のデバイスが他のデバイス上でDAを呼び出すためのユーザ入力を受信するまで、Raeに対応する情報に基づいてタスクを開始する。
【0226】
図8Eでは、外部デバイス900はまた、Raeから、第2のタスクに対応する第2の自然言語入力を受信する。例えば、Raeは、「一起看哈利波特」(「ハリー・ポッターを一緒に鑑賞しましょう」)と中国語で発話する。図8Eにおいて、外部デバイス900は、第2の自然言語入力をデバイス800に(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。第2の自然言語入力を受信すると、デバイス800は、第2の自然言語入力を出力する。
【0227】
第2のDA904を呼び出すための入力を受信したことに従って、第2のDA904は、第2のタスクに関するユーザ入力のための第2のプロンプト、例えば、
【表15】
(「どのハリー・ポッターのムービーですか?」)を生成する。外部デバイス900は、第2のプロンプトをデバイス800に(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。第2のプロンプトを受信すると、デバイス800は、第2のプロンプトを出力する。
【0228】
図8Fにおいて、Timは、第2のプロンプトに対する応答を提供する。例えば、デバイス800は、Timから、応答「哈利・波特与魔法石」(「ハリー・ポッターと賢者の石」)を受信する。一部の実施例では、デバイス800は、デバイス800が第2のプロンプトを受信した後に第1のDA804を呼び出すための入力を提供することなく、応答を受信する。デバイス800は、応答を外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。応答を受信すると、第2のDA904は、応答及び外部デバイス900上に記憶されたRaeに対応する情報に基づいて第2のタスクを開始する。例えば、第2のDA904は、「ハリー・ポッターと賢者の石」を見るタスクを開始し、ここで、ムービーは、外部デバイス900上に記憶されるか、又はRaeのメディアサブスクリプションアカウントに関連付けられる。第2のDA904は、開始された第2のタスクを示す出力、例えば、
【表16】
(「一緒に鑑賞を開始する」)を更に生成する。外部デバイス900は、出力をデバイス800(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。出力を受信すると、デバイス800は出力を提供する。
【0229】
図8B図8Fの上述の例は、現在のDA呼び出し元とは異なるユーザが、ユーザ入力のためのDAのプロンプトに応答することを可能にする。しかし、時には、現在の呼び出し元のみが、要求されたタスクに関する更なるユーザ入力のためにDAのプロンプトに正常に応答できるようにすることが望ましい場合がある。特に、ある所定のタイプのタスクの場合、他のユーザ(単数又は複数)が、現在の呼び出し元のデータを使用してタスクを開始するように現在の呼び出し元のDAに命令することは望ましくない場合がある。かかる所定のタイプのタスクの例は、(例えば、他のユーザが現在の呼び出し元に対する支払いを認可することは望ましくない場合があるので)支払いタスク、及び(例えば、他のユーザが現在の呼び出し元の家庭電化製品を制御する(例えば、ドアをロック解除する)ことは望ましくない場合があるので)家庭電化製品制御タスクなどの安全なタスクを含む。したがって、以下の図8G図8Hは、通信セッションにおけるかかる所定のタイプのタスクに関するDA要求を処理するための技術を示す。
【0230】
図8Gでは、デバイス800が外部デバイス900との通信セッションに関与している間、及び第1のDA804がデバイス800上で呼び出されている(及び自然言語入力を監視している)間、デバイス800は、タスクに対応する自然言語入力を受信する。例えば、現在の呼び出し元Timは、自然言語入力「Larryに100ドルを支払う」を提供する。デバイス800は、自然言語入力を外部デバイス900に(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。外部デバイス900は、受信した自然言語入力を出力する。第1のDA804は更に、タスクに関する更なるユーザ入力のためのプロンプト、例えば、「OK、Larryに100ドル支払います。よろしいですか?」を生成する。デバイス800は、プロンプトを出力し、そのプロンプトを外部デバイス900(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。
【0231】
一部の実施例では、第1のDA804は、タスクが所定のタイプのタスクに対応するかどうかを判定する。例えば、第1のDA804は、自然言語入力が所定のタイプのドメインに対応するかどうかを判定する。例示的な所定のタイプのドメインは、(例えば、支払いを行う及び/又は支払い情報にアクセスする実施可能な意図に関連付けられた)支払いドメインと、(例えば、ユーザの家庭用電化製品の状態及び/又は設定を制御する実施可能な意図に関連付けられた)ホームコントロールドメインとを含む。この例では、第1のDA804は、100ドルのラリーを支払うタスクが所定のタイプのタスクに対応すると判定する。
【0232】
図8Hを参照すると、Raeは、外部デバイス900においてプロンプトに対する応答、例えば「はい」を提供する。デバイス800は、プロンプトを受信し、出力する。しかしながら、タスクが所定のタイプのタスクに対応すると第1のDA804が判定したことに従って、且つ外部デバイス900から応答を受信したことに従って、第1のDA804は、タスクを完了することができないことを示す出力を生成する。例えば、第1のDA804は、タスクが所定のタイプに対応すると判定し、応答が外部デバイスから受信されたと判定するため、第1のDA804は、「申し訳ありませんが、それはできません。Tim、確認しますか?」を生成する。一部の実施例では、第1のDA804がタスクを完了することができないことを示す出力は、第1のDA804にタスクを完了させるための認可ユーザ(例えば、Tim)を示す。デバイス800は、出力を提供し、その出力を外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。
【0233】
本例を続けると、デバイス800は、Timから、更なる入力のためのプロンプトに対する応答(例えば、「はい」)を受信する。デバイス800は更に、応答を外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。タスクが所定のタイプのタスクに対応するという判定に従って、且つ応答が現在の呼び出し元(例えば、Tim)から受信されるという判定に従って、第1のDA804は、Timに対応する情報に基づいてタスクを開始する。例えば、タスクが所定のタイプであり、現在の呼び出し元がタスクを確認するため、第1のDA804は、100ドルのLarryを支払うタスクを開始し、Larryは、Timの連絡先のうちの1つである。第1のDA804は、開始されたタスクを示す出力、例えば、OK、Larryに100ドルを支払いました」を更に生成する。デバイス800は、出力を提供し、その出力を外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。このようにして、許可されたユーザ(例えば、現在の呼び出し元)のみがセキュアなタスクの完了を許可することを可能にすることによって、デバイスセキュリティが改善され得る。
【0234】
一部の実施例では、タスクが所定のタイプのタスクに対応する場合、DAによって生成された表示された応答(例えば、アフォーダンス)は、通信セッション内の外部デバイス(単数又は複数)にわたって同期されない。したがって、一部の実施例では、外部デバイス(単数又は複数)に図8C図8Dのアフォーダンス814をそれぞれ表示させることは、タスク(例えば、メッセージを送信すること)が所定のタイプのタスクに対応しないという判定に従って実施される。図8G図8Hにおいて、自然言語入力「Larryに100ドルを支払う」を受信したことに応じて、第1のDA804は、支払いタスクに対応するアフォーダンス816を生成する。特に、アフォーダンス816は、デバイス800が(例えば、表示制御モジュール808を使用して)外部デバイス(単数又は複数)にアフォーダンス816をそれぞれ表示させることなく、デバイス800上に表示される。例えば、タスクが所定のタイプに対応すると第1のDA804が判定したことに従って、表示制御モジュール808は、他の外部デバイス(単数又は複数)に、生成されたアフォーダンス816を表示するように命令しない。更に、一部の実施例では、アフォーダンス816の状態に対してTimが行う修正も、通信セッション内の外部デバイス(単数又は複数)にわたって同期されない。
【0235】
他の例では、タスクが所定のタイプのタスクに対応する場合であっても、DAによって生成された表示された応答は、通信セッションにおいて外部デバイス(単数又は複数)にわたって同期される。例えば、タスクが所定のタイプに対応すると第1のDA804が判定した場合、第1のDA804は、(例えば、表示制御モジュール808を使用して)外部デバイス(単数又は複数)に、非対話状態でアフォーダンスをそれぞれ表示させる。一部の実施例では、非対話状態で表示されるアフォーダンスは、通常の(例えば、対話)状態で表示されるアフォーダンスとは異なる表示方式を有する(例えば、色の代わりにグレースケールで表示され、より小さい表示サイズを有する)。一部の実施例では、デバイスが非対話状態でアフォーダンスを表示するとき、デバイスは、ユーザ入力がアフォーダンスを選択して対応するタスクを実施させることを許可せず、及び/又はユーザ入力がアフォーダンスのコンテンツを修正することを許可しない。一部の実施例では、デバイスが非対話状態でアフォーダンスを表示するとき、デバイスは、アフォーダンスのコンテンツ(例えば、テキスト、画像)を表示しない。例えば、デバイス800は、図8G図8Hのアフォーダンス816を対話状態で表示し、それによって、Timが「確認」ボタンを選択してLarryに100ドルを支払うことを可能にする。デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数))は、デバイス800と同時にアフォーダンス816を表示することができるが、各表示アフォーダンス816は非対話状態にある。例えば、デバイス900は、グレースケールでアフォーダンス816を表示し、RaeがLarryに100ドルを支払うために「確認」ボタンを選択することを許可しない。
【0236】
一部の実施例では、アフォーダンス816の表示に対して(例えば、Timによって)行われた修正は、通信セッション内のデバイスにわたって同期されるが、アフォーダンス816は、他のデバイス(単数又は複数)において非対話状態で表示されたままである。例えば、Timがアフォーダンス816のテキストコンテンツを(例えば、100ドルの代わりに50ドルをLarryに支払うように)修正した場合、他のデバイス(単数又は複数)は、修正されたテキストコンテンツを示すようにアフォーダンス816を表示するが、依然としてアフォーダンス816をグレースケールで表示し、個別のユーザ(単数又は複数)が「確認」ボタンを選択することを許可しない。
【0237】
以下の図9A図9F及び10A~図10Dは、様々な実施例による、通信セッションの参加者のDAが異なる言語で動作するように構成されているときの、通信セッションにおけるDA対話のための技術を示す。時々、通信セッションの参加者は、異なる言語を発話することがあり、したがって、各参加者は、特定の言語でDAと対話することに慣れていることがある。しかしながら、通信セッションにおいて呼び出されたDAは、別の参加者がDAと対話するために習慣的に使用する言語とは異なる単一の言語(例えば、現在の呼び出し元の言語)で動作するように構成されてもよい。したがって、通信セッションにおいてDAと対話するための正しい言語を定義することが望ましい場合がある。
【0238】
図9Aにおいて、デバイス800が外部デバイス900(及び任意選択的に他の外部デバイス(単数又は複数))との通信セッションに関与している間、デバイス800は、第1のDA804を呼び出すための入力を受信する。例えば、Timは、口頭のトリガ入力「Hey Siri」を提供する。図9A図9F及び図10A図10Dの例では、第1のDA804は、第1の言語(例えば、英語)で動作するように構成されており、第2のDA904は、第2の言語(例えば、スペイン語)で動作するように構成されている。更に、以下の図9A図9Eでは、Timは、現在の(直近の)DA呼び出し元であり、外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数))が、通信セッション中に、それらのそれぞれのDAを呼び出すための入力を受信していないことを意味する。
【0239】
デバイス800は、第1の言語による第1の自然言語入力を受信する。例えば、Timは、「今何時ですか?」と言い、第1のDA804に現在の時間を提供するように要求する。デバイス800は、第1の自然言語入力を外部デバイス900(及び通信セッション内の任意の他の外部デバイス(単数又は複数))に伝送し、外部デバイス(単数又は複数)はそれぞれ第1の自然言語入力を出力する。
【0240】
第1のDA804を呼び出したことに従って、第1のDA804は、第1の自然言語入力に対する第1の言語による第1の応答を生成する。デバイス800は、第1の応答を出力し、第1の応答を外部デバイス900に(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送し、デバイス(単数又は複数)は各々、第1の応答を出力する。例えば、図9Aにおいて、第1のDA804は、第1の応答「クパチーノは午前9時です」を生成する。
【0241】
図9Bを参照すると、一部の実施例では、参加者が通信セッションにおいてDAとの対話を継続することを意図する場合、参加者は、自身のDAが動作するように構成された言語で第2の自然言語入力(フォローアップ要求)を発行する。例えば、デバイス800が第1の応答「クパチーノは午前9時です」を伝送し、外部デバイス900が第1の応答を出力した後、外部デバイス900は、第2の言語のフォローアップ要求を受信する。例えば、図9Bにおいて、Raeは、第2のDA904にスペイン語で「
【表17】
(パリはどうですか?)」と尋ねる。デバイス800(及び通信セッション内の任意の他のデバイス(単数又は複数))は、外部デバイス900からフォローアップ要求を受信する。一部の実施例では、デバイス800は、フォローアップ要求を更に出力する。
【0242】
一部の実施例では、第1の応答を受信した後に第2のDA904を呼び出すための入力を外部デバイス900が受信することなく、フォローアップ要求が受信される。例えば、Raeは、口頭のトリガ入力(例えば、「Hola Siri」)を提供することなく、且つ外部デバイス900のボタンを押下することなく、
【表18】
と発話する。一部の実施例では、フォローアップ要求は、(例えば、以前に要求されたタスクに関する)ユーザ入力のためのDA生成プロンプト(例えば、第1のDA804又は第2のDA904によって生成されたテキスト又は音声プロンプト)への応答を含まない。したがって、フォローアップ要求は、図8B図8Hに関して説明したプロンプトされた応答とは異なり、第2のDA904へのプロンプトされない要求であり得る。
【0243】
デバイス800が第1の応答(例えば、「クパチーノは午前9時です」)を出力した後、通信セッション内の各DAは、例えば、第1の応答が出力された後の所定の持続期間にわたって、フォローアップ要求を監視する。一部の実施例では、デバイスにおいてフォローアップ要求を監視することは、フォローアップ要求がデバイス上で動作しているDAを対象としていると判定することを含む。したがって、通信セッション内のDAは、参加者間の会話として意図された自然言語入力(DAを意図していない)と、DAを意図したフォローアップ要求とを区別することができる。
【0244】
一部の実施例では、フォローアップ要求がDAを対象としていると判定することは、第1の応答が出力された後の所定の持続期間(例えば、5秒、10秒)内に、DAがDAのユーザからフォローアップ要求を受信したと判定することを含む。したがって、DAは、DAのユーザから直接受信され(別のデバイスから伝送されず)、所定の持続時間内に受信された任意の自然言語入力が、それ自体を対象としていると判定する。例えば、第2のDA904は、外部デバイス900が「クパチーノは午前9時です」を出力した後の所定の持続期間内に、第2のDA904がRaeからフォローアップ要求を受信するため、フォローアップ要求
【表19】
がそれ自体を対象としていると判定する。デバイス800はまた、フォローアップ要求を受信するが、第1のDA804は、フォローアップ要求がTimからではなく、外部デバイス900から受信されたため、フォローアップ要求がそれ自体を対象としていないと判定する。
【0245】
一部の実施例では、フォローアップ要求がDAを対象としていると判定することは、DAのユーザの視線方向に基づく。例えば、各デバイスは、(例えば、デバイスカメラ(単数又は複数)を介して)ユーザ視線データを検出し、視線データを分析して、デバイスのユーザから受信されたフォローアップ要求が個別のDAと対象としているかどうかを判定する。一部の実施例では、各デバイスは、第1の応答が出力された後の所定の持続期間内にユーザ視線データを検出する。一部の実施例では、デバイスは、ユーザ視線が、フォローアップ要求の開始時間前の所定の持続期間内に(例えば、所定の期間にわたってDAインジケータ812において)表示された視線ターゲットに向けられている場合、ユーザ視線が、開始時間に視線ターゲットに向けられている場合、及び/又はユーザ視線が、フォローアップ要求の終了時間に視線ターゲットに向けられている場合、フォローアップ要求が個別のDAを対象としていると判定する。例えば、第2のDA904は、外部デバイス900によって検出された視線データに基づいて、フォローアップ要求
【表20】
がそれ自体を対象としていると判定する。デバイス800はまた、フォローアップ要求
【表21】
を受信するが、デバイス800は、フォローアップ要求が外部デバイス900(Timではない)から受信されるため、及び/又はデバイス800によって検出された視線データが、フォローアップ要求が第1のDA804を対象とすることを示さないため、フォローアップ要求が第1のDA804を対象としないことを決定する。
【0246】
一部の実施例では、フォローアップ要求がDAを対象としているという判定に従って、DAは、フォローアップ要求に対する第2の応答をその個別の言語で生成する。一部の実施例では、DAは、個別のデバイスのユーザに対応する情報(例えば、ユーザの連絡先情報、カレンダー情報、ビデオ、写真、メモなど)に基づいて第2の応答を生成し、情報は、個別のデバイス上に記憶される。一部の実施例では、第2のDA904は、外部デバイス900が第1の応答、例えば、「クパチーノは午前9時です」を出力した後に、外部デバイス900が第2のDA904を呼び出すための入力を受信することなく、第2の応答を生成する。図9Bでは、第2のDA904は、フォローアップ要求
【表22】
がそれ自体を対象としていると判定するため、第2のDA904は、スペイン語の第2の応答「en Paris,son las 6pm(パリでは午後6時です)」を生成する。外部デバイス900は更に、第2の応答をデバイス800(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。一部の実施例では、第2の応答を受信すると、デバイス800は、第2の応答を出力する。
【0247】
一部の実施例では、デバイス800は、外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数))に、第1の自然言語入力と関連付けられたコンテキスト情報を伝送する。一部の実施例では、コンテキスト情報は、STT処理モジュール730によって決定された通信セッションの転写、例えば、参加者の会話及びDAが生成した応答の転写を含む。一部の実施例では、コンテキスト情報は、図7Bに関して上述したコンテキスト情報、例えば、デバイス800のセンサによって収集された情報を含む。一部の実施例では、コンテキスト情報は、第1の自然言語入力に関連付けられた会話コンテキスト、例えば、第1の自然言語入力に対応する決定されたドメインを示す。例えば、第1のDA804は、第1の自然言語入力「今何時ですか?」が(例えば、時間データを提供する実施可能な意図に関連付けられた)時間領域に対応すると判定し、デバイス800に、時間領域を示すコンテキスト情報を外部デバイス900に伝送させる。一部の実施例では、第2のDA904(又はフォローアップ要求に応答する別のDA)は、受信されたコンテキスト情報に基づいてフォローアップ要求に対する第2の応答を生成する。例えば、コンテキスト情報を使用して、第2のDA904は、フォローアップ要求
【表23】
を、第2の応答「en Paris,son las 6pm」を生成するためにパリの時間について尋ねることを意味すると解釈する。
【0248】
一部の実施例では、通信セッション内のDAがコンテキスト情報に基づいて応答を生成するとき、応答は、使用されるコンテキスト情報を示す。かかる方法でDAを動作させることは、応答が何を指すかについて通信セッションの参加者を混乱させることを回避することができる。したがって、一部の実施例では、DAが自然言語入力を解釈するためにコンテキスト情報を使用するという判定、及び個別のデバイスが通信セッションに関与しているという判定に従って、DAは、コンテキスト情報を示す応答を生成する。例えば、図9Aの第1の応答「クパチーノは午前9時です」は、「今何時ですか?」に応答するために第1のDA804によって使用されるカリフォルニア州クパチーノのコンテキスト情報(例えば、Timの現在のロケーション)を示す。
【0249】
図9Cは、Timが第1のDA804の第1の言語においてフォローアップ要求を提供する例を示す。図9Cでは、図9Aから継続して、デバイス800が、第1の応答「クパチーノは午前9時です」を出力及び伝送した後に、デバイス800は、Timから、フォローアップ要求「パリはどうですか?」を受信する。フォローアップ要求は、デバイス800が、第1の応答を出力及び/又は伝送した後に、第1のDA804を呼び出すための入力を受信することなく受信される。一部の実施例では、フォローアップ要求は、(例えば、以前に要求されたタスクに関する)更なるユーザ入力のためのDA生成プロンプトへの応答を含まない。
【0250】
図9Cでは、第1のDA804は、例えば、Timが、デバイス800が「クパチーノは午前9時です」を出力した後の所定の持続期間内にフォローアップ要求を発話するように、フォローアップ要求「パリはどうですか?」がそれ自体を対象とすることを決定する。フォローアップ要求を受信したことに従って(及び任意選択で、フォローアップ要求が第1のDA804を対象としているという判定に従って)、第1のDA804は、フォローアップ要求に対する第1の言語による第2の応答を生成する。第2の応答は、フォローアップ要求に対応する開始されたタスク(例えば、パリの現在時刻を取得すること)を示す。一部の実施例では、第1のDA804は、デバイス800が第1の応答、例えば、「クパチーノは午前9時です」を出力した後に、デバイス800が第1のDA804を呼び出すための入力を受信することなく、第2の応答を生成する。例えば、第1のDA804は、第2の応答「パリでは午後6時です」を生成し、デバイス800は、第2の応答を外部デバイス900に(及び通信セッション中の任意の他の外部デバイス(単数又は複数)に)伝送する。
【0251】
図9Dは、Timが第1のDA804の言語とは異なる言語でフォローアップ要求を提供しようと試みる例を示す。図9Dでは、図9Aから継続して、デバイス800が第1の応答「クパチーノは午前9時です」を出力及び伝送した後に、デバイス800は、Timから、第1の言語と異なる言語でフォローアップ要求を受信する。例えば、Timはスペイン語で
【表24】
と発話する。フォローアップ要求は、デバイス800が、第1の応答を出力及び/又は伝送した後に、第1のDA804を呼び出すための入力を受信することなく受信される。一部の実施例では、フォローアップ要求は、(例えば、以前に要求されたタスクに関する)更なるユーザ入力のためのDA生成プロンプトへの応答を含まない。
【0252】
図9Dでは、第1のDA804は、フォローアップ要求がそれ自体を対象としていると判定する。フォローアップ要求を受信したことに従って(及び任意選択で、フォローアップ要求が第1のDA804を対象としているという判定に従って)、第1のDA804は、フォローアップ要求に対する第1の言語による第2の応答を生成する。一部の実施例では、第1のDA804は、デバイス800が第1の応答、例えば、「クパチーノは午前9時です」を出力した後に、デバイス800が第1のDA804を呼び出すための入力を受信することなく、第2の応答を生成する。本例では、第2の応答は、第1のDA804がフォローアップ要求を解釈することができないことを示す。例えば、第1のDA804は英語で動作するように構成されているため、第1のDA804はスペイン語のフォローアップ要求
【表25】
を解釈することができず、したがって第2の応答「申し訳ありません、理解できません」を生成する。デバイス800は、第2の応答を外部デバイス900に(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。
【0253】
図9Eは、Raeが現在の呼び出し元のDAの言語でフォローアップ要求を提供しようとする例を示す。図9Eでは、図9Aから継続して、デバイス800が第1の応答「クパチーノは午前9時です」を外部デバイス900に伝送した後に、及び外部デバイス900が第1の応答を出力した後、外部デバイス900は、第1の言語のフォローアップ要求を受信する。例えば、Raeは英語で「パリはどうですか?」と発話する。外部デバイス900は、フォローアップ要求をデバイス800(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送し、デバイス800は、フォローアップ要求を受信する。フォローアップ要求は、外部デバイス900が、伝送された第1の応答を受信した後に、第2のDA904を呼び出すための入力を受信することなく、外部デバイス900において受信される。一部の実施例では、フォローアップ要求は、更なるユーザ入力のためのDA生成プロンプトへの応答を含まない。
【0254】
図9Eにおいて、第2のDA904は、フォローアップ要求がそれ自体を対象としていると判定する。フォローアップ要求を受信したことに従って(及び任意選択的に、フォローアップ要求が第2のDA904を対象としているという判定に従って)、第2のDA904は、第2の言語で、フォローアップ要求に対する第2の応答を生成する。第2の応答は、第2のDA904がフォローアップ要求を解釈することができないことを示す。一部の実施例では、第2のDA904は、外部デバイス900が第1の応答、例えば、「クパチーノは午前9時です」を出力した後に、外部デバイス900が第2のDA904を呼び出すための入力を受信することなく、第2の応答を生成する。例えば、第2のDA904はスペイン語で動作するように構成されているため、第2のDA904は、英語のフォローアップ要求「パリはどうですか?」を解釈することができない。したがって、第2のDA904は、第2の応答「no entiendo(理解できません)」を生成する。外部デバイス900は、第2の応答をデバイス800に(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送し、デバイス800は、応答を受信する。
【0255】
図9Fは、第2のDA904を呼び出すための入力を提供することによって、Raeが第2の言語で第2のDA904と正常に対話する例を示す。図9Fでは、図9Aに続いて、デバイス800が第1の応答「クパチーノは午前9時です」を外部デバイス900に伝送した後に、及び外部デバイス900が第1の応答を出力した後、外部デバイス900は、Raeから第2の言語の自然言語入力を受信する。例えば、Raeは
【表26】
と発話する。外部デバイス900は、自然言語入力をデバイス800に(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。デバイス800は、自然言語入力を受信し、出力する。
【0256】
外部デバイス900は、Raeから、第2のDA904を呼び出すための入力を更に受信する。例えば、Raeは、口頭のトリガ入力「Hola Siri」を提供した後、又は外部デバイス900上のボタンの押下に応じて第2のDA904が起動した後、
【表27】
と発話する。したがって、第2のDA904を呼び出すための入力を提供することによって、DA呼び出しは、図9Aのデバイス800から図9Fの外部デバイス900に転送され、これは、Raeが現在の呼び出し元であることを意味する。
【0257】
外部デバイス900が第2のDA904を呼び出すための入力を受信したことに従って、第2のDA904は、第2の言語で、自然言語入力に対する応答を生成する。この応答は、第2のDA904が自然言語入力に対応するタスクを開始することを示す。例えば、第2のDA904は、応答「en Paris,son las 6pm」を生成して、パリの現在時刻を提供するタスクを開始することを示す。外部デバイス900は、応答をデバイス800(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送し、デバイス800は、応答を受信する。
【0258】
図9A図9Fの例は、(例えば、DAを呼び出すための入力を提供することなく)フォローアップ要求を正常に発行するために、各参加者が、自身のDAの言語でフォローアップ要求を発話することを示す。他の例では、参加者は、通信セッション内の任意のDAが動作するように構成された言語でフォローアップ要求を発行することができる。例えば、外部デバイス(単数又は複数)が、図9Aの第1の応答「クパチーノは午前9時です」を受信及び出力した後、参加者は、通信セッション内の任意のDAの言語でフォローアップ要求を発話してもよい。一部の実施例では、フォローアップ要求は、第1の応答を出力した後に、DAを呼び出すための入力をデバイスが受信することなく、参加者のデバイスによって受信される。一部の実施例では、フォローアップ要求は、更なるユーザ入力のためのDA生成プロンプトへの応答を含まない。
【0259】
一部の実施例では、通信セッションのDAは、フォローアップ要求を処理するための正しいDA、例えば、フォローアップ要求の言語で動作するように構成されたDAを決定するために、互いに協調する。例えば、それぞれのデバイスにおいて第1の応答「クパチーノは午前9時です」を出力したことに応じて、各DAは、フォローアップ要求を監視する。(例えば、DAのユーザから、又は別のデバイスから)フォローアップ要求を受信すると、各DAは、フォローアップ要求がそれ自体を対象としているかどうかを判定する。例えば、各DAは、音声認識信頼度スコアを決定するために、(例えば、STT処理モジュール730を使用して)フォローアップ要求に対してSTT処理を実施する。次いで、各DAは、個別のデバイスに、音声認識信頼度スコアを他の各デバイスに伝送させる。各DAは、その決定された音声認識信頼度スコアを、他のデバイス(単数又は複数)から受信された音声認識信頼度スコアと比較する。したがって、最も高い音声認識信頼性スコアを有するDA(例えば、その生成された信頼性スコアが全ての受信された信頼性スコアよりも高いと判定するDA)は、フォローアップ要求がそれ自体を対象としていると判定する。
【0260】
一部の実施例では、フォローアップ要求が特定のDAを対象とすることを決定すると、DAは、個別のデバイスに、フォローアップ要求が他のDA(単数又は複数)を対象としないことを示す命令を他のデバイス(単数又は複数)に伝送させる。命令は、他のDA(単数又は複数)に、フォローアップ要求の任意の進行中の処理を中止し、フォローアップ要求に応じて任意の出力を生成しないように命令する。一部の実施例では、フォローアップ要求が特定のDAを対象としていると判定すると、特定のDAは、フォローアップ要求に対する応答をその個別の言語で生成する。
【0261】
例えば、図9Aから継続して、外部デバイス900が第1の応答「クパチーノは午前9時です」を出力した後に、Raeがフォローアップ要求「パリはどうですか?」を発話すると仮定する。上記で説明した技術によれば、第1のDA804は、(フォローアップ要求が英語であり、第1のDA804が英語で動作するように構成されているので)フォローアップ要求がそれ自体を対象としていると判定する。したがって、第1のDA804は、「パリでは午後6時です」という応答を生成し、デバイス800は、その応答を外部デバイス900(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。このようにして、Raeは、彼女の第2のDA904がスペイン語で動作するように構成されているにもかかわらず、彼女が英語で発話するフォローアップ要求に対する意図された応答を受信することができる。
【0262】
以下の図10A図10Dは、フォローアップ要求を正常に発行するために、参加者が、現在呼び出されているDAが動作するように構成された言語でフォローアップ要求を発行する例を示す。
【0263】
図10Aでは、デバイス800が外部デバイス900(及び任意選択的に他の外部デバイス(単数又は複数))との通信セッションに関与している間に、デバイス800は、第1のDA804を呼び出すための入力を受信する。例えば、Timは、口頭のトリガ入力「Hey Siri」を提供する。以下の図10A、10B、及び10Dでは、Timは、現在の呼び出し元であり、外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数))が、通信セッション中に、それらのそれぞれのDAを呼び出すための入力を受信していないことを意味する。
【0264】
デバイス800は更に、Timから、第1の言語による第1の自然言語入力を受信する。例えば、Timが「Hey Siri」と話した後、Timは「今何時ですか?」と発話する。デバイス800は、第1の自然言語入力を外部デバイス900(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。
【0265】
第1のDA804を呼び出したことに従って、第1のDA804は、第1の自然言語発話入力に対する第1の言語による第1の応答を生成する。例えば、第1のDA804は、第1の応答「クパチーノは午前9時です」を生成する。デバイス800は、第1の応答を出力する。デバイス800は更に、第1の応答を外部デバイス900(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。
【0266】
図10Bを参照すると、一部の実施例では、参加者が通信セッションにおいてDAとの対話を継続することを意図する場合、参加者は、現在の呼び出し元のDAの言語で第2の自然言語入力(フォローアップ要求)を発行する。例えば、デバイス800が第1の応答「クパチーノは午前9時です」を伝送し、外部デバイス900が第1の応答を出力した後、外部デバイス900は、第1の言語のフォローアップ要求を受信する。図9Bでは、Raeは英語で「パリはどうですか?」と尋ねる。デバイス800(及び通信セッション内の任意の他のデバイス(単数又は複数))は、外部デバイス900からフォローアップ要求を受信する。一部の実施例では、デバイス800は、フォローアップ要求を更に出力する。
【0267】
一部の実施例では、フォローアップ要求は、伝送された第1の応答を受信した後に第2のDA904を呼び出すための入力を外部デバイス900が受信することなく、受信される。例えば、Raeは、口頭のトリガ入力(例えば、「Hola Siri」)を提供することなく、且つ外部デバイス900のボタンを押下することなく、「パリはどうですか?」と発話する。一部の実施例では、フォローアップ要求は、(例えば、以前に要求されたタスクに関する)ユーザ入力のためのDA生成プロンプトへの応答を含まない。
【0268】
デバイス800が第1の応答(例えば、「クパチーノは午前9時です」)を出力したことに応じて、第1のDA804は、Timから受信された任意のフォローアップ要求が、現在呼び出されている第1のDA804を対象としているかどうかを判定する。第1の応答を出力するデバイス800に応じて、第2のDA904(及び通信セッション内の任意の他のDA(単数又は複数))は、DAの個別のユーザから受信された任意のフォローアップ要求が、現在呼び出されている第1のDA804を対象としているかどうかを判定する。これは、各DAが、個別のユーザから受信されたフォローアップ要求がそれ自体を対象としているかどうかを判定する、図9A図9Eに関して説明した例とは対照的である。したがって、現在呼び出されている第1のDA804は、フォローアップ要求に応答することが可能な通信セッション内の唯一のDAであってもよい。
【0269】
一部の実施例では、フォローアップ要求が第1のDA804を対象としていると判定することは、個別のデバイスが第1の応答を出力した後の所定の持続期間内にフォローアップ要求が受信されたと判定することを含む。例えば、第2のDA904は、外部デバイス900が「クパチーノで午前9時」を出力した後の所定の持続期間内にフォローアップ要求が受信されるため、Raeのフォローアップ要求「パリはどうですか?」が第1のDA804を対象としていると判定する。
【0270】
一部の実施例では、フォローアップ要求が第1のDA804を対象としていると判定することは、ユーザの視線方向に基づく。例えば、デバイスは、(デバイスカメラ(単数又は複数)を介して)ユーザ視線データを検出し、デバイスのユーザから受信されたフォローアップ要求が第1のDA804を対象としているかどうかを判定するために視線データを分析する。一部の実施例では、デバイスは、第1の応答が、例えば、デバイス800によって出力された後、所定の持続期間内にユーザ視線データを検出する。一部の実施例では、デバイスは、ユーザ視線が、フォローアップ要求の開始時間前の所定の持続期間内に(例えば、所定の期間にわたってDAインジケータ812において)表示された視線ターゲットに向けられている場合、ユーザ視線が、開始時間に視線ターゲットに向けられている場合、及び/又はユーザ視線が、フォローアップ要求の終了時間に視線ターゲットに向けられている場合、フォローアップ要求が第1のDA804を対象としていると判定する。例えば、第2のDA904は、DAインジケータ812におけるRaeの視線を検出したことに基づいて、Raeのフォローアップ要求「パリはどうですか?」が第1のDA804を対象としていると判定する。
【0271】
一部の実施例では、(第1のDA804以外の)DAが、個別のユーザから受信されたフォローアップ要求が第1のDA804を対象としていると判定したことに応じて、個別のデバイスは、デバイス800に、フォローアップ要求が第1のDA804を対象としているという指示を伝送する。例えば、外部デバイス900は、デバイス800に、フォローアップ要求「パリはどうですか?」が第1のDA804を対象としているという指示を伝送する。第1のDA804が、その個別のユーザ(例えば、Tim)から受信されたフォローアップ要求がそれ自体を対象としていると判定した場合、第1のDA804は、フォロー要求に対する第2の応答を生成する。
【0272】
図10Bでは、第1のDA804は、外部デバイス900からフォローアップ要求を受信したことに従って、フォローアップ要求に対する第2の応答を第1の言語で生成する。一部の実施例では、第1のDA804は、デバイス800が、フォローアップ要求が第1のDA804を対象としているという指示を受信することに更に従って、第2の応答を生成する。一部の実施例では、第1のDA804は、デバイス800が第1の応答を出力した後に第1のDA804を呼び出すための更なる入力を受信することなく、且つ/又は外部デバイス900が第1の応答を出力した後に第2のDA904を呼び出すための入力を受信することなく、第2の応答を生成する。例えば、デバイス800が、外部デバイス900から、フォローアップ要求「パリはどうですか?」が第1のDA804を対象としているという指示を受信したことに従って、第1のDA804は、第2の応答「パリでは午後6時です」を生成する。一部の実施例では、デバイス800は、第2の応答を外部デバイス900に(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。
【0273】
一部の実施例では、第1のDA804は、第1の自然言語入力及び第1の応答に関連付けられたコンテキスト情報(例えば、会話コンテキスト情報)に基づいて第2の応答を生成する。例えば、第1の自然言語入力「今何時ですか?」及び第1の応答「クパチーノは午前9時です」は、時間領域を示すコンテキスト情報に関連付けられる。したがって、第1のDA804は、「パリはどうですか?」を解釈してパリの時間を参照することによって、第2の応答「パリでは午後6時です」を生成する。
【0274】
一部の実施例では、第1のDA804は、受信されたフォローアップ要求がパーソナル要求に対応するかどうかを判定する。パーソナル要求は、概して、要求を提供した特定のユーザに依存する応答を有するユーザ要求を記述する。例えば、パーソナル要求は、個人ドメイン、例えば、個人データの検索/修正を必要とする実施可能な意図に関連付けられたドメインに対応する。例示的な個人データは、ユーザの連絡先データ、電子メールデータ、メッセージデータ、カレンダーデータ、リマインダデータ、写真、ビデオ、健康情報、金融情報、ウェブ検索履歴、メディアデータ(例えば、歌及びオーディオブック)、ユーザの自宅に関する情報(例えば、ユーザの家庭用電化製品及びホームセキュリティシステムの状態、ホームセキュリティシステムアクセス情報)、並びにユーザが他のユーザ又はデバイスに公開することを望まない場合がある任意の他の機密情報及び/又はプライベート情報を含む。例示的なパーソナル要求は、「母親に電話する」(ユーザは異なる母親を有することができるので)、「今日、どのくらいのカロリーを燃焼しましたか?」、「今月どのくらい費やしましたか?」、「私が撮影した最後の写真を私に見せる」、「ポーチのライトをオフにする」、「前のドアをロックする」などを含む。対照的に、非パーソナル要求は、非パーソナル要求を提供したユーザとは無関係の応答を有する場合がある。非パーソナル要求の例には、「テイラー・スウィフトの年齢は?」、「パロ・アルトの天気は?」、及び「パトリタス・ゲームの得点は?」が含まれる。一部の実施例では、第1のDA804は、要求がパーソナルドメインに対応するかどうかを判定することによって、要求がパーソナル要求に対応するかどうかを判定する。要求がパーソナル要求に対応するかどうかを判定するための更なる技術は、2021年7月15日に出願された「PERSONAL REQUEST CLASSIFIER」と題する米国特許出願第17/376,991号に記載されており、その内容は、参照によりその全体が本明細書に組み込まれる。
【0275】
一部の実施例では、外部デバイスから受信されたフォローアップ要求がパーソナル要求に対応するという判定に従って、第1のDA804は、フォローアップ要求に対する第1の言語による第2の応答を生成する。第2の応答は、第1のDA804がフォローアップ要求に含まれるユーザ要求を満たすことができないことを示す。一部の実施例では、第1のDA804は、デバイス800が第1の応答を出力した後に第1のDA804を呼び出すための更なる入力を受信することなく、且つ/又は外部デバイス900が第1の応答を出力した後に第2のDA904を呼び出すための入力を受信することなく、第2の応答を生成する。例えば、Raeが代わりに、図10Bの「パリはどうですか?」の代わりにフォローアップ要求「私のメッセージを読み上げて」を提供すると仮定する。第1のDA804は、フォローアップ要求がパーソナル要求に対応すると判定し、したがって、第2の応答「申し訳ありませんが、それはできません。」を生成する。デバイス800上で動作している第1のDA804は、外部デバイス900上に記憶されたRaeの個人データ(例えばメッセージ)にアクセスすることができないため、第1のDA804は第2の応答を生成する。デバイス800は更に、第2の応答を外部デバイス900(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。
【0276】
このようにして、第1のDA804は、例えば、第1のDA804が、ユーザプライバシーの理由で、外部デバイス上に記憶された個人データにアクセスすることができないため、第1のDA804が外部デバイスからのパーソナル要求を満たすことができないというフィードバックを通信セッションの参加者に提供する。したがって、一部の実施例では、図10Bの第2の応答「パリでは午後6時です」を生成することは、第1のDA804が、フォローアップ要求「パリはどうですか?」がパーソナル要求に対応しないと判定したことに従って実施される。
【0277】
図10Cは、Raeが入力を提供して第2のDA904を呼び出し、パーソナル要求を正常に処理する例を示す。図10Cにおいて、Raeは、第2のDA904を呼び出すための入力を提供する。例えば、外部デバイス900は、口頭のトリガ入力「Hola Siri」を受信する。Raeは更に、第2の言語で、パーソナル要求に対応する自然言語入力を提供する。例えば、外部デバイス900は、Raeからスペイン語の「lee mis mensajes」(「私のメッセージを読み上げて」)を受信する。外部デバイス900は、自然言語入力をデバイス800に(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。
【0278】
第2のDA904を呼び出したことに従って、第2のDA904は、第2の言語で自然言語入力に対する応答を生成する。この応答は、第2のDA904が自然言語入力に対応するタスクを開始することを示す。例えば、第2のDA904は、第2のDA904がRaeのメッセージを読むタスクを開始することを示す応答「Anthony dijo’hola’」(「Anthonyは「こんにちは」と言う」)を生成する。外部デバイス900は更に、応答をデバイス800(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。このようにして、Raeは、第2のDA904を呼び出すための入力を提供することによって、通信セッションにおいてパーソナル要求を正常に発行することができる。第2のDA904を呼び出すことによって、DA呼び出しは、図10Aのデバイス800から図10Cの外部デバイス900に転送され、これは、Raeが現在のDA呼び出し元であり、第2のDA904がRaeの個人データにアクセスしてRaeのパーソナル要求を正常に処理することができることを意味する(第1のDA804はTimの個人データにしかアクセスできないため、第1のDA804はTimのパーソナル要求しか処理できないことを想起されたい)。
【0279】
図10Dは、Raeが第2のDA904の第2の言語でフォローアップ要求を提供しようと試みる例を示す。図10Dでは、図10Aの例を続けると、デバイス800が第1の応答「クパチーノは午前9時です」を外部デバイス900に伝送した後に、及び外部デバイス900が第1の応答を出力した後、外部デバイス900は、第2の言語のフォローアップ要求を受信する。例えば、Raeはスペイン語で
【表28】
と発話する。外部デバイス900は、フォローアップ要求をデバイス800(及び通信セッション内の任意の他のデバイス(単数又は複数)に)伝送する。フォローアップ要求は、外部デバイス900が、伝送された第1の応答を受信した後に、第2のDA904を呼び出すための入力を受信することなく、外部デバイス900において受信される。一部の実施例では、フォローアップ要求は、更なるユーザ入力のためのDA生成プロンプトへの応答を含まない。
【0280】
図10Dにおいて、第2のDA904は、フォローアップ要求が第1のDA804を対象としていると判定する。フォローアップ要求を受信したことに従って(及び任意選択で、フォローアップ要求が第1のDA804を対象としているという判定に従って)、第1のDA804は、フォローアップ要求に対する第1の言語による第2の応答を生成する。第2の応答は、第1のDA804がフォローアップ要求を解釈することができないことを示す。一部の実施例では、第1のDA804は、デバイス800が第1の応答を出力した後に第1のDA804を呼び出すための更なる入力を受信することなく、且つ/又は外部デバイス900が第1の応答を出力した後に第2のDA904を呼び出すための入力を受信することなく、第2の応答を生成する。例えば、第1のDA804は、スペイン語のフォローアップ要求
【表29】
を解釈することができず、したがって、第2の応答「申し訳ありません、理解できません」を生成する。デバイス800は更に、第2の応答を外部デバイス900(及び通信セッション中の任意の他のデバイス(単数又は複数)に)伝送する。このようにして、第1のDA804は、(例えば、英語の第2の応答を介して)第1のDA804と対話するための正しい言語を示すことができ、それによって、正確で効率的なDA対話を促進する。Raeがスペイン語のDAとの対話に成功することを望む場合、Raeは、例えば図10Cに関して説明したように、第2のDA904を呼び出すために外部デバイス900において入力を提供することができる。例えば、Raeが外部デバイス900に対して「
【表30】
」と発話する場合、DA呼び出しはデバイス800から外部デバイス900に転送され、Raeは現在の呼び出し元である。したがって、第2のDA904は、応答「en Paris,son las 6pm」を生成して、Raeの要求を正常に処理することができる。
5. 通信セッションにおけるデジタルアシスタント対話のためのプロセス
【0281】
図11A図11Cは、様々な実施例による、通信セッションにおけるDA対話のためのプロセス1100を示す。プロセス1100は、例えば、DAを実装する1つ以上の電子デバイスを使用して実施される。一部の実施例では、プロセス1100は、クライアントサーバシステム(例えば、システム100)を使用して実行され、プロセス1100のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイスとの間で任意の形で分割される。他の実施例では、プロセス1100のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で分割される。したがって、プロセス1100の一部は、クライアント-サーバシステムの特定のデバイスによって実行されるように本明細書では説明されているが、プロセス1100は、そのように限定されないことが理解されよう。他の例では、プロセス1100は、クライアントデバイス(例えば、デバイス800)のみ又は複数のクライアントデバイスのみを使用して実施される。プロセス1100では、いくつかのブロックが任意選択的に組み合わせられ、いくつかのブロックの順序が任意選択的に変更され、いくつかのブロックが任意選択的に省略される。一部の実施例では、プロセス1100と組み合わせて追加のステップが実行されることができる。
【0282】
ブロック1102において、電子デバイス(例えば、デバイス800)が1つ以上の外部デバイス(例えば、外部デバイス900)との通信セッションに関与している間に、電子デバイス(例えば、第1のDA804)上で動作している第1のデジタルアシスタントを呼び出すための入力が、電子デバイスの第1のユーザ(例えば、Tim)から受信される。一部の実施例では、第1のデジタルアシスタントを呼び出すための入力は、口頭のトリガ入力又は電子デバイスのボタンの選択を含む。
【0283】
ブロック1104において、タスクに対応する自然言語入力(例えば、図8Bの「こんにちはとメッセージを送信する」)が第1のユーザから受信される。
【0284】
ブロック1106では、第1のデジタルアシスタントの呼び出しに従って、タスクに関する更なるユーザ入力のためのプロンプト(例えば、図8Bの「誰にメッセージを送信しますか?」)が第1のデジタルアシスタントによって生成される。
【0285】
ブロック1108において、タスクに関する更なるユーザ入力のためのプロンプトが、(例えば、デバイス800によって)1つ以上の外部デバイスに伝送される。
【0286】
ブロック1110において、更なるユーザ入力のためのプロンプトを伝送した後に、更なるユーザ入力のためのプロンプトに対する応答(例えば、図8Cの「Qingwei」)が、1つ以上の外部デバイスのうちの外部デバイス(例えば、外部デバイス900)から受信される。
【0287】
ブロック1112において、電子デバイスに記憶された第1のユーザに対応する応答及び情報に基づいて、第1のデジタルアシスタントによってタスクが開始される。一部の実施例では、ブロック1114に示すように、タスクを開始することは、電子デバイス上に、タスクに対応するアフォーダンス(例えば、図8Cのアフォーダンス814)を表示することを含み、第1のデジタルアシスタントは、第1のユーザに対応する情報に基づいてアフォーダンスを生成する。
【0288】
ブロック1116において、開始されたタスクを示す出力(例えば、図8Cにおける「Timの連絡先、Qingweiへのメッセージ「こんにちは」を送信しますか?」)が、(例えば、オーディオ制御モジュール806を使用して)1つ以上の外部デバイスに伝送される。
【0289】
一部の実施例では、ブロック1118において、1つ以上の外部デバイスは、(例えば、表示制御モジュール808を使用して)アフォーダンスをそれぞれ表示させられる。一部の実施例では、1つ以上の外部デバイスにアフォーダンスをそれぞれ表示させることは、タスクが第2の所定のタイプのタスク(例えば、セキュアタスク)に対応しないという判定に従って実施される。一部の実施例では、電子デバイス上にアフォーダンスを表示することは、タスクが第2の所定のタイプのタスクに対応するという判定に従って、1つ以上の外部デバイスにアフォーダンスをそれぞれ表示させることなく、アフォーダンスを表示することを含む。
【0290】
一部の実施例では、ブロック1120において、表示されたアフォーダンスの選択に対応する第1のユーザ入力が受信される。一部の実施例では、ブロック1122において、第1のユーザ入力を受信したことに応じて、アフォーダンスが修正状態で表示される(例えば、図8Dのアフォーダンス814)。一部の実施例では、ブロック1124において、1つ以上の外部デバイスに、修正状態のアフォーダンスをそれぞれ表示させる。
【0291】
一部の実施例では、ブロック1126において、アフォーダンスを第2の修正状態で表示するための命令が、1つ以上の外部デバイスのうちの第3の外部デバイスから受信され、アフォーダンスは、第3の外部デバイスにおいて、アフォーダンスの選択に対応する第2のユーザ入力を受信したことに応じて、第3の外部デバイス上に第2の修正状態で表示される。一部の実施例では、ブロック1128において、命令を受信したことに応じて、アフォーダンスは、(例えば、表示制御モジュール808を使用して)第2の修正状態で電子デバイス上に表示される。
【0292】
一部の実施例では、ブロック1130において、タスクが所定のタイプのタスクに対応するかどうかが(例えば、第1のDA804によって)決定される。一部の実施例では、ブロック1132において、タスクが所定のタイプのタスクに対応するという判定に従って、且つ外部デバイスから応答を受信したことに従って、第1のデジタルアシスタントがタスクを完了することができないことを示す第3の出力(例えば、図8Hの「申し訳ありませんが、それはできません。Tim、確認しますか?」)が第1のデジタルアシスタントによって生成される。一部の実施例では、タスクを開始することは、タスクが所定のタイプのタスクに対応しないという判定に従って実施される。
【0293】
一部の実施例では、ブロック1134において、更なるユーザ入力のためのプロンプトに対する第3の応答が、第1のユーザから受信される(例えば、図8HのTimからの「はい」)。一部の実施例では、ブロック1136において、タスクが所定のタイプのタスクに対応するという判定に従って、且つ第3の応答が第1のユーザから受信されたという判定に従って、第3の応答及び第1のユーザに対応する情報に基づいて、第1のデジタルアシスタントによってタスクが開始される。一部の実施例では、ブロック1138において、開始されたタスクを示す第4の出力(例えば、図8Hの「OK、Larryに100ドルを支払いました」)が、1つ以上の外部デバイスに伝送される。
【0294】
一部の実施例では、自然言語入力は第1の言語であり、第1のデジタルアシスタントは第1の言語において動作するように構成されている。一部の実施例では、ブロック1140において、第1のデジタルアシスタントが第1の言語において応答を解釈できるかどうかが(例えば、第1のDA804によって)判定され、タスクを開始することは、第1のデジタルアシスタントが第1の言語において応答を解釈できるという判定に従って実施される。一部の実施例では、ブロック1142において、第1のデジタルアシスタントが第1の言語において応答を解釈することができないという判定に従って、エラーを示す第5の出力が1つ以上の外部デバイスに伝送される。一部の実施例では、外部デバイス上で動作する第3のデジタルアシスタント(例えば、第2のDA904)は、第1の言語とは異なる第2の言語で動作するように構成されている。
【0295】
一部の実施例では、開始されたタスクを示す出力を1つ以上の外部デバイスに伝送した後に、第2のタスク(例えば、図8Eの「一起看哈利波特」)に対応する第2の自然言語入力が、1つ以上の外部デバイスのうちの第2の外部デバイスから受信され、第2の外部デバイスは、第2の外部デバイスの第2のユーザから第2の自然言語入力を受信する。一部の実施例では、第2の自然言語入力を受信した後に、第2のタスクに関するユーザ入力のための第2のプロンプト(例えば、図8E
)が第2の外部デバイスから受信され、第2のプロンプトは、第2の外部デバイス上で動作する第2のデジタルアシスタント(例えば、第2のDA904)によって生成される。一部の実施例では、ユーザ入力のための第2のプロンプトに対する第2の応答(例えば、図8Fの「哈利・波特与魔法石」)が、第1のユーザから受信される。一部の実施例では、第2の応答は、1つ以上の外部デバイスに伝送される。一部の実施例では、第2の出力(例えば、図8F
)が第2の外部デバイスから受信され、第2のデジタルアシスタントは、第2の応答及び第2の外部デバイスに記憶された第2のユーザに対応する情報に基づいて第2のタスクを開始し、第2の出力は、開始された第2のタスクを示す。一部の実施例では、第2のプロンプトは、第2の外部デバイスが第2のユーザから第2のデジタルアシスタントを呼び出すための第2の入力を受信したことに従って受信される。
【0296】
図11A図11Cを参照して上述された動作は、図1図4図6A図6B図7A図7C、及び図8Aに示される構成要素によって任意選択的に実装される。例えば、プロセス1100の動作は、デバイス800及び/又は900によって実装され得る。図1図4図6A図6B、及び図7A図7Cに示される構成要素に基づいて、どのように他のプロセスが実装されるかは、当業者にとって明らかであろう。
【0297】
図12A図12Bは、様々な実施例による、通信セッションにおけるDA対話のためのプロセス1200を示す。プロセス1200は、例えば、DAを実装する1つ以上の電子デバイスを使用して実施される。一部の実施例では、プロセス1200は、クライアントサーバシステム(例えば、システム100)を使用して実行され、プロセス1200のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイスとの間で任意の形で分割される。他の実施例では、プロセス1200のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で分割される。したがって、プロセス1200の一部は、クライアント-サーバシステムの特定のデバイスによって実行されるように本明細書では説明されているが、プロセス1200は、そのように限定されないことが理解されよう。他の例では、プロセス1200は、クライアントデバイス(例えば、デバイス800)のみ又は複数のクライアントデバイスのみを使用して実施される。プロセス1200では、一部のブロックが任意選択的に組み合わされ、一部のブロックの順序が任意選択的に変更され、一部のブロックが任意選択的に省略される。一部の実施例では、追加のステップがプロセス1200と組み合わせて実施され得る。
【0298】
ブロック1202において、電子デバイス(例えば、デバイス800)が1つ以上の外部デバイス(例えば、外部デバイス900)との通信セッションに関与している間に、電子デバイス(例えば、第1のDA804)上で動作している第1のデジタルアシスタントを呼び出すための入力が、電子デバイスの第1のユーザから受信される。第1のデジタルアシスタントは、第1の言語で動作するように構成されている。
【0299】
ブロック1204において、第1の言語による第1の自然言語入力(例えば、図9Aの「今何時ですか?」)が、第1のユーザから受信される。
【0300】
ブロック1206において、第1のデジタルアシスタントの呼び出しに従って、第1の自然言語入力に対する第1の言語による第1の応答(例えば、図9Aの「クパチーノは午前9時です」)が第1のデジタルアシスタントによって生成される。
【0301】
ブロック1208において、第1の応答は、1つ以上の外部デバイスに(例えば、オーディオ制御モジュール806を使用して)伝送される。
【0302】
一部の実施例では、ブロック1210において、第1の自然言語入力に関連付けられたコンテキスト情報が外部デバイスに伝送される。
【0303】
ブロック1212において、第1の応答を伝送した後に、第2の言語による第2の自然言語入力(例えば、図9B
【表31】
)が、1つ以上の外部デバイスのうちの外部デバイスから受信される。第2の自然言語入力は、伝送された第1の応答を受信した後に、外部デバイス上で動作している第2のデジタルアシスタント(例えば、第2のDA904)を呼び出すための第2の入力を外部デバイスが受信することなく、受信される。第2のデジタルアシスタントは、第2の言語で動作するように構成されている。一部の実施例では、第2の自然言語入力は、第1のデジタルアシスタント又は第2のデジタルアシスタントによって生成されたユーザ入力のためのプロンプトへの応答を含まない。一部の実施例では、第1のデジタルアシスタントを呼び出すための入力は、口頭のトリガ入力又は電子デバイスのボタンの選択を含み、第2のデジタルアシスタントを呼び出すための第2の入力は、口頭のトリガ入力又は外部デバイスのボタンの選択を含む。
【0304】
ブロック1214で、第2の自然言語入力に対する第2の言語による第2の応答(例えば、図9Bの「en Paris,son las 6pm」)が外部デバイスから受信され、第2の応答は、第2のデジタルアシスタントによって生成される。一部の実施例では、第2のデジタルアシスタントは、コンテキスト情報に基づいて第2の応答を生成する。一部の実施例では、外部デバイスは、外部デバイスの第3のユーザの視線方向に基づいて、第2の自然言語入力が第2のデジタルアシスタントを対象としていると判定する。一部の実施例では、第2の自然言語入力が第2のデジタルアシスタントを対象としているという判定に従って、第2のデジタルアシスタントが第2の応答を生成する。一部の実施例では、第2のデジタルアシスタントは、外部デバイスの第2のユーザに対応する情報に基づいて第2の応答を生成し、情報は外部デバイス上に記憶される。
【0305】
一部の実施例では、ブロック1216において、第1の応答を伝送した後に、第1の言語による第3の自然言語入力(例えば、図9Eの「パリはどうですか?」)が外部デバイスから受信される。第3の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、第2のデジタルアシスタントを呼び出すための第3の入力を受信することなく、受信される。一部の実施例では、ブロック1218において、第3の自然言語入力に対する第2の言語による第3の応答(例えば、図9Eの「no entiendo」)が外部デバイスから受信される。第3の応答は、第2のデジタルアシスタントによって生成され、第2のデジタルアシスタントが第3の自然言語入力を解釈することができないことを示す。
【0306】
一部の実施例では、ブロック1220において、第1の応答を伝送した後に、第2の言語による第4の自然言語入力(例えば、図9F
【表32】
)が外部デバイスから受信される。一部の実施例では、ブロック1222において、第4の自然言語入力に対する第2の言語による第4の応答(例えば、図9Fの「en Paris,son las 6pm」)が外部デバイスから受信される。第4の応答は、第2のデジタルアシスタントによって生成される。第4の応答は、外部デバイスが第2のデジタルアシスタント(例えば、図9Fの「Hola Siri」)を呼び出すための第4の入力を受信したことに従って受信される。第4の応答は、第2のデジタルアシスタントが第4の自然言語入力に対応するタスクを開始したことを示す。
【0307】
一部の実施例では、ブロック1224において、第1の応答を伝送した後に、第1の言語による第5の自然言語入力(例えば、図9Cの「パリはどうですか?」)が第1のユーザから受信される。第5の自然言語入力は、電子デバイスが、第1の応答を伝送した後に、第1のデジタルアシスタントを呼び出すための第5の入力を受信することなく、受信される。一部の実施例では、ブロック1126で、第5の自然言語入力を受信したことに従って、第5の自然言語入力に対する第1の言語による第5の応答(例えば、図9Cの「パリでは午後6時です」)が、第1のデジタルアシスタントによって生成される。第5の応答は、第5の自然言語入力に対応する開始されたタスクを示す。一部の実施例では、ブロック1228において、第5の応答は、(例えば、オーディオ制御モジュール806を使用して)1つ以上の外部デバイスに伝送される。
【0308】
一部の実施例では、ブロック1230において、第1の応答を伝送した後に、第1の言語とは異なる第3の言語による第6の自然言語入力(例えば、図9D
【表33】
)が第1のユーザから受信される。第6の自然言語入力は、電子デバイスが、第1の応答を伝送した後に、第1のデジタルアシスタントを呼び出すための第6の入力を受信することなく、受信される。一部の実施例では、ブロック1232において、第6の自然言語入力を受信したことに従って、第6の自然言語入力に対する第1の言語による第6の応答(例えば、図9Dの「申し訳ありません、理解できません」)が、第1のデジタルアシスタントによって生成される。第6の応答は、第1のデジタルアシスタントが第6の自然言語入力を解釈することができないことを示す。一部の実施例では、ブロック1234において、第6の応答が、(例えば、オーディオ制御モジュール806を使用して)1つ以上の外部デバイスに伝送される。
【0309】
図12A図12Bを参照して上述した動作は、図1図4図6A図6B図7A図7C、及び図8Aに示す構成要素によって、任意選択的に実装される。例えば、プロセス1200の動作は、デバイス800及び/又は900によって実装され得る。図1図4図6A図6B、及び図7A図7Cに示される構成要素に基づいて、どのように他のプロセスが実装されるかは、当業者にとって明らかであろう。
【0310】
図13A図13Bは、様々な実施例による、通信セッションにおけるDA対話のためのプロセス1300を示す。プロセス1300は、例えば、DAを実装する1つ以上の電子デバイスを使用して実施される。一部の実施例では、プロセス1300は、クライアントサーバシステム(例えば、システム100)を使用して実行され、プロセス1300のブロックは、サーバ(例えば、DAサーバ106)とクライアントデバイスとの間で任意の形で分割される。他の実施例では、プロセス1300のブロックは、サーバと複数のクライアントデバイス(例えば、携帯電話及びスマートウォッチ)との間で分割される。したがって、プロセス1300の一部は、クライアント-サーバシステムの特定のデバイスによって実行されるように本明細書では説明されているが、プロセス1300は、そのように限定されないことが理解されよう。他の例では、プロセス1300は、クライアントデバイス(例えば、デバイス800)のみ又は複数のクライアントデバイスのみを使用して実施される。プロセス1300では、一部のブロックが任意選択的に組み合わされ、一部のブロックの順序が任意選択的に変更され、一部のブロックが任意選択的に省略される。一部の実施例では、追加のステップがプロセス1300と組み合わせて実施され得る。
【0311】
ブロック1302において、電子デバイス(例えば、デバイス800)が1つ以上の外部デバイス(例えば、外部デバイス900)との通信セッションに関与している間に、電子デバイス上で動作する第1のデジタルアシスタント(例えば、第1のDA804)を呼び出すための入力が、電子デバイスの第1のユーザから受信される。第1のデジタルアシスタントは、第1の言語で動作するように構成されている。
【0312】
ブロック1304において、第1の言語による第1の自然言語入力(例えば、図10Aの「今何時ですか?」)が第1のユーザから受信される。
【0313】
ブロック1306において、第1のデジタルアシスタントの呼び出しに従って第1の自然言語入力に対する第1言語による第1の応答(例えば、「クパチーノは午前9時です」)が第1のデジタルアシスタントによって生成される。
【0314】
ブロック1308において、第1の応答は、1つ以上の外部デバイスに(例えば、オーディオ制御モジュール806を使用して)伝送される。
【0315】
ブロック1310において、第1の応答を伝送した後に、第1の言語による第2の自然言語入力(例えば、図10Bの「パリはどうですか?」)が、1つ以上の外部デバイスのうちの外部デバイス(例えば、外部デバイス900)から受信される。第2の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、外部デバイス(例えば、第2のDA904)上で動作している第2のデジタルアシスタントを呼び出すための第2の入力を受信することなく、受信される。第2のデジタルアシスタントは、第2の言語で動作するように構成されている。一部の実施例では、第2の自然言語入力は、第1のデジタルアシスタント又は第2のデジタルアシスタントによって生成されたユーザ入力のためのプロンプトへの応答を含まない。一部の実施例では、第1のデジタルアシスタントを呼び出すための入力は、口頭のトリガ入力又は電子デバイスのボタンの選択を含み、第2のデジタルアシスタントを呼び出すための第2の入力は、口頭のトリガ入力又は外部デバイスのボタンの選択を含む。
【0316】
ブロック1312において、第2の自然言語入力に対する第1の言語による第2の応答(例えば、図10Bの「パリでは午後6時です」)が、第1のデジタルアシスタントによって生成される。一部の実施例では、第1のデジタルアシスタントは、第1の自然言語入力及び第1の応答に関連付けられたコンテキスト情報に基づいて、第2の応答を生成する。一部の実施例では、外部デバイスは、外部デバイスの第2のユーザの視線方向に基づいて、第2の自然言語入力が第1のデジタルアシスタントを対象としていると判定する。一部の実施例では、第1のデジタルアシスタントは、第2の自然言語入力が第1のデジタルアシスタントを対象としているという判定に従って、第2の応答を生成する。
【0317】
ブロック1314において、第2の応答が1つ以上の外部デバイスに(例えば、オーディオ制御モジュール806を使用して)伝送される。
【0318】
一部の実施例では、ブロック1316において、第2の言語による第3の自然言語入力(例えば、図10D
【表34】
)が外部デバイスから受信される。第3の自然言語入力は、外部デバイスが、伝送された第1の応答を受信した後に、第2のデジタルアシスタントを呼び出すための第3の入力を受信することなく、受信される。一部の実施例では、ブロック1318において、第3の自然言語入力を受信したことに従って、第3の自然言語入力に対する第1の言語による第3の応答(例えば、図10Dの「申し訳ありません、理解できません」)が第1のデジタルアシスタントによって生成される。第3の応答は、第1のデジタルアシスタントが第3の自然言語入力を解釈することができないことを示す。一部の実施例では、ブロック1320において、第3の応答が、(例えば、オーディオ制御モジュール806を使用して)1つ以上の外部デバイスに伝送される。
【0319】
一部の実施例では、ブロック1322において、第2の言語による第4の自然言語入力が外部デバイスから受信される。一部の実施例では、ブロック1324において、第4の自然言語入力に対する第2の言語による第4の応答が外部デバイスから受信される。第4の応答は、第2のデジタルアシスタントによって生成される。第4の応答は、外部デバイスが第2のデジタルアシスタントを呼び出すための第4の入力を受信したことに従って受信される。第4の応答は、第2のデジタルアシスタントが第4の自然言語入力に対応するタスクを開始することを示す。
【0320】
一部の実施例では、ブロック1326において、第2の自然言語入力がパーソナル要求に対応するかどうかが(例えば、第1のDA804によって)判定される。一部の実施例では、第2の応答を生成することは、第2の自然言語入力がパーソナル要求に対応しないという判定に従って実施される。一部の実施例では、ブロック1328において、第2の自然言語入力がパーソナル要求に対応するという判定に従って、第2の自然言語入力に対する第1の言語による第5の応答が、第1のデジタルアシスタントによって生成される。第5の応答は、第1のデジタルアシスタントが第2の自然言語入力に含まれるユーザ要求を満たすことができないことを示す。一部の実施例では、ブロック1330において、第5の応答は、(例えば、オーディオ制御モジュール806を使用して)1つ以上の外部デバイスに伝送される。
【0321】
一部の実施例では、ブロック1332において、第2の言語による第6の自然言語入力(例えば、図10Cの「less mis mensaje」)が外部デバイスから受信される。第6の自然言語入力は、パーソナル要求に対応する。一部の実施例では、ブロック1334において、第6の自然言語入力に対する第2の言語による第6の応答(例えば、図10Cの「Anthony dijo「hola」」)が外部デバイスから受信される。第6の応答は、第2のデジタルアシスタントによって生成される。第6の応答は、外部デバイスが第2のデジタルアシスタントを呼び出すための第6の入力を受信したことに従って受信される。第6の応答は、第2のデジタルアシスタントが第6の自然言語入力に対応するタスクを開始したことを示す。
【0322】
図13A図13Bを参照して上述した動作は、図1図4図6A図6B図7A図7C、及び図8Aに示す構成要素によって任意選択的に実装される。例えば、プロセス1300の動作は、デバイス800及び/又は900によって実装され得る。図1図4図6A図6B、及び図7A図7Cに示される構成要素に基づいて、どのように他のプロセスが実装されるかは、当業者にとって明らかであろう。
【0323】
一部の実装形態によれば、コンピュータ可読記憶媒体(例えば、非一時的コンピュータ可読記憶媒体)が提供され、このコンピュータ可読記憶媒体は、電子デバイスの1つ以上のプロセッサによって実行される1つ以上のプログラムを記憶し、それら1つ以上のプログラムは、本明細書で説明される方法又はプロセスのうちのいずれかを実行する命令を含む。
【0324】
一部の実装形態によれば、本明細書で説明される方法又はプロセスのうちのいずれかを実行する手段を備える、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
【0325】
一部の実装形態によれば、本明細書で説明される方法又はプロセスのうちのいずれかを実行するように構成された処理ユニットを備える、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
【0326】
一部の実装形態によれば、1つ以上のプロセッサと、その1つ以上のプロセッサによって実行するための1つ以上のプログラムを記憶しているメモリとを備え、それら1つ以上のプログラムが、本明細書で説明される方法又はプロセスのうちのいずれかを実行する命令を含む、電子デバイス(例えば、ポータブル電子デバイス)が提供される。
【0327】
上記は、説明を目的として、特定の実施形態を参照して記述されている。しかしながら、上記の例示的な論考は、網羅的であること、又は開示される厳密な形態に本発明を限定することを意図するものではない。上記の教示を考慮して、多くの修正及び変形が可能である。本技術の原理、及びそれらの実際の用途を最も良く説明するために、実施形態が選択及び記載されている。それにより、他の当業者は、意図された具体的な用途に適するような様々な修正を用いて、本技術及び様々な実施形態を最も良好に利用することが可能となる。
【0328】
添付図面を参照して、本開示及び例を十分に説明してきたが、様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるような、本開示及び例の範囲内に含まれるものとして理解されたい。
【0329】
上記で説明したように、本技術の一態様は、通信セッションにおいてDA応答を生成するために様々なソースから利用可能なデータを収集及び使用することである。本開示は、いくつかの場合には、この収集されたデータが、特定の人を一意に識別する個人情報データ、又は特定の人に連絡する若しくはその所在を突き止めるために使用できる個人情報データを含み得ることを考察する。そのような個人情報データとしては、人口統計データ、ロケーションベースのデータ、電話番号、電子メールアドレス、ツイッターID、自宅の住所、ユーザの健康若しくはフィットネスのレベルに関するデータ若しくは記録(例えば、バイタルサイン測定値、投薬情報、運動情報)、生年月日、又は任意の他の識別情報若しくは個人情報を挙げることができる。
【0330】
本開示は、本技術におけるそのような個人情報データの使用がユーザの利益になる使用であり得る点を認識するものである。例えば、個人情報データは、DAに対するユーザ要求を満たすために使用することができる。更に、ユーザに利益をもたらす個人情報データに関する他の使用も本開示によって意図されている。例えば、健康データ及びフィットネスデータは、ユーザの全般的なウェルネスについての洞察を提供するために使用することができ、又は、ウェルネスの目標を追求する技術を使用している個人への、積極的なフィードバックとして使用することもできる。
【0331】
本開示は、そのような個人情報データの収集、分析、開示、送信、記憶、又は他の使用に関与するエンティティが、確固たるプライバシーポリシー及び/又はプライバシー慣行を遵守するものとなることを想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための、業界又は政府の要件を満たしているか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し、一貫して使用するべきである。そのようなポリシーは、ユーザによって容易にアクセス可能とするべきであり、データの収集及び/又は使用が変更されるにつれて更新されるべきである。ユーザからの個人情報は、そのエンティティの合法的且つ正当な使用のために収集されるべきであり、それらの合法的使用を除いては、共有又は販売されるべきではない。更には、そのような収集/共有は、ユーザに告知して同意を得た後に実施されるべきである。その上、そのようなエンティティは、そのような個人情報データへのアクセスを保護及び安全化し、個人情報データへのアクセス権を有する他者が、それらのプライバシーポリシー及び手順を忠実に守ることを保証するための、あらゆる必要な措置を講じることを考慮するべきである。更に、そのようなエンティティは、広く受け入れられているプライバシーポリシー及び慣行に対する自身の遵守を証明するために、サードパーティによる評価を自らが受けることができる。更には、ポリシー及び慣行は、収集及び/又はアクセスされる具体的な個人情報データのタイプに適合されるべきであり、また、管轄権固有の考慮事項を含めた、適用可能な法令及び規格に適合されるべきである。例えば、アメリカ合衆国では、特定の健康データの収集又はそれへのアクセスは、医療保険の相互運用性と説明責任に関する法律(HIPAA)などの、連邦法及び/又は州法に準拠し得る。その一方で、他国における健康データは、他の規制及びポリシーの対象となり得るものであり、それに従って対処されるべきである。それゆえ、各国において、異なる個人データのタイプに関して異なるプライバシー慣行が保たれるべきである。
【0332】
前述のことがらにも関わらず、本開示はまた、個人情報データの使用又は個人情報データへのアクセスを、ユーザが選択的に阻止する実施形態も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び/又はソフトウェア要素が提供され得ることを意図している。例えば、通信セッションにおいてDA応答を提供する場合、本技術は、ユーザが、サービスの登録中又はその後の任意のときに、個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするように構成されていることができる。別の例では、ユーザは、(例えば、通信セッション中に)DAが個人情報データにアクセスすることを許可しないことを選択することができる。更に別の例では、ユーザは、DAが個人情報データにアクセスすることができる時間の長さを制限することを選択することができる。「オプトイン」及び「オプトアウト」のオプションを提供することに加えて、本開示は、個人情報のアクセス又は使用に関する通知を提供することを意図している。例えば、ユーザの個人情報データにアクセスすることとなるアプリのダウンロード時にユーザに通知され、その後、個人情報データがアプリによってアクセスされる直前に再びユーザに注意してもよい。
【0333】
更には、本開示の意図は、個人情報データを、非意図的若しくは許可のないアクセス又は使用の危険性を最小限に抑える方法で、管理及び処理するべきであるという点である。データの収集を制限し、データがもはや必要とされなくなると削除することにより、リスクを最小化することができる。加えて、特定の健康関連アプリケーションにおいて適用可能な場合、ユーザのプライバシーを保護するために、データの匿名化を使用することができる。匿名化は、必要に応じて、特定の識別子(例えば、生年月日など)を削除すること、記憶されたデータの量又は特異性を制御すること(例えば、ロケーションデータを、住所レベルではなく都市レベルで収集する)、データがどのように記憶されるかを制御すること(例えば、ユーザ間でデータを集約する)、及び/又は他の方法によって、容易にすることができる。
【0334】
それゆえ、本開示は、1つ以上の様々な開示された実施形態を実施するための、個人情報データの使用を広範に網羅するものであるが、本開示はまた、そのような個人情報データにアクセスすることを必要とせずに、それらの様々な実施形態を実施することも可能であることを想到する。すなわち、本技術の様々な実施形態は、そのような個人情報データの全て又は一部が欠如することにより、動作不可能にされるものではない。例えば、DAは、ユーザに関連付けられたデバイスによって要求されているコンテンツ、DAにとって利用可能な他の非個人情報、又は公的に利用可能な情報など、非個人情報データ又は最低限の量の個人情報に基づいてユーザ要求を満たすことができる。
図1
図2A
図2B
図3
図4
図5A
図5B
図6A
図6B
図7A
図7B
図7C
図8A
図8B
図8C
図8D
図8E
図8F
図8G
図8H
図9A
図9B
図9C
図9D
図9E
図9F
図10A
図10B
図10C
図10D
図11A
図11B
図11C
図12A
図12B
図13A
図13B
【手続補正書】
【提出日】2024-02-13
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
1つ以上のプロセッサ及びメモリを有する電子デバイスにおいて、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイスの第1のユーザから、前記電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信することと、
前記第1のユーザから、タスクに対応する自然言語入力を受信することと、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記タスクに関する更なるユーザ入力のためのプロンプトを生成することと、
前記タスクに関する更なるユーザ入力のための前記プロンプトを前記1つ以上の外部デバイスに伝送することと、
更なるユーザ入力のための前記プロンプトを伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のための前記プロンプトに対する応答を受信することと、
前記第1のデジタルアシスタントによって、前記応答及び前記電子デバイスに記憶された前記第1のユーザに対応する情報に基づいて、前記タスクを開始することと、
前記開始されたタスクを示す出力を前記1つ以上の外部デバイスに伝送することと、を含む、方法。
【請求項2】
前記電子デバイスにおいて、
前記開始されたタスクを示す前記出力を前記1つ以上の外部デバイスに伝送した後に、
前記1つ以上の外部デバイスのうちの第2の外部デバイスであって、前記第2の外部デバイスは、前記第2の外部デバイスの第2のユーザから第2の自然言語入力を受信する、第2の外部デバイスから、第2のタスクに対応する第2の自然言語入力を受信することと、
前記第2の自然言語入力を受信した後に、前記第2のタスクに関するユーザ入力のための第2のプロンプトであって、前記第2のプロンプトは、前記第2の外部デバイス上で動作する第2のデジタルアシスタントによって生成される、第2のプロンプトを、前記第2の外部デバイスから受信することと、
前記第1のユーザから、ユーザ入力のための前記第2のプロンプトに対する第2の応答を受信することと、
前記第2の応答を前記1つ以上の外部デバイスに伝送することと、
前記第2の外部デバイスから第2の出力を受信することと、を更に含む、方法であって、
前記第2のデジタルアシスタントは、前記第2の応答及び前記第2の外部デバイスに記憶された前記第2のユーザに対応する情報に基づいて、前記第2のタスクを開始し、
前記第2の出力は、前記開始された第2のタスクを示す、請求項1に記載の方法。
【請求項3】
前記第2のプロンプトは、前記第2の外部デバイスが前記第2のデジタルアシスタントを呼び出すための第2の入力を前記第2のユーザから受信したことに従って受信される、請求項2に記載の方法。
【請求項4】
前記タスクが所定のタイプのタスクに対応するかどうかを判定することと、
前記タスクが前記所定のタイプのタスクに対応するという判定に従って、
前記外部デバイスから前記応答を受信したことに従って、前記第1のデジタルアシスタントによって、前記第1のデジタルアシスタントが、前記タスクを完了することができないことを示す第3の出力を生成することと、を更に含む、方法であって、前記タスクを開始することは、前記タスクが前記所定のタイプのタスクに対応しないという判定に従って実行される、請求項1に記載の方法。
【請求項5】
前記第1のユーザから、更なるユーザ入力のための前記プロンプトに対する第3の応答を受信することと、
前記タスクが前記所定のタイプのタスクに対応するという判定に従って、且つ前記第3の応答が前記第1のユーザから受信されたという判定に従って、前記第1のデジタルアシスタントによって、前記第3の応答及び前記第1のユーザに対応する前記情報に基づいて、前記タスクを開始することと、
前記開始されたタスクを示す第4の出力を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項4に記載の方法。
【請求項6】
前記自然言語入力は、第1の言語であり、前記第1のデジタルアシスタントは、前記第1の言語において動作するように構成されており、前記方法は、
前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈できるかどうかを判定することであって、前記タスクを開始することは、前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈できるという判定に従って実行される、ことと、
前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈することができないという判定に従って、エラーを示す第5の出力を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項1に記載の方法。
【請求項7】
前記外部デバイス上で動作する第3のデジタルアシスタントは、前記第1の言語とは異なる第2の言語で動作するように構成されている、請求項6に記載の方法。
【請求項8】
前記タスクを開始することは、前記電子デバイス上に、前記タスクに対応するアフォーダンスを表示することを含み、前記第1のデジタルアシスタントは、前記第1のユーザに対応する前記情報に基づいて前記アフォーダンスを生成し、前記方法は、
前記1つ以上の外部デバイスに、前記アフォーダンスをそれぞれ表示させることを更に含む、請求項1に記載の方法。
【請求項9】
前記1つ以上の外部デバイスに前記アフォーダンスをそれぞれ表示させることは、前記タスクが第2の所定のタイプのタスクに対応しないという判定に従って実施され、
前記電子デバイス上に前記アフォーダンスを表示することは、
前記タスクが前記第2の所定のタイプのタスクに対応するという判定に従って、前記1つ以上の外部デバイスの前記アフォーダンスをそれぞれ表示させることなく、前記アフォーダンスを表示することを含む、請求項8に記載の方法。
【請求項10】
前記表示されたアフォーダンスの選択に対応する第1のユーザ入力を受信することと、
前記第1のユーザ入力を受信したことに応じて、前記アフォーダンスを修正状態で表示することと、
前記1つ以上の外部デバイスに、前記アフォーダンスを前記修正状態でそれぞれ表示させることと、を更に含む、請求項8に記載の方法。
【請求項11】
前記1つ以上の外部デバイスのうちの第3の外部デバイスから、前記アフォーダンスであって、前記アフォーダンスは、前記第3の外部デバイスにおいて、前記アフォーダンスの選択に対応する第2のユーザ入力を受信したことに応じて、前記第3の外部デバイス上に第2の修正状態で表示される、前記アフォーダンスを、第2の修正状態で表示するための命令を受信することと、
前記命令を受信したことに応じて、前記電子デバイス上に、前記アフォーダンスを前記第2の修正状態で表示することと、を更に含む、請求項8に記載の方法。
【請求項12】
前記第1のデジタルアシスタントを呼び出すための前記入力は、口頭のトリガ入力又は前記電子デバイスのボタンの選択を含む、請求項1に記載の方法。
【請求項13】
請求項1から12のいずれか一項に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項14】
請求項13に記載のコンピュータプログラムを記憶したメモリと、
前記メモリに記憶されたコンピュータプログラムを実行することができる一以上のプロセッサと、を備える電子デバイスであって、
前記電子デバイスは表示生成コンポーネント及び1つ又は2以上の入力デバイスとつう新するように構成される、
電子デバイス。
【請求項15】
電子デバイスであって、
請求項1から12のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【手続補正書】
【提出日】2024-02-26
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
方法であって、
1つ以上のプロセッサ及びメモリを有する電子デバイスにおいて、
前記電子デバイスが1つ以上の外部デバイスとの通信セッションに関与している間に、
前記電子デバイスの第1のユーザから、前記電子デバイス上で動作している第1のデジタルアシスタントを呼び出すための入力を受信することと、
前記第1のユーザから、タスクに対応する自然言語入力を受信することと、
前記第1のデジタルアシスタントを呼び出したことに従って、前記第1のデジタルアシスタントによって、前記タスクに関する更なるユーザ入力のためのプロンプトを生成することと、
前記タスクに関する更なるユーザ入力のための前記プロンプトを前記1つ以上の外部デバイスに伝送することと、
更なるユーザ入力のための前記プロンプトを伝送した後に、前記1つ以上の外部デバイスのうちの外部デバイスから、更なるユーザ入力のための前記プロンプトに対する応答を受信することと、
前記第1のデジタルアシスタントによって、前記応答及び前記電子デバイスに記憶された前記第1のユーザに対応する情報に基づいて、前記タスクを開始することと、
前記開始されたタスクを示す出力を前記1つ以上の外部デバイスに伝送することと、を含む、方法。
【請求項2】
前記電子デバイスにおいて、
前記開始されたタスクを示す前記出力を前記1つ以上の外部デバイスに伝送した後に、
前記1つ以上の外部デバイスのうちの第2の外部デバイスであって、前記第2の外部デバイスは、前記第2の外部デバイスの第2のユーザから第2の自然言語入力を受信する、第2の外部デバイスから、第2のタスクに対応する第2の自然言語入力を受信することと、
前記第2の自然言語入力を受信した後に、前記第2のタスクに関するユーザ入力のための第2のプロンプトであって、前記第2のプロンプトは、前記第2の外部デバイス上で動作する第2のデジタルアシスタントによって生成される、第2のプロンプトを、前記第2の外部デバイスから受信することと、
前記第1のユーザから、ユーザ入力のための前記第2のプロンプトに対する第2の応答を受信することと、
前記第2の応答を前記1つ以上の外部デバイスに伝送することと、
前記第2の外部デバイスから第2の出力を受信することと、を更に含む、方法であって、
前記第2のデジタルアシスタントは、前記第2の応答及び前記第2の外部デバイスに記憶された前記第2のユーザに対応する情報に基づいて、前記第2のタスクを開始し、
前記第2の出力は、前記開始された第2のタスクを示す、請求項1に記載の方法。
【請求項3】
前記第2のプロンプトは、前記第2の外部デバイスが前記第2のデジタルアシスタントを呼び出すための第2の入力を前記第2のユーザから受信したことに従って受信される、請求項2に記載の方法。
【請求項4】
前記タスクが所定のタイプのタスクに対応するかどうかを判定することと、
前記タスクが前記所定のタイプのタスクに対応するという判定に従って、
前記外部デバイスから前記応答を受信したことに従って、前記第1のデジタルアシスタントによって、前記第1のデジタルアシスタントが、前記タスクを完了することができないことを示す第3の出力を生成することと、を更に含む、方法であって、前記タスクを開始することは、前記タスクが前記所定のタイプのタスクに対応しないという判定に従って実行される、請求項1に記載の方法。
【請求項5】
前記第1のユーザから、更なるユーザ入力のための前記プロンプトに対する第3の応答を受信することと、
前記タスクが前記所定のタイプのタスクに対応するという判定に従って、且つ前記第3の応答が前記第1のユーザから受信されたという判定に従って、前記第1のデジタルアシスタントによって、前記第3の応答及び前記第1のユーザに対応する前記情報に基づいて、前記タスクを開始することと、
前記開始されたタスクを示す第4の出力を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項4に記載の方法。
【請求項6】
前記自然言語入力は、第1の言語であり、前記第1のデジタルアシスタントは、前記第1の言語において動作するように構成されており、前記方法は、
前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈できるかどうかを判定することであって、前記タスクを開始することは、前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈できるという判定に従って実行される、ことと、
前記第1のデジタルアシスタントが前記第1の言語において前記応答を解釈することができないという判定に従って、エラーを示す第5の出力を前記1つ以上の外部デバイスに伝送することと、を更に含む、請求項1に記載の方法。
【請求項7】
前記外部デバイス上で動作する第3のデジタルアシスタントは、前記第1の言語とは異なる第2の言語で動作するように構成されている、請求項6に記載の方法。
【請求項8】
前記タスクを開始することは、前記電子デバイス上に、前記タスクに対応するアフォーダンスを表示することを含み、前記第1のデジタルアシスタントは、前記第1のユーザに対応する前記情報に基づいて前記アフォーダンスを生成し、前記方法は、
前記1つ以上の外部デバイスに、前記アフォーダンスをそれぞれ表示させることを更に含む、請求項1に記載の方法。
【請求項9】
前記1つ以上の外部デバイスに前記アフォーダンスをそれぞれ表示させることは、前記タスクが第2の所定のタイプのタスクに対応しないという判定に従って実施され、
前記電子デバイス上に前記アフォーダンスを表示することは、
前記タスクが前記第2の所定のタイプのタスクに対応するという判定に従って、前記1つ以上の外部デバイスの前記アフォーダンスをそれぞれ表示させることなく、前記アフォーダンスを表示することを含む、請求項8に記載の方法。
【請求項10】
前記表示されたアフォーダンスの選択に対応する第1のユーザ入力を受信することと、
前記第1のユーザ入力を受信したことに応じて、前記アフォーダンスを修正状態で表示することと、
前記1つ以上の外部デバイスに、前記アフォーダンスを前記修正状態でそれぞれ表示させることと、を更に含む、請求項8に記載の方法。
【請求項11】
前記1つ以上の外部デバイスのうちの第3の外部デバイスから、前記アフォーダンスであって、前記アフォーダンスは、前記第3の外部デバイスにおいて、前記アフォーダンスの選択に対応する第2のユーザ入力を受信したことに応じて、前記第3の外部デバイス上に第2の修正状態で表示される、前記アフォーダンスを、第2の修正状態で表示するための命令を受信することと、
前記命令を受信したことに応じて、前記電子デバイス上に、前記アフォーダンスを前記第2の修正状態で表示することと、を更に含む、請求項8に記載の方法。
【請求項12】
前記第1のデジタルアシスタントを呼び出すための前記入力は、口頭のトリガ入力又は前記電子デバイスのボタンの選択を含む、請求項1に記載の方法。
【請求項13】
請求項1から12のいずれか一項に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項14】
請求項13に記載のコンピュータプログラムを記憶したメモリと、
前記メモリに記憶されたコンピュータプログラムを実行することができる一以上のプロセッサと、を備える電子デバイスであって、
前記電子デバイスは表示生成コンポーネント及び1つ又は2以上の入力デバイスと通信するように構成される、
電子デバイス。
【請求項15】
電子デバイスであって、
請求項1から12のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【国際調査報告】