(57)【要約】      （修正有）【課題】レイテンシを短縮したデジタルアシスタントを提供する。【解決手段】電子装置は、マイクからオーディオ入力を取り込み、第１のプロセッサを使用して、取り込んだオーディオ入力を表すオーディオデータをメモリバッファに書き込むことにより、ゼロ待ち時間デジタルアシスタントを実現する。オーディオ入力を取り込みながらユーザ入力を検出することに応答して、装置はユーザ入力が所定の基準を満たすか否かを判定する。ユーザ入力が基準を満たす場合、装置は、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてタスクを識別して実行する。【選択図】図９
2019003657.tif 000002
【特許請求の範囲】
【請求項１】
マイク、第１のプロセッサ、及び第２のプロセッサを含む電子装置において、
前記マイクからオーディオ入力を取り込むことと、
前記第１のプロセッサを使用して、取り込んだ前記オーディオ入力を表すデータをメモリバッファに書き込むことと、
前記マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出することと、
前記第１のプロセッサを使用して、前記ユーザ入力が所定の基準を満たしたか否かを判定することと、
前記ユーザ入力が前記基準を満たしたという判定に従って、前記第２のプロセッサを使用して、前記メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別することと、
前記ユーザ入力が前記基準を満たさなかったという判定に従って、前記タスクを識別することを見送ることと、
を有する方法。
【請求項２】
前記メモリバッファの内容の前記少なくとも一部分は、前記ユーザ入力が検出される前に前記バッファに書き込まれたデータを含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記メモリバッファの内容の前記少なくとも一部分は、前記ユーザ入力の前記検出の間に前記バッファに書き込まれたデータを含む、
ことを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記ユーザ入力が前記基準を満たしたという判定にさらに従って、識別された前記コンピューティングタスクを実行することをさらに有する、
ことを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記コンピューティングタスクを識別することは、前記第２のプロセッサでデジタルアシスタントのセッションを開始することを含む、
ことを特徴とする請求項１から４のいずれか１項に記載の方法。
【請求項６】
前記デジタルアシスタントが、前記コンピューティングタスクを識別して実行する、
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記デジタルアシスタントのセッションを開始することは、前記デジタルアシスタントのセッションに関連するユーザインタフェースを表示することを含む、
ことを特徴とする請求項５又は６に記載の方法。
【請求項８】
前記デジタルアシスタントに関連する前記ユーザインタフェースは、全画面ビューで表示される、
ことを特徴とする請求項７に記載の方法。
【請求項９】
前記デジタルアシスタントのセッションを開始することは、前記装置の１つ以上のオーディオコンポーネントを起動することを含む、
ことを特徴とする請求項５から８のいずれか１項に記載の方法。
【請求項１０】
前記メモリバッファの内容の前記少なくとも一部分が、前記デジタルアシスタントに関連付けられたリモートサーバに提供される、
ことを特徴とする請求項５から９のいずれか１項に記載の方法。
【請求項１１】
前記ユーザ入力が前記基準を満たしたという判定にさらに従って、
前記装置の第２のマイクを起動することと、
前記第２のマイクにより検出されたオーディオをデジタルアシスタントにストリーミングすることと、
をさらに有することを特徴とする請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記ユーザ入力はボタン押下である、
ことを特徴とする請求項１から１１のいずれか１項に記載の方法。
【請求項１３】
前記基準は、前記ボタン押下が所定の閾値持続時間を上回る場合に満たされる基準を含む、
ことを特徴とする請求項１２に記載の方法。
【請求項１４】
前記ユーザ入力は、前記マイクにより取り込まれて前記バッファに書き込まれるオーディオデータである、
ことを特徴とする請求項１から１１のいずれか１項に記載の方法。
【請求項１５】
前記基準は、前記メモリバッファの少なくとも第２の部分が所定のトリガを表すオーディオデータを含むと前記装置が判定する場合に満たされる基準を含む、
ことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記基準は、前記オーディオデータが許可ユーザに対応すると前記装置が判定する場合に満たされる基準を含む、
ことを特徴とする請求項１４又は１５に記載の方法。
【請求項１７】
前記オーディオ入力は前記第２のプロセッサが低電力モードである間に取り込まれ、
前記方法は、前記ユーザ入力が前記基準を満たしたという判定にさらに従って、前記第２のプロセッサに前記低電力モードを終了させることをさらに有する、
ことを特徴とする請求項１から１６のいずれか１項に記載の方法。
【請求項１８】
マイクを有する電子装置の第１のプロセッサ及び第２のプロセッサにより実行される場合に、当該装置に、
前記マイクからオーディオ入力を取り込ませ、
前記第１のプロセッサを使用して、取り込んだ前記オーディオ入力を表すデータをメモリバッファに書き込ませ、
前記マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出させ、
前記第１のプロセッサを使用して、前記ユーザ入力が所定の基準を満たしたか否かを判定させ、
前記ユーザ入力が前記基準を満たしたという判定に従って、前記第２のプロセッサを使用して、前記メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別させ、
前記ユーザ入力が前記基準を満たさなかったという判定に従って、前記タスクを識別することを見送らせる、
命令を含んでいる１つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体。
【請求項１９】
マイクと、
２つ以上のプロセッサと、
メモリと、
１つ以上のプログラムとを有し、前記１つ以上のプログラムは前記メモリに記憶されると共に、前記２つ以上のプロセッサにより実行されるように構成され、前記１つ以上のプログラムは、
前記マイクからオーディオ入力を取り込み、
第１のプロセッサを使用して、取り込んだ前記オーディオ入力を表すデータを前記メモリにおけるメモリバッファに書き込み、
前記マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出し、
前記第１のプロセッサを使用して、前記ユーザ入力が所定の基準を満たしたか否かを判定し、
前記ユーザ入力が前記基準を満たしたという判定に従って、第２のプロセッサを使用して、前記メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別し、
前記ユーザ入力が前記基準を満たさなかったという判定に従って、前記タスクを識別することを見送る、
ための命令を含む、
ことを特徴とする電子装置。
【請求項２０】
マイクと、
第１のプロセッサと、
第２のプロセッサと、
前記マイクからオーディオ入力を取り込む手段と、
前記第１のプロセッサを使用して、取り込んだ前記オーディオ入力を表すデータをメモリバッファに書き込む手段と、
前記マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出する手段と、
前記第１のプロセッサを使用して、前記ユーザ入力が所定の基準を満たしたか否かを判定する手段と、
前記ユーザ入力が前記基準を満たしたという判定に従って、前記第２のプロセッサを使用して、前記メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別する手段と、
前記ユーザ入力が前記基準を満たさなかったという判定に従って、前記タスクを識別することを見送る手段と、
を有することを特徴とする電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、２０１５年９月８日に提出された米国仮特許出願第６２／２１５６０８号「ゼロレイテンシデジタルアシスタント」、及び、２０１６年５月５日に提出された米国特許出願第１５／１４７７２６「ゼロレイテンシデジタルアシスタント」に対する優先権を主張するものである。この出願の内容は、ここに全ての目的のために参照として組み込まれる。
【０００２】
本発明は、一般にデジタルアシスタントに関し、特にデジタルアシスタントのレイテンシの短縮に関する。
【背景技術】
【０００３】
インテリジェントな自動アシスタント（又はデジタルアシスタント）は、人間のユーザと電子装置との間の有用なインタフェースを提供する。そのようなアシスタントにより、ユーザは音声及び／又はテキストで自然言語を使用して装置又はシステムと対話できる。例えばユーザは、電子装置に関連するデジタルアシスタントに音声でユーザ要求を提供することにより、電子装置のサービスにアクセスできる。デジタルアシスタントは、音声によるユーザ要求からユーザの意図を解釈でき、ユーザの意図をタスクとして実行できるようにする。識別されたタスクは電子装置の１つ以上のサービスを実行することにより実行され、関連する出力がユーザに返される。
【発明の概要】
【０００４】
電子装置でデジタルアシスタントを実現するいくつかの技術では、ユーザがデジタルアシスタントセッションを要求する時点と装置がデジタルアシスタントへの口頭入力を受信できる時点との間にレイテンシが発生し、ユーザにとって非効率的であり、直観的でない。既存の技術は必要以上に長い時間がかかり、ユーザの時間及び装置のエネルギーを浪費する。この後者の問題点は、バッテリ式装置において特に重要である。
【０００５】
従って、デジタルアシスタントセッションを呼び出すユーザが経験する上述したレイテンシを短縮又は除去する更に高速で効率的な方法及びインタフェースを有する電子装置が必要とされる。そのような方法及びインタフェースは、デジタルアシスタントの効率及び精度を向上する他の方法を任意に補完するか又はその代わりとなる。そのような方法及びインタフェースはユーザにかかる認知負担を軽減し、更に効率的なヒューマンマシンインタフェースを生成する。バッテリ式コンピューティングデバイスの場合、そのような方法及びインタフェースにより、タイミングが不適切な音声入力の発生及びそれに対応して要求されたタスクが誤って識別されることが減少し、それにより節電され、バッテリ充電間隔が延びる。
【０００６】
いくつかの実施形態において、デジタルアシスタントを実現する方法は、マイク、第１のプロセッサ及び第２のプロセッサを含む電子装置において、マイクからオーディオ入力を取り込むことと、第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込むことと、マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出することと、第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定することと、ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別することと、ユーザ入力が基準を満たさなかったという判定に基づいて、タスクを識別することを見送ることとを含む。
【０００７】
いくつかの実施形態において、非一時的コンピュータ可読記憶媒体は、マイクを有する電子装置の第１のプロセッサ及び第２のプロセッサにより実行される場合に、装置に、マイクからオーディオ入力を取り込ませる命令と、第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込ませる命令と、マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出させる命令と、第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定させる命令と、ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別させる命令と、ユーザ入力が基準を満たさなかったという判定に基づいて、タスクを識別することを見送らせる命令とを含む１つ以上のプログラムを記憶する。
【０００８】
いくつかの実施形態において、一時的コンピュータ可読記憶媒体は、マイクを有する電子装置の第１のプロセッサ及び第２のプロセッサにより実行される場合に、装置に、マイクからオーディオ入力を取り込ませる命令と、第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込ませる命令と、マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出させる命令と、第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定させる命令と、ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別させる命令と、ユーザ入力が基準を満たさなかったという判定に基づいて、タスクを識別することを見送らせる命令とを含む１つ以上のプログラムを記憶する。
【０００９】
いくつかの実施形態において、電子装置は、マイクと、２つ以上のプロセッサと、メモリと、１つ以上のプログラムとを含み、１つ以上のプログラムはメモリに記憶され、２つ以上のプロセッサにより実行されるように構成され、１つ以上のプログラムは、マイクからオーディオ入力を取り込むための命令と、第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込むための命令と、マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出するための命令と、第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定するための命令と、ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別するための命令と、ユーザ入力が基準を満たさなかったという判定に基づいて、タスクを識別することを見送るための命令とを含む。
【００１０】
いくつかの実施形態において、デジタルアシスタントを実現する方法は、マイク、第１のプロセッサ及び第２のプロセッサを含む電子装置において、第２のプロセッサが低電力モードの間に、マイクからオーディオ入力を取り込むことと、第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込むことと、第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定することと、バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、第２のプロセッサに低電力モードを終了させることと、第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別することと、第２のプロセッサを使用して、識別されたタスクを実行することと、バッファの少なくとも第１の部分が基準を満たさないという判定に基づいて、第２のプロセッサに低電力モードを終了させることを見送ることとを含む。
【００１１】
いくつかの実施形態において、非一時的コンピュータ可読記憶媒体は、マイクを有する電子装置の第１のプロセッサ及び第２のプロセッサにより実行される場合に、装置に、第２のプロセッサが低電力モードの間に、マイクからオーディオ入力を取り込ませる命令と、第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込ませる命令と、第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定させる命令と、バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、第２のプロセッサに低電力モードを終了させる命令と、第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別させる命令と、第２のプロセッサを使用して、識別されたタスクを実行させる命令と、バッファの少なくとも第１の部分が基準を満たさないという判定に基づいて、第２のプロセッサに低電力モードを終了させることを見送らせる命令とを含む１つ以上のプログラムを記憶する。
【００１２】
いくつかの実施形態において、一時的コンピュータ可読記憶媒体は、マイクを有する電子装置の第１のプロセッサ及び第２のプロセッサにより実行される場合に、装置に、第２のプロセッサが低電力モードの間に、マイクからオーディオ入力を取り込ませる命令と、第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込ませる命令と、第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定させる命令と、バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、第２のプロセッサに低電力モードを終了させる命令と、第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別させる命令と、第２のプロセッサを使用して、識別されたタスクを実行させる命令と、バッファの少なくとも第１の部分が基準を満たさないという判定に基づいて、第２のプロセッサに低電力モードを終了させることを見送らせる命令とを含む１つ以上のプログラムを記憶する。
【００１３】
いくつかの実施形態において、電子装置は、マイクと、２つ以上のプロセッサと、メモリと、１つ以上のプログラムとを含み、１つ以上のプログラムはメモリに記憶され、２つ以上のプロセッサにより実行されるように構成され、１つ以上のプログラムは、第２のプロセッサが低電力モードの間に、マイクからオーディオ入力を取り込むための命令と、第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込むための命令と、第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定するための命令と、バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、第２のプロセッサに低電力モードを終了させるための命令と、第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別するための命令と、第２のプロセッサを使用して、識別されたタスクを実行するための命令と、バッファの少なくとも第１の部分が基準を満たさないという判定に基づいて、第２のプロセッサに低電力モードを終了させることを見送るための命令とを含む。
【００１４】
それらの機能を実行するための実行可能命令は、１つ以上のプロセッサにより実行されるように構成された非一時的コンピュータ可読記憶媒体又は他のコンピュータプログラムに任意に含まれる。それらの機能を実行するための実行可能命令は、２つ以上のプロセッサにより実行されるように構成された一時的コンピュータ可読記憶媒体又は他のコンピュータプログラムに任意に含まれる。
【００１５】
このように、デジタルアシスタントを実現する更に高速で効率的な方法及びインタフェースが装置に提供され、そのような装置の有効性及び効率、並びにそのような装置に対するユーザ満足度が向上する。そのような方法及びインタフェースは、デジタルアシスタントを実現する他の方法を補完するか又はその代わりとなってもよい。
【図面の簡単な説明】
【００１６】
説明される種々の実施形態を更に理解するために、以下の図面と関連して以下の発明を実施するための形態を参照する。図中、同様の図中符号は対応する部分を表す。
【図１】図１は、種々の例に係るデジタルアシスタントを実現するシステム及び環境を示すブロック図である。
【図２Ａ】図２Ａは、種々の例に係るデジタルアシスタントのクライアント側部分を実現するポータブル多機能装置を示すブロック図である。
【図２Ｂ】図２Ｂは、種々の例に係るイベント処理のための例示的な構成要素を示すブロック図である。
【図３】図３は、種々の例に係るデジタルアシスタントのクライアント側部分を実現するポータブル多機能装置を示すブロック図である。
【図４】図４は、種々の例に係るディスプレイ及びタッチセンシティブ表面を有する例示的な多機能装置を示すブロック図である。
【図５Ａ】図５Ａは、種々の例に係るポータブル多機能装置におけるアプリケーションのメニューを表す例示的なユーザインタフェースを示す図である。
【図５Ｂ】図５Ｂは、種々の例に係るディスプレイとは別のタッチセンシティブ表面を有する多機能装置の例示的なユーザインタフェースを示す図である。
【図６Ａ】図６Ａは、種々の例に係るパーソナル電子装置を示す図である。
【図６Ｂ】図６Ｂは、種々の例に係るパーソナル電子装置を示すブロック図である。
【図７Ａ】図７Ａは、種々の例に係るデジタルアシスタントシステム又はそのサーバ部分を示すブロック図である。
【図７Ｂ】図７Ｂは、種々の例に係る図７Ａに示すデジタルアシスタントの機能を示す図である。
【図７Ｃ】図７Ｃは、種々の例に係るオントロジの一部分を示す図である。
【図８Ａ】図８Ａは、レイテンシを伴う従来技術のデジタルアシスタントを示す概念図である。
【図８Ｂ】図８Ｂは、種々の例に係る電子装置でデジタルアシスタントを実現するために使用されるプロセッサを示すブロック図である。
【図８Ｃ】図８Ｃは、種々の例に係るゼロレイテンシデジタルアシスタントを示す概念図である。
【図８Ｄ】図８Ｄは、種々の例に係るゼロレイテンシデジタルアシスタントを示す概念図である。
【図８Ｅ】図８Ｅは、種々の例に係るゼロレイテンシデジタルアシスタントを示す概念図である。
【図９】図９は、種々の例に係るゼロレイテンシデジタルアシスタントを実現する方法を示すフローチャートである。
【図１０】図１０は、種々の例に係るゼロレイテンシデジタルアシスタントを実現する方法を示すフローチャートである。
【図１１】図１１は、種々の例に係る電子装置を示す機能ブロック図である。
【図１２】図１２は、種々の例に係る電子装置を示す機能ブロック図である。
【発明を実施するための形態】
【００１７】
以下の説明は、例示的な方法、パラメータなどを挙げる。しかし、そのような説明は本開示の範囲を制限することを意図せず、例示的な実施形態の説明として提供されることを認識すべきである。
【００１８】
非特定の構造化されていない自然言語での要求に基づいてタスクを識別して実行する効率的な方法及びインタフェースを提供する電子装置が必要とされる。ユーザがデジタルアシスタントセッションを呼び出して音声要求を即座に提供できるようにするゼロレイテンシデジタルアシスタントは、ユーザにかかる認知負担を軽減し、生産性を向上する。更に、そのような技術は、冗長なユーザ入力又は遅延により浪費されるプロセッサ及びバッテリの電力を減少できる。
【００１９】
以下、図１、図２Ａ、図２Ｂ、図３、図４、図５Ａ、図５Ｂ、図６Ａ〜図６Ｃ、図８Ｂ、図１１及び図１２は、ゼロレイテンシデジタルアシスタントを実現する技術を実行する例示的な装置の説明を提供する。図７Ａ〜図７Ｃは、デジタルアシスタントシステム又はそのサーバ部分、並びにデジタルアシスタントシステムに関連するオントロジの一部分を示すブロック図である。図８Ａは、レイテンシを伴うデジタルアシスタントの概念図である。図８Ｃ〜図８Ｅは、いくつかの実施形態に係るゼロレイテンシデジタルアシスタントの概念図である。図９及び図１０は、いくつかの実施形態に係るゼロレイテンシデジタルアシスタントを実現する方法を示すフローチャートである。
【００２０】
以下の説明では、種々の要素を説明するために「第１の」、「第２の」などの用語を使用するが、それらの要素はその用語により限定されるべきではない。それらの用語は、１つの要素を別の要素と区別するために使用されるにすぎない。例えば、説明される種々の実施形態の範囲から逸脱せずに第１のタッチを第２のタッチということは可能であり、同様に、第２のタッチを第１のタッチということも可能だろう。第１のタッチ及び第２のタッチは共にタッチであるが、同一のタッチではない。
【００２１】
説明される種々の実施形態の説明で使用される用語は、特定の実施形態を説明することを目的としており、限定的な意味を持つことを意図しない。説明される種々の実施形態の説明及び添付の特許請求の範囲で使用される場合の単数形は、文脈上、明示して指示されない限り、複数形も含むことを意図する。また、本明細書で使用される場合の用語「及び／又は」は、列挙される関連項目のうち１つ以上を表し、それらの項目の可能なあらゆる組み合わせを含むことが理解されるだろう。更に、本明細書で使用される場合の用語「含む」及び／又は「備える」は、そこで述べられる特徴、数字、ステップ、動作、要素及び／又は構成要素の存在を指定するが、１つ以上の他の特徴、数字、ステップ、動作、要素、構成要素及び／又はそれらの集合の存在又は追加を除外しないことが更に理解されるだろう。
【００２２】
用語「〜である場合」は、文脈に応じて、「〜であるとき」又は「〜の時点で」又は「〜との判定に応答して」又は「〜の検出に応答して」を意味すると解釈されてもよい。同様に、「〜と判定された場合」又は「『そこに挙げられている条件又はイベント』が検出された場合」は、文脈に応じて、「〜と判定されたとき」又は「〜との判定に応答して」又は「『そこに挙げられている条件又はイベント』を検出したとき」又は「『そこに挙げられている条件又はイベント』の検出に応答して」を意味すると解釈されてもよい。
【００２３】
電子装置、そのような装置のユーザインタフェース及びそのような装置を使用するための関連処理の実施形態が説明される。いくつかの実施形態において、装置は、ＰＤＡ機能及び／又は音楽プレーヤ機能などの他の機能を更に含む移動電話のようなポータブル通信装置である。ポータブル多機能装置の例示的な実施形態は、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｉｎｃ．によるｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）及びｉＰａｄ（登録商標）の各装置を含むが、それらに限定されない。タッチセンシティブ表面（例えば、タッチ画面ディスプレイ及び／又はタッチパッド）を有するラップトップ、タブレットコンピュータ又はスマートウォッチなどの他のポータブル電子装置が任意に使用される。いくつかの実施形態において、装置はポータブル通信装置ではなく、タッチセンシティブ表面（例えば、タッチ画面ディスプレイ及び／又はタッチパッド）を有するデスクトップコンピュータであることも理解すべきである。
【００２４】
以下の説明中、ディスプレイ及びタッチセンシティブ表面を含む電子装置が説明される。しかし、電子装置は、物理的キーボード、マウス及び／又はジョイスティックなどの１つ以上の他の物理的ユーザインタフェース装置を任意に含むことを理解すべきである。
【００２５】
装置は、描画アプリケーション、プレゼンテーションアプリケーション、文書処理アプリケーション、ウェブサイト作成アプリケーション、ディスクオーサリングアプリケーション、スプレッドシートアプリケーション、ゲームアプリケーション、電話アプリケーション、ビデオ会議アプリケーション、電子メールアプリケーション、インスタントメッセージングアプリケーション、ワークアウトサポートアプリケーション、写真管理アプリケーション、デジタルカメラアプリケーション、デジタルビデオカメラアプリケーション、ウェブ閲覧アプリケーション、デジタル音楽プレーヤアプリケーション及び／又はデジタルビデオプレーヤアプリケーションのうち１つ以上などの多様なアプリケーションをサポートしてもよい。
【００２６】
装置で実行される種々のアプリケーションは、タッチセンシティブ表面などの少なくとも１つの一般的な物理的ユーザインタフェース装置を任意に使用する。タッチセンシティブ表面並びに装置に表示される対応する情報の１つ以上の機能は、アプリケーションごとに及び／又はそれぞれのアプリケーションの中で任意に調整され及び／又は変更される。このように、装置の一般的な物理的アーキテクチャ（タッチセンシティブ表面など）は、直観的であり、ユーザにわかりやすいユーザインタフェースによって、多様なアプリケーションを任意にサポートする。
【００２７】
図１は、種々の例に係るシステム１００のブロック図である。いくつかの例では、システム１００はデジタルアシスタントを実現する。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」又は「自動デジタルアシスタント」は、音声及び／又はテキストでの自然言語入力を解釈してユーザの意図を推論し、推論されたユーザの意図に基づく動作を実行するあらゆる情報処理システムを表す。例えば推論されたユーザの意図に基づいて動作するために、システムは、推論されたユーザの意図を達成するように設計されたステップ及びパラメータを有するタスクフローを識別すること、推論されたユーザの意図に含まれる特定の条件をタスクフローに入力すること、プログラム、方法、サービス又はＡＰＩなどを呼び出すことによりタスクフローを実行すること、ユーザへの出力応答を可聴（例えば、音声）及び／又は視覚形態で生成することのうちの１つ以上を実行できる。
【００２８】
特に、デジタルアシスタントは、少なくとも部分的に自然言語での命令、要求、発言、文章及び／又は問合せの形態のユーザ要求を受け取ることができる。通常、ユーザ要求はデジタルアシスタントによる情報の回答又はタスクの実行を求める。ユーザ要求に対する十分な応答は、要求された情報の回答を提供すること、要求されたタスクを実行すること又はそれらの組み合わせである。例えばユーザは、「現在地はどこ？」などの質問をデジタルアシスタントに尋ねることができる。ユーザの現在地に基づいて、デジタルアシスタントは「現在地はセントラルパークの西門周辺です」と回答できる。また、ユーザは、「友達を来週のガールフレンドの誕生会に招待して」などのタスクの実行を要求できる。それに応答して、デジタルアシスタントは、「はい、今すぐに」と述べることにより要求を受け取ったことを通知し、ユーザの電子アドレス帳に列挙されたユーザの友達のそれぞれに適切なカレンダ招待をユーザの代わりに送信できる。要求されたタスクを実行する間、場合によっては、デジタルアシスタントは長時間にわたる複数の情報交換を含む継続的会話でユーザと対話する。情報又は種々のタスクの実行を要求するためにデジタルアシスタントと対話する多くの他の方法が存在する。音声応答の提供及びプログラミングされた動作の実行に加えて、デジタルアシスタントは例えばテキスト、アラート、音楽、ビデオ、アニメーションなどの他の視覚又はオーディオ形態で応答を更に提供できる。
【００２９】
図１に示すように、いくつかの例では、デジタルアシスタントはクライアントサーバモデルに従って実現可能である。デジタルアシスタントは、ユーザ装置１０４で実行されるクライアント側部分１０２（以下、「ＤＡクライアント１０２」）とサーバシステム１０８で実行されるサーバ側部分１０６（以下、「ＤＡサーバ１０６」）とを含む。ＤＡクライアント１０２は、１つ以上のネットワーク１１０を介してＤＡサーバ１０６と通信する。ＤＡクライアント１０２は、ユーザに対する入出力処理及びＤＡサーバ１０６との通信などのクライアント側機能性を提供する。ＤＡサーバ１０６は、各ユーザ装置１０４に各々が常駐するあらゆる数のＤＡクライアント１０２に対するサーバ側機能性を提供する。
【００３０】
いくつかの例では、ＤＡサーバ１０６は、クライアントに対するＩ／Ｏインタフェース１１２、１つ以上の処理モジュール１１４、データ及びモデル１１６、外部サービスに対するＩ／Ｏインタフェース１１８を含む。クライアントに対するＩ／Ｏインタフェース１１２は、ＤＡサーバ１０６のクライアントに対する入出力処理を容易にする。１つ以上の処理モジュール１１４は、データ及びモデル１１６を使用して音声入力を処理し、自然言語入力に基づいてユーザの意図を判定する。更に、１つ以上の処理モジュール１１４は、推論されたユーザの意図に基づいてタスクを実行する。いくつかの例では、ＤＡサーバ１０６は、タスクを完了するか又は情報を取得するために、ネットワーク１１０を介して外部サービス１２０と通信する。外部サービスに対するＩ／Ｏインタフェース１１８は、そのような通信を容易にする。
【００３１】
ユーザ装置１０４は、あらゆる適切な電子装置である。例えばユーザ装置は、ポータブル多機能装置（例えば、図２Ａを参照して以下に説明する装置２００）、多機能装置（例えば、図４を参照して以下に説明する装置４００）又はパーソナル電子装置（例えば、図６Ａ及び図６Ｂを参照して以下に説明する装置６００）である。ポータブル多機能装置は、例えばＰＤＡ及び／又は音楽プレーヤ機能などの他の機能を更に含む移動電話である。ポータブル多機能装置の具体例は、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｉｎｃ．によるｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）及びｉＰａｄ（登録商標）の各装置を含む。ポータブル多機能装置の他の例はラップトップ又はラブレットコンピュータを含むが、それらに限定されない。更に、いくつかの例では、ユーザ装置１０４は非ポータブル多機能装置である。特に、ユーザ装置１０４は、デスクトップコンピュータ、ゲームコンソール、テレビ又はテレビのセットトップボックスである。いくつかの例では、ユーザ装置１０４はタッチセンシティブ表面（例えば、例えば、タッチ画面ディスプレイ及び／又はタッチパッド）を含む。更に、ユーザ装置１０４は、物理的キーボード、マウス及び／又はジョイスティックなどの１つ以上の他の物理的ユーザインタフェース装置を任意に含む。多機能装置などの電子装置の種々の例を以下に更に詳細に説明する。
【００３２】
通信ネットワーク１１０の例は、ローカルエリアネットワーク（ＬＡＮ）、例えばインターネットであるワイドエリアネットワーク（ＷＡＮ）を含む。通信ネットワーク１１０は、例えばイーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ、汎欧州デジタル移動電話方式（ＧＳＭ）、拡張データＧＳＭ環境（ＥＤＧＥ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、Ｗｉ−ＭＡＸ、あるいは他の何らかの適切な通信プロトコルなどの種々の有線プロトコル又は無線プロトコルを含むあらゆる既知のネットワークプロトコルを使用して実現可能である。
【００３３】
サーバシステム１０８は、１つ以上の独立型データ処理装置又はコンピュータの分散ネットワークにおいて実現可能である。いくつかの例では、サーバシステム１０８は、サーバシステム１０８の下層のコンピューティングリソース及び／又はインフラストラクチャリソースを提供するために第３者のサービスプロバイダ（例えば、第３者のクラウドサービスプロバイダ）の種々の仮想装置及び／又はサービスを更に使用できる。
【００３４】
いくつかの例では、ユーザ装置１０４は第２のユーザ装置１２２を介してＤＡサーバ１０６と通信する。第２のユーザ装置１２２は、ユーザ装置１０４と同様又は同一である場合がある。例えば第２のユーザ装置１２２は、図２Ａ、図４、図６Ａ及び図６Ｂを参照して以下に説明する装置２００、４００又は６００と同様である。ユーザ装置１０４は、Ｂｌｕｅｔｏｏｔｈ、ＮＦＣ又はＢＴＬＥなどの直接通信接続を介して、あるいはローカルＷｉ−Ｆｉネットワークなどの有線又は無線ネットワークを介して、第２のユーザ装置１２２と通信可能に結合するように構成される。いくつかの例では、第２のユーザ装置１２２は、ユーザ装置１０４とＤＡサーバ１０６との間のプロキシとして動作するように構成される。例えばユーザ装置１０４のＤＡクライアント１０２は、第２のユーザ装置１２２を介してＤＡサーバ１０６に情報（例えば、ユーザ装置１０４で受信されたユーザ要求）を送信するように構成される。ＤＡサーバ１０６は、情報を処理し、第２のユーザ装置１２２を介してユーザ装置１０４に関連データ（例えば、ユーザ要求に応答するデータ内容）を返す。
【００３５】
いくつかの例では、ユーザ装置１０４は、ユーザ装置１０４から送信される情報量を減少するために、短縮されたデータ要求を第２のユーザ装置１２２に通信するように構成される。第２のユーザ装置１２２は、短縮された要求に追加する補足情報を判定して、ＤＡサーバ１０６へ送信される完全な要求を生成するように構成される。このシステムアーキテクチャにより、通信容量及び／又はバッテリ電力が制限されるユーザ装置１０４（例えば、ウォッチ又は同様の小型電子装置）は通信容量及び／又はバッテリ電力が多い第２のユーザ装置１２２（例えば、移動電話、ラップトップコンピュータ又はタブレットコンピュータなど）をＤＡサーバ１０６に対するプロキシとして使用して、ＤＡサーバ１０６により提供されるサービスに有利にアクセスできる。２つのユーザ装置１０４及び１２２のみを図１に示すが、システム１００は、このプロキシ構成でＤＡサーバシステム１０６と通信するように構成されるあらゆる数及び種類のユーザ装置を含むことができることを理解するべきである。
【００３６】
図１に示すデジタルアシスタントはクライアント側部分（例えば、ＤＡクライアント１０２）及びサーバ側部分（例えば、ＤＡサーバ１０６）の双方を含むが、いくつかの例では、デジタルアシスタントの機能はユーザ装置にインストールされた独立型アプリケーションとして実現可能である。更に、デジタルアシスタントの機能性のクライアント部分とサーバ部分との分配は種々の実現例で異なる。例えばいくつかの例では、ＤＡクライアントは、ユーザに対する入出力処理機能のみを提供し、デジタルアシスタントの全ての他の機能性をバックエンドサーバに委任するシンクライアントである。
【００３７】
１．電子装置
次に、デジタルアシスタントのクライアント側部分を実現する電子装置の実施形態に注目する。図２Ａは、いくつかの実施形態に係るタッチセンシティブディスプレイシステム２１２を有するポータブル多機能装置２００を示すブロック図である。タッチセンシティブディスプレイ２１２は、便宜上、「タッチ画面」と呼ばれる場合もあり、場合によっては「タッチセンシティブディスプレイシステム」として知られているか又はそう呼ばれている。装置２００は、メモリ２０２（１つ以上のコンピュータ可読記憶媒体を任意に含む）、メモリコントローラ２２２、１つ以上の処理部（ＣＰＵ）２２０、周辺機器インタフェース２１８、ＲＦ回路網２０８、オーディオ回路網２１０、スピーカ２１１、マイク２１３、入出力（Ｉ／Ｏ）サブシステム２０６、他の入力制御装置２１６及び外部ポート２２４を含む。装置２００は１つ以上の光センサ２６４を任意に含む。装置２００は、装置２００（例えば、装置２００のタッチセンシティブディスプレイシステム２１２などのタッチセンシティブ表面）への接触の強度を検出する１つ以上の接触強度センサ２６５を任意に含む。装置２００は、装置２００で触覚出力を生成する（例えば、装置２００のタッチセンシティブディスプレイシステム２１２又は装置４００のタッチパッド４５５などのタッチセンシティブ表面で触覚出力を生成する）１つ以上の触覚出力生成器２６７を任意に含む。それらの構成要素は、任意に１つ以上の通信バス又は信号回線２０３を介して通信する。
【００３８】
明細書及び特許請求の範囲で使用される場合の用語であるタッチセンシティブ表面への接触の「強度」という用語は、タッチセンシティブ表面への接触（例えば、指による接触）の力又は圧力（単位面積当たりの力）、あるいはタッチセンシティブ表面への接触の力又は圧力に代わるもの（プロキシ）を表す。接触の強度は、少なくとも４つの個別の値を含み、より一般的には数百の個別の値（例えば、少なくとも２５６の値）を含む値の範囲を有する。接触の強度は、任意に、種々の方式及び種々のセンサ又はセンサの種々の組み合わせを使用して判定（又は測定）される。例えば、タッチセンシティブ表面の種々のポイントにおける力を測定するために、タッチセンシティブ表面の下方の又はタッチセンシティブ表面に隣接する１つ以上の力センサが任意に使用される。いくつかの実現形態では、接触の推定力を判定するために、複数の力センサからの力測定値が組み合わされる（例えば、加重平均）。同様に、タッチセンシティブ表面へのスタイラスの圧力を判定するために、スタイラスの感圧先端部が任意に使用される。あるいは、タッチセンシティブ表面への接触の力又は圧力に代わるものとして、タッチセンシティブ表面で検出される接触面積の大きさ及び／又はその変化、接触部に近接するタッチセンシティブ表面のキャパシタンス及び／又はその変化、及び／又は接触部に近接するタッチセンシティブ表面の抵抗及び／又はその変化が任意に使用される。いくつかの実現形態では、強度閾値を超えたか否かを判定するために、接触の力又は圧力の代替測定値が直接使用される（例えば、強度閾値は代替測定値に対応する単位で記述される）。いくつかの実現形態では、接触の力又は圧力の代替測定値は推定力又は推定圧力に変換され、強度閾値を超えたか否かを判定するために、この推定力又は推定圧力が使用される（例えば、強度閾値は圧力の単位で測定される圧力閾値である）。ユーザ入力の属性として接触の強度を使用することにより、ユーザは、アフォーダンスを（例えば、タッチセンシティブディスプレイに）表示するための面積が限定されている小型装置ではユーザがアクセス不可能であるかもしれない装置の追加機能性にアクセスでき及び／又は（例えば、タッチセンシティブディスプレイ、タッチセンシティブ表面、あるいはつまみ又はボタンなどの物理的／機械的制御要素を介して）ユーザ入力を受信できる。
【００３９】
明細書及び特許請求の範囲で使用される場合の用語「触覚出力」は、ユーザの触覚によってユーザにより検出される装置の以前の位置に対する装置の物理的変位、装置の別の構成要素（例えば、筐体）に対する装置の構成要素（例えば、タッチセンシティブ表面）の物理的変位、又は装置の質量の中心に対する構成要素の変位を表す。例えば、装置又は装置の構成要素が接触を感知するユーザの皮膚面（例えば、ユーザの手の指、手のひら又は他の部分）と接触している状況で、物理的変位により発生される触覚出力は、装置又は装置の構成要素の物理的特性の認知された変化に対応する触知感覚としてユーザにより解釈される。例えば、タッチセンシティブ表面（例えば、タッチセンシティブディスプレイ又はトラックパッド）の動きは、任意に、物理的アクチュエータボタンの「ダウンクリック」又は「アップクリック」としてユーザにより解釈される。場合によっては、ユーザの動きにより物理的に押圧（例えば、変位）されたタッチセンシティブ表面と関連する物理的アクチュエータボタンに動きがなくても、ユーザは「ダウンクリック」又は「アップクリック」などの触感を感じる。別の例として、タッチセンシティブ表面の動きは、タッチセンシティブ表面の平滑度に変化がない場合であっても、タッチセンシティブ表面の「凹凸」として任意にユーザにより解釈又は感知される。ユーザによるこのような接触の解釈はユーザ個人の感覚認知により影響を受けるが、大多数のユーザに共通する接触の感覚認知は数多く存在する。従って、触覚出力がユーザの特定の感覚認知（例えば、「アップクリック」、「ダウンクリック」又は「凹凸」）に対応するものとして説明される場合、特に指示のない限り、発生される触覚出力は、通常の（又は平均的な）ユーザに関して説明される感覚認知を生成する装置又はその構成要素の物理的変位に対応する。
【００４０】
装置２００はポータブル多機能装置の単なる一例にすぎず、装置２００は、図示されている構成要素より多くの数の又は少ない数の構成要素を任意に有するか、２つ以上の構成要素を任意に組み合わせるか、あるいは構成要素の異なる構成又は配置を任意に有することを理解すべきである。図２Ａに示される種々の構成要素は、１つ以上の信号処理回路及び／又は特定用途向け集積回路を含めて、ハードウェア、ソフトウェア又はハードウェアとソフトウェアの双方の組み合わせで実現される。
【００４１】
メモリ２０２は１つ以上のコンピュータ可読記憶媒体を含んでもよい。コンピュータ可読記憶媒体は有形且つ非一時的であってもよい。メモリ２０２は高速ランダムアクセスメモリを含んでもよく、１つ以上の磁気ディスク記憶装置、フラッシュメモリ装置又は他の不揮発性固体メモリ装置などの不揮発性メモリを更に含んでもよい。メモリコントローラ２２２は、装置２００の他の構成要素によるメモリ２０２へのアクセスを制御してもよい。
【００４２】
いくつかの例では、コンピュータベースのシステム、プロセッサを含むシステムなどの命令実行システム又は装置、あるいは命令実行システム又は装置から命令を取り出して実行できる他のシステムにより使用されるか又はそれらと関連して使用される命令（例えば、以下に説明する方法９００の側面を実行するための）を記憶するために、メモリ２０２の非一時的コンピュータ可読記憶媒体を使用できる。他の例では、命令（例えば、以下に説明する方法９００の側面を実行するための）はサーバシステム１０８の非一時的コンピュータ可読記憶媒体（図示せず）に記憶されるか、あるいはメモリ２０２の非一時的コンピュータ可読記憶媒体とサーバシステム１０８の非一時的コンピュータ可読記憶媒体とに分割される。本明細書中、「非一時的コンピュータ可読記憶媒体」は、命令実行システム又は装置により使用されるか又はそれらと関連して使用されるプログラムを含むか又は記憶できるあらゆる媒体である。
【００４３】
周辺機器インタフェース２１８は、装置の入力周辺機器及び出力周辺機器をＣＰＵ２２０及びメモリ２０２に結合するために使用可能である。１つ以上のプロセッサ２２０は、装置２００の種々の機能を実行し且つデータを処理するために、メモリ２０２に記憶された種々のソフトウェアプログラム及び／又は命令のセットを実行する。いくつかの実施形態では、周辺機器インタフェース２１８、ＣＰＵ２２０及びメモリコントローラ２２２は、チップ２０４のような単一のチップで実現されてもよい。いくつかの他の実施形態では、それらは個別のチップで実現されてもよい。
【００４４】
ＲＦ（無線周波数）回路網２０８は、電磁信号とも呼ばれるＲＦ信号を受信し、送信する。ＲＦ回路網２０８は、電気信号を電磁信号に変換し、また、電磁信号から電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信装置と通信する。ＲＦ回路網２０８は、それらの機能を実行するために、アンテナシステム、ＲＦトランシーバ、１つ以上の増幅器、チューナ、１つ以上の発振器、デジタルシグナルプロセッサ、ＣＯＤＥＣチップセット、サブスクライバアイデンティティモジュール（ＳＩＭ）カード、メモリなどを含むが、それらに限定されない周知の回路網を任意に含む。ＲＦ回路網２０８は、ワールドワイドウェブ（ＷＷＷ）とも呼ばれるインターネット、イントラネット及び／又は携帯電話網、無線ローカルエリアネットワーク（ＬＡＮ）及び／又はメトロポリタンエリアネットワーク（ＭＡＮ）などの無線ネットワークのようなネットワーク及び他の装置と無線通信により任意に通信する。ＲＦ回路網２０８は、近距離通信無線などにより近距離通信（ＮＦＣ）フィールドを検出する周知の回路網を任意に含む。無線通信は、汎欧州デジタル移動電話方式（ＧＳＭ）、拡張データＧＳＭ環境（ＥＤＧＥ）、高速ダウンリンクパケットアクセス（ＨＳＤＰＡ）、高速アップリンクパケットアクセス（ＨＳＵＰＡ）、Ｅｖｏｌｕｔｉｏｎ  Ｄａｔａ−Ｏｎｌｙ（ＥＶ−ＤＯ）、ＨＳＰＡ、ＨＳＰＡ＋、デュアルセルＨＳＰＡ（ＤＣ−ＨＳＰＤＡ）、ロングタームエボリューション（ＬＴＥ）、近距離通信（ＮＦＣ）、広帯域符号分割多元接続（Ｗ−ＣＤＭＡ）、符号分割多元接続（ＣＤＭＡ）、時分割多元接続（ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）、Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ（Ｗｉ−Ｆｉ）（例えば、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ及び／又はＩＥＥＥ８０２．１１ａｃ）、ボイスオーバーインターネットプロトコル（ＶｏＩＰ）、Ｗｉ−ＭＡＸ、電子メール用プロトコル（例えば、インターネットメッセージアクセスプロトコル（ＩＭＡＰ）及び／又はポストオフィスプロトコル（ＰＯＰ））、インスタントメッセージング（例えば、エクステンシブルメッセージングアンドプレゼンスプロトコル（ＸＭＰＰ）、セッションイニシエーションプロトコルフォアインスタントメッセージングアンドプレゼンスレバレッジングエクステンションズ（ＳＩＭＰＬＥ）、インスタントメッセージングアンドプレゼンスサービス（ＩＭＰＳ））及び／又はショートメッセージサービス（ＳＭＳ）、あるいは本明細書の出願日までにまだ開発されていない通信プロトコルを含めた他の何らかの適切な通信プロトコルを含むが、それらに限定されない複数の通信規格、通信プロトコル及び通信技術の中のいずれかを任意に使用する。
【００４５】
オーディオ回路網２１０、スピーカ２１１及びマイク２１３は、ユーザと装置２００との間にオーディオインタフェースを提供する。オーディオ回路網２１０は、周辺機器インタフェース２１８からオーディオデータを受信し、オーディオデータを電気信号に変換し、電気信号をスピーカ２１１へ送信する。スピーカ２１１は、電気信号を人が聴き取れる音波に変換する。オーディオ回路網２１０は、音波からマイク２１３により変換された電気信号を更に受信する。オーディオ回路網２１０は電気信号をオーディオデータに変換し、オーディオデータを処理のために周辺機器インタフェース２１８へ送信する。オーディオデータは、周辺機器インタフェース２１８によりメモリ２０２及び／又はＲＦ回路網２０８から受信され及び／又はメモリ２０２及び／又はＲＦ回路網２０８へ送信されてもよい。いくつかの実施形態では、オーディオ回路網２１０はヘッドセットジャック（例えば、図３の３１２）を更に含む。ヘッドセットジャックは、オーディオ回路網２１０と、出力専用ヘッドホン又は出力（例えば、片耳用又は両耳用ヘッドホン）及び入力（例えば、マイク）の双方を備えるヘッドセットなどの取り外し可能オーディオ入出力周辺機器との間にインタフェースを提供する。
【００４６】
Ｉ／Ｏサブシステム２０６は、タッチ画面２１２及び他の入力制御装置２１６などの装置２００の入出力周辺機器を周辺機器インタフェース２１８に結合する。Ｉ／Ｏサブシステム２０６は、ディスプレイコントローラ２５６、光センサコントローラ２５８、強度センサコントローラ２５９、触感フィードバックコントローラ２６１及び他の入力装置又は制御装置のための１つ以上の入力コントローラ２６０を任意に含む。１つ以上の入力コントローラ２６０は、他の入力制御装置２１６から電気信号を受信し且つ他の入力制御装置２１６へ電気信号を送信する。他の入力制御装置２１６は、物理的ボタン（例えば、押しボタン、ロッカボタンなど）、ダイアル、スライダスイッチ、ジョイスティック、クリックホイールなどを任意に含む。いくつかの代替実施形態では、入力コントローラ２６０は、キーボード、赤外線ポート、ＵＳＢポート及びマウスなどのポインタ装置のうちいずれかに任意に結合される（又はいずれにも結合されない）。１つ以上のボタン（例えば、図３の３０８）は、スピーカ２１１及び／又はマイク２１３の音量制御のための強弱ボタンを任意に含む。１つ以上のボタンは押しボタン（例えば、図３の３０６）を任意に含む。
【００４７】
本明細書に参考として全内容が取り入れられている２００５年１２月２３日出願の米国特許出願第１１／３２２，５４９号「Ｕｎｌｏｃｋｉｎｇ  ａ  Ｄｅｖｉｃｅ  ｂｙ  Ｐｅｒｆｏｒｍｉｎｇ  Ｇｅｓｔｕｒｅｓ  ｏｎ  ａｎ  Ｕｎｌｏｃｋ  Ｉｍａｇｅ」（米国特許第７，６５７，８４９号公報）で説明されるように、押しボタンを素早く押すと、タッチ画面２１２のロックが外れるか又は装置のロックを解除するためにタッチ画面のジェスチャーを使用する処理が開始されてもよい。押しボタン（例えば、３０６）を長押しすると、装置２００への給電がオン／オフされてもよい。ユーザは、１つ以上のボタンの機能性をカスタマイズ可能であってもよい。タッチ画面２１２は、仮想ボタン又はソフトボタン及び１つ以上のソフトキーボードを実現するために使用される。
【００４８】
タッチセンシティブディスプレイ２１２は、装置とユーザとの間に入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ２５６は、タッチ画面２１２から電気信号を受信し及び／又はタッチ画面２１２へ電気信号を送信する。タッチ画面２１２はユーザに視覚出力を提示する。視覚出力は、グラフィックス、テキスト、アイコン、ビデオ及びそれらの何らかの組み合わせ（まとめて「グラフィックス」と呼ぶ）を含んでもよい。いくつかの実施形態では、視覚出力の一部又はすべてはユーザインタフェースオブジェクトに対応してもよい。
【００４９】
タッチ画面２１２は、触感接触及び／又は触覚接触に基づくユーザからの入力を受け取るタッチセンシティブ表面、センサ又はセンサのセットを有する。タッチ画面２１２及びディスプレイコントローラ２５６は（メモリ２０２の関連するいずれかのモジュール及び／又は命令のセットと共に）、タッチ画面２１２への接触（及び接触の何らかの移動又は中断）を検出し、検出された接触をタッチ画面２１２に表示されるユーザインタフェースオブジェクト（例えば、１つ以上のソフトキー、アイコン、ウェブページ又は画像）とのインタラクションに変換する。例示的な一実施形態において、タッチ画面２１２とユーザとの接触点は、ユーザの指に対応する。
【００５０】
タッチ画面２１２はＬＣＤ（液晶ディスプレイ）技術、ＬＰＤ（発光ポリマーディスプレイ）技術又はＬＥＤ（発光ダイオード）技術を使用してもよいが、他の実施形態では他の表示技術が使用されてもよい。タッチ画面２１２及びディスプレイコントローラ２５６は、容量技術、抵抗技術、赤外線技術及び表面弾性波技術、並びにタッチ画面２１２との１つ以上の接触点を判定する他の近接センサアレイ又は他の要素を含むが、それらに限定されない現在知られている複数の接触感知技術又は後の時点で開発される接触感知技術のうちいずれかを使用して、接触及び接触の何らかの移動又は中断を検出してもよい。例示的な一実施形態において、カリフォルニア州クパチーノのＡｐｐｌｅ  Ｉｎｃ．によるｉＰｈｏｎｅ（登録商標）及びｉＰｏｄ  Ｔｏｕｃｈ（登録商標）のような投影型相互静電容量式感知技術が使用される。
【００５１】
タッチ画面２１２のいくつかの実施形態におけるタッチセンシティブディスプレイは、いずれも本明細書に参考として全内容が取り入れられている米国特許第６，３２３，８４６号公報（Ｗｅｓｔｅｒｍａｎ他）、米国特許第６，５７０，５５７号公報（Ｗｅｓｔｅｒｍａｎ他）及び／又は米国特許第６，６７７，９３２号公報（Ｗｅｓｔｅｒｍａｎ）及び／又は米国特許出願第２００２／００１５０２４Ａ１号で説明されるマルチタッチセンシティブタッチパッドに類似していてもよい。しかし、タッチ画面２１２は、装置２００からの視覚出力を表示するが、タッチセンシティブタッチパッドは視覚出力を提供しない。
【００５２】
タッチ画面２１２のいくつかの実施形態におけるタッチセンシティブディスプレイは、（１）２００６年５月２日出願の米国特許出願第１１／３８１，３１３号「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈ  Ｓｕｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ」、（２）２００４年５月６日出願の米国特許出願第１０／８４０，８６２号「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈｓｃｒｅｅｎ」、（３）２００４年７月３０日出願の米国特許出願第１０／９０３，９６４号「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（４）２００５年１月３１日出願の米国特許出願第１１／０４８，２６４号「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（５）２００５年１月１８日出願の米国特許出願第１１／０３８，５９０号「Ｍｏｄｅ−Ｂａｓｅｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（６）２００５年９月１６日出願の米国特許出願第１１／２２８，７５８号「Ｖｉｒｔｕａｌ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅ  Ｐｌａｃｅｍｅｎｔ  Ｏｎ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ」、（７）２００５年９月１６日出願の米国特許出願第１１／２２８，７００号「Ｏｐｅｒａｔｉｏｎ  Ｏｆ  Ａ  Ｃｏｍｐｕｔｅｒ  Ｗｉｔｈ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｉｎｔｅｒｆａｃｅ」、（８）２００５年９月１６日出願の米国特許出願第１１／２２８，７３７号「Ａｃｔｉｖａｔｉｎｇ  Ｖｉｒｔｕａｌ  Ｋｅｙｓ  Ｏｆ  Ａ  Ｔｏｕｃｈ−Ｓｃｒｅｅｎ  Ｖｉｒｔｕａｌ  Ｋｅｙｂｏａｒｄ」及び（９）２００６年３月３日出願の米国特許出願第１１／３６７，７４９号「Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎａｌ  Ｈａｎｄ−Ｈｅｌｄ  Ｄｅｖｉｃｅ」で説明される通りであってもよい。これらの出願は、すべて本明細書に参考として全内容が取り入れられている。
【００５３】
タッチ画面２１２は１００ｄｐｉを超えるビデオ解像度を有してもよい。いくつかの実施形態では、タッチ画面は約１６０ｄｐｉのビデオ解像度を有する。ユーザは、スタイラス、指などの何らかの適切な物体又は付属器官を使用してタッチ画面２１２に触れてもよい。いくつかの実施形態では、ユーザインタフェースは、主に指による接触及びジェスチャーで動作するように設計されるが、タッチ画面への指の接触の面積はスタイラスの場合より広いため、指による接触はスタイラスを利用する入力ほど正確ではないといえる。いくつかの実施形態では、装置は、大まかな指利用入力をユーザが希望する動作を実行するための精密なポインタ／カーソル位置又はコマンドに変換する。
【００５４】
いくつかの実施形態では、装置２００は、タッチ画面に加えて、特定の機能を有効化又は無効化するタッチパッド（図示せず）を含んでもよい。いくつかの実施形態では、タッチパッドは、タッチ画面とは異なり、ビデオ出力を表示しない装置のタッチセンシティブ領域である。タッチパッドは、タッチ画面２１２とは別のタッチセンシティブ表面であるか、又はタッチ画面により形成されるタッチセンシティブ表面の拡張であってもよい。
【００５５】
装置２００は、種々の構成要素に給電する電源系統２６２を更に含む。電源系統２６２は、電力管理システム、１つ以上の電源（例えば、バッテリ、交流（ＡＣ））、再充電システム、停電検出回路、パワーコンバータ又はパワーインバータ、電力状態指示器（例えば、発光ダイオード（ＬＥＤ））及びポータブル装置における電力の発生、管理及び配分と関連する他の何らかの構成要素を含んでもよい。
【００５６】
装置２００は１つ以上の光センサ２６４を更に含んでもよい。図２Ａは、Ｉ／Ｏサブシステム２０６の光センサコントローラ２５８に結合された光センサを示す。光センサ２６４は、電荷結合素子（ＣＣＤ）又は相補型金属酸化膜半導体（ＣＭＯＳ）フォトセンサを含んでもよい。光センサ２６４は、１つ以上のレンズを介して投影される環境からの光を受け取り、その光を画像を表すデータに変換する。撮像モジュール２４３（カメラモジュールとも呼ばれる）と関連して、光センサ２６４はスチル画像又はビデオを取り込んでもよい。いくつかの実施形態では、スチル画像及び／又はビデオ画像を取得するためのビューファインダとしてタッチ画面ディスプレイを使用できるように、光センサは、装置２００の背面に、装置の前面にあるタッチ画面ディスプレイ２１２に対向して配置される。いくつかの実施形態では、ユーザがタッチ画面ディスプレイで他のビデオ会議参加者を見ている間にビデオ会議に関するユーザの画像を取得できるように、光センサは装置の前面に配置される。いくつかの実施形態では、ビデオ会議及びスチル画像及び／又はビデオ画像の取得の双方に１つの光センサ２６４をタッチ画面ディスプレイと共に使用できるように、ユーザにより（例えば、装置筐体の中でレンズ及びセンサを回転させることにより）光センサ２６４の位置を変更することができる。
【００５７】
装置２００は１つ以上の接触強度センサ２６５を任意に更に含む。図２Ａは、Ｉ／Ｏサブシステム２０６の強度センサコントローラ２５９に結合された接触強度センサを示す。接触強度センサ２６５は、１つ以上のピエゾ抵抗歪み計、容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチセンシティブ表面又は他の強度センサ（例えば、タッチセンシティブ表面への接触の力（又は圧力）を測定するために使用されるセンサ）を任意に含む。接触強度センサ２６５は、環境から接触強度情報（例えば、圧力情報又は圧力情報のプロキシ）を受信する。いくつかの実施形態では、少なくとも１つの接触強度センサがタッチセンシティブ表面（例えば、タッチセンシティブディスプレイシステム２１２）と同一の位置に又はそれに近接して配置される。いくつかの実施形態では、少なくとも１つの接触強度センサは、装置２００の背面に、装置２００の前面に配置されたタッチ画面ディスプレイ２１２に対向して配置される。
【００５８】
装置２００は１つ以上の近接センサ２６６を更に含んでもよい。図２Ａは、周辺機器インタフェース２１８に結合された近接センサ２６６を示す。あるいは、近接センサ２６６は、Ｉ／Ｏサブシステム２０６の入力コントローラ２６０に結合されてもよい。近接センサ２６６は、本明細書に参考として全内容が取り入れられている米国特許出願第１１／２４１，８３９号「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、米国特許出願第１１／２４０，７８８号「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、米国特許出願第１１／６２０，７０２号「Ｕｓｉｎｇ  Ａｍｂｉｅｎｔ  Ｌｉｇｈｔ  Ｓｅｎｓｏｒ  Ｔｏ  Ａｕｇｍｅｎｔ  Ｐｒｏｘｉｍｉｔｙ  Ｓｅｎｓｏｒ  Ｏｕｔｐｕｔ」、米国特許出願第１１／５８６，８６２号「Ａｕｔｏｍａｔｅｄ  Ｒｅｓｐｏｎｓｅ  Ｔｏ  Ａｎｄ  Ｓｅｎｓｉｎｇ  Ｏｆ  Ｕｓｅｒ  Ａｃｔｉｖｉｔｙ  Ｉｎ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅｓ」及び米国特許出願第１１／６３８，２５１号「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ｓｙｓｔｅｍｓ  Ｆｏｒ  Ａｕｔｏｍａｔｉｃ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｆ  Ｐｅｒｉｐｈｅｒａｌｓ」で説明されるように実行してもよい。いくつかの実施形態では、近接センサは、多機能装置がユーザの耳の近傍に配置された場合（例えば、ユーザが電話をかけている場合）にターンオフし、タッチ画面２１２を無効化する。
【００５９】
装置２００は１つ以上の触覚出力生成器２６７を任意に更に含む。図２Ａは、Ｉ／Ｏサブシステム２０６の触覚フィードバックコントローラ２６１に結合された触覚出力生成器を示す。触覚出力生成器２６７は、スピーカ又は他のオーディオコンポーネントなどの１つ以上の電気音響装置及び／又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ又は他の触覚出力生成構成要素（例えば、電気信号を装置の触覚出力に変換する構成要素）などのエネルギーを線形運動に変換する電気機械装置を任意に含む。接触強度センサ２６５は、触覚フィードバックモジュール２３３から触覚フィードバック発生命令を受信し、装置２００で、装置２００のユーザにより感知可能な触覚出力を発生する。いくつかの実施形態では、少なくとも１つの触覚出力生成器は、タッチセンシティブ表面（例えば、タッチセンシティブディスプレイシステム２１２）と同一の位置に又はそれに近接して配置され、タッチセンシティブ表面を縦方向（例えば、装置２００の面に出入りする方向）又は横方向（例えば、装置２００の面と同一の平面で往復する方向）に動かすことにより任意に触覚出力を発生する。いくつかの実施形態では、少なくとも１つの触覚出力生成器センサは、装置２００の前面に配置されたタッチ画面ディスプレイ２１２に対向して装置２００の背面に配置される。
【００６０】
装置２００は１つ以上の加速度計２６８を更に含んでもよい。図２Ａは、周辺機器インタフェース２１８に結合された加速度計２６８を示す。あるいは、加速度計２６８は、Ｉ／Ｏサブシステム２０６の入力コントローラ２６０に結合されてもよい。加速度計２６８は、共に本明細書に参考として全内容が取り入れられている米国特許出願公開第２００５０１９００５９号公報「Ａｃｃｅｌｅｒａｔｉｏｎ−ｂａｓｅｄ  Ｔｈｅｆｔ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｏｒｔａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅｓ」及び米国特許出願公開第２００６００１７６９２号公報「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ａｐｐａｒａｔｕｓｅｓ  Ｆｏｒ  Ｏｐｅｒａｔｉｎｇ  Ａ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅ  Ｂａｓｅｄ  Ｏｎ  Ａｎ  Ａｃｃｅｌｅｒｏｍｅｔｅｒ」で説明されるように実行してもよい。いくつかの実施形態では、１つ以上の加速度計から受信されるデータの解析に基づいて、タッチ画面ディスプレイにポートレートビュー又はランドスケープビューで情報が表示される。装置２００は、加速度計２６８に加えて、装置２００の位置及び配向（例えば、ポートレート又はランドスケープ）に関する情報を取得するための磁気計（図示せず）及びＧＰＳ（又はＧＬＯＮＡＳＳ又は他の全地球航法システム）受信機（図示せず）を任意に含む。
【００６１】
いくつかの実施形態では、メモリ２０２に記憶されるソフトウェア構成要素は、オペレーティングシステム２２６、通信モジュール（又は命令のセット）２２８、接触／動きモジュール（又は命令のセット）２３０、グラフィックスモジュール（又は命令のセット）２３２、テキスト入力モジュール（又は命令のセット）２３４、全地球測位システム（ＧＰＳ）モジュール（又は命令のセット）２３５、デジタルアシスタントクライアントモジュール２２９及びアプリケーション（又は命令のセット）２３６を含む。更にメモリ２０２は、ユーザデータ及びモデル２３１のようなデータ及びモデルを記憶する。更に、いくつかの実施形態では、メモリ２０２（図２Ａ）又は４７０（図４）は、図２Ａ及び図４に示されるように、装置／グローバル内部状態２５７を記憶する。装置／グローバル内部状態２５７は、アプリケーションがある場合、どのアプリケーションが現時点で実行中であるかを示す実行中アプリケーション状態、どのアプリケーション、ビュー又は他の情報がタッチ画面ディスプレイ２１２の種々の領域を占めているかを示す表示状態、装置の種々のセンサ及び入力制御装置２１６から取得される情報を含むセンサ状態、並びに装置の位置及び／又は姿勢に関する位置情報のうち１つ以上を含む。
【００６２】
オペレーティングシステム２２６（例えば、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ、ＵＮＩＸ、ＯＳ  Ｘ、ｉＯＳ、ＷＩＮＤＯＷＳ又はＶｘＷｏｒｋｓなどの組み込みオペレーティングシステム）は、一般システムタスク（例えば、メモリ管理、記憶装置制御、電力管理など）を制御し、管理するための種々のソフトウェア構成要素及び／又はドライバを含み、種々のハードウェア構成要素とソフトウェア構成要素との通信を容易にする。
【００６３】
通信モジュール２２８は、１つ以上の外部ポート２２４を介する他の装置との通信を容易にし、ＲＦ回路網２０８及び／又は外部ポート２２４により受信されるデータを処理する種々のソフトウェア構成要素を更に含む。外部ポート２２４（例えば、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥなど）は、他の装置に直接結合するか又はネットワーク（例えば、インターネット、無線ＬＡＮなど）を介して間接的に結合するように適合される。いくつかの実施形態では、外部ポートは、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）装置で使用される３０ピンコネクタと同一であり、それに類似し及び／又はそれに互換性のあるマルチピン（例えば、３０ピン）コネクタである。
【００６４】
接触／動きモジュール２３０は、タッチ画面２１２及び他のタッチセンシティブ装置（例えば、タッチパッド又は物理クリックホイール）との接触を（ディスプレイコントローラ２５６と関連して）任意に検出する。接触／動きモジュール２３０は、接触が起こったか否かを判定すること（例えば、指を下ろすイベントを検出すること）、接触の強度（例えば、接触の力又は圧力、あるいは接触の力又は圧力に代わるもの）を判定すること、接触の移動があるか否かを判定し、タッチセンシティブ表面に沿った移動を追跡すること（例えば、１つ以上の指ドラッグイベントを検出すること）及び接触が停止したか否かを判定すること（例えば、指を上げるイベント又は接触の中断を検出すること）のような、接触の検出に関連する種々の動作を実行するための種々のソフトウェア構成要素を含む。接触／動きモジュール２３０は、タッチセンシティブ表面から接触データを受信する。一連の接触データにより表される接触点の移動の判定は、接触点の速さ（大きさ）、速度（大きさ及び方向）及び／又は加速度（大きさ及び／又は方向の変化）を判定することを任意に含む。それらの動作は、任意に個別の接触点（例えば、１本の指の接触）に適用されるか又は複数の同時接触（例えば、「マルチタッチ」／複数の指の接触）に適用される。いくつかの実施形態では、接触／動きモジュール２３０及びディスプレイコントローラ２５６は、タッチパッドへの接触を検出する。
【００６５】
いくつかの実施形態では、接触／動きモジュール２３０は、ユーザにより操作が実行されたか否かを判定するために（例えば、ユーザがアイコンを「クリック」したか否かを判定するために）１つ以上の強度閾値のセットを使用する。いくつかの実施形態では、ソフトウェアパラメータに従って、少なくとも強度閾値のサブセットが判定される（例えば、特定の物理アクチュエータの起動閾値により強度閾値は判定されず、装置２００の物理ハードウェアを変更することなく、強度閾値を調整できる）。例えば、トラックパッド又はタッチ画面ディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチ画面ディスプレイハードウェアを変更することなく、広い範囲の事前定義済み閾値の中のいずれかの値に設定可能である。更に、いくつかの実現形態では、装置のユーザは、強度閾値のセットのうち１つ以上の強度閾値を調整するための（例えば、個別の強度閾値を調整することにより及び／又はシステムレベルクリック「強度」パラメータによって複数の強度閾値を一度に調整することにより）ソフトウェア設定を与えられる。
【００６６】
接触／動きモジュール２３０は、ユーザによるジェスチャー入力を任意に検出する。タッチセンシティブ表面での異なるジェスチャーは、異なる接触パターン（例えば、検出される接触の異なる移動、タイミング及び／又は強度）を有する。従って、ジェスチャーは、特定の接触パターンの検出により任意に検出される。例えば、指によるタップジェスチャーの検出は、指を下ろすイベントを検出することと、それに続いて指を下ろすイベントと同一の位置（又はほぼ同一の位置）で指を上げる（リフトオフ）イベントを検出すること（例えば、アイコンの位置で）を含む。別の例として、タッチセンシティブ表面上の指によるスワイプジェスチャーの検出は、指を下ろすイベントを検出することと、それに続いて１つ以上の指をドラッグするイベントを検出することと、更にその後に指を上げる（リフトオフ）イベントを検出することとを含む。
【００６７】
グラフィックスモジュール２３２は、表示されるグラフィックスの視覚効果（例えば、輝度、透明度、彩度、コントラスト又は他の視覚的特性）を変化させるための構成要素を含めて、タッチ画面２１２又は他のディスプレイにグラフィックをレンダリングし、表示するための種々の既知のソフトウェア構成要素を含む。本明細書で使用される場合の用語「グラフィックス」は、テキスト、ウェブページ、アイコン（ソフトキーを含むユーザインタフェースオブジェクトなど）、デジタル画像、ビデオ、アニメーションなどを含むが、それらに限定されないユーザに対して表示可能なあらゆるオブジェクトを含む。
【００６８】
いくつかの実施形態では、グラフィックスモジュール２３２は、使用されるグラフィックスを表すデータを記憶する。各グラフィックには対応するコードが任意に割り当てられる。グラフィックスモジュール２３２は、アプリケーションなどから、表示されるグラフィックスを指定する１つ以上のコードを、必要に応じて座標データ及び他のグラフィック特性データと共に受信し、ディスプレイコントローラ２５６へ出力する画面画像データを生成する。
【００６９】
触覚フィードバックモジュール２３３は、ユーザと装置２００とのインタラクションに応答して装置２００の１つ以上の位置で触覚出力を発生するために触覚出力生成器２６７により使用される命令を生成するための種々のソフトウェア構成要素を含む。
【００７０】
グラフィックスモジュール２３２の１つの構成要素であってもよいテキスト入力モジュール２３４は、種々のアプリケーション（例えば、連絡先２３７、電子メール２４０、ＩＭ２４１、ブラウザ２４７及びテキスト入力を必要とする他の何らかのアプリケーション）でテキストを入力するためのソフトキーボードを提供する。
【００７１】
ＧＰＳモジュール２３５は、装置の位置を判定し、この情報を種々のアプリケーション（例えば、位置ベース通話で使用するために電話２３８、画像／ビデオメタデータとしてカメラ２４３且つ天気ウィジェット、ローカルイエローページウィジェット及び地図／ナビゲーションウィジェットなどの位置ベースサービスを提供するアプリケーション）で使用するために提供する。
【００７２】
デジタルアシスタントクライアントモジュール２２９は、デジタルアシスタントのクライアント側機能性を提供する種々のクライアント側デジタルアシスタント命令を含むことができる。例えばデジタルアシスタントクライアントモジュール２２９は、ポータブル多機能装置２００の種々のユーザインタフェース（例えば、マイク２１３、加速度計２６８、タッチセンシティブディスプレイシステム２１２、光センサ２２９、他の入力制御装置２１６など）を介して、声による入力（例えば、音声入力）、テキスト入力、タッチ入力及び／又はジェスチャー入力を受け取ることができる。また、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能装置２００の種々の出力インタフェース（例えば、スピーカ２１１、タッチセンシティブディスプレイシステム２１２、触覚出力生成器２６７など）を介して、オーディオ（例えば、音声出力）形態、視覚形態及び／又は触覚形態で出力を提供できる。例えば出力は、音声、音、アラート、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動及び／又はそれらのうちの２つ以上の組み合わせとして提供される。動作中、デジタルアシスタントクライアントモジュール２２９はＲＦ回路網２０８を使用してＤＡサーバ１０６と通信できる。
【００７３】
ユーザデータ及びモデル２３１は、デジタルアシスタントのクライアント側機能性を提供するために、ユーザに関連する種々のデータ（例えば、ユーザ別語彙データ、ユーザの基本設定データ、ユーザ別の氏名の発音、ユーザの電子アドレス帳からのデータ、やることリスト、買い物リストなど）を含む。更に、ユーザデータ及びモデル２３１は、ユーザ入力を処理してユーザの意図を判定するための種々のモデル（例えば、音声認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデルなど）を含むことができる。
【００７４】
いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能装置２００の種々のセンサ、サブシステム及び周辺機器を使用してポータブル多機能装置２００の周辺環境から追加情報を収集して、ユーザ、現在のユーザ対話及び／又は現在のユーザ入力に関連するコンテキストを確立する。いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ユーザの意図の推論を補助するために、ユーザ入力と共にコンテキスト情報又はそのサブセットをＤＡサーバ１０６に提供する。いくつかの例では、デジタルアシスタントはコンテキスト情報を更に使用して、ユーザに対する出力を用意して提供する方法を判定する。コンテキスト情報をコンテキストデータと呼ぶ場合もある。
【００７５】
いくつかの例では、ユーザ入力に添付されるコンテキスト情報は、例えば照明、周辺雑音、周辺温度、周辺環境の画像又はビデオなどであるセンサ情報を含む。いくつかの例では、コンテキスト情報は、例えば装置の姿勢、装置の位置、装置の温度、電力レベル、速度、加速度、動きのパターン、セルラ信号の強度などである装置の物理的状態を更に含む。いくつかの例では、例えば実行中の処理、インストール済みプログラム、過去及び現在のネットワークを介したやり取り、バックグラウンドサービス、エラーログ、リソース使用量などＤＡサーバ１０６のソフトウェア状態に関する情報とポータブル多機能装置２００のソフトウェア状態に関する情報とが、ユーザ入力に関連するコンテキスト情報としてＤＡサーバ１０６に提供される。
【００７６】
いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６からの要求に応答して、ポータブル多機能装置２００に記憶された情報（例えば、ユーザデータ２３１）を選択的に提供する。いくつかの例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６に要求された際に、自然言語の会話又は他のユーザインタフェースを介してユーザからの追加入力を更に誘導する。デジタルアシスタントクライアントモジュール２２９はＤＡサーバ１０６に追加入力を渡して、ＤＡサーバ１０６がユーザ要求で示されるユーザの意図を推測し且つ／又は実行するのを補助する。
【００７７】
図７Ａ〜図７Ｃを参照して、デジタルアシスタントの更に詳細な説明を以下に述べる。デジタルアシスタントクライアントモジュール２２９は以下に説明するデジタルアシスタントモジュール７２６のサブモジュールをいくつでも含むことができることが認識されるべきである。
【００７８】
アプリケーション２３６は、以下のモジュール（又は命令のセット）又はその下位セット又は上位セットを含んでもよい。
・連絡先モジュール２３７（アドレス帳又は連絡先リストと呼ばれる場合もある）、
・電話モジュール２３８、
・ビデオ会議モジュール２３９、
・電子メールクライアントモジュール２４０、
・インスタントメッセージング（ＩＭ）モジュール２４１、
・ワークアウトサポートモジュール２４２、
・スチル画像及び／又はビデオ画像用カメラモジュール２４３、
・画像管理モジュール２４４、
・ビデオプレーヤモジュール、
・音楽プレーヤモジュール、
・ブラウザモジュール２４７、
・カレンダモジュール２４８、
・天気ウィジェット２４９−１、株価ウィジェット２４９−２、計算器ウィジェット２４９−３、目覚まし時計ウィジェット２４９−４、辞書ウィジェット２４９−５及びユーザにより取得された他のウィジェット、並びにユーザ作成ウィジェット２４９−６のうち１つ以上を含んでもよいウィジェットモジュール２４９、
・ユーザ作成ウィジェット２４９−６を作成するためのウィジェット作成器モジュール２５０、
・探索モジュール２５１、
・ビデオプレーヤモジュール及び音楽プレーヤモジュールを併合するビデオ／音楽プレーヤモジュール２５２、
・メモモジュール２５３、
・地図モジュール２５４及び／又は
・オンラインビデオモジュール２５５。
【００７９】
メモリ２０２に記憶されてもよい他のアプリケーション２３６の例は、他の文書処理アプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ＪＡＶＡ有効化アプリケーション、暗号、デジタル著作権管理、音声認識及び音声複製を含む。
【００８０】
連絡先モジュール２３７は、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２及びテキスト入力モジュール２３４と関連して、アドレス帳に名前を追加すること、アドレス帳から名前を削除すること、電話番号、電子メールアドレス、物理的アドレス又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前をカテゴリ化し、分類すること、電話２３８、ビデオ会議モジュール２３９、電子メール２４０又はＩＭ２４１による通信を開始し及び／又は容易にするために電話番号又は電子メールアドレスを提供することなどを含めて、アドレス帳又は連絡先リスト（例えば、メモリ２０２又はメモリ４７０の連絡先モジュール２３７のアプリケーション内部状態２９２に記憶される）を管理するために使用されてもよい。
【００８１】
電話モジュール２３８は、ＲＦ回路網２０８、オーディオ回路網２１０、スピーカ２１１、マイク２１３、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２及びテキスト入力モジュール２３４と関連して、電話番号に対応する一連の文字を入力し、連絡先モジュール２３７の１つ以上の電話番号にアクセスし、入力されていた電話番号を修正し、各電話番号に電話をかけ、会話を実行し、会話が完了したときに通話を遮断するか又は電話を切るために使用されてもよい。先に述べた通り、無線通信は、複数の通信規格、通信プロトコル及び通信技術のうちいずれかを使用してもよい。
【００８２】
ビデオ会議モジュール２３９は、ＲＦ回路網２０８、オーディオ回路網２１０、スピーカ２１１、マイク２１３、タッチ画面２１２、ディスプレイコントローラ２５６、光センサ２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックスモジュール２３２、テキスト入力モジュール２３４、連絡先モジュール２３７及び電話モジュール２３８と関連して、ユーザ命令に従ってユーザと１人以上の他の参加者との間のビデオ会議を開始し、実施し、終了するための実行可能命令を含む。
【００８３】
電子メールクライアントモジュール２４０は、ＲＦ回路網２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２及びテキスト入力モジュール２３４と関連して、ユーザ命令に応答して電子メールを作成し、送信し、受信し、管理するための実行可能命令を含む。電子メールクライアントモジュール２４０は、画像管理モジュール２４４と関連して、カメラモジュール２４３によって撮影されたスチル画像又はビデオ画像と共に電子メールを作成し、送信することを非常に容易にする。
【００８４】
インスタントメッセージングモジュール２４１は、ＲＦ回路網２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２及びテキスト入力モジュール２３４と関連して、インスタントメッセージに対応する一連の文字を入力し、以前に入力された文字を修正し、各インスタントメッセージを送信し（例えば、電話ベースインスタントメッセージの場合はショートメッセージサービス（ＳＭＳ）又はマルチメディアメッセージサービス（ＭＭＳ）プロトコルを使用して、あるいはインターネットベースインスタントメッセージの場合はＸＭＰＰ、ＳＩＭＰＬＥ又はＩＭＰＳを使用して）、インスタントメッセージを受信し、受信されたインスタントメッセージを閲覧するための実行可能命令を含む。いくつかの実施形態では、送信及び／又は受信されるインスタントメッセージは、グラフィックス、写真、オーディオファイル、ビデオファイル及び／又はＭＭＳ及び／又はエンハンストメッセージングサービス（ＥＭＳ）でサポートされるような他の添付ファイルを含んでもよい。本明細書で使用される場合の用語「インスタントメッセージング」は、電話ベースメッセージ（例えば、ＳＭＳ又はＭＭＳを使用して送信されるメッセージ）及びインターネットベースメッセージ（例えば、ＸＭＰＰ、ＳＩＭＰＬＥ又はＩＭＰＳを使用して送信されるメッセージ）の双方を表す。
【００８５】
ワークアウトサポートモジュール２４２は、ＲＦ回路網２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、地図モジュール２５４及び音楽プレーヤモジュールと関連して、ワークアウト（例えば、時間、距離及び／又はカロリー消費の目標を含む）を作成し、ワークアウトセンサ（スポーツ装置）と通信し、ワークアウトセンサデータを受信し、ワークアウトを監視するために使用されるセンサを校正し、ワークアウトのための音楽を選択し、再生し、ワークアウトデータを表示し、記憶し、送信するための実行可能命令を含む。
【００８６】
カメラモジュール２４３は、タッチ画面２１２、ディスプレイコントローラ２５６、光センサ２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックスモジュール２３２及び画像管理モジュール２４４と関連して、スチル画像又はビデオ（ビデオストリームを含む）を取り込み、それらをメモリ２０２に記憶し、スチル画像又はビデオの特性を修正し、又はスチル画像又はビデオをメモリ２０２から削除するための実行可能命令を含む。
【００８７】
画像管理モジュール２４４は、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２、テキスト入力モジュール２３４及びカメラモジュール２４３と関連して、スチル画像及び／又はビデオ画像を配列し、修正（例えば、編集）し又はその他の手段で操作し、ラベル付けし、削除し、提示し（例えば、デジタルスライドショー又はアルバムとして）、記憶するための実行可能命令を含む。
【００８８】
ブラウザモジュール２４７は、ＲＦ回路網２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２及びテキスト入力モジュール２３４と関連して、ウェブページ又はその一部並びにウェブページにリンクされた添付ファイル及び他のファイルを探索し、リンクし、受信し、表示することを含めて、ユーザ命令に従ってインターネットを閲覧するための実行可能命令を含む。
【００８９】
カレンダモジュール２４８は、ＲＦ回路網２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０及びブラウザモジュール２４７と関連して、ユーザ命令に従ってカレンダ及びカレンダと関連するデータ（例えば、カレンダエントリ、ＴｏＤｏリストなど）を作成し、表示し、修正し、記憶するための実行可能命令を含む。
【００９０】
ウィジェットモジュール２４９は、ＲＦ回路網２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２、テキスト入力モジュール２３４及びブラウザモジュール２４７と関連して、ユーザによりダウンロードされ、使用されてもよいミニアプリケーション（例えば、天気ウィジェット２４９−１、株価ウィジェット２４９−２、計算器ウィジェット２４９−３、目覚まし時計ウィジェット２４９−４及び辞書ウィジェット２４９−５）又はユーザにより作成されてもよいミニアプリケーション（例えば、ユーザ作成ウィジェット２４９−６）である。いくつかの実施形態では、ウィジェットは、ＨＴＭＬ（ハイパーテキストマークアップ言語）ファイル、ＣＳＳ（カスケーディングスタイルシート）ファイル及びＪａｖａＳｃｒｉｐｔファイルを含む。いくつかの実施形態では、ウィジェットは、ＸＭＬ（拡張可能マークアップ言語）ファイル及びＪａｖａＳｃｒｉｐｔファイル（例えば、Ｙａｈｏｏ！  Ｗｉｄｇｅｔｓ）を含む。
【００９１】
ウィジェット作成器モジュール２５０は、ＲＦ回路網２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２、テキスト入力モジュール２３４及びブラウザモジュール２４７と関連して、ウィジェットを作成するために（例えば、ウェブページのユーザ指定部分をウィジェットに変換する）ユーザにより使用されてもよい。
【００９２】
探索モジュール２５１は、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２及びテキスト入力モジュール２３４と関連して、ユーザ命令に従って１つ以上の探索基準（例えば、１つ以上のユーザ指定探索期間）に整合するメモリ２０２内のテキストファイル、音楽ファイル、音声ファイル、画像ファイル、ビデオファイル及び／又は他のファイルを探索するための実行可能命令を含む。
【００９３】
ビデオ／音楽プレーヤモジュール２５２は、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２、オーディオ回路網２１０、スピーカ２１１、ＲＦ回路網２０８及びブラウザモジュール２４７と関連して、ＭＰ３又はＡＡＣファイルなどの１つ以上のファイルフォーマットで記憶された音楽ファイル及び他の音声ファイルをユーザがダウンロードし、再生することを可能にする実行可能命令と、ビデオを（例えば、タッチ画面２１２に又は外部ポート２２４を介して接続されている外部ディスプレイに）表示し、提示し又は他の方法により再生するための実行可能命令とを含む。いくつかの実施形態では、装置２００は、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）のようなＭＰ３プレーヤの機能性を任意に含む。
【００９４】
メモモジュール２５３は、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２及びテキスト入力モジュール２３４と関連して、ユーザ命令に従ってメモ、やることリストなどを作成し、管理するための実行可能命令を含む。
【００９５】
地図モジュール２５４は、ＲＦ回路網２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５及びブラウザモジュール２４７と関連して、ユーザ命令に従って地図及び地図と関連するデータ（例えば、運転方向、特定の位置に又はその近傍にある関心店舗及び他の関心地点及び他の位置ベースデータ）を受信し、表示し、修正し、記憶するために使用されてもよい。
【００９６】
オンラインビデオモジュール２５５は、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックスモジュール２３２、オーディオ回路網２１０、スピーカ２１１、ＲＦ回路網２０８、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０及びブラウザモジュール２４７と関連して、特定のオンラインビデオに至るリンクを伴う電子メールにユーザがアクセスし、電子メールを閲覧し、受信し（例えば、ストリーミング及び／又はダウンロードにより）、再生し（例えば、タッチ画面に又は外部ポート２２４を介して接続された外部ディスプレイに）、送信し、Ｈ．２６４のような１つ以上のファイルフォーマットのオンラインビデオを管理することを可能にする命令を含む。いくつかの実施形態では、特定のオンラインビデオに至るリンクを送信するために、電子メールクライアントモジュール２４０ではなく、インスタントメッセージングモジュール２４１が使用される。オンラインビデオアプリケーションの更なる説明は、本明細書に参考として全内容が取り入れられている２００７年６月２０日出願の米国特許仮出願第６０／９３６，５６２号「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，  Ｍｅｔｈｏｄ  ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」及び２００７年１２月３１日出願の米国特許出願第１１／９６８，０６７号「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，  Ｍｅｔｈｏｄ  ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」で見られる。
【００９７】
以上説明したモジュール及びアプリケーションの各々は、先に説明した１つ以上の機能及び本出願で説明される方法（例えば、本明細書で説明されるコンピュータ実現方法及び他の情報処理方法）を実行するための実行可能命令のセットに対応する。それらのモジュール（例えば、命令のセット）は、個別のソフトウェアプログラム、手順又はモジュールとして実現されなくてもよく、従って、種々の実施形態において、それらのモジュールの種々のサブセットが組み合わされるか又は再配列されてもよい。例えば、ビデオプレーヤモジュールは、音楽プレーヤモジュールと単一のモジュール（例えば、図２Ａのビデオ／音楽プレーヤモジュール２５２）として組み合わされてもよい。いくつかの実施形態では、メモリ２０２は、先に確認したモジュール及びデータ構造のサブセットを記憶してもよい。更に、メモリ２０２は、先に説明されなかった追加のモジュール及びデータ構造を記憶してもよい。
【００９８】
いくつかの実施形態では、装置２００は、装置の機能の事前定義済みセットの動作がタッチ画面及び／又はタッチパッドのみを介して実行されるような装置である。装置２００の動作の主な入力制御装置としてタッチ画面及び／又はタッチパッドを使用することにより、装置２００の物理的入力制御装置（押しボタン、ダイアルなど）の数が減少されてもよい。
【００９９】
タッチ画面及び／又はタッチパッドのみを介して実行される機能の事前定義済みセットは、ユーザインタフェース間のナビゲーションを任意に含む。いくつかの実施形態では、タッチパッドにユーザが触れると、タッチパッドは、装置２００に表示されている何らかのユーザインタフェースからメインメニュー、ホームメニュー又はルートメニューへ装置２００をナビゲートする。そのような実施形態では、「メニューボタン」はタッチパッドを使用して実現される。いくつかの他の実施形態では、メニューボタンは、タッチパッドではなく、物理的押しボタン又は他の物理的入力制御装置である。
【０１００】
図２Ｂは、いくつかの実施形態に係るイベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ２０２（図２Ａ）又は４７０（図４）は、イベントソータ２７０（例えば、オペレーティングシステム２２６にある）及び各アプリケーション２３６−１（例えば、先に挙げたアプリケーション２３７〜２５１、２５５、４８０〜４９０の中のいずれか）を含む。
【０１０１】
イベントソータ２７０はイベント情報を受信し、アプリケーション２３６−１及びイベント情報を出力するアプリケーション２３６−１のアプリケーションビュー２９１を判定する。イベントソータ２７０はイベントモニタ２７１及びイベントディスパッチャモジュール２７４を含む。いくつかの実施形態では、アプリケーション２３６−１は、アプリケーションが実行中又は実行中である場合にタッチセンシティブディスプレイ２１２に表示されている現在アプリケーションビューを示すアプリケーション内部状態２９２を含む。いくつかの実施形態では、装置／グローバル内部状態２５７は、どのアプリケーションが現時点で実行中であるかを判定するためにイベントソータ２７０により使用され、アプリケーション内部状態２９２は、イベント情報を出力するアプリケーションビュー２９１を判定するためにイベントソータ２７０により使用される。
【０１０２】
いくつかの実施形態では、アプリケーション内部状態２９２は、アプリケーション２３６−１が実行を再開する場合に使用される再開情報、表示中の情報を示すか又はアプリケーション２３６−１による表示の準備が完了しているユーザインタフェース状態情報、ユーザがアプリケーション２３６−１の以前の状態又はビューに戻ることを可能にする状態キュー及びユーザにより実行された以前のアクションの再実行／非実行キューのうち１つ以上などの追加情報を含む。
【０１０３】
イベントモニタ２７１は、周辺機器インタフェース２１８からイベント情報を受信する。イベント情報は、サブイベント（例えば、マルチタッチジェスチャーの一部としてのタッチセンシティブディスプレイ２１２へのユーザのタッチ）に関する情報を含む。周辺機器インタフェース２１８は、Ｉ／Ｏサブシステム２０６又は近接センサ２６６などのセンサ、加速度計２６８及び／又はマイク２１３から（オーディオ回路網２１０を介して）受信する情報を送信する。周辺機器インタフェース２１８がＩ／Ｏサブシステム２０６から受信する情報は、タッチセンシティブディスプレイ２１２又はタッチセンシティブ表面からの情報を含む。
【０１０４】
いくつかの実施形態では、イベントモニタ２７１は、所定の間隔で周辺機器インタフェース２１８へ要求を送信する。それに応答して、周辺機器インタフェース２１８はイベント情報を送信する。他の実施形態では、周辺機器インタフェース２１８は、重大なイベント（例えば、所定の雑音閾値を超える入力及び／又は所定の持続時間を超える長さの入力を受信すること）が存在する場合に限りイベント情報を送信する。
【０１０５】
いくつかの実施形態では、イベントソータ２７０は、ヒットビュー判定モジュール２７２及び／又は有効イベント認識器判定モジュール２７３を更に含む。
【０１０６】
ヒットビュー判定モジュール２７２は、タッチセンシティブディスプレイ２１２が２つ以上のビューを表示する場合に１つ以上のビューの中でサブイベントが起こったことを判定するソフトウェア手順を提供する。ビューは、ユーザがディスプレイで見ることができる制御要素及び他の要素から構成される。
【０１０７】
アプリケーションと関連するユーザインタフェースの別の態様は、アプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合もあるビューのセットであり、その中で情報が表示され、タッチベースジェスチャーが実行される。タッチが検出されるアプリケーションビュー（各アプリケーションの）は、アプリケーションのプログラム階層又はビュー階層の中のプログラムレベルに対応してもよい。例えば、タッチが検出される最低レベルのビューはヒットビューと呼ばれてもよく、適正な入力として認識されるイベントのセットは、タッチベースジェスチャーを開始させる最初のタッチのヒットビューに少なくとも部分的に基づいて判定されてもよい。
【０１０８】
ヒットビュー判定モジュール２７２は、タッチベースジェスチャーのサブイベントに関連する情報を受信する。アプリケーションが１つの階層として編成された複数のビューを有する場合、ヒットビュー判定モジュール２７２は、そのサブイベントを処理すべき階層中の最低レベルのビューとしてヒットビューを識別する。多くの状況で、ヒットビューは、開始サブイベント（イベント又は潜在イベントを形成するサブイベントのシーケンスの中の最初のサブイベント）が起こる最低レベルのビューである。ヒットビュー判定モジュール２７２によりヒットビューが識別された後、ヒットビューは、通常、そのビューがヒットビューとして識別されたのと同一のタッチ又は入力源に関連するすべてのサブイベントを受信する。
【０１０９】
有効イベント認識器判定モジュール２７３は、ビュー階層の中のどのビューが特定のサブイベントのシーケンスを受信すべきかを判定する。いくつかの実施形態では、有効イベント認識器判定モジュール２７３は、ヒットビューのみが特定のサブイベントのシーケンスを受信すべきであると判定する。他の実施形態では、有効イベント認識器判定モジュール２７３は、サブイベントの物理的位置を含むすべてのビューが有効関連ビューであると判定し、従って、有効関連ビューのすべてが特定のサブイベントのシーケンスを受信すべきであると判定する。他の実施形態では、タッチサブイベントが１つの特定のビューと関連するエリアに完全に封じ込められている場合でも、階層の中で上位にあるビューは依然として有効関連イベントのままだろう。
【０１１０】
イベントディスパッチャモジュール２７４は、イベント情報をイベント認識器（例えば、イベント認識器２８０）へ出力する。有効イベント認識器判定モジュール２７３を含む実施形態では、イベントディスパッチャモジュール２７４は、有効イベント認識器判定モジュール２７３により判定されたイベント認識器へイベント情報を出力する。いくつかの実施形態では、イベントディスパッチャモジュール２７４はイベント情報をイベントキューに記憶し、イベント情報は各イベント受信器２８２により検索される。
【０１１１】
いくつかの実施形態では、オペレーティングシステム２２６がイベントソータ２７０を含む。あるいは、アプリケーション２３６−１がイベントソータ２７０を含む。更に別の実施形態では、イベントソータ２７０は独立型モジュールであるか、又は接触／動きモジュール２３０などの、メモリ２０２に記憶された別のモジュールの一部である。
【０１１２】
いくつかの実施形態では、アプリケーション２３６−１は、複数のイベントハンドラ２９０及び１つ以上のアプリケーションビュー２９１を含み、各アプリケーションビューは、アプリケーションのユーザインタフェースの各ビューの中で起こるタッチイベントを処理するための命令を含む。アプリケーション２３６−１の各アプリケーションビュー２９１は、１つ以上のイベント認識器２８０を含む。通常、各アプリケーションビュー２９１は複数のイベント認識器２８０を含む。他の実施形態では、イベント認識器２８０のうち１つ以上は、ユーザインタフェースキット（図示せず）又はアプリケーション２３６−１に方法及び他の特性を継承させる更に上位のレベルのオブジェクトなどの別のモジュールの一部である。いくつかの実施形態では、各イベントハンドラ２９０は、データ更新器２７６、オブジェクト更新器２７７、ＧＵＩ更新器２７８及び／又はイベントソータ２７０から受信されたイベントデータ２７９のうち１つ以上を含む。イベントハンドラ２９０は、データ更新器２７６、オブジェクト更新器２７７又はＧＵＩ更新器２７８を利用するか又は呼び出して、アプリケーション内部状態２９２を更新してもよい。あるいは、アプリケーションビュー２９１のうち１つ以上は各々１つ以上のイベントハンドラ２９０を含む。また、いくつかの実施形態では、データ更新器２７６、オブジェクト更新器２７７及びＧＵＩ更新器２７８のうち１つ以上は各アプリケーションビュー２９１に含まれる。
【０１１３】
各イベント認識器２８０は、イベントソータ２７０からイベント情報（例えば、イベントデータ２７９）を受信し、イベント情報からイベントを識別する。イベント認識器２８０はイベント受信器２８２及びイベント比較器２８４を含む。いくつかの実施形態では、イベント認識器２８０は、メタデータ２８３及びイベント出力命令２８８（サブイベント出力命令を含んでもよい）の少なくともサブセットを更に含む。
【０１１４】
イベント受信器２８２はイベントソータ２７０からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチ移動に関する情報を含む。サブイベントに応じて、イベント情報は、サブイベントの位置などの追加情報を更に含む。サブイベントがタッチの移動に関する場合、イベント情報はサブイベントの速度及び方向を更に含んでもよい。いくつかの実施形態では、イベントは、装置の１つの配向から別の配向への（例えば、ポートレート配向からランドスケープ配向への、又は逆にランドスケープ配向からポートレート配向への）回転を含み、イベント情報は、装置の現在の配向（装置姿勢とも呼ばれる）に関する対応する情報を含む。
【０１１５】
イベント比較器２８４は、イベント情報を事前定義済みイベント定義又はサブイベント定義と比較し、その比較に基づいて、イベント又はサブイベントを判定するか、あるいはイベント又はサブイベントの状態を判定又は更新する。いくつかの実施形態では、イベント比較器２８４はイベント定義２８６を含む。イベント定義２８６はイベントの定義（例えば、サブイベントの事前定義済みシーケンス）、例えば、イベント１（２８７−１）、イベント２（２８７−２）及び他のイベントを含む。いくつかの実施形態では、イベント（２８７）のサブイベントは、例えば、タッチ開始、タッチ終了、タッチ移動、タッチ取り消し及び多重タッチを含む。一例では、イベント１（２８７−１）の定義は、表示されるオブジェクトに対するダブルタップである。ダブルタップは、例えば、所定の段階での表示オブジェクトへの第１のタッチ（タッチ開始）と、所定の段階での第１のリフトオフ（タッチ終了）と、所定の段階での表示オブジェクトへの第２のタッチ（タッチ開始）と、所定の段階での第２のリフトオフ（タッチ終了）とを含む。別の例では、イベント２（２８７−２）の定義は、表示オブジェクトに対するドラッグである。ドラッグは、例えば、所定の段階での表示オブジェクトへのタッチ（又は接触）と、タッチセンシティブディスプレイ２１２に沿ったタッチの移動と、タッチのリフトオフ（タッチ終了）とを含む。いくつかの実施形態では、イベントは、１つ以上の関連するイベントハンドラ２９０に関する情報を更に含む。
【０１１６】
いくつかの実施形態では、イベント定義２８７は、ユーザインタフェースオブジェクトごとのイベントの定義を含む。いくつかの実施形態では、イベント比較器２８４は、どのユーザインタフェースオブジェクトがサブイベントと関連するかを判定するためにヒットテストを実行する。例えば、タッチセンシティブディスプレイ２１２に３つのユーザインタフェースオブジェクトが表示されるアプリケーションでは、タッチセンシティブディスプレイ２１２でタッチが検出されたときに、イベント比較器２８４は、３つのユーザインタフェースオブジェクトのうちどれがそのタッチ（サブイベント）と関連するかを判定するためにヒットテストを実行する。表示される各オブジェクトが各イベントハンドラ２９０と関連している場合、イベント比較器は、ヒットテストの結果を使用してどのイベントハンドラ２９０を起動すべきかを判定する。例えば、イベント比較器２８４は、ヒットテストをトリガするサブイベント及びオブジェクトと関連するイベントハンドラを選択する。
【０１１７】
いくつかの実施形態では、各イベント（２８７）の定義は、サブイベントのシーケンスがイベント認識器のイベント型に対応するか又は対応しないかが判定される後までイベント情報の出力を遅延させる遅延アクションを更に含む。
【０１１８】
一連のサブイベントがイベント定義２８６のイベントのいずれにも整合しないと各イベント認識器２８０が判定した場合、その各イベント認識器２８０はイベント不能状態、イベント失敗状態又はイベント終了状態に入り、その後、イベント認識器は、タッチベースジェスチャーの後続するサブイベントを無視する。この状況で、ヒットビューに関して実行中のままである他のイベント認識器が存在する場合に、そのイベント認識器は、進行中のタッチベースジェスチャーのサブイベントを追跡し続け、処理し続ける。
【０１１９】
いくつかの実施形態では、各イベント認識器２８０は、イベント出力システムが有効関連イベント認識器へのサブイベント出力をどのように実行すべきかを示す構成可能特性、フラグ及び／又はリストを伴うメタデータ２８３を含む。いくつかの実施形態では、メタデータ２８３は、イベント認識器が互いにどのように対話してもよいか又は互いに対話するためにどのように有効化されるかを示す構成可能特性、フラグ及び／又はリストを含む。いくつかの実施形態では、メタデータ２８３は、サブイベントがビュー階層又はプログラム階層の中の種々のレベルへ出力されるか否かを示す構成可能特性、フラグ及び／又はリストを含む。
【０１２０】
いくつかの実施形態では、各イベント認識器２８０は、イベントの１つ以上の特定のサブイベントが認識される場合にイベントと関連するイベントハンドラ２９０を起動する。いくつかの実施形態では、各イベント認識器２８０は、イベントと関連するイベント情報をイベントハンドラ２９０に出力する。イベントハンドラ２９０の起動は、各ヒットビューへのサブイベントの送信（及び送信の延期）とは区別される。いくつかの実施形態では、イベント認識器２８０は、認識されたイベントと関連するフラグを投げ、フラグと関連するイベントハンドラ２９０はフラグをキャッチして、事前定義済み処理を実行する。
【０１２１】
いくつかの実施形態では、イベント出力命令２８８は、イベントハンドラを起動せずにサブイベントに関するイベント情報を出力するサブイベント出力命令を含む。サブイベント出力命令は、イベントハンドラを起動する代わりに、一連のサブイベントと関連するイベントハンドラ又は有効関連ビューにイベント情報を出力する。一連のサブイベント又は有効関連ビューと関連するイベントハンドラはイベント情報を受信し、所定の処理を実行する。
【０１２２】
いくつかの実施形態では、データ更新器２７６は、アプリケーション２３６−１で使用されるデータを作成し、更新する。例えば、データ更新器２７６は、連絡先モジュール２３７で使用される電話番号を更新するか、又はビデオプレーヤモジュールで使用されるビデオファイルを記憶する。いくつかの実施形態では、オブジェクト更新器２７７は、アプリケーション２３６−１で使用されるオブジェクトを作成し、更新する。例えば、オブジェクト更新器２７７は、新規のユーザインタフェースオブジェクトを作成するか又はユーザインタフェースオブジェクトの位置を更新する。ＧＵＩ更新器２７８はＧＵＩを更新する。例えば、ＧＵＩ更新器２７８は表示情報を準備し、タッチセンシティブディスプレイで表示するために表示情報をグラフィックスモジュール２３２へ送信する。
【０１２３】
いくつかの実施形態では、イベントハンドラ２９０は、データ更新器２７６、オブジェクト更新器２７７及びＧＵＩ更新器２７８を含むか又はそれらの更新器にアクセス可能である。いくつかの実施形態では、データ更新器２７６、オブジェクト更新器２７７及びＧＵＩ更新器２７８は、各アプリケーション２３６−１又はアプリケーションビュー２９１の単一のモジュールに含まれる。他の実施形態では、それらの更新器は２つ以上のソフトウェアモジュールに含まれる。
【０１２４】
タッチセンシティブディスプレイにおけるユーザタッチのイベント処理に関する以上の説明は、入力装置を有する多機能装置２００を動作させるための他の形のユーザ入力にも同様に適用され、それらのユーザ入力のすべてがタッチ画面で開始されるとは限らないことを理解すべきである。例えば、キーボードの１回又は複数回の押下又は押し続ける操作と任意に協調されるマウスの移動及びマウスボタンの押下、タッチパッドにおけるタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、装置の移動、口頭命令、検出される目の動き、バイオメトリック入力及び／又はそれらの何らかの組み合わせは、認識されるイベントを定義するサブイベントに対応する入力として任意に利用される。
【０１２５】
図３は、いくつかの実施形態に係るタッチ画面２１２を有するポータブル多機能装置２００を示す。タッチ画面は、ユーザインタフェース（ＵＩ）３００の中に１つ以上のグラフィックスを任意に表示する。本実施形態及び以下に説明される他の実施形態では、ユーザは、例えば、１本以上の指３０２（図には縮尺通りに示されていない）又は１つ以上のスタイラス３０３（図には縮尺通りに示されていない）によってグラフィックス上でジェスチャーを実行することにより、グラフィックスのうち１つ以上を選択できる。いくつかの実施形態では、１つ以上のグラフィックスの選択は、ユーザがそれらの１つ以上のグラフィックスとの接触を中止したときに起こる。いくつかの実施形態では、ジェスチャーは、１回以上のタップ、１回以上のスワイプ（左から右へ、右から左へ、下から上へ及び／又は上から下へ）及び／又は装置２００と接触していた指のローリング（右から左へ、左から右へ、下から上へ及び／又は上から下へ）を任意に含む。いくつかの実現形態又は状況では、グラフィックスに偶発的に触れても、そのグラフィックスは選択されない。例えば、アプリケーションアイコンをかすめるスワイプジェスチャーは、選択に対応するジェスチャーがタップである場合には対応するアプリケーションを任意に選択しない。
【０１２６】
装置２００は、「ホーム」ボタン又はメニューボタン３０４などの１つ以上の物理的ボタンを更に含んでもよい。先に説明したように、メニューボタン３０４は、装置２００で実行されてもよいアプリケーションのセットの中のいずれかのアプリケーション２３６へナビゲートするために使用されてもよい。あるいは、いくつかの実施形態では、メニューボタンは、タッチ画面２１２に表示されるＧＵＩのソフトキーとして実現される。
【０１２７】
一実施形態において、装置２００は、タッチ画面２１２と、メニューボタン３０４と、装置の電源オン／オフ及び装置のロックのための押しボタン３０６と、音量調整ボタン３０８と、サブスクライバアイデンティティモジュール（ＳＩＭ）カードスロット３１０と、ヘッドセットジャック３１２と、ドッキング／充電用外部ポート２２４とを含む。押しボタン３０６は、ボタンを押下し、事前定義済み時間にわたりボタンを押下状態に保持することにより装置の電源をオン／オフし、ボタンを押下し、事前定義済み時間が経過する前にボタンを離すことにより装置をロックしかつ／又は装置のロックを解除するか又はロック解除処理を開始するために任意に使用される。別の実施形態では、装置２００は、いくつかの機能を起動又は停止するための口頭入力をマイク２１３を介して更に受信する。装置２００は、タッチ画面２１２への接触の強度を検出する１つ以上の接触強度センサ２６５及び／又は装置２００のユーザに対して触覚出力を発生する１つ以上の触覚出力生成器２６７を更に任意に含む。
【０１２８】
図４は、いくつかの実施形態に係るディスプレイ及びタッチセンシティブ表面を有する例示的な多機能装置のブロック図である。装置４００はポータブルでなくてもよい。いくつかの実施形態では、装置４００は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレーヤ装置、ナビゲーション装置、教育用装置（小児用学習玩具など）、ゲームシステム又は制御装置（例えば、家庭用コントローラ又は工業用コントローラ）である。装置４００は、通常、１つ以上の処理部（ＣＰＵ）４１０、１つ以上のネットワーク又は他の通信インタフェース４６０、メモリ４７０及びそれらの構成要素を相互接続する１つ以上の通信バス４２０を含む。通信バス４２０は、システム構成要素を互いに接続し且つシステム構成要素間の通信を制御する回路網（チップセットと呼ばれる場合もある）を任意に含む。装置４００は、通常はタッチ画面ディスプレイであるディスプレイ４４０を備える入出力（Ｉ／Ｏ）インタフェース４３０を含む。Ｉ／Ｏインタフェース４３０は、キーボード及び／又はマウス（又は他のポインティング装置）４５０及びタッチパッド４５５、装置４００で触覚出力を発生する触覚出力生成器４５７（例えば、先に図２Ａを参照して説明した触覚出力生成器２６７に類似する）、センサ４５９（例えば、光センサ、加速センサ、近接センサ、タッチセンシティブセンサ及び／又は先に図２Ａを参照して説明した接触強度センサ２６５に類似する接触強度センサ）を更に任意に含む。メモリ４７０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ又は他のランダムアクセス固体メモリ装置などの高速ランダムアクセスメモリを含み、１つ以上の磁気ディスク記憶装置、光ディスク記憶装置、フラッシュメモリ装置又は他の不揮発性固体記憶装置などの不揮発性メモリを任意に含む。メモリ４７０は、ＣＰＵ４１０から離れた位置に配置された１つ以上の記憶装置を任意に含む。いくつかの実施形態では、メモリ４７０は、ポータブル多機能装置２００（図２Ａ）のメモリ２０２に記憶されたプログラム、モジュール及びデータ構造と同様のプログラム、モジュール及びデータ構造、又はそのサブセットを記憶する。更に、メモリ４７０は、ポータブル多機能装置２００のメモリ２０２には存在しない追加のプログラム、モジュール及びデータ構造を任意に記憶する。例えば、装置４００のメモリ４７０は、描画モジュール４８０、プレゼンテーションモジュール４８２、文書処理モジュール４８４、ウェブサイト作成モジュール４８６、ディスクオーサリングモジュール４８８及び／又はスプレッドシートモジュール４９０を任意に記憶するが、ポータブル多機能装置２００（図２Ａ）のメモリ２０２は、それらのモジュールを任意に記憶しない。
【０１２９】
図４の上記の要素の各々は、前述のメモリ装置のうち１つ以上に記憶されてもよい。上記のモジュールの各々は、先に説明した機能を実行するための命令のセットに対応する。上記のモジュール又はプログラム（例えば、命令のセット）は、個別のソフトウェアプログラム、手順又はモジュールとして実現される必要はなく、従って、種々の実施形態において、それらのモジュールの種々のサブセットは組み合わされるか又は再配列されてもよい。いくつかの実施形態では、メモリ４７０は、先に挙げたモジュール及びデータ構造のサブセットを記憶してもよい。更に、メモリ４７０は、先に説明されなかった追加のモジュール及びデータ構造を記憶してもよい。
【０１３０】
次に、例えば、ポータブル多機能装置２００で実現されてもよいユーザインタフェースの実施形態に注目する。
【０１３１】
図５Ａは、いくつかの実施形態に係るポータブル多機能装置２００におけるアプリケーションのメニューを表す例示的なユーザインタフェースを示す。装置４００でも同様のユーザインタフェースが実現されてよい。いくつかの実施形態では、ユーザインタフェース５００は以下の要素、あるいはその下位セット又は上位セットを含む。
・セルラ信号及びＷｉ−Ｆｉ信号などの無線通信のための信号強度標識５０２、
・時刻５０４、
・Ｂｌｕｅｔｏｏｔｈ標識５０５、
・バッテリ状態標識５０６、
・次のような頻繁に使用されるアプリケーションのアイコンを伴うトレイ５０８
〇不在着信又はボイスメールメッセージの数を示す標識５１４を任意に含む「電話」とラベル付けされた電話モジュール２３８のアイコン５１６、
〇未読電子メールの数を示す標識５１０を任意に含む「メール」とラベル付けされた電子メールクライアントモジュール２４０のアイコン５１８、
〇「ブラウザ」とラベル付けされたブラウザモジュール２４７のアイコン５２０、及び
〇「ｉＰｏｄ」とラベル付けされたｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）モジュール２５２とも呼ばれるビデオ・音楽プレーヤモジュール２５２のアイコン５２２、
・次のような他のアプリケーションのアイコン
〇「メッセージ」とラベル付けされたＩＭモジュール２４１のアイコン５２４、
〇「カレンダ」とラベル付けされたカレンダモジュール２４８のアイコン５２６、
〇「写真」とラベル付けされた画像管理モジュール２４４のアイコン５２８、
〇「カメラ」とラベル付けされたカメラモジュール２４３のアイコン５３０、
〇「オンラインビデオ」とラベル付けされたオンラインビデオモジュール２５５のアイコン５３２、
〇「株価」とラベル付けされた株価ウィジェット２４９−２のアイコン５３４、
〇「地図」とラベル付けされた地図モジュール２５４のアイコン５３６、
〇「天気」とラベル付けされた天気ウィジェット２４９−１のアイコン５３８、
〇「時計」とラベル付けされた目覚まし時計ウィジェット２４９−４のアイコン５４０、
〇「ワークアウトサポート」とラベル付けされたワークアウトサポートモジュール２４２のアイコン５４２、
〇「メモ」とラベル付けされたメモモジュール２５３のアイコン５４４、及び
〇装置２００及びその種々のアプリケーション２３６の設定へのアクセスを提供する「設定」とラベル付けされた設定アプリケーション又はモジュールのアイコン５４６。
【０１３２】
尚、図５Ａに示されるアイコンラベルは単なる例である。例えば、ビデオ／音楽プレーヤモジュール２５２のアイコン５２２は、任意に「音楽」又は「音楽プレーヤ」とラベル付けされてもよい。種々のアプリケーションアイコンに対して他のラベルが任意に使用される。いくつかの実施形態では、各アプリケーションアイコンを表すラベルは、その各アプリケーションアイコンに対応するアプリケーションの名称である。いくつかの実施形態では、特定のアプリケーションアイコンを表すラベルは、その特定のアプリケーションアイコンに対応するアプリケーションの名称とは異なる。
【０１３３】
図５Ｂは、ディスプレイ５５０（例えば、タッチ画面ディスプレイ２１２）とは別のタッチセンシティブ表面５５１（例えば、図４のタブレット又はタッチパッド４５５）を有する装置（例えば、図４の装置４００）の例示的なユーザインタフェースを示す。装置４００は、タッチセンシティブ表面５５１への接触の強度を検出する１つ以上の接触強度センサ（例えば、センサ４５７のうち１つ以上）及び／又は装置４００のユーザに対して触覚出力を発生する１つ以上の触覚出力生成器４５９を更に任意に含む。
【０１３４】
以下に示す例のうちいくつかはタッチ画面ディスプレイ２１２（タッチセンシティブ表面とディスプレイが組み合わされている）への入力に関連して説明されるが、いくつかの実施形態では、装置は、図５Ｂに示されるように、ディスプレイとは別であるタッチセンシティブ表面への入力を検出する。いくつかの実施形態では、タッチセンシティブ表面（例えば、図５Ｂの５５１）は、ディスプレイ（例えば、５５０）の主軸（例えば、図５Ｂの５５３）に対応する主軸（例えば、図５Ｂの５５２）を有する。それらの実施形態によれば、装置は、ディスプレイのそれぞれの位置に対応する位置におけるタッチセンシティブ表面５５１との接触（例えば、図５Ｂの５６０及び５６２）を検出する（例えば、図５Ｂでは、５６０は５６８に対応し、５６２は５７０に対応する）。このように、タッチセンシティブ表面（例えば、図５Ｂの５５１）で装置により検出されるユーザ入力（接触５６０及び５６２、並びにその移動）は、タッチセンシティブ表面がディスプレイとは別である場合に多機能装置のディスプレイ（例えば、図５Ｂの５５０）でユーザインタフェースを操作するために装置により使用される。尚、本明細書で説明される他のユーザインタフェースに対しても類似の方法が任意に使用されることを理解すべきである。
【０１３５】
更に、以下に示す例は主に指による入力（例えば、指の接触、指のタップジェスチャー、指のスワイプジェスチャー）に関連して説明されるが、いくつかの実施形態では、指入力のうち１つ以上の代わりに別の入力装置（例えば、マウスベース入力又はスタイラス入力）が使用されることを理解すべきである。例えば、スワイプジェスチャーの代わりに、マウスクリック（例えば、接触の代わりに）と、その後に続くスワイプの経路に沿ったカーソルの移動（例えば、接触の移動の代わりに）とが任意に使用される。別の例として、タップジェスチャーの代わりに（例えば、接触の検出及びその後に続く接触検出の停止の代わりに）、タップジェスチャーの位置にカーソルを置いたままでマウスをクリックする操作が任意に使用される。同様に、複数のユーザ入力が同時に検出される場合に、複数のコンピュータマウスが任意に同時に使用されるか、又はマウスと指による接触が任意に同時に使用されることを理解すべきである。
【０１３６】
図６Ａは、例示的なパーソナル電子装置６００を示す。装置６００は本体６０２を含む。いくつかの実施形態では、装置６００は、装置２００及び４００（例えば、図２Ａ及び図４Ｂ）に関して説明した特徴の一部又はすべてを含むことができる。いくつかの実施形態では、装置６００はタッチセンシティブディスプレイ画面６０４（以下、タッチ画面６０４）を有する。タッチ画面６０４の代わりに又はそれに加えて、装置６００はディスプレイ及びタッチセンシティブ表面を有する。いくつかの実施形態では、装置２００及び４００の場合と同様に、タッチ画面６０４（又はタッチセンシティブ表面）は、加えられている接触（例えば、タッチ）の強度を検出する１つ以上の強度センサを有してもよい。タッチ画面６０４（又はタッチセンシティブ表面）の１つ以上の強度センサは、タッチの強度を表す出力データを提供できる。装置６００のユーザインタフェースは、タッチの強度に基づいてタッチに応答でき、これは、異なる強度のタッチが装置６００で異なるユーザインタフェース動作を呼び出すことができることを意味する。
【０１３７】
タッチの強度を検出し、処理する技術は、例えば、いずれも本明細書に参考として全内容が取り入れられている２０１３年５月８日に出願された国際特許出願第ＰＣＴ／ＵＳ２０１３／０４００６１号、名称「Ｄｅｖｉｃｅ，  Ｍｅｔｈｏｄ，  ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｄｉｓｐｌａｙｉｎｇ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｏｂｊｅｃｔｓ  Ｃｏｒｒｅｓｐｏｎｄｉｎｇ  ｔｏ  ａｎ  Ａｐｐｌｉｃａｔｉｏｎ」及び２０１３年１１月１１日に出願された国際特許出願第ＰＣＴ／ＵＳ２０１３／０６９４８３号、名称「Ｄｅｖｉｃｅ，  Ｍｅｔｈｏｄ，  ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｔｒａｎｓｉｔｉｏｎｉｎｇ  Ｂｅｔｗｅｅｎ  Ｔｏｕｃｈ  Ｉｎｐｕｔ  ｔｏ  Ｄｉｓｐｌａｙ  Ｏｕｔｐｕｔ  Ｒｅｌａｔｉｏｎｓｈｉｐｓ」の関連出願で見られる。
【０１３８】
いくつかの実施形態では、装置６００は１つ以上の入力機構６０６及び６０８を有する。入力機構６０６及び６０８が含まれる場合、それらは物理的機構であることが可能である。物理的入力機構の例は、押しボタン及び回転可能機構を含む。いくつかの実施形態では、装置６００は１つ以上の装着機構を有する。そのような装着機構が含まれる場合、それらの機構により、装置６００を、例えば、帽子、眼鏡、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、時計のバンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどに装着できる。それらの装着機構により、ユーザは装置６００を装着してもよい。
【０１３９】
図６Ｂは、例示的なパーソナル電子装置６００を示す。いくつかの実施形態では、装置６００は、図２Ａ、図２Ｂ及び図４に関して説明した構成要素の一部又はすべてを含むことができる。装置６００は、Ｉ／Ｏ部６１４を１つ以上のコンピュータプロセッサ６１６及びメモリ６１８と動作可能に結合するバス６１２を有する。Ｉ／Ｏ部６１４はディスプレイ６０４に接続可能であり、ディスプレイ６０４はタッチセンシティブ構成要素６２２を有することができ、タッチ強度感知構成要素６２４を任意に有することができる。更に、Ｉ／Ｏ部６１４は、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、近距離通信（ＮＦＣ）、セルラ通信技術及び／又は他の無線通信技術を使用してアプリケーション及びオペレーティングシステムデータを受信する通信部６３０と接続可能である。装置６００は入力機構６０６及び／又は６０８を含むことができる。入力機構６０６は、例えば、回転可能入力装置又は押下可能／回転可能入力装置であってもよい。いくつかの例では、入力機構６０８はボタンであってもよい。
【０１４０】
いくつかの例では、入力機構６０８はマイクであってもよい。パーソナル電子装置６００は、ＧＰＳセンサ６３２、加速度計６３４、方向センサ６４０（例えば、コンパス）、ジャイロスコープ６３６、動きセンサ６３８及び／又はそれらの組み合わせなどの種々のセンサを含むことができ、センサのすべてはＩ／Ｏ部６１４に動作可能に接続できる。
【０１４１】
パーソナル電子装置６００のメモリ６１８は、コンピュータ実行可能命令を記憶する非一時的コンピュータ可読記憶媒体であることが可能であり、コンピュータ実行可能命令は、１つ以上のコンピュータプロセッサ６１６により実行される場合に、例えば、コンピュータプロセッサに、方法９００（図８Ａ〜図８Ｄ）を含む以下に説明した技術を実行させることができる。コンピュータ実行可能命令は、コンピュータベースシステム、プロセッサを含むシステム、あるいは命令実行システム、装置又はデバイスから命令をフェッチし、それらの命令を実行できる他のシステムのような命令実行システム、装置又はデバイスにより使用するための又は命令実行システム、装置又はデバイスと関連して使用するための何らかの非一時的コンピュータ可読記憶媒体に記憶され及び／又は搬送されることも可能である。パーソナル電子装置６００は、図６Ｂの構成要素及び構成に限定されず、多数の構成で他の構成要素又は追加の構成要素を含むことができる。
【０１４２】
本明細書で使用される場合の用語「アフォーダンス」は、装置２００、４００及び／又は６００（図２、図４及び図６）の表示画面に表示されてもよいユーザ対話型グラフィカルユーザインタフェースオブジェクトを表す。例えば、画像（例えば、アイコン）、ボタン及びテキスト（例えば、ハイパーリンク）は、それぞれアフォーダンスを構成してもよい。
【０１４３】
本明細書で使用される場合の用語「フォーカスセレクタ」は、ユーザが対話しているユーザインタフェースの現在部分を指示する入力要素を表す。カーソル又は他の位置マーカを含むいくつかの実施形態では、カーソルが特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ又は他のユーザインタフェース要素）の上に位置している間に、タッチセンシティブ表面（例えば、図４のタッチパッド４５５又は図５Ｂのタッチセンシティブ表面５５１）で入力（例えば、押し入力）が検出された場合に、検出された入力に従ってその特定のユーザインタフェース要素が調整されるように、カーソルは「フォーカスセレクタ」として機能する。タッチ画面ディスプレイのユーザインタフェース要素との直接対話を可能にするタッチ画面ディスプレイ（例えば、図２Ａのタッチセンシティブディスプレイシステム２１２又は図５Ａのタッチ画面２１２）を含むいくつかの実現形態では、タッチ画面ディスプレイの特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ又は他のユーザインタフェース要素）の位置で入力（例えば、接触による押し入力）が検出された場合に、検出された入力に従ってその特定のユーザインタフェース要素が調整されるように、タッチ画面で検出される接触が「フォーカスセレクタ」として機能する。いくつかの実現形態では、フォーカスは、ユーザインタフェースの１つの領域からユーザインタフェースの別の領域へ移動される（例えば、タブキー又は矢印キーを使用して、フォーカスを１つのボタンから別のボタンへ移動させることによる）が、それに伴ってタッチ画面ディスプレイでカーソルが移動すること又は接触部が移動することはなく、そのような実現形態では、フォーカスセレクタは、ユーザインタフェースの異なる領域の間のフォーカスの移動に従って動く。フォーカスセレクタがどのような特定の形態をとるかにかかわらず、フォーカスセレクタは、一般に、ユーザが意図するユーザインタフェースとの対話を通信するように（例えば、ユーザが対話することを意図しているユーザインタフェースの要素を装置に指示することにより）ユーザにより制御されるユーザインタフェース要素（又はタッチ画面ディスプレイへの接触）である。例えば、タッチセンシティブ表面（例えば、タッチパッド又はタッチ画面）で押し入力が検出されている間に各ボタン上にあるフォーカスセレクタ（例えば、カーソル、接触又はセレクションボックス）の位置は、ユーザがその各ボタンを（装置のディスプレイに示される他のユーザインタフェース要素ではなく）起動することを意図していることを示す。
【０１４４】
本明細書及び特許請求の範囲で使用される場合の用語である接触の「特性強度」は、その接触の１つ以上の強度に基づく接触の特性を表す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、事前定義済みの数の強度サンプル、又は事前定義済みイベントに対して所定の期間（例えば、０．０５秒、０．１秒、０．２秒、０．５秒、１秒、２秒、５秒、１０秒）の間に収集された強度サンプルのセットに任意に基づく（例えば、接触の検出後、接触のリフトオフの検出前、接触の移動の開始前又は開始後、接触の終了の検出前、接触の強度の増加の検出前又は検出後及び／又は接触の強度の減少の検出前又は検出後）。接触の特性強度は、接触の強度の最大値、接触の強度の平均値、接触の強度の算術平均値、接触の強度の上から１０パーセンタイルの値、接触の強度の半値の値、接触の強度の９０％最大値の値などのうち１つ以上の任意に基づく。いくつかの実施形態では、特性強度を判定するときに接触の持続時間が使用される（例えば、特性強度が時間の経過に伴う接触の強度の平均である場合）。いくつかの実施形態では、ユーザにより操作が実行されたか否かを判定するために、特性強度は１つ以上の強度閾値のセットと比較される。例えば、１つ以上の強度閾値のセットは、第１の強度閾値及び第２の強度閾値を含んでもよい。本例では、第１の閾値を超えない特性強度による接触は第１の動作を実行させ、第１の強度閾値を超えるが、第２の強度閾値を超えない特性強度による接触は第２の動作を実行させ、第２の閾値を超える特性強度による接触は第３の動作を実行させる。いくつかの実施形態では、特性強度と１つ以上の閾値との比較は、第１の動作を実行するか又は第２の動作を実行するかを判定するために使用されるのではなく、１つ以上の動作を実行するか否か（例えば、各動作を実行するか又はその各動作の実行を控えるか）を判定するために使用される。
【０１４５】
いくつかの実施形態では、特性強度を判定する目的で、ジェスチャーの一部が識別される。例えば、タッチセンシティブ表面は、開始位置から移行し、終了位置に到達し、終了点で接触の強度が増加するような連続スワイプ接触を受信してもよい。本例では、終了位置における接触の特性強度は、スワイプ接触全体ではなく、連続スワイプ接触の一部のみ（例えば、終了位置におけるスワイプ接触の部分のみ）に基づいてもよい。いくつかの実施形態では、接触の特性強度を判定する前に、スワイプ接触の強度に平滑化アルゴリズムが適用されてもよい。例えば、平滑化アルゴリズムは、非加重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム及び／又は指数平滑化アルゴリズムのうち１つ以上を任意に含む。いくつかの状況では、それらの平滑化アルゴリズムは、特性強度を判定するという目的のために、スワイプ接触の強度における幅の狭いスパイク又は押下を排除する。
【０１４６】
タッチセンシティブ表面における接触の強度は、接触検出強度閾値、浅押し強度閾値、深押し強度閾値及び／又は１つ以上の他の強度閾値などの１つ以上の強度閾値に対して特徴付けられてもよい。いくつかの実施形態では、浅押し強度閾値は、物理的マウス又はトラックパッドのボタンをクリックすることと通常関連する動作を装置が実行する強度に対応する。いくつかの実施形態では、深押し強度閾値は、物理的マウス又はトラックパッドのボタンをクリックすることと通常関連する動作とは異なる動作を装置が実行する強度に対応する。いくつかの実施形態では、浅押し強度閾値未満である（例えば、それに加えて、接触が検出されなくなる公称接触検出強度は上回る）特性強度で接触が検出された場合に、装置は、浅押し強度閾値又は深押し強度閾値と関連する動作を実行することなく、タッチセンシティブ表面に沿った接触の移動に従ってフォーカスセレクタを移動させる。一般に、特に指示のない限り、それらの強度閾値は、異なる一連のユーザインタフェース図の間で一貫している。
【０１４７】
接触の特性強度が浅押し強度閾値未満の強度から浅押し強度閾値と深押し強度閾値との間の強度まで増加することを「浅押し」入力と呼ぶ場合もある。接触の特性強度が深押し強度閾値未満の強度から深押し強度閾値を超える強度まで増加することを「深押し」入力と呼ぶ場合もある。接触の特性強度が接触検出強度閾値未満の強度から接触検出強度閾値と浅押し強度閾値との間の強度まで増加することをタッチ面における接触の検出と呼ぶ場合もある。接触の特性強度が接触検出強度閾値を超える強度から接触検出強度閾値未満の強度まで減少することをタッチ面からの接触のリフトオフの検出と呼ぶ場合もある。いくつかの実施形態では、接触検出強度閾値は０である。いくつかの実施形態では、接触検出強度閾値は０より大きい。
【０１４８】
本明細書で説明されるいくつかの実施形態では、各押し入力を含むジェスチャーを検出すること又は１回の接触（又は複数回の接触）によって実行される各押し入力の検出に応答して１つ以上の動作が実行され、各押し入力は、接触（又は複数回の接触）の強度が押し入力強度閾値を超えて増加することに少なくとも部分的に基づいて検出される。いくつかの実施形態では、各接触の強度が押し入力強度閾値（例えば、各押し入力の「ダウンストローク」）を超えて増加したことの検出に応答して動作が実行される。いくつかの実施形態では、押し入力は、各接触の強度が押し入力強度閾値を超えて増加することと、その後、接触の強度が押し入力強度閾値未満に減少することとを含み、各動作は、各接触の強度が増加後に押し入力閾値未満に減少すること（例えば、各押し入力の「アップストローク」）の検出に応答して実行される。
【０１４９】
いくつかの実施形態において、装置は、「ジッタ」と呼ばれる場合もある偶発入力を回避するために強度ヒステリシスを使用し、装置は、押し入力強度閾値に対して事前定義済み関係を有するヒステリシス強度閾値を定義又は選択する（例えば、ヒステリシス強度閾値は押し入力強度閾値より低いＸ強度単位であるか、又はヒステリシス強度閾値は押し入力強度閾値の７５％、９０％又は何らかの妥当な割合の値である）。従って、いくつかの実施形態では、押し入力は、押し入力強度閾値を超えるまでの各接触の強度の増加と、その後の押し入力強度閾値に対応するヒステリシス強度閾値未満に至るまでの接触の強度の減少とを含み、増加後のヒステリシス強度閾値未満に至るまでの各接触の強度の減少（例えば、各押し入力の「アップストローク」）の検出に応答して動作が実行される。同様に、いくつかの実施形態では、押し入力は、装置がヒステリシス強度閾値以下の強度から押し入力強度閾値以上の強度までの接触の強度の増加を検出し、任意に、その後にヒステリシス強度以下に至る接触の強度の減少を検出した場合に限り検出され、押し入力（例えば、状況に応じて接触の強度の増加又は接触の強度の減少）の検出に応答して各動作が実行される。
【０１５０】
説明を容易にするために、押し入力強度閾値と関連する押し入力に応答して又は押し入力を含むジェスチャーに応答して実行される動作の説明は、任意に、押し入力強度閾値を超えるまでの接触の強度の増加、ヒステリシス強度閾値未満の強度から押し入力強度閾値を超える強度までの接触の強度の増加、押し入力強度閾値未満までの接触の強度の減少及び／又は押し入力強度閾値に対応するヒステリシス強度閾値未満までの接触の強度の減少のうちいずれかの検出に応答して開始される。更に、押し入力強度閾値未満までの接触の強度の減少の検出に応答して実行されるものとして動作が説明される例では、動作は、任意に、押し入力強度閾値に対応し、それより低いヒステリシス強度閾値未満までの接触の強度の減少の検出に応答して実行される。
【０１５１】
２．デジタルアシスタントシステム
図７Ａは、種々の例に係るデジタルアシスタントシステム７００を示すブロック図である。いくつかの例では、デジタルアシスタントシステム７００は独立型コンピュータシステムで実現される。いくつかの例では、デジタルアシスタントシステム７００は複数のコンピュータに分散される。いくつかの例では、デジタルアシスタントのモジュール及び機能のうちのいくつかはサーバ部分及びクライアント部分に分割され、クライアント部分は１つ以上のユーザ装置（例えば、装置１０４、１２２、２００、４００又は６００）に常駐し、例えば図１に示すように１つ以上のネットワークを介してサーバ部分（例えば、サーバシステム１０８）と通信する。いくつかの例では、デジタルアシスタントシステム７００は図１に示すサーバシステム１０８（及び／又はＤＡサーバ１０６）の一実現形態である。尚、デジタルアシスタントシステム７００はデジタルアシスタントシステムの一例にすぎず、デジタルアシスタントシステム７００は、図示されている構成要素より多くの数の又は少ない数の構成要素を有することができ、２つ以上の構成要素を組み合わせてもよく、あるいは構成要素の異なる構成又は配置を有してもよい。図７Ａに示される種々の構成要素は、ハードウェアで、１つ以上の信号処理回路及び／又は特定用途向け集積回路を含む１つ以上のプロセッサ、ファームウェアにより実行されるソフトウェア命令で、あるいはそれらの組み合わせで実現される。
【０１５２】
デジタルアシスタントシステム７００は、メモリ７０２、１つ以上のプロセッサ７０４、入出力（Ｉ／Ｏ）インタフェース７０６及びネットワーク通信インタフェース７０８を含む。これらの構成要素は、１つ以上の通信バス又は信号線７１０を介して互いに通信できる。
【０１５３】
いくつかの例では、メモリ７０２は、高速ランダムアクセスメモリ及び／又は不揮発性コンピュータ可読記憶媒体（例えば、１つ以上の磁気ディスク記憶装置、フラッシュメモリ装置又は他の不揮発性固体メモリ装置）などの非一時的コンピュータ可読媒体を含む。
【０１５４】
いくつかの例では、Ｉ／Ｏインタフェース７０６は、ディスプレイ、キーボード、タッチ画面及びマイクなどのデジタルアシスタントシステム７００の入出力装置７１６をユーザインタフェースモジュール７２２に結合する。Ｉ／Ｏインタフェース７０６は、ユーザインタフェースモジュール７２２と関連して、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力など）を受信し、それらを適宜処理する。いくつかの例では、例えばデジタルアシスタントが独立型ユーザ装置で実現される場合、デジタルアシスタントシステム７００は、図２Ａの装置２００、図４の装置４００又は図６Ａ及び図６Ｂの装置６００に関して説明する構成要素及びＩ／Ｏ通信インタフェースのうちのいずれかを含む。いくつかの例では、デジタルアシスタントシステム７００はデジタルアシスタントの実現形態のサーバ部分を表し、ユーザ装置（例えば、装置１０４、２００、４００又は６００）に常駐するクライアント側部分を介してユーザと対話する。
【０１５５】
いくつかの例では、ネットワーク通信インタフェース７０８は有線通信ポート７１２及び／又は無線送受信回路網７１４を含む。有線通信ポートは、例えばイーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥなどである１つ以上の有線インタフェースを介して通信信号を送受信する。無線回路網７１４は、通信ネットワーク及び他の通信装置との間でＲＦ信号及び／又は光信号を送受信する。無線通信は、ＧＳＭ、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ＶｏＩＰ、Ｗｉ−ＭＡＸ又は他の何らかの適切な通信プロトコルなどの複数の通信規格、通信プロトコル及び通信技術のいずれも使用できる。ネットワーク通信インタフェース７０８は、デジタルアシスタントシステム７００とインターネット、イントラネットなどのネットワーク及び／又は携帯電話網、無線ローカルエリアネットワーク（ＬＡＮ）及び／又はメトロポリタンエリアネットワーク（ＭＡＮ）などの無線ネットワーク及び他の装置との間の通信を可能にする。
【０１５６】
いくつかの例では、メモリ７０２又はメモリ７０２のコンピュータ可読記憶媒体は、プログラムと、モジュールと、命令と、オペレーティングシステム７１８、通信モジュール７２０、ユーザインタフェースモジュール７２２、１つ以上のアプリケーション７２４及びデジタルアシスタントモジュール７２６のうちの全て又はサブセットを含むデータ構造とを記憶する。特に、メモリ７０２又はメモリ７０２のコンピュータ可読記憶媒体は、以下に説明する方法９００を実行するための命令を記憶する。１つ以上のプロセッサ７０４は、それらのプログラム、モジュール及び命令を実行し、データ構造から読み出し、データ構造に書き込む。
【０１５７】
オペレーティングシステム７１８（例えば、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ、ＵＮＩＸ、ｉＯＳ、ＯＳ  Ｘ、ＷＩＮＤＯＷＳ、ＶｘＷｏｒｋｓなどの組み込みオペレーティングシステム）は、一般システムタスク（例えば、メモリ管理、記憶装置制御、電力管理など）を制御し、管理するための種々のソフトウェア構成要素及び／又はドライバを含み、種々のハードウェア構成要素、ファームウェア構成要素及びソフトウェア構成要素との通信を容易にする。
【０１５８】
通信モジュール７２０は、ネットワーク通信インタフェース７０８を介するデジタルアシスタントシステム７００と他の装置との間の通信を容易にする。例えば通信モジュール７２０は、図２Ａの装置２００、図４の装置４００、図６Ａ及び図６Ｂの装置６００などの電子装置のＲＦ回路網２０８と通信する。通信モジュール７２０は、無線回路網７１４及び／又は有線通信ポート７１２により受信したデータを処理するための種々の構成要素を更に含む。
【０１５９】
ユーザインタフェースモジュール７２２は、Ｉ／Ｏインタフェース７０６を介して（例えば、キーボード、タッチ画面、ポインティングデバイス、コントローラ及び／又はマイクから）ユーザからコマンド及び／又は入力を受信し、ディスプレイ上にユーザインタフェースオブジェクトを生成する。また、ユーザインタフェースモジュール７２２は、Ｉ／Ｏインタフェース７０６を介して（例えば、ディスプレイ、オーディオチャネル、スピーカ、タッチパッドなどを介して）ユーザに対する出力（例えば、音声、音、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光など）を用意して提供する。
【０１６０】
アプリケーション７２４は、１つ以上のプロセッサ７０４により実行されるように構成されるプログラム及び／又はモジュールを含む。例えばデジタルアシスタントシステムが独立型ユーザ装置で実現される場合、アプリケーション７２４は、ゲーム、カレンダアプリケーション、ナビゲーションアプリケーション又は電子メールアプリケーションなどのユーザアプリケーションを含む。デジタルアシスタントシステム７００がサーバで実現される場合、アプリケーション７２４は、例えばリソース管理アプリケーション、診断アプリケーション又はスケジューリングアプリケーションを含む。
【０１６１】
メモリ７０２はデジタルアシスタントモジュール７２６（又はデジタルアシスタントのサーバ部分）を更に含む。いくつかの例では、デジタルアシスタントモジュール７２６は、入出力処理モジュール７２８、音声／テキスト（ＳＴＴ）処理モジュール７３０、自然言語処理モジュール７３２、会話フロー処理モジュール７３４、タスクフロー処理モジュール７３６、サービス処理モジュール７３８及び音声合成モジュール７４０などのサブモジュール、あるいはそれらの下位セット又は上位セットを含む。これらのモジュールの各々は、デジタルアシスタントモジュール７２６のオントロジ７６０、語彙インデックス７４４、ユーザデータ７４８、タスクフローモデル７５４、サービスモデル７５６及びＡＳＲシステムなどのシステム又はデータ及びモデルのうちの１つ以上、あるいはそれらの下位セット又は上位セットにアクセスできる。
【０１６２】
いくつかの例では、デジタルアシスタントモジュール７２６で実現される処理モジュール、データ及びモデルを使用して、デジタルアシスタントは、音声入力をテキストに変換すること、ユーザから受信した自然言語入力で表されたユーザの意図を識別すること、ユーザの意図を完全に推論するために必要な情報を能動的に誘導して取得すること（例えば、単語、ゲーム、意思などを明確にすることにより）、推論された意図を実行するためのタスクフローを判定すること、推論された意図を実行するためにタスクフローを実行することのうちの少なくともいくつかを実行する。
【０１６３】
いくつかの例では、図７Ｂに示すように、Ｉ／Ｏ処理モジュール７２８は図７ＡのＩ／Ｏ装置７１６を介してユーザと対話するか又は図７Ａのネットワーク通信インタフェース７０８を介してユーザ装置（例えば、装置１０４、２００、４００又は６００）と対話して、ユーザ入力（例えば、音声入力）を取得し、ユーザ入力に対する応答（例えば、音声出力）を提供する。Ｉ／Ｏ処理モジュール７２８は、ユーザ入力に関連するコンテキスト情報をユーザ入力の受信と共に又はその受信直後にユーザ装置から任意に取得する。コンテキスト情報は、ユーザ入力に関連するユーザ別のデータ、語彙及び／又は好みを含む。いくつかの例では、コンテキスト情報は、ユーザ要求が受信された時点のユーザ装置のソフトウェア状態及びハードウェア状態、並びに／又はユーザ要求が受信された時点のユーザの周辺環境に関する情報を更に含む。いくつかの例では、Ｉ／Ｏ処理モジュール７２８は更にユーザ要求に関する補足質問をユーザに対して送信して回答を受信する。ユーザ要求がＩ／Ｏ処理モジュール７２８により受信され、ユーザ要求が音声入力を含む場合、Ｉ／Ｏ処理モジュール７２８は音声／テキスト変換のためにＳＴＴ処理モジュール７３０（又は音声認識器）に音声入力を転送する。
【０１６４】
ＳＴＴ処理モジュール７３０は１つ以上のＡＳＲシステムを含む。１つ以上のＡＳＲシステムは、Ｉ／Ｏ処理モジュール７２８を介して受信した音声入力を処理して認識結果を生成する。各ＡＳＲシステムは、フロントエンド音声前処理器を含む。フロントエンド音声前処理器は、音声入力から代表特徴を抽出する。例えばフロントエンド音声前処理器は、音声入力にフーリエ変換を実行して、一連の代表多次元ベクトルとして音声入力を特徴付けるスペクトル特徴を抽出する。更に、各ＡＳＲシステムは１つ以上の音声認識モデル（例えば、音響モデル及び／又は言語モデル）を含み、１つ以上の音声認識エンジンを実現する。音声認識モデルの例は、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、ｎグラム言語モデル及び他の統計モデルを含む。音声認識エンジンの例は、動的時間伸縮を使用するエンジン及び重み付き有限状態トランスデューサ（ＷＦＳＴ）を使用するエンジンを含む。１つ以上の音声認識モデル及び１つ以上の音声認識エンジンは、フロントエンド音声前処理器の抽出された代表特徴を処理して中間認識結果（例えば、音素、音素列及び部分語）を生成し、最終的にテキスト認識結果（例えば、単語、単語列又はトークンシーケンス）を生成する。いくつかの例では、音声入力は、認識結果を生成するために第３者のサービス又はユーザの装置（例えば、装置１０４、２００、４００又は６００）で少なくとも部分的に処理される。ＳＴＴ処理モジュール７３０がテキスト列（例えば、単語、単語シーケンス又はトークンシーケンス）を含む認識結果を生成すると、認識結果は意図を推測するために自然言語処理モジュール７３２に渡される。
【０１６５】
音声／テキスト処理の更なる詳細は、本明細書に参考として全内容が取り入れられている２０１１年９月２０日出願の米国特許出願第１３／２３６，９４２号「Ｃｏｎｓｏｌｉｄａｔｉｎｇ  Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｒｅｓｕｌｔｓ」で説明される。
【０１６６】
いくつかの例では、ＳＴＴ処理モジュール７３０は、音標文字変換モジュール７３１を介して認識可能な単語の語彙を含み且つ／又はそれにアクセスする。各単語は、音声認識音標文字で表された単語の１つ以上の候補発音に関連付けられる。特に、認識可能な単語の語彙は、複数の候補発音に関連付けられる単語を含むことができる。例えば語彙は、
2019003657.tif 000003
及び
2019003657.tif 000004
の候補発音に関連付けられる単語「ｔｏｍａｔｏ」を含む。更に、単語は、ユーザからの以前の音声入力に基づくカスタム候補発音に関連付けられることができる。カスタム候補発音はＳＴＴ処理モジュール７３０に記憶され、装置のユーザのプロファイルを介して特定のユーザと関連付けられる。いくつかの例では、単語の候補発音は、単語の綴りと１つ以上の言語学的規則及び／又は音声規則とに基づいて判定される。いくつかの例では、候補発音は、例えば既知の標準発音に基づいて手動で生成される。
【０１６７】
いくつかの例では、候補発音はそれらの一般性に基づいてランク付けされる。例えば候補発音
2019003657.tif 000005
はより一般に使用される発音であるため（例えば、全てのユーザの間で、特定の地理的領域のユーザの場合に又は他の何らかの適切な一部のユーザの場合に）、
2019003657.tif 000006
より上位にランク付けされる。いくつかの例では、候補発音は、それがユーザに関連付けられたカスタム候補発音であるか否かに基づいてランク付けされる。例えばカスタム候補発音は、標準候補発音より上位にランク付けされる。これは、標準発音と異なる特有の発音を有する適切な名詞を認識するのに有用である。いくつかの例では、候補発音は、出身地、国籍又は民族などの１つ以上の音声特徴に関連付けられる。例えば候補発音
2019003657.tif 000007
は米国に関連付けられ、候補発音
2019003657.tif 000008
は英国に関連付けられる。更に、候補発音のランクは、装置のユーザのプロファイルに記憶されたユーザの１つ以上の特徴（例えば、出身地、国籍、民族など）に基づく。例えば、ユーザが米国に関連付けられることがユーザのプロファイルから判定される。ユーザが米国に関連付けられることに基づいて、候補発音
2019003657.tif 000009
（米国に関連付けられる）が候補発音
2019003657.tif 000010
（英国に関連付けられる）より上位にランク付けされる。いくつかの例では、ランク付けされた候補発音のうちの１つが予測発音（例えば、可能性が最も高い発音）として選択される。
【０１６８】
音声入力が受信された場合、ＳＴＴ処理モジュール７３０を使用して音声入力に対応する音素が判定され（例えば、音響モデルを使用して）、音素に一致する単語の判定が試みられる（例えば、言語モデルを使用して）。例えばＳＴＴ処理モジュール７３０が最初に、音声入力の一部分に対応する音素シーケンス
2019003657.tif 000011
を識別した場合、語彙インデックス７４４に基づいて、当該シーケンスは単語「ｔｏｍａｔｏ」に対応すると判定できる。
【０１６９】
いくつかの例では、ＳＴＴ処理モジュール７３０は近似マッチング技術を使用して、発言内の単語を判定する。従って、例えばＳＴＴ処理モジュール７３０は、特定の音素シーケンス
2019003657.tif 000012
が単語「ｔｏｍａｔｏ」の候補音素シーケンスの１つでない場合でも、当該音素シーケンスが単語「ｔｏｍａｔｏ」に対応すると判定できる。
【０１７０】
いくつかの例では、自然言語処理モジュール７３２は音声入力に関連するメタデータを受信するように構成される。メタデータは、音声入力（あるいは、音声入力に対応する単語シーケンス又はトークンシーケンス）に自然言語処理を実行するか否かを示す。自然言語処理が実行されるとメタデータが示す場合、自然言語処理モジュールはＳＴＴ処理モジュールから単語シーケンス又はトークンシーケンスを受信して自然言語処理を実行する。しかし、自然言語処理が実行されないとメタデータが示す場合、自然言語処理モジュールは無効化され、ＳＴＴ処理モジュールからの単語シーケンス又はトークンシーケンス（例えば、テキスト列）がデジタルアシスタントから出力される。いくつかの例では、メタデータは、ユーザ要求に対応する１つ以上の領域を更に識別する。１つ以上の領域に基づいて、自然言語プロセッサは、１つ以上の領域以外のオントロジ７６０内の領域を無効化する。このようにして、自然言語処理はオントロジ７６０内の１つ以上の領域に限定される。特に、構造クエリ（以下に説明する）は、オントロジ内の他の領域を使用せずに１つ以上の領域を使用して生成される。
【０１７１】
デジタルアシスタントの自然言語処理モジュール７３２（「自然言語プロセッサ」）は、ＳＴＴ処理モジュール７３０により生成された単語又はトークンのシーケンス（「トークンシーケンス」）を取得し、トークンシーケンスとデジタルアシスタントにより認識される１つ以上の「実行可能な意図」とを関連付けようとする。「実行可能な意図」はデジタルアシスタントにより実行可能なタスクを表し、タスクフローモデル７５４で実現される関連するタスクフローを有する。関連するタスクフローは、タスクを実行するためにデジタルアシスタントが行う一連のプログラミングされた動作及びステップである。デジタルアシスタントの機能の範囲は、実現されてタスクフローモデル７５４に記憶されたタスクフローの数及び多様性に依存し、換言すると、デジタルアシスタントが認識する「実行可能な意図」の数及び多様性に依存する。しかし、デジタルアシスタントの有効性は、自然言語で表されたユーザ要求から正確な「実行可能な意図」を推論するデジタルアシスタントの能力にも依存する。
【０１７２】
いくつかの例では、ＳＴＴ処理モジュール７３０から取得した単語シーケンス又はトークンシーケンスに加えて、自然言語処理モジュール７３２は、例えばＩ／Ｏ処理モジュール７２８からユーザ要求に関連するコンテキスト情報を更に受信する。自然言語処理モジュール７３２は、ＳＴＴ処理モジュール７３０から受信したトークンシーケンスに含まれる情報を明確にし、補足し且つ／又は更に定義するためにコンテキスト情報を任意に使用する。コンテキスト情報は、例えばユーザの好み、ユーザ装置のハードウェア状態及び／又はソフトウェア状態、ユーザ要求の前、最中又は直後に収集されたセンサ情報、デジタルアシスタントとユーザとの間の以前の対話（例えば、会話）などを含む。本明細書で説明するように、コンテキスト情報は動的であり、時間、場所、会話の内容及び他の要素と共に変化する。
【０１７３】
いくつかの例では、自然言語処理は例えばオントロジ７６０に基づく。オントロジ７６０は、各ノードが複数の「実行可能な意図」又は他の「特性」のうちの１つ以上に関する１つの「実行可能な意図」又は「特性」を表す多くのノードを含む階層構造である。上述したように、「実行可能な意図」はデジタルアシスタントが実行できるタスクを表し、すなわち、これは「実行可能である」か又は対処される。「特性」は、実行可能な意図又は別の特性の下位の側面に関連するパラメータを表す。オントロジ７６０における実行可能な意図ノードと特性ノードとの間のリンクは、特性ノードにより表されるパラメータが実行可能な意図ノードにより表されるタスクにどのように関係するかを定義する。
【０１７４】
いくつかの例では、オントロジ７６０は実行可能な意図ノード及び特性ノードで構成される。オントロジ７６０内で、各実行可能な意図ノードは１つ以上の特性ノードに直接又は１つ以上の中間特性ノードを介してリンクされる。同様に、各特性ノードは１つ以上の実行可能な意図ノードに直接又は１つ以上の中間特性ノードを介してリンクされる。例えば図７Ｃに示すように、オントロジ７６０は「レストラン予約」ノード（すなわち、実行可能な意図ノード）を含む。特性ノード「レストラン」、「日付／時刻」（予約用）及び「人数」はそれぞれ、実行可能な意図ノード（すなわち、「レストラン予約」ノード）に直接リンクされる。
【０１７５】
更に、特性ノード「料理」、「価格帯」、「電話番号」及び「場所」は特性ノード「レストラン」のサブノードであり、中間特性ノード「レストラン」を介して「レストラン予約」ノード（すなわち、実行可能な意図ノード）にそれぞれリンクされる。別の例として、図７Ｃに示すように、オントロジ７６０は「リマインダ設定」ノード（すなわち、別の実行可能な意図ノード）を更に含む。特性ノード「日付／時刻」（リマインダ設定用）及び「件名」（リマインダ用）がそれぞれ「リマインダ設定」ノードにリンクされる。特性「日付／時刻」はレストランを予約するタスク及びリマインダを設定するタスクの双方に関係するため、特性ノード「日付／時刻」はオントロジ７６０において「レストラン予約」ノード及び「リマインダ設定」ノードの双方にリンクされる。
【０１７６】
実行可能な意図ノード及びそれにリンクされたコンセプトノードを「領域」として説明する。本説明において、各領域は各々の実行可能な意図に関連付けられ、特定の実行可能な意図に関連付けられるノードのグループ（及びそれらの間の関係）を示す。例えば図７Ｃに示すオントロジ７６０は、オントロジ７６０内のレストラン予約領域７６２の一例及びリマインダ領域７６４の一例を含む。レストラン予約領域は、実行可能な意図ノード「レストラン予約」、特性ノード「レストラン」、「日付／時刻」及び「人数」、サブ特性ノード「料理」、「価格帯」、「電話番号」及び「場所」を含む。リマインダ領域７６４は、実行可能な意図ノード「リマインダ設定」、特性ノード「件名」及び「日付／時刻」を含む。いくつかの例では、オントロジ７６０は多くの領域で構成される。各領域は、１つ以上の他の領域と１つ以上の特性ノードを共有できる。例えば「日付／時刻」特性ノードは、レストラン予約領域７６２及びリマインダ領域７６４に加えて多くの異なる領域（例えば、スケジューリング領域、旅行予約領域、映画チケット領域など）と関連付けられる。
【０１７７】
図７Ｃはオントロジ７６０内の領域の２つの例を示すが、他の領域は、例えば「映画検索」、「電話発信」、「方向検索」、「会議スケジューリング」、「メッセージ送信」、及び「質問に回答する」、「リストを読む」、「ナビゲーション命令を提供する」、「タスクに対する命令を提供する」などを含む。「メッセージ送信」領域は、「メッセージ送信」実行可能な意図ノードと関連付けられ、「宛先」、「メッセージの種類」及び「メッセージの本文」などの特性ノードを更に含んでもよい。特性ノード「宛先」は、例えば「宛先名」及び「メッセージアドレス」などのサブ特性ノードにより更に定義される。
【０１７８】
いくつかの例では、オントロジ７６０は、デジタルアシスタントが理解できて対処できる全ての領域（及び実行可能な意図）を含む。いくつかの例では、オントロジ７６０は、領域全体又はノードを追加するか又は除去すること、あるいはオントロジ７６０内のノード間の関係を変更することなどにより変更可能である。
【０１７９】
いくつかの例では、複数の関連する実行可能な意図に関連付けられたノードがオントロジ７６０内の「上位領域」内でクラスタリングされる。例えば「旅行」上位領域は、旅行に関係する特性ノード及び実行可能な意図ノードのクラスタを含む。旅行に関係する実行可能な意図ノードは、「飛行機予約」、「ホテル予約」、「自動車レンタル」、「行先案内」、「地点情報検索」などを含む。同一の上位領域（例えば、「旅行」上位領域）内の実行可能な意図ノードは、多くの特性ノードを共有する。例えば「飛行機予約」、「ホテル予約」、「自動車レンタル」、「行先案内」、「地点情報検索」の実行可能な意図ノードは、特性ノード「出発地」、「目的地」、「出発日／時刻」、「到着日／時刻」及び「人数」のうちの１つ以上を共有する。
【０１８０】
いくつかの例では、オントロジ７６０内の各ノードは、ノードが表す特性又は実行可能な意図に関係する単語及び／又は語句のセットと関連付けられる。各ノードに関連付けられる単語及び／又は語句の各セットは、ノードに関連付けられたいわゆる「語彙」である。各ノードに関連付けられが単語及び／又は語句の各セットは、ノードが表す特性又は実行可能な意図と関連付けて語彙インデックス７４４に記憶される。例えば図７Ｂを再度参照すると、「レストラン」の特性に対するノードと関連付けられる語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファーストフード」及び「食事」などの単語を含む。別の例では、「電話発信」の実行可能な意図に対するノードと関連付けられる語彙は、「電話する」、「電話」、「ダイアル」、「発信」、「この番号に電話する」及び「電話をかける」などの単語及び語句を含む。語彙インデックス７４４は、種々の言語の単語及び語句を任意に含む。
【０１８１】
自然言語処理モジュール７３２はＳＴＴ処理モジュール７３０からトークンシーケンス（例えば、テキスト列）を受信し、トークンシーケンス内の単語により暗示されるノードを判定する。いくつかの例では、トークンシーケンス内の単語又は語句がオントロジ７６０内の１つ以上のノードに関連付けられると判明した場合（語彙インデックス７４４を介して）、単語又は語句はそれらのノードを「トリガする」か又は「有効にする」。有効にされたノードの数及び／又は相対的重要性に基づいて、自然言語処理モジュール７３２は実行可能な意図のうちの１つをデジタルアシスタントが実行することをユーザが意図したタスクとして選択する。いくつかの例では、「トリガされた」ノードが最も多い領域が選択される。いくつかの例では、信頼値が最も高い領域（例えば、トリガされた種々のノードの相対的重要性に基づいて）が選択される。いくつかの例では、領域は、トリガされたノードの数及び重要性の組み合わせに基づいて選択される。いくつかの例では、デジタルアシスタントがユーザからの同様の要求を以前に正確に解釈したか否かなどの更なる要素がノードを選択する際に更に考慮される。
【０１８２】
ユーザデータ７４８は、ユーザ別語彙、ユーザの好み、ユーザの住所、ユーザのデフォルト言語及び二次言語、ユーザの連絡先リスト及びユーザ毎の他の短期又は長期情報などのユーザ別情報を含む。いくつかの例では、自然言語処理モジュール７３２はユーザ別情報を使用して、ユーザの意図を更に定義するためにユーザ入力に含まれる情報を補足する。例えばユーザ要求「友達を誕生会に招待して」に対して、自然言語処理モジュール７３２は、誰が「友達」か及び「誕生会」が開催される日時と場所をユーザが要求において明示的に提供する必要がなく、ユーザデータ７４８にアクセスしてそのような情報を判定できる。
【０１８３】
トークン列に基づくオントロジの探索の他の詳細は、本明細書に参考として全内容が取り入れられている２００８年１２月２２日出願の米国特許出願第１２／３４１，７４３号「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｅａｒｃｈｉｎｇ  Ｕｓｉｎｇ  Ａｎ  Ａｃｔｉｖｅ  Ｏｎｔｏｌｏｇｙ」で説明される。
【０１８４】
いくつかの例では、自然言語処理モジュール７３２がユーザ要求に基づいて実行可能な意図（又は領域）を識別すると、自然言語処理モジュール７３２は識別された実行可能な意図を表すために構造化クエリを生成する。いくつかの例では、構造化クエリは実行可能な意図に対する領域内の１つ以上のノードに対するパラメータを含み、パラメータの少なくともいくつかはユーザ要求で指定された特定の情報及び条件がポピュレートされる。例えばユーザは「夕食に７時に寿司屋を予約して」と述べる。この場合、自然言語処理モジュール７３２はユーザ入力に基づいて、実行可能な意図が「レストラン予約」であると正確に識別できる。オントロジによると、「レストラン予約」領域に対する構造化クエリは｛料理｝、｛時刻｝、｛日付｝及び｛人数｝などのパラメータを含む。いくつかの例では、音声入力及びＳＴＴ処理モジュール７３０を使用して音声入力から導出されたテキストに基づいて、自然言語処理モジュール７３２はレストラン予約領域に対する部分的な構造化クエリを生成する。この場合、部分的な構造化クエリは、パラメータ｛料理＝「寿司」｝及び｛時刻＝「午後７時」｝を含む。しかし、本例では、ユーザの発言が含む情報は、領域に関連する構造化クエリを完成するには不十分である。従って、｛人数｝及び｛日付｝などの他の必要なパラメータは、現在利用可能な情報に基づく構造化クエリにおいて指定されない。いくつかの例では、自然言語処理モジュール７３２は、構造化クエリのいくつかのパラメータに受信したコンテキスト情報をポピュレートする。例えばいくつかの例では、ユーザが「近所の」寿司屋を要求した場合、自然言語処理モジュール７３２は、構造化クエリの｛場所｝パラメータにユーザ装置からのＧＰＳ座標をポピュレートする。
【０１８５】
いくつかの例では、自然言語処理モジュール７３２は、生成された構造化クエリ（何らかの完成されたパラメータを含む）をタスクフロー処理モジュール７３６（「タスクフロープロセッサ」）に渡す。タスクフロー処理モジュール７３６は、自然言語処理モジュール７３２から構造化クエリを受信し、必要に応じて構造化クエリを完成し、ユーザの最終的な要求を「完了する」ために必要な動作を実行するように構成される。いくつかの例では、それらのタスクを完了するのに必要な種々の手順がタスクフローモデル７５４で提供される。いくつかの例では、タスクフローモデル７５４は、ユーザから追加情報を取得する手順と、実行可能な意図に関連する動作を実行するためのタスクフローとを含む。
【０１８６】
上述したように、構造化クエリを完成するために、タスクフロー処理モジュール７３６は、追加情報を取得するために及び／又は潜在的に曖昧な発言を明確にするために、ユーザとの更なる会話を開始する必要がある場合がある。そのような対話が必要な場合、タスクフロー処理モジュール７３６は、ユーザと会話するために会話フロー処理モジュール７３４を呼び出す。いくつかの例では、会話フロー処理モジュール７３４は、ユーザに追加情報を尋ねる方法（及び／又は時間）を判定でき、ユーザ応答を受信して処理する。Ｉ／Ｏ処理モジュール７２８を介して質問が提供され、回答がユーザから受信される。いくつかの例では、会話フロー処理モジュール７３４はオーディオ及び／又は視覚出力を介して会話出力をユーザに提示し、音声応答又は物理的（例えば、クリック）応答を介してユーザから入力を受信する。上記の例を続けると、タスクフロー処理モジュール７３６が領域「レストラン予約」に関連付けられる構造化クエリに対する「人数」及び「日付」情報を判定するために会話フロー処理モジュール７３４を呼び出す場合、会話フロー処理モジュール７３４は「人数は？」及び「日付は？」などの質問を生成してユーザに伝える。ユーザから回答を受信すると、会話フロー処理モジュール７３４は欠落している情報を構造化クエリにポピュレートするか、あるいは構造化クエリの欠落している情報を完成するために情報をタスクフロー処理モジュール７３６に渡す。
【０１８７】
タスクフロー処理モジュール７３６が実行可能な意図に対する構造化クエリを完成すると、タスクフロー処理モジュール７３６は実行可能な意図に関連する最終タスクの実行に進む。従って、タスクフロー処理モジュール７３６は、構造化クエリに含まれる特定のパラメータに従ってタスクフローモデル内のステップ及び命令を実行する。例えば「レストラン予約」の実行可能な意図に対するタスクフローモデルは、レストランに連絡して特定の時刻に特定の人数で実際に予約するためのステップ及び命令を含む。例えば｛レストラン予約，レストラン＝ＡＢＣ  Ｃａｆｅ，日付＝３／１２／２０１２，時刻＝７ｐｍ，人数＝５｝などの構造化クエリを使用して、タスクフロー処理モジュール７３６は、（１）ＡＢＣ  Ｃａｆｅのサーバ又はＯＰＥＮＴＡＢＬＥ（登録商標）等のレストラン予約システムにログインするステップと、（２）ウェブサイトのフォームに日付、時刻及び人数の情報を入力するステップと、（３）フォームを提出するステップと、（４）ユーザのカレンダに予約のカレンダエントリを入力するステップとを実行する。
【０１８８】
いくつかの例では、タスクフロー処理モジュール７３６はサービス処理モジュール７３８（「サービス処理モジュール」）の支援を使用して、ユーザ入力で要求されたタスクを完了するか又はユーザ入力で要求された情報の回答を提供する。例えばサービス処理モジュール７３８は、タスクフロー処理モジュール７３６の代わりに、電話を発信し、カレンダエントリを設定し、地図探索を呼び出し、ユーザ装置にインストールされた他のユーザアプリケーションを呼び出すか又はそれと対話し、第３者のサービス（例えば、レストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータルなど）を呼び出すか又はそれと対話する。いくつかの例では、各サービスにより必要とされるプロトコル及びアプリケーションプログラミングインタフェース（ＡＰＩ）は、サービスモデル７５６中の各サービスモデルにより指定される。サービス処理モジュール７３８は、サービスモデルに従ってサービスにより必要とされるプロトコル及びＡＰＩに従い、サービスに対する適切なサービスモデルにアクセスし、サービスに対する要求を生成する。
【０１８９】
例えば、あるレストランがオンライン予約サービスで有効になった場合、レストランは予約を行うために必要なパラメータ及び必要なパラメータの値をオンライン予約サービスに通信するためのＡＰＩを指定するサービスモデルを提出する。タスクフロー処理モジュール７３６により要求された場合、サービス処理モジュール７３８はサービスモデルに記憶されたウェブアドレスを使用してオンライン予約サービスとのネットワーク接続を確立し、予約の必要なパラメータ（例えば、時刻、日付、人数）をオンライン予約サービスのＡＰＩに従うフォーマットでオンライン予約インタフェースへ送信する。
【０１９０】
いくつかの例では、自然言語処理モジュール７３２、会話フロー処理モジュール７３４及びタスクフロー処理モジュール７３６は、ユーザの意図を推論して定義し、ユーザの意図を更に明確にするための情報を取得し、ユーザの意図を実行するための応答（すなわち、ユーザに対する出力又はタスクの完了）を最終的に生成するために、まとめて繰り返し使用される。生成される応答は音声入力に対する会話応答であり、これはユーザの意図を少なくとも部分的に実行する。更にいくつかの例では、生成された応答は音声出力として出力される。それらの例では、生成された応答は音声合成モジュール７４０（例えば、音声合成器）へ送信され、音声会話応答を合成するために処理される。更に別の例では、生成される応答は、音声入力におけるユーザ要求を満たすことに関係するデータコンテンツである。
【０１９１】
音声合成モジュール７４０は、ユーザに提示するための音声出力を合成するように構成される。音声合成モジュール７４０は、デジタルアシスタントにより提供されたテキストに基づいて音声出力を合成する。例えば生成される会話応答は、テキスト列の形態である。音声合成モジュール７４０は、テキスト列を可聴音声出力に変換できる。音声合成モジュール７４０は、テキストから音声出力を生成するために、波形接続合成、単位選択合成、ダイフォン合成、分野限定合成、フォルマント合成、調音合成、隠れマルコフモデル（ＨＭＭ）に基づく合成、正弦波合成を含むがそれらに限定されない何らかの適切な音声合成技術を使用する。いくつかの例では、音声合成モジュール７４０は、単語に対応する音韻列に基づいて個々の単語を合成するように構成される。例えば音韻列は、生成された会話応答内の単語と関連付けられる。音韻列は、単語に関連するメタデータに記憶される。音声合成モジュール７４０は、メタデータ内の音韻列を直接処理して単語を音声に合成するように構成される。
【０１９２】
いくつかの例では、音声合成モジュール７４０を使用する代わりに（又はそれに加えて）、音声合成はリモート装置（例えば、サーバシステム１０８）で実行され、合成された音声はユーザに対して出力するためにユーザ装置へ送信される。例えばこれは、デジタルアシスタントに対する出力がサーバシステムで生成されるいくつかの実現形態で当てはまる。サーバシステムは一般にユーザ装置より多くの処理能力又はリソースを有するため、クライアント側での合成で実際に得られるより高品質の音声出力を得ることができる。
【０１９３】
デジタルアシスタントに関する更なる詳細は、本明細書に参考として全内容が取り入れられている２０１１年１月１０日出願の米国特許出願第１２／９８７，９８２号「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」及び２０１１年９月３０日出願の米国特許出願第１３／２５１，０８８号「Ｇｅｎｅｒａｔｉｎｇ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｔａｓｋ  Ｉｔｅｍｓ  Ｔｈａｔ  Ｒｅｐｒｅｓｅｎｔ  Ｔａｓｋｓ  ｔｏ  Ｐｅｒｆｏｒｍ」で見られる。
【０１９４】
次に、ゼロレイテンシデジタルアシスタントの実施形態に注目する。
【０１９５】
３．ゼロレイテンシデジタルアシスタント
上述したように、通常、ユーザが装置に適切な入力を提供する（又は提供し始める）ことによりデジタルアシスタントセッションを要求する時点とユーザがデジタルアシスタントに音声入力を提供し始められる時点との間には何らかのレイテンシが存在する。そのようなレイテンシは１００〜９００ミリ秒（又は更に長い時間）であり、明らかな遅延としてユーザが知覚するのに十分な長さである。ユーザが話し始めるのが早すぎると、装置はレイテンシが経過する前に提供された口頭入力の部分を無視する（又は受信し損ねる）。そのような装置の挙動によりデジタルアシスタントの効率は低下し、ユーザは苛立つか又は混乱する。
【０１９６】
上述したレイテンシは、デジタルアシスタントセッションを開始するために使用される回路網を起動するのに必要な時間、あるいは例えばマイク又はスピーカなどのデジタルアシスタントにより必要とされるオーディオコンポーネント又は回路網を起動するのに必要な時間などのハードウェアレイテンシを含んでもよい。
【０１９７】
当該レイテンシは、ソフトウェアにより制御されるレイテンシを更に含んでもよい。例えばいくつかの装置は、ユーザが適切な入力を提供することによりデジタルアシスタントを起動することを要求したと十分な信頼度で判定するまで、デジタルアシスタントセッションを開始し始めない。例えばデジタルアシスタントセッションの開始を求める要求に対応するユーザ入力がボタンの長押しである場合、装置は必要なボタン押下時間全体が経過するまで待って、デジタルアシスタントソフトウェアを起動する。いくつかの実施形態では、装置は、デジタルアシスタントを開始する用意ができるまで、マイク（又は他のオーディオコンポーネント）の制御をデジタルアシスタントに移行しない。この方法により、電話発信又は口述アプリケーションなどの別のアプリケーションによるマイク又はスピーカの制御を早まって停止することを回避できる。
【０１９８】
上述したハードウェアレイテンシ及びソフトウェアレイテンシに関連する１つの欠点は、ユーザが通常は音声入力などの要求をデジタルアシスタントに提供する前にレイテンシが経過するまで待つ必要があることである。しかし、ユーザは要求を提供するまでにどれくらい待つべきかわからない。そのため、図８Ａに示すように、装置はデジタルアシスタントが要求を受信する用意ができたという可視指示又は可聴指示をユーザに提供する必要がある。
【０１９９】
図８Ａの例では、装置は、デジタルアシスタントを要求するユーザ入力（又はユーザ入力の始まり）を時間Ｔ１で検出し、レイテンシが経過後、デジタルアシスタントに口頭入力を提供するように時間Ｔ２でユーザに指示する。
【０２００】
装置は、ユーザがデジタルアシスタントを要求した際にレイテンシの経過を待たずに即座に口頭入力を提供し始められるのが望ましい。例えばユーザがデジタルアシスタントを要求する入力を提供し始めた時に、（１）ユーザ入力がデジタルアシスタントの起動を求める要求に対応するか否かを判定することと（２）デジタルアシスタントを実際に起動することとに関連するソフトウェアレイテンシ又はハードウェアレイテンシが完全に経過する前にデジタルアシスタントに口頭入力を即座に提供できるのが望ましい。
【０２０１】
いくつかの実施形態では、装置は、マイクからのオーディオ入力を装置のメモリバッファに継続的に取り込んで記録するために低電力プロセッサを使用することにより本目的を達成する。デジタルアシスタントが起動されると、装置はデジタルアシスタントセッションの開始を要求するユーザ入力の前又はその間に取り込まれた音声入力を含むバッファの内容の一部又は全てをデジタルアシスタントに提供する。このように、以下に更に詳細に説明するように、装置はバッテリ寿命を必要以上に縮めることなく、ユーザが「ゼロレイテンシ」デジタルアシスタントとして知覚するものを達成できる。
【０２０２】
図８Ｂに示すように、いくつかの実施形態では、装置はそのメインプロセッサ８０８とは別の低電力プロセッサ８１０を含む。低電力プロセッサは、オーディオデータをメモリバッファ８１２に書き込むことによりユーザの音声入力の履歴を保持するために使用される。いくつかの実施形態では、低電力プロセッサはメインプロセッサより消費電力が少なく、メインプロセッサとは異なるコンピュータ実行可能命令を実行し且つ／又はメインプロセッサより物理的に小型である。従って、低電力プロセッサは、バッテリ寿命を縮めることなくオーディオデータをメモリバッファに継続的に書き込むことができる。
【０２０３】
いくつかの実施形態では、メインプロセッサ８０８は、例えばオペレーティングシステムとデジタルアシスタントを含むアプリケーションとを実行するアプリケーションプロセッサである。
【０２０４】
いくつかの実施形態では、低電力プロセッサ８１０は、メインプロセッサ８０８が低電力モードで動作している場合でも通常モードで有効であり動作している。いくつかの例では、低電力モードで動作中に実行できる動作の数又は種類が制限される場合に、メインプロセッサは低電力モードである。いくつかの例では、プロセッサ回路網の一部が無効な状態で動作している場合に、メインプロセッサは低電力モードである。いくつかの例では、通常モードで動作している場合の値と比較して低クロック速度、低電圧又は低電流で動作している場合に、メインプロセッサは低電力モードである。いくつかの例では、メインプロセッサは、アプリケーションの起動又は実行などの特定の機能性を提供するために低電力モードを終了する必要がある。
【０２０５】
いくつかの実施形態では、装置は自身のマイク８０４からオーディオ入力を継続的に取り込み、マイク８０４から受信したオーディオ入力を表すオーディオデータを自身のメモリバッファ８１２に書き込むために低電力プロセッサ８１０を使用する。いくつかの実施形態では、装置はオーディオ入力を取り込み、装置が何らかのオーディオ入力を検出したか否かに関係なくオーディオデータをメモリバッファ８１２に継続的に又は所定のサンプリング頻度で書き込む。他の実施形態では、ユーザがマイクに向かって話していることを装置が検出した場合など、装置がオーディオ入力を検出した場合のみ、装置は低電力プロセッサを使用してオーディオデータをバッファに書き込む。このように、いくつかの実施形態では、装置は低電力プロセッサを使用してマイクのオーディオ入力を監視し、そのようなオーディオ入力が検出された場合、低電力プロセッサを使用してオーディオ入力を表すオーディオデータをメモリバッファに書き込む。
【０２０６】
いくつかの実施形態では、メモリバッファは循環バッファである。循環バッファは固定長メモリバッファであり、データが一杯になった場合、新規のデータ列がバッファの先頭から上書きされる。いくつかの実施形態では、メモリバッファは、マイクにより取り込まれる所定の長さのオーディオ入力を記憶するのに十分な容量を有する。例えばメモリバッファは、１秒、２秒又は３秒のオーディオ入力を記憶するのに十分な容量を有する。
【０２０７】
いくつかの実施形態では、装置がマイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出した場合、装置は低電力プロセッサを使用して、ユーザ入力がデジタルアシスタントセッションの開始を求める要求に対応するか否かを判定する。ユーザ入力は、例えばボタンの押下又は例えばタッチセンシティブディスプレイへの接触であってもよい。
【０２０８】
いくつかの実施形態では、ユーザ入力が所定の基準を満たすためデジタルアシスタントの起動を求める要求に対応すると装置が判定した場合、装置はメモリバッファの内容の少なくとも一部に基づくコンピューティングタスクの識別及び実行を即座に開始する。要求されるコンピューティングタスクは、デジタルアシスタントシステムに関して上述したように、例えば情報検索を求める要求、電話発信、テキスト送信、予約、アプリケーションの起動などの機能を実行することを装置に求める要求であってもよい。
【０２０９】
いくつかの実施形態では、装置は、メインプロセッサでデジタルアシスタントセッションを開始してメモリバッファの内容の少なくとも一部をデジタルアシスタントに提供することにより、タスクを識別して実行する。メモリバッファは装置によるユーザ入力の検出前、検出中及び検出後に取り込まれて書き込まれたオーディオデータを含むため、バッファは、ユーザがデジタルアシスタントセッションを開始することを要求する（ユーザ入力を介して）時点とユーザがデジタルアシスタントに口頭入力を提供できる時点との間の遅延を減少するか又は除去するために使用できるオーディオ履歴を提供する。
【０２１０】
いくつかの実施形態では、装置は、ユーザ入力が特定の所定の基準を満たすか否かを判定することにより、ユーザ入力がデジタルアシスタントの起動を求める要求に対応するか否かを判定する。いくつかの実施形態では、基準はボタン押下が最小持続時間を満たす場合に満たされる基準を含む。すなわち、デジタルアシスタントセッションの開始を求める要求として識別されるためには、ボタン押下入力は閾値持続時間より長い必要がある。ボタン押下閾値持続時間は、例えば１００ミリ秒、２００ミリ秒、３００ミリ秒、４００ミリ秒、５００ミリ秒、６００ミリ秒、７００ミリ秒、８００ミリ秒又は９００ミリ秒であってもよい。
【０２１１】
いくつかの実施形態では、ユーザ入力がデジタルアシスタントセッションの開始を求める要求に対応するか否かを判定するための基準は、タッチセンシティブディスプレイへの接触がディスプレイ上の特定の位置で検出される場合、接触が特定の種類の接触（例えば、スワイプ又はダブルタップ）である場合及び／又は特定のアイコンが選択されたと装置が検出する場合に満たされる基準を含む。
【０２１２】
いくつかの実施形態では、装置は低電力プロセッサを使用して、オーディオデータがデジタルアシスタントセッションの開始を求める要求に対応する「トリガ語句」を含むか否かを判定するためにメモリバッファ内のオーディオデータを解析する。そのようなトリガ語句は、例えば語句「ヘイ、シリ」又は「起きて」又は別の語句、単語又は音であってもよい。
【０２１３】
いくつかの実施形態では、デジタルアシスタントの起動を求める要求に対応するユーザ入力はトリガ語句を含む音声入力である。メモリバッファがトリガ語句を含むと装置が低電力プロセッサを使用して判定した場合、装置はメインプロセッサでデジタルアシスタントを起動する。このように、いくつかの実施形態では、基準は、メモリバッファの少なくとも一部分がトリガ語句を含む場合に満たされる基準を含む。
【０２１４】
いくつかの実施形態では、基準は、トリガ語句が許可ユーザにより発声されたと装置が判定した場合に満たされる基準を含む。装置は、メモリバッファ内のオーディオデータの音声又は話し方の特徴と許可ユーザの既知の特徴のセットとを比較することにより、トリガ語句が許可ユーザにより話されたか否かを判定してもよい。そのような特徴は、特徴的なスペクトルパターン、音声パターン、抑揚などを含んでもよい。
【０２１５】
いくつかの実施形態では、ユーザ入力が所定の基準を満たしたと装置が判定した（低電力プロセッサを使用して）時にメインプロセッサが低電力モードで動作している場合、装置はメインプロセッサに低電力モードを終了させ、デジタルアシスタントセッションを開始させる。いくつかの実施形態では、装置は、デジタルアシスタントへの後続の音声入力の受信及び応答に備えて装置のオーディオ回路網を起動する。そのようなオーディ回路網は、例えばユーザからオーディオ入力を受信するため又はユーザにオーディオ出力を提供するためにデジタルアシスタントにより使用されてもよい追加のマイク又はオーディオ出力ハードウェア（スピーカなど）を含んでもよい。いくつかの実施形態では、デジタルアシスタントセッションを開始することは、そのようなオーディオ回路網の制御をデジタルアシスタントセッションに移行することを含む。
【０２１６】
いくつかの実施形態では、デジタルアシスタントセッションを開始することは、タッチ画面１０４などの装置のディスプレイ上にデジタルアシスタントセッションに関連するユーザインタフェースを表示することを含む。ユーザインタフェースは、例えばデジタルアシスタントセッションに関連する１つ以上のアフォーダンス、波形又はテキスト出力を含む。図８Ａは、デジタルアシスタントセッションに関連するユーザインタフェース８０２の一例を示す。
【０２１７】
いくつかの実施形態では、デジタルアシスタントに関連するユーザインタフェースは、図８Ａに示すように全画面ビューで表示される。いくつかの実施形態では、装置がメインプロセッサでデジタルアシスタントセッションを開始する場合、装置は別のアプリケーションビューの表示をデジタルアシスタントに関連するユーザインタフェースの表示に置換する。
【０２１８】
図８Ｃは、いくつかの実施形態に従って実現されるゼロレイテンシデジタルアシスタントの概念の一例を示す。本例では、ユーザはデジタルアシスタントに口頭入力を提供するために、デジタルアシスタントを呼び出した後に待つ必要がない。実際、本例では、ユーザはデジタルアシスタントを呼び出す「前に」口頭入力の提供を開始する。すなわち、ユーザは、要求を既に話している間にデジタルアシスタントの起動を求める要求に対応するボタンを押下する。その後、以下に説明するように、装置は口頭入力を使用して、要求されたタスクを識別して実行する。
【０２１９】
図８Ｃに示すように、時間Ｔ１において、装置２００がオーディオ入力を取り込んでメモリバッファ（本例では、循環バッファ８１６）に書き込んでいる間に、装置はユーザ入力（本例では、ボタン押下）を検出する。尚、時間Ｔ１において、装置がボタン押下を検出する時、ユーザは音声入力「チューリッヒの時刻は？」を既に提供し始めており、当該語句の一部分は巡回バッファ８１６に既に書き込まれている。装置２００は、ユーザ入力がデジタルアシスタントの起動を求める要求に対応する所定の基準を満たす（例えば、ボタン押下が閾値持続時間を満たす）と判定し、メインプロセッサを使用して、巡回バッファ８１６の内容の一部分８１４に基づいてタスクを識別して実行する。バッファの一部分８１４はクエリ「チューリッヒの時刻は？」を含み、装置はチューリッヒの現在時刻を判定するタスクを識別して実行する。装置は、テキスト「チューリッヒの時刻は９：４１ＡＭです」を表示することにより、タスクの結果をディスプレイ上でユーザに提供する。いくつかの実施形態では、装置はタスクの結果をユーザに提示するためにオーディオ出力を更に提供する。
【０２２０】
図８Ｃに示す例では、装置は、タスクを識別及び実行するためにユーザからの追加入力を必要とせず、図８Ａに示したようにユーザに入力を指示しない。
【０２２１】
図８Ｄは、いくつかの実施形態に従って実現されるゼロレイテンシデジタルアシスタントの概念の一例を示す。本例は図８Ｃに示す例に類似するが、本例では、ユーザ入力は所定の基準を満たさず、従って、デジタルアシスタントの起動を求める要求として解釈されない。例えば、ボタンが閾値持続時間を満たすのに十分な長さで押下されない。この場合、装置は音声要求を取り込んでメモリバッファに書き込んでいるが、メモリバッファの内容に基づくタスクの識別及び実行を開始せず、デジタルアシスタントセッションを開始しない。バッファの内容は、後で新規のオーディオデータに上書きされる。
【０２２２】
図８Ｅは、いくつかの実施形態に従って実現されるゼロレイテンシデジタルアシスタントの概念の一例を示す。本例では、装置はメモリバッファが所定のトリガ語句を含むと判定し、それに応答して、装置はメモリバッファの内容に基づいてタスクを即座に識別して実行する。
【０２２３】
図８Ｅに示す例では、時間Ｔ１において、メインプロセッサが低電力モードであり且つ装置２００が低電力プロセッサを使用してオーディオ入力を取り込んで循環バッファ８１６に書き込んでいる間に、装置はメモリバッファの第１の部分８１８がデジタルアシスタントの起動を求める要求に関連するトリガ語句を含むと判定する（低電力プロセッサを使用して）。当該判定に応答して、装置はメインプロセッサに低電力モードを終了させ、循環バッファ８１６の内容の第２の部分８２０に基づいてタスクを識別して実行させる。このように、本例では、ユーザはデジタルアシスタントに関連するトリガ語句を発声し、デジタルアシスタントに対する要求を即座に話し始める。装置は、メモリバッファの内容の一部分に基づいてタスクを識別して実行し、タスクの結果をユーザに提供する。本例では、装置は、タスクを識別及び実行するためにユーザからの追加入力を必要とせず、図８Ａに示したようにユーザに入力を指示しない。
【０２２４】
図１に関して説明したように、デジタルアシスタントシステムは、例えば自然言語処理をリモートに実行してタスクを識別するために使用可能なリモートサーバシステム１０８を含んでもよい。いくつかの実施形態では、装置はデジタルアシスタントに関連付けられたリモートサーバにメモリバッファの内容の一部又は全てを提供する。装置は、例えば有線又は無線ネットワーク接続を介してサーバにメモリバッファの内容を提供する。
【０２２５】
いくつかの実施形態では、装置は複数のマイクを含む。その場合、装置は、低電力プロセッサを使用してオーディオ入力を取り込んでメモリバッファに書き込むために１つのマイクを使用してもよく、電話発信又はデジタルアシスタントなどのメインプロセッサで実行されるアプリケーション又は機能により使用されるオーディオを取り込むために第２のマイクを使用してもよい。このように、いくつかの実施形態では、装置は、第１のマイクを使用してオーディオ入力を取り込んでメモリバッファに書き込むのと同時に、第２のマイクを使用して電話発信などの別のオーディオ使用アプリケーションを実行できる。
【０２２６】
いくつかの実施形態では、ユーザ入力が所定の基準を満たしたためユーザがデジタルアシスタントセッションを要求したと装置が判定した場合、装置はデジタルアシスタントにメモリバッファの内容の一部又は全てを提供し、第２のマイクの制御をデジタルアシスタントに移行し（当該制御が別のアプリケーションに割り当てられる場合）、第２のマイクにより検出される後続のオーディオをデジタルアシスタントにストリーミング（例えば、継続的に提供）し始める。
【０２２７】
図９は、種々の例に係るゼロレイテンシデジタルアシスタントを実現する方法９００を示す。方法９００は、デジタルアシスタントを実現する１つ以上の電子装置を使用して実行可能である。方法９００のいくつかの動作は組み合わされてもよく、いくつかの動作の順序は変更されてもよく、いくつかの動作は省略されてもよい。いくつかの例では、方法９００はデジタルアシスタントを実現するクライアントサーバシステム（例えば、システム１００）を使用して実行可能である。方法９００の個々のブロックは、何らかの適切な方法で１つ以上のコンピュータ、システム又は電子装置に分散されてもよい。例えばいくつかの例では、電子装置（例えば、装置１０４、２００、４００又は６００）で方法９００を完全に実行できる。本明細書中でいずれか１つの特定の電子装置（１０４、２００、４００又は６００）を参照する場合、それらの電子装置（１０４、２００、４００又は６００）の１つ以上が文脈上で明らかに除外されない限り、電子装置（１０４、２００、４００又は６００）の全てを含むと理解されるべきである。例えば複数の例で使用される電子装置（１０４、２００、４００又は６００）はスマートフォンである。しかし、方法９００はスマートフォンでの使用に限定されず、タブレット、デスクトップコンピュータ、ラップトップ又はスマートウォッチなどの他の何らかの適切な電子装置で実現されてもよい。計算能力が高くバッテリ寿命が長い電子装置は、方法９００のより多くのブロックを実行してもよい。方法９００のブロックの分散は固定される必要がなく、ネットワーク接続帯域幅、ネットワーク接続品質、サーバ負荷、電子装置（例えば、１０４、２００、４００、６００）の計算能力及びバッテリ電力の使用可能量、並びに／又は他の要素に依存して変化してもよい。更に、以下の説明はデジタルアシスタントシステム（例えば、システム１００及び／又はデジタルアシスタントシステム７００）により実行されるものとして方法９００を説明するが、方法又は方法の何らかの特定の部分は何らかの特定の装置、装置の組み合わせ又は実現形態による実行に限定されないことが認識されるべきである。方法の説明は、図８Ｂ〜図８Ｄ及びそれらの図に関連する上記説明により更に図示され且つ例示される。
【０２２８】
以下に説明するように、方法９００は直観的な「ゼロレイテンシ」デジタルアシスタントを実現する方法を提供する。方法は、デジタルアシスタントを呼び出して要求を提供するためにユーザにかかる認知負担を軽減することにより、更に効率的なヒューマンマシンインタフェースを作成する。バッテリ式コンピューティングデバイスの場合、ユーザがデジタルアシスタントに音声入力を即座に提供し始められるようにすることでレイテンシが短縮し且つ誤り（タイミングが不適切な音声入力に起因する）が減少し、それにより節電され、バッテリ充電間隔が延びる。
【０２２９】
方法９００のブロック９０２において、電子装置（例えば、１０４、２００、４００、６００）はマイク（例えば、マイク２１３）からオーディオ入力を取り込む。オーディオ入力は、音声によるユーザ要求などのユーザの音声を含む。
【０２３０】
ブロック９０４において、装置は第１のプロセッサ（例えば、低電力プロセッサ８１０）を使用して、取り込んだオーディオ入力を表すデータをメモリバッファ（例えば、メモリバッファ８１２）に書き込む。メモリバッファは、例えば図８Ｃに示すような循環バッファであってもよい。
【０２３１】
ブロック９０６において、装置はマイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出する。ユーザ入力は、例えば図８Ｃに示すようなボタン押下であってもよく、タッチ画面（例えば、タッチ画面２１２）への接触であってもよく、あるいはマイクにより取り込まれた口頭入力であってもよい。
【０２３２】
ブロック９０８において、装置はブロック９０６で検出されたユーザ入力が所定の基準を満たすか否かを判定する。所定の基準は、例えばボタン押下の最低持続時間、タッチ画面への接触の種類（例えば、タップ又はスワイプ）又はメモリバッファに特定のトリガ語句が存在することを含んでもよい。
【０２３３】
ブロック９１０において、ユーザ入力が所定の基準を満たすという判定に従って、装置は第２のプロセッサ（例えば、図８Ｂに示すメインプロセッサ８０８）を使用して、メモリバッファの少なくとも一部分に基づいてコンピューティングタスクを識別して実行する。いくつかの実施形態では、装置は第２のプロセッサを使用して、ブロック９０６での装置によるユーザ入力の検出前、検出中及び／又は検出後に書き込まれたバッファの一部分に基づいてタスクを識別して実行する。
【０２３４】
ブロック９１２において、ユーザ入力が所定の基準を満たさないという判定に従って、装置は図８Ｄに示すようにタスクを識別することを見送る。
【０２３５】
図１０は、種々の例に係るゼロレイテンシデジタルアシスタントを実現する方法１０００を示す。方法１０００は、デジタルアシスタントを実現する１つ以上の電子装置を使用して実行可能である。方法１０００のいくつかの動作は組み合わされてもよく、いくつかの動作の順序は変更されてもよく、いくつかの動作は省略されてもよい。いくつかの例では、方法１０００はデジタルアシスタントを実現するクライアントサーバシステム（例えば、システム１００）を使用して実行可能である。方法１０００の個々のブロックは、何らかの適切な方法で１つ以上のコンピュータ、システム又は電子装置に分散されてもよい。例えばいくつかの例では、電子装置（例えば、装置１０４、２００、４００又は６００）で方法１０００を完全に実行できる。本明細書中でいずれか１つの特定の電子装置（１０４、２００、４００又は６００）を参照する場合、それらの電子装置（１０４、２００、４００又は６００）の１つ以上が文脈上で明らかに除外されない限り、電子装置（１０４、２００、４００又は６００）の全てを含むと理解されるべきである。例えば複数の例で使用される電子装置（１０４、２００、４００又は６００）はスマートフォンである。しかし、方法１０００はスマートフォンでの使用に限定されず、タブレット、デスクトップコンピュータ、ラップトップ又はスマートウォッチなどの他の何らかの適切な電子装置で実現されてもよい。計算能力が高くバッテリ寿命が長い電子装置は、方法１０００のより多くのブロックを実行してもよい。方法１０００のブロックの分散は固定される必要がなく、ネットワーク接続帯域幅、ネットワーク接続品質、サーバ負荷、電子装置（例えば、１０４、２００、４００、６００）の計算能力及びバッテリ電力の使用可能量、並びに／又は他の要素に依存して変化してもよい。更に、以下の説明はデジタルアシスタントシステム（例えば、システム１００及び／又はデジタルアシスタントシステム７００）により実行されるものとして方法１０００を説明するが、方法又は方法の何らかの特定の部分は何らかの特定の装置、装置の組み合わせ又は実現形態による実行に限定されないことが認識されるべきである。方法１０００の説明は、図８Ｂ及び図８Ｅ及びそれらの図に関連する上記説明により更に図示され且つ例示される。
【０２３６】
以下に説明するように、方法１０００はゼロレイテンシデジタルアシスタントを実現する直観的な方法を提供する。方法は、デジタルアシスタントを呼び出して音声による要求を提供するためにユーザにかかる認知負担を軽減することにより、更に効率的なヒューマンマシンインタフェースを作成する。バッテリ式コンピューティングデバイスの場合、ユーザがデジタルアシスタントに音声入力を即座に提供し始められるようにすることでレイテンシが短縮し且つ誤り（不適切に時間のかかる音声入力による）が減少し、それにより節電され且つバッテリ充電間隔が長くなる。
【０２３７】
方法１０００において、電子装置（例えば、装置１０４、２００、４００、６００）の第２のプロセッサ（例えば、メインプロセッサ８０８）が低電力モードの間、装置はブロック１００２、１００４及び１００６を実行する。
【０２３８】
ブロック１００２において、電子装置はマイク（例えば、マイク２１３）からオーディオ入力を継続的に取り込む。オーディオ入力は、音声によるユーザ要求などのユーザの音声を含む。ブロック１００４において、装置は第１のプロセッサ（例えば、低電力プロセッサ８１０）を使用して、取り込んだオーディオ入力を表すデータをメモリバッファ（例えば、メモリバッファ８１２）に継続的に書き込む。メモリバッファは、例えば図８Ｅに示すような循環バッファであってもよい。ブロック１００６において、装置は第１のプロセッサを使用して、メモリバッファの内容の少なくとも第１の部分が所定の基準を満たすか否かを判定する。基準は、メモリバッファの内容の少なくとも第１の部分が例えば図８Ｅに示すように所定のトリガ語句を含む場合に満たされる基準を含んでもよい。
【０２３９】
ブロック１００８において、バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、装置は第２のプロセッサに低電力モードを終了させる。
【０２４０】
ブロック１００８で第２のプロセッサに低電力モードを終了させた後、ブロック１０１０において、装置は第２のプロセッサを使用して、メモリバッファの少なくとも第２の部分に基づいてコンピューティングタスクを識別する。いくつかの実施形態において、第２の部分は、第１の部分の後に書き込まれたメモリバッファの一部分であってもよい（例えば、トリガ語句の後に発声された音声による要求）。いくつかの実施形態において、第２の部分は、第１の部分を含む部分であってもよく、第１の部分の前に書き込まれた部分であってもよい。いくつかの実施形態では、第２の部分はメモリバッファ全体である。
【０２４１】
ブロック１０１２において、装置は第２のプロセッサを使用して、ブロック１０１０で識別されたコンピューティングタスクを実行する。第２のプロセッサは、図１に関して説明したようにコンピューティングタスクを実行してもよい。
【０２４２】
ブロック１０１４において、バッファの少なくとも第１の部分が所定の基準を満たさないという判定に従って、装置は第２のプロセッサに低電力モードを終了させることを見送る。
【０２４３】
いくつかの実施形態に従って、図１１は、説明された種々の実施形態の原理に従って構成された電子装置１１００の機能ブロック図の一例を示す。いくつかの実施形態に従って、電子装置１１００の機能ブロックは上述した技術を実行するように構成される。装置１１００の機能ブロックは、説明された種々の例の原理を実行するようにハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組み合わせにより任意に実現される。図１１で説明される機能ブロックは、説明された種々の例の原理を実現するようにサブブロックに任意に組み合わされるか又は分離されることが当業者には理解される。従って、本明細書中の説明は、本明細書中で説明される機能ブロックのあらゆる可能な組み合わせ、分離又は更なる定義に任意に対応する。
【０２４４】
図１１に示すように、電子装置１１００は、オーディオ入力を取り込むように構成されたマイク部１１０２と、マイク部により取り込まれたオーディオ入力を表すオーディオデータが書き込まれるように構成されたメモリバッファ部１１０４とを含み、ユーザインタフェースを表示するように構成された表示部１１０６と、オーディオコンテンツを受信又は出力するように構成されたオーディオコンポーネント部１１０８とを任意に含む。装置１１００は、マイク部１１０２、メモリバッファ部１１０４及び任意に表示部１１０６に結合された処理部１１１０を含む。処理部１１１０は、少なくとも２つのプロセッサ（例えば、低電力プロセッサ８１０及びメインプロセッサ８０８）を含む。
【０２４５】
処理部は、マイク部１１０２からオーディオ入力を取り込み（例えば、取り込み部１１１２を用いて）、第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファ部１１０４に書き込み（例えば、書込み部１１１４を用いて）、マイク部を使用してオーディオ入力を取り込んでいる間にユーザ入力を検出し（例えば、検出部１１１６を用いて）、第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定する（例えば、判定部１１１８を用いて）ように構成される。処理部は、ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別し（例えば、識別部１１２０を用いて）、ユーザ入力が基準を満たさなかったという判定に従って、コンピューティングタスクを識別することを見送るように更に構成される。
【０２４６】
いくつかの実施形態では、メモリバッファの内容の少なくとも一部分は、ユーザ入力が検出される前にバッファに書き込まれたデータを含む。
【０２４７】
いくつかの実施形態では、メモリバッファの内容の少なくとも一部分は、ユーザ入力の検出中にバッファに書き込まれたデータを含む。
【０２４８】
いくつかの実施形態では、処理部は、ユーザ入力が基準を満たしたという判定に従って、識別されたコンピューティングタスクを実行する（例えば、実行部１１２２を用いて）ように更に構成される。
【０２４９】
いくつかの実施形態では、コンピューティングタスクを識別することは、第２のプロセッサでデジタルアシスタントセッションを開始することを含む。
【０２５０】
いくつかの実施形態では、デジタルアシスタントがコンピューティングタスクを識別して実行する。
【０２５１】
いくつかの実施形態では、デジタルアシスタントセッションを開始することは、デジタルアシスタントセッションに関連するユーザインタフェースを表示部１１０６に表示することを含む。
【０２５２】
いくつかの実施形態では、デジタルアシスタントに関連するユーザインタフェースは全画面ビューで表示される。
【０２５３】
いくつかの実施形態では、デジタルアシスタントを起動することは、装置の（例えば、オーディオコンポーネント部１１０８の）１つ以上のオーディオコンポーネントを起動する（例えば、起動部１１２４を用いて）ことを含む。
【０２５４】
いくつかの実施形態では、メモリバッファの少なくとも一部分は、デジタルアシスタントに関連付けられたリモートサーバに提供される。
【０２５５】
いくつかの実施形態では、処理部は、ユーザ入力が基準を満たしたという判定に従って、装置の（例えば、マイク部１１０２の）第２のマイクを起動し（例えば、起動部１１２４を用いて）、第２のマイクにより検出されたオーディオをデジタルアシスタントにストリーミングする（例えば、ストリーミング部１１２６を用いて）ように更に構成される。
【０２５６】
いくつかの実施形態では、ユーザ入力はボタン押下である。
【０２５７】
いくつかの実施形態では、基準は、ボタン押下が所定の閾値持続時間を上回る場合に満たされる基準を含む。
【０２５８】
いくつかの実施形態では、ユーザ入力は、マイクにより取り込まれてバッファに書き込まれるオーディオデータである。
【０２５９】
いくつかの実施形態では、基準は、バッファの少なくとも第２の部分が所定のトリガを表すオーディオデータを含むと装置が判定する場合に満たされる基準を含む。
【０２６０】
いくつかの実施形態では、基準は、オーディオデータが許可ユーザに対応すると装置が判定する場合に満たされる基準を含む。
【０２６１】
いくつかの実施形態では、オーディオ入力は第２のプロセッサが低電力モードの間に取り込まれ、処理部は、ユーザ入力が基準を満たしたという判定に更に従って、第２のプロセッサに低電力モードを終了させる（例えば、起因部（causing unit）１１２８を用いて）ように更に構成される。
【０２６２】
図９を参照して上述した動作は、図２Ａ及び図２Ｂ又は図１１に示した構成要素により任意に実現される。例えば取り込み動作９０２、書き込み動作９０４、検出動作９０６及び判定動作９０８は、周辺機器インタフェース２１８、メモリ２０２、イベントソータ２７０、イベント認識器２８０及びイベントハンドラ２９０により任意に実現される。周辺機器インタフェース２１８は、メモリ２０２のメモリバッファに書き込むためにオーディオ入力を取り込むことができる。イベントソータ２７０内のイベントモニタ２７１はユーザ入力を検出し、イベントディスパッチャモジュール２７４はイベント情報をアプリケーション２３６−１に出力する。アプリケーション２３６−１の各イベント認識器２８０は、イベント情報と各自のイベント定義２８６とを比較し、ユーザ入力がデジタルアシスタントの起動を求める要求などの事前定義済みのイベント又はサブイベントに対応する所定の基準を満たすか否かを判定する。各自の事前定義済みのイベント又はサブイベントが検出された場合、イベント認識器２８０はイベント又はサブイベントの検出に関連付けられたイベントハンドラ２９０を起動する。イベントハンドラ２９０は、アプリケーション内部状態２９２を更新するために、データ更新器２７６又はオブジェクト更新器２７７を任意に使用するか又は呼び出す。いくつかの実施形態では、イベントハンドラ２９０は各自のＧＵＩ更新器２７８にアクセスして、アプリケーションにより表示されるＧＵＩを更新する。同様に、他の処理が図２Ａ及び図２Ｂに示す構成要素に基づいて実現される方法は当業者には明らかだろう。
【０２６３】
いくつかの実施形態に従って、図１２は、説明された種々の実施形態の原理に従って構成された電子装置１２００の機能ブロック図の一例を示す。いくつかの実施形態に従って、電子装置１２００の機能ブロックは上述した技術を実行するように構成される。装置１２００の機能ブロックは、説明された種々の例の原理を実行するようにハードウェア、ソフトウェア又はハードウェアとソフトウェアとの組み合わせにより任意に実現される。図１２で説明される機能ブロックは、説明された種々の例の原理を実現するようにサブブロックに任意に組み合わされるか又は分離されることが当業者には理解される。従って、本明細書中の説明は、本明細書中で説明される機能ブロックのあらゆる可能な組み合わせ、分離又は更なる定義に任意に対応する。
【０２６４】
図１２に示すように、電子装置１２００は、オーディオ入力を取り込むように構成されたマイク部１２０２と、マイク部により取り込まれたオーディオ入力を表すオーディオデータが書き込まれるように構成されたメモリバッファ部１２０４とを含み、ユーザインタフェースを表示するように構成された表示部１２０６と、オーディオコンテンツを受信又は出力するように構成されたオーディオコンポーネント部１２０８とを任意に含む。装置１２００は、マイク部１２０２、メモリバッファ部１２０４及び任意に表示部１２０６及びオーディオコンポーネント部１２０８に結合された処理部１２１０を含む。処理部１２１０は、少なくとも２つのプロセッサ（例えば、低電力プロセッサ８１０及びメインプロセッサ８０８）を含む。
【０２６５】
処理部は、第２のプロセッサが低電力モードの間に、マイク部１２０２からオーディオ入力を取り込み（例えば、取り込み部１２１２を用いて）、第１のプロセッサを使用して、継続的に取り込んだオーディオ入力を表すデータをメモリバッファ部１２０４に継続的に書き込み（例えば、書込み部１２１４を用いて）、メモリバッファ部の少なくとも第１の部分が所定の基準を満たすか否かを判定し（例えば、判定部１２１６を用いて）、メモリバッファ部の少なくとも第１の部分が所定の基準を満たすという判定に従って、第２のプロセッサに低電力モードを終了させ（例えば、起因部（causing unit）１２２８を用いて）、第２のプロセッサを使用して、メモリバッファ部の内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別し（例えば、識別部１２１８を用いて）、第２のプロセッサを使用して、識別されたタスクを実行する（例えば、実行部１２２４を使用して）ように構成される。処理部は、メモリバッファ部の少なくとも第１の部分が基準を満たさないという判定に従って、第２のプロセッサに低電力モードを終了させることを見送るように更に構成される。
【０２６６】
いくつかの実施形態では、第２のプロセッサは、ユーザからの追加入力を必要とせずに、識別されたタスクを即座に実行する。
【０２６７】
いくつかの実施形態では、基準は、メモリバッファの少なくとも第１の部分が所定のトリガを表すオーディオデータを含むと装置が判定する場合に満たされる基準を含む。
【０２６８】
いくつかの実施形態では、コンピューティングタスクを識別することは、第２のプロセッサでデジタルアシスタントセッションを開始することを含む。
【０２６９】
いくつかの実施形態では、デジタルアシスタントがタスクを識別して実行する。
【０２７０】
いくつかの実施形態では、デジタルアシスタントセッションを開始することは、デジタルアシスタントセッションに関連するユーザインタフェースを表示することを含む。
【０２７１】
いくつかの実施形態では、デジタルアシスタントに関連するユーザインタフェースは全画面ビューで表示される。
【０２７２】
いくつかの実施形態では、デジタルアシスタントを起動することは、装置の１つ以上のオーディオコンポーネントを起動することを含む。
【０２７３】
いくつかの実施形態では、バッファの少なくとも一部分は、デジタルアシスタントに関連付けられたリモートサーバに提供される。
【０２７４】
いくつかの実施形態では、処理部は、ユーザ入力が基準を満たしたという判定に更に従って、装置のマイク部（１２０２）の第２のマイクを起動し（例えば、起動部１２２６を用いて）、第２のマイクにより検出されたオーディオをデジタルアシスタントにストリーミングするように更に構成される。
【０２７５】
いくつかの実施形態では、基準は、オーディオデータが許可ユーザに対応すると装置が判定する場合に満たされる基準を含む。
【０２７６】
図１０を参照して上述した動作は、図２Ａ及び図２Ｂ又は図１２に示した構成要素により任意に実現される。例えば取り込み動作１００２、書き込み動作１００４及び判定動作１００６は、周辺機器インタフェース２１８、メモリ２０２、イベントソータ２７０、イベント認識器２８０及びイベントハンドラ２９０により任意に実現される。周辺機器インタフェース２１８は、メモリ２０２のメモリバッファに書き込むためにオーディオ入力を取り込むことができる。アプリケーション２３６−１の各イベント認識器２８０は、メモリバッファ内の内容などのイベント情報と各自のイベント定義２８６とを比較し、メモリバッファの一部分がデジタルアシスタントの起動を求める要求などの事前定義済みのイベント又はサブイベントに対応する所定の基準を満たすか否かを判定する。各自の事前定義済みのイベント又はサブイベントが検出された場合、イベント認識器２８０はイベント又はサブイベントの検出に関連付けられたイベントハンドラ２９０を起動する。イベントハンドラ２９０は、アプリケーション内部状態２９２を更新するために、データ更新器２７６又はオブジェクト更新器２７７を任意に使用するか又は呼び出す。いくつかの実施形態では、イベントハンドラ２９０は各自のＧＵＩ更新器２７８にアクセスして、アプリケーションにより表示されるＧＵＩを更新する。同様に、他の処理が図２Ａ及び図２Ｂに示す構成要素に基づいて実現される方法は当業者には明らかだろう。
【０２７７】
方法、非一時的コンピュータ可読媒体、システム及び電子装置の例を以下の項目に記載する。
１．マイク、第１のプロセッサ及び第２のプロセッサを含む電子装置において、
マイクからオーディオ入力を取り込むことと、
第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込むことと、
マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出することと、
第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定することと、
ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別することと、
ユーザ入力が基準を満たさなかったという判定に従って、タスクを識別することを見送ることと、
を有する方法。
２．メモリバッファの内容の少なくとも一部分は、ユーザ入力が検出される前にバッファに書き込まれたデータを含む項目１記載の方法。
３．メモリバッファの内容の少なくとも一部分は、ユーザ入力の検出中にバッファに書き込まれたデータを含む項目１及び２のいずれか１つに記載の方法。
４．ユーザ入力が基準を満たしたという判定に更に従って、識別されたコンピューティングタスクを実行することを更に備える項目１から３のいずれか１つに記載の方法。
５．コンピューティングタスクを識別することは、第２のプロセッサでデジタルアシスタントセッションを開始することを含む項目１から４のいずれか１つに記載の方法。
６．デジタルアシスタントがコンピューティングタスクを識別して実行する項目５記載の方法。
７．デジタルアシスタントセッションを開始することは、デジタルアシスタントセッションに関連するユーザインタフェースを表示することを含む項目５及び６のいずれか１つに記載の方法。
８．デジタルアシスタントに関連するユーザインタフェースは全画面ビューで表示される項目７記載の方法。
９．デジタルアシスタントセッションを開始することは、装置の１つ以上のオーディオコンポーネントを起動することを含む項目５から８のいずれか１つに記載の方法。
１０．メモリバッファの内容の少なくとも一部分は、デジタルアシスタントに関連付けられたリモートサーバに提供される項目５から９のいずれか１つに記載の方法。
１１．ユーザ入力が基準を満たしたという判定に更に従って、
装置の第２のマイクを起動することと、
第２のマイクにより検出されたオーディオをデジタルアシスタントにストリーミングすることと、
を更に備える項目１から１０のいずれか１つに記載の方法。
１２．ユーザ入力はボタン押下である項目１から１１のいずれか１つに記載の方法。
１３．基準は、ボタン押下が所定の閾値持続時間を上回る場合に満たされる基準を含む項目１２記載の方法。
１４．ユーザ入力は、マイクにより取り込まれてバッファに書き込まれるオーディオデータである項目１から１１のいずれか１つに記載の方法。
１５．基準は、メモリバッファの少なくとも第２の部分が所定のトリガを表すオーディオデータを含むと装置が判定する場合に満たされる基準を含む項目１４記載の方法。
１６．基準は、オーディオデータが許可ユーザに対応すると装置が判定する場合に満たされる基準を含む項目１４及び１５のいずれか１つに記載の方法。
１７．オーディオ入力は第２のプロセッサが低電力モードの間に取り込まれ、
ユーザ入力が基準を満たしたという判定に更に従って、第２のプロセッサに低電力モードを終了させることを更に備える項目１から１６のいずれか１つに記載の方法。
１８．マイクを有する電子装置の第１のプロセッサ及び第２のプロセッサにより実行される場合に、装置に、
マイクからオーディオ入力を取り込ませる命令と、
第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込ませる命令と、
マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出させる命令と、
第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定させる命令と、
ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別させる命令と、
ユーザ入力が基準を満たさなかったという判定に従って、タスクを識別することを見送らせる命令と、
を備える１つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体。
１９．マイクと、
２つ以上のプロセッサと、
メモリと、
１つ以上のプログラムとを備え、１つ以上のプログラムはメモリに記憶され、２つ以上のプロセッサにより実行されるように構成され、１つ以上のプログラムは、
マイクからオーディオ入力を取り込むための命令と、
第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込むための命令と、
マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出するための命令と、
第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定するための命令と、
ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別するための命令と、
ユーザ入力が基準を満たさなかったという判定に従って、タスクを識別することを見送るための命令と、
を含む電子装置。
２０．マイクと、
第１のプロセッサと、
第２のプロセッサと、
マイクからオーディオ入力を取り込む手段と、
第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込む手段と、
マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出する手段と、
第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定する手段と、
ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別する手段と、
ユーザ入力が基準を満たさなかったという判定に従って、タスクを識別することを見送る手段と、
を備える電子装置。
２１．マイクと、
少なくとも２つのプロセッサと、
メモリと、
１つ以上のプログラムとを備え、１つ以上のプログラムはメモリに記憶され、少なくとも２つのプロセッサにより実行されるように構成され、１つ以上のプログラムは、項目１から１７のいずれか１つに記載の方法を実行するための命令を含む電子装置。
２２．マイク及び少なくとも２つのプロセッサを有する電子装置により実行される場合に、項目１から１７のいずれか１つに記載の方法を装置に実行させる命令を備える１つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体。
２３．マイクと、
少なくとも２つのプロセッサと、
項目１から１７のいずれか１つに記載の方法を実行する手段と、
を備える電子装置。
２４．マイク部と、
メモリバッファ部と、
マイク部及びメモリバッファ部に結合された処理部であり、第１のプロセッサ及び第２のプロセッサを備え、
マイクからオーディオ入力を取り込み、
第１のプロセッサを使用して、取り込んだオーディオ入力を表すデータをメモリバッファに書き込み、
マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出し、
第１のプロセッサを使用して、ユーザ入力が所定の基準を満たしたか否かを判定し、
ユーザ入力が基準を満たしたという判定に従って、第２のプロセッサを使用して、メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別し、
ユーザ入力が基準を満たさなかったという判定に従って、タスクを識別することを見送るように構成された処理部と、
を備える電子装置。
２５．メモリバッファの内容の少なくとも一部分は、ユーザ入力が検出される前にバッファに書き込まれたデータを含む項目２４記載の電子装置。
２６．メモリバッファの内容の少なくとも一部分は、ユーザ入力の検出中にバッファに書き込まれたデータを含む項目２４及び２５のいずれか１つに記載の電子装置。
２７．処理部は、ユーザ入力が基準を満たしたという判定に更に従って、識別されたコンピューティングタスクを実行するように更に構成される項目２４から２６のいずれか１つに記載の電子装置。
２８．コンピューティングタスクを識別することは、第２のプロセッサでデジタルアシスタントセッションを開始することを含む項目２４から２７のいずれか１つに記載の電子装置。
２９．デジタルアシスタントがコンピューティングタスクを識別して実行する項目２８記載の電子装置。
３０．デジタルアシスタントセッションを開始することは、デジタルアシスタントセッションに関連するユーザインタフェースを表示することを含む項目２８及び２９のいずれか１つに記載の電子装置。
３１．デジタルアシスタントに関連するユーザインタフェースは全画面ビューで表示される項目３０記載の電子装置。
３２．デジタルアシスタントを起動することは、装置の１つ以上のオーディオコンポーネントを起動することを含む項目２８から３１のいずれか１つに記載の電子装置。
３３．メモリバッファの少なくとも一部分は、デジタルアシスタントに関連付けられたリモートサーバに提供される項目２８から３２のいずれか１つに記載の電子装置。
３４．処理部は、
ユーザ入力が基準を満たしたという判定に更に従って、
装置の第２のマイクを起動し、
第２のマイクにより検出されたオーディオをデジタルアシスタントにストリーミングするように更に構成される項目２８から３３のいずれか１つに記載の電子装置。
３５．ユーザ入力はボタン押下である項目２４から３４のいずれか１つに記載の電子装置。
３６．基準は、ボタン押下が所定の閾値持続時間を上回る場合に満たされる基準を含む項目３５記載の電子装置。
３７．ユーザ入力は、マイクにより取り込まれてバッファに書き込まれるオーディオデータである項目２４から３４のいずれか１つに記載の電子装置。
３８．基準は、バッファの少なくとも第２の部分が所定のトリガを表すオーディオデータを含むと装置が判定する場合に満たされる基準を含む項目３７記載の電子装置。
３９．基準は、オーディオデータが許可ユーザに対応すると装置が判定する場合に満たされる基準を含む項目３７及び３８のいずれか１つに記載の電子装置。
４０．オーディオ入力は第２のプロセッサが低電力モードの間に取り込まれ、処理部は、
ユーザ入力が基準を満たしたという判定に更に従って、第２のプロセッサに低電力モードを終了させるように更に構成される項目２４から３９のいずれか１つに記載の電子装置。
４１．マイク、第１のプロセッサ及び第２のプロセッサを含む電子装置において、
第２のプロセッサが低電力モードの間に、
マイクからオーディオ入力を取り込むことと、
第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込むことと、
第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定することと、
バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、
第２のプロセッサに低電力モードを終了させることと、
第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別することと、
第２のプロセッサを使用して、識別されたタスクを実行することと、
バッファの少なくとも第１の部分が基準を満たさないという判定に従って、第２のプロセッサに低電力モードを終了させることを見送ることと、
を備える方法。
４２．第２のプロセッサは、ユーザからの追加入力を必要とせずに、識別されたコンピューティングタスクを即座に実行する項目４１記載の方法。
４３．基準は、メモリバッファの少なくとも第１の部分が所定のトリガを表すオーディオデータを含むと装置が判定する場合に満たされる基準を含む項目４１及び４２のいずれか１つに記載の方法。
４４．コンピューティングタスクを識別することは、第２のプロセッサでデジタルアシスタントセッションを開始することを含む項目４１から４３のいずれか１つに記載の方法。
４５．デジタルアシスタントがコンピューティングタスクを識別して実行する項目４４記載の方法。
４６．デジタルアシスタントセッションを開始することは、デジタルアシスタントセッションに関連するユーザインタフェースを表示することを含む項４４及び４５のいずれか１つに記載の方法。
４７．デジタルアシスタントに関連するユーザインタフェースは全画面ビューで表示される項目４６記載の方法。
４８．デジタルアシスタントを起動することは、装置の１つ以上のオーディオコンポーネントを起動することを含む項目４６及び４７のいずれか１つに記載の方法。
４９．バッファの少なくとも第２の部分は、デジタルアシスタントに関連付けられたリモートサーバに提供される項４４から４８のいずれか１つに記載の方法。
５０．ユーザ入力が基準を満たしたという判定に更に従って、
装置の第２のマイクを起動することと、
第２のマイクにより検出されたオーディオをデジタルアシスタントにストリーミングすることと、
を更に備える項目４４から４９のいずれか１つに記載の方法。
５１．基準は、オーディオデータが許可ユーザに対応すると装置が判定する場合に満たされる基準を含む項目４１から５０のいずれか１つに記載の方法。
５２．マイクを有する電子装置の第１のプロセッサ及び第２のプロセッサにより実行される場合に、装置に、
第２のプロセッサが低電力モードの間に、
マイクからオーディオ入力を取り込ませる命令と、
第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込ませる命令と、
第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定させる命令と、
バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、
第２のプロセッサに低電力モードを終了させる命令と、
第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別させる命令と、
第２のプロセッサを使用して、識別されたタスクを実行させる命令と、
バッファの少なくとも第１の部分が基準を満たさないという判定に従って、第２のプロセッサに低電力モードを終了させることを見送らせる命令と、
を備える１つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体。
５３．マイクと、
２つ以上のプロセッサと、
メモリと、
１つ以上のプログラムとを備え、１つ以上のプログラムはメモリに記憶され、２つ以上のプロセッサにより実行されるように構成され、１つ以上のプログラムは、
第２のプロセッサが低電力モードの間に、
マイクからオーディオ入力を取り込むための命令と、
第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込むための命令と、
第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定するための命令と、
バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、
第２のプロセッサに低電力モードを終了させるための命令と、
第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別するための命令と、
第２のプロセッサを使用して、識別されたタスクを実行するための命令と、
バッファの少なくとも第１の部分が基準を満たさないという判定に従って、第２のプロセッサに低電力モードを終了させることを見送るための命令と、
を含む電子装置。
５４．マイクと、
第１のプロセッサと、
第２のプロセッサと、
第２のプロセッサが低電力モードの間に、
マイクからオーディオ入力を取り込み、
第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込み、
第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定する手段と、
バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、
第２のプロセッサに低電力モードを終了させ、
第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別し、
第２のプロセッサを使用して、識別されたタスクを実行する手段と、
バッファの少なくとも第１の部分が基準を満たさないという判定に従って、第２のプロセッサに低電力モードを終了させることを見送る手段と、
を備える電子装置。
５５．マイクと、
少なくとも２つのプロセッサと、
メモリと、
１つ以上のプログラムとを備え、１つ以上のプログラムはメモリに記憶され、少なくとも２つのプロセッサにより実行されるように構成され、１つ以上のプログラムは、項目４１から５１のいずれか１つに記載の方法を実行するための命令を含む電子装置。
５６．マイク及び少なくとも２つのプロセッサを有する電子装置により実行される場合に、項目４１から５１のいずれか１つに記載の方法を装置に実行させる命令を備える１つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体。
５７．マイクと、
少なくとも２つのプロセッサと、
項目４１から５１のいずれか１つに記載の方法を実行する手段と、
を備える電子装置。
５８．マイク部と、
メモリバッファ部と、
マイク部及びメモリバッファ部に結合された処理部であり、第１のプロセッサ及び第２のプロセッサを備え、
第２のプロセッサが低電力モードの間に、
マイクからオーディオ入力を取り込み、
第１のプロセッサを使用して、継続的に取り込まれるオーディオ入力を表すデータをメモリバッファに継続的に書き込み、
第１のプロセッサを使用して、メモリバッファの少なくとも第１の部分が所定の基準を満たすか否かを判定し、
バッファの少なくとも第１の部分が所定の基準を満たすという判定に従って、
第２のプロセッサに低電力モードを終了させ、
第２のプロセッサを使用して、メモリバッファの内容の少なくとも第２の部分に基づいてコンピューティングタスクを識別し、
第２のプロセッサを使用して、識別されたタスクを実行し、
バッファの少なくとも第１の部分が基準を満たさないという判定に従って、第２のプロセッサに低電力モードを終了させることを見送るように構成された処理部と、
を備える電子装置。
５９．第２のプロセッサは、ユーザからの追加入力を必要とせずに、識別されたコンピューティングタスクを即座に実行する項目５８記載の電子装置。
６０．基準は、メモリバッファの少なくとも第２の部分が所定のトリガを表すオーディオデータを含むと装置が判定する場合に満たされる基準を含む項目５８及び５９のいずれか１つに記載の電子装置。
６１．コンピューティングタスクを識別することは、第２のプロセッサでデジタルアシスタントセッションを開始することを含む項目５８から６０のいずれか１つに記載の電子装置。
６２．デジタルアシスタントがタスクを識別して実行する項目６１記載の電子装置。
６３．デジタルアシスタントセッションを開始することは、デジタルアシスタントセッションに関連するユーザインタフェースを表示することを含む項６１及び６２のいずれか１つに記載の電子装置。
６４．デジタルアシスタントに関連するユーザインタフェースは全画面ビューで表示される項目６３記載の電子装置。
６５．デジタルアシスタントを起動することは、装置の１つ以上のオーディオコンポーネントを起動することを含む項目６１から６４記載の電子装置。
６６．バッファの少なくとも一部分は、デジタルアシスタントに関連付けられたリモートサーバに提供される項６１から６５のいずれか１つに記載の電子装置。
６７．処理部は、
ユーザ入力が基準を満たしたという判定に更に従って、
装置のマイク部内の第２のマイクを起動し、
第２のマイクにより検出されたオーディオをデジタルアシスタントにストリーミングするように更に構成される項目６１から６６のいずれか１つに記載の電子装置。
６８．基準は、オーディオデータが許可ユーザに対応すると装置が判定する場合に満たされる基準を含む項目５８から６７のいずれか１つに記載の電子装置。
【０２７８】
説明することを目的とする上記の説明は、特定の実施形態を参照して述べられた。しかし、上記の説明は、本発明を網羅する意図はなく、あるいは開示された厳密な形式に本発明を限定する意図はない。多くの変更及び変形が上記の教示の下で可能である。実施形態は、技術の原理及びその実際的な適用例を最適に説明するために選択され且つ説明された。それにより、当業者は特定の使用に適すると考えられる種々の変更を伴って技術及び種々の実施形態を最適に使用できるようになる。
【０２７９】
添付の図面を参照して開示及び例を十分に説明したが、種々の変形及び変更が当業者には明らかになるだろう。そのような変形及び変更は、特許請求の範囲により定義される開示及び例の範囲に含まれると理解されるべきである。
【図１】
2019003657.tif 000013
【図２Ａ】
2019003657.tif 000014
【図２Ｂ】
2019003657.tif 000015
【図３】
2019003657.tif 000016
【図４】
2019003657.tif 000017
【図５Ａ】
2019003657.tif 000018
【図５Ｂ】
2019003657.tif 000019
【図６Ａ】
2019003657.tif 000020
【図６Ｂ】
2019003657.tif 000021
【図７Ａ】
2019003657.tif 000022
【図７Ｂ】
2019003657.tif 000023
【図７Ｃ】
2019003657.tif 000024
【図８Ａ】
2019003657.tif 000025
【図８Ｂ】
2019003657.tif 000026
【図８Ｃ】
2019003657.tif 000027
【図８Ｄ】
2019003657.tif 000028
【図８Ｅ】
2019003657.tif 000029
【図９】
2019003657.tif 000030
【図１０】
2019003657.tif 000031
【図１１】
2019003657.tif 000032
【図１２】
2019003657.tif 000033
【手続補正書】
【提出日】平成30年8月10日(2018.8.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マイク、第１のプロセッサ、及び第２のプロセッサを含む電子装置において、
前記マイクからオーディオ入力を取り込むことと、
前記第１のプロセッサを使用して、取り込んだ前記オーディオ入力を表すデータをメモリバッファに書き込むことと、
前記マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出することと、
前記第１のプロセッサを使用して、前記ユーザ入力が所定の基準を満たしたか否かを判定することと、
前記ユーザ入力が前記基準を満たしたという判定に従って、前記第２のプロセッサを使用して、前記メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別することであって、前記一部分は、前記ユーザ入力が検出される前に前記メモリバッファに書き込まれたデータを含み、前記コンピューティングタスクに対応するユーザ意図を識別することを含んだ前記コンピューティングタスクを識別することと、
前記ユーザ入力が前記基準を満たさなかったという判定に従って、前記タスクを識別することを見送ることと、
を有する方法。
【請求項２】
前記メモリバッファの内容の前記少なくとも一部分は、前記ユーザ入力の前記検出の間に前記バッファに書き込まれたデータを含む、
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記ユーザ入力が前記基準を満たしたという判定にさらに従って、識別された前記コンピューティングタスクを実行することをさらに有する、
ことを特徴とする請求項１又は２に記載の方法。
【請求項４】
前記コンピューティングタスクを識別することは、前記第２のプロセッサでデジタルアシスタントのセッションを開始することを含む、
ことを特徴とする請求項１から３のいずれか１項に記載の方法。
【請求項５】
前記デジタルアシスタントが、前記コンピューティングタスクを識別して実行する、
ことを特徴とする請求項４に記載の方法。
【請求項６】
前記デジタルアシスタントのセッションを開始することは、前記デジタルアシスタントのセッションに関連するユーザインタフェースを表示することを含む、
ことを特徴とする請求項４又は５に記載の方法。
【請求項７】
前記デジタルアシスタントに関連する前記ユーザインタフェースは、全画面ビューで表示される、
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記デジタルアシスタントのセッションを開始することは、前記装置の１つ以上のオーディオコンポーネントを起動することを含む、
ことを特徴とする請求項４から７のいずれか１項に記載の方法。
【請求項９】
前記メモリバッファの内容の前記少なくとも一部分が、前記デジタルアシスタントに関連付けられたリモートサーバに提供される、
ことを特徴とする請求項４から８のいずれか１項に記載の方法。
【請求項１０】
前記ユーザ入力が前記基準を満たしたという判定にさらに従って、
前記装置の第２のマイクを起動することと、
前記第２のマイクにより検出されたオーディオをデジタルアシスタントにストリーミングすることと、
をさらに有することを特徴とする請求項１から９のいずれか１項に記載の方法。
【請求項１１】
前記ユーザ入力はボタン押下である、
ことを特徴とする請求項１から１０のいずれか１項に記載の方法。
【請求項１２】
前記基準は、前記ボタン押下が所定の閾値持続時間を上回る場合に満たされる基準を含む、
ことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ユーザ入力は、前記マイクにより取り込まれて前記バッファに書き込まれるオーディオデータである、
ことを特徴とする請求項１から１０のいずれか１項に記載の方法。
【請求項１４】
前記基準は、前記メモリバッファの少なくとも第２の部分が所定のトリガを表すオーディオデータを含むと前記装置が判定する場合に満たされる基準を含む、
ことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記基準は、前記オーディオデータが許可ユーザに対応すると前記装置が判定する場合に満たされる基準を含む、
ことを特徴とする請求項１３又は１４に記載の方法。
【請求項１６】
前記オーディオ入力は前記第２のプロセッサが低電力モードである間に取り込まれ、
前記方法は、前記ユーザ入力が前記基準を満たしたという判定にさらに従って、前記第２のプロセッサに前記低電力モードを終了させることをさらに有する、
ことを特徴とする請求項１から１５のいずれか１項に記載の方法。
【請求項１７】
前記マイクは第１のマイクであり、前記電子装置は第２のマイクを含み、前記マイクからオーディオ入力を取り込むこと及び前記第１のプロセッサを使用して取り込んだ前記オーディオ入力を表すデータをメモリバッファに書き込むことは、前記第２のマイクを用いてオーディオベースのアプリケーションを実行している間に実行される、
ことを特徴とする請求項１に記載の方法。
【請求項１８】
マイクを有する電子装置の第１のプロセッサ及び第２のプロセッサにより実行される場合に、当該装置に、
前記マイクからオーディオ入力を取り込ませ、
前記第１のプロセッサを使用して、取り込んだ前記オーディオ入力を表すデータをメモリバッファに書き込ませ、
前記マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出させ、
前記第１のプロセッサを使用して、前記ユーザ入力が所定の基準を満たしたか否かを判定させ、
前記ユーザ入力が前記基準を満たしたという判定に従って、前記第２のプロセッサを使用して、前記メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別させることであって、前記一部分は、前記ユーザ入力が検出される前に前記メモリバッファに書き込まれたデータを含み、前記コンピューティングタスクに対応するユーザ意図を識別させることを含んだ前記コンピューティングタスクの識別を行わせ、
前記ユーザ入力が前記基準を満たさなかったという判定に従って、前記タスクを識別することを見送らせる、
命令を含んでいる１つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体。
【請求項１９】
マイクと、
２つ以上のプロセッサと、
メモリと、
１つ以上のプログラムとを有し、前記１つ以上のプログラムは前記メモリに記憶されると共に、前記２つ以上のプロセッサにより実行されるように構成され、前記１つ以上のプログラムは、
前記マイクからオーディオ入力を取り込み、
第１のプロセッサを使用して、取り込んだ前記オーディオ入力を表すデータを前記メモリにおけるメモリバッファに書き込み、
前記マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出し、
前記第１のプロセッサを使用して、前記ユーザ入力が所定の基準を満たしたか否かを判定し、
前記ユーザ入力が前記基準を満たしたという判定に従って、第２のプロセッサを使用して、前記メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別することであって、前記一部分は、前記ユーザ入力が検出される前に前記メモリバッファに書き込まれたデータを含み、前記コンピューティングタスクに対応するユーザ意図を識別することを含んだ前記コンピューティングタスクを識別することを行い、
前記ユーザ入力が前記基準を満たさなかったという判定に従って、前記タスクを識別することを見送る、
ための命令を含む、
ことを特徴とする電子装置。
【請求項２０】
マイクと、
第１のプロセッサと、
第２のプロセッサと、
前記マイクからオーディオ入力を取り込む手段と、
前記第１のプロセッサを使用して、取り込んだ前記オーディオ入力を表すデータをメモリバッファに書き込む手段と、
前記マイクを使用してオーディオ入力を取り込んでいる間にユーザ入力を検出する手段と、
前記第１のプロセッサを使用して、前記ユーザ入力が所定の基準を満たしたか否かを判定する手段と、
前記ユーザ入力が前記基準を満たしたという判定に従って、前記第２のプロセッサを使用して、前記メモリバッファの内容の少なくとも一部分に基づいてコンピューティングタスクを識別する手段であって、前記一部分は、前記ユーザ入力が検出される前に前記メモリバッファに書き込まれたデータを含み、前記コンピューティングタスクに対応するユーザ意図を識別することを含んだ前記コンピューティングタスクを識別する手段と、
前記ユーザ入力が前記基準を満たさなかったという判定に従って、前記タスクを識別することを見送る手段と、
を有することを特徴とする電子装置。
【外国語明細書】
2019003657000001.pdf