(57)【特許請求の範囲】
【請求項１】
１つ以上のサーバ・コンピュータ、
１つ以上のサーバ・アプリケーション、
音声処理コンポーネント、
インテント・ルータ、
を備え、
前記１つ以上のサーバ・アプリケーションは、前記１つ以上のサーバ・コンピュータで実行するためにユーザにより選択され有効にされていて、前記１つ以上の選択され有効にされたサーバ・アプリケーションは、前記ユーザの敷地内に設置された音声インタフェース・デバイスと連動して動作し、前記ユーザにサービスを提供し、前記音声インタフェース・デバイスは、前記音声インタフェース・デバイスで実行するために前記ユーザにより選択され有効にされる１つ以上のデバイス・アプリケーションを含み、
前記音声処理コンポーネントは、第一及び第二発話を前記音声インタフェース・デバイスから受信するように構成され、前記第一及び第二発話は、それぞれ第一及び第二ユーザ・インテントを表現し、さらに前記音声処理コンポーネントは、前記第一及び第二発話で自動音声認識及び自然言語理解を実行して前記第一及び第二ユーザ・インテントを判定するように構成され、
前記インテント・ルータは、
前記第一ユーザ・インテントに対応する前記１つ以上のサーバ・アプリケーションのうちの１つのサーバ・アプリケーションを識別し、
前記当該サーバ・アプリケーションを起動して前記第一ユーザ・インテントに対応する第一アクションを実行し、
前記１つ以上のデバイス・アプリケーションのうちの１つのデバイス・アプリケーションが前記第二ユーザ・インテントに対応すると決定し、
そのような決定に応答して、前記音声インタフェース・デバイスに前記第二ユーザ・インテントの指示を提供し、前記音声インタフェース・デバイスは、前記第二ユーザ・インテントに応答して前記第二ユーザ・インテントに対応する第二アクションを実行する、
ことを備える動作を実行するように構成される、
システム。
【請求項２】
前記音声インタフェース・デバイスは、（ａ）前記第二ユーザ・インテントに対応する前記１つ以上のデバイス・アプリケーションのうちの前記１つのデバイス・アプリケーションを識別するように、及び（ｂ）当該デバイス・アプリケーションを起動して前記第二アクションを実行するように構成される、
請求項１に記載の前記システム。
【請求項３】
さらに前記動作は、（ａ）前記第二ユーザ・インテントに対応する前記１つ以上のデバイス・アプリケーションのうちの前記１つのデバイス・アプリケーションを識別すること、及び（ｂ）当該デバイス・アプリケーションを起動させ前記第二アクションを実行させることを備える、
請求項１に記載の前記システム。
【請求項４】
前記１つ以上のサーバ・アプリケーション及び前記１つ以上のデバイス・アプリケーションは、１つ以上のユーザ要求に応答して利用可能なアプリケーションのコレクションから取得される、
請求項１乃至３のいずれか一項に記載の前記システム。
【請求項５】
前記インテント・ルータは、
前記第一ユーザ・インテント及び前記第二ユーザ・インテントの少なくとも１つについて、
デバイス・アプリケーション及びサーバ・アプリケーションを起動して、前記デバイス・アプリケーション及び前記サーバ・アプリケーションに前記第一ユーザ・インテント及び前記第二ユーザ・インテントの前記少なくとも１つの指示を提供するさらなる動作を実行するように構成される、
請求項１乃至４のいずれか一項に記載の前記システム。
【請求項６】
前記インテント・ルータは、
前記デバイス・アプリケーション及び前記サーバ・アプリケーションの一方又は双方から、前記デバイス・アプリケーション及び前記サーバ・アプリケーションの一方又は双方が前記第一ユーザ・インテント及び前記第二ユーザ・インテントの前記少なくとも１つに応答する動作を有している又は実行するという指示を受信し、
前記デバイス・アプリケーション及び前記サーバ・アプリケーションの一方からの応答の受信に基づいて、前記デバイス・アプリケーション及び前記サーバ・アプリケーションの他方に、終了、キャンセル、及びさらなる処理のキャンセルの少なくとも１つを命令することを備えるさらなる動作を実行するように構成される、
請求項５に記載の前記システム。
【請求項７】
音声インタフェース・デバイスから、第一インテントを指示する、第一ユーザ音声を受信すること、
前記第一ユーザ音声で自然言語理解を実行し、前記第一インテントを判定すること、
１つ以上のサーバ・コンピュータで実行するためにユーザによって選択され有効にされている第一アプリケーションに前記第一インテントへ応答させること、
前記音声インタフェース・デバイスから、第二インテントを指示する、第二ユーザ音声を受信すること、
自然言語理解を前記第二ユーザ音声で実行し、前記第二インテントを判定すること、
前記第二インテントに応答し、前記音声インタフェース・デバイスで実行するために前記ユーザにより選択され有効にされている、第二アプリケーションが前記音声インタフェース・デバイスで利用できると決定することに応答して、前記第二インテントの指示を前記音声インタフェース・デバイスに提供すること、を備える、方法。
【請求項８】
前記音声インタフェース・デバイスは、前記第二インテントの前記指示に応答し、前記第二インテントに対応するアクションを実行する、請求項７に記載の前記方法。
【請求項９】
前記音声インタフェース・デバイスは、前記第二インテントの前記指示に応答して、
前記第二インテントに対応する前記第二アプリケーションを識別し、
前記第二アプリケーションを起動して前記第二インテントに対応するアクションを実行する、
請求項７または８に記載の前記方法。
【請求項１０】
前記第二アプリケーションに前記第二インテントへ応答させること、
をさらに備える、請求項７乃至９のいずれか一項に記載の前記方法。
【請求項１１】
自然言語対話を前記ユーザと行い、前記第一及び第二ユーザ音声を受信することをさらに備える、請求項７乃至１０のいずれか一項に記載の前記方法。
【請求項１２】
前記第二インテントの前記指示を前記音声インタフェース・デバイスに提供することは、前記第二インテントに応答するためのアプリケーションが前記１つ以上のサーバ・コンピュータで実行するために前記ユーザにより選択され有効にされていないことを判定することに応答して実行される、請求項７乃至９のいずれか一項に記載の前記方法。
【請求項１３】
前記第一インテント及び前記第二インテントの少なくとも１つについて、
デバイス・アプリケーション及びサーバ・アプリケーションを起動して、前記デバイス・アプリケーション及び前記サーバ・アプリケーションに前記第一インテント及び前記第二インテントの前記少なくとも１つの指示を提供することをさらに備える、請求項７乃至１２のいずれか一項に記載の前記方法。
【請求項１４】
前記デバイス・アプリケーション及び前記サーバ・アプリケーションの一方又は双方から、前記デバイス・アプリケーション及び前記サーバ・アプリケーションの一方又は双方が前記第一インテント及び前記第二インテントの前記少なくとも１つに応答する動作を有している又は実行するという指示を受信し、
前記デバイス・アプリケーション及び前記サーバ・アプリケーションの一方からの応答の受信に基づいて、前記デバイス・アプリケーション及び前記サーバ・アプリケーションの他方に、終了、キャンセル、及びさらなる処理のキャンセルの少なくとも１つを命令すること、をさらに備える、請求項１３に記載の前記方法。
【請求項１５】
少なくとも１つのプロセッサに実行されたときに、前記少なくとも１つのプロセッサに、請求項７乃至１４のいずれか一項の方法を実行させる命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、２０１４年８月１１日に出願された、米国特許出願第１４／４５６，６２０号に優先権を主張する。その内容全体は、本明細書に参照により本明細書で援用される。
【背景技術】
【０００２】
住宅及び他のユーザの敷地には、常時接続のインターネットまたは「クラウド」接続の設備がますます増えている。多くの事例において、モバイル・ユーザでも常時またはほぼ常時のデータ接続を有する。ネットワーク通信の一般的な可用性は、コンピューティング・デバイスの能力の向上と相まって、ユーザにアクセス可能なさまざまな接続されたデバイスを使用する新規のサービスの可能性及び他の機能性のいくつかを生み出している。言語ベースかつ音声ベースのシステムは、ユーザが自動化されたシステムとインタラクトする場合にユーザに利便性を提供するために使用されることができる技術の実施例である。
【０００３】
詳細な説明は、添付の図面を参照して記述される。これらの図面において、参照番号の最も左の数字（複数を含む）は、この参照番号が最初に出現する図面を特定する。異なる図面内の同じ参照番号の使用は、類似または同一の構成要素または特徴を示す。
【図面の簡単な説明】
【０００４】
【図１】制御サービス及び音声インタフェース・デバイスを含む音声ベース・システムを説明するブロック図である。
【図２】制御サービス及び音声インタフェース・デバイスでのアプリケーションの使用及びインストールを説明するブロック図である。
【図３】音声に基づきアプリケーションを選択する際に使用された機能コンポーネントを説明するブロック図である。
【図４】音声に基づきアプリケーションを選択する際に使用された機能コンポーネントを説明するブロック図である。
【図５】記述された実施形態において制御サービスにより実行されることができるアクションの実施例を説明する流れ図である。
【図６】記述された実施形態において音声インタフェース・デバイスにより実行されることができるアクションの実施例を説明する流れ図である。
【発明を実施するための形態】
【０００５】
本開示は、ユーザと自然言語及び／または音声ベース・インタラクションを実行するデバイス、システム及びサービスを記述する。記述された実施形態において、システムは、ユーザに聴いて、またはユーザとインタラクトして、ユーザの音声の自然言語理解に基づきユーザ・インテントを判定する。たとえば、ユーザは、曲を再生する、または映画のチケットを注文するインテントとして理解される表現を発話することができる。特定の実施形態において、システムは、自然言語対話をユーザと行い、ユーザ・インテントを判定する、または明らかにすることができる。ユーザ・インテントを判定すると、システムは、アクションを実行すること、またはインテントの達成でサービスを提供することで、たとえば、曲を再生すること、またはユーザとさらにインタラクトして映画のチケットを注文することで、インテントに基づき動作する。
【０００６】
システムは、ユーザの自宅内に設置された音声インタフェース・デバイス、及び支援するクラウド・ベースの制御サービスを含むことができる。音声インタフェース・デバイスは、ユーザ発話をキャプチャしそれらを制御サービスに提供するように構成される。制御サービスは、音声認識及び自然言語理解を発話で実行し、これらの発話で表現されたインテントを判定する。識別されたインテントに応答して、制御サービスは、対応するアクションを実行させる。アクションは、制御サービスで、または機能を実行するように音声インタフェースに命令することで、実行されることができる。
【０００７】
システムのビルトイン能力は、ユーザが選択する、または購入するアフターマーケット・アプリケーションにより拡張されることができる。これらのようなアプリケーションは、制御サービスまたは音声インタフェース・デバイスのいずれか一方でインストール及び実行するように設計されることができる。受信したユーザ音声に基づきユーザ・インテントを判定すると、制御サービスは、このインテントに応答するのに適切なアプリケーションのうちの１つを識別する。このようなアプリケーションが制御サービスでインストールされ有効にされている場合に、制御サービスは、そのアプリケーションを起動する。その他の方法で、音声インタフェース・デバイスにインストールされた適切なアプリケーションがある場合に、制御サービスは、音声インタフェース・デバイスへユーザ・インテントの指示を伝える。インテントの指示を受信すると、音声インタフェース・デバイスは、対応するアプリケーションを起動して、ユーザ・インテントに応答する。
【０００８】
図１は、これらの技術を実装するために使用されることができるような音声ベースのプラットフォームまたはシステム１００の実施例を示す。このシステム１００は、オーディオをキャプチャ及び再生可能な音声インタフェース・デバイス１０２を含むことができる、またはこれを利用することができる。音声インタフェース・デバイス１０２は、住宅または他の敷地のような環境１０４にローカルであり、及び／またはこの内に設置され、ユーザ１０６にサービスを提供することができる。音声インタフェース・デバイスは、音声インタフェース、インタフェース・デバイスまたは単にデバイスと本明細書で代替的に言われることができる。異なる実施形態において、音声インタフェース・デバイスの機能は、スマートフォン、タブレット・コンピュータ、メディア・プレーヤ、パーソナル・コンピュータなどのようなモバイル・デバイスを含む異なるタイプのデバイスにより実行されることができる。
【０００９】
音声インタフェース・デバイス１０２は、音声インタフェース・デバイス１０２からオーディオを受信するように、受信したオーディオで音声を認識するように、及び認識された音声に応答して機能またはサービスを実行または開始するように構成される、また音声サービスまたは音声ベース・サービスと言われる、リモート、ネットワーク・ベースの、またはネットワーク・アクセス可能な制御サービス１０８の制御と連動して、及び／またはこれの制御下で動作することができる。これらのような機能またはサービスは、音声インタフェース・デバイス１０２から独立する制御サービス１０８により実装されることができる、及び／または音声インタフェース・デバイス１０２によりローカルに実行するために音声インタフェース・デバイス１０２にコマンドを提供することで実装されることができる。たとえば、制御サービス１０８は、音声インタフェース・デバイス１０２に制御サービス１０８により指定された音楽、音声または他のオーディオ・コンテンツを再生するように命令することができる。加えて、機能またはサービスは、音声インタフェース・デバイス１０２または制御サービス１０８で実行するためにユーザが有効にする、及び／またはインストールするアプリケーションにより実装されることができる。
【００１０】
音声インタフェース・デバイス１０２は、１つ以上のマイクロフォン１１０及び１つ以上のオーディオ・スピーカまたはトランスデューサ１１２を含み、ユーザ１０６との音声インタラクションを容易にすることができる。音声インタフェース・デバイス１０２は、制御サービス１０８と通信ネットワーク１１６経由で通信するためにネットワーク通信インタフェース１１４を含むことができる。通信ネットワーク１１６は、インターネットのような公的な、ワイド・エリア・ネットワークを含むことができる、またはユーザ１０６のローカルな敷地を越えて拡張するさまざまな他のタイプの公的及び私的ネットワークのうちのいずれかを含むことができる。加えて、通信インタフェース１１４は、ユーザの敷地内のローカル・エリア・ネットワーク経由でローカルに通信することができる。
【００１１】
音声インタフェース・デバイス１０２は、プロセッサ１１８及びメモリ１２０を含むことができる操作または制御ロジックを含むことができる。プロセッサ１１８は、複数のプロセッサ及び／または複数のコアを含む１つのプロセッサを含むことができる。またプロセッサ１１８は、オーディオ信号を処理するためのデジタル信号プロセッサを備える、または含むことができる。
【００１２】
制御ロジックは、メモリ１２０に格納されたアプリケーション、プログラム及び他のソフトウェアを含むことができる、または備えることができる。ソフトウェアは、本明細書で記述された機能を有する、音声インタフェース・デバイス１０２の所望の機能を実装する動作またはアクションを実行する、プロセッサ１１８により実行されるコンピュータ実行可能命令を含むことができる。メモリ１２０は、非一時的なコンピュータ可読記憶媒体のタイプであってもよく、揮発性及び不揮発性メモリを含むことができる。このように、メモリ１２０は、限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、磁気媒体、光学媒体または他のメモリ技術を含むことができる。またメモリ１２０は、ＣＤ−ＲＯＭ、ＤＶＤ、フラッシュ・ドライブ、メモリ・スティックなどのような、ソフトウェアを転送する、または配信するために一般的に使用される媒体を含むことができる。
【００１３】
ソフトウェアは、音声インタフェース・デバイス１０２に予めインストールされ、これと一体化されるシステムまたはオペレーティング・ソフトウェア１２２を含むことができる。オペレーティング・ソフトウェア１２２は、制御サービス１０８への、ドライバ、オーディオ処理機能、インタフェース、及びその他のものを含む、音声インタフェース・デバイス１０２の基本的な機能を提供するオペレーティング・システムを含むことができる。オペレーティング・ソフトウェア１２２は、さまざまな「ビルトイン」機能及びアクションを実行するために予めインストールされたプログラムまたはアプリケーションを含むことができる。またオペレーティング・ソフトウェア１２２は、制御サービス１０８から受信した命令に応答してアクションを実行するアクション・ハンドラまたはインタフェースを含むことができる。
【００１４】
またメモリ１２０は、メモリ１２０にユーザ１０６によりインストールされていて、デバイス１０２の購入及びインストール後にプロセッサ１１８により実行のために起動されているアプリケーションを含むことができる、デバイス・アプリケーションと本明細書でまた言われる、ユーザがインストールしたアプリケーション１２４を含むことができる。さまざまなアフターマーケット・アプリケーションは、ローカル・インストール及び実行のためにユーザに利用可能であることができる。いくつかの実施形態において、制御サービス１０８は、音声インタフェース・デバイス１０２での実行のためにさまざまな開発者及びベンダーにより利用可能にされているアプリケーションをユーザが識別してインストールすることを可能にするための機能を提供することができる。たとえば、ユーザは、「タクシーを呼ぶためのアプリケーションを探し出す」と言うことができる。制御サービス１０８は、音声インタフェース・デバイス１０２でのインストール用のこのようなアプリケーションを提供することを提案することで応答することができる。ユーザは、この提案を受け取ることができ、その結果すぐにアプリケーションは、音声インタフェース・デバイス１０２に提供され、これにインストールされることができる。
【００１５】
制御サービス１０８は、場合により、ネットワーク１１６経由で維持されアクセス可能であるネットワーク・アクセス可能なコンピューティング・プラットフォームの部分であってもよい。このようなネットワーク・アクセス可能なコンピューティング・プラットフォームは、「オンデマンド・コンピューティング」、「サービスとしてのソフトウェア（ＳａａＳ）」、「プラットフォーム・コンピューティング」、「ネットワーク・アクセス可能なプラットフォーム」、「クラウド・サービス」、「データ・センタ」、及びその他のもののような、用語を使用して参照されることができる。制御サービス１０８は、異なるユーザの住宅または敷地内の多数の音声インタフェース・デバイス１０２にサービスを提供するように構成されることができる。
【００１６】
音声インタフェース・デバイス１０２及び／または制御サービス１０８は、有線技術（たとえば、ワイヤ、ユニバーサル・シリアル・バス（ＵＳＢ）、光ファイバ・ケーブルなど）、無線技術（たとえば、無線周波数（ＲＦ）、セルラ、移動電話ネットワーク、人工衛星、Ｂｌｕｅｔｏｏｔｈなど）、または他の接続技術を介してネットワーク１１６に通信可能に結合することができる。ネットワーク１１６は、データ及び／または音声ネットワークを含む、通信ネットワークのいずれかのタイプの代表であり、有線インフラストラクチャ（たとえば、同軸ケーブル、光ファイバ・ケーブルなど）、無線インフラストラクチャ（たとえば、ＲＦ、セルラ、マイクロ波、人工衛星、Ｂｌｕｅｔｏｏｔｈ（登録商標）など）、及び／または他の接続技術を使用して実装されることができる。
【００１７】
制御サービス１０８は、音声インタフェース・デバイス１０２からオーディオ・ストリームを受信するように、このオーディオ・ストリームで音声を認識するように、及び認識された音声からユーザ・インテントを判定するように構成される。認識されたインテントの性質に応じて、制御サービス１０８は、アクションを実行することで、またはアプリケーションを起動してアクションを実行することで応答することができる。
【００１８】
いくつかの事例において、制御サービス１０８は、インテントを判定して、このインテントの記述を音声インタフェース・デバイス１０２へ返すことができ、音声インタフェース・デバイス１０２は、インテントに応答してアクションを実行することが可能である。制御サービス１０８から認識されたインテントを受信すると、音声インタフェース・デバイスは、ユーザがインストールしたアプリケーション１２４のうちの１つを起動して、このインテントの達成でアクションを実行することができる。
【００１９】
他の事例において、制御サービスは、音声インタフェース・デバイス１０２に命令またはコマンドを返すことができ、音声インタフェース・デバイス１０２のコマンド・ハンドラは、命令またはコマンドを実行して、環境１０４内でアクションを実行することができる。
【００２０】
制御サービス１０８は、１つ以上のサーバ、コンピュータ及び／またはプロセッサ１２６を含むことができる、操作または制御ロジックを含む。制御ロジックは、本明細書に記述された機能を含む、制御サービス１０８の所望の機能を実装する動作またはアクションを実行する、プロセッサ１２６により実行される命令の形式で、アプリケーション、プログラム及び／または他のソフトウェアを含む、メモリ１２８を含む。メモリ１２８は、非一時的なコンピュータ可読記憶媒体のタイプであってもよく、揮発性及び不揮発性メモリを含むことができる。このように、メモリ１２８は、限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュ・メモリ、磁気媒体、光学媒体または他のメモリ技術を含むことができる。またメモリ１２８は、ＣＤ-ＲＯＭ、ＤＶＤ、フラッシュ・ドライブ、メモリ・スティックなどのような、ソフトウェアを転送または配信するために一般に使用された媒体を含むことができる。
【００２１】
具体的に示されない他の論理及び物理コンポーネント間で、 制御サービス１０８のソフトウェアは、また音声サービス１３０と言われる、音声処理コンポーネント１３０を含むことができる。音声サービス１３０は、マイクロフォン１１０から音声インタフェース・デバイス１０２により提供されたオーディオ信号で人間の音声を認識する、自動音声認識（ＡＳＲ）機能を含むことができる。また音声サービス１３０は、音声認識コンポーネントにより認識されるユーザ音声に基づきユーザ・インテントを判定する自然言語理解（ＮＬＵ）機能を含むことができる。また音声サービス１３０は、音声オーディオを合成する、またはその他の方法で生成する音声生成機能を含むことができる。たとえば、音声生成機能は、音声インタフェース・デバイス１０２のスピーカ１１２で再生される音声を生成するテキスト読み上げコンポーネントを含むことができる。
【００２２】
また制御サービス１０８は、音声サービス１３０と併せてユーザ１０６との音声対話またはインタラクションを調整するように構成された対話管理コンポーネント１３２を提供することができる。音声対話は、音声プロンプトを使用して情報についてユーザに尋ねることでユーザ・インテントを判定する、またはこれらを明らかにするために使用されることができる。
【００２３】
また制御サービス１０８は、ユーザ音声により表現されたインテントに対応する機能またはコマンドを判定するコマンド・インタプリタ及びアクション・ディスパッチャ１３４（下記で単にコマンド・インタプリタ１３４と言われる）を含むことができる。いくつかの事例で、コマンドは、音声インタフェース・デバイス１０２により少なくとも部分的に実行される機能に対応することができ、コマンド・インタプリタ１３４は、これらの事例において、これらのような機能を実装するために音声インタフェース・デバイス１０２にデバイス・コマンドまたは命令を提供することができる。コマンド・インタプリタ１３４は、音声インタフェース・デバイス１０２と連動して使用される基本的な「ビルトイン」能力を実装する。これらのような基本的な能力は、すべての音声インタフェース・デバイス１０２のユーザに対してデフォルトで実装され有効にされることができる。基本的な能力の実施例は、アラームまたは通知を設定すること、スピーカ１１２のボリュームを増減すること、スピーカ１１２を介して可聴音声を生成すること、同様のデバイスのユーザとの特定のタイプの通信を開始すること、及びその他のことを備えることができる。
【００２４】
また制御サービス１０８は、アフターマーケット・アプリケーション、サードパーティ・アプリケーション、任意選択のアプリケーション、有効なアプリケーション、サーバ・アプリケーション、及びその他のものとまた記述されることができる、１つ以上のユーザがインストールしたアプリケーション１３６を使用することを有する、またはこれを使用するように構成されることができる。このようなアプリケーションは、任意選択であることができ、利用可能でインストール可能なアプリケーションのライブラリまたは他のコレクションからユーザ１０６により取得されることができる。いくつかの事例で、ユーザは、システム１００と連動して使用するためにアプリケーションを購入することができる。一般的に、サーバ・アプリケーションは、デバイス・アプリケーション１２４と同じ方式でユーザにより選択、取得、及びインストールされることができる。
【００２５】
ユーザがインストールしたアプリケーション１３６は、コマンド・インタプリタ１３４により提供された基本的な機能に加えて、補足の、及び／または追加の機能及び能力を提供する。有効な、または承認されたユーザがインストールした１つのアプリケーション１３６、複数のアプリケーションは、アプリケーションがサービスを提供することが可能である認識されたユーザ・インテントに応答して自動的に起動されることができる。
【００２６】
特定の状況において、ユーザがインストールしたサーバ・アプリケーション１３６は、制御サービス１０８により提供されホストされることができる。あるいは、いくつかのサーバ・アプリケーション１３６は、サードパーティまたはサードパーティ・サービスにより提供される、及び／またはホストされることができ、ネットワーク・ベース・インタフェースを使用して制御サービス１０８と通信することができる。
【００２７】
また制御サービス１０８は、ユーザ音声により表現された、認識されたインテントに基づきアプリケーションを選択及び起動する、インテント・ルータ１３８と本明細書でまた言われる、アプリケーション選択コンポーネント１３８を含むことができる。たとえば、各サーバ・アプリケーション１３６は、アプリケーションが応答可能である１つ以上のインテントと関連することができる。コマンド・インタプリタ１３４によりサービスを提供不可能な認識されたユーザ・インテントに応答して、アプリケーション・セレクタ１３８は、制御サービス１０８のサーバ・アプリケーション１３６のうちの１つを選択して起動することができる。いくつかの事例で、またアプリケーション・セレクタ１３８は、音声インタフェース・デバイスのインストールされたデバイス・アプリケーション１２４から選択することができる。
【００２８】
また制御サービス１０８は、図１で示されないエンティティまたはデバイスを含む、受信したオーディオから認識された音声に応答して、機能を実行することができる。たとえば、制御サービス１０８は、他のネットワーク・ベース・サービスとインタラクトして、ユーザ１０６の代わりに情報またはサービスを取得することができる。
【００２９】
図２は、インストール可能な音声ベース・アプリケーションを特定の実施形態で取得して使用することができる方式の実施例を説明する。上記で説明されるように、音声インタフェース・デバイス１０２は、複数のユーザがインストールしたデバイス・アプリケーション１２４を含むことができ、また制御サービス１０８は、複数のユーザがインストールしたサーバ・アプリケーション１３６を含むことができる。インストールされたアプリケーション１２４及び１３６は、利用可能でインストール可能なアプリケーション２０２のコレクションから取得され、ユーザ要求に応答してインストールされることができる。利用可能なアプリケーション２０２は、任意選択であり、システム１００により提供された機能を補足する、または追加の機能を加えるアプリケーションを含むことができる。利用可能なアプリケーション２０２は、制御サービス１０８のオペレータにより提供されることができる、またはサードパーティ・エンティティにより設計され提供されることができる。
【００３０】
いくつかの利用可能なアプリケーション２０２は、ネットワーク・サーバまたはサービスによりホストされ、これらから実行されることができ、適切なネットワーク・アプリケーション・プログラミング・インタフェース（ＡＰＩ）を介してアクセスされることができる。その他の利用可能なアプリケーション２０２は、制御サービス１０８のサーバまたはプロセッサで実行するために設計されることができる。インストールされたサーバ・アプリケーション１３６は、制御サービス１０８の監督下でサードパーティ・サービスによりホストされるそれらと同様に、制御サービス１０８により実行されるそれらを含むことができる。さらに他の利用可能なアプリケーション２０２は、音声インタフェース・デバイス１０２でのインストール及びこれによる実行のために設計されることができる。インストールされたデバイス・アプリケーション１２４は、このようなアプリケーションを含む。
【００３１】
図１を参照して上記のように、制御サービス１０８は、自動音声認識（ＡＳＲ）コンポーネント２０４及び自然言語理解（ＮＬＵ）コンポーネント２０６を含むことができる。対話管理コンポーネント１３２は、音声認識コンポーネント２０４により認識されるような、及び／または自然言語理解コンポーネント２０６により理解されるような音声に基づきユーザ１０６との対話またはインタラクションを調整するように構成される。また制御サービス１０８は、対話管理コンポーネント１３２に応答して音声インタフェース・デバイス１０２でユーザ１０６に録音再生用の音声を生成する、テキスト読み上げコンポーネント２０８を含むことができる。
【００３２】
上記で説明されたコンポーネントは、異なるタイプのモデルまたはルールに基づき機能することができる。たとえば、ＡＳＲコンポーネント２０４は、さまざまなトレーニング技術により作成された音響モデルを含むことができる、ＡＳＲモデル２１０にその機能で基づくことができる。同様に、ＮＬＵコンポーネント２０６は、文法、レキシコン、フレーズ、応答、及びその他のものを指定し、またトレーニングにより作成されることができるＮＬＵモデル２１２を利用することができる。対話管理コンポーネント１３２は、対話をユーザと行うためのロジックを指定する対話モデル２１４を利用することができる。対話は、ユーザ１０６による自然言語ステートメントまたは発話及び音声またはテキスト応答を生成されたシステムの交互シーケンスを含む。対話モデル２１４は、インテントについてのより詳細な情報をユーザ１０６に促すために、またはユーザ１０６から他の情報を取得するために、受信したユーザ・ステートメントに基づき応答を作成するためのロジックを具現化する。
【００３３】
アプリケーション選択コンポーネントまたはインテント・ルータ１３８は、ＮＬＵコンポーネント２０６により識別されたユーザ・インテントに応答して、インストールされたデバイス・アプリケーション１２４及び／またはインストールされたサーバ・アプリケーション１３６を識別、選択、及び／または起動する。判定されたユーザ・インテントに応答して、インテント・ルータ１３８は、ユーザ・インテントにサービスを提供可能である、インストールされたアプリケーション１２４及び１３６のうちの１つを識別しようとする。このようなアプリケーションを探し出した場合に、それは、ユーザ・インテントを満たすため、またはユーザとさらなる対話を行いユーザ・インテントをさらに洗練するためのいずれか一方で呼び出される、または起動される。
【００３４】
各インストールされたアプリケーション１２４及び１３６は、アプリケーションによりサービスを提供可能であるインテントを定義するインテント仕様を有する、または提供することができる。このインテント仕様により指示されたインテントは、アプリケーション・インテントまたはアプリケーションのサービスを提供可能なインテントと本明細書で言われることができる。インストールされたアプリケーションのインテント仕様は、アプリケーションによりサービスを提供されることが可能である一般的なインテントまたはインテント・タイプを定義する。制御サービス１０８は、インストールされたアプリケーションのインテント仕様を使用して、アプリケーション１２４及び１３６に対応する、ユーザの発話、表現またはインテントを検出する。
【００３５】
アプリケーション・インテント仕様は、ＮＬＵモデル２１２と併せて自然言語理解コンポーネント２０６により使用するためのＮＬＵモデルを含むことができる。いくつかの事例で、ＮＬＵモデル２１２は、インストールされたアプリケーション１２４及び１３６により指定されたＮＬＵモデルを含む、または組み込むことができる。
【００３６】
またインストールされたアプリケーション１２４及び１３６は、ユーザ１０６との音声インタラクションを作成して調整する対話モデルを有する、または指定することができる。対話モデルは、対話モデル２１４と併せて対話管理コンポーネント１３２により使用され、ユーザ１０６との対話を作成して調整し、インストールされたアプリケーション１２４及び１３６の操作前または操作中のいずれか一方でユーザ・インテントを判定することができる。いくつかの事例で、対話モデル２１４は、インストールされたアプリケーション１２４及び１３６により指定された対話モデルを有する、または組み込むことができる。
【００３７】
制御サービス１０８は、アプリケーション・プログラミング・インタフェースを有する、または公開することができ、いくつかのアプリケーション１２４及び１３６は、制御サービス１０８でＡＰＩを介して登録されることができる。特定のアプリケーションの登録は、制御サービス１０８により使用するための対応するインテント仕様を指示する、または提供することができる。アプリケーション開発者は、ＡＰＩを介して自身のアプリケーションの登録を提供することができるため、アプリケーション１２４及び１３６は、制御サービス１０８と連動して使用されることができる。
【００３８】
ＮＬＵコンポーネント２０６及び対話管理コンポーネント１３２は、いくつかの実施形態において、アプリケーション１２４及び１３６のインテント仕様を使用して対話を行い、表現されたユーザ・インテントを識別し、ユーザが表現したインテントにサービスを提供することに対応する、またはこれを可能にするインストールされたアプリケーションを識別するように構成されることができる。
【００３９】
アプリケーションのインテント仕様は、アプリケーションの操作前、またはこれの操作中のいずれか一方で利用されることができる。いくつかの事例で、たとえば、対話管理コンポーネント１３２は、アプリケーションを開始する、またはこれを起動する前に、一般的なユーザ・インテントを判定するときにインテント仕様を利用することができる。さらに具体的に、ＮＬＵコンポーネント２０６及び対話管理コンポーネント１３２は、ＮＬＵモデル２１２及び対話モデル２１４と併せてアプリケーションのインテント仕様を使用して、アプリケーションがサービスを提供可能であるインテントをユーザが表現しているときを判定することができる。その後、ＮＬＵコンポーネント２０６及び対話管理コンポーネント１３２は、インテント仕様を使用して、さらに対話をユーザ１０６と行い、ユーザ・インテントをさらに洗練することができる。あるいは、アプリケーション自体は、制御サービス１０８の能力を利用して、さらに対話をユーザ１０６と行い、ユーザ・インテントを洗練して関連した機能を提供することができる。
【００４０】
実施例として、ユーザ発話に応答して、制御サービス１０８は、デバイス・アプリケーション１２４及びサーバ・アプリケーション１３６の両方を含む、複数のアプリケーションのインテント仕様を参照して、アプリケーションのうちの１つによりサービスを提供可能なインテントとして登録されている「チケットを購入する」インテントを識別することができる。つぎにサービス１０８は、対応するアプリケーションを起動することができる。起動されると、アプリケーションは、判定されたインテントの指示を受信することができ、さらにユーザ１０６との対話を行い、または調整して、さらにインテント詳細を引き出すことができる。ユーザ・インテントについての十分な詳細を判定すると、アプリケーションは、その設計された機能をインテントの達成で実行することができる。
【００４１】
対話をユーザ１０６と行うときに、インストールされたアプリケーションは、制御サービス１０８の音声関連の能力、たとえば、ＡＳＲコンポーネント２０４、ＮＬＵコンポーネント２０６、対話管理コンポーネント１３２、及びテキスト読み上げコンポーネント２０８のそれらを利用することができる。
【００４２】
別の実施例として、ユーザは、ユーザに現在利用可能な任意のアプリケーションによりサービスを提供不可能なインテントを言う可能性がある。たとえば、ユーザは、「私はタクシーを呼びたい」と言う可能性がある。ユーザが現在インストールしている、または作動させているいずれのアプリケーションもこのようなインテントにサービスを提供不可能であるが、制御サービス１０８は、利用可能なアプリケーション２０２のリスティングまたはマーケットプレイスを検索し、マッチングまたは対応するサービスを提供可能なインテントを指定しているものを識別することができる。いくつかの事例で、つぎに制御サービス１０８は、識別されたアプリケーションを自動的にインストールする、または有効にすることができる。他の事例で、制御サービス１０８は、ユーザがアプリケーションを購入し、またはこれを作動させ、その後アプリケーションを立ち上げる、または起動するように促す。アプリケーション２０２のうちの１つをインストールするとき、アプリケーションは、音声インタフェース・デバイス１０２に、または制御サービス１０８にインストールされることができる。
【００４３】
アプリケーションを起動している、または開始しているときに、さらにユーザとの音声インタラクションを開始されたアプリケーションの制御下で実行することができ、アプリケーション及びそのドメインに固有であるＮＬＵモデルを使用して、アプリケーションのアクティビティ・ドメインに従いユーザ・ステートメントを解釈することができる。たとえば、アプリケーションは、アプリケーションを実行するように設計される機能に従い、対話をユーザと行うことができる。アプリケーションのアクティビティ・ドメインと一貫性がないユーザ・ステートメントまたはインテントを検出すると、アプリケーションは、それ自体を終了させることができ、制御は、制御サービス１０８に戻ることができる。いくつかの事例で、制御サービス１０８は、インストールされたアプリケーションの実行中にユーザ・ステートメントを監視し続けることができ、アプリケーションのアクティビティ・ドメインと一貫性がないユーザによる表現またはインテントを検出することに基づきアプリケーションをプリエンプトすることができる。
【００４４】
図３は、音声インタフェース・デバイス１０２及び制御サービス１０８によりシステム１００に実装されることができる、論理コンポーネント及び機能を図示する。図３で図示される構成は、インストール可能なアプリケーションを音声インタフェース・デバイス１０２または制御サービス１０８のいずれか一方に設置してこれから実行することを可能にする。特定の機能を別個のコンポーネントが実施するように図示するが、このような機能が音声インタフェース・デバイス１０２及び制御サービス１０８のいずれか、またはこれらの各々内のハードウェア及び／またはソフトウェアの異なる組み合わせにより実装されることができることに留意する。
【００４５】
音声インタフェース・デバイス１０２は、マイクロフォン１１０を使用して環境１０４からオーディオをキャプチャするオーディオ・キャプチャ機能またはコンポーネント３０２を含む。オーディオ・キャプチャ・コンポーネント３０２は、オーディオ信号３０４を生成し、オーディオ信号３０４を制御サービス１０８に提供する。オーディオ信号３０４は、ユーザ１０６の音声を含む、ユーザ発話を潜在的に含む。
【００４６】
ＡＳＲコンポーネント２０４は、オーディオ信号３０４を受信し、音声認識を実行してユーザ１０６が話した自然言語を含むテキスト文字列３０６を生成する。テキスト文字列３０６は、自然言語理解技術を使用してテキスト文字列３０６の単語が表現するインテント３０８を判定する、ＮＬＵコンポーネント２０６に提供される。 
【００４７】
制御サービス１０８は、制御サービス１０８の１つ以上のサーバ・コンピュータで実行するためにユーザが選択して有効にしている、上記で説明されるような複数のインストールされたサーバ・アプリケーション１３６を含むことができる。また音声インタフェース・デバイス１０２は、音声インタフェース・デバイス１０２で実行するためにユーザが選択して有効にしている、複数のインストールされたデバイス・アプリケーション１２４を含むことができる。インストールされたアプリケーション１２４及び１３６は、異なるアクティビティまたはコンテンツ・ドメインに関して、異なる機能を実行する、または異なるサービスを提供することができる。たとえば、１つのアプリケーションは、音楽ドメインに関することができ、音楽を探し出して再生するための機能を有することができる。別のアプリケーションは、通知ドメインに対応することができ、 アラートまたはアラームを設定して発行する機能を有することができる。アプリケーションは、それらが音声を介してユーザとインタラクトして所望の機能を提供するように構成されることを意味する、音声対応であることができる。各アプリケーションは、アプリケーションが満たす、またはサービスを提供することが可能である１つ以上のサービスを提供可能なインテントに対応することができる。
【００４８】
制御サービス１０８は、どのサーバ・アプリケーション１３６を各複数の音声インタフェース・デバイス１０２についてインストールしている、または有効にしているかを追跡し続けるように構成されることができる。また制御サービス１０８は、どのデバイス・アプリケーション１２４を各複数の音声インタフェース・デバイス１０２でインストールして有効にしているかを追跡し続けるように構成されることができる。加えて、制御サービス１０８は、各インストールされたまたは有効にされたアプリケーションが応答する、またはその他の方法で取り扱うことが可能であるインテントを追跡し続けるように構成されることができる。
【００４９】
インテント３０８を認識すると、アプリケーション・セレクタまたはインテント・ルータ１３８は、デバイス・アプリケーション１２４のうちの１つ、またはサーバ・アプリケーション１３６のうちの１つを識別して選択する。インテント・ルータ１３８は、認識されたインテント３０８の指示または記述を選択されたアプリケーションに提供し、選択されたアプリケーションを起動する、または選択されたアプリケーションの起動を引き起こす。選択されたアプリケーションの起動は、アプリケーションに、または音声インタフェース・デバイス１０２にプログラムで、及び／または適切なＡＰＩ呼び出しで行われることができる。
【００５０】
アプリケーション１２４または１３６のうちの１つを選択するときに、選択されたアプリケーションは、対応するアクションを実行することで、提供されたインテントに応答する。サーバ・アプリケーション１３６のうちの１つを選択するときに、アクションは、アプリケーション１３６により全体的に実行されることができる、またはアプリケーション１３６は、コマンド３１０を音声インタフェース・デバイス１０２のアクション・ハンドラ３１２に送信して、音声インタフェース・デバイス１０２にアクションまたはアクションの部分を実行させることができる。たとえば、アプリケーション１３６は、音声インタフェース・デバイス１０２用のコマンドを送信して、トーンを再生する、スピーカのボリュームを増す、音声を再生する、またはいくつかの他のアクションを実行することができる。
【００５１】
デバイス・アプリケーション１２４のうちの１つを選択するとき、インテント・ルータは、起動されるアプリケーション、及びこのアプリケーションが応答するインテントを指定する、コマンドを音声インタフェース・デバイス１０２へ送信することができる。アプリケーションは、いくつかの事例でアプリケーション識別子（Ａｐｐ  ＩＤ）により指定されることができる。これに応じて、音声インタフェース・デバイス１０２のオペレーティング・ソフトウェア１２２は、指定されたデバイス・アプリケーション１２４をプログラムで起動することができる。選択されたデバイス・アプリケーションは、一体化された音声インタフェース・デバイス１０２の能力、及び／または制御サービス１０８により提供された能力を使用することで、指定されたインテントに応答することができる。たとえば、選択され起動されたデバイス・アプリケーション１２４は、ＡＳＲ及びＮＬＵサービスを含む、制御サービス１０８の音声サービスを利用して、インタラクション及び対話をユーザ１０６と行うことができる。また選択されたデバイス・アプリケーション１２４は、音楽サービス、ニュース・サービス、オンライン・マーチャント、さまざまなタイプのサービス・プロバイダ、及びその他のもののような他のオンライン・サービスと連動して使用する、または動作することができる。
【００５２】
図４は、音声インタフェース・デバイス１０２及び制御サービス１０８によりシステム１００に実装されることができるコンポーネント及び機能の代替の構成を図示する。図４で図示された構成は、音声インタフェース・デバイス１０２の部分としてアプリケーション選択コンポーネント、またはインテント・ルータ４０２の追加を除き、図３で図示された構成に類似する。この実施例において、制御サービス１０８のインテント・ルータ１３８は、インテントに応答してデバイス・アプリケーション１２４のうちの１つを選択しない。正確に言うと、インテント３０８の指示を音声インタフェース・デバイス１０２のインテント・ルータ４０２に伝え、インテント・ルータ４０２は、インテントの性質に基づき適切なアプリケーションを選択する。
【００５３】
この実施例において、最初に制御サービス１０８のインテント・ルータ１３８は、判定されたインテント３０８に応答するのに適切なサーバ・アプリケーション１３６のうちの１つを識別して起動させようとすることができる。このようなアプリケーションを探し出すことが不可能である場合に、インテント３０８を音声インタフェース・デバイスのインテント・ルータ４０２に伝え、認識されたインテントにサービスを提供可能なデバイス・アプリケーション１２４のうちの１つを識別して起動させようとする。いくつかの実施形態において、制御サービス１０８のインテント・ルータ１３８は、どのデバイス・アプリケーション１２４を音声インタフェース１０２にインストールするかを追跡し続けるように構成されることができ、デバイス・アプリケーション１２４のうちの１つがインテントに応答可能であるときのみにインテント３０８を音声インタフェース・デバイス１０２に伝えることができる。
【００５４】
特定の技術が音声ベース・コンテキストで記述されているが、ユーザ入力及び対話がテキストでのような音声以外の方式で提供される、または行われることができることに留意する。たとえば、ユーザは、キーボードを使用して自然言語ステートメントを入力することでインテントを指定することができ、サービスは、応答性テキストを表示することで応答することができる。このような双方向のテキスト交換を使用して対話を行うことができる。加えて、本明細書で記述された以外のアーキテクチャを他の環境または構成で使用することができる。たとえば、音声インタフェース・デバイスが実行するように図示された機能は、パーソナル・コンピュータ、スマートフォン、タブレット・コンピュータ、または任意の他のタイプのデバイスのようなコンピューティング・デバイスにより実行されることができる。
【００５５】
特定の実行可能なアプリケーションは、音声インタフェース・デバイス１０２または制御サービス１０８のいずれか一方でインストール及び実行するように設計されることができる。音声インタフェース・デバイス１０２でアプリケーションを実行することは、このデバイスがより多くのリソース及び／またはより短縮されたレイテンシを提供可能であることができる、特定の状況において望ましい可能性がある。加えて、音声インタフェース・デバイスにインストールされたアプリケーションは、ネットワークの非可用性期間中にローカル制御機能のような特定の機能を提供し続けることが可能であることができる。ホーム・オートメーションは、それが音声インタフェース・デバイス１０２にインストールされるアプリケーションにとって望ましい可能性がある例示的な環境である。
【００５６】
制御サービス１０８でアプリケーションを実行することは、主にネットワーク・リソースを利用する機能について、音声サービスの過度の使用を行うアプリケーションにとって、音声インタフェース・デバイス１０２の容量が限られている状況で、及び／または他の状況で、望ましい可能性がある。
【００５７】
いくつかの状況において、アプリケーションは、音声インタフェース・デバイス１０２及び制御サービス１０８のいずれか一方で実行するように設計されることができる、またはそれぞれのエンティティで実行するのに適切な２つの同様に機能するバージョンとして実装されることができる。これらの状況において、アプリケーションを音声インタフェース・デバイス１０２または制御サービス１０８にインストールするかどうかを指定するようにユーザに尋ねることができる。あるいは、システム１００は、他の要因を評価することができ、アプリケーションをどこにインストールするかを判定することができる。いくつかの事例において、アプリケーションは、音声インタフェース・デバイス１０２及び制御サービス１０８の両方にインストールされることができ、状況に応じて一方の場所または他方の場所から実行することができる。さらに、いくつかの状況において、同じインテントを取り扱うために各音声インタフェース・デバイス１０２及び制御サービス１０８にインストールされた別のアプリケーションがあることができ、システム１００は、コンテキストまたは他の要因に基づき、どのアプリケーションを起動するか判定することができる。
【００５８】
図５は、上記で説明されるような音声ベースの、または言語ベースのシステムでユーザがインストールしたアプリケーションを選択して起動する例示的な方法５００を図示する。説明された実施形態において、システムは、制御サービスを実装するように構成された、ローカル音声インタフェース・デバイス及び１つ以上のリモート・サーバ・コンピュータを含む。ユーザがインストールしたアプリケーションは、１つ以上のサーバ・コンピュータで実行するためにユーザが選択して有効にしていて、音声インタフェース・デバイスと連動して動作するサーバ・アプリケーションを含むことができる。またユーザがインストールしたアプリケーションは、音声インタフェース・デバイスで実行するためにユーザが選択して有効にしているデバイス・アプリケーションを含むことができる。アプリケーションを有効にすることは、いくつかの事例において、デバイスまたはコンピュータ・サーバと関連する、またはこれによりアクセス可能である、デバイス・メモリ、コンピュータ・サーバ・メモリ、または他のメモリにインストールされるアプリケーションをインストールする、または指示することで実行されることができる。用語「ユーザがインストールした」は、アプリケーションがシステムのユーザにより明示的に選択されていて、実行用に有効にされている、またはインストールされていることを示すために使用される。図５のアクションは、また方法５００が他の環境で実行されることができるが、システム１００の制御サービス１０８で実行されるように記述される。
【００５９】
アクション５０２は、対応するユーザ・インテントを指示する、または表現するユーザ音声及び／またはユーザ発話を受信することを備える。アクション５０２は、ユーザ音声を含むことができる、オーディオを音声インタフェース・デバイス１０２から受信することを備えることができる。音声インタフェース・デバイス１０２は、連続したオーディオ・ストリームを制御サービス１０８に提供することができる、または個々のユーザ発話を含むオーディオ・セグメントを提供することができる。
【００６０】
アクション５０４は、受信したユーザ音声で音声処理を実行してユーザ音声により表現されたインテントを判定することを備える。アクション５０４は、自動音声認識（ＡＳＲ）及び自然言語理解（ＮＬＵ）を受信したユーザ音声で実行してユーザの音声または発話により表現されたインテントを判定することを備えることができる。またアクション５０４は、双方向の音声対話をユーザと実行してユーザに追加の情報を促すことでユーザ・インテントの要素または役割を明らかにすることを備えることができる。
【００６１】
アクション５０６は、ユーザ発話により表現されたインテントに対応する、サーバ・アプリケーション１３６のうちの１つ、またはデバイス・アプリケーション１２４のうちの１つを識別する、及び／または選択することを備える。アプリケーションは、表現されたユーザ・インテントにマッチングする関連したサービスを提供可能なインテントをどのアプリケーションが有するかを判定することで選択されることができる。
【００６２】
さらにアクションは、図５の決定ブロック５０８により指示されるように、識別された、及び／または選択されたアプリケーションがデバイス・アプリケーション１２４のうちの１つ、またはサーバ・アプリケーション１３６のうちの１つであるかどうかによる。識別されたアプリケーションがデバイス・アプリケーション１２４のうちの１つである場合に、制御サービス１０８は、インテントの指示を音声インタフェース・デバイス１０２に提供するアクション５１０を実行する。音声インタフェース・デバイス１０２は、インテントに対応するアクションを実行するデバイス・アプリケーション１２４のうちの１つを起動する、インテントの受信した指示に応答性がある。いくつかの事例において、また制御サービス１０８は、たとえば、具体的にアプリケーション識別子により、どのデバイス・アプリケーション１２４がユーザ・インテントに応答するために使用されるかを明示的に指定するアクション５１２を実行することができる。音声インタフェース・デバイス１０２は、ユーザ・インテントに対応するアクションを実行することで順に応答する、指定されたアプリケーション１２４を起動することでこの仕様に応答する。いくつかの事例において、また起動されたデバイス・アプリケーションは、デバイス・アプリケーションが提供されたインテントに応答して動作している、またはそれが提供されたインテントに応答することが可能である、制御サービス１０８またはインテント・ルータ１３８に確認することで応答することができる。
【００６３】
識別されたアプリケーションがサーバ・アプリケーション１３６のうちの１つである場合に、識別されたサーバ・アプリケーション１３６を開始する、または起動するアクション５１４を実行し、判定されたユーザ・インテントの指示を起動されたサーバ・アプリケーション１３６に提供するアクション５１６を実行する。起動されたアプリケーション１３６は、ユーザ・インテントに対応するアクションを実行することで応答することができる。いくつかの事例において、また起動されたサーバ・アプリケーションは、サーバ・アプリケーションが提供されたインテントに応答して動作している、またはそれが提供されたインテントに応答することが可能である、制御サービス１０８またはインテント・ルータ１３８に確認することで応答することができる。
【００６４】
いくつかの実施形態において、インテント・ルータ１３８が特定のインテントに応答してデバイス・アプリケーション１２４及びサーバ・アプリケーション１３６の両方を起動するように、及びこれら２つのアプリケーションの両方にインテントの指示を提供するように構成されることができることに留意する。２つの起動されたアプリケーションのうちの１つ、または両方のいずれか一方は、それらが第一インテントに応答してアクションを含む、またはこれを実行することを指示する応答を提供することができる。インテント・ルータは、アプリケーションのうちの一方から応答を受信するときに、他方のアプリケーションは、終了される、若しくはキャンセルされる、または任意のさらなる処理をキャンセルするように命令されることができる。たとえば、デバイスは、そのアプリケーションのうちの１つがインテントに応答してアクションを実行する応答を提供することができ、インテント・ルータは応答して、インテントを取り扱うために先に起動されているサーバ・アプリケーションをキャンセルすることができる。あるいは、サーバ・アプリケーションは、それがインテントに応答してアクションを実行することを指示する応答を提供することができ、インテント・ルータは応答して、デバイスにデバイス・アプリケーションをキャンセルするように命令することができる。この技術は、いくつかの状況において応答レイテンシを短縮するために使用されることができる。
【００６５】
方法５００は、連続的なユーザの発話及びインテントを処理するために反復して実行されることができる。たとえば、制御サービス１０８は、第一及び第二ユーザ・インテントに対応する、連続的な第一及び第二ユーザ発話を受信することができる。第一ユーザ・インテントに応答して、制御サービス１０８は、サーバ・アプリケーションを識別して選択し、サーバ・アプリケーションを起動させることができ、また第一ユーザ・インテントの指示をサーバ・アプリケーションに提供することができる。第二ユーザ・インテントに応答して、制御サービス１０８は、デバイス・アプリケーションを識別して選択し、デバイス・アプリケーションを起動させることができ、第二ユーザ・インテントの指示をデバイスに、及び／またはデバイス・アプリケーションに提供することができる。あるいは、第二ユーザ・インテントに応答して、制御サービス１０８は、第二ユーザ・インテントの指示を音声インタフェース・デバイスに単に伝えることができ、音声インタフェース・デバイス自体は、そのユーザがインストールしたデバイス・アプリケーションから第二ユーザ・インテントに応答するアプリケーションを選択して起動することができる。
【００６６】
いくつかの実装において、制御サービス１０８は、最初にサーバ・アプリケーションのうちの１つが特定のユーザ・インテントに応答可能であるかどうかを判定しようとすることができる。そのような場合に、ユーザ・インテントに応答するそのサーバ・アプリケーションを起動する。その他の方法で、ユーザ・インテントの指示は、音声インタフェース・デバイスに提供され、音声インタフェース・デバイスは、ユーザ・インテントに応答するそのデバイス・アプリケーションのうちの１つを識別し、選択し、起動する。
【００６７】
図６は、図５の方法と併せて音声インタフェース・デバイス１０２により実行されることができる方法６００を示す。上記で説明されたシステムを参照して方法６００を記述するが、また他の環境で、他のタイプのデバイスと併せて方法６００を実装することができる。
【００６８】
アクション６０２は、オーディオをキャプチャし、このオーディオを制御サービス１０８に提供することを備える。オーディオは、ユーザの音声または発話を含むことができる。オーディオが含む発話は、音声インタフェース・デバイス１０２または制御サービス１０８による実行のために先に選択され有効にされているアプリケーションによりサービスを提供可能なユーザ・インテントを表現する、またはこれに対応することができる。
【００６９】
アクション６０４は、ユーザ音声を制御サービス１０８に提供することに応答して、ユーザ音声により表現されるインテントの指示を受信することを備える。いくつかの事例において、またアクション６０４は、ユーザ・インテントに応答して起動されるデバイス・アプリケーションの仕様を受信することを備える。デバイス・アプリケーションは、アプリケーション識別子（ＩＤ）の観点から指定されることができる。
【００７０】
アクション６０６は、アクション６０４により指示されたユーザ・インテントに対応するアプリケーションを識別することを備える。制御サービス１０８がアプリケーションまたはアプリケーションＩＤを明示的に指定している事例において、これは、制御サービス１０８により指定されたアプリケーションを簡単に識別することを備える。制御サービス１０８が特定のデバイス・アプリケーション１２４を指定していない、他の事例において、アクション６０６は、現在インストールされたデバイス・アプリケーションが応答することが可能なインテントと受信したインテントを比較すること、及び制御サービス１０８により指示されたインテントに応答可能なデバイス・アプリケーションのうちの１つを選択することを備えることができる。
【００７１】
アクション６０８は、選択されたアプリケーションを開始する、または起動することを備える。アクション６１０は、制御サービス１０８から受信したインテントを起動されたアプリケーションに提供することを備えることができる。アクション６１２は、起動されたアプリケーションにより実行され、ユーザ音声により表現されたインテントに対応する動作を実行することを備える。いくつかの事例において、さらにアプリケーションは、対話をユーザと行うことができ、さらに音声を受信して実行される１つの動作、または複数の動作を判定することができる。
【００７２】
主題が構造的特徴に特有の言語で記述されているが、添付の特許請求の範囲で定められた主題が必ずしも記述された特有の特徴に限定されないことを理解するべきである。むしろ、特有の特徴は、特許請求の範囲を実施する例示的な形態として開示される。
【００７３】
条項
１．１つ以上のサーバ・コンピュータ、
１つ以上のサーバ・アプリケーション、
音声処理コンポーネント、
インテント・ルータ、
を備え、
前記１つ以上のサーバ・アプリケーションは、前記１つ以上のサーバ・コンピュータで実行するためにユーザにより選択され有効にされていて、前記１つ以上の選択され有効にされたサーバ・アプリケーションは、前記ユーザの敷地に設置された音声インタフェース・デバイスと連動して動作し、前記ユーザにサービスを提供し、
前記音声処理コンポーネントは、前記音声インタフェース・デバイスから第一及び第二発話を受信するように構成され、前記第一及び第二発話は、それぞれ第一及び第二ユーザ・インテントを表現し、さらに前記音声処理コンポーネントは、前記第一及び第二発話で自動音声認識及び自然言語理解を実行し、前記第一及び第二ユーザ・インテントを判定するように構成され、
前記インテント・ルータは、
前記第一ユーザ・インテントに対応する前記１つ以上のサーバ・アプリケーションのうちの１つのサーバ・アプリケーションを識別し、
前記識別されたサーバ・アプリケーションを起動して前記第一ユーザ・インテントに対応する第一アクションを実行し、
前記第二ユーザ・インテントの指示を前記音声インタフェース・デバイスに提供し、前記音声インタフェース・デバイスが前記第二ユーザ・インテントに対応して、前記第二ユーザ・インテントに対応する第二アクションを実行する、
ことを備える動作を実行するように構成される、
システム。
【００７４】
２．前記音声インタフェース・デバイスは、前記音声インタフェース・デバイスで実行するためにユーザにより選択され有効にされる１つ以上のデバイス・アプリケーションを含み、
前記音声インタフェース・デバイスは、（ａ）前記第二ユーザ・インテントに対応する前記１つ以上のデバイス・アプリケーションのうちの１つのデバイス・アプリケーションを識別するように、及び（ｂ）前記識別されたデバイス・アプリケーションを起動して前記第二アクションを実行するように構成される、
条項１の前記システム。
【００７５】
３．前記音声インタフェース・デバイスは、前記音声インタフェース・デバイスで実行するためにユーザにより選択され有効にされる１つ以上のデバイス・アプリケーションを含み、
さらに前記動作は、（ａ）前記第二ユーザ・インテントに対応する前記１つ以上のデバイス・アプリケーションのうちの１つのデバイス・アプリケーションを識別すること、及び（ｂ）前記識別されたデバイス・アプリケーションを起動させて前記第二アクションを実行することを備える、
条項１の前記システム。
【００７６】
４．前記音声インタフェース・デバイスは、前記音声インタフェース・デバイスで実行するためにユーザにより選択され有効にされる１つ以上のデバイス・アプリケーションを含み、
さらに前記動作は、（ａ）前記１つ以上のデバイス・アプリケーションのうちの少なくとも１つが前記第二ユーザ・インテントに対応することを判定すること、及び（ｂ）前記第二ユーザ・インテントの前記指示を前記音声インタフェース・デバイスに提供することを備える、
条項１の前記システム。
【００７７】
５．前記音声インタフェース・デバイスは、前記音声インタフェース・デバイスで実行するためにユーザにより選択され有効にされる１つ以上のデバイス・アプリケーションを含み、
前記１つ以上のサーバ・アプリケーション及び前記１つ以上のデバイス・アプリケーションは、１つ以上のユーザ要求に応答して利用可能なアプリケーションのコレクションから取得される、
条項１の前記システム。
【００７８】
６．音声インタフェース・デバイスから第一インテントを指示する、第一ユーザ音声を受信すること、
自然言語理解を前記第一ユーザ音声で実行して前記第一インテントを判定すること、
第一アプリケーションに前記第一インテントへ応答させること、
前記音声インタフェース・デバイスから第二インテントを指示する、第二ユーザ音声を受信すること、
自然言語理解を前記第二ユーザ音声で実行して前記第二インテントを判定すること、
前記第二インテントの指示を前記音声インタフェース・デバイスに提供すること、
を備える、方法。
【００７９】
７．前記第一アプリケーションは、１つ以上のサーバ・コンピュータで実行するためにユーザにより選択され有効にされている、条項６の前記方法。
【００８０】
８．前記音声インタフェース・デバイスは、前記第二インテントの前記指示に応答して前記第二インテントに対応するアクションを実行する、条項６の前記方法。
【００８１】
９．前記音声インタフェース・デバイスは、前記第二インテントの前記指示に応答して、
前記第二インテントに対応する第二アプリケーションを識別し、前記第二アプリケーションは、前記音声インタフェース・デバイスで実行するためにユーザにより選択され有効にされていて、
前記第二アプリケーションを起動して前記第二インテントに対応するアクションを実行する、
条項６の前記方法。
【００８２】
１０．前記第二インテントに対応し、前記音声インタフェース・デバイスで実行するためにユーザにより選択され有効にされていている、第二アプリケーションを識別すること、
前記第二アプリケーションに前記第二インテントへ応答させること、
をさらに備える、条項６の前記方法。
【００８３】
１１．自然言語対話をユーザと行い前記第一及び第二ユーザ音声を受信することをさらに備える、条項６の前記方法。
【００８４】
１２．前記第二インテントの前記指示を前記音声インタフェース・デバイスに提供することは、第二アプリケーションが前記第二インテントに応答するために前記音声インタフェース・デバイスで利用可能であることを判定することに応答して実行される、条 項６の前記方法。
【００８５】
１３．前記第一アプリケーションは、１つ以上のサーバ・コンピュータで実行するためにユーザにより選択され有効にされていて、前記第二インテントの前記指示を前記音声インタフェース・デバイスに提供することは、前記第二インテントに応答するアプリケーションが前記１つ以上のサーバ・コンピュータで実行するために前記ユーザにより選択され有効にされていないことを判定することに応答して実行される、条項６の前記方法。
【００８６】
１４．デバイスのユーザにより表現された第一インテントを判定すること、
前記第一インテントに対応し、１つ以上のサーバ・コンピュータで実行するためにユーザにより選択され有効にされていている、第一アプリケーションを識別すること、
前記第一アプリケーションを起動して前記第一インテントに応答すること、
前記デバイスの前記ユーザにより表現された第二インテントを判定すること、
前記第二インテントの指示を前記デバイスに提供し、前記デバイスに第二アプリケーションを起動させて前記第二インテントへ応答することを備え、前記第二アプリケーションは、前記デバイスで実行するために前記ユーザにより選択され有効にされている、方法。
【００８７】
１５．第三アプリケーションの起動のために前記第一インテントの指示を前記デバイスに提供して前記第一インテントに応答することをさらに備える、条項１４の前記方法。
【００８８】
１６．第三アプリケーションの起動のために前記第一インテントの指示を前記デバイスに提供して前記第一インテントに応答すること、
前記デバイスが前記第一インテントに応答してアクションを実行する、または前記デバイスが前記第一インテントに応答してアクションを実行している前記デバイスから確認を受信すること、
前記確認を受信することに応答して、前記第一インテントに応答することをキャンセルするように前記第一アプリケーションに命令すること、
をさらに備える、条項１４の前記方法。
【００８９】
１７．第三アプリケーションの起動のために前記第一インテントの指示を前記デバイスに提供して前記第一インテントに応答すること、
前記第一アプリケーションが前記第一インテントに応答してアクションを実行する、または前記第一アプリケーションが前記第一インテントに応答してアクションを実行している確認を前記第一アプリケーションから受信すること、
前記確認を受信することに応答して、前記第一インテントに応答することをキャンセルするように前記第三アプリケーションに命令すること、
をさらに備える、条項１４の前記方法。
【００９０】
１８．前記デバイスは、前記ユーザの自宅内に設置された音声インタフェースを備える、条項１４の前記方法。
【００９１】
１９．前記デバイスを介して前記ユーザと自然言語対話を行い前記第一及び第二インテントを判定することをさらに備える、条項１４の前記方法。
【００９２】
２０．前記第一アプリケーションは、１つ以上の命令を前記デバイスに送信することで前記第一インテントに応答するように構成される、条項１４の前記方法。
【００９３】
２１．前記１つ以上のサーバ・コンピュータで実行するために前記ユーザにより選択され有効にされている複数のアプリケーションから前記第一アプリケーションを識別することをさらに備える、条項１４の前記方法。
【００９４】
２２．前記デバイスで実行するために前記ユーザによりインストールされている複数のアプリケーションから前記第二アプリケーションを識別することをさらに備える、条項１４の前記方法。
【００９５】
２３．前記デバイスは、前記第二インテントの前記指示に応答して、前記デバイスで実行するために前記ユーザによりインストールされている複数のアプリケーションから前記第二アプリケーションを識別する、条項１４の前記方法。
【００９６】
２４．デバイスに前記第二インテントの前記指示を提供することは、アプリケーションが前記第二インテントに応答するために前記デバイスにインストールされることを判定することに応答して実行される、条項１４の前記方法。
【００９７】
２５．前記デバイスに前記第二インテントの前記指示を提供することは、前記第二インテントに応答するためのサーバ・アプリケーションが前記１つ以上のサーバ・コンピュータで実行するために前記ユーザにより選択され有効にされていないことを判定することに応答して実行される、条項１４の前記方法。
【図１】
0006480568.tif 000002
【図２】
0006480568.tif 000003
【図３】
0006480568.tif 000004
【図４】
0006480568.tif 000005
【図５】
0006480568.tif 000006
【図６】
0006480568.tif 000007