しかしながら、そのような技法は、高いレイテンシ、クライアントおよび/またはサーバリソースの過度の使用、ならびに/あるいはネットワークリソースの過度の使用などの欠点を提示する。たとえば、サーバリソースにおける高レイテンシおよび/または過度の使用は、対応する発話のセマンティック表現を生成し、次いで、生成されたセマンティック表現に基づいて制御要求を生成するために、リモートアシスタントサーバが受信したオーディオデータおよび/またはテキストを処理する必要があることの結果である可能性がある。追加的または代替的に、高レイテンシは、リモートアシスタントサーバから別個の当事者サーバへの要求の送信の結果である可能性があり、リモートアシスタントサーバと別個の当事者サーバが地理的に互いに近接していないことによって悪化することがよくある。また、たとえば、ネットワークリソースの過度の使用は、高帯域幅のオーディオデータおよび/またはテキストをクライアントデバイスからリモートアシスタントサーバに送信した結果、ならびに/あるいは高帯域幅の応答テキスト、音声、および/またはグラフィックス(たとえば、スマートデバイスへの要求された変更を確認するもの)を、リモートアシスタントサーバからクライアントデバイスへ送信した結果である可能性がある。
最近は、様々な自動アシスタント機能のパフォーマンスを、クラウド自動アシスタントコンポーネントから自動アシスタントクライアントデバイス(すなわち、自動アシスタントインターフェースを提供するクライアントデバイス)にシフトするための取組みが行われている。たとえば、最近は、依然として良好な結果を達成しながら、様々なクライアントデバイスのハードウェアリソース(たとえば、メモリリソース、プロセッサリソースなど)の制約内で利用することができる音声認識モデルを生成するための取組みが行われている。同様に、デバイス上で自然言語理解(NLU)および/またはフルフィルメント(たとえば、ユーザ入力に応じたアクションのパフォーマンス)をシフトするための取組みが行われている。デバイス上でそのような機能を実行すると、レイテンシの減少(たとえば、クライアントサーバラウンドトリップがないため)、ネットワーク使用の減少(たとえば、クライアントサーバラウンドトリップがないため)、および/あるいは低接続または接続がない状況における動作性などの様々な技術的な利点を実現する。
しかしながら、デバイス上のNLUおよび/またはデバイス上のフルフィルメントは、多くの要求で失敗する可能性がある。非限定的な一例として、ユーザのリビングルームに配置されたアシスタントクライアントデバイスに提供され、「これらの照明を少し明るくして、より暖かくする」を含む発話を考えてみる。発話の適切なセマンティック表現を生成する際は、「これらの照明」、「少し明るい」、「より暖かい」によって何が意味されるかを解決する必要がある。アシスタントクライアントデバイスのハードウェアリソースが限られていると、ローカルストレージ、ならびに/あるいは意味を解決するために必要な機械学習モデル、ルール、および/またはデバイストポロジの使用を妨げる可能性がある。しかしながら、アシスタントクライアントデバイスよりも堅牢なリソースを有するリモートアシスタントシステムは、意味を解決できる場合がある。たとえば、リモートアシスタントシステムは、リビングルームのクライアントデバイスにおいて受信された(たとえば、最も大音量で、および/またははっきりと聞こえた)発話に関して、「これらの照明」を決定するために、リモートに記憶されたデバイストポロジを活用することができ、リビングルームの照明A、B、およびCを参照する。さらに、リモートアシスタントシステムは、「少し明るい」は、「リビングルームの照明A、B、およびCの現在の輝度強度レベルより30%(あるいは、他のパーセントまたは値)明るい」を意味すると決定するために、リモート機械学習モデルおよび/またはルールを活用することができる。さらに、リモートアシスタントシステムは、「より暖かい」が「現在の色温度よりも20%(あるいは、他のパーセントまたは値)低い色温度」を意味すると決定するために、リモート機械学習モデルおよび/またはルールを活用することができる。
したがって、ハードウェアおよび/またはアシスタントクライアントデバイスの他の制約により、リモートアシスタントシステムは依然として、スマートデバイスを制御するための特定の要求などの様々なユーザ要求を解決する際に利用される必要がある。しかしながら、完全な処理のために、解決できないオーディオデータおよび/または発話のテキストをリモートアシスタントシステムに常に提供すると、対応するアクション(たとえば、スマートデバイスの制御)を実行する際に、リモートアシスタントシステムにおけるリソースの過度の使用、および/または過度のレイテンシが発生する可能性がある。
したがって、本明細書で説明する実装形態は、低レイテンシであり、ならびに/あるいは計算効率(クライアントおよび/またはサーバ)および/またはネットワーク効率を提供する、スマートデバイスを制御するための特定の技法に関する。それらの実装形態は、様々なスマートデバイス(たとえば、スマート照明、スマートサーモスタット、スマートプラグ、スマートアプライアンス、スマートルータなど)の制御における、アシスタントクライアントデバイスにローカルに記憶されているキャッシュのキャッシュエントリの生成および/または利用に関する。キャッシュエントリの各々は、1つまたは複数の対応するセマンティック表現へのテキストのマッピングを含む。
キャッシュエントリのセマンティック表現は、以前の送信に応答して、1つまたは複数のリモート自動アシスタントサーバ(本明細書では、「リモートアシスタントシステム」とも呼ばれる)によって以前に生成された、アシスタントクライアントデバイスからリモートアシスタントシステムへのテキストおよび/または対応するオーディオデータのセマンティック表現であり得る。キャッシュエントリは、以前の送信に応答してリモートアシスタントシステムによってクライアントデバイスに送信されたキャッシュ要求に応答して、アシスタントクライアントデバイスによってキャッシュに記憶され得る。キャッシュエントリのセマンティック表現にマッピングされた、キャッシュエントリのテキストは、キャッシュエントリにおいて、テキスト自体として、ならびに/あるいは、Word2Vecのその埋込みおよび/またはストップワードを含まないその変形などのその表現として表現することができる。
本明細書で詳細に説明するように、キャッシュエントリのセマンティック表現は、クラウドセマンティック表現および/またはローカルで解釈可能なセマンティック表現を含むことができる。ローカルで解釈可能なセマンティック表現は、スマートデバイスの対応するローカル制御を引き起こすために、クライアントデバイスによって、1つまたは複数のローカルチャネルを介してローカルスマートデバイスおよび/またはスマートデバイスコントローラに送信することができる対応する制御コマンドを生成するために、クライアントデバイスによって解釈可能である。制御コマンドは、ローカルスマートデバイスおよび/またはスマートデバイスコントローラのプロトコルスイートに準拠するように生成することができる。一方、クラウドセマンティック表現は、クライアントデバイスによってリモートアシスタントシステムに送信され、スマートデバイスの対応する制御を引き起こすために、対応するスマートデバイス制御システムに送信するための対応する制御要求を生成するためにリモートアシスタントシステムによって解釈可能である。
クラウドセマンティック表現を生成および利用する非限定的な例をここで提供する。「照明を少し暗くする」という発話が、アシスタントクライアントデバイスの1つまたは複数のマイクを介して検出されたオーディオデータにおいてキャプチャされたと仮定する。アシスタントクライアントデバイスは、「照明を少し暗くする」という認識されたテキストを生成するために、ローカルの音声テキスト変換モデルを使用してオーディオデータを処理することができる。アシスタントクライアントデバイスは、認識されたテキストと一致するキャッシュエントリがあるかどうかを決定するために、そのローカルキャッシュをチェックすることができる。アシスタントクライアントデバイスは、一致するキャッシュエントリが存在しないと決定することができ、これは、アシスタントクライアントデバイスにおける発話の最初のインスタンスであるか、または(たとえば、デバイストポロジおよび/または他の条件への変更を決定するため)以前に一致したキャッシュエントリが最近キャッシュから消去された結果である可能性がある。アシスタントクライアントデバイスは、任意で、認識されたテキストがデバイス上のNLUコンポーネントを利用してローカルで解釈可能ではないことをさらに決定することができる。たとえば、アシスタントクライアントデバイスには、特定の照明に対する「照明」の解決を可能にする堅牢なローカルデバイストポロジがない場合、および/または、特定の程度に対する「少し」の解決を可能にする堅牢なモデルおよび/またはルールがない場合がある。
クライアントデバイスは、認識されたテキストおよび/またはオーディオデータをリモートアシスタントシステムにさらに送信することができる。任意で、リモートアシスタントシステムへのテキストおよび/またはオーディオデータの送信は、一致するキャッシュエントリがないこと、および/または認識されたテキストがローカルで解釈可能ではないという決定に応答する。
認識されたテキストおよび/または(リモートアシスタントシステムが認識されたテキストを生成できる)オーディオデータの受信に応答して、リモートアシスタントシステムは、認識されたテキストのクラウドセマンティック表現を生成するために、認識されたテキストを処理することができる。たとえば、リモートアシスタントシステムは、アカウント識別子の対応するリモートに記憶されたデバイストポロジを識別するために、テキストの送信で受信されたアカウント識別子を利用することができる。デバイストポロジにおいてマッピングされている照明AおよびBに基づいて、アシスタントクライアントデバイスのデフォルト照明として「照明」を照明AおよびBに解決するために、対応するデバイストポロジを利用することができる(たとえば、ユーザが指示したマッピングを通じて、または同じ部屋に割り当てられた結果として)。また、たとえば、リモートアシスタントシステムは、1つまたは複数のリモートモデルおよび/またはルールを利用して、「少し…暗くする」が「現在の輝度強度レベルより20%(あるいは、他のパーセントまたは値)暗くする」を意味すると決定することができる。セマンティック表現は、これらの解決に基づいて生成することができ、たとえば、[デバイス=AおよびB、より暗い、相対強度20%]であってよく、ここで、「AおよびB」は対応する照明の一意の識別子であり、「より暗い、相対強度20%」は、照明がそれらの現在の強度に対して20%減らされる程度まで暗くされることを示す。
クラウドセマンティック表現が生成されると、リモートアシスタントシステムは、セマンティック表現を有効にするための制御要求を生成することができる。たとえば、リモートアシスタントシステムは、直近に報告されたそれらの照明の状態に基づいて、および/またはそれらの照明の現在の状態を、「照明AおよびB」を制御するスマートデバイスリモートシステム(たとえば、「照明AおよびB」の製造元によって制御されるスマートデバイスリモートシステム)から要求(および、受信)することによって、「照明AおよびB」の「現在の輝度強度レベル」を識別することができる。さらに、リモートアシスタントシステムは、(「少し暗くする」が「現在の輝度強度レベルより20%暗くする」という意味であるという決定に基づいて、)「現在の輝度強度レベル」に0.80を掛けることによって「目標輝度強度レベル」を生成することができる。次いで、「照明AおよびB」を識別し、照明を生成された「目標輝度強度レベル」に設定する要求を含む制御要求を生成することができる。次いで、制御要求をスマートデバイスリモートシステムに送信することができる。制御要求の受信に応答して、スマートデバイスリモートシステムは、(たとえば、BLE、Z-Wave、ZigBeeなどの場合)「照明AおよびB」と共存するハブを通じて、インターネットを介して、対応する制御コマンドを「照明AおよびB」に送信するか、または(たとえば、Wi-Fi、およびハブを必要としない他のスマートデバイスの場合)IP接続を介してスマートデバイスに直接送信する。制御コマンドは、制御要求と一致することもあり、制御要求と異なることもあるが、制御要求に基づいて生成される。任意で、リモートアシスタントシステムはまた、「照明AおよびB」の状態の変更を確認するために、レンダリングされるべきテキスト、オーディオデータ、および/またはグラフィックをクライアントデバイスに送信する。たとえば、「OK、照明AおよびBを20%暗くする」のテキストをクライアントデバイスに送信し、クライアントデバイスに、テキストをグラフィカルにレンダリングさせる、および/または、ローカルのテキスト音声変換モデルを使用して対応する合成音声をレンダリングさせることができる。
さらに、リモートアシスタントシステムは、クライアントデバイスに、クラウドセマンティック表現と、任意でテキスト(または、その表現)、およびテキスト(または、表現)とクラウドセマンティック表現との間のマッピングを含むキャッシュ要求を送信することができる。キャッシュ要求の受信に応答して、クライアントデバイスはローカルキャッシュ内に、テキストのクラウドセマンティック表現へのマッピングを定義するキャッシュエントリを生成することができる。たとえば、キャッシュエントリは、クラウドセマンティック表現へのテキスト自体のマッピング、および/またはクラウドセマンティック表現へのテキストの表現(たとえば、Word2Vec表現または他の表現)のマッピングを含むことができる。キャッシュ要求自体がテキスト(または、その表現)を含まない状況では、クライアントデバイスは、テキスト(または、対応するオーディオデータ)の送信に応答して受信されるキャッシュ要求に基づくマッピングを含むことができる。いくつかの実装形態では、リモートアシスタントシステムはまた、キャッシュ要求に、「照明AおよびB」の状態の変更を確認するテキスト、オーディオデータ、および/またはグラフィックを含むことができる。
さらに、クライアントデバイスにおけるキャッシュエントリの生成の後、アシスタントクライアントデバイスの1つまたは複数のマイクを介して検出されたオーディオデータにおいて、「照明を少し暗くする」という発話の別のインスタンスがキャプチャされたと仮定する。アシスタントクライアントデバイスは、「照明を少し暗くする」という認識されたテキストを生成するために、ローカルの音声テキスト変換モデルを使用してオーディオデータを処理することができる。アシスタントクライアントデバイスは、そのローカルキャッシュをチェックして、生成されたキャッシュエントリは、認識されたテキストと一致するテキスト(または、その表現)を含むと決定することができる。本明細書で使用される「一致する」は、完全一致および/またはソフトな一致を含むことができる。たとえば、ソフトな一致を使用すると、編集距離の分析、ストップワードのみの有無、および/または他の技法の利用に基づいて、「照明を少しだけ暗くする」というテキストは「照明を少し暗くする」に一致すると決定することができる。一致を決定したことに応答して、アシスタントクライアントデバイスは、リモートアシスタントシステムに、キャッシュエントリ内のテキストにマッピングされているクラウドセマンティック表現を送信することができる。任意で、アシスタントクライアントデバイスは、オーディオデータおよび/または認識されたテキストをリモートアシスタントシステムに送信せずに、クラウドセマンティック表現を送信することができる。
クラウドセマンティック表現の受信に応答して、リモートアシスタントシステムは、次いで、クラウドセマンティック表現を有効にするための制御要求を生成することができる。「照明を少し暗くする」という例では、制御要求は、「照明を少し暗くする」と一致するユーザ入力の時点の「照明AおよびB」の「現在の輝度レベル」に応じて変化する可能性がある点に留意されたい。たとえば、制御要求が「照明AおよびB」の「目標輝度レベル」を指定する場合、それらの目標輝度レベルは「現在の輝度レベル」に依存する。次いで、「照明AおよびB」の対応する制御を引き起こすために、制御要求をスマートデバイスリモートシステムに送信することができる。したがって、セマンティック表現をリモートアシスタントシステムに送信することによって、リモートアシスタントシステムは、セマンティック表現を再度生成するためにテキストの処理をバイパスし、代わりに受信したクラウドセマンティック表現を利用することができる。
これらおよび他の方式では、リモートアシスタントシステムにおいて発生する処理が少なくなるため、リモートアシスタントシステムにおける電力、メモリ、および/またはプロセッサリソースの使用量が削減される。この削減は、リモートアシスタントシステムによって毎日受信されて処理することができる大量(たとえば、数千、数十万)のスマートデバイス制御要求を考慮すると、特に重要である。さらに、これらおよび他の方式では、制御要求をより迅速に生成および送信できるため、スマートデバイスの状態をより迅速に変更することができる。たとえば、テキストからのセマンティック表現の生成をバイパスすると、制御要求を生成する際に、少なくとも200ミリ秒、500ミリ秒、700ミリ秒、または他の期間を節約することができ、これは、様々なスマートデバイスの制御(たとえば、暗い部屋で照明をオンにするなど)において特に重要であり得る。
キャッシュエントリが「照明AおよびB」の状態の変更を確認するテキスト、オーディオデータ、および/またはグラフィックも含む実装形態では、アシスタントクライアントデバイスは、キャッシュエントリが入力と一致するという決定に応じて、そのようなコンテンツをレンダリングすることもできる。コンテンツはすぐに、または任意で、キャッシュエントリにおいて任意で指定できる遅延(たとえば、入力を受信することと、対応する状態変化を有効にすることとの間のレイテンシに基づく遅延)の後に、レンダリングすることができる。
前述の例では、スマートデバイス制御要求は、状態に関連する状態変化要求である点に留意されたい。すなわち、スマートデバイスの現在の状態に依存する方式で、スマートデバイスの状態の変更を要求する。より具体的には、照明AおよびBの現在の輝度状態に関連する方式で、照明AおよびBの輝度状態への変更を要求する。いくつかの実装形態では、リモートアシスタントシステムは、制御要求の代わりに、セマンティック表現が相対的な状態変化表現であるという決定に応答して、セマンティック表現を含むキャッシュ要求を提供することを決定することができる。そのような決定は、スマートデバイスの現在の状態を参照するセマンティック表現に基づいて決定することができる。
それらの実装形態のいくつかでは、リモートアシスタントシステムは、セマンティック表現の代わりに、セマンティック表現が相対的な状態変化表現ではないという決定に応答して、制御要求を含むキャッシュ要求を提供することができる。たとえば、代わりに、「照明を500ルーメンに設定する」という発話を仮定する。そのような例では、「照明AおよびB」を識別し、両方の照明の「500ルーメン」の「目標輝度強度レベル」を識別するクラウドセマンティック表現を生成することができる。さらに、対応する制御要求も生成することができる。クラウドセマンティック表現は相対的ではないため、リモートアシスタントシステムは任意で、制御要求を含むキャッシュ要求を送信することができる。これに応答して、クライアントデバイスは、「照明を500ルーメンに設定する」というテキスト(または、その表現)を制御要求にマッピングするキャッシュエントリを生成することができる。その後、受信した入力がキャッシュエントリのテキストと一致するという決定に応答して、クライアントデバイスは、制御要求をリモートアシスタントシステムに送信することができる。次いで、リモートアシスタントシステムは制御要求をスマートデバイスリモートシステムに送信し、それによってリモートアシスタントシステムが制御要求を直接利用することを可能にし、それによってセマンティック表現の生成と制御要求の生成との両方をバイパスすることができるようにする。これは、同様に、リモートアシスタントシステムのリソース使用率および/またはレイテンシにプラスの影響を与える可能性がある。
また、ユーザ/アカウントのエコシステムのアシスタントクライアントデバイスの中で、特定のキャッシュエントリは、同じテキストの異なるセマンティック表現(または、制御要求)へのマッピングを含むことができる点にも留意されたい。たとえば、「照明を少し暗くする」が異なるアシスタントクライアントデバイスにおいて受信され、「照明CおよびD」が異なるアシスタントクライアントデバイスの優先照明としてデバイストポロジにおいてマッピングされていると仮定する。そのような例では、「照明AおよびB」の代わりに「照明CおよびD」を識別するセマンティック表現が生成される。したがって、「照明CおよびD」を識別するセマンティック表現への「照明を少し暗くする」のマッピングを含むキャッシュエントリを、異なるクライアントデバイスのために生成することができる。
また、発話が複数のクライアントデバイスにおいて検出された場合、1つまたは複数のデバイスアービトレーション技法を利用して、それらのクライアントデバイスの1つのみにおいて受信されたと決定することができる点にも留意されたい。そのような技法は、クライアントデバイスが、ユーザに最も近いと決定する、および/またはさもなければユーザによって対話されることが意図される(最も近くないにもかかわらず)ことに基づいて、クライアントデバイスが受信デバイスであるべきであることを決定する際に様々な機能を考慮することができる。そのような機能は、クライアントデバイスにおいて話されたオーディオデータの音量、クライアントデバイスにおけるオーディオデータの検出時間、クライアントデバイスとの対話の最新性、クライアントデバイスへのユーザの近接性、および/または他の機能を含むことができる。
次にローカルで解釈可能なセマンティック表現を生成し利用する非限定的な例を提供する。アシスタントクライアントデバイスの1つまたは複数のマイクを介して検出されたオーディオデータにおいて、「照明を少し暗くする」という発話がキャプチャされたと再び仮定する。アシスタントクライアントデバイスは、「照明を少し暗くする」という認識されたテキストを生成するために、ローカルの音声テキスト変換モデルを使用してオーディオデータを処理することができる。アシスタントクライアントデバイスは、認識されたテキストと一致するキャッシュエントリがあるかどうかを決定するために、ローカルキャッシュをチェックすることができる。アシスタントクライアントデバイスは、一致するキャッシュエントリが存在しないと決定することができ、これは、これがアシスタントクライアントデバイスにおける発話の最初のインスタンスである結果であるか、または以前に一致したキャッシュエントリが最近キャッシュから消去された結果であり得る。アシスタントクライアントデバイスは、任意で、認識されたテキストがデバイス上のNLUコンポーネントを利用してローカルで解釈可能ではないことをさらに決定することができる。
クライアントデバイスは、認識されたテキストおよび/またはオーディオデータをリモートアシスタントシステムにさらに送信することができる。任意で、リモートアシスタントシステムへのテキストおよび/またはオーディオデータの送信は、一致するキャッシュエントリがないこと、および/または認識されたテキストがローカルで解釈可能ではないという決定に応答する。
認識されたテキストおよび/または(リモートアシスタントシステムが認識されたテキストを生成できる)オーディオデータの受信に応答して、リモートアシスタントシステムは、認識されたテキストのローカルで解釈可能なセマンティック表現を生成するために、認識されたテキストを処理することができる。たとえば、リモートアシスタントシステムは、アカウント識別子の対応するリモートに記憶されたデバイストポロジを識別するために、テキストの送信で受信されたアカウント識別子を利用することができる。デバイストポロジにおいてマッピングされている照明Cに基づいて、アシスタントクライアントデバイスのデフォルト照明として「照明」を「照明C」に解決するために、対応するデバイストポロジを利用することができる。
また、たとえば、リモートアシスタントシステムは、1つまたは複数のリモートモデルおよび/またはルールを利用して、「少し…暗くする」が「現在の輝度強度レベルより20%(あるいは、他のパーセントまたは値)暗くする」を意味すると決定することができる。リモートアシスタントシステムは、「照明C」の識別子、ならびに「少し暗くする」ための目標強度レベルをどのようにローカルで解決するかを指示する相対的な状態変化表現である状態変化表現を含むことによって、ローカルで解釈可能なセマンティック表現を生成することができる。たとえば、「照明C」の識別子は、「照明C」のローカルアドレスにすることができる。また、たとえば、状態変化表現は、「設定強度=(現在の強度*0.8)」とすることができ、これは、「照明C」の強度が、「照明C」の現在の強度値(たとえば、直近に報告された強度、またはローカルで要求され、ローカルで受信された強度値)を80%識別することによって決定される値に設定されるべきであることを示す。したがって、いくつかの実装形態では、ローカルで解釈可能なセマンティック表現は、(たとえば、本明細書で説明するローカルアダプタを利用して)ローカル制御コマンドを生成するために利用することができる相対値のローカル解決を可能にするために、クラウドベースのカウンタパートよりも細かく状態変化表現を定義することができる。状態変化表現は、任意で、対応するローカル制御コマンドを生成する際に利用されるべきアダプタ(たとえば、スマートデバイスの製造元に固有のアダプタ)の指示、ローカル制御コマンドを送信するために利用されるべきチャネル(たとえば、BluetoothまたはWi-Fi)の指示、および/または、ローカルで解釈可能なセマンティック表現に基づいて制御コマンドを生成する際に利用されるべきプロトコルスイートの指示をさらに含むことができる。ローカルで解釈可能なセマンティック表現は、たとえば、[デバイス=C;設定強度=(現在の強度*0.8)]であり得る。
いくつかの実装形態では、システムは、クライアントデバイス(または、クライアントデバイスにローカルに接続されている追加のクライアントデバイス)が、認識されたテキストにおいて参照されているスマートデバイスをローカルで制御できることを決定することと、認識されたテキストにおいて参照されているスマートデバイスが、ローカルで制御できることを決定することと、および/または、認識されたテキストにおいて要求された状態変化がローカル制御のために有効にすることが可能であると決定することと(たとえば、いくつかの状態はローカル制御を通じて変更できるが、他の状態はクラウド制御を通じてのみ変更できる場合)に応じて、ローカルで解釈可能なセマンティック表現を生成することを決定することができる。
ローカルで解釈可能なセマンティック表現が生成されると、リモートアシスタントシステムは、即時に実装するために、任意でローカルで解釈可能なセマンティック表現をクライアントデバイスに送信することができる。別の言い方をすれば、リモートアシスタントシステムは、クライアントデバイスに、発話に応じてローカルで解釈可能なセマンティック表現を解釈させ、対応するローカル制御コマンドを生成させ、「照明C」への状態変化を有効にするためにローカル制御コマンドをローカルに送信させるために、ローカルで解釈可能なセマンティック表現を送信することができる。即時に実装するために、ローカルで解釈可能なセマンティック表現のクライアントデバイスへの送信は、キャッシュ要求自体の送信(以下で説明)、または別個の送信であり得る。あるいは、リモートアシスタントシステムは、代わりに、状態変化を有効にするために、スマートデバイス制御システムに、対応する制御コマンドを生成させて「照明C」に送信させるために、対応するクラウド制御要求を生成して「照明C」のスマートデバイス制御システムに送信することができる。
即時の要求に応じて状態変化を実装する方式に関係なく、リモートアシスタントシステムは、ローカルで解釈可能なセマンティック表現と、任意で、テキスト(または、その表現)およびテキスト(または、表現)とローカルで解釈可能なセマンティック表現との間のマッピングを含むキャッシュ要求をクライアントデバイスに送信することができる。キャッシュ要求の受信に応答して、クライアントデバイスはローカルキャッシュ内に、テキストのローカルで解釈可能なセマンティック表現へのマッピングを定義するキャッシュエントリを生成することができる。たとえば、キャッシュエントリは、ローカルで解釈可能なセマンティック表現へのテキスト自体のマッピング、および/またはローカルで解釈可能なセマンティック表現へのテキストの表現のマッピングを含むことができる。キャッシュ要求自体がテキスト(または、その表現)を含まない状況では、クライアントデバイスは、テキスト(または、対応するオーディオデータ)の送信に応答して受信されるキャッシュ要求に基づくマッピングを含むことができる。いくつかの実装形態では、リモートアシスタントシステムはまた、キャッシュ要求に、「照明C」の状態の変更を確認するテキスト、オーディオデータ、および/またはグラフィックを含むことができる。
さらに、クライアントデバイスにおけるキャッシュエントリの生成の後、アシスタントクライアントデバイスの1つまたは複数のマイクを介して検出されたオーディオデータにおいて、「照明を少し暗くする」という発話の別のインスタンスがキャプチャされたと仮定する。アシスタントクライアントデバイスは、「照明を少し暗くする」という認識されたテキストを生成するために、ローカルの音声テキスト変換モデルを使用してオーディオデータを処理することができる。アシスタントクライアントデバイスは、そのローカルキャッシュをチェックして、生成されたキャッシュエントリは、認識されたテキストと一致するテキスト(または、その表現)を含むと決定することができる。完全一致および/またはソフト一致を利用することができる。それに応じて、アシスタントクライアントデバイスは、「照明C」にローカルに送信するための対応するローカル制御要求を生成するために、キャッシュエントリのローカルで解釈可能なセマンティック表現を処理することができる。たとえば、「設定強度=(現在の強度*0.8)」を含むローカルで解釈可能なセマンティック表現に基づいて、アシスタントクライアントデバイスは「照明C」の「現在の強度」をローカルで識別し、次いで、その現在の強度に0.8を掛けることによって「設定強度」の値を決定することができる。したがって、決定された値への「設定強度」は、ローカルで解釈可能なセマンティック表現の相対的な状態変化に基づいて生成される特定の状態変化であり得る。
さらに、アシスタントクライアントデバイスは、「設定強度」の値に基づいて、また任意で1つまたは複数のローカルアダプタを利用して、制御コマンドを生成することができる。制御コマンドは、BLE、Z-Wave、Zigbee、Wi-Fi、または他のプロトコルスイートなどの、「照明C」に準拠するプロトコルスイートに準拠するように生成することができる。制御コマンドを生成する際に利用するプロトコルスイートは、ローカルで解釈可能なセマンティック表現に含まれているスマートデバイスの識別子に基づいて、および/またはローカルで解釈可能なセマンティック表現に含めることができるアダプタの指示に基づいて選択することができる。
さらに、生成された制御コマンドは、「照明C」(または、「照明C」を制御する対応するローカルデバイス)にローカルに送信することができる。制御コマンドは、「照明C」を識別する(たとえば、「照明C」のアドレスを識別する)ローカルで解釈可能なセマンティック表現に基づいて「照明C」(または、対応するローカルデバイス)に送信することができ、また、ローカルで解釈可能なセマンティック表現を介して任意で識別されるローカルチャネルを介して送信することができる。ローカルチャネルは、たとえば、Wi-Fi無線チャネル、BLUETOOTH(登録商標)無線チャネル、または他のチャネルであり得る。したがって、任意のデータをリモートアシスタントシステムに再度送信する必要なく、および/またはリモートアシスタントシステムがセマンティック表現を再び生成する必要なく、「照明C」において状態変化を有効にすることができる。これにより、リモートアシスタントシステムにオーディオデータおよび/または認識されたテキストを送信する必要性をなくすことによって、ネットワークリソースを節約することができ、また、リモートシステムにおいてセマンティック表現を再度生成する必要がなくなるため、リモートアシスタントシステムにおける処理リソースを節約することができる。さらに、リモートアシスタントシステムへの送信とリモートアシスタントシステムにおける処理をバイパスすることによって、スマートデバイスにおいて要求された状態変化の実装形態におけるレイテンシを大幅に削減することができる。
上述のように、様々な実装形態は、ローカルで解釈可能なセマンティック表現、またはその上で生成された特定の状態変化を、対応する制御コマンドに対してローカルで解釈するためにアダプタを利用する。それらの実装形態では、クライアントデバイスは1つまたは複数のアダプタを含むことができ、その各々を特定のスマートデバイス、特定のスマートデバイス製造元、および/または特定のプロトコルスイートに合わせて調整することができる。アダプタは、アシスタントクライアントデバイスによって実行される場合、少なくとも1つの対応するスマートデバイス(あるいは、ハブ/ブリッジ、またはスマートデバイスに接続されている他のコンポーネント)にローカルに送信される場合、対応するスマートデバイスにおける状態変化を有効にするために対応するスマートデバイス(または、スマートデバイスに接続されている他のコンポーネント)によって直接解釈可能であるように、それぞれ調整された特定の制御コマンドを生成するために、ローカルで解釈可能なセマンティック表現(および/またはローカルで解釈可能なセマンティック表現に基づいて生成された特定の状態変化)を処理することができる。たとえば、アダプタはJavaScript(または、他の解釈されたプログラミング言語)によって実装することができ、ローカルで解釈可能なセマンティック表現に基づいて生成された汎用スマートデバイス制御コマンドを、スマートデバイスのプロトコルスイートに準拠する特定の制御コマンドに変換することができる。アダプタは、自動アシスタントクライアント内のコンテナにおいて任意で実行することができる。複数のアダプタがアシスタントクライアントデバイスにおいて利用可能な実装形態では、セマンティック表現に含まれているスマートデバイスの識別子に基づいて、および/またはセマンティック表現に含めることができるアダプタの指示に基づいて、ローカルで解釈可能なセマンティック表現に対して特定のアダプタを選択することができる。
キャッシュエントリが「照明AおよびB」の状態の変更を確認するテキスト、オーディオデータ、および/またはグラフィックも含む実装形態では、アシスタントクライアントデバイスはまた、キャッシュエントリが入力と一致するという決定に応じてそのようなコンテンツをレンダリングすることができる。コンテンツは即時に、または任意で遅延後にレンダリングすることができる。
前述の例では、スマートデバイス制御要求は、状態に関連する状態変化要求である点に留意されたい。すなわち、スマートデバイス制御要求は、スマートデバイスの現在の状態に依存する方式で、スマートデバイスの状態の変更を要求する。より具体的には、スマートデバイス制御要求は、照明Cの現在の輝度状態に関連する方式で、照明Cの輝度状態への変更を要求する。いくつかの実装形態では、リモートアシスタントシステムは、ローカル制御コマンドの代わりに、セマンティック表現が相対的な状態変化表現であるという決定に応答して、ローカルで解釈可能なセマンティック表現を含むキャッシュ要求を提供することを決定することができる。そのような決定は、スマートデバイスの現在の状態を参照するセマンティック表現に基づいて決定することができる。
それらの実装形態のいくつかでは、リモートアシスタントシステムは、セマンティック表現の代わりに、セマンティック表現が相対的な状態変化表現ではないという決定に応答して、ローカル制御コマンドを含むキャッシュ要求を提供することができる。たとえば、代わりに、「照明を500ルーメンに設定する」という発話を仮定する。そのような例では、「照明C」を識別し、その照明の「500ルーメン」の「目標輝度強度レベル」を識別するローカルで解釈可能なセマンティック表現を生成することができる。さらに、対応する制御要求も生成することができる。セマンティック表現は相対的ではないため、リモートアシスタントシステムは任意で、ローカルで解釈可能なセマンティック表現に基づいて生成されたローカル制御コマンドを含むキャッシュ要求を送信することができる。これに応答して、クライアントデバイスは、「照明を500ルーメンに設定する」というテキスト(または、その表現)を制御コマンドにマッピングするキャッシュエントリを生成することができる。その後、受信した入力がキャッシュエントリのテキストと一致するという決定に応答して、クライアントデバイスは、キャッシュエントリの制御コマンドをローカルに送信し、それによって、ローカルで解釈可能なセマンティック表現に基づいて制御コマンドの生成をバイパスすることができる。
クラウドセマンティック表現と同様に、ユーザ/アカウントのエコシステムのアシスタントクライアントデバイスの中で、特定のキャッシュエントリは、同じテキストの異なるローカルで解釈可能なセマンティック表現(または、ローカル制御コマンド)へのマッピングを含むことができる点にも留意されたい。
クラウドセマンティック表現とローカルで解釈可能なセマンティック表現の別の例が上記に提供されている。しかしながら、いくつかの実装形態では、単一のキャッシュエントリは、ローカルで解釈可能なセマンティック表現とクラウドセマンティック表現との両方へのテキストのマッピングを含むことができる。たとえば、照明「A」および「B」はどちらも要求に対して識別することができ、照明「A」はローカルで制御可能であってよいが、照明「B」はクラウド制御を介してのみ制御可能であってよい。結果として、リモートアシスタントシステムは、要求のテキストを、(a)「照明A」において状態変化を有効にするためにローカルで処理することができる、ローカルで解釈可能なセマンティック表現、および(b)「照明B」において状態変化を有効にするためにリモートアシスタントシステムに送信されるクラウドセマンティック表現の両方にマッピングさせるキャッシュ要求を生成して提供することができる。
様々な実装形態では、リモートアシスタントシステムおよび/またはクライアントデバイスは、アカウントのデバイストポロジの変更および/または他の条件の発生を決定することができ、その結果、エコシステムのクライアントデバイスのキャッシュの1つまたは複数のキャッシュエントリを消去させる(たとえば、完全に削除するか、古くなったとしてフラグを立てる)。デバイストポロジの変更は、たとえば、デバイストポロジにおけるスマートデバイスの追加または削除、デバイストポロジにおけるスマートデバイスおよび/またはアシスタントクライアントデバイスの名前の変更、デバイストポロジにおける新しい部屋および/またはグループへのデバイスの割当て、ならびに/あるいはデバイストポロジへの他の変更を含むことができる。そのような変更は、キャッシュの一部またはすべてのセマンティック表現に影響を与える可能性があり、結果として、変更の検出に応答して、少なくとも影響を受けるキャッシュエントリ(および、任意ですべてのキャッシュエントリ)をキャッシュから消去することができる。一例として、追加の照明がデバイストポロジに追加され、「キッチン」ラベルを有する部屋に割り当てられていると仮定する。その追加が行われると、以前に「キッチン照明」に割り当てられていたそれらの照明に関連する任意のセマンティックキャッシュエントリは、新しく追加された追加照明を反映しないため、古くなる。したがって、変化の検出に応答して、少なくとも「キッチン照明」に関連するそれらのキャッシュエントリをキャッシュから消去することができる。たとえば、リモートアシスタントシステムはそのような変更を決定し、その結果、すべてのアシスタントクライアントデバイスのローカルキャッシュを消去するために、キャッシュ消去要求をエコシステムのすべてのアシスタントデバイスに送信することができる。その後、発話、タイプ入力、または他の入力が受信されると、新しいキャッシュエントリがアシスタントクライアントデバイスにおいて生成される。たとえば、「キッチン照明を暗くする」というテキストのキャッシュエントリが消去された場合、ユーザがその後「キッチン照明を暗くする」という発話を提供すると、新しいキャッシュエントリが作成される。
いくつかの実装形態では、アシスタントクライアントデバイスは、アシスタントクライアントデバイスにおいて明示的な自動アシスタントの呼出しを検出せずに、デバイス上の音声テキスト変換モデルを利用して、少なくとも選択的にオーディオデータを処理することができる。明示的な呼出しキューは、単独で検出された場合、常に少なくともデバイス上の音声認識をアクティブ化させるキューである。明示的な呼出しキューのいくつかの非限定的な例は、少なくともしきい値の信頼度を備えた話されたホットワード、明示的なアシスタントインターフェース要素の作動(たとえば、ハードウェアボタンまたはタッチスクリーンディスプレイ上のグラフィックボタン)、少なくともしきい値の強度を有する「電話スクイーズ」(たとえば、モバイル電話のベゼル内のセンサによって検出されたもの)、および/または他の明示的な呼出しキューを検出すること含む。
一例として、アシスタントクライアントデバイスは、デバイスの近くで人間の存在が検出されると(たとえば、パッシブ赤外線センサおよび/または他のセンサに基づいて)、任意の音声アクティビティの検出に応答して(たとえば、音声アクティビティ検出器を使用して)、特定の日および/または時間の間の、デバイスの近くの少なくともしきい値レベルのノイズの検出に応答して、ならびに/あるいは他の条件に応答して、明示的な自動アシスタント呼出しを検出せずにオーディオデータを処理することができる。アシスタントクライアントデバイスがオーディオデータを処理する実装形態では、デバイス上の音声テキスト変換モデルを利用して、明示的な自動アシスタント呼出しを検出せずに、アシスタントクライアントデバイスは、任意の認識されたテキストが、アシスタントクライアントデバイス上でローカルにそのように示された任意の「ホットフレーズ」と一致するかどうかを決定することができる。各「ホットフレーズ」は、1つまたは複数の単語のシーケンスを備える。オーディオデータのデバイス上の音声認識から認識されたテキストがホットフレーズと一致しないと決定された場合、アシスタントクライアントデバイスは、そのような認識されたテキストおよびオーディオデータを破棄することができる。オーディオデータのデバイス上の音声認識から認識されたテキストがホットフレーズと一致すると決定された場合、アシスタントクライアントデバイスは、テキストに基づいて1つまたは複数の対応するアクションを自動的に開始することができる。ユーザは、どのフレーズがホットフレーズとして示されるかを制御することができ、また、任意で、フレーズがホットフレーズとして示される前に、明示的なユーザ承認が必要になる場合がある。
いくつかの実装形態では、ホットフレーズは、本明細書で説明されている対応するキャッシュエントリのテキストと一致するフレーズであり得る。それらの実装形態では、ホットフレーズに基づいてアシスタントクライアントデバイスによって自動的に開始されるアクションは、対応するクラウドセマンティック表現の送信、または対応するローカルで解釈可能なセマンティック表現のローカル解釈を含むことができる。それらの実装形態のいくつかでは、キャッシュエントリのテキストは、アシスタントクライアントデバイスにおいて、1つまたは複数の基準が満たされているという決定に基づいて、そのアシスタントクライアントデバイスのホットフレーズとして指定することができる。基準は、たとえば、テキストおよび/または一致するテキストが、アシスタントクライアントデバイスにおいて受信されたユーザ入力(たとえば、タイプされた、および/または話された)において、少なくともしきい値回数(全体的または最近の一時的な期間内)および/または少なくともしきい値頻度(全体的または最近の一時的な期間内)で存在すると決定されたことを含むことができる。それらの実装形態のいくつかのバージョンでは、キャッシュエントリのテキストを、任意で、ユーザインターフェース入力を介して提供されるそのような指定を確認して(たとえば、「ところで、Xをホットフレーズとして指定しました。これは設定において簡単に変更することができます」)ホットフレーズとして自動的に指定することができる。他のいくつかのバージョンでは、プロンプトへの応答としての確認的なユーザ入力の後のみ、テキストがホットフレーズとして指定され得る。たとえば、「「照明を頻繁にオンにする」ように要求した場合、それをホットフレーズとして指定して、「OKアシスタント」と最初に言う必要がないようにしますか?」のプロンプトへの応答としての「はい」の確認的な入力である。さらに他の実装形態では、アシスタントクライアントデバイスのキャッシュにおける任意のローカルキャッシュエントリのテキストを、アシスタントクライアントデバイスのホットフレーズとして自動的に指定することができる。キャッシュエントリのテキストをホットフレーズとして指定する実装形態では、ユーザが最初に呼出しホットワード(たとえば、「OKアシスタント」)などの明示的な呼出しを提供する必要をなくすことによって、アシスタントクライアントデバイスとのユーザ対話の期間を短縮することができる。アシスタントクライアントデバイスとの対話の期間を短縮することを通じて、人間とアシスタントクライアントデバイスとの対話が改善され、より多くのスマートデバイスの状態変更をより短い時間の期間で有効にすることを可能にする。
上記の説明は、本開示のいくつかの実装形態のみの概要として提供されている。それらの実装形態および他の実装形態のさらなる説明は、本明細書でより詳細に説明される。
さらに、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連付けられるメモリに記憶された命令を実行するように動作可能であり、命令は、本明細書に記載の方法のうちのいずれかの実行を引き起こすように構成される。いくつかの実装形態は、ローカルに記憶された命令を実行し、本明細書に記載の方法の1つまたは複数を実行するためにローカルに記憶されたデータとインターフェースする1つまたは複数のプロセッサを有するクライアントデバイスを含む。いくつかの実装形態はまた、本明細書に記載の方法のうちのいずれかを実行するために1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する1つまたは複数のコンピュータ可読ストレージ媒体(一時的または非一時的)を含む。
本明細書でより詳細に説明される前述の概念および追加の概念のすべての組合せは、本明細書で開示される主題の一部として考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の範囲に記載された主題のすべての組合せは、本明細書に開示された主題の一部として考えられる。
スマートホームアラーム、スマートドアロック、スマートカメラ、スマート照明、スマートサーモスタット、スマート体重計、スマートベッド、スマート灌漑システム、スマートガレージドアオープナ、スマートプラグ、スマートアプライアンス、スマートベビーモニタ、スマートテレビ(TV)、スマート火災警報器、スマート湿度検出器、スマートルータなどの、スマートネットワークに接続されたデバイス(本明細書では、スマートデバイスまたはモノのインターネット(IoT)デバイスとも呼ばれる)が急増している。多くの場合、複数のスマートデバイスは、家などの構造の範囲内に配置されるか、または、ユーザの一次住居、およびユーザの二次住居、ならびに/あるいは職場などの、複数の関連する構造内に配置される。
さらに、自動アシスタントの論理インスタンスを形成するために、任意で1つまたは複数のリモート自動アシスタントコンポーネントと相互作用することができるアシスタントクライアントをそれぞれ含むことができるアシスタントクライアントデバイスが急増している。アシスタントクライアントデバイスは、アシスタント機能のみに専念することができ(たとえば、アシスタントクライアントと関連付けられるインターフェースのみを含み、もっぱらアシスタント機能に専念する、スタンドアロンスピーカ、および/またはスタンドアロンオーディオ/ビジュアルデバイス)、または他の機能に加えてアシスタント機能を実行することができる(たとえば、複数のアプリケーションの1つとしてアシスタントクライアントを含むモバイル電話またはタブレット)。さらに、いくつかのスマートデバイスはアシスタントクライアントデバイスであってもよい。たとえば、いくつかのスマートデバイスは、アシスタントクライアントと、(少なくとも一部が)アシスタントクライアントのアシスタントインターフェースのユーザインターフェース出力および/または入力デバイスとして機能する、少なくともスピーカおよび/またはマイクを含むことができる。
スマートデバイスを、自動アシスタントの対応する論理インスタンスに(および、任意で個々のアシスタントクライアントデバイスに)関連付けるための様々な技法が提案されている。たとえば、ユーザ、ユーザのグループ、アシスタントクライアントデバイス、および/またはアシスタントクライアントデバイスのグループ(たとえば、すべてが構造内にある)は、自動アシスタントを介してスマートデバイスとの対話(たとえば、制御)を可能にするために、複数の異なるスマートデバイスと(たとえば、1つまたは複数のデータベースにおいて)リンクされ得る。たとえば、任意のユーザ(または制限されたユーザのグループ)がアシスタントクライアントデバイスのいずれかとインターフェースして、複数の異なるスマートデバイスのいずれかと対話することを可能にするために、家庭内の複数のアシスタントクライアントデバイスの各々を家庭内の複数の異なるスマートデバイスの各々にリンクすることができる。
スマートデバイスとアシスタントクライアントデバイスのそのようなリンクは、本明細書ではデバイストポロジと呼ばれ、様々なデータ構造によって表すことができる。デバイストポロジは、ユーザによって作成されたり、および/または自動的に作成されたりすることができ、様々なアシスタントクライアントデバイス、様々なスマートデバイス、それぞれの識別子、および/またはそれぞれの属性を定義することができる。たとえば、デバイスの識別子は、デバイスが配置されている構造(たとえば、リビングルーム、キッチン)の部屋(および/または、他のエリア)を指定することができ、ならびに/あるいはデバイスのニックネームおよび/または別名(たとえば、ソファランプ、玄関ドアロック、寝室のスピーカ、キッチンアシスタントなど)を指定することができる。このようにして、デバイスの識別子は、ユーザがそれぞれのデバイスに関連付ける可能性が高いそれぞれのデバイスの名前、別名、および/または場所であり得る。
デバイストポロジ表現は、それぞれのデバイスに関連付けられる1つまたは複数のデバイス属性をさらに指定することができる。アシスタントクライアントデバイスのデバイス属性は、たとえば、アシスタントクライアントデバイスによってサポートされる1つまたは複数の入力および/または出力モダリティ、および/またはアシスタントクライアントデバイスによって制御されるべき優先スマートデバイスを含むことができる(たとえば、アシスタントクライアントデバイス1において受信されたあいまいなスマートTVコマンドは、スマートTV1に向けられると仮定されるべきであるが、それらはアシスタントクライアントデバイス2のスマートTV2に向けられると仮定することができる)。たとえば、スタンドアロンのスピーカのみのアシスタントクライアントデバイスのデバイス属性は、可聴出力を提供できるが、視覚的出力を提供することはできないことを示すことができる。また、たとえば、同じスタンドアロンのスピーカのみのアシスタントクライアントデバイスのデバイス属性は、特定の照明を指定しない照明制御要求が、そのアシスタントクライアントデバイスと同じ部屋に割り当てられた照明に関連すると解釈されるべきであることを示すことができる。スマートデバイスのデバイス属性は、たとえば、制御可能なスマートデバイスの1つまたは複数の状態を識別することと、スマートデバイスのファームウェアを製造、配布、および/または作成する当事者(たとえば、3P)を識別することと、ならびに/あるいはスマートデバイスのアドレスおよび/または1Pまたは3P提供の固定識別子などのスマートデバイスの一意の識別子を識別することとを行うことができる。本明細書で開示される様々な実装形態によれば、デバイストポロジ表現は、どのアシスタントクライアントデバイスによってどのスマートデバイスをローカルで制御することができるか、ローカルで制御可能なスマートデバイスのローカルアドレス(または、それらのスマートデバイスを直接ローカルで制御することができるハブのローカルアドレス)、アシスタントクライアントデバイスとスマートデバイスとの間のローカル信号強度および/または他の優先インジケータを、任意でさらに指定することができる。さらに、本明細書で開示される様々な実装形態によれば、デバイストポロジ表現(または、そのバリエーション)は、リモートアシスタントシステムにおいてリモートに記憶することができ、および/またはスマートデバイスをローカルで制御する際に利用するために複数のアシスタントクライアントデバイスの各々にローカルに記憶することができる。任意で、ローカルに記憶された各デバイストポロジは、たとえば、アシスタントクライアントデバイスのハードウェアの制約のため、リモートに記憶されたデバイストポロジよりも堅牢性が低い(たとえば、定義するデバイス、属性、識別子が少ない)場合がある。
次に図1を参照すると、本明細書で開示される技法が実装され得る例示的な環境が示されている。例示的な環境は、複数のアシスタントクライアントデバイス1101-N(本明細書では単に「クライアントデバイス」とも呼ばれる)、クラウド自動アシスタントコンポーネント120、スマートデバイスシステム140A-N、スマートデバイス145A-N、およびクライアントデバイス1101-Nのためのデバイストポロジ152を含む。図1のクライアントデバイス1101-Nおよびスマートデバイス1451-Nは、(たとえば、デバイストポロジ152を介して)少なくとも選択的に互いに関連付けられるクライアントデバイスおよびスマートデバイスを表す。たとえば、スマートデバイス1451-Nは、すべて家に(たとえば、家の内部および/または外部に)あり得、クライアントデバイス1101-Nは、少なくとも時折同じ家にあり得、またスマートデバイス1451-Nおよびクライアントデバイス1101-Nは、本明細書で説明されているような1つまたは複数の技法を利用して互いにリンクすることができる。そのようなリンクを通じて、クライアントデバイス1101-Nは、本明細書で説明される実装形態に従ってスマートデバイス1451-Nを制御するために利用され得る。
クライアントデバイス1101-Nの1つまたは複数(たとえば、すべて)は、自動アシスタントクライアントのそれぞれのインスタンスを実行することができる。しかしながら、いくつかの実装形態では、クライアントデバイス1101-Nの1つまたは複数は、任意で、自動アシスタントクライアントのインスタンスがなくても、依然として1つまたは複数のスマートデバイスを制御するためのエンジンおよびハードウェアコンポーネントを含むことができる。自動アシスタントクライアントのインスタンスは、対応するクライアントデバイス1101-Nのオペレーティングシステムとは別のアプリケーション(たとえば、オペレーティングシステムの「上」にインストールされている)であり得、あるいは、対応するクライアントデバイス1101-Nのオペレーティングシステムによって直接実装することができる。自動アシスタントクライアントの各インスタンスは、クライアントデバイス1101-Nのいずれか1つのI/Oコンポーネント111を介してユーザによって提供される様々な要求に応答して、クラウド自動アシスタントコンポーネント120と任意に対話することができる。さらに、クライアントデバイス1101-Nの他のエンジンは、任意でクラウド自動アシスタントコンポーネント120と対話することができる。
クライアントデバイス1101-Nの1つまたは複数(たとえば、すべて)は、発話に対して対応する認識されたテキストを生成するために、それぞれのローカルに記憶されたSTTモデル1521-Nを利用して、発話をキャプチャするオーディオデータを処理するそれぞれの音声テキスト変換(STT)エンジン1121-Nを含むことができる。オーディオデータの各インスタンスは、それぞれのクライアントデバイスのI/Oコンポーネント1111-Nのマイクを介して検出することができる。いくつかの実装形態では、STTエンジン1121-Nは、対応するクライアントデバイス1101-Nにおいて検出された明示的な自動アシスタントの呼出しに続くオーディオデータのみを処理する。いくつかの実装形態では、STTエンジン1121-Nは、明示的な自動アシスタント呼出しがない場合でも、少なくとも選択的にオーディオデータを処理することができるが、本明細書に記載されるように任意の「ホットフレーズ」を含まないと決定された任意のオーディオデータおよび/または認識されたテキストを(さらなる処理なしに)破棄する。「ホットフレーズ」が検出された状況では、「ホットフレーズ」に基づいて1つまたは複数の応答アクションを取ることができる。たとえば、「ホットフレーズ」が対応するローカルキャッシュ1581-Nのキャッシュエントリのテキストと一致する場合、キャッシュエントリのセマンティック表現を、本明細書で説明するようにさらに処理することができる。
クライアントデバイス1101-Nの1つまたは複数(たとえば、すべて)はまた、テキストのローカルなセマンティック表現をローカルに生成することを試みるために、テキストを処理するためにそれぞれのローカルに記憶されたNLUモデル1531-Nを利用するそれぞれの自然言語理解(NLU)エンジン1131-Nを任意で含むことができる。テキストは、STTエンジン112からの認識されたテキストであり得、またはタイプされたテキスト(たとえば、タッチスクリーンの仮想キーボードを介する入力)であり得、または選択された仮想および/またはハードウェアボタンに関連付けられるテキスト(たとえば、タッチスクリーン上に表示される特定の仮想ボタンの選択にマッピングされるテキスト)であり得る。NLUエンジン1131-Nは、様々なテキストフレーズの有効なセマンティック表現を生成することが可能であり得る。しかし、本明細書で説明するように、NLUエンジン1131-Nはまた、たとえばスマートデバイスの制御(たとえば、スマートデバイスの相対的な制御)に関連する様々なテキストフレーズなどの他の様々なテキストフレーズの有効なセマンティック表現を生成することができない場合もある。
クライアントデバイス1101-Nの1つまたは複数(たとえば、すべて)はまた、それぞれのフルフィルメントエンジン1141-Nを含むことができる。各フルフィルメントエンジン1141-Nは、それぞれのクラウドモジュール1151-N、それぞれのローカルモジュール1161-N、および/またはそれぞれのテキスト音声変換(TTS)エンジン1171-Nを含むことができる。
クラウドモジュール1151-Nは、クラウド自動アシスタントコンポーネント120との対話を通じて様々な要求を満たすことができる。たとえば、クラウドモジュール1151は、受信した入力のテキスト(たとえば、認識されたテキストSTTエンジン1121-N)がローカルキャッシュ1581のキャッシュエントリのテキストと一致するという決定に応答して、本明細書で説明するように、キャッシュエントリ内のテキストにマッピングされたクラウドセマンティック表現をクラウド自動アシスタントコンポーネント120に送信することができる。クラウドモジュール1151はまた、任意で、NLUエンジン1131によって生成されたクラウドセマンティック表現をクラウド自動アシスタントコンポーネント120に送信することができる。次いで、クラウド自動アシスタントコンポーネント120のクラウドフルフィルメントエンジン127は、受信した入力を満たす際に、受信したクラウドセマンティック表現を利用することができる。たとえば、スマートデバイス制御入力の場合、クラウドフルフィルメントエンジン127は、対応する制御要求を生成して、対応するスマートデバイスシステム140A-Nに送信するために、クラウドセマンティック表現を利用することができ、次いで、対応する制御コマンドを生成して対応するスマートデバイス145A-Nに送信することができる。
クラウドモジュール1151-Nはまた、それぞれのNLUエンジン1131-Nで解決できない、および/またはそれぞれのローカルキャッシュ1581-Nのどのキャッシュエントリとも一致しない受信した入力について、受信した入力を表すデータをクラウドベースの自動アシスタントコンポーネント120に送信することができる。たとえば、受信した入力がオーディオデータにおいてキャプチャされた発話である場合、オーディオデータおよび/またはそのローカル認識テキスト(たとえば、それぞれのSTTエンジン1121-Nからの)をクラウドベースの自動アシスタントコンポーネント120に送信することができる。それらの送信の少なくともいくつかについて、クラウドベースのコンポーネント120は、それに応じて、入力の将来の発生がより効率的に、および/またはレイテンシを短縮して満たされることを可能にするために、キャッシュ要求をそれぞれのキャッシュエンジン1181-Nに提供することができる。さらに、クラウドベースのコンポーネント120は、追加的または代替的に、受信した入力に応答して、対応するクラウドフルフィルメントを実行し、ならびに/あるいはローカルで解釈可能なセマンティック表現および/またはローカルコマンドを、ローカルフルフィルメントを実行する際にそれぞれのクライアントデバイス1101-Nが利用するために、それぞれのクライアント1101-Nに提供することができる。
ローカルモジュール1161-Nは、ローカルで、およびクラウド自動アシスタントコンポーネント120との対話なしに、様々な要求を満たすことができる。たとえば、ローカルモジュール1161は、受信した入力のテキスト(たとえば、STTエンジン1121-Nからの認識されたテキスト)がローカルキャッシュ1581のキャッシュエントリのテキストと一致するという決定に応じて、ローカルで要求を満たす際に、キャッシュエントリ内のテキストにマッピングされたローカルで解釈可能なセマンティック表現を利用することができる。たとえば、ローカルモジュール1161は、ラジオ1191のそれぞれを介して1つまたは複数の対応するスマートデバイス145A-Nにローカルに送信するために、ローカル制御コマンドを生成する際にローカルで解釈可能なセマンティック表現を利用することができる。任意で、本明細書で説明するように、ローカルで解釈可能なセマンティック表現がスマートデバイス制御用である場合、ローカルモジュール1161-Nは、ローカル制御コマンドを生成する際に1つまたは複数のそれぞれのアダプタ1561-Nを利用することができる。ローカルモジュール1161はまた、任意で、NLUエンジン1131によって生成された任意のローカルで解釈可能なセマンティック表現をローカルに解釈することができる。
テキスト音声変換(TTS)エンジン1171-Nは、任意で、要求に応じて提供するための合成音声を生成するために利用することができる。たとえば、TTSエンジン1171は、受信した入力のテキスト(たとえば、STTエンジン1121-Nからの認識されたテキスト)がローカルキャッシュ1581のキャッシュエントリのテキストと一致するという決定に応答して、対応する合成音声を生成し、合成音声が、受信した入力に応答してレンダリングされるようにするために、キャッシュエントリ内のテキストにマッピングされた応答テキストを利用することができる。合成音声は、セマンティック表現に基づいて実行される他のアクションに加えてレンダリングすることができ(クラウドおよび/またはローカルで解釈可能)、これもキャッシュエントリ内のテキストにマッピングされる。さらに、応答テキストは、追加的または代替的に視覚的にレンダリングすることができ、および/または代替コンテンツは、キャッシュエントリ内のテキストにマッピングされることに応答して、フルフィルメントエンジンによって追加的または代替的にレンダリングできる。
クライアントデバイス1101-Nの1つまたは複数(たとえば、すべて)はまた、任意で、上述のそれぞれのキャッシュエンジン1181-Nおよびそれぞれのローカルキャッシュ1581-Nを含むことができる。キャッシュエンジン1181-Nはそれぞれ、クラウド自動アシスタントコンポーネント120のキャッシュ生成エンジン125からそれぞれのキャッシュ要求を受信し、それぞれのキャッシュエントリをそれぞれのローカルキャッシュ1581-Nに記憶することができる。ローカルキャッシュ1581-Nは、たとえば、それぞれのクライアントデバイス1101-NのRAMおよび/またはROMに記憶することができる。本明細書で説明されるように、いくつかの実装形態では、キャッシュ生成エンジン125からの受信されたキャッシュ要求は、それぞれのローカルキャッシュ1581-Nに記憶されるキャッシュエントリ全体を含む。他の実装形態では、キャッシュ要求は、キャッシュエントリに含むためのテキストがなく、キャッシュエントリ内のセマンティック表現にマッピングする場合がある。そのような実装形態では、それぞれのキャッシュエンジン1181-Nは、クラウド自動アシスタントコンポーネント120に直近に提供されたテキスト(または、クラウド自動アシスタントコンポーネント120に直近に提供されたオーディオデータの認識されたテキスト)であることに基づいて、テキストを決定することができる。
クラウド自動アシスタントコンポーネント120は、図1の1051によって一般的に示される1つまたは複数のワイドエリアネットワーク(たとえば、インターネット)を介してクライアントデバイス1101-Nに通信可能に結合される1つまたは複数のコンピューティングシステム(まとめて「クラウド」または「リモート」アシスタントシステムと呼ばれる)に実装することができる。たとえば、クラウド自動アシスタントコンポーネント120は、高性能サーバの1つまたは複数のクラスタによって実装することができる。クライアントデバイス1101-Nは、ワイドエリアネットワーク1051にアクセスする際、および/または互いにローカルに通信する際に、1つまたは複数のローカルエリアネットワークを利用することができる点に留意されたい。そのようなローカルエリアネットワークは、クライアントデバイス1101-N間のWi-Fiネットワークおよび/またはメッシュネットワークを含むことができる。
クラウド自動アシスタントコンポーネント120はまた、1つまたは複数のワイドエリアネットワークを介してスマートデバイスシステム140A-Nと通信可能に結合することができる。クラウド自動アシスタントコンポーネント120とスマートデバイスシステム140との通信結合は、図1の1052によって一般的に示されている。さらに、スマートデバイスシステム140はそれぞれ、図1の1104によって一般的に示される1つまたは複数のワイドエリアネットワークを介して1つまたは複数のスマートデバイス145A-Nの対応するグループに通信可能に結合され得る。スマートデバイス145A-Nは、ワイドエリアネットワーク1053にアクセスする際に1つまたは複数のローカルエリアネットワークを利用することができる点に留意されたい。
スマートデバイスシステム140A-Nの各々は、第1の当事者(1P―すなわち、自動アシスタントを制御する同じ当事者によって製造および/または配布される)または第3の当事者(3P―すなわち、異なる当事者によって製造および/または配布される)システムのいずれかであり得、それぞれは、1つまたは複数の対応するスマートデバイス145A-Nと通信可能に結合することができる。たとえば、第1のスマートデバイスシステム140A-Nは、第1の3Pによって制御され、第1のスマートデバイス145A1と通信可能に結合することができ、第2のスマートデバイスシステム140は、第2の3Pによって制御され、第2のスマートデバイス145B1および第3のスマートデバイス145B2と通信可能に結合することができる、などである。
スマートデバイスシステム140A-Nは、それらのそれぞれのスマートデバイス145A-Nを制御すること、ファームウェアアップデートをそれらのそれぞれのスマートデバイス145A-Nに配信すること、それらのそれぞれのスマートデバイス145A-Nのステータスを確認することなどを行うために、ワイドエリアネットワーク1053を介してデバイス145A-Nと通信することができる。たとえば、スマートデバイスシステム140の所与の1つは、スマートデバイスの制御を可能にするスマートデバイスシステムのモバイルアプリケーションを介して受信されるユーザ入力に応答してスマートデバイスを制御するために、スマートデバイス145A-Nのうちの1つと通信することができる。
また、たとえば、スマートデバイスシステム140の所与の1つは、クラウド自動アシスタントコンポーネント120からの要求に応答してスマートデバイスを制御するために、スマートデバイス145A-Nのうちの1つと通信することができる。たとえば、いくつかの技法によれば、ユーザは、クライアントデバイス1101の1つまたは複数のI/Oコンポーネント1111を介して、I/Oコンポーネント1111のマイクを介して提供される「ソファ照明をオフにする」の音声入力などのスマートデバイスを制御する要求を提供することができる。要求(たとえば、音声入力をキャプチャするオーディオデータ、またはローカルで生成されたテキスト)は、ワイドエリアネットワーク1051を介して、クライアントデバイス1101によってクラウド自動アシスタントコンポーネント120に送信することができる。クラウド自動アシスタントコンポーネント120は、要求に基づいて制御されるスマートデバイスを決定するために要求を処理し、ワイドエリアネットワーク1052を介して、制御要求をスマートデバイスシステム140A-Nのそれぞれの1つに送信することができ、次に、ワイドエリアネットワーク1053を介して、対応するコマンドをスマートデバイスに送信する。しかしながら、本明細書に記載されるように、そのような技法は、高いレイテンシおよび/またはネットワークリソースの過度の消費などの欠点を提示する。
いくつかの実装形態では、複数のクライアントコンピューティングデバイス1101-Nおよびスマートデバイス145A-Nは、本明細書で説明する技法の実行を容易にするために、様々な方策で互いに関連付けることができる。たとえば、いくつかの実装形態では、複数のクライアントデバイス1101-Nおよびスマートデバイス145A-Nは、1つまたは複数のLANを介して、および/または1つまたは複数のピアツーピアネットワークを介して通信可能に結合されるため、互いに関連付けられ得る。これは、たとえば、複数のクライアントコンピューティングデバイス1101-Nが、家、建物などの特定のエリアまたは環境にわたって配備される場合である可能性がある。追加的または代替的に、いくつかの実装形態では、複数のクライアントデバイス1101-Nおよびスマートデバイス145A-Nは、それらが1人または複数のユーザ(たとえば、個人、家族、組織の従業員、他のあらかじめ定義されたグループなど)によって少なくとも選択的にアクセス可能なクライアントデバイス1101-Nおよびスマートデバイス145A-Nの協調エコシステムのメンバであることにより、互いに関連付けられ得る。それらの実装形態のいくつかでは、クライアントデバイス1101-Nおよびスマートデバイス1451-Nのエコシステムは、デバイストポロジ152において、手動および/または自動で互いに関連付けられ得る。
クライアントデバイス1101-Nの自動アシスタントクライアントのインスタンスは、1つまたは複数のクラウド自動アシスタントコンポーネント120との対話により、ユーザの観点から見ると、ユーザが人とコンピュータとの対話を行い得る自動アシスタントの論理インスタンスのように見えるものを形成し得る。たとえば、ユーザは、クライアントデバイス1101および自動アシスタントクライアント1171のいずれかを使用して、またはクライアントデバイス110Nおよび自動アシスタントクライアント117Nを使用して、自動アシスタントの同じ論理インスタンスに利用されることができる。自動アシスタントクライアント1171および117Nの特定のインスタンスは変化する可能性があり(たとえば、同じコマンドに異なるスマートデバイス制御を提供する)、ならびに/あるいは、異なるI/Oコンポーネント1111および111Nを介してユーザインターフェース出力を提供する、および/または異なるI/Oコンポーネント1111と111Nを介して異なるユーザインターフェース入力を受け入れることができる(たとえば、I/Oコンポーネント1111はタッチスクリーンを含むことができるが、I/Oコンポーネント111Nは含まない)が、ユーザは、依然として自動アシスタントの同じ論理インスタンスを効果的に利用され得る。簡潔さと明快さのために、本明細書で使用される「自動アシスタント」という用語は、クライアントデバイス110上で実行される自動アシスタントクライアントを指し、任意で1つまたは複数のクラウド自動アシスタントコンポーネント120(複数の自動アシスタントクライアント間で共有される場合がある)を指す。調整されたエコシステムの2つのクライアントデバイス1101および110Nが図1に示されているが、多くの追加のクライアントデバイスをエコシステムに含めることができることが理解される。さらに、クライアントデバイスの個別の調整されたエコシステムも提供され、それぞれが異なるユーザ(たとえば、アカウント)および/または環境に関連付けられ、そのような個別の調整されたエコシステムはまた、クラウド自動アシスタントコンポーネント120と対話することができる(ただし、それらの個別のエコシステムのアカウントに合わせて調整された相互作用がある場合)ことが理解される。
クライアントデバイス1101-Nは、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテイメントシステム、車載ナビゲーションシステム)、スタンドアロンのアシスタント中心型インタラクティブスピーカ、スピーカを備えたスタンドアロンのアシスタント中心型インタラクティブディスプレイ、スマートテレビなどのスマートアプライアンス、および/またはコンピューティングデバイスを含むユーザのウェアラブル機器(たとえば、コンピューティングデバイスを有するユーザの時計、コンピューティングデバイスを有するユーザの眼鏡、仮想または拡張現実コンピューティングデバイス)の1つまたは複数を含み得る。追加および/または代替のクライアントコンピューティングデバイスが提供され得る。
上述のように、クライアントデバイス1101-Nの1つまたは複数は、入力を処理する際、および/または入力に基づいて出力を生成する際に、ならびに/あるいは入力に基づいてスマートデバイス制御コマンドを生成する際に、クラウド自動アシスタントコンポーネント120と少なくとも選択的にインターフェースすることができる。クラウド自動アシスタントコンポーネント120は、STTエンジン121、NLUエンジン122、TTSエンジン123、キャッシュ生成エンジン125、および/またはクラウドフルフィルメントエンジン127を含むことができる。
上述のように、クライアントデバイス1101-Nにおける、それぞれのNLUエンジン1131-Nによって解決できない、および/またはそれぞれのローカルキャッシュ1581-Nにおいて一致するキャッシュエントリがない、受信された要求について、要求に対応するテキストおよび/またはオーディオデータをクラウド自動アシスタントコンポーネント120に送信することができる。クラウド自動アシスタントコンポーネント120は、要求のテキストを処理することに基づいてセマンティック表現を生成するために、そのより堅牢なNLUエンジン122を利用することができる。処理されたテキストは、クライアントデバイスによって送信することができ、またはクライアントデバイスによって送信されたオーディオデータを利用して、STTエンジン121によって生成された、認識されたテキストであってよい。生成されたセマンティック表現は、本明細書に記載されるように、クラウドセマンティック表現および/またはローカルで解釈可能なセマンティック表現を含むことができる。本明細書でも説明するように、セマンティック表現を生成する際に、NLUエンジン122は、クライアントデバイス1101-Nおよびスマートデバイス145A-Nのデバイストポロジ152を活用することができる。
キャッシュ生成エンジン125は、クライアントデバイス1101-Nのうちの1つからの送信に応答して、生成されたセマンティック表現を含み、任意でテキスト(またはその表現)およびテキストのセマンティック表現へのマッピングを含むキャッシュエントリを含むキャッシュ要求を生成することができる。生成されたキャッシュ要求のキャッシュエントリは、ローカルで解釈可能なセマンティック表現とともに利用される、レンダリングされる応答コンテンツ、プロトコルスイート、アダプタ、および/またはラジオ、ならびに/あるいは他のコンテンツなどの、追加および/または代替コンテンツを含むことができる。レンダリングされる応答コンテンツは、テキスト、オーディオデータ(たとえば、TTSエンジン123を使用して生成された応答テキスト用の合成音声)、および/またはグラフィックを含むことができる。キャッシュ生成エンジン125は、それぞれのローカルキャッシュ1581-Nにキャッシュエントリを記憶させるために、対応するキャッシュ要求をそれぞれのクライアントデバイス1101-Nのそれぞれのキャッシュエンジン1181-Nに送信する。
生成されたセマンティック表現がクラウドセマンティック表現を含む場合、クラウドフルフィルメントエンジン127は、対応する制御要求を生成するためにクラウドセマンティック表現を処理することができ、次いで、対応するスマートデバイスシステム140A-Nに送信する。スマートデバイスシステム140A-Nは、制御要求に応答して、対応する制御コマンドを生成し、対応するスマートデバイス145A-Nに送信することができる。
生成されたセマンティック表現がローカルで解釈可能なセマンティック表現を含む場合、それぞれのクライアントデバイス110A-Nは、対応するローカル制御コマンドを生成し、それらのローカル制御コマンドを(たとえば、それぞれのローカルモジュール116A-Nを使用して)ローカルに送信する際に、キャッシュ要求のローカルで解釈可能なセマンティック解釈を利用することができる。あるいは、クラウド自動アシスタントコンポーネント120は、別個の送信においてローカルで解釈可能なセマンティック表現を提供することができ、それぞれのクライアントデバイス110A-Nは、対応するローカル制御コマンドを生成し、それらのローカル制御コマンドを(たとえば、それぞれのローカルモジュール116A-Nを使用して)ローカルに送信する際に、別個の送信のローカルで解釈可能なセマンティック解釈を利用することができる。さらに別の代替として、クラウド自動アシスタントコンポーネント120自体がローカル制御コマンドを生成し、それらの制御コマンドをローカルに送信するために、ローカル制御コマンドをそれぞれのクライアントデバイス110A-Nに送信することができる。
やはり上記で説明したように、受信された要求について、クラウドセマンティック表現を含むそれぞれのローカルキャッシュ1581-Nにおいて、キャッシュエントリと一致するクライアントデバイス1101-Nにおいて、クラウドセマンティック表現をクラウド自動アシスタントコンポーネント120に送信することができる(たとえば、対応するテキストおよび/またはオーディオデータの代わりに)。クラウドフルフィルメントエンジン127は、対応する制御要求を生成するために、受信したクラウドセマンティック表現を処理することができ、次いで、対応するスマートデバイスシステム140A-Nに送信する。スマートデバイスシステム140A-Nは、制御要求に応答して、対応する制御コマンドを生成し、対応するスマートデバイス145A-Nに送信することができる。
次に、図1の様々なコンポーネントの追加の説明が、追加の図面を参照して提供される。図2は、複数の部屋250、252、254、256、258、260、および262を含むホームフロアプランを示している。複数のクライアントデバイス1101-3は、少なくともいくつかの部屋全体に配備される。クライアントデバイス1101-3の各々は、本開示の選択された態様で構成された自動アシスタントクライアントのインスタンスを任意で実装することができ、また、マイク、タッチスクリーンなどの1つまたは複数の入力デバイス、および/あるいはスピーカ、ディスプレイなどの1つまたは複数の出力デバイスを任意で含むことができる。たとえば、インタラクティブスタンドアロンスピーカの形態をとる第1のクライアントデバイス1101は、この例では寝室である部屋254に配備される。スタンドアロンのインタラクティブスピーカおよびディスプレイデバイス(たとえば、ディスプレイスクリーン、プロジェクタなど)の形態をとる第2のクライアントデバイス1102は、この例ではリビングルームである部屋252に配備される。同じくインタラクティブスタンドアロンスピーカの形態をとる第3のクライアントデバイス1103は、部屋256に配備される。
複数のクライアントデバイス1101-3は、部屋252に示されるワイヤレスルータ101、および/またはローカルメッシュネットワークを介して、互いにおよび/または他のリソース(たとえば、スマートデバイスおよびインターネット)と通信可能に結合され得る。さらに、他のクライアントデバイス(特に、スマートフォン、タブレット、ラップトップ、ウェアラブルデバイスなどのモバイルデバイス)も存在し得、たとえば、家にいる1人または複数の人(たとえば、ユーザ103)によって持ち運ばれる場合があり、また同じLANに接続していてもよく、していなくてもよい。図2に示されるクライアントデバイスの構成はほんの一例であり、より多数またはより少数の、および/あるいは異なるクライアントデバイスが、家以外の任意の数の他の部屋および/またはエリアにわたって配備され得ることが理解されるべきである。
複数のスマートデバイスが図2にさらに示されている。スマートデバイスは、スマート照明145A1を含む。スマート照明145A1は、第1のリモートスマートデバイスシステム140Aによって制御可能である。スマートデバイスは、第2のリモートスマートデバイスシステム140Bによって制御可能なスマート照明145B1および145B2をさらに含む。第2のリモートスマートデバイスシステム140Bは、第1のリモートスマートデバイスシステム140Aを制御する当事者とは別の部分によって制御することができる。スマートデバイスは、少なくとも第2のクライアントデバイス1102によってローカルで制御可能なスマートサーモスタット145C1をさらに含む。たとえば、スマートサーモスタット145C1は、スマートサーモスタット145C1のプロトコルスイートに準拠し、スマートサーモスタット145C1と第2のクライアントデバイス1103との間のブルートゥース(登録商標)接続を介して第2のクライアントデバイス1102によって提供される制御コマンドを介して制御され得る。図2に示されているスマートデバイス145の構成は、ほんの一例であり、より多数またはより少数および/あるいは異なるスマートデバイスが、家以外の任意の数の他の部屋および/またはエリアにわたって配備され得ることが理解されるべきである。
次に、図3A、図3B、図4A、図4B、図5A、および図5Bの様々な態様を説明する際に、図2および図2の上記の説明を利用する。
図3Aは、図2の第2のアシスタントクライアントデバイス1102において受信される「照明を少し明るくする」という発話352を、第2のアシスタントクライアントデバイス1102に発話352の認識されたテキスト352Aと一致するキャッシュエントリがない場合(認識されたテキスト352Aは、デバイス上のSTTエンジンを使用して生成される)、また、任意で、第2のアシスタントクライアントデバイス1102のローカルNLUエンジンが、認識されたテキスト352Aを有効に処理することができない場合、どのように処理することができるかの例を示している。図3Aにおいて、第2のアシスタントクライアントデバイス1102は、認識されたテキスト352Aをクラウド自動アシスタントコンポーネント120に送信する。認識されたテキスト352Aの送信は、それが発話352の認識されたテキスト352Aと一致するローカルに記憶されたキャッシュエントリがないと決定した第2のアシスタントクライアントデバイス1102に応答することができ、また任意で、認識されたテキスト352Aを有効に処理することができない第2のアシスタントクライアントデバイス1102のローカルNLUエンジンに応答することができる。
認識されたテキスト352Aの受信に応答して、クラウド自動アシスタントコンポーネント120は、認識されたテキスト352Aのクラウドセマンティック表現354を生成する。クラウドセマンティック表現354は、第2のアシスタントクライアントデバイス1102から受信されている認識されたテキストに基づいて、およびリモートに記憶されたデバイストポロジへの参照に基づいて生成することができる。クラウドセマンティック表現を生成する際に、クラウド自動アシスタントコンポーネント120は、認識されたテキスト352Aにおける「照明」を特定の照明に解決することができる。たとえば、クラウド自動アシスタントコンポーネント120は、アカウント識別子の対応するリモートに記憶されたデバイストポロジを識別するために、テキスト352Aの送信で受信されたアカウント識別子を利用することができる。さらに、クラウド自動アシスタントコンポーネント120は、デバイストポロジ内で第2のアシスタントクライアントデバイス1102を識別するために、テキスト352Aとともに受信された第2のアシスタントクライアントデバイス1102の識別子を利用することができる。さらに、クラウド自動アシスタントコンポーネント120は、テキスト352Aにおける「照明」を、デバイストポロジにおいて、第2のアシスタントクライアントデバイス1102のデフォルト照明としてマッピングされているそれらの照明に基づいて照明145B1および145B2に解決することができる。照明145B1および145B2は、以前のユーザインターフェース入力に基づいて、および/または、デバイストポロジにおける部屋252の識別子に割り当てられているそれらすべてに基づいて、第2のアシスタントクライアントデバイス1102のデフォルトとしてマッピングすることができる。
クラウドセマンティック表現を生成する際に、クラウド自動アシスタントコンポーネント120はまた、「...を少し明るくする」を、「現在の輝度強度レベルよりも2/5(たとえば、40%)明るくする」ことを意味するように解決することができる。これは、クラウド自動アシスタントコンポーネント120にアクセス可能な1つまたは複数のリモートに記憶されたモデルおよび/またはルールへの参照に基づくことができる。クラウドセマンティック表現354は、これらの解決に基づいて生成することができ、たとえば、キャッシュ要求356に示されているように、[デバイス=145B1および145B2、より明るい、相対強度2/5]とすることができ、ここで「145B1および145B2」は対応する照明の一意の識別子であり、「より明るい、相対強度2/5」は、それらの現在の強度と比較して、照明が2/5程度より明るくなることを示す。
クラウド自動アシスタントコンポーネント120は、対応する制御要求を生成するために、生成されたクラウドセマンティック表現354を利用する。クラウド自動アシスタントコンポーネント120は、照明145B1および145B2に対応するスマートデバイスシステム140Bに制御要求を送信する。それに応じて、スマートデバイスシステム140Bは、照明を「少し明るく」(すなわち、クラウドセマンティック表現によって示されるように、相対輝度を40%増加させる)させるために、対応する制御コマンドを生成し、それらの制御コマンドを照明145B1および145B2に提供することができる。
さらに、クラウド自動アシスタントコンポーネント120は、クラウドセマンティック表現354を含み、また任意で、認識されたテキスト352Aおよび/または認識されたテキストのクラウドセマンティック表現354へのマッピングを含むキャッシュ要求356を生成し、クライアントデバイス1102に送信する。キャッシュ要求356の受信に応答して、クライアントデバイス1102は、認識されたテキスト352Aの、キャッシュ要求356に含まれるクラウドセマンティック表現354へのマッピングを含む対応するキャッシュエントリを記憶する。
図3Bは、やはり第2のアシスタントクライアントデバイス1102において受信された、図3Aの同じ発話352の別のインスタンスを、クラウドセマンティック表現354(図3A)を有するキャッシュエントリが図3Aの第2のアシスタントクライアントデバイス1102に記憶された後に、異なるようにどのように処理することができるかの例を示している。
図3Bにおいて、第2のアシスタントクライアントデバイス1102は、認識されたテキストを生成するために、発話352をキャプチャするオーディオデータを処理する。さらに、第2のアシスタントクライアントデバイス1102は、認識されたテキストが、図3Aにおける第2のアシスタントクライアントデバイス1102のローカルキャッシュに記憶されたキャッシュエントリのテキストと一致すると決定する。それに応じて、第2のアシスタントクライアントデバイス1102は、一致するキャッシュエントリのクラウドセマンティック表現をクラウド自動アシスタントコンポーネント120に送信する。次いで、クラウド自動アシスタントコンポーネント120は、対応する制御要求を生成し、制御要求をスマートデバイスシステム140Bに送信するために、クラウドセマンティック表現354を直接処理することができる。それに応じて、スマートデバイスシステム140Bは、照明を「少し明るく」させるために、対応する制御コマンドを生成し、それらの制御コマンドを照明145B1および145B2に提供することができる。これらおよび他の方式で、クラウド自動アシスタントコンポーネントのリソースは、クラウドセマンティック表現の生成が再度発生するのを防ぐことによって節約することができる。さらに、制御要求をより迅速に生成および送信することができ、照明145B1および145B2への対応する変更を有効にする際のレイテンシを低減する。図3Bの制御要求(およびその結果としての制御コマンド)は、同じセマンティック表現に基づいて生成されているにもかかわらず、図3Aのものとは異なり得る。これは、相対的な状態変化であるクラウドセマンティック表現のクラウド状態変化、および制御要求を生成するときの照明145B1および145B2の「現在の」状態に基づくことができ、潜在的に図3Aと図3Bとの間で変化する。
図4Aは、図2の第1のアシスタントクライアントデバイス1102において受信された図3Aおよび図3Bの同じ発話(「照明を少し明るくする」)を、第1のアシスタントクライアントデバイス1102に発話のテキストと一致するキャッシュエントリがない場合、どのように処理することができるかの例を示す図である。図4Aにおいて、ユーザ103は、「照明を少し明るくする」という発話452を提供する。発話452は、図3Aおよび図3Bの発話352と同じ発話であるが、図4Aおよび図4Bでは、番号付けの一貫性のために452としてラベル付けされている。
図4Aにおいて、第1のアシスタントクライアントデバイス1101は、ローカルのSTTエンジンを使用して、発話452をキャプチャするオーディオデータを処理することによって生成される認識されたテキスト452Aをクラウド自動アシスタントコンポーネント120に送信する。認識されたテキスト452Aの送信は、それが発話452の認識されたテキスト452Aと一致するローカルに記憶されたキャッシュエントリがないと決定した第1のアシスタントクライアントデバイス1101に応答することができ、また任意で、認識されたテキスト452Aを有効に処理することができない第1のアシスタントクライアントデバイス1101のローカルNLUエンジンに応答することができる。
認識されたテキスト452Aの受信に応答して、クラウド自動アシスタントコンポーネント120は、認識されたテキスト452Aのクラウドセマンティック表現454を生成する。クラウドセマンティック表現454は、たとえば、キャッシュ要求456に示されているように、[デバイス=145A1、より明るい、相対強度2/5]とすることができ、ここで「145A1」は対応する照明の一意の識別子であり、「より明るい、相対強度2/5」は、それらの現在の強度と比較して、照明が2/5程度より明るくなることを示す。クラウドセマンティック表現454は、照明145B1および145B2の識別子の代わりに照明145A1の識別子を含むという点で、図3Aのクラウドセマンティック表現354とは異なる。これは、第1のアシスタントクライアントデバイス1101を識別するために、テキスト452Aとともに受信された第1のアシスタントクライアントデバイス1101の識別子を利用し、テキスト452A内の「照明」を、デバイストポロジ内で、マッピングされているその照明に基づいて、第1のアシスタントクライアントデバイス1101のデフォルト照明として照明145A1に解決する、クラウド自動アシスタントコンポーネント120に基づくことができる。したがって、図3Aおよび図4Aにおいて受信されている同じ発話にもかかわらず、異なるクラウドセマンティック表現を異なるアシスタントクライアントデバイスから受信されている発話に少なくとも部分的に基づいて生成することができる。
クラウド自動アシスタントコンポーネント120は、対応する制御要求を生成するために、生成されたクラウドセマンティック表現454を利用する。クラウド自動アシスタントコンポーネント120は、セマンティック表現454の照明145A1に対応するスマートデバイスシステム140Aに制御要求を送信する。それに応じて、スマートデバイスシステム140Aは、照明を「少し明るく」させるために、対応する制御コマンドを生成し、それらの制御コマンドを照明145A1に提供することができる。
さらに、クラウド自動アシスタントコンポーネント120は、クラウドセマンティック表現454を含み、また任意で、認識されたテキスト452Aおよび/または認識されたテキストのクラウドセマンティック表現454へのマッピングを含むキャッシュ要求456を生成し、第1のクライアントデバイス1101に送信する。キャッシュ要求456の受信に応答して、第1のクライアントデバイス1101は、認識されたテキスト452Aの、キャッシュ要求456に含まれるクラウドセマンティック表現454へのマッピングを含む対応するキャッシュエントリを記憶する。
図4Bは、第1のアシスタントクライアントデバイス1101において受信される図4Aの同じ発話452の別のインスタンスを、クラウドセマンティック表現454(図4A)を有するキャッシュエントリが図4Aの第1のアシスタントクライアントデバイス1101に記憶された後に、異なるようにどのように処理することができるかの例を示す図である。
図4Bにおいて、第1のアシスタントクライアントデバイス1101は、認識されたテキストを生成するために、発話452をキャプチャするオーディオデータを処理する。さらに、第1のアシスタントクライアントデバイス1101は、認識されたテキストが、図4Aにおける第1のアシスタントクライアントデバイス1101のローカルキャッシュに記憶されたキャッシュエントリのテキストと一致すると決定する。それに応じて、第1のアシスタントクライアントデバイス1101は、一致するキャッシュエントリのクラウドセマンティック表現454をクラウド自動アシスタントコンポーネント120に送信する。次いで、クラウド自動アシスタントコンポーネント120は、対応する制御要求を生成し、制御要求をスマートデバイスシステム140Aに送信するために、クラウドセマンティック表現454を直接処理することができる。それに応じて、スマートデバイスシステム140Aは、照明を「少し明るく」させるために、対応する制御コマンドを生成し、それらの制御コマンドを照明145A1に提供することができる。
図5Aは、図2の第2のアシスタントクライアントデバイス1102において受信された「温度を少し下げる」という別の発話552を、第2のアシスタントクライアントデバイス1102に、発話552の認識されたテキスト552A(デバイス上のSTTエンジンを使用して生成された)と一致するキャッシュエントリがない場合、また、任意で、第2のアシスタントクライアントデバイス1102のローカルNLUエンジンが認識されたテキスト452Aを有効に処理することができない場合、どのように処理することができるかの例を示している。
図5Aにおいて、第2のアシスタントクライアントデバイス1102は、認識されたテキスト552Aをクラウド自動アシスタントコンポーネント120に送信する。認識されたテキスト552Aの送信は、それが発話552の認識されたテキスト552Aと一致するローカルに記憶されたキャッシュエントリがないと決定した第2のアシスタントクライアントデバイス1102に応答することができ、また任意で、認識されたテキスト552Aを有効に処理することができない第2のアシスタントクライアントデバイス1102のローカルNLUエンジンに応答することができる。
認識されたテキスト552Aの受信に応答して、クラウド自動アシスタントコンポーネント120は、認識されたテキスト552Aのローカルで解釈可能なセマンティック表現554を生成する。いくつかの実装形態では、クラウド自動アシスタントコンポーネント120は、認識されたテキスト552A(サーモスタット145C1)によって推論的に参照されるスマートデバイスが、第2のアシスタントクライアントデバイス1102および/または第2のアシスタントクライアントデバイス1102とネットワーク通信する別のクライアントデバイスによってローカルで制御可能であるという決定に応答して、(たとえば、クラウドベースのものの代わりに、またはそれに加えて)ローカルで解釈可能なセマンティック表現554を生成する。
「温度を下げる」という要求がサーモスタット145C1に向けられたものであると決定するために、ローカルで解釈可能なセマンティック表現554を、リモートに記憶されたデバイストポロジへの参照に基づいて生成することができる。(たとえば、サポートされている状態変化として「温度を下げる」を有する、デバイストポロジ内の唯一のスマートデバイスである可能性がある)。したがって、テキスト552Aは、サーモスタット145C1を目標スマートデバイスとして推論的に参照するように解決することができる。クラウドセマンティック表現を生成する際に、クラウド自動アシスタントコンポーネント120はまた、「...を少し下げる」を「現在の設定点よりも2度低い」ことを意味するように解決することができる。これは、クラウド自動アシスタントコンポーネント120にアクセス可能な1つまたは複数のリモートに記憶されたモデルおよび/またはルールへの参照に基づくことができる。ローカルで解釈可能なセマンティック表現554は、これらの解決に基づいて生成することができ、クライアントデバイスが「現在の設定点よりも2度低い」の目標設定点をどのようにローカルに解決するかを指示する相対的な状態変化表現を含むことを可能にするようにさらに生成することができる。たとえば、相対的な状態変化表現は、「温度設定=(現在の温度-2度)」であり得る。
ローカルで解釈可能なセマンティック表現556は、任意で、対応するローカル制御コマンドを生成する際に利用されるべきアダプタ(たとえば、スマートデバイスの製造元に固有のアダプタ)の指示、ローカル制御コマンドを送信するために利用されるべきチャネル(たとえば、BluetoothまたはWi-Fi)の指示、および/または、ローカルで解釈可能なセマンティック表現556に基づいて制御コマンドを生成する際に利用されるべきプロトコルスイートの指示をさらに含むことができる。たとえば、キャッシュ要求556に示されているように、ローカルで解釈可能なセマンティック表現は[デバイス=145C1、温度設定=(現在の温度-2度)、アダプタ/チャネル=C]であり得、上式で、「145C1」はサーモスタット145C1の一意の識別子(たとえば、サーモスタット145C1のローカルアドレス)であり、「温度設定=(現在の温度-2度)」は、現在の状態変化を解決するためのローカルで解釈可能な現在の状態に依存する状態変化の表現であり、「アダプタ/チャネル=C」は、ローカル制御コマンド(たとえば、現在の状態変化を決定した後)を生成する際に利用されるべきアダプタおよび/またはプロトコルスイート、ならびに/あるいはローカル制御コマンドを送信するために利用されるべきチャネルを示す。
クラウド自動アシスタントコンポーネント120は、クラウドセマンティック表現554を含み、また任意で、認識されたテキスト552Aおよび/または認識されたテキストのクラウドセマンティック表現554へのマッピングを含むキャッシュ要求556を生成し、第2のクライアントデバイス1102に送信する。キャッシュ要求556の受信に応答して、第2のクライアントデバイス1102は、認識されたテキスト552Aの、キャッシュ要求556に含まれるクラウドセマンティック表現554へのマッピングを含む対応するキャッシュエントリを記憶する。
いくつかの実装形態では、また第2のクライアントデバイス1102とサーモスタット145C1との間の破線によって示されるように、第2のクライアントデバイス1102は、サーモスタット145C1のローカル制御コマンドをローカルに生成し、それらを図5Aの発話に応答してサーモスタット145C1にローカルに送信するために、キャッシュ要求のローカルで解釈可能な(または、クラウド自動アシスタントコンポーネント120からの別個の送信からの)セマンティック表現を利用することができる。
いくつかの代替の実装形態では、クラウド自動アシスタントコンポーネント120は、認識されたテキスト552Aに基づいて、対応するクラウドセマンティック表現を生成する。さらに、クラウド自動アシスタントコンポーネント120は、対応する制御要求を生成するために、別個のクラウドセマンティック表現を利用することができる。クラウド自動アシスタントコンポーネント120は、サーモスタット145C1に対応するスマートデバイスシステム140Cに制御要求を送信する。それに応じて、スマートデバイスシステム140Cは、その設定点を「少し低く」させる(すなわち、クラウドセマンティック表現によって示されるように2度低くする)ために、対応する制御コマンドを生成し、それらの制御コマンドをサーモスタット145C1に提供することができる。
図5Bは、第2のアシスタントクライアントデバイス1102において受信された図5Aの同じ発話552の別のインスタンスを、ローカルで解釈可能なセマンティック表現554(図5A)を有するキャッシュエントリが図5Aにおける第2のアシスタントクライアントデバイス1102に記憶された後に、異なるようにどのように処理することができるかの例を示している。
図5Bにおいて、第2のアシスタントクライアントデバイス1102は、認識されたテキストを生成するために、発話552をキャプチャするオーディオデータを処理する。さらに、第2のアシスタントクライアントデバイス1102は、認識されたテキストが、図4Aにおける第2のアシスタントクライアントデバイス1102のローカルキャッシュに記憶されたキャッシュエントリのテキストと一致すると決定する。それに応じて、第2のアシスタントクライアントデバイス1102は、キャッシュエントリのローカルで解釈可能なセマンティック表現554を識別し、対応する制御コマンドを生成するためにローカルで解釈可能なセマンティック表現554を使用する。ローカルで解釈可能なセマンティック表現554の状態表現は、現在の状態に依存する状態の表現であり、サーモスタット145C1の「現在の」温度設定点は、図5Aと図5Bとの間で変化し得るので、図5Bの生成された制御コマンドは図5Aのものとは異なり得る。たとえば、図5Bでは、第2のアシスタントクライアントデバイス1102は、ローカルで解釈可能なセマンティック表現554の相対的な状態変化によって指示されるように、現在の設定点から2度を引くことによって目標設定点を解決することができる。次に、第2のアシスタントクライアントデバイス1102は、制御コマンドを生成し、制御コマンドをローカルで解釈可能なセマンティック表現554に任意で含まれるサーモスタット145C1のアドレスに送信するために、対応するアダプタを利用して目標設定点を処理することができる。制御コマンドの受信に応答して、サーモスタット145C1はその設定点を2度下げることができる。
図6は、本明細書で開示される様々な実装形態による、アシスタントクライアントデバイスの1つまたは複数のプロセッサによって実装され得る例示的な方法600を示すフローチャートである。
ブロック602において、アシスタントクライアントデバイスは、発話の認識されたテキストを生成するために、発話をキャプチャするオーディオデータを処理する。他の実装形態では、認識されたテキストを生成するためにオーディオデータを処理する代わりに、アシスタントクライアントデバイスは、(たとえば、仮想キーボードを使用して)直接タイプ入力されたテキストに基づいて、またはハードウェアまたはソフトウェアのボタンの押下に対応することに基づいて提供されたテキスト(たとえば、「暗くする」というラベルを付けられたグラフィカルソフトウェアボタンにマッピングされている「照明を暗くする」のテキスト)を識別することができる。
ブロック604において、アシスタントクライアントデバイスは、テキストがローカルキャッシュエントリと一致するかどうかを決定する。一致する場合、クライアントデバイスはブロック606に進み、一致するローカルキャッシュエントリからのものであるセマンティック表現を選択する。次いで、ブロック608において、システムはセマンティック表現を使用する。ブロック608は、サブブロック608Aおよび/または608Bを含むことができる。サブブロック608Aで、クライアントデバイスは、ローカル制御コマンドを生成するために、ローカルで解釈可能なセマンティック表現である選択されたセマンティック表現のうちのいずれかをローカルに処理し、ローカルチャネルを介して制御コマンドを送信する。サブブロック608Bにおいて、クライアントデバイスは、クラウドセマンティック表現である、選択されたセマンティック表現のうちのいずれかをリモートシステムに送信する。たとえば、それらは、方法800(図8、以下で説明される)のブロック812および814を実行することができるリモートシステムに送信することができる。いくつかの実装形態では、ブロック606は、アシスタントクライアントデバイスがローカルキャッシュエントリに含まれる任意の応答コンテンツをレンダリングするサブブロックなどの追加のサブブロックを含むことができる。たとえば、ローカルキャッシュエントリは応答テキストを含むことができ、アシスタントクライアントデバイスは応答テキストに対してローカルTTS処理を実行し、結果として得られる合成音声を聴覚的にレンダリングすることができる。別の例として、ローカルキャッシュエントリは、追加的または代替的に、応答グラフィックを含むことができ、グラフィックは、アシスタントクライアントデバイスのディスプレイ上に視覚的にレンダリングすることができる。
ブロック604における決定がいいえである場合、アシスタントクライアントデバイスは、任意のブロック610に進み、テキストがローカルNLUで(たとえば、ローカルNLUエンジンおよびローカルモデルを使用して)解決可能かどうかを決定する。解決可能である場合、システムはブロック612に進み、セマンティック表現(ローカルで解釈可能および/またはクラウド)を生成し、次いでブロック608に進み、生成されたセマンティック表現を使用する。
ブロック610における決定がいいえである(または、604における決定がいいえであり、610が省略される)場合、クライアントデバイスはブロック614に進み、オーディオデータおよび/またはテキストをリモートアシスタントシステムに送信する。任意で、ブロック614は、ブロック604および/または610の実行前および/または実行中に発生することがあり、リモートシステムにおけるさらなる処理は、ブロック604および610のいずれかにおける「はい」の決定に応答して(たとえば、クライアントデバイスからの送信停止に応答して)任意で停止される。たとえば、ブロック614がブロック604および/または610の実行前および/または実行中に発生し、アシスタントクライアントデバイスがブロック604および/または610において「はい」の決定を行う場合、送信されたオーディオデータおよび/またはテキストに関連するリモートアシスタントシステムによる任意のさらなる処理を停止させるために、リモートアシスタントシステムに停止要求を送信することができる。これらおよび他の方式では、リモートアシスタントシステムリソースを節約するために、ブロック604および/または610での決定が「いいえ」の場合はレイテンシを削減し、決定が「はい」の場合はそのような処理の停止を可能にしながら、リモートアシスタントシステムにおける処理をより迅速に開始することができる。
ブロック616において、クライアントデバイスは、リモートアシスタントシステムから、テキストのセマンティック表現、および任意でテキスト自体(および/または、その表現)を含むキャッシュ要求を受信する。ブロック616は任意でサブブロック616Aを含み、アシスタントクライアントデバイスはキャッシュ要求(または、別個の送信)の1つまたは複数のローカルで解釈可能なセマンティック表現(ある場合)を処理するために、任意でブロック608Aに進む。別の言い方をすれば、ブロック616において、アシスタントクライアントデバイスは、現在の発話または他の現在のユーザ入力に応じて任意のローカルのスマートデバイスのアクションを有効にするために、キャッシュ要求のローカルで解釈可能なセマンティック表現に直ちに作用することができる。
ブロック618において、クライアントデバイスは、ローカルキャッシュに、およびキャッシュ要求の受信に応答して、キャッシュ要求のセマンティック表現へのテキストのマッピングを含むキャッシュエントリを記憶する。
ブロック618は、任意で、ブロック618の近くの時間に、または後で発生することがあるサブブロック618Aを含む。サブブロック618Aにおいて、クライアントデバイスは、任意で、呼出しなしのアクションのために、キャッシュエントリのテキストを割り当てる。たとえば、クライアントデバイスは、本明細書で説明されるように、テキストを「ホットフレーズ」として割り当てることができる。「ホットフレーズ」としてのテキストの割当ては、任意で、1つまたは複数の基準が満たされているかどうかの決定に基づくことができる。明示的な自動アシスタントの呼出しとは無関係に発生しているオーディオデータのデバイス上の音声認識から認識されたテキストが、ホットフレーズと一致すると決定された場合、アシスタントクライアントデバイスは、テキスト(たとえば、対応するキャッシュエントリのセマンティック表現に基づくアクション)に基づいて1つまたは複数の対応するアクションを自動的に開始することができる。
図7は、本明細書で開示される様々な実装形態による、アシスタントクライアントデバイスの1つまたは複数のプロセッサによって実装され得る別の例示的な方法700を示すフローチャートである。方法700は、図6の方法600の特定の実装形態を示しており、ここで、テキストはキャッシュエントリのテキストと一致すると決定され(すなわち、図6のブロック604における「はい」)、キャッシュエントリのセマンティック表現は、ローカルで解釈可能なセマンティック表現を含む。
ブロック702において、アシスタントクライアントデバイスは、発話の認識されたテキストを生成するために、発話をキャプチャするオーディオデータを処理する。他の実装形態では、認識されたテキストを生成するためにオーディオデータを処理する代わりに、アシスタントクライアントデバイスは、(たとえば、仮想キーボードを使用して)直接タイプ入力されたテキストに基づいて、またはハードウェアまたはソフトウェアのボタンの押下に対応することに基づいて提供されたテキスト(たとえば、「暗くする」というラベルを付けられたグラフィカルソフトウェアボタンにマッピングされている「照明を暗くする」のテキスト)を識別することができる。
ブロック704において、アシスタントクライアントデバイスは、テキストがキャッシュエントリのテキストと一致すると決定する。ブロック704は、任意で、サブブロック704Aを含み、ここで、クライアントデバイスは、テキストが(たとえば、アシスタントクライアントデバイスにおいて)呼出しのないアクションに割り当てられることを任意で決定する。たとえば、ブロック702の処理が明示的な自動アシスタントの呼出しなしに発生している場合、ブロック704Aを任意で実行することができる。さらに、そのような例では、方法700の1つまたは複数の後続のブロックは、テキストが(たとえば、クライアントデバイスにおいてローカルに)呼出しのないアクションに割り当てられていると決定された場合にのみ実行され得る。別の言い方をすれば、ブロック704Aは、ブロック702の処理が明示的な自動アシスタントの呼出しなしに発生しているときに実行することができ、テキストが呼出しなしのアクションに割り当てられていないと決定された場合、テキストに基づいて方法700のさらなるブロックを実行せずにテキストを破棄することができるが、テキストが呼出しなしのアクションに割り当てられていると決定された場合、方法700のさらなるブロックがテキストに基づいて実行される。
ブロック706において、クライアントデバイスは、それがキャッシュエントリにおいて、キャッシュエントリのテキストにマッピングされていることに基づいて、ローカルで解釈可能なセマンティック表現を選択する。
ブロック708において、クライアントデバイスは、ローカルで解釈可能なセマンティック表現の状態変化が、現在の状態に依存する状態変化であるかどうかを決定する。現在の状態に依存する状態変化ではない場合、クライアントデバイスはブロック712に進み、ローカルで解釈可能なセマンティック表現の状態変化を使用する。たとえば、状態変化が固定値を示す場合、その固定値を状態変化として利用することができる。ブロック708における決定が「はい」である場合、クライアントデバイスはブロック710に進み、現在の状態値に基づいて状態変化を解決する。たとえば、状態変化が現在の状態に依存している場合、1つまたは複数のスマートデバイスの現在の状態を識別し、次いで識別された現在の状態に基づいて状態変化を決定することによって解決することができる。たとえば、状態変化が「設定点=(現在の温度+3度)」の場合、「現在の温度」を識別することによってそれを解決することができる。
ブロック714において、クライアントデバイスは、状態変化を使用して、および任意でキャッシュエントリに基づいて識別されたアダプタを使用して、ローカル制御コマンドを生成する。
ブロック716において、クライアントデバイスは、キャッシュエントリに基づいて任意で選択されるローカルチャネルを介して(たとえば、キャッシュエントリにおいて明示的に識別されるか、キャッシュエントリにおいて識別されるプロトコルスイート、スマートデバイス、および/または無線/チャネルに基づいて選択される)ローカルコマンドを送信する。送信されたローカルコマンドは、ローカルで解釈可能なセマンティック表現において識別される、またはそこから解決できるそれらのアドレスに基づいて、スマートデバイスにアドレス指定することができる。
ブロック718において、クライアントデバイスは、キャッシュエントリ内に任意の追加の未処理のセマンティック表現があるかどうかを決定する。セマンティック表現がない場合、クライアントデバイスはブロック720に進み、方法700は終了する。セマンティック表現がある場合、クライアントデバイスはブロック722に進み、次の未処理のセマンティック表現がローカルで解釈可能であるかどうかを決定する。ローカルで解釈可能である場合、クライアントデバイスはブロック708に戻る。ローカルで解釈可能でない場合(すなわち、クラウドセマンティック表現である)、クライアントデバイスは図6の方法600のブロック608Bに進み、次いで、ブロック608Bを実行した後にブロック718に戻る。
図8は、本明細書で開示される様々な実装形態による、リモートアシスタントシステムの1つまたは複数のプロセッサによって実装され得る例示的な方法800を示すフローチャートである。
ブロック802において、システムは、アシスタントクライアントデバイスから要求を受信する。ブロック804において、システムは、要求がクラウドセマンティック表現であるかどうかを決定する。要求がクラウドセマンティック表現である場合、システムは、方法800の任意の他のブロックを実行することなく、方法800のブロック812および814(以下で説明する)を実行する。
要求がクラウドセマンティック表現ではない場合、システムはブロック808に進み、要求における発話の表現に基づいて、発話のセマンティック表現を生成する。他の実装形態では、表現は、タイプ入力された発話、またはハードウェア要素またはソフトウェアのグラフィック要素のプレスにマッピングされたテキストであり得る。
任意のブロック810において、システムは、要求に応答してアシスタントクライアントデバイスにおいてレンダリングするための確認的なコンテンツを生成する。
任意のブロック812において、システムは、要求に基づいて生成されたクラウドセマンティック表現に基づいて制御要求を生成する。任意のブロック812は任意のブロック812Aを含むことができ、ここで、セマンティック表現の状態表現が相対的な/現在の状態依存の状態表現である場合、システムはスマートデバイスの現在の状態に基づいて制御要求を生成する。
任意のブロック814において、システムは、生成された制御要求をスマートデバイスリモートシステムに送信する。
ブロック816において、システムは、セマンティック表現(ローカルで解釈可能および/またはクラウド)を含み、任意でテキストのセマンティック表現へのマッピングを含む、キャッシュ要求を生成する。
ブロック818において、システムは、キャッシュ要求をアシスタントクライアントデバイスに送信する。ブロック818は任意でサブブロック818Aを含み、ここで、システムは、キャッシュ要求のセマンティック表現がローカルで解釈可能なセマンティック表現である場合、現在の要求に応じて、ローカルで解釈可能なセマンティック表現を実装するための別の要求を任意で生成する。
図9は、本明細書で説明される技法の1つまたは複数の態様を実行するために任意で利用され得る例示的なコンピューティングデバイス910のブロック図である。コンピューティングデバイス910は、通常、バスサブシステム912を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ914を含む。これらの周辺デバイスは、たとえば、メモリサブシステム925およびファイルストレージサブシステム928を含むストレージサブシステム924、ユーザインターフェース出力デバイス920、ユーザインターフェース入力デバイス922、およびネットワークインターフェースサブシステム918を含み得る。入力および出力デバイスは、コンピューティングデバイス910とのユーザ対話を可能にする。ネットワークインターフェースサブシステム918は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
ユーザインターフェース入力デバイス922は、キーボード、マウス、トラックボール、タッチパッド、またはグラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクなどのオーディオ入力デバイス、および/あるいは他のタイプの入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス910に、または通信ネットワーク上に情報を入力するためのすべての可能なタイプのデバイスおよび方策を含むことが意図されている。
ユーザインターフェース出力デバイス920は、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または可視画像を作成するための他の何らかのメカニズムを含み得る。ディスプレイサブシステムはまた、オーディオ出力デバイスなどを介して非視覚的表示を提供し得る。一般に、「出力デバイス」という用語の使用は、すべての可能なタイプのデバイス、およびコンピューティングデバイス910からユーザあるいは別のマシンまたはコンピューティングデバイスに情報を出力する方策を含むことが意図されている。
ストレージサブシステム924は、本明細書で説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、ストレージサブシステム924は、本明細書で説明される1つまたは複数の方法の選択された態様を実行するためのロジックを含み得る。
これらのソフトウェアモジュールは、一般に、プロセッサ914のみによって、または他のプロセッサと組み合わせて実行される。ストレージサブシステム924において使用されるメモリ925は、プログラム実行中に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)930、および固定命令が記憶される読取り専用メモリ(ROM)932を含むいくつかのメモリを含むことができる。ファイルストレージサブシステム928は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、関連付けられるリムーバブルメディア、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを伴うハードディスクドライブ、フロッピーディスクドライブを含み得る。特定の実装形態の機能を実装するモジュールは、ファイルストレージサブシステム928によってストレージサブシステム924に、またはプロセッサ914によってアクセス可能な他のマシンに記憶され得る。
バスサブシステム912は、コンピューティングデバイス910の様々なコンポーネントおよびサブシステムが意図されるように互いに通信できるようにするメカニズムを提供する。バスサブシステム912は、単一のバスとして概略的に示されているが、バスサブシステムの代替の実装形態は、複数のバスを使用し得る。
コンピューティングデバイス910は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、あるいは任意の他のデータ処理システムまたはコンピューティングデバイスを含む様々なタイプのものであり得る。コンピュータおよびネットワークの絶え間なく変化する性質のため、図9に示されるコンピューティングデバイス910の説明は、いくつかの実装形態を説明するための特定の例としてのみ意図されている。コンピューティングデバイス910の他の多くの構成が可能であり、図9に示されるコンピューティングデバイスよりも多数または少数のコンポーネントを有する。
本明細書で説明する特定の実装形態が、ユーザに関する個人情報(たとえば、他の電子通信から抽出されたユーザデータ、ユーザのソーシャルネットワークに関する情報、ユーザの場所、ユーザの時間、ユーザの生体情報、ユーザのアクティビティおよび人口統計情報、ユーザ間の関係など)を収集または使用し得る状況では、ユーザは、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、ならびにユーザに関する情報がどのように収集、記憶、および使用されるかを制御するための1つまたは複数の機会が提供される。すなわち、本明細書で説明するシステムおよび方法は、関連するユーザからそうするように明示的な許可を受信したときにのみ、ユーザの個人情報を収集、記憶、および/または使用する。
いくつかの実装形態では、リモートアシスタントシステムにおいて、およびアシスタントクライアントデバイスから、アシスタントクライアントデバイスにおいてキャプチャされた発話の表現を受信するステップを含む方法が提供される。発話は、アシスタントクライアントデバイスにリンクされている1つまたは複数のスマートデバイスの1つまたは複数の状態に関連する要求である。一例として、要求は、スマートデバイスの状態を変更する(すなわち、状態を現在の状態値から新しい状態値に遷移させる)要求であり得る。発話の表現は、クライアントデバイスにローカルに記憶されている音声テキスト変換モデルを利用してクライアントデバイスにおいて生成された、発話および/または発話のテキストをキャプチャするオーディオデータを備える。本方法は、リモートシステムにおいて、および発話の表現を受信することに応答して、発話の表現に基づいて、発話のセマンティック表現を生成するステップと、発話のセマンティック表現に基づいて、1つまたは複数のスマートデバイスを制御する少なくとも1つのスマートデバイスリモートシステムに送信するために少なくとも1つの制御要求を生成するステップであって、少なくとも1つの制御要求がセマンティック表現とは異なる、ステップと、少なくとも1つのスマートデバイスリモートシステムに1つまたは複数の対応するコマンドを1つまたは複数のスマートデバイスに提供させるために、少なくとも1つの制御要求を少なくとも1つのスマートデバイスリモートシステムに送信するステップと、セマンティック表現を含むキャッシュ要求をアシスタントクライアントデバイスに送信するステップとをさらに含む。キャッシュ要求をアシスタントクライアントデバイスに送信すると、アシスタントクライアントデバイスに、アシスタントクライアントデバイスのキャッシュへ、テキストのセマンティック表現へのマッピングを含むキャッシュエントリを記憶させる。
これらおよび他の技術の実装形態は、任意で以下の機能の1つまたは複数を含むことができる。
いくつかの実装形態では、本方法は、キャッシュ要求をアシスタントクライアントデバイスに送信するステップの後、追加の発話をキャプチャする追加のオーディオデータをアシスタントクライアントデバイスにおいてキャプチャするステップと、アシスタントクライアントデバイスにローカルに記憶された音声テキスト変換モデルを使用して、追加の発話に対応する現在のテキストを生成するために追加のオーディオデータを処理するステップと、現在のテキストがキャッシュエントリのテキストと一致することを決定するステップと、現在のテキストがキャッシュエントリのテキストと一致するという決定に応答して、およびテキストのセマンティック表現へのマッピングを含むキャッシュエントリに応答して、セマンティック表現をリモートアシスタントシステムに送信するステップとをさらに含む。それらの実装形態のうちのいくつかでは、現在のテキストを生成するために追加のオーディオデータを処理するステップは、アシスタントクライアントデバイスにおける明示的な自動アシスタント呼出しの検出なしに実行される。それらの実装形態のいくつかのバージョンでは、セマンティック表現をリモートアシスタントシステムに送信するステップは、現在のテキストがアシスタントクライアントデバイスにおいて明示的な自動アシスタント呼出しがなくても、一致するテキストが作用することを可能にするための1つまたは複数の基準を満たしているという決定にさらに応答する。いくつかの追加または代替バージョンでは、本方法は、リモートアシスタントシステムにおいて、アシスタントクライアントデバイスから送信されたセマンティック表現を受信するステップと、セマンティック表現に基づいて、1つまたは複数のスマートデバイスを制御する少なくとも1つのスマートデバイスリモートシステムに送信するために少なくとも1つの代替制御要求を生成するステップであって、少なくとも1つの代替制御要求が、少なくとも1つの制御要求とは異なる、ステップと、少なくとも1つのスマートデバイスリモートシステムに1つまたは複数のスマートデバイスの1つまたは複数の状態を変更させるために、少なくとも1つの代替制御要求を少なくとも1つのスマートデバイスリモートシステムに送信するステップとをさらに含む。任意で、それらの代替または追加の実装形態では、少なくとも1つの制御要求を生成するステップは、少なくとも1つの制御要求の生成時の1つまたは複数のスマートデバイスの少なくとも1つの現在の状態にさらに基づき、少なくとも1つの代替制御要求を生成するステップは、少なくとも1つの代替制御要求の異なる生成時の1つまたは複数のスマートデバイスの少なくとも1つの代替の現在の状態にさらに基づき、少なくとも1つの代替制御要求は、少なくとも1つの代替の現在の状態とは異なる少なくとも1つの現在の状態に基づいて、少なくとも1つの制御要求とは異なる。
いくつかの実装形態では、発話のセマンティック表現を生成するステップは、アシスタントクライアントデバイスのアカウントのデバイストポロジにさらに基づき、デバイストポロジは、アシスタントクライアントデバイス、1つまたは複数のスマートデバイス、追加のアシスタントクライアントデバイス、および追加のスマートデバイスを定義する。それらの実装形態のうちのいくつかでは、デバイストポロジにさらに基づいて発話のセマンティック表現を生成するステップは、デバイストポロジに基づいて、発話のテキスト内のあいまいな用語が1つまたは複数のスマートデバイスを参照することを解決するステップを含む。
いくつかの実装形態では、セマンティック表現は、1つまたは複数の状態変化の状態変化表現と、1つまたは複数のスマートデバイスの各々について、対応する一意の識別子とを含む。それらの実装形態のいくつかのバージョンでは、状態変化表現は、絶対的な方式ではなく、相対的な方式で1つまたは複数の状態変化を定義する相対的な状態変化表現である。それらの実装形態のいくつかの追加または代替バージョンでは、本方法は、リモートアシスタントシステムまたはアシスタントクライアントデバイスにおいて、デバイストポロジへの変更を決定するステップと、デバイストポロジへの変更の決定に応じて、キャッシュエントリをアシスタントデバイスのキャッシュから消去させるステップとをさらに含む。デバイストポロジへの変更を決定するステップは、変更が、デバイストポロジにおいて、アシスタントクライアントデバイス、1つまたは複数のスマートデバイス、ならびに/あるいはアシスタントクライアントデバイスおよび/あるいは1つまたは複数のスマートデバイスに割り当てられた1つまたは複数の部屋に対して定義された1つまたは複数のプロパティに対するものであると決定するステップを任意で含み、任意で、キャッシュエントリをキャッシュから消去させるステップは、キャッシュエントリが1つまたは複数のプロパティによって影響を受けるという決定にさらに応答することができる。
いくつかの実装形態では、本方法は、リモートアシスタントシステムにおいて、および追加のアシスタントクライアントデバイスから、発話の追加の表現を受信するステップをさらに含む。発話は追加のアシスタントクライアントデバイスにおいてキャプチャされ、追加のアシスタントクライアントデバイスおよびアシスタントクライアントデバイスはどちらも共通のデバイストポロジのメンバである。それらの実装形態のいくつかでは、本方法は、リモートシステムにおいて、および発話の追加の表現を受信することに応答して、発話の表現に基づいて、発話の代替のセマンティック表現を生成するステップであって、発話の代替のセマンティック表現は、追加のアシスタントクライアントデバイスにおいてキャプチャされている追加の表現と、アシスタントクライアントデバイスにおいてキャプチャされている表現に基づくセマンティック表現とは異なる、ステップと、代替のセマンティック表現を含む追加のキャッシュ要求を追加のアシスタントクライアントデバイスに送信するステップとをさらに含む。追加のキャッシュ要求を追加のアシスタントクライアントデバイスに送信すると、追加のアシスタントクライアントデバイスは、追加のアシスタントクライアントデバイスの追加のキャッシュに、テキストの代替のセマンティック表現へのマッピングを含む追加のキャッシュエントリを記憶する。
いくつかの実装形態では、リモートアシスタントシステムにおいて、およびアシスタントクライアントデバイスから、アシスタントクライアントデバイスにおいてキャプチャされた発話の表現を受信するステップを含む方法が提供される。発話は、アシスタントクライアントデバイスにリンクされている所与のスマートデバイスの少なくとも所与の状態を変更するための要求である。発話の表現は、クライアントデバイスにローカルに記憶されている音声テキスト変換モデルを利用してクライアントデバイスにおいて生成された、発話および/または発話のテキストをキャプチャするオーディオデータを含む。本方法は、リモートシステムにおいて、および発話の表現を受信することに応答して、所与のスマートデバイスが、アシスタントクライアントデバイスによって、および/またはアシスタントクライアントデバイスへのローカル接続を有する追加のクライアントデバイスによってローカルで制御可能であることを決定するステップと、ローカルで解釈可能なセマンティック表現を含む、発話のセマンティック表現を生成するステップと、セマンティック表現を備えるキャッシュ要求をアシスタントクライアントデバイスに送信するステップとをさらに含む。ローカルで解釈可能なセマンティック表現は、所与のスマートデバイスの少なくとも所与の状態の変更を引き起こすためにローカルチャネルを介して送信可能な対応する制御コマンドを生成するために、アシスタントクライアントデバイスおよび/または追加のクライアントデバイスによってローカルで解釈可能である。少なくとも1つのスマートデバイスのローカルで解釈可能なセマンティック表現を生成するステップは、所与のスマートデバイスがローカルで制御可能であるという決定に応答して、ローカルで解釈可能なセマンティック表現をセマンティック表現に含めるステップを含む。キャッシュ要求をアシスタントクライアントデバイスに送信すると、アシスタントクライアントデバイスは、アシスタントクライアントデバイスのキャッシュに、テキストのセマンティック表現へのマッピングを含むキャッシュエントリを記憶する。
これらおよび他の技術の実装形態は、任意で以下の機能の1つまたは複数を含むことができる。
いくつかの実装形態では、本方法は、キャッシュ要求をアシスタントクライアントデバイスに送信するステップの後、追加の発話をキャプチャする追加のオーディオデータをアシスタントクライアントデバイスにおいてキャプチャするステップと、アシスタントクライアントデバイスにローカルに記憶された音声テキスト変換モデルを使用して、追加の発話に対応する現在のテキストを生成するために追加のオーディオデータを処理するステップと、現在のテキストがキャッシュエントリのテキストと一致することを決定するステップと、現在のテキストがキャッシュエントリのテキストと一致するという決定に応答して、およびテキストのセマンティック表現へのマッピングを含むキャッシュエントリに応答して、所与の制御コマンドを生成するために、アシスタントクライアントデバイスにおいて、ローカルで解釈可能なセマンティック表現を処理するステップと、所与のスマートデバイスの少なくとも所与の状態の変更を引き起こすために、ローカルチャネルを介して、所与の制御コマンドを送信するステップとをさらに含む。それらの実装形態のいくつかのバージョンでは、ローカルで解釈可能なセマンティック表現は、所与のスマートデバイスの識別子と、所与のスマートデバイスの所与の状態の対応する現在の値に対する、所与のスマートデバイスの少なくとも所与の状態の変更を定義する現在の状態に依存する状態変化表現とを含む。それらのバージョンのいくつかでは、所与の制御コマンドを生成するためにローカルで解釈可能なセマンティック表現を処理するステップは、アシスタントクライアントデバイスにおいて、所与のスマートデバイスの所与の状態の現在の値を決定するステップと、現在の値を現在の状態に依存する状態変化表現に適用することに基づいて、所与の制御コマンドを生成するステップとを含む。任意で、ローカルで解釈可能なセマンティック表現は、スマートデバイスの製造元の指示をさらに含み、所与の制御コマンドを生成するステップは、任意で、アシスタントクライアントデバイスにローカルに記憶されたアダプタを、スマートデバイスの製造元の指示に割り当てられているアダプタに応答して利用するステップを含む。任意で、本方法は、ローカルチャネルがローカルで解釈可能なセマンティック表現に直接的または間接的に示されることに基づいて、所与の制御コマンドを送信するためにローカルチャネルを選択するステップをさらに含む。たとえば、ローカルで解釈可能なセマンティック表現に含まれるスマートデバイスの製造元の指示に割り当てられている、および/またはローカルで解釈可能なセマンティック表現に含まれるプロトコルスイートに割り当てられているローカルチャネルに基づく。
いくつかの実装形態では、現在のテキストを生成するために追加のオーディオデータを処理するステップは、アシスタントクライアントデバイスにおける明示的な自動アシスタント呼出しの検出なしに実行される。それらの実装形態のうちのいくつかでは、所与の制御コマンドを送信するステップは、現在のテキストがアシスタントクライアントデバイスにおいて明示的な自動アシスタント呼出しがなくても、一致するテキストが作用することを可能にするための1つまたは複数の基準を満たしているという決定にさらに応答する。
いくつかの実装形態では、発話のセマンティック表現を生成するステップは、アシスタントクライアントデバイスのアカウントのデバイストポロジにさらに基づく。デバイストポロジは、アシスタントクライアントデバイス、所与のスマートデバイス、追加のアシスタントクライアントデバイス、および追加のスマートデバイスを定義する。それらの実装形態のうちのいくつかでは、発話のセマンティック表現を生成するステップは、発話のテキスト内のあいまいな用語が所与のスマートデバイスを参照することを解決するステップを含む。
いくつかの実装形態では、本方法は、リモートアシスタントシステムまたはアシスタントクライアントデバイスにおいて、デバイストポロジへの変更を決定するステップと、デバイストポロジへの変更の決定に応じて、キャッシュエントリをアシスタントクライアントデバイスのキャッシュから消去するステップとをさらに含む。それらの実装形態のうちのいくつかでは、デバイストポロジへの変更を決定するステップは、変更が、デバイストポロジにおいて、アシスタントクライアントデバイス、所与のスマートデバイス、ならびに/あるいはアシスタントクライアントデバイスおよび/あるいは所与のスマートデバイスに割り当てられた1つまたは複数の部屋に対して定義された1つまたは複数のプロパティに対するものであると決定するステップを含み、キャッシュエントリをキャッシュから消去させるステップは、キャッシュエントリが1つまたは複数のプロパティによって影響を受けるという決定にさらに応答する。
いくつかの実装形態では、クライアントデバイス上のキャッシュに、テキストのセマンティック表現へのマッピングを含むキャッシュエントリを記憶するステップを含む方法が提供される。セマンティック表現は、クライアントデバイスによってローカルで解釈可能なローカルで解釈可能なセマンティック表現を含む。本方法は、クライアントデバイスにおいて、発話をキャプチャする追加のオーディオデータをキャプチャするステップをさらに含む。本方法は、クライアントデバイスにローカルに記憶された音声テキスト変換モデルを使用して、発話に対応する現在のテキストを生成するために追加のオーディオデータを処理するステップをさらに含む。本方法は、現在のテキストがキャッシュエントリのテキストと一致することを決定するステップをさらに含む。本方法は、現在のテキストがキャッシュエントリのテキストと一致するという決定に応答して、およびテキストのセマンティック表現へのマッピングを含むキャッシュエントリに応答して、所与の制御コマンドを生成するために、クライアントデバイスにおいて、ローカルで解釈可能なセマンティック表現を処理するステップと、所与のスマートデバイスの少なくとも所与の状態の変更を引き起こすために、ローカルチャネルを介して、所与の制御コマンドを送信するステップとをさらに含む。