(57)【要約】  遠隔の自動化アシスタント構成要素が、少なくとも1つのIoTデバイスに関連する少なくとも1つの状態の変化を示す受信されたIoT状態変化通知に基づいて、クライアントデバイス通知を生成する。生成されるクライアントデバイス通知は、それぞれ、少なくとも1つのIoTデバイスに関連する状態の変化を示すことができ、任意で、少なくとも1つのIoTデバイスを示すことができる。さらに、遠隔の自動化アシスタント構成要素は、少なくとも1つのIoTデバイスに関連付けられる候補アシスタントクライアントデバイスを特定し、候補アシスタントクライアントデバイスのうちの1つまたは複数の各々が、対応するクライアントデバイス通知をレンダリングすべきかどうかを判定することができる。遠隔の自動化アシスタント構成要素は、その遠隔の自動化アシスタント構成要素が、対応するクライアントデバイス通知をレンダリングすべきであると判定するアシスタントクライアントデバイスの各々に、対応するコマンドを送信することができ、それぞれの送信されるコマンドは、対応するアシスタントクライアントデバイスに、対応するクライアントデバイス通知をレンダリングさせる。
2021509975.tif 000002
【特許請求の範囲】
【請求項１】
自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、モノのインターネット(IoT)状態変化通知を受信するステップであって、前記IoT状態変化通知が、少なくとも1つのIoTデバイスに関連する状態の変化の判定に応じて前記自動化アシスタントコンピューティングシステムに送信され、前記IoT状態変化通知が、
ユニーク識別子と、
前記少なくとも1つのIoTデバイスのインジケーションと、
前記少なくとも1つのIoTデバイスに関連する前記状態の前記変化を示す状態インジケーションと
を含む、ステップと、
前記ユニーク識別子に各々が関連付けられており、対応する自動化アシスタントクライアントを各々が有している、複数の候補アシスタントクライアントデバイスを、前記ユニーク識別子に基づいて、前記自動化アシスタントコンピューティングシステムによって特定するステップと、
前記複数の候補アシスタントクライアントデバイスのうちの少なくとも1つのクライアントデバイスのためのクライアントデバイス通知を、前記少なくとも1つのIoTデバイスの前記インジケーションに基づいておよび前記状態インジケーションに基づいて前記自動化アシスタントコンピューティングシステムによって生成するステップと、
前記1つのクライアントデバイスにコマンドを送信するステップであって、前記コマンドが、前記1つのクライアントデバイスの前記自動化アシスタントクライアントに、
前記1つのクライアントデバイスの少なくとも1つのユーザインターフェース出力デバイスを介して、前記生成されたクライアントデバイス通知を自動的にレンダリングすることであって、前記コマンドが、前記クライアントデバイスに、いかなる通知のレンダリングを明示的に要求するいかなるユーザインターフェース入力からも独立して前記生成されたクライアントデバイス通知を自動的にレンダリングさせる、ことと、
前記クライアントデバイス通知が少なくとも一部レンダリングされた後の期間の間、音声入力を自動的に監視することと、
前記音声入力の前記自動的な監視中に口頭の発話を検出したことに基づいて前記口頭の発話に対応するデータを送信することと
を行わせる、ステップと
を含む、方法。
【請求項２】
前記口頭の発話に対応する前記データを前記1つのクライアントデバイスから受信するステップと、
前記口頭の発話に対応する前記データに基づいておよび前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいてIoTデバイスのコマンドを生成するステップと、
前記IoTデバイスのコマンドを送信するステップであって、前記IoTデバイスのコマンドを送信するステップが、前記少なくとも1つのIoTデバイスの前記状態またはさらなる状態の変化を引き起こす、ステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記口頭の発話に対応する前記データに基づいておよび前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて前記IoTデバイスのコマンドを生成するステップが、
前記口頭の発話に対応する前記データに基づいて前記IoTデバイスのコマンドのための少なくとも1つの値を生成するステップと、
前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて前記IoTデバイスのコマンドのための少なくとも1つのさらなる値を推測するステップであって、前記少なくとも1つのさらなる値を推測するステップが、前記クライアントデバイス通知、または前記クライアントデバイス通知がそれに基づいて生成される前記IoT状態変化通知に基づく、ステップと
を含む、請求項2に記載の方法。
【請求項４】
前記IoT状態変化通知に基づいて前記少なくとも1つのさらなる値を推測することが、前記IoT状態変化通知または前記クライアントデバイス通知に基づいて前記少なくとも1つのIoTデバイスの識別子を推測することを含む、請求項3に記載の方法。
【請求項５】
前記口頭の発話に対応する前記データを前記1つのクライアントデバイスから受信するステップと、
前記口頭の発話に対応する前記データに基づいておよび前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて前記口頭の発話に関する応答内容を生成するステップと、
前記1つのクライアントデバイスに前記応答内容に基づく応答出力をレンダリングさせるために前記1つのクライアントデバイスに前記応答内容を送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記口頭の発話に対応する前記データに基づいておよび前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて前記応答内容を生成するステップが、
前記口頭の発話に対応する前記データに基づいて少なくとも1つの値を生成するステップと、
前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて少なくとも1つのさらなる値を推測するステップであって、前記少なくとも1つのさらなる値を推測するステップが、前記クライアントデバイス通知、または前記クライアントデバイス通知がそれに基づいて生成される前記IoT状態変化通知に基づく、ステップと、
前記少なくとも1つの値および前記少なくとも1つのさらなる値に基づいて前記応答内容を生成するステップと
を含む、請求項5に記載の方法。
【請求項７】
前記クライアントデバイス通知が、テキストを含み、前記コマンドが、前記クライアントデバイス通知の前記テキストを含み、前記コマンドが、前記1つのクライアントデバイスに前記テキストをオーディオデータに変換させ前記1つのクライアントデバイスの少なくとも1つのスピーカを介して前記オーディオデータをレンダリングさせることによって、選択された前記1つのクライアントデバイスの前記自動化アシスタントクライアントに、前記1つのクライアントデバイスの前記少なくとも1つのユーザインターフェース出力デバイスを介して前記生成されたクライアントデバイス通知を自動的にレンダリングさせる、請求項1から6のいずれか一項に記載の方法。
【請求項８】
前記IoT状態変化通知内の前記少なくとも1つのIoTデバイスの前記インジケーションと、
前記状態変化通知内の前記状態インジケーションと
のうちの一方または両方に基づいて、前記1つのクライアントデバイスに前記コマンドを送信すると決定するステップをさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
現在の時刻と、
現在の曜日と
のうちの一方または両方に基づいて、前記1つのクライアントデバイスに前記コマンドを送信すると決定するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
少なくとも1人のユーザが前記1つのクライアントデバイスの近くに位置すると判定することと、
前記1つのクライアントデバイスが1つもしくは複数の予め定義された状態にないと判定することと
のうちの一方または両方に基づいて、前記1つのクライアントデバイスに前記コマンドを送信すると決定するステップをさらに含む、請求項1から9のいずれか一項に記載の方法。
【請求項１１】
前記ユーザが前記1つのクライアントデバイスの近くに位置すると判定することが、
前記1つのクライアントデバイスとのユーザのインタラクションの新しさと、
前記1つのクライアントデバイスの少なくとも1つのセンサからのクライアントデバイスのセンサデータと、
前記1つのクライアントデバイスのセンサではないが、前記1つのクライアントデバイスの近くに位置する、少なくとも1つのセンサからのさらなるセンサデータと
のうちの1つまたは複数に基づく、請求項10に記載の方法。
【請求項１２】
前記1つのクライアントデバイスを含む複数の前記候補クライアントデバイスのグループを選択するステップと、
前記1つのクライアントデバイスが前記選択されたグループに含まれていることに基づいて前記1つのクライアントデバイスに前記コマンドを送信するステップと、
その他の候補クライアントデバイスが前記選択されたグループに含まれていることに基づいて前記選択されたグループの前記その他の候補クライアントデバイスの各々にそれぞれのコマンドを送信するステップであって、前記それぞれのコマンドが各々、前記その他の候補クライアントデバイスのそれぞれに、前記少なくとも1つのIoTデバイスの前記インジケーションに基づいておよび前記状態インジケーションに基づいて生成されたそれぞれのクライアントデバイス通知をレンダリングさせる、ステップと
をさらに含む、請求項1から11のいずれか一項に記載の方法。
【請求項１３】
前記それぞれのコマンドが各々、前記コマンドと同じであり、前記それぞれのクライアントデバイス通知が各々、前記クライアントデバイス通知と同じである、請求項12に記載の方法。
【請求項１４】
前記それぞれのコマンドのうちの少なくとも1つが、前記コマンドとは異なり、前記それぞれのクライアントデバイス通知のうちの少なくとも1つが、前記クライアントデバイス通知とは異なる、請求項12に記載の方法。
【請求項１５】
複数の前記候補クライアントデバイスの前記グループを選択するステップが、
所与のクライアントデバイスが1つまたは複数の予め定義された状態にあると判定することと、
前記IoT状態変化通知内の前記少なくとも1つのIoTデバイスの前記インジケーションと、
前記IoT状態変化通知内の前記状態インジケーションと
のうちの1つまたは複数に基づいて、前記グループから前記候補クライアントデバイスのうちの前記所与のクライアントデバイスを除外するステップを含む、請求項12に記載の方法。
【請求項１６】
自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、
第1の第三者システムからの第1のIoT状態通知であって、前記第1のIoT状態通知が、前記自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態を示し、ユニーク識別子、および前記1つまたは複数のIoTデバイスの第1のグループに関連する前記第1の状態を示す第1の状態インジケーションを含む、第1のIoT状態通知と、
第2の第三者システムからの第2のIoT状態通知であって、前記第2のIoT状態通知が、前記自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態を示し、前記ユニーク識別子またはさらなるユニーク識別子、および前記1つまたは複数のIoTデバイスの第2のグループに関連する前記第2の状態を示す第2の状態インジケーションを含む、第2のIoT状態通知と
を受信するステップと、
前記第1のIoT状態通知と前記第2のIoT状態通知との両方に基づく複合通知を送信すると決定するステップであって、前記複合通知を送信すると決定するステップが、前記第1のIoT状態通知および前記第2のIoT状態通知に基づいて、前記第1の状態および前記第2の状態が同時に起こっているとの判定に基づく、ステップと、
前記ユニーク識別子に少なくとも部分的に基づいて前記自動化アシスタントコンピューティングシステムによって、対応する自動化アシスタントクライアントを各々が有しており、前記1つまたは複数のIoTデバイスの第1のグループと前記1つまたは複数のIoTデバイスの第2のグループとの両方に各々が関連付けられている複数の候補アシスタントクライアントデバイスを特定するステップと、
前記候補アシスタントクライアントデバイスのうちの少なくとも1つを選択するステップと、
前記候補アシスタントクライアントデバイスの前記少なくとも1つにコマンドを送信するステップであって、前記コマンドが、前記複合通知を含み、前記候補アシスタントクライアントデバイスのうちの前記少なくとも1つの前記自動化アシスタントクライアントに、
前記候補アシスタントクライアントデバイスの前記少なくとも1つの少なくとも1つのユーザインターフェース出力デバイスを介して、前記複合通知を自動的にレンダリングさせる、ステップと
を含む、方法。
【請求項１７】
前記複合通知が、プロンプトを含み、前記コマンドが、さらに、前記自動化アシスタントクライアントに前記プロンプトに対する応答を監視させ、前記プロンプトに対する前記応答を送信させる、請求項16に記載の方法。
【請求項１８】
前記プロンプトが、前記1つまたは複数のIoTデバイスの第1のグループに関連する前記第1の状態への変化を提言し、前記方法が、
プロンプトに対する肯定的な応答を受け取ることに応じて、
1つまたは複数のIoTデバイスの前記第1のグループに関連する前記第1の状態への前記変化を引き起こすIoTコマンドを送信するステップをさらに含む、請求項17に記載の方法。
【請求項１９】
前記複合通知が、グラフィカルインターフェースを含み、前記プロンプトが、前記グラフィカルインターフェースの選択可能な要素である、請求項17に記載の方法。
【請求項２０】
前記プロンプトに対する肯定的な応答が、前記グラフィカルインターフェースの前記選択可能な要素の選択である、請求項19に記載の方法。
【請求項２１】
前記第1のIoT状態通知が、第1の時間に受信され、前記第2のIoT状態通知が、前記第1の時間の後の第2の時間に受信され、前記方法が、
前記第1の時間の後および前記第2の時間の前に、前記第1のIoT状態通知に基づくいかなる通知のレンダリングを引き起こすいかなるコマンドも送信しないと決定するステップをさらに含む、請求項16から20のいずれか一項に記載の方法。
【請求項２２】
自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、IoT状態変化通知を受信するステップであって、前記IoT状態変化通知が、少なくとも1つのIoTデバイスに関連する状態の変化の判定に応じて前記自動化アシスタントコンピューティングシステムに送信され、
ユニーク識別子と、
前記少なくとも1つのIoTデバイスのインジケーションと、
前記少なくとも1つのIoTデバイスに関連する前記状態の前記変化を示す状態インジケーションと
を含む、ステップと、
前記ユニーク識別子に各々が関連付けられており、対応する自動化アシスタントクライアントを各々が有している、複数のアシスタントクライアントデバイスを、前記ユニーク識別子に基づいて、前記自動化アシスタントコンピューティングシステムによって特定するステップと、
前記アシスタントクライアントデバイスのサブセットを選択するステップであって、前記サブセットを選択するステップが、前記少なくとも1つのIoTデバイスの前記インジケーション、および前記少なくとも1つのIoTデバイスに関連する前記状態の前記変化を示す前記状態インジケーションのうちの一方または両方に少なくとも部分的に基づく、ステップと、
前記アシスタントクライアントデバイスの前記自動化アシスタントクライアントに、
前記IoT状態変化通知に応じた対応する通知を自動的にレンダリングさせる対応するコマンドを、前記選択されたサブセットの前記アシスタントクライアントデバイスの各々にのみ送信するステップと
を含む、方法。
【請求項２３】
第1の時間に自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、
第1の第三者システムからの第1のIoT状態変化通知を受信するステップであって、前記第1のIoT状態変化通知が、前記自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態への変化を示し、ユニーク識別子、前記1つまたは複数のIoTデバイスの第1のグループのインジケーション、および前記1つまたは複数のIoTデバイスの第1のグループに関連する前記第1の状態を示す第1の状態インジケーションを含む、ステップと、
前記ユニーク識別子に各々が関連付けられており、対応する自動化アシスタントクライアントを各々が有している、複数の候補アシスタントクライアントデバイスを、前記ユニーク識別子に基づいて、前記自動化アシスタントコンピューティングシステムによって特定するステップと、
前記候補アシスタントクライアントデバイスの第1のサブセットを選択するステップであって、前記第1のサブセットを選択するステップが、1つもしくは複数のIoTデバイスの前記第1のグループの前記インジケーション、および1つもしくは複数のIoTデバイスの前記第1のグループに関連する前記第1の状態を示す前記第1の状態インジケーションのうちの一方または両方に少なくとも部分的に基づく、ステップと、
前記候補アシスタントクライアントデバイスの前記自動化アシスタントクライアントに、
前記第1のIoT状態変化通知に応じた対応する通知を自動的にレンダリングさせる対応するコマンドを、前記第1のサブセットの前記候補アシスタントクライアントデバイスの各々にのみ送信するステップと、
第2の時間に自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、
第2の第三者システムからの第2のIoT状態変化通知を受信するステップであって、前記第2のIoT状態変化通知が、前記自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態への変化を示し、前記ユニーク識別子またはさらなるユニーク識別子、前記1つまたは複数のIoTデバイスの第2のグループのインジケーション、および前記1つまたは複数のIoTデバイスの第2のグループに関連する前記第2の状態を示す第2の状態インジケーションを含む、ステップと、
前記複数の候補アシスタントクライアントデバイスを、前記ユニーク識別子または前記さらなるユニーク識別子に基づいて、前記自動化アシスタントコンピューティングシステムによって特定するステップと、
前記候補アシスタントクライアントデバイスの第2のサブセットを選択するステップであって、前記第2のサブセットが、前記第1のサブセットとは異なり、前記第2のサブセットを選択するステップが、1つもしくは複数のIoTデバイスの前記第2のグループの前記インジケーション、および1つもしくは複数のIoTデバイスの前記第2のグループに関連する前記第2の状態を示す前記第2の状態インジケーションのうちの一方または両方に少なくとも部分的に基づく、ステップと、
前記候補アシスタントクライアントデバイスの前記自動化アシスタントクライアントに、
前記第2のIoT状態変化通知に応じた対応する第2の通知を自動的にレンダリングさせる対応する第2のコマンドを、前記第2のサブセットの前記候補アシスタントクライアントデバイスの各々にのみ送信するステップと
を含む、方法。
【請求項２４】
第1の時間に自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、
第1の第三者システムからの第1のIoT状態変化通知を受信するステップであって、前記第1のIoT状態変化通知が、前記自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態への変化を示し、ユニーク識別子、前記1つまたは複数のIoTデバイスの第1のグループのインジケーション、および前記1つまたは複数のIoTデバイスの第1のグループに関連する前記第1の状態を示す第1の状態インジケーションを含む、ステップと、
前記ユニーク識別子に関連付けられており、自動化アシスタントクライアントを含む、クライアントデバイスを、前記ユニーク識別子に基づいて、前記自動化アシスタントコンピューティングシステムによって特定するステップと、
前記候補アシスタントクライアントデバイスの前記自動化アシスタントクライアントに前記第1のIoT状態変化通知に応じた第1の出力を自動的に直ちに聞こえるようにレンダリングさせる第1のコマンドを送信すると決定するステップであって、前記候補アシスタントクライアントデバイスの前記自動化アシスタントクライアントに前記第1のIoT状態変化通知に応じた前記第1の出力を自動的に直ちに聞こえるようにレンダリングさせる前記第1のコマンドを送信すると決定するステップが、1つもしくは複数のIoTデバイスの前記第1のグループの前記インジケーション、および1つもしくは複数のIoTデバイスの前記第1のグループに関連する前記第1の状態を示す前記第1の状態インジケーションのうちの一方または両方に少なくとも部分的に基づく、ステップと、
第2の時間に自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、
第2の第三者システムからの第2のIoT状態変化通知を受信するステップであって、前記第2のIoT状態変化通知が、前記自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態への変化を示し、前記ユニーク識別子またはさらなるユニーク識別子、前記1つまたは複数のIoTデバイスの第2のグループのインジケーション、および前記1つまたは複数のIoTデバイスの第2のグループに関連する前記第2の状態を示す第2の状態インジケーションを含む、ステップと、
前記自動化アシスタントクライアントを含む前記クライアントデバイスを、前記ユニーク識別子または前記さらなるユニーク識別子に基づいて、前記自動化アシスタントコンピューティングシステムによって特定するステップと、
前記アシスタントクライアントデバイスの前記自動化アシスタントクライアントに前記第2のIoT状態変化通知に応じた第2の出力をレンダリングさせるが、ただし、前記第2の出力を聞こえないようにおよび/または時間をおいてレンダリングさせる第2のコマンドを送信すると決定するステップであって、前記候補アシスタントクライアントデバイスの前記自動化アシスタントクライアントに前記第2の出力を聞こえないようにおよび/または時間をおいてレンダリングさせる前記第2のコマンドを送信すると決定するステップが、1つもしくは複数のIoTデバイスの前記第2のグループの前記インジケーション、および1つもしくは複数のIoTデバイスの前記第2のグループに関連する前記第2の状態を示す前記第2の状態インジケーションのうちの一方または両方に少なくとも部分的に基づく、ステップと
を含む方法。
【請求項２５】
自動化アシスタントコンピューティングシステムの1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに、請求項1から24のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【請求項２６】
請求項1から24のいずれか一項に記載の方法を実行するように構成された、コンピューティングシステム。
【請求項２７】
請求項26に記載のコンピューティングシステムと、
少なくとも1つのクライアントデバイスと
を含む、システム。
【請求項２８】
少なくとも1つのモノのインターネットデバイスをさらに含む、請求項27に記載のシステム。
【請求項２９】
請求項1から24のいずれか一項に記載の方法を実行するように自動化アシスタントコンピューティングシステムの1つまたは複数のプロセッサによって実行可能な命令を記憶する、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、ＩｏＴベースの通知の生成、およびクライアントデバイスの自動化アシスタントクライアントによるＩｏＴベースの通知の自動レンダリングを引き起こすコマンドの提供に関する。
【背景技術】
【０００２】
人は、本明細書において「自動化アシスタント」(「チャットボット」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「パーソナルボイスアシスタント」、「会話エージェント」などとも呼ばれる)と呼ばれるインタラクティブなソフトウェアアプリケーションを用いて人とコンピュータとの対話に従事し得る。たとえば、人(自動化アシスタントとインタラクションするときは「ユーザ」と呼ばれることがある)は、自動化アシスタントに応答出力を生成させ、提供させる、1つもしくは複数のモノのインターネット(IoT)デバイスを制御させる、および/または1つもしくは複数のその他の機能を実行させることができる入力(たとえば、コマンド、問い合わせ、および/または要求)を自動化アシスタントに与え得る。ユーザによって与えられる入力は、たとえば、場合によってはテキスト(もしくはその他の意味表現)に変換され、それから処理され得る口頭の(spoken)自然言語入力(つまり、発話)、および/またはタイピングされた自然言語入力であり得る。
【０００３】
場合によっては、自動化アシスタントは、クライアントデバイスによってローカルで実行され、ユーザによって直接関わられる自動化アシスタントクライアントと、自動化アシスタントクライアントがユーザの入力に応答するのを助けるためにクラウドの仮想上の制限のないリソースを利用するクラウドベースのカウンターパート(couterpart)とを含み得る。たとえば、自動化アシスタントクライアントは、ユーザによる口頭の発話のオーディオ録音(またはそのテキスト変換)と、任意で、ユーザの識別情報を示すデータ(たとえば、証明書)とをクラウドベースのカウンターパートに提供し得る。クラウドベースのカウンターパートは、問い合わせに対して様々な処理を実行して自動化アシスタントクライアントに結果を返し得るし、その後、自動化アシスタントクライアントが、対応する出力をユーザに提供し得る。
【０００４】
多くのユーザが、複数のクライアントデバイスを使用して自動化アシスタントと関わり得る。たとえば、一部のユーザは、クライアントデバイスの中でもとりわけ、1つもしくは複数のスマートフォン、1つもしくは複数のタブレットコンピュータ、1つもしくは複数の乗り物のコンピューティングシステム、1つもしくは複数のウェアラブルコンピューティングデバイス、1つもしくは複数のスマートテレビ、および/または1つもしくは複数のスタンドアロンインタラクティブスピーカなどのクライアントデバイスの調整された「エコシステム」を有し得る。ユーザは、(自動化アシスタントクライアントがインストールされていると仮定して)これらのクライアントデバイスのいずれかを使用して自動化アシスタントとの人とコンピュータとの対話に従事し得る。場合によっては、これらのクライアントデバイスは、ユーザの主たる住居、別宅、職場、および/またはその他の構造物に散在し得る。たとえば、スマートフォン、タブレット、スマートウォッチなどのモバイルクライアントデバイスは、ユーザに身につけられているか、および/またはどこでもユーザがそれらを最後に置いたところにあり得る。通常のデスクトップコンピュータ、スマートテレビ、およびスタンドアロンインタラクティブスピーカなどのその他のクライアントデバイスは、より固定的なものであり得るが、そうであったとしても、ユーザの家または職場内の様々な場所(たとえば、部屋)に置かれ得る。
【０００５】
自動化アシスタントクライアントに関連付けられる複数のIoTデバイスのいずれか1つを制御するためにクライアントデバイスの調整されたエコシステムのいずれか1つの自動化アシスタントクライアントをユーザ(たとえば、1人のユーザ、家族、同僚、同居者などの中の複数のユーザ)が利用することを可能にするための技術が存在する。たとえば、ユーザは、対応するIoTデバイス(つまり、自動化アシスタントクライアントにリンクされ、「居間」の照明とラベル付けされた照明)を消させるためにクライアントデバイスの自動化アシスタントクライアントに「居間の照明を消して」という口頭のコマンドを発することができる。さらに、自動化アシスタントクライアントは、照明を消すコマンドが遂行されたことを示す(および任意でそれが成功したかどうかを示す)応答出力などの応答出力を口頭のコマンドに応じて提供することができる。
【０００６】
ユーザがIoTデバイスの状態を明示的に要求し、それに応じて状態のインジケーションを受け取るためにクライアントデバイスの自動化アシスタントクライアントを利用することを可能にするための技術も、存在する。たとえば、「サーモスタットの設定はどうなってる」という口頭の発話に応じて、一部の自動化アシスタントは、サーモスタットIoTデバイスの現在の温度設定を判定し、現在の温度設定を示す応答出力を提供することができる。しかし、そのような技術は、ユーザがクライアントデバイスの自動化アシスタントクライアントを介して与えられたユーザ入力を通じてIoTデバイスの状態を明示的に要求することを必要とする。さらに、そのような技術は、計算リソースおよび/またはネットワークリソースに負担をかけ得る。たとえば、そのような技術は、クライアントデバイスがユーザの要求を処理し、クライアントデバイスが要求に対応するデータを遠隔の自動化アシスタント構成要素に送信し、遠隔の自動化アシスタント構成要素が状態を突き止めるために別個のIoTシステムとインタラクションし、遠隔の自動化アシスタント構成要素が状態を示す応答をクライアントデバイスに送信することを必要とする。
【発明の概要】
【課題を解決するための手段】
【０００７】
本明細書において説明される実装は、IoTベースの通知を生成すること、およびクライアントデバイスの自動化アシスタントクライアントによるIoTベースの通知の自動レンダリングを引き起こすコマンドを提供することに関する。たとえば、遠隔の自動化アシスタント構成要素(本明細書においては「クラウドベースの自動化アシスタント構成要素」とも呼ばれる)が、少なくとも1つのIoTデバイスに関連する少なくとも1つの状態の変化を示す受信されたIoT状態変化通知に基づいてクライアントデバイス通知を生成することができる。生成されるクライアントデバイス通知は、それぞれ、少なくとも1つのIoTデバイスに関連する状態の変化を示すことができ、任意で、少なくとも1つのIoTデバイスを示すことができる。さらに、遠隔の自動化アシスタント構成要素は、少なくとも1つのIoTデバイスに関連付けられる候補アシスタントクライアントデバイス(つまり、自動化アシスタントクライアントをそれぞれ含むクライアントデバイス)を特定し、候補アシスタントクライアントデバイスのうちの1つまたは複数の各々が、対応するクライアントデバイス通知をレンダリングすべきかどうかを判定することができる。遠隔の自動化アシスタント構成要素は、その遠隔の自動化アシスタント構成要素が対応するクライアントデバイス通知をレンダリングすべきであると判定するアシスタントクライアントデバイスの各々に、対応するコマンドを送信することができ、それぞれの送信されるコマンドは、対応するアシスタントクライアントデバイスに、対応するクライアントデバイス通知をレンダリングさせる。たとえば、コマンドは、第1のアシスタントクライアントデバイスに、クライアントデバイス通知を自動的に聞こえるようにレンダリングさせるために、第1のアシスタントクライアントデバイスに送信されることが可能であり、コマンドは、第2のアシスタントクライアントデバイスに、同じクライアントデバイス通知を自動的に聞こえるようにレンダリングさせるために、第2のアシスタントクライアントデバイスに送信されることが可能であり、以下同様である。たとえば、コマンドは、通知のレンダリングを明示的に要求するいかなるユーザインターフェース入力からも独立して、さらにはいかなるユーザインターフェース入力からも完全に独立して(たとえば、受信に応じたレンダリング)クライアントデバイスによる自動的レンダリングを引き起こすことができる。1つの特定の場合として、コマンドは、クライアントデバイス通知のテキストを含むことが可能であり、コマンドは、アシスタントクライアントデバイスにテキストのテキスト音声変換を実行させ、それらのアシスタントクライアントデバイスのスピーカによって対応するオーディオデータをレンダリングさせることが可能である。
【０００８】
本明細書において説明される一部の実装において、アシスタントクライアントデバイスにクライアントデバイス通知をレンダリングさせるためにアシスタントクライアントデバイスに送信されるコマンドは、クライアントデバイスに、クライアントデバイス通知が少なくとも一部レンダリングされた後の時間の期間の間、音声入力を自動的に監視させ、自動監視中に検出された口頭の発話に対応するデータを送信させることもできる。このようにして、ユーザは、(たとえば、始めに「ヘイ、アシスタント」などの呼び出しフレーズを言うか、または呼び出しボタンを押すことによって)始めにアシスタントクライアントデバイスのアシスタントクライアントを明示的に呼び出さなくてよいので、削減された量の入力によってクライアントデバイス通知に関連する口頭の発話を与えることができる。これは、自動化アシスタントクライアントを呼び出すための入力がアシスタントクライアントデバイスによって処理されなくてよいので、アシスタントクライアントデバイスのリソースを節約することができる。
【０００９】
さらに、それらの実装の一部において、自動化アシスタント(自動化アシスタントクライアントデバイスおよび/または遠隔の自動化アシスタント構成要素)は、口頭の発話を処理し、口頭の発話の処理に基づいて、および、音声入力の自動監視中に口頭の発話を検出したことに基づいて、さらなるアシスタントのアクションを実行する。たとえば、自動化アシスタントは、口頭の発話の音声テキスト変換を実行することにより生成されたテキストに基づいて、および、音声入力の監視中に口頭の発話を検出したことに基づいて推測された値に基づいて、さらなるアシスタントのアクションを生成することができる。推測された値は、クライアントデバイス通知および/またはクライアントデバイス通知が基づいていたIoT状態変化通知に基づくことができる。1つの特定の例として、クライアントデバイス通知が「玄関のドアロックがロック解除されています」であり、監視中に与えられた口頭の発話が「それをロックして」である場合、自動化アシスタントは、「それ」に関して値「玄関のドアロック」を推測し、「玄関のドアロック」の「ロック解除された」状態を「ロックされた」状態に変更させるIoTコマンドを生成し、送信することができる。これらのおよびその他の方法で、ユーザは、上述のように、通常は口頭の発話に必要とされる値が代わりに推測され得るので、クライアントデバイス通知に応じて、より短い口頭の発話を与えることができる。これは、より短い口頭の発話のおかげで、より少ないオーディオデータが送信および/または処理(たとえば、音声からテキストへ)される必要ですむので、アシスタントクライアントデバイスおよび/または遠隔の自動化アシスタント構成要素のリソースを節約することができる。
【００１０】
本明細書において説明される一部のさらなるまたは代替的な実装において、遠隔の自動化アシスタント構成要素は、どのクライアントデバイス(もしあれば)が受信されたIoT状態変化通知に応じて、クライアントデバイス通知をレンダリングさせられるべきかを決定する。遠隔の自動化アシスタント構成要素は、受信されたIoT状態変化通知のプロパティ、クライアントデバイスに関連する現在のプロパティ、時刻、曜日、および/または1つもしくは複数のその他の基準に基づいて、どのクライアントデバイス(もしあれば)がクライアントデバイス通知をレンダリングさせられるべきであるかを決定することができる。そのような考慮に基づいて、遠隔の自動化アシスタント構成要素は、したがって、受信されたIoT状態変化通知に応じてコマンドを一部のアシスタントクライアントデバイスに選択的に送信することができる(および場合によってはどのアシスタントクライアントデバイスにも送信しないことができる)。これらのおよびその他の方法で、クライアントデバイスのエコシステムに関連するあらゆるIoTデバイスのためのあらゆるIoT状態変化通知が、エコシステムのあらゆるクライアントデバイスに、対応するクライアントデバイス通知をレンダリングさせるわけではない。むしろ、クライアントデバイスの一部が、1つまたは複数の状態変化通知に関する対応するクライアントデバイス通知をレンダリングする(および場合によってはどのクライアントデバイスも、1つまたは複数の状態変化通知に関する対応するクライアントデバイス通知をレンダリングしない)。これは、様々な状況でコマンドがクライアントデバイスに送信されないかまたはクライアントデバイスによって処理されない結果として、クライアントデバイスにおいて計算リソースを節約することができる。さらに、これは、様々な状況で送信される必要があるコマンドの量を削減することによって、ネットワークリソースを節約することもできる。
【００１１】
上記説明は、本開示の一部の実装のみの概要として与えられた。それらの実装およびその他の実装のさらなる説明が、本明細書においてより詳細に記載される。1つの非限定的な例として、様々な実装が、本明細書に含まれる請求項により詳細に記載される。
【００１２】
加えて、一部の実装は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連するメモリに記憶された命令を実行するように動作可能であり、命令は、本明細書において説明される方法のいずれかの実行を引き起こすように構成される。一部の実装は、本明細書において説明される方法のいずれかを実行するために1つまたは複数のプロセッサによって実行され得るコンピュータ命令を記憶する1つまたは複数の非一時的コンピュータ可読記憶媒体も含む。
【００１３】
上述の概念および本明細書においてより詳細に説明されるさらなる概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【図面の簡単な説明】
【００１４】
【図１】本明細書において開示される実装が実施され得る例示的な環境のブロック図である。
【図２Ａ１】様々な実装によるIoTに基づくクライアントデバイスの通知を自動的にレンダリングするクライアントデバイスに関連する一部の例を示す図である。
【図２Ａ２】様々な実装によるIoTに基づくクライアントデバイスの通知を自動的にレンダリングするクライアントデバイスに関連する一部の例を示す図である。
【図２Ａ３】様々な実装によるIoTに基づくクライアントデバイスの通知を自動的にレンダリングするクライアントデバイスに関連する一部の例を示す図である。
【図２Ａ４】様々な実装によるIoTに基づくクライアントデバイスの通知を自動的にレンダリングするクライアントデバイスに関連する一部の例を示す図である。
【図２Ｂ】様々な実装によるIoTに基づくクライアントデバイスの通知を自動的にレンダリングするクライアントデバイスに関連する一部の例を示す図である。
【図２Ｃ】様々な実装によるIoTに基づくクライアントデバイスの通知を自動的にレンダリングするクライアントデバイスに関連する一部の例を示す図である。
【図２Ｄ】様々な実装によるIoTに基づくクライアントデバイスの通知を自動的にレンダリングするクライアントデバイスに関連する一部の例を示す図である。
【図３】様々な実装による例示的な状態図である。
【図４】様々な実装による別の例示的な状態図である。
【図５】様々な実装によるさらに別の例示的な状態図である。
【図６】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００１５】
サウンドスピーカ、家の警報、ドアロック、カメラ、照明システム、トレッドミル、サーモスタット、重量計、スマートベッド、灌漑システム、ガレージの扉の開閉器、電化製品、ベビーモニタ、火災報知器、水分検出器などのスマートなマルチセンシングネットワーク接続型デバイス(本明細書においてはIoTデバイスとも呼ばれる)が、急増している。多くの場合、複数のIoTデバイスが、家などの構造物の境界内に置かれる、またはユーザの主たる住居および別宅および/もしくは職場などの複数の関連する構造物内に置かれる。
【００１６】
さらに、アシスタントの論理インスタンスを形成するために、1つまたは複数の遠隔の自動化アシスタント構成要素とインタラクションすることができるアシスタントクライアントをそれぞれが含むアシスタントクライアントデバイスが、急増している。アシスタントクライアントデバイスは、アシスタント機能にのみ当てられることが可能であり(たとえば、アシスタントクライアントおよび関連するインターフェースのみを含み、アシスタント機能にのみ当てられるスタンドアロンスピーカおよび/もしくはスタンドアロンオーディオ/ビジュアルデバイス)、またはその他の機能に加えてアシスタント機能を実行することが可能である(たとえば、アシスタントクライアントを複数のアプリケーションのうちの1つとして含むモバイル電話もしくはタブレット)。さらに、一部のIoTデバイスは、アシスタントクライアントデバイスでもあり得る。たとえば、一部のIoTデバイスは、アシスタントクライアントと、アシスタントクライアントのアシスタントインターフェースのためのユーザインターフェース出力および/または入力デバイスとして(少なくとも部分的に)働く少なくともスピーカおよび/またはマイクロフォンとを含み得る。
【００１７】
IoTデバイスを自動化アシスタントの対応する論理インスタンスと(および任意で個々のアシスタントクライアントデバイスと)関連付けるための様々な技術が、提案されている。たとえば、ユーザ、ユーザのグループ、アシスタントクライアントデバイス、および/または(たとえば、すべて構造物内の)アシスタントクライアントデバイスのグループが、自動化アシスタントを介してIoTデバイス(たとえば、そのコントロール)とのインタラクションを可能にするために複数の異種のIoTデバイスと(たとえば、1つまたは複数のデータベース内で)リンクされ得る。たとえば、家庭内の複数のアシスタントクライアントデバイスの各々が、任意のユーザ(またはユーザの制約されたグループ)が、複数の異種のIoTデバイスのいずれか1つとインタラクションするために、アシスタントクライアントデバイスのいずれか1つとインターフェースを取ることを可能にするために家庭内の複数の異種のIoTデバイスの各々とリンクされ得る。
【００１８】
そのようなリンクの一例は、ユーザによって作成されるおよび/または自動的に作成されることが可能であり、様々なアシスタントクライアントデバイス、様々なIoTデバイス、それぞれに関する識別子、および/またはそれぞれに関する属性を定義し得るデバイストポロジー表現である。たとえば、デバイスに関する識別子は、デバイスがある構造物内の部屋(および/もしくはその他のエリア)(たとえば、居間、台所)を指定することができ、ならびに/またはデバイスのニックネームおよび/もしくは別名(たとえば、カウチランプ、玄関のドアロック、寝室のスピーカ、台所のアシスタントなど)を指定することができる。このようにして、デバイスの識別子は、ユーザがそれぞれのデバイスに関連付ける可能性が高いそれぞれのデバイスの名前、別名、および/または位置であることが可能である。
【００１９】
デバイストポロジー表現は、それぞれのデバイスに関連する1つまたは複数のデバイスの属性をさらに指定することができる。アシスタントクライアントデバイスに関するデバイスの属性は、たとえば、アシスタントクライアントデバイスによってサポートされる1つまたは複数の入力および/または出力様式に関連付けられ得る。たとえば、スタンドアロンスピーカ専用のアシスタントクライアントデバイスに関するデバイスの属性は、そのアシスタントクライアントデバイスが可聴出力を提供することができるが、視覚出力を提供することはできないことを示し得る。IoTデバイスのデバイス属性は、たとえば、IoTデバイス自体によって決定され得る状態および/または決定する際にIoTデバイスからのデータが利用され得る状態などのIoTデバイスに関連する1つまたは複数の状態に関連付けられ得る。たとえば、照明デバイスに関連するデバイスの属性は、オン状態、オフ状態、減光状態などを含み得る。別の例として、自動ドアロックデバイスは、ロックされた状態およびロック解除された状態を含み得る。さらに別の例として、カメラ付きのスマート呼び鈴は、(たとえば、スマート呼び鈴のボタンが作動されるときにアクティブ化される)鳴っている状態、(たとえば、カメラからのデータに基づく)物体検出状態などを含み得る。
【００２０】
本明細書において説明される実装は、様々なIoTデバイスの状態変化に応じて生成されたIoT状態変化通知を遠隔の自動化アシスタント構成要素によって受信することに関する。それらの実装は、さらに、それらのIoTデバイスに関連付けられるクライアントデバイスのアシスタントインターフェースによる、対応するクライアントデバイスの通知のレンダリングをいつおよび/またはどのようにして引き起こすべきかを様々な基準に基づいて遠隔の自動化アシスタント構成要素によって決定することに関する。さらに、それらの実装は、IoTに基づくクライアントデバイスの通知がレンダリングされるべきであると判定されるときに、それらのクライアントデバイスのアシスタントインターフェースにクライアントデバイスの通知を自動的にレンダリングさせ、任意で、それらのクライアントデバイスの通知を決定された方法でレンダリングさせるためのコマンドをクライアントデバイスに送信することに関する。
【００２１】
ここで図1を参照すれば、本明細書において開示される技術が実装され得る例示的な環境が示される。例示的な環境は、複数のクライアントコンピューティングデバイス1061〜N(本明細書においては単に「クライアントデバイス」とも呼ばれる)、1つまたは複数のクラウドベースの自動化アシスタント構成要素119、1つまたは複数のIoTシステム140、IoTデバイス1451〜N、およびユーザ情報データベース135を含む。図1のクライアントデバイス106およびIoTデバイス145は、(たとえば、デバイスのトポロジーによって)少なくとも互いに選択的に関連付けられるクライアントデバイスおよびIoTデバイスを表す。たとえば、IoTデバイス145は、すべて家に(たとえば、家の内部および/または外部に)あることが可能であり、クライアントデバイス106は、少なくともときどき同じ家の中にあることが可能であり、IoTデバイス145およびクライアントデバイス106は、本明細書において説明される技術などの1つまたは複数の技術を使用して互いにリンクされることが可能である。そのような関連付けによって、1人または複数のユーザが、自動化アシスタントクライアント106を利用してIoTデバイス145とインタラクションすることができ、および/またはIoTデバイス145のうちの1つもしくは複数に関連する通知が、本明細書において説明される実装によってクライアントデバイス106のうちの1つもしくは複数において自動的にレンダリングされるようにされ得る。
【００２２】
各クライアントデバイス106は、自動化アシスタントクライアント118のそれぞれのインスタンスを実行し得る。自動化アシスタントクライアント118のインスタンスは、クライアントデバイス116のオペレーティングシステムとは別の(たとえば、オペレーティングシステムの「上に」インストールされる)アプリケーションであることが可能である、または代替的にクライアントデバイス116のオペレーティングシステムによって直接実装されることが可能である。
【００２３】
1つまたは複数のクラウドベースの自動化アシスタント構成要素119は、1つまたは複数のローカルエリアネットワーク(Wi-Fi LAN、メッシュネットワークなどを含む「LAN」)および/または広域ネットワーク(たとえば、インターネット)を介してクライアントデバイス1061〜Nに通信可能なように結合される1つまたは複数のコンピューティングシステム(集合的に「クラウド」または「リモート」コンピューティングシステムと呼ばれる)に実装され得る。クライアントデバイス1061〜Nとのクラウドベースの自動化アシスタント構成要素119の通信可能な結合は、図1の1101によって全体的に示される。
【００２４】
クラウドベースの自動化アシスタント構成要素119は、1つまたは複数のネットワークを介して1つまたは複数のIoTシステム140とも通信可能なように結合され得る。IoTシステム140とのクラウドベースの自動化アシスタント構成要素119の通信可能な結合は、図1の1103によって全体的に示される。さらに、IoTシステム140は、1つまたは複数のネットワークを介して1つまたは複数のIoTデバイス1451〜Nの対応するグループにそれぞれ通信可能なように結合され得る。たとえば、第1のIoTシステム140が、1つまたは複数のIoTデバイス1451の第1のグループと通信可能なように結合され、第1のグループからデータを受信することが可能であり、第2のIoTシステム140が、1つまたは複数のIoTデバイス145Nの第2のグループと通信可能なように結合され、第2のグループからデータを受信し、以下同様である。IoTデバイス145とのIoTシステム140の通信可能な結合は、図1の1104によって全体的に示される。また、一部の実施形態において、複数のクライアントデバイス1061〜Nは、図1の1101によって全体的に示される1つまたは複数のネットワークを介して互いに通信可能なように結合され得る。
【００２５】
一部の実装において、複数のクライアントコンピューティングデバイス1061-NおよびIoTデバイス1451〜Nは、本明細書において説明される技術の実行を容易にするために様々な方法で互いに関連付けられ得る。たとえば、一部の実装において、複数のクライアントコンピューティングデバイス1061〜NおよびIoTデバイス1451〜Nは、1つまたは複数のLANを介して通信可能なように結合されるおかげで互いに関連付けられ得る。これは、たとえば、複数のクライアントコンピューティングデバイス1061〜Nが家、建物などの特定のエリアまたは環境中に展開される場合に当てはまり得る。追加的にまたは代替的に、一部の実装において、複数のクライアントコンピューティングデバイス1061〜NおよびIoTデバイス1451〜Nは、それらが1人または複数のユーザ(たとえば、個人、家族、組織の被雇用者、その他の予め定義されたグループなど)によって少なくとも選択的にアクセスされ得るクライアントデバイス106およびIoTデバイス1451〜Nの調整されたエコシステムのメンバーであるおかげで互いに関連付けられ得る。それらの実装の一部において、クライアントデバイス106およびIoTデバイス1451〜Nのエコシステムは、デバイスのトポロジー内で、手動でおよび/または自動的に互いに関連付けられ得る。
【００２６】
自動化アシスタントクライアント118のインスタンスは、1つまたは複数のクラウドベースの自動化アシスタント構成要素119とのその自動化アシスタントクライアント118のインタラクションを通して、ユーザの観点から見てユーザが人とコンピュータとの対話に従事し得る自動化アシスタント120の論理的なインスタンスであるように見えるものを形成し得る。そのような自動化アシスタント120の2つのインスタンスが、図1に示される。破線によって囲まれた第1の自動化アシスタント120Aは、クライアントデバイス1061の自動化アシスタントクライアント1181、および1つまたは複数のクラウドベースの自動化アシスタント構成要素119を含む。破線の間隙部分に1つおきに点を入れた線によって囲まれた第2の自動化アシスタント120Bは、クライアントデバイス106Nの自動化アシスタントクライアント118Nおよび1つまたは複数のクラウドベースの自動化アシスタント構成要素119を含む。したがって、クライアントデバイス106上で実行される自動化アシスタントクライアント118と関わり合う各ユーザは、実際には、自動化アシスタント120のそのユーザ独自の論理インスタンス(またはユーザの家庭もしくはその他のグループ内で共有される自動化アシスタント120の論理インスタンス)と関わり合い得ることを理解されたい。簡潔で単純にするために、本明細書において使用される用語「自動化アシスタント」は、クライアントデバイス106上で実行される自動化アシスタントクライアント118と、1つまたは複数のクラウドベースの自動化アシスタント構成要素119(複数の自動化アシスタントクライアント118の間で共有され得る)との組合せを指す。複数の関連するクライアントデバイス106のみが図1に示されるが、クラウドベースの自動化アシスタント構成要素119が、関連するクライアントデバイスの多くのさらなるグループにさらにサービスを提供し得ることが理解される。
【００２７】
クライアントデバイス1061〜Nは、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの乗り物のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、スタンドアロンインタラクティブスピーカ、スマートテレビなどのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)のうちの1つまたは複数を含み得る。さらなるおよび/または代替的なクライアントコンピューティングデバイスが、提供され得る。
【００２８】
IoTシステム140は、1つもしくは複数の第三者(3P)システムおよび/または1つもしくは複数の第一者(1P: first-party)システムを含み得る。本明細書において使用される第三者システムは、参照されている自動化アシスタントを制御するものとは異なるものによって制御されるシステムを参照する。第一者システムは、参照されている自動化アシスタントを制御するものと同じものによって制御されるシステムを参照する。
【００２９】
IoTシステム140は、IoTシステム140に通信可能なように結合されるIoTデバイス145からデータを受信し、受信されたデータに基づくIoT状態変化通知をクラウドベースの自動化アシスタント構成要素119に選択的に送信する。たとえば、IoTデバイス1451がスマート呼び鈴IoTデバイスを含むと仮定する。個人が呼び鈴IoTデバイスのボタンを押すことに応じて、呼び鈴IoTデバイスは、IoTシステム140のうちの1つ(たとえば、呼び鈴の製造業者によって管理されるIoTシステムのうちの1つ)に、対応するデータを送信することができる。IoTシステム140のうちの1つは、そのようなデータに基づいて呼び鈴IoTデバイスの状態の変化を判定することができる。たとえば、IoTシステム140のうちの1つは、非アクティブ状態(たとえば、ボタンの最近の押下なし)からアクティブ状態(ボタンが最近の押下あり)への呼び鈴の変化を判定し得る。さらに、IoTシステム140のうちの1つは、クラウドベースの自動化アシスタント構成要素119に、対応するIoT状態変化通知を送信し得る。送信されるIoT状態変化通知は、たとえば、少なくとも1つのIoTデバイスに関連する状態の変化を示す(たとえば、「呼び鈴が鳴っています」または「ドアのところに誰かいます」を示す)状態インジケーションと、クラウドベースの自動化アシスタント構成要素119が少なくとも1つのIoTデバイスに関連するクライアントデバイスを特定することを可能にするユニーク識別子と、任意で、少なくとも1つのIoTデバイスのインジケーション(「呼び鈴」という広いインジケーション、「玄関の呼び鈴」というより具体的なインジケーション、またはそれ以上にその呼び鈴に固有のユニーク識別子)とを含む構造化されたデータであることが可能である。一部の実装において、その呼び鈴に固有のユニーク識別子は、自動化アシスタントが少なくとも1つのIoTデバイスに関連するクライアントデバイスを特定することを可能にするユニーク識別子として働く可能性もあることが留意される。たとえば、その呼び鈴に固有のユニーク識別子は、デバイスのトポロジー内の呼び鈴および特定されたデバイスのトポロジー内のその呼び鈴に関連するクライアントデバイスを特定するために利用され得る。
【００３０】
クラウドベースの自動化アシスタント構成要素119は、1つまたは複数の候補クライアントデバイスを特定するために受信されたIoT状態変化通知のユニーク識別子を利用することができる。たとえば、IoT通知エンジン130が、含まれるユニーク識別子がユーザ情報データベース135においてクライアントデバイス106に(直接的にまたは間接的に)マッピングされることに基づいて受信されたIoT状態変化通知のための図1のクライアントデバイス106を特定することができる。たとえば、IoT通知エンジン130は、ユーザ情報データベース135内でアシスタントアカウントを特定するためにユニーク識別子を利用することができ、ユーザ情報データベース135内でそのアシスタントアカウントにリンクされ、任意で、(たとえば、アシスタントアカウントに関する異なるクライアントデバイスが異なるIoTデバイスにリンクされるとき)IoT状態変化通知内で示される少なくとも1つのIoTデバイスとリンクされるクライアントデバイス106を特定することができる。別の例として、ユニーク識別子は、少なくとも1つのIoTデバイスに固有であるユニーク識別子であることが可能であり、IoT通知エンジン130は、ユーザ情報データベース135内で少なくとも1つのIoTデバイスを特定するため、およびデータベース135内でそのIoTデバイスにリンクされるクライアントデバイス106を特定するためにユニーク識別子を利用することができる。IoT通知エンジン130は、候補クライアントデバイスを特定する際に、ユーザ情報データベース135内の1つまたは複数のデバイストポロジー表現および/またはその他のデータ構造を利用し得る。
【００３１】
IoT通知エンジン130は、特定されたクライアントデバイス106のうちの1つまたは複数に関するクライアントデバイス通知をさらに生成し得る。IoT通知エンジン130の構成要素は、状態変化通知に基づいておよび任意でクライアントデバイス通知がレンダリングされるべきであるクライアントデバイス106の1つまたは複数のプロパティに基づいてクライアントデバイス通知を生成し得る。たとえば、IoT通知エンジン130は、IoT状態変化通知の状態インジケーションに基づいておよび状態変化通知の少なくとも1つのIoTデバイスのインジケーションに基づいて選択されるテキストの内容を含むクライアントデバイス通知を生成し得る。たとえば、テキストの内容は、「誰かが玄関にいます」であることが可能であり、「誰かが〜にいます」が、「呼び鈴が鳴っています」を示す状態インジケーションに基づいて選択されることが可能であり、「玄関」が、少なくとも1つのIoTデバイスのインジケーションが「玄関」の記述子を含むことまたは「玄関」の記述子を有するデバイスに(たとえば、デバイストポロジー表現内で)マッピングされることに基づいて選択されることが可能である。
【００３２】
別の例として、記憶されたテンプレートが、状態変化通知を1つまたは複数のプロパティに基づいて選択されることが可能であり、IoT通知エンジン130は、状態変化通知に基づいてテンプレートを埋めることが可能である。たとえば、テンプレート[[<"somebody" if person=unknown>, <"friend" if person =known, but no description>, or <"description" if person=known, with description>]"is at <IoT descriptor>"]が、「呼び鈴が鳴っています」を示す状態変化通知に割り振られることが可能であり、テキストの内容を生成するためにIoT通知エンジン130によって利用されることが可能である。たとえば、受信されたIoT状態変化通知は、「呼び鈴が鳴っています」を示す状態インジケーション、「玄関」のテキストの記述子である少なくとも1つのIoTデバイスのインジケーション、および呼び鈴が鳴っているのが「Bob」という記述のある知られている人によることを示すさらなるデータを含み得る。そのような場合、テンプレートが、テキストの内容「Bobが玄関にいます」を生成するために使用されることが可能であり、「Bob」が、人の含まれる記述に基づいておよびテンプレートの条件「if person=known, with description」がIoT状態変化通知によって満たされていることに基づいて含められる。他方で、IoT状態変化通知が、上記と異なり、呼び鈴が鳴っているのが未知の人によることを示した場合、テンプレートは、テキストの内容「誰かが玄関にいます」を生成するために使用されることが可能であり、「誰か」が、テンプレートの条件「if person=unknown」がIoT状態変化通知によって満たされていることに基づいて含められる。
【００３３】
IoT通知エンジン130は、アシスタントクライアントデバイス106のうちの1つまたは複数の各々が、対応するクライアントデバイス通知をレンダリングすべきかどうかを判定することができる。そして、IoT通知エンジン130は、対応するクライアントデバイス通知を(もしあれば)レンダリングすべきであるとそのIoT通知エンジン130が判定したクライアントデバイス106の各々に、対応するコマンドを送信することができ、それぞれの送信されたコマンドが、対応するクライアントデバイス106に、対応するクライアントデバイス通知をレンダリングさせる。たとえば、IoT通知エンジン130は、クライアントデバイス1061に、クライアントデバイス通知を自動的に聞こえるようにレンダリングさせるためのコマンドをクライアントデバイス1061に送信することができ、IoT通知エンジン130は、クライアントデバイス106Nに同じクライアントデバイス通知を自動的に聞こえるようにレンダリングさせるためのコマンドをクライアントデバイス106Nに送信することができ、以下同様である。たとえば、コマンドは、通知のレンダリングを明示的に要求するいかなるユーザインターフェース入力からも独立して、さらにはいかなるユーザインターフェース入力からも完全に独立して(たとえば、受信に応じたレンダリング)クライアントデバイスによる自動的レンダリングを引き起こすことができる。そのような場合、コマンドは、さらに、即時の自動的レンダリングを引き起こすことができる。つまり、コマンドの受信後に可能な限り早くクライアントデバイスによってレンダリングすることは、コマンドの処理におよび/またはレンダリングに必要とされる処理にわずかな遅延が存在し得ることを認める。
【００３４】
一部の実装において、IoT通知エンジン130は、受信されたIoT状態変化通知のプロパティ、クライアントデバイスに関連する現在のプロパティ、時刻、曜日、および/または1つもしくは複数のその他の基準に基づいて(もしあれば)、どのクライアントデバイスがクライアントデバイス通知をレンダリングさせられるべきであるかを決定することができる。そのような考慮に基づいて、IoT通知エンジン130は、したがって、受信されたIoT状態変化通知に応じてコマンドを一部のアシスタントクライアントデバイスに選択的に送信することができる(および場合によってはどのアシスタントクライアントデバイスにも送信しないことができる)。
【００３５】
一部の実装において、クライアントデバイスにクライアントデバイス通知をレンダリングさせるために、IoT通知エンジン130によってクライアントデバイス106に送信されるコマンドは、クライアントデバイスに、クライアントデバイス通知が少なくとも一部レンダリングされた後の時間の期間の間、音声入力を自動的に監視させ、自動監視中に検出された口頭の発話に対応するデータ(たとえば、オーディオデータまたはその変換)を送信させることもできる。クラウドベースの自動化アシスタント構成要素119は、送信されたデータを受信し、処理し、口頭の発話の処理に基づいて、および、音声入力の自動監視中に口頭の発話を検出したことに基づいて、さらなるアシスタントのアクションを実行することができる。たとえば、自動化アシスタントは、口頭の発話の音声テキスト変換を実行することにより生成されたテキストに基づいておよび音声入力の監視中に口頭の発話を検出したことに基づいて推測された値に基づいてさらなるアシスタントのアクションを生成することができる。推測された値は、クライアントデバイス通知および/またはクライアントデバイス通知が基づいていたIoT状態変化通知に基づくことができる。1つの特定の例として、クライアントデバイス通知が「あなたのスマート掃除機が、ブラシの故障を報告しています」であり、監視中に与えられた口頭の発話が「どこで新しいものが手に入る」である場合、自動化アシスタントは、「もの」に関して値「スマート掃除機のブラシ」を推測し、「どこで新しいスマート掃除機のブラシが手に入る」に基づいて応答内容を生成し、クライアントデバイスによるレンダリングのために応答内容を提供することができる。IoT通知エンジン130の実装のさらなる説明が、本明細書において(たとえば、図2A1〜図2A5に関連する説明に)与えられる。
【００３６】
様々な実装において、クライアントコンピューティングデバイス1061〜Nのうちの1つまたは複数は、検出された存在、特に人の存在を示す信号を、対応するユーザからの承認を得て提供するように構成される1つまたは複数の存在センサ(presence sensor)1051〜Nを含み得る。それらの実装の一部において、IoT通知エンジン130は、ユーザ(および任意で特定のユーザ)が今近くにいるおよび/または最近近くにいたクライアントデバイス106においてのみクライアントデバイス通知がレンダリングされるべきであると判定し得る。本明細書において説明されるように、IoT通知エンジン130は、ユーザが近くにいるまたは最近近くにいたクライアントデバイスを判定する際に、存在センサ1051〜Nに基づいて決定されたデータを利用し、それらのクライアントデバイス106に、対応するコマンドを与えることができる。一部のさらなるまたは代替的な実装において、IoT通知エンジン130は、いずれかのユーザ(任意のユーザまたは特定のユーザ)がクライアントデバイス106のいずれかの近くに現在位置しているかどうかを判定する際に、存在センサ1051〜Nに基づいて決定されたデータを利用し、ユーザ(任意のユーザまたは特定のユーザ)がどのクライアントデバイス106の近くにも位置していないと判定されるときに基づいて、コマンドを与えることを抑制することができる。したがって、これらのおよびその他の方法で、そうでなければ(ユーザがクライアントデバイス106のいずれかの近くに位置していると判定することなしに)与えられたであろうコマンドが、抑制されることが可能であり、それによって、それらのクライアントデバイス106のリソースの過度の消費を軽減する。
【００３７】
存在センサ1051〜Nは、様々な形態であり得る。一部のクライアントデバイス106は、カメラの視野内で検出された動きを示す信号を捕捉し、提供するように構成される1つまたは複数のデジタルカメラを備え得る。追加的にまたは代替的に、一部のクライアントデバイス106は、センサの視野内の物体から放射される赤外(「IR」)光を測定するパッシブ赤外線(「PIR」)センサなどのその他の種類の光に基づく存在センサ105を備え得る。追加的にまたは代替的に、一部のクライアントデバイス106は、1つまたは複数のマイクロフォンなどの音響(または圧力)波を検出する存在センサ105を備え得る。さらに、クライアントデバイス106に加えて、一部のIoTデバイス145が、追加的にまたは代替的に存在センサ105を含むことが可能であり、そのようなセンサから提供される信号が、本明細書において説明される実装によって通知をレンダリングすべきかどうかおよび/またはどのようにしてレンダリングすべきかを決定する際に自動化アシスタントによってさらに利用され得る。
【００３８】
追加的にまたは代替的に、一部の実装において、存在センサ105は、人の存在に関連するその他の現象を検出するように構成され得る。たとえば、一部の実施形態において、クライアントデバイス106は、たとえば、特定のユーザによって運ばれる/運用されるモバイルクライアントデバイス106によって発せられる様々な種類の波(たとえば、ラジオ波、超音波、電磁波など)を検出する存在センサ105を備え得る。たとえば、一部のクライアントデバイス106は、(たとえば、超音波対応マイクロフォンなどの超音波/赤外線受信機によって)その他のクライアントデバイス106によって検出され得る超音波または赤外線波などの人が知覚し得ない波を発するように構成され得る。
【００３９】
追加的にまたは代替的に、様々なクライアントデバイス106は、1つまたは複数のその他のクライアントデバイス106によって検出され、運用するユーザの特定の位置を判定するために使用され得るラジオ波(たとえば、Wi-Fi、Bluetooth、セルラなど)などのその他の種類の人が知覚し得ない波を発し得る。一部の実装においては、Wi-Fi三角測量が、たとえば、クライアントデバイス106への/からのWi-Fi信号に基づいて人の位置を検出するために使用され得る。その他の実装において、飛行時間(time-of-flight)、信号強度などのその他のワイヤレス信号の特性が、特定の人が持ち運ぶクライアントデバイス106によって発せられた信号に基づいて特定の人の位置を決定するために単独でまたは集合的に様々なクライアントデバイス106によって使用され得る。
【００４０】
追加的にまたは代替的に、一部の実装においては、1つまたは複数のクライアントデバイス106が、個人の声から個人を認識するための音声認識を実行し得る。たとえば、一部の自動化アシスタント120は、たとえば、様々なリソースへのアクセスを提供する/制約する目的で、声をユーザのプロファイルとマッチングするように構成され得る。一部の実装においては、その後、発話者の動きが、たとえば、IoTデバイスに組み込まれ得る1つまたは複数のその他の存在センサによって判定され得る。一部の実装においては、そのような検出された動きに基づいて、個人の位置が、予測され得るし、この位置が、個人の位置との1つまたは複数のクライアントデバイスの近さに基づいて、それらのクライアントデバイスにおいてクライアントデバイス通知がレンダリングされるようにされるときの個人の位置であると仮定され得る。一部の実装においては、特に最後の関わり合いからそれほど多くの時間が経っていない場合、個人は、単純に、その個人が、自動化アシスタント120と関わり合った最後の位置にいると仮定され得る。
【００４１】
クライアントコンピューティングデバイス1061〜Nの各々は、ユーザインターフェース構成要素1071〜Nをさらに含み、ユーザインターフェース構成要素1071〜Nは、1つもしくは複数のユーザインターフェース入力デバイス(たとえば、マイクロフォン、タッチスクリーン、キーボード)および/または1つもしくは複数のユーザインターフェース出力デバイス(たとえば、ディスプレイ、スピーカ、プロジェクタ)をそれぞれ含み得る。一例として、ユーザインターフェース構成要素1071が、スピーカおよびマイクロフォンのみを含むことが可能であり、一方、ユーザインターフェース構成要素107Nは、スピーカ、タッチスクリーン、およびマイクロフォンを含み得る。
【００４２】
クライアントコンピューティングデバイス1061〜Nおよびクラウドベースの自動化アシスタント構成要素119を動作させるコンピューティングデバイスの各々は、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介した通信を容易にするためのその他の構成要素とを含み得る。クライアントコンピューティングデバイス1061〜Nのうちの1つもしくは複数によっておよび/または自動化アシスタント120によって実行される動作は、複数のコンピュータシステムに分散され得る。自動化アシスタント120は、たとえば、ネットワークを通じて互いに結合される1つまたは複数の場所の1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装され得る。
【００４３】
上述のように、様々な実装において、クライアントコンピューティングデバイス1061〜Nの各々は、自動化アシスタントクライアント118を動作させ得る。様々な実施形態において、それぞれの自動化アシスタントクライアント118は、対応する音声キャプチャ/テキスト音声変換(TTS)/音声テキスト変換(STT)モジュール114を含み得る。その他の実装において、音声キャプチャ/TTS/STTモジュール114の1つまたは複数の態様は、自動化アシスタントクライアント118とは別に実装され得る。
【００４４】
各音声キャプチャ/TTS/STTモジュール114は、1つまたは複数の機能を実行する、つまり、ユーザの音声をキャプチャし(たとえば、(場合によっては存在センサ105を含み得る)マイクロフォンによる音声キャプチャ)、キャプチャされた音声をテキストにおよび/もしくはその他の表現もしくは埋め込み(embedding)に変換し(STT)、ならびに/またはテキストを音声に変換する(TTS)ように構成され得る。一部の実装においては、クライアントデバイス106がコンピューティングリソース(たとえば、プロセッササイクル、メモリ、バッテリなど)の点で比較的制約され得るので、各クライアントデバイス106のローカルにある音声キャプチャ/TTS/STTモジュール114は、有限の数の異なる発話された語句をテキストに(またはより低い次元の埋め込みなどのその他の形態に)変換するように構成され得る。その他の音声入力が、クラウドベースの自動化アシスタント構成要素119に送信され得るし、クラウドベースの自動化アシスタント構成要素119は、クラウドベースのTTSモジュール116および/またはクラウドベースのSTTモジュール117を含み得る。
【００４５】
クラウドベースのSTTモジュール117は、音声キャプチャ/TTS/STTモジュール114によってキャプチャされたオーディオデータをテキストに変換するために、クラウドの仮想上の制限のないリソースを利用するように構成され得る(その後、テキストは、自然言語プロセッサ122に提供され得る)。クラウドベースのTTSモジュール116は、テキストデータ(たとえば、自動化アシスタント120によって作られたテキスト)をコンピュータによって生成される音声出力に変換するためにクラウドの仮想上の制限のないリソースを利用するように構成され得る。一部の実装において、TTSモジュール116は、コンピュータによって生成される音声出力を、たとえば、1つまたは複数のスピーカを使用して直接出力されるように、クライアントデバイス106に提供し得る。その他の実装において、自動化アシスタント120によって生成されたテキストデータ(たとえば、コマンドに含まれるクライアントデバイス通知)は、音声キャプチャ/TTS/STTモジュール114に提供され得るし、その後、音声キャプチャ/TTS/STTモジュール114が、テキストデータを、ローカルのスピーカによってレンダリングされるコンピュータによって生成される音声にローカルで変換し得る。
【００４６】
自動化アシスタント120(および特にクラウドベースの自動化アシスタント構成要素119)は、自然言語プロセッサ122、上述のTTSモジュール116、上述のSTTモジュール117、およびその他の構成要素を含み得るし、それらの一部は、下でより詳細に説明される。一部の実装において、自動化アシスタント120のエンジンおよび/またはモジュールのうちの1つまたは複数は、省略されるか、組み合わされるか、および/または自動化アシスタント120とは別である構成要素に実装され得る。
【００４７】
一部の実装において、自動化アシスタント120は、自動化アシスタント120との人とコンピュータとの対話セッション中に、クライアントデバイス1061〜Nのうちの1つのユーザによって生成された様々な入力に応じて応答内容を生成する。自動化アシスタント120は、対話セッションの一部としてユーザに提示するための応答内容を(たとえば、ユーザのクライアントデバイスと別であるときは1つまたは複数のネットワークを介して)提供し得る。たとえば、自動化アシスタント120は、クライアントデバイス1061-Nのうちの1つを介して与えられた自由形式の自然言語入力に応じて応答内容を生成し得る。本明細書において使用されるとき、自由形式の入力とは、ユーザによって作られ、ユーザによる選択のために提示される一群の選択肢に制約されない入力である。
【００４８】
自動化アシスタント120の自然言語プロセッサ122は、クライアントデバイス1061〜Nを介してユーザによって生成された自然言語入力を処理し、自動化アシスタント120の1つまたは複数のその他の構成要素による使用のために注釈付きの出力を生成し得る。たとえば、自然言語プロセッサ122は、クライアントデバイス1061の1つまたは複数のユーザインターフェース入力デバイスを介してユーザによって生成される自然言語の自由形式の入力を処理し得る。生成される注釈付きの出力は、自然言語入力の1つまたは複数の注釈と、任意で、自然言語入力の用語のうちの1つまたは複数(たとえば、すべて)とを含む。
【００４９】
一部の実装において、自然言語プロセッサ122は、自然言語入力内の様々な種類の文法的情報を特定し、注釈を付けるように構成される。たとえば、自然言語プロセッサ122は、用語にそれらの用語の文法的役割によって注釈を付けるように構成された音声タグ付け部の一部も含み得る。一部の実装において、自然言語プロセッサ122は、追加的におよび/また代替的に、(たとえば、文学のキャラクター、有名人、著名人などを含む)人、組織、(現実のおよび架空の)場所などへの言及などの1つまたは複数のセグメント内のエンティティの言及に注釈を付けるように構成されたエンティティタグ付け部(図示せず)を含み得る。一部の実装においては、エンティティについてのデータが、ナレッジグラフ(図示せず)などの1つまたは複数のデータベースに記憶され得る。一部の実装において、ナレッジグラフは、知られているエンティティ(および場合によってはエンティティの属性)を表すノードと、ノードを接続し、エンティティの間の関係を表すエッジとを含み得る。
【００５０】
自然言語プロセッサ122のエンティティタグ付け部は、(たとえば、人などのエンティティのクラスへのすべての言及の特定を可能にするための)高レベルの粒度および/または(たとえば、特定の人物などの特定のエンティティへのすべての言及の特定を可能にするための)より低いレベルの粒度でエンティティへの言及に注釈を付け得る。エンティティタグ付け部は、特定のエンティティを解決するために自然言語入力の内容に依拠し得るし、および/または特定のエンティティを解決するためにナレッジグラフもしくはその他のエンティティデータベースと任意で通信し得る。
【００５１】
一部の実装において、自然言語プロセッサ122は、追加的におよび/また代替的に、1つまたは複数の状況から得られる手掛かり(contextual cue)に基づいて同じエンティティへの言及をグループ分けするかまたは「クラスタリングする」ように構成された同一指示リゾルバ(図示せず)を含み得る。たとえば、同一指示リゾルバは、自然言語入力「それをロックして」を受け取る直前にレンダリングされたクライアントデバイス通知内で「玄関のドアロック」が述べられていることに基づいて、自然言語入力「それをロックして」の中の用語「それ」を「玄関のドアロック」に解決するために利用され得る。
【００５２】
一部の実装において、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数のその他の構成要素からの注釈に依拠し得る。たとえば、一部の実装において、固有表現(named entity)タグ付け部は、特定のエンティティへのすべての言及に注釈を付ける際に同一指示リゾルバおよび/または依存関係パーサからの注釈に依拠し得る。また、たとえば、一部の実装において、同一指示リゾルバは、同じエンティティへの言及をクラスタリングする際に依存関係パーサからの注釈に依拠し得る。一部の実装においては、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素が、1つまたは複数の注釈を決定するために特定の自然言語入力の外の関連するデータ、自然言語入力を受け取る直前にレンダリングされたクライアントデバイス通知および/またはクライアントデバイス通知が基づくIoT状態変化通知など、を使用し得る。
【００５３】
図1の様々な構成要素のさらなる説明が、以降、図2A1、図2A2、図2A3、図2A4、図2B、図2C、および図2Dを参照して与えられる。家の間取り図が、それらの図の各々に示される。示される間取り図は、複数の部屋250〜262を含む。複数のクライアントデバイス1061〜4が、部屋の少なくとも一部に展開される。各クライアントデバイス106は、本開示の選択された態様を用いて構成された自動化アシスタントクライアント118のインスタンスを実装し得るし、近くの人によって口頭の発話をキャプチャすることができるマイクロフォンなどの1つまたは複数の入力デバイスを含み得る。たとえば、スタンドアロンインタラクティブスピーカおよびディスプレイデバイス(たとえば、ディスプレイスクリーン、プロジェクタなど)の形態を取る第1のクライアントデバイス1061が、この例においては台所である部屋250に展開される。いわゆる「スマート」テレビ(たとえば、自動化アシスタントクライアント118のインスタンスを実装する1つまたは複数のプロセッサを有するネットワーク接続されたテレビ)の形態を取る第2のクライアントデバイス1062が、この例においては私室(den)である部屋252に展開される。インタラクティブスタンドアロンスピーカの形態を取る第3のクライアントデバイス1063が、この例においては寝室である部屋254に展開される。別のインタラクティブスタンドアロンスピーカの形態を取る第4のクライアントデバイス1064が、この例においては居間である部屋256に展開される。
【００５４】
図2に示されていないが、複数のクライアントデバイス1061〜4が、1つまたは複数の有線またはワイヤレスLAN(たとえば、図1Aの1102)を介して互いにおよび/またはその他のリソース(たとえば、インターネット)と通信可能なように結合され得る。さらに、その他のクライアントデバイス、特に、スマートフォン、タブレット、ラップトップ、ウェアラブルデバイスなどのモバイルデバイス、も存在し、たとえば、家の中で1人または複数の人によって運ばれ得るし、同じLANに接続される可能性もありまたは接続されない可能性もある。図2に示されるクライアントデバイスの構成は、単なる一例であり、より多くのもしくはより少ないおよび/または異なるクライアントデバイス106が、任意の数のその他の部屋、および/または家以外のエリアに展開され得ることを理解されたい。
【００５５】
図2A1〜図2Dの各々にさらに示されるのは、複数のIoTデバイス1451〜5である。たとえば、スマート呼び鈴の形態を取る第1のIoTデバイス1451が、家の玄関付近の家の外部に展開される。スマートロックの形態を取る第2のIoTデバイス1452が、家の玄関のドア上の家の外部に展開される。スマート洗濯機の形態を取る第3のIoTデバイス1453が、この例においては洗濯室である部屋262に展開される。ドアの開/閉センサの形態を取る第4のIoTデバイス1454が、部屋262内の裏口のドア付近に展開され、裏口のドアが開いているのかまたは閉まっているのかを検出する。スマートサーモスタットの形態を取る第5のIoTデバイス1455が、この例においては私室である部屋252に展開される。
【００５６】
各IoTデバイス145は、それぞれのIoTシステム140(図1)と(たとえば、インターネットを介して)通信して、IoTシステムにデータを提供し、任意で、IoTシステムによって与えられたコマンドに基づいて制御されることが可能である。図2A1〜図2Dに示されるIoTデバイス145の構成は、単なる一例であり、より多くのもしくはより少ないおよび/または異なるIoTデバイス145が、任意の数のその他の部屋および/または家以外のエリアに展開され得ることを理解されたい。
【００５７】
図2A1は、クライアントデバイス1061、1062、および1064がすべてそれぞれのスピーカを介して「ドアのところに誰かいます」という同じ可聴クライアントデバイス通知をレンダリングすることを示す。クライアントデバイス1061、1062、および1064は、クラウドベースの自動化アシスタント構成要素119によって送信された受信されたコマンドに応じて可聴通知をそれぞれ提供することができる。たとえば、各コマンドは、クライアントデバイス通知のテキスト「ドアのところに誰かいます」と、クライアントデバイスがテキストのテキスト音声変換処理を実行し、結果として得られるオーディオデータを直ちに自動的に聞こえるようにレンダリングさせるべきであるというインジケーションとを含み得る。別の例として、各コマンドは、クライアントデバイス通知のテキスト「ドアのところに誰かいます」に関する音声を含む(たとえば、テキスト音声変換処理TTS構成要素116に基づいて生成された)オーディオデータと、クライアントデバイスがオーディオデータを直ちに自動的に聞こえるようにレンダリングされるようにすべきであるというインジケーションとを含み得る。
【００５８】
IoT通知エンジン130は、IoTシステム140のうちの1つから対応するIoT状態通知を受信することに応じて、クライアントデバイス通知を生成し、対応するコマンドを送信させることができる。たとえば、IoTシステム140のうちの1つが、スマート呼び鈴IoTデバイス1451に関して呼び鈴が鳴っていることを示すIoT状態通知を提供し得る。スマート呼び鈴IoTデバイス1451から対応するデータを受信することに応じて、IoT状態通知が、IoTシステムのうちの1つによって生成され、提供され得る。
【００５９】
とりわけ、図2A1において、クライアントデバイス1063は、クライアントデバイス通知に対応するいかなる出力も提供しない。これは、クライアントデバイス1063がクラウドベースの自動化アシスタント構成要素119からコマンドを受信しない結果であり得る。IoT通知エンジン130は、様々な基準に基づいて、クライアントデバイス1063におけるクライアントデバイス通知のレンダリングを引き起こさない(および結果としてクライアントデバイス1063にコマンドを与えない)と決定し得る。クライアントデバイス1063におけるクライアントデバイス通知のレンダリングを引き起こさないことによって、クライアントデバイス1063のリソースが、節約され得る。さらに、クライアントデバイス1063にコマンドを与えないことによって、クラウドベースの自動化アシスタント構成要素119のリソースも、節約され得る。そうでなければクラウドベースの自動化アシスタント構成要素119からクライアントデバイス1063にコマンドを与えるために使用されるネットワークリソースが、やはり節約され得る。一例として、ユーザ情報データベース135に記憶された手動で作成されたおよび/または自動的に決定された規則が、クライアントデバイス1063がいかなる通知もレンダリングすべきでないと指示することが可能であり、通知エンジン130は、そのような規則に基づいてクライアントデバイス1063を除外することができる。別の例として、ユーザ情報データベース135に記憶された規則が、クライアントデバイス1063が「呼び鈴が鳴っています」通知または呼び鈴IoTデバイス1451からの通知などの特定の種類の通知をレンダリングすべきでないと指示することが可能であり、通知エンジン130は、そのような規則に基づいてクライアントデバイス1063を除外することができる。さらに別の例として、ユーザ情報データベース135に記憶された規則が、特定の時刻であること、特定の曜日であること、クライアントデバイス1063の近くでユーザ(任意のユーザもしくは特定のユーザ)の存在が検出されていないこと、および/またはクライアントデバイス1063が1つもしくは複数の予め定義された状態(たとえば、「スリープ」状態、クライアントデバイス1063が任意のその他の種類の出力を能動的に提供している状態、クライアントデバイス1063が特定の種類の出力(たとえば、音楽)を能動的に提供している状態など)であることなどの1つまたは複数のその他の条件が満たされるとき、クライアントデバイス1063が特定の種類の通知をレンダリングすべきでないと指示することが可能であり-通知エンジン130は、そのような規則に基づいてクライアントデバイス1063を除外することができる。ユーザ情報データベース135内の任意の手動でキュレーションされた規則が、複数のユーザもしくは複数のエコシステムに当てはまる大局的な規則と、1人のユーザもしくは1つのエコシステムにのみ当てはまり得る(および1人のユーザまたは1つのエコシステムのユーザによってキュレーションされ得る)より粒度の細かい規則とのうちの一方または両方を含むことが可能である。さらに、様々な実装において、1つまたは複数の規則が、1つまたは複数の訓練された機械学習モデルによって補足され得るかまたは置き換えられ得る。
【００６０】
ここで図2A2を参照すれば、家の中のユーザが、図2A1のクライアントデバイス通知のレンダリングの直後に口頭の発話「見せてみて」を与える。クライアントデバイス1061は、口頭の発話を検出し、対応するデータを遠隔の自動化アシスタント構成要素119に送信することができる。送信される対応するデータは、オーディオデータ、またはクライアントデバイス1061によって実行されたローカルの音声テキスト処理に基づくテキスト表現などのオーディオデータの意味表現であることが可能である。一部の実装において、クライアントデバイス1061は、クライアントデバイス通知の少なくとも一部をレンダリングすることに応じて、口頭の発話を自動的に監視する(たとえば、音声キャプチャを自動的に実行する)ことができ、それによって、ユーザが「ホットワード」によってまたはその他の手段によってクライアントデバイス1061を明示的に呼び出す必要をなくす。
【００６１】
遠隔の自動化アシスタント構成要素119は、クライアントデバイス1061によって送信されたデータを処理し、データの処理に基づいて1つまたは複数のアシスタントのアクションを実行することができる。たとえば、データがオーディオデータである場合、STT構成要素117が、テキストを生成するために使用されることが可能であり、自然言語プロセッサ122が、実行するアシスタントのアクションを決定する際に生成されたテキストを処理することが可能である。さらに、音声入力の自動監視中に口頭の発話を検出したことに基づいて、自然言語プロセッサ122および/またはその他の構成要素は、実行するアシスタントのアクションを決定する際に、クライアントデバイス通知(および/またはそれが基づいていたIoT状態変化通知)を利用することができる。たとえば、自然言語プロセッサ122は、口頭の発話「見せてみて」が呼び鈴IoTデバイス1451を参照すると判定し、結果として、口頭の発話が呼び鈴IoTデバイス1451のカメラからのライブビデオフィードを見る要求であると判定することができる。そして、遠隔の自動化アシスタント構成要素119は、送信された場合、カメラからのライブビデオフィードの提供を可能にするIoTデバイスのコマンドを生成することができる。
【００６２】
図2A3は、遠隔の自動化アシスタント構成要素119がそのようなIoTデバイスのコマンドを送信した結果として、クライアントデバイス1061が呼び鈴IoTデバイス1451のカメラからのライブビデオフィードを提供することを示す。ライブビデオフィードは、クライアントデバイス1061に、遠隔の自動化アシスタント構成要素119を介してまたは直接送信され得る。
【００６３】
図2A4は、図2A3の代替形態を示し、クライアントデバイス1061が表示能力を持たない例である。クライアントデバイス1061が表示能力を持たない結果として、ライブビデオフィードは、代わりにクライアントデバイス1062を介して提供され、クライアントデバイス1061は、ライブビデオフィードがクライアントデバイス1062を介して提示されていることを示す可聴応答を提供する。たとえば、遠隔の自動化アシスタント構成要素119のうちの1つまたは複数が、ライブビデオフィードが表示能力を必要とすると判定し、たとえば、デバイストポロジー表現内のクライアントデバイス1061に関するデバイスの属性に基づいてクライアントデバイス1061が表示能力を欠いているとさらに判定し得る。さらに、遠隔の自動化アシスタント構成要素119のうちの1つまたは複数は、デバイストポロジー表現を利用して、クライアントデバイス1062が表示能力を有すると判定し、結果として、ライブビデオフィードを、クライアントデバイス1062を介して提供させることができる。
【００６４】
図2A1において、クライアントデバイス1061、1062、および1064は、すべて、それぞれのスピーカを介して「ドアのところに誰かいます」という同じ可聴クライアントデバイス通知をレンダリングするものとして示される。しかし、一部の実装および/または状況においては、同じIoT状態変化通知に関して異なるクライアントデバイス通知が、異なるクライアントデバイスにおいて提供され得る。図2Bは、1つのそのような状況を示す。特に、図2Bは、図2A1の同じIoT状態変化通知に関して提供され得る代替的な通知を示す。
【００６５】
図2Bにおいて、クライアントデバイス1064は、図2A1においてクライアントデバイス1064が提供するのと同じ可聴クライアントデバイス通知を提供する。しかし、クライアントデバイス1061および1062は、図2A1と比べて異なるクライアントデバイス通知を提供し、図2Bにおいては互いに異なるクライアントデバイス通知を提供する。特に、クライアントデバイス1062は、クライアントデバイス通知として「ピンポン(ding)」音のみをレンダリングする。一部の実装においては、クライアントデバイス1062の現在の状態に基づいて「ピンポン」音のみが提供され、より時間の長い「ドアのところに誰かいます」は提供されず、および/またはいかなる視覚的通知も提供されない。たとえば、クライアントデバイス1062がそのクライアントデバイス1062が既にオーディオビジュアルコンテンツをレンダリングしている(たとえば、そのクライアントデバイス1062が映画を見るために利用されている)状態にある結果として、より邪魔にならない「ピンポン」音が提供され得る。一部の実装においては、IoT通知エンジン130がクライアントデバイス1062の現在の状態を判定し、現在の状態に基づいてクライアントデバイス1062に与えられるコマンドを調整することに基づいて、より邪魔にならない音が提供され得る。その他の実装においては、クライアントデバイス1062に与えられるコマンドが、クライアントデバイス通知をどのようにしてレンダリングすべきかおよび/または複数のクライアントデバイス通知のうちのどれを提供すべきかに関する柔軟性をクライアントデバイス1062に与えることができ、クライアントデバイス1062自体が、より邪魔にならない音を提供すると決定することができる。
【００６６】
図2Bにおいて、クライアントデバイス1061は、「ピンポン」音とインタラクティブなグラフィカルインターフェースとの両方を、クライアントデバイス通知としてレンダリングする。インタラクティブなグラフィカルインターフェースは、玄関にいる個人の、呼び鈴IoTデバイス1451のカメラによってキャプチャされた画像を含む。インタラクティブなグラフィカルインターフェースは、ユーザによって選択され得るインタラクティブな「話す」ボタンをさらに含む。「話す」ボタンの選択は、クライアントデバイス1061のマイクロフォンおよびスピーカならびに呼び鈴IoTデバイス1451のマイクロフォンおよびスピーカを介した「インターホン」型のコミュニケーションを確立するIoTコマンドを生成させることができる、ユーザがドアのところの個人とコミュニケーションすることを可能にする。一部の実装においては、より堅牢なクライアントデバイス通知が、クライアントデバイス1061の現在の状態に基づいて、クライアントデバイス1061とのユーザの検出された近さに基づいて、クライアントデバイス1061の出力能力に基づいて、および/または、その他の要因に基づいて、クライアントデバイス1061において提供される。たとえば、より堅牢な通知は、ユーザがクライアントデバイス1061の近くに位置していることを検出することに基づいておよびクライアントデバイス1061の出力能力に基づいて提供され得る。一部の実装において、より堅牢な通知は、IoT通知エンジン130がそのような要因を考慮し、クライアントデバイス1061に与えられるコマンドをそのような要因に基づいて調整することに基づいて提供され得る。その他の実装においては、クライアントデバイス1061に与えられるコマンドが、クライアントデバイス通知をどのようにしてレンダリングすべきかおよび/または複数のクライアントデバイス通知のうちのどれを提供すべきかに関する柔軟性を、クライアントデバイス1061に与えることができ、クライアントデバイス1061自体が、より堅牢な通知を提供すると決定することができる。
【００６７】
図2Cは、クライアントデバイス1061のみがそのスピーカを介して「あなたの洗濯機のサイクルが完了しています」という可聴クライアントデバイス通知をレンダリングすることを示す。クライアントデバイス1061は、クラウドベースの自動化アシスタント構成要素119によって送信され、受信されたコマンドに応じて可聴通知をそれぞれ提供することができる。IoT通知エンジン130は、IoTシステム140のうちの1つから、対応するIoT状態通知を受信することに応じて、クライアントデバイス通知を生成し、コマンドを送信させることができる。たとえば、IoTシステム140のうちの1つが、洗濯機IoTデバイス1453がサイクルを完了したことを示すIoT状態通知を提供し得る。洗濯機IoTデバイス1453から対応するデータを受信することに応じて、IoT状態通知が、IoTシステムのうちの1つによって生成され、提供され得る。
【００６８】
IoT通知エンジン130は、図2Cにおいて、クライアントデバイス1061におけるクライアントデバイス通知のレンダリングを引き起こすだけであると決定することができる。一例として、ユーザ情報データベース135に記憶された手動で作成されたおよび/または自動的に決定された規則が、洗濯機IoTデバイス1453からの「サイクル完了」通知もしくはより広く任意の通知がユーザ(任意のユーザもしくは特定のユーザ)の最も近くに現在位置するクライアントデバイスにおいてのみ提供されるべきであり、ならびに/またはそのような通知が単一のクライアントデバイスを介してのみ、およびユーザが家にいると判定されるときにのみ提供されるべきであると指示することができる。通知が提供されるクライアントデバイスおよび/または通知が提供される時間を制限することによって、クライアントデバイス1061のリソースが、節約され得る。さらに、IoT通知エンジン130がクライアントデバイス通知のレンダリングを引き起こさないことで、クラウドベースの自動化アシスタント構成要素119のリソースも、節約され得る。そうでなければレンダリングを引き起こすためにクラウドベースの自動化アシスタント構成要素119からクライアントデバイス1061に通信するために使用されるネットワークリソースが、やはり節約され得る。存在センサ105に関連して本明細書において説明される技術などの様々な技術が、ユーザの近くに位置するクライアントデバイスを判定するために利用され得る。
【００６９】
図2Dは、クライアントデバイス1061がそのスピーカによって、ただし、ユーザの関係のない口頭の発話(「今日の天気」)をまず受け取り、関係のない口頭の発話に対する応答内容(「華氏75度で晴れです」)をレンダリングして初めて「ところで、裏口のドアが数時間半開きになっています」という可聴クライアントデバイス通知をレンダリングする例を示す。図2Dにおける可聴クライアントデバイス通知のレンダリングは、その可聴クライアントデバイス通知が、いかなる通知のレンダリングを明示的に要求するいかなるユーザインターフェース入力からも独立して(たとえば、「どんな通知がある」などの口頭の発話と独立して)レンダリングされるという点でやはり「自動的」である。しかし、図2Dの可聴クライアントデバイス通知のレンダリングは、即時ではなく、ユーザの別の関係のない入力に応じてユーザに別の関係のない出力を提供することを条件とする。可聴クライアントデバイス通知のレンダリングが、別の関係のない出力を提供することを条件としているので、可聴クライアントデバイスは、ユーザの気を散らせるかまたはそうでなければ望ましくない可聴クライアントデバイス通知を、ときどきレンダリングすることを防止され得る。
【００７０】
一部の実装において、IoT通知エンジン130は、クライアントデバイス1061に「華氏75度で晴れです」に続いて「ところで、裏口のドアが数時間半開きになっています」をレンダリングさせるコマンドをクライアントデバイス1061に与えることができる。コマンドは、「華氏75度で晴れです」を供与するために提供されたデータと組み合わせて提供されることが可能であり、またはクライアントデバイス1061に先制的に提供されることが可能である。先制的に提供されるとき、クライアントデバイス1061は、クライアントデバイス通知をローカルに記憶し、クライアントデバイスによって提供される任意の「次の」出力にそのクライアントデバイス通知を自動的に付加することができる。
【００７１】
IoT通知エンジン130は、IoTシステム140のうちの1つから、対応するIoT状態通知を受信することに応じて、図2Dのクライアントデバイス通知を生成することができる。たとえば、IoTシステム140のうちの1つが、ドアの開/閉センサIoTデバイス1454が裏口のドアが開いていることを知らせることを示すIoT状態通知を提供し得る。開/閉センサIoTデバイス1454から、対応するデータを受信することに応じて、IoT状態通知が、IoTシステムのうちの1つによって生成され、提供され得る。一部の実装において、IoT通知エンジン130は、IoT状態通知が裏口のドアが開いていることを示すと判定することと、1つまたは複数のさらなる条件が満たされることとに応じてのみ、クライアントデバイス通知がレンダリングされるようにする。さらなる条件は、たとえば、少なくとも閾値の量の時間(たとえば、少なくとも1時間)が経ち、裏口のドアが今はもう閉まっていることを示す後続のIoT状態通知が受信されなかったことを含み得る。したがって、そのような例において、IoT通知エンジン130は、少なくとも閾値に量の時間が経っていない場合、いかなる対応するクライアントデバイス通知もレンダリングされるようにしない。さらに、一部の実装において、IoT通知エンジン130は、1つまたは複数のさらなる条件が満たされる(たとえば、ドアが閾値の量の時間を優に超えて開き続けている)場合、即時のクライアントデバイス通知がレンダリングされるようにし得る。より広く、IoT通知エンジン130は、変化する条件に基づいてIoT状態通知に関する重要性の尺度を動的に適応させ、適応的な重要性の尺度に基づいてクライアントデバイス通知がどのようにおよび/またはいつ自動的に適用されるかを動的に適応させることができる。
【００７２】
図3は、様々な実装による例示的な状態図300を示す。図3において、IoTデバイス1451から送信されたIoTデータ370が、IoTシステム1401によって受信される。372において、IoTシステム1401が、IoTデータ370に基づいて状態の変化を判定する。一例として、IoTデバイス1451がカメラを含み、IoTデータ370がカメラからの画像および/またはビデオフィードを含む場合、状態の判定された変化が、IoTシステム1401によるIoTデータ370の分析に基づいて人(または特定の人)の検出された存在であることが可能である。別の例として、IoTデバイス1451が家電を含み、IoTデータ370が家電のエラー状態を示す場合、状態の判定された変化は、エラー状態であり得る。
【００７３】
374において、IoTシステム1401が、IoT通知エンジン130にIoT状態変化通知を送信する。IoT状態変化通知は、たとえば、少なくとも1つのIoTデバイスに関連する状態の変化を示す状態インジケーションと、少なくとも1つのIoTデバイスに関連するクライアントデバイスのユニーク識別子と、任意で、少なくとも1つのIoTデバイスのインジケーションとを含む構造化されたデータであることが可能である。一部の実装では、374において、IoTシステム1401が、IoT通知エンジン130に関連する自動化アシスタントのアプリケーションプログラミングインターフェース(API)を使用してIoT通知エンジン130にIoT状態変化通知を送信する。
【００７４】
376において、IoT通知エンジン130が、IoT状態変化通知に関連付けられ、IoT状態変化通知に対応する通知をレンダリングさせられるべきである1つまたは複数のクライアントデバイスを決定する。本明細書において説明されるように、IoT状態変化通知に関連付けられるクライアントデバイスが、IoT状態変化通知に含まれるユニーク識別子に基づいて特定され得る。一部の実装において、IoT通知エンジン130は、IoT状態変化通知に関連付けられるすべてのクライアントデバイスが、IoT状態変化通知に対応する通知をレンダリングさせられるべきであると決定する。しかし、その他の実装において、IoT通知エンジン130は、IoT状態変化通知に対応する通知をレンダリングさせられるべきであるクライアントデバイスのサブセットを決定する。たとえば、図3において、IoT通知エンジン130は、クライアントデバイス1061および106NのみがIoT状態変化通知に対応する通知をレンダリングさせられるべきであると決定する。それらの実装の一部において、IoT通知エンジン130は、受信されたIoT状態変化通知のプロパティ、クライアントデバイスに関連する現在のプロパティ、時刻、曜日、および/または1つもしくは複数のその他の基準に基づいてサブセットを決定する。
【００７５】
378において、IoT通知エンジン130が、決定されたクライアントデバイスのための1つまたは複数の通知を生成する。一部の実装においては、単一の通知が、クライアントデバイスのすべてのために生成され得る。一部のその他の実装においては、複数の通知が生成される。それらのその他の実装の一部においては、所与のデバイスのための通知が、所与のデバイスの現在の状態に基づいて、所与のデバイスとのユーザの検出された近さに基づいて、所与のデバイスの出力能力に基づいておよび/またはその他の要因に基づいて生成され得る。
【００７６】
3801において、IoT通知エンジン130が、クライアントデバイス1061にコマンドを送信する。コマンドは、クライアントデバイス1061に、1つまたは複数の通知のうちの1つを自動的に直ちにレンダリングさせる。そのようなレンダリングが、3821に示される。3802において、IoT通知エンジン130が、クライアントデバイス106Nにコマンドを送信する。コマンドは、クライアントデバイス106Nに1つまたは複数の通知のうちの1つを自動的に直ちにレンダリングさせる。そのようなレンダリングが、3822に示される。一部の実装において、3801および3802は、同時に、または実質的に同時に(たとえば、互いに1秒以内、互いに0.5秒以内、または互いに10分の1秒以内に)行われ得ることが留意される。一部の実装において、3821および3822は、同時に、または実質的に同時に(たとえば、互いに1秒以内、互いに0.5秒以内、または互いに10分の1秒以内に)行われ得ることも留意される。
【００７７】
384において、クライアントデバイス1061が、3821においてクライアントデバイス1061によってレンダリングされた通知に応じるユーザインターフェース入力に基づいてデータを送信する。一部の実装において、ユーザインターフェース入力は、クライアントデバイス1061のマイクロフォンによって検出された口頭の発話であることが可能であり、データは、口頭の発話をキャプチャするオーディオデータおよび/またはオーディオデータのテキスト変換を含み得る。それらの実装の一部において、口頭の発話は、クライアントデバイス通知が少なくとも一部レンダリングされた後の時間の期間の間、口頭の発話を自動的に監視することに基づいて検出される。
【００７８】
386において、IoT通知構成要素130(および/またはその他の遠隔の自動化アシスタント構成要素)が、384において送信されたデータに基づいてIoTコマンドを生成する。たとえば、IoTコマンドは、口頭の発話の音声テキスト変換を実行することにより生成されたテキストに基づいて、および、3821においてクライアントデバイス1061によってレンダリングされた通知に応じる口頭の発話に基づいて推測された値に基づいて、生成され得る。推測された値は、クライアントデバイス通知および/またはクライアントデバイス通知が基づいていたIoT状態変化通知に基づくことができる。
【００７９】
388において、IoT通知構成要素130(および/またはその他の遠隔の自動化アシスタント構成要素)が、IoTシステム1401にIoTコマンドを送信する。
【００８０】
390において、IoTシステム1401が、IoTコマンドへの応答を生成し、これは、水平の破線によって示されるようにIoTデバイス1451とインターフェースを取ることを含み得る。様々な応答が、生成され得る。たとえば、IoTデバイス1451がスマートロックであり、IoTコマンドが、スマートロックをロック解除するコマンドである場合、応答は、スマートロックがロック解除される確認であることが可能である。別の例として、IoTデバイス1451がカメラを含み、IoTコマンドがカメラからのフィードを提供するコマンドである場合、応答は、フィードまたはフィードを確立する命令であることが可能である。
【００８１】
392において、IoTシステム1401が、IoT通知構成要素130(および/またはその他の遠隔の自動化アシスタント構成要素)に応答を送信する。
【００８２】
394において、IoT通知構成要素130(および/またはその他の遠隔の自動化アシスタント構成要素)が、応答に基づく応答内容を送信し、396において、クライアントデバイス1061が、応答内容をレンダリングする。
【００８３】
図4は、様々な実装による別の例示的な状態図400を示す。図4では、470において、IoTシステム1401が、1つまたは複数のIoTデバイス1451(図4に示されず)によって提供されたデータに基づいて、状態の変化を判定する。実施例として、1つまたは複数のIoTデバイス1451は、スマートドアロックを含むことが可能であり、状態の変化は、ロック解除へのドアロックの変化であることが可能である。
【００８４】
472において、IoTシステム1401が、IoT通知エンジン130にIoT状態変化通知を送信する。472のIoT状態変化通知は、470における状態の判定された変化に対応する。実施例について続けると、IoT状態変化通知は、たとえば、スマートドアロックのインジケーション、ロック解除への変化を示す状態インジケーション、およびスマートドアロックに関連するクライアントデバイスの特定を可能にするユニーク識別子を含む構造化されたデータであることが可能である。
【００８５】
474において、IoT通知エンジン130が、472のIoT状態変化通知に基づいて、クライアントデバイスに、IoT状態変化通知に基づく通知をレンダリングさせるいかなるコマンドも送信しないと決定する。たとえば、IoT通知エンジン130は、単独では472のIoT状態変化通知が低い優先度であり、いかなる対応するクライアントデバイス通知の提供も正当化しないと判定し得る。
【００８６】
後で、475において、(たとえば、IoTシステム1401を制御する者とは異なる第三者によって制御される)別のIoTシステム1402が、1つまたは複数のIoTデバイス1452(図4に示されず)によって提供されたデータに基づいて状態の変化を判定する。実施例について続けると、1つまたは複数のIoTデバイス1452は、スマートドアロックの近くの存在センサを含むことが可能であり、状態の変化は、存在の検出から、もはや存在を検出しないへの変化であることが可能である。
【００８７】
476において、IoTシステム1402が、IoT通知エンジン130にIoT状態変化通知を送信する。476のIoT状態変化通知は、475における状態の判定された変化に対応する。実施例について続けると、IoT状態変化通知は、たとえば、存在センサのインジケーション、もはや存在を検出しないへの変化を示す状態インジケーション、および存在センサに関連するクライアントデバイスの特定を可能にするユニーク識別子を含む構造化されたデータであることが可能である。
【００８８】
478において、IoT通知エンジン130が、472のIoT状態変化通知と476のIoT状態変化通知との両方に基づいて、クライアントデバイスに、472のIoT状態変化通知と476のIoT状態変化通知との両方に基づく複合通知をレンダリングさせるコマンドを送信すると決定する。たとえば、実施例について続けると、IoT通知エンジン130は、デバイストポロジー表現を使用して、存在センサおよびスマートドアロックが同じ部屋内にあると判定することができる。さらに、IoT通知エンジン130は、スマートドアロックがロック解除されていることと、存在センサが存在がないことを示すこととの組合せが、対応する通知の提供を正当化すると判定することができる。
【００８９】
480において、IoT通知エンジン130が、472および476のIoT状態変化通知に関連付けられ、IoT状態変化通知に対応する通知をレンダリングさせられるべきである1つまたは複数のクライアントデバイスを決定する。
【００９０】
482において、IoT通知エンジン130が、決定されたクライアントデバイスのための1つまたは複数の通知を生成する。
【００９１】
4841において、IoT通知エンジン130が、クライアントデバイス1061にコマンドを送信する。コマンドは、クライアントデバイス1061に1つまたは複数の通知のうちの1つを自動的に直ちにレンダリングさせる。そのようなレンダリングが、4861に示される。4842において、IoT通知エンジン130が、クライアントデバイス106Nにコマンドを送信する。コマンドは、クライアントデバイス106Nに1つまたは複数の通知のうちの1つを自動的に直ちにレンダリングさせる。そのようなレンダリングが、3862に示される。一部の実装において、4841および4842は、同時に、もしくは実質的に同時に行われることが可能であり、ならびに/または4861および4862は、同時に、もしくは実質的に同時に行われることが可能であることが留意される。
【００９２】
図5は、様々な実装によるさらに別の例示的な状態図500を示す。
【００９３】
図5において、IoTシステム1401は、570において状態の変化を判定し、572において、対応するIoT状態変化通知を送信する。
【００９４】
574において、IoT通知エンジン130が、複数の候補クライアントデバイス1061〜Nのうちの2つのクライアントデバイス1061および106Nが572のIoT状態変化通知に対応する通知をレンダリングさせられるべきであると決定する。
【００９５】
576において、IoT通知エンジン130が、決定されたクライアントデバイス1061および106Nのための通知を生成する。
【００９６】
5781において、IoT通知エンジン130が、クライアントデバイス1061にコマンドを送信する。コマンドは、クライアントデバイス1061に通知を自動的に直ちにレンダリングさせる。そのようなレンダリングが、5801に示される。5782において、IoT通知エンジン130が、クライアントデバイス106Nにコマンドを送信する。コマンドは、クライアントデバイス106Nに通知を自動的に直ちにレンダリングさせる。そのようなレンダリングが、5802に示される。
【００９７】
582において、IoTシステム1401が、状態の変化を判定し、584において、対応するIoT状態変化通知を送信する。
【００９８】
586において、IoT通知エンジン130が、複数の候補クライアントデバイス1061〜Nのうちの1つのクライアントデバイス1061のみが、572のIoT状態変化通知に対応する通知をレンダリングさせられるべきであると決定する。574において2つのクライアントデバイスが決定された一方、586においては1つのクライアントデバイスのみが決定されることが留意される。この違いは、2つの受信されたIoT状態変化通知の異なるプロパティ、決定が行われたときのクライアントデバイスに関連する異なるプロパティ、決定が行われたときの時刻、決定が行われたときの曜日などの様々な要因に基づくことが可能である。
【００９９】
588において、IoT通知エンジン130が、決定されたクライアントデバイス1061のための通知を生成する。
【０１００】
590において、IoT通知エンジン130が、クライアントデバイス1061にコマンドを送信する。コマンドは、クライアントデバイス1061に、通知を自動的に直ちにレンダリングさせる。そのようなレンダリングが、592に示される。
【０１０１】
図6は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用され得る例示的なコンピューティングデバイス610のブロック図である。一部の実装においては、クライアントコンピューティングデバイス、IoT通知エンジン130、および/またはその他の構成要素のうちの1つまたは複数が、例示的なコンピューティングデバイス610の1つまたは複数の構成要素を含み得る。
【０１０２】
通常、コンピューティングデバイス610は、バスサブシステム612を介して、いくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリサブシステム625およびファイルストレージサブシステム626を含むストレージサブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含み得る。入力および出力デバイスは、コンピューティングデバイス610とのユーザのインタラクションを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスにおいて、対応するインターフェースデバイスに結合される。
【０１０３】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッドなどのポインティングデバイス、もしくはグラフィックスタブレット、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含み得る。概して、用語「入力デバイス」の使用は、コンピューティングデバイス610または通信ネットワークに情報を入力するための、すべての可能な種類のデバイスおよび方法を含むことを意味する。
【０１０４】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚的表示を含み得る。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含み得る。ディスプレイサブシステムは、オーディオ出力デバイスなどの非視覚的表示を与える可能性もある。概して、用語「出力デバイス」の使用は、コンピューティングデバイス610からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むことを意味する。
【０１０５】
ストレージサブシステム624は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム624は、本明細書において説明される方法の選択された態様を実行するため、および図1に示された様々な構成要素を実装するための論理を含み得る。
【０１０６】
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム624において使用されるメモリ625は、プログラムの実行中の命令およびデータの記憶のためのメインランダムアクセスメモリ(RAM)630と、決まった命令が記憶される読み出し専用メモリ(ROM)632とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム626は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含み得る。特定の実装の機能を実装するモジュールは、ストレージサブシステム624内のファイルストレージサブシステム626によって、またはプロセッサ614によりアクセスされ得るその他のマシンに記憶され得る。
【０１０７】
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムに、意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は、複数のバスを使用し得る。
【０１０８】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類であることが可能である。コンピュータおよびネットワークの変わり続ける性質が原因で、図6に示されたコンピューティングデバイス610の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図6に示されたコンピューティングデバイスよりも多くのまたは図6に示されたコンピューティングデバイスよりも多いか、または少ない構成要素を有するコンピューティングデバイス610の多くのその他の構成が、可能である。
【０１０９】
本明細書において検討された特定の実装が、ユーザについての個人情報(たとえば、その他の電子的な通信から抽出されたユーザデータ、ユーザのソーシャルネットワークについての情報、ユーザの位置、ユーザの時間、ユーザのバイオメトリック情報、ならびにユーザの活動およびデモグラフィックス(demographic)情報、ユーザの間の関係など)を収集するかまたは使用し得る状況において、ユーザは、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、および情報がユーザについてどのようにして収集され、記憶され、使用されるかを制御する1つまたは複数の機会を与えられる。つまり、本明細書において検討されたシステムおよび方法は、そのようにする関連するユーザからの明示的な認可を受け取るときにのみユーザの個人情報を収集、記憶、および/または使用する。
【０１１０】
たとえば、ユーザは、プログラムまたは特徴が、プログラムまたは特徴に関連するその特定のユーザまたはその他のユーザについてのユーザ情報を収集するかどうかを制御することを可能にされる。個人情報が収集されるべきである各ユーザは、情報が収集されるかどうか、および情報のどの部分が収集されるべきであるかに関する許可または認可を与えるための、そのユーザに関連する情報収集の制御を可能にする1つまたは複数の選択肢を提示される。たとえば、ユーザは、通信ネットワークを介して1つまたは複数のそのような制御の選択肢を与えられ得る。さらに、特定のデータが、個人を特定できる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で処理され得る。一例として、ユーザの識別情報が、個人を特定できる情報が決定され得ないように処理され得る。別の例として、ユーザの地理的位置が、ユーザの特定の位置が決定され得ないようにより大きな地域に広げられ得る。
【０１１１】
一部の実装においては、自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、モノのインターネット(IoT)状態変化通知を受信することを含む方法が、提供される。IoT状態変化通知は、少なくとも1つのIoTデバイスに関連する状態の変化の判定に応じて、自動化アシスタントコンピューティングシステムに送信される。IoT状態変化通知は、ユニーク識別子と、少なくとも1つのIoTデバイスのインジケーションと、少なくとも1つのIoTデバイスに関連する状態の変化を示す状態インジケーションとを含む。方法は、ユニーク識別子にそれぞれ関連付けられ、対応する自動化アシスタントクライアントを各々が有している複数の候補アシスタントクライアントデバイスを、ユニーク識別子に基づいて自動化アシスタントコンピューティングシステムによって特定することをさらに含む。方法は、複数の候補アシスタントクライアントデバイスのうちの少なくとも1つのクライアントデバイスのためのクライアントデバイス通知を、少なくとも1つのIoTデバイスのインジケーションに基づいておよび状態インジケーションに基づいて自動化アシスタントコンピューティングシステムによって生成することをさらに含む。方法は、1つのクライアントデバイスの自動化アシスタントクライアントに1つのクライアントデバイスの少なくとも1つのユーザインターフェース出力デバイスを介して、生成されたクライアントデバイス通知を自動的にレンダリングさせるコマンドを1つのクライアントデバイスに送信することをさらに含む。たとえば、コマンドは、いかなる通知のレンダリングを明示的に要求するいかなるユーザインターフェース入力からも独立して生成されたクライアントデバイス通知を、クライアントデバイスに自動的にレンダリングさせることができる。さらに、コマンドは、1つのクライアントデバイスの自動化アシスタントクライアントに、クライアントデバイス通知が少なくとも一部レンダリングされた後の時間の期間の間、音声入力を自動的に監視させ、音声入力の自動監視中に口頭の発話を検出したことに基づいて、口頭の発話に対応するデータを送信させることができる。
【０１１２】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【０１１３】
一部の実装において、方法は、口頭の発話に対応するデータを1つのクライアントデバイスから受信することと、口頭の発話に対応するデータに基づいて、および、音声入力の自動監視中に口頭の発話を検出したことに基づいて、IoTデバイスのコマンドを生成することと、IoTデバイスのコマンドを送信することとをさらに含む。IoTデバイスのコマンドを送信することは、少なくとも1つのIoTデバイスの状態またはさらなる状態の変化を引き起こす。それらの実装の一部のバージョンにおいて、口頭の発話に対応するデータに基づいておよび音声入力の自動監視中に口頭の発話を検出したことに基づいてIoTデバイスのコマンドを生成することは、口頭の発話に対応するデータに基づいてIoTデバイスのコマンドのための少なくとも1つの値を生成することと、音声入力の自動監視中に口頭の発話を検出したことに基づいてIoTデバイスのコマンドのための少なくとも1つのさらなる値を推測することとを含む。少なくとも1つのさらなる値を推測することは、クライアントデバイス通知および/またはクライアントデバイス通知がそれに基づいて生成されるIoT状態変化通知に基づくことができる。たとえば、IoT状態変化通知に基づいて少なくとも1つのさらなる値を推測することは、IoT状態変化通知またはクライアントデバイス通知に基づいて、少なくとも1つのIoTデバイスの識別子を推測することを含み得る。
【０１１４】
一部の実装において、方法は、口頭の発話に対応するデータを1つのクライアントデバイスから受信することと、口頭の発話に対応するデータに基づいて、および、音声入力の自動監視中に口頭の発話を検出したことに基づいて、口頭の発話に関する応答内容を生成することと、1つのクライアントデバイスに応答内容に基づく応答出力をレンダリングさせるために1つのクライアントデバイスに応答内容を送信することとをさらに含む。それらの実装の一部において、口頭の発話に対応するデータに基づいておよび音声入力の自動監視中に口頭の発話を検出したことに基づいて応答内容を生成することは、口頭の発話に対応するデータに基づいて少なくとも1つの値を生成することと、音声入力の自動監視中に口頭の発話を検出したことに基づいて少なくとも1つのさらなる値を推測することとを含む。少なくとも1つのさらなる値を推測することは、クライアントデバイス通知および/またはクライアントデバイス通知がそれに基づいて生成されるIoT状態変化通知に基づくことができる。応答内容を生成することは、少なくとも1つの値および少なくとも1つのさらなる値に基づくことができる。
【０１１５】
一部の実装において、クライアントデバイス通知は、テキストを含む。それらの実装の一部のバージョンにおいて、コマンドは、クライアントデバイス通知のテキストを含み、コマンドは、1つのクライアントデバイスにテキストをオーディオデータに変換させ、1つのクライアントデバイスの少なくとも1つのスピーカを介してオーディオデータをレンダリングさせることによって、選択された1つのクライアントデバイスの自動化アシスタントクライアントに、1つのクライアントデバイスの少なくとも1つのユーザインターフェース出力デバイスを介して生成されたクライアントデバイス通知を、自動的にレンダリングさせる。
【０１１６】
一部の実装において、方法は、IoT状態変化通知内の少なくとも1つのIoTデバイスのインジケーションおよび/または状態変化通知内の状態インジケーションに基づいて、1つのクライアントデバイスにコマンドを送信すると決定することをさらに含む。一部の実装において、方法は、追加的にまたは代替的に、現在の時刻および/または現在の曜日に基づいて1つのクライアントデバイスにコマンドを送信すると決定することをさらに含む。一部の実装において、方法は、追加的にまたは代替的に、少なくとも1人のユーザが1つのクライアントデバイスの近くに位置すると判定すること、および/または1つのクライアントデバイスが1つもしくは複数の予め定義された状態にないとの判定に基づいて1つのクライアントデバイスにコマンドを送信すると決定することをさらに含む。それらの実装の一部のバージョンにおいて、ユーザが1つのクライアントデバイスの近くに位置すると判定することは、1つのクライアントデバイスとのユーザのインタラクションの新しさ、1つのクライアントデバイスの少なくとも1つのセンサからのクライアントデバイスのセンサデータ、および/または1つのクライアントデバイスのセンサではないが、1つのクライアントデバイスの近くに位置する少なくとも1つのセンサからのさらなるセンサデータに基づく。
【０１１７】
一部の実装において、方法は、1つのクライアントデバイスを含む複数の候補クライアントデバイスのグループを選択することと、1つのクライアントデバイスが選択されたグループに含まれていることに基づいて、1つのクライアントデバイスにコマンドを送信することと、その他の候補クライアントデバイスが選択されたグループに含まれていることに基づいて、選択されたグループのその他の候補クライアントデバイスの各々にそれぞれのコマンドを送信することとをさらに含む。それぞれのコマンドが各々、その他の候補クライアントデバイスのうちのそれぞれの候補クライアントデバイスに、少なくとも1つのIoTデバイスのインジケーションに基づいておよび状態インジケーションに基づいて生成されたそれぞれのクライアントデバイス通知をレンダリングさせる。それらの実装の一部のバージョンにおいて、それぞれのコマンドは、それぞれ、当該コマンドと同じであり、それぞれのクライアントデバイス通知は、それぞれ、当該クライアントデバイス通知と同じである。それらの実装の一部のその他のバージョンにおいて、それぞれのコマンドのうちの少なくとも1つは、当該コマンドとは異なり、それぞれのクライアントデバイス通知のうちの少なくとも1つは、当該クライアントデバイス通知とは異なる。一部の実装において、複数の候補クライアントデバイスのグループを選択することは、所与のクライアントデバイスが1つもしくは複数の予め定義された状態にあると判定すること、IoT状態変化通知内の少なくとも1つのIoTデバイスのインジケーション、および/またはIoT状態変化通知内の状態インジケーションに基づいて、候補クライアントデバイスのうちの所与のクライアントデバイスをグループから除外することを含む。
【０１１８】
一部の実装においては、自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、第1の第三者システムからの第1のIoT状態通知および第2の第三者システムからの第2のIoT状態通知を受信することを含む方法が、提供される。第1のIoT状態通知は、自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態を示す。第1のIoT状態通知は、ユニーク識別子と、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態を示す第1の状態インジケーションとを含む。第2のIoT状態通知は、自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態を示す。第2のIoT状態通知は、ユニーク識別子またはさらなるユニーク識別子と、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態を示す第2の状態インジケーションとを含む。方法は、第1のIoT状態通知と第2のIoT状態通知との両方に基づく複合通知を送信すると決定することをさらに含む。複合通知を送信すると決定することは、第1のIoT状態通知および第2のIoT状態通知に基づいて、第1の状態および第2の状態が同時に起こっているとの判定に基づく。方法は、ユニーク識別子に少なくとも部分的に基づいて自動化アシスタントコンピューティングシステムによって、対応する自動化アシスタントクライアントを各々が有しており、1つまたは複数のIoTデバイスの第1のグループと1つまたは複数のIoTデバイスの第2のグループとの両方に各々が関連付けられている複数の候補アシスタントクライアントデバイスを特定することをさらに含む。方法は、候補アシスタントクライアントデバイスのうちの少なくとも1つを選択することと、候補アシスタントクライアントデバイスのうちの選択された少なくとも1つにコマンドを送信することとをさらに含む。コマンドは、複合通知を含み、候補アシスタントクライアントデバイスのうちの少なくとも1つの自動化アシスタントクライアントに、候補アシスタントクライアントデバイスのうちの少なくとも1つのユーザインターフェース出力デバイスを介して複合通知を自動的にレンダリングさせる。
【０１１９】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、以下の特徴のうちの1つまたは複数を含み得る。
【０１２０】
一部の実装において、複合通知は、プロンプト(prompt)を含み、コマンドは、さらに、自動化アシスタントクライアントにプロンプトに対する応答を監視させ、プロンプトに対する応答を送信させる。それらの実装の一部のバージョンにおいて、プロンプトは、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態への変化を提言し得る。それらのバージョンの一部において、方法は、プロンプトに対する肯定的な応答を受け取ることに応じて、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態への変化を引き起こすIoTコマンドを送信することをさらに含む。それらの実装のいくつかのさらなるまたは代替的なバージョンにおいて、複合通知は、グラフィカルインターフェースを含み、プロンプトは、グラフィカルインターフェースの選択可能な要素である。そのようなさらなるまたは代替的なバージョンにおいて、プロンプトに対する肯定的な応答は、グラフィカルインターフェースの選択可能な要素の選択であることが可能である。
【０１２１】
一部の実装において、第1のIoT状態通知は、第1の時間に受信され、第2のIoT状態通知は、第1の時間の後の第2の時間に受信される。それらの実装の一部において、方法は、第1の時間の後および第2の時間の前に、第1のIoT状態通知に基づくいかなる通知のレンダリングを引き起こすいかなるコマンドも送信しないと決定することをさらに含む。
【０１２２】
一部の実装においては、自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、IoT状態変化通知を受信することを含む方法が、提供される。IoT状態変化通知は、少なくとも1つのIoTデバイスに関連する状態の変化の判定に応じて、自動化アシスタントコンピューティングシステムに送信される。IoT状態変化通知は、ユニーク識別子と、少なくとも1つのIoTデバイスのインジケーションと、少なくとも1つのIoTデバイスに関連する状態の変化を示す状態インジケーションとを含む。方法は、ユニーク識別子にそれぞれ関連付けられており、対応する自動化アシスタントクライアントを各々が有している複数のアシスタントクライアントデバイスを、ユニーク識別子に基づいて、自動化アシスタントコンピューティングシステムによって特定することをさらに含む。方法は、少なくとも1つのIoTデバイスのインジケーションおよび/または少なくとも1つのIoTデバイスに関連する状態の変化を示す状態インジケーションに少なくとも部分的に基づいて、アシスタントクライアントデバイスのサブセットを選択することをさらに含む。方法は、アシスタントクライアントデバイスの自動化アシスタントクライアントに、IoT状態変化通知に応じた、対応する通知を自動的にレンダリングさせる対応するコマンドを、選択されたサブセットのアシスタントクライアントデバイスの各々にのみ送信することをさらに含む。
【０１２３】
一部の実装においては、第1の時間において、自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、第1の第三者システムからの第1のIoT状態変化通知を受信することを含む方法が、提供される。第1のIoT状態変化通知は、自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態への変化を示す。第1のIoT状態変化通知は、ユニーク識別子と、1つまたは複数のIoTデバイスの第1のグループのインジケーションと、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態を示す第1の状態インジケーションとを含む。方法は、ユニーク識別子にそれぞれ関連付けられており、対応する自動化アシスタントクライアントを各々が有している複数の候補アシスタントクライアントデバイスを、ユニーク識別子に基づいて自動化アシスタントコンピューティングシステムによって特定することをさらに含む。方法は、候補アシスタントクライアントデバイスの第1のサブセットを選択することをさらに含む。第1のサブセットを選択することは、1つもしくは複数のIoTデバイスの第1のグループのインジケーション、および/または1つもしくは複数のIoTデバイスの第1のグループに関連する第1の状態を示す第1の状態インジケーションに少なくとも部分的に基づく。方法は、第1のサブセットの候補アシスタントクライアントデバイスの各々にのみ対応するコマンドを送信することをさらに含む。対応するコマンドは、それぞれ、第1のグループの候補アシスタントクライアントデバイスのうちの対応する候補アシスタントクライアントデバイスの自動化アシスタントクライアントに第1のIoT状態変化通知に応じた対応する通知を自動的にレンダリングさせる。方法は、第2の時間に自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して第2の第三者システムからの第2のIoT状態変化通知を受信することをさらに含む。第2のIoT状態変化通知は、自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態への変化を示す。第2のIoT状態変化通知は、ユニーク識別子またはさらなるユニーク識別子と、1つまたは複数のIoTデバイスの第2のグループのインジケーションと、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態を示す第2の状態インジケーションとを含む。方法は、複数の候補アシスタントクライアントデバイスを、ユニーク識別子またはさらなるユニーク識別子に基づいて自動化アシスタントコンピューティングシステムによって特定することをさらに含む。方法は、候補アシスタントクライアントデバイスの第2のサブセットを選択することをさらに含み、第2のサブセットは、第1のサブセットとは異なる。第2のサブセットを選択することは、1つもしくは複数のIoTデバイスの第2のグループのインジケーション、および/または1つもしくは複数のIoTデバイスの第2のグループに関連する第2の状態を示す第2の状態インジケーションに少なくとも部分的に基づく。方法は、第2のサブセットの候補アシスタントクライアントデバイスの各々にのみ対応する第2のコマンドを送信することをさらに含む��対応する第2のコマンドは、それぞれ、第2のグループの候補アシスタントクライアントデバイスのうちの、対応する候補アシスタントクライアントデバイスの自動化アシスタントクライアントに、第2のIoT状態変化通知に応じた対応する第2の通知を自動的にレンダリングさせる。
【０１２４】
一部の実装においては、第1の時間に自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して第1の第三者システムからの第1のIoT状態変化通知を受信することを含む方法が、提供される。第1のIoT状態変化通知は、自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態への変化を示す。第1のIoT状態変化通知は、ユニーク識別子と、1つまたは複数のIoTデバイスの第1のグループのインジケーションと、1つまたは複数のIoTデバイスの第1のグループに関連する第1の状態を示す第1の状態インジケーションとを含む。方法は、ユニーク識別子に関連付けられており、自動化アシスタントクライアントを含む、クライアントデバイスを、ユニーク識別子に基づいて自動化アシスタントコンピューティングシステムによって特定することをさらに含む。方法は、候補アシスタントクライアントデバイスの自動化アシスタントクライアントに第1のIoT状態変化通知に合わせて仕立て上げられる第1の出力を自動的に直ちに聞こえるようにレンダリングさせる第1のコマンドを送信すると決定することをさらに含む。候補アシスタントクライアントデバイスの自動化アシスタントクライアントに第1のIoT状態変化通知に応じた第1の出力を自動的に直ちに聞こえるようにレンダリングさせる第1のコマンドを送信すると決定することは、1つもしくは複数のIoTデバイスの第1のグループのインジケーション、および/または1つもしくは複数のIoTデバイスの第1のグループに関連する第1の状態を示す第1の状態インジケーションに基づく。方法は、第2の時間に、自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、第2の第三者システムからの第2のIoT状態変化通知を受信することをさらに含む。第2のIoT状態変化通知は、自動化アシスタントコンピューティングシステムに送信され、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態への変化を示す。第2のIoT状態変化通知は、ユニーク識別子またはさらなるユニーク識別子と、1つまたは複数のIoTデバイスの第2のグループのインジケーションと、1つまたは複数のIoTデバイスの第2のグループに関連する第2の状態を示す第2の状態インジケーションとを含む。方法は、自動化アシスタントクライアントを含むクライアントデバイスを、ユニーク識別子またはさらなるユニーク識別子に基づいて、自動化アシスタントコンピューティングシステムによって特定することをさらに含む。方法は、アシスタントクライアントデバイスの自動化アシスタントクライアントに、第2のIoT状態変化通知に応じた第2の出力をレンダリングさせるが、ただし、第2の出力を聞こえないようにおよび/または時間をおいてレンダリングさせる第2のコマンドを送信すると決定することをさらに含む。候補アシスタントクライアントデバイスの自動化アシスタントクライアントに、第2の出力を聞こえないようにおよび/または時間をおいてレンダリングさせる第2のコマンドを送信すると決定することは、1つもしくは複数のIoTデバイスの第2のグループのインジケーション、および/または1つもしくは複数のIoTデバイスの第2のグループに関連する第2の状態を示す第2の状態インジケーションに少なくとも部分的に基づく。
【符号の説明】
【０１２５】
1051〜N  存在センサ
1061〜N  クライアントコンピューティングデバイス
1071〜N  ユーザインターフェース構成要素
114  音声キャプチャ/TTS/STTモジュール
116  TTSモジュール
117  STTモジュール
118  自動化アシスタントクライアント
1181  自動化アシスタントクライアント
118N  自動化アシスタントクライアント
119  クラウドベースの自動化アシスタント構成要素
120  自動化アシスタント
120A  第1の自動化アシスタント
120B  第2の自動化アシスタント
122  自然言語プロセッサ
130  IoT通知エンジン
135  ユーザ情報データベース
140  IoTシステム
1401  IoTシステム
1451〜N  IoTデバイス
250〜262  部屋
300  状態図
370  IoTデータ
400  状態図
500  状態図
610  コンピューティングデバイス
612  バスサブシステム
614  プロセッサ
616  ネットワークインターフェース
620  ユーザインターフェース出力デバイス
622  ユーザインターフェース入力デバイス
624  ストレージサブシステム
625  メモリサブシステム
626  ファイルストレージサブシステム
630  RAM
632  ROM
【図１】
2021509975.tif 000003
【図２Ａ１】
2021509975.tif 000004
【図２Ａ２】
2021509975.tif 000005
【図２Ａ３】
2021509975.tif 000006
【図２Ａ４】
2021509975.tif 000007
【図２Ｂ】
2021509975.tif 000008
【図２Ｃ】
2021509975.tif 000009
【図２Ｄ】
2021509975.tif 000010
【図３】
2021509975.tif 000011
【図４】
2021509975.tif 000012
【図５】
2021509975.tif 000013
【図６】
2021509975.tif 000014
【手続補正書】
【提出日】令和2年9月30日(2020.9.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自動化アシスタントコンピューティングシステムの1つまたは複数のネットワークインターフェースを介して、モノのインターネット(IoT)状態変化通知を受信するステップであって、前記IoT状態変化通知が、少なくとも1つのIoTデバイスに関連する状態の変化の判定に応じて前記自動化アシスタントコンピューティングシステムに送信され、前記IoT状態変化通知が、
ユニーク識別子と、
前記少なくとも1つのIoTデバイスのインジケーションと、
前記少なくとも1つのIoTデバイスに関連する前記状態の前記変化を示す状態インジケーションと
を含む、ステップと、
前記ユニーク識別子に各々が関連付けられており、対応する自動化アシスタントクライアントを各々が有している、複数の候補アシスタントクライアントデバイスを、前記ユニーク識別子に基づいて、前記自動化アシスタントコンピューティングシステムによって特定するステップと、
前記複数の候補アシスタントクライアントデバイスのうちの少なくとも1つのクライアントデバイスのためのクライアントデバイス通知を、前記少なくとも1つのIoTデバイスの前記インジケーションに基づいておよび前記状態インジケーションに基づいて前記自動化アシスタントコンピューティングシステムによって生成するステップと、
前記1つのクライアントデバイスにコマンドを送信するステップであって、前記コマンドが、前記1つのクライアントデバイスの前記自動化アシスタントクライアントに、
前記1つのクライアントデバイスの少なくとも1つのユーザインターフェース出力デバイスを介して、前記生成されたクライアントデバイス通知を自動的にレンダリングすることであって、前記コマンドが、前記クライアントデバイスに、いかなる通知のレンダリングを明示的に要求するいかなるユーザインターフェース入力からも独立して前記生成されたクライアントデバイス通知を自動的にレンダリングさせる、ことと、
前記クライアントデバイス通知が少なくとも一部レンダリングされた後の期間の間、音声入力を自動的に監視することと、
前記音声入力の前記自動的な監視中に口頭の発話を検出したことに基づいて前記口頭の発話に対応するデータを送信することと
を行わせる、ステップと、
前記口頭の発話に対応する前記データを前記1つのクライアントデバイスから受信するステップと、
前記口頭の発話に対応する前記データに基づいておよび前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいてIoTデバイスのコマンドを生成するステップと、
前記IoTデバイスのコマンドを送信するステップであって、前記IoTデバイスのコマンドを送信するステップが、前記少なくとも1つのIoTデバイスの前記状態またはさらなる状態の変化を引き起こす、ステップと
を含む、方法。
【請求項２】
前記口頭の発話に対応する前記データに基づいておよび前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて前記IoTデバイスのコマンドを生成するステップが、
前記口頭の発話に対応する前記データに基づいて前記IoTデバイスのコマンドのための少なくとも1つの値を生成するステップと、
前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて前記IoTデバイスのコマンドのための少なくとも1つのさらなる値を推測するステップであって、前記少なくとも1つのさらなる値を推測するステップが、前記クライアントデバイス通知、または前記クライアントデバイス通知がそれに基づいて生成される前記IoT状態変化通知に基づく、ステップと
を含む、請求項1に記載の方法。
【請求項３】
前記IoT状態変化通知に基づいて前記少なくとも1つのさらなる値を推測することが、前記IoT状態変化通知または前記クライアントデバイス通知に基づいて前記少なくとも1つのIoTデバイスの識別子を推測することを含む、請求項2に記載の方法。
【請求項４】
前記口頭の発話に対応する前記データを前記1つのクライアントデバイスから受信するステップと、
前記口頭の発話に対応する前記データに基づいておよび前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて前記口頭の発話に関する応答内容を生成するステップと、
前記1つのクライアントデバイスに前記応答内容に基づく応答出力をレンダリングさせるために前記1つのクライアントデバイスに前記応答内容を送信するステップと
をさらに含む、請求項1に記載の方法。
【請求項５】
前記口頭の発話に対応する前記データに基づいておよび前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて前記応答内容を生成するステップが、
前記口頭の発話に対応する前記データに基づいて少なくとも1つの値を生成するステップと、
前記音声入力の前記自動的な監視中に前記口頭の発話を検出したことに基づいて少なくとも1つのさらなる値を推測するステップであって、前記少なくとも1つのさらなる値を推測するステップが、前記クライアントデバイス通知、または前記クライアントデバイス通知がそれに基づいて生成される前記IoT状態変化通知に基づく、ステップと、
前記少なくとも1つの値および前記少なくとも1つのさらなる値に基づいて前記応答内容を生成するステップと
を含む、請求項4に記載の方法。
【請求項６】
前記クライアントデバイス通知が、テキストを含み、前記コマンドが、前記クライアントデバイス通知の前記テキストを含み、前記コマンドが、前記1つのクライアントデバイスに前記テキストをオーディオデータに変換させ前記1つのクライアントデバイスの少なくとも1つのスピーカを介して前記オーディオデータをレンダリングさせることによって、選択された前記1つのクライアントデバイスの前記自動化アシスタントクライアントに、前記1つのクライアントデバイスの前記少なくとも1つのユーザインターフェース出力デバイスを介して前記生成されたクライアントデバイス通知を自動的にレンダリングさせる、請求項1から5のいずれか一項に記載の方法。
【請求項７】
前記IoT状態変化通知内の前記少なくとも1つのIoTデバイスの前記インジケーションと、
前記IoT状態変化通知内の前記状態インジケーションと
のうちの一方または両方に基づいて、前記1つのクライアントデバイスに前記コマンドを送信すると決定するステップをさらに含む、請求項1から6のいずれか一項に記載の方法。
【請求項８】
現在の時刻と、
現在の曜日と
のうちの一方または両方に基づいて、前記1つのクライアントデバイスに前記コマンドを送信すると決定するステップをさらに含む、請求項1から7のいずれか一項に記載の方法。
【請求項９】
少なくとも1人のユーザが前記1つのクライアントデバイスの近くに位置すると判定することと、
前記1つのクライアントデバイスが1つもしくは複数の予め定義された状態にないと判定することと
のうちの一方または両方に基づいて、前記1つのクライアントデバイスに前記コマンドを送信すると決定するステップをさらに含む、請求項1から8のいずれか一項に記載の方法。
【請求項１０】
前記ユーザが前記1つのクライアントデバイスの近くに位置すると判定することが、
前記1つのクライアントデバイスとのユーザのインタラクションの新しさと、
前記1つのクライアントデバイスの少なくとも1つのセンサからのクライアントデバイスのセンサデータと、
前記1つのクライアントデバイスのセンサではないが、前記1つのクライアントデバイスの近くに位置する、少なくとも1つのセンサからのさらなるセンサデータと
のうちの1つまたは複数に基づく、請求項9に記載の方法。
【請求項１１】
前記1つのクライアントデバイスを含む複数の前記候補アシスタントクライアントデバイスのグループを選択するステップと、
前記1つのクライアントデバイスが前記選択されたグループに含まれていることに基づいて前記1つのクライアントデバイスに前記コマンドを送信するステップと、
その他の候補クライアントデバイスが前記選択されたグループに含まれていることに基づいて前記選択されたグループの前記その他の候補クライアントデバイスの各々にそれぞれのコマンドを送信するステップであって、前記それぞれのコマンドが各々、前記その他の候補クライアントデバイスのそれぞれに、前記少なくとも1つのIoTデバイスの前記インジケーションに基づいておよび前記状態インジケーションに基づいて生成されたそれぞれのクライアントデバイス通知をレンダリングさせる、ステップと
をさらに含む、請求項1から10のいずれか一項に記載の方法。
【請求項１２】
前記それぞれのコマンドが各々、前記コマンドと同じであり、前記それぞれのクライアントデバイス通知が各々、前記クライアントデバイス通知と同じである、請求項11に記載の方法。
【請求項１３】
前記それぞれのコマンドのうちの少なくとも1つが、前記コマンドとは異なり、前記それぞれのクライアントデバイス通知のうちの少なくとも1つが、前記クライアントデバイス通知とは異なる、請求項11に記載の方法。
【請求項１４】
複数の前記候補クライアントデバイスの前記グループを選択するステップが、
所与のクライアントデバイスが1つまたは複数の予め定義された状態にあると判定することと、
前記IoT状態変化通知内の前記少なくとも1つのIoTデバイスの前記インジケーションと、
前記IoT状態変化通知内の前記状態インジケーションと
のうちの1つまたは複数に基づいて、前記グループから前記候補クライアントデバイスのうちの前記所与のクライアントデバイスを除外するステップを含む、請求項11に記載の方法。
【請求項１５】
自動化アシスタントコンピューティングシステムの1つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに、請求項1から14のいずれか一項に記載の方法を実行させる命令を含む、コンピュータプログラム。
【請求項１６】
請求項1から14のいずれか一項に記載の方法を実行するように構成された、コンピューティングシステム。
【請求項１７】
請求項16に記載のコンピューティングシステムと、
少なくとも1つのクライアントデバイスと
を含む、システム。
【請求項１８】
少なくとも1つのモノのインターネットデバイスをさらに含む、請求項17に記載のシステム。
【請求項１９】
請求項1から14のいずれか一項に記載の方法を実行するように自動化アシスタントコンピューティングシステムの1つまたは複数のプロセッサによって実行可能な命令を記憶する、コンピュータ可読記憶媒体。
【国際調査報告】
2021509975.tif 000015
2021509975.tif 000016