(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023179504
(43)【公開日】2023-12-19
(54)【発明の名称】仮想アシスタントのアクティブ化
(51)【国際特許分類】
G06F 3/01 20060101AFI20231212BHJP
G06F 3/0484 20220101ALI20231212BHJP
G06F 3/16 20060101ALI20231212BHJP
【FI】
G06F3/01 510
G06F3/01 560
G06F3/0484
G06F3/16 650
【審査請求】有
【請求項の数】14
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023151465
(22)【出願日】2023-09-19
(62)【分割の表示】P 2020205151の分割
【原出願日】2016-03-08
(31)【優先権主張番号】14/841,449
(32)【優先日】2015-08-31
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/129,932
(32)【優先日】2015-03-08
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.WCDMA
(71)【出願人】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】ルメイ, ステファン, オー.
(72)【発明者】
【氏名】ニュウェンドープ, ブランドン, ジェイ.
(72)【発明者】
【氏名】ダスコラ, ジョナサン, アール.
(57)【要約】 (修正有)
【課題】インテリジェント自動アシスタントをトリガする効率的な方法を提供する。
【解決手段】電子デバイス600は、ディスプレイ604及びマイクロフォンを有し、電子デバイス600のディスプレイ604が第1の電力状態にある間に、電子デバイス600の移動を含むユーザ入力を受信すると、電子デバイス600のディスプレイ604を第1の電力状態から第2の電力状態に変更し、電子デバイス600のディスプレイ604が第1の電力状態から第2の電力状態に変更されたとの判定に従い、仮想アシスタントセッションをトリガする。
【選択図】
図6B
【特許請求の範囲】
【請求項1】
ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスにおいて、
前記ディスプレイがオンしている間に、前記入力デバイスを介して所定の条件を満たすユーザ入力を受信することと、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングすることと、
前記オーディオ入力が口頭トリガを含むかを判定することと、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガすることと、を含む、方法。
【請求項2】
前記所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの持ち上げ量に基づくものである、請求項1に記載の方法。
【請求項3】
前記所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの持ち上げの平滑度に基づくものである、請求項1及び2のいずれか一項に記載の方法。
【請求項4】
前記所定の条件は、前記電子デバイスの前記持ち上げに従う位置での滞留時間の最小期間を含む、請求項2及び3のいずれか一項に記載の方法。
【請求項5】
前記所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項1に記載の方法。
【請求項6】
前記所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項1に記載の方法。
【請求項7】
前記ディスプレイがオンしているかを判定することを更に含み、
前記ディスプレイがオンしているとの判定に従い、前記オーディオ入力のサンプリングが発生する、請求項1から6のいずれか一項に記載の方法。
【請求項8】
前記ディスプレイがオンしているかの判定に従い、前記ディスプレイのバックライトがオンしているかを判定することを更に含む、請求項6に記載の方法。
【請求項9】
前記オーディオ入力のサンプリングが所定の持続時間発生した後、前記オーディオ入力のサンプリングを中止することを更に含む、請求項1から8のいずれか一項に記載の方法。
【請求項10】
所定の条件を満たす前記ユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、
前記第1のユーザ入力の受信に従い、オーディオ入力をサンプリングする間に、第2の所定の条件を満たす第2のユーザ入力を受信することと、
前記第2の所定の条件を満たす前記第2のユーザ入力の受信に従い、前記オーディオ入力のサンプリングを中止することとを更に含む、請求項1から8のいずれか一項に記載の方法。
【請求項11】
前記第2の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下量に基づくものである、請求項10に記載の方法。
【請求項12】
前記第1の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下の平滑度に基づくものである、請求項10及び11のいずれか一項に記載の方法。
【請求項13】
前記第2の所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項10に記載の方法。
【請求項14】
前記第2の所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項10に記載の方法。
【請求項15】
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記ディスプレイがオフしているかを判定することと、
前記ディスプレイがオフしているとの判定に従い、前記オーディオ入力のサンプリングを中止することと、を更に含む、請求項1から8のいずれか一項に記載の方法。
【請求項16】
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記オーディオ入力内のオーディオ終点を特定することと、
前記オーディオ終点の特定に応じて、前記オーディオ入力のサンプリングを中止することと、を更に含む、請求項1から8のいずれか一項に記載の方法。
【請求項17】
オーディオ入力のサンプリングの中止に従い、触覚出力を提供することを更に含む、請求項9から16のいずれか一項に記載の方法。
【請求項18】
前記仮想アシスタントセッションのトリガに従い、ユーザに口頭入力を促すことを更に含む、請求項1から17のいずれか一項に記載の方法。
【請求項19】
前記オーディオ入力は、前記口頭トリガと追加入力を含み、
前記仮想アシスタントセッションのトリガに従い、
前記オーディオ入力内の少なくとも前記追加入力に基づいてユーザ意図を判定することと、
前記ユーザ意図に関連付けられたタスクを実行することと、
を更に含む、請求項1から17のいずれか一項に記載の方法。
【請求項20】
前記電子デバイスが所定のモードで動作しているとの判定に従い、前記ディスプレイがオンしている間に、前記所定の条件を満たす前記ユーザ入力を受信した後であっても、オーディオ入力のサンプリングを見送ることを更に含み、
前記所定のモードでの動作は、前記電子デバイスのオーディオ出力をミュートすることを含む、請求項1から19のいずれか一項に記載の方法。
【請求項21】
前記口頭トリガは、所定のフレーズを含む、請求項1から20のいずれか一項に記載の方法。
【請求項22】
ディスプレイ及びマイクロフォンを備える電子デバイスにおいて、
所定の条件を満たすソフトウェアイベントを検出することと、
前記条件を満たすソフトウェアイベントが検出されたという判定に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングすることと、
前記マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定することと、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガすることと、を含む方法。
【請求項23】
前記所定の条件は、前記ソフトウェアイベントが前記電子デバイスのアプリケーションによってトリガされたイベントである、請求項22に記載の方法。
【請求項24】
前記所定の条件は、前記ソフトウェアイベントが通知を表すことを含む、請求項22に記載の方法。
【請求項25】
前記所定の条件は、前記ソフトウェアイベントがカレンダー通知を表すことを含む、請求項22に記載の方法。
【請求項26】
前記所定の条件は、前記ソフトウェアイベントが外部デバイスからの着信カレンダー招待状を表すことを含む、請求項22に記載の方法。
【請求項27】
前記所定の条件は、前記ソフトウェアイベントが外部デバイスからトリガされた着信伝達を表すことを含む、請求項22に記載の方法。
【請求項28】
前記所定の条件は、前記ソフトウェアイベントが外部デバイスからの着信電話を表すことを含む、請求項27に記載の方法。
【請求項29】
前記所定の条件は、前記ソフトウェアイベントが外部デバイスからの着信テキスト又はマルチメディアメッセージを表すことを含む、請求項27に記載の方法。
【請求項30】
仮想アシスタントセッションのトリガに従い、前記外部デバイスにアドレス指定された応答を開始することを更に含む、請求項26から29のいずれか一項に記載の方法。
【請求項31】
前記ディスプレイがオンしているかを判定することを更に含み、
前記ディスプレイがオンしているとの判定に従い、前記オーディオ入力のサンプリングが発生する、請求項22から30のいずれか一項に記載の方法。
【請求項32】
前記ディスプレイがオンしているかの判定に従い、前記ディスプレイのバックライトがオンしているかを判定することを更に含む、請求項31に記載の方法。
【請求項33】
前記オーディオ入力のサンプリングが所定の持続時間発生した後、前記オーディオ入力のサンプリングを中止することを更に含む、請求項22から32のいずれか一項に記載の方法。
【請求項34】
所定の条件を満たす前記ユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、
前記第1のユーザ入力の受信に従い、オーディオ入力をサンプリングする間に、第2の所定の条件を満たす第2のユーザ入力を受信することと、
前記第2の所定の条件を満たす前記第2のユーザ入力の受信に従い、前記オーディオ入力のサンプリングを中止することを更に含む、請求項22から32のいずれか一項に記載の方法。
【請求項35】
前記第2の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下量に基づくものである、請求項34に記載の方法。
【請求項36】
前記第1の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下の平滑度に基づくものである、請求項34及び35のいずれか一項に記載の方法。
【請求項37】
前記第2の所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項34に記載の方法。
【請求項38】
前記第2の所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項34に記載の方法。
【請求項39】
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記ディスプレイがオフしているかを判定することと、
前記ディスプレイがオフしているとの判定に従い、前記オーディオ入力のサンプリングを中止することと、を更に含む、請求項22から29のいずれか一項に記載の方法。
【請求項40】
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記オーディオ入力内のオーディオ終点を特定することと、
前記オーディオ終点の特定に応じて、オーディオ入力のサンプリングを中止することを更に含む、請求項22から29のいずれか一項に記載の方法。
【請求項41】
オーディオ入力のサンプリングの中止に従い、触覚出力を提供することを含む、請求項30から40のいずれか一項に記載の方法。
【請求項42】
前記仮想アシスタントセッションのトリガに従い、ユーザに口頭入力を促すことを更に含む、請求項22から41のいずれか一項に記載の方法。
【請求項43】
前記オーディオ入力は、前記口頭トリガと追加入力を含み、
前記仮想アシスタントセッションのトリガに従い、
前記オーディオ入力内の少なくとも前記追加入力に基づいてユーザ意図を判定することと、
前記ユーザ意図に関連付けられたタスクを実行することと、
を更に含む、請求項22から41のいずれか一項に記載の方法。
【請求項44】
前記電子デバイスが所定のモードで動作しているとの判定に従い、前記ディスプレイがオンしている間に、前記所定の条件を満たす前記ユーザ入力を受信した後であっても、オーディオ入力のサンプリングを見送ることを更に含み、
前記所定のモードでの動作は、前記電子デバイスのオーディオ出力をミュートすることを含む、請求項22から43のいずれか一項に記載の方法。
【請求項45】
前記口頭トリガは、所定のフレーズを含む、請求項22から44のいずれか一項に記載の方法。
【請求項46】
ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスにおいて、
前記入力デバイスを介して所定の条件を満たすユーザ入力を受信することと、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングすることと、
オーディオ入力が口頭トリガを含むかを判定することと、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、
仮想アシスタントセッションをトリガすることと、
触覚出力を提供することと、
を含む方法。
【請求項47】
所定の条件を満たす前記ユーザ入力の受信に従い、前記ディスプレイがオフしている間に、前記ユーザ入力を受信することを更に含む、請求項46に記載の方法。
【請求項48】
前記仮想アシスタントセッションのトリガに従い、前記ディスプレイのバックライトをオンすることなく、前記仮想アシスタントセッションをトリガすることを更に含む、請求項46及び47のいずれか一項に記載の方法。
【請求項49】
前記所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの持ち上げ量に基づくものである、請求項46から48のいずれか一項に記載の方法。
【請求項50】
前記所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの持ち上げの平滑度に基づくものである、請求項46から48のいずれか一項に記載の方法。
【請求項51】
前記所定の条件は、前記電子デバイスの前記持ち上げに従う位置での滞留時間の最小期間を含む、請求項49及び50のいずれか一項に記載の方法。
【請求項52】
前記所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項46から48のいずれか一項に記載の方法。
【請求項53】
前記所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項46から48のいずれか一項に記載の方法。
【請求項54】
前記オーディオ入力のサンプリングが所定の持続時間発生した後、前記オーディオ入力のサンプリングを中止することを更に含む、請求項46から53のいずれか一項に記載の方法。
【請求項55】
所定の条件を満たす前記ユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、
前記第1のユーザ入力の受信に従い、オーディオ入力をサンプリングする間に、第2の所定の条件を満たす第2のユーザ入力を受信することと、
前記第2の所定の条件を満たす前記第2のユーザ入力の受信に従い、前記オーディオ入力のサンプリングを中止することと、を更に含む、請求項46から53のいずれか一項に記載の方法。
【請求項56】
前記第2の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下量に基づくものである、請求項55に記載の方法。
【請求項57】
前記第1の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下の平滑度に基づくものである、請求項55及び56のいずれか一項に記載の方法。
【請求項58】
前記第2の所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項55に記載の方法。
【請求項59】
前記第2の所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項55に記載の方法。
【請求項60】
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記オーディオ入力内のオーディオ終点を特定することと、
前記オーディオ終点の特定に応じて、オーディオ入力のサンプリングを中止することと、を更に含む、請求項46から53のいずれか一項に記載の方法。
【請求項61】
オーディオ入力のサンプリングの中止に従い、触覚出力を提供することを更に含む、請求項54から60のいずれか一項に記載の方法。
【請求項62】
前記仮想アシスタントセッションのトリガに従い、ユーザに口頭入力を促すことを更に含む、請求項46から61のいずれか一項に記載の方法。
【請求項63】
前記オーディオ入力は、前記口頭トリガと追加入力を含み、
前記仮想アシスタントセッションのトリガに従い、
前記オーディオ入力内の少なくとも前記追加入力に基づいてユーザ意図を判定することと、
前記ユーザ意図に関連付けられたタスクを実行することと、
を更に含む、請求項46から61のいずれか一項に記載の方法。
【請求項64】
前記電子デバイスが所定のモードで動作しているとの判定に従い、前記ディスプレイがオンしている間に、前記所定の条件を満たす前記ユーザ入力を受信した後であっても、オーディオ入力のサンプリングを見送ることを更に含み、
前記所定のモードでの動作は、前記電子デバイスのオーディオ出力をミュートすることを含む、請求項46から63のいずれか一項に記載の方法。
【請求項65】
前記口頭トリガは、所定のフレーズを含む、請求項46から64のいずれか一項に記載の方法。
【請求項66】
ディスプレイ及びマイクロフォンを備える電子デバイスにおいて、
前記マイクロフォンを介して受信したオーディオ入力をサンプリングするとともに、前記オーディオ入力がタスクを表すかを判定することと、
オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信することと、
前記オーディオ入力のサンプリングを中止する前記受信した命令を受け取ったことを通知する出力を提供することと、
前記出力の提供後、ある持続時間の間、前記オーディオ入力のサンプリングを継続するとともに前記オーディオ入力がタスクを含むかを判定し、その後、前記オーディオ入力のサンプリングを中止することと、を含む、方法。
【請求項67】
オーディオ入力のサンプリングに従い、前記ディスプレイがオンしている間にオーディオ入力をサンプリングすることを更に含む、請求項66に記載の方法。
【請求項68】
前記オーディオ入力のサンプリングを終了する前記受信した命令を受け取ったことを通知する前記出力の提供に従い、触覚出力を提供することを更に含む、請求項66及び67のいずれか一項に記載の方法。
【請求項69】
前記オーディオ入力のサンプリングを終了する前記受信した命令を受け取ったことを通知する前記出力の提供に従い、オーディオ出力を提供することを更に含む、請求項66から68のいずれか一項に記載の方法。
【請求項70】
前記マイクロフォンを介して受信したオーディオのサンプリングに従い、ユーザに口頭入力を促すことを更に含む、請求項66から69のいずれか一項に記載の方法。
【請求項71】
前記オーディオ入力が要求を表すかの判定に従い、前記オーディオ入力の少なくとも一部に基づいてユーザ意図を判定することと、
前記ユーザ意図に基づいてタスクを特定し実行することと、
前記タスクの実行を表す触覚出力を提供することと、を更に含む、請求項66から70のいずれか一項に記載の方法。
【請求項72】
前記口頭トリガは、所定のフレーズを含む、請求項66から71のいずれか一項に記載の方法。
【請求項73】
オーディオ入力のサンプリングを中止する前記受信した命令が前記電子デバイスを介してユーザから受信されたか、それとも外部デバイスから受信されたかを判定することと、を更に含み、
前記受信した命令が前記電子デバイスを介してユーザから受信されたとの判定に従って、ある持続時間の間の前記オーディオ入力のサンプリングの継続と前記オーディオ入力がタスクを含むかの判定が発生し、
前記受信した命令が外部デバイスから受信されたとの判定に従って、前記受信した命令に応じて前記オーディオ入力のサンプリングを中止する、請求項66から72のいずれか一項に記載の方法。
【請求項74】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスによって実行されたときに、前記デバイスに、
前記ディスプレイがオンしている間に、前記入力デバイスを介して所定の条件を満たすユーザ入力を受信させ、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングさせ、
前記オーディオ入力が口頭トリガを含むかを判定させ、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガさせる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項75】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスによって実行されたときに、前記デバイスに、
請求項1から21のいずれか一項に記載の方法を実行させる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項76】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、ディスプレイ及びマイクロフォンを備える電子デバイスによって実行されたときに、前記デバイスに、
所定の条件を満たすソフトウェアイベントを検出させ、
前記条件を満たす前記ソフトウェアイベントが検出されたという判定に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングさせ、
前記マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定させ、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガさせる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項77】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスによって実行されたときに、前記デバイスに、
請求項22から46のいずれか一項に記載の方法を実行させる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項78】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスによって実行されたときに、前記デバイスに、
前記入力デバイスを介して所定の条件を満たすユーザ入力を受信させ、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングさせ、
オーディオ入力が口頭トリガを含むかを判定させ、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、
仮想アシスタントセッションをトリガさせ、
触覚出力を提供させる、
命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項79】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスによって実行されたときに、前記デバイスに、
請求項46から65のいずれか一項に記載の方法を実行させる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項80】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、ディスプレイ及びマイクロフォンを備える電子デバイスによって実行されたときに、前記デバイスに、
前記マイクロフォンを介して受信したオーディオ入力をサンプリングさせるとともに、前記オーディオ入力がタスクを表すかを判定させ、
オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信させ、
前記オーディオ入力のサンプリングを中止する前記受信した命令を受け取ったことを通知する出力を提供させ、
前記出力の提供後、ある持続時間の間、前記オーディオ入力のサンプリングを継続させるとともに前記オーディオ入力がタスクを含むかを判定させ、その後、前記オーディオ入力のサンプリングを中止させる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項81】
1つ以上のプログラムを記憶する非一時的コンピュータ可読記憶媒体であって、前記1つ以上のプログラムが、ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスによって実行されたときに、前記デバイスに、
請求項66から73のいずれか一項に記載の方法を実行させる、命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項82】
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、
を備える電子デバイスであって、前記1つ以上のプログラムが、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるよう構成されており、前記1つ以上のプログラムが、
前記ディスプレイがオンしている間に、前記入力デバイスを介して所定の条件を満たすユーザ入力を受信し、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングし、
前記オーディオ入力が口頭トリガを含むかを判定し、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする、
命令を含む、電子デバイス。
【請求項83】
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、
を備える電子デバイスであって、前記1つ以上のプログラムが、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるよう構成されており、前記1つ以上のプログラムが、請求項1から21のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項84】
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、
を備える電子デバイスであって、前記1つ以上のプログラムが、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるよう構成されており、前記1つ以上のプログラムが、
所定の条件を満たすソフトウェアイベントを検出し、
前記条件を満たす前記ソフトウェアイベントが検出されたという判定に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングし、
前記マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定し、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする、
命令を含む、電子デバイス。
【請求項85】
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、
を備える電子デバイスであって、前記1つ以上のプログラムが、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるよう構成されており、前記1つ以上のプログラムが、請求項22から45のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項86】
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、
を備える電子デバイスであって、前記1つ以上のプログラムが、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるよう構成されており、前記1つ以上のプログラムが、
前記入力デバイスを介して所定の条件を満たすユーザ入力を受信し、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングし、
オーディオ入力が口頭トリガを含むかを判定し、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、
仮想アシスタントセッションをトリガし、
触覚出力を有効化する、
命令を含む、電子デバイス。
【請求項87】
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、
を備える電子デバイスであって、前記1つ以上のプログラムが、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるよう構成されており、前記1つ以上のプログラムが、請求項46から65のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項88】
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、
を備える電子デバイスであって、前記1つ以上のプログラムが、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるよう構成されており、前記1つ以上のプログラムが、
前記マイクロフォンを介して受信したオーディオ入力をサンプリングし、前記オーディオ入力がタスクを表すかを判定し、
オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信し、
前記オーディオ入力のサンプリングを中止する前記受信した命令を受け取ったことを通知する出力を有効化し、
前記出力を有効化した後、ある持続時間の間、前記オーディオ入力のサンプリングを継続するとともに前記オーディオ入力がタスクを含むかを判定し、その後、前記オーディオ入力のサンプリングを中止する、
命令を含む、電子デバイス。
【請求項89】
ディスプレイと、
1つ以上のプロセッサと、
メモリと、
1つ以上のプログラムと、
を備える電子デバイスであって、前記1つ以上のプログラムが、前記メモリ内に記憶され、前記1つ以上のプロセッサによって実行されるよう構成されており、前記1つ以上のプログラムが、請求項66から73のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項90】
前記表示手段がオンしている間に、前記入力デバイスを介して所定の条件を満たすユーザ入力を受信する手段と、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングする手段と、
前記オーディオ入力が口頭トリガを含むかを判定する手段と、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする手段と、を備える電子デバイス。
【請求項91】
請求項1から21のいずれか一項に記載の方法を実行するための手段を備える電子デバイス。
【請求項92】
所定の条件を満たすソフトウェアイベントを検出する手段と、
前記条件を満たす前記ソフトウェアイベントが検出されたという判定に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングする手段と、
前記マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定する手段と、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする手段と、を備える電子デバイス。
【請求項93】
請求項22から45のいずれか一項に記載の方法を実行するための手段を備える電子デバイス。
【請求項94】
前記入力デバイスを介して所定の条件を満たすユーザ入力を受信する手段と、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングする手段と、
オーディオ入力が口頭トリガを含むかを判定する手段と、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、
仮想アシスタントセッションをトリガするとともに、
触覚出力を提供する手段と、
を備える電子デバイス。
【請求項95】
請求項46から65のいずれか一項に記載の方法を実行するための手段を備える電子デバイス。
【請求項96】
前記マイクロフォンを介して受信したオーディオ入力をサンプリングするとともに、前記オーディオ入力がタスクを表すかを判定する手段と、
オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信する手段と、
前記オーディオ入力のサンプリングを中止する前記受信した命令を受け取ったことを通知する出力を提供する手段と、
前記出力を提供した後、ある持続時間の間、前記オーディオ入力のサンプリングを継続するとともに前記オーディオ入力がタスクを含むかを判定し、その後、前記オーディオ入力のサンプリングを中止する手段と、を備える、電子デバイス。
【請求項97】
請求項66から73のいずれか一項に記載の方法を実行するための手段を備える電子デバイス。
【請求項98】
ディスプレイと、マイクロフォンと、入力デバイスと、
前記ディスプレイ、前記マイクロフォン及び前記入力デバイスに連結された処理ユニットと、を備える電子デバイスであって、前記処理ユニットは、
前記ディスプレイがオンしている間に、前記入力デバイスを介して所定の条件を満たすユーザ入力を受信し、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングし、
前記オーディオ入力が口頭トリガを含むかを判定し、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする、
ように構成される、電子デバイス。
【請求項99】
前記所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの持ち上げ量に基づくものである、請求項98に記載の電子デバイス。
【請求項100】
前記所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの持ち上げの平滑度に基づくものである、請求項98及び99のいずれか一項に記載の電子デバイス。
【請求項101】
前記所定の条件は、前記電子デバイスの前記持ち上げに従う位置での滞留時間の最小期間を含む、請求項98及び99のいずれか一項に記載の電子デバイス。
【請求項102】
前記所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項98に記載の電子デバイス。
【請求項103】
前記所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項98に記載の電子デバイス。
【請求項104】
前記処理ユニットは、
前記ディスプレイがオンしているかを判定するように更に構成され、
前記ディスプレイがオンしているとの判定に従い、前記オーディオ入力のサンプリングが発生する、請求項98から103のいずれか一項に記載の電子デバイス。
【請求項105】
前記処理ユニットは、
前記ディスプレイがオンしているかの判定に従い、前記ディスプレイのバックライトがオンしているかを判定するように更に構成される、請求項104に記載の電子デバイス。
【請求項106】
前記処理ユニットは、
前記オーディオ入力のサンプリングが所定の持続時間発生した後、前記オーディオ入力のサンプリングを中止するように更に構成される、請求項98から105のいずれか一項に記載の電子デバイス。
【請求項107】
所定の条件を満たす前記ユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、前記処理ユニットは、
前記第1のユーザ入力の受信に従い、オーディオ入力をサンプリングする間に、第2の所定の条件を満たす第2のユーザ入力を受信し、
前記第2の所定の条件を満たす前記第2のユーザ入力の受信に従い、前記オーディオ入力のサンプリングを中止するように更に構成される、請求項98から105のいずれか一項に記載の電子デバイス。
【請求項108】
前記第2の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下量に基づくものである、請求項107に記載の電子デバイス。
【請求項109】
前記第1の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下の平滑度に基づくものである、請求項107及び108のいずれか一項に記載の電子デバイス。
【請求項110】
前記第2の所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項107に記載の電子デバイス。
【請求項111】
前記第2の所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項107に記載の電子デバイス。
【請求項112】
前記処理ユニットは、
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記ディスプレイがオフしているかを判定し、
前記ディスプレイがオフしているとの判定に従い、前記オーディオ入力のサンプリングを中止するように更に構成される、請求項98から105のいずれか一項に記載の電子デバイス。
【請求項113】
前記処理ユニットは、
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記オーディオ入力内のオーディオ終点を特定し、
前記オーディオ終点の特定に応じて、オーディオ入力のサンプリングを中止するように更に構成される、請求項98から105のいずれか一項に記載の電子デバイス。
【請求項114】
前記処理ユニットは、
オーディオ入力のサンプリングの中止に従い、触覚出力を発生するように構成される、請求項106から113のいずれか一項に記載の電子デバイス。
【請求項115】
前記処理ユニットは、
前記仮想アシスタントセッションのトリガに従い、ユーザに口頭入力を促すように更に構成される、請求項98から114のいずれか一項に記載の電子デバイス。
【請求項116】
前記オーディオ入力は、前記口頭トリガと追加入力を含み、前記処理ユニットは、
前記仮想アシスタントセッションのトリガに従い、
前記オーディオ入力内の少なくとも前記追加入力に基づいてユーザ意図を判定し、
前記ユーザ意図に関連付けられたタスクを実行する、
ように更に構成される、請求項98から114のいずれか一項に記載の電子デバイス。
【請求項117】
前記処理ユニットは、
前記電子デバイスが所定のモードで動作しているとの判定に従い、前記ディスプレイがオンしている間に、前記所定の条件を満たす前記ユーザ入力を受信した後であっても、オーディオ入力のサンプリングを見送るように更に構成され、
前記所定のモードでの動作は、前記電子デバイスのオーディオ出力をミュートすることを含む、請求項98から116のいずれか一項に記載の電子デバイス。
【請求項118】
前記口頭トリガは、所定のフレーズを含む、請求項98から117のいずれか一項に記載の電子デバイス。
【請求項119】
ディスプレイと、マイクロフォンと、
前記ディスプレイ、前記マイクロフォン及び前記入力デバイスに連結された処理ユニットと、を備える電子デバイスであって、前記処理ユニットは、
所定の条件を満たすソフトウェアイベントを検出し、
前記条件を満たす前記ソフトウェアイベントが検出されたという判定に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングし、
前記マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定し、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする、
ように構成される、電子デバイス。
【請求項120】
前記所定の条件は、前記ソフトウェアイベントが前記電子デバイスのアプリケーションによってトリガされたイベントであることである、請求項119に記載の電子デバイス。
【請求項121】
前記所定の条件は、前記ソフトウェアイベントが通知を表すことを含む、請求項119に記載の電子デバイス。
【請求項122】
前記所定の条件は、前記ソフトウェアイベントがカレンダー通知を表すことを含む、請求項119に記載の電子デバイス。
【請求項123】
前記所定の条件は、前記ソフトウェアイベントが外部デバイスからの着信カレンダー招待状を表すことを含む、請求項119に記載の電子デバイス。
【請求項124】
前記所定の条件は、前記ソフトウェアイベントが外部デバイスからトリガされた着信伝達を表すことを含む、請求項119に記載の電子デバイス。
【請求項125】
前記所定の条件は、前記ソフトウェアイベントが外部デバイスからの着信電話を表すことを含む、請求項124に記載の電子デバイス。
【請求項126】
前記所定の条件が、前記ソフトウェアイベントが外部デバイスからの着信テキスト又はマルチメディアメッセージを表すことを含む、請求項124に記載の電子デバイス。
【請求項127】
前記処理ユニットは、
仮想アシスタントセッションのトリガに従い、前記外部デバイスにアドレス指定された応答を開始するように更に構成される、請求項119から126のいずれか一項に記載の電子デバイス。
【請求項128】
前記処理ユニットは、
前記ディスプレイがオンしているかを判定するように更に構成され、
前記ディスプレイがオンしているとの判定に従い、前記オーディオ入力のサンプリングが発生する、請求項119から127のいずれか一項に記載の電子デバイス。
【請求項129】
前記処理ユニットは、
前記ディスプレイがオンしているかの判定に従い、前記ディスプレイのバックライトがオンしているかを判定するように更に構成される、請求項128に記載の電子デバイス。
【請求項130】
前記処理ユニットは、
前記オーディオ入力のサンプリングが所定の持続時間発生した後、前記オーディオ入力のサンプリングを中止するように更に構成される、請求項119から129のいずれか一項に記載の電子デバイス。
【請求項131】
所定の条件を満たす前記ユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、前記処理ユニットは、
前記第1のユーザ入力の受信に従い、オーディオ入力をサンプリングする間に、第2の所定の条件を満たす第2のユーザ入力を受信し、
前記第2の所定の条件を満たす前記第2のユーザ入力の受信に従い、前記オーディオ入力のサンプリングを中止するように更に構成される、請求項119から129のいずれか一項に記載の電子デバイス。
【請求項132】
前記第2の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下量に基づくものである、請求項131に記載の電子デバイス。
【請求項133】
前記第1の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下の平滑度に基づくものである、請求項131及び132のいずれか一項に記載の電子デバイス。
【請求項134】
前記第2の所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項131に記載の電子デバイス。
【請求項135】
前記第2の所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項131に記載の電子デバイス。
【請求項136】
前記処理ユニットは、
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記ディスプレイがオフしているかを判定し、
前記ディスプレイがオフしているとの判定に従い、前記オーディオ入力のサンプリングを中止するように更に構成される、請求項119から135のいずれか一項に記載の電子デバイス。
【請求項137】
前記処理ユニットは、
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記オーディオ入力内のオーディオ終点を特定し、
前記オーディオ終点の特定に応じて、オーディオ入力のサンプリングを中止するように更に構成される、請求項119から136のいずれか一項に記載の電子デバイス。
【請求項138】
前記処理ユニットは、
オーディオ入力のサンプリングの中止に従い、触覚出力を発生するように構成される、請求項130から137のいずれか一項に記載の電子デバイス。
【請求項139】
前記処理ユニットは、
前記仮想アシスタントセッションのトリガに従い、ユーザに口頭入力を促すように更に構成される、請求項119から138のいずれか一項に記載の電子デバイス。
【請求項140】
前記オーディオ入力は、前記口頭トリガと追加入力を含み、前記処理ユニットは、
前記仮想アシスタントセッションのトリガに従い、
前記オーディオ入力内の少なくとも前記追加入力に基づいてユーザ意図を判定し、
前記ユーザ意図に関連付けられたタスクを実行する、
ように更に構成される、請求項119から139のいずれか一項に記載の電子デバイス。
【請求項141】
前記処理ユニットは、
前記電子デバイスが所定のモードで動作しているとの判定に従い、前記ディスプレイがオンしている間に、前記所定の条件を満たす前記ユーザ入力を受信した後であっても、オーディオ入力のサンプリングを見送るように更に構成され、
前記所定のモードでの動作は、前記電子デバイスのオーディオ出力をミュートすることを含む、請求項119から140のいずれか一項に記載の電子デバイス。
【請求項142】
前記口頭トリガは、所定のフレーズを含む、請求項119から141のいずれか一項に記載の電子デバイス。
【請求項143】
ディスプレイと、マイクロフォンと、入力デバイスと、
前記ディスプレイ、前記マイクロフォン及び前記入力デバイスに連結された処理ユニットと、を備える電子デバイスであって、前記処理ユニットは、
前記入力デバイスを介して所定の条件を満たすユーザ入力を受信し、
前記所定の条件を満たす前記ユーザ入力の受信に従い、前記マイクロフォンを介して受信したオーディオ入力をサンプリングし、
オーディオ入力が口頭トリガを含むかを判定し、
前記オーディオ入力が前記口頭トリガを含むとの判定に従い、
仮想アシスタントセッションをトリガするとともに、
触覚出力を提供する、
ように構成される、電子デバイス。
【請求項144】
前記処理ユニットは、
所定の条件を満たす前記ユーザ入力の受信に従い、前記ディスプレイがオフしている間に、前記ユーザ入力を受信するように更に構成される、請求項143に記載の電子デバイス。
【請求項145】
前記処理ユニットは、
前記仮想アシスタントセッションのトリガに従い、前記ディスプレイのバックライトをオンすることなく、前記仮想アシスタントセッションをトリガするように構成される、請求項143及び144のいずれか一項に記載の電子デバイス。
【請求項146】
前記所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの持ち上げ量に基づくものである、請求項143から145のいずれか一項に記載の電子デバイス。
【請求項147】
前記所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの持ち上げの平滑度に基づくものである、請求項140から142のいずれか一項に記載の電子デバイス。
【請求項148】
前記所定の条件は、前記電子デバイスの前記持ち上げに従う位置での滞留時間の最小期間を含む、請求項143及び144のいずれか一項に記載の電子デバイス。
【請求項149】
前記所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項143から145のいずれか一項に記載の電子デバイス。
【請求項150】
前記所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項143から145のいずれか一項に記載の電子デバイス。
【請求項151】
前記処理ユニットは、
前記オーディオ入力のサンプリングが所定の持続時間発生した後、前記オーディオ入力のサンプリングを中止するように更に構成される、請求項143から150のいずれか一項に記載の電子デバイス。
【請求項152】
所定の条件を満たす前記ユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、前記処理ユニットは、
前記第1のユーザ入力の受信に従い、オーディオ入力をサンプリングする間に、第2の所定の条件を満たす第2のユーザ入力を受信し、
前記第2の所定の条件を満たす前記第2のユーザ入力の受信に従い、前記オーディオ入力のサンプリングを中止するように更に構成される、請求項130から151のいずれか一項に記載の電子デバイス。
【請求項153】
前記第2の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下量に基づくものである、請求項149に記載の電子デバイス。
【請求項154】
前記第1の所定の条件は、前記電子デバイスの加速度計から判定された、時間インターバル中の前記電子デバイスの降下の平滑度に基づくものである、請求項149及び150のいずれか一項に記載の電子デバイス。
【請求項155】
前記第2の所定の条件は、前記電子デバイスのボタンのアクティブ化を検出することを含む、請求項149に記載の電子デバイス。
【請求項156】
前記第2の所定の条件は、前記電子デバイスのタッチ感知面上のタッチ入力を検出することを含む、請求項149に記載の電子デバイス。
【請求項157】
前記処理ユニットは、
前記所定の条件を満たす前記ユーザ入力の受信に従い、オーディオ入力をサンプリングしている間に、前記オーディオ入力内のオーディオ終点を特定し、
前記オーディオ終点の特定に応じて、オーディオ入力のサンプリングを中止するように更に構成される、請求項143から156のいずれか一項に記載の電子デバイス。
【請求項158】
前記処理ユニットは、
オーディオ入力のサンプリングの中止に従い、触覚出力を発生するように構成される、請求項151から157のいずれか一項に記載の電子デバイス。
【請求項159】
前記処理ユニットは、
前記仮想アシスタントセッションのトリガに従い、ユーザに口頭入力を促すように更に構成される、請求項143から158のいずれか一項に記載の電子デバイス。
【請求項160】
前記オーディオ入力は、前記口頭トリガと追加入力を含み、前記処理ユニットは、
前記仮想アシスタントセッションのトリガに従い、
前記オーディオ入力内の少なくとも前記追加入力に基づいてユーザ意図を判定し、
前記ユーザ意図に関連付けられたタスクを実行する、
ように更に構成される、請求項143から158のいずれか一項に記載の電子デバイス。
【請求項161】
前記処理ユニットは、
前記電子デバイスが所定のモードで動作しているとの判定に従い、前記ディスプレイがオンしている間に、前記所定の条件を満たす前記ユーザ入力を受信した後であっても、オーディオ入力のサンプリングを見送るように更に構成され、
前記所定のモードでの動作は、前記電子デバイスのオーディオ出力をミュートすることを含む、請求項143から160のいずれか一項に記載の電子デバイス。
【請求項162】
前記口頭トリガは、所定のフレーズを含む、請求項140から158のいずれか一項に記載の電子デバイス。
【請求項163】
ディスプレイと、マイクロフォンと、入力デバイスと、
前記ディスプレイ、前記マイクロフォン及び前記入力デバイスに連結された処理ユニットと、を備える電子デバイスであって、前記処理ユニットは、
前記マイクロフォンを介して受信したオーディオ入力をサンプリングし、前記オーディオ入力がタスクを表すかを判定し、
オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信し、
前記オーディオ入力のサンプリングを中止する前記受信した命令を受け取ったことを通知する出力を生じ、
前記出力の提供後、ある持続時間の間、前記オーディオ入力のサンプリングを継続するとともに前記オーディオ入力がタスクを含むかを判定し、その後、前記オーディオ入力のサンプリングを中止する、
ように構成される、電子デバイス。
【請求項164】
前記処理ユニットは、
オーディオ入力のサンプリングに従い、前記ディスプレイがオンしている間に、オーディオ入力をサンプリングするように更に構成される、請求項163に記載の電子デバイス。
【請求項165】
前記処理ユニットは、
前記オーディオ入力のサンプリングを終了する前記受信した命令を受け取ったことを通知する前記出力の提供に従い、触覚出力を提供するように更に構成される、請求項163及び164のいずれか一項に記載の電子デバイス。
【請求項166】
前記処理ユニットは、
前記オーディオ入力のサンプリングを終了する前記受信した命令を受け取ったことを通知する前記出力の提供に従い、オーディオ出力を提供するように更に構成される、請求項163から165のいずれか一項に記載の電子デバイス。
【請求項167】
前記処理ユニットは、
前記マイクロフォンを介して受信したオーディオのサンプリングに従い、ユーザに口頭入力を促すように更に構成される、請求項163から166のいずれか一項に記載の電子デバイス。
【請求項168】
前記処理ユニットは、
前記オーディオ入力がタスクを表すかの判定に従い、前記オーディオ入力の少なくとも一部に基づいてユーザ意図を判定し、
前記ユーザ意図に基づいてタスクを特定し実行し、
前記タスクの実行を表す触覚出力を提供するように更に構成される、請求項163から167のいずれか一項に記載の電子デバイス。
【請求項169】
前記口頭トリガは、所定の句を含む、請求項163から168のいずれか一項に記載の電子デバイス。
【請求項170】
前記処理ユニットは、
オーディオ入力のサンプリングを中止する前記受信した命令が前記電子デバイスを介してユーザから受信されたか、それとも外部デバイスから受信されたかを判定し、
前記受信した命令が前記電子デバイスを介してユーザから受信されたとの判定に従って、ある持続時間の間の前記オーディオ入力のサンプリングの継続と前記オーディオ入力がタスクを含むかの判定が発生し、
前記受信した命令が外部デバイスから受信されたとの判定に従い、前記受信した命令に応じて前記オーディオ入力のサンプリングを中止するように更に構成される、請求項163から169のいずれか一項に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は全般的に、インテリジェント自動アシスタントに関し、より具体的には、インテリジェント自動アシスタントをトリガするための技法に関する。
【0002】
[関連出願の相互参照]
本出願は、2015年3月8日に出願された、「VIRTUAL ASSISTANT ACTIVATION」と題された米国特許仮出願第62/129,932号、及び2015年8月31日に出願された「VIRTUAL ASSISTANT ACTIVATION」と題された米国特許非仮出願第14/841,449号の優先権の利益を主張する。これらの出願の内容は、参照によりその全体が本明細書に組み込まれる。
【0003】
本出願は、2014年7月18日に出願された「Raise Gesture Detection in a Device」と題する米国特許仮出願第62/026,532号、及び2011年1月10日に出願された「Intelligent Automated Assistant」と題する米国特許出願第12/987,982号に関連する。これらの出願の内容は、参照により本明細書に組み込まれる。
【背景技術】
【0004】
インテリジェント自動アシスタント(又は仮想アシスタント)は、人間のユーザと電子デバイスとの間の有益なインタフェースを提供する。例示の仮想アシスタントは、ユーザが口頭形式及び/又はテキスト形式の自然言語を使用して、デバイス又はシステムと対話することを可能にすることができる。ユーザは、ユーザ要求を含む口頭入力を電子デバイス上で動作する仮想アシスタントに提供することができる。仮想アシスタントは、ユーザの意図をこの口頭入力から解釈し、ユーザの意図を1つ以上のタスクとして実行する。その後、電子デバイスの1つ以上のサービスを実行することによってタスクを実行でき、それによってユーザ要求に応答した関連する出力を返すことができる。
【発明の概要】
【0005】
仮想アシスタントはますます精巧なものになるにつれて、ますます多くの使用シナリオの元で、それらの補助を求めることが望ましい場合がある。したがって仮想アシスタントをトリガする効率的な技法は有用である。加えて、仮想アシスタントがバッテリ給電式ポータブル電子デバイス上で実行されている状況では、バッテリ電源を節約しながら仮想アシスタントをトリガする効率的な技法は特に有用である。
【0006】
いくつかの実施形態によれば、電子デバイス上で仮想アシスタントをトリガする方法は、ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスにおいて、ディスプレイがオンしている間に、入力デバイスを介して所定の条件を満たすユーザ入力を受信することと、所定の条件を満たすユーザ入力を受信することに従い、マイクロフォンを介して受信したオーディオ入力をサンプリングすることと、オーディオ入力が口頭トリガを含むかを判定することと、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガすることと、を含む。
【0007】
いくつかの実施形態によれば、電子デバイス上で仮想アシスタントをトリガする方法は、ディスプレイ及びマイクロフォンを備える電子デバイスにおいて、所定の条件を満たすソフトウェアイベントを検出することと、この条件を満たすソフトウェアイベントが検出されたという判定に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングすることと、マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定することと、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガすることと、を含む。
【0008】
いくつかの実施形態によれば、電子デバイス上で仮想アシスタントをトリガする方法は、ディスプレイ、マイクロフォン及び入力デバイスを備える電子デバイスにおいて、入力デバイスを介して所定の条件を満たすユーザ入力を受信することと、所定の条件を満たすユーザ入力を受信することに従い、マイクロフォンを介して受信したオーディオ入力をサンプリングすることと、オーディオ入力が口頭トリガを含むかを判定することと、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガすることと、触覚出力を提供することと、を含む。
【0009】
いくつかの実施形態によれば、電子デバイス上で仮想アシスタントをトリガする方法は、ディスプレイ及びマイクロフォンを備える電子デバイスにおいて、マイクロフォンを介して受信したオーディオ入力をサンプリングするとともに、オーディオ入力がタスクを表すかを判定することと、オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信することと、オーディオ入力のサンプリングを中止する受信した命令を受け取ったことを通知する出力を提供することと、この出力を提供した後、ある持続時間の間、オーディオ入力のサンプリングを継続するとともにオーディオ入力がタスクを含むかを判定し、その後、オーディオ入力のサンプリングを中止することと、を含む。
【0010】
いくつかの実施形態によれば、電子デバイスは、ディスプレイと、1つ以上のプロセッサと、メモリと、1つ以上のプログラムとを備え、この1つ以上のプログラムは、メモリ内に記憶され、この1つ以上のプロセッサによって実行されるように構成されており、この1つ以上のプログラムは、ディスプレイがオンしている間に、入力デバイスを介して所定の条件を満たすユーザ入力を受信し、所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングし、オーディオ入力が口頭トリガを含むかを判定し、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする、命令を含む。
【0011】
いくつかの実施形態によれば、電子デバイスは、ディスプレイと、1つ以上のプロセッサと、メモリと、1つ以上のプログラムとを備え、この1つ以上のプログラムは、メモリ内に記憶され、この1つ以上のプロセッサによって実行されるように構成されており、この1つ以上のプログラムは、所定の条件を満たすソフトウェアイベントを検出し、条件を満たすソフトウェアイベントが検出されたという判定に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングし、マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定し、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする、命令を含む。
【0012】
いくつかの実施形態によれば、電子デバイスは、ディスプレイと、1つ以上のプロセッサと、メモリと、1つ以上のプログラムとを備え、この1つ以上のプログラムは、メモリ内に記憶され、この1つ以上のプロセッサによって実行されるように構成されており、この1つ以上のプログラムは、入力デバイスを介して所定の条件を満たすユーザ入力を受信し、
【0013】
所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングし、オーディオ入力が口頭トリガを含むかを判定し、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガし、触覚出力を提供する、命令を含む。
【0014】
いくつかの実施形態によれば、電子デバイスは、ディスプレイと、1つ以上のプロセッサと、メモリと、1つ以上のプログラムとを備え、この1つ以上のプログラムは、メモリ内に記憶され、この1つ以上のプロセッサによって実行されるように構成されており、この1つ以上のプログラムは、マイクロフォンを介して受信したオーディオ入力をサンプリングし、オーディオ入力がタスクを表すかを判定し、オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信し、オーディオ入力のサンプリングを中止する受信した命令を受け取ったことを通知する出力を提供し、この出力を提供した後、ある持続時間の間、オーディオ入力のサンプリングを継続するとともにオーディオ入力がタスクを含むかを判定し、その後、オーディオ入力のサンプリングを中止する命令を含む。
【0015】
いくつかの実施形態によれば、非一時的コンピュータ可読記憶媒体は1つ以上のプログラムを記憶し、この1つ以上のプログラムが、ディスプレイ、マイクロフォン、及び入力デバイスを備える電子デバイスによって実行されたときに、電子デバイスに、ディスプレイがオンしている間に、入力デバイスを介して所定の条件を満たすユーザ入力を受信させ、所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングさせ、オーディオ入力が口頭トリガを含むかを判定させ、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガさせる、命令を含む。
【0016】
いくつかの実施形態によれば、非一時的コンピュータ可読記憶媒体は1つ以上のプログラムを記憶し、この1つ以上のプログラムが、ディスプレイ、マイクロフォン、及び入力デバイスを備える電子デバイスによって実行されたときに、電子デバイスに、所定の条件を満たすソフトウェアイベントを検出させ、条件を満たすソフトウェアイベントが検出されたという判定に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングさせ、マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定させ、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガさせる、命令を含む。
【0017】
いくつかの実施形態によれば、非一時的コンピュータ可読記憶媒体は1つ以上のプログラムを記憶し、この1つ以上のプログラムがディスプレイ、マイクロフォン、及び入力デバイスを備える電子デバイスによって実行されたときに、電子デバイスに、入力デバイスを介して所定の条件を満たすユーザ入力を受信させ、所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングさせ、オーディオ入力が口頭トリガを含むかを判定させ、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガさせ、触覚出力を提供させる、命令を含む。
【0018】
いくつかの実施形態によれば、非一時的コンピュータ可読記憶媒体は1つ以上のプログラムを記憶し、この1つ以上のプログラムが、ディスプレイ、マイクロフォン、及び入力デバイスを備える電子デバイスによって実行されたときに、電子デバイスに、マイクロフォンを介して受信されたオーディオ入力をサンプリングさせ、オーディオ入力がタスクを表すかを判定させ、オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信させ、オーディオ入力のサンプリングを中止する受信した命令を受け取ったことを通知する出力を提供させ、この出力を提供した後、ある持続時間の間、オーディオ入力のサンプリングを継続するとともにオーディオ入力がタスクを含むかを判定させ、その後、オーディオ入力のサンプリングを中止させる、命令を含む。
【0019】
いくつかの実施形態によれば、電子デバイスは、表示手段がオンしている間に、入力デバイスを介して所定の条件を満たすユーザ入力を受信する手段と、所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングする手段と、オーディオ入力が口頭トリガを含むかを判定する手段と、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする手段と、を備える。
【0020】
いくつかの実施形態によれば、電子デバイスは、所定の条件を満たすソフトウェアイベントを検出するための手段と、条件を満たすソフトウェアイベントが検出されたという判定に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングする手段と、マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定する手段と、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする手段と、を備える。
【0021】
いくつかの実施形態によれば、電子デバイスは、入力デバイスを介して所定の条件を満たすユーザ入力を受信する手段と、所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングする手段と、オーディオ入力が口頭トリガを含むかを判定する手段と、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガし、触覚出力を提供する手段と、を備える。
【0022】
いくつかの実施形態によれば、電子デバイスは、マイクロフォンを介して受信したオーディオ入力をサンプリングするとともに、オーディオ入力がタスクを表すかを判定する手段と、オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信する手段と、オーディオ入力のサンプリングを中止する受信した命令を受け取ったことを通知する出力を提供する手段と、この出力を提供した後、ある持続時間の間、オーディオ入力のサンプリングを継続するとともにオーディオ入力がタスクを含むかを判定し、その後、オーディオ入力のサンプリングを中止する手段と、を備える。
【0023】
いくつかの実施形態によれば、電子デバイスは、ディスプレイと、マイクロフォンと、入力デバイスと、ディスプレイ、マイクロフォン及び入力デバイスに連結された処理ユニットと、を備え、処理ユニットは、ディスプレイがオンしている間に、入力デバイスを介して所定の条件を満たすユーザ入力を受信し、所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングし、オーディオ入力が口頭トリガを含むかを判定し、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする、ように構成される。
【0024】
いくつかの実施形態によれば、電子デバイスは、ディスプレイと、マイクロフォンと、ディスプレイ、マイクロフォン及び入力デバイスに連結された処理ユニットと、を備え、処理ユニットは、所定の条件を満たすソフトウェアイベントを検出し、条件を満たすソフトウェアイベントが検出されたという判定に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングし、マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを判定し、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガする、ように構成される。
【0025】
いくつかの実施形態によれば、電子デバイスは、ディスプレイと、マイクロフォンと、入力デバイスと、ディスプレイ、マイクロフォン及び入力デバイスに連結された処理ユニットと、を備え、処理ユニットは、入力デバイスを介して所定の条件を満たすユーザ入力を受信し、所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力をサンプリングし、オーディオ入力が口頭トリガを含むかを判定し、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションをトリガし、触覚出力を提供する、ように構成される。
【0026】
いくつかの実施形態によれば、電子デバイスは、ディスプレイと、マイクロフォンと、入力デバイスと、ディスプレイ、マイクロフォン及び入力デバイスに連結された処理ユニットと、を備え、処理ユニットは、マイクロフォンを介して受信したオーディオ入力をサンプリングし、オーディオ入力がタスクを表すかを判定し、オーディオ入力をサンプリングしている間に、オーディオ入力のサンプリングを中止する命令を受信し、オーディオ入力のサンプリングを中止する受信した命令を受け取ったことを通知する出力を提供し、この出力を提供した後、ある持続時間の間、オーディオ入力のサンプリングを継続するとともにオーディオ入力がタスクを含むかを判定し、その後、オーディオ入力のサンプリングを中止する、ように構成される。
【図面の簡単な説明】
【0027】
説明される様々な実施形態を良好に理解するため、以下の図面と併せて、以下の「発明を実施するための形態」を参照されたい。ここで、類似の参照番号は、それらの図にわたって、対応する部分を指す。
【0028】
【
図1】いくつかの実施形態に係るデジタルアシスタントを実施するシステム及び環境を示す。
【0029】
【
図2A】いくつかの実施形態に係る、デジタルアシスタントのクライアント側部分を実施するポータブル多機能デバイスを示すブロック図である。
【0030】
【
図2B】いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。
【0031】
【
図3】いくつかの実施形態に係る、デジタルアシスタントのクライアント側部分を実施するポータブル多機能デバイスを示すブロック図である。
【0032】
【
図4】いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。
【0033】
【
図5A】いくつかの実施形態に係る、ポータブル多機能デバイス上のアプリケーションメニューに関する例示的なユーザインタフェースを示す。
【0034】
【
図5B】いくつかの実施形態に係る、ディスプレイとは別個のタッチ感知面を有する多機能デバイスに関する例示的なユーザインタフェースを示す。
【0035】
【
図6A】いくつかの実施形態に係るパーソナル電子デバイスを示す。
【0036】
【
図6B】いくつかの実施形態に係るパーソナル電子デバイスを示すブロック図である。
【0037】
【
図7A】いくつかの実施形態に係るデジタルアシスタントシステム又はそのサーバ部分を示す。
【0038】
【
図7B】いくつかの実施形態に係る
図8Aに示すデジタルアシスタントの機能を示す。
【0039】
【
図7C】いくつかの実施形態に係るオントロジの一部を示す。
【0040】
【
図8A】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図8B】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図8C】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【0041】
【
図9A】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図9B】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図9C】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【0042】
【
図10A】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図10B】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図10C】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図10D】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【0043】
【
図11A】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図11B】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【
図11C】いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。
【0044】
【
図12】いくつかの実施形態に係る仮想アシスタントをトリガする方法を示すフロー図である。
【0045】
【
図13】いくつかの実施形態に係る仮想アシスタントをトリガする方法を示すフロー図である。
【0046】
【
図14】いくつかの実施形態に係る仮想アシスタントをトリガする方法を示すフロー図である。
【0047】
【
図15】いくつかの実施形態に係る仮想アシスタントをトリガする方法を示すフロー図である。
【0048】
【
図16】いくつかの実施形態に係る電子デバイスの機能ブロック図である。
【0049】
【
図17】いくつかの実施形態に係る電子デバイスの機能ブロック図である。
【0050】
【
図18】いくつかの実施形態に係る電子デバイスの機能ブロック図である。
【0051】
【
図19】いくつかの実施形態に係る電子デバイスの機能ブロック図である。
【0052】
【
図20A】いくつかの実施形態に係る仮想アシスタントを対話する例示的な技法を示す。
【
図20B】いくつかの実施形態に係る仮想アシスタントを対話する例示的な技法を示す。
【
図20C】いくつかの実施形態に係る仮想アシスタントを対話する例示的な技法を示す。
【
図20D】いくつかの実施形態に係る仮想アシスタントを対話する例示的な技法を示す。
【
図20E】いくつかの実施形態に係る仮想アシスタントを対話する例示的な技法を示す。
【0053】
【
図21】いくつかの実施形態に係る仮想アシスタントを対話する方法を示すフロー図である。
【発明を実施するための形態】
【0054】
以下の開示及び実施形態の説明では、実施することができる特定の実施形態が実例として示されている添付の図面を参照する。本開示の範囲から逸脱することなく、他の実施形態及び実施例を実施することができ、変更を行うことができることを理解されたい。
【0055】
仮想アシスタントサービスは、計算量が多いものとなり得る。例えば、仮想アシスタントは、マイクロフォン、その付随回路及び対応するソフトウェアプロセスをアクティブにすることによって、ユーザからのオーディオ入力をサンプリングすることができ、その結果、コンピューティングリソースを消費する。プロセッサ及び付随するバッテリ電力消費を低減する技法を採用する仮想アシスタントサービスを提供する電子デバイスが必要とされており、それによって効果的な仮想アシスタントインタフェースを提供しながら、他の方法では不必要なユーザ入力を処理するのに浪費されたコンピューティングリソースが節約される。
【0056】
【0057】
以下の説明では、様々な要素を説明するために「第1」、「第2」などの用語を使用するが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、ある要素を別の要素と区別するためにのみ使用される。例えば、説明されている様々な実施例の範囲から逸脱することなく、第1の入力は第2の入力と称することができ、同様に、第2の入力は第1の入力と称し得る。第1の入力及び第2の入力は双方とも出力であり得、いくつかの場合では、個別の、異なる入力であり得る。
【0058】
本明細書で説明される様々な実施例の説明で使用される用語は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明及び添付の特許請求の範囲で使用されるとき、単数形「a」、「an」、及び「the」は、文脈がそうではないことを明確に示さない限り、複数形もまた含むことが意図される。本明細書で使用されるときに、用語「及び/又は」が、関連する列挙された項目のうちの1つ以上の全ての可能な任意の組み合わせを指し、かつこれを含むことをもまた理解されたい。用語「includes(含む)、「including(含む)」、「comprises(含む)」及び/又は「comprising(含む)」は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、及び/又は構成要素の存在を指定するが、1つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び/又はそれらの群、の存在又は追加を除外しないことが更に理解されるであろう。
【0059】
用語「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.システム及び環境
【0060】
図1は、様々な実施例に係る、システム100のブロック図を示す。いくつかの実施例では、システム100はデジタルアシスタントを実施し得る。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、口頭及び/又はテキスト形式の自然言語入力を解釈してユーザ意図を推測し、推測されたユーザ意図に基づきアクションを実行する任意の情報処理システムを指してもよい。例えば、推測されたユーザの意図を実行するために、システムは、以下の1つ以上を実行することができる。すなわち、推測されたユーザの意図を実現するために設計されたステップ及びパラメータを有するタスクフローを特定すること、推測されたユーザの意図からの特定の要件をタスクフローに入力すること、プログラム、方法、サービス、APIなどを呼び出すことによりタスクフローを実行すること、並びに可聴(例えば、スピーチ)形式及び/又は視覚形式でユーザへの出力応答を生成すること。
【0061】
具体的には、デジタルアシスタントは、少なくとも部分的に、自然言語コマンド、要求、陳述、叙述、及び/又は照会の形でユーザ要求を受け付ける能力を有することができる。典型的には、ユーザ要求はデジタルアシスタントによる情報回答又はタスクの実行のいずれかを求めることができる。ユーザ要求への満足のいく応答は、要求された情報回答の提供、要求されたタスクの実行、又は両者の組み合わせとなることができる。例えば、ユーザはデジタルアシスタントに「私は今どこにいますか?」などの質問をしてもよい。ユーザの現在の場所に基づき、デジタルアシスタントは、「あなたはセントラルパーク内の西門の近くにいます」と回答してもよい。ユーザは、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティーに招待して下さい」のように、タスク実行を要求してもよい。それに応じて、デジタルアシスタントは、「はい、ただ今」と述べることによって要求を受け取ったことを通知し、次に、ユーザの代わりに、ユーザの電子アドレス帳に載っているユーザの友人の各々に適切なカレンダー招待状を送信してもよい。要求されたタスクの実行中に、デジタルアシスタントは、長期間にわたる複数の情報交換を伴う継続的ダイアログ内でユーザと時折対話することができる。情報又は様々なタスクの実行を要求するためにデジタルアシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントは、他の視覚又はオーディオ形式の応答を、例えば、テキスト、警報、音楽、ビデオ、アニメーション等として、提供することもできる。
【0062】
図1に示すように、いくつかの実施例では、デジタルアシスタントはクライアントサーバモデルに従って実装することができる。デジタルアシスタントは、ユーザデバイス104上で実行されるクライアント側部分102(以後、「DAクライアント102」)、及びサーバシステム108上で実行されるサーバ側部分106(以後「DAサーバ106」)を含むことができる。DAクライアント102は1つ以上のネットワーク110を通してDAサーバ106と通信することができる。DAクライアント102は、ユーザ対応入力及び出力処理、並びにDAサーバ106との通信などのクライアント側機能性を提供することができる。DAサーバ106は、それぞれのユーザデバイス104上に各々常駐する任意の数のDAクライアント102のためのサーバ側機能性を提供し得る。
【0063】
いくつかの実施例では、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はこのような通信を促進することができる。
【0064】
ユーザデバイス104は、任意の好適な電子デバイスであり得る。例えば、ユーザデバイスは、ポータブル多機能デバイス(例えば、
図2Aを参照して以下に説明するデバイス200)、多機能デバイス(例えば、
図4を参照して以下に説明するデバイス400)、又はパーソナル電子デバイス(例えば、
図6A~
図6Bを参照して以下に説明するデバイス600)であり得る。ポータブル多機能デバイスは、例えば、他の機能をも含む携帯電話、例えば、PDA及び/又はミュージックプレーヤ機能、であり得る。ポータブル多機能デバイスの特定の実施例は、Apple Inc.(Cupertino,California)による、iPhone(登録商標)、iPod Touch(登録商標)、及びiPad(登録商標)デバイスを含み得る。ポータブル多機能デバイスの他の実施例は、限定を伴わずに、ラップトップコンピュータ又はタブレットコンピュータを含み得る。更に、いくつかの実施例では、ユーザデバイス104は、非ポータブル多機能デバイスであり得る。特に、ユーザデバイス104は、デスクトップコンピュータ、ゲームコンソール、テレビ、又はテレビセットトップボックスであり得る。いくつかの実施例では、ユーザデバイス104は、タッチ感知面(例えば、タッチスクリーンディスプレイ及び/又はタッチパッド)を含み得る。更に、ユーザデバイス104は、1つ以上の他の物理ユーザインタフェースデバイス、例えば、物理キーボード、マウス、及び/又はジョイスティック、を任意選択的に含み得る。電子デバイスの様々な実施例、例えば、多機能デバイス、を以下に詳細に説明する。
【0065】
通信ネットワーク(単数又は複数)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(登録商標)、又は任意の他の好適な通信プロトコル等の、様々な有線又は無線プロトコルを含む、任意の周知のネットワークプロトコルを用いて実施することができる。
【0066】
サーバシステム108は、1つ以上の独立型データ処理装置、又はコンピュータの分散型ネットワーク上に実施することができる。いくつかの実施例では、サーバシステム108は、また、様々な仮想デバイス及び/又はサードパーティサービスプロバイダ(例えば、サードパーティクラウドサービスプロバイダ)のサービスを利用して、サーバシステム108の基本的なコンピューティングリソース及び/又はインフラストラクチャリソースを提供することができる。
【0067】
いくつかの実施例では、ユーザデバイス104は、DAサーバ106と、第2のユーザデバイス122を介して通信し得る。第2のユーザデバイス122は、ユーザデバイス104と同様であり得る。例えば、第2のユーザデバイス122は、
図2A、
図4、
図6A-Bを参照して以下に説明するデバイス200、400又は600のいずれか1つに類似し得る。ユーザデバイス104は、第2のユーザデバイス122に、直接通信接続、例えば、Bluetooth(登録商標)、NFC、BTLE等を介して、又は、有線ネットワーク又は無線ネットワーク、例えば、ローカルWi-Fi(登録商標)ネットワーク、を介して通信可能に連結するよう構成され得る。いくつかの実施例では、第2のユーザデバイス122は、ユーザデバイス104とDAサーバ106との間のプロキシとして動作するよう構成され得る。例えば、ユーザデバイス104のDAクライアント102は、情報(例えば、ユーザデバイス104にて受信したユーザの要求)を、DAサーバ106に、第2のユーザデバイス122を介して送信するよう構成され得る。DAサーバ106は情報を処理し得、関連データ(例えば、ユーザの要求に応じてのデータコンテンツ)を、ユーザデバイス104に、第2のユーザデバイス122を介して返し得る。
【0068】
いくつかの実施例では、ユーザデバイス104は、データに対する省略された要求を、第2のユーザデバイス122に通信し、ユーザデバイス104から送信する情報量を減らすよう構成され得る。第2のユーザデバイス122は、追加情報を判定し、省略された要求に加えて完全な要求を生成し、DAサーバ106に送信するよう構成され得る。このシステムアーキテクチャは、限られた通信能力及び/又は限られたバッテリ電力を有するユーザデバイス104(例えば、携帯時計又は類似のコンパクト電子デバイス)を、DAサーバ106が提供するサービスに、より強い通信能力及び/又はより大きなバッテリ電力を有する第2のユーザデバイス122(例えば、携帯電話、ラップトップコンピュータ、タブレットコンピュータ等)を、DAサーバ106へのプロキシとして使用して、好適にアクセス可能とし得る。
図1では2つのユーザデバイス104及びユーザデバイス122のみが示されるが、システム100は、DAサーバシステム106と通信するよう、このプロキシ構成に構成された任意の数及び種類のユーザデバイスを含み得ることを理解されたい。
【0069】
図1に示すデジタルアシスタントはクライアント側部分(例えば、DAクライアント102)及びサーバ側部分(例えば、DAサーバ106)の両方を含むことができるが、いくつかの実施例では、デジタルアシスタントの機能は、ユーザデバイス上にインストールされる独立型アプリケーションとして実装することができる。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能の分配は実施態様によって異なり得る。例えば、いくつかの実施例では、DAクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの全ての他の機能をバックエンドサーバに委ねるシンクライアントであり得る。
2.電子デバイス
【0070】
ここで、デジタルアシスタントのクライアント側部分を実装するための電子デバイスの実施形態に注目する。
図2Aは、いくつかの実施形態に係る、タッチ感知ディスプレイシステム212を備えるポータブル多機能デバイス200を示すブロック図である。タッチ感知ディスプレイ212は、便宜上「タッチスクリーン」と呼ばれる場合があり、「タッチ感知ディスプレイシステム」として既知である場合又は呼ばれる場合もある。デバイス200は、メモリ202(任意選択的に、1つ以上のコンピュータ可読記憶媒体を含む)、メモリコントローラ222、1つ以上の処理ユニット(CPU)220、周辺機器インタフェース218、RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、入出力(I/O)サブシステム206、他の入力制御デバイス216、及び外部ポート224を含む。デバイス200は、1つ以上の光センサ264を任意選択的に含む。デバイス200は、デバイス200(例えば、デバイス200のタッチ感知ディスプレイシステム212などのタッチ感知面)上の接触の強度を検出するための、1つ以上の接触強度センサ265を任意選択的に含む。デバイス200は、デバイス200上に触知出力を生成する(例えば、デバイス200のタッチ感知ディスプレイシステム212又はデバイス400のタッチパッド455などの、タッチ感知面上に触知出力を生成する)ための、1つ以上の触知出力生成器267を任意選択的に含む。これらの構成要素は、1つ以上の通信バス又は信号ライン203を介して任意選択的に通信する。
【0071】
本明細書及び特許請求の範囲で使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触(例えば、指接触)の力又は圧力(単位面積当りの力)、あるいはタッチ感知面上の接触の力又は圧力の代替物(代用物)を指す。接触の強度は、少なくとも4つの別個の数値を含み、より典型的には、何百もの異なる数値(例えば、少なくとも256)を含む、数値の範囲を有する。接触の強度は、様々な方法及び様々なセンサ、又はセンサの組み合わせを使用して、任意選択的に、判定(又は、測定)される。例えば、タッチ感知面の下に又は隣接して配置された1つ以上の力センサは、タッチ感知面上の様々な点における力を測定するために、任意選択的に使用される。いくつかの実装において、複数の力センサの力測定値を組み合わせて(例えば、加重平均)、接触力の推定値を判定する。同様に、スタイラスの感圧性先端部を任意選択的に使用して、タッチ感知面上のスタイラスの圧力を判定する。あるいは、タッチ感知面上で検出される接触領域のサイズ及び/又はその変化、接触に近接するタッチ感知面の電気容量及び/又はその変化、並びに/若しくは、接触に近接するタッチ感知面の抵抗及び/又はその変化が、タッチ感知面上の接触の力又は圧力の代替物として、任意選択的に用いられる。いくつかの実装では、接触の力又は圧力の代替的測定値は、強度閾値を超えているか否かを判定するために直接に用いられる(例えば、強度閾値は、代替的測定値に対応する単位で記述される)。いくつかの実装では、接触の力又は圧力の代替的測定値は、推定される力又は圧力に変換され、この推定される力又は圧力を用いて、強度閾値を超えているか否かを判定する(例えば、強度閾値は、圧力の単位で測定された圧力閾値である)。接触の強度をユーザ入力の属性として使用することにより、アフォーダンスを(例えば、タッチ感知ディスプレイ上に)表示するための、及び/又は、ユーザ入力を(例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的/機械的制御部を介して)受信するための、面積が制限されている、低減されたサイズのデバイス上で、他の場合であればユーザによってアクセスすることが不可能であり得る、追加的なデバイス機能への、ユーザのアクセスが可能となる。
【0072】
本明細書及び特許請求の範囲で使用されるとき、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの従前の位置に対するデバイスの物理的変位、デバイスの構成要素(例えば、タッチ感知面)の、デバイスの別の構成要素(例えば、筐体)に対する物理的変位、又はデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素が、タッチに敏感なユーザの表面(例えば、ユーザの手の指、手のひら、又は他の部分)に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性の認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面(例えば、タッチ感知ディスプレイ又はトラックパッド)の移動は、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として任意選択的に解釈される。いくつかの場合、ユーザの動作により物理的に押された(例えば、変位された)タッチ感知面に関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じるであろう。別の例として、タッチ感知面の移動は、タッチ感知面の平滑度に変化がない場合であっても、ユーザによって、そのタッチ感知面の「粗さ」として、任意選択的に解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるものではあるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。したがって、触知出力が、ユーザの特定の感覚認知(例えば、「アップクリック」「ダウンクリック」、「粗さ」)に対応するものと記述される場合、別途記載のない限り、生成された触知出力は、典型的な(又は、平均的な)ユーザの記述された感覚認知を生成するデバイス、又はデバイスの構成要素の物理的変位に対応する。
【0073】
デバイス200は、ポータブル多機能デバイスの一実施例に過ぎず、デバイス200は、示されるものよりも多いか又は少ない構成要素を任意選択的に有するか、2つ以上の構成要素を任意選択的に組み合わせるか、又は構成要素の異なる構成若しくは配置を任意選択的に有することを理解されたい。
図2Aに示す様々な構成要素は、1つ以上の信号処理回路及び/又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの双方の組み合わせで実装される。
【0074】
メモリ202は、1つ以上のコンピュータ可読記憶媒体を含んでよい。このコンピュータ可読記憶媒体は、有形かつ非一時的であってよい。メモリ202は、高速ランダムアクセスメモリを含んでよく、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリもまた含んでよい。メモリコントローラ222は、デバイス200の他の構成要素によるメモリ202へのアクセスを制御してよい。
【0075】
いくつかの実施例では、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、装置、若しくはデバイスから命令を取り出して実行することができる他のシステムなどの、命令実行システム、装置、若しくはデバイスにより使用されるか、又はそれらと関連して使用される、(例えば、以下に説明する方法1200、1300、1400又は1500の態様を実行するための)命令を記憶するために、メモリ202の非一時的コンピュータ可読記憶媒体を用いることができる。他の実施例では、(例えば、以下で説明する方法1200、1300、1400又は1500を実行するための)命令は、サーバシステム108の非一時的コンピュータ可読記憶媒体(図示せず)に記憶されてもよく、あるいはメモリ202の非一時的コンピュータ可読記憶媒体とサーバシステム108の非一時的コンピュータ可読記憶媒体との間で分配されてもよい。本明細書の文脈においては、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、若しくはデバイスによって、又はこれらと共に使用するためのプログラムを収容又は記憶し得る、あらゆる媒体とすることができる。
【0076】
周辺機器インタフェース218を使用して、このデバイスの入力及び出力周辺機器を、CPU220及びメモリ202に連結することができる。1つ以上のプロセッサ220は、デバイス200のための様々な機能を実行しデータ処理を実行するために、メモリ202に記憶された様々なソフトウェアプログラム及び/若しくは命令セットを動作させ、又は実行する。いくつかの実施形態では、周辺機器インタフェース218、CPU220、及びメモリコントローラ222は、チップ204などのシングルチップ上に実装してもよい。いくつかの他の実施形態では、それらは、別個のチップ上に実装してもよい。
【0077】
RF(無線周波数)回路208は、電磁信号とも呼ばれるRF信号を送受信する。RF回路208は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。RF回路208は、任意選択的に、これらの機能を実行するための周知の回路を含み、これは、アンテナシステム、RF送受信機、1つ以上の増幅器、同調器、1つ以上の発振器、デジタル信号プロセッサ、CODECチップセット、加入者識別モジュール(SIM)カード、メモリなどを含むが、これらに限定されない。RF回路208は、ワールドワイドウェブ(WWW)とも呼ばれるインターネット、イントラネット、及び/又は、セルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)及び/又は、メトロポリタンエリアネットワーク(MAN)、などの無線ネットワーク、及び他のデバイスと無線通信によって、任意選択的に通信する。RF回路208は、近距離通信無線などによる近距離無線通信(NFC)フィールドを検出するための周知の回路を任意選択的に含む。無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを、任意選択的に使用する。これらとしては、移動通信用のグローバルシステム(Global System for Mobile Communications、GSM(登録商標))、拡張データGSM環境(Enhanced Data GSM Environment、EDGE)、高速ダウンリンクパケットアクセス(high-speed downlink packet access、HSDPA)、高速アップリンクパケットアクセス(high-speed uplink packet access、HSUPA)、Evolution,Data-Only(EV-DO)、HSPA、HSPA+、2重セルHSPA(Dual-Cell HSPDA、DC-HSPDA)、ロングタームエボリューション(long term evolution、LTE)、近距離通信(near field communication、NFC)、広帯域符号分割多元接続(wideband code division multiple access、W-CDMA)、符号分割多元接続(code division multiple access、CDMA)、時分割多元接続(time division multiple access、TDMA)、Bluetooth(登録商標)、Bluetooth Low Energy(BTLE)、Wireless Fidelity(Wi-Fi)(登録商標)(例えば、IEEE802.11a、IEEE802.11b、IEEE802.11g、IEEE802.11n、及び/又はIEEE802.11ac)、ボイスオーバーインターネットプロトコル(voice over Internet Protocol、VoIP)、Wi-MAX(登録商標)、電子メール用のプロトコル(例えば、インターネットメッセージアクセスプロトコル(Internet message access protocol、IMAP)及び/又はポストオフィスプロトコル(post office protocol、POP))、インスタントメッセージング(例えば、拡張可能メッセージング及びプレゼンスプロトコル(extensible messaging and presence protocol、XMPP)、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル(Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、SIMPLE)、インスタントメッセージング及びプレゼンスサービス(Instant Messaging and Presence Service、IMPS))、及び/又はショートメッセージサービス(Short Message Service、SMS)、あるいは本文書の出願日現在までに未だ開発されていない通信プロトコルを含めた任意の他の好適な通信プロトコル、が挙げられるが、これらに限定されない。
【0078】
オーディオ回路210、スピーカ211、及びマイクロフォン213は、ユーザとデバイス200との間のオーディオインタフェースを提供する。オーディオ回路210は、周辺機器インタフェース218からオーディオデータを受信し、このオーディオデータを電気信号に変換し、この電気信号をスピーカ211に送信する。スピーカ211は、電気信号を人間の可聴音波に変換する。オーディオ回路210は、マイクロフォン213により音波から変換された電気信号もまた受信する。オーディオ回路210は、電気信号をオーディオデータに変換し、処理するためにオーディオデータを周辺機器インタフェース218に送信する。オーディオデータは、周辺機器インタフェース218によって、メモリ202及び/又はRF回路208から取得され、かつ/あるいは、それらに送信されてもよい。いくつかの実施形態では、オーディオ回路210はヘッドセットジャック(例えば、
図3の312)を更に備える。ヘッドセットジャックは、オーディオ回路210と、出力専用ヘッドホン又は出力(例えば、片耳又は両耳用のヘッドホン)及び入力(例えば、マイクロフォン)の双方を有するヘッドセットなどの、取り外し可能なオーディオ入出力周辺機器と、の間のインタフェースを提供する。
【0079】
I/Oサブシステム206は、周辺機器インタフェース218に、タッチスクリーン212及び他の入力制御デバイス216などのデバイス200の入出力周辺機器を連結する。I/Oサブシステム206は、任意選択的に、ディスプレイコントローラ256、光センサコントローラ258、強度センサコントローラ259、触覚フィードバックコントローラ261、及び他の入力若しくは制御デバイスのための1つ以上の入力コントローラ260を含む。1つ以上の入力コントローラ260は、他の入力制御デバイス216との間で、電気信号を受信/送信する。他の入力制御デバイス216は、任意選択的に、物理ボタン(例えば、プッシュボタン、ロッカーボタンなど)、ダイヤル、スライダスイッチ、ジョイスティック、クリックホイールなどを含む。いくつかの代替的実施形態では、入力コントローラ(単数又は複数)260は、任意選択的に、キーボード、赤外線ポート、USBポート、及びマウスなどのポインタデバイスのうちのいずれかに連結される(又は、いずれにも連結されない)。1つ以上のボタン(例えば、
図3の308)は、任意選択的に、スピーカ211及び/又はマイクロフォン213の音量調節のための、アップ/ダウンボタンを含む。1つ以上のボタンは、任意選択的に、プッシュボタン(例えば、
図3の306)を含む。
【0080】
2005年12月23日に出願された、米国特許第7,657,849号である米国特許出願第11/322,549号、「Unlocking a Device by Performing Gestures on an Unlock Image」に記載されているように、プッシュボタンの素早い押し下げにより、タッチスクリーン212のロックを解除するか、又はデバイスのロック解除にタッチスクリーン上のジェスチャを用いる処理を開始してもよい。この特許は、その全体が本明細書において参照により組み込まれている。プッシュボタン(例えば、306)をより長く押し下げることにより、デバイス200の電源をオンオフすることができる。ユーザは、1つ以上のボタンの機能をカスタマイズすることができる。タッチスクリーン212は、仮想又はソフトボタン、及び1つ以上のソフトキーボードを実現するために用いられる。
【0081】
タッチ感知ディスプレイ212は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ256は、タッチスクリーン212から電気信号を受信し、それへ電気信号を送信する。タッチスクリーン212は、ユーザに視覚出力を表示する。この視覚出力としては、グラフィック、テキスト、アイコン、ビデオ、及びそれらの任意の組み合わせ(「グラフィック」と総称される)を挙げることができる。いくつかの実施形態では、視覚出力の一部又は全てはユーザインタフェースオブジェクトに対応してもよい。
【0082】
タッチスクリーン212は、触覚及び/若しくは触感の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有している。タッチスクリーン212及びディスプレイコントローラ256は(メモリ202内の任意の関連モジュール及び/又は命令セットと共に)、タッチスクリーン212上で接触(及び任意の接触の移動又は中断)を検出し、検出された接触をタッチスクリーン212上に表示されたユーザインタフェースオブジェクト(例えば、1つ以上のソフトキー、アイコン、ウェブページ、又は画像)との対話に変換する。例示的な実施形態では、タッチスクリーン212とユーザとの間の接触点は、ユーザの指に対応する。
【0083】
タッチスクリーン212は、LCD(liquid crystal display、液晶ディスプレイ)技術、LPD(light emitting polymer display、発光ポリマーディスプレイ)技術、又はLED(light emitting diode、発光ダイオード)技術を用いてもよいが、他の実施形態では、その他のディスプレイ技術を使用してもよい。タッチスクリーン212及びディスプレイコントローラ256は、現在既知の、又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触、及びその接触のあらゆる移動若しくは中断を検出することができ、これらの技術としては、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術、並びにタッチスクリーン212との1つ以上の接触点を判定するための他の近接センサアレイ又は他の要素が挙げられるが、これらに限定されない。例示的な実施形態では、California州CupertinoのApple Inc.によるiPhone(登録商標)及びiPod Touch(登録商標)において見られるような、投影型相互静電容量感知技術が使用されている。
【0084】
タッチスクリーン212のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の米国特許第6,323,846号(Westermanら)、第6,570,557号(Westermanら)、及び/又は第6,677,932号(Westerman)、及び/又は米国特許出願公開第2002/0015024(A1)号に記載されているマルチタッチ感知タッチパッドに類似し得る。これらの文献は、それぞれその全体が本明細書において参照により組み込まれている。ただし、タッチスクリーン212はデバイス200からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【0085】
タッチスクリーン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」。これらの出願の全ては、全体が参照により本明細書に組み込まれる。
【0086】
タッチスクリーン212は、100dpiを超えるビデオ解像度を有し得る。いくつかの実施形態では、タッチスクリーンは約160dpiのビデオ解像度を有する。ユーザは、スタイラス、指などの任意の好適な物体又は付属物を使用して、タッチスクリーン212と接触することができる。いくつかの実施形態では、ユーザインタフェースは、主として指に基づく接触及びジェスチャによって機能するように設計され、タッチスクリーン上の指の接触面積が広いことにより、スタイラスに基づく入力よりも精度が低いことがある。いくつかの実施形態では、デバイスは、指に基づく粗い入力を正確なポインタ/カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【0087】
いくつかの実施形態では、タッチスクリーンに加えて、デバイス200は、特定の機能をアクティブ又は非アクティブにするためのタッチパッド(図示せず)を含んでもよい。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しない、デバイスのタッチ感知領域である。タッチパッドは、タッチスクリーン212とは別個のタッチ感知面、又はタッチスクリーンによって形成されるタッチ感知面の拡張部とすることができる。
【0088】
デバイス200はまた、様々な構成要素に電力を供給するための電力システム262をも含む。電力システム262は、電力管理システム、1つ以上の電源(例えば、バッテリ、交流(AC))、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ(例えば、発光ダイオード(LED))、並びにポータブルデバイスにおける電力の生成、管理、及び分配に関連する任意の他の構成要素を含んでもよい。
【0089】
デバイス200はまた、1つ以上の光センサ264を含んでもよい。
図2Aは、I/Oサブシステム206内の光センサコントローラ258に連結された光センサを示す。光センサ264は、電荷結合デバイス(CCD)又は相補的金属酸化物半導体(CMOS)フォトトランジスタを含んでもよい。光センサ264は、1つ以上のレンズを通して投影された、環境からの光を受光し、その光を、画像を表すデータに変換する。撮像モジュール243(カメラモジュールとも呼ばれる)と連携して、光センサ264は静止画像又はビデオをキャプチャすることができる。いくつかの実施形態では、タッチスクリーンディスプレイを静止画像及び/又はビデオ画像取得のためのビューファインダとして使用することができるように、デバイスの前面のタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に光センサが配置されている。いくつかの実施形態では、ユーザが他のテレビ会議参加者をタッチスクリーンディスプレイ上で見るのと同時に、そのユーザの画像をテレビ会議のために得ることができるように、デバイスの前面に光センサが配置されている。いくつかの実施形態では、光センサ264の位置は、ユーザによって(例えば、デバイス筐体内のレンズ及びセンサを回転させることによって)変更することができ、それにより、テレビ会議並びに静止画像及び/又はビデオ画像の取得の双方のために、単一の光センサ264を、タッチスクリーンディスプレイと共に使用することができる。
【0090】
デバイス200はまた、1つ以上の接触強度センサ265も任意選択的に含む。
図2Aは、I/Oサブシステム206内の強度センサコントローラ259に連結された、接触強度センサを示す。接触強度センサ265は、1つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ(例えば、タッチ感知面上の接触の力(又は圧力)を測定するために使用するセンサ)を、任意選択的に含む。接触強度センサ265は、環境から接触強度情報(例えば、圧力情報又は圧力情報の代用物)を受信する。いくつかの実施形態では、少なくとも1つの接触強度センサが、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)に配置されているか、又は、それに近接している。いくつかの実施形態において、少なくとも1つの接触強度センサが、デバイス200の前面に配置されたタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置されている。
【0091】
デバイス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をオフにして無効化する。
【0092】
デバイス200はまた、1つ以上の触知出力生成器267も任意選択的に含む。
図2Aは、I/Oサブシステム206内の触覚フィードバックコントローラ261に連結された、触知出力生成器を示す。触知出力生成器267は、スピーカ又は他のオーディオ構成要素などの1つ以上の電気音響デバイス、及び/又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素(例えば、デバイス上で電気信号を触知出力に変換する構成要素)などの、エネルギーを直線運動に変換する電気機械デバイスを、任意選択的に含む。接触強度センサ265は、触覚フィードバックモジュール233から触覚フィードバック生成命令を受信し、デバイス200のユーザが感知できる触知出力をデバイス200上で生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器は、タッチ感知面(例えば、タッチ感知ディスプレイシステム212)に併置されているか、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向(例えば、デバイス200の表面の内/外)に、又は横方向(例えば、デバイス200の表面と同じ平面内の前後)に動かすことによって、触知出力を生成する。いくつかの実施形態では、少なくとも1つの触知出力生成器センサは、デバイス200の前面に配置されたタッチスクリーンディスプレイ212の反対側である、デバイス200の背面に配置されている。
【0093】
デバイス200はまた、1つ以上の加速度計268も含み得る。
図2Aは、周辺機器インタフェース218に連結された加速度計268を示す。あるいは、加速度計268は、I/Oサブシステム206内の入力コントローラ260に連結されてもよい。加速度計268は、米国特許出願公開第20050190059号明細書、「Acceleration-based Theft Detection System for Portable Electronic Devices」、及び同第20060017692号明細書、「Methods And Apparatuses For Operating A Portable Device Based On An Accelerometer」で説明されるように機能し得るものであり、これらの文献の双方は、全体が参照により本明細書に組み込まれる。いくつかの実施形態では、情報は、1つ以上の加速度計から受信したデータの分析に基づいて、縦長表示又は横長表示でタッチスクリーンディスプレイ上に表示される。デバイス200は、加速度計(単数又は複数)268に加えて、磁気計(図示せず)並びにデバイス200の位置及び向き(例えば、縦長又は横長)に関する情報を取得するためのGPS(又はGLONASS又は他のグローバルナビゲーションシステム)受信部(図示せず)を、任意選択的に含む。
【0094】
いくつかの実施形態では、メモリ202に記憶されたソフトウェアコンポーネントは、オペレーティングシステム226、通信モジュール(又は命令セット)228、接触/動きモジュール(又は命令セット)230、グラフィックモジュール(又は命令セット)232、テキスト入力モジュール(又は命令セット)234、全地球測位システム(GPS)モジュール(又は命令セット)235、デジタルアシスタントクライアントモジュール229、及びアプリケーション(又は命令セット)236を含む。更に、メモリ202は、データ及びモデル、例えば、ユーザデータ及びモデル231を記憶し得る。更に、いくつかの実施形態では、
図2A及び
図4に示すように、メモリ202(
図2A)又はメモリ470(
図4)は、デバイス/グローバル内部状態257を記憶する。デバイス/グローバル内部状態257は、以下の1つ以上を含む:現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示す、アクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ212の様々な領域を占領しているかを示す、表示状態、デバイスの様々なセンサ及び入力制御デバイス216から得られる情報を含む、センサ状態、及び、デバイスの位置及び/又は姿勢に関する位置情報。
【0095】
オペレーティングシステム226(例えば、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、OS X(登録商標)、iOS(登録商標)、WINDOWS(登録商標)、又はVxWorks(登録商標)などの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェアコンポーネント及び/又はドライバを含み、様々なハードウェアコンポーネントとソフトウェアコンポーネントとの間の通信を容易にする。
【0096】
通信モジュール228は、1つ以上の外部ポート224を通して、他のデバイスとの通信を容易にし、RF回路208及び/又は外部ポート224が受信したデータを処理するための様々なソフトウェアコンポーネントをも含む。外部ポート224(例えば、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)など)は、直接的に、又はネットワーク(例えば、インターネット、無線LANなど)を通して間接的に、他のデバイスに連結するように適応している。いくつかの実施形態では、外部ポートは、iPod(登録商標)(Apple Inc.の商標)デバイス上で使用される30ピンコネクタと同じか、若しくは同様のマルチピン(例えば、30ピン)コネクタ、及び/又は互換性のあるマルチピン(例えば、30ピン)コネクタである。
【0097】
接触/動きモジュール230は、任意選択的に、(ディスプレイコントローラ256と連携して)タッチスクリーン212との接触、及び他のタッチ感知デバイス(例えば、タッチパッド又は物理クリックホイール)との接触を検出する。接触/動きモジュール230は、接触が生じたか否かを判定すること(例えば、指を下ろすイベントを検出すること)、接触の強度(例えば、接触の力若しくは圧力、又は、接触の力若しくは圧力の代替物)を判定すること、接触の移動が存在するか否かを判定し、タッチ感知面を横断する移動を追跡すること(例えば、指をドラッグする1つ以上のイベントを検出すること)、及び接触が停止したか否かを判定すること(例えば、指を上げるイベント又は接触の中断を検出すること)などの、接触の検出に関する様々な動作を実行するための、様々なソフトウェアコンポーネントを含む。接触/動きモジュール230は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、接触点の速さ(大きさ)、速度(大きさ及び方向)、及び/又は加速度(大きさ及び/又は方向の変化)を判定することを任意選択的に含む。これらの動作は、任意選択的に、単一の接触(例えば、1本の指の接触)又は複数の同時接触(例えば、「マルチタッチ」/複数の指の接触)に適用される。いくつかの実施形態では、接触/動きモジュール230及びディスプレイコントローラ256は、タッチパッド上の接触を検出する。
【0098】
いくつかの実施形態では、接触/動きモジュール230は、ユーザによって動作が実行されたか否かを判定するための(例えば、ユーザがアイコン上で「クリック」したか否かを判定するための)、1つ以上の強度閾値のセットを使用する。いくつかの実施形態において、少なくとも強度閾値のサブセットが、ソフトウェアパラメータに従って判定される(例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス200の物理ハードウェアを変更することなく調整し得る)。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく広範囲の既定の閾値のうちのいずれかに設定することができる。更に、いくつかの実装では、デバイスのユーザには、(例えば、個々の強度閾値を調整することにより、及び/又は、システムレベルのクリック「強度」パラメータにより、一度に複数の強度閾値を調整することによって)強度閾値のセットのうちの1つ以上を調整するためのソフトウェア設定が提供される。
【0099】
接触/動きモジュール230は任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン(例えば、異なる動き、タイミング、及び/又は検出される接触の強度)を有する。したがって、ジェスチャは、特定の接触パターンを検出することによって、任意選択的に検出される。例えば、指のタップジェスチャを検出することは、(例えば、アイコンの位置での)指を下ろすイベントを検出し、続いてその指を下ろすイベントと同じ位置(又は、実質的に同じ位置)で指を上げる(リフトオフ)イベントを検出することを含む。別の実施例として、タッチ感知面上での指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、1つ以上の、指をドラッグするイベントを検出し、その後、続いて指を上げる(リフトオフ)イベントを検出することを含む。
【0100】
グラフィックモジュール232は、表示されるグラフィックの視覚的効果(例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性)を変更するための構成要素を含めた、タッチスクリーン212又は他のディスプレイ上にグラフィックをレンダリングして表示するための、様々な既知のソフトウェアコンポーネントを含む。本明細書にて使用されるとき、用語「グラフィック」は、ユーザに対して表示することができる任意のオブジェクトを含み、これらのオブジェクトとしては、テキスト、ウェブページ、アイコン(ソフトキーを含むユーザインタフェースオブジェクトなど)、デジタル画像、ビデオ、アニメーションなどが挙げられるが、これらに限定されない。
【0101】
いくつかの実施形態では、グラフィックモジュール232は、使用されるグラフィックを表すデータを記憶する。各グラフィックには、対応するコードが、任意選択的に割り当てられる。グラフィックモジュール232は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に、表示されるグラフィックを指定する1つ以上のコードを受信し、次にディスプレイコントローラ256に出力するスクリーン画像データを生成する。
【0102】
触覚フィードバックモジュール233は、デバイス200とのユーザ対話に応じて、デバイス200上の1つ以上の場所で触知出力を生成するために、触知出力生成器(単数又は複数)267によって使用される命令を生成するための、様々なソフトウェアコンポーネントを含む。いくつかの実施形態では、イベントモニタ271は、所定の間隔で周辺機器インタフェース218に要求を送信する。これに応じて、周辺機器インタフェース218はイベント情報を送信する。他の実施形態では、周辺機器インタフェース218は、重要なイベント(例えば、所定のノイズ閾値を上回り、かつ/又は所定の持続時間を超えた入力を受信すること)が存在する場合にのみ、イベント情報を送信する。
【0103】
テキスト入力モジュール234は、グラフィックモジュール232の構成要素であってもよく、様々なアプリケーション(例えば、連絡先237、電子メール240、IM241、ブラウザ247、及び、テキスト入力を必要とする任意の他のアプリケーション)でテキストを入力するための、ソフトキーボードを提供する。
【0104】
GPSモジュール235は、デバイスの位置を判定し、この情報を、様々なアプリケーションでの使用のために提供する(例えば、位置に基づいての電話での使用のために電話238へ、写真/ビデオメタデータとしてカメラ243へ、及び、気象ウィジェット、ローカルイエローページウィジェット、及び地図/ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ)。
【0105】
デジタルアシスタントクライアントモジュール229は様々なクライアント側デジタルアシスタント命令を含み得て、デジタルアシスタントのクライアント側機能性を提供する。例えば、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なユーザインタフェース(例えば、マイクロフォン213、加速度計(単数又は複数)268、タッチ感知ディスプレイシステム212、光センサ(単数又は複数)229、他の入力制御デバイス216等)を通しての声の入力(例えば、音声入力)、テキスト入力、タッチ入力、及び/又はジェスチャ入力を受信可能であり得る。デジタルアシスタントクライアントモジュール229はまた、ポータブル多機能デバイス200の様々な出力インタフェース(例えば、スピーカ211、タッチ感知ディスプレイシステム212、触知出力生成器(単数又は複数)267等)を通しての、オーディオ(例えば、音声出力)、視覚、及び/又は触知の形態での出力を提供可能であり得る。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び/又は上記の2つ以上の組み合わせとして提供されてもよい。動作時、デジタルアシスタントクライアントモジュール229は、RF回路208を用いてDAサーバ106と通信し得る。
【0106】
ユーザデータ及びモデル231は、ユーザに関連付けられた様々なデータ(例えば、ユーザ特有の語彙データ、ユーザ嗜好性データ、ユーザ特有の名前の発音、ユーザの電子アドレス帳からのデータ、to doリスト、買い物リスト等)を含み得て、デジタルアシスタントのクライアント側機能性を提供する。更に、ユーザデータ及びモデル231は、ユーザ入力を処理し、ユーザの意図を判定するための様々なモデル(例えば、音声認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデル等)を含み得る。
【0107】
いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、ポータブル多機能デバイス200の様々なセンサ、サブシステム、及び周辺機器を使用し得て、ポータブル多機能デバイス200の周囲環境から追加情報を収集し、ユーザ、現在のユーザ対話及び/又は現在のユーザ入力に関連付けられたコンテキストを確立する。いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、ユーザの意図の推測を助けるために、ユーザ入力と共にコンテキスト情報又はそのサブセットをDAサーバ106に提供することができる。いくつかの実施例では、デジタルアシスタントはまた、ユーザへの出力をどのように準備し、配信するかを決定するために、コンテキスト情報を用いることができる。コンテキスト情報は、コンテキストデータとも呼ばれ得る。
【0108】
いくつかの実施例では、ユーザ入力に伴うコンテキスト情報は、センサ情報、例えば、周囲環境の照明、周囲ノイズ、周囲温度、画像又は映像等を含み得る。いくつかの実施例では、コンテキスト情報は、デバイスの物理状態、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速度、加速度、運動パターン、セルラー信号強度等をも含み得る。いくつかの実施例では、DAサーバ106のソフトウェア状態、例えば、稼働中のプロセス、インストール済みのプログラム、過去と現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量、等、及びポータブル多機能デバイス200のソフトウェア状態に関係する情報が、DAサーバ106に、ユーザ入力に関連付けられたコンテキスト情報として提供され得る。
【0109】
いくつかの実施例では、デジタルアシスタントクライアントモジュール229は、DAサーバ106からの要求に応じて、ポータブル多機能デバイス200上に記憶されている情報(例えば、ユーザデータ231)を選択的に提供することができる。いくつかの実施例では、デジタルアシスタントクライアントモジュール229はまた、DAサーバ106による要求に応じて、自然言語ダイアログ又は他のユーザインタフェースを介してユーザから追加入力を引き出すことができる。デジタルアシスタントクライアントモジュール229は、意図推論及び/又はユーザ要求内に表されているユーザの意図の履行においてDAサーバ106を助けるために、追加入力をDAサーバ106に渡すことができる。
【0110】
デジタルアシスタントの更なる詳細を、
図7A~
図7Cを参照して以下に説明する。デジタルアシスタントクライアントモジュール229が、以下に説明するデジタルアシスタントモジュール726の任意の数のサブモジュールを含み得ることを認識されたい。
【0111】
アプリケーション236は、以下のモジュール(又は、命令セット)、又はそれらのサブセット若しくはスーパーセットを含み得る。
●連絡先モジュール237(ときには、アドレス帳又は連絡先リストとも呼ぶ)、
●電話モジュール238、
●テレビ会議モジュール239、
●電子メールクライアントモジュール240、
●インスタントメッセージング(IM)モジュール241、
●トレーニングサポートモジュール242、
●静止画像及び/又はビデオ画像用のカメラモジュール243、
●画像管理モジュール244、
●ビデオプレーヤモジュール、
●ミュージックプレーヤモジュール、
●ブラウザモジュール247、
●カレンダーモジュール248、
●気象ウィジェット249-1、株式ウィジェット249-2、電卓ウィジェット249-3、アラーム時計ウィジェット249-4、辞書ウィジェット249-5、及びユーザが取得した他のウィジェット、並びにユーザ作成ウィジェット249-6のうちの1つ以上を含んでよいウィジェットモジュール249、
●ユーザ作成ウィジェット249-6を作成するためのウィジェットクリエータモジュール250、
●検索モジュール251
●ビデオプレーヤモジュール及びミュージックプレーヤモジュールを統合した、ビデオ及びミュージックプレーヤモジュール252
●メモモジュール253、
●マップモジュール254、及び/又は
●オンラインビデオモジュール255。
【0112】
メモリ202内に記憶することができる他のアプリケーション236の例としては、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、JAVA(登録商標)対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製が挙げられる。
【0113】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、連絡先モジュール237は、(例えば、メモリ202又はメモリ470内の連絡先モジュール237のアプリケーション内部状態292に記憶される)アドレス帳又は連絡先リストを管理するために用いられる。この管理することとしては、アドレス帳に名前(単数又は複数)を加えること、アドレス帳から名前(単数又は複数)を削除すること、電話番号(単数又は複数)、メールアドレス(単数又は複数)、住所(単数又は複数)、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類して並べ替えること、電話番号又は電子メールアドレスを提供して、電話238、テレビ会議モジュール239、電子メール240、若しくはIM241による通信を開始する及び/又は容易にすること、などが含まれる。
【0114】
RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、電話モジュール238は、電話番号に対応する一連の文字を入力し、連絡先モジュール237内の1つ以上の電話番号にアクセスし、入力された電話番号を修正し、対応する電話番号をダイヤルし、会話を行い、そして、会話が完了した際に接続を切るか又は電話を切るために、使用することができる。上述のように、無線通信は、複数の通信規格、通信プロトコル、及び通信技術のうちのいずれかを使用することができる。
【0115】
RF回路208、オーディオ回路210、スピーカ211、マイクロフォン213、タッチスクリーン212、ディスプレイコントローラ256、光センサ264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、連絡先モジュール237、及び電話モジュール238と連携して、テレビ会議モジュール239は、ユーザの命令に従って、ユーザと1人以上の他の参加者との間のテレビ会議を開始し、遂行し、終了するための、実行可能な命令を含む。
【0116】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、電子メールクライアントモジュール240は、ユーザの命令に応答して、電子メールを作成し、送信し、受信し、管理するための、実行可能な命令を含む。画像管理モジュール244と連携した電子メールクライアントモジュール240により、カメラモジュール243で撮影した静止画像又はビデオ画像を添付した電子メールを作成して送信することが非常に容易になる。
【0117】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、インスタントメッセージングモジュール241は、インスタントメッセージに対応する文字列を入力したり、入力済みの文字を修正したり、(例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス(SMS)若しくはマルチメディアメッセージサービス(MMS)プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのXMPP、SIMPLE、若しくはIMPSを使用して)対応するインスタントメッセージを送信したり、インスタントメッセージを受信してその受信したインスタントメッセージを表示したりするための、実行可能な命令を含む。いくつかの実施形態では、送信及び/又は受信されるインスタントメッセージは、MMS及び/又は拡張メッセージングサービス(Enhanced Messaging Service、EMS)でサポートされるような、グラフィック、写真、オーディオファイル、ビデオファイル、及び/又は他の添付ファイルを含んでもよい。本明細書で使用するとき、「インスタントメッセージング」とは、電話ベースのメッセージ(例えば、SMS又はMMSを使用して送信されるメッセージ)及びインターネットベースのメッセージ(例えば、XMPP、SIMPLE、又はIMPSを使用して送信されるメッセージ)の双方を示す。
【0118】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、地図モジュール254、及びミュージックプレーヤモジュールと連携して、トレーニングサポートモジュール242は、次のための実行可能な命令を含む:(例えば、時間、距離、及び/又はカロリー消費目標を有する)トレーニングを作成することと、トレーニングセンサ(スポーツデバイス)と通信することと、トレーニングセンサデータを受信することと、トレーニングをモニタするために使用されるセンサを較正することと、トレーニングのための音楽を選択し、再生することと、トレーニングデータを表示し、記憶し、送信すること。
【0119】
タッチスクリーン212、ディスプレイコントローラ256、光センサ(単数又は複数)264、光センサコントローラ258、接触/動きモジュール230、グラフィックモジュール232、及び画像管理モジュール244と連携して、カメラモジュール243は、静止画像又は(ビデオストリームを含む)ビデオをキャプチャしてメモリ202にそれらを記憶する、静止画像又はビデオの特性を変更する、又はメモリ202から静止画像若しくはビデオを削除するための、実行可能な命令を含む。
【0120】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びカメラモジュール243と連携して、画像管理モジュール244は、静止画像及び/又はビデオ画像を配置する、修正し(例えば、編集し)及び別の方法で操作する、ラベルを付け、削除する、(例えば、デジタルスライドショー又はアルバムにおいて)提示する、又は記憶したりするための、実行可能な命令を含む。
【0121】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、ブラウザモジュール247は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付及び他のファイルを検索し、リンク付け、受信し、表示することを含むユーザの命令に従い、インターネットをブラウズするための、実行可能な命令を含む。
【0122】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と関連して、カレンダーモジュール248は、ユーザの命令に従い、カレンダー及びカレンダーに関連付けられたデータ(例えば、カレンダー項目、すべきことのリストなど)を作成し、表示し、変更し、記憶するための実行可能命令を含む。
【0123】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びブラウザモジュール247と連携して、ウィジェットモジュール249は、ユーザによってダウンロードされ、使用することが可能なミニアプリケーション(例えば、気象ウィジェット249-1、株式ウィジェット249-2、計算機ウィジェット249-3、アラーム時計ウィジェット249-4、及び辞書ウィジェット249-5)、又はユーザによって作成することが可能なミニアプリケーション(例えば、ユーザ作成ウィジェット249-6)である。いくつかの実施形態では、ウィジェットは、HTML(ハイパーテキストマークアップ言語)ファイル、CSS(カスケーディングスタイルシート)ファイル、及びJavaScript(登録商標)ファイルを含む。いくつかの実施形態では、ウィジェットは、XML(拡張可能マークアップ言語)ファイル及びJavaScriptファイル(例えば、Yahoo!(登録商標)ウィジェット)を含む。
【0124】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、及びブラウザモジュール247と連携して、ウィジェットクリエータモジュール250は、ウィジェットを作成する(例えば、ウェブページのユーザ指定箇所をウィジェットに変える)ために、ユーザによって使用することができる。
【0125】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、検索モジュール251は、ユーザの命令に従い、1つ以上の検索基準(例えば、1つ以上のユーザ指定の検索語句)と一致する、メモリ202内のテキスト、音楽、音、画像、ビデオ、及び/又は他のファイルを検索するための、実行可能な命令を含む。
【0126】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィクモジュール232、オーディオ回路210、スピーカ211、RF回路208、及びブラウザモジュール247と連携して、ビデオ及びミュージックプレーヤモジュール252は、MP3又はAACファイルなどの1つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できるようにする実行可能な命令、並びにビデオを(タッチスクリーン212上又は外部ポート224を介して接続された外部のディスプレイ上に)表示、提示、又は別の方法で再生するための、実行可能な命令を含む。いくつかの実施形態では、デバイス200は、任意選択的に、iPod(Apple Inc.の商標)などのMP3プレーヤの機能を備える。
【0127】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、及びテキスト入力モジュール234と連携して、メモモジュール253は、ユーザの命令に従って、メモ、to doリストなどを作成及び管理するための、実行可能な命令を含む。
【0128】
RF回路208、タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、テキスト入力モジュール234、GPSモジュール235、及びブラウザモジュール247と連携して、地図モジュール254は、ユーザの命令に従って、地図、及び地図に関連付けられたデータ(例えば、運転方向、特定の場所若しくはその付近の店舗及び他の関心対象地点についてのデータ、並びに位置に基づく他のデータ)を受信し、表示し、修正し、記憶するために使用することができる。
【0129】
タッチスクリーン212、ディスプレイコントローラ256、接触/動きモジュール230、グラフィックモジュール232、オーディオ回路210、スピーカ211、RF回路208、テキスト入力モジュール234、電子メールクライアントモジュール240、及びブラウザモジュール247と連携して、オンラインビデオモジュール255は、ユーザがH.264などの1つ以上のファイル形式のオンラインビデオにアクセスし、閲覧し、(例えば、ストリーミング及び/又はダウンロードにより)受信し、(例えば、タッチスクリーン上で又は外部ポート224を介して接続された外部のディスプレイ上で)再生し、特定のオンラインビデオへのリンクを含む電子メールを送信し、別の方法で管理することが可能となる命令を含む。いくつかの実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール240ではなく、インスタントメッセージングモジュール241が使用される。オンラインビデオアプリケーションの追加の説明は、2007年6月20日に出願された米国特許仮出願第60/936,562号明細書、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」、及び2007年12月31日に出願された米国特許出願第11/968,067号明細書、「Portable Multifunction Device,Method,and Graphical User Interface for Playing Online Videos」に見出すことができ、これらの出願の内容はその全体が本明細書において参照により組み込まれている。
【0130】
上記で特定されたモジュール及びアプリケーションのそれぞれは、1つ以上の上記の機能を実行するための実行可能な命令セット及び本出願に記載の方法(例えば、コンピュータにより実行される方法及び本明細書に記載の他の情報処理方法)に対応する。これらのモジュール(例えば、命令のセット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。例えば、ビデオプレーヤモジュールは、ミュージックプレーヤモジュールと組み合わせて、単一のモジュール(例えば、
図2Aのビデオ及びミュージックプレーヤモジュール252)としてもよい。いくつかの実施形態では、メモリ202は、上記で特定されたモジュール及びデータ構造のサブセットを記憶することができる。更に、メモリ202は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【0131】
いくつかの実施形態では、デバイス200は、デバイス上の機能の既定のセットの動作がタッチスクリーン及び/又はタッチパッドのみを介して実行されるデバイスである。デバイス200の動作に関する主要な入力制御デバイスとしてタッチスクリーン及び/又はタッチパッドを使用することによって、デバイス200上の(プッシュボタン、ダイヤルなどの)物理入力制御デバイスの数を低減することができる。
【0132】
タッチスクリーン及び/又はタッチパッドのみを介して実行される、既定の機能のセットは、任意選択的に、ユーザインタフェース間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされると、デバイス200上に表示される任意のユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューへデバイス200をナビゲートする。そのような実施形態では、「メニューボタン」はタッチパッドを使って実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理プッシュボタン又は他の物理入力制御デバイスである。
【0133】
図2Bは、いくつかの実施形態に係る、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ202(
図2A)又はメモリ470(
図4)は、イベントソート部270(例えば、オペレーティングシステム226内)及び対応するアプリケーション236-1(例えば、上述のアプリケーション237~アプリケーション251、アプリケーション255、アプリケーション480~アプリケーション490のうちのいずれか)を含む。
【0134】
イベントソート部270は、イベント情報を受信し、イベント情報を配信するアプリケーション236-1及びアプリケーション236-1のアプリケーションビュー291を決定する。イベントソート部270は、イベントモニタ271及びイベントディスパッチャモジュール274を含む。いくつかの実施形態では、アプリケーション236-1は、アプリケーションがアクティブ又は実行中のとき、タッチ感知ディスプレイ212上に表示される現在のアプリケーションビュー(単数又は複数)を示す、アプリケーション内部状態292を含む。いくつかの実施形態では、デバイス/グローバル内部状態257は、いずれのアプリケーション(単数又は複数)が現在アクティブであるかを判定するためにイベントソート部270によって使用され、アプリケーション内部状態292は、イベント情報の配信先となるアプリケーションビュー291を決定するためにイベントソート部270によって使用される。
【0135】
いくつかの実施形態では、アプリケーション内部状態292は、アプリケーション236-1が実行を再開する際に使用される再開情報、アプリケーション236-1によって情報が表示されているか又は表示の準備が整っていることを示すユーザインタフェース状態情報、ユーザがアプリケーション236-1の以前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ/アンドゥ待ち行列、のうちの1つ以上などの追加情報を含む。
【0136】
イベントモニタ271は、周辺機器インタフェース218からイベント情報を受信する。イベント情報は、サブイベント(例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ212上でのユーザのタッチ)についての情報を含む。周辺機器インタフェース218は、I/Oサブシステム206、又は近接センサ266、加速度計(単数又は複数)268、及び/若しくは(オーディオ回路210を介する)マイクロフォン213などのセンサから受信する情報を送信する。周辺機器インタフェース218がI/Oサブシステム206から受信する情報は、タッチ感知ディスプレイ212又はタッチ感知面からの情報を含む。
【0137】
いくつかの実施形態では、イベントソート部270はまた、ヒットビュー判定モジュール272及び/又はアクティブイベント認識部判定モジュール273も含む。
【0138】
ヒットビュー判定モジュール272は、タッチ感知ディスプレイ212が2つ以上のビューを表示する場合に、サブイベントが1つ以上のビュー内のいずれの場所で発生したかを判定するための、ソフトウェア手順を提供する。ビューは、制御部及びユーザがディスプレイ上で見ることが可能な他の要素で構成される。
【0139】
アプリケーションに関連付けられたユーザインタフェースの別の態様は、本明細書では、アプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合がある、ビューのセットであり、それらの中で情報が表示され、タッチに基づくジェスチャが生じる。タッチが検出される(対応するアプリケーションの)アプリケーションビューは、そのアプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応し得る。例えば、タッチが検出される最下位レベルのビューを、ヒットビューと呼ぶことができ、適切な入力として認識されるイベントのセットは、少なくとも部分的には、タッチに基づくジェスチャを始める最初のタッチのヒットビューに基づいて、判定することができる。
【0140】
ヒットビュー判定モジュール272は、タッチベースのジェスチャのサブイベントと関連する情報を受信する。アプリケーションが、階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール272は、そのサブイベントを処理すべき階層内の最下位のビューとしての、ヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント(例えば、イベント又は潜在的なイベントを形成するサブイベントのシーケンスにおける最初のサブイベント)が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュール272によって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同じタッチ又は入力ソースに関連する全てのサブイベントを受信する。
【0141】
アクティブイベント認識部判定モジュール273は、ビュー階層内のどのビュー(単数又は複数)がサブイベントの特定のシーケンスを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール273は、ヒットビューのみがサブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール273は、サブイベントの物理位置を含む全てのビューはアクティブに関わっているビューであると判定し、したがって、全てのアクティブに関わっているビューは、サブイベントの特定のシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントがある特定のビューに関連付けられた領域に完全に限定されたとしても、階層の上位のビューは、依然としてアクティブに関わっているビューであり続ける。
【0142】
イベントディスパッチャモジュール274は、イベント情報をイベント認識部(例えば、イベント認識部280)に送信する。アクティブイベント認識部判定モジュール273を含む実施形態において、イベントディスパッチャモジュール274は、アクティブイベント認識部判定モジュール273により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール274は、対応するイベント受信部282により取得されるイベント情報をイベント待ち行列に記憶する。
【0143】
いくつかの実施形態では、オペレーティングシステム226は、イベントソート部270を含む。あるいは、アプリケーション236-1が、イベントソート部270を含む。更に他の実施形態では、イベントソート部270は、スタンドアロンモジュール、又は接触/動きモジュール230などの、メモリ202に記憶された別のモジュールの一部である。
【0144】
いくつかの実施形態では、アプリケーション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に含まれる。
【0145】
それぞれのイベント認識部280は、イベントソート部270からイベント情報(例えば、イベントデータ279)を受信して、そのイベント情報からイベントを特定する。イベント認識部280は、イベント受信部282及びイベント比較部284を含む。いくつかの実施形態では、イベント認識部280は更に、メタデータ283及びイベント配信命令288(サブイベント配信命令を含んでいてもよい)の少なくとも部分集合を含む。
【0146】
イベント受信部282は、イベントソート部270からイベント情報を受信する。このイベント情報は、サブイベントについての情報、例えば、タッチ又はタッチの移動についての情報を含む。サブイベントによっては、イベント情報はまた、サブイベントの場所などの追加情報も含む。サブイベントが、タッチの動きに関係する場合、イベント情報はまた、そのサブイベントの速度及び方向も含み得る。いくつかの実施形態では、イベントは、1つの向きから別の向きへの(例えば、縦向きから横向きへの、又はその逆の)デバイスの回転を含み、そのイベント情報は、デバイスの現在の向き(デバイスの姿勢とも呼ばれる)についての対応する情報を含む。
【0147】
イベント比較部284は、イベント情報を既定のイベント又はサブイベントの定義と比較し、その比較に基づいて、イベント又はサブイベントを判定する、あるいはイベント又はサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部284は、イベント定義286を含む。イベント定義286は、例えば、イベント1(287-1)、イベント2(287-2)などの、イベントの定義(例えば、サブイベントの既定のシーケンス)を含む。いくつかの実施形態では、イベント(287)内のサブイベントは、例えば、タッチ開始、タッチ終了、タッチの移動、タッチの中止、及び複数のタッチを含む。ある実施例では、イベント1(287-1)の定義は、表示されたオブジェクト上のダブルタップである。このダブルタップは、例えば、所定の段階に関する表示オブジェクト上での第1のタッチ(タッチの開始)、所定の段階に関する第1のリフトオフ(タッチの終了)、所定の段階に関する表示オブジェクト上での第2のタッチ(タッチの開始)、及び所定の段階に関する第2のリフトオフ(タッチの終了)を含む。別の実施例では、イベント2(287-2)の定義は、表示されたオブジェクト上のドラッグ操作である。このドラッグ操作は、例えば、所定の段階に関する表示オブジェクト上でのタッチ(又は、接触)、タッチ感知ディスプレイ212を横断するタッチの移動、及びタッチのリフトオフ(タッチの終了)を含む。いくつかの実施形態では、イベントはまた、1つ以上の関連付けられたイベント処理部290に関する情報も含む。
【0148】
いくつかの実施形態では、イベント定義287は、それぞれのユーザインタフェースオブジェクトに関するイベントの定義を含む。いくつかの実施形態では、イベント比較部284は、サブイベントに関連付けられたユーザインタフェースオブジェクトを判定するヒットテストを実行する。例えば、3つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ212に表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ212上でタッチが検出されると、イベント比較部284は、3つのユーザインタフェースオブジェクトのうちのどれがタッチ(サブイベント)に関連付けられているかを判定するためのヒットテストを実行する。表示された各オブジェクトが、対応するイベント処理部290に関連付けられている場合、イベント比較部は、ヒットテストの結果を用いて、どのイベント処理部290をアクティブ化すべきかを判定する。例えば、イベント比較部284は、サブイベント及びヒットテストのトリガとなるオブジェクトに関連付けられたイベント処理部を選択する。
【0149】
いくつかの実施形態では、それぞれのイベント(287)に関する定義はまた、サブイベントのシーケンスがイベント認識部のイベントタイプに対応するか否かが判定されるまでイベント情報の配信を遅延させる遅延動作も含む。
【0150】
それぞれのイベント認識部280は、一連のサブイベントが、イベント定義286のイベントのうちのいずれとも一致しないと判定した場合、それぞれのイベント認識部280は、イベント不可能、イベント失敗、又はイベント終了の状態に入り、その後は、タッチベースのジェスチャの次のサブイベントを無視する。この状況では、ヒットビューに関してアクティブのまま維持される他のイベント認識部があれば、進行中のタッチに基づくジェスチャのサブイベントを、引き続き追跡及び処理する。
【0151】
いくつかの実施形態では、それぞれのイベント認識部280は、構成変更可能なプロパティと、フラグと、及び/又はイベント配信システムがアクティブに関わっているイベント認識部にどのようにサブイベント配信を実行するかについて示すリストと、を有するメタデータ283を含む。いくつかの実施形態では、メタデータ283は、構成変更可能なプロパティと、フラグと、及び/又はイベント認識部が互いにどのように対話し得るか、あるいは、対話が可能になるかについて示すリストと、を含む。いくつかの実施形態では、メタデータ283は、構成変更可能なプロパティと、フラグと、及び/又はサブイベントがビュー階層又はプログラム階層内の様々なレベルに配信されるか否かを示すリストと、を含む。
【0152】
いくつかの実施形態では、それぞれのイベント認識部280は、イベントの1つ以上の特定のサブイベントが認識されたときに、イベントに関連付けられたイベント処理部290をアクティブ化する。いくつかの実施形態では、それぞれのイベント認識部280は、イベントに関連付けられたイベント情報をイベント処理部290に配信する。イベント処理部290をアクティブ化することは、対応するヒットビューにサブイベントを送信(及び送信を延期する)することとは異なる。いくつかの実施形態では、イベント認識部280は、認識されたイベントに関連付けられたフラグをスローし、フラグに関連付けられたイベント処理部290は、フラグをキャッチし、既定の処理を実行する。
【0153】
いくつかの実施形態では、イベント配信命令288は、イベント処理部をアクティブ化せずに、サブイベントに関するイベント情報を配信するサブイベント配信命令を含む。その代わりに、サブイベント配信命令は、一連のサブイベントに関連付けられたイベント処理部又はアクティブに関わっているビューにイベント情報を送る。一連のサブイベント又はアクティブに関わっているビューに関連付けられたイベント処理部は、イベント情報を受信し、所定の処理を実行する。
【0154】
いくつかの実施形態では、データ更新部276は、アプリケーション236-1で使用されるデータを作成及び更新する。例えば、データ更新部276は、連絡先モジュール237で使用される電話番号を更新したり、ビデオプレーヤモジュールで使用されるビデオファイルを記憶したりする。いくつかの実施形態では、オブジェクト更新部277は、アプリケーション236-1で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部277は、新たなユーザインタフェースオブジェクトを作成するか、又はユーザインタフェースオブジェクトの位置を更新する。GUI更新部278は、GUIを更新する。例えば、GUI更新部278は、表示情報を準備し、それをタッチ感知ディスプレイ上に表示するためにグラフィックモジュール232に送信する。
【0155】
いくつかの実施形態では、イベント処理部(単数又は複数)290は、データ更新部276、オブジェクト更新部277、及びGUI更新部278を含むか、若しくはそれらにアクセスすることができる。いくつかの実施形態では、データ更新部276、オブジェクト更新部277、及びGUI更新部278は、それぞれのアプリケーション236-1又はアプリケーションビュー291の単一モジュールに含まれる。他の実施形態では、それらは、2つ以上のソフトウェアモジュールに含まれる。
【0156】
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の論考はまた、入力デバイスを使用して多機能デバイス200を動作させるための他の形態のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一若しくは複数のキーボードの押下若しくは保持に任意選択的に合わせたマウスの移動及びマウスボタンの押下、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による命令検出された眼球運動、バイオメトリック入力、及び/又はこれらの任意の組み合わせが、認識対象のイベントを定義するサブイベントに対応する入力として任意選択的に利用される。
【0157】
図3は、いくつかの実施形態に係る、タッチスクリーン212を有するポータブル多機能デバイス200を示す。タッチスクリーンは、ユーザインタフェース(UI)300内に1つ以上のグラフィックを、任意選択的に表示する。本実施形態、並びに後述する実施形態において、ユーザは、例えば、1本以上の指302(図には、正確な縮尺率では描かれていない)又は1つ以上のスタイラス303(図には、正確な縮尺率では描かれていない)を用いて、グラフィック上でジェスチャを行うことにより、グラフィックのうちの1つ以上を選択することができる。いくつかの実施形態では、ユーザが1つ以上のグラフィックとの接触を断った際に、その1つ以上のグラフィックの選択が生じる。いくつかの実施形態では、ジェスチャは、1回以上のタップ、1回以上のスワイプ(左から右へ、右から左へ、上方向へ及び/若しくは下方向へ)、並びに/又は、デバイス200と接触した指のローリング(右から左へ、左から右へ、上方向へ及び/若しくは下方向へ)を、任意選択的に含む。いくつかの実装又は状況では、グラフィックとの不測の接触は、そのグラフィックを選択するものではない。例えば、選択に対応するジェスチャがタップである場合、アプリケーションアイコンの上をスイープするスワイプジェスチャは、対応するアプリケーションを任意選択的に選択しない。
【0158】
デバイス200はまた、「ホーム」又はメニューボタン304などの、1つ以上の物理ボタンも含み得る。上述したように、メニューボタン304を使用して、デバイス200上で実行することができるアプリケーションセット内の任意のアプリケーション236へ、ナビゲートすることができる。あるいは、いくつかの実施形態では、メニューボタンは、タッチスクリーン212に表示されたGUIにおけるソフトキーとして実装されている。
【0159】
一実施形態では、デバイス200は、タッチスクリーン212、メニューボタン304、デバイスの電源をオン/オフし、デバイスをロックするためのプッシュボタン306、音量調節ボタン(単数又は複数)308、加入者識別モジュール(SIM)カードスロット310、ヘッドセットジャック312、及びドッキング/充電用外部ポート224を含む。プッシュボタン306は、ボタンを押し下げて、既定の時間にわたってボタンを押し下げた状態で保持することによってデバイスの電源をオン/オフし、ボタンを押し下げて、既定時間が経過する前にボタンを解放することによってデバイスをロックし、及び/又は、デバイスのロックを解除する、若しくは、ロック解除プロセスを開始する。別の実施形態では、デバイス200はまた、マイクロフォン213を通して、一部の機能をアクティブ化又は非アクティブ化するための口頭入力を受信する。デバイス200はまた、タッチスクリーン212上の接触の強度を検出するための1つ以上の接触強度センサ265、及び/又は、デバイス200のユーザに対する触知出力を生成するための1つ以上の触知出力生成器267も、任意選択的に含む。
【0160】
図4は、いくつかの実施形態に係る、ディスプレイ及びタッチ感知面を備える例示的な多機能デバイスのブロック図である。デバイス400は、ポータブル型である必要はない。いくつかの実施形態では、デバイス400は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤデバイス、ナビゲーションデバイス、教育用デバイス(子供の学習玩具など)、ゲームシステム、又は制御デバイス(例えば、家庭用又は業務用コントローラ)である。デバイス400は、典型的には、1つ以上の処理ユニット(CPU)410、1つ以上のネットワーク若しくは他の通信インタフェース460、メモリ470、及びこれらの構成要素を相互接続するための1つ以上の通信バス420を含む。通信バス420は、システムコンポーネント間の通信を相互接続及び制御する回路(チップセットと呼ばれることがある)を、任意選択的に含む。デバイス400は、典型的にはタッチスクリーンディスプレイであるディスプレイ440を備える入出力(I/O)インタフェース430を含む。I/Oインタフェース430はまた、キーボード及び/又はマウス(又は他のポインティングデバイス)450、並びにタッチパッド455、デバイス400上に触知出力を生成するための(例えば、
図2Aを参照して上述した触知出力生成器267(単数又は複数)と同様の)触知出力生成器457、センサ459(例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び/又は
図2Aを参照して上述した接触強度センサ(単数又は複数)265と同様の接触強度センサ)も、任意選択的に含む。メモリ470は、DRAM、SRAM、DDR RAM、又は他のランダムアクセスソリッドステートメモリデバイスなどの、高速ランダムアクセスメモリを含み、また任意選択的に、1つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイスなどの、不揮発性メモリを含む。メモリ470は、CPU(単数又は複数)410から離れて位置する1つ以上の記憶デバイスを任意選択的に含む。いくつかの実施形態では、メモリ470は、ポータブル多機能デバイス200(
図2A)のメモリ202に記憶されたプログラム、モジュール、及びデータ構造、又はそれらの部分集合に類似する、プログラム、モジュール、及びデータ構造を記憶する。更に、メモリ470は、ポータブル多機能デバイス200のメモリ202に存在しない追加のプログラム、モジュール、及びデータ構造を、任意選択的に記憶する。例えば、デバイス400のメモリ470は、描画モジュール480、プレゼンテーションモジュール482、ワードプロセッシングモジュール484、ウェブサイト作成モジュール486、ディスクオーサリングモジュール488、及び/又はスプレッドシートモジュール490を任意選択的に記憶するが、ポータブル多機能デバイス200(
図2A)のメモリ202はこれらのモジュールを任意選択的に記憶しない。
【0161】
図4の上記で特定された要素のそれぞれは、前述のメモリデバイスの1つ以上に記憶してもよい。上記で特定されたモジュールのうちのそれぞれは、上述した機能を実行する命令セットに対応する。上記で特定されたモジュール又はプログラム(例えば、命令セット)は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、それゆえ、様々な実施形態では、これらのモジュールの様々なサブセットを組み合わせるか、又は他の方式で再編成することができる。いくつかの実施形態では、メモリ470は、上記で特定されたモジュール及びデータ構造のサブセットを記憶することができる。更に、メモリ470は、上述されていない追加のモジュール及びデータ構造を記憶してもよい。
【0162】
次に、例えば、ポータブル多機能デバイス200上に実装することができるユーザインタフェースの実施形態に注意を向ける。
【0163】
図5Aは、いくつかの実施形態に係る、ポータブル多機能デバイス200上のアプリケーションのメニュー用の例示的なユーザインタフェースを示す。同様のユーザインタフェースを、デバイス400上に実装してもよい。いくつかの実施形態では、ユーザインタフェース500は、以下の要素、又はそれらの部分集合若しくは上位集合を含む。
【0164】
セルラー信号及び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。
【0165】
図5Aに示されているアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及びミュージックプレーヤモジュール252用のアイコン522は、任意選択的に、「ミュージック」又は「ミュージックプレーヤ」とラベル付けされてもよい。他のラベルが、様々なアプリケーションアイコンのために、任意選択的に使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンに関するラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【0166】
図5Bは、ディスプレイ550(例えば、タッチスクリーンディスプレイ212)とは別個のタッチ感知面551(例えば、
図4のタブレット又はタッチパッド455)を備えるデバイス(例えば、
図4のデバイス400)上の、例示的なユーザインタフェースを示す。デバイス400はまた、タッチ感知面551上の接触の強度を検出するための1つ以上の接触強度センサ(例えば、センサ457のうちの1つ以上)、及び/又はデバイス400のユーザに対する触知出力を生成するための1つ以上の触知出力生成器459を任意選択的に含む。
【0167】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ212上での入力(タッチ感知面とディスプレイとが組み合わされている場合)を参照して説明されるが、いくつかの実施形態では、デバイスは、
図5Bに示すように、ディスプレイとは別個のタッチ感知面上での入力を検出する。いくつかの実施形態では、このタッチ感知面(例えば、
図5Bの551)は、ディスプレイ(例えば、550)上の主軸(例えば、
図5Bの553)に対応する主軸(例えば、
図5Bの552)を有する。これらの実施形態によれば、デバイスは、タッチ感知面551との接触(例えば、
図5Bの560及び562)を、ディスプレイ上のそれぞれの場所に対応する場所(例えば、
図5Bでは、560は568に対応し、562は570に対応する)にて検出する。このように、タッチ感知面がディスプレイとは別個のものである場合、タッチ感知面(例えば、
図5Bの551)上でデバイスによって検出されたユーザ入力(例えば、接触560及び接触562、並びにそれらの移動)が、多機能デバイスのディスプレイ(例えば、
図5Bでの550)上のユーザインタフェースを操作するために、デバイスによって使用される。同様の方法が、本明細書に記載の他のユーザインタフェースに任意選択的に使用されることを理解されたい。
【0168】
更に加えて、以下の例は、主に指入力(例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャ)を参照して説明されるが、いくつかの実施形態では、それらの指入力のうちの1つ以上は、別の入力デバイスからの入力(例えば、マウスに基づく入力又はスタイラス入力)で置き換えられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、(例えば、接触の代わりに)マウスクリックと置換され、その後、(例えば、接触の移動の代わりに)スワイプの経路に沿ってカーソルの移動が行われる。別の例として、タップジェスチャは、(例えば、接触の検出に続いて接触の検出を停止する代わりに)カーソルがタップジェスチャの位置上に配置されている間、任意選択的に、マウスクリックと置換される。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスが同時に、任意選択的に用いられているか、又はマウスと指接触が同時に用いられていることが理解されよう。
【0169】
図6Aは、例示的なパーソナル電子デバイス600を示す。デバイス600は、本体602を含む。いくつかの実施形態では、デバイス600は、デバイス200及びデバイス400(例えば、
図2A~
図4B)に関して記載した特徴のいくつか又は全てを含み得る。いくつかの実施形態では、デバイス600は、タッチ感知ディスプレイスクリーン604、以後、タッチスクリーン604を有する。タッチスクリーン604の代わりに、又はそれに追加して、デバイス600は、ディスプレイ及びタッチ感知面を有する。デバイス200及びデバイス400と同様に、いくつかの実施形態では、タッチスクリーン604(又はタッチ感知面)は、加えられている接触(例えば、タッチ)の強度を検出するための1つ以上の強度センサを有してもよい。タッチスクリーン604(又は、タッチ感知面)の1つ以上の強度センサは、タッチの強度を表す出力データを提供することができる。デバイス600のユーザインタフェースは、タッチの強度に基づきタッチに応じてもよく、これは、異なる強度のタッチは、デバイス600上で異なるユーザインタフェース動作を呼び出し得ることを意味する。
【0170】
タッチ強度を検出して処理するための技術は、例えば、関連出願である、2013年5月8日出願の「Device,Method,and Graphical User Interface for Displaying User Interface Objects Corresponding to an Application」と題された国際特許出願第PCT/US2013/040061号、及び2013年11月11日出願の「Device,Method,and Graphical User Interface for Transitioning Between Touch Input to Display Output Relationships」と題された同第PCT/US2013/069483号に見出すことができ、これらの文献のそれぞれは、全体が参照により本明細書に組み込まれる。
【0171】
いくつかの実施形態では、デバイス600は、1つ以上の入力機構606及び入力機構608を有する。入力機構606及び入力機構608は、含まれる場合には、物理的なものとすることができる。物理入力機構の例としては、プッシュボタン及び回転可能機構が挙げられる。いくつかの実施形態では、デバイス600は、1つ以上のアタッチメント機構を有する。そのようなアタッチメント機構は、含まれる場合には、例えば、帽子、アイウェア、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計バンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどに、デバイス600を取り付けることを可能にし得る。これらのアタッチメント機構は、ユーザによってデバイス600が着用されることを可能にし得る。
【0172】
図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は、いくつかの実施例では、ボタンであってもよい。
【0173】
入力機構608は、いくつかの実施例では、マイクロフォンであってもよい。パーソナル電子デバイス600は、GPSセンサ632、加速度計634、方向センサ640(例えば、コンパス)、ジャイロスコープ636、動きセンサ638、及び/又はこれらの組み合わせなどの、様々なセンサを含み得るものであり、それらの全ては、I/O部614に動作可能に接続することができる。
【0174】
パーソナル電子デバイス600のメモリ618は、コンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体とすることができ、それらの命令は、1つ以上のコンピュータプロセッサ616によって実行されたときに、例えば、コンピュータプロセッサに、方法1200、1300、1400、又は1500(
図12~
図15)を含めた、以下で説明する技術を実行させることができる。コンピュータ実行可能な命令はまた、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチし、その命令を実行し得る他のシステムなどの、命令実行システム、装置、又はデバイス、によって、若しくはそれらに関連して、使用される任意の非一時的コンピュータ可読記憶媒体に記憶及び/又は伝送されてもよい。本文書の目的上、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、又はデバイスによって、若しくはそれらに関連して、使用されるコンピュータ実行可能命令を有形的に収容又は記憶することが可能な任意の媒体とすることができる。非一時的コンピュータ可読記憶媒体は、磁気的、光学的、及び/又は半導体記憶装置を含み得るが、これらに限定されない。係る記憶装置の例としては、磁気ディスク、CD、DVD、又はBlu-ray(登録商標)技術に基づく光ディスク、及び、フラッシュ、ソリッドステートドライブなどの永続的ソリッドステートメモリが挙げられる。パーソナル電子デバイス600は、
図6Bのコンポーネント及び構成に限定されるものではなく、他のコンポーネント又は追加的コンポーネントを、複数の構成で含み得る。
【0175】
本明細書にて使用されるとき、用語「アフォーダンス」は、デバイス200、デバイス400、及び/又はデバイス600(
図2、
図4、及び
図6)のディスプレイスクリーン上に表示され得るユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像(例えば、アイコン)、ボタン、及びテキスト(例えば、ハイパーリンク)はそれぞれ、アフォーダンスを構成することができる。
【0176】
本明細書にて使用されるとき、用語「フォーカスセレクタ」とは、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含むいくつかの実装において、タッチ感知面(例えば、
図4のタッチパッド455、又は
図5Bのタッチ感知面551)上で入力(例えば、押圧入力)が検出されたときに、カーソルが特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の上にあるとき、カーソルは「フォーカスセレクタ」として機能し、特定のユーザインタフェース要素が、検出された入力に従って調整される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ(例えば、
図2Aのタッチ感知ディスプレイシステム212、又は
図5Aのタッチスクリーン212)を含むいくつかの実装では、タッチスクリーン上で検出される接触が「フォーカスセレクタ」の役割を果たすため、入力(例えば、接触による押圧入力)がタッチスクリーンディスプレイ上の特定のユーザインタフェース要素(例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素)の場所で検出されると、その特定のユーザインタフェース要素は検出された入力に従って調節される。いくつかの実装では、(例えば、タブキー又は矢印キーを使ってフォーカスを1つのボタンから別のボタンに移動させることにより)タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスが、ユーザインタフェースの1つの領域からユーザインタフェースの別の領域に移動される。これらの実装において、フォーカスセレクタは、ユーザインタフェースの異なる領域間でのフォーカスの移動に従って移動する。フォーカスセレクタが採用する具体的な形態とは関わりなく、フォーカスセレクタは、全般的に、ユーザが意図するユーザインタフェースとの対話を(例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによって)伝達するために、ユーザによって制御されるユーザインタフェース要素(又は、タッチスクリーンディスプレイ上での接触)である。例えば、タッチ感知面(例えば、タッチパッド又はタッチスクリーン)上で押圧入力が検出される間の、対応のボタンの上のフォーカスセレクタ(例えば、カーソル、接触、又は選択ボックス)の場所は、その対応のボタンを(そのデバイスのディスプレイ上に示される他のユーザインタフェース要素ではなく)アクティブ化することをユーザが意図していることを示すものである。
【0177】
本明細書及び特許請求の範囲で使用するとき、接触の「特性強度」という用語は、接触の1つ以上の強度に基づく、その接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、既定の数の強度サンプル、又は既定のイベント(例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終了を検出する前、接触の強度の増加を検出する前若しくは後、及び/又は接触の強度の減少を検出する前若しくは後)に対して所定の時間期間(例えば、0.05、0.1、0.2、0.5、1、2、5、10秒)内に収集された強度サンプルのセットに基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均値(mean value)、接触の強度の平均値(average value)、接触の強度の上位10%値、接触の強度の最大値の半分の値、接触の強度の最大値の90%の値など、のうちの1つ以上に基づく。いくつかの実施形態では、特性強度を判定するために、接触の期間が使用される(例えば、特性強度が経時的な接触の強度の平均であるとき)。いくつかの実施形態では、動作がユーザによって実行されたか否かを判定するために、特性強度を1つ以上の強度閾値のセットと比較する。例えば、1つ以上の強度閾値のセットは、第1の強度閾値及び第2の強度閾値を含むことができる。この実施例では、第1の閾値を上回らない特性強度を有する接触の結果として第1の動作が実行され、第1の強度閾値を上回り、第2の強度閾値を上回らない特性強度を有する接触の結果として第2の動作が実行され、第2の閾値を上回る特性強度を有する接触の結果として第3の動作が実行される。いくつかの実施形態では、特性強度と1つ以上の閾値との間の比較が、第1の動作又は第2の動作のいずれを実行するかを判定するために使用されるのではなく、1つ以上の動作を実行するかどうか(例えば、それぞれの動作を実行するのか、又はそれぞれの動作の実行を省略するのか)を判定するために使用される。
【0178】
いくつかの実施形態では、特性強度を判定する目的で、ジェスチャの一部分が特定される。例えば、タッチ感知面は、接触の強度が増加する、開始位置から遷移して終了位置まで達する連続的なスワイプ接触を受け取ってもよい。この実施例では、終了位置における接触の特性強度は、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部分のみ(例えば、終了位置におけるスワイプ接触の部分のみ)に基づいてもよい。いくつかの実施形態では、接触の特性強度を判定する前に、平滑化アルゴリズムをそのスワイプ接触の強度に適用してもよい。例えば、平滑化アルゴリズムは、任意選択的に、非荷重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び/又は指数平滑化アルゴリズム、のうちの1つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度の小幅な上昇又は低下を除外する。
【0179】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び/又は1つ以上の他の強度閾値などの1つ以上の強度閾値に対して特徴付けしてもよい。いくつかの実施形態では、軽い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的に関連付けられた動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的に関連付けられた動作とは異なる動作を、デバイスが実行することになる強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る(例えば、かつ、それを下回ると接触がもはや検出されないわずかな接触検出強度閾値を上回る)特性強度で接触が検出される場合、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値に関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従って、フォーカスセレクタを移動させる。全般的には、特に明記しない限り、これらの強度閾値は、ユーザインタフェース図の異なるセット間でも一貫している。
【0180】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への接触の特性強度の増大は、「軽い押圧」入力と称される場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への接触の特性強度の増大は、「深い押圧」入力と称される場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と称される場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と称される場合がある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロを上回る。
【0181】
本明細書で説明されるいくつかの実施形態では、1つ以上の動作は、それぞれの押圧入力を含むジェスチャの検出に応じて、又はそれぞれの接触(又は、複数の接触)で実行されるそれぞれの押圧入力の検出に応じて実行され、それぞれの押圧入力は、少なくとも部分的に、押圧入力強度閾値を上回る接触(又は、複数の接触)の強度の増大の検出に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、対応する接触の強度の増大(例えば、対応する押圧入力の「ダウンストローク」)の検出に応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る、対応する接触の強度の増大、及び後続の、押圧入力強度閾値を下回る接触の強度の減少を含み、対応する動作は、その後続の押圧入力閾値を下回る対応する接触の強度の減少(例えば、対応する押圧入力の「アップストローク」)の検出に応じて、実行される。
【0182】
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある不測の入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との既定の関連性を有するヒステリシス強度閾値を定義又は選択する(例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもX強度単位低いか、又は、ヒステリシス強度閾値は、押圧入力強度閾値の75%、90%、若しくは何らかの妥当な比率である)。したがって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回る対応する接触の強度の増大、及び後続の、押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、対応する動作は、そのヒステリシス強度閾値を下回る、後続の対応する接触の強度の減少(例えば、対応する押圧入力の「アップストローク」)の検出に応じて、実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への、後続の接触の強度の減少を検出する場合にのみ検出され、対応する動作は、その押圧入力の検出(例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少)に応じて、実行される。
【0183】
説明を容易にするために、押圧入力強度閾値に関連付けられた押圧入力に応じて、又はその押圧入力を含むジェスチャに応じて実行される動作の説明は、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び/又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかの検出に応じて、任意選択的にトリガされる。更に加えて、押圧入力強度閾値を下回る接触の強度の減少の検出に応じて動作が実行されるとして説明される実施例では、その動作は、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る、接触の強度の減少の検出に応じて任意選択的に実行される。
3.デジタルアシスタントシステム
【0184】
図7Aは、様々な実施例に係る、デジタルアシスタントシステム700のブロック図を示す。いくつかの実施例では、デジタルアシスタントシステム700は独立型コンピュータシステム上に実施することができる。いくつかの実施例では、デジタルアシスタントシステム700は複数のコンピュータにわたって分散させることができる。いくつかの実施例では、デジタルアシスタントのモジュール及び機能のいくつかはサーバ部分及びクライアント部分に分割されることができる。この場合には、クライアント部分は1つ以上のユーザデバイス(例えば、デバイス104、デバイス122、デバイス200、デバイス400、又はデバイス600)上に常駐し、例えば、
図1に示すように、1つ以上のネットワークを通してサーバ部分(例えば、サーバシステム108)と通信する。いくつかの実施例では、デジタルアシスタントシステム700は、
図1に示すサーバシステム108(及び/又はDAサーバ106)の一実施形態であることができる。デジタルアシスタントシステム700はデジタルアシスタントシステムの単なる一例に過ぎず、デジタルアシスタントシステム700は、図示されているよりも多数又は少数の構成要素を有することができるか、2つ以上の構成要素を組み合わせてもよいか、あるいは構成要素の異なる構成又は配置を有してもよいことに留意されたい。
図7Aに示す様々な構成要素は、1つ以上の信号処理回路及び/若しくは特定用途向け集積回路を含む、ハードウェア、1つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、又はそれらの組み合わせの形態で実装されることができる。
【0185】
デジタルアシスタントシステム700は、メモリ702、1つ以上のプロセッサ704、入出力(I/O)インタフェース706、及びネットワーク通信インタフェース708を含むことができる。これらの構成要素は1本以上の通信バス又は信号線710を通して互いに通信することができる。
【0186】
いくつかの実施例では、メモリ702は、高速ランダムアクセスメモリ並びに/又は不揮発性コンピュータ可読記憶媒体(例えば、1つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性固体メモリデバイス)などの、非一時的コンピュータ可読媒体を含むことができる。
【0187】
いくつかの実施例では、I/Oインタフェース706は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォンなどの、デジタルアシスタントシステム700の入出力デバイス716をユーザインタフェースモジュール722に連結することができる。I/Oインタフェース706は、ユーザインタフェースモジュール722と連携して、ユーザ入力(例えば、音声入力、キーボード入力、タッチ入力等)を受信し、それらを適宜に処理することができる。いくつかの実施例では、例えば、デジタルアシスタントが独立型ユーザデバイス上に実装される場合には、デジタルアシスタントシステム700は、
図2A、
図4、
図6A~
図6Bにおいてそれぞれデバイス200、デバイス400、又はデバイス600に関連して説明されている構成要素及びI/O通信インタフェースの任意のものを含むことができる。いくつかの実施例では、デジタルアシスタントシステム700はデジタルアシスタントの実施形態のサーバ部分を表すことができ、ユーザデバイス(例えば、デバイス104、デバイス200、デバイス400、又はデバイス600)上に常駐するクライアント側部分を通してユーザと対話することができる。
【0188】
いくつかの実施例では、ネットワーク通信インタフェース708は有線通信ポート(単数又は複数)712並びに/又は無線伝送及び受信回路714を含むことができる。有線通信ポート(単数又は複数)は、1つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス(USB)、FIREWIRE(登録商標)などを介して通信信号を受信及び送信し得る。無線回路714は、通信ネットワーク及び他の通信機器を起点/終点として、RF信号及び/又は光信号を受信及び送信し得る。無線通信は、GSM(登録商標)、EDGE、CDMA、TDMA、Bluetooth(登録商標)、Wi-Fi(登録商標)、VoIP、Wi-MAX(登録商標)、あるいは任意のその他の好適な通信プロトコル等の、複数の通信規格、プロトコル及び技術のうちの任意のものを用いることができる。ネットワーク通信インタフェース708は、インターネット、イントラネット、及び/又はセルラー電話ネットワーク、無線ローカルエリアネットワーク(LAN)などの無線ネットワーク、及び/又はメトロポリタンエリアネットワーク(metropolitan area network、MAN)などの、ネットワークを用いた、デジタルアシスタントシステム700とデバイスとの間の通信を可能にすることができる。
【0189】
いくつかの実施例では、メモリ702、又はメモリ702のコンピュータ可読記憶媒体は、オペレーティングシステム718、通信モジュール720、ユーザインタフェースモジュール722、1つ以上のアプリケーション724、及びデジタルアシスタントモジュール726の全て又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶することができる。特に、メモリ702、又はメモリ702のコンピュータ可読記憶媒体は、後述される方法1200、1300、1400又は1500を実行する命令を記憶することができる。1つ以上のプロセッサ704はこれらのプログラム、モジュール、及び命令を実行し、データ構造から/へと読み出し/書き込みを行い得る。
【0190】
オペレーティングシステム718(例えば、Darwin(登録商標)、RTXC(登録商標)、LINUX(登録商標)、UNIX(登録商標)、iOS、OS X(登録商標)、WINDOWS(登録商標)、又はVxWorksなどの組み込みオペレーティングシステム)は、一般的なシステムタスク(例えば、メモリ管理、記憶デバイス制御、電力管理など)を制御及び管理するための様々なソフトウェアコンポーネント及び/又はドライバを含むことができ、様々なハードウェア、ファームウェア、及びソフトウェアコンポーネント間の通信を促進する。
【0191】
通信モジュール720は、ネットワーク通信インタフェース708を通じたデジタルアシスタントシステム700とその他のデバイスとの間の通信を促進することができる。例えば、通信モジュール720は、
図2A、
図4、
図6A~
図6Bにそれぞれ示すデバイス200、デバイス400、及びデバイス600等の電子デバイスのRF回路208と通信し得る。通信モジュール720はまた、無線回路714及び/又は有線通信ポート712によって受信されたデータを処理するための様々な構成要素も含むことができる。
【0192】
ユーザインタフェースモジュール722はI/Oインタフェース706を介して(例えば、キーボード、タッチスクリーン、ポインティング装置、コントローラ、及び/又はマイクロフォンから)ユーザからのコマンド及び/又は入力を受信し得、ディスプレイ上にユーザインタフェースオブジェクトを生成する。ユーザインタフェースモジュール722はまた、出力(例えば、スピーチ、サウンド、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光等)を準備し、I/Oインタフェース706を介して(例えば、ディスプレイ、オーディオチャネル、スピーカ、タッチパッドなどを通して)ユーザへ配信することができる。
【0193】
アプリケーション724は、1つ以上のプロセッサ704によって実行されるよう構成されたプログラム及び/又はモジュールを含むことができる。例えば、デジタルアシスタントシステムがスタンドアロンのユーザデバイス上に実施される場合には、アプリケーション724は、ゲーム、カレンダアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーション等の、ユーザアプリケーションを含み得る。デジタルアシスタントシステム700がサーバ上に実施される場合には、アプリケーション724は、例えば、資源管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含むことができる。
【0194】
メモリ702はまた、デジタルアシスタントモジュール726(又はデジタルアシスタントのサーバ部分)も記憶することができる。いくつかの実施例では、デジタルアシスタントモジュール726は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含むことができる:入出力処理モジュール728、音声テキスト化(STT)処理モジュール730、自然言語処理モジュール732、ダイアログフロー処理モジュール734、タスクフロー処理モジュール736、サービス処理モジュール738、及び音声合成モジュール740。これらのモジュールの各々は、デジタルアシスタントモジュール726の以下のシステム又はデータ及びモデルのうちの1つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有することができる:オントロジ760、語彙索引744、ユーザデータ748、タスクフローモデル754、サービスモデル756、及びASRシステム。
【0195】
いくつかの実施例では、デジタルアシスタントモジュール726内に実装された処理モジュール、データ、及びモデルを用いて、デジタルアシスタントは以下のもののうちの少なくともいくつかを実行することができる:音声入力をテキストに変換すること、ユーザから受信した自然言語入力内に表現されているユーザの意図を特定すること、ユーザの意図を完全に推測するために必要な情報を(例えば、単語、ゲーム、意図などの曖昧さを除去することによって)能動的に引き出し、取得すること、推測された意図を履行するためのタスクフローを判定すること、及び、そのタスクフローを実行し、推測された意図を履行すること。
【0196】
いくつかの実施例では、
図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(又は音声認識装置)へ転送することができる。
【0197】
STT処理モジュール730は1つ以上のASRシステムを含むことができる。1つ以上のASRシステムは、I/O処理モジュール728を通して受信された音声入力を処理し、認識結果を生成することができる。各ASRシステムはフロントエンド音声プリプロセッサを含むことができる。フロントエンド音声プリプロセッサは音声入力から代表的特徴を導出することができる。例えば、フロントエンド音声プリプロセッサは音声入力に対してフーリエ変換を実行し、音声入力を一連の代表的多次元ベクトルとして特徴付けるスペクトル特徴を導出することができる。更に、各ASRシステムは1つ以上の音声認識モデル(例えば、音響モデル及び/又は言語モデル)を含むことができ、1つ以上の音声認識エンジンを実施装することができる。音声認識モデルの例としては、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、nグラム言語モデル、及びその他の統計的モデルを挙げることができる。音声認識エンジンの例としては、動的タイムワーピングベースのエンジン、及び重み付き有限状態トランスデューサ(weighted finite-state transducer、WFST)ベースのエンジンを挙げることができる。1つ以上の音声認識モデル及び1つ以上の音声認識エンジンを用いて、フロントエンド音声プリプロセッサの導出された代表的特徴を処理し、中間認識結果(例えば、音素、音素文字列、及び部分語)、並びに最終的に、テキスト認識結果(例えば、単語、単語文字列、若しくはトークンの列)を生成することができる。いくつかの実施例では、音声入力は、認識結果を生成するために、サードパーティサービスによって、又はユーザのデバイス(例えば、デバイス104、デバイス200、デバイス400、若しくはデバイス600)上で少なくとも部分的に処理することができる。STT処理モジュール730が、テキスト文字列(例えば、単語、単語の列、又はトークンの列)を包含する認識結果を生成すると、認識結果は意図推論のために自然言語処理モジュール732に渡されることができる。
【0198】
音声テキスト化処理についての更なる詳細が、2011年9月20日に出願された、「Consolidating Speech Recognition Results」についての米国実用特許出願第13/236,942号に記載されている。同出願の開示全体は本明細書において参照により組み込まれている。
【0199】
いくつかの実施例では、STT処理モジュール730は、音声記号変換モジュール731を介して、認識可能な単語の語彙を含み、かつ/又はそれにアクセスすることができる。各語彙単語は、発語認識音声記号で表現された単語の1つ以上の候補発音に関連付けられていることができる。特に、認識可能な単語の語彙は、複数の候補発音に関連付けられた単語を含むことができる。例えば、語彙は、
の候補発音に関連付けられた単語「tomato」を含んでもよい。更に、語彙単語は、ユーザからの以前の音声入力に基づくカスタム候補発音に関連付けられていることができる。このようなカスタム候補発音はSTT処理モジュール730内に記憶されることができ、デバイス上のそのユーザのプロファイルを介して特定のユーザに関連付けられていることができる。いくつかの実施例では、単語のための候補発音は、単語の綴り、並びに1つ以上の言語規則及び/若しくは音声規則に基づいて判定することができる。いくつかの実施例では、候補発音は、例えば、既知の標準的発音に基づいて、手動で生成することができる。
【0200】
いくつかの実施例では、候補発音は候補発音の一般性に基づいて順位付けすることができる。例えば、候補発音
よりも高く順位付けすることができる。なぜなら、前者は、(例えば、全ユーザの間で、特定の地理的領域内のユーザについて、又はユーザの任意の他の適当なサブセットについて)より一般的に用いられている発音であるからである。いくつかの実施例では、候補発音は、候補発音が、ユーザに関連付けられたカスタム候補発音であるかどうかに基づいて順位付けすることができる。例えば、カスタム候補発音は標準的な候補発音よりも高く順位付けすることができる。これは、標準的な発音から逸脱した特有の発音を有する固有名詞を認識するために有用になり得る。いくつかの実施例では、候補発音は、出身地、国籍、又は民族などの、1つ以上の発語特性に関連付けられていることができる。例えば、候補発音
は米国に関連付けられていることができ、それに対して、候補発音
は英国に関連付けられていることができる。更に、候補発音の順位は、デバイス上のユーザのプロファイル内に記憶されているユーザの1つ以上の特性(例えば、出身地、国籍、民族など)に基づくことができる。例えば、ユーザのプロファイルから、ユーザは米国に関連付けられていると判定することができる。ユーザが米国に関連付けられていることに基づき、候補発音
(米国に関連付けられている)を候補発音
(英国に関連付けられている)よりも高く順位付けすることができる。いくつかの実施例では、順位付けされた候補発音のうちの1つを、予測される発音(例えば、最も可能性の高い発音)として選択することができる。
【0201】
音声入力が受信されると、STT処理モジュール730は、音声入力に対応する音素を(例えば、音響モデルを用いて)決定するために用いられることができ、次に、音素に一致する単語を(例えば、言語モデルを用いて)決定することを試みる。例えば、STT処理モジュール730がまず、音声入力の一部分に対応する音素列
を特定することができた場合には、次に、それは、語彙索引744に基づいて、この列は単語「tomato」に対応すると決定することができる。
【0202】
いくつかの実施例では、STT処理モジュール730は、発言内の単語を判定するために近似照合技法を用いることができる。それゆえ、例えば、STT処理モジュール730は、たとえ、その特定の音素列がその単語のための候補音素列のうちの1つでなくても、音素列
は単語「tomato」に対応すると判定することができる。
【0203】
デジタルアシスタントの自然言語処理モジュール732(「自然言語プロセッサ」)は、STT処理モジュール730によって生成された単語又はトークンの列(「トークン列」)を獲得し、トークン列を、デジタルアシスタントによって認識される1つ以上の「実施可能な意図」に関連付けようと試みることができる。「実施可能な意図」は、デジタルアシスタントによって実行されることができ、タスクフローモデル754内に実装される関連付けられたタスクフローを有することができるタスクを表すことができる。関連付けられたタスクフローは、タスクを実行するためにデジタルアシスタントが取る一連のプログラムされたアクション及びステップであることができる。デジタルアシスタントの能力の範囲は、タスクフローモデル754内に実装され、記憶されているタスクフローの数及び種類に依存し、又は、換言すれば、デジタルアシスタントが認識する「実施可能な意図」の数及び種類に依存することができる。しかし、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正確な「実施可能な意図(単数又は複数)」を推測するアシスタントの能力にも依存し得る。
【0204】
いくつかの実施例では、STT処理モジュール730から取得される単語又はトークンの列に加えて、自然言語処理モジュール732はまた、ユーザ要求に関連付けられるコンテキスト情報も、例えば、I/O処理モジュール728から、受信することができる。自然言語処理モジュール732は、STT処理モジュール730から受信したトークン列内に包含されている情報を明らかにし、補完し、及び/又は更に明確にするために、コンテキスト情報を任意選択的に用いることができる。コンテキスト情報は、例えば、ユーザプリファレンス、ユーザデバイスのハードウェア及び/又はソフトウェア状態、ユーザ要求の前、最中、若しくは直後に収集されたセンサ情報、デジタルアシスタントとユーザとの間の以前の対話(例えば、ダイアログ)、並びに同様のものを含むことができる。本明細書で説明されるように、コンテキスト情報は動的であることができ、時間、ロケーション、ダイアログの内容及び他の因子によって変化し得る。
【0205】
いくつかの実施例では、自然言語処理は、例えば、オントロジ760に基づいてもよい。オントロジ760は、多数のノードを包含する階層構造であり、各ノードは、「実施可能な意図」又はその他の「属性」のうちの1つ以上に関連する「実施可能な意図」又は「属性」のいずれかを表すことができる。上述したように、「実施可能な意図」は、デジタルアシスタントが実行する能力を有するタスクを表すことができる。即ち、それは「実施可能」であるか又は実施の対象とすることができる。「属性」は、実施可能な意図、又は別の属性の下位態様に関連付けられるパラメータを表すことができる。オントロジ760内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードによって表されるパラメータが、実施可能な意図ノードによって表されるタスクにどのように関係するのかを定義することができる。
【0206】
いくつかの実施例では、オントロジ760は実施可能な意図ノード及び属性ノードで構成されることができる。オントロジ760内において、それぞれの実施可能な意図ノードは1つ以上の属性ノードに直接又は1つ以上の中間属性ノードを介してリンクされていることができる。同様に、それぞれの属性ノードは、1つ以上の実施可能な意図ノードに直接又は1つ以上の中間属性ノードを介してリンクされていることができる。例えば、
図7Cに示すように、オントロジ760は、「レストラン予約」ノード(すなわち、実施可能な意図ノード)含み得る。属性ノードである「レストラン」、「日付/時間」(予約用)及び「参加人数」が、実施可能な意図ノード(即ち、「レストラン予約」ノード)にそれぞれ直接に接続され得る。
【0207】
更に、属性ノードである「料理」、「価格帯」、「電話番号」及び「ロケーション」は、属性ノード「レストラン」のサブノードであり得、中間属性ノード「レストラン」を介して「レストラン予約」ノード(即ち、実施可能な意図ノード)にそれぞれ接続され得る。別の例として、
図7Cに示すように、オントロジ760は「リマインダ設定」ノード(即ち、別の実施可能な意図ノード)も含み得る。属性ノード「日付/時間」(リマインダ設定用)及び「件名」(リマインダ用)は、「リマインダ設定」ノードにそれぞれリンクされ得る。属性ノード「日付/時間」は、レストラン予約をするタスク及びリマインダを設定するタスクの両方に関連し得るため、属性ノード「日付/時間」はオントロジ760内において「レストラン予約」ノード及び「リマインダ設定」ノードの両方にリンクされ得る。
【0208】
実施可能な意図ノードは、そのリンクされた概念ノードと共に、「ドメイン」として記述することができる。本説明では、各ドメインは、それぞれの実施可能な意図に関連付けられていることができ、特定の実施可能な意図に関連付けられたノードのグループ(及びノード間の関係)を指す。例えば、
図7Cに示すオントロジ760は、オントロジ760内のレストラン予約ドメイン762の例及びリマインダドメイン764の例を含むことができる。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付/時間」、及び「参加人数」、並びに下位属性ノード「料理」、「価格帯」、「電話番号」及び「ロケーション」を含む。リマインダドメイン764は、実施可能な意図ノード「リマインダ設定」、及び属性ノード「件名」及び「日付/時間」を含み得る。いくつかの実施例では、オントロジ760は多くのドメインで構成されることができる。各ドメインは、1つ以上の他のドメインと、1つ以上の属性ノードを共有することができる。例えば、「日付/時間」属性ノードは、レストラン予約ドメイン762及びリマインダドメイン764に加えて、多くの異なるドメイン(例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど)に関連付けられ得る。
【0209】
図7Cは、オントロジ760内に2つの例示的なドメインを示すが、他のドメイン(即ち、実施可能な意図)として、例えば、「映画を探す」、「電話をかける」、「道順を探す」、「会議をスケジュールする」、「メッセージを送信する」、及び「質問の答えを提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、「タスクの手順を提供する」などが挙げられ得る。「メッセージを送信する」のドメインは、「メッセージを送信する」の実施可能な意図ノードに関連付けられており、「受信者(単数又は複数)」、「メッセージタイプ」、及び「メッセージ本文」などの属性ノードを更に含み得る。属性ノードの「受信者」は更に、例えば、「受信者名」と「メッセージアドレス」などの下位属性ノードによって定義され得る。
【0210】
いくつかの実施例では、オントロジ760は、デジタルアシスタントが理解し、作用する能力を有する全てのドメイン(及び、したがって実施可能な意図)を含むことができる。いくつかの実施例では、オントロジ760は、ドメイン若しくはノード全体を追加若しくは除去すること、又はオントロジ760内のノード間の関係を変更することなどによって、変更することができる。
【0211】
いくつかの実施例では、複数の関連する実施可能な意図に関連付けられるノードは、オントロジ760内の「上位ドメイン」の下にクラスタ化され得る。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードのクラスタを含み得る。旅行に関連する実施可能な意図ノードは、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」などを含み得る。同じ上位ドメイン(例えば、「旅行」上位ドメイン)の下の実施可能な意図ノードは、多くの属性ノードを共有し得る。例えば、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」についての実施可能な意図ノードは、属性ノードである「出発場所」、「目的地」、「出発日/時間」、「到着日/時間」、及び「参加人数」のうちの1つ以上を共有し得る。
【0212】
いくつかの実施例では、オントロジ760内の各ノードは、そのノードによって表される属性又は実施可能な意図に関連する単語及び/又はフレーズのセットに関連付けられていることができる。各ノードに関連付けられた単語及び/又はフレーズのそれぞれのセットは、そのノードに関連付けられたいわゆる「語彙」であることができる。各ノードに関連付けられる単語及び/又はフレーズのそれぞれのセットは、ノードによって表される属性又は実施可能な意図に関連して語彙索引744内に記憶することができる。例えば、
図7Bに戻ると、「レストラン」の属性についてのノードに関連付けられる語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、「食事」などの単語を含み得る。別の例として、「通話を開始する(initiate a phone call)」という実施可能な意図のノードに関連付けられる語彙は、「電話する(call)」、「電話(phone)」、「ダイヤルする(dial)」、「電話をかける(ring)」、「この番号に電話する(call this number)」、「~に電話をかける(make a call to)」などの単語及びフレーズを含み得る。語彙索引744は異なる言語の単語及びフレーズを任意選択的に含むことができる。
【0213】
自然言語処理モジュール732は、STT処理モジュール730からトークン列(例えば、テキスト文字列)を受信し、どのノードがトークン列内の単語によって暗示されているのかを判定することができる。いくつかの実施例では、トークン列内の単語又はフレーズが(語彙索引744を介して)オントロジ760内の1つ以上のノードに関連付けられることが分かれば、その単語又はフレーズはそれらのノードを「トリガする」又は「アクティブにする」ことができる。アクティブにされたノードの量及び/又は相対的重要度に基づき、自然言語処理モジュール732は、実施可能な意図のうちの1つを、ユーザがデジタルアシスタントに実行させようと意図したタスクとして選択することができる。いくつかの実施例では、最も多く「トリガされた」ノードを有するドメインを選択することができる。いくつかの実施例では、最も高い信頼値を有するドメイン(例えば、その様々なトリガされたノードの相対的重要度に基づく)を選択することができる。いくつかの実施例では、ドメインは、トリガされたノードの数及び重要度の組み合わせに基づき選択することができる。いくつかの実施例では、ノードを選択する際には、デジタルアシスタントがユーザからの同様の要求を以前に正確に解釈したかどうか等の追加の因子も考慮される。
【0214】
ユーザデータ748は、ユーザ固有語彙、ユーザプリファレンス、ユーザアドレス、ユーザの既定言語及び第二言語、ユーザの連絡先リスト、並びに各ユーザに関するその他の短期的若しくは長期的情報等の、ユーザ固有の情報を含むことができる。いくつかの実施例では、自然言語処理モジュール732は、ユーザ入力内に包含されている情報を補完してユーザ意図を更に明確にするために、ユーザ固有の情報を用いることができる。例えば、ユーザ要求「私の誕生日パーティーに私の友人を招待してほしい」に対して、自然言語処理モジュール732は、誰が「友人」であり、いつ及びどこで「誕生日パーティー」が催されるのであろうかを判定するために、こうした情報をユーザの要求内で明示的に提供するようにユーザに要請する代わりに、ユーザデータ748にアクセスすることができる。
【0215】
トークン文字列に基づくオントロジ検索のその他の詳細が、2008年12月22日出願の「Method and Apparatus for Searching Using an Active Ontology」に対する米国実用特許出願第12/341,743号に記載されている。同出願の開示全体は本明細書において参照により組み込まれている。
【0216】
いくつかの実施例では、自然言語処理モジュール732が、ユーザ要求に基づき、実施可能な意図(又はドメイン)を特定すると、自然言語処理モジュール732は、特定された実施可能な意図を表すように、構造化されたクエリを生成することができる。いくつかの実施例では、構造化されたクエリは、実施可能な意図のためのドメイン内の1つ以上のノードのためのパラメータを含むことができ、パラメータの少なくとも一部には、ユーザ要求内で指定された特定の情報及び要求事項が入力される。例えば、ユーザは「私のために7時に寿司屋で夕食の予約を取って下さい」と言う場合がある。この場合には、自然言語処理モジュール732は、ユーザ入力に基づき、実施可能な意図を「レストラン予約」であると正確に特定することができ得る。オントロジによれば、「レストラン予約」ドメインのための構造化されたクエリは、{料理}、{時間}、{日付}、{参加人数}、及び同様のもの等のパラメータを含み得る。いくつかの実施例では、音声入力、及びSTT処理モジュール730を用いて音声入力から導き出されたテキストに基づいて、自然言語処理モジュール732は、レストラン予約ドメインのための部分的な構造化されたクエリを生成することができる。この場合、部分的な構造化されたクエリはパラメータ{料理=「寿司」}及びパラメータ{時間=「午後7時」}を含む。しかし、本例では、ユーザの発言は、ドメインに関連付けられる構造化されたクエリを完成するために十分な情報を包含していない。したがって、{参加人数}及び{日付}等のその他の必要パラメータは、現在利用可能な情報に基づいては、構造化されたクエリ内に指定されなくともよい。いくつかの実施例では、自然言語処理モジュール732は、構造化されたクエリのいくつかのパラメータに、受信したコンテキスト情報を入力することができる。例えば、いくつかの実施例では、ユーザが「私の近くの」寿司レストランを要求した場合には、自然言語処理モジュール732は、構造化されたクエリ内の{ロケーション}パラメータにユーザデバイス104からのGPS座標を入力する。
【0217】
いくつかの実施例では、自然言語処理モジュール732は、生成された構造化されたクエリ(任意の完成したパラメータを含む)をタスクフロー処理モジュール736(「タスクフロープロセッサ」)に渡すことができる。タスクフロー処理モジュール736は、自然言語処理モジュール732から、構造化されたクエリを受信し、必要に応じて、構造化されたクエリを完成させ、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するよう構成することができる。いくつかの実施例では、これらのタスクを完成させるために必要な様々な手順はタスクフローモデル754内で提供することができる。いくつかの実施例では、タスクフローモデル754は、ユーザから追加情報を取得するための手順、及び実施可能な意図に関連付けられるアクションを実行するためのタスクフローを含むことができる。
【0218】
上述したように、構造化されたクエリを完成させるために、タスクフロー処理モジュール736は、追加情報を取得し、かつ/又は潜在的に曖昧な発言の曖昧さを除去するために、ユーザとの追加のダイアログを開始することが必要になる場合がある。このような対話が必要となる場合には、タスクフロー処理モジュール736は、ユーザとのダイアログに携わるためにダイアログフロー処理モジュール734を呼び出すことができる。いくつかの実施例では、ダイアログフロー処理モジュール734は、どのように(及び/又はいつ)ユーザに追加情報を求めるべきかを決定することができ、ユーザ応答を受信し、これらを処理する。I/O処理モジュール728を通してユーザに質問を提供することができ、ユーザから回答を受信することができる。いくつかの実施例では、ダイアログフロー処理モジュール734は音声及び/又は視覚出力を介してユーザにダイアログ出力を提示することができ、口頭の応答又は物理的な(例えば、クリック)応答を介してユーザから入力を受信する。上述の例を続けると、タスクフロー処理モジュール736が、ドメイン「レストラン予約」に関連付けられる構造化されたクエリについての「参加人数」及び「日付」情報を決定するためにダイアログフロー処理モジュール734を呼び出すと、ダイアログフロー処理モジュール734は、「何人分ですか?」及び「どの日にしますか?」等の質問を、ユーザに渡すために生成し得る。ユーザから返答が受信されると、次に、ダイアログフロー処理モジュール734は、構造化されたクエリに、欠けている情報を入力するか、又は構造化されたクエリから欠けている情報を完成させるために、その情報をタスクフロー処理モジュール736に渡すことができる。
【0219】
タスクフロー処理モジュール736が、実施可能な意図のための構造化されたクエリを完成すると、タスクフロー処理モジュール736は、実施可能な意図に関連付けられる最終的なタスクの実行に進むことができる。それに応じて、タスクフロー処理モジュール736は、構造化されたクエリ内に包含されている具体的なパラメータに応じて、タスクフローモデル内のステップ及び命令を実行し得る。例えば、「レストラン予約」の実施可能な意図のためのタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に希望するためのステップ及び命令を含み得る。例えば、レストラン予約について、レストラン=ABC Cafe、日付=3/12/2012、時間=午後7時、参加人数=5、等の構造化されたクエリを用いて、タスクフロー処理モジュール736は、(1)ABC Cafeのサーバ、又はOPENTABLE(登録商標)等のレストラン予約システムにログオンするステップと、(2)ウェブサイト上のフォーム内に日付、時間、及び参加人数情報を入力するステップと、(3)フォームを送信するステップと、及び(4)ユーザのカレンダー内に予約のためのカレンダー項目を記入するステップと、を実行し得る。
【0220】
いくつかの実施例では、タスクフロー処理モジュール736は、ユーザ入力内で要求されたタスクを完了するため、又はユーザ入力内で要求された情報の回答を提供するために、サービス処理モジュール738(「サービス処理モジュール」)の補助を用いることができる。例えば、サービス処理モジュール738は、電話をかけるため、カレンダー項目を設定するため、地図検索を呼び出すため、ユーザデバイス上にインストールされているその他のユーザアプリケーションを呼び出すか若しくはそれと対話するため、並びにサードパーティサービス(例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータル等)を呼び出すか若しくはそれと対話するために、タスクフロー処理モジュール736の代わりに動作することができる。いくつかの実施例では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース(application programming interface、API)は、サービスモデル756の中のそれぞれのサービスモデルによって指定され得る。サービス処理モジュール738は、サービスのための適当なサービスモデルにアクセスし、サービスモデルに係るサービスによって必要とされるプロトコル及びAPIに従ってサービスの要求を生成することができる。
【0221】
例えば、レストランがオンライン予約サービスを可能にしている場合には、レストランは、予約を行うために必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ伝達するためのAPIを指定するサービスモデルを提出することができる。タスクフロー処理モジュール736によって要求されると、サービス処理モジュール738は、サービスモデルに記憶されているウェブアドレスを用いて、オンライン予約サービスとのネットワーク接続を確立し、必要な予約のパラメータ(例えば、時間、日付、参加人数)を、オンライン予約サービスのAPIに従う形式でオンライン予約インタフェースへ送信することができる。
【0222】
いくつかの実施例では、ユーザの意図を推測して明確にし、ユーザ意図を更に明らかにして絞り込むための情報を取得し、ユーザの意図を履行すべく応答(即ち、ユーザへの出力又はタスクの完了)を最終的に生成するために、自然言語処理モジュール732、ダイアログフロー処理モジュール734、及びタスクフロー処理モジュール736を集合的かつ反復的に用いることができる。生成された応答は、ユーザの意図を少なくとも部分的に履行する音声入力に対するダイアログ応答であることができる。更に、いくつかの実施例では、生成された応答を音声出力として出力することができる。これらの実施例では、生成された応答を音声合成モジュール740(例えば、音声合成器)へ送信することができ、そこで、それを、音声形式のダイアログ応答を合成するために処理することができる。更に他の実施例では、生成された応答は、音声入力内のユーザ要求を満足することに関連するデータコンテンツであることができる。
【0223】
音声合成モジュール740は、ユーザへの提示のための音声出力を合成するよう構成することができる。音声合成モジュール740は、デジタルアシスタントによって提供されたテキストに基づいて音声出力を合成する。例えば、生成されたダイアログ応答はテキスト文字列の形式のものであることができる。音声合成モジュール740はテキスト文字列を可聴音声出力に変換することができる。音声合成モジュール740は、テキストから音声出力を生成するために、限定するものではないが、波形接続合成、単位選択合成、ダイフォン(diphone)合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル(hidden Markov model、HMM)ベースの合成、及び正弦波合成を含む、任意の適当な音声合成技法を用いることができる。いくつかの実施例では、音声合成モジュール740は、単語に対応する音素文字列に基づいて個々の単語を合成するよう構成することができる。例えば、音素文字列が、生成されたダイアログ応答内の単語に関連付けられていることができる。音素文字列は、単語に関連付けられたメタデータ内に記憶されていることができる。音声合成モデル740は、単語を音声形式で合成するために、メタデータ内の音素文字列直接処理するよう構成することができる。
【0224】
いくつかの実施例では、音声合成モジュール740を用いる代わりに(又はそれに加えて)、リモートデバイス(例えば、サーバシステム108)上で音声合成を実行することができ、合成された音声をユーザへの出力のためにユーザデバイスへ送信することができる。例えば、これは、デジタルアシスタントのための出力がサーバシステムにおいて生成されるいくつかの実装形態において行われ得る。また、サーバシステムは一般的にユーザデバイスよりも多くの処理能力又は資源を有するため、クライアント側合成を用いて実現可能であろうよりも高品質の音声出力を得ることが可能になり得る。
【0225】
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号に、デジタルアシスタントに関する更なる詳細を見出すことができる。これらの出願の開示の全体は本明細書において参照により組み込まれている。
【0226】
ここで、ディスプレイ及びタッチ感知面を備えた電子デバイス上で実行され得る仮想アシスタントをトリガする(例えば、開始する)技法及び付随ユーザインタフェース(「UI」)に注目する。
4.仮想アシスタントをトリガする例示的な技法
【0227】
図8A~
図8Cは、いくつかの実施形態に係る、電子デバイスにおける入力が所定の条件を満たすかに基づいて仮想アシスタントをトリガする例示的な技法を示す。これらの図は、
図12でのプロセスを含む、以下に説明するプロセスを示すためにも使用される。
【0228】
図8Aは、ユーザ802の電子デバイス800を示す。デバイス800は、いくつかの実施形態では、デバイス104、デバイス122、デバイス200、デバイス400、デバイス600及びデバイス1700(
図1、
図2、
図4、
図6、及び
図17)のうちの1つである。デバイス800は、タッチスクリーン804を有する。図示された(例えば、降ろされた)位置では、タッチスクリーン804は、バッテリ使用を節約するために電源オフにされている。
【0229】
図8Bは、電子デバイス800を閲覧するために引き上げ位置に持ち上げているユーザ802を示す。移動に応じて、デバイス800は、タッチスクリーン804の電源をオンにして、ユーザインタフェースを提示する。
図8A及び
図8Bに示す持ち上げ移動などデバイスの移動を判定する技法について、以下、
図12を参照して更に説明する。
【0230】
電源をオンしているタッチスクリーン804に従い、デバイス800はまた、そのマイクロフォンを介してオーディオ入力をサンプリングし始めて、ユーザ802からの口頭入力を聴取する。
図8Cは、デバイス800がオーディオ入力をサンプリングしている間に、口頭命令810を提供するユーザ802を示す。オーディオ入力をサンプリングする間に、デバイス800が口頭命令810を検出すると、デバイスは、サンプリングされたオーディオ入力が仮想アシスタントサービスをトリガするフレーズを含むかを判定する。デバイス800が、サンプリングされた入力が仮想アシスタントをトリガする口頭トリガを含むと判定した場合、デバイス800は仮想アシスタントをトリガする。デバイス800は、サンプリングされたオーディオ入力が口頭トリガを含まないと判定した場合、限られた時間の間、口頭トリガのオーディオ入力を継続してサンプリングすることができる。
【0231】
例示された実施例では、口頭トリガは、「Hey Siri.」というフレーズである。したがって、口頭命令810は、デバイス800によってサンプリングされると、デバイス800に仮想アシスタントサービスをトリガさせる。しかし、命令810は、トリガのフレーズ以外のユーザ要求を表す追加言語を含まない。したがって、デバイス800は、仮想アシスタントサービスをトリガすると、オーディオ入力を継続してサンプリングすることによって更なる口頭入力を待つ。追加入力を待っている間、デバイス800は、任意選択的にユーザ802に更なる命令を促すインジケーション812を表示する。
【0232】
このようにして、デバイス800は、そのデバイスが特定の使用条件を検出しているかに基づいて仮想アシスタントに対するオーディオ入力をサンプリングするための、マイクロフォン、付随回路及び対応するソフトウェアプロセスをアクティブにする。本技法により、デバイス800は、ユーザがアクティブで認知的な入力をデバイスに提供している可能性が低い場合、例えば、デバイスが降ろされ、そのディスプレイの電源がオフにされている場合、特定の電気回路(例えば、マイクロフォン回路)を無効にしたり、かつ/又は、コンピュータ命令の実行(例えば、付随するプロセッサの電力消費)を低減したりすることができ、それによってデバイスによる全体の電力消費を低減することができる。言い換えると、バッテリの節約の技術的利点は、いくつかの実施形態において、デバイスが特定の使用条件外にある間は、ユーザが口頭入力を提供する可能性が低いという考えによって達成される。
【0233】
図9A~
図9Dは、いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。これらの図は、
図13でのプロセスを含む、以下に説明するプロセスを示すためにも使用される。
【0234】
図9Aは、ユーザ902の電子デバイス900を示す。デバイス900は、いくつかの実施形態における、デバイス104、デバイス122、デバイス200、デバイス400、デバイス600、及びデバイス1600(
図1、
図2、
図4、
図6及び
図16)のうちの1つである。デバイス900は、タッチスクリーン904を有する。タッチスクリーン904は、ユーザ902にデバイス900によりちょうど受信された着信メッセージを通知する通知906を表示している。通知906の表示は、着信メッセージに関連付けられた1つ以上のソフトウェアイベントによってトリガされる。1つ以上の関連ソフトウェアイベントの検出に従い、デバイス900は、口頭入力を特定するために、そのマイクロフォンを介してオーディオ入力をサンプリングし始める。
図9A及び
図9Bに見られるメッセージ通知などの関連ソフトウェアイベントを判定する技法について、以下、
図13を参照して更に説明する。
【0235】
図9Bは、デバイス900がオーディオ入力をサンプリングしている間に、口頭命令910を提供するユーザ902を示す。デバイス900はオーディオ入力のサンプリングに応じて口頭命令910を検出すると、デバイスは、サンプリングされた入力が仮想アシスタントに関する口頭トリガを含むかを判定する。例示された実施例では、口頭トリガは、「Hey Siri.」というフレーズである。デバイス900がサンプリングされた入力が仮想アシスタントをトリガする口頭トリガを含むと判定した場合、デバイス900は仮想アシスタントをトリガする。デバイス900は、サンプリングされたオーディオ入力が口頭トリガを含まないと判定した場合、限られた時間の間、口頭トリガのオーディオ入力を継続してサンプリングすることができる。
【0236】
例示の実施例では、口頭命令910は、仮想アシスタントがコンピューティングタスクとして実行することができる、口頭トリガ(例えば、「hey Siri」)及び自然言語入力(例えば、「私は今チャットできないことを送信者に伝えて下さい」)の両方を含む。例えば、タスクは、着信メッセージ912の送信者に簡単な返信を送信することである。
図9Cに移ると、命令910を含むオーディオ入力のサンプリングに応じて、電子デバイス900は、メッセージ916を開始し、着信メッセージ912の送信者918に送信して、ユーザ902が現在手があいていないことを送信者に知らせる。
【0237】
図9A~
図9Cによって示されるように、デバイスによって検出されたソフトウェアイベントに応じてデバイス900のマイクロフォンの電源をオンする本技法により、ユーザがアクティブで認知的な入力をデバイスに提供している可能性が低い場合、特定の電気回路(例えば、マイクロフォン回路)を無効にしたり、かつ/又は、コンピュータ命令の実行(例えば、付随するプロセッサの電力消費)を低減したりすることができ、それによってデバイスによる全体の電力消費を低減することができる。言い換えると、バッテリ節約の技術的利点は、いくつかの実施形態において、デバイスがユーザへの出力を発生するソフトウェアイベントがない間は、ユーザが口頭入力を提供する可能性が低いという考えによって達成される。
【0238】
図10A~
図10Dは、いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。これらの図は、
図14でのプロセスを含む、以下に説明するプロセスを示すためにも使用される。
【0239】
図10Aは、ユーザ1002の電子デバイス1000を示す。デバイス1000は、いくつかの実施形態では、デバイス104、122、200、400、600及び1700(
図1、
図2、
図4、
図6、及び
図17)のうち1つである。デバイス1000は、タッチスクリーン1004を有する。図示された位置(例えば、降ろされた)では、タッチスクリーン1004は、デバイス1000のバッテリ寿命を節約するために電源をオフされている。
図10Bは、電子デバイス1000を閲覧するために引き上げ位置に持ち上げているユーザ1002を示す。移動に応じて、デバイス1000は、ユーザ1002からの口頭入力のオーディオ入力をサンプリングし始める。いくつかの実施形態では、デバイス1000は、たとえタッチスクリーン1004がオフのままであっても、このオーディオ入力のサンプリングを始める。いくつかの実施形態では、デバイス1000は、タッチスクリーン1004がオンであるか、それともオフであるかにかかわらず、このオーディオ入力のサンプリングを始める。
【0240】
図10Cは、タッチスクリーン1004がオフの状態で、デバイス1000がオーディオ入力をサンプリングしている間に、口頭命令1010を提供しているユーザ1002を示す。デバイス1000はオーディオ入力のサンプリングに従って口頭命令1010を検出すると、デバイスは、サンプリングされた入力が仮想アシスタンの口頭トリガを含むかを判定する。例示された実施例では、口頭トリガは、「Hey Siri.」というフレーズである。デバイス1000が、サンプリングされた入力が仮想アシスタントをトリガする口頭トリガを含むと判定した場合、デバイス1000は、タッチスクリーン1004の電源がオフされている場合、タッチスクリーンの電源をオンせずに仮想アシスタントをトリガする。デバイス1000は、サンプリングされたオーディオ入力が口頭トリガを含まないと判定した場合、以下の
図14を参照して更に説明するように、しばらくの間、口頭トリガのオーディオ入力を継続してサンプリングすることができる。
【0241】
図10Cの例示の実施例では、サンプリングされた口頭命令は、仮想アシスタントがタスクとして実行できる、口頭トリガ(例えば、「hey Siri」)及び自然言語入力(例えば、「私の電子メールをダウンロードして」)を含む。いくつかの実施形態では、デバイス1000は、受信した口頭入力を受け取ったことを通知する出力(例えば、触覚及び/又はオーディオ出力)を提供する。いくつかの実施形態では、肯定応答出力は、タッチスクリーン1004をオンせずに提供される。
【0242】
図10Dを参照すると、口頭命令1010に応じて、デバイス1000は、電子メールをダウンロードするという要求されたタスクを開始する。いくつかの実施形態では、タッチスクリーン1004の電源がオフのままである間に、タスクは行われる。いくつかの実施形態では、デバイス1000は、口頭入力が行われている、かつ/又は既に行われたことをユーザに示す出力(例えば、触覚及び/又はオーディオ出力)を提供する。いくつかの実施形態では、出力は、タッチスクリーン1004をオンせずに提供される。
【0243】
一部の使用条件下で、
図10A~
図10Dを参照して説明した、タッチスクリーンをオフのまま、ユーザの口頭入力を処理するためにデバイスのマイクロフォンの電源をオンする本技法は、ユーザの口頭入力を処理するデバイスの能力を維持しながら、デバイス1000による全体の電力消費を低減させる。言い換えると、バッテリ節約の技術的利点は、いくつかの実施形態では、ディスプレイ搭載デバイスにおけるディスプレイのアクティブ化に関する効率的な制御によって達成される。
【0244】
図11A~
図11Cは、いくつかの実施形態に係る仮想アシスタントをトリガする例示的な技法を示す。これらの図は、
図15でのプロセスを含む、以下に説明するプロセスを例示するためにも使用される。
【0245】
図11Aは、ユーザ1102の電子デバイス1100を示す。電子デバイス1100は、いくつかの実施形態では、デバイス104、122、200、400、600、及び1800(
図1、
図2、
図4、
図6、及び
図18)のうちの1つである。デバイス1100は、タッチスクリーン1104を有する。タッチスクリーン1104は、仮想アシスタントセッションがアクティブであり、ユーザの口頭命令を待っていることを示すインジケーション1106を表示する。仮想アシスタントセッションがアクティブである間、デバイス1100のマイクロフォンは、ユーザの命令のオーディオ入力をサンプリングしている。他のユーザインタフェース(図示せず)はまた、前回のユーザ入力及び仮想アシスタントの応答を一覧にする仮想アシスタントのトランスクリプトのように、仮想アシスタントセッションがアクティブであることを示唆することができる。タッチスクリーン1104はまた、仮想アシスタントセッションを終了するための取り消しアフォーダンス1108を表示し含む。
【0246】
図11Bに見られるように、取り消しアフォーダンス1108のユーザの選択の検出に応じて、デバイス1100は、仮想アシスタントのインジケーション1106を非仮想アシスタントのユーザインタフェースに置き換えることによって仮想アシスタントセッションが終了したことをユーザに報告する。例示の実施例では、デバイス1100は、デジタル時計面1110を表示する。いくつかの実施形態では(
図11Bには明確に示されていない)、デバイス1100は、仮想アシスタントセッションのユーザの取り消しを受け取ったことを通知する際に、タッチスクリーン1104の電源をオフする。
【0247】
しかし、いくつかの実施形態では、デバイス1100が、仮想アシスタントセッションが終了したことをユーザに示すときであっても、そのマイクロフォンは、しばらくの間、継続してユーザの口頭命令のオーディオ入力をサンプリングする。いくつかの実施形態では、進行中のオーディオサンプリングは、所定の時間(例えば、8秒)の間発生する。いくつかの実施形態では、進行中のオーディオサンプリングは、タッチスクリーン1104へのタッチ入力、アプリケーションのアクティブ化などの追加のユーザ入力が受信されるまで発生する。オーディオ入力のサンプリングを継続する持続時間を特定する更なる技法について、以下、
図15を参照して説明する。
【0248】
図11Cを参照すると、オーディオ入力の進行中のサンプリングの間、デバイス1100は、フレーズ「hey Siri.」を含む口頭入力1112などの口頭トリガを含むサンプリングされたオーディオ入力に応じて仮想アシスタントをトリガする。
【0249】
ユーザが仮想アシスタントを終了した後(マイクロフォンをすぐにオフするのではなく)しばらくの間継続してオーディオ入力をサンプリングする本技法は、有益である。例えば、(例えば、
図11Bにおける)仮想アシスタントのユーザの取り消しが間違っており、デバイスを、オーディオ入力を再びサンプリングする前のデバイスの移動など、速やかな入力を待っているであろう状態にする効果を有する状況を検討する。つまり、ユーザの間違った取り消しが、ユーザによる速やかな後続の口頭入力を処理するデバイスの能力を妨げてしまうことになる。このような状況では、上述した技法により、デバイスは、間違ったユーザ入力が発生しなかったように応答することができる。
【0250】
別の例として、仮想アシスタントのユーザの取り消しは、デバイスに、そのマイクロフォン及び付随回路をパワーサイクルさせることを必要とすることによって、ユーザの後続の口頭入力を処理するデバイスの能力を遅延させてしまう状況を検討する。上述した技法により、電子デバイス1100は、パワーサイクルによる遅延を回避しながらユーザに応答でき、それによって応答時間を改善することができる。このような利点は、高品質のユーザエクスペリエンスをデバイス1100に付与し、処理電力とバッテリ消費との間で設計妥協がなされるポータブルデバイスに対して特に有用である。
【0251】
図20A~
図20Fは、いくつかの実施形態に係る仮想アシスタントへのユーザの要求を処理する例示的な技法を示す。これらの図は、
図21でのプロセスを含む、以下に説明するプロセスを示すためにも使用される。
【0252】
図20Aは、ユーザ2002の電子デバイス2000を示す。電子デバイス2000は、いくつかの実施形態では、104、122、200、400、600、及び1900(
図1、
図2、
図4、
図6、及び
図19)のうちの1つである。デバイス2000は、タッチスクリーン2004を有する。
図20Aに示すように、デバイス2000は、仮想アシスタントユーザインタフェース2006を表示しており、それは、デバイスが、受信者へのメッセージを開始するようデバイスに命じるユーザの命令2010のオーディオ入力をサンプリングしていることを示している。
【0253】
図20Bを参照すると、デバイス2000は、口頭命令2010を処理し始め、ユーザの命令を履行すべく行われ得るコンピューティングタスクを特定する。ユーザの命令を実行するのに要する時間は、様々な使用シナリオにおいて異なる。例えば、スローデータサービスプロバイダは、デバイスの応答時間を減速する可能性がある。
【0254】
図20Cに見られるように、仮想アシスタントがユーザの命令を処理している間に、ユーザ2002は、デバイス2000を非閲覧位置に降ろすことができる。ユーザ入力がないとき、タッチスクリーン2004は、例示の実施例では、仮想アシスタントが継続してユーザの命令2010を処理していても、バッテリ電力を節約するためしばらくした後、オフになる。
【0255】
図20Dを参照すると、デバイス2000は、出力がユーザに対して表示されるべきところまでユーザの命令を実行した場合、デバイス200は、追加情報が今利用可能であることをユーザに通知するように触覚及び/又は可聴出力を提供する。例えば、ユーザの命令2010に応じて、デバイス2000は、メッセージアプリケーションを起動し発信メッセージをポピュレートした後、メッセージを受信者に送信する前に、確認を表示してもよい。
【0256】
図20Eに見られるように、触覚及び/又は可聴出力によって警報されると、ユーザ2002は、閲覧位置にデバイス2000を引き上げてもよく、このことが、タッチスクリーン2004の電源をオンして、受信者「Jen」にアドレス指定され、かつメッセージ本文2012を含む(その両方がユーザの自然言語入力2010に対応する)メッセージ2012を示す。
【0257】
図20A~
図20Eの例は、メッセージを作成するユーザの命令を示すが、説明する技法はそのように限定されるものではない。デバイス2000の仮想アシスタントは、デバイスのスクリーンがオフである間に、有用な結果を取得したときはいつでも、触覚及び/又は可聴警報を使用して、ユーザに知らせてもよい。例えば、デバイス2000は、ナビ方向がダウンロードされ閲覧可能になったことを振動してユーザに警報することができる。このようにして、デバイス2000は、ユーザの入力が処理されている間、ユーザがデバイスに注目しなければならないことから解放することができる。このような技法はまた、デバイス2000がそのタッチスクリーンを直ちに電源切断し、その仮想アシスタントが継続してタスクを実行する間、バッテリ電力を節約することも可能にする。
6.仮想アシスタントをトリガする例示的なプロセス
【0258】
図12は、いくつかの実施形態に係る、電子デバイス上の仮想アシスタントをトリガする方法1200を示すフロー図である。方法1200は、いくつかの実施形態では、デバイス104、デバイス200、デバイス400、デバイス800、及びデバイス1600(
図1、
図2、
図4、
図8、及び
図16)のうち1つにおいて行われる。いくつかの実施形態では、方法1200は、タッチスクリーンを有するデバイスにおいて行われる。いくつかの実施形態では、方法1200は、別個のディスプレイスクリーン及びタッチ感知面を有するデバイスにおいて行われる。方法1200の動作は任意選択的に、組み合わされ、かつ/又は一部の動作の順序は任意選択的に変更される。
【0259】
ブロック1202では、電子デバイスのディスプレイがオンしている間に、デバイスは、デバイスの入力コンポーネントを介してユーザ入力を検出する。ブロック1204において、デバイスは、入力が所定の条件を満たすかを判定する。入力が所定の条件を満たす場合、処理は、1206に進み、そこで、デバイスは、マイクロフォンを介して受信したオーディオ入力をサンプリングする。入力が所定の条件を満たさない場合、処理は、ブロック1202に戻り、そこでデバイスは、別のユーザ入力を検出することができる。
【0260】
いくつかの実施形態では、所定の条件は、デバイスのディスプレイスクリーンがオンであることである。デバイスは、ディスプレイがオンしているかを、例えば、そのバックライトが点灯しているかを判定することによって判定する。
【0261】
いくつかの実施形態では、所定の条件は、(
図8A及び
図8Bに見られるように)デバイスを閲覧位置に持ち上げるなどのデバイスの移動である。デバイスの移動が持ち上げ移動を構成するかどうかは、いくつかの実施形態では、時間にわたる加速度計の読み取り値に基づくものである。デバイスの移動が持ち上げ移動を構成するかどうかは、いくつかの実施形態では、時間にわたる加速度計の読み取り値の平滑度に基づくものである。デバイスの移動が持ち上げ移動を構成するかどうかは、いくつかの実施形態では、滞留時間の最小期間(例えば、相対的に移動しないすなわち安定している期間)の感知に基づくものである。
【0262】
図8A~
図8B(並びに
図10A~
図10B)に示す例示的な持ち上げ移動では、ユーザ802は、
図8Aの降下位置から
図8Bの引き上げ位置までデバイス800を引き上げる。この移動は、一方向(例えば、y軸に沿った垂直方向)における時間にわたる加速と、別の方向(例えば、x軸の周りの水平回転)における時間にわたる回転加速とを含み、その両方が、デバイス800の加速度センサによって判定され得る。任意選択的に、係る持ち上げ移動の平滑度は、時間にわたる加速度センサの読み取り値の変動を比較することによって判定され得る。任意選択的に、持ち上げ移動は、ユーザが引き上げ位置にあるデバイスのタッチスクリーンをちらっと見ると、終了する。ユーザ802がデバイス800のディスプレイに注目するときの相対的に変動しない期間は、加速度センサの読み取り値を用いて判定され得る。デバイス800は、いくつかの実施形態では、マイクロフォンを介してオーディオ入力をサンプリングするための所定の条件が満たされるかどうかを判定する際に、これらの加速度計の読み取り値の少なくとも一部を用いる。
【0263】
電子デバイスの引き上げジェスチャを判定する技法に関する追加の詳細は、例えば、2014年7月18日に出願された「Raise Gesture Detection in a Device」と題する米国仮特許出願第62/026,532号に記載され、その内容は、ここに参照により組み込まれる。簡潔性のために、この出願の内容は、ここでは繰り返さない。
【0264】
いくつかの実施形態では、所定の条件は、機械式ボタン、タッチ感知式ボタン、回転可能入力デバイスなどの入力デバイスのアクティブ化である。いくつかの実施形態では、所定の条件は、タッチ感知面又は(
図8Aに示すタッチスクリーン804などの)タッチスクリーンへのタッチである。
【0265】
任意選択的に、ブロック1204では、デバイスは、そのオーディオ出力がミュートされている所定のモード(例えば、「邪魔しないでください」)で動作しているかを判定する。デバイスがこのようなモードで動作している場合、処理はブロック1202に戻るものであり、これは、デバイスが仮想アシスタントをトリガするオーディオのサンプリングを見送ることを意味するものである。
【0266】
いくつかの実施形態では、ブロック1206でのオーディオのサンプリングは、デバイスのマイクロフォンの電源をオンすることを伴う。いくつかの実施例では、オーディオのサンプリングは、信号処理を実行するために追加の電気回路の電源をオンすることを伴う。いくつかの実施例では、オーディオのサンプリングは、マイクロフォンから受信したオーディオ入力を、デバイスの1つ以上のプロセッサ上で実行されるソフトウェア認識アルゴリズムに渡すことを伴う。
【0267】
ブロック1206でオーディオ入力をサンプリングした後、デバイスは、ブロック1208に進み、そこでサンプリングされたオーディオ入力は仮想アシスタントをトリガする口頭トリガを含むかを判定する。サンプリングされたオーディオ入力が口頭トリガを含む場合、処理は、ブロック1210に進み、そこで、デバイスは、(例えば、
図8Cに示すユーザインタフェース812を表示することによって)仮想アシスタントセッションをトリガする。いくつかの実施形態では、口頭トリガは、「hey Siri.」などの所定のフレーズである。
【0268】
サンプリングされたオーディオ入力が口頭トリガを含まない場合、処理は、ブロック1212に進み、そこでデバイスは、オーディオ入力を継続してサンプリングすべきかを判定する。デバイスは、オーディオ入力を継続してサンプリングする場合、処理は、ブロック1206に戻り、そこで、オーディオサンプリングを継続する。デバイスは、オーディオ入力のサンプリングを中止する場合、処理は、ブロック1214に進み、そこで、オーディオサンプリングは停止する。
【0269】
いくつかの実施形態では、デバイスは、デバイスのディスプレイがオフになった後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、持続時間8秒などの、閾値の持続時間の間、サンプリングした後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、機械式ボタン、タッチ感知式ボタン、回転可能入力デバイスなどの入力デバイスのアクティブ化を検出した後、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、タッチ感知面又はタッチスクリーンへのタッチなどの入力デバイスのアクティブ化を検出した後、オーディオのサンプリングを中止する。
【0270】
いくつかの実施形態では、デバイスは、デバイスにインストールされた別のアプリケーションを呼び出すユーザ入力など、介在入力が受信された後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下量に基づいて、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下の平滑度に基づいて、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、オーディオ入力内のオーディオ終点を特定した後、オーディオ入力のサンプリングを中止する。例示的な終点には、受信したオーディオ入力が(バックグラウンドノイズとは対照的に)近距離音声となるには音量が小さすぎること、人間の音声である可能性が低いこと、ユーザの口頭入力における停止などを示すものが含まれる。
【0271】
いくつかの実施形態では、デバイスは、デバイスのマイクロフォンの電源をオフすることによってブロック1214でのオーディオ中止のサンプリングを中止する。いくつかの実施形態では、マイクロフォンの信号処理を実行する付随回路の電源をオフすることによって、オーディオのサンプリングは中止する。いくつかの実施形態では、オーディオのサンプリングは、マイクロフォンから受信したオーディオ入力をソフトウェア認識アルゴリズムにより処理しないことによって中止する。任意選択的に、ブロック1214では、デバイスは、オーディオサンプリングの端部を示す触覚、オーディオ及び視覚出力のうち1つ以上を提供する。
【0272】
図12における動作について記載された特定の順序は単なる例示であり、記載された順序は、動作が実行され得る唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法(例えば、方法1300及び1500)に対して本明細書で記載されている他のプロセスの詳細はまた、類似の方法で、
図12に対して上述した方法1200に適用可能であることも留意されたい。例えば、方法1200を実行するデバイスは、仮想アシスタントのユーザによる間違った取り消しを克服するために、方法1500(
図15)を実行することも可能である。簡潔性のために、これらの詳細は、ここでは繰り返さない。
【0273】
図13は、いくつかの実施形態に係る、電子デバイス上の仮想アシスタントをトリガする方法1300を示すフロー図である。方法1300は、いくつかの実施形態では、デバイス104、デバイス200、デバイス400、デバイス900、及びデバイス1700(
図1、
図2、
図4、
図8、及び
図17)のうちの1つにおいて行われる。いくつかの実施形態では、方法1300は、タッチスクリーンを有するデバイスにおいて行われる。いくつかの実施形態では、方法1300は、別個のディスプレイスクリーン及びタッチ感知面を有するデバイスにおいて行われる。方法1300における動作は任意選択的に組み合わされ、かつ/又は一部の動作の順序は任意選択的に変更される。
【0274】
ブロック1302では、電子デバイスは、ソフトウェアイベントを検出する。ブロック1304では、デバイスは、ソフトウェアイベントが所定の条件を満たすかを判定する。ソフトウェアイベントが所定の条件を満たす場合、処理は、ブロック1306に進み、デバイスは、マイクロフォンを介して受信したオーディオ入力のサンプリングを始める。ソフトウェアイベントが所定の条件を満たさない場合、処理は、ブロック1302に戻り、そこでデバイスは、別のソフトウェアイベントを検出することができる。
【0275】
図9Aの説明では、着信テキストメッセージ912の通知906は、デバイス900にオーディオ入力をサンプリングさせる所定の条件を満たす。いくつかの実施形態では、所定の条件は、ソフトウェアイベントがデバイスのオペレーティングシステムによってトリガされたオペレーティングシステムのイベントであることである。オペレーティングシステムによってトリガされた例示的なソフトウェアイベントは、デバイスがケーブルを介してコンピュータに接続されていたという警報などの、デバイス900のハードウェアコンポーネントについての警報を含む。いくつかの実施形態では、所定の条件は、ソフトウェアイベントがデバイス上で実行されているアプリケーションによってトリガされたアプリケーションベースのイベントであることである。デバイスのアプリケーションによってトリガされた例示的なソフトウェアイベントは、カレンダーのリマインダ、タスクのリマインダなどを含む。デバイス900のオペレーティングシステム及び/又はアプリケーションによってトリガされたと考えられ得る例示的なソフトウェアイベントは、アラーム又はタイマーの満了などの時計イベントを含む。
【0276】
いくつかの実施形態では、所定の条件は、ソフトウェアイベントが外部ソースによってトリガされたイベントであることである。外部ソースによってトリガされた例示的なソフトウェアイベントとしては、入呼(例えば、音声又はビデオベースの、セルラー又はWiFiベースの呼び出し)、メッセージ(例えば、電子メール、テキストメッセージSMS、マルチメディアメッセージ、iMessageなど)、カレンダー招待状などが挙げられる。外部ソースによってトリガされた例示的なソフトウェアイベントとしては、ウェブサイト又はサービス上で新しく利用可能な情報が利用できることを示す警報などの、アプリケーションベースの通知及び警報も挙げられる。
【0277】
いくつかの実施形態では、所定の条件は、ソフトウェアイベントが仮想アシスタントセッションがデバイス上でアクティブであることを示すことである。
【0278】
任意選択的に、ブロック1304では、デバイスは、そのオーディオ出力がミュートされている所定のモード(例えば、「邪魔しないでください」)で動作しているかを判定する。デバイスがこのようなモードで動作している場合、処理はブロック1302に戻るものであり、これは、デバイスが仮想アシスタントをトリガするオーディオのサンプリングを見送ることを意味するものである。
【0279】
任意選択的に、ブロック1304では、デバイスはそのディスプレイスクリーンがオンであることを判定する。デバイスは、ディスプレイがオンしているかを、例えば、そのバックライトが点灯しているかを判定することによって判定する。デバイスのディスプレイがオフである場合、処理はブロック1302に戻るものであり、これは、デバイスが仮想アシスタントをトリガするオーディオのサンプリングを見送ることを意味するものである。
【0280】
ブロック1306でオーディオ入力をサンプリングした後、デバイスは、ブロック1308に進み、そこでサンプリングされたオーディオ入力は仮想アシスタントをトリガする口頭トリガを含むかを判定する。サンプリングされたオーディオ入力が口頭トリガを含む場合、処理は、ブロック1310に進み、そこで、デバイスは仮想アシスタントセッションをトリガし、任意選択的に、(
図9B及び
図9Cの例示的説明で見られるように)ユーザの口頭入力に基づいてタスクを実行する。いくつかの実施形態では、口頭トリガは、「hey Siri.」などの所定のフレーズである。
【0281】
サンプリングされたオーディオ入力が口頭トリガを含まない場合、処理は、ブロック1312に進み、そこでデバイスは、オーディオ入力を継続してサンプリングすべきかを判定する。デバイスは、オーディオ入力を継続してサンプリングする場合、処理は、ブロック1306に戻り、そこで、オーディオサンプリングを継続する。デバイスは、オーディオ入力のサンプリングを中止する場合、処理は、ブロック1314に進み、そこで、オーディオサンプリングは停止する。
【0282】
いくつかの実施形態では、デバイスは、デバイスのディスプレイがオフになった後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、持続時間8秒などの、閾値の持続時間の間、サンプリングした後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、機械式ボタン、タッチ感知式ボタン、回転可能入力デバイスなどの入力デバイスのアクティブ化を検出した後、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、タッチ感知面又はタッチスクリーンへのタッチなどの入力デバイスのアクティブ化を検出した後、オーディオのサンプリングを中止する。
【0283】
いくつかの実施形態では、デバイスは、デバイスにインストールされた別のアプリケーションを呼び出すユーザ入力など、介在入力が受信された後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下量に基づいて、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下の平滑度に基づいて、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、オーディオ入力内のオーディオ終点を特定した後、オーディオ入力のサンプリングを中止する。例示的な終点には、受信したオーディオ入力が(バックグラウンドノイズとは対照的に)近距離音声になるには音量が小さすぎること、人間の音声である可能性が低いこと、ユーザの口頭入力における停止などを示すものが含まれる。
【0284】
いくつかの実施形態では、デバイスは、デバイスのマイクロフォンの電源をオフすることによってブロック1314でのオーディオ中止のサンプリングを中止する。いくつかの実施形態では、マイクロフォンの信号処理を実行する付随回路の電源をオフすることによって、オーディオのサンプリングは中止する。いくつかの実施形態では、オーディオのサンプリングは、マイクロフォンから受信したオーディオ入力をソフトウェア認識アルゴリズムにより処理しないことによって中止する。任意選択的に、ブロック1314では、デバイスは、オーディオサンプリングの端部を示す触覚、オーディオ及び視覚出力のうち1つ以上を提供する。
【0285】
図13における動作について記載された特定の順序は単なる例示であり、記載された順序は、動作が実行され得る唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法(例えば、方法1200及び1500)に対して本明細書で記載されている他のプロセスの詳細はまた、類似の方法で、
図13に対して上述した方法1300に適用可能であることも留意されたい。例えば、方法1300を実行するデバイスは、仮想アシスタントのユーザによる間違った取り消しを克服するために、方法1500(
図15)を実行することも可能である。簡潔性のために、これらの詳細は、ここでは繰り返さない。
【0286】
図14は、いくつかの実施形態に係る、電子デバイス上の仮想アシスタントをトリガする方法1400を示すフロー図である。方法1400は、いくつかの実施形態では、デバイス104、デバイス200、デバイス400、デバイス1000、及びデバイス1800(
図1、
図2、
図4、
図10、及び
図18)のうち1つにおいて行われる。いくつかの実施形態では、方法1400は、タッチスクリーンを有するデバイスにおいて行われる。いくつかの実施形態では、方法1400は、別個のディスプレイスクリーン及びタッチ感知面を有するデバイスにおいて行われる。方法1400における動作は任意選択的に組み合わされ、かつ/又は一部の動作の順序は任意選択的に変更される。
【0287】
ブロック1402では、デバイスは、デバイスの入力コンポーネントを介してユーザ入力を検出する。ブロック1404では、デバイスは、入力が所定の条件を満たすかを判定する。入力が所定の条件を満たす場合、処理は、1406に進み、そこで、デバイスは、マイクロフォンを介して受信したオーディオ入力をサンプリングする。入力が所定の条件を満たさない場合、処理は、ブロック1402に戻り、そこでデバイスは、別のユーザ入力を検出することができる。
【0288】
いくつかの実施形態では、所定の条件は、デバイスがそのディスプレイがオフしている間に、ユーザ入力を受信することである。デバイスは、ディスプレイがオフしているかを、例えば、そのバックライトが点灯しているかを判定することによって判定する。
【0289】
いくつかの実施形態では、所定の条件は、(例えば、
図8A~
図8B及び
図10A~
図10Bに見られるように)デバイスを閲覧位置に持ち上げるなどのデバイスの移動である。いくつかの実施形態では、所定の条件は、電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの持ち上げ量に基づくものである。いくつかの実施形態では、所定の条件は、電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの持ち上げの平滑度に基づくものである。いくつかの実施形態では、所定の条件は、電子デバイスの持ち上げに従う位置での滞留時間の最小期間を含む。
【0290】
いくつかの実施形態では、所定の条件は、機械式ボタン、タッチ感知式ボタン、回転可能入力デバイスなどの入力デバイスのアクティブ化である。いくつかの実施例では、所定の条件は、タッチ感知面又はタッチスクリーンへのタッチである。
【0291】
任意選択的に、ブロック1404では、デバイスは、そのオーディオ出力がミュートされている所定のモード(例えば、「邪魔しないでください」)で動作しているかを判定する。デバイスがこのようなモードで動作している場合、処理はブロック1402に戻るものであり、これは、デバイスが仮想アシスタントをトリガするオーディオのサンプリングを見送ることを意味するものである。
【0292】
いくつかの実施形態では、ブロック1406でのオーディオのサンプリングは、デバイスのマイクロフォンの電源をオンすることを伴う。いくつかの実施形態では、オーディオのサンプリングは、信号処理を実行するために追加の電気回路の電源をオンすることを伴う。いくつかの実施形態では、オーディオのサンプリングは、マイクロフォンから受信したオーディオ入力を、デバイスの1つ以上のプロセッサ上で実行されるソフトウェア認識アルゴリズムに渡すことを伴う。
【0293】
いくつかの実施形態では、デバイスは、そのディスプレイをオンにせずに(例えば、ディスプレイのバックライトをオンにしないことによって)、ブロック1402(そこで入力が検出される)からブロック1406(そこでオーディオのサンプリングが発生する)に進む。任意選択的に、デバイスは、そのディスプレイの電源をオンせずに、ブロック1406で触覚及びオーディオ出力の少なくとも1つを提供する。いくつかの実施形態では、デバイスは、オーディオ入力のサンプリングを開始するとき、そのディスプレイ以外の光源から視覚出力を提供する。
【0294】
ブロック1406でオーディオ入力をサンプリングした後、デバイスは、ブロック1408に進み、そこでサンプリングされたオーディオ入力は仮想アシスタントをトリガする口頭トリガを含むかを判定する。サンプリングされたオーディオ入力が口頭トリガを含む場合、処理は、ブロック1410に進み、そこで、デバイスは、仮想アシスタントセッションをトリガする。いくつかの実施形態では、口頭トリガは、「hey Siri.」などの所定のフレーズである。
【0295】
いくつかの実施形態では、デバイスは、デバイスのディスプレイをオフにしたまま(例えば、ディスプレイのバックライトをオンにしないことによって)、ブロック1402(そこで入力が検出される)からブロック1408(そこで仮想アシスタントがトリガされる)に進む。いくつかの実施形態では、デバイスは、ブロック1410で仮想アシスタントをトリガするとき、触覚及びオーディオ出力の少なくとも1つを提供する。いくつかの実施形態では、デバイスは、ブロック1410で仮想アシスタントをトリガするとき、そのディスプレイ以外の光源から視覚出力を提供する。
【0296】
サンプリングされたオーディオ入力が口頭トリガを含まない場合、処理は、ブロック1412に進み、そこでデバイスは、オーディオ入力を継続してサンプリングすべきかを判定する。デバイスは、オーディオ入力を継続してサンプリングする場合、処理は、ブロック1406に戻り、そこで、オーディオサンプリングを継続する。デバイスは、オーディオ入力のサンプリングを中止する場合、処理は、ブロック1414に進み、そこで、オーディオサンプリングは停止する。
【0297】
いくつかの実施形態では、デバイスは、持続時間8秒などの、閾値の持続時間にわたってサンプリングした後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、機械式ボタン、タッチ感知式ボタン、回転可能入力デバイスなどの入力デバイスのアクティブ化を検出した後、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、タッチ感知面又はタッチスクリーンへのタッチなどの入力デバイスのアクティブ化を検出した後、オーディオのサンプリングを中止する。
【0298】
いくつかの実施形態では、デバイスは、デバイスにインストールされた別のアプリケーションを呼び出すユーザ入力など、介在入力が受信された後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下量に基づいて、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下の平滑度に基づいて、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、オーディオ入力内のオーディオ終点を特定した後、オーディオ入力のサンプリングを中止する。例示的な終点には、受信したオーディオ入力が(バックグラウンドノイズとは対照的に)近距離音声になるには音量が小さすぎること、人間の音声である可能性が低いこと、ユーザの口頭入力における停止などを示すものが含まれる。
【0299】
いくつかの実施形態では、デバイスは、デバイスのマイクロフォンの電源をオフすることによってブロック1414でのオーディオのサンプリングを中止する。いくつかの実施形態では、マイクロフォンの信号処理を実行する付随回路の電源をオフすることによって、オーディオのサンプリングは中止する。いくつかの実施形態では、オーディオのサンプリングは、マイクロフォンから受信したオーディオ入力をソフトウェア認識アルゴリズムにより処理しないことによって中止する。
【0300】
任意選択的に、デバイスは、そのディスプレイをオンせずに、オーディオ入力のサンプリングを中止するとき、触覚及びオーディオ出力の少なくとも1つを提供する。いくつかの実施形態では、デバイスは、オーディオ入力のサンプリングを中止するとき、そのディスプレイ以外の光源から視覚出力を提供する。
【0301】
図14における動作について記載された特定の順序は単なる例示であり、記載された順序は、動作が実行され得る唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法(例えば、方法1300及び1500)に対して本明細書で記載されている他のプロセスの詳細はまた、類似の方法で、
図14に対して上述した方法1400に適用可能であることも留意されたい。例えば、方法1400を実行するデバイスは、仮想アシスタントのユーザによる間違った取り消しを克服するために、方法1500(
図15)を実行することも可能である。簡潔性のために、これらの詳細は、ここでは繰り返さない。
【0302】
図15は、いくつかの実施形態に係る、電子デバイス上の仮想アシスタントをトリガする方法1500を示すフロー図である。方法1500は、いくつかの実施形態では、デバイス104、デバイス200、デバイス400、デバイス1100、及びデバイス1900(
図1、
図2、
図11、及び
図19)のうちの1つにおいて行われる。いくつかの実施形態では、方法1500は、タッチスクリーンを有するデバイスにおいて行われる。いくつかの実施形態では、方法1500は、別個のディスプレイスクリーン及びタッチ感知面を有するデバイスにおいて行われる。方法1500における動作は任意選択的に、組み合わされ、かつ/又は一部の動作の順序は任意選択的に変更される。
【0303】
ブロック1502では、電子デバイスは、オーディオ入力をサンプリングし、オーディオ入力が実行可能タスク、例えば、口頭自然言語で提供されるユーザ要求を表すかを判定する。オーディオ入力をサンプリングしている間に、デバイスは、
図11Aのスクリーン1106などの、そのサンプリングを示すUIを提供することができる。
【0304】
いくつかの実施形態では、オーディオ入力のサンプリングは、デバイスのディスプレイの電源がオンしているときに、例えば、ディスプレイのバックライトが点灯しているときに、発生する。いくつかの実施形態では、デバイスは、(
図8A~
図8B、
図10A~
図10B、及び
図11Aに見られるように)デバイスを閲覧位置に持ち上げるなどの所定の条件を満たす移動に応じて、オーディオ入力をサンプリングする。いくつかの実施形態では、所定の条件は、電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの持ち上げ量に基づくものである。いくつかの実施形態では、所定の条件は、電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの持ち上げの平滑度に基づくものである。いくつかの実施形態では、所定の条件は、電子デバイスの持ち上げに従う位置での滞留時間の最小期間を含む。
【0305】
いくつかの実施形態では、所定の条件は、機械式ボタン、タッチ感知式ボタン、回転可能入力デバイスなどの入力デバイスのアクティブ化である。いくつかの実施形態では、所定の条件は、タッチ感知面又はタッチスクリーンへのタッチである。
【0306】
ブロック1504では、オーディオ入力をサンプリングする間に、電子デバイスは、オーディオ入力のサンプリングを中止する命令を受信する。いくつかの実施形態では、デバイスは、デバイスのユーザからオーディオ入力のサンプリングを中止する命令を受信するように適合される。命令は、例えば、デバイスのマイクロフォンを介して口頭命令として受信され得る。また、命令は、例えば、
図11Aのアフォーダンス1108へのタッチなど、タッチ感知面又はタッチスクリーンへのタッチなど、入力デバイスのアクティブ化を検出することによって受信され得る。更に、命令は、例えば、機械式ボタン、タッチ感知式ボタン、回転可能入力デバイスなどのアクティブ化を検出することによって受信され得る。
【0307】
いくつかの実施形態では、デバイスは、デバイスの外部の別の電子デバイスからオーディオ入力のサンプリングを中止する命令を受信するように適合される。命令はセルラー通信、Bluetooth通信、WiFi通信などの通信媒体を通じて受信され得る。
【0308】
いくつかの実施形態では、ブロック1504では、デバイスは、ユーザに口頭入力を促す。いくつかの実施形態では、ブロック1504では、デバイスは、オーディオ入力が要求を表すかを判定し、オーディオ入力がタスクを表すかの判定に従い、デバイスは、オーディオ入力の少なくとも一部に基づいてユーザ意図を判定し、ユーザ意図に基づいてタスクを特定し実行し、更に、タスクの実行を表す触覚、オーディオ及び視覚出力の少なくとも1つを提供する。
【0309】
ブロック1506では、オーディオ入力のサンプリングを中止する命令に応じて、デバイスは、出力肯定応答を提供する。この肯定応答は、例えば、仮想アシスタントが取り消されたことをユーザに報告する。いくつかの実施形態では、肯定応答は、触覚、オーディオ及び視覚出力のうち1つ以上を伴う。いくつかの実施形態では、肯定応答は、
図11Bに見られるようにディスプレイをオフにすることを伴う。
【0310】
いくつかの実施形態では、ブロック1504でオーディオ入力のサンプリングを中止する命令を受信した後、かつ、ブロック1506で肯定応答を提供した後、処理は、ブロック1508に進み、そこで、デバイスは、(デバイスがオーディオ入力のサンプリングを中止した後の)限られた時間の間、オーディオ入力を継続してサンプリングし、オーディオ入力がユーザタスクを含むかを判定する。
【0311】
いくつかの実施形態では、デバイスは、デバイスのディスプレイがオフになった後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、持続時間8秒などの、閾値の持続時間の間、継続してサンプリングした後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、機械式ボタン、タッチ感知式ボタン、回転可能入力デバイスなどの入力デバイスのアクティブ化を検出した後、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、タッチ感知面又はタッチスクリーンへのタッチなどの入力デバイスのアクティブ化を検出した後、オーディオのサンプリングを中止する。
【0312】
いくつかの実施形態では、デバイスは、デバイスにインストールされた別のアプリケーションを呼び出すユーザ入力など、介在入力が受信された後、オーディオ入力のサンプリングを中止する。いくつかの実施形態では、デバイスは、電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下量に基づいて、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下の平滑度に基づいて、オーディオのサンプリングを中止する。いくつかの実施形態では、デバイスは、オーディオ入力内のオーディオ終点を特定した後、オーディオ入力のサンプリングを中止する。例示的な終点には、受信したオーディオ入力が(バックグラウンドノイズとは対照的に)近距離音声になるには音量が小さすぎること、人間の音声である可能性が低いこと、ユーザの口頭入力における停止などを示すものが含まれる。
【0313】
いくつかの実施形態では、オーディオ入力のサンプリングを中止する命令を受信した後1504、デバイスは、オーディオ入力のサンプリングを中止する命令がユーザか、それとも外部デバイスから生じるかを判定する。オーディオ入力が外部デバイスから生じたとの判定に従い、デバイスはすぐにオーディオ入力のサンプリングを中止する。
【0314】
いくつかの実施形態では、デバイスは、デバイスのマイクロフォンの電源をオフすることによってブロック1506でのオーディオ中止のサンプリングを中止する。いくつかの実施形態では、マイクロフォンの信号処理を実行する付随回路の電源をオフすることによって、オーディオのサンプリングは中止する。いくつかの実施形態では、オーディオのサンプリングは、マイクロフォンから受信したオーディオ入力をソフトウェア認識アルゴリズムにより処理しないことによって中止する。任意選択的に、ブロック1506では、デバイスは、オーディオサンプリングの端部を示す触覚、オーディオ及び視覚出力のうち1つ以上を提供する。
【0315】
図15における動作について記載された特定の順序は単なる例示であり、記載された順序は、動作が実行され得る唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法(例えば、方法1200、1300、1400及び2100)に対して本明細書で記載されている他のプロセスの詳細はまた、類似の方法で、
図15に対して上述した方法1500に適用可能であることも留意されたい。例えば、方法1500を実行するデバイスは、仮想アシスタントセッションをトリガする方法1400を実行することも可能である。簡潔性のために、これらの詳細は、ここでは繰り返さない。
【0316】
図21は、いくつかの実施形態に係る、電子デバイス上の仮想アシスタントをトリガする方法2100を示すフロー図である。方法2100は、いくつかの実施形態では、デバイス104、デバイス200、デバイス400、及びデバイス2000(
図1、
図2、
図4、
図8、及び
図20)のうちの1つにおいて行われる。いくつかの実施形態では、方法2100は、タッチスクリーンを有するデバイスにおいて行われる。いくつかの実施形態では、方法2100は、別個のディスプレイスクリーン及びタッチ感知面を有するデバイスにおいて行われる。方法1200の動作は任意選択的に組み合わされ、かつ/又は一部の動作の順序は任意選択的に変更される。
【0317】
ブロック2102では、仮想アシスタントなどの所定のサービスがデバイス上で実行される間、デバイスは、口頭入力などのユーザの自然言語入力を検出する。ブロック2104では、デバイスは、実行される1つ以上のコンピューティングタスクを特定することによってユーザの入力を実行する。ブロック2106では、1つ以上のタスクを実行する間、デバイスは、(例えば、スクリーンのバックライトをオフにすることによって)そのディスプレイスクリーンを電源遮断する。ブロック2108では、1つ以上のコンピューティングタスクを完了した後、デバイスは、触覚及び/又はオーディオ出力を提供する。
【0318】
図21における動作について記載された特定の順序は単なる例示であり、記載された順序は、動作が実行され得る唯一の順序であることを示すことを意図するものではないことを理解されたい。当業者であれば、本明細書で説明される動作の順序換えをする様々な方法を認識するであろう。加えて、本明細書に記載の他の方法(例えば、方法1200、1300、1400及び1500)に対して本明細書で記載されている他のプロセスの詳細はまた、類似の方法で、
図21に対して上述した方法2100に適用可能であることも留意されたい。例えば、方法2100を実行するデバイスは、仮想アシスタントセッションをトリガする方法1400を実行することも可能である。簡潔性のために、これらの詳細は、ここでは繰り返さない。
【0319】
なお、ブロック1206、1306、1406及び1502(
図12、13、14及び15)でのオーディオ入力のサンプリングは、電子デバイスが充電中かどうかに関係なく発生することができる。しかし、係るオーディオ入力のサンプリングは、デバイスの残存するバッテリレベルに依存する場合がある。いくつかの実施例では、デバイスは、上述したプロセスと一貫してオーディオ入力をサンプリングすることができるが、残存するバッテリレベルが閾値以下のときは、オーディオ入力のサンプリングを見送ってもよい。
【0320】
いくつかの実施形態によれば、
図16は、
図8及び
図12を参照して説明したものを含む、説明される様々な実施形態の原理に従って構成された電子デバイス1600の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図16で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることを当業者は理解する。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【0321】
図16に示すように、電子デバイス1600は、グラフィカルユーザインタフェースを表示するように構成されたディスプレイユニット1602と、接触を受信する任意選択のタッチ感知面ユニット1604と、オーディオ入力を検出するマイクロフォンユニット1606と、時間インターバルにおける加速度などの移動読み取り値を取得する任意選択の移動センサユニット1608と、ボタンなどの任意選択の入力デバイスユニット1610と、オーディオ、触覚及び/又は視覚フィードバックを提供する任意選択のフィードバックユニット1612と、上述したユニットに連結された処理ユニット1614と、を備える。いくつかの実施形態では、処理ユニット1614は、表示有効化ユニット1616と、入力検出ユニット1618と、オーディオサンプリングユニット1620と、オーディオ処理ユニット1622と、仮想アシスタントサービスユニット1624と、任意選択で、フィードバック有効化ユニット1626と、を備える。
【0322】
いくつかの実施形態では、処理ユニット1614は、ディスプレイがオンしている間に(例えば、表示有効化ユニット1616を用いて)入力デバイスを介して、所定の条件を満たすユーザ入力を受信し、(例えば、入力検出ユニット1618を用いて)所定の条件を満たすユーザ入力の受信に従い、(例えば、マイクロフォンユニット1606から)マイクロフォンを介して受信したオーディオ入力を(例えば、オーディオサンプリングユニット1620を用いて)サンプリングし、オーディオ入力が口頭トリガを含むかを(例えば、オーディオ処理ユニット1622を用いて)判定し、オーディオ入力が口頭トリガを含むとの(例えば、オーディオ処理ユニット1622を用いた)判定に従い、(例えば、仮想アシスタントサービスユニット1624を用いて)仮想アシスタントセッションをトリガするように構成される。
【0323】
いくつかの実施形態では、所定の条件は、電子デバイスの加速度計(例えば、移動センサユニット1608)から判定された、時間インターバル中の電子デバイスの持ち上げ量に基づくものである。いくつかの実施形態では、所定の条件は、電子デバイスの加速度計(例えば、移動センサユニット1608)から判定された、時間インターバル中の電子デバイスの持ち上げの平滑度に基づくものである。いくつかの実施形態では、所定の条件は、電子デバイスの持ち上げに従う位置での滞留時間の最小期間を含む。いくつかの実施形態では、所定の条件は、電子デバイスのボタン(例えば、入力デバイスユニット1610)のアクティブ化を検出する(例えば、入力検出ユニット1618)ことを含む。
【0324】
いくつかの実施形態では、所定の条件は、電子デバイスのタッチ感知面(例えば、タッチ感知面ユニット1604)へのタッチ入力を検出することを含む。
【0325】
いくつかの実施形態では、処理ユニットは、ディスプレイがオンしているかを(例えば、表示可能化ユニット1616を用いて)判定し、ディスプレイがオンしているとの判定に従い、(例えば、オーディオサンプリングユニット1620を用いて)オーディオ入力のサンプリングが発生するように更に構成される。いくつかの実施形態では、処理ユニットは、ディスプレイがオンしているかの判定に従い、ディスプレイのバックライトがオンしているかを(例えば、表示有効化ユニット1616を用いて)判定するように更に構成される。
【0326】
いくつかの実施形態では、処理ユニットは、所定の持続時間の間、(例えば、オーディオサンプリングユニット1620を用いて)オーディオ入力のサンプリングが発生した後、オーディオ入力のサンプリングを中止するように更に構成される。
【0327】
いくつかの実施形態では、所定の条件を満たすユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、処理ユニット1614は、第1のユーザ入力の受信に従い、(例えば、オーディオサンプリングユニット1620を用いて)オーディオ入力をサンプリングする間に、(例えば、入力検出ユニット1618を用いて)第2の所定の条件を満たす第2のユーザ入力を受信し、第2の所定の条件を満たす第2のユーザ入力の受信に従い、オーディオ入力のサンプリングを(例えば、オーディオサンプリングユニット1620を用いて)中止するように更に構成される。
【0328】
いくつかの実施形態では、第2の所定の条件は、(例えば、移動センサユニット1608を用いて)電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下量に基づくものである。
【0329】
いくつかの実施形態では、第1の所定の条件は、(例えば、移動センサユニット1608を用いて)電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下の平滑度に基づくものである。
【0330】
いくつかの実施形態では、第2の所定の条件は、電子デバイスのボタンのアクティブ化を(例えば、入力検出ユニット1618を用いて)検出することを含む。いくつかの実施形態では、第2の所定の条件は、電子デバイスのタッチ感知面上のタッチ入力を検出することを含む。
【0331】
いくつかの実施形態では、処理ユニット1614は、(例えば、オーディオサンプリングユニット1620を用いた)所定の条件を満たすユーザ入力の受信に従い、オーディオ入力をサンプリングする間に、ディスプレイがオフかを(例えば、表示有効化ユニット1616を用いて)判定し、ディスプレイがオフしているとの判定に従い、(例えばオーディオサンプリングユニット1620を用いて)オーディオ入力のサンプリングを中止するように更に構成される。
【0332】
いくつかの実施形態では、処理ユニット1614は、(例えば、オーディオサンプリングユニット1620を用いた)所定の条件を満たすユーザ入力の受信に従い、オーディオ入力をサンプリングする間に、(例えば、オーディオ処理ユニット1622を用いて)オーディオ入力内のオーディオ終点を特定し、オーディオ終点の特定に応じて、(例えばオーディオサンプリングユニット1620を用いて)オーディオ入力のサンプリングを中止するように更に構成される。
【0333】
いくつかの実施形態では、処理ユニット1614は、オーディオ入力のサンプリングの中止に従い、(例えば、フィードバック有効化ユニット1626及び/又はフィードバックユニット1612を用いて)触覚出力を発生するように更に構成される。
【0334】
いくつかの実施形態では、処理ユニット1614は、(例えば、仮想アシスタントサービスユニット1624を用いた)仮想アシスタントセッションのトリガに従い、ユーザに(例えば、ディスプレイユニット1602及び/又はフィードバックユニット1612を用いた)口頭入力を(例えば、表示可能化ユニット1616及び/又はフィードバック有効化ユニット1626を用いて)促すように更に構成される。
【0335】
いくつかの実施形態では、オーディオ入力は、口頭トリガ及び追加入力を含み、処理ユニット1614は、仮想アシスタントセッションのトリガに従い、オーディオ入力内の少なくとも追加入力に基づいてユーザ意図を判定するとともに、(例えば、仮想アシスタントサービスユニット1624を用いて)ユーザ意図に関連付けられたタスクを実行するように更に構成される。
【0336】
いくつかの実施形態では、処理ユニット1614は、(例えば、仮想アシスタントサービスユニット1624を用いて)電子デバイスが所定のモードで動作しているとの判定に従い、ディスプレイがオンしている間に所定の条件を満たすユーザ入力を受信した後であっても、(例えば、オーディオサンプリングユニット1620を用いて)オーディオ入力のサンプリングを見送るように更に構成される。
【0337】
いくつかの実施形態では、所定のモードでの動作は、電子デバイスのオーディオ出力をミュートすることを含む。いくつかの実施形態では、口頭トリガは、所定のフレーズを含む。
【0338】
図12を参照して上述された動作は、
図1、
図2、
図7A~
図7B又は
図16に示される構成要素によって、任意選択的に実装される。例えば、サンプリングオーディオ動作1202は、任意選択的にオーディオ回路210(
図2)によって実行される。口頭トリガを有するオーディオが検出されたとき、デバイスは、ディスプレイコントローラ256(
図2)及び/又は触覚フィードバックコントローラ261(
図2)を用いて、対応する出力を提供する。当業者であれば、他のプロセスが、
図1、
図2、
図7A~
図7B、又は
図16に示す構成要素に基づいてどのように実装されるのかは明らかであろう。
【0339】
図16で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることを当業者は理解する。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。例えば、ユニット1602~1612は、それぞれのユニット及び動作を可能にする処理ユニット1614と動作可能に連結される付随「コントローラ」ユニットを有してもよい。これらのコントローラユニットは、
図16では別々に示されていないが、デバイス1600など、ユニット1602~1612を有するデバイスを設計している当業者の理解の範囲内であると理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの組み合わせ、分離、及び/又は更なる定義を任意選択的にサポートする。
【0340】
いくつかの実施形態によれば、
図17は、
図9及び
図13を参照して説明したものを含む、説明される様々な実施形態の原理に従って構成された電子デバイス1700の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図17で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることを当業者は理解する。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【0341】
図17に示すように、電子デバイス1700は、グラフィカルユーザインタフェースを表示するように構成されたディスプレイユニット1702と、接触を受信する任意選択のタッチ感知面ユニット1704と、オーディオ入力を検出するマイクロフォンユニット1706と、時間インターバルにおける加速度などの移動読み取り値を取得する任意選択の移動センサユニット1708と、ボタンなどの任意選択の入力デバイスユニット1710と、オーディオ、触覚及び/又は視覚フィードバックを提供する任意選択のフィードバックユニット1712と、上述した各ユニットに連結された処理ユニット1714と、を備える。いくつかの実施形態では、処理ユニット1714は、表示有効化ユニット1716と、ソフトウェアイベント検出ユニット1728と、入力検出ユニット1718と、オーディオサンプリングユニット1720と、オーディオ処理ユニット1722と、仮想アシスタントサービスユニット1724と、任意追加的に、フィードバック有効化ユニット1726と、を備える。
【0342】
いくつかの実施形態では、処理ユニット1714は、所定の条件を満たすソフトウェアイベントを(例えば、ソフトウェアイベント検出ユニット1728を用いて)検出し、条件を満たすソフトウェアイベントが検出されたという判定に従い、マイクロフォン(例えば、マイクロフォンユニット1706)を介して受信したオーディオ入力を(例えば、オーディオサンプリングユニット1620を用いて)サンプリングし、マイクロフォンを介して受信したオーディオ入力が口頭トリガを含むかを(例えば、オーディオ処理ユニット1722を用いて)判定し、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションを(例えば、仮想アシスタントサービスユニット1724を用いて)トリガするように構成される。
【0343】
いくつかの実施形態では、所定の条件は、ソフトウェアイベントが電子デバイスのアプリケーションによってトリガされたイベントであることである。いくつかの実施形態では、所定の条件は、ソフトウェアイベントが通知を表すことを含む。いくつかの実施形態では、所定の条件は、ソフトウェアイベントがカレンダー通知を表すことを含む。
【0344】
いくつかの実施形態では、所定の条件は、ソフトウェアイベントが外部デバイスからの着信カレンダー招待状を表すことを含む。いくつかの実施形態では、所定の条件は、ソフトウェアイベントが外部デバイスからトリガされた着信伝達(transmission)を表すことを含む。いくつかの実施形態では、所定の条件は、ソフトウェアイベントが外部デバイスからの着信電話を表すことを含む。いくつかの実施形態では、所定の条件は、ソフトウェアイベントが外部デバイスからの着信テキスト又はマルチメディアメッセージを表すことを含む。
【0345】
いくつかの実施形態では、処理ユニット1714は、仮想アシスタントセッションのトリガに従い、外部デバイスにアドレス指定された応答を(例えば、仮想アシスタントサービスユニット1624を用いて)開始するように更に構成される。例示的な応答は、
図9Cのテキストメッセージ916などの着信メッセージに対する返信である。他の例示的な応答としては、電子メールメッセージ、マルチメディアメッセージ、カレンダー招待状の応答などが挙げられる。
図9Cの例において、応答テキストメッセージ916が、ユーザの命令910に基づいて自動的にデバイス900によって送信された。任意選択的に、メッセージ916を開始した(例えば、そのメッセージに受信者情報及び内容を入力した)後、デバイスは、メッセージを受信者に送信する前にユーザに最終確認を促すことができる。
【0346】
いくつかの実施形態では、処理ユニット1714は、ディスプレイがオンしているかを(例えば、表示有効化ユニット1716を用いて)判定し、ディスプレイがオンしているとの判定に従い、オーディオ入力のサンプリングが(例えば、オーディオサンプリングユニット1720を用いて)発生するように更に構成される。
【0347】
いくつかの実施形態では、処理ユニット1714は、(例えば、表示有効化ユニット1716を用いて)ディスプレイがオンしているかの判定に従い、ディスプレイのバックライトがオンしているかを(例えば、表示可能化ユニット1716を用いて)判定するように更に構成される。
【0348】
いくつかの実施形態では、処理ユニット1714は、オーディオ入力のサンプリングが所定の持続時間発生した後、オーディオ入力のサンプリングを(例えば、オーディオサンプリングユニット1720を用いて)中止するように更に構成される。
【0349】
いくつかの実施形態では、所定の条件を満たすユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、処理ユニット1714は、第1のユーザ入力の受信に従い、(例えば、オーディオサンプリングユニット1720を用いて)オーディオ入力をサンプリングする間に、(例えば、入力検出ユニット1718を用いて)第2の所定の条件を満たす第2のユーザ入力を受信し、第2の所定の条件を満たす第2のユーザ入力の受信に従い、オーディオ入力のサンプリングを(例えば、オーディオサンプリングユニット1720を用いて)中止するように更に構成される。
【0350】
いくつかの実施形態では、第2の所定の条件は、(例えば、移動センサユニット1708を用いて)電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下量に基づくものである。いくつかの実施形態では、第1の所定の条件は、(例えば、移動センサユニット1708を用いて)電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下の平滑度に基づくものである。
【0351】
いくつかの実施形態では、第2の所定の条件は、電子デバイスのボタン(例えば、入力デバイスユニット1710を有する)のアクティブ化を(例えば、入力検出ユニット1718を用いて)検出することを含む。いくつかの実施形態では、第2の所定の条件は、電子デバイスの(例えば、タッチ感知面ユニット1704を用いた)タッチ感知面上のタッチ入力を検出することを含む。
【0352】
いくつかの実施形態では、処理ユニット1714は、所定の条件を満たすユーザ入力の受信に従い、オーディオ入力を(例えば、オーディオサンプリングユニット1720を用いて)サンプリングする間に、ディスプレイがオフであるかを(例えば、表示有効化ユニット1716を用いて)判定し、ディスプレイがオフであるとの判定に従い、(例えば、オーディオサンプリングユニット1720を用いて)オーディオ入力のサンプリングを中止するように更に構成される。
【0353】
いくつかの実施形態では、処理ユニット1714は、所定の条件を満たすユーザ入力の受信に従い、オーディオ入力を(例えば、オーディオサンプリングユニット1720を用いて)サンプリングする間に、オーディオ入力内のオーディオ終点を(例えば、オーディオ処理ユニット1722を用いて)特定し、オーディオ終点の特定に応じて、(例えば、オーディオサンプリングユニット1720を用いて)オーディオ入力のサンプリングを中止するように更に構成される。
【0354】
いくつかの実施形態では、処理ユニット1714は、オーディオ入力のサンプリングの中止に従い、(例えば、フィードバック有効化ユニット1726を用いて)(フィードバックユニット1712を用いた)触覚出力を発生する。
【0355】
いくつかの実施形態では、処理ユニット1714は、仮想アシスタントセッションのトリガに従い、ユーザに(例えば、ディスプレイユニット1702及び/又はフィードバックユニット1712を用いた)口頭入力を(例えば、表示可能化ユニット1716及び/又はフィードバック有効化ユニット1726を用いて)促す。
【0356】
いくつかの実施形態では、オーディオ入力は、口頭トリガ及び追加入力を含み、処理ユニット1714は、(例えば、仮想アシスタントサービスユニット1724を用いた)仮想アシスタントセッションのトリガに従い、オーディオ入力内の少なくとも追加入力に基づいて、ユーザ意図を(例えば、仮想アシスタントサービスユニット1724を用いて)判定し、ユーザ意図に関連付けられたタスクを(例えば、仮想アシスタントサービスユニット1724を用いて)実行するように更に構成される。
【0357】
いくつかの実施形態では、処理ユニット1714は、(例えば、仮想アシスタントサービスユニット1724を用いて)電子デバイスが所定のモードで動作しているとの判定に従い、ディスプレイがオンしている間に所定の条件を満たすユーザ入力を(例えば、入力検出ユニット1718を用いて)受信した後であっても、(例えば、オーディオサンプリングユニット1720を用いて)オーディオ入力のサンプリングを見送るように更に構成される。
【0358】
いくつかの実施形態では、所定のモードでの動作は、電子デバイスのオーディオ出力をミュートすることを含む。いくつかの実施形態では、口頭トリガは、「hey Siri.」などの所定のフレーズを含む。
【0359】
図13を参照して上述された動作は、
図1、
図2、
図7A~
図7B又は
図17に示される構成要素によって、任意選択的に実行される。例えば、サンプリングオーディオ動作1202は、任意選択的にオーディオ回路210(
図2)によって実行される。口頭トリガを有するオーディオが検出されたとき、デバイスは、ディスプレイコントローラ256(
図2)及び/又は触覚フィードバックコントローラ261(
図2)を用いて、対応する出力を提供する。当業者であれば、他のプロセスが、
図1、
図2、
図7A~
図7B、又は
図17に示す構成要素に基づいてどのように実装されるのかは明らかであろう。
【0360】
図17で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることを当業者は理解する。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。例えば、ユニット1702~1712は、それぞれのユニット及び動作を可能にする処理ユニット1714と動作可能に連結される付随「コントローラ」ユニットを有してもよい。これらのコントローラユニットは、
図17では別々に示されていないが、デバイス1700など、ユニット1702~1712を有するデバイスを設計している当業者の理解の範囲内であると理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの組み合わせ、分離、及び/又は更なる定義を任意選択的にサポートする。
【0361】
いくつかの実施形態によれば、
図18は、
図10及び
図14を参照して説明したものを含む、説明される様々な実施形態の原理に従って構成された電子デバイス1800の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図18で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることを当業者は理解する。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【0362】
図18に示すように、電子デバイス1800は、グラフィカルユーザインタフェースを表示するように構成されたディスプレイユニット1802と、接触を受信する任意選択のタッチ感知面ユニット1804と、オーディオ入力を検出するマイクロフォンユニット1806と、時間インターバルにおける加速度などの移動読み取り値を取得する任意選択の移動センサユニット1808と、ボタンなどの任意選択の入力デバイスユニット1810と、オーディオ、触覚及び/又は視覚フィードバックを提供する任意選択のフィードバックユニット1812と、上述した各ユニットに連結された処理ユニット1814と、を備える。いくつかの実施形態では、処理ユニット1814は、表示有効化ユニット1816と、入力検出ユニット1818と、オーディオサンプリングユニット1820と、オーディオ処理ユニット1822と、仮想アシスタントサービスユニット1824と、任意選択で、フィードバック有効化ユニット1826と、を備える。
【0363】
いくつかの実施形態では、処理ユニット1814は、入力デバイスを介して、所定の条件を満たすユーザ入力を(例えば、入力検出ユニット1818を用いて)受信し、所定の条件を満たすユーザ入力の受信に従い、マイクロフォンを介して受信したオーディオ入力を(例えば、オーディオサンプリングユニット1820を用いて)サンプリングし、オーディオ入力が口頭トリガを含むかを(例えば、オーディオ処理ユニット1822を用いて)判定し、オーディオ入力が口頭トリガを含むとの判定に従い、仮想アシスタントセッションを(例えば、仮想アシスタントサービスユニット1824を用いて)トリガするとともに、触覚出力を(例えば、フィードバックユニット1826を用いて)発生するように構成される。
【0364】
いくつかの実施形態では、処理ユニット1814は、所定の条件を満たすユーザ入力の受信に従い、ディスプレイがオフしている間に、ユーザ入力を(例えば、入力検出ユニット1818を用いて)受信するように更に構成される。
【0365】
いくつかの実施形態では、処理ユニット1814は、仮想アシスタントセッションのトリガに従い、ディスプレイのバックライトをオンせずに、仮想アシスタントセッションを(例えば、仮想アシスタントサービスユニット1824を用いて)トリガするように更に構成される。
【0366】
いくつかの実施形態では、所定の条件は、(例えば、移動ユニットセンサ1808を用いて)電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの持ち上げ量に基づくものである。いくつかの実施形態では、所定の条件は、(例えば、移動センサユニット1808を用いて)電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの持ち上げの平滑度に基づくものである。いくつかの実施形態では、所定の条件は、電子デバイスの持ち上げに従う位置での滞留時間の最小期間を含む。
【0367】
いくつかの実施形態では、所定の条件は、(例えば、入力検出ユニット1818を用いて)電子デバイスのボタンのアクティブ化を検出することを含む。いくつかの実施形態では、所定の条件は、電子デバイスのタッチ感知面へのタッチ入力を検出することを含む。
【0368】
いくつかの実施形態では、処理ユニット1814は、オーディオ入力のサンプリングが所定の持続時間の間発生した後、オーディオ入力のサンプリングを(例えば、オーディオサンプリングユニット1820を用いて)中止するように更に構成される。
【0369】
いくつかの実施形態では、所定の条件を満たすユーザ入力は、第1の所定の条件を満たす第1のユーザ入力であり、処理ユニット1814は、第1のユーザ入力の受信に従い、(例えば、オーディオサンプリングユニット1820を用いて)オーディオ入力をサンプリングする間に、第2の所定の条件を満たす第2のユーザ入力を(例えば、入力検出ユニット1818を用いて)受信し、第2の所定の条件を満たす第2のユーザ入力の受信に従い、オーディオ入力のサンプリングを(例えば、オーディオサンプリングユニット1820を用いて)中止するように更に構成される。
【0370】
いくつかの実施形態では、第2の所定の条件は、(例えば、移動ユニット1808を用いて)電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下量に基づくものである。いくつかの実施形態では、第1の所定の条件は、(例えば、移動ユニット1808を用いて)電子デバイスの加速度計から判定された、時間インターバル中の電子デバイスの降下の平滑度に基づくものである。
【0371】
いくつかの実施形態では、第2の所定の条件は、(例えば、入力デバイスユニット1810を用いた)電子デバイスのボタンのアクティブ化を(例えば、入力検出ユニット1818を用いて)検出することを含む。いくつかの実施形態では、第2の所定の条件は、電子デバイスの(例えば、タッチ感知面ユニット1804を用いた)タッチ感知面上のタッチ入力を(例えば、入力検出ユニット1818を用いて)検出することを含む。
【0372】
いくつかの実施形態では、処理ユニット1814は、所定の条件を満たすユーザ入力の受信に従い、オーディオ入力を(例えば、オーディオサンプリングユニット1820を用いて)サンプリングする間に、オーディオ入力内のオーディオ終点を(例えば、オーディオ処理ユニット1822を用いて)特定し、オーディオ終点の特定に応じて、(例えば、オーディオサンプリングユニット1820を用いて)オーディオ入力のサンプリングを中止するように更に構成される。
【0373】
いくつかの実施形態では、処理ユニット1814は、(例えば、オーディオサンプリングユニット1820を用いた)オーディオ入力のサンプリングの中止に従い、(フィードバックユニット1826を用いて)発生する出力を提供するように更に構成される。いくつかの実施形態では、処理ユニット1814は、(例えば、仮想アシスタントサービスユニット1824を用いた)仮想アシスタントセッションのトリガに従い、ユーザに(例えば、ディスプレイユニット1802及び/又はフィードバックユニット1812を用いた)口頭入力を(例えば、表示可能化ユニット1816及び/又はフィードバック有効化ユニット1826を用いて)促すように更に構成される。
【0374】
いくつかの実施形態では、オーディオ入力は、口頭トリガ及び追加入力を含み、処理ユニット1814は、(例えば、仮想アシスタントサービスユニット1824を用いた)仮想アシスタントセッションのトリガに従い、オーディオ入力内の少なくとも追加入力に基づいてユーザ意図を(例えば、仮想アシスタントサービスユニット1824を用いて)判定し、ユーザ意図に関連付けられたタスクを(例えば、仮想アシスタントサービスユニット1824を用いて)実行するように更に構成される。
【0375】
いくつかの実施形態では、処理ユニット1814は、電子デバイスが所定のモードで動作しているとの判定に従い、ディスプレイがオンしている間に所定の条件を満たす(例えばタッチ感知面ユニット1804又は入力デバイスユニット1810を用いた)ユーザ入力を(例えば、入力検出ユニット1818を用いて)受信した後であっても、(例えば、オーディオサンプリングユニット1820を用いて)オーディオ入力のサンプリングを見送るように更に構成される。
【0376】
いくつかの実施形態では、所定のモードでの動作は、電子デバイスのオーディオ出力をミュートすることを含む。いくつかの実施形態では、口頭トリガは、「hey Siri.」などの所定のフレーズを含む。
【0377】
図14を参照して上述された動作は、
図1、
図2、
図7A~
図7B又は
図18に示される構成要素によって、任意選択的に実装される。例えば、サンプリングオーディオ動作1202は、任意選択的にオーディオ回路210(
図2)によって実行される。口頭トリガを有するオーディオが検出されたとき、デバイスは、ディスプレイコントローラ256(
図2)及び/又は触覚フィードバックコントローラ261(
図2)を用いて、対応する出力を提供する。当業者であれば、他のプロセスが、
図1、
図2、
図7A~
図7B又は
図18に示す構成要素に基づいてどのように実装されるのかは明らかであろう。
【0378】
図19で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることを当業者は理解する。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。例えば、ユニット1802~1812は、それぞれのユニット及び動作を可能にする処理ユニット1814と動作可能に連結される付随「コントローラ」ユニットを有してもよい。これらのコントローラユニットは、
図18では別々に示されていないが、デバイス1800など、ユニット1802~1812を有するデバイスを設計している当業者の理解の範囲内であると理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの組み合わせ、分離、及び/又は更なる定義を任意選択的にサポートする。
【0379】
いくつかの実施形態によれば、
図19は、
図8及び
図12を参照して説明したものを含む、説明される様々な実施形態の原理に従って構成された電子デバイス1900の機能ブロック図を示す。このデバイスの機能ブロックは、説明される様々な実施形態の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェアとソフトウェアとの組み合わせによって、任意選択的に実装される。
図19で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることを当業者は理解する。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。
【0380】
図19に示すように、電子デバイス1900は、グラフィカルユーザインタフェースを表示するように構成されたディスプレイユニット1902と、接触を受信する任意選択のタッチ感知面ユニット1904と、オーディオ入力を検出するマイクロフォンユニット1906と、時間インターバルにおける加速度などの移動読み取り値を取得する任意選択の移動センサユニット1908と、ボタンなどの任意選択の入力デバイスユニット1910と、オーディオ、触覚及び/又は視覚フィードバックフィードバックを発生する任意選択のフィードバックユニット1912と、上述した各ユニットに連結された処理ユニット1914と、を備える。いくつかの実施形態では、処理ユニット1914は、表示有効化ユニット1916と、入力検出ユニット1918と、オーディオサンプリングユニット1920と、オーディオ処理ユニット1922と、仮想アシスタントサービスユニット1924と、任意選択で、フィードバック有効化ユニット1926と、を備える。
【0381】
いくつかの実施形態では、処理ユニット1914は、マイクロフォンを介して受信したオーディオ入力を(例えば、オーディオサンプリングユニット1920を用いて)サンプリングし、オーディオ入力がタスクを表すかを(例えば、オーディオ処理ユニット1922を用いて)判定し、オーディオ入力を(例えば、オーディオサンプリングユニット1920を用いて)サンプリングする間に、オーディオ入力のサンプリングを中止する命令を(例えば、入力検出ユニット1918を用いて)受信し、オーディオ入力のサンプリングを中止する受信した命令を受け取ったことを通知する出力を(例えば、フィードバックユニット1926を用いて)提供し、この出力を提供した後、ある持続時間の間、継続してオーディオ入力を(オーディオサンプリングユニット1920を用いて)サンプリングし、オーディオ入力がタスクを含むかを(例えば、オーディオ処理ユニット1922を用いて)判定し、その後、オーディオ入力のサンプリングを(例えば、オーディオサンプリングユニット1920を用いて)中止するように構成される。
【0382】
いくつかの実施形態では、処理ユニット1914は、(例えば、オーディオサンプリングユニット1920に用いた)オーディオ入力のサンプリングに従い、ディスプレイがオンしている間にオーディオ入力を(例えば、オーディオサンプリングユニット1920を用いて)サンプリングするように更に構成される。
【0383】
いくつかの実施形態では、処理ユニット1914は、オーディオ入力のサンプリングを終了する受信した命令を受け取ったことを通知する出力の(例えば、フィードバックユニット1926を用いた)提供に従い、(例えば、フィードバックユニット1912を用いた)触覚出力を(例えば、フィードバックユニット1926を用いて)発生するように更に構成される。
【0384】
いくつかの実施形態では、処理ユニット1914は、オーディオ入力のサンプリングを終了する受信した命令を受け取ったことを通知する出力の(例えば、フィードバックユニット1926を用いた)提供に従い、(例えば、フィードバックユニット1912を用いた)オーディオ出力を(例えば、フィードバックユニット1926を用いて)提供するように更に構成される。
【0385】
いくつかの実施形態では、処理ユニット1914は、マイクロフォンを介して受信したオーディオの(例えば、オーディオサンプリングユニット1920を用いた)サンプリングに従い、(例えば、表示有効化ユニット1916及びディスプレイユニット1902を用いて、並びに/又は表示有効化ユニット1926及びフィードバックユニット1912を用いて)ユーザに口頭入力を促すように更に構成される。
【0386】
いくつかの実施形態では、処理ユニット1914は、オーディオ入力がタスクを表すかの(例えば、仮想アシスタントサービスユニット1924を用いた)判定に従い、オーディオ入力の少なくとも一部に基づいてユーザ意図を(例えば、仮想アシスタントサービスユニット1924を用いて)判定し、(例えば、仮想アシスタントサービスユニット1924を用いて)ユーザ意図に基づいてタスクを特定し実行し、(例えば、フィードバックユニット1912を用いた)触覚出力を(例えば、フィードバックユニット1926を用いて)発生するように更に構成される。
【0387】
いくつかの実施形態では、処理ユニット1914は、オーディオ入力のサンプリングを中止する受信した命令が電子デバイスを介してユーザから受信されたか、それとも外部デバイスから受信されたかを(例えば、入力検出ユニット1918を用いて)判定するように更に構成され、受信した命令が電子デバイスを介してユーザから受信されたという判定に従い、(例えば、オーディオサンプリングユニット1920を用いた)オーディオ入力のサンプリングを継続し、サンプリングを中止する命令を受信した後のある持続時間の間、オーディオ入力がタスクを含むかの(例えば、オーディオ処理ユニット1922を用いた)判定が行われる、受信した命令が外部デバイスから受信されたとの判定に従い、デバイスは、受信した命令に応じて(例えば、オーディオサンプリングユニット1920を用いた)オーディオ入力のサンプリングを中止する。
【0388】
いくつかの実施形態では、口頭トリガは、「hey Siri.」などの所定のフレーズを含む。
【0389】
図15を参照して上述された動作は、
図1、
図2、
図7A~
図7B又は
図19に示される構成要素によって、任意選択的に実装される。例えば、サンプリングオーディオ動作1202は、任意選択的にオーディオ回路210(
図2)によって実行される。口頭トリガを有するオーディオが検出されたとき、デバイスは、ディスプレイコントローラ256(
図2)及び/又は触覚フィードバックコントローラ261(
図2)を用いて、対応する出力を提供する。当業者であれば、他のプロセスが、
図1、
図2、
図7A~
図7B又は
図19に示す構成要素に基づいてどのように実装されるのかは明らかであろう。
【0390】
図19で説明される機能ブロックが、説明される様々な実施形態の原理を実施するように、任意選択的に、組み合わされ、又はサブブロックに分離されることを当業者は理解する。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの任意の可能な組み合わせ若しくは分離、又は更なる定義を任意選択的にサポートする。例えば、ユニット1902~1912は、それぞれのユニット及び動作を可能にする処理ユニット1914と動作可能に連結される付随「コントローラ」ユニットを有してもよい。これらのコントローラユニットは、
図19では別々に示されていないが、デバイス1900など、ユニット1902~1912を有するデバイスを設計している当業者の理解の範囲内であると理解される。したがって、本明細書における説明は、本明細書で説明されている機能ブロックの組み合わせ、分離、及び/又は更なる定義を任意選択的にサポートする。
【0391】
本開示及び実施例が添付図面を参照して十分に記述されてきたが、各種の変更及び修正が当業者には明らかとなるであろうことに留意されたい。係る変更及び修正は、添付の特許請求の範囲によって画定される、本開示及び実施例の範囲内に含まれるものとして、理解されたい。
【手続補正書】
【提出日】2023-10-19
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
仮想アシスタントを起動するための方法であって、
ディスプレイ及びマイクロフォンを有する電子デバイスにおいて、
前記電子デバイスのディスプレイが第1の電力状態にある間に、前記電子デバイスの移動を含むユーザ入力を受信することと、
前記電子デバイスの前記移動を含む前記ユーザ入力を受信したことに応じて、前記電子デバイスの前記ディスプレイを前記第1の電力状態から第2の電力状態に変更することと、
前記電子デバイスの前記移動を含む前記ユーザ入力を受信したことに応じて、前記電子デバイスの前記ディスプレイが前記第1の電力状態から第2の電力状態に変更されたとの判定に従い、仮想アシスタントセッションをトリガすることと、
を含む方法。
【請求項2】
前記マイクロフォンを介して受信した音声入力をサンプリングすることと、
前記音声入力が口頭トリガを含むかどうかを判定することと
を更に含み、前記仮想アシスタントセッションは前記音声入力が口頭トリガを含むとの判定に従ってトリガされる、請求項1に記載の方法。
【請求項3】
前記電子デバイスの前記移動を含む前記ユーザ入力を受信することは、時間インターバルにおける前記電子デバイスの持ち上げ量を検出することを含む、請求項1又は2に記載の方法。
【請求項4】
前記ユーザ入力は前記電子デバイスのボタンのアクティブ化を更に含む、請求項1から3のいずれか1項に記載の方法。
【請求項5】
前記ユーザ入力は前記電子デバイスのタッチ感知面上でのタッチ入力をさらに含む、請求項1から4のいずれか1項に記載の方法。
【請求項6】
前記電子デバイスの前記ディスプレイを前記第1の電力状態から第2の電力状態に変更することは、前記ディスプレイのバックライトの明るさを変更することを含む、請求項1から5のいずれか1項に記載の方法。
【請求項7】
所定時間において音声入力のサンプリングが行われた後に、前記仮想アシスタントセッションを停止することをさらに含む、請求項1から6のいずれか1項に記載の方法。
【請求項8】
前記仮想アシスタントセッションの停止に従い、触覚出力を提供することをさらに含む、請求項7に記載の方法。
【請求項9】
前記電子デバイスの前記ディスプレイが前記第2の電力状態から前記第1の電力状態に変更されたとの判定に従い、前記仮想アシスタントセッションを停止することを更に含む、請求項1から8のいずれか1項に記載の方法。
【請求項10】
前記仮想アシスタントセッションのトリガに従い、ユーザに口頭入力のプロンプトを提供することをさらに含む、請求項1から9のいずれか1項に記載の方法。
【請求項11】
前記仮想アシスタントセッションのトリガに従い、
少なくとも音声入力における追加入力に基づいて、ユーザの意図を判定することと、
前記ユーザの意図と関連付けられたタスクを実行することと
をさらに含む、請求項1から10のいずれか1項に記載の方法。
【請求項12】
コンピュータに請求項1から11のいずれか1項に記載の方法を実行させるためのコンピュータプログラム。
【請求項13】
請求項12に記載のコンピュータプログラムを記憶したメモリと、
前記メモリが記憶する前記コンピュータプログラムを実行可能な1つ以上のプロセッサと
を備える電子デバイス。
【請求項14】
請求項1から11のいずれか1項に記載の方法を実行する手段を備える電子デバイス。
【外国語明細書】