(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-08-14
(54)【発明の名称】第2のデバイス、たとえばTVを制御するための第1のデバイス上の仮想遠隔制御
(51)【国際特許分類】
H04N 21/436 20110101AFI20240806BHJP
H04L 12/28 20060101ALI20240806BHJP
G06F 3/048 20130101ALI20240806BHJP
【FI】
H04N21/436
H04L12/28 200Z
G06F3/048
【審査請求】有
【予備審査請求】未請求
(21)【出願番号】P 2023579834
(86)(22)【出願日】2021-07-02
(85)【翻訳文提出日】2024-02-21
(86)【国際出願番号】 US2021040336
(87)【国際公開番号】W WO2023277928
(87)【国際公開日】2023-01-05
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
(71)【出願人】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ボ・ワン
(72)【発明者】
【氏名】マニュエル・エンジェル・ウレノ
【テーマコード(参考)】
5C164
5E555
5K033
【Fターム(参考)】
5C164FA17
5C164TA07S
5C164UA52S
5C164UB71P
5E555AA16
5E555BA04
5E555BB04
5E555BC04
5E555CB73
5E555FA00
5K033BA01
5K033DA01
5K033EC01
(57)【要約】
デジタルアシスタントデバイス間の仮想遠隔制御が提供される。第1のコンピューティングデバイスが、第2のコンピューティングデバイスを検出し、第2のコンピューティングデバイスの能力を判定する。第1のコンピューティングデバイスは、第1のコンピューティングデバイスが第2のコンピューティングデバイスを制御可能であることを示すプロンプトを生成する。第1のコンピューティングデバイスは、プロンプトに応答して、第2のコンピューティングデバイスを制御する命令を受信する。第1のコンピューティングデバイスは、第2のコンピューティングデバイスとの通信チャネルを確立する。第1のコンピューティングデバイスは、第1のコンピューティングデバイス上の仮想コントローラを呼び出す。仮想コントローラは、第1のコンピューティングデバイスによって受信されたクエリを、第2のコンピューティングデバイスを制御するために通信チャネルを介して第2のコンピューティングデバイスに転送する。
【特許請求の範囲】
【請求項1】
デバイスの遠隔制御のためのシステムであって、
1つまたは複数のプロセッサおよびメモリを含む第1のコンピューティングデバイスであって、
前記第1のコンピューティングデバイスの範囲内にある第2のコンピューティングデバイスを検出し、
前記第2のコンピューティングデバイスの検出に応答して、前記第2のコンピューティングデバイスの能力を判定し、
前記第2のコンピューティングデバイスの前記能力に基づいて、前記第1のコンピューティングデバイスが前記第2のコンピューティングデバイスを制御可能であることを示すプロンプトを生成し、
前記プロンプトに応答して、前記第2のコンピューティングデバイスを制御する命令を受信し、
前記命令に応答して、前記第2のコンピューティングデバイスとの通信チャネルを確立し、
前記第1のコンピューティングデバイスによって受信されたクエリを、前記第2のコンピューティングデバイスを制御するために前記通信チャネルを介して前記第2のコンピューティングデバイスに転送するために、前記第1のコンピューティングデバイス上の仮想コントローラを呼び出すための、
第1のコンピューティングデバイスを含む、システム。
【請求項2】
前記第2のコンピューティングデバイスが、前記第2のコンピューティングデバイスについての情報をブロードキャストし、前記システムが、
前記第2のコンピューティングデバイスによってブロードキャストされた前記情報を受信し、
前記情報に基づいて前記第2のコンピューティングデバイスの前記能力を判定するための前記第1のコンピューティングデバイスを含む請求項1に記載のシステム。
【請求項3】
前記通信チャネルを確立するために、1つまたは複数のセキュリティクレデンシャルを使用して前記第2のコンピューティングデバイスとのハンドシェイクプロセスを実行するための前記第1のコンピューティングデバイスを含む請求項1または2に記載のシステム。
【請求項4】
前記仮想コントローラが前記通信チャネルを介してクエリを転送するためにアクティブであることを示すアイコンを前記第1のコンピューティングデバイスのディスプレイデバイス上に維持するための前記第1のコンピューティングデバイスを含む請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記通信チャネルの確立に応答して、前記第1のコンピューティングデバイスに関連するプロファイルにアクセスするための前記第2のコンピューティングデバイスを含む請求項1から4のいずれか一項に記載のシステム。
【請求項6】
前記第2のコンピューティングデバイスから切断し、前記通信チャネルを終了するための前記第1のコンピューティングデバイスであって、前記第2のコンピューティングデバイスが、前記通信チャネルの確立後に前記第1のコンピューティングデバイスから受信されたすべてのプロファイル情報を削除する、前記第1のコンピューティングデバイスを含む請求項1から5のいずれか一項に記載のシステム。
【請求項7】
ワイヤレスプロトコル上の双方向通信レイヤとして前記通信チャネルを確立するための前記第1のコンピューティングデバイスを含む請求項1から6のいずれか一項に記載のシステム。
【請求項8】
WebSocketプロトコルで前記第2のコンピューティングデバイスとの前記通信チャネルを確立するための前記第1のコンピューティングデバイスを含む請求項1から7のいずれか一項に記載のシステム。
【請求項9】
前記第1のコンピューティングデバイスから転送されたクエリを受信し、前記第2のコンピューティングデバイスの機能を制御するために前記クエリを処理するための前記第2のコンピューティングデバイスを含む請求項1から8のいずれか一項に記載のシステム。
【請求項10】
前記第1のコンピューティングデバイスのマイクロフォンを介して、クエリを含むオーディオ入力を検出し、前記オーディオ入力を前記通信チャネルを介して前記第2のコンピューティングデバイスに転送するための前記第1のコンピューティングデバイスと、
前記オーディオ入力を受信し、前記オーディオ入力を解析して前記クエリを特定し、前記第2のコンピューティングデバイスの機能を制御するために前記クエリを処理するための前記第2のコンピューティングデバイスとを含む請求項1から9のいずれか一項に記載のシステム。
【請求項11】
前記第1のコンピューティングデバイスおよび前記第2のコンピューティングデバイスから離れたデータ処理システムにコンテンツの要求を送信するための前記第2のコンピューティングデバイスと、
前記データ処理システムであって、
コンテンツの前記要求に応答して、前記要求の前記コンテンツとは異なる補足デジタルコンテンツの第2の要求を生成し、
補足デジタルコンテンツの前記第2の要求に応答して、前記第1のコンピューティングデバイスと前記第2のコンピューティングデバイスとの間の前記通信チャネルがアクティブであることに応答して前記第1のコンピューティングデバイスに関連するプロファイル情報に基づいて、前記第2の要求に応答する補足コンテンツアイテムを選択し、
前記第2のコンピューティングデバイス上に表示するために、前記要求の前記コンテンツとは異なる前記補足コンテンツアイテムを提供するための、前記データ処理システムと、を含む請求項1から10のいずれか一項に記載のシステム。
【請求項12】
デバイスの遠隔制御のための方法であって、
1つまたは複数のプロセッサおよびメモリを含む第1のコンピューティングデバイスによって、前記第1のコンピューティングデバイスの範囲内にある第2のコンピューティングデバイスを検出するステップと、
前記第2のコンピューティングデバイスの検出に応答して前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスの能力を判定するステップと、
前記第2のコンピューティングデバイスの前記能力に基づいて前記第1のコンピューティングデバイスによって、前記第1のコンピューティングデバイスが前記第2のコンピューティングデバイスを制御可能であることを示すプロンプトを生成するステップと、
前記プロンプトに応答して前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスを制御する命令を受信するステップと、
前記命令に応答して前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスとの通信チャネルを確立するステップと、
前記第1のコンピューティングデバイスによって受信されたクエリを、前記第2のコンピューティングデバイスを制御するために前記通信チャネルを介して前記第2のコンピューティングデバイスに転送するために、前記第1のコンピューティングデバイス上の仮想コントローラを前記第1のコンピューティングデバイスによって呼び出すステップとを含む、方法。
【請求項13】
前記第2のコンピューティングデバイスが、前記第2のコンピューティングデバイスについての情報をブロードキャストし、前記方法が、
前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスによってブロードキャストされた前記情報を受信するステップと、
前記第1のコンピューティングデバイスによって、前記情報に基づいて前記第2のコンピューティングデバイスの前記能力を判定するステップとを含む請求項12に記載の方法。
【請求項14】
前記第1のコンピューティングデバイスによって、前記通信チャネルを確立するために、1つまたは複数のセキュリティクレデンシャルを使用して前記第2のコンピューティングデバイスとのハンドシェイクプロセスを実行するステップを含む請求項12または13に記載の方法。
【請求項15】
前記第1のコンピューティングデバイスによって、前記仮想コントローラが前記通信チャネルを介してクエリを転送するためにアクティブであることを示すアイコンを前記第1のコンピューティングデバイスのディスプレイデバイス上に維持するステップを含む請求項12から14のいずれか一項に記載の方法。
【請求項16】
前記通信チャネルの確立に応答して前記第2のコンピューティングデバイスによって、前記第1のコンピューティングデバイスに関連するプロファイルにアクセスするステップを含む請求項12から15のいずれか一項に記載の方法。
【請求項17】
前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスから切断し、前記通信チャネルを終了するステップであって、前記第2のコンピューティングデバイスが、前記通信チャネルの確立後に前記第1のコンピューティングデバイスから受信されたすべてのプロファイル情報を削除する、ステップを含む請求項12から16のいずれか一項に記載の方法。
【請求項18】
前記第1のコンピューティングデバイスによって、ワイヤレスプロトコル上の双方向通信レイヤとして前記通信チャネルを確立するステップを含む請求項12から17のいずれか一項に記載の方法。
【請求項19】
前記第1のコンピューティングデバイスによって、WebSocketプロトコルで前記第2のコンピューティングデバイスとの前記通信チャネルを確立するステップを含む請求項12から18のいずれか一項に記載の方法。
【請求項20】
前記第2のコンピューティングデバイスによって、前記第1のコンピューティングデバイスから転送されたクエリ受信し、前記第2のコンピューティングデバイスの機能を制御するために前記クエリを処理するステップを含む請求項12から19のいずれか一項に記載の方法。
【発明の詳細な説明】
【背景技術】
【0001】
テレビなどのコンピューティングデバイスは、コンピューティングデバイス専用のリモコンから命令を受信し得る。しかし、コンピューティングデバイスまたはリモコンは、限られた機能または限られたインターフェースを有する場合がある。
【発明の概要】
【課題を解決するための手段】
【0002】
本開示は、概して、デジタルアシスタントデバイス間の仮想遠隔制御を対象とする。物理的な場所が、複数のコンピューティングデバイスを包含し得るまたは含み得る。コンピューティングデバイスは、それぞれ異なるプログラムを実行して、1つのコンピューティングデバイスが別のコンピューティングデバイスと通信することが難しいかまたは不可能である断片化された(fragmented)サイロのような環境を形成し得る。たとえば、コンピューティングデバイスの各々は、特定のコンピューティングデバイスのためにカスタマイズまたは構成される異なる種類のハードウェアおよびオペレーティングシステムを持ち得る。さらに、どのコンピューティングデバイスがどの能力を有するかを追跡または判定することは困難であり、結果として、芳しくないユーザエクスペリエンスをもたらすか、またはデバイスの能力不足のために特定の機能を効率的に実行することができないようにし得る。たとえば、デジタルアシスタントとともに構成されたスマートテレビまたはモニタが、物理的なリモコンで制御され得る。しかし、リモコンが利用不可能であるか、見つからないか、または機能していない場合、スマートテレビまたはモニタを制御することが難しくなり得る。さらに、スマートテレビまたはモニタは、限られたインターフェースを有するか、または貧弱なユーザインターフェースで構成される場合がある。
【0003】
この技術的解決策のシステムおよび方法は、デジタルアシスタントデバイス間の仮想遠隔制御を提供する。説明のための例においては、スマートウォッチなどのウェアラブルコンピューティングデバイスが、存在信号(presence signal)をブロードキャストしているスマートテレビコンピューティングデバイスの近傍に運ばれ得る。ウェアラブルコンピューティングデバイスは、スマートテレビの存在信号を検出し、それから、スマートテレビの能力を判定することができる。スマートウォッチは、スマートウォッチからスマートテレビを制御する能力を示すアイコンを表示することができる。スマートウォッチは、ユーザからの入力に応答して、ハンドシェイクプロセスを実行してスマートテレビとの通信チャネルを確立し、スマートウォッチ上の仮想コントローラを呼び出すことができる。そして、スマートウォッチは、スマートウォッチのユーザから音声クエリまたはその他の入力を受け取ることができ、それらの音声クエリまたはその他の入力は、処理のためにスマートテレビに転送され得る。スマートテレビは、スマートウォッチからクエリを受信し、あたかもクエリがスマートテレビによって直接受信されたかのようにクエリを処理し、それによって、スマートウォッチを介したスマートテレビのシームレスな仮想的制御を提供することができる。スマートウォッチがスマートテレビとペアリングされている間、スマートウォッチは、アクティブな通信チャネルおよび仮想コントローラを示すために、スマートウォッチ上に持続的アイコンを表示することができる。
【0004】
少なくとも1つの態様は、デバイスの動的な遠隔制御のためのシステムを対象とする。システムは、1つまたは複数のプロセッサおよびメモリを有する第1のコンピューティングデバイスを含み得る。第1のコンピューティングデバイスは、第1のコンピューティングデバイスの範囲内にある第2のコンピューティングデバイスを検出することができる。第1のコンピューティングデバイスは、第2のコンピューティングデバイスの検出に応答して、第2のコンピューティングデバイスの能力を判定することができる。第1のコンピューティングデバイスは、第2のコンピューティングデバイスの能力に基づいて、第1のコンピューティングデバイスが第2のコンピューティングデバイスを制御可能であることを示すプロンプトを生成することができる。第1のコンピューティングデバイスは、プロンプトに応答して、第2のコンピューティングデバイスを制御する命令を受信することができる。第1のコンピューティングデバイスは、命令に応答して、第2のコンピューティングデバイスとの通信チャネルを確立することができる。第1のコンピューティングデバイスは、第1のコンピューティングデバイス上の仮想コントローラを呼び出すことができる。仮想コントローラは、第1のコンピューティングデバイスによって受信されたクエリを、第2のコンピューティングデバイスを制御するために通信チャネルを介して第2のコンピューティングデバイスに転送することができる。
【0005】
少なくとも1つの態様は、デバイスの動的な遠隔制御の方法を対象とする。方法は、1つまたは複数のプロセッサおよびメモリを有する第1のコンピューティングデバイスによって実行され得る。方法は、第1のコンピューティングデバイスが第1のコンピューティングデバイスの範囲内にある第2のコンピューティングデバイスを検出するステップを含み得る。方法は、第1のコンピューティングデバイスが、第2のコンピューティングデバイスの検出に応答して、第2のコンピューティングデバイスの能力を判定するステップを含み得る。方法は、第1のコンピューティングデバイスが、第2のコンピューティングデバイスの能力に基づいて、第1のコンピューティングデバイスが第2のコンピューティングデバイスを制御可能であることを示すプロンプトを生成するステップを含み得る。方法は、第1のコンピューティングデバイスが、プロンプトに応答して、第2のコンピューティングデバイスを制御する命令を受信するステップを含み得る。方法は、第1のコンピューティングデバイスが、命令に応答して、第2のコンピューティングデバイスとの通信チャネルを確立するステップを含み得る。方法は、第1のコンピューティングデバイスが第1のコンピューティングデバイス上の仮想コントローラを呼び出すステップを含み得る。仮想コントローラは、第1のコンピューティングデバイスによって受信されたクエリを、第2のコンピューティングデバイスを制御するために通信チャネルを介して第2のコンピューティングデバイスに転送することができる。
【0006】
これらのおよびその他の態様および実装が、下で詳細に検討される。上述の情報および下の詳細な説明は、様々な態様および実装の説明のための例を含み、特許請求される態様および実装の本質ならびに特徴を理解するための概要または枠組みを提供する。図面は、様々な態様および実装を例示し、これらのさらなる理解をもたらし、本明細書の一部に組み込まれ、本明細書の一部を構成する。
【0007】
添付の図面は、正しい縮尺で描かれるように意図されていない。様々な図面における同様の参照番号および参照指示は、同様の要素を示す。明瞭にする目的で、あらゆる図面においてあらゆる構成要素が符号付けされるとは限らない場合がある。
【図面の簡単な説明】
【0008】
【
図1】実装によるデジタルアシスタントデバイス間の仮想遠隔制御のための例示的なシステムの図である。
【
図2】実装によるデジタルアシスタントデバイス間の仮想遠隔制御のためのシステムの例示的な動作の図である。
【
図3】実装によるデジタルアシスタントデバイス間の仮想遠隔制御の例示的な方法の図である。
【
図4】たとえば、
図1および
図2に描かれたシステムならびに
図3に描かれた方法を含む、本明細書において説明され、図示されるシステムおよび方法の要素を実装するために使用され得るコンピュータシステムのためのアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0009】
以下は、デジタルアシスタントデバイス間の仮想遠隔制御の方法、装置、およびシステムに関連する様々な概念ならびにそれらの方法、装置、およびシステムの実装のより詳細な説明である。上で導入され、下でより詳細に検討される様々な概念は、多数の方法のいずれかで実装されてよい。
【0010】
この技術的解決策は、概して、デジタルアシスタントデバイス間の仮想遠隔制御を対象とする。たとえば、デジタルアシスタントは、世界中で10億台を超えるコンピューティングデバイスにおいて利用可能である。しかし、これらのコンピューティングデバイスは、様々なハードウェアおよびソフトウェアを含み、結果として、デバイス間の大きな断片化をもたらし、デバイスが実行可能な機能を実行するためにデバイス間で効果的に通信することができないようにする。したがって、この技術的解決策は、あたかもユーザがターゲットデバイスの物理的なリモコン、タッチ、またはその他のデフォルトのインターフェースでターゲットデバイスと物理的に直接インタラクションしたかのように、同じユーザインターフェースおよびユーザエクスペリエンスを提供する方法で、ユーザのパーソナルデバイス(たとえば、モバイルデバイス、電話、腕時計、スピーカ、またはヘッドセット)でその他のデバイス(たとえば、テレビ、スマートディスプレイ、自動車、またはモノのインターネット(「IOT」)デバイス)をシームレスに制御するように設計され、構築され、動作可能な仮想コントローラを提供することができる。
【0011】
様々なアクションシーケンスまたは重要なユーザジャーニーを実行するためにクロスデバイス(cross device)制御を提供することは、困難であり得る。クロスデバイス制御のために構成されている重要なユーザジャーニーの予め定義された限られたセットが存在する場合がある。ターゲットデバイスがアクションのセットを実行するように構成されることが可能である一方、それらのアクションの小さなサブセットだけが、ターゲットデバイスとは異なるソースデバイスによってターゲットデバイス上で実行され得る。たとえば、ターゲットデバイスは、以下のクエリ、すなわち、アクション映画を見せて、今日の天気を見せて、私の写真を見せて、Movie_Nameを再生して、一時停止/再開して、私のTVをつけてというクエリを遂行することができる場合がある。しかし、ターゲットデバイスは、クエリが最初に異なるデバイス(たとえば、ソースデバイス)によって受信され、それから、ソースデバイスがターゲットデバイスを制御しようと試みるときには、クエリのサブセットを遂行することのみ可能である場合がある。たとえば、ソースデバイスは、ターゲットデバイス上で以下の機能、すなわち、私のTVでアクション映画を見せて、私のTVで今日の天気を見せて、および私のTVで私の写真を見せてという機能を実行することができない場合がある。さらに、このクロスデバイス制御は、適切に機能するために追加的なまたは過剰な入力を必要とする場合がある。たとえば、ユーザは、各クエリと一緒に、ターゲットデバイスの名前を入力することを求められる場合がある。これは、ユーザが追加的な入力を提供することを要求するだけでなく、ソースコンピューティングデバイスまたはその他のコンピューティングデバイスが、クエリを解析し、ターゲットデバイスの名前を特定するために追加的な自然言語処理またはその他の処理を実行することも要求し得る。さらに、クロスデバイスおよびターゲットデバイスは、サイロとして構築されるので、同じまたは同様の機能を実行する重複した冗長なスタックを持ち、それによって、スタックを不必要に複雑にし、優れたユーザエクスペリエンスを提供することなく、または優れたユーザエクスペリエンスを損なって、テクノロジー負債(technology debt)を蓄積し得る。
【0012】
したがって、この技術的解決策のシステムおよび方法は、シームレスなクロスデバイス制御を提供することができる仮想コントローラを提供し得る。この技術的解決策の仮想コントローラは、どのデバイスが仮想コントローラが呼び出されるソースデバイスであるかに関わらず、ターゲットデバイス上で同じユーザエクスペリエンスを提供することができる。仮想コントローラは、ユーザが新しいユーザインターフェースを学ぶことを要求することなく、その他のターゲットデバイスにアクセスするようにユーザを案内する先回りしたユーザインターフェースを提供することにより、たやすく使用することができる。この技術的解決策の仮想コントローラは、複数のデジタルサーフェス(digital surface)およびターゲットデバイスにまたがって同じ体験を可能にする単一の統一された水平スタック(horizontal stack)を利用することができる。
【0013】
図1は、実装による、デジタルアシスタントデバイス間の仮想遠隔制御のための例示的なシステム100を示す。システム100は、コンテンツ選択インフラストラクチャを含み得る。システム100は、データ処理システム102を含み得る。データ処理システム102は、ネットワーク105を介して、ソースコンピューティングデバイス112、ターゲットコンピューティングデバイス132、または補足デジタルコンテンツプロバイダデバイス144のうちの1つまたは複数と通信することができる。ネットワーク105は、インターネット、ローカルエリアネットワーク、広域ネットワーク、メトロエリアネットワーク、またはその他のエリアネットワークなどのコンピュータネットワーク、イントラネット、衛星ネットワーク、および音声またはデータモバイル電話ネットワークなどのその他の通信ネットワークを含み得る。ネットワーク105は、少なくとも1つのソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132上で提供されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために使用され得る。ソースコンピューティングデバイス112は、たとえば、ラップトップ、デスクトップ、タブレット、デジタルアシスタントデバイス、スマートフォン、モバイル電気通信デバイス、ポータブルコンピュータ、スマートウォッチ、ヘッドセット、またはスピーカを含み得る。ターゲットコンピューティングデバイス132は、たとえば、テレビ、スマートディスプレイ、自動車ユニット、またはネットワーク接続デバイス(たとえば、モノのインターネット(「IoT」)デバイス)を含み得る。たとえば、ネットワーク105を介して、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132のユーザは、補足デジタルコンテンツプロバイダデバイス144によって提供される情報またはデータにアクセスすることができる。場合によっては、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132は、ディスプレイを含む場合もまたは含まない場合もあり、たとえば、コンピューティングデバイスは、マイクロフォンおよびスピーカなどの限られた種類のユーザインターフェースを含む場合がある。場合によっては、コンピューティングデバイス112または132の主なユーザインターフェースは、マイクロフォンおよびスピーカ、または音声インターフェースであることがある。場合によっては、コンピューティングデバイス112は、ソースコンピューティングデバイス112に結合されたディスプレイデバイス122を含み、コンピューティングデバイス112の主なユーザインターフェースは、ディスプレイデバイス122を利用することができる。ターゲットコンピューティングデバイス132は、ディスプレイデバイスまたはスピーカなどの1つまたは複数の出力インターフェースを含み得る。
【0014】
ソースコンピューティングデバイス112は、ユーザによって使用されている、またはユーザに所有されているコンピューティングデバイスを指し得る。ソースコンピューティングデバイス112は、ウェアラブルデバイスまたはモバイルデバイスであることが可能である。ソースコンピューティングデバイス112は、ユーザがある場所から別の場所に動くまたは移動するとき、ユーザと一緒の位置にあることが可能である。ソースコンピューティングデバイス112は、据え置き型デバイスまたは特定の期間同じ場所に留まるデバイスであることが可能である。ターゲットコンピューティングデバイス132は、住宅、住居、家、集合住宅、コンドミニアムなどの私的な場に置かれるコンピューティングデバイスまたはクライアントデバイスを指し得る。ターゲットコンピューティングデバイス132は、ホテル、オフィス、レストラン、小売店、モール、または公園などの公共の場に置かれることが可能である。
【0015】
ソースコンピューティングデバイス112は、クロスデバイスと呼ばれ得る。ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132を制御するためにユーザがインターフェースを取るデバイスを指し得る。ターゲットコンピューティングデバイス132は、ソースコンピューティングデバイス112によって制御されているデバイスを指し得る。
【0016】
ネットワーク105は、表示ネットワーク(display network)、たとえば、コンテンツ掲載または検索エンジン結果システムに関連付けられるか、またはサードパーティデジタルコンポーネントをデジタルコンポーネント掲載キャンペーン(digital component placement campaign)の一部として含むのにふさわしいインターネット上で利用可能な情報リソースのサブセットを含むかまたは構成することが可能である。ネットワーク105は、ソースクライアントコンピューティングデバイス112またはターゲットコンピューティングデバイス132によって提供されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするためにデータ処理システム102によって使用され得る。たとえば、ネットワーク105を介して、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132のユーザは、補足デジタルコンテンツプロバイダデバイス144によって提供される情報またはデータにアクセスすることができる。
【0017】
ネットワーク105は、任意の種類または形態のネットワークであってよく、以下、すなわち、ポイントツーポイントネットワーク、ブロードキャストネットワーク、広域ネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ(Synchronous Digital Hierarchy))ネットワーク、ワイヤレスネットワーク、および有線ネットワークのいずれかを含んでよい。ネットワーク105は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含んでよい。ネットワーク105のトポロジーは、バス型、スター型、またはリング型ネットワークトポロジーを含んでよい。ネットワークは、アドバンストモバイル電話プロトコル(「AMPS: advanced mobile phone protocol」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA」)、移動体通信用グローバルシステム(「GSM: global system for mobile communication」)、汎用パケット無線サービス(「GPRS」)、またはユニバーサル移動体通信システム(「UMTS」)を含むモバイルデバイスの間で通信するために使用される任意の1つのプロトコルまたは複数のプロトコルを使用するモバイル電話ネットワークを含んでよい。異なる種類のデータが、異なるプロトコルによって送信される場合があり、または、同じ種類のデータが、異なるプロトコルによって送信される場合がある。
【0018】
システム100は、少なくとも1つのデータ処理システム102を含み得る。データ処理システム102は、たとえば、ネットワーク105を介してソースコンピューティングデバイス112、ターゲットコンピューティングデバイス132、または補足デジタルコンテンツプロバイダデバイス144(もしくはサードパーティコンテンツプロバイダデバイス、コンテンツプロバイダデバイス)と通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。データ処理システム102は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、データ処理システム102は、少なくとも1つのデータセンターに置かれた複数の計算リソースまたはサーバを含み得る。データ処理システム102は、複数の論理的にグループ分けされたサーバを含み、分散型コンピューティング技術を促進することができる。サーバの論理的グループは、データセンター、サーバファーム、またはマシンファームと呼ばれる場合がある。また、サーバは、地理的に散らされ得る。データセンターまたはマシンファームは、単一のエンティティとして管理される場合があり、またはマシンファームは、複数のマシンファームを含むことが可能である。各マシンファーム内のサーバは、異種であることができる--サーバまたはマシンのうちの1つまたは複数が、1つまたは複数の種類のオペレーティングシステムプラットフォームによって動作することができる。
【0019】
マシンファーム内のサーバは、関連するストレージシステムと一緒に高密度ラックシステムに収容され、エンタープライズデータセンターに置かれ得る。たとえば、このようにしてサーバをまとめることは、サーバおよび高性能ストレージシステムを局所的な高性能ネットワーク上に置くことによってシステムの管理の容易性、データセキュリティ、システムの物理的セキュリティ、およびシステムの性能を改善する可能性がある。サーバおよびストレージシステムを含み、それらを高度なシステム管理ツールに結合するデータ処理システム102のコンポーネントのすべてまたは一部の集中化は、電力および処理の要件を下げ、帯域幅の使用を削減する、サーバリソースのより効率的な使用を可能にする。
【0020】
システム100は、補足デジタルコンテンツプロバイダデバイス144またはサービスプロバイダデバイスなどの少なくとも1つのサードパーティデバイスを含むか、そのようなサードパーティデバイスにアクセスするか、または他の方法でそのようなサードパーティデバイスとインタラクションすることができる。補足デジタルコンテンツプロバイダデバイス144またはその他のサービスプロバイダデバイスは、たとえば、ネットワーク105を介してソースコンピューティングデバイス112、データ処理システム102、またはターゲットコンピューティングデバイス132と通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。
【0021】
補足デジタルコンテンツプロバイダデバイス144は、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132によって表示するためのオーディオに基づくデジタルコンポーネントをオーディオ出力デジタルコンポーネントとして提供することができる。デジタルコンポーネントは、サードパーティスポンサーによって提供されるので、スポンサー付きデジタルコンポーネントと呼ばれ得る。デジタルコンポーネントは、「タクシーを呼びましょうか。」と述べる音声に基づくメッセージなどの、物またはサービスの申し出を含み得る。たとえば、補足デジタルコンテンツプロバイダデバイス144は、音声に基づくクエリに応答して提供され得る一連のオーディオデジタルコンポーネントを記憶するためのメモリを含み得る。補足デジタルコンテンツプロバイダデバイス144は、オーディオに基づくデジタルコンポーネント(またはその他のデジタルコンポーネント)をデータ処理システム102に提供することもでき、データ処理システム102において、それらのオーディオに基づくデジタルコンポーネント(またはその他のデジタルコンポーネント)は、データ処理システム102のデータリポジトリに記憶され得る。データ処理システム102は、オーディオデジタルコンポーネントを選択し、オーディオデジタルコンポーネントをソースコンピューティングデバイス112に提供する(または提供するように補足デジタルコンテンツプロバイダデバイス144に命令する)ことができる。オーディオに基づくデジタルコンポーネントは、オーディオのみであることが可能であり、またはテキスト、画像、もしくはビデオデータと組み合わされることが可能である。
【0022】
データ処理システム102は、少なくとも1つの計算リソースまたはサーバを有するコンテンツ掲載システムを含み得る。データ処理システム102は、少なくとも1つのインターフェース104を含むか、少なくとも1つのインターフェース104とインターフェースを取るか、または他の方法で少なくとも1つのインターフェース104と通信することができる。データ処理システム102は、少なくとも1つの自然言語プロセッサ106(もしくは自然言語プロセッサコンポーネント)を含むか、少なくとも1つの自然言語プロセッサ106(もしくは自然言語プロセッサコンポーネント)とインターフェースを取るか、または他の方法で少なくとも1つの自然言語プロセッサ106(もしくは自然言語プロセッサコンポーネント)と通信することができる。インターフェース104または自然言語プロセッサ106は、サーバデジタルアシスタントコンポーネントを形成するかまたはサーバデジタルアシスタントコンポーネントと呼ばれ得る。データ処理システム102は、少なくとも1つのサーバデジタルアシスタント108(もしくはサーバデジタルアシスタントコンポーネント)を含むか、少なくとも1つのサーバデジタルアシスタント108(もしくはサーバデジタルアシスタントコンポーネント)とインターフェースを取るか、または他の方法で少なくとも1つのサーバデジタルアシスタント108(もしくはサーバデジタルアシスタントコンポーネント)と通信することができる。サーバデジタルアシスタント108は、データを提供するか、またはデータを受信するか、またはその他の機能を実行するために、1つもしくは複数の音声に基づくインターフェースまたは様々なデジタルアシスタントデバイスもしくはサーフェスと通信するかまたはインターフェースを取ることができる。データ処理システム102は、少なくとも1つのコンテンツセレクタ110(またはコンテンツセレクタコンポーネント)を含み得る。
【0023】
データ処理システム102、インターフェース104、NLP 106、またはコンテンツセレクタ110は、それぞれ、データ処理システム102のデータリポジトリまたはデータベースと通信するように構成された少なくとも1つの処理ユニット、またはプログラミング可能な論理アレイエンジンなどのその他の論理デバイス、またはモジュールを含み得る。インターフェース104、NLP 106、またはコンテンツセレクタ110は、別々のコンポーネント、単一のコンポーネント、またはデータ処理システム102の一部であることが可能である。システム100およびデータ処理システム102などのそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含み得る。
【0024】
データ処理システム102は、複数のソースコンピューティングデバイス112(またはコンピューティングデバイスもしくはデジタルアシスタントデバイス)あるいはターゲットコンピューティングデバイス132に関連する匿名のコンピュータネットワーク活動情報を取得することができる。ソースコンピューティングデバイス112またはモバイルコンピューティングデバイスのユーザは、ソースコンピューティングデバイス112またはモバイルコンピューティングデバイスに対応するネットワーク活動情報を取得することをデータ処理システム102に肯定的に認可することが可能である。たとえば、データ処理システム102は、1つまたは複数の種類のネットワーク活動情報を取得することに同意するようにソースコンピューティングデバイス112のユーザに促すことができる。ソースコンピューティングデバイス112は、スマートフォン、タブレット、スマートウォッチ、またはウェアラブルデバイスなどのモバイルコンピューティングデバイスを含み得る。ソースコンピューティングデバイス112のユーザのアイデンティティ(identity)は、匿名のままであることができ、ソースコンピューティングデバイス112は、一意の識別子(たとえば、データ処理システムまたはコンピューティングデバイスのユーザによって提供されるユーザまたはコンピューティングデバイスの一意の識別子)に関連付けられ得る。データ処理システム102は、各観測値(observation)を対応する一意の識別子と関連付けることができる。
【0025】
データ処理システム102は、たとえば、データパケットを使用して情報を受信および送信するように設計されたか、構成されたか、構築されたか、または動作可能であるインターフェース104(またはインターフェースコンポーネント)を含み得る。インターフェース104は、ネットワークプロトコルなどの1つまたは複数のプロトコルを使用して情報を受信および送信することができる。インターフェース104は、ハードウェアインターフェース、ソフトウェアインターフェース、有線インターフェース、またはワイヤレスインターフェースを含み得る。インターフェース104は、あるフォーマットから別のフォーマットにデータを変換するかまたはフォーマットすることを容易にし得る。たとえば、インターフェース104は、ソフトウェアコンポーネントなどの様々なコンポーネントの間で通信するための定義を含むアプリケーションプログラミングインターフェースを含み得る。インターフェース104は、ネットワーク105を介してソースコンピューティングデバイス112、補足デジタルコンテンツプロバイダデバイス144、またはターゲットコンピューティングデバイス132のうちの1つまたは複数と通信することができる。
【0026】
データ処理システム102は、入力オーディオ信号をデータ処理システム102のインターフェース104に伝達し、出力ビジュアルまたはオーディオ信号をレンダリングするようにソースクライアントコンピューティングデバイス112またはターゲットコンピューティングデバイス132のコンポーネントを駆動するためのアプリなどの、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132にインストールされたアプリケーション、スクリプト、またはプログラムとインターフェースを取ることができる。データ処理システム102は、オーディオ入力信号を含むかまたは特定するデータパケットまたはその他の信号を受信することができる。
【0027】
データ処理システム102は、自然言語プロセッサ(「NLP」)106を含み得る。たとえば、データ処理システム102は、受信された入力オーディオ信号またはクエリを解析するためにNLP 106を実行するかまたは走らせることができる。たとえば、NLP 106は、人とコンピュータとの間のインタラクションを提供することができる。NLP 106は、自然言語を理解し、データ処理システム102が人間のまたは自然言語入力から意味を導出することを可能にするための技術を用いて構成され得る。NLP 106は、統計的機械学習などの機械学習に基づく技術を含むかまたはそのような技術を用いて構成され得る。NLP 106は、入力オーディオ信号を解析するために決定木、統計モデル、または確率モデルを利用することができる。NLP 106は、たとえば、固有表現(named entity)認識(たとえば、テキストのストリームを与えられて、テキスト内のどのアイテムが人または場所などの固有名詞にマッピングされるか、およびそれぞれのそのような名前の種類が人、場所、または組織などのどれであるのかを決定すること)、自然言語生成(たとえば、コンピュータデータベースからの情報または意味的意図(semantic intent)を理解可能な人間の言語に変換すること)、自然言語理解(たとえば、テキストをコンピュータモジュールが操作することができる一階論理構造などのより整然とした表現に変換すること)、機械翻訳(たとえば、テキストをある人間の言語から別の人間の言語に自動的に翻訳すること)、形態素分割(たとえば、考慮されている言語の言葉の形態または構造の複雑さに基づいて困難であり得る、単語を個々の形態素に分け、形態素のクラスを特定すること)、質問応答(たとえば、特定的であるかまたは自由であることが可能である人間の言語の質問に対する答えを決定すること)、意味処理(たとえば、特定された単語を同様の意味を持つその他の単語に関連付けるために、単語を特定し、その単語の意味を符号化した後に行われ得る処理)などの機能を実行することができる。
【0028】
NLP 106は、入力信号をオーディオ波形の記憶された代表的なセットと比較し、最も近い一致を選択することによって、オーディオ入力信号を認識されたテキストに変換することができる。オーディオ波形のセットは、データ処理システム102がアクセス可能なデータリポジトリまたはその他のデータベースに記憶され得る。代表的な波形が、ユーザの大きなセット全体で生成され、それから、ユーザからのスピーチサンプルによって増強される場合がある。オーディオ信号が認識されたテキストに変換された後、NLP 106は、たとえば、ユーザ全体にわたって訓練することによってまたは手動で指定することによって、データ処理システム102が提供することができるアクションと関連付けられる単語にテキストをマッチングする。NLP 106の態様または機能は、データ処理システム102、ソースコンピューティングデバイス112、またはターゲットコンピューティングデバイス132によって実行され得る。たとえば、NLPコンポーネントは、入力オーディオ信号をテキストに変換し、さらなる自然言語処理のためにテキストをデータパケットによってデータ処理システム102に送信する態様を実行するために、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132上で実行され得る。
【0029】
オーディオ入力信号は、ソースクライアントコンピューティングデバイス112のセンサーまたはトランスデューサ(たとえば、マイクロフォン)によって検出され得る。トランスデューサ、オーディオドライバ、またはその他のコンポーネントを介して、ソースコンピューティングデバイス112は、(たとえば、ネットワーク105を介して)オーディオ入力信号をデータ処理システム102に提供することができ、データ処理システム102において、オーディオ入力信号は、(たとえば、インターフェース104によって)受信され、NLP 106に提供されるか、またはデータリポジトリに記憶され得る。
【0030】
データ処理システム102は、ソースコンピューティングデバイス112のマイクロフォンまたはターゲットコンピューティングデバイス132のマイクロフォンによって検出された入力オーディオ信号を含むデータパケットをインターフェース104を介して受信することができる。データ処理システム102は、マイクロフォンによって検出された入力オーディオ信号に基づいて生成されるデータパケットを受信することができる。データパケットは、フィルタリングされるかまたはフィルタリングされないことが可能である。データパケットは、検出された入力オーディオ信号のデジタル化されたバージョンであることが可能である。データパケットは、検出された入力オーディオ信号に基づいてソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132によって生成されるテキストを含み得る。たとえば、ソースコンピューティングデバイス112のソースデジタルアシスタント114またはターゲットコンピューティングデバイス132のターゲットデジタルアシスタント142が、検出された入力オーディオ信号を処理し、処理された入力オーディオ信号に基づくデータパケットを、さらなる処理のためにまたはアクションを実行するためにサーバデジタルアシスタント108に送信することができる。
【0031】
データ処理システム102は、サーバデジタルアシスタント108を含み得る。サーバデジタルアシスタント108およびNLP 106は、単一のコンポーネントであることが可能であり、またはサーバデジタルアシスタント108が、NLP 106の1つもしくは複数のコンポーネントもしくは機能を含むことが可能である。サーバデジタルアシスタント108は、NLP 106とインターフェースを取ることができる。データ処理システム102(たとえば、サーバデジタルアシスタント108)は、データパケットを処理して、アクションを実行するかまたはそれ以外の方法で音声入力に応答することができる。場合によっては、データ処理システム102は、入力オーディオ信号から音響シグネチャ(acoustic signature)を特定することができる。データ処理システム102は、データリポジトリを検索すること(たとえば、データベースに問い合わせること)に基づいて音響シグネチャに対応する電子アカウントを特定することができる。データ処理システム102は、電子アカウントの特定に応答して、セッションおよびセッションにおいて使用するためのアカウントを確立することができる。アカウントは、1つまたは複数のポリシーを有するプロファイルを含み得る。データ処理システム102は、要求および要求に対応するトリガキーワードを特定するために入力オーディオ信号を解析することができる。
【0032】
NLP 106は、入力オーディオ信号を取得することができる。データ処理システム102のNLP 106は、デジタルアシスタントによるトリガキーワードの検出に応答して、音声入力または入力オーディオ信号を有するデータパケットを受信することができる。トリガキーワードは、後続のオーディオ入力をテキストに変換し、さらなる処理のためにテキストをデータ処理システム102に送信するようにソースコンピューティングデバイス112に示すウェイクアップ信号またはホットワードであることが可能である。
【0033】
入力オーディオ信号を受信すると、NLP 106は、少なくとも1つの要求、または要求に対応する少なくとも1つのキーワードを特定することができる。要求は、入力オーディオ信号の意図または主題を示し得る。キーワードは、行われる可能性が高いアクションの種類を示し得る。たとえば、NLP 106は、入力オーディオ信号を解析して、夜に食事会に参加し、映画を見るために家を出る少なくとも1つの要求を特定し得る。トリガキーワードは、行われるアクションを示す少なくとも1つの単語、語句、語根もしくは部分的な単語、または派生語を含み得る。たとえば、入力オーディオ信号からのトリガキーワード「行く」または「~に行くために」は、輸送の必要性を示し得る。この例において、入力オーディオ信号(または特定された要求)は、輸送の意図を直接表さないが、トリガキーワードが、輸送が要求によって示される少なくとも1つのその他のアクションの補助的なアクションであることを示す。別の例において、音声入力は、「近所の仕事を探して」のような検索クエリを含み得る。
【0034】
NLP 106は、要求および要求に関連する1つまたは複数のキーワードを特定するか、判定するか、取り出すか、またはそれ以外の方法で取得するために入力オーディオ信号を解析することができる。たとえば、NLP 106は、キーワードまたは要求を特定するために入力オーディオ信号に意味処理技術を適用することができる。NLP 106は、キーワード、または第1のキーワードおよび第2のキーワードなどの1つもしくは複数のキーワードを含む語句を特定するために入力オーディオ信号に意味処理技術を適用することができる。たとえば、入力オーディオ信号は、文章「オーディオブックを購入したい」を含み得る。NLP 106は、文章を含むデータパケットに意味処理技術またはその他の自然言語処理技術を適用して、キーワードまたは語句「~を購入したい」および「オーディオブック」を特定することができる。NLP 106は、購入およびオーディオブックなどの複数のキーワードをさらに特定し得る。たとえば、NLP 106は、語句が第1のおよび第2のキーワードを含むと判定し得る。
【0035】
NLP 106は、トリガキーワードを特定するために入力オーディオ信号をフィルタリングすることができる。たとえば、入力オーディオ信号を運ぶデータパケットは、「It would be great if I could get someone that could help me go to the airport」を含むことが可能であり、その場合、NLP 106は、以下の通りの1つまたは複数の語、すなわち、「it」、「would」、「be」、「great」、「if」、「I」、「could」、「get」、「someone」、「that」、「could」、または「help」をフィルタリングして取り除くことができる。これらの語をフィルタリングして取り除くことによって、NLP 106は、「go to the airport」などのトリガキーワードをより正確で信頼性高く特定し、これがタクシーまたは相乗りサービスの要求であると判定し得る。
【0036】
場合によっては、NLP 106は、入力オーディオ信号を運ぶデータパケットが1つまたは複数の要求を含むと判定し得る。たとえば、入力オーディオ信号は、文章「アクション映画を見せて」を含み得る。NLP 106は、これがアクション映画を再生する要求であると判定することができる。サーバデジタルアシスタント108は、入力オーディオ信号に基づいて、コンテンツセレクタ110にコンテンツの要求を送信することができる。サーバデジタルアシスタント108は、サードパーティコンテンツプロバイダからの補足またはスポンサー付きコンテンツの要求を送信することができる。コンテンツセレクタ110は、音声クエリ内のアクションに基づいて補足コンテンツアイテムまたはスポンサー付きコンテンツアイテムを選択するためのコンテンツ選択プロセスを実行することができる。コンテンツアイテムは、スポンサー付きまたは補足デジタルコンポーネントオブジェクトであることが可能である。コンテンツアイテムは、補足デジタルコンテンツプロバイダデバイス144などのサードパーティコンテンツプロバイダによって提供され得る。補足コンテンツアイテムは、物またはサービスの広告を含み得る。コンテンツセレクタ110は、サーバデジタルアシスタント108からのコンテンツの要求の受信に応答して、コンテンツ選択基準を使用してコンテンツアイテムを選択することができる。
【0037】
サーバデジタルアシスタント108は、コンテンツセレクタ110から補足またはスポンサー付きコンテンツアイテムを受信することができる。サーバデジタルアシスタント108は、要求に応答してコンテンツアイテムを受信することができる。サーバデジタルアシスタント108は、コンテンツセレクタ110からコンテンツアイテムを受信し、オーディオ出力またはビジュアル出力によってコンテンツアイテムを提示することができる。サーバデジタルアシスタント108は、ターゲットコンピューティングデバイス132、またはターゲットコンピューティングデバイス132と通信可能なように結合されるソースコンピューティングデバイス112を介して提示するためのコンテンツアイテムを提供することができる。
【0038】
データ処理システム102は、補足コンテンツアイテム(またはスポンサー付きコンテンツアイテムまたはデジタルコンポーネントオブジェクト)を選択するように設計されたか、構築されたか、または動作可能であるコンテンツセレクタ110を含み得る。スポンサー付きコンテンツアイテムまたはデジタルコンポーネントを選択するために、コンテンツセレクタ110は、生成されたコンテンツ選択基準を使用して、部分一致(broad match)、完全一致(exact match)、またはフレーズ一致に基づいて、一致するスポンサー付きコンテンツアイテムを選択することができる。たとえば、コンテンツセレクタ110は、候補スポンサー付きコンテンツアイテムの主題がコンテンツ選択基準のキーワードまたは語句の主題(たとえば、アクションまたは意図)に対応するかどうかを判定するために、候補スポンサー付きコンテンツアイテムの主題を分析するか、解析するか、または他の方法で処理することができる。コンテンツセレクタ110は、画像処理技術、文字認識技術、自然言語処理技術、またはデータベース検索を使用して候補デジタルコンポーネントの音声、オーディオ、語、文字、テキスト、記号、または画像を特定するか、分析するか、または認識することができる。候補スポンサー付きコンテンツアイテムは、候補デジタルコンポーネントの主題を示すメタデータを含むことが可能であり、その場合、コンテンツセレクタ110は、候補デジタルコンポーネントの主題が入力オーディオ信号に対応するかどうかを判定するためにメタデータを処理してよい。補足デジタルコンテンツプロバイダデバイス144によって提供されるコンテンツキャンペーンは、第2のプロファイルレイヤまたは第1のプロファイルレイヤ内で示された基準にデータ処理システム102がマッチングすることができるコンテンツ選択基準を含み得る。
【0039】
補足デジタルコンテンツプロバイダは、デジタルコンポーネントを含むコンテンツキャンペーンを設定するときに追加的なインジケータを提供してよい。補足デジタルコンテンツプロバイダデバイス144は、候補デジタルコンポーネントについての情報を使用して検索を実行することによってコンテンツセレクタ110が特定してよいコンテンツキャンペーンまたはコンテンツグループレベルの情報を提供する場合がある。たとえば、候補デジタルコンポーネントは、コンテンツグループ、コンテンツキャンペーン、またはコンテンツプロバイダにマッピングされる場合がある一意の識別子を含んでよい。
【0040】
要求に応答して、コンテンツセレクタ110は、補足デジタルコンテンツプロバイダデバイス144に関連するデジタルコンポーネントオブジェクトを選択することができる。補足デジタルコンテンツは、補足デジタルコンテンツプロバイダによって提供され得る。補足デジタルコンテンツは、アクションデータ構造のサービスの種類とは異なるサービスの種類に対応し得る(たとえば、タクシーサービス対食品配達サービス)。コンピューティングデバイス112または132は、補足デジタルコンテンツとインタラクションすることができる。コンピューティングデバイス112または132は、デジタルコンポーネントに対するオーディオ応答を受信することができる。コンピューティングデバイス112または132は、コンピューティングデバイス112または132が補足デジタルコンテンツプロバイダデバイス144を特定するか、補足デジタルコンテンツプロバイダデバイス144からのサービスを要求するか、サービスを実行するように補足デジタルコンテンツプロバイダデバイス144に命じるか、補足デジタルコンテンツプロバイダデバイス144に情報を送信するか、または他の方法で補足デジタルコンテンツプロバイダデバイス144に問い合わせることを引き起こすかまたは可能にするデジタルコンポーネントオブジェクトに関連するハイパーリンクまたはその他のボタンを選択するためのインジケーションを受信し得る。
【0041】
補足デジタルコンテンツプロバイダデバイス144は、電子コンテンツキャンペーンを確立することができる。電子コンテンツキャンペーンは、共通のテーマに対応する1つまたは複数のコンテンツグループを指し得る。コンテンツキャンペーンは、コンテンツプロバイダによって提供されるコンテンツグループ、デジタルコンポーネントデータオブジェクト、およびコンテンツ選択基準を含む階層的なデータ構造を含み得る。コンテンツプロバイダデバイス144によって提供されるコンテンツ選択基準は、デジタルアシスタントコンテンツタイプ、検索コンテンツタイプ、ストリーミングビデオコンテンツタイプ、円滑化オーディオコンテンツタイプ、またはコンテキストコンテンツタイプ(contextual content type)などのコンテンツの種類を含み得る。コンテンツキャンペーンを作成するために、補足デジタルコンテンツプロバイダデバイス144は、コンテンツキャンペーンのキャンペーンレベルパラメータの値を指定することができる。キャンペーンレベルパラメータは、たとえば、キャンペーン名、デジタルコンポーネントオブジェクトを掲載するための好ましいコンテンツネットワーク、コンテンツキャンペーンのために使用されるリソースの値、コンテンツキャンペーンの開始日および終了日、コンテンツキャンペーンの継続時間、デジタルコンポーネントオブジェクトの掲載のためのスケジュール、言語、地理的場所、デジタルコンポーネントオブジェクトを提供すべきコンピューティングデバイスの種類を含み得る。場合によっては、インプレッションが、デジタルコンポーネントオブジェクトがそのソース(たとえば、データ処理システム102または補足デジタルコンテンツプロバイダデバイス144)からいつフェッチされるかを指すことが可能であり、数えられ得る。場合によっては、クリック詐欺の可能性があるため、インプレッションとして、ロボットの活動がフィルタリングされ、除外され得る。したがって、場合によっては、インプレッションは、ロボットの活動およびエラーコードからフィルタリングされ、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132上で表示するためにデジタルコンポーネントオブジェクトをレンダリングする機会にできるだけ近い時点で記録される、ブラウザからのページ要求に対するウェブサーバからの応答の測定値を指し得る。場合によっては、インプレッションは、可視インプレッション(viewable impression)または可聴インプレッション(audible impression)を指すことが可能であり、たとえば、デジタルコンポーネントオブジェクトは、コンピューティングデバイスのディスプレイデバイス上で少なくとも部分的に(たとえば、20%、30%、30%、40%、50%、60%、70%、もしくはそれ以上)可視であるか、またはソースコンピューティングデバイス112もしくはターゲットコンピューティングデバイス132のスピーカを介して少なくとも部分的に(たとえば、20%、30%、30%、40%、50%、60%、70%、もしくはそれ以上)可聴である。クリックまたは選択は、可聴インプレッションに対する音声応答、マウスクリック、タッチインタラクション、ジェスチャ、振り動かし、オーディオインタラクション、またはキーボードクリックなどのデジタルコンポーネントオブジェクトとのユーザインタラクションを指し得る。コンバージョンは、ユーザがデジタルコンポーネントオブジェクトに関連して所望のアクションを行うこと、たとえば、製品もしくはサービスを購入すること、調査を完了すること、デジタルコンポーネントに対応する物理的な店舗を訪れること、または電子取引を完了することを指し得る。
【0042】
補足デジタルコンテンツプロバイダデバイス144は、コンテンツキャンペーンに関する1つまたは複数のコンテンツグループをさらに確立することができる。コンテンツグループは、1つまたは複数のデジタルコンポーネントオブジェクトと、キーワード、単語、語、語句、地理的場所、コンピューティングデバイスの種類、時刻、関心、話題、またはバーティカル(vertical)などの対応するコンテンツ選択基準とを含む。同じコンテンツキャンペーンの下のコンテンツグループは、同じキャンペーンレベルパラメータを共有することが可能であるが、キーワード、(たとえば、主コンテンツに除外キーワードが存在する場合にデジタルコンポーネントの掲載を阻止する)除外キーワード、キーワードの入札単価(bid)、または入札単価もしくはコンテンツキャンペーンに関連するパラメータなどの特定のコンテンツグループレベルパラメータに関するカスタマイズされた仕様を有する場合がある。
【0043】
新しいコンテンツグループを作成するために、コンテンツプロバイダは、コンテンツグループのコンテンツグループレベルパラメータの値を与えることができる。コンテンツグループレベルパラメータは、たとえば、コンテンツグループ名もしくはコンテンツグループのテーマ、および異なるコンテンツ掲載機会(たとえば、自動掲載もしくは管理された掲載)または結果(たとえば、クリック、インプレッション、もしくはコンバージョン)の入札単価を含む。コンテンツグループ名またはコンテンツグループのテーマは、コンテンツグループのデジタルコンポーネントオブジェクトが表示のために選択されるべきである話題または主題を捕捉するために補足デジタルコンテンツプロバイダデバイス144が使用することができる1つまたは複数の語であることが可能である。たとえば、自動車の特約販売店は、その特約販売店が扱う車両の各ブランドのために異なるコンテンツグループを作成することができ、その特約販売店が扱う車両の各モデルのために異なるコンテンツグループをさらに作成する場合がある。自動車の特約販売店が使用することができるコンテンツグループのテーマの例は、たとえば、「メーカーAのスポーツカー」、「メーカーBのスポーツカー」、「メーカーCのセダン」、「メーカーCのトラック」、「メーカーCのハイブリッド」、または「メーカーDのハイブリッド」を含む。例示的なコンテンツキャンペーンのテーマは、「ハイブリッド」であり、たとえば、「メーカーCのハイブリッド」と「メーカーDのハイブリッド」との両方のためのコンテンツグループを含み得る。
【0044】
補足デジタルコンテンツプロバイダデバイス144は、各コンテンツグループに1つまたは複数のキーワードおよびデジタルコンポーネントオブジェクトを与えることができる。キーワードは、デジタルコンポーネントオブジェクトに関連するかまたはデジタルコンポーネントオブジェクトによって特定される製品またはサービスに関連する語を含み得る。キーワードは、1つまたは複数の語または語句を含み得る。たとえば、自動車の特約販売店は、コンテンツグループまたはコンテンツキャンペーンに関するキーワードとして、「スポーツカー」、「V-6エンジン」、「4輪駆動」、「燃費」を含めることができる。場合によっては、除外キーワードが、特定の語またはキーワードに対するコンテンツ掲載を避けるか、防止するか、阻止するか、または無効にするためにコンテンツプロバイダによって指定され得る。コンテンツプロバイダは、デジタルコンポーネントオブジェクトを選択するために使用される、完全一致、フレーズ一致、または部分一致などのマッチングの種類を指定することができる。
【0045】
補足デジタルコンテンツプロバイダデバイス144は、補足デジタルコンテンツプロバイダデバイス144によって提供されるデジタルコンポーネントオブジェクトを選択するためにデータ処理システム102によって使用される1つまたは複数のキーワードを提供することができる。補足デジタルコンテンツプロバイダデバイス144は、入札する1つまたは複数のキーワードを特定し、さらに、様々なキーワードに関する入札額を与えることができる。補足デジタルコンテンツプロバイダデバイス144は、デジタルコンポーネントオブジェクトを選択するためにデータ処理システム102によって使用される追加的なコンテンツ選択基準を提供することができる。複数の補足デジタルコンテンツプロバイダデバイス144が、同じまたは異なるキーワードに入札することができ、データ処理システム102は、電子的メッセージのキーワードのインジケーションの受信に応答してコンテンツ選択プロセスまたは広告オークションを実行することができる。
【0046】
補足デジタルコンテンツプロバイダデバイス144は、データ処理システム102による選択のために1つまたは複数のデジタルコンポーネントオブジェクトを提供することができる。(たとえば、コンテンツセレクタ110を介して)データ処理システム102は、リソース割り当て、コンテンツスケジュール、最大入札単価、キーワード、およびコンテンツグループに関して指定されたその他の選択基準に一致するコンテンツ掲載機会が利用可能になるときにデジタルコンポーネントオブジェクトを選択することができる。音声デジタルコンポーネント、オーディオデジタルコンポーネント、テキストデジタルコンポーネント、画像デジタルコンポーネント、ビデオデジタルコンポーネント、マルチメディアデジタルコンポーネント、デジタルコンポーネントリンク、またはアシスタントアプリケーションコンポーネントなどの異なる種類のデジタルコンポーネントオブジェクトが、コンテンツグループに含まれ得る。デジタルコンポーネントオブジェクト(またはデジタルコンポーネント、補足コンテンツアイテム、もしくはスポンサー付きコンテンツアイテム)は、たとえば、コンテンツアイテム、オンラインドキュメント、オーディオ、画像、ビデオ、マルチメディアコンテンツ、スポンサー付きコンテンツ、またはアシスタントアプリケーションを含み得る。デジタルコンポーネントを選択すると、データ処理システム102は、ソースコンピューティングデバイス112もしくはターゲットコンピューティングデバイス132、またはそれらのディスプレイデバイス上でレンダリングするためにデジタルコンポーネントオブジェクトを送信することができる。レンダリングは、ディスプレイデバイス上にデジタルコンポーネントを表示すること、チャットボットもしくは会話ボットなどのアプリケーションを実行すること、またはソースコンピューティングデバイス112もしくはターゲットコンピューティングデバイス132のスピーカによってデジタルコンポーネントを再生することを含み得る。データ処理システム102は、デジタルコンポーネントオブジェクトをレンダリングするためにターゲットコンピューティングデバイス132に命令を与えることができる。データ処理システム102は、オーディオ信号または音響波を生成するようにターゲットコンピューティングデバイス132に命令することができる。
【0047】
コンテンツセレクタ110は、要求に応答して、リアルタイムのコンテンツ選択プロセスを実行することができる。リアルタイムのコンテンツ選択は、要求に応答してコンテンツ選択を実行することを指すかまたは含み得る。リアルタイムは、要求の受信の0.2秒、0.3秒、0.4秒、0.5秒、0.6秒、または1秒以内にコンテンツを選択することを指すかまたは含み得る。リアルタイムは、ターゲットコンピューティングデバイス132からの入力オーディオ信号の受信に応答してコンテンツを選択することを指し得る。
【0048】
コンテンツセレクタ110は、複数の候補補足コンテンツアイテムを特定し得る。コンテンツセレクタ110は、コンピューティングデバイスに提供する最高ランクの補足コンテンツアイテムを選択するために、複数の候補補足コンテンツアイテムの各々のスコアまたはランクを決定することができる。
【0049】
システム100は、ターゲットコンピューティングデバイス132を含むか、ターゲットコンピューティングデバイス132とインターフェースを取るか、または他の方法でターゲットコンピューティングデバイス132と通信することができる。ターゲットコンピューティングデバイス132は、ターゲットデジタルアシスタント142を含み得る。ターゲットデジタルアシスタント142は、サーバデジタルアシスタント108とインターフェースを取ることができる。ターゲットデジタルアシスタント142は、サーバデジタルアシスタント108の1つまたは複数のコンポーネントまたは機能を含み得る。ターゲットデジタルアシスタント142は、たとえば、入力音声クエリを受信し、アクションを実行することによってクエリまたは要求を遂行することができる。たとえば、ターゲットコンピューティングデバイス132は、テレビまたはスマートディスプレイであることが可能である。ターゲットデジタルアシスタント142は、「ボリュームを上げて」、「ボリュームを下げて」、「チャンネルを変えて」、「アクション映画を再生して」、「一時停止して」、「再開して」、または「TVをつけて」などのクエリまたは要求をともなう入力オーディオ信号を受信し得る。ターゲットデジタルアシスタント142は、入力クエリを受信すると、クエリを解析し、対応するアクションを実行するためにコントローラ138またはクエリプロセッサ134のうちの1つまたは複数とインターフェースを取ることができる。ターゲットデジタルアシスタント142は、クエリプロセッサ134の1つまたは複数のコンポーネントまたは機能を含み得る。
【0050】
ターゲットコンピューティングデバイス132は、ターゲットコンピューティングデバイス132の1つまたは複数の機能を提供するように設計され、構築され、動作可能なプラットフォーム136を含み得る。プラットフォーム136は、ターゲットコンピューティングデバイス132のオペレーティングシステムを指し得る。プラットフォーム136は、ターゲットコンピューティングデバイス132によって提供または提示されるグラフィカルユーザインターフェースを含み得る。プラットフォーム136は、任意の種類であることが可能であり、ターゲットコンピューティングデバイス132のハードウェアとインターフェースを取ることができる。プラットフォーム136は、要求を与えるためにクエリプロセッサ134とインターフェースを取ることができる。プラットフォーム136は、ストリーミングマルチメディアアプリケーション、ビデオゲーム、音楽アプリケーション、または天気アプリケーションなどの、ターゲットコンピューティングデバイス132上のアプリケーションを含むか、呼び出すか、または起動することができる。
【0051】
ターゲットコンピューティングデバイス132は、ターゲットコンピューティングデバイス132の機能または態様を制御するように設計され、構成され、動作可能なコントローラ138を含み得る。コントローラ138は、ターゲットコンピューティングデバイス132の遠隔制御を提供することができる。コントローラ138は、ターゲットコンピューティングデバイス132とともに使用するために構成されたハードウェアの物理的なリモコンから信号または命令を受信することができる。コントローラ138は、ソースコンピューティングデバイス112の仮想コントローラ120との通信チャネルを確立し、仮想コントローラ120からクエリを受信することができる。
【0052】
コントローラ138は、ローカルWIFIネットワークなどのネットワーク105を介して入力を受信するgRPCサービスを含み得る。コントローラ138は、クエリまたはインタラクションを受信し、さらなる処理または遂行のために、クエリプロセッサ134にクエリまたはインタラクションを転送することができる。クエリプロセッサ134は、クエリを解析し、実行するアクションを決定し、それから、アクションを実行することができる。たとえば、クエリプロセッサ134は、ターゲットコンピューティングデバイス132上で何が表示されるかを制御するためにプラットフォーム136とインターフェースを取ることができる。クエリプロセッサ134は、どのアクションを行うべきかを決定するためにデータ処理システム102とインターフェースを取ることができる。クエリプロセッサ134は、アクションを実行するためにターゲットデジタルアシスタント142とインターフェースを取ることができる。
【0053】
クエリプロセッサ134は、クエリを解析し、遂行するためのターゲットデジタルアシスタント142またはNLP 106の1つまたは複数のコンポーネントまたは機能を含み得る。クエリプロセッサ134は、コントローラ138、プラットフォーム136、またはターゲットデジタルアシスタント142からクエリを受信することができる。
【0054】
ターゲットコンピューティングデバイス132は、ワイヤレス信号をブロードキャストするように設計され、構築され、動作可能な信号ブロードキャスタ140を含み得る。信号ブロードキャスタ140は、1つまたは複数のワイヤレスプロトコルを使用してワイヤレス信号をブロードキャストすることができる。信号ブロードキャスタ140は、Bluetoothなどの近距離ワイヤレスプロトコルを使用して信号をブロードキャストし得る。信号ブロードキャスタ140は、近距離無線通信(nearfield communication)プロトコルを使用して信号をブロードキャストし得る。信号ブロードキャスタ140は、WIFIプロトコルを使用して信号をブロードキャストし得る。信号ブロードキャスタ140は、ZigBeeまたはその他のワイヤレスプロトコルを使用して信号をブロードキャストし得る。
【0055】
信号ブロードキャスタ140は、信号を連続的にまたは時間間隔に基づいてブロードキャストまたは送信し得る。たとえば、信号ブロードキャスタ140は、0.1秒、0.2秒、0.3秒、0.5秒、1秒、2秒、3秒、4秒、またはその他の時間間隔ごとに信号をブロードキャストし得る。
【0056】
信号ブロードキャスタ140は、トリガ条件またはイベントに応答して信号をブロードキャストし得る。たとえば、信号ブロードキャスタ140は、ターゲットコンピューティングデバイス132の動きまたは近接の検出に応答して信号をブロードキャストし得る。たとえば、ターゲットコンピューティングデバイス132は、近接センサーを含むかまたは近接センサーに結合され得る。近接センサーは、電磁場または電磁放射(たとえば、赤外線)のビームを使用して、いかなる物理的接触もなしに近くの物体の存在を検出し、電磁場または戻り信号の変化を特定することができる。電磁場または戻りの変化の検出に応答して、近接センサーは、信号をブロードキャストするように信号ブロードキャスタ140にインジケーションを与えることができる。
【0057】
信号ブロードキャスタ140は、情報をともなう信号をブロードキャストすることができる。情報は、ターゲットコンピューティングデバイス132と、ターゲットコンピューティングデバイス132の能力とを特定し得る。情報は、ターゲットコンピューティングデバイス132の名前(たとえば、識別子)または種類を特定し得る。たとえば、ターゲットコンピューティングデバイス132の名前は、「リビングルームのTV」、「寝室のTV」、「書斎のTV」、「会議室Aのディスプレイ」、またはターゲットコンピューティングデバイス132の管理者、ユーザ、もしくは所有者によって確立されたその他の名前もしくはラベルであることが可能である。情報は、ターゲットコンピューティングデバイス132の能力を含むかまたは示し得る。能力は、ターゲットコンピューティングデバイス132がどの種類の機能を実行することができるかを指し得る。能力は、ターゲットコンピューティングデバイス132がどの種類のデバイスであるかを指し得る。たとえば、能力は、スマートディスプレイ、スマートテレビ、自動車ユニット、ネットワーク接続デバイス、またはIoTデバイスであり得る。能力は、たとえば、マルチメディアストリーミング、映画サービス、音楽サービス、家電の機能、または自動車の機能などの機能を示し得る。信号ブロードキャスタ140は、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132を特定するのを容易にすることができる追加情報をブロードキャストし得る。
【0058】
システム100は、ソースコンピューティングデバイス112を含むか、ソースコンピューティングデバイス112とインターフェースを取るか、またはソースコンピューティングデバイス112と通信することができる。ソースコンピューティングデバイス112は、電話、腕時計、ウェアラブルデバイス、スピーカ、ヘッドセット、またはその他の種類のデバイスを含むかまたは指し得る。ソースコンピューティングデバイス112は、ソースデジタルアシスタント114を含み得る。ソースデジタルアシスタント114は、サーバデジタルアシスタント108もしくはターゲットデジタルアシスタント142またはNLP 106の1つまたは複数のコンポーネントまたは機能を含み得る。ソースデジタルアシスタント114は、ソースコンピューティングデバイス112によって受信されたまたは検出された音声に基づくクエリに応答するアクションを遂行または実行するために、サーバデジタルアシスタント108とインターフェースを取るかまたは通信し得る。
【0059】
ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132は、センサー、マイクロフォン、スピーカ、ディスプレイデバイス、トランスデューサ、もしくはオーディオドライバのうちの1つもしくは複数を含むか、それらとインターフェースを取るか、または他の方法でそれらにアクセスすることができる。たとえば、ソースコンピューティングデバイス112は、ディスプレイデバイス122およびマイクロフォン124を含み得る。ディスプレイデバイス122は、たとえば、ライトインジケータ、発光ダイオード(「LED」)、有機発光ダイオード(「OLED」)、または視覚的もしくは光学的出力を提供するように構成されたその他の視覚的インジケータを含み得る。場合によっては、ターゲットコンピューティングデバイス132は、テレビディスプレイなどのディスプレイデバイスを含み得る。センサーは、たとえば、環境光センサー、近接センサー、温度センサー、加速度計、ジャイロスコープ、モーションディテクタ、GPSセンサー、位置センサー、マイクロフォン、またはタッチセンサーを含み得る。トランスデューサは、スピーカまたはマイクロフォンを含み得る。オーディオドライバは、ハードウェアトランスデューサにソフトウェアインターフェースを提供することができる。オーディオドライバは、対応する音響波または音波を生成するようにトランスデューサを制御するためにオーディオファイルまたはその他の命令を実行することができる。
【0060】
センサーは、入力オーディオ信号(たとえば、音声入力)を受信するかまたは検出することができる。デジタルアシスタント(たとえば、ソースデジタルアシスタント114またはターゲットデジタルアシスタント142)は、オーディオドライバ、トランスデューサ、およびセンサーに結合され得る。デジタルアシスタントは、(たとえば、特定の周波数を取り除くかまたは雑音を抑制することによって)フィルタリングされた入力オーディオ信号を生成するために入力オーディオ信号をフィルタリングすることができる。デジタルアシスタントは、(たとえば、ソフトウェアまたはハードウェアデジタル-アナログコンバータを使用して)フィルタリングされた入力オーディオ信号をデータパケットに変換することができる。場合によっては、デジタルアシスタントは、フィルタリングされていない入力オーディオ信号をデータパケットに変換し、データパケットをデータ処理システム102に送信することができる。デジタルアシスタントは、データパケットを、自然言語プロセッサコンポーネントを実行する1つまたは複数のプロセッサおよびメモリを含むデータ処理システム102に送信することができる。ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132の1つまたは複数のコンポーネントは、少なくとも1つの処理ユニット、またはプログラミング可能な論理アレイエンジン、コンポーネント、もしくはモジュールなどのその他の論理デバイスをそれぞれ含み得る。システム100およびそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含み得る。
【0061】
ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132は、少なくとも1つのアプリケーションを含むか、少なくとも1つのアプリケーションとインターフェースを取るか、または他の方法で少なくとも1つのアプリケーションと通信することができる。アプリケーションは、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132にインストールされ得る。アプリケーションは、データ処理システム102によって提供されるオンラインマーケットプレイスなどのオンラインアプリケーションマーケットプレイスからダウンロードされ得る。アプリケーションは、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132の製造業者によってソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132のオペレーティングシステムにインストールされたネイティブアプリケーションを含み得る。アプリケーションは、リソースまたはサービスを提供することができる任意の種類のアプリケーションを含み得る。たとえば、アプリケーションは、運動ルーチンアプリケーション、食品注文アプリケーション、ライドヘイリングアプリケーション、天気アプリケーション、文書処理アプリケーション、ナビゲーションアプリケーション、メッセージングアプリケーション、電話アプリケーション、ストリーミングメディアアプリケーション、ソーシャルネットワークアプリケーション、カレンダーアプリケーション、カメラアプリケーション、チケット購入アプリケーション、電子商取引アプリケーション、銀行アプリケーション、金融サービスアプリケーションなどであることが可能である。
【0062】
ソースコンピューティングデバイス112は、データリポジトリ126を含み得る。データリポジトリ126は、1つまたは複数のローカルまたは分散型データベースを含み得る。データリポジトリ126は、コンピュータデータストレージまたはメモリを含むことができ、プロファイル128またはUIテンプレート130のうちの1つまたは複数を記憶することができる。プロファイル128は、ユーザプロファイル、プリファレンス、クレデンシャル、トークン、または機能の実行またはクエリもしくは応答の遂行を容易にするその他の情報を含み得る。UIテンプレート130は、ディスプレイデバイス122上に表示するためのプロンプトを生成するために使用されることが可能な視覚的またはグラフィカルユーザインターフェース要素を含み得る。
【0063】
ソースコンピューティングデバイス112は、ソースデジタルアシスタント114を含み得る。ソースコンピューティングデバイス112は、ソースコンピューティングデバイス112のセンサーによって検出された音声クエリまたはその他のオーディオ入力を受信し、音声入力に基づいて意図またはアクションを決定し、対応するアクションの遂行を容易にするように設計され、構築され、動作可能なデジタルアシスタント114を含み得る。デジタルアシスタント114は、NLP 106の1つもしくは複数のコンポーネントもしくは機能を含むか、またはNLP 106とインターフェースを取ることができる。たとえば、ソースデジタルアシスタント114は、音声入力もしくはオーディオ入力を解析または処理するために、データ処理システム102のNLP 106とインターフェースを取るかまたは通信することができる。場合によっては、ソースデジタルアシスタント114は、データ処理システム102のNLP 106とインターフェースを取るかまたは通信することなく、音声入力を処理または解析するように構成され得る。たとえば、ソースコンピューティングデバイス112は、データ処理システム102とネットワーク105を介して通信することなくデジタルアシスタントの機能を実行し得る。ソースコンピューティングデバイス112は、データ処理システム102とネットワーク105を介して通信することなく、音声クエリを受信し、音声クエリを解析し、アクションを特定し、アクションを遂行するためにソースコンピューティングデバイス112上のアプリケーションを呼び出すことができる。
【0064】
ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132を検出するように設計され、構築され、動作可能な存在アプリケーションプログラミングインターフェース(「API」)116を含み得る。存在API 116は、ターゲットコンピューティングデバイス132の信号ブロードキャスタ140によってブロードキャストされた信号を検出または感知することができる。たとえば、ソースコンピューティングデバイス112は、第1のコンピューティングデバイスと呼ばれることが可能であり、ターゲットコンピューティングデバイス132は、第2のコンピューティングデバイスと呼ばれることが可能である。
【0065】
存在API 116は、連続的に、周期的に、時間間隔に基づいて、またはイベント、条件、もしくはトリガに応答して、信号ブロードキャスタ140によってブロードキャストされた信号をリスニングするように構成され得る。たとえば、存在API 116は、0.5秒、1秒、2秒、またはその他の時間間隔ごとに、通信ポートをウェイクアップするかもしくは開く、または信号を探索し得る。別の例において、存在API 116は、ソースコンピューティングデバイス112のユーザまたは装着者によって行われたジェスチャまたは動きに応答してブロードキャスト信号をリスニングし得る。たとえば、ソースコンピューティングデバイス112は、腕時計であることが可能であり、ユーザは、存在API 116をウェイクアップさせるかもしくは存在API 116にブロードキャスト信号をリスニングさせる、またはウェイクアップするかもしくはブロードキャスト信号をリスニングするように存在API 116をトリガする方法で、腕時計が装着されている手首を上げるかまたは手首を振ることができる。
【0066】
存在API 116は、信号ブロードキャスタ140によってブロードキャストされた信号を検出することができる。信号の検出に応答して、存在API 116は、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132の範囲内にあると判定し得る。存在API 116は、ソースコンピューティングデバイス112が、ターゲットコンピューティングデバイス132の所望の範囲内、閾値の範囲内、または別の所定の範囲内にあると判定し得る。存在API 116は、様々な技術に基づいて、ソースコンピューティングデバイス112とターゲットコンピューティングデバイスとの間の範囲または距離を決定することができる。たとえば、存在API 116は、信号ブロードキャスタ140によってブロードキャストされた信号の強度に基づいて、ターゲットコンピューティングデバイス132からの距離または範囲を決定し得る。ソースコンピューティングデバイス112によって受信または検出された信号の強度が強ければ強いほど、ソースコンピューティングデバイス112はターゲットコンピューティングデバイス132に近い可能性がある。ソースコンピューティングデバイス112において検出された信号強度が強度の閾値(たとえば、振幅または電力)を満たす場合、存在API 116は、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132の範囲内にあると判定し得る。場合によっては、ソースコンピューティングデバイス112およびターゲットコンピューティングデバイス132は、信号が1つのデバイスから別のデバイスまで移動するのにかかった時間の量に基づくなどして(たとえば、信号の送信および受信に関連するタイムスタンプを比較することによって)、2つのデバイスの間の距離を計算するために信号をやり取りし得る。場合によっては、存在API 116は、使用されているワイヤレスプロトコルの種類と、ソースコンピューティングデバイス112が信号を解析することができたかどうかとに基づいて、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132の範囲内にあると判定し得る。たとえば、信号を送信するために信号ブロードキャスタ140によって使用されたワイヤレスプロトコルが近距離無線通信プロトコルであり、ソースコンピューティングデバイス112が信号を処理または解析することができた場合、ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132が申し分のない範囲内にあると判定し得る。
【0067】
存在API 116は、信号ブロードキャスタ140によってブロードキャストされた信号を特定するために、ソースコンピューティングデバイス112の1つもしくは複数の通信ポートもしくはセンサーを用いて構成されるか、またはそれらの通信ポートもしくはセンサーにアクセスし得る。存在API 116は、信号を解析するか、処理するか、または他の方法で分析することができる。存在API 116は、ターゲットコンピューティングデバイス132を特定するために信号を解析または処理することができる。たとえば、存在API 116は、ターゲットコンピューティングデバイス132の名前などのターゲットコンピューティングデバイス132の識別子を決定するために信号を解析し得る。信号は、ヘッダおよびペイロードを持つ1つまたは複数のデータパケットを含み得る。ペイロードは、信号をブロードキャストしたターゲットコンピューティングデバイス132に関する情報を含み得る。信号ブロードキャスタ140は、ブロードキャストされている信号に情報を埋め込むまたは含めるように構成され得る。存在API 116は、信号を分析して、ターゲットコンピューティングデバイス132の名前、ターゲットコンピューティングデバイス132の種類、またはターゲットコンピューティングデバイス132の能力のうちの1つまたは複数を決定することができる。
【0068】
存在API 116は、ソースコンピューティングデバイス112上で表示するためのプロンプトを生成すると決定し得る。プロンプトは、視覚プロンプト、触覚プロンプト、またはオーディオプロンプトのうちの1つまたは複数を含み得る。プロンプトは、オーディオプロンプト(たとえば、ビープ音もしくはスピーチ出力)または触覚フィードバックのうちの1つまたは複数をともなう表示アイコンを含み得る。存在API 116は、信号ブロードキャスタ140によってブロードキャストされた信号の情報に基づいてプロンプトの種類を選択することができる。存在API 116は、UIテンプレート130のデータ構造にアクセスして、プロンプトに使用するデザインまたはテンプレートを特定し、それから、テンプレートに基づいてプロンプトを生成することができる。UIテンプレート130は、異なる種類のデバイスまたは能力のための異なるアイコンを含み得る。たとえば、ターゲットコンピューティングデバイス132がターゲットデジタルアシスタント142を有する場合、UIテンプレート130は、デジタルアシスタントの能力を持つターゲットコンピューティングデバイス132のためにマイクロフォンアイコンを使用することを示すタグまたはメタデータとともにマイクロフォンのためのアイコンを含み得る。
【0069】
信号ブロードキャスタ140は、生成するプロンプトの種類についての情報を信号に含めることができる。たとえば、信号は、ターゲットコンピューティングデバイス132の種類に対応する視覚的アイコンのデータを含み得る。場合によっては、存在API 116は、コンピューティングデバイスの種類、または信号に関連するその他の情報に基づいて、表示するプロンプトの種類または視覚的アイコンを決定し得る。
【0070】
たとえば、存在API 116は、ターゲットコンピューティングデバイス132の能力を判定し得る。能力は、たとえば、ターゲットコンピューティングデバイス132が、1つもしくは複数のストリーミングサービスからのストリーミングメディアコンテンツを再生することができるテレビであり、天気を提供することができ、データ処理システム102にアクセスすることができ、ターゲットデジタルアシスタント142、コントローラ138、クエリプロセッサ134を用いて構成されており、スピーカを含むこと、またはその他の能力情報を含み得る。存在API 116は、信号内の、または他の方法でターゲットコンピューティングデバイス132から取得された情報に基づいて、プロンプトを生成するべきかどうかを決定することができる。たとえば、信号ブロードキャスタ140によってブロードキャストされた信号は、ターゲットコンピューティングデバイス132がコントローラ138、ターゲットデジタルアシスタント142、またはクエリプロセッサ134のうちの1つまたは複数を含むことを示す情報を信号に含めることによって、ターゲットコンピューティングデバイス132の能力を示し得る。存在API 116は、ターゲットコンピューティングデバイス132がコントローラ138、ターゲットデジタルアシスタント142、またはクエリプロセッサ134のうちの1つまたは複数を含むという判定に応答して、プロンプトを生成すると決定し得る。たとえば、ターゲットコンピューティングデバイス132がコントローラ138およびクエリプロセッサ134を含むという判定に応答して、存在API 116は、ターゲットコンピューティングデバイス132と接続またはペアリングするべきかどうかをユーザに尋ねる要求をともなうプロンプトとともにアイコンを生成すると決定し得る。
【0071】
存在API 116は、ターゲットコンピューティングデバイス132の能力に基づいて、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132を制御可能であることを示すプロンプトを生成し得る。ターゲットコンピューティングデバイス132がコントローラ138およびクエリプロセッサ134を含む場合、存在API 116は、ソースコンピューティングデバイス112が、あたかもクエリがターゲットデジタルアシスタント142およびターゲットコンピューティングデバイス132のマイクロフォンによって検出されたかのようにクエリプロセッサ134によって処理され得るクエリをコントローラ138に転送することができる仮想コントローラ120を呼び出すことが可能であると判定し得る。
【0072】
ソースコンピューティングデバイス112は、プロンプトに応答して、ターゲットコンピューティングデバイス132を制御する命令を受信することができる。命令は、ソースコンピューティングデバイス112のユーザインターフェースを介して受信され得る。命令は、ユーザがプロンプトとインタラクションすることを介して受信され得る。ユーザは、ソースコンピューティングデバイス112のタッチインターフェースを介してプロンプトとインタラクションし得る。ユーザは、音声入力によってプロンプトとインタラクションし得る。ユーザは、ジェスチャによってプロンプトとインタラクションし得る。たとえば、プロンプトは、ソースコンピューティングデバイス112のタッチインターフェースを使用してユーザが選択またはクリックすることができるボタンまたはその他のユーザインターフェース要素であることが可能である。
【0073】
ユーザがプロンプトとインタラクションしないか、またはソースコンピューティングデバイス112がターゲットコンピューティングデバイス132を制御する命令を受信しない場合、ソースコンピューティングデバイス112は、プロンプトを削除するかまたは非表示にすると決定し得る。たとえば、ソースコンピューティングデバイス112は、プロンプトを継続時間の間表示することができ、継続時間または時間間隔内にユーザがターゲットコンピューティングデバイス132を制御する命令を与えない場合、ソースコンピューティングデバイス112は、ユーザがターゲットコンピューティングデバイス132を制御することに関心がないと判定し、それに応じて、アイコンを削除し得る。ユーザがターゲットコンピューティングデバイス132を制御したくない場合にアイコンを削除することによって、ソースコンピューティングデバイス112は、バッテリまたはプロセッサの消費などのリソースの消費を削減することができる。
【0074】
ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132とペアリングするように設計され、構築され、動作可能なペアリングコンポーネント118を含み得る。ペアリングコンポーネント118は、ターゲットコンピューティングデバイス132とペアリングするためのハンドシェイクプロセスを実行することができる。ペアリングコンポーネント118は、ターゲットコンピューティングデバイス132を制御する命令を受信することに応答して、ターゲットコンピューティングデバイス132とペアリングすることができ、命令は、存在API 116によって生成されたプロンプトに応答して受信され得る。ペアリングコンポーネント118は、命令に応答して、ターゲットコンピューティングデバイス132との通信チャネルを確立することができる。
【0075】
ペアリングコンポーネント118は、1つまたは複数の技術を使用して通信チャネルを確立し得る。ペアリングコンポーネント118は、ターゲットコンピューティングデバイス132の1つまたは複数のコンポーネントとの通信チャネルを確立し得る。ペアリングコンポーネント118は、ターゲットコンピューティングデバイス132のコントローラ138との通信チャネルを確立し得る。たとえば、コントローラ138は、WebSocketプロトコルを提供し得る。WebSocketプロトコルは、伝送制御プロトコル(「TCP」)上で全二重通信チャネルを提供するように構成された通信プロトコルを指すかまたは含み得る。WebSocketプロトコルは、開放型システム間相互接続(「OSI」)モデルのレイヤ7に位置し得る。コントローラ138は、WebSocketプロトコルと、HTTPポート443および80などの通信ポートとを使用して、ソースコンピューティングデバイス112と通信するように構成され得る。WebSocketプロトコルは、リアルタイムのデータ転送を容易にすることができる。
【0076】
場合によっては、コントローラ138は、gRPCリモートプロシージャコールなどのリモートプロシージャコールを使用するように構成され得る。gRPCは、転送のためにHTTP/2を使用し、インターフェース記述言語としてProtocol Buffersを使用して通信することができるオープンソースのリモートプロシージャコールを指し得る。gRPCは、認証、双方向ストリーミングおよびフロー制御、ブロッキングまたはノンブロッキングバインディング、キャンセル、ならびにタイムアウトを提供することができる。コントローラ138は、gRPCプロトコルを使用して、異なるプログラミング言語のためのクロスプラットフォームのクライアントおよびサーババインディングを生成することができる。したがって、ペアリングコンポーネント118は、ワイヤレスプロトコル上の双方向全二重通信レイヤとして通信チャネルを確立することができる。
【0077】
ペアリングコンポーネント118は、通信チャネルを確立するためにコントローラ138とのハンドシェイクプロセスを実行することができる。ハンドシェイクプロセス中に、ペアリングコンポーネント118は、ユーザ名、パスワード、セキュリティトークン、デジタル証明書、またはその他の認証情報などの認証クレデンシャルを提供することができる。コントローラ138は、クレデンシャルを使用して、プロキシとしてデータ処理システム102との接続を確立することができる。たとえば、ターゲットデジタルアシスタント142は、認証クレデンシャルを使用して、ソースコンピューティングデバイス112のユーザに代わってサーバデジタルアシスタント108との接続を確立し、それによって、ターゲットデジタルアシスタント142をソースコンピューティングデバイス112のソースデジタルアシスタント114に変換し得る。そうすることによって、ターゲットデジタルアシスタント142は、ソースコンピューティングデバイス112のユーザからのクエリに応答し、そのクエリを遂行することができる。たとえば、ターゲットデジタルアシスタント142は、認証クレデンシャルを使用して、データ処理システム102内のクラウドストレージシステムに記憶されたユーザの写真にアクセスし、ターゲットコンピューティングデバイス132を介して写真を提示することによって、「私の写真を見せて」などのクエリに応答し得る。
【0078】
ターゲットコンピューティングデバイス132は、ターゲットデジタルアシスタント142をカスタマイズするか、またはユーザからのクエリに応答するようにターゲットデジタルアシスタント142を構成するために、クレデンシャルを使用して、ソースコンピューティングデバイス112のユーザのプロファイル128をロードすることができる。プロファイル128の情報は、たとえば、音楽情報、メディアストリーミング情報、写真、プリファレンス、アプリケーションプリファレンス、設定、または連絡先情報を含む、ソースコンピューティングデバイス112のユーザによって確立された任意のプロファイル情報を含み得る。
【0079】
ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132とペアリングしたか、またはターゲットコンピューティングデバイス132との通信チャネルを確立した後、ソースコンピューティングデバイス112は、アクティブな通信チャネルまたは通信セッションを示すアイコンを生成し、ディスプレイデバイス122上に提示することができる。
【0080】
ソースコンピューティングデバイス112は、アクティブなセッションを示すアイコンをディスプレイデバイス122上に維持することができる。アイコンは、通信セッションがアクティブである限りディスプレイデバイス122上に見えたままである持続的アイコンであることが可能である。アイコンは、ディスプレイデバイス122上に提示されてよいその他のグラフィカルユーザインターフェース要素の上に被せられ得る。ソースコンピューティングデバイス112は、仮想コントローラ120が通信チャネルを介してクエリを転送するためにアクティブであることを示すアイコンをディスプレイデバイス122上に維持することができる。
【0081】
通信チャネルまたはセッションの確立に応答して、ソースコンピューティングデバイス112またはペアリングコンポーネント118は、ソースコンピューティングデバイス112によって受信されたクエリを通信チャネルを介してターゲットコンピューティングデバイス132に転送してターゲットコンピューティングデバイス132を制御するために、ソースコンピューティングデバイス112上の仮想コントローラ120を呼び出すことができる。ソースコンピューティングデバイス112は、ペアリングコンポーネント118によって確立された通信セッションまたはチャネルを介して、ターゲットコンピューティングデバイス132のコントローラ138にクエリを転送するように設計され、構築され、動作可能な仮想コントローラ120を含み得る。仮想コントローラ120は、ソースコンピューティングデバイス112のユーザからのクエリを受信するまたは検出することができる。クエリは、マイクロフォン124によって検出された音声入力クエリであることが可能である。
【0082】
場合によっては、ソースデジタルアシスタント114は、音声入力を検出し、音声入力を解析し得る。ソースデジタルアシスタント114は、音声入力を解析して要求またはクエリを特定し得る。ソースデジタルアシスタント114は、ターゲットコンピューティングデバイス132とのアクティブな通信セッションが存在するかどうかを判定するために、仮想コントローラ120に問い合わせることができる。ソースデジタルアシスタント114は、(たとえば、信号ブロードキャスタ140によって以前にブロードキャストされた信号に基づいて)ターゲットコンピューティングデバイス132の能力を判定することができる。ソースデジタルアシスタント114は、ターゲットコンピューティングデバイス132が要求またはクエリを遂行することができると判定し得る。ソースデジタルアシスタント114は、音声入力クエリを仮想コントローラ120に転送し、クエリをコントローラ138に転送するように仮想コントローラ120に命令することができる。コントローラ138は、仮想コントローラ120からクエリを受信すると、クエリをターゲットコンピューティングデバイス132のクエリプロセッサ134に転送することができる。クエリプロセッサ134は、あたかもクエリがターゲットコンピューティングデバイス132のコンポーネントによって検出されたかのようにクエリを処理することができる。したがって、ターゲットコンピューティングデバイス132は、あたかもターゲットコンピューティングデバイス132がクエリ自体を最初に検出したかのように、ソースコンピューティングデバイス112によって検出された音声入力をシームレスに処理することができる。
【0083】
場合によっては、仮想コントローラ120とコントローラ138との間のアクティブな通信セッションが存在する間、仮想コントローラ120は、自動的にまたはデフォルトで、ソースコンピューティングデバイス112によって受信されたすべてのクエリをコントローラ138に転送し得る。場合によっては、仮想コントローラ120は、クエリの検出に応答して、クエリを転送するべきかどうかをユーザに尋ねるプロンプトを提供し得る。場合によっては、仮想コントローラ120は、ユーザがコントローラ138へのクエリの転送を停止または阻止することを可能にするタイマ付きのプロンプトを生成するが、デフォルトでクエリを転送し得る。したがって、仮想コントローラ120は、アクティブな通信セッション中に、クエリのシームレスな転送を提供することができ、クエリプロセッサ134は、あたかもクエリが最初にターゲットコンピューティングデバイス132自体によって検出されたまたは受信されたかのようにクエリをシームレスに処理することができる。ターゲットコンピューティングデバイス132は、ソースコンピューティングデバイス112から転送されたクエリを受信し、ターゲットコンピューティングデバイス132の機能を制御するためにクエリを処理することができる。
【0084】
ソースコンピューティングデバイス112は、マイクロフォン124によって、クエリを含むオーディオ入力を検出することができる。ソースコンピューティングデバイス112は、通信チャネルを介してターゲットコンピューティングデバイス132にオーディオ入力を転送することができる。ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132とのアクティブな通信セッションが存在する間、すべてのクエリを自動的に転送すると決定し得る。ターゲットコンピューティングデバイス132は、オーディオ入力を受信し、クエリを特定するためにオーディオ入力を解析し、ターゲットコンピューティングデバイス132の機能を制御するためにクエリを処理することができる。たとえば、クエリは、アクション映画を再生するか、特定の映画を再生するか、ユーザの写真を見せるか、または天気を提供するためのものであり得る。クエリプロセッサ134は、入力オーディオを受け取り、クエリを特定するために入力オーディオを解析し、ハンドシェイクプロセス中に受信された認証クレデンシャルに応答してターゲットコンピューティングデバイス132によって受信またはアクセスされたプロファイル情報128に基づいてクエリを遂行することができる。場合によっては、クエリを遂行するために、クエリプロセッサ134は、プロファイル情報を使用してデータ処理システム102と通信し得る。データ処理システム102は、たとえば、提示のためにターゲットコンピューティングデバイス132に写真を提供し得る。
【0085】
データ処理システム102は、補足デジタルコンテンツプロバイダ144からのコンテンツアイテムを選択し、提供することができる。データ処理システム102は、補足コンテンツアイテムの要求を生成することができる。たとえば、データ処理システム102は、ターゲットコンピューティングデバイス132からコンテンツの要求を受信し得る。コンテンツの要求は、写真、天気、旅行情報、ライドシェアの要求、ストリーミングマルチメディア、またはその他の要求のためのものであることが可能である。データ処理システム102は、クエリプロセッサ134またはターゲットデジタルアシスタント142から要求を受信し得る。ターゲットコンピューティングデバイス132は、アクティブな通信セッション中に仮想コントローラ120から転送されたクエリの受信に応答してコンテンツの要求を生成し、提供することができる。
【0086】
データ処理システム102は、補足コンテンツアイテムの第2のまたは新しい要求を生成することができる。データ処理システム102は、ターゲットコンピューティングデバイス132からの要求の受信に応答して新しい要求を生成することができる。たとえば、ターゲットコンピューティングデバイス132によって要求されるコンテンツ(たとえば、ユーザの写真)を提供することに加えて、データ処理システム102は、広告デジタルオブジェクトなどの補足コンテンツの新しい補足要求を生成し得る。データ処理システム102は、新しい補足要求をコンテンツセレクタ110に提供することができる。コンテンツセレクタ110は、ターゲットコンピューティングデバイス132から受信された元の要求に関連する情報、またはソースコンピューティングデバイス112のプロファイル128に関連するプロファイル情報を使用して、リアルタイムのコンテンツ選択プロファイルを実行することができる。コンテンツセレクタ110は、補足デジタルコンテンツの第2の要求に応答して、ソースコンピューティングデバイス112とターゲットコンピューティングデバイス132との間の通信チャネルがアクティブであることに応答してソースコンピューティングデバイス112に関連するプロファイル情報に基づいて、第2の要求に応答する補足コンテンツアイテムを選択することができる。データ処理システム102は、ターゲットコンピューティングデバイス132上に表示するために、要求のコンテンツとは異なる補足コンテンツアイテムを提供することができる。したがって、ターゲットコンピューティングデバイス132は、仮想コントローラ120によって転送された要求に応答するコンテンツ(たとえば、天気情報)と、補足コンテンツアイテム(たとえば、広告)とを提示することができる。補足コンテンツアイテムは、元の要求、またはプロファイル情報もしくはその他の情報に関連し得る。
【0087】
ソースコンピューティングデバイス112とターゲットコンピューティングデバイス132との間の通信セッションまたはチャネルは、終了または切断され得る。通信チャネルまたはセッションを終了または切断することは、チャネルを切断すること、通信セッションを終わらせること、さらなる通信を阻止すること、さらなる通信を防止すること、またはその他の方法でソースコンピューティングデバイス112とターゲットコンピューティングデバイス132との間のデータの通信を停止することを指し得る。しかし、場合によっては、通信セッションを終わらせることは、信号ブロードキャスタ140が存在API 116によって受信または検出され得る信号をブロードキャストすることを停止または防止しない場合がある。たとえば、通信セッションを終わらせることは、ソースコンピューティングデバイス112からターゲットコンピューティングデバイス132へのクエリの転送を停止し得る。
【0088】
ソースコンピューティングデバイス112、ターゲットコンピューティングデバイス132、またはデータ処理システム102のうちの1つまたは複数が、通信チャネルを終了するまたは終わらせることができる。通信チャネルは、通信チャネルを終了する要求に応答して終わらされ得る。通信チャネルは、イベント、条件、もしくはトリガに基づいて、またはイベント、条件、もしくはトリガに応答して終了し得る。たとえば、通信チャネルは、時間間隔または継続時間(たとえば、10分、15分、20分、30分、または1時間)に基づいて終了し得る。通信チャネルは、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132から遠ざかるかまたはターゲットコンピューティングデバイス132の範囲内にもはやないときに終了し得る。たとえば、ソースコンピューティングデバイス112は、信号ブロードキャスタ140によってブロードキャストされた信号を申し分のない信号強度(または振幅または電力)でもはや検出することができない場合に通信チャネルを終了し得る。通信チャネルは、クエリが遂行された後に終了され得る。たとえば、ターゲットコンピューティングデバイス132が、クエリが完了されたという信号をソースコンピューティングデバイス112に送信することが可能であり、ソースコンピューティングデバイス112が、ターゲットコンピューティングデバイス132から切断すると決定することが可能である。場合によっては、ソースコンピューティングデバイス112は、ユーザが通信チャネルを終了する命令を与えるか、またはソースコンピューティングデバイス112がターゲットコンピューティングデバイス132から範囲外に移動するまで、ターゲットコンピューティングデバイス132に接続されたままであるかまたは持続的な通信チャネルを維持し得る。場合によっては、ターゲットコンピューティングデバイス132またはソースコンピューティングデバイス112は、アイドルタイムアウト条件に応答して通信チャネルを終了すると決定し得る。たとえば、仮想コントローラ120が、時間間隔(たとえば、10分、15分、20分、30分、1時間、またはその他の時間間隔)の間、コントローラ138にいかなるクエリも転送しない場合、ソースコンピューティングデバイス112またはターゲットコンピューティングデバイス132は、通信チャネルがタイムアウトしたと判定し得る。使用されていない場合に通信チャネルを終了することは、セキュリティの脆弱性およびリソースの利用(たとえば、プロセッサ、メモリ、またはバッテリの利用)を減らすことができる。
【0089】
通信チャネルを終了すると、または通信チャネルがその他の形でタイムアウトすると、ターゲットコンピューティングデバイス132は、ソースコンピューティングデバイス112から受信されたすべての認証クレデンシャルまたはプロファイル情報を削除することができる。ターゲットコンピューティングデバイス132は、通信チャネル中にソースコンピューティングデバイス112から受信されたすべてのプロファイル情報またはその他の情報を消去、スクラブ、または削除することができる。ターゲットコンピューティングデバイス132は、ソースコンピューティングデバイス112から受信されたクエリを遂行するためにデータ処理システム102から受信されたすべての情報をさらに消去、スクラブ、または削除することができる。たとえば、ターゲットコンピューティングデバイス132は、写真を見せる使用クエリに応答してデータ処理システム102から受信された可能性がある写真を削除し得る。したがって、ターゲットコンピューティングデバイス132は、通信チャネルの確立に従って受信された、または通信チャネルの確立の後に受信されたすべてのユーザ情報を削除することができる。
【0090】
図2は、実装によるデバイスの動的な遠隔制御のためのシステムの例示的な動作の図である。動作200は、たとえば、ソースコンピューティングデバイス112、ターゲットコンピューティングデバイス132、またはデータ処理システム102を含む
図1に描かれた1つまたは複数のシステムまたはコンポーネントによって実行され得る。ソースコンピューティングデバイス112は、スマートフォンなどのモバイルデバイスであることが可能である。ターゲットコンピューティングデバイス132は、スマートディスプレイまたはテレビであることが可能である。
【0091】
ソースコンピューティングデバイス112は、202において初期状態であることが可能である。初期状態は、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132に近接していない、またはターゲットコンピューティングデバイス132の範囲内にない状態を指し得る。初期状態の間、ソースコンピューティングデバイス112とターゲットコンピューティングデバイス132との間には通信チャネルが存在しない場合がある。初期状態202である間、ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132の信号ブロードキャスタによってブロードキャストされた信号を受信していない場合がある。たとえば、初期状態202の間、ソースコンピューティングデバイス112は、異なる部屋、フロア、または建物内など、ターゲットコンピューティングデバイス132から離れていることが可能である。
【0092】
ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132に向かって動かされ得る。たとえば、ソースコンピューティングデバイス112のユーザは、ソースコンピューティングデバイス112をターゲットコンピューティングデバイス132の近く、またはターゲットコンピューティングデバイス132によってブロードキャストされている信号の範囲内に運ぶことができる。204において、ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132によってブロードキャストされた信号を検出することができる。ソースコンピューティングデバイス112は、たとえば、存在APIを介して信号を検出することができる。ソースコンピューティングデバイス112は、信号および信号に関連する対応する情報の検出に応答してプロンプト206を生成することができる。プロンプトは、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132を制御するために使用され得ることを示すことができる。プロンプトは、たとえば、「あなたのTVを制御」であることが可能であり、TVは、テレビまたはターゲットコンピューティングデバイス132を指し得る。
【0093】
ソースコンピューティングデバイス112のユーザは、プロンプトを選択するか、またはその他の方法で入力を提供することによって、プロンプト206に応答することができる。入力は、208において、ソースコンピューティングデバイス112に通信チャネルを確立させることができる。たとえば、ユーザは、プロンプト206をクリックすることができ、選択に応答して、ソースコンピューティングデバイス112は、通信チャネルを確立する(208)ためにターゲットコンピューティングデバイス132とのハンドシェイクプロセスを実行することができる。
【0094】
通信チャネルを確立すると、場合によっては、ソースコンピューティングデバイス112は、ソースコンピューティングデバイス112がターゲットコンピューティングデバイス132とのアクティブな通信セッションを有することを示す持続的アイコン210を生成し、提示し得る。ターゲットコンピューティングデバイス132が音声入力を受け取り、音声入力を処理する能力を有する場合、アイコンは、マイクロフォンであることが可能である。場合によっては、ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132が実行することができる機能の種類に関する提案212を提供し得る。提案212は、ターゲットコンピューティングデバイス132の能力または機能に基づいて生成され得る。ソースコンピューティングデバイス112は、ソースコンピューティングデバイス112のメモリに記憶されたUIテンプレートに基づいて提案を生成し得る。ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132またはデータ処理システム102から提案を受信し得る。
【0095】
214において、ソースコンピューティングデバイス112は、ソースコンピューティングデバイス112のマイクロフォンからクエリを受け取ることができる。クエリは、「私の写真を見せて」であり得る。216において、ソースコンピューティングデバイス112は、ターゲットコンピューティングデバイス132にクエリを転送すると決定することができる。たとえば、ソースコンピューティングデバイス112は、入力クエリおよびアクティブな通信セッションを検出し、それから、ターゲットコンピューティングデバイス132のコントローラにクエリを転送すると決定することができる仮想コントローラを含み得る。
【0096】
ターゲットコンピューティングデバイス132は、ソースコンピューティングデバイス112から転送されたクエリを受信することができる。ターゲットコンピューティングデバイス132は、確立された通信チャネルのおかげで、あたかも音声クエリを仮想コントローラからではなくユーザから直接受け取ったかのようにクエリを処理することができる。ターゲットコンピューティングデバイス132は、デフォルトのまたは現在の表示218(たとえば、スクリーンセーバ、テレビ番組、またはテレビに現在提示されているその他のメディア)を、ソースコンピューティングデバイス112のアカウントまたはプロファイルに関連する写真の表示220によって変更し得る。
【0097】
図3は、実装によるデバイスの動的な遠隔制御の例示的な方法の図である。方法300は、たとえば、データ処理システム、ソースコンピューティングデバイス、またはターゲットコンピューティングデバイスを含む
図1に描かれた1つまたは複数のシステムまたはコンポーネントによって実行され得る。302において、ソースデバイスが、ターゲットデバイスの存在を検出することができる。ソースデバイスは、スマートフォンもしくはスマートウォッチなどのモバイルコンピューティングデバイス、またはその他のコンピューティングデバイスを含み得る。ソースデバイスは、ターゲットデバイスによって送信またはブロードキャストされた信号を検出することによって存在を検出することができる。ターゲットデバイスは、たとえば、スマートテレビもしくはディスプレイ、またはスピーカ、またはIoTデバイス(たとえば、スマート家電、スピーカ、もしくは自動車)などのネットワーク接続デバイスを含み得る。
【0098】
304において、ソースデバイスは、ターゲットデバイスの能力を判定することができる。ソースデバイスは、ターゲットデバイスがソースデバイスによってクエリが転送されることが可能なコントローラを含むと判定し得る。ソースデバイスは、ターゲットデバイスがデジタルアシスタントをともなって構成されていると判定し得る。ソースデバイスは、ブロードキャストされた信号内に存在する情報に基づいて、またはデバイスの識別子もしくは種類を使用して検索またはウェブ検索を実行するなどのその他の技術を使用して、機能を判定することができる。
【0099】
306において、ソースデバイスは、ターゲットデバイスがソースデバイスと互換性があるかどうかを判定することができる。ソースデバイスは、ソースデバイスが遂行のためにターゲットデバイスにクエリを転送することを可能にするソースデバイスの条件または仕様に基づいて互換性の一致を判定することができる。たとえば、ターゲットデバイスが、ソースデバイスの仮想コントローラからクエリを受信するように構成されるコントローラを含む場合、ソースデバイスは、ターゲットデバイスがソースデバイスと互換性があると判定し得る。場合によっては、互換性のマッチングは、ソースデバイスまたはターゲットデバイスにインストールされたソフトウェアアプリケーションもしくはプログラムのバージョンを参照するかまたはそのようなバージョンに基づき得る。場合によっては、互換性の一致は、ユーザプリファレンスに基づき得る。たとえば、ソースデバイスに記憶されているプロファイルが、通信セッションを確立するべきターゲットデバイスの種類に関する設定またはプリファレンスを含み得る。ユーザは、プロファイルにおいて、スマートディスプレイまたはスマートテレビとの通信セッションのみを確立することを示し得る。したがって、ターゲットデバイスがスマートディスプレイまたはスマートテレビである場合、ソースデバイスは、306において、互換性の一致があると判定し得る。互換性の一致がない(たとえば、デバイスの種類が設定と一致しないか、またはターゲットデバイスがソースデバイスと互換性のあるコントローラもしくはデジタルアシスタントを持たない)場合、方法は、ブロック308に進んで、ターゲットデバイスのさらなる存在検出を阻止することができる。
【0100】
しかし、306においてターゲットデバイスがソースデバイスと互換性があるとソースデバイスが判定する場合、ソースデバイスは、310に進んで、プロンプトを生成し、提供することができる。ソースデバイスは、ターゲットデバイスの互換性または能力に基づいてプロンプトを提供することができる。たとえば、ターゲットデバイスが音声クエリを処理することができるデジタルアシスタントまたはクエリプロセッサを含む場合、プロンプトは、マイクロフォンを含み得る。プロンプトは、ターゲットデバイスとの通信チャネルまたは通信セッションを確立するための認可をユーザに求めることができる。ソースデバイスは、ソースデバイスのディスプレイを介してプロンプトを提示することができる。場合によっては、プロンプトは、オーディオプロンプト、視覚プロンプト、触覚プロンプト、もしくはユーザの注意を引くその他の種類のプロンプトを含むかまたはそのようなプロンプトに関連付けられ得る。
【0101】
312において、ソースデバイスは、ターゲットデバイスを制御する命令を受信することができる。命令は、プロンプトに応答する、ソースデバイスからのユーザ入力を介して受信され得る。命令は、ターゲットデバイスを制御したいという希望を示すタッチ入力または音声入力であることが可能である。ターゲットデバイスを制御することは、たとえば、ターゲットデバイス上でビデオもしくは音楽を再生すること、ターゲットデバイスを介して情報にアクセスすること、ターゲットデバイス上で写真を再生すること、またはその他の方法でターゲットデバイスの機能もしくは能力を使用することを含み得る。ユーザがデバイスを制御する命令を入力しないか、またはターゲットデバイスを制御しないインジケーションを与える場合、方法は、314に進んで、通信チャネルの確立を阻止することができる。場合によっては、ソースデバイスは、プロンプトを修正し得る。プロンプトを修正することは、プロンプトを削除すること、プロンプトを非表示にすること、もしくはプロンプトを変更することを指すかまたは含み得る。たとえば、ユーザが通信チャネルを確立しないことを示すか、またはプロンプトが生成された後の所定の量の時間(たとえば、1分、2分、3分、4分など)の間、いかなる入力も与えない場合、ソースデバイスは、プロンプトをディスプレイ上でより小さくするか、または徐々に消すか、または背景に移動させ得る。
【0102】
しかし、ユーザが、プロンプトに応答して、ターゲットデバイスとの通信チャネルを確立することを示す場合、方法は、316に進んで、ターゲットデバイスとの通信チャネルを確立することができる。通信チャネルを確立することは、ハンドシェイクプロセスを実行すること、認証クレデンシャルを共有すること、またはプロファイルを共有することを含み得る。通信チャネルは、gRPCセッションまたはその他の種類のプロトコルであることが可能である。
【0103】
318において、ソースデバイスは、仮想コントローラを呼び出すことができる。ソースデバイスは、ターゲットデバイスとの通信セッションの確立に応答して仮想コントローラを呼び出すかまたは構成し得る。仮想コントローラは、ターゲットデバイスのためのプロキシ入力インターフェースとして働くことができる。たとえば、仮想コントローラは、ソースデバイスによって受信された音声入力またはクエリを検出し、それから、ターゲットデバイスにクエリを転送し得る。ターゲットデバイスは、転送されたクエリを受信すると、あたかもクエリがターゲットデバイスにおいてユーザから直接受信されたかのようにクエリを処理し、それにより、ソースデバイスを介したターゲットデバイスのシームレスな仮想制御を提供することができる。
【0104】
図4は、例示的なコンピュータシステム400のブロック図である。コンピュータシステムまたはコンピューティングデバイス400は、システム100、またはデータ処理システム102、ソースコンピューティングデバイス112、もしくはターゲットコンピューティングデバイス132などのそのシステム100のコンポーネントを含むかまたはそれを実装するために使用され得る。データ処理システム102、ソースコンピューティングデバイス112、またはターゲットコンピューティングデバイス132は、インテリジェントなパーソナルアシスタントまたは音声に基づくデジタルアシスタントを含み得る。コンピューティングシステム400は、情報を伝達するためのバス405またはその他の通信コンポーネントと、情報を処理するためのバス405に結合されたプロセッサ410または処理回路とを含む。また、コンピューティングシステム400は、情報を処理するためのバスに結合された1つまたは複数のプロセッサ410または処理回路を含み得る。コンピューティングシステム400は、情報およびプロセッサ410によって実行される命令を記憶するための、バス405に結合されたランダムアクセスメモリ(RAM)またはその他のダイナミックストレージデバイスなどのメインメモリ415も含む。メインメモリ415は、データリポジトリであるかまたはデータリポジトリを含み得る。メインメモリ415は、位置情報、一時的な変数、またはプロセッサ410による命令の実行中のその他の中間情報を記憶するためにも使用され得る。コンピューティングシステム400は、静的な情報およびプロセッサ410のための命令を記憶するための、バス405に結合された読み出し専用メモリ(ROM)420またはその他のスタティックストレージデバイスをさらに含んでよい。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス425が、情報および命令を永続的に記憶するためにバス405に結合され得る。ストレージデバイス425は、データリポジトリを含むかまたはデータリポジトリの一部であり得る。
【0105】
コンピューティングシステム400は、ユーザに対して情報を表示するための液晶ディスプレイまたはアクティブマトリックスディスプレイなどのディスプレイ435にバス405を介して結合される場合がある。英数字およびその他のキーを含むキーボードなどの入力デバイス430が、プロセッサ410に情報およびコマンド選択を伝達するためにバス405に結合される場合がある。入力デバイス430は、タッチスクリーンディスプレイ435を含み得る。入力デバイス430は、プロセッサ410に方向情報およびコマンド選択を伝達するためおよびディスプレイ435上でカーソルの動きを制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソルコントロールも含み得る。ディスプレイ435は、たとえば、
図1のデータ処理システム102、ソースコンピューティングデバイス112、ターゲットコンピューティングデバイス132、またはその他のコンポーネントの一部であることが可能である。
【0106】
本明細書に記載のプロセス、システム、および方法は、プロセッサ410によるメインメモリ415に含まれる命令の配列の実行に応答してコンピューティングシステム400によって実施され得る。そのような命令は、ストレージデバイス425などの別のコンピュータ可読媒体からメインメモリ415に読み込まれ得る。メインメモリ415に含まれる命令の配列の実行は、コンピューティングシステム400に本明細書に記載の例示的なプロセスを実行させる。マルチプロセッシング配列の1つまたは複数のプロセッサも、メインメモリ415に含まれる命令を実行するために使用される場合がある。配線による回路が、本明細書に記載のシステムおよび方法と一緒にソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて使用され得る。本明細書に記載のシステムおよび方法は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されない。
【0107】
例示的なコンピューティングシステムが
図4に示されたが、本明細書に記載の動作を含む対象は、本明細書において開示される構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。
【0108】
本明細書において検討されるシステムがユーザについての個人情報を収集するか、または個人情報を利用する可能性がある状況に関して、ユーザは、プログラムまたは特徴が個人情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルな行為もしくは活動、ユーザのプリファレンス、またはユーザの位置についての情報)を収集してよいかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバもしくはその他のデータ処理システムから受信するべきかどうかまたはどのようにして受信するべきかを制御する機会を与えられる場合がある。さらに、パラメータを生成するときに個人を特定することができる情報が削除されるように、特定のデータが、それが記憶されるかまたは使用される前に1つまたは複数の方法で匿名化されてよい。たとえば、ユーザのアイデンティティが、個人を特定することができる情報がユーザに関して決定され得ないように匿名化される場合があり、または位置情報が取得される場合に、ユーザの地理的位置が、ユーザの特定の位置が決定され得ないように(都市、郵便番号、もしくは州のレベルになど)一般化される場合がある。したがって、ユーザは、どのようにして情報がユーザについて収集され、コンテンツサーバによって使用されるかを制御する可能性がある。
【0109】
本明細書に記載の対象および動作は、本明細書において開示される構造およびそれらの構造的均等物を含む、デジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せにおいて実装され得る。本明細書に記載の対象は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために1つまたは複数のコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の回路として実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成される伝播信号、たとえば、機械によって生成される電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであることが可能であり、あるいはそれらに含まれることが可能である。コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることが可能である。また、コンピュータストレージ媒体は、1つもしくは複数の別個のコンポーネントもしくは媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であることが可能であり、またはそれらに含まれることが可能である。本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶されたまたはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【0110】
用語「データ処理システム」、「コンピューティングデバイス」、「コンポーネント」、または「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するための様々な装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を生成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。たとえば、存在API 116、ペアリングコンポーネント118、仮想コントローラ120、またはその他のコンポーネントは、1つもしくは複数のデータ処理装置、システム、コンピューティングデバイス、もしくはプロセッサを含むかまたは共有し得る。
【0111】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境内での使用に好適なその他の単位としての形態を含む任意の形態でデプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得る。コンピュータプログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の連携されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるようにデプロイされ得る。
【0112】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを実行するために1つまたは複数のコンピュータプログラム(たとえば、データ処理システム102のコンポーネント)を1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完され得るか、または専用の論理回路に組み込まれ得る。
【0113】
本明細書に記載の対象は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の対象の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの組合せを含むコンピューティングシステムに実装され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0114】
システム100またはシステム400などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワーク(たとえば、ネットワーク105)を通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実装において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(たとえば、デジタルコンポーネントを表すデータパケット)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)が、サーバにおいてクライアントデバイスから受信され(たとえば、ソースコンピューティングデバイス112または補足デジタルコンテンツプロバイダデバイス144からデータ処理システム102によって受信され)得る。
【0115】
動作が特定の順序で図面に描かれているが、そのような動作は、示された特定の順序でまたは逐次的順序で実行される必要があるわけではなく、またすべての示された動作が実行される必要があるわけではない。本明細書に記載のアクションは、異なる順序で実行され得る。
【0116】
様々なシステムコンポーネントの分割は、すべての実装において分割を必要とするわけではなく、説明されたプログラムコンポーネントは、単一のハードウェアまたはソフトウェア製品に含まれ得る。たとえば、自然言語プロセッサ106およびインターフェース104は、単一のコンポーネント、アプリ、もしくはプログラム、または1つもしくは複数の処理回路を有する論理デバイス、またはデータ処理システム102の1つもしくは複数のサーバの一部であることが可能である。
【0117】
今やいくつかの例示的な実装を説明したが、以上は例示的であり、限定的でなく、例として提供されたことは明らかである。特に、本明細書において提示された例の多くは方法の行為またはシステムの要素の特定の組合せを含むが、それらの行為およびそれらの要素は、同じ目的を達成するためにその他の方法で組み合わされる場合がある。1つの実装に関連して検討された行為、要素、および特徴は、その他の実装または実装の同様の役割から除外されるように意図されていない。
【0118】
本明細書において使用された言葉遣いおよび用語は、説明を目的としており、限定と見なされるべきでない。本明細書における「~を含む(including)」、「~を含む(comprising)」、「~を有する(having)」、「~を含む(containing)」、「~を含む(involving)」、「~によって特徴付けられる(characterized by)」、「~ことを特徴とする(characterized in that)」、およびこれらの変化形の使用は、その前に列挙された項目、それらの項目の均等物、および追加的な項目、ならびにその前に列挙された項目だけからなる代替的な実装を包含するように意図される。1つの実装において、本明細書に記載のシステムおよび方法は、説明された要素、行為、またはコンポーネントのうちの1つ、2つ以上のそれぞれの組合せ、またはすべてからなる。
【0119】
本明細書において単数形で言及されたシステムおよび方法の実装または要素または行為へのすべての言及は、複数のこれらの要素を含む実装も包含する可能性があり、本明細書における任意の実装または要素または行為への複数形のすべての言及は、単一の要素のみを含む実装も包含する可能性がある。単数形または複数形の言及は、今開示されたシステムまたは方法、それらのコンポーネント、行為、または要素を単一のまたは複数の構成に限定するように意図されていない。任意の情報、行為、または要素に基づいている任意の行為または要素への言及は、行為または要素が任意の情報、行為、または要素に少なくとも部分的に基づく実装を含む可能性がある。
【0120】
本明細書において開示されたすべての実装は、任意のその他の実装または実施形態と組み合わされる可能性があり、「実装」、「一部の実装」、「1つの実装」などの言及は、必ずしも相互排他的ではなく、実装に関連して説明された特定の特徴、構造、または特色が少なくとも1つの実装または実施形態に含まれる可能性があることを示すように意図される。本明細書において使用されたそのような用語は、必ずしもすべてが同じ実装に言及しているとは限らない。すべての実装は、本明細書において開示された態様および実装に合致する任意の方法で包括的または排他的に任意のその他の実装と組み合わされる可能性がある。
【0121】
「または(or)」との言及は、「または(or)」を使用して記載された任意の項が記載された項のうちの1つ、2つ以上、およびすべてのいずれかを示す可能性があるように包含的であると見なされてよい。項の連言的リストのうちの少なくとも1つへの言及は、記載された項のうちの1つ、2つ以上、およびすべてのいずれかを示す包含的なまたは(OR)と見なされてよい。たとえば、「『A』および『B』のうちの少なくとも一方」との言及は、「A」のみ、「B」のみ、および「A」と「B」との両方を含み得る。「~を含む(comprising)」またはその他の非限定的用語と関連して使用されるそのような言及は、追加的な項を含み得る。
【0122】
図面、詳細な説明、または任意の請求項の技術的な特徴が後に参照符号を付されている場合、参照符号は、図面、詳細な説明、および請求項を理解し易くするために含められた。したがって、参照符号があることもないことも、いかなる請求項の要素の範囲に対するいかなる限定的な効果も持たない。
【0123】
本明細書に記載のシステムおよび方法は、それらの特徴を逸脱することなくその他の特定の形態で具現化される可能性がある。上述の実装は、説明されたシステムおよび方法の限定ではなく、例示的である。したがって、本明細書に記載のシステムおよび方法の範囲は、上述の説明ではなく添付の請求項によって示され、請求項の均等の意味および範囲内に入る変更は、それに包含される。
【符号の説明】
【0124】
100 システム
102 データ処理システム
104 インターフェース
105 ネットワーク
106 自然言語プロセッサ(「NLP」)
108 サーバデジタルアシスタント
110 コンテンツセレクタ
112 ソースコンピューティングデバイス
114 ソースデジタルアシスタント
116 存在アプリケーションプログラミングインターフェース(「API」)
118 ペアリングコンポーネント
120 仮想コントローラ
122 ディスプレイデバイス
124 マイクロフォン
126 データリポジトリ
128 プロファイル
130 UIテンプレート
132 ターゲットコンピューティングデバイス
134 クエリプロセッサ
136 プラットフォーム
138 コントローラ
140 信号ブロードキャスタ
142 ターゲットデジタルアシスタント
144 補足デジタルコンテンツプロバイダデバイス
200 動作
202 初期状態
206 プロンプト
210 持続的アイコン
212 提案
218 デフォルトのまたは現在の表示
220 写真の表示
300 方法
400 コンピュータシステム
405 バス
410 プロセッサ
415 メインメモリ
420 読み出し専用メモリ(ROM)
425 ストレージデバイス
430 入力デバイス
435 ディスプレイ
【手続補正書】
【提出日】2024-02-21
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
デバイスの遠隔制御のためのシステムであって、
1つまたは複数のプロセッサおよびメモリを含む第1のコンピューティングデバイス
を備え、前記第1のコンピューティングデバイスが、
前記第1のコンピューティングデバイスの範囲内にある第2のコンピューティングデバイスを検出し、
前記第2のコンピューティングデバイスの検出に応答して、前記第2のコンピューティングデバイスの能力を判定し、
前記第2のコンピューティングデバイスの前記能力に基づいて、前記第1のコンピューティングデバイスが前記第2のコンピューティングデバイスを制御可能であることを示すプロンプトを生成し、
前記プロンプトに応答して、前記第2のコンピューティングデバイスを制御する命令を受信し、
前記命令に応答して、前記第2のコンピューティングデバイスとの通信チャネルを確立し、
前記第1のコンピューティングデバイスによって受信されたクエリを、前記第2のコンピューティングデバイスを制御するために前記通信チャネルを介して前記第2のコンピューティングデバイスに転送するために、前記第1のコンピューティングデバイス上の仮想コントローラを呼び出
す、システム。
【請求項2】
前記第2のコンピューティングデバイスが、前記第2のコンピューティングデバイスについての情報をブロードキャストし、前記
第1のコンピューティングデバイスが、
前記第2のコンピューティングデバイスによってブロードキャストされた前記情報を受信し、
前記情報に基づいて前記第2のコンピューティングデバイスの前記能力を判定す
る、請求項1に記載のシステム。
【請求項3】
前記第1のコンピューティングデバイスが、前記通信チャネルを確立するために、1つまたは複数のセキュリティクレデンシャルを使用して前記第2のコンピューティングデバイスとのハンドシェイクプロセスを実行する
、請求項1または2に記載のシステム。
【請求項4】
前記第1のコンピューティングデバイスが、前記仮想コントローラが前記通信チャネルを介してクエリを転送するためにアクティブであることを示すアイコンを前記第1のコンピューティングデバイスのディスプレイデバイス上に維持する
、請求項1から3のいずれか一項に記載のシステム。
【請求項5】
前記第2のコンピューティングデバイスが、前記通信チャネルの確立に応答して、前記第1のコンピューティングデバイスに関連するプロファイルにアクセスする
、請求項1から4のいずれか一項に記載のシステム。
【請求項6】
前記第1のコンピューティングデバイスが、前記第2のコンピューティングデバイスから切断し、前記通信チャネルを終了する
し、前記第2のコンピューティングデバイスが、前記通信チャネルの確立後に前記第1のコンピューティングデバイスから受信されたすべてのプロファイル情報を削除する
、請求項1から5のいずれか一項に記載のシステム。
【請求項7】
前記第1のコンピューティングデバイスが、ワイヤレスプロトコル上の双方向通信レイヤとして前記通信チャネルを確立する
、請求項1から6のいずれか一項に記載のシステム。
【請求項8】
前記第1のコンピューティングデバイスが、WebSocketプロトコルで前記第2のコンピューティングデバイスとの前記通信チャネルを確立する
、請求項1から7のいずれか一項に記載のシステム。
【請求項9】
前記第2のコンピューティングデバイスが、前記第1のコンピューティングデバイスから転送されたクエリを受信し、前記第2のコンピューティングデバイスの機能を制御するために前記クエリを処理する
、請求項1から8のいずれか一項に記載のシステム。
【請求項10】
前記第1のコンピューティングデバイスが、前記第1のコンピューティングデバイスのマイクロフォンを介して、クエリを含むオーディオ入力を検出し、前記オーディオ入力を前記通信チャネルを介して前記第2のコンピューティングデバイスに転送
し、
前記第2のコンピューティングデバイスが、前記オーディオ入力を受信し、前記オーディオ入力を解析して前記クエリを特定し、前記第2のコンピューティングデバイスの機能を制御するために前記クエリを処理する
、請求項1から9のいずれか一項に記載のシステム。
【請求項11】
前記第2のコンピューティングデバイスが、前記第1のコンピューティングデバイスおよび前記第2のコンピューティングデバイスから離れたデータ処理システムにコンテンツの要求を送信
し、
前記データ処理システム
が、
コンテンツの前記要求に応答して、前記要求の前記コンテンツとは異なる補足デジタルコンテンツの第2の要求を生成し、
補足デジタルコンテンツの前記第2の要求に応答して、前記第1のコンピューティングデバイスと前記第2のコンピューティングデバイスとの間の前記通信チャネルがアクティブであることに応答して前記第1のコンピューティングデバイスに関連するプロファイル情報に基づいて、前記第2の要求に応答する補足コンテンツアイテムを選択し、
前記第2のコンピューティングデバイス上に表示するために、前記要求の前記コンテンツとは異なる前記補足コンテンツアイテムを提供する
、請求項1から10のいずれか一項に記載のシステム。
【請求項12】
デバイスの遠隔制御のための方法であって、
1つまたは複数のプロセッサおよびメモリを含む第1のコンピューティングデバイスによって、前記第1のコンピューティングデバイスの範囲内にある第2のコンピューティングデバイスを検出するステップと、
前記第2のコンピューティングデバイスの検出に応答して前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスの能力を判定するステップと、
前記第2のコンピューティングデバイスの前記能力に基づいて前記第1のコンピューティングデバイスによって、前記第1のコンピューティングデバイスが前記第2のコンピューティングデバイスを制御可能であることを示すプロンプトを生成するステップと、
前記プロンプトに応答して前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスを制御する命令を受信するステップと、
前記命令に応答して前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスとの通信チャネルを確立するステップと、
前記第1のコンピューティングデバイスによって受信されたクエリを、前記第2のコンピューティングデバイスを制御するために前記通信チャネルを介して前記第2のコンピューティングデバイスに転送するために、前記第1のコンピューティングデバイス上の仮想コントローラを前記第1のコンピューティングデバイスによって呼び出すステップとを含む、方法。
【請求項13】
前記第2のコンピューティングデバイスが、前記第2のコンピューティングデバイスについての情報をブロードキャストし、前記方法が、
前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスによってブロードキャストされた前記情報を受信するステップと、
前記第1のコンピューティングデバイスによって、前記情報に基づいて前記第2のコンピューティングデバイスの前記能力を判定するステップとを含む請求項12に記載の方法。
【請求項14】
前記第1のコンピューティングデバイスによって、前記通信チャネルを確立するために、1つまたは複数のセキュリティクレデンシャルを使用して前記第2のコンピューティングデバイスとのハンドシェイクプロセスを実行するステップを含む請求項12または13に記載の方法。
【請求項15】
前記第1のコンピューティングデバイスによって、前記仮想コントローラが前記通信チャネルを介してクエリを転送するためにアクティブであることを示すアイコンを前記第1のコンピューティングデバイスのディスプレイデバイス上に維持するステップを含む請求項12から14のいずれか一項に記載の方法。
【請求項16】
前記通信チャネルの確立に応答して前記第2のコンピューティングデバイスによって、前記第1のコンピューティングデバイスに関連するプロファイルにアクセスするステップを含む請求項12から15のいずれか一項に記載の方法。
【請求項17】
前記第1のコンピューティングデバイスによって、前記第2のコンピューティングデバイスから切断し、前記通信チャネルを終了するステップであって、前記第2のコンピューティングデバイスが、前記通信チャネルの確立後に前記第1のコンピューティングデバイスから受信されたすべてのプロファイル情報を削除する、ステップを含む請求項12から16のいずれか一項に記載の方法。
【請求項18】
前記第1のコンピューティングデバイスによって、ワイヤレスプロトコル上の双方向通信レイヤとして前記通信チャネルを確立するステップを含む請求項12から17のいずれか一項に記載の方法。
【請求項19】
前記第1のコンピューティングデバイスによって、WebSocketプロトコルで前記第2のコンピューティングデバイスとの前記通信チャネルを確立するステップを含む請求項12から18のいずれか一項に記載の方法。
【請求項20】
前記第2のコンピューティングデバイスによって、前記第1のコンピューティングデバイスから転送されたクエリ受信し、前記第2のコンピューティングデバイスの機能を制御するために前記クエリを処理するステップを含む請求項12から19のいずれか一項に記載の方法。
【国際調査報告】