(57)【要約】      （修正有）【課題】仮想アシスタントを使用して電子デバイスを制御する。【解決手段】ユーザは、１つ以上の電子デバイスを制御するために、自然言語形式で入力をユーザデバイスへと発語する。ユーザデバイスは、そのユーザ発語を、テキスト表現へと変換するためにサーバへ送信する。サーバは、テキスト表現に基づき、１つ以上の電子デバイス及び１つ以上の電子デバイスによって実行される適切なコマンドを特定する。特定された１つ以上のデバイス及び実行されるコマンドは、ユーザデバイスへ返送される。ユーザデバイスは、そのコマンドを、実行のために適切な１つ以上の電子デバイスへと転送する。コマンドを受信したことに応じて、１つ以上の電子デバイスはコマンドを実行し、それらの現在の状態をユーザデバイスへと送信してもよい。【選択図】図１
2019083047.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
前記ユーザデバイスによって、ユーザ発語を含むオーディオ入力を受け取ることと、
前記オーディオ入力に対応するデータを１つ以上のサーバへと送信することと、
前記１つ以上のサーバから、
前記オーディオ入力に対応する前記データに基づき前記１つ以上のサーバによって特定された第１の電子デバイスの識別子と、
前記オーディオ入力に対応する前記データに基づき前記１つ以上のサーバによって特定された前記第１の電子デバイスによって実行される第１のコマンドと、
を受信することと、
前記第１のコマンドを前記第１の電子デバイスへと送信することと、を含む、方法。
【請求項２】
前記第１のコマンドを前記第１の電子デバイスへと送信した後、前記第１の電子デバイスの現在の状態を前記第１の電子デバイスから受信することと、
前記第１の電子デバイスの前記現在の状態を前記１つ以上のサーバへと送信することと、を更に含む、請求項１に記載の方法。
【請求項３】
前記第１の電子デバイスは電球を含む、請求項２に記載の方法。
【請求項４】
前記第１のコマンドは、前記電球のオン／オフ状態、明暗調整可能状態、又は色状態を設定するコマンドを含む、請求項３に記載の方法。
【請求項５】
前記第１の電子デバイスの前記現在の状態は、前記電球の前記オン／オフ状態、明暗調整可能状態、又は色状態を設定する前記第１のコマンドを送信した後の前記電球の前記オン／オフ状態、明暗調整可能状態、又は色状態を含む、請求項４に記載の方法。
【請求項６】
前記第１の電子デバイスは電気コンセントを含む、請求項２に記載の方法。
【請求項７】
前記第１のコマンドは、前記電気コンセントのアクティブ／非アクティブ状態を設定するコマンドを含む、請求項６に記載の方法。
【請求項８】
前記第１の電子デバイスの前記現在の状態は、前記電気コンセントの前記アクティブ／非アクティブ状態を設定する前記コマンドを送信した後の前記電気コンセントの前記アクティブ／非アクティブ状態を含む、請求項７に記載の方法。
【請求項９】
前記第１の電子デバイスはスイッチを含む、請求項２に記載の方法。
【請求項１０】
前記第１のコマンドは、前記スイッチのオン／オフ状態を設定するコマンドを含む、請求項９に記載の方法。
【請求項１１】
前記第１の電子デバイスの前記現在の状態は、前記スイッチの前記オン／オフ状態を設定する前記コマンドを送信した後の前記電気コンセントの前記オン／オフ状態を含む、請求項１０に記載の方法。
【請求項１２】
前記第１の電子デバイスはドアの鍵を含む、請求項２に記載の方法。
【請求項１３】
前記第１のコマンドは、前記ドアの鍵の施錠／非施錠状態を設定するコマンドを含む、請求項１２に記載の方法。
【請求項１４】
前記第１の電子デバイスの前記現在の状態は、前記ドアの鍵の前記施錠／非施錠状態を設定する前記コマンドを送信した後の前記ドアの鍵の前記施錠／非施錠状態を含む、請求項１３に記載の方法。
【請求項１５】
前記第１の電子デバイスはガレージドアを含む、請求項２に記載の方法。
【請求項１６】
前記第１のコマンドは、前記ガレージドアの開／閉状態を設定するコマンドを含む、請求項１５に記載の方法。
【請求項１７】
前記第１の電子デバイスの前記現在の状態は、前記ガレージドアの前記開／閉状態を設定する前記コマンドを送信した後の前記ガレージドアの前記開／閉状態を含む、請求項１６に記載の方法。
【請求項１８】
前記第１の電子デバイスはサーモスタットを含む、請求項２に記載の方法。
【請求項１９】
前記第１のコマンドは、前記サーモスタットの温度設定の数値を設定するコマンドを含む、請求項１８に記載の方法。
【請求項２０】
前記第１の電子デバイスの前記現在の状態は、前記サーモスタットの前記温度設定の前記数値を設定する前記第１のコマンドを送信した後の前記サーモスタットの前記温度設定の前記数値を含む、請求項１９に記載の方法。
【請求項２１】
前記第１のコマンドは、前記第１の電子デバイスの前記現在の状態に関するクエリを含む、請求項２に記載の方法。
【請求項２２】
所定の条件が満たされたと判定したことに応じて、前記第１の電子デバイスの前記現在の状態に関連付けられた通知を出力することを更に含む、請求項２に記載の方法。
【請求項２３】
前記ユーザデバイスは、前記第１の電子デバイスを含む複数の電子デバイスのそれぞれの状態を記憶するデータベースを含み、前記方法は、前記第１の電子デバイスから受信した前記第１の電子デバイスの前記現在の状態に少なくとも部分的に基づき、前記データベース内に記憶された前記第１の電子デバイスの状態を更新することを更に含む、請求項２に記載の方法。
【請求項２４】
前記第１のコマンド及び前記第１の電子デバイスから受信した前記第１の電子デバイスの前記現在の状態に基づく前記第１のコマンドの結果の指示を出力することを更に含み、前記結果の前記指示は、オーディオ、視覚、又はオーディオ及び視覚の両方の指示である、請求項２に記載の方法。
【請求項２５】
前記ユーザデバイスは、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含む、請求項１に記載の方法。
【請求項２６】
前記第１のコマンドは、ローカル無線ネットワークを介して前記第１の電子デバイスへと送信される、請求項１に記載の方法。
【請求項２７】
前記第１のコマンドは、Ｂｌｕｅｔｏｏｔｈ、見通し線、ピアツーピア、又はＷｉＦｉ通信によって、直接前記第１の電子デバイスへと送信される、請求項１に記載の方法。
【請求項２８】
前記１つ以上のサーバから前記第１のコマンドを受信することと前記第１のコマンドを前記第１の電子デバイスへと送信することとの間に前記第１の電子デバイスに対して前記第１の電子デバイスの前記状態に関するクエリを実行することを除外する、請求項１に記載の方法。
【請求項２９】
前記１つ以上のサーバから、
前記オーディオ入力に対応する前記データに基づき前記１つ以上のサーバによって特定された第２の電子デバイスの識別子と、
前記オーディオ入力に対応する前記データに基づき前記１つ以上のサーバによって特定された前記第２の電子デバイスによって実行される第２のコマンドと、
を受信することと、
前記第２のコマンドを前記第２の電子デバイスへと送信することと、
前記第２のコマンドを前記第２の電子デバイスへと送信した後、前記第２の電子デバイスの現在の状態を前記第２の電子デバイスから受信することと、
前記第２の電子デバイスの前記現在の状態を前記１つ以上のサーバへと送信することと、を更に含む、請求項１に記載の方法。
【請求項３０】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
前記ユーザデバイスによって、ユーザ発語を含むオーディオ入力を受け取ることと、
前記オーディオ入力に対応するデータを１つ以上のサーバへと送信することと、
前記オーディオ入力に対応する前記データに基づき前記１つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態に関するクエリを実行する命令を、前記１つ以上のサーバから受信することと、
状態クエリを前記複数の電子デバイスのそれぞれへと送信することと、を含む、方法。
【請求項３１】
前記複数の電子デバイスのそれぞれの現在の状態を前記複数の電子デバイスから受信することと、
前記複数の電子デバイスのそれぞれの前記現在の状態を、前記１つ以上のサーバへと送信して、構成として記憶することと、を更に含む、請求項３０に記載の方法。
【請求項３２】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
前記ユーザデバイスによって、ユーザ発語を含むオーディオ入力を受け取ることと、
前記オーディオ入力に対応するデータを１つ以上のサーバへと送信することと、
記憶された構成に基づき前記１つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態を設定する複数のコマンドを、前記１つ以上のサーバから受信することと、
前記複数のコマンドを前記複数の電子デバイスへと送信することと、を含む、方法。
【請求項３３】
前記複数の電子デバイスのそれぞれの更新された状態を前記複数の電子デバイスから受信することと、
前記複数の電子デバイスのそれぞれの前記更新された状態を前記１つ以上のサーバへと送信することと、を更に含む、請求項３２に記載の方法。
【請求項３４】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
１つ以上のサーバによって、ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから受信することと、
オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成することと、
前記ユーザ発語の前記テキスト表現に基づき、第１の電子デバイスを特定することと、
前記ユーザ発語の前記テキスト表現に基づき、前記第１の電子デバイスによって実行される第１のコマンドを特定することと、
前記第１の電子デバイスの識別子及び前記第１のコマンドを送信することと、を含む、方法。
【請求項３５】
前記第１の電子デバイスの現在の状態を受信することを更に含む、請求項３４に記載の方法。
【請求項３６】
前記第１の電子デバイスは電球を含む、請求項３５に記載の方法。
【請求項３７】
前記第１のコマンドは、前記電球のオン／オフ状態、明暗調整可能状態、又は色状態を変更するコマンドを含む、請求項３６に記載の方法。
【請求項３８】
前記第１の電子デバイスの前記現在の状態は、前記電球が、前記電球の前記オン／オフ状態、明暗調整可能状態、又は色状態を設定する前記第１のコマンドを受信した後の前記電球の前記オン／オフ状態、明暗調整可能状態、又は色状態を含む、請求項３７に記載の方法。
【請求項３９】
前記第１の電子デバイスは電気コンセントを含む、請求項３５に記載の方法。
【請求項４０】
前記第１のコマンドは、前記電気コンセントのアクティブ／非アクティブ状態を設定するコマンドを含む、請求項３９に記載の方法。
【請求項４１】
前記第１の電子デバイスの前記現在の状態は、前記電気コンセントが、前記電気コンセントの前記アクティブ／非アクティブ状態を設定する前記第１のコマンドを受信した後の前記電気コンセントの前記アクティブ／非アクティブ状態を含む、請求項４０に記載の方法。
【請求項４２】
前記第１の電子デバイスはドアの鍵を含む、請求項３５に記載の方法。
【請求項４３】
前記第１のコマンドは、前記ドアの鍵の施錠／非施錠状態を設定するコマンドを含む、請求項４２に記載の方法。
【請求項４４】
前記第１の電子デバイスの前記現在の状態は、前記ドアの鍵が、前記ドアの鍵の前記施錠／非施錠状態を設定する前記第１のコマンドを受信した後の前記ドアの鍵の前記施錠／非施錠状態を含む、請求項４３に記載の方法。
【請求項４５】
前記第１の電子デバイスはガレージドアを含む、請求項３５に記載の方法。
【請求項４６】
前記第１のコマンドは、前記ガレージドアの開／閉状態を設定するコマンドを含む、請求項４５に記載の方法。
【請求項４７】
前記第１の電子デバイスの前記現在の状態は、前記ガレージドアが、前記ガレージドアの前記開／閉状態を設定する前記第１のコマンドを受信した後の前記ガレージドアの前記開／閉状態を含む、請求項４６に記載の方法。
【請求項４８】
前記第１の電子デバイスはサーモスタットを含む、請求項３５に記載の方法。
【請求項４９】
前記第１のコマンドは、前記サーモスタットの温度設定の数値を設定するコマンドを含む、請求項４８に記載の方法。
【請求項５０】
前記第１の電子デバイスの前記現在の状態は、前記サーモスタットが、前記サーモスタットの前記温度設定の前記数値を設定する前記第１のコマンドを受信した後の前記サーモスタットの前記温度設定の前記数値を含む、請求項４９に記載の方法。
【請求項５１】
前記第１の電子デバイスはスイッチを含む、請求項３５に記載の方法。
【請求項５２】
前記第１のコマンドは、前記スイッチのオン／オフ状態を設定するコマンドを含む、請求項５１に記載の方法。
【請求項５３】
前記第１の電子デバイスの前記現在の状態は、前記スイッチの前記オン／オフ状態を設定する前記コマンドを送信した後の前記電気コンセントの前記オン／オフ状態を含む、請求項５２に記載の方法。
【請求項５４】
前記第１のコマンドは、前記第１の電子デバイスの前記現在の状態に関するクエリを含む、請求項３５に記載の方法。
【請求項５５】
前記１つ以上のサーバは、前記第１の電子デバイスを含む複数の電子デバイスのそれぞれの名前、種類、及び状態を記憶するデータベースを含む、請求項３５に記載の方法。
【請求項５６】
前記第１の電子デバイスの前記現在の状態に基づき、前記データベース内に記憶された前記第１の電子デバイスの前記状態を更新することを更に含む、請求項５５に記載の方法。
【請求項５７】
前記ユーザ発語の前記テキスト表現は、前記第１の電子デバイスの前記名前を除外する、請求項５５に記載の方法。
【請求項５８】
前記ユーザ発語の前記テキスト表現は、前記第１の電子デバイスの前記種類を除外する、請求項５５に記載の方法。
【請求項５９】
前記オーディオ入力に対応する前記データは、前記ユーザデバイスからの前記オーディオ入力に関連付けられたコンテキスト情報を含む、請求項３４に記載の方法。
【請求項６０】
前記第１の電子デバイスを特定することは前記コンテキスト情報に更に基づく、請求項５９に記載の方法。
【請求項６１】
前記第１のコマンドを特定することは前記コンテキスト情報に更に基づく、請求項５９に記載の方法。
【請求項６２】
前記コンテキスト情報は、前記ユーザデバイスが前記オーディオ入力を受け取ったときの前記ユーザデバイスの向き、又は前記ユーザデバイスが前記オーディオ入力を受け取ったときの前記ユーザデバイスの場所を含む、請求項５９に記載の方法。
【請求項６３】
前記ユーザデバイスは、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含む、請求項３４に記載の方法。
【請求項６４】
前記第１の電子デバイスの前記識別子及び前記第１のコマンドは前記ユーザデバイスへと送信され、前記第１の電子デバイスの前記現在の状態は前記ユーザデバイスから受信される、請求項３４に記載の方法。
【請求項６５】
前記第１の電子デバイスの前記識別子及び前記第１のコマンドは第２のユーザデバイスへと送信され、前記第１の電子デバイスの前記現在の状態は前記第２のユーザデバイスから受信される、請求項３４に記載の方法。
【請求項６６】
前記第１のコマンド及び前記第１の電子デバイスの前記現在の状態に基づく前記第１のコマンドの結果の指示を前記第２のユーザデバイスへと送信することを更に含む、請求項６５に記載の方法。
【請求項６７】
前記ユーザ発語の前記テキスト表現に基づき第２の電子デバイスを特定することと、
前記ユーザ発語の前記テキスト表現に基づき、前記第２の電子デバイスによって実行される第２のコマンドを特定することと、
前記第２の電子デバイスの識別子及び前記第２のコマンドを送信することと、
前記第２の電子デバイスの現在の状態を受信することと、を更に含む、請求項３４に記載の方法。
【請求項６８】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
１つ以上のサーバによって、ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから受信することと、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成することと、
前記ユーザ発語の前記テキスト表現が、複数の電子デバイスのそれぞれの状態を構成として記憶するユーザ意図を表すと判定することと、
前記複数の電子デバイスのそれぞれの前記状態に関するクエリを実行する命令を前記ユーザデバイスへと送信することと、を含む、方法。
【請求項６９】
前記複数の電子デバイスのそれぞれの現在の状態を受信することと、
前記複数の電子デバイスのそれぞれの前記受信した現在の状態を前記構成として記憶することと、を更に含む、請求項６８に記載の方法。
【請求項７０】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
１つ以上のサーバによって、ユーザ発語を含むオーディオ入力に対応するデータを受信することと、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成することと、
前記ユーザ発語の前記テキスト表現が、構成に基づき複数の電子デバイスのそれぞれの前記状態を変更するユーザ意図を表すと判定することと、
前記構成に基づき前記複数の電子デバイスのそれぞれの前記状態を設定する複数のコマンドを送信することと、を含む、方法。
【請求項７１】
前記複数の電子デバイスのそれぞれの更新された状態を受信することを更に含む、請求項７０に記載の方法。
【請求項７２】
請求項１〜７１のいずれか一項に記載の方法を実行する命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項７３】
請求項７２に記載の非一時的コンピュータ可読記憶媒体と、
前記非一時的コンピュータ可読記憶媒体の前記命令を実行することができる１つ以上のプロセッサと、
を備える、システム。
【請求項７４】
ユーザ発語を含むオーディオ入力を受け取る手段と、
前記オーディオ入力に対応するデータを１つ以上のサーバへと送信する手段と、
前記１つ以上のサーバから、
前記オーディオ入力に対応する前記データに基づき前記１つ以上のサーバによって特定された電子デバイスの識別子と、
前記オーディオ入力に対応する前記データに基づき前記１つ以上のサーバによって特定された前記電子デバイスによって実行されるコマンドと、
を受信する手段と、
前記コマンドを前記電子デバイスへと送信する手段と、
前記コマンドを前記電子デバイスへと送信した後、前記電子デバイスの現在の状態を前記電子デバイスから受信する手段と、
前記電子デバイスの前記現在の状態を前記１つ以上のサーバへと送信する手段と、を備える、システム。
【請求項７５】
第１のユーザ発語を含むオーディオ入力を受け取る手段と、
前記オーディオ入力に対応するデータを１つ以上のサーバへと送信する手段と、
前記オーディオ入力に対応する前記データに基づき前記１つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態に関するクエリを実行する命令を、前記１つ以上のサーバから受信する手段と、
状態クエリを前記複数の電子デバイスのそれぞれへと送信する手段と、
前記複数の電子デバイスのそれぞれの現在の状態を前記複数の電子デバイスから受信する手段と、
前記複数の電子デバイスのそれぞれの前記現在の状態を、前記１つ以上のサーバへと送信して、構成として記憶する手段と、を備える、システム。
【請求項７６】
ユーザ発語を含むオーディオ入力を受け取る手段と、
前記オーディオ入力に対応するデータを１つ以上のサーバへと送信する手段と、
記憶された構成に基づき前記１つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態を設定する複数のコマンドを、前記１つ以上のサーバから受信する手段と、
前記複数のコマンドを前記複数の電子デバイスへと送信する手段と、を備える、システム。
【請求項７７】
ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから受信する手段と、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成する手段と、
前記ユーザ発語の前記テキスト表現に基づき第１の電子デバイスを特定する手段と、
前記ユーザ発語の前記テキスト表現に基づき、前記第１の電子デバイスによって実行される第１のコマンドを特定する手段と、
前記第１の電子デバイスの識別子及び前記第１のコマンドを送信する手段と、
前記第１の電子デバイスの現在の状態を受信する手段と、を備える、システム。
【請求項７８】
ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから受信する手段と、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成する手段と、
前記ユーザ発語の前記テキスト表現が、複数の電子デバイスのそれぞれの状態を構成として記憶するユーザ意図を表すと判定する手段と、
前記複数の電子デバイスのそれぞれの前記状態に関するクエリを実行する命令を前記ユーザデバイスへと送信する手段と、
前記複数の電子デバイスのそれぞれの現在の状態を受信する手段と、
前記複数の電子デバイスのそれぞれの前記受信した現在の状態を前記構成として記憶する手段と、を備える、システム。
【請求項７９】
ユーザ発語を含むオーディオ入力に対応するデータを受信する手段と、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成する手段と、
前記ユーザ発語の前記テキスト表現が、構成に基づき複数の電子デバイスのそれぞれの前記状態を変更するユーザ意図を表すと判定する手段と、
前記構成に基づき前記複数の電子デバイスのそれぞれの前記状態を設定する複数のコマンドを送信する手段と、を備える、システム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本出願は、２０１４年５月３０日に出願された、「ＩＮＴＥＬＬＩＧＥＮＴ  ＡＳＳＩＳＴＡＮＴ  ＦＯＲ  ＨＯＭＥ  ＡＵＴＯＭＡＴＩＯＮ」と題する米国特許仮出願第６２／００５，８９３号及び２０１４年９月３０日に出願された「ＩＮＴＥＬＬＩＧＥＮＴ  ＡＳＳＩＳＴＡＮＴ  ＦＯＲ  ＨＯＭＥ  ＡＵＴＯＭＡＴＩＯＮ」と題する米国特許非仮出願第１４／５０３，１０５号からの優先権を主張する。同出願はその全体が全ての目的のために本明細書において参照により組み込まれている。
【技術分野】
【０００２】
本出願は概して自然言語処理に関し、より具体的には、電子デバイスを制御する自然言語処理を有する仮想アシスタントの使用に関する。
【背景技術】
【０００３】
携帯電話、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ等のコンピューティングデバイス上で実行されるソフトウェアアプリケーションを使用して遠隔で制御され得る家庭用電子デバイスが次第に普及している。例えば、数多くの製造業者が、電球の明るさ及び／又は色を調整する、携帯電話上で実行されるソフトウェアアプリケーションによって制御され得る電球を作製している。類似した制御を有する、ドアの鍵、サーモスタット等の他のデバイスも提供されている。
【０００４】
これらのデバイスは、より高度な制御及び利便性をユーザに提供し得るが、家庭内の遠隔で制御されるデバイスの数及び遠隔で制御されるデバイスの種類の数が増加するにしたがって、これらのデバイスを管理することが非常に難しくなる場合がある。例えば、典型的な家は、家の様々な部屋の至る所に配置された４０〜５０個の電球を備え得る。従来のソフトウェアアプリケーションを使用した場合、各電球には一意識別子が付与され、これらのデバイスのうちの１つを制御することを試みるユーザは、グラフィカルユーザインタフェース内の利用可能なデバイスのリストから適切な識別子を選択する必要がある。特定の電球の正しい識別子を記憶し、４０〜５０個の識別子のリストからその識別子を見つけることは、難しくかつ時間のかかる作業になることがある。大量の遠隔で制御されるデバイスを管理及び制御することの難しさに加えて、通常、各製造業者は、そのそれぞれのデバイスを制御するために使用される必要がある、異なるソフトウェアアプリケーションを提供する。そのため、ユーザはそれらの電球をオン／オフにする１つのソフトウェアアプリケーションを見つけて開き、その後、それらのサーモスタットの温度を設定する別のソフトウェアアプリケーションを見つけて開く必要がある。
【発明の概要】
【０００５】
仮想アシスタントを使用して電子デバイスを制御するシステム及び処理が提供される。１つの例示的な処理では、ユーザは、１つ以上の電子デバイスを制御するために、自然言語形式で入力をユーザデバイスへと発語してもよい。ユーザデバイスは、そのユーザ発語を、テキスト表現へと変換するためにサーバへと送信してもよい。サーバはテキスト表現に基づき、１つ以上の電子デバイス、及び１つ以上の電子デバイスによって実行される適切なコマンドを特定してもよい。特定された１つ以上のデバイス及び実行されるコマンドは、ユーザデバイスへと返送されてもよく、それにより、そのコマンドを、実行のために適切な１つ以上の電子デバイスへと転送してもよい。コマンドを受信に応じて、１つ以上の電子デバイスはコマンドを実行し、それらの現在の状態をユーザデバイスへと送信してもよい。
【図面の簡単な説明】
【０００６】
【図１】様々な実施例に係る、電子デバイスを制御するために仮想アシスタントが使用され得る例示的な環境を示す図である。
【０００７】
【図２】様々な実施例に係る、遠隔で電子デバイスを制御するために仮想アシスタントが使用され得る例示的な環境を示す図である。
【０００８】
【図３】様々な実施例に係る例示的なユーザデバイスを示す図である。
【０００９】
【図４】様々な実施例に係る、電子デバイスに関連付けられた情報を記憶するために使用される複数のエントリの視覚表現を示す図である。
【００１０】
【図５】様々な実施例に係る、クライアント−サーバモデルを使用して実装された仮想アシスタントを使用して電子デバイスを制御する例示的な処理を示す図である。
【００１１】
【図６】様々な実施例に係る、クライアント−サーバモデルを使用して実装された仮想アシスタントを使用して遠隔で電子デバイスを制御する例示的な処理を示す図である。
【００１２】
【図７】様々な実施例に係る、スタンドアロンユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する例示的な処理を示す図である。
【００１３】
【図８】様々な実施例に係る、電子デバイスの状態を構成として記憶する例示的な処理を示す図である。
【００１４】
【図９】様々な実施例に係る、以前に記憶された構成を使用して電子デバイスの状態を設定する例示的な処理を示す図である。
【００１５】
【図１０】様々な実施例に係る、電子デバイスを制御するように構成された電子デバイスの機能ブロック図である。
【００１６】
【図１１】様々な実施例に係る、電子デバイスの状態を構成として記憶するように構成された電子デバイスの機能ブロック図である。
【００１７】
【図１２】様々な実施例に係る、電子デバイスの状態を記憶された構成に基づき設定するように構成された電子デバイスの機能ブロック図である。
【００１８】
【図１３】様々な実施例に係る、電子デバイスを制御するように構成された電子デバイスの機能ブロック図である。
【００１９】
【図１４】様々な実施例に係る、電子デバイスの状態を構成として記憶するように構成された電子デバイスの機能ブロック図である。
【００２０】
【図１５】様々な実施例に係る、電子デバイスの状態を記憶された構成に基づき設定するように構成された電子デバイスの機能ブロック図である。
【発明を実施するための形態】
【００２１】
以下の実施例の説明では、実践することが可能な特定の実施例が例示として示される、添付図面を参照する。様々な実施例の範囲から逸脱することなく、他の実施例を使用することができ、構造上の変更を実施することができる点を理解されたい。
【００２２】
インテリジェント自動アシスタント（又は仮想アシスタント）は、ユーザと電子デバイスとの間の直感的なインタフェースを提供する。これらのアシスタントは、ユーザが発語及び／又はテキスト形式の自然言語を使用してデバイス又はシステムと対話することを可能にしてもよい。例えば、ユーザは、電子デバイスに関連付けられた仮想アシスタントへと、自然言語形式の発語ユーザ入力を提供することによって、電子デバイスのサービスにアクセスしてもよい。仮想アシスタントは、ユーザの意図を推測し、ユーザの意図をタスクへと動作化するために、発語ユーザ入力に対する自然言語処理を実行してもよい。その後、電子デバイスの１つ以上の機能を実行することによってタスクが実行されてもよく、関連する出力が自然言語形式でユーザに返されてもよい。
【００２３】
本出願は、仮想アシスタントを使用して電子デバイスを制御するシステム及び処理に関する。１つの例示的な処理では、ユーザは、１つ以上の電子デバイスを制御するために、自然言語形式で入力をユーザデバイスへと発語してもよい。ユーザデバイスは、そのユーザ発語を、テキスト表現へと変換するためにサーバへと送信してもよい。サーバはテキスト表現に基づき、１つ以上の電子デバイス、及び１つ以上の電子デバイスによって実行される適切なコマンドを特定してもよい。特定された１つ以上のデバイス及び実行されるコマンドは、ユーザデバイスへと返送されてもよく、それにより、そのコマンドを、実行のために適切な１つ以上の電子デバイスへと転送してもよい。コマンドの受信に応じて、１つ以上の電子デバイスはコマンドを実行し、それらの現在の状態をユーザデバイスへと送信してもよい。
システムの概要
【００２４】
図１は、様々な実施例に係る、電子デバイスを制御する仮想アシスタントを実装する例示的なシステム１００を示す。用語「仮想アシスタント」、「デジタルアシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、発語及び／又はテキスト形式の自然言語入力を解釈してユーザ意図を推測し、推測されたユーザ意図に基づきアクションを実行する任意の情報処理システムを指してもよい。例えば、推測されたユーザ意図に基づきアクションを実行するために、システムは、推測されたユーザ意図を実現するように設計されたステップ及びパラメータを含むタスクフローを特定すること、推測されたユーザ意図からの具体的な要件をタスクフローへと入力すること、プログラム、方法、サービス、ＡＰＩ等を呼び出すことによってタスクフローを実行すること、及びユーザへの出力応答を可聴（例えば、発語）及び／又は視覚形式で生成することのうちの１つ以上を実行してもよい。
【００２５】
仮想アシスタントは、自然言語コマンド、要求、陳述、叙述、及び／又は照会の形式で少なくとも部分的にユーザ要求を受け入れることができてもよい。通常、ユーザ要求は仮想アシスタントによる情報回答又はタスクの実行のいずれかを求める。ユーザ要求への満足な応答は、要求された情報回答の提供、要求されたタスクの実行のいずれか、又はその２つの組み合わせを含んでもよい。例えば、ユーザは仮想アシスタントに「私は今どこにいますか？」等の質問をしてもよい。ユーザの現在の場所に基づき、仮想アシスタントは、「あなたはセントラルパーク内にいます」と回答してもよい。ユーザはまた、例えば、「今日午後４時に母に電話することを私に思い出させてください」と、タスクの実行を要求してもよい。それに応じて、仮想アシスタントは要求を認識し、次に、ユーザの電子スケジュール内に適当なリマインダ項目を作成してもよい。要求されたタスクの実行中、仮想アシスタントは、長時間にわたって複数回の情報の交換を伴う連続的なダイアログにおいて、ユーザと対話してもよい。情報又は様々なタスクの実行を要求するために仮想アシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、仮想アシスタントは、他の視覚又はオーディオ形式の応答を（例えば、テキスト、警報、音楽、ビデオ、アニメーション等として）提供してもよい。
【００２６】
仮想アシスタントの１つの例が、その開示全体が参照により本明細書に組み込まれる２０１１年１月１０日出願の「Ｉｎｔｅｌｌｉｇｅｎｔ  Ａｕｔｏｍａｔｅｄ  Ａｓｓｉｓｔａｎｔ」に対する出願人の米国特許出願第１２／９８７，９８２号に示されている。
【００２７】
図１に示すように、いくつかの実施例では、仮想アシスタントはクライアント−サーバモデルに従って実装されてもよい。仮想アシスタントは、ユーザデバイス１０２上で実行されるクライアント側部分、及びサーバシステム１１０上で実行されるサーバ側部分を含んでもよい。ユーザデバイス１０２は、携帯電話、タブレットコンピュータ、ポータブルメディアプレーヤ、デスクトップコンピュータ、ラップトップコンピュータ、ＰＤＡ、テレビ、テレビセットトップボックス、着用可能電子デバイス等の任意の電子デバイスを含んでもよく、かつ、インターネット、イントラネット、又は任意の他の有線若しくは無線パブリック若しくはプライベートネットワークを含み得る１つ以上のネットワーク１０８を介してサーバシステム１１０と通信してもよい。ユーザデバイス１０２上で実行されるクライアント側部分は、ユーザ対応入力及び出力処理並びにサーバシステム１１０との通信等のクライアント側機能を提供してもよい。サーバシステム１１０は、それぞれのユーザデバイス１０２上に常駐する任意の数のクライアントに対してサーバ側機能を提供してもよい。
【００２８】
サーバシステム１１０は、クライアント対応Ｉ／Ｏインタフェース１２２、１つ以上の処理モジュール１１８、データ及びモデル記憶装置１２０、並びに外部サービスへのＩ／Ｏインタフェース１１６を含み得る、１つ以上の仮想アシスタントサーバ１１４を含んでもよい。クライアント対応Ｉ／Ｏインタフェース１２２は、仮想アシスタントサーバ１１４のためのクライアント対応入力及び出力処理を促進してもよい。１つ以上の処理モジュール１１８は、データ及びモデル記憶装置１２０を利用して、自然言語入力に基づきユーザの意図を判定し、推測されたユーザ意図に基づきタスクを実行してもよい。更に、データ及びモデル記憶装置１２０は、ユーザデバイス１０２及び／又はサーバシステム１１０によって制御され得る電子デバイス（例えば、電子デバイス１２８、１３０、及び１３２）のうちの１つ以上に関連付けられた一意識別子、状態、種類、場所、及び任意の他の関連情報を記憶してもよい。いくつかの実施例では、仮想アシスタントサーバ１１４は、タスクを完了させるか又は情報を取得するために、ネットワーク（単数又は複数）１０８を介して、電話サービス、カレンダーサービス、情報サービス、メッセージングサービス、ナビゲーションサービス等の外部サービス１２４と通信してもよい。外部サービスへのＩ／Ｏインタフェース１１６はこのような通信を促進してもよい。
【００２９】
サーバシステム１１０は、１つ以上のスタンドアロンデータ処理デバイス、又はコンピュータの分散型ネットワーク上に実装されてもよい。いくつかの実施例では、サーバシステム１１０は、また、様々な仮想デバイス及び／又はサードパーティサービスプロバイダ（例えば、サードパーティクラウドサービスプロバイダ）のサービスを利用して、サーバシステム１１０の基本的なコンピューティングリソース及び／又はインフラストラクチャリソースを提供してもよい。
【００３０】
ユーザデバイス１０２は、１つ以上のネットワーク１２６を介して、電子デバイス１２８、１３０、及び１３２に更に結合されてもよい。電子デバイス１２８、１３０、及び１３２は、電球（例えば、２値的なオン／オフ状態、数値的な明暗調整可能状態、色状態等を有する）、ガレージドア（例えば、２値的な開／閉状態を有する）、ドアの鍵（例えば、２値的な施錠／非施錠状態を有する）、サーモスタット（例えば、高温、低温、時間ベースの温度等の１つ以上の数値的な温度状態を含む）、電気コンセント（例えば、２値的なオン／オフ状態を有する）、スイッチ（例えば、２値的なオン／オフ状態を有する）等の、任意の種類の遠隔で制御される電子デバイスを含んでもよい。ネットワーク（単数又は複数）１２６は、ＷｉＦｉネットワーク又は任意の他の有線若しくは無線パブリック若しくはプライベートローカルネットワークを含んでもよい。追加で又は代替として、ユーザデバイス１０２は、例えば、Ｂｌｕｅｔｏｏｔｈ（商標登録）、ＢＴＬＥ、見通し線、ピアツーピア、又は別の無線ベースの通信若しくは他の無線通信を使用して、電子デバイス１２８、１３０、又は１３２と直接通信するように結合されてもよい。したがって、図示された実施例では、ユーザデバイス１０２は、電子デバイス１２８、１３０、及び１３２と直接通信するか又は同じローカルネットワークを介して通信することができるように、それらの付近に配置されてもよい。例えば、ユーザデバイス１０２並びに電子デバイス１２８、１３０、及び１３２は同じ家又は建物内に配置されてもよく、ネットワーク（単数又は複数）１２６はその家又は建物のＷｉＦｉネットワークを含んでもよい。以下で図５、８、及び９に関連して更に詳しく説明されるように、ユーザデバイス１０２は、ユーザによってユーザデバイス１０２へと提供された自然言語発語入力に応じて、電子デバイス１２８、１３０、及び１３２のうちのいずれかを制御するコマンドを発行してもよい。
【００３１】
３つの電子デバイス１２８、１３０、及び１３２のみが示されているが、システム１００は任意の数の電子デバイスを含んでもよいことを理解されたい。更に、仮想アシスタントの機能は、クライアント側部分及びサーバ側部分の両方を含むものとして図１に示されるが、いくつかの実施例では、アシスタントの機能は、ユーザデバイスにインストールされたスタンドアロンアプリケーションとして実装されてもよい。更に、仮想アシスタントのクライアント部分とサーバ部分との間の機能の分配は実施例によって異なってもよい。例えば、いくつかの実施例では、ユーザデバイス１０２上で実行されるクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、仮想アシスタントの全ての他の機能をバックエンドサーバに委ねるシンクライアントであってもよい。
【００３２】
図２は、様々な実施例に係る、遠隔で電子デバイスを制御する仮想アシスタントを実装する他の例示的なシステム２００を示す。システム１００と同様、システム２００は、ネットワーク（単数又は複数）１０８によって通信可能に結合されたユーザデバイス１０２、サーバシステム１１０、及び外部サービス１２４を含んでもよい。ただし、システム１００とは対照的に、ユーザデバイス１０２は、電子デバイス１２８、１３０、及び１３２に結合されなくてもよい。その代わりに、システム２００は、ネットワーク（単数又は複数）１０８を介してユーザデバイス１０２及び／又はサーバシステム１１０と通信するように結合され、かつネットワーク（単数又は複数）１２６を介して電子デバイス１２８、１３０、及び１３２と通信するように結合された、第２のユーザデバイス１３４を含んでもよい。この構成は、ユーザ及びユーザデバイス１０２が電子デバイス１２８、１３０、及び１３２から離れて配置される（例えば、ユーザ及びユーザデバイス１０２がユーザのオフィスに配置され、電子デバイス１２８、１３０、及び１３２がユーザの自宅に配置される）状況を表してもよい。
【００３３】
第２のユーザデバイス１３４は、携帯電話、タブレットコンピュータ、ポータブルメディアプレーヤ、デスクトップコンピュータ、ラップトップコンピュータ、ＰＤＡ、テレビ、テレビセットトップボックス、着用可能電子デバイス等の任意の種類の電子デバイスを含んでもよく、かつ、ユーザデバイス１０２及び／又はサーバシステム１１０からコマンドを受信し、電子デバイス１２８、１３０、及び１３２へとコマンドを発行するように構成されてもよい。以下で図６に関連して更に詳しく説明されるように、第２のユーザデバイス１３４は、ユーザによってユーザデバイス１０２へと提供された自然言語発語入力に応じて、電子デバイス１２８、１３０、及び１３２のうちのいずれかを制御するコマンドを発行してもよい。
ユーザデバイス
【００３４】
図３は、様々な実施例に係る、ユーザデバイス１０２（又は第２のユーザデバイス１３４）のブロック図である。図に示すように、ユーザデバイス１０２は、メモリインタフェース３０２、１つ以上のプロセッサ３０４、及び周辺機器インタフェース３０６を含んでもよい。ユーザデバイス１０２内の様々な構成要素は、１つ以上の通信バス又は信号線によって互いに結合されてもよい。ユーザデバイス１０２は、周辺機器インタフェース３０６に結合される様々なセンサ、サブシステム、及び周辺機器デバイスを更に含んでもよい。センサ、サブシステム、及び周辺機器は情報を収集し、及び／又はユーザ機器１０２の種々の機能性を促進する。
【００３５】
例えば、ユーザデバイス１０２は、向き、光、及び近接検知機能を促進するために周辺機器インタフェース３０６に結合された、動きセンサ３１０、光センサ３１２、及び近接センサ３１４を含んでもよい。関連機能を促進するために、測位システム（例えば、ＧＰＳ受信機）、温度センサ、生体測定センサ、ジャイロスコープ、コンパス、及び加速度計等の、１つ以上の他のセンサ３１６も周辺インタフェース３０６に接続される。
【００３６】
いくつかの実施例では、カメラサブシステム３２０及び光学センサ３２２は、写真の撮影及びビデオクリップの録画等の、カメラ機能を促進するために利用されてもよい。様々な通信ポート、無線周波数受信器及び送信器、並びに／又は光（例えば、赤外線）受信器及び送信器を含み得る、１つ以上の有線及び／又は無線通信サブシステム３２４を通じて、通信機能が促進されてもよい。オーディオサブシステム３２６をスピーカー３２８及びマイクロフォン３３０に結合することによって、音声認識機能、音声複製機能、デジタル録音機能、及び電話機能等の音声対応機能を促進してもよい。
【００３７】
いくつかの実施例では、ユーザデバイス１０２は、周辺機器インタフェース３０６に結合されたＩ／Ｏサブシステム３４０を更に含んでもよい。Ｉ／Ｏサブシステム３４０は、タッチスクリーンコントローラ３４２及び／又は他の入力コントローラ（単数又は複数）３４４を含んでもよい。タッチスクリーンコントローラ３４２は、タッチスクリーン３４６に結合されてもよい。タッチスクリーン３４６及びタッチスクリーンコントローラ３４２は、例えば、容量性、抵抗性、赤外線、及び表面弾性波技術、並びに近接センサアレイ等の複数のタッチ感知技術のうちのいずれかを用いて、接触及び移動又は中断を検出してもよい。他の入力コントローラ（単数又は複数）３４４は、１つ以上のボタン、ロッカスイッチ、サムホイール、赤外線ポート、ＵＳＢポート、及び／又はスタイラスなどのポインタ機器等の、他の入力／制御機器３４８に結合することができる。
【００３８】
いくつかの実施例では、ユーザデバイス１０２は、メモリ３５０に結合されたメモリインタフェース３０２を更に含んでもよい。メモリ３５０は、任意の電子、磁気、光、電磁気、赤外線、若しくは半導体のシステム、装置、又はデバイス、ポータブルコンピュータディスケット（磁気）、ランダムアクセスメモリ（ＲＡＭ）（磁気）、読み出し専用メモリ（ＲＯＭ）（磁気）、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭ）（磁気）、ＣＤ、ＣＤ−Ｒ、ＣＤ−ＲＷ、ＤＶＤ、ＤＶＤ−Ｒ、若しくはＤＶＤ−ＲＷ等のポータブル光ディスク、又はコンパクトフラッシュカード、セキュリティ保護されたデジタルカード、ＵＳＢメモリデバイス、メモリスティック等のフラッシュメモリ等を含んでもよい。いくつかの実施例では、メモリ３５０の非一時的コンピュータ可読記憶媒体は、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチし、それらの命令を実行し得る他のシステム等の、命令実行システム、装置、又はデバイスによって、又はそれらと共に使用する（例えば、以下で説明される処理５００、６００、７００、８００、又は９００のうちのいくつか若しくは全てを実行する）命令を記憶するために使用されてもよい。他の実施例では、（例えば、以下で説明される処理５００、６００、７００、８００、又は９００を実行する）命令は、サーバシステム１１０の非一時的コンピュータ可読記憶媒体上に記憶されてもよく、又はメモリ３５０の非一時的コンピュータ可読記憶媒体とサーバシステム１１０の非一時的コンピュータ可読記憶媒体との間で分配されてもよい。本文書のコンテキストでは、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、若しくはデバイスによって、又はそれらに関連して使用するプログラムを、含むか又は記憶することが可能な、任意の媒体であってもよい。
【００３９】
いくつかの実施例では、メモリ３５０は、オペレーティングシステム３５２、通信モジュール３５４、グラフィカルユーザインタフェースモジュール３５６、センサ処理モジュール３５８、電話モジュール３６０、及びアプリケーション３６２を記憶してもよい。オペレーティングシステム３５２は、基本システムサービスを処理する命令、及びハードウェア依存タスクを実行する命令を含んでもよい。通信モジュール３５４は、１つ以上の追加デバイス、１つ以上のコンピュータ及び／又は１つ以上のサーバとの通信を促進してもよい。グラフィカルユーザインタフェースモジュール３５６はグラフィックユーザインタフェース処理を促進してもよい。センサ処理モジュール３５８はセンサ関連の処理及び機能を促進してもよい。電話モジュール３６０は電話関連のプロセス及び機能を促進してもよい。アプリケーションモジュール３６２は、電子メッセージング、ウェブブラウジング、メディア処理、ナビゲーション、イメージング、並びに／又はその他のプロセス及び機能等の、ユーザアプリケーションの様々な機能を促進してもよい。
【００４０】
メモリ３５０はまた、仮想アシスタントのクライアント側機能を提供するために、（例えば、仮想アシスタントクライアントモジュール３６４内の）クライアント側仮想アシスタント命令、並びに様々なユーザデータ３６６（例えば、ユーザ固有の語彙データ、嗜好データ、及び／若しくはユーザの電子アドレス帳、ｔｏ−ｄｏリスト、買い物リスト等のその他のデータ）も記憶してもよい。
【００４１】
様々な実施例では、仮想アシスタントクライアントモジュール３６４は、ユーザデバイス１０２の様々なユーザインタフェース（例えば、Ｉ／Ｏサブシステム３４０、オーディオサブシステム３２６等）を介して、音声入力（例えば、発語入力）、テキスト入力、タッチ入力、及び／又はジェスチャ入力を受け入れることができてもよい。仮想アシスタントクライアントモジュール３６４はまた、オーディオ（例えば、発語出力）、視覚、及び／又は触覚形式の出力を提供することもできてもよい。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び／又は上記の２つ以上の組み合わせとして提供されてもよい。動作中、仮想アシスタントクライアントモジュール３６４は、通信サブシステム３２４を使用して仮想アシスタントサーバと通信してもよい。
【００４２】
いくつかの実施例では、仮想アシスタントクライアントモジュール３６４は、ユーザ、現在のユーザ対話及び／又は現在のユーザ入力に関連付けられたコンテキストを確立するために、様々なセンサ、サブシステム、及び周辺機器を利用してユーザデバイス１０２の周囲環境から追加情報を収集してもよい。いくつかの実施例では、仮想アシスタントクライアントモジュール３６４は、ユーザの意図の推測を助けるために、ユーザ入力と共にコンテキスト情報又はそのサブセットを仮想アシスタントサーバに提供してもよい。仮想アシスタントはまた、ユーザへの出力をどのように準備し、配信するかを決定するために、コンテキスト情報を使用してもよい。
【００４３】
いくつかの実施例では、ユーザ入力に付随するコンテキスト情報は、照明、周囲ノイズ、周囲温度、周囲環境の画像又はビデオ、別の物体への距離等のセンサ情報を含んでもよい。コンテキスト情報は、ユーザデバイス１０２の物理的状態（例えば、デバイスの向き、デバイスの場所、デバイスの温度、電力レベル、速度、加速度、動きパターン、セルラー信号強度等）又はユーザデバイス１０２のソフトウェア状態（例えば、実行中の処理、インストールされているプログラム、過去及び現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量等）に関連付けられた情報を更に含んでもよい。これらのコンテキスト情報の種類のうちの任意のものが、ユーザ入力に関連付けられたコンテキスト情報として、仮想アシスタントサーバ１１４へと提供されてもよい。
【００４４】
いくつかの実施例では、仮想アシスタントクライアントモジュール３６４は、仮想アシスタントサーバ１１４からの要求に応じて、ユーザデバイス１０２上に記憶されている情報（例えば、ユーザデータ３６６）を選択的に提供してもよい。仮想アシスタントクライアントモジュール３６４はまた、仮想アシスタントサーバ１１４による要求に応じて、自然言語ダイアログ又は他のユーザインタフェースを介してユーザから追加入力を引き出してもよい。仮想アシスタントクライアントモジュール３６４は、意図推測及び／又はユーザ要求内に表されているユーザの意図の達成において仮想アシスタントサーバ１１４を助けるために、追加入力を仮想アシスタントサーバ１１４に渡してもよい。
【００４５】
メモリ３５０は、ユーザデバイス１０２及び／又はサーバシステム１１０によって制御され得る電子デバイス（例えば、電子デバイス１２８、１３０、及び１３２）のうちの１つ以上に関連付けられた一意識別子、状態、種類、場所、及び任意の他の関連情報を含み得る、電子デバイスデータ３７０を更に記憶してもよい。図４は、７つの異なる電子デバイスに関する電子デバイスデータ３７０内に記憶され得るエントリの視覚表現を示す。図示されるように、各エントリは、電子デバイスの一意の名前、種類、及び状態を含む。仮想アシスタントサーバ１１４のデータ及びモデル記憶装置１２０は、メモリ３５０の電子デバイスデータ３７０のものとは別個に維持され得る、電子デバイスに関する類似又は同一のエントリを含んでもよい。
【００４６】
前に戻って、図３に示すように、メモリ３５０は、電子デバイスデータ３７０内の、電子デバイスに関するエントリを作成及び更新し、システム１００の電子デバイスと通信し、サーバシステム１１０と通信する（例えば、デーモンモジュール３６８内の）命令を更に含んでもよい。例えば、電子デバイスをシステム１００へと追加するために、電子デバイスに関連付けられたソフトウェアアプリケーションが、デーモンモジュール３６８を実行しているプロセッサ（単数又は複数）３０４と通信して、電子デバイスの一意の名前、種類、状態、場所等をユーザデバイス１０２へと提供してもよい。ソフトウェアアプリケーションは、ユーザが一意の名前を任意の所望の様式で入力することを可能にしてもよい。例えば、ユーザが特定のデバイスに名前を付けることを可能にするために、共通の名前及び／又は自由形式のテキストフィールドを有するドロップダウンボックスがアプリケーション内で提供されてもよい。電子デバイスの種類、状態、及び／又は場所は、予め特定されているか、又はソフトウェアアプリケーションによって、電子デバイスとの通信を介して特定されてもよい。デーモンモジュール３６８を実行しているプロセッサ（単数又は複数）３０４は、この情報をエントリとして電子デバイスデータ３７０内に記憶してもよく、またこの情報をサーバシステム１１０へと送信して、データ及びモデル記憶装置１２０内に記憶してもよい。更に、デーモンモジュール３６８は、プロセッサ（単数又は複数）３０４によって実行されたときに、電子デバイス１２８、１３０、及び１３２へと提供されるコマンドをサーバシステム１１０からネットワーク（単数又は複数）を介して受信してもよく、かつそれらのコマンドを適切な電子デバイスへと送信してもよい。デーモンモジュール３６８を実行しているプロセッサ（単数又は複数）３０４は更に、状態の更新を電子デバイス１２８、１３０、及び１３２から受信し、電子デバイスデータ３７０内の対応するエントリを更新してデバイスの更新された状態を反映し、サーバシステム１１０がデータ及びモデル記憶装置１２０内の対応するエントリを更新してデバイスの更新された状態を反映できるように状態の更新をサーバシステム１１０へと送信してもよい。
【００４７】
更に、デーモンモジュール３６８は、他のデバイス及びソフトウェアアプリケーションによる電子デバイスデータ３７０へのアクセスを管理する命令を含んでもよい。例えば、デーモンモジュール３６８は、プロセッサ（単数又は複数）３０４によって実行されたときに、サーバシステム１１０による全ての電子デバイスデータ３７０へのアクセスを許可する一方で、他のデバイス又はソフトウェアアプリケーションによるアクセスを電子デバイスデータ３７０の一部のみへと制限してもよい。これは、異なる製造業者によって作製された電子デバイスを制御するためにユーザデバイス１０２を使用するときに役立つ場合がある。これらの状況では、各製造業者からのデバイス又はソフトウェアアプリケーションは、ＡＰＩを使用してデーモンモジュール３６８と通信してもよく、デーモンモジュール３６８は、それらのアクセスを、各製造業者のそれぞれの電子デバイスに対応する、電子デバイスデータ３７０の部分のみへと制限してもよい。例えば、企業Ｘがユーザデバイス１０２によって制御され得る電球を製造する場合があり、かつ企業Ｙがユーザデバイス１０２によって制御され得るサーモスタットを製造する場合がある。デーモンモジュール３６８は、ユーザデバイス１０２がコマンドを電子デバイスへと発行し、かつ、電子デバイスデータ３７０を更新するための、電子デバイスに関連付けられた状態情報を受信することができるように、ユーザデバイス１０２と電球及びサーモスタットのそれぞれとの間の通信を容易にしてもよい。ただし、デーモンモジュール３６８は、電球（及びユーザデバイス１０２上で実行されている、関連付けられたソフトウェアアプリケーション）が電子デバイスデータ３７０内の情報に対して有するアクセスを、電球（及び場合によっては企業Ｘによって製造された任意の他の電子デバイス）に関連付けられた情報のみに制限してもよい。同様に、デーモンモジュール３６８は、サーモスタット（及びユーザデバイス１０２上で実行されている、関連付けられたソフトウェアアプリケーション）が電子デバイスデータ３７０内の情報に対して有するアクセスを、サーモスタット（及び場合によっては企業Ｙによって製造された任意の他の電子デバイス）に関連付けられた情報のみに制限してもよい。ただし、デーモンモジュール３６８は、電子デバイスデータ３７０内の全ての情報へのアクセスをサーバシステム１１０に許可してもよい。
【００４８】
様々な実施例では、メモリ３５０は追加の命令又はより少数の命令を含んでもよい。更に、ユーザデバイス１０２の様々な機能は、１つ以上の信号処理回路及び／又は特定用途向け集積回路の形態を含む、ハードウェアの形態及び／又はファームウェアの形態で実装されてもよい。
電子デバイスのローカル制御
【００４９】
図５は、仮想アシスタントを使用して電子デバイスを制御する例示的な処理５００を示す。いくつかの実施例では、処理５００は、図１に示すシステム１００に類似するか又は同一のシステムを使用して実行されてもよい。これらの実施例では、処理５００のブロックは、ユーザデバイス１０２及びサーバシステム１１０の両方によって実行されてもよい。具体的には、図５の左側のブロックはユーザデバイス１０２によって実行されてもよく、図５の右側のブロックはサーバシステム１１０によって実行されてもよい。
【００５０】
ブロック５０２では、ユーザ発語を含むオーディオ入力がユーザデバイスで受信されてもよい。いくつかの実施例では、ユーザデバイス（例えば、ユーザデバイス１０２）は、ユーザの発語を含むオーディオ入力をマイクロフォン（例えば、マイクロフォン３３０）を介して受信してもよい。マイクロフォンはオーディオ入力をアナログ又はデジタル表現へと変換し、オーディオデータを１つ以上のプロセッサ（例えば、プロセッサ（単数又は複数）３０４）へと提供してもよい。
【００５１】
ブロック５０４では、ブロック５０２で受信したオーディオ入力に対応するデータが、処理のために１つ以上のサーバへと送信されてもよい。例えば、ユーザデバイス１０２は、オーディオ入力に対応するデータを、ネットワーク（単数又は複数）１０８を介してサーバシステム１１０の仮想アシスタントサーバ１１４へと送信してもよい。
【００５２】
ブロック５０６では、ブロック５０４でユーザデバイスによって送信されたオーディオ入力に対応するデータが１つ以上のサーバによって受信されてもよい。例えば、サーバシステム１１０の仮想アシスタントサーバ１１４は、ユーザデバイス１０２によってネットワーク（単数又は複数）１０８を介して送信されたオーディオ入力に対応するデータを受信してもよい。
【００５３】
ブロック５０８では、ユーザ発語をユーザ発語のテキスト表現へと変換するために、オーディオ入力に対応するデータに対する発語テキスト化変換が実行されてもよい。ユーザ発語は、任意の既知の発語テキスト化変換処理を使用して変換されてもよい。
【００５４】
ブロック５１０では、ブロック５０８で生成されたテキスト表現に少なくとも部分的に基づき、１つ以上の電子デバイスが特定されてもよい。いくつかの実施例では、ブロック５１０は、１つ以上の電子デバイスへとコマンドを発行するユーザ意図を特定するためにユーザ入力のテキスト表現を処理することを含んでもよい。上述のように、サーバシステム１１０は、システム１００を使用して制御され得る電子デバイスに関連付けられた一意識別子、状態、種類、場所、及び任意の他の関連情報を記憶し得る、１つ以上のデータ及びモデル記憶装置１２０を含んでもよい。したがって、ブロック５１０は、データモデル及び記憶装置１２０内に記憶された関連情報を有する電子デバイスのうちの１つ以上を特定することを含んでもよい。
【００５５】
１つ以上の電子デバイスは、任意の数の方法で特定されてもよい。いくつかの実施例では、１つ以上の電子デバイスは、テキスト表現を解析して、システム１００によってサポートされる電子デバイスに対応する１組の名詞のうちのいずれかを特定することによって特定されてもよい。例えば、１組の名詞は、電子デバイスデータ３７０並びにデータ及びモデル記憶装置１２０内に記憶された、電子デバイスの一意の名前、電子デバイスのあり得る種類及びそれらの同義語（例えば、ガレージドア、サーモスタット、照明、明暗調整可能な照明、スイッチ、色変更可能な照明、電球、ランプ、鍵、コンセント、ソケット等）、あり得るデバイス状態のカテゴリ（例えば、音量、温度、明るさ、色等）等を含んでもよい。
【００５６】
図４の例示的な電子デバイスのエントリを使用して説明すると、１組の名詞は、７つの電子デバイスの一意の名前（例えば、「ガレージドア」、「２階サーモスタット」、「１階サーモスタット」、「居間ランプ１」、「居間ランプ２」、「玄関」、及び「トースターコンセント」）、電子デバイスのあり得る種類及びそれらの同義語（例えば、「ガレージドア」、「サーモスタット」、「照明」、「電球」、「ランプ」、「鍵」、「コンセント」、「ソケット」等）、及びあり得るデバイス状態のカテゴリ（例えば、温度）を含んでもよい。このため、ブロック５０８で生成されたユーザ発語のテキスト表現が「玄関を施錠する」を含む場合、１組の名詞のうちのいずれかを検索するために、処理モジュール１１８及びデータ及びモデル記憶装置１２０を使用して、テキスト表現が処理されてもよい。検索の結果、テキスト表現が一意の名前「玄関」を含むと判定されてもよく、かつブロック５１０で特定された電子デバイスがこのデバイスを含んでもよい。ユーザ発語のテキスト表現に応じて、ブロック５１０で２つ以上の電子デバイスが特定されてもよいことを理解されたい。例えば、ブロック５０８で生成されたユーザ発語のテキスト表現が、代わりに「全ての電球をオフにする」を含む場合、１組の名詞のうちのいずれかを検索するために、処理モジュール１１８及びデータ及びモデル記憶装置１２０を使用して、テキスト表現が処理されてもよい。検索の結果、テキスト表現があり得るデバイスの種類「照明」の同義語「電球」を含み、かつユーザからの命令が、そのような種類の全てのデバイスをオフにすることであったと判定されてもよい。その結果、ブロック５１０で特定された電子デバイスは、「居間ランプ１」及び「居間ランプ２」の両方を含んでもよい。
【００５７】
いくつかの実施例では、上述の１組の名詞のみを使用して適切な電子デバイスを特定することが難しくなり得る。例えば、「照明をオンにする」を含むテキスト表現は、「居間ランプ１」及び「居間ランプ２」の両方との種類の一致を発生させる場合がある。これらの実施例では、ブロック５１０は、一致する可能性がある電子デバイス間の曖昧さをなくすために、ユーザデバイス１０２から受信した（例えば、ブロック５０６でオーディオ入力に対応するデータの一部として受信した）コンテキスト情報を使用することを更に含んでもよい。センサ情報（例えば、照明、周囲ノイズ、周囲温度、周囲環境の画像又はビデオ、別の物体への距離等）、ユーザデバイス１０２の物理的状態（例えば、デバイスの向き、デバイスの場所、デバイスの温度、電力レベル、速度、加速度、動きパターン、セルラー信号強度等）、ユーザデバイス１０２のソフトウェア状態（例えば、実行中の処理、インストールされているプログラム、過去及び現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量等）に関連付けられた情報等の任意の種類のコンテキスト情報が使用されてもよい。例えば、上記で提供した「照明をオンにする」の例を引き続き使用すると、ブロック５０２でユーザデバイス１０２がオーディオ入力を受け取ったときのユーザデバイス１０２の場所及び向きが、ブロック５０４及び５０６でサーバシステム１１０へと提供されてもよい。このコンテキスト情報は、ユーザ発語を受信したときのユーザデバイス１０２の場所及び／又はユーザデバイス１０２が向けられていた方向を特定するために使用されてもよい。データ及びモデル記憶装置１２０内に記憶されている「居間ランプ１」及び「居間ランプ２」の既知の場所と比較したときに最も近い照明又はユーザデバイス１０２が指していた照明が、電子デバイスとしてブロック５１０で選択されてもよい。ブロック５１０では、一致する可能性がある電子デバイス間の曖昧さをなくすために、他の種類のコンテキスト情報が類似した方法で使用されてもよく、この曖昧さをなくすことは、一致する可能性がある電子デバイスのうちの１つ以上がユーザ発語のテキスト表現によって参照される可能性を上昇又は低下させるコンテキスト情報を特定することによって行う。
【００５８】
更に他の実施例では、一致する可能性がある電子デバイス間の曖昧さをなくすために、又は適切な電子デバイスを特定するために、ユーザ入力のテキスト表現内の状態に関連付けられた語が、追加で又は代替として使用されてもよい。例えば、「６８にする」を含むテキスト表現は、上述の１組の名詞を使用したときに、いかなる一致も発生させない場合がある。このため、これらの実施例では、ブロック５１０は、システム１００によってサポートされる電子デバイスに対応する状態に関連付けられた１組の語のうちのいずれかを特定するために、テキスト表現を解析することを更に含んでもよい。例えば、状態に関連付けられた１組の語は、電子デバイスのあり得る状態及びそれらの同義語（例えば、開、閉、閉じる、閉める、オン、オフ、アクティブ、非アクティブ、施錠する、施錠、色等）、状態の値の種類（例えば、２値、浮動小数点数等）、デバイスの状態に関するクエリ、状態の特定の種類に関連付けられた形容詞（例えば、より暖かい、より涼しい、より明るい、より暗い、色等）等を含んでもよい。「６８にする」を解析するために使用されたとき、テキスト表現は浮動小数点数値「６８」を含むと判定されてもよい。図４に示すエントリと比較したときに、「２階サーモスタット」及び「１階サーモスタット」のみが状態の浮動小数点数値を受け入れると判定されてもよい。２つのサーモスタット間の曖昧さをなくすために、ユーザデバイス１０２の場所等のコンテキスト情報を使用して、よりユーザデバイス１０２に近いサーモスタットが、ブロック５１０で特定された電子デバイスとして選択されてもよい。同様に、テキスト表現が代わりに「より明るくする」を含んでいた場合、状態に関連付けられた１組の語を使用して、テキスト表現が、種類「照明」を有するデバイスの状態を説明する形容詞である語「より明るい」を含むかどうかを判定してもよい。２つの照明間の曖昧さをなくすために、ユーザデバイス１０２の場所等のコンテキスト情報を使用して、よりユーザデバイス１０２に近い照明が、ブロック５１０で特定された電子デバイスとして選択されてもよい。
【００５９】
ブロック５１２では、ブロック５１０で特定された１つ以上の電子デバイスのそれぞれによって実行されるコマンドが特定されてもよい。実行されるコマンド（単数又は複数）は、任意の数の方法で特定されてもよい。いくつかの実施例では、実行されるコマンド（単数又は複数）は、ユーザ発語のテキスト表現を解析して、状態に関連付けられた１組の語（例えば、電子デバイスのあり得る状態及びそれらの同義語、状態の値の種類、デバイスの状態に関するクエリ、状態の特定の種類に関連付けられた形容詞）のうちのいずれかを特定することによって特定されてもよい。その後、特定された状態又は動作が、ブロック５１０で特定された１つ以上の電子デバイスのそれぞれによって実行されるコマンドを特定するために使用されてもよい。例えば、ユーザ発語のテキスト表現が「玄関を施錠する」を含む場合、テキスト表現が１組の状態からの状態「施錠」を含むと判定されてもよい。したがって、ブロック５１２では、「施錠」状態へと遷移するコマンドが、ブロック５１０で特定された電子デバイス「玄関」によって実行されるコマンドとして生成及び特定されてもよい。上記の実施例では単一の電子デバイスに対する単一のコマンドが特定されるが、複数の電子デバイスがブロック５１０で特定された場合、複数のコマンドが特定されてもよいことを理解されたい。例えば、テキスト表現「全ての照明をオンにする」により、ブロック５１２で、「居間ランプ１」及び「居間ランプ２」のそれぞれが「オン」状態へと遷移するコマンドが特定されてもよい。
【００６０】
いくつかの実施例では、ユーザ発語のテキスト表現が、状態の特定の種類に関連付けられた形容詞（例えば、より暖かい、より涼しい、より明るい、より暗い等）のうちの１つを含む場合、ブロック５１２は、ブロック５１０で特定された電子デバイスの状態を、その現在の値に対する相対的な値へと設定するコマンドを特定することを含んでもよい。例えば、テキスト表現が「より暖かくする」を含む場合、ブロック５１４で特定されるコマンドは、ブロック５１０で特定されたサーモスタットの温度を所定の量だけ上昇させるコマンドであってもよい。電子デバイスの実際の状態は、データ及びモデル記憶装置１２０内に記憶されている状態と異なる場合があるため、コマンドは、状態値を特定の（例えば、データ及びモデル記憶装置１２０内に記憶されているサーモスタットの状態を使用して特定された）値へと遷移させるコマンドではなく、状態値を電子デバイスの現在の値に対する相対的な量だけ変更するコマンドであってもよい。
【００６１】
いくつかの実施例では、ユーザ発語のテキスト表現がデバイスの状態に関するクエリを含む場合、ブロック５１２は、特定された電子デバイス（単数又は複数）に対するクエリをユーザデバイス１０２に実行させる命令を特定することを含んでもよい。例えば、テキスト表現が「ガレージドアは閉まっている？」を含む場合、ブロック５１４で特定されるコマンドは、電子デバイス「ガレージドア」の状態に関するクエリを実行するコマンドであってもよい。
【００６２】
ブロック５１４では、ブロック５１０で特定された１つ以上の電子デバイスのそれぞれの識別子、及びブロック５１２で特定された、１つ以上の電子デバイスによって実行されるコマンド（単数又は複数）がユーザデバイスへと送信されてもよい。例えば、サーバシステム１１０は、ブロック５１０で特定された電子デバイスのそれぞれに関連付けられた一意識別子、及び１つ以上の電子デバイスによって実行されるコマンド（単数又は複数）を、ネットワーク（単数又は複数）１０８を介してユーザデバイス１０２へと送信してもよい。
【００６３】
いくつかの実施例では、ブロック５０８で生成されたユーザ発語のテキスト表現もまた、ブロック５１４でユーザデバイスへと送信されてもよい。これらの実施例では、ブロック５１０及び５１４もまた、ユーザデバイス上で実行されてもよい。送信されたテキスト表現は、１つ以上の電子デバイスを特定するために、かつ／又は電子デバイスデータ３７０内の１つ以上の電子デバイスによって実行されるコマンド（単数又は複数）を特定するために、ユーザデバイスによって使用されてもよい。これが望まれ得るのは、例えば、ユーザデバイス内の電子デバイスデータ３７０が１つ以上のサーバ上のデータよりも新しい場合である。そのような場合、ユーザデバイスは、１つ以上のサーバのデータに含まれていない電子デバイス及び／又はコマンドを特定してもよい。
【００６４】
他の実施例では、ブロック５１０及び／又は５１２で、電子デバイスのうちの１つ以上を特定すること及び／又は１つ以上の電子デバイスによって実行されるコマンド（単数又は複数）を特定することに好適であり得る重要な語又は用語を特定するために、１つ以上のサーバでテキスト表現が解析されてもよい。これらの実施例では、解析された重要な語又は用語もまた、ブロック５１４でユーザデバイスへと送信されてもよい。送信された重要な語又は用語は、１つ以上の電子デバイスを特定するために、かつ／又は電子デバイスデータ３７０内の１つ以上の電子デバイスによって実行されるコマンド（単数又は複数）を特定するために、ユーザデバイスによって使用されてもよい。これが望まれ得るのは、例えば、ユーザデバイス内の電子デバイスデータ３７０が１つ以上のサーバ上のデータよりも新しい場合である。そのような場合、ユーザデバイスは、１つ以上のサーバのデータに含まれていない電子デバイス及び／又はコマンドを特定してもよい。
【００６５】
ブロック５１６では、１つ以上のサーバによって送信された１つ以上の電子デバイスのそれぞれの識別子及びコマンド（単数又は複数）がユーザデバイスによって受信されてもよい。例えば、ユーザデバイス１０２が、ブロック５１４でサーバシステム１１０によって送信された一意識別子（単数又は複数）及びコマンド（単数又は複数）を、ネットワーク（単数又は複数）１０８を介して受信してもよい。
【００６６】
ブロック５１８では、ユーザデバイスが、ブロック５１６で受信したコマンド（単数又は複数）を、ブロック５１６で受信した識別子（単数又は複数）に関連付けられた電子デバイス（単数又は複数）へと送信してもよい。例えば、ユーザデバイス１０２がブロック５１６で、電子デバイス１２８（例えば、「玄関」）に関連付けられた識別子、及び電子デバイスを「施錠」状態へと遷移させるコマンドを受信した場合、ユーザデバイス１０２は、「施錠」状態へと遷移させるコマンドを、ネットワーク（単数又は複数）１２６を介して電子デバイス１２８へと送信してもよい。ユーザデバイス１０２がブロック５１６で追加の識別子及びコマンドを受信した場合、ユーザデバイス１０２は、それらのコマンドをブロック５１８で特定された電子デバイスへと更に送信してもよい。
【００６７】
いくつかの実施例では、電子デバイスの実際の状態は、ユーザデバイス１０２（例えば、メモリ３５０内）及び／又はサーバシステム１１０（例えば、データ及びモデル記憶装置１２０内）に記憶されているような電子デバイスの状態と同じでなくてもよい。例えば、ドアの鍵が、システム１００の仮想アシスタントを使用せずに手動で開閉されていてもよい。このため、いくつかの実施例では、ブロック５１８は、ユーザデバイス１０２及び／又はサーバシステム１１０内に記憶されているような電子デバイスの状態に関係なく実行されてもよい。例えば、ユーザデバイス１０２及び／又はサーバシステム１１０内の対応するエントリが、ドアが既に施錠されていることを示す場合でも、そのドアの鍵の状態を「施錠」に設定するコマンドがドアの鍵へと送信されてもよい。更に、ブロック５１８は、電子デバイスへとコマンドを発行するために必要な時間を短縮するために、最初に電子デバイスに対するクエリを（例えば、ブロック５１６とブロック５１８との間に）実行してその実際の状態を特定することなく実行されてもよい。例えば、ドアの鍵の状態を「施錠」に設定するコマンドが、最初にその状態に関するクエリを実行することなくドアの鍵へと送信されてもよく、これによって、コマンドをドアの鍵へと送信するのに必要な時間が、クエリをドアの鍵へと送信し、状態をドアの鍵から受信するのに必要な時間に相当する量だけ短縮される。
【００６８】
ブロック５２０では、各電子デバイスがそれらのそれぞれのコマンドを実行した後、ユーザデバイスが、（ブロック５１８でコマンドが送信された）各電子デバイスの現在の状態を受信してもよい。例えば、ユーザデバイス１０２が電子デバイス１２８の状態を「施錠」に設定するコマンドを実行した後に、ユーザデバイス１０２が電子デバイス１２８の更新された状態を受信してもよい。この実施例では、ユーザデバイス１０２に返される現在の状態は、状態「施錠」であってもよい。ブロック５１８でコマンドが２つ以上の電子デバイスに送信された場合、ブロック５２０は、現在の状態をそれらの電子デバイスから受信することを更に含んでもよい。いくつかの実施例では、ブロック５２０は、受信した現在の状態に基づき、電子デバイスデータ３７０内の電子デバイスの状態を更新することを更に含んでもよい。例えば、ユーザデバイス１０２が、電子デバイスデータ３７０内の電子デバイス１２８の状態を「施錠」へと更新してもよい。いくつかの実施例では、ブロック５２０は、送信されたコマンド（単数又は複数）及び受信した電子デバイス（単数又は複数）の現在の状態（単数又は複数）に基づき、ブロック５１８で電子デバイス（単数又は複数）へと送信されたコマンド（単数又は複数）の結果のオーディオ又は視覚指示を出力することを更に含んでもよい。例えば、電子デバイス１２８へと送信されたコマンドがデバイスの状態を「施錠」へと遷移させるコマンドであり、ブロック５２０で受信した電子デバイス１２８の現在の状態が「施錠」であった場合、結果の指示は、電子デバイス１２８が「施錠」状態へと正常に遷移したことであってもよい。代替として、受信した電子デバイスの現在の状態（例えば、「未施錠」）が、コマンド内に示された所望の状態（例えば、「施錠」）と異なる場合、「施錠」状態への遷移に失敗したことの指示がユーザへと提供されてもよい。現在の状態は、デバイスの未特定又は使用不可能状態等のエラー状態を更に含んでもよい。
【００６９】
ブロック５２２では、ユーザデバイスが、ブロック５２０で受信した電子デバイス（単数又は複数）の現在の状態（単数又は複数）を１つ以上のサーバへと送信してもよい。例えば、ユーザデバイス１０２が、ブロック５２０で受信した電子デバイスの現在の状態をサーバシステム１１０へと送信してもよい。ブロック５２０で２つ以上の電子デバイスの現在の状態が受信された場合、ブロック５２２は、それらの現在の状態をサーバシステム１１０へと送信することを更に含んでもよい。
【００７０】
ブロック５２４では、１つ以上のサーバが、ブロック５２２でユーザデバイスによって送信された電子デバイス（単数又は複数）の現在の状態（単数又は複数）を受信してもよい。例えば、サーバシステム１１０が、ブロック５２２でユーザデバイス１０２によって送信された電子デバイスの現在の状態を受信してもよい。ユーザデバイス１０２が２つ以上の現在の状態を送信した場合、ブロック５２４は、それらの現在の状態も受信することを更に含んでもよい。いくつかの実施例では、ブロック５２４は、受信した現在の状態（単数又は複数）に基づき、データ及びモデル記憶装置１２０内の電子デバイス（単数又は複数）の状態（単数又は複数）を更新することを更に含んでもよい。例えば、サーバシステム１１０が、データ及びモデル記憶装置１２０内の電子デバイス１２８の状態を「施錠」へと更新してもよい。
【００７１】
いくつかの実施例では、処理５００は、所定の条件が満たされたと判定したことに応じて、電子デバイスのうちの１つ以上の現在の状態に関連付けられた通知を生成することを更に含んでもよい。例えば、電子デバイスのうちの１つ以上が所定の状態である（例えば、「玄関」が未施錠である）一方で、ユーザデバイス１０２の場所が所定の領域（例えば、ユーザの家に対応する領域）から出たことに応じて、ユーザがそれらのドアを施錠し忘れたことを示す通知が、ユーザデバイス１０２を介してユーザへと提供されてもよい。他の所定の条件に応じて、他の類似した通知が生成されてもよい。
【００７２】
ユーザデバイスによって実装された仮想アシスタントは、処理５００を使用して、状態を設定するか又は任意の数の電子デバイスに対するクエリを実行する自然言語コマンドを受信してもよい。自然言語コマンドは、任意の所望の様式で電子デバイスに照会することができ、電子デバイスの一意識別子又は電子デバイスの種類を含める必要がない。
電子デバイスの遠隔制御
【００７３】
図６は、仮想アシスタントを使用して遠隔で電子デバイスを制御する例示的な処理６００を示す。いくつかの実施例では、処理６００は、図２に示すシステム２００に類似するか又は同一のシステムを使用して処理６００が実行され得ることを除いて、処理５００に類似してもよい。例えば、処理６００は、制御されている電子デバイス（例えば、電子デバイス１２８、１３０、及び１３２）から離れて配置されたユーザデバイス（例えば、ユーザデバイス１０２）によって実行されてもよく、電子デバイスを制御するために、代わりに第２のユーザデバイス（例えば、第２のユーザデバイス１３４）が使用されてもよい。したがって、処理６００の各部分は、ユーザデバイス１０２、サーバシステム１１０、及び第２のユーザデバイス１３４のそれぞれによって実行されてもよい。具体的には、図６の左側のブロックがユーザデバイス１０２によって実行されてもよく、図６の中央のブロックがサーバシステム１１０によって実行されてもよく、図６の右側のブロックが第２のユーザデバイス１３４によって実行されてもよい。
【００７４】
処理６００のブロックは、処理６００のブロック５１６、５１８、５２０、及び５２２が、代わりに第２のユーザデバイス（例えば、第２のユーザデバイス１３４）によって実行され得ることを除き、処理５００の同一番号のブロックと類似するか又は同一であってもよい。更に、その結果、ブロック５１４では、１つ以上の電子デバイスのそれぞれの識別子、及び電子デバイス（単数又は複数）によって実行されるコマンド（単数又は複数）が、代わりに第２のユーザデバイスへと送信されてもよく、ブロック５２４では、電子デバイス（単数又は複数）の現在の状態（単数又は複数）が、代わりに第２のユーザデバイスから受信されてもよい。
【００７５】
いくつかの実施例では、処理６００は、ブロック５２４で受信した電子デバイス（単数又は複数）の現在の状態（単数又は複数）を、ブロック５０２でオーディオ入力を受け取ったユーザデバイスへと１つ以上のサーバによって送信することを更に含んでもよい。追加で又は代替として、処理は、ブロック５１８で電子デバイスへと送信されたコマンドの成功の指示を送信することを含んでもよい。例えば、電子デバイスによるコマンドの実行の成功、部分的な成功、又は失敗をユーザに通知する視覚又はオーディオ出力が生成されてもよい。成功の判定は、電子デバイスへと送信されたコマンド、及びブロック５２４で受信したデバイスの現在の状態に依存してもよい。
電子デバイスのスタンドアロン制御
【００７６】
図７は、仮想アシスタントを使用して電子デバイスを制御する例示的な処理７００を示す。いくつかの実施例では、処理７００は、ユーザデバイス１０２及びサーバシステム１１０の両方の機能を実行し得るスタンドアロンユーザデバイスを使用して処理７００が実行され得ることを除き、処理５００に類似してもよい。その結果、処理７００の全てのブロックがユーザデバイス（例えば、ユーザデバイス１０２）によって実行されてもよい。
【００７７】
処理７００のブロックは、ブロック５０８、５１０、及び５１２が代わりにユーザデバイス（例えば、ユーザデバイス１０２）によって実行され得ることを除き、処理５００の同一番号のブロックと類似するか又は同一であってもよい。更に、その結果、ユーザデバイス１０２とサーバシステム１１０との間で通信する機能に対応するブロック（例えば、ブロック５０４、５０６、５１４、５１６、５２２、及び５２４）を実行する必要がなくなる。
電子デバイスの構成の記憶
【００７８】
図８は、仮想アシスタントを使用して、複数の電子デバイスの状態を構成として記憶する例示的な処理８００を示す。構成は、複数の電子デバイスを構成内で定義された状態へと移行させるための発語ユーザ入力内で参照され得る、複数の電子デバイスの記憶された１組の状態を表してもよい。例えば、ユーザは、全ての照明の状態がオフに設定され、サーモスタットの状態が７２°Ｆに設定され、全てのドアの状態が施錠に設定され、ガレージドアの状態が閉に設定される、「睡眠」構成を作成してもよい。したがって、ユーザが就寝するとき、ユーザは、記憶された構成を参照する「就寝する」等のコマンドをユーザデバイス１０２に提供し、システム１００は、睡眠構成内の記憶された状態に基づき電子デバイスの状態を設定してもよい。いくつかの実施例では、処理８００は、図１に示すシステム１００に類似するか又は同一のシステムを使用して実行されてもよい。これらの実施例では、処理８００のブロックは、ユーザデバイス１０２及びサーバシステム１１０の両方によって実行されてもよい。具体的には、図８の左側のブロックはユーザデバイス１０２によって実行されてもよく、右側のブロックはサーバシステム１１０によって実行されてもよい。
【００７９】
ブロック８０２では、ユーザデバイスで、ユーザ発語を含むオーディオ入力が処理５００のブロック５０２と類似するか又は同一の様式で受信されてもよい。ブロック８０４では、ブロック８０２で受信したオーディオ入力に対応するデータが、処理５００のブロック５０４と類似するか又は同一の様式で、処理のために１つ以上のサーバへと送信されてもよい。
【００８０】
ブロック８０６では、ブロック８０４でユーザデバイスによって送信されたオーディオ入力に対応するデータが、処理５００のブロック５０６と類似するか又は同一の様式で１つ以上のサーバによって受信されてもよい。ブロック８０８では、ユーザ発語をユーザ発語のテキスト表現へと変換するために、オーディオ入力に対応するデータに対する発語テキスト化変換が、処理５００のブロック５０８と類似するか又は同一の様式で実行されてもよい。
【００８１】
ブロック８１０では、ユーザ発語のテキスト表現が、システム１００の電子デバイスの状態を構成として記憶するユーザ意図を表すと判定されてもよい。例えば、サーバシステム１１０の１つ以上の処理モジュール１１８は、自然言語入力に基づきユーザの意図を特定するために、データ及びモデル記憶装置１２０を利用してもよい。いくつかの実施例では、これは、「保存する」、「記憶する」、「名前」、「保持する」、「構成」、「シーン」、それらの同義語等の、構成を記憶することに関連する可能性がある語に関してテキスト表現を解析することを含んでもよい。例えば、テキスト表現が「この構成を睡眠として記憶する」を含む場合、ブロック８１０では、ユーザが電子デバイスの状態を「睡眠」という名前の構成として記憶することを意図していると判定されてもよい。「このシーンを仕事として保存する」等の他のテキスト表現により、ブロック８１０で、ユーザが電子デバイスの状態を「仕事」という名前の構成として記憶することを意図していると判定されてもよい。
【００８２】
ブロック８１２では、ユーザ発語のテキスト表現が、システム１００の電子デバイスの状態を構成として記憶するユーザ意図を表すと判定したことに応じて、１つ以上のサーバが、電子デバイスの状態に関するクエリを実行する命令をユーザデバイスへと送信してもよい。例えば、サーバシステム１１０は、電子デバイス１２８、１３０、及び１３２の状態に関するクエリを実行する命令を、ネットワーク（単数又は複数）１０８を介してユーザデバイス１０２へと送信してもよい。
【００８３】
ブロック８１４では、１つ以上のサーバによって送信された電子デバイスの状態に関するクエリを実行する命令が、ユーザデバイスによって受信されてもよい。例えば、ユーザデバイス１０２が、電子デバイス１２８、１３０、及び１３２の状態に関するクエリを実行する命令を、ネットワーク（単数又は複数）１０８を介してサーバシステム１１０から受信してもよい。
【００８４】
ブロック８１６では、ユーザデバイスが、電子デバイスのそれぞれへと、それらの現在の状態に関するクエリを送信してもよい。例えば、ユーザデバイス１０２は、電子デバイス１２８、１３０、及び１３２のそれぞれへと、それらの現在の状態を返すよう命令するコマンドを、ネットワーク（単数又は複数）１２６を介して送信してもよい。
【００８５】
ブロック８１８では、ユーザデバイスが、ブロック５１６で送信されたクエリに応じて、電子デバイス（単数又は複数）のそれぞれの現在の状態（又は現在の状態を送信することができる全ての電子デバイスの現在の状態）を受信してもよい。例えば、ユーザデバイス１０２が、ブロック８１６でデバイスのそれぞれへと送信されたクエリに応じて、電子デバイス１２８、１３０、及び１３２の現在の状態を、ネットワーク（単数又は複数）１２６を介して受信してもよい。いくつかの実施例では、ブロック８１８は、受信した現在の状態に基づき、電子デバイスデータ３７０内の電子デバイスの状態を更新することを更に含んでもよい。現在の状態は、デバイスの未特定又は使用不可能状態等のエラー状態を更に含んでもよい。
【００８６】
ブロック８２０では、ユーザデバイスが、ブロック８１８で受信した電子デバイスの現在の状態を１つ以上のサーバへと送信してもよい。例えば、ユーザデバイス１０２が、ブロック８１８で受信した電子デバイスの現在の状態をサーバシステム１１０へと送信してもよい。
【００８７】
ブロック８２２では、１つ以上のサーバが、ブロック８２０でユーザデバイスによって送信された電子デバイスの現在の状態を受信してもよい。例えば、サーバシステム１１０が、電子デバイス１２８、１３０、及び１３２の現在の状態を、ネットワーク（単数又は複数）１２６を介してユーザデバイス１０２から受信してもよい。
【００８８】
ブロック８２４では、１つ以上のサーバが、ブロック８２２で受信した電子デバイスの現在の状態を構成として記憶してもよい。いくつかの実施例では、テキスト表現で提供され、かつブロック８１０で特定された名前に基づく、「睡眠」、「朝」、「仕事」等の一意識別子が構成に割り当てられてもよい。例えば、サーバシステム１１０が、ブロック８０２で「この構成に睡眠という名前を付ける」を含むユーザ発語が受信されたことに応じて、電子デバイス１２８、１３０、及び１３２の現在の状態を、「睡眠」構成としてモデル及びデータ記憶装置１２０内に記憶してもよい。
記憶された構成を使用した電子デバイスの制御
【００８９】
図９は、仮想アシスタントを使用し、以前に記憶された（例えば、処理８００を使用して作成された）構成を使用して複数の電子デバイスの状態を設定する例示的な処理９００を示す。いくつかの実施例では、処理９００は、図１に示すシステム１００に類似するか又は同一のシステムを使用して実行されてもよい。これらの実施例では、処理９００のブロックは、ユーザデバイス１０２及びサーバシステム１１０の両方によって実行されてもよい。具体的には、図９の左側のブロックはユーザデバイス１０２によって実行されてもよく、右側のブロックはサーバシステム１１０によって実行されてもよい。
【００９０】
ブロック９０２では、ユーザデバイスで、ユーザ発語を含むオーディオ入力が処理５００のブロック５０２と類似するか又は同一の様式で受信されてもよい。ブロック９０４では、ブロック９０２で受信したオーディオ入力に対応するデータが、処理５００のブロック５０４と類似するか又は同一の様式で、処理のために１つ以上のサーバへと送信されてもよい。
【００９１】
ブロック９０６では、ブロック９０４でユーザデバイスによって送信されたオーディオ入力に対応するデータが、処理５００のブロック５０６と類似するか又は同一の様式で１つ以上のサーバによって受信されてもよい。ブロック９０８では、ユーザ発語をユーザ発語のテキスト表現へと変換するために、オーディオ入力のユーザ発語に対する発語テキスト化変換が、処理５００のブロック５０８と類似するか又は同一の様式で実行されてもよい。
【００９２】
ブロック９１０では、記憶された構成に基づき、ユーザ発語のテキスト表現が、システム１００の電子デバイスの状態を設定するユーザ意図を表すと判定されてもよい。例えば、サーバシステム１１０の１つ以上の処理モジュール１１８は、自然言語入力に基づきユーザの意図を特定するために、データ及びモデル記憶装置１２０を利用してもよい。いくつかの実施例では、これは、記憶された構成に関連付けられた、「設定する」、「構成」、「シーン」、それらの同義語等の一意識別子等の、記憶された構成を使用することに関連する可能性がある語に関してテキスト表現を解析することを含んでもよい。例えば、テキスト表現が「就寝する」を含む場合、ブロック９１０では、ユーザが「睡眠」構成に基づき電子デバイスの状態を設定することを意図していると判定されてもよい。同様に、「夜間モード」、「睡眠に設定する」等の他のテキスト表現により、ブロック９１０で、ユーザが「睡眠」構成に基づき電子デバイスの状態を設定することを意図していると判定されてもよい。
【００９３】
ブロック９１２では、ブロック９１０で特定された構成に基づきシステム１００の電子デバイスの状態を設定するコマンドが、１つ以上のサーバによってユーザデバイスへと送信されてもよい。各コマンドを実行するデバイスを特定するために、コマンドに関連付けられた識別子が送信されてもよい。例えば、サーバシステム１１０が、電子デバイスに関連付けられた一意識別子、及び、それらの電子デバイスによって実行されるコマンドを送信し、電子デバイスを記憶された構成によって指定された状態にしてもよい。
【００９４】
ブロック９１４では、サーバ（単数又は複数）によって送信された、システム１００の電子デバイスの状態を設定するコマンドが、ユーザデバイスによって受信されてもよい。例えば、ユーザデバイス１０２が、ブロック９１２でサーバシステム１１０によって送信されたコマンドを、ネットワーク（単数又は複数）１０８を介して受信してもよい。
【００９５】
ブロック９１６では、ユーザデバイスが、ブロック９１４で受信したコマンドを、コマンドに関連付けられた電子デバイスへと送信してもよい。例えば、ユーザデバイス１０２が、コマンドをネットワーク（単数又は複数）１２６を介して電子デバイス１２８、１３０、及び１３２へと送信し、電子デバイスを記憶された構成によって指定された状態にしてもよい。
【００９６】
いくつかの実施例では、電子デバイスの実際の状態は、ユーザデバイス１０２（例えば、メモリ３５０内）及び／又はサーバシステム１１０（例えば、データ及びモデル記憶装置１２０内）に記憶されているような電子デバイスの状態と同じでなくてもよい。このため、いくつかの実施例では、処理５００と同様、電子デバイスへとコマンドを発行するのに必要な時間を短縮するために、ユーザデバイス１０２及び／又はサーバシステム１１０内に記憶されているような電子デバイスの状態にかかわらず、最初に電子デバイスに対するクエリを（例えば、ブロック９１４とブロック９１６との間に）実行してそれらの実際の状態を特定することなく、ブロック９１６が実行されてもよい。
【００９７】
ブロック９１８では、電子デバイスがブロック９１６でユーザデバイスによって送信されたコマンドを実行した後、ユーザデバイスが電子デバイスの更新された状態を受信してもよい。例えば、電子デバイス１２８、１３０、及び１３２が、それらの状態を記憶された構成によって指定された状態にするコマンドを実行した後に、ユーザデバイス１０２がそれらの電子デバイスの更新された状態を受信してもよい。いくつかの実施例では、ブロック９２０は、受信した現在の状態に基づき、電子デバイスデータ３７０内の電子デバイスの状態を更新することを更に含んでもよい。例えば、ユーザデバイス１０２が、電子デバイスデータ３７０内の電子デバイス１２８の状態を「施錠」へと更新してもよい。いくつかの実施例では、ブロック５２０と同様に、ブロック９１８は、送信されたコマンド（単数又は複数）及び受信した電子デバイス（単数又は複数）の現在の状態（単数又は複数）に基づき、ブロック９１６で電子デバイス（単数又は複数）へと送信されたコマンド（単数又は複数）の結果のオーディオ又は視覚指示を出力することを更に含んでもよい。更新された状態は、デバイスの未特定又は使用不可能状態等のエラー状態を更に含んでもよい。
【００９８】
ブロック９２０では、ユーザデバイスが、ブロック９１８で受信した電子デバイスの更新された状態を１つ以上のサーバへと送信してもよい。例えば、ユーザデバイス１０２が、ブロック９１８で受信した電子デバイスの更新された状態をサーバシステム１１０へと送信してもよい。
【００９９】
ブロック９２２では、１つ以上のサーバが、ブロック９２０でユーザデバイスによって送信された電子デバイスの更新された状態を受信してもよい。例えば、サーバシステム１１０が、ブロック９２０でユーザデバイス１０２によって送信された電子デバイスの更新された状態を受信してもよい。いくつかの実施例では、ブロック９２２は、受信した更新された状態に基づき、データ及びモデル記憶装置１２０内の電子デバイスの状態を更新することを更に含んでもよい。
【０１００】
いくつかの実施例では、追加で又は代替として、所定の条件が満たされたと判定したことに応じて、電子デバイスの状態が記憶された構成を使用して構成されてもよい。例えば、ユーザデバイス１０２の場所が所定の領域（例えば、ユーザの家に対応する領域）へと入ったことに応じて、記憶された構成（例えば、「家」構成）によって指定された状態へと遷移させるコマンドが電子デバイスへと送信されてもよい。同様に、ユーザデバイス１０２の場所が所定の時間枠の間（例えば、平日の午前８時〜９時の間）に所定の領域（例えば、ユーザの家に対応する領域）から出たことに応じて、別の記憶された構成（例えば、「仕事」構成）によって指定された状態へと遷移させるコマンドが電子デバイスへと送信されてもよい。システム１００に、電子デバイスを記憶された構成に基づき構成させるために、他の類似した所定の条件が作成されてもよい。
電子デバイス
【０１０１】
いくつかの実施例によれば、図１０は、説明される様々な実施形態の原理に従って構成された、電子デバイス１０００の機能ブロック図を示す。デバイスの機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実装されてもよい。図１０で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、組み合わされ、又はサブブロックに分離され得ることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に、支持する。
【０１０２】
図１０に示すように、電子デバイス１０００は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット１００２、及び音声入力を受け取るように構成される音声受信ユニット１００４を含んでもよい。いくつかの実施例では、電子デバイス１０００は、音声を発生するように構成されるスピーカユニット１００６を含んでもよい。電子デバイス１０００は、タッチスクリーンディスプレイユニット１００２及び音声受信ユニット１００４に結合される（及びスピーカユニット１００６に任意選択的に結合される）処理ユニット１００８を更に含んでもよい。いくつかの実施例では、処理ユニット１００８は、オーディオ入力受信ユニット１０１０、オーディオ入力送信ユニット１０１２、識別子及びコマンド受信ユニット１０１４、識別子及びコマンド送信ユニット１０１６、状態受信ユニット１０１８、状態送信ユニット１０２０、状態更新ユニット１０２２、指示出力ユニット１０２４、第２の識別子及びコマンド受信ユニット１０２６、第２の識別子及びコマンド送信ユニット１０２８、第２の状態受信ユニット１０３０、第２の状態送信ユニット１０３２、並びに通知送信ユニット１０３４を含んでもよい。
【０１０３】
処理ユニット１００８は、ユーザ発語を含むオーディオ入力を（例えば、オーディオ入力受信ユニット１０１０を使用して）受け取るように構成されてもよい。処理ユニット１００８は、オーディオ入力に対応するデータを１つ以上のサーバへと（例えば、オーディオ入力送信ユニット１０１２を使用して）送信するように更に構成されてもよい。処理ユニット１００８は、オーディオ入力に対応するデータに基づき１つ以上のサーバによって特定された第１の電子デバイスの識別子、及びオーディオ入力に対応するデータに基づき１つ以上のサーバによって特定された第１の電子デバイスによって実行される第１のコマンドを１つ以上のサーバから（例えば、識別子及びコマンド受信ユニット１０１４を使用して）受信するように更に構成されてもよい。第１のコマンドは第１の電子デバイスへと（例えば、識別子及びコマンド送信ユニット１０１６を使用して）送信されてもよい。第１のコマンドを第１の電子デバイスへと送信した後、第１の電子デバイスの現在の状態が第１の電子デバイスから（例えば、状態受信ユニット１０１８を使用して）受信されてもよい。第１の電子デバイスの現在の状態は１つ以上のサーバへと（例えば、状態送信ユニット１０２０を使用して）送信されてもよい。
【０１０４】
いくつかの実施例では、第１の電子デバイスは電球を含む。他の実施例では、第１のコマンドは、照明のオン／オフ状態、明暗調整可能状態、又は色状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、電球のオン／オフ状態、明暗調整可能状態、又は色状態を設定する第１のコマンドを送信した後の電球のオン／オフ状態、明暗調整可能状態、又は色状態を含む。
【０１０５】
いくつかの実施例では、第１の電子デバイスはスイッチを含む。他の実施例では、第１のコマンドは、スイッチのオン／オフ状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、スイッチのオン／オフ状態を設定する第１のコマンドを送信した後のスイッチのオン／オフ状態を含む。
【０１０６】
いくつかの実施例では、第１の電子デバイスは電気コンセントを含む。他の実施例では、第１のコマンドは、電気コンセントのアクティブ／非アクティブ状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、電気コンセントのアクティブ／非アクティブ状態を設定するコマンドを送信した後の電気コンセントのアクティブ／非アクティブ状態を含む。
【０１０７】
いくつかの実施例では、第１の電子デバイスはドアの鍵を含む。他の実施例では、第１のコマンドは、ドアの鍵の施錠／非施錠状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、ドアの鍵の施錠／非施錠状態を設定するコマンドを送信した後のドアの鍵の施錠／非施錠状態を含む。
【０１０８】
いくつかの実施例では、第１の電子デバイスはガレージドアを含む。他の実施例では、第１のコマンドは、ガレージドアの開／閉状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、ガレージドアの開／閉状態を設定するコマンドを送信した後のガレージドアの開／閉状態を含む。
【０１０９】
いくつかの実施例では、第１の電子デバイスはサーモスタットを含む。他の実施例では、第１のコマンドは、サーモスタットの温度設定の数値を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、サーモスタットの温度設定の数値を設定する第１のコマンドを送信した後のサーモスタットの温度設定の数値を含む。
【０１１０】
いくつかの実施例では、第１のコマンドは、第１の電子デバイスの現在の状態に関するクエリを含む。
【０１１１】
いくつかの実施例では、第１のコマンドは、ローカル無線ネットワークを介して第１の電子デバイスへと（例えば、識別子及びコマンド送信ユニット１０１６を使用して）送信されてもよい。
【０１１２】
いくつかの実施例では、第１のコマンドは、Ｂｌｕｅｔｏｏｔｈ、見通し線、ピアツーピア、又はＷｉＦｉ通信によって、直接第１の電子デバイスへと送信されてもよい。
【０１１３】
いくつかの実施例では、処理ユニット１００８は、１つ以上のサーバから第１のコマンドを受信することと第１のコマンドを第１の電子デバイスへと送信することとの間に第１の電子デバイスに対して第１の電子デバイスの状態に関するクエリを実行することを除外するように構成されてもよい。
【０１１４】
いくつかの実施例では、電子デバイス１０００は、第１の電子デバイスを含む複数の電子デバイスのそれぞれの状態を記憶するデータベースユニット１０３４を更に含んでもよい。他の実施例では、処理ユニット１００８は、第１の電子デバイスから受信した第１の電子デバイスの現在の状態に少なくとも部分的に基づき、データベースユニット１０３４内に記憶された第１の電子デバイスの状態を（例えば、状態更新ユニット１０２２を使用して）更新するように更に構成されてもよい。
【０１１５】
いくつかの実施例では、処理ユニット１００８は、第１のコマンド及び第１の電子デバイスから受信した第１の電子デバイスの現在の状態に基づく第１のコマンドの結果の指示を（例えば、指示出力ユニット１０２４を使用して）出力するように更に構成されてもよい。
【０１１６】
いくつかの実施例では、電子デバイス１０００は、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含んでもよい。
【０１１７】
いくつかの実施例では、処理ユニット１００８は、オーディオ入力に対応するデータに基づき１つ以上のサーバによって特定された第２の電子デバイスの識別子、及びオーディオ入力に対応するデータに基づき１つ以上のサーバによって特定された第２の電子デバイスによって実行される第２のコマンドを１つ以上のサーバから（例えば、第２の識別子及びコマンド受信ユニット１０２６を使用して）受信するように更に構成されてもよい。処理ユニット１００８は、第２のコマンドを第２の電子デバイスへと（例えば、第２の識別子及びコマンド送信ユニット１０２８を使用して）送信し、第２のコマンドを第２の電子デバイスへと送信した後、第２の電子デバイスの現在の状態を第２の電子デバイスから（例えば、第２の状態受信ユニット１０３０を使用して）受信するように更に構成されてもよい。処理ユニット１００８は、第２の電子デバイスの現在の状態を１つ以上のサーバへと（例えば、第２の状態送信ユニット１０３２を使用して）送信するように更に構成されてもよい。
【０１１８】
いくつかの実施例では、処理ユニット１００８は、所定の条件が満たされたと判定したことに応じて、第１の電子デバイスの現在の状態に関連付けられた通知を（例えば、通知送信ユニット１０３６を使用して）送信するように更に構成されてもよい。
【０１１９】
いくつかの実施例によれば、図１１は、説明される様々な実施形態の原理に従って構成された、電子デバイス１１００の機能ブロック図を示す。デバイスの機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実装されてもよい。図１１で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、組み合わされ、又はサブブロックに分離され得ることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に、支持する。
【０１２０】
図１１に示すように、電子デバイス１１００は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット１１０２、及び音声入力を受け取るように構成される音声受信ユニット１１０４を含んでもよい。いくつかの実施例では、電子デバイス１１００は、音声を発生するように構成されるスピーカユニット１１０６を含んでもよい。電子デバイス１１００は、タッチスクリーンディスプレイユニット１１０２及び音声受信ユニット１１０４に結合される（及びスピーカユニット１１０６に任意選択的に結合される）処理ユニット１１０８を更に含んでもよい。いくつかの実施例では、処理ユニット１１０８は、オーディオ入力受信ユニット１１１０、オーディオ入力送信ユニット１１１２、命令受信ユニット１１１４、クエリ送信ユニット１１１６、状態受信ユニット１１１８、及び状態送信ユニット１１２０を含んでもよい。
【０１２１】
処理ユニット１１０８は、ユーザ発語を含むオーディオ入力を（例えば、オーディオ入力受信ユニット１１１０を使用して）受け取るように構成されてもよい。処理ユニット１１０８は、オーディオ入力に対応するデータを１つ以上のサーバへと（例えば、オーディオ入力送信ユニット１１１２を使用して）送信するように更に構成されてもよい。処理ユニット１１０８は、オーディオ入力に対応するデータに基づき１つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態に関するクエリを実行する命令を、１つ以上のサーバから（例えば、命令受信ユニット１１１４を使用して）受信するように更に構成されてもよい。状態クエリは複数の電子デバイスのそれぞれへと（例えば、クエリ送信ユニット１１１６を使用して）送信されてもよく、複数の電子デバイスのそれぞれの現在の状態が複数の電子デバイスから（例えば、状態受信ユニット１１１８を使用して）受信されてもよい。複数の電子デバイスのそれぞれの現在の状態は、構成として記憶するために１つ以上のサーバへと（例えば、状態送信ユニット１１２０を使用して）送信されてもよい。
【０１２２】
いくつかの実施例によれば、図１２は、説明される様々な実施形態の原理に従って構成された、電子デバイス１２００の機能ブロック図を示す。デバイスの機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実装されてもよい。図１２で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、組み合わされ、又はサブブロックに分離され得ることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に、支持する。
【０１２３】
図１２に示すように、電子デバイス１２００は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット１２０２、及び音声入力を受け取るように構成される音声受信ユニット１２０４を含んでもよい。いくつかの実施例では、電子デバイス１２００は、音声を発生するように構成されるスピーカユニット１２０６を含んでもよい。電子デバイス１２００は、タッチスクリーンディスプレイユニット１２０２及び音声受信ユニット１２０４に結合される（及びスピーカユニット１２０６に任意選択的に結合される）処理ユニット１２０８を更に含んでもよい。いくつかの実施例では、処理ユニット１２０８は、オーディオ入力受信ユニット１２１０、オーディオ入力送信ユニット１２１２、命令受信ユニット１２１４、クエリ送信ユニット１２１６、状態受信ユニット１２１８、及び状態送信ユニット１２２０を含んでもよい。
【０１２４】
いくつかの実施例では、処理ユニット１２０８は、ユーザ発語を含むオーディオ入力を（例えば、オーディオ入力受信ユニット１２１０を使用して）受信し、オーディオ入力に対応するデータを１つ以上のサーバへと（例えば、オーディオ入力送信ユニット１２１２を使用して）送信し、記憶された構成に基づき１つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態を設定する複数のコマンドを１つ以上のサーバから（例えば、コマンド受信ユニット１２１４を使用して）受信するように更に構成されてもよい。処理ユニット１２０８は、複数のコマンドを複数の電子デバイスへと（例えば、コマンド送信ユニット１２１６を使用して）送信するように更に構成されてもよい。処理ユニット１２０８は、複数の電子デバイスのそれぞれの更新された状態を複数の電子デバイスから（例えば、状態受信ユニット１２１８を使用して）受信し、複数の電子デバイスのそれぞれの更新された状態を１つ以上のサーバへと（例えば、状態送信ユニット１２２０を使用して）送信するように更に構成されてもよい。
【０１２５】
図１３に示すように、電子デバイス１３００は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット１３０２、及び音声入力を受け取るように構成される音声受信ユニット１３０４を含んでもよい。いくつかの実施例では、電子デバイス１３００は、音声を発生するように構成されるスピーカユニット１３０６を含んでもよい。電子デバイス１３００は、タッチスクリーンディスプレイユニット１３０２及び音声受信ユニット１３０４に結合される（及びスピーカユニット１３０６に任意選択的に結合される）処理ユニット１３０８を更に含んでもよい。いくつかの実施例では、処理ユニット１３０８は、オーディオ入力受信ユニット１３１０、発語テキスト化変換ユニット１３１２、電子デバイス特定ユニット１３１４、コマンド特定ユニット１３１６、識別子及びコマンド送信ユニット１３１８、状態受信ユニット１３２０、状態更新ユニット１３２２、コンテキスト情報受信ユニット１３２４、指示送信ユニット１３２６、第２の電子デバイス特定ユニット１３２８、第２のコマンド特定ユニット１３３０、第２の識別子及びコマンド送信ユニット１３３２、並びに第２の状態受信ユニット１３３６を含んでもよい。
【０１２６】
処理ユニット１３０８は、ユーザ発語を含むオーディオ入力に対応するデータを（例えば、オーディオ入力受信ユニット１３１０を使用して）受信するように構成されてもよい。処理ユニット１３０８は、ユーザ発語のテキスト表現を生成するために、オーディオ入力に対応するデータに対する発語テキスト化変換を（例えば、発語テキスト化変換ユニット１３１２を使用して）実行するように更に構成されてもよい。処理ユニット１３０８は、ユーザ発語のテキスト表現に基づき第１の電子デバイスを（例えば、電子デバイス特定ユニット１３１４を使用して）特定するように更に構成されてもよい。処理ユニット１３０８は、ユーザ発語のテキスト表現に基づき、第１の電子デバイスによって実行される第１のコマンドを（例えば、コマンド特定ユニット１３１６を使用して）特定するように更に構成されてもよい。処理ユニット１３０８は、第１の電子デバイスの識別子及び第１のコマンドをユーザデバイスへと（例えば、識別子及びコマンド送信ユニット１３１８を使用して）送信するように更に構成されてもよい。処理ユニット１３０８は、第１の電子デバイスの現在の状態を（例えば、状態受信ユニット１３２０を使用して）受信するように更に構成されてもよい。
【０１２７】
いくつかの実施例では、第１の電子デバイスは電球を含む。他の実施例では、第１のコマンドは、照明のオン／オフ状態、明暗調整可能状態、又は色状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、電球のオン／オフ状態、明暗調整可能状態、又は色状態を設定する第１のコマンドを送信した後の電球のオン／オフ状態、明暗調整可能状態、又は色状態を含む。
【０１２８】
いくつかの実施例では、第１の電子デバイスは電気コンセントを含む。他の実施例では、第１のコマンドは、電気コンセントのアクティブ／非アクティブ状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、電気コンセントのアクティブ／非アクティブ状態を設定するコマンドを送信した後の電気コンセントのアクティブ／非アクティブ状態を含む。
【０１２９】
いくつかの実施例では、第１の電子デバイスはスイッチを含む。他の実施例では、第１のコマンドは、スイッチのオン／オフ状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、スイッチのオン／オフ状態を設定するコマンドを送信した後の電気コンセントのオン／オフ状態を含む。
【０１３０】
いくつかの実施例では、第１の電子デバイスはドアの鍵を含む。他の実施例では、第１のコマンドは、ドアの鍵の施錠／非施錠状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、ドアの鍵の施錠／非施錠状態を設定するコマンドを送信した後のドアの鍵の施錠／非施錠状態を含む。
【０１３１】
いくつかの実施例では、第１の電子デバイスはガレージドアを含む。他の実施例では、第１のコマンドは、ガレージドアの開／閉状態を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、ガレージドアの開／閉状態を設定するコマンドを送信した後のガレージドアの開／閉状態を含む。
【０１３２】
いくつかの実施例では、第１の電子デバイスはサーモスタットを含む。他の実施例では、第１のコマンドは、サーモスタットの温度設定の数値を設定するコマンドを含む。更に他の実施例では、第１の電子デバイスの現在の状態は、サーモスタットの温度設定の数値を設定する第１のコマンドを送信した後のサーモスタットの温度設定の数値を含む。
【０１３３】
いくつかの実施例では、第１のコマンドは、第１の電子デバイスの現在の状態に関するクエリを含む。
【０１３４】
いくつかの実施例では、電子デバイス１３００は、第１の電子デバイスを含む複数の電子デバイスのそれぞれの名前、種類、及び状態を記憶するデータベースユニット１３３４を更に含む。他の実施例では、処理ユニット１３０８は、第１の電子デバイスの現在の状態に基づき、データベースユニット１３３４内に記憶された第１の電子デバイスの状態を（例えば、状態更新ユニット１３２２を使用して）更新するように更に構成されてもよい。
【０１３５】
いくつかの実施例では、処理ユニット１３０８は、オーディオ入力に対応するデータ内のコンテキスト情報をユーザデバイスから（例えば、コンテキスト情報受信ユニット１３２４を使用して）受信するように更に構成されてもよい。他の実施例では、処理ユニット１３０８は、コンテキスト情報に基づき第１の電子デバイスを（例えば、電子デバイス特定ユニット１３１４を使用して）特定するように更に構成されてもよい。更に他の実施例では、処理ユニット１３０８は、コンテキスト情報に基づき第１のコマンドを（例えば、コマンド特定ユニット１３１６を使用して）特定するように更に構成されてもよい。いくつかの実施例では、コンテキスト情報は、ユーザデバイスがオーディオ入力を受け取ったときのユーザデバイスの向き、又はユーザデバイスがオーディオ入力を受け取ったときのユーザデバイスの場所を含む。
【０１３６】
いくつかの実施例では、ユーザ発語のテキスト表現は、第１の電子デバイスの名前を除外する。他の実施例では、ユーザ発語のテキスト表現は、第１の電子デバイスの種類を除外する。
【０１３７】
いくつかの実施例では、電子デバイス１３００は、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含む。
【０１３８】
いくつかの実施例では、処理ユニット１３０８は、第１の電子デバイスの識別子及び第１のコマンドをユーザデバイスへと（例えば、識別子及びコマンド送信ユニット１３１８を使用して）送信し、第１の電子デバイスの現在の状態をユーザデバイスから（例えば、状態受信ユニット１３２０を使用して）受信するように更に構成されてもよい。
【０１３９】
他の実施例では、処理ユニット１３０８は、第１の電子デバイスの識別子及び第１のコマンドを第２のユーザデバイスへと（例えば、識別子及びコマンド送信ユニット１３１８を使用して）送信し、第１の電子デバイスの現在の状態を第２のユーザデバイスから（例えば、状態受信ユニット１３２０を使用して）受信するように更に構成されてもよい。
【０１４０】
他の実施例では、処理ユニット１３０８は、第１のコマンド及び第１の電子デバイスの現在の状態に基づく第１のコマンドの結果の指示を第２のユーザデバイスへと（例えば、指示送信ユニット１３２６を使用して）送信するように更に構成されてもよい。
【０１４１】
他の実施例では、処理ユニット１３０８は、ユーザ発語のテキスト表現に基づき第２の電子デバイスを（例えば、第２の電子デバイス特定ユニット１３２８を使用して）特定し、ユーザ発語のテキスト表現に基づき、第２の電子デバイスによって実行される第２のコマンドを（例えば、第２のコマンド特定ユニット１３３０を使用して）特定し、第２の電子デバイスの識別子及び第２のコマンドを（例えば、第２の識別子及びコマンド送信ユニット１３３２を使用して）送信し、第２の電子デバイスの現在の状態を（例えば、第２の状態受信ユニット１３３６を使用して）受信するように更に構成されてもよい。
【０１４２】
図１４に示すように、電子デバイス１４００は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット１４０２、及び音声入力を受け取るように構成される音声受信ユニット１４０４を含んでもよい。いくつかの実施例では、電子デバイス１４００は、音声を発生するように構成されるスピーカユニット１４０６を含んでもよい。電子デバイス１４００は、タッチスクリーンディスプレイユニット１４０２及び音声受信ユニット１４０４に結合される（及びスピーカユニット１４０６に任意選択的に結合される）処理ユニット１４０８を更に含んでもよい。いくつかの実施例では、処理ユニット１４０８は、オーディオ入力受信ユニット１４１０、発語テキスト化変換ユニット１４１２、判定ユニット１４１４、命令送信ユニット１４１６、状態受信ユニット１４１６、構成記憶ユニット１４２０、第２のオーディオ入力受信ユニット１４２２、第２の発語テキスト化変換ユニット１４２４、第２の判定ユニット１４２６、コマンド送信ユニット１４２８、及び第２の状態受信ユニット１４３０を含んでもよい。
【０１４３】
処理ユニット１４０８は、ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから（例えば、オーディオ入力受信ユニット１４１０を使用して）受信するように構成されてもよい。処理ユニット１４０８は、ユーザ発語のテキスト表現を生成するために、オーディオ入力に対応するデータに対する発語テキスト化変換を（例えば、発語テキスト化変換ユニット１４１２を使用して）実行するように更に構成されてもよい。処理ユニット１４０８は、ユーザ発語のテキスト表現が複数の電子デバイスのそれぞれの状態を構成として記憶するユーザ意図を表すと（例えば、判定ユニット１４１４を使用して）判定するように更に構成されてもよい。処理ユニット１４０８は、複数の電子デバイスのそれぞれの状態に関するクエリを実行する命令を（例えば、命令送信ユニット１４１６を使用して）送信するように更に構成されてもよい。処理ユニット１４０８は、複数の電子デバイスのそれぞれの現在の状態を（例えば、状態受信ユニット１４１８を使用して）受信するように更に構成されてもよい。処理ユニット１４０８は、受信した複数の電子デバイスのそれぞれの現在の状態を構成として（例えば、構成記憶ユニット１４２０を使用して）記憶するように更に構成されてもよい。
【０１４４】
図１５に示すように、電子デバイス１５００は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット１５０２、及び音声入力を受け取るように構成される音声受信ユニット１５０４を含んでもよい。いくつかの実施例では、電子デバイス１５００は、音声を発生するように構成されるスピーカユニット１５０６を含んでもよい。電子デバイス１５００は、タッチスクリーンディスプレイユニット１５０２及び音声受信ユニット１５０４に結合される（及びスピーカユニット１５０６に任意選択的に結合される）処理ユニット１５０８を更に含んでもよい。いくつかの実施例では、処理ユニット１４０８は、オーディオ入力受信ユニット１５１０、発語テキスト化変換ユニット１５１２、判定ユニット１５１４、命令送信ユニット１５１６、状態受信ユニット１５１６、構成記憶ユニット１５２０、第２のオーディオ入力受信ユニット１５２２、第２の発語テキスト化変換ユニット１５２４、第２の判定ユニット１５２６、コマンド送信ユニット１５２８、及び第２の状態受信ユニット１５３０を含んでもよい。
【０１４５】
いくつかの実施例では、処理ユニット１５０８は、ユーザ発語を含むオーディオ入力に対応するデータを（例えば、オーディオ入力受信ユニット１５１０を使用して）受信し、ユーザ発語のテキスト表現を生成するために、オーディオ入力に対応するデータに対する発語テキスト化変換を（例えば、発語テキスト化変換ユニット１５１２を使用して）実行し、ユーザ発語のテキスト表現が、構成に基づき複数の電子デバイスのそれぞれの状態を変更するユーザ意図を表すと（例えば、判定ユニット１５１４を使用して）判定し、構成に基づき複数の電子デバイスのそれぞれの状態を設定する複数のコマンドを（例えば、コマンド送信ユニット１５１６を使用して）送信し、複数の電子デバイスのそれぞれの更新された状態を（例えば、状態受信ユニット１５１８を使用して）受信するように更に構成されてもよい。
【０１４６】
上述のように、本技術の１つの態様は、招待者用のコンテンツ又はユーザの興味を引くと考えられる任意の他のコンテンツのユーザへの配信を改善するために、様々なソースから入手可能なデータを収集及び使用することである。本開示は、いくつかの事例で、この収集されたデータが、具体的な人物を一意に特定するか、又はその人物と連絡を取るか若しくはその人物の場所を特定するために使用され得る、個人情報データを含み得ると想到する。そのような個人情報データは、人口統計上のデータ、場所ベースのデータ、電話番号、電子メールアドレス、家の住所、又は任意の他の身元特定可能な情報を含んでもよい。
【０１４７】
本開示は、本技術で、そのような個人情報データの使用がユーザへの利益のために使用され得ることを認識している。例えば、よりユーザの興味を引く対象コンテンツを配信するために、個人情報データが使用されてもよい。したがって、そのような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更に、ユーザに利益をもたらす個人情報データの他の使用目的が、本開示によって想到される。
【０１４８】
本開示は、そのような個人情報データの収集、分析、開示、転送、記憶、又は他の使用目的の責任を負うエンティティが、適切に規定されたプライバシーのポリシー及び／又はプライバシーの慣行に準拠すると更に想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための業界又は政府の要件を満たすか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し常に使用すべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更には、そのような収集は、ユーザに告知して同意を得た後にのみ実施するべきである。更には、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、それらのプライバシーのポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じ得る。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【０１４９】
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施例も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び／又はソフトウェア要素を提供することができると想到する。例えば、広告配信サービスの場合、本技術は、ユーザがサービスの登録中に個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするように構成されてもよい。別の実施例では、ユーザは、対象のコンテンツ配信サービスに対して位置情報を提供しないことを選択してもよい。更に別の実施例では、ユーザは、正確な位置情報を提供しないが位置のゾーン情報の転送は許可することを選択してもよい。
【０１５０】
それゆえ、本開示は、１つ以上の様々な開示された実施例を実施するための個人情報データの使用を、広範に網羅するものであるが、本開示は、それらの様々な実施例がまた、そのような個人情報データにアクセスすることを必要とせずに実施することも可能である点も、また想到する。すなわち、本技術の様々な実施例は、そのような個人情報データの全て又は一部分の欠如により、実施不可能となるものではない。例えば、ユーザに関連付けられたデバイスによって要求されるコンテンツ等の非個人情報データ若しくは必要最小限の個人情報、コンテンツ配信サービスへと提供される他の非個人情報、又は公的に入手可能な情報に基づき嗜好を推測することによって、コンテンツが選択され、ユーザへと配信されてもよい。
【０１５１】
添付図面を参照して、実施例を十分に説明してきたが様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、添付の特許請求の範囲によって定義されるような様々な実施例の範囲内に含まれるものとして理解されたい。
【図１】
2019083047.tif 000003
【図２】
2019083047.tif 000004
【図３】
2019083047.tif 000005
【図４】
2019083047.tif 000006
【図５】
2019083047.tif 000007
【図６】
2019083047.tif 000008
【図７】
2019083047.tif 000009
【図８】
2019083047.tif 000010
【図９】
2019083047.tif 000011
【図１０】
2019083047.tif 000012
【図１１】
2019083047.tif 000013
【図１２】
2019083047.tif 000014
【図１３】
2019083047.tif 000015
【図１４】
2019083047.tif 000016
【図１５】
2019083047.tif 000017
【手続補正書】
【提出日】平成31年2月1日(2019.2.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つ以上のプロセッサとメモリとを有するユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
前記ユーザデバイスにおいて、
ユーザ要求を表すオーディオ入力を受信することと、
前記オーディオ入力に対応する１つ以上のあり得る電子デバイスの特徴を決定することと、
所定の場所にある１組の電子デバイスを表すデータ構造を検索することと、
前記データ構造に基づいて、前記１組の電子デバイスから１つ以上の候補電子デバイスを決定することであって、前記１つ以上の候補電子デバイスは前記オーディオ入力に対応する、決定することと、
前記１つ以上のあり得る電子デバイスの特徴と、前記１つ以上の候補電子デバイスの１つ以上の実際の電子デバイスの特徴とに基づいて、前記オーディオ入力に対応するユーザ意図を決定することと、
前記１つ以上の候補電子デバイスの電子デバイスに前記ユーザ意図に対応するアクションを実行させるコマンドを提供することと、を含む方法。
【請求項２】
請求項１に記載の方法であって、前記オーディオ入力は自然言語形式であり、前記オーディオ入力は前記アクションを定義することに関して曖昧である、方法。
【請求項３】
請求項１または２に記載の方法であって、前記オーディオ入力は自然言語形式であり、前記オーディオ入力は、前記アクションを実行する前記電子デバイスを定義することに関して曖昧である、方法。
【請求項４】
請求項１から３のいずれか１項に記載の方法であって、前記１つ以上のあり得る電子デバイスの特徴は、前記ユーザデバイスによって制御可能な電子デバイスと関連付けられた１つ以上の語、又は前記ユーザデバイスによって制御可能な前記電子デバイスに対応する１つ以上の状態と関連付けられた１つ以上の語を含む、方法。
【請求項５】
請求項１から４のいずれか１項に記載の方法であって、前記データ構造は、前記１組の電子デバイスのうちの各電子デバイスに関連付けられた１つ以上の実際の電子デバイスの特徴を定義する、方法。
【請求項６】
請求項５に記載の方法であって、前記１つ以上の実際の電子デバイスの特徴は、前記１組の電子デバイスのうちの各電子デバイスと関連付けられた１つ以上の語、又は前記１組の電子デバイスのうちの各電子デバイスに対応する１つ以上の状態と関連付けられた１つ以上の語を含む、方法。
【請求項７】
請求項１から６のいずれか１項に記載の方法であって、前記データ構造は、前記１組の電子デバイスのうちの各電子デバイスの現在の状態を定義する、方法。
【請求項８】
請求項７に記載の方法であって、更に、
更に前記１つ以上の候補電子デバイスのそれぞれの前記現在の状態に基づいて、前記ユーザ意図を決定する、方法。
【請求項９】
請求項７または８に記載の方法であって、更に、
前記コマンドを提供した後に、前記電子デバイスから更新された状態を受信することと、
前記電子デバイスから受信した前記更新された状態に基づいて、前記電子デバイスの前記現在の状態を更新することと、を含む、方法。
【請求項１０】
請求項９に記載の方法であって、更に、
前記電子デバイスから受信した前記電子デバイスの前記更新された状態に基づいて、前記コマンドの結果の指示を出力することを含む、方法。
【請求項１１】
請求項１０に記載の方法であって、前記コマンドの前記結果の前記指示は、オーディオ指示、視覚指示、又はオーディオ指示と視覚指示の両方である、方法。
【請求項１２】
請求項１から１１のいずれか１項に記載の方法であって、更に、
前記オーディオ入力に対応する場所を決定することと、
前記決定された場所に基づいて、複数の所定の場所から前記所定の場所を決定することと、を含む、方法。
【請求項１３】
請求項１から１２のいずれか１項に記載の方法であって、前記１組の電子デバイスから前記１つ以上の候補電子デバイスを決定することは、
前記オーディオ入力内の用語と関連付けられた１つ以上の代替用語を決定することを含み、前記１つ以上の候補電子デバイスは前記１つ以上の代替用語に基づいて決定される、方法。
【請求項１４】
請求項１から１３のいずれか１項に記載の方法であって、前記ユーザ意図を決定することは、更に、
前記１つ以上のあり得る電子デバイスの特徴と、前記１つ以上の候補電子デバイスの前記１つ以上の実際の電子デバイスの特徴とに基づいて、前記１つ以上の候補電子デバイスから前記電子デバイスを決定すること、を含む、方法。
【請求項１５】
請求項１から１４のいずれか１項に記載の方法であって、更に、
前記所定の場所内のエリアに関して前記ユーザデバイスの相対的な場所を決定することを含み、前記ユーザ意図は前記相対的な場所に基づいて決定される、方法。
【請求項１６】
請求項１から１５のいずれか１項に記載の方法を実行する命令を含むコンピュータプログラム。
【請求項１７】
電子デバイスであって、
請求項１６に記載のコンピュータプログラムを格納するメモリと、
前記メモリに格納された前記命令を実行することが可能な１つ以上のプロセッサと、を含む、電子デバイス。
【請求項１８】
電子デバイスであって、
請求項１６に記載のコンピュータプログラムを格納する手段と、
前記メモリに格納された前記命令を実行する手段と、を有する電子デバイス。
【外国語明細書】
2019083047000001.pdf