スマートフォン、タブレットコンピュータ、車両コンピューティングシステム、ウェアラブルコンピューティングデバイス、スマートテレビジョン、双方向型スタンドアロンスピーカー(たとえば、ディスプレイのある、またはない)、サウンドスピーカー、家庭用警報器、扉の錠、カメラ、照明システム、トレッドミル、サーモスタット、体重計、スマートベッド、散水システム、車庫開扉器、家電機器、ベビーモニタ、火災報知器、水分計などの、スマートマルチセンシングネットワーク接続デバイス(アシスタントデバイスとも本明細書では呼ばれる)が急増している。しばしば、複数のアシスタントデバイスが、自宅などの構造物の境界内に位置し、または、ユーザの本邸およびユーザの別邸、ユーザの車両、ならびに/もしくはユーザの職場などの、多様な関連する構造内に位置する。
さらに、自動化アシスタントの論理インスタンスを形成できる自動化アシスタントクライアントを各々含むアシスタントデバイス(アシスタント入力デバイスとも本明細書で呼ばれる)が急増している。これらのアシスタント入力デバイスは、アシスタント機能に専用であってもよく(たとえば、アシスタントクライアントおよび関連するインターフェースのみを含み、アシスタント機能に専用の、双方向型スタンドアロンスピーカーおよび/またはスタンドアロンオーディオ/ビジュアルデバイス)、または、他の機能に加えてアシスタント機能を実行することができる(たとえば、多様なアプリケーションの1つとしてアシスタントクライアントを含む携帯電話またはタブレット)。その上、一部のIoTデバイスもアシスタント入力デバイスであり得る。たとえば、一部のIoTデバイスは、自動化アシスタントクライアントと、自動化アシスタントクライアントのアシスタントインターフェースのためのユーザインターフェース出力および/または入力デバイスとして(少なくとも一部)役割を果たす少なくともスピーカーおよび/またはマイクロフォンとを含み得る。一部のアシスタントデバイスは、自動化アシスタントクライアントを実装せず、または、ユーザとインターフェースするための手段(たとえば、スピーカーおよび/またはマイクロフォン)を有しないことがあるが、それらはそれでも、自動化アシスタントによって制御され得る(本明細書ではアシスタント非入力デバイスとも呼ばれる)。たとえば、スマート電球は、自動化アシスタントクライアント、スピーカー、および/またはマイクロフォンを含まないことがあるが、スマート照明の機能を制御する(たとえば、照明をつける/消す、減光する、色を変更するなど)ために、自動化アシスタントを介して、コマンドおよび/または要求をスマート電球に送信することができる。
アシスタントデバイスのエコシステム内のアシスタントデバイス(アシスタント入力デバイスとアシスタント非入力デバイスの両方を含む)を標識および/またはグループ化するための、様々な技法が提案されている。たとえば、新しいアシスタントデバイスをエコシステムに追加すると、エコシステムに関連するユーザは、エコシステムのデバイストポロジー表現において、標識(または固有の識別子)を新しいアシスタントデバイスに手動で割り当て、かつ/または、ソフトウェアアプリケーションを介して(たとえば、自動化アシスタントアプリケーション、エコシステムに関連するソフトウェアアプリケーション、新しいアシスタントデバイスに関連するソフトウェアアプリケーションなどを介して)エコシステムの中のアシスタントデバイスのグループに新しいアシスタントデバイスを手動で追加することができる。本明細書において説明されるように、アシスタントデバイスに元々割り当てられていた標識が、ユーザにより忘れられることがあり、または、アシスタントデバイスがどのように利用されるかということについて、もしくはアシスタントデバイスがエコシステム内のどこに位置するかということについて、セマンティクス上有意義ではないことがある。さらに、アシスタントデバイスがエコシステム内で移動する場合、ユーザは、ソフトウェアアプリケーションを介して、アシスタントデバイスに割り当てられる標識を手動で変更し、かつ/または、アシスタントデバイスが割り当てられるグループを手動で変更することを求められることがある。そうではない場合、アシスタントデバイスに割り当てられる標識および/またはアシスタントデバイスが割り当てられるグループは、アシスタントデバイスの位置もしくは使用を正確に反映しないことがあり、かつ/またはアシスタントデバイスに対してセマンティクス上有意義ではないことがある。たとえば、「居間のスピーカー」と標識されたスマートスピーカーがユーザの本邸の居間に位置するが、スマートスピーカーがユーザの本邸の台所に移動する場合、標識がアシスタントデバイスの位置を表していなくても、ユーザがユーザの本邸のエコシステムのためのデバイストポロジー表現において標識を手動で変更しない限り、スマートスピーカーは依然として「居間のスピーカー」として標識され得る。
デバイストポロジー表現は、それぞれのアシスタントデバイスと関連付けられる標識(または固有の識別子)を含み得る。さらに、デバイストポロジー表現は、それぞれのアシスタントデバイスと関連付けられる標識(または固有の識別子)を指定することができる。所与のアシスタントデバイスに対するデバイス属性は、たとえば、それぞれのアシスタントデバイスによってサポートされる1つまたは複数の入力および/または出力様式を示すことができる。たとえば、スタンドアロンスピーカーのみのアシスタントクライアントデバイスに対するデバイス属性は、それが聴覚的な出力を提供することは可能であるが視覚的な出力を提供することは不可能であることを示すことができる。所与のアシスタントデバイスに対するデバイス属性は、追加または代替として、たとえば、所与のアシスタントデバイスの制御できる1つもしくは複数の状態を特定し、アシスタントデバイスのファームウェアを製造し、配布し、かつ/もしくは作成する当事者(たとえば、ファーストパーティ(1P)またはサードパーティ(3P))を特定し、かつ/または、1Pもしくは3Pにより提供される不変の識別子などの所与のアシスタントデバイスに対する固有の識別子、もしくはユーザによって所与のアシスタントデバイスに割り当てられる標識を特定することができる。本明細書において開示される様々な実装形態によれば、デバイストポロジー表現は任意選択でさらに、どのスマートデバイスがどのアシスタントデバイスによってローカルで制御され得るか、ローカルに制御可能なアシスタントデバイスのローカルアドレス(またはそれらのアシスタントデバイスを直接ローカルに制御することができるハブのローカルアドレス)、ローカル信号強度、および/またはそれぞれのアシスタントデバイスの間の他の優先インジケータを指定することができる。さらに、本明細書において開示される様々な実装形態によれば、デバイストポロジー表現(またはその変形)は、アシスタントデバイスをローカルで制御する際に、および/またはそれに標識をローカルで割り当てる際に利用するために、複数のアシスタントデバイスの各々にローカルで記憶され得る。その上、デバイストポロジー表現は、様々なレベルの粒度で定義され得るそれぞれのアシスタントデバイスと関連付けられるグループを指定することができる。たとえば、ユーザの本邸の居間の複数のスマート照明が、「居間の照明」グループに属すると考えられ得る。さらに、本邸の居間がスマートスピーカーも含む場合、居間に位置するアシスタントデバイスのすべてが、「居間のアシスタントデバイス」グループに属すると考えられ得る。
自動化アシスタントは、アシスタントデバイスの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を見ると、本明細書において開示される技法が実装され得る例示的な環境が示される。例示的な環境は、複数のアシスタント入力デバイス1061-N(単に「アシスタント入力デバイス106」とも本明細書では呼ばれる)、1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119、1つまたは複数のアシスタント非入力システム180、1つまたは複数のアシスタント非入力デバイス1851-N(単に「アシスタント非入力デバイス185」とも本明細書では呼ばれる)、デバイス活動データベース191、機械学習(「ML」)モデルデータベース、およびデバイストポロジーデータベース193を含む。図1のアシスタント入力デバイス106およびアシスタント非入力デバイス185は、本明細書では集合的に「アシスタントデバイス」とも呼ばれることがある。
アシスタント入力デバイス106の1つまたは複数(たとえば、すべて)が、それぞれの自動化アシスタントクライアント1181-Nのそれぞれのインスタンスを実行することができる。しかしながら、いくつかの実装形態では、アシスタント入力デバイス106の1つまたは複数は任意選択で、それぞれの自動化アシスタントクライアント1181-Nのインスタンスを欠いていてもよく、それでも、自動化アシスタントに向けられるユーザ入力を受け取って処理するためのエンジンおよびハードウェアコンポーネント(たとえば、マイクロフォン、スピーカー、発話認識エンジン、自然言語処理エンジン、発話合成エンジンなど)を含んでもよい。自動化アシスタントクライアント1181-Nのインスタンスは、それぞれのアシスタント入力デバイス106のオペレーティングシステムとは別のアプリケーション(たとえば、オペレーティングの「上に」インストールされる)であってもよく、または代替として、それぞれのアシスタント入力デバイス106のオペレーティングシステムによって直接実装されてもよい。以下でさらに説明されるように、自動化アシスタントクライアント1181-Nの各インスタンスは任意選択で、それぞれのアシスタント入力デバイス106のいずれか1つのそれぞれのユーザインターフェースコンポーネント1071-Nによって提供される様々な要求に応答する際に、1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119と対話することができる。さらに、以下でも説明されるように、アシスタント入力デバイス106の他のエンジンは任意選択で、クラウドベースの自動化アシスタントコンポーネント119の1つまたは複数と対話することができる。
1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119は、1つまたは複数のローカルエリアネットワーク(Wi-Fi LAN、Bluetoothネットワーク、近距離通信ネットワーク、メッシュネットワークなどを含む「LAN」)および/またはワイドエリアネットワーク(インターネットなどを含む「WAN」)を介してそれぞれのアシスタント入力デバイス106に通信可能に結合される、1つまたは複数のコンピューティングシステム(たとえば、「クラウド」または「リモート」コンピューティングシステムと集合的に呼ばれるサーバ)上で実装され得る。アシスタント入力デバイス106とのクラウドベースの自動化アシスタントコンポーネント119の通信結合は、図1の1101によって全般に示される。また、いくつかの実施形態では、アシスタント入力デバイス106は、図1の1102によって全般に示される、1つまたは複数のネットワーク(たとえば、LANおよび/またはWAN)を介して互いに通信可能に結合され得る。
1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119はまた、1つまたは複数のネットワーク(たとえば、LANおよび/またはWAN)を介して1つまたは複数のアシスタント非入力システム180と通信可能に結合され得る。アシスタント非入力システム180とのクラウドベースの自動化アシスタントコンポーネント119の通信結合は、図1の1103によって全般に示される。さらに、アシスタント非入力システム180は各々、1つまたは複数のネットワーク(たとえば、LANおよび/またはWAN)を介してアシスタント非入力デバイス185の1つまたは複数(たとえば、グループ)に通信可能に結合され得る。たとえば、第1のアシスタント非入力システム180は、アシスタント非入力デバイス185の1つまたは複数の第1のグループと通信可能に結合され、それらからデータを受信することができ、第2のアシスタント非入力システム180は、アシスタント非入力デバイス185の1つまたは複数の第2のグループと通信可能に結合され、それらからデータを受信することができ、以下同様である。アシスタント非入力デバイス185とのアシスタント非入力システム180の通信結合は、図1の1104によって全般に示される。
自動化アシスタントクライアント118のインスタンスは、クラウドベースの自動化アシスタントコンポーネント119の1つまたは複数とのその対話によって、ユーザから見ると、ユーザが人対コンピュータの対話に関わり得る際に用いる自動化アシスタント120の論理インスタンスであるように見えるものを形成し得る。そのような自動化アシスタントの2つのインスタンスが図1に示されている。破線で囲まれる第1の自動化アシスタント120Aは、アシスタント入力デバイス1061の自動化アシスタントクライアント1181、および1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119を含む。dash-dash-dot線で囲まれる第2の自動化アシスタント120Bは、アシスタント入力デバイス106Nの自動化アシスタントクライアント118Nおよび1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119を含む。したがって、アシスタント入力デバイス106の1つまたは複数で実行される自動化アシスタントクライアント118と関わる各ユーザは、実質的に、自動化アシスタント120のユーザ固有の論理インスタンス(または、家庭もしくはユーザの他のグループの間で共有される自動化アシスタント120の論理インスタンス)と関わり得ることを理解されたい。簡潔で簡単にするために、本明細書で使用される「自動化アシスタント」という用語は、アシスタント入力デバイス106のそれぞれ1つで実行される自動化アシスタントクライアント118と、クラウドベースの自動化アシスタントコンポーネント119(多様な自動化アシスタントクライアント118の間で共有され得る)の1つまたは複数との組合せを指す。複数のアシスタント入力デバイス106のみが図1に示されているが、クラウドベースの自動化アシスタントコンポーネント119は追加で、アシスタント入力デバイスの多くの追加のグループにサービスできることが理解される。
アシスタント入力デバイス106は、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、携帯電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車載通信システム、車載娯楽システム、車載ナビゲーションシステム)、双方向型スタンドアロンスピーカー(たとえば、ディスプレイを伴う、または伴わない)、スマートテレビジョンなどのスマートアプライアンス、コンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザの眼鏡、仮想現実または拡張現実コンピューティングデバイス)、および/または自動化アシスタント120に向けられるユーザ入力を受け取ることが可能な任意のIoTデバイスのうちの1つまたは複数を含み得る。追加および/または代替のアシスタント入力デバイスが提供され得る。アシスタント非入力デバイス185は、アシスタント入力デバイス106と同じデバイスの多くを含み得るが、自動化アシスタント120に向けられたユーザ入力を受け取ることが可能ではない(たとえば、ユーザインターフェース入力コンポーネントを含まない)。アシスタント非入力デバイス185は、自動化アシスタント120に向けられたユーザ入力を受け取らないが、アシスタント非入力デバイス185はそれでも自動化アシスタント120によって制御され得る。
いくつかの実装形態では、複数のアシスタント入力デバイス106およびアシスタント非入力デバイス185は、本明細書において説明される技法の実行を容易にするための様々な方法で互いに関連付けられ得る。たとえば、いくつかの実装形態では、複数のアシスタント入力デバイス106およびアシスタント非入力デバイス185は、1つまたは複数のネットワークを介して(たとえば、図1のネットワーク110を介して)通信可能に結合されることにより互いに関連付けられ得る。これは、たとえば、複数のアシスタント入力デバイス106およびアシスタント非入力デバイス185が、自宅、建物などの特定のエリアまたは環境にわたって配備されている場合に当てはまり得る。追加または代替として、いくつかの実装形態では、複数のアシスタント入力デバイス106およびアシスタント非入力デバイス185は、1名または複数のユーザ(たとえば、個人、家族、組織の従業員、他のあらかじめ定められたグループなど)によって少なくとも選択的にアクセス可能な協調したエコシステムのメンバーであることにより、互いに関連付けられ得る。それらの実装形態のいくつかでは、複数のアシスタント入力デバイス106およびアシスタント非入力デバイス185のエコシステムは、デバイストポロジーデータベース193に記憶されたエコシステムのデバイストポロジー表現において互いに手動および/または自動で関連付けられ得る。
アシスタント非入力システム180は、1つまたは複数のファーストパーティ(1P)システムおよび/または1つまたは複数のサードパーティ(3P)システムを含み得る。1Pシステムは、本明細書において言及されている自動化アシスタント120を制御する当事者と同じである当事者により制御されるシステムを指す。3Pシステムは、本明細書において使用される場合、本明細書において言及されている自動化アシスタント120を制御する当事者とは別の当事者により制御されるシステムを指す。
アシスタント非入力システム180は、アシスタント非入力デバイス185および/またはそれに(たとえば、図1のネットワーク110を介して)通信可能に結合される1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119からデータを受信し、アシスタント非入力デバイス185および/または1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119にデータ(たとえば、状態、状態変化、および/または他のデータ)を選択的に送信することができる。たとえば、アシスタント非入力デバイス1851はスマート呼び鈴IoTデバイスであると仮定する。個人が呼び鈴IoTデバイスのボタンを押したことに応答して、呼び鈴IoTデバイスは、アシスタント非入力システム180の1つ(たとえば、1Pシステムまたは3Pシステムであり得る呼び鈴の製造業者によって管理されるアシスタント非入力システムの1つ)に対応するデータを送信することができる。アシスタント非入力システム180の1つは、そのようなデータに基づいて呼び鈴IoTデバイスの状態の変化を決定することができる。たとえば、アシスタント非入力システム180の1つは、非アクティブ状態(たとえば、直近のボタンの押下なし)からアクティブ状態(直近のボタンの押下)への呼び鈴の変化を決定することができ、呼び鈴状態の変化は、1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119および/またはアシスタント入力デバイス106の1つまたは複数に(たとえば、図1のネットワーク110を介して)送信され得る。特に、ユーザ入力はアシスタント非入力デバイス1851において受け取られる(たとえば、呼び鈴のボタンの押下)が、ユーザ入力は自動化アシスタント120に向けられない(したがって、「アシスタント非入力デバイス」という用語である)。別の例として、アシスタント非入力デバイス1851は、マイクロフォンを有するスマートサーモスタットIoTデバイスであるが、スマートサーモスタットは自動化アシスタントクライアント118を含まないと仮定する。個人は、スマートサーモスタットを操作して(たとえば、タッチ入力または話される入力を使用して)、温度を変更し、スマートサーモスタットを介してHVACシステムを制御するための設定点として特定の値を設定することなどができる。しかしながら、スマートサーモスタットが自動化アシスタントクライアント118を含まない限り、個人はスマートサーモスタットを介して自動化アシスタント120と直接意思疎通することができない。
様々な実装形態において、1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119はさらに、様々なエンジンを含み得る。たとえば、図1に示されるように、1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119はさらに、イベント検出エンジン130、デバイス特定エンジン140、イベント処理エンジン150、セマンティック標識エンジン160、およびクエリ/コマンド処理エンジン170を含み得る。これらの様々なエンジンは、図1の1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119として示されているが、それは例示のためであり、限定することは意図されないことを理解されたい。たとえば、アシスタント入力デバイス106および/またはアシスタント非入力デバイス185は、これらの様々なエンジンの1つまたは複数を含み得る。別の例として、これらの様々なエンジンは、アシスタント入力デバイス106にわたって分散していてもよく、アシスタント非入力デバイス185は、これらの様々なエンジン、および/または1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119の1つまたは複数を含んでもよい。
いくつかの実装形態では、イベント検出エンジン130は、エコシステムにおいて発生する様々なイベントを検出することができる。それらの実装形態のいくつかのバージョンでは、イベント検出エンジン130は、アシスタント入力デバイス106の所与の1つおよび/またはアシスタント非入力デバイス185の所与の1つ(たとえば、アシスタントデバイスの所与の1つ)がいつ新しくエコシステムに追加されるか、またはエコシステム内でいつ移動するかを検出することができる。たとえば、イベント検出エンジン130は、ネットワーク110を介して検出される1つまたは複数のワイヤレス信号に基づいて、およびデバイス特定エンジン140を介して、アシスタントデバイスの所与の1つがいつエコシステムに新しく追加されるかを決定することができる。たとえば、アシスタントデバイスの所与の1つがネットワーク110の1つまたは複数に新しく接続されるとき、アシスタントデバイスの所与の1つは、それがネットワーク110に新しく追加されることを示す信号をブロードキャストすることができる。別の例として、イベント検出エンジン130は、ネットワーク110を介して検出される1つまたは複数のワイヤレス信号に基づいて、アシスタントデバイスの所与の1つがエコシステム内でいつ移動したかを決定することができる。これらの例では、デバイス特定エンジン140は、信号を処理して、アシスタントデバイスの所与の1つがネットワーク110に新しく追加されると決定し、かつ/または、アシスタントデバイスの所与の1つがエコシステム内で移動したと決定することができる。デバイス特定エンジン140によって検出される1つまたは複数のワイヤレス信号は、たとえば、人が知覚できず、アシスタントデバイスの所与の1つおよび/またはアシスタントデバイスの所与の1つに位置的に近い他のアシスタントデバイスのそれぞれの固有の識別子を任意選択で含む、ネットワーク信号および/または音響信号であり得る。たとえば、アシスタントデバイスの所与の1つがエコシステム内で移動するとき、デバイス特定エンジン140は、アシスタントデバイスの所与の1つに位置的に近い他のアシスタントデバイスによって送信されている1つまたは複数のワイヤレス信号を検出することができる。これらの信号を処理して、アシスタントデバイスの所与の1つに位置的に近い1つまたは複数の他のアシスタントデバイスが、アシスタントデバイスの所与の1つに以前は位置的に近かった1つまたは複数のアシスタントデバイスと異なると決定することができる。
それらの実装形態のいくつかのさらなるバージョンでは、自動化アシスタント120は、エコシステムに新しく追加される、またはエコシステム内で移動したアシスタントデバイスの所与の1つが、(たとえば、デバイストポロジーデータベース193に記憶されているエコシステムのデバイストポロジー表現において)アシスタントデバイスのグループに割り当てられるようにすることができる。たとえば、アシスタントデバイスの所与の1つがエコシステムに新しく追加される実装形態では、アシスタントデバイスの所与の1つはアシスタントデバイスの既存のグループに追加されてもよく、またはアシスタントデバイスの所与の1つを含むアシスタントデバイスの新しいグループが作成されてもよい。たとえば、アシスタントデバイスの所与の1つが、「台所」グループに属する複数のアシスタントデバイス(たとえば、スマートオーブン、スマートコーヒーメーカー、台所に位置していることを示す固有の識別子もしくは標識と関連付けられる双方向型スタンドアロンスピーカー、および/または他のアシスタントデバイス)に位置的に近い場合、アシスタントデバイスの所与の1つが「台所」グループに追加されてもよく、または新しいグループが作成されてもよい。別の例として、アシスタントデバイスの所与の1つがエコシステム内で移動する実装形態では、アシスタントデバイスの所与の1つがアシスタントデバイスの既存のグループに追加されてもよく、またはアシスタントデバイスの所与の1つを含むアシスタントデバイスの新しいグループが作成されてもよい。たとえば、アシスタントデバイスの所与の1つが、前述の「台所」グループに属する複数のアシスタントデバイスに位置的に近かったが、今では「車庫」グループに属する複数のアシスタントデバイス(たとえば、スマート車庫扉、スマート扉錠、および/または他のアシスタントデバイス)に位置的に近い場合、アシスタントデバイスの所与の1つは「台所」グループから削除され、「車庫」グループに追加され得る。
それらの実装形態のいくつかの追加または代替のバージョンでは、イベント検出エンジン130は、音響イベントの発生を検出することができる。音響イベントの発生は、アシスタント入力デバイス106の1つまたは複数および/またはアシスタント非入力デバイス185の1つまたは複数(たとえば、アシスタントデバイスの1つまたは複数)において受信されるオーディオデータに基づいて検出され得る。アシスタントデバイスの1つまたは複数において受信されるオーディオデータは、MLモデルデータベース192に記憶されているイベント検出モデルによって処理され得る。これらの実装形態では、音響イベントの発生を検出する1つまたは複数のアシスタントデバイスの各々は、それぞれのマイクロフォンを含む。
それらの実装形態のいくつかのさらなるバージョンでは、音響イベントの発生は、アシスタントデバイスの1つまたは複数においてオーディオデータに捉えられる周辺雑音を含み得る(および任意選択で、アシスタントデバイスの1つまたは複数において発話受け入れがアクティブであるときに検出される周辺雑音の発生のみを含み得る)。1つまたは複数のアシスタントデバイスの各々において検出される周辺雑音は、デバイス活動データベース191に記憶され得る。これらの実装形態では、イベント処理エンジン150は、周辺雑音検出モデルを使用して周辺雑音を処理する際に生成される尺度に基づいて周辺雑音を複数の異種のセマンティックカテゴリの1つまたは複数へと分類するように訓練される周辺雑音検出モデル(たとえば、MLモデルデータベース192に記憶されている)を使用して、1つまたは複数のアシスタントデバイスにおいて検出される周辺雑音を処理することができる。複数の異種のカテゴリは、たとえば、映画もしくはテレビの音のカテゴリ、料理の音のカテゴリ、音楽の音のカテゴリ、車庫もしくは作業場の音のカテゴリ、中庭の音のカテゴリ、および/またはセマンティック上意味のある他の異種の音のカテゴリを含み得る。たとえば、周辺雑音検出モデルを使用して処理された周辺雑音が、電子レンジの鳴動、フライパンで焼かれる食べ物、食べ物を処理するフードプロセッサなどに対応する音を含むと、イベント処理エンジン150が決定する場合、イベント処理エンジン150は、周辺雑音を料理の音のカテゴリへと分類することができる。別の例として、周辺雑音検出モデルを使用して処理された周辺雑音が、電動丸鋸の作動、金槌を打つことなどに対応する音を含むと、イベント処理エンジン150が決定する場合、イベント処理エンジン150は、周辺雑音を車庫または作業場カテゴリへと分類することができる。特定のデバイスにおいて検出される周辺雑音の分類はまた、アシスタントデバイスに対するセマンティック標識(たとえば、セマンティック標識エンジン160に関して説明される)を推測する際に利用されるデバイス固有信号としても利用され得る。
それらのさらなる実装形態のいくつかの追加または代替のバージョンでは、音響イベントの発生は、アシスタントデバイスの1つまたは複数において検出されるホットワードまたは特定の音を含み得る。これらの実装形態では、イベント処理エンジン150は、ホットワード検出モデルを使用してオーディオデータを処理する際に生成される尺度に基づいて自動化アシスタント120を呼び出す特定の語または語句をオーディオデータが含むかどうかを決定するように訓練されるホットワード検出モデルを使用して、1つまたは複数のアシスタントデバイスにおいて検出されるオーディオデータを処理することができる。たとえば、イベント処理エンジン150は、オーディオデータを処理して、「アシスタント」、「ヘイアシスタント」、「OKアシスタント」、および/または自動化アシスタントを呼び出す任意の他の語もしくは語句を含むユーザの発話をオーディオデータが捉えるかどうかを決定することができる。さらに、ホットワード検出モデルを使用して生成される尺度は、自動化アシスタント120を呼び出す語または語句をオーディオデータが含むかどうかを示すそれぞれの信頼性レベルまたは確率を含み得る。これらの実装形態のいくつかのバージョンでは、イベント処理エンジン150は、尺度が閾値を満たす場合、オーディオデータが語または語句を捉えると決定することができる。たとえば、イベント処理エンジン150が、自動化アシスタント120を呼び出す語または語句を捉えるオーディオデータと関連付けられる0.70という尺度を生成し、閾値が0.65である場合、イベント処理エンジン150は、自動化アシスタント120を呼び出す語または語句をオーディオデータが捉えると決定し得る。
これらの実装形態では、イベント処理エンジン150は、追加または代替として、音検出モデルを使用してオーディオデータを処理する際に生成される尺度に基づいてオーディオデータが特定の音を含むかどうかを決定するように訓練される音検出モデルを使用して、1つまたは複数のアシスタントデバイスにおいて検出されるオーディオデータを処理することができる。特定の音は、たとえば、ガラスが割れること、犬が吠えること、または猫が鳴くこと、呼び鈴が鳴ること、火災報知器が鳴動すること、一酸化炭素検出器が鳴動することを含み得る。たとえば、イベント処理エンジン150は、オーディオデータを処理して、これらの特定の音のいずれかをオーディオデータが捉えるかどうかを決定することができる。この例では、単一の音検出モデルが、複数の特定の音がオーディオデータにおいて捉えられるかどうかを決定するように訓練されてもよく、または、複数の音検出モデルが、所与の特定の音がオーディオデータにおいて捉えられるかどうかを決定するために訓練されてもよい。さらに、音検出モデルを使用して生成される尺度は、オーディオデータが特定の音を含むかどうかを示すそれぞれの信頼性レベルまたは確率を含み得る。これらの実装形態のいくつかのバージョンでは、イベント処理エンジン150は、尺度が閾値を満たす場合、オーディオデータが特定の音を捉えると決定することができる。たとえば、イベント処理エンジン150が、ガラスが割れる音を捉えるオーディオデータと関連付けられる0.70という尺度を生成し、閾値が0.65である場合、イベント処理エンジン150は、ガラスが割れる音をオーディオデータが捉えると決定し得る。
様々な実装形態において、音響イベントの発生は、エコシステムの中の多様なアシスタントデバイスによって捉えられ得る。たとえば、環境の中の多様なアシスタントデバイスが、時間的に対応するオーディオデータ(たとえば、同じ時間に、または閾値の長さの時間内に多様なアシスタントデバイスにおいてそれぞれのオーディオデータが検出されるという点で時間的に対応する)を捉え得る。これらの実装形態では、所与のアシスタントデバイスがエコシステムにおいてオーディオデータを検出したことに応答して、デバイス特定エンジン140は、同様に音響イベントを捉える時間的に対応するオーディオデータを同様に検出したはずである1つまたは複数の追加のアシスタントデバイスを特定することができる。たとえば、デバイス特定エンジン140は、音響イベントを同様に捉える時間的に対応するオーディオデータを1つまたは複数の追加のアシスタントデバイスが過去に検出していることに基づいて、同様に音響イベントを捉える時間的に対応するオーディオデータを同様に検出したはずである追加のアシスタントデバイスの1つまたは複数を特定することができる。言い換えると、デバイス特定エンジン140は、同じ音響を含む時間的に対応するオーディオデータを所与のアシスタントデバイスおよび1つまたは複数の追加のアシスタントデバイスが過去に捉えているので、音響イベントを含むオーディオデータを1つまたは複数の追加のアシスタントデバイスが同様に捉えるはずであると予想することができる。
様々な実装形態において、それぞれのアシスタントデバイスによって生成または検出される1つまたは複数のデバイス固有の信号が、デバイス活動データベース191に記憶され得る。いくつかの実装形態では、デバイス活動データベース191は、その特定のアシスタントデバイスのデバイス活動に専用のメモリの一部分に対応することができる。いくつかの追加または代替の実装形態では、デバイス活動データベース191は、アシスタントデバイスと(たとえば、図1のネットワーク110を介して)通信している遠隔システムのメモリに対応することができる。このデバイス活動は、(たとえば、セマンティック標識エンジン160に関して説明される)アシスタントデバイスの所与の1つに対するセマンティック標識候補を生成する際に利用され得る。デバイス活動は、たとえば、それぞれのアシスタントデバイスにおいて受け取られるクエリもしくは要求(および/または複数のクエリもしくは要求の各々に関連するセマンティックカテゴリ)、それぞれのアシスタントデバイスにおいて実行されるコマンド(および/または複数のコマンドの各々に関連するセマンティックカテゴリ)、それぞれのアシスタントデバイスにおいて検出される周辺雑音(および/または周辺雑音の様々なインスタンスに関連するセマンティックカテゴリ)、所与のアシスタントデバイスに位置的に近い任意のアシスタントデバイスの固有の識別子もしくは標識(たとえば、イベント検出エンジン140を介して特定される)、エコシステムの中の複数のアシスタントデバイスとのユーザ対話に基づいて決定されるエコシステムに関連するユーザのユーザ選好(たとえば、ブラウジング履歴、検索履歴、購入履歴、音楽履歴、映画もしくはテレビ履歴、および/または複数のアシスタントデバイスに関連する任意の他のユーザ対話)、ならびに/または、それぞれのアシスタントデバイスによって受信され、生成され、かつ/もしくは実行される任意の他のデータを含み得る。
いくつかの実装形態では、セマンティック標識エンジン160は、1つまたは複数のデバイス固有の信号を処理して、1つまたは複数のデバイス固有の信号に基づいてアシスタントデバイスの所与の1つ(たとえば、アシスタント入力デバイス106の所与の1つおよび/またはアシスタント非入力デバイス185の所与の1つ)に対するセマンティック標識候補を生成することができる。それらの実装形態のいくつかのバージョンでは、所与のアシスタントデバイスがエコシステムに新しく追加される、および/またはエコシステム内で移動すると決定したことに応答して、セマンティック標識候補がそのために生成される所与のアシスタントデバイスを特定することができる。それらの実装形態のいくつかの追加または代替のバージョンでは、セマンティック標識候補がそのために生成される所与のアシスタントデバイスは、定期的に(たとえば、1か月に1回、6か月に1回、1年に1回など)特定され得る。それらの実装形態のいくつかの追加または代替のバージョンでは、セマンティック標識候補がそのために生成される所与のアシスタントデバイスは、所与のアシスタントデバイスが位置するエコシステムの部分の目的が変えられた(たとえば、エコシステムの本邸の中のある部屋が書斎から寝室に目的が変えられた)と決定したことに応答して特定され得る。これらの実装形態では、所与のアシスタントデバイスは、イベント検出エンジン130を利用して特定され得る。これらおよび他の方式で所与のアシスタントデバイスを特定することは、図2Aおよび図2Bに関して説明される。
いくつかの実装形態では、セマンティック標識エンジン160は、セマンティック標識候補の中から、デバイス固有の信号の1つまたは複数に基づいて所与のアシスタントデバイスに対する所与のセマンティック標識を選択することができる。所与のアシスタントデバイスのためのセマンティック標識候補を生成し、1つまたは複数のデバイス固有標識に基づいて、セマンティック標識候補の中から所与のセマンティック標識を選択することが、(たとえば、図2Aおよび図2Bに関連して)以下で説明される。
所与のアシスタントデバイスに対するセマンティック標識候補が、デバイス活動データベース191(またはそれに対応するテキスト)に記憶されているクエリ、要求、および/またはコマンドに基づいて生成される実装形態では、クエリ、要求、および/またはコマンドは、所与のアシスタントデバイスに対するデバイス活動を、異種のクエリ、要求、および/またはコマンドに対応する1つまたは複数の異なるセマンティックカテゴリへとインデクシングするために、セマンティック分類器(たとえば、MLモデルデータベース192に記憶されている)を使用して処理され得る。セマンティック標識候補は、クエリ、コマンド、および/または要求がそれらへと分類されるセマンティックカテゴリに基づいて生成されてもよく、所与のアシスタントデバイスのために選択される所与のセマンティック標識は、所与のセマンティックカテゴリにおいて分類される複数のクエリ、要求、および/またはコマンドの量に基づいて選択されてもよい。たとえば、所与のアシスタントデバイスが、料理のレシピを取得することに関する9個のクエリ、およびエコシステムの中のスマート照明を制御することに関する2個のコマンドを以前に受け取っていると仮定する。この例では、セマンティック標識候補は、たとえば、「台所のデバイス」という第1のセマンティック標識および「スマート照明制御デバイス」という第2のセマンティック標識を含み得る。さらに、セマンティック標識エンジン160は、所与のアシスタントデバイスが主に料理関連の活動に使用されることを所与のアシスタントデバイスの過去の使用が示すので、所与のアシスタントデバイスに対する所与のセマンティック標識として「台所のデバイス」という第1のセマンティック標識を選択することができる。
いくつかの実装形態では、MLモデルデータベース192に記憶されているセマンティック分類器は、自然言語理解エンジン(たとえば、以下で説明されるNLPモジュール122によって実装される)であり得る。アシスタントデバイスにおいて以前に受け取られたクエリ、コマンド、および/または要求を処理したことに基づいて決定される意図は、セマンティックカテゴリの1つまたは複数にマッピングされ得る。特に、本明細書において説明される複数の異種のセマンティックカテゴリは、様々なレベルの粒度で定義され得る。たとえば、セマンティックカテゴリは、スマート照明コマンドというカテゴリ、スマートサーモスタットコマンドというカテゴリ、および/またはスマートカメラコマンドというカテゴリなどの、スマートデバイスコマンドの部類カテゴリ、および/またはその部類クラスの種別カテゴリと関連付けられ得る。言い換えると、各カテゴリは、セマンティック分類器によって決定される、各カテゴリに関連する意図の固有のセットを有し得るが、カテゴリのいくつかの意図は、追加のカテゴリとも関連付けられ得る。いくつかの追加または代替の実装形態では、MLモデルデータベース192に記憶されているセマンティック分類器が、クエリ、コマンド、および/または要求のテキストに対応するテキスト埋め込み(たとえば、word2vec表現などの、低次元の表現)を生成するために利用され得る。これらの埋め込みは、セマンティック上類似している語または語句が埋め込み空間の同じまたは類似する部分と関連付けられるような、埋め込み空間内の点であり得る。さらに、埋め込み空間のこれらの部分は、複数の異種のセマンティックカテゴリの1つまたは複数と関連付けられてもよく、埋め込みの所与の1つは、埋め込みの所与の1つと埋め込み空間の部分の1つまたは複数との間の距離の尺度が距離の閾値を満たす場合、セマンティックカテゴリの所与の1つへと分類されてもよい。たとえば、料理に関連する語または語句は、「料理」というセマンティック標識に関連する埋め込み空間の第1の部分と関連付けられてもよく、気象に関連する語または語句は、「気象」というセマンティック標識に関連する埋め込み空間の第2の部分と関連付けられてもよく、以下同様である。
1つまたは複数のデバイス固有の信号が、追加または代替として周辺雑音活動を含む実装形態では、周辺雑音のインスタンスは、所与のアシスタントデバイスに対するデバイス活動を、異種の周辺雑音に対応する1つまたは複数の異なるセマンティックカテゴリへとインデクシングするために、周辺雑音検出モデル(たとえば、MLモデルデータベース192に記憶されている)を使用して処理され得る。セマンティック標識候補は、周辺雑音のインスタンスがそれらへと分類されるセマンティックカテゴリに基づいて生成されてもよく、所与のアシスタントデバイスのために選択される所与のセマンティック標識は、所与のセマンティックカテゴリにおいて分類される周辺雑音のインスタンスの量に基づいて選択されてもよい。たとえば、所与のアシスタントデバイスにおいて(および任意選択で、発話認識がアクティブであるときにだけ)検出される周辺雑音が主に、料理の音として分類される周辺雑音を含むと仮定する。この例では、セマンティック標識エンジン160は、デバイスが料理に関連する活動の近くに位置していることをオーディオデータにおいて捉えられる周辺雑音が示すので、所与のアシスタントデバイスに対する所与のセマンティック標識として「台所のデバイス」というセマンティック標識を選択することができる。
いくつかの実装形態では、MLモデルデータベース192に記憶されている周辺雑音検出モデルを、特定の音を検出するように訓練することができ、周辺雑音検出モデルにわたって生成される出力に基づいて、周辺雑音のインスタンスが特定の音を含むかどうかを決定することができる。周辺雑音検出モデルは、たとえば、教師あり学習技法を使用して訓練され得る。たとえば、複数の訓練インスタンスが取得され得る。訓練インスタンスの各々は、周辺雑音を含む訓練インスタンス入力と、周辺雑音検出モデルが検出するように訓練されている特定の音を訓練インスタンス入力が含むかどうかの標示を含む対応する訓練インスタンス出力とを含み得る。たとえば、周辺雑音検出モデルが、ガラスが割れる音を検出するように訓練されている場合、ガラスが割れる音を含む訓練インスタンスは、標識(たとえば、「はい」)または値(たとえば、「1」)を割り当てられてもよく、ガラスが割れる音を含まない訓練インスタンスは、異なる標識(たとえば、「いいえ」)または値(たとえば、「0」)を割り当てられてもよい。いくつかの追加または代替の実装形態では、MLモデルデータベース192に記憶されている周辺雑音検出モデルは、周辺雑音のインスタンス(または、メル周波数ケプストラム係数、生のオーディオ波形、および/または他の音響特徴などの、それらの音響特徴)に基づいて、オーディオ埋め込み(たとえば、周辺雑音のインスタンスの低次元の表現)を生成するために利用され得る。これらの埋め込みは、類似する音(または音を捉える音響特徴)が埋め込み空間の同じまたは類似する部分と関連付けられるような、埋め込み空間内の点であり得る。さらに、埋め込み空間のこれらの部分は、複数の異種のセマンティックカテゴリの1つまたは複数と関連付けられてもよく、埋め込みの所与の1つは、埋め込みの所与の1つと埋め込み空間の部分の1つまたは複数との間の距離の尺度が距離の閾値を満たす場合、セマンティックカテゴリの所与の1つへと分類され得る。たとえば、ガラスが割れるというインスタンスは、「ガラスが割れる」音に関連する埋め込み空間の第1の部分と関連付けられてもよく、呼び鈴が鳴るというインスタンスは、「呼び鈴」の音に関連する埋め込み空間の第2の部分と関連付けられてもよく、以下同様である。
1つまたは複数のデバイス固有の信号が、追加または代替として、所与のアシスタントデバイスに位置的に近い追加のアシスタントデバイスの固有の識別子または標識を含むような実装形態では、セマンティック標識候補は、それらの固有の識別子または標識に基づいて生成されてもよく、所与のアシスタントデバイスのために選択される所与のセマンティック標識は、追加のアシスタントデバイスの固有の識別子または標識の1つまたは複数に基づいて選択されてもよい。たとえば、「スマートオーブン」という第1の標識は、所与のアシスタントデバイスに位置的に近い第1のアシスタントデバイスと関連付けられ、「スマートコーヒーメーカー」という第2の標識は、所与のアシスタントデバイスに位置的に近い第2のアシスタントデバイスと関連付けられると仮定する。この例では、セマンティック標識エンジン160は、所与のアシスタントデバイスに位置的に近い追加のアシスタントデバイスと関連付けられる標識が料理に関連しているので、所与のアシスタントデバイスのための所与のセマンティック標識として「台所のデバイス」というセマンティック標識を選択することができる。固有の識別子または標識は、クエリ、コマンド、および/または要求を処理したことに関連して上で説明されたのと同じまたは同様の方式で、MLモデルデータベース192に記憶されているセマンティック分類器を使用して処理され得る。
所与のアシスタントデバイスのためのセマンティック標識候補がユーザ選好に基づいて生成される実装形態では、異種のユーザ選好に対応する1つまたは複数の異なるセマンティックカテゴリへとユーザ選好をインデクシングするために、セマンティック分類器(たとえば、MLモデルデータベース192に記憶されている)を使用してユーザ選好を処理することができる。ユーザ選好が分類されるセマンティックカテゴリに基づいてセマンティック標識候補を生成することができ、所与のアシスタントデバイスに関連する、ユーザ選好が分類される所与のセマンティックカテゴリに基づいて、所与のアシスタントデバイスのために選択される所与のセマンティック標識を選択することができる。たとえば、エコシステムに関連するユーザが料理を好み、Johnny Flayという名前の架空の料理人を好むことをユーザ選好が示すと仮定する。この例では、セマンティック標識候補は、たとえば、「料理デバイス」という第1のセマンティック標識および「Johnny Flayデバイス」という第2のセマンティック標識候補を含み得る。それらの実装形態のいくつかのバージョンでは、1つまたは複数のセマンティック標識候補を生成するためのデバイス固有信号としてユーザ選好を利用することは、ユーザ選好に基づいてセマンティック標識をアシスタントデバイスに割り当てるためのユーザ入力を受け取ったことに応答したものであり得る。
いくつかの実装形態では、セマンティック標識エンジン160は、(たとえば、デバイストポロジーデータベース193に記憶されている)エコシステムのデバイストポロジー表現において、所与のセマンティック標識を所与のアシスタントデバイスに自動的に割り当てることができる。いくつかの追加または代替の実装形態では、セマンティック標識エンジン160は、自動化アシスタント120に、セマンティック標識候補を含むプロンプトを生成させることができる。プロンプトは、エコシステムに関連するユーザに対して、所与のセマンティック標識として標識候補のうちの1つを選択することを求めることができる。さらに、プロンプトは、アシスタントデバイスの所与の1つ(所与のセマンティック標識が割り当てられている所与のアシスタントデバイスであることもまたはないこともある)および/またはユーザのクライアントデバイス(たとえば、モバイルデバイス)において、視覚的におよび/または聴覚的にレンダリングされ得る。所与のセマンティック標識としての標識候補のうちの1つの選択を受け取ったことに応答して、選択される所与のセマンティック標識は、(たとえば、デバイストポロジーデータベース193に記憶されている)エコシステムのデバイストポロジー表現において所与のアシスタントデバイスに割り当てられ得る。これらの実装形態のいくつかのバージョンでは、所与のアシスタントデバイスに割り当てられる所与のセマンティック標識は、所与のアシスタントデバイスのためのセマンティック標識のリストに追加され得る。言い換えると、複数のセマンティック標識が所与のアシスタントデバイスと関連付けられ得る。これらの実装形態の他のバージョンでは、所与のアシスタントデバイスに割り当てられる所与のセマンティック標識が、所与のアシスタントデバイスのためのあらゆる他のセマンティック標識に取って代わることができる。言い換えると、単一のセマンティック標識のみが所与のアシスタントデバイスと関連付けられ得る。
いくつかの実装形態では、クエリ/コマンド処理エンジン170は、自動化アシスタント120に向けられ、アシスタント入力デバイス106の1つまたは複数を介して受け取られる、クエリ、要求、またはコマンドを処理することができる。クエリ/コマンド処理エンジン170は、クエリ、要求、またはコマンドを処理して、クエリまたはコマンドを満足させるようにアシスタントデバイスの1つまたは複数を選択することができる。特に、クエリまたはコマンドを満足させるように選択されるアシスタントデバイスの1つまたは複数は、クエリまたはコマンドを受信したアシスタント入力デバイス106の1つまたは複数と異なり得る。クエリ/コマンド処理エンジン170は、1つまたは複数の基準に基づいて、発話を満足させるように1つまたは複数のアシスタントデバイスを選択することができる。1つまたは複数の基準は、たとえば、発話を提供したユーザへのデバイスの1つもしくは複数の近接度(たとえば、以下で説明される存在センサ105を使用して決定される)、エコシステムの中のデバイスの1つもしくは複数のデバイスの能力、1つもしくは複数のアシスタントデバイスに割り当てられるセマンティック標識、および/または、発話を満足させるようにアシスタントデバイスを選択するための他の基準を含み得る。
たとえば、発話を満足させるために表示デバイスが必要であると仮定する。この例では、発話を満足させるように所与のアシスタントデバイスを選択する際に考慮されるアシスタントデバイス候補は、表示デバイスを含むものに限定され得る。エコシステムの中の複数のアシスタントデバイスが表示デバイスを含む場合、表示デバイスを含み、ユーザに最も近い所与のアシスタントデバイスが、発話を満足させるために選択され得る。対照的に、発話を満足させるためにスピーカーしか必要とされない(たとえば、発話を満足させるために表示デバイスが必要とされない)実装形態では、発話を満足させるように所与のアシスタントデバイスを選択する際に考慮されるアシスタントデバイス候補は、表示デバイスを含むかどうかとは無関係に、スピーカーを有するものを含み得る。
別の例として、所与のアシスタントデバイスに割り当てられるセマンティック標識と一致するセマンティック特性を発話が含むと仮定する。クエリ/コマンド処理エンジン170は、発話(またはそれに対応するテキスト)の1つまたは複数の語に対応する第1の埋め込みおよび所与のアシスタントデバイスに割り当てられるセマンティック標識の1つまたは複数の語に対応する第2の埋め込みを生成し、それらの埋め込みを比較して、それらの埋め込みが一致する(たとえば、それが厳密な一致かまたは大まかな一致かにかかわらず)ことを示す距離の閾値をそれらの埋め込み間の距離の尺度が満たすかどうかを決定することによって、発話のセマンティック特性が所与のアシスタントデバイスに割り当てられるセマンティック標識と一致することを決定することができる。この例では、クエリ/コマンド処理エンジン170は、(任意選択で、所与のアシスタントデバイスへの、発話を提供したユーザの近接度に加えて、またはその代わりに)発話がセマンティック標識と一致したことに基づいて、発話を満足させるように所与のアシスタントデバイスを選択することができる。このようにして、発話を満足させるようにアシスタントデバイスを選択することを、本明細書において説明されるようなアシスタントデバイスに割り当てられるセマンティック標識に向かって偏らせることができる。
様々な実装形態において、アシスタント入力デバイス106の1つまたは複数は、対応するユーザからの承認により、検出された存在、特に人の存在を示す信号を提供するように構成される、1つまたは複数のそれぞれの存在センサ1051-N(本明細書では単に「存在センサ105」とも呼ばれる)を含み得る。それらの実装形態のいくつかでは、自動化アシスタント120は、エコシステムに関連するユーザからの発話を満足させるように、アシスタント入力デバイス106の1つまたは複数において、そのユーザの存在に少なくとも一部基づいて、アシスタント入力デバイス106の1つまたは複数を特定することができる。発話は、アシスタント入力デバイス106の1つまたは複数において応答するコンテンツを(たとえば、聴覚的におよび/または視覚的に)レンダリングすることによって、アシスタント入力デバイス106の1つまたは複数が発話に基づいて制御されるようにすることによって、および/またはアシスタント入力デバイス106の1つまたは複数に発話を満足させるためのあらゆる他の行動を実行させることによって、満足させられ得る。本明細書において説明されるように、自動化アシスタント120は、ユーザがどこにいるか、または直近にどこにいたかに基づいてそれらのアシスタント入力デバイス106を決定する際に、それぞれの存在センサ105に基づいて決定されるデータを活用し、対応するコマンドをそれらのアシスタント入力デバイス106だけに提供することができる。いくつかの追加または代替の実装形態では、自動化アシスタント120は、アシスタント入力デバイス106のいずれかの近くにユーザ(任意のユーザまたは特定のユーザ)が現在いるかどうかを決定する際に、それぞれの存在センサ105に基づいて決定されるデータを活用することができ、アシスタント入力デバイス106のいずれの近くにもユーザ(任意のユーザまたは特定のユーザ)がいないと決定されることに基づいて、コマンドの提供を任意選択で抑制することができる。
それぞれの存在センサ105は様々な形式をとることがある。一部のアシスタント入力デバイス106は、その視野において検出された動きを示す信号を捉えて提供するように構成される1つまたは複数のデジタルカメラを装備し得る。追加または代替として、一部のアシスタント入力デバイス106は、その視野内の物体から放射する赤外(「IR」)光を測定する受動赤外線(「PIR」)センサなどの、他のタイプの光に基づく存在センサ105を装備し得る。追加または代替として、一部のアシスタント入力デバイス106は、1つまたは複数のマイクロフォンなどの音波(または圧力波)を検出する存在センサ105を装備し得る。その上、アシスタント入力デバイス106に加えて、アシスタント非入力デバイス185の1つまたは複数が、追加または代替として、本明細書において説明されるそれぞれの存在センサ105を含んでもよく、発話を満足させるかどうか、および/または発話をどのように満足させるかを本明細書において説明される実装形態に従って決定する際に、そのようなセンサからの信号が、自動化アシスタント120によって追加で利用されてもよい。
追加または代替として、いくつかの実装形態では、存在センサ105は、エコシステムにおける人の存在またはデバイスの存在に関連する他の現象を検出するように構成され得る。たとえば、いくつかの実施形態では、アシスタントデバイスの所与の1つは、たとえば、特定のユーザによって携帯/操作される他のアシスタントデバイス(たとえば、モバイルデバイス、ウェアラブルコンピューティングデバイスなど)および/またはエコシステムの中の他のアシスタントデバイス(たとえば、イベント検出エンジン130に関して説明される)によって放出される様々なタイプのワイヤレス信号(たとえば、無線波、超音波、電磁波などの波)を検出する、存在センサ105を装備し得る。たとえば、アシスタントデバイスの一部は、(たとえば、超音波対応マイクロフォンなどの超音波/赤外線受信機を介して)アシスタント入力デバイス106の1つまたは複数によって検出され得る、超音波または赤外波などの人が知覚できない波を放出するように構成され得る。
追加または代替として、様々なアシスタントデバイスは、特定のユーザによって携帯/操作される他のアシスタントデバイス(たとえば、モバイルデバイス、ウェアラブルコンピューティングデバイスなど)によって検出され、操作しているユーザの具体的な位置を決定するために使用され得る、無線波(たとえば、Wi-Fi、Bluetooth、セルラーなど)などの人が知覚できない他のタイプの波を放出し得る。いくつかの実装形態では、Wi-Fi三角測量が、たとえばアシスタントデバイスへ/からのWi-Fi信号に基づいてある人物の位置を検出するために使用され得る。他の実装形態では、特定のユーザによって携帯/操作される他のアシスタントデバイスによって放出される信号に基づいてある特定の人物の位置を決定するために、time-of-flight、信号強度などの他のワイヤレス信号特性が、単独でまたは集合的に、様々なアシスタントデバイスによって使用され得る。
追加または代替として、いくつかの実装形態では、アシスタント入力デバイス106の1つまたは複数は、音声認識を実行してユーザの声からユーザを認識し得る。たとえば、自動化アシスタント120のいくつかのインスタンスは、たとえば様々なリソースへのアクセスを提供/制限する目的で、声をユーザのプロファイルと照合するように構成され得る。いくつかの実装形態では、次いで、たとえばアシスタントデバイスの存在センサ105によって、話者の動きが決定され得る。いくつかの実装形態では、そのような検出された動きに基づいて、ユーザの位置が予測されてもよく、アシスタントデバイスがユーザの位置に近いことに少なくとも一部基づいてそれらのアシスタントデバイスにおいて何らかのコンテンツがレンダリングさせられるとき、この位置がユーザの位置であると見なされてもよい。いくつかの実装形態では、ユーザは単に、ユーザが自動化アシスタント120と関わった最後の位置にいるものとして、特にその最後の関わりから時間があまり経っていない場合には見なされてもよい。
アシスタント入力デバイス106の各々はさらに、それぞれのユーザインターフェースコンポーネント1071-N(単に「ユーザインターフェースコンポーネント107」とも本明細書では呼ばれる)を含み、それらは各々、1つまたは複数のユーザインターフェース入力デバイス(たとえば、マイクロフォン、タッチスクリーン、キーボード)および/または1つまたは複数のユーザインターフェース出力デバイス(たとえば、ディスプレイ、スピーカー、プロジェクタ)を含み得る。一例として、アシスタント入力デバイス1061のユーザインターフェースコンポーネント1071は、スピーカーおよびマイクロフォンのみを含み得るが、アシスタント入力デバイス106Nのユーザインターフェースコンポーネント107Nは、スピーカー、タッチスクリーン、およびマイクロフォンを含み得る。追加または代替として、いくつかの実装形態では、アシスタント非入力デバイス185は、ユーザインターフェースコンポーネント107の1つまたは複数のユーザインターフェース入力デバイスおよび/または1つまたは複数のユーザインターフェース出力デバイスを含み得るが、アシスタント非入力デバイス185のためのユーザ入力デバイス(もしあれば)は、ユーザが自動化アシスタント120と直接対話することを可能にしないことがある。
アシスタント入力デバイス106および/またはクラウドベースの自動化アシスタントコンポーネント119の1つまたは複数を動作させる任意の他のコンピューティングデバイスの各々は、データおよびソフトウェアアプリケーションの記憶のための1つまたは複数のメモリ、データにアクセスしてアプリケーションを実行するための1つまたは複数のプロセッサ、ならびにネットワークを介した通信を容易にする他のコンポーネントを含み得る。アシスタント入力デバイス106の1つまたは複数によって、および/または自動化アシスタント120によって実行される動作は、複数のコンピュータシステム間で分散され得る。自動化アシスタント120は、たとえば、ネットワーク(たとえば、図1のネットワーク110のいずれか)を通じて互いに結合される1つまたは複数の位置にある1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装され得る。
上で述べられたように、様々な実装形態において、アシスタント入力デバイス106の各々は、それぞれの自動化アシスタントクライアント118を動作させ得る。様々な実装形態において、各自動化アシスタントクライアント118は、それぞれの発話捕捉/テキストトゥスピーチ(TTS)/スピーチトゥテキスト(STT)モジュール1141-N(本明細書では単に「発話捕捉/TTS/STTモジュール114」とも呼ばれる)を含み得る。他の実装形態では、それぞれの発話捕捉/TTS/STTモジュール114の1つまたは複数の態様は、それぞれの自動化アシスタントクライアント118とは別に実装され得る。
各々のそれぞれの発話捕捉/TTS/STTモジュール114は、たとえば、ユーザの発話を捉えること(発話捕捉、たとえばそれぞれのマイクロフォン(いくつかの場合には存在センサ105を備え得る)を介した)、MLモデルデータベース192に記憶されている発話認識モデルを使用して、その捉えられたオーディオをテキストおよび/もしくは他の表現もしくは埋め込み(STT)に変換すること、ならびに/または、MLモデルデータベース192に記憶されている発話合成モデルを使用してテキストを発話に変換すること(TTS)を含む、1つまたは複数の機能を実行するように構成され得る。これらのモデルのインスタンスは、それぞれのアシスタント入力デバイス106の各々にローカルに記憶され、かつ/または、アシスタント入力デバイスによって(たとえば、図1のネットワーク110を介して)アクセス可能であり得る。いくつかの実装形態では、アシスタント入力デバイス106の1つまたは複数は、計算リソース(たとえば、プロセッササイクル、メモリ、電池など)が比較的限られていることがあるので、アシスタント入力デバイス106の各々のローカルにあるそれぞれの発話捕捉/TTS/STTモジュール114は、発話認識モデルを使用して、有限の数の異なる話された語句をテキストに(または低次元埋め込みなどの他の形式に)変換するように構成されることがある。他の発話入力がクラウドベースの自動化アシスタントコンポーネント119の1つまたは複数に送信されてもよく、これらは、クラウドベースのTTSモジュール116および/またはクラウドベースのSTTモジュール117を含んでもよい。
クラウドベースのSTTモジュール117は、発話捕捉/TTS/STTモジュール114によって捉えられたオーディオデータを、MLモデルデータベース192に記憶されている発話認識モデルを使用してテキスト(これは次いで自然言語プロセッサモジュール122に提供され得る)へと変換するために、クラウドの実質的に無限のリソースを活用するように構成され得る。クラウドベースのTTSモジュール116は、テキストデータ(たとえば、自動化アシスタント120によって編成されるテキスト)を、MLモデルデータベース192に記憶されている発話合成モデルを使用してコンピュータで生成される発話出力へと変換するために、クラウドの実質的に無限のリソースを活用するように構成され得る。いくつかの実装形態では、クラウドベースのTTSモジュール116は、たとえばそれぞれのアシスタントデバイスのそれぞれのスピーカーを使用して直接出力されるように、コンピュータで生成された発話の出力をアシスタントデバイスの1つまたは複数に提供し得る。他の実装形態では、クラウドベースのTTSモジュール116を使用して自動化アシスタント120によって生成されるテキストデータ(たとえば、コマンドに含まれるクライアントデバイス通知)は、それぞれのアシスタントデバイスの発話捕捉/TTS/STTモジュール114に提供されてもよく、発話捕捉/TTS/STTモジュール114は次いで、発話合成モデルを使用してテキストデータをコンピュータで生成された発話へとローカルで変換し、コンピュータで生成された発話がそれぞれのアシスタントデバイスのローカルのスピーカーを介してレンダリングされるようにしてもよい。
自動化アシスタント120(および特に、1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119)は、自然言語処理(NLP)モジュール122、前述のクラウドベースのTTSモジュール116、前述のクラウドベースのSTTモジュール117、および他のコンポーネントを含んでもよく、それらの一部が以下でより詳しく説明される。いくつかの実装形態では、自動化アシスタント120のエンジンおよび/またはモジュールの1つまたは複数が、省略され、組み合わせられ、かつ/または自動化アシスタント120とは別のコンポーネントにおいて実装されてもよい。NLPモジュール122のインスタンスは、追加または代替として、アシスタント入力デバイス106においてローカルで実装され得る。
いくつかの実装形態では、自動化アシスタント120は、自動化アシスタント120との人のコンピュータの対話セッションの間にアシスタント入力デバイス106の1つのユーザによって生成される様々な入力に応答して、応答コンテンツを生成する。自動化アシスタント120は、アシスタント入力デバイス106および/またはアシスタント非入力デバイス185を介した対話セッションの一部として、ユーザへの提示のために応答コンテンツを(たとえば、アシスタントデバイスとは別であるとき、図1のネットワーク110の1つまたは複数を介して)提供し得る。たとえば、自動化アシスタント120は、アシスタント入力デバイス106の1つを介して提供される自由形式の自然言語入力に応答して、応答コンテンツを生成し得る。本明細書において使用される場合、自由形式の入力は、ユーザによる選択のために提示される選択肢のグループに制約されない、ユーザによって編成される入力である。
自動化アシスタント120のNLPモジュール122は、アシスタント入力デバイス106を介してユーザによって生成される自然言語入力を処理し、自動化アシスタント120、アシスタント入力デバイス106、および/またはアシスタント非入力デバイス185の1つまたは複数の他のコンポーネントによる使用のために、アノテートされた出力を生成し得る。たとえば、NLPモジュール122は、アシスタント入力デバイス106の1つまたは複数のそれぞれのユーザインターフェース入力デバイスを介してユーザによって生成される、自由形式の自然言語入力を処理し得る。自由形式の自然言語入力を処理したことに基づいて生成されるアノテートされた出力は、自然言語入力の1つまたは複数のアノテーション、および任意選択で、自然言語入力の語の1つまたは複数(たとえば、すべて)を含み得る。
いくつかの実装形態では、NLPモジュール122は、自然言語入力の中の様々なタイプの文法情報を特定してアノテートするように構成される。たとえば、NLPモジュール122は、語をその文法上の役割でアノテートするように構成される、発話タガーの一部を含み得る。いくつかの実装形態では、NLPモジュール122は、追加および/または代替として、人々(たとえば、文学の登場人物、有名人、公人などを含む)、組織、位置(現実のおよび想像上の)などへの言及などの、1つまたは複数のセグメントにおけるエンティティへの言及をアノテートするように構成される、エンティティタガー(図示されない)を含み得る。いくつかの実装形態では、エンティティについてのデータは、ナレッジグラフ(図示されない)などの1つまたは複数のデータベースに記憶され得る。いくつかの実装形態では、ナレッジグラフは、知られているエンティティ(および場合によっては、エンティティ属性)を表すノード、ならびに、ノードを接続してエンティティ間の関係を表すエッジを含み得る。
NLPモジュール122のエンティティタガーは、高いレベルの粒度で(たとえば、人々などのあるエンティティクラスへのすべての言及の特定を可能にするために)、および/または低いレベルの粒度で(たとえば、特定の人物などの特定のエンティティへのすべての言及の特定を可能にするために)、あるエンティティへの言及をアノテートし得る。エンティティタガーは、特定のエンティティについて解決するために自然言語入力の内容に頼ってもよく、かつ/または、特定のエンティティについて解決するためにナレッジグラフもしくは他のエンティティデータベースと任意選択で通信してもよい。
いくつかの実装形態では、NLPモジュール122は、追加および/または代替として、1つまたは複数の文脈上の合図に基づいて、言及を同じエンティティへとグループ化する、または「群がらせる」ように構成される、共参照解決器(図示されない)を含み得る。たとえば、共参照解決器は、自然言語入力「lock it」を受け取る直前にレンダリングされたクライアントデバイス通知において「front door lock」が言及されていることに基づいて、自然言語入力「lock it」における語「it」を「front door lock」へと解決するために利用され得る。
いくつかの実装形態では、NLPモジュール122の1つまたは複数のコンポーネントは、NLPモジュール122の1つまたは複数の他のコンポーネントからのアノテーションに頼り得る。たとえば、いくつかの実装形態では、指定されたエンティティタガーは、特定のエンティティへのすべての言及をアノテートする際に、共参照解決器および/または依存関係分析器からのアノテーションに頼ってもよい。また、たとえば、いくつかの実装形態では、共参照解決器は、同じエンティティへの言及を群がらせる際に、依存関係解析器からのアノテーションに頼ってもよい。いくつかの実装形態では、特定の自然言語入力を処理する際、NLPモジュール122の1つまたは複数のコンポーネントは、アシスタント入力デバイス通知が基づく自然言語入力を受け取る直前にレンダリングされたアシスタント入力デバイス通知などの、特定の自然言語入力の外側の関連するデータを使用して、1つまたは複数のアノテーションを決定してもよい。
図1は、アシスタントデバイスおよび/またはサーバによって実装されるコンポーネントの特定の構成を有するものとして図示され、特定のネットワークを介して通信するアシスタントデバイスおよび/またはサーバを有するものとして図示されるが、それは例示のためであり、限定することは意図されないことを理解されたい。たとえば、アシスタント入力デバイス106およびアシスタント非入力デバイスは直接、1つまたは複数のネットワーク(図示せず)を介して互いに通信可能に直接結合され得る。別の例として、1つまたは複数のクラウドベースの自動化アシスタントコンポーネント119の動作は、アシスタント入力デバイス106のうちの1つまたは複数および/またはアシスタント非入力デバイスの1つまたは複数においてローカルに実装され得る。さらに別の例として、MLモデルデータベース192に記憶されている様々なMLモデルのインスタンスは、アシスタントデバイスにおいてローカルに記憶されてもよく、および/または、デバイストポロジーデータベース193に記憶されているエコシステムのデバイストポロジー表現のインスタンスは、アシスタント入力デバイスにローカルに記憶されてもよい。さらに、データ(たとえば、デバイス活動、それに対応するオーディオデータもしくは認識されるテキスト、デバイストポロジー表現、および/または本明細書において説明される任意の他のデータ)が図1の1つまたは複数のネットワーク110のいずれかを介して送信される実装形態では、データは暗号化され、フィルタリングされ、またはユーザのプライバシーを確保するために任意の方式で別様に保護され得る。
本明細書において説明される技法を使用して、セマンティック標識を推測してエコシステムの中のアシスタントデバイスに割り当てることによって、エコシステムのデバイストポロジー表現を最新に維持することができる。さらに、アシスタントデバイスに割り当てられるセマンティック標識は、それぞれのアシスタントデバイスの使用、および/またはそれぞれのアシスタントデバイスが位置するエコシステムのそれぞれの部分に基づいて、それぞれのアシスタントデバイスに割り当てられるセマンティック標識が選択されるという点で、ユーザにとってセマンティクス上有意義である。したがって、発話がエコシステムの中のアシスタントデバイスの1つまたは複数によって受け取られるとき、自動化アシスタントは、発話を満足させるのに最も適したアシスタントデバイスの1つまたは複数をより正確に選択することができる。結果として、エコシステムに関連するユーザが、発話を満足させるために特定のデバイスを指定する必要がないので、または、発話を満足させるために誤ったデバイスが選択されるときに発話を繰り返す必要がないので、エコシステムの中のアシスタントデバイスの1つまたは複数によって受け取られるユーザ入力の量を減らすことができ、それにより、ネットワークトラフィックを減らすことによってアシスタントデバイスにおける計算リソースおよび/またはネットワークリソースを節約する。さらに、アシスタントデバイスがエコシステムに新しく追加されるとき、またはエコシステム内で移動するときに、エコシステムに関連するソフトウェアアプリケーションを介してユーザがデバイストポロジー表現を手動で更新する必要がないので、エコシステムの中のアシスタントデバイスの1つまたは複数によって受け取られるユーザ入力の量を減らすことができる。
図1の様々なコンポーネントの追加の説明がここで、図2Aおよび図2Bを参照して与えられる。ある家の間取りが図2Aおよび図2Bに図示されている。図示される間取りは、複数の部屋250~262を含む。複数のアシスタント入力デバイス1061-5が、部屋の少なくともいくつかにわたって配備されている。アシスタント入力デバイス1061-5の各々は、本開示の選択された態様を用いて構成される自動化アシスタントクライアント118のインスタンスを実装してもよく、近くの人により話される発話を捉えることが可能なマイクロフォンなどの1つまたは複数の入力デバイスを含んでもよい。たとえば、双方向型スタンドアロンスピーカーの形態をとる第1のアシスタント入力デバイス1061および表示デバイス(たとえば、表示画面、プロジェクタなど)が、この例では台所である図2Aの部屋250に、およびこの例では居間である図2Bの部屋256に配備されている。いわゆる「スマート」テレビジョンの形態をとる第2のアシスタント入力デバイス1062(たとえば、自動化アシスタントクライアント118のそれぞれのインスタンスを実装する1つまたは複数のプロセッサを伴うネットワーク接続されたテレビジョン)が、この例では書斎である部屋252に配備されている。ディスプレイのない双方向型スタンドアロンスピーカーの形態をとる第3のアシスタント入力デバイス1063が、この例では寝室である部屋254に配備されている。別の双方向型スタンドアロンスピーカーの形態をとる第4のアシスタント入力デバイス1064が、この例では居間である部屋256に配備されている。スマートテレビジョンの形態を同様にとる第5のアシスタント入力デバイス1065も、この例では台所である部屋250に配備されている。
図2Aおよび図2Bには示されていないが、複数のアシスタント入力デバイス1061-4は、1つまたは複数の有線またはワイヤレスのWANおよび/またはLANを介して(たとえば、図1のネットワーク110を介して)、互いにおよび/または他のリソース(たとえば、インターネット)と通信可能に結合され得る。加えて、他のアシスタント入力デバイス、特に、スマートフォン、タブレット、ラップトップ、ウェアラブルデバイスなどの特定のモバイルデバイスも存在してもよく、たとえば、家の中で1人または複数の人により携帯されてもよく、それらも同じWANおよび/またはLANに接続されてもよく、またはされなくてもよい。図2Aおよび図2Bに図示されるアシスタント入力デバイスの構成は1つの例にすぎず、より多数もしくは少数の、および/または異なるアシスタント入力デバイス106が、家の任意の数の他の部屋および/もしくはエリアにわたって、ならびに/または、住宅以外の位置(たとえば、事業所、ホテル、公共の場所、空港、車両、および/または他の位置もしくは空間)に配備されてもよい。
複数のアシスタント非入力デバイス1851-5が、図2Aおよび図2Bにさらに示されている。たとえば、スマート呼び鈴の形態をとる第1のアシスタント非入力デバイス1851が、家の正面玄関の近くに、家の外部に配備されている。スマートロックの形態をとる第2のアシスタント非入力デバイス1852が、自宅の正面玄関に接して、家の外部に配備されている。スマート洗濯機の形態をとる第3のアシスタント非入力デバイス1853が、この例では洗濯室である部屋262に配備されている。扉開閉センサの形態をとる第4のアシスタント非入力デバイス1854が、部屋262の裏口の近くに配備されており、裏口が開いているかまたは閉まっているかを検出する。スマートサーモスタットの形態をとる第5のアシスタント非入力デバイス1855が、この例では書斎である部屋252に配備されている。
アシスタント非入力デバイス185の各々は、それぞれのアシスタント非入力システム180(図1に示されている)と(たとえば、図1のネットワーク110を介して)通信して、データをそれぞれのアシスタント非入力システム180に提供し、任意選択でデータがそれぞれのアシスタント非入力システム180によって提供されるコマンドに基づいて制御されるようにすることができる。アシスタント非入力デバイス185の1つまたは複数は、追加または代替として、アシスタント入力デバイス106の1つまたは複数と直接(たとえば、図1のネットワーク110を介して)通信して、データをアシスタント入力デバイス106の1つまたは複数に提供し、任意選択でデータがアシスタント入力デバイス106の1つまたは複数によって提供されるコマンドに基づいて制御されるようにすることができる。図2Aおよび図2Bに示されるアシスタント非入力デバイス185の構成は一例にすぎず、より多数もしくは少数の、および/または異なるアシスタント非入力デバイス185が、家の任意の数の他の部屋および/もしくはエリアにわたって、ならびに/または、住宅以外の位置(たとえば、事業所、ホテル、公共の場所、空港、車両、および/または他の位置もしくは空間)に配備されてもよい。
様々な実装形態において、それぞれのアシスタントデバイスに関連する1つまたは複数のデバイス固有信号の処理に基づいて、セマンティック標識が所与のアシスタントデバイス(たとえば、アシスタント入力デバイス106またはアシスタント非入力デバイス185の所与の1つ)に割り当てられ得る。1つまたは複数のデバイス固有信号は、所与のアシスタントデバイスによって検出され、かつ/または所与のアシスタントデバイスによって生成され得る。1つまたは複数のデバイス固有信号は、たとえば、所与のアシスタントデバイスにおいて以前に受け取られた1つまたは複数のクエリ(もしあれば)、所与のアシスタントデバイスにおいて以前に実行された1つまたは複数のコマンド(もしあれば)、所与のアシスタントデバイスにおいて以前に(および任意選択で、発話受け取りが所与のアシスタントデバイスにおいてアクティブであったときにのみ)検出された周辺雑音のインスタンス、所与のアシスタントデバイスに位置的に近いそれぞれのアシスタントデバイスの固有の識別子(または標識)、および/またはエコシステムに関連するユーザのユーザ選好を含み得る。所与のアシスタントデバイスに関連する1つまたは複数のデバイス固有信号の各々は、複数の異種のセマンティックカテゴリのうちの1つまたは複数のセマンティックカテゴリへとそれらの各々を分類するために処理され得る。
さらに、1つまたは複数のセマンティック標識候補は、1つまたは複数のデバイス固有信号に基づいて生成され得る。セマンティック標識候補は、1つまたは複数のルール(任意選択でヒューリスティックに定義される)または機械学習モデル(たとえば、MLモデルデータベース192に記憶される)を使用して生成され得る。たとえば、1つまたは複数のヒューリスティックに定義されたルールは、1つまたは複数のデバイス固有の信号が分類される、セマンティックカテゴリの各々に関連するセマンティック標識候補が生成されるべきであることを示し得る。たとえば、デバイス固有の信号が、「台所」カテゴリ、「料理」カテゴリ、「寝室」カテゴリ、および「居間」カテゴリへと分類されると仮定する。この例では、セマンティック標識候補は、「台所のアシスタントデバイス」という第1のセマンティック標識候補、「料理のアシスタントデバイス」という第2のセマンティック標識候補、「寝室のアシスタントデバイス」という第3のセマンティック標識候補、および「居間のアシスタントデバイス」という第4のセマンティック標識を含み得る。別の例として、1つまたは複数のデバイス固有の信号(またはそれに対応する1つまたは複数のセマンティックカテゴリ)は、セマンティック標識候補を生成するように訓練される機械学習モデルを使用して処理され得る。たとえば、機械学習モデルは複数の訓練インスタンスに基づいて訓練され得る。訓練インスタンスの各々は、訓練インスタンス入力および対応する訓練インスタンス出力を含み得る。訓練インスタンス入力は、たとえば、1つもしくは複数のデバイス固有の信号および/または1つもしくは複数のセマンティックカテゴリを含んでもよく、対応する訓練インスタンス出力は、たとえば、訓練インスタンス入力に基づいて割り当てられるべきセマンティック標識に対応するグラウンドトゥルース出力を含んでもよい。
その上、所与のアシスタントデバイスに割り当てられるセマンティック標識は、1つまたは複数のセマンティック標識候補の中から選択され得る。所与のアシスタントデバイスに割り当てられるべきセマンティック標識は、1つまたは複数のセマンティック標識候補の各々に関連する信頼性レベルに基づいて、1つまたは複数のセマンティック標識候補の中から選択され得る。いくつかの実装形態では、所与のアシスタントデバイスに割り当てられるセマンティック標識を、所与のアシスタントデバイスに自動的に割り当てることができ、一方、追加または代替の実装形態では、図2Aおよび図2Bのエコシステムに関連するユーザは、(たとえば、図3に関して説明されるように)1つまたは複数のセマンティック標識候補のリストのうちの所与のアシスタントデバイスに割り当てられるべきセマンティック標識を選択するようにプロンプトで促されてもよい。いくつかの追加または代替の実装形態では、セマンティック標識は、所与のセマンティック標識が(エコシステムの中で所与のアシスタントデバイスに位置的に近い他のアシスタントデバイスに対して)固有である場合、所与のアシスタントデバイスに自動的に割り当てられ得る。
それらの実装形態のいくつかのバージョンでは、セマンティック標識が割り当てられるべき所与のアシスタントデバイスは、所与のアシスタントデバイスがエコシステムに新しく追加されると(たとえば、図1のイベント検出エンジン130および/またはデバイス特定エンジン140を介して)決定したことに応答して特定され得る。たとえば、図2Aを特に参照すると、双方向型スタンドアロンスピーカーの形態をとる第1のアシスタント入力デバイス1061およびデバイスが、この例では台所である部屋250において新しく配備されると仮定する。図2Aの第1のアシスタント入力デバイス1061に関連する1つまたは複数のデバイス固有信号に関連して、第1のアシスタント入力デバイス1061が新しくエコシステムに追加されてから、第1のアシスタント入力デバイス1061によって受け取られた、または第1のアシスタント入力デバイス1061によって実行された(第1のアシスタント入力デバイス1061を構成すること以外の)、以前のクエリまたはコマンドはないと仮定し、第1のアシスタント入力デバイス1061がエコシステムのユーザによって構成されている間に(たとえば、名前、ユーザのための発話埋め込みを確立するためのテスト発話などをたとえば含む、発話をユーザが提供するので、発話受け取りがアクティブであるときに)、周辺雑音のいくつかのインスタンスが捉えられたことがあると仮定し、部屋250の中のスマートテレビジョンの形態をとる第5のアシスタント入力デバイス1065に関連する固有の識別子(または標識)(たとえば、「台所TV」)、および部屋252の中のスマートサーモスタットの形態をとる第5のアシスタント非入力デバイス1855に関連する固有の識別子(または標識)(たとえば、「サーモスタット」)が、第1のアシスタント入力デバイス1061において検出されると仮定し、エコシステムに関連するユーザのユーザ選好が知られていると仮定する。
この例では、周辺雑音のインスタンス(もしあれば)は、周辺雑音を1つまたは複数のセマンティックカテゴリへと分類するために、周辺雑音検出モデルを使用して処理され得る。たとえば、周辺雑音のインスタンスが、部屋250の流しに垂れる水、部屋250の電子レンジまたはオーブンの鳴動、部屋250のコンロ上のフライパンで焼かれる食べ物などを捉えると仮定する。周辺雑音のこれらのインスタンスは、「台所」セマンティックカテゴリ、「料理」セマンティックカテゴリ、および/または台所において通常遭遇する雑音に関連する他のセマンティックカテゴリへと分類され得る。追加または代替として、周辺雑音は、映画、テレビ番組、または広告が、部屋250のスマートテレビジョンの形態をとる第5のアシスタント入力デバイス1065を介して視覚的および/もしくは聴覚的にレンダリングされているのを捉え得る。周辺雑音のこれらのインスタンスは、「テレビ」セマンティックカテゴリ、「映画」セマンティックカテゴリ、および/またはスマートテレビジョンから通常遭遇する雑音に関連する他のセマンティックカテゴリへと分類され得る。追加または代替として、第5のアシスタント入力デバイス1065の固有の識別子(または標識)(たとえば、「台所TV」)および第5のアシスタント非入力デバイス1855の固有の識別子(または標識)(たとえば、サーモスタット)は、セマンティック標識の1つまたは複数を生成するために処理され得る。これらの固有の識別子(または標識)は、「台所」セマンティックカテゴリ、「スマートデバイス」セマンティックカテゴリ、および/または図2Aのエコシステムにおいて第1のアシスタント入力デバイス1061に位置的に近いアシスタントデバイスに関連する他のセマンティックカテゴリへと分類され得る。追加または代替として、ユーザが料理およびJohnny Flayという名前の架空の料理人に関心を持っていることをユーザ選好が示すと仮定する。これらのユーザ選好は、他のデバイス固有信号の1つまたは複数が「料理」カテゴリまたは「台所」カテゴリへと分類されること、および料理およびJohnny Flayというユーザ選好も「料理」カテゴリまたは「台所」カテゴリへと分類されることに基づいて、第1のアシスタント入力デバイス1061に関連するものとして特定され得る。結果として、この例におけるセマンティック標識候補は、「台所スピーカーデバイス」、「料理スピーカーデバイス」、「テレビスピーカーデバイス」、「映画スピーカーデバイス」、「Johnny Flayデバイス」、および/または、第1のアシスタント入力デバイス1061に関連する1つまたは複数のデバイス固有標識に基づく他のセマンティック標識候補を含み得る。さらにこの例では、セマンティック標識のうちの所与のセマンティック標識を、第1のアシスタント入力デバイス1061に自動的に割り当てることができ、または、所与のセマンティック標識を第1のアシスタント入力デバイス1061に割り当てるために(たとえば、第1のアシスタント入力デバイス1061が構成されている間に)セマンティック標識候補の1つまたは複数を選択するように、エコシステムに関連するユーザにプロンプトで促すことができる。
いくつかの追加または代替の実装形態では、セマンティック標識が割り当てられるべき所与のアシスタントデバイスは、定期的に(たとえば、毎週、毎月、6か月ごと、ならびに/または任意の他の期間ごとに、図1のイベント検出エンジン130および/もしくはデバイス特定エンジン140を介して)特定され得る。たとえば、図2Aを特に参照すると、双方向型スタンドアロンスピーカーの形態をとる第1のアシスタント入力デバイス1061および表示デバイスが、6か月間、この例では台所である部屋250に配備されていると仮定する。図2Aの第1のアシスタント入力デバイス1061に関連する1つまたは複数のデバイス固有信号に関して、以前のクエリまたはコマンドが、第1のアシスタント入力デバイス1061において受け取られ、または第1のアシスタント入力デバイス1061によって実行されたことがあると仮定し、第1のアシスタント入力デバイス1061の間に周辺雑音のインスタンスが捉えられたことがあると仮定し、部屋250のスマートテレビジョンの形態をとる第5のアシスタント入力デバイス1065に関連する固有の識別子(または標識)(たとえば、「台所TV」)、および部屋252のスマートサーモスタットの形態をとる第5のアシスタント非入力デバイス1855に関連する固有の識別子(または標識)(たとえば、「サーモスタット」)が依然として、第1のアシスタント入力デバイス1061において検出されると仮定する。
この例では、クエリおよびコマンド(またはそれに対応するテキスト)は、クエリおよびコマンドを1つまたは複数のセマンティックカテゴリへと分類するために、セマンティック分類器を使用して処理され得る。たとえば、第1のアシスタント入力デバイス1061において以前に受け取られたクエリおよびコマンドは、料理レシピを要求することに関するクエリ、タイマーを設定することに関するコマンド、台所の任意のスマートデバイスを制御することに関するコマンド、および/または他のクエリもしくはコマンドを含み得る。クエリおよびコマンドのこれらのインスタンスは、第1のアシスタント入力デバイス1061において受け取られるクエリおよびコマンドに基づいて、「料理」セマンティックカテゴリ、「スマートデバイス制御」カテゴリ、および/または他のセマンティックカテゴリへと分類され得る。セマンティック標識候補は、追加または代替として、上で説明されたように第1のアシスタント入力デバイス1061に位置的に近い周辺雑音および/または固有の識別子(または標識)のインスタンスに基づいて決定され得る。結果として、この例のセマンティック標識候補は、「台所デバイス」、「タイマーデバイス」、「サーモスタット表示デバイス」、「料理表示デバイス」、「テレビデバイス」、「映画デバイス」、「Johnny Flayレシピデバイス」、および/または、第1のアシスタント入力デバイス1061に関連する1つまたは複数のデバイス固有標識に基づく他のセマンティック標識候補を含み得る。さらに、この例では、セマンティック標識のうちの所与のセマンティック標識を、第1のアシスタント入力デバイス1061に自動的に割り振ることができ、または、(たとえば、第1のアシスタント入力デバイス1061が構成されている間に)所与のセマンティック標識を第1のアシスタント入力デバイス1061を割り当てるためにセマンティック標識候補の1つまたは複数を選択するように、エコシステムに関連するユーザにプロンプトで促すことができる。
いくつかの追加または代替の実装形態では、セマンティック標識が割り当てられるべき所与のアシスタントデバイスは、所与のアシスタントデバイスがエコシステム内で移動したと(たとえば、図1のイベント検出エンジン130および/またはデバイス特定エンジン140を介して)決定したことに応答して特定され得る。たとえば、ここで特に図2Bを参照すると、双方向型スタンドアロンスピーカーの形態をとる第1のアシスタント入力デバイス1061および表示デバイスが、この例では台所である部屋250からこの例では居間である部屋256に移されると仮定する。図2Bの第1のアシスタント入力デバイス1061に関連する1つまたは複数のデバイス固有信号に関して、以前にクエリまたはコマンドが、第1のアシスタント入力デバイス1061において受け取られ、または第1のアシスタント入力デバイス1061によって実行されたことがあると仮定し、周辺雑音のいくつかのインスタンスが捉えられたことがあると仮定し、部屋256における別の双方向型スタンドアロンスピーカーの形態をとる第4のアシスタント入力デバイス1064に関連するそれぞれの固有の識別子(または標識)(たとえば、「居間のスピーカーデバイス」)が第1のアシスタント入力デバイス1061において検出されると仮定し、エコシステムに関連するユーザのユーザ選好が知られていると仮定する。この例では、1つまたは複数のデバイス固有信号は、第1のアシスタント入力デバイス1061がエコシステム内で移動した後に生成または受信されるものに限定され得る(より少ないユーザ選好)。
この例では、クエリおよびコマンド(またはそれらに対応するテキスト)は、クエリおよびコマンドを1つまたは複数のセマンティックカテゴリへと分類するために、セマンティック分類器を使用して処理され得る。たとえば、第1のアシスタント入力デバイス1061において以前に受け取られたクエリおよびコマンドは、気象もしくは交通情報を要求することに関連するクエリ、休暇の予定を立てることに関連するコマンド、および/または他のクエリもしくはコマンドを含み得る。クエリおよびコマンドのこれらのインスタンスは、「情報」セマンティックカテゴリ(またはより具体的には「気象情報」カテゴリおよび「交通情報」カテゴリ)、「予定」カテゴリ、ならびに/または、第1のアシスタント入力デバイス1061において受け取られるクエリおよびコマンドに基づく他のセマンティックカテゴリへと分類され得る。追加または代替として、周辺雑音のインスタンスは、周辺雑音を1つまたは複数のセマンティックカテゴリへと分類するために、周辺雑音検出モデルを使用して処理され得る。たとえば、周辺雑音は、第4のアシスタント入力デバイス1064によって聴覚的にレンダリングされている音楽またはポッドキャスト、部屋256に図示されるカウチに座って会話している人、エコシステムの中のコンピューティングデバイスによって聴覚的にレンダリングされている映画またはテレビ番組などを捉え得る。これらの周辺雑音のインスタンスは、「音楽」セマンティックカテゴリ、「会話」セマンティックカテゴリ、「映画」セマンティックカテゴリ、「テレビ番組」セマンティックカテゴリ、および/または、台所において通常遭遇する雑音に関連する他のセマンティックカテゴリへと分類され得る。追加または代替として、第4のアシスタント入力デバイス1064の固有の識別子(または標識)(たとえば、「居間のスピーカーデバイス」)が、セマンティック標識の1つまたは複数を生成するために処理され得る。この固有の識別子(または標識)は、たとえば、「居間」セマンティックカテゴリ、および/または図2Bのエコシステムにおいて第1のアシスタント入力デバイス1061に位置的に近いアシスタントデバイスに関連する他のセマンティックカテゴリへと分類され得る。追加または代替として、ユーザが料理およびVehiclesという表題の架空の映画およびThunder McKingという名前の映画中の特定の登場人物に関心を持っていることを、ユーザ選好が示すと仮定する。これらのユーザ選好は、他のデバイス固有信号の1つまたは複数が「映画」へと分類されること、ならびに映画VehiclesおよびThunder McKingというユーザ選好も「映画」カテゴリへと分類されることに基づいて、第1のアシスタント入力デバイス1061に関連するものとして特定され得る。結果として、この例におけるセマンティック標識候補は、「居間デバイス」、「予定デバイス」、「Vehiclesデバイス」、「Thunder McKingデバイス」、および/または第1のアシスタント入力デバイス1061に関連する1つまたは複数のデバイス固有標識に基づく他のセマンティック標識候補を含み得る。さらに、この例では、セマンティック標識のうちの所与のセマンティック標識を、第1のアシスタント入力デバイス1061に自動的に割り当てることができ、または、所与のセマンティック標識を第1のアシスタント入力デバイス1061に割り当てるためにセマンティック標識候補の1つまたは複数を選択するように、エコシステムに関連するユーザにプロンプトで促すことができる。
いくつかの追加または代替の実装形態では、セマンティック標識が割り当てられるべき所与のアシスタントデバイスは、所与のアシスタントデバイスが位置するエコシステムの部分の目的が変えられていることを(たとえば、図1のイベント検出エンジン130および/またはデバイス特定エンジン140を介して)決定したことに応答して特定され得る。たとえば、ここで図2Bを特に参照すると、双方向型スタンドアロンスピーカーの形態をとる第1のアシスタント入力デバイス1061および表示デバイスが、この例では居間である部屋256に位置するが、居間が寝室に変えられていると仮定する。図2Bの第1のアシスタント入力デバイス1061に関連する1つまたは複数のデバイス固有信号に関して、以前にクエリまたはコマンドが第1のアシスタント入力デバイス1061において受け取られたことがある、または第1のアシスタント入力デバイス1061によって実行されたことがあると仮定し、周辺雑音のいくつかのインスタンスが捉えられていると仮定し、部屋256の別の双方向型スタンドアロンスピーカーの形態をとる第4のアシスタント入力デバイス1064に関連するそれぞれの固有の識別子(または標識)(たとえば、「居間のスピーカーデバイス」)が、第1のアシスタント入力デバイス1061において検出されると仮定する。この例では、1つまたは複数のデバイス固有信号は、部屋256の目的が変えられた後に生成または受信されるものに限定され得る。
この例では、クエリまたはコマンド(たとえば、それに対応するテキスト)は、クエリおよびコマンドを1つまたは複数のセマンティックカテゴリへと分類するために、セマンティック分類器を使用して処理され得る。たとえば、第1のアシスタント入力デバイス1061において以前に受け取られたクエリおよびコマンドは、目覚ましの設定に関するコマンド、起床もしくは就寝のルーティンに関するコマンド、および/または他のクエリもしくはコマンドを含み得る。コマンドのこれらのインスタンスは、「目覚まし」セマンティックカテゴリ、「ルーティン」カテゴリ(またはより具体的には「起床ルーティン」カテゴリまたは「就寝ルーティン」カテゴリ)、ならびに/または第1のアシスタント入力デバイス1061において受け取られるクエリおよびコマンドに基づく他のセマンティックカテゴリへと分類され得る。追加または代替として、周辺雑音のインスタンスは、周辺雑音を1つまたは複数のセマンティックカテゴリへと分類するために、周辺雑音検出モデルを使用して処理され得る。たとえば、周辺雑音は、1人または複数のユーザのいびき、人の会話などを捉え得る。周辺雑音のこれらのインスタンスは、「寝室」セマンティックカテゴリ、「会話」セマンティックカテゴリ、および/または寝室において通常遭遇する雑音に関連する他のセマンティックカテゴリへと分類され得る。追加または代替として、第4のアシスタント入力デバイス1064の固有の識別子(または標識)(たとえば、「居間のスピーカーデバイス」)が、セマンティック標識の1つまたは複数を生成するために処理され得る。この固有の識別子(標識)は、たとえば、「居間」セマンティックカテゴリおよび/または図2Bのエコシステムにおいて第1のアシスタント入力デバイス1061に位置的に近いアシスタントデバイスに関連する他のセマンティックカテゴリへと分類され得る。結果として、この例のセマンティック標識候補は、第1のアシスタント入力デバイス1061に関連する1つまたは複数のデバイス固有標識に基づいて、「居間表示デバイス」、「寝室表示デバイス」、および/または他のセマンティック標識候補を含み得る。さらに、この例では、セマンティック標識のうちの所与のセマンティック標識を、第1のアシスタント入力デバイス1061に自動的に割り当てることができ、または、所与のセマンティック標識を第1のアシスタント入力デバイス1061に割り当てるためにセマンティック標識候補の1つまたは複数を選択するように、エコシステムに関連するユーザにプロンプトで促すことができる。特に、この例では、システムは、第4のアシスタント入力デバイス1064が寝室に位置することを第1のアシスタント入力デバイス1061の使用が示すので、第4のアシスタント入力デバイス1064の固有の識別子(または標識)が「居間」カテゴリに対応するとしても、所与のセマンティック標識が「寝室表示デバイス」に対応すると決定し得る。
図2Aおよび図2Bは、セマンティック標識が割り当てられる所与のアシスタントデバイスがアシスタント入力デバイス(たとえば、第1のアシスタント入力デバイス1061)であることに関して本明細書において説明されるが、それは例示のためであり、限定することは意図されないことを理解されたい。たとえば、本明細書において説明される技法は、それぞれのセマンティック標識をアシスタント非入力デバイス185に割り当てるためにも利用され得る。たとえば、スマート照明(おそらくマイクロフォンのないアシスタント非入力デバイス)が、この例では寝室である部屋252に新しく追加されると仮定する。この例では、ディスプレイのない双方向型スタンドアロンスピーカーの形態をとる第3のアシスタント入力デバイス1063に関連する固有の識別子または標識(たとえば、「寝室スピーカーデバイス」)を利用して、ここで説明される技法を使用して新しく追加されたスマート照明について「寝室スマート照明」というセマンティック標識を推測することができる。さらに、この例では洗濯室である部屋262に部屋254からスマート照明が移されると仮定する。この例では、スマート衣服という形態をとる第3のアシスタント非入力デバイス1853に関連する固有の識別子または標識が、本明細書において説明される技法を使用して、最近移されたスマート照明について「洗濯室スマート照明」というセマンティック標識を推測するために利用され得る。
ここで図3を見ると、所与のセマンティック標識をエコシステムの中の所与のアシスタントデバイスに割り当てる例示的な方法300を示すフローチャートが示されている。便宜的に、方法300の動作は、動作を実行するシステムを参照して説明される。方法300のシステムは、コンピューティングデバイスの1つまたは複数のプロセッサおよび/または他のコンポーネントを含む。たとえば、方法300のシステムは、図1、図2A、もしくは図2Bのアシスタント入力デバイス106、図1、図2A、もしくは図2Bのアシスタント非入力デバイス185、図5のコンピューティングデバイス510、1つまたは複数のサーバ、他のコンピューティングデバイス、および/またはそれらの任意の組合せによって実装され得る。その上、方法300の動作は特定の順序で示されているが、これは限定することは意図されない。1つまたは複数の動作が、並べ替えられ、省略され、かつ/または追加されてもよい。
ブロック352において、システムは、エコシステムの中の複数のアシスタントデバイスの中から、所与のアシスタントデバイスを特定する。所与のアシスタントデバイスは、アシスタント入力デバイス(たとえば、図1のアシスタント入力デバイス106の1つ)またはアシスタント非入力デバイス(たとえば、図1のアシスタント非入力デバイス185の1つ)であり得る。いくつかの実装形態では、所与のアシスタントデバイスは、エコシステムに新しく追加されると決定したことに応答して特定され得るが、他の実装形態では、所与のアシスタントデバイスは、それがエコシステム内で移動したと決定した(たとえば、図1のイベント検出エンジン130に関して説明される)ことに応答して特定され得る。いくつかの追加または代替の実装形態では、所与のアシスタントデバイスは定期的に(たとえば、月に1回、6か月に1回、1年に1回など)特定され得る。
ブロック354において、システムは、所与のアシスタントデバイスに関連するデバイス固有信号を取得する。デバイス固有信号は、所与のアシスタントデバイスによって検出され、かつ/または所与のアシスタントデバイスによって生成され得る。いくつかの実装形態では、ブロック354は、任意選択のサブブロック354A、サブブロック354B、サブブロック354C、またはサブブロック354Dの1つまたは複数を含み得る。含まれる場合、サブブロック354Aにおいて、システムは、所与のアシスタントデバイスにおいて以前に受け取られた複数のクエリまたはコマンド(もしあれば)を取得する。含まれる場合、サブブロック354Bにおいて、システムは、追加または代替として、所与のアシスタントデバイスにおいて(および任意選択で、発話受け入れが所与のアシスタントデバイスにおいて(たとえば、自動化アシスタントを呼び出す特定の語または語句を受け取った後に)アクティブであったときにのみ、または発話受け入れがアクティブではないときにデジタルシグナルプロセッサ(DSP)を介して)以前に検出された周辺雑音のインスタンスを取得する。いくつかの実装形態では、取得される周辺雑音は、発話受け入れが所与のアシスタントデバイスにおいてアクティブであるときに検出される周辺雑音に制約される。含まれる場合、サブブロック354Cにおいて、システムは、追加または代替として、所与のアシスタントデバイスに位置的に近いそれぞれのアシスタントデバイスのための固有の識別子(または標識)(たとえば、図1のデバイス特定エンジン140を使用して決定される)を取得する。含まれる場合、サブブロック354Dにおいて、システムは、追加または代替として、エコシステムに関連するユーザのユーザ選好を取得する。
ブロック356において、システムは、デバイス固有信号を処理して、所与のアシスタントデバイスのためのセマンティック標識候補を生成する。1つまたは複数のデバイス固有信号が所与のアシスタントデバイスにおいて以前に受け取られた複数のクエリまたはコマンドを含む実装形態では、複数のクエリまたはコマンド(またはそれに対応するテキスト)は、複数のクエリまたはコマンドを1つまたは複数の異種のセマンティックカテゴリへと分類するために、セマンティック分類器を使用して処理され得る。たとえば、料理レシピに関連するクエリおよび台所のスマートオーブンまたはスマートコーヒーメーカーを制御することに関連するコマンドを、料理カテゴリまたは台所カテゴリへと分類することができ、気象に関連するクエリを気象カテゴリへと分類することができ、照明を制御することに関連するコマンドを照明カテゴリへと分類することができ、以下同様である。1つまたは複数のデバイス固有信号が、追加または代替として、所与のアシスタントデバイスにおいて検出される周辺雑音のインスタンスを含む実装形態では、周辺雑音のインスタンスは、周辺雑音のインスタンスの各々を1つまたは複数の異種のセマンティックカテゴリへと分類するために、周辺雑音検出モデルを使用して処理され得る。たとえば、周辺雑音のインスタンスが、電子レンジが鳴動すること、フライパンで食べ物が焼かれること、フードプロセッサが食べ物を処理することなどに対応すると決定される場合、周辺雑音のインスタンスは料理カテゴリへと分類され得る。別の例として、周辺雑音のインスタンスが、電動丸鋸の作動、金槌を打つことなどに対応すると決定される場合、周辺雑音のインスタンスは車庫カテゴリおよび作業場カテゴリへと分類され得る。1つまたは複数のデバイス固有信号が、追加または代替として、所与のアシスタントデバイスに位置的に近いそれぞれのアシスタントデバイスの固有の識別子(または標識)を含む実装形態では、それぞれのアシスタントデバイスの固有の識別子(または標識)は、1つまたは複数の異種のセマンティックカテゴリへと分類され得る。たとえば、それぞれのアシスタントデバイスの固有の識別子(または標識)が、「コーヒーメーカー」、「オーブン」、「電子レンジ」に対応する場合、固有の識別子は台所カテゴリまたは料理カテゴリへと分類され得る。別の例として、それぞれのアシスタントデバイスの固有の識別子(または標識)が「寝室照明」および「寝室キャスティングデバイス」に対応する場合、固有の識別子は寝室カテゴリへと分類され得る。1つまたは複数のデバイス固有信号が、追加または代替として、エコシステムに関連するユーザのユーザ選好を含む実装形態では、ユーザ選好は1つまたは複数の異種のセマンティックカテゴリへと分類され得る。たとえば、ユーザが、料理、料理番組、特定の料理人に関心を持っている、および/または他の料理関連の関心があることを、ユーザ選好が示す場合、ユーザ選好は、台所カテゴリ、料理カテゴリ、または特定の料理人に関連するカテゴリへと分類され得る。
セマンティック標識候補は、1つまたは複数のデバイス固有信号の処理に基づいて生成され得る。たとえば、所与のアシスタントデバイスが、エコシステムに関連するユーザの本邸の台所または居間に位置していることを、1つまたは複数のデバイス固有信号が示すと仮定する。所与のアシスタントデバイスは、ディスプレイを有する双方向型スタンドアロンスピーカーデバイスであるとさらに仮定する。この例では、「台所表示デバイス」という第1のセマンティック標識候補および「居間表示デバイス」という第2のセマンティック標識候補が生成され得る。1つまたは複数のデバイス固有信号に基づいてセマンティック標識候補を生成することは、本明細書において(たとえば、図2Aおよび図2Bに関連して)より詳しく説明される。
ブロック358において、システムは、セマンティック標識候補の中からの所与のセマンティック標識の選択を求めるためにエコシステムに関連するユーザにプロンプトで促すかどうかを決定する。システムは、セマンティック標識候補に関連するそれぞれの信頼性レベルが閾値の信頼性レベルを満たすかどうかに基づいて、所与のセマンティック標識の選択を求めるためにユーザにプロンプトで促すかどうかを決定することができる。それぞれの信頼性レベルは、たとえば、所与のセマンティックカテゴリへと分類される1つまたは複数のデバイス固有信号の量に基づいて決定され得る。たとえば、ブロック352において特定される所与のアシスタントデバイスは、自動化アシスタントのインスタンスを実装する双方向型スタンドアロンスピーカーであると仮定する。1つまたは複数のデバイス固有信号の各々が、双方向型スタンドアロンスピーカーが寝室に位置することを示すとさらに仮定する。たとえば、双方向型スタンドアロンスピーカーにおいて受け取られた以前のクエリまたはコマンドが目覚ましもしくは就寝ルーティンに関連することに基づいて、いびきを含む周辺雑音のインスタンスに基づいて、ならびに/または、他のアシスタントデバイスが「寝室照明」および「寝室キャスティングデバイス」という固有の識別子(または標識)を有することに基づいて。この例では、双方向型スタンドアロンスピーカーが、エコシステムに関連するユーザの本邸の寝室に関連するので、システムは「寝室スピーカーデバイス」というセマンティック標識に確信を持つことがある。しかしながら、双方向型スタンドアロンスピーカーにおいて受け取られるクエリまたはコマンドの一部が料理レシピに関連する場合、システムは、「寝室スピーカーデバイス」というセマンティック標識についてあまり確信を持たないことがある。
ブロック358の反復において、システムが、所与のセマンティック標識の選択を求めるためにユーザにプロンプトで促さないと決定する場合、システムはブロック360に進み得る。ブロック360において、システムは、エコシステムの中のデバイストポロジー表現において、セマンティック標識候補の中から所与のセマンティック標識を所与のアシスタントデバイスに自動的に割り当てる。エコシステムのデバイストポロジー表現は、エコシステムの中のアシスタントデバイスの1つまたは複数においてローカルに、および/またはエコシステムの中のアシスタントデバイスの1つまたは複数と通信している遠隔システムにおいて記憶され得る。いくつかの実装形態では、所与のセマンティック標識は、所与のアシスタントデバイスに関連する唯一のセマンティック標識であってもよく(および任意選択で、所与のアシスタントデバイスに割り当てられる他の固有の識別子または標識を置き換えてもよく)、一方、他の実装形態では、所与のセマンティック標識は、所与のアシスタントデバイスに割り当てられる固有の識別子または標識のリストに追加されてもよい。システムは次いで、ブロック352に戻り、エコシステムの中の複数のアシスタントデバイスの中から追加の所与のアシスタントデバイスを特定し、追加の所与のセマンティック標識を生成して追加の所与のアシスタントデバイスに割り当て得る。
ブロック358の反復において、システムが、所与のセマンティック標識の選択を求めるためにユーザにプロンプトで促すと決定する場合、システムはブロック362に進み得る。ブロック362において、システムは、セマンティック標識候補に基づいて、クライアントデバイスのユーザに所与のセマンティック標識の選択を求めるためのプロンプトを生成する。ブロック364において、システムは、ユーザのクライアントデバイスにおいてプロンプトがレンダリングされるようにする。プロンプトは、ユーザのクライアントデバイスにおいて視覚的および/または聴覚的にレンダリングされてもよく、任意選択で、プロンプトがレンダリングされるクライアントデバイスの能力に基づいてもよい。たとえば、プロンプトは、クライアントデバイスにおいて入手可能なソフトウェアアプリケーション(たとえば、エコシステムまたはエコシステムに含まれるアシスタントデバイスの1つまたは複数に関連するソフトウェアアプリケーション)を介してレンダリングされ得る。この例では、クライアントデバイスがディスプレイを含む場合、プロンプトは、ソフトウェアアプリケーション(またはクライアントデバイスのホーム画面)を介して視覚的に、および/または、クライアントデバイスのスピーカーを介して聴覚的にレンダリングされ得る。しかしながら、クライアントデバイスがディスプレイを含まない場合、プロンプトは、クライアントデバイスのスピーカーを介して聴覚的にのみレンダリングされ得る。ブロック366において、システムは、プロンプトに応答した所与のセマンティック標識の選択を受け取る。ユーザのクライアントデバイスは、たとえば、ブロック352において特定された所与のアシスタント、または別個のクライアントデバイス(たとえば、ユーザのモバイルデバイス、またはプロンプトをレンダリングすることが可能なエコシステムの中の任意の他のアシスタントデバイス)であり得る。たとえば、システムが、「寝室スピーカーデバイス」および「台所スピーカーデバイス」というセマンティック標識候補を生成したと仮定する。この例では、システムは、これらのセマンティック標識の両方に関連する選択可能な要素を含むプロンプトを生成し、所与のアシスタントデバイスに割り当てられるべき所与のセマンティック標識として、所与のアシスタントデバイスに割り当てるべきセマンティック標識候補のうちの1つを選択するための入力(たとえば、タッチまたは音声)を提供するようにユーザに要求することができる。ブロック368において、システムは、エコシステムのデバイストポロジー表現において、ブロック360に関して上で説明されたのと同様の方式で、所与のセマンティック標識を所与のアシスタントデバイスに割り当てる。
ここで図4を見ると、エコシステムの中のアシスタントデバイスにおいて受け取られるクエリまたはコマンドを満足させる際に割り当てられたセマンティック標識を使用する例示的な方法400を示すフローチャートが示されている。便宜的に、方法400の動作は、動作を実行するシステムに関連して説明される。方法400のシステムは、コンピューティングデバイスの1つまたは複数のプロセッサおよび/または他のコンポーネントを含む。たとえば、方法400のシステムは、図1、図2A、もしくは図2Bのアシスタント入力デバイス106、図1、図2A、もしくは図2Bのアシスタント非入力デバイス185、図5のコンピューティングデバイス510、1つもしくは複数のサーバ、他のコンピューティングデバイス、および/またはそれらの任意の組合せによって実装され得る。その上、方法400の動作は特定の順序で示されるが、これは限定することは意図されない。1つまたは複数の動作が、並べ替えられ、省略され、かつ/または追加されてもよい。
ブロック452において、システムは、複数のアシスタントデバイスを含むエコシステムの中のそれぞれのアシスタントデバイスのそれぞれのマイクロフォンを介して、ユーザの発話に対応するオーディオデータを受け取る。ユーザはエコシステムと関連付けられ得る。
ブロック454において、システムは、オーディオデータを処理して、発話に含まれるクエリまたはコマンドのセマンティック特性を特定する。クエリまたはコマンドのセマンティック特性は、語または語句などの言語単位に対応してもよく、これは、その語および/または語句の関連する分野または関連するセットを定義する。いくつかの実装形態では、システムは、発話認識モデルを使用してオーディオデータを処理し、オーディオデータにおいて捉えられた発話をテキストへと変換することができ、セマンティック分類器を使用して、認識されたテキストに基づいてセマンティック特性を特定することができる。追加または代替の実装形態では、システムは、セマンティック分類器を使用してオーディオデータを処理することができ、オーディオデータに基づいてセマンティック特性を直接特定することができる。たとえば、ブロック452において受け取られる発話が「チリのレシピを見せて」であると仮定する。この例では、発話(またはそれに対応するテキスト)を、セマンティック分類器を使用して処理し、「チリ」、「食べ物」、「台所」、および/または「料理」というセマンティック特性を特定することができる。特に、ブロック454において特定されるセマンティック特性は、発話に含まれる1つもしくは複数の用語もしくは語句を含んでもよく、または、発話が分類される所与のセマンティックカテゴリを含んでもよい。
ブロック456において、システムは、発話に含まれるクエリまたはコマンドを満足させる際に利用すべき所与のアシスタントデバイスを、発話が指定するかどうかを決定する。ブロック456の反復において、クエリまたはコマンドを満足させる際に利用されるべき所与のアシスタントデバイスを発話が指定するとシステムが決定する場合、システムはブロック466に進み得る。ブロック466は以下で説明される。たとえば、ブロック452において受け取られる発話が「台所表示デバイスでチリのレシピを見せて」であると仮定する。この例では、システムは、発話を提供したユーザに「チリのレシピ」を提示するために「台所表示デバイス」が利用されるべきであることをユーザが指定したので、「台所表示デバイス」を利用することができる。結果として、システムは、発話を満足させるために「台所表示デバイス」を選択することができる。ブロック456の反復において、システムが、クエリまたはコマンドを満足させる際に利用されるべき所与のアシスタントデバイスを発話が指定しないと決定する場合、システムはブロック458に進み得る。たとえば、ブロック452において受け取られる発話が単に、発話を満足させるべきアシスタントデバイスを指定することなく「チリのレシピを見せて」であると仮定する。この例では、システムは、発話を満足させるべき所与のアシスタントデバイスを発話が指定しないと決定することができる。結果として、システムは、エコシステムの中のどのアシスタントデバイスが発話を満足させるために利用されるべきかを決定する必要がある。
ブロック458において、システムは、ブロック454において特定されたセマンティック特性が、複数のアシスタントデバイスのうちの所与のアシスタントデバイスに割り当てられる所与のセマンティック標識と一致するかどうかを決定する。システムは、セマンティック特性の1つまたは複数の用語に対応する埋め込みを生成することができ、エコシステムの中の複数のアシスタントデバイスの1つまたは複数に割り当てられるそれぞれのセマンティック標識の1つまたは複数のそれぞれの用語に対応する複数の埋め込みと、セマンティック特性の埋め込みを比較することができる。さらに、システムは、セマンティック特性の埋め込みが、エコシステムの中の複数のアシスタントデバイスの1つまたは複数に割り当てられるそれぞれのセマンティック標識の複数の埋め込みのいずれかと一致するかどうかを決定することができる。たとえば、システムは、セマンティック特性の埋め込みと、エコシステムの中の複数のアシスタントデバイスの1つまたは複数に割り当てられるそれぞれのセマンティック標識の複数の埋め込みの各々との間の距離の尺度を決定することができる。さらに、システムは、距離の尺度が閾値の距離を満たすかどうかを(たとえば、厳密な一致か、または大まかな一致かを特定するために)決定することができる。
ブロック458の反復において、システムが、ブロック454において特定されるセマンティック特性が所与のアシスタントデバイスに割り当てられる所与のセマンティック標識と一致すると決定する場合、システムはブロック460に進み得る。ブロック460において、システムは、エコシステムのデバイストポロジー表現における所与のセマンティック標識に関連する所与のクライアントデバイスが、発話に含まれるクエリまたはコマンドを満足させるようにする。システムは次いで、ブロック452に戻り、エコシステムの中の複数のアシスタントデバイスのそれぞれのマイクロフォンを介して追加のオーディオを監視し得る。より具体的には、システムは、所与のアシスタントデバイスに、発話を満足させるための1つまたは複数の行動を実行させることができる。たとえば、ブロック452において受け取られた発話が「チリのレシピを見せて」であり、特定されたセマンティック特性が「チリ」、「食べ物」、「台所」、および/または「料理」であると仮定する。所与のアシスタントデバイスに割り当てられるセマンティック標識が「台所表示デバイス」であるとさらに仮定する。この例では、システムは、セマンティック標識「台所表示デバイス」を割り当てられる所与のアシスタントデバイスを、発話がこのアシスタントデバイスにおいて受け取られなかった場合であっても選択することができる。さらに、システムは、セマンティック標識「台所表示デバイス」を割り当てられる所与のアシスタントデバイスに、それぞれのアシスタントデバイスのそれぞれのマイクロフォンによって発話が受け取られたことに応答して、チリのレシピを視覚的にレンダリングさせることができる。
様々な実装形態において、エコシステムの中の複数のアシスタントデバイスが、発話に基づいて特定されるセマンティック特性と一致するセマンティック標識を割り当てられることがある。特に、わかりやすくするために図4には図示されていないが、システムは、発話を満足させるための1つまたは複数のアシスタントデバイスを選択する際に、近接度情報を使用すること(たとえば、図1のクエリ/コマンド処理エンジン170に関して上で説明された)に加えて、またはその代わりに、ブロック454において特定されるセマンティック特性が複数のアシスタントデバイスのうちの所与のアシスタントデバイスに割り当てられる所与のセマンティック標識と一致するかどうかを決定し得る。上記の例について続けると、セマンティック標識「台所表示デバイス」を割り当てられる複数のアシスタントデバイスがあると仮定する。この例では、エコシステムにおいてユーザに最も近い、セマンティック標識「台所表示デバイス」を割り当てられる複数のアシスタントデバイスのアシスタントデバイスが、発話を満足させるために利用され得る。その上、わかりやすくするために図4には図示されていないが、システムは、発話を満足させるための1つまたは複数のアシスタントデバイスを選択する際に、デバイス能力情報(たとえば、図1のクエリ/コマンド処理エンジン170に関して上で説明された)を使用することに加えて、またはその代わりに、ブロック454において特定されたセマンティック特性が、複数のアシスタントデバイスのうちの所与のアシスタントデバイスに割り当てられる所与のセマンティック標識と一致するかどうかを決定し得る。上記の例について続けると、表示デバイスを有する第1のアシスタントデバイスがセマンティック標識「台所表示デバイス」を割り当てられ、表示デバイスを有しない第2のアシスタントデバイスがセマンティック標識「台所スピーカーデバイス」を割り当てられると仮定する。この例では、発話を満足させるために、セマンティック標識「台所表示デバイス」を割り当てられる第1のアシスタントデバイスを、セマンティック標識「台所スピーカーデバイス」を割り当てられる第2のアシスタントデバイスより優先して選択することができ、それは、発話がチリのレシピを「見せて」と指定しており、第1のアシスタントデバイスが発話に応答してチリのレシピを表示できる一方、第2のアシスタントデバイスはチリのレシピを表示できないからである。
ブロック458の反復において、システムが、ブロック454において特定されるセマンティック特性がエコシステムの中のアシスタントデバイスのいずれに割り当てられるいずれのセマンティック標識とも一致しないと決定する場合、システムはブロック462に進み得る。ブロック462において、システムは、ユーザに近い所与のアシスタントデバイスを特定する。たとえば、システムは、エコシステムにおいてユーザに最も近い所与のアシスタントデバイスを(たとえば、図1の存在センサ105に関して説明されたように)特定し得る。
ブロック464において、システムは、ブロック462において特定された所与のアシスタントデバイスがクエリまたはコマンドを満足させることができるかどうかを決定する。アシスタントデバイスの各々の能力は、エコシステムのデバイストポロジー表現において、およびそれぞれのアシスタントデバイスに関連して(たとえば、それぞれのアシスタントデバイスのデバイス属性として)記憶され得る。ブロック464の反復において、システムが、ブロック462において特定された所与のアシスタントデバイスがクエリまたはコマンドを満足させることができないと決定する場合、システムは、ブロック462に戻り、やはりユーザに近い追加の所与のアシスタントデバイスを特定し得る。システムは再びブロック464に進み、ブロック462の後続の反復において特定される追加の所与のアシスタントデバイスがクエリまたはコマンドを満足させることができるかどうかを決定し得る。クエリまたはコマンドを満足させることができるアシスタントデバイスが特定されるまで、システムはこのプロセスを繰り返し得る。たとえば、ブロック462において特定されたアシスタントデバイスは、ディスプレイのないスタンドアロンスピーカーデバイスであるが、発話を満足させるためにディスプレイが必要とされると仮定する。この例では、システムは、ブロック462において特定されたアシスタントデバイスがブロック464における発話を満足させることができないと決定してもよく、ブロック462に戻り、ユーザの近くにある追加のアシスタントデバイスをブロック462において特定してもよい。ブロック464の反復において、ブロック462において特定された所与のアシスタントデバイスがクエリまたはコマンドを満足させることができるとシステムが決定する場合、システムはブロック462に進み得る。上の例について続けると、ブロック462の最初の反復において特定された所与のアシスタントデバイスが、ディスプレイを含むスタンドアロンスピーカーデバイスであると、または、ブロック462の追加の反復において特定された追加のアシスタントデバイスが、ディスプレイを有するスタンドアロンスピーカーデバイスであるとさらに仮定する。この例では、システムは、ブロック462の後続の反復において特定されたアシスタントデバイスがブロック464の発話を満足させることができると決定してもよく、システムはブロック466に進み得る。
ブロック466において、システムは、所与のアシスタントデバイスが、発話に含まれるクエリまたはコマンドを満足させるようにする。システムは、ブロック460に関して上で説明されたのと同様の方式で発話を満足させることができる。システムは次いで、ブロック452に戻り、エコシステムの中の複数のアシスタントデバイスのそれぞれのマイクロフォンを介して、追加のオーディオデータを監視し得る。
図5は、本明細書において説明される技法の1つまたは複数の態様を実行するために任意選択で利用され得る例示的なコンピューティングデバイス510のブロック図である。いくつかの実装形態では、アシスタント入力デバイスの1つもしくは複数、クラウドベースの自動化アシスタントコンポーネントの1つもしくは複数、1つもしくは複数のアシスタント非入力システム、1つもしくは複数のアシスタント非入力デバイス、および/または他のコンポーネントは、例示的なコンピューティングデバイス510の1つまたは複数のコンポーネントを備え得る。
コンピューティングデバイス510は通常、バスサブシステム512を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ514を含む。これらの周辺デバイスは、たとえば、メモリサブシステム525およびファイルストレージサブシステム526、ユーザインターフェース出力デバイス520、ユーザインターフェース入力デバイス522、ならびにネットワークインターフェースサブシステム516を含む、ストレージサブシステム524を含み得る。入力デバイスおよび出力デバイスは、コンピューティングデバイス510とのユーザ対話を可能にする。ネットワークインターフェースサブシステム516は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイスにおいて対応するインターフェースデバイスに結合される。
ユーザインターフェース入力デバイス522は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィクスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システム、マイクロフォンなどのオーディオ入力デバイス、および/または他のタイプの入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス510または通信ネットワークへと情報を入力するための、すべてのあり得るタイプのデバイスおよび方法を含むことが意図される。
ユーザインターフェース出力デバイス520は、ディスプレイサブシステム、プリンタ、ファックスマシン、またはオーディオ出力デバイスなどの非視覚ディスプレイを含み得る。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または目に見える画像を作成するための何らかの他の機構を含み得る。ディスプレイサブシステムは、またオーディオ出力デバイスなどを介して非視覚ディスプレイを提供し得る。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス510からユーザまたは別の機械またはコンピューティングデバイスに情報を出力するための、すべてのあり得るタイプのデバイスおよび方法を含むことが意図される。
ストレージサブシステム524は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構成物を記憶する。たとえば、ストレージサブシステム524は、本明細書において説明される方法の選択された態様を実行するための、ならびに図1に示される様々なコンポーネントを実装するための論理を含み得る。
これらのソフトウェアモジュールは一般に、単独で、または他のプロセッサと組み合わせて、プロセッサ514によって実行される。ストレージサブシステム524によって使用されるメモリ525は、プログラム実行の間に命令およびデータを記憶するためのメインランダムアクセスメモリ(RAM)530、ならびに固定された命令が記憶される読み取り専用メモリ(ROM)532を含む、いくつかのメモリを含み得る。ファイルストレージサブシステム526は、プログラムおよびデータファイルのための永続的なストレージを提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。いくつかの実装形態の機能を実装するモジュールは、ストレージサブシステム524にファイルストレージサブシステム526によって記憶され、またはプロセッサ514によってアクセス可能な他の機械に記憶され得る。
バスサブシステム512は、コンピューティングデバイス510の様々なコンポーネントおよびサブシステムに互いに意図されたように通信させるための機構を提供する。バスサブシステム512は単一のバスであるものとして概略的に示されているが、バスサブシステムの代替の実装形態は複数のバスを使用し得る。
コンピューティングデバイス510は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む、様々なタイプであり得る。コンピュータおよびネットワークの変化し続ける性質により、図5に示されるコンピューティングデバイス510の説明は、いくつかの実装形態を例示することを目的とする特定の例にすぎないことが意図される。コンピューティングデバイス510の多くの他の構成は、図5に示されるコンピューティングデバイスより多数または少数のコンポーネントを有することが可能である。
本明細書において論じられるいくつかの実装形態が、ユーザについての個人情報(たとえば、他の電子通信から抽出されるユーザデータ、ユーザのソーシャルネットワークについての情報、ユーザの位置、ユーザの時間、ユーザのバイオメトリック情報、ならびにユーザの活動および属性情報、ユーザ間の関係など)を収集または使用し得る状況では、情報が収集されるかどうか、個人情報が記憶されるかどうか、個人情報が使用されるかどうか、およびユーザについての情報がどのように収集され、記憶され使用されるかを制御するための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つまたは複数に基づいて、クライアントデバイスのユーザに所与のセマンティック標識の選択を求めるためのプロンプトを生成するステップであって、選択がセマンティック標識候補の1つまたは複数の中からである、ステップと、ユーザのクライアントデバイスにおいてプロンプトがレンダリングされるようにするステップと、プロンプトに応答した所与のセマンティック標識の選択を受け取ったことに応答して、エコシステムのデバイストポロジー表現において、所与のセマンティック標識を所与のアシスタントデバイスに割り当てるステップとを含む。
本明細書において開示される技術のこれらおよび他の実装形態は、以下の特徴のうちの1つまたは複数を含み得る。
いくつかの実装形態では、1つまたは複数のデバイス固有信号は、所与のアシスタントデバイスに関連するデバイス活動であって、所与のアシスタントデバイスに関連するデバイス活動が所与のアシスタントデバイスにおいて以前に受け取られた複数のクエリもしくはコマンドを備える、デバイス活動、所与のアシスタントデバイスにおいて以前に検出された周辺雑音であって、発話受け入れがアクティブであったときに所与のアシスタントデバイスにおいて以前に検出された、周辺雑音、または、エコシステムの中の所与のアシスタントデバイスに位置的に近い複数のアシスタントデバイスの1つまたは複数のためのそれぞれの固有の識別子のうちの2つ以上を含み得る。
いくつかの実装形態では、1つまたは複数のプロセッサによって実施される方法が提供され、方法は、エコシステムの中の複数のアシスタントデバイスの中から所与のアシスタントデバイスを特定するステップと、所与のアシスタントデバイスに関連する1つまたは複数のデバイス固有信号を取得するステップであって、1つまたは複数のデバイス固有信号が所与のアシスタントデバイスによって生成または受信される、ステップと、デバイス固有信号の1つまたは複数に基づいて、所与のアシスタントデバイスのための所与のセマンティック標識を決定するステップと、エコシステムのデバイストポロジー表現において、所与のセマンティック標識を所与のアシスタントデバイスに割り当てるステップと、エコシステムのデバイストポロジー表現において所与のセマンティック標識を所与のアシスタントデバイスに割り当てた後で、エコシステムの中の複数のアシスタントデバイスのうちの1つの1つまたは複数のそれぞれのマイクロフォンを介して、エコシステムに関連するユーザから、発話に対応するオーディオデータを受信するステップであって、発話がクエリまたはコマンドを含む、ステップと、発話に対応するオーディオデータを処理してクエリまたはコマンドのセマンティック特性を決定するステップと、クエリまたはコマンドのセマンティック特性が所与のアシスタントデバイスに割り当てられる所与のセマンティック標識と一致すると決定するステップと、クエリまたはコマンドのセマンティック特性が所与のアシスタントデバイスに割り当てられる所与のセマンティック標識と一致すると決定したことに応答して、所与のアシスタントデバイスがクエリまたはコマンドを満足させるようにするステップとを含む。
加えて、いくつかの実装形態は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサ(たとえば、中央処理装置(CPU)、グラフィクス処理装置(GPUおよび/またはテンソル処理ユニット(TPU)))を含み、1つまたは複数のプロセッサは関連するメモリに記憶されている命令を実行するように動作可能であり、命令は前述の方法のいずれかの実行を引き起こすように構成される。いくつかの実装形態はまた、前述の方法のいずれかを実行するように1つまたは複数のプロセッサによって実行可能なコンピュータ命令を記憶する、1つまたは複数の非一時的コンピュータ可読記憶媒体を含む。いくつかの実装形態は、前述の方法のいずれかを実行するように1つまたは複数のプロセッサによって実行可能な命令を含むコンピュータプログラム製品も含む。
本明細書においてより詳しく説明される前述の概念および追加の概念のすべての組合せが、本明細書において開示される主題の一部であるものとして考えられることを理解されたい。たとえば、本開示の終わりに現れる特許請求される主題のすべての組合せが、本明細書において開示される主題の一部であると考えられる。