(57)【要約】  本明細書に記載する実装形態は、複数の自動アシスタントデバイスの応答性、具体的には、アシスタントデバイスのうちの2つ以上によって確認応答されている所与の口頭発話への自動アシスタントの応答性を管理するために、動的規制を採用することに関する。動的規制は、コンテキスト依存であり得、自動アシスタントが、ユーザごとに変わることがあるアシスタント対話選好に順応するように、経時的に適合され得る。たとえば、「stop」などの口頭発話は、ユーザが口頭発話を提供したコンテキストに基づいて、異なるアシスタントアクションに作用することが意図される場合がある。コンテキストとは、家の中での他の部屋に対するユーザのロケーション、時刻、口頭発話を提供するユーザ、家の中のアシスタントデバイスの配置、および/または家の中の各デバイスの状態を指すことができる。
2021533400.tif 000002
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実装される方法であって、
ユーザの口頭発話をキャプチャするオーディオデータを受信するステップであって、前記口頭発話が、自動アシスタントを介して修正アクションが実行されることを求める要求を具備し、各々が前記自動アシスタントを介して前記修正アクションを実行できる2つ以上のコンピューティングデバイスのうちの少なくとも1つによって受信される、ステップと、
前記2つ以上のコンピューティングデバイスのうちの第1のデバイスにおいて実行中の第1の進行中アクション、および
前記2つ以上のコンピューティングデバイスのうちの第2のデバイスにおいて実行中の第2の進行中アクション
の各々を前記修正アクションが修正できることを、前記口頭発話をキャプチャする前記オーディオデータを使用して決定するステップと、
前記修正アクションが前記第1の進行中アクションと前記第2の進行中アクションの両方を修正できることを決定することに基づいて、前記修正アクションに対応する記憶済みの規制を識別するステップであって、前記記憶済みの規制が、前記修正アクションの実行のコンテキスト依存関係を特徴づける、ステップと、
前記記憶済みの規制を識別することに基づいて、前記記憶済みの規制に関連付けられているコンテキストデータにアクセスするステップであって、前記コンテキストデータが、前記第1の進行中アクションの第1のタイプおよび前記第2の進行中アクションの第2のタイプを特徴づける、ステップと、
前記自動アシスタントを介して前記修正アクションがそこで実行されるべき、前記2つ以上のコンピューティングデバイスのうちのターゲットコンピューティングデバイスを、前記コンテキストデータおよび前記記憶済みの規制に基づいて決定するステップと、
前記アクションがそこで制御されるべき前記ターゲットコンピューティングデバイスを決定することに基づいて、前記自動アシスタントを介して前記ターゲットコンピューティングデバイスにおいて前記修正アクションを実行させるステップと
を備える方法。
【請求項２】
前記記憶済みの規制を決定するステップが、前記自動アシスタントにとってアクセス可能な複数の異なる規制から前記記憶済みの規制を識別するステップを含み、前記複数の異なる規制が、前記修正アクションを実行するように前記ユーザが前記自動アシスタントに要求することの1つまたは複数の以前のインスタンスに基づいて決定される、請求項1に記載の方法。
【請求項３】
前記記憶済みの規制が、前記ユーザから前記自動アシスタントによって以前に受信された1つまたは複数の補正口頭発話に基づいて決定され、前記1つまたは複数の補正口頭発話の各々は、前記補正口頭発話によって示されるように前記修正アクションの以前の対応するインスタンスが前記自動アシスタントを介して不適切に実行されたことに続いて、前記ユーザによって提供される、請求項2に記載の方法。
【請求項４】
前記第1の進行中アクションが、前記第1のデバイスのスピーカーを介して可聴音を提供するステップを含む、請求項1に記載の方法。
【請求項５】
前記コンテキストデータが、前記ユーザがその中で前記口頭発話を提供した建物の、1つまたは複数の部屋の占有を特徴づける占有データを含み、前記記憶済みの規制が、前記建物の前記1つまたは複数の部屋のうちの特定の部屋に関して少なくとも1つのアクションを制限するための、前記ユーザの選好を示す、請求項1に記載の方法。
【請求項６】
前記コンテキストデータが、前記建物の前記1つまたは複数の部屋のうちの前記特定の部屋内の前記ユーザのロケーションをさらに示し、前記記憶済みの規制が、前記ターゲットコンピューティングデバイスが前記自動アシスタントを介して前記少なくとも1つのアクションを制御するための、前記ユーザの別の選好を示す、請求項5に記載の方法。
【請求項７】
前記ターゲットコンピューティングデバイスにおいて前記修正アクションを実行させるステップが、前記2つ以上のコンピューティングデバイスのうちの前記ターゲットコンピューティングデバイスにおける特定の進行中アクションの実行を制限するステップを含む、請求項1に記載の方法。
【請求項８】
前記ターゲットコンピューティングデバイスにおいて前記少なくとも1つのアクションを実行させるステップが、オーディオデータまたはビジュアルデータの進行中のレンダリングを修正するステップを含み、前記コンテキストデータが、前記オーディオデータまたはビジュアルデータの前記進行中のレンダリングが初期化された時間を示す、請求項1に記載の方法。
【請求項９】
前記コンテキストデータが、前記2つ以上のコンピューティングデバイスの各コンピューティングデバイスの動作ステータスを識別し、前記2つ以上のコンピューティングデバイスの各コンピューティングデバイスが、前記動作ステータスを処理するためのサーバデバイスの共通コロケートクラスタに、それぞれの動作ステータスデータを提供するように構成される、請求項1に記載の方法。
【請求項１０】
1つまたは複数のプロセッサによって実装される方法であって、
ユーザのロケーションに配設された複数のクライアントデバイスの活動状態に対応するステータス情報を、複数のクライアントデバイスと通信しているサーバデバイスにおいて決定するステップであって、前記複数のクライアントデバイスの各クライアントデバイスが、自動アシスタントにとってアクセス可能である、ステップと、
前記決定されたステータス情報に従って動作している前記複数のクライアントデバイスのうちの少なくとも1つのクライアントデバイスに前記ユーザによって提供される口頭発話に基づくデータを受信するステップであって、前記口頭発話が、前記複数のクライアントデバイスのうちの1つまたは複数のクライアントデバイスによってアクションが実行されることを求める要求を具備する、ステップと、
前記口頭発話に基づく前記データの受信に応答して、前記複数のクライアントデバイスに関連付けられた動的規制の記憶済みのセットにアクセスするステップであって、動的規制の前記記憶済みのセットの少なくとも1つの記憶済みの規制が、前記ステータス情報に対する、前記1つまたは複数のクライアントデバイスによる前記アクションの実行の、コンテキスト依存関係を特徴づける、ステップと、
動的規制の前記記憶済みのセットの前記少なくとも1つの記憶済みの規制、および前記ステータス情報に基づいて、前記アクションを実行すべきターゲットクライアントデバイスを識別するステップであって、前記少なくとも1つの記憶済みの規制によって特徴づけられる前記コンテキスト依存関係が、前記アクションを実行すべき前記ターゲットクライアントデバイスを指定するための少なくとも1つのボリューム不可知論的な条件を含む、ステップと、
前記ターゲットクライアントデバイスに前記自動アシスタントを介して前記アクションを実行させるステップと
を備える方法。
【請求項１１】
前記ロケーションが、前記サーバデバイスにとってアクセス可能な記憶済みのトポロジーによって特徴づけられる複数の部屋を含み、前記方法が、
前記少なくとも1つのクライアントデバイスを含む第1の部屋内に前記ユーザが位置し、かつ前記複数の部屋のうちの第2の部屋内に前記ターゲットクライアントデバイスが位置するとして、前記コンテキスト依存関係を特徴づける現在のコンテキストデータにアクセスするステップをさらに含む、
請求項8に記載の方法。
【請求項１２】
前記口頭発話が、不明瞭なタイプの発話および固有のタイプの発話から選択された少なくとも1つのタイプの発話としてのものであるかどうかを、前記データを受信することに基づいて決定するステップをさらに備え、前記複数のクライアントデバイスに関連付けられた動的規制の前記記憶済みのセットにアクセスするステップ、前記アクションを実行すべきターゲットクライアントデバイスを識別するステップ、および前記ターゲットコンピューティングデバイスに前記アクションを実行させるステップの特定の動作が、前記口頭発話が前記不明瞭なタイプの発話であるものと決定されるときに実行される、
請求項8に記載の方法。
【請求項１３】
前記口頭発話が固有のタイプの発話であるものと決定されるとき、
前記口頭発話を介して前記ユーザによって特に識別される指定のクライアントデバイスを識別するステップと、
前記複数のクライアントデバイスに関連付けられた動的規制の前記記憶済みのセットにアクセスするステップをバイパスしながら前記指定のクライアントに前記アクションを実行させるステップとをさらに備える、
請求項10に記載の方法。
【請求項１４】
前記不明瞭なタイプの発話および前記固有のタイプの発話から選択された少なくとも1つのタイプの発話として、前記受信された口頭発話を特徴づけるステップが、前記ユーザと前記自動アシスタントとの間の以前の対話に基づく、請求項13に記載の方法。
【請求項１５】
1つまたは複数のプロセッサによって実装される方法であって、
ユーザに関連付けられた複数のクライアントデバイスからステータス情報を受信するステップであって、前記ステータス情報が、前記複数のクライアントデバイスのうちの1つまたは複数のクライアントデバイスが進行中アクションを実行中であることを示す、ステップと、
前記複数のクライアントデバイスによって提供された前記ステータス情報を処理するためのサーバデバイスの指定のコロケートクラスタを、前記ステータス情報を受信することに基づいて選択するステップであって、サーバデバイスの前記指定のコロケートクラスタが、サーバデバイスの複数の異なるコロケートクラスタから選択される、ステップと、
前記複数のクライアントデバイスのうちの1つのクライアントデバイスの自動アシスタントインターフェースにおいて前記ユーザからの口頭発話が受信されたことを決定するステップであって、前記自動アシスタントインターフェースが、前記ユーザと前記複数のクライアントデバイスにとってアクセス可能な自動アシスタントとの間の対話を容易にするように構成され、前記口頭発話が、前記自動アシスタントがアクションを実行することを求める要求を具備する、ステップと、
前記口頭発話が前記クライアントデバイスの前記自動アシスタントインターフェースにおいて前記ユーザから受信されたという決定に応答して、前記クライアントデバイスにおいて生成されたオーディオデータをサーバデバイスの前記指定のコロケートクラスタに提供させるステップであって、前記オーディオデータが、前記口頭発話の少なくとも一部分をキャプチャする、ステップと、
前記クライアントデバイスがサーバデバイスの前記指定のコロケートクラスタに前記オーディオデータを提供することに基づいて、前記ユーザによって要求された前記アクションを実行するための、前記複数のクライアントデバイスのうちの指定のクライアントデバイスを、サーバデバイスの前記指定のコロケートクラスタに識別させるステップと、
前記ユーザによって要求された前記アクションを前記指定のクライアントデバイスに実行させるステップと
を備える方法。
【請求項１６】
前記ステータス情報の受信に応答して、ロケーション内での様々なクライアントデバイスの配置を示す記憶済みのデバイストポロジーにアクセスするステップであって、前記複数のクライアントデバイスが、前記様々なクライアントデバイスのサブセットである、ステップと、
前記ユーザが前記自動アシスタントインターフェースに前記口頭発話を提供した、前記ロケーションの共通の部屋の中に、前記複数のクライアントデバイスがあることを決定するステップと
をさらに備える、請求項15に記載の方法。
【請求項１７】
前記アクションが特定の出力モダリティに対応し、前記方法が、
前記ロケーションの前記共通の部屋の中にある前記複数のクライアントデバイスが、前記要求によって識別される前記アクションに対応する前記特定の出力モダリティを含むことを決定するステップをさらに備える、
請求項16に記載の方法。
【請求項１８】
前記複数のクライアントデバイスのうちの2つ以上のクライアントデバイスが、異なるユーザアカウントに関連付けられ、前記2つ以上のクライアントデバイスが、前記2つ以上のクライアントデバイスが異なるユーザアカウントに関連付けられていることに基づいて、サーバデバイスの前記複数の異なるコロケートクラスタと通信するように構成される、請求項15に記載の方法。
【請求項１９】
それぞれのクライアントデバイスによって提供される特定のステータス情報が、前記複数のクライアントデバイスのうちの前記それぞれのクライアントデバイスが進行中アクションを実行中であるかどうかを示し、前記それぞれのクライアントデバイスが前記進行中アクションを実行中であるとき、前記ステータス情報が、前記進行中アクションを実行するために前記それぞれのクライアントデバイスのモダリティが採用されることを示す、請求項15に記載の方法。
【請求項２０】
前記指定のクライアントデバイスが、前記要求によって識別された前記アクションと前記複数のクライアントデバイスによって提供された前記ステータス情報との間の対応を示す、記憶済みのトレーニングデータに従って選択される、請求項19に記載の方法。
【請求項２１】
デバイスであって、
ユーザが自動アシスタントと通信することを促進するために受信される口頭発話の受信に応答して信号を生成するように構成された、オーディオインターフェースであって、前記口頭発話が、前記オーディオインターフェースと他のクライアントデバイスの別のオーディオインターフェースの両方において受信され、前記他のクライアントデバイスが、前記自動アシスタントにとってアクセス可能な複数のクライアントデバイスのうちの1つであるクライアントデバイスである、オーディオインターフェースと、
同様に前記口頭発話を受信した前記他のデバイスからの通信を受信するように構成された、ネットワークインターフェースであって、前記他のデバイスによって提供される前記通信が、前記他のデバイスに関連付けられたコンテキストを特徴づける第1のコンテキストデータを含む、ネットワークインターフェースと、
前記オーディオインターフェースにおいて受信中の前記口頭発話に関連付けられた別のコンテキストを特徴づける第2のコンテキストデータを記憶するように構成されたメモリと、
動作を実行するように構成された1つまたは複数のプロセッサとを備え、前記動作が、
前記複数のクライアントデバイスに対するランク付けを決定することであって、前記ランク付けが、少なくとも前記第1のコンテキストデータに基づく第1のランクおよび前記第2のコンテキストデータに基づく第2のランクを含み、前記ランク付けの各ランクが、前記自動アシスタントを介して前記口頭発話に応答すべき、前記複数のクライアントデバイスのうちの特定のデバイスの選択に少なくとも部分的に影響を及ぼすことと、
前記複数のクライアントデバイスのうちの候補デバイスが、前記ランク付けの他のランクと区別される対応するランクを有するとき、
前記ランク付けの前記対応するランクに少なくとも基づいて、前記自動アシスタントに、前記候補デバイスを介して前記口頭発話に応答させることとを含む、
デバイス。
【請求項２２】
前記ネットワークインターフェースが、前記オーディオインターフェースにおいて前記口頭発話が受信される前に前記他のデバイスからの前記通信を受信するようにさらに構成される、請求項21に記載のデバイス。
【請求項２３】
前記オーディオインターフェースにおいて前記口頭発話が受信される前に、または前記オーディオインターフェースにおいて前記口頭発話が受信されている間に、前記1つまたは複数のプロセッサによって前記ランク付けを決定することが実行される、請求項22に記載のデバイス。
【請求項２４】
前記1つまたは複数のプロセッサが、
前記オーディオインターフェースにおいて前記口頭発話が受信される前に前記第2のコンテキストデータを生成することと、
前記ネットワークインターフェースに、別個の通信を前記他のデバイスに提供させることとを含む動作を実行するようにさらに構成され、前記他のデバイスが、前記他のデバイスが前記自動アシスタントを介して前記口頭発話に応答する任務を負うかどうかを決定するように構成される、
請求項21に記載のデバイス。
【請求項２５】
前記1つまたは複数のプロセッサが、
前記ネットワークインターフェースと通信しているが前記口頭発話を確認応答していない別個のデバイスへ、別個の通信を送ることと、
前記別個のデバイスが前記自動アシスタントを介して前記口頭発話に応答する任務を負うかどうかを決定することとを含む動作を実行するようにさらに構成される、
請求項21に記載のデバイス。
【請求項２６】
前記1つまたは複数のプロセッサが、
前記別個のデバイスの動作ステータスを特徴づける第3のコンテキストデータを生成することを含む動作を実行するようにさらに構成される、
請求項21に記載のデバイス。
【請求項２７】
前記1つまたは複数のプロセッサが、
前記複数のクライアントデバイスのうちの2つ以上のクライアントデバイスが、前記2つ以上のクライアントデバイス間の引き分けランク付けを引き起こすそれぞれのランクを有するとき、
前記2つ以上のクライアントデバイスの特色を特徴づける補足コンテキストデータを決定することと、
そのランク付けが前記複数のクライアントデバイスのうちの他のクライアントデバイスのランク付けと区別される、それぞれのクライアントデバイスに有利なように、前記補足コンテキストデータに基づいて前記引き分けランク付けを解決させることとを含む動作を実行するようにさらに構成される、
請求項21に記載のデバイス。
【請求項２８】
1つまたは複数のプロセッサによって実装される方法であって、
第1のクライアントデバイスにおいて口頭発話が受信されていることを決定するステップであって、前記口頭発話が、前記第1のクライアントデバイスのアシスタントインターフェースを介してアクセス可能な自動アシスタントと通信することを促進するためにユーザによって提供され、前記口頭発話が、前記第1のクライアントデバイスを含む複数のクライアントデバイスによって受信される、ステップと、
第2のクライアントデバイスによる前記口頭発話の受信に応答して、前記口頭発話を受信した前記第2のクライアントデバイスから通信を受信するステップであって、前記第2のクライアントデバイスによって提供される前記通信が、前記第2のクライアントデバイスに関連付けられたコンテキストを特徴づける第1のコンテキストデータを含む、ステップと、
前記第1のクライアントデバイスに関連付けられた別のコンテキストを特徴づける他のコンテキストデータを決定するステップと、
前記複数のクライアントデバイスに対するランク付けを決定するステップであって、前記ランク付けが、少なくとも前記第1のコンテキストデータに基づく第1のランクおよび前記第2のコンテキストデータに基づく第2のランクを含み、前記ランク付けの各ランクが、前記口頭発話に応答すべき、前記複数のクライアントデバイスのうちの特定のクライアントデバイスの選択に少なくとも部分的に影響を及ぼす、ステップと、
前記複数のクライアントデバイスのうちの候補クライアントデバイスが、前記ランク付けの他のランクと区別される対応するランクを有するとき、
前記ランク付けの前記対応するランクに少なくとも基づいて、前記自動アシスタントに、前記候補デバイスを介して前記口頭発話に応答させるステップと
を備える方法。
【請求項２９】
前記口頭発話が前記第1のクライアントデバイスによって受信される前に、前記通信が前記第2のクライアントデバイスから受信される、請求項28に記載の方法。
【請求項３０】
前記第1のクライアントデバイスにおいて前記口頭発話が受信される前に、または前記第1のクライアントデバイスにおいて前記口頭発話が受信されている間に、前記ランク付けを決定するステップが実行される、請求項29に記載の方法。
【請求項３１】
オーディオインターフェースにおいて前記口頭発話が受信される前に前記第2のコンテキストデータを生成するステップと、
ネットワークインターフェースに、別個の通信を前記他のデバイスに提供させるステップとをさらに備え、前記他のデバイスが、前記他のデバイスが前記自動アシスタントを介して前記口頭発話に応答する任務を負うかどうかを決定するように構成される、
請求項28に記載の方法。
【請求項３２】
前記第1のクライアントデバイスと通信しているが前記口頭発話を確認応答していない別個のデバイスへ、別個の通信を送るステップと、
前記別個のデバイスが前記自動アシスタントを介して前記口頭発話に応答する任務を負うかどうかを決定するステップと
をさらに備える、請求項28に記載の方法。
【請求項３３】
前記別個のデバイスの動作ステータスを特徴づける第3のコンテキストデータを生成するステップ
をさらに備える、請求項28に記載の方法。
【請求項３４】
前記複数のクライアントデバイスのうちの2つ以上のクライアントデバイスが、前記2つ以上のクライアントデバイス間での引き分けランク付けを引き起こすそれぞれのランクを有するとき、
前記2つ以上のクライアントデバイスの特色を特徴づける補足コンテキストデータを決定するステップと、
そのランク付けが前記複数のクライアントデバイスのうちの他のクライアントデバイスのランク付けと区別される、それぞれのクライアントデバイスに有利なように、前記補足コンテキストデータに基づいて前記引き分けランクを解決させるステップと
をさらに備える、請求項28に記載の方法。
【請求項３５】
1つまたは複数のプロセッサによって実装される方法であって、
複数の動的規制をデータベースの中に記憶するステップであって、各動的規制が、ユーザコマンドに関連付けられ、前記ユーザコマンドに対応するアクションを実行すべき制御される複数のデバイスの各々と、前記ユーザ、および/または前記制御されるそれぞれのデバイスを含む前記複数のクライアントデバイスのうちの少なくとも1つに対する、コンテキスト情報との間の対応を指定する、ステップと、
複数のクライアントデバイスのうちの1つからのユーザコマンドを表す第1の入力を受信すること、
前記受信されたユーザコマンドに対応する前記複数の記憶済みの動的規制のうちの1つを識別すること、
前記ユーザ、および/または前記制御されるデバイスを含む前記複数のクライアントデバイスのうちの少なくとも1つに対する、コンテキスト情報を要求および取得すること、
前記記憶済みの動的規制に関連付けられた前記コンテキスト情報に基づいて、前記複数のクライアントデバイスのうちの1つのクライアントデバイスを前記制御されるデバイスとして識別すること、
前記識別されるクライアントデバイスによって、前記識別される動的規制の実行を開始すること、
前記複数のクライアントデバイスのうちの前記1つから前記ユーザコマンドの更新を表す第2の入力を受信することであって、補正が、制御されるべき更新済みのクライアントデバイスを指定する、受信すること、ならびに
前記更新済みのクライアントデバイスと前記取得されるコンテキスト情報との間の対応を指定するように、前記データベースの中の前記記憶済みの動的規制を更新することによって、
前記記憶済みの複数の規制をトレーニングするステップと、
前記更新済みのクライアントデバイスによって、前記識別される動的規制の実行を開始するステップと
を備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチアシスタント環境の特性によるアシスタント応答性の規則に関する。
【背景技術】
【０００２】
本明細書で「自動アシスタント」と呼ぶ(「デジタルエージェント」、「チャットボット」、「対話型パーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「アシスタントアプリケーション」、「会話型エージェント」などとも呼ばれる)対話型ソフトウェアアプリケーションを用いて、人からコンピュータへの対話に人が関与することがある。たとえば、(自動アシスタントと対話するとき、「ユーザ」と呼ばれることがある)人は、場合によってはテキストに変換されてよく、次いで、処理されてよい、口頭の自然言語入力(すなわち、発話)を使用して、かつ/またはテキストの(たとえば、タイプされた)自然言語入力を提供することによって、コマンドおよび/または要求を自動アシスタントに提供し得る。
【０００３】
多くのユーザは、複数のクライアントデバイスを使用して自動アシスタントを従事させ得る。たとえば、一部のユーザは、クライアントデバイスの中でも、1つまたは複数のスマートフォン、1つまたは複数のタブレットコンピュータ、1つまたは複数の車両コンピューティングシステム、1つまたは複数のウェアラブルコンピューティングデバイス、1つまたは複数のスマートテレビ、および/あるいは1つまたは複数のスタンドアロンの対話型スピーカーなどの、クライアントデバイスの協調した「エコシステム」を所有することがある。ユーザは、これらのクライアントデバイスのうちのいずれかを使用して、(自動アシスタントクライアントがインストールされていることを想定して)自動アシスタントとともに人からコンピュータへの対話に関与し得る。場合によっては、これらのクライアントデバイスは、ユーザの主要な住居、2番目の住居、職場、および/または他の構造物の方々に分散されることがある。たとえば、スマートフォン、タブレット、スマートウォッチなどのモバイルクライアントデバイスは、ユーザの身体上にあってよく、かつ/またはユーザがそれらを最後に置いたところならどこにあってもよい。従来のデスクトップコンピュータ、スマートテレビ、およびスタンドアロンの対話型スピーカーなどの他のクライアントデバイスは、さほど動かないことがあるが、とはいえ、ユーザの家または職場の中の様々な場所(たとえば、部屋)に位置することがある。
【０００４】
ユーザが自分の家の中に複数の自動アシスタントデバイスを有するとき、各それぞれの自動アシスタントデバイスは、異なるアクションを実行した結果として異なる動作ステータスを有することがある。そのようなときにおいて、ユーザは、自動アシスタントデバイスにおいて進行している特定のアクションを修正するように要求し得るが、間違って異なる自動アシスタントデバイスに異なるアクションを修正させることがある。なぜかと言うと、部分的には、単に特定のアクションを修正するためにユーザがコマンドを話したことがそれぞれのアシスタントデバイスに聞こえたかどうかのみに、いくつかのアシスタントデバイスが依拠している場合があるからであり得る。その結果、ユーザが対話することを意図したアシスタントデバイスにユーザが直接話していないとき、いくつかのマルチアシスタント環境への自動アシスタントデバイスの適応性は制限されることがある。たとえば、ユーザは、自分が通信することを意図しなかったアシスタントデバイスにおいて、進行中アクションが実行されるのを偶発的に止めることがあり、それによって、止められたアクションを再び呼び出すためにユーザが以前の口頭発話を反復することを必要とする。
【０００５】
あいにく、アクションを偶発的に止めることに応答して、止められたアクションに対して割り振られたメモリがアシスタントデバイスによって再使用されることがあり、止められたアクションをユーザが後で再び呼び出すとき、アシスタントデバイスは関連する任意のデータを再び獲得しなければならない場合がある。一見すると冗長なそのような成り行きは、たとえば、いくつかの口頭発話が、ネットワーク接続を介してのみアクセス可能な自然言語モデルによって処理され得るので、ネットワークリソースを浪費することがある。さらに、間違ってキャンセルされたアクションに関連する任意のデータは、アクションを完了させることを促進するために再ダウンロードされなければならないことになり、エネルギー集約的なアクション(たとえば、ディスプレイバックライティング、発熱体、および/または電動式機器を制御すること)をキャンセルすることにより浪費される任意のエネルギーは、回収可能でないことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本開示は、概して、複数の自動アシスタントデバイスの応答性を統率するために、動的規制を採用するための方法、装置、および(一時的および非一時的な)コンピュータ可読媒体を対象とする。具体的には、アシスタントデバイスのうちの2つ以上によって確認応答されている所与の口頭発話への自動アシスタントの応答性が、動的規制に従って適合され得る。動的規制とは、経時的に変化することがある所与のコンテキストに従って特定の自動アシスタントデバイスが特定のアクションを実行することを許可するための規則であり得る。追加または代替として、各自動アシスタントデバイスは、実行に対して特定のアクションを特定の自動アシスタントデバイスに委任するための、自動アシスタントの能力を統率する複数の異なる動的規制に従って、動作することができる。そのような動的規制は、特定のアクションが実行されることを求める着信要求を複数の自動アシスタントデバイスが同時に確認応答するときなどの、特定の自動アシスタントデバイスが特定のアクションを実行するいくつかのコンテキストを識別することができる。
【０００７】
一例として、ユーザは、第1のアシスタントデバイスを通じて自分のリビングルームの中で音楽を聞いていることがあり、その間、第2のアシスタントデバイスは、ユーザの料理の進捗の警報をユーザに出すために台所の中でアラームを提供するように設定されることがある。アラームが鳴ると、ユーザは、アラームが鳴ることに対応するアクションを修正するために、第2のアシスタントデバイスに口頭発話を提供することができる。たとえば、ユーザは、自分のリビングルームから口頭発話「Assistant, stop!」を提供することができるが、口頭発話が第2のアシスタントデバイスに作用することを意図する。ユーザが自分のリビングルームの中にいるので、第1のアシスタントデバイスは、台所の中にある第2のアシスタントデバイスと比較して、より大きいボリュームで口頭発話を受信することができる。しかしながら、第1のアシスタントデバイスにおける進行中の音楽再生アクションに作用することなく、第2のアシスタントデバイスにおける進行中のアラームアクションを停止させるために、第1のアシスタントデバイスは、任意の進行中アクションに作用する前に1つまたは複数の動的規制にアクセスすることができる。
【０００８】
動的規制は、リビングルームの中でのユーザのロケーション、それぞれ、リビングルーム内および台所内での各アシスタントデバイスのロケーション、ならびに/または、それぞれ、各アシスタントデバイスにおいて実行中の各進行中アクションを示す、コンテキストデータによって特徴づけられ得る、ユーザの現在のコンテキストに関連付けられてよい。たとえば、動的規制は、第2のアシスタントデバイスがアラーム音を発した後、かつ/または第2のアシスタントデバイスがアラーム音を発してからしきい値時間期間(たとえば、5秒)以内に、ユーザがこれまで口頭発話「stop」を提供していることを示す、トレーニングデータに基づくことができる。この動的規制は、現在のコンテキスト内で口頭発話「Assistant, stop」に応答して音楽を止めるべきか否かを自動アシスタントがそこから決定できる根拠を提供することができる。たとえば、口頭発話「Assistant, stop」に応答して、自動アシスタントは、動的規制にアクセスすること、アラームが鳴るしきい値時間期間以内に口頭発話が提供されたことを決定すること、および第2のアシスタントデバイスのアラームアクションを修正することができる。言い換えれば、異なるアシスタントデバイスにおいて並行して音楽が再生されアラームが鳴るにもかかわらず、自動アシスタントは、動的規制および現在のコンテキストに少なくとも基づいて、アラームが鳴ることのみに作用する。
【０００９】
いくつかの実装形態では、そこから動的規制を経時的に生成および/または修正すべき根拠としてトレーニングデータが使用され得る。トレーニングデータは、1つまたは複数のアプリケーションおよび/またはデバイスによって実行中の1つまたは複数の進行中アクションを初期化および/または修正するためにユーザによって提供される、様々な異なる口頭発話に基づくことができる。たとえば、動的規制は、ユーザが類似のコンテキスト内で1つまたは複数の補正口頭発話を提供していることを、自動アシスタントが確認応答することに基づいて生成され得る。補正口頭発話は、自動アシスタントが特定のアクションをユーザの意図に対して不適切に修正することに応答して、ユーザによって提供され得る。一例として、ユーザが、以前に、上記で識別された第2のアシスタントデバイスがアラームを発し始めた後に口頭発話「Assistant, stop」を提供したことがあり、それに応答して、自動アシスタントが、第1のアシスタントデバイスにおける進行中の音楽再生アクションを不適切に止めたことがあり得る。音楽再生アクションの不適切な修正を解決するために、ユーザは、補正口頭発話「No, stop the alarm」を提供することができる。それに応答して、自動アシスタントは、補正口頭発話を処理すること、音楽再生アクションを再び開始すること、およびアラームアクションを停止することができる。さらに、自動アシスタントは、アラームと音楽の両方が聞こえる間、かつ随意に、「stop」と話すときにユーザがリビングルームの中に位置するとき、ユーザが「stop」と話すとアラームのみを止めるための現在のコンテキストおよびユーザの選好を特徴づける、動的規制を生成させることができる。このようにして、ユーザは、そのコンテキストに関して補正口頭発話を提供し続けなくてよいことになり、それによって、補正口頭発話に応じるために言語処理およびアシスタントデバイス間でのシグナリングにおいて本来なら費やされることになる計算リソースを保持する。
【００１０】
いくつかの実装形態では、動的規制は、1つまたは複数のコンテキスト依存関係を有することができる。コンテキスト依存関係とは、特定のコンテキストが与えられると特定のアクションが初期化および/または修正されるかどうかに影響を及ぼす、特定のコンテキストの特性を指すことができる。一例として、動的規制は、ユーザの家の特定の部屋内で特定のアクションが実行されるために満たされなければならない、占有関連データを識別することができる。たとえば、家の寝室内で人(たとえば、眠っている乳児)が検出されるとき、ユーザは、特定の時間(たとえば、午後6時)を過ぎて音でその人を邪魔しないことを好むことがある。したがって、動的規制は、1つまたは複数の部屋、作用される1つまたは複数のアクション(たとえば、音楽を再生すること、アラームを発すること、別の方法で音を立てることなど)、作用される1つまたは複数のアシスタントデバイス、作用される1つまたは複数のアカウント、アクションに関連する1つまたは複数の出力モダリティ、アシスタントデバイスにおいて利用可能な1つまたは複数の出力モダリティ、および/あるいは自動アシスタントに関連し得る任意の他の特徴を識別することができる。具体的には、上記の例によれば、対応する動的規制は、家の寝室、寝室内に位置するアシスタントデバイス、およびいくつかのアクションがその後で制限される特定の時間を識別することができる。したがって、アクションが実行されることを求める要求を自動アシスタントが受信すると、自動アシスタントは、動的規制によって確立された制限内で自動アシスタントが作動することを確実にするために、動的規制にアクセスすることができる。
【００１１】
いくつかの実装形態では、1つまたは複数のアシスタントデバイスを制御するための動的規制は、所与のコンテキストにおいて識別される第1のアシスタントデバイスが2人以上のユーザに関連付けられているかどうかに基づくことができる。さらに、第1のアシスタントデバイスが2人以上のユーザに関連付けられているとき、所与のコンテキスト内で識別される第2のアシスタントデバイスは、第2のアシスタントデバイスが2人以上のユーザに直ちにかつ/または直接関連付けられていないにもかかわらず2人以上のユーザによって制御されることがある。一例として、2人のユーザが、第1のユーザの家のリビングルームの中のテレビで映画を見ていることがあり、2人のユーザの各々は、互いのそれぞれのポータブルコンピューティングデバイスの中で連絡先として識別され得る。具体的には、2人のユーザのうちの第2のユーザは、2人のユーザのうちの第1のユーザに電話をかけるために自分のポータブルコンピューティングデバイスを使用した履歴を有することができる。
【００１２】
映画を見ながら、第1のユーザは、スナックを取るためにリビングルームを離れることがあり、第1のユーザが歩き去るのを見ている第2のユーザは、映画を一時停止するためにテレビの自動アシスタントインターフェースに口頭発話を提供することができる。たとえば、第2のユーザは、テレビの自動アシスタントインターフェース(たとえば、マイクロフォン)にコマンド「Assistant, pause」を提供することができる。それに応答して、第1のユーザのアカウントに従って動作する自動アシスタントは、第2のユーザおよび第1のユーザが第1のユーザの家の中にいながら第2のユーザが映画の再生を制御することを許可するために、動的規制にアクセスすること、および/または動的規制を生成することができる。具体的には、動的規制は、第1のユーザが自分のポータブルコンピューティングデバイスの中で連絡先として第2のユーザを有し、かつ第1のユーザと第2のユーザの両方が第1のユーザの家の中にいるとき、第2のユーザが映画再生を制御できることを必要とすることがある。いくつかの実装形態では、第2のユーザのポータブルコンピューティングデバイスが、ユーザの家の家庭用WiFiに接続されていること、および/または第2のユーザによって提供された口頭発話がポータブルコンピューティングデバイスにも聞こえたことを決定することによって、第2のユーザが自動アシスタントによって識別され得る。追加または代替として、自動アシスタントは、少なくとも第2のユーザによって口頭発話が提供されていることを確認するために、第2のユーザによって口頭発話が提供されているときに第2のユーザのポータブルコンピューティングデバイスが第2のユーザのしきい値距離内に位置することを決定することができる。
【００１３】
いくつかの実装形態では、テレビで再生される映画を第2のユーザが一時停止することの許可に応答して、自動アシスタントは、テレビで映画を一時停止することに関連する動的規制を、第2のユーザが映画を一時停止することを許可するように修正することができる。このようにして、自動アシスタントは、特定の規制を緩和するように動的規制を適合させることができ、したがって、計算リソースを保持する。たとえば、動的規制が更新されており、かつ第2のユーザがテレビに別の要求を発すると、自動アシスタントは、第1のユーザのポータブルコンピューティングデバイスと第2のユーザとの間のいかなる対応も確かめる必要がないことになる。むしろ、自動アシスタントは、家の中での第2のユーザまたはその人のそれぞれのデバイスの存在、あるいは第1のユーザと第2のユーザの両方が家および/または共通の部屋の中にいる(たとえば、両方がリビングルームの中にいる)ことを、確認しさえすればよい場合がある。
【００１４】
いくつかの実装形態では、動的規制のコンテキスト依存関係は、1つまたは複数の自動アシスタントデバイスのロケーションに対する記憶済みのレイアウトに基づくことができる。記憶済みのレイアウトは、部屋の隣接関係、部屋の数量、部屋のサイズ、各それぞれの部屋内のデバイスのロケーション、特定の各部屋の最も占有される部分(たとえば、ユーザごとかつ/または部屋ごとの熱グラフ)、および/またはロケーションに関連する任意の他の特性を特徴づけることができる。追加または代替として、動的規制のコンテキスト依存関係は、特定の口頭発話を受信した特定のアシスタントデバイス、特定のロケーション内でのアシスタントデバイスの利用可能なモダリティ、各アシスタントデバイスによって実行されることが可能なアクション、および/またはアシスタントデバイスのアクションに関連することができる任意の他の偶然性に基づくことができる。たとえば、ユーザは、自分の台所の中にオーディオ専用アシスタントデバイスを、かつ自分のリビングルームの中にアシスタント対応テレビを有することができる。ユーザ用の自動アシスタントは、モダリティ固有のアクションに対応する要求をユーザが提供するとき、アシスタント対応テレビがオーディオ専用アシスタントデバイスから制御されることを許可する動的規制に従って動作することができる。たとえば、ユーザが自分の台所の中におり、かつユーザの子供がリビングルームの中にいる間、ユーザは、デバイスを明示的に指定することなく、子供向けの映画をテレビで再生するように自分の台所の中のオーディオ専用アシスタントデバイスに頼むことができる。口頭発話は、たとえば、「Assistant, play a kid's movie」であり得、オーディオ専用アシスタントデバイスによる口頭発話の受信に応答して、オーディオ専用アシスタントデバイスは、関連する動的規制を識別することができる。識別された動的規制は、ユーザが自分の台所の中のオーディオ専用アシスタントデバイスにビデオ関連の要求を提供すると、ビデオモダリティを用いて他のアシスタントデバイスをオーディオ専用アシスタントデバイスが制御することを許可することができる。
【００１５】
いくつかの実装形態では、ユーザからの要求が特定のアシスタントデバイス、特定のモダリティ、アクションが実行されるべきロケーションを指定しないか、またはさもなければ不明瞭な言葉を含む場合は、自動アシスタントは、不明瞭さを解決するために1つまたは複数の動的規制を識別することができる。いくつかの事例では、同じ記述を有するアシスタントデバイスが別のアシスタントデバイスを有することを、要求が識別するとき、要求は不明瞭と見なされ得る。たとえば、ユーザは、それぞれ、2つ以上の異なるロケーションにおいて、自分の家の中に2つ以上のアシスタント対応テレビを有することがある。したがって、「Assistant, play the movie Pi on my television」などの口頭発話は、複数のデバイスを指すものと解釈され得るので不明瞭と見なされ得る。その結果、単一のアシスタントデバイスを識別するが複数のアシスタントデバイスを不明瞭に指す要求を自動アシスタントが受信すると、自動アシスタントは、不明瞭さを解決するために1つまたは複数の動的規制にアクセスすることができる。
【００１６】
一例として、上述の口頭発話の受信に応答して、自動アシスタントは、口頭発話が特定のタイプのデバイス(たとえば、「テレビ」)に関して不明瞭さを含むことを決定することができ、特定のタイプのデバイスに関する不明瞭さに対応する動的規制にアクセスすることができる。アクセスされる動的規制は、ユーザが、自分の台所の中におり、かつ自分のテレビで映画が再生されることを要求するとき、自分の寝室のテレビまたは子供部屋のテレビではなく、自分のリビングルームのテレビで映画が再生されるのをユーザが好むことを示すことができる。いくつかの実装形態では、この動的規制は、口頭発話を提供しているユーザに従って異なってよい。したがって、子供たちのうちの1人が台所の中で口頭発話を提供している場合、自動アシスタントは、リビングルームのテレビではなく子供部屋のテレビで、映画の再生を開始させることができる。
【００１７】
いくつかの実装形態では、口頭発話に対応する要求されたアクションを実行すべきアシスタントデバイスを求める選択は、他のアシスタントデバイスと比較した、口頭発話がアシスタントデバイスに聞こえた度合いに基づくことができる。たとえば、自分の台所から口頭発話を提供するユーザは、少なくとも家屋の異なる部屋の中に位置する異なるアシスタントデバイスに優先して、自分の台所の中のアシスタントデバイスに特定のアクションを実行させる可能性がある。追加または代替として、自動アシスタントは、どのアシスタントデバイスが口頭発話を確認応答したのかに従って、ユーザの家の中のアシスタントデバイスの集合から候補アシスタントデバイスを選択することができる。その後、自動アシスタントは、各候補アシスタントデバイスに口頭発話が聞こえた度合いを比較することができ、口頭発話が最大の度合いで聞こえたアシスタントデバイスを選択することができる。
【００１８】
一例として、自動アシスタントは、ユーザが口頭発話を話すことがそれらに本当に聞こえたかどうかに基づいて候補アシスタントデバイスを選択することができ、次いで、口頭発話が各アシスタントデバイスに聞こえたボリュームレベルを識別することができる。自動アシスタントは、最高と決定されたボリュームレベルに基づいて許容レベルを決定することができ、検討中の候補アシスタントデバイスの数をさらに低減することができる。その対応する決定済みのボリュームレベルが許容範囲内に入る任意の残りの候補アシスタントデバイスがさらに分析されて、要求されたアクションを実行するのに最も適切なアシスタントデバイスを識別することができる。たとえば、ユーザは、あるターゲットアシスタントデバイスで音楽が再生されることを要求する口頭発話を提供してよいが、そのターゲットアシスタントデバイスは、口頭発話が最も大きな音量で聞こえたアシスタントデバイスではなかった場合がある。しかしながら、ターゲットアシスタントデバイスは、特定のしきい値許容範囲内で口頭発話が受信されたことを確認応答している候補アシスタントデバイスのグループに分類され得る。追加のデータ(たとえば、コンテキストデータ)を使用して、要求されたアクションを実行するのに最もユーザに好ましいアシスタントデバイスを決定するために、候補アシスタントデバイスに対する識別子が、要求されたアクション(たとえば、音楽を再生すること)に関係する1つまたは複数の動的規制と比較され得る。
【００１９】
いくつかの実装形態では、特定の口頭発話を提供するときのユーザの軌跡が、1つまたは複数の動的規制に対して識別され得る。このようにして、口頭発話を提供しながら移動しつつあるユーザの軌跡は、ユーザによって要求されたアクションを実行するアシスタントデバイスを識別するための制限要因であり得る。一例として、動的規制は、ユーザが自分の家屋の中を歩行中であり、第1のアシスタントデバイスにおいて音楽が再生中であり、かつ第2のアシスタントデバイスによってアラームが発せられているとき、「Assistant, stop」などの口頭発話をどのように処理すべきかを示すことができる。アラームが、ある時間量にわたってオーブンがオンであることなどの、注意を必要とする何かに関連し得るので、ユーザは、「stop」要求を提供するとき、アラーム音のソースに向かう歩行の履歴を有してよい。実際にはアラームが止められることをユーザが意図したときに音楽がユーザによって止められることを防止するために、動的規制はユーザの学習されたこの習慣をキャプチャすることができる。
【００２０】
いくつかの実装形態では、動的規制は、特定の口頭発話のコンテキストに関連するコンテキストデータを入力として受信するように構成されている、1つまたは複数の機械学習モデルに従って動作することができる。たとえば、本来なら動的規制によって示されることになる出力を導出するために、コンテキストデータが機械学習モデルに提供され得る。コンテキストデータは、家のレイアウト、家の中の1人または複数人のユーザに対する識別子、家の中の1つまたは複数のアシスタントデバイスに対する識別子、家の中の各アシスタントデバイスのロケーション、家の中の各部屋に対応する隣接関係データ、家の中での各人のロケーション、時刻、家の中の各デバイスのステータス、口頭発話に基づくオーディオから導出される音声特性、各デバイスによって実行されつつある進行中アクションのタイプ(たとえば、受動アクション、能動アクションなど)、および/あるいはユーザが特定の口頭発話を提供するコンテキストを記述できる任意の他のデータを特徴づけることができる。このようにして、各アシスタントデバイスは、一見したところ、いくつかの自動アシスタントデバイスが特定のアクションを実行するための、ユーザの選好の変化に適合することができる。
【００２１】
口頭発話によって指定されたアクションを最終的に実行するアシスタントデバイスを選択するためのプロセスは、アシスタントデバイスとは別個のネットワークにおいて動作する1つまたは複数のサーバデバイスなどの、1つまたは複数のリモートコンピューティングデバイスにおいて実行され得る。言い換えれば、アクションを実行すべき好適なアシスタントデバイスを選択するためのプロセスは、好適なアシスタントデバイスを識別するための入力を処理する特定のサーバデバイスまたはサーバデバイスの指定のコロケートクラスタを選択することを含むことができる。たとえば、各アシスタントデバイスは、各アシスタントデバイスに関連付けられているそれぞれのサーバデバイスまたはサーバデバイスのコロケートクラスタに、ステータス情報を提供することができる。各アシスタントデバイスは、各アシスタントデバイスが1つもしくは複数の異なるアカウントおよび/または1つもしくは複数の異なるユーザに関連付けられる結果として、異なるサーバデバイスに関連付けられ得る。したがって、自動アシスタントへのアクションの委任を能率化するために、複数のアシスタントデバイスにおいて受信される特定の口頭発話に他のサーバデバイスが応答するために、特定のサーバデバイスが選択され得る。たとえば、第1のアシスタントデバイスは、第1のサーバデバイスにステータス情報を提供することができ、第2のアシスタントデバイスは、第2のサーバデバイスに他のステータス情報を提供することができる。第1のサーバデバイスは、口頭発話が最も大きな音量で第1の自動アシスタントに聞こえたことに少なくとも基づいて、ステータス情報を処理するとともにターゲットアシスタントデバイスを選択するための、選択されたサーバデバイスとして指定され得る。その後、第2のサーバデバイスおよび/または第2のアシスタントデバイスは、第1のサーバデバイスが、選択されたサーバデバイスとして指定されていることを決定することができ、他のステータス情報、および/または口頭発話に関係する任意の他のデータを、第1のサーバデバイスに転送することができる。第1のサーバデバイスは、次いで、口頭発話から推測されるアクションを実行すべき、アシスタントデバイスのうちの1つを指定するために、口頭発話に関連するコンテキストデータを含むことができるステータス情報を使用することができる。
【００２２】
本開示の実装形態は、不適切なデバイスをトリガするインスタンスの数が低減されるような、特定の環境においてデバイスのグループの制御を改善するための方法を提供する。このことは、ユーザコマンドの結果がユーザの意図に対応することを確実にすることに加えて、不適切なデバイスをトリガすることの実行に本来なら関連することになる技術的リソースの浪費を低減させる。リソースのそのような浪費は、限定はしないが、実行されることを必要とされない特定の機能を実行するようにデバイスに命令することに関連する通信オーバーヘッド、制御されることが意図されないデバイスにおいて特定の機能をアクティブ化することによって消費される電力、ならびに必要とされない特定の状態においてデバイスをサスペンドすることによって消費されるメモリおよび/または電力を含んでよい。適切なデバイスをトリガするインスタンスがより迅速に行われてよく、自動アシスタントがより敏感に動作することを確実にする。
【００２３】
特定の環境に適したデバイス制御が動的な根拠で達成されるような、複数のデバイスに対するコンテキスト情報を考慮に入れることによって、有効性がさらに保証される。
【００２４】
動的規制のデータベースのトレーニングを通じて、デバイス制御が達成され得る効率をシステムが改善できるように、システムがユーザの挙動を学習できることが確実にされてよく、不適切なデバイスをトリガするインスタンスをまたさらに低減し、デバイス制御における将来の衝突ができる限り効果的に解決されることを確実にする。
【００２５】
上記の説明は、本開示のいくつかの実装形態の概要として提供される。それらの実装形態および他の実装形態のさらなる説明が、以下でより詳細に説明される。
【課題を解決するための手段】
【００２６】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法は、ユーザの口頭発話をキャプチャするオーディオデータを受信することなどの動作を含むものとして記載され、口頭発話は、自動アシスタントを介して修正アクションが実行されることを求める要求を具備し、各々が自動アシスタントを介して修正アクションを実行できる2つ以上のコンピューティングデバイスのうちの少なくとも1つによって受信される。方法は、2つ以上のコンピューティングデバイスのうちの第1のデバイスにおいて実行中の第1の進行中アクション、および2つ以上のコンピューティングデバイスのうちの第2のデバイスにおいて実行中の第2の進行中アクションの各々を、修正アクションが修正できることを、口頭発話をキャプチャするオーディオデータを使用して決定することをさらに含むことができる。方法はまた、修正アクションが第1の進行中アクションと第2の進行中アクションの両方を修正できることを決定することに基づいて、修正アクションに対応する記憶済みの規制を識別することを含むことができ、記憶済みの規制は、修正アクションの実行のコンテキスト依存関係を特徴づける。方法は、記憶済みの規制を識別することに基づいて、記憶済みの規制に関連付けられているコンテキストデータにアクセスすることをさらに含むことができ、コンテキストデータは、第1の進行中アクションの第1のタイプおよび第2の進行中アクションの第2のタイプを特徴づける。方法はまた、自動アシスタントを介して修正アクションがそこで実行されるべき、2つ以上のコンピューティングデバイスのうちのターゲットコンピューティングデバイスを、コンテキストデータおよび記憶済みの規制に基づいて決定することを含むことができる。方法は、アクションがそこで制御されるべきターゲットコンピューティングデバイスを決定することに基づいて、自動アシスタントを介してターゲットコンピューティングデバイスにおいて修正アクションを実行させることをさらに含むことができる。
【００２７】
いくつかの実装形態では、記憶済みの規制を決定することは、自動アシスタントにとってアクセス可能な複数の異なる規制から記憶済みの規制を識別することを含み、複数の異なる規制は、修正アクションを実行するようにユーザが自動アシスタントに要求することの1つまたは複数の以前のインスタンスに基づいて決定される。いくつかの実装形態では、記憶済みの規制は、自動アシスタントによって以前に受信されたユーザからの1つまたは複数の補正口頭発話に基づいて決定され、1つまたは複数の補正口頭発話の各々は、補正口頭発話によって示されるように修正アクションの以前の対応するインスタンスが自動アシスタントを介して不適切に実行されたことに続いて、ユーザによって提供される。いくつかの実装形態では、第1の進行中アクションは、第1のデバイスのスピーカーを介して可聴音を提供することを含む。
【００２８】
いくつかの実装形態では、コンテキストデータは、ユーザがその中で口頭発話を提供した建物の、1つまたは複数の部屋の占有を特徴づける占有データを含み、記憶済みの規制は、建物の1つまたは複数の部屋のうちの特定の部屋に関して少なくとも1つのアクションを制限するための、ユーザの選好を示す。いくつかの実装形態では、コンテキストデータは、建物の1つまたは複数の部屋のうちの特定の部屋内のユーザのロケーションをさらに示し、記憶済みの規制は、ターゲットコンピューティングデバイスが自動アシスタントを介して少なくとも1つのアクションを制御するための、ユーザの別の選好を示す。いくつかの実装形態では、ターゲットコンピューティングデバイスにおいて修正アクションを実行させることは、2つ以上のコンピューティングデバイスのうちのターゲットコンピューティングデバイスにおける特定の進行中アクションの実行を制限することを含む。いくつかの実装形態では、ターゲットコンピューティングデバイスにおいて少なくとも1つのアクションを実行させることは、オーディオデータまたはビジュアルデータの進行中のレンダリングを修正することを含み、コンテキストデータは、オーディオデータまたはビジュアルデータの進行中のレンダリングが初期化された時間を示す。いくつかの実装形態では、コンテキストデータは、2つ以上のコンピューティングデバイスの各コンピューティングデバイスの動作ステータスを識別し、2つ以上のコンピューティングデバイスの各コンピューティングデバイスは、動作ステータスを処理するためのサーバデバイスの共通コロケートクラスタに、それぞれの動作ステータスデータを提供するように構成される。
【００２９】
他の実装形態では、1つまたは複数のプロセッサによって実装される方法は、ユーザのロケーションの方々に配設された複数のクライアントデバイスの活動状態に対応するステータス情報を、複数のクライアントデバイスと通信しているサーバデバイスにおいて決定することなどの動作を含むものとして記載され、複数のクライアントデバイスの各クライアントデバイスは、自動アシスタントにアクセス可能である。方法はまた、決定されたステータス情報に従って動作している複数のクライアントデバイスのうちの少なくとも1つのクライアントデバイスにユーザによって提供される口頭発話に基づくデータを受信することを含むことができ、口頭発話は、複数のクライアントデバイスのうちの1つまたは複数のクライアントデバイスによってアクションが実行されることを求める要求を具備する。方法は、口頭発話に基づくデータの受信に応答して、複数のクライアントデバイスに関連付けられた動的規制の記憶済みのセットにアクセスすることをさらに含むことができ、動的規制の記憶済みのセットの少なくとも1つの記憶済みの規制は、ステータス情報に対する、1つまたは複数のクライアントデバイスによるアクションの実行の、コンテキスト依存関係を特徴づける。方法はまた、動的規制の記憶済みのセットの少なくとも1つの記憶済みの規制、およびステータス情報に基づいて、アクションを実行すべきターゲットクライアントデバイスを識別することを含むことができ、少なくとも1つの記憶済みの規制によって特徴づけられるコンテキスト依存関係は、アクションを実行すべきターゲットクライアントデバイスを指定するための少なくとも1つのボリューム不可知論的な条件(volume-agnostic condition)を含む。方法は、ターゲットクライアントデバイスに自動アシスタントを介してアクションを実行させることをさらに含むことができる。
【００３０】
いくつかの実装形態では、ロケーションは、サーバデバイスにとってアクセス可能な記憶済みのトポロジーによって特徴づけられる複数の部屋を含み、方法は、少なくとも1つのクライアントデバイスを含む第1の部屋内にユーザが位置し、かつ複数の部屋のうちの第2の部屋内にターゲットクライアントデバイスが位置するとして、コンテキスト依存関係を特徴づける現在のコンテキストデータにアクセスすることをさらに含む。いくつかの実装形態では、方法は、口頭発話が、不明瞭なタイプの発話および固有のタイプの発話から選択された少なくとも1つのタイプの発話としてのものであるかどうかを、データを受信することに基づいて決定することを含むことができ、複数のクライアントデバイスに関連付けられた動的規制の記憶済みのセットにアクセスすること、アクションを実行すべきターゲットクライアントデバイスを識別すること、およびターゲットコンピューティングデバイスにアクションを実行させることの特定の動作は、口頭発話が不明瞭なタイプの発話であるものと決定されるときに実行される。
【００３１】
いくつかの実装形態では、方法は、口頭発話が固有のタイプの発話であるものと決定されるとき、口頭発話を介してユーザによって特に識別される指定のクライアントデバイスを識別することと、複数のクライアントデバイスに関連付けられた動的規制の記憶済みのセットにアクセスすることをバイパスしながら指定のクライアントにアクションを実行させることとを含むことができる。いくつかの実装形態では、不明瞭なタイプの発話および固有のタイプの発話から選択された少なくとも1つのタイプの発話として、受信された口頭発話を特徴づけることは、ユーザと自動アシスタントとの間の以前の対話に基づく。
【００３２】
また他の実装形態では、1つまたは複数のプロセッサによって実装される方法は、ユーザに関連付けられた複数のクライアントデバイスからステータス情報を受信することなどの動作を含むものとして記載され、ステータス情報は、複数のクライアントデバイスのうちの1つまたは複数のクライアントデバイスが進行中アクションを実行中であることを示す。方法はまた、複数のクライアントデバイスによって提供されたステータス情報を処理するためのサーバデバイスの指定のコロケートクラスタを、ステータス情報を受信することに基づいて選択することを含むことができ、サーバデバイスの指定のコロケートクラスタは、サーバデバイスの複数の異なるコロケートクラスタから選択される。方法は、複数のクライアントデバイスのうちの1つのクライアントデバイスの自動アシスタントインターフェースにおいてユーザからの口頭発話が受信されたことを決定することをさらに含むことができ、自動アシスタントインターフェースは、ユーザと複数のクライアントデバイスにとってアクセス可能な自動アシスタントとの間の対話を容易にするように構成され、口頭発話は、自動アシスタントがアクションを実行することを求める要求を具備する。方法はまた、口頭発話がクライアントデバイスの自動アシスタントインターフェースにおいてユーザから受信されたという決定に応答して、クライアントデバイスにおいて生成されたオーディオデータをサーバデバイスの指定のコロケートクラスタに提供させることを含むことができ、オーディオデータは、口頭発話の少なくとも一部分をキャプチャする。方法は、クライアントデバイスがサーバデバイスの指定のコロケートクラスタにオーディオデータを提供することに基づいて、ユーザによって要求されたアクションを実行するための、複数のクライアントデバイスのうちの指定のクライアントデバイスを、サーバデバイスの指定のコロケートクラスタに識別させることをさらに含むことができる。方法はまた、ユーザによって要求されたアクションを指定のクライアントデバイスに実行させることを含むことができる。
【００３３】
いくつかの実装形態では、方法は、ステータス情報の受信に応答して、ロケーション内での様々なクライアントデバイスの配置を示す記憶済みのデバイストポロジーにアクセスすることであって、複数のクライアントデバイスが、様々なクライアントデバイスのサブセットであることと、ユーザが自動アシスタントインターフェースに口頭発話を提供した、ロケーションの共通の部屋の中に、複数のクライアントデバイスがあることを決定することとを含むことができる。いくつかの実装形態では、アクションは特定の出力モダリティに対応し、方法は、ロケーションの共通の部屋の中にある複数のクライアントデバイスが、要求によって識別されるアクションに対応する特定の出力モダリティを含むことを決定することをさらに備える。いくつかの実装形態では、複数のクライアントデバイスのうちの2つ以上のクライアントデバイスは、異なるユーザアカウントに関連付けられ、2つ以上のクライアントデバイスは、2つ以上のクライアントデバイスが異なるユーザアカウントに関連付けられていることに基づいて、サーバデバイスの複数の異なるコロケートクラスタと通信するように構成される。いくつかの実装形態では、それぞれのクライアントデバイスによって提供される特定のステータス情報は、複数のクライアントデバイスのうちのそれぞれのクライアントデバイスが進行中アクションを実行中であるかどうかを示し、それぞれのクライアントデバイスが進行中アクションを実行中であるとき、ステータス情報は、進行中アクションを実行するためにそれぞれのクライアントデバイスのモダリティが採用されることを示す。いくつかの実装形態では、指定のクライアントデバイスは、要求によって識別されたアクションと複数のクライアントデバイスによって提供されたステータス情報との間の対応を示す、記憶済みのトレーニングデータに従って選択される。
【００３４】
いくつかの実装形態では、デバイスは、ユーザが自動アシスタントと通信することを促進するために受信される口頭発話の受信に応答して信号を生成するように構成された、オーディオインターフェースを含むものとして記載され、口頭発話は、オーディオインターフェースと別のクライアントデバイスの別のオーディオインターフェースの両方において受信され、他のクライアントデバイスは、自動アシスタントにとってアクセス可能な複数のクライアントデバイスのうちの1つであるクライアントデバイスである。デバイスはまた、同様に口頭発話を受信した他のデバイスからの通信を受信するように構成された、ネットワークインターフェースを含むことができ、他のデバイスによって提供される通信は、他のデバイスに関連付けられたコンテキストを特徴づける第1のコンテキストデータを含む。デバイスは、オーディオインターフェースにおいて受信中の口頭発話に関連付けられた別のコンテキストを特徴づける第2のコンテキストデータを記憶するように構成されたメモリをさらに含むことができる。デバイスはまた、動作を実行するように構成された1つまたは複数のプロセッサを含むことができ、動作は、複数のクライアントデバイスに対するランク付けを決定することであって、ランク付けが、少なくとも第1のコンテキストデータに基づく第1のランクおよび第2のコンテキストデータに基づく第2のランクを含み、ランク付けの各ランクが、自動アシスタントを介して口頭発話に応答すべき、複数のクライアントデバイスのうちの特定のデバイスの選択に少なくとも部分的に影響を及ぼすことと、複数のクライアントデバイスのうちの候補デバイスが、ランク付けの他のランクと区別される対応するランクを有するとき、ランク付けの対応するランクに少なくとも基づいて、自動アシスタントに、候補デバイスを介して口頭発話に応答させることとを含む。
【００３５】
いくつかの実装形態では、ネットワークインターフェースは、オーディオインターフェースにおいて口頭発話が受信される前に他のデバイスからの通信を受信するようにさらに構成される。いくつかの実装形態では、オーディオインターフェースにおいて口頭発話が受信される前に、またはオーディオインターフェースにおいて口頭発話が受信されている間に、1つまたは複数のプロセッサによってランク付けを決定することが実行される。いくつかの実装形態では、1つまたは複数のプロセッサは、オーディオインターフェースにおいて口頭発話が受信される前に第2のコンテキストデータを生成することと、ネットワークインターフェースに、別個の通信を他のデバイスに提供させることとを含む動作を実行するようにさらに構成され、他のデバイスは、他のデバイスが自動アシスタントを介して口頭発話に応答する任務を負うかどうかを決定するように構成される。いくつかの実装形態では、1つまたは複数のプロセッサは、ネットワークインターフェースと通信しているが口頭発話を確認応答していない別個のデバイスへ、別個の通信を送ることと、別個のデバイスが自動アシスタントを介して口頭発話に応答する任務を負うかどうかを決定することとを含む動作を実行するようにさらに構成される。
【００３６】
いくつかの実装形態では、1つまたは複数のプロセッサは、別個のデバイスの動作ステータスを特徴づける第3のコンテキストデータを生成することを含む動作を実行するようにさらに構成される。いくつかの実装形態では、1つまたは複数のプロセッサは、複数のクライアントデバイスのうちの2つ以上のクライアントデバイスが、2つ以上のクライアントデバイス間の引き分けランク付けを引き起こすそれぞれのランクを有するとき、2つ以上のクライアントデバイスの特色を特徴づける補足コンテキストデータを決定することと、そのランク付けが複数のクライアントデバイスのうちの他のクライアントデバイスのランク付けと区別される、それぞれのクライアントデバイスに有利なように、補足コンテキストデータに基づいて引き分けランク付けを解決させることとを含む動作を実行するようにさらに構成される。
【００３７】
いくつかの実装形態では、1つまたは複数のプロセッサによって実装される方法は、第1のクライアントデバイスにおいて口頭発話が受信されていることを決定することなどの動作を含むものとして記載され、口頭発話は、第1のクライアントデバイスのアシスタントインターフェースを介してアクセス可能な自動アシスタントと通信することを促進するためにユーザによって提供され、口頭発話は、第1のクライアントデバイスを含む複数のクライアントデバイスによって受信される。方法はまた、第2のクライアントデバイスによる口頭発話の受信に応答して、口頭発話を受信した第2のクライアントデバイスから通信を受信することを含むことができ、第2のクライアントデバイスによって提供される通信は、第2のクライアントデバイスに関連付けられたコンテキストを特徴づける第1のコンテキストデータを含む。方法は、第1のクライアントデバイスに関連付けられた別のコンテキストを特徴づける他のコンテキストデータを決定することをさらに含むことができる。方法はまた、複数のクライアントデバイスに対するランク付けを決定することを含むことができ、ランク付けは、少なくとも第1のコンテキストデータに基づく第1のランクおよび第2のコンテキストデータに基づく第2のランクを含み、ランク付けの各ランクは、口頭発話に応答すべき、複数のクライアントデバイスのうちの特定のクライアントデバイスの選択に少なくとも部分的に影響を及ぼす。方法は、複数のクライアントデバイスのうちの候補クライアントデバイスが、ランク付けの他のランクと区別される対応するランクを有するとき、ランク付けの対応するランクに少なくとも基づいて、自動アシスタントに、候補デバイスを介して口頭発話に応答させることをさらに含むことができる。
【００３８】
いくつかの実装形態では、口頭発話が第1のクライアントデバイスによって受信される前に、通信が第2のクライアントデバイスから受信される。いくつかの実装形態では、第1のクライアントデバイスにおいて口頭発話が受信される前に、または第1のクライアントデバイスにおいて口頭発話が受信されている間に、ランク付けを決定することが実行される。いくつかの実装形態では、方法は、オーディオインターフェースにおいて口頭発話が受信される前に第2のコンテキストデータを生成することと、ネットワークインターフェースに、別個の通信を他のデバイスに提供させることとを含むことができ、他のデバイスは、他のデバイスが自動アシスタントを介して口頭発話に応答する任務を負うかどうかを決定するように構成される。いくつかの実装形態では、方法は、第1のクライアントデバイスと通信しているが口頭発話を確認応答していない別個のデバイスへ、別個の通信を送ることと、別個のデバイスが自動アシスタントを介して口頭発話に応答する任務を負うかどうかを決定することとを含むことができる。いくつかの実装形態では、方法は、別個のデバイスの動作ステータスを特徴づける第3のコンテキストデータを生成することを含むことができる。いくつかの実装形態では、方法は、複数のクライアントデバイスのうちの2つ以上のクライアントデバイスが、2つ以上のクライアントデバイス間での引き分けランク付けを引き起こすそれぞれのランクを有するとき、2つ以上のクライアントデバイスの特色を特徴づける補足コンテキストデータを決定することと、そのランク付けが複数のクライアントデバイスのうちの他のクライアントデバイスのランク付けと区別される、それぞれのクライアントデバイスに有利なように、補足コンテキストデータに基づいて引き分けランクを解決させることとを含むことができる。
【００３９】
他の実装形態では、1つまたは複数のプロセッサによって実装される方法は、複数の動的規制をデータベースの中に記憶することなどの動作を含むものとして記載され、各動的規制は、ユーザコマンドに関連付けられ、ユーザコマンドに対応するアクションを実行すべき制御される複数のデバイスの各々と、ユーザ、および/または制御されるそれぞれのデバイスを含む複数のクライアントデバイスのうちの少なくとも1つに対する、コンテキスト情報との間の対応を指定する。方法はまた、複数のクライアントデバイスのうちの1つからのユーザコマンドを表す第1の入力を受信すること、受信されたユーザコマンドに対応する複数の記憶済みの動的規制のうちの1つを識別すること、ユーザ、および/または制御されるデバイスを含む複数のクライアントデバイスのうちの少なくとも1つに対する、コンテキスト情報を要求および取得すること、記憶済みの動的規制に関連付けられたコンテキスト情報に基づいて、複数のクライアントデバイスのうちの1つのクライアントデバイスを制御されるデバイスとして識別すること、識別されるクライアントデバイスによって、識別される動的規制の実行を開始すること、複数のクライアントデバイスのうちの1つからユーザコマンドの更新を表す第2の入力を受信することであって、補正が、制御されるべき更新済みのクライアントデバイスを指定すること、ならびに更新済みのクライアントデバイスと取得されるコンテキスト情報との間の対応を指定するように、データベースの中の記憶済みの動的規制を更新することによって、記憶済みの複数の規制をトレーニングすることを含むことができる。方法はまた、更新済みのクライアントデバイスによって、識別される動的規制の実行を開始することを含むことができる。
【００４０】
他の実装形態は、上記および/または本明細書における他の場所で説明する方法のうちの1つまたは複数などの方法を実行するために、1つまたは複数のプロセッサ(たとえば、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、および/またはテンソル処理ユニット(TPU))によって実行可能な命令を記憶する非一時的コンピュータ可読記憶媒体を含んでよい。また他の実装形態は、上記および/または本明細書における他の場所で説明する方法のうちの1つまたは複数などの方法を実行するために、記憶された命令を実行するように動作可能な、1つまたは複数のプロセッサを含む1つもしくは複数のコンピュータおよび/または1つもしくは複数のロボットのシステムを含んでよい。
【００４１】
本明細書でより詳細に説明する上記の概念および追加の概念のすべての組合せが、本明細書で開示する主題の一部であるものと企図されることを諒解されたい。たとえば、本開示の末尾において掲載される特許請求される主題のすべての組合せは、本明細書で開示する主題の一部であるものと企図される。
【図面の簡単な説明】
【００４２】
【図１Ａ】複数の異なるアシスタントデバイスを含むロケーション内でユーザが口頭発話を提供することを示す透視図である。
【図１Ｂ】ユーザによって提供された口頭発話に各デバイスがどのように応答できるのかを示す透視図である。
【図２】意図しないデバイスに間違って口頭発話に応答させることを回避するために、口頭発話に応答するためのターゲットデバイスを複数の候補デバイスから選択するためのシステムを示す図である。
【図３Ａ】特定の口頭発話がそこで応答されるターゲットクライアントデバイスを決定するサーバを選択するためのシステム図である。
【図３Ｂ】特定の口頭発話がそこで応答されるターゲットクライアントデバイスを決定するサーバを選択するためのシステム図である。
【図４Ａ】ユーザからの口頭発話に応答すべきクライアントデバイスの選択の調停が局所的に実行されることを可能にする実装形態を示す図である。
【図４Ｂ】ユーザからの口頭発話に応答すべきクライアントデバイスの選択の調停が局所的に実行されることを可能にする実装形態を示す図である。
【図５Ａ】複数のクライアントデバイスにおいて受信された口頭発話に応答して、クライアントデバイスによって実行中の進行中アクションを修正するための方法を示す図である。
【図５Ｂ】複数のクライアントデバイスにおいて受信された口頭発話に応答して、クライアントデバイスによって実行中の進行中アクションを修正するための方法を示す図である。
【図６】複数のクライアントデバイスからのステータス情報を処理すべきサーバデバイスのコロケートクラスタを選択するとともに、ステータス情報を処理した成果に基づいてアクションを実行すべきターゲットクライアントデバイスを選択するための方法を示す図である。
【図７】例示的なコンピュータシステムのブロック図である。
【発明を実施するための形態】
【００４３】
図1Aは、複数の異なるアシスタントデバイスを含むロケーション138内でユーザ116が口頭発話140を提供することの透視図100を示す。各アシスタントデバイスは、各アシスタントデバイスによって実行中のアクションに応じて、様々な異なる状態を呈するように別個に動作することができる。特定の口頭発話が、意図したターゲットデバイスのみに作用することを確実にするために、アシスタントデバイスの各々は、1つまたは複数の動的規制に従って動作することができる。動的規制とは、特定の口頭発話に関連するいくつかのコンテキストが与えられると、特定のデバイスが特定の口頭発話または要求にどのように反応するのかを決定できる、規則または命令であり得る。動的規制は、ユーザ選好の変化、ロケーション内のデバイスの数の変化、および/またはデバイスが動作可能な環境に影響を及ぼすことができる任意の他の機能に従って、経時的に修正され得る。
【００４４】
たとえば、図1Aで提供されるように、ロケーション138は車両114を含むことができ、車両114は、車両114を制御することに関してユーザを支援できるアシスタントデバイス104を有することができる。ロケーション138はまた、アシスタントデバイス118を含むことができ、アシスタントデバイス118は、タッチ入力および/またはオーディオ入力を受信すること、ならびにオーディオ出力および/またはビジュアル出力を提供することができる、スタンドアロンのアシスタントデバイスであり得る。追加として、ロケーション138はテレビ128を含むことができ、テレビ128は、ユーザ116がテレビ128のアシスタントインターフェース132を介してテレビ自動アシスタント130にアクセスすることを可能にすることができる。
【００４５】
テレビ128、アシスタントデバイス118、およびアシスタントデバイス104の各々は、それぞれ自動アシスタントを含むことができる。たとえば、アシスタントデバイス104は車両自動アシスタント106を含むことができ、車両自動アシスタント106は、アシスタントインターフェース108を介してユーザ116によってアクセスされ得る。さらに、アシスタントデバイス118はクライアント自動アシスタント120を含むことができ、クライアント自動アシスタント120は、アシスタントインターフェース122を介してアクセスされ得る。アシスタントインターフェース122は、マイクロフォン、スピーカー、ディスプレイパネル、タッチディスプレイパネル、カメラ、キーボードなどの触覚インターフェース、および/またはユーザがそれを用いてコンピュータデバイスを制御できる任意の他のインターフェースのうちの1つまたは複数を含むことができる。いくつかの実装形態では、ユーザ116は、別のデバイスのアシスタントインターフェースを使用して自動アシスタントおよび/またはデバイスを制御することができる。たとえば、車両114、アシスタントデバイス118、およびテレビ128の各々は、Wi-Fiネットワークなどの共通のローカルネットワークにおいて接続され得、それによって、ネットワークを介して2つ以上のデバイスおよび/またはアプリケーションの間でデータが送信されることを可能にする。
【００４６】
本明細書で説明するいくつかの実装形態では、ロケーション138におけるデバイスの各々は、1セットの動的規制のうちの1つまたは複数の動的規制に従って動作することができる。命令が間違って異なるデバイスにおいて実行されるのではなく、アクションがそこで実行されることをユーザが意図するデバイスが、アクションを実行するための命令を受信することを確実にするために、動的規制が提供され得る。1つの非限定的な例として、ユーザ116は、ロケーション138のリビングルームの中に位置することがあるテレビ128を介して、自分の友人と映画を見ていることがある。彼らが映画を見ている間、アシスタントデバイス118は、タイマーを実行するという能動アクションを実行していることがある。タイマーは、たとえば、ユーザ116が自分のオーブンの中で焼いている食品のステータスを監視することを目的とすることができる。テレビ128とアシスタントデバイス118の両方によって実行中のアクションは、デバイスの各々またはデバイスの各々と通信しているサーバデバイスにおいてアクセス可能でありかつ/または記憶される、アクションデータによって特徴づけられ得る。遠近法で描かれた各デバイスにおいて、進行中アクションが初期化され、実行され、かつ/または完了されるとき、各それぞれのデバイスに対応するアクションデータは、各デバイスの動作ステータスおよび/または各デバイスの1つもしくは複数のアクションを示すように更新され得る。
【００４７】
上述の例によれば、タイマーが完了しているとき、アシスタントデバイス118はアラーム音を発することなどの出力142を提供することができる。タイマーの完了に応答して、アクションデータ124はアシスタントデバイス118の動作ステータスを示すように更新され得る。たとえば、動作ステータスは、アシスタントデバイス118が「アラームを発している」こと、およびタイマーの動作ステータスが「タイマーが完了している」ことを示すことができる。アクションデータ124は、1つまたは複数の動作ステータス126(たとえば、ステータス(N)、ただし、Nは任意の正の整数)を識別することができる。
【００４８】
アラームが鳴るときにユーザ116が映画を見ているので、ユーザ116は、テレビ128において発生中のいかなるアクション(たとえば、ステータス136によって示されるように、ビデオおよび/またはオーディオを再生すること)および車両114において発生中のいかなるアクション(たとえば、ステータス情報112によって示されるように、車両の充電および駐車したままであること)も停止させることなく、アラームを止めることを希望することがある。たとえば、アシスタントデバイス118の動作ステータスを修正することを促進するために、ユーザ116は、口頭発話140「Assistant, stop」を提供することができる。アシスタントデバイスの各々は、図1Bに示されるように、口頭発話140を確認応答することができる。具体的には、図1Bは、ユーザ116によって提供された口頭発話140に各デバイスがどのように応答できるのかについての透視図144を示す。口頭発話の確認応答に応答して、各デバイスにおける各自動アシスタントは、それらのそれぞれのステータス情報を、口頭発話が受信されたことを示すように更新させることができる。たとえば、アシスタントデバイス104は、そのステータス情報112を、ユーザ入力が受信されたことを示すように更新することができる。同様に、テレビ128およびアシスタントデバイス118は、それらのそれぞれのステータス情報を、口頭入力が受信されていることを示すように更新することができる。しかしながら、デバイスが口頭発話によって間違って作用されないことを確実にするために、各デバイスは、1つもしくは複数の動的規制および/または1セットの動的規制に従って動作することができる。
【００４９】
いくつかの実装形態では、動的規制は、ユーザの習慣を具備するとともにユーザ116からの許可を伴って生成される、トレーニングデータに基づいて生成され得る。たとえば、1つまたは複数の動的規制は、以前のユーザ要求が提供されたときに明らかであった、ユーザ要求および/またはデバイス動作ステータスの以前のインスタンスを特徴づける、コンテキストデータに関連付けられ得る。したがって、ユーザが対話することを意図する1つまたは複数のターゲットデバイスを決定するために、1つまたは複数のアシスタントデバイスによって収集されたコンテキストデータが、1つまたは複数の動的規制と組み合わせて使用され得る。たとえば、ユーザは、アシスタントデバイス118がアラームを発しており、テレビ128がビデオを再生中であり、かつ車両114が充電しているとき、以前に「Assistant, stop」口頭発話を提供していることがある。口頭発話「Assistant, stop」に応答して、アラームを発すること以外のアクションが間違って停止させられた場合、ユーザは、「No, stop the alarm」などの補正口頭発話を提供していることがある。補正口頭発話を受信する自動アシスタントは、ユーザの補正および/または選好を反映するために、動的規制を生成および/または更新させることができる。具体的には、動的規制は、ユーザ116が実行することを意図したアクション(たとえば、アクションを停止すること)、ロケーション138の中のデバイスおよび/またはユーザ116が対話することを意図するデバイス(たとえば、アシスタントデバイス118)の動作ステータスを特徴づけることができる。
【００５０】
いくつかの実装形態では、動的規制は、ロケーション138の占有および/またはロケーション138内の1つもしくは複数のデバイスの現在の動作ステータスを特徴づける、コンテキストデータに基づくことができる。たとえば、ユーザ116およびユーザ116の友人がテレビ128で映画を見ていることがある。映画の間、ユーザ116は、自分の台所の中で調理している何かのステータスをチェックするために立ち上がることがある。ユーザ116が少しの映画も見逃がさないことを確実にするために、友人は、口頭発話「Assistant, stop」を提供することによって映画を一時停止することを試みることができる。修正されるべきアクションおよび/または作用されるべきデバイスに関して口頭発話が不明瞭であるので、口頭発話を受信している自動アシスタントは、どのように口頭発話に応答すべきかを決定するために動的規制にアクセスすることができる。具体的には、自動アシスタントは、口頭発話「Assistant, stop」が複数の異なる動的規制に対応することを決定することができる。追加として、自動アシスタントは、口頭発話の音声プロファイルが、複数の異なる動的規制のうちの1つまたは複数の動的規制に関連付けられている「ゲスト」音声プロファイルに対応することを決定することができる。1つまたは複数の動的規制は、友人/客が「Assistant, stop」口頭発話を提供した、以前のインスタンスを特徴づけるトレーニングデータに基づいて生成され得る。以前のインスタンスの間、口頭発話はデバイスのうちのいずれにも作用しなかったが、したがって、それに応答してユーザ116が補正口頭発話「Assistant, pause the movie」を提供した。自動アシスタントが何かを「止める」ことを友人が要求し、デバイスが応答せず、かつユーザ116が映画に「一時停止」させる、以前のこのコンテキストに基づいて、自動アシスタントは、ユーザ116のこの選好を反映するように動的規制を更新または生成させることができる。具体的には、選好は、ユーザ116および友人がロケーション138の中にいるときにテレビ128で再生中の映画を一時停止するために、特定の音声プロファイルを有する友人に許可を与えるものとして特徴づけられ得る。
【００５１】
いくつかの実装形態では、複数のデバイスがユーザ116からの口頭発話を確認応答するとき、口頭発話に応答して生成された音量許容範囲に基づいて、口頭発話に応答するためのターゲットデバイスが選択され得る。具体的には、受信された口頭発話に対応する一意の音量許容範囲が生成され得る。ロケーション138における局所的な各自動アシスタントは、定式化された音量許容範囲内にあるボリュームで口頭発話が聞こえたものまで候補ターゲットデバイスの数を低減するように、音量許容範囲の定式化を調停することができる。たとえば、アシスタントデバイス104、アシスタントデバイス118、およびテレビ128による、口頭発話「Assistant, stop」の確認応答に応答して、各デバイスは、それらに口頭発話が聞こえたボリュームを決定することができ、決定されたボリュームを他のデバイスの各々に通信することができる。各デバイスは、次いで、各デバイスからの決定された各ボリュームを使用して音量しきい値を定式化することができる。音量しきい値は、デバイスの各々にとってアクセス可能な関数に従って各デバイスによって生成され得る。
【００５２】
特定の各デバイスは、その特定のデバイスが候補ターゲットデバイスであるかどうかを決定するために、その特定のデバイスの決定されたボリュームを定式化された音量しきい値と比較することができる。特定のデバイスが候補ターゲットデバイスでない場合、特定のデバイスは、それがもはや候補ターゲットデバイスでないことを他のデバイスに通信することができる。すべてのデバイスがそれらの決定されたボリュームを音量しきい値と比較し終わると、候補ターゲットデバイスとして1つのデバイスしか残されていない場合、その唯一の残りのデバイスが、自動アシスタントによってターゲットコンピューティングデバイスとして指定され得る。ターゲットコンピューティングデバイスは、次いで、口頭発話に応答する任務を負うことができる。しかしながら、2つ以上の候補ターゲットデバイスが残されている場合、候補ターゲットデバイス間の「引き分け」を終わらせるために、本明細書で説明する任意の実装形態に従って、1つまたは複数の動的規制が採用され得る。
【００５３】
図2は、意図しないデバイスに間違って口頭発話に応答させることを回避するために、口頭発話に応答するためのターゲットデバイスを複数の候補デバイスから選択するためのシステム200を示す。クライアント自動アシスタント214は、クライアントデバイス202(たとえば、スタンドアロンのスピーカーデバイス、ディスプレイデバイス、パーソナルコンピュータ、ポータブルコンピューティングデバイス、車両)、および/またはサーバデバイスなどのリモートコンピューティングデバイス208などの、1つまたは複数のコンピューティングデバイスにおいて設けられるアシスタントアプリケーションの一部として動作することができる。ユーザは、アシスタントインターフェース204を介してクライアント自動アシスタント214と対話することができ、アシスタントインターフェース204は、マイクロフォン、カメラ、タッチスクリーンディスプレイ、ユーザインターフェース、および/またはユーザとアプリケーションとの間のインターフェースを提供できる任意の他の装置であり得る。たとえば、ユーザは、クライアント自動アシスタント214に機能(たとえば、データを提供する、周辺デバイスを制御する、エージェントにアクセスする、アクションを初期化する、アクションを停止する、アクションを修正するなど)を実行させるために、アシスタントインターフェースに言語入力、テキスト入力、またはグラフィカル入力を与えることによって、クライアント自動アシスタント214を初期化することができる。クライアントデバイス202はディスプレイデバイスを含むことができ、ディスプレイデバイスは、ユーザがタッチインターフェースを介してクライアントデバイス202のアプリケーション206を制御することを可能にするために、タッチ入力および/またはジェスチャーを受け取るためのタッチインターフェースを含む、ディスプレイパネルであり得る。いくつかの実装形態では、クライアントデバイス202は、ディスプレイデバイスがないことがあり、そのためにグラフィカルユーザインターフェース出力を提供せずに可聴ユーザインターフェース出力を提供する。さらに、クライアントデバイス202は、ユーザから口頭の自然言語入力を受信するための、マイクロフォンなどのユーザインターフェースを設けることができる。
【００５４】
クライアントデバイス202は、インターネットなどのネットワーク234を介してリモートコンピューティングデバイス208と通信していることがある。クライアントデバイス202は、クライアントデバイス202の各々において計算リソースを温存するために、計算タスクをリモートコンピューティングデバイス208にオフロードすることができる。たとえば、リモートコンピューティングデバイス208は、サーバ自動アシスタント210をホストすることができ、クライアントデバイス202は、1つまたは複数のアシスタントインターフェースにおいて受信された入力をリモートコンピューティングデバイス208へ送信することができる。しかしながら、いくつかの実装形態では、自動アシスタントは、複数の異なるクライアントデバイスにおいてホストされ得る。様々な実装形態では、自動アシスタントのすべてまたはすべてに満たない態様は、複数の異なるクライアントデバイス上および/またはサーバデバイス上で実装され得る。それらの実装形態のうちのいくつかでは、自動アシスタントの態様は、クライアントデバイス202の局所的なアシスタントアプリケーション、およびサーバ自動アシスタント210を介して自動アシスタントの他の態様を実装するリモートコンピューティングデバイス208とのインターフェースを介して、実装される。リモートコンピューティングデバイス208は、複数のスレッドを介して複数のユーザおよび彼らの関連するアシスタントアプリケーションを随意にサービスすることができる。自動アシスタントのすべてまたはすべてに満たない態様が、クライアントデバイス202のクライアント自動アシスタント214を介して実装される実装形態では、クライアント自動アシスタント214は、クライアント自動アシスタント214のオペレーティングシステムとは別個の(たとえば、オペレーティングシステムの「上に」インストールされた)アプリケーションであり得るか、-  または、代替として、クライアントデバイス202によって直接実装され得る(たとえば、オペレーティングシステムの、ただし、オペレーティングシステムと一体の、アプリケーションと見なされる)。
【００５５】
いくつかの実装形態では、リモートコンピューティングデバイス208は、オーディオデータの中に具備される要求を識別するために、アシスタントインターフェースにおいて受信されたオーディオデータを処理できる入力処理エンジン212を含むことができる。オーディオデータをテキストに変換するためのプロセスは、音声処理モジュール222によって実行され得、音声処理モジュール222は、単語もしくは句に対応するオーディオデータのグループを識別するためにニューラルネットワーク、word2vecアルゴリズム、および/または統計モデルを採用できる、音声認識アルゴリズムを使用することができる。オーディオデータから変換されたテキストは、データ構文解析モジュール216によって構文解析され得、ユーザおよび/またはサードパーティアプリケーションからのコマンドフレーズを生成および/または識別するために使用され得るテキストデータとして、自動アシスタントにとって利用可能にされ得る。データ構文解析モジュール216からの結果として得られたデータは、実行されることをユーザが要求しているアクション、および/またはアクションを完了するために依然として必要とされ得る1つまたは複数のパラメータを決定するために、パラメータエンジン218によって使用され得る。機能の1つまたは複数の対応するスロットを完了するために1つまたは複数のパラメータが必要とされるという決定に応答して、サーバ自動アシスタント210の出力生成エンジン220は、自然言語出力を生成することができる。自然言語出力は、追加のパラメータを提供するようにユーザに頼むために、クライアントデバイス202に返送され得るとともにユーザに提供され得る。たとえば、ユーザは、ユーザが映画を識別することを必要とすることがある「playing media」というアクションに対応できる、「Assistant, play a movie」という口頭発話を提供することができる。パラメータエンジン218は、映画が識別されなかったことを決定すること、出力生成エンジン220に自然言語出力(たとえば、「What movie would you like to play?」)を生成させること、およびクライアントデバイス202に自然言語出力を提供させることができる。
【００５６】
いくつかの実装形態では、アシスタントインターフェースによる口頭発話の受信に応答して、正しくないクライアントデバイスに間違って作用することを回避するために、各自動アシスタントは、1つまたは複数の動的規制232のセットに従って動作することができる。各動的規制232は、ユーザが所与のコンテキスト内で口頭発話を提供するとき、特定のデバイスに対するユーザの選好を識別するために使用され得る1つまたは複数のコンテキスト上の特徴に関連付けられ得る。いくつかの実装形態では、ユーザが口頭発話を提供する前に、各クライアントデバイス202は、リモートコンピューティングデバイス208にステータス情報240を提供することができる。ステータス情報240は、限定はしないが、メディアを再生すること、更新を実行すること、スリープモードで動作すること、ウェイクモードで動作すること、充電すること、データをダウンロードすること、および/またはコンピューティングデバイスによって実行され得る任意の他のアクションなどの、1つまたは複数のアクションが各クライアントデバイス202によって実行中であることを示すことができる。ステータス情報240は、自動アシスタントによって生成され得、自動アシスタントは、1つまたは複数のアクションがアプリケーション206および/または自動アシスタントによって実行中であることを識別するアプリケーションデータ242にアクセスすることができる。いくつかの実装形態では、ステータス情報240は、クライアントデバイス202において以前に実行されたアクション、クライアントデバイス202によって実行されるものと予想されるアクション、ならびに/またはクライアントデバイス202と通信しているリモートデバイスによって、実行されているアクション、現在実行中のアクション、および/もしくは実行されるものと予想されるアクションを識別することができる。
【００５７】
リモートコンピューティングデバイス208は、1つまたは複数のクライアントデバイスが口頭発話を受信する前に、任意のマルチデバイスステータス情報224(すなわち、複数のクライアントデバイスに対応するステータス情報)を前処理することができる。このようにして、リモートコンピューティングデバイス208は、最小限のレイテンシを伴うかまたはレイテンシを伴わずに、口頭発話に対応する任意のアクションを委任することができる。いくつかの実装形態では、特定のクライアントデバイス202は、マルチデバイスステータス情報224の処理に少なくとも基づいて、受信中のクライアントデバイスによって口頭発話が完全に受信される前でも特定のアクションを実行することを委任され得る。
【００５８】
いくつかの実装形態では、クライアントデバイス202において口頭発話が受信されると、口頭発話の少なくとも一部分は、クライアントデバイス202をウェイクさせることができ(たとえば、「Assistant,…」)、残りの部分は、オーディオデータに変換され得、さらなる処理のためにリモートコンピューティングデバイス208へ送信され得る。入力処理エンジン212は、口頭発話が不明瞭な問合せであるのか、それとも固有の問合せであるのかを、オーディオデータを使用して決定することができる。不明瞭な問合せとは、特定のデバイスを指定せず、かつ/または初期化し、修正し、かつ/もしくは割り込むべき、特定のアクションを指定しない、問合せであり得る。たとえば、口頭発話「Assistant, stop」は、「playing the music」のような、特定のデバイスまたは修正すべき特定のアクションを指定しないので、不明瞭な口頭発話と見なされ得る。固有の問合せとは、口頭発話によって具備される要求がそこで履行されるべきデバイスを識別する口頭発話である。口頭発話が固有の要求として分類されるとき、口頭発話によって識別されるデバイスは固有の要求を履行する任務を負うことができる。しかしながら、口頭発話が不明瞭な要求として分類されるとき、動的規制232および/またはマルチデバイスステータス情報224が使用されて、ユーザが呼び出すことを意図したターゲットクライアントデバイスを決定することができる。
【００５９】
たとえば、動的規制232のうちの1つの動的規制は、特定のユーザが「Assistant, stop」という不明瞭な口頭発話を提供するときに実行すべき動作を示すことができる。具体的には、動的規制は、テレビからメディアが再生されており、かつ別個のアシスタントデバイスにおいてアラームが鳴っていることを、マルチデバイスステータス情報224が示すとき、不明瞭な口頭発話がアラームを止めさせるべきであることを示すことができる。追加または代替として、動的規制232のうちの別の動的規制は、「Assistant, play a movie」という不明瞭な口頭発話が提供されるときに子供の声紋が検出されるとき、何をすべきかを示すことができる。具体的には、他の動的規制は、リビングルームのテレビで映画がすでに再生されており、かつ映画が再生されることを子供が要求していることを、マルチデバイスステータス情報224が示すとき、不明瞭な口頭発話が、寝室(たとえば、子供の寝室)の中で映画の再生を開始させるべきであることを示すことができる。このようにして、子供からの不明瞭な要求は、リビングルームの中ですでに再生されている映画に割り込まないことになる。リビングルームのテレビが、再生されている現在の映画に充てられたキャッシュ済みのいかなるデータも間違って失うことにならず、または子供によって要求された映画を間違ってダウンロードしてネットワーク帯域幅を消費することにならないので、このことはリビングルームのテレビにおける計算リソースを保持することができる。
【００６０】
動的規制232は、リモートコンピューティングデバイス208において、かつ/またはリモートコンピューティングデバイス208と通信している各クライアントデバイス202において、生成され得る。動的規制232は、自動アシスタントとともに関与する各ユーザの選好および/または習慣に従って修正および/または新たに生成され得るので、「動的」と見なされ得る。たとえば、ユーザの選好は、自動アシスタントが初期口頭発話に応答して意図しないアクションを実行させることに応答して、ユーザが補正口頭発話を提供するときに決定され得る。初期口頭発話とは、たとえば、ユーザが自分のアシスタントデバイス上で音楽を聞きながら自分のセルフォン上で電話の会話に参加しているときにユーザによって提供され得る「Assistant, turn down」であり得る。意図しないアクションとは、自動アシスタントが電話呼からのオーディオのボリュームを下げさせることであり得る。
【００６１】
ユーザが「No, turn down the music」などの補正口頭発話を提供すると、自動アシスタントは、電話呼からのオーディオをその元の設定に戻すことができ、音楽のボリュームを小さくさせることができる。追加として、口頭発話の受信に応答して、自動アシスタントは、新たなまたは修正された動的規制を生成させ自動アシスタントにとってアクセス可能にさせることができる。動的規制は、アシスタントデバイスから音楽が再生されながらユーザが自分のセルフォン上で電話呼に参加しており、かつユーザが要求「turn down」を提供するとき、電話呼ではなく音楽が小さくされるべきであることを示すことができる。この動的規制は、セルラーフォンにおける、かつアシスタントデバイスにおける、現在のステータス情報240に依存することができ、ステータス情報240は、同時に電話呼が発生しており音楽が再生されていることを示すことになる。したがって、それらの特定の進行中アクションが同時に発生していない(それによって、異なるコンテキストを示す)ときに、ユーザが口頭発話「Assistant, turn down」を提供する場合、動的規制232は、異なる何かを行うように自動アシスタントに影響を及ぼすことがある。
【００６２】
いくつかの実装形態では、動的規制232は、1つまたは複数の自動アシスタントにとってアクセス可能であり得る1つまたは複数のテーブルとして具備され得る。テーブルは、要求および/またはアクションを識別する列、ならびに特定のデバイスの動作ステータスを識別する行を含むことができる。それぞれの行およびそれぞれの列に対応する値は、要求が影響を及ぼすべきデバイスを識別するために使用され得るスコアを示すことができる。たとえば、「stop」するための要求は行の中で識別されてよく、第1の列は、アシスタントデバイスにおいて発せられているアラームを識別することができ、第2の列は、テレビで映画が再生されていることを示すことができる。テーブルが対応する特定のユーザに応じて、テーブルは、第1の列において第2の列よりも高いスコア、または同等には、より有益なメトリックを提供することができ、それによって、対応するコンテキストの下でユーザが「stop」要求を提供すると、テレビを介してアシスタントデバイスを作用させる。
【００６３】
いくつかの実装形態では、1つまたは複数の動的規制は、1つまたは複数の機械学習モデルに基づくことができる。機械学習モデルは、特定の口頭発話および/または1つもしくは複数のクライアントデバイスに関連付けられたコンテキストデータを入力として受信し、口頭発話への応答をもたらすべきデバイスおよび/またはアクションの表示を出力として提供するように、動作することができる。機械学習モデルは、ユーザが補正口頭発話を提供した、以前のインスタンスを特徴づけるトレーニングデータを使用してトレーニングされ得る。追加または代替として、機械学習モデルは、その後に補正口頭発話が受信されることなく、所与のコンテキストにおいてアクションが実行された、以前のインスタンスを特徴づけるトレーニングデータを使用して、トレーニングされ得る。
【００６４】
図3Aおよび図3Bは、特定の口頭発話がそこで応答されるターゲットクライアントデバイスを決定するサーバを選択するためのシステム図を示す。具体的には、図3Aは、1人または複数人のユーザによって提供され1つまたは複数のローカルデバイスによって確認応答された、特定の口頭発話に応答すべき、特定のローカルデバイスを選択するための決定を調停するためのシステム300を示す。口頭発話を確認応答する前に、かつ/または口頭発話の受信に応答して、第1のローカルデバイス336、第2のローカルデバイス338、および第Nのローカルデバイス340の各々は、それぞれのサーバデバイスにステータス情報を提供することができる。ステータス320は第1のサーバデバイス302に提供されてよく、ステータス322は第2のサーバデバイス304に提供されてよく、ステータス324は第Nのサーバデバイス306に提供されてよく、ただし、「N」は任意の正の整数である。各サーバデバイスは、それぞれ、ステータス情報314、ステータス情報316、およびステータス情報318を記憶することができ、特定の口頭発話に応答するための特定のローカルデバイスを指定するために、記憶されたステータス情報を使用することができる。
【００６５】
いくつかの実装形態では、ローカルデバイスの各々は、ロケーション(たとえば、ユーザの家)の方々に配設され得、ローカルデバイスのうちの1つまたは複数は、他のローカルデバイスとは異なる1つまたは複数のアカウントに関連付けられ得る。その結果、ロケーション内のローカルデバイスは、異なるサーバデバイスと通信することがある。サーバデバイスは、所与のコンテキスト内で、かつ/またはサーバデバイスに提供されたステータスに従って、特定の口頭発話に応答すべき特定のローカルデバイスの選択を調停することができる。このようにして、口頭発話を提供することと特定のローカルデバイスから応答を受信することとの間のレイテンシが軽減され得る。
【００６６】
図3Bは、ステータス情報を提供した特定のローカルデバイスに関係するステータス情報を各サーバデバイスが共有することのシステム図326を示す。具体的には、第1のサーバデバイス302は、第1のローカルデバイス336についてのステータス情報を第2のサーバデバイス304および第Nのサーバデバイス306と共有することができる。第2のサーバデバイス304は、ステータス情報を第1のサーバデバイス302および第Nのサーバデバイス306と共有することができ、第Nのサーバデバイス306は、ステータス情報を第1のサーバデバイス302および第2のサーバデバイス304と共有することができる。サーバデバイスは、それらが同じロケーション内の、かつ/または共通のネットワークに接続された、ローカルデバイスと通信していることに気づいていることがあり、それによって、各サーバデバイスが他のサーバデバイスにステータス情報を提供することを可能にする。いくつかの実装形態では、クライアントデバイスは、そのクライアントデバイスに接続されている別のクライアントデバイスについてのステータス情報を送ることができる。このようにして、クライアントデバイスは、ネットワークを介してサーバデバイスへステータス情報を送る能力が備わっていないことがあるが、別の方法でクライアントデバイスに接続すること、および/またはデータをクライアントデバイスと共有することができる、他のデバイスのステータス情報を送信することができる。各サーバデバイスは、次いで、すべてのローカルデバイスがそれらのステータス情報に従って動作しながら特定のユーザによって受信され得る特定の口頭発話および/または要求を予測することができる。たとえば、各サーバデバイスは、第1のローカルデバイス336において映画が再生されており、第2のローカルデバイス338において電話呼が現在進行しているとき、ユーザ334が「Assistant, pause」などの口頭発話を提供する場合があることを予測することができる。各サーバデバイスはまた、上述のコンテキストが与えられると、ユーザ334が口頭発話「Assistant, pause」を提供するときに、ユーザ334がどのデバイスに作用することを意図するのかを決定することができる。
【００６７】
各サーバデバイスは、受信されたステータス情報240に従って、ユーザがどのデバイスに作用することを意図するのかを決定するための、それぞれのデバイス選択エンジン308、310、または312を含むことができる。いくつかの実装形態では、デバイス選択エンジンは、1つまたは複数のローカルデバイスに対するユーザのロケーション、ユーザの音声特性、ロケーションに関連する占有データ、ロケーション内の1つまたは複数のローカルデバイスの動作ステータス、特定のローカルデバイスへの1つまたは複数の信頼済みデバイス(たとえば、時計、セルフォンなど)の近接度、ローカルデバイスにおいて動作中の1つまたは複数のアプリケーションの動作ステータス、および/あるいはローカルデバイスに関連することができる任意の他の情報に基づいて、ターゲットローカルデバイスを決定することができる。第1のローカルデバイス336が口頭発話に応答すべきであることをサーバデバイスのうちの1つまたは複数が決定する場合、現在のコンテキストの間に受信された任意の口頭発話を処理するために、第1のローカルデバイス336からステータス320を受信した第1のサーバデバイス302が割り当てられてよい。いくつかの実装形態では、第1のサーバデバイス302は、不明瞭な要求を処理するためだけに割り当てられてよく、任意の固有の要求は、ユーザ334が指定したローカルデバイスに対応する、どのサーバデバイスにおいて処理されてもよい。
【００６８】
たとえば、第1のローカルデバイス336において映画が再生されており、かつ第2のローカルデバイス338において電話呼が進行しながら、ユーザが口頭発話「Assistant, pause」を提供すると、口頭発話は複数のローカルデバイスによって確認応答され得る。しかしながら、どのローカルデバイスおよび/またはどのサーバデバイスが不明瞭な要求を扱うのかという決定を、サーバデバイスがすでに調停しているので、口頭発話は最終的に第1のサーバデバイス302によって処理され、第1のローカルデバイス336が口頭発話に応答を提供する(たとえば、「Ok, I will pause the movie.」)。
【００６９】
いくつかの実装形態では、特定のサーバデバイスが、口頭発話に応答すべきローカルデバイスの選択を絞り込むことを試みているとき、引き分けが発生することがある。引き分けは、ローカルデバイスおよび/またはそこから選択されるべき1つもしくは複数の残りのデバイスの各々に対してユーザによって確立される、デバイス名に基づいて解決され得る。たとえば、特定の口頭発話に応答するための2つのローカルデバイスの間に引き分けがあり、かつ2つのローカルデバイスのうちの一方が、単語「favorite」を含む、ユーザが作成した名称を有する場合、その一方のローカルデバイスが、特定の口頭発話に応答するために他方のローカルデバイスに優先して選択され得る。追加または代替として、引き分けは、引き分けに対応する要求を実行するために、引き分けに関与するローカルデバイスのうちの1つをユーザがこれまで好んでいることを示す、ユーザ習慣に従って解決され得る。したがって、識別されたこの選好は、引き分けの均衡を好適なデバイスに有利なように「傾ける」ことができる。追加または代替として、複数のローカルデバイス間の引き分けは、複数のローカルデバイスの機能を比較して、引き分けを引き起こした口頭発話に応答するのに最も好適であるかまたはその能力が備わっているローカルデバイスを識別することによって解決され得る。たとえば、ユーザが音楽が再生されることを頼んでおり(たとえば、「Assistant, play music.」)、かつサーバデバイスが、音楽を再生すべきローカルデバイスの選択を2つのスタンドアロンのスピーカーデバイスに狭めている場合、サーバデバイスは、音楽を再生するのに最も適しているローカルデバイスを選択することができる。具体的には、サーバデバイスは、最も多くのスピーカーを有し、音響がより良好なユーザの家の一部分の中にあり、かつ/または音楽をストリーミングするために利用可能なより多くのネットワーク帯域幅および/もしくは処理帯域幅を有する、ローカルデバイスを選択することができる。
【００７０】
追加または代替として、2つのローカルデバイス間の引き分けは、2つのローカルデバイスの各々によって決定されるような、口頭発話の音量に基づくことができる。したがって、2つのローカルデバイスのうちの一方のローカルデバイスに、2つのローカルデバイスのうちの他方のローカルデバイスよりも大きなボリュームでユーザが聞こえた場合、最も大きな音量でユーザが聞こえたローカルデバイスが選択され得る。引き分けを解決するために使用される任意の情報が、引き分けを解決するためのサーバデバイスに提供され得ることに留意されたい。たとえば、複数のローカルデバイスによる口頭発話の確認応答に応答して、ローカルデバイスの各々は、ローカルデバイスにユーザが聞こえた音量測定値(たとえば、デシベル単位)を決定することができ、サーバデバイスが潜在的な引き分けを解決することを可能にするために、音量測定値をサーバデバイスに提供することができる。同様に、口頭発話に応答すべきローカルデバイスの調停または選択が局所的に実行される実装形態では、引き分けを解決するための情報は、各ローカルデバイスによって、他のローカルデバイスすなわち少なくとも引き分けの対象であるローカルデバイスと共有され得る。いくつかの実装形態では、どこで引き分けが解決されつつあるのかに応じて、1つもしくは複数のサーバデバイスまたは1つもしくは複数のローカルデバイスにおいて、すべてのタイブレーク情報が受信されていることを確実にするために、引き分けを解決するためのプロセスの中に意図的な遅延がプログラムされてよい。
【００７１】
図4Aおよび図4Bは、ユーザからの口頭発話に応答すべきクライアントデバイスの選択の調停が局所的に実行されることを可能にする実装形態を示す。いくつかの実装形態では、ターゲットクライアントデバイスの選択の調停は、特定のロケーション438内の他のクライアントデバイスに対するユーザのロケーションに基づくことができる。追加または代替として、ターゲットクライアントデバイスの選択の調停は、口頭発話を提供しつつあるユーザに基づくことができる。ユーザが口頭発話を提供するのを終える時と特定のクライアントデバイスが口頭発話に応答する時との間で本来なら示されることがあるレイテンシの量を軽減するために、1つまたは複数のクライアントデバイスによる口頭発話の受信の前に、調停が少なくとも部分的に行われてよい。
【００７２】
たとえば、ユーザ416が口頭発話を提供する前、ロケーション438内の各クライアントデバイスは、そのそれぞれのステータス情報440(および随意に、それぞれのクライアントデバイスに接続された1つまたは複数のデバイスに対応するステータス情報)を、ロケーション438の中の他のクライアントデバイスと共有することができる。ステータス情報440は、1つもしくは複数のデバイスおよび/または1つもしくは複数のアプリケーションの動作ステータスを特徴づけることができる。たとえば、車両414からのステータス情報440は、動作ステータス412を特徴づけることができ、動作ステータス412は、「車両を充電すること」、および「駐車」されていることを含むことができる。追加として、アシスタントデバイス418からのステータス情報440は、動作ステータス426を特徴づけることができ、動作ステータス426は、「アイドル」のままであること、およびユーザ416によって「設定されたリマインダ」を追跡することを含むことができる。追加として、アシスタントデバイス442は、「アイドル」のままであることおよび別のユーザによって「設定されたアラーム」を追跡することという動作ステータス426を特徴づけるステータス情報440を提供することができ、テレビ428は、「アイドル」のままであることおよび「スクリーンセーバー」を提供することという動作ステータス436を特徴づけるステータス情報440を提供することができる。
【００７３】
各クライアントデバイス(すなわち、車両414、アシスタントデバイス418、アシスタントデバイス442、テレビ428)は、口頭発話がクライアントデバイスのうちの1つまたは複数によって受信されると、ターゲットクライアントデバイスの選択を調停するために、受信された任意のステータス情報440に基づいてスコアまたはメトリックを決定することができる。追加または代替として、口頭発話が提供された相対的なコンテキストを特徴づけるために、各クライアントデバイスによってコンテキストデータが個別に生成され得る。たとえば、少なくとも1つのクライアントデバイスによる口頭発話の受信に応答して、クライアントデバイスは、ユーザによって口頭発話が提供されたことを、ローカルネットワーク(たとえば、Wi-Fiネットワーク)を介して他のクライアントデバイスに通信することができる。他のクライアントデバイスの各々は、各クライアントデバイスに口頭発話が聞こえたボリューム(たとえば、デシベル単位)を決定することができる。各個々のボリュームは、クライアントデバイスごとのそれぞれのスコア、または複数のクライアントデバイスのランク付けに対する各クライアントデバイスのランクを決定するために、ステータス情報と組み合わせて使用され得る。各クライアントデバイスによって決定された各スコアまたは各ランクは、各クライアントデバイスが、それらのスコアが最高スコアに対応するかどうかを決定することができるように、ネットワーク上ですべての他のクライアントデバイスへ送信され得る。最高スコアに対応するクライアントデバイスは、次いで、「ターゲット」クライアントデバイスとして指定されてよく、それに応じて口頭発話に応答してよい。いくつかの実装形態では、ターゲットクライアントデバイスは、それが他の非ターゲットクライアントデバイスに優先する指定のターゲットクライアントデバイスであることを示すデータを、他の非ターゲットクライアントデバイスへ送信することができる。それらが指定のターゲットクライアントデバイスでないという、各クライアントデバイスによる決定に応答して、各クライアントデバイスは、ウェイクモードから出ること、それらのマイクロフォンの活動をサスペンドすること、および/または口頭発話の受信に応答して増大していたサンプリングまたは処理の量を場合によっては低減することができる。
【００７４】
いくつかの実装形態では、クライアントデバイスが口頭発話を受信する前に、特定の口頭発話に対応するデータがそのクライアントデバイスによって受信される場合、そのクライアントデバイスは、ターゲットとされないものとしてそれ自体を指定することができ、受信されたデータを随意に削除することができる。追加または代替として、口頭発話がクライアントデバイスに到着するしきい値時間期間(たとえば、100ミリ秒、1秒、および/または任意の他の好適な時間期間)内に、またはその外部で、特定の口頭発話に対応するデータがクライアントデバイスにおいて受信される場合、そのクライアントデバイスは、候補ターゲットクライアントデバイスとしてそれ自体を指定すること、またはターゲットとされないものとしてそれ自体を指定することができる。このようにして、クライアントデバイスのより大きいプールの中でターゲットクライアントデバイスの選択を調停して本来なら消費されることになる計算リソースおよびネットワーク帯域幅を保持するために、各デバイスは、候補ターゲットデバイスと見なされることから離脱することができる。データを受信した後、特定のデバイスが依然として候補ターゲットデバイスのままである場合、特定のデバイスは、それ自体のスコアを決定すること、それを他のクライアントデバイスから受信された他のスコアと比較すること、引き分けが発生しているかどうかを随意に決定すること、および引き分けを解決するための情報を識別することができ、次いで、それ自体を離脱させることまたはターゲットコンピューティングデバイスとして指定することができる。いくつかの実装形態では、送信される「データ」は、スコア、送り側クライアントデバイスに関連付けられたコンテキストデータ、他のクライアントデバイスに対する送り側クライアントデバイスのティア、および/またはクライアントデバイスの選択を調停するときに使用され得る任意の他の情報を含むことができる。
【００７５】
いくつかの実装形態では、口頭発話の受信に応答してウェイクアップする時に、特定のクライアントデバイス(たとえば、アシスタントデバイス418)が、口頭発話に関するデータを他のクライアントデバイス(すなわち、車両414、アシスタントデバイス418、アシスタントデバイス442、テレビ428)から受信しない場合、特定のクライアントデバイスは、口頭発話に応答するためのターゲットクライアントデバイスとしてそれ自体を指定することができる。随意に、特定のクライアントデバイスはまた、他のクライアントデバイスのうちの1つが、やはりそれら自体をターゲットクライアントデバイスとして指定し、それによって引き分けを生み出す場合には、別のクライアントデバイスによって使用され得る、タイブレーク情報を特徴づけるデータを他のクライアントデバイスへ送ることができる。いくつかの実装形態では、クライアントデバイスは、そのクライアントデバイスと通信しているリモートクライアントデバイスの特色および/または動作パラメータに基づくコンテキストデータに対応するデータを、他のクライアントデバイスへ送ることができる。リモートクライアントデバイスのスコアまたはランクが他のクライアントデバイスの他のスコアまたは他のランクと区別されることをクライアントデバイスが決定すると、クライアントデバイスは、リモートクライアントデバイスをターゲットクライアントデバイスとして指定することができる。言い換えれば、他のデバイスが、口頭発話に応答するための候補であるいかなる他のクライアントデバイスと通信していないとしても、クライアントデバイスは、それ自体、およびそのクライアントデバイスと通信している任意の他のデバイスに対する、スコアまたはランクを決定することができる。リモートクライアントデバイスが、Bluetooth対応デバイス、ディスプレイパネル、スタンドアロンのスピーカーデバイス、周辺デバイス、および/またはコンピュータ(たとえば、クライアントデバイス)と接続できる任意の他の装置などの、クライアントデバイスに接続した装置であり得ることに留意されたい。
【００７６】
いくつかの実装形態では、各クライアントデバイスから提供されるステータス情報440は、それぞれのクライアントデバイスからのユーザの距離を特徴づける情報を含むことができる。距離は、ユーザ416からの許可を伴って各クライアントデバイスにとってアクセス可能な、1つまたは複数のセンサーを使用して決定され得る。追加または代替として、距離は、ロケーション438内での部屋の隣接関係および/またはデバイスのロケーションを示す記憶済みのトポロジーと比較された、口頭発話の音声特性を使用して決定され得る。いくつかの実装形態では、距離は、通常はユーザ416によって携行され、したがって、ユーザ416からの許可を伴ってユーザ416のロケーションを提供するために「信頼済み」であり得る、信頼済みデバイスの決定されたロケーションに基づくことができる。たとえば、テレビ自動アシスタント430は、ユーザ416によって着用されるスマートウォッチが10フィートだけ離れていることを決定することができ、他のクライアントデバイスに提供されるステータス情報440の中にその距離測定値を具備することができる。いくつかの実装形態では、各デバイスは、ユーザ416に対する他のクライアントデバイスの他の距離に関する、ユーザからのそれらのそれぞれの距離の比較に少なくとも部分的に基づいて、それらのそれぞれのスコアを決定することができる。このようにして、クライアントデバイスのうちの1つもしくは複数および/またはユーザ416からのしきい値距離の、外側または内側に位置するそれぞれのクライアントデバイスは、それ自体を、それぞれ、ターゲットとされないものとして、またはターゲットとされるものとして、指定することができる。
【００７７】
いくつかの実装形態では、特定の口頭発話に応答すべきターゲットクライアントデバイスの選択の調停は、行われている要求、および/またはクライアントデバイスが実行することをユーザが意図するアクションに関して、不可知論的であり得る。追加または代替として、ターゲットクライアントデバイスの選択の調停はボリューム不可知論的であり得、したがって、クライアントデバイスにユーザが聞こえたボリュームを含まない情報に基づくことができる。追加または代替として、ターゲットクライアントデバイスの選択の調停は、少なくとも1つのクライアントデバイスにユーザが聞こえたボリューム、および口頭発話が提供されているコンテキストの少なくとも1つのボリューム不可知論的な特性に基づくことができる。いくつかの実装形態では、クライアントデバイスが別のクライアントデバイスではなくユーザのみに応答することを確実にするために、クライアントデバイスの入力処理エンジンは、他のクライアントデバイスが口頭発話に応答しつつあるときにクライアントデバイスが反応しないことを可能にする、音声認識機能が装備され得る。
【００７８】
いくつかの実装形態では、各クライアントデバイスが、それらのそれぞれの(図400に示すような)ステータス情報440を共有しているとき、ユーザ416は、その後、(図402に示すような)口頭発話450を提供することができる。口頭発話に応答するターゲットクライアントデバイスの選択の調停は、口頭発話の受信の前に、その間に、またはその後に実行され得る。たとえば、時刻(たとえば、午後10時過ぎ)、およびアシスタントデバイス442に対する動作ステータス426が、アシスタントデバイス442がアイドルでありアラームが設定されていることを示すので、調停は、アシスタントデバイス442が最低スコアを有する結果となることがある。したがって、アシスタントデバイス442がその中に位置する部屋の中で誰かが眠っていることがあるので、アシスタントデバイス442がいかなる口頭発話に応答するための最大スコアも有しないはずであることを、アシスタントデバイス442は推定することができる。たとえば、ユーザ416が「Assistant, play music」という口頭発話450を提供した場合、アシスタントデバイス442は、ローカルクライアントデバイス間で共有されたステータス情報の結果として、任意の局所的な調停に従って最後のランクが付けられる。
【００７９】
いくつかの実装形態では、それぞれのクライアントデバイスごとにスコアを決定し、かつ/または場合によっては口頭発話に応答するターゲットクライアントデバイスを決定するために、クライアントデバイスのうちの1つまたは複数によって1つまたは複数の機械学習モデルが採用され得る。スコアを決定するためにクライアントデバイスによって使用される機械学習モデルは、1つまたは複数の他のクライアントデバイスによってトレーニングデータとして提供された、ステータス情報440の以前のインスタンスを使用することができる。いくらかの量のトレーニングの後に他のクライアントデバイスによって提供されるステータス情報440は、ターゲットクライアントデバイス、および/またはそれぞれのクライアントデバイスに対するスコアを識別するために、機械学習モデル、および/または機械学習モデルから得られる関数への、入力として使用され得る。限定はしないが、1人または複数人のユーザの音声特性、ロケーション438に関連する占有データ、ロケーション438に対応する部屋隣接関係データ、現在時刻、現在の日付、1つまたは複数のクライアントデバイスによって実行された以前のアクション、1つまたは複数のクライアントデバイスにおいて実行されるものと予想される1つまたは複数のアクション、クライアントデバイスにとってアクセス可能な記憶済みのカレンダー、クライアントデバイスに対する他のリモートデバイスのロケーション、および/あるいは入力として機械学習モデルに提供するのに適し得る任意の他の情報などの、他のコンテキストデータも入力として機械学習モデルに提供され得る。
【００８０】
図5Aおよび図5Bは、複数のクライアントデバイスにおいて受信された口頭発話に応答して、クライアントデバイスによって実行中の進行中アクションを修正するための方法500および方法512を示す。方法500および方法512は、1つまたは複数のコンピューティングデバイス、サーバデバイス、アプリケーション、および/または自動アシスタントと相互作用できる任意の他の装置もしくはモジュールによって実行され得る。方法500は、図5Aおよび図5Bの中で各々が丸く囲まれた継続要素「A」および「B」を経由して方法512に続くことができる。方法500は、口頭発話をキャプチャするオーディオデータを受信する動作502を含むことができ、口頭発話は、ユーザからのものであり、自動アシスタントがアクションを実行することを求める要求を具備する。たとえば、口頭発話は「Assistant, stop」であり得、口頭発話は、ユーザの家の中の複数のクライアントデバイスによって聞かれてよい。ユーザは、口頭発話が単一のアクションのみに作用することを意図することがあり、したがって、ユーザが作用することを意図する特定のクライアントデバイスおよび/またはアクションを識別するために、プロセスが使用されなければならない。プロセスは、1つもしくは複数のサーバデバイスおよび/または1つもしくは複数のクライアントデバイスにおいて実行され得る。
【００８１】
方法500は、口頭発話を介してユーザによって要求された修正が、複数のクライアントデバイスによって実行中の複数の進行中アクションのうちの1つの進行中アクションを修正できることを決定する動作504をさらに含むことができる。具体的には、オーディオデータはテキストに変換されてよく、テキストは、次いで、要求に対応するテキストの一部分を識別するために構文解析される。たとえば、口頭発話の呼出しフレーズ部分は「Assistant」であり得、口頭発話の要求部分は「stop」であり得る。呼出しフレーズ部分は、口頭発話の残りの部分に対応するオーディオデータをキャプチャするために、それらのそれぞれのマイクロフォンの動作状態をウェイク状態となるように複数のクライアントデバイスに修正させることができる。口頭発話の要求部分が識別されているとき、要求が進行中アクションを修正するための要求に対応するかどうかに関して決定が行われてよい。
【００８２】
方法500は、要求および/またはアクションを実行すべきデバイスを要求が特に指名したかどうかを決定する動作506をさらに含むことができる。言い換えれば、動作506は、修正されるべきアクションまたはアクションへの修正を実行するデバイスに関して、要求が固有であるのかそれとも不明瞭であるのかを決定することを含むことができる。修正されるべきアクションおよび/またはアクション修正を実行するデバイスに関して要求が固有である場合、方法500は、継続要素「A」を経由して、動作506における方法500から動作510における方法512に進むことができる。修正されるべきアクションおよび/またはアクションを実行するデバイスに関して要求が不明瞭である場合、方法500は動作508に進むことができる。
【００８３】
動作508は、進行中アクションのための修正に対応する記憶済みの規制を識別することを含むことができる。記憶済みの規制は、要求を識別するためにオーディオデータから構文解析されたテキストに少なくとも基づいて識別され得る。1つまたは複数の規制が要求に関連付けられてよく、各規制は、1人または複数人のユーザの学習された選好に従って生成され得る。たとえば、識別される規制は、上述の要求「stop」を識別することができ、利用可能なコンテキストデータに応じて、要求によって作用されるべき1つまたは複数のアクションを示すことができる。たとえば、コンテキストデータは、ユーザがその中で要求「stop」を提供したロケーション内での1つまたは複数のデバイスの動作ステータスを示すことができ、規制は、自動アシスタントがそれらの特定の動作ステータスに基づいて特定のアクションを修正させることを指示することができる。
【００８４】
方法500は、継続要素「B」によって示されるように動作508から動作514に進むことができる。動作514は、記憶済みの規制に関連付けられているコンテキストデータにアクセスすることを含むことができる。コンテキストデータは、口頭発話が提供された家の中のデバイスのタイプ、家の中のデバイスの特色および/または機能的能力、家の中に一時的に存在するかまたはさもなければユーザに追従する傾向があるデバイス(たとえば、時計、セルフォンなど)、家の中の1つもしくは複数のデバイスまたは家の中のデバイスに接続された他のデバイスの動作状態、1つまたは複数のデバイスによってアクセス中のメディア、1つまたは複数のデバイスによって実行中のアクション(たとえば、電話呼、タイマーカウントダウン)、1つまたは複数のデバイスの将来の動作状態、1つまたは複数のデバイスの予想または予測される動作状態、1つまたは複数のデバイスがどのくらい長くそれらのそれぞれの動作状態の各々にあるのか、1つまたは複数のデバイスがどのくらい長くそれらのそれぞれの動作状態の各々にあるものと予想または予測されるのか、ならびに/あるいは装置またはアプリケーションに関連し得る任意の他の特性または機能を、識別および/または特徴づけることができる。たとえば、コンテキストデータは、ユーザの家が、アラームを発しているアシスタントデバイス、映画を再生しているテレビ、および電話呼を受けているセルフォンを含むことを示すことができる。
【００８５】
方法512は、自動アシスタントを介してアクションを実行するためのターゲットコンピューティングデバイスを、コンテキストデータおよび記憶済みの規制に基づいて決定する動作516をさらに含むことができる。たとえば、記憶済みの規制は、「stop」要求を含む不明瞭な口頭発話をユーザが提供し、かつ任意のデバイスによってアラームが発せられているとき、作動しているデバイスにおいてアラームアクションが止められるべきであることを示すことができる。このようにして、家の中のいかなる他のデバイスよりも大きな音量で、アラームを発しないデバイスにユーザからの不明瞭な要求が聞こえているにもかかわらず、不明瞭な要求はアラームを発するデバイスのみに作用する。このようにして、このそれぞれの記憶済みの規制は、進行中アクションを修正するための少なくとも1つのボリューム不可知論的な条件を含むことができる。
【００８６】
方法512はまた、ターゲットコンピューティングデバイスに自動アシスタントを介して(または、自動アシスタントを介さずに)アクションを実行させる(または、進行中アクションを修正させる)動作518を含むことができる。たとえば、識別される記憶済みの規制とのコンテキストデータの比較に応答して、自動アシスタントは、1つまたは複数のデバイスによって発せられているアラームが、ユーザからの要求に従って修正されるべきターゲットアクションであることを決定することができる。自動アシスタントは、次いで、どのデバイスがアラームを発しているのかに基づいて、ターゲットとされる1つまたは複数のデバイスを識別することができる。単一のデバイスにおいて発せられている単一のアラームしかない場合、自動アシスタントは、その単一のデバイスをターゲットデバイスとして指定することができ、ユーザからの要求に従ってアラームを止めさせることができる。
【００８７】
図6は、複数のクライアントデバイスからのステータス情報を処理すべきサーバデバイスのコロケートクラスタを選択し、かつステータス情報を処理した成果に基づいて、アクションを実行すべきターゲットクライアントデバイスを選択するための、方法600を示す。方法600は、1つまたは複数のコンピューティングデバイス、サーバデバイス、アプリケーション、および/または自動アシスタントと相互作用できる任意の他の装置もしくはモジュールによって実行され得る。
【００８８】
方法600は、ユーザに関連付けられた複数のクライアントデバイスからステータス情報を受信する動作602を含むことができる。ステータス情報は、少なくとも1つのクライアントデバイスが進行中アクションを実行中であることを示すことができる。複数のクライアントデバイスは、ユーザの家などのロケーションの方々に配設され得、近距離場通信チャネルを介するなどの、ローカルエリアネットワークおよび/または1つもしくは複数の他の接続を介して接続されたデバイスを含むことができる。ステータス情報は、ステータス情報を送る前にユーザが要求を行うのを待つのではなく、ステータス情報が、受信中の任意のサーバデバイスによってより容易に処理され得るように、複数のクライアントデバイスによって定期的に提供され得る。
【００８９】
方法600は、ステータス情報を処理するためのサーバデバイスの指定のコロケートクラスタを選択する動作604をさらに含むことができる。サーバデバイスの指定のコロケートクラスタは、それぞれ、複数の異なる地理的エリアの中に位置する、サーバデバイスの複数の異なるコロケートクラスタから選択され得る。いくつかの実装形態では、サーバデバイスの指定のコロケートクラスタは、1つまたは複数のユーザデバイスに関連付けられた1つまたは複数のユーザアカウントがユーザからの要求を受けると予測されることを示すステータス情報に基づいて選択され得る。サーバデバイスのコロケートクラスタの選択は、場合によってはステータス情報を入力として使用するとともに、サーバデバイスのコロケートクラスタの選択を出力として提供する、機械学習モデルおよび/または関数を使用して、ステータス情報を処理することに基づくことができる。
【００９０】
方法600はまた、複数のクライアントデバイスのうちの1つのクライアントデバイスの自動アシスタントインターフェースにおいてユーザからの口頭発話が受信されたことを決定する動作606を含むことができる。ユーザは、特定のアクションが初期化され、修正され、停止されることを要求していることがあり、かつ/または特定の情報がユーザに提供されることを要求していることがある。しかしながら、応答がそこから提供されることをユーザが意図するデバイスに関して、要求が不明瞭である場合がある。たとえば、ユーザは自動アシスタントからの情報を求める要求を提供していることがあり、その要求を含む口頭発話が複数のクライアントデバイスにおいて受信され得る。したがって、自動アシスタントは、そこからユーザに応答すべき、好適なデバイスを決定すべきである。
【００９１】
方法600は、口頭発話が受信されたという決定に応答して、オーディオデータをサーバデバイスの指定のコロケートクラスタに提供させる動作608をさらに含むことができる。オーディオデータは、ユーザからの口頭発話を確認応答した、かつ/またはそうした口頭発話が聞こえた、複数のクライアントデバイスのうちの少なくとも1つのクライアントデバイスによって提供され得る。いくつかの実装形態では、複数のクライアントデバイスは、サーバデバイスの指定のコロケートクラスタにオーディオデータを提供するために指定されるクライアントデバイスを選択するための局所的な調停を実行することができる。調停は、たとえば、複数のクライアントデバイスの各クライアントデバイスに音量メトリックを互いに共有させることを備えることができる。音量メトリックは、特定のクライアントデバイスに口頭発話が聞こえた音量を特徴づけることができる。複数のクライアントデバイスのうちの他のクライアントデバイスと比較して、それらに口頭発話が最も大きな音量で聞こえたことを決定するデバイスは、次いで、受信されたオーディオデータをサーバデバイスの指定のコロケートクラスタへ送信することができる。いくつかの実装形態では、他のクライアントデバイスに比べて最もユーザの近くにあることを決定するクライアントデバイスが、オーディオデータをサーバデバイスのコロケートクラスタへ送信するように指定され得る。他の実装形態では、オーディオデータをサーバデバイスのコロケートクラスタに提供するように指定されるクライアントデバイスは、本明細書で説明するコンテキストデータおよび/または1つもしくは複数の動的規制に基づいて決定され得る。いくつかの実装形態では、オーディオデータをサーバデバイスのコロケートクラスタに提供するように指定されるクライアントデバイスは、どのクライアントデバイスが最初に口頭発話の受信を確認応答したのかに基づいて決定され得る。この決定は、各デバイスに口頭発話が聞こえた時間を示す、クライアントデバイス間で送信されるタイムスタンプに基づいて行われてよく、したがって、クライアントデバイスの各々は、最初にそれらに口頭発話が聞こえたかどうかを個別に決定することができる。
【００９２】
方法600はまた、アクションを実行するための、複数のクライアントデバイスのうちの指定のクライアントデバイスを、サーバデバイスの指定のコロケートクラスタに識別させる動作610を含むことができる。アクションを実行するための指定のクライアントデバイスは、サーバデバイスの指定のコロケートクラスタによって識別され得る。いくつかの実装形態では、サーバデバイスの指定のコロケートクラスタは、限定はしないが、ステータス情報、およびサーバデバイスの指定のコロケートクラスタにとってアクセス可能な1つまたは複数の動的規制を含む、コンテキストデータを処理することに基づいて、アクションを実行するための指定のクライアントデバイスを選択することができる。このようにして、同じ情報を処理し、それによって、計算リソースおよびネットワークリソースを浪費する、サーバデバイスの複数のコロケートクラスタではなく、そのような情報を処理するためにサーバデバイスの単一のコロケートクラスタが指定され得る。さらに、このことは、異なる主要アカウントに関連付けられてよく、したがって、異なるサーバと通信することがある、複数のアシスタント対応デバイスによって次に受信される口頭発話をユーザが提供するときに、本来なら発生することがあるレイテンシを、軽減することができる。
【００９３】
方法600は、ユーザによって要求されたアクションを、指定のクライアントデバイスに実行させる動作612をさらに含むことができる。指定のクライアントデバイスは、指定のクライアントデバイス、および/または、あるロケーションにおいて指定のクライアントデバイスとコロケートされている他のクライアントデバイスを対象とする、サーバデバイスの指定のコロケートクラスタの出力に基づいて、アクションを実行させられてよい。いくつかの実装形態では、サーバデバイスの指定のコロケートクラスタが、アクションを実行すべき2つ以上の候補クライアントデバイス間の引き分けを識別した場合、サーバデバイスの指定のコロケートクラスタは、本明細書で説明するように、引き分けを解決するのに関連する情報にアクセスすることおよび/またはそれを受信することができる。
【００９４】
図7は、例示的なコンピュータシステム710のブロック図である。コンピュータシステム710は、通常、バスサブシステム712を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ714を含む。これらの周辺デバイスは、たとえば、メモリ725およびファイル記憶サブシステム726を含む記憶サブシステム724、ユーザインターフェース出力デバイス720、ユーザインターフェース入力デバイス722、ならびにネットワークインターフェースサブシステム716を含んでよい。入力および出力デバイスは、コンピュータシステム710とのユーザ対話を可能にする。ネットワークインターフェースサブシステム716は、外部ネットワークへのインターフェースを提供し、他のコンピュータシステムの中の対応するインターフェースデバイスに結合される。
【００９５】
ユーザインターフェース入力デバイス722は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイの中に組み込まれたタッチスクリーン、音声認識システム、マイクロフォン、および/または他のタイプの入力デバイスなどのオーディオ入力デバイスを含んでよい。概して、「入力デバイス」という用語の使用は、コンピュータシステム710の中または通信ネットワーク上に情報を入力するための、すべての可能なタイプのデバイスおよび方法を含むことが意図される。
【００９６】
ユーザインターフェース出力デバイス720は、ディスプレイサブシステム、プリンタ、ファックス機械、またはオーディオ出力デバイスなどの非視覚的な表示を含んでよい。ディスプレイサブシステムは、陰極線管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、投影デバイス、または視認可能な画像を作成するための何かしらの他のメカニズムを含んでよい。ディスプレイサブシステムはまた、オーディオ出力デバイスなどを介して非視覚的な表示を提供し得る。概して、「出力デバイス」という用語の使用は、コンピュータシステム710からユーザに、または別の機械もしくはコンピュータシステムに、情報を出力するための、すべての可能なタイプのデバイスおよび方法を含むことが意図される。
【００９７】
記憶サブシステム724は、本明細書で説明するモジュールの一部または全部の機能を提供するプログラミングおよびデータ構造を記憶する。たとえば、記憶サブシステム724は、方法500、方法512、方法600の選択された態様を実行するための、かつ/あるいは自動アシスタント、アシスタントデバイス104、アシスタントデバイス118、テレビ128、車両自動アシスタント106、クライアント自動アシスタント120、テレビ自動アシスタント130、クライアントデバイス202、リモートコンピューティングデバイス208、サーバデバイス、ローカルデバイス、クライアントデバイス、および/または本明細書で説明する任意の他の装置もしくはモジュールのうちの1つまたは複数を実装するための、論理を含んでよい。
【００９８】
これらのソフトウェアモジュールは、概して、プロセッサ714によって単独で、または他のプロセッサと組み合わせて実行される。記憶サブシステム724の中で使用されるメモリ725は、プログラム実行中の命令およびデータの記憶用のメインランダムアクセスメモリ(RAM)730、ならびに確定した命令がその中に記憶される読取り専用メモリ(ROM)732を含む、いくつかのメモリを含むことができる。ファイル記憶サブシステム726は、プログラムおよびデータファイルのための持続的な記憶を提供することができ、ハードディスクドライブ、関連するリムーバブル媒体と一緒のフロッピーディスクドライブ、CD-ROMドライブ、光学ドライブ、またはリムーバブル媒体カートリッジを含んでよい。いくつかの実装形態の機能を実装するモジュールは、ファイル記憶サブシステム726によって記憶サブシステム724の中に、またはプロセッサ714によってアクセス可能な他の機械の中に記憶されてよい。
【００９９】
バスサブシステム712は、コンピュータシステム710の様々な構成要素およびサブシステムに、意図するように互いに通信させるためのメカニズムを提供する。バスサブシステム712は単一のバスとして概略的に示されるが、バスサブシステムの代替実装形態は複数のバスを使用してよい。
【０１００】
コンピュータシステム710は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意の他のデータ処理システムもしくはコンピューティングデバイスを含む、様々なタイプのものであり得る。コンピュータおよびネットワークの絶え間なく変化する性質に起因して、図7に示すコンピュータシステム710の説明は、いくつかの実装形態を示すための具体例として意図されるにすぎない。図7に示すコンピュータシステムよりも多数または少数の構成要素を有する、コンピュータシステム710の多くの他の構成が可能である。
【０１０１】
本明細書で説明するシステムがユーザ(または、しばしば、本明細書で「参加者」と呼ばれるような)についての個人情報を収集するかまたは個人情報を利用し得る状況では、ユーザには、プログラムまたは機能がユーザ情報(たとえば、ユーザのソーシャルネットワークについての情報、社会的な行動もしくは活動、職業、ユーザの選好、またはユーザの現在の地理的ロケーション)を収集するかどうかを制御するための、あるいはユーザにとってより関連し得るコンテンツサーバからコンテンツを受信するかどうか、および/またはどのように受信するのかを制御するための、機会が提供されてよい。また、いくつかのデータは、個人が特定できる情報が除去されるように、記憶または使用される前に1つまたは複数の方法で処置されてよい。たとえば、ユーザの識別情報は、ユーザに対して個人が特定できる情報が決定され得ないように処置されてよく、またはユーザの地理的ロケーションは、ユーザの特定の地理的ロケーションが決定され得ないように、(都市レベル、郵便番号レベル、または州レベルなどの)地理的ロケーション情報が取得される場所に一般化されてよい。したがって、ユーザは、情報がどのようにユーザについて収集され、かつ/または使用されるのかの、制御を有してよい。
【０１０２】
いくつかの実装形態が本明細書で説明および図示されているが、機能を実行しかつ/または結果を取得するための様々な他の手段および/または構造、ならびに/あるいは本明細書で説明する利点のうちの1つまたは複数が利用されてよく、そのような変形および/または修正の各々は、本明細書で説明する実装形態の範囲内にあるものと見なされる。より一般的には、本明細書で説明するすべてのパラメータ、寸法、材料、および構成が例示的であること、ならびに実際のパラメータ、寸法、材料、および/または構成が、本教示が使用されるべき1つまたは複数の特定の適用例に依存することが意図される。当業者は、本明細書で説明する特定の実装形態の多くの均等物を認識し、せいぜい決まりきった実験を使用してそれを確認することができる。したがって、上記の実装形態が単に例として提示されること、および添付の特許請求の範囲内かつそれらの均等物の範囲内で、実装形態が、詳細に説明され特許請求されるのとは違って実践され得ることが、理解されるべきである。本開示の実装形態は、本明細書で説明する各個々の機能、システム、物品、材料、キット、および/または方法を対象とする。加えて、2つ以上のそのような機能、システム、物品、材料、キット、および/または方法の任意の組合せは、そのような機能、システム、物品、材料、キット、および/または方法が互いに矛盾しない場合、本開示の範囲内に含まれる。
【符号の説明】
【０１０３】
104  アシスタントデバイス
106  車両自動アシスタント
108  アシスタントインターフェース
112  ステータス情報
114  車両
116  ユーザ
118  アシスタントデバイス
120  クライアント自動アシスタント
122  アシスタントインターフェース
124  アクションデータ
126  動作ステータス
128  テレビ
130  テレビ自動アシスタント
132  アシスタントインターフェース
136  ステータス
138  ロケーション
140  口頭発話
142  出力
200  システム
202  クライアントデバイス
204  アシスタントインターフェース
206  アプリケーション
208  リモートコンピューティングデバイス
210  サーバ自動アシスタント
212  入力処理エンジン
214  クライアント自動アシスタント
216  データ構文解析モジュール
218  パラメータエンジン
220  出力生成エンジン
222  音声処理モジュール
224  マルチデバイスステータス情報
232  動的規制
234  ネットワーク
240  ステータス情報
242  アプリケーションデータ
300  システム
302  第1のサーバデバイス
304  第2のサーバデバイス
306  第Nのサーバデバイス
308、310、312  デバイス選択エンジン
314、316、318  ステータス情報
320、322、324  ステータス
334  ユーザ
336  第1のローカルデバイス
338  第2のローカルデバイス
340  第Nのローカルデバイス
412  動作ステータス
414  車両
416  ユーザ
418  アシスタントデバイス
426  動作ステータス
428  テレビ
430  テレビ自動アシスタント
436  動作ステータス
438  ロケーション
440  ステータス情報
442  アシスタントデバイス
450  口頭発話
710  コンピュータシステム
712  バスサブシステム
714  プロセッサ
716  ネットワークインターフェースサブシステム
720  ユーザインターフェース出力デバイス
722  ユーザインターフェース入力デバイス
724  記憶サブシステム
725  メモリ
726  ファイル記憶サブシステム
730  ランダムアクセスメモリ(RAM)
732  読取り専用メモリ(ROM)
【図１Ａ】
2021533400.tif 000003
【図１Ｂ】
2021533400.tif 000004
【図２】
2021533400.tif 000005
【図３Ａ】
2021533400.tif 000006
【図３Ｂ】
2021533400.tif 000007
【図４Ａ】
2021533400.tif 000008
【図４Ｂ】
2021533400.tif 000009
【図５Ａ】
2021533400.tif 000010
【図５Ｂ】
2021533400.tif 000011
【図６】
2021533400.tif 000012
【図７】
2021533400.tif 000013
【手続補正書】
【提出日】令和3年2月10日(2021.2.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実装される方法であって、
ユーザの口頭発話をキャプチャするオーディオデータを受信するステップであって、前記口頭発話が、自動アシスタントを介して修正アクションが実行されることを求める要求を具備し、各々が前記自動アシスタントを介して前記修正アクションを実行できる2つ以上のコンピューティングデバイスのうちの少なくとも1つによって受信される、ステップと、
前記2つ以上のコンピューティングデバイスのうちの第1のデバイスにおいて実行中の第1の進行中アクション、および
前記2つ以上のコンピューティングデバイスのうちの第2のデバイスにおいて実行中の第2の進行中アクション
の各々を前記修正アクションが修正できることを、前記口頭発話をキャプチャする前記オーディオデータを使用して決定するステップと、
前記修正アクションが前記第1の進行中アクションと前記第2の進行中アクションの両方を修正できることを決定することに基づいて、前記修正アクションに対応する記憶済みの規制を識別するステップであって、前記記憶済みの規制が、前記修正アクションの実行のコンテキスト依存関係を特徴づける、ステップと、
前記記憶済みの規制を識別することに基づいて、前記記憶済みの規制に関連付けられているコンテキストデータにアクセスするステップであって、前記コンテキストデータが、前記第1の進行中アクションの第1のタイプおよび前記第2の進行中アクションの第2のタイプを特徴づける、ステップと、
前記自動アシスタントを介して前記修正アクションがそこで実行されるべき、前記2つ以上のコンピューティングデバイスのうちのターゲットコンピューティングデバイスを、前記コンテキストデータおよび前記記憶済みの規制に基づいて決定するステップと、
前記修正アクションがそこで制御されるべき前記ターゲットコンピューティングデバイスを決定することに基づいて、前記自動アシスタントを介して前記ターゲットコンピューティングデバイスにおいて前記修正アクションを実行させるステップと
を備える方法。
【請求項２】
前記記憶済みの規制を決定するステップが、前記自動アシスタントにとってアクセス可能な複数の異なる規制から前記記憶済みの規制を識別するステップを含み、前記複数の異なる規制が、前記修正アクションを実行するように前記ユーザが前記自動アシスタントに要求することの1つまたは複数の以前のインスタンスに基づいて決定される、請求項1に記載の方法。
【請求項３】
前記記憶済みの規制が、前記ユーザから前記自動アシスタントによって以前に受信された1つまたは複数の補正口頭発話に基づいて決定され、前記1つまたは複数の補正口頭発話の各々は、前記補正口頭発話によって示されるように前記修正アクションの以前の対応するインスタンスが前記自動アシスタントを介して不適切に実行されたことに続いて、前記ユーザによって提供される、請求項2に記載の方法。
【請求項４】
前記第1の進行中アクションが、前記第1のデバイスのスピーカーを介して可聴音を提供するステップを含む、請求項1に記載の方法。
【請求項５】
前記コンテキストデータが、前記ユーザがその中で前記口頭発話を提供した建物の、1つまたは複数の部屋の占有を特徴づける占有データを含み、前記記憶済みの規制が、前記建物の前記1つまたは複数の部屋のうちの特定の部屋に関して少なくとも1つのアクションを制限するための、前記ユーザの選好を示す、請求項1に記載の方法。
【請求項６】
前記コンテキストデータが、前記建物の前記1つまたは複数の部屋のうちの前記特定の部屋内の前記ユーザのロケーションをさらに示し、前記記憶済みの規制が、前記ターゲットコンピューティングデバイスが前記自動アシスタントを介して前記少なくとも1つのアクションを制御するための、前記ユーザの別の選好を示す、請求項5に記載の方法。
【請求項７】
前記ターゲットコンピューティングデバイスにおいて前記修正アクションを実行させるステップが、前記2つ以上のコンピューティングデバイスのうちの前記ターゲットコンピューティングデバイスにおける特定の進行中アクションの実行を制限するステップを含む、請求項1に記載の方法。
【請求項８】
前記ターゲットコンピューティングデバイスにおいて前記少なくとも1つのアクションを実行させるステップが、オーディオデータまたはビジュアルデータの進行中のレンダリングを修正するステップを含み、前記コンテキストデータが、前記オーディオデータまたはビジュアルデータの前記進行中のレンダリングが初期化された時間を示す、請求項1に記載の方法。
【請求項９】
前記コンテキストデータが、前記2つ以上のコンピューティングデバイスの各コンピューティングデバイスの動作ステータスを識別し、前記2つ以上のコンピューティングデバイスの各コンピューティングデバイスが、前記動作ステータスを処理するためのサーバデバイスの共通コロケートクラスタに、それぞれの動作ステータスデータを提供するように構成される、請求項1に記載の方法。
【請求項１０】
1つまたは複数のプロセッサによって実装される方法であって、
ユーザのロケーションに配設された複数のクライアントデバイスの活動状態に対応するステータス情報を、複数のクライアントデバイスと通信しているサーバデバイスにおいて決定するステップであって、前記複数のクライアントデバイスの各クライアントデバイスが、自動アシスタントにとってアクセス可能である、ステップと、
前記決定されたステータス情報に従って動作している前記複数のクライアントデバイスのうちの少なくとも1つのクライアントデバイスに前記ユーザによって提供される口頭発話に基づくデータを受信するステップであって、前記口頭発話が、前記複数のクライアントデバイスのうちの1つまたは複数のクライアントデバイスによってアクションが実行されることを求める要求を具備する、ステップと、
前記口頭発話に基づく前記データの受信に応答して、前記複数のクライアントデバイスに関連付けられた動的規制の記憶済みのセットにアクセスするステップであって、動的規制の前記記憶済みのセットの少なくとも1つの記憶済みの規制が、前記ステータス情報に対する、前記1つまたは複数のクライアントデバイスによる前記アクションの実行の、コンテキスト依存関係を特徴づける、ステップと、
動的規制の前記記憶済みのセットの前記少なくとも1つの記憶済みの規制、および前記ステータス情報に基づいて、前記アクションを実行すべきターゲットクライアントデバイスを識別するステップであって、前記少なくとも1つの記憶済みの規制によって特徴づけられる前記コンテキスト依存関係が、前記アクションを実行すべき前記ターゲットクライアントデバイスを指定するための少なくとも1つのボリューム不可知論的な条件を含む、ステップと、
前記ターゲットクライアントデバイスに前記自動アシスタントを介して前記アクションを実行させるステップと
を備える方法。
【請求項１１】
前記ロケーションが、前記サーバデバイスにとってアクセス可能な記憶済みのトポロジーによって特徴づけられる複数の部屋を含み、前記方法が、
前記少なくとも1つのクライアントデバイスを含む第1の部屋内に前記ユーザが位置し、かつ前記複数の部屋のうちの第2の部屋内に前記ターゲットクライアントデバイスが位置するとして、前記コンテキスト依存関係を特徴づける現在のコンテキストデータにアクセスするステップをさらに含む、
請求項10に記載の方法。
【請求項１２】
前記口頭発話が、不明瞭なタイプの発話および固有のタイプの発話から選択された少なくとも1つのタイプの発話としてのものであるかどうかを、前記データを受信することに基づいて決定するステップをさらに備え、前記複数のクライアントデバイスに関連付けられた動的規制の前記記憶済みのセットにアクセスするステップ、前記アクションを実行すべきターゲットクライアントデバイスを識別するステップ、および前記ターゲットクライアントデバイスに前記アクションを実行させるステップの特定の動作が、前記口頭発話が前記不明瞭なタイプの発話であるものと決定されるときに実行される、
請求項10に記載の方法。
【請求項１３】
前記口頭発話が固有のタイプの発話であるものと決定されるとき、
前記口頭発話を介して前記ユーザによって特に識別される指定のクライアントデバイスを識別するステップと、
前記複数のクライアントデバイスに関連付けられた動的規制の前記記憶済みのセットにアクセスするステップをバイパスしながら前記指定のクライアントに前記アクションを実行させるステップとをさらに備える、
請求項10に記載の方法。
【請求項１４】
前記不明瞭なタイプの発話および前記固有のタイプの発話から選択された少なくとも1つのタイプの発話として、前記受信された口頭発話を特徴づけるステップが、前記ユーザと前記自動アシスタントとの間の以前の対話に基づく、請求項12に記載の方法。
【請求項１５】
1つまたは複数のプロセッサによって実装される方法であって、
ユーザに関連付けられた複数のクライアントデバイスからステータス情報を受信するステップであって、前記ステータス情報が、前記複数のクライアントデバイスのうちの1つまたは複数のクライアントデバイスが進行中アクションを実行中であることを示す、ステップと、
前記複数のクライアントデバイスによって提供された前記ステータス情報を処理するためのサーバデバイスの指定のコロケートクラスタを、前記ステータス情報を受信することに基づいて選択するステップであって、サーバデバイスの前記指定のコロケートクラスタが、サーバデバイスの複数の異なるコロケートクラスタから選択される、ステップと、
前記複数のクライアントデバイスのうちの1つのクライアントデバイスの自動アシスタントインターフェースにおいて前記ユーザからの口頭発話が受信されたことを決定するステップであって、前記自動アシスタントインターフェースが、前記ユーザと前記複数のクライアントデバイスにとってアクセス可能な自動アシスタントとの間の対話を容易にするように構成され、前記口頭発話が、前記自動アシスタントがアクションを実行することを求める要求を具備する、ステップと、
前記口頭発話が前記クライアントデバイスの前記自動アシスタントインターフェースにおいて前記ユーザから受信されたという決定に応答して、前記クライアントデバイスにおいて生成されたオーディオデータをサーバデバイスの前記指定のコロケートクラスタに提供させるステップであって、前記オーディオデータが、前記口頭発話の少なくとも一部分をキャプチャする、ステップと、
前記クライアントデバイスがサーバデバイスの前記指定のコロケートクラスタに前記オーディオデータを提供することに基づいて、前記ユーザによって要求された前記アクションを実行するための、前記複数のクライアントデバイスのうちの指定のクライアントデバイスを、サーバデバイスの前記指定のコロケートクラスタに識別させるステップと、
前記ユーザによって要求された前記アクションを前記指定のクライアントデバイスに実行させるステップと
を備える方法。
【請求項１６】
前記ステータス情報の受信に応答して、ロケーション内での様々なクライアントデバイスの配置を示す記憶済みのデバイストポロジーにアクセスするステップであって、前記複数のクライアントデバイスが、前記様々なクライアントデバイスのサブセットである、ステップと、
前記ユーザが前記自動アシスタントインターフェースに前記口頭発話を提供した、前記ロケーションの共通の部屋の中に、前記複数のクライアントデバイスがあることを決定するステップと
をさらに備える、請求項15に記載の方法。
【請求項１７】
前記アクションが特定の出力モダリティに対応し、前記方法が、
前記ロケーションの前記共通の部屋の中にある前記複数のクライアントデバイスが、前記要求によって識別される前記アクションに対応する前記特定の出力モダリティを含むことを決定するステップをさらに備える、
請求項16に記載の方法。
【請求項１８】
前記複数のクライアントデバイスのうちの2つ以上のクライアントデバイスが、異なるユーザアカウントに関連付けられ、前記2つ以上のクライアントデバイスが、前記2つ以上のクライアントデバイスが異なるユーザアカウントに関連付けられていることに基づいて、サーバデバイスの前記複数の異なるコロケートクラスタと通信するように構成される、請求項15に記載の方法。
【請求項１９】
それぞれのクライアントデバイスによって提供される特定のステータス情報が、前記複数のクライアントデバイスのうちの前記それぞれのクライアントデバイスが進行中アクションを実行中であるかどうかを示し、前記それぞれのクライアントデバイスが前記進行中アクションを実行中であるとき、前記ステータス情報が、前記進行中アクションを実行するために前記それぞれのクライアントデバイスのモダリティが採用されることを示す、請求項15に記載の方法。
【請求項２０】
前記指定のクライアントデバイスが、前記要求によって識別された前記アクションと前記複数のクライアントデバイスによって提供された前記ステータス情報との間の対応を示す、記憶済みのトレーニングデータに従って選択される、請求項19に記載の方法。
【請求項２１】
デバイスであって、
ユーザが自動アシスタントと通信することを促進するために受信される口頭発話の受信に応答して信号を生成するように構成された、オーディオインターフェースであって、前記口頭発話が、前記オーディオインターフェースと他のクライアントデバイスの別のオーディオインターフェースの両方において受信され、前記他のクライアントデバイスが、前記自動アシスタントにとってアクセス可能な複数のクライアントデバイスのうちの1つであるクライアントデバイスである、オーディオインターフェースと、
同様に前記口頭発話を受信した前記他のクライアントデバイスからの通信を受信するように構成された、ネットワークインターフェースであって、前記他のクライアントデバイスによって提供される前記通信が、前記他のクライアントデバイスに関連付けられたコンテキストを特徴づける第1のコンテキストデータを含む、ネットワークインターフェースと、
前記オーディオインターフェースにおいて受信中の前記口頭発話に関連付けられた別のコンテキストを特徴づける第2のコンテキストデータを記憶するように構成されたメモリと、
動作を実行するように構成された1つまたは複数のプロセッサとを備え、前記動作が、
前記複数のクライアントデバイスに対するランク付けを決定することであって、前記ランク付けが、少なくとも前記第1のコンテキストデータに基づく第1のランクおよび前記第2のコンテキストデータに基づく第2のランクを含み、前記ランク付けの各ランクが、前記自動アシスタントを介して前記口頭発話に応答すべき、前記複数のクライアントデバイスのうちの特定のデバイスの選択に少なくとも部分的に影響を及ぼすことと、
前記複数のクライアントデバイスのうちの候補デバイスが、前記ランク付けの他のランクと区別される対応するランクを有するとき、
前記ランク付けの前記対応するランクに少なくとも基づいて、前記自動アシスタントに、前記候補デバイスを介して前記口頭発話に応答させることとを含む、
デバイス。
【請求項２２】
前記ネットワークインターフェースが、前記オーディオインターフェースにおいて前記口頭発話が受信される前に前記他のクライアントデバイスからの前記通信を受信するようにさらに構成される、請求項21に記載のデバイス。
【請求項２３】
前記オーディオインターフェースにおいて前記口頭発話が受信される前に、または前記オーディオインターフェースにおいて前記口頭発話が受信されている間に、前記1つまたは複数のプロセッサによって前記ランク付けを決定することが実行される、請求項22に記載のデバイス。
【請求項２４】
前記1つまたは複数のプロセッサが、
前記オーディオインターフェースにおいて前記口頭発話が受信される前に前記第2のコンテキストデータを生成することと、
前記ネットワークインターフェースに、別個の通信を前記他のクライアントデバイスに提供させることとを含む動作を実行するようにさらに構成され、前記他のクライアントデバイスが、前記他のクライアントデバイスが前記自動アシスタントを介して前記口頭発話に応答する任務を負うかどうかを決定するように構成される、
請求項21に記載のデバイス。
【請求項２５】
前記1つまたは複数のプロセッサが、
前記ネットワークインターフェースと通信しているが前記口頭発話を確認応答していない別個のデバイスへ、別個の通信を送ることと、
前記別個のデバイスが前記自動アシスタントを介して前記口頭発話に応答する任務を負うかどうかを決定することとを含む動作を実行するようにさらに構成される、
請求項21に記載のデバイス。
【請求項２６】
前記1つまたは複数のプロセッサが、
前記別個のデバイスの動作ステータスを特徴づける第3のコンテキストデータを生成することを含む動作を実行するようにさらに構成される、
請求項25に記載のデバイス。
【請求項２７】
前記1つまたは複数のプロセッサが、
前記複数のクライアントデバイスのうちの2つ以上のクライアントデバイスが、前記2つ以上のクライアントデバイス間の引き分けランク付けを引き起こすそれぞれのランクを有するとき、
前記2つ以上のクライアントデバイスの特色を特徴づける補足コンテキストデータを決定することと、
そのランク付けが前記複数のクライアントデバイスのうちの他のクライアントデバイスのランク付けと区別される、それぞれのクライアントデバイスに有利なように、前記補足コンテキストデータに基づいて前記引き分けランク付けを解決させることとを含む動作を実行するようにさらに構成される、
請求項21に記載のデバイス。
【請求項２８】
1つまたは複数のプロセッサによって実装される方法であって、
第1のクライアントデバイスにおいて口頭発話が受信されていることを決定するステップであって、前記口頭発話が、前記第1のクライアントデバイスのアシスタントインターフェースを介してアクセス可能な自動アシスタントと通信することを促進するためにユーザによって提供され、前記口頭発話が、前記第1のクライアントデバイスを含む複数のクライアントデバイスによって受信される、ステップと、
第2のクライアントデバイスによる前記口頭発話の受信に応答して、前記口頭発話を受信した前記第2のクライアントデバイスから通信を受信するステップであって、前記第2のクライアントデバイスによって提供される前記通信が、前記第2のクライアントデバイスに関連付けられたコンテキストを特徴づける第1のコンテキストデータを含む、ステップと、
前記第1のクライアントデバイスに関連付けられた別のコンテキストを特徴づける第2のコンテキストデータを決定するステップと、
前記複数のクライアントデバイスに対するランク付けを決定するステップであって、前記ランク付けが、少なくとも前記第1のコンテキストデータに基づく第1のランクおよび前記第2のコンテキストデータに基づく第2のランクを含み、前記ランク付けの各ランクが、前記口頭発話に応答すべき、前記複数のクライアントデバイスのうちの特定のクライアントデバイスの選択に少なくとも部分的に影響を及ぼす、ステップと、
前記複数のクライアントデバイスのうちの候補クライアントデバイスが、前記ランク付けの他のランクと区別される対応するランクを有するとき、
前記ランク付けの前記対応するランクに少なくとも基づいて、前記自動アシスタントに、前記候補クライアントデバイスを介して前記口頭発話に応答させるステップと
を備える方法。
【請求項２９】
前記口頭発話が前記第1のクライアントデバイスによって受信される前に、前記通信が前記第2のクライアントデバイスから受信される、請求項28に記載の方法。
【請求項３０】
前記第1のクライアントデバイスにおいて前記口頭発話が受信される前に、または前記第1のクライアントデバイスにおいて前記口頭発話が受信されている間に、前記ランク付けを決定するステップが実行される、請求項29に記載の方法。
【請求項３１】
オーディオインターフェースにおいて前記口頭発話が受信される前に前記第2のコンテキストデータを生成するステップと、
ネットワークインターフェースに、別個の通信を他のデバイスに提供させるステップとをさらに備え、前記他のデバイスが、前記他のデバイスが前記自動アシスタントを介して前記口頭発話に応答する任務を負うかどうかを決定するように構成される、
請求項28に記載の方法。
【請求項３２】
前記第1のクライアントデバイスと通信しているが前記口頭発話を確認応答していない別個のデバイスへ、別個の通信を送るステップと、
前記別個のデバイスが前記自動アシスタントを介して前記口頭発話に応答する任務を負うかどうかを決定するステップと
をさらに備える、請求項28に記載の方法。
【請求項３３】
前記別個のデバイスの動作ステータスを特徴づける第3のコンテキストデータを生成するステップ
をさらに備える、請求項32に記載の方法。
【請求項３４】
前記複数のクライアントデバイスのうちの2つ以上のクライアントデバイスが、前記2つ以上のクライアントデバイス間での引き分けランク付けを引き起こすそれぞれのランクを有するとき、
前記2つ以上のクライアントデバイスの特色を特徴づける補足コンテキストデータを決定するステップと、
そのランク付けが前記複数のクライアントデバイスのうちの他のクライアントデバイスのランク付けと区別される、それぞれのクライアントデバイスに有利なように、前記補足コンテキストデータに基づいて前記引き分けランクを解決させるステップと
をさらに備える、請求項28に記載の方法。
【請求項３５】
1つまたは複数のプロセッサによって実装される方法であって、
複数の動的規制をデータベースの中に記憶するステップであって、各動的規制が、ユーザコマンドに関連付けられ、前記ユーザコマンドに対応するアクションを実行すべき制御される複数のデバイスの各々と、ユーザ、および/または前記制御されるそれぞれのデバイスを含む前記複数のクライアントデバイスのうちの少なくとも1つに対する、コンテキスト情報との間の対応を指定する、ステップと、
複数のクライアントデバイスのうちの1つからのユーザコマンドを表す第1の入力を受信すること、
前記受信されたユーザコマンドに対応する前記複数の記憶済みの動的規制のうちの1つを識別すること、
前記ユーザ、および/または前記制御されるデバイスを含む前記複数のクライアントデバイスのうちの少なくとも1つに対する、コンテキスト情報を要求および取得すること、
前記記憶済みの動的規制に関連付けられた前記コンテキスト情報に基づいて、前記複数のクライアントデバイスのうちの1つのクライアントデバイスを前記制御されるデバイスとして識別すること、
前記識別されるクライアントデバイスによって、前記識別される動的規制の実行を開始すること、
前記複数のクライアントデバイスのうちの前記1つから前記ユーザコマンドの更新を表す第2の入力を受信することであって、補正が、制御されるべき更新済みのクライアントデバイスを指定する、受信すること、ならびに
前記更新済みのクライアントデバイスと前記取得されるコンテキスト情報との間の対応を指定するように、前記データベースの中の前記記憶済みの動的規制を更新することによって、
前記記憶済みの複数の規制をトレーニングするステップと、
前記更新済みのクライアントデバイスによって、前記識別される動的規制の実行を開始するステップと
を備える方法。
【国際調査報告】
2021533400.tif 000014
2021533400.tif 000015
2021533400.tif 000016