(57)【特許請求の範囲】
【請求項１】
アクティビティを行うためにオーディオデバイスにコマンドを提供することであり、前記コマンドは複数のアプリケーションの中から応答可能なアプリケーションを識別する、前記コマンドを提供することと、
前記オーディオデバイスにより伝えられる音に関するイベントメッセージを前記オーディオデバイスから受信することであり、前記イベントメッセージは前記応答可能なアプリケーションを識別する、前記イベントメッセージを受信することと、
前記音が前記オーディオデバイスを通じたユーザと前記応答可能なアプリケーションとのユーザ対話の一部であることを前記イベントメッセージが示す場合、前記応答可能なアプリケーションを１次的にアクティブであると指定することと、
前記音が前記ユーザ対話の一部であることを前記イベントメッセージが示さない場合、前記応答可能なアプリケーションを２次的にアクティブであると指定することと、
前記オーディオデバイスにより取得される音声を受信することと、
前記音声の意図を決定することと、
前記複数のアプリケーションの中に前記意図に応答できる１次的にアクティブなアプリケーションがある場合、前記１次的にアクティブなアプリケーションに前記意図に応答するよう要求することと、
前記１次的にアクティブなアプリケーションが前記意図に応答しないという表示を、前記１次的にアクティブなアプリケーションから受信することと、
前記１次的にアクティブなアプリケーションから前記表示を受信することに応じて、前記２次的にアクティブなアプリケーションに前記意図に応答するように要求することと、
を備える方法。
【請求項２】
前記複数のアプリケーションの中に前記意図に応答できる１次的にアクティブなアプリケーションがない場合、前記複数のアプリケーションの２次的にアクティブなアプリケーションに前記意図に応答するよう要求することをさらに備える、請求項１に記載の方法。
【請求項３】
前記複数のアプリケーションの中に前記意図に応答できる１次的にアクティブなアプリケーションがない場合、
前記２次的にアクティブなアプリケーションが前記意図に応答できると決定することと、
前記２次的にアクティブなアプリケーションを１次的にアクティブであるとして指定することと、
をさらに備える、請求項２に記載の方法。
【請求項４】
前記１次的にアクティブなアプリケーションに前記意図に応答するように要求する前に、前記１次的にアクティブなアプリケーションが前記意図に応答できると決定することをさらに備える、請求項１に記載の方法。
【請求項５】
前記イベントメッセージは前記音の分類を示し、前記分類は前記音が
前記ユーザ対話の一部である音声、
前記ユーザ対話の一部でない音声、
前記ユーザ対話の一部であるオーディオコンテンツ、
前記ユーザ対話の一部でないオーディオコンテンツ、または
前記オーディオデバイスによる状態の検出に応じて与えられるオーディオ通知
であることを示す、請求項１に記載の方法。
【請求項６】
前記オーディオ通知は、
前記ユーザ対話の一部でないバックグラウンドオーディオ通知と、
前記ユーザ対話の一部であるフォアグラウンドオーディオ通知と、
を備える、請求項５に記載の方法。
【請求項７】
前記応答可能なアプリケーションを識別するアプリケーション識別子を前記コマンドが提示し、
前記応答可能なアプリケーションを識別するために、前記イベントメッセージが前記アプリケーション識別子を提示する、
請求項１に記載の方法。
【請求項８】
所定期間に前記応答可能なアプリケーションを識別するイベントメッセージが受信されなかったことを判定することと、
１次的にアクティブである前記応答可能なアプリケーションの前記指定を取り消すことと、
をさらに備える、請求項１に記載の方法。
【請求項９】
デバイスにより行われる第１アクションに関する第１イベントメッセージを前記デバイスから受信することであり、前記第１イベントメッセージは複数のアプリケーションの中から第１応答可能なアプリケーションを識別し、前記複数のアプリケーションのそれぞれはユーザ音声により表現される１つ以上の意図に応答できる、前記受信すること、
前記第１アクションが前記デバイスを通じたユーザと前記第１応答可能なアプリケーションとの第１ユーザ対話の一部であると決定することと、
前記第１応答可能なアプリケーションを１次的にアクティブであると指定することと、
第１ユーザ音声の第１意図を識別することと、
前記複数のアプリケーションの中に前記第１意図に応答できる、前記１次的にアクティブであると指定された前記第１応答可能なアプリケーションがあることを判定することと、
前記第１意図に応答するために前記１次的にアクティブであると指定された前記第１応答可能なアプリケーションを選択することと、
前記デバイスにより行われる第２アクションに関する第２イベントメッセージを前記デバイスから受信することであり、前記第２イベントメッセージは前記複数のアプリケーションの中から第２応答可能なアプリケーションを識別することと、
前記第２アクションが前記デバイスを通じた前記ユーザと前記第２応答可能なアプリケーションとの第２ユーザ対話の一部でないと決定することと、
前記第２応答可能なアプリケーションを２次的にアクティブであるとして指定することと、
第２ユーザ音声の第２意図を決定することと、
前記１次的にアクティブであると指定された前記第１応答可能なアプリケーションが前記第２意図に応答しないという表示を、前記１次的にアクティブであると指定された前記第１応答可能なアプリケーションから受信することと、
前記２次的にアクティブであると指定された前記第２応答可能なアプリケーションに前記第２意図に応答するように要求することと、
を備える方法。
【請求項１０】
第３ユーザ音声の第３意図を決定することと、
前記複数のアプリケーションの中に前記第３意図に応答できる、前記１次的にアクティブであると指定された前記第１応答可能なアプリケーションがないことを判定することと、
前記第３意図に応答するよう前記２次的にアクティブであると指定された前記第２応答可能なアプリケーションを選択することと、
をさらに備える、請求項９に記載の方法。
【請求項１１】
第４ユーザ音声の第４意図を決定することと、
前記１次的にアクティブであると指定された前記第１応答可能なアプリケーションが前記第４意図に応答しないと決定することと、
前記２次的にアクティブであると指定された前記第２応答可能なアプリケーションに前記第４意図に応答するように要求することと、
をさらに備える、請求項１０に記載の方法。
【請求項１２】
前記第１イベントメッセージは前記第１アクションの分類を示し、前記分類は前記第１アクションが
前記第１ユーザ対話の一部である音声、
前記第１ユーザ対話の一部でない音声、
前記第１ユーザ対話の一部であるオーディオコンテンツ、
前記第１ユーザ対話の一部でないオーディオコンテンツ、または
前記デバイスによる状態の検出に応じて与えられるオーディオ通知
であることを示す、請求項９に記載の方法。
【請求項１３】
前記第１イベントメッセージが前記第１応答可能なアプリケーションを識別するアプリケーション識別子を提示する、請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、「Ａｐｐｌｉｃａｔｉｏｎ  Ｆｏｃｕｓ  Ｉｎ  Ｓｐｅｅｃｈ−Ｂａｓｅｄ  Ｓｙｓｔｅｍｓ」と題する、２０１４年１２月１９日に出願された米国特許出願第１４／５７８，０５６号に対する優先権を主張し、参照によりその全体が本明細書に組み込まれる。
【背景技術】
【０００２】
家庭、オフィス、自動車及び公共空間は、より有線化され、ノートパソコン、タブレット、エンターテイメントシステム及び携帯通信機器などのコンピューティングデバイスの普及に繋がっている。コンピューティングデバイスが進化するにつれて、ユーザがこれらのデバイスと対話する方法は進化し続ける。例えば、人は、機械デバイス（例えば、キーボード、マウス等）、電気デバイス（例えば、タッチスクリーン、タッチパッド等）、及び光学デバイス（例えば、動作検出器、カメラ等）を通じて、コンピューティングデバイスと対話することができる。コンピューティングデバイスと対話する別の方法は、人の音声を理解して反応するオーディオデバイスを通じて行う方法である。
【０００３】
詳細な説明は、添付図面を参照して説明する。図面において、参照番号の左端の桁（複数可）は、参照番号が最初に現れる図面と一致する。異なる図面における同じ参照番号の使用は、類似または同一のコンポーネントまたは特徴を示す。
【図面の簡単な説明】
【０００４】
【図１】ローカルオーディオデバイス及びリモート音声ベースサービスを含む音声対話コンピューティングアーキテクチャのブロック図である。
【図２】ローカルオーディオデバイスとリモート音声ベースサービスとの間の情報の流れの一例を例示するブロック図である。
【図３】様々なアプリケーションに意図をルーティングすることに関する情報の流れの一例を例示するブロック図である。
【図４】１次的にアクティブ及び２次的にアクティブなアプリケーションを選択及び／または提示する方法例を例示するフロー図である。
【図５】１次的にアクティブなアプリケーションのためにタイムアウトを実施する方法例を例示するフロー図である。
【図６】ユーザにより表現される意図を決定し応答するために、ローカルオーディオデバイスからのオーディオを処理する方法例を例示するフロー図である。
【図７】ユーザ発話から生成される意図をルーティングする方法例を例示するフロー図である。
【図８】ローカルオーディオデバイスの選択された機能コンポーネントを示すブロック図である。
【図９】本明細書に記載の音声ベースサービスを実施するために部分的に使用され得るサーバデバイスのコンポーネントを例示するブロック図である。
【発明を実施するための形態】
【０００５】
本開示はサービスを提供するためにユーザと対話するためのデバイス、システム及び技法を説明する。本明細書に開示されるシステムは、様々なユーザの家庭にあるオーディオデバイスから受信されるオーディオを基に、ユーザ音声を受信し応答するように構成され得る。
【０００６】
システムはネットワークベースのアプリケーションによりアクセスされ、自宅のオーディオデバイスと連動するサービスを提供する音声ベースサービスを備え得る。アプリケーションは音声ベースサービスの一部として実装されるか、またはサードパーティプロバイダにより実装され得る。音声ベースサービスにより、アプリケーションは自宅のオーディオデバイスから情報を受信し自宅のオーディオデバイスを使用して動作を行うことが可能になる。
【０００７】
アプリケーションは、オーディオデバイスがオーディオアクティビティを行うように命令するコマンドをオーディオデバイスに送信し得る。例えば、アプリケーションはオーディオデバイスに音楽を再生するように命令し得る。オーディオアクティビティの別の例として、アプリケーションは音声ベースサービスまたはオーディオデバイスのテキスト読み上げ機能を使用してオーディオデバイスに音声の再生を命令し得る。
【０００８】
アプリケーションはさらに、オーディオデバイスを通じてユーザと音声対話を行い得る。音声対話はユーザの特定のアクションまたは意図に関する一連の音声質問、回答及び／または発言を備える。より具体的には、音声対話はユーザによる発話及び音声ベースサービスにより生成される音声メッセージを含み得る一連の音声表現を備え得る。音声対話は、例えば、最初のユーザ発話時に開始し得る。音声ベースサービスは「何がしたいですか？」などの質問を尋ねることにより応答し得る。ユーザは質問に回答する発言を行うことにより応答し得る。このプロセスは、音声ベースサービスが特定のアクションを行うまたは機能を起動することを決定できるまで繰り返され得る。
【０００９】
アプリケーションはさらに、オーディオデバイス自体により検出及び監視される状態に応じて、オーディオデバイスが可聴通知を発生するように構成され得る。例えば、オーディオデバイスは一日の指定時間または指定期間後にアラームを発生するように構成され得る。別の例として、オーディオデバイスはホームオートメーションまたはホームセキュリティシステムと連動して検出されたイベントに応じて通知を発生するように構成され得る。通知はバックグラウンドに行われ、ユーザの即時の注意または対話を要求しない受動通知であってよい。通知は、代替的にはフォアグラウンドより音が大きいか、またはより繰り返され、ユーザによる即時のアクションまたは認識を求めるアクティブまたはフォアグラウンド通知を備えてよい。
【００１０】
オーディオデバイスのユーザは会話によりアプリケーションに命令を提供し得る。オーディオデバイスはユーザ音声を含む音を取得し、対応するオーディオ信号を音声ベースサービスに提供する。音声ベースサービスはオーディオに対して自動音声認識（ＡＳＲ）及び自然言語理解（ＮＬＵ）を行い、ユーザ音声の意図を決定する。意図は、例えば、「音楽を再生する」、「一時停止」、「停止」、「アラームを設定する」、「ボブに電話する」、「天気解説を出す」、「現在のニュースの見出しを出す」、「ピザを注文する」、「電子メールを作成する」、「音量を上げる」、「音量を下げる」、「無音」、「アラームを設定する」、「キャンセル」等を含み得る。
【００１１】
ユーザ音声の意図を決定することに応じて、音声ベースサービスは多数の利用可能またはアクティブなアプリケーションのうちどれが意図に応答するよう選択されるべきかを決定する。個々のアプリケーションはそれらのアプリケーションが処理可能な意図を示すために、音声ベースサービスに登録され得る。複数のアプリケーションが個々の意図を処理するために登録され得る。一例として、いくつかのアプリケーションは、アプリケーションにより行われているアクティビティに対して「停止」アクションを行うことにより、「停止」意図に応答するように登録され得る。「停止」意図から生じるアクションは、結局はその意図を処理または応答するように要求されたアプリケーションに依存することに留意されたい。例えば、あるアプリケーションが音楽の再生を停止し得る一方、別のアプリケーションはアラームを停止またはキャンセルし得る。より一般的には、任意の特定の意図から生じるアクションは、その意図を受信及び応答するアプリケーションに応じて異なり得る。いくつかの場合、アプリケーションは、例えば、ユーザ音声の意図に応答する音声を生成するなど、後続する対話ターンを開始することにより、特定の意図に応答し得る。音声応答は、音声ベースサービスがユーザの意図を完全に決定できる情報を明確にすることを要求し得る。別の場合、アプリケーションは、「アーティストＡの音楽を再生する」などの意図により少なくとも部分的に示されるアクションを行うことによって応答し得る。
【００１２】
個々のアプリケーションがオーディオデバイスにアクティビティを開始するように命令すると、アプリケーションはアプリケーションに関連するアプリケーション識別子を提供する。オーディオデバイスがアクティビティを行う際、オーディオデバイスはそのアクティビティに関するイベントメッセージを音声ベースサービスに送信する。例えば、イベントメッセージは、要求された音楽が再生を開始したこと、再生リストの特定のトラックが再生を開始したこと、音声が開始または終了したこと、通知が与えられることなどを示し得る。各イベントメッセージはイベントが関連するアクティビティに応答可能なアプリケーションのアプリケーション識別子を示す。イベントメッセージはアプリケーション識別子に対応するアプリケーションに渡される。
【００１３】
ユーザが話すと、音声ベースシステムはＡＳＲ及びＮＬＵを行い、ユーザの音声を認識して音声の意図を決定する。しかしながら、音声自体も音声の決定された意図も、複数の利用可能なアプリケーションのうちどれに音声が向けられているかを示さない可能性がある。したがって、音声ベースシステムは、どのアプリケーションがユーザ音声の決定された意図に応答する目的に対して現在アクティブであるとみなされるべきかを追跡するための、オーディオデバイスのアクティビティを監視するルーティングコンポーネントを有する。
【００１４】
ルーティングコンポーネントは、オーディオデバイスから受信されるイベントメッセージを監視することにより動作し、どのアプリケーションが現在アクティブであるとみなすべきかを決定する。より具体的には、ルーティングコンポーネントはどのアプリケーションがオーディオデバイスにより報告される最新のオーディオイベントに応答可能かを追跡する。イベントメッセージが応答可能なアプリケーションを識別することに応じて、ルーティングコンポーネントは応答可能なアプリケーションを１次的にアクティブまたは２次的にアクティブであると指定する。１次的にアクティブなアプリケーションは１次音声フォーカスを有するとみなされる。２次的にアクティブなアプリケーションは２次音声フォーカスを有するとみなされる。認識されたユーザ音声の決定された意図はまず、１次音声フォーカスを現在有するアプリケーションに供給される。１次音声フォーカスを有するアプリケーションがない場合、または１次音声フォーカスを有するアプリケーションが意図を処理できない場合、意図は２次音声フォーカスを有するアプリケーションに供給される。
【００１５】
どのアプリケーションが現在１次及び２次音声フォーカスを有するかを追跡するために、ルーティングコンポーネントはオーディオデバイスにより再生されるオーディオに関するオーディオデバイスからのイベントメッセージを監視する。個々のイベントメッセージはオーディオに応答可能なアプリケーションを識別し、さらにオーディオの分類を示す。一例として、分類はオーディオがユーザ対話の一部かどうかを示し得る。オーディオがユーザ対話の一部であることを分類が示す場合、ルーティングコンポーネントは応答可能なアプリケーションが１次音声フォーカスを有すると指定する。オーディオがユーザ対話の一部でないと分類が示す場合、ルーティングコンポーネントは応答可能なアプリケーションが２次音声フォーカスを有すると指定する。記載の実施形態では、アプリケーションのうち１つのみ（例えば、１次的にアクティブであると最近指定されたアプリケーション）が１次音声フォーカスを有し、アプリケーションのうち１つのみ（例えば、２次的にアクティブであると最近指定されたアプリケーション）が２次音声フォーカスを有する。
【００１６】
より一般的には、１次音声フォーカスは、音声会話及びアクティブユーザ通知などの、双方向のユーザ対話を伴うか双方向のユーザ対話の開始を目的とするアクティビティの発生に基づいて与えられる。２次音声フォーカスは、受動通知及び音楽再生などの、双方向のユーザ対話を伴わないアクティビティの発生に基づいて与えられる。
【００１７】
図１はこれらの技法が実行され得る環境１００を例示する。環境１００は部屋または他のユーザ構内１０２を含み得る。ユーザ構内は家庭、オフィス、自動車及び他の空間または領域を含み得る。
【００１８】
ユーザ構内１０２の内部にはユーザ１０４及び１つ以上のオーディオデバイス１０６がある。オーディオデバイス１０６は、いくつかの実施形態では、１つ以上のマイクロフォン、スピーカ及びネットワークインターフェースもしくは他の通信インターフェースを有するネットワークベースのまたはネットワークアクセス可能なデバイスを備え得る。特定の実施形態では、オーディオデバイス１０６はさらにユーザ対話用に設計されたボタン、ノブ、ライト、インジケータ及び多様な種類のセンサなどを含む他の要素、入力要素ならびに出力要素を有してよい。
【００１９】
オーディオデバイス１０６はユーザ１０４から音声コマンドを受信し、そのコマンドに応じてサービスを提供する。提供されるサービスは、アクションまたはアクティビティの実行、メディアのレンダリング、情報の取得及び／または提供、ローカル状況の監視及びローカル状況に基づく通知の提供、オーディオデバイス１０６を介して生成または合成された音声による情報の提供、ユーザ１０４の代わりにインターネットベースサービスを開始することなどを含み得る。
【００２０】
図１に示す実施形態では、オーディオデバイス１０６はネットワークアクセス可能な音声ベースサービス１０８と通信する。音声ベースサービス１０８は、オーディオデバイス１０６に対してリモートに配置されるネットワークベースまたはクラウドベースのサービスとして実装されてよい。例えば、音声ベースサービス１０８は、企業組織及び／またはサービスプロバイダにより実装され、様々なユーザ構内１０２に配置される複数のオーディオデバイス１０６をサポートしてよく、ユーザ構内１０２は広範囲にわたる地理的位置に配置され得る。
【００２１】
音声ベースサービス１０８は、いくつかの例では、インターネットなどのワイドエリアネットワークを介して維持及びアクセス可能である、ネットワークアクセス可能なコンピューティングプラットフォームの一部であってよい。このようなネットワークアクセス可能なコンピューティングプラットフォームは、「オンデマンドコンピューティング」、「サービスとしてのソフトウェア（ＳａａＳ）」、「プラットフォームコンピューティング」、「ネットワークアクセス可能なプラットフォーム」、「クラウドサービス」、「データセンタ」などの用語を使用して言及され得る。
【００２２】
オーディオデバイス１０６と音声ベースサービス１０８との間の通信は、ローカルエリアネットワーク、ワイドエリアネットワーク及び／または公衆インターネットを含む多様な種類のデータ通信ネットワークを通じて実施されてよい。セルラー及び／または他の無線データ通信技術をさらに使用して音声ベースサービス１０８と通信してよい。ユーザ構内１０２は音声ベースサービス１０８との通信を容易にするためにローカルネットワークをサポートしている設備を含んでよく、例えば、無線アクセスポイント、ネットワークルータ、通信ハブ等などである。
【００２３】
音声ベースサービス１０８は複数のオーディオデバイス１０６をサポートする多様なサービス及び／またはアプリケーションと相互作用してよい。一例として、係るサービスは音声処理サービス１１０を含んでよい。音声処理サービス１１０は、ユーザ音声を認識し、音声により表現されるユーザの意図を決定し、ユーザの意図を達成するようなアクションを行うか、またはサービスを提供するために、リアルタイムオーディオまたは音声情報をオーディオデバイス１０６から受信するように構成されてよい。例えば、ユーザは事前に定義されたコマンド（例えば、「アウェイク」、「スリープ」）を話してよい、またはオーディオデバイス１０６と対話する際によりカジュアルな会話形式（例えば、「私は映画を見に行きたい。ローカルの映画館で上映しているものを教えてください。」）を使用してよい。ユーザコマンドは本質的にはあらゆる種類の動作であってよく、例として、データベース問い合わせ、エンターテイメントの要求及び消費（例えば、ゲーム、音楽の検索及び再生、映画または他のコンテンツ等）、パーソナルマネージメント（例えば、予定の記入、ノートを取る等）、オンラインショッピング、金融取引などであってよい。
【００２４】
音声及び音声関連情報は多数の異なる形態で音声処理サービス１１０に提供されてよい。いくつかの実装では、音声関連情報はオーディオデバイス１０６からの連続的なオーディオ信号またはストリームを含んでよい。代替的には、音声関連情報は、ユーザ構内１０２の内部において検出された音に応じて音声処理サービス１１０に提供される、オーディオクリップまたはセグメントを含んでよい。いくつかの場合、オーディオデバイス１０６は音声認識を行い、テキスト形式のユーザ音声を音声ベースサービス１０８に提供してよい。いくつかの実施態様では、音声ベースサービス１０８は、その後オーディオデバイス１０６によりレンダリングされる音声を生成または提示することにより、ユーザ１０４と対話してよい。音声合成は音声処理サービス１１０またはオーディオデバイス１０６により行われてよい。
【００２５】
記載の実施形態では、音声処理サービス１１０は、音声を認識し、認識された音声の意図を理解し、音声を生成するためのコンポーネントまたは機能を含む。具体的には、音声処理サービス１１０は自動音声認識（ＡＳＲ）サービス１１２、自然言語理解（ＮＬＵ）サービス１１４及びテキスト読み上げ（ＴＴＳ）サービス１１６を含む。多様な他の種類の音声処理機能がさらに提供されてよい。
【００２６】
ＡＳＲサービス１１２は多様な技法を使用してオーディオ信号で表現される音声単語の完全なトランスクリプトを作成してよい。例えば、ＡＳＲサービス１１２は音響モデル及び言語モデルなどの多様な種類のモデルを参照し、オーディオ信号に表現される音声ワードを認識してよい。多くの場合、このようなモデルは多数の異なる種類の音声の標本抽出及び手動分類などによるトレーニングにより作成される。
【００２７】
音響モデルは音声を経時的なオーディオ波形の特徴に対応する一連のベクトルとして表現してよい。特徴は周波数、ピッチ、振幅及び時間パターンに対応してよい。大規模なトレーニングデータのセットを基に、隠れマルコフモデル（ＨＭＭ）及び混合ガウスモデルなどの統計モデルを作成してよい。受信した音声のモデルは、その後トレーニングデータのモデルと比較され、一致が見つけられる。
【００２８】
言語モデルは文法ルール、一般的な単語の用法及びパターン、辞書の意味などの事柄を記載し、単語の並び順及び組み合わせの確率を構築する。言語モデルを使用する音声の分析は、現在分析中の音声の任意の部分の前後に来る単語などの文脈に依存し得る。
【００２９】
ＡＳＲは認識候補を提供することがあり、これは単語、フレーズ、文または他の音声のセグメントを含み得る。候補は統計的な確率を伴うことがあり、それぞれが対応する候補の精度における「信頼性」を示す。通常、最も高い信頼性スコアを伴う候補が音声認識の出力として選択される。
【００３０】
ＮＬＵサービス１１４はＡＳＲサービス１１２により提供される単語ストリームを分析し、単語ストリームの意図の表現を生成する。例えば、ＮＬＵサービス１１４はパーサ及び文法ルールを使用して文を分析し、コンピュータが容易に処理する方法で概念を伝える、形式的に定義された言語で文の意図の表現を生成し得る。例えば、意図はスロット及びスロット値の階層セットまたはフレームとして意味的に表現されてよく、各スロットは意味的に定義された概念に相当する。したがって、文の意図はスロット及びスロット値のフレームにより意味的に表現され得る。ＮＬＵはさらに、トレーニングデータから生成される統計モデル及びパターンを使用し、通常の音声における単語間の統計的な依存度を利用し得る。
【００３１】
音声ベースサービス１０８は複数のネットワークベースアプリケーション１１８をサポートするように構成されてよい。アプリケーション１１８は音声ベースサービス１０８を通じてオーディオデバイス１０６と相互作用し、オーディオデバイス１０６により取得または提供されるユーザ音声に少なくとも部分的に基づき、オーディオデバイス１０６と連動して機能を提供する。より具体的には、アプリケーション１１８は音声ベースサービス１０８のコマンドサービス１２０を通じて通信するように構成され、コマンドサービス１２０はオーディオデバイス１０６からの情報を受信し、命令、情報及びコンテンツをオーディオデバイス１０６に提供するデバイスプロキシとして機能する。いくつかの場合、コマンドサービス１２０はデータフォーマット及び／またはプロトコルの第１セットを使用してオーディオデバイス１０６と通信し、比較的低レベルのまたは詳細なデータの転送を可能にし得る。コマンドサービス１２０はデータフォーマット及び／またはプロトコルの第２セットを使用してアプリケーション１１８と通信し、比較的高レベルの抽象概念で情報を転送することを可能にし得るか、様々な種類の通信プロトコルを使用し得る。
【００３２】
アプリケーション１１８は、いくつかの場合、ウェブベースまたはネットワークベースのアプリケーションまたはサービスとして実装され得る。例えば、特定のアプリケーション１１８は音声ベースサービス１０８のプロバイダまたはサードパーティプロバイダによるサーバまたはサービスとして実装されてよく、インターネットなどのネットワークを通じてコマンドサービス１２０と通信してよい。別の場合、アプリケーション１１８はユーザ１０４に関連する物理デバイス、例えば、ユーザ１０４のコンピュータまたは携帯デバイスなどに常駐するか、組み込まれてよく、インターネットまたは他のワイドエリアネットワークを通じてコマンドサービス１２０と通信してよい。
【００３３】
音声ベースサービス１０８及びコマンドサービス１２０は、ウェブサービスモデルに従ってオーディオデバイス１０６及び／またはアプリケーション１１８と相互作用するように構成されてよく、音声ベースサービス１０８の機能は１つ以上のウェブサービスとして実装されてよい。概して、ウェブサービスは要求インターフェースを介して要求するクライアントに利用可能なあらゆる種類のコンピューティングサービスを備えてよく、要求インターフェースはハイパーテキスト転送プロトコル（ＨＴＴＰ）の１バージョンまたは別の適切なプロトコルなどの１つ以上のインターネットベースのアプリケーション層データ転送プロトコルを含む。
【００３４】
コマンドサービス１２０は１つ以上のネットワークアクセス可能なＡＰＩまたはアプリケーションインターフェース１２２をさらしてよい。ＡＰＩ１２２は、例えばｈｔｔｐ：／／ｓｔｏｒａｇｅｓｅｒｖｉｃｅ．ｄｏｍａｉｎ．ｃｏｍ．などのユニフォームリソースロケータ（ＵＲＬ）を有するウェブサービスエンドポイントとして実装されてよい。
【００３５】
アプリケーション１１８は多様なベンダ及び／またはプロバイダにより設計及び提供され、ＡＰＩ１２２及び関連するサービスを経由して、オーディオデバイス１０６と連動して動作し及び／またはオーディオデバイス１０６を使用してサービスを提供してよい。アプリケーション１１８は電子メールからゲームに及ぶ機能を提供してよい。アプリケーション１１８はユーザ音声及びユーザ音声から生じる意図に応じてアクションを行う音声有効アプリケーションを備えてよい。したがって、アプリケーション１１８のサービスは、オーディオデバイス１０６及び音声処理サービス１１０により提供される音声及び音声関連情報に部分的に基づいてよく、音声及び音声関連情報は、認識された音声、音声から生成される意図及びユーザ音声から解釈された意図またはコマンドを含む。さらに、アプリケーション１１８はオーディオデバイス１０６上の音声としてレンダリングされることになるテキストを提供してよく、コマンドサービス１２０及びＡＰＩ１２２を介して他の命令及びコマンドをオーディオデバイス１０６に対しまたはオーディオデバイス１０６のために提供してよい。
【００３６】
いくつかの実装では、例示のアプリケーション１１８は、いわゆる「アプレット」などの他のアプリケーションのコンポーネントであり得る。各アプリケーションまたはアプレットはアプリケーション識別子により識別され得る。アプリケーション識別子は音声ベースサービス１０８により割り当てられ得るか、アプリケーション自体により提供され得る。
【００３７】
一例として、アプリケーションはオーディオデバイス１０６に伝えられることになる音楽または他のコンテンツをオーディオデバイス１０６に提供するオーディオアプリケーションを備え得る。
【００３８】
各アプリケーション１１８はコマンドサービス１２０と通信し、各アプリケーション１１８が処理可能な音声意図を提示または登録し得る。２つ以上のアプリケーション１１８はあらゆる所与の意図を処理または応答することができ得る。代替的には、コマンドサービス１２０は個々のアプリケーションに問い合わせ、アプリケーションが特定の意図に応答できるか、または応答するかどうかに関する提示をアプリケーションから受信してよい。
【００３９】
コマンドサービス１２０は認識または識別された音声の意図を適切なアプリケーション１１８に提供するルーティングコンポーネント１２４を含む。より詳細には以下に記載する通り、ルーティングコンポーネント１２４はオーディオデバイス１０６により現在行われているアクティビティに応じて１次音声フォーカス及び２次音声フォーカスを割り当てる。意図が決定されると、１次フォーカスを有するアプリケーション（ある場合）に意図には応答する第１機会が与えられる。
【００４０】
図２はアプリケーション１１８とオーディオデバイス１０６との間に発生し得る通信の一例を例示する。明瞭にするために、通信媒介として機能するコマンドサービス１２０は図示されない。
【００４１】
アプリケーション１１８はコマンド２０２をオーディオデバイス１０６に送信し得る。コマンド２０２は図２にＡｐｐＩＤとして参照されるアプリケーション識別子を包含または提示し、ＡｐｐＩＤはアプリケーション１１８に対応しアプリケーション１１８を識別する。コマンド２０２はオーディオデバイス１０６により実施または実行されることになるアクティビティを提示し得る。例えば、コマンドは、オーディオデバイス１０６により再生されることになる音楽などのオーディオコンテンツを提示し得る。別の例として、コマンド２０２は、音声に変換されオーディオデバイス１０６によりオーディオとして再生されることになるテキストを指定し得る。別の例として、コマンド２０２は、オーディオデバイス１０６により実施されることになる通知を構成し得る。
【００４２】
いくつかの場合、コマンド２０２は、命令されたアクティビティまたはアクティビティに応じてオーディオデバイス１０６により生成されたオーディオが対話型とみなされるべきかどうかを提示し得る。ユーザの会話の一部である音声などのユーザ対話の一部を形成するオーディオは対話型とみなされ得る。音楽などユーザ対話の一部でないオーディオは非対話型とみなされ得る。ユーザ対話の一部でない場合、特定の種類のレンダリングされた音声は非対話型とみなされ得る。例えば、アプリケーションは現在の天気または交通状況を説明する音声を生成する場合があり、これは音声対話の一部ではなく、したがって非対話型となるであろう。
【００４３】
動作中、オーディオデバイス１０６はイベントメッセージ２０４を生成し、イベントメッセージ２０４をコマンドサービス１２０に送り返す。各イベントメッセージ２０４はオーディオイベントまたはオーディオデバイス１０６で発生した他のイベントを記述する。例えば、イベントメッセージ２０４は特定の種類の音が再生されたこと、テキスト読み上げ再生が開始または終了したこと、非対話型コンテンツが開始または停止したこと、コンテンツもしくはメディアの再生が特定のポイントまで進行したこと、メディアアイテムの再生が終了したこと、後続のメディアアイテムの再生が開始したことなどを提示し得る。イベントメッセージ２０４はさらに、オーディオデバイスによりオーディオ通知が開始されたことを提示し得る。
【００４４】
各イベントメッセージは記述されたオーディオイベントがその一部であるアクティビティに応答可能なアプリケーションのアプリケーション識別子（ＡｐｐＩＤ）を示す。イベントメッセージ２０４は、コマンドサービス１２０により、ＡｐｐＩＤで提示された応答可能なアプリケーションに渡され得るため、応答可能なアプリケーションは要求されたアクティビティの進捗を監視することができる。
【００４５】
各イベントメッセージ２０４はさらに、記述されたオーディオが対話型か非対話型かを提示し得る。対話型オーディオはユーザ対話の一部であるオーディオを備える。非対話型オーディオはユーザ対話の一部でないオーディオを備える。一部のイベントメッセージは対応するイベントが対話型かどうかを明示的に提示し得る。他の場合、イベントの特性は対応するイベントが対話型かどうかを内在的に示し得る。例えば、音楽再生のステータスに関する特定のイベントは、係るイベントに関するイベントメッセージがイベントを対話型または非対話型に明示的に分類できない場合でも、非対話型イベントとみなされ得る。
【００４６】
図３は、決定した意図を適切なアプリケーション１１８に提供するために、音声ベースサービス１０８が受信されたユーザ発話を処理する方法を例示する。オーディオデバイス１０６はオーディオ信号として音声ベースサービス１０８に送信されるユーザ発話または音声３０２を取得する。音声処理サービス１１０はＡＳＲ及びＮＬＵを使用してオーディオ信号を分析し、ユーザ音声３０２の意図３０４を決定する。ルーティングコンポーネント１２４は意図３０４の意味的表現を受信する。ルーティングコンポーネント１３０はさらに、イベントメッセージ２０４を受信及び監視する。
【００４７】
イベントメッセージ２０４はオーディオデバイス１０６により生成されるため、ルーティングコンポーネント１３０はイベントメッセージ２０４を監視し、どのアプリケーション１１８のうちどれが現在アクティブとみなされるべきかを決定する。イベントメッセージ２０４に応じて、ルーティングコンポーネント１２４は１次的にアクティブなアプリケーション及び／または２次的にアクティブなアプリケーションを識別し得る。１次的にアクティブなアプリケーションとして識別されたアプリケーションは１次音声フォーカスを有するとみなされる。２次的にアクティブなアプリケーションとして識別されたアプリケーションは２次フォーカスを有するとみなされる。本明細書に記載の実施形態では、単一のアプリケーションのみが常に１次的にアクティブであるとみなされ、単一のアプリケーションのみが任意の常に２次的にアクティブであるとみなされるが、これは特定の他の実施形態に常にあてはまるわけではない。
【００４８】
意図３０４の意味的表現を受信すると、ルーティングコンポーネント１２４は、１次的にアクティブ及び２次的にアクティブであるアプリケーションの前回の識別を基に、意図３０４の表現をアプリケーション１１８のうちの１つに提供する。概して、１次的にアクティブなアプリケーションが処理可能な場合、意図を処理する第１機会が与えられる。別様には現在１次的にアクティブなアプリケーションがない場合、または現在１次的にアクティブなアプリケーションが意図を処理できない場合、現在２次的にアクティブなアプリケーションに意図を処理する機会が与えられる。
【００４９】
１次的にアクティブまたは２次的にアクティブとしてアプリケーションを指定することは、イベントメッセージ２０４をオーディオデバイス１０６から受信することに応じて、バックグラウンド動作として行われる。発話がオーディオデバイス１０６から受信されると、意図のルーティングは、１次的にアクティブなまたは２次的にアクティブであるとアプリケーションを指定する工程とは独立して非同期的に行われる。
【００５０】
図４は、オーディオデバイス１０６により受信されるイベントメッセージを基に、１次的にアクティブなアプリケーション及び２次的にアクティブなアプリケーションを選択するために、ルーティングコンポーネント１２４により行われ得る方法例４００を例示する。
【００５１】
アクション４０２は、アクティビティの一部としてオーディオデバイスにより再生されるオーディオに関するイベントメッセージ２０４をオーディオデバイスから受信することを備える。イベントメッセージ２０４は、オーディオイベント及び／または説明されたオーディオイベントがその一部であるアクティビティに応答可能なアプリケーション１１８に対応するイベント記述４０４及びアプリケーション識別子４０６を備え得る。
【００５２】
イベントメッセージ２０４は、いくつかの場合、さらにオーディオイベントのオーディオが対話型または非対話型とみなされるべきかどうかを示すイベント分類４０８を含み得る。対話型オーディオは音声対話またはユーザとの対話の一部である音声を含む。音楽または音声対話もしくはユーザとの対話の一部でない音声などの他の種類のオーディオは、バックグラウンドまたは非対話型オーディオとみなされ得る。いくつかの場合、イベント分類４０８はイベントメッセージ２０４から省略され、イベントメッセージ２０４を備えるイベントまたはメタデータの特性は対応するイベントが対話型かどうかを示し得る。
【００５３】
会話音声に加え、オーディオデバイス１０６により監視される状態に応じてオーディオデバイス１０６により生成される特定の種類の通知は対話型とみなされるべきであり得る。係る通知は必ずしも音声対話の一部ではないが、通知が即時のユーザ入力を求める点において、通知はユーザ対話の一部とみなされるべきであり得る。例えば、通知は、ユーザが単語「アラームを停止する」を話すことなどにより返答することが要求される可聴アラームを備え得る。
【００５４】
オーディオデバイス１０６により監視される状態に応じてオーディオデバイス１０６により生成される他の種類の通知は非対話型とみなされるべきであり得る。例えば、通知は、メッセージまたは電子メールの受信などの重大ではない状態をユーザに警告するためのバックグラウンド音を備えることがあり、これは即時のユーザ入力を要求する目的はない。
【００５５】
概して、分類４０８またはイベントメッセージに関連する他の情報は、対応するオーディオが、
ユーザ対話の一部である音声、
ユーザ対話の一部でない音声、
ユーザ対話の一部であるオーディオコンテンツ、
ユーザ対話の一部でないオーディオコンテンツ、または
オーディオデバイスによる状態の検出に応じて与えられるオーディオ通知を備えることを示し得る。
【００５６】
オーディオ通知はユーザ対話の一部でないバックグラウンドオーディオ通知またはユーザ対話の一部であるフォアグラウンドオーディオ通知のいずれかを備え得る。
【００５７】
アクション４１０は、受信されたイベントメッセージが対話型イベントまたは非対話型イベントに対するものであることを示すかどうかを、イベントメッセージ２０４のイベント分類４０８または他のデータが決定することを備える。イベントメッセージ２０４が分類４０８を明示的に提供する場合、これは分類４０８を検証することを伴い得る。別様にはアクション４１０は、イベントの種類または記述に基づき、対応するイベントが対話型かどうかを決定し、特定のイベントまたはイベントの種類は対話型であると定義され、他のイベントまたはイベントの種類は非対話型であると定義される。いくつかの場合、例えば、音楽などのメディアの再生に関するイベントは定義上、非対話型とみなされ得る。
【００５８】
イベントが対話型の場合、アクション４１２が行われ、応答可能なアプリケーション以外の任意の現在指定されている１次的にアクティブなアプリケーションがもはや１次的にアクティブではないと指定する。さらに、アクション４１４が行われ、応答可能なアプリケーション（アプリケーション識別子４０６により示される）が現在１次的にアクティブであり１次フォーカスを有すると指定する。
【００５９】
イベントが非対話型及び／または応答可能なアプリケーションがアクション４１４により１次的にアクティブであると指定されない場合、アクション４１６が行われ、応答可能なアプリケーション以外の任意の現在指定されている１次的にアクティブなアプリケーションがもはや２次的にアクティブではないと指定する。さらに、アクション４１８が行われ、応答可能なアプリケーション（アプリケーション識別子４０６により示される）が現在２次的にアクティブであり２次フォーカスを有すると指定する。
【００６０】
特定の種類のイベントは対応するアプリケーションに内在的に関連する場合があり、これらの場合、アプリケーション識別子は省略され得る。例えば、オーディオデバイス１０６のブルートゥース（登録商標）周辺装置から受信されるオーディオの再生に関するメッセージは、アプリケーション１１８の特定の１つに内在的に関連し得る。
【００６１】
図５は、図４の方法４００に従って生じ得るような、ブロック５０２に示す通りの、１次的にアクティブであると指定された応答可能なアプリケーションに対して行われ得る方法例５００を例示する。アクション５０４は所定期間が経過したか、タイムアウトが終了したかどうかを判定することを備える。期間が経過したか、タイムアウトが終了した場合、アクション５０６が行われ、応答可能なアプリケーションを１次的にアクティブであると指定することを取り消す。期間が経過したか、タイムアウトが終了しなかった場合、アクション５０４はループで繰り返される。期間は現在指定されている１次的にアクティブなアプリケーションが新規に１次的にアクティブであると指定される度にリセットされてよく、例えば、図４のアクション４１６を通じて１次フォーカスの再割り当てをもたらす新規に受信されたイベントメッセージに応じてリセットされてよい。
【００６２】
方法５００は、アプリケーションに対する相互型イベントを指定するイベントメッセージが指定期間にわたり受信されない場合、１次的にアクティブなアプリケーションが音声フォーカスを確実に喪失するようにする。アプリケーションのアプリケーション識別子を指定し、相互型イベント分類を指定する新規イベントメッセージが受信される場合、アプリケーションはその後１次フォーカスを再取得し得る。
【００６３】
図６はユーザ音声を処理する方法例６００を示す。アクション６０２はユーザ音声を含むオーディオ信号を受信することを備える。アクション６０４は、ユーザ音声を認識しユーザ音声のトランスクリプトを生成するために、ＡＳＲを使用してオーディオ信号を分析することを備える。アクション６０６は、ユーザ音声の意図を決定しユーザ音声及びその意図の意味的表現を生成するために、ＮＬＵを使用して認識された音声を分析することを備える。アクション６０８は１つ以上のアプリケーション１１８の表現をルーティングすることを備える。
【００６４】
図７は音声意図の意味的表現を複数のアプリケーション１１８のうちの１つにルーティングする方法例７００を示す。アクション７０２は意図の表現を受信することを備える。アクション７０４は複数のアプリケーション１１８の中に１次的にアクティブであるとして指定され、したがって１次フォーカスを有するアプリケーションがあるかどうかを判定することを備える。係る１次的にアクティブなアプリケーションがある場合、アクション７０６が行われ、１次的にアクティブなアプリケーションが意図に応答できるかどうかを判定する。アクション７０６は、どの意図がどのアプリケーションにより処理できるかを示すアプリケーションの前回の登録を参照することにより、行われ得る。代替的には、１次的にアクティブなアプリケーションが意図に現在応答できるかどうかを判定するために、１次的にアクティブなアプリケーションに問い合わせることができる。１次的にアクティブなアプリケーションが意図に応答できる、または応答する場合、アクション７０８が行われ、意図の意味的表現をアプリケーションに提供する及び／または１次的にアクティブなアプリケーションに対する意図への応答を要求する。いくつかの場合、アクション７０６及び７０８は組み合わされてよく、意図の表現は、アプリケーションに対する意図への応答の要求と共に１次的にアクティブなアプリケーションに渡されてよく、要求を受け入れるか、アプリケーションが意図に応答しないことを示すことのいずれかにより、アプリケーションは応答し得る。
【００６５】
現在１次的にアクティブなアプリケーションがない場合、１次的なアプリケーションが決定された意図に応答しない、もしくは応答できないことを示す場合、または別様には１次的にアクティブなアプリケーションが意図に応答しないと判定される場合、アクション７１０が行われ、２次的にアクティブとして指定され、したがって２次フォーカスを有するアプリケーションが複数のアプリケーション１１８の中にあるかどうかを判定する。係る２次的にアクティブなアプリケーションがある場合、アクション７１２が行われ、２次的にアクティブなアプリケーションが決定された意図に応答できるかどうかを判定する。アクション７１２はどの意図がどのアプリケーションにより処理できるかを示すアプリケーションの前回の登録を参照することにより、行われ得る。代替的には、決定された意図に現在応答できるかどうかを判定するために、２次的にアクティブなアプリケーションを問い合わせることができる。２次的にアクティブなアプリケーションが意図に応答できる、または応答する場合、アクション７１４が行われ、意図の意味的表現を２次的にアクティブなアプリケーションに提供する及び／または２次的にアクティブなアプリケーションに意図への応答を要求する。いくつかの場合、アクション７１０及び７１２は組み合わされてよく、意図の意味的表現は、２次的にアクティブなアプリケーションに対する意図への応答の要求と共に２次的にアクティブなアプリケーションに渡されてよく、要求を受け入れるか、要求を拒否するかのいずれかにより、アプリケーションは要求に応答し得る。
【００６６】
アクション７１６はさらに、２次的にアクティブなアプリケーションが意図に応答する場合、または２次的にアクティブなアプリケーションが意図に応答できることを示す場合に行われ得る。アクション７１６は２次的にアクティブなアプリケーションが現在１次的にアクティブであり、したがって１次音声フォーカスを有すると指定することを備える。アプリケーションが１次的にアクティブであると指定される場合、前回１次的にアクティブであると指定された他のアプリケーションがその後もはや１次的にアクティブでないと指定される。アクション７１６は特定の実施形態では、特定の種類のアプリケーションまたはイベントのみに行われ得ることに留意されたい。一例として、「音量を上げる」は非常駐コマンドまたはイベントとしてみなされることがあり、対応するアプリケーションに１次フォーカスを与えることにはなり得ない。
【００６７】
現在２次的にアクティブなアプリケーションがない場合、２次的にアクティブなアプリケーションが決定された意図に応答しない、もしくは応答することができないことを示す場合、または別様には２次的にアクティブなアプリケーションが意図に応答しないと判定される場合、アクション７１８が行われ、決定された意図を処理できる別のアプリケーションが複数のアプリケーションの中にあるかどうかを判定する。アクション７１８はどの意図がどのアプリケーションにより処理できるかを示すアプリケーションの前回の登録を参照することにより、行われ得る。代替的または追加的に、意図に現在応答できるかどうかを判定するために、他のアプリケーションを問い合わせることができる。別のアプリケーションが意図を処理できる場合、アクション７２０が行われ、意図の意味的表現を他のアプリケーションに提供する及び／または他のアプリケーションに対する意図への応答を要求する。
【００６８】
アクション７２２はさらに、他のアプリケーションのうちの１つが意図イベントに応答する場合、または別様には非アクティブなアプリケーションが意図に応答できることを示す場合に行われ得る。アクション７２２は応答アプリケーションが１次的にアクティブであり、したがって１次音声フォーカスを有すると指定することを備える。アプリケーションが１次的にアクティブであると指定される場合、１次的にアクティブであると前回指定された任意の他のアプリケーションがその後もはや１次的にアクティブでないと指定される。アクション７２２は特定の実施形態では、非常駐とみなされない特定の種類のアプリケーションまたはイベントのみに行われ得ることに留意されたい。
【００６９】
アクション７１８は、意図の意味的表現を様々なアプリケーションに供給することを備えることがあり、これは前に登録されたアプリケーションは後に登録されたアプリケーションに対して優先度が与えられる、コマンドサービス１２０に登録された順序で行われる。代替的には、各アプリケーションは、意図がそのアプリケーションを対象にする確率を示す信頼性レベルを提供するように求められ得る。例えば、音楽再生アプリケーションが現在音楽を再生していない場合、音楽再生アプリケーションが「停止」意図を処理する能力を前回示し得ていたとしても、それ自体が「停止」意図の受信側となる確率は比較的低い。意図はその後、最高の信頼性レベルを提供するアプリケーションに供給され得る。
【００７０】
図８はオーディオデバイス１０６の構成の一例を示す。図８の例において、オーディオデバイス１０６は動作論理を有し、動作論理はプロセッサ８０２及びメモリ８０４を備える。メモリ８０４は、プロセッサ８０２により実行されると、オーディオデバイス１０６の所望の機能を実施する行為またはアクションを行う命令形式のアプリケーション及びプログラムを含んでよい。メモリ８０４はコンピュータストレージ媒体の一種であってよく、揮発性及び不揮発性メモリを含んでよい。したがって、メモリ８０４はＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術を含んでよいが、これらに限定されない。
【００７１】
図８は、オーディオデバイス１０６の機能を実施するために、オーディオデバイス１０６により提供されメモリ８０４により記憶され得るアプリケーション及び／またはプログラムのいくつかの例を示すが、多数の他のアプリケーション及び機能の種類が多様な実施形態において提供され得る。
【００７２】
オーディオデバイス１０６はオーディオデバイス１０６内にありオーディオデバイス１０６に連結されるハードウェア及びサービスを管理するように構成されるオペレーティングシステム８０６を有してよい。さらに、オーディオデバイス１０６は、アクションを行いユーザ音声に応じてサービスを提供するために、ユーザ構内１０２からオーディオを受信し、受信したオーディオを処理するオーディオ処理モジュール８０８を含んでよい。いくつかの場合、オーディオ処理モジュール８０８は受信したオーディオに対して音声認識及び自然言語理解を行ってよい。他の場合では、オーディオ処理モジュールは受信したオーディオを音声ベースサービス１０８に伝達し、音声ベースサービス１０８は音声処理サービス１１０を使用して、音声認識及び自然言語理解などの音声処理を行い得る。オーディオ処理モジュール８０８は、フィルタリング、圧縮などの多様な種類のオーディオ処理を行ってよく、デジタル信号プロセッサまたは他の信号処理方法を利用してよい。
【００７３】
オーディオ処理モジュール８０８はさらに、音声を作成または生成することに応答可能であってよい。例えば、オーディオデバイス１０６は音声ベースサービス１０８からテキストを受信してよく、そのテキストを音声に変換してよい。代替的には、オーディオデバイス１０６は、オーディオデバイス１０６によるレンダリングのために、オーディオ処理モジュール８０８により処理されるオーディオ信号を受信してよい。
【００７４】
オーディオデバイス１０６は、音声ベースサービス１０８との通信チャネルを構築するように構成される通信コンポーネント８１０を有してよい。多様な種類の通信プロトコルが通信コンポーネント８１０によりサポートされてよい。いくつかの場合、通信コンポーネント８１０は、多様な種類のネットワーク通信技術のうちの１つを使用して、ＡＰＩ１２２を通じた音声ベースサービス１０８とのセキュアな及び／または暗号化された通信チャネルを構築するように構成されてよい。
【００７５】
オーディオデバイス１０６はさらに、オーディオデバイス１０６により行われるオーディオアクティビティに応じて、上述のイベントメッセージを提供するように構成されるイベント報告モジュール８１２を有してよい。いくつかの実装では、オーディオデバイス１０６は、イベントメッセージを音声ベースサービス１０８に事前に提供してよい。他の実施態様では、音声ベースサービスはオーディオデバイス１０６にポーリングまたは問い合わせを行い、イベントメッセージを取得してよい。
【００７６】
上述のソフトウェア機能性に加え、オーディオデバイス１０６は多様な種類の他のアプリケーション、機能及び／またはサービス８１４を実装してよい。例えば、他のサービス８１４は、ユーザ対話に応じて、または音声ベースサービス１０８もしくはアプリケーション１１８の命令を受けて、図８において曲または他の種類のオーディオを再生するメディアプレーヤ８１６として参照されるオーディオ機能またはアプリケーションを含んでよい。メディアプレーヤ８１６は音声ベースサービス１０８からのオーディオを、１つ以上のアプリケーション１１８または音楽サービス、ポッドキャストサービスなどのサードパーティサービスから受信してよい。例えば、音声ベースサービス１０８及び／またはアプリケーション１１８のうちの１つは、特定の曲をサードパーティサービスから取得及び再生するようオーディオデバイス１０６に命令してよい。この命令を受信すると、オーディオデバイス１０６のメディアプレーヤ８１６はサードパーティサービスに連絡し、曲のストリーミングまたはダウンロードを開始してよく、その後、オーディオデバイス１０６に曲を再生するように命令した音声ベースサービス１０８またはアプリケーション１１８からの追加の命令または情報なく曲を再生してよい。同様に、オーディオデバイス１０６のメディアプレーヤ８１６による再生のために、再生リストをメディアプレーヤ８１６に提供してよい。
【００７７】
オーディオデバイス１０６はさらに、デバイスインターフェース８１８及び通信インターフェース８２０を含む、多様な種類のハードウェアベースのコンポーネントまたは機能を含んでよい。デバイスインターフェース８１８は、ブルートゥース（商標）デバイス、リモート表現デバイス、リモートセンサ等などの補助デバイスへの接続を提供してよい。通信インターフェース８２０は、ネットワークインターフェース及びオーディオデバイス１０６が音声ベースサービス１０８に接続し、音声ベースサービス１０８と通信することを可能にする他の種類のインターフェースを含んでよい。
【００７８】
オーディオデバイス１０６は、動作情報をユーザ１０４に通信するために使用されるライトなどの多様な種類のインジケータ８２２を有してよい。インジケータ８２２はＬＥＤ（発光ダイオード）、フラットパネルディスプレイ素子、テキストディスプレイ等を含んでよい。
【００７９】
オーディオデバイス１０６はさらに、多様な種類の物理コントロール８２４を有してよく、物理コントロール８２４はボタン、ノブ、スライダ、タッチセンサ等を含んでよい。物理コントロール８２４は、オーディオデバイス１０６の有効化／無効化、オーディオデバイス１０６のオーディオ出力量の設定などの基本機能に使用してよい。
【００８０】
オーディオデバイス１０６はユーザ音声入力などのオーディオ入力を受信する１つ以上のマイクロフォンを含むマイクロフォンユニット８２６を含んでよい。マイクロフォンユニット８２６は、いくつかの実施態様では、指向性マイクロフォンアレイを備えてよく、これにより様々な方向からの音が選択的に受信及び／または拡張し得る。オーディオデバイス１０６はさらに、オーディオの出力のためのスピーカ８２８を含んでよい。
【００８１】
物理コントロール８２４及びマイクロフォンユニット８２６に加え、オーディオデバイス１０６は多様な他の種類のセンサ８３０を有してよく、センサ８３０は静止カメラ及びビデオカメラ、デプスセンサ、３Ｄ（三次元）カメラ、赤外線センサ、近接センサ、環境音及び環境光のレベルを計測するためのセンサなどを含んでよい。オーディオデバイス１０６はさらに、センサ８３９からの情報を利用してユーザ構内１０２及びユーザ構内１０２の内部の環境状況を判定する分析能力を有してよい。例えば、オーディオデバイス１０６は光学情報を分析でき、部屋の内部の人または物体の存在及び／または特定を含む部屋の３Ｄ特徴を判定し得る。別の例として、オーディオデバイス１０６は、オーディオ再生を最適化するために、部屋のオーディオ特徴を検出及び評価できてよい。
【００８２】
オーディオデバイス１０６はさらに、ユーザ１０４と対話するための他のユーザインターフェース（ＵＩ）要素８３２を有してよい。他のＵＩ要素は、ディスプレイパネル、プロジェクタ、タッチパネル、キーボード等を含んでよい。
【００８３】
特定の状況では、オーディオデバイス１０６は、スマートフォン、タブレットコンピュータ、眼鏡、時計等の携帯デバイスを備えてよい。携帯デバイスは、コンパス、加速度計、ジャイロスコープ、全地球測位受信機などのセンサを有してよく、さらにアプリケーション及びネットワークベース情報リソースへのアクセスを基に、多様な環境情報を決定する能力を有してよい。
【００８４】
図９は音声ベースサービス１０８及び／または本明細書に記載のサービスを提供するために使用され得る他のコンポーネントの機能を実装するために使用され得る、サーバ９００の関連コンポーネントを例示する。概して、機能要素は１つ以上のサーバにより実装されてよく、上述の多様な機能は様々なサーバにわたり多様な方法で分散される。サーバは共にまたは個別に配置されてよく、仮想サーバ、サーババンク及び／またはサーバファームとして組織化されてよい。記載した機能は単一のエンティティまたは企業のサーバにより提供されてよく、あるいは複数のエンティティまたは企業のサーバ及び／またはサービスを利用してよい。
【００８５】
非常に基本的な構成では、一例のサーバ９００は、１つ以上のプロセッサ及び関連するメモリ９０４から構成される処理ユニット９０２を備え得る。サーバ９００の構成に応じて、メモリ９０４はコンピュータストレージ媒体の一種であってよく、揮発性及び不揮発性メモリを含んでよい。したがって、メモリ９０４はＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術を含んでよいが、これらに限定されない。
【００８６】
メモリ９０４は処理ユニット９０２により実行可能な任意の数の機能コンポーネントを記憶するために使用されてよい。多くの実施形態では、これらの機能コンポーネントは処理ユニット９０２により実行可能な命令またはプログラムを備え、実行されると、上述のアクションを行うための動作論理を実施する。
【００８７】
メモリ９０４に記憶される機能コンポーネントは、オペレーティングシステム９０６及びコンピュータ、メディア消費デバイスなどのリモートデバイスと対話するウェブサービスコンポーネント９０８を含んでよい。メモリ９０４はさらに、音声処理サービス１１０、コマンドサービス１２０、ＡＰＩ１２２、ルーティングコンポーネント１２４を実行する命令を有してよい。いくつかの場合、１つ以上のアプリケーション１１８はメモリ９０４に記憶される機能コンポーネントとしてさらに実装されてよい。
【００８８】
サーバ９００は、当然ながら、図９に示されない多くの他の論理コンポーネント、プログラムコンポーネント及び物理コンポーネントを含んでよい。
【００８９】
オーディオデバイス１０６は家庭で使用される音声制御または音声ベースのオーディオデバイスとして本明細書に記載されるが、本明細書に記載する技術は、通信デバイス及びコンポーネント、ハンズフリーデバイス、エンターテイメントデバイス、メディア再生デバイス、タブレットコンピュータ、パーソナルコンピュータ、特定用途デバイスなど多様な異なる種類のデバイスと連動して実装されてよい。
【００９０】
上述の実施形態は、コンピュータ、プロセッサ、デジタル信号プロセッサ、アナログプロセッサなどのプログラムで実装されてよい。しかしながら、他の実施形態では、１つ以上のコンポーネント、機能または要素は、アナログ回路及び／またはデジタル論理回路を含む特殊または専用回路を使用して実装されてよい。
【００９１】
さらに、添付の特許請求の範囲で定義される主題は、特定の特徴に固有の文言で記載されたが、必ずしも記載された特定の特徴に限定されるものではないことは理解されるべきである。むしろ、特定の特徴は、特許請求の範囲を実施する例示的な形態として開示されている。
【００９２】
１．複数のアプリケーションと通信し、オーディオデバイスと通信し、前記オーディオデバイスにより再生されることになるオーディオコンテンツを提供するオーディオアプリケーションに対してアクティビティを行うために前記オーディオデバイスにコマンドを送信するように構成されるコマンドサービスであり、前記コマンドは前記オーディオアプリケーションに対応するアプリケーション識別子を提示する、前記コマンドサービスと、
前記オーディオデバイスにより再生される音に関するイベントメッセージを前記オーディオデバイスから受信することであり、前記イベントメッセージは前記オーディオアプリケーションに対応する前記アプリケーション識別子を提示する、前記イベントメッセージを受信することと、
前記オーディオデバイスにより再生される前記音がユーザとの音声対話の一部であることを前記イベントメッセージが示す場合、前記オーディオアプリケーションを１次的にアクティブであると指定することと、
前記オーディオデバイスにより再生される前記音がユーザとの音声対話の一部でないことを前記イベントメッセージが示す場合、前記オーディオアプリケーションを２次的にアクティブであると指定することと、
を備える行為を行うように構成される制御論理と、
前記オーディオデバイスからオーディオ信号を受信し、前記オーディオ信号のユーザ音声を認識するように構成される音声認識サービスと、
前記ユーザ音声の意図を決定するように構成される言語理解サービスと、
を備え、
前記制御論理は、
前記複数のアプリケーションの中に１次的にアクティブなアプリケーションがある場合、前記１次的にアクティブなアプリケーションが（ａ）前記ユーザ音声の前記意図により少なくとも部分的に示される第１アクションを行うこと、または（ｂ）前記ユーザ音声に応答する第１音声を生成することにより、前記ユーザ音声に応答するように要求することと、
前記複数のアプリケーションの中に１次的にアクティブなアプリケーションがない場合、及び前記複数のアプリケーションの中に２次的にアクティブなアプリケーションがある場合、前記２次的にアクティブなアプリケーションが（ａ）前記ユーザ音声の前記意図により少なくとも部分的に示される第２アクションを行うこと、または（ｂ）前記ユーザ音声に応答する第２音声を生成することにより、前記ユーザ音声に応答するように要求することと、
を備えるさらなるアクションを行うように構成される、
システム。
【００９３】
２．前記イベントメッセージは前記音が前記ユーザとの音声対話の一部かどうかを示すイベント分類を提示し、前記分類は前記音が
ユーザ対話の一部である音声、
ユーザ対話の一部でない音声、
ユーザ対話の一部であるオーディオコンテンツ、
ユーザ対話の一部でないオーディオコンテンツ、または
前記オーディオデバイスによる状態の検出に応じて与えられるオーディオ通知
のうち少なくとも１つを備える音を示す、条項１に記載のシステム。
【００９４】
３．前記イベントメッセージは、前記オーディオデバイスによる状態の検出に応じて前記第２オーディオに通知が与えられることを示し、前記行為はさらに前記オーディオアプリケーションが１次的にアクティブであると指定することを備える、条項１に記載のシステム。
【００９５】
４．前記アクションは、
所定期間に前記オーディオアプリケーションを識別するイベントメッセージが受信されなかったことを判定することと、
前記オーディオアプリケーションを１次的にアクティブにする前記指定を取り消すことと、
をさらに備える、条項１に記載のシステム。
【００９６】
５．アクティビティを行うためにオーディオデバイスにコマンドを提供することであり、前記コマンドは複数のアプリケーションの中から応答可能なアプリケーションを識別する、前記コマンドを提供することと、
前記オーディオデバイスにより伝えられる音に関するイベントメッセージを前記オーディオデバイスから受信することであり、前記イベントメッセージは前記応答可能なアプリケーションを識別する、前記イベントメッセージを受信することと、
前記音がユーザ対話の一部であることを前記イベントメッセージが示す場合、前記応答可能なアプリケーションを１次的にアクティブであると指定することと、
前記オーディオデバイスにより取得される音声を受信することと、
前記音声の意図を決定することと、
前記複数のアプリケーションの中に前記意図に応答できる１次的にアクティブなアプリケーションがある場合、前記１次的にアクティブなアプリケーションに前記意図に応答するよう要求することと、
を備える方法。
【００９７】
６．前記オーディオがユーザ対話の一部であることを前記イベントメッセージが示さない場合、前記応答可能なアプリケーションを２次的にアクティブであると指定することと、
前記複数のアプリケーションの中に前記意図に応答できる１次的にアクティブなアプリケーションがない場合、前記複数のアプリケーションの中の２次的にアクティブなアプリケーションに前記意図に応答するよう要求することと、
をさらに備える、条項１に記載の方法。
【００９８】
７．前記複数のアプリケーションの中に前記意図に応答できる１次的にアクティブなアプリケーションがない場合、
前記２次的にアクティブなアプリケーションが前記意図に応答できると決定することと、
前記２次的にアクティブなアプリケーションを１次的にアクティブであると指定することと、
をさらに備える、条項２に記載の方法。
【００９９】
８．前記１次的にアクティブなアプリケーションが前記意図に応答しないという表示を前記１次的にアクティブなアプリケーションから受信することと、
前記１次的にアクティブなアプリケーションから前記表示を受信することに応じて、前記２次的にアクティブなアプリケーションに前記意図に応答するように要求することと、
をさらに備える、条項２に記載の方法。
【０１００】
９．前記１次的にアクティブなアプリケーションに前記意図に応答するように要求する前に、前記１次的にアクティブなアプリケーションが前記意図に応答できると決定することをさらに備える、条項１に記載の方法。
【０１０１】
１０．前記分類は前記オーディオが
ユーザ対話の一部である音声、
ユーザ対話の一部でない音声、
ユーザ対話の一部であるオーディオコンテンツ、
ユーザ対話の一部でないオーディオコンテンツ、または
前記オーディオデバイスによる状態の検出に応じて与えられるオーディオ通知
のうちの少なくとも１つであることを示す、条項１に記載の方法。
【０１０２】
１１．前記オーディオ通知は、
ユーザ対話の一部でないバックグラウンドオーディオ通知と、
ユーザ対話の一部であるフォアグラウンドオーディオ通知と、
を備える、条項６に記載の方法。
【０１０３】
１２．前記応答可能なアプリケーションを識別するアプリケーション識別子を前記コマンドが提示することと、
前記応答可能なアプリケーションを識別するために、前記イベントメッセージが前記アプリケーション識別子を提示する、
条項１に記載の方法。
【０１０４】
１３．所定期間に前記応答可能なアプリケーションを識別するイベントメッセージが受信されなかったことを判定することと、
前記応答可能なアプリケーションを１次的にアクティブとする前記指定を取り消すことと、
をさらに備える、条項１に記載の方法。
【０１０５】
１４．デバイスにより行われる第１アクションに関する第１イベントメッセージを前記デバイスから受信することであり、前記イベントメッセージは複数のアプリケーションの中から第１応答可能なアプリケーションを識別し、前記複数のアプリケーションのそれぞれはユーザ音声により表現される１つ以上の意図に応答できる、前記受信すること、
前記第１アクションがユーザ対話の一部であると決定することと、
前記第１応答可能なアプリケーションを１次的にアクティブであると指定することと、
第１ユーザ音声の第１意図を識別することと、
前記複数のアプリケーションの中に前記第１意図に応答できる１次的にアクティブなアプリケーションがあることを判定することと、
前記第１意図に応答するために前記１次的にアクティブなアプリケーションを選択することと、
を備える方法。
【０１０６】
１５．前記デバイスにより行われる第２アクションに関する第２イベントメッセージを前記デバイスから受信することであり、前記第２イベントメッセージは前記複数のアプリケーションの中から第２応答可能なアプリケーションを識別することと、
前記第２アクションがユーザ対話の一部でないと決定することと、
前記第２応答可能なアプリケーションを２次的にアクティブであると指定することと、
第２ユーザ音声の第２意図を決定することと、
前記複数のアプリケーションの中に前記第２意図に応答できる１次的にアクティブなアプリケーションがないことを判定することと、
前記第２意図に応答するために前記２次的にアクティブなアプリケーションを選択することと、
をさらに備える、条項１０に記載の方法。
【０１０７】
１６．第３ユーザ音声の第３意図を決定することと、
前記１次的にアクティブなアプリケーションが前記第３意図に応答しないと決定することと、
前記２次的にアクティブなアプリケーションに前記第３意図に応答するように要求することと、
をさらに備える、条項１１に記載の方法。
【０１０８】
１７．第３ユーザ音声の第３意図を決定することと、
前記１次的にアクティブなアプリケーションが前記第３意図に応答しないという表示を前記１次的にアクティブなアプリケーションから受信することと、
前記２次的にアクティブなアプリケーションに前記第３意図に応答するように要求することと、
をさらに備える、条項１１に記載の方法。
【０１０９】
１８．前記イベントメッセージは前記オーディオの分類を示し、前記分類は前記オーディオが、
ユーザ対話の一部である音声、
ユーザ対話の一部でない音声、
ユーザ対話の一部であるオーディオコンテンツ、
ユーザ対話の一部でないオーディオコンテンツ、または
前記オーディオデバイスによる状態の検出に応じて与えられるオーディオ通知
であることを示す、条項１０に記載の方法。
【０１１０】
１９．前記オーディオ通知は、
ユーザ対話の一部でないバックグラウンドオーディオ通知と、
ユーザ対話の一部であるフォアグラウンドオーディオ通知と、
を備える、条項１４に記載の方法。
【０１１１】
２０．前記第１イベントメッセージは前記第１応答可能なアプリケーションを識別するアプリケーション識別子を提示する、条項１０に記載の方法。
【図１】
0006549715.tif 000002
【図２】
0006549715.tif 000003
【図３】
0006549715.tif 000004
【図４】
0006549715.tif 000005
【図５】
0006549715.tif 000006
【図６】
0006549715.tif 000007
【図７】
0006549715.tif 000008
【図８】
0006549715.tif 000009
【図９】
0006549715.tif 000010