(57)【特許請求の範囲】
【請求項１】
実行可能な命令を記憶するコンピュータ可読メモリと、
前記コンピュータ可読メモリと通信する１つ以上のプロセッサと、
を備えるシステムであって、
前記１つ以上のプロセッサは、前記実行可能な命令によってプログラムされ、少なくとも、
一連の項目を含む、ユーザーに提示されるテキストを生成し、
前記テキストを使用してオーディオ提示を生成し、
複数の識別子を前記一連の項目に関連付けて、ここで前記一連の項目の各項目が、前記複数の識別子のうちの少なくとも１つの識別子と関連付けられ、
前記オーディオ提示および前記複数の識別子をクライアントデバイスに送信し、
前記クライアントデバイスから、
ユーザーの発話を含むオーディオデータと、
前記複数の識別子のうちの第１の識別子と、ユーザーの発話中に前記クライアントデバイス上に提示されている複数のオーディオ提示のうちの少なくとも２つのオーディオ提示の各々のための識別子と、に関する識別データと、
を受信し、
前記ユーザーの発話上で音声認識を行い、音声認識結果を取得し、
前記識別データおよび前記音声認識結果に少なくとも部分的に基づいて、前記ユーザーの発話が、前記オーディオ提示に関係することを判断し、前記識別データおよび前記音声認識結果に少なくとも部分的に基づいて、前記ユーザーの発話が前記オーディオ提示に関係することを判断する前記実行可能な命令は、
前記オーディオ提示の対象を判断する実行可能な命令と、
前記音声認識結果が、前記オーディオ提示の前記対象に関係する可能性が高いことを判断する実行可能な命令と、
を含み、前記識別データは、前記オーディオ提示の識別子を含み、
前記一連の項目のうちの第１の項目を、前記識別データおよび前記音声認識結果に少なくとも部分的に基づいて識別し、
前記第１の項目に少なくとも部分的に基づいて動作を実行する、
システム。
【請求項２】
前記一連の項目は、一連のリマインダ、タスク一覧上の一連の項目、または、購入可能な一連の項目を含む、
請求項１に記載のシステム。
【請求項３】
前記１つ以上のプロセッサは、前記実行可能な命令によって更にプログラムされ、
前記一連の項目を使用してヒントを生成し、
前記ヒントを使用して前記第１の項目を識別する、
請求項１に記載のシステム。
【請求項４】
コンピュータに実装される方法であって、
特定のコンピュータによって実行可能な命令で構成された１つ以上のコンピューティングデバイスの制御下で、
クライアントデバイスに、第１の項目に対応する第１の部分および第２の項目に対応する第２の部分を含むオーディオ提示データであって、前記第１の項目に対応する第１のマーカーおよび前記第２の項目に対応する第２のマーカーを含むオーディオ提示データを送信するステップと、
前記クライアントデバイスから、
ユーザーの発話を表すオーディオデータと、
（１）前記ユーザーの発話が開始されたときに前記クライアントデバイス上に提示されている複数のオーディオ提示と、（２）前記第１のマーカーおよび前記第２のマーカーの少なくとも１つと、に関する識別データと、
を受信するステップと、
少なくとも前記識別データおよび前記オーディオデータに基づいて、項目を選択するステップと、
を含み、
前記選択された項目は、前記第１の項目または前記第２の項目を含み、
前記第１のマーカーは、前記第１の部分の前または後に位置し、前記第２のマーカーは、前記第２の部分の前または後に位置する、
方法。
【請求項５】
前記識別データは、前記第２のマーカーを含み、前記コンピュータに実装される方法は、
前記第２の部分の提示が開始された第１の時間と、前記ユーザーの発話が開始された第２の時間と、の間の時間を判定するステップを更に含む、
請求項４に記載のコンピュータに実装される方法。
【請求項６】
実行可能なコードを含む非一時的コンピュータ可読媒体を備えるコンピューティングデバイスであって、前記実行可能なコードは、前記コンピューティングデバイスのプロセッサによって実行されるときに、前記コンピューティングデバイスに、
音声処理システムから、第１の項目に対応する第１の部分および第２の項目に対応する第２の部分を含むオーディオ提示であって、前記第１の項目に対応する第１のマーカーおよび前記第２の項目に対応する第２のマーカーを含むオーディオ提示を受信するステップと、
前記オーディオ提示の提示と実質的に同時に、第２のオーディオ提示を提示するステップと、
前記音声処理システムに、
前記オーディオ提示および前記第２のオーディオ提示の提示と実質的に同時に前記コンピューティングデバイスのオーディオ入力構成要素を介して受信されるオーディオデータと、
前記オーディオ提示と、前記第２のオーディオ提示と、前記第１のマーカーおよび前記第２のマーカーのうちの少なくとも１つと、に関する識別データと、
を送信するステップと、
を含むプロセスを実行させ、
前記第１のマーカーは、前記第１の部分の前または後に位置し、前記第２のマーカーは、前記第２の部分の前または後に位置する、
コンピューティングデバイス。
【請求項７】
前記オーディオ提示は、第１のデータストリームにおいて受信され、前記第１のマーカーおよび第２のマーカーは、前記第１のデータストリームまたは第２のデータストリームのうちの１つにおいて受信される、
請求項６に記載のコンピューティングデバイス。
【請求項８】
前記プロセスは、
前記オーディオ提示を提示するステップと実質的に同時に、前記音声処理システムへのデータストリームを開始するステップを更に含み、前記データストリームは、前記オーディオデータを含む、
請求項６に記載のコンピューティングデバイス。
【請求項９】
前記識別データは前記第１のマーカーを含み、前記識別データは前記第１の項目の提示と実質的に同時に送信される、
請求項６に記載のコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
音声認識システムは、ユーザーからの音声入力を受信するための種々のモジュールおよび構成要素を含み、ユーザーが発言したこと、およびユーザーが意味したことを判定する。一部の実装では、音声処理システムは、ユーザーの発話のオーディオ入力を受信し、発話の１つ以上の有力な音訳を生成する自動音声認識（「ＡＳＲ」）モジュールを含む。音声処理システムはまた、ユーザーの発話の音訳などの入力を受信し、コンピュータアプリケーションなどが従い得る方法で入力の意味を判定する、自然言語理解（「ＮＬＵ」）モジュールを含む。例えば、携帯電話のユーザーは、口語コマンドを発声して通話を開始してもよい。口語コマンドのオーディオはＡＳＲモジュールによって音訳され得、ＮＬＵモジュールは、音訳からユーザーの意図（例えば、ユーザーが通話機能の開始を望んでいること）を判定し、通話を開始することができる。
【０００２】
テキスト読み上げ（「ＴＴＳ」）システムは、ときに音声合成として知られるプロセスを使用して、テキストを音に変換する。一般的な実装では、ＴＴＳシステムは、テキストおよび／または音声合成マークアップ言語（「ＳＳＭ」）データなどの入力を受信し、入力のオーディオ提示をユーザーに提供することができる。例えば、ＴＴＳシステムは、電子メールまたはリマインダの一覧などのテキストをユーザーに「読む」ように構成してもよい。
【０００３】
一部のシステムは、音声認識とＴＴＳとの両方を兼ね備える。例えば、全地球測位システム（「ＧＰＳ」）は、特定の住所に関するユーザーの口語入力を受信し、その住所に赴くための道案内を生成し、その道案内を聴覚的にユーザーに提示することができる。多くの場合、ユーザーはその後、道案内を受信している間、そのようなシステムと対話し続けることができる。ＧＰＳシステムが次の道案内または一連の道案内を提供した後、ユーザーは、任意の数の所定コマンドのうちの１つ（例えば、「経路を中止」、「次の曲がり角」）を使用してもよい。加えて、他の非口語のユーザー対話を使用して、聴覚的に提示されるコンテンツと対話してもよい。例えば、ターンバイターン方式の道案内は、タッチスクリーン画面を介して表示され、ユーザーがタッチスクリーンまたはキーボードによって特定の迂回経路を選択することを可能にし得る。
【０００４】
これから、種々の新規の機能の実施形態を、次の図面を参照して説明する。図面全体を通して、参照番号は、参照する要素間の対応を示すために繰り返して使用する場合がある。図面は、本明細書に記載の事例的な実施形態を解説するために提供し、本開示の範囲を限定することは意図しない。
【図面の簡単な説明】
【０００５】
【図１】音声サービス、クライアントデバイス、およびユーザー間の事例的な対話を示す、音声サービスが実装され得る事例的なネットワーク化された環境のブロック図である。
【図２Ａ】オーディオ提示および識別子の生成中の、種々のモジュールおよびデータストア間の対話を示す、事例的な音声サービスのブロック図である。
【図２Ｂ】ユーザーの発話の処理中の、種々のモジュール間の対話を示す、事例的な音声サービスのブロック図である。
【図３】オーディオ提示の生成および送信を管理するための、ならびにオーディオ提示との対話を処理するための、事例的なプロセスの流れ図である。
【図４】生成されたオーディオ提示を提示するための、およびオーディオ提示の部分に関するユーザーの発話を送信するための、事例的なプロセスの流れ図である。
【図５】複数の動作中のオーディオ提示のうちの１つに適用され得る発話を処理するための事例的なプロセスの流れ図である。
【発明を実施するための形態】
【０００６】
序論
概して記述すると、本開示は、オーディオコンテンツとの口語のユーザー対話を促進することに関する。音声処理システムは、口語の発話から音訳およびユーザーの意図を判定できる。ユーザーは口語コマンドを発することができ、音声処理システムは、自動音声認識（「ＡＳＲ」）および自然言語処理（「ＮＬＵ」）システムを使用して、ユーザーが行いたいことを判定し、対応する動作を自動的に実行することができる。しかしながら、音声処理システムが、ユーザーに追加情報を促すことなしに、曖昧性を解決する、または照応（例えば代名詞）の対象を識別することは困難であり得る。このことは、コマンドを適用する対象を具体的に識別する所定のフォーマットに従わない口語コマンドをユーザーが発する場合に、特に当てはまる。
【０００７】
例えば、タスク一覧が、テキスト読み上げ（「ＴＴＳ」）システムを介してユーザーに提示されてもよい。ＴＴＳシステムは、音声を合成することによって、テキストコンテンツをオーディオフォーマットで出力することができる。ＴＴＳシステムは、単位選択（録音された音声の単位が合わせて連結される）などの手法、およびパラメトリック手法（パラメトリックモデルおよび／または隠れマルコフモデルを使用）を使用して、音声を合成することができる。ユーザーは、タスクがユーザーに聴覚的に提示されるとき、またはその直後に、特定のタスクを完了とマークしてもよい。一部の音声処理システムでは、ユーザーは、口語コマンドを発して特定のタスク完了をマークする前に、タスクまたは全リストが提示されるまで待つことを求められる場合がある。他のシステムでは、ユーザーは、リストの提示を一時停止または中断してコマンドを発してもよい。これらおよび他の場合、ユーザーは、完了としてマークする特定のタスクを具体性を持って示す必要があり得る。例えば、ユーザーは、「２番目のタスクを完了とマークする」または「「支払い」タスクを完了とマークする」と発言してもよい。また他のシステムでは、一覧のオーディオ提示中に、タスク一覧（または任意の他のＴＴＳ出力の視覚表示）が画面上に提示される場合などは、ユーザーは、キー入力またはタッチスクリーン入力によってタスクを完了とマークしてもよい。
【０００８】
本開示の態様は、ＴＴＳ提示などのオーディオ提示の要素または他の部分に対する識別子または他のマーカーを生成することに関する。音声サービスとしても言及される音声処理システムは、マーカーを使用して、再生中にユーザーが口語コマンドを発する、または他の何らかの発話をするときに、ユーザーが提示のどの部分に言及しているかを判定することができる。マーカーは、ＴＴＳ提示を用いてクライアントデバイスに送信され得る。クライアントデバイスのユーザーがＴＴＳ再生中に口語コマンドを発するとき、再生されているＴＴＳ提示の特定の要素または部分に対するマーカーが、ユーザーの発話と併せて音声サービスに提供され得る。このようにして、音声サービスは、口語コマンドの対象または焦点を、ユーザーに追加情報を促すことなくより容易に判定することができる。例えば、リマインダ一覧のオーディオ提示中、「支払い」に対するリマインダがユーザーに提示され得る。ユーザーは「それは終わった」と発言できる。音声サービスが、ユーザーが「それは終わった」と発言したときにどの特定のリマインダがユーザーに提示されていたのかを知らない場合、音声サービスはコマンドがどのリマインダに適用されるのかを判定できない可能性がある。そのような場合、多くの音声サービスは、ユーザーがどのリマインダに言及していたのかを特定するように、または音声サービスが理解できるフォーマットでコマンドを完全に再発行するように、ユーザーに促す。しかしながら、ユーザーが口語コマンドを発したときに提示されていたリマインダに対するマーカー（例えば、「リマインダＩＤ＝０００２」または「リマインダ：支払い」）を音声サービスに提供することにより、音声サービスは、追加情報を要求することなく口語コマンドを処理することができる。
【０００９】
本開示中に記載の実施形態は一覧中の項目を示すマーカーの使用に集中するが、実施形態は単に事例的であり、限定的であるとは意図されない。マーカーの使用は、オーディオ提示のうちのいかなる部分にも適用され得る。例えば、オーディオ提示が、一覧ではなく書籍（例えばオーディオブック）からの一節である場合、マーカーは、ユーザーの発話を解釈するため、および照応を解決するための文脈を提供することができる。音声処理システムは、音声マーカーを、オーディオブック中で言及される人物名または場所と関連付けることができる。別の例として、オーディオ提示がビジネスニュースである場合には、音声マーカーは企業名または株価情報と関連付けられてもよい。音声処理システムの構成要素は、その部分が一覧項目なのか、他の何らかの種類の部分なのかを認識し得る。しかしながら、一部の実施形態では、マーカーと関連付けられた部分が一覧項目なのか否かは、音声処理システムによっては分かり得ない。
【００１０】
本開示の追加的な態様は、ユーザーが口語コマンドを発するときに、ユーザーデバイス上で現在動作中であり得る数個のうちのどのアプリケーションまたはオーディオ提示にユーザーが言及しているのかを判定することに関する。携帯電話またはタブレットコンピュータなどの一部のユーザーデバイスは、複数のオーディオプログラムを同時に提示する（例えば、曲とテキストコンテンツ項目の別個のＴＴＳ提示とを再生する）ように構成され得る。そのような場合には、ユーザーが口語コマンドを発するとき、現在提示されている複数のオーディオ項目のうちのどの項目にユーザーが言及しているのかを判定する必要があり得る。例えば、ユーザーは、携帯電話を使用して、音楽を聞き、同時にリマインダの一覧と対話するなどの他のタスクを行ってもよい。携帯電話は、リマインダについての情報のＴＴＳ提示も再生する間は、音楽の再生をより低い音量で続けてもよい。ユーザーは、「その曲を購入する」などの口語コマンドを発することができる。ユーザーの発話「その曲を購入する」に加えて、携帯電話は、ユーザーが口語コマンドを発したときに再生されていたその時の曲、また提示されていたその時のリマインダに関して、データを音声サービスに送信することができる。音声サービスはその後、発話、および発話時に電話上で動作中の２つのオーディオ提示に関するデータから、発話が曲に言及し、曲を購入するコマンドを含むことを判定し得る。ユーザーが代わりに「それは終わった」と発言した場合は、音声サービスは、ユーザーが曲ではなくリマインダに言及していたと判定し得る。このようにして、ユーザーは、口語コマンドを使用して、口語コマンドがどのオーディオプログラムに適用されるのかについてデバイスに明示的に告げることなく、並行作業をしながら自然な形でユーザーデバイスと対話することができる。
【００１１】
本開示中に記載の実施形態の態様は、例示目的で、ＴＴＳオーディオ、発話オーディオ、および識別子データを、ネットワークを介して別個のクライアントデバイスと交換する音声サービスに集中するが、当業者は、本明細書で開示する手法が、任意の数のソフトウェア処理またはアプリケーションに適用され得ることを理解するであろう。例えば、クライアントデバイスは、音声認識エンジンを含み、ユーザーの発話を処理し、どの部分または提示にユーザーが言及しているのかを判定するための、本明細書に記載の機能を提供し得る。別の実施例として、識別子は、非ＴＴＳオーディオ（例えば、合成された音声ではなく生または録音オーディオ）と関連付けられてもよい。これから、本開示の種々の態様を、本開示を限定するのではなく例示する意図で、ある特定の実施例および実施形態に関して説明する。
【００１２】
事例的な実施例を参照すると、ユーザーは、携帯電話またはタブレットコンピュータなどのクライアントデバイスに、口語コマンドを発するか、あるいは口語の発話をすることができる。クライアントデバイスは、ユーザーの発話に関するデータを、ＡＳＲモジュールを使用して発話を処理しユーザーの発言を音訳するネットワーク対応音声サービスに送信し得る。音声サービスは、ユーザーが何をしたいのかを、ＮＬＵモジュールを使用して、ＡＳＲモジュールからの音訳、および任意に、以前のユーザー対話または他のデータに基づく１つ以上のヒントに基づいて判定することができる。加えて、音声サービスは、ＴＴＳモジュールを使用して、ユーザーが消費し得る、またはユーザーが対話し得る、合成された音声を生成してもよい。
【００１３】
事例的には、ユーザーは、「タスク一覧を読み上げる」などの口語コマンドを、携帯電話または他のクライアントデバイスに発することができる。クライアントデバイスは、ユーザーの発話を、携帯電話ネットワーク、インターネット、または他の何らかのネットワークを介して、音声サービスに送信できる。音声サービスのＡＳＲモジュールは、ユーザーの発話のオーディオ入力を受信し、「タスク一覧を読み上げる」という音訳を出力できる。ＮＬＵモジュールは、音訳を受信し、ユーザーがユーザーのタスク一覧のオーディオ提示を受信することを望んでいると判定し得る。アプリケーション（例えばタスク一覧アプリケーション）を用いて、ユーザーのタスク一覧を検索または生成することができる。ユーザーのタスク一覧を含む、またはそれに言及するヒントを、後続のユーザーの発話の処理中、音声サービスの種々のモジュールが使用するために創出してもよい。例えば、ヒントとしては、ユーザーのタスク一覧の全テキスト、データストアからタスク一覧を検索するために使用できるタスク一覧の識別子、データストア中のタスク一覧を指すポインタなどが挙げられる。後続のユーザーの発話は、要求されたコンテンツ（この場合、ユーザーのタスク一覧）に適用される可能性が高いため、このようなヒントは、ＡＳＲモジュール、ＮＬＵモジュール、および他の構成要素が後続のユーザーの発話を処理するのを支援することができる。
【００１４】
ＴＴＳモジュールは次に、ユーザーのタスク一覧のオーディオ提示を準備し得る。加えて、ユーザーデバイスおよび音声サービスが、タスク一覧のどの要素が所与の時間に提示されているのかを容易に判定できるように、一覧の各要素に関するデータを、オーディオ提示に埋め込むまたはそれに関連付けることができる。例えば、マーカー（例えば、文脈情報と併せて識別子を含むマーカー）をデータストリームに挿入して一覧の要素１の開始を示してもよく、同時に、第２のマーカーを挿入して要素１の終了または要素２の開始などを示してもよい。一部の実施形態では、マーカーは、オーディオデータストリームに含まれるか、他の何らかの方法で要素と関連付けられてもよい。例えば、別個のデータストリームをマーカーに対して創出することができ、２つのストリーム（例えば、オーディオに対して１つのストリーム、マーカーに対して第２のストリーム）を同期するか、あるいは相互参照して、オーディオストリームの特定の部分に対応するマーカーを容易に判定できるようにしてもよい。
【００１５】
オーディオおよびマーカーを含むデータストリームは、オーディオをユーザーに提示するクライアントデバイスに送信され得る。一覧要素、またはオーディオの他の何らかの部分が提示されるとき、対応するマーカーを音声サービスに送信し返して、それらが提示されたときにどの部分が提示されたのかなどを音声サービスが知り得るようにすることができる。例えば、ユーザーデバイスは、音声サービスへの上流接続を確立または維持し得る。オーディオの部分に対応するマーカー（例えば、オーディオ中の項目または要素の識別子）は、対応するオーディオ部分が提示されるときに音声サービスに送信され得る。一部の実施形態では、各要素の提示の開始時間および終了時間が、マーカーと共に、またはマーカーに加えて、送信されてもよい。ユーザーのタスク一覧の提示中のユーザーの発話も、ユーザーがそれらを発声するときに、音声サービスに送信されてもよい。音声サービスがマーカーを受信したため、要素が提示される間、またはその直後に、要素に関するユーザーの発話が受信される可能性が高いという仮定に基づいて、発話が適用される可能性の高い要素または複数の要素がどれかを判定することができる。したがって、音声サービスは、以前に創出されたヒントを、最後に受信されたマーカー、または発話が適用される要素を示す可能性が高いマーカーを含むように更新することができる。一部の実施形態では、ユーザーの発話の開始と各マーカーの受信との間の時間などの時間情報が、ヒントに含まれてもよい。全一覧およびマーカーを含むようになったヒントは、ＮＬＵモジュールに提供され得、ＮＬＵモジュールがユーザーの意図をより正確に判定できるようにし得る。
【００１６】
例えば、タスク一覧の最初の２つの項目のオーディオがユーザーに提示され得る（例えば、「食料品の買出しに行く」、「支払い」）。各項目の識別子または他のマーカー（例えば、「項目１」、「項目２」）は、オーディオの再生中に、それらが遭遇するときまたは対応する要素がクライアントデバイスの提示モジュールによって提示されるときに、音声サービスに送信され得る。タスク「支払い」に対するオーディオが提示された直後に、ユーザーは「それは終わった」と発言することができる。ユーザーの発話のオーディオは、一部の場合にはユーザーが発声しているときに、音声サービスに送信され得る。音声サービスでは、それはユーザーの発話（本実施例では「支払い」）の前または発話中に提示された項目に対応する、音声サービスが受信した最後の識別子に対するヒントが更新または創出され得る。ユーザーの発話の音訳、およびタスク一覧と識別子「項目２」とを含むヒントを使用して、ＮＬＵモジュールは、発話からの語句「それ」がタスク一覧の２つ目の項目（「支払い」）に言及していることを判定することができる。加えて、ＮＬＵモジュールは、単語「終わった」が、タスクが終了したことを示すことを判定し得る。その結果、アプリケーション（例えばタスク一覧アプリケーション）を実行または利用して、ユーザーのタスク一覧の２つ目の項目を完了としてマークすることができる。
【００１７】
一部の場合、ユーザーは、「それら全部を完了とマークする」または「最初の２つは終わった」など、２つ以上の要素に言及してもよい。ヒントを使用して、ＮＬＵは、ユーザーがどの項目に言及しているのか、およびユーザーがどの動作を実行したがっているのかを、上記のものに類似の形で判定することができる。例えば、ＮＬＵは、生成された初期のヒントから全タスク一覧にアクセスを有するため、ＮＬＵは、どの要素が「最初の２つ」に対応するのか、および語句「終わった」が、ユーザーが最初の２つの要素の各々を完了としてマークしたいことを意味すると判定し得る。
【００１８】
音声サービスは、ユーザーが口語コマンドを発したときに提示されていた要素ではなく、以前の要素のための識別子上の特定の要素に対するヒントを基にし得る。例えば、ユーザーは、項目に対するＴＴＳオーディオの再生が終了するまで、および一部の場合には、後続の項目に対するＴＴＳオーディオが開始されるまで、項目を完了とマークするための口語コマンドを発しなくてもよい。そのようなシナリオは、例えば、項目に対するＴＴＳオーディオが非常に短く（例えば「支払い」）、ユーザーが次の項目に対するオーディオが再生される前に口語コマンドを発するかを判断する時間がないときに、起こり得る。そのような場合には、新たな識別子に遭遇してから経過した時間を、クライアントデバイスによって、または音声サービスによって、追跡してもよい。ユーザーが、新たな識別子に遭遇した後の閾値期間（例えば、１００ミリ秒、５００ミリ秒など）内に発話を開始する場合、音声サービスは、直近に遭遇した識別子ではなく以前の識別子に基づいてヒントを生成し得る。
【００１９】
一部の実施形態では、クライアントデバイスは、クライアントデバイスでのＴＴＳ提示の再生中を通して、音声サービスへの上流オーディオ接続を確立または維持しない。代わりに、クライアントデバイスは、送るユーザーの発話がある場合に、データを音声サービスに送信するのみである。そのような場合には、クライアントデバイスは、どの識別子に遭遇したのか、およびいつそれらに遭遇したのかを追跡することができる。クライアントデバイスはその後、ユーザーが発話をするときに、直近に遭遇した識別子および時間情報を音声サービスに送り得る。音声サービスは、その後もまだ識別子に関するヒントを生成および使用することができる。
【００２０】
一部の実施形態では、ユーザーは、１種類のオーディオコンテンツを消費しながら、他のコンテンツのＴＴＳ提示も聞くことができる。例えば、ユーザーは、ユーザーのメールメッセージのＴＴＳ提示を聞きながら、曲を聞いていてもよい。クライアントデバイスは、音声サービスに、ＴＴＳ提示の特定のメッセージを識別するデータに加えて、再生されている特定の曲を識別するデータを送信し得る。ユーザーが口語コマンドを発するとき、音声サービスは、発話が発声されるときにユーザーデバイス上で動作中の両方のオーディオプログラムを示す、複数のヒントまたは単独の複合ヒントを創出することができる。音声サービスのＮＬＵモジュールがユーザーの発話（例えば「この曲の名は何か」）を処理するときには、動作中のオーディオ提示の各々が検討され得る。本実施例では、ＮＬＵは、同じく提示されているメールメッセージが音楽に関係しない場合は特に、発話が、再生されている曲に関係することを判定することができる。ユーザーの発話が「次のメッセージ」である場合、ＮＬＵは、発話が音楽ではなく電子メールメッセージの提示に関係することを判定することができ、アプリケーションを実行して、適宜１つ以上の動作を行い得る（例えば、次のメッセージを検索し、メッセージのＴＴＳ提示をユーザーデバイスに送らせる）。
【００２１】
一部の実施形態では、音声サービスは、上記のように、ＮＬＵモジュールまたはヒントの支援なくユーザーの発話を処理してもよい。それどころか、アプリケーションまたは他の何らかのモジュールは、発話を処理するときに、発話の部分をマーカーと相関させることができる。例えば、ＡＳＲモジュールは、ＴＴＳ提示と共にクライアントデバイスに送られて、その後ユーザーが発声するときに音声処理システムに返された埋め込みマーカーと共に、結果（１−ｂｅｓｔ、Ｎ−ｂｅｓｔ、または格子）を返してもよい。そのような場合には、アプリケーションは、ＴＴＳ提示のどの部分（複数可）にユーザーの発話が適用されるのかを、ＮＬＵモジュールの支援なしに判定することができる。
【００２２】
分散ＡＳＲシステム環境
オーディオコンテンツ識別子を生成および使用するためのプロセスの実施形態を詳細に説明する前に、いくつかの事例的な対話、およびプロセスが実装され得る例示的な環境を説明する。図１は、音声サービス１００、クライアントデバイス１０２、およびユーザー２００の間の事例的な対話を解説する。音声サービス１００は、携帯電話ネットワークまたはインターネットなどの通信ネットワークを介してクライアントデバイス１０２と通信するネットワーク対応システムであり得る。ユーザー２００は、クライアントデバイスを使用して、情報を取得するか、あるいはコンテンツを消費することができる。例えば、２００は、上記の通り、クライアントデバイス１０２にアクセスして、ユーザー２００のタスク一覧を聞くことができる。
【００２３】
音声サービス１００は、（Ａ）で、ユーザー２００のタスク一覧のＴＴＳ提示を生成し得る。タスク一覧中の要素の各々に対応する合成された音声に加えて、クライアントデバイス１０２に送信されるデータストリームは、概して一覧などに対する、要素の各々のための識別子を含むことができる。図１に見られる通り、データストリームは、合成された音声の各部分間に識別子を含むことができる。例えば、「要素１を開始」および「要素１を終了」識別子は、タスク一覧の要素１に対するオーディオを取り囲み得る。一部の場合には、開始および終了識別子の両方ではなく、要素の開始、要素の終了、または要素間の移行を表す、１つの識別子のみがあってもよい。
【００２４】
一部の実施形態では、識別子は、同一のデータストリーム内か別個のデータストリームにおいてかのどちらかで、オーディオから分離して送信され得る。例えば、Ｍａｔｒｏｓｋａ、Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ−４  Ｐａｒｔ１４（「ＭＰ４」）、またはＯｇｇファイルフォーマットなどの、オーディオデータとメタデータとの両方を含むことができるコンテナファイルフォーマットを使用して、オーディオデータと識別子データとを、単独のデータストリームの別個の部分として送信し得る。そのような場合には、識別子データは、ポインタ、識別子が適用される時点などの使用によって、オーディオデータの特定の部分と関連付けられることができる。別の実施例としては、オーディオ提示は、任意の適切にフォーマットされたオーディオストリームとして送信され得、一方で識別子は、別個の物理または論理データストリーム（例えば、オーディオと並行して、またはオーディオで補間された）において送信されて、クライアントデバイス１０２が各識別子をオーディオストリームの対応する部分と関連付けるようにし得る。そのような場合には、識別子データは、明示的に（例えば、識別子が適用されるオーディオ提示内の特定の時点を特定することにより）か黙示的に（例えば、同期送信を通して）かのどちらかで、オーディオ提示の特定の部分と関連付けられ得る。
【００２５】
一部の実施形態では、オーディオ提示の個々の要素は、単独の連続的データストリームの一部ではなく、離散的送信として送信されてもよい。例えば、タスク一覧の第１の要素は、第２の要素などから分離した独立型オーディオ送信として送信され得る。そのような場合には、識別子は、上記の手法のうちの任意のものを使用して、オーディオデータと共に、またはオーディオデータと並行して、送信され得る。
【００２６】
クライアントデバイス１０２は、（Ｂ）でオーディオ提示を再生することができる。オーディオ提示の再生に加えて、クライアントデバイス１０２は、現在提示されている部分または要素のための識別子を保存して、ユーザーの発話が受信される場合に、識別子を音声サービス１００に送信できるようにし得る。例えば、オーディオ提示は、一覧（例えば、リマインダ、タスク、メッセージ、検索結果など）などの、任意の数の個々の要素または他の部分を含んでもよい。各要素が提示され、識別子に遭遇するとき、識別子は記憶されて、ユーザー２００が声によるコマンドを発する場合に、識別子が音声サービス１００に送信されるようにする。
【００２７】
ユーザー２００は、（Ｃ）で、タスクまたはリマインダの一覧が提示される場合には「それは終わった」、メッセージまたは他の項目の一覧が提示される場合には「それを削除する」、または検索結果の一覧が提示される場合には「そこに行く」などといった口語コマンドを発することができる。発話の受信の際に、クライアントデバイス１０２は、（Ｄ）で、記憶された識別子にアクセスし、ユーザーの発話と識別子（または、要素を示すために複数の識別子が使用される場合は複数の識別子）との両方を送信することができる。図１に見られる通り、クライアントデバイス１０２から音声サービス１００への送信は、音声サービス１００から本来受信されたものと同一の識別子、および要素が提示されたときにユーザー２００が発声したユーザーの発話に関するオーディオまたは他のデータを含み得る。
【００２８】
一部の場合には、音声サービス１００への上流接続が確立または維持され得、各識別子（またはそのサブセット）は、オーディオの対応する部分が提示されるとき、または識別子に遭遇するときに、音声サービス１００に送信され得る。例えば、音声サービス１００から最初に受信した各識別子は、対応する要素の提示前または提示中に、音声サービス１００に返されてもよい。図１中の音声サービス１００から受信された例示的なデータストリームを使用して、再生中に音声サービス１００に返されたデータストリームは、ユーザー２００の発話が送信される前に、「一覧を開始」、「要素１を開始」、「要素１を終了」、および「要素２を開始」識別子を含むことができる。
【００２９】
（Ｅ）で、音声サービス１００は、クライアントデバイス１０２から受信したデータを処理して、ユーザー２００が何を発言したのか、ユーザー２００が開始を望むコマンドまたは他の動作は何か、および発話をしたときにユーザー２００が言及していた要素はどれなのかを判定することができる。以下で詳細に説明する通り、音声サービス１００は、クライアントデバイス１０２から返される識別子（複数可）を使用して、ＮＬＵモジュールのためにヒントを生成することができる。ＮＬＵモジュールは、ユーザーの意図を判定するために、そのヒント、および一部の場合には他のヒントも使用し得る。
【００３０】
次に図２Ａおよび２Ｂを見ると、クライアントデバイス１０２、ネットワーク１２０、および音声サービス１００を含む、事例的なネットワーク環境が示される。音声サービス１００は、オーケストレータ１０４、ＴＴＳモジュール１０６、ＡＳＲモジュール１０８、ＮＬＵモジュール１１０、データストア１１２、および１つ以上のアプリケーション１１４などの、任意の数のモジュールおよび構成要素を含み得る。
【００３１】
クライアントデバイス１０２は、多種多様な電子デバイスに対応することができる。一部の実施形態では、クライアントデバイス１０２は、１つ以上のプロセッサ、およびプロセッサが実行するソフトウェアアプリケーションを含み得るメモリを含む、モバイルデバイスであってもよい。クライアントデバイス１０２は、オーディオコンテンツを提示するための、もしくはオーディオコンテンツの提示を促進するための、スピーカーまたは他のオーディオ出力構成要素を含むことができる。加えて、クライアントデバイス１０２は、音声認識をかける音声入力を受容するための、マイクロフォンまたは他のオーディオ入力構成要素を含んでもよい。事例的には、クライアントデバイス１０２は、携帯電話、パーソナルデジタルアシスタント（「ＰＤＡ」）、携帯ゲームデバイス、メディアプレイヤー、電子書籍リーダー、タブレットコンピュータ、ラップトップコンピュータなどであり得る。クライアントデバイス１０２のソフトウェアは、無線通信ネットワークを介した通信、または他のコンピューティングデバイスとの直接の通信を確立するための構成要素を含んでもよい。
【００３２】
音声サービス１００は、通信ネットワークを介して通信するように構成される任意のコンピューティングシステムであることができる。例えば、音声サービス１００は、任意の数のサーバーコンピューティングデバイス、デスクトップコンピューティングデバイス、メインフレームコンピュータなどであり得る。一部の実施形態では、音声サービス１００は、発話上で音声認識を行うように構成されたアプリケーションサーバーコンピューティングデバイス、ならびに記録および音声認識モデルを記憶するように構成されたデータベースサーバーコンピューティングデバイスなどの、物理的または論理的にグループ化されたいくつかのデバイスを含んでもよい。
【００３３】
一部の実施形態では、音声サービス１００は、単独のデバイス上で組み合わされた種々のモジュールおよび構成要素、単独のモジュールまたは構成要素の複数のインスタンスなどを含むことができる。例えば、音声サービス１００は、別個のオーケストレータ１０４サーバー、ＴＴＳモジュール１０６で構成されたサーバーまたはサーバーの群、ＡＳＲ１０８、ＮＬＵ１１０、およびアプリケーション１１４モジュールで構成されたサーバーまたはサーバーの群、ならびにデータストア１１２として働くように構成されたサーバーまたはサーバーの群を含んでもよい。マルチデバイスの実装では、音声サービス１００の種々のデバイスは、ローカルエリアネットワーク（「ＬＡＮ」）または広域ネットワーク「（ＷＡＮ）」として構成された企業または大学ネットワークなどの、内部通信ネットワークを介して通信し得る。一部の場合には、音声サービス１００のデバイスは、インターネット、または内部ネットワークと外部ネットワークとの組み合わせなどの、外部ネットワークを通じて通信してもよい。
【００３４】
一部の実施形態では、音声サービス１００が提供する機能およびサービスは、通信ネットワーク１２０を介して消費可能なウェブサービスとして実装されてもよい。更なる実施形態では、音声サービス１００は、ホスト型コンピューティング環境中に実装されるもう１つの仮想マシンによって提供され得る。ホスト型コンピューティング環境は、急速にプロビジョニングされ、公開された、１つ以上のコンピューティング資源を含むことができ、コンピューティング資源は、コンピューティングデバイス、ネットワークデバイス、および／または記憶デバイスを含み得る。ホスト型コンピューティング環境はまた、クラウドコンピューティング環境とも言及され得る。
【００３５】
ネットワーク１２０は、インターネットなどの、種々の個別の団体によって運営されている可能性のある、リンクされたネットワークのうちの公的にアクセス可能なネットワークであり得る。他の実施形態では、ネットワーク１２０は、各々インターネットへのおよび／またはインターネットからのアクセスを持つ、プライベートネットワーク、パーソナルエリアネットワーク（「ＰＡＮ」）、ＬＡＮ、ＷＡＮ、ケーブルネットワーク、衛星ネットワークなど、またはそれらの何らかの組み合わせを含んでもよい。例えば、音声サービス１００のデバイスは、単独のデータセンター内に位置することができ、かつ上記の通りにプライベートネットワークを介して通信し得る。クライアントデバイス１０２は、インターネットを介して音声サービス１００と通信することができる。クライアントデバイス１０２は、有線もしくはＷｉＦｉ接続を介して、または携帯電話ネットワーク（例えば、ロングタームエボリューションまたはＬＴＥネットワーク）を介して、インターネットにアクセスすることができる。
【００３６】
図２Ａを参照すると、クライアントデバイス１０２は、上記の通りに、コンテンツの提示を要求し得る。要求は、ネットワーク１２０を介して音声サービス１００に送信されるユーザーの発話であり得る。オーケストレータ１０４は、要求をＡＳＲモジュール１０８に届けて、音訳へと処理することができる。音訳はその後、ＮＬＵモジュール１１０に提供されて、要求の詳細が判定され、アプリケーション１１４を実行あるいは利用して、要求が満たされ得る。一部の実施形態では、音声サービス１００は、ユーザーのタスク一覧を管理するためのアプリケーション、ユーザーのリマインダを管理するための別個のアプリケーション、商品に対する買物検索を管理するための別個のアプリケーションなどの、複数のアプリケーション１１４を含んでもよい。要求に対する適切なアプリケーション１１４は、ＮＬＵモジュール１１０が判定するユーザーの意図に基づいて選択され得る。例えば、ユーザーが、ユーザーのタスク一覧を聞くことを要求した場合は、タスク一覧アプリケーション１１４が実行され得る。
【００３７】
アプリケーション１１４またはオーケストレータ１０４は、今後の発話が、発話がされたときに提示されるコンテンツを参照して処理され得るように、要求されたコンテンツを含むまたはそれに言及するヒントを生成することができる。アプリケーション１１４は、要求されたコンテンツをデータストア１１２から検索し、オーケストレータ１０４を介して、ＴＴＳモジュール１０６を利用してコンテンツのオーディオ提示を生成することができる。ＴＴＳモジュール１０６、オーケストレータ１０４、または音声サービス１００の他の何らかのモジュールもしくは構成要素はまた、オーディオ提示の種々の部分もしくは要素のための識別子を生成または取得し、オーディオおよび識別子を含む、クライアントデバイス１０２への送信を準備し得る。
【００３８】
次に図２Ｂを参照すると、クライアントデバイス１０２は、ユーザーにコンテンツを提示し得る。クライアントデバイス１０２は、音声サービス１００に戻るオープンコネクションを確立または維持し得ることで、ユーザーが発話をするときに、発話が、接続の確立に通常関連付けられる遅延なしに、即座に音声サービス１００に送信されるようにし得る。一部の実施形態では、クライアントデバイス１０２が捕捉した実質的にリアルタイムのデータのストリームが音声サービス１００に送信され得ることで、クライアントデバイス１０２が、いつユーザーが口語コマンドまたは他の発話を発声しているのかを判定する必要がないようにし得る。オーディオに加えて、識別子が、音声サービス１００から受信されるデータストリームにおいてそれらに遭遇するときに、またはオーディオの対応する要素または部分がユーザーに提示されるときに、音声サービス１００に送信され得る。
【００３９】
クライアントデバイス１０２のユーザーは、発話がされたときにクライアントデバイス１０２上に提示された要素または部分の識別子と併せて音声サービス１００に送信される口語コマンドを発してもよい。音声サービス１００は、クライアントデバイス１０２からのユーザーの発話を含む識別子（複数可）およびオーディオを受信することができる。オーケストレータ１０４は、ユーザーの発話を含むオーディオを受信する前に受信した直近の識別子などの、識別子のうちの１つ以上に基づいて、ヒントを準備することができる。例えば、オーケストレータ１０４は、上記の通りに、オーディオ提示の生成と連動して準備されたヒントを更新し得る。発話およびヒントは、音訳への処理のために、ＡＳＲモジュール１０８に提供され得る。発話がされたときにユーザーに提示されたコンテンツに類似した、あるいはそれに関連した言葉を発話が含むであろう可能性が増大し得るため、ＡＳＲモジュール１０８は、ヒントを使用して、どの単語が発話に含まれ得るかに関するその検索空間を狭めることができる。
【００４０】
その後、ＡＳＲが生成した音訳（または可能性のある音訳のＮ−ｂｅｓｔ一覧、もしくはＡＳＲ結果の格子）が、ヒントと併せてＮＬＵモジュール１１０に提供され得る。発話の音訳は、対応する先行詞を伴わない代名詞および他の照応を含み得る。ＮＬＵモジュール１１０が、言及されている主語または目的語を判定するのは困難であり得る。ヒントを使用することによって、ＮＬＵモジュール１１０は、ユーザーが発話をしたときにユーザーに提示された、特定のコンテンツ項目およびある特定の要素または部分にアクセスすることができる。したがって、ＮＬＵモジュール１１０は、発話の対象をより多大な自信を持って判定し、それに応じて発話を処理して、ユーザーの意図を判定することができる。ＮＬＵモジュール１１０が判定したユーザーの意図に基づき、適切なアプリケーション１１４を実行または利用して、発話への応答を生成するか、または何らかの動作を行い得る。
【００４１】
識別子の生成および使用を管理するためのプロセス
次に図３を参照しながら、発話からユーザーの意図を判定するために識別子の生成および使用を管理するための見本のプロセス３００を説明する。有利にも、音声サービス１００は、プロセス３００を使用して、識別子をオーディオコンテンツの要素または他の部分と関連付けることができる。音声サービス１００はその後、それらの識別子を使用して、オーディオコンテンツの再生中にユーザーが発話を提出するときに、ユーザーがどの要素またはコンテンツ部分に言及しているのかを判定し得る。
【００４２】
プロセス３００がブロック３０２で開始される。プロセス３００は、音声認識セッションの開始の際に自動的に開始され得る。プロセス３００は、オーケストレータ１０４などの音声サービス１００のコンピューティングシステムの、１つ以上のディスクドライブなどのコンピュータ可読媒体上に記憶された実行可能なプログラム命令一式に埋め込まれ得る。プロセス３００が開始されるとき、実行可能なプログラム命令は、ＲＡＭなどのメモリにロードされ、コンピューティングシステムの１つ以上のプロセッサによって実行されることができる。
【００４３】
ブロック３０４で、音声サービス１００は、クライアントデバイス１０２から要求を受信することができる。上記の通り、要求は、タスク一覧、メッセージ受信箱などのコンテンツの再生のための口語コマンドであり得る。ブロック３０６では、音声サービス１００は、要求に応答するテキスト、および要求に関係する今後の処理のためのヒントを生成することができる。例えば、ＡＳＲモジュール１０８は、口語コマンドの有力な音訳のＮ−ｂｅｓｔ一覧を生成することができ、ＮＬＵモジュール１１０は、有力な音訳からユーザーの意図を判定することができる。ユーザーの意図に基づいて、アプリケーション１１４は、要求に応答するオーディオ提示のためのテキスト（例えば、項目の一覧）、および要求に関係する更なる処理のためのヒントを生成することができる。ヒントは、要求されたコンテンツを含む、またはそれに言及する。例えば、要求がユーザーのリマインダの一覧に対する場合、ヒントは、ユーザーのリマインダが提示されていることを示すように生成され得、一部の場合には、ヒントは、リマインダ一覧、または一覧に関するデータを含み得る。
【００４４】
ブロック３０８で、ＴＴＳモジュール１０６は、クライアントデバイス１０２上での再生のために、テキストからオーディオ提示を生成することができる。加えて、音声サービス１００のＴＴＳモジュール１０６または他の何らかの構成要素は、応答の個々の要素、項目、または他の部分に対応する識別子を生成することができる。一部の実施形態では、アプリケーション、または音声サービス１００から分離し得る他のモジュールもしくは構成要素は、プロセス３００中で使用される識別子または他のマーカーを生成し得る。
【００４５】
ブロック３１０で、オーケストレータ１０４は、ＴＴＳ提示および識別子をクライアントデバイス１０２に送信することができる。識別子は、ＴＴＳ提示のオーディオと共に単独のデータストリームに埋め込まれ得るか（例えば、オーディオと共にコンテナファイルまたはストリームフォーマットに含まれる）、または応答のオーディオ部分と並行して送信され得る。
【００４６】
判定ブロック３１２で、オーケストレータ１０４は、発話がクライアントデバイス１０２から受信されたのかを判定することができる。受信されていない場合、プロセス３００はブロック３１４に進み得、そこでオーケストレータ１０４がクライアントデバイス１０２から発話を受信するのを待つ。一部の場合には、識別子に関するデータは、クライアントデバイス１０２上での再生中に、識別子または対応する応答部分が遭遇または提示されるときに、受信されてもよい。クライアントデバイス１０２からの発話の受信に応答して、プロセス３００は、ブロック３１６に進み得る。
【００４７】
ブロック３１６で、オーケストレータ１０４（または他の何らかの構成要素）は、ユーザーの発話の直前などに、ユーザーの発話と共に受信された識別子を含むことなどによって、現在の要求のためのヒントを更新することができる。例えば、要素「２」に対する識別子、次いで要素「３」に対する識別子、その直後（例えば２５０ミリ秒後）にユーザーの発話が、オーケストレータ１０４によって受信され得る。オーケストレータ１０４は、後続の識別子（要素「３」）の受信と発話の受信との間の時間が閾値内である場合、発話が要素「２」に適用される可能性が高いことを示すヒントを生成または更新し得る。この場合、閾値が２５０ミリ秒未満であれば、オーケストレータ１０４は、要素「２」が、発話が適用される要素である可能性が最も高いことを示すヒントを生成し得る。しかしながら、閾値が２５０ミリ秒超である場合、オーケストレータ１０４は、発話が要素「３」に適用される可能性が最も高いことを示すヒントを生成または更新し得る。一部の場合には、ヒントは、ＮＬＵモジュール１１０が最も有力な要素を選択できるように、両方の要素を示す、および／または最後の識別子もしくは各識別子が受信された時間に関するデータを含むことができる。一部の場合には、ヒントは、それに対して識別子がこれまで受信されたコンテンツ項目の全ての要素を示し得る。一部の場合には、音声サービス１００のオーケストレータ１０４または他の何らかの構成要素は、発話が適用される要素またはコンテンツ部分を判定できなくてもよい。そのような場合には、プロンプトが生成され、ユーザーに送信されて、明確化を要求することができる。
【００４８】
ヒントは、プログラム的プロシージャコール（例えば、引数）を介して、プロセスを通過したメッセージを介して、データストア１１２に記憶されたおよびそこから検索されたデータ記録を介して、または、モジュール間、もしくはマルチデバイス実装においてはデバイス間でデータを送信するための任意の他の適切な手段を介して、音声サービス１００の種々のモジュールに提供され得る。
【００４９】
ブロック３１８で、ＡＳＲモジュール１０８は、発話オーディオを取得することができ、ヒントを使用して、発話の音訳または音訳のＮ−ｂｅｓｔ一覧を生成することができる。上記の通り、ヒントの使用は、ＡＳＲモジュール１０８のために検索空間を狭めることを手助けでき、それにより、それがより早いおよび／またはより正確な音訳を提供することを可能にする。
【００５０】
ブロック３２０で、ＮＬＵモジュール１１０は、ヒントを使用して、ユーザーの発話の意味を判定し得る。例えば、ユーザーは、一覧要素を追加、編集、または削除する、タスクまたはリマインダを完了としてマークする、商品検索に戻った物品を購入するなどのために、口語コマンドを発し得た。しかしながら、発話は、コマンドがどの要素に適用されるのかという具体性を持って示さなかった可能性がある。ヒントを使用して、ＮＬＵモジュール１１０は、ユーザーが口語コマンドを発した間またはそのすぐ後に、提示された特定の要素を分析することができる。コマンドが、特定の要素の文脈において意味を成す（例えば、商品が提示される間に「それを買う」コマンドが発せられた）場合、ＮＬＵモジュール１１０は、特定の要素に基づいてユーザーの意図を判定し得る。
【００５１】
ＮＬＵモジュール１１０によって判定された通りのユーザーの意図に基づいて、アプリケーション１１４がブロック３２２で実行または利用されて、応答を生成するか、または動作を行い得る。ユーザーの意図が特定の要素の文脈において意味を成さない（例えば、ＮＬＵモジュール１１０はユーザーの意図が商品を購入することだと判定したが、「支払い」リマインダが提示された）場合には、オーケストレータ１０４またはアプリケーション１１４は、明確化プロンプトを生成し得るか、または明確化プロンプトを生成させクライアントデバイス１０２に送信させ得る。
【００５２】
上記の通り、一部の場合には、発話は、オーディオ提示の２つ以上の要素または部分に適用され得る。例えば、ユーザーは、曲のプレイリストと共に提示されるとき、「最初の２つを買う」または「それらを全て買う」という口語コマンドを発してもよい。そのような場合には、提示された最後の項目に関するヒントは、ブロック３０６で生成された、コンテンツ全体に関するヒントよりも重要性が低くてもよい。両方のヒントがＮＬＵモジュール１１０に提供され得るため、ＮＬＵモジュール１１０はそれでも、取るべき適切な動作を判定し得る。例えば、「それらを全て買う」コマンドは、単独の曲名に関する要素ヒントの文脈において意味を成さない可能性がある。そのような場合、ＮＬＵモジュール１１０は、コンテンツヒントを分析して、コマンドが動作可能であるかを判定し得る。本実施例では、コンテンツヒントが曲名のプレイリストを示す場合、コマンドは、ユーザーからの追加情報を要求せずに実際に動作可能であり得る。アプリケーション１１４は次に、プレイリスト中の各曲名を取得し、プレイリスト中の曲を購入する処理を開始することができる。
【００５３】
発話および識別子を送信するためのプロセス
次に図４を見ると、オーディオコンテンツを提示し、クライアントデバイス１０２上のコンテンツとのユーザー対話を処理するための見本のプロセス４００が説明される。有利にも、プロセス４００を使用して、クライアントデバイス１０２で受信されたデータから識別子を解析あるいは取得し、かつ現在提示されているコンテンツの部分に適用される識別子を音声サービス１００に送信し得る。ユーザーの発話が受信されるとき、それは音声サービス１００に送信されて、音声サービス１００が、ユーザーの発話が受信されたときにコンテンツのどの部分または要素が提示されたのかを判定することができるようにし得る。
【００５４】
プロセス４００がブロック４０２で開始される。プロセス４００は、クライアントデバイス１０２の電源を入れる際に、または口語コマンドを発することなどによるプロセス４００のユーザーによる開始の際に、自動的に開始され得る。プロセス４００は、クライアントデバイス１０２の、１つ以上のディスクドライブなどのコンピュータ可読媒体上に記憶される実行可能なプログラム命令一式に埋め込まれ得る。プロセス４００が開始されるとき、実行可能なプログラム命令は、ＲＡＭなどのメモリにロードされ、コンピューティングシステムの１つ以上のプロセッサによって実行されることができる。
【００５５】
ブロック４０４で、クライアントデバイス１０２は、ユーザーから受信した発話を、音声サービス１００に送信することができる。一実施例では、発話は、口語コマンドを含んでコンテンツのＴＴＳ提示を取得し得る。ブロック４０６では、要求されたオーディオコンテンツを受信することができる。オーディオコンテンツに加えて、コンテンツの要素または他の部分に関する識別子も受信することができる。上記の通り、識別子は、オーディオと共に単独のデータストリームに含まれ得るか、またはそれらは別個に受信されてもよい。一部の実施形態では、コンテンツ項目は、ユーザーによる口語要求なしに受信される。例えば、ユーザーは、タッチスクリーンまたはキー入力を使用して、コンテンツを要求してもよい。別の実施例では、リマインダは、いかなるユーザー対話もなくして、自動的にクライアントデバイスに送信されてもよい。
【００５６】
ブロック４０８で、クライアントデバイス１０２は、受信したオーディオを再生することができる。実質的に同時、またはその直前もしくは直後に、クライアントデバイス１０２は、オーディオストリームを音声サービス１００に送信し返し始めることができる。オーディオ提示がクライアントデバイス１０２上に提示されるのとほぼ同時に、オーディオが音声サービス１００に戻ることを開始することで、ユーザーの発話が、接続を開くことあるいはオーディオの音声サービス１００への移動を開始することに関連付けられるオーバーヘッドまたは遅延を伴うことなく実質的にリアルタイムで、音声サービス１００に送信されることを可能にする。
【００５７】
判定ブロック４１０で、クライアントデバイス１０２は、再生されているオーディオの要素または部分が、識別子に対応するか、または識別子と関連付けられるかを判定することができる。そうである場合、プロセス４００はブロック４１２に進むことができ、そこでクライアントデバイス１０２は、識別子を音声サービス１００に送信する。一部の場合には、クライアントデバイス１０２は、発話が受信されない限り、識別子を送信しない。そのような場合、識別子は、発話が受信されるか、または別の識別子が遭遇されるまで、一時的に記憶され得る（例えば、アプリケーション変数または一時的データストア中に）。
【００５８】
識別子が遭遇されない場合は、プロセス４００は判定ブロック４１４に進む。判定ブロック４１４で、クライアントデバイス１０２は、オーディオの再生が完了したかを判定することができる。していない場合、プロセス４００はブロック４０８に戻ることができ、そこで再生が継続する。再生が完了している場合は、プロセス４００は終了し得る。
【００５９】
発話が適用されるオーディオを識別するためのプロセス
図５は、発話が複数の動作中のオーディオ提示のうちの１つに適用されるときにクライアントデバイス１０２から受信されるユーザーの発話を処理するための見本のプロセス５００を解説する。有利にも、プロセス５００を使用して、クライアントデバイス１０２上で動作中の複数のオーディオ提示に関するデータを処理し得、かつオーディオ提示に関するヒントを生成し得る。音声サービス１００のＮＬＵモジュール１１０または他の何らかのモジュールもしくは構成要素は、ヒントを踏まえて発話を処理し、ユーザーが発話をしたときに、ユーザーがどのオーディオ提示に口語コマンドまたは他の口語対話が適用されることを意図したのかを判定することができる。
【００６０】
プロセス５００がブロック５０２で開始される。プロセス５００は、クライアントデバイス１０２による音声認識セッションの開始の際に、またはクライアントデバイス１０２からの発話の受信の際に、自動的に開始され得る。プロセス５００は、音声サービス１００と関連付けられたコンピューティングデバイスの、１つ以上のディスクドライブなどのコンピュータ可読媒体上に記憶された実行可能なプログラム命令一式に埋め込まれ得る。プロセス５００が開始されるとき、実行可能なプログラム命令は、ＲＡＭなどのメモリにロードされ、コンピューティングシステムの１つ以上のプロセッサによって実行されることができる。
【００６１】
ブロック５０４で、音声サービス１００は、クライアントデバイス１０２からユーザーの発話（または発話に関するデータ）を受信することができる。加えて、音声サービス１００は、発話がされたときに、クライアントデバイス１０２上で動作中のオーディオ提示に関するデータを受信することができる。例えば、クライアントデバイス１０２は、音楽を再生し、同時に、ＴＴＳ提示を再生することもできる。ユーザーの発話は、オーディオ提示のどちらにも適用され得る。どのオーディオ提示に発話が適用されるのかの判定を促進するために、クライアントデバイス１０２は、各オーディオ提示に関するデータをＳＲサーバー１００に送信し得る。データは、上に詳述の通り、オーディオ提示のうちの１つ以上の部分または要素と関連付けられた識別子を含み得る。そのような場合、データは、どの提示に識別子が適用されるのかも示すことができる。代替的に、データは、全体としてオーディオ提示を識別する一般データを含んでもよい。
【００６２】
一部の実施形態では、ＳＲサーバー１００は、どのオーディオ提示が現在クライアントデバイス１０２上で動作中なのかを、クライアントデバイス１０２からのデータを受信することなく知ることができる。例えば、ユーザーが、音声サービス１００に口語コマンドを発することによってオーディオ提示（例えば、音楽およびＴＴＳ提示）のどちらかまたは両方を開始した場合、音声サービス１００は、ユーザーが開始したオーディオ提示を識別するデータを維持し得る。
【００６３】
ブロック５０６で、音声サービス１００のオーケストレータ１０４または他の何らかのモジュールもしくは構成要素は、上記のヒントの生成に類似して、動作中の提示に関するデータから１つ以上のヒントを生成することができる。ブロック５０８で、発話およびヒントは、発話を処理して、音訳、または有力な音訳の格子もしくはＮ−ｂｅｓｔ一覧を生成するＡＳＲモジュール１０６に提供され得る。
【００６４】
ブロック５１０で、ＮＬＵモジュール１１０は、発話が適用される動作中の提示を識別あるいは判定することができる。例えば、音訳は、ユーザーが「その曲を買う」と発言したことを示し得る。ブロック５０６で生成された、あるいはＮＬＵモジュール１１０に提供されたヒントが、クライアントデバイス１０２上で動作中のオーディオ提示が曲の再生およびＴＴＳ提示（例えばタスク一覧）の再生を含むことを示す場合、ＮＬＵモジュール１１０は、ユーザーが、曲のオーディオ提示上に動作することを意図したと判定し得る。ＮＬＵモジュール１１０はその後、ヒントを更に調査して、どの曲がユーザーが発話をしたときに再生されていたのかに関する識別子を取得することができる。しかしながら、ブロック５０６で生成されたヒントが、代わりに、オーディオ提示が、曲の再生、および検索から返ってきた曲の一覧に関するＴＴＳ提示の再生を含むことを示す場合、ＮＬＵモジュール１１０は、発話の処理を完了するために追加情報を要求してもよい。そのような場合には、音声サービス１００は、どの提示または曲にユーザーが言及していたのかに関する、ユーザーへのプロンプトを生成し得る。
【００６５】
ブロック５１０で、アプリケーション１１４は、ヒント、およびＮＬＵモジュール１１０によるユーザーの発話の処理に基づいて、動作を行うか、または応答を生成することができる。曲の実施例に戻ると、アプリケーション１１４は、曲を購入するための動作を実行させることができる。
【００６６】
用語
実施形態により、本明細書に記載したプロセスまたはアルゴリズムのうちの任意のもののある特定の動作、事象、または機能は、異なる順序で行うこと、追加すること、統合すること、または完全に省略すること（例えば、記載した全ての操作または事象がアルゴリズムの実施に必要という訳ではない）ができる。更に、ある特定の実施形態では、操作または事象は、例えば、マルチスレッド処理、割り込み処理、複数のプロセッサ、もしくはプロセッサコアを通して、または他の並列アーキテクチャ上で、連続的ではなく同時に行うことができる。
【００６７】
本明細書に開示の実施形態に関連して記載する種々の事例的な論理ブロック、モジュール、ルーチン、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実装することができる。ハードウェアとソフトウェアとのこの互換性を明確に解説するために、種々の事例的な構成要素、ブロック、モジュール、およびステップを、概してそれらの機能性の観点から上で説明した。そのような機能性をハードウェアとして実装するかソフトウェアとして実装するかは、特定の適用およびシステム全体上に課される設計制約に依存する。記載の機能性は、各特定の適用に対して様々な方法で実装できるが、そのような実装の判断は、本開示の範囲からの逸脱を引きこすと解釈されるべきではない。
【００６８】
本明細書に開示の実施形態に関連して記載する方法、プロセス、ルーチン、またはアルゴリズムのステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、またはその２つの組み合わせにおいて具現化することができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または任意の他の形態の非一時的コンピュータ可読記憶媒体中に存在することができる。例示的な記憶媒体は、プロセッサが、記憶媒体から情報を読み込めるように、かつ記憶媒体に情報を書き込めるように、プロセッサに連結することができる。選択的に、記憶媒体は、プロセッサに統合することができる。プロセッサおよび記憶媒体は、ＡＳＩＣ中に存在することができる。ＡＳＩＣは、ユーザー端末中に存在することができる。選択的に、プロセッサおよび記憶媒体は、ユーザー端末中に離散的構成要素として存在することができる。
【００６９】
中でも「できる（ｃａｎ）」、「し得る（ｃｏｕｌｄ）」、「するかもしれない（ｍｉｇｈｔ）」、「してもよい」（ｍａｙ）、「例えば（ｅ．ｇ．）」などの、本明細書で使用する条件語は、他に指示のない限り、あるいは使用されるときの文脈内で理解されない限り、その特定の実施形態が、ある特定の機能、要素、および／またはステップを含むが、他の実施形態はそれらを含まないことを伝えるように概して意図される。故に、そのような条件語は、機能、要素、および／またはステップが、１つ以上の実施形態のために何としても必要とされること、または１つ以上の実施形態が、これらの機能、要素、および／もしくはステップが、含まれるか、もしくは任意の特定の実施形態において行われるかを、作成者の入力または催促の有無にかかわらず判定するための論理を必ず含むことを意味するとは、概して意図されない。用語「備える」、「含む」、「有する」などは、同義であり、包含的に、非制限的な形で使用され、かつ、追加的な要素、機能、動作、操作などを除外しない。また、用語「または」は、例えば一覧の要素を繋げるために使用されるときに、用語「または」が、一覧中の要素のうちの１つ、一部、または全てを意味するように、その包含的な意味で（その排他的な意味ではなく）使用される。
【００７０】
語句「Ｘ、Ｙ、およびＺのうちの少なくとも１つ」などの接続語は、別途指示のない限り、項目、用語などが、Ｘ、Ｙ、もしくはＺのどれか、またはそれらの組み合わせであり得ることを伝えるように、概して使用されるときの文脈で理解されるべきである。故に、そのような接続語は、ある特定の実施形態が、少なくとも１つのＸ、少なくとも１つのＹ、および少なくとも１つのＺが各々存在することを必要とすることを意味するとは、概して意図されない。
【００７１】
上の詳述により、種々の実施形態に適用される際の新規の機能を、示し、説明し、指摘したが、解説したデバイスまたはアルゴリズムの形態および詳細における種々の省略、置換、および変更が、本開示の趣旨から逸脱することなくなされ得ることが理解され得る。認識され得る通り、本明細書に記載の発明のある特定の実施形態は、一部の機能が他のものから分離して使用または実施され得るため、本明細書に記載の機能および利益の全ては提供しない形態内に具現化され得る。本明細書に開示のある特定の発明の範囲は、前述の説明によってというよりはむしろ、添付の特許請求の範囲によって示される。特許請求の範囲の等価の意味および範囲内に入る全ての変更は、それらの範囲内に包含されるべきである。
【００７２】
付記：
１．システムであって、
実行可能な命令を記憶する、コンピュータ可読メモリと、
前記コンピュータ可読メモリと通信する１つ以上のプロセッサであって、少なくとも、
一連の項目を含む、ユーザーに提示されるテキストを生成して、
前記テキストを使用してオーディオ提示を生成して、
複数の識別子を前記一連の項目と関連付けて、ここで前記一連の項目の各項目が、前記複数の識別子のうちの少なくとも１つの識別子と関連付けられ、
前記オーディオ提示および前記複数の識別子をクライアントデバイスに送信して、
前記クライアントデバイスから、
ユーザーの発話を含むオーディオデータ、および
前記複数の識別子のうちの第１の識別子を受信して、
前記ユーザーの発話上で音声認識を行い、音声認識結果を取得して、
前記一連の項目のうちの第１の項目を、前記第１の識別子および前記音声認識結果に少なくとも部分的に基づいて識別し、かつ
前記第１の項目に少なくとも部分的に基づいて動作を行うように、前記実行可能な命令によってプログラムされる、前記１つ以上プロセッサと、を備えるシステム。
２．前記一連の項目が、一連のリマインダ、タスク一覧上の一連の項目、または購入可能な一連の項目を含む、付記１に記載のシステム。
３．前記第１の識別子および前記オーディオデータが、単独のデータ送信において受信される、付記１に記載のシステム。
４．前記１つ以上のプロセッサが、
前記一連の項目を使用してヒントを生成し、かつ
前記ヒントを使用して前記第１の項目を識別するように、前記実行可能な命令によって更にプログラムされる、付記１に記載のシステム。
５．前記１つ以上のプロセッサが、少なくとも、
前記クライアントデバイスから、前記クライアントデバイス上に提示されている第２のオーディオ提示に関する情報を受信し、かつ
前記情報を使用して前記第１の項目を識別するように、前記実行可能な命令によって更にプログラムされる、付記１に記載のシステム。
６．コンピュータに実装される方法であって、
特定のコンピュータによって実行可能な命令で構成された１つ以上のコンピューティングデバイスの制御下で、
クライアントデバイスに、
第１の部分および第２の部分を含むオーディオ提示であって、前記第１の部分が第１の項目に対応し、前記第２の部分が第２の項目に対応する、オーディオ提示、
前記第１の項目に対応する第１のマーカー、ならびに
前記第２の項目に対応する第２のマーカーを送信することと、
前記クライアントデバイスから、
ユーザーの発話を含むオーディオデータ、および
前記第１のマーカーまたは前記第２のマーカーを含むマーカーデータを受信することと、
少なくとも前記マーカーデータまたは前記オーディオデータに基づいて、項目を選択することであって、前記選択された項目が前記第１の項目または前記第２の項目を含む、選択することと、を含む、方法。
７．前記マーカーデータが、前記第２のマーカーを含み、前記コンピュータに実装される方法が、
前記第２の部分の提示が開始された第１の時間と、前記ユーザーの発話が開始された第２の時間との間の時間を判定することを更に含む、付記６に記載のコンピュータに実装される方法。
８．前記時間が、所定の閾値未満であり、前記関係する部分を識別することが、前記第１の部分を、前記時間に少なくとも部分的に基づいて識別することを含む、付記７に記載のコンピュータに実装される方法。
９．前記時間が、所定の閾値を超過し、前記関係する部分を識別することが、前記第２の部分を、前記時間に少なくとも部分的に基づいて識別することを含む、付記７に記載のコンピュータに実装される方法。
１０．前記マーカーデータが、前記ユーザーの発話が開始されたときに前記クライアントデバイス上に提示されている、前記オーディオ提示に対応する第１の提示識別子、および第２のオーディオ提示に対応する第２の提示識別子を更に含む、付記６に記載のコンピュータに実装される方法。
１１．前記ユーザーの発話が前記オーディオ提示に関係することを、前記マーカーデータおよび前記ユーザーの発話に少なくとも部分的に基づいて判定することを更に含む、付記１０に記載のコンピュータに実装される方法。
１２．前記オーディオ提示が、第１のデータストリームにおいて送信され、前記第１のマーカーおよび第２のマーカーが、前記第１のデータストリームまたは第２のデータストリームのうちの１つにおいて送信される、付記６に記載のコンピュータに実装される方法。
１３．前記第１の部分および前記第２の部分が、別個の送信において送信される、付記６に記載のコンピュータに実装される方法。
１４．前記マーカーデータが、前記オーディオ提示のどの部分が、前記発話が開始されたときに前記クライアントデバイス上に提示されていたのかを示す、付記６に記載のコンピュータに実装される方法。
１５．前記選択された項目に少なくとも部分的に基づいて動作を行うことを更に含む、付記６に記載のコンピュータに実装される方法。
１６．非一時的コンピュータ可読媒体であって、プロセッサによって実行されるときに、コンピューティングデバイスに、
クライアントデバイスに、
第１の部分および第２の部分を含むオーディオ提示であって、前記第１の部分が第１の項目に対応し、前記第２の部分が第２の項目に対応する、オーディオ提示、
前記第１の項目に対応する第１のマーカー、ならびに
前記第２の項目に対応する第２のマーカーを送信することと、
前記クライアントデバイスから、
ユーザーの発話を含むオーディオデータ、および
前記第１のマーカーまたは前記第２のマーカーを含むマーカーデータを受信することと、
少なくとも前記マーカーデータまたは前記オーディオデータに基づいて、項目を選択することであって、前記選択された項目が前記第１の項目または前記第２の項目を含む、選択することと、を含むプロセスを行わせる実行可能なコードを含む、非一時的コンピュータ可読媒体。
１７．前記マーカーデータおよび前記オーディオデータが、単独のデータストリームにおいて受信される、付記１６に記載の非一時的コンピュータ可読媒体。
１８．前記マーカーデータおよび前記オーディオデータが、別個のデータ送信において受信される、付記１６に記載の非一時的コンピュータ可読媒体。
１９．前記プロセスが、
前記第１の項目および前記第２の項目を使用してヒントを生成することと、
前記ヒントを使用して前記適用可能な項目を選択することと、を更に含む、付記１６に記載の非一時的コンピュータ可読媒体。
２０．前記プロセスが、
前記マーカーデータを使用してヒントを生成することと、
前記ヒントを使用して前記適用可能な項目を選択することと、を更に含む、付記１６に記載の非一時的コンピュータ可読媒体。
２１．前記プロセスが、
前記クライアントデバイスから、前記クライアントデバイス上に提示されている第２のオーディオ提示に関する情報を受信することと、
前記情報を使用して前記適用可能な項目を選択することと、を更に含む、付記１６に記載の非一時的コンピュータ可読媒体。
２２．前記オーディオ提示が、第１のデータストリームにおいて送信され、前記第１のマーカーおよび第２のマーカーが、前記第１のデータストリームまたは第２のデータストリームのうちの１つにおいて送信される、付記１６に記載の非一時的コンピュータ可読媒体。
２３．前記マーカーデータが、前記オーディオ提示のどの部分が、前記発話が開始されたときに前記クライアントデバイス上に提示されていたのかを示す、付記１６に記載の非一時的コンピュータ可読媒体。
２４．前記プロセスが、
前記選択された項目に少なくとも部分的に基づいて動作を行うことを更に含む、付記１６に記載の非一時的コンピュータ可読媒体。
２５．非一時的コンピュータ可読媒体であって、プロセッサによって実行されるときに、コンピューティングデバイスに、
音声処理システムから、
第１の項目に対応する第１の部分および第２の項目に対応する第２の部分を含むオーディオ提示、
前記第１の項目に対応する第１のマーカー、ならびに
前記第２の項目に対応する第２のマーカーを受信することと、
前記オーディオ提示を提示することと、
前記音声処理システムに、
前記コンピューティングデバイスのオーディオ入力構成要素を介して受信されるオーディオデータ、および
前記第１のマーカーまたは前記第２のマーカーのうちの少なくとも１つを含むマーカーデータを送信することと、を含むプロセスを行わせる実行可能なコードを含む、非一時的コンピュータ可読媒体。
２６．前記オーディオ提示が、第１のデータストリームにおいて受信され、前記第１のマーカーおよび第２のマーカーが、前記第１のデータストリームまたは第２のデータストリームのうちの１つにおいて受信される、付記２５に記載の非一時的コンピュータ可読媒体。
２７．前記マーカーデータおよび前記オーディオデータが、単独のデータストリームにおいて送信される、付記２５に記載の非一時的コンピュータ可読媒体。
２８．前記マーカーデータおよび前記オーディオデータが、別個のデータ送信において送信される、付記２５に記載の非一時的コンピュータ可読媒体。
２９．前記プロセスが、
前記オーディオ提示を提示することと実質的に同時に、前記音声処理システムへのデータストリームを開始することを更に含み、前記データストリームが、前記オーディオデータを含む、付記２５に記載の非一時的コンピュータ可読媒体。
３０．前記マーカーデータが前記第１のマーカーを含み、前記マーカーデータが前記第１の項目の提示と実質的に同時に送信される、付記２５に記載の非一時的コンピュータ可読媒体。
３１．前記プロセスが、
前記オーディオ提示の提示と実質的に同時に、第２のオーディオ提示を提示することと、
前記オーディオ提示に対応する第１の提示識別子、および第２のオーディオ提示に対応する第２の提示識別子を、前記音声処理システムに送信することと、を更に含む、付記２５に記載の非一時的コンピュータ可読媒体。
３２．前記第１のマーカーが第１の識別子を含み、前記第２のマーカーが第２の識別子を含む、付記２５に記載の非一時的コンピュータ可読媒体。
【図１】
0006272901.tif 000002
【図２Ａ】
0006272901.tif 000003
【図２Ｂ】
0006272901.tif 000004
【図３】
0006272901.tif 000005
【図４】
0006272901.tif 000006
【図５】
0006272901.tif 000007