(57)【要約】本開示は、ネットワークアプリケーションを制御するための技術を部分的に説明する。例えば、遠隔システムは、ネットワークを介して、アプリケーションの状態を表すデータを、テレビなどのディスプレイデバイスに送信し得る。次いで、遠隔システムは、ネットワークを介して、制御デバイスから入力データを受信し得る。入力データは、制御デバイスによって受信された１つ以上の入力を表し得る。入力データを使用して、遠隔システムは、アプリケーションの状態を更新し得る。次いで、遠隔システムは、ディスプレイデバイスに、アプリケーションの更新された状態を表すデータを送信し得る。いくつかの事例では、遠隔システムは、制御デバイスに、アプリケーションの更新された状態に対応する音を表すオーディオデータをさらに送信し得る。制御デバイスは、音の出力を、アプリケーションの更新された状態をディスプレイデバイスによって表示することと同期させ得る。
2021531923.tif 000002
【特許請求の範囲】
【請求項１】
ハンドヘルドコントローラおよびディスプレイデバイスを含む環境から遠隔に位置するシステムであって、
少なくとも１つのデータベースであって、前記ハンドヘルドコントローラと関連付けられた第１の識別子および前記ディスプレイデバイスと関連付けられた第２の識別子を示すプロファイルデータ、ならびにゲームを表すゲームデータを記憶している、少なくとも１つのデータベースと、
１つ以上のプロセッサと、
命令を記憶している１つ以上のコンピュータ可読媒体と、
を備え、前記命令は、１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記ハンドヘルドコントローラからネットワークを介して、前記第１の識別子を表す第１のデータを受信することと、
前記プロファイルデータを使用して、前記第１のデータが前記ハンドヘルドコントローラから受信されることを決定することと、
前記プロファイルデータを使用して、前記ハンドヘルドコントローラが前記ディスプレイデバイスと関連付けられていることを決定することと、
前記ネットワークを介して、第１のビデオデータを前記ディスプレイデバイスに送信することであって、前記第１のビデオデータが、前記ゲームの第１の状態を表す、送信することと、
前記ハンドヘルドコントローラから前記ネットワークを介して、前記ハンドヘルドコントローラによって受信された入力を表す入力データを受信することと、
前記入力データに少なくとも部分的に基づいて、前記ゲームの前記第１の状態を前記ゲームの第２の状態に更新することと、
前記ネットワークを介して前記ディスプレイデバイスに、前記ゲームの前記第２の状態を表す第２のビデオデータを送信することと、
前記ネットワークを介して、第１のタイムスタンプデータを前記ディスプレイデバイスに送信することであって、前記第１のタイムスタンプデータが、第１の時間に前記ゲームの前記第２の状態を表示するための第１の命令を含む、送信することと、
前記ネットワークを介して前記ハンドヘルドコントローラに、前記ゲームの前記第２の状態に対応する音を表すオーディオデータを送信することと、
前記ネットワークを介して、第２のタイムスタンプデータを前記ハンドヘルドコントローラに送信することであって、前記第２のタイムスタンプデータが、第２の時間に前記音を出力するための第２の命令を含み、前記第２の時間が、前記第１の時間までの閾値期間内である、送信することと、
を含む動作を実施させる、システム。
【請求項２】
前記１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、前記さらなる命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記ネットワークを介して前記ディスプレイデバイスに、前記ゲームの前記第２の状態に対応する前記音を表す追加のオーディオデータを送信することと、
前記ネットワークを介して、第３のタイムスタンプデータを前記ディスプレイデバイスに送信することであって、前記第３のタイムスタンプデータが、第３の時間に前記音を出力するための第３の命令を含み、前記第３の時間が、前記第１の時間と同様である、送信することと、
を含むさらなる動作を実施させる、請求項１に記載のシステム。
【請求項３】
方法であって、
遠隔システムによって、電子デバイスがディスプレイデバイスと関連付けられていることを決定することと、
前記遠隔システムによって前記ディスプレイデバイスに、ゲームの第１の状態を表す第１のビデオデータを送信することと、
前記遠隔システムによって前記電子デバイスから、前記電子デバイスによって受信された入力を表す入力データを受信することと、
前記遠隔システムによって、前記ゲームの前記第１の状態および前記入力データに少なくとも部分的に基づいて、前記ゲームの第２の状態を決定することと、
前記遠隔システムによって前記ディスプレイデバイスに、前記ゲームの前記第２の状態を表す第２のビデオデータを送信することと、
を含む、方法。
【請求項４】
前記遠隔システムによって前記電子デバイスに、前記ゲームの前記第２の状態と関連付けられた音を表すオーディオデータを送信することと、
前記遠隔システムによって前記電子デバイスに、タイムスタンプを表すデータを送信することであって、前記タイムスタンプが、前記電子デバイスによる前記音の出力を、前記ディスプレイデバイスによる前記第２のビデオデータの前記表示と同期させることと関連付けられている、送信することと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記遠隔システムによって、前記電子デバイスとの第１のネットワーク接続を確立することであって、前記入力データの前記受信が、前記第１のネットワーク接続を介する、確立することと、
前記遠隔システムによって、前記ディスプレイデバイスとの第２のネットワーク接続を確立することであって、前記第２のビデオデータの前記送信が、前記第２のネットワーク接続を介する、確立することと、
をさらに含む、請求項３に記載の方法。
【請求項６】
前記ゲームの前記第１の状態および前記入力データに少なくとも部分的に基づいて、前記ゲームの前記第２の状態を前記決定することが、
前記遠隔システムによって、前記ゲームの前記第１の状態は、オブジェクトがゲーム環境内の第１の位置に位置することを含むことを決定することと、
前記遠隔システムによって、前記第１の位置および前記入力データに少なくとも部分的に基づいて、前記オブジェクトの第２の位置を決定することと、
前記遠隔システムによって、前記ゲームの前記第２の状態は、前記オブジェクトが前記環境内の前記第２の位置に位置することを含むことを決定することと、
をさらに含む、請求項３に記載の方法。
【請求項７】
前記遠隔システムによって前記ディスプレイデバイスに、１つ以上のゲームを表す第３のビデオデータを送信することであって、前記１つ以上のゲームが、前記ゲームを含む、送信することと、
前記遠隔システムによって前記電子デバイスから、前記電子デバイスによって受信された追加の入力を表す追加の入力データを受信することと、
前記遠隔システムによって、前記追加の入力データに少なくとも部分的に基づいて、前記ゲームを開始することと、
をさらに含む、請求項３に記載の方法。
【請求項８】
前記入力データが、ユーザ音声を表すオーディオデータを含み、前記方法は、
前記遠隔システムによって、前記ユーザ音声によって表される１つ以上の単語を決定することをさらに含み、
前記ゲームの前記第１の状態および前記入力データに少なくとも部分的に基づいて前記ゲームの前記第２の状態を前記決定することが、前記遠隔システムによって、前記ゲームの前記第１の状態および前記１つ以上の単語に少なくとも部分的に基づいて、前記ゲームの前記第２の状態を決定することを含む、請求項３に記載の方法。
【請求項９】
前記遠隔システムによってデータベース内に、前記電子デバイスと関連付けられた第１の識別子および前記ディスプレイデバイスと関連付けられた第２の識別子を表す第１のデータを記憶することと、
前記遠隔システムによって前記電子デバイスから、前記第１の識別子を表す第２のデータを受信することと、
前記遠隔システムによって前記第１のデータを使用して、前記第２のデータが、前記電子デバイスから送信されたことを決定することと、
をさらに含み、
前記ディスプレイデバイスが前記電子デバイスと関連付けられていることを前記決定することが、前記第１のデータに少なくとも部分的に基づく、請求項３に記載の方法。
【請求項１０】
前記遠隔システムによって、前記電子デバイスと関連付けられた第１の識別子を表す第１のデータを受信することと、
前記遠隔システムによって、前記ディスプレイデバイスと関連付けられた第２の識別子を表す第２のデータを受信することと、
前記遠隔システムによって、ユーザプロファイルを表す第３のデータを生成することであって、前記第３のデータが、少なくとも、前記電子デバイスと関連付けられた前記第１の識別子、および前記ディスプレイデバイスと関連付けられた前記第２の識別子を示す、生成することと、
をさらに含む、請求項３に記載の方法。
【請求項１１】
システムであって、
１つ以上のプロセッサと、
命令を記憶している１つ以上のコンピュータ可読媒体と、
を備え、前記命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
ゲームと関連付けられたデータを記憶することと、
電子デバイスからネットワークを介して、前記ゲームの選択を表す第１の入力データを受信することと、
ディスプレイデバイスに前記ネットワークを介して、前記ゲームの第１の状態を表す第１のビデオデータを送信することと、
前記電子デバイスから前記ネットワークを介して、前記電子デバイスによって受信された入力を表す第２の入力データを受信することと、
前記ゲームの前記第１の状態および前記第２の入力データに少なくとも部分的に基づいて、前記ゲームの第２の状態を決定することと、
前記ディスプレイデバイスに前記ネットワークを介して、前記ゲームの前記第２の状態を表す第２のビデオデータを送信することと、
を含む動作を実施させる、システム。
【請求項１２】
前記１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、前記さらなる命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記電子デバイスに、前記ゲームの前記第２の状態と関連付けられた音を表すオーディオデータを送信することと、
前記電子デバイスが前記音を出力する時間を決定することと、
前記電子デバイスに、前記時間に前記音を出力するための命令を表す追加のデータを送信することと、
を含むさらなる動作を実施させる、請求項１１に記載のシステム。
【請求項１３】
前記１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、前記さらなる命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記電子デバイスとの第１のネットワーク接続を確立することであって、前記第２の入力データの前記受信が、前記第１のネットワーク接続を介する、確立することと、
前記ディスプレイデバイスとの第２のネットワーク接続を確立することであって、前記第２のビデオデータの前記送信が、前記第２のネットワーク接続を介する、確立することと、
を含むさらなる動作を実施させる、請求項１１に記載のシステム。
【請求項１４】
前記ゲームの前記第１の状態および前記第２の入力データに少なくとも部分的に基づいて、前記ゲームの前記第２の状態を前記決定することが、
前記ゲームの前記第１の状態は、オブジェクトがゲーム環境内の第１の位置に位置することを含むことを決定することと、
前記第１の位置および前記第２の入力データに少なくとも部分的に基づいて、前記オブジェクトの第２の位置を決定することと、
前記ゲームの前記第２の状態は、前記オブジェクトが前記環境内の前記第２の位置に位置することを含むことを決定することと、
を含む、請求項１１に記載のシステム。
【請求項１５】
前記データが、第１のデータであり、前記１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、前記さらなる命令は、前記１つ以上のプロセッサによって実行されると、前記１つ以上のプロセッサに、
前記電子デバイスと前記ディスプレイデバイスとの間の関連付けを表す第２のデータを記憶することと、
前記電子デバイスから、前記電子デバイスと関連付けられた識別子を表す第３のデータを受信することと、
前記第２のデータを使用して、前記電子デバイスが前記ディスプレイデバイスと関連付けられていることを決定することと、
を含むさらなる動作を実施させ、
前記第１のビデオデータの前記送信または前記第２のビデオデータの前記送信のうちの少なくとも１つは、前記電子デバイスが前記ディスプレイデバイスと関連付けられていることを前記決定することに少なくとも部分的に基づく、請求項１１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、２０１８年１１月２８日出願の「ＳＹＳＴＥＭＳ  ＡＮＤ  ＤＥＶＩＣＥＳ  ＦＯＲ  ＣＯＮＴＲＯＬＬＩＮＧ  ＮＥＴＷＯＲＫ  ＡＰＰＬＩＣＡＴＩＯＮＳ」と題された米国特許出願第１６／２０２，９５９号に対する優先権を主張し、この出願は、２０１８年８月６日出願の「Ｇａｍｅ  Ｃｏｎｔｒｏｌｌｅｒｓ」と題された米国仮特許出願第６２／７１５，１４６号に対する優先権を主張し、それらの内容全体が参照により本明細書に組み込まれる。
【背景技術】
【０００２】
ゲームが普及するにつれて、企業は、ユーザが様々なタイプのゲームをプレイすることを可能にする、ビデオゲームコンソールなどの電子デバイスを作成した。例えば、テレビに接続されたビデオゲームコンソールは、テレビにゲームの状態に関連するコンテンツを表示させ得る。テレビがコンテンツを表示している間、ビデオゲームコンソールは、ユーザの所持するビデオゲームコントローラから直接入力を受信し得る。次いで、ビデオゲームコンソールは、ゲームの状態を更新するために入力を処理し得る。更新に基づいて、ビデオゲームコンソールは、テレビに、ゲームの更新された状態に関連するコンテンツを表示させ得る。ユーザがマルチプレイヤオンラインゲームをプレイしている場合、ビデオゲームコンソールは、更新を表すデータを遠隔サーバにさらに送信し得る。
【図面の簡単な説明】
【０００３】
詳細な説明が、添付図を参照して記載される。図中、参照番号の一番左の桁（複数可）は、参照番号が最初に現れる図を識別する。異なる図における同じ参照番号の使用は、類似または同一の項目または特徴を示す。
【０００４】
【図１】ネットワークアプリケーションを制御するための例示的なシステムの概略図を示す例示する。
【図２】遠隔システムと通信するように構成されている制御デバイスの例示的なアーキテクチャのブロック図を例示する。
【図３】制御デバイスおよびディスプレイデバイスと通信するように構成されている遠隔システムの例示的なアーキテクチャのブロック図を例示する。
【図４】制御デバイスに送信されたデータをディスプレイデバイスに送信されたデータと同期させる一例のブロック図を例示する。
【図５】ネットワーク内の複数の制御デバイスおよびディスプレイデバイスと通信するための例示的なシステムの概略図を例示する。
【図６Ａ】ネットワークアプリケーションを制御するための例示的なプロセスを例示する。
【図６Ｂ】ネットワークアプリケーションを制御するための例示的なプロセスを例示する。
【図７】ネットワークアプリケーションを制御するために、制御デバイスおよびディスプレイデバイスと通信する遠隔システムの第１の例示的なプロセスを例示する。
【図８】ネットワークアプリケーションを制御するために、制御デバイスおよびディスプレイデバイスと通信する遠隔システムの第２の例示的なプロセスを例示する。
【図９】ネットワークアプリケーションを制御するために遠隔システムと通信する制御デバイスの例示的なプロセスを例示する。
【図１０】オーディオデータおよび／または追加データを制御デバイスから受信し、オーディオデータおよび／または追加データに基づいてユーザの意図を決定するための技術を実施する、音声処理システムの例示的なアーキテクチャのブロック図を例示する。
【発明を実施するための形態】
【０００５】
本開示は、ネットワークアプリケーションを制御するためのシステムおよび技術を部分的に説明する。例えば、ユーザは、ネットワーク接続を介して遠隔システムと通信する制御デバイスを使用して、遠隔システム上で実行するアプリケーションを制御し得る。例えば、制御デバイスは、データを遠隔システムに送信し得、データは、少なくとも、制御デバイスによって受信された入力を表す。次いで、遠隔システムは、制御デバイスから受信されたデータを使用して、アプリケーションの現在の状態を更新し得る。加えて、遠隔システムは、ネットワーク接続を介して、ビデオデータをディスプレイデバイスに送信し得、ビデオデータは、アプリケーションの現在の状態を表す。したがって、およびいくつかの事例では、ビデオゲームコンソールなどの追加の電子デバイスは、アプリケーションを実行する、および／または制御デバイスからのデータを処理するために、必要とされない場合がある。そのような例では、これは、追加の電子デバイスの必要性を除去し得る。
【０００６】
より詳細には、ユーザは、最初に制御デバイスを構成し得る。制御デバイスは、限定されるものではないが、ビデオゲームコントローラ、キーボード、マウス、タブレット、携帯電話、コンピュータ、カメラ、マイクロフォン、ならびに／またはユーザから入力を受信することができる、および／もしくはデータを生成することができる任意の他のタイプのデバイスを含み得る。制御デバイスを構成するために、ユーザは、構成設定を制御デバイスおよび／または別のデバイスに入力し得る。構成設定が別のデバイスに入力される場合、他のデバイスは、次いで、構成設定を表すデータを制御デバイスに送信し得る。構成設定は、限定されるものではないが、ネットワークデバイスと関連付けられた識別子（例えば、ルータと関連付けられたサービスセット識別子（ＳＳＩＤ））、パスワードなどを含み得る。次いで、制御デバイスは、構成設定を表すデータを記憶し得る。加えて、制御デバイスは、遠隔システムと通信するために、構成設定を使用してネットワークに接続し得る。
【０００７】
いくつかの事例では、ユーザは、遠隔システムを用いて制御デバイスをさらに構成し得る。例えば、遠隔システムは、制御デバイスおよび／または別のデバイスから、制御デバイスの識別子を表すデータを受信し得る。本明細書に説明されるように、デバイスの識別子は、限定されるものではないが、インターネットプロトコル（ＩＰ）アドレス、メディアアクセス制御（ＭＡＣ）アドレス、数値識別子、アルファベット識別子、混合された数値およびアルファベット識別子、および／またはデバイスを識別するために使用され得る任意の他のタイプの識別子を含み得る。次いで、遠隔システムは、ユーザと関連付けられたユーザプロファイル内に、制御デバイスの識別子を表すデータを記憶し得る。いくつかの事例では、遠隔システムがユーザプロファイルをまだ記憶していない場合、遠隔システムは、識別子を表すデータをユーザプロファイルに記憶する前に、ユーザプロファイルを最初に生成し得る。
【０００８】
いくつかの事例では、ユーザは、遠隔システムを用いて１つ以上のディスプレイデバイスをさらに構成し得る。ディスプレイデバイスは、限定されるものではないが、テレビ、プロジェクタ、モニタ、タブレット、携帯電話、別のディスプレイデバイスに接続する周辺デバイス、ならびに／またはコンテンツ（例えば、画像（複数可）、ビデオなど）を表示することができる、および／もしくは別のデバイスにコンテンツを表示させることができる任意の他のタイプのデバイスを含み得る。ディスプレイデバイスを構成するために、遠隔システムは、ディスプレイデバイスおよび／または別のデバイスから、ディスプレイデバイスの識別子を表すデータを受信し得る。次いで、遠隔システムは、ディスプレイデバイスの識別子を表すデータをユーザプロファイルに記憶し得る。
【０００９】
いくつかの事例では、遠隔システムは、ネットワークを介して制御デバイスによってアクセス可能である１つ以上のアプリケーションを表すデータをさらに記憶し得る。アプリケーションは、限定されるものではないが、ゲームアプリケーション、文書処理アプリケーション、教育アプリケーション、マルチメディアアプリケーション（例えば、映画、音楽など）、および／またはネットワークを介してアクセスされることができる任意の他のタイプのアプリケーションを含み得る。遠隔システムは、アプリケーションのうちの１つ以上をユーザプロファイルと関連付け得る。例えば、遠隔システムは、ユーザが遠隔システムからアプリケーションを取得したこと（例えば、購入、リースなど）を示すデータを受信し得る。いくつかの事例では、次いで、遠隔システムは、ユーザがアプリケーションによって取得したことを示すデータをユーザプロファイルに記憶し得る。
【００１０】
アプリケーションにアクセスするために、制御デバイスは、構成設定を使用してネットワークに接続し得る。次いで、制御デバイスは、遠隔システムに、制御デバイスと関連付けられた識別子を少なくとも表すデータを送信し得る。遠隔システムは、データを受信し、ユーザプロファイルを使用して、データが制御デバイスから受信されることを決定し得る。遠隔システムは、ユーザプロファイルを使用して、制御デバイスが少なくともディスプレイデバイスと関連付けられていることをさらに決定し得る。いくつかの事例では、次いで、遠隔システムは、ユーザによって取得された１つ以上のアプリケーションを表すデータ（例えば、ビデオデータ、オーディオデータなど）をディスプレイデバイスに送信し得る。いくつかの事例では、遠隔システムは、ユーザがアクセス可能である１つ以上の追加のアプリケーションを表すデータ（例えば、ビデオデータ、オーディオデータなど）をディスプレイデバイスに送信し得る。いずれの例も、ディスプレイデバイスは、データを受信し、１つ以上のアプリケーションを識別するコンテンツを表示し得る。例えば、コンテンツは、ユーザがアクセス可能である１つ以上のアプリケーションの各々のそれぞれの識別子（例えば、名前）を含み得る。
【００１１】
次いで、遠隔システムは、制御デバイスから、アプリケーションの選択を表すデータ（例えば、入力データ）を受信し得る。データに少なくとも部分的に基づいて、遠隔システムは、アプリケーションを表すデータ（例えば、コンピュータコード）の実行を開始し得る。次いで、遠隔システムは、制御デバイスによって受信された入力を表すデータの受信を開始し得る。いくつかの事例では、遠隔システムは、制御デバイスが入力を受信するたびにデータを受信する。いくつかの事例では、遠隔システムは、所与の時間間隔（例えば、ミリ秒ごと、１０ミリ秒ごと、秒ごとなど）でデータを受信する。いずれの場合においても、遠隔システムは、データを使用して、制御デバイスによって受信される入力（複数可）に基づいてアプリケーションの状態を更新する。次いで、遠隔システムは、アプリケーションの状態を表すデータをディスプレイデバイスに送信し得る。
【００１２】
例えば、遠隔システムは、アプリケーションの第１の状態を表すデータ（例えば、ビデオデータ、オーディオデータなど）をディスプレイデバイスに送信し得る。例えば、アプリケーションがゲームアプリケーションを含む場合、アプリケーションの第１の状態は、ゲーム環境（例えば、森）内の第１の位置に位置するオブジェクト（例えば、キャラクタ）を含み得る。ディスプレイデバイスは、遠隔システムからデータを受信し得る。データを使用して、ディスプレイデバイスは、アプリケーションの第１の状態を表す画像（複数可）を表示し得る。例えば、繰り返しになるが、アプリケーションがゲームアプリケーションを含む場合、ディスプレイデバイスは、ゲーム環境内の第１の位置に位置するオブジェクトを表すコンテンツを表示し得る。いくつかの事例では、ディスプレイデバイスは、オーディオデータによって表される音をさらに出力し得る。次いで、ユーザは、制御デバイスを使用して、遠隔システムを介してアプリケーションに入力を提供し得る。
【００１３】
例えば、制御デバイスは、制御デバイスと関連付けられたボタン、ジョイスティック、キー、タッチ感知パッド、センサなどの選択などの入力を受信し得る。次いで、制御デバイスは、遠隔システムに、入力を表すデータを送信し得る。データを使用して、遠隔システムは、アプリケーションの第１の状態をアプリケーションの第２の状態に更新し得る。例えば、繰り返しになるが、アプリケーションがゲームアプリケーションを含む場合、入力は、ゲーム環境内の所与の量だけオブジェクトを前進させることと関連付けられ得る。したがって、遠隔システムは、所与の量だけ環境内でオブジェクトを前進させることによって、アプリケーションの第１の状態をアプリケーションの第２の状態に更新し得る。次いで、遠隔システムは、アプリケーションの第２の状態を表すデータ（例えば、ビデオデータ、オーディオデータなど）をディスプレイデバイスに送信し得る。ディスプレイデバイスは、ゲームの第２の状態を表す画像（複数可）を表示し得る。例えば、ディスプレイデバイスは、ゲーム環境内の第２の位置に位置するオブジェクトを表すコンテンツを表示し得る。加えて、いくつかの事例では、ディスプレイデバイスは、オーディオデータによって表される音をさらに出力し得る。次いで、遠隔システムは、遠隔システムが制御デバイスからデータを受信し続ける際、ディスプレイデバイス上のアプリケーションの状態を更新するために同様のプロセスを実施し続け得る。
【００１４】
いくつかの事例では、遠隔システムは、データ（例えば、ビデオデータ、オーディオデータなど）を制御デバイスにさらに送信し得、データは、ディスプレイデバイスによって表示されているアプリケーションの状態と関連付けられる。例えば、遠隔システムは、制御デバイスに、ディスプレイデバイスによって表示されているアプリケーションの現在の状態に対応する音を表すオーディオデータを送信し得る。制御デバイスは、遠隔システムからオーディオデータを受信し、それに応じて、音を出力し得る。いくつかの事例では、オーディオデータを制御デバイスに送信するとき、遠隔システム、制御デバイス、および／または別のデバイスは、オーディオデータの出力をアプリケーションの現在の状態と同期させ得る。
【００１５】
第１の例について、遠隔システムは、ディスプレイデバイスに送信されるデータと関連付けられた第１のタイムスタンプを表す第１のタイムスタンプデータ、および／または制御デバイスに送信されるオーディオデータと関連付けられた第２のタイムスタンプを表す第２のタイムスタンプデータを生成し得る。次いで、遠隔システムは、第１のタイムスタンプデータをディスプレイデバイスに、第２のタイムスタンプデータを制御デバイスに送信し得る。いくつかの事例では、遠隔システムは、第１のデータパケットの一部として第１のタイムスタンプデータをディスプレイデバイスに送信し、第１のデータパケットは、ビデオデータをさらに含む。他の事例では、遠隔システムは、第１のタイムスタンプデータをビデオデータとは別にディスプレイデバイスに送信する。加えて、いくつかの事例では、遠隔システムは、第２のデータパケットの一部として第２のタイムスタンプデータを制御デバイスに送信し、第２のデータパケットは、オーディオデータをさらに含む。他の事例では、遠隔システムは、第２のタイムスタンプデータをオーディオデータとは別に制御デバイスに送信する。
【００１６】
第２のタイムスタンプデータは、オーディオデータの出力を、ディスプレイデバイスによるアプリケーションの現在の状態の表示と同期させるために制御デバイスによって使用され得る。例えば、第１のタイムスタンプデータは、第１の時間にアプリケーションの現在の状態を表示するための第１の命令を含み得、第２のタイムスタンプデータは、第２の時間に音を出力するための第２の命令を含み得、第１の時間は、第２の時間と同様である（例えば、その時間までの閾値期間を伴うなどで同じである）。したがって、制御デバイスは、オーディオデータおよび／または第２のタイムスタンプデータをバッファに記憶し得る。次いで、制御デバイスは、現在の時間が、いつ、第２のタイムスタンプデータによって表される第２の時間を含むかを決定し得る。現在の時間が第２の時間を含むとき、制御デバイスは、オーディオデータによって表される音を出力し得る。
【００１７】
第２の例について、遠隔システムは、オーディオデータ、ビデオデータ、第１のタイムスタンプデータ、および第２のタイムスタンプデータを、ドングルなどの別個の電子デバイスに送信し得る。次いで、電子デバイスは、第１のタイムスタンプデータおよび第２のタイムスタンプデータを使用して、それぞれいつ、ビデオデータをディスプレイデバイスに送信し、オーディオデータを制御デバイスに送信するかを決定し得る。例えば、第１の時間に、電子デバイスは、ビデオデータをディスプレイデバイスに送信し得る。ビデオデータを受信することに少なくとも部分的に基づいて、ディスプレイデバイスは、アプリケーションの現在の状態を表示し得る。加えて、第２の時間に、電子デバイスは、オーディオデータを制御デバイスに送信し得る。オーディオデータを受信することに少なくとも部分的に基づいて、制御デバイスは、音を出力し得る。
【００１８】
いくつかの事例では、遠隔システムは、制御デバイスから、ユーザからのユーザ音声を表すオーディオデータを受信し得る。次いで、遠隔システムは、オーディオデータを処理し、処理に基づいて１つ以上の機能を実施し得る。第１の例について、ユーザ音声がアプリケーションによって実施されることになる動作に対応する場合、遠隔システムは、ユーザ音声に基づいてアプリケーションの状態を更新し得る。例えば、ユーザ音声が「オブジェクトを前進させる」などの１つ以上の単語を含む場合、遠隔システムは、ゲーム環境内でオブジェクトを前進させることによってアプリケーションの状態を更新し得る。第２の例について、ユーザ音声がユーザの連絡先にメッセージを送信する要求に対応する場合、遠隔システムは、連絡先にメッセージを送信し得る。例えば、アプリケーションがゲームアプリケーションを含む場合、メッセージは、ユーザとマルチプレイヤゲームに参加する要求を含み得る。
【００１９】
第３の例について、ユーザ音声がアプリケーションを選択する要求に対応する場合、遠隔システムは、アプリケーションを選択する、および／またはアプリケーションを表すデータをディスプレイデバイスに送信することを開始し得る。例えば、ユーザ音声が「第１のゲームアプリケーションをプレイする」などの１つ以上の単語を含む場合、遠隔システムは、第１のゲームアプリケーションを選択する、および／または第１のゲームアプリケーションを表すデータをディスプレイデバイスに送信することを開始し得る。これらは、１つ以上の機能を実施するためにユーザ音声を使用する、単にいくつかの例であるが、他の例では、遠隔システムは、制御デバイスから受信されたオーディオデータに基づいて追加の機能を実施し得る。
【００２０】
アプリケーションがゲームアプリケーションを含むときなどの、いくつかの事例では、遠隔システムは、ビデオゲームコンソール、コンピューティングデバイス、タブレット、および／または他の電子デバイスと同様のプロセスおよび／または技術を実施して、制御デバイスによって受信された入力を処理し得る。しかしながら、従来のビデオゲームコンソール、コンピューティングデバイス、テーブル、および／またはゲームアプリケーションを実行している他の電子デバイスとは異なり、遠隔システムは、制御デバイスおよび／またはディスプレイデバイスから遠隔であり得る。例えば、制御デバイスおよび／またはディスプレイデバイスは、ユーザの自宅、アパート、オフィスなどのユーザの環境に位置し得る。遠隔システムは、ユーザの環境から遠隔であり、ネットワークを介して制御デバイスおよびディスプレイデバイスの各々と通信し得る。
【００２１】
上記の例では、遠隔システムは、制御デバイスおよびディスプレイデバイスから遠隔に位置し得る。例えば、制御デバイスおよびディスプレイデバイスは、ユーザの自宅、アパート、企業などの環境に位置し得る。次いで、遠隔システムは、クラウドベースシステムなどの、環境から遠隔に位置し得る。他の事例では、遠隔システムは、制御デバイスおよび／またはディスプレイデバイスと同じ環境に位置してもよい。例えば、遠隔システムは、環境内に位置するデバイスを含み得る。
【００２２】
いくつかの事例では、制御デバイスに遠隔システムと直接通信させることによって、本明細書に説明されるプロセスおよび技術は、アプリケーションを使用するときの待ち時間を低減し得る。例えば、オンラインゲームに関して、ビデオゲームコンソールを使用して、制御デバイスからの入力を処理し、次いで、遠隔システムに、ゲームへの更新を表すデータを送信する代わりに、制御デバイスは、入力データを直接的に遠隔システムに送信し（すなわち、入力データをビデオゲームコンソールに送信する必要がない）、次いで、遠隔システムが入力を処理する。これは、入力データが最初にビデオゲームコンソールに送信されることによって引き起こされる待ち時間、および／またはビデオゲームコンソールが入力データを処理することによって引き起こされる待ち時間を低減し得る。
【００２３】
図１は、ネットワークアプリケーションを制御するための例示的なシステム１００の概略図である。システム１００は、例えば、遠隔システム１０２、制御デバイス１０４、およびディスプレイデバイス１０６を含み得る。図１の例では、制御デバイス１０４は、第１の通信チャネルを使用することなどによって、ネットワーク１０８を介して遠隔システム１０２と通信し得る。例えば、制御デバイス１０４は、データを遠隔システム１０２（１１２によって表される）に送信し得、遠隔システム１０２は、データを制御デバイス１０４（１１４によって表される）に送信し得る。加えて、ディスプレイデバイス１０６は、第２の通信チャネルを使用することなどによって、ネットワーク１０８を介して遠隔システム１０２と通信し得る。例えば、ディスプレイデバイス１０６は、データを遠隔システム１０２（１１６によって表される）に送信し得、遠隔システム１０２は、データをディスプレイデバイス１０６（１１８によって表される）に送信し得る。制御デバイス１０４およびディスプレイデバイス１０６と共にデータを送受信することによって、遠隔システム１０２は、ユーザ１１０が、遠隔システム１０２を介して、制御デバイス１０４を使用して、ディスプレイデバイス１０６によって表示されているアプリケーションを制御することを可能にする。
【００２４】
例えば、ユーザ１１０は、最初に制御デバイス１０４を構成し得る。制御デバイス１０４は、限定されるものではないが、ビデオゲームコントローラ、キーボード、マウス、タブレット、携帯電話、コンピュータ、カメラ、マイクロフォン、ならびに／またはユーザ１１０から入力を受信することができる、および／もしくはデータを生成することができる任意の他のタイプのデバイスを含み得る。制御デバイス１０４を構成するために、ユーザ１１０は、構成設定を制御デバイス１０４および／または別のデバイスに入力し得る。構成設定が別のデバイスに入力される際、他のデバイスは、次いで、構成設定を表すデータを制御デバイス１０４に送信し得る。構成設定は、限定されるものではないが、ネットワークデバイスと関連付けられた識別子（例えば、ルータ（図示せず）と関連付けられたＳＳＩＤ）、パスワードなどを含み得る。次いで、制御デバイス１０４は、構成設定を表すデータを記憶し得る。加えて、制御デバイス１０４は、遠隔システム１０２と通信するために、構成設定を使用してネットワーク１０８に接続し得る。
【００２５】
いくつかの事例では、ユーザ１１０は、遠隔システム１０２を用いて制御デバイス１０４をさらに構成し得る。例えば、遠隔システム１０２は、制御デバイス１０４および／または別のデバイスから、制御デバイス１０４の識別子を表す識別子データ１２０を受信し得る。制御デバイス１０４の識別子は、限定されるものではないが、ＩＰアドレス、ＭＡＣアドレス、数値識別子、アルファベット識別子、混合された数値およびアルファベット識別子、および／または制御デバイス１０４を識別するために使用され得る任意の他のタイプの識別子を含み得る。次いで、構成構成要素１２２は、ユーザプロファイルがユーザプロファイルデータ１２４によって表される、ユーザプロファイルと関連する制御デバイス１０４の識別子を表す識別子データ１２０を記憶するように構成され得る。
【００２６】
いくつかの事例では、ユーザ１１０は、ディスプレイデバイス１０６などの遠隔システム１０２を用いて１つ以上のディスプレイデバイスをさらに構成し得る。ディスプレイデバイス１０６は、限定されるものではないが、テレビ、プロジェクタ、モニタ、タブレット、携帯電話、別のディスプレイデバイスに接続する周辺デバイス、ならびに／またはコンテンツ（例えば、画像（複数可）、ビデオなど）を表示することができる、および／もしくは別のデバイスにコンテンツを表示させることができる任意の他のタイプのデバイスを含み得る。ディスプレイデバイス１０６を構成するために、遠隔システム１０２は、制御デバイス１０６および／または別のデバイスから、制御デバイス１０６の識別子を表す識別子データ１２０を受信し得る。ディスプレイデバイス１０６の識別子は、限定されるものではないが、ＩＰアドレス、ＭＡＣアドレス、数値識別子、アルファベット識別子、混合された数値およびアルファベット識別子、および／またはディスプレイデバイス１０６を識別するために使用され得る任意の他のタイプの識別子を含み得る。次いで、構成構成要素１２２は、ユーザプロファイルと関連するディスプレイデバイス１０６の識別子を表す識別子データ１２０を記憶するように構成され得る。
【００２７】
いくつかの事例では、遠隔システム１０２は、ネットワーク１０８を介して制御デバイス１０４によってアクセス可能である１つ以上のアプリケーションを表すアプリケーションデータ１２６をさらに記憶し得る。アプリケーションは、限定されるものではないが、ゲームアプリケーション、文書処理アプリケーション、教育アプリケーション、マルチメディアアプリケーション（例えば、映画、音楽など）、および／またはネットワーク１０８を介してアクセスされることができる任意の他のタイプのアプリケーションを含み得る。いくつかの事例では、遠隔システム１０２は、アプリケーションのうちの１つ以上をユーザプロファイルと関連付け得る。例えば、遠隔システム１０２は、ユーザ１１０が遠隔システム１０２からアプリケーションを取得したこと（例えば、購入、リースなど）を示すデータを受信し得る。いくつかの事例では、次いで、遠隔システム１０２は、ユーザ１１０がアプリケーションによって取得したことを示すアプリケーションデータ１２８を記憶し得る。次いで、遠隔システム１０２は、ユーザ１１０が制御デバイス１０４を使用してアプリケーションにアクセスすることを可能にし得る。
【００２８】
アプリケーションにアクセスするために、制御デバイス１０４は、構成設定を使用することなどによって、ネットワーク１０８に接続し得る。次いで、制御デバイス１０４は、遠隔システム１０２に、制御デバイス１０４と関連付けられた識別子を少なくとも表す識別子データ１２０を送信し得る。遠隔システム１０２は、識別子データ１２０を受信し、ユーザプロファイルデータ１２４（例えば、記憶された識別子データ１２０）を使用して、識別子データ１２０が制御デバイス１０４から受信されることを決定し得る。例えば、遠隔システム１０２は、制御デバイス１０４から受信された識別子データ１２０によって表される識別子を、記憶された識別子データ１２０によって表される識別子と照会し得る。照会に少なくとも部分的に基づいて、遠隔システム１０２は、識別子データ１２０が制御デバイス１０４から送信されたことを決定し得る。
【００２９】
遠隔システム１０２は、ユーザプロファイルデータ１２４を使用して、制御デバイス１０４が少なくともディスプレイデバイス１０６と関連付けられていることをさらに決定し得る。例えば、識別子データ１２０が制御デバイス１０４から送信されたことを決定することに少なくとも部分的に基づいて、遠隔システム１０２は、ユーザ１１０と関連付けられたユーザプロファイルデータ１２４を分析し得る。次いで、遠隔システム１０２は、ユーザプロファイルデータ１２４が、ディスプレイデバイス１０６の識別子を表す識別子データ１２０を含む、および／またはそれと関連付けられていることを決定し得る。決定に少なくとも部分的に基づいて、遠隔システム１０２は、制御デバイス１０４がディスプレイデバイス１０６と関連付けられていることを決定し得る。
【００３０】
いくつかの事例では、遠隔システム１０２は、ユーザ１１０がアクセス可能である１つ以上の追加のアプリケーションを表すデータ（例えば、ビデオデータ、オーディオデータなど）をディスプレイデバイス１０６に送信し得る。いくつかの事例では、１つ以上のアプリケーションは、ユーザ１１０によって取得された１つ以上のアプリケーション（例えば、アプリケーションデータ１２８によって表される１つ以上のアプリケーション）を含み得る。追加的に、または代替的に、いくつかの事例では、１つ以上のアプリケーションは、ユーザに無料である１つ以上のアプリケーションを含み得る。
いずれの例も、ディスプレイデバイス１０６は、遠隔システム１０２からデータを受信し得る。次いで、ディスプレイデバイス１０６は、ユーザ１１０が利用可能である１つ以上のアプリケーションを表す画像（複数可）を表示し得る。例えば、画像（複数可）は、ユーザ１１０が利用可能である１つ以上のアプリケーションの１つ以上の識別子（例えば、１つ以上の名前）を含み得る。
【００３１】
次いで、遠隔システム１０２は、制御デバイス１０４から、制御デバイス１０４によって受信された入力（複数可）を表す入力データ１３０を受信し得る。遠隔システム１０２は、入力データ１３０を分析して、ユーザ１１０によって選択されたアプリケーションを識別し得る。例えば、入力（複数可）は、１つ以上のアプリケーションを表す画像（複数可）を横断する、カーソルなどのオブジェクトの移動（複数可）に対応し得る。入力（複数可）は、アプリケーションのうちの１つの選択（例えば、オブジェクトが選択されたアプリケーション上に位置するときの制御デバイス１０４上の制御の選択）にさらに対応し得る。次いで、遠隔システム１０２は、選択に少なくとも部分的に基づいて、ユーザ１１０がアプリケーションを選択したことを決定し得る。
【００３２】
次いで、遠隔システム１０２は、ディスプレイデバイス１０６に、アプリケーションの第１の状態を表すデータを送信し得る。データは、アプリケーションの第１の状態の画像（複数可）を表す第１のビデオデータ１３２、アプリケーションの第１の状態に対応する音を表す第１のオーディオデータ１３４、および／またはアプリケーションの第１の状態を表示するための時間および／または音を出力するための時間を表す第１のタイムスタンプデータ１３６を含み得る。いくつかの事例では、遠隔システム１０２は、第１のビデオデータ１３２、第１のオーディオデータ１３４、および／または第１のタイムスタンプデータ１３６を含む第１のデータパケットを送信する。他の事例では、遠隔システム１０２は、第１のビデオデータ、第１のオーディオデータ、および／または第１のタイムスタンプデータ１３６を別々にディスプレイデバイス１０６に送信し得る。
【００３３】
ディスプレイデバイス１０６は、遠隔システム１０２からデータ（および／または第１のデータパケット）を受信し得る。第１のビデオデータ１３２を使用して、ディスプレイデバイス１０６は、アプリケーションの第１の状態を表す画像（複数可）を表示し得る。例えば、アプリケーションがゲームアプリケーションを含む場合、ディスプレイデバイス１０６は、ゲームの第１の状態を表すコンテンツを表示し得る。図１の例では、ゲームの第１の状態は、ゲーム環境（例えば、森）内の第１の位置に位置するオブジェクト（例えば、キャラクタ）を含み得る。いくつかの事例では、ディスプレイデバイス１０６は、第１のオーディオデータ１３４によって表される音をさらに出力し得る。いくつかの事例では、ディスプレイデバイス１０６は、第１のタイムスタンプデータ１３６によって表される時間に従って画像（複数可）を表示する、および／または音を出力する。
【００３４】
例えば、ディスプレイデバイス１０６は、現在の時間が、いつ、第１のビデオデータ１３２を表示するための第１のタイムスタンプデータ１３６によって表される時間を含むかを決定し得る。決定に少なくとも部分的に基づいて、ディスプレイデバイス１０６は、アプリケーションの第１の状態を表す画像（複数可）の表示を開始し得る。加えて、ディスプレイデバイス１０６は、現在の時間が、いつ、音を出力するための第１のタイムスタンプデータ１３６によって表される時間を含むかを決定し得る。決定に少なくとも部分的に基づいて、ディスプレイデバイス１０６は、第１のオーディオデータ１３４によって表される音の出力を開始し得る。
【００３５】
いくつかの事例では、遠隔システム１０２は、制御デバイス１０４に、アプリケーションの第１の状態を表すデータを追加的に送信し得る。データは、アプリケーションの第１の状態に対応する音を表す第２のオーディオデータ１３４、および／または音を出力するための時間を表す第２のタイムスタンプデータ１３６を含み得る。いくつかの事例では、遠隔システム１０２は、第２のオーディオデータ１３４および／または第２のタイムスタンプデータ１３６を含む第２のデータパケットを送信する。他の事例では、遠隔システム１０２は、第２のタイムスタンプデータ１３６を別々に形成する第２のオーディオデータ１３４を送信し得る。次いで、制御デバイス１０４は、第２のオーディオデータ１３４によって表される音を出力し得る。いくつかの事例では、制御デバイス１０４は、第２のタイムスタンプデータ１３６によって表される時間に従って、音を出力し得る。いくつかの事例では、第１のタイムスタンプデータ１３６および／または第２のタイムスタンプデータ１３６は、ディスプレイデバイス１０６による音の出力を、ディスプレイデバイス１０６による画像（複数可）の表示と同期させる。
【００３６】
例えば、同期化構成要素１３８は、少なくとも、ディスプレイデバイス１０６による画像（複数可）の表示を、制御デバイス１０４による音の出力と同期させるように構成され得る。同期化を実施するために、同期化構成要素１３８は、画像（複数可）を表示するための第１のタイムスタンプデータ１３６、および／または音を出力するための第２のタイムスタンプデータ１３６を生成し得る。例えば、第１のタイムスタンプデータ１３６は、第１の時間に画像（複数可）を表示する命令を表し得る。加えて、第２のタイムスタンプデータ１３６は、第２の時間に音を出力する命令を表し得る。いくつかの事例では、第１の時間は、第２の時間と同様であり得る。いくつかの事例では、第１の時間は、第２の時間までの閾値期間内であり得る。閾値期間としては、限定されるものではないが、１ミリ秒、１０ミリ秒、１秒などが挙げられ得る。
【００３７】
次いで、ユーザ１１０は、制御デバイス１０４を使用して、アプリケーションに入力を提供し得る。例えば、制御デバイス１０４は、制御デバイス１０４と関連付けられたボタン、ジョイスティック、キー、タッチ感知パッド、センサなどの選択などの入力を受信し得る。次いで、制御デバイス１０４は、遠隔システム１０２に、入力を表す入力データ１３０を送信し得る。入力データ１３０を使用して、処理構成要素１４０は、アプリケーションの第１の状態をアプリケーションの第２の状態に更新し得る。例えば、アプリケーションがゲームアプリケーションを含む上記の例を使用して、入力は、ゲーム環境内の所与の量だけオブジェクトを前進させることと関連付けられ得る。したがって、処理構成要素１４０は、入力データ１３０を分析して、入力が所与の量だけオブジェクトを前進させることを含むことを決定し得る。次いで、処理構成要素１４０は、所与の量だけ環境内でオブジェクトを前進させることによって、アプリケーションの第１の状態をアプリケーションの第２の状態に更新し得る。
【００３８】
次いで、遠隔システム１０２は、アプリケーションの第２の状態を表すデータをディスプレイデバイス１０６に送信し得る。データは、アプリケーションの第２の状態の画像（複数可）を表す第３のビデオデータ１３２、アプリケーションの第２の状態に対応する音を表す第３のオーディオデータ１３４、および／またはアプリケーションの第２の状態を表示するための時間および／または音を出力するための時間を表す第３のタイムスタンプデータ１３６を含み得る。いくつかの事例では、遠隔システム１０２は、第３のビデオデータ１３２、第３のオーディオデータ１３４、および／または第３のタイムスタンプデータ１３６を含む第３のデータパケットを送信する。他の事例では、遠隔システム１０２は、第３のビデオデータ、第３のオーディオデータ、および／または第３のタイムスタンプデータ１３６を別々にディスプレイデバイス１０６に送信し得る。
【００３９】
ディスプレイデバイス１０６は、遠隔システム１０２からデータ（および／または第３のデータパケット）を受信し得る。第３のビデオデータ１３２を使用して、ディスプレイデバイス１０６は、アプリケーションの第２の状態を表す画像（複数可）を表示し得る。例えば、繰り返しになるが、アプリケーションがゲームアプリケーションを含む例を使用して、ディスプレイデバイス１０６は、ゲーム環境内の第２の位置に位置するオブジェクトを表示し得る。いくつかの事例では、ディスプレイデバイス１０６は、第３のオーディオデータ１３４によって表される音をさらに出力し得る。いくつかの事例では、ディスプレイデバイス１０６は、第３のタイムスタンプデータ１３６によって表される時間（複数可）に従って、画像（複数可）を表示する、および／または音を出力する。
【００４０】
いくつかの事例では、遠隔システム１０２は、制御デバイス１０４に、アプリケーションの第２の状態を表すデータを追加的に送信し得る。データは、アプリケーションの第２の状態に対応する音を表す第４のオーディオデータ１３４、および／または音を出力するための時間を表す第４のタイムスタンプデータ１３６を含み得る。いくつかの事例では、遠隔システム１０２は、第４のオーディオデータ１３４および／または第４のタイムスタンプデータ１３６を含む第４のデータパケットを送信する。他の事例では、遠隔システム１０２は、第４のタイムスタンプデータ１３６とは別々に第４のオーディオデータを送信し得る。いずれの事例も、次いで、制御デバイス１０４は、第４のオーディオデータ１３４によって表される音を出力し得る。いくつかの事例では、制御デバイス１０４は、第４のタイムスタンプデータ１３６によって表される時間に従って、音を出力し得る。いくつかの事例では、第３のタイムスタンプデータ１３６および／または第４のタイムスタンプデータ１３６は、ディスプレイデバイス１０６による音の出力を、ディスプレイデバイス１０６による画像（複数可）の表示と同期させる。
【００４１】
いくつかの事例では、遠隔システム１０２は、制御デバイス１０４から入力データ１３０を受信し続け得る。次いで、処理構成要素１４０は、アプリケーションの状態を更新するために、入力データ１３０を処理し続け得る。更新に少なくとも部分的に基づいて、遠隔システム１０２は、アプリケーションの現在の状態を表すデータ（例えば、ビデオデータ１３２、オーディオデータ１３４、タイムスタンプデータ１３６など）をディスプレイデバイス１０６に送信し続け得る。いくつかの事例では、遠隔システム１０２は、データパケットとしてデータをディスプレイデバイス１０６に送信する。遠隔システム１０２は、アプリケーションの現在の状態を表すデータ（例えば、オーディオデータ１３４、タイムスタンプデータ１３６など）を制御デバイスにさらに送信し得る。いくつかの事例では、遠隔システム１０２は、データパケットの一部としてデータを制御デバイス１０４に送信する。
【００４２】
図１にさらに例示されるように、遠隔システム１０２は、自動音声認識（ＡＳＲ）構成要素１４４および自然言語理解（ＮＬＵ）構成要素１４６を含む音声処理システム１４２を含み得る。いくつかの事例では、制御デバイス１０４から受信された入力データ１３０は、ユーザ１１０からのユーザ音声を表すオーディオデータを含み得る。例えば、制御デバイス１０４は、ユーザ１１０からのユーザ音声を取り込む少なくとも１つのマイクロフォンを含み得る。次いで、制御デバイス１０４は、ユーザ音声を表すオーディオデータを生成し、オーディオデータ（例えば、入力データ１３０）を遠隔システム１０２に送信し得る。入力データ１３０がオーディオデータを含む事例では、ＡＳＲ構成要素１４４は、ユーザ音声を表すテキストデータを生成するために、オーディオデータを分析し得る。
【００４３】
次いで、ＮＬＵ構成要素１４６は、テキストデータを使用して、テキストの意味解釈を行い得る。すなわち、ＮＬＵ構成要素１４６は、個々の単語に基づいてテキストの背後にある意味を決定し、次いで、その意味を実装する。ＮＬＵ構成要素１４６は、テキスト文字列を解釈して、ユーザ１１０からの意図または所望の作用、ならびに処理構成要素１４０内の関連する情報片を導出して、アプリケーションの現在の状態をどのように更新するかを決定する。例えば、ＡＳＲ構成要素１４４を使用して処理されるユーザ音声が「オブジェクトを前進させる」というテキストを含む場合、ＮＬＵ構成要素１４６は、オブジェクトを環境内で前進させることをユーザ１１０が意図していることを決定し得る。次いで、処理構成要素１４０は、上記の処理と同様に、アプリケーションの状態を更新するためにその意図を使用し得る。
【００４４】
例では、遠隔システム１０２の構成要素および／またはシステムのいくつかまたは各々は、それらの独自のプロセッサ（複数可）、ネットワークインターフェース（複数可）、および／またはメモリを含み得る。したがって、例として、アプリケーションシステム１４８は、プロセッサ（複数可）、ネットワークインターフェース（複数可）、および／またはメモリを含む、および／またはそれらと関連付けられ得る。加えて、音声処理システム１４２は、異なるプロセッサ（複数可）、ネットワークインターフェース（複数可）、および／もしくはメモリを含む、および／もしくはそれらと関連付けられ得るか、またはこれらの構成要素のうちの１つ以上は、アプリケーションシステム１４８によって利用される同じプロセッサ（複数可）、ネットワークインターフェース（複数可）、および／またはメモリの一部または全部を利用し得る。これらの構成要素は、本明細書に詳細に説明される。加えて、遠隔システム１０２の構成要素と関連付けられる、および／またはそれらに関して説明される、動作および／または機能は、クラウドベースコンピューティングリソースを利用して実施され得る。例えば、Ｅｌａｓｔｉｃ  Ｃｏｍｐｕｔｅ  Ｃｌｏｕｄシステムまたは同様のシステムなどのウェブベースシステムが、本明細書に説明される機能の一部または全部の実施のために仮想コンピューティング環境を生成および／または提示するために利用され得る。追加的に、または代替的に、Ｌａｍｂｄａシステムまたは同様のシステムなどのサーバをプロビジョニングおよび／または管理せずに動作を実施するように構成され得る１つ以上のシステムが利用され得る。
【００４５】
図２は、遠隔システム１０２と通信するように構成されている、制御デバイス１０４の例示的なアーキテクチャのブロック図を例示する。示されるように、制御デバイス１０４は、１つ以上のプロセッサ２０２と、１つ以上のネットワークインターフェース２０４と、１つ以上のスピーカ２０６と、１つ以上のマイクロフォン２０８と、１つ以上の入力デバイス２１０と、１つ以上の出力デバイス２１２と、１つ以上の電力構成要素２１４と、１つ以上のライト２１６と、１つ以上の周辺入力２１８と、およびメモリ２２０と、を含む。いくつかの事例では、制御デバイス１０４は、図２の例に例示されない１つ以上の追加の構成要素を含み得る。いくつかの事例では、制御デバイス１０４は、１つ以上のスピーカ（複数可）２０６、マイクロフォン（複数可）２０８、入力デバイス（複数可）２１０、出力デバイス（複数可）２１２、ライト（複数可）２１６、または周辺入力（複数可）２１８を含まなくてもよい。
【００４６】
制御デバイス１０４は、１つ以上の一体型スピーカ（複数可）２０６を有するものとして例示されるが、他の例では、制御デバイス１０４は、スピーカ（複数可）２０６を含まなくてもよい。例えば、制御デバイス１０４は、周辺入力２１８を介して制御デバイス１０４に接続されたヘッドフォンなどの外部ラウドスピーカを駆動するオーディオ出力信号を生成し得る。別の例として、制御デバイス１０４は、Ｂｌｕｅｔｏｏｔｈ接続などの無線データ接続を通して外部ラウドスピーカを駆動または制御し得る。他の状況では、制御デバイス１０４は、制御デバイス１０４からではなく、遠隔システム１０２からオーディオデータおよび他の命令を受信するラウドスピーカデバイスと併せて使用され得る。
【００４７】
マイクロフォン（複数可）２０８は、音を受信するように構成されたセンサ（例えば、トランスデューサ）を含み得る。マイクロフォン（複数可）２０８は、オーディオ入力（例えば、音）のための入力信号を生成し得る。例えば、マイクロフォン（複数可）２０８は、ユーザの発話のためのデジタル入力信号を決定し得る。いくつかの事例では、マイクロフォン（複数可）２０８は、配列で実装される。配列は、線形幾何学的形態、円形幾何学的形態、または任意の他の構成などの幾何学的パターンで配置され得る。例えば、所与の点について、４つのセンサの配列は、４つの方向から音を受信するために、９０度の増分（例えば、０、９０、１８０、２１１２）で円形パターンに配置され得る。マイクロフォン（複数可）２０８は、平面構成にあってもよく、または非平面３次元領域に離れて位置付けられ得る。いくつかの事例では、マイクロフォン（複数可）２０８は、データ通信における、空間的に別個のセンサの配列を含み得る。例えば、ネットワーク化されたセンサの配列が含まれ得る。マイクロフォン（複数可）２０８は、全方向マイクロフォン、指向性マイクロフォン（例えば、ショットガンマイクロフォン）などを含み得る。
【００４８】
いくつかの事例では、マイクロフォン（複数可）２０８およびスピーカ（複数可）２０６は、ユーザとのダイアログなどの対話を容易にする。マイクロフォン（複数可）２０８は、制御デバイス１０４の環境からの音、例えば、ユーザによる音声発話を表す、オーディオデータを生成する。マイクロフォン（複数可）２０８によって生成されるオーディオデータは、指向性オーディオ信号を含み得るか、または指向性オーディオ信号を生成するために使用され得、指向性オーディオ信号の各々は、マイクロフォン（複数可）２０８に対して異なる半径方向からのオーディオを強調する。
【００４９】
入力デバイス（複数可）２１０は、ボタン（複数可）、キー（複数可）、ジョイスティック（複数可）、タッチ感知パッド（複数可）、トリガ（複数可）、制御デバイス１０４の移動を検出するセンサ（複数可）（例えば、加速度計（複数可）、磁力計（複数可）など）、および／またはユーザから入力を受信することができる任意の他のタイプのデバイスを含み得る。出力デバイス（複数可）２１２は、ユーザにフィードバックを提供するデバイスを含み得る。例えば、出力デバイス（複数可）２１０は、アクチュエータ（複数可）を作動させる触覚ドライバ（複数可）を含み得る。
【００５０】
電力構成要素（複数可）２１４は、制御デバイス１０４に電力を提供するように構成され得る。第１の例について、電力構成要素（複数可）２１４は、１つ以上のバッテリを含み得る。第２の例について、電力構成要素（複数可）２１４は、家庭用ＡＣ電源（本明細書では「ＡＣ主電源」または「壁電源」と代替的に称される）などの外部ＡＣ（交流）電源に接続された構成要素を含み得る。
【００５１】
ライト（複数可）２１６は、制御デバイス１０４によって作動されたときに発光する視覚的インジケータ（複数可）（例えば、発光ダイオード（ＬＥＤ））を含み得る。いくつかの事例では、視覚的インジケータ（複数可）は、制御デバイス１０４の一部分上に配設されたライトリングを含み得る。他の事例では、視覚的インジケータ（複数可）は、制御デバイス１０４上の様々な部分上に配設され得る。周辺入力（複数可）２１８は、周辺デバイスを制御デバイス１０４に接続するための１つ以上の構成要素を含み得る。例えば、周辺入力２１８は、ヘッドフォンを制御デバイス１０４に接続するためのジャックを含み得る。
【００５２】
制御デバイス１０４は、メモリ２２０を含み得る。メモリ２２０は、プロセッサ（複数可）２０２によって実行可能である任意の数のソフトウェア構成要素を記憶するために使用され得る。メモリ２２０に記憶されるソフトウェア構成要素は、制御デバイス１０４内のおよびそれに連結されるハードウェアおよびサービスを管理するように構成されるオペレーティングシステム２２２を含み得る。加えて、メモリ２２０によって記憶された実行可能構成要素は、マイクロフォン２０８を使用してオーディオデータを生成するように構成されたオーディオ処理構成要素（複数可）２２４を含み得る。オーディオ処理構成要素（複数可）２２４は、マイクロフォン（複数可）２０８によって生成されたマイクロフォンオーディオデータおよび／またはスピーカ（複数可）２０６に提供された出力オーディオデータを処理するための機能を含み得る。一例として、オーディオ処理構成要素（複数可）２２４は、マイクロフォン（複数可）２０８とスピーカ（複数可）２０６との間の音響結合によって生成される音響エコーを低減するための音響エコー消去または抑制構成要素を含み得る。オーディオ処理構成要素２２４はまた、ユーザ音声以外のマイクロフォンロホンオーディオデータの要素などの、受信されたオーディオデータ内のノイズを低減するためのノイズ低減構成要素も含み得る。
【００５３】
加えて、オーディオ処理構成要素（複数可）２２４は、トリガ表現のシステムのユーザ発話を検出するためにオーディオ信号を監視するウェイクワード検出構成要素を含み得る。ウェイクワード検出は、一例として、キーワードスポッティング技術を使用して実装され得る。
【００５４】
図２にさらに例示されるように、メモリ２２０は、制御デバイス１０４によって生成された入力データ１３０を含み得、制御デバイス１０４は、入力データ１３０を少なくとも遠隔システム１０２に送信する。加えて、メモリ２２０は、制御デバイス１０４が遠隔システム１０２から受信する、ビデオデータ１３２、オーディオデータ１３４、および／またはタイムスタンプデータ１３６を含み得る。加えて、メモリ２２０は、制御デバイス１０４が遠隔システム１０２に送信し得る識別子データ１２０を記憶し得る。
【００５５】
図２にさらに例示されるように、メモリ２２０は、構成データ２２６を記憶し得る。制御デバイス１０４は、構成データ２２６を使用して、ネットワーク１０８などのネットワークとの接続を確立し得る。例えば、構成データ２２６は、ＳＳＩＤおよびパスワードを表し得る。
【００５６】
図２にさらに例示されるように、電子デバイス１０４は、周辺デバイス（複数可）２２６に接続され得る。周辺デバイス（複数可）２２６は、限定されるものではないが、ヘッドフォン、スピーカ（複数可）、ディスプレイ（複数可）、入力デバイス（複数可）（例えば、キーボード、マウス、ボタン（複数可）など）を含み得る。いくつかの事例では、電子デバイス１０４は、周辺デバイス（複数可）２２６との有線接続を含む。例えば、周辺デバイス（複数可）２２６は、周辺入力（複数可）２１８に接続し得る。いくつかの事例では、電子デバイス１０４は、周辺デバイス（複数可）２２６との無線接続を含む。例えば、電子デバイス１０４は、ネットワークを介して周辺デバイス（複数可）２２６と通信し得る。
【００５７】
図２の例は、周辺デバイス（複数可）２２６を電子デバイス１０４とは別個であるように例示するが、他の事例では、電子デバイス１０４は、周辺デバイス（複数可）２２６を含んでもよい。例えば、電子デバイス１０４は、ヘッドフォンを含み得る。
【００５８】
図３は、制御デバイス１０４およびディスプレイデバイス１０６と通信するように構成されている遠隔システム１０２の例示的なアーキテクチャのブロック図を例示する。示されるように、アプリケーションシステム１４８は、プロセッサ（複数可）３０２、ネットワークインターフェース（複数可）３０４、およびメモリ３０６を含み得る。加えて、音声処理システム１４２は、プロセッサ（複数可）３０８、ネットワークインターフェース（複数可）３１０、およびメモリ３１２を含み得る。
【００５９】
本明細書に使用される場合、プロセッサ（複数可）２０２、プロセッサ（複数可）３０２、および／またはプロセッサ（複数可）３０８などのプロセッサは、複数のプロセッサおよび／または複数のコアを有するプロセッサを含み得る。さらに、プロセッサは、異なるタイプの１つ以上のコアを含み得る。例えば、プロセッサは、アプリケーションプロセッサユニット、グラフィック処理ユニットなどを含み得る。一事例では、プロセッサは、マイクロフォンロコントローラおよび／またはマイクロフォンロプロセッサを含み得る。プロセッサ（複数可）２０２、プロセッサ（複数可）３０２、および／またはプロセッサ（複数可）３０８は、グラフィックス処理ユニット（ＧＰＵ）、マイクロフォンロプロセッサ、デジタル信号プロセッサ、または当該技術分野で既知の他の処理ユニットもしくは構成要素を含み得る。代替的に、または追加的に、本明細書に説明される機能は、１つ以上のハードウェア論理構成要素によって、少なくとも部分的に、実施され得る。例えば、非限定的に、使用され得るハードウェア論理構成要素の例示的なタイプとしては、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、特定用途向け標準製品（ＡＳＳＰ）、システムオンチップシステム（ＳＯＣ）、コンプレックスプログラマブル論理デバイス（ＣＰＬＤ）などが挙げられる。加えて、プロセッサ（複数可）２０２、プロセッサ（複数可）３０２、および／またはプロセッサ（複数可）３０８の各々は、プログラム構成要素、プログラムデータ、および／または１つ以上のオペレーティングシステムも記憶し得る、その独自のローカルメモリを有し得る。
【００６０】
メモリ２２０、メモリ３０６、および／またはメモリ３１２は、揮発性および不揮発性メモリ、コンピュータ可読命令、データ構造、プログラム構成要素、または他のデータなどの情報を記憶するための任意の方法または技術で実装される取り外し可能および取り外し不可能な媒体を含み得る。メモリ２２０、メモリ３０６、および／またはメモリ３１２は、限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光学記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置もしくは他の磁気記憶装置、ＲＡＩＤ記憶システム、または所望の情報を記憶するために使用され得、コンピューティングデバイスによってアクセスされ得る任意の他の媒体を含む。メモリ２２０、メモリ３０６、および／またはメモリ３１２は、コンピュータ可読記憶媒体（「ＣＲＳＭ」）として実装され得、これは、メモリ２２０、メモリ３０６、および／またはメモリ３１２に記憶された命令を実行するために、プロセッサ（複数可）プロセッサ（複数可）２０２、プロセッサ（複数可）３０２、および／またはプロセッサ（複数可）３０８によってアクセス可能な任意の利用可能な物理媒体であり得る。１つの基本的な事例では、ＣＲＳＭは、ランダムアクセスメモリ（「ＲＡＭ」）およびフラッシュメモリを含み得る。他の事例では、ＣＲＳＭは、限定されるものではないが、読み出し専用メモリ（「ＲＯＭ」）、電気的消去可能プログラマブル読み出し専用メモリ（「ＥＥＰＲＯＭ」）、または所望の情報を記憶するために使用され得、かつプロセッサ（複数可）によってアクセスされ得る、任意の他の有形媒体を含み得る。
【００６１】
さらに、機能構成要素は、それぞれのメモリに記憶され得るか、または同じ機能は、代替的に、ハードウェア、ファームウェア、特定用途向け集積回路、フィールドプログラマブルゲートアレイ、またはシステムオンチップ（ＳｏＣ）に実装され得る。加えて、例示されていないが、本明細書に議論されるメモリ２２０、メモリ３０６、および／またはメモリ３１２などの各それぞれのメモリは、ネットワークインターフェース（複数可）、それぞれの装置のＩ／Ｏデバイスなどのハードウェアリソースデバイスを管理し、かつプロセッサ上で実行しているアプリケーションまたは構成要素に様々なサービスを提供するように構成される、少なくとも１つのオペレーティングシステム（ＯＳ）構成要素を含み得る。そのようなＯＳ構成要素は、ＦｒｅｅＢＳＤプロジェクトによって公表されたＦｒｅｅＢＳＤオペレーティングシステムの変形例、他のＵＮＩＸまたはＵＮＩＸのような変形例、Ｌｉｎｕｓ  Ｔｏｒｖａｌｄｓによって公表されたＬｉｎｕｘオペレーティングシステムの変形例、Ｓｅａｔｔｌｅ，Ｗａｓｈｉｎｇｔｏｎ，ＵＳＡのＡｍａｚｏｎ．ｃｏｍ  Ｉｎｃ．のＦｉｒｅＯＳオペレーティングシステム、Ｒｅｄｍｏｎｄ，Ｗａｓｈｉｎｇｔｏｎ，ＵＳＡのＭｉｃｒｏｓｏｆｔ  ＣｏｒｐｏｒａｔｉｏｎのＷｉｎｄｏｗｓオペレーティングシステム、Ｓａｎ  Ｊｏｓｅ，ＣａｌｉｆｏｒｎｉａのＬｙｎｘ  Ｓｏｆｔｗａｒｅ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ．によって公表されたＬｙｎｘＯＳ、ＳｗｅｄｅｎのＥＮＥＡ  ＡＢによって公表された組み込みオペレーティングシステム（Ｅｎｅａ  ＯＳＥ）などを実装し得る。
【００６２】
ネットワークインターフェース（複数可）２０４、ネットワークインターフェース（複数可）３０４、および／またはネットワークインターフェース（複数可）３１２は、遠隔システム１０２、制御デバイス１０４、ディスプレイデバイス１０６、および／または１つ以上の他の遠隔システム、ならびに他のネットワーク化されたデバイスとの間のメッセージを可能にし得る。ネットワークインターフェース（複数可）２０４、ネットワークインターフェース（複数可）３０４、および／またはネットワークインターフェース（複数可）３１０は、ネットワーク１０８を介してメッセージを送受信するための１つ以上のネットワークインターフェースコントローラ（ＮＩＣ）または他のタイプのトランシーバデバイスを含み得る。
【００６３】
例えば、ネットワークインターフェース（複数可）２０４、ネットワークインターフェース（複数可）３０４、および／またはネットワークインターフェース（複数可）３１０の各々は、１つ以上の短距離無線メッセージチャネルを介したメッセージを可能にするためのパーソナルエリアネットワーク（ＰＡＮ）構成要素を含み得る。例えば、ＰＡＮ構成要素は、ＩＥＥＥ  ８０２．１５．４（ＺｉｇＢｅｅ）、ＩＥＥＥ  ８０２．１５．１（Ｂｌｕｅｔｏｏｔｈ）、ＩＥＥＥ  ８０２．１１（ＷｉＦｉ）、または任意の他のＰＡＮメッセージプロトコルのうちの少なくとも１つの標準に準拠したメッセージを可能にし得る。さらに、ネットワークインターフェース（複数可）２０４、ネットワークインターフェース（複数可）３０４、および／またはネットワークインターフェース（複数可）３１０の各々は、広域ネットワーク（ＷＡＮ）を介したメッセージを可能にするための広域ネットワーク構成要素を含み得る。
【００６４】
図４は、制御デバイス１０４に送信されたデータをディスプレイデバイス１０６に送信されたデータと同期させる一例のブロック図を例示する。図４の例では、制御デバイス１０４は、アクセスポイントなどの、ネットワークデバイス４０２とのネットワーク接続を確立し得る。加えて、ディスプレイデバイス１０６は、電子デバイス４０４に接続され得、電子デバイス４０４は、ネットワークデバイス４０２とのネットワーク接続を確立するためのネットワークインターフェース（複数可）を含む。しかしながら、他の例では、電子デバイス４０４は、ディスプレイデバイス１０６内に含まれてもよい。依然として、他の例では、ディスプレイデバイス１０６は、ネットワークデバイス４０２とのネットワーク接続を確立するためのネットワークインターフェース（複数可）を含み得る（例えば、電子デバイス４０４は、図４の例に含まれないことになる）。
【００６５】
遠隔システム１０２は、少なくとも、オーディオデータ１３４および第１のタイムスタンプデータ１３６を制御デバイス１０４に送信し得る。いくつかの事例では、遠隔システム１０２は、第１のデータパケットの一部としてオーディオデータ１３４および第１のタイムスタンプデータ１３６を送信する。オーディオデータ１３４は、アプリケーションの状態に対応する音を表し得る。例えば、アプリケーションがゲームアプリケーションである場合、オーディオデータ１３４は、ゲームの状態に対応する音を表し得る。第１のタイムスタンプデータ１３６は、第１の時間にオーディオデータ１３４によって表される音を出力するための第１の命令を表し得る。
【００６６】
加えて、遠隔システム１０２は、少なくとも、ビデオデータ１３２および／または第２のタイムスタンプデータ１３６を制御デバイス１０４に送信し得る。いくつかの事例では、遠隔システム１０２は、第２のデータパケットの一部としてビデオデータ１３２および第２のタイムスタンプデータ１３６を送信する。ビデオデータ１３２は、アプリケーションの状態に対応する画像（複数可）を表し得る。第２のタイムスタンプデータ１３６は、第２の時間にビデオデータ１３２によって表される画像（複数可）を表示するための第２の命令を表し得る。いくつかの事例では、第２の時間は、第１の時間と同様であり得る（例えば、第１の時間を含む）。他の事例では、第２の時間は、第１の時間までの閾値期間内であり得る。
【００６７】
図４の例では、制御デバイス１０４は、オーディオデータ１３４および第１のタイムスタンプデータ１３６をメモリ２２０に記憶し得る。次いで、制御デバイス１０４は、現在の時間が、いつ、第１のタイムスタンプデータ１３６によって表される第１の時間を含むかを決定し得る。決定に少なくとも部分的に基づいて、制御デバイス１０４は、オーディオデータ１３４によって表される音を出力させ得る。いくつかの事例では、音を出力させるために、制御デバイス１０４は、スピーカ（複数可）２０６を使用して音を出力し得る。追加的に、または代替的に、いくつかの事例では、オーディオを出力させるために、制御デバイス１０４は、オーディオデータ１３４を周辺デバイス（複数可）４０６に送信し得、周辺デバイス（複数可）４０６は、オーディオを出力するためのスピーカ（複数可）を含む。例えば、制御デバイス１０４は、ヘッドフォン（例えば、周辺デバイス４０６）に接続され得る。そのような例では、制御デバイス１０４は、オーディオを出力し得るヘッドフォンにオーディオデータ１３４を送信し得る。
【００６８】
加えて、ディスプレイデバイス１０６は、ビデオデータ１３２によって表される画像（複数可）を表示し得る。遠隔システム１０２が第２のタイムスタンプデータ１３６をディスプレイデバイス１０６に送信しないときなどの、いくつかの事例では、ディスプレイデバイス１０６は、ディスプレイデバイス１０６がビデオデータ１３２を受信しているときに画像（複数可）の表示を開始し得る。遠隔システム１０２が第２のタイムスタンプデータ１３６を送信するときなどの、他の事例では、ディスプレイデバイス１０６は、ビデオデータ１３２をメモリに記憶し得る。次いで、ディスプレイデバイス１０６は、現在の時間が、いつ、第２のタイムスタンプデータ１３６によって表される第２の時間を含むかを決定し得る。決定に少なくとも部分的に基づいて、ディスプレイデバイス１０６は、画像（複数可）の表示を開始し得る。
【００６９】
図４の例では、制御デバイス１０４、ディスプレイデバイス１０６、ネットワークデバイス４０２、電子デバイス４０４、および周辺デバイス（複数可）４０６は、ユーザの自宅などの環境内に位置し得る。加えて、遠隔システム１０２は、環境から遠隔に位置し得る。しかしながら、他の例では、ディスプレイデバイス１０６、ネットワークデバイス４０２、電子デバイス４０４、および周辺デバイス（複数可）４０６のうちの１つ以上が、環境から遠隔に位置してもよい。
【００７０】
図５は、ネットワーク内の複数の制御デバイスおよびディスプレイデバイスと通信するための例示的なシステム５００の概略図を例示する。システム５００は、例えば、遠隔システム１０２と、制御デバイス１０４と、ディスプレイデバイス１０６と、１つ以上の追加の制御デバイス５０２と、１つ以上の追加のディスプレイデバイス５０４と、を含み得る。図５の例では、遠隔システム１０２は、ネットワーク１０８を介して、制御デバイス１０４から入力データ１３０を受信し得る。次いで、遠隔システム１０２は、入力データ１３０を使用して、制御デバイス１０４と関連付けられたアプリケーションのローカル状態を更新し得る。加えて、遠隔システム１０２は、ディスプレイデバイス１０６にネットワーク１０８を介して、制御デバイス１０４と関連付けられたアプリケーションのローカル状態を表す、ビデオデータ１３２、オーディオデータ１３４、および／またはタイムスタンプデータ１３６を送信し得る。さらに、遠隔システム１０２は、ネットワーク１０８を介して１つ以上のディスプレイデバイス５０４に、制御デバイス１０４と関連付けられたアプリケーションの現在のローカル状態を表すデータを送信し得る。
【００７１】
遠隔システム１０２はまた、他の１つ以上の他の制御デバイス５０２の各々について同様のプロセスを実施し得る。例えば、遠隔システム１０２は、ネットワーク１０８を介して、制御デバイス５０２から入力データ１３０を受信し得る。次いで、遠隔システム１０２は、入力データ１３０を使用して、制御デバイス５０２と関連付けられたアプリケーションのローカル状態を更新し得る。加えて、遠隔システム１０２は、ディスプレイデバイス５０４（制御デバイス５０２と関連付けられた）にネットワーク１０８を介して、制御デバイス５０２と関連付けられたアプリケーションのローカル状態を表す、ビデオデータ１３２、オーディオデータ１３４、および／またはタイムスタンプデータ１３６を送信し得る。さらに、遠隔システム１０２は、ネットワーク１０８を介してディスプレイデバイス１０６および／または１つ以上の他のディスプレイデバイス５０４に、制御デバイス５０２と関連付けられたアプリケーションの現在のローカル状態を表すデータを送信し得る。
【００７２】
アプリケーションがゲームアプリケーションを含むときなどの、いくつかの事例では、遠隔システム１０２は、ゲームの環境の正式バージョンを記憶し得る。次いで、遠隔システム１０２は、制御デバイスからの入力データ１３０を使用して、環境内のオブジェクト（例えば、キャラクタ、車両、建物など）の位置を更新し得る。したがって、制御デバイス１０４などの制御デバイスと関連付けられているアプリケーションのローカル状態を表すデータは、制御デバイスによって制御されるオブジェクト（複数可）の位置（複数可）を表し得る。遠隔システム１０２は、このデータを、ディスプレイデバイス１０６および／または１つ以上のディスプレイデバイス５０４がオブジェクト（複数可）の位置（複数可）を更新し得るように、ディスプレイデバイス１０６および／または１つ以上のディスプレイデバイス５０４に送信する。
【００７３】
例えば、制御デバイス１０４と関連付けられたアプリケーションの第１のローカル状態は、制御デバイス５０２と関連付けられたアプリケーションの第２のローカル状態とは異なり得る。例えば、マルチプレイヤーネットワークゲーム中などの、制御デバイス１０４と関連付けられたアプリケーションの第１のローカル状態は、ゲーム環境内の第１のオブジェクトの第１の位置を表し得、制御デバイス１０４は、第１のオブジェクトを制御するように構成される。したがって、ディスプレイデバイス１０６は、アプリケーションの第１のローカル状態を表す画像（複数可）を表示し得る。加えて、制御デバイス５０２と関連付けられたアプリケーションの第２のローカル状態は、ゲーム環境内の第２のオブジェクトの第２の位置を表し得、制御デバイス５０２は、第２のオブジェクトを制御するように構成される。したがって、ディスプレイデバイス５０４（制御デバイス５０２と関連付けられた）は、アプリケーションの第２のローカル状態を表す画像（複数可）を表示していてもよい。
【００７４】
そのような事例では、ゲーム環境内の第２のオブジェクトの位置を変化させることなどによって、遠隔システム１０２が制御デバイス５０２と関連付けられたアプリケーションの第２のローカル状態を更新するとき、遠隔システム１０２は、第２のオブジェクトの更新された位置を含むようにアプリケーションの第１のローカル状態をさらに更新し得る。したがって、アプリケーションの第１のローカル状態は、第１のオブジェクトの第１の位置および第２のオブジェクトの更新された位置の両方を表し得る。
【００７５】
上記の例は、複数のユーザを有するネットワークアプリケーションを含むが、他の事例では、制御デバイス１０４は、ディスプレイデバイス１０６、およびディスプレイデバイス５０４のうちの１つ以上の両方と関連付けられ得る。例えば、遠隔システム１０２が制御デバイス１０４から入力データを受信し、入力データを使用してアプリケーションの状態を更新すると、遠隔システム１０２は、ネットワーク１０４を介して、データ（例えば、ビデオデータ、オーディオデータ、タイムスタンプデータなど）をディスプレイデバイス１０６および第２のディスプレイデバイス５０４に送信し得る。いくつかの事例では、ディスプレイデバイス１０６に送信されるデータは、第２のディスプレイデバイス５０４に送信されるデータと同じであり得る。例えば、ディスプレイデバイス１０６および第２のディスプレイデバイス５０４は、同様のコンテンツ（例えば、アプリケーションの状態を表す画像（複数可））を表示し得る。加えて、ディスプレイデバイス１０６および第２のディスプレイデバイス５０４は、ディスプレイデバイス１０６および第２のディスプレイデバイス５０４にコンテンツの表示を同期させる、同様のタイムスタンプデータを受信し得る。
【００７６】
いくつかの事例では、ディスプレイデバイス１０６に送信されるデータは、第２のディスプレイデバイス５０４に送信されるデータとは異なり得る。例えば、ディスプレイデバイス１０６および第２のディスプレイデバイス５０４は、ディスプレイデバイス１０６がコンテンツの第１の部分を表示し、第２のディスプレイデバイス５０４がコンテンツの第２の部分を表示する、「分割画面」として動作し得る。加えて、ディスプレイデバイス１０６および第２のディスプレイデバイス５０４は、ディスプレイデバイス１０６および第２のディスプレイデバイス５０４にコンテンツの表示を同期させる、同様のタイムスタンプデータを受信し得る。
【００７７】
いくつかの事例では、制御デバイス１０４および１つ以上の他の制御デバイス５０２は、ディスプレイデバイス１０６と関連付けられ得る。例えば、第１のユーザは、制御デバイス１０４を使用して、アプリケーションを制御し得るが、一方、第２のユーザは、第２の制御デバイス５０２を使用して、アプリケーションを制御する。例えば、遠隔システム１０２は、ネットワーク１０８を介して、制御デバイス１０４および第２の制御デバイス５０２の各々からデータ（例えば、入力データ）を受信し得る。次いで、遠隔システム１０２は、制御デバイス１０４および第２の制御デバイス１０６の各々から受信されるデータを使用してアプリケーションの状態を更新し得る。加えて、遠隔システム１０２は、ネットワーク１０８を介して、アプリケーションの現在の状態を表すデータ（例えば、ビデオデータ、オーディオデータ、タイムスタンプデータなど）をディスプレイデバイス１０６に送信し得る。
【００７８】
いくつかの事例では、および上記の例の各々では、制御デバイス１０４、および制御デバイス５０２のうちの１つ以上は、同じ環境内に位置してもよく、ならびに／またはディスプレイデバイス１０６、および／もしくはディスプレイデバイス５０４のうちの１つ以上は、同じ環境内に位置してもよい。いくつかの事例では、および上記の例の各々では、制御デバイス１０４、および制御デバイス５０２のうちの１つ以上は、別々の環境内に位置してもよく、ならびに／またはディスプレイデバイス１０６、および／もしくはディスプレイデバイス５０４のうちの１つ以上は、別々の環境内に位置してもよい。
【００７９】
図５の例では、１つ以上の制御デバイス５０２および／または１つ以上のディスプレイデバイス５０４は、それぞれ、制御デバイス１０４および／またはディスプレイデバイス１０６と同様であり得る。他の例では、制御デバイス５０２のうちの１つ以上および／またはディスプレイデバイス５０４のうちの１つ以上は、それぞれ、制御デバイス１０４および／またはディスプレイデバイス１０６とは異なり得る。例えば、制御デバイス５０２のうちの１つ以上は、ユーザからの入力を処理するビデオゲームコンソールに対応し得る。入力を処理した後、ビデオゲームコンソールは、データを遠隔システム１０２に送信し得、データは、アプリケーションのローカル状態の変化を表す。
【００８０】
図６Ａ〜９は、ネットワークアプリケーションを制御するための様々なプロセスを例示する。本明細書に説明されるプロセスは、動作のシーケンスを表す論理フロー図内のブロックの集合として例示され、それらの一部または全部は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装され得る。ソフトウェアの文脈では、ブロックは、１つ以上のプロセッサによって実行されたときに、列挙される動作を実施するようにプロセッサをプログラムする、１つ以上のコンピュータ可読媒体に記憶されたコンピュータ実行可能命令を表し得る。一般に、コンピュータ実行可能命令は、特定の機能を実施するか、または特定のデータ型を実装する、ルーチン、プログラム、オブジェクト、構成要素、データ構造などを含む。ブロックが説明される順序は、特に明記されない限り、限定的に解釈されるべきではない。任意の数の説明されたブロックは、プロセス、または代替的なプロセスを実装するために任意の順序でおよび／または並列に組み合わせられてもよく、全てのブロックが実行される必要はない。
【００８１】
図６Ａ、６Ｂは、ネットワークアプリケーションを制御するための例示的なプロセスを例示する。６０２では、プロセス６００は、第１の電子デバイスと関連付けられた第１の識別子、および第２の電子デバイスと関連付けられた第２の識別子を示す第１のデータを記憶することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイス（例えば、制御デバイス１０４）と関連付けられた第１の識別子、および第２の電子デバイス（例えば、ディスプレイデバイス１０６）と関連付けられた第２の識別子を表す第１のデータを記憶し得る。いくつかの事例では、第１のデータは、第１の識別子を表す第１の識別子データ、および第２の識別子を表す第２の識別子データを含む、および／またはそれらと関連付けられた、ユーザプロファイルデータを含み得る。いくつかの事例では、遠隔システム１０２は、第１の電子デバイスおよび／または第２の電子デバイスの構成プロセス中に第１のデータを受信する。
【００８２】
６０４では、プロセス６００は、アプリケーションを表す第２のデータを記憶することを含み得る。例えば、遠隔システム１０２は、アプリケーションを表す第２のデータを記憶し得る。本明細書に説明されるように、アプリケーションは、限定されるものではないが、ゲームアプリケーション、文書処理アプリケーション、教育アプリケーション、マルチメディアアプリケーション（例えば、映画、音楽など）、および／またはネットワークを介してアクセスされることができる任意の他のタイプのアプリケーションを含み得る。
【００８３】
６０６では、プロセス６００は、第１の電子デバイスから、第１の識別子を表す第３のデータを受信することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイスから第３のデータ（例えば、識別子データ）を受信し得、第３のデータは、第１の識別子を表す。いくつかの事例では、遠隔システム１０２は、ネットワークに接続している第１の電子デバイスに少なくとも部分的に基づいて、第３のデータを受信する。
【００８４】
６０８では、プロセス６００は、第１のデータを使用して、第３のデータが第１の電子デバイスから受信されることを決定することを含み得る。例えば、遠隔システム１０２は、第１のデータを使用して、第３のデータが第１の電子デバイスから受信されることを決定し得る。いくつかの事例では、遠隔システム１０２は、第１のデータによって表される第１の識別子を、第３のデータによって表される第１の識別子と照会することに少なくとも部分的に基づいて決定を行い得る。
【００８５】
６１０では、プロセス６００は、第１のデータを使用して、第２の電子デバイスが第１の電子デバイスと関連付けられていることを決定することを含み得る。例えば、遠隔システム１０２は、第１のデータを使用して、第２の電子デバイスが第１の電子デバイスと関連付けられていることを決定し得る。例えば、第１のデータがユーザプロファイルデータを含むときなどの、いくつかの事例では、遠隔システム１０２は、ユーザプロファイルデータが、第１の識別子を表す第１の識別子データ、および第２の電子デバイスの第２の識別子を表す第２の識別子データの両方を含む、および／またはそれらと関連付けられていることを決定し得る。決定に少なくとも部分的に基づいて、遠隔システム１０２は、第２の電子デバイスが第１の電子デバイスと関連付けられていることを決定し得る。
【００８６】
６１２では、プロセス６００は、第２の電子デバイスに、アプリケーションの第１の状態を表す第４のデータを送信することを含み得る。例えば、遠隔システム１０２は、第２の電子デバイスに、アプリケーションの第１の状態を表す第４のデータを送信し得る。第４のデータは、データパケットを含み得、データパケットは、アプリケーションの第１の状態に対応する画像（複数可）を表すビデオデータ、アプリケーションの第１の状態に対応する音を表すオーディオデータ、ならびに／または特定の時間にアプリケーションの第１の状態を表示する命令および／もしくは特定の時間に音を出力する命令を表すタイムスタンプデータを含む。アプリケーションがゲームアプリケーションを含むときなどの、いくつかの事例では、アプリケーションの第１の状態は、ゲーム環境内の第１の位置に位置するオブジェクト（例えば、キャラクタ）を含み得る。
【００８７】
６１４では、プロセス６００は、第１の電子デバイスから、第１の電子デバイスによって受信された入力を表す第５のデータを受信することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイスから、第１の電子デバイスによって受信された入力を表す第５のデータ（例えば、入力データ）を受信し得る。いくつかの事例では、入力は、ボタン（複数可）、キー（複数可）、ジョイスティック（複数可）、タッチ感知パッド（複数可）、トリガ（複数可）、センサ（複数可）などを使用して、第１の電子デバイスによって受信され得る。いくつかの事例では、入力は、第１の電子デバイスのマイクロフォン（複数可）によって取り込まれた音を表すオーディオデータを含み得る。
【００８８】
６１６では、プロセス６００は、第５のデータに少なくとも部分的に基づいて、アプリケーションの第１の状態をアプリケーションの第２の状態に更新することを含み得る。例えば、遠隔システム１０２は、第５のデータを使用して、アプリケーションの第１の状態をアプリケーションの第２の状態に更新し得る。例えば、繰り返しになるが、アプリケーションがゲームアプリケーションを含む場合、入力は、オブジェクトの移動に対応し得る。したがって、遠隔システム１０２は、オブジェクトをゲーム環境内の第１の位置からゲーム環境内の第２の位置に移動させることによって、アプリケーションの第１の状態をアプリケーションの第２の状態に更新し得る。
【００８９】
６１８では、プロセス６００は、第２の電子デバイスに、アプリケーションの第２の状態を表す第６のデータを送信することを含み得る。例えば、遠隔システム１０２は、第２の電子デバイスに、アプリケーションの第２の状態を表す第６のデータを送信し得る。第６のデータは、データパケットを含み得、データパケットは、アプリケーションの第２の状態に対応する画像（複数可）を表すビデオデータ、および／またはアプリケーションの第２の状態に対応する音を表すオーディオデータを含む。
【００９０】
６２０では、プロセス６００は、第２の電子デバイスに、アプリケーションの第２の状態を表示することと関連付けられた第１のタイムスタンプを表す第７のデータを送信することを含み得る。例えば、遠隔システム１０２は、第２の電子デバイスに、アプリケーションの第２の状態を表示することと関連付けられた第１のタイムスタンプを表す第７のデータを送信し得る。いくつかの事例では、第７のデータは、特定の時間にアプリケーションの第２の状態を表示する命令および／または特定の時間に音を出力する命令を表すタイムスタンプデータを含み得る。いくつかの事例では、第７のデータは、第６のデータも含む同じデータパケットに含まれる。
【００９１】
６２２では、プロセス６００は、第１の電子デバイスに、アプリケーションの第２の状態に対応する音を表す第８のデータを送信することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイスに、アプリケーションの第２の状態に対応する音を表す第８のデータを送信し得る。第６のデータは、データパケットを含み得、データパケットは、少なくとも、アプリケーションの第２の状態に対応する音を表すオーディオデータを含む。
【００９２】
６２４では、プロセス６００は、第１の電子デバイスに、音の出力と関連付けられた第２のタイムスタンプを表す第９のデータを送信することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイスに、音の出力と関連付けられた第２のタイムスタンプを表す第９のデータを送信し得る。いくつかの事例では、第９のデータは、特定の時間に音を出力する命令を表すタイムスタンプデータを含み得る。例えば、第９のデータは、第１の電子デバイスによる音の出力を、第２の電子デバイスによるアプリケーションの第２の状態の表示と同期させ得る。いくつかの事例では、第９のデータは、オーディオデータ（例えば、第８のデータ内に含まれる）も含む同じデータパケット内に含まれる。
【００９３】
図７は、ネットワークアプリケーションを制御するために、制御デバイスおよびディスプレイデバイスと通信する遠隔システムの第１の例示的なプロセス７００を例示する。７０２では、プロセス７００は、遠隔システムによって、第１の電子デバイスが第２の電子デバイスと関連付けられていることを決定することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイス（例えば、制御デバイス１０４）が第２の電子デバイス（例えば、ディスプレイデバイス１０６）と関連付けられていることを決定し得る。いくつかの事例では、遠隔システム１０２は、ユーザプロファイルデータを使用して決定を行い得る。例えば、ユーザプロファイルデータは、第１の電子デバイスと関連付けられた第１の識別子データ、および第２の電子デバイスと関連付けられた第２の識別子データを含む、および／またはそれらと関連付けられ得る。
【００９４】
７０４では、プロセス７００は、遠隔システムによって第２の電子デバイスに、アプリケーションの第１の状態を表す第１のデータを送信することを含み得る。例えば、遠隔システム１０２は、第２の電子デバイスに、アプリケーションの第１の状態を表す第１のデータを送信し得る。第１のデータは、データパケットを含み得、データパケットは、アプリケーションの第１の状態に対応する画像（複数可）を表すビデオデータ、アプリケーションの第１の状態に対応する音を表すオーディオデータ、ならびに／または特定の時間にアプリケーションの第１の状態を表示する命令および／もしくは特定の時間に音を出力する命令を表すタイムスタンプデータを含む。
【００９５】
７０６では、プロセス７００は、遠隔システムによって第１の電子デバイスから、第１の電子デバイスによって受信された入力を表す第２のデータを受信することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイスから、第１の電子デバイスによって受信された入力を表す第２のデータ（例えば、入力データ）を受信し得る。いくつかの事例では、入力は、ボタン（複数可）、キー（複数可）、ジョイスティック（複数可）、タッチ感知パッド（複数可）、トリガ（複数可）、センサ（複数可）などを使用して、第１の電子デバイスによって受信され得る。いくつかの事例では、第２のデータは、第１の電子デバイスのマイクロフォン（複数可）によって取り込まれた音を表すオーディオデータを含み得る。
【００９６】
７０８では、プロセス７００は、遠隔システムによって、アプリケーションの第１の状態および第２のデータに少なくとも部分的に基づいて、アプリケーションの第２の状態を決定することを含み得る。例えば、遠隔システム１０２は、アプリケーションの第１の状態および第２のデータに少なくとも部分的に基づいて、アプリケーションの第２の状態を決定し得る。アプリケーションがゲームアプリケーションを含むときなどの、いくつかの事例では、アプリケーションの第１の状態は、ゲーム環境内の第１の位置に位置するオブジェクトを含み得る。そのような事例では、遠隔システム１０２は、入力に少なくとも部分的に基づいて、オブジェクトの第１の位置を第２の位置に更新し得る。次いで、遠隔システム１０２は、第２の位置に位置するオブジェクトを含むとして、アプリケーションの第２の状態を決定し得る。
【００９７】
７１０では、プロセス７００は、遠隔システムによって第２の電子デバイスに、アプリケーションの第２の状態を表す第３のデータを送信することを含み得る。例えば、遠隔システム１０２は、第２の電子デバイスに、アプリケーションの第２の状態を表す第３のデータを送信し得る。第３のデータは、データパケットを含み得、データパケットは、アプリケーションの第２の状態に対応する画像（複数可）を表すビデオデータ、アプリケーションの第２の状態に対応する音を表すオーディオデータ、ならびに／または特定の時間にアプリケーションの第２の状態を表示する命令および／もしくは特定の時間に音を出力する命令を表すタイムスタンプデータを含む。
【００９８】
図８は、ネットワークアプリケーションを制御するために、制御デバイスおよびディスプレイデバイスと通信する遠隔システムの第２の例示的なプロセス８００を例示する。８０２では、プロセス８００は、遠隔システムによって、アプリケーションを表す第１のデータを記憶することを含み得る。例えば、遠隔システム１０２は、アプリケーションを表す第１のデータ（例えば、アプリケーションデータ）を記憶し得る。本明細書に説明されるように、アプリケーションは、限定されるものではないが、ゲームアプリケーション、文書処理アプリケーション、教育アプリケーション、マルチメディアアプリケーション（例えば、映画、音楽など）、および／またはネットワークを介してアクセスされることができる任意の他のタイプのアプリケーションを含み得る。
【００９９】
８０４では、プロセスは、遠隔システムによって第１の電子デバイスから、アプリケーションの選択を表す第２のデータを受信することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイス（例えば、制御デバイス１０４）から、アプリケーションの選択を表す第２のデータを受信し得る。
【０１００】
８０６では、プロセス８００は、遠隔システムによって第２の電子デバイスに、アプリケーションの第１の状態を表す第１のデータを送信することを含み得る。例えば、遠隔システム１０２は、第２の電子デバイスに、アプリケーションの第１の状態を表す第１のデータを送信し得る。第３のデータは、データパケットを含み得、データパケットは、アプリケーションの第１の状態に対応する画像（複数可）を表すビデオデータ、アプリケーションの第１の状態に対応する音を表すオーディオデータ、ならびに／または特定の時間にアプリケーションの第１の状態を表示する命令および／もしくは特定の時間に音を出力する命令を表すタイムスタンプデータを含む。
【０１０１】
８０８では、プロセス８００は、遠隔システムによって第１の電子デバイスから、第１の電子デバイスによって受信された入力を表す第４のデータを受信することを含み得る。例えば、遠隔システム１０２は、第１の電子デバイスから、第１の電子デバイスによって受信された入力を表す第４のデータ（例えば、入力データ）を受信し得る。いくつかの事例では、入力は、ボタン（複数可）、キー（複数可）、ジョイスティック（複数可）、タッチ感知パッド（複数可）、トリガ（複数可）、センサ（複数可）などを使用して、第１の電子デバイスによって受信され得る。いくつかの事例では、第２のデータは、第１の電子デバイスのマイクロフォン（複数可）によって取り込まれた音を表すオーディオデータを含み得る。
【０１０２】
８１０では、プロセス８００は、遠隔システムによって、アプリケーションの第１の状態および第４のデータに少なくとも部分的に基づいて、アプリケーションの第２の状態を決定することを含み得る。例えば、遠隔システム１０２は、アプリケーションの第１の状態および第４のデータに少なくとも部分的に基づいて、アプリケーションの第２の状態を決定し得る。アプリケーションがゲームアプリケーションを含むときなどの、いくつかの事例では、アプリケーションの第１の状態は、ゲーム環境内の第１の位置に位置するオブジェクトを含み得る。そのような事例では、遠隔システム１０２は、入力に少なくとも部分的に基づいて、オブジェクトの第１の位置を第２の位置に更新し得る。次いで、遠隔システム１０２は、第２の位置に位置するオブジェクトを含むとして、アプリケーションの第２の状態を決定し得る。
【０１０３】
８１２では、プロセス８００は、遠隔システムによって第２の電子デバイスに、アプリケーションの第２の状態を表す第５のデータを送信することを含み得る。例えば、遠隔システム１０２は、第２の電子デバイスに、アプリケーションの第２の状態を表す第５のデータを送信し得る。第５のデータは、データパケットを含み得、データパケットは、アプリケーションの第２の状態に対応する画像（複数可）を表すビデオデータ、アプリケーションの第２の状態に対応する音を表すオーディオデータ、ならびに／または特定の時間にアプリケーションの第２の状態を表示する命令および／もしくは特定の時間に音を出力する命令を表すタイムスタンプデータを含む。
【０１０４】
図９は、ネットワークアプリケーションを制御するために遠隔システムと通信する制御デバイスの例示的なプロセス９００を例示する。９０２では、プロセス９００は、ネットワークと関連付けられた設定を表す第１のデータを記憶することを含み得る。例えば、制御デバイス１０４は、ネットワークと関連付けられた設定を表す第１のデータ（例えば、構成データ）を記憶し得る。いくつかの事例では、第１のデータは、ルータおよびパスワードと関連付けられたＳＳＩＤを含み得る。
【０１０５】
９０４では、プロセス９００は、第１のデータを使用してネットワークへの接続を確立することを含み得る。例えば、制御デバイス１０４は、第１のデータを使用して、ネットワークとの接続を確立し得る。
【０１０６】
９０６では、プロセス９００は、遠隔システムから、アプリケーションの第１の状態と関連付けられた音を表す第２のデータを受信することを含み得る。例えば、制御デバイス１０４は、遠隔システム１０２から、アプリケーションの第１の状態と関連付けられた音を表す第２のデータ（例えば、オーディオデータ）を受信し得る。いくつかの事例では、制御デバイス１０４は、音を出力するための時間を表すタイムスタンプデータをさらに受信し得る。次いで、制御デバイス１０４は、音を出力させ得る。いくつかの事例では、制御デバイス１０４は、スピーカ（複数可）を使用して音を出力する。いくつかの事例では、制御デバイス１０４は、音の出力のための周辺デバイスに第２のデータを送信する。
【０１０７】
９０８では、プロセス９００は、少なくとも１つの入力デバイスを使用して入力を受信することを含み得る。例えば、制御デバイス１０４は、少なくとも１つの入力デバイスを使用して入力を受信し得る。いくつかの事例では、少なくとも１つの入力デバイスは、ボタン（複数可）、キー（複数可）、ジョイスティック（複数可）、タッチ感知パッド（複数可）、トリガ（複数可）、センサ（複数可）などを含み得る。いくつかの事例では、少なくとも１つの入力デバイスは、マイクロフォン（複数可）を含み得る。
【０１０８】
９１０では、プロセス９００は、遠隔システムに、入力を表す第３のデータを送信することを含み得る。例えば、制御デバイス１０４は、遠隔システム１０２に、入力を表す第３のデータ（例えば、入力データ）を送信し得る。
【０１０９】
９１２では、プロセス９００は、遠隔システムから、アプリケーションの第２の状態と関連付けられた音を表す第４のデータを受信することを含み得る。例えば、制御デバイス１０４は、遠隔システム１０２から、アプリケーションの第２の状態と関連付けられた音を表す第４のデータ（例えば、オーディオデータ）を受信し得る。いくつかの事例では、制御デバイス１０４は、音を出力するための時間を表すタイムスタンプデータをさらに受信し得る。次いで、制御デバイス１０４は、音を出力させ得る。いくつかの事例では、制御デバイス１０４は、スピーカ（複数可）を使用して音を出力する。いくつかの事例では、制御デバイス１０４は、音の出力のための周辺デバイスに第２のデータを送信する。
【０１１０】
図１０は、オーディオデータおよび／または追加データを制御デバイス１０４などのボイス対応デバイスから受信し、オーディオデータ内で表されるユーザのボイスコマンドにどのように応答するかを決定するための技術を実施する、音声処理システムの例示的なアーキテクチャのブロック図を例示する。図１０のブロック図は、オーディオデータ１００２および追加データ１００４（例えば、タイムスタンプ、ＳＲＮ値などのメタデータ）を制御デバイス１０４から受信し、オーディオデータ１００２の意図を決定するための技術を実施する、音声処理システム（例えば、遠隔システム１０２）の例示的なアーキテクチャを例示する。
【０１１１】
図１０は、音声コマンド１００６がどのように処理され得るかの概念図を含み、処理は、システムが、ウェイクワードに続き得る、話されたコマンドなどの、ユーザ１００８によって話されたコマンドを取り込んで実行することを可能にする。例示される様々な構成要素は、同じまたは異なる物理デバイスに位置し得る。図１０に例示される様々な構成要素間の通信は、直接的に、またはネットワークを通じて行われ得る。制御デバイス１０４のマイクロフォン（複数可）２０８などのオーディオ取り込み構成要素は、ボイスコマンド１００６に対応するオーディオを取り込む。次いで、制御デバイス１０４は、ウェイクワード検出構成要素１０１０を使用して、ボイスコマンド１００６、またはボイスコマンド１００６に対応するオーディオデータを処理して、キーワード（ウェイクワードなど）がボイスコマンド１００６内で検出されるかどうかを決定する。ウェイクワードの検出に続いて、制御デバイス１０４は、ボイスコマンド１００６に対応するオーディオデータ１００２を、ＡＳＲ構成要素１４４を含む遠隔システム１０２のコンピューティングデバイスに送信する。オーディオデータ１００２は、送信の前に制御デバイス１０４上に位置する音響フロントエンド（ＡＦＥ）１０１４から出力され得る。または、オーディオデータ１００２は、ＡＳＲ構成要素１４４と共に位置するＡＦＥ１０１４などの遠隔ＡＦＥ１０１４による処理のための異なる形態であってもよい。
【０１１２】
様々な例では、遠隔システム１０２は、遠隔システム１０２の構成要素、デバイス、および作用に動力を供給するための１つ以上のプロセッサ３０８と、広域ネットワーク、ローカルエリアネットワーク、プライベートネットワーク、パブリックネットワークなどを含む、様々なタイプのネットワーク（例えば、ネットワーク（複数可）１０８）を介した遠隔システム１０２による通信のための、無線もしくはＷｉ−Ｆｉネットワーク通信インターフェース、イーサネット通信インターフェース、セルラーネットワーク通信インターフェース、Ｂｌｕｅｔｏｏｔｈ通信インターフェースなどの、１つ以上のネットワークインターフェース３１０と、を含み得る。無線通信インターフェースの場合、そのようなインターフェースは、無線トランシーバ、ならびに適切な通信プロトコルを実装するための関連制御回路および論理を含み得る。
【０１１３】
遠隔システム１０２は、自動音声認識（ＡＳＲ）構成要素１４４および自然言語理解（ＮＬＵ）構成要素１４６などの、音声コマンド１００６を処理するための様々な構成要素を含む、音声処理構成要素１０１８を含み得る。例示される様々な構成要素は、同じまたは異なる物理デバイスに位置し得る。
【０１１４】
いくつかの例では、オーディオデータ（例えば、オーディオデータ１００２）は、含まれるボイスコマンド１００６の解釈のための音声処理のために（ボイス通信を可能にする目的および／または音声内のコマンドを実行する目的のいずれかのために）遠隔システム１０２によって受信され得る。オーディオデータ１００２は、ウェイクワードに対応するデータを含んでもよく、またはウェイクワードに対応するオーディオデータの一部分は、送信する前に制御デバイス１０４によって除去されてもよい。遠隔システム１０２による受信の際、ＡＳＲ構成要素１４４は、オーディオデータをテキストに変換し得る。ＡＳＲ構成要素１４４は、オーディオデータを、オーディオデータ内に含有された音声の単語を表すテキストデータに転写する。次いで、テキストデータは、調停、システムコマンドの実行、データの入力などの様々な目的のために他の構成要素によって使用され得る。オーディオデータ内のボイスコマンド１００６は、ＡＳＲを実施するように構成されたプロセッサに入力され、次いで、発話とＡＳＲモデル知識ベース（ＡＳＲモデル記憶装置１０２０）に記憶された事前確立されたＡＳＲ言語モデルとの間の類似性に基づいて発話を解釈する。例えば、ＡＳＲプロセスは、入力オーディオデータを、音（例えば、サブワード単位または音素）および音のシーケンスに関するモデルと比較して、オーディオデータの発話で話される音のシーケンスに一致する単語を識別し得る。
【０１１５】
ボイスコマンド１００６が解釈され得る異なる手法（すなわち、異なる仮説）は、各々、特定の単語セットが発話で話された単語に一致する可能性を表すＡＳＲ確率またはＡＳＲ信頼性スコアを割り当てられ得る。ＡＳＲ信頼性スコアは、例えば、言語音のモデル（例えば、ＡＳＲモデル記憶装置１０２０に記憶された音響モデル１０２２）に対する発話中の音の類似性、および音に一致する特定の単語が特定の場所における文章に含まれることになる可能性を含むいくつかの因子に基づき得る（例えば、言語または文法モデルを使用する）。したがって、話された発話（仮説）の各潜在的なテキスト解釈は、ＡＳＲ信頼性スコアと関連付けられる。考慮される因子および割り当てられたＡＳＲ信頼性スコアに基づいて、ＡＳＲ構成要素１４４は、オーディオデータで認識される可能性が最も高いテキストを出力する。ＡＳＲ構成要素１４４はまた、格子またはＮベストリストの形態で複数のＡＳＲ仮説を出力し得、各仮説は、ＡＳＲ信頼性スコアまたは他のスコア（確率スコアなど）に対応している。
【０１１６】
ＡＳＲ処理を実施する１つまたは複数のデバイスは、音響フロントエンド（ＡＦＥ）１０１４および音声認識エンジン１０２４を含み得る。音響フロントエンド（ＡＦＥ）１０１４は、マイクロフォンからのオーディオデータを音声認識エンジン１０２４による処理のためのデータに変換する。音声認識エンジン１０２４は、音声認識データを、音響モデル１０２２、言語モデル１０２６、ならびにオーディオデータで伝達される音声を認識するための他のデータモデルおよび情報と比較する。ＡＦＥ１０１４は、オーディオデータ内のノイズを低減し、デジタル化されたオーディオデータを、時間間隔を表すフレームに分割し、そのために、ＡＦＥ１０１４は、オーディオデータの品質を表す、特徴と呼ばれる、いくつかの値を、フレーム内のオーディオデータの特徴／品質を表す、特徴ベクトルと呼ばれる、それらの値のセットと共に決定する。多くの異なる特徴が、当該技術分野で知られているように、決定され得、各特徴は、ＡＳＲ処理に有用であり得るオーディオのいくつかの品質を表す。メル周波数ケプストラム係数（ＭＦＣＣ）、知覚線形予測（ＰＬＰ）技術、ニューラルネットワーク特徴ベクトル技術、線形判別分析、半結共分散行列、または当業者に既知の他のアプローチなどの、いくつかのアプローチが、オーディオデータを処理するためにＡＦＥ１０１４によって使用され得る。
【０１１７】
音声認識エンジン１０２４は、音声／モデル記憶装置に記憶された情報を参照して、ＡＦＥ１０１４からの出力を処理し得る。あるいは、フロントエンド処理後のデータ（特徴ベクトルなど）は、内部ＡＦＥ１０１４以外の別のソースからＡＳＲ処理を実行するデバイスによって受信され得る。例えば、制御デバイス１０４は、オーディオデータを特徴ベクトルに処理し（例えば、デバイス上のＡＦＥ１０１４を使用して）、ＡＳＲ処理のためにネットワークを介してサーバにその情報を送信し得る。特徴ベクトルは、符号化されて遠隔システム１０２に到達し得、その場合、特徴ベクトルは、音声認識エンジン１０２４を実行するプロセッサによる処理の前に復号化され得る。
【０１１８】
音声認識エンジン１０２４は、受信された特徴ベクトルを、記憶された音響モデル１０２２および言語モデル１０２６で既知の言語音素および単語に一致させるように試みる。音声認識エンジン１０２４は、音響情報および言語情報に基づいて、特徴ベクトルの認識スコアを算出する。音響情報は、特徴ベクトル群によって表される意図される音が、言語音素に一致する可能性を表す音響スコアを計算するために使用される。言語情報は、どの音および／または単語が互いに文脈で使用されるかを考慮することによって音響スコアを調整するために使用され、それによって、ＡＳＲプロセスは、文法的に意味を有する音声結果を出力することになる可能性を改善する。使用される特定のモデルは、一般モデルであってもよく、または音楽、銀行などの特定のドメインに対応するモデルであってもよい。
【０１１９】
音声認識エンジン１０２４は、例えば、隠れマルコフモデル（ＨＭＭ）を使用して、特徴ベクトルが音素に一致し得る確率を決定するために、特徴ベクトルを音素に対して照会するようにいくつかの技術を使用し得る。受信された音は、ＨＭＭの状態間の経路として表され得、複数の経路は、同じ音について複数の可能性のあるテキスト一致を表し得る。
【０１２０】
ＡＳＲ処理に続いて、ＡＳＲ結果は、ＡＳＲを実施するデバイスに対してローカルである、および／またはネットワーク（複数可）全体に分散され得る、他の処理構成要素に音声認識エンジン１０２４によって送信され得る。例えば、音声の単一のテキスト表現、複数の仮説およびそれぞれのスコアを含むＮベストリスト、格子などの形態のＡＳＲ結果は、制御デバイス１０４、遠隔システム１０２、または別のデバイス（アプリケーションシステム１４８など）のいずれかによって、実行用のコマンドへのテキストの変換などの自然言語理解（ＮＬＵ）処理のために、遠隔システム１０２に送信され得る。
【０１２１】
ＮＬＵ構成要素１４６（例えば、サーバ）は、潜在的に専用のプロセッサ（複数可）、メモリ、記憶装置などを含む様々な構成要素を含み得る。図１０に示されるように、ＮＬＵ構成要素１４６は、システムによって認識可能であり得る名前付きエンティティに対応するクエリテキストの部分を識別するために使用される名前付きエンティティ認識（ＮＥＲ）構成要素１０３０を含む認識器１０２８を含み得る。名前付きエンティティ解決と呼ばれる下流プロセスは、テキスト部分を、システムに既知の特定のエンティティにリンクする。名前付きエンティティ解決を実施するために、システムは、エンティティライブラリ記憶装置１０３４に記憶された地名集情報１０３２を利用し得る。地名集情報は、例えば、ＡＳＲ結果を異なるエンティティ（連絡先名など）と照会する、エンティティ解決のために使用され得る。地名集は、ユーザにリンクされてもよく（例えば、特定の地名集は、特定のユーザのゲームコレクションと関連付けられ得る）、特定のドメイン（ゲームなど）にリンクされてもよく、または様々な他の手法で編成されてもよい。
【０１２２】
一般に、ＮＬＵ構成要素１４６は、テキスト入力（ＡＳＲ構成要素１４４によって決定されるテキスト入力など）を受け取り、テキストの意味解釈を行うことを試みる。すなわち、ＮＬＵ構成要素１４６は、個々の単語に基づいてテキストの背後にある意味を決定し、次いで、その意味を実装する。ＮＬＵ構成要素１４６は、テキスト文字列を解釈して、ユーザからの意図または所望の作用、およびデバイス（例えば、制御デバイス１０４、アプリケーションシステム１４８など）がその作用を完了することを可能にする、テキスト内の関連する情報片を導出する。例えば、話された発話がＡＳＲ構成要素１４４を使用して処理され、「キャラクタを前進させる」というテキストを出力する場合、ＮＬＵ構成要素１４６は、ユーザ１００８がゲームアプリケーション内のキャラクタを前進させることを意図したことを決定し得る。第２の例について、話された発話がＡＳＲ構成要素１４４を使用して処理され、「ゲームアプリケーションを開始する」というテキストを出力する場合、ＮＬＵ構成要素１４６は、ユーザ１００８がアプリケーションシステム１４８に対してゲームアプリケーションを開始することを意図したことを決定し得る。
【０１２３】
ＮＬＵ構成要素１４６は、同じ発話に関連するいくつかのテキスト入力を処理し得る。例えば、ＡＳＲ構成要素１４４がＮ個のテキストセグメント（Ｎベストリストの一部として）を出力する場合、ＮＬＵ構成要素１４６は、ＮＬＵ結果を得るために全てのＮ個の出力を処理し得る。
【０１２４】
音声入力のＮＬＵ処理を正しく実施するために、ＮＬＵ構成要素１４６は、エンドポイントデバイス（例えば、遠隔システム１０２、制御デバイス１０４、アプリケーションシステム１４８など）によって提供されるどのサービスが関連し得るかを決定し、絞り込むように、発話の「ドメイン」を決定するように構成され得る。例えば、エンドポイントデバイスは、電話サービス、連絡先リストサービス、カレンダー／スケジューリングサービス、ゲームサービス、アプリケーションサービスなどとの対話に関するサービスを提供し得る。単一のテキストクエリ内の単語は、２つ以上のサービスに関与し得、いくつかのサービスは、機能的にリンクされ得る（例えば、電話サービスおよびゲームサービスの両方は、連絡先リストからのデータを利用し得る）。
【０１２５】
名前付きエンティティ認識（ＮＥＲ）構成要素１０３０は、ＡＳＲ結果の形態でクエリを受信し、意味を解釈するために使用され得る、関連する文法および語彙情報を識別することを試みる。そうするために、ＮＬＵ構成要素１４６は、受信されたクエリに関連し得る潜在的ドメインを識別することによって開始し得る。ＮＬＵ記憶装置１０３６は、特定のデバイスと関連付けられたドメインを識別するデバイスドメイン１０５２のデータベースを含む。例えば、制御デバイス１０４は、ビデオではなく、ゲーム、電話、カレンダー作成、連絡先リスト、およびデバイス固有の通信のためのドメインと関連付けられ得る。加えて、デバイスドメイン１０５２は、デバイスＩＤ、ユーザＩＤ、もしくは世帯ＩＤ、またはいくつかの他のインジケータのいずれかによってインデックス化された、特定のデバイス上の特定のサービスに関するデータベースエントリを含み得る。
【０１２６】
ＮＬＵ処理において、ドメインは、「ゲーム」、「電話」、「カレンダー作成」などの共通のテーマを有する別個のアクティビティセットを表し得る。したがって、各ドメインは、特定の認識器１０２８、言語モデルおよび／または文法データベース１０４０、特定のドメインの意図／作用のセット１０３８、ならびに特定の個別化されたドメイン語彙集１０４２と関連付けられ得る。各地名集１０３２は、特定のユーザおよび／またはデバイスと関連付けられたドメインインデックス化された語彙情報を含み得る。ユーザの連絡先リスト語彙情報は、連絡先の名前を含み得る。全てのユーザの連絡先リストが、おそらく異なるため、この個別化された情報は、エンティティ解決を改善する。
【０１２７】
上記のように、従来のＮＬＵ処理では、クエリは、各識別されたドメインに適用可能な規則、モデル、および情報を適用して処理され得る。例えば、クエリが通信、および、例えば、音楽の両方に潜在的に関与する場合、クエリは、実質的に並列に、通信のための文法モデルおよび語彙情報を使用してＮＬＵ処理され得、音楽のための文法モデルおよび語彙情報を使用して処理されることになる。各モデルセットによって生成されたクエリに基づく応答がスコア化され、全ての適用されたドメインからの全体的な最高ランクの結果が、通常、正しい結果として選択される。
【０１２８】
意図分類（ＩＣ）構成要素１０４４は、クエリを解析して、各識別されたドメインの１つまたは複数の意図を決定し、意図は、クエリに応答して実施されることになる作用に対応する。各ドメインは、意図にリンクされた単語のデータベース（例えば、ドメイン意図１０３８）と関連付けられる。例えば、ゲーミングドメイン意図データベース１０３８は、「前進する」、「後退する」、および「ジャンプする」などの単語および語句を「作用」意図にリンクし得る。一方、ボイスメッセージドメイン意図データベースは、「メッセージを送信する」、「ボイスメッセージを送信する」、「以下を送信する」などの単語および語句をリンクし得る。ＩＣ構成要素１０４４は、クエリ内の単語をドメイン意図データベース１０３８内の単語および語句と比較することによって、各識別されたドメインの潜在的な意図を識別する。いくつかの事例では、ＩＣ構成要素１０４４による意図の決定は、一致する意図を識別するために、入力テキストに対して処理される規則またはテンプレートのセットを使用して実施される。
【０１２９】
特定の解釈された応答を生成するために、ＮＥＲ１０３０は、それぞれのドメインと関連付けられた文法モデルおよび語彙情報を適用して、クエリのテキスト内の１つ以上のエンティティの言及を実際に認識する。この様式では、ＮＥＲ構成要素１０３０は、後のコマンド処理に必要とされ得る「スロット」（すなわち、クエリテキスト内の特定の単語）を識別する。ＮＥＲ構成要素１０３０の複雑さに応じて、ＮＥＲ構成要素１０３０はまた、様々なレベルの特異性のタイプ（名詞、場所、都市、アーティスト名、曲名など）によって各スロットをラベル付けし得る。各文法モデル１０４０は、特定のドメイン（すなわち、一般的な用語）についての音声内に一般的に見出されるエンティティの名前（すなわち、名詞）を含み、一方、地名集１０３２からの語彙情報は、ユーザ（複数可）および／またはデバイスに個別化される。例えば、ゲームドメインと関連付けられた文法モデルは、人々がゲームについて議論しているときおよび／またはゲームアプリケーションをプレイしているときに一般的に使用される単語のデータベースを含み得る。
【０１３０】
ＩＣ構成要素１０４４によって識別された意図は、満たされることになる「スロット」または「フィールド」を有するドメイン固有の文法フレームワーク（１０４０に含まれる）にリンクされる。各スロット／フィールドは、システムがエンティティに対応すると考えるクエリテキストの一部分に対応する。解決をより柔軟にするために、これらのフレームワークは、通常、文章として構造化されるのではなく、スロットを文法タグと関連付けることに基づいて構造化される。例えば、「メッセージを送信する」が、識別された意図である場合、１つまたは複数の文法（１０４０）フレームワークは、「｛連絡先｝にメッセージを送信する」、「｛連絡先｝にボイスメッセージを送信する」、「｛連絡先｝に以下を送信する」などの文章構造に対応し得る。
【０１３１】
例えば、ＮＥＲ構成要素１０３０は、名前付きエンティティを認識する前に、文法規則および／またはモデルに基づいて、単語を、主語、目的語、動詞、前置詞などとして識別するためにクエリを解析し得る。識別された動詞は、ＩＣ構成要素１０４４によって意図を識別するために使用され得、次いで、ＮＥＲ構成要素１０３０によってフレームワークを識別するために使用される。一方、「メッセージを送信する」という意図のためのフレームワークは、識別された「連絡先」および任意の目的語の修飾語などの役割を果たす（例えば、受信者のデバイスを指定する）ために適用可能なスロット／フィールドのリストを指定し得る。次いで、ＮＥＲ構成要素１０３０は、ドメイン固有および個別化された語彙集（複数可）内の対応するフィールドを検索し、文法上の目的語または目的語の修飾語としてタグ付けされたクエリ内の単語および語句をデータベース（複数可）内で識別されたものと照会することを試みる。
【０１３２】
このプロセスは、意味論的タグ付けを含み、これは、単語のタイプ／意味論的な意味に応じた単語または単語の組み合わせのラベル付けである。解析は、ヒューリスティック文法規則を使用して実施され得るか、またはＮＥＲモデルは、隠しマルコフモデル、最大エントロピーモデル、対数線形モデル、条件付きランダムフィールド（ＣＲＦ）などの技術を使用して構築され得る。
【０１３３】
次いで、意図にリンクされたフレームワークは、フレームワークスロットとの類似性についてユーザの地名集を検索するなどの、これらの語句の意味を決定するために、どのデータベースフィールドが検索されるべきであるかを決定するために使用される。地名集の検索が、地名集情報を使用してスロット／フィールドを解決しない場合、ＮＥＲ構成要素１０３０は、ドメインと関連付けられた一般的な単語のデータベース（ナレッジベース１０４６内）を検索し得る。したがって、例えば、クエリが「Ｊｏｅにメッセージを送信する」であった場合、「Ｊｏｅ」の姓を決定することに失敗した後、ＮＥＲ構成要素１０３０は、「Ｊｏｅ」という単語のドメイン用語集を検索し得る。代替例では、一般的な単語が、地名集情報の前にチェックされ得るか、または両方が試され得、潜在的に２つの異なる結果をもたらす。
【０１３４】
次いで、ＮＬＵ構成要素１４６からの出力データ（タグ付けされたテキスト、コマンドなどを含み得る）は、コマンド処理構成要素１０４８に送信され得る。宛先コマンド処理構成要素１０４８は、ＮＬＵ出力に基づいて決定され得る。例えば、ＮＬＵ出力がメッセージを送信するコマンドを含む場合、コマンド処理構成要素１０４８は、メッセージ送信コマンドを実行するように構成された、制御デバイス１０４上、アプリケーションシステム１４８上、またはメッセージ送信機器内に位置するものなどの、メッセージ送信アプリケーションであり得る。ＮＬＵ出力が、所与の方向にキャラクタを移動させるなどのゲームアプリケーションへの入力を含む場合、宛先コマンドプロセッサは、コマンドを実行するように構成されたアプリケーションシステム１４８を含み得る。
【０１３５】
既存のシステムのＮＬＵ動作は、マルチドメインアーキテクチャの形態をとり得る。各ドメイン（ゲーム、メッセージ送信などのより大きい概念、およびＮＥＲ、ＩＣなどの様々なＮＬＵ動作を実施するために使用される訓練されたモデルなどの構成要素を定義する意図およびエンティティスロットのセットを含み得る）は、別個に構築され、ＮＬＵ動作がテキストに対して実施されるランタイム動作（ＡＳＲ構成要素１０１４からのテキスト出力など）中にＮＬＵ構成要素１４６に利用可能にされ得る。各ドメインは、ＮＬＵ動作の様々なステップを実施するように特別に構成された構成要素を有し得る。
【０１３６】
例えば、ＮＬＵシステムでは、システムは、ゲーム、メッセージ送信、および情報などの、システムによって（またはシステムに接続された他のデバイスによって）実行可能な意図／コマンドのための複数のドメインから構成されたマルチドメインアーキテクチャを含み得る。システムは、複数のドメイン認識器を含み得、各ドメインは、独自の認識器１０２８を含み得る。各認識器は、ＮＥＲ構成要素１０３０、ＩＣ構成要素１０４４、およびエンティティリゾルバなどの他の構成要素、または他の構成要素などの、様々なＮＬＵ構成要素を含み得る。
【０１３７】
コマンド処理構成要素１０４８および／またはＮＬＵ構成要素１４６は、意図に基づいてドメインを決定し、この決定に基づいて、オーディオデータに対応する要求を、例示されたドメインｓｐｅｅｃｈｌｅｔ１０５０などの、適切なドメインｓｐｅｅｃｈｌｅｔにルーティングし得る。ドメインｓｐｅｅｃｈｌｅｔ１０５０は、任意のタイプのデバイスまたはデバイス群（例えば、ハードウェアデバイス、仮想デバイスまたはパーティション、サーバなど）を含み得、オーディオデータ１００２と関連付けられたテキストデータおよび／または意図を受信し、要求にどのように応答するかを決定し得る。例えば、「キャラクタを前方に歩かせる」というコマンドの意図は、アプリケーションシステム１４８などのデバイスを制御するゲームドメインｓｐｅｅｃｈｌｅｔ１０５０にルーティングされ得る。
【０１３８】
様々なタイプのドメインｓｐｅｅｃｈｌｅｔ１０５０は、ボイスコマンド１００６、ならびに適切な応答および潜在的な追加コンテンツ（例えば、オーディオデータ）に応答するために使用するデバイス１００２がどれかを決定するために使用され得る。例えば、ドメインｓｐｅｅｃｈｌｅｔ１０５０は、ゲーム、生産性などと関連付けられた意図を取り扱い得るサードパーティスキルドメインｓｐｅｅｃｈｌｅｔ１０５０、音楽再生要求（例えば、Ａｍａｚｏｎ  Ｍｕｓｉｃ、Ｐａｎｄｏｒａ、Ｓｐｏｔｉｆｙ、ｉＨｅａｒｔなど）と関連付けられた意図を取り扱い得る音楽ドメインｓｐｅｅｃｈｌｅｔ１０５０、ビデオ再生要求（例えば、Ａｍａｚｏｎ  Ｖｉｄｅｏ、ＨＢＯ、Ｎｅｔｆｌｉｘ、Ｈｕｌｕなど）と関連付けられた意図を取り扱い得るビデオドメインｓｐｅｅｃｈｌｅｔ１０５０、家庭用アクティビティ（カレンダー、リマインダ、タイマーなど）と関連付けられた家庭用編成ドメインｓｐｅｅｃｈｌｅｔ１０５０、スマートデバイスの制御（例えば、照明、ドアロック、ホームモニタリングなどの制御）と関連付けられた意図を取り扱い得るスマートホームドメインｓｐｅｅｃｈｌｅｔ１０５０、自動車ドメインｓｐｅｅｃｈｌｅｔ１０５０、買物要求（例えば、買物リストの作成、アイテムのオンライン注文など）を取り扱い得る買物ドメインｓｐｅｅｃｈｌｅｔ１０５０、および／または気象予報の要求（例えば、気象ウェブサイトへのＵＲＬの提供、気象関連画像および／または動画の提供など）を取り扱い得る気象ドメインｓｐｅｅｃｈｌｅｔ１０５０を含み得る。
【０１３９】
上記の発明は、特定の例に関して説明されているが、本発明の範囲は、これらの特定の例に限定されないことを理解されたい。特定の動作要件および環境に適合するように変更された他の修正および変更は、当業者に明らかであるため、本発明は、開示の目的で選択された例に限定されたとみなされず、本発明の真の概念および範囲から逸脱しない全ての変更および修正に及ぶ。
【０１４０】
本出願は、特定の構造的特徴および／または方法論的作用を有する実施形態を説明するが、特許請求の範囲は、必ずしも説明される特定の特徴または作用に限定されないことを理解されたい。むしろ、特定の特徴および作用は、特許請求の範囲内に収まるいくつかの実施形態を例示するに過ぎない。
【０１４１】
例示的な条項
Ａ：ハンドヘルドコントローラおよびディスプレイデバイスを含む環境から遠隔に位置するシステムであって、少なくとも１つのデータベースであって、ハンドヘルドコントローラと関連付けられた第１の識別子およびディスプレイデバイスと関連付けられた第２の識別子を示すプロファイルデータ、ならびにゲームを表すゲームデータを記憶している、少なくとも１つのデータベースと、１つ以上のプロセッサと、命令を記憶している１つ以上のコンピュータ可読媒体と、を備え、命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、ハンドヘルドコントローラからネットワークを介して、第１の識別子を表す第１のデータを受信することと、プロファイルデータを使用して、第１のデータがハンドヘルドコントローラから受信されることを決定することと、プロファイルデータを使用して、ハンドヘルドコントローラがディスプレイデバイスと関連付けられていることを決定することと、ネットワークを介して、第１のビデオデータをディスプレイデバイスに送信することであって、第１のビデオデータが、ゲームの第１の状態を表す、送信することと、ハンドヘルドコントローラからネットワークを介して、ハンドヘルドコントローラによって受信された入力を表す入力データを受信することと、入力データに少なくとも部分的に基づいて、ゲームの第１の状態をゲームの第２の状態に更新することと、ネットワークを介してディスプレイデバイスに、ゲームの第２の状態を表す第２のビデオデータを送信することと、ネットワークを介して、第１のタイムスタンプデータをディスプレイデバイスに送信することであって、第１のタイムスタンプデータが、第１の時間にゲームの第２の状態を表示するための第１の命令を含む、送信することと、ネットワークを介してハンドヘルドコントローラに、ゲームの第２の状態に対応する音を表すオーディオデータを送信することと、ネットワークを介して、第２のタイムスタンプデータをハンドヘルドコントローラに送信することであって、第２のタイムスタンプデータが、第２の時間に音を出力するための第２の命令を含み、第２の時間が、第１の時間までの閾値期間内である、送信することと、を含む動作を実施させる、システム。
【０１４２】
Ｂ：１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、さらなる命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、ネットワークを介してディスプレイデバイスに、ゲームの第２の状態に対応する音を表す追加のオーディオデータを送信することと、ネットワークを介して、第３のタイムスタンプデータをディスプレイデバイスに送信することであって、第３のタイムスタンプデータが、第３の時間に音を出力するための第３の命令を含み、第３の時間が、第１の時間と同様である、送信することと、を含むさらなる動作を実施させる、段落Ａに記載のシステム。
【０１４３】
Ｃ：ゲームの第１の状態は、オブジェクトがゲーム環境内の第１の位置に位置することを含み、ゲームの第２の状態へのゲームの第１の状態の更新が、入力データを使用して、ゲーム環境内のオブジェクトの第２の位置を決定することと、ゲーム環境内のオブジェクトの位置を、ゲーム環境内の第１の位置からゲーム環境内の第２の位置に更新することと、を含む、段落Ａまたは段落Ｂのいずれかに記載のシステム。
【０１４４】
Ｄ：方法であって、遠隔システムによって、電子デバイスがディスプレイデバイスと関連付けられていることを決定することと、遠隔システムによってディスプレイデバイスに、ゲームの第１の状態を表す第１のビデオデータを送信することと、遠隔システムによって電子デバイスから、電子デバイスによって受信された入力を表す入力データを受信することと、遠隔システムによって、ゲームの第１の状態および入力データに少なくとも部分的に基づいて、ゲームの第２の状態を決定することと、遠隔システムによってディスプレイデバイスに、ゲームの第２の状態を表す第２のビデオデータを送信することと、を含む、方法。
【０１４５】
Ｅ：遠隔システムによって電子デバイスに、ゲームの第２の状態と関連付けられた音を表すオーディオデータを送信することと、遠隔システムによって電子デバイスに、タイムスタンプを表すデータを送信することであって、タイムスタンプが、電子デバイスによる音の出力を、ディスプレイデバイスによる第２のビデオデータの表示と同期させることと関連付けられている、送信することと、をさらに含む、段落Ｅに記載の方法。
【０１４６】
Ｆ：遠隔システムによって、電子デバイスとの第１のネットワーク接続を確立することであって、入力データの受信が、第１のネットワーク接続を介する、確立することと、遠隔システムによって、ディスプレイデバイスとの第２のネットワーク接続を確立することであって、第２のビデオデータの送信が、第２のネットワーク接続を介する、確立することと、をさらに含む、段落Ｄまたは段落Ｅのいずれかに記載の方法。
【０１４７】
Ｇ：ゲームの第１の状態および入力データに少なくとも部分的に基づいて、ゲームの第２の状態を決定することが、遠隔システムによって、ゲームの第１の状態は、オブジェクトがゲーム環境内の第１の位置に位置することを含むことを決定することと、遠隔システムによって、第１の位置および入力データに少なくとも部分的に基づいて、オブジェクトの第２の位置を決定することと、遠隔システムによって、ゲームの第２の状態は、オブジェクトが環境内の第２の位置に位置することを含むことを決定することと、を含む、段落Ｄ〜Ｆのいずれか１つに記載の方法。
【０１４８】
Ｈ：遠隔システムによってディスプレイデバイスに、１つ以上のゲームを表す第３のビデオデータを送信することであって、１つ以上のゲームが、ゲームを含む、送信することと、遠隔システムによって電子デバイスから、電子デバイスによって受信された追加の入力を表す追加の入力データを受信することと、遠隔システムによって、追加の入力データに少なくとも部分的に基づいて、ゲームを開始することと、をさらに含む、段落Ｄ〜Ｇのいずれか１つに記載の方法。
【０１４９】
Ｉ：入力データが、ユーザ音声を表すオーディオデータを含み、方法は、遠隔システムによって、ユーザ音声によって表される１つ以上の単語を決定することをさらに含み、ゲームの第１の状態および入力データに少なくとも部分的に基づいてゲームの第２の状態を決定することが、遠隔システムによって、ゲームの第１の状態および１つ以上の単語に少なくとも部分的に基づいて、ゲームの第２の状態を決定することを含む、段落Ｄ〜Ｈのいずれか１つに記載の方法。
【０１５０】
Ｊ：遠隔システムによってデータベース内に、電子デバイスと関連付けられた第１の識別子およびディスプレイデバイスと関連付けられた第２の識別子を表す第１のデータを記憶することと、遠隔システムによって電子デバイスから、第１の識別子を表す第２のデータを受信することと、遠隔システムによって第１のデータを使用して、第２のデータが、電子デバイスから送信されたことを決定することと、をさらに含み、ディスプレイデバイスが電子デバイスと関連付けられていることを決定することが、第１のデータに少なくとも部分的に基づく、段落Ｄ〜Ｉのいずれか１つに記載の方法。
【０１５１】
Ｋ：遠隔システムによって、電子デバイスと関連付けられた第１の識別子を表す第１のデータを受信することと、遠隔システムによって、ディスプレイデバイスと関連付けられた第２の識別子を表す第２のデータを受信することと、遠隔システムによって、ユーザプロファイルを表す第３のデータを生成することであって、第３のデータが、少なくとも、電子デバイスと関連付けられた第１の識別子、およびディスプレイデバイスと関連付けられた第２の識別子を示す、生成することと、をさらに含む、段落Ｄ〜Ｊのいずれか１つに記載の方法。
【０１５２】
Ｌ：遠隔システムによって、電子デバイスが追加のディスプレイデバイスと関連付けられていることを決定することと、遠隔システムによって追加のディスプレイデバイスに、ゲームの第１の状態を表す第１のビデオデータを送信することと、遠隔システムによって追加のディスプレイデバイスに、ゲームの第２の状態を表す第２のビデオデータを送信することと、を含む、段落Ｄ〜Ｋのいずれか１つに記載の方法。
【０１５３】
Ｍ：遠隔システムによってディスプレイデバイスに、第１のタイムスタンプを表わす第１のデータを送信することであって、ゲームの第２の状態と関連付けられた第１のタイムスタンプを表す第１のデータを送信することと、遠隔システムによって追加のディスプレイデバイスに、第２のタイムスタンプを表す第２のデータを送信することであって、第２のタイムスタンプが、追加のディスプレイデバイスによるゲームの第２の状態の表示を、ディスプレイデバイスによるゲームの第２の状態の表示と同期させることと関連付けられている、送信することと、をさらに含む、段落Ｄ〜Ｌのいずれか１つに記載の方法。
【０１５４】
Ｎ：遠隔システムによって追加の電子デバイスから、追加の電子デバイスによって受信された追加の入力を表す追加の入力データを受信することと、遠隔システムによって、ゲームの第２の状態および追加の入力データに少なくとも部分的に基づいて、ゲームの第３の状態を決定することと、遠隔システムによってディスプレイデバイスに、ゲームの第３の状態を表す第３のビデオデータを送信することと、をさらに含む、段落Ｄ〜Ｍのいずれか１つに記載の方法。
【０１５５】
Ｏ：システムであって、１つ以上のプロセッサと、命令を記憶している１つ以上のコンピュータ可読媒体と、を備え、命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、ゲームと関連付けられたデータを記憶することと、電子デバイスからネットワークを介して、ゲームの選択を表す第１の入力データを受信することと、ディスプレイデバイスにネットワークを介して、ゲームの第１の状態を表す第１のビデオデータを送信することと、電子デバイスからネットワークを介して、電子デバイスによって受信された入力を表す第２の入力データを受信することと、ゲームの第１の状態および第２の入力データに少なくとも部分的に基づいて、ゲームの第２の状態を決定することと、ディスプレイデバイスにネットワークを介して、ゲームの第２の状態を表す第２のビデオデータを送信することと、を含む動作を実施させる、システム。
【０１５６】
Ｐ：１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、さらなる命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、電子デバイスに、ゲームの第２の状態と関連付けられた音を表すオーディオデータを送信することと、電子デバイスが音を出力する時間を決定することと、電子デバイスに、時間に音を出力するための命令を表す追加のデータを送信することと、を含むさらなる動作を実施させる、段落Ｏに記載のシステム。
【０１５７】
Ｑ：１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、さらなる命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、電子デバイスとの第１のネットワーク接続を確立することであって、第２の入力データの受信が、第１のネットワーク接続を介する、確立することと、ディスプレイデバイスとの第２のネットワーク接続を確立することであって、第２のビデオデータの送信が、第２のネットワーク接続を介する、確立することと、を含むさらなる動作を実施させる、段落Ｏまたは段落Ｐのいずれかに記載のシステム。
【０１５８】
Ｒ：ゲームの第１の状態および第２の入力データに少なくとも部分的に基づいて、ゲームの第２の状態を決定することが、ゲームの第１の状態は、オブジェクトがゲーム環境内の第１の位置に位置することを含むことを決定することと、第１の位置および第２の入力データに少なくとも部分的に基づいて、オブジェクトの第２の位置を決定することと、ゲームの第２の状態は、オブジェクトが環境内の第２の位置に位置することを含むことを決定することと、を含む、段落Ｏ〜Ｑのいずれか１つに記載のシステム。
【０１５９】
Ｓ：１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、さらなる命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、ディスプレイデバイスに、１つ以上のゲームを表す第３のビデオデータを送信することであって、１つ以上のゲームが、ゲームを含む、送信することを含む、さらなる動作を実施させる、段落Ｏ〜Ｒのいずれか１つに記載のシステム。
【０１６０】
Ｔ：データが、第１のデータであり、１つ以上のコンピュータ可読媒体が、さらなる命令を記憶しており、さらなる命令は、１つ以上のプロセッサによって実行されると、１つ以上のプロセッサに、電子デバイスとディスプレイデバイスとの間の関連付けを表す第２のデータを記憶することと、電子デバイスから、電子デバイスと関連付けられた識別子を表す第３のデータを受信することと、第２のデータを使用して、電子デバイスがディスプレイデバイスと関連付けられていることを決定することと、を含むさらなる動作を実施させ、第１のビデオデータの送信または第２のビデオデータの送信のうちの少なくとも１つは、電子デバイスがディスプレイデバイスと関連付けられていることを決定することに少なくとも部分的に基づく、段落Ｏ〜Ｓのいずれか１つに記載のシステム。
【図１】
2021531923.tif 000003
【図２】
2021531923.tif 000004
【図３】
2021531923.tif 000005
【図４】
2021531923.tif 000006
【図５】
2021531923.tif 000007
【図６Ａ】
2021531923.tif 000008
【図６Ｂ】
2021531923.tif 000009
【図７】
2021531923.tif 000010
【図８】
2021531923.tif 000011
【図９】
2021531923.tif 000012
【図１０】
2021531923.tif 000013
【国際調査報告】
2021531923.tif 000014
2021531923.tif 000015