以下は、コンピュータネットワークを介してパケット化されたアクションをルーティングする方法、装置、およびシステムに関する様々な概念、およびそれらの実装形態のより詳細な説明である。上記で紹介し、以下でより詳細に説明する様々な概念は、多数の方法のいずれかにおいて実装され得る。
本開示は、概して、コンピューティングデバイス間のアクセス制御の同期化を対象とする。異なるデバイス上で利用可能な入力もしくは出力インターフェース、または他の処理能力が限られるために、いくつかのタイプのデバイスからいくつかのタイプのデジタルコンポーネントにアクセスすること、またはそのようなデジタルコンポーネントのアクセス制御パラメータを変更することは、困難であるか、または可能ではないことがある。本技術的解決策のシステムおよび方法は、第1のデバイスからデジタルコンポーネントへのアクセスまたは変更を行うためのセッションを可能にし、次いで、アクセスまたは変更を完了するために、第2のデバイスにセッションをハンドオーバする。アクセス制御パラメータは、デジタルコンポーネントにアクセスするために、複数のデバイスによって使用され得る、デジタルアクセス制御データベース内で変更され得る。
第1のデジタルアシスタントデバイスがいくつかのタイプのコマンドもしくは命令を欠いているか、またはそれらを処理するように最適に構成されていないと自動的に決定し、次いで、第2のデジタルアシスタントデバイスにセッションをハンドオーバすることができる、データ処理システムを提供することによって、データ処理システムは、第1のデジタルアシスタントデバイスおよび第2のデジタルアシスタントデバイスの性質を利用する、ガイド付きの対話プロセスを提供する。データ処理システムは、第2のデジタルアシスタントにセッションをシームレスに転送することによって、アクセス制御を調整または変更する追加の技術的機能を提供しながら、第1のデジタルアシスタントデバイスによる不要な処理を低減することができる。さらに、データ処理システムは、デジタルコンポーネントのためのパラメータまたはルールを含み得る、アクセス制御データベースを維持することができる。アクセス制御データベースは、中央に配置されたアクセス制御データベースであり得る。アクセス制御データベースを維持または管理することによって、データ処理システムは、デジタルコンポーネントを実行することを許可されたデバイスに、デジタルコンポーネントを提供することを容易にすることができる。本解決策は、リソース消費、プロセッサ利用、バッテリ消費、帯域幅利用、オーディオファイルのサイズ、または、デジタルコンポーネントのためのアクセス制御を変更するためのコマンドを許可もしくは認証するための入力もしくは出力ポート、インターフェース、もしくはコンポーネントを含まないことがある、第1のデジタルアシスタントデバイスによって消費される時間量を低減することができる。
たとえば、デジタルコンポーネントは、会話型アプリケーションプログラミングインターフェースなど、デジタルアシスタントヒューマンインターフェース(本明細書でサーフェスと呼ばれる)を介して要求され得る。これは、アプリケーション内アイテム、サブスクリプション、または有料アプリケーションを要求することを含むことがあり、サードパーティ開発者によって、デジタルアシスタントコンポーネントまたはサーフェスを使用することができるそれらのアプリケーションにおいて提供され得る。デジタルコンポーネントがアクセスされるとき(たとえば、オーディオブック、デジタル通貨、電子ファイル、またはデジタル音楽)、データ処理システムは、アカウントにリンクされた一部または全部のデジタルアシスタントサーフェスまたはアプリケーションにわたって使用するために、このデジタルコンポーネントを提供することができる。たとえば、オーディオブックは、スピーカであり得る第1のデジタルアシスタントデバイス上で要求され、次いで、後にスマートフォン上で実行され得る。
データ処理システムは、異なるデジタルアシスタントサーフェスにわたってユーザによって調整されたアクセス制御パラメータを取り込む中央データベース内に、デジタルコンポーネントの要求またはアクセス制御パラメータを記録することができる。特定のデジタルアシスタントサーフェスまたはアプリケーションが使用されるとき、次いで、デジタルアシスタントサーフェスは、アカウントのためのデジタルコンポーネントアクセス制御パラメータのための要求を、中央データベースに対して行うことができる。アクセス制御調整を特定のデバイス上で完了することができない場合には、デバイスハンドオーバ(たとえば、電子商取引を確認するために、スマートフォンにセッションを転送する)があり得る。たとえば、認証が必要とされるが、第1のデジタルアシスタントデバイス内で提供されない場合、データ処理システムは、認証のために、スマートフォンなどの第2のデジタルアシスタントデバイスにセッションを転送することができる。認証が完了した後、デジタルコンポーネントは、アカウントにリンクされており、デジタルコンポーネントと互換性のある、デバイスによって利用され得る。したがって、本技術的解決策のシステムおよび方法は、デジタルコンポーネントが、任意のデジタルアシスタントデバイス、サーフェス、またはアプリケーションにわたって、音声インターフェースを介して取得されることを可能にし、次いで、デジタルコンポーネントを実行するように構成された任意のデジタルアシスタントデバイス、サーフェス、またはアプリケーション上で実行するために、デジタルコンポーネントを提供することができる。
図1は、コンピューティングデバイス間のアクセス制御を同期化するための例示的なシステム100を示す。システム100は、コンテンツ選択インフラストラクチャを含み得る。システム100は、データ処理システム102を含み得る。データ処理システム102は、ネットワーク105を介して、コンテンツプロバイダコンピューティングデバイス154、サードパーティデバイス156、またはローカルコンピューティングデバイス140のうちの1つまたは複数と通信することができる。ネットワーク105は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワーク、または他のエリアネットワーク、イントラネット、衛星ネットワークなどのコンピュータネットワーク、および音声またはデータモバイル電話ネットワークなどの他の通信ネットワークを含み得る。ネットワーク105は、ラップトップ、デスクトップ、タブレット、デジタルアシスタントデバイス、スマートフォン、ポータブルコンピュータ、またはスピーカなど、少なくとも1つのローカルコンピューティングデバイス140上に提示、出力、レンダリング、または表示され得る、ウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために使用され得る。たとえば、ネットワーク105を介して、ローカルコンピューティングデバイス140のユーザは、コンテンツプロバイダ154によって提供された情報またはデータにアクセスすることができる。コンピューティングデバイス140は、ディスプレイを含むことも含まないこともあり、たとえば、コンピューティングデバイスは、マイクロフォンおよびスピーカなど、限られたタイプのユーザインターフェースを含み得る。場合によっては、コンピューティングデバイス140の主なユーザインターフェースは、マイクロフォンおよびスピーカ、または音声インターフェースであり得る。
ローカルコンピューティングデバイス140は、ホテル、オフィス、レストラン、小売店、ショッピングモール、公園などの公的な場、または居住用住宅などの私的な場に配置される、コンピューティングデバイスまたはクライアントデバイスを指すことがある。ローカルという用語は、ユーザが音声入力または他の入力を使用して、コンピューティングデバイスと対話することができるところに、コンピューティングデバイスが配置されることを指すことがある。ローカルコンピューティングデバイスは、データ処理システム102などのリモートサーバからリモートに配置され得る。したがって、ローカルコンピューティングデバイス140は、そこにおいてユーザが音声入力を使用して、ローカルコンピューティングデバイス140と対話することができる、ホテルの部屋、ショッピングモール、小個室、または他のビルもしくは住居内に位置し得るのに対して、データ処理システム102は、たとえば、データセンター内にリモートで配置され得る。ローカルコンピューティングデバイス140は、デジタルアシスタントデバイスと呼ばれることがある。
ネットワーク105は、ディスプレイネットワーク、たとえば、コンテンツプレースメントもしくはサーチエンジン結果システムに関連付けられるか、またはデジタルコンポーネントプレースメントキャンペーンの一部として、サードパーティデジタルコンポーネントを含む資格がある、インターネット上で利用可能な情報リソースのサブセットを含むか、または構成することができる。ネットワーク105は、ローカルクライアントコンピューティングデバイス140によって提示、出力、レンダリング、または表示され得る、ウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために、データ処理システム102によって使用され得る。たとえば、ネットワーク105を介して、ローカルクライアントコンピューティングデバイス140のユーザは、コンテンツプロバイダコンピューティングデバイス154またはサービスプロバイダコンピューティングデバイスによって提供された情報またはデータにアクセスすることができる。
ネットワーク105は、任意のタイプまたは形態のネットワークであり得、以下のもの、すなわち、ポイントツーポイントネットワーク、ブロードキャストネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ)ネットワーク、ワイヤレスネットワーク、およびワイヤラインネットワークのうちのいずれかを含み得る。ネットワーク105は、赤外チャネルまたは衛星帯域などのワイヤレスリンクを含み得る。ネットワーク105のトポロジは、バス型、スター型、またはリング型ネットワークトポロジを含み得る。ネットワークは、高度モバイルフォンプロトコル(「AMPS」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA(登録商標)」)、モバイル通信用グローバルシステム(「GSM(登録商標)」)、汎用パケット無線サービス(「GPRS」)、またはユニバーサルモバイルテレコミュニケーションズシステム(「UMTS」)を含む、モバイルデバイス間で通信するために使用される任意の1つまたは複数のプロトコルを使用する、モバイル電話ネットワークを含み得る。異なるタイプのデータが、異なるプロトコルを介して送信され得るか、または同じタイプのデータが、異なるプロトコルを介して送信され得る。
システム100は、少なくとも1つのデータ処理システム102を含み得る。データ処理システム102は、ネットワーク105を介して、たとえば、コンピューティングデバイス140、コンテンツプロバイダコンピューティングデバイス154(コンテンツプロバイダ154)、またはサードパーティデバイス156(もしくはサードパーティ156)と通信するために、プロセッサを有するコンピューティングデバイスなど、少なくとも1つの論理デバイスを含み得る。データ処理システム102は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、データ処理システム102は、少なくとも1つのデータセンター内に配置された複数の計算リソースまたはサーバを含み得る。データ処理システム102は、複数の論理的にグループ化されたサーバを含み、分散コンピューティング技法を容易にすることができる。サーバの論理グループは、データセンター、サーバファーム、またはマシンファームと呼ばれることがある。サーバはまた、地理的にも分散され得る。データセンターまたはマシンファームは、単一のエンティティとして管理され得るか、またはマシンファームは、複数のマシンファームを含み得る。各マシンファーム内のサーバは、異種であり得-サーバまたはマシンのうちの1つまたは複数が、1つまたは複数のタイプのオペレーティングシステムプラットフォームに従って動作することができる。
マシンファーム内のサーバは、関連付けられた記憶システムとともに、高密度ラックシステム内に記憶され、エンタープライズデータセンター内に配置され得る。たとえば、このようにサーバを整理統合することで、ローカライズされた高性能ネットワーク上にサーバおよび高性能記憶システムを配置することによって、システム管理可能性、データセキュリティ、システムの物理的セキュリティ、およびシステム性能を改善することができる。サーバおよび記憶システムを含む、データ処理システム102のコンポーネントの全部または一部の集中化、ならびにそれらを高度システム管理ツールと結合することによって、サーバリソースのより効率的な使用が可能になり、それによって、電力および処理要件が省かれ、帯域幅使用が低減される。
システム100は、少なくとも1つのサードパーティデバイス156を含み、それにアクセスし、またはさもなければそれと対話することができる。サードパーティデバイス156は、ネットワーク105を介して、たとえば、コンピューティングデバイス140、データ処理システム102、またはコンテンツプロバイダ154と通信するために、プロセッサを有するコンピューティングデバイスなど、少なくとも1つの論理デバイスを含み得る。サードパーティデバイス156は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、サードパーティデバイス156は、少なくとも1つのデータセンター内に配置された複数の計算リソースまたはサーバを含み得る。
コンテンツプロバイダデバイス154は、ローカルコンピューティングデバイス140によってオーディオ出力デジタルコンポーネントとして表示するために、オーディオベースのデジタルコンポーネントを提供することができる。デジタルコンポーネントは、「タクシーを注文してほしいですか?(Would you like me to order you a taxi?)」と述べる音声ベースのメッセージなど、商品またはサービスの申し出を含み得る。たとえば、コンテンツプロバイダコンピューティングデバイス154は、音声ベースのクエリに応答して提供され得る一連のオーディオデジタルコンポーネントを記憶するために、メモリを含み得る。コンテンツプロバイダコンピューティングデバイス154はまた、オーディオベースのデジタルコンポーネント(または、他のデジタルコンポーネント)をデータ処理システム102に提供することもでき、そこで、それらのデジタルコンポーネントが、データリポジトリ122内に記憶され得る。データ処理システム102は、オーディオデジタルコンポーネントを選択し、ローカルクライアントコンピューティングデバイス140に、オーディオデジタルコンポーネントを提供(または、提供するように、コンテンツプロバイダコンピューティングデバイス154に命令)することができる。オーディオベースのデジタルコンポーネントは、オーディオのみであり得るか、またはテキスト、画像、もしくはビデオデータと組み合わせられ得る。
サードパーティデバイス156は、データ処理システム102を含み、それとインターフェースし、またはさもなければそれと通信することができる。サードパーティデバイス156は、ローカルコンピューティングデバイス140を含み、それとインターフェースし、またはさもなければそれと通信することができる。サードパーティデバイス156は、モバイルコンピューティングデバイスであり得るコンピューティングデバイス140を含み、それとインターフェースし、またはさもなければそれと通信することができる。サードパーティデバイス156は、コンテンツプロバイダデバイス154を含み、それとインターフェースし、またはさもなければそれと通信することができる。たとえば、サードパーティデバイス156は、ローカルコンピューティングデバイス140による実行のために、ローカルコンピューティングデバイス140にデジタルコンポーネントを提供することができる。サードパーティデバイス156は、データ処理システム102による記憶のために、データ処理システム102にデジタルコンポーネントを提供することができる。サードパーティデバイス156は、アクセス制御データベース132内に記憶するために、データ処理システム102に、デジタルコンポーネントに関するルールまたはパラメータを提供することができる。
ローカルコンピューティングデバイス140は、少なくとも1つのセンサ144、トランスデューサ146、オーディオドライバ148、またはプリプロセッサ150を含み、それらとインターフェースし、またはさもなければそれらと通信することができる。ローカルコンピューティングデバイス140は、光インジケータ、発光ダイオード(「LED」)、有機発光ダイオード(「OLED」)、または視覚的もしくは光学的出力を提供するように構成された他の視覚的インジケータなど、光源142またはディスプレイデバイス152を含み得る。センサ144は、たとえば、周辺光センサ、近接センサ、温度センサ、加速度計、ジャイロスコープ、動き検出器、GPSセンサ、ロケーションセンサ、マイクロフォン、またはタッチセンサを含み得る。トランスデューサ146は、スピーカまたはマイクロフォンを含み得る。オーディオドライバ148は、ハードウェアトランスデューサ146にソフトウェアインターフェースを提供することができる。オーディオドライバは、データ処理システム102によって提供されたオーディオファイルまたは他の命令を実行して、対応する音響波または音波を生成するように、トランスデューサ146を制御することができる。プリプロセッサ150は、キーワードを検出し、キーワードに基づいてアクションを実施するように構成された、ハードウェアを有する処理ユニットを含み得る。プリプロセッサ150は、さらなる処理のためにデータ処理システム102に1つまたは複数の用語を送信するより前に、用語をフィルタ処理で取り除くか、または用語を変更することができる。プリプロセッサ150は、マイクロフォンによって検出されたアナログオーディオ信号をデジタルオーディオ信号に変換し、ネットワーク105を介して、データ処理システム102に、デジタルオーディオ信号を搬送する1つまたは複数のデータパケットを送信することができる。場合によっては、プリプロセッサ150は、そのような送信を実施するための命令の検出に応答して、入力オーディオ信号の一部または全部を搬送するデータパケットを送信することができる。命令は、たとえば、データ処理システム102に入力オーディオ信号を備えるデータパケットを送信するための、トリガキーワードまたは他のキーワードもしくは承認を含み得る。
ローカルクライアントコンピューティングデバイス140は、エンドユーザに関連付けられ得、エンドユーザは、(センサ144を介して)ローカルクライアントコンピューティングデバイス140に、オーディオ入力として音声クエリを入力し、トランスデューサ146(たとえば、スピーカ)から出力される、データ処理システム102(またはコンテンツプロバイダコンピューティングデバイス154、もしくはサービスプロバイダコンピューティングデバイス)からローカルクライアントコンピューティングデバイス140に提供され得る、コンピュータにより生成された音声の形態におけるオーディオ出力を受信する。コンピュータにより生成された音声は、実在の人物からの録音、またはコンピュータにより生成された言語を含み得る。
データリポジトリ122は、1つまたは複数のローカルまたは分散データベースを含み得、データベース管理システムを含み得る。データリポジトリ122は、コンピュータデータストレージまたはメモリを含み得、データの中でも、1つまたは複数のシグネチャおよびアカウント情報124と、リンクされたデバイス情報126と、コンテンツデータ128と、テンプレートデータ130と、アクセス制御データベース132とを記憶することができる。アクセス制御データベース132は、パラメータ134と、ルール136と、デジタルコンポーネント138(または、デジタルコンポーネント138への識別子もしくは参照識別子)とを含むか、または記憶することができる。シグネチャおよびアカウント情報124は、ローカルコンピューティングデバイス140のユーザに対応するアカウントを識別するために、話者認識コンポーネント112によって使用され得る、音響シグネチャまたは音声シグネチャを含み得る。シグネチャ124は、音響シグネチャまたはオーディオシグネチャを含み得る。シグネチャ124は、凝縮されたデジタルサマリ(condensed digital summary)を含み得る音響指紋、オーディオサンプルを識別するかまたはオーディオデータベース内の同様のアイテムを迅速に見つけるために使用され得る、オーディオ信号から決定論的に生成された指紋を指すことがある。シグネチャ124は、話者認識コンポーネント112によるプロファイルの識別を容易にするためのデータを含み得る。
アカウント情報は、アクセス制御データベース132に対応するプロファイル情報、選好、電子アカウント情報、またはアカウントを含むか、または指すことがある。リンクされたデバイス情報126は、アカウント124に関連付けられるデバイス識別子(たとえば、ローカルコンピューティングデバイス140、第1のデジタルアシスタントデバイス280、第2のデジタルアシスタントデバイス282、または第3のデジタルアシスタントデバイス284)を含むか、または指すことがある。リンクされたデバイス情報126は、アカウントとともに使用するために、データ処理システム102によってプロビジョニングされているデバイスを含み得る。リンクされたデバイス情報126は、アクセス制御データベース132に従って、デジタルコンポーネント138にアクセスするために許可または認証されるデバイスを含むか、または指すことがある。コンテンツデータ128は、ローカルクライアントコンピューティングデバイス140との1つまたは複数の通信セッションの一部であり得る、オーディオ出力または関連するメタデータ、ならびに入力オーディオメッセージのためのデジタルコンポーネントを含み得る。コンテンツデータ128は、たとえば、コンテンツ選択を容易にするために、コンテンツプロバイダ154によって提供されたか、またはデータ処理システムによって取得もしくは決定された、コンテンツキャンペーン情報、コンテンツグループ、コンテンツ選択基準、デジタルコンポーネントオブジェクト、または他の情報を含み得る。コンテンツデータ128は、たとえば、コンテンツキャンペーンの過去の実績を含み得る。
テンプレートデータ130は、入力プロンプト、または他のプロンプト、通知、もしくはアラートを生成するために使用されるテンプレートを含むか、または指すことがある。テンプレート130は、たとえば、ローカルコンピューティングデバイス140上で利用可能な、利用可能なユーザインターフェース、入力インターフェース、または出力インターフェースに基づいて、異なるタイプのローカルコンピューティングデバイス140のために構成された異なるテンプレートを記憶することができる。テンプレート130は、サードパーティデバイス156によって確立され、記憶および利用のためにデータ処理システム102に提供され得るか、あるいはテンプレート130は、データ処理システム102のアドミニストレータによって作成されるか、またはルールもしくはポリシーに基づいて生成され得る。
アクセス制御データベース(「DB」)132は、デジタルコンポーネント138についての情報を含み得る。デジタルコンポーネント138は、ローカルコンピューティングデバイス140またはリンクされたデバイス(たとえば、第3のデジタルアシスタントデバイス284)によって実行され得る、電子データまたはデータファイルを指すか、または含み得る。デジタルコンポーネント138は、オーディオブック、デジタル音楽ファイル、デジタル映画ファイル、マルチメディアファイル、電子ゲーム、プログラム、スクリプト、アプリケーションプログラムインターフェース、またはデジタル通貨を指すか、または含み得る。デジタルコンポーネント138は、アクセス制御データベース132内に記憶され得るか、またはデジタルコンポーネント138の参照もしくは識別子が、アクセス制御データベース132内に記憶され得る。たとえば、デジタルコンポーネント138(または、そのデータファイル)は、サードパーティデバイス156(たとえば、デジタルコンポーネント138のプロバイダまたは開発者)において記憶され得、アクセス制御データベース132は、デジタルコンポーネント138へのディープリンク、ユニフォームリソースロケータ、または他の参照識別子を記憶することができる。アクセス制御データベース132は、パラメータ134を記憶することができる。パラメータ134は、デジタルコンポーネント138のためのアクセスまたはアクセス制御のタイプを指すことがある。パラメータ134は、たとえば、しきい値、距離、時間間隔、持続時間、スコア、または重みを含み得る。パラメータは、値を含み得る。値は、数字、2進数、英数字、または記号であり得る。たとえば、パラメータは、デジタルコンポーネント138が、アカウントに関連付けられたローカルコンピューティングデバイス140にアクセス可能であるか、ローカルコンピューティングデバイス140にアクセス不可能であるかを示すことができる。パラメータ134は、[Authorized]であり得、値は、[Yes]または[No]であり得る。パラメータ134は、[subscription_type]であり得、値は、[one_time_use]、[number_of_uses]、[unlimited_use]、または[time_interval]であり得、ここで、時間間隔は、週間、月間、または年間であり得る。他のパラメータ134が、サードパーティデバイス156、またはデジタルコンポーネント138の開発者もしくはプロバイダによって確立され得る。ルール136は、デジタルコンポーネント138のためのパラメータ134を確立するために使用され得る、デジタルコンポーネントのためのポリシーまたは特性を指すか、または含み得る。たとえば、ルールは、デジタルコンポーネントタイプがオーディオブックである場合、パラメータ値が[one_time_use]、[number_of_uses]、[unlimited_use]、または[time_interval]であり得る、というものであり得る。ルールは、デジタルコンポーネントがデジタル通貨である場合、パラメータ値が[exchangeable]であり得る、というものであり得る。ルールは、デジタルコンポーネントがストリーミングマルチメディアファイルである場合、パラメータが[downloading_prohibited]または[monthly subscription]である、というものであり得る。したがって、アクセス制御データベース132が、異なるデジタルコンポーネント138のための異なるルール136およびパラメータ134を用いて構成されることを可能にすることによって、アクセス制御データベース132は、中央データ処理システム102内で異なるタイプのデジタルコンポーネントおよびそれらのアクセス制御を維持または管理することができる。データ処理システムは、デジタルコンポーネントのために、アクセス制御データベース内に1つまたは複数のルールを記憶することができる。
データ処理システム102は、少なくとも1つの計算リソースまたはサーバを有する、コンテンツプレースメントシステムを含み得る。データ処理システム102は、少なくとも1つのインターフェース106を含み、それとインターフェースし、またはさもなければそれと通信することができる。データ処理システム102は、少なくとも1つの自然言語プロセッサコンポーネント108を含み、それとインターフェースし、またはさもなければそれと通信することができる。データ処理システム102は、少なくとも1つのダイレクトアクションアプリケーションプログラミングインターフェース(「API」)110を含み、それとインターフェースし、またはさもなければそれと通信することができる。インターフェース106、自然言語プロセスコンポーネント108、およびダイレクトアクションAPI110は、対話型データ交換コンポーネント104を形成することができる。データ処理システム102は、少なくとも1つの対話型データ交換コンポーネント104を含み、それとインターフェースし、またはさもなければそれと通信することができる。対話型データ交換コンポーネント104は、会話型APIまたはデジタルアシスタント機能を含むか、または指すことがある。対話型データ交換コンポーネント104は、データを提供するか、またはデータを受信するか、または他の機能を実施するために、1つまたは複数の音声ベースのインターフェース、または様々なデジタルアシスタントデバイスもしくはサーフェスと、通信またはインターフェースすることができる。
データ処理システム102は、少なくとも1つのコンテンツセレクタコンポーネント120を含み、それとインターフェースし、またはさもなければそれと通信することができる。データ処理システム102は、少なくとも1つの話者認識コンポーネント112を含み、それとインターフェースし、またはさもなければそれと通信することができる。データ処理システム102は、少なくとも1つのデータリポジトリ122を含み、それとインターフェースし、またはさもなければそれと通信することができる。データ処理システム102は、少なくとも1つのアクセスコントローラコンポーネント114を含み、それとインターフェースし、またはさもなければそれと通信することができる。データ処理システム102は、少なくとも1つの互換性チェッカーコンポーネント116を含み、それとインターフェースし、またはさもなければそれと通信することができる。データ処理システム102は、少なくとも1つのセッション転送コンポーネント118を含み、それとインターフェースし、またはさもなければそれと通信することができる。
対話型データ交換コンポーネント104、インターフェース106、自然言語プロセッサコンポーネント108、ダイレクトアクションAPI110、話者認識コンポーネント112、アクセスコントローラコンポーネント114、互換性チェッカーコンポーネント116、セッション転送コンポーネント118、またはコンテンツセレクタコンポーネント120は、データリポジトリ122またはデータベースと通信するように構成された、プログラマブル論理アレイエンジンまたはモジュールなど、少なくとも1つの処理ユニットまたは他の論理デバイスを各々含み得る。対話型データ交換コンポーネント104、インターフェース106、自然言語プロセッサコンポーネント108、ダイレクトアクションAPI110、話者認識コンポーネント112、アクセスコントローラコンポーネント114、互換性チェッカーコンポーネント116、セッション転送コンポーネント118、またはコンテンツセレクタコンポーネント120、およびデータリポジトリ122は、別個のコンポーネント、単一のコンポーネント、またはデータ処理システム102の一部であり得る。システム100、およびデータ処理システム102などのそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含み得る。
データ処理システム102は、複数のローカルコンピューティングデバイス140(またはコンピューティングデバイス、もしくはデジタルアシスタントデバイス)に関連付けられた、匿名のコンピュータネットワークアクティビティ情報を取得することができる。ローカルコンピューティングデバイス140またはモバイルコンピューティングデバイスのユーザは、データ処理システム102が、ローカルコンピューティングデバイス140またはモバイルコンピューティングデバイスに対応するネットワークアクティビティ情報を取得することを、肯定的に許可することができる。たとえば、データ処理システム102は、1つまたは複数のタイプのネットワークアクティビティ情報を取得するための承諾について、コンピューティングデバイス140のユーザにプロンプトを出すことができる。ローカルコンピューティングデバイス140は、スマートフォン、タブレット、スマートウォッチ、またはウェアラブルデバイスなど、モバイルコンピューティングデバイスを含み得る。ローカルコンピューティングデバイス140のユーザの識別情報は、匿名のままであり得、コンピューティングデバイス140は、一意の識別子(たとえば、データ処理システムまたはコンピューティングデバイスのユーザによって提供された、コンピューティングデバイスまたはユーザのための一意の識別子)に関連付けられ得る。データ処理システムは、各観測を対応する一意の識別子に関連付けることができる。
コンテンツプロバイダ154は、電子コンテンツキャンペーンを確立することができる。電子コンテンツキャンペーンは、データリポジトリ122内にコンテンツデータ128として記憶され得る。電子コンテンツキャンペーンは、共通のテーマに対応する1つまたは複数のコンテンツグループを指すことがある。コンテンツキャンペーンは、コンテンツグループと、デジタルコンポーネントデータオブジェクトと、コンテンツ選択基準とを含む、階層データ構造を含み得る。コンテンツキャンペーンを作成するために、コンテンツプロバイダ154は、コンテンツキャンペーンのキャンペーンレベルパラメータのための値を指定することができる。キャンペーンレベルパラメータは、たとえば、キャンペーン名、デジタルコンポーネントオブジェクトのプレースメントのための好ましいコンテンツネットワーク、コンテンツキャンペーンのために使用されるべきリソースの値、コンテンツキャンペーンのための開始日および終了日、コンテンツキャンペーンのための持続時間、デジタルコンポーネントオブジェクトプレースメントのためのスケジュール、言語、地理的ロケーション、それにおいてデジタルコンポーネントオブジェクトを提供するべきコンピューティングデバイスのタイプを含み得る。場合によっては、インプレッションは、デジタルコンポーネントオブジェクトがそのソース(たとえば、データ処理システム102、またはコンテンツプロバイダ154)からフェッチされるときを指すことがあり、カウント可能である。場合によっては、クリック詐欺の可能性のために、ロボットによるアクティビティが、インプレッションとして、フィルタ処理および除外され得る。したがって、場合によっては、インプレッションは、ロボットによるアクティビティおよびエラーコードからフィルタ処理される、ブラウザからのページ要求に対するウェブサーバからの応答の測定値を指すことがあり、コンピューティングデバイス140上に表示するためにデジタルコンポーネントオブジェクトをレンダリングするための機会に可能な限り近い時点で記録される。場合によっては、インプレッションは、可視または可聴インプレッションを指すことがあり、たとえば、デジタルコンポーネントオブジェクトは、少なくとも部分的に(たとえば、20%、30%、40%、50%、60%、70%、またはそれ以上が)ローカルクライアントコンピューティングデバイス140のディスプレイデバイス152上で可視であるか、またはコンピューティングデバイス140のトランスデューサ146を介して可聴である。クリックまたは選択は、可聴インプレッションに対する音声応答、マウスクリック、タッチ対話、ジェスチャー、シェイク、オーディオ対話、またはキーボードクリックなど、デジタルコンポーネントオブジェクトとのユーザ対話を指すことがある。コンバージョンは、たとえば、製品もしくはサービスを購入すること、調査を完了すること、デジタルコンポーネントに対応する実店舗を訪問すること、または電子商取引を完了することなど、ユーザがデジタルコンポーネントオブジェクトに対する所望のアクションを取ることを指すことがある。
コンテンツプロバイダ154は、コンテンツキャンペーンのための1つまたは複数のコンテンツグループをさらに確立することができる。コンテンツグループは、1つまたは複数のデジタルコンポーネントオブジェクトと、キーワード、単語、用語、フレーズ、地理的ロケーション、コンピューティングデバイスのタイプ、時刻、関心、トピック、またはバーティカルなど、対応するコンテンツ選択基準とを含む。同じコンテンツキャンペーンの下のコンテンツグループは、同じキャンペーンレベルパラメータを共有することができるが、キーワード、ネガティブキーワード(たとえば、メインコンテンツ上のネガティブキーワードの存在下で、デジタルコンポーネントのプレースメントをブロックする)、キーワードのための入札、または入札もしくはコンテンツキャンペーンに関連付けられたパラメータなど、特定のコンテンツグループレベルパラメータのために適合した仕様を有し得る。
新しいコンテンツグループを作成するために、コンテンツプロバイダは、コンテンツグループのコンテンツグループレベルパラメータのための値を提供することができる。コンテンツグループレベルパラメータは、たとえば、コンテンツグループ名またはコンテンツグループテーマ、および異なるコンテンツプレースメント機会(たとえば、自動プレースメント、もしくは管理されたプレースメント)または結果(たとえば、クリック、インプレッション、もしくはコンバージョン)のための入札を含む。コンテンツグループ名またはコンテンツグループテーマは、コンテンツプロバイダ154が、そのためにコンテンツグループのデジタルコンポーネントオブジェクトが表示のために選択されることになる、トピックまたは主題を取り込むために使用することができる、1つまたは複数の用語であり得る。たとえば、カーディーラーは、扱っている車両のブランドごとに異なるコンテンツグループを作成することができ、扱っている車両のモデルごとに異なるコンテンツグループをさらに作成し得る。カーディーラーが使用することができるコンテンツグループテーマの例には、たとえば、「A社製スポーツカー」、「B社製スポーツカー」、「C社製セダン」、「C社製トラック」、「C社製ハイブリッド」、または「D社製ハイブリッド」が含まれる。例示的なコンテンツキャンペーンテーマは、「ハイブリッド」であり得、たとえば、「C社製ハイブリッド」と「D社製ハイブリッド」の両方のためのコンテンツグループを含み得る。
コンテンツプロバイダ154は、各コンテンツグループに、1つまたは複数のキーワードおよびデジタルコンポーネントオブジェクトを提供することができる。キーワードは、デジタルコンポーネントオブジェクトに関連付けられるか、またはデジタルコンポーネントオブジェクトによって識別される、製品またはサービスに関連する用語を含み得る。キーワードは、1つまたは複数の用語またはフレーズを含み得る。たとえば、カーディーラーは、コンテンツグループまたはコンテンツキャンペーンのためのキーワードとして、「スポーツカー」、「V6エンジン」、「四輪駆動」、「燃料効率」を含め得る。場合によっては、ネガティブキーワードが、いくつかの用語またはキーワードにおけるコンテンツプレースメントを回避、防止、ブロック、または無効化するために、コンテンツプロバイダによって指定され得る。コンテンツプロバイダは、デジタルコンポーネントオブジェクトを選択するために使用される、完全一致、フレーズ一致、または部分一致など、マッチングのタイプを指定することができる。
コンテンツプロバイダ154は、コンテンツプロバイダ154によって提供されたデジタルコンポーネントオブジェクトを選択するために、データ処理システム102によって使用されることになる1つまたは複数のキーワードを提供することができる。コンテンツプロバイダ154は、入札するための1つまたは複数のキーワードを識別し、様々なキーワードのための入札額をさらに提供することができる。コンテンツプロバイダ154は、デジタルコンポーネントオブジェクトを選択するために、データ処理システム102によって使用されることになる、追加のコンテンツ選択基準を提供することができる。複数のコンテンツプロバイダ154が、同じまたは異なるキーワードに入札することができ、データ処理システム102は、電子メッセージのキーワードの指示の受信に応答して、コンテンツ選択プロセスまたは広告オークションを行うことができる。
コンテンツプロバイダ154は、データ処理システム102による選択のために、1つまたは複数のデジタルコンポーネントオブジェクトを提供することができる。データ処理システム102は、コンテンツグループのために指定されたリソース割振り、コンテンツスケジュール、最大入札、キーワード、および他の選択基準に一致する、コンテンツプレースメント機会が利用可能になるとき、(たとえば、コンテンツセレクタコンポーネント120を介して)デジタルコンポーネントオブジェクトを選択することができる。音声デジタルコンポーネント、オーディオデジタルコンポーネント、テキストデジタルコンポーネント、画像デジタルコンポーネント、ビデオデジタルコンポーネント、マルチメディアデジタルコンポーネント、またはデジタルコンポーネントリンクなど、異なるタイプのデジタルコンポーネントオブジェクトが、コンテンツグループ中に含まれ得る。デジタルコンポーネントオブジェクト(または、デジタルコンポーネント)には、たとえば、コンテンツアイテム、オンラインドキュメント、オーディオ、画像、ビデオ、マルチメディアコンテンツ、またはスポンサー付きのコンテンツが含まれ得る。デジタルコンポーネントを選択すると、データ処理システム102は、コンピューティングデバイス140、またはコンピューティングデバイス140のディスプレイデバイス152上にレンダリングするために、デジタルコンポーネントオブジェクトを送信することができる。レンダリングは、ディスプレイデバイス上でデジタルコンポーネントを表示すること、またはコンピューティングデバイス140のスピーカを介して、デジタルコンポーネントを再生することを含み得る。データ処理システム102は、デジタルコンポーネントオブジェクトをレンダリングするために、コンピューティングデバイス140に命令を与えることができる。データ処理システム102は、オーディオ信号または音響波を生成するように、コンピューティングデバイス140、またはコンピューティングデバイス140のオーディオドライバ148に命令することができる。
データ処理システム102は、たとえば、データパケットを使用して、情報を受信および送信するように設計、構成、構築されるか、または動作可能なインターフェース106(または、インターフェースコンポーネント)を含み得る。インターフェース106は、ネットワークプロトコルなど、1つまたは複数のプロトコルを使用して、情報を受信および送信することができる。インターフェース106は、ハードウェアインターフェース、ソフトウェアインターフェース、ワイヤードインターフェース、またはワイヤレスインターフェースを含み得る。インターフェース106は、あるフォーマットから別のフォーマットにデータを変換またはフォーマットすることを容易にすることができる。たとえば、インターフェース106は、ソフトウェアコンポーネントなど、様々なコンポーネント間で通信するための定義を含む、アプリケーションプログラミングインターフェースを含み得る。インターフェース106は、ネットワーク105を介して、ローカルコンピューティングデバイス140、コンテンツプロバイダデバイス154、またはサードパーティデバイス156のうちの1つまたは複数と通信することができる。
データ処理システム102は、データ処理システム102のインターフェース106に入力オーディオ信号を通信するため、および出力オーディオ信号をレンダリングするようにローカルクライアントコンピューティングデバイスのコンポーネントを駆動するためのアプリなど、ローカルクライアントコンピューティングデバイス140においてインストールされたアプリケーション、スクリプト、またはプログラムとインターフェースすることができる。データ処理システム102は、オーディオ入力信号を含むかまたは識別する、データパケットまたは他の信号を受信することができる。
データ処理システム102、または対話型データ交換コンポーネント104は、自然言語プロセッサ(「NLP」)コンポーネント108を含み得る。たとえば、データ処理システム102は、オーディオ信号を受信または取得し、オーディオ信号をパースするために、NLPコンポーネント108を実行または稼働させることができる。たとえば、NLPコンポーネント108は、人間とコンピュータとの間の対話を提供することができる。NLPコンポーネント108は、自然言語を理解するため、およびデータ処理システム102が人間または自然言語入力から意味を導出することを可能にするための技法を用いて構成され得る。NLPコンポーネント108は、統計的機械学習などの機械学習に基づく技法を含むか、またはその技法を用いて構成され得る。NLPコンポーネント108は、決定木、統計モデル、または確率モデルを利用して、入力オーディオ信号をパースすることができる。NLPコンポーネント108は、たとえば、固有表現認識(たとえば、テキストのストリームが与えられると、テキスト中のどのアイテムが、人々または場所などの正式名称にマッピングするか、および人物、ロケーション、または組織など、そのような各名称のタイプが何であるかを決定する)、自然言語生成(たとえば、コンピュータデータベースからの情報、または意味的意図を、理解可能な人間の言語に変換する)、自然言語理解(たとえば、テキストを、コンピュータモジュールが操作することができる1次論理構造など、より形式的な表現に変換する)、機械翻訳(たとえば、テキストを、ある人間の言語から別の人間の言語に自動的に翻訳する)、形態素分割(たとえば、単語を個々の形態素に分割し、形態素のクラスを識別することであり、検討されている言語の単語の形態または構造の複雑さに基づいて、困難になり得る)、質問応答(たとえば、人間の言語の質問に対する応答を決定することであり、固有またはオープンエンドになり得る)、意味処理(たとえば、単語を識別し、その意味を符号化した後に、識別された単語を、同様の意味をもつ他の単語に関係付けるために、発生し得る処理)などの機能を実施することができる。
NLPコンポーネント108は、入力信号を(たとえば、データリポジトリ122内に)記憶されたオーディオ波形の代表的なセットに対して比較し、最も近い一致を選ぶことによって、オーディオ入力信号を、認識されたテキストに変換することができる。オーディオ波形のセットは、データリポジトリ122、またはデータ処理システム102にとってアクセス可能な他のデータベース内に記憶され得る。代表的な波形は、大きいユーザのセットにわたって生成され、次いで、ユーザからのスピーチサンプルを用いて増強され得る。オーディオ信号が、認識されたテキストに変換された後、NLPコンポーネント108は、テキストを、たとえば、ユーザにわたるトレーニングを介して、または手動の指定を通して、データ処理システム102がサービスすることができるアクションに関連付けられる単語にマッチングさせる。NLPコンポーネント108の態様または機能は、データ処理システム102またはローカルコンピューティングデバイス140によって実施され得る。たとえば、ローカルNLPコンポーネントは、入力オーディオ信号をテキストに変換し、さらなる自然言語処理のために、データパケットを介してデータ処理システム102にテキストを送信する態様を実施するために、ローカルコンピューティングデバイス140上で実行することができる。
オーディオ入力信号は、ローカルクライアントコンピューティングデバイス140のセンサ144またはトランスデューサ146(たとえば、マイクロフォン)によって検出され得る。トランスデューサ146を介して、オーディオドライバ148、またはローカルクライアントコンピューティングデバイス140の他のコンポーネントは、(たとえば、ネットワーク105を介して)データ処理システム102にオーディオ入力信号を提供することができ、そこで、オーディオ入力信号が、(たとえば、インターフェース106によって)受信され、NLPコンポーネント108に提供されるか、またはデータリポジトリ122内に記憶され得る。
ローカルコンピューティングデバイス140は、オーディオドライバ148と、トランスデューサ146と、センサ144と、プリプロセッサコンポーネント150とを含み得る。センサ144は、入力オーディオ信号(たとえば、音声入力)を受信または検出することができる。プリプロセッサコンポーネント150は、オーディオドライバ、トランスデューサ、およびセンサに結合され得る。プリプロセッサコンポーネント150は、入力オーディオ信号をフィルタ処理して、(たとえば、いくつかの周波数を除去すること、または雑音を抑圧することによって)フィルタ処理された入力オーディオ信号を作成することができる。プリプロセッサコンポーネント150は、(たとえば、ソフトウェアまたはハードウェアのデジタルアナログ変換器を使用して)フィルタ処理された入力オーディオ信号をデータパケットに変換することができる。場合によっては、プリプロセッサコンポーネント150は、フィルタ処理されていない入力オーディオ信号をデータパケットに変換し、データ処理システム102にデータパケットを送信することができる。プリプロセッサコンポーネント150は、自然言語プロセッサコンポーネントと、インターフェースと、話者認識コンポーネントと、ダイレクトアクションアプリケーションプログラミングインターフェースとを実行する、1つまたは複数のプロセッサおよびメモリを備えるデータ処理システム102に、データパケットを送信することができる。
データ処理システム102は、インターフェースを介して、プリプロセッサコンポーネントから、センサによって検出された、フィルタ処理された(または、フィルタ処理されていない)入力オーディオ信号を備える、データパケットを受信することができる。データ処理システム102は、入力オーディオ信号から音響シグネチャを識別することができる。データ処理システム102は、データリポジトリ内のルックアップ(たとえば、データベースへのクエリを行うこと)に基づいて、音響シグネチャに対応する電子アカウントを識別することができる。データ処理システム102は、電子アカウントの識別に応答して、セッションと、セッション内で使用するためのアカウントとを確立することができる。アカウントは、1つまたは複数のポリシーを有するプロファイルを含み得る。データ処理システム102は、要求と、要求に対応するトリガキーワードとを識別するために、入力オーディオ信号をパースすることができる。
データ処理システム102は、ローカルコンピューティングデバイス140のプリプロセッサコンポーネントに、ステータスを提供することができる。ローカルコンピューティングデバイス140は、ステータスの指示を受信することができる。オーディオドライバは、プロファイルのステータスの指示を受信し、指示に基づいて、出力信号を生成することができる。オーディオドライバは、指示をサウンド信号などの出力信号、または音響出力信号に変換することができる。オーディオドライバは、オーディオドライブによって生成された出力信号に基づいて、サウンドを生成するように、トランスデューサ146(たとえば、スピーカ)を駆動することができる。
場合によっては、ローカルコンピューティングデバイス140は、光源を含み得る。光源は、1つまたは複数のLED、ライト、ディスプレイ、または光出力もしくは視覚的出力を提供するように構成された他のコンポーネントもしくはデバイスを含み得る。プリプロセッサコンポーネントは、光源に、ステータスに対応する視覚的指示を提供させることができる。たとえば、視覚的指示は、オンになるステータスインジケータライト、ライトの色の変化、1つもしくは複数の色を用いたライトパターン、またはテキストもしくは画像の視覚的表示であり得る。
NLPコンポーネント108は、入力オーディオ信号を取得することができる。入力オーディオ信号から、NLPコンポーネント108は、少なくとも1つの要求、または要求に対応する少なくとも1つのトリガキーワードを識別することができる。要求は、入力オーディオ信号の意図または主題を示すことができる。トリガキーワードは、取られる可能性が高いアクションのタイプを示すことができる。トリガキーワードは、ローカルコンピューティングデバイス140に、後続のオーディオ入力をテキストに変換すること、およびさらなる処理のために、データ処理システム102にテキストを送信することを行うように指示する、ウェイクアップ信号またはホットワードであり得る。たとえば、NLPコンポーネント108は、入力オーディオ信号をパースして、ディナーおよび映画に参加するために夕方に家を出るという、少なくとも1つの要求を識別することができる。トリガキーワードは、取られるべきアクションを示す、少なくとも1つの単語、フレーズ、語根もしくは部分語、または派生語を含み得る。たとえば、入力オーディオ信号からのトリガキーワード「行く(go)」または「~に行くために(to go to)」は、輸送の必要を示すことがある。この例では、入力オーディオ信号(または、識別された要求)は、輸送のための意図を直接表すとは限らないが、トリガキーワードは、輸送が、要求によって示される少なくとも1つの他のアクションに対する補助的なアクションであることを示す。
NLPコンポーネント108は、要求およびトリガキーワードを識別する、決定する、取り出す、またはさもなければ取得するために、入力オーディオ信号をパースすることができる。たとえば、NLPコンポーネント108は、トリガキーワードまたは要求を識別するために、入力オーディオ信号に意味処理技法を適用することができる。NLPコンポーネント108は、第1のトリガキーワードおよび第2のトリガキーワードなど、1つまたは複数のトリガキーワードを含むトリガフレーズを識別するために、入力オーディオ信号に意味処理技法を適用することができる。たとえば、入力オーディオ信号は、「私はオーディオブックを購入したい(I want to purchase an audiobook)」という文を含み得る。NLPコンポーネント108は、文を備えるデータパケットに、意味処理技法または他の自然言語処理技法を適用して、トリガフレーズ「購入したい(want to purchase)」および「オーディオブック(audiobook)」を識別することができる。NLPコンポーネント108は、購入(purchase)、およびオーディオブック(audiobook)など、複数のトリガキーワードをさらに識別することができる。たとえば、NLPコンポーネント108は、トリガフレーズがトリガキーワードおよび第2のトリガキーワードを含むと決定することができる。
NLPコンポーネント108は、トリガキーワードを識別するために、入力オーディオ信号をフィルタ処理することができる。たとえば、入力オーディオ信号を搬送するデータパケットは、「もし自分が、空港に行く自分を手伝うことができるような誰かを得ることができれば、それは素晴らしいことだろう(It would be great if I could get someone that could help me go to the airport)」を含むことがあり、その場合、NLPコンポーネント108は、次のような1つまたは複数の用語、すなわち、「それは(it)」、「だろう(would)」、「こと(be)」、「素晴らしい(great)」、「もし(if)」、「自分が(I)」、「できれば(could)」、「得ることが(get)」、「誰かを(someone)」、「ような(that)」、「ことができる(could)」、または「手伝う(help)」をフィルタ処理で取り除くことができる。これらの用語をフィルタ処理で取り除くことによって、NLPコンポーネント108は、「空港に行く(go to the airport)」などのトリガキーワードをより正確かつ確実に識別し、これがタクシーまたはライドシェアリングサービスのための要求であると決定し得る。
場合によっては、NLPコンポーネントは、入力オーディオ信号を搬送するデータパケットが、1つまたは複数の要求を含むと決定することができる。たとえば、入力オーディオ信号は、「私は、オーディオブックと、映画の月間サブスクリプションを購入したい(I want to purchase an audiobook and monthly subscription to movies)」という文を含み得る。NLPコンポーネント108は、これがオーディオブックおよびストリーミングマルチメディアサービスのための要求であると決定することができる。NLPコンポーネント108は、これが単一の要求または複数の要求であると決定することができる。NLPコンポーネント108は、これが2つの要求、すなわち、オーディオブックを提供するサービスプロバイダのための第1の要求、および映画ストリーミングを提供するサービスプロバイダのための第2の要求であると決定することができる。場合によっては、NLPコンポーネント108は、複数の決定された要求を単一の要求に結合し、サードパーティデバイス156に単一の要求を送信することができる。場合によっては、NLPコンポーネント108は、別のサービスプロバイダデバイスに個々の要求を送信するか、または同じサードパーティデバイス156に両方の要求を別個に送信することができる。
データ処理システム102は、要求に応答して、トリガキーワードに基づいて、アクションデータ構造を生成するために設計および構築された、ダイレクトアクションAPI110を含み得る。データ処理システム102のプロセッサは、ダイレクトアクションAPI110を呼び出して、デジタルコンポーネントを取得するため、カーシェアサービスからの車、またはオーディオブックなど、サービスまたは製品を注文するために、サードパーティデバイス156または他のサービスプロバイダに提供するためのデータ構造を生成するスクリプトを実行することができる。ダイレクトアクションAPI110は、サードパーティデバイス156がカーシェアサービスからの車を予約するなどの動作を実施することを可能にするために、ロケーション、時間、ユーザアカウント、物流または他の情報を決定するために、データリポジトリ122からのデータ、ならびにローカルクライアントコンピューティングデバイス140からのエンドユーザ承諾とともに受信されたデータを取得することができる。ダイレクトアクションAPI110を使用して、データ処理システム102はまた、サードパーティデバイス156と通信して、この例では、カーシェアピックアップ予約を行うことによって、コンバージョンを完了することができる。
ダイレクトアクションAPI110は、データ処理システム102によって決定されるような、エンドユーザの意図を満足するために、指定されたアクションを実行することができる。その入力中で指定されたアクション、およびデータリポジトリ122内のパラメータまたはルールに応じて、ダイレクトアクションAPI110は、ユーザ要求を履行するために必要とされるパラメータを識別するコードまたはダイアログスクリプトを実行することができる。そのようなコードは、たとえば、データリポジトリ122内で、ホームオートメーションサービスもしくはサードパーティサービスの名称など、追加の情報をルックアップすることができるか、または、そのようなコードは、要求されたタクシーの所期の目的地などの質問をエンドユーザに行うために、ローカルクライアントコンピューティングデバイス140においてレンダリングするためのオーディオ出力を提供することができる。ダイレクトアクションAPI110は、パラメータを決定することができ、アクションデータ構造に情報をパッケージ化することができ、次いで、アクションデータ構造が、履行されるために、コンテンツセレクタコンポーネント120などの別のコンポーネントに、またはサービスプロバイダコンピューティングデバイスに送られ得る。
ダイレクトアクションAPI110は、アクションデータ構造を生成または構築するために、NLPコンポーネント108、またはデータ処理システム102の他のコンポーネントから、命令またはコマンドを受信することができる。ダイレクトアクションAPI110は、データリポジトリ122内に記憶されたテンプレートリポジトリ130から、テンプレートを選択するために、アクションのタイプを決定することができる。アクションのタイプには、たとえば、サービス、製品、予約、チケット、マルチメディアコンテンツ、オーディオブック、サブスクリプションの管理、サブスクリプションの調整、デジタル通貨の送金、購入、または音楽が含まれ得る。アクションのタイプには、サービスまたは製品のタイプがさらに含まれ得る。たとえば、サービスのタイプには、カーシェアサービス、フードデリバリーサービス、ランドリーサービス、メイドサービス、修理サービス、家庭用サービス、デバイスオートメーションサービス、またはメディアストリーミングサービスが含まれ得る。製品のタイプには、たとえば、衣類、靴、玩具、電子機器、コンピュータ、書籍、または宝石類が含まれ得る。予約のタイプには、たとえば、ディナー予約、または美容院予約が含まれ得る。チケットのタイプには、たとえば、映画チケット、スポーツ会場チケット、または航空券が含まれ得る。場合によっては、サービス、製品、予約、またはチケットのタイプは、価格、ロケーション、配送のタイプ、利用可能性、または他の属性に基づいて分類され得る。
NLPコンポーネント108は、要求と、要求に対応するトリガキーワードとを識別するために、入力オーディオ信号をパースすることができ、要求に応答して、トリガキーワードに基づいて、第1のアクションデータ構造を生成することを、ダイレクトアクションAPIに行わせるために、ダイレクトアクションAPI110に要求およびトリガキーワードを提供することができる。ダイレクトアクションAPI110は、要求のタイプを識別すると、テンプレートリポジトリ130からの対応するテンプレートにアクセスすることができる。テンプレートは、サードパーティデバイス156のローカルコンピューティングデバイス140によって検出された入力オーディオを介して要求される動作(ピックアップのロケーションにおいてエンドユーザをピックアップし、目的地のロケーションまでエンドユーザを輸送するために、タクシーを送る動作など)を進めるために、ダイレクトアクションAPI110によってポピュレートされ得る構造化データセット内のフィールドを含み得る。ダイレクトアクションAPI110は、トリガキーワードおよび要求の1つまたは複数の特性に一致するテンプレートを選択するために、テンプレートリポジトリ130内でルックアップを実施することができる。たとえば、要求が、車のため、または目的地まで乗るための要求に対応する場合、データ処理システム102は、カーシェアリングサービステンプレートを選択することができる。カーシェアリングサービステンプレートは、以下のフィールド、すなわち、デバイス識別子、ピックアップのロケーション、目的地のロケーション、乗客数、またはサービスのタイプのうちの1つまたは複数を含み得る。ダイレクトアクションAPI110は、フィールドに値をポピュレートすることができる。フィールドに値をポピュレートするために、ダイレクトアクションAPI110は、コンピューティングデバイス140の1つもしくは複数のセンサ144、またはデバイス140のユーザインターフェースからの情報をピング、ポーリング、またはさもなければ取得することができる。たとえば、ダイレクトアクションAPI110は、GPSセンサなどのロケーションセンサを使用して、送信元ロケーションを検出することができる。ダイレクトアクションAPI110は、コンピューティングデバイス140のエンド
ユーザに、調査、プロンプト、またはクエリをサブミットすることによって、さらなる情報を取得することができる。ダイレクトアクションAPIは、データ処理システム102のインターフェース106、およびコンピューティングデバイス140のユーザインターフェース(たとえば、オーディオインターフェース、音声ベースのユーザインターフェース、ディスプレイ、またはタッチスクリーン)を介して、調査、プロンプト、またはクエリをサブミットすることができる。したがって、ダイレクトアクションAPI110は、トリガキーワードまたは要求に基づいて、アクションデータ構造のためのテンプレートを選択し、1つもしくは複数のセンサ144によって検出されたか、またはユーザインターフェースを介して取得された情報を、テンプレート内の1つまたは複数のフィールドにポピュレートし、サードパーティデバイス156による動作の実施を容易にするためのアクションデータ構造を生成、作成、またはさもなければ構築することができる。
アクションデータ構造を構築または生成するために、データ処理システム102は、値をポピュレートするための選択されたテンプレート内の1つまたは複数のフィールドを識別することができる。フィールドには、数値、文字列、ユニコード値、ブール論理、2進値、16進値、識別子、ロケーション座標、地理的エリア、タイムスタンプ、または他の値がポピュレートされ得る。フィールドまたはデータ構造自体は、データセキュリティを維持するために暗号化またはマスキングされ得る。
テンプレート内のフィールドを決定すると、データ処理システム102は、アクションデータ構造を作成するために、テンプレートのフィールドをポピュレートするための、フィールドのための値を識別することができる。データ処理システム102は、データリポジトリ122上でルックアップまたは他のクエリ動作を実施することによって、フィールドのための値を取得し、取り出し、決定し、またはさもなければ識別することができる。
場合によっては、データ処理システム102は、フィールドのための情報または値がデータリポジトリ122に不在であると決定することができる。データ処理システム102は、NLPコンポーネント108によって識別されたトリガキーワードおよび要求に応答して、アクションデータ構造を構築するために、データリポジトリ122内に記憶された情報または値が、期限切れである、古くなった、またはさもなければ好適ではないと決定することができる(たとえば、ローカルクライアントコンピューティングデバイス140のロケーションが、古いロケーションであり、現在のロケーションではない場合がある、アカウントが満了している可能性がある、目的地のレストランが新しいロケーションに移動している場合がある、物理的アクティビティ情報、または輸送方式)。
データ処理システム102が、現在、データ処理システム102のメモリ内で、テンプレートのフィールドのための値または情報へのアクセスを有していないと決定する場合、データ処理システム102は、値または情報を獲得することができる。データ処理システム102は、ローカルクライアントコンピューティングデバイス140の1つもしくは複数の利用可能なセンサへのクエリもしくはポーリングを行うこと、情報について、ローカルクライアントコンピューティングデバイス140のエンドユーザにプロンプトを出すこと、またはHTTPプロトコルを使用して、オンラインウェブベースのリソースにアクセスすることによって、情報を獲得または取得することができる。たとえば、データ処理システム102は、テンプレートの必要とされたフィールドであり得る、ローカルクライアントコンピューティングデバイス140の現在のロケーションを有していないと決定することができる。データ処理システム102は、ロケーション情報について、ローカルクライアントコンピューティングデバイス140へのクエリを行うことができる。データ処理システム102は、全地球測位システムセンサなどの1つもしくは複数のロケーションセンサ144、WIFI三角測量、セルタワー三角測量、Bluetooth(登録商標)ビーコン、IPアドレス、または他のロケーション検知技法を使用して、ロケーション情報を提供するように、ローカルクライアントコンピューティングデバイス140に要求することができる。
場合によっては、データ処理システム102は、第2のプロファイルを使用して、アクションデータ構造を生成することができる。次いで、データ処理システム102は、第2のプロファイルを使用して生成されたアクションデータ構造が、第1のプロファイルに準拠するか否かを決定することができる。たとえば、第1のプロファイルは、ローカルコンピューティングデバイス140を介してある電子オンライン小売業者から製品を購入することなど、あるタイプのアクションデータ構造をブロックするためのポリシーを含み得る。ローカルコンピューティングデバイス140によって検出された入力オーディオは、その電子オンライン小売業者から製品を購入するための要求を含んでいる場合がある。データ処理システム102は、第2のプロファイルを使用して、その電子オンライン小売業者に関連付けられたアカウント情報を識別し、次いで、製品を購入するためにアクションデータ構造を生成している場合がある。アクションデータ構造は、話者認識コンポーネント112によって識別された音響シグネチャに関連付けられた電子アカウントに対応するアカウント識別子を含み得る。
データ処理システム102は、ローカルコンピューティングデバイス140によって検出されたオーディオ入力信号を受信し、音響シグネチャを識別し、音響シグネチャに対応する電子アカウントを識別するように設計され、構築され、かつ動作可能である、話者認識コンポーネント112を含み得る。話者認識コンポーネント112は、インターフェース106を介して、ローカルコンピューティングデバイス140のセンサ144またはトランスデューサ146によって検出された入力オーディオ信号を含む、データパケットを受信することができる。話者認識コンポーネント112は、入力オーディオ信号から音響シグネチャを識別することができる。話者認識コンポーネント112は、データリポジトリ122内のルックアップに基づいて、音響シグネチャに対応する電子アカウントを識別することができる。
話者認識コンポーネント112は、入力オーディオ信号を搬送するペイロードを有するデータパケットを受信することができる。話者認識コンポーネント112は、オーディオのいくつかの周波数を除去するために、入力オーディオ信号において事前フィルタ処理または前処理を実施することができる。事前フィルタ処理は、低域フィルタ、高域フィルタ、またはバンドパスフィルタなどのフィルタを含み得る。フィルタは、周波数領域内で適用され得る。フィルタは、デジタル信号処理技法を使用して適用され得る。フィルタは、人間のスピーチの典型的な周波数から外れる周波数を除外しながら、人間の音声または人間のスピーチに対応する周波数を保つように構成され得る。たとえば、バンドパスフィルタは、第1のしきい値(たとえば、70Hz、75Hz、80Hz、85Hz、90Hz、95Hz、100Hz、または105Hz)を下回る周波数、および第2のしきい値(たとえば、200Hz、205Hz、210Hz、225Hz、235Hz、245Hz、または255Hz)を上回る周波数を除去するように構成され得る。バンドパスフィルタを適用することによって、ダウンストリーム処理におけるコンピューティングリソース利用を低減することができる。場合によっては、ローカルコンピューティングデバイス140上のプリプロセッサ150は、データ処理システム102に入力オーディオ信号を送信するより前に、バンドパスフィルタを適用し、それによって、ネットワーク帯域幅利用を低減することができる。しかしながら、ローカルコンピューティングデバイス140にとって利用可能なコンピューティングリソースに基づいて、データ処理システム102がフィルタ処理を実施することを可能にするために、データ処理システム102に入力オーディオ信号を提供することが、より効率的であり得る。
話者認識コンポーネント112は、話者に対応する電子アカウントの識別を容易にするために、追加の前処理または事前フィルタ処理技法を適用することができる。たとえば、話者認識コンポーネント112は、話者認識に干渉し得る環境雑音レベルを低減するために、雑音低減技法を適用することができる。雑音低減技法によって、話者認識の精度および速度が向上し、それによって、電子アカウントの識別におけるデータ処理システム102の性能を向上させることができる。
話者認識コンポーネント112は、データリポジトリ122内に記憶されたシグネチャ124にアクセスすることができる。話者認識コンポーネント112は、フィルタ処理された入力オーディオ信号を解析して、シグネチャを識別し、シグネチャを使用して、電子アカウントを識別することができる。したがって、話者認識コンポーネント112は、入力オーディオ信号のシグネチャに対応する電子アカウントを識別するために、話者認識または音声認識を実施することができる。
話者認識コンポーネント112は、パターン認識など、1つまたは複数の話者認識技法を用いて構成され得る。話者認識コンポーネント112は、テキストに依存しない話者認識プロセスを用いて構成され得る。テキストに依存しない話者認識プロセスでは、電子アカウントを確立するために使用されるテキストは、後に話者を認識するために使用されるテキストとは異なり得る。
たとえば、話者認識コンポーネント112は、入力スピーチソース間で異なる、入力オーディオ信号内の音響特徴を識別することができる。音響特徴は、一意の入力スピーチソースに対応し得る、物理的または学習されたパターンを反映し得る。音響特徴には、たとえば、声の高さ、または発話スタイルが含まれ得る。シグネチャを識別、処理、および記憶するために使用される技法には、周波数推定(たとえば、瞬時基本周波数、または離散エネルギー分離アルゴリズム)、隠れマルコフモデル(たとえば、将来の状態が現在の状態に依存し、それにおいてモデリングされているシステムが、観測されない状態を有する、ランダムに変化するシステムをモデリングするために使用される確率論的モデル)、混合ガウスモデル(たとえば、ガウス成分密度の加重和として表される、パラメトリック確率密度関数)、パターンマッチングアルゴリズム、ニューラルネットワーク、行列表現、ベクトル量子化(たとえば、プロトタイプベクトルの分布によって確率密度関数のモデリングを可能にする信号処理からの量子化技法)、または決定木が含まれ得る。追加の技法には、コホートモデルおよび世界モデルなど、アンチ話者技法が含まれ得る。話者認識コンポーネント112は、パターン認識を容易にするため、または話者特性に適応するために、機械学習モデルを用いて構成され得る。
入力オーディオ信号内の音響シグネチャを識別すると、話者認識コンポーネント112は、データリポジトリ122、またはシグネチャデータ構造(たとえば、シグネチャおよびアカウント124)内で、ルックアップを実施することができる。シグネチャデータ構造内に記憶されたシグネチャは、電子アカウントの識別子にマッピングし得る。話者認識コンポーネント112は、入力オーディオのシグネチャに対応する電子アカウントを取り出すために、入力オーディオ信号内で識別されたシグネチャを使用して、シグネチャデータ構造内でルックアップを実施することができる。
場合によっては、話者認識コンポーネント112は、ルックアップに基づいて、音響シグネチャに対応する電子アカウントの不在を決定することができる。たとえば、シグネチャが、シグネチャデータ構造124内に記憶されていないことがあるか、またはシグネチャのための電子アカウントが、まだ確立されていないことがある。ルックアップは、ヌル値または空集合を返し得る。シグネチャまたは電子アカウントの不在の決定に応答して、話者認識コンポーネント112は、データリポジトリ内で電子アカウントを作成することができる。話者認識コンポーネント112は、入力オーディオ信号から構築された新しいシグネチャと、対応する電子アカウントとを含めるように、シグネチャデータ構造124を更新することができる。話者認識コンポーネント112は、電子アカウントを新しい音響シグネチャにマッピングすることができる。
したがって、データ処理システム102は、データ処理システム102のインターフェース106を介して、アカウント識別子にリンクされたローカルコンピューティングデバイス140(たとえば、第1のクライアントデバイス、または第1のデジタルアシスタントデバイス)のセンサ144によって検出された入力オーディオ信号を備えるデータパケットを受信することができる、対話型データ交換コンポーネント104を含み得る。対話型データ交換コンポーネント104は、自然言語処理技法に基づいて(たとえば、NLPコンポーネント108によって)、デジタルコンポーネントのための要求と、要求に対応する1つまたは複数のキーワードとを識別するために、入力オーディオ信号を備えるデータパケットをパースすることができる。対話型データ交換コンポーネント104は、ローカルコンピューティングデバイス140とのセッションを確立し、デジタルアクセス制御データベース132内に記憶されたデジタルコンポーネントのためのポリシーまたはルール136に基づいて、アカウント識別子にリンクされた第1のクライアントデバイスによる、デジタルコンポーネントのための要求に応答して、フィールドをもつ入力プロンプトを生成することができる。
たとえば、対話型データ交換コンポーネント104は、アクセス制御データベース132またはアクセスコントローラコンポーネント114と通信して、要求を満足するために、追加の入力が必要とされ得ると決定することができる。追加の入力は、ユーザクレデンシャル、電子アカウント情報、支払い情報、取引情報、または認証情報であり得る。データリポジトリ122またはアクセスコントローラコンポーネント114と通信している、対話型データ交換コンポーネント104は、テンプレート130を使用して、入力プロンプトを生成することができる。テンプレート130は、要求されたデジタルコンポーネント138について確立されたルール136によって決定されるような、パラメータ134の値のためのものであり得る。たとえば、要求が、オーディオブックを聴くことである場合、データ処理システム102は、ユーザがどのようにオーディオの代金を支払うことを望むか、ユーザがオーディオブックをストリーミングすることを望むか、オーディオブックをダウンロードすることを望むか、ユーザがオーディオブックプロバイダの月間サブスクリプションをセットアップすることを望むか否か、ユーザがワンタイムストリーミングのみの構成を確立することを望むか、利用可能な、またはオーディオブックサービスを提供するサードパーティデバイス156によって提供される、任意の他のタイプの構成を確立することを望むかについての情報のための、入力プロンプトを生成することができる。したがって、入力プロンプトは、1つまたは複数の入力テキストボックス、またはドロップダウンメニュー、またはボタン、または他のグラフィカルユーザインターフェースウィジェットをもつ、1つまたは複数のフィールドを含み得る。データ処理システム102は、会話型コンピューティング環境のために入力テキストボックスを変換し得る。データ処理システム102は、入力テキストボックスが音声ベースの会話型コンピューティング環境のために好適ではないと決定することがあり、たとえば、データ処理システム102は、入力テキストボックスを変換することが煩わしい、非効率的である、安全性が低い、プロセッサ集約的である、または取引に遅延を引き起こすことがあると決定することがある。
データ処理システム102は、入力プロンプトがローカルコンピューティングデバイス140と互換性があるか否かを決定するように設計され、構築され、かつ動作可能な互換性チェッカーコンポーネント116を含み、それとインターフェースし、またはさもなければそれにアクセスすることができる。データ処理システム102は、入力プロンプトが、ユーザのアカウントにリンクされた第1のクライアントデバイスと互換性がないと決定することができる。データ処理システム102は、入力プロンプトが、ユーザのアカウントにリンクされた第2のクライアントデバイスと互換性があると決定することができる。
互換性チェッカーコンポーネント116は、生成された入力プロンプトに関連付けられた入力または出力のタイプを決定することができる。互換性チェッカーコンポーネント116は、ローカルコンピューティングデバイス140に関連付けられたデバイス情報を受信することができる。互換性チェッカーコンポーネント116は、生成された入力プロンプトに関連付けられた入力または出力のタイプを、ローカルコンピューティングデバイス140上で利用可能な入力および出力インターフェースと比較することができる。互換性チェッカーコンポーネント116が、生成された入力プロンプトのために必要とされる入力のタイプが、ローカルコンピューティングデバイス140上で利用可能ではないと決定する場合、互換性チェッカーコンポーネント116は、ローカルコンピューティングデバイス140が生成された入力プロンプトと互換性がないと決定することができる。たとえば、入力プロンプトは、電子商取引アカウント番号の入力を必要とすることがあるが、ローカルコンピューティングデバイス140は、キーボード、マウス、またはタッチスクリーンを含まないことがある。したがって、ローカルコンピューティングデバイス140は、それによって電子アカウント番号を入力するための機構を提供しないことがある。オーディオ信号を提供するか、または番号を声に出すことは可能であり得るが、データ処理システム102は、電子アカウント情報を声で提供することは安全ではない場合があると決定することができる。したがって、データ処理システム102は、非互換性を決定することができる。
互換性チェッカーコンポーネント116は、ローカルコンピューティングデバイス140が公的な、または安全ではないコンピューティングデバイス140であり、アカウント情報または認証情報を受信するために十分安全ではなく、したがって互換性がないと決定することができる。互換性チェッカーコンポーネント116は、リソース消費、デバイス構成、インターフェース利用可能性、選好、またはセキュリティに基づいて、非互換性を決定するために、様々なポリシーまたは技法を使用することができる。互換性チェッカーコンポーネント116は、ユーザによって要求されたデジタルコンポーネントのためのルールに基づいて、ポリシーを決定することができる。たとえば、要求されたデジタルコンポーネントのためのルールは、好ましい認証技法として、指紋などの生体認証であり得るが、ローカルコンピューティングデバイス140は、生体センサを含まないことがある。したがって、互換性チェッカーコンポーネント116は、ローカルコンピューティングデバイス140が生成された入力プロンプトについて互換性がないと決定することができる。
ローカルコンピューティングデバイス140が、生成された入力プロンプトと互換性がないと決定すると、データ処理システム102は、第2のコンピューティングデバイスを識別することができる。たとえば、データ処理システム102は、入力プロンプトが第1のクライアントデバイスと互換性がないとの決定に応答して、第1のクライアントデバイスにリンクされるアカウント識別子にリンクされた第2のクライアントデバイスのステータスを識別するように設計され、構築され、かつ動作可能なセッション転送コンポーネント118を含み、それとインターフェースし、またはさもなければそれにアクセスすることができる。第1のクライアントデバイスおよび第2のクライアントデバイスは、ローカルコンピューティングデバイス140の1つまたは複数のコンポーネントまたは機能を含み得る。第2のクライアントデバイスは、必要とされた入力インターフェース、出力インターフェース、アプリケーション、プログラム、計算リソース、または他の機能を含み得るので、入力プロンプトと互換性があり得る。
第2のクライアントデバイスを識別するために、データ処理システム102は、(たとえば、セッション転送コンポーネント118を介して)リンクされたデバイスデータ構造126内に示されるようなアカウントにリンクされた、1つまたは複数のデバイスをポーリングすることができる。データ処理システム102は、リンクされたデバイスのデバイス識別子を決定するために、アカウント識別子を使用して、リンクされたデバイスデータ構造126内でルックアップを実施し、次いで、そのようなデバイスをポーリングすることができる。データ処理システム102は、近くのデバイス、または(たとえば、ワイヤレス接続を介して)第1のクライアントデバイスに接続されたデバイスを識別するために、他のポーリング技法を使用することができる。セッション転送コンポーネント118は、クライアントデバイスのステータスを決定するために、第2のクライアントデバイスのためのデバイス情報を受信することができる。ステータスは、生成された入力プロンプトをポピュレートもしくは満足するか、またはそれに応答するために使用される入力インターフェース、出力インターフェース、計算リソース、または他の機能の利用可能性を示すことができる。たとえば、セッション転送コンポーネント118は、キーボード入力またはタッチスクリーン入力インターフェースの利用可能性についてのステータス情報について、第2のクライアントデバイスをポーリングすることができ、ステータス情報は、タッチスクリーンインターフェースが利用可能であることを示すことができる。
互換性チェッカーコンポーネント116は、セッション転送コンポーネントによって識別されたステータスに基づいて、入力プロンプトが第2のクライアントデバイスと互換性があると決定することができる。次いで、互換性チェッカーコンポーネント116は、セッションをハンドオーバするように、セッション転送コンポーネント118に命令することができる。セッション転送コンポーネント118は、第2のクライアントデバイスにセッションをハンドオーバし、第1のクライアントデバイスとのセッションの一部分を終了させることができる。セッションをハンドオーバすることは、第1のデバイスとのセッションを第2のデバイスに転送することを指すか、または含み得る。セッションをハンドオーバすることは、第2のデバイスとの要求された電子商取引を実施するために、セッションを開始することを指すか、または含み得る。セッションをハンドオーバすることは、第1のクライアントデバイスとのセッションを終了させること、および次いで、第2のクライアントデバイスとセッションを再開することを指すか、または含み得る。セッションをハンドオーバすることは、第2のクライアントデバイスとの第2のセッションを開始することを指すか、または含み得る。セッションをハンドオーバすることは、第1のクライアントデバイスを介して行われたセッションの部分に関連付けられた情報を第2のクライアントデバイスに提供することを指すか、または含み得る。セッションをハンドオーバすることは、第2のクライアントデバイスに生成された入力プロンプトを送信またはフォワーディングすることを指すか、または含み得る。
セッションは、アクセス制御セッションを含むか、または指すことがある。アクセス制御セッションは、デジタルコンポーネントへのアクセスの取得、要求、付与、または許可に関連付けられる1つまたは複数のデータ通信または接続を指すか、または含み得る。データ処理システム102は、第1のクライアントデバイス(たとえば、ローカルコンピューティングデバイス140)を介して検出された入力オーディオ信号に応答して、アクセス制御セッションを開始することができる。データ処理システム102は、生成された入力プロンプトが、ローカルコンピューティングデバイス140または第1のクライアントデバイスと互換性がないとの決定に応答して、第1のクライアントデバイス上のアクセス制御セッションを一時停止することができる。データ処理システム102は、第1のクライアントデバイスから第2のクライアントデバイスに、アクセス制御セッションをハンドオーバすることができる。データ処理システム102は、入力プロンプトに応答して、第2のクライアントデバイスを介して入力されたデータパケットに応答して、アクセス制御セッションを終了させることができる。
セッションを転送またはハンドオーバすると、対話型データ交換コンポーネント104は、ハンドオーバに応答して、第2のクライアントデバイスに入力プロンプトを送信することができる。対話型データ交換コンポーネント104は、入力プロンプトに応答して、第2のクライアントデバイスを介して入力されたデータパケットを受信することができる。
データ処理システム102は、第2のクライアントデバイスを介して入力されたデータパケットに基づいて、アカウント識別子のためのデジタルアクセス制御データベース内に記憶されたデジタルコンポーネントのためのパラメータを変更するように設計され、構築され、かつ動作可能なアクセスコントローラコンポーネント114を含み、それとインターフェースし、またはさもなければそれにアクセスすることができる。アクセスコントローラコンポーネント114は、アクセス制御データベース132を維持することができる。アクセスコントローラコンポーネント114は、アクセス制御データベース132を変更、調整、操作、または更新することができる。たとえば、アクセスコントローラコンポーネント114は、月間サブスクリプション、ワンタイム視聴、年間サブスクリプション、または他の購入タイプを示すように、デジタルコンポーネントのためのアクセス制御データベース132内に記憶されたサブスクリプションサービスパラメータを更新することができる。たとえば、アクセスコントローラコンポーネント114は、アカウントにリンクされたデバイスが、デジタルコンポーネントを実行、レンダリング、処理、またはさもなければ提示することを許可されることを示すように、アカウントのためのデジタルコンポーネントのためのパラメータのための値を更新することができる。
アクセスコントローラコンポーネント114は、アクセス制御データベース132内の任意のタイプのデジタルコンポーネントのためのサブスクリプション、購入、またはアクセス情報を維持することができる。アクセスコントローラコンポーネント114は、パラメータ134のための値を更新するために、デジタルコンポーネント138のタイプに対応するルール136をパースまたは処理するように構成され得る。アクセスコントローラコンポーネント114は、サードパーティデバイス156、またはデジタルコンポーネントの他のプロバイダから、更新されたかまたは新しいルールを受信し、アクセス制御データベース132内に、更新されたかまたは新しいルールを記憶することができる。したがって、アクセスコントローラコンポーネント114は、サードパーティデバイス156の代わりに、またはサードパーティデバイス156に加えて、デジタルコンポーネントのためのアクセス制御を維持、変更、追加、除去、削除、またはさもなければ操作もしくは調整することができる。
次いで、データ処理システム102は、クライアントデバイスによる実行のために、デジタルコンポーネントを提供することができる。たとえば、データ処理システム102は、アカウント識別子にリンクされた第3のクライアントデバイス上で、デジタルコンポーネントを実行するための要求を受信することができる。データ処理システム102は(たとえば、アクセスコントローラコンポーネント114を介して)、アカウント識別子のためのデジタルアクセス制御データベース内に記憶されたパラメータ情報に基づいて、第2のクライアントデバイスがデジタルコンポーネントへのアクセスを有することを検証することができる。データ処理システム102は(たとえば、互換性チェッカーコンポーネント116を介して)、デジタルコンポーネントが第3のクライアントデバイスと互換性があると決定することができる。たとえば、デジタルコンポーネントを実行、提示、もしくはレンダリングするために必要とされるアプリケーションのタイプが、第3のクライアントデバイス(たとえば、アプリケーションバージョン、オペレーティングシステムバージョン)上で利用可能であるか、計算リソース(たとえば、プロセッサ速度、メモリ、帯域幅、ストレージ)が、デジタルコンポーネントを処理もしくは実行するために十分であるか、または、デジタルコンポーネントを提示するために使用されるインターフェース(たとえば、ディスプレイ、入力、キーボード、タッチスクリーン、センサ、加速度計、GPS、またはスピーカ)が、クライアントデバイス上で利用可能である。互換性チェッカーコンポーネント116は、互換性を決定するために、ステータス情報を取得するために、第3のクライアントデバイスをポーリングすることができる。したがって、デジタルコンポーネントのアクセスおよび互換性の検証に応答して、データ処理システム102は、第3のクライアントデバイスによる実行のために、デジタルコンポーネントを提供することができる。
互換性チェッカーコンポーネント116は、デバイスのステータスに基づいて、デバイスによって要求されたデジタルコンポーネントが、デバイスによる実行のために互換性がないと決定することができる。データ処理システム102は、第3のクライアントデバイスのステータスに基づいて、デジタルコンポーネントのフォーマットを変換することができる。データ処理システム102は、互換性情報またはステータス情報に応答して、デジタルコンポーネントを第1のフォーマットから第2のフォーマットに変換することができる。たとえば、デバイスは、第1の解像度をもつディスプレイを含むことがあり、次いで、データ処理システム102は、そのディスプレイと互換性があるように、デジタルコンポーネントの解像度を調整することができる。デバイスは、3次元のビデオではなく、2次元の画像およびビデオが可能なグラフィックドライバとともに構成されることがあり、データ処理システム102は、デジタルコンポーネントを2次元表示のために変換することができる。
データ処理システム102(たとえば、互換性チェッカー116)は、アカウント識別子にリンクされた複数のクライアントデバイスを識別することができる。互換性チェッカー116は、デジタルコンポーネントと互換性がある複数のクライアントデバイスのサブセットを識別することができる。互換性チェッカー116は、パラメータの変更に応答して、複数のクライアントデバイスのサブセットにおける実行のために、デジタルコンポーネントを提供することができる。したがって、アクセスコントローラコンポーネント114は、第3のクライアントデバイスによってデジタルコンポーネントを実行するための許可を提供することによって、パラメータを変更することができる。アクセスコントローラコンポーネント114は、デジタルコンポーネントのタイプに基づいて、パラメータのタイプを決定し、タイプに基づいて、パラメータを変更することができる。
たとえば、データ処理システム102は、デジタルコンポーネントオブジェクトを選択するように設計、構築、構成されるか、または動作可能なコンテンツセレクタコンポーネント120を含み得る。音声ベースの環境における表示のためにデジタルコンポーネントを選択するために、データ処理システム102は(たとえば、NLPコンポーネント108を介して)、キーワード(たとえば、トリガキーワード)を識別するために、入力オーディオ信号をパースし、キーワードを使用して、部分一致、完全一致、またはフレーズ一致に基づいて、一致するデジタルコンポーネントを選択することができる。たとえば、コンテンツセレクタコンポーネント120は、候補デジタルコンポーネントの主題を解析、パース、またはさもなければ処理して、候補デジタルコンポーネントの主題が、ローカルクライアントコンピューティングデバイス140のマイクロフォンによって検出された入力オーディオ信号のキーワードまたはフレーズの主題に対応するか否かを決定することができる。コンテンツセレクタコンポーネント120は、画像処理技法、文字認識技法、自然言語処理技法、またはデータベースルックアップを使用して、候補デジタルコンポーネントの音声、オーディオ、用語、文字、テキスト、記号、または画像を識別、解析、または認識し得る。候補デジタルコンポーネントは、候補デジタルコンポーネントの主題を示すメタデータを含み得、その場合、コンテンツセレクタコンポーネント120は、メタデータを処理して、候補デジタルコンポーネントの主題が入力オーディオ信号に対応するか否かを決定し得る。
コンテンツセレクタコンポーネント120は、コンテンツ選択を実施するために、プロファイルスタック内で提供された情報をさらに利用することができる。コンテンツセレクタコンポーネント120は、第2のプロファイルレイヤを利用することができ、第2のプロファイルレイヤは、ローカルコンピューティングデバイス140によって検出された入力オーディオ信号を提供した話者に関連付けられた電子アカウントに対応し得る。コンテンツセレクタ120は、第1のプロファイルレイヤに関連付けられた情報を使用することもでき、第1のプロファイルレイヤは、サードパーティデバイス156によって提供されたデフォルトプロファイルレイヤに対応し得る。コンテンツプロバイダ154によって提供されたコンテンツキャンペーンは、データ処理システム102が、第2のプロファイルレイヤまたは第1のプロファイルレイヤ内で示された基準に一致し得るという、コンテンツ選択基準を含み得る。
コンテンツプロバイダ154は、デジタルコンポーネントを含むコンテンツキャンペーンをセットアップするとき、追加のインジケータを提供し得る。コンテンツプロバイダ154は、コンテンツセレクタコンポーネント120が候補デジタルコンポーネントについての情報を使用して、ルックアップを実施することによって識別し得る、コンテンツキャンペーンまたはコンテンツグループレベルにおける情報を提供し得る。たとえば、候補デジタルコンポーネントは、一意の識別子を含み得、一意の識別子は、コンテンツグループ、コンテンツキャンペーン、またはコンテンツプロバイダにマッピングし得る。コンテンツセレクタコンポーネント120は、データリポジトリ122内のコンテンツキャンペーンデータ構造内に記憶された情報に基づいて、コンテンツプロバイダ154についての情報を決定し得る。
データ処理システム102は、コンピュータネットワークを介して、コンピューティングデバイス140上で提示するためのコンテンツのための要求を受信することができる。データ処理システム102は、ローカルクライアントコンピューティングデバイス140のマイクロフォンによって検出された入力オーディオ信号を処理することによって、要求を識別することができる。要求は、要求に関連付けられたデバイスタイプ、ロケーション、およびキーワードなど、要求の選択基準を含み得る。要求は、そのアクションデータ構造またはアクションデータ構造を含み得る。
要求に応答して、データ処理システム102は、データリポジトリ122、またはコンテンツプロバイダ154に関連付けられたデータベースから、デジタルコンポーネントオブジェクトを選択し、ネットワーク105を介して、コンピューティングデバイス140を介した提示のために、デジタルコンポーネントを提供することができる。デジタルコンポーネントオブジェクトは、サードパーティデバイス156とは異なるコンテンツプロバイダデバイス154によって提供され得る。デジタルコンポーネントは、アクションデータ構造のサービスのタイプとは異なるサービスのタイプ(たとえば、フードデリバリーサービスに対して、タクシーサービス)に対応し得る。コンピューティングデバイス140は、デジタルコンポーネントオブジェクトと対話することができる。コンピューティングデバイス140は、デジタルコンポーネントへのオーディオ応答を受信することができる。コンピューティングデバイス140は、コンテンツプロバイダデバイス154もしくはサードパーティデバイス156を識別すること、コンテンツプロバイダデバイス154もしくはサードパーティデバイス156からのサービスを要求すること、サービスを実施するように、コンテンツプロバイダデバイス154もしくはサードパーティデバイス156に命令すること、コンテンツプロバイダデバイス154もしくはサードパーティデバイス156に情報を送信すること、またはさもなければコンテンツプロバイダデバイス154もしくはサードパーティデバイス156へのクエリを行うことを、コンピューティングデバイス140に行わせるか、またはコンピューティングデバイス140が行うことを可能にする、デジタルコンポーネントオブジェクトに関連付けられたハイパーリンクまたは他のボタンを選択するための指示を受信することができる。
データ処理システム102は(たとえば、インターフェース106およびネットワーク105を介して)、入力オーディオ信号またはその要求もしくはクエリに応答する出力信号を備えるデータパケットを送信することができる。出力信号は、出力信号に対応する音響波を生成するように、ローカルコンピューティングデバイス140のスピーカ(たとえば、トランスデューサ146)を駆動することを、ローカルコンピューティングデバイス140の、またはローカルコンピューティングデバイス140によって実行された、オーディオドライバコンポーネント148に行わせることができる。
図2は、コンピューティングデバイス間のアクセス制御を同期化するためのシステム200の動作の図である。システム200は、図1に示されたシステム100、または図4に示されたシステム400の1つまたは複数のコンポーネントを含み得る。たとえば、システム200は、データ処理システム102を含み得る。システム200は、第1のデジタルアシスタントデバイス280、第2のデジタルアシスタントデバイス282、または第3のデジタルアシスタントデバイス284を含むか、またはそれとインターフェースもしくは通信することができる。第1のデジタルアシスタントデバイス280、第2のデジタルアシスタントデバイス282、および第3のデジタルアシスタントデバイス284は、ローカルコンピューティングデバイス140の1つまたは複数のコンポーネントまたは機能を含み得る。第1のデジタルアシスタントデバイス280、第2のデジタルアシスタントデバイス282、および第3のデジタルアシスタントデバイス284は、互いに異なる機能またはインターフェースを含み得る。たとえば、第1のデジタルアシスタントデバイス280は、ディスプレイデバイス152を含まないスピーカデジタルアシスタントであり得、第2のデジタルアシスタントデバイス282は、タッチスクリーンを含むモバイルコンピューティングデバイスであり得、第3のデジタルアシスタントデバイス284は、ラップトップコンピュータであり得る。
行為(ACT)202で、第1のデジタルアシスタントデバイス280は、入力オーディオ信号を受信する。入力オーディオ信号は、要求、1つもしくは複数のキーワード、またはトリガフレーズもしくはキーワードを含み得る。入力オーディオ信号は、コンテンツへのアクセスのためのクエリを含み得る。たとえば、入力オーディオ信号は、「私は、Company_Aストリーミングサービスの月間サブスクリプションにサインアップすることを望む(I would like to sign up for a monthly subscription to Company_A streaming service)」であり得る。入力オーディオ信号は、「私は、AudioBook_Bを購入したい(I want to purchase AudioBook_B)」であり得る。入力オーディオ信号は、「私は、デジタルcurrency_Dを使用して、Album_Cを購入したい(I want to purchase Album_C using digital currency_D)」であり得る。入力オーディオ信号は、「私は、VideoGame_Eのフリートライアルバージョンを入手したい(I want to get a free trial version of VideoGame_E)」であり得る。
行為204で、第1のデジタルアシスタントデバイス280は、ネットワーク105を介して、データ処理システム102に、入力オーディオ信号(または、そのテキストバージョンもしくはデータパケット)を送信することができる。データ処理システム102は、データパケットを受信することができる。データ処理システム102は、行為206で、要求を識別することができる。たとえば、データ処理システム102は、データ処理システム102の対話型データ交換コンポーネントのNLPコンポーネントを使用して、要求を識別することができる。
行為208で、データ処理システム102は、アクセス制御を変更するか否かについての判定ブロックを実施することができる。判定ブロックは、データ処理システムが、デジタルコンポーネントを提供するために、アクセス制御パラメータを変更するか否かを決定することを指すか、または含み得る。判定ブロックは、データ処理システム102が、第1のデジタルアシスタントデバイス280が要求されたデジタルコンポーネントにアクセスすることをすでに許可されているか否かを決定することを指すか、または含み得る。行為208に対応する判定ブロックで、データ処理システム102が、第1のデジタルアシスタントデバイス280に対応するアカウント識別子のための要求されたデジタルコンポーネントのためのアクセス制御パラメータを変更する必要がないと決定する場合、データ処理システムは、判定ブロック210に進み、デジタルコンポーネントが第1のデジタルアシスタントデバイス280による実行のために互換性があるか否かを決定することができる。判定ブロック210で、データ処理システム102が、(たとえば、第1のデジタルアシスタントデバイス280のステータスまたはデバイス情報に基づいて)デジタルコンポーネントが第1のデジタルアシスタントデバイス280と互換性があると決定する場合、データ処理システムは、行為214で、実行のために、第1のデジタルアシスタントデバイス280にデジタルコンポーネントを送信することができる。
しかしながら、データ処理システム102が、判定ブロック210で、デジタルコンポーネントが第1のデジタルアシスタントデバイス280と互換性がないと決定する場合、データ処理システム102は、行為212で、第1のデジタルアシスタントデバイス280と互換性があるように、デジタルコンポーネントを再フォーマットすることを決定することができる。データ処理システム102が、行為212で、デジタルコンポーネントを再フォーマットすることができる場合、データ処理システム102は、続けて再フォーマットし、行為214で、実行のために、第1のデジタルアシスタントデバイス280に、再フォーマットされたデジタルコンポーネントを送信する。データ処理システム102が、デジタルコンポーネントを互換性のあるフォーマットに再フォーマットすることができない場合、データ処理システム102は、行為242におけるセッションハンドオーバに進むか、またはループから出ることができる。行為242におけるセッションハンドオーバは、アカウントにリンクされた、互換性のあるデジタルアシスタントデバイスを識別すること、およびリンクされた、互換性のあるデジタルアシスタントデバイス上で実行するために、デジタルコンポーネントを送信することを含み得る。
判定ブロック208で、データ処理システム102が、アクセス制御パラメータを変更することを決定する場合、データ処理システムは、行為216で、続けて入力プロンプトを生成することができる。データ処理システム102は、要求されたデジタルコンポーネントのタイプ、およびデジタルコンポーネントのタイプに関連付けられたルールに基づいて、入力プロンプトを生成することができる。データ処理システム102は、それにおいて値が入力され得る1つまたは複数のフィールドをもつ、入力プロンプトを生成することができる。行為218で、データ処理システム102は、生成された入力プロンプトが第1のデジタルアシスタントデバイス280と互換性があるか否かを決定することができる。生成された入力プロンプトが第1のデジタルアシスタントデバイスと互換性がある場合、データ処理システム102は、行為220で、第1のデジタルアシスタントデバイスに、生成された入力プロンプトを送信することができる。データ処理システム102は、行為222で、入力プロンプトに応答する入力データを受信することができる。たとえば、データ処理システム102は、アカウント情報、選択、支払い情報、時間間隔情報、選好、または他の情報を受信することができる。行為224で、データ処理システム102は、第1のデジタルアシスタントデバイス280から受信された入力データを用いて、アクセス制御データベースを更新することができる。
しかしながら、行為218で、データ処理システム102が、生成された入力プロンプトが第1のデジタルアシスタントデバイス280と互換性がないと決定する場合、データ処理システムは、行為226で、互換性のある第2のデバイスについてポーリングすることができる。データ処理システム102は、第1のデジタルアシスタントデバイス280の範囲内のデバイスを識別するために、ポールまたはピングをブロードキャストすることができる。たとえば、データ処理システム102は、他のデジタルアシスタントデバイス282を識別するために、通信プロトコルまたはブロードキャストプロトコルを使用して、ポールまたはピングまたはビーコンをブロードキャストするように、第1のデジタルアシスタントデバイス280に命令することができる。データ処理システム102は、第1のデジタルアシスタントデバイス280がリンクされる先のアカウントにリンクされる他のデバイスを識別するために、リンクされたデバイスデータ構造内でルックアップを実施することができる。
第2のデジタルアシスタントデバイス282を識別すると、データ処理システムは、行為228で、セッションハンドオーバを実施することができる。データ処理システム102は、第1のデジタルアシスタントデバイス280とともに以前に確立されたか、または第1のアシスタントデバイス280を介して開始されたセッションを、一時停止、保留、もしくは終了させることができる。データ処理システム102は、第1のデジタルアシスタントデバイス280が、デジタルコンポーネントを実行するために、アクセス制御を調整することに関連付けられたさらなる処理または機能を実施するために互換性がないか、または動作可能ではないと決定することができるので、データ処理システム102は、セッションをハンドオーバすることができる。
行為230で、および行為228におけるセッションハンドオーバに応答して、データ処理システム102は、第2のデジタルアシスタントデバイス282に、生成された入力プロンプトを送信することができる。第2のデジタルアシスタントデバイス282は、行為230における生成された入力プロンプトの受信に応答して、行為232で、入力データを提供することができる。データ処理システム102は、行為224で、アカウントのためのデジタルコンポーネントのためのパラメータおよび値を調整、更新、変更、または追加するために、アクセス制御データベースを更新することができる。
行為234で、データ処理システム102は、デジタルコンポーネントのための第3のデジタルアシスタントデバイス284からの要求を受信することができる。データ処理システム102は、判定ブロック236で、第3のデジタルアシスタントデバイス284がデジタルコンポーネントを実行、アクセス、受信、またはさもなければ使用することを許可されるか否かを決定することができる。判定ブロック236で、データ処理システムが、(たとえば、アクセス制御データベース132内の更新されたパラメータのルックアップに基づいて)第3のデジタルアシスタントデバイス284が要求されたデジタルコンポーネントにアクセスすることを許可されると決定する場合、データ処理システム102は、行為238で、第3のデジタルアシスタントデバイス284にデジタルコンポーネントを提供するように、サードパーティデバイス156に命令することができる。サードパーティデバイス156は、行為240で、実行のために、第3のデジタルアシスタントデバイス284にデジタルコンポーネントを提供することができる。
しかしながら、行為236で、データ処理システム102が、第3のデジタルアシスタントデバイス284がデジタルコンポーネントにアクセスすることを許可されないと決定する(たとえば、パラメータが、第2のデジタルアシスタントデバイスへのアクセスのみを可能にするか、または、アクセス時間間隔もしくは地理的境界が満了している)場合、データ処理システム102は、デジタルコンポーネントのためのアクセス制御パラメータを変更するために、行為208に進むことができる。
したがって、データ処理システム102は、サードパーティデバイス156、またはデジタルコンポーネントのプロバイダが行わなくてもよいように、異なるタイプのデジタルコンポーネントのために、および異なるタイプのデジタルアシスタントデバイスにわたって、アクセス制御を中央管理することができる。サードパーティデバイス156は、データ処理システム102からのデジタルコンポーネントを提供するための命令に応答して、デジタルコンポーネントを提供することができるが、データ処理システム102は、デジタルアシスタントデバイスがデジタルコンポーネントを受信することを許可されるか否かを決定するため、ならびに、デジタルアシスタントデバイスがデジタルコンポーネントを購入することを可能にするための機能を実施する。データ処理システム102は、第1のデジタルアシスタントデバイスから取得され、次いで第2のデジタルアシスタントデバイス上で使用され得るデジタル通貨を使用して、電子商取引を実施することができる。たとえば、第2のデジタルアシスタントデバイスは、デジタル通貨を受信することができるが、ユーザは、別のデジタルコンポーネントを用いてデジタル通貨を使うかまたは交換するために、第3のデジタルアシスタントデバイスを使用することができる。
第1のデジタルアシスタントデバイス280、第2のデジタルアシスタントデバイス282、および第3のデジタルアシスタントデバイス284は、実行中であるかまたは1つもしくは複数のデバイスによって提供された、異なる物理的デバイス、またはアプリケーションもしくはサーフェスであり得る。
データ処理システムは、第2のデジタルコンポーネントを実行するようにとの第3のクライアントデバイスからの要求を受信することができる。データ処理システムは、アクセス制御データベース内の第2のデジタルコンポーネントのために記憶されたパラメータに基づいて、第3のクライアントデバイスが第2のデジタルコンポーネントを実行することを許可されていないと決定することができる(たとえば、図2に示された判定ブロック236)。データ処理システムは、第2のクライアントデバイスに、第2のデジタルコンポーネントのための入力プロンプトを送信することができる(たとえば、図2に示された行為208、216、218、226、228、230)。データ処理システムは、第2のクライアントデバイスを介して提供された入力に応答して、第3のクライアントデバイスを許可することができる。
データ処理システムは、入力プロンプト内の複数のフィールドを識別することができる。データ処理システムは、複数のフィールドの各々のためのオーディオクエリを生成することができる。データ処理システムは、複数のフィールドの各々のために生成されたオーディオクエリに応答して、1つまたは複数の入力オーディオ信号を受信することができる。たとえば、デジタルコンポーネントのためのルールは、オーディオへのコンバージョンのために構成され、オーディオ入力を受信するフィールドをもつ、入力プロンプトを生成するように示すことができる。データ処理システムは、第1のデジタルアシスタントデバイスに入力プロンプトを提供することを決定することができる(たとえば、図2に示された行為218および220)。
第1のクライアントデバイス(または、デジタルアシスタントデバイス280)は、第1のサーフェスまたはユーザインターフェースタイプを実行することができ、第2のクライアントデバイス(または、デジタルアシスタントデバイス282)は、第2のサーフェスまたはユーザインターフェースタイプを実行することができ、第3のクライアントデバイス(または、デジタルアシスタントデバイス284)は、第1のサーフェスおよび第2のサーフェスとは異なる、第3のサーフェスまたはユーザインターフェースタイプを実行することができる。データ処理システムは、第3のサーフェスおよび第2のサーフェスによる実行のために、デジタルコンポーネントを提供することができる。
1つまたは複数のクライアントデバイスは、ローカルストレージまたはメモリ内にアカウント情報を記憶することができる。たとえば、データ処理システムは、第3のクライアントデバイスのメモリ内に記憶するために、アカウント識別子のためのデジタルアクセス制御データベース上のデジタルコンポーネントのためのパラメータを提供することができる。データ処理システムは、入力プロンプトに応答して、第2のクライアントデバイスを介して入力されたデータパケットに応答して、第3のクライアントデバイスのメモリ内に記憶されたデジタルコンポーネントのためのパラメータを更新することができる。
図3は、コンピューティングデバイス間のアクセス制御を同期化する例示的な方法の図である。方法300は、図1に示されたシステム100、図2に示されたシステム200、または図4に示されたシステム400の1つまたは複数のコンポーネント、システム、または要素によって実施され得る。たとえば、方法300は、データ処理システムによって実施され得る。行為302で、データ処理システムは、第1のデバイスからの要求を受信することができる。データ処理システムは、アカウント識別子にリンクされた第1のクライアントデバイスのセンサによって検出された入力オーディオ信号を備えるデータパケットを受信することができる。データ処理システムは、自然言語処理技法に基づいて、デジタルコンポーネントのための要求と、要求に対応する1つまたは複数のキーワードとを識別するために、入力オーディオ信号を備えるデータパケットをパースすることができる。データ処理システムは、第1のクライアントデバイスとのセッションを確立することができる。データ処理システムは、デジタルアクセス制御データベース内に記憶されたデジタルコンポーネントのためのポリシー(またはルール)に基づいて、アカウント識別子にリンクされた第1のクライアントデバイスによる、デジタルコンポーネントのための要求に応答して、フィールドをもつ入力プロンプトを生成することができる。
行為304で、データ処理システムは、第2のデバイスにセッションをハンドオーバすることができる。たとえば、データ処理システムは、入力プロンプトが第1のクライアントデバイスと互換性がないと決定することができる。データ処理システムは、入力プロンプトが第1のクライアントデバイスと互換性がないとの決定に応答して、第1のクライアントデバイスにリンクされるアカウント識別子にリンクされた第2のクライアントデバイスのステータスを識別することができる。データ処理システムは、セッション転送コンポーネントによって識別されたステータスに基づいて、入力プロンプトが第2のクライアントデバイスと互換性があると決定することができる。データ処理システムは、決定に応答して、第2のクライアントデバイスへのセッションのハンドオーバを実施し、第1のクライアントデバイスとのセッションの一部分を終了させることができる。データ処理システムは、ハンドオーバに応答して、第2のクライアントデバイスに入力プロンプトを送信することができる。
行為306で、データ処理システムは、アクセス制御データベースを変更することができる。たとえば、データ処理システムは、入力プロンプトに応答して、第2のクライアントデバイスを介して入力されたデータパケットを受信することができる。データ処理システムは、第2のクライアントデバイスを介して入力されたデータパケットに基づいて、アカウント識別子のためのデジタルアクセス制御データベース内に記憶されたデジタルコンポーネントのためのパラメータを変更することができる。
行為308で、データ処理システムは、第3のデバイスからの要求を受信することができる。データ処理システムは、アカウント識別子にリンクされた第3のクライアントデバイス上で、デジタルコンポーネントを実行するための要求を受信することができる。行為310で、データ処理システムは、第3のデバイスにデジタルコンポーネントを提供することができる。データ処理システムは、アカウント識別子のためのデジタルアクセス制御データベース内に記憶されたデジタルコンポーネントのためのパラメータの、アクセスコントローラコンポーネントによる検証、および、デジタルコンポーネントが第3のクライアントデバイスと互換性があるとの、互換性チェッカーコンポーネントによる決定に応答して、第3のクライアントデバイスによる実行のために、デジタルコンポーネントを提供することができる。
図4は、例示的なコンピュータシステム400のブロック図である。コンピュータシステムまたはコンピューティングデバイス400は、システム100、またはデータ処理システム102など、そのコンポーネントを含むか、またはそれを実装するために使用され得る。データ処理システム102は、インテリジェントパーソナルアシスタント、または音声ベースのデジタルアシスタントを含み得る。コンピューティングシステム400は、情報を通信するためのバス405または他の通信コンポーネントと、情報を処理するための、バス405に結合されたプロセッサ410または処理回路とを含む。コンピューティングシステム400はまた、情報を処理するための、バスに結合された1つまたは複数のプロセッサ410または処理回路を含み得る。コンピューティングシステム400はまた、情報、およびプロセッサ410によって実行されることになる命令を記憶するための、バス405に結合された、ランダムアクセスメモリ(RAM)または他の動的記憶デバイスなどのメインメモリ415を含む。メインメモリ415は、データリポジトリ122であるか、またはそれを含み得る。メインメモリ415はまた、プロセッサ410による命令の実行中に、位置情報、一時変数、または他の中間情報を記憶するために使用され得る。コンピューティングシステム400は、プロセッサ410のための静的情報および命令を記憶するための、バス405に結合された読取り専用メモリ(ROM)420、または他の静的記憶デバイスをさらに含み得る。ソリッドステートデバイス、磁気ディスク、または光ディスクなどの記憶デバイス425は、情報および命令を永続的に記憶するために、バス405に結合され得る。記憶デバイス425は、データリポジトリ122を含むか、またはその一部であり得る。
コンピューティングシステム400は、バス405を介して、ユーザに情報を表示するための液晶ディスプレイまたはアクティブマトリックスディスプレイなどのディスプレイ435に結合され得る。英数字および他のキーを含むキーボードなどの入力デバイス430は、プロセッサ410に情報およびコマンド選択を通信するために、バス405に結合され得る。入力デバイス430は、タッチスクリーンディスプレイ435を含み得る。入力デバイス430はまた、プロセッサ410に方向情報およびコマンド選択を通信するため、ならびにディスプレイ435上のカーソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御を含み得る。ディスプレイ435は、たとえば、図1のデータ処理システム102、クライアントコンピューティングデバイス140、または他のコンポーネントの一部であり得る。
本明細書で説明するプロセス、システム、および方法は、プロセッサ410によるメインメモリ415内に含まれた命令の配列の実行に応答して、コンピューティングシステム400によって実装され得る。そのような命令は、記憶デバイス425など、別のコンピュータ可読媒体から、メインメモリ415に読み込まれ得る。メインメモリ415内に含まれた命令の配列の実行によって、本明細書で説明する例示的なプロセスをコンピューティングシステム400に実施させる。多重処理配列における1つまたは複数のプロセッサもまた、メインメモリ415内に含まれた命令を実行するために採用され得る。ハードワイヤード回路が、本明細書で説明するシステムおよび方法とともに、ソフトウェア命令の代わりに、またはソフトウェア命令と組み合わせて使用され得る。本明細書で説明するシステムおよび方法は、ハードウェア回路およびソフトウェアのいかなる特定の組合せにも限定されない。
例示的なコンピューティングシステムについて、図4において説明したが、本明細書で説明する動作を含む主題は、本明細書で開示する構造およびそれらの構造的等価物を含む、他のタイプのデジタル電子回路において、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、あるいはそれらのうちの1つまたは複数の組合せにおいて実装され得る。
本明細書で説明するシステムが、ユーザについての個人情報を収集するか、または個人情報を利用し得る状況では、ユーザは、プログラムもしくは特徴が個人情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクションもしくはアクティビティ、ユーザの選好、またはユーザのロケーションについての情報)を収集し得るか否かを制御するため、または、コンテンツサーバもしくは他のデータ処理システムから、ユーザにより関連のあり得るコンテンツを受信するか否か、もしくはどのように受信するかを制御するための機会を与えられ得る。加えて、あるデータは、記憶または使用される前に、パラメータを生成するときに個人を特定できる情報が除去されるように、1つまたは複数の方法で匿名化され得る。たとえば、ユーザの識別情報は、ユーザについての個人を特定できる情報が決定され得ないように匿名化され得るか、または、ユーザの地理的ロケーションが汎化され得、その場合、ユーザの特定のロケーションが決定され得ないように、ロケーション情報が(市、郵便番号、または州レベルなどまで)取得される。したがって、ユーザは、ユーザについての情報がどのように収集され、コンテンツサーバによって使用されるかに対する制御を有し得る。
本明細書で説明する主題および動作は、本明細書で開示する構造およびそれらの構造的等価物を含む、デジタル電子回路において、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェアにおいて、あるいはそれらのうちの1つまたは複数の組合せにおいて実装され得る。本明細書で説明する主題は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために、1つまたは複数のコンピュータ記憶媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の回路として実装され得る。代替的にまたは追加として、プログラム命令は、データ処理装置による実行のために、好適な受信機装置への送信のために情報を符号化するために生成される、人工的に生成された伝搬信号、たとえば、マシンにより生成された電気信号、光信号、または電磁信号上で符号化され得る。コンピュータ記憶媒体は、コンピュータ可読記憶デバイス、コンピュータ可読記憶基板、ランダムもしくは順次アクセスメモリアレイもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであり得るか、またはその中に含まれ得る。コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝搬信号において符号化されたコンピュータプログラム命令の送信元または宛先になり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個のコンポーネントまたは媒体(たとえば、複数のCD、ディスク、または他の記憶デバイス)でもあり得るか、またはその中に含まれ得る。本明細書で説明する動作は、1つもしくは複数のコンピュータ可読記憶デバイス上で記憶されているか、または他の送信元から受信されたデータにおいて、データ処理装置によって実施される動作として実装され得る。
「データ処理システム」、「コンピューティングデバイス」、「コンポーネント」、または「データ処理装置」という用語は、例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または前述のうちの複数、もしくは前述の組合せを含む、データを処理するための様々な装置、デバイス、およびマシンを包含する。装置は、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)、またはASIC(特定用途向け集積回路)を含み得る。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなど、様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。たとえば、ダイレクトアクションAPI110、コンテンツセレクタコンポーネント120、またはNLPコンポーネント108、および他のデータ処理システム102のコンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むか、または共有し得る。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)は、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む、任意の形式のプログラミング言語において記述され得、スタンドアロンプログラムとして、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに好適な他のユニットとしてを含む、任意の形態において展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得る。コンピュータプログラムは、他のプログラムもしくはデータを保持するファイルの一部分において(たとえば、マークアップ言語ドキュメント中に記憶された1つまたは複数のスクリプト)、問題のプログラム専用の単一のファイルにおいて、または複数の協調されたファイル(たとえば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶するファイル)において記憶され得る。コンピュータプログラムは、1つのコンピュータ上、または、1つのサイトに位置するか、もしくは複数のサイトにわたって分散され、通信ネットワークによって相互接続される、複数のコンピュータ上で実行されるように展開され得る。
本明細書で説明するプロセスおよび論理フローは、入力データにおいて動作すること、および出力を生成することによって、アクションを実施するために、1つまたは複数のプログラマブルプロセッサが1つまたは複数のコンピュータプログラム(たとえば、データ処理システム102のコンポーネント)を実行することによって実施され得る。プロセスおよび論理フローはまた、専用論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実施され得、装置もまた専用論理回路として実装され得る。コンピュータプログラム命令およびデータを記憶するのに好適なデバイスには、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスが含まれる。プロセッサおよびメモリは、専用論理回路によって補助されるか、または専用論理回路に組み込まれ得る。
本明細書で説明する主題は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、あるいは、ミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、あるいは、フロントエンドコンポーネント、たとえば、それを通してユーザが、本明細書で説明する主題の一実装形態と対話することができる、グラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータ、または、1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの組合せを含む、コンピューティングシステムにおいて実装され得る。システムのコンポーネントは、任意の形態または任意の媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互接続され得る。通信ネットワークの例には、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)が含まれる。
システム100またはシステム400などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般に互いからリモートであり、典型的には、通信ネットワーク(たとえば、ネットワーク105)を通して対話する。クライアントおよびサーバの関係は、それぞれのコンピュータ上で稼働しており、互いにクライアントサーバ関係を有する、コンピュータプログラムによって生じる。いくつかの実装形態では、サーバは、(たとえば、クライアントデバイスと対話しているユーザにデータを表示し、ユーザからユーザ入力を受信するために)データ(たとえば、デジタルコンポーネントを表すデータパケット)をクライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)が、クライアントデバイスからサーバにおいて受信(たとえば、データ処理システム102によって、ローカルコンピューティングデバイス140、またはコンテンツプロバイダコンピューティングデバイス154、またはサードパーティデバイス156から受信)され得る。
動作は、特定の順序で図面において図示されるが、そのような動作が、図示された特定の順序で、または連続した順序で実施される必要があるとは限らず、すべての図示された動作が実施される必要があるとは限らない。本明細書で説明するアクションは、異なる順序で実施され得る。
様々なシステムコンポーネントの分離は、すべての実装形態において分離を必要とするとは限らず、説明したプログラムコンポーネントは、単一のハードウェアまたはソフトウェア製品中に含まれ得る。たとえば、NLPコンポーネント108またはコンテンツセレクタコンポーネント120は、データ処理システム102の単一のコンポーネント、アプリ、もしくはプログラム、または1つもしくは複数の処理回路を有する論理デバイス、または1つもしくは複数のサーバの一部であり得る。
ここで、いくつかの例示的な実装形態について説明したが、上記は例示的であり、限定ではなく、例として提示されたことは明らかである。具体的には、本明細書で提示した例の多くは、方法の行為またはシステム要素の特定の組合せを伴うが、それらの行為およびそれらの要素は、同じ目的を達成するために、他の方法で組み合わせられ得る。ある実装形態に関連して説明した行為、要素、および特徴は、他の実装形態または実装形態における同様の役割から除外されるものではない。
本明細書で使用する言い回しおよび専門用語は、説明のためのものであり、限定として見なされるべきではない。本明細書での「含む(including)」、「備える(comprising)」、「有する(having)」、「含む(containing)」、「伴う(involving)」、「によって特徴づけられる(characterized by)」、「ことを特徴とする(characterized in that)」、およびそれらの変形形態の使用は、その後に列挙される項目、それらの等価物、および追加の項目、ならびに、排他的にその後に列挙される項目からなる代替実装形態を包含するように意図されている。一実装形態では、本明細書で説明するシステムおよび方法は、説明する要素、行為、またはコンポーネントのうちの1つ、2つ以上の各組合せ、または全部からなる。
本明細書で単数形において言及したシステムおよび方法の実装形態または要素または行為へのいかなる言及も、複数のこれらの要素を含む実装形態をも包含し得、本明細書のいかなる実装形態または要素または行為への複数形におけるいかなる言及も、単一の要素のみを含む実装形態をも包含し得る。単数形または複数形における言及は、本開示のシステムまたは方法、それらのコンポーネント、行為、または要素を単一の構成または複数の構成に限定するものではない。いずれかの情報、行為、または要素に基づいている、いずれかの行為または要素への言及は、その行為または要素がいずれかの情報、行為、または要素に少なくとも部分的に基づく実装形態を含み得る。
本明細書で開示するいかなる実装形態も、任意の他の実装形態または実施形態と組み合わせられてよく、「実装形態」、「いくつかの実装形態」、「一実装形態」などへの言及は、必ずしも相互排他的であるとは限らず、実装形態に関連して説明する特定の特徴、構造、または特性が、少なくとも1つの実装形態または実施形態中に含まれ得ることを示すものである。本明細書で使用するそのような用語は、必ずしもすべて同じ実装形態に言及しているとは限らない。いかなる実装形態も、包含的にまたは排他的に、本明細書で開示する態様および実装形態に一致するいずれかの方法で、任意の他の実装形態と組み合わせられ得る。
「または(or)」への言及は、「または(or)」を使用して説明するいかなる用語も、説明する用語のうちの単一、2つ以上、および全部のいずれかを示し得るように、包含的として解釈され得る。たとえば、「'A'および'B'のうちの少なくとも1つ」への言及は、'A'のみ、'B'のみ、ならびに'A'と'B'の両方を含み得る。「備える(comprising)」または他のオープンな専門用語とともに使用されるそのような言及は、追加の項目を含み得る。
図面、発明を実施するための形態、またはいずれかの請求項における技術的特徴の後に参照符号が続く場合、参照符号は、図面、発明を実施するための形態、および特許請求の範囲の了解度を増すために含まれている。したがって、参照符号もそれらの不在も、いかなる請求項要素の範囲におけるいかなる限定の効果を有するものでもない。
本明細書で説明するシステムおよび方法は、それらの特性から逸脱することなしに、他の特定の形態において具現化され得る。上記の実装形態は、説明したシステムおよび方法の限定ではなく、それらを説明するものである。したがって、本明細書で説明するシステムおよび方法の範囲は、上記の説明ではなく、添付の特許請求の範囲によって示され、特許請求の範囲の等価の意味および範囲内に入る変更は、特許請求の範囲内に包含される。