(57)【特許請求の範囲】
【請求項１】
デジタルアシスタントを動作させる方法であって、
１つ以上のプロセッサ、ディスプレイ、及びメモリを有する機器において、
前記機器のユーザに提供される音声出力を受信することと、
前記機器が現在ユーザから音声入力を受け取っているかどうかを判定することと、
前記機器が現在前記ユーザから音声入力を受け取っていないと判定すると、前記音声出力を前記ユーザに提供することと、
前記機器が前記ユーザから音声入力を受け取っていると判定すると、
前記音声出力を提供することの緊急性が高いかどうかを判定することと、
前記音声出力を提供することの緊急性が高いと判定すると、前記音声出力を前記ユーザに提供することと、
前記音声出力を提供することの緊急性が低いと判定すると、前記ユーザへの前記音声出力の提供を保留し、前記音声出力に対応する表示された出力を提供することと、
を含むことを特徴とする、デジタルアシスタントを動作させる方法。
【請求項２】
前記音声出力を受信する前に、
前記ユーザからデジタルアシスタントのタスクの実行要求を受け取ることを更に含むことを特徴とする、請求項１に記載のデジタルアシスタントを動作させる方法。
【請求項３】
前記音声出力を提供することの緊急性が高いと判定すると、前記音声出力を遅延なく前記ユーザに提供することを特徴とする、請求項１に記載のデジタルアシスタントを動作させる方法。
【請求項４】
前記機器が電話であり、かつ前記機器が現在前記ユーザから音声入力を受け取っているかどうかを判定することが、前記ユーザがリモートユーザとの通話において発語しているかどうかを判定することを含むことを特徴とする、請求項１に記載のデジタルアシスタントを動作させる方法。
【請求項５】
前記機器が現在前記ユーザから音声入力を受け取っていないと判定すると、前記リモートユーザから受信したオーディオデータ及び前記ユーザへの前記音声出力が、前記受信したオーディオデータを理由に前記音声出力の提供を保留することなく、同時に提供されることを特徴とする、請求項４に記載のデジタルアシスタントを動作させる方法。
【請求項６】
前記機器がもはや前記ユーザから音声入力を受け取っていないと判定すると、前記音声出力を前記ユーザに提供することを更に含むことを特徴とする、請求項１に記載のデジタルアシスタントを動作させる方法。
【請求項７】
前記機器が現在前記ユーザから音声入力を受け取っているかどうかを判定することが、最後の音声入力が所定の期間内に受け取られたかどうかを判定することを含み、前記所定の期間が前記出力の緊急性の度合いの関数であることを特徴とする、請求項１に記載のデジタルアシスタントを動作させる方法。
【請求項８】
前記出力がメッセージスキップ基準を満たすかどうかを判定することと、
前記音声出力がメッセージスキップ基準を満たすと判定すると、前記出力の提供を完全に省略することと、
を更に含むことを特徴とする、請求項１に記載のデジタルアシスタントを動作させる方法。
【請求項９】
前記緊急性の度合いが既定の閾値を下回った時に、前記メッセージスキップ基準が満たされることを特徴とする、請求項８に記載のデジタルアシスタントを動作させる方法。
【請求項１０】
前記音声出力が進路変更ごとの指示のセットにおけるナビゲーションコマンドであり、かつ前記機器が後の時点で対応するナビゲーションコマンドを提供するようにスケジュールされている場合に、前記メッセージスキップ基準が満たされることを特徴とする、請求項８に記載のデジタルアシスタントを動作させる方法。
【請求項１１】
前記音声出力の提供中に、前記ユーザから音声入力を受け取ることと、
音声出力を中断することと、
を更に含むことを特徴とする、請求項１に記載のデジタルアシスタントを動作させる方法。
【請求項１２】
前記機器がディスプレイを含み、かつ
前記方法が、前記音声出力を提供することの緊急性が低いと判定すると、前記音声出力に対応する表示された出力を提供することを更に含むことを特徴とする、請求項１に記載のデジタルアシスタントを動作させる方法。
【請求項１３】
デジタルアシスタントを動作させるためのコンピュータプログラムであって、命令群を含み、前記命令群が１つ以上のプロセッサによって実行された時に、前記プロセッサに、
機器のユーザに提供される音声出力を受信させ、
前記機器が現在前記ユーザから音声入力を受け取っているかどうかを判定させ、
前記機器が現在前記ユーザから音声入力を受け取っていないと判定すると、前記音声出力を前記ユーザに提供させ、
前記機器が前記ユーザから音声入力を受け取っていると判定すると、
前記音声出力を提供することの緊急性が高いかどうかを判定させ、
前記音声出力を提供することの緊急性が高いと判定すると、前記音声出力を前記ユーザに提供させ、
前記音声出力を提供することの緊急性が低いと判定すると、前記ユーザへの前記音声出力を保留させ、前記音声出力に対応する表示された出力を提供させる
ことを特徴とする、デジタルアシスタントを動作させるためのコンピュータプログラム。
【請求項１４】
前記音声出力を提供することの緊急性が高いと判定すると、前記音声出力を遅延なく前記ユーザに提供させることを特徴とする、請求項１３に記載のデジタルアシスタントを動作させるためのコンピュータプログラム。
【請求項１５】
前記機器が電話であり、かつ前記機器が現在前記ユーザから音声入力を受け取っているかどうかを判定することが、前記ユーザがリモートユーザとの通話において発語しているかどうかを判定することを含むことを特徴とする、請求項１３に記載のデジタルアシスタントを動作させるためのコンピュータプログラム。
【請求項１６】
前記プロセッサに、前記機器がもはや前記ユーザから音声入力を受け取っていないと判定すると、前記音声出力を前記ユーザに提供させる命令群を更に含むことを特徴とする、請求項１３に記載のデジタルアシスタントを動作させるためのコンピュータプログラム。
【請求項１７】
デジタルアシスタントを動作させるためのシステムであって、
１つ以上のプロセッサと、
命令群が記憶されたメモリと、
ディスプレイと、
を備え、前記命令群が、前記１つ以上のプロセッサによって実行された時に、前記プロセッサに、
ユーザに提供される音声出力を受信させ、
音声入力が現在前記ユーザから受け取られているかどうかを判定させ、
前記ユーザが現在音声入力を提供していないと判定すると、前記音声出力を前記ユーザに提供させ、
前記ユーザが現在音声入力を提供していると判定すると、
前記音声出力の緊急性が高いかどうかを判定させ、
前記音声出力の緊急性が高いと判定すると、前記音声出力を前記ユーザに提供させ、
前記音声出力の緊急性が低いと判定すると、前記ユーザへの前記音声出力を保留させ、前記音声出力に対応する表示された出力を提供させる、
ことを特徴とする、デジタルアシスタントを動作させるためのシステム。
【請求項１８】
前記命令群が、前記１つ以上のプロセッサによって実行された時に、更に前記プロセッサに、
前記音声出力を提供することの緊急性が高いと判定すると、前記音声出力を前記ユーザに遅延なく提供させることを特徴とする、請求項１７に記載のデジタルアシスタントを動作させるためのシステム。
【請求項１９】
前記ユーザが現在音声入力を提供しているかどうかを判定することが、前記ユーザが通話において発語しているかどうかを判定することを含むことを特徴とする、請求項１７に記載のデジタルアシスタントを動作させるためのシステム。
【請求項２０】
前記命令群が、前記１つ以上のプロセッサによって実行された時に、更に前記プロセッサに、
前記音声入力がもはや前記ユーザから受け取られていないと判定すると、前記音声出力を前記ユーザに提供させることを特徴とする、請求項１７に記載のデジタルアシスタントを動作させるためのシステム。
【請求項２１】
前記ユーザへの前記音声出力の提供を保留することは、少なくとも所定時間だけ前記音声出力の提供を保留することを含むことを特徴とする、請求項１に記載の方法。
【請求項２２】
前記ユーザへの前記音声出力の提供を保留することは、少なくとも所定時間だけ前記音声出力の提供を保留することを含むことを特徴とする、請求項１３に記載のコンピュータプログラム。
【請求項２３】
前記ユーザへの前記音声出力の提供を保留することは、少なくとも所定時間だけ前記音声出力の提供を保留することを含むことを特徴とする、請求項１７に記載のシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、２０１３年３月１４日出願の「ＣＯＮＴＥＸＴ−ＳＥＮＳＩＴＩＶＥ  ＨＡＮＤＬＩＮＧ  ＯＦ  ＩＮＴＥＲＲＵＰＴＩＯＮＳ」と題された米国仮出願第６１／７８５，８０５号の利益を主張し、この出願は、その全体があらゆる目的で参照により本明細書に組み込まれる。
【技術分野】
【０００２】
開示されている実施形態は、概してデジタルアシスタントに関し、より詳細には、現在のコンテクストに基づきユーザ起動及び／又はシステム起動の割り込みをインテリジェントに処理するデジタルアシスタントに関する。
【背景技術】
【０００３】
人間の個人的なアシスタントとちょうど同じように、デジタルアシスタント又はバーチャルアシスタントは、要求されたタスクを実行し、要求された助言、情報、又はサービスを提供することができる。アシスタントのユーザの要求を達成する能力は、アシスタントが、要求又は命令を正しく理解することに依存する。自然言語処理における最近の進歩は、ユーザが従来のユーザインタフェース（例えば、メニュー又はプログラムされたコマンド）を利用するのではなく、口頭又は文字形式の自然言語を用いてデジタルアシスタントと対話することを可能にした。このようなデジタルアシスタントは、ユーザの入力を解釈してユーザの意図を推定し、推定された意図を実施可能なタスク及びパラメータに変換し、タスクを実行するべく動作を実行するか又はサービスをデプロイし、ユーザが理解できる出力を作成することができる。理想的には、デジタルアシスタントによって生成される出力は、ユーザとデジタルアシスタントとの間の自然言語による対話中に表現されたユーザの意図を実現すべきである。
【０００４】
デジタルアシスタントシステムがユーザ要求に対して満足のいく応答を生成する能力は、システムによって実施される自然言語処理、知識ベース及び人工知能によって異なる。適切に設計された応答手順は、システムとの対話におけるユーザエクスペリエンスを強化し、かつシステムのサービス及び機能に対するユーザの信頼を高めることができる。
【０００５】
多くのデジタルアシスタントは、音声出力の形式で応答を配信することができる。例えば、いくつかの状況では、音声出力が、テキスト発語化エンジンによってユーザに対して読み上げられる、１つ以上の進路変更ごとの指示（例えば、「ホイップル大通りを左に曲がります」）を含む。このような音声出力は、概して所定の時点（例えば、ホイップル大通りに到達する４分の１マイル前）で、又は即座に（例えば、「今何時ですか？」等の質問への応答の場合）提供される。このようなデジタルアシスタントの応答手順の欠点は、通話中に機器に向かって話しているユーザ又はデジタルアシスタントへの新しい要求を発しているユーザを妨害すること等により、音声出力が不適切な時点で提供され得ることである。緊急性が低い情報を提供する割り込みは、ユーザにとって不快かつ不便である。更に、２つの異なるオーディオストリームを聴くことは可能であるが、話しながら聴くことは人々にとって困難である。このため、ユーザが発語している間にデジタルアシスタントが音声出力を配信しようとすることは、ユーザがそのような音声出力を理解する能力を低下させる。
【０００６】
したがって、音声出力を提供すべきかどうかをインテリジェントに、かつ直感的に判定するデジタルアシスタントの動作方法が必要とされている。具体的には、ユーザが発語しているかどうか、及び音声出力が正当に割り込むのに十分な緊急性を有するかどうかを判定するデジタルアシスタントの動作方法が必要とされている。
【発明の概要】
【０００７】
以下で説明される実施形態は、音声出力をユーザに提供するための改善された方法を提供する。具体的には、いくつかの実施形態では、デジタルアシスタントは、ユーザが発語を終了した後、音声出力を提供する前に、所定の時間量だけ待機する。当然、いくつかの音声出力は、他の音声出力よりも高い緊急性を有する。例えば、デジタルアシスタントが、１０秒後にホイップル大通りを左に曲がる必要があることをユーザに通知するようにスケジュールされている時、ユーザはその曲がり角を通過する前に、情報を受信しなければならない。他の状況では、ユーザが、各ゲームの終了時にニックスのスコアを通知するようにデジタルアシスタントに要求している場合がある。最新のニックスのスコアを示す音声出力を提供することは、緊急性が低い。したがって、いくつかの実施形態では、所定の時間量は音声出力の緊急性に基づく。例えば、いくつかの実施形態では、既定の所定時間は１秒（例えば、ユーザが発語を終了したことをある程度保証するのに十分な長さ）であるのに対し、かなり緊急性の高い出力（「４分の１マイル先を左に曲がります」）は、ユーザが発語を終了してから０．５秒（例えば、発語の間合いに相当する時間量）後に提供される。いくつかの状況では、音声出力の緊急性が非常に高く（「ここを左に曲がります」）、所定の時間量は０である（例えば、デジタルアシスタントがバージインし、ユーザに割り込む）。
【０００８】
開示されている実施形態は、メッセージの緊急性が高い場合にのみ発語しているユーザに割り込むことによって、音声出力応答手順及び方法を改善する。これらの実施形態は、必ずしも全ての単語を理解しなくとも２つのオーディオ出力のコンテクストを把握するユーザの能力に基づき、ユーザがオーディオ出力の２つのセットを理解する能力をある程度有するだろうという一般的な見解によって動機付けられている。一方、ユーザにとって、自身が発語するのと同時にオーディオ出力を理解することは非常に困難であろう。したがって、開示されている実施形態の結果は、音声出力アシスタントに対するユーザの理解度を向上させ、かつより満足のいくユーザエクスペリエンスを提供することであり得る。
【０００９】
本明細書で開示されている実施形態は、デジタルアシスタントが音声出力を提供すべきかどうかをインテリジェントに、かつ動的に判定するための方法、システム、コンピュータ可読記憶媒体及びユーザインタフェースを提供する。方法は、機器のユーザに提供される音声出力を受信することと、機器が現在ユーザから音声入力を受け取っているかどうかを判定することと、を含む。方法は、機器が現在ユーザから音声入力を受け取っていないと判定すると、音声出力をユーザに提供することを更に含む。一方、方法は、機器がユーザから音声入力を受け取っていると判定すると、音声出力を提供することの緊急性が高いかどうかを判定することを更に含む。音声出力の緊急性が高い時、音声出力はユーザに提供される。音声出力の緊急性が低い時、ユーザへの音声出力の提供は保留される（例えば、少なくとも一時的に）。
【００１０】
いくつかの実施形態では、方法は、音声出力を受信する前に、デジタルアシスタントのタスクの実行要求をユーザから受け取ることを更に含む。いくつかの実施形態では、方法は、音声出力を受信する前に、要求をデジタルアシスタントサーバに送信することを更に含む。いくつかの実施形態では、要求に応じてサーバから音声出力が受信される。いくつかの実施形態では、音声出力を受信することは、機器において音声出力を生成することを含む。
【００１１】
いくつかの実施形態では、方法は、音声出力を提供することの緊急性が高いと判定すると、音声出力を遅延なくユーザに提供することを更に含む。
【００１２】
いくつかの実施形態では、機器は電話であり、かつ機器が現在ユーザから音声入力を受け取っているかどうかを判定することは、ユーザがリモートユーザとの通話に参加しているかどうかを判定することを含む。
【００１３】
いくつかの実施形態では、機器が現在ユーザから音声入力を受け取っていないと判定すると、リモートユーザから受信したオーディオデータ及びユーザへの音声出力は、受信したオーディオデータを理由に音声出力の提供を保留することなく、同時に提供される。
【００１４】
いくつかの実施形態では、方法は、リモートユーザとの通話中に、デジタルアシスタントによる割り込みの回避を求める要求をリモートユーザに送信することを更に含む。
【００１５】
いくつかの実施形態では、方法は、機器がもはやユーザから音声入力を受け取っていないと判定すると、音声出力をユーザに提供することを更に含む。いくつかの実施形態では、機器がもはやユーザから音声入力を受け取っていないと判定することは、最後の音声入力と現在時刻との間で既定の時間量が経過したと判定することを含む。いくつかの実施形態では、既定の時間量は音声出力の緊急性の度合いの関数である。いくつかの実施形態では、所定の時間量は音声出力の緊急性の度合いの単調減少関数であり、それにより、緊急性の度合いがより高い音声出力を、より少ない時間量で提供する。
【００１６】
いくつかの実施形態では、機器が現在ユーザから音声入力を受け取っているかどうかを判定することは、最後の音声入力が所定の期間内に受け取られたかどうかを判定することを含む。いくつかの実施形態では、所定の期間は出力の緊急性の度合いの関数である。
【００１７】
いくつかの実施形態では、方法は、出力がメッセージスキップ基準を満たすかどうかを判定することと、音声出力がメッセージスキップ基準を満たすと判定すると、出力の提供を完全に省略することと、を更に含む。いくつかの実施形態では、緊急性の度合いが既定の閾値を下回った時に、メッセージスキップ基準が満たされる。いくつかの実施形態では、音声出力が進路変更ごとの指示のセットにおけるナビゲーションコマンドであり、かつ機器が後の時点で対応するナビゲーションコマンドを提供するようにスケジュールされている時に、メッセージスキップ基準が満たされる。
【００１８】
いくつかの実施形態では、方法は、音声出力の提供中にユーザから音声入力を受け取り、かつ音声出力を中断することを更に含む。いくつかの実施形態では、方法は、音声出力に対応する完了基準が満たされているかどうかを判定することを更に含む。そのような実施形態では、方法は、完了基準が満たされていないと判定すると、音声出力の少なくとも一部を後の時点のために保留することを更に含む。そのような実施形態では、方法は、完了基準が満たされたと判定すると、音声出力の残りの出力を完全に省略することを更に含む。いくつかの実施形態では、音声出力の既定の割合が既にユーザに提供されている時に、完了基準が満たされる。いくつかの実施形態では、音声出力の既定の割合は、５０％、６０％、７０％及び８０％から成るグループから選択される。
【００１９】
いくつかの実施形態では、機器はディスプレイを含む。そのような実施形態では、方法は、音声出力を提供することの緊急性が低いと判定すると、音声出力に対応する表示された出力を提供することを更に含む。
【００２０】
いくつかの実施形態では、方法は、機器が動作の特殊モードである時に、音声出力を遅延なく提供することを更に含む。いくつかの実施形態では、動作の特殊モードは、動作の保持モード及び動作のミュートモードから成るグループのうちの１つ以上である。
【００２１】
いくつかの実施形態では、音声出力が即時提供のためのユーザ構成可能基準を満たす時に、音声出力を遅延なく提供する。そのような実施形態では、機器が、ユーザが以前に非常に重要な人物として特定した人物から電子メッセージ（例えば、ＳＭＳ又は電子メールメッセージ）を受信した時に、ユーザ構成可能基準が満たされる。そのような実施形態では、機器が株価更新情報を受信し、かつユーザが株価更新情報を即時提供するように機器を以前に構成している時に、ユーザ構成可能基準が満たされる。
【００２２】
いくつかの実施形態では、機器が動作の邪魔立て無用モードである時に、音声出力の提供が省略される。
【００２３】
本明細書で説明される主題の１つ以上の実施形態の詳細は、添付図面及び以下の説明に記載される。本主題の他の特徴、態様、及び利点は、本明細書、図面、及び特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【００２４】
【図１】いくつかの実施形態に係るデジタルアシスタントが動作する環境を示すブロック図である。
【図２】いくつかの実施形態に係るデジタルアシスタントクライアントシステムを示すブロック図である。
【図３Ａ】いくつかの実施形態に係るデジタルアシスタントシステム又はそのサーバ部分を示すブロック図である。
【図３Ｂ】いくつかの実施形態に係る、図３Ａに示すデジタルアシスタントの機能を示すブロック図である。
【図３Ｃ】いくつかの実施形態に係るオントロジの一部を示す図である。
【図４Ａ】いくつかの実施形態に係る、デジタルアシスタントが音声出力を提供するかどうかを判定する例示的なシナリオを示す図である。
【図４Ｂ】いくつかの実施形態に係る、デジタルアシスタントが音声出力を提供するかどうかを判定する例示的なシナリオを示す図である。
【図４Ｃ】いくつかの実施形態に係る、デジタルアシスタントが音声出力を提供するかどうかを判定する例示的なシナリオを示す図である。
【図５Ａ】いくつかの実施形態に係る、機器が現在ユーザから音声入力を受け取っているかどうかの判定、及び音声出力の緊急性の判定に基づき、音声出力を提供するかどうかを判定するために、デジタルアシスタントによって実施される例示的な方法の流れ図である。
【図５Ｂ】いくつかの実施形態に係る、機器が現在ユーザから音声入力を受け取っているかどうかの判定、及び音声出力の緊急性の判定に基づき、音声出力を提供するかどうかを判定するために、デジタルアシスタントによって実施される例示的な方法の流れ図である。
【図５Ｃ】いくつかの実施形態に係る、機器が現在ユーザから音声入力を受け取っているかどうかの判定、及び音声出力の緊急性の判定に基づき、音声出力を提供するかどうかを判定するために、デジタルアシスタントによって実施される例示的な方法の流れ図である。
【図５Ｄ】いくつかの実施形態に係る、機器が現在ユーザから音声入力を受け取っているかどうかの判定、及び音声出力の緊急性の判定に基づき、音声出力を提供するかどうかを判定するために、デジタルアシスタントによって実施される例示的な方法の流れ図である。  類似の参照番号は、図面全体を通して対応する部分を指す。
【発明を実施するための形態】
【００２５】
図１は、いくつかの実施形態に係るデジタルアシスタントの動作環境１００のブロック図である。用語「デジタルアシスタント」、「仮想アシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、口頭及び／又はテキスト形式の自然言語入力を解釈してユーザ意図を推定し、推定されたユーザ意図に基づきアクションを実行する任意の情報処理システムを指す。例えば、推定されたユーザ意図に基づいてアクションを実行するために、システムは、以下のうちの１つ以上を実行することができる。それは、推定されたユーザ意図を果たすように設計されたステップ及びパラメータを有するタスクフローを特定すること、推定されたユーザ意図からの具体的な要求をタスクフローに入力すること、プログラム、方法、サービス、ＡＰＩ、又は同様のものを呼び出すことによってタスクフローを実行すること、並びに可聴（例えば、会話）及び／又は視覚形式のユーザへの出力応答を生成することである。
【００２６】
具体的には、デジタルアシスタントは、自然言語命令、要求、陳述、叙述、及び／又は照会の形で少なくとも部分的にユーザ要求を受け入れることができる。通例、ユーザ要求はデジタルアシスタントによる情報回答又はタスクの実行のいずれかを求める。ユーザ要求への満足な応答は、要求された情報回答の提供、要求されたタスクの実行のいずれか、又はその２つの組み合わせとなる。例えば、ユーザはデジタルアシスタントに「私は今どこにいますか？」等の質問をする場合がある。ユーザの現在のロケーションに基づき、デジタルアシスタントは、「あなたはセントラルパーク内の西門の近くにいます」と回答する場合がある。ユーザは、例えば、「私の友人を、来週の私のガールフレンドの誕生日パーティに招待して下さい」のように、タスク実行を要求する場合もある。それに応じて、デジタルアシスタントは、「はい、ただ今」と述べることによって要求を確認し、次に、ユーザの代わりに、ユーザの電子アドレス帳に載っているユーザの友人の各々に適切なカレンダー招待状を送信してもよい。要求されたタスクの実行中、デジタルアシスタントは、長時間にわたって情報を複数回交換する連続的なダイアログにおいて、ユーザと対話する場合がある。情報又は種々のタスクの実行を要求するためにデジタルアシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、デジタルアシスタントは、他の視覚又はオーディオ形式の応答も（例えば、テキスト、警報、音楽、ビデオ、アニメーション等として）提供することができる。
【００２７】
デジタルアシスタントの１つの例が、その開示全体が参照により本明細書に組み込まれる２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」に対する出願人の米国実用特許出願第１２／９８７，９８２号に示されている。
【００２８】
図１に示されているように、いくつかの実施形態では、デジタルアシスタントはクライアント−サーバモデルに従って実施される。デジタルアシスタントは、ユーザ機器１０４ａ、１０４ｂ上で実行されるクライアント側部分１０２ａ、１０２ｂ（以後、「ＤＡクライアント１０２」）、及びサーバシステム１０８上で実行されるサーバ側部分１０６（以後「ＤＡサーバ１０６」）を含む。ＤＡクライアント１０２は１つ以上のネットワーク１１０を通じてＤＡサーバ１０６と通信する。ＤＡクライアント１０２は、ユーザ対応入力及び出力処理、並びにＤＡサーバ１０６との通信等のクライアント側機能を提供する。ＤＡサーバ１０６は、それぞれのユーザ機器１０４上に各々常駐する任意の数のＤＡクライアント１０２のためのサーバ側機能を提供する。
【００２９】
いくつかの実施形態では、ＤＡサーバ１０６は、クライアント対応Ｉ／Ｏインタフェース１１２、１つ以上の処理モジュール１１４、データ及びモデル１１６、並びに外部サービスへのＩ／Ｏインタフェース１１８を含む。クライアント対応Ｉ／Ｏインタフェースはデジタルアシスタントサーバ１０６のためのクライアント対応入力及び出力処理を促進する。１つ以上の処理モジュール１１４は、データ及びモデル１１６を利用し、自然言語入力に基づきユーザの意図を判断し、推定されたユーザ意図に基づきタスクを実行する。いくつかの実施形態では、ＤＡサーバ１０６は、タスクを完了する、又は情報を取得するために、ネットワーク（単数又は複数）１１０を介して外部サービス１２０と通信する。外部サービスＩ／Ｏインタフェース１１８はこのような通信を促進する。
【００３０】
ユーザ機器１０４の例としては、限定するものではないが、ハンドヘルドコンピュータ、無線携帯情報端末（Personal Digital Assistant、ＰＤＡ）、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ、セルラー電話、スマートフォン、拡張型汎用パケット無線サービス（Enhanced General Packet Radio Service、ＥＧＰＲＳ）携帯電話、メディアプレーヤ、ナビゲーション機器、ゲームコンソール、テレビ、遠隔制御装置、又はこれらのデータ処理機器のうちの任意の２つ以上の組み合わせ、あるいは他のデータ処理機器が挙げられる。ユーザ機器１０４に関する更なる詳細が、図２に示される例示的なユーザ機器１０４に関して提供される。
【００３１】
通信ネットワーク（単数又は複数）１１０の例としては、ローカルエリアネットワーク（Local Area Network、「ＬＡＮ」）及び、例えば、インターネットのようなワイドエリアネットワーク（Wide Area Network、「ＷＡＮ」）が挙げられる。通信ネットワーク（単数又は複数）１１０は、例えば、イーサネット（登録商標）、ユニバーサルシリアルバス（Universal Serial Bus、ＵＳＢ）、ファイヤワイヤ（登録商標）、移動通信用のグローバルシステム（Global System for Mobile Communications、ＧＳＭ）、拡張データＧＳＭ環境（Enhanced Data GSM Environment、ＥＤＧＥ）、符号分割多元接続（Code Division Multiple Access、ＣＤＭＡ）、時分割多元接続（Time Division Multiple Access、ＴＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ボイスオーバーインターネットプロトコル（Voice Over Internet Protocol、ＶｏＩＰ）、Ｗｉ−ＭＡＸ（登録商標）、又は任意の他の好適な通信プロトコル等の、種々の有線又は無線プロトコルを含む、任意の周知のネットワークプロトコルを用いて実施することができる。
【００３２】
サーバシステム１０８は、１つ以上のスタンドアロンデータ処理装置又はコンピュータの分散型ネットワーク上に実施することができる。いくつかの実施形態では、サーバシステム１０８は、また、様々な仮想機器及び／又はサードパーティサービスプロバイダ（例えば、サードパーティクラウドサービスプロバイダ）のサービスを利用して、サーバシステム１０８の基本的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供する。
【００３３】
図１に示されるデジタルアシスタントは、クライアント側部分（例えば、ＤＡクライアント１０２）及びサーバ側部分（例えば、ＤＡサーバ１０６）の両方を含むが、いくつかの実施形態では、デジタルアシスタントの機能は、ユーザ機器にインストールされるスタンドアロンアプリケーションとして実施される。加えて、デジタルアシスタントのクライアント部分とサーバ部分との間の機能性の分配は実施形態よって異なり得る。例えば、いくつかの実施形態では、ＤＡクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、デジタルアシスタントの全ての他の機能をバックエンドサーバに委ねるシンクライアントである。
【００３４】
図２は、いくつかの実施形態に係るユーザ機器１０４のブロック図である。ユーザ機器１０４は、メモリインタフェース２０２、１つ以上のプロセッサ２０４、及び周辺機器インタフェース２０６を含む。ユーザ機器１０４内の種々の構成要素は１つ以上の通信バス又は信号線によって結合される。ユーザ機器１０４は、周辺機器インタフェース２０６に結合される種々のセンサ、サブシステム、及び周辺機器を含む。センサ、サブシステム、及び周辺機器は情報を収集し、及び／又はユーザ機器１０４の種々の機能を助長する。
【００３５】
例えば、配向、光、及び近接検知機能を促進するために、動きセンサ２１０、光センサ２１２、及び近接センサ２１４が周辺機器インタフェース２０６に結合される。関連機能を促進するために、測位システム（例えば、ＧＰＳ受信機）、温度センサ、生体測定センサ、ジャイロ、コンパス、加速度計、及び同様のもの等の、１つ以上の他のセンサ２１６も周辺機器インタフェース２０６に接続される。
【００３６】
いくつかの実施形態では、カメラサブシステム２２０及び光学センサ２２２は、写真の撮影及びビデオクリップの録画等の、カメラ機能を促進するために利用される。１つ以上の有線及び／又は無線通信サブシステム２２４を通じて、通信機能が促進され、それらのサブシステムとしては、無線周波数受信器及び送信器、並びに／又は光（例えば、赤外線）受信器及び送信器を挙げることができる。オーディオサブシステム２２６をスピーカー２２８及びマイクロフォン２３０に結合することにより、ボイス認識機能、ボイス複製機能、デジタル録音機能、及びテレフォニー機能等のボイス対応機能が促進される。
【００３７】
いくつかの実施形態では、Ｉ／Ｏサブシステム２４０も周辺インタフェース２０６に結合される。Ｉ／Ｏサブシステム２４０は、タッチスクリーンコントローラ２４２及び／又は他の入力コントローラ（単数又は複数）２４４を含む。タッチスクリーンコントローラ２４２は、タッチスクリーン２４６に結合される。タッチスクリーン２４６及びタッチスクリーンコントローラ２４２は、例えば、容量性、抵抗性、赤外線、表面弾性波技術、近接センサアレイ、及び同様のもの等の複数のタッチ感知技術のうちの任意のものを用いて、接触及び移動又はその中断を検出することができる。他の入力コントローラ（単数又は複数）２４４は、１つ又は２つ以上のボタン、ロッカースイッチ、サムホイール、赤外線ポート、ＵＳＢポート、及び／又はスタイラスなどのポインタデバイスのような他の入力／制御デバイス２４８に結合することができる。
【００３８】
いくつかの実施形態では、メモリインタフェース２０２はメモリ２５０に結合される。メモリ２５０としては、高速ランダムアクセスメモリ並びに／又は不揮発性メモリ、例えば、１つ以上の磁気ディスクストレージデバイス、１つ以上の光学ストレージデバイス、及び／若しくはＮＡＮＤ型、ＮＯＲ型のようなフラッシュメモリを挙げることができる。
【００３９】
いくつかの実施形態では、メモリ２５０は、オペレーティングシステム２５２、通信モジュール２５４、ユーザインタフェースモジュール２５６、センサ処理モジュール２５８、電話モジュール２６０、及びアプリケーション２６２を記憶する。オペレーティングシステム２５２は、基本システムサービスを処理するための命令、及びハードウェア依存タスクを実行するための命令を含む。通信モジュール２５４は、１つ以上の追加機器、１つ以上のコンピュータ及び／又は１つ以上のサーバとの通信を促進する。ユーザインタフェースモジュール２５６は、グラフィックユーザインタフェースのプロセス及び他の出力チャネル（例えば、スピーカー）を用いた出力プロセスを促進する。センサ処理モジュール２５８はセンサ関連のプロセス及び機能を促進する。電話モジュール２６０は電話関連のプロセス及び機能を促進する。アプリケーションモジュール２６２は、電子メッセージング、ウェブブラウジング、メディア処理、ナビゲーション、イメージング及び／又はその他のプロセス及び機能等のユーザアプリケーションの種々の機能を促進する。
【００４０】
本明細書で説明されるように、いくつかの実施形態では、メモリ２５０はまた、デジタルアシスタントのクライアント側機能性を提供するために、（例えば、デジタルアシスタントクライアントモジュール２６４内の）クライアント側デジタルアシスタント命令、並びに種々のユーザデータ２６６（例えば、ユーザ固有の語彙データ、設定データ、及び／若しくはユーザの電子アドレス帳、ｔｏ−ｄｏリスト、買い物リスト等のその他のデータ）も記憶する。
【００４１】
種々の実施形態では、デジタルアシスタントクライアントモジュール２６４は、ユーザ機器１０４の種々のユーザインタフェース（例えば、Ｉ／Ｏサブシステム２４４）を通じてボイス入力（例えば、音声入力）、テキスト入力、タッチ入力、及び／又はジェスチャ入力を受け入れる能力を有する。デジタルアシスタントクライアントモジュール２６４はまた、オーディオ（例えば、音声入力）、視覚、及び／又は触覚形態の出力を提供することもできる。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び／又は上記のもののうちの２つ以上の組み合わせとして提供することができる。動作時、デジタルアシスタントクライアントモジュール２６４は、通信サブシステム２２４を用いて、デジタルアシスタントサーバと通信する。
【００４２】
いくつかの実施形態では、デジタルアシスタントクライアントモジュール２６４は、ユーザ、現在のユーザ対話及び／又は現在のユーザ入力に関連付けられるコンテクストを確立するために、種々のセンサ、サブシステム及び周辺機器を利用してユーザ機器１０４の周囲環境から追加情報を収集する。いくつかの実施形態では、デジタルアシスタントクライアントモジュール２６４は、ユーザの意図の推定を助けるために、ユーザ入力とともにコンテクスト情報又はそのサブセットをデジタルアシスタントサーバに提供する。いくつかの実施形態では、デジタルアシスタントはまた、コンテクスト情報を用いてユーザへの出力の準備及び配信方法を決定する。
【００４３】
いくつかの実施形態では、ユーザ入力に付随するコンテクスト情報は、センサ情報、例えば、照明、環境ノイズ、周囲温度、周囲環境の画像又はビデオ、等を含む。いくつかの実施形態では、コンテクスト情報はまた、機器の物理的状態、例えば、機器の向き、機器ロケーション、機器温度、電力レベル、速度、加速度、運動パターン、セルラー信号強度、等も含む。いくつかの実施形態では、ユーザ機器１０４のソフトウェア状態に関する情報、例えば、ユーザ機器１０４の実行中のプロセス、インストールされているプログラム、過去及び現在のネットワーク活動、バックグラウンドサービス、誤りログ、資源使用状況等は、ユーザ入力に関連付けられるコンテクスト情報としてデジタルアシスタントサーバに提供される。
【００４４】
いくつかの実施形態では、ＤＡクライアントモジュール２６４は、デジタルアシスタントサーバからの要求に応じてユーザ機器１０４上に記憶されている情報（例えば、ユーザデータ２６６）を選択的に提供する。いくつかの実施形態では、デジタルアシスタントクライアントモジュール２６４はまた、デジタルアシスタントサーバ１０６による要求に応じて自然言語ダイアログ又はその他のユーザインタフェースを介してユーザから追加入力も引き出す。デジタルアシスタントクライアントモジュール２６４は、ユーザ要求に表されるユーザ意図の推定及び／又はユーザ意図の達成に向けて、デジタルアシスタントサーバ１０６を支援するために、追加入力をデジタルアシスタントサーバ１０６に渡す。
【００４５】
種々の実施形態では、メモリ２５０は追加の命令又はより少数の命令を含む。更にまた、ユーザ機器１０４の種々の機能は、１つ以上の信号処理及び／又はアプリケーション固有の集積回路を含むハードウェア及び／又はファームウェアに実装できる。
【００４６】
図３Ａは、いくつかの実施形態に係る例示的なデジタルアシスタントシステム３００のブロック図である。いくつかの実施形態では、デジタルアシスタントシステム３００はスタンドアロンコンピュータシステム上に実施される。いくつかの実施形態では、デジタルアシスタントシステム３００は複数のコンピュータにわたって分散される。いくつかの実施形態では、デジタルアシスタントのモジュール及び機能のいくつかはサーバ部分及びクライアント部分に分割される。この場合には、クライアント部分はユーザ機器（例えば、ユーザ機器１０４）上に常駐し、例えば、図１に示されているように、１つ以上のネットワークを通じてサーバ部分（例えば、サーバシステム１０８）と通信する。いくつかの実施形態では、デジタルアシスタントシステム３００は、図１に示されるサーバシステム１０８（及び／又はデジタルアシスタントサーバ１０６）の一実施形態である。デジタルアシスタントシステム３００はデジタルアシスタントシステムの単なる一例にすぎず、デジタルアシスタントシステム３００は、図示されているよりも多数又は少数の構成要素を有してもよく、２つ以上の構成要素を組み合わせてもよく、又は構成要素の異なる構成又は配置を有してもよいことに留意されたい。図３Ａに示される種々の構成要素は、１つ以上の信号処理及び／若しくは特定用途向け集積回路を含む、ハードウェア、１つ以上のプロセッサによって実行されるソフトウェア命令、ファームウェア、又はそれらの組み合わせの形態で実施されてもよい。
【００４７】
デジタルアシスタントシステム３００は、メモリ３０２、１つ以上のプロセッサ３０４、入力／出力（Ｉ／Ｏ）インタフェース３０６、及びネットワーク通信インタフェース３０８を含む。これらの構成要素は１本以上の通信バス又は信号線３１０を通じて互いに通信する。
【００４８】
いくつかの実施形態では、メモリ３０２は、高速ランダムアクセスメモリ並びに／又は不揮発性コンピュータ可読記憶媒体（例えば、１つ以上の磁気ディスク記憶装置、フラッシュメモリ装置、若しくは他の不揮発性固体メモリ装置）等の、非一時的コンピュータ可読媒体を含む。
【００４９】
いくつかの実施形態では、Ｉ／Ｏインタフェース３０６は、ディスプレイ、キーボード、タッチスクリーン、及びマイクロフォン等の、デジタルアシスタントシステム３００の入出力機器３１６をユーザインタフェースモジュール３２２に結合する。Ｉ／Ｏインタフェース３０６は、ユーザインタフェースモジュール３２２と協働して、ユーザ入力（例えば、音声入力、キーボード入力、タッチ入力等）を受け取り、それらを適宜処理する。いくつかの実施形態では、例えば、デジタルアシスタントがスタンドアロンユーザ機器上に実施される場合には、デジタルアシスタントシステム３００は、図２におけるユーザ機器１０４に関して説明されている構成要素並びにＩ／Ｏ及び通信インタフェースのうちの任意のものを含む。いくつかの実施形態では、デジタルアシスタントシステム３００はデジタルアシスタント実施のサーバ部分を表し、ユーザ機器（例えば、図２に示されるユーザ機器１０４）上に常駐するクライアント側部分を通じてユーザと対話する。
【００５０】
いくつかの実施形態では、ネットワーク通信インタフェース３０８は有線通信ポート（単数又は複数）３１２並びに／又は無線伝送及び受信回路機構３１４を含む。有線通信ポート（単数又は複数）は、１つ以上の有線インタフェース、例えば、イーサネット、ユニバーサルシリアルバス（ＵＳＢ）、ＦＩＲＥＷＩＲＥ（登録商標）等を介して通信信号を受信及び送信する。無線回路機構３１４は、通信ネットワーク及び他の通信機器を起点／終点として、ＲＦ信号及び／又は光信号を受信及び送信する。無線通信は、ＧＳＭ（登録商標）、ＥＤＧＥ、ＣＤＭＡ、ＴＤＭＡ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、Ｗｉ−Ｆｉ（登録商標）、ＶｏＩＰ、Ｗｉ−ＭＡＸ（登録商標）、あるいは任意のその他の好適な通信プロトコル等の、複数の通信規格、プロトコル及び技術のうちの任意のものを用いることができる。ネットワーク通信インタフェース３０８は、デジタルアシスタントシステム３００と、インターネット、イントラネット、等のネットワーク、及び／又はセルラー電話ネットワーク、無線ローカルエリアネットワーク（ＬＡＮ）、等の無線ネットワーク、及び／又はメトロポリタンエリアネットワーク（Metropolitan Area Network、ＭＡＮ）、及び他の機器、との間の通信を可能にする。
【００５１】
いくつかの実施形態では、メモリ３０２、又はメモリ３０２のコンピュータ可読記憶媒体は、オペレーティングシステム３１８、通信モジュール３２０、ユーザインタフェースモジュール３２２、１つ以上のアプリケーション３２４、及びデジタルアシスタントモジュール３２６の全て又はサブセットを含むプログラム、モジュール、命令、及びデータ構造を記憶する。１つ以上のプロセッサ３０４はこれらのプログラム、モジュール、命令を実行し、データ構造から／へと、読み出し／書き込みを実行する。
【００５２】
オペレーティングシステム３１８（例えば、Ｄａｒｗｉｎ（登録商標）、ＲＴＸＣ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、ＯＳ  Ｘ（登録商標）、ウィンドウズ（登録商標）、又はＶｘＷｏｒｋｓ（登録商標）等の組み込みオペレーティングシステム）は、一般システムタスク（例えば、メモリ管理、記憶装置制御、電力管理等）を制御及び管理するための種々のソフトウェア構成要素及び／又はドライバを含み、種々のハードウェア、ファームウェア、及びソフトウェア構成要素の間の通信を促進する。
【００５３】
通信モジュール３２０は、ネットワーク通信インタフェース３０８を通じたデジタルアシスタントシステム３００とその他の機器との間の通信を促進する。例えば、通信モジュール３２０は、図２に示される機器１０４の通信インタフェース２５４と通信することができる。通信モジュール３２０はまた、無線回路機構３１４及び／又は有線通信ポート３１２によって受信されたデータを処理するための種々の構成要素も含む。
【００５４】
ユーザインタフェースモジュール３２２はＩ／Ｏインタフェース３０６を介して（例えば、キーボード、タッチスクリーン、ポインティング装置、コントローラ、及び／又はマイクロフォンから）ユーザからのコマンド及び／又は入力を受け取り、ディスプレイ上にユーザインタフェースオブジェクトを生成する。ユーザインタフェースモジュール３２２はまた、Ｉ／Ｏインタフェース３０６を介して（例えば、ディスプレイ、オーディオチャネル、スピーカー及びタッチパッド等を通じて）、ユーザへの出力（例えば、音声、音、アニメーション、テキスト、アイコン、振動、触覚フィードバック及び光等）も準備及び配信する。
【００５５】
アプリケーション３２４は、１つ以上のプロセッサ３０４によって実行されるように構成されたプログラム及び／又はモジュールを含む。例えば、デジタルアシスタントシステムがスタンドアロンのユーザ機器上に実装される場合には、アプリケーション３２４は、ゲーム、カレンダーアプリケーション、ナビゲーションアプリケーション、又は電子メールアプリケーション等の、ユーザアプリケーションを含んでもよい。デジタルアシスタントシステム３００がサーバファーム上に実装される場合には、アプリケーション３２４は、例えば、資源管理アプリケーション、診断アプリケーション、又はスケジューリングアプリケーションを含んでもよい。
【００５６】
メモリ３０２はまた、デジタルアシスタントモジュール（又はデジタルアシスタントのサーバ部分）３２６も記憶する。いくつかの実施形態では、デジタルアシスタントモジュール３２６は、以下のサブモジュール、又はそれらのサブセット若しくはスーパーセットを含む。即ち、入出力処理モジュール３２８、発語テキスト化（speech-to-text、ＳＴＴ）処理モジュール３３０、自然言語処理モジュール３３２、ダイアログフロー処理モジュール３３４、タスクフロー処理モジュール３３６、サービス処理モジュール３３８、及び割り込み処理モジュール３４０、である。これらのモジュールの各々は、デジタルアシスタント３２６の以下のデータ及びモデルのうちの１つ以上、又はそれらのサブセット若しくはスーパーセットへのアクセスを有する。即ち、オントロジ３６０、語彙索引３４４、ユーザデータ３４８、タスクフローモデル３５４、サービスモデル３５６、及び優先度パラメータデータベース３５８である。
【００５７】
いくつかの実施形態では、デジタルアシスタントモジュール３２６に実施された処理モジュール、データ及びモデルを用いて、デジタルアシスタントは少なくとも以下のうちのいくつかを実行する。即ち、ユーザから受け取った自然言語入力に表現されているユーザの意図を特定すること、ユーザの意図を完全に推定するために必要な情報をアクティブに引き出し、かつ取得する（例えば、単語、名前、意図等の曖昧さを除去することによって）こと、推定された意図を実現するためのタスクフローを判定すること、及び推定された意図を実現するためのタスクフローを実行することである。本明細書では、割り込み処理モジュール及びその優先度パラメータの使用について、後でより詳しく説明する。
【００５８】
図３Ｂに示すように、いくつかの実施形態では、Ｉ／Ｏ処理モジュール３２８は、ユーザ入力（例えば、音声入力）を取得するため、及びユーザ入力への応答を（例えば、音声入力として）提供するために、図３ＡのＩ／Ｏ機器３１６を通じてユーザと対話するか、又は、図３Ａのネットワーク通信インタフェース３０８を通じてユーザ機器（例えば、図１におけるユーザ機器１０４）と対話する。Ｉ／Ｏ処理モジュール３２８は、ユーザ入力とともに、又はその受信直後に、ユーザ入力に関連付けられたコンテクスト情報をユーザ機器から任意に取得する。コンテクスト情報は、ユーザ入力に関連するユーザ固有のデータ、語彙、及び／又は設定を含む。いくつかの実施形態では、コンテクスト情報はまた、ユーザ要求が受信された時点における機器（例えば、図１におけるユーザ機器１０４）のソフトウェア及びハードウェア状態、並びに／又はユーザ要求が受信された時点におけるユーザの周囲環境に関する情報も含む。いくつかの実施形態では、Ｉ／Ｏ処理モジュール３２８はまた、ユーザ要求について、ユーザに補足質問を送り、ユーザから回答を受け取る。ユーザ要求がＩ／Ｏ処理モジュール３２８によって受け取られ、ユーザ要求が音声入力を包含する場合には、Ｉ／Ｏ処理モジュール３２８は、発語テキスト化変換のために、音声入力を発語テキスト化（ＳＴＴ）処理モジュール３３０へ転送する。
【００５９】
発語テキスト化処理モジュール３３０は、Ｉ／Ｏ処理モジュール３２８を通じて音声入力（例えば、ボイス記録にキャプチャされたユーザの発言）を受信する。いくつかの実施形態では、発語テキスト化処理モジュール３３０は、発語入力を、音素の列、並びに最終的には、１つ以上の言語で書かれた単語若しくはトークンの列として認識するために、種々の音響モデル及び言語モデルを用いる。発語テキスト化処理モジュール３３０は、隠れマルコフモデル、動的タイムワーピング（ＤＴＷ）ベースの音声認識、並びにその他の統計的及び／又は解析的技法等の、任意の好適な音声認識技法、音響モデル、及び言語モデルを用いて実施され得る。いくつかの実施形態では、発語テキスト化処理は、サードパーティサービスによって、又はユーザの機器上で少なくとも部分的に実行され得る。発語テキスト化処理モジュール３３０が音声テキスト化処理の結果、例えば、単語又はトークンの列を獲得すると、意図推定のために、その結果を自然言語処理モジュール３３２へ渡す。
【００６０】
デジタルアシスタントの自然言語処理モジュール３３２（「自然言語プロセッサ」）は、音声テキスト化処理モジュール３３０によって生成された単語又はトークンの列（「トークン列」）を獲得し、トークン列を、デジタルアシスタントによって認識される１つ以上の「実施可能な意図」に関連付けようと試みる。「実施可能な意図」は、デジタルアシスタントによって実行されることができ、タスクフローモデル３５４内に実施される、関連付けられたタスクフローを有するタスクを表す。関連付けられたタスクフローは、タスクを実行するためにデジタルアシスタントが取る一連のプログラムされたアクション及びステップである。デジタルアシスタントの能力の範囲は、タスクフローモデル３５４内に実装され、記憶されているタスクフローの数及び種類に依存し、又は、換言すれば、デジタルアシスタントが認識する「実施可能な意図」の数及び種類に依存する。しかし、デジタルアシスタントの有効性はまた、自然言語で表現されたユーザ要求から正しい「実施可能な意図（単数又は複数）」を推定するアシスタントの能力にも依存する。
【００６１】
いくつかの実施形態では、発語テキスト化処理モジュール３３０から入手される単語又はトークンの列に加えて、自然言語プロセッサ３３２はまた、ユーザ要求に関連付けられるコンテクスト情報も、例えば、Ｉ／Ｏ処理モジュール３２８から受信する。自然言語プロセッサ３３２は、発語テキスト化処理モジュール３３０から受信したトークン列内に包含されている情報を明らかにし、補完し、及び／又は更に明確にするために、コンテクスト情報を任意に用いる。コンテクスト情報は、例えば、ユーザ設定、ユーザ機器のハードウェア及び／又はソフトウェア状態、ユーザ要求の前、最中、若しくは直後に集められたセンサ情報、デジタルアシスタントとユーザとの間の以前の対話（例えば、ダイアログ）、並びに同様のものを含む。本明細書で説明されるように、コンテクスト情報は動的であり、かつ時間、ロケーション、ダイアログの内容及び他の因子によって変化し得る。
【００６２】
いくつかの実施形態では、自然言語処理は例えば、オントロジ３６０に基づく。オントロジ３６０は、多数のノードを含む階層構造であり、各ノードは、「実施可能な意図」又は１つ以上の「実施可能な意図」又は他の「属性」に関連する「属性」のいずれかを表している。上述したように、「実施可能な意図」は、デジタルアシスタントが実行可能なタスク、例えば、「実施可能」であるか、又はアクションを及ぼされ得るタスクを表す。「属性」は、実施可能な意図又は別の属性の下位態様に関連付けられるパラメータを表す。オントロジ３６０内の実施可能な意図ノードと属性ノードとの間のつながりは、属性ノードによって表されるパラメータが、実施可能な意図ノードによって表されるタスクとどのように関係するのかを定義する。
【００６３】
いくつかの実施形態では、オントロジ３６０は実施可能な意図ノード及び属性ノードで構成される。オントロジ３６０内において、それぞれの実施可能な意図ノードは１つ以上の属性ノードに直接又は１つ以上の中間属性ノードを介して接続される。同様に、それぞれの属性ノードは、１つ以上の実施可能な意図ノードに直接又は１つ以上の中間属性ノードを介して接続される。例えば、図３Ｃに示すように、オントロジ３６０は「レストラン予約」ノード（即ち、実施可能な意図ノード）を含んでもよい。属性ノードである「レストラン」、「日付／時間」（予約用）及び「参加人数」が、実施可能な意図ノード（即ち、「レストラン予約」ノード）にそれぞれ直接に接続される。更に、属性ノードである「料理」、「価格帯」、「電話番号」及び「ロケーション」は、属性ノード「レストラン」のサブノードであり、中間属性ノード「レストラン」を介して「レストラン予約」ノード（即ち、実施可能な意図ノード）にそれぞれ接続される。別の例として、図３Ｃに示すように、オントロジ３６０は「リマインダー設定」ノード（即ち、別の実施可能な意図ノード）も含んでよい。属性ノード「日付／時間」（リマインダー設定用）及び「テーマ」（リマインダー用）は、「リマインダー設定」ノードにそれぞれ接続される。属性ノード「日付／時間」はレストラン予約をするタスク及びリマインダーを設定するタスクの両方に関連していることから、属性ノード「日付／時間」はオントロジ３６０において「レストラン予約」ノード及び「リマインダー設定」ノードの両方に接続される。
【００６４】
実施可能な意図ノードは、その接続された概念ノードとともに、「ドメイン」として説明することができる。本説明では、各ドメインは、それぞれの実施可能な意図に関連付けられ、特定の実施可能な意図に関連付けられたノード群（及びそれらの間の関係）を指す。例えば、図３Ｃに示すオントロジ３６０には、レストラン予約ドメイン３６２の例及びオントロジ３６０内のリマインダードメイン３６４の例が含まれている。レストラン予約ドメインは、実施可能な意図ノードである「レストラン予約」、属性ノードである「レストラン」、「日付／時間」、及び「参加人数」、並びにサブ属性ノードである「料理」「価格帯」、「電話番号」及び「場所」を含む。リマインダードメイン３６４には、実施可能な意図ノードである「リマインダー設定」、及び属性ノードである「テーマ」及び「日付／時間」が含まれている。いくつかの実施形態では、オントロジ３６０は多くのドメインで構成される。各ドメインは、１つ以上の他のドメインと、１つ以上の属性ノードを共有することができる。例えば、「日付／時間」の属性ノードは、レストラン予約ドメイン３６２及びリマインダードメイン３６４に加えて、多くの異なるドメイン（例えば、スケジューリングドメイン、旅行予約ドメイン、映画チケットドメインなど）に関連付けることができる。
【００６５】
図３Ｃは、オントロジ３６０内に２つの例示的なドメインを示すが、他のドメイン（即ち、実施可能な意図）として、「通話を開始する」、「道順を探す」、「会議をスケジュールする」、「メッセージを送信する」、及び「質問の答えを提供する」、「リストを読み上げる」、「ナビゲーションの指示を提供する」、「タスクの手順を提供する」などが挙げられる。「メッセージを送信する」のドメインは、「メッセージを送信する」の実施可能な意図ノードに関連付けられており、「受信者（単数又は複数）」、「メッセージタイプ」、及び「メッセージ本文」などの属性ノードを更に含むことができる。属性ノードの「受信者」は更に、例えば、「受信者名」と「メッセージアドレス」などのサブ属性ノードによって、定義してもよい。
【００６６】
いくつかの実施形態では、オントロジ３６０は、デジタルアシスタントが理解し、作用する能力を有する全てのドメイン（及びしたがって実施可能な意図）を含む。いくつかの実施形態では、オントロジ３６０は、ドメイン若しくはノード全体を追加又は除去すること、又はオントロジ３６０内のノード間の関係を変更することなどによって、修正してもよい。
【００６７】
いくつかの実施形態では、複数の関連する実施可能な意図に関連付けられるノードは、オントロジ３６０内の「上位ドメイン」の下にクラスタ化されてもよい。例えば、「旅行」上位ドメインは、旅行に関連する属性ノード及び実施可能な意図ノードのクラスタを含んでもよい。旅行に関連する実施可能な意図ノードは、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」などを含んでもよい。同じ上位ドメイン（例えば、「旅行」上位ドメイン）の下の実施可能な意図ノードは、多くの属性ノードを共有し得る。例えば、「航空券予約」、「ホテル予約」、「カーレンタル」、「道順を知る」、「興味のある場所を探す」についての実施可能な意図ノードは、属性ノードである「出発場所」、「目的地」、「出発日／時間」、「到着日／時間」、及び「参加人数」のうちの１つ以上を共有する可能性がある。
【００６８】
いくつかの実施形態では、オントロジ３６０内の各ノードは、そのノードによって表される属性又は実施可能な意図に関連する単語及び／又は成句のセットに関連付けられる。各ノードに関連付けられる単語及び／又はフレーズのそれぞれのセットは、そのノードに関連付けられるいわゆる「語彙」である。各ノードに関連付けられる単語及び／又は成句のそれぞれのセットは、ノードによって表される属性又は実施可能な意図に関連して語彙索引３４４内に記憶することができる。例えば、図３Ｂに戻ると、「レストラン」の属性についてのノードに関連付けられる語彙は、「食べ物」、「飲み物」、「料理」、「空腹」、「食べる」、「ピザ」、「ファーストフード」、「食事」などの単語を含んでもよい。別の例として、「通話を開始する（initiate a phone call）」という実施可能な意図のノードに関連付けられる語彙は、「電話する（call）」、「電話（phone）」、「ダイアルする（dial）」、「電話をかける（ring）」、「この番号に電話する（call this number）」、「〜に電話をかける（make a call to）」などの単語及びフレーズを含んでもよい。語彙索引３４４は異なる言語の単語及びフレーズを任意に含む。
【００６９】
自然言語プロセッサ３３２は、発語テキスト化処理モジュール３３０からトークン列（例えば、テキスト文字列）を受信し、どのノードがトークン列内の単語によって暗示されているのかを判定する。いくつかの実施形態では、トークン列内の単語又は成句が（語彙索引３４４を介して）オントロジ３６０内の１つ以上のノードに関連付けられることが分かれば、その単語又は成句はそれらのノードを「トリガ」又は「活性化」することになる。アクティブにされたノードの量及び／又は相対的重要度に基づき、自然言語プロセッサ３３２は、実施可能な意図のうちの１つをユーザがデジタルアシスタントに実行させようと意図したタスクとして選択することになる。いくつかの実施形態では、最も多く「トリガされた」ノードを有するドメインが選択される。いくつかの実施形態では、最も高い信頼値（例えば、その種々のトリガされたノードの相対的重要度に基づく）を有するドメインが選択される。いくつかの実施形態では、ドメインは、トリガされたノードの数及び重要度の組み合わせに基づき選択される。いくつかの実施形態では、ノードを選択する際には、デジタルアシスタントがユーザからの同様の要求を以前に正しく解釈したかどうか等の追加の因子も考慮される。
【００７０】
いくつかの実施形態では、デジタルアシスタントはまた、特定のエンティティの名前も語彙索引３４４内に記憶する。そのため、これらの名前の１つがユーザ要求内に検出されると、自然言語プロセッサ３３２は、その名前はオントロジ内の属性又は下位属性の特定のインスタンスを指していると認識できることになる。いくつかの実施形態では、特定のエンティティの名前は、企業、レストラン、人、映画、及び同様のものの名前である。いくつかの実施形態では、デジタルアシスタントは、ユーザのアドレス帳、映画データベース、ミュージシャンデータベース、及び／又はレストランデータベース等の、他のデータ源から特定のエンティティ名を検索し、これらを特定する。いくつかの実施形態では、自然言語プロセッサ３３２が、トークン列内の単語は特定のエンティティの名前（ユーザのアドレス帳内の名前等）であると特定すると、その単語は、ユーザ要求のためにオントロジ内の実施可能な意図を選択する際に追加的な重要性を与えられる。
【００７１】
例えば、ユーザ要求から単語「Ｍｒ．Ｓａｎｔｏ」が認識され、語彙索引３４４内にユーザの連絡先リスト内の連絡先の１つとして姓「Ｓａｎｔｏ」が見つかった場合、その時は、ユーザ要求は、「メッセージを送信する」又は「通話を開始する」ドメインに対応する可能性が高い。別の例としては、単語「ＡＢＣ  Ｃａｆｅ」がユーザ要求内に見つかり、語彙索引３４４内にユーザの市内の特定のレストランの名前として用語「ＡＢＣ  Ｃａｆｅ」が見つかった場合、その時は、ユーザ要求は「レストラン予約」ドメインに対応する可能性が高い。
【００７２】
ユーザデータ３４８は、ユーザ固有語彙、ユーザ設定、ユーザアドレス、ユーザの既定言語及び第二言語、ユーザの連絡先リスト、並びに各ユーザに関するその他の短期的若しくは長期的情報等の、ユーザ固有の情報を含む。いくつかの実施形態では、自然言語プロセッサ３３２は、ユーザ入力内に包含されている情報を補完してユーザ意図を更に明確にするために、ユーザ固有の情報を用いる。例えば、ユーザ要求「私の誕生日パーティに私の友人を招待してほしい」に対して、自然言語プロセッサ３３２は、誰が「友人」であり、いつ及びどこで「誕生日パーティ」が催されるのかを判断するために、ユーザの要求内のこうした情報を明示的に提供するようにユーザに要求する代わりに、ユーザデータ３４８にアクセスすることができる。
【００７３】
トークン文字列に基づくオントロジ検索の他の詳細は、その開示全体が参照により本明細書に組み込まれる、２００８年１２月２２日出願の「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｅａｒｃｈｉｎｇ  Ｕｓｉｎｇ  ａｎ  Ａｃｔｉｖｅ  Ｏｎｔｏｌｏｇｙ」に対する米国実用特許出願第１２／３４１，７４３号に記載されている。
【００７４】
いくつかの実施形態では、自然言語プロセッサ３３２がユーザ要求に基づき、実施可能な意図（又はドメイン）を識別すると、自然言語プロセッサ３３２は、識別された実施可能な意図を表すように、構造化されたクエリを生成する。いくつかの実施形態では、構造化されたクエリは、実施可能な意図に関するドメイン内の１つ以上のノードのためのパラメータを含み、パラメータの少なくともいくつかにはユーザ要求内で指定された特定の情報及び要求事項が追加される。例えば、ユーザは「私のために７時に寿司屋で夕食の予約を取って下さい」と言う場合がある。この場合には、自然言語プロセッサ３３２は、ユーザ入力に基づき、実施可能な意図を「レストラン予約」であると正しく特定することができてもよい。オントロジによれば、「レストラン予約」ドメインのための構造化されたクエリは、｛料理｝、｛時間｝、｛日付｝、｛参加人数｝、及び同様のもの等のパラメータを含み得る。いくつかの実施形態では、ユーザの発言内に包含されている情報に基づき、自然言語プロセッサ３３２はレストラン予約ドメインのための部分的な構造化されたクエリを生成する。ここでは、部分的な構造化されたクエリは、パラメータ｛料理＝「寿司」｝及び（時間＝「午後７時」）を含む。しかし、本例では、ユーザの発言は、ドメインに関連付けられる構造化されたクエリを完成するために十分な情報を包含していない。したがって、｛参加人数｝及び｛日付｝等のその他の必要パラメータは、現在利用可能な情報に基づいては、構造化されたクエリ内に指定されない。いくつかの実施形態では、自然言語プロセッサ３３２は、構造化されたクエリのいくつかのパラメータに、受信したコンテクスト情報を入力する。例えば、いくつかの実施形態では、ユーザが「私の近くの」寿司レストランを要求した場合には、自然言語プロセッサ３３２は、構造化されたクエリ内の｛ロケーション｝パラメータにユーザ機器１０４からのＧＰＳ座標を入力する。
【００７５】
いくつかの実施形態では、自然言語プロセッサ３３２は、（あらゆる入力済みのパラメータを含む）構造化されたクエリをタスクフロー処理モジュール３３６（「タスクフロープロセッサ」）に渡す。タスクフロープロセッサ３３６は、自然言語プロセッサ３３２から、構造化されたクエリを受信し、必要ならば、構造化されたクエリを完成させ、ユーザの最終的な要求を「完了する」ために必要とされるアクションを実行するように構成される。いくつかの実施形態では、これらのタスクを完成させるために必要な種々の手順はタスクフローモデル３５４内で提供される。いくつかの実施形態では、タスクフローモデルは、ユーザから追加情報を入手するための手順、及び実施可能な意図に関連付けられる動作を実行するためのタスクフローを含む。
【００７６】
上述したように、構造化されたクエリを完成させるために、タスクフロープロセッサ３３６は、追加情報を入手し、及び／又は潜在的に曖昧な発言の曖昧さを除去するために、ユーザとの追加のダイアログを開始することが必要になる場合がある。このような対話が必要となる場合には、タスクフロープロセッサ３３６は、ユーザとの対話に携わるためにダイアログ処理モジュール３３４（ダイアログプロセッサ３３４）を呼び出す。いくつかの実施形態では、ダイアログプロセッサ３３４は、どのように（及び／又はいつ）ユーザに追加情報を求めるべきかを決定し、ユーザ応答を受信し、これらを処理する。Ｉ／Ｏ処理モジュール３２８を通じてユーザに質問を提供し、ユーザから回答を受け取る。いくつかの実施形態では、ダイアログプロセッサ３３４はオーディオ及び／又は視覚出力を介してユーザにダイアログ出力を提示し、口頭の又は物理的な（例えば、クリック）応答を介してユーザから入力を受け取る。上述の例を続けると、タスクフロープロセッサ３３６が、ドメイン「レストラン予約」に関連付けられる構造化されたクエリについての「参加人数」及び「日付」情報を決定するためにダイアログプロセッサ３３４を呼び出すと、ダイアログプロセッサ３３５は、「何人分ですか？」及び「どの日にしますか？」等の質問を、ユーザに渡すために生成する。ユーザから回答を受信すると、ダイアログフロープロセッサ３３４は、構造化されたクエリに欠けている情報を追加するか、又は構造化されたクエリから欠けている情報を完成させるために、その情報をタスクフロープロセッサ３３６に渡すことができる。
【００７７】
場合によっては、タスクフロープロセッサ３３６は、１つ以上の曖昧な属性を有する構造化されたクエリを受信することがある。例えば、「メッセージを送信する」ドメインのための構造化されたクエリは、意図された受信者は「Ｂｏｂ」であることを指示する場合があり、ユーザは、「Ｂｏｂ」という名前の連絡先を複数有する場合がある。タスクフロープロセッサ３３６は、ダイアログプロセッサ３３４が、構造化されたクエリのこの属性の曖昧さを除去するように要求することになる。今度は、ダイアログプロセッサ３３４が、「どのＢｏｂですか？」とユーザに尋ね、ユーザが選び得る「Ｂｏｂ」という名前の連絡先のリストを表示しても（又は読み上げても）よい。
【００７８】
タスクフロープロセッサ３３６が、実施可能な意図のための構造化されたクエリを完成すると、タスクフロープロセッサ３３６は、実施可能な意図に関連付けられる最終的なタスクの実行に進む。それに応じて、タスクフロープロセッサ３３６は、構造化されたクエリ内に包含されている具体的なパラメータに応じて、タスクフローモデル内のステップ及び命令を実行する。例えば、「レストラン予約」の実施可能な意図のためのタスクフローモデルは、レストランと連絡を取り、特定の時間に特定の参加人数のための予約を実際に希望するためのステップ及び命令を含み得る。例えば、以下のような構造化されたクエリを用いる。｛レストラン予約，レストラン＝ＡＢＣ  Ｃａｆｅ，日付＝３／１２／２０１２，時間＝午後７時，参加人数＝５｝。タスクフロープロセッサ３３６は以下のようなステップを実行してもよい。（１）ＡＢＣ  Ｃａｆｅのサーバ又はＯＰＥＮＴＡＢＬＥ（登録商標）などのレストラン予約システムにログオンする、（２）日付、時間及び参加人数に関する情報をウェブサイト上のフォームに入力する、（３）フォームを送信する、及び（４）予約に関するカレンダー項目をユーザのカレンダー内に作成する。
【００７９】
いくつかの実施形態では、タスクフロープロセッサ３３６は、ユーザ入力内で要求されたタスクを完了するため、又はユーザ入力内で要求された情報の回答を提供するために、サービス処理モジュール３３８（「サービスプロセッサ」）の補助を用いる。例えば、サービスプロセッサ３３８は、電話をかけるため、カレンダー項目を設定するため、地図検索を呼び出すため、ユーザ機器上にインストールされているその他のユーザアプリケーションを呼び出すか若しくはそれと対話するため、並びにサードパーティサービス（例えばレストラン予約ポータル、ソーシャルネットワーキングウェブサイト、バンキングポータル等）を呼び出すか若しくはそれと対話するために、タスクフロープロセッサ３３６の代わりに動作することができる。いくつかの実施形態では、各サービスによって必要とされるプロトコル及びアプリケーションプログラミングインタフェース（application programming interface、ＡＰＩ）は、サービス群モデル３５６の中のそれぞれのサービスモデルによって指定され得る。サービスプロセッサ３３８は、サービスのための適当なサービスモデルにアクセスし、サービスモデルに係るサービスによって必要とされるプロトコル及びＡＰＩに従ってサービスの要求を生成する。
【００８０】
例えば、レストランがオンライン予約サービスを可能にしている場合には、レストランは、予約を行うために必要なパラメータ、及び必要なパラメータの値をオンライン予約サービスへ伝達するためのＡＰＩを指定するサービスモデルを提出することができる。タスクフロープロセッサ３３６によって要求されると、サービスプロセッサ３３８は、サービスモデルに記憶されているウェブアドレスを用いて、オンライン予約サービスとのネットワーク接続を確立し、必要な予約のパラメータ（例えば、時間、日付、参加人数）を、オンライン予約サービスのＡＰＩに従う形式でオンライン予約インタフェースへ送信することができる。
【００８１】
いくつかの実施形態では、ユーザの意図を推定して明確にし、ユーザ意図を更に明らかにして絞り込むための情報を入手し、ユーザの意図を達成するべく応答（即ち、ユーザへの出力又はタスクの完了）を最終的に生成するために、自然言語プロセッサ３３２、ダイアログプロセッサ３３４、及びタスクフロープロセッサ３３６は集合的かつ反復的に用いられる。
【００８２】
いくつかの実施形態では、ユーザの要求を達成するために必要なタスクが全て実行された後に、デジタルアシスタント３２６は確認応答を策定し、Ｉ／Ｏ処理モジュール３２８を通じてユーザへ応答を送り返す。ユーザ要求が情報の回答を求めている場合には、確認応答は、要求されている情報をユーザに提示する。いくつかの実施形態では、デジタルアシスタントはまた、デジタルアシスタント３２６によって作成された応答にユーザは満足であるかどうかを指示するようにユーザに要求する。
【００８３】
デジタルアシスタントの詳細は、その開示全体が参照により本明細書に組み込まれる、２０１０年１月１８日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」と題された米国実用特許出願第１２／９８７，９８２号、２０１１年６月３日出願の「Ｇｅｎｅｒａｔｉｎｇ  ａｎｄ  Ｐｒｏｃｅｓｓｉｎｇ  Ｄａｔａ  Ｉｔｅｍｓ  Ｔｈａｔ  Ｒｅｐｒｅｓｅｎｔ  Ｔａｓｋｓ  ｔｏ  Ｐｅｒｆｏｒｍ」と題された米国実用特許出願第６１／４９３，２０１号に記載されている。
【００８４】
ほとんどのシナリオでは、デジタルアシスタントがユーザからのユーザ入力を受け取ると、デジタルアシスタントは、可能な限り少ない遅延で、ユーザ入力に対する適切な応答の提供を試みる。例えば、ユーザが特定の情報（例えば、現在の交通情報）を、音声入力（例えば、「現在の交通状況はどうですか？」）の提供によって要求するものと仮定する。デジタルアシスタントが音声入力を受け取り、それを処理した直後、デジタルアシスタントは任意選択で、ユーザ要求の受信確認応答を音声出力（例えば、「交通情報を調べています」）によって提供する。デジタルアシスタントが要求された情報をユーザ要求に応じて取得した後、デジタルアシスタントは、更なる遅延を生じることなく、要求された情報をユーザに提供する。例えば、ユーザの交通情報要求に応じて、デジタルアシスタントは、音声出力が生成された直後に、短い間合いによって区切られた、一連の１つ以上の別個の音声出力（例えば、「途中２件の事故が発生しています。＜間合い＞１つ目の事故は１０１号北行きのホイップル大通り付近です。＜間合い＞２つ目の事故は８５号北の２８０号付近です」）を提供してもよい。
【００８５】
本明細書の目的においては、ユーザ要求の初期確認応答及びユーザ要求に応じて提供される１つ以上の別個の音声出力は全て、ユーザ要求に対する完全な応答のサブ応答と見なされる。換言すれば、デジタルアシスタントはユーザ要求を受け取ると、ユーザ要求に対する情報提供プロセスを開始し、情報提供プロセス中、デジタルアシスタントはユーザからの更なる要求を必要とすることなく、ユーザ要求に対する完全な応答の各サブ応答を準備して提供する。
【００８６】
場合によっては、要求された情報が取得可能になる前に、追加情報又は説明（例えば、経路情報）が必要とされる。そのようなシナリオでは、デジタルアシスタントは、追加情報又は説明を求める質問（例えば、「目的地はどこですか？」）をユーザに対して出力する。いくつかの実施形態では、デジタルアシスタントは、ユーザからの新しい入力を受け取るまで、更なるアクションを実行することも、ユーザ要求に対する任意の追加応答を提供することもないため、デジタルアシスタントによって提供された質問は、ユーザ要求に対する完全な応答と見なされる。いくつかの実施形態では、ユーザが追加情報又は説明を提供すると、デジタルアシスタントは、元のユーザ要求及び追加のユーザ入力に基づき確立された「新しい」ユーザ要求に対する新しい情報提供プロセスを開始する。
【００８７】
いくつかの実施形態では、デジタルアシスタントは、新しい各ユーザ入力を受け取ると新しい情報提供プロセスを開始し、既存の各情報提供プロセスは、（１）ユーザ要求に対する完全な応答のサブ応答が全てユーザに提供された時、又は（２）デジタルアシスタントが、既存の情報提供プロセスを開始した前のユーザ要求に関する追加情報又は説明を求める要求をユーザに提供した時に終了する。
【００８８】
概して、情報又はタスクの実行を求めるユーザ要求がデジタルアシスタントによって受信された後、デジタルアシスタントは、可能な限り迅速に応答（例えば、要求された情報を含む出力、要求されたタスクの確認応答、又は説明を要求するための出力のいずれか）を提供することが望ましい。デジタルアシスタントのリアルタイム応答性は、デジタルアシスタントの性能評価における重要な要因の１つである。このような場合、応答は可能な限り迅速に準備され、かつ応答の既定の配信時間は、応答が準備された直後の時間となる。
【００８９】
ただし、場合によっては、ユーザ入力を受け取った直後に初期サブ応答が提供された後、デジタルアシスタントは残りの１つ以上のサブ応答を、長時間にわたって１つずつ提供する。いくつかの実施形態では、ユーザ要求に対する情報提供プロセスは、各サブ応答を個別に提供するために必要とされる時間の合計よりも長い時間にわたって拡張される。例えば、いくつかの実施形態では、サブ応答がオーディオ出力チャネルを通じてユーザに配信される時、短い間合い（即ち、短時間の静寂）がサブ応答の隣接するペア（例えば、連続する音声出力のペア）間に挿入される。
【００９０】
いくつかの実施形態では、サブ応答は準備された後に一時保留され、所定の条件が満たされた時にのみ配信される。いくつかの実施形態では、所定の条件は、システム時計に従った所定のトリガ時間が経過した時、及び／又は所定のトリガイベントが発生した時に満たされる。例えば、ユーザがデジタルアシスタントに対して「５分間のタイマーを設定して下さい」と言った場合、デジタルアシスタントは、ユーザ要求の受信時に情報提供プロセスを開始する。情報提供プロセス中、デジタルアシスタントは、第１のサブ応答（例えば、「了解しました、タイマーを開始します」）を即座に提供し、かつ５分後まで第２及び最後のサブ応答（例えば、「５分経過しました」）を提供しない。このような場合、第１のサブ応答の既定の配信時間は、第１のサブ応答が準備された直後の時間となり、かつ第２及び最後のサブ応答の既定の配信時間は、トリガイベント（例えば、タイマーの開始から５分経過）が発生した直後の時間となる。情報提供プロセスは、デジタルアシスタントがユーザへの最後のサブ応答の提供を完了した時に終了する。種々の実施形態では、第２のサブ応答は、第２のサブ応答の既定の配信時間よりも前の任意の時間（例えば、第１のサブ応答が準備された直後、又は第２のサブ応答の既定の配信時間の直前まで）に準備される。
【００９１】
本明細書で後からより詳細に説明されるように、ユーザ要求への応答を提供するため、並びに／又はリマインダー及び通知用のアラート項目を提供するための既定のルールに加えて、コンテクスト対応割り込みハンドラ（例えば、図３Ａの割り込み処理モジュール３４０）が実施される。いくつかの実施形態では、割り込みハンドラは、現在のコンテクストに関する情報をリアルタイムで収集し、機器が現在ユーザの音声入力を受け取っていることを理由に、応答、リマインダー及び／又は通知を提供するための既定のルールを変更する必要があるかどうかをリアルタイムで判定する。例えば、いくつかのコンテクストでは、ユーザが機器に向かって発語していることを理由に、緊急性が低い音声出力の提供を遅延させる（例えば、少なくとも時間的に保留する）ことがより好適であると考えられる一方、他の場合は、緊急性が高い音声出力を即座に提供する（例えば、ユーザに「バージインする」又は割り込む）ことがより好適であり得る。更に、いくつかのコンテクストでは、音声出力の提供を完全に省略することが容認可能であり、むしろより好適である。
【００９２】
図４Ａ〜図４Ｃは、いくつかの実施形態に係る、デジタルアシスタントが音声出力を提供するか、又は音声出力を提供しない例示的なシナリオを示す。図４Ａ〜図４Ｃでは、音声出力に対応する実線の枠（例えば、図４ＡのＳＯ１）は、実際に機器によって提供される音声出力を示す。一方、破線の枠（例えば、図４ＡのＳＯ２）が示す音声出力は、それがユーザによる音声入力の検出に関連しない場合、対応する時間及びロケーションにおいて実際に機器によって提供されるのではなく、個々の図を参照してより詳細に説明されるように、他の方法で機器によって提供される。
【００９３】
図４Ａは、音声出力が機器によって恒久的に省略される例示的なシナリオを示す。まず、ユーザはイーストアルダー大通りにおいて東（４０１）へ向かう。４０２−１によって指定された第１のロケーションにおいて、ユーザは、音声入力ＳＩ１として「図書館まで案内して下さい」と述べることによって、機器が図書館までの進路変更ごとの指示を提供することを要求する。ユーザが発語を終了するロケーションは４０２−２によって指定され、これはユーザが移動中に発語しているという事実により、４０２−１とは異なる。したがって、それぞれの音声入力及び出力に対応するバー（例えば、ＳＩ１に対応する４０２−１と４０２−２との間のバー）は、距離、又は言い換えれば、それぞれの入力／出力が読み上げる（例えば、発語する）必要がある時間の長さを示す。
【００９４】
方法５００及び図５Ａ〜５Ｄを参照してより詳細に説明されるように、機器は音声入力を受け取り、例えば、最も近い図書館のロケーションを判定するために必要な動作を実行する。この実施例では、機器は、図書館４０４が最も近い図書館であることを判定し、音声出力ＳＯ１（「了解しました、そのまま真っ直ぐ進みます」）を用いて即座に応答する。
【００９５】
４０５−１によって指定されたロケーションにおいて、デジタルアシスタントと同じ機器に含まれた電話機能は、着信音アイコン４０６によって示された入呼を受信する。ユーザは、「やあジョン！久しぶりだね。家族は元気？」と述べる音声入力ＳＩ２によって電話に出る。音声入力ＳＩ２の終了時、ユーザは４０５−２によって指定されたロケーションにいる。ただし、４０５−１と４０５−２との間の時点で、機器は「３マイル先で第１通りを右に曲がります」と通知する音声出力ＳＯ２を（例えば、サーバ又は同じ機器上の異なるモジュールから）受信する。この実施例では、機器が、ユーザが第１通りに到達する１つ以上前の時点で次の曲がり角をユーザに通知する（例えば、「１マイル先で右に曲がります」及び／又は「ここで第１通りを右に曲がります」などの追加通知）ようにスケジュールされているため、音声出力ＳＯ２は低い度合いの緊急性を有する。機器は、音声出力ＳＯ２の出力が予定されていた時（４０７−１から４０７−２までの間）に音声入力ＳＩ２を受け取っていたことを理由に、音声出力ＳＯ２の出力を保留する。更に、音声出力ＳＯ２に関連付けられた優先度が非常に低いことを理由に（例えば、この実施例では、進路変更ごとの指示に関連付けられた冗長性により）、実際には、この保留は、音声出力ＳＯ２の出力を完全に省略する（例えば、３マイル先で左に曲がることを伝えるコマンドを一切出力せず、代わりに１マイル前及び直前の通知に依存する）。
【００９６】
図４Ｂは、いくつかの実施形態に係る、音声出力が即座にユーザに提供される例示的なシナリオを示す。図４Ａ〜図４Ｂで共有される類似の参照番号は、それぞれのシナリオの類似の態様を示す。したがって、簡略化のため、そのような類似の態様はここでは反復しない。
【００９７】
図４Ｂは、電話が図４Ａよりも第１通りに近接した距離において、着信音アイコン４０６によって示されるように、入呼を受信するという点において、図４Ａとは異なる。ユーザが音声入力ＳＩ２を介して電話に出ている間、機器は、ユーザがその後すぐに（例えば、この実施例では１００フィート先で）右に曲がるべきであることを示す進路変更ごとの指示コマンドに対応する、音声出力ＳＯ３を受信する。メッセージの緊急性を理由に、機器は「バージイン」し（例えば、ユーザの発語中にユーザに割り込み）、「１００フィート先で右に曲がります」と出力する。
【００９８】
図４Ｃは、いくつかの実施形態に係る、音声出力が一時的に保留され、後からユーザに提供される例示的なシナリオを示す。図４Ａ〜図４Ｃで共有される類似の参照番号は、それぞれのシナリオの類似の態様を示す。したがって、簡略化のため、そのような類似の態様はここでは反復しない。
【００９９】
音声入力ＳＩ３の間、ユーザは「ゲームの終了時にニックのスコアを知らせて下さい」と述べることによって、機器が各ゲームの終了時にニックスのスコアをユーザに通知するように要求する。機器は、「了解しました、ゲームの終了時にニックスのスコアをお知らせします」と述べることによって、即座に要求を確認する。上述したように、電話は、ユーザが音声入力ＳＩ２において「やあジョン！久しぶりだね。家族は元気？」と述べることによって応答した入呼を受信する。ＳＩ２の間にニックスのゲームは終了し、機器は、要求どおりにユーザに提供されるスコアを示す、音声出力ＳＯ５を受信する。この実施例では、ユーザが発語している間（例えば、機器が音声入力を受け取っている間）はニックスのスコアが変化しないため、音声出力ＳＯ５の緊急性は高いものと見なされない。このため機器は、矢印４０８によって示されるように、ユーザが発語を終了するまで音声出力ＳＯ５を保留し、その後音声出力ＳＯ５を出力する。ただし、いくつかの実施形態では、機器は、ニックスのスコアを機器のディスプレイに表示するなどの非可聴形式で、ユーザ要求に応答する。いくつかの実施形態では、表示された応答はユーザの発語に割り込まないため、そのような応答は遅延なく提供される。いくつかの実施形態では、そのような表示された応答は、保留された音声出力と組み合わせるか、又は代替として、その代わりに提供される（例えば、表示された応答が音声出力の代わりとなる時、音声出力は完全に省略される）。
【０１００】
図５Ａ〜図５Ｄは、機器が現在ユーザから音声入力を受け取っているかどうかの判定並びに音声出力の緊急性の判定に基づき、音声出力を提供するかどうかを判定するために、デジタルアシスタントによって実施される例示的な方法５００の流れ図である。いくつかの実施形態では、音声出力を提供するかどうかの判定が、デジタルアシスタントの割り込みハンドラ（例えば、図３Ａの割り込みハンドラ３４０）によって、現在のコンテクストに基づきリアルタイムで動的に実行される。
【０１０１】
いくつかの実施形態では、音声出力を受信する（５０６を参照）前に、機器はデジタルアシスタントのタスクの実行要求をユーザから受け取る（５０２）。例えば、ユーザは、音声入力として、例えば、「あまりお金のかからない夕食を探して下さい」と述べることによって、近くの安価なレストランを探すようにデジタルアシスタントに要求する。代替として、ユーザは、例えば、音声入力として、「ブールバードを４人で予約して下さい」と述べることによって、特定のレストランを予約するようにデジタルアシスタントに要求する。代替として、ユーザは周辺のランドマークへの進路変更ごとの指示（「ゴールデンゲートブリッジへの道順」）を要求するか、又は野球のスコア（「ソックスの結果はどうでしたか？」）若しくは株価（「今日のＡｐｐｌｅの株価はどうでしたか？」）を尋ねる。
【０１０２】
いくつかの実施形態では、音声出力を受信する（５０６を参照）前に、機器は要求をデジタルアシスタントサーバに送信する（５０４）。音声出力は、要求に応じてサーバから受信される。いくつかの実施形態では、要求をサーバに送信する前に、機器は発語テキスト化動作を（例えば、ＳＴＴ処理モジュール３３０を用いて）実行する。いくつかの実施形態では、発語テキスト化はサーバにおいて実行される。いくつかの実施形態では、機器は、ユーザデータを用いたオントロジ、語彙分析及びコンテクスト照合の実行（例えば、ユーザがどの「ソックス」チームに関心があるかを、お気に入り、ブラウザの履歴及び／又はデジタルアシスタントへの要求履歴などのプリファレンスに基づき明確にする）を含む自然言語処理を（例えば、自然言語処理モジュール３２２を用いて）実行する。その後、サーバは、要求を満たすために必要な任意の残りの動作（例えば、１つ以上の実施可能な項目、実施可能な属性から欠落している１つ以上の属性の特定、１つ以上のデータベース及び／又はインターネットからの欠落している情報の検索など）を実行する。いくつかの実施形態では、サーバは応答（例えば、テキスト文字列）を準備し、その応答をユーザに返す。いくつかの実施形態では、サーバは音声応答（例えば、オーディオデータ）を準備し、その音声応答をデジタルアシスタントに送信する。
【０１０３】
いずれのイベントにおいても、機器は、機器のユーザに提供された音声出力を受信する（５０６）。いくつかの実施形態では、音声出力はサーバから要求に応じて受信される（例えば、音声出力は、ディナー予約の要求であるか進路変更ごとの指示の要求であるかにかかわらず、ユーザによって為された要求への好適な応答である）。いくつかの実施形態では、音声出力を受信することは、機器において音声出力を生成する（例えば、サーバが要求に応じてテキスト文字列を返し、機器がテキスト発語化エンジンを用いてテキスト文字列から音声出力を生成する）ことを含む（５０８）。いくつかの実施形態では、音声出力を受信することは、サーバから受信すること（任意選択で、テキスト発語化動作などの追加処理動作を含む）を意味することを理解されたい。代替として、又は追加で、音声出力を受信することは、第１の機器構成要素（例えば、割り込み処理モジュール３４０などのモジュール、又は割り込み処理モジュール３４０などのモジュール内で保持されている命令を実行するプロセッサ３０４）において、第２の機器構成要素（例えば、自然言語処理モジュール３３２などのモジュール、又は自然言語処理モジュール３３２などのモジュール内で保持されている命令を実行するプロセッサ３０４）から受信することを意味する。
【０１０４】
機器は、機器が現在ユーザから音声入力を受け取っているかどうかを判定する（５１０）。例えば、いくつかの実施形態では、機器は電話であり、かつ機器が現在ユーザから音声入力を受け取っているかどうかを判定することは、ユーザがリモートユーザとの通話に参加しているかどうかを判定することを含む（５１２）。そのような実施形態では、機器は、ユーザが現在会話において発語している場合、機器が現在ユーザから音声入力を受け取っていると判定する。いくつかの実施形態では、通話の相手が発語している時、又はユーザ及び相手が他のことを行っていて静寂が発生した場合、機器は、機器が現在音声入力を受け取っていないと判定する（例えば、いくつかの実装では、アクティブな通話は、機器が音声入力を受け取っていると判定するのに十分であるが、代替実装では、機器は、ユーザが会話において実際に発語している時に、音声入力が受け取られていると判定する）。
【０１０５】
いくつかの実施形態では、機器が現在ユーザから音声入力を受け取っているかどうかを判定することが、最後の音声入力が所定の期間内に受け取られたかどうかを判定することを含む（５１４）。例えば、会話の流れの中では自然な間合い（例えば、呼吸を整えるための間合い、次に話すことを考えるための間合い）が存在するため、いくつかの実施形態では、機器は、瞬間的又はほぼ瞬間的な形式で音声入力を検出するのではなく、ユーザが発語していないと結論付ける前に、所定の時間量だけ待機する。いくつかの実施形態では、所定の期間は出力の緊急性の度合いの関数である（５１６）。例えば、機器が緊急性の高いメッセージ（「ここを右に曲がります」）を出力キュー内に有する時、ユーザが発語していないと判定する前に機器が待機する時間量はより少なくなり、したがって機器は、ユーザが呼吸を整えるか、又は次に話すことを考えるための間合いを取った瞬間にバージインする。いくつかの実施形態では、機器が現在音声入力を受け取っているかどうかを判定することは、例えば、バックグラウンドノイズ、及び／又はユーザによって為されたが音声入力として意図されていない発語（例えば、通話中、ユーザが別の相手と対面で話すために会話を一時中断した時）の曖昧さを除去するためのスケルチ判定（例えば、機器のマイクロフォンにおける特定の強度又は指向性に基づく）を含む。
【０１０６】
機器が現在ユーザから音声入力を受け取っていないと判定すると、機器は音声出力をユーザに提供する（５１８）。いくつかの実施形態では、機器は、リモートユーザから受信したオーディオデータ（５１２を参照、ユーザが通話に参加している時）及びユーザへの音声出力を、その受信したオーディオデータを理由に音声出力の提供を保留することなく、同時に提供する（５２０）。例えば、そのような実施形態では、機器は、リモートユーザ（即ち、相手）が通話中に話している時、それでもなおデジタルアシスタントから音声出力を提供する。いくつかの実施形態では、リモートユーザから受信したオーディオデータ（例えば、音声）及びユーザへの音声出力を同時に提供することは、音声出力が提供される間、リモートユーザからのオーディオデータを一時的にミュートにすることを意味する。例えば、そのような実施形態では、リモートユーザが「８７年前、我々の父祖たちは、自由の精神に育まれ、全ての人は平等に創られているという信条に献げられた新しい国家を、この大陸に誕生させた」と言い、かつ出力キュー内の音声出力が「左に曲がります」である時、実際にユーザに提供されるオーディオは、「８７年前、我々の父祖たちは、自由の精神に育まれ、「左に曲がります」全ての人は平等に創られているという信条に献げられた新しい国家を、この大陸に誕生させた」となる。このため、ユーザは、リモートユーザがリンカーンのゲティスバーグ演説を暗唱していることを認識し、かつ左に曲がるという指示も理解するだろう。いくつかの実施形態では、リモートユーザから受信したオーディオデータ及び音声出力は、リモートユーザの曖昧さを除去するために、異なる発声アクセント及び／又は音量を用いてデジタルアシスタントから提供される。
【０１０７】
いくつかの状況では、ユーザは音声出力の提供を無効にするように機器を構成するだろう。例えば、機器が動作の邪魔立て無用モードである時、音声出力の提供が省略される（５２２）。いくつかの実施形態では、ユーザが機器を動作の邪魔立て無用モードであるように構成している時、機器は動作の邪魔立て無用モードである。いくつかの実施形態では、ユーザが機器を、着信拒否以外のモードで動作するが、それでもなお着信拒否を特徴として含むように構成している（例えば、機器が機内モード若しくは消音モードである、又はユーザが機器を、１日の特定の時間帯だけ消音モードになるように構成している、など）時、機器は動作の邪魔立て無用モードである。
【０１０８】
いくつかの実施形態では、音声出力の提供中（５２４）、機器は音声入力をユーザから受け取る（５２６）。例えば、ユーザが通話の一部として話すか、又はデジタルアシスタントの動作を求める別の要求を発語することによって割り込む時、機器は音声出力を提供している最中である。後者のシナリオの例として、ユーザが以前に、近くの中華料理レストランのロケーションを特定するように機器に要求している時、ユーザはＳＭＳメッセージを同僚に送信する必要もあることを示すために、応答に割り込んでもよい。そのような実施形態では、機器は音声出力を中断する（５２８）。そのような実施形態では、機器は、音声出力に対応する完了基準が満たされているかどうかを判定する（５３０）。いくつかの実施形態では、音声出力の既定の割合が既にユーザに提供されている時に、完了基準が満たされる（５３２）。例えば、いくつかの実施形態では、音声出力の既定の割合は、５０％、６０％、７０％及び８０％から成るグループからの割合である（５３４）。完了基準が満たされていないと判定すると、機器は音声出力の少なくとも一部を後の時点のために保留し、完了基準が満たされたと判定すると、機器は音声出力の残りの出力を完全に省略する（５３６）。いくつかの実施形態では、機器が残りのメッセージが無意味であると判定すると（例えば、中華料理を要求した後、地元の一連の中華料理レストランが機器によって列挙されている間に、ユーザが「結構です、タイ料理にしましょう」と申告する）、完了基準が満たされる。
【０１０９】
機器がユーザから音声入力を受け取っていると判定すると、機器は音声出力を提供することの緊急性が高いかどうかを判定する（５３８）。いくつかの実施形態では、音声出力が即時提供のためのユーザ構成可能基準を満たす時に、音声出力の緊急性が高くなる（５４０）。例えば、いくつかの実施形態では、機器が、ユーザが以前に非常に重要な人物（very important person、ＶＩＰ）として特定した人物から電子メッセージを受信した時に、ユーザ構成可能基準が満たされる（５４２）。代替として、又は追加で、いくつかの実施形態では、機器が株価更新情報を受信し、かつユーザが以前に、株価更新情報を即座に提供するように機器を構成している（例えば、ユーザが、株を売ることを可能な限り迅速に検討することができるように、特定の株価が特定の値を上回った時にユーザに通知するように機器を構成している）時に、ユーザ構成可能基準が満たされる（５４４）。いくつかの実施形態では、音声入力を提供することの緊急性が高いかどうかは、コンテクストに基づき判定される。例えば、音声出力が、間もなく曲がることを示す指示（「ここを左に曲がります」）を含む時、機器はメッセージの緊急性が高いことを認識する。音声出力を提供することの緊急性が高いと判定すると、機器は音声出力をユーザに提供する（例えば、機器が音声入力をユーザから受け取っているにもかかわらず、「バージイン」して音声出力を提供する）（５４６）。いくつかの実施形態では、機器は、音声出力を遅延（例えば、出力を生成するために必要な処理時間に加えて、ユーザが発語しているという事実を理由に追加された追加遅延）なくユーザに提供する（５４８）。
【０１１０】
音声出力を提供することの緊急性が低いと判定すると、機器はユーザへの音声出力の提供を保留する（５５０）。以下でより詳細に説明されるように、いくつかの状況では、音声出力の提供を保留することは、音声出力の提供を後の時点まで遅延させてから音声出力を提供することを意味するが、他の状況では、保留することは音声出力の提供を完全に省略し、かつその特定の音声出力を一切提供しないことを意味する。いくつかの状況では、保留することが音声出力の提供を一時的に遅延させることを意味するか、又は恒久的に音声出力の提供を省略することを意味するかは、特定の実施形態、実装及び音声出力の周囲のコンテクストによって異なる（５６２を参照）。いくつかの実施形態では、機器が動作の特殊モードである時、機器は音声出力を遅延なく（例えば、機器が現在ユーザから音声入力を受け取っている場合でも）提供する（５５２）。例えば、いくつかの実施形態では、機器は「割り込み可能」モードの動作を含み、それによりユーザは、機器が音声入力を受け取っているかどうかにかかわらず、デジタルアシスタントによって割り込まれ得る（例えば、デジタルアシスタントがバージインすることができる）。いくつかの実施形態では、動作の特殊モードは、動作の保持モード及び動作のミュートモードから成るグループのうちの１つ以上である（５５３）。
【０１１１】
流れ図の経路５５３−１、５５３−２及び５５３−３は、方法５００のいくつかの実施形態に係る、音声出力を提供することの緊急性が低いと判定すると、任意選択で実行される追加動作を表す。流れ図の経路５５３に関連して説明される様々な動作は、必ずしも相互排他的でなく、いくつかの状況において組み合わされることを理解されたい。
【０１１２】
例えば、いくつかの実施形態によれば、機器がもはやユーザから音声入力を受け取っていないと判定すると、機器は音声出力をユーザに提供する（５５４）。いくつかの実施形態では、機器がもはやユーザから音声入力を受け取っていないと判定することは、最後の音声入力と現在時刻との間で既定の時間量が経過したと判定することを含む（５５６）。いくつかの実施形態では、既定の時間量は音声出力の緊急性の度合いの関数である。いくつかの実施形態では、所定の時間量は音声出力の緊急性の度合いの単調減少関数であり、それにより、緊急性の度合いがより高い音声出力を、より少ない時間量で提供する（５６０）。例えば、このような実施形態では、機器は、ユーザが発語を終了した後、緊急性が高い音声出力を提供する前に、音声出力の緊急性がより低い場合に比べて少ない時間量だけ待機する。
【０１１３】
いくつかの実施形態では、機器は、出力がメッセージスキップ基準を満たすかどうかを判定する（５６２）。いくつかの実施形態では、緊急性の度合いが既定の閾値を下回った時に、メッセージスキップ基準が満たされる（５６４）。例えば、音声出力が一連の通知に含まれるいくつかの通知のうちの１つである場合、いくつかの状況では、ユーザに一連の通知内の各通知を提供する必要はない。いくつかの実施形態では、音声出力が進路変更ごとの指示のセットにおけるナビゲーションコマンドであり、かつ機器が後の時点で対応するナビゲーションコマンドを提供するようにスケジュールされている時に、メッセージスキップ基準が満たされる（５６６）。例えば、機器は、ナビゲーションコマンドを曲がり角の２マイル前、１マイル前、２分の１マイル前及び直前に提供するようにスケジュールされる。そのような状況では、ユーザが音声入力を、それがなければ１マイル前のコマンドが読み上げられる状況で提供している時、機器は１マイル前のコマンドの提供を完全に省略する。運転手はそれに応じて、曲がり角の前に、２分の１マイル前のコマンド及び直前のコマンドによって、曲がり角に関する通知を受けるだろう。
【０１１４】
いくつかの実施形態では、機器がディスプレイを含む場合、機器は音声出力を提供することの緊急性が低いと判定すると、音声出力に対応する表示された出力を提供する（５６８）。
【０１１５】
図５Ａ〜図５Ｄを参照して上述された動作は、図２及び／又は図３に示される構成要素によって、任意選択で実施される。例えば、受信動作５０４、提供動作５２０、受け取り動作５２６は、上記で詳細に説明されたデジタルアシスタント３２６、Ｉ／Ｏ処理モジュール３２８、割り込み処理モジュール３４０及び／又は自然言語処理モジュール３３２によって、任意選択で実施される。同様に、当業者にとって、他の処理が図２及び／又は図３に示される構成要素に基づいてどのように実施されるかは明らかであろう。
【０１１６】
これらの動作が上述されている特定の順序は、単なる例示であり、説明される順序が、それらの動作を実行することが可能な唯一の順序であることを示すことを、意図するものではない点を理解されたい。当業者であれば、本明細書で説明される動作を再順序付けする、様々な方法を認識するであろう。
【０１１７】
上述の説明は、説明の目的上、特定の実施形態を参照して説明されている。しかし、上述の例示的説明は、網羅的であること、又は本発明を、開示されている寸分違わない形態に限定することを意図されてはいない。上述の教示を考慮すれば、多くの修正及び変形が可能である。本発明の原理及びその実際的な応用を最良の形で説明し、それによって他の当業者が、想到される特定の用途に好適な種々の改良とともに本発明及び様々な実施形態を最良な形で利用することを可能とするために、これらの実施形態を選択し説明した。
【図１】
0006412914.tif 000002
【図２】
0006412914.tif 000003
【図３Ａ】
0006412914.tif 000004
【図３Ｂ】
0006412914.tif 000005
【図３Ｃ】
0006412914.tif 000006
【図４Ａ】
0006412914.tif 000007
【図４Ｂ】
0006412914.tif 000008
【図４Ｃ】
0006412914.tif 000009
【図５Ａ】
0006412914.tif 000010
【図５Ｂ】
0006412914.tif 000011
【図５Ｃ】
0006412914.tif 000012
【図５Ｄ】
0006412914.tif 000013