(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-12
(45)【発行日】2024-12-20
(54)【発明の名称】自動アシスタントデバイス間のウォームワードアービトレーション
(51)【国際特許分類】
G10L 15/10 20060101AFI20241213BHJP
G06F 3/16 20060101ALI20241213BHJP
G10L 15/00 20130101ALI20241213BHJP
【FI】
G10L15/10 200W
G06F3/16 650
G10L15/00 200N
G10L15/00 200Z
(21)【出願番号】P 2024535987
(86)(22)【出願日】2022-12-08
(86)【国際出願番号】 US2022052296
(87)【国際公開番号】W WO2023114087
(87)【国際公開日】2023-06-22
【審査請求日】2024-06-14
(32)【優先日】2021-12-17
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2022-01-11
(33)【優先権主張国・地域又は機関】US
【早期審査対象出願】
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】マシュー・シャリフィ
(72)【発明者】
【氏名】ヴィクター・カルブネ
【審査官】大野 弘
(56)【参考文献】
【文献】特開2019-207710(JP,A)
【文献】特開2017-227912(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/10
G06F 3/16
G10L 15/00
(57)【特許請求の範囲】
【請求項1】
1つまたは複数のプロセッサによって実装される方法であって、
第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスとの間でウォームワードアービトレーションが開始されることを決定することであって、前記1つまたは複数の追加アシスタントデバイスは第2アシスタントデバイスを含み、前記第1アシスタントデバイスと前記1つまたは複数の追加アシスタントデバイスはアシスタントデバイスのグループに含まれる、決定することと、
前記ウォームワードアービトレーションが開始されることを決定することに応じて、ウォームワードアービトレーションを実行することと、
を含み、前記ウォームワードアービトレーションは、
前記第1アシスタントデバイスによって、前記アシスタントデバイスのグループ内の前記1つまたは複数の追加アシスタントデバイスに、前記第1アシスタントデバイスのアクティブ化されたウォームワードのセットをブロードキャストすることと、
前記アシスタントデバイスのグループ内の前記1つまたは複数の追加アシスタントデバイスのそれぞれについて、前記追加アシスタントデバイスから、前記追加アシスタントデバイスのアクティブ化されたウォームワードのセットを受信することと、
一致するウォームワードが前記第1アシスタントデバイスの前記アクティブ化されたウォームワードのセットに含まれており、かつ前記第2アシスタントデバイスの前記アクティブ化されたウォームワードのセットに含まれていることに基づいて、前記一致するウォームワードを識別することと、
前記一致するウォームワードを識別することに応じて、前記第1アシスタントデバイスによって前記一致するウォームワードの検出を有効化または無効化することと、
を含む、方法。
【請求項2】
無線プロトコルを使用して、前記アシスタントデバイスのグループ内の前記追加アシスタントデバイスを発見することをさらに含む、請求項1に記載の方法。
【請求項3】
前記ウォームワードアービトレーションが開始されることを決定することは、前記アシスタントデバイスのグループ内の新しいアシスタントデバイスの発見に基づいている、
請求項1に記載の方法。
【請求項4】
前記ウォームワードアービトレーションが開始されることを決定することは、前記アシスタントデバイスのグループからアシスタントデバイスが削除されたと決定することに基づいている、
請求項1に記載の方法。
【請求項5】
前記ウォームワードアービトレーションが開始されることを決定することは、前記第1アシスタントデバイスの前記アクティブ化されたウォームワードのセットにおけるウォームワードの追加またはウォームワードの削除に基づいている、
請求項1に記載の方法。
【請求項6】
前記ウォームワードアービトレーションが開始されることを決定することは、前記第1アシスタントデバイスによって検出された周囲の状況の変化に基づいている、
請求項1に記載の方法。
【請求項7】
前記第1アシスタントデバイスによって、前記アシスタントデバイスのグループ内の前記1つまたは複数の追加アシスタントデバイスに、前記第1アシスタントデバイスの前記アクティブ化されたウォームワードのセットのウォームワードごとに、前記ウォームワードの親和性スコアをブロードキャストすることと、
前記アシスタントデバイスのグループ内の前記1つまたは複数の追加アシスタントデバイスのそれぞれについて、前記追加アシスタントデバイスから、前記追加アシスタントデバイスの前記アクティブ化されたウォームワードのセットのウォームワードごとに、前記ウォームワードの親和性スコアを受信することと、
をさらに含み、
前記一致するウォームワードを識別することに応じて、前記第1アシスタントデバイスによって前記一致するウォームワードの検出を有効化または無効化することは、前記第1アシスタントデバイスの前記一致するウォームワードの前記親和性スコアと、前記第2アシスタントデバイスの前記一致するウォームワードの前記親和性スコアとに基づいている、
請求項1に記載の方法。
【請求項8】
前記第1アシスタントデバイスの前記アクティブ化されたウォームワードのセットのウォームワードごとに、前記第1アシスタントデバイスによる前記ウォームワードの検出頻度に基づいて、前記ウォームワードの前記親和性スコアが決定され、
前記1つまたは複数の追加アシスタントデバイスのそれぞれについて、
前記追加アシスタントデバイスの前記アクティブ化されたウォームワードのセットのウォームワードごとに、前記追加アシスタントデバイスによる前記ウォームワードの検出頻度に基づいて、前記ウォームワードの前記親和性スコアが決定される、
請求項7に記載の方法。
【請求項9】
前記第1アシスタントデバイスの前記アクティブ化されたウォームワードのセットのウォームワードごとに、前記第1アシスタントデバイスによって前記ウォームワードが直近で検出された時間に基づいて、前記ウォームワードの前記親和性スコアが決定され、
前記1つまたは複数の追加アシスタントデバイスのそれぞれについて、
前記追加アシスタントデバイスの前記アクティブ化されたウォームワードのセットのウォームワードごとに、前記追加アシスタントデバイスによって前記ウォームワードが直近で検出された時間に基づいて、前記ウォームワードの前記親和性スコアが決定される、
請求項7に記載の方法。
【請求項10】
前記第1アシスタントデバイスの前記アクティブ化されたウォームワードのセットのウォームワードごとに、前記第1アシスタントデバイスのデバイス特徴に基づいて、前記ウォームワードの前記親和性スコアが決定され、
前記1つまたは複数の追加アシスタントデバイスのそれぞれについて、
前記追加アシスタントデバイスの前記アクティブ化されたウォームワードのセットのウォームワードごとに、前記追加アシスタントデバイスのデバイス特徴に基づいて、前記ウォームワードの前記親和性スコアが決定される、
請求項7に記載の方法。
【請求項11】
前記第1アシスタントデバイスによって前記一致するウォームワードの検出を有効化または無効化する際、前記第1アシスタントデバイスは、前記ウォームワードの検出を無効化し、
前記第1アシスタントデバイスによって前記ウォームワードの検出を無効化することに応じて、前記第1アシスタントデバイスの前記アクティブ化されたウォームワードのセットに新しいウォームワードを追加することをさらに含む、
請求項1に記載の方法。
【請求項12】
ウォームワードアービトレーションプロセスの反復において、一致するウォームワードが検出されなくなるまで、前記ウォームワードアービトレーションプロセスを繰り返すことをさらに含む、
請求項1に記載の方法。
【請求項13】
前記第1アシスタントデバイスのマイクを介して発話を検出することと、
前記第1アシスタントデバイスによって、前記一致するウォームワードのオンデバイスウォームワード検出モデルを使用して、前記発話において前記一致するウォームワードの発生を識別することと、
前記一致するウォームワードに先行する、または前記一致するウォームワードに続く前記発話の少なくとも一部に対して自動音声認識を実行することに基づいて、前記第2アシスタントデバイスが前記一致するウォームワードにマッピングされたコマンドのターゲットであると決定することと、
前記第2アシスタントデバイスが前記一致するウォームワードにマッピングされた前記コマンドの前記ターゲットであるとの決定に応じて、前記一致するウォームワードにマッピングされた前記コマンドを前記第2アシスタントデバイスに送ることと、
をさらに含む、
請求項1に記載の方法。
【請求項14】
前記第1アシスタントデバイスと前記1つまたは複数の追加アシスタントデバイスとが近接して位置しているとの決定に基づいて、前記第1アシスタントデバイスと前記1つまたは複数の追加アシスタントデバイスとを前記アシスタントデバイスのグループに含めるように決定することをさらに含む、
請求項1に記載の方法。
【請求項15】
前記第1アシスタントデバイスと前記1つまたは複数の追加アシスタントデバイスとがそれぞれ同じ発話を検出することに基づいて、前記アシスタントデバイスのグループが前記第1アシスタントデバイスと前記1つまたは複数の追加アシスタントデバイスとを含むと決定することをさらに含む、
請求項1に記載の方法。
【請求項16】
1つまたは複数のプロセッサによって実装される方法であって、
第1アシスタントデバイス上でアクティブなオンデバイスウォームワード検出モデルの第1セットと、第2アシスタントデバイス上でアクティブなオンデバイスウォームワード検出モデルの第2セットを識別することであって、前記第1アシスタントデバイス及び前記第2アシスタントデバイスは近接して位置している、識別することと、
前記オンデバイスウォームワード検出モデルの第1セットと前記オンデバイスウォームワード検出モデルの第2セットとの両方に含まれる重複するオンデバイスウォームワード検出モデルを識別することと、
前記重複するオンデバイスウォームワード検出モデルを識別することに応じて、かつ前記第1アシスタントデバイスと前記第2アシスタントデバイスとが近接して位置していると決定されることに基づいて、前記第1アシスタントデバイスと前記第2アシスタントデバイスとのいずれか一方の前記重複するオンデバイスウォームワード検出モデルを無効化することと、
を含む、方法。
【請求項17】
前記第1アシスタントデバイスと前記第2アシスタントデバイスとがそれぞれ同じ発話を検出することに基づいて、前記第1アシスタントデバイスと第2アシスタントデバイスとが近接して位置していると決定される、請求項16に記載の方法。
【請求項18】
前記第1アシスタントデバイスと前記第2アシスタントデバイスのそれぞれについて、前記重複するオンデバイスウォームワード検出モデルに関連付けられたウォームワードの親和性スコアを識別することをさらに含み、
前記第1アシスタントデバイスと前記第2アシスタントデバイスとのいずれか一方の前記重複するオンデバイスウォームワード検出モデルを無効化することは、前記親和性スコアに基づいている、
請求項16に記載の方法。
【請求項19】
前記重複するオンデバイスウォームワード検出モデルに関連付けられた前記ウォームワードの前記親和性スコアは、前記ウォームワードの検出頻度に基づいて決定される、請求項18に記載の方法。
【請求項20】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1~19のいずれか一項に記載の方法を実行させる命令を含む
コンピュータプログラム。
【請求項21】
1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに請求項1~19のいずれか一項に記載の方法を実行させる命令を含むコンピュータ可読記憶媒体。
【請求項22】
プロセッサ、コンピュータ可読メモリ、1つまたは複数のコンピュータ可読記憶媒体、及び前記1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されているプログラム命令を備え、前記プログラム命令は請求項1~19のいずれか一項に記載の方法を実行するために実行可能であるシステム。
【発明の詳細な説明】
【背景技術】
【0001】
人間は、本明細書では「自動アシスタント」と呼ばれる(「デジタルアシスタント」、「デジタルエージェント」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話エージェント」などとも呼ばれる)インタラクティブソフトウェアアプリケーションを使用して、人間とコンピュータの対話を行うことができる。例えば、人間(自動アシスタントとインタラクションを行うときに、「ユーザ」と呼ばれることがある)は、音声による自然言語入力(すなわち、発話)を使用して自動アシスタントにコマンド及び/または要求を提供することができ、これらは、テキスト(例えば、タイプ入力)による自然言語入力の提供によって、及び/またタッチ及び/または発話のない物理的な動き(複数可)(例えば、手のジェスチャー(複数可)、視線、顔の動きなど)によってテキストに変換されてから処理される場合がある。自動アシスタントは一般に、応答性の高いユーザインターフェース出力(例えば、可聴及び/または視覚的ユーザインターフェース出力)の提供によって、1つまたは複数のスマートデバイスの制御によって、及び/または自動アシスタントを実装するデバイスの1つ以上の機能(複数可)の制御(例えば、デバイスの他のアプリケーション(複数可)の制御)によって、要求に応答する。
【0002】
自動アシスタントは、クライアントデバイス上で実行されるソフトウェアアプリケーションであってよい。クライアントデバイスは、スタンドアロン型インタラクティブスピーカ、スタンドアロン型インタラクティブディスプレイデバイス(スピーカ及び/またはカメラも含み得る)、スマートテレビ(または自動アシスタント機能付きのネットワーク接続されたドングルを備えた標準テレビ)などのスマートアプライアンス、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(例えば、車載通信システム、車載エンターテイメントシステム、車載ナビゲーションシステム)、及び/またはコンピューティングデバイスを含むユーザのウェアラブル装置(例えば、コンピューティングデバイスを有するユーザの時計、コンピューティングデバイスを有するユーザのメガネ、仮想または拡張現実コンピューティングデバイス)であってよい。
【0003】
自動アシスタントは通常、ユーザ要求の処理においてコンポーネントのパイプラインに依存する。例えば、ホットワード検出エンジンを使用して、音声によるホットワード(ウェイクワード)(例えば、「OKアシスタント」)の発生を監視することによってオーディオデータを処理することができ、発生の検出に応じて他のコンポーネント(複数可)による処理を実行させる。別の例として、自動音声認識(ASR)エンジンを使用して、発話を含むオーディオデータを処理し、ユーザの発話の転写(すなわち、言葉(複数可)のシーケンス及び/または他のトークン(複数可)のシーケンス)を生成することができる。ASRエンジンは、ホットワード検出エンジンによって検出されるように、音声によるホットワードの後続の発生に基づいて、及び/または自動アシスタントの他の呼び出し(複数可)に応じて、オーディオデータを処理できる。別の例として、自然言語理解(NLU)エンジンを使用して、要求のテキスト(例えば、ASRを使用して発話から変換されたテキスト)を処理し、テキストの意味表現である記号表現または信念状態を生成することができる。例えば、信念状態は、テキストに対応するインテント(複数可)と、任意選択でインテント(複数可)のパラメータ(複数可)(例えば、スロット値)を含む場合がある。信念状態は、1つまたは複数のダイアログターンを通じて完全に形成されると(例えば、すべての必須パラメータが解決されると)、発話に応じて実行されるアクション(複数可)を表す。その後、別の実行コンポーネントは、完全に形成された信念状態を利用して、信念状態に対応するアクション(複数可)を実行できる。
【0004】
自動アシスタントは、特定の音声によるウォームワード(例えば、「停止」、「音量を上げる」、「音量を下げる」、または「次へ」)の発生を監視することによってオーディオデータを処理し、特定のウォームワードの発生を検出すると、その特定のウォームワードにマッピングされたコマンドを実行するのに使用できる1つまたは複数のウォームワード検出エンジンも含むことができる。環境(例えば、ユーザの自宅の部屋などの特定の場所)は、近くにある自動アシスタントを実行する複数のクライアントデバイス(すなわち、自動アシスタントデバイス)を含み得る。ある環境において、複数の自動アシスタントデバイスは、近接している結果として、それぞれユーザから同じ発話を検出する(例えば、マイク(複数可)を介して)場合がある。特定のウォームワードについては、環境における複数の自動アシスタントデバイスが、特定のウォームワードを検出できる場合がある。したがって、ある環境において、2つ以上の自動アシスタントデバイスが、特定のウォームワードを含む発話に応答できる場合がある。
【0005】
リソースの制約(メモリの制約や処理の制約など)により、特定の自動アシスタントは、限られた数のウォームワード検出エンジンしか利用できない可能性があり、及び/または任意の所与の時点で限られた数のウォームワードしか検出できない可能性がある。これは、特に古いデバイス及び/またはリソースアシスタントの少ないデバイスに当てはまる可能性があり、これのデバイスは、(a)様々なコンポーネント(複数可)を実行する、及び/または関連するモデル(複数可)を利用する処理能力及び/またはメモリ容量不足である、(b)及び/または、様々な関連モデル(複数可)を保存するためのディスク容量不足である可能性がある。さらに、2台以上の自動アシスタントデバイスがそれぞれ同じ発話を検出し、その発話で特定のウォームワードをそれぞれ検出し、及び/または特定のウォームワードにマッピングされたコマンドを実行させるようにそれぞれが応答する場合、コンピューティングリソースが無駄になるおそれがある。
【発明の概要】
【0006】
本明細書に開示されるいくつかの実施態様は、自動アシスタントデバイス間のウォームワードアービトレーション(warm word arbitration)に関するものである。本明細書におけるより詳細な記載のとおり、環境内で近接して位置する2つ以上の自動アシスタントデバイスは、ウォームワードアービトレーションを実行して、環境内の各自動アシスタントデバイスによって検出されるウォームワードを決定することができる。実施態様により、2つ以上の自動アシスタントデバイスが同じウォームワードを検出する発生を減らすか回避することで、全体的な処理コストを削減できる。さらに、特定の環境内で複数の自動アシスタントデバイス全体のメモリと処理リソースをより効率的に利用することで、実施態様により、複数の自動アシスタントデバイス全体でより多くのウォームワードのセットを検出できるようになり得る。
【0007】
様々な実施態様において、1つまたは複数のプロセッサによって実装される方法は、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスとの間でウォームワードアービトレーションが開始されることを決定することであって、1つまたは複数の追加アシスタントデバイスは第2アシスタントデバイスを含み、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスはアシスタントデバイスのグループに含まれる、決定することと、ウォームワードアービトレーションが開始されることを決定することに応じて、ウォームワードアービトレーションを実行することとを含むことができ、ウォームワードアービトレーションは、第1アシスタントデバイスによって、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスに、第1アシスタントデバイスのアクティブ化されたウォームワードのセット(active set of warm words)をブロードキャストすることと、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスごとに、追加アシスタントデバイスから、追加アシスタントデバイスのアクティブ化されたウォームワードのセットを受信することと、一致するウォームワードが第1アシスタントデバイスのアクティブ化されたウォームワードのセットに含まれており、かつ第2アシスタントデバイスのアクティブ化されたウォームワードのセットに含まれていることに基づいて、一致するウォームワードを識別することと、一致するウォームワードを識別することに応じて、第1アシスタントデバイスによって一致するウォームワードの検出を有効化または無効化することとを含む。
【0008】
いくつかの実施態様では、方法は、無線プロトコルを使用して、アシスタントデバイスのグループ内の追加アシスタントデバイスを発見することをさらに含むことができる。いくつかの実施態様では、ウォームワードアービトレーションが開始されることを決定することは、アシスタントデバイスのグループ内の新しいアシスタントデバイスの発見に基づいていてもよい。いくつかの実施態様では、ウォームワードアービトレーションが開始されることを決定することは、第1アシスタントデバイスのアクティブ化されたウォームワードのセットにおけるウォームワードの追加またはウォームワードの削除に基づいていてもよい。いくつかの実施態様では、ウォームワードアービトレーションが開始されることを決定することは、第1アシスタントデバイスによって検出された周囲の状況の変化に基づいていてもよい。いくつかの実施態様では、ウォームワードアービトレーションが開始されることを決定することは、アシスタントデバイスのグループからアシスタントデバイスが削除されたと決定することに基づいていてもよい。
【0009】
いくつかの実施態様では、方法は、第1アシスタントデバイスによって、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスに、第1アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、ウォームワードの親和性スコア(affinity score)をブロードキャストすることと、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスのそれぞれについて、追加アシスタントデバイスから、追加アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、ウォームワードの親和性スコアを受信することとをさらに含むことができる。いくつかの実施態様では、一致するウォームワードを識別することに応じて、第1アシスタントデバイスによって一致するウォームワードの検出を有効化または無効化することは、第1アシスタントデバイスの一致するウォームワードの親和性スコアと、第2アシスタントデバイスの一致するウォームワードの親和性スコアとに基づいていてもよい。
【0010】
いくつかの実施態様では、第1アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、第1アシスタントデバイスによるウォームワードの検出頻度に基づいて、ウォームワードの親和性スコアが決定され、1つまたは複数の追加アシスタントデバイスのそれぞれについて、追加アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、追加アシスタントデバイスによるウォームワードの検出頻度に基づいて、ウォームワードの親和性スコアが決定され得る。
【0011】
いくつかの実施態様では、第1アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、第1アシスタントデバイスによってウォームワードが直近で検出された時間に基づいて、ウォームワードの親和性スコアが決定され、1つまたは複数の追加アシスタントデバイスのそれぞれについて、追加アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、追加アシスタントデバイスによってウォームワードが直近で検出された時間に基づいて、ウォームワードの親和性スコアが決定され得る。
【0012】
いくつかの実施態様では、第1アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、第1アシスタントデバイスのデバイス特徴に基づいて、ウォームワードの親和性スコアが決定され、1つまたは複数の追加アシスタントデバイスのそれぞれについて、追加アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、追加アシスタントデバイスのデバイス特徴に基づいて、ウォームワードの親和性スコアが決定され得る。
【0013】
いくつかの実施態様では、第1アシスタントデバイスによって一致するウォームワードの検出を有効化または無効化する際、第1アシスタントデバイスはウォームワードの検出を無効化することができる。いくつかの実施態様では、方法は、第1アシスタントデバイスによってウォームワードの検出を無効化することに応じて、第1アシスタントデバイスのアクティブ化されたウォームワードのセットに新しいウォームワードを追加することをさらに含むことができる。いくつかの実施態様では、方法は、ウォームワードアービトレーションプロセスの反復において、一致するウォームワードが検出されなくなるまで、ウォームワードアービトレーションプロセスを繰り返すことをさらに含むことができる。
【0014】
いくつかの実施態様では、方法は、第1アシスタントデバイスのマイクを介して発話を検出することと、第1アシスタントデバイスによって、一致するウォームワードのオンデバイスウォームワード検出モデルを使用して、発話において一致するウォームワードの発生を識別することと、一致するウォームワードに先行する、または一致するウォームワードに続く発話の少なくとも一部に対して自動音声認識を実行することに基づいて、第2アシスタントデバイスが一致するウォームワードにマッピングされたコマンドのターゲットであると決定することと、第2アシスタントデバイスが一致するウォームワードにマッピングされたコマンドのターゲットであるとの決定に応じて、一致するウォームワードにマッピングされたコマンドを第2アシスタントデバイスに送ることとをさらに含むことができる。
【0015】
いくつかの実施態様では、方法は、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスとが近接して位置していると決定することに基づいて、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスとをアシスタントデバイスのグループに含めるように決定することをさらに含むことができる。いくつかの実施態様では、方法は、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスとがそれぞれ同じ発話を検出することに基づいて、アシスタントデバイスのグループが第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスとを含むと決定することをさらに含むことができる。
【0016】
いくつかの追加または代替実施態様では、コンピュータプログラム製品は、プログラム命令が1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されている1つまたは複数のコンピュータ可読記憶媒体を含むことができる。プログラム命令は、第1アシスタントデバイス上でアクティブなオンデバイスウォームワード検出モデルの第1セットと、第2アシスタントデバイス上でアクティブなオンデバイスウォームワード検出モデルの第2セットとを識別することであって、第1アシスタントデバイスと第2アシスタントデバイスは近接して位置している、識別することと、オンデバイスウォームワード検出モデルの第1セットとオンデバイスウォームワード検出モデルの第2セットとの両方に含まれる重複するオンデバイスウォームワード検出モデルを識別することと、重複するオンデバイスウォームワード検出モデルを識別することに応じて、かつ第1アシスタントデバイスと第2アシスタントデバイスとが近接して位置していると決定されることに基づいて、第1アシスタントデバイスと第2アシスタントデバイスのいずれか一方の重複するオンデバイスウォームワード検出モデルを無効化することとを実行可能であり得る。
【0017】
いくつかの実施態様では、第1アシスタントデバイスと第2アシスタントデバイスとがそれぞれ同じ発話を検出することに基づいて、第1アシスタントデバイスと第2アシスタントデバイスとが近接して位置していると決定され得る。
【0018】
いくつかの実施態様では、プログラム命令は、第1アシスタントデバイスと第2アシスタントデバイスのそれぞれについて、重複するオンデバイスウォームワード検出モデルに関連付けられたウォームワードの親和性スコアを識別することをさらに実行可能であり得る。いくつかの実施態様では、第1アシスタントデバイスと第2アシスタントデバイスとのいずれか一方の重複するオンデバイスウォームワード検出モデルを無効化することは、親和性スコアに基づいていてもよい。
【0019】
いくつかの実施態様では、重複するオンデバイスウォームワード検出モデルに関連付けられたウォームワードの親和性スコアは、ウォームワードの検出頻度に基づいて決定され得る。いくつかの実施態様では、重複するオンデバイスウォームワード検出モデルに関連付けられたウォームワードの親和性スコアは、ウォームワードが直近で検出された時間に基づいて決定され得る。
【0020】
いくつかの追加または代替実施態様では、システムは、プロセッサ、コンピュータ可読媒体、1つまたは複数のコンピュータ可読記憶媒体、及び1つまたは複数のコンピュータ可読記憶媒体にまとめて記憶されているプログラム命令を含むことができる。プログラム命令は、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスとの間でウォームワードアービトレーションが開始されることを決定することであって、1つまたは複数の追加アシスタントデバイスは第2アシスタントデバイスを含み、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスはアシスタントデバイスのグループに含まれる、決定することと、ウォームワードアービトレーションが開始されることを決定することに応じて、ウォームワードアービトレーションを実行することとを実行可能であり得て、ウォームワードアービトレーションは、第1アシスタントデバイスによって、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスに、第1アシスタントデバイスのアクティブ化されたウォームワードのセットをブロードキャストすることと、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスごとに、追加アシスタントデバイスから、追加アシスタントデバイスのアクティブ化されたウォームワードのセットを受信することと、一致するウォームワードが第1アシスタントデバイスのアクティブ化されたウォームワードのセットに含まれており、かつ第2アシスタントデバイスのアクティブ化されたウォームワードのセットに含まれていることに基づいて、一致するウォームワードを識別することと、一致するウォームワードを識別することに応じて、第1アシスタントデバイスによって一致するウォームワードの検出を有効化または無効化することとを含む。
【0021】
本明細書に記載の1つまたは複数の技法を利用すると、環境内の複数の自動アシスタントデバイス全体の処理コストを削減でき、複数の自動アシスタントデバイス全体のメモリと処理リソースをより効率的に利用できる。これにより、複数の自動アシスタントデバイスにわたってより多くのウォームワードのセットを検出できるようになり、パフォーマンスが向上する。
【0022】
上記の説明は、本開示のいくつかの実施態様の概要として提供される。これらの実施態様及び他の実施態様の詳細について、以下でさらに詳細に説明する。
【0023】
様々な実施態様は、本明細書に記載の方法の1つまたは複数などの方法を実行するために、1つまたは複数のプロセッサ(例えば、中央処理ユニット(CPU)(複数可)、画像処理装置(GPU)(複数可)、デジタルシグナルプロセッサ(DSP)(複数可)、及び/またはテンソル処理装置(TPU)(複数可))によって実行可能な命令を格納する非一時的なコンピュータ可読記憶媒体を含むことができる。他の実施態様は、本明細書に記載の方法の1つまたは複数などの方法を実行するために、格納された命令を実行するように動作可能なプロセッサ(複数可)を含む自動アシスタントクライアントデバイス(例えば、クラウドベースの自動アシスタントコンポーネント(複数可)とインターフェースをとるための自動アシスタントインターフェースを少なくとも含むクライアントデバイス)を含むことができる。さらに他の実施態様は、本明細書に記載の方法の1つまたは複数などの方法を実行するために、格納された命令を実行するように動作可能な1つまたは複数のプロセッサを含む1つまたは複数のサーバのシステムを含むことができる。
【図面の簡単な説明】
【0024】
【
図1】様々な実施態様による、本開示の選択された態様が実装され得る例示的な環境を概略的に示す図である。
【
図2】本開示の選択された態様を実践するための例示的な方法を示すフローチャートである。
【
図3】本開示の選択された態様を実践するための例示的な方法を示す別のフローチャートである。
【
図4】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【0025】
ユーザは、複数の自動アシスタントデバイスのいずれかを使用して自動アシスタントを利用できる。例えば、一部のユーザは、自動アシスタントに向けられたユーザ入力を受信でき、及び/または自動アシスタントによって制御できる自動アシスタントデバイスの調整された「エコシステム」を所有している場合がある。特にアシスタントデバイスは、1つまたは複数のスマートフォン、1つまたは複数のタブレットコンピュータ、1つまたは複数の車両コンピューティングシステム、1つまたは複数のウェアラブルコンピューティングデバイス、1つまたは複数のスマートテレビ、1つまたは複数のインタラクティブスタンドアロンスピーカ、1つまたは複数のディスプレイ付きインタラクティブスタンドアロンスピーカ、1つまたは複数のIoTデバイスなどである。
【0026】
ユーザは、これらのアシスタントデバイスのいずれかを使用して、自動アシスタントによって人間とコンピュータの対話を行うことができる(自動アシスタントクライアントがインストールされており、アシスタントデバイスが入力を受信できることを前提とする)。場合によっては、これらの自動アシスタントデバイスは、ユーザの主な住居、2次的な住居、職場、及び/またはその他の建物の周囲に散らばっていることがある。例えば、スマートフォン、タブレット、スマートウォッチなどのモバイルアシスタントデバイスは、ユーザの所持品及び/またはユーザが最後に置いた場所にあることがある。従来のデスクトップコンピュータ、スマートテレビ、インタラクティブスタンドアロンスピーカ、IoTデバイスなどの他の自動アシスタントデバイスは、より固定されている場合もあるが、ユーザの自宅や職場内の様々な場所(部屋など)に位置する場合がある。
【0027】
図1は、様々な実施態様による、本開示の選択された態様が実装され得る例示的な環境100を概略的に示す。
図1または図の他の部分に示されている任意のコンピューティングデバイスは、メモリに格納されたコンピュータ可読命令を実行する1つまたは複数のマイクロプロセッサ(例えば、中央処理ユニットまたは「CPU」、画像処理装置または「GPU」)などのロジック、または特定用途向け集積回路(「ASIC」)、フィールドプログラマブルゲートアレイ(「FPGA」)などの他の種類のロジックを含み得る。クラウドベースの自動アシスタントコンポーネント140(複数可)などの、
図1に示されているシステムの一部は、必須というわけではないが、「クラウドインフラストラクチャ」と呼ばれることもあるものを形成する1つまたは複数のサーバコンピューティングデバイスを使用して実装できる。
【0028】
実施態様において、環境100は、例えば、第1アシスタントデバイス110A、第2アシスタントデバイス110B、第3アシスタントデバイス110C、及び第4アシスタントデバイス110Dを含む自動アシスタントエコシステムを含むことができる。アシスタントデバイス110A~110Dはすべて、家庭、職場、または他の環境内に配置できる。実施態様において、アシスタントデバイス110A~110Dは環境100内に近接して配置してもよい。特に、環境100内のアシスタントデバイス110A~110Dの物理的な位置は、例えば、ユーザの物理的な位置がアシスタントデバイス110A~110Dの近くにあるとき、各アシスタントデバイス110A~110Dが(例えば、マイク(複数可)を介して)ユーザから同じ発話を検出できるような位置であってもよい。例えば、各アシスタントデバイス110A~110Dは、家庭、職場、または他の環境内の同じ部屋(及び/または部屋の同じエリア)に物理的に配置することができ、ユーザも同じ部屋にいて発話を行うとき、各アシスタントデバイス110A~110Dのマイク(複数可)がその発話を検出することができる。別の例では、各アシスタントデバイス110A~110Dは、家庭、職場、または他の環境内の異なる部屋に物理的に位置していても、互いに十分近い位置に配置されているため、ユーザがアシスタントデバイス110A~110Dの1つのマイク(複数可)で検出された発話をするとき、他のアシスタントデバイス110A~110Dのマイク(複数可)でも同じ発話を検出する。
【0029】
さらに、アシスタントデバイス110A~110Dはすべて、1つまたは複数のデータ構造内で相互にリンクされるか、または相互に関連付けられることができる。例えば、4つのアシスタントデバイス110A~110Dはすべて同じユーザアカウントに登録されたり、同じユーザアカウント(複数可)のセットに登録されたり、特定の構造に登録されたり、及び/またはデバイストポロジ表現ですべて特定の構造に割り当てることができる。デバイストポロジ表現は、アシスタントデバイス110A~110Dごとに、対応する一意の識別子(複数可)を含むことができ、アシスタントインターフェースを含まないIoTデバイス(複数可)など、アシスタントデバイスではない(ただし、アシスタントデバイスを介してインタラクションをすることができる)他のデバイス(複数可)の対応する一意の識別子(複数可)を任意選択で含むことができる。さらに、デバイストポロジ表現は、各アシスタントデバイス110A~110Dに関連付けられたデバイス属性(複数可)を指定できる。所与のアシスタントデバイスのデバイス属性は、例えば、各アシスタントデバイスでサポートされている1つまたは複数の入力及び/または出力モダリティ、各アシスタントデバイスの処理機能、各アシスタントデバイスの製造元、モデル、及び/または一意の識別子(シリアル番号など)(これに基づいて処理機能を決定できる)、及び他の属性(複数可)などを示すことができる。別の例として、アシスタントデバイス110A~110Dはすべて、セキュアアクセスワイヤレスネットワークなどの同じ無線ネットワークに接続されている機能として、及び/または互いにピアツーピア通信している機能として(例えば、Bluetooth経由でペアリング(複数可)した後)、相互にリンクされるか、または相互に関連付けられることができる。言い換えれば、いくつかの実施態様では、複数のアシスタントデバイスは、任意のデータ構造内で必ずしも互いに関連付けられている必要はなく、互いに安全なネットワーク接続中であるという機能としてリンクされていると見なすことができる。
【0030】
非限定的な実施例として、第1アシスタントデバイス110Aは、ディスプレイとカメラを備えたインタラクティブスタンドアロンスピーカの特定のモデルなど、第1タイプのアシスタントデバイスであり得る。第2アシスタントデバイス110Bは、ディスプレイやカメラのない第2モデルのインタラクティブスタンドアロンスピーカなど、第2タイプのアシスタントデバイスであり得る。アシスタントデバイス110C及び110Dはそれぞれ、ディスプレイのない第3モデルのインタラクティブスタンドアロンスピーカなど、第3タイプのアシスタントデバイスであり得る。第3タイプ(アシスタントデバイス110C及び110D)は、第2タイプ(アシスタントデバイス110B)よりも処理能力が低くてもよい。例えば、第3タイプは、第2タイプのプロセッサ(複数可)よりも処理能力が低いプロセッサ(複数可)を有してもよい。例えば、第3タイプのプロセッサ(複数可)にはGPUがなくてもよいが、第2タイプのプロセッサ(複数可)はGPU(複数可)を備える。また、例えば、第3タイプのプロセッサ(複数可)は、第2タイプのプロセッサ(複数可)よりも小さいキャッシュ及び/または低い動作周波数を有してもよい。別の例として、第3タイプのオンデバイスメモリのサイズは、第2タイプのオンデバイスメモリのサイズよりも小さくてもよい(例えば、2GBに対して1GB)。さらに別の例として、第3タイプの使用可能なディスク容量は、第1タイプの使用可能なディスク容量よりも小さくてもよい。使用可能なディスク容量は、現在使用可能なディスク容量とは異なり得る。例えば、使用可能なディスク容量は、現在使用可能なディスク容量と、1つまたは複数のオンデバイスモデル(複数可)が現在占めているディスク容量の合計として決定できる。別の例として、使用可能なディスク容量は、オペレーティングシステム及び/または他の特定のソフトウェアが占めている容量を差し引いた合計ディスク容量であり得る。実施例を続けると、第1タイプと第2タイプは同じ処理機能を有することができる。
【0031】
データ構造内(複数可)で相互にリンクされていることに加えて、2つ以上(例えば、すべて)のアシスタントデバイス110A~110Dはまた、ローカルエリアネットワーク(LAN)108(複数可)を介して少なくとも選択的に互いに通信する。LAN108(複数可)は、Wi-Fiを利用するワイヤレスネットワーク(複数可)、Bluetoothを利用するダイレクトピアツーピアネットワーク(複数可)、及び/または他の通信プロトコル(複数可)を利用する他の通信トポロジを含むことができる。
【0032】
アシスタントデバイス110Aは、アシスタントクライアント120Aを含み、これはオペレーティングシステム上のスタンドアロンアプリケーションであり得、またはアシスタントデバイス110Aのオペレーティングシステムの全部または一部を形成し得る。
図1のアシスタントクライアント120Aは、ウェイク/呼び出し(ホットワード)エンジン121A1と、1つまたは複数の関連するオンデバイスウェイク/呼び出し(ホットワード)モデル131A1を含む。ウェイク/呼び出しエンジン121A1は、1つまたは複数のウェイクまたは呼び出しキュー(ホットワードなど)の発生を監視することができ、1つまたは複数のキュー(複数可)の検出に応じて、アシスタントクライアント120Aの以前は非アクティブだった1つまたは複数の機能を呼び出すことができる。例えば、アシスタントクライアント120Aを呼び出すことは、ASRエンジン122A1、NLUエンジン123A1、及び/またはその他のエンジン(複数可)がアクティブ化されることを含み得る。例えば、ASRエンジン122A1に、ウェイクまたは呼び出しキューに続く追加のオーディオデータフレームを処理させることができ(呼び出し前には、オーディオデータフレームの追加処理は行われていなかった)、及び/またはアシスタントクライアント120Aに、追加のオーディオデータフレーム及び/または送信すべき他のデータをクラウドベースのアシスタントコンポーネント140(複数可)に送信させて、処理(例えば、クラウドベースのアシスタントコンポーネント140(複数可)のリモートASRエンジンによるオーディオデータフレームの処理)させることができる。
【0033】
いくつかの実施態様では、ウェイクキュー(複数可)エンジン121Aは、アシスタントデバイス110Aの1つまたは複数のマイクからの出力に基づいているオーディオデータフレームのストリームを継続的に処理し(例えば、「非アクティブ」モードでない場合)、音声によるウェイクワード(複数可)または呼び出しフレーズ(複数可)(例えば、「OKアシスタント」、「ヘイ、アシスタント」)の発生を監視できる。処理は、ウェイクキュー(複数可)エンジン121Aによって1つまたは複数のウェイクモデル131A1(複数可)を使用して実行できる。例えば、ウェイクモデル131A1(複数可)の1つは、オーディオデータのフレームを処理し、オーディオデータに1つまたは複数のウェイクワードが存在するかどうかを示す出力を生成するように訓練されたニューラルネットワークモデルであり得る。ウェイクキュー(複数可)エンジン121は、ウェイクワード(複数可)の発生を監視しながら、ウェイクワード(複数可)を含まないオーディオデータフレームを破棄する(例えば、バッファに一時的に保存した後)。ウェイクキュー(複数可)エンジン121A1は、ウェイクワード(複数可)の発生を監視することに加えて、またはその代わりに、他の呼び出しキュー(複数可)の発生を監視することができる。例えば、ウェイクキュー(複数可)エンジン121A1は、呼び出しハードウェアボタン及び/または呼び出しソフトウェアボタンの押下を監視することもできる。別の例として、また、実施例を続けると、アシスタントデバイス110Aがカメラを備えるとき、ウェイクキュー(複数可)エンジン121A1は、任意選択で、カメラからの画像フレーム(複数可)を処理して、ユーザの視線がカメラに向けられている間に手を振るなどの呼び出しジェスチャ(複数可)の発生、及び/またはユーザの視線がカメラに向けられていることや、ユーザが話していることを示すなどの他の呼び出しキュー(複数可)の発生を監視することもできる。
【0034】
図1のアシスタントクライアント120Aは、自動音声認識(ASR)エンジン122A1と、1つまたは複数の関連するオンデバイスASRモデル132A1も含む。ASRエンジン122A1を使用して、発話を含むオーディオデータを処理し、ユーザの発話の転写(すなわち、言葉(複数可)のシーケンス及び/または他のトークン(複数可)のシーケンス)を生成することができる。ASRエンジン122A1は、オンデバイスASRモデル132A1(複数可)を利用してオーディオデータを処理できる。オンデバイスASRモデル132A1(複数可)は、トークン上の確率のシーケンス(及びトランスクリプトの生成に使用される確率)を生成するために、例えば、ニューラルネットワークモデルであり、ASRエンジン122A1によって使用される2パスASRモデルを含むことができる。別の例として、オンデバイスASRモデル132A1(複数可)は、ニューラルネットワークモデルである音響モデルと、音素列と単語のマッピングを含む言語モデルを含むことができる。ASRエンジン122A1は、音響モデルを使用してオーディオデータを処理し、音素列を生成し、言語モデルを使用して音素列を特定の言葉にマッピングすることができる。追加または代替のASRモデルを利用することもできる。
【0035】
図1のアシスタントクライアント120Aは、自然言語理解(NLU)エンジン123A1と、1つまたは複数の関連するオンデバイスNLUモデル133A1も含む。NLUエンジン123A1は、ASRエンジン122A1によって生成された転写のテキストや入力されたテキスト(例えば、アシスタントデバイス110Aの仮想キーボードを使用して入力されたテキスト)などの自然言語テキストの意味表現である記号表現または信念状態を生成できる。例えば、信念状態は、テキストに対応するインテント(複数可)と、任意選択でインテント(複数可)のパラメータ(複数可)(例えば、スロット値)を含む場合がある。信念状態は、1つまたは複数のダイアログターンを通じて完全に形成されると(例えば、すべての必須パラメータが解決されると)、発話に応じて実行されるアクション(複数可)を表す。記号表現を生成する際に、NLUエンジン123A1は、1つまたは複数のオンデバイスNLUモデル133A1を利用できる。NLUモデル133A1(複数可)は、テキストを処理し、テキストによって表現されたインテント(複数可)を示す出力及び/またはテキストのどの部分(複数可)がインテントのどのパラメータ(複数可)に対応するかのインジケーションを生成するように訓練された1つまたは複数のニューラルネットワークモデルを含むことができる。NLUモデル(複数可)は、テキスト及び/またはテンプレートの対応する記号表現(複数可)へのマッピングを含む1つまたは複数のモデルを追加的または代替的に含むことができる。例えば、マッピングは、「何時ですか」というテキストを、「現在の位置」というパラメータを持つ「現在の時刻」というインテントにマッピングすることを含むことができる。別の例として、マッピングは、テンプレート「[アイテム(複数可)]を買い物リストに追加する」を、テンプレート内の[アイテム(複数可)]に対応する実際の自然言語に含まれるアイテム(複数可)のパラメータ(複数可)を使用して「買い物リストに挿入する」というインテントにマッピングすることを含むことができる。
【0036】
図1のアシスタントクライアント120Aは、フルフィルメントエンジン124A1と、1つまたは複数の関連するオンデバイスフルフィルメントモデル134A1も含む。フルフィルメントエンジン124A1は、NLUエンジン123A1から完全に形成された記号表現を利用して、記号表現に対応するアクション(複数可)を実行させる、またはアクションの実行をさせることができる。アクション(複数可)は、応答性の高いユーザインターフェース出力(例えば、可聴及び/または視覚的ユーザインターフェース出力)を提供すること、スマートデバイス(複数可)を制御すること、他のアクション(複数可)を実行することを含むことができる。アクション(複数可)を実行する際、またはアクションの実行を引き起こす際に、フルフィルメントエンジン124A1はフルフィルメントモデル134A1(複数可)を利用できる。一例として、特定のスマートライト(複数可)を指定するパラメータ(複数可)を備える「オンにする」というインテントの場合、フルフィルメントエンジン124A1は、フルフィルメントモデル134A1(複数可)を使用して、特定のスマートライト(複数可)のネットワークアドレス(複数可)及び/または特定のスマートライト(複数可)を「オン」状態に遷移させるために送信するコマンド(複数可)を識別できる。別の例として、「現在位置」というパラメータを持つ「現在」というインテントの場合、フルフィルメントエンジン124A1は、フルフィルメントモデル134A1(複数可)を利用して、アシスタントデバイス110Aの現在の時刻を取得して可聴的にレンダリングする必要があることを識別できる(TTSエンジン125A1を利用)。
【0037】
図1のアシスタントクライアント120Aは、テキスト読み上げ(TTS)エンジン125A1と、1つまたは複数の関連するオンデバイスTTSモデル135A1も含む。TTSエンジン125A1は、オンデバイスTTSモデル135A1(複数可)を使用してテキスト(またはその音声表現)を処理し、合成音声を生成することができる。合成音声は、アシスタントデバイス110Aのローカルテキスト読み上げ(TTS)エンジン(テキストを音声に変換する)のスピーカ(複数可)を介して可聴的にレンダリングできる。合成音声を、自動アシスタントからの応答の全部または一部として、及び/またはユーザにパラメータ(複数可)及び/またはインテント(複数可)を定義及び/または明確にするように促すために生成しレンダリングすることができる(例えば、NLUエンジン123A1及び/または別のダイアログ状態エンジンによって調整される)。
【0038】
図1のアシスタントクライアント120Aは、認証エンジン126A1と、1つまたは複数の関連するオンデバイス認証モデル136A1も含む。認証エンジン126A1は、1つまたは複数の認証技術(複数可)を利用して、複数の登録ユーザのうちどのユーザがアシスタントデバイス110とインタラクションをしているかを検証できる。または、アシスタントデバイス110に登録されているユーザが1人だけの場合は、アシスタントデバイス110とインタラクションをしているのが登録ユーザ(または代わりにゲスト/未登録ユーザ)であるかどうかを検証できる。一例として、テキスト依存型話者検証(複数可)(TD-SV)は、登録ユーザごとに、関連付けられたユーザ(複数可)の許可を得て(例えば、対応するユーザプロファイルと関連付けて)、生成及び保存できる。認証エンジン126A1は、対応するTD-SVを生成する際、及び/またはオーディオデータTD-SVの対応する部分を処理する際に、オンデバイス認証モデル136A1(複数可)のTD-SVモデルを利用して、対応する現在のTD-SVを生成し、その後、保存されているTD-SVと比較して、一致するかどうかを判定できる。他の例として、認証エンジン126A1は、特定のユーザを認証する際に、テキスト非依存型話者検証(TI-SV)技術、話者検証技術、顔検証技術、及び/または他の検証技術(複数可)(PIN入力など)、ならびに対応するオンデバイス認証モデル136A1(複数可)を追加または代替的に利用できる。
【0039】
図1のアシスタントクライアント120Aは、ウォームワード(複数可)エンジン127A1と、1つまたは複数の関連するオンデバイスウォームワード(複数可)モデル137A1も含む。ウォームワード(複数可)エンジン127A1は、1つまたは複数のウォームワード(複数可)または他のウォームキュー(複数可)の発生を少なくとも選択的に監視することができ、1つまたは複数のウォームワード(複数可)または他のウォームキュー(複数可)の検出に応じて、アシスタントクライアント120Aによって特定のアクションを実行させることができる。ウォームワード(複数可)は、任意のウェイクワード(複数可)または他のウェイクキュー(複数可)に追加することができ、各ウォームワード(複数可)は、少なくとも選択的にアクティブ化(例えば、有効化)することができる。特に、ウォームキューの発生を検出すると、検出された発生の前に任意のウェイクキューがない場合でも、特定のアクションが実行される。したがって、ウォームキューが特定の単語(単数または複数)であるとき、ユーザは任意のウェイクキュー(複数可)を提供する必要はなく、単にその単語(複数可)を話すだけで、対応する特定のアクションを実行させることができる。
【0040】
一例として、「停止」というウォームワードは、少なくとも、アシスタントクライアント120Aを介してアシスタントデバイス110Aでタイマーまたはアラームが可聴的にレンダリングされているときにアクティブ化(例えば、有効化)することができる。例えば、このような場合、ウォームワード(複数可)エンジン127Aは、アシスタントデバイス110Aの1つまたは複数のマイクからの出力に基づいているオーディオデータフレームのストリームを継続的に(または少なくともVADエンジン128A1が音声アクティビティを検出したときに)処理して、「停止」、「一時停止」、または他の特定のウォームワード(複数可)の限定されたセットの発生を監視することができる。処理は、音声データのフレームを処理し、音声データ内に「停止」の発話が存在するかどうかを示す出力を生成するように訓練されたニューラルネットワークモデルなどのウォームワード(複数可)モデル(複数可)137A1の1つを使用して、ウォームワード(複数可)エンジン127Aによって実行できる。「停止」の発生を検出することに応じて、ウォームワード(複数可)エンジン127Aは、可聴的に鳴っているタイマーまたはアラームをクリアするコマンドを実行させることができる。このような場合、ウォームワード(複数可)エンジン127Aは、アシスタントデバイス110Aのカメラから画像ストリームを継続的に(または少なくとも存在センサが存在を検出したときに)処理して、「停止」ポーズの手の発生を監視することができる。処理は、ウォームワード(複数可)モデル137A1(複数可)の1つ、例えば、視覚データのフレームを処理し、手が「停止」ポーズにあるかどうかを示す出力を生成するように訓練されたニューラルネットワークモデルなどを使用して、ウォームワード(複数可)エンジン127Aによって実行できる。「停止」ポーズの発生を検出することに応じて、ウォームキュー(複数可)エンジン127Aは、可聴的に鳴っているタイマーまたはアラームをクリアするコマンドを実行させることができる。
【0041】
別の例として、「音量を上げる」、「音量を下げる」、及び「次へ」などのウォームワード(複数可)は、少なくとも、アシスタントクライアント120Aを介してアシスタントデバイス110Aで音楽またはその他のメディアコンテンツが可聴的にレンダリングされているときにアクティブ化(例えば、有効化)することができる。例えば、このような場合、ウォームワード(複数可)エンジン127Aは、アシスタントデバイス110Aの1つまたは複数のマイクからの出力に基づいているオーディオデータフレームのストリームを継続的に処理できる。処理は、第1のウォームワード(複数可)モデル137A1(複数可)を使用して「音量を上げる」の発生を監視すること、第2のウォームワード(複数可)モデル(複数可)137A1を使用して「音量を下げる」の発生を監視すること、及び第3のウォームワード(複数可)モデル137A1(複数可)を使用して「次」の発生を監視することを含むことができる。いくつかの実施態様では、異なるウォームワード(複数可)モデル137A1(複数可)は、アシスタントデバイス110Aのストレージデバイスからメモリにロードされ得るか、または、クラウドベースのアシスタントコンポーネント140(複数可)とのインタラクションを介してアクセス可能なローカルモデルリポジトリ150からアシスタントデバイス110Aによってダウンロードされ得る。「音量を上げる」の発生を検出することに応じて、ウォームワード(複数可)エンジン127Aは、レンダリングされる音楽の音量を上げるコマンドを実行させることができ、「音量を下げる」の発生を検出することに応じて、ウォームワード(複数可)エンジンは、音楽の音量を下げるコマンドを実行させることができ、「次」の発生を検出することに応じて、ウォームワード(複数可)エンジンは、現在の音楽トラックの代わりに次のトラックをレンダリングするコマンドを実行させることができる。
【0042】
例を続けると、アシスタントクライアント120Aを介してアシスタントデバイス110Aで音楽を可聴的にレンダリングしていないときは、「音量を上げる」、「音量を下げる」、及び「次へ」のウォームワード(複数可)が非アクティブ(例えば、無効)になる可能性があり、ウォームワード(複数可)エンジン127Aは前述のウォームワードの発生を監視しない可能性がある。特に、「音量を上げる」の発生を監視するのに使用される第1のウォームワード(複数可)モデル137A1(複数可)、「音量を下げる」の発生を監視するのに使用される第2のウォームワード(複数可)モデル137A1(複数可)、及び「次」の発生を監視するのに使用される第3のウォームワード(複数可)モデル137A1(複数可)は、アシスタントクライアント120Aによってメモリにロードされない可能性がある。
【0043】
いくつかの実施態様では、アシスタントデバイス110Aがウォームワード(複数可)モデル137A(複数可)を使用して検出したウォームワードのセットは、ユーザが設定する、及び/または、アシスタントデバイス110Aの現在のコンテキスト及び/または機能に基づいて自動的に選択することができる。
【0044】
別の例では、アシスタントクライアント120Aは、新しいウォームワード(複数可)モデル137A1(複数可)を、例えばアシスタントデバイス110Aのストレージデバイスから、またはクラウドベースのアシスタントコンポーネント140(複数可)とのインタラクションを介してアクセス可能なローカルモデルリポジトリ150からのダウンロードから、メモリにロードすることによって、ウォームワード(複数可)エンジン127Aによる新しいウォームワードの検出を可能にすることができる。アシスタントクライアント120Aは、ウォームワードに対応するウォームワード(複数可)モデル137A1(複数可)をメモリにロードしないようにすることにより、及び/またはウォームワードに対応するウォームワード(複数可)モデル137A1(複数可)をメモリからアンロードすることにより、ウォームワード(複数可)エンジン127Aによってウォームワードの検出を無効化することができる。メモリからアンロードされている間、ウォームワード(複数可)モデル137A1(複数可)は、アシスタントデバイス110Aのストレージデバイスに格納されたままになり、別の時点でメモリにロードまたはリロードされて、例えば、対応するウォームワードを検出できるようになる。あるいは、アシスタントクライアント120Aは、アシスタントデバイス110Aからウォームワード(複数可)モデル137A1(複数可)を消去することによって、例えば、ウォームワード(複数可)モデル137A1(複数可)をメモリからアンロードし、さらにアシスタントデバイス110Aのストレージデバイスからウォームワード(複数可)モデル137A1(複数可)を削除することによって、ウォームワード(複数可)エンジン127Aによるウォームワードの検出を無効化することができる。
【0045】
アシスタントクライアント120Aは、音声区間検出器(VAD)エンジン128A1と、1つまたは複数の関連するオンデバイスVADモデル138A1をさらに含む。VADエンジン128A1は、オーディオデータ内の音声アクティビティの発生を少なくとも選択的に監視することができ、発生を検出することに応じて、アシスタントクライアント120Aによって1つまたは複数の機能を実行させることができる。例えば、VADエンジン128A1は、音声アクティビティを検出することに応じて、ウェイクキュー(複数可)エンジン121A1をアクティブ化することができる。別の例として、VADエンジン128A1は、継続リスニングモードで使用して、オーディオデータ内の音声アクティビティの発生を監視し、発生を検出することに応じて、ASRエンジン122A1をアクティブ化することができる。VADエンジン128A1は、音声データ内に音声アクティビティが存在するかどうかを判定する際に、VADモデル138A1(複数可)を利用して音声データを処理できる。
【0046】
アシスタントクライアント120Aに関して、特定のエンジン及び対応するモデルについて記載した。ただし、一部のエンジンの省略及び/または追加のエンジン(複数可)を含み得ることに留意されたい。また、アシスタントクライアント120Aは、様々なオンデバイスエンジンと対応するモデルを通じて、発話として提供される多くのアシスタント要求など、多くのアシスタント要求を完全に処理できることにも留意されたい。しかし、アシスタントデバイス110Aは処理機能の点で比較的制約があるため、アシスタントデバイス110Aでローカルに完全に処理できないアシスタント要求が依然として多数存在する。例えば、NLUエンジン123A1及び/または対応するNLUモデル133A1は、自動アシスタントを介して利用可能なすべてのインテント及び/またはパラメータのサブセットのみをカバーしてもよい。別の例として、フルフィルメントエンジン124A1及び/または対応するフルフィルメントモデル(複数可)は、利用可能なフルフィルメントのサブセットのみをカバーしてもよい。さらに別の例として、ASRエンジン122A1及び対応するASRモデル132A1(複数可)は、様々な発話を正しく書き起こすのに十分なロバスト性及び/または精度を備えていない可能性がある。
【0047】
これら及び他の事項を考慮すると、クラウドベースのアシスタントコンポーネント140(複数可)は、アシスタントデバイス110Aで受信されたアシスタント要求の少なくとも一部の処理を実行する際に、依然として少なくとも選択的に利用することができる。クラウドベースの自動アシスタントコンポーネント140は、アシスタントデバイス110Aに対応するエンジン及び/またはモデル(及び/または追加または代替)を含むことができる。しかし、クラウドベースの自動アシスタントコンポーネント140は、クラウドの事実上無制限のリソースを活用できるため、1つまたは複数のクラウドベースの対応物は、アシスタントクライアント120Aのものよりもロバスト及び/または正確になり得る。一例として、ローカルNLUエンジン123A1及び/またはローカルフルフィルメントエンジン124A1によってサポートされていないアシスタントアクション(複数可)の実行を求める発話に応じて、アシスタントクライアント120Aは、発話のオーディオデータ、及び/またはASRエンジン122A1によって生成されたその転写を、クラウドベースの自動アシスタントコンポーネント140に送信できる。クラウドベースの自動化アシスタントコンポーネント140(例えば、NLUエンジン及び/またはそのフルフィルメントエンジン)は、そのようなデータのよりロバストな処理を実行することができ、アシスタントアクション(複数可)の解決及び/または実行を可能にする。クラウドベースの自動アシスタントコンポーネント140へのデータの送信は、インターネットやプライベートWANなどの1つまたは複数のより広域なネットワーク(WAN)(複数可)109を介して行われる。
【0048】
第2アシスタントデバイス110Bは、アシスタントクライアント120Bを含み、アシスタントクライアント120Bはオペレーティングシステム上のスタンドアロンアプリケーションであり得、アシスタントデバイス110Bのオペレーティングシステムの全部または一部を形成し得る。アシスタントクライアント120Aと同様に、アシスタントクライアント120Bは、ウェイク/呼び出しエンジン121B1及び1つまたは複数の関連するオンデバイスウェイク/呼び出しモデル131B1、ASRエンジン122B1及び1つまたは複数の関連するオンデバイスASRモデル132B1、NLUエンジン123B1及び1つまたは複数の関連するオンデバイスNLUモデル133B1、フルフィルメントエンジン124B1及び1つまたは複数の関連するオンデバイスフルフィルメントモデル134B1、TTSエンジン125B1及び1つまたは複数の関連するオンデバイスTTSモデル135B1、認証エンジン126B1及び1つまたは複数の関連するオンデバイス認証モデル136B1、ウォームワード(複数可)エンジン127B1及び1つまたは複数の関連するオンデバイスウォームワード(複数可)モデル137B1、VADエンジン128B1及び1つまたは複数の関連するオンデバイスVADモデル138B1を含む。
【0049】
アシスタントクライアント120Bの一部またはすべてのエンジン及び/またはモデルは、アシスタントクライアント120Aのものと同じであってもよく、また一部またはすべてのエンジン及び/またはモデルが異なってもよい。例えば、ウェイクキュー(複数可)エンジン121B1は、画像(複数可)内のウェイクキュー(複数可)を検出する機能が欠けている可能性があり、及び/またはウェイクモデル131B1は、ウェイクキュー(複数可)の検出のために画像(複数可)を処理するためのモデル(複数可)が欠けている可能性がある一方で、ウェイクキュー(複数可)エンジン121A1は、そのような機能を含み、ウェイクモデル131B1(複数可)は、そのようなモデル(複数可)を含む。これは、例えば、アシスタントデバイス110Aにカメラが含まれ、アシスタントデバイス110Bにカメラが含まれていないことが原因であり得る。別の例として、ASRエンジン122B1によって使用されるASRモデル131B1(複数可)は、ASRエンジン122A1によって使用されるASRモデル131A1(複数可)と異なり得る。これは、例えば、アシスタントデバイス110Aとアシスタントデバイス110Bの間で、異なるプロセッサ及び/またはメモリ機能に合わせて最適化された異なるモデルが原因であり得る。
【0050】
アシスタントクライアント120Bに関して、特定のエンジン及び対応するモデルについて記載した。ただし、一部のエンジンの省略及び/または追加のエンジン(複数可)を含み得ることに留意されたい。また、アシスタントクライアント120Bは、様々なオンデバイスエンジンと対応するモデルを通じて、発話として提供される多くのアシスタント要求など、多くのアシスタント要求を完全に処理できることにも留意されたい。しかし、クライアントデバイス110Bは処理機能の点で比較的制約があるため、アシスタントデバイス110Bでローカルに完全に処理できないアシスタント要求が依然として多数存在する。これら及び他の事項を考慮すると、クラウドベースのアシスタントコンポーネント140(複数可)は、アシスタントデバイス110Bで受信されたアシスタント要求の少なくとも一部の処理を実行する際に、依然として少なくとも選択的に利用することができる。
【0051】
アシスタントデバイス110Cは、アシスタントクライアント120Cを含み、アシスタントクライアント120Cは、オペレーティングシステム上のスタンドアロンアプリケーションであり得、アシスタントデバイス110Cのオペレーティングシステムの全部または一部を形成し得る。アシスタントクライアント120A及びアシスタントクライアント120Bと同様に、アシスタントクライアント120Cは、ウェイク/呼び出しエンジン121C1及び1つまたは複数の関連するオンデバイスウェイク/呼び出しモデル131C1、認証エンジン126C1及び1つまたは複数の関連するオンデバイス認証モデル136C1、ウォームワード(複数可)エンジン127C1及び1つまたは複数の関連するオンデバイスウォームワード(複数可)モデル137C1、ならびにVADエンジン128C1及び1つまたは複数の関連するオンデバイスVADモデル138C1を含む。アシスタントクライアント120Cのエンジン及び/またはモデルの一部またはすべては、アシスタントクライアント120A及び/またはアシスタントクライアント120Bのものと同じであってもよく、及び/またはエンジン及び/またはモデルの一部またはすべては異なってもよい。
【0052】
ただし、アシスタントクライアント120A及びアシスタントクライアント120Bとは異なり、アシスタントクライアント120Cは、任意のASRエンジンまたは関連モデル、任意のNLUエンジンまたは関連モデル、任意のフルフィルメントエンジンまたは関連モデル、及び任意のTTSエンジンまたは関連モデルを含まないことに留意されたい。さらに、アシスタントクライアント120Bは、様々なオンデバイスエンジン及び対応するモデルを通じて、特定のアシスタント要求(複数可)(すなわち、ウォームワード(複数可)エンジン127C1によって検出されたウォームワード(複数可)に準拠するもの)のみを完全に処理でき、発話として提供され、ウォームキューに準拠しないアシスタント要求などの多くのアシスタント要求を処理できないことにも留意されたい。これら及び他の事項を考慮すると、クラウドベースのアシスタントコンポーネント140(複数可)は、アシスタントデバイス110Cで受信されたアシスタント要求の少なくとも一部の処理を実行する際に、依然として少なくとも選択的に利用することができる。
【0053】
第4アシスタントデバイス110Dは、アシスタントクライアント120Dを含み、アシスタントクライアント120Dは、オペレーティングシステム上のスタンドアロンアプリケーションであり得、アシスタントデバイス110Dのオペレーティングシステムの全部または一部を形成し得る。アシスタントクライアント120A、アシスタントクライアント120B、及びアシスタントクライアント120Cと同様に、アシスタントクライアント120Dは、ウェイク/呼び出しエンジン121D1及び1つまたは複数の関連するオンデバイスウェイク/呼び出しモデル131D1、認証エンジン126D1及び1つまたは複数の関連するオンデバイス認証モデル136D1、ウォームワード(複数可)エンジン127D1及び1つまたは複数の関連するオンデバイスウォームワード(複数可)モデル137D1、ならびにVADエンジン128D1及び1つまたは複数の関連するオンデバイスVADモデル138D1を含む。アシスタントクライアント120Cのエンジン及び/またはモデルの一部またはすべては、アシスタントクライアント120A、アシスタントクライアント120B、及び/またはアシスタントクライアント120Cのものと同じであってもよく、及び/またはエンジン及び/またはモデルの一部またはすべては異なってもよい。
【0054】
ただし、アシスタントクライアント120A及びアシスタントクライアント120Bとは異なり、かつアシスタントクライアント120Cと同様に、アシスタントクライアント120Dは、任意のASRエンジンまたは関連モデル、任意のNLUエンジンまたは関連モデル、任意のフルフィルメントエンジンまたは関連モデル、及び任意のTTSエンジンまたは関連モデルを含まないことに留意されたい。さらに、アシスタントクライアント120Dは、様々なオンデバイスエンジン及び対応するモデルを通じて、特定のアシスタント要求(複数可)(すなわち、ウォームワード(複数可)エンジン127D1によって検出されたウォームキュー(複数可)に準拠するもの)のみを完全に処理でき、発話として提供され、ウォームキューに準拠しないアシスタント要求などの多くのアシスタント要求を処理できないことにも留意されたい。これら及び他の事項を考慮すると、クラウドベースのアシスタントコンポーネント140(複数可)は、アシスタントデバイス110Dで受信されたアシスタント要求の少なくとも一部の処理を実行する際に、依然として少なくとも選択的に利用することができる。
【0055】
図2は、本明細書に開示された実施態様による、自動アシスタントデバイス間のウォームワードアービトレーションのための例示的な方法200を示すフローチャートである。便宜上、フローチャートの操作は、操作を実行するシステムを参照して記載する。このシステムは、アシスタントデバイス110A~110Dの1つまたは複数のコンポーネントなど、様々なコンピュータシステムの様々なコンポーネントを含み得る。さらに、方法200の操作は特定の順序で示されているが、これは限定することを意味していない。1つまたは複数の操作を順序変更、省略、追加することが可能である。
【0056】
ブロック205では、システムは、第1アシスタントデバイスによって、無線プロトコルを使用して、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスを発見する。実施態様では、ブロック205で、第1アシスタントデバイス(例えば、アシスタントデバイス110A)上で実行されるアシスタントクライアント120Aが、無線プロトコル(例えば、Bluetooth、Wi-Fi、超音波オーディオなど)を使用して、アシスタントデバイスのグループ(例えば、環境100内に近接して位置しているアシスタントデバイス110A~110Dのグループ)内の1つまたは複数の追加アシスタントデバイス(例えば、アシスタントデバイス110B~110D)を発見する。いくつかの実施態様では、1つまたは複数の追加アシスタントデバイスは、第2アシスタントデバイス(例えば、アシスタントデバイス110B)を含む。
【0057】
ブロック210では、システムは、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスをアシスタントデバイスのグループに含めることを決定する。実施態様では、ブロック210で、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、ブロック205で発見された第1アシスタントデバイス(例えば、アシスタントデバイス110A)と1つまたは複数の追加アシスタントデバイス(例えば、アシスタントデバイス110B~110D)をアシスタントデバイスのグループに含めることを決定する。いくつかの実施態様では、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスをアシスタントデバイスのグループに含めることを決定することは、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスが近接して位置していると決定することに基づいている。他の実施態様では、アシスタントデバイスのグループが第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスを含むと決定することは、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスがそれぞれ同じ発話を検出することに基づいている。いくつかの実施態様では、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスをアシスタントデバイスのグループに含めることを決定することは、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスがすべて同じユーザアカウントに登録され、ユーザアカウント(複数可)の同じセットに登録されることにさらに基づいていてもよい。
【0058】
ブロック210を引き続き参照すると、いくつかの実施態様では、少なくとも閾値の「音量」及び/または閾値の信号対雑音(SNR)比で同じ発話(複数可)を検出することが発生(複数可)することと、アシスタントデバイス間の音量及び/またはSNR比が発生(複数可)に対して類似していることとに基づいて、アシスタントデバイスは近接して位置していると決定される場合がある。言い換えれば、すべてのアシスタントデバイスが同じ発話(複数可)を明瞭に検出することに基づいて、2つ以上のアシスタントデバイスが近接して位置していると決定される場合がある。他の実施態様では、2つ以上のアシスタントデバイスが、ホームグラフ内の同じ部屋に割り当てられていることに基づいて、近接して位置していると決定される場合がある。さらに他の実施形態では、第1アシスタントデバイスは、スピーカを介して音を発し(任意選択で、人間には聞こえない周波数で)、他のアシスタントデバイスがマイク(複数可)を使用して音を聞き、音が検出されたかどうか、及び/または検出された音の特性(例えば、音量、SNR、検出のタイムスタンプなど)について報告を返すように要求することができる。音が検出されたかどうか、及び/または検出された音の特性に関するこの情報をアシスタントデバイスによって使用して、どのアシスタントデバイスが近くに位置しているかを判定することができる。さらに他の実施態様では、近距離無線通信(NFC)を使用して、どのアシスタントデバイスが近くに位置しているかを判定することができる。
【0059】
ブロック215では、システムは、第1アシスタントデバイスと1つまたは複数の追加アシスタントデバイスの間でウォームワードアービトレーションが開始されることを決定する。実施態様では、ブロック215で、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、第1アシスタントデバイス(例えば、アシスタントデバイス110A)と1つまたは複数の追加アシスタントデバイス(例えば、アシスタントデバイス110B~110D)との間でウォームワードアービトレーションが開始されることを決定する。ブロック215でウォームワードアービトレーションが開始されると決定することに応じて、システムはブロック220から235に従ってウォームワードアービトレーションを実行する。
【0060】
ブロック215を引き続き参照すると、いくつかの実施態様では、ウォームワードアービトレーションが開始されることを決定することは、アシスタントデバイスグループ内の新しいアシスタントデバイスの発見(例えば、アシスタントデバイス110A~110Dの近くの環境100に新しいアシスタントデバイスが追加される場合)に基づいて、及び/またはアシスタントデバイスがアシスタントデバイスのグループから削除されたと決定すること(例えば、アシスタントデバイスがアシスタントデバイス110A~110Dの近くの環境100で検出されなくなった場合)に基づいている。他の実施態様では、ウォームワードアービトレーションが開始されることを決定することは、第1アシスタントデバイス(例えば、アシスタントデバイス110A)のアクティブ化されたウォームワードのセットにおけるウォームワードの追加またはウォームワードの削除に基づいており、例えば、ユーザが要求した構成の変更に基づいている。さらに他の実施態様では、ウォームワードアービトレーションが開始されることを決定することは、第1アシスタントデバイス(例えば、アシスタントデバイス110A)によって検出された周囲の状況の変化、例えば、第1アシスタントデバイスが位置している空間に新しいユーザが入ること、及び/またはユーザが料理などの新しいアクティビティを開始することに基づいている。いくつかの実施態様では、環境100内のアシスタントデバイス110A~110Dのいずれかがアービトレーションを開始する場合がある。
【0061】
ブロック220では、システムは、第1アシスタントデバイスによって、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスに、第1アシスタントデバイスのアクティブ化されたウォームワードのセットをブロードキャストする。実施態様では、ブロック220で、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイス(例えば、アシスタントデバイス110B~110D)に、アシスタントデバイス110Aのアクティブ化されたウォームワードのセットをブロードキャストする。
【0062】
ブロック220を引き続き参照すると、いくつかの実施態様では、システムは、第1アシスタントデバイス(例えば、アシスタントデバイス110A)によって、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイス(例えば、アシスタントデバイス110B~110D)に、第1アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、ウォームワードの親和性スコアをブロードキャストする。親和性スコアは、アシスタントデバイス110A~110Dの間で比較可能であり、共有された測定値に基づいて決定され得る。いくつかの実施態様では、第1アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、第1アシスタントデバイスによるウォームワードの検出頻度に基づいて、ウォームワードの親和性スコアが決定される。他の実施態様では、第1アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、第1アシスタントデバイスによってウォームワードが直近で検出された時間に基づいて、ウォームワードの親和性スコアが決定される。親和性スコアは、現在のコンテキスト及び/または過去のインタラクションからの明示的なユーザ信号を考慮して決定される場合もある。他の実施態様では、アシスタントデバイス(例えば、アシスタントデバイス110A)によって使用される特定のウォームワードモデルの精度を考慮して、ウォームワードの親和性スコアが決定される。例えば、リソースの多いデバイスには、デバイスにロードされたウォームワードモデルのより正確なバージョンがある場合があり、そのため、リソースの多いデバイスのウォームワードの親和性スコアは、リソースの少ないデバイスのウォームワードの親和性スコアよりも高くなる可能性がある。
【0063】
ブロック220を引き続き参照すると、さらに他の実施態様では、第1アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、第1アシスタントデバイスのデバイス特徴に基づいて、ウォームワードの親和性スコアが決定され得る。親和性スコアは、さらにユーザの特徴及び/またはウォームワードの埋め込みに基づいて決定され得る。親和性スコアは、意味的に関連している(例えば、「再生」と「一時停止」)及び/または音声的に類似している可能性があり、例えばユーザの好みのメディアデバイスに基づいて、特定のアシスタントデバイスにとってより関連性が高い可能性のあるウォームワードを考慮して決定され得る。いくつかの実施態様では、親和性スコアは機械学習モデルの出力に基づいて決定され得る。
【0064】
ブロック225では、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスのそれぞれについて、システムは、追加アシスタントデバイスから、追加アシスタントデバイスのアクティブ化されたウォームワードのセットを受信する。実施態様では、ブロック225で、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスのそれぞれ(例えば、アシスタントデバイス110B~110D)について、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、追加アシスタントデバイスから、追加アシスタントデバイスのアクティブ化されたウォームワードのセットを受信する。
【0065】
ブロック225を引き続き参照すると、いくつかの実施態様では、アシスタントデバイスのグループ内の1つまたは複数の追加アシスタントデバイスのそれぞれについて、システムは、追加アシスタントデバイスから、追加アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、ウォームワードの親和性スコアを受信する。いくつかの実施態様では、1つまたは複数の追加アシスタントデバイスのそれぞれについて、追加アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、追加アシスタントデバイスによるウォームワードの検出頻度に基づいて、ウォームワードの親和性スコアが決定される。他の実施態様では、1つまたは複数の追加アシスタントデバイスのそれぞれについて、追加アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、追加アシスタントデバイスよってウォームワードが直近で検出された時間に基づいて、ウォームワードの親和性スコアが決定される。さらに他の実施態様では、1つまたは複数の追加アシスタントデバイスのそれぞれについて、追加アシスタントデバイスのアクティブ化されたウォームワードのセットのウォームワードごとに、追加アシスタントデバイスのデバイス特徴に基づいて、ウォームワードの親和性スコアが決定される。
【0066】
ブロック230では、システムは、一致するウォームワードが第1アシスタントデバイスのアクティブ化されたウォームワードのセットに含まれており、第2アシスタントデバイスのアクティブ化されたウォームワードのセットに含まれていることに基づいて、一致するウォームワードが識別されるかどうかを判定する。実施態様では、ブロック230で、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、一致するウォームワードが、ブロック225で受信された第1アシスタントデバイス(例えば、アシスタントデバイス110A)のアクティブ化されたウォームワードのセットに含まれており、第2アシスタントデバイス(例えば、アシスタントデバイス110B)のアクティブ化されたウォームワードのセットに含まれていることに基づいて、一致するウォームワードが識別されるかどうかを判定する。
【0067】
ブロック230を引き続き参照すると、アシスタントクライアント120Aが、一致するウォームワードが第1アシスタントデバイス(例えば、アシスタントデバイス110A)のアクティブ化されたウォームワードのセットに含まれており、第2アシスタントデバイス(例えば、アシスタントデバイス110B)のアクティブ化されたウォームワードのセットに含まれていることに基づいて、一致するウォームワードが識別されると決定することに応じて、フローはブロック235に進む。一方で、アシスタントクライアント120Aが一致するウォームワードが識別されないと決定することに応じて、フローはブロック240に進む。
【0068】
ブロック235では、システムは、一致するウォームワードを識別することに応じて、第1アシスタントデバイスによる一致するウォームワードの検出を有効化または無効化する。実施態様では、ブロック235で、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、ブロック230で一致するウォームワードを識別することに応じて、第1アシスタントデバイス(例えば、アシスタントデバイス110A)による一致するウォームワードの検出を有効化または無効化する。その後、フローはブロック220に戻り、ウォームワードアービトレーションプロセスの反復で、一致するウォームワードがブロック230で検出されなくなるまで、ウォームワードアービトレーションが繰り返される。
【0069】
ブロック235を引き続き参照すると、いくつかの実施態様では、アシスタントクライアント120Aは、新しいウォームワード(複数可)モデル137A1(複数可)を、例えばアシスタントデバイス110Aのストレージデバイスから、またはクラウドベースのアシスタントコンポーネント140(複数可)とのインタラクションを介してアクセス可能なローカルモデルリポジトリ150からのダウンロードから、メモリにロードすることによって、ウォームワード(複数可)エンジン127Aによる新しいウォームワードの検出を可能にすることができる。いくつかの実施態様では、アシスタントクライアント120Aは、ウォームワードに対応するウォームワード(複数可)モデル137A1(複数可)をメモリにロードしないようにすることにより、及び/またはウォームワードに対応するウォームワード(複数可)モデル137A1(複数可)をメモリからアンロードすることにより、ウォームワード(複数可)エンジン127Aによってウォームワードの検出を無効化することができる。メモリからアンロードされている間、ウォームワード(複数可)モデル137A1(複数可)は、アシスタントデバイス110Aのストレージデバイスに格納されたままになり、別の時点でメモリにロードまたはリロードされて、例えば、対応するウォームワードを検出できるようになる。あるいは、アシスタントクライアント120Aは、アシスタントデバイス110Aからウォームワード(複数可)モデル137A1(複数可)を消去することによって、例えば、ウォームワード(複数可)モデル137A1(複数可)をメモリからアンロードし、さらにアシスタントデバイス110Aのストレージデバイスからウォームワード(複数可)モデル137A1(複数可)を削除することによって、ウォームワード(複数可)エンジン127Aによるウォームワードの検出を無効化することができる。
【0070】
ブロック235を引き続き参照すると、いくつかの実施態様では、一致するウォームワードを識別することに応じて、第1アシスタントデバイス(例えば、アシスタントデバイス110A)による一致するウォームワードの検出を有効化または無効化することは、第1アシスタントデバイス(例えば、アシスタントデバイス110A)の一致するウォームワードの親和性スコアと、第2アシスタントデバイス(例えば、アシスタントデバイス110B)の一致するウォームワードの親和性スコアに基づいている。特に、いくつかの実施態様では、第1アシスタントデバイス(例えば、アシスタントデバイス110A)の一致するウォームワードの親和性スコアが、第2アシスタントデバイス(例えば、アシスタントデバイス110B)を含む1つまたは複数の追加アシスタントデバイスの一致するウォームワードの親和性スコアよりも高い場合、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、一致するウォームワードの検出を有効化することができる。一方で、第1アシスタントデバイス(例えば、アシスタントデバイス110A)の一致するウォームワードの親和性スコアが、第2アシスタントデバイス(例えば、アシスタントデバイス110B)を含む1つまたは複数の追加アシスタントデバイスの一致するウォームワードの親和性スコアよりも高くない場合、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、一致するウォームワードの検出を無効化することができる。
【0071】
ブロック235を引き続き参照すると、いくつかの実施態様では、第1アシスタントデバイス(例えば、アシスタントデバイス110A)によるウォームワードの検出を無効化することに応じて、第1アシスタントデバイスは第1アシスタントデバイスのアクティブ化されたウォームワードのセットに新しいウォームワードを追加する。いくつかの実施形態では、新しいウォームワードは、第1アシスタントデバイス(例えば、アシスタントデバイス110A)に対して次に高い親和性スコアを有する新しいウォームワードに基づいて(例えば、アシスタントクライアント120Aによって)選択され得る。他の実施態様では、新しいウォームワードは、新しいウォームワードと、第1アシスタントデバイス上で検出が有効になっている既存のウォームワードまたはウォームワードのセットとの関係に基づいて(例えば、アシスタントクライアント120Aによって)選択され得る。例えば、既存のウォームワードのセットが「音量を上げる」、「音量を下げる」、「次のトラック」を含む場合、「前のトラック」と音楽再生のコントロールに関連する既存のウォームワードのセットに基づいて、新しいウォームワード「前のトラック」を追加することができる。
【0072】
ブロック235を引き続き参照すると、いくつかの実施態様では、システムは、例えば、(アシスタントデバイス110Aのディスプレイに表示されるユーザインターフェース上で)どのウォームワードがアクティブ化されており、どのデバイス上にあるかに関するインジケーションをユーザに提供できる。例えば、アシスタントデバイス110Aは、利用可能なウォームワードのリストをデバイスアイコンを用いて表示し、アシスタントデバイス110A~110Dのどのデバイスが各ウォームワードを処理するかを示すことができる。
【0073】
ブロック240では、システムは、第1アシスタントデバイスのマイクを介して、発話を検出する。実施態様では、ブロック240で、アシスタントデバイス110A上で実行されるアシスタントクライアント120Aは、アシスタントデバイス110Aのマイクを介して、発話を検出する。例えば、アシスタントクライアント120Aは、「私の電話で3分間のタイマーを設定」という発話を検出することができる。この例では、ユーザの電話はアシスタントデバイス110Bであり得る。
【0074】
ブロック245では、システムは、第1アシスタントデバイスによって、一致するウォームワードのオンデバイスウォームワード検出モデルを使用して、発話においてで一致するウォームワードの発生を識別する。実施態様では、ブロック245で、アシスタントクライアント120Aは、一致するウォームワードのオンデバイスウォームワード(複数可)モデル137Aを使用して、ブロック240で検出した発話においてで一致するウォームワードの発生を識別する。例えば、アシスタントクライアント120Aは、「タイマーを設定」を一致するウォームワードの発生として識別することができる。
【0075】
ブロック250では、システムは、一致するウォームワードに先行する、または一致するウォームワードに続く発話の少なくとも一部に対して自動音声認識を実行することに基づいて、第2アシスタントデバイスが一致するウォームワードにマッピングされたコマンドのターゲットであると決定する。実施態様では、ブロック250で、アシスタントクライアント120Aは、一致するウォームワードに先行する、または一致するウォームワードに続く発話(ブロック240で検出)の少なくとも一部に対して自動音声認識を(例えば、ASRエンジン122A1を使用して)実行することに基づいて、発話で提供されるデバイス名が処理デバイス(アシスタントデバイス110A)の名前と一致しないことと、代わりに、第2アシスタントデバイス(例えば、アシスタントデバイス110B)が一致するウォームワードにマッピングされたコマンドのターゲットであると決定する。上記の例では、アシスタントクライアント120Aは、「私の電話」(すなわち、アシスタントデバイス110B)が、一致するウォームワード(「タイマーを設定」)にマッピングされたコマンドのターゲットであると決定する。
【0076】
ブロック250を引き続き参照すると、いくつかの実施態様では、現在の発話の処理を変更することに加えて、一致するウォームワードにマッピングされたコマンドのターゲットとして別のデバイスをユーザが明示的に割り当てることによって、一致するウォームワードにマッピングされたコマンドの進行中の処理を変更するのに使用することができる。例えば、発話で指定されたデバイスは、少なくとも一定期間、今後一致するウォームワードにマッピングされたコマンドを実行するように割り当てられることができる。この場合、アシスタントクライアント120Aは一致するウォームワードの検出を無効化し、アシスタントクライアント120Bは一致するウォームワードの検出を有効化することができる。アシスタントクライアント120Aは、無効化された一致するウォームワードの代わりに別のウォームワードを有効化することができる。いくつかの実施態様では、この変更は特定の時間(例えば、n時間、またはその日の残り時間)または現在のユーザアクティビティの期間に有効にすることができる。
【0077】
ブロック255では、第2アシスタントデバイスが一致するウォームワードにマッピングされたコマンドのターゲットであるとの決定に応じて、システムは、一致するウォームワードにマッピングされたコマンドを第2アシスタントデバイスに送る。実施態様では、ブロック255で、ブロック250で第2アシスタントデバイスが一致するウォームワードにマッピングされたコマンドのターゲットであるとの決定に応じて、アシスタントクライアント120Aは、一致するウォームワードにマッピングされたコマンドを第2アシスタントデバイス(例えば、アシスタントデバイス110B)に送る。この例では、アシスタントクライアント120Aは、一致するウォームワード(「タイマーを設定」)にマッピングされたコマンドをユーザの電話(アシスタントデバイス110B)に送る。
【0078】
図3は、本明細書に開示された実施態様による、自動アシスタントデバイス間のウォームワードアービトレーションのための例示的な方法300を示すフローチャートである。便宜上、フローチャートの操作は、操作を実行するシステムを参照して記載する。このシステムは、アシスタントデバイス110A~110Dの1つまたは複数のコンポーネントなど、様々なコンピュータシステムの様々なコンポーネントを含み得る。さらに、方法300の操作は特定の順序で示されているが、これは限定することを意味していない。1つまたは複数の操作を順序変更、省略、追加することが可能である。
【0079】
ブロック310では、システムは、第1アシスタントデバイスと第2アシスタントデバイスが近接して位置していると決定する。実施態様では、ブロック310で、クラウドベースのアシスタントコンポーネント140(複数可)は、第1アシスタントデバイスと第2アシスタントデバイスがそれぞれ同じ発話を検出することに基づいて、第1アシスタントデバイス(例えば、アシスタントデバイス110A)と第2アシスタントデバイス(例えば、アシスタントデバイス110B)が近接して位置していると決定する。
【0080】
ブロック310を引き続き参照すると、いくつかの実施態様では、少なくとも閾値の「音量」及び/または閾値の信号対雑音(SNR)比で同じ発話(複数可)を検出することが発生(複数可)することと、アシスタントデバイス間の音量及び/またはSNR比が発生(複数可)に対して類似していることとに基づいて、アシスタントデバイスが近接して位置していると決定される場合がある。言い換えれば、すべてのアシスタントデバイスが同じ発話(複数可)を明瞭に検出することに基づいて、2つ以上のアシスタントデバイスが近接して位置していると決定される場合がある。他の実施態様では、2つ以上のアシスタントデバイスが、ホームグラフ内の同じ部屋に割り当てられていることに基づいて、近接して位置していると決定される場合がある。さらに他の実施形態では、第1アシスタントデバイスは、スピーカを介して音を発し(任意選択で、人間には聞こえない周波数で)、他のアシスタントデバイスがマイク(複数可)を使用して音を聞き、音が検出されたかどうか、及び/または検出された音の特性(例えば、音量、SNR、検出のタイムスタンプなど)について報告を返すように要求することができる。音が検出されたかどうか、及び/または検出された音の特性に関するこの情報をアシスタントデバイスによって使用して、どのアシスタントデバイスが近くに位置しているかを判定することができる。さらに他の実施態様では、近距離無線通信(NFC)を使用して、どのアシスタントデバイスが近くに位置しているかを判定することができる。
【0081】
ブロック320では、システムは、第1アシスタントデバイス上でアクティブなオンデバイスウォームワード検出モデルの第1セットと、第2アシスタントデバイス上でアクティブなオンデバイスウォームワード検出モデルの第2セットを識別する。実施態様では、ブロック320で、クラウドベースのアシスタントコンポーネント140(複数可)は、第1アシスタントデバイス(アシスタントデバイス110Aなど)上でアクティブなオンデバイスウォームワード検出モデル(オンデバイスウォームワード(複数可)モデル137A1など)の第1セットと、第2アシスタントデバイス(アシスタントデバイス110Bなど)上でアクティブなオンデバイスウォームワード検出モデル(オンデバイスウォームワード(複数可)モデル137B1など)の第2セットを識別し、ブロック310で、第1アシスタントデバイスと第2アシスタントデバイスは近接して位置していることが決定されている。
【0082】
ブロック330では、システムは、オンデバイスウォームワード検出モデルの第1セットとオンデバイスウォームワード検出モデルの第2セットの両方に含まれる重複するオンデバイスウォームワード検出モデルを識別する。実施態様では、ブロック330で、クラウドベースのアシスタントコンポーネント140(複数可)は、オンデバイスウォームワード検出モデル(オンデバイスウォームワード(複数可)モデル137A1など)の第1セットとオンデバイスウォームワード検出モデル(オンデバイスウォームワード(複数可)モデル137B1など)の第2セットの両方に含まれる重複するオンデバイスウォームワード検出モデルを識別する。
【0083】
ブロック330を引き続き参照すると、いくつかの実施態様では、第1アシスタントデバイスと第2アシスタントデバイスのそれぞれについて、システムは、重複するオンデバイスウォームワード検出モデルに関連付けられたウォームワードの親和性スコアを識別する。いくつかの実施態様では、重複するオンデバイスウォームワード検出モデルに関連付けられたウォームワードの親和性スコアは、ウォームワードの検出頻度に基づいて決定される。他の実施態様では、重複するオンデバイスウォームワード検出モデルに関連付けられたウォームワードの親和性スコアは、ウォームワードが直近で検出された時間に基づいて決定される。
【0084】
ブロック340では、システムは、重複するオンデバイスウォームワード検出モデルを識別することに応じて、かつ第1アシスタントデバイスと第2アシスタントデバイスが近接して位置していると決定されることに基づいて、第1アシスタントデバイスと第2アシスタントデバイスとのいずれか一方の重複するオンデバイスウォームワード検出モデルを無効化する。実施態様では、ブロック340で、クラウドベースのアシスタントコンポーネント140(複数可)は、ブロック330で重複するオンデバイスウォームワード検出モードを識別することに応じて、ブロック310で第1アシスタントデバイスと第2アシスタントデバイスが近接して位置していると決定されることに基づいて、第1アシスタントデバイス(アシスタントデバイス110Aなど)と第2アシスタントデバイス(アシスタントデバイス110Bなど)とのいずれか一方のブロック330で識別された重複するオンデバイスウォームワード検出モデルを無効化する。
【0085】
図4は、本明細書で説明する技法の1つまたは複数の態様を実行するために任意選択で利用され得る例示的なコンピューティングデバイス410のブロック図である。いくつかの実施態様では、クライアントデバイス、クラウドベースの自動アシスタントコンポーネント(複数可)、及び/または他のコンポーネント(複数可)のうちの1つまたは複数が、例示的なコンピューティングデバイス410の1つまたは複数のコンポーネントを構成することができる。
【0086】
コンピューティングデバイス410は通常、バスサブシステム412を介して多数の周辺デバイスと通信する少なくとも1つのプロセッサ414を含む。これらの周辺デバイスは、例えばメモリサブシステム425及びファイルストレージサブシステム426を含むストレージサブシステム424、ユーザインターフェース出力デバイス420、ユーザインターフェース入力デバイス422、及びネットワークインターフェースサブシステム416を含み得る。入力デバイス及び出力デバイスにより、コンピューティングデバイス410とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム416は、外部ネットワークへのインターフェースを提供し、他のコンピューティングデバイス内の対応するインターフェースデバイスに結合される。
【0087】
ユーザインターフェース入力デバイス422は、キーボード、マウス、トラックボール、タッチパッド、グラフィックタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどのオーディオ入力デバイス、マイク、及び/またはその他の種類の入力デバイスを含み得る。一般に、「入力デバイス」という用語の使用は、コンピューティングデバイス410または通信ネットワークに情報を入力するためのすべての可能なタイプのデバイスと方法を含むことを意図している。
【0088】
ユーザインターフェース出力デバイス420には、ディスプレイサブシステム、プリンタ、ファックス機、またはオーディオ出力デバイスなどの非視覚的なディスプレイを含み得る。表示サブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影装置、または可視画像を作成するためのその他のメカニズムを含み得る。ディスプレイサブシステムは、オーディオ出力デバイスなどを介して非視覚的なディスプレイを提供することもできる。一般に、「出力デバイス」という用語の使用は、コンピューティングデバイス410からユーザまたは別のマシンやコンピューティングデバイスに情報を出力するためのすべての可能なタイプのデバイスと方法を含むことを意図している。
【0089】
ストレージサブシステム424は、本明細書に記載のモジュールの一部またはすべての機能を提供するプログラミング及びデータ構造を格納する。例えば、ストレージサブシステム424は、本明細書に開示されている方法の選択された態様を実行するロジックや、
図1に示されている様々なコンポーネントを実装するロジックを含み得る。
【0090】
これらのソフトウェアモジュールは通常、プロセッサ414単独で、または他のプロセッサと組み合わせて実行される。ストレージサブシステム424に含まれるメモリサブシステム425は、プログラムの実行中に命令とデータを格納するためのメインランダムアクセスメモリ(RAM)430と、固定命令が格納される読み取り専用メモリ(ROM)432などの、多数のメモリとを含むことができる。ファイルストレージサブシステム426は、プログラムファイル及びデータファイルの永続的な保存を提供することができ、ハードディスクドライブ、関連するリムーバブルメディアを伴うフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブルメディアカートリッジを含み得る。ある実施態様の機能を実装するモジュールは、ストレージサブシステム424内のファイルストレージサブシステム426によって、またはプロセッサ414(複数可)によってアクセス可能な他のマシンに格納されてもよい。
【0091】
バスサブシステム412は、コンピューティングデバイス410の様々なコンポーネントとサブシステムが意図したとおりに相互に通信できるようにするメカニズムを提供する。バスサブシステム412は単一のバスとして概略的に示されているが、バスサブシステムの代替実施態様では複数のバスを使用してもよい。
【0092】
コンピューティングデバイス410は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムやコンピューティングデバイスなど、様々な種類であり得る。コンピュータとネットワークは常に変化する性質であるため、
図4に示すコンピューティングデバイス410の説明は、いくつかの実施態様を説明するための特定の例としてのみ意図されている。コンピューティングデバイス410の他の多くの構成は、
図4に示すコンピューティングデバイスよりも多くのコンポーネントまたは少ないコンポーネントを有することが可能である。
【0093】
本明細書においていくつかの実施態様が説明され、図示されているが、本明細書に記載の機能を実行し、及び/または結果及び/または1つ以上の利点を得るために、他の様々な手段及び/または構造を利用することができ、そのような変形及び/または修正のそれぞれは、本明細書に記載の実施態様の範囲内にあるとみなされる。より一般的には、本明細書に記載のすべてのパラメータ、寸法、材料、及び構成は例示目的であることを意味しており、実際のパラメータ、寸法、材料、及び/または構成は、教示(複数化)が使用される特定のアプリケーション(複数化)に依存する。当業者は、ほんの日常的な実験を使用して、本明細書に記載される特定の実施態様に対する多くの等価物を認識するか、または確認することができるであろう。したがって、前述の実施態様は例示目的のみのために提示されており、添付の特許請求の範囲及びその同等物の範囲内で、具体的に説明及び特許請求されるものとは別に実施態様が実践される可能性があることを理解されたい。本開示の実施態様は、本明細書に記載される個々の特徴、システム、物品、材料、キット、及び/または方法にそれぞれを指す。さらに、このような特徴、システム、物品、材料、キット、及び/または方法が互いに矛盾しない限り、2つ以上のこのような特徴、システム、物品、材料、キット、及び/または方法の任意の組み合わせは、本開示の範囲に含まれる。