IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ アップル インコーポレイテッドの特許一覧

特開2024-178149ホームオートメーションのためのインテリジェントアシスタント
<>
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図1
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図2
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図3
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図4
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図5
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図6
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図7
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図8
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図9
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図10
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図11
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図12
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図13
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図14
  • 特開-ホームオートメーションのためのインテリジェントアシスタント 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024178149
(43)【公開日】2024-12-24
(54)【発明の名称】ホームオートメーションのためのインテリジェントアシスタント
(51)【国際特許分類】
   G06F 3/16 20060101AFI20241217BHJP
   G10L 15/30 20130101ALI20241217BHJP
   H04L 51/02 20220101ALI20241217BHJP
   H04L 12/28 20060101ALI20241217BHJP
【FI】
G06F3/16 630
G10L15/30
H04L51/02
H04L12/28 500D
H04L12/28 500A
【審査請求】有
【請求項の数】19
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2024123353
(22)【出願日】2024-07-30
(62)【分割の表示】P 2022140998の分割
【原出願日】2015-03-31
(31)【優先権主張番号】14/503,105
(32)【優先日】2014-09-30
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/005,893
(32)【優先日】2014-05-30
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.コンパクトフラッシュ
(71)【出願人】
【識別番号】503260918
【氏名又は名称】アップル インコーポレイテッド
【氏名又は名称原語表記】Apple Inc.
【住所又は居所原語表記】One Apple Park Way,Cupertino, California 95014, U.S.A.
(74)【代理人】
【識別番号】110003281
【氏名又は名称】弁理士法人大塚国際特許事務所
(72)【発明者】
【氏名】オー, ライアン エム.
(72)【発明者】
【氏名】ネル, ギャレット リチャード
(72)【発明者】
【氏名】ブランバウ, ベンジャミン ロイド
(57)【要約】      (修正有)
【課題】仮想アシスタントを使用して電子デバイスを制御するシステム及び処理を提供する。
【解決手段】1つの例示的な処理では、ユーザは、1つ以上の電子デバイスを制御するために、自然言語形式で入力をユーザデバイスへと発語してもよい。ユーザデバイスは、そのユーザ発語を、テキスト表現へと変換するためにサーバへと送信してもよい。サーバはテキスト表現に基づき、1つ以上の電子デバイス、及び1つ以上の電子デバイスによって実行される適切なコマンドを特定してもよい。特定された1つ以上のデバイス及び実行されるコマンドは、ユーザデバイスへと返送されてもよく、ユーザデバイスはそのコマンドを、実行のために適切な1つ以上の電子デバイスへと転送してもよい。コマンドを受信したことに応じて、1つ以上の電子デバイスはコマンドを実行し、それらの現在の状態をユーザデバイスへと送信してもよい。
【選択図】図1
【特許請求の範囲】
【請求項1】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
前記ユーザデバイスによって、ユーザ発語を含むオーディオ入力を受け取ることと、
前記オーディオ入力に対応するデータを1つ以上のサーバへと送信することと、
前記1つ以上のサーバから、
前記オーディオ入力に対応する前記データに基づき前記1つ以上のサーバによって特定された第1の電子デバイスの識別子と、
前記オーディオ入力に対応する前記データに基づき前記1つ以上のサーバによって特定された前記第1の電子デバイスによって実行される第1のコマンドと、
を受信することと、
前記第1のコマンドを前記第1の電子デバイスへと送信することと、を含む、方法。
【請求項2】
前記第1のコマンドを前記第1の電子デバイスへと送信した後、前記第1の電子デバイスの現在の状態を前記第1の電子デバイスから受信することと、
前記第1の電子デバイスの前記現在の状態を前記1つ以上のサーバへと送信することと、を更に含む、請求項1に記載の方法。
【請求項3】
前記第1の電子デバイスは電球を含む、請求項2に記載の方法。
【請求項4】
前記第1のコマンドは、前記電球のオン/オフ状態、明暗調整可能状態、又は色状態を設定するコマンドを含む、請求項3に記載の方法。
【請求項5】
前記第1の電子デバイスの前記現在の状態は、前記電球の前記オン/オフ状態、明暗調整可能状態、又は色状態を設定する前記第1のコマンドを送信した後の前記電球の前記オン/オフ状態、明暗調整可能状態、又は色状態を含む、請求項4に記載の方法。
【請求項6】
前記第1の電子デバイスは電気コンセントを含む、請求項2に記載の方法。
【請求項7】
前記第1のコマンドは、前記電気コンセントのアクティブ/非アクティブ状態を設定するコマンドを含む、請求項6に記載の方法。
【請求項8】
前記第1の電子デバイスの前記現在の状態は、前記電気コンセントの前記アクティブ/非アクティブ状態を設定する前記コマンドを送信した後の前記電気コンセントの前記アクティブ/非アクティブ状態を含む、請求項7に記載の方法。
【請求項9】
前記第1の電子デバイスはスイッチを含む、請求項2に記載の方法。
【請求項10】
前記第1のコマンドは、前記スイッチのオン/オフ状態を設定するコマンドを含む、請求項9に記載の方法。
【請求項11】
前記第1の電子デバイスの前記現在の状態は、前記スイッチの前記オン/オフ状態を設定する前記コマンドを送信した後の前記電気コンセントの前記オン/オフ状態を含む、請求項10に記載の方法。
【請求項12】
前記第1の電子デバイスはドアの鍵を含む、請求項2に記載の方法。
【請求項13】
前記第1のコマンドは、前記ドアの鍵の施錠/非施錠状態を設定するコマンドを含む、請求項12に記載の方法。
【請求項14】
前記第1の電子デバイスの前記現在の状態は、前記ドアの鍵の前記施錠/非施錠状態を設定する前記コマンドを送信した後の前記ドアの鍵の前記施錠/非施錠状態を含む、請求項13に記載の方法。
【請求項15】
前記第1の電子デバイスはガレージドアを含む、請求項2に記載の方法。
【請求項16】
前記第1のコマンドは、前記ガレージドアの開/閉状態を設定するコマンドを含む、請求項15に記載の方法。
【請求項17】
前記第1の電子デバイスの前記現在の状態は、前記ガレージドアの前記開/閉状態を設定する前記コマンドを送信した後の前記ガレージドアの前記開/閉状態を含む、請求項16に記載の方法。
【請求項18】
前記第1の電子デバイスはサーモスタットを含む、請求項2に記載の方法。
【請求項19】
前記第1のコマンドは、前記サーモスタットの温度設定の数値を設定するコマンドを含む、請求項18に記載の方法。
【請求項20】
前記第1の電子デバイスの前記現在の状態は、前記サーモスタットの前記温度設定の前記数値を設定する前記第1のコマンドを送信した後の前記サーモスタットの前記温度設定の前記数値を含む、請求項19に記載の方法。
【請求項21】
前記第1のコマンドは、前記第1の電子デバイスの前記現在の状態に関するクエリを含む、請求項2に記載の方法。
【請求項22】
所定の条件が満たされたと判定したことに応じて、前記第1の電子デバイスの前記現在の状態に関連付けられた通知を出力することを更に含む、請求項2に記載の方法。
【請求項23】
前記ユーザデバイスは、前記第1の電子デバイスを含む複数の電子デバイスのそれぞれの状態を記憶するデータベースを含み、前記方法は、前記第1の電子デバイスから受信した前記第1の電子デバイスの前記現在の状態に少なくとも部分的に基づき、前記データベース内に記憶された前記第1の電子デバイスの状態を更新することを更に含む、請求項2に記載の方法。
【請求項24】
前記第1のコマンド及び前記第1の電子デバイスから受信した前記第1の電子デバイスの前記現在の状態に基づく前記第1のコマンドの結果の指示を出力することを更に含み、前記結果の前記指示は、オーディオ、視覚、又はオーディオ及び視覚の両方の指示である、請求項2に記載の方法。
【請求項25】
前記ユーザデバイスは、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含む、請求項1に記載の方法。
【請求項26】
前記第1のコマンドは、ローカル無線ネットワークを介して前記第1の電子デバイスへと送信される、請求項1に記載の方法。
【請求項27】
前記第1のコマンドは、Bluetooth、見通し線、ピアツーピア、又はWiFi通信によって、直接前記第1の電子デバイスへと送信される、請求項1に記載の方法。
【請求項28】
前記1つ以上のサーバから前記第1のコマンドを受信することと前記第1のコマンドを前記第1の電子デバイスへと送信することとの間に前記第1の電子デバイスに対して前記第1の電子デバイスの前記状態に関するクエリを実行することを除外する、請求項1に記載の方法。
【請求項29】
前記1つ以上のサーバから、
前記オーディオ入力に対応する前記データに基づき前記1つ以上のサーバによって特定された第2の電子デバイスの識別子と、
前記オーディオ入力に対応する前記データに基づき前記1つ以上のサーバによって特定された前記第2の電子デバイスによって実行される第2のコマンドと、
を受信することと、
前記第2のコマンドを前記第2の電子デバイスへと送信することと、
前記第2のコマンドを前記第2の電子デバイスへと送信した後、前記第2の電子デバイスの現在の状態を前記第2の電子デバイスから受信することと、
前記第2の電子デバイスの前記現在の状態を前記1つ以上のサーバへと送信することと、を更に含む、請求項1に記載の方法。
【請求項30】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
前記ユーザデバイスによって、ユーザ発語を含むオーディオ入力を受け取ることと、
前記オーディオ入力に対応するデータを1つ以上のサーバへと送信することと、
前記オーディオ入力に対応する前記データに基づき前記1つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態に関するクエリを実行する命令を、前記1つ以上のサーバから受信することと、
状態クエリを前記複数の電子デバイスのそれぞれへと送信することと、を含む、方法。
【請求項31】
前記複数の電子デバイスのそれぞれの現在の状態を前記複数の電子デバイスから受信することと、
前記複数の電子デバイスのそれぞれの前記現在の状態を、前記1つ以上のサーバへと送信して、構成として記憶することと、を更に含む、請求項30に記載の方法。
【請求項32】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
前記ユーザデバイスによって、ユーザ発語を含むオーディオ入力を受け取ることと、
前記オーディオ入力に対応するデータを1つ以上のサーバへと送信することと、
記憶された構成に基づき前記1つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態を設定する複数のコマンドを、前記1つ以上のサーバから受信することと、
前記複数のコマンドを前記複数の電子デバイスへと送信することと、を含む、方法。
【請求項33】
前記複数の電子デバイスのそれぞれの更新された状態を前記複数の電子デバイスから受信することと、
前記複数の電子デバイスのそれぞれの前記更新された状態を前記1つ以上のサーバへと送信することと、を更に含む、請求項32に記載の方法。
【請求項34】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
1つ以上のサーバによって、ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから受信することと、
オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成することと、
前記ユーザ発語の前記テキスト表現に基づき、第1の電子デバイスを特定することと、
前記ユーザ発語の前記テキスト表現に基づき、前記第1の電子デバイスによって実行される第1のコマンドを特定することと、
前記第1の電子デバイスの識別子及び前記第1のコマンドを送信することと、を含む、方法。
【請求項35】
前記第1の電子デバイスの現在の状態を受信することを更に含む、請求項34に記載の方法。
【請求項36】
前記第1の電子デバイスは電球を含む、請求項35に記載の方法。
【請求項37】
前記第1のコマンドは、前記電球のオン/オフ状態、明暗調整可能状態、又は色状態を変更するコマンドを含む、請求項36に記載の方法。
【請求項38】
前記第1の電子デバイスの前記現在の状態は、前記電球が、前記電球の前記オン/オフ状態、明暗調整可能状態、又は色状態を設定する前記第1のコマンドを受信した後の前記電球の前記オン/オフ状態、明暗調整可能状態、又は色状態を含む、請求項37に記載の方法。
【請求項39】
前記第1の電子デバイスは電気コンセントを含む、請求項35に記載の方法。
【請求項40】
前記第1のコマンドは、前記電気コンセントのアクティブ/非アクティブ状態を設定するコマンドを含む、請求項39に記載の方法。
【請求項41】
前記第1の電子デバイスの前記現在の状態は、前記電気コンセントが、前記電気コンセントの前記アクティブ/非アクティブ状態を設定する前記第1のコマンドを受信した後の前記電気コンセントの前記アクティブ/非アクティブ状態を含む、請求項40に記載の方法。
【請求項42】
前記第1の電子デバイスはドアの鍵を含む、請求項35に記載の方法。
【請求項43】
前記第1のコマンドは、前記ドアの鍵の施錠/非施錠状態を設定するコマンドを含む、請求項42に記載の方法。
【請求項44】
前記第1の電子デバイスの前記現在の状態は、前記ドアの鍵が、前記ドアの鍵の前記施錠/非施錠状態を設定する前記第1のコマンドを受信した後の前記ドアの鍵の前記施錠/非施錠状態を含む、請求項43に記載の方法。
【請求項45】
前記第1の電子デバイスはガレージドアを含む、請求項35に記載の方法。
【請求項46】
前記第1のコマンドは、前記ガレージドアの開/閉状態を設定するコマンドを含む、請求項45に記載の方法。
【請求項47】
前記第1の電子デバイスの前記現在の状態は、前記ガレージドアが、前記ガレージドアの前記開/閉状態を設定する前記第1のコマンドを受信した後の前記ガレージドアの前記開/閉状態を含む、請求項46に記載の方法。
【請求項48】
前記第1の電子デバイスはサーモスタットを含む、請求項35に記載の方法。
【請求項49】
前記第1のコマンドは、前記サーモスタットの温度設定の数値を設定するコマンドを含む、請求項48に記載の方法。
【請求項50】
前記第1の電子デバイスの前記現在の状態は、前記サーモスタットが、前記サーモスタットの前記温度設定の前記数値を設定する前記第1のコマンドを受信した後の前記サーモスタットの前記温度設定の前記数値を含む、請求項49に記載の方法。
【請求項51】
前記第1の電子デバイスはスイッチを含む、請求項35に記載の方法。
【請求項52】
前記第1のコマンドは、前記スイッチのオン/オフ状態を設定するコマンドを含む、請求項51に記載の方法。
【請求項53】
前記第1の電子デバイスの前記現在の状態は、前記スイッチの前記オン/オフ状態を設定する前記コマンドを送信した後の前記電気コンセントの前記オン/オフ状態を含む、請求項52に記載の方法。
【請求項54】
前記第1のコマンドは、前記第1の電子デバイスの前記現在の状態に関するクエリを含む、請求項35に記載の方法。
【請求項55】
前記1つ以上のサーバは、前記第1の電子デバイスを含む複数の電子デバイスのそれぞれの名前、種類、及び状態を記憶するデータベースを含む、請求項35に記載の方法。
【請求項56】
前記第1の電子デバイスの前記現在の状態に基づき、前記データベース内に記憶された前記第1の電子デバイスの前記状態を更新することを更に含む、請求項55に記載の方法。
【請求項57】
前記ユーザ発語の前記テキスト表現は、前記第1の電子デバイスの前記名前を除外する、請求項55に記載の方法。
【請求項58】
前記ユーザ発語の前記テキスト表現は、前記第1の電子デバイスの前記種類を除外する、請求項55に記載の方法。
【請求項59】
前記オーディオ入力に対応する前記データは、前記ユーザデバイスからの前記オーディオ入力に関連付けられたコンテキスト情報を含む、請求項34に記載の方法。
【請求項60】
前記第1の電子デバイスを特定することは前記コンテキスト情報に更に基づく、請求項59に記載の方法。
【請求項61】
前記第1のコマンドを特定することは前記コンテキスト情報に更に基づく、請求項59に記載の方法。
【請求項62】
前記コンテキスト情報は、前記ユーザデバイスが前記オーディオ入力を受け取ったときの前記ユーザデバイスの向き、又は前記ユーザデバイスが前記オーディオ入力を受け取ったときの前記ユーザデバイスの場所を含む、請求項59に記載の方法。
【請求項63】
前記ユーザデバイスは、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含む、請求項34に記載の方法。
【請求項64】
前記第1の電子デバイスの前記識別子及び前記第1のコマンドは前記ユーザデバイスへと送信され、前記第1の電子デバイスの前記現在の状態は前記ユーザデバイスから受信される、請求項34に記載の方法。
【請求項65】
前記第1の電子デバイスの前記識別子及び前記第1のコマンドは第2のユーザデバイスへと送信され、前記第1の電子デバイスの前記現在の状態は前記第2のユーザデバイスから受信される、請求項34に記載の方法。
【請求項66】
前記第1のコマンド及び前記第1の電子デバイスの前記現在の状態に基づく前記第1のコマンドの結果の指示を前記第2のユーザデバイスへと送信することを更に含む、請求項65に記載の方法。
【請求項67】
前記ユーザ発語の前記テキスト表現に基づき第2の電子デバイスを特定することと、
前記ユーザ発語の前記テキスト表現に基づき、前記第2の電子デバイスによって実行される第2のコマンドを特定することと、
前記第2の電子デバイスの識別子及び前記第2のコマンドを送信することと、
前記第2の電子デバイスの現在の状態を受信することと、を更に含む、請求項34に記載の方法。
【請求項68】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
1つ以上のサーバによって、ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから受信することと、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成することと、
前記ユーザ発語の前記テキスト表現が、複数の電子デバイスのそれぞれの状態を構成として記憶するユーザ意図を表すと判定することと、
前記複数の電子デバイスのそれぞれの前記状態に関するクエリを実行する命令を前記ユーザデバイスへと送信することと、を含む、方法。
【請求項69】
前記複数の電子デバイスのそれぞれの現在の状態を受信することと、
前記複数の電子デバイスのそれぞれの前記受信した現在の状態を前記構成として記憶することと、を更に含む、請求項68に記載の方法。
【請求項70】
ユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
1つ以上のサーバによって、ユーザ発語を含むオーディオ入力に対応するデータを受信することと、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成することと、
前記ユーザ発語の前記テキスト表現が、構成に基づき複数の電子デバイスのそれぞれの前記状態を変更するユーザ意図を表すと判定することと、
前記構成に基づき前記複数の電子デバイスのそれぞれの前記状態を設定する複数のコマンドを送信することと、を含む、方法。
【請求項71】
前記複数の電子デバイスのそれぞれの更新された状態を受信することを更に含む、請求項70に記載の方法。
【請求項72】
請求項1~71のいずれか一項に記載の方法を実行する命令を含む、非一時的コンピュータ可読記憶媒体。
【請求項73】
請求項72に記載の非一時的コンピュータ可読記憶媒体と、
前記非一時的コンピュータ可読記憶媒体の前記命令を実行することができる1つ以上のプロセッサと、
を備える、システム。
【請求項74】
ユーザ発語を含むオーディオ入力を受け取る手段と、
前記オーディオ入力に対応するデータを1つ以上のサーバへと送信する手段と、
前記1つ以上のサーバから、
前記オーディオ入力に対応する前記データに基づき前記1つ以上のサーバによって特定された電子デバイスの識別子と、
前記オーディオ入力に対応する前記データに基づき前記1つ以上のサーバによって特定された前記電子デバイスによって実行されるコマンドと、
を受信する手段と、
前記コマンドを前記電子デバイスへと送信する手段と、
前記コマンドを前記電子デバイスへと送信した後、前記電子デバイスの現在の状態を前記電子デバイスから受信する手段と、
前記電子デバイスの前記現在の状態を前記1つ以上のサーバへと送信する手段と、を備える、システム。
【請求項75】
第1のユーザ発語を含むオーディオ入力を受け取る手段と、
前記オーディオ入力に対応するデータを1つ以上のサーバへと送信する手段と、
前記オーディオ入力に対応する前記データに基づき前記1つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態に関するクエリを実行する命令を、前記1つ以上のサーバから受信する手段と、
状態クエリを前記複数の電子デバイスのそれぞれへと送信する手段と、
前記複数の電子デバイスのそれぞれの現在の状態を前記複数の電子デバイスから受信する手段と、
前記複数の電子デバイスのそれぞれの前記現在の状態を、前記1つ以上のサーバへと送信して、構成として記憶する手段と、を備える、システム。
【請求項76】
ユーザ発語を含むオーディオ入力を受け取る手段と、
前記オーディオ入力に対応するデータを1つ以上のサーバへと送信する手段と、
記憶された構成に基づき前記1つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態を設定する複数のコマンドを、前記1つ以上のサーバから受信する手段と、
前記複数のコマンドを前記複数の電子デバイスへと送信する手段と、を備える、システム。
【請求項77】
ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから受信する手段と、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成する手段と、
前記ユーザ発語の前記テキスト表現に基づき第1の電子デバイスを特定する手段と、
前記ユーザ発語の前記テキスト表現に基づき、前記第1の電子デバイスによって実行される第1のコマンドを特定する手段と、
前記第1の電子デバイスの識別子及び前記第1のコマンドを送信する手段と、
前記第1の電子デバイスの現在の状態を受信する手段と、を備える、システム。
【請求項78】
ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから受信する手段と、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成する手段と、
前記ユーザ発語の前記テキスト表現が、複数の電子デバイスのそれぞれの状態を構成として記憶するユーザ意図を表すと判定する手段と、
前記複数の電子デバイスのそれぞれの前記状態に関するクエリを実行する命令を前記ユーザデバイスへと送信する手段と、
前記複数の電子デバイスのそれぞれの現在の状態を受信する手段と、
前記複数の電子デバイスのそれぞれの前記受信した現在の状態を前記構成として記憶する手段と、を備える、システム。
【請求項79】
ユーザ発語を含むオーディオ入力に対応するデータを受信する手段と、
前記オーディオ入力に対応する前記データに対する発語テキスト化変換を実行して、前記ユーザ発語のテキスト表現を生成する手段と、
前記ユーザ発語の前記テキスト表現が、構成に基づき複数の電子デバイスのそれぞれの前記状態を変更するユーザ意図を表すと判定する手段と、
前記構成に基づき前記複数の電子デバイスのそれぞれの前記状態を設定する複数のコマンドを送信する手段と、を備える、システム。
【発明の詳細な説明】
【関連出願の相互参照】
【0001】
本出願は、2014年5月30日に出願された、「INTELLIGENT ASSISTANT FOR HOME AUTOMATION」と題する米国特許仮出願第62/005,893号及び2014年9月30日に出願された「INTELLIGENT ASSISTANT FOR HOME AUTOMATION」と題する米国特許非仮出願第14/503,105号からの優先権を主張する。同出願はその全体が全ての目的のために本明細書において参照により組み込まれている。
【技術分野】
【0002】
本出願は概して自然言語処理に関し、より具体的には、電子デバイスを制御する自然言語処理を有する仮想アシスタントの使用に関する。
【背景技術】
【0003】
携帯電話、タブレットコンピュータ、ラップトップコンピュータ、デスクトップコンピュータ等のコンピューティングデバイス上で実行されるソフトウェアアプリケーションを使用して遠隔で制御され得る家庭用電子デバイスが次第に普及している。例えば、数多くの製造業者が、電球の明るさ及び/又は色を調整する、携帯電話上で実行されるソフトウェアアプリケーションによって制御され得る電球を作製している。類似した制御を有する、ドアの鍵、サーモスタット等の他のデバイスも提供されている。
【0004】
これらのデバイスは、より高度な制御及び利便性をユーザに提供し得るが、家庭内の遠隔で制御されるデバイスの数及び遠隔で制御されるデバイスの種類の数が増加するにしたがって、これらのデバイスを管理することが非常に難しくなる場合がある。例えば、典型的な家は、家の様々な部屋の至る所に配置された40~50個の電球を備え得る。従来のソフトウェアアプリケーションを使用した場合、各電球には一意識別子が付与され、これらのデバイスのうちの1つを制御することを試みるユーザは、グラフィカルユーザインタフェース内の利用可能なデバイスのリストから適切な識別子を選択する必要がある。特定の電球の正しい識別子を記憶し、40~50個の識別子のリストからその識別子を見つけることは、難しくかつ時間のかかる作業になることがある。大量の遠隔で制御されるデバイスを管理及び制御することの難しさに加えて、通常、各製造業者は、そのそれぞれのデバイスを制御するために使用される必要がある、異なるソフトウェアアプリケーションを提供する。そのため、ユーザはそれらの電球をオン/オフにする1つのソフトウェアアプリケーションを見つけて開き、その後、それらのサーモスタットの温度を設定する別のソフトウェアアプリケーションを見つけて開く必要がある。
【発明の概要】
【0005】
仮想アシスタントを使用して電子デバイスを制御するシステム及び処理が提供される。1つの例示的な処理では、ユーザは、1つ以上の電子デバイスを制御するために、自然言語形式で入力をユーザデバイスへと発語してもよい。ユーザデバイスは、そのユーザ発語を、テキスト表現へと変換するためにサーバへと送信してもよい。サーバはテキスト表現に基づき、1つ以上の電子デバイス、及び1つ以上の電子デバイスによって実行される適切なコマンドを特定してもよい。特定された1つ以上のデバイス及び実行されるコマンドは、ユーザデバイスへと返送されてもよく、それにより、そのコマンドを、実行のために適切な1つ以上の電子デバイスへと転送してもよい。コマンドを受信に応じて、1つ以上の電子デバイスはコマンドを実行し、それらの現在の状態をユーザデバイスへと送信してもよい。
【図面の簡単な説明】
【0006】
図1】様々な実施例に係る、電子デバイスを制御するために仮想アシスタントが使用され得る例示的な環境を示す図である。
【0007】
図2】様々な実施例に係る、遠隔で電子デバイスを制御するために仮想アシスタントが使用され得る例示的な環境を示す図である。
【0008】
図3】様々な実施例に係る例示的なユーザデバイスを示す図である。
【0009】
図4】様々な実施例に係る、電子デバイスに関連付けられた情報を記憶するために使用される複数のエントリの視覚表現を示す図である。
【0010】
図5】様々な実施例に係る、クライアント-サーバモデルを使用して実装された仮想アシスタントを使用して電子デバイスを制御する例示的な処理を示す図である。
【0011】
図6】様々な実施例に係る、クライアント-サーバモデルを使用して実装された仮想アシスタントを使用して遠隔で電子デバイスを制御する例示的な処理を示す図である。
【0012】
図7】様々な実施例に係る、スタンドアロンユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する例示的な処理を示す図である。
【0013】
図8】様々な実施例に係る、電子デバイスの状態を構成として記憶する例示的な処理を示す図である。
【0014】
図9】様々な実施例に係る、以前に記憶された構成を使用して電子デバイスの状態を設定する例示的な処理を示す図である。
【0015】
図10】様々な実施例に係る、電子デバイスを制御するように構成された電子デバイスの機能ブロック図である。
【0016】
図11】様々な実施例に係る、電子デバイスの状態を構成として記憶するように構成された電子デバイスの機能ブロック図である。
【0017】
図12】様々な実施例に係る、電子デバイスの状態を記憶された構成に基づき設定するように構成された電子デバイスの機能ブロック図である。
【0018】
図13】様々な実施例に係る、電子デバイスを制御するように構成された電子デバイスの機能ブロック図である。
【0019】
図14】様々な実施例に係る、電子デバイスの状態を構成として記憶するように構成された電子デバイスの機能ブロック図である。
【0020】
図15】様々な実施例に係る、電子デバイスの状態を記憶された構成に基づき設定するように構成された電子デバイスの機能ブロック図である。
【発明を実施するための形態】
【0021】
以下の実施例の説明では、実践することが可能な特定の実施例が例示として示される、添付図面を参照する。様々な実施例の範囲から逸脱することなく、他の実施例を使用することができ、構造上の変更を実施することができる点を理解されたい。
【0022】
インテリジェント自動アシスタント(又は仮想アシスタント)は、ユーザと電子デバイスとの間の直感的なインタフェースを提供する。これらのアシスタントは、ユーザが発語及び/又はテキスト形式の自然言語を使用してデバイス又はシステムと対話することを可能にしてもよい。例えば、ユーザは、電子デバイスに関連付けられた仮想アシスタントへと、自然言語形式の発語ユーザ入力を提供することによって、電子デバイスのサービスにアクセスしてもよい。仮想アシスタントは、ユーザの意図を推測し、ユーザの意図をタスクへと動作化するために、発語ユーザ入力に対する自然言語処理を実行してもよい。その後、電子デバイスの1つ以上の機能を実行することによってタスクが実行されてもよく、関連する出力が自然言語形式でユーザに返されてもよい。
【0023】
本出願は、仮想アシスタントを使用して電子デバイスを制御するシステム及び処理に関する。1つの例示的な処理では、ユーザは、1つ以上の電子デバイスを制御するために、自然言語形式で入力をユーザデバイスへと発語してもよい。ユーザデバイスは、そのユーザ発語を、テキスト表現へと変換するためにサーバへと送信してもよい。サーバはテキスト表現に基づき、1つ以上の電子デバイス、及び1つ以上の電子デバイスによって実行される適切なコマンドを特定してもよい。特定された1つ以上のデバイス及び実行されるコマンドは、ユーザデバイスへと返送されてもよく、それにより、そのコマンドを、実行のために適切な1つ以上の電子デバイスへと転送してもよい。コマンドの受信に応じて、1つ以上の電子デバイスはコマンドを実行し、それらの現在の状態をユーザデバイスへと送信してもよい。
システムの概要
【0024】
図1は、様々な実施例に係る、電子デバイスを制御する仮想アシスタントを実装する例示的なシステム100を示す。用語「仮想アシスタント」、「デジタルアシスタント」、「インテリジェント自動アシスタント」、又は「自動デジタルアシスタント」は、発語及び/又はテキスト形式の自然言語入力を解釈してユーザ意図を推測し、推測されたユーザ意図に基づきアクションを実行する任意の情報処理システムを指してもよい。例えば、推測されたユーザ意図に基づきアクションを実行するために、システムは、推測されたユーザ意図を実現するように設計されたステップ及びパラメータを含むタスクフローを特定すること、推測されたユーザ意図からの具体的な要件をタスクフローへと入力すること、プログラム、方法、サービス、API等を呼び出すことによってタスクフローを実行すること、及びユーザへの出力応答を可聴(例えば、発語)及び/又は視覚形式で生成することのうちの1つ以上を実行してもよい。
【0025】
仮想アシスタントは、自然言語コマンド、要求、陳述、叙述、及び/又は照会の形式で少なくとも部分的にユーザ要求を受け入れることができてもよい。通常、ユーザ要求は仮想アシスタントによる情報回答又はタスクの実行のいずれかを求める。ユーザ要求への満足な応答は、要求された情報回答の提供、要求されたタスクの実行のいずれか、又はその2つの組み合わせを含んでもよい。例えば、ユーザは仮想アシスタントに「私は今どこにいますか?」等の質問をしてもよい。ユーザの現在の場所に基づき、仮想アシスタントは、「あなたはセントラルパーク内にいます」と回答してもよい。ユーザはまた、例えば、「今日午後4時に母に電話することを私に思い出させてください」と、タスクの実行を要求してもよい。それに応じて、仮想アシスタントは要求を認識し、次に、ユーザの電子スケジュール内に適当なリマインダ項目を作成してもよい。要求されたタスクの実行中、仮想アシスタントは、長時間にわたって複数回の情報の交換を伴う連続的なダイアログにおいて、ユーザと対話してもよい。情報又は様々なタスクの実行を要求するために仮想アシスタントと対話する方法は他にも数多く存在する。言葉による応答を提供し、プログラムされたアクションを取ることに加えて、仮想アシスタントは、他の視覚又はオーディオ形式の応答を(例えば、テキスト、警報、音楽、ビデオ、アニメーション等として)提供してもよい。
【0026】
仮想アシスタントの1つの例が、その開示全体が参照により本明細書に組み込まれる2011年1月10日出願の「Intelligent Automated Assistant」に対する出願人の米国特許出願第12/987,982号に示されている。
【0027】
図1に示すように、いくつかの実施例では、仮想アシスタントはクライアント-サーバモデルに従って実装されてもよい。仮想アシスタントは、ユーザデバイス102上で実行されるクライアント側部分、及びサーバシステム110上で実行されるサーバ側部分を含んでもよい。ユーザデバイス102は、携帯電話、タブレットコンピュータ、ポータブルメディアプレーヤ、デスクトップコンピュータ、ラップトップコンピュータ、PDA、テレビ、テレビセットトップボックス、着用可能電子デバイス等の任意の電子デバイスを含んでもよく、かつ、インターネット、イントラネット、又は任意の他の有線若しくは無線パブリック若しくはプライベートネットワークを含み得る1つ以上のネットワーク108を介してサーバシステム110と通信してもよい。ユーザデバイス102上で実行されるクライアント側部分は、ユーザ対応入力及び出力処理並びにサーバシステム110との通信等のクライアント側機能を提供してもよい。サーバシステム110は、それぞれのユーザデバイス102上に常駐する任意の数のクライアントに対してサーバ側機能を提供してもよい。
【0028】
サーバシステム110は、クライアント対応I/Oインタフェース122、1つ以上の処理モジュール118、データ及びモデル記憶装置120、並びに外部サービスへのI/Oインタフェース116を含み得る、1つ以上の仮想アシスタントサーバ114を含んでもよい。クライアント対応I/Oインタフェース122は、仮想アシスタントサーバ114のためのクライアント対応入力及び出力処理を促進してもよい。1つ以上の処理モジュール118は、データ及びモデル記憶装置120を利用して、自然言語入力に基づきユーザの意図を判定し、推測されたユーザ意図に基づきタスクを実行してもよい。更に、データ及びモデル記憶装置120は、ユーザデバイス102及び/又はサーバシステム110によって制御され得る電子デバイス(例えば、電子デバイス128、130、及び132)のうちの1つ以上に関連付けられた一意識別子、状態、種類、場所、及び任意の他の関連情報を記憶してもよい。いくつかの実施例では、仮想アシスタントサーバ114は、タスクを完了させるか又は情報を取得するために、ネットワーク(単数又は複数)108を介して、電話サービス、カレンダーサービス、情報サービス、メッセージングサービス、ナビゲーションサービス等の外部サービス124と通信してもよい。外部サービスへのI/Oインタフェース116はこのような通信を促進してもよい。
【0029】
サーバシステム110は、1つ以上のスタンドアロンデータ処理デバイス、又はコンピュータの分散型ネットワーク上に実装されてもよい。いくつかの実施例では、サーバシステム110は、また、様々な仮想デバイス及び/又はサードパーティサービスプロバイダ(例えば、サードパーティクラウドサービスプロバイダ)のサービスを利用して、サーバシステム110の基本的なコンピューティングリソース及び/又はインフラストラクチャリソースを提供してもよい。
【0030】
ユーザデバイス102は、1つ以上のネットワーク126を介して、電子デバイス128、130、及び132に更に結合されてもよい。電子デバイス128、130、及び132は、電球(例えば、2値的なオン/オフ状態、数値的な明暗調整可能状態、色状態等を有する)、ガレージドア(例えば、2値的な開/閉状態を有する)、ドアの鍵(例えば、2値的な施錠/非施錠状態を有する)、サーモスタット(例えば、高温、低温、時間ベースの温度等の1つ以上の数値的な温度状態を含む)、電気コンセント(例えば、2値的なオン/オフ状態を有する)、スイッチ(例えば、2値的なオン/オフ状態を有する)等の、任意の種類の遠隔で制御される電子デバイスを含んでもよい。ネットワーク(単数又は複数)126は、WiFiネットワーク又は任意の他の有線若しくは無線パブリック若しくはプライベートローカルネットワークを含んでもよい。追加で又は代替として、ユーザデバイス102は、例えば、Bluetooth(商標登録)、BTLE、見通し線、ピアツーピア、又は別の無線ベースの通信若しくは他の無線通信を使用して、電子デバイス128、130、又は132と直接通信するように結合されてもよい。したがって、図示された実施例では、ユーザデバイス102は、電子デバイス128、130、及び132と直接通信するか又は同じローカルネットワークを介して通信することができるように、それらの付近に配置されてもよい。例えば、ユーザデバイス102並びに電子デバイス128、130、及び132は同じ家又は建物内に配置されてもよく、ネットワーク(単数又は複数)126はその家又は建物のWiFiネットワークを含んでもよい。以下で図5、8、及び9に関連して更に詳しく説明されるように、ユーザデバイス102は、ユーザによってユーザデバイス102へと提供された自然言語発語入力に応じて、電子デバイス128、130、及び132のうちのいずれかを制御するコマンドを発行してもよい。
【0031】
3つの電子デバイス128、130、及び132のみが示されているが、システム100は任意の数の電子デバイスを含んでもよいことを理解されたい。更に、仮想アシスタントの機能は、クライアント側部分及びサーバ側部分の両方を含むものとして図1に示されるが、いくつかの実施例では、アシスタントの機能は、ユーザデバイスにインストールされたスタンドアロンアプリケーションとして実装されてもよい。更に、仮想アシスタントのクライアント部分とサーバ部分との間の機能の分配は実施例によって異なってもよい。例えば、いくつかの実施例では、ユーザデバイス102上で実行されるクライアントは、ユーザ対応入力及び出力処理機能のみを提供し、仮想アシスタントの全ての他の機能をバックエンドサーバに委ねるシンクライアントであってもよい。
【0032】
図2は、様々な実施例に係る、遠隔で電子デバイスを制御する仮想アシスタントを実装する他の例示的なシステム200を示す。システム100と同様、システム200は、ネットワーク(単数又は複数)108によって通信可能に結合されたユーザデバイス102、サーバシステム110、及び外部サービス124を含んでもよい。ただし、システム100とは対照的に、ユーザデバイス102は、電子デバイス128、130、及び132に結合されなくてもよい。その代わりに、システム200は、ネットワーク(単数又は複数)108を介してユーザデバイス102及び/又はサーバシステム110と通信するように結合され、かつネットワーク(単数又は複数)126を介して電子デバイス128、130、及び132と通信するように結合された、第2のユーザデバイス134を含んでもよい。この構成は、ユーザ及びユーザデバイス102が電子デバイス128、130、及び132から離れて配置される(例えば、ユーザ及びユーザデバイス102がユーザのオフィスに配置され、電子デバイス128、130、及び132がユーザの自宅に配置される)状況を表してもよい。
【0033】
第2のユーザデバイス134は、携帯電話、タブレットコンピュータ、ポータブルメディアプレーヤ、デスクトップコンピュータ、ラップトップコンピュータ、PDA、テレビ、テレビセットトップボックス、着用可能電子デバイス等の任意の種類の電子デバイスを含んでもよく、かつ、ユーザデバイス102及び/又はサーバシステム110からコマンドを受信し、電子デバイス128、130、及び132へとコマンドを発行するように構成されてもよい。以下で図6に関連して更に詳しく説明されるように、第2のユーザデバイス134は、ユーザによってユーザデバイス102へと提供された自然言語発語入力に応じて、電子デバイス128、130、及び132のうちのいずれかを制御するコマンドを発行してもよい。
ユーザデバイス
【0034】
図3は、様々な実施例に係る、ユーザデバイス102(又は第2のユーザデバイス134)のブロック図である。図に示すように、ユーザデバイス102は、メモリインタフェース302、1つ以上のプロセッサ304、及び周辺機器インタフェース306を含んでもよい。ユーザデバイス102内の様々な構成要素は、1つ以上の通信バス又は信号線によって互いに結合されてもよい。ユーザデバイス102は、周辺機器インタフェース306に結合される様々なセンサ、サブシステム、及び周辺機器デバイスを更に含んでもよい。センサ、サブシステム、及び周辺機器は情報を収集し、及び/又はユーザ機器102の種々の機能性を促進する。
【0035】
例えば、ユーザデバイス102は、向き、光、及び近接検知機能を促進するために周辺機器インタフェース306に結合された、動きセンサ310、光センサ312、及び近接センサ314を含んでもよい。関連機能を促進するために、測位システム(例えば、GPS受信機)、温度センサ、生体測定センサ、ジャイロスコープ、コンパス、及び加速度計等の、1つ以上の他のセンサ316も周辺インタフェース306に接続される。
【0036】
いくつかの実施例では、カメラサブシステム320及び光学センサ322は、写真の撮影及びビデオクリップの録画等の、カメラ機能を促進するために利用されてもよい。様々な通信ポート、無線周波数受信器及び送信器、並びに/又は光(例えば、赤外線)受信器及び送信器を含み得る、1つ以上の有線及び/又は無線通信サブシステム324を通じて、通信機能が促進されてもよい。オーディオサブシステム326をスピーカー328及びマイクロフォン330に結合することによって、音声認識機能、音声複製機能、デジタル録音機能、及び電話機能等の音声対応機能を促進してもよい。
【0037】
いくつかの実施例では、ユーザデバイス102は、周辺機器インタフェース306に結合されたI/Oサブシステム340を更に含んでもよい。I/Oサブシステム340は、タッチスクリーンコントローラ342及び/又は他の入力コントローラ(単数又は複数)344を含んでもよい。タッチスクリーンコントローラ342は、タッチスクリーン346に結合されてもよい。タッチスクリーン346及びタッチスクリーンコントローラ342は、例えば、容量性、抵抗性、赤外線、及び表面弾性波技術、並びに近接センサアレイ等の複数のタッチ感知技術のうちのいずれかを用いて、接触及び移動又は中断を検出してもよい。他の入力コントローラ(単数又は複数)344は、1つ以上のボタン、ロッカスイッチ、サムホイール、赤外線ポート、USBポート、及び/又はスタイラスなどのポインタ機器等の、他の入力/制御機器348に結合することができる。
【0038】
いくつかの実施例では、ユーザデバイス102は、メモリ350に結合されたメモリインタフェース302を更に含んでもよい。メモリ350は、任意の電子、磁気、光、電磁気、赤外線、若しくは半導体のシステム、装置、又はデバイス、ポータブルコンピュータディスケット(磁気)、ランダムアクセスメモリ(RAM)(磁気)、読み出し専用メモリ(ROM)(磁気)、消去可能なプログラマブル読み出し専用メモリ(EPROM)(磁気)、CD、CD-R、CD-RW、DVD、DVD-R、若しくはDVD-RW等のポータブル光ディスク、又はコンパクトフラッシュカード、セキュリティ保護されたデジタルカード、USBメモリデバイス、メモリスティック等のフラッシュメモリ等を含んでもよい。いくつかの実施例では、メモリ350の非一時的コンピュータ可読記憶媒体は、コンピュータベースのシステム、プロセッサを含むシステム、又は、命令実行システム、装置、若しくはデバイスから命令をフェッチし、それらの命令を実行し得る他のシステム等の、命令実行システム、装置、又はデバイスによって、又はそれらと共に使用する(例えば、以下で説明される処理500、600、700、800、又は900のうちのいくつか若しくは全てを実行する)命令を記憶するために使用されてもよい。他の実施例では、(例えば、以下で説明される処理500、600、700、800、又は900を実行する)命令は、サーバシステム110の非一時的コンピュータ可読記憶媒体上に記憶されてもよく、又はメモリ350の非一時的コンピュータ可読記憶媒体とサーバシステム110の非一時的コンピュータ可読記憶媒体との間で分配されてもよい。本文書のコンテキストでは、「非一時的コンピュータ可読記憶媒体」は、命令実行システム、装置、若しくはデバイスによって、又はそれらに関連して使用するプログラムを、含むか又は記憶することが可能な、任意の媒体であってもよい。
【0039】
いくつかの実施例では、メモリ350は、オペレーティングシステム352、通信モジュール354、グラフィカルユーザインタフェースモジュール356、センサ処理モジュール358、電話モジュール360、及びアプリケーション362を記憶してもよい。オペレーティングシステム352は、基本システムサービスを処理する命令、及びハードウェア依存タスクを実行する命令を含んでもよい。通信モジュール354は、1つ以上の追加デバイス、1つ以上のコンピュータ及び/又は1つ以上のサーバとの通信を促進してもよい。グラフィカルユーザインタフェースモジュール356はグラフィックユーザインタフェース処理を促進してもよい。センサ処理モジュール358はセンサ関連の処理及び機能を促進してもよい。電話モジュール360は電話関連のプロセス及び機能を促進してもよい。アプリケーションモジュール362は、電子メッセージング、ウェブブラウジング、メディア処理、ナビゲーション、イメージング、並びに/又はその他のプロセス及び機能等の、ユーザアプリケーションの様々な機能を促進してもよい。
【0040】
メモリ350はまた、仮想アシスタントのクライアント側機能を提供するために、(例えば、仮想アシスタントクライアントモジュール364内の)クライアント側仮想アシスタント命令、並びに様々なユーザデータ366(例えば、ユーザ固有の語彙データ、嗜好データ、及び/若しくはユーザの電子アドレス帳、to-doリスト、買い物リスト等のその他のデータ)も記憶してもよい。
【0041】
様々な実施例では、仮想アシスタントクライアントモジュール364は、ユーザデバイス102の様々なユーザインタフェース(例えば、I/Oサブシステム340、オーディオサブシステム326等)を介して、音声入力(例えば、発語入力)、テキスト入力、タッチ入力、及び/又はジェスチャ入力を受け入れることができてもよい。仮想アシスタントクライアントモジュール364はまた、オーディオ(例えば、発語出力)、視覚、及び/又は触覚形式の出力を提供することもできてもよい。例えば、出力は、音声、音響、警報、テキストメッセージ、メニュー、グラフィック、ビデオ、アニメーション、振動、及び/又は上記の2つ以上の組み合わせとして提供されてもよい。動作中、仮想アシスタントクライアントモジュール364は、通信サブシステム324を使用して仮想アシスタントサーバと通信してもよい。
【0042】
いくつかの実施例では、仮想アシスタントクライアントモジュール364は、ユーザ、現在のユーザ対話及び/又は現在のユーザ入力に関連付けられたコンテキストを確立するために、様々なセンサ、サブシステム、及び周辺機器を利用してユーザデバイス102の周囲環境から追加情報を収集してもよい。いくつかの実施例では、仮想アシスタントクライアントモジュール364は、ユーザの意図の推測を助けるために、ユーザ入力と共にコンテキスト情報又はそのサブセットを仮想アシスタントサーバに提供してもよい。仮想アシスタントはまた、ユーザへの出力をどのように準備し、配信するかを決定するために、コンテキスト情報を使用してもよい。
【0043】
いくつかの実施例では、ユーザ入力に付随するコンテキスト情報は、照明、周囲ノイズ、周囲温度、周囲環境の画像又はビデオ、別の物体への距離等のセンサ情報を含んでもよい。コンテキスト情報は、ユーザデバイス102の物理的状態(例えば、デバイスの向き、デバイスの場所、デバイスの温度、電力レベル、速度、加速度、動きパターン、セルラー信号強度等)又はユーザデバイス102のソフトウェア状態(例えば、実行中の処理、インストールされているプログラム、過去及び現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量等)に関連付けられた情報を更に含んでもよい。これらのコンテキスト情報の種類のうちの任意のものが、ユーザ入力に関連付けられたコンテキスト情報として、仮想アシスタントサーバ114へと提供されてもよい。
【0044】
いくつかの実施例では、仮想アシスタントクライアントモジュール364は、仮想アシスタントサーバ114からの要求に応じて、ユーザデバイス102上に記憶されている情報(例えば、ユーザデータ366)を選択的に提供してもよい。仮想アシスタントクライアントモジュール364はまた、仮想アシスタントサーバ114による要求に応じて、自然言語ダイアログ又は他のユーザインタフェースを介してユーザから追加入力を引き出してもよい。仮想アシスタントクライアントモジュール364は、意図推測及び/又はユーザ要求内に表されているユーザの意図の達成において仮想アシスタントサーバ114を助けるために、追加入力を仮想アシスタントサーバ114に渡してもよい。
【0045】
メモリ350は、ユーザデバイス102及び/又はサーバシステム110によって制御され得る電子デバイス(例えば、電子デバイス128、130、及び132)のうちの1つ以上に関連付けられた一意識別子、状態、種類、場所、及び任意の他の関連情報を含み得る、電子デバイスデータ370を更に記憶してもよい。図4は、7つの異なる電子デバイスに関する電子デバイスデータ370内に記憶され得るエントリの視覚表現を示す。図示されるように、各エントリは、電子デバイスの一意の名前、種類、及び状態を含む。仮想アシスタントサーバ114のデータ及びモデル記憶装置120は、メモリ350の電子デバイスデータ370のものとは別個に維持され得る、電子デバイスに関する類似又は同一のエントリを含んでもよい。
【0046】
前に戻って、図3に示すように、メモリ350は、電子デバイスデータ370内の、電子デバイスに関するエントリを作成及び更新し、システム100の電子デバイスと通信し、サーバシステム110と通信する(例えば、デーモンモジュール368内の)命令を更に含んでもよい。例えば、電子デバイスをシステム100へと追加するために、電子デバイスに関連付けられたソフトウェアアプリケーションが、デーモンモジュール368を実行しているプロセッサ(単数又は複数)304と通信して、電子デバイスの一意の名前、種類、状態、場所等をユーザデバイス102へと提供してもよい。ソフトウェアアプリケーションは、ユーザが一意の名前を任意の所望の様式で入力することを可能にしてもよい。例えば、ユーザが特定のデバイスに名前を付けることを可能にするために、共通の名前及び/又は自由形式のテキストフィールドを有するドロップダウンボックスがアプリケーション内で提供されてもよい。電子デバイスの種類、状態、及び/又は場所は、予め特定されているか、又はソフトウェアアプリケーションによって、電子デバイスとの通信を介して特定されてもよい。デーモンモジュール368を実行しているプロセッサ(単数又は複数)304は、この情報をエントリとして電子デバイスデータ370内に記憶してもよく、またこの情報をサーバシステム110へと送信して、データ及びモデル記憶装置120内に記憶してもよい。更に、デーモンモジュール368は、プロセッサ(単数又は複数)304によって実行されたときに、電子デバイス128、130、及び132へと提供されるコマンドをサーバシステム110からネットワーク(単数又は複数)を介して受信してもよく、かつそれらのコマンドを適切な電子デバイスへと送信してもよい。デーモンモジュール368を実行しているプロセッサ(単数又は複数)304は更に、状態の更新を電子デバイス128、130、及び132から受信し、電子デバイスデータ370内の対応するエントリを更新してデバイスの更新された状態を反映し、サーバシステム110がデータ及びモデル記憶装置120内の対応するエントリを更新してデバイスの更新された状態を反映できるように状態の更新をサーバシステム110へと送信してもよい。
【0047】
更に、デーモンモジュール368は、他のデバイス及びソフトウェアアプリケーションによる電子デバイスデータ370へのアクセスを管理する命令を含んでもよい。例えば、デーモンモジュール368は、プロセッサ(単数又は複数)304によって実行されたときに、サーバシステム110による全ての電子デバイスデータ370へのアクセスを許可する一方で、他のデバイス又はソフトウェアアプリケーションによるアクセスを電子デバイスデータ370の一部のみへと制限してもよい。これは、異なる製造業者によって作製された電子デバイスを制御するためにユーザデバイス102を使用するときに役立つ場合がある。これらの状況では、各製造業者からのデバイス又はソフトウェアアプリケーションは、APIを使用してデーモンモジュール368と通信してもよく、デーモンモジュール368は、それらのアクセスを、各製造業者のそれぞれの電子デバイスに対応する、電子デバイスデータ370の部分のみへと制限してもよい。例えば、企業Xがユーザデバイス102によって制御され得る電球を製造する場合があり、かつ企業Yがユーザデバイス102によって制御され得るサーモスタットを製造する場合がある。デーモンモジュール368は、ユーザデバイス102がコマンドを電子デバイスへと発行し、かつ、電子デバイスデータ370を更新するための、電子デバイスに関連付けられた状態情報を受信することができるように、ユーザデバイス102と電球及びサーモスタットのそれぞれとの間の通信を容易にしてもよい。ただし、デーモンモジュール368は、電球(及びユーザデバイス102上で実行されている、関連付けられたソフトウェアアプリケーション)が電子デバイスデータ370内の情報に対して有するアクセスを、電球(及び場合によっては企業Xによって製造された任意の他の電子デバイス)に関連付けられた情報のみに制限してもよい。同様に、デーモンモジュール368は、サーモスタット(及びユーザデバイス102上で実行されている、関連付けられたソフトウェアアプリケーション)が電子デバイスデータ370内の情報に対して有するアクセスを、サーモスタット(及び場合によっては企業Yによって製造された任意の他の電子デバイス)に関連付けられた情報のみに制限してもよい。ただし、デーモンモジュール368は、電子デバイスデータ370内の全ての情報へのアクセスをサーバシステム110に許可してもよい。
【0048】
様々な実施例では、メモリ350は追加の命令又はより少数の命令を含んでもよい。更に、ユーザデバイス102の様々な機能は、1つ以上の信号処理回路及び/又は特定用途向け集積回路の形態を含む、ハードウェアの形態及び/又はファームウェアの形態で実装されてもよい。
電子デバイスのローカル制御
【0049】
図5は、仮想アシスタントを使用して電子デバイスを制御する例示的な処理500を示す。いくつかの実施例では、処理500は、図1に示すシステム100に類似するか又は同一のシステムを使用して実行されてもよい。これらの実施例では、処理500のブロックは、ユーザデバイス102及びサーバシステム110の両方によって実行されてもよい。具体的には、図5の左側のブロックはユーザデバイス102によって実行されてもよく、図5の右側のブロックはサーバシステム110によって実行されてもよい。
【0050】
ブロック502では、ユーザ発語を含むオーディオ入力がユーザデバイスで受信されてもよい。いくつかの実施例では、ユーザデバイス(例えば、ユーザデバイス102)は、ユーザの発語を含むオーディオ入力をマイクロフォン(例えば、マイクロフォン330)を介して受信してもよい。マイクロフォンはオーディオ入力をアナログ又はデジタル表現へと変換し、オーディオデータを1つ以上のプロセッサ(例えば、プロセッサ(単数又は複数)304)へと提供してもよい。
【0051】
ブロック504では、ブロック502で受信したオーディオ入力に対応するデータが、処理のために1つ以上のサーバへと送信されてもよい。例えば、ユーザデバイス102は、オーディオ入力に対応するデータを、ネットワーク(単数又は複数)108を介してサーバシステム110の仮想アシスタントサーバ114へと送信してもよい。
【0052】
ブロック506では、ブロック504でユーザデバイスによって送信されたオーディオ入力に対応するデータが1つ以上のサーバによって受信されてもよい。例えば、サーバシステム110の仮想アシスタントサーバ114は、ユーザデバイス102によってネットワーク(単数又は複数)108を介して送信されたオーディオ入力に対応するデータを受信してもよい。
【0053】
ブロック508では、ユーザ発語をユーザ発語のテキスト表現へと変換するために、オーディオ入力に対応するデータに対する発語テキスト化変換が実行されてもよい。ユーザ発語は、任意の既知の発語テキスト化変換処理を使用して変換されてもよい。
【0054】
ブロック510では、ブロック508で生成されたテキスト表現に少なくとも部分的に基づき、1つ以上の電子デバイスが特定されてもよい。いくつかの実施例では、ブロック510は、1つ以上の電子デバイスへとコマンドを発行するユーザ意図を特定するためにユーザ入力のテキスト表現を処理することを含んでもよい。上述のように、サーバシステム110は、システム100を使用して制御され得る電子デバイスに関連付けられた一意識別子、状態、種類、場所、及び任意の他の関連情報を記憶し得る、1つ以上のデータ及びモデル記憶装置120を含んでもよい。したがって、ブロック510は、データモデル及び記憶装置120内に記憶された関連情報を有する電子デバイスのうちの1つ以上を特定することを含んでもよい。
【0055】
1つ以上の電子デバイスは、任意の数の方法で特定されてもよい。いくつかの実施例では、1つ以上の電子デバイスは、テキスト表現を解析して、システム100によってサポートされる電子デバイスに対応する1組の名詞のうちのいずれかを特定することによって特定されてもよい。例えば、1組の名詞は、電子デバイスデータ370並びにデータ及びモデル記憶装置120内に記憶された、電子デバイスの一意の名前、電子デバイスのあり得る種類及びそれらの同義語(例えば、ガレージドア、サーモスタット、照明、明暗調整可能な照明、スイッチ、色変更可能な照明、電球、ランプ、鍵、コンセント、ソケット等)、あり得るデバイス状態のカテゴリ(例えば、音量、温度、明るさ、色等)等を含んでもよい。
【0056】
図4の例示的な電子デバイスのエントリを使用して説明すると、1組の名詞は、7つの電子デバイスの一意の名前(例えば、「ガレージドア」、「2階サーモスタット」、「1階サーモスタット」、「居間ランプ1」、「居間ランプ2」、「玄関」、及び「トースターコンセント」)、電子デバイスのあり得る種類及びそれらの同義語(例えば、「ガレージドア」、「サーモスタット」、「照明」、「電球」、「ランプ」、「鍵」、「コンセント」、「ソケット」等)、及びあり得るデバイス状態のカテゴリ(例えば、温度)を含んでもよい。このため、ブロック508で生成されたユーザ発語のテキスト表現が「玄関を施錠する」を含む場合、1組の名詞のうちのいずれかを検索するために、処理モジュール118及びデータ及びモデル記憶装置120を使用して、テキスト表現が処理されてもよい。検索の結果、テキスト表現が一意の名前「玄関」を含むと判定されてもよく、かつブロック510で特定された電子デバイスがこのデバイスを含んでもよい。ユーザ発語のテキスト表現に応じて、ブロック510で2つ以上の電子デバイスが特定されてもよいことを理解されたい。例えば、ブロック508で生成されたユーザ発語のテキスト表現が、代わりに「全ての電球をオフにする」を含む場合、1組の名詞のうちのいずれかを検索するために、処理モジュール118及びデータ及びモデル記憶装置120を使用して、テキスト表現が処理されてもよい。検索の結果、テキスト表現があり得るデバイスの種類「照明」の同義語「電球」を含み、かつユーザからの命令が、そのような種類の全てのデバイスをオフにすることであったと判定されてもよい。その結果、ブロック510で特定された電子デバイスは、「居間ランプ1」及び「居間ランプ2」の両方を含んでもよい。
【0057】
いくつかの実施例では、上述の1組の名詞のみを使用して適切な電子デバイスを特定することが難しくなり得る。例えば、「照明をオンにする」を含むテキスト表現は、「居間ランプ1」及び「居間ランプ2」の両方との種類の一致を発生させる場合がある。これらの実施例では、ブロック510は、一致する可能性がある電子デバイス間の曖昧さをなくすために、ユーザデバイス102から受信した(例えば、ブロック506でオーディオ入力に対応するデータの一部として受信した)コンテキスト情報を使用することを更に含んでもよい。センサ情報(例えば、照明、周囲ノイズ、周囲温度、周囲環境の画像又はビデオ、別の物体への距離等)、ユーザデバイス102の物理的状態(例えば、デバイスの向き、デバイスの場所、デバイスの温度、電力レベル、速度、加速度、動きパターン、セルラー信号強度等)、ユーザデバイス102のソフトウェア状態(例えば、実行中の処理、インストールされているプログラム、過去及び現在のネットワーク活動、バックグラウンドサービス、エラーログ、リソース使用量等)に関連付けられた情報等の任意の種類のコンテキスト情報が使用されてもよい。例えば、上記で提供した「照明をオンにする」の例を引き続き使用すると、ブロック502でユーザデバイス102がオーディオ入力を受け取ったときのユーザデバイス102の場所及び向きが、ブロック504及び506でサーバシステム110へと提供されてもよい。このコンテキスト情報は、ユーザ発語を受信したときのユーザデバイス102の場所及び/又はユーザデバイス102が向けられていた方向を特定するために使用されてもよい。データ及びモデル記憶装置120内に記憶されている「居間ランプ1」及び「居間ランプ2」の既知の場所と比較したときに最も近い照明又はユーザデバイス102が指していた照明が、電子デバイスとしてブロック510で選択されてもよい。ブロック510では、一致する可能性がある電子デバイス間の曖昧さをなくすために、他の種類のコンテキスト情報が類似した方法で使用されてもよく、この曖昧さをなくすことは、一致する可能性がある電子デバイスのうちの1つ以上がユーザ発語のテキスト表現によって参照される可能性を上昇又は低下させるコンテキスト情報を特定することによって行う。
【0058】
更に他の実施例では、一致する可能性がある電子デバイス間の曖昧さをなくすために、又は適切な電子デバイスを特定するために、ユーザ入力のテキスト表現内の状態に関連付けられた語が、追加で又は代替として使用されてもよい。例えば、「68にする」を含むテキスト表現は、上述の1組の名詞を使用したときに、いかなる一致も発生させない場合がある。このため、これらの実施例では、ブロック510は、システム100によってサポートされる電子デバイスに対応する状態に関連付けられた1組の語のうちのいずれかを特定するために、テキスト表現を解析することを更に含んでもよい。例えば、状態に関連付けられた1組の語は、電子デバイスのあり得る状態及びそれらの同義語(例えば、開、閉、閉じる、閉める、オン、オフ、アクティブ、非アクティブ、施錠する、施錠、色等)、状態の値の種類(例えば、2値、浮動小数点数等)、デバイスの状態に関するクエリ、状態の特定の種類に関連付けられた形容詞(例えば、より暖かい、より涼しい、より明るい、より暗い、色等)等を含んでもよい。「68にする」を解析するために使用されたとき、テキスト表現は浮動小数点数値「68」を含むと判定されてもよい。図4に示すエントリと比較したときに、「2階サーモスタット」及び「1階サーモスタット」のみが状態の浮動小数点数値を受け入れると判定されてもよい。2つのサーモスタット間の曖昧さをなくすために、ユーザデバイス102の場所等のコンテキスト情報を使用して、よりユーザデバイス102に近いサーモスタットが、ブロック510で特定された電子デバイスとして選択されてもよい。同様に、テキスト表現が代わりに「より明るくする」を含んでいた場合、状態に関連付けられた1組の語を使用して、テキスト表現が、種類「照明」を有するデバイスの状態を説明する形容詞である語「より明るい」を含むかどうかを判定してもよい。2つの照明間の曖昧さをなくすために、ユーザデバイス102の場所等のコンテキスト情報を使用して、よりユーザデバイス102に近い照明が、ブロック510で特定された電子デバイスとして選択されてもよい。
【0059】
ブロック512では、ブロック510で特定された1つ以上の電子デバイスのそれぞれによって実行されるコマンドが特定されてもよい。実行されるコマンド(単数又は複数)は、任意の数の方法で特定されてもよい。いくつかの実施例では、実行されるコマンド(単数又は複数)は、ユーザ発語のテキスト表現を解析して、状態に関連付けられた1組の語(例えば、電子デバイスのあり得る状態及びそれらの同義語、状態の値の種類、デバイスの状態に関するクエリ、状態の特定の種類に関連付けられた形容詞)のうちのいずれかを特定することによって特定されてもよい。その後、特定された状態又は動作が、ブロック510で特定された1つ以上の電子デバイスのそれぞれによって実行されるコマンドを特定するために使用されてもよい。例えば、ユーザ発語のテキスト表現が「玄関を施錠する」を含む場合、テキスト表現が1組の状態からの状態「施錠」を含むと判定されてもよい。したがって、ブロック512では、「施錠」状態へと遷移するコマンドが、ブロック510で特定された電子デバイス「玄関」によって実行されるコマンドとして生成及び特定されてもよい。上記の実施例では単一の電子デバイスに対する単一のコマンドが特定されるが、複数の電子デバイスがブロック510で特定された場合、複数のコマンドが特定されてもよいことを理解されたい。例えば、テキスト表現「全ての照明をオンにする」により、ブロック512で、「居間ランプ1」及び「居間ランプ2」のそれぞれが「オン」状態へと遷移するコマンドが特定されてもよい。
【0060】
いくつかの実施例では、ユーザ発語のテキスト表現が、状態の特定の種類に関連付けられた形容詞(例えば、より暖かい、より涼しい、より明るい、より暗い等)のうちの1つを含む場合、ブロック512は、ブロック510で特定された電子デバイスの状態を、その現在の値に対する相対的な値へと設定するコマンドを特定することを含んでもよい。例えば、テキスト表現が「より暖かくする」を含む場合、ブロック514で特定されるコマンドは、ブロック510で特定されたサーモスタットの温度を所定の量だけ上昇させるコマンドであってもよい。電子デバイスの実際の状態は、データ及びモデル記憶装置120内に記憶されている状態と異なる場合があるため、コマンドは、状態値を特定の(例えば、データ及びモデル記憶装置120内に記憶されているサーモスタットの状態を使用して特定された)値へと遷移させるコマンドではなく、状態値を電子デバイスの現在の値に対する相対的な量だけ変更するコマンドであってもよい。
【0061】
いくつかの実施例では、ユーザ発語のテキスト表現がデバイスの状態に関するクエリを含む場合、ブロック512は、特定された電子デバイス(単数又は複数)に対するクエリをユーザデバイス102に実行させる命令を特定することを含んでもよい。例えば、テキスト表現が「ガレージドアは閉まっている?」を含む場合、ブロック514で特定されるコマンドは、電子デバイス「ガレージドア」の状態に関するクエリを実行するコマンドであってもよい。
【0062】
ブロック514では、ブロック510で特定された1つ以上の電子デバイスのそれぞれの識別子、及びブロック512で特定された、1つ以上の電子デバイスによって実行されるコマンド(単数又は複数)がユーザデバイスへと送信されてもよい。例えば、サーバシステム110は、ブロック510で特定された電子デバイスのそれぞれに関連付けられた一意識別子、及び1つ以上の電子デバイスによって実行されるコマンド(単数又は複数)を、ネットワーク(単数又は複数)108を介してユーザデバイス102へと送信してもよい。
【0063】
いくつかの実施例では、ブロック508で生成されたユーザ発語のテキスト表現もまた、ブロック514でユーザデバイスへと送信されてもよい。これらの実施例では、ブロック510及び514もまた、ユーザデバイス上で実行されてもよい。送信されたテキスト表現は、1つ以上の電子デバイスを特定するために、かつ/又は電子デバイスデータ370内の1つ以上の電子デバイスによって実行されるコマンド(単数又は複数)を特定するために、ユーザデバイスによって使用されてもよい。これが望まれ得るのは、例えば、ユーザデバイス内の電子デバイスデータ370が1つ以上のサーバ上のデータよりも新しい場合である。そのような場合、ユーザデバイスは、1つ以上のサーバのデータに含まれていない電子デバイス及び/又はコマンドを特定してもよい。
【0064】
他の実施例では、ブロック510及び/又は512で、電子デバイスのうちの1つ以上を特定すること及び/又は1つ以上の電子デバイスによって実行されるコマンド(単数又は複数)を特定することに好適であり得る重要な語又は用語を特定するために、1つ以上のサーバでテキスト表現が解析されてもよい。これらの実施例では、解析された重要な語又は用語もまた、ブロック514でユーザデバイスへと送信されてもよい。送信された重要な語又は用語は、1つ以上の電子デバイスを特定するために、かつ/又は電子デバイスデータ370内の1つ以上の電子デバイスによって実行されるコマンド(単数又は複数)を特定するために、ユーザデバイスによって使用されてもよい。これが望まれ得るのは、例えば、ユーザデバイス内の電子デバイスデータ370が1つ以上のサーバ上のデータよりも新しい場合である。そのような場合、ユーザデバイスは、1つ以上のサーバのデータに含まれていない電子デバイス及び/又はコマンドを特定してもよい。
【0065】
ブロック516では、1つ以上のサーバによって送信された1つ以上の電子デバイスのそれぞれの識別子及びコマンド(単数又は複数)がユーザデバイスによって受信されてもよい。例えば、ユーザデバイス102が、ブロック514でサーバシステム110によって送信された一意識別子(単数又は複数)及びコマンド(単数又は複数)を、ネットワーク(単数又は複数)108を介して受信してもよい。
【0066】
ブロック518では、ユーザデバイスが、ブロック516で受信したコマンド(単数又は複数)を、ブロック516で受信した識別子(単数又は複数)に関連付けられた電子デバイス(単数又は複数)へと送信してもよい。例えば、ユーザデバイス102がブロック516で、電子デバイス128(例えば、「玄関」)に関連付けられた識別子、及び電子デバイスを「施錠」状態へと遷移させるコマンドを受信した場合、ユーザデバイス102は、「施錠」状態へと遷移させるコマンドを、ネットワーク(単数又は複数)126を介して電子デバイス128へと送信してもよい。ユーザデバイス102がブロック516で追加の識別子及びコマンドを受信した場合、ユーザデバイス102は、それらのコマンドをブロック518で特定された電子デバイスへと更に送信してもよい。
【0067】
いくつかの実施例では、電子デバイスの実際の状態は、ユーザデバイス102(例えば、メモリ350内)及び/又はサーバシステム110(例えば、データ及びモデル記憶装置120内)に記憶されているような電子デバイスの状態と同じでなくてもよい。例えば、ドアの鍵が、システム100の仮想アシスタントを使用せずに手動で開閉されていてもよい。このため、いくつかの実施例では、ブロック518は、ユーザデバイス102及び/又はサーバシステム110内に記憶されているような電子デバイスの状態に関係なく実行されてもよい。例えば、ユーザデバイス102及び/又はサーバシステム110内の対応するエントリが、ドアが既に施錠されていることを示す場合でも、そのドアの鍵の状態を「施錠」に設定するコマンドがドアの鍵へと送信されてもよい。更に、ブロック518は、電子デバイスへとコマンドを発行するために必要な時間を短縮するために、最初に電子デバイスに対するクエリを(例えば、ブロック516とブロック518との間に)実行してその実際の状態を特定することなく実行されてもよい。例えば、ドアの鍵の状態を「施錠」に設定するコマンドが、最初にその状態に関するクエリを実行することなくドアの鍵へと送信されてもよく、これによって、コマンドをドアの鍵へと送信するのに必要な時間が、クエリをドアの鍵へと送信し、状態をドアの鍵から受信するのに必要な時間に相当する量だけ短縮される。
【0068】
ブロック520では、各電子デバイスがそれらのそれぞれのコマンドを実行した後、ユーザデバイスが、(ブロック518でコマンドが送信された)各電子デバイスの現在の状態を受信してもよい。例えば、ユーザデバイス102が電子デバイス128の状態を「施錠」に設定するコマンドを実行した後に、ユーザデバイス102が電子デバイス128の更新された状態を受信してもよい。この実施例では、ユーザデバイス102に返される現在の状態は、状態「施錠」であってもよい。ブロック518でコマンドが2つ以上の電子デバイスに送信された場合、ブロック520は、現在の状態をそれらの電子デバイスから受信することを更に含んでもよい。いくつかの実施例では、ブロック520は、受信した現在の状態に基づき、電子デバイスデータ370内の電子デバイスの状態を更新することを更に含んでもよい。例えば、ユーザデバイス102が、電子デバイスデータ370内の電子デバイス128の状態を「施錠」へと更新してもよい。いくつかの実施例では、ブロック520は、送信されたコマンド(単数又は複数)及び受信した電子デバイス(単数又は複数)の現在の状態(単数又は複数)に基づき、ブロック518で電子デバイス(単数又は複数)へと送信されたコマンド(単数又は複数)の結果のオーディオ又は視覚指示を出力することを更に含んでもよい。例えば、電子デバイス128へと送信されたコマンドがデバイスの状態を「施錠」へと遷移させるコマンドであり、ブロック520で受信した電子デバイス128の現在の状態が「施錠」であった場合、結果の指示は、電子デバイス128が「施錠」状態へと正常に遷移したことであってもよい。代替として、受信した電子デバイスの現在の状態(例えば、「未施錠」)が、コマンド内に示された所望の状態(例えば、「施錠」)と異なる場合、「施錠」状態への遷移に失敗したことの指示がユーザへと提供されてもよい。現在の状態は、デバイスの未特定又は使用不可能状態等のエラー状態を更に含んでもよい。
【0069】
ブロック522では、ユーザデバイスが、ブロック520で受信した電子デバイス(単数又は複数)の現在の状態(単数又は複数)を1つ以上のサーバへと送信してもよい。例えば、ユーザデバイス102が、ブロック520で受信した電子デバイスの現在の状態をサーバシステム110へと送信してもよい。ブロック520で2つ以上の電子デバイスの現在の状態が受信された場合、ブロック522は、それらの現在の状態をサーバシステム110へと送信することを更に含んでもよい。
【0070】
ブロック524では、1つ以上のサーバが、ブロック522でユーザデバイスによって送信された電子デバイス(単数又は複数)の現在の状態(単数又は複数)を受信してもよい。例えば、サーバシステム110が、ブロック522でユーザデバイス102によって送信された電子デバイスの現在の状態を受信してもよい。ユーザデバイス102が2つ以上の現在の状態を送信した場合、ブロック524は、それらの現在の状態も受信することを更に含んでもよい。いくつかの実施例では、ブロック524は、受信した現在の状態(単数又は複数)に基づき、データ及びモデル記憶装置120内の電子デバイス(単数又は複数)の状態(単数又は複数)を更新することを更に含んでもよい。例えば、サーバシステム110が、データ及びモデル記憶装置120内の電子デバイス128の状態を「施錠」へと更新してもよい。
【0071】
いくつかの実施例では、処理500は、所定の条件が満たされたと判定したことに応じて、電子デバイスのうちの1つ以上の現在の状態に関連付けられた通知を生成することを更に含んでもよい。例えば、電子デバイスのうちの1つ以上が所定の状態である(例えば、「玄関」が未施錠である)一方で、ユーザデバイス102の場所が所定の領域(例えば、ユーザの家に対応する領域)から出たことに応じて、ユーザがそれらのドアを施錠し忘れたことを示す通知が、ユーザデバイス102を介してユーザへと提供されてもよい。他の所定の条件に応じて、他の類似した通知が生成されてもよい。
【0072】
ユーザデバイスによって実装された仮想アシスタントは、処理500を使用して、状態を設定するか又は任意の数の電子デバイスに対するクエリを実行する自然言語コマンドを受信してもよい。自然言語コマンドは、任意の所望の様式で電子デバイスに照会することができ、電子デバイスの一意識別子又は電子デバイスの種類を含める必要がない。
電子デバイスの遠隔制御
【0073】
図6は、仮想アシスタントを使用して遠隔で電子デバイスを制御する例示的な処理600を示す。いくつかの実施例では、処理600は、図2に示すシステム200に類似するか又は同一のシステムを使用して処理600が実行され得ることを除いて、処理500に類似してもよい。例えば、処理600は、制御されている電子デバイス(例えば、電子デバイス128、130、及び132)から離れて配置されたユーザデバイス(例えば、ユーザデバイス102)によって実行されてもよく、電子デバイスを制御するために、代わりに第2のユーザデバイス(例えば、第2のユーザデバイス134)が使用されてもよい。したがって、処理600の各部分は、ユーザデバイス102、サーバシステム110、及び第2のユーザデバイス134のそれぞれによって実行されてもよい。具体的には、図6の左側のブロックがユーザデバイス102によって実行されてもよく、図6の中央のブロックがサーバシステム110によって実行されてもよく、図6の右側のブロックが第2のユーザデバイス134によって実行されてもよい。
【0074】
処理600のブロックは、処理600のブロック516、518、520、及び522が、代わりに第2のユーザデバイス(例えば、第2のユーザデバイス134)によって実行され得ることを除き、処理500の同一番号のブロックと類似するか又は同一であってもよい。更に、その結果、ブロック514では、1つ以上の電子デバイスのそれぞれの識別子、及び電子デバイス(単数又は複数)によって実行されるコマンド(単数又は複数)が、代わりに第2のユーザデバイスへと送信されてもよく、ブロック524では、電子デバイス(単数又は複数)の現在の状態(単数又は複数)が、代わりに第2のユーザデバイスから受信されてもよい。
【0075】
いくつかの実施例では、処理600は、ブロック524で受信した電子デバイス(単数又は複数)の現在の状態(単数又は複数)を、ブロック502でオーディオ入力を受け取ったユーザデバイスへと1つ以上のサーバによって送信することを更に含んでもよい。追加で又は代替として、処理は、ブロック518で電子デバイスへと送信されたコマンドの成功の指示を送信することを含んでもよい。例えば、電子デバイスによるコマンドの実行の成功、部分的な成功、又は失敗をユーザに通知する視覚又はオーディオ出力が生成されてもよい。成功の判定は、電子デバイスへと送信されたコマンド、及びブロック524で受信したデバイスの現在の状態に依存してもよい。
電子デバイスのスタンドアロン制御
【0076】
図7は、仮想アシスタントを使用して電子デバイスを制御する例示的な処理700を示す。いくつかの実施例では、処理700は、ユーザデバイス102及びサーバシステム110の両方の機能を実行し得るスタンドアロンユーザデバイスを使用して処理700が実行され得ることを除き、処理500に類似してもよい。その結果、処理700の全てのブロックがユーザデバイス(例えば、ユーザデバイス102)によって実行されてもよい。
【0077】
処理700のブロックは、ブロック508、510、及び512が代わりにユーザデバイス(例えば、ユーザデバイス102)によって実行され得ることを除き、処理500の同一番号のブロックと類似するか又は同一であってもよい。更に、その結果、ユーザデバイス102とサーバシステム110との間で通信する機能に対応するブロック(例えば、ブロック504、506、514、516、522、及び524)を実行する必要がなくなる。
電子デバイスの構成の記憶
【0078】
図8は、仮想アシスタントを使用して、複数の電子デバイスの状態を構成として記憶する例示的な処理800を示す。構成は、複数の電子デバイスを構成内で定義された状態へと移行させるための発語ユーザ入力内で参照され得る、複数の電子デバイスの記憶された1組の状態を表してもよい。例えば、ユーザは、全ての照明の状態がオフに設定され、サーモスタットの状態が72°Fに設定され、全てのドアの状態が施錠に設定され、ガレージドアの状態が閉に設定される、「睡眠」構成を作成してもよい。したがって、ユーザが就寝するとき、ユーザは、記憶された構成を参照する「就寝する」等のコマンドをユーザデバイス102に提供し、システム100は、睡眠構成内の記憶された状態に基づき電子デバイスの状態を設定してもよい。いくつかの実施例では、処理800は、図1に示すシステム100に類似するか又は同一のシステムを使用して実行されてもよい。これらの実施例では、処理800のブロックは、ユーザデバイス102及びサーバシステム110の両方によって実行されてもよい。具体的には、図8の左側のブロックはユーザデバイス102によって実行されてもよく、右側のブロックはサーバシステム110によって実行されてもよい。
【0079】
ブロック802では、ユーザデバイスで、ユーザ発語を含むオーディオ入力が処理500のブロック502と類似するか又は同一の様式で受信されてもよい。ブロック804では、ブロック802で受信したオーディオ入力に対応するデータが、処理500のブロック504と類似するか又は同一の様式で、処理のために1つ以上のサーバへと送信されてもよい。
【0080】
ブロック806では、ブロック804でユーザデバイスによって送信されたオーディオ入力に対応するデータが、処理500のブロック506と類似するか又は同一の様式で1つ以上のサーバによって受信されてもよい。ブロック808では、ユーザ発語をユーザ発語のテキスト表現へと変換するために、オーディオ入力に対応するデータに対する発語テキスト化変換が、処理500のブロック508と類似するか又は同一の様式で実行されてもよい。
【0081】
ブロック810では、ユーザ発語のテキスト表現が、システム100の電子デバイスの状態を構成として記憶するユーザ意図を表すと判定されてもよい。例えば、サーバシステム110の1つ以上の処理モジュール118は、自然言語入力に基づきユーザの意図を特定するために、データ及びモデル記憶装置120を利用してもよい。いくつかの実施例では、これは、「保存する」、「記憶する」、「名前」、「保持する」、「構成」、「シーン」、それらの同義語等の、構成を記憶することに関連する可能性がある語に関してテキスト表現を解析することを含んでもよい。例えば、テキスト表現が「この構成を睡眠として記憶する」を含む場合、ブロック810では、ユーザが電子デバイスの状態を「睡眠」という名前の構成として記憶することを意図していると判定されてもよい。「このシーンを仕事として保存する」等の他のテキスト表現により、ブロック810で、ユーザが電子デバイスの状態を「仕事」という名前の構成として記憶することを意図していると判定されてもよい。
【0082】
ブロック812では、ユーザ発語のテキスト表現が、システム100の電子デバイスの状態を構成として記憶するユーザ意図を表すと判定したことに応じて、1つ以上のサーバが、電子デバイスの状態に関するクエリを実行する命令をユーザデバイスへと送信してもよい。例えば、サーバシステム110は、電子デバイス128、130、及び132の状態に関するクエリを実行する命令を、ネットワーク(単数又は複数)108を介してユーザデバイス102へと送信してもよい。
【0083】
ブロック814では、1つ以上のサーバによって送信された電子デバイスの状態に関するクエリを実行する命令が、ユーザデバイスによって受信されてもよい。例えば、ユーザデバイス102が、電子デバイス128、130、及び132の状態に関するクエリを実行する命令を、ネットワーク(単数又は複数)108を介してサーバシステム110から受信してもよい。
【0084】
ブロック816では、ユーザデバイスが、電子デバイスのそれぞれへと、それらの現在の状態に関するクエリを送信してもよい。例えば、ユーザデバイス102は、電子デバイス128、130、及び132のそれぞれへと、それらの現在の状態を返すよう命令するコマンドを、ネットワーク(単数又は複数)126を介して送信してもよい。
【0085】
ブロック818では、ユーザデバイスが、ブロック516で送信されたクエリに応じて、電子デバイス(単数又は複数)のそれぞれの現在の状態(又は現在の状態を送信することができる全ての電子デバイスの現在の状態)を受信してもよい。例えば、ユーザデバイス102が、ブロック816でデバイスのそれぞれへと送信されたクエリに応じて、電子デバイス128、130、及び132の現在の状態を、ネットワーク(単数又は複数)126を介して受信してもよい。いくつかの実施例では、ブロック818は、受信した現在の状態に基づき、電子デバイスデータ370内の電子デバイスの状態を更新することを更に含んでもよい。現在の状態は、デバイスの未特定又は使用不可能状態等のエラー状態を更に含んでもよい。
【0086】
ブロック820では、ユーザデバイスが、ブロック818で受信した電子デバイスの現在の状態を1つ以上のサーバへと送信してもよい。例えば、ユーザデバイス102が、ブロック818で受信した電子デバイスの現在の状態をサーバシステム110へと送信してもよい。
【0087】
ブロック822では、1つ以上のサーバが、ブロック820でユーザデバイスによって送信された電子デバイスの現在の状態を受信してもよい。例えば、サーバシステム110が、電子デバイス128、130、及び132の現在の状態を、ネットワーク(単数又は複数)126を介してユーザデバイス102から受信してもよい。
【0088】
ブロック824では、1つ以上のサーバが、ブロック822で受信した電子デバイスの現在の状態を構成として記憶してもよい。いくつかの実施例では、テキスト表現で提供され、かつブロック810で特定された名前に基づく、「睡眠」、「朝」、「仕事」等の一意識別子が構成に割り当てられてもよい。例えば、サーバシステム110が、ブロック802で「この構成に睡眠という名前を付ける」を含むユーザ発語が受信されたことに応じて、電子デバイス128、130、及び132の現在の状態を、「睡眠」構成としてモデル及びデータ記憶装置120内に記憶してもよい。
記憶された構成を使用した電子デバイスの制御
【0089】
図9は、仮想アシスタントを使用し、以前に記憶された(例えば、処理800を使用して作成された)構成を使用して複数の電子デバイスの状態を設定する例示的な処理900を示す。いくつかの実施例では、処理900は、図1に示すシステム100に類似するか又は同一のシステムを使用して実行されてもよい。これらの実施例では、処理900のブロックは、ユーザデバイス102及びサーバシステム110の両方によって実行されてもよい。具体的には、図9の左側のブロックはユーザデバイス102によって実行されてもよく、右側のブロックはサーバシステム110によって実行されてもよい。
【0090】
ブロック902では、ユーザデバイスで、ユーザ発語を含むオーディオ入力が処理500のブロック502と類似するか又は同一の様式で受信されてもよい。ブロック904では、ブロック902で受信したオーディオ入力に対応するデータが、処理500のブロック504と類似するか又は同一の様式で、処理のために1つ以上のサーバへと送信されてもよい。
【0091】
ブロック906では、ブロック904でユーザデバイスによって送信されたオーディオ入力に対応するデータが、処理500のブロック506と類似するか又は同一の様式で1つ以上のサーバによって受信されてもよい。ブロック908では、ユーザ発語をユーザ発語のテキスト表現へと変換するために、オーディオ入力のユーザ発語に対する発語テキスト化変換が、処理500のブロック508と類似するか又は同一の様式で実行されてもよい。
【0092】
ブロック910では、記憶された構成に基づき、ユーザ発語のテキスト表現が、システム100の電子デバイスの状態を設定するユーザ意図を表すと判定されてもよい。例えば、サーバシステム110の1つ以上の処理モジュール118は、自然言語入力に基づきユーザの意図を特定するために、データ及びモデル記憶装置120を利用してもよい。いくつかの実施例では、これは、記憶された構成に関連付けられた、「設定する」、「構成」、「シーン」、それらの同義語等の一意識別子等の、記憶された構成を使用することに関連する可能性がある語に関してテキスト表現を解析することを含んでもよい。例えば、テキスト表現が「就寝する」を含む場合、ブロック910では、ユーザが「睡眠」構成に基づき電子デバイスの状態を設定することを意図していると判定されてもよい。同様に、「夜間モード」、「睡眠に設定する」等の他のテキスト表現により、ブロック910で、ユーザが「睡眠」構成に基づき電子デバイスの状態を設定することを意図していると判定されてもよい。
【0093】
ブロック912では、ブロック910で特定された構成に基づきシステム100の電子デバイスの状態を設定するコマンドが、1つ以上のサーバによってユーザデバイスへと送信されてもよい。各コマンドを実行するデバイスを特定するために、コマンドに関連付けられた識別子が送信されてもよい。例えば、サーバシステム110が、電子デバイスに関連付けられた一意識別子、及び、それらの電子デバイスによって実行されるコマンドを送信し、電子デバイスを記憶された構成によって指定された状態にしてもよい。
【0094】
ブロック914では、サーバ(単数又は複数)によって送信された、システム100の電子デバイスの状態を設定するコマンドが、ユーザデバイスによって受信されてもよい。例えば、ユーザデバイス102が、ブロック912でサーバシステム110によって送信されたコマンドを、ネットワーク(単数又は複数)108を介して受信してもよい。
【0095】
ブロック916では、ユーザデバイスが、ブロック914で受信したコマンドを、コマンドに関連付けられた電子デバイスへと送信してもよい。例えば、ユーザデバイス102が、コマンドをネットワーク(単数又は複数)126を介して電子デバイス128、130、及び132へと送信し、電子デバイスを記憶された構成によって指定された状態にしてもよい。
【0096】
いくつかの実施例では、電子デバイスの実際の状態は、ユーザデバイス102(例えば、メモリ350内)及び/又はサーバシステム110(例えば、データ及びモデル記憶装置120内)に記憶されているような電子デバイスの状態と同じでなくてもよい。このため、いくつかの実施例では、処理500と同様、電子デバイスへとコマンドを発行するのに必要な時間を短縮するために、ユーザデバイス102及び/又はサーバシステム110内に記憶されているような電子デバイスの状態にかかわらず、最初に電子デバイスに対するクエリを(例えば、ブロック914とブロック916との間に)実行してそれらの実際の状態を特定することなく、ブロック916が実行されてもよい。
【0097】
ブロック918では、電子デバイスがブロック916でユーザデバイスによって送信されたコマンドを実行した後、ユーザデバイスが電子デバイスの更新された状態を受信してもよい。例えば、電子デバイス128、130、及び132が、それらの状態を記憶された構成によって指定された状態にするコマンドを実行した後に、ユーザデバイス102がそれらの電子デバイスの更新された状態を受信してもよい。いくつかの実施例では、ブロック920は、受信した現在の状態に基づき、電子デバイスデータ370内の電子デバイスの状態を更新することを更に含んでもよい。例えば、ユーザデバイス102が、電子デバイスデータ370内の電子デバイス128の状態を「施錠」へと更新してもよい。いくつかの実施例では、ブロック520と同様に、ブロック918は、送信されたコマンド(単数又は複数)及び受信した電子デバイス(単数又は複数)の現在の状態(単数又は複数)に基づき、ブロック916で電子デバイス(単数又は複数)へと送信されたコマンド(単数又は複数)の結果のオーディオ又は視覚指示を出力することを更に含んでもよい。更新された状態は、デバイスの未特定又は使用不可能状態等のエラー状態を更に含んでもよい。
【0098】
ブロック920では、ユーザデバイスが、ブロック918で受信した電子デバイスの更新された状態を1つ以上のサーバへと送信してもよい。例えば、ユーザデバイス102が、ブロック918で受信した電子デバイスの更新された状態をサーバシステム110へと送信してもよい。
【0099】
ブロック922では、1つ以上のサーバが、ブロック920でユーザデバイスによって送信された電子デバイスの更新された状態を受信してもよい。例えば、サーバシステム110が、ブロック920でユーザデバイス102によって送信された電子デバイスの更新された状態を受信してもよい。いくつかの実施例では、ブロック922は、受信した更新された状態に基づき、データ及びモデル記憶装置120内の電子デバイスの状態を更新することを更に含んでもよい。
【0100】
いくつかの実施例では、追加で又は代替として、所定の条件が満たされたと判定したことに応じて、電子デバイスの状態が記憶された構成を使用して構成されてもよい。例えば、ユーザデバイス102の場所が所定の領域(例えば、ユーザの家に対応する領域)へと入ったことに応じて、記憶された構成(例えば、「家」構成)によって指定された状態へと遷移させるコマンドが電子デバイスへと送信されてもよい。同様に、ユーザデバイス102の場所が所定の時間枠の間(例えば、平日の午前8時~9時の間)に所定の領域(例えば、ユーザの家に対応する領域)から出たことに応じて、別の記憶された構成(例えば、「仕事」構成)によって指定された状態へと遷移させるコマンドが電子デバイスへと送信されてもよい。システム100に、電子デバイスを記憶された構成に基づき構成させるために、他の類似した所定の条件が作成されてもよい。
電子デバイス
【0101】
いくつかの実施例によれば、図10は、説明される様々な実施形態の原理に従って構成された、電子デバイス1000の機能ブロック図を示す。デバイスの機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実装されてもよい。図10で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、組み合わされ、又はサブブロックに分離され得ることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に、支持する。
【0102】
図10に示すように、電子デバイス1000は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット1002、及び音声入力を受け取るように構成される音声受信ユニット1004を含んでもよい。いくつかの実施例では、電子デバイス1000は、音声を発生するように構成されるスピーカユニット1006を含んでもよい。電子デバイス1000は、タッチスクリーンディスプレイユニット1002及び音声受信ユニット1004に結合される(及びスピーカユニット1006に任意選択的に結合される)処理ユニット1008を更に含んでもよい。いくつかの実施例では、処理ユニット1008は、オーディオ入力受信ユニット1010、オーディオ入力送信ユニット1012、識別子及びコマンド受信ユニット1014、識別子及びコマンド送信ユニット1016、状態受信ユニット1018、状態送信ユニット1020、状態更新ユニット1022、指示出力ユニット1024、第2の識別子及びコマンド受信ユニット1026、第2の識別子及びコマンド送信ユニット1028、第2の状態受信ユニット1030、第2の状態送信ユニット1032、並びに通知送信ユニット1034を含んでもよい。
【0103】
処理ユニット1008は、ユーザ発語を含むオーディオ入力を(例えば、オーディオ入力受信ユニット1010を使用して)受け取るように構成されてもよい。処理ユニット1008は、オーディオ入力に対応するデータを1つ以上のサーバへと(例えば、オーディオ入力送信ユニット1012を使用して)送信するように更に構成されてもよい。処理ユニット1008は、オーディオ入力に対応するデータに基づき1つ以上のサーバによって特定された第1の電子デバイスの識別子、及びオーディオ入力に対応するデータに基づき1つ以上のサーバによって特定された第1の電子デバイスによって実行される第1のコマンドを1つ以上のサーバから(例えば、識別子及びコマンド受信ユニット1014を使用して)受信するように更に構成されてもよい。第1のコマンドは第1の電子デバイスへと(例えば、識別子及びコマンド送信ユニット1016を使用して)送信されてもよい。第1のコマンドを第1の電子デバイスへと送信した後、第1の電子デバイスの現在の状態が第1の電子デバイスから(例えば、状態受信ユニット1018を使用して)受信されてもよい。第1の電子デバイスの現在の状態は1つ以上のサーバへと(例えば、状態送信ユニット1020を使用して)送信されてもよい。
【0104】
いくつかの実施例では、第1の電子デバイスは電球を含む。他の実施例では、第1のコマンドは、照明のオン/オフ状態、明暗調整可能状態、又は色状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、電球のオン/オフ状態、明暗調整可能状態、又は色状態を設定する第1のコマンドを送信した後の電球のオン/オフ状態、明暗調整可能状態、又は色状態を含む。
【0105】
いくつかの実施例では、第1の電子デバイスはスイッチを含む。他の実施例では、第1のコマンドは、スイッチのオン/オフ状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、スイッチのオン/オフ状態を設定する第1のコマンドを送信した後のスイッチのオン/オフ状態を含む。
【0106】
いくつかの実施例では、第1の電子デバイスは電気コンセントを含む。他の実施例では、第1のコマンドは、電気コンセントのアクティブ/非アクティブ状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、電気コンセントのアクティブ/非アクティブ状態を設定するコマンドを送信した後の電気コンセントのアクティブ/非アクティブ状態を含む。
【0107】
いくつかの実施例では、第1の電子デバイスはドアの鍵を含む。他の実施例では、第1のコマンドは、ドアの鍵の施錠/非施錠状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、ドアの鍵の施錠/非施錠状態を設定するコマンドを送信した後のドアの鍵の施錠/非施錠状態を含む。
【0108】
いくつかの実施例では、第1の電子デバイスはガレージドアを含む。他の実施例では、第1のコマンドは、ガレージドアの開/閉状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、ガレージドアの開/閉状態を設定するコマンドを送信した後のガレージドアの開/閉状態を含む。
【0109】
いくつかの実施例では、第1の電子デバイスはサーモスタットを含む。他の実施例では、第1のコマンドは、サーモスタットの温度設定の数値を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、サーモスタットの温度設定の数値を設定する第1のコマンドを送信した後のサーモスタットの温度設定の数値を含む。
【0110】
いくつかの実施例では、第1のコマンドは、第1の電子デバイスの現在の状態に関するクエリを含む。
【0111】
いくつかの実施例では、第1のコマンドは、ローカル無線ネットワークを介して第1の電子デバイスへと(例えば、識別子及びコマンド送信ユニット1016を使用して)送信されてもよい。
【0112】
いくつかの実施例では、第1のコマンドは、Bluetooth、見通し線、ピアツーピア、又はWiFi通信によって、直接第1の電子デバイスへと送信されてもよい。
【0113】
いくつかの実施例では、処理ユニット1008は、1つ以上のサーバから第1のコマンドを受信することと第1のコマンドを第1の電子デバイスへと送信することとの間に第1の電子デバイスに対して第1の電子デバイスの状態に関するクエリを実行することを除外するように構成されてもよい。
【0114】
いくつかの実施例では、電子デバイス1000は、第1の電子デバイスを含む複数の電子デバイスのそれぞれの状態を記憶するデータベースユニット1034を更に含んでもよい。他の実施例では、処理ユニット1008は、第1の電子デバイスから受信した第1の電子デバイスの現在の状態に少なくとも部分的に基づき、データベースユニット1034内に記憶された第1の電子デバイスの状態を(例えば、状態更新ユニット1022を使用して)更新するように更に構成されてもよい。
【0115】
いくつかの実施例では、処理ユニット1008は、第1のコマンド及び第1の電子デバイスから受信した第1の電子デバイスの現在の状態に基づく第1のコマンドの結果の指示を(例えば、指示出力ユニット1024を使用して)出力するように更に構成されてもよい。
【0116】
いくつかの実施例では、電子デバイス1000は、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含んでもよい。
【0117】
いくつかの実施例では、処理ユニット1008は、オーディオ入力に対応するデータに基づき1つ以上のサーバによって特定された第2の電子デバイスの識別子、及びオーディオ入力に対応するデータに基づき1つ以上のサーバによって特定された第2の電子デバイスによって実行される第2のコマンドを1つ以上のサーバから(例えば、第2の識別子及びコマンド受信ユニット1026を使用して)受信するように更に構成されてもよい。処理ユニット1008は、第2のコマンドを第2の電子デバイスへと(例えば、第2の識別子及びコマンド送信ユニット1028を使用して)送信し、第2のコマンドを第2の電子デバイスへと送信した後、第2の電子デバイスの現在の状態を第2の電子デバイスから(例えば、第2の状態受信ユニット1030を使用して)受信するように更に構成されてもよい。処理ユニット1008は、第2の電子デバイスの現在の状態を1つ以上のサーバへと(例えば、第2の状態送信ユニット1032を使用して)送信するように更に構成されてもよい。
【0118】
いくつかの実施例では、処理ユニット1008は、所定の条件が満たされたと判定したことに応じて、第1の電子デバイスの現在の状態に関連付けられた通知を(例えば、通知送信ユニット1036を使用して)送信するように更に構成されてもよい。
【0119】
いくつかの実施例によれば、図11は、説明される様々な実施形態の原理に従って構成された、電子デバイス1100の機能ブロック図を示す。デバイスの機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実装されてもよい。図11で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、組み合わされ、又はサブブロックに分離され得ることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に、支持する。
【0120】
図11に示すように、電子デバイス1100は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット1102、及び音声入力を受け取るように構成される音声受信ユニット1104を含んでもよい。いくつかの実施例では、電子デバイス1100は、音声を発生するように構成されるスピーカユニット1106を含んでもよい。電子デバイス1100は、タッチスクリーンディスプレイユニット1102及び音声受信ユニット1104に結合される(及びスピーカユニット1106に任意選択的に結合される)処理ユニット1108を更に含んでもよい。いくつかの実施例では、処理ユニット1108は、オーディオ入力受信ユニット1110、オーディオ入力送信ユニット1112、命令受信ユニット1114、クエリ送信ユニット1116、状態受信ユニット1118、及び状態送信ユニット1120を含んでもよい。
【0121】
処理ユニット1108は、ユーザ発語を含むオーディオ入力を(例えば、オーディオ入力受信ユニット1110を使用して)受け取るように構成されてもよい。処理ユニット1108は、オーディオ入力に対応するデータを1つ以上のサーバへと(例えば、オーディオ入力送信ユニット1112を使用して)送信するように更に構成されてもよい。処理ユニット1108は、オーディオ入力に対応するデータに基づき1つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態に関するクエリを実行する命令を、1つ以上のサーバから(例えば、命令受信ユニット1114を使用して)受信するように更に構成されてもよい。状態クエリは複数の電子デバイスのそれぞれへと(例えば、クエリ送信ユニット1116を使用して)送信されてもよく、複数の電子デバイスのそれぞれの現在の状態が複数の電子デバイスから(例えば、状態受信ユニット1118を使用して)受信されてもよい。複数の電子デバイスのそれぞれの現在の状態は、構成として記憶するために1つ以上のサーバへと(例えば、状態送信ユニット1120を使用して)送信されてもよい。
【0122】
いくつかの実施例によれば、図12は、説明される様々な実施形態の原理に従って構成された、電子デバイス1200の機能ブロック図を示す。デバイスの機能ブロックは、説明される様々な実施例の原理を実行するために、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実装されてもよい。図12で説明する機能ブロックが、説明される様々な実施例の原理を実施するために、組み合わされ、又はサブブロックに分離され得ることが当業者に理解されよう。したがって、本明細書における説明は、本明細書で説明されている機能ブロックのあらゆる可能な組み合わせ若しくは分割、又は更なる定義を、任意選択的に、支持する。
【0123】
図12に示すように、電子デバイス1200は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット1202、及び音声入力を受け取るように構成される音声受信ユニット1204を含んでもよい。いくつかの実施例では、電子デバイス1200は、音声を発生するように構成されるスピーカユニット1206を含んでもよい。電子デバイス1200は、タッチスクリーンディスプレイユニット1202及び音声受信ユニット1204に結合される(及びスピーカユニット1206に任意選択的に結合される)処理ユニット1208を更に含んでもよい。いくつかの実施例では、処理ユニット1208は、オーディオ入力受信ユニット1210、オーディオ入力送信ユニット1212、命令受信ユニット1214、クエリ送信ユニット1216、状態受信ユニット1218、及び状態送信ユニット1220を含んでもよい。
【0124】
いくつかの実施例では、処理ユニット1208は、ユーザ発語を含むオーディオ入力を(例えば、オーディオ入力受信ユニット1210を使用して)受信し、オーディオ入力に対応するデータを1つ以上のサーバへと(例えば、オーディオ入力送信ユニット1212を使用して)送信し、記憶された構成に基づき1つ以上のサーバによって特定された複数の電子デバイスのそれぞれの状態を設定する複数のコマンドを1つ以上のサーバから(例えば、コマンド受信ユニット1214を使用して)受信するように更に構成されてもよい。処理ユニット1208は、複数のコマンドを複数の電子デバイスへと(例えば、コマンド送信ユニット1216を使用して)送信するように更に構成されてもよい。処理ユニット1208は、複数の電子デバイスのそれぞれの更新された状態を複数の電子デバイスから(例えば、状態受信ユニット1218を使用して)受信し、複数の電子デバイスのそれぞれの更新された状態を1つ以上のサーバへと(例えば、状態送信ユニット1220を使用して)送信するように更に構成されてもよい。
【0125】
図13に示すように、電子デバイス1300は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット1302、及び音声入力を受け取るように構成される音声受信ユニット1304を含んでもよい。いくつかの実施例では、電子デバイス1300は、音声を発生するように構成されるスピーカユニット1306を含んでもよい。電子デバイス1300は、タッチスクリーンディスプレイユニット1302及び音声受信ユニット1304に結合される(及びスピーカユニット1306に任意選択的に結合される)処理ユニット1308を更に含んでもよい。いくつかの実施例では、処理ユニット1308は、オーディオ入力受信ユニット1310、発語テキスト化変換ユニット1312、電子デバイス特定ユニット1314、コマンド特定ユニット1316、識別子及びコマンド送信ユニット1318、状態受信ユニット1320、状態更新ユニット1322、コンテキスト情報受信ユニット1324、指示送信ユニット1326、第2の電子デバイス特定ユニット1328、第2のコマンド特定ユニット1330、第2の識別子及びコマンド送信ユニット1332、並びに第2の状態受信ユニット1336を含んでもよい。
【0126】
処理ユニット1308は、ユーザ発語を含むオーディオ入力に対応するデータを(例えば、オーディオ入力受信ユニット1310を使用して)受信するように構成されてもよい。処理ユニット1308は、ユーザ発語のテキスト表現を生成するために、オーディオ入力に対応するデータに対する発語テキスト化変換を(例えば、発語テキスト化変換ユニット1312を使用して)実行するように更に構成されてもよい。処理ユニット1308は、ユーザ発語のテキスト表現に基づき第1の電子デバイスを(例えば、電子デバイス特定ユニット1314を使用して)特定するように更に構成されてもよい。処理ユニット1308は、ユーザ発語のテキスト表現に基づき、第1の電子デバイスによって実行される第1のコマンドを(例えば、コマンド特定ユニット1316を使用して)特定するように更に構成されてもよい。処理ユニット1308は、第1の電子デバイスの識別子及び第1のコマンドをユーザデバイスへと(例えば、識別子及びコマンド送信ユニット1318を使用して)送信するように更に構成されてもよい。処理ユニット1308は、第1の電子デバイスの現在の状態を(例えば、状態受信ユニット1320を使用して)受信するように更に構成されてもよい。
【0127】
いくつかの実施例では、第1の電子デバイスは電球を含む。他の実施例では、第1のコマンドは、照明のオン/オフ状態、明暗調整可能状態、又は色状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、電球のオン/オフ状態、明暗調整可能状態、又は色状態を設定する第1のコマンドを送信した後の電球のオン/オフ状態、明暗調整可能状態、又は色状態を含む。
【0128】
いくつかの実施例では、第1の電子デバイスは電気コンセントを含む。他の実施例では、第1のコマンドは、電気コンセントのアクティブ/非アクティブ状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、電気コンセントのアクティブ/非アクティブ状態を設定するコマンドを送信した後の電気コンセントのアクティブ/非アクティブ状態を含む。
【0129】
いくつかの実施例では、第1の電子デバイスはスイッチを含む。他の実施例では、第1のコマンドは、スイッチのオン/オフ状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、スイッチのオン/オフ状態を設定するコマンドを送信した後の電気コンセントのオン/オフ状態を含む。
【0130】
いくつかの実施例では、第1の電子デバイスはドアの鍵を含む。他の実施例では、第1のコマンドは、ドアの鍵の施錠/非施錠状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、ドアの鍵の施錠/非施錠状態を設定するコマンドを送信した後のドアの鍵の施錠/非施錠状態を含む。
【0131】
いくつかの実施例では、第1の電子デバイスはガレージドアを含む。他の実施例では、第1のコマンドは、ガレージドアの開/閉状態を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、ガレージドアの開/閉状態を設定するコマンドを送信した後のガレージドアの開/閉状態を含む。
【0132】
いくつかの実施例では、第1の電子デバイスはサーモスタットを含む。他の実施例では、第1のコマンドは、サーモスタットの温度設定の数値を設定するコマンドを含む。更に他の実施例では、第1の電子デバイスの現在の状態は、サーモスタットの温度設定の数値を設定する第1のコマンドを送信した後のサーモスタットの温度設定の数値を含む。
【0133】
いくつかの実施例では、第1のコマンドは、第1の電子デバイスの現在の状態に関するクエリを含む。
【0134】
いくつかの実施例では、電子デバイス1300は、第1の電子デバイスを含む複数の電子デバイスのそれぞれの名前、種類、及び状態を記憶するデータベースユニット1334を更に含む。他の実施例では、処理ユニット1308は、第1の電子デバイスの現在の状態に基づき、データベースユニット1334内に記憶された第1の電子デバイスの状態を(例えば、状態更新ユニット1322を使用して)更新するように更に構成されてもよい。
【0135】
いくつかの実施例では、処理ユニット1308は、オーディオ入力に対応するデータ内のコンテキスト情報をユーザデバイスから(例えば、コンテキスト情報受信ユニット1324を使用して)受信するように更に構成されてもよい。他の実施例では、処理ユニット1308は、コンテキスト情報に基づき第1の電子デバイスを(例えば、電子デバイス特定ユニット1314を使用して)特定するように更に構成されてもよい。更に他の実施例では、処理ユニット1308は、コンテキスト情報に基づき第1のコマンドを(例えば、コマンド特定ユニット1316を使用して)特定するように更に構成されてもよい。いくつかの実施例では、コンテキスト情報は、ユーザデバイスがオーディオ入力を受け取ったときのユーザデバイスの向き、又はユーザデバイスがオーディオ入力を受け取ったときのユーザデバイスの場所を含む。
【0136】
いくつかの実施例では、ユーザ発語のテキスト表現は、第1の電子デバイスの名前を除外する。他の実施例では、ユーザ発語のテキスト表現は、第1の電子デバイスの種類を除外する。
【0137】
いくつかの実施例では、電子デバイス1300は、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含む。
【0138】
いくつかの実施例では、処理ユニット1308は、第1の電子デバイスの識別子及び第1のコマンドをユーザデバイスへと(例えば、識別子及びコマンド送信ユニット1318を使用して)送信し、第1の電子デバイスの現在の状態をユーザデバイスから(例えば、状態受信ユニット1320を使用して)受信するように更に構成されてもよい。
【0139】
他の実施例では、処理ユニット1308は、第1の電子デバイスの識別子及び第1のコマンドを第2のユーザデバイスへと(例えば、識別子及びコマンド送信ユニット1318を使用して)送信し、第1の電子デバイスの現在の状態を第2のユーザデバイスから(例えば、状態受信ユニット1320を使用して)受信するように更に構成されてもよい。
【0140】
他の実施例では、処理ユニット1308は、第1のコマンド及び第1の電子デバイスの現在の状態に基づく第1のコマンドの結果の指示を第2のユーザデバイスへと(例えば、指示送信ユニット1326を使用して)送信するように更に構成されてもよい。
【0141】
他の実施例では、処理ユニット1308は、ユーザ発語のテキスト表現に基づき第2の電子デバイスを(例えば、第2の電子デバイス特定ユニット1328を使用して)特定し、ユーザ発語のテキスト表現に基づき、第2の電子デバイスによって実行される第2のコマンドを(例えば、第2のコマンド特定ユニット1330を使用して)特定し、第2の電子デバイスの識別子及び第2のコマンドを(例えば、第2の識別子及びコマンド送信ユニット1332を使用して)送信し、第2の電子デバイスの現在の状態を(例えば、第2の状態受信ユニット1336を使用して)受信するように更に構成されてもよい。
【0142】
図14に示すように、電子デバイス1400は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット1402、及び音声入力を受け取るように構成される音声受信ユニット1404を含んでもよい。いくつかの実施例では、電子デバイス1400は、音声を発生するように構成されるスピーカユニット1406を含んでもよい。電子デバイス1400は、タッチスクリーンディスプレイユニット1402及び音声受信ユニット1404に結合される(及びスピーカユニット1406に任意選択的に結合される)処理ユニット1408を更に含んでもよい。いくつかの実施例では、処理ユニット1408は、オーディオ入力受信ユニット1410、発語テキスト化変換ユニット1412、判定ユニット1414、命令送信ユニット1416、状態受信ユニット1416、構成記憶ユニット1420、第2のオーディオ入力受信ユニット1422、第2の発語テキスト化変換ユニット1424、第2の判定ユニット1426、コマンド送信ユニット1428、及び第2の状態受信ユニット1430を含んでもよい。
【0143】
処理ユニット1408は、ユーザ発語を含むオーディオ入力に対応するデータをユーザデバイスから(例えば、オーディオ入力受信ユニット1410を使用して)受信するように構成されてもよい。処理ユニット1408は、ユーザ発語のテキスト表現を生成するために、オーディオ入力に対応するデータに対する発語テキスト化変換を(例えば、発語テキスト化変換ユニット1412を使用して)実行するように更に構成されてもよい。処理ユニット1408は、ユーザ発語のテキスト表現が複数の電子デバイスのそれぞれの状態を構成として記憶するユーザ意図を表すと(例えば、判定ユニット1414を使用して)判定するように更に構成されてもよい。処理ユニット1408は、複数の電子デバイスのそれぞれの状態に関するクエリを実行する命令を(例えば、命令送信ユニット1416を使用して)送信するように更に構成されてもよい。処理ユニット1408は、複数の電子デバイスのそれぞれの現在の状態を(例えば、状態受信ユニット1418を使用して)受信するように更に構成されてもよい。処理ユニット1408は、受信した複数の電子デバイスのそれぞれの現在の状態を構成として(例えば、構成記憶ユニット1420を使用して)記憶するように更に構成されてもよい。
【0144】
図15に示すように、電子デバイス1500は、ユーザインタフェースを表示し、タッチ入力を受け取るように構成されるタッチスクリーンディスプレイユニット1502、及び音声入力を受け取るように構成される音声受信ユニット1504を含んでもよい。いくつかの実施例では、電子デバイス1500は、音声を発生するように構成されるスピーカユニット1506を含んでもよい。電子デバイス1500は、タッチスクリーンディスプレイユニット1502及び音声受信ユニット1504に結合される(及びスピーカユニット1506に任意選択的に結合される)処理ユニット1508を更に含んでもよい。いくつかの実施例では、処理ユニット1408は、オーディオ入力受信ユニット1510、発語テキスト化変換ユニット1512、判定ユニット1514、命令送信ユニット1516、状態受信ユニット1516、構成記憶ユニット1520、第2のオーディオ入力受信ユニット1522、第2の発語テキスト化変換ユニット1524、第2の判定ユニット1526、コマンド送信ユニット1528、及び第2の状態受信ユニット1530を含んでもよい。
【0145】
いくつかの実施例では、処理ユニット1508は、ユーザ発語を含むオーディオ入力に対応するデータを(例えば、オーディオ入力受信ユニット1510を使用して)受信し、ユーザ発語のテキスト表現を生成するために、オーディオ入力に対応するデータに対する発語テキスト化変換を(例えば、発語テキスト化変換ユニット1512を使用して)実行し、ユーザ発語のテキスト表現が、構成に基づき複数の電子デバイスのそれぞれの状態を変更するユーザ意図を表すと(例えば、判定ユニット1514を使用して)判定し、構成に基づき複数の電子デバイスのそれぞれの状態を設定する複数のコマンドを(例えば、コマンド送信ユニット1516を使用して)送信し、複数の電子デバイスのそれぞれの更新された状態を(例えば、状態受信ユニット1518を使用して)受信するように更に構成されてもよい。
【0146】
上述のように、本技術の1つの態様は、招待者用のコンテンツ又はユーザの興味を引くと考えられる任意の他のコンテンツのユーザへの配信を改善するために、様々なソースから入手可能なデータを収集及び使用することである。本開示は、いくつかの事例で、この収集されたデータが、具体的な人物を一意に特定するか、又はその人物と連絡を取るか若しくはその人物の場所を特定するために使用され得る、個人情報データを含み得ると想到する。そのような個人情報データは、人口統計上のデータ、場所ベースのデータ、電話番号、電子メールアドレス、家の住所、又は任意の他の身元特定可能な情報を含んでもよい。
【0147】
本開示は、本技術で、そのような個人情報データの使用がユーザへの利益のために使用され得ることを認識している。例えば、よりユーザの興味を引く対象コンテンツを配信するために、個人情報データが使用されてもよい。したがって、そのような個人情報データの使用は、配信されるコンテンツの意図的な制御を可能にする。更に、ユーザに利益をもたらす個人情報データの他の使用目的が、本開示によって想到される。
【0148】
本開示は、そのような個人情報データの収集、分析、開示、転送、記憶、又は他の使用目的の責任を負うエンティティが、適切に規定されたプライバシーのポリシー及び/又はプライバシーの慣行に準拠すると更に想到する。具体的には、そのようなエンティティは、個人情報データを秘密として厳重に保守するための業界又は政府の要件を満たすか又は上回るものとして一般に認識されている、プライバシーのポリシー及び慣行を実施し常に使用すべきである。例えば、ユーザからの個人情報は、そのエンティティの合法的かつ正当な使用のために収集されるべきであり、それらの合法的使用を除いて、共有又は販売されるべきではない。更には、そのような収集は、ユーザに告知して同意を得た後にのみ実施するべきである。更には、そのようなエンティティは、そのような個人情報データへのアクセスを保護して安全化し、その個人情報データへのアクセスを有する他者が、それらのプライバシーのポリシー及び手順を遵守することを保証するための、あらゆる必要な措置を講じ得る。更には、そのようなエンティティは、広く受け入れられているプライバシーのポリシー及び慣行に対する自身の遵守を証明するために、第三者による評価を自らが受けることができる。
【0149】
前述のことがらにもかかわらず、本開示はまた、ユーザが、個人情報データの使用又は個人情報データへのアクセスを選択的に阻止する実施例も想到する。すなわち、本開示は、そのような個人情報データへのアクセスを防止又は阻止するために、ハードウェア要素及び/又はソフトウェア要素を提供することができると想到する。例えば、広告配信サービスの場合、本技術は、ユーザがサービスの登録中に個人情報データの収集への参加の「オプトイン」又は「オプトアウト」を選択することを可能にするように構成されてもよい。別の実施例では、ユーザは、対象のコンテンツ配信サービスに対して位置情報を提供しないことを選択してもよい。更に別の実施例では、ユーザは、正確な位置情報を提供しないが位置のゾーン情報の転送は許可することを選択してもよい。
【0150】
それゆえ、本開示は、1つ以上の様々な開示された実施例を実施するための個人情報データの使用を、広範に網羅するものであるが、本開示は、それらの様々な実施例がまた、そのような個人情報データにアクセスすることを必要とせずに実施することも可能である点も、また想到する。すなわち、本技術の様々な実施例は、そのような個人情報データの全て又は一部分の欠如により、実施不可能となるものではない。例えば、ユーザに関連付けられたデバイスによって要求されるコンテンツ等の非個人情報データ若しくは必要最小限の個人情報、コンテンツ配信サービスへと提供される他の非個人情報、又は公的に入手可能な情報に基づき嗜好を推測することによって、コンテンツが選択され、ユーザへと配信されてもよい。
【0151】
添付図面を参照して、実施例を十分に説明してきたが様々な変更及び修正が、当業者には明らかとなるであろうことに留意されたい。そのような変更及び修正は、添付の特許請求の範囲によって定義されるような様々な実施例の範囲内に含まれるものとして理解されたい。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
【手続補正書】
【提出日】2024-08-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
メモリと少なくとも1つのプロセッサとを有するユーザデバイス上の仮想アシスタントを使用して電子デバイスを制御する方法であって、
前記ユーザデバイスにおいて、
ユーザ発語を含むオーディオ入力を受け取ることと、
前記オーディオ入力に対応するデータに基づいて、第1の電子デバイスの識別子を決定することと、
前記オーディオ入力に対応するデータに基づいて、前記第1の電子デバイスによって実行されるべき第1のコマンドを決定することと、
前記第1のコマンドを前記第1の電子デバイスに送信することと、
前記第1のコマンドを前記第1の電子デバイスに送信した後に、第2のオーディオ入力を受け取ることと、
前記第2のオーディオ入力に従って、前記第1の電子デバイスに状態クエリを送信することと、
前記第1の電子デバイスから、前記第1の電子デバイスの現在の状態を受信することと、
構成の少なくとも一部として、前記第1の電子デバイスの前記現在の状態を記憶させることであって、前記構成は、前記構成を参照するコマンドに応じて使用するための、複数の対応する電子デバイスの複数の状態を定義する、こととを含む、方法。
【請求項2】
請求項1に記載の方法であって、
前記第1のコマンドを前記第1の電子デバイスに送信した後であって、前記第2のオーディオ入力を受け取る前に、前記第1の電子デバイスから、前記第1の電子デバイスの現在の状態を受信することと、
前記第1の電子デバイスの前記現在の状態を、1つ以上のサーバに送信することとを更に含む方法。
【請求項3】
請求項1又は2に記載の方法であって、前記第1のコマンドは、電球のオン/オフ状態、明暗調整可能状態、又は色状態を設定するコマンドを含む、方法。
【請求項4】
請求項3に記載の方法であって、前記第1の電子デバイスの前記現在の状態は、前記電球の前記オン/オフ状態、明暗調整可能状態、又は色状態を設定する前記第1のコマンドを送信した後の前記電球の前記オン/オフ状態、明暗調整可能状態、又は色状態を含む、方法。
【請求項5】
請求項1又は2に記載の方法であって、前記第1のコマンドは、スイッチのオン/オフ状態を設定するコマンドを含む、方法。
【請求項6】
請求項5に記載の方法であって、前記第1の電子デバイスの前記現在の状態は、前記スイッチの前記オン/オフ状態を設定する前記コマンドを送信した後の前記スイッチの前記オン/オフ状態を含む、方法。
【請求項7】
請求項1又は2に記載の方法であって、前記第1のコマンドは、ドアの鍵の施錠/非施錠状態を設定するコマンドを含む、方法。
【請求項8】
請求項7に記載の方法であって、前記第1の電子デバイスの前記現在の状態は、前記ドアの鍵の前記施錠/非施錠状態を設定する前記コマンドを送信した後の前記ドアの鍵の前記施錠/非施錠状態を含む、方法。
【請求項9】
請求項1又は2に記載の方法であって、前記第1のコマンドは、ガレージドアの開/閉状態を設定するコマンドを含む、方法。
【請求項10】
請求項9に記載の方法であって、前記第1の電子デバイスの前記現在の状態は、前記ガレージドアの前記開/閉状態を設定する前記コマンドを送信した後の前記ガレージドアの前記開/閉状態を含む、方法。
【請求項11】
請求項1又は2に記載の方法であって、前記第1のコマンドは、サーモスタットの温度設定の数値を設定するコマンドを含む、方法。
【請求項12】
請求項11に記載の方法であって、前記サーモスタットの前記温度設定の前記数値を設定する前記第1のコマンドを送信した後の前記サーモスタットの前記温度設定の前記数値を含む、方法。
【請求項13】
請求項1から12のいずれか一項に記載の方法であって、
予め定められた条件が満たされたと判定したことに応答して、前記第1の電子デバイスの前記現在の状態に関連する通知を出力すること、を更に含む方法。
【請求項14】
請求項1から13のいずれか一項に記載の方法であって、前記ユーザデバイスは、前記複数の電子デバイスのそれぞれの状態を記憶するデータベースを含み、前記方法は、
前記データベースに記憶される前記複数の電子デバイスの状態を、前記複数の電子デバイスから受信した前記複数の電子デバイスの現在の状態に少なくとも部分的に基づいて更新すること、を更に含む方法。
【請求項15】
請求項1から14のいずれか一項に記載の方法であって、
前記第1のコマンドと、前記第1の電子デバイスから受信した前記第1の電子デバイスの前記現在の状態とに基づいて、前記第1のコマンドの結果の指示を出力することであって、前記結果の前記指示は、音声、視覚、又は音声と視覚の両方の指示である、ことを更に含む方法。
【請求項16】
請求項1から15のいずれか一項に記載の方法であって、前記ユーザデバイスは、携帯電話、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ポータブルメディアプレーヤ、テレビ、テレビセットトップボックス、又は着用可能電子デバイスを含む、方法。
【請求項17】
請求項1から16のいずれか一項に記載の方法であって、
前記第2のオーディオ入力を受け取る前に、前記オーディオ入力に対応するデータに基づいて、第2の電子デバイスの識別子を決定することと、
前記オーディオ入力に対応するデータに基づいて、前記第2の電子デバイスによって実行されるべき第2のコマンドを決定することと、
前記第2のコマンドを前記第2の電子デバイスに送信することと、
前記第2のコマンドを前記第2の電子デバイスに送信した後に、前記第2の電子デバイスから、前記第2の電子デバイスの現在の状態を受信することと、
前記第2の電子デバイスの前記現在の状態を記憶させることと、を更に含む方法。
【請求項18】
コンピュータに、請求項1から17のいずれか一項に記載の方法を実行させるコンピュータプログラム。
【請求項19】
ユーザデバイスであって、
請求項18に記載のコンピュータプログラムを記憶するメモリと、
前記メモリに記憶された前記コンピュータプログラムを実行可能な1つ以上のプロセッサと、を含むユーザデバイス。
【外国語明細書】