(57)【要約】  １つ以上のユーザクレデンシャルを提供する音声入力を識別するシステム及び処理が提供される。１つの例示的な処理では、音声入力が受信されてもよい。第１の文字、第２の文字を識別するフレーズ、及び単語が音声入力に基づいて識別されてもよい。識別に応じて、第１の文字、第２の文字、及び単語がテキストに変換されてもよい。ディスプレイで、音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番でテキストが表示されてもよい。
2019512105.tif 000002
【特許請求の範囲】
【請求項１】
１つ以上のユーザクレデンシャルを提供する音声入力を識別する方法であって、
ディスプレイ、１つ以上のプロセッサ、及びメモリを有するユーザデバイスにおいて、
音声入力を受信することと、
前記音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することと、
前記識別に応じて、前記第１の文字、前記第２の文字、及び前記単語をテキストに変換することと、
前記ディスプレイで、前記音声入力内の前記第１の文字、前記第２の文字、及び前記単語の順序に対応する順番で前記テキストを表示させることと、
を含む、方法。
【請求項２】
前記第１の文字は、字、数字の桁、制御文字、又は空白のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記制御文字は、句読点の単語により識別される句読点を含む、請求項２に記載の方法。
【請求項４】
前記フレーズは、前記第２の文字の前記識別を支援するための単語の綴りを含む、請求項１に記載の方法。
【請求項５】
前記単語は、複数の文字を含む、請求項１に記載の方法。
【請求項６】
前記複数の文字は、ドメイン拡張子又は頭文字のうちの少なくとも１つを表す、請求項５に記載の方法。
【請求項７】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記ユーザデバイスに記憶された１つ以上の発話認識モデルに基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを識別することを含む、請求項１に記載の方法。
【請求項８】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記音声入力を表すデータをサーバに提供することと、
前記サーバから、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを表すデータを受信することと、
を含み、
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記サーバに記憶された１つ以上の言語モデルに基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを識別することを含む、
請求項１に記載の方法。
【請求項９】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記音声入力の発声を識別することと、
前記発声のタイプを判定することと、
前記判定された前記発声のタイプに基づいて、前記発声に対応する、前記第１の文字、前記フレーズによって識別される前記第２の文字、又は前記単語の表現を取得することと、
を含む、請求項１に記載の方法。
【請求項１０】
前記発声の前記タイプを判定することは、
前記発声の前記タイプが文字に対応するかを判定することと、
前記発声の前記タイプが文字を識別するフレーズに対応するかを判定することと、
前記発声の前記タイプが単語に対応するかを判定することと、
のうちの少なくとも１つを実行することを含む、請求項９に記載の方法。
【請求項１１】
発声の前記タイプが文字に対応するかを判定することは、
前記発声について、前記発声が制御文字に対応するかを判定することと、
前記発声が制御文字に対応するとの判定に従って、前記発声について、前記発声が句読点の単語に対応するかを判定することと、
を含み、
前記判定された前記発声のタイプに基づいて、前記文字の前記表現を取得することは、
前記発声が句読点の単語に対応するとの判定に従って、前記句読点の単語に対応する句読点の表現を取得することと、
前記発声が句読点の単語に対応しないとの判定に従って、句読点の単語以外の前記制御文字の表現を取得することと、
を含む、請求項１０に記載の方法。
【請求項１２】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記表現についての信頼度レベルを取得することと、
前記信頼度レベルが閾値以上であるかを判定することと、
を更に含み、
前記第１の文字、前記第２の文字、及び前記単語をテキストに変換することは、
前記信頼度レベルが前記閾値以上であるとの判定に従って、前記発声に対応する、前記第１の文字、前記フレーズによって識別される前記第２の文字、又は前記単語の前記表現をテキストに変換することと、
前記信頼度レベルが前記閾値未満であるとの判定に従って、１つ以上の候補表現、エラーメッセージ、又はそれらの組合せを提供することと、
を含む、請求項９に記載の方法。
【請求項１３】
前記音声入力に基づいて少なくとも１つのコマンドを識別することを更に含み、前記少なくとも１つのコマンドによって、前記表示されたテキストを編集することが可能になる、請求項１に記載の方法。
【請求項１４】
前記少なくとも１つのコマンドを識別することは、
少なくとも１つの発声を識別することと、
前記発声のタイプがコマンドに対応するかを判定することと、
前記発声の前記タイプがコマンドに対応するとの判定に従って、前記表示されたテキストを編集するための前記コマンドに対応するアクションを開始させることと、
を含む、請求項１３に記載の方法。
【請求項１５】
前記少なくとも１つのコマンドに対応する前記発声を記憶し、前記少なくとも１つのコマンドに対応する前記発声と関連付けられた情報を記憶することを更に含む、請求項１４に記載の方法。
【請求項１６】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、ユーザと関連付けられたコンテキストデータ又は１つ以上の認識されたクレデンシャルモデルのうちの少なくとも１つに基づいている、請求項１に記載の方法。
【請求項１７】
前記ユーザと関連付けられた前記コンテキストデータは、ユーザの発話プロファイルを含む、請求項１６に記載の方法。
【請求項１８】
前記１つ以上の認識されたクレデンシャルモデルは、１つ以上の認識されたクレデンシャルのフォーマットを表す、請求項１６に記載の方法。
【請求項１９】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、視線検出に基づいている、請求項１に記載の方法。
【請求項２０】
前記音声入力は、ユーザ名を表す第１のユーザクレデンシャル又はパスワードを表す第２のユーザクレデンシャルのうちの少なくとも１つに対応する、請求項１に記載の方法。
【請求項２１】
前記音声入力の１つ以上の発声、前記第１の文字に対応する前記１つ以上の発声、前記第２の文字を識別する前記フレーズ、及び前記識別に基づいて認識された前記単語を記憶することを更に含む、請求項１に記載の方法。
【請求項２２】
１つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、命令を含み、前記命令は、電子デバイスの１つ以上のプロセッサによって実行されるとき、前記電子デバイスに、
音声入力を受信させ、
前記音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別させ、
前記識別に応じて、前記第１の文字、前記第２の文字、及び前記単語をテキストに変換させ、
前記ディスプレイで、前記音声入力内の前記第１の文字、前記第２の文字、及び前記単語の順序に対応する順番で前記テキストを表示させる、
非一時的コンピュータ可読記憶媒体。
【請求項２３】
電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、を備え、前記１つ以上のプログラムは、前記メモリに記憶され、前記１つ以上のプロセッサによって実行されるように構成されており、前記１つ以上のプログラムは、
音声入力を受信し、
前記音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別し、
前記識別に応じて、前記第１の文字、前記第２の文字、及び前記単語をテキストに変換し、
前記ディスプレイで、前記音声入力内の前記第１の文字、前記第２の文字、及び前記単語の順序に対応する順番で前記テキストを表示させる、
命令を含む、電子デバイス。
【請求項２４】
電子デバイスであって、
音声入力を受信する手段と、
前記音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別する手段と、
前記識別に応じて、前記第１の文字、前記第２の文字、及び前記単語をテキストに変換する手段と、
前記ディスプレイで、前記音声入力内の前記第１の文字、前記第２の文字、及び前記単語の順序に対応する順番で前記テキストを表示させる手段と、
を備える、電子デバイス。
【請求項２５】
電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
メモリに記憶された１つ以上のプログラムと、を備え、前記１つ以上のプログラムは、請求項１〜２１のいずれか一項に記載の方法を実行する命令を含む、電子デバイス。
【請求項２６】
電子デバイスの１つ以上のプロセッサによる実行のための１つ以上のプログラムを備える非一時的コンピュータ可読記憶媒体であって、前記１つ以上のプログラムは、命令を含み、前記命令は、前記１つ以上のプロセッサによって実行されるとき、前記電子デバイスに請求項１〜２１のいずれか一項に記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
【請求項２７】
電子デバイスであって、
請求項１〜２１のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【請求項２８】
電子デバイスであって、
音声入力を受信し、
前記音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別し、
前記識別に応じて、前記第１の文字、前記第２の文字、及び前記単語をテキストに変換し、
前記音声入力内の前記第１の文字、前記第２の文字、及び前記単語の順序に対応する順番で前記テキストを表示させる、
ように構成された処理ユニットを備える、電子デバイス。
【請求項２９】
前記第１の文字は、字、数字の桁、制御文字、又は空白のうちの少なくとも１つを含む、請求項２８に記載の電子デバイス。
【請求項３０】
前記制御文字は、句読点の単語により識別される句読点を含む、請求項２９に記載の電子デバイス。
【請求項３１】
前記フレーズは、前記第２の文字の前記識別を支援するための単語の綴りを含む、請求項２８に記載の電子デバイス。
【請求項３２】
前記単語は、複数の文字を含む、請求項２８に記載の電子デバイス。
【請求項３３】
前記複数の文字は、ドメイン拡張子又は頭文字のうちの少なくとも１つを表す、請求項３２に記載の電子デバイス。
【請求項３４】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記ユーザデバイスに記憶された１つ以上の発話認識モデルに基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを識別することを含む、請求項２８に記載の電子デバイス。
【請求項３５】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記音声入力を表すデータをサーバに提供することと、
前記サーバから、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを表すデータを受信することと、
を含み、
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記サーバに記憶された１つ以上の言語モデルに基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを識別することを含む、請求項２８に記載の電子デバイス。
【請求項３６】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記音声入力の発声を識別することと、
前記発声のタイプを判定することと、
前記判定された前記発声のタイプに基づいて、前記発声に対応する、前記第１の文字、前記フレーズによって識別される前記第２の文字、又は前記単語の表現を取得することと、
を含む、請求項２８に記載の電子デバイス。
【請求項３７】
前記発声の前記タイプを判定することは、
前記発声の前記タイプが文字に対応するかを判定することと、
前記発声の前記タイプが文字を識別するフレーズに対応するかを判定することと、
前記発声の前記タイプが単語に対応するかを判定することと、
のうちの少なくとも１つを実行することを含む、請求項３６に記載の電子デバイス。
【請求項３８】
発声の前記タイプが文字に対応するかを判定することは、
前記発声について、前記発声が制御文字に対応するかを判定することと、
前記発声が制御文字に対応するとの判定に従って、前記発声について、前記発声が句読点の単語に対応するかを判定することと、
を含み、
前記判定された前記発声のタイプに基づいて、前記文字の前記表現を取得することは、
前記発声が句読点の単語に対応するとの判定に従って、前記句読点の単語に対応する句読点の表現を取得することと、
前記発声が句読点の単語に対応しないとの判定に従って、句読点の単語以外の前記制御文字の表現を取得することと、
を含む、請求項３７に記載の電子デバイス。
【請求項３９】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記表現についての信頼度レベルを取得することと、
前記信頼度レベルが閾値以上であるかを判定することと、
を更に含み、
前記第１の文字、前記第２の文字、及び前記単語をテキストに変換することは、
前記信頼度レベルが前記閾値以上であるとの判定に従って、前記発声に対応する、前記第１の文字、前記フレーズによって識別される前記第２の文字、又は前記単語の前記表現をテキストに変換することと、
前記信頼度レベルが前記閾値未満であるとの判定に従って、１つ以上の候補表現、エラーメッセージ、又はそれらの組合せを提供することと、
を含む、請求項３６に記載の電子デバイス。
【請求項４０】
前記処理ユニットは、
前記音声入力に基づいて少なくとも１つのコマンドを識別するように更に構成されており、前記少なくとも１つのコマンドによって、前記表示されたテキストを編集することが可能になる、請求項２８に記載の電子デバイス。
【請求項４１】
前記少なくとも１つのコマンドを識別することは、
少なくとも１つの発声を識別することと、
前記発声のタイプがコマンドに対応するかを判定することと、
前記発声の前記タイプがコマンドに対応するとの判定に従って、前記表示されたテキストを編集するための前記コマンドに対応するアクションを開始させることと、
を含む、請求項４０に記載の電子デバイス。
【請求項４２】
前記処理ユニットは、
前記少なくとも１つのコマンドに対応する前記発声を記憶し、前記少なくとも１つのコマンドに対応する前記発声と関連付けられた情報を記憶するように更に構成されている、請求項４１に記載の電子デバイス。
【請求項４３】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、ユーザと関連付けられたコンテキストデータ又は１つ以上の認識されたクレデンシャルモデルのうちの少なくとも１つに基づいている、請求項２８に記載の電子デバイス。
【請求項４４】
前記ユーザと関連付けられた前記コンテキストデータは、ユーザの発話プロファイルを含む、請求項４３に記載の電子デバイス。
【請求項４５】
前記１つ以上の認識されたクレデンシャルモデルは、１つ以上の認識されたクレデンシャルのフォーマットを表す、請求項４３に記載の電子デバイス。
【請求項４６】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、視線検出に基づいている、請求項２８に記載の電子デバイス。
【請求項４７】
前記音声入力は、ユーザ名を表す第１のユーザクレデンシャル又はパスワードを表す第２のユーザクレデンシャルのうちの少なくとも１つに対応する、請求項２８に記載の電子デバイス。
【請求項４８】
前記音声入力の１つ以上の発声、前記第１の文字に対応する前記１つ以上の発声、前記第２の文字を識別する前記フレーズ、及び前記識別に基づいて認識された前記単語を記憶することを更に含む、請求項２８に記載の電子デバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
これは、概して、音声認識、特に、クレデンシャルを提供する音声入力の識別に関する。
【０００２】
（関連出願の相互参照）
本出願は、２０１６年３月１４日に出願された「ＩＮＤＥＮＴＩＦＩＣＡＴＩＯＮ  ＯＦ  ＶＯＩＣＥ  ＩＮＰＵＴＳ  ＰＲＯＶＩＤＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」と題する米国仮特許出願第６２／３０８，０９０号に対する優先権を主張する、２０１６年９月１６日に出願された「ＩＮＤＥＮＴＩＦＩＣＡＴＩＯＮ  ＯＦ  ＶＯＩＣＥ  ＩＮＰＵＴＳ  ＰＲＯＶＩＤＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」と題する米国特許出願第１５／２６８，３６０号に対する優先権を主張する。本出願は、２０１７年２月２１日に出願された「ＩＮＤＥＮＴＩＦＩＣＡＴＩＯＮ  ＯＦ  ＶＯＩＣＥ  ＩＮＰＵＴＳ  ＰＲＯＶＩＤＩＮＧ  ＣＲＥＤＥＮＴＩＡＬＳ」と題するデンマーク特許出願第ＰＡ  ２０１７  ７０１２８号に対する優先権を主張する。これらの出願の内容は、その全体が全ての目的で、参照により本明細書に組み込まれる。
【背景技術】
【０００３】
従来から、認証は、ユーザがユーザ名及びパスワードなどのクレデンシャルを提供することを必要とすることが多い。コンピュータ、タブレット、モバイルデバイス、テレビ、マルチメディアデバイス、及びセットトップボックスなどのデバイスで認証が実行されることがある。口述及びデバイス制御についての発話認識がより一般的となっている。クレデンシャルは、文字、単語、フレーズ、及びコマンドなどの混合を含むことがある。そのような混合入力によって、ユーザの発話を正確に認識することが困難となる。よって、発話を使用してクレデンシャルを正確に入力することを強化することが重要である。
【発明の概要】
【０００４】
１つ以上のユーザクレデンシャルを提供する音声入力を識別するシステム及び処理が提供される。１つ以上の実施例に従って、方法は、ディスプレイ、１つ以上のプロセッサ、及びメモリを有するユーザデバイスにおいて、音声入力を受信することを含む。方法はまた、音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することを含む。方法は、識別に応じて、第１の文字、第２の文字、及び単語をテキストに変換することと、ディスプレイで、音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番でテキストを表示させることと、を更に含む。
【図面の簡単な説明】
【０００５】
説明される様々な実施形態を良好に理解するため、以下の図面と併せて、以下の「発明を実施するための形態」が参照されるべきであり、添付図面では、類似の参照番号は、図面全体を通じて対応する部分を指す。
【０００６】
【図１】種々の実施例に従った、デジタルアシスタントを実装するためのシステム及び環境を示すブロック図である。
【０００７】
【図２Ａ】いくつかの実施形態に係る、デジタルアシスタントのクライアント側部分を実装するポータブル多機能デバイスを示すブロック図である。
【０００８】
【図２Ｂ】様々な実施例に従った、イベント処理のための例示的な構成要素を示すブロック図である。
【０００９】
【図３】様々な実施例に従った、デジタルアシスタントのクライアント側部分を実装するポータブル多機能デバイスを示す図である。
【００１０】
【図４】様々な実施例に従った、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。
【００１１】
【図５Ａ】様々な実施例に従った、ポータブル多機能デバイス上のアプリケーションのメニューについての例示的なユーザインタフェースを示す図である。
【００１２】
【図５Ｂ】様々な実施例に従った、ディスプレイとは別個のタッチ感知面を有する多機能デバイスについての例示的なユーザインタフェースを示す図である。
【００１３】
【図６Ａ】様々な実施例に従った、パーソナル電子デバイスを示す図である。
【００１４】
【図６Ｂ】様々な実施例に従った、パーソナル電子デバイスを示すブロック図である。
【００１５】
【図７Ａ】様々な実施例に従った、デジタルアシスタントシステム又はそのサーバ部分を示すブロック図である。
【００１６】
【図７Ｂ】様々な実施例に従った、図７Ａに示されるデジタルアシスタントの機能を示す図である。
【００１７】
【図７Ｃ】様々な実施例に従った、オントロジの一部を示す図である。
【００１８】
【図８Ａ】様々な実施例に従った、デバイスについての例示的なアーキテクチャのブロック図である。
【図８Ｂ】様々な実施例に従った、デバイスについての例示的なアーキテクチャのブロック図である。
【００１９】
【図９】様々な実施例に従った、例示的な自動発話認識モジュールのブロック図を示す。
【００２０】
【図１０Ａ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【図１０Ｂ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【図１０Ｃ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【図１０Ｄ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【図１０Ｅ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【図１０Ｆ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【００２１】
【図１１Ａ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【図１１Ｂ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【図１１Ｃ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【図１１Ｄ】様々な実施例に従った、クレデンシャルの入力のための音声入力識別の機能性を示す。
【００２２】
【図１２Ａ】様々な実施例に従った、音声入力を識別する例示的な処理のフローチャートを示す。
【図１２Ｂ】様々な実施例に従った、音声入力を識別する例示的な処理のフローチャートを示す。
【図１２Ｃ】様々な実施例に従った、音声入力を識別する例示的な処理のフローチャートを示す。
【図１２Ｄ】様々な実施例に従った、音声入力を識別する例示的な処理のフローチャートを示す。
【００２３】
【図１３】様々な実施例に従った、電子デバイスのブロック図を示す。
【発明を実施するための形態】
【００２４】
以下の開示及び実施形態の説明では、実施することができる特定の実施形態の実例として示されている添付の図面が参照される。本開示の範囲から逸脱することなく、他の実施形態及び実施例を実施することができ、変更を行うことができることを理解されたい。
【００２５】
音声入力の識別のための技術が望ましい。本明細書で説明されるように、音声入力を識別するための技術は、文字、単語、フレーズ、及び／又はコマンドの混合を典型的に含むクレデンシャルを入力することなどの様々な目的で望ましい。そのような技術は、ユーザが手を使わないでクレデンシャルを入力することを可能にすることによって利点がある。更に、音声入力を識別するためのそのような技術は、ユーザが、時間がかかり、かつ煩わしい、文字単位でクレデンシャル又はいずれかの他の情報をデバイスに手動で入力する努力を削減することができる。
【００２６】
以下の説明では、様々な要素を説明するために「第１」、「第２」などの用語を使用するが、これらの要素はこれらの用語によって限定されるべきではない。これらの用語は、１つの要素を別の要素と区別するためにのみ使用される。例えば、説明される様々な実施例の範囲から逸脱することなく、第１の文字は第２の文字と称されてもよく、同様に、第２の文字は第１の文字と称されてもよい。第１の文字及び第２の文字は双方とも文字とすることができ、いくつかのケースでは、個別のかつ異なる文字とすることができる。
【００２７】
本明細書で説明される様々な実施例の説明で使用される用語は、特定の実施例を説明することのみを目的とするものであって、限定することを意図するものではない。説明される様々な実施例の説明及び添付の特許請求の範囲で使用されるとき、単数形「ａ」、「ａｎ」、及び「ｔｈｅ」は、文脈がそうではないことを明確に示さない限り、複数形をも含むことが意図される。また、本明細書で使用されるときに、用語「及び／又は」は、関連する列挙された項目のうちの１つ以上のいずれか及び全ての可能な組合せを指し、かつこれを含むことを理解されたい。用語「ｉｎｃｌｕｄｅｓ（含む）、「ｉｎｃｌｕｄｉｎｇ（含む）」、「ｃｏｍｐｒｉｓｅｓ（含む）」及び／又は「ｃｏｍｐｒｉｓｉｎｇ（含む）」は、本明細書で使用されるとき、述べられた特徴、整数、ステップ、動作、要素、及び／又は構成要素の存在を指定するが、１つ以上の他の特徴、整数、ステップ、動作、要素、構成要素、及び／又はそれらのグループの存在又は追加を除外しないことが更に理解されるであろう。
【００２８】
用語「ｉｆ（〜場合）」は、文脈に応じて「ｗｈｅｎ（〜するとき）」、「ｕｐｏｎ（〜すると）」、「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（〜と判定したことに応じて）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ（〜を検出したことに応じて）」を意味すると解釈することができる。同様に、句「ｉｆ  ｉｔ  ｉｓ  ｄｅｔｅｒｍｉｎｅｄ（〜と判定される場合）」又は「ｉｆ［ａ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］ｉｓ  ｄｅｔｅｃｔｅｄ（［述べられる条件又はイベント］が検出される場合）」は、文脈に応じて「ｕｐｏｎ  ｄｅｔｅｒｍｉｎｉｎｇ（〜と判定すると）」、「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｒｍｉｎｉｎｇ（〜と判定したことに応じて）」、「ｕｐｏｎ  ｄｅｔｅｃｔｉｎｇ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］（［述べられる条件又はイベント］を検出すると）」、又は「ｉｎ  ｒｅｓｐｏｎｓｅ  ｔｏ  ｄｅｔｅｃｔｉｎｇ［ｔｈｅ  ｓｔａｔｅｄ  ｃｏｎｄｉｔｉｏｎ  ｏｒ  ｅｖｅｎｔ］（［述べられる条件又はイベント］を検出したことに応じて）」を意味すると解釈することができる。
１．システム及び環境
【００２９】
図１は、様々な実施例に従った、システム１００のブロック図を示す。いくつかの実施例では、システム１００は、デジタルアシスタントを実装することができる。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、発話形式及び／又はテキスト形式の自然言語入力を解釈してユーザの意図を推測し、推測されたユーザの意図に基づいてアクションを実行するいずれかの情報処理システムを指すことができる。例えば、推測されたユーザの意図に作用するために、システムは、以下のうちの１つ以上、すなわち、推測されたユーザの意図を実現するように設計されたステップ及びパラメータを有するタスクフローを識別すること、推測されたユーザの意図からの特定の要件をタスクフローに入力すること、プログラム、方法、サービス、又はＡＰＩなどを呼び出すことによってタスクフローを実行すること、並びに可聴（例えば、発話）形式及び／又は視覚形式でユーザへの出力応答を生成すること、を実行することができる。
【００３０】
具体的には、デジタルアシスタントは、自然言語コマンド、要求、陳述、叙述、及び／又は照会の形式で少なくとも部分的にユーザ要求を受け付ける能力を有することができる。典型的には、ユーザ要求は、デジタルアシスタントによる情報の回答又はタスクの実行のいずれかを求めることができる。ユーザ要求への満足な応答は、要求された情報の回答の提供、要求されたタスクの実行、又はその２つの組合せとすることができる。例えば、ユーザは、デジタルアシスタントに「私は今どこにいますか？（Where am I right now?）」などの質問をしてもよい。ユーザの現在の場所に基づいて、デジタルアシスタントは、「あなたはセントラルパーク内の西門の近くにいます。（You are in Central Park near the west gate.））」と回答してもよい。ユーザはまた、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティーに招待して下さい。（Please invite my friends to my girlfriend's birthday party next week.）」のように、タスクの実行を要求してもよい。それに応じて、デジタルアシスタントは、「はい、ただ今（Yes, right away）」と述べることによって要求を確認応答し、次に、ユーザの代わりに、ユーザの電子アドレス帳に載っているユーザの友人の各々に適切なカレンダ招待状を送信してもよい。要求されたタスクの実行の間、デジタルアシスタントは、時により、長時間にわたって情報を複数回交換することを含む連続的なダイアログにおいて、ユーザと対話することができる。情報又は様々なタスクの実行を要求するためにデジタルアシスタントと対話する多くの他の方法が存在する。口頭による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントはまた、他の視覚又は音声形式の応答、例えば、テキスト、警報、音楽、ビデオ、アニメーションなどとして提供することもできる。
【００３１】
図１に示されるように、いくつかの実施例では、デジタルアシスタントは、クライアント−サーバモデルに従って実装されてもよい。デジタルアシスタントは、ユーザデバイス１０４上で実行されるクライアント側部分１０２（以後、「ＤＡクライアント１０２」）、及びサーバシステム１０８上で実行されるサーバ側部分１０６（以後「ＤＡサーバ１０６」）を含むことができる。ＤＡクライアント１０２は、１つ以上のネットワーク１１０を通じてＤＡサーバ１０６と通信することができる。ＤＡクライアント１０２は、ユーザ対応入力及び出力処理、並びにＤＡサーバ１０６との通信などのクライアント側機能を提供することができる。ＤＡサーバ１０６は、それぞれのユーザデバイス１０４上に各々が常駐するいずれかの数のＤＡクライアント１０２のためのサーバ側機能性を提供することができる。
【００３２】
いくつかの実施例では、ＤＡサーバ１０６は、クライアント対応Ｉ／Ｏインタフェース１１２、１つ以上の処理モジュール１１４、データ及びモデル１１６、及び外部サービスへのＩ／Ｏインタフェース１１８を含むことができる。クライアント対応Ｉ／Ｏインタフェース１１２は、ＤＡサーバ１０６のためのクライアント対応入力及び出力処理を促進することができる。１つ以上の処理モジュール１１４は、データ及びモデル１１６を利用して、発話入力を処理し、自然言語入力に基づいてユーザの意図を判定することができる。更に、１つ以上の処理モジュール１１４は、タスクの実行を、推測されたユーザの意図に基づいて実行する。いくつかの実施例では、ＤＡサーバ１０６は、タスク完了又は情報取得のために、ネットワーク（単数又は複数）１１０を通じて外部サービス１２０と通信することができる。外部サービスへのＩ／Ｏインタフェース１１８は、このような通信を促進することができる。
【００３３】
ユーザデバイス１０４は、いずれかの適切な電子デバイスとすることができる。例えば、ユーザデバイスは、ポータブル多機能デバイス（例えば、図２Ａを参照して以下で説明されるデバイス２００）、多機能デバイス（例えば、図４を参照して以下で説明されるデバイス４００）、又はパーソナル電子デバイス（例えば、図６Ａ〜図６Ｂを参照して以下で説明されるデバイス６００）とすることができる。ポータブル多機能デバイスは、例えば、ＰＤＡ及び／又は音楽プレーヤ機能などの他の機能をも含む携帯電話とすることができる。ポータブル多機能デバイスの具体的な実施例は、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）による、ｉＰｈｏｎｅ（登録商標）、ｉＰｏｄ  Ｔｏｕｃｈ（登録商標）、及びｉＰａｄ（登録商標）デバイスを含むことができる。ポータブル多機能デバイスの他の実施例は、限定を伴わずに、ラップトップコンピュータ又はタブレットコンピュータを含むことができる。更に、いくつかの実施例では、ユーザデバイス１０４は、非ポータブル多機能デバイスとすることができる。特に、ユーザデバイス１０４は、デスクトップコンピュータ、ゲームコンソール、又はテレビ、又はテレビセットトップボックスとすることができる。いくつかの実施例では、ユーザデバイス１０４は、タッチ感知面（例えば、タッチスクリーンディスプレイ及び／又はタッチパッド）を含むことができる。更に、ユーザデバイス１０４は、任意選択的に、物理キーボード、マウス、及び／又はジョイスティックなどの１つ以上の他の物理ユーザインタフェースデバイスを含むことができる。多機能デバイスなどの電子デバイスの様々な実施例が以下で更に詳細に説明される。
【００３４】
通信ネットワーク（単数又は複数）１１０の例は、ローカルエリアネットワーク（ＬＡＮ）及びワイドエリアネットワーク（ＷＡＮ）、例えば、インターネットを含むことができる。通信ネットワーク（単数又は複数）１１０は、例えば、イーサネット、ユニバーサルシリアルバス（Universal Serial Bus、ＵＳＢ）、ＦＩＲＥＷＩＲＥ、移動通信用のグローバルシステム（Global System for Mobile Communications、ＧＳＭ）、拡張データＧＳＭ環境（Enhanced Data GSM Environment、ＥＤＧＥ）、符号分割多元接続（code division multiple access、ＣＤＭＡ）、時分割多元接続（time division multiple access、ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ボイスオーバーインターネットプロトコル（voice over Internet Protocol、ＶｏＩＰ）、Ｗｉ−ＭＡＸ、又はいずれかの他の適切な通信プロトコルなど、様々な有線又は無線プロトコルを含む、いずれかの周知のネットワークプロトコルを使用して実装されてもよい。
【００３５】
サーバシステム１０８は、１つ以上のスタンドアロンデータ処理装置、又はコンピュータの分散型ネットワーク上で実装されてもよい。いくつかの実施例では、サーバシステム１０８はまた、サーバシステム１０８の基本的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供するために、種々の仮想デバイス及び／又はサードパーティサービスプロバイダ（例えば、サードパーティクラウドサービスプロバイダ）のサービスを採用することができる。
【００３６】
いくつかの実施例では、ユーザデバイス１０４は、第２のユーザデバイス１２２を介してＤＡサーバ１０６と通信することができる。第２のユーザデバイス１２２は、ユーザデバイス１０４と同様であってもよい。例えば、第２のユーザデバイス１２２は、図２Ａ、図４、及び図６Ａ〜図６Ｂを参照して以下で説明される、デバイス２００、デバイス４００、又はデバイス６００と同様であってもよい。ユーザデバイス１０４は、Ｂｌｕｅｔｏｏｔｈ、ＮＦＣ、若しくはＢＴＬＥなどの直接通信接続を介して、又はローカルＷｉ−Ｆｉネットワークなどの有線ネットワーク若しくは無線ネットワークを介して、第２のユーザデバイス１２２に通信可能に結合するように構成されてもよい。いくつかの実施例では、第２のユーザデバイス１２２は、ユーザデバイス１０４とＤＡサーバ１０６との間のプロキシとして作用するように構成されてもよい。例えば、ユーザデバイス１０４のＤＡクライアント１０２は、第２のユーザデバイス１２２を介して、情報（例えば、ユーザデバイス１０４において受信されたユーザ要求）をＤＡサーバ１０６に送信するように構成されてもよい。Ｄａサーバ１０６は情報を処理することができ、第２のユーザデバイス１２２を介して、関連データ（例えば、ユーザ要求に応答したデータコンテンツ）をユーザデバイス１０４に返すことができる。
【００３７】
いくつかの実施例では、ユーザデバイス１０４は、データに対する省略された要求を第２のユーザデバイス１２２に通信して、ユーザデバイス１０４から送信される情報の量を削減するように構成されてもよい。第２のユーザデバイス１２２は、追加情報を判定して、省略された要求に加えて完全な要求を生成し、ＤＡサーバ１０６に送信するように構成されてもよい。このシステムアーキテクチャは、より強い通信能力及び／又はより大きなバッテリ電力を有する第２のユーザデバイス１２２（例えば、携帯電話、ラップトップコンピュータ、又はタブレットコンピュータ）をＤＡサーバ１０６へのプロキシとして使用することによって、限られた通信能力及び／又は限られたバッテリ電力を有するユーザデバイス１０４（例えば、時計又は同様のコンパクト電子デバイス）が、ＤＡサーバ１０６によって提供されるサービスに有利にアクセスすることを可能にすることができる。図１では２つのユーザデバイス１０４及びユーザデバイス１２２のみが示されるが、システム１００は、ＤＡサーバシステム１０６と通信するために、このプロキシ構成で構成されたいずれかの数及びタイプのユーザデバイスを含むことができることを認識されたい。
【００３８】
図１に示されるデジタルアシスタントは、クライアント側部分（例えば、ＤＡクライアント１０２）及びサーバ側部分（例えば、ＤＡサーバ１０６）の両方を含むことができるが、いくつかの実施例では、デジタルアシスタントの機能は、ユーザデバイス上にインストールされるスタンドアロンアプリケーションとして実装されてもよい。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能の分離は実装によって異なってもよい。例えば、いくつかの実施例では、ＤＡクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの全ての他の機能をバックエンドサーバに委ねるシンクライアントとすることができる。
２．電子デバイス
【００３９】
ここで、デジタルアシスタントのクライアント側部分を実装するための電子デバイスの実施形態に注目する。図２Ａは、いくつかの実施形態に従った、タッチ感知ディスプレイシステム２１２を有するポータブル多機能デバイス２００を示すブロック図である。タッチ感知ディスプレイ２１２は、便宜上「タッチスクリーン」と呼ばれる場合があり、「タッチ感知ディスプレイシステム」として既知である場合、又はそのように呼ばれる場合がある。デバイス２００は、メモリ２０２（任意選択的に、１つ以上のコンピュータ可読記憶媒体を含む）、メモリコントローラ２２２、１つ以上の処理ユニット（ＣＰＵ）２２０、周辺機器インタフェース２１８、ＲＦ回路２０８、音声回路２１０、スピーカ２１１、マイクロフォン２１３、入出力（Ｉ／Ｏ）サブシステム２０６、他の入力制御デバイス２１６、及び外部ポート２２４を含む。デバイス２００は、任意選択的に、１つ以上の光センサ２６４を含む。デバイス２００は、任意選択的に、デバイス２００（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２などのタッチ感知面）上の接触の強度を検出するための１つ以上の接触強度センサ２６５を含む。デバイス２００は、任意選択的に、デバイス２００上で触知出力を生成する（例えば、デバイス２００のタッチ感知ディスプレイシステム２１２又はデバイス４００のタッチパッド４５５などのタッチ感知面上で触知出力を生成する）ための１つ以上の触知出力生成器２６７を含む。これらの構成要素は、任意選択的に、１つ以上の通信バス又は信号ライン２０３を介して通信する。
【００４０】
本明細書及び特許請求の範囲で使用されるとき、タッチ感知面上の接触の「強度」という用語は、タッチ感知面上の接触（例えば、指接触）の力若しくは圧力（単位面積当りの力）、又はタッチ感知面上の接触の力若しくは圧力の代替物（代用物）を指す。接触の強度は、少なくとも４つの異なる値を含み、より典型的には、何百もの（例えば、少なくとも２５６個の）異なる値を含む値範囲を有する。接触の強度は、任意選択的に、様々な手法、及び様々なセンサ又はセンサの組合せを使用して判定（又は、測定）される。例えば、タッチ感知面の下に又はこれに隣接する１つ以上の力センサは、任意選択的に、タッチ感知面上の様々な点における力を測定するために使用される。いくつかの実装形態では、複数の力センサからの力測定値は、接触の力の推定値を判定するために組み合わされる（例えば、加重平均）。同様に、スタイラスの感圧性先端部は、任意選択的に、タッチ感知面上のスタイラスの圧力を判定するために使用される。代わりに、タッチ感知面上で検出される接触領域のサイズ及び／若しくはその変化、接触に近接するタッチ感知面の容量及び／若しくはその変化、並びに／又は、接触に近接するタッチ感知面の抵抗及び／若しくはその変化は、任意選択的に、タッチ感知面上の接触の力又は圧力に対する代替物として使用される。いくつかの実装形態では、接触の力又は圧力に対する代替的測定値は、強度閾値を超えているかを判定するために直接使用される（例えば、強度閾値は、代替的測定値に対応する単位で説明される）。いくつかの実装形態では、接触の力又は圧力に対する代替的測定値は、推定される力又は圧力に変換され、推定される力又は圧力は、強度閾値を超えているかを判定するために使用される（例えば、強度閾値は、圧力の単位で測定された圧力閾値である）。接触の強度をユーザ入力の属性として使用することによって、アフォーダンスを表示するための（例えば、タッチ感知ディスプレイ上で）、及び／又は、ユーザ入力を受信するための（例えば、タッチ感知ディスプレイ、タッチ感知面、又はノブ若しくはボタンなどの物理的／機械的制御部を介して）、面積が制限されている、低減されたサイズのデバイス上で別途ユーザによってアクセスすることができないことがある追加的なデバイス機能へのユーザのアクセスが可能となる。
【００４１】
本明細書及び特許請求の範囲で使用されるとき、用語「触知出力」は、ユーザの触覚でユーザによって検出されることになる、デバイスの前の位置に対するデバイスの物理的変位、デバイスの構成要素（例えば、タッチ感知面）のデバイスの別の構成要素（例えば、筐体）に対する物理的変位、又はデバイスの質量中心に対する構成要素の変位を指す。例えば、デバイス又はデバイスの構成要素がタッチに敏感なユーザの表面（例えば、ユーザの手の指、手のひら、又は他の部分）に接触している状況において、物理的変位によって生成された触知出力は、デバイス又はデバイスの構成要素の物理的特性における認識された変化に相当する触感として、ユーザによって解釈される。例えば、タッチ感知面（例えば、タッチ感知ディスプレイ又はトラックパッド）の移動は、任意選択的に、ユーザによって、物理アクチュエータボタンの「ダウンクリック」又は「アップクリック」として解釈される。いくつかのケースでは、ユーザの移動により物理的に押圧された（例えば、変位された）タッチ感知面と関連付けられた物理アクチュエータボタンの移動がないときでさえ、ユーザは「ダウンクリック」又は「アップクリック」などの触知感を感じる。別の実施例として、タッチ感知面の移動は、任意選択的に、タッチ感知面の平滑度において変化がないときでさえ、ユーザによって、タッチ感知面の「粗さ」として解釈又は感知される。そのようなユーザによるタッチの解釈は、ユーザの個人的な感覚認知に左右されるものではあるが、大多数のユーザに共通する、多くのタッチの感覚認知が存在する。よって、触知出力が、ユーザの特定の感覚認知（例えば、「アップクリック」「ダウンクリック」、「粗さ」）に対応するものとして説明されるとき、別途記載のない限り、生成された触知出力は、典型的な（又は、平均的な）ユーザに対する説明された感覚認知を生成するデバイス又はデバイスの構成要素の物理的変位に対応する。
【００４２】
デバイス２００は、ポータブル多機能デバイスの１つの実施例に過ぎず、デバイス２００は、任意選択的に、示されているものよりも多くの構成要素又は少ない構成要素を有し、任意選択的に、２つ以上の構成要素を組合せ、又は任意選択的に、構成要素の異なる構成若しくは配置を有することを認識されたい。図２Ａに示される様々な構成要素は、１つ以上の信号処理回路及び／又は特定用途向け集積回路を含む、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの双方の組合せで実装される。
【００４３】
メモリ２０２は、１つ以上のコンピュータ可読記憶媒体を含んでもよい。このコンピュータ可読記憶媒体は、有形かつ非一時的であってよい。メモリ２０２は、高速ランダムアクセスメモリを含んでもよく、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性ソリッドステートメモリデバイスなどの、不揮発性メモリもまた含んでもよい。メモリコントローラ２２２は、デバイス２００の他の構成要素によるメモリ２０２へのアクセスを制御してよい。
【００４４】
いくつかの実施例では、メモリ２０２の非一時的コンピュータ可読記憶媒体は、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチすることができ、命令を実行することができる他のシステムなどの、命令実行システム、装置、若しくはデバイスによって、又はそれと関連して使用する命令（例えば、以下で説明される処理１２００の態様を実行するための）を記憶するために使用されてもよい。他の実施例では、（例えば、以下で説明される処理１２００の態様を実行するための）命令は、サーバシステム１０８の非一時的コンピュータ可読記憶媒体（図示せず）に記憶されてもよく、又はメモリ２０２の非一時的コンピュータ可読記憶媒体とサーバシステム１０８の非一時的コンピュータ可読記憶媒体との間で分割されてもよい。本文書のコンテキストでは、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、若しくはデバイスによって、又はそれらに関連して使用するためのプログラムを含むことができ、又は記憶することができるいずれかの媒体とすることができる。
【００４５】
周辺機器インタフェース２１８は、デバイスの入力及び出力周辺機器をＣＰＵ２２０及びメモリ２０２に結合するために使用されてもよい。１つ以上のプロセッサ２２０は、デバイス２００のための様々な機能を実行し、データを処理するために、メモリ２０２に記憶された様々なソフトウェアプログラム及び／又は、命令セットを動作させ、又は実行する。いくつかの実施形態では、周辺機器インタフェース２１８、ＣＰＵ２２０、及びメモリコントローラ２２２は、チップ２０４などのシングルチップ上で実装されてもよい。いくつかの他の実施形態では、それらは、別個のチップ上で実装されてもよい。
【００４６】
ＲＦ（radio frequency）（無線周波数）回路２０８は、電磁信号とも呼ばれるＲＦ信号を送受信する。ＲＦ回路２０８は、電気信号を電磁信号に、又は電磁信号を電気信号に変換し、電磁信号を介して通信ネットワーク及び他の通信デバイスと通信する。ＲＦ回路２０８は、任意選択的に、アンテナシステム、ＲＦ送受信機、１つ以上の増幅器、同調器、１つ以上の発振器、デジタル信号プロセッサ、ＣＯＤＥＣチップセット、加入者識別モジュール（ＳＩＭ）カード、及びメモリなどを含むがこれらに限定されない、それらの機能を実行するための周知の回路を含む。ＲＦ回路２０８は、任意選択的に、ワールドワイドウェブ（ＷＷＷ）とも称されるインターネット、イントラネット、並びに／又はセルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）及び／若しくはメトロポリタンエリアネットワーク（ＭＡＮ）などの無線ネットワークなどのネットワークと、他のデバイスと無線通信によって通信する。ＲＦ回路２０８は、任意選択的に、近距離通信無線などによる近距離無線通信（ＮＦＣ）フィールドを検出するための周知の回路を含む。無線通信は、任意選択的に、移動通信用のグローバルシステム（Global System for Mobile Communications、ＧＳＭ）、拡張データＧＳＭ環境（Enhanced Data GSM Environment、ＥＤＧＥ）、高速ダウンリンクパケットアクセス（high−speed downlink packet access、ＨＳＤＰＡ）、高速アップリンクパケットアクセス（high−speed uplink packet access、ＨＳＵＰＡ）、Ｅｖｏｌｕｔｉｏｎ，Ｄａｔａ−Ｏｎｌｙ（ＥＶ−ＤＯ）、ＨＳＰＡ、ＨＳＰＡ＋、２重セルＨＳＰＡ（Dual−Cell HSPDA、ＤＣ−ＨＳＰＤＡ）、ロングタームエボリューション（long term evolution、ＬＴＥ）、近距離通信（near field communication、ＮＦＣ）、広帯域符号分割多元接続（wideband code division multiple access、Ｗ−ＣＤＭＡ）、符号分割多元接続（code division multiple access、ＣＤＭＡ）、時分割多元接続（time division multiple access、ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、Ｂｌｕｅｔｏｏｔｈ  Ｌｏｗ  Ｅｎｅｒｇｙ（ＢＴＬＥ）、Ｗｉｒｅｌｅｓｓ  Ｆｉｄｅｌｉｔｙ（Ｗｉ−Ｆｉ）（例えば、ＩＥＥＥ８０２．１１ａ、ＩＥＥＥ８０２．１１ｂ、ＩＥＥＥ８０２．１１ｇ、ＩＥＥＥ８０２．１１ｎ、及び／若しくはＩＥＥＥ８０２．１１ａｃ）、ボイスオーバーインターネットプロトコル（voice over Internet Protocol、ＶｏＩＰ）、Ｗｉ−ＭＡＸ、電子メール用のプロトコル（例えば、インターネットメッセージアクセスプロトコル（Internet message access protocol、ＩＭＡＰ）及び／若しくはポストオフィスプロトコル（post office protocol、ＰＯＰ））、インスタントメッセージング（例えば、拡張可能メッセージング及びプレゼンスプロトコル（extensible messaging and Presence Leveraging Extensions、ＸＭＰＰ）、インスタントメッセージング及びプレゼンス利用拡張向けセッション開始プロトコル（Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions、ＳＩＭＰＬＥ）、インスタントメッセージング及びプレゼンスサービス（Instant Messaging and Presence Service、ＩＭＰＳ））、及び／若しくはショートメッセージサービス（Short Message Service、ＳＭＳ）、又は本文書の出願日現在までにまだ開発されていない通信プロトコルを含むいずれかの他の適切な通信プロトコルを含むがこれらに限定されない、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用する。
【００４７】
音声回路２１０、スピーカ２１１、及びマイクロフォン２１３は、ユーザとデバイス２００との間の音声インタフェースを提供する。音声回路２１０は、周辺機器インタフェース２１８から音声データを受信し、この音声データを電気信号に変換し、電気信号をスピーカ２１１に送信する。スピーカ２１１は、電気信号を人間の可聴音波に変換する。音声回路２１０はまた、マイクロフォン２１３により音波から変換された電気信号を受信する。音声回路２１０は、電気信号を音声データに変換し、音声データを処理のために周辺機器インタフェース２１８に送信する。音声データは、周辺機器インタフェース２１８によって、メモリ２０２及び／若しくはＲＦ回路２０８から取り出されてもよく、並びに／又はメモリ２０２及び／若しくはＲＦ回路２０８に送信されてもよい。いくつかの実施形態では、音声回路２１０はまた、ヘッドセットジャック（例えば、図３の３１２）を含む。ヘッドセットジャックは、音声回路２１０と、出力専用ヘッドホン又は出力（例えば、片耳又は両耳用のヘッドホン）及び入力（例えば、マイクロフォン）の双方を有するヘッドセットなどの取り外し可能な音声入出力周辺機器との間のインタフェースを提供する。
【００４８】
Ｉ／Ｏサブシステム２０６は、周辺機器インタフェース２１８に、タッチスクリーン２１２及び他の入力制御デバイス２１６などのデバイス２００の入出力周辺機器を接続する。Ｉ／Ｏサブシステム２０６は、任意選択的に、ディスプレイコントローラ２５６、光センサコントローラ２５８、強度センサコントローラ２５９、触覚フィードバックコントローラ２６１、及び他の入力若しくは制御デバイスのための１つ以上の入力コントローラ２６０を含む。１つ以上の入力コントローラ２６０は、他の入力制御デバイス２１６との間で、電気信号を受信／送信する。他の入力制御デバイス２１６は、任意選択的に、物理ボタン（例えば、プッシュボタン、ロッカーボタンなど）、ダイヤル、スライダスイッチ、ジョイスティック、及びクリックホイールなどを含む。いくつかの代替的実施形態では、入力コントローラ（単数又は複数）２６０は、任意選択的に、キーボード、赤外線ポート、ＵＳＢポート、及びマウスなどのポインタデバイスのうちのいずれかに接続される（又は、いずれにも接続されない）。１つ以上のボタン（例えば、図３の３０８）は、任意選択的に、スピーカ２１１及び／又はマイクロフォン２１３の音量調節のための、アップ／ダウンボタンを含む。１つ以上のボタンは、任意選択的に、プッシュボタン（例えば、図３の３０６）を含む。
【００４９】
その全体が参照により本明細書に組み込まれる、２００５年１２月２３日に出願された米国特許第７，６５７，８４９号である米国特許出願第１１／３２２，５４９号、「Ｕｎｌｏｃｋｉｎｇ  ａ  Ｄｅｖｉｃｅ  ｂｙ  Ｐｅｒｆｏｒｍｉｎｇ  Ｇｅｓｔｕｒｅｓ  ｏｎ  ａｎ  Ｕｎｌｏｃｋ  Ｉｍａｇｅ」に記載されているように、プッシュボタンの素早い押圧は、タッチスクリーン２１２のロックを解除し、又はデバイスのロックを解除するためにタッチスクリーン上のジェスチャを使用する処理を開始することができる。プッシュボタン（例えば、３０６）のより長く押圧は、デバイス２００の電源をオン又はオフすることができる。ユーザは、１つ以上のボタンの機能をカスタマイズすることができる。タッチスクリーン２１２は、仮想又はソフトボタン、及び１つ以上のソフトキーボードを実装するために使用される。
【００５０】
タッチ感知ディスプレイ２１２は、デバイスとユーザとの間の入力インタフェース及び出力インタフェースを提供する。ディスプレイコントローラ２５６は、タッチスクリーン２１２から電気信号を受信し、及び／又はタッチスクリーン２１２に電気信号を送信する。タッチスクリーン２１２は、ユーザに視覚出力を表示する。視覚出力は、グラフィック、テキスト、アイコン、ビデオ、及びそれらのいずれかの組合せ（「グラフィック」と総称される）を含んでもよい。いくつかの実施形態では、視覚出力の一部又は全てはユーザインタフェースオブジェクトに対応してもよい。
【００５１】
タッチスクリーン２１２は、触覚及び／若しくは触知の接触に基づくユーザからの入力を受け付けるタッチ感知面、センサ、又はセンサのセットを有する。タッチスクリーン２１２及びディスプレイコントローラ２５６は（メモリ２０２内のいずれかの関連モジュール及び／又は、命令セットと共に）、タッチスクリーン２１２上で接触（及びいずれかの接触の移動又は中断）を検出し、検出された接触をタッチスクリーン２１２上で表示されたユーザインタフェースオブジェクト（例えば、１つ以上のソフトキー、アイコン、ウェブページ、又は画像）との対話に変換する。例示的な実施形態では、タッチスクリーン２１２とユーザとの間の接触点は、ユーザの指に対応する。
【００５２】
タッチスクリーン２１２は、ＬＣＤ（liquid crystal display、液晶ディスプレイ）技術、ＬＰＤ（light emitting polymer display、発光ポリマーディスプレイ）技術、又はＬＥＤ（light emitting diode、発光ダイオード）技術を使用してもよいが、他の実施形態では、その他のディスプレイ技術が使用されてもよい。タッチスクリーン２１２及びディスプレイコントローラ２５６は、現在既知の、又は今後開発される複数のタッチ感知技術のうちのいずれかを使用して、接触、及びその接触のあらゆる移動又はは中断を検出することができ、これらの技術は、静電容量技術、抵抗性技術、赤外線技術、及び表面弾性波技術、並びにタッチスクリーン２１２との１つ以上の接触点を判定するための他の近接センサアレイ又は他の要素を含むがこれらに限定されない。例示的な実施形態では、Ａｐｐｌｅ  Ｉｎｃ．（Ｃｕｐｅｒｔｉｎｏ，Ｃａｌｉｆｏｒｎｉａ）による、ｉＰｈｏｎｅ（登録商標）及びｉＰｏｄ  Ｔｏｕｃｈ（登録商標）において見られるような、投影型相互静電容量感知技術が使用されている。
【００５３】
その各々が、その全体が参照により本明細書に組み込まれる、タッチスクリーン２１２のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の米国特許第６，３２３，８４６号（Ｗｅｓｔｅｒｍａｎら）、同第６，５７０，５５７号（Ｗｅｓｔｅｒｍａｎら）、及び／又は同第６，６７７，９３２号（Ｗｅｓｔｅｒｍａｎ）、及び／又は米国特許出願公開第２００２／００１５０２４（Ａ１）号に記載されているマルチタッチ感知タッチパッドと同様であってもよい。しかしながら、タッチスクリーン２１２はデバイス２００からの視覚出力を表示するのに対して、タッチ感知タッチパッドは視覚出力を提供しない。
【００５４】
タッチスクリーン２１２のいくつかの実施形態におけるタッチ感知ディスプレイは、以下の出願で説明されているとおりにすることができる。（１）２００６年５月２日に出願された米国特許出願第１１／３８１，３１３号、「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈ  Ｓｕｒｆａｃｅ  Ｃｏｎｔｒｏｌｌｅｒ」、（２）２００４年５月６日に出願された同第１０／８４０，８６２号、「Ｍｕｌｔｉｐｏｉｎｔ  Ｔｏｕｃｈｓｃｒｅｅｎ」、（３）２００４年７月３０日に出願された同第１０／９０３，９６４号、「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（４）２００５年１月３１日に出願された同第１１／０４８，２６４号、「Ｇｅｓｔｕｒｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（５）２００５年１月１８日に出願された同第１１／０３８，５９０号、「Ｍｏｄｅ−Ｂａｓｅｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅｓ  Ｆｏｒ  Ｔｏｕｃｈ  Ｓｅｎｓｉｔｉｖｅ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅｓ」、（６）２００５年９月１６日に出願された同第１１／２２８，７５８号、「Ｖｉｒｔｕａｌ  Ｉｎｐｕｔ  Ｄｅｖｉｃｅ  Ｐｌａｃｅｍｅｎｔ  Ｏｎ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ」、（７）２００５年９月１６日に出願された同第１１／２２８，７００号、「Ｏｐｅｒａｔｉｏｎ  Ｏｆ  Ａ  Ｃｏｍｐｕｔｅｒ  Ｗｉｔｈ  Ａ  Ｔｏｕｃｈ  Ｓｃｒｅｅｎ  Ｉｎｔｅｒｆａｃｅ」、（８）２００５年９月１６日に出願された同第１１／２２８，７３７号、「Ａｃｔｉｖａｔｉｎｇ  Ｖｉｒｔｕａｌ  Ｋｅｙｓ  Ｏｆ  Ａ  Ｔｏｕｃｈ−Ｓｃｒｅｅｎ  Ｖｉｒｔｕａｌ  Ｋｅｙｂｏａｒｄ」、及び（９）２００６年３月３日に出願された同第１１／３６７，７４９号、「Ｍｕｌｔｉ−Ｆｕｎｃｔｉｏｎａｌ  Ｈａｎｄ−Ｈｅｌｄ  Ｄｅｖｉｃｅ」。これらの出願の全ては、その全体が参照により本明細書に組み込まれる。
【００５５】
タッチスクリーン２１２は、１００ｄｐｉを超えるビデオ解像度を有してもよい。いくつかの実施形態では、タッチスクリーンは約１６０ｄｐｉのビデオ解像度を有する。ユーザは、スタイラス及び指などのいずれかの適切な物体又は付属物を使用して、タッチスクリーン２１２と接触することができる。いくつかの実施形態では、ユーザインタフェースは、主として指に基づく接触とジェスチャと作用するように設計され、タッチスクリーン上の指の接触面積が広いことに起因して、スタイラスを基準とした入力よりも精度が低いことがある。いくつかの実施形態では、デバイスは、指に基づく粗い入力を正確なポインタ／カーソル位置又はユーザの望むアクションを実行するためのコマンドに変換する。
【００５６】
いくつかの実施形態では、タッチスクリーンに加えて、デバイス２００は、特定の機能をアクティブ化又は非アクティブ化させるためのタッチパッド（図示せず）を含んでもよい。いくつかの実施形態では、タッチパッドは、タッチスクリーンとは異なり、視覚出力を表示しないデバイスのタッチ感知領域である。タッチパッドは、タッチスクリーン２１２とは別個のタッチ感知面、又はタッチスクリーンによって形成されるタッチ感知面の拡張部であってもよい。
【００５７】
デバイス２００はまた、様々な構成要素に電力を供給するための電力システム２６２を含む。電力システム２６２は、電力管理システム、１つ以上の電源（例えば、バッテリ、交流（ＡＣ））、再充電システム、停電検出回路、電力コンバータ又はインバータ、電力状態インジケータ（例えば、発光ダイオード（ＬＥＤ））、並びにポータブルデバイスにおける電力の生成、管理、及び分配に関連するいずれかの他の構成要素を含んでもよい。
【００５８】
デバイス２００はまた、１つ以上の光センサ２６４を含んでもよい。図２Ａは、Ｉ／Ｏサブシステム２０６における光センサコントローラ２５８に結合された光センサを示す。光センサ２６４は、電荷結合デバイス（ＣＣＤ）又は相補的金属酸化物半導体（ＣＭＯＳ）フォトトランジスタを含んでもよい。光センサ２６４は、１つ以上のレンズを通じて投影された、環境からの光を受光し、画像を表すデータに光を変換する。撮像モジュール２４３（カメラモジュールとも呼ばれる）と連携して、光センサ２６４は、静止画像又はビデオをキャプチャしてもよい。いくつかの実施形態では、光センサは、タッチスクリーンディスプレイを静止画像及び／又はビデオ画像取得のためのビューファインダとして使用することができるように、デバイスの前面のタッチスクリーンディスプレイ２１２の反対側である、デバイス２００の背面に光センサに位置する。いくつかの実施形態では、光センサは、ユーザが他のビデオ会議参加者をタッチスクリーンディスプレイ上で見る間にユーザの画像をビデオ会議のために取得することができるように、デバイスの前面に位置する。いくつかの実施形態では、光センサ２６４の位置は、ビデオ会議並びに静止画像及び／又はビデオ画像の取得の双方のために単一の光センサ２６４をタッチスクリーンディスプレイと共に使用することができるように、ユーザによって（例えば、デバイス筐体内のレンズ及びセンサを回転させることによって）変更されてもよい。
【００５９】
デバイス２００はまた、任意選択的に、１つ以上の接触強度センサ２６５を含む。図２Ａは、Ｉ／Ｏサブシステム２０６における強度センサコントローラ２５９に結合された接触強度センサを示す。接触強度センサ２６５は、任意選択的に、１つ以上のピエゾ抵抗ひずみゲージ、電気容量式力センサ、電気力センサ、圧電力センサ、光学力センサ、容量式タッチ感知面、又は他の強度センサ（例えば、タッチ感知面上の接触の力（又は圧力）を測定するために使用するセンサ）を含む。接触強度センサ２６５は、環境から接触強度情報（例えば、圧力情報又は圧力情報のプロキシ）を受信する。いくつかの実施形態では、少なくとも１つの接触強度センサが、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に配置され、又はそれに近接している。いくつかの実施形態では、少なくとも１つの接触強度センサが、デバイス２００の前面に位置するタッチスクリーンディスプレイ２１２の反対側である、デバイス２００の背面に位置する。
【００６０】
デバイス２００はまた、１つ以上の近接センサ２６６を含んでもよい。図２Ａは、周辺機器インタフェース２１８と結合された近接センサ２６６を示す。代わりに、近接センサ２６６は、Ｉ／Ｏサブシステム２０６における入力コントローラ２６０に結合されてもよい。近接センサ２６６は、その全体が参照により本明細書に組み込まれる、米国特許出願第１１／２４１，８３９号、「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、同第１１／２４０，７８８号、「Ｐｒｏｘｉｍｉｔｙ  Ｄｅｔｅｃｔｏｒ  Ｉｎ  Ｈａｎｄｈｅｌｄ  Ｄｅｖｉｃｅ」、同第１１／６２０，７０２号、「Ｕｓｉｎｇ  Ａｍｂｉｅｎｔ  Ｌｉｇｈｔ  Ｓｅｎｓｏｒ  Ｔｏ  Ａｕｇｍｅｎｔ  Ｐｒｏｘｉｍｉｔｙ  Ｓｅｎｓｏｒ  Ｏｕｔｐｕｔ」、同第１１／５８６，８６２号、「Ａｕｔｏｍａｔｅｄ  Ｒｅｓｐｏｎｓｅ  Ｔｏ  Ａｎｄ  Ｓｅｎｓｉｎｇ  Ｏｆ  Ｕｓｅｒ  Ａｃｔｉｖｉｔｙ  Ｉｎ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅｓ」、及び同第１１／６３８，２５１号、「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ｓｙｓｔｅｍｓ  Ｆｏｒ  Ａｕｔｏｍａｔｉｃ  Ｃｏｎｆｉｇｕｒａｔｉｏｎ  Ｏｆ  Ｐｅｒｉｐｈｅｒａｌｓ」で説明されるように実行してもよい。いくつかの実施形態では、近接センサは、多機能デバイスがユーザの耳の近くに配置されるとき（例えば、ユーザが電話で通話しているとき）、タッチスクリーン２１２をオフにし、無効化する。
【００６１】
デバイス２００はまた、任意選択的に、１つ以上の触知出力生成器２６７を含む。図２Ａでは、Ｉ／Ｏサブシステム２０６における触覚フィードバックコントローラ２６１に結合された触知出力生成器を示す。触知出力生成器２６７は、スピーカ若しくは他の音声構成要素などの１つ以上の電気音響デバイス、及び／又はモータ、ソレノイド、電気活性ポリマー、圧電アクチュエータ、静電アクチュエータ、若しくは他の触知出力生成構成要素（例えば、デバイス上で電気信号を触知出力に変換する構成要素）など、エネルギーを直線運動に変換する電気機械デバイスを任意選択的に含む。接触強度センサ２６５は、触覚フィードバックモジュール２３３から触覚フィードバック生成命令を受信し、触知出力をデバイス２００のユーザが感知することができるデバイス２００上で生成する。いくつかの実施形態では、少なくとも１つの触知出力生成器は、タッチ感知面（例えば、タッチ感知ディスプレイシステム２１２）に配置され、又はそれに近接しており、任意選択的に、タッチ感知面を垂直方向（例えば、デバイス２００の表面の内／外）又は横方向（例えば、デバイス２００の表面と同一の平面内の前後）に移動させることによって触知出力を生成する。いくつかの実施形態では、少なくとも１つの触知出力生成器センサは、デバイス２００の前面に位置するタッチスクリーンディスプレイ２１２の反対側である、デバイス２００の背面に位置する。
【００６２】
デバイス２００はまた、１つ以上の加速度計２６８を含んでもよい。図２Ａは、周辺機器インタフェース２１８に結合された加速度計２６８を示す。代わりに、加速度計２６８は、Ｉ／Ｏサブシステム２０６における入力コントローラ２６０に連結されてもよい。加速度計２６８は、その双方が、その全体が参照により本明細書に組み込まれる、米国特許出願公開第２００５０１９００５９号、「Ａｃｃｅｌｅｒａｔｉｏｎ−ｂａｓｅｄ  Ｔｈｅｆｔ  Ｄｅｔｅｃｔｉｏｎ  Ｓｙｓｔｅｍ  ｆｏｒ  Ｐｏｒｔａｂｌｅ  Ｅｌｅｃｔｒｏｎｉｃ  Ｄｅｖｉｃｅｓ」、及び同第２００６００１７６９２号、「Ｍｅｔｈｏｄｓ  Ａｎｄ  Ａｐｐａｒａｔｕｓｅｓ  Ｆｏｒ  Ｏｐｅｒａｔｉｎｇ  Ａ  Ｐｏｒｔａｂｌｅ  Ｄｅｖｉｃｅ  Ｂａｓｅｄ  Ｏｎ  Ａｎ  Ａｃｃｅｌｅｒｏｍｅｔｅｒ」で説明されるように実行してもよい。いくつかの実施形態では、情報は、１つ以上の加速度計から受信されたデータの分析に基づいて、縦長表示又は横長表示でタッチスクリーンディスプレイ上で表示される。デバイス２００は、任意選択的に、加速度計（単数又は複数）２６８に加えて、磁気計（図示せず）及びデバイス２００の位置及び向き（例えば、縦長又は横長）に関する情報を取得するためのＧＰＳ（又はＧＬＯＮＡＳＳ又は他のグローバルナビゲーションシステム）受信部（図示せず）を含む。
【００６３】
いくつかの実施形態では、メモリ２０２に記憶されたソフトウェア構成要素は、オペレーティングシステム２２６、通信モジュール（又は、命令セット）２２８、接触／動きモジュール（又は、命令セット）２３０、グラフィックモジュール（又は、命令セット）２３２、テキスト入力モジュール（又は、命令セット）２３４、全地球測位システム（ＧＰＳ）モジュール（又は、命令セット）２３５、デジタルアシスタントクライアントモジュール２２９、及びアプリケーション（又は、命令セット）２３６を含む。更に、メモリ２０２は、ユーザデータ及びモデル２３１などのデータ及びモデルを記憶することができる。更に、いくつかの実施形態では、図２Ａ及び図４に示されるように、メモリ２０２（図２Ａ）又はメモリ４７０（図４）は、デバイス／グローバル内部状態２５７を記憶する。デバイス／グローバル内部状態２５７は、現在アクティブ状態のアプリケーションがある場合、どのアプリケーションがアクティブかを示すアクティブアプリケーション状態、どのアプリケーション、ビュー、又は他の情報がタッチスクリーンディスプレイ２１２の様々な領域を占領しているかを示す表示状態、デバイスの様々なセンサ及び入力制御デバイス２１６から得られる情報を含むセンサ状態、及びデバイスの位置及び／又は姿勢に関する位置情報のうちの１つ以上を含む。
【００６４】
オペレーティングシステム２２６（例えば、Ｄａｒｗｉｎ、ＲＴＸＣ、ＬＩＮＵＸ、ＵＮＩＸ、ＯＳ  Ｘ、ｉＯＳ、ＷＩＮＤＯＷＳ、又はＶｘＷｏｒｋｓなどの組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶デバイス制御、電力管理など）を制御及び管理するための様々なソフトウェア構成要素及び／又はドライバを含み、様々なハードウェア構成要素とソフトウェア構成要素との間の通信を促進する。
【００６５】
通信モジュール２２８は、１つ以上の外部ポート２２４を通じて他のデバイスとの通信を促進し、ＲＦ回路２０８及び／又は外部ポート２２４によって受信されたデータを処理するための様々なソフトウェア構成要素をも含む。外部ポート２２４（例えば、ユニバーサルシリアルバス（Universal Serial Bus）（ＵＳＢ）、ＦＩＲＥＷＩＲＥなど）は、直接的に、又はネットワーク（例えば、インターネット、無線ＬＡＮなど）を通じて間接的に他のデバイスに結合するように適応している。いくつかの実施形態では、外部ポートは、ｉＰｏｄ（登録商標）（Ａｐｐｌｅ  Ｉｎｃ．の商標）デバイス上で使用される３０ピンコネクタと同一の若しくは同様のマルチピン（例えば、３０ピン）コネクタ、及び／又は互換性のあるマルチピン（例えば、３０ピン）コネクタである。
【００６６】
接触／動きモジュール２３０は、任意選択的に、（ディスプレイコントローラ２５６と連携して）タッチスクリーン２１２との接触、及び他のタッチ感知デバイス（例えば、タッチパッド又は物理クリックホイール）との接触を検出する。接触／動きモジュール２３０は、接触が生じたかを判定すること（例えば、指を下ろすイベントを検出すること）、接触の強度（例えば、接触の力若しくは圧力、又は接触の力若しくは圧力の代替物）を判定すること、接触の移動が存在するかを判定し、タッチ感知面を横断する移動を追跡すること（例えば、指をドラッグする１つ以上のイベントを検出すること）、及び接触が停止したかを判定すること（例えば、指を上げるイベント又は接触の中断を検出すること）など、接触の検出に関する様々な動作を実行するための様々なソフトウェア構成要素を含む。接触／動きモジュール２３０は、タッチ感知面から接触データを受信する。一連の接触データにより表される接触点の移動を判定することは、任意選択的に、接触点の速さ（大きさ）、速度（大きさ及び方向）、並びに／又は加速度（大きさ及び／又は方向における変化）を判定することを含む。これらの動作は、任意選択的に、単一の接触（例えば、１本の指の接触）又は複数の同時接触（例えば、「マルチタッチ」／複数の指の接触）に適用される。いくつかの実施形態では、接触／動きモジュール２３０及びディスプレイコントローラ２５６は、タッチパッド上の接触を検出する。
【００６７】
いくつかの実施形態では、接触／動きモジュール２３０は、ユーザによって動作が実行されたか判定するための（例えば、ユーザがアイコン上で「クリック」したかを判定するための）、１つ以上の強度閾値のセットを使用する。いくつかの実施形態では、少なくとも強度閾値のサブセットは、ソフトウェアパラメータに従って判定される（例えば、強度閾値は、特定の物理アクチュエータのアクティブ化閾値によって判定されず、デバイス２００の物理ハードウェアを変更することなく調節されてもよい）。例えば、トラックパッド又はタッチスクリーンディスプレイのマウス「クリック」閾値は、トラックパッド又はタッチスクリーンディスプレイのハードウェアを変更することなく、広範囲の予め定義された閾値のうちのいずれかに設定されてもよい。加えて、いくつかの実装形態では、デバイスのユーザは、強度閾値の組のうちの１つ以上を調節するためのソフトウェア設定が提供される（例えば、個々の強度閾値を調節することによって、及び／又はシステムレベルのクリック「強度」パラメータで一度に複数の強度閾値を調節することによって）。
【００６８】
接触／動きモジュール２３０は、任意選択的に、ユーザによるジェスチャ入力を検出する。タッチ感知面上の異なるジェスチャは、異なる接触パターン（例えば、検出される接触の異なる動き、タイミング、及び／又は強度）を有する。よって、ジェスチャは、任意選択的に、特定の接触パターンを検出することによって検出される。例えば、指のタップジェスチャを検出することは、（例えば、アイコンの位置における）指を下ろすイベントを検出し、続いてその指を下ろすイベントと同一の位置（又は、実質的に同一の位置）において指を上げる（リフトオフ）イベントを検出することを含む。別の実施例として、タッチ感知面上で指のスワイプジェスチャを検出することは、指を下ろすイベントを検出し、続いて、１つ以上の、指をドラッグするイベントを検出し、その後、続いて指を上げる（リフトオフ）イベントを検出することを含む。
【００６９】
グラフィックモジュール２３２は、表示されるグラフィックの視覚的効果（例えば、輝度、透明度、彩度、コントラスト、又は他の視覚特性）を変更するための構成要素を含む、タッチスクリーン２１２又は他のディスプレイ上でグラフィックをレンダリング及び表示するための様々な既知のソフトウェア構成要素を含む。本明細書で使用されるとき、用語「グラフィック」は、テキスト、ウェブページ、アイコン（ソフトキーを含むユーザインタフェースオブジェクトなど）、デジタル画像、ビデオ、及びアニメーションなどを含むがこれらに限定されない、ユーザに対して表示することができるいずれかのオブジェクトを含む。
【００７０】
いくつかの実施形態では、グラフィックモジュール２３２は、使用されることになるグラフィックを表すデータを記憶する。各々のグラフィックは、任意選択的に、対応するコードが割り当てられる。グラフィックモジュール２３２は、アプリケーションなどから、必要に応じて、座標データ及び他のグラフィック特性データと共に表示されることとなるグラフィックを指定する１つ以上のコードを受信し、次いで、ディスプレイコントローラ２５６に出力するスクリーンの画像データを生成する。
【００７１】
触覚フィードバックモジュール２３３は、デバイス２００とのユーザ対話に応じて、デバイス２００上の１つ以上の位置において触知出力を生成するために、触知出力生成器（単数又は複数）２６７によって使用される命令を生成するための、様々なソフトウェア構成要素を含む。
【００７２】
テキスト入力モジュール２３４は、グラフィックモジュール２３２の構成要素とすることができ、様々なアプリケーション（例えば、連絡先２３７、電子メール２４０、ＩＭ２４１、ブラウザ２４７、及びテキスト入力を必要とするいずれかの他のアプリケーション）でテキストを入力するためのソフトキーボードを提供する。
【００７３】
ＧＰＳモジュール２３５は、デバイスの位置を判定し、この情報を様々なアプリケーションで使用するために提供する（例えば、位置に基づく電話にて使用するために電話２３８へ、写真／ビデオメタデータとしてカメラ２４３へ、及び、天気ウィジェット、ローカルイエローページウィジェット、及びマップ／ナビゲーションウィジェットなどの、位置に基づくサービスを提供するアプリケーションへ）。
【００７４】
デジタルアシスタントクライアントモジュール２２９は、デジタルアシスタントのクライアント側機能性を提供するための様々なクライアント側デジタルアシスタント命令を含んでもよい。例えば、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の様々なユーザインタフェース（例えば、マイクロフォン２１３、加速度計（単数又は複数）２６８、タッチ感知ディスプレイシステム２１２、光センサ（単数又は複数）２２９、他の入力制御デバイス２１６など）を通じて、音声入力（例えば、発話入力）、テキスト入力、タッチ入力、及び／又はジェスチャ入力を受信する能力を有することができる。デジタルアシスタントクライアントモジュール２２９はまた、ポータブル多機能デバイス２００の様々な出力インタフェース（例えば、スピーカ２１１、タッチ感知ディスプレイシステム２１２、触知出力生成器（単数又は複数）２６７など）を通じて、音声（例えば、発話出力）、視覚、及び／又は触知の形式で出力を提供する能力を有することができる。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び／又は上記の２つ以上の組合せとして提供されてもよい。動作の間、デジタルアシスタントクライアントモジュール２２９は、ＲＦ回路２０８を使用してＤＡサーバ１０６と通信することができる。
【００７５】
ユーザデータ及びモデル２３１は、デジタルアシスタントのクライアント側機能性を提供するための、ユーザと関連付けられた様々なデータ（例えば、ユーザ特有の語彙データ、ユーザ優先度データ、ユーザ特有の名前の発音、ユーザの電子アドレス帳からのデータ、ｔｏ  ｄｏリスト、買い物リストなど）を含んでもよい。更に、ユーザデータ及びモデル２３１は、ユーザ入力を処理し、ユーザの意図を判定するための様々なモデル（例えば、発話認識モデル、統計的言語モデル、自然言語処理モデル、オントロジ、タスクフローモデル、サービスモデルなど）を含んでもよい。
【００７６】
いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９は、ポータブル多機能デバイス２００の周囲環境から追加情報を収集して、ユーザ、現在のユーザ対話、及び／又は現在のユーザ入力と関連付けられたコンテキストを確立するために、ポータブル多機能デバイス２００の様々なセンサ、サブシステム、及び周辺機器を利用することができる。いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９は、ユーザの意図の推測を支援するために、ユーザ入力と共にコンテキスト情報又はそのサブセットをＤＡサーバ１０６に提供することができる。いくつかの実施例では、デジタルアシスタントはまた、ユーザへの出力をどのように準備し、配信するかを判定するために、コンテキスト情報を使用することができる。コンテキスト情報は、コンテキストデータと称されてもよい。
【００７７】
いくつかの実施例では、ユーザ入力を伴うコンテキスト情報は、センサ情報、例えば、照明、周囲ノイズ、周囲温度、周囲環境の画像、又は映像などを含んでもよい。いくつかの実施例では、コンテキスト情報はまた、デバイスの物理状態、例えば、デバイスの向き、デバイスの位置、デバイスの温度、電力レベル、速度、加速度、動きパターン、セルラー信号強度などを含んでもよい。いくつかの実施例では、ＤＡサーバ１０６のソフトウェア状態、例えば、稼働中の処理、インストールされたプログラム、過去及び現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量など、並びにポータブル多機能デバイス２００のソフトウェア状態に関係する情報は、ＤＡサーバ１０６に、ユーザ入力と関連付けられたコンテキスト情報として提供されてもよい。
【００７８】
いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９は、ＤＡサーバ１０６からの要求に応じて、ポータブル多機能デバイス２００に記憶された情報（例えば、ユーザデータ２３１）を選択的に提供することができる。いくつかの実施例では、デジタルアシスタントクライアントモジュール２２９はまた、ＤＡサーバ１０６による要求があると、自然言語ダイアログ又は他のユーザインタフェースを介してユーザから追加入力を引き出すことができる。デジタルアシスタントクライアントモジュール２２９は、ユーザ要求において表されるユーザの意図の意図推論及び／又は履行においてＤＡサーバ１０６を支援するために、追加入力をＤＡサーバ１０６に渡すことができる。
【００７９】
デジタルアシスタントの更なる詳細な説明は、図７Ａ〜Ｃを参照して以下で説明される。デジタルアシスタントクライアントモジュール２２９は、以下で説明されるデジタルアシスタント７２６のいずれかの数のサブモジュールを含むことができることを認識されるべきである。
【００８０】
アプリケーション２３６は、以下のモジュール（又は、命令セット）、又はそれらのサブセット若しくはスーパーセットを含んでもよい。
●連絡先モジュール２３７（アドレス帳又は連絡先リストと呼ばれる場合がある）、
●電話モジュール２３８、
●ビデオ会議モジュール２３９、
●電子メールクライアントモジュール２４０、
●インスタントメッセージング（ＩＭ）モジュール２４１、
●トレーニングサポートモジュール２４２、
●静止画像及び／又はビデオ画像用のカメラモジュール２４３、
●画像管理モジュール２４４、
●ビデオプレーヤモジュール、
●音楽プレーヤモジュール、
●ブラウザモジュール２４７、
●カレンダモジュール２４８、
●天気ウィジェット２４９−１、株式ウィジェット２４９−２、計算機ウィジェット２４９−３、アラーム時計ウィジェット２４９−４、辞書ウィジェット２４９−５、及びユーザによって取得された他のウィジェット、並びにユーザ作成ウィジェット２４９−６のうちの１つ以上を含むことができる、ウィジェットモジュール２４９、
●ユーザ作成ウィジェット２４９−６を作成するためのウィジェットクリエータモジュール２５０、
●検索モジュール２５１、
●ビデオプレーヤモジュール及び音楽プレーヤモジュールを統合した、ビデオ及び音楽プレーヤモジュール２５２、
●メモモジュール２５３、
●マップモジュール２５４、並びに／又は
●オンラインビデオモジュール２５５。
【００８１】
メモリ２０２に記憶することができる他のアプリケーション２３６の例は、他のワードプロセッシングアプリケーション、他の画像編集アプリケーション、描画アプリケーション、プレゼンテーションアプリケーション、ＪＡＶＡ対応アプリケーション、暗号化、デジタル著作権管理、音声認識、及び音声複製を含む。
【００８２】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、連絡先モジュール２３７は、アドレス帳に名前（単数又は複数）を追加すること、アドレス帳から名前（単数又は複数）を削除すること、電話番号（単数又は複数）、電子メールアドレス（単数又は複数）、住所（単数又は複数）、又は他の情報を名前と関連付けること、画像を名前と関連付けること、名前を分類及び並べ替えること、電話番号又は電子メールアドレスを提供して、電話２３８、ビデオ会議モジュール２３９、電子メール２４０、若しくはＩＭ２４１による通信を開始する及び／又は容易にすることなどを含む、（例えば、メモリ２０２又はメモリ４７０における連絡先モジュール２３７のアプリケーション内部状態２９２に記憶される）アドレス帳又は連絡先リストを管理するために使用されてもよい。
【００８３】
ＲＦ回路２０８、音声回路２１０、スピーカ２１１、マイクロフォン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、電話モジュール２３８は、電話番号に対応する一連の文字を入力し、連絡先モジュール２３７における１つ以上の電話番号にアクセスし、入力された電話番号を修正し、それぞれの電話番号をダイヤルし、会話を行い、会話が完了したときに接続を切り、又は電話を切るために使用されてもよい。上述したように、無線通信は、複数の通信規格、プロトコル、及び信技術のうちのいずれかを使用してもよい。
【００８４】
ＲＦ回路２０８、音声回路２１０、スピーカ２１１、マイクロフォン２１３、タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、連絡先モジュール２３７、及び電話モジュール２３８と連携して、ビデオ会議モジュール２３９は、ユーザの命令に従って、ユーザと１人以上の他の参加者との間のビデオ会議を開始、遂行、及び終了する実行可能命令を含む。
【００８５】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、電子メールクライアントモジュール２４０は、ユーザの指示に応じて、電子メールを作成、送信、受信、及び管理する実行可能命令を含む。画像管理モジュール２４４と連携して、電子メールクライアントモジュール２４０は、カメラモジュール２４３で撮影された静止画像又はビデオ画像を有する電子メールを作成及び送信することを非常に容易にする。
【００８６】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、インスタントメッセージングモジュール２４１は、インスタントメッセージに対応する文字列を入力し、前に入力された文字を修正し、（例えば、電話ベースのインスタントメッセージのためのショートメッセージサービス（ＳＭＳ）若しくはマルチメディアメッセージサービス（ＭＭＳ）プロトコルを使用して、又はインターネットベースのインスタントメッセージのためのＸＭＰＰ、ＳＩＭＰＬＥ、若しくはＩＭＰＳを使用して）対応するインスタントメッセージを送信し、インスタントメッセージを受信し、受信されたインスタントメッセージを参照する実行可能命令を含む。いくつかの実施形態では、送信及び／又は受信されたインスタントメッセージは、ＭＭＳ及び／又は拡張メッセージングサービス（Enhanced Messaging Service、ＥＭＳ）でサポートされるような、グラフィック、写真、音声ファイル、ビデオファイル、及び／又は他の添付ファイルを含んでもよい。本明細書で使用するとき、「インスタントメッセージ」は、電話に基づくメッセージ（例えば、ＳＭＳ又はＭＭＳを使用して送信されるメッセージ）及びインターネットに基づくメッセージ（例えば、ＸＭＰＰ、ＳＩＭＰＬＥ、又はＩＭＰＳを使用して送信されるメッセージ）の双方を指す。
【００８７】
ＲＦ回路２０８、タッチ画面２１２、ディスプレイコントローラ２５６、接触／動作モジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、マップモジュール２５４、及び音楽プレーヤモジュールと連携して、トレーニングサポートモジュール２４２は、（例えば、時間、距離、及び／又はカロリー消費目標を有する）トレーニングを生成し、トレーニングセンサ（スポーツデバイス）と通信し、トレーニングセンサデータを受信し、トレーニングをモニタするために使用されるセンサを較正し、トレーニングのための音楽を選択及び再生し、トレーニングデータを表示、記憶、及び送信する実行可能命令を含む。
【００８８】
タッチスクリーン２１２、ディスプレイコントローラ２５６、光センサ（単数又は複数）２６４、光センサコントローラ２５８、接触／動きモジュール２３０、グラフィックモジュール２３２、及び画像管理モジュール２４４と連携して、カメラモジュール２４３は、静止画像又は（ビデオストリームを含む）ビデオをキャプチャし、メモリ２０２にそれらを記憶し、静止画像又はビデオの特性を変更し、又はメモリ２０２から静止画像若しくはビデオを削除する実行可能命令を含む。
【００８９】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びカメラモジュール２４３と連携して、画像管理モジュール２４４は、静止画像及び／又はビデオ画像を配置し、修正し（例えば、編集）、又は別の方法で操作し、ラベルを付け、削除し、（例えば、デジタルスライドショー又はアルバムにおいて）提示し、記憶する実行可能命令を含む。
【００９０】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、ブラウザモジュール２４７は、ウェブページ又はそれらの一部、並びにウェブページにリンクされた添付フィイル及び他のファイルを検索し、リンク付け、受信し、表示することを含む、ユーザの命令に従ってインターネットをブラウズする実行可能命令を含む。
【００９１】
Ｒｆ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と連携して、カレンダモジュール２４８は、ユーザの指示に従って、カレンダ及びカレンダと関連付けられたデータ（例えば、カレンダ項目、ｔｏ  ｄｏリストなど）を作成、表示、変更、及び記憶する実行可能命令を含む。
【００９２】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と連携して、ウィジェットモジュール２４９は、ユーザによってダウンロード及び使用することができるミニアプリケーション（例えば、天気ウィジェット２４９−１、株式ウィジェット２４９−２、計算機ウィジェット２４９−３、アラーム時計ウィジェット２４９−４、及び辞書ウィジェット２４９−５）、又はユーザによって作成するできるミニアプリケーション（例えば、ユーザ作成ウィジェット２４９−６）である。いくつかの実施形態では、ウィジェットは、ＨＴＭＬ（Hypertext Markup Language）（ハイパーテキストマークアップ言語）ファイル、ＣＳＳ（Cascading Style Sheets）（カスケーディングスタイルシート）ファイル、及びＪａｖａＳｃｒｉｐｔ（登録商標）ファイルを含む。いくつかの実施形態では、ウィジェットは、ＸＭＬ（拡張可能マークアップ言語）ファイル及びＪａｖａＳｃｒｉｐｔファイル（例えば、Ｙａｈｏｏ！ウィジェット）を含む。
【００９３】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、及びブラウザモジュール２４７と連携して、ウィジェットクリエータモジュール２５０は、ウィジェットを作成する（例えば、ウェブページのユーザ指定箇所をウィジェットに変える）ために、ユーザによって使用されてもよい。
【００９４】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、検索モジュール２５１は、ユーザの命令に従って、１つ以上の検索基準（例えば、１つ以上のユーザによって指定された検索用語）と一致する、メモリ２０２内のテキスト、音楽、音、画像、ビデオ、及び／又は他のファイルを検索する実行可能命令を含む。
【００９５】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、及びブラウザモジュール２４７と連携して、ビデオ及びミュージックプレーヤモジュール２５２は、ＭＰ３又はＡＡＣファイルなどの１つ以上のファイル形式で記憶された録音済みの音楽又は他のサウンドファイルをユーザがダウンロード及び再生できることを可能にする実行可能命令、並びにビデオを（タッチスクリーン２１２上、又は外部ポート２２４を介して接続された外部のディスプレイ上で）表示、提示、又は別の方法で、再生する実行可能命令を含む。いくつかの実施形態では、デバイス２００は、任意選択的に、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）などのＭＰ３プレーヤの機能を含む。
【００９６】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、及びテキスト入力モジュール２３４と連携して、メモモジュール２５３は、ユーザの命令に従って、メモ及びｔｏ  ｄｏリストなどを作成及び管理する実行可能命令を含む。
【００９７】
ＲＦ回路２０８、タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、テキスト入力モジュール２３４、ＧＰＳモジュール２３５、及びブラウザモジュール２４７と連携して、マップモジュール２５４は、ユーザの命令に従って、マップ及びマップに関連付けられたデータ（例えば、運転方向、特定の場所若しくはその付近の店舗及び他の関心対象地点についてのデータ、並びに他の位置に基づく他のデータ）を受信、表示、修正、及び記憶するために使用されてもよい。
【００９８】
タッチスクリーン２１２、ディスプレイコントローラ２５６、接触／動きモジュール２３０、グラフィックモジュール２３２、オーディオ回路２１０、スピーカ２１１、ＲＦ回路２０８、テキスト入力モジュール２３４、電子メールクライアントモジュール２４０、及びブラウザモジュール２４７と連携して、オンラインビデオモジュール２５５は、ユーザがＨ．２６４などの１つ以上のファイル形式にあるオンラインビデオにアクセスし、閲覧し、（例えば、ストリーミング及び／又はダウンロードにより）受信し、（例えば、タッチスクリーン上で、又は外部ポート２２４を介して接続された外部のディスプレイ上で）再生し、特定のオンラインビデオへのリンクを有する電子メールを送信し、別の方法で管理することを可能にする命令を含む。いくつかの実施形態では、特定のオンラインビデオへのリンクを送信するために、電子メールクライアントモジュール２４０ではなく、インスタントメッセージングモジュール２４１が使用される。その内容が、その全体が参照により本明細書に組み込まれる、オンラインビデオアプリケーションの追加の説明は、２００７年６月２０日に出願された米国特許仮出願第６０／９３６，５６２号、「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」、及び２００７年１２月３１日に出願された米国特許出願第１１／９６８，０６７号、「Ｐｏｒｔａｂｌｅ  Ｍｕｌｔｉｆｕｎｃｔｉｏｎ  Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｐｌａｙｉｎｇ  Ｏｎｌｉｎｅ  Ｖｉｄｅｏｓ」に見出すことができる。
【００９９】
上記特定されたモジュール及びアプリケーションの各々は、上記説明された１つ以上の機能、並びに本出願で説明される方法（例えば、コンピュータにより実装される方法、及び本明細書で説明される他の情報処理方法）を実行する実行可能な命令セットに対応する。これらのモジュール（例えば、命令のセット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、よって、様々な実施形態では、これらのモジュールの様々なサブセットが組み合わされてもよく、又は別の方法で、再編成されてもよい。例えば、ビデオプレーヤモジュールは、ミュージックプレーヤモジュールと組み合わされて、単一のモジュール（例えば、図２Ａのビデオ及びミュージックプレーヤモジュール２５２）となってもよい。いくつかの実施形態において、メモリ２０２は、上記特定されたモジュール及びデータ構造のサブセットを記憶してもよい。更に、メモリ２０２は、上記説明されていない追加のモジュール及びデータ構造を記憶してもよい。
【０１００】
いくつかの実施形態では、デバイス２００は、デバイス上の機能の予め定義されたセットの動作がタッチスクリーン及び／又はタッチパッドを通じて排他的に実行されるデバイスである。デバイス２００の動作についての主要な入力制御デバイスとしてタッチスクリーン及び／又はタッチパッドを使用することによって、デバイス２００上の（プッシュボタン、ダイヤルなどの）物理入力制御デバイスの数を削減することができる。
【０１０１】
タッチスクリーン及び／又はタッチパッドを介して排他的に実行される予め定義された機能のセットは、任意選択的に、ユーザインタフェースの間のナビゲーションを含む。いくつかの実施形態では、タッチパッドは、ユーザによってタッチされるとき、デバイス２００上で表示されるいずれかのユーザインタフェースから、メインメニュー、ホームメニュー、又はルートメニューにデバイス２００をナビゲートする。そのような実施形態では、「メニューボタン」は、タッチパッドを使用して実装される。いくつかの他の実施形態では、メニューボタンは、タッチパッドの代わりに、物理プッシュボタン又は他の物理入力制御デバイスである。
【０１０２】
図２Ｂは、いくつかの実施形態に従った、イベント処理のための例示的な構成要素を示すブロック図である。いくつかの実施形態では、メモリ２０２（図２Ａ）又はメモリ４７０（図４）は、イベントソート部２７０（例えば、オペレーティングシステム２２６における）及びそれぞれのアプリケーション２３６−１（例えば、上述したアプリケーション２３７〜アプリケーション２５１、アプリケーション２５５、アプリケーション４８０〜アプリケーション４９０のうちのいずれか）を含む。
【０１０３】
イベントソート部２７０は、イベント情報を受信し、イベント情報が配信されるアプリケーション２３６−１及びアプリケーション２３６−１のアプリケーションビュー２９１を判定する。イベントソート部２７０は、イベントモニタ２７１及びイベントディスパッチャモジュール２７４を含む。いくつかの実施形態では、アプリケーション２３６−１は、アプリケーションがアクティブであり、又は実行しているとき、タッチ感知ディスプレイ２１２上で表示される現在のアプリケーションビュー（単数又は複数）を示す、アプリケーション内部状態２９２を含む。いくつかの実施形態では、デバイス／グローバル内部状態２５７は、どのアプリケーション（単数又は複数）が現在アクティブであるかを判定するためにイベントソート部２７０によって使用され、アプリケーション内部状態２９２は、イベント情報が配信されるアプリケーションビュー２９１を判定するためにイベントソート部２７０によって使用される。
【０１０４】
いくつかの実施形態では、アプリケーション内部状態２９２は、アプリケーション２３６−１が実行を再開するときに使用される再開情報、アプリケーション２３６−１によって情報が表示されているか又は表示の準備ができていることを示すユーザインタフェース状態情報、ユーザがアプリケーション２３６−１の前の状態又はビューに戻ることを可能にするための状態待ち行列、及びユーザが以前に行ったアクションのリドゥ／アンドゥ待ち行列のうちの１つ以上などの追加情報を含む。
【０１０５】
イベントモニタ２７１は、周辺機器インタフェース２１８からイベント情報を受信する。イベント情報は、サブイベント（例えば、マルチタッチジェスチャの一部としての、タッチ感知ディスプレイ２１２上のユーザのタッチ）に関する情報を含む。周辺機器インタフェース２１８は、Ｉ／Ｏサブシステム２０６、又は近接センサ２６６、加速度計（単数又は複数）２６８、及び／若しくは（音声回路２１０を介する）マイクロフォン２１３などのセンサから受信する情報を送信する。周辺機器インタフェース２１８がＩ／Ｏサブシステム２０６から受信する情報は、タッチ感知ディスプレイ２１２又はタッチ感知面からの情報を含む。
【０１０６】
いくつかの実施形態では、イベントモニタ２７１は、予め定められた間隔で周辺機器インタフェース２１８に要求を送信する。これに応じて、周辺機器インタフェース２１８はイベント情報を送信する。他の実施形態では、周辺機器インタフェース２１８は、重要なイベント（例えば、予め定められたノイズ閾値を上回り、及び／又は予め定められた持続時間を超えて入力を受信すること）が存在するときのみ、イベント情報を送信する。
【０１０７】
いくつかの実施形態では、イベントソート部２７０はまた、ヒットビュー判定モジュール２７２及び／又はアクティブイベント認識部判定モジュール２７３を含む。
【０１０８】
ヒットビュー判定モジュール２７２は、タッチ感知ディスプレイ２１２が１つより多いビューを表示するときに、サブイベントが１つ以上のビュー内のいずれの場所で発生したかを判定するためのソフトウェア手順を提供する。ビューは、制御部及びユーザがディスプレイ上で見ることが可能な他の要素で構成されている。
【０１０９】
アプリケーションと関連付けられたユーザインタフェースの別の態様は、それらにおいて情報が表示され、タッチに基づくジェスチャが生じる、本明細書でアプリケーションビュー又はユーザインタフェースウィンドウと呼ばれる場合があるビューのセットである。タッチが検出される（それぞれのアプリケーションの）アプリケーションビューは、アプリケーションのプログラム階層又はビュー階層内のプログラムレベルに対応してもよい。例えば、タッチが検出される最下位レベルのビューをヒットビューと呼ばれてもよく、適切な入力として認識されるイベントのセットは、少なくとも部分的に、タッチに基づくジェスチャを開始する最初のタッチのヒットビューに基づいて判定されてもよい。
【０１１０】
ヒットビュー判定モジュール２７２は、タッチに基づくジェスチャのサブイベントと関連する情報を受信する。アプリケーションが階層において編成された複数のビューを有するとき、ヒットビュー判定モジュール２７２は、そのサブイベントを処理すべき階層内の最下位のビューとしてヒットビューを特定する。ほとんどの状況では、ヒットビューは、最初のサブイベント（例えば、イベント又は潜在的なイベントを形成する一連のサブイベントにおける最初のサブイベント）が発生する最下位レベルのビューである。ヒットビューがヒットビュー判定モジュール２７２によって特定されると、ヒットビューは、典型的には、それがヒットビューとして特定された、同一のタッチ又は入力ソースに関連する全てのサブイベントを受信する。
【０１１１】
アクティブイベント認識部判定モジュール２７３は、ビュー階層内のどのビューが特定の一連のサブイベントを受信すべきかを判定する。いくつかの実施形態では、アクティブイベント認識部判定モジュール２７３は、ヒットビューのみが特定の一連のサブイベントを受信すべきであると判定する。他の実施形態では、アクティブイベント認識部判定モジュール２７３は、サブイベントの物理位置を含む全てのビューがアクティブに関わっているビューであると判定し、したがって、全てのアクティブに関わっているビューは、特定の一連のサブイベントを受信すべきであると判定する。他の実施形態では、タッチサブイベントが１つの特定のビューと関連付けられた領域に完全に限定された場合でさえ、階層における上位のビューは、依然としてアクティブに関わっているビューのままでいる。
【０１１２】
イベントディスパッチャモジュール２７４は、イベント情報をイベント認識部（例えば、イベント認識部２８０）に送出する。アクティブイベント認識部判定モジュール２７３を含む実施形態では、イベントディスパッチャモジュール２７４は、アクティブイベント認識部判定モジュール２７３により判定されたイベント認識部にイベント情報を配信する。いくつかの実施形態では、イベントディスパッチャモジュール２７４は、それぞれのイベント受信部２８２により取り出されるイベント情報をイベント待ち行列に記憶する。
【０１１３】
いくつかの実施形態では、オペレーティングシステム２２６は、イベントソート部２７０を含む。代わりに、アプリケーション２３６−１は、イベントソート部２７０を含む。更なる他の実施形態では、イベントソート部２７０は、スタンドアロンモジュール、又は接触／動きモジュール２３０などのメモリ２０２に記憶された別のモジュールの一部である。
【０１１４】
いくつかの実施形態では、アプリケーション２３６−１は、各々がアプリケーションのユーザインタフェースのそれぞれのビュー内で発生するタッチイベントを処理する命令を含む、複数のイベント処理部２９０及び１つ以上のアプリケーションビュー２９１を含む。アプリケーション２３６−１の各々のアプリケーションビュー２９１は、１つ以上のイベント認識部２８０を含む。典型的には、それぞれのアプリケーションビュー２９１は、複数のイベント認識部２８０を含む。他の実施形態では、イベント認識部２８０のうちの１つ以上は、ユーザインタフェースキット（図示せず）、又はアプリケーション２３６−１がメソッド及び他の性質をそれから継承する上位レベルのオブジェクトなどの、別々のモジュールの一部である。いくつかの実施形態では、それぞれのイベント処理部２９０は、データ更新部２７６、オブジェクト更新部２７７、ＧＵＩ更新部２７８、及び／又はイベントソート部２７０から受信されたイベントデータ２７９のうちの１つ以上を含む。イベント処理部２９０は、アプリケーション内部状態２９２を更新するために、データ更新部２７６、オブジェクト更新部２７７、若しくはＧＵＩ更新部２７８を利用し、又は呼び出すことができる。代わりに、アプリケーションビュー２９１のうちの１つ以上は、１つ以上のそれぞれのイベント処理部２９０を含む。また、いくつかの実施形態では、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８のうちの１つ以上は、それぞれのアプリケーションビュー２９１に含まれる。
【０１１５】
それぞれのイベント認識部２８０は、イベントソート部２７０からイベント情報（例えば、イベントデータ２７９）を受信し、イベント情報からイベントを特定する。イベント認識部２８０は、イベント受信部２８２及びイベント比較部２８４を含む。いくつかの実施形態では、イベント認識部２８０はまた、メタデータ２８３及びイベント配信命令２８８（サブイベント配信命令を含んでもよい）の少なくともサブセットを含む。
【０１１６】
イベント受信部２８２は、イベントソート部２７０からイベント情報を受信する。イベント情報は、サブイベント、例えば、タッチ又はタッチの動きに関する情報を含む。サブイベントに応じて、イベント情報はまた、サブイベントの位置などの追加の情報を含む。サブイベントがタッチの動きに関係する場合、イベント情報はまた、そのサブイベントの速さ及び方向を含んでもよい。いくつかの実施形態では、イベントは、１つの方向から別の方向への（例えば、縦向きから横向きへの、又はその逆の）デバイスの回転を含み、イベント情報は、デバイスの現在の向き（デバイスの姿勢とも呼ばれる）に関する対応する情報を含む。
【０１１７】
イベント比較部２８４は、イベント情報を予め定義されたイベント若しくはサブイベントの定義と比較し、比較に基づいて、イベント若しくはサブイベントを判定し、又はイベント若しくはサブイベントの状態を判定若しくは更新する。いくつかの実施形態では、イベント比較部２８４は、イベント定義２８６を含む。イベント定義２８６は、例えば、イベント１（２８７−１）及びイベント２（２８７−２）などのイベントの定義（例えば、予め定義された一連のサブイベント）を含む。いくつかの実施形態では、イベント（２８７）におけるサブイベントは、例えば、タッチの開始、タッチの終了、タッチの移動、タッチの中止、及び複数のタッチを含む。１つの実施例では、イベント１（２８７−１）についての定義は、表示されたオブジェクト上のダブルタップである。ダブルタップは、例えば、予め定められた段階の間の表示されたオブジェクト上の第１のタッチ（タッチの開始）、予め定められた段階の間の第１のリフトオフ（タッチの終了）、予め定められた段階の間の表示されたオブジェクト上の第２のタッチ（タッチの開始）、及び予め定められた段階の間の第２のリフトオフ（タッチの終了）を含む。別の実施例では、イベント２（２８７−２）についての定義は、表示されたオブジェクト上のドラッグ操作である。このドラッグ操作は、例えば、予め定められた段階の間の表示オブジェクト上のタッチ（又は、接触）、タッチ感知ディスプレイ２１２を横断するタッチの移動、及びタッチのリフトオフ（タッチの終了）を含む。いくつかの実施形態では、イベントはまた、１つ以上の関連付けられたイベント処理部２９０についての情報を含む。
【０１１８】
いくつかの実施形態では、イベント定義２８７は、それぞれのユーザインタフェースオブジェクトについてのイベントの定義を含む。いくつかの実施形態では、イベント比較部２８４は、どのユーザインタフェースオブジェクトがサブイベントと関連付けられるかを判定するためのヒットテストを実行する。例えば、３つのユーザインタフェースオブジェクトがタッチ感知ディスプレイ２１２上で表示されるアプリケーションビューにおいて、タッチ感知ディスプレイ２１２上でタッチが検出されるとき、イベント比較部２８４は、３つのユーザインタフェースオブジェクトのうちのどれがタッチ（サブイベント）と関連付けられているかを判定するためのヒットテストを実行する。表示された各々のオブジェクトがそれぞれのイベント処理部２９０と関連付けられる場合、イベント比較部は、どのイベント処理部２９０をアクティブ化すべきかを判定するためにヒットテストの結果を使用する。例えば、イベント比較部２８４は、サブイベント及びヒットテストのトリガとなるオブジェクトと関連付けられたイベント処理部を選択する。
【０１１９】
いくつかの実施形態では、それぞれのイベント（２８７）についての定義はまた、一連のサブイベントがイベント認識部のイベントタイプに対応するかが判定されるまでイベント情報の配信を遅延させる遅延アクションを含む。
【０１２０】
それぞれのイベント認識部２８０が、一連のサブイベントがイベント定義２８６におけるイベントのいずれとも一致しないと判定するとき、それぞれのイベント認識部２８０は、イベント不可能、イベント失敗、又はイベント終了状態に入り、その後は、タッチに基づくジェスチャの後続のサブイベントを無視する。この状況では、ヒットビューに対してアクティブのままである他のイベント認識部がある場合、そのイベント認識部は、進行中のタッチに基づくジェスチャのサブイベントを追跡及び処理をすることを続ける。
【０１２１】
いくつかの実施形態では、それぞれのイベント認識部２８０は、イベント配信システムがどのようにサブイベント配信を実行すべきかをアクティブに関与しているイベント認識部に示す構成可能なプロパティ、フラグ、及び／又はリストを有するメタデータ２８３を含む。いくつかの実施形態では、メタデータ２８３は、構成変更可能なプロパティ、フラグ、及び／又はイベント認識部が互いにどのように対話することができ、若しくは対話が可能になるかについて示すリストを含む。いくつかの実施形態では、メタデータ２８３は、構成変更可能なプロパティ、フラグ、及び／又はサブイベントがビュー階層又はプログラム階層における様々なレベルに配信されるか否かを示すリストを含む。
【０１２２】
いくつかの実施形態では、それぞれのイベント認識部２８０は、イベントの１つ以上の特定のサブイベントが認識されるとき、イベントと関連付けられたイベント処理部２９０をアクティブ化する。いくつかの実施形態では、それぞれのイベント認識部２８０は、イベントと関連付けられたイベント情報をイベント処理部２９０に配信する。イベント処理部２９０をアクティブ化することは、それぞれのヒットビューにサブイベントを送信（及び送信を延期する）することとは異なる。いくつかの実施形態では、イベント認識部２８０は、認識されたイベントと関連付けられたフラグをスローし、フラグと関連付けられたイベント処理部２９０は、フラグをキャッチし、予め定義された処理を実行する。
【０１２３】
いくつかの実施形態では、イベント配信命令２８８は、イベント処理部をアクティブ化することなくサブイベントに関するイベント情報を配信するサブイベント配信命令を含む。代わりに、サブイベント配信命令は、一連のサブイベントと関連付けられたイベント処理部又はアクティブに関わっているビューにイベント情報を配信する。一連のサブイベント又はアクティブに関わっているビューと関連付けられたイベント処理部は、イベント情報を受信し、予め定められた処理を実行する。
【０１２４】
いくつかの実施形態では、データ更新部２７６は、アプリケーション２３６−１で使用されるデータを作成及び更新する。例えば、データ更新部２７６は、連絡先モジュール２３７で使用される電話番号を更新し、又はビデオプレーヤモジュールで使用されるビデオファイルを記憶する。いくつかの実施形態では、オブジェクト更新部２７７は、アプリケーション２３６−１で使用されるオブジェクトを作成及び更新する。例えば、オブジェクト更新部２７７は、新たなユーザインタフェースオブジェクトを作成し、又はユーザインタフェースオブジェクトの位置を更新する。ＧＵＩ更新部２７８は、ＧＵＩを更新する。例えば、ＧＵＩ更新部２７８は、表示情報を作成し、タッチ感知ディスプレイ上で表示するためにそれをグラフィックモジュール２３２に送信する。
【０１２５】
いくつかの実施形態では、イベント処理部（単数又は複数）２９０は、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８を含み、又はそれらへのアクセスを有する。いくつかの実施形態では、データ更新部２７６、オブジェクト更新部２７７、及びＧＵＩ更新部２７８は、それぞれのアプリケーション２３６−１又はアプリケーションビュー２９１の単一モジュールに含まれる。他の実施形態では、それらは、２つ以上のソフトウェアモジュールに含まれる。
【０１２６】
タッチ感知ディスプレイ上のユーザのタッチのイベント処理に関する前述の議論はまた、入力デバイスを有する多機能デバイス２００を動作させるための他の形式のユーザ入力にも適用されるが、その全てがタッチスクリーン上で開始されるわけではないことが理解されよう。例えば、単一若しくは複数のキーボードの押圧若しくは保持に任意選択的に適合されたマウスの移動及びマウスボタンの押圧、タッチパッド上でのタップ、ドラッグ、スクロールなどの接触移動、ペンスタイラス入力、デバイスの移動、口頭による指示検出された眼球運動、バイオメトリック入力、並びに／又はそれらのいずれかの組合せは、任意選択的に、認識されることになるイベントを定義するサブイベントに対応する入力として利用される。
【０１２７】
図３は、いくつかの実施形態に従った、タッチスクリーン２１２を有するポータブル多機能デバイス２００を示す。タッチスクリーンは、任意選択的に、ユーザインタフェース（user interface）（ＵＩ）３００内で１つ以上のグラフィックを表示する。本実施形態、及び以下で説明される実施形態では、ユーザは、例えば、１本以上の指３０２（図には、正確な縮尺率では描かれていない）又は１つ以上のスタイラス３０３（図には、正確な縮尺率では描かれていない）を使用してグラフィック上でジェスチャを行うことによって、グラフィックのうちの１つ以上を選択することが可能になる。いくつかの実施形態では、ユーザが１つ以上のグラフィックとの接触を中断するときに１つ以上のグラフィックの選択が生じる。いくつかの実施形態では、ジェスチャは、任意選択的に、１回以上のタップ、１回以上のスワイプ（左から右へ、右から左へ、上方向へ、及び／又は下方向へ）、及び／又はデバイス２００と接触した指のローリング（右から左へ、左から右へ、上方向へ、及び／又は下方向へ）を含む。いくつかの実装形態又は状況では、グラフィックとの不測の接触は、グラフィックを選択しない。例えば、選択に対応するジェスチャがタップであるとき、アプリケーションアイコンの上をスイープするスワイプジェスチャは、任意選択的に、対応するアプリケーションを選択しない。
【０１２８】
デバイス２００はまた、「ホーム」又はメニューボタン３０４などの、１つ以上の物理ボタンを含んでもよい。前に説明されたように、メニューボタン３０４は、デバイス２００上で実行することができるアプリケーションセットにおけるいずれかのアプリケーション２３６にナビゲートするために使用されてもよい。代わりに、いくつかの実施形態では、メニューボタンは、タッチスクリーン２１２上で表示されたＧＵＩにおけるソフトキーとして実装される。
【０１２９】
１つの実施形態では、デバイス２００は、タッチスクリーン２１２、メニューボタン３０４、デバイスの電源をオン／オフし、デバイスをロックするためのプッシュボタン３０６、音量調節ボタン（単数又は複数）３０８、加入者識別モジュール（ＳＩＭ）カードスロット３１０、ヘッドセットジャック３１２、及びドッキング／充電用外部ポート２２４を含む。プッシュボタン３０６は、任意選択的に、ボタンを押し下げ、予め定義された時間間隔の間にボタンを押し下げた状態で保持することによってデバイス上の電力をターンオン／オフし、ボタンを押し下げ予め定義された時間間隔が経過する前にボタンを解放することによってデバイスをロックし、及び／又はデバイスのロックを解除し、若しくはロック解除処理を開始するために使用される。代替的な実施形態では、デバイス２００はまた、マイクロフォン２１３を通じて、いくつかの機能をアクティブ化又は非アクティブ化するための口頭入力を受け付ける。デバイス２００はまた、任意選択的に、タッチスクリーン２１２上の接触の強度を検出するための１つ以上の接触強度センサ２６５、及び／又はデバイス２００のユーザに対する触知出力を生成するための１つ以上の触知出力生成器２６７を含む。
【０１３０】
図４は、いくつかの実施形態に従った、ディスプレイ及びタッチ感知面を有する例示的な多機能デバイスのブロック図である。デバイス４００は、ポータブル型である必要はない。いくつかの実施形態では、デバイス４００は、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、マルチメディアプレイヤデバイス、ナビゲーションデバイス、教育的デバイス（子供の学習玩具など）、ゲームシステム、又は制御デバイス（例えば、家庭用又は業務用コントローラ）である。デバイス４００は、典型的には、１つ以上の処理ユニット（ＣＰＵ）４１０、１つ以上のネットワーク若しくは他の通信インタフェース４６０、メモリ４７０、及びこれらの構成要素を相互接続するための１つ以上の通信バス４２０を含む。通信バス４２０は、任意選択的に、システム構成要素の間の通信を相互接続及び制御する回路（チップセットと呼ばれることがある）を含む。デバイス４００は、典型的にはタッチスクリーンディスプレイであるディスプレイ４４０を含む入出力（Ｉ／Ｏ）インタフェース４３０を含む。Ｉ／Ｏインタフェース４３０はまた、任意選択的に、キーボード及び／又はマウス（又は他のポインティングデバイス）４５０、並びにタッチパッド４５５、デバイス４００上で触知出力を生成するための（例えば、図２Ａを参照して上記説明された触知出力生成器２６７（単数又は複数）と同様の）触知出力生成器４５７、センサ４５９（例えば、光センサ、加速度センサ、近接センサ、タッチ感知センサ、及び／又は図２Ａを参照して上記説明された接触強度センサ（単数又は複数）２６５と同様の接触強度センサ）を含む。メモリ４７０は、ＤＲＡＭ、ＳＲＡＭ、ＤＤＲ  ＲＡＭ、又は他のランダムアクセスソリッドステートメモリデバイスなどの高速ランダムアクセスメモリを含み、任意選択的に、１つ以上の磁気ディスク記憶デバイス、光ディスク記憶デバイス、フラッシュメモリデバイス、又は他の不揮発性半導体記憶デバイスなどの不揮発性メモリを含む。メモリ４７０は、任意選択的に、ＣＰＵ（単数又は複数）４１０からリモートに位置する１つ以上の記憶デバイスを含む。いくつかの実施形態では、メモリ４７０は、ポータブル多機能デバイス２００（図２Ａ）のメモリ２０２に記憶されたプログラム、モジュール、及びデータ構造、又はそれらのサブセットに類似する、プログラム、モジュール、及びデータ構造を記憶する。更に、メモリ４７０は、任意選択的に、ポータブル多機能デバイス２００のメモリ２０２に存在しない追加のプログラム、モジュール、及びデータ構造を記憶する。例えば、デバイス４００のメモリ４７０は、任意選択的に、描画モジュール４８０、プレゼンテーションモジュール４８２、ワードプロセッシングモジュール４８４、ウェブサイト作成モジュール４８６、ディスクオーサリングモジュール４８８、及び／又はスプレッドシートモジュール４９０を記憶するが、ポータブル多機能デバイス２００（図２Ａ）のメモリ２０２は、任意選択的に、これらのモジュールを記憶しない。
【０１３１】
図４で上記特定された要素の各々は、前述のメモリデバイスの１つ以上に記憶されてもよい。上記特定されたモジュールの各々は、上記説明された機能を実行する命令セットに対応する。上記特定されたモジュール又はプログラム（例えば、命令セット）は、別個のソフトウェアプログラム、手順、又はモジュールとして実装される必要はなく、よって、様々な実施形態では、これらのモジュールの様々なサブセットが組み合わされてもよく、又は別の方法で、再編成されてもよい。いくつかの実施形態では、メモリ４７０は、上記特定されたモジュール及びデータ構造のサブセットを記憶してもよい。更に、メモリ４７０は、上記説明されていない追加のモジュール及びデータ構造を記憶してもよい。
【０１３２】
ここで、例えば、ポータブル多機能デバイス２００上で実装することができるユーザインタフェースの実施形態に注意を向ける。
【０１３３】
図５Ａは、いくつかの実施形態に従った、ポータブル多機能デバイス２００上のアプリケーションのメニューについての例示的なユーザインタフェースを示す。同様のユーザインタフェースは、デバイス４００上で実装されてもよい。いくつかの実施形態では、ユーザインタフェース５００は、以下の要素、又はそれらのサブセット若しくはスーパーセットを含む。
【０１３４】
●セルラー信号及びＷｉ−Ｆｉ信号などの無線通信（単数又は複数）のための信号強度インジケータ（単数又は複数）５０２、
●時刻５０４、
●Ｂｌｕｅｔｏｏｔｈインジケータ５０５、
●バッテリ状態インジケータ５０６、
●下記などの、頻繁に利用されるアプリケーション用のアイコンを含むトレー５０８、
○不在着信又はボイスメールメッセージの数のインジケータ５１４を任意選択的に含む、「電話」とラベル付けされた、電話モジュール２３８用のアイコン５１６、
○未読電子メールの数のインジケータ５１０を任意選択的に含む、「メール」とラベル付けされた、電子メールクライアントモジュール２４０用のアイコン５１８、
○「ブラウザ」とラベル付けされた、ブラウザモジュール２４７用のアイコン５２０、及び
○「ｉＰｏｄ」とラベル付けされた、ｉＰｏｄ（Ａｐｐｌｅ  Ｉｎｃ．の商標）モジュール２５２とも称されるビデオ及び音楽プレーヤモジュール２５２用のアイコン５２２、及び
●下記などの、その他のアプリケーション用のアイコン、
○「メッセージ」とラベル付けされた、ＩＭモジュール２４１用のアイコン５２４、
○「カレンダ」とラベル付けされた、カレンダモジュール２４８用のアイコン５２６、
○「写真」とラベル付けされた、画像管理モジュール２４４用のアイコン５２８、
○「カメラ」とラベル付けされた、カメラモジュール２４３用のアイコン５３０、
○「オンラインビデオ」とラベル付けされた、オンラインビデオモジュール２５５用のアイコン５３２、
○「株式」とラベル付けされた、株式ウィジェット２４９−２用のアイコン５３４、
○「マップ」とラベル付けされた、マップモジュール２５４用のアイコン５３６、
○「天気」とラベル付けされた、天気ウィジェット２４９−１用のアイコン５３８、
○「時計」とラベル付けされた、アラーム時計ウィジェット２４９−４用のアイコン５４０、
○「トレーニングサポート」とラベル付けされた、トレーニングサポートモジュール２４２用のアイコン５４２、
○「メモ」とラベル付けされた、メモモジュール２５３用のアイコン５４４、及び
○デバイス２００及びその様々なアプリケーション２３６に関する設定へのアクセスを提供する、「設定」とラベル付けされた、設定アプリケーション若しくはモジュール用のアイコン５４６。
【０１３５】
図５Ａに示されたアイコンのラベルは、単なる例示であることに留意されたい。例えば、ビデオ及び音楽プレーヤモジュール２５２用のアイコン５２２は、任意選択的に、「音楽」又は「音楽プレーヤ」とラベル付けされてもよい。他のラベルは、任意選択的に、様々なアプリケーションアイコンのために使用される。いくつかの実施形態では、それぞれのアプリケーションアイコンについてのラベルは、それぞれのアプリケーションアイコンに対応するアプリケーションの名前を含む。いくつかの実施形態では、特定のアプリケーションアイコンのラベルは、特定のアプリケーションアイコンに対応するアプリケーションの名前とは異なる。
【０１３６】
図５Ｂは、ディスプレイ５５０（例えば、タッチスクリーンディスプレイ２１２）とは別個のタッチ感知面５５１（例えば、図４のタブレット又はタッチパッド４５５）を有するデバイス（例えば、図４のデバイス４００）上の例示的なユーザインタフェースを示す。デバイス４００はまた、任意選択的に、タッチ感知面５５１上の接触の強度を検出するための１つ以上の接触強度センサ（例えば、センサ４５７のうちの１つ以上）、及び／又はデバイス４００のユーザに対する触知出力を生成するための１つ以上の触知出力生成器４５９を含む。
【０１３７】
以下の実施例のうちのいくつかはタッチスクリーンディスプレイ２１２上の入力（タッチ感知面とディスプレイとが組み合わされている場合）を参照して説明されるが、いくつかの実施形態では、デバイスは、図５Ｂに示されるように、ディスプレイとは別個のタッチ感知面上の入力を検出する。いくつかの実施形態では、このタッチ感知面（例えば、図５Ｂの５５１）は、ディスプレイ（例えば、５５０）上の主軸（例えば、図５Ｂの５５３）に対応する主軸（例えば、図５Ｂの５５２）を有する。これらの実施形態に従って、デバイスは、ディスプレイ上のそれぞれの位置に対応する位置（例えば、図５Ｂでは、５６０は５６８に対応し、５６２は５７０に対応する）においてタッチ感知面５５１との接触（例えば、図５Ｂの５６０及び５６２）を検出する。このように、タッチ感知面がディスプレイとは別個であるとき、タッチ感知面（例えば、図５Ｂの５５１）上でデバイスによって検出されたユーザ入力（例えば、接触５６０及び接触５６２、並びにそれらの移動）は、多機能デバイスのディスプレイ（例えば、図５Ｂでの５５０）上のユーザインタフェースを操作するためにデバイスによって使用される。同様の方法は、任意選択的に、本明細書で説明される他のユーザインタフェースに使用されることを理解されたい。
【０１３８】
加えて、以下の実施例は主に指入力（例えば、指の接触、指のタップジェスチャ、指のスワイプジェスチャ）を参照して説明されるが、いくつかの実施形態では、それらの指入力のうちの１つ以上は、別の入力デバイスからの入力（例えば、マウスに基づく入力、又はスタイラス入力）で置き換えられることを理解されたい。例えば、スワイプジェスチャは、任意選択的に、マウスクリックと置き換えられ（例えば、接触の代わりに）、それに続いて、スワイプの経路に沿ってカーソルの移動が行われる（例えば、接触の移動の代わりに）。別の例として、タップジェスチャは、任意選択的に、カーソルがタップジェスチャの位置の上に位置する間のマウスクリックと置き換えられる（例えば、接触の検出と、それに続いて接触の検出を停止する代わりに）。同様に、複数のユーザ入力が同時に検出されるとき、複数のコンピュータマウスは、任意選択的に、同時に使用され、又はマウス及び指の接触が、任意選択的に、同時に使用されることを理解されたい。
【０１３９】
図６Ａは、例示的なパーソナル電子デバイス６００を示す。デバイス６００は、本体６０２を含む。いくつかの実施形態では、デバイス６００は、デバイス２００及びデバイス４００（例えば、図２Ａ〜図４Ｂ）に関して説明された特徴のいくつか又は全てを含むことができる。いくつかの実施形態では、デバイス６００は、タッチ感知ディスプレイ画面６０４、以後、タッチスクリーン６０４を有する。タッチスクリーン６０４の代わりに、又はそれに加えて、デバイス６００は、ディスプレイ及びタッチ感知面を有する。デバイス２００及びデバイス４００と同様に、いくつかの実施形態では、タッチスクリーン６０４（又はタッチ感知面）は、加えられている接触（例えば、タッチ）の強度を検出するための１つ以上の強度センサを有してもよい。タッチスクリーン６０４（又は、タッチ感知面）の１つ以上の強度センサは、タッチの強度を表す出力データを提供することができる。デバイス６００のユーザインタフェースは、タッチの強度に基づいてタッチに応答することができ、これは、異なる強度のタッチは、デバイス６００上で異なるユーザインタフェース動作を呼び出すことができることを意味する。
【０１４０】
タッチ強度を検出及び処理するための技術は、例えば、関連出願である、各々が、その全体が参照により本明細書に組み込まれる、２０１３年５月８日に出願された「Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｄｉｓｐｌａｙｉｎｇ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  Ｏｂｊｅｃｔｓ  Ｃｏｒｒｅｓｐｏｎｄｉｎｇ  ｔｏ  ａｎ  Ａｐｐｌｉｃａｔｉｏｎ」と題された国際出願ＰＣＴ／ＵＳ２０１３／０４００６１号、及び２０１３年１１月１１日に出願された「Ｄｅｖｉｃｅ，Ｍｅｔｈｏｄ，ａｎｄ  Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ  ｆｏｒ  Ｔｒａｎｓｉｔｉｏｎｉｎｇ  Ｂｅｔｗｅｅｎ  Ｔｏｕｃｈ  Ｉｎｐｕｔ  ｔｏ  Ｄｉｓｐｌａｙ  Ｏｕｔｐｕｔ  Ｒｅｌａｔｉｏｎｓｈｉｐｓ」と題された同ＰＣＴ／ＵＳ２０１３／０６９４８３号に見出すことができる。
【０１４１】
いくつかの実施形態では、デバイス６００は、１つ以上の入力機構６０６及び入力機構６０８を有する。入力機構６０６及び入力機構６０８は、含まれる場合、物理的なものとすることができる。物理入力機構の例は、プッシュボタン及び回転可能機構を含む。いくつかの実施形態では、デバイス６００は、１つ以上の取付機構を有する。そのような取付機構は、含まれる場合、例えば、デバイス６００を、帽子、アイウェア、イヤリング、ネックレス、シャツ、ジャケット、ブレスレット、腕時計バンド、チェーン、ズボン、ベルト、靴、財布、バックパックなどに取り付けることを可能にする。これらの取付機構によって、ユーザはデバイス６００を着用することができる。
【０１４２】
図６Ｂは、例示的なパーソナル電子デバイス６００を示す。いくつかの実施形態では、デバイス６００は、図２Ａ、図２Ｂ、及び図４に関して説明された構成要素のうちのいくつか又は全てを含んでもよい。デバイス６００は、Ｉ／Ｏ部６１４を１つ以上のコンピュータプロセッサ６１６及びメモリ６１８に動作可能に結合するバス６１２を有する。Ｉ／Ｏ部６１４は、タッチ感知式構成要素６２２を有することができ、任意選択的に、タッチ強度感知構成要素６２４を有することができるディスプレイ６０４に結合されてもよい。加えて、Ｉ／Ｏ部６１４は、Ｗｉ−Ｆｉ、Ｂｌｕｅｔｏｏｔｈ、近距離通信（「ＮＦＣ」）、セルラー、及び／又は他の無線通信技術を使用して、アプリケーション及びオペレーティングシステムデータを受信するための通信ユニット６３０と接続されてもよい。デバイス６００は、入力機構６０６及び／又は入力機構６０８を含むことができる。入力機構６０６は、例えば、回転可能入力デバイス、又は押し下げ可能かつ回転可能な入力デバイスであってもよい。入力機構６０８は、いくつかの実施例では、ボタンであってもよい。
【０１４３】
入力機構６０８は、いくつかの実施例では、マイクロフォンであってもよい。パーソナル電子デバイス６００は、ＧＰＳセンサ６３２、加速度計６３４、方向センサ６４０（例えば、コンパス）、ジャイロスコープ６３６、動きセンサ６３８、及び／又はこれらの組合せなどの様々なセンサを含むことができ、それらの全ては、Ｉ／Ｏ部６１４に動作可能に接続されてもよい。
【０１４４】
パーソナル電子デバイス６００のメモリ６１８は、コンピュータ実行可能命令を記憶するための非一時的コンピュータ可読記憶媒体とすることができ、それらの命令は、１つ以上のコンピュータプロセッサ６１６によって実行されるとき、例えば、コンピュータプロセッサに、処理１２００（図１２Ａから１２Ｄ）を含む、上記説明された技術を実行させることができる。コンピュータ実行可能命令はまた、コンピュータベースのシステム、プロセッサを含むシステム、又は命令実行システム、装置、若しくはデバイスから命令をフェッチし、命令を実行することができる他のシステムなど、命令実行システム、装置、又はデバイスによって、又はそれらと接続して使用されるいずれかの非一時的コンピュータ可読記憶媒体に記憶及び／又は伝送されてもよい。本文書の目的上、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、又はデバイスによって、又はそれらと接続して使用されるコンピュータ実行可能命令を有形的に収容又は記憶することができるいずれかの媒体とすることができる。非一時的コンピュータ可読記憶媒体は、磁気的、光学的、及び／又は半導体記憶装置を含んでもよいが、これらに限定されない。そのような記憶装置の例は、磁気ディスク、ＣＤ、ＤＶＤ、又はＢｌｕ−ｒａｙ技術に基づく光ディスクと共に、フラッシュ及びソリッドステートドライブなどの永続的ソリッドステートメモリを含む。パーソナル電子デバイス６００は、図６Ｂの構成要素及び構成に限定されず、複数の構成における他の構成要素又は追加の構成要素を含むことができる。
【０１４５】
本明細書で使用されるとき、用語「アフォーダンス」は、デバイス２００、４００、及び／又は６００（図２、図４、及び図６）のディスプレイスクリーン上で表示することができるユーザ対話式のグラフィカルユーザインタフェースオブジェクトを指す。例えば、画像（例えば、アイコン）、ボタン、及びテキスト（例えば、リンク）は各々、アフォーダンスを構成してもよい。
【０１４６】
本明細書で使用されるとき、用語「フォーカスセレクタ」は、ユーザが対話しているユーザインタフェースの現在の部分を示す入力要素を指す。カーソル又は他の位置マーカを含むいくつかの実装形態では、カーソルは「フォーカスセレクタ」として機能し、その結果、カーソルが特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の上にある間にタッチ感知面（例えば、図４のタッチパッド４５５、又は図５Ｂのタッチ感知面５５１）上で入力（例えば、押圧入力）が検出されるとき、特定のユーザインタフェース要素が、検出された入力に従って調節される。タッチスクリーンディスプレイ上のユーザインタフェース要素との直接的な対話を可能にする、タッチスクリーンディスプレイ（例えば、図２Ａのタッチ感知ディスプレイシステム２１２、又は図５Ａのタッチスクリーン２１２）を含むいくつかの実装形態では、タッチスクリーン上で検出される接触は「フォーカスセレクタ」として機能し、その結果、入力（例えば、接触による押圧入力）が特定のユーザインタフェース要素（例えば、ボタン、ウィンドウ、スライダ、又は他のユーザインタフェース要素）の位置においてタッチスクリーンディスプレイ上で検出されるとき、特定のユーザインタフェース要素が、検出された入力に従って調節される。いくつかの実装形態では、（例えば、フォーカスを１つのボタンから別のボタンに移動させるためにタブキー又は矢印キーを使用することによって）タッチスクリーンディスプレイ上の対応するカーソルの移動又は接触の移動なしに、フォーカスがユーザインタフェースの１つの領域からユーザインタフェースの別の領域に移動され、それらの実装形態では、フォーカスセレクタは、ユーザインタフェースの異なる領域の間のフォーカスの移動に従って移動する。フォーカスセレクタによってとられる具体的な形態とは関係なく、フォーカスセレクタは概して、ユーザの意図したユーザインタフェースとの対話を通信するように（例えば、ユーザが対話することを意図しているユーザインタフェースの要素をデバイスに示すことによって）、ユーザによって制御されるユーザインタフェース要素（又は、タッチスクリーンディスプレイ上の接触）である。例えば、押圧入力がタッチ感知面（例えば、タッチパッド又はタッチスクリーン）上で検出される間にそれぞれのボタンの上のフォーカスセレクタ（例えば、カーソル、接触、又は選択ボックス）の位置は、（デバイスのディスプレイ上に示されている他のユーザインタフェース要素とは反対に）それぞれのボタンをユーザがアクティブ化することを意図していることを示す。
【０１４７】
本明細書及び特許請求の範囲で使用されるとき、接触の「特性強度」という用語は、接触の１つ以上の強度に基づく接触の特性を指す。いくつかの実施形態では、特性強度は複数の強度サンプルに基づく。特性強度は、任意選択的に、予め定義された数の強度サンプル、あるいは予め定義されたイベントに対する（例えば、接触を検出した後、接触のリフトオフを検出する前、接触の移動の開始を検出する前若しくは後、接触の終わりを検出する前、接触の強度における増大を検出する前若しくは後、及び／又は接触の強度における減少を検出する前若しくは後）予め定められた時間期間の間（例えば、０．０５、０．１、０．２、０．５、１、２、５、１０秒）に収集された強度サンプルの組に基づく。接触の特性強度は、任意選択的に、接触の強度の最大値、接触の強度の平均値（mean value）、接触の強度の平均値（average value）、接触の強度の上位１０％値、接触の強度の最大値の半分の値、接触の強度の最大値の９０％の値などのうちの１つ以上に基づく。いくつかの実施形態では、接触の期間は、特性強度を判定する際に使用される（例えば、特性強度が経時的な接触の強度の平均にあるとき）。いくつかの実施形態では、特性強度は、操作がユーザによって実行されたかを判定するために１つ以上の強度閾値の組と比較される。例えば、１つ以上の強度閾値のセットは、第１の強度閾値及び第２の強度閾値を含んでもよい。この実施例では、第１の閾値を越えない特性強度を有する接触の結果として第１の動作が実行され、第１の強度閾値を越え、第２の強度閾値を越えない特性強度を有する接触の結果として第２の動作が実行され、第２の閾値を越える特性強度を有する接触の結果として第３の動作が実行される。いくつかの実施形態では、特性強度と１つ以上の閾値との間の比較が、第１の動作又は第２の動作のいずれを実行するかを判定するために使用されるのではなく、１つ以上の動作を実行するかどうか（例えば、それぞれの動作を実行するか、又はそれぞれの動作の実行を省略するか）を判定するために使用される。
【０１４８】
いくつかの実施形態では、特性強度を判定する目的で、ジェスチャの一部が特定される。例えば、タッチ感知面は、その点において接触の強度が増加する、開始位置から遷移して終了位置まで到達する連続的なスワイプ接触を受信してもよい。この実施例では、終了位置における接触の特性強度は、連続的なスワイプ接触全体ではなく、そのスワイプ接触の一部のみ（例えば、終了位置におけるスワイプ接触の一部のみ）に基づいてもよい。いくつかの実施形態では、接触の特性強度を判定する前に、平滑化アルゴリズムをスワイプ接触の強度に適用してもよい。例えば、平滑化アルゴリズムは、任意選択的に、非荷重移動平均平滑化アルゴリズム、三角平滑化アルゴリズム、中央値フィルタ平滑化アルゴリズム、及び／又は指数平滑化アルゴリズムのうちの１つ以上を含む。いくつかの状況では、これらの平滑化アルゴリズムは、特性強度を判定する目的で、スワイプ接触の強度の小幅な上昇又は低下を除外する。
【０１４９】
タッチ感知面上の接触の強度は、接触検出強度閾値、軽い押圧強度閾値、深い押圧強度閾値、及び／又は１つ以上の他の強度閾値などの１つ以上の強度閾値に対して特徴付けられてもよい。いくつかの実施形態では、軽い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的と関連付けられた動作をデバイスが実行する強度に相当する。いくつかの実施形態では、深い押圧強度閾値は、物理マウスのボタン又はトラックパッドのクリックに典型的と関連付けられた動作とは異なる動作をデバイスが実行する強度に相当する。いくつかの実施形態では、軽い押圧強度閾値を下回る（例えば、かつ、それを下回ると接触がもはや検出されない名目上の接触検出強度閾値を上回る）特性強度で接触が検出されるとき、デバイスは、軽い押圧強度閾値又は深い押圧強度閾値と関連付けられた動作を実行することなく、タッチ感知面上の接触の移動に従ってフォーカスセレクタを移動させる。概して、特に明記されない限り、これらの強度閾値は、ユーザインタフェースの外観の異なるセットの間で一貫している。
【０１５０】
軽い押圧強度閾値を下回る強度から、軽い押圧強度閾値と深い押圧強度閾値との間の強度への接触の特性強度の増大は、「軽い押圧」入力と呼ばれる場合がある。深い押圧強度閾値を下回る強度から、深い押圧強度閾値を上回る強度への接触の特性強度の増大は、「深い押圧」入力と呼ばれる場合がある。接触検出強度閾値を下回る強度から、接触検出強度閾値と軽い押圧強度閾値との間の強度への接触の特性強度の増大は、タッチ面上の接触の検出と呼ばれる場合がある。接触検出強度閾値を上回る強度から、接触検出強度閾値を下回る強度への接触の特性強度の減少は、タッチ面からの接触のリフトオフの検出と呼ばれる場合がある。いくつかの実施形態では、接触検出強度閾値はゼロである。いくつかの実施形態では、接触検出強度閾値はゼロより大きい。
【０１５１】
本明細書で説明されるいくつかの実施形態では、１つ以上の操作は、それぞれの押圧入力を含むジェスチャを検出したことに応じて、又はそれぞれの接触（若しくは、複数の接触）で実行されるそれぞれの押圧入力を検出したことに応じて実行され、それぞれの押圧入力は、押圧入力強度閾値を上回る接触（又は、複数の接触）の強度における増大を検出したことに少なくとも部分的に基づいて検出される。いくつかの実施形態では、それぞれの動作は、押圧入力強度閾値を上回る、それぞれの接触の強度の増大（例えば、それぞれの押圧入力の「ダウンストローク」）の検出に応じて実行される。いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及び後続の押圧入力強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、後続の押圧入力閾値を下回るそれぞれの接触の強度の減少（例えば、それぞれの押圧入力の「アップストローク」）の検出に応じて実行される。
【０１５２】
いくつかの実施形態では、デバイスは、「ジッタ」と呼ばれる場合がある不測の入力を回避するために強度ヒステリシスを採用し、デバイスは、押圧入力強度閾値との予め定義された関係を有するヒステリシス強度閾値を定義又は選択する（例えば、ヒステリシス強度閾値は、押圧入力強度閾値よりもＸ強度単位低いか、又はヒステリシス強度閾値は、押圧入力強度閾値の７５％、９０％、若しくは何らかの妥当な比率である）。よって、いくつかの実施形態では、押圧入力は、押圧入力強度閾値を上回るそれぞれの接触の強度の増大、及び後続の押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少を含み、それぞれの動作は、そのヒステリシス強度閾値を下回る後続のそれぞれの接触の強度の減少（例えば、それぞれの押圧入力の「アップストローク」）の検出に応じて実行される。同様に、いくつかの実施形態では、押圧入力は、デバイスが、ヒステリシス強度閾値以下の強度から押圧入力強度閾値以上の強度への接触の強度の増大、及び任意選択的に、ヒステリシス強度以下の強度への後続の接触の強度の減少を検出するときのみ検出され、それぞれの動作は、その押圧入力の検出（例えば、状況に応じて、接触の強度の増大、又は接触の強度の減少）に応じて実行される。
【０１５３】
説明を容易にするために、押圧入力強度閾値と関連付けられた押圧入力に応じて、又は押圧入力を含むジェスチャに応じて実行される動作の説明は、任意選択的に、押圧入力強度閾値を上回る接触の強度の増大、ヒステリシス強度閾値を下回る強度から押圧入力強度閾値を上回る強度への接触の強度の増大、押圧入力強度閾値を下回る接触の強度の減少、及び／又は押圧入力強度閾値に対応するヒステリシス強度閾値を下回る接触の強度の減少のいずれかを検出したことに応じてトリガされる。加えて、押圧入力強度閾値を下回る接触の強度の減少を検出したことに応じて動作が実行されるとして説明される実施例では、動作は、任意選択的に、押圧入力強度閾値に対応し、かつそれよりも低いヒステリシス強度閾値を下回る接触の強度の減少を検出したことに応じて実行される。
３．デジタルアシスタントシステム
【０１５４】
図７Ａは、様々な実施例に従った、デジタルアシスタントシステム７００のブロック図を示す。いくつかの実施例では、デジタルアシスタントシステム７００はスタンドアロンコンピュータシステム上で実装されてもよい。いくつかの実施例では、デジタルアシスタントシステム７００は、複数のコンピュータにわたって分散されてもよい。いくつかの実施例では、デジタルアシスタントのモジュール及び機能のうちのいくつかは、サーバ部分及びクライアント部分に分割されてもよく、クライアント部分は、例えば、図１に示すように、１つ以上のユーザデバイス（例えば、デバイス１０４、デバイス１２２、デバイス２００、デバイス４００、又はデバイス６００）上に常駐し、１つ以上のネットワークを通じてサーバ部分（例えば、サーバシステム１０８）と通信する。いくつかの実施例では、デジタルアシスタントシステム７００は、図１に示されたサーバシステム１０８（及び／又はＤＡサーバ１０６）の実装形態とすることができる。デジタルアシスタントシステム７００は、デジタルアシスタントシステムの１つの実施例に過ぎず、デジタルアシスタントシステム７００は、図示されているよりも多くの又は少ない構成要素を有してもよく、２つ以上の構成要素を組合せてもよく、又は構成要素の異なる構成又は配置を有することができることに留意されたい。図７Ａに示される様々な構成要素は、１つ以上の信号処理回路及び／若しくは特定用途向け集積回路を含むハードウェア、１つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、又はそれらの組合せで実装されてもよい。
【０１５５】
デジタルアシスタントシステム７００は、メモリ７０２、１つ以上のプロセッサ７０４、入出力（Ｉ／Ｏ）インタフェース７０６、及びネットワーク通信インタフェース７０８を含むことができる。これらの構成要素は、１つ以上の通信バス又は信号線７１０を通じて相互に通信することができる。
【０１５６】
いくつかの実施例では、メモリ７０２は、高速ランダムアクセスメモリ並びに／又は不揮発性コンピュータ可読記憶媒体（例えば、１つ以上の磁気ディスク記憶デバイス、フラッシュメモリデバイス、若しくは他の不揮発性固体メモリデバイス）など、非一時的コンピュータ可読媒体を含むことができる。
【０１５７】
いくつかの実施例では、Ｉ／Ｏインタフェース７０６は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォンなどのデジタルアシスタントシステム７００の入出力デバイス７１６をユーザインタフェースモジュール７２２に結合することができる。Ｉ／Ｏインタフェース７０６は、ユーザインタフェースモジュール７２２と連携して、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力など）を受信し、それらを適宜に処理することができる。いくつかの実施例では、例えば、デジタルアシスタントがスタンドアロンユーザデバイス上で実装されるとき、デジタルアシスタントシステム７００は、図２Ａ、図４、図６Ａ〜図６Ｂにおいてそれぞれデバイス２００、デバイス４００、又はデバイス６００に関連して説明された構成要素及びＩ／Ｏ通信インタフェースのいずれかを含むことができる。いくつかの実施例では、デジタルアシスタントシステム７００は、デジタルアシスタントの実装形態のサーバ部分を表すことができ、ユーザデバイス（例えば、デバイス１０４、デバイス２００、デバイス４００、又はデバイス６００）上に常駐するクライアント側部分を通じてユーザと対話することができる。
【０１５８】
いくつかの実施例では、ネットワーク通信インタフェース７０８は、有線通信ポート（単数又は複数）７１２及び／又は無線送受信回路７１４を含むことができる。有線通信ポート（単数又は複数）は、１つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥなどを介して通信信号を受信及び送信することができる。無線回路７１４は、通信ネットワーク及び他の通信デバイスをから／にＲＦ信号及び／又は光信号を受信及び送信することができる。無線通信は、ＧＳＭ、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ、Ｗｉ−Ｆｉ、ＶｏＩＰ、Ｗｉ−ＭＡＸ、又はいずれかのその他の適切な通信プロトコルなどの、複数の通信規格、プロトコル、及び技術のうちのいずれかを使用することができる。ネットワーク通信インタフェース７０８は、インターネット、イントラネットなどのネットワーク、及び／若しくはセルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）などの無線ネットワーク、並びイに／又はメトロポリタンエリアネットワーク（Metropolitan Area Network、ＭＡＮ）でデジタルアシスタントシステム７００と他のデバイスとの間の通信を可能にすることができる。
【０１５９】
いくつかの実施例では、メモリ７０２、又はメモリ７０２のコンピュータ可読記憶媒体は、オペレーティングシステム７１８、通信モジュール７２０、ユーザインタフェースモジュール７２２、１つ以上のアプリケーション７２４、及びデジタルアシスタントモジュール７２６の全て又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶することができる。特に、メモリ７０２又はメモリ７０２のコンピュータ可読記憶媒体は、以下で説明される処理１２００を実行する命令を記憶することができる。１つ以上のプロセッサ７０４は、これらのプログラム、モジュール、及び命令を実行し、データ構造から／へと読み出し／書き込みを実行することができる。
【０１６０】
オペレーティングシステム７１８（例えば、Ｄａｒｗｉｎ、ＲＴＸＣ（、ＬＩＮＵＸ、ＵＮＩＸ、ｉＯＳ、ＯＳ  Ｘ、ＷＩＮＤＯＷＳ、又はＶｘＷｏｒｋｓなどの組み込みオペレーティングシステム）は、一般的なシステムタスク（例えば、メモリ管理、記憶装置制御、電力管理など）を制御及び管理するための様々なソフトウェア構成要素及び／又はドライバを含むことができ、様々なハードウェア、ファームウェア、及びソフトウェア構成要素間の通信を促進する。
【０１６１】
通信モジュール７２０は、ネットワーク通信インタフェース７０８上でデジタルアシスタントシステム７００と他のデバイスとの間の通信を促進する。例えば、通信モジュール７２０は、図２Ａ、図４、図６Ａ〜図６Ｂにそれぞれ示されるデバイス２００、デバイス４００、及びデバイス６００などの電子デバイスのＲＦ回路２０８と通信してもよい。通信モジュール７２０はまた、無線回路７１４及び／又は有線通信ポート７１２により受信されたデータを処理するための様々な構成要素を含むことができる。
【０１６２】
ユーザインタフェースモジュール７２２は、Ｉ／Ｏインタフェース７０６を介して（例えば、キーボード、タッチスクリーン、ポインティングデバイス、コントローラ、及び／又はマイクロフォンから）ユーザからのコマンド及び／又は入力を受信することができ、ディスプレイ上でユーザインタフェースオブジェクトを生成することができる。ユーザインタフェースモジュール７２２はまた、Ｉ／Ｏインタフェース７０６を介して（例えば、ディスプレイ、音声チャネル、スピーカ、タッチパッドなどを通じて）、ユーザへの出力（例えば、発話、音声、アニメーション、テキスト、アイコン、振動、触覚フィードバック、光など）を準備及び配信することができる。
【０１６３】
アプリケーション７２４は、１つ以上のプロセッサ７０４により実行されるように構成されたプログラム及び／又はモジュールを含むことができる。例えば、デジタルアシスタントシステムがスタンドアロンのユーザデバイス上で実装される場合、アプリケーション７２４は、ゲーム、カレンダアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーションなどのユーザアプリケーションを含むことができる。デジタルアシスタントシステム７００がサーバ上で実装される場合、アプリケーション７２４は、例えば、リソース管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含むことができる。
【０１６４】
メモリ７０２はまた、デジタルアシスタントモジュール７２６（又はデジタルアシスタントのサーバ部分）を記憶することができる。いくつかの実施例では、デジタルアシスタントモジュール７２６は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含むことができる：入出力処理モジュール７２８、音声テキスト（ＳＴＴ）処理モジュール７３０、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、タスクフロー処理モジュール７３６、サービス処理モジュール７３８、及び音声合成モジュール７４０。これらのモジュールの各々は、デジタルアシスタントモジュール７２６の以下のシステム又はデータ及びモデルのうちの１つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有することができる：オントロジ７６０、語彙索引７４４、ユーザデータ７４８、タスクフローモデル７５４、サービスモデル７５６、及びＡＳＲシステム。
【０１６５】
いくつかの実施例では、デジタルアシスタントモジュール７２６において実装された処理モジュール、データ、及びモデルを使用して、デジタルアシスタントは以下のもののうちの少なくともいくつかを実行することができる：発話入力をテキストに変換すること、ユーザから受信した自然言語入力内で表現されるユーザの意図を特定すること、ユーザの意図を完全に推測するために必要な情報を（例えば、単語、ゲーム、意図などの曖昧さを除去することによって）能動的に引き出し、取得すること、推測された意図を満たすためのタスクフローを判定すること、及びタスクフローを実行して、推測された意図を満たすこと。
【０１６６】
いくつかの実施例では、図７Ｂに示されるように、Ｉ／Ｏ処理モジュール７２８は、ユーザ入力（例えば、発話入力）を取得するため、及びユーザ入力への応答を（例えば、発話出力として）提供するために、図７ＡにおけるＩ／Ｏデバイス７１６を通じてユーザと対話することができ、又は図７Ａにおけるネットワーク通信インタフェース７０８を通じてユーザデバイス（例えば、デバイス１０４、デバイス２００、デバイス４００、若しくはデバイス６００）と対話することができる。Ｉ／Ｏ処理モジュール７２８は、任意選択的に、ユーザ入力と共に、又はその受信の直後に、ユーザ入力と関連付けられるコンテキスト情報をユーザデバイスから取得することができる。コンテキスト情報は、ユーザ入力に関連するユーザ特有データ、語彙、及び／又は優先度を含むことができる。いくつかの実施例では、コンテキスト情報はまた、ユーザ要求が受信された時点におけるユーザデバイスのソフトウェア及びハードウェア状態、並びに／又はユーザ要求が受信された時点におけるユーザの周囲環境に関する情報を含む。いくつかの実施例では、Ｉ／Ｏ処理モジュール７２８はまた、ユーザ要求に関して、ユーザに補足質問を送信し、ユーザから回答を受信することができる。ユーザ要求がＩ／Ｏ処理モジュール７２８によって受信され、ユーザ要求が発話入力を含むことができるとき、Ｉ／Ｏ処理モジュール７２８は、発話テキスト変換のために、発話入力をＳＴＴ処理モジュール７３０（又は、発話認識器）に転送することができる。
【０１６７】
ＳＴＴ処理モジュール７３０は１つ以上のＡＳＲシステムを含むことができる。１つ以上のＡＳＲシステムは、Ｉ／Ｏ処理モジュール７２８を介して受信された発話入力を処理して、認識結果を生成することができる。各々のＡＳＲシステムは、フロントエンド発話プリプロセッサを含むことができる。フロントエンド発話プリプロセッサは、発話入力から代表的な特徴を抽出することができる。例えば、フロントエンド発話プリプロセッサは、発話入力を代表的な多次元ベクトルの列として特徴付けるスペクトル特徴を抽出するために、発話入力に対してフーリエ変換を実行することができる。更に、各々のＡＳＲシステムは、１つ以上の発話認識モデル（例えば、音響モデル及び／又は言語モデル）を含むことができ、１つ以上の発話認識エンジンを実装することができる。発話認識モデルの実施例は、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、ｎグラム言語モデル、及び他の統計モデルを含むことができる。発話認識エンジンの実施例は、動的時間伸縮ベースのエンジン及び重み付き有限状態トランスデューサ（ＷＦＳＴ）ベースのエンジンを含むことができる。フロントエンド発話プリプロセッサの抽出された代表的な特徴を処理して、中間認識結果（例えば、音標、音標文字列、及び部分単語）を生成し、最終的には、テキスト認識結果（例えば、単語、単語文字列、又はトークンの列）を生成するために、１つ以上の発話認識モデル及び１つ以上の発話認識エンジンを使用することができる。いくつかの実施例では、発話入力は、認識結果を生成するために、サードパーティサービスによって、又はユーザのデバイス（例えば、デバイス１０４、デバイス２００、デバイス４００、若しくはデバイス６００）上で少なくとも部分的に処理することができる。ＳＴＴ処理モジュール７３０が、テキスト文字列（例えば、単語、単語の列、又はトークンの列）を包含する認識結果を生成すると、認識結果は意図推論のために自然言語処理モジュール７３２に渡されることができる。例示的なＡＳＲシステムは、図９で更に詳細に説明される。
【０１６８】
音声テキスト処理についての更なる詳細は、その全体が参照により本明細書に組み込まれる、２０１１年９月２０日に出願された、「Ｃｏｎｓｏｌｉｄａｔｉｎｇ  Ｓｐｅｅｃｈ  Ｒｅｃｏｇｎｉｔｉｏｎ  Ｒｅｓｕｌｔｓ」についての米国実用特許出願第１３／２３６，９４２号に説明される。
【０１６９】
いくつかの実施例では、ＳＴＴ処理モジュール７３０は、認識可能な単語の語彙を含むことができ、及び／又は音標アルファベット変換モジュール７３１を介してそれにアクセスすることができる。各々の語彙語は、１つ以上の発話認識音標アルファベットで表される単語の発音候補と関連付けられてもよい。特に、認識可能な単語の語彙は、複数の発音候補と関連付けられた単語を含むことができる。例えば、語彙は、発音候補／
【数１】
2019512105.tif 000003
と関連付けられた単語「トマト」を含むことができる。更に、語彙語は、ユーザからの前の発話入力に基づく、カスタム発音候補と関連付けられてもよい。そのようなカスタム発音候補は、ＳＴＴ処理モジュール７３０に記憶されてもよく、デバイス上のユーザのプロファイルを介して、特定のユーザと関連付けられてもよい。いくつかの実施例では、単語の発音候補は、単語の綴り、並びに１つ以上の言語規則及び／又は音標規則に基づいて判定されてもよい。いくつかの実施例では、例えば、発音候補は、既知の正規発音に基づいて手動で生成されてもよい。
【０１７０】
いくつかの実施例では、発音候補は、発音候補の一般性に基づいてランク付けされてもよい。例えば、発音候補
【数２】
2019512105.tif 000004
が（例えば、全てのユーザのうち、特定の地理的領域のユーザについて、又はいずれかの他の適切なユーザのサブセットについて）より一般的に使用される発音であることを理由に、発音候補
【数３】
2019512105.tif 000005
は、
【数４】
2019512105.tif 000006
よりも高くランク付けされてもよい。いくつかの実施例では、発音候補は、発音候補がユーザと関連付けられたカスタム発音候補であるかに基づいてランク付けされてもよい。例えば、カスタム発音候補は、正規発音候補よりも高くランク付けされてもよい。このことは、正規発音から逸脱する独特の発音を有する固有名詞を認識するために有用となることがある。いくつかの実施例では、発音候補は、出身地、国籍又は民族性などの１つ以上の発話特性と関連付けられてもよい。例えば、発音候補
【数５】
2019512105.tif 000007
が米国と関連付けられてもよいのに対し、発音候補
【数６】
2019512105.tif 000008
は英国と関連付けられてもよい。更に、発音候補のランクは、デバイス上のユーザのプロファイルに記憶されたユーザの１つ以上の特性（例えば、出身地、国籍、民族など）に基づいてもよい。例えば、ユーザのプロファイルから、ユーザが米国と関連付けられていることが判定されてもよい。ユーザが米国と関連付けられていることに基づいて、（米国と関連付けられた）発音候補
【数７】
2019512105.tif 000009
は、（英国と関連付けられた）発音候補
【数８】
2019512105.tif 000010
よりも高くランク付けされてもよい。いくつかの実施例では、ランク付けされた発音候補のうちの１つは、予測された発音（例えば、最も可能性が高い発音）として選択されてもよい。
【０１７１】
発話入力が受信されるとき、ＳＴＴ処理モジュール７３０は、発話入力に対応する音標を（例えば、音響モデルを用いて）判定し、次に、音標に一致する単語を（例えば、言語モデルを用いて）決定することを試みるために使用されてもよい。例えば、ＳＴＴ処理モジュール７３０は、発話入力の一部に対応する音標の列
【数９】
2019512105.tif 000011
を最初に特定することができる場合、語彙インデックス７４４に基づいて、この音標の列が単語「トマト」に対応すると判定することができる。
【０１７２】
いくつかの実施例では、ＳＴＴ処理モジュール７３０は、音声入力内の単語を判定するために近似マッチング技術を使用することができる。よって、例えば、ＳＴＴ処理モジュール７３０は、特定の音標の列が、単語「トマト」の候補音標の列のうちの１つではない場合でさえ、音標の列
【数１０】
2019512105.tif 000012
が単語「トマト」に対応すると判定することができる。
【０１７３】
デジタルアシスタントの自然言語処理モジュール７３２（「自然言語プロセッサ」）は、ＳＴＴ処理モジュール７３０によって生成された単語又はトークンの列（「トークン列」）を取得し、トークン列を、デジタルアシスタントによって認識される１つ以上の「実施可能な意図」に関連付けることを試みることができる。「実施可能な意図」は、デジタルアシスタントによって実行することができるタスクを表すことができ、タスクフローモデル７５４において実装される、関連付けられたタスクフローを有することができる。関連付けられたタスクフローは、タスクを実行するためにデジタルアシスタントが取る一連のプログラムされたアクション及びステップとすることができる。デジタルアシスタントの能力の範囲は、タスクフローモデル７５４において実装及び記憶されたタスクフローの数及び種類に依存し、すなわち、換言すれば、デジタルアシスタントが認識する「実施可能な意図」の数及び種類に依存することができる。しかしながら、デジタルアシスタントの有効性はまた、自然言語内で表現されるユーザ要求から正確な「実施可能な意図（単数又は複数）」を推定するアシスタントの能力に依存することができる。
【０１７４】
いくつかの実施例では、ＳＴＴ処理モジュール７３０から取得される単語又はトークン列に加えて、自然言語処理モジュール７３２はまた、例えば、Ｉ／Ｏ処理モジュール７２８から、ユーザ要求と関連付けられたコンテキスト情報を受信することができる。自然言語処理モジュール７３２は、任意選択的に、ＳＴＴ処理モジュール７３０から受信されたトークン列内に包含される情報を明らかにし、補完し、及び／又は更に定義するために、コンテキスト情報を使用することができる。コンテキスト情報は、例えば、ユーザ優先度、ユーザデバイスのハードウェア及び／又はソフトウェア状態、ユーザ要求の前、間、若しくは直後に収集されたセンサ情報、並びにデジタルアシスタントとユーザとの間の前の対話（例えば、ダイアログ）などを含むことができる。本明細書で説明されるように、コンテキスト情報は動的であってもよく、時間、位置、ダイアログの内容、及び他の因子によって変化することができる。
【０１７５】
いくつかの実施例では、自然言語処理は、オントロジ７６０に基づいてもよい。オントロジ７６０は、多数のノードを包含する階層構造とすることができ、各々のノードは、「実施可能な意図」又は他の「属性」のうちの１つ以上に関連する「実施可能な意図」又は「属性」のいずれかを表す。上述したように、「実施可能な意図」は、デジタルアシスタントが実行する能力を有する、即ち、それは「実施可能」であり、又は作用を及ぼされてもよいタスクを表すことができる。「属性」は、実施可能な意図、又は別の属性の下位態様と関連付けられたパラメータを表すことができる。オントロジ７６０内の実施可能な意図ノードと属性ノードとの間のリンクは、属性ノードにより表されるパラメータが、実施可能な意図ノードによって表されるタスクにどのように関係するのかを定義することができる。
【０１７６】
いくつかの実施例では、オントロジ７６０は、実施可能な意図ノード及び属性ノードで構成されてもよい。オントロジ７６０内では、各々の実施可能な意図ノードは、直接又は１つ以上の中間属性ノードを介して、１つ以上の属性ノードにリンク付けされてもよい。同様に、各々の属性ノードは、直接又は１つ以上の中間属性ノードを介して、１つ以上の実施可能な意図ノードにリンク付けされてもよい。例えば、図７Ｃに示されるように、オントロジ７６０は、「レストラン予約」ノード（すなわち、実施可能な意図ノード）を含んでもよい。属性ノードである「レストラン」、「日付／時間」（予約用）及び「参加人数」は各々、実施可能な意図ノード（即ち、「レストラン予約」ノード）に直接リンク付けされてもよい。
【０１７７】
加えて、属性ノード「料理」、「価格帯」、「電話番号」及び「ロケーション」は、属性ノード「レストラン」のサブノードであってもよく、各々が中間属性ノード「レストラン」を介して「レストラン予約」ノード（即ち、実施可能な意図ノード）にリンク付けされてもよい。別の例として、図７Ｃに示されるように、オントロジ７６０はまた、「リマインダ設定」ノード（即ち、別の実施可能な意図ノード）を含むことができる。属性ノード「日付／時間」（リマインダ設定用）及び「テーマ」（リマインダ用）は各々、「リマインダ設定」ノードにリンク付けされてもよい。属性ノード「日付／時間」は、レストラン予約をするタスク及びリマインダを設定するタスクの両方に関連することがあるので、属性ノード「日付／時間」はオントロジ７６０内で「レストラン予約」ノード及び「リマインダ設定」ノードの両方にリンク付けされてもよい。
【０１７８】
実施可能な意図ノードは、そのリンクされた属性ノードと共に、「ドメイン」として説明されることがある。本議論では、各々のドメインは、それぞれの実施可能な意図と関連付けられてもよく、特定の実施可能な意図と関連付けられたノードのグループ（及び、ノードの間の関係）を指す。例えば、図７Ｃに示されるオントロジ７６０は、オントロジ７６０内のレストラン予約ドメイン７６２の例、及びリマインダドメイン７６４の例を含むことができる。レストラン予約ドメインは、実施可能な意図ノード「レストラン予約」、属性ノード「レストラン」、「日付／時間」、及び「参加人数」、並びに下位属性ノード「料理」、「価格帯」、「電話番号」及び「ロケーション」を含む。リマインダドメイン７６４は、実施可能な意図ノード「リマインダ設定」、並びに属性ノード「テーマ」及び「日付／時間」を含んでもよい。いくつかの実施例では、オントロジ７６０は多、くのドメインで構成されてもよい。各々のドメインは、１つ以上の他のドメインと１つ以上の属性ノードを共有することができる。例えば、「日付／時間」属性ノードは、レストラン予約ドメイン７６２及びリマインダドメイン７６４に加えて、多くの異なるドメイン（例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど）と関連付けられてもよい。
【０１７９】
図７Ｃは、オントロジ７６０内の２つの例示的なドメインを示すが、他のドメインは、例えば、「映画を探す」、「通話を開始する」、「道順を探す」、「会議をスケジュールする」、「メッセージを送信する」、「質問への回答を提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、及び「タスクについての手順を提供する」などを含むことができる。「メッセージを送信する」ドメインは、「メッセージを送信する」の実施可能な意図ノードと関連付けられてもよく、「受信者（単数又は複数）」、「メッセージタイプ」、及び「メッセージ本文」などの属性ノードを更に含んでもよい。属性ノード「受信者」は更に、例えば、「受信者名」及び「メッセージアドレス」などの下位属性ノードによって定義されてもよい。
【０１８０】
いくつかの実施例では、オントロジ７６０は、デジタルアシスタントが理解し、作用を及ぼす能力を有する全てのドメイン（したがって、実施可能な意図）を含むことができる。いくつかの実施例では、オントロジ７６０は、ドメイン若しくはノード全体を追加又は除去することによって、又はオントロジ７６０内のノードの間の関係を修正するなどによってなど修正されてもよい。
【０１８１】
いくつかの実施例では、複数の関連する実施可能な意図と関連付けられたノードは、オントロジ７６０内の「上位ドメイン」の下にクラスタ化されてもよい。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードのクラスタを含んでもよい。旅行に関連する実施可能な意図ノードは、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、及び「興味のある場所を探す」などを含むことができる。同一の上位ドメイン（例えば、「旅行」上位ドメイン）の下の実施可能な意図ノードは、共通する多くの属性ノードを有することができる。例えば、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、及び「興味のある場所を探す」についての実施可能な意図ノードは、属性ノード「出発場所」、「目的地」、「出発日／時間」、「到着日／時間」、及び「参加人数」のうちの１つ以上を共有することができる。
【０１８２】
いくつかの実施例では、オントロジ７６０内の各々のノードは、ノードによって表される属性又は実施可能な意図に関連する単語及び／又はフレーズのセットと関連付けられてもよい。各々のノードと関連付けられた単語及び／又はフレーズのそれぞれのセットは、ノードと関連付けられたいわゆる「語彙」とすることができる。各々のノードと関連付けられた単語及び／又はフレーズのそれぞれのセットは、ノードによって表される属性又は実施可能な意図と関連して語彙索引７４４に記憶されてもよい。例えば、図７Ｂに戻ると、「レストラン」の属性についてのノードと関連付けられた語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファストフード」、及び「食事」などの単語を含むことができる。別の例として、「通話を開始する」の実施可能な意図についてのノードと関連付けられた語彙は、「電話する（call）」、「電話（phone）」、「ダイヤルする（dial）」、「電話をかける（ring）」、「この番号に電話する（call this number）」、及び「〜に電話をかける（make a call to）」などの単語及びフレーズを含むことができる。語彙索引７４４は、任意選択的に、異なる言語内の単語及びフレーズを含むことができる。
【０１８３】
自然言語処理モジュール７３２は、ＳＴＴ処理モジュール７３０からトークン列（例えば、テキスト文字列）を受信し、トークン列内の単語がどのノードを暗示しているのかを判定することができる。いくつかの実施例では、トークン列内の単語又はフレーズが（語彙索引７４４を介して）オントロジ７６０内の１つ以上のノードと関連付けられていることが発見される場合、単語又はフレーズは、それらのノードを「トリガする」又は「アクティブ化する」ことができる。アクティブ化されたノードの量及び／又は相対的重要度に基づき、自然言語処理モジュール７３２は、ユーザがデジタルアシスタントに実行させようと意図したタスクとして、実施可能な意図のうちの１つを選択することができる。いくつかの実施例では、最も多く「トリガされた」ノードを有するドメインが選択されてもよい。いくつかの実施例では、最も高い信頼値を有するドメインが（例えば、その様々なトリガされたノードの相対的重要度に基づいて）選択されてもよい。いくつかの実施例では、トリガされたノードの数及び重要度の組合せに基づいて、ドメインが選択されてもよい。いくつかの実施例では、ノードを選択する際には、デジタルアシスタントがユーザからの同様の要求を前に正確に解釈したかなどの追加の因子が考慮される。
【０１８４】
ユーザデータ７４８は、ユーザ特有語彙、ユーザ優先度、ユーザアドレス、ユーザのデフォルトの言語及び第二言語、ユーザの連絡先リスト、並びに各ユーザに関するその他の短期的若しくは長期的情報などのユーザ特有情報を含むことができる。いくつかの実施例では、自然言語処理モジュール７３２は、ユーザ入力内に包含された情報を補完してユーザの意図を更に明確にするために、ユーザ特有情報を使用することができる。例えば、ユーザ要求「私の誕生日パーティーに私の友人を招待して下さい（invite my friends to my birthday party）」について、自然言語処理モジュール７３２は、誰が「友人」であり、いつ及びどこで「誕生日パーティー」が催されるのであるかを判定するために、そのような情報をユーザの要求において明示的に提供するようにユーザに要求するではなく、ユーザデータ７４８にアクセスすることができる。
【０１８５】
トークン文字列に基づくオントロジを検索することのその他の詳細は、その全体が参照により本明細書に組み込まれる、２００８年１２月２２日出願の「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｅａｒｃｈｉｎｇ  Ｕｓｉｎｇ  ａｎ  Ａｃｔｉｖｅ  Ｏｎｔｏｌｏｇｙ」に対する米国実用特許出願第１２／３４１，７４３号において説明される。
【０１８６】
いくつかの実施例では、自然言語処理モジュール７３２が、ユーザ要求に基づいて実施可能な意図（又はドメイン）を特定すると、自然言語処理モジュール７３２は、特定された実施可能な意図を表すように、構造化されたクエリを生成することができる。いくつかの実施例では、構造化されたクエリは、実施可能な意図に関するドメイン内の１つ以上のノードについてのパラメータを含むことができ、パラメータの少なくともいくつかは、ユーザ要求で指定された特定の情報及び要求事項が追加される。例えば、ユーザは、「７時に寿司屋で夕食の予約を取って下さい（Make me a dinner reservation at a sushi place at 7）」と言うことがある。このケースでは、自然言語処理モジュール７３２は、ユーザ入力に基づいて、実施可能な意図を「レストラン予約」であると正確に特定することが可能であってもよい。オントロジに従って、「レストラン予約」ドメインについての構造化されたクエリは、｛料理｝、｛時間｝、｛日付｝、及び｛参加人数｝などのパラメータを含んでもよい。いくつかの実施例では、発話入力、及びＳＴＴ処理モジュール７３０を使用して発話入力から導出されたテキストに基づいて、自然言語処理モジュール７３２は、レストラン予約ドメインのための部分的な構造化されたクエリを生成することができ、部分的な構造化されたクエリは、パラメータ｛料理＝「寿司」｝及びパラメータ｛時間＝「午後７時」｝を含む。しかしながら、この例では、ユーザの発話入力は、ドメインと関連付けられた構造化されたクエリを完了するために十分な情報を包含していない。したがって、｛参加人数｝及び｛日付｝などのその他の必要パラメータは、現在利用可能な情報に基づいて、構造化されたクエリ内に指定されなくてもよい。いくつかの実施例では、自然言語処理モジュール７３２は、構造化されたクエリのいくつかのパラメータに、受信したコンテキスト情報を追加することができる。例えば、いくつかの実施例では、ユーザが「私の近くの」寿司レストランを要求した場合、自然言語処理モジュール７３２は、構造化されたクエリ内の｛ロケーション｝パラメータにユーザデバイスからのＧＰＳ座標を追加することができる。
【０１８７】
いくつかの実施例では、自然言語処理モジュール７３２は、（いずれかの完了したパラメータを含む）生成した構造化されたクエリをタスクフロー処理モジュール７３６（「タスクフロープロセッサ」）に渡すことができる。タスクフロー処理モジュール７３６は、自然言語処理モジュール７３２から、構造化されたクエリを受信し、必要な場合、構造化されたクエリを完了し、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するように構成されてもよい。いくつかの実施例では、これらのタスクを完了するために必要な様々な手順は、タスクフローモデル７５４において提供されてもよい。いくつかの実施例では、タスクフローモデル７５４は、ユーザから追加情報を取得するための手順、及び実施可能な意図と関連付けられたアクションを実行するためのタスクフローを含むことができる。
【０１８８】
上記説明されたように、構造化されたクエリを完了するために、タスクフロー処理モジュール７３６は、追加情報を取得し、及び／又は潜在的に曖昧な発話入力の曖昧性を回避するために、ユーザとの追加のダイアログを開始することが必要になることがある。このような対話が必要となるとき、タスクフロー処理モジュール７３６は、ユーザとのダイアログに携わるためにダイアログフロー処理モジュール７３４を呼び出すことができる。いくつかの実施例では、ダイアログフロー処理モジュール７３４は、どのように（及び／又は、いつ）ユーザに追加情報を求めるべきかを決定することができ、ユーザ応答を受信し、これらを処理する。Ｉ／Ｏ処理モジュール７２８を通じてユーザに質問を提供することができ、ユーザから回答を受信することができる。いくつかの実施例では、ダイアログフロー処理モジュール７３４は音声及び／又は視覚出力を介してユーザにダイアログ出力を提示することができ、口頭の応答又は物理的な（例えば、クリック）応答を介してユーザから入力を受信する。上述の例を続けると、タスクフロー処理モジュール７３６が、ドメイン「レストラン予約」に関連付けられる構造化されたクエリについての「参加人数」及び「日付」情報を決定するためにダイアログフロー処理モジュール７３４を呼び出すとき、ダイアログフロー処理モジュール７３４は、「何人分ですか？（For how many people?）」及び「どの日にしますか？（On which day?）」などの質問をユーザに渡すために生成してもよい。ユーザから回答が受信されると、次に、ダイアログフロー処理モジュール７３４は、構造化されたクエリに欠けている情報を追加することができ、又は構造化されたクエリから欠けている情報を完了するために、情報をタスクフロー処理モジュール７３６に渡すことができる。
【０１８９】
タスクフロー処理モジュール７３６が、実施可能な意図のための構造化されたクエリを完了すると、タスクフロー処理モジュール７３６は、実施可能な意図と関連付けられた最終的なタスクの実行を続けて行うことができる。それに従って、タスクフロー処理モジュール７３６は、構造化されたクエリ内に包含された具体的なパラメータに従って、タスクフローモデルにおけるステップ及び命令を実行してもよい。例えば、「レストラン予約」の実施可能な意図についてのタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に希望するためのステップ及び命令を含んでもよい。例えば、レストラン予約について、レストラン＝ＡＢＣ  Ｃａｆｅ、日付＝３／１２／２０１２、時間＝午後７時、参加人数＝５、などの構造化されたクエリを使用して、タスクフロー処理モジュール７３６は、（１）ＡＢＣ  Ｃａｆｅのサーバ、又はＯＰＥＮＴＡＢＬＥ（登録商標）等のレストラン予約システムにログオンするステップと、（２）ウェブサイト上のフォーム内に日付、時間、及び参加人数情報を入力するステップと、（３）フォームを送信するステップと、及び（４）ユーザのカレンダ内に予約のためのカレンダ項目を記入するステップと、を実行してもよい。
【０１９０】
いくつかの実施例では、タスクフロー処理モジュール７３６は、ユーザ入力で要求されたタスクを完了するために、又はユーザ入力で要求された情報の回答を提供するために、サービス処理モジュール７３８（「サービス処理モジュール」）の支援を採用することができる。例えば、サービス処理モジュール７３８は、電話をかけるため、カレンダ項目を設定するため、マップ検索を呼び出すため、ユーザデバイス上にインストールされているその他のユーザアプリケーションを呼び出し、若しくはそれと対話するため、並びにサードパーティサービス（例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータル等）を呼び出すか若しくはそれと対話するために、タスクフロー処理モジュール７３６の代わりに動作することができる。いくつかの実施例では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース（application programming interface、ＡＰＩ）は、サービスモデル７５６の中のそれぞれのサービスモデルによって指定されてもよい。サービス処理モジュール７３８は、サービスについての適切なサービスモデルにアクセスすることができ、サービスモデルに従ったサービスによって必要とされるプロトコル及びＡＰＩに従ってサービスの要求を生成することができる。
【０１９１】
例えば、レストランがオンライン予約サービスを可能にしている場合、レストランは、予約を行うために必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ伝達するためのＡＰＩを指定するサービスモデルを提出することができる。タスクフロー処理モジュール７３６によって要求されるとき、サービス処理モジュール７３８は、サービスモデルに記憶されたウェブアドレスを使用して、オンライン予約サービスとのネットワーク接続を確立することができ、必要な予約のパラメータ（例えば、時間、日付、参加人数）を、オンライン予約サービスのＡＰＩに従う形式でオンライン予約インタフェースへ送信することができる。
【０１９２】
いくつかの実施例では、ユーザの意図を推定及び定義し、ユーザの意図を更に明らかにして絞り込むための情報を取得し、ユーザの意図を満たすための応答（即ち、ユーザへの出力又はタスクの完了）を最終的に生成するために、自然言語処理モジュール７３２、ダイアログフロー処理モジュール７３４、及びタスクフロー処理モジュール７３６は、集合的かつ反復的に使用されてもよい。生成された応答は、ユーザの意図を少なくとも部分的に満たす発話入力へのダイアログ応答とすることができる。更に、いくつかの実施例では、生成された応答は、発話出力として出力されてもよい。これらの実施例では、生成された応答は、発話合成モジュール７４０（例えば、発話合成器）に送信されてもよく、そこでは、生成された応答は、発話形式にあるダイアログ応答を合成するように処理されてもよい。更なる他の実施例では、生成された応答は、発話入力のユーザ要求を満たすことに関連するデータコンテンツとすることができる。
【０１９３】
発話合成モジュール７４０は、ユーザに提示するための発話出力を合成するように構成されてもよい。発話合成モジュール７４０は、デジタルアシスタントにより提供されたテキストに基づいて発話出力を合成する。例えば、生成されたダイアログ応答は、テキスト文字列の形式にあることができる。発話合成モジュール７４０は、テキスト文字列を可聴の発話出力に変換することができる。発話合成モジュール７４０は、テキストから発話出力を生成するために、波形接続合成、単位選択合成、ダイフォン合成、ドメイン限定合成、フォルマント合成、調音合成、隠れマルコフモデル（ＨＭＭ）ベースの合成、及びサイン波合成を含むが、これらには限定されない任意の適切な音声合成技術を使用することができる。いくつかの実施例では、発話合成モジュール７４０は、単語に対応する音標文字列に基づいて、個々の単語を合成するように構成されてもよい。例えば、音標文字列は、生成したダイアログ応答内の単語に関連付けられてもよい。音標文字列は、単語と関連付けられたメタデータに記憶されてもよい。音声合成モデル７４０は、単語を音声形式で合成するために、メタデータ内の音標文字列を直接処理するよう構成されてもよい。
【０１９４】
いくつかの実施例では、発話合成モジュール７４０の使用の代わりに（又は、それに加えて）、リモートデバイス（例えば、サーバシステム１０８）上で発話の合成が実行されてもよく、合成した発話は、ユーザへの出力のためにユーザデバイスに送信されてもよい。例えば、これは、デジタルアシスタントのための出力がサーバシステムにおいて生成される、いくつかの実装形態で行われてもよい。また、サーバシステムは概して、ユーザデバイスよりも多くの処理電力又はリソースを有することを理由に、クライアント側合成で実用的な出力よりも高い品質発話出力を取得することが可能であってもよい。
【０１９５】
デジタルアシスタントに関する追加の詳細は、その開示全体が参照により本明細書に組み込まれる、２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」と題された米国実用特許出願第１２／９８７，９８２号、２０１１年９月３０日出願の「Ｇｅｎｅｒａｔｉｎｇ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｄａｔａ  Ｉｔｅｍｓ  Ｔｈａｔ  Ｒｅｐｒｅｓｅｎｔ  Ｔａｓｋｓ  ｔｏ  Ｐｅｒｆｏｒｍ」と題された米国実用特許出願第１３／２５１，０８８号において説明される。
４．デバイスの例示的なアーキテクチャ
【０１９６】
図８Ａは、本開示の様々な実施例に従った、デバイス８００についての例示的なアーキテクチャのブロック図を示す。いくつかの実施例では、デバイス８００及びリモート８１０は、デジタルアシスタントシステム（例えば、デジタルアシスタントシステム７００）を実装することができる。いくつかの実施例では、デバイス８００、リモート８１０、及びサーバ（例えば、サーバ１０８）は、デジタルアシスタントシステム（例えば、デジタルアシスタントシステム７００）を実装することができる。図８Ａの実施形態では、メディア又は他のコンテンツは、任意選択的に、ネットワークインタフェース８０２を介してデバイス８００により受信され、ネットワークインタフェース８０２は、任意選択的に、無線又は有線接続である。１つ以上のプロセッサ８０４は、任意選択的に、本明細書で説明される方法及び／又は処理（例えば、方法１２００）のうちの１つ以上を実行する命令を任意選択的に含むメモリ８０６又は記憶装置に記憶されたいずれかの数のプログラムを実行することができる。
【０１９７】
ディスプレイコントローラ８０８は、１つ以上のユーザインタフェースをディスプレイ８１４上で表示させる。更に、デバイス８００への入力は、任意選択的に、無線又は有線接続を使用して、リモートインタフェース８１２を介してリモート８１０によって提供される。図８Ａの実施形態は、本開示のデバイスの特徴を限定することを意味するわけではないことが理解され、本開示で説明される他の特徴を容易にする他の構成要素は、任意選択的に、図８Ａのアーキテクチャに含まれ、又は省略されることも理解される。いくつかの実施形態では、デバイス８００は、任意選択的に、図２Ａ及び図３におけるポータブル多機能デバイス２００、並びに図４におけるデバイス４００のうち１つ以上に対応し、ネットワークインタフェース８０２は、任意選択的に、図２Ａ及び図４におけるＲＦ回路２０８、外部ポート２２４、及び周辺機器インタフェース２１８、並びに図４におけるネットワーク通信インタフェース４６０のうちの１つ以上に対応し、プロセッサ８０４は、任意選択的に、図２Ａにおけるプロセッサ（複数可）２２０、及び図４におけるＣＰＵ（複数可）４１０のうちの１つ以上に対応し、ディスプレイコントローラ８０８は、任意選択的に、図２Ａにおけるディスプレイコントローラ２５６、及び図４におけるＩ／Ｏインタフェース４３０のうちの１つ以上に対応し、メモリ８０６は、任意選択的に、図２Ａにおける１つ以上のメモリ２０２、及び図３におけるメモリ４７０に対応し、リモートインタフェース８１２は、任意選択的に、図２Ａにおける周辺機器インタフェース２１８及びＩ／Ｏサブシステム２０６（及び／又は、その構成要素）、並びに図４におけるＩ／Ｏインタフェース４３０のうち１つ以上に対応し、リモート８１２は、任意選択的に、図２Ａにおけるスピーカ２１１、タッチ感知ディスプレイシステム２１２、マイクロフォン２１３、光センサ（単数又は複数）２６４、接触強度センサ（単数又は複数）２６５、触知出力生成器（単数又は複数）２６７、他の入力制御デバイス２１６、加速度計（単数又は複数）２６８、近接センサ２６６、及びＩ／Ｏサブシステム２０６、図４におけるキーボード／マウス４５０、タッチパッド４５５、触知出力生成器（単数又は複数）４５７、及び接触強度センサ（単数又は複数）４５９、並びに図５Ｂにおけるタッチ感知面５５１のうちの１つ以上に対応し、かつ／又はこれらのうち１つ以上を含み、ディスプレイ８１４は、任意選択的に、図２Ａ及び図３におけるタッチ感知ディスプレイシステム２１２、並びに図４におけるディスプレイ４４０のうちの１つ以上に対応する。
【０１９８】
図８Ｂは、本開示の様々な実施例に従った、リモート８１０についての例示的な構造を示す。リモート８１０は、任意選択的に、タッチ感知面５５１を含む。いくつかの実施形態では、タッチ感知面５５１は、縁なし（edge−to−edge）である（例えば、図８Ｂで示されるように、タッチ感知面５５１とリモート８１０の１つ以上の端との間でリモート８１０の面がほとんど又は全く存在しないように、タッチ感知面５５１がリモート８１０の反対端に延在する）。タッチ感知面５５１は、任意選択的に、本明細書で説明される実施例に従って、接触と共に、接触強度（例えば、タッチ感知面５５１のクリック）を感知することが可能である。リモート８１０はまた、任意選択的に、ボタン８１６、８１８、８２０、８２２、８２４、及び８２６を含む。ボタン８１６、８１８、８２０、８２２、８２４、及び８２６は、任意選択的に、例えば、デバイス８００上で対応するアクション（単数又は複数）を開始するためのそのようなボタンとの接触又はボタンの押圧を感知することが可能な機械ボタン又は機械ボタンの代替物である。いくつかの実施形態では、ユーザによる「メニュー」ボタン８１６の選択は、現在実行しているアプリケーション若しくは現在表示されているユーザインタフェース内で後方に（例えば、現在表示されているユーザインタフェースの前に表示されたユーザインタフェースの背後に）デバイス８００をナビゲートし、又は現在表示されているユーザインタフェースよりも１つ上位レベルのユーザインタフェースにデバイス８００をナビゲートする。いくつかの実施形態では、ユーザによる「ホーム」ボタン８１８の選択は、デバイス８００のディスプレイ８１４上で表示されたいずれかのユーザインタフェースから、メイン、ホーム、又はルートユーザインタフェースにデバイス８００をナビゲートする（例えば、デバイス８００上でアクセス可能な１つ以上のアプリケーションを任意選択的に含む、デバイス８００のホームスクリーンに）。いくつかの実施形態では、ユーザによる「再生／中断」ボタン８２０の選択は、デバイス８００上の現在再生しているコンテンツアイテムを再生及び中断することの間でトグルする（例えば、「再生／中断」ボタン８２０が選択されるときにコンテンツアイテムがデバイス８００上で再生している場合、コンテンツアイテムは、任意選択的に中断され、「再生／中断」ボタン８２０が選択されるときにコンテンツアイテムがデバイス８００上で中断している場合、コンテンツアイテムは、任意選択的に再生される）。いくつかの実施形態では、ユーザによる「＋」８２２又は「−」８２４ボタンの選択は、デバイス８００によって再生される音声のボリュームをそれぞれ増大又は減少させる（例えば、デバイス８００上で現在再生しているコンテンツアイテムのボリューム）。いくつかの実施形態では、ユーザによる「音声入力」ボタン８２６の選択によって、デジタルアシスタント（例えば、デジタルアシスタントシステム７００）は、ユーザの音声入力を受信することが可能になる。リモート８１０はまた、受信された音声入力又はそれらの表現を更なる処理のために別のデバイス（例えば、デバイス８００又はサーバ）に送信することができる。いくつかの��施形態では、リモート８１０は、リモートの動きに関する情報を検出するための１つ以上の加速度計を含み、加速度計は、任意選択的に、以下で示される実施形態の説明で提供される方式で利用される。
【０１９９】
図９は、いくつかの実施形態に従った、自動発話認識（ＡＳＲ）システム９００の例示的な概略的ブロック図を示す。いくつかの実施例では、ＡＳＲシステム９００は、デジタルアシスタントシステム７００のＡＳＲシステム（単数又は複数）７３１に対応することができる。いくつかの実施形態では、ＡＳＲシステム９００は、デバイス２００、４００、及び８００（図２Ａ、４、及び８Ａ）を含むがそれらに限定されない、１つ以上の多機能デバイスを使用して実装されてもよい。多機能デバイスは、サーバ、パーソナルコンピュータ、モバイルデバイス、又はリモートなどのデバイスを含むことができる。特に、ＡＳＲシステム９００は、１つ以上のデバイスのメモリ（例えば、メモリ２０２若しくは４７０）及び／又はプロセッサ（単数又は複数）（例えば、プロセッサ（単数又は複数）２２０若しくはＣＰＵ４１０）内で実装されてもよい。ＡＳＲシステム９００は、デジタルアシスタントに含まれてもよく、多機能デバイスにおいて発話認識能力を提供することができる。特に、ＡＳＲシステム９００は、以下で説明される処理又は方法（例えば、処理１２００）のいずれかを実行するように構成されてもよい。ＡＳＲシステム９００は、以下で更に説明される、特徴抽出器９０２及び認識エンジン９０４を含んでもよい。
【０２００】
概して、ＡＳＲシステム９００は、音声入力（例えば、発話入力）を受信してもよく、音声入力に基づいて文字、フレーズ、コマンド、単語、又はそれらの組合せ（総合して「コンテンツ」）を識別してもよく、音声入力の識別されたコンテンツをテキストに変換してもよい。ＡＳＲシステム９００は更に、音声入力に含まれるコンテンツの順序に対応する順番でテキストを表示させることができる。
【０２０１】
いくつかの実施形態では、文字は、字、数字の桁、制御文字、又は空白を含むことができる。字は、例えば、アルファベットのいずれかの小文字又は大文字（例えば、「ａ」、「ｂ」、．．．「ｚ」、又は「Ａ」、「Ｂ」、．．．「Ｚ」）とすることができる。数字の桁は、例えば、０〜９の値（「０」、「１」、「２」、．．．「９」）を有するいずれかの数字の桁とすることができる。制御文字は、句読点（例えば、「＠」、「＃」、「％」、「！」）文字とすることができる。いくつかの実施例では、句読点は、句読点の単語によって識別されてもよい。例えば、句読点「＠」は、句読点の単語「ａｔ」によって識別されてもよく、句読点「＃」は、句読点の単語「ポンド記号」によって識別されてもよく、句読点「％」は、句読点の単語「パーセント」又は「パーセント記号」によって識別されてもよく、句読点「！」は、句読点の単語「感嘆符」によって識別されてもよい。句読点及びそれらの対応する句読点の単語の他の例は、例えば、句読点の単語「スラッシュ」によって識別される句読点「／」、句読点の単語「ハイフン」又は「ダッシュ」によって識別される句読点「−」、句読点の単語「ピリオド」又は「ドット」によって識別される句読点「．」、句読点の単語「カンマ」によって識別される句読点「，」、句読点の単語「コロン」によって識別される句読点「：」、「句読点の単語「セミコロン」によって識別される句読点「；」、句読点の単語「クエスチョンマーク」によって識別される句読点「？」、句読点の単語「アポストロフィ」によって識別される句読点「'」、句読点の単語「開括弧」によって識別される句読点「（」、句読点の単語「閉括弧」によって識別される句読点「）」、句読点の単語「ドル記号」によって識別される句読点「＄」、句読点の単語「アスタリスク」によって識別される句読点「＊」、及び句読点の単語「アンパサンド」によって識別される句読点「＆」などを含んでもよい。制御文字はまた、句読点でない文字とすることができる。例えば、制御文字は、キャリッジリターン又はタブなどとすることができる。
【０２０２】
フレーズは、対応する文字を識別するために使用されてもよく、例えば、文字の識別のために使用される単語の綴りを含んでもよい。例えば、字「ａ」を識別するための単語の綴りは、「ａｐｐｌｅ」又は「ａｌｐｈａ」などであってもよい。同様に、字「ｂ」を識別するための単語の綴りは、「ｂｏｙ」又は「ｂｒａｖｏ」などであってもよい。いくつかの実施例では、対応する文字を識別するためのフレーズは、「ａｐｐｌｅにあるａ」、「ｂｏｙにあるｂ」、「Ｎａｎｃｙのｎ」、及び「Ｍａｒｙのｍ」などの或るフォーマットを有してもよい。いずれかの単語の綴りが、対応する文字を識別するために使用されてもよく、対応する文字を識別するためのフレーズは、いずれかの所望のフォーマットを有することができる。
【０２０３】
コマンドは、表示されたテキストを編集すること、及び／又は表示されたテキストに関する１つ以上の他の機能を実行することを可能にすることができる。例示的なコマンドは、「大文字」、「小文字」、「挿入」、「削除」、「置換」、「複製」、「ペースト」、「選択」、又は「検索」などを含む。コマンドは、１つ以上の付随のパラメータを含むことができる。例えば、コマンド「挿入」は、挿入されることになる文字（例えば、「ｃを挿入」）、挿入の場所、又は挿入の回数などを示すパラメータが付随されてもよい。コマンドは更に、いくつかの実施例では、他のコマンドとの組合せで使用されてもよい。コマンド「挿入」は、例えば、コマンド「大文字」との組合せで使用されてもよい（例えば、「ｃの大文字を挿入」）。
【０２０４】
単語は、複数の文字を含むことができる。いくつかの実施例では、単語は、自然言語の単語「Ｌｉｎｃｏｌｎ」及び「ｃｅｎｔｅｒ」などの複数の文字のいずれかの組合せを含むことができる。いくつかの状況では、単語は、予め定められた文字の組合せを含んでもよい。例として、句読点「＠」に続く単語は、ドメイン拡張子（例えば、「ｃｏｍ」、「ｎｅｔ」、「ｏｒｇ」）又は頭文字（例えば、ＦＢＩ、ＩＲＳ）などを形成する予め定められた文字の組合せを含んでもよい。このタイプの単語は、予め定められた数の文字の組合せを有してもよい。
【０２０５】
ＡＳＲシステム９００の例示的な動作では、音声入力を受信すると、特徴抽出器９０２は、音声入力を事前処理することができ、事前処理された音声入力を認識エンジン９０４に提供することができる。いくつかの実施例では、音声入力を事前処理することは、１つ以上の音響特性を音声入力から抽出することを含んでもよい。したがって、特徴抽出器９０２は、音響特性を音声入力から抽出することができ、抽出された音響特性を認識エンジン９０４に提供することができる。事前処理された音声入力を受信すると、認識エンジン９０４は、音声入力のコンテンツを識別することができる。認識エンジン９０４は、例えば、語彙９１２、発話認識モデル９１４、コンテキストデータ９１６、及び認識されたクレデンシャルモデル９１８（総合的に、知識リポジトリ９１０）のうちの１つ以上を使用して、コンテンツを識別してもよい。例えば、認識エンジン９０４は、音声入力のコンテンツを、知識リポジトリ９１０に記憶された文字、フレーズ、コマンド、及び／又は単語（総合的に、既知のタイプとして）と比較することができる。１つ以上の一致が発見される場合、認識エンジン９０４は、コンテンツを既知のタイプのいずれかの組合せとして識別することができる。認識エンジン９０４は、例えば、第１の文字（例えば、字「ａ」）、フレーズによって識別される第２の文字（例えば、フレーズ「ｂｏｙにあるｂ」によって識別される字「ｂ」）、及び／又は単語（例えば、「Ｌｉｎｃｏｌｎ」）を含むものとして音声入力のコンテンツを識別することができる。
【０２０６】
コンテンツが識別されると、認識エンジン９０４は、音声入力のコンテンツをテキストに変換することができ、音声入力のコンテンツの順序に対応する順番でテキストを表示させることができる。例えば、表示されるテキストの順序は、音声入力内の文字（図１０Ａ〜１０Ｃ）の順序に対応する、「ａ」、「ｂ」、「ｒ」であってもよい。
【０２０７】
いくつかの実施例では、音声入力のコンテンツを識別することは、音声入力に含まれる１つ以上の発声を識別することを含んでもよい。説明されるように、特徴抽出器９０２によって抽出された音響特性は、コンテンツ識別のために認識エンジン９０４に提供されてもよい。音響特性に基づいて、認識エンジンは、対応する音声入力内の１つ以上の発声を識別してもよい。いくつかの例では、音響特性は、１つ以上の発声の始め及び終わりを判定するために使用されてもよい。例として、認識エンジン９０４は、１つ以上の音響特性が長い間の沈黙又は発声の間の中断に対応する（例えば、一致する）と判定してもよく、よって、別個又は個々の発声を識別することができる。別の例として、中断又は沈黙の周波数スペクトルは、文字、フレーズ、コマンド、又は単語の発声の周波数スペクトルとは異なることがある。結果として、周波数スペクトルの分析は、音声入力内の１つ以上の発声の識別のために使用されてもよい。
【０２０８】
いくつかの実施形態では、音声入力のコンテンツを識別することは、識別された発声のタイプを判定することを含んでもよい。例えば、識別された発声ごとに、認識エンジン９０４は、発声のタイプを判定することができる。認識エンジン９０４は、例えば、発声のタイプが文字、対応する文字を識別するためのフレーズ、コマンド、又は単語に対応するかを判定することができる。いくつかの実施例では、前に認識された文字、フレーズ、単語、及びコマンドは、知識リポジトリ９１０の１つ以上の部分に記憶されてもよい。例として、知識リポジトリ９１０に記憶された文字、フレーズ、コマンド、及び単語は、共通して使用される文字、フレーズ、コマンド、及び単語、並びに／又は１つ以上の前の音声入力内の認識エンジン９０４によって受信されるそれらの文字、フレーズ、及びコマンドを含んでもよい。知識リポジトリ９１０は、デバイス８００、サーバ（例えば、サーバ１０８）、複数のサーバ（例えば、サーバファーム）、又はそれらの組合せに記憶されてもよい。
【０２０９】
上記説明されたように、知識リポジトリ９１０は、語彙９１２、発話認識モデル９１４、コンテキストデータ９１６、及び／又は認識されたクレデンシャルモデル９１８を含んでもよい。語彙９１２は、共通して使用される文字（例えば、２６のアルファベット文字）、フレーズ（例えば、ＮＡＴＯの音標アルファベットを含むフレーズ）、コマンド（例えば、編集コマンド）、並びに単語（例えば、自然言語の単語、ドメイン拡張子、及び／又は頭文字）を含むことができる。上記説明されたように、発話認識モデル９１４は、例えば、音響モデル及び／又は言語モデルを含むことができ、１つ以上の発話認識エンジンを実装することができる。発話認識モデルの実施例は、隠れマルコフモデル、混合ガウスモデル、ディープニューラルネットワークモデル、ｎグラム言語モデル、及び他の統計モデルを含むことができる。発話認識エンジンの実施例は、動的時間伸縮ベースのエンジン及び重み付き有限状態トランスデューサ（ＷＦＳＴ）ベースのエンジンを含むことができる。
【０２１０】
いくつかの実施形態では、発話認識モデル９１４は、ユーザに特有であってもよく、ユーザ特有データを使用して発話認識及び言語モデルジェネレータ９１３によって生成されてもよい。発話認識及び言語モデルジェネレータ９１３は、ユーザ入力、ユーザ使用データ、又はユーザプロファイル情報などのユーザ特有データを受信又は取得するように構成されてもよい。発話認識及び言語モデルジェネレータ９１３は、ユーザ特有データを使用して、１つ以上のユーザ特有発話認識モデル９１４を生成するように更に構成されてもよい。
【０２１１】
コンテキストデータ９１６は、例えば、ユーザ優先度、ユーザ発話プロファイル、ハードウェア及び／又はソフトウェア状態、収集されるセンサ情報、並びにデジタルアシスタントとユーザとの間の前の対話などを含むことができる。コンテキストデータ９１６はまた、ユーザがそれにクレデンシャルを提供しているセキュアリンク又はデバイスが適切であることを示す情報を含むことができる。例えば、コンテキストデータ９１６は、ユーザがクレデンシャルをウェブ電子メールアカウント（例えば、Ｙａｈｏｏ、Ｇｍａｉｌ）、クラウド（例えば、Ａｐｐｌｅ  ｉＣｌｏｕｄ）アカウント、又はデバイスに提供していることを示してもよい。
【０２１２】
認識されたクレデンシャルモデル９１８は、デジタルアシスタントとのユーザの過去の対話に基づく共通して使用されるクレデンシャルモデル及び／又はクレデンシャルモデルを含むことができる。例えば、認識されたクレデンシャルモデル９１８は、ユーザ名モデル及びパスワードモデルを含んでもよい。例示的なユーザ名モデルは、ｆｉｒｓｔｎａｍｅ．ｌａｓｔｎａｍｅ＠ｄｏｍａｉｎ＿ｎａｍｅ．ｃｏｍ（例えば、Ａｂｒａｈａｍ．Ｌｉｎｃｏｌｎ＠Ｌｉｎｃｏｌｎｃｅｎｔｅｒ．ｃｏｍ）、ｆｉｒｓｔｉｎｉｔａｌ．ｌａｓｔｎａｍｅ＠ｄｏｍａｉｎ＿ｎａｍｅ．ｃｏｍ（例えば、ＡＬｉｎｃｏｌｎ＠Ｌｉｎｃｏｌｎｃｅｎｔｅｒ．ｃｏｍ）、又はｆｉｒｓｔｎａｍｅｌａｓｔｎａｍｅ＿ｎｕｍｅｒｉｃａｌ＿ｄｉｇｉｔｓ＠ｄｏｍａｉｎ＿ｎａｍｅ．ｃｏｍ（例えば、ＡｂｒａｈａｍＬｉｎｃｏｌｎ＿１２３＠Ｌｉｎｃｏｌｎｃｅｎｔｅｒ．ｃｏｍ）などを含んでもよい。
【０２１３】
説明されるように、認識エンジン９０４は、例えば、特徴抽出器９０２によって提供される音響特性に基づいて、音声入力の発声のタイプを判定することができる。いくつかの実施例では、認識エンジン９０４は、音声入力の１つ以上の識別された発声に対応する中間認識結果（例えば、音標、音標文字列、及び部分単語）を識別することができる（例えば、音響モデルを使用して）。中間認識結果は、例えば、各々の発声のタイプを判定するために使用されてもよい。認識エンジン９０４は、いくつかの実施形態では、発声のタイプが文字、フレーズ、コマンド、又は単語に対応するかを判定することができる。例えば、認識エンジン９０４は、中間認識結果を知識リポジトリ９１０内の既知のタイプと比較することができる（例えば、言語モデルを使用して）。
【０２１４】
いくつかの実施例では、認識エンジン９０４は、発声の一連の音標（例えば、文字又は単語の発音）を、知識リポジトリ９１０に含まれる既知のタイプの１つ以上の一連の音標と比較することができる。一連の音標は、発声について識別されてもよい（例えば、音響特性を使用して）。発声の一連の音標が知識リポジトリ９１０内の既知のタイプの音標の連続と一致する（例えば、実質的に一致する）場合、認識エンジン９０４は、それに従って、発声のタイプを判定する。音標の連続が一致する度合いは、いくつかの実施例では、信頼度レベルを判定するために使用されてもよい。例として、音標の連続が完全な一致である場合、信頼度レベルは１００％であってもよい。別の例として、連続の音標の６つのうち５つが一致する場合、信頼度レベルは９０％であってもよい。一連の音標が発声の文字、フレーズ、コマンド、又は単語と一致する（例えば、実質的に一致する）場合、発声のタイプが文字、フレーズ、コマンド、又は単語それぞれであると判定される。
【０２１５】
いくつかの実施例では、音声入力の発声のタイプが文字、フレーズ、単語、又はそれらの組合せに対応するとの判定に従って、認識エンジン９０４は、発声に対応する音声入力コンテンツの表現を取得することができる。表現は、音声表現、テキスト表現、空間／ベクトル表現、又はそれらの組合せであってもよい。
【０２１６】
いくつかの実施例では、一連の音標が知識リポジトリ９１０内の１つよりも多くのタイプに一致する場合、認識エンジン９０４は、一致したタイプごとに信頼度レベルを判定してもよく、最高信頼度レベルを有するタイプを選択してもよい。例えば、一連の音標が単語（例えば、単語「挿入」）及びコマンド（例えば、コマンド「挿入」）の両方に一致する場合、認識エンジン９０４は、単語としてのタイプについての信頼度レベル及びコマンドとしてのタイプについての信頼度レベルを判定してもよい。いくつかの実施形態では、信頼度レベルは、音声入力内の追加のコンテンツ又は音声入力に関連する他のコンテキストに基づいて判定されてもよい。例えば、コマンドは、コマンドに従ってアクションを実行するための１つ以上のパラメータが伴ってもよい。結果として、認識エンジン９０４が音声入力内のコマンドと関連付けられた１つ以上のパラメータを識別する場合、コマンドのタイプについての信頼度レベルが単語のタイプについての信頼度レベルよりも高いと判定してもよい。いくつかの実施例では、認識エンジン９０４は、コンテキストデータ９１６に基づいて信頼度レベルを判定することができる。いくつかの実施例では、一致が発見されない場合、認識エンジン９０４は、デフォルトの構成として、発声が単語（例えば、自然言語の単語）に対応すると判定するように構成されてもよい。いくつかの実施例では、一致が発見されない場合、認識エンジン９０４はまた、１つ以上の候補タイプを判定するように構成されてもよい。候補タイプは、例えば、各々のタイプの信頼度レベルに基づいて判定されてもよい。いくつかの実施例では、候補タイプは、音声入力のコンテンツの候補表現を取得するために使用されてもよい。候補表現は、音声表現、テキスト表現、空間／ベクトル表現、又はそれらの組合せの形式にあってもよい。候補表現は、選択のためにユーザに提示されてもよい。
【０２１７】
発声のタイプの判定は、いずれかの順序、又は文字、フレーズ、単語、若しくはコマンドに関するいずれかの組合せで実行されてもよいことが認識されよう。例えば、認識エンジン９０４は、発声のタイプが文字に対応するかを最初に判定することができる。発声のタイプが文字に対応しない場合、それは更に、タイプがフレーズ及び単語などに対応するかを判定する。別の例として、認識エンジン９０４はまた、発声のタイプがフレーズに対応するかを最初に判定することができる。発声のタイプがフレーズに対応しない場合、それは更に、タイプが文字及び単語などに対応するかを判定する。判定はまた、文字、フレーズ、単語、又はコマンドに関して並列して実行されてもよい。
【０２１８】
表現を取得すると、認識エンジン９０４は、表現をテキストに変換することができる。テキストに変換すると、認識エンジン９０４は、テキストを表示させることができる。
【０２１９】
いくつかの実施例では、音声入力のコンテンツを識別することは、信頼度レベルを判定することを含むことができる。信頼度レベルは、例えば、音声入力のコンテンツが正確に識別される可能性を示すことができる。いくつかの実施例では、信頼度レベルは、音声入力の識別されたコンテンツと関連付けられてもよい。説明されるように、いくつかの実施例では、音声入力のコンテンツを識別することは、以下で更に詳細に説明されるように、音声入力の発声を識別すること、発声のタイプを判定すること、及び／又は音声入力のコンテンツの表現を取得することを含んでもよい。したがって、信頼度レベルは、よって、発声の識別、発声の判定されたタイプ、音声入力のコンテンツの取得された表現、又はそれらの組合せと関連付けられてもよい。例えば、認識エンジン９０４は、関連付けられた信頼度レベルが閾値以上である場合に、特定のタイプの発声を含むものとしてコンテンツを認識してもよい。逆に、認識エンジン９０４は、関連付けられた信頼度レベルが閾値以下である場合に、いずれのタイプの発声を含むものとしてコンテンツを認識しなくてもよい。代わりに、認識エンジン９０４は、識別された発声タイプを無視してもよく、発声、エラーメッセージ、又はそれらの組合せのうちの１つ以上の候補タイプを提供してもよい。候補タイプは、例えば、各々のタイプの信頼度レベルに基づいて判定されてもよい。候補タイプは、視覚的形式、聴覚的形式、又はそれらの組合せでユーザに提供されてもよい。いくつかの実施例では、認識エンジン９０４はまた、エラーメッセージをユーザに提供させてもよい（例えば、「すいません、それを失念しておりました。もう一度言ってもらえますか？（Sorry, I missed that．Can you say it again?）」。
【０２２０】
いくつかの実施例では、認識エンジン９０４は、音声入力コンテンツの表現についての信頼度レベルを取得することができる。前に説明されたように、信頼度レベルは、発声のタイプの判定が正確である確度を示す。信頼度レベルが閾値以上であるとの判定に従って、認識エンジン９０４は、表現をテキストに変換する。いくつかの実施例では、信頼度レベルが閾値未満であるとの判定に従って、認識エンジン９０４は、対応する候補表現を取得するために、１つ以上の候補タイプを識別することができる。候補表現は、選択のためにユーザに提供されてもよい。いくつかの実施例では、認識エンジン９０４は、候補表現、エラーメッセージ（例えば、「あなたが言ったことを認識しておりません、『ａｐｐｌｅにあるａ』などの字又はフレーズを言って下さい（I do not recognize what you said, please say a letter or a phrase such as "a as in apple"）」）、又はそれらの組合せを提供することができる。いくつかの実施例では、候補表現は、中間認識結果（例えば、音標、音標文字列、及び部分単語）と知識リポジトリ９１０に記憶された既知のタイプ（例えば、言語モデルを使用して）との間の一致に基づいて生成されてもよい。
【０２２１】
いくつかの実施例では、認識エンジン９０４は、音声入力に基づいてコマンドを識別することができる。上記説明されたように、いくつかの実施形態では、認識エンジン９０４は、音声入力の発声を最初に識別することができ、発声のタイプがコマンドに対応するかを判定することができる。発声のタイプがコマンドに対応するとの判定に従って、認識エンジン９０４は、コマンドに従ってアクションを開始させることができる。例えば、認識エンジン９０４は、前に表示されたテキストを編集させることができる（例えば、文字を挿入又は削除する）。
【０２２２】
いくつかの実施例では、認識エンジン９０４はまた、学習及び／又は訓練の目的で、１つ以上の発声を記憶させることができる。発声は、例えば、メモリ（例えば、メモリ２０２）及び／又はデータベースに記憶されてもよい。１つ以上の発声は、いくつかの実施例では、認識エンジン９０４によって識別される文字、対応する文字を識別するフレーズ、コマンド、及び／又は単語に対応する。それらの発声（例えば、発声の音響特性）は、後続のユーザの発声のタイプをより正確に判定することができるように、知識リポジトリ９１０の少なくとも一部を更新するために使用されてもよい。
５．音声入力識別の実施例
【０２２３】
図１０Ａ〜１０Ｆは、様々な実施例に従った、音声入力識別の機能性を示す。本明細書で説明される１つ以上の実施例に従って、図８Ａのデバイス８００及び／又はリモート８１０などの電子デバイスは、ユーザによって提供される発話されたユーザ入力（例えば、音声入力、発話入力）を使用して制御されてもよい。デバイス８００、リモート８１０、サーバ（例えば、サーバ１０８）、又はそれらの組合せは、デジタルアシスタントシステム（デジタルアシスタントシステム７００）を実装してもよい。図１０Ａ〜１０Ｆを参照して、いくつかの実施例では、デバイス８００は、ユーザ１０３０から、１０２４Ａ〜Ｆなどの１つ以上の音声入力を受信してもよい。ユーザ１０３０は、例えば、ユーザクレデンシャル（例えば、ユーザ名及び／又はパスワード）を口述し、又は別の方法で、入力する目的で、音声入力を提供してもよい。ディスプレイ８１４は、ユーザ１０３０が認証の目的でユーザ名及びパスワードを入力することを促し、及び／又はそれを可能にするために使用されてもよい。ユーザは、例えば、デバイス、アカウント、又はサービスなどにログインするためにクレデンシャルを入力することを促されることがある。デバイス８００は、ユーザ１０３０から直接、又はリモート８１０などの別のデバイスを通じて間接的に音声入力を受信してもよい。音声入力１０２４Ａ〜Ｆは、デバイス８００のマイクロフォン（例えば、マイクロフォン２１３）又はリモート８１０を介して受信されてもよい。いくつかの実施例では、デバイス８００は、本明細書で説明される実施例に従って、音声入力１０２４Ａ〜Ｆのコンテンツ（例えば、文字、文字を識別するフレーズ、コマンド、単語、又はそれらの組合せ）を識別してもよい。音声入力１０２４Ａ〜Ｆのコンテンツの識別は、例えば、自動発話認識システム（例えば、ＡＳＲシステム９００）を含むデジタルアシスタントによって実行されてもよい。
【０２２４】
図１０Ａを参照して、いくつかの実施例では、デバイス８００は、音声入力に基づいて文字を識別することができる。例として、音声入力１０２４Ａを受信すると、デバイス８００は、音声入力１０２４Ａの１つ以上の発声を識別することができる。示されるように、音声入力１０２４Ａの識別された発声は、文字「ａ」を含んでもよい。
【０２２５】
１つ以上の発声を識別すると、デバイス８００は、発声のタイプを判定することができる。いくつかの実施形態では、判定は、共通して使用されるアルファベット文字、数字の桁及び制御文字、並びに／又はデバイス８００がユーザ１０３０から前に受信した文字など、知識リポジトリに記憶された文字に基づいてもよい。知識リポジトリ９１０に含まれる文字は、デバイス８００又はサーバ（例えば、サーバ１０８）に記憶されてもよい。例えば、デバイス８００は、発声の一連の音標（例えば、文字の発音）を既知の文字の音標の連続に一致させることによって、発声のタイプが文字に対応するかを判定することができる。
【０２２６】
いくつかの実施例では、発声のタイプが文字に対応するとの判定に従って、デバイス８００は、音声入力１０２４Ａのコンテンツに含まれるものとして文字を識別し（例えば、文字「ａ」）、文字をテキストに変換する。
【０２２７】
テキストへの変換に応じて、デバイス８００は、例えば、ディスプレイ８１４を使用して、音声入力１０２４Ａのコンテンツのテキスト（例えば、文字「ａ」のテキスト）を表示させることができる。
【０２２８】
図１０Ｂを参照して、いくつかの実施例では、デバイス８００は、フレーズによって識別される文字を識別することができる。例として、音声入力１０２４Ｂを受信すると、デバイス８００は、音声入力１０２４Ｂの１つ以上の発声を識別することができる。示されるように、音声入力１０２４Ｂは、フレーズの対応する文字（例えば、「ｂ」）を識別するためのフレーズ（例えば、「ｂｏｙにあるｂ」）を含んでもよい。
【０２２９】
音声入力１０２４Ｂの１つ以上の発声を識別すると、デバイス８００は、発声のタイプを判定することができる。いくつかの実施形態では、判定は、共通して使用されるフレーズなど、知識リポジトリに記憶されたフレーズに基づいてもよい。文字を識別するための共通して使用されるフレーズは、ＮＡＴＯの音標アルファベットで指定された単語の綴り（例えば、Ａｌｐｈａ、Ｂｒａｖｏ、Ｃｈａｒｌｉｅ、Ｄｅｌｔａ、Ｅｃｈｏ、Ｆｏｘｔｒｏｔ、Ｇｏｌｆ、Ｈｏｔｅｌ、Ｉｎｄｉａ、Ｊｕｌｉｅｔ、Ｋｉｌｏ、Ｌｉｍａ、Ｍｉｋｅ、Ｎｏｖｅｍｂｅｒ、Ｏｓｃａｒ、Ｐａｐａ、Ｑｕｅｂｅｃ、Ｒｏｍｅｏ、Ｓｉｅｒｒａ、Ｔａｎｇｏ、Ｕｎｉｆｏｒｍ、Ｖｉｃｔｏｒ、Ｗｈｉｓｋｅｙ、Ｘ−ｒａｙ、Ｙａｎｋｅｅ、Ｚｕｌｕ）を使用してもよい。
【０２３０】
いくつかの実施形態では、知識リポジトリ内のフレーズはまた、前に受信されたフレーズを含んでもよい。例えば、ユーザ１０３０は、ＮＡＴＯの音標アルファベットを、文字を識別するための単語の綴りとして使用しないことがある。代わりに、ユーザ１０３０は、「Ａａｒｏｎにあるａ」又は「Ｌｉｎｃｏｌｎのｌ」などのカスタマイズされたフレーズを前に使用していることがある。デバイス８００はまた、ユーザ１０３０が前に提供したそのようなカスタマイズされたフレーズを知識リポジトリに記憶することができる。結果として、ユーザ１０３０が前に使用されたカスタマイズされたフレーズを声に出す場合、デバイス８００はまた、発声のタイプが対応する文字を識別するためのフレーズに対応すると判定することができる。知識リポジトリ内の対応する文字を識別するためのフレーズは、デバイス８００又はサーバ（例えば、サーバ１０８）に記憶されてもよい。
【０２３１】
説明されるように、発声のタイプは、ユーザが音声入力を提供したことに応じて判定されてもよい。例えば、デバイス８００は、発声の一連の音標（例えば、フレーズの発音）を知識リポジトリ内のフレーズの音標の連続に一致させることによって、発声のタイプがフレーズに対応するかを判定することができる。
【０２３２】
いくつかの実施例では、発声のタイプが対応する文字を識別するためのフレーズに対応するとの判定に従って、デバイス８００は、音声入力１０２４Ｂのコンテンツに含まれるものとしてフレーズを識別し、フレーズによって識別される文字をテキストに変換する。テキストへの変換に応じて、デバイス８００は、例えば、ディスプレイ８１４を使用して、音声入力１０２４Ｂのコンテンツのテキスト（例えば、文字「ｂ」のテキスト）を表示させることができる。
【０２３３】
図１０Ｃを参照して、いくつかの実施例では、デバイス８００は、追加の音声入力に基づいて追加の文字及びフレーズを識別することができる。例として、音声入力１０２４Ｃを受信すると、デバイス８００は、音声入力１０２４Ｃの１つ以上の発声を識別することができる。示されるように、音声入力１０２４Ｃは、追加の文字（例えば、「ｒ」、「ａ」、「ｈ」、及び「ａ」）、並びに追加のフレーズ（例えば、「Ｍａｒｙにあるｍ」）を含んでもよい。説明されるように、音声入力１０２４Ｃを受信したことに応じて、デバイス８００は、音声入力１０２４Ｃの１つ以上の発声を識別することができ、発声のタイプを判定することができ、音声入力１０２４Ｃのコンテンツの識別された文字をディスプレイ８１４上で表示するためにテキストに変換することができる。
【０２３４】
いくつかの実施例では、デバイス８００Ｃは、音声入力に基づいて句読点の単語を識別することができる。音声入力１０２４Ｃを受信すると、例えば、デバイス８００は、音声入力１０２４Ｃの１つ以上の発声を識別することができる。示されるように、音声入力１０２４Ｃは、句読点「＠」を識別する（例えば、対応する）句読点の単語「ａｔ」を含んでもよい。
【０２３５】
音声入力１０２４Ｃの１つ以上の発声を識別すると、デバイス８００は、発声のタイプを判定することができる。いくつかの実施形態では、判定は、共通して使用される句読点の単語（例えば、「ａｔ」、「ポンド記号」、若しくは「ドル記号」など）など、知識リポジトリに記憶された句読点の単語、及び／又はデバイス８００がユーザ１０３０から前に受信した、カスタマイズされた句読点の単語に基づいてもよい。例えば、句読点「＊」に対応する句読点の単語「アスタリスク」の代わりに、ユーザ１０３０は、句読点の単語「ｓｔａｒ」を前に声に出していることがあり、それが句読点「＊」にも対応することを意図している。そのようなカスタマイズされた句読点の単語はまた、知識リポジトリに記憶されてもよい。知識リポジトリに含まれる句読点の単語は、デバイス８００又はサーバ（例えば、サーバ１０８）に記憶されてもよい。
【０２３６】
説明されるように、発声のタイプは、ユーザが音声入力を提供したことに応じて判定されてもよい。例えば、デバイス８００は、発声の一連の音標（例えば、文字の発音）を知識リポジトリ９１０に含まれる句読点の単語の音標の連続に一致させることによって、発声のタイプが句読点の単語に対応するかを判定することができる。いくつかの状況の下、１つよりも多い実質的な一致が存在することがある。したがって、デバイス８００は、句読点の単語のコンテキストに基づいて、及び／又は信頼度レベルを使用して、一致の曖昧さをなくすことができる。例として、デバイス８００は、ユーザ１０３０によって提供された音声入力から識別された１つ以上の他の発声に基づいて、どの一致が適切であるかを判定してもよい。別の例として、デバイス８００は、一致したタイプごとに信頼度レベルを判定してもよく、最高信頼度レベルを有するタイプを選択してもよい。例えば、一連の音標が句読点の単語（例えば、句読点の単語「ａｔ」）及び単語（例えば、自然言語の単語「ａｔ」）の両方に一致する場合、デバイス８００は、句読点の単語としてのタイプについての信頼度レベル及び単語としてのタイプについての信頼度レベルを判定することができる。いくつかの実施形態では、信頼度レベルは、音声入力１０２４Ｃ内の追加の発声に基づいて判定されてもよい。例えば、認識されたクレデンシャルモデルを使用して、デバイス８００は、ユーザが音声入力１０２４Ｃ内のユーザ名として電子メールアドレスを提供することを意図していると判定してもよい。したがって、デバイス８００は、句読点の単語のタイプについての信頼度レベルが自然言語の単語のタイプについての信頼度レベルよりも高いと判定することができる。
【０２３７】
いくつかの実施例では、発声のタイプが句読点の単語に対応するとの判定に従って、デバイス８００は、音声入力１０２４Ｃのコンテンツの句読点の単語（例えば、単語「ａｔ」）を識別し、句読点の単語を対応する句読点のテキストに変換する。例えば、デバイス８００は、句読点の単語「ａｔ」を句読点「＠」のテキストに変換することができる。図１０Ｃを参照して、変換に応じて、デバイス８００は、例えば、ディスプレイ８１４を使用して、音声入力１０２４Ｃのコンテンツのテキスト（例えば、句読点「＠」のテキスト）を表示させることができる。
【０２３８】
図１０Ｄを参照して、いくつかの実施例では、デバイス８００は、例えば、音声入力１０２４Ｄの１つ以上の発声を識別することによって、音声入力に基づいて１つ以上の単語を識別することができる。示されるように、音声入力１０２４Ｄは、各々が複数の文字のいずれかの組合せを含むことができる、１つ以上の単語を含んでもよい。単語は、例えば、「Ｌｉｎｃｏｌｎ」及び「ｃｅｎｔｅｒ」などの自然言語の単語であってもよい。
【０２３９】
音声入力１０２４Ｄの発声を識別すると、デバイス８００は、発声のタイプを判定することができる。いくつかの実施例では、判定は、クレデンシャルを入力するための共通して使用される単語（例えば、「ｙａｈｏｏ」、「ｇｍａｉｌ」、及び「ａｏｌ」）、並びに／又はユーザ１０３０が前に声に出した単語など、知識リポジトリに記憶された単語に基づいてもよい。例えば、ユーザ１０３０は、ユーザ名を入力するための単語「Ｌｉｎｃｏｌｎ」及び「ｃｅｎｔｅｒ」を前に声に出していることがある。よって、単語「Ｌｉｎｃｏｌｎ」及び「ｃｅｎｔｅｒ」は、知識リポジトリに記憶される。知識リポジトリに含まれる単語は、デバイス８００又はサーバ（例えば、サーバ１０８）に記憶されてもよい。
【０２４０】
デバイス８００は、発声の一連の音標（例えば、単語の発音）を知識リポジトリに含まれる単語の音標の連続に一致させることによって、発声のタイプが単語に対応するかを判定することができる。
【０２４１】
いくつかの実施例では、デバイス８００は、予め定められた構成に基づいて、発声のタイプが単語に対応するかを判定することができる。例えば、デバイス８００は、発声のデフォルトのタイプが単語に対応するように、発声のタイプを判定するように事前構成されてもよい。例えば、音声入力を受信すると、デバイス８００は、１つ以上の発声を識別してもよく、各々の識別された発声のタイプが文字（例えば、字、数字の桁、若しくは句読点などの制御文字）、対応する文字を識別するフレーズ、又はコマンドに対応するかを判定してもよい。デバイス８００が、発声のタイプがそれらのタイプのいずれにも対応しないと判定する場合、デバイス８００は、デフォルトで、発声のタイプが単語に対応すると判定するように構成されてもよい。
【０２４２】
いくつかの実施例では、発声のタイプが単語に対応するとの判定に従って、デバイス８００は、単語（例えば、単語「Ｌｉｎｃｏｌｎ」）を識別し、識別された単語をテキストに変換する。図１０Ｄを参照して、テキストに変換すると、デバイス８００は、ディスプレイ８１４を使用して、音声入力１０２４Ｄのコンテンツのテキスト（例えば、単語「Ｌｉｎｃｏｌｎ」のテキスト）を表示させることができる。
【０２４３】
図１０Ｅを参照して、いくつかの実施例では、デバイス８００は、例えば、音声入力１０２４Ｅ内の１つ以上の発声を識別することによって、追加の句読点の単語を識別することができる。示されるように、音声入力１０２４Ｅは、追加の句読点の単語（例えば、句読点の単語「ドット」）を含んでもよい。音声入力１０２４Ｅを受信したことに応じて、デバイス８００は、発声を識別することができ、発声のタイプを句読点の単語として判定することができ、発声をディスプレイ８１４上で表示するためにテキストに変換することができる。
【０２４４】
いくつかの実施例では、デバイス８００はまた、音声入力に基づいて、予め定められた文字の組合せを有する単語を識別することができる。例として、音声入力１０２４Ｅを受信すると、デバイス８００は、音声入力１０２４Ｅの発声を識別することができる。示されるように、音声入力１０２４Ｅは、予め定められた文字の組合せを有する単語（例えば、ドメイン拡張子）を含んでもよい。説明されるように、予め定められた文字の組合せを有する単語は、例えば、ドメイン拡張子（例えば、「ｃｏｍ」、「ｎｅｔ」、及び「ｏｒｇ」）又は頭文字（例えば、ＦＢＩ、ＩＲＳ）などを形成する複数の文字を含んでもよい。
【０２４５】
音声入力１０２４Ｅに基づいて発声を識別すると、デバイス８００は、発声のタイプを判定することができる。いくつかの実施例では、判定は、前に認識され、知識リポジトリ（例えば、知識リポジトリ９１０）に記憶された単語に基づいてもよい。例として、それらの単語は、クレデンシャルを入力するためのいくつかの共通して使用される単語（例えば、ドメイン拡張子「ｃｏｍ」、「ｎｅｔ」、及び「ｏｒｇ」）を含んでもよい。別の実施例として、それらの単語は、頭文字「ＦＢＩ」、「ＩＲＳ」、及び「ＵＳＰＴＯ」など、ユーザ１０３０が前に声に出した単語を含んでもよい。よって、前に声に出された単語はまた、知識リポジトリに記憶されてもよい。知識リポジトリに含まれる単語は、デバイス８００又はサーバ（例えば、サーバ１０８）に記憶されてもよい。
【０２４６】
説明されるように、ユーザが音声入力を提供したことに応じて、発声のタイプが判定されてもよい。例えば、上記説明されたように、デバイス８００は、発声の一連の音標を知識リポジトリ内の単語の音標の連続に一致させることによって、発声のタイプが予め定められた文字の組合せを有する単語に対応するかを判定することができる。
【０２４７】
いくつかの実施例では、発声のタイプが予め定められた文字の組合せを有する単語に対応するとの判定に従って、デバイス８００は、予め定められた文字の組合せを有する単語（例えば、「ｃｏｍ」）を識別し、単語をテキストに変換する。図１０Ｅを参照して、テキストへの変換に応じて、デバイス８００は、ディスプレイ８１４を使用して、音声入力１０２４Ｅのコンテンツのテキスト（例えば、単語「ｃｏｍ」のテキスト）を表示させることができる。
【０２４８】
図１０Ｆを参照して、いくつかの実施例では、デバイス８００は、追加の文字、句読点の単語、及びフレーズを識別することができる。デバイス８００はまた、コマンドを識別することができる。例として、音声入力１０２４Ｆを受信すると、デバイス８００は、音声入力１０２４Ｆ内の１つ以上の発声を識別することができる。示されるように、音声入力１０２４Ｆは、文字、フレーズ、及びコマンドの混合（例えば、文字「ａ」、句読点の単語「アスタリスク」、文字「ｂ」、コマンド「大文字」、文字「ｃ」、句読点の単語「ドル記号」、数字の桁「１」、「２」、及び「３」、並びに句読点の単語「パーセント記号」）を含んでもよい。音声入力１０２４Ｆを受信したことに応じて、デバイス８００は、文字「ａ」、句読点の単語「アスタリスク」、文字「ｂ」、句読点の単語「ドル記号」、数字の桁「１」、「２」、及び「３」、並びに句読点の単語「パーセント記号」の発声を識別することができる。デバイス８００はまた、それらの発声のタイプを判定することができ、それらの発声をディスプレイ８１４上で表示するためにテキストに変換することができる。
【０２４９】
図１０Ｆを参照して、デバイス８００はまた、例えば、音声入力１０２４Ｆ内の発声を識別することによって、音声入力に基づいてコマンドを識別することができる。示されるように、音声入力１０２４Ｆは、コマンド（例えば、コマンド「大文字」）を含んでもよい。コマンドによって、表示されたテキストを編集すること、又は表示されたテキストに関していずれかの所望の機能を実行することが可能になる。例示的なコマンドは、「大文字」、「小文字」、「挿入」、「削除」、「置換」、「複製」、「ペースト」、「選択」、又は「検索」などを含む。
【０２５０】
音声入力１０２４Ｆに基づいて発声を識別すると、デバイス８００は、発声のタイプを判定することができる。いくつかの実施例では、判定は、前に認識され、知識リポジトリ（例えば、知識リポジトリ９１０）に記憶されたコマンドに基づいてもよい。いくつかの実施形態では、それらのコマンドは、「挿入」、「削除」、「大文字」、又は「小文字」など、共通して使用されるコマンドを含んでもよい。それらのコマンドはまた、デバイス８００がユーザ１０３０から前に受信したコマンドを含んでもよい。知識リポジトリに含まれるコマンドは、デバイス８００又はサーバ（例えば、サーバ１０８）に記憶されてもよい。デバイス８００は、発声の一連の音標（例えば、コマンドの発音）を知識リポジトリ内のコマンドの音標の連続に一致させることによって、発声のタイプがコマンドに対応するかを判定することができる。
【０２５１】
いくつかの実施例では、発声のタイプがコマンドに対応するとの判定に従って、デバイス８００は、開始されることになるコマンドに従ってアクションを開始させることができる。例えば、図１０Ｆを参照して、「大文字」の発声のタイプがコマンドに対応するとの判定に従って、デバイス８００は、音声入力１０２４Ｆのコンテンツ（例えば、文字「ｃ」の発声）をテキストに変換させることができ、「ｃ」のテキストをその大文字の形式「Ｃ」に変換するアクションを開始させることができる。
【０２５２】
図１１Ａ〜１１Ｅは、様々な実施例に従った、音声入力識別の機能性を示す。図１１Ａを参照して、いくつかの実施例では、デバイス８００は、追加の文字及びフレーズを識別することができる。例えば、音声入力１１４４Ａを受信すると、デバイス８００は、音声入力１１４４Ａ内の１つ以上の発声を識別することができる。示されるように、音声入力１１４４Ａは、文字、フレーズ、及びコマンドの混合（例えば、文字「ａ」、フレーズ「ｂｏｙにあるｂ」、文字「ｒ」、「ａ」、及び「ｈ」）を含んでもよい。説明されるように、音声入力１１４４Ａを受信したことに応じて、デバイス８００は、文字「ａ」、「ｒ」、及び「ａ」、並びにフレーズ「ｂｏｙにあるｂ」の発声を識別することができ、それらをテキストに変換することができ、テキストをディスプレイ８１４上で表示させることができる。
【０２５３】
デバイス８００はまた、音声入力に基づいて追加のコマンドを識別することができる。例として、デバイス８００は、文字「ｈ」を文字「ｓ」として誤って識別することがあり、したがって、文字「ｈ」の代わりに文字「ｓ」をディスプレイ８１４上で表示させる。図１１Ａに示されるように、ユーザ１１３０は、そのような誤りを修正することを望むことがあり、よって、音声入力１１４４Ａにおいて、文字「ｓ」を削除することを意図する、「削除」を声に出すことがある。いくつかの実施例では、ユーザ１１３０は、代わりに、ユーザの意図された入力をより明確に強調するために、「Ｈｅｎｒｙにあるｈ」と声に出すことがある。
【０２５４】
いくつかの実施例では、音声入力１１４４Ａ内の発声のタイプがコマンドに対応するとの判定に従って、デバイス８００は、コマンドに従ってアクションを開始することができる。例えば、図１１Ａを参照して、音声入力１１４４Ａ内の発声のタイプがコマンド（例えば、コマンド「削除」）に対応するとの判定に従って、デバイス８００は、ディスプレイ８１４上で表示された現在の文字又は直接先行する文字を削除させることができる（例えば、文字「ｓ」）。いくつかの実施例では、１つよりも多い「削除」コマンドが識別される場合、デバイス８００は、ディスプレイ８１４上で表示された現在の文字又は１つ以上の先行する文字を削除させることができる。例えば、音声入力１１４４Ａが２つの連続したコマンド「削除」を含む場合、デバイス８００は、２つの直接先行する文字（例えば、文字「ｓ」及び「ａ」）を削除させることができ、音声入力１１４４Ａが３つの連続したコマンド「削除」を含む場合、デバイス８００は、３つの直接先行する文字（例えば、文字「ｓ」、「ａ」、及び「ｒ」）を削除させることなどができる。
【０２５５】
いくつかの実施例では、コマンド「削除」を含む音声入力を提供した後、ユーザ１０３０は、例えば、フレーズ（例えば、「Ｈｅｎｒｙにあるｈ」）を使用して、ユーザの意図を明確にするために追加の音声入力を提供してもよい。音声入力１１４４Ａを受信すると、デバイス８００は、音声入力１１４４Ａに基づいて、正確な文字（例えば、「ｈ」）を識別することができる。例えば、デバイス８００は、フレーズの発声を識別することができ、識別に基づいて正確な文字をテキストに変換することができ、ディスプレイ８１４上でテキストを表示させることができる。図１１Ａに示されるように、デバイス８００は、コマンドに従ったアクションの実行の結果として（例えば、「ｓ」を削除し、「ｈ」を表示する）、ディスプレイ８１４に音声入力１１４４Ａのコンテンツのテキストを表示させることができる。
【０２５６】
図１１Ｂを参照して、いくつかの実施例では、デバイス８００は、追加のコマンドを識別することができる。例として、ユーザ１１３０は、文字「ａ」を挿入することを望むことがあり、よって、「『ａ』を挿入して下さい。（insert 'a.'）」と声に出すことがある。
【０２５７】
いくつかの実施例では、発声のタイプがコマンド（例えば、「挿入」）に対応するとの判定に従って、デバイス８００は、コマンドに従ってアクションを開始させることができる。例えば、図１１Ｂに示されるように、音声入力１１４４Ｂの発声のタイプがコマンドに対応するとの判定に従って、デバイス８００は、コマンド「挿入」に続く文字（例えば、「ａ」）をディスプレイ８１４上で表示された現在の文字に直接先行する位置（例えば、文字「ｍ」に先行する）において挿入させることができる。図１１Ｂに示されるように、デバイス８００は、コマンドに従ったアクションの実行の結果として（例えば、文字「ｍ」の前に文字「ａ」を挿入すること）、音声入力１１４４Ｂのテキストを表示させることができる（例えば、ディスプレイ８１４を使用して）。
【０２５８】
図１１Ｃを参照して、いくつかの実施例では、コマンドは、１つ以上のパラメータとの組合せで提供されてもよい。例として、ユーザ１１３０は、音声入力の１１４４Ｃほとんどの部分がユーザ１１３０によって提供された後まで不適切な入力を認識しないことがある。例えば、ユーザ１１３０は、ユーザ１０３０がユーザ名を入力することを試みる際に「ドット」、「ｃｏｍ」を声に出した後まで文字「ａ」が欠けていることを認識しないことがある。結果として、ユーザ１１３０は、単語「ａｂｒａｈａｍ」内の字「ｈ」と「ｍ」との間に文字「ａ」を挿入することを望むことがある。したがって、ユーザ１１３０は、コマンド「挿入」を含み、更に、「『ａｔ』の前の『ｈ』と『ｍ』との間の『ａ』」と指定する音声入力１１４４Ｃを提供してもよい。いくつかの実施例では、音声入力１１４４Ｃは、「単語『ａｂｒａｈａｍ』内で『ｈ』と『ｍ』との間に『ａ』を挿入して下さい。（insert 'a'between 'h'and 'm'in the word 'abraham.'）」などのコマンドを含んでもよい。説明されるように、音声入力１１４４Ｃを受信すると、デバイス８００は、音声入力１１４４Ｃ内の発声を識別することができる。
【０２５９】
発声を識別すると、デバイス８００はまた、発声のタイプがコマンド（例えば、「挿入」）及び１つ以上の関連付けられたパラメータに対応するかを判定することができる。いくつかの実施例では、デバイス８００は、発声のうちの１つがコマンド（例えば、「挿入」）に対応するかを最初に判定することができる。発声のタイプがコマンドに対応するとの判定に従って、デバイス８００は更に、コマンドに従ってアクションを実行するための１つ以上のパラメータがコマンドに伴うかを判定することができる。そのようなパラメータは、例えば、挿入又は削除されることになる文字（例えば、「ａ」）、及び編集する位置（例えば、「『ａｔ』の前の『ｈ』と『ｍ』との間」、「単語『ａｂｒａｈａｍ』内の『ｈ』と『ｍ』との間」）を含んでもよい。いくつかの実施例では、コマンドに１つ以上のパラメータが伴うかの判定によって、デフォルトの構成に従ってではなく、ユーザの意図に従ってアクションを開始させることが可能になる。例えば、以下で説明されるように、デバイス８００は、コマンド及び１つ以上のデフォルトの構成（例えば、直接先行する文字を削除し、又は現在の文字の後に挿入するなどのためのデフォルトの構成）に従ってではなく、コマンド及びパラメータに従ってアクションを開始させることができる。
【０２６０】
コマンドに１つ以上のパラメータが伴うとの判定に従って、デバイス８００は、コマンド及びパラメータに対応するアクションを開始させることができる。例えば、図１１Ｃに示されるように、「挿入」の発声のタイプがコマンドに対応するとの判定、及び「挿入」コマンドを伴うパラメータが存在するとの判定に従って、デバイス８００は、コマンド（例えば、字「ａ」などの対応する文字を挿入するための）及びパラメータ（例えば、単語「ａｂｒａｈａｍ」内の「ｈ」と「ｍ」との間）に従ってアクションを開始させることができる。図１１Ｃを参照して、デバイス８００は、コマンド（例えば、文字「ａ」を正確な位置に挿入する）及びパラメータに従ったアクションの実行の結果として、音声入力１１４４Ｃのコンテンツのテキストを表示させることができる（例えば、ディスプレイ８１４を使用して）。
【０２６１】
図１１Ｄを参照して、デバイス８００は、１つ以上の追加のコマンドを識別することができる。例として、ユーザ１１３０は、前の文字を繰り返すことがある。例えば、音声入力１１４４Ｄにおいて、パスワード内で文字「ｂ」を２回入力することを意図するユーザ１１３０は、「ｂｏｙにあるｂ」とそれに続いてコマンド「繰り返し」を声に出すことがある。
【０２６２】
説明されるように、発声のタイプがコマンドに対応するとの判定に従って、デバイス８００は、コマンドに従ってアクションを開始させることができる。例えば、図１１Ｄに示されるように、デバイス８００は、コマンド（例えば、直接先行する文字を繰り返すための）に従ってアクションを開始させることができる。図１１Ｄを参照して、デバイス８００は、コマンドに従ったアクションの実行の結果として（例えば、追加の文字「ｂ」を表示する）、音声入力１１４４Ｄのコンテンツのテキストを表示させることができる。
【０２６３】
図１０Ａ〜１０Ｆ及び１１Ａ〜１１Ｄは、例としてデバイス８００を使用して説明されるが、代わりに、本明細書で説明されるデジタルアシスタントの機能及び処理のうちの１つ以上がサーバ（例えば、サーバ１０８）又はデバイス８００及びサーバの組合せによって実行されてもよいことが認識されよう。例えば、音声入力１０２４Ａ〜Ｆのうちの１つ以上を受信すると、デバイス８００は、音声入力１０２４Ａ〜Ｆを表すデータをサーバ１０８に提供することができ、サーバ１０８は、音声入力１０２４Ａ〜Ｆのコンテンツを識別することができる。例として、サーバ１０８は、１つ以上の発声を識別することができ、１つ以上の発声のタイプを判定することができ、音声入力１０２４Ａ〜Ｆのコンテンツの表現を取得することができる。いくつかの実施例では、サーバ１０８は、音声入力１０２４Ａ〜Ｆのコンテンツの表現をデバイス８００に提供することができる。音声入力１０２４Ａ〜Ｆのコンテンツの表現をサーバ１０８から受信すると、デバイス８００は、取得された表現をテキストに変換することができ、ディスプレイ８１４上でテキストを表示させることができる。いくつかの実施例では、サーバ１０８は、音声入力１０２４Ａ〜Ｆの表現をテキストに変換することができ、テキストをデバイス８００に提供することができる。その後、デバイス８００は、ディスプレイ８１４上でテキストを表示させることができる。
６．音声入力を識別する処理
【０２６４】
図１２Ａ〜Ｄは、いくつかの実施形態に従った、音声入力識別のための例示的な処理１２００のフローチャートを示す。処理１２００は、１つ以上のデバイス１０４、１０８、２００、４００、６００、８００、又は８１０（図１、２Ａ、４、６Ａ〜Ｂ、又は８Ａ〜８Ｂ）を使用して実行されてもよい。処理１２００における動作は、任意選択的に組み合わされ、若しくは分離され、及び／又はいくつかの動作の順序が任意選択的に変更される。
【０２６５】
図１２Ａを参照して、ブロック１２０２において、音声入力が受信される。音声入力は、文字、フレーズ、コマンド、及び／又は単語に対応する１つ以上の発声を含んでもよい。音声入力は、ユーザ名を表す第１のユーザクレデンシャル又はパスワードを表す第２のユーザクレデンシャルのうちの少なくとも１つに対応することができる。
【０２６６】
ブロック１２０４において、第１の文字、第２の文字を識別するフレーズ、及び単語は、音声入力に基づいて識別される。いくつかの実施例では、第１の文字は、字、数字の桁、制御文字、又は空白のうちの少なくとも１つを含む。制御文字は、句読点の単語によって識別される句読点、又は非句読点の文字（例えば、タブ、キャリッジリターン）を含むことができる。第２の文字を識別するフレーズは、第２の文字の識別を支援するための単語の綴りを含むことができる。単語は、例えば、自然言語の単語を表す複数の文字のいずれかの組合せを含んでもよい。単語はまた、例えば、ドメイン拡張子及び／又は頭文字を表す、予め定められた文字の組合せを含んでもよい。
【０２６７】
いくつかの実施例では、音声に基づく第１の文字、第２の文字を識別するフレーズ、及び単語は、ユーザと関連付けられたコンテキストデータ又は１つ以上の認識されたクレデンシャルモデルのうちの少なくとも１つに基づいて識別される。例えば、コンテキストデータは、ユーザのカレンダ、連絡先、ユーザの発話プロファイル、又はいずれかの他のユーザ特有データを含んでもよい。いくつかの実施例では、認識されたクレデンシャルモデルは、ユーザ名のフォーマット（例えば、ｆｉｒｓｔｎａｍｅ＿ｌａｓｔｎａｍｅ＠ｄｏｍａｉｎ＿ｎａｍｅ．ｃｏｍ、ｆｉｒｓｔｉｎｉｔｉａｌ＿ｌａｓｔｎａｍｅ＠ｄｏｍａｉｎ＿ｎａｍｅ．ｏｒｇ）などの認識されたクレデンシャルのフォーマット、又は字、格、制御文字、及び数字の桁の混合などのパスワードのフォーマットを表すことができる。
【０２６８】
いくつかの実施例では、音声に基づく第１の文字、第２の文字を識別するフレーズ、及び単語は、視線検出に基づいて識別される。例えば、音声入力をユーザから受信する間、ユーザが或る方向又は領域を見ているかが判定されてもよい（例えば、カメラを使用することによって）。方向又は領域がクレデンシャルを入力するためのキーボード又はキーに対応すると判定される場合、ユーザが見ている方向又は領域の情報は、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することを支援することができる。
【０２６９】
ブロック１２０６において、音声入力のコンテンツは、ユーザデバイス（例えば、図１０Ａ〜１０Ｆ及び１１Ａ〜１１Ｄにおけるデバイス８００）に記憶された１つ以上の発話認識モデルに基づいて識別されてもよい。いくつかの実施例では、識別は、サーバ（例えば、サーバ１０８）と通信することなくユーザデバイス上で実行されてもよい。
【０２７０】
ブロック１２０８において、いくつかの実施例では、音声入力のコンテンツの識別は、ユーザデバイス及びサーバを使用して実行されてもよい。例えば、識別は、音声入力を表すデータをユーザデバイスからサーバに提供することを含むことができる。サーバは、サーバに記憶された１つ以上の言語モデルに基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語のうちの少なくとも１つの識別を実行することができる。次いで、ユーザデバイスは、サーバから、識別された第１の文字、第２の文字を識別する識別されたフレーズ、又は識別された単語のうちの少なくとも１つを表すデータを受信する。
【０２７１】
図１２Ｂを参照して、ブロック１２１２において、音声入力のコンテンツの識別は、音声入力の発声を識別することを含む。ブロック１２１４において、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、発声のタイプを判定することを含む。
【０２７２】
ブロック１２１６において、発声のタイプが認識された文字に対応するかが判定される。ブロック１２１８において、発声について、発声が制御文字に対応するかが判定される。ブロック１２２０において、発声が制御文字に対応するとの判定に従って、発声について、発声が句読点の単語に対応するかが判定される。
【０２７３】
ブロック１２２１において、発声が句読点の単語に対応するとの判定に従って、句読点の単語に対応する句読点の表現が取得される。ブロック１２２２において、発声が句読点の単語に対応しないとの判定に従って、句読点の単語以外の制御文字の表現が取得される。
【０２７４】
ブロック１２２４において、発声のタイプが第２の文字を識別する認識されたフレーズに対応するかが判定される。ブロック１２２６において、発声のタイプが単語に対応するかが判定される。
【０２７５】
ブロック１２２８において、判定された発声のタイプに基づいて、発声に対応する、第１の文字、フレーズによって識別される第２の文字、又は単語の表現が取得される。いくつかの実施例では、表現は、音声表現、テキスト表現、空間／ベクトル表現、又はそれらの組合せを含んでもよい。
【０２７６】
ブロック１２３０において、表現についての信頼度レベルが取得される。信頼度レベルは、識別の正確度を示す。ブロック１２３２において、信頼度レベルが閾値以上であるかが判定される。ブロック１２３４において、信頼度レベルが閾値以上であるとの判定に従って、発声に対応する、第１の文字、フレーズによって識別される第２の文字、又は単語の表現がテキストに変換される。ブロック１２３６において、信頼度レベルが閾値未満であるとの判定に従って、１つ以上の候補表現、エラーメッセージ、又はそれらの組合せが提供されてもよい。
【０２７７】
ブロック１２３８において、少なくとも１つのコマンドが識別されてもよい。コマンドによって、表示されたテキストの編集が可能になる。ブロック１２４０において、コマンドを識別するために、少なくとも１つの発声が識別される。ブロック１２４２において、発声のタイプが認識されたコマンドに対応するかが判定される。ブロック１２４４において、発声のタイプが認識されたコマンドに対応するとの判定に従って、表示されたテキストを編集するための認識されたコマンドに従ってアクションが開始される。
【０２７８】
ブロック１２４６において、少なくとも１つのコマンドに対応する発声、及び少なくとも１つのコマンドに対応する発声と関連付けられた情報が記憶される。少なくとも１つのコマンドに対応する発声と関連付けられた情報は、例えば、ユーザがコマンド「削除」を声に出した回数を含むことができる。情報は、識別の正確度を示すことができる。
【０２７９】
ブロック１２４８において、識別に応じて、第１の文字、第２の文字、及び単語がテキストに変換される。ブロック１２５０において、テキストは、ディスプレイ上で、音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番で表示される。例えば、音声入力は、第１の文字と、それに続く単語と、それに続く第２の文字を識別するフレーズの順序で提供されてもよい。よって、表示されるテキストは、第１の文字と、それに続く単語と、それに続く第２の文字の順序にある。
【０２８０】
ブロック１２５２において、音声入力の１つ以上の識別された発声、第１の文字に対応する１つ以上の識別された発声、第２の文字を識別するフレーズ、及び単語が記憶されてもよい。発声を記憶することによって、識別の精度を改善するために、デジタルアシスタントの学習及び訓練が可能となってもよい。
７．電子デバイス
【０２８１】
図１３は、図９、１０Ａ〜１０Ｆ、及び１１Ａ〜１１Ｄを参照して説明される実施例を含む、様々な説明される実施例の原理に従うように構成された電子デバイス１３００の機能的ブロック図を示す。デバイスの機能的ブロックは、任意選択的に、様々な説明される実施例の原理を実施するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組合せで実装されてもよい。図１３で説明される機能的ブロックは、任意選択的に、様々な説明される実施例の原理を実装するために、組み合わされてもよく、又はサブブロックに分離されてもよいことが当業者によって理解される。したがって、本明細書における説明は、任意選択的に、本明細書で説明される機能的ブロックのいずれかの可能な組合せ、分離、又は更なる定義をサポートする。
【０２８２】
図１０に示されるように、電子デバイス１３００は、マイクロフォン１３０２及び処理ユニット１３０８を含むことができる。いくつかの実施例では、処理ユニット１３０８は、受信ユニット１３１０、識別ユニット１３１２、変換ユニット１３１４、及び使役ユニット１３１６を含み、任意選択的に、提供ユニット１３１８、判定ユニット１３２０、取得ユニット１３２２、及び記憶ユニット１３２４を含む。
【０２８３】
処理ユニット１３０８は、音声入力を受信し（例えば、受信ユニット１３１０）で）、音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別する（例えば、識別ユニット１３１２で）ように構成されている。処理ユニット１３０８は、識別に応じて、第１の文字、第２の文字、及び単語をテキストに変換し（例えば、変換ユニット１３１４で）、ディスプレイで、音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番でテキストを表示させる（例えば、使役ユニット１３１６で）ように更に構成されている。
【０２８４】
いくつかの実施例では、第１の文字は、字、数字の桁、制御文字、又は空白のうちの少なくとも１つを含む。
【０２８５】
いくつかの実施例では、制御文字は、句読点の単語によって識別される句読点を含む。
【０２８６】
いくつかの実施例では、フレーズは、第２の文字の識別を支援するための単語の綴りを含む。
【０２８７】
いくつかの実施例では、単語は、複数の文字を含む。
【０２８８】
いくつかの実施例では、複数の文字は、ドメイン拡張子又は頭文字のうちの少なくとも１つを表す。
【０２８９】
いくつかの実施例では、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、ユーザデバイスに記憶された１つ以上の発話認識モデルに基づいて、第１の文字、第２の文字を識別するフレーズ、又は単語のうちの少なくとも１つを識別すること（例えば、識別ユニット１３１２で）を含む。
【０２９０】
いくつかの実施例では、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、音声入力を表すデータをサーバに提供すること（例えば、提供ユニット１３１８で）、並びにサーバから、識別された第１の文字、第２の文字を識別する識別されたフレーズ、又は識別された単語のうちの少なくとも１つを表すデータを受信すること（例えば、受信ユニット１３１０で）を含む。
【０２９１】
いくつかの実施例では、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、サーバに記憶された１つ以上の言語モデルに基づいて、第１の文字、第２の文字を識別するフレーズ、又は単語のうちの少なくとも１つを識別すること（例えば、識別ユニット１３１２で）を含む。
【０２９２】
いくつかの実施例では、音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、音声入力の発声を識別すること（例えば、識別ユニット１３１２で）、発声のタイプを判定すること（例えば、判定ユニット１３２０で）、並びに判定された発声のタイプに基づいて、発声に対応する、第１の文字、フレーズによって識別される第２の文字、又は単語の表現を取得すること（例えば、取得ユニット１３２２で）を含む。
【０２９３】
いくつかの実施例では、発声のタイプを判定することは、発声のタイプが認識された文字に対応するかを判定すること（例えば、判定ユニット１３２０で）、発声のタイプが第２の文字を識別する認識されたフレーズに対応するかを判定すること（例えば、判定ユニット１３２０で）、及び発声のタイプが単語に対応するかを判定すること（例えば、判定ユニット１３２０で）のうちの少なくとも１つを実行することを含む。
【０２９４】
いくつかの実施例では、発声のタイプが認識された文字に対応するかを判定することは、発声について、発声が制御文字に対応するかを判定すること（例えば、判定ユニット１３２０で）、及び発声が制御文字に対応するとの判定に従って、発声について、発声が句読点の単語に対応するかを判定すること（例えば、判定ユニット１３２０で）を含む。
【０２９５】
いくつかの実施例では、判定された発声のタイプに基づいて、文字の表現を取得することは、発声が句読点の単語に対応するとの判定に従って、句読点の単語に対応する句読点の表現を取得すること（例えば、取得ユニット１３２２で）、発声が句読点の単語に対応しないとの判定に従って、句読点の単語以外の制御文字の表現を取得すること（例えば、取得ユニット１３２２で）を含む。
【０２９６】
いくつかの実施例では、音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、表現についての信頼度レベルを取得すること（例えば、取得ユニット１３２２で）、信頼度レベルが閾値以上であるかを判定すること（例えば、判定ユニット１３２０で）を更に含む。
【０２９７】
いくつかの実施例では、第１の文字、第２の文字、及び単語をテキストに変換することは、信頼度レベルが閾値以上であるとの判定に従って、発声に対応する、第１の文字、フレーズによって識別される第２の文字、又は単語の表現をテキストに変換すること（例えば、変換ユニット１３１４で）、信頼度レベルが閾値未満であるとの判定に従って、１つ以上の候補表現、エラーメッセージ、又はそれらの組合せを提供すること（例えば、提供ユニット１３１８で）を含む。
【０２９８】
いくつかの実施例では、処理ユニット１３０８は、少なくとも１つのコマンドを識別するように更に構成され（例えば、識別ユニット１３１２で）、少なくとも１つのコマンドによって、表示されたテキストを編集することが可能になる。
【０２９９】
いくつかの実施例では、少なくとも１つのコマンドを識別することは、少なくとも１つの発声を識別すること（例えば、識別ユニット１３１２で）、発声のタイプが認識されたコマンドに対応するかを判定すること（例えば、判定ユニット１３２０で）、及び発声のタイプが認識されたコマンドに対応するとの判定に従って、表示されたテキストを編集するための認識されたコマンドに従ってアクションを開始させること（例えば、使役ユニット１３１６で）を含む。
【０３００】
いくつかの実施例では、処理ユニット１３０８は、少なくとも１つのコマンドに対応する発声を記憶し（例えば、記憶ユニット１３２４で）、少なくとも１つのコマンドに対応する発声と関連付けられた情報を記憶する（例えば、記憶ユニット１３２４で）ように更に構成されている。
【０３０１】
いくつかの実施例では、音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、ユーザと関連付けられたコンテキストデータ又は１つ以上の認識されたクレデンシャルモデルのうちの少なくとも１つに基づいている。
【０３０２】
いくつかの実施例では、ユーザと関連付けられたコンテキストデータは、ユーザの発話プロファイルを含む。
【０３０３】
いくつかの実施例では、１つ以上の認識されたクレデンシャルモデルは、１つ以上の認識されたクレデンシャルのフォーマットを表す。
【０３０４】
いくつかの実施例では、音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、視線検出に基づいている。
【０３０５】
いくつかの実施例では、音声入力は、ユーザ名を表す第１のユーザクレデンシャル又はパスワードを表す第２のユーザクレデンシャルのうちの少なくとも１つに対応する。
【０３０６】
いくつかの実施例では、処理ユニット１３０８は、音声入力の１つ以上の発声、第１の文字に対応する１つ以上の発声、第２の文字を識別するフレーズ、及び単語を記憶する（例えば、記憶ユニット１３２４で）ように更に構成されている。
【０３０７】
図１３に関して上記説明された動作は、任意選択的に、図１、２Ａ、４、６Ａ〜Ｂ、７Ａ、８Ａ〜８Ｂ、又は９に記された構成要素によって実装される。例えば、受信ユニット１３１０、識別ユニット１３１２、変換ユニット１３１４、及び使役ユニット１３１６は、任意選択的に、プロセッサ（単数又は複数）２２０によって実装される。図１、２Ａ、４、６Ａ〜Ｂ、７Ａ、８Ａ〜８Ｂ、又は９で記された構成要素に基づいて他の処理をどのように実装することができるかが当業者にとって明らかであろう。
【０３０８】
図１３で説明された機能的ブロックは、任意選択的に、様々な説明された実施形態の原理を実装するために組み合わされ、又はサブブロックに分離されることが当業者によって理解される。したがって、本明細書における説明は、任意選択的に、本明細書で説明される機能的ブロックのいずれかの可能な組合せ、分離、又は更なる定義をサポートする。例えば、処理ユニット１３０８は、動作を有効にするために、処理ユニット１３０８と動作可能に結合された、関連付けられた「コントローラ」ユニットを有することができる。このコントローラユニットは、図１３において別個に示されないが、デバイス１３００などの処理ユニット１３０８を有するデバイスを設計する当業者の理解の中にあるものと理解される。別の例として、受信ユニット１３１０などの１つ以上のユニットは、いくつかの実施形態では、処理ユニット１３０８の外部のハードウェアユニットであってもよい。よって、本明細書における説明は、任意選択的に、本明細書で説明される機能的ブロックの組合せ、分離、及び／又は更なる定義をサポートする。
【０３０９】
例示的な方法、非一時的コンピュータ可読記憶媒体、システム、及び電子デバイスは、以下の条項において示される。
条項１．１つ以上のユーザクレデンシャルを提供する音声入力を識別する方法であって、
ディスプレイ、１つ以上のプロセッサ、及びメモリを有するユーザデバイスにおいて、
音声入力を受信することと、
音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することと、
識別に応じて、第１の文字、第２の文字、及び単語をテキストに変換することと、
ディスプレイで、音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番でテキストを表示させることと、
を含む、方法。
条項２．第１の文字は、字、数字の桁、制御文字、又は空白のうちの少なくとも１つを含む、条項１に記載の方法。
条項３．制御文字は、句読点の単語により識別される句読点を含む、条項２に記載の方法。
条項４．フレーズは、第２の文字の識別を支援するための単語の綴りを含む、条項１〜３のいずれか一つに記載の方法。
条項５．単語は、複数の文字を含む、条項１〜４のいずれか一つに記載の方法。
条項６．複数の文字は、ドメイン拡張子又は頭文字のうちの少なくとも１つを表す、条項５に記載の方法。
条項７．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
ユーザデバイスに記憶された１つ以上の発話認識モデルに基づいて、第１の文字、第２の文字を識別するフレーズ、又は単語のうちの少なくとも１つを識別することを含む、条項１〜６のいずれか一つに記載の方法。
条項８．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
音声入力を表すデータをサーバに提供することと、
サーバから、第１の文字、第２の文字を識別するフレーズ、又は単語のうちの少なくとも１つを表すデータを受信することと、
を含み、
音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
サーバに記憶された１つ以上の言語モデルに基づいて、第１の文字、第２の文字を識別するフレーズ、又は単語のうちの少なくとも１つを識別することを含む、
条項１〜７のいずれか一つに記載の方法。
条項９．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
音声入力の発声を識別することと、
発声のタイプを判定することと、
判定された発声のタイプに基づいて、発声に対応する、第１の文字、フレーズによって識別される第２の文字、又は単語の表現を取得することと、
を含む、条項１〜８のいずれか一つに記載の方法。
条項１０．発声のタイプを判定することは、
発声のタイプが文字に対応するかを判定することと、
発声のタイプが文字を識別するフレーズに対応するかを判定することと、
発声のタイプが単語に対応するかを判定することと、
のうちの少なくとも１つを実行することを含む、条項９に記載の方法。
条項１１．発声のタイプが文字に対応するかを判定することは、
発声について、発声が制御文字に対応するかを判定することと、
発声が制御文字に対応するとの判定に従って、発声について、発声が句読点の単語に対応するかを判定することと、
を含み、
判定された発声のタイプに基づいて、文字の表現を取得することは、
発声が句読点の単語に対応するとの判定に従って、句読点の単語に対応する句読点の表現を取得することと、
発声が句読点の単語に対応しないとの判定に従って、句読点の単語以外の制御文字の表現を取得することと、
を含む、条項１０に記載の方法。
条項１２．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
表現についての信頼度レベルを取得することと、
信頼度レベルが閾値以上であるかを判定することと、
を更に含み、
第１の文字、第２の文字、及び単語をテキストに変換することは、
信頼度レベルが閾値以上であるとの判定に従って、発声に対応する、第１の文字、フレーズによって識別される第２の文字、又は単語の表現をテキストに変換することと、
信頼度レベルが閾値未満であるとの判定に従って、１つ以上の候補表現、エラーメッセージ、又はそれらの組合わせを提供することと、
を含む、条項９〜１１のいずれか一つに記載の方法。
条項１３．
音声入力に基づいて少なくとも１つのコマンドを識別することを更に含み、少なくとも１つのコマンドによって、表示されたテキストを編集することが可能になる、条項１〜１２のいずれか一つに記載の方法。
条項１４．少なくとも１つのコマンドを識別することは、
少なくとも１つの発声を識別することと、
発声のタイプがコマンドに対応するかを判定することと、
発声のタイプがコマンドに対応するとの判定に従って、表示されたテキストを編集するためのコマンドに対応するアクションを開始させることと、
を含む、条項１３に記載の方法。
条項１５．
少なくとも１つのコマンドに対応する発声を記憶し、少なくとも１つのコマンドに対応する発声と関連付けられた情報を記憶することを更に含む、条項１４に記載の方法。
条項１６．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、ユーザと関連付けられたコンテキストデータ又は１つ以上の認識されたクレデンシャルモデルのうちの少なくとも１つに基づいている、条項１〜１５のいずれか一つに記載の方法。
条項１７．ユーザと関連付けられたコンテキストデータは、ユーザの発話プロファイルを含む、条項１６に記載の方法。
条項１８．１つ以上の認識されたクレデンシャルモデルは、１つ以上の認識されたクレデンシャルのフォーマットを表す、条項１６及び１７のいずれか一つに記載の方法。
条項１９．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、視線検出に基づいている、条項１〜１８のいずれか一つに記載の方法。
条項２０．音声入力は、ユーザ名を表す第１のユーザクレデンシャル又はパスワードを表す第２のユーザクレデンシャルのうちの少なくとも１つに対応する、条項１〜１９のいずれか一つに記載の方法。
条項２１．
音声入力の１つ以上の発声、第１の文字に対応する１つ以上の発声、第２の文字を識別するフレーズ、及び識別に基づいて認識された単語を記憶することを更に含む、条項１〜２０のいずれか一つに記載の方法。
条項２２．１つ以上のプログラムを記憶した非一時的コンピュータ可読記憶媒体であって、１つ以上のプログラムは、命令を含み、命令は、電子デバイスの１つ以上のプロセッサによって実行されるとき、電子デバイスに、
音声入力を受信させ、
音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別させ、
識別に応じて、第１の文字、第２の文字、及び単語をテキストに変換させ、
ディスプレイで、音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番でテキストを表示させる、
非一時的コンピュータ可読記憶媒体。
条項２３．電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
１つ以上のプログラムと、を含み、１つ以上のプログラムは、メモリに記憶され、１つ以上のプロセッサによって実行されるように構成されており、１つ以上のプログラムは、
音声入力を受信し、
音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別し、
識別に応じて、第１の文字、第２の文字、及び単語をテキストに変換し、
ディスプレイで、音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番でテキストを表示させる、
命令を含む、電子デバイス。
条項２４．電子デバイスであって、
音声入力を受信する手段と、
音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別する手段と、
識別に応じて、第１の文字、第２の文字、及び単語をテキストに変換する手段と、
ディスプレイで、音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番でテキストを表示させる手段と、
を含む、電子デバイス。
条項２５．電子デバイスであって、
１つ以上のプロセッサと、
メモリと、
メモリに記憶された１つ以上のプログラムと、を含み、１つ以上のプログラムは、条項１〜２１のいずれか一つに記載の方法を実行する命令を含む、電子デバイス。
条項２６．電子デバイスの１つ以上のプロセッサによる実行のための１つ以上のプログラムを含む非一時的コンピュータ可読記憶媒体であって、１つ以上のプログラムは、命令を含み、命令は、１つ以上のプロセッサによって実行されるとき、電子デバイスに条項１〜２１のいずれか一つに記載の方法を実行させる、非一時的コンピュータ可読記憶媒体。
条項２７．電子デバイスであって、
条項１〜２１のいずれか一つに記載の方法を実行する手段を含む、電子デバイス。
条項２８．電子デバイスであって、
音声入力を受信し、
音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別し、
識別に応じて、第１の文字、第２の文字、及び単語をテキストに変換し、
音声入力内の第１の文字、第２の文字、及び単語の順序に対応する順番でテキストを表示させる、
ように構成された処理ユニットを含む、電子デバイス。
条項２９．第１の文字は、字、数字の桁、制御文字、又は空白のうちの少なくとも１つを含む、条項２８に記載の電子デバイス。
条項３０．制御文字は、句読点の単語により識別される句読点を含む、条項２９に記載の電子デバイス。
条項３１．フレーズは、第２の文字の識別を支援するための単語の綴りを含む、条項２８〜３０のいずれか一つに記載の電子デバイス。
条項３２．単語は、複数の文字を含む、条項２８〜３１のいずれか一つに記載の電子デバイス。
条項３３．複数の文字は、ドメイン拡張子又は頭文字のうちの少なくとも１つを表す、条項３２に記載の電子デバイス。
条項３４．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
ユーザデバイスに記憶された１つ以上の発話認識モデルに基づいて、第１の文字、第２の文字を識別するフレーズ、又は単語のうちの少なくとも１つを識別することを含む、条項２８〜３３のいずれか一つに記載の電子デバイス。
条項３５．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
音声入力を表すデータをサーバに提供することと、
サーバから、第１の文字、第２の文字を識別するフレーズ、又は単語のうちの少なくとも１つを表すデータを受信することと、
を含み、
音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
サーバに記憶された１つ以上の言語モデルに基づいて、第１の文字、第２の文字を識別するフレーズ、又は単語のうちの少なくとも１つを識別することを含む、条項２８〜３４のいずれか一つに記載の電子デバイス。
条項３６．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
音声入力の発声を識別することと、
発声のタイプを判定することと、
判定された発声のタイプに基づいて、発声に対応する、第１の文字、フレーズによって識別される第２の文字、又は単語の表現を取得することと、
を含む、条項２８〜３５のいずれか一つに記載の電子デバイス。
条項３７．発声のタイプを判定することは、
発声のタイプが文字に対応するかを判定することと、
発声のタイプが文字を識別するフレーズに対応するかを判定することと、
発声のタイプが単語に対応するかを判定することと、
のうちの少なくとも１つを実行することを含む、条項３６に記載の電子デバイス。
条項３８．発声のタイプが文字に対応するかを判定することは、
発声について、発声が制御文字に対応するかを判定することと、
発声が制御文字に対応するとの判定に従って、発声について、発声が句読点の単語に対応するかを判定することと、
を含み、
判定された発声のタイプに基づいて、文字の表現を取得することは、
発声が句読点の単語に対応するとの判定に従って、句読点の単語に対応する句読点の表現を取得することと、
発声が句読点の単語に対応しないとの判定に従って、句読点の単語以外の制御文字の表現を取得することと、
を含む、条項３７に記載の電子デバイス。
条項３９．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、
表現についての信頼度レベルを取得することと、
信頼度レベルが閾値以上であるかを判定することと、
を更に含み、
第１の文字、第２の文字、及び単語をテキストに変換することは、
信頼度レベルが閾値以上であるとの判定に従って、発声に対応する、第１の文字、フレーズによって識別される第２の文字、又は単語の表現をテキストに変換することと、
信頼度レベルが閾値未満であるとの判定に従って、１つ以上の候補表現、エラーメッセージ、又はそれらの組合せを提供することと、
を含む、条項３６〜３８のいずれか一つに記載の電子デバイス。
条項４０．処理ユニットは、
音声入力に基づいて少なくとも１つのコマンドを識別するように更に構成されており、少なくとも１つのコマンドによって、表示されたテキストを編集することが可能になる、条項２８〜３９のいずれか一つに記載の電子デバイス。
条項４１．少なくとも１つのコマンドを識別することは、
少なくとも１つの発声を識別することと、
発声のタイプがコマンドに対応するかを判定することと、
発声のタイプがコマンドに対応するとの判定に従って、表示されたテキストを編集するためのコマンドに対応するアクションを開始させることと、
を含む、条項４０に記載の電子デバイス。
条項４２．処理ユニットは、
少なくとも１つのコマンドに対応する発声を記憶し、少なくとも１つのコマンドに対応する発声と関連付けられた情報を記憶するように更に構成されている、条項４１に記載の電子デバイス。
条項４３．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、ユーザと関連付けられたコンテキストデータ又は１つ以上の認識されたクレデンシャルモデルのうちの少なくとも１つに基づいている、条項２８〜４２のいずれか一つに記載の電子デバイス。
条項４４．ユーザと関連付けられたコンテキストデータは、ユーザの発話プロファイルを含む、条項４３に記載の電子デバイス。
条項４５．１つ以上の認識されたクレデンシャルモデルは、１つ以上の認識されたクレデンシャルのフォーマットを表す、条項４３及び４４のいずれか一つに記載の電子デバイス。
条項４６．音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することは、視線検出に基づいている、条項２８〜４５のいずれか一つに記載の電子デバイス。
条項４７．音声入力は、ユーザ名を表す第１のユーザクレデンシャル又はパスワードを表す第２のユーザクレデンシャルのうちの少なくとも１つに対応する、条項２８〜４６のいずれか一つに記載の電子デバイス。
条項４８．
音声入力の１つ以上の発声、第１の文字に対応する１つ以上の発声、第２の文字を識別するフレーズ、及び識別に基づいて認識された単語を記憶することを更に含む、条項２８〜４７のいずれか一つに記載の電子デバイス。
【０３１０】
説明を目的とした上述した説明は、特定の実施形態を参照して説明されてきた。しかしながら、上記例示的な議論は、包括的であることを意図しておらず、又は発明を開示された簡易的な形式に限定することを意図していない。上記教示を考慮して多くの修正及び変形が可能である。技術の原理及びそれらの実際の適用を最良に説明するために実施形態が選択及び説明されてきた。それによって、他の当業者は、考えられる特定の使用に適切な様々な修正で、技術及び様々な実施形態を最良に利用することが可能である。
【０３１１】
開示及び実施例が添付図面を参照して完全に説明されてきたが、様々な変更及び修正が当業者にとって明らかであることに留意されたい。そのような変更及び修正は、特許請求の範囲によって定義されるように、開示及び実施例の範囲内に含まれるものとして理解されることになる。
【図１】
2019512105.tif 000013
【図２Ａ】
2019512105.tif 000014
【図２Ｂ】
2019512105.tif 000015
【図３】
2019512105.tif 000016
【図４】
2019512105.tif 000017
【図５Ａ】
2019512105.tif 000018
【図５Ｂ】
2019512105.tif 000019
【図６Ａ】
2019512105.tif 000020
【図６Ｂ】
2019512105.tif 000021
【図７Ａ】
2019512105.tif 000022
【図７Ｂ】
2019512105.tif 000023
【図７Ｃ】
2019512105.tif 000024
【図８Ａ】
2019512105.tif 000025
【図８Ｂ】
2019512105.tif 000026
【図９】
2019512105.tif 000027
【図１０Ａ】
2019512105.tif 000028
【図１０Ｂ】
2019512105.tif 000029
【図１０Ｃ】
2019512105.tif 000030
【図１０Ｄ】
2019512105.tif 000031
【図１０Ｅ】
2019512105.tif 000032
【図１０Ｆ】
2019512105.tif 000033
【図１１Ａ】
2019512105.tif 000034
【図１１Ｂ】
2019512105.tif 000035
【図１１Ｃ】
2019512105.tif 000036
【図１１Ｄ】
2019512105.tif 000037
【図１２Ａ】
2019512105.tif 000038
【図１２Ｂ】
2019512105.tif 000039
【図１２Ｃ】
2019512105.tif 000040
【図１２Ｄ】
2019512105.tif 000041
【図１３】
2019512105.tif 000042
【手続補正書】
【提出日】平成30年8月8日(2018.8.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つ以上のユーザクレデンシャルを提供する音声入力を識別する方法であって、
１つ以上のプロセッサ、及びメモリを有する電子デバイスにおいて、
音声入力を受信することと、
前記音声入力に基づいて、第１の文字、第２の文字を識別するフレーズ、及び単語を識別することと、
前記識別に応じて、前記第１の文字、前記第２の文字、及び前記単語をテキストに変換することと、
ディスプレイで、前記音声入力内の前記第１の文字、前記第２の文字、及び前記単語の順序に対応する順番で前記テキストを表示させることと、
を含む、方法。
【請求項２】
前記第１の文字は、字、数字の桁、制御文字、又は空白のうちの少なくとも１つを含む、請求項１に記載の方法。
【請求項３】
前記制御文字は、句読点の単語により識別される句読点を含む、請求項２に記載の方法。
【請求項４】
前記フレーズは、前記第２の文字の前記識別を支援するための単語の綴りを含む、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記単語は、複数の文字を含む、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記複数の文字は、ドメイン拡張子又は頭文字のうちの少なくとも１つを表す、請求項５に記載の方法。
【請求項７】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記電子デバイスに記憶された１つ以上の発話認識モデルに基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを識別することを含む、請求項１から６のいずれか一項に記載の方法。
【請求項８】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記音声入力を表すデータをサーバに提供することと、
前記サーバから、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを表すデータを受信することと、
を含み、
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記サーバに記憶された１つ以上の言語モデルに基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、又は前記単語のうちの少なくとも１つを識別することを含む、
請求項１から７のいずれか一項に記載の方法。
【請求項９】
前記音声入力に基づいて前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記音声入力の発声を識別することと、
前記発声のタイプを判定することと、
前記判定された前記発声のタイプに基づいて、前記発声に対応する、前記第１の文字、前記フレーズによって識別される前記第２の文字、又は前記単語の表現を取得することと、
を含む、請求項１から８のいずれか一項に記載の方法。
【請求項１０】
前記発声の前記タイプを判定することは、
前記発声の前記タイプが文字に対応するかを判定することと、
前記発声の前記タイプが文字を識別するフレーズに対応するかを判定することと、
前記発声の前記タイプが単語に対応するかを判定することと、
のうちの少なくとも１つを実行することを含む、請求項９に記載の方法。
【請求項１１】
発声の前記タイプが文字に対応するかを判定することは、
前記発声について、前記発声が制御文字に対応するかを判定することと、
前記発声が制御文字に対応するとの判定に従って、前記発声について、前記発声が句読点の単語に対応するかを判定することと、
を含み、
前記判定された前記発声のタイプに基づいて、前記文字の前記表現を取得することは、
前記発声が句読点の単語に対応するとの判定に従って、前記句読点の単語に対応する句読点の表現を取得することと、
前記発声が句読点の単語に対応しないとの判定に従って、句読点の単語以外の前記制御文字の表現を取得することと、
を含む、請求項１０に記載の方法。
【請求項１２】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、
前記表現についての信頼度レベルを取得することと、
前記信頼度レベルが閾値以上であるかを判定することと、
を更に含み、
前記第１の文字、前記第２の文字、及び前記単語をテキストに変換することは、
前記信頼度レベルが前記閾値以上であるとの判定に従って、前記発声に対応する、前記第１の文字、前記フレーズによって識別される前記第２の文字、又は前記単語の前記表現をテキストに変換することと、
前記信頼度レベルが前記閾値未満であるとの判定に従って、１つ以上の候補表現、エラーメッセージ、又はそれらの組合せを提供することと、
を含む、請求項９から１１のいずれか一項に記載の方法。
【請求項１３】
前記音声入力に基づいて少なくとも１つのコマンドを識別することを更に含み、前記少なくとも１つのコマンドによって、前記表示されたテキストを編集することが可能になる、請求項１から１２のいずれか一項に記載の方法。
【請求項１４】
前記少なくとも１つのコマンドを識別することは、
少なくとも１つの発声を識別することと、
前記発声のタイプがコマンドに対応するかを判定することと、
前記発声の前記タイプがコマンドに対応するとの判定に従って、前記表示されたテキストを編集するための前記コマンドに対応するアクションを開始させることと、
を含む、請求項１３に記載の方法。
【請求項１５】
前記少なくとも１つのコマンドに対応する前記発声を記憶し、前記少なくとも１つのコマンドに対応する前記発声と関連付けられた情報を記憶することを更に含む、請求項１４に記載の方法。
【請求項１６】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、ユーザと関連付けられたコンテキストデータ又は１つ以上の認識されたクレデンシャルモデルのうちの少なくとも１つに基づいている、請求項１から１５のいずれか一項に記載の方法。
【請求項１７】
前記ユーザと関連付けられた前記コンテキストデータは、ユーザの発話プロファイルを含む、請求項１６に記載の方法。
【請求項１８】
前記１つ以上の認識されたクレデンシャルモデルは、１つ以上の認識されたクレデンシャルのフォーマットを表す、請求項１６又は１７に記載の方法。
【請求項１９】
前記音声入力に基づいて、前記第１の文字、前記第２の文字を識別する前記フレーズ、及び前記単語を識別することは、視線検出に基づいている、請求項１から１８のいずれか一項に記載の方法。
【請求項２０】
前記音声入力は、ユーザ名を表す第１のユーザクレデンシャル又はパスワードを表す第２のユーザクレデンシャルのうちの少なくとも１つに対応する、請求項１から１９のいずれか一項に記載の方法。
【請求項２１】
前記音声入力の１つ以上の発声、前記第１の文字に対応する前記１つ以上の発声、前記第２の文字を識別する前記フレーズ、及び前記識別に基づいて認識された前記単語を記憶することを更に含む、請求項１から２０のいずれか一項に記載の方法。
【請求項２２】
コンピュータに、請求項１から２１のいずれか一項に記載の方法を実行させるための、コンピュータプログラム。
【請求項２３】
請求項２２に記載のコンピュータプログラムを記憶したメモリと、
前記メモリに記憶された前記コンピュータプログラムを実行可能な１つ以上のプロセッサと、を備える、電子デバイス。
【請求項２４】
電子デバイスであって、
請求項１から２１のいずれか一項に記載の方法を実行する手段を備える、電子デバイス。
【国際調査報告】
2019512105.tif 000043