IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ グーグル インコーポレイテッドの特許一覧

<>
  • 特許-セキュアな処理環境内のデータ転送 図1
  • 特許-セキュアな処理環境内のデータ転送 図2
  • 特許-セキュアな処理環境内のデータ転送 図3
  • 特許-セキュアな処理環境内のデータ転送 図4
  • 特許-セキュアな処理環境内のデータ転送 図5
  • 特許-セキュアな処理環境内のデータ転送 図6
  • 特許-セキュアな処理環境内のデータ転送 図7
  • 特許-セキュアな処理環境内のデータ転送 図8
  • 特許-セキュアな処理環境内のデータ転送 図9
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-25
(45)【発行日】2022-08-02
(54)【発明の名称】セキュアな処理環境内のデータ転送
(51)【国際特許分類】
   G10L 15/22 20060101AFI20220726BHJP
   G06F 21/53 20130101ALI20220726BHJP
   G10L 15/00 20130101ALI20220726BHJP
【FI】
G10L15/22 300Z
G06F21/53
G10L15/00 200A
【請求項の数】 60
(21)【出願番号】P 2020537175
(86)(22)【出願日】2018-03-21
(65)【公表番号】
(43)【公表日】2021-06-17
(86)【国際出願番号】 US2018023564
(87)【国際公開番号】W WO2019182586
(87)【国際公開日】2019-09-26
【審査請求日】2020-09-02
(73)【特許権者】
【識別番号】502208397
【氏名又は名称】グーグル エルエルシー
【氏名又は名称原語表記】Google LLC
【住所又は居所原語表記】1600 Amphitheatre Parkway 94043 Mountain View, CA U.S.A.
(74)【代理人】
【識別番号】100108453
【弁理士】
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【弁理士】
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【弁理士】
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】ジャスティン・ルイス
(72)【発明者】
【氏名】スコット・デイヴィース
【審査官】菊池 智紀
(56)【参考文献】
【文献】特開2013-174644(JP,A)
【文献】特表2016-505954(JP,A)
【文献】米国特許出願公開第2015/0026212(US,A1)
【文献】国際公開第2014/109344(WO,A1)
【文献】米国特許出願公開第2017/0139879(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G10L 15/00-15/34
G06F 3/16
G06F 16/00-16/958
G06F 21/53
(57)【特許請求の範囲】
【請求項1】
セキュアな処理環境内でデータを転送するためのシステムであって、
1つまたは複数のプロセッサおよびメモリを含むデータ処理システムと、
以下の動作を行うために、前記データ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントであって、前記動作が、
コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信することと、
前記オーディオ入力に基づいて、前記コンピューティングデバイスに関連する第三者アプリケーションを呼び出すことを決定することと、
前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に前記マイクロフォンによって検出された、前のオーディオ入力を含むパッケージングされたデータオブジェクトを、前記第三者アプリケーションを呼び出す決定に応じて生成することと、
前記コンピューティングデバイス上のセキュアな処理環境内で実行するために前記デジタルアシスタントコンポーネントによって呼び出された前記第三者アプリケーションに前記パッケージングされたデータオブジェクトを転送することであって、前記第三者アプリケーションが、前記第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、前記パッケージングされたデータオブジェクトに基づいてリアルタイムのデジタルコンポーネント選択プロセスを実行するためにデジタルコンポーネントセレクタに前記パッケージングされたデータオブジェクトを送信するように構成される、こととを含む、
デジタルアシスタントコンポーネントとを含む、
システム。
【請求項2】
データベースの検索によって前記第三者アプリケーションのディープリンクを特定し、
前記第三者アプリケーションを呼び出すために前記ディープリンクを使用するための、
前記デジタルアシスタントコンポーネントを含む、
請求項1に記載のシステム。
【請求項3】
前記パッケージングされたデータオブジェクトおよび前記コンテンツ要求を受信し、
前記コンテンツ要求に応じて、前記リアルタイムのコンテンツ選択プロセスを介して、前記パッケージングされたデータオブジェクトに基づいてデジタルコンポーネントを選択し、
前記コンピューティングデバイス上の前記セキュアな処理環境内で実行される前記第三者アプリケーションを介して提示するために前記デジタルコンポーネントを前記コンピューティングデバイスに送信するための、
前記デジタルコンポーネントセレクタを含む、
請求項1または2に記載のシステム。
【請求項4】
前記コンテンツ要求に応じて、前記リアルタイムのコンテンツ選択プロセスを介して、前記パッケージングされたデータオブジェクトに基づいてデジタルコンポーネントを選択し、
前記コンピューティングデバイス上の前記セキュアな処理環境内で実行される前記第三者アプリケーションと別れている前記デジタルアシスタントコンポーネントによって提示するために前記デジタルコンポーネントを前記デジタルアシスタントコンポーネントに送信するための、
前記デジタルコンポーネントセレクタを含む、
請求項1または2に記載のシステム。
【請求項5】
前記コンピューティングデバイスを介して提示するために、前記パッケージングされたデータオブジェクトに基づいて選択されたデジタルコンポーネントを送信し、
前記コンピューティングデバイスを介して提示された前記デジタルコンポーネントとのインタラクションのインジケーションを前記データ処理システムによって受信し、
前記データ処理システムによって前記デジタルコンポーネントとの前記インタラクションを前記デジタルアシスタントコンポーネントに帰するための、
前記データ処理システムを含む、
請求項1から4のいずれか一項に記載のシステム。
【請求項6】
前記システムは、
前記セキュアな処理環境内で前記第三者アプリケーションを起動するように前記コンピューティングデバイスに命令するための前記データ処理システムを含み、
前記セキュアな処理環境が、前記デジタルアシスタントコンポーネントによって処理された前記前のオーディオ入力へのアクセスを防止するように最初に構成される、
請求項1から5のいずれか一項に記載のシステム。
【請求項7】
構造化された会話を含む前記パッケージングされたデータオブジェクトを生成するための、
前記デジタルアシスタントコンポーネントを含む、
請求項1から6のいずれか一項に記載のシステム。
【請求項8】
シリアル化された不透明トークンを含む前記パッケージングされたデータオブジェクトを生成するための、
前記デジタルアシスタントコンポーネントを含む、
請求項1から6のいずれか一項に記載のシステム。
【請求項9】
前記前のオーディオ入力内のイベントを示すイベント識別子を含む前記パッケージングされたデータオブジェクトを生成するための、
前記デジタルアシスタントコンポーネントを含む、
請求項1から6のいずれか一項に記載のシステム。
【請求項10】
問い合わせおよび前記問い合わせに対する応答から形成されたイベント識別子を含む前記パッケージングされたデータオブジェクトを生成するための、
前記デジタルアシスタントコンポーネントを含む、
請求項1から6のいずれか一項に記載のシステム。
【請求項11】
セキュアな処理環境内でデータを転送する方法であって、
1つまたは複数のプロセッサおよびメモリを含むデータ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントによって、コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信するステップと、
前記データ処理システムによって、前記オーディオ入力に基づいて、前記コンピューティングデバイスに関連する第三者アプリケーションを呼び出すことを決定するステップと、
前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に、前記データ処理システムによって、前記第三者アプリケーションを呼び出す決定に応じて、前記マイクロフォンによって検出された、前のオーディオ入力を含むパッケージングされたデータオブジェクトを生成するステップと、
前記コンピューティングデバイス上のセキュアな処理環境内で実行するために前記デジタルアシスタントコンポーネントによって呼び出された前記第三者アプリケーションに前記パッケージングされたデータオブジェクトを、前記データ処理システムによって転送するステップであって、前記第三者アプリケーションが、前記第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、前記パッケージングされたデータオブジェクトに基づいてリアルタイムのデジタルコンポーネント選択プロセスを実行するためにデジタルコンポーネントセレクタに前記パッケージングされたデータオブジェクトを送信するように構成される、ステップとを含む、
方法。
【請求項12】
データベースの検索によって前記データ処理システムにより前記第三者アプリケーションのディープリンクを特定するステップと、
前記データ処理システムによって前記第三者アプリケーションを呼び出すために前記ディープリンクを使用するステップとを含む、
請求項11に記載の方法。
【請求項13】
前記パッケージングされたデータオブジェクトおよび前記コンテンツ要求を、前記デジタルコンポーネントセレクタに提供するステップであって、前記デジタルコンポーネントセレクタが、前記コンテンツ要求に応じて前記リアルタイムのコンテンツ選択プロセスを介して前記パッケージングされたデータオブジェクトに基づいてデジタルコンポーネントを選択するように構成される、ステップと、
前記コンピューティングデバイス上の前記セキュアな処理環境内で実行される前記第三者アプリケーションを介して提示するために、前記デジタルコンポーネントを前記データ処理システムを介して前記コンピューティングデバイスに提供するステップとを含む、
請求項11に記載の方法。
【請求項14】
前記コンテンツ要求に応じて、前記リアルタイムのコンテンツ選択プロセスを介して、前記パッケージングされたデータオブジェクトに基づいて、デジタルコンポーネントを前記デジタルコンポーネントセレクタにより選択するステップと、
前記コンピューティングデバイス上の前記セキュアな処理環境内で実行される前記第三者アプリケーションと別れている前記デジタルアシスタントコンポーネントによって提示するために、前記デジタルコンポーネントを前記デジタルアシスタントコンポーネントに前記デジタルコンポーネントセレクタによって送信するステップとを含む、
請求項11に記載の方法。
【請求項15】
前記コンピューティングデバイスを介して提示するために、前記パッケージングされたデータオブジェクトに基づいて選択されたデジタルコンポーネントを送信するステップと、
前記コンピューティングデバイスを介して提示された前記デジタルコンポーネントとのインタラクションのインジケーションを前記データ処理システムによって受信するステップと、
前記データ処理システムによって前記デジタルコンポーネントとの前記インタラクションを前記デジタルアシスタントコンポーネントに帰するステップとを含む、
請求項11に記載の方法。
【請求項16】
前記データ処理システムによって、前記セキュアな処理環境内で前記第三者アプリケーションを起動するように前記コンピューティングデバイスに命令するステップであって、前記セキュアな処理環境が、前記デジタルアシスタントコンポーネントによって処理された前記前のオーディオ入力へのアクセスを防止するように最初に構成される、ステップを含む、
請求項11に記載の方法。
【請求項17】
構造化された会話を含む前記パッケージングされたデータオブジェクトを、前記デジタルアシスタントコンポーネントによって生成するステップを含む、
請求項11に記載の方法。
【請求項18】
シリアル化された不透明トークンを含む前記パッケージングされたデータオブジェクトを、前記デジタルアシスタントコンポーネントによって生成するステップを含む、
請求項11に記載の方法。
【請求項19】
前記前のオーディオ入力内のイベントを示すイベント識別子を含む前記パッケージングされたデータオブジェクトを、前記デジタルアシスタントコンポーネントによって生成するステップを含む、
請求項11に記載の方法。
【請求項20】
問い合わせおよび前記問い合わせに対する応答から形成されたイベント識別子を含む前記パッケージングされたデータオブジェクトを、前記デジタルアシスタントコンポーネントによって生成するステップを含む、
請求項11に記載の方法。
【請求項21】
処理環境内でデータを転送するためのシステムであって、前記システムは、
1つまたは複数のプロセッサおよびメモリを含むデータ処理システムと、
以下の動作を行うために、前記データ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントとを含み、前記動作が、
コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信することと、
前記オーディオ入力に基づいて、前記コンピューティングデバイスに関連する第三者アプリケーションを呼び出すことを決定することと、
前記第三者アプリケーションを呼び出す決定に応じて、前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に、前記マイクロフォンによって検出された、前のオーディオ入力に対応する一意の識別子を生成することと、
前記コンピューティングデバイス上で実行するために前記デジタルアシスタントコンポーネントによって呼び出された前記第三者アプリケーションに前記一意の識別子を転送することであって、前記第三者アプリケーションが、前記第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて前記データ処理システムに前記一意の識別子を送信するように構成される、ことと、
前記第三者アプリケーションから受信された前記一意の識別子を使用して前記前のオーディオ入力を特定することと、
デジタルコンポーネントセレクタに前記前のオーディオ入力をリアルタイムのコンテンツ選択プロセスのための入力として提供することとを含む、
システム。
【請求項22】
データベースの検索によって前記第三者アプリケーションのディープリンクを特定し、
前記第三者アプリケーションを呼び出すために前記ディープリンクを使用するための、
前記デジタルアシスタントコンポーネントを含む、
請求項21に記載のシステム。
【請求項23】
前記コンピューティングデバイスから前記一意の識別子および前記コンテンツ要求を受信し、
前記コンテンツ要求に応じて、前記リアルタイムのコンテンツ選択プロセスを介して、前記一意の識別子に対応する前記前のオーディオ入力に基づいてデジタルコンポーネントを選択し、
前記コンピューティングデバイス上で実行される前記第三者アプリケーションを介して提示するために前記デジタルコンポーネントを前記コンピューティングデバイスに送信するための、
前記デジタルコンポーネントセレクタを含む、
請求項21または22に記載のシステム。
【請求項24】
前記コンテンツ要求に応じて、前記リアルタイムのコンテンツ選択プロセスを介して、前記前のオーディオ入力に基づいてデジタルコンポーネントを選択し、
前記コンピューティングデバイス上で実行される前記第三者アプリケーションと別れている前記デジタルアシスタントコンポーネントによって提示するために前記デジタルコンポーネントを前記デジタルアシスタントコンポーネントに送信するための、
前記デジタルコンポーネントセレクタを含む、
請求項21または22に記載のシステム。
【請求項25】
前記コンピューティングデバイスを介して提示するために、前記前のオーディオ入力に基づいて選択されたデジタルコンポーネントを送信し、
前記コンピューティングデバイスを介して提示された前記デジタルコンポーネントとのインタラクションのインジケーションを受信し、
前記デジタルコンポーネントとの前記インタラクションを前記デジタルアシスタントコンポーネントに帰するための、
前記データ処理システムを含む、
請求項21から24のいずれか一項に記載のシステム。
【請求項26】
前記システムは、
前記第三者アプリケーションを起動するように前記コンピューティングデバイスに命令するための前記データ処理システムを含み、
前記第三者アプリケーションが、前記デジタルアシスタントコンポーネントによって処理された前のオーディオ入力への制約されたアクセスを有する、
請求項21から25のいずれか一項に記載のシステム。
【請求項27】
前記前のオーディオ入力を前記データ処理システム上の構造化された会話データオブジェクトとして記憶するための、
前記デジタルアシスタントコンポーネントを含む、
請求項21から26のいずれか一項に記載のシステム。
【請求項28】
前記前のオーディオ入力に関するイベント識別子を生成し、
前記データ処理システムの前記メモリに前記イベント識別子を記憶するための、
前記デジタルアシスタントコンポーネントを含む、
請求項21から26のいずれか一項に記載のシステム。
【請求項29】
前記データ処理システムに記憶するために、問い合わせおよび前記問い合わせに対する応答から形成されたイベント識別子を生成するための前記デジタルアシスタントコンポーネントを含む、
請求項21から26のいずれか一項に記載のシステム。
【請求項30】
前記前のオーディオ入力に関するイベント識別子を生成し、
前記データ処理システムに記憶されたルックアップテーブル内で前記前のオーディオ入力に関する前記イベント識別子を前記一意の識別子にマッピングするための、
前記デジタルアシスタントコンポーネントを含む、
請求項21から26のいずれか一項に記載のシステム。
【請求項31】
処理環境内でデータを転送する方法であって、
1つまたは複数のプロセッサおよびメモリを含むデータ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントによって、コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信するステップと、
前記データ処理システムによって、前記オーディオ入力に基づいて、前記コンピューティングデバイスに関連する第三者アプリケーションを呼び出すことを決定するステップと、
前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に、前記データ処理システムによって、前記第三者アプリケーションを呼び出す決定に応じて、前記マイクロフォンによって検出された、前のオーディオ入力に対応する一意の識別子を生成するステップと、
前記コンピューティングデバイス上で実行するために前記デジタルアシスタントコンポーネントによって呼び出された前記第三者アプリケーションに前記データ処理システムによって前記一意の識別子を転送するステップであって、前記第三者アプリケーションが、前記第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて前記データ処理システムに前記一意の識別子を送信するように構成される、ステップと、
前記データ処理システムによって、前記第三者アプリケーションから受信された前記一意の識別子を使用して、前記前のオーディオ入力を特定するステップと、
前記データ処理システムによって、デジタルコンポーネントセレクタに、前記前のオーディオ入力をリアルタイムのコンテンツ選択プロセスのための入力として提供するステップとを含む、
方法。
【請求項32】
前記デジタルアシスタントコンポーネントによって、データベースの検索により、前記第三者アプリケーションのディープリンクを特定するステップと、
前記第三者アプリケーションを呼び出すために、前記デジタルアシスタントコンポーネントによって、前記ディープリンクを使用するステップとを含む、
請求項31に記載の方法。
【請求項33】
前記コンピューティングデバイスからの前記一意の識別子および前記コンテンツ要求を前記デジタルコンポーネントセレクタに提供するステップであって、前記デジタルコンポーネントセレクタが、前記コンテンツ要求に応じて前記リアルタイムのコンテンツ選択プロセスを介して、前記一意の識別子に対応する前記前のオーディオ入力に基づいてデジタルコンポーネントを選択するように構成される、ステップと、
前記コンピューティングデバイス上のセキュアな前記処理環境内で実行される前記第三者アプリケーションを介して提示するために、前記デジタルコンポーネントを前記コンピューティングデバイスに送信するステップとを含む、
請求項31に記載の方法。
【請求項34】
前記コンテンツ要求に応じて前記デジタルコンポーネントセレクタによって、前記リアルタイムのコンテンツ選択プロセスを介して、前記前のオーディオ入力に基づいてデジタルコンポーネントを選択するステップと、
前記コンピューティングデバイス上で実行される前記第三者アプリケーションと別れている前記デジタルアシスタントコンポーネントによって提示するために前記デジタルコンポーネントを前記デジタルアシスタントコンポーネントに前記デジタルコンポーネントセレクタによって送信するステップとを含む、
請求項31に記載の方法。
【請求項35】
前記コンピューティングデバイスを介して提示するために、前記前のオーディオ入力に基づいて選択されたデジタルコンポーネントを送信するステップと、
前記コンピューティングデバイスを介して提示された前記デジタルコンポーネントとのインタラクションのインジケーションを前記データ処理システムによって受信するステップと、
前記データ処理システムによって前記デジタルコンポーネントとの前記インタラクションを前記デジタルアシスタントコンポーネントに帰するステップとを含む、
請求項31に記載の方法。
【請求項36】
前記データ処理システムによって、前記第三者アプリケーションを起動するように前記コンピューティングデバイスに命令するステップであって、
前記第三者アプリケーションが、前記デジタルアシスタントコンポーネントによって処理された前記前のオーディオ入力への制約されたアクセスを有する、ステップを含む、
請求項31に記載の方法。
【請求項37】
前記デジタルアシスタントコンポーネントによって、前記前のオーディオ入力を前記データ処理システム上の構造化された会話データオブジェクトとして記憶するステップを含む、
請求項31に記載の方法。
【請求項38】
前記前のオーディオ入力に関するイベント識別子を前記デジタルアシスタントコンポーネントによって生成するステップと、
前記デジタルアシスタントコンポーネントによって前記データ処理システムの前記メモリに前記イベント識別子を記憶するステップとを含む、
請求項31に記載の方法。
【請求項39】
前記データ処理システムに記憶するために、問い合わせおよび前記問い合わせに対する応答から形成されたイベント識別子を前記デジタルアシスタントコンポーネントによって生成するステップを含む、
請求項31に記載の方法。
【請求項40】
前記前のオーディオ入力に関するイベント識別子を前記デジタルアシスタントコンポーネントによって生成するステップと、
前記デジタルアシスタントコンポーネントによって、前記データ処理システムに記憶されたルックアップテーブル内で前記前のオーディオ入力に関する前記イベント識別子を前記一意の識別子にマッピングするステップとを含む、
請求項31に記載の方法。
【請求項41】
セキュアな処理環境内でデータを転送するためのシステムであって、前記システムが、
1つまたは複数のプロセッサおよびメモリを含むコンピューティングデバイスによって管理されるセキュアな処理環境内で実行される第三者アプリケーションを含み、
前記第三者アプリケーションが、ローカルデジタルアシスタントコンポーネントとインターフェースを取るためのアプリケーションプログラミングインターフェースを含み、
前記ローカルデジタルアシスタントコンポーネントが、前記第三者アプリケーションを呼び出すために入力オーディオ信号を処理するように通信チャネルを介してリモートデジタルアシスタントコンポーネントと通信しており、
前記第三者アプリケーションが、
前記第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前に前記コンピューティングデバイスのマイクロフォンによって検出された、前のオーディオ入力のインジケーションを、前記ローカルデジタルアシスタントコンポーネントから受信することと、
前記セキュアな処理環境に前記前のオーディオ入力の前記インジケーションを記憶することと、
イベントに応じてコンテンツ要求を生成することと、
前記セキュアな処理環境に記憶され、前記アプリケーションプログラミングインターフェースを介して前記ローカルデジタルアシスタントコンポーネントから受信された前記前のオーディオ入力の前記インジケーションを前記イベントに応じて前記セキュアな処理環境から取り出すことと、
前記コンテンツ要求および前記前のオーディオ入力の前記インジケーションをデジタルコンポーネントセレクタに提供することであって、前記デジタルコンポーネントセレクタが、前記コンテンツ要求および前記前のオーディオ入力の前記インジケーションに基づいてリアルタイムのコンテンツ選択プロセスを実行するためのものである、こととを行う、
システム。
【請求項42】
前記前のオーディオ入力の前記インジケーションが、前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に前記マイクロフォンによって検出された前記前のオーディオ入力を含むパッケージングされたデータオブジェクトを含む、
請求項41に記載のシステム。
【請求項43】
前記前のオーディオ入力の前記インジケーションが、前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に前記マイクロフォンによって検出された前記前のオーディオ入力を含むパッケージングされたデータオブジェクトを含み、
前記パッケージングされたデータオブジェクトが、前記第三者アプリケーションの呼び出しに応じて前記ローカルデジタルアシスタントコンポーネントによって生成される、
請求項41に記載のシステム。
【請求項44】
前記前のオーディオ入力の前記インジケーションが、一意の識別子を含み、
前記第三者アプリケーションが、
前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に前記マイクロフォンによって検出された前記前のオーディオ入力に対応する前記一意の識別子を前記ローカルデジタルアシスタントコンポーネントから受信することと、
前記第三者アプリケーションにおいてトリガされた前記コンテンツ要求に応じて前記デジタルコンポーネントセレクタに前記一意の識別子を提供することとを行う、
請求項41に記載のシステム。
【請求項45】
前記前のオーディオ入力の前記インジケーションが、一意の識別子を含み、
前記第三者アプリケーションが、
前記前のオーディオ入力に対応する前記一意の識別子を前記ローカルデジタルアシスタントコンポーネントから受信することと、
前記一意の識別子および前記コンテンツ要求を前記デジタルコンポーネントセレクタに送信することであって、前記デジタルコンポーネントセレクタが、前記前のオーディオ入力を特定するために前記一意の識別子を使用してデータベースの検索を実行するためのものである、ことと、
前記一意の識別子に対応する前記前のオーディオ入力に基づいて、前記リアルタイムのコンテンツ選択プロセスを介して選択されたデジタルコンポーネントを、提示するために前記デジタルコンポーネントセレクタから受信することとを行う、
請求項41に記載のシステム。
【請求項46】
前記コンテンツ要求および前記前のオーディオ入力の前記インジケーションの送信の後に、前記前のオーディオ入力の前記インジケーションに基づいて前記リアルタイムのコンテンツ選択プロセスを介して前記デジタルコンポーネントセレクタにより選択されたデジタルコンポーネントを受信し、
前記コンピューティングデバイスによって前記デジタルコンポーネントを提示するための、
前記第三者アプリケーションを含む、
請求項41に記載のシステム。
【請求項47】
前記コンテンツ要求に応じて、前記前のオーディオ入力の前記インジケーションに基づいて前記リアルタイムのコンテンツ選択プロセスを介して選択されたデジタルコンポーネントを受信し、
前記コンピューティングデバイスによるオーディオ出力によって前記デジタルコンポーネントを提示するための、
前記第三者アプリケーションを含む、
請求項41に記載のシステム。
【請求項48】
前記コンテンツ要求に応じて、前記前のオーディオ入力の前記インジケーションに基づいて前記リアルタイムのコンテンツ選択プロセスを介して選択されたデジタルコンポーネントを受信することと、
前記コンピューティングデバイスと通信している第2のコンピューティングデバイス上で実行される第2の第三者アプリケーションに前記デジタルコンポーネントを送信することであって、前記第2の第三者アプリケーションが、前記デジタルコンポーネントを提示するためのものである、ことを行うための、
前記第三者アプリケーションを含む、
請求項41に記載のシステム。
【請求項49】
前記システムは、
前記セキュアな処理環境内で起動するための前記第三者アプリケーションを含み、
前記セキュアな処理環境が、前記ローカルデジタルアシスタントコンポーネントによって処理された前記前のオーディオ入力へのアクセスを防止するように最初に構成される、
請求項41に記載のシステム。
【請求項50】
前記前のオーディオ入力の前記インジケーションに基づいて前記第三者アプリケーションのコンテンツを修正するための、
前記第三者アプリケーションを含む、
請求項41に記載のシステム。
【請求項51】
セキュアな処理環境内でデータを転送する方法であって、
第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前に、コンピューティングデバイスのマイクロフォンによって検出された、前のオーディオ入力のインジケーションを、ローカルデジタルアシスタントコンポーネントから前記第三者アプリケーションによって受信するステップであって、
前記第三者アプリケーションが、前記コンピューティングデバイスによって管理されるセキュアな処理環境内で実行され、前記第三者アプリケーションが、前記ローカルデジタルアシスタントコンポーネントとインターフェースを取るためのアプリケーションプログラミングインターフェースを含み、前記ローカルデジタルアシスタントコンポーネントが、前記第三者アプリケーションを呼び出すために入力オーディオ信号を処理するために通信チャネルを介してリモートデジタルアシスタントコンポーネントと通信している、ステップと、
前記第三者アプリケーションによって、前記セキュアな処理環境に前記前のオーディオ入力の前記インジケーションを記憶するステップと、
前記第三者アプリケーションによって、イベントに応じてコンテンツ要求を生成するステップと、
前記セキュアな処理環境に記憶されかつ、前記アプリケーションプログラミングインターフェースを介して前記ローカルデジタルアシスタントコンポーネントから受信された、前記前のオーディオ入力の前記インジケーションを、前記イベントに応じて前記セキュアな処理環境から前記第三者アプリケーションによって取り出すステップと、
前記コンテンツ要求および前記前のオーディオ入力の前記インジケーションを前記第三者アプリケーションによってデジタルコンポーネントセレクタに提供するステップであって、前記デジタルコンポーネントセレクタが、前記コンテンツ要求および前記前のオーディオ入力の前記インジケーションに基づいて、リアルタイムのコンテンツ選択プロセスを実行する、ステップとを含む、
方法。
【請求項52】
前記前のオーディオ入力の前記インジケーションが、前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に、前記マイクロフォンによって検出された前記前のオーディオ入力を含むパッケージングされたデータオブジェクトを含む、
請求項51に記載の方法。
【請求項53】
前記前のオーディオ入力の前記インジケーションが、前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に前記マイクロフォンによって検出された前記前のオーディオ入力を含むパッケージングされたデータオブジェクトを含み、
前記パッケージングされたデータオブジェクトが、前記第三者アプリケーションの呼び出しに応じて前記ローカルデジタルアシスタントコンポーネントによって生成される、
請求項51に記載の方法。
【請求項54】
前記前のオーディオ入力の前記インジケーションが、一意の識別子を含み、
前記方法は、
前記第三者アプリケーションを呼び出す結果となった前記オーディオ入力の受け取りの前に、前記マイクロフォンによって検出された前記前のオーディオ入力に対応する前記一意の識別子を、前記ローカルデジタルアシスタントコンポーネントから前記第三者アプリケーションによって受信するステップと、
前記第三者アプリケーションによって、前記第三者アプリケーションにおいてトリガされた前記コンテンツ要求に応じて、前記デジタルコンポーネントセレクタに前記一意の識別子を提供するステップとを含む、
請求項51に記載の方法。
【請求項55】
前記前のオーディオ入力の前記インジケーションが、一意の識別子を含み、
前記方法は、
前記前のオーディオ入力に対応する前記一意の識別子を、前記ローカルデジタルアシスタントコンポーネントから前記第三者アプリケーションによって受信するステップと、
前記第三者アプリケーションによって前記デジタルコンポーネントセレクタに前記一意の識別子および前記コンテンツ要求を送信するステップであって、前記デジタルコンポーネントセレクタが、前記前のオーディオ入力を特定するために前記一意の識別子を使用してデータベースの検索を実行する、ステップと、
前記一意の識別子に対応する前記前のオーディオ入力に基づいて、前記リアルタイムのコンテンツ選択プロセスを介して選択されたデジタルコンポーネントを提示するために前記デジタルコンポーネントセレクタから前記第三者アプリケーションによって受信するステップとを含む、
請求項51に記載の方法。
【請求項56】
前記前のオーディオ入力の前記インジケーションに基づいて前記リアルタイムのコンテンツ選択プロセスを介して、前記デジタルコンポーネントセレクタにより選択されたデジタルコンポーネントを、前記コンテンツ要求および前記前のオーディオ入力の前記インジケーションの送信の後に前記第三者アプリケーションによって受信するステップと、
前記コンピューティングデバイスを介して前記第三者アプリケーションによって前記デジタルコンポーネントを提示するステップとを含む、
請求項51に記載の方法。
【請求項57】
前記第三者アプリケーションによって、前記コンテンツ要求に応じて前記前のオーディオ入力の前記インジケーションに基づいて、前記リアルタイムのコンテンツ選択プロセスを介して選択されたデジタルコンポーネントを受信するステップと、
前記コンピューティングデバイスによるオーディオ出力を介して前記第三者アプリケーションによって前記デジタルコンポーネントを提示するステップとを含む、
請求項51に記載の方法。
【請求項58】
前記第三者アプリケーションによって、前記コンテンツ要求に応じて前記前のオーディオ入力の前記インジケーションに基づいて、前記リアルタイムのコンテンツ選択プロセスを介して選択されたデジタルコンポーネントを受信するステップと、
前記コンピューティングデバイスと通信している第2のコンピューティングデバイス上で実行される第2の第三者アプリケーションに前記第三者アプリケーションによって前記デジタルコンポーネントを送信するステップであって、前記第2の第三者アプリケーションが、前記デジタルコンポーネントを提示する、ステップとを含む、
請求項51に記載の方法。
【請求項59】
前記セキュアな処理環境内で前記第三者アプリケーションを起動するステップであって、前記セキュアな処理環境が、前記ローカルデジタルアシスタントコンポーネントによって処理された前記前のオーディオ入力へのアクセスを防止するように最初に構成される、ステップを含む、
請求項51に記載の方法。
【請求項60】
前記前のオーディオ入力の前記インジケーションに基づいて、前記第三者アプリケーションのコンテンツを前記第三者アプリケーションによって修正するステップを含む、
請求項51に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、セキュアな処理環境内のデータ転送を対象とする。
【背景技術】
【0002】
コンピューティングデバイスは、コンピューティングデバイス上で実行するためにアプリケーションを起動することができる。コンピューティングデバイスによって実行されるアプリケーションは、1つまたは複数の機能を実行することができる。コンピューティングデバイスは、アプリケーションの側面(aspect)を制限し得る。コンピューティングデバイスによってアプリケーションに課された制限が原因で、アプリケーションが特定の機能を実行することは困難である可能性がある。
【発明の概要】
【課題を解決するための手段】
【0003】
本開示は、概して、セキュアな処理環境内のデータ転送を対象とする。コンピューティングデバイスは、セキュアな処理環境内で実行されるアプリケーションのアクセスまたは機能を制限するサンドボックス化されたコンピューティング環境などのセキュアな処理環境を確立することができる。たとえば、サンドボックス化されたコンピューティング環境内で実行されるアプリケーションは、サンドボックス化されたコンピューティング環境外のメモリアドレスにアクセスすることを禁じられるかまたは遮断される可能性がある。コンピューティングデバイスは、デバイスのセキュリティを向上させ、潜在的に悪意のある第三者アプリケーションが望ましくない方法でコンピューティングデバイスを操作または修正することを防止するためにサンドボックス化されたコンピューティング環境内で第三者アプリケーションを実行することができる。しかし、セキュアなコンピューティング環境内で実行される第三者アプリケーションは、セキュアな処理環境外のメモリアドレスに記憶されたデータにアクセスすることまたはそのようなデータを取り出すことができないため、特定の機能を実行することができない可能性がある。したがって、サンドボックス化されたコンピューティング環境内で実行される第三者アプリケーションが入力がサンドボックス化されたコンピューティング環境外のメモリアドレスに記憶されたデータを含む機能またはプロセスを実行することは、困難であるかまたは非効率的である可能性がある。
【0004】
この解決策のシステムおよび方法は、セキュアな処理環境内のデータ転送を提供する。たとえば、デジタルアシスタントコンポーネントが、発話を含み得るオーディオ入力を受け取ることが可能である。デジタルアシスタントコンポーネントは、オーディオ入力に応じて第三者アプリケーションを呼び出す。デジタルアシスタントコンポーネントは、さらに、第三者アプリケーションを呼び出す結果となったオーディオ入力の前に検出された、前のオーディオ入力入力を特定し、それから、前のオーディオ入力、前のオーディオ入力の一意の識別子、または前のオーディオ入力のその他のインジケーションを用いてパッケージングされたデータオブジェクトを生成し得る。デジタルアシスタントコンポーネントは、セキュアな処理環境内で実行するために第三者アプリケーションを呼び出すとき、第三者アプリケーションが機能を実行するために前のオーディオ入力を処理するかまたは前のオーディオ入力を送信するかのどちらかを行い得るように前のオーディオ入力のインジケーションを第三者アプリケーションに渡すことができる。
【0005】
少なくとも1つの態様は、セキュアな処理環境内でデータを転送するためのシステムを対象とする。システムは、データ処理システムを含み得る。データ処理システムは、1つまたは複数のプロセッサおよびメモリを含み得る。システムは、データ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントを含み得る。デジタルアシスタントコンポーネント(またはデータ処理システム)は、コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信し得る。デジタルアシスタントコンポーネント(またはデータ処理システム)は、オーディオ入力に基づいて、コンピューティングデバイスに関連する第三者アプリケーションを呼び出すと決定し得る。デジタルアシスタントコンポーネント(またはデータ処理システム)は、第三者アプリケーションを呼び出す決定に応じてパッケージングされたデータオブジェクトを生成し得る。パッケージングされたデータオブジェクトは、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力を含み得る。デジタルアシスタントコンポーネントは、コンピューティングデバイス上のセキュアな処理環境内で実行するためにデジタルアシスタントコンポーネントによって呼び出された第三者アプリケーションにパッケージングされたデータオブジェクトを転送し得る。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたデジタルコンポーネント要求に応じて、パッケージングされたデータオブジェクトに基づいてリアルタイムのコンテンツ選択プロセスを実行するためにデジタルコンポーネントセレクタにパッケージングされたデータオブジェクトを送信し得る。
【0006】
少なくとも1つの態様は、セキュアな処理環境内でデータを転送する方法を対象とする。方法は、デジタルアシスタントコンポーネントがコンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信することを含み得る。デジタルアシスタントコンポーネントは、1つまたは複数のプロセッサおよびメモリを含むデータ処理システムによって少なくとも部分的に実行され得る。方法は、データ処理システムがオーディオ入力に基づいてコンピューティングデバイスに関連する第三者アプリケーションを呼び出すことを決定することを含み得る。方法は、データ処理システムが第三者アプリケーションを呼び出す決定に応じてパッケージングされたデータオブジェクトを生成することを含み得る。パッケージングされたデータオブジェクトは、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力を含み得る。方法は、データ処理システムがコンピューティングデバイス上のセキュアな処理環境内で実行するためにデジタルアシスタントコンポーネントによって呼び出される第三者アプリケーションにパッケージングされたデータオブジェクトを転送することを含み得る。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたデジタルコンポーネント要求に応じて、パッケージングされたデータオブジェクトに基づいてリアルタイムのデジタルコンポーネント選択プロセスを実行するためにデジタルコンポーネントセレクタにパッケージングされたデータオブジェクトを送信し得る。
【0007】
少なくとも1つの態様は、処理環境内でデータを転送するためのシステムを対象とする。システムは、1つまたは複数のプロセッサおよびメモリを有するデータ処理システムを含み得る。システムは、データ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントを含み得る。データ処理システムは、コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信し得る。データ処理システムは、オーディオ入力に基づいて、コンピューティングデバイスに関連する第三者アプリケーションを呼び出すと決定し得る。データ処理システムは、第三者アプリケーションを呼び出す決定に応じて、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力に対応する一意の識別子を生成し得る。データ処理システムは、コンピューティングデバイス上で実行するためにデジタルアシスタントコンポーネントによって呼び出される第三者アプリケーションに一意の識別子を転送し得る。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、データ処理システムに一意の識別子を送信し得る。データ処理システムは、第三者アプリケーションから受信された一意の識別子を使用して前のオーディオ入力を特定し得る。データ処理システムは、デジタルコンポーネントセレクタに前のオーディオ入力をリアルタイムのデジタルコンポーネント選択プロセスのための入力として提供し得る。
【0008】
少なくとも1つの態様は、処理環境内でデータを転送する方法を対象とする。方法は、1つまたは複数のプロセッサおよびメモリを含むデータ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントによって実行され得る。方法は、デジタルアシスタントコンポーネントがコンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信することを含み得る。方法は、データ処理システムがオーディオ入力に基づいてコンピューティングデバイスに関連する第三者アプリケーションを呼び出すことを決定することを含み得る。方法は、データ処理システムが、第三者アプリケーションを呼び出す決定に応じて、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力に対応する一意の識別子を生成することを含み得る。方法は、データ処理システムがコンピューティングデバイス上で実行するためにデジタルアシスタントコンポーネントによって呼び出される第三者アプリケーションに一意の識別子を転送することを含み得る。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、データ処理システムに一意の識別子を送信し得る。データ処理システムは、第三者アプリケーションから受信された一意の識別子を使用して前のオーディオ入力を特定し得る。データ処理システムは、デジタルコンポーネントセレクタに前のオーディオ入力をリアルタイムのデジタルコンポーネント選択プロセスのための入力として提供し得る。
【0009】
少なくとも1つの態様は、セキュアな処理環境内でデータを転送するためのシステムを対象とする。システムは、第三者アプリケーションを含み得る。第三者アプリケーションは、コンピューティングデバイスによって管理されるセキュアな処理環境内で実行され得る。コンピューティングデバイスは、1つまたは複数のプロセッサおよびメモリを含み得る。第三者アプリケーションは、ローカルデジタルアシスタントコンポーネントとインターフェースを取るためのアプリケーションプログラミングインターフェースを含み得る。ローカルデジタルコンポーネントは、第三者アプリケーションを呼び出すために入力オーディオ信号を処理するために通信チャネルを介してリモートデジタルアシスタントコンポーネントと通信していることができる。第三者アプリケーションは、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にコンピューティングデバイスのマイクロフォンによって検出された、前のオーディオ入力入力のインジケーションをローカルデジタルアシスタントコンポーネントから受信し得る。第三者アプリケーションは、セキュアな処理環境に前のオーディオ入力のインジケーションを記憶し得る。第三者アプリケーションは、イベントに応じてコンテンツ要求を生成し得る。第三者アプリケーションは、セキュアな処理環境に記憶され、アプリケーションプログラミングインターフェースを介してローカルデジタルアシスタントから受信された前のオーディオ入力のインジケーションをイベントに応じてセキュアな処理環境から取り出し得る。第三者アプリケーションは、コンテンツ要求および前のオーディオ入力のインジケーションをデジタルコンポーネントセレクタに提供し得る。デジタルコンポーネントセレクタは、コンテンツ要求および前のオーディオ入力のインジケーションに基づいてリアルタイムのコンテンツ選択プロセスを実行し得る。
【0010】
少なくとも1つの態様は、処理環境内でデータを転送する方法を対象とする。方法は、第三者アプリケーションによって実行され得る。第三者アプリケーションは、コンピューティングデバイスによって管理されるセキュアな処理環境内で実行され得る。コンピューティングデバイスは、1つまたは複数のプロセッサおよびメモリを含み得る。第三者アプリケーションは、ローカルデジタルアシスタントコンポーネントとインターフェースを取るためのアプリケーションプログラミングインターフェースを含み得る。ローカルデジタルコンポーネントは、第三者アプリケーションを呼び出すために入力オーディオ信号を処理するために通信チャネルを介してリモートデジタルアシスタントコンポーネントと通信していることができる。方法は、第三者アプリケーションが第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にコンピューティングデバイスのマイクロフォンによって検出された、前のオーディオ入力入力のインジケーションをローカルデジタルアシスタントコンポーネントから受信することを含み得る。方法は、第三者アプリケーションがセキュアな処理環境に前のオーディオ入力のインジケーションを記憶することを含み得る。方法は、第三者アプリケーションがイベントに応じてコンテンツ要求を生成することを含み得る。方法は、第三者アプリケーションが、セキュアな処理環境に記憶され、アプリケーションプログラミングインターフェースを介してローカルデジタルアシスタントから受信された前のオーディオ入力のインジケーションをイベントに応じてセキュアな処理環境から取り出すことを含み得る。方法は、第三者アプリケーションがコンテンツ要求および前のオーディオ入力のインジケーションをデジタルコンポーネントセレクタに提供することを含み得る。デジタルコンポーネントセレクタは、コンテンツ要求および前のオーディオ入力のインジケーションに基づいてリアルタイムのコンテンツ選択プロセスを実行し得る。
【0011】
少なくとも1つの態様は、セキュアな処理環境内でデータを転送するためのシステムを対象とする。システムは、1つまたは複数のプロセッサおよびメモリを有するコンピューティングデバイスを含み得る。システムは、コンピューティングデバイスのメモリの少なくとも一部において1つまたは複数のプロセッサによって管理されるセキュアな処理環境を含み得る。システムは、コンピューティングデバイスの1つまたは複数のプロセッサによって実行されるローカルデジタルアシスタントコンポーネントを含み得る。ローカルデジタルアシスタントコンポーネントは、通信チャネルを介してリモートデジタルアシスタントコンポーネントと通信していることができる。ローカルデジタルアシスタントコンポーネントは、コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を特定し得る。ローカルデジタルアシスタントコンポーネントは、オーディオ入力に基づいてコンピューティングデバイス上で第三者アプリケーションを呼び出し得る。ローカルデジタルアシスタントコンポーネントは、第三者アプリケーションの呼び出しに応じて、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力のインジケーションを取得し得る。ローカルデジタルアシスタントコンポーネントは、コンピューティングデバイス上のセキュアな処理環境内で実行するためにローカルデジタルアシスタントコンポーネントによって呼び出された第三者アプリケーションに前のオーディオ入力のインジケーションを転送し得る。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、デジタルコンポーネントセレクタに前のオーディオ入力のインジケーションを送信し得る。コンテンツセレクタは、前のオーディオ入力のインジケーションに基づいてリアルタイムのデジタルコンポーネント選択プロセスを実行し得る。
【0012】
少なくとも1つの態様は、セキュアな処理環境内でデータを転送する方法を対象とする。方法は、1つまたは複数のプロセッサおよびメモリを含むコンピューティングデバイスによって実行され得る。方法は、コンピューティングデバイスがコンピューティングデバイスのメモリの少なくとも一部においてセキュアな処理環境を確立することを含み得る。方法は、コンピューティングデバイスによって実行されるローカルデジタルアシスタントコンポーネントがコンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を特定することを含み得る。方法は、ローカルデジタルアシスタントコンポーネントがオーディオ入力に基づいてコンピューティングデバイス上で第三者アプリケーションを呼び出すことを含み得る。方法は、ローカルデジタルアシスタントコンポーネントが、第三者アプリケーションの呼び出しに応じて、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力のインジケーションを取得することを含み得る。方法は、ローカルデジタルアシスタントコンポーネントがコンピューティングデバイス上のセキュアな処理環境内で実行するためにローカルデジタルアシスタントコンポーネントによって呼び出された第三者アプリケーションに前のオーディオ入力のインジケーションを転送することを含み得る。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、デジタルコンポーネントセレクタに前のオーディオ入力のインジケーションを送信し得る。デジタルコンポーネントセレクタは、前のオーディオ入力のインジケーションに基づいてリアルタイムのコンテンツ選択プロセスを実行し得る。
【0013】
少なくとも1つの態様は、ユーザからの要求をバーチャルアシスタントにおいて受け取ることを含む方法を対象とする。方法は、要求に関して、バーチャルアシスタントによってユーザとインタラクションすることを含み得る。方法は、バーチャルアシスタントによってインタラクションに基づいてユーザを第1のリソースに送ることを含み得る。方法は、バーチャルアシスタントによって、送ることにつながるユーザとのインタラクションを表すデータオブジェクトを生成することを含み得る。方法は、バーチャルアシスタントによってデータオブジェクトを第1のリソースに転送することを含み得る。
【0014】
少なくとも1つの態様は、ユーザからの要求をバーチャルアシスタントにおいて受け取ることを含む方法を対象とする。方法は、要求に関して、バーチャルアシスタントによってユーザとインタラクションすることを含み得る。方法は、バーチャルアシスタントによってインタラクションに基づいてユーザを第1のリソースに送ることを含み得る。方法は、バーチャルアシスタントによって、送ることにつながるユーザとのインタラクションを表すデータオブジェクトを生成することを含み得る。方法は、インタラクションを特定する識別子を生成することを含み得る。方法は、バーチャルアシスタントによって識別子を第1のリソースに転送することを含み得る。方法は、バーチャルアシスタントによってデータオブジェクトをリソースの遠隔にあるサーバに転送することを含み得る。
【0015】
少なくとも1つの態様は、1つまたは複数のプロセッサを含む処理システムによって実行されるときに処理システムに本明細書において説明されるいずれかの態様または実装による方法を含む動作を実行させる命令を記憶する(この態様はこれに限定されないが、非一時的コンピュータ可読媒体である可能性がある)コンピュータ可読媒体を対象とする。少なくとも1つの態様は、1つまたは複数のプロセッサによって実行されるときに処理システムに本明細書において説明されるいずれかの態様または実装による方法を含む動作を実行させる命令を記憶するメモリに結合された1つまたは複数のプロセッサを含む処理システムを対象とする。
【0016】
これらのおよびその他の態様および実装が、下で詳細に検討される。上述の情報および下の詳細な説明は、様々な態様および実装の説明のための例を含み、主張される態様および実装の本質および特徴を理解するための概要または枠組みを提供する。図面は、様々な態様および実装を例示し、さらに理解させ、本明細書の一部に組み込まれ、本明細書の一部を構成する。
【0017】
添付の図面は、正しい縮尺で描かれるように意図されていない。様々な図面における同様の参照番号および参照指示は、同様の要素を示す。明瞭にする目的で、あらゆる図面においてあらゆるコンポーネントがラベル付けされるとは限らない可能性がある。
【図面の簡単な説明】
【0018】
図1】例によるセキュアな処理環境内でデータを転送するためのシステムの図である。
図2】例によるセキュアな処理環境内でデータを転送するためのシステムの動作の図である。
図3】例によるセキュアな処理環境内でデータを転送するためのシステムの動作の図である。
図4】例によるセキュアな処理環境内でデータを転送する方法の図である。
図5】例によるセキュアな処理環境内でデータを転送する方法の図である。
図6】例によるセキュアな処理環境内でデータを転送する方法の図である。
図7】例による情報リソースにステートフルな情報を提供する方法の図である。
図8】例によるセキュアな処理環境内でデータを転送する方法の図である。
図9】たとえば、図1図3に示されるシステムおよび図4図8に示される方法を含む、本明細書において説明され、図示されるシステムおよび方法の要素を実装するために使用され得るコンピュータシステムのための大まかなアーキテクチャを示すブロック図である。
【発明を実施するための形態】
【0019】
以下は、セキュアな処理環境内でデータを転送する方法、装置、およびシステムに関連する様々な概念ならびにそれらの方法、装置、およびシステムの実装のより詳細な説明である。上で導入され、下でより詳細に検討される様々な概念は、多数の方法のいずれかで実装される可能性がある。
【0020】
本開示は、概して、セキュアな処理環境におけるデータ転送を対象とする。コンピューティングデバイスは、セキュアな処理環境内で実行されるアプリケーションのアクセスまたは機能を制限するサンドボックス化されたコンピューティング環境などのセキュアな処理環境を確立することができる。たとえば、サンドボックス化されたコンピューティング環境内で実行されるアプリケーションは、サンドボックス化されたコンピューティング環境外のメモリアドレスにアクセスすることを禁じられるかまたは遮断される可能性がある。コンピューティングデバイスは、デバイスのセキュリティを向上させ、潜在的に悪意のある第三者アプリケーションが望ましくない方法でコンピューティングデバイスを操作または修正することを防止するためにサンドボックス化されたコンピューティング環境内で第三者アプリケーションを実行することができる。しかし、セキュアなコンピューティング環境内で実行される第三者アプリケーションは、セキュアな処理環境外のメモリアドレスに記憶されたデータにアクセスすることまたはそのようなデータを取り出すことができないため、特定の機能を実行することができない可能性がある。したがって、サンドボックス化されたコンピューティング環境内で実行される第三者アプリケーションが入力がサンドボックス化されたコンピューティング環境外のメモリアドレスに記憶されたデータを含む機能またはプロセスを実行することは、困難であるかまたは非効率的である可能性がある。
【0021】
この解決策のシステムおよび方法は、セキュアな処理環境におけるデータ転送を提供する。たとえば、デジタルアシスタントコンポーネントが、発話を含み得るオーディオ入力を受け取ることが可能である。デジタルアシスタントコンポーネントは、オーディオ入力に応じて第三者アプリケーションを呼び出す。デジタルアシスタントコンポーネントは、さらに、第三者アプリケーションを呼び出す結果となったオーディオ入力の前に検出された、前のオーディオ入力入力を特定し、それから、前のオーディオ入力、前のオーディオ入力の一意の識別子、または前のオーディオ入力のその他のインジケーションを用いてパッケージングされたデータオブジェクトを生成し得る。デジタルアシスタントコンポーネントは、セキュアな処理環境内で実行するために第三者アプリケーションを呼び出すとき、第三者アプリケーションが機能を実行するために前のオーディオ入力を処理するかまたは前のオーディオ入力を送信するかのどちらかを行い得るように前のオーディオ入力のインジケーションを第三者アプリケーションに渡すことができる。
【0022】
たとえば、クライアントコンピューティングデバイスに提供するデジタルコンポーネントを選択することは、困難になり得る。たとえば、レイテンシもしくは遅延を引き起こすことなくまたは余分な計算リソースを利用することなく関連性のあるデジタルコンポーネントをリアルタイムで選択することは、困難であるかまたは非効率的であり得る。実際、リアルタイムのコンテンツ選択を実行することは、利用可能な潜在的なデジタルコンポーネントの数の多さ、デジタルコンポーネント選択プロセスの変数、およびデータ処理システムの分散型コンピューティングアーキテクチャが原因で、プロセッサおよびメモリリソース、ネットワーク帯域幅、またはリモートプロシージャコールなどの余分なコンピューティングリソースを利用し得る。さらに、パーソナルデジタルアシスタントによるような音声駆動式のコンピューティング環境内で、データ処理システムは、ウェブベースの検索問い合わせ環境に比べて、デジタルコンポーネント選択プロセスを駆動することができる入力への制限されたアクセスをし得る可能性がある。情報へのこの制限されたアクセスは、サンドボックス化されたコンピューティング環境内で実行される第三者アプリケーションがデジタルコンポーネントの要求を行おうと試みるとき、さらに減らされ得る。
【0023】
この技術的な解決策のシステムおよび方法は、コンピューティングリソースの利用、ネットワーク帯域幅、またはリモートプロシージャコールを減らしながら関連性のあるデジタルコンポーネントのリアルタイムの選択を向上させるセキュアな処理環境におけるデータ転送を可能にする。たとえば、この技術的な解決策のシステムおよび方法は、第三者アプリケーションが追加的なオーディオコンテキストを含むデジタルコンポーネント要求を生成することを可能にするために追加的なオーディオコンテキストをトークン化されたフォーマットで提供するために、サンドボックス化されたコンピューティング環境内で起動される第三者アプリケーションとセキュアにインターフェースを取ることができるデジタルアシスタントコンポーネントを提供する。デジタルアシスタントが第三者アプリケーションを起動するとき、デジタルアシスタントは、第三者アプリケーションにユーザを導いた会話のコンテキストを伝えることができる。
【0024】
デジタルアシスタントによって起動された第三者アプリケーションは、第三者アプリケーションを起動する結果となったかまたは第三者アプリケーションを起動する前に行われたかのどちらかのデジタルアシスタントコンポーネントとの前のインタラクションに関連するオーディオコンテキストを含むデジタルコンポーネントの要求を生成することができる。データ処理システムは、リアルタイムのデジタルコンポーネント選択プロセスを実行するために、第三者アプリケーション自体に関連するネットワークアクティビティ、履歴的なネットワークアクティビティ、位置、またはキーワードなどの追加的な選択パラメータまたは基準と一緒にこのオーディオコンテキストを使用し得る。
【0025】
説明のための例において、ユーザは、デジタルアシスタントとの音声駆動式の通信を開始する可能性がある。ユーザからの第1の問い合わせは、「今度の日曜日の私の卒業式に着るものを何か買う必要があります。」であることが可能である。デジタルアシスタントは、「何を買いたいですか。」と応えることが可能である。ユーザは、「靴」と問い合わせることが可能である。デジタルアシスタントは、「どんな種類の靴ですか。」と応えることが可能である。ユーザは、「フォーマルなドレスシューズをいくつか見せて。」と言うことが可能である。この時点で、デジタルアシスタントは、第三者アプリケーションを起動するかまたは呼び出すことができる。デジタルアシスタントコンポーネントは、ユーザの問い合わせに応答するアプリケーションに関するディープリンクを特定するためにアプリケーション選択プロセスを実行することができる。第三者アプリケーションは、多くの異なる種類の衣類および衣料品を販売する大きな衣類小売業者に関するアプリケーションであることが可能である。このとき、デジタルアシスタントコンポーネントは、第三者アプリケーションを起動する結果となったオーディオ入力のインジケーションと、アプリケーションを起動する結果となったユーザの問い合わせの前に行われた前のオーディオ入力とを第三者アプリケーションに渡すことができる。オーディオ入力の前のインジケーションは、シリアル化された不透明トークン(たとえば、第三者アプリケーションによって解析され得ないデータ構造)、一意の識別子(たとえば、サーバに記憶された前のオーディオコンテキストにハッシュテーブルによるなどしてマッピングされる一意の識別子)、会話の中のイベントを示すイベント識別子、または会話のコンテキストを含むパッケージングされたデータオブジェクトであることが可能である。たとえば、デジタルアシスタントが第三者アプリケーションを起動するとき、会話が、データオブジェクトとしてパッケージされ得る。会話は、それから、シリアル化され、直接第三者アプリケーションを通じてコンテンツセレクタに送信され得る。一部の例において、デジタルアシスタントは、会話または会話のコンテキストをサーバに送信し、一意の識別子を受信し得る。それから、この一意の識別子が、第三者アプリケーションに送信されることが可能であり、第三者アプリケーションが、コンテンツ要求と一緒に一意の識別子を送信する。
【0026】
第三者アプリケーションは、コンテンツ要求または補足的なコンテンツの要求などのデジタルコンポーネント要求をトリガすることができる。第三者アプリケーションは、コンテンツ要求とともに、デジタルコンポーネントセレクタ(たとえば、コンテンツセレクタ)が前のオーディオ入力を使用して(たとえば、卒業式、日曜日、買う、またはフォーマルなドレスシューズなどのキーワードに基づいて)コンテンツアイテムまたは補足的なコンテンツアイテムを選択することを可能にするために前のオーディオ入力のインジケーションを含めることができる。デジタルコンポーネントセレクタは、コンテンツアイテムまたは補足的なコンテンツアイテムを選択するときに前のオーディオ入力を利用することができ、これは、コンテンツアイテムまたは補足的なコンテンツアイテムを選択する際の時間遅延を減らし、コンテンツアイテムまたは補足的なコンテンツアイテムを選択することに費やされるコンピューティングリソースを減らす。選択されたデジタルコンポーネントは、第三者アプリケーションを介して提示するためにコンピューティングデバイスに提供され得る。ユーザが選択されたデジタルコンポーネントとインタラクションするならば、データ処理システムは、インタラクションの原因を前のオーディオ入力を提供したデジタルアシスタントに帰すことができ、それによって、デジタルアシスタントの性能を示す。したがって、インプレッション、クリック、およびコンバージョンなどのデジタルコンポーネントとのインタラクションの原因は、第三者アプリケーションに加えてデジタルアシスタントに帰せられ得る。
【0027】
図1は、セキュアな処理環境内でデータを転送するための例示的なシステム100を示す。システム100は、デジタルコンポーネント選択インフラストラクチャを含み得る。システム100は、データ処理システム102を含み得る。データ処理システム102は、ネットワーク105を介してデジタルコンポーネントプロバイダデバイス106(たとえば、コンテンツプロバイダデバイス)、第三者アプリケーション開発者デバイス108、またはクライアントコンピューティングデバイス104のうちの1つまたは複数と通信することができる。ネットワーク105は、インターネット、ローカルエリアネットワーク、広域ネットワーク、メトロエリアネットワーク、またはその他のエリアネットワークなどのコンピュータネットワーク、イントラネット、衛星ネットワーク、および音声またはデータモバイル電話ネットワークなどのその他の通信ネットワークを含み得る。ネットワーク105は、ラップトップ、デスクトップ、タブレット、デジタルアシスタント、パーソナルデジタルアシスタント、スマートウォッチ、ウェアラブルデバイス、スマートフォン、ポータブルコンピュータ、またはスピーカなどの少なくとも1つのコンピューティングデバイス104上で提示されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために使用され得る。たとえば、ネットワーク105を介して、コンピューティングデバイス104のユーザは、第三者アプリケーション開発者デバイス108またはデジタルコンポーネントプロバイダデバイス106によって提供される情報またはデータにアクセスすることができる。コンピューティングデバイス104は、ディスプレイを含む可能性があり、または含まない可能性があり、たとえば、コンピューティングデバイスは、マイクロフォンおよびスピーカなどの限られた種類のユーザインターフェースを含む可能性がある。場合によっては、コンピューティングデバイス104の主なユーザインターフェースは、マイクロフォンおよびスピーカである可能性がある。
【0028】
ネットワーク105は、表示ネットワーク、たとえば、コンテンツ配置または検索エンジン結果システムに関連付けられるか、または第三者のデジタルコンポーネントを含むのにふさわしいインターネット上で利用可能な情報リソースのサブセットを含むかまたは成すことが可能である。ネットワーク105は、クライアントコンピューティングデバイス104によって提示されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするためにデータ処理システム102によって使用され得る。たとえば、ネットワーク105を介して、クライアントコンピューティングデバイス104のユーザは、デジタルコンポーネントプロバイダデバイス106または第三者アプリケーション開発者デバイス108によって提供される情報またはデータにアクセスすることができる。
【0029】
ネットワーク105は、任意の種類または形態のネットワークである可能性があり、以下、すなわち、ポイントツーポイントネットワーク、ブロードキャストネットワーク、広域ネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ: Synchronous Digital Hierarchy)ネットワーク、ワイヤレスネットワーク、および有線ネットワークのいずれかを含む可能性がある。ネットワーク105は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含む可能性がある。ネットワーク105のトポロジーは、バス型、スター型、またはリング型ネットワークトポロジーを含む可能性がある。ネットワークは、アドバンストモバイル電話プロトコル(「AMPS: advanced mobile phone protocol」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA(登録商標)」)、移動体通信用グローバルシステム(「GSM(登録商標): global system for mobile communication」)、汎用パケット無線サービス(「GPRS: general packet radio services」)、またはユニバーサル移動体通信システム(「UMTS: universal mobile telecommunications system」)を含むモバイルデバイスの間で通信するために使用される任意の1つのプロトコルまたは複数のプロトコルを使用するモバイル電話ネットワークを含む可能性がある。異なる種類のデータが、異なるプロトコルによって送信される可能性があり、または同じ種類のデータが、異なるプロトコルによって送信される可能性がある。
【0030】
システム100は、少なくとも1つのデータ処理システム102を含み得る。データ処理システム102は、たとえば、ネットワーク105を介してコンピューティングデバイス104、デジタルコンポーネントプロバイダデバイス106(もしくはコンテンツプロバイダデバイス)、または第三者アプリケーション開発者デバイス108(または第三者アプリケーション開発者)と通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含むことができる。データ処理システム102は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、データ処理システム102は、少なくとも1つのデータセンタに置かれた複数の計算リソースまたはサーバを含み得る。データ処理システム102は、複数の論理的にグループ分けされたサーバを含み、分散型コンピューティング技術を促進することができる。サーバの論理的グループは、データセンタ、サーバファーム、またはマシンファームと呼ばれる可能性がある。また、サーバは、地理的に散らされ得る。データセンタまたはマシンファームは、単一のエンティティとして管理される可能性があり、またはマシンファームは、複数のマシンファームを含むことが可能である。各マシンファーム内のサーバは、異種であることができる-サーバまたはマシンのうちの1つまたは複数が、1つまたは複数の種類のオペレーティングシステムプラットフォームに応じて動作することができる。
【0031】
マシンファーム内のサーバは、関連するストレージシステムと一緒に高密度ラックシステムに収容され、エンタープライズデータセンタに置かれ得る。たとえば、このようにしてサーバをまとめることは、サーバおよび高性能ストレージシステムを局所的な高性能ネットワーク上に置くことによってシステムの管理の容易性、データセキュリティ、システムの物理的セキュリティ、およびシステムの性能を改善する可能性がある。サーバおよびストレージシステムを含み、それらを高度なシステム管理ツールに結合するデータ処理システム102のコンポーネントのすべてまたは一部の集中化は、電力および処理の要件を減らし、帯域幅の使用を削減する、サーバリソースのより効率的な使用を可能にする。
【0032】
コンピューティングデバイス104は、少なくとも1つのローカルデジタルアシスタント134、少なくとも1つのコンピューティングセキュリティコンポーネント136、少なくとも1つのセンサ138、少なくとも1つのトランスデューサ140、少なくとも1つのオーディオドライバ142、または少なくとも1つのディスプレイ144のうちの1つまたは複数とのインターフェースを含むか、またはそうでなければ通信することができる。センサ138は、たとえば、カメラ、環境光センサ、近接センサ、温度センサ、加速度計、ジャイロスコープ、モーションディテクタ、GPSセンサ、位置センサ、マイクロフォン、動画、画像検出、またはタッチセンサを含み得る。トランスデューサ140は、スピーカもしくはマイクロフォンを含むかまたはスピーカもしくはマイクロフォンの一部であることができる。オーディオドライバ142は、ハードウェアトランスデューサ140にソフトウェアインターフェースを提供することができる。オーディオドライバ142は、対応する音響波または音波を生成するようにトランスデューサ140を制御するためにデータ処理システム102によって提供されるオーディオファイルまたはその他の命令を実行することができる。ディスプレイ144は、発光ダイオード、有機発光ダイオード、液晶ディスプレイ、レーザ、またはディスプレイ935などのビジュアルインジケーションまたは光学的出力を提供するように構成された1つまたは複数のハードウェアまたはソフトウェアコンポーネントを含み得る。
【0033】
ローカルデジタルアシスタント134は、1つまたは複数のプロセッサ(たとえば、プロセッサ910)、論理アレー、またはメモリを含み得る。ローカルデジタルアシスタント134は、キーワードを検出し、キーワードに基づいてアクションを実行することができる。ローカルデジタルアシスタント134は、さらなる処理のためにデータ処理システム102(たとえば、リモートデジタルアシスタント112)に語を送信する前に1つまたは複数の語をフィルタリングして取り除くかまたは語を修正することができる。ローカルデジタルアシスタント134は、マイクロフォンによって検出されたアナログオーディオ信号をデジタルオーディオ信号に変換し、デジタルオーディオ信号を運ぶ1つまたは複数のデータパケットをネットワーク105を介してデータ処理システム102に送信することができる。場合によっては、ローカルデジタルアシスタント134は、そのような送信を実行するための命令を検出することに応じて入力オーディオ信号の一部またはすべてを運ぶデータパケットを送信することができる。命令は、たとえば、入力オーディオ信号を含むデータパケットをデータ処理システム102に送信するためのトリガキーワードまたはその他のキーワードまたは承認を含み得る。
【0034】
ローカルデジタルアシスタント134は、オーディオの特定の周波数を削除するために入力オーディオ信号に対して事前フィルタリングまたは前処理を実行することができる。事前フィルタリングは、低域通過フィルタ、高域通過フィルタ、または帯域通過フィルタなどのフィルタを含み得る。フィルタは、周波数領域において適用され得る。フィルタは、デジタル信号処理技術を使用して適用され得る。フィルタは、人の発話の通常の周波数の外側にある周波数を除去しながら人の声または人の発話に対応する周波数を維持するように構成され得る。たとえば、帯域通過フィルタが、第1の閾値(たとえば、70Hz、75Hz、80Hz、85Hz、90Hz、95Hz、100Hz、または105Hz)未満の周波数および第2の閾値(たとえば、200Hz、205Hz、210Hz、225Hz、235Hz、245Hz、または255Hz)を超える周波数を取り除くように構成され得る。帯域通過フィルタを適用することは、下流の処理における計算リソースの利用を減らすことができる。場合によっては、コンピューティングデバイス104のローカルデジタルアシスタント134が、データ処理システム102に入力オーディオ信号を送信する前に帯域通過フィルタを適用することができ、それによって、ネットワーク帯域幅の利用を削減する。しかし、コンピューティングデバイス104が利用可能な計算リソース、および利用可能なネットワーク帯域幅に基づいて、データ処理システム102がフィルタリングを実行することを可能にするためにデータ処理システム102に入力オーディオ信号を提供することがより効率的である可能性がある。
【0035】
ローカルデジタルアシスタント134は、自然言語プロセッサを邪魔し得る環境雑音レベルを下げるために雑音低減技術などの追加的な前処理または事前フィルタリング技術を適用することができる。雑音低減技術は、自然言語プロセッサの正確性および速度を向上させ、それによって、データ処理システム102の性能を改善し、ディスプレイ144を介して提供されるグラフィカルユーザインターフェースのレンダリングを管理することができる。
【0036】
ローカルデジタルアシスタント134は、コンピューティングデバイス104上のアプリケーションを呼び出すかまたは起動すると決定し得る。ローカルデジタルアシスタント134は、コンピューティングデバイス104上のアプリケーションを呼び出すかまたは起動するためのリモートデジタルアシスタント112からの命令またはコマンドを受信し得る。ローカルデジタルアシスタント134は、コンピューティングデバイス104上のアプリケーションの起動またはそうでなければコンピューティングデバイス104上のアプリケーションの実行を容易にするためのディープリンクまたはその他の情報を受信し得る。
【0037】
ローカルデジタルアシスタント134(または、ローカルデジタルアシスタントコンポーネント)は、セキュアな処理環境内でアプリケーションを起動し得る。コンピューティングデバイス104は、コンピューティングデバイス上のセキュアな処理環境を確立するか、管理するか、または維持するコンピューティングセキュリティコンポーネント136を含み得る。たとえば、コンピューティングセキュリティコンポーネント136は、サンドボックス化された環境、制約されたデータ共有環境、アプリケーション隔離環境、または仮想化された環境と呼ばれることがあるサイロ化された(siloed)コンピューティング環境などのセキュアな処理環境を確立するか、管理するか、または維持することができる。コンピューティングセキュリティコンポーネント136によって確立されたセキュアな処理環境(たとえば、サイロ化されたコンピューティング環境)内で実行されるとき、アプリケーションは、メモリ、入力/出力バッファ、またはネットワークリソースなどのコンピューティングリソースへの制限されたまたは制約されたアクセスをし得る可能性がある。セキュアな(たとえば、サイロ化されたまたはサンドボックス化された)コンピューティング環境内で実行されるアプリケーションは、コンピューティングデバイス上で同時に実行される可能性がある1つもしくは複数のその他のアプリケーションまたは同じアプリケーションの1つもしくは複数のインスタンスとでさえもインタラクションすることを制限される可能性がある。実行中、セキュアな(たとえば、サイロ化されたまたはサンドボックス化された)コンピューティング環境内で実行されるアプリケーションは、ローカルデジタルアシスタント134とインタラクションすること、コンピューティングデバイス104に記憶されたデータファイルにアクセスすること、またはいくつかの種類のデータを要求することを制限される可能性がある。たとえば、アプリケーションのそれぞれのサイロ化されたインスタンスは、独自のメモリ空間、プリファレンス、レジストリ設定、キャッシュ、ネットワークソケットなどを有する可能性があり、アプリケーションのその他のインスタンスのリソースにアクセスすることができない可能性がある-またはそのようなリソースについて必ずしも知らない可能性さえある。その他のアプリケーションまたは同じアプリケーションの以前のインスタンスに関連するメモリもしくはファイルへの制約されたもしくは制限されたアクセスまたはそれらとインタラクションする制約されたもしくは制限された能力が原因で、それぞれのサイロ化されたアプリケーションまたはアプリケーションのインスタンスは、アプリケーションが起動されたコンテキストまたはアプリケーションの起動前の前のコンテキスト情報にアクセスすることができない可能性がある。したがって、アプリケーションがコンテンツアイテムなどのデジタルコンポーネントの要求を送信する場合、データ処理システム102は、要求に対する応答を生成するために使用され得るコンテキスト情報を取得するために追加的なリモートプロシージャコールを生成するかまたはその他のリソースにアクセスしなければならない可能性がある。本開示の態様は、これらの制約に対処し、デジタルコンポーネントを選択するプロセスをより高速で、リソース効率の高いものにする。
【0038】
セキュアな処理環境は、第三者アプリケーションに課されたアクセス制約を指し得る。たとえば、第三者アプリケーションは、制限されたアクセス、認可、特権、または権利を割り振られ得る。第三者アプリケーションは、そうではなく、始め、第三者アプリケーションを起動する結果となった前の入力オーディオまたは会話にアクセスすることができない可能性がある。たとえば、動作の順番が原因で、第三者アプリケーションは、会話が既に行われた後で呼び出されるかまたは起動される可能性があり、したがって、第三者アプリケーションは、会話の情報にアクセスすることができない可能性がある。セキュアな処理環境は、場合によっては、第三者アプリケーションを起動する結果となった会話の一部またはすべてに第三者アプリケーションがアクセスすることができないことを指し得る。
【0039】
コンピューティングデバイス104(またはクライアントコンピューティングデバイスまたはクライアントデバイス)は、(センサ138を介して)クライアントコンピューティングデバイス104に音声の問い合わせをオーディオ入力として入力し、トランスデューサ140(たとえば、スピーカ)から出力された、データ処理システム102(またはデジタルコンポーネントプロバイダデバイス106または第三者アプリケーション開発者デバイス108)からクライアントコンピューティングデバイス104に提供され得るコンピュータによって生成された音声の形態のオーディオ出力を受け取るエンドユーザに関連付けられ得る。コンピュータによって生成された音声は、本物の人からの録音またはコンピュータによって生成された言葉を含み得る。クライアントコンピューティングデバイス104は、コンピューティングデバイス104に通信可能なように結合されたディスプレイデバイス144を介してビジュアル出力を提供し得る。
【0040】
クライアントコンピューティングデバイス104は、(センサ138を介して)クライアントコンピューティングデバイス104に問い合わせを示すことができる画像または動画を入力として与えるエンドユーザに関連付けられ得る。エンドユーザは、トランスデューサ140(たとえば、スピーカ)から出力された、データ処理システム102(またはデジタルコンポーネントプロバイダデバイス106または第三者アプリケーション開発者デバイス108)からクライアントコンピューティングデバイス104に提供され得るコンピュータによって生成された音声の形態の、入力に応答するオーディオ出力を受け取ることができる。エンドユーザは、ディスプレイ144に出力するために、データ処理システム102(またはデジタルコンポーネントプロバイダデバイス106または第三者アプリケーション開発者デバイス108)からクライアントコンピューティングデバイス104に提供され得るコンピュータによって生成されたグラフィカルユーザインターフェースの形態の、入力に応答するビジュアル出力を受け取ることができる。1つまたは複数のセンサ134によって検出される入力は、オーディオ入力(たとえば、音響信号)、ビジュアル入力(たとえば、画像もしくは動画データ)、モーション入力、またはその他の入力のうちの1つまたは複数を含み得る。コンピューティングデバイス104への入力(たとえば、オーディオ、画像、ビジュアル、またはモーション入力のうちの1つまたは複数)は、デジタルファイルに変換され、さらなる処理のためまたはアクションを生成するためにデータ処理システム102に提供され得る。たとえば、コンピューティングデバイス104への入力(たとえば、オーディオ、画像、ビジュアル、またはモーション入力のうちの1つまたは複数)は、第三者アプリケーションを含むコンピュータプログラムの選択をトリガすることができ、第三者アプリケーションは、生成された問い合わせに応答し、コンピューティングデバイス104への入力(たとえば、オーディオ、画像、ビジュアル、またはモーション入力のうちの1つまたは複数)に対応する出力を提供することができる。
【0041】
コンピューティングデバイス104は、コンピューティングデバイス104のセンサ138(たとえば、マイクロフォン)によって検出された入力オーディオ信号を受信することができる。入力オーディオ信号は、たとえば、言葉で与えられる問い合わせ、質問、コマンド、命令、またはその他のステートメントを含み得る。入力オーディオ信号は、質問または問い合わせが対象とする第三者アプリケーションの識別子または名前を含み得る。たとえば、問い合わせは、問い合わせを指定された第三者アプリケーションに入力するようにデータ処理システム102に命令するために、問い合わせが後に続く第三者アプリケーションの名前を含み得る。たとえば、入力オーディオ信号は、「お天気アプリケーションを起動して、サンフランシスコの予報を見せて。」を含み得る。場合によっては、問い合わせは、アプリケーションを特定しない可能性があり、その代わりに、問い合わせは、「サンフランシスコの天気はどう。」であることが可能であり、リモートデジタルアシスタント112と通信しているローカルデジタルアシスタント134が、起動する第三者アプリケーションを選択し、第三者アプリケーションを起動するようにコンピューティングデバイス104に命令することができる。
【0042】
コンピューティングデバイス104は、デジタルアシスタントデバイスを含むか、デジタルアシスタントデバイスを実行するか、またはデジタルアシスタントデバイスと呼ばれ得る。デジタルアシスタントデバイス(またはコンピューティングデバイス104)は、コンピューティングデバイス104の1つまたは複数のコンポーネントを含み得る。デジタルアシスタントデバイスは、データ処理システム102からディスプレイ出力を受信し、ディスプレイ132上にディスプレイ出力をレンダリングすることができるグラフィックスドライバを含み得る。グラフィックスドライバは、グラフィックスまたはビジュアル出力がディスプレイ144上にどのように表示されるかを制御するかまたは向上させるハードウェアまたはソフトウェアコンポーネントを含み得る。グラフィックスドライバは、たとえば、グラフィックコンポーネントがコンピューティングデバイス104の残り(たとえば、デジタルアシスタント)とともにどのようにして働くかを制御するプログラムを含み得る。ローカルデジタルアシスタント134は、入力オーディオ信号をフィルタリングしてフィルタリングされた入力オーディオ信号を生成し、フィルタリングされた入力オーディオ信号をデータパケットに変換し、1つまたは複数のプロセッサおよびメモリを含むデータ処理システムにデータパケットを送信することができる。
【0043】
デジタルアシスタントデバイスは、オーディオドライバ142およびスピーカコンポーネント(たとえば、トランスデューサ140)を含み得る。プリプロセッサコンポーネント140は、ディスプレイ出力のインジケーションを受信し、スピーカコンポーネント(たとえば、トランスデューサ140)にディスプレイ出力のインジケーションに対応するオーディオ出力を送出させるための出力オーディオ信号を生成するようにオーディオドライバ142に命令することができる。オーディオ出力は、たとえば、図3のテキストボックス312に示されるテキストのテキストツースピーチ表現を含み得る。
【0044】
システム100は、少なくとも1つの第三者アプリケーション開発者デバイス108を含むか、少なくとも1つの第三者アプリケーション開発者デバイス108にアクセスするか、またはそうでなければ少なくとも1つの第三者アプリケーション開発者デバイス108とインタラクションすることができる。第三者アプリケーション開発者デバイス108は、1つまたは複数のサーバを含むことが可能であり、第三者アプリケーションサーバと呼ばれ得る。第三者アプリケーション開発者デバイス108は、データ処理システム102と統合されるか、またはデータ処理システム102によって少なくとも部分的に実行され得る。第三者アプリケーション開発者デバイス108は、たとえば、ネットワーク105を介してコンピューティングデバイス104、データ処理システム102、またはデジタルコンポーネントプロバイダデバイス106と通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。第三者アプリケーション開発者デバイス108は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、第三者アプリケーション開発者デバイス108は、少なくとも1つのデータセンタに置かれた複数の計算リソースまたはサーバを含み得る。第三者アプリケーション開発者デバイス108は、データ処理システム102の1つまたは複数のコンポーネントまたは機能を含み得る。
【0045】
第三者アプリケーション開発者デバイス108は、コンピューティングデバイス104によって実行されるかまたはコンピューティングデバイス104を介して使用され得る1つまたは複数のアプリケーションを形成するかまたは提供するコンピュータプログラムを設計するか、開発するか、管理するか、または維持するエンティティなどのアプリ開発者を含むかまたは指し得る。アプリケーションは、衣類アプリ、ゲームアプリ、拡張現実アプリ、ショッピングアプリ、天気アプリ、旅行アプリ、ソーシャルネットワーキングアプリ、ナビゲーションアプリ、チャットボット、ビジネスアプリ、教育アプリ、ライフスタイルアプリ、ユーティリティアプリ、読書アプリ、健康およびフィットネスアプリ、または飲食アプリなどの任意の種類のコンピュータプログラムを含み得る。
【0046】
第三者アプリケーション開発者デバイス108は、データ処理システム102を管理するかまたは提供するエンティティと異なるエンティティの1つまたは複数のサーバを指し得る。第三者アプリケーション開発者デバイス108は、アプリのためのコンピュータプログラムを受信することができる。第三者アプリケーション開発者デバイス108は、アプリケーションの機能を提供するためにコンピューティングデバイス104とインターフェースを取るかまたは通信することができる。たとえば、第三者アプリケーション開発者デバイス108は、コンピューティングデバイス104のユーザとインターフェースを取るかまたはインタラクションするためにアプリケーションを実行するかまたは走らせることができる。第三者アプリケーション開発者デバイス108は、データ処理システム102およびコンピューティングデバイス104の遠隔にあるサーバ上で実行され得る。
【0047】
データ処理システム102は、少なくとも1つの計算リソースまたはサーバを有するコンテンツ配置システムを含み得る。データ処理システム102は、少なくとも1つのインターフェース110を含むか、少なくとも1つのインターフェース110とインターフェースを取るか、またはそうでなければ少なくとも1つのインターフェース110と通信することができる。データ処理システム102は、少なくとも1つのリモートデジタルアシスタント112を含むか、少なくとも1つのリモートデジタルアシスタント112とインターフェースを取るか、またはそうでなければ少なくとも1つのリモートデジタルアシスタント112と通信することができる。リモートデジタルアシスタント112は、少なくとも1つの自然言語プロセッサコンポーネント114を含むか、少なくとも1つの自然言語プロセッサコンポーネント114とインターフェースを取るか、またはそうでなければ少なくとも1つの自然言語プロセッサコンポーネント114と通信することができる。リモートデジタルアシスタント112は、少なくとも1つのリモートアプリランチャ116を含むか、少なくとも1つのリモートアプリランチャ116とインターフェースを取るか、またはそうでなければ少なくとも1つのリモートアプリランチャ116と通信することができる。リモートデジタルアシスタント112は、少なくとも1つのオーディオパッケージングコンポーネント118を含むか、少なくとも1つのオーディオパッケージングコンポーネント118とインターフェースを取るか、またはそうでなければ少なくとも1つのオーディオパッケージングコンポーネント118と通信することができる。データ処理システム102は、少なくとも1つのデジタルコンポーネントセレクタ120を含むか、少なくとも1つのデジタルコンポーネントセレクタ120とインターフェースを取るか、またはそうでなければ少なくとも1つのデジタルコンポーネントセレクタ120と通信することができる。データ処理システム102は、少なくとも1つのアトリビューションコンポーネント122を含むか、少なくとも1つのアトリビューションコンポーネント122とインターフェースを取るか、またはそうでなければ少なくとも1つのアトリビューションコンポーネント122と通信することができる。データ処理システム102は、少な
くとも1つのデータリポジトリ124を含むか、少なくとも1つのデータリポジトリ124とインターフェースを取るか、またはそうでなければ少なくとも1つのデータリポジトリ124と通信することができる。少なくとも1つのデータリポジトリ124は、ディープリンク126、パッケージングされたデータ128、イベント識別子130、またはコンテンツデータ132を1つまたは複数のデータ構造またはデータベースに含むかまたは記憶することができる。データリポジトリ124は、1つまたは複数のローカルまたは分散型データベースを含むことができ、データベース管理システムを含むことができる。
【0048】
ディープリンク126は、1つまたは複数のデータ構造またはデータファイルに記憶され得る。ディープリンク126は、テーブルに記憶され得る。ディープリンク126は、実行され得るアプリケーションのリンク、ポイント、参照、またはその他のアドレスもしくは位置情報を含み得る。アプリケーションへのディープリンクは、特定のリソース、Webコンテンツ、またはアプリケーションにリンクするユニフォームリソースロケータまたはハイパーリンクを指し得る。ディープリンクは、特定のリソースまたはアプリケーションを指し、アプリケーションを起動するために使用される情報を含み得る。場合によっては、ディープリンクは、アプリケーションを起動することに加えて、モバイルアプリケーション内の特定の位置にリンクするユニフォームリソース識別子(「URI」)を含み得る。ディープリンク126のデータ構造は、アプリケーションのアプリケーション名またはビューをディープリンクにマッピングするハッシュテーブルを含み得る。
【0049】
パッケージングされたデータ128は、オーディオ入力を含むかまたオーディオ入力に基づき得る。パッケージングされたデータ128は、オーディオ入力に対応する識別子または一意の識別子を含み得る。パッケージングされたデータ128は、エンドユーザとデジタルアシスタント(たとえば、ローカルデジタルアシスタント134およびリモートデジタルアシスタント112)との間の会話を含み得る。パッケージングされたデータ128は、会話(たとえば、コンピューティングデバイス104のセンサ138によって検出されたオーディオ入力およびデジタルアシスタントからの応答)を捕捉するシリアル化された不透明トークンを含み得る。パッケージングされたデータ128は、構造化された会話、キーワード、語、または語句を含み得る。パッケージングされたデータ128は、会話の単語、語句、文、または側面のタイムスタンプまたはシーケンスを含み得る。パッケージングされたデータ128は、暗号化されたフォーマットまたは暗号化されていないフォーマットで記憶され得る。
【0050】
イベント識別子130は、会話の側面を指し得る。イベント識別子130は、オントロジ駆動式の自然言語処理技術に基づくことが可能である。たとえば、自然言語テキストが、解析され、自然言語テキストの意味の表現に変換されることが可能であり、その自然言語テキストの意味の表現が、テキスト内で述べられ、オントロジモデルに知られているようにイベントおよびそれらのイベントに参加するものの周りで構造化され得る。それから、問い合わせが、テキスト内にある可能性がある並べ替えを見越してこの意味の表現とマッチングされ得る。これらの並べ替えは、主として、過剰な明細(over specification)(たとえば、すべての同義語を列挙せず、これは、非セマンティック検索エンジンがそのユーザに行うように求めることである)と、より重要なことに、不完全な明細(under specification)とを含み得る。たとえば、イベントは、服を買うためのユーザの問い合わせと、服の選択肢による問い合わせに対する応答とに基づき得る。
【0051】
コンテンツデータ132は、たとえば、コンテンツグループ、コンテンツ選択基準、デジタルコンポーネントオブジェクト、あるいはコンテンツの選択を容易にするためにデジタルコンポーネントプロバイダデバイス106によって提供されるかまたはデータ処理システムによって取得されるかもしくは決定されるその他の情報を含み得る。コンテンツデータ132は、たとえば、履歴的な性能データを含み得る。コンテンツデータ132は、オーディオ出力、ディスプレイ出力、または関連するメタデータに関するデジタルコンポーネントと、クライアントコンピューティングデバイス104との1つまたは複数の通信セッションの一部であることが可能である入力オーディオメッセージとを含み得る。デジタルコンポーネント(またはデジタルコンポーネントオブジェクト)は、たとえば、コンテンツアイテム、オンラインドキュメント、オーディオ、画像、動画、マルチメディアコンテンツ、または第三者コンテンツを含み得る。
【0052】
インターフェース110、リモートデジタルアシスタント112、自然言語プロセッサコンポーネント114、リモートアプリランチャ116、オーディオパッケージングコンポーネント118、デジタルコンポーネントセレクタ120、およびアトリビューションコンポーネント122は、それぞれ、少なくとも1つの処理ユニットもしくはプログラミング可能な論理アレーエンジンなどのその他の論理デバイス、またはデータベースリポジトリもしくはデータベース124と通信するように構成されたモジュールを含み得る。インターフェース110、リモートデジタルアシスタント112、自然言語プロセッサコンポーネント114、リモートアプリランチャ116、オーディオパッケージングコンポーネント118、デジタルコンポーネントセレクタ120、およびアトリビューションコンポーネント122、およびデータリポジトリ124は、別々のコンポーネント、単一のコンポーネント、またはデータ処理システム102の一部であることが可能である。システム100およびデータ処理システム102などのそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含み得る。
【0053】
データ処理システム102は、複数のコンピューティングデバイス104に関連する匿名のコンピュータネットワーク活動情報を取得することができる。コンピューティングデバイス104のユーザは、ユーザのコンピューティングデバイス104に対応するネットワーク活動情報を取得することをデータ処理システム102に肯定的に認可することが可能である。たとえば、データ処理システム102は、1つまたは複数の種類のネットワーク活動情報を取得することに同意するようにコンピューティングデバイス104のユーザに促すことができる。コンピューティングデバイス104のユーザの身元は、匿名のままであることができ、コンピューティングデバイス104は、一意の識別子(たとえば、データ処理システムまたはコンピューティングデバイスのユーザによって提供されるユーザまたはコンピューティングデバイスの一意の識別子)に関連付けられ得る。データ処理システムは、各観測値(observation)を対応する一意の識別子と関連付けることができる。
【0054】
デジタルコンポーネントプロバイダデバイス106は、オーディオ出力デジタルコンポーネントまたはビジュアル出力デジタルコンポーネントとしてクライアントコンピューティングデバイス104によって提示するためのオーディオ、ビジュアル、またはマルチメディアに基づくデジタルコンポーネントを提供することができる。デジタルコンポーネントは、デジタルコンポーネントであるかまたはデジタルコンポーネントを含み得る。デジタルコンポーネントは、デジタルオブジェクトであるかまたはデジタルオブジェクトを含み得る。デジタルコンポーネントは、品物またはサービスのブランド名または会社名を含み得る。デジタルコンポーネントは、パラメータ駆動式のテキストツースピーチ技術のために構成され得る。デジタルコンポーネントは、通常の言語のテキストを発話に変換するテキストツースピーチ(TTS)の実装のために構成され得る。デジタルコンポーネントは、テキストを様々な言語、口調、および声の自然に聞こえる発話に合成する音声合成能力を利用するアプリケーションプログラミングインターフェースへの入力であることが可能である。デジタルコンポーネントは、プレーンテキストまたは音声合成マークアップ言語(SSML)として符号化され得る。SSMLは、音響指紋またはネイティブ音声を形成し得る発音、音量、音程、またはレートなどの発話の側面を制御するために設定されることが可能であるパラメータを含み得る。
【0055】
デジタルコンポーネントプロバイダデバイス106は、コンテンツ選択プロセスを容易にするために、値、キーワード、概念、またはその他のメタデータもしくは情報などのデジタルコンポーネントに関する選択基準を提供することができる。デジタルコンポーネントプロバイダデバイス106は、オーディオに基づくデジタルコンポーネント(またはその他のデジタルコンポーネント)をデータ処理システム102に提供することもでき、データ処理システム102において、それらのオーディオに基づくデジタルコンポーネント(またはその他のデジタルコンポーネント)は、データリポジトリ124に記憶され得る。データ処理システム102は、オーディオデジタルコンポーネント(またはパラメータ駆動式のテキスト、画像、またはビデオツースピーチ技術のために構成されたデジタルコンポーネント)を選択し、オーディオデジタルコンポーネントをクライアントコンピューティングデバイス104に提供する(または提供するようにデジタルコンポーネントプロバイダデバイス106に命令する)ことができる。オーディオに基づくデジタルコンポーネントは、オーディオのみであることが可能であり、またはテキスト、画像、もしくは動画データと組み合わされることが可能である。
【0056】
デジタルコンポーネントプロバイダデバイス106は、データリポジトリ124においてコンテンツデータのデータ構造132に記憶するためにデジタルコンポーネントをデータ処理システム102に提供することができる。データ処理システム102は、コンテンツの要求またはそうでなければデジタルコンポーネントを提供すると決定することに応じてデジタルコンポーネントを取り出すことができる。
【0057】
デジタルコンポーネントプロバイダデバイス106は、デジタルコンポーネントキャンペーン(または電子コンテンツキャンペーン)を確立することができる。デジタルコンポーネントキャンペーンは、データリポジトリ124内にコンテンツデータ132として記憶され得る。デジタルコンポーネントキャンペーンは、共通のテーマに対応する1つまたは複数のコンテンツグループを指し得る。コンテンツキャンペーンは、コンテンツグループ、デジタルコンポーネントデータオブジェクト(たとえば、デジタルコンポーネントまたはデジタルオブジェクト)、およびコンテンツ選択基準を含む階層的なデータ構造を含み得る。デジタルコンポーネントキャンペーンを生成するために、デジタルコンポーネントプロバイダデバイス106は、デジタルコンポーネントキャンペーンのキャンペーンレベルパラメータに関する値を指定することができる。キャンペーンレベルパラメータは、たとえば、キャンペーン名、デジタルコンポーネントオブジェクトを配置するための好ましいコンテンツネットワーク、デジタルコンポーネントキャンペーンのために使用されるリソースの値、コンテンツキャンペーンの開始日および終了日、デジタルコンポーネントキャンペーンの継続時間、デジタルコンポーネントオブジェクトの配置のためのスケジュール、言語、地理的位置、デジタルコンポーネントオブジェクトを提供すべきコンピューティングデバイスの種類を含み得る。場合によっては、インプレッションが、デジタルコンポーネントオブジェクトがそのソース(たとえば、データ処理システム102またはデジタルコンポーネントプロバイダデバイス106)からいつフェッチされるかを指す可能性があり、数えられ得る。場合によっては、クリック詐欺の可能性があるため、インプレッションとして、ロボットの活動がフィルタリングされ、除外され得る。したがって、場合によっては、インプレッションは、ロボットの活動およびエラーコードからフィルタリングされ、コンピューティングデバイス104上に表示するためにデジタルコンポーネントオブジェクトをレンダリングする機会にできるだけ近い時点で記録される、ブラウザからのページ要求に対するウェブサーバからの応答の測定値を指し得る。場合によっては、インプレッションは、可視インプレッション(viewable impression)または可聴インプレッション(audible impression)を指すことができ、たとえば、デジタルコンポーネントオブジェクトまたはデジタルコンポーネントは、クライアントコンピューティングデバイス104のディスプレイデバイス上で少なくとも部分的に(たとえば、20%、30%、30%、40%、50%、60%、70%、もしくはそれ以上)可視であるか、またはコンピューティングデバイス104のスピーカ136を介して少なくとも部分的に(たとえば、20%、30%、30%、40%、50%、60%、70%、もしくはそれ以上)可聴である。クリックまたは選択は、可聴インプレッションに対する音声応答、マウスクリック、タッチインタラクション、ジェスチャ、振り動かし、オーディオインタラクション、またはキーボードクリックなどのデジタルコンポーネントオブジェクトとのユーザインタラクションを指し得る。コンバージョンは、ユーザがデジタルコンポーネントオブジェクトに関連して所望のアクションを行うこと、たとえば、製品もしくはサービスを購入すること、調査を完了すること、デジタルコンポーネントに対応する物理的な店舗を訪れること、または電子取引を完了することを指し得る。
【0058】
デジタルコンポーネントプロバイダデバイス106は、デジタルコンポーネントキャンペーンに関する1つまたは複数のコンテンツグループをさらに確立することができる。コンテンツグループは、1つまたは複数のデジタルコンポーネントオブジェクトと、キーワード、単語、語、語句、地理的位置、コンピューティングデバイスの種類、時刻、関心、話題、または垂直位置(vertical)などの対応するコンテンツ選択基準とを含む。同じコンテンツキャンペーンの下のコンテンツグループは、同じキャンペーンレベルパラメータを共有することが可能であるが、キーワード、(たとえば、主コンテンツに除外キーワードが存在する場合にデジタルコンポーネントの配置を阻止する)除外キーワード、またはコンテンツキャンペーンに関連するパラメータなどのコンテンツグループレベルパラメータに関するカスタマイズされた仕様を有する可能性がある。
【0059】
新しいコンテンツグループを生成するために、デジタルコンポーネントプロバイダデバイス106は、コンテンツグループのコンテンツグループレベルパラメータの値を与えることができる。コンテンツグループレベルパラメータは、たとえば、コンテンツグループ名もしくはコンテンツグループのテーマ、および異なるコンテンツ配置機会(たとえば、自動配置もしくは管理された配置)または結果(たとえば、クリック、インプレッション、もしくはコンバージョン)の入札単価を含む。コンテンツグループ名またはコンテンツグループのテーマは、コンテンツグループのデジタルコンポーネントオブジェクトが表示するために選択されるべきである話題または主題を捕捉するためにデジタルコンポーネントプロバイダデバイス106が使用することができる1つまたは複数の語であることが可能である。たとえば、食品飲料会社は、その会社が扱う食品または飲料の各ブランドのために異なるコンテンツグループを作成することができ、その会社が扱う輸送手段の各モデルのために異なるコンテンツグループをさらに作成する可能性がある。食品飲料会社が使用することができるコンテンツグループのテーマの例は、たとえば、「ブランドAコーラ」、「ブランドBジンジャーエール」、「ブランドCオレンジジュース」、「ブランドDスポーツドリンク」、または「ブランドE精製水」を含む。例示的なコンテンツキャンペーンのテーマは、「ソーダ」であり、たとえば、「ブランドAコーラ」および「ブランドBジンジャーエール」の両方に関するコンテンツグループを含み得る。デジタルコンポーネント(またはデジタルコンポーネントオブジェクトまたはデジタルコンポーネント)は、「ブランドA」、「ブランドB」、「ブランドC」、「ブランドD」、または「ブランドE」を含み得る。デジタルコンポーネントオブジェクトまたはデジタルコンポーネントは、パラメータ駆動式のテキストツースピーチ技術のために構成されたデジタルコンポーネントを指し得る。
【0060】
デジタルコンポーネントプロバイダデバイス106は、各コンテンツグループに1つまたは複数のキーワードおよびデジタルコンポーネントオブジェクトを与えることができる。キーワードは、デジタルコンポーネントオブジェクトに関連するかまたはデジタルコンポーネントオブジェクトによって特定される製品またはサービスに関連する語を含み得る。キーワードは、1つまたは複数の語または語句を含み得る。たとえば、食品飲料会社は、ブランドが提供する品物またはサービスを記述し得るコンテンツグループまたはコンテンツキャンペーンに関するキーワードとして「ソーダ」、「コーラ」、「ソフトドリンク」を含めることができる。場合によっては、除外キーワードが、特定の語またはキーワードに対するコンテンツ配置を避けるか、防止するか、阻止するか、または無効にするためにコンテンツプロバイダによって指定され得る。コンテンツプロバイダは、デジタルコンポーネントオブジェクトを選択するために使用される、完全一致、フレーズ一致、または部分一致などのマッチングの種類を指定することができる。
【0061】
デジタルコンポーネントプロバイダデバイス106は、デジタルコンポーネントプロバイダデバイス106によって提供されるデジタルコンポーネントオブジェクトを選択するためにデータ処理システム102によって使用される1つまたは複数のキーワードを提供することができる。デジタルコンポーネントプロバイダデバイス106は、デジタルコンポーネントオブジェクトを選択するためにデータ処理システム102によって使用される追加的なコンテンツ選択基準を提供することができる。データ処理システム102は、電子的メッセージのキーワードのインジケーションを受信することに応じて複数のコンテンツプロバイダ106を伴うコンテンツ選択プロセスを走らせることができる。
【0062】
デジタルコンポーネントプロバイダデバイス106は、データ処理システム102による選択のために1つまたは複数のデジタルコンポーネントオブジェクトを提供することができる。(たとえば、デジタルコンポーネントセレクタ120を介して)データ処理システム102は、リソース割り当て、コンテンツスケジュール、最大入札単価、キーワード、およびコンテンツグループに関して指定されたその他の選択基準に一致するコンテンツ配置機会が利用可能になるときにデジタルコンポーネントオブジェクトを選択することができる。音声デジタルコンポーネント、オーディオデジタルコンポーネント、テキストデジタルコンポーネント、画像デジタルコンポーネント、動画デジタルコンポーネント、マルチメディアデジタルコンポーネント、またはデジタルコンポーネントリンクなどの異なる種類のデジタルコンポーネントオブジェクトが、コンテンツグループに含まれ得る。デジタルコンポーネントを選択すると、データ処理システム102は、コンピューティングデバイス104またはコンピューティングデバイス104のディスプレイデバイス上で提示またはレンダリングするためにデジタルコンポーネントオブジェクトを送信することができる。提示またはレンダリングは、ディスプレイデバイス上にデジタルコンポーネントを表示すること、またはコンピューティングデバイス104のスピーカによってデジタルコンポーネントを再生することを含み得る。データ処理システム102は、デジタルコンポーネントオブジェクトを提示するためにコンピューティングデバイス104、ローカルデジタルアシスタント134、またはコンピューティングデバイス104によって実行される第三者アプリケーションに命令を与えることができる。データ処理システム102は、オーディオ信号、音響波、またはビジュアル出力を生成するようにコンピューティングデバイス104、ディスプレイ144、またはコンピューティングデバイス104のオーディオドライバ142に命令することができる。たとえば、ローカルデジタルアシスタント134は、第三者アプリケーションがコンピューティングデバイス104上のセキュアな処理環境内で実行される間に、選択されたデジタルコンポーネントをオーディオ出力を介して提示することができる。別の例において、コンピューティングデバイス104上の
セキュアなコンピューティング環境内で実行される第三者アプリケーションが、選択されたデジタルコンポーネントオブジェクトを第三者アプリケーションのグラフィカルユーザインターフェースを介して表示することができる。さらに別の例においては、コンピューティングデバイス104上で実行される第三者アプリケーションが、選択されたデジタルコンポーネントをオーディオ出力を介して提示することができる。
【0063】
データ処理システム102は、たとえば、データパケットを使用して情報を受信および送信するように設計されたか、構成されたか、構築されたか、または動作可能であるインターフェースコンポーネント110を含み得る。インターフェース110は、ネットワークプロトコルなどの1つまたは複数のプロトコルを使用して情報を受信および送信することができる。インターフェース110は、ハードウェアインターフェース、ソフトウェアインターフェース、有線インターフェース、またはワイヤレスインターフェースを含み得る。インターフェース110は、あるフォーマットから別のフォーマットにデータを変換するかまたはフォーマットすることを容易にすることができる。たとえば、インターフェース110は、ソフトウェアコンポーネントなどの様々なコンポーネントの間で通信するための定義を含むアプリケーションプログラミングインターフェースを含み得る。
【0064】
データ処理システム102は、入力オーディオ信号をデータ処理システム102のインターフェース110に通信し、出力オーディオ信号またはビジュアル出力をレンダリングするようにクライアントコンピューティングデバイスのコンポーネントを駆動するためのローカルデジタルアシスタント134などの、クライアントコンピューティングデバイス104にインストールされたアプリケーション、スクリプト、またはプログラムを含み得る。データ処理システム102は、オーディオ入力信号(または入力オーディオ信号)を含むかまたは特定するデータパケット、デジタルファイル、またはその他の信号を受信することができる。コンピューティングデバイス104は、トランスデューサ140によってオーディオ信号を検出し、アナログ-デジタルコンバータによってアナログオーディオ信号をデジタルファイルに変換することができる。たとえば、オーディオドライバ142が、アナログ-デジタルコンバータコンポーネントを含み得る。場合によっては、プリプロセッサコンポーネント140が、オーディオ信号を、ネットワーク105を介してデータパケットによって送信され得るデジタルファイルに変換することができる。
【0065】
データ処理システム102のリモートデジタルアシスタント112は、コンピューティングデバイス104のセンサ138によって検出された入力オーディオ信号を含むデータパケットを受信するかまたは取得するためにNLPコンポーネント114を実行するかまたは走らせることができる。データパケットは、デジタルファイルを提供し得る。NLPコンポーネント114は、オーディオ信号を含むデジタルファイルまたはデータパケットを受信するかまたは取得し、オーディオ信号を解析することができる。たとえば、NLPコンポーネント114は、人とコンピュータとの間のインタラクションを提供することができる。NLPコンポーネント114は、自然言語を理解し、データ処理システム102が人間のまたは自然言語入力から意味を導出することを可能にするための技術を用いて構成され得る。NLPコンポーネント114は、統計的機械学習などの機械学習に基づく技術を含むかまたはそのような技術を用いて構成され得る。NLPコンポーネント114は、入力オーディオ信号を解析するために決定木、統計モデル、または確率モデルを利用することができる。NLPコンポーネント114は、たとえば、固有表現認識(たとえば、テキストのストリームが与えられたものとして、テキスト内のどのアイテムが人または場所などの適切な名前にマッピングされるか、およびそれぞれのそのような名前の種類が人、場所、または組織などのどれであるのかを決定すること)、自然言語生成(たとえば、コンピュータデータベースからの情報または意味的意図(semantic intent)を理解可能な人間の言語に変換すること)、自然言語理解(たとえば、テキストをコンピュータモジュールが操作することができる一階論理構造などのより整然とした表現に変換すること)、機械翻訳(たとえば、テキストをある人間の言語から別の人間の言語に自動的に翻訳すること)、形態素分割(たとえば、考慮されている言語の単語の形態または構造の複雑さに基づいて困難であり得る、単語を個々の形態素に分け、形態素のクラスを特定すること)、質問応答(たとえば、特定的であるかまたは自由であることが可能である人間の言語の質問に対する答えを決定すること)、意味処理(たとえば、特定された単語を同様の意味を有するその他の単語に関連付けるために、単語を特定し、その単語の
意味を符号化した後に行われる得る処理)などの機能を実行することができる。
【0066】
NLPコンポーネント114は、入力信号を(たとえば、データリポジトリ124内の)オーディオ波形の記憶された代表的な組と比較し、最も近い一致を選択することによってオーディオ入力信号を認識されたテキストに変換することができる。オーディオ波形の組は、データリポジトリ124、またはデータ処理システム102がアクセス可能なその他のデータベースに記憶され得る。代表的な波形が、ユーザの大きな組全体で生成され、それから、ユーザからの発話サンプルによって増強される可能性がある。オーディオ信号が認識されたテキストに変換された後、NLPコンポーネント114は、たとえば、ユーザ全体にわたって訓練することによってまたは手動で指定することによって、データ処理システム102がサーブすることができるアクションと関連付けられる単語にテキストをマッチングする。NLPコンポーネント114は、画像または動画入力をテキストまたはデジタルファイルに変換することができる。NLPコンポーネント114は、アクションを実行するか、要求を生成するか、またはデータ構造を選択もしくは特定するために画像または動画入力を処理、分析、または解釈することができる。
【0067】
オーディオ入力信号は、クライアントコンピューティングデバイス104のセンサ138またはトランスデューサ140(たとえば、マイクロフォン)によって検出され得る。トランスデューサ140、オーディオドライバ142、またはその他のコンポーネントを介して、クライアントコンピューティングデバイス104は、オーディオ入力信号を(たとえば、ネットワーク105を介して)データ処理システム102に与えることができ、データ処理システム102において、オーディオ入力信号は、(たとえば、インターフェース110によって)デジタルファイルまたはデジタルフォーマットとして受信され、NLPコンポーネント114に与えられるかまたはデータリポジトリ124に記憶され得る。場合によっては、データ処理システム102は、入力音響信号に加えてまたは入力音響信号の代わりに、画像または動画入力信号を受信し得る。データ処理システム102は、たとえば、画像または動画をデジタルファイルに変換するために画像または動画を認識するかまたは解釈するための画像解釈技術、コンピュータビジョン、機械学習エンジン、またはその他の技術を使用して画像または動画入力信号を処理することができる。1つまたは複数の画像解釈技術、コンピュータビジョン技術、機械学習技術は、集合的にイメージング技術と呼ばれ得る。データ処理システム102(たとえば、NLPコンポーネント114)は、オーディオ処理技術に加えてまたはオーディオ処理技術の代わりにイメージング技術を用いて構成され得る。
【0068】
NLPコンポーネント114は、入力オーディオ信号を取得することができる。入力オーディオ信号から、NLPコンポーネント114は、少なくとも1つの要求または要求に対応する少なくとも1つのトリガキーワードを特定することができる。要求は、入力オーディオ信号の意図または主題を示すことができる。トリガキーワードは、行われる可能性が高いアクションの種類を示すことができる。たとえば、NLPコンポーネント114は、入力オーディオ信号を解析して、夜に食事会に参加し、映画を見るために家を出る少なくとも1つの要求を特定し得る。トリガキーワードは、行われるアクションを示す少なくとも1つの単語、語句、語根もしくは部分的な単語、または派生語を含み得る。たとえば、入力オーディオ信号からのトリガキーワード「行く」または「~に行くために」は、輸送の必要性を示し得る。この例において、入力オーディオ信号(または特定された要求)は、輸送の意図を直接表さないが、トリガキーワードが、輸送が要求によって示される少なくとも1つのその他のアクションの補助的なアクションであることを示す。
【0069】
NLPコンポーネント114は、要求およびトリガキーワードを特定するか、決定するか、取り出すか、またはそれ以外の方法で取得するために入力オーディオ信号を解析することができる。たとえば、NLPコンポーネント114は、トリガキーワードまたは要求を特定するために入力オーディオ信号に意味処理技術を適用することができる。NLPコンポーネント114は、第1のトリガキーワードおよび第2のトリガキーワードなどの1つまたは複数のトリガキーワードを含むトリガ語句を特定するために入力オーディオ信号に意味処理技術を適用することができる。たとえば、入力オーディオ信号は、文章「退屈だ。何かやって楽しいことを教えて。」を含み得る。NLPコンポーネント114は、入力オーディオ信号がエンターテインメントの選択肢を特定する要求を含むと決定することができる。データ処理システム102は、第1の出力信号「ビデオゲームをするのはどうですか。」によって応答し得る。第2の入力オーディオ信号は、「いいね。何がいいかな。」であり得る。第2の出力オーディオ信号は、「ロールプレイングゲームか、レースゲームか、それともパズルゲームをするのはどうですか。」であり得る。第3の入力オーディオ信号は、「パズルゲームがしたい。」であり得る。第3の出力オーディオ信号は、「クロスワードパズルか数独はどうですか。」であり得る。数独は、論理に基づく組合せの数字の配置パズルを指し得る。第4の入力オーディオ信号は、「数独をしよう。」であり得る。NLPコンポーネント114は、第4の入力オーディオ信号がアプリケーション識別子および問い合わせまたは要求を含むと決定し得る。アプリケーション識別子は、アプリケーションへのリンクにマッピングされるアプリケーション識別子または名前を指し得る。NLPコンポーネント114は、アプリケーション識別子「数独」および問い合わせ「する」を特定するために文を含むデータパケットに意味処理技術またはその他の自然言語処理技術を適用することができる。データ処理システム102は、第4のオーディオ入力がアプリケーションを起動する結果となったと決定し、第1、第2、および第3のオーディオ入力および出力がアプリケーションを起動する結果となったオーディオ入力の前に発生した前のオーディオ入力であると決定することができる。
【0070】
NLPコンポーネント114は、アプリケーション識別子および問い合わせを特定するために入力オーディオ信号をフィルタリングすることができる。場合によっては、入力オーディオ信号は、問い合わせを含み得るが、アプリケーションのアプリケーション識別子または名前を含まない可能性がある。たとえば、入力オーディオ信号を運ぶデータパケットは、「It would be great if I could get help finding some good restaurants nearby」を含むことが可能であり、その場合、NLPコンポーネント114は、以下の通りの1つまたは複数の語、すなわち、「it」、「would」、「be」、「great」、「if」、「I」、「could」、「get」、または「help」をフィルタリングして取り除くことができる。これらの語をフィルタリングして取り除くことによって、NLPコンポーネント114は、「finding」、「good」、「restaurants」、「nearby」などの問い合わせまたはキーワードをより正確で信頼性高く特定し、これがレストラン検索アプリケーションを起動する要求であると決定する可能性がある。
【0071】
入力オーディオ信号は、所望のアプリケーションの識別子などのアプリケーション識別子を含み得る。入力オーディオ信号は、アプリケーションの一意の識別子、アプリケーションの名前、またはどのアプリケーションを起動するまたは呼び出すべきかに関するその他のインジケーションを含み得る。たとえば、入力オーディオ信号は、「衣類小売業者A」などのアプリケーションの名前を含み得る。アプリケーション識別子は、英数字の識別子であることが可能である。
【0072】
したがって、データ処理システム102は、コンピューティングデバイス104のセンサ138またはトランスデューサ140によって検出された音声コンテンツを運ぶ入力オーディオ信号に対応するデータパケットを受信することができる。入力オーディオ信号は、コンピューティングデバイス104のアナログ-デジタルコンバータ(たとえば、オーディオドライバ142)によってデジタルファイルに変換され得る。データ処理システム102は、ネットワーク105を介してデジタルファイルに対応するデータパケットを受信し、それから、アプリケーションを含むコンピュータプログラムを選択するためにデータパケットまたはデジタルファイルを解析することができる。たとえば、データ処理システム102は、コンピューティングデバイス104上に確立され、維持されるセキュアな処理環境内でコンピューティングデバイス104によって実行するためのアプリケーションを含むコンピュータプログラムをデータパケットまたはデジタルファイルに応じて選択するように設計され、構築されたリモートアプリケーションランチャ116を含み得る。
【0073】
リモートアプリケーションランチャ116(またはリモートアプリランチャ)は、デジタルファイルまたは前のオーディオ入力内のキーワード、トークン、語、概念、またはその他の情報を特定することができる。リモートアプリケーションランチャ116は、自然言語プロセッサコンポーネント114を利用してデジタルファイル内のキーワード、トークン、語、概念、またはその他の情報を特定することができる。自然言語プロセッサコンポーネント114は、解析されたキーワード、トークン、語、または概念をリモートアプリケーションランチャ116に提供することができる。リモートアプリケーションランチャ116は、デジタルファイルまたはオーディオ入力のキーワードまたは概念に応じたアプリケーションを選択することができる。リモートアプリケーションランチャ116は、入力オーディオ信号内で与えられたアプリケーション識別子にマッピングされるアプリケーションを選択することができる。
【0074】
(たとえば、NLPコンポーネント114またはリモートアプリケーションランチャ116によって)データ処理システム102は、入力オーディオ信号がアプリケーション識別子「衣類小売業者A」を含むと決定し得る。NLPコンポーネント114またはリモートアプリケーションランチャ116は、入力オーディオ信号内の問い合わせをさらに特定し得る。NLPコンポーネント114は、アプリケーション識別子をリモートアプリケーションランチャ116に提供することができる。リモートアプリケーションランチャ116は、アプリケーション識別子「衣類小売業者A」にマッピングされるアプリケーションを特定するためにディープリンクデータ構造126内の検索を実行し得る。場合によっては、入力オーディオ信号は、アプリケーション識別子を含まない可能性があるが、問い合わせに対する応答を提供し得るアプリケーションの種類を示す問い合わせを含む可能性がある。たとえば、ディープリンクデータ構造126は、各アプリケーションに関して、アプリケーションが提供することができる品物、サービス、または機能(たとえば、レストラン検索、ビデオゲーム、衣類)を説明するキーワードまたはその他の情報を含み得る。リモートアプリケーションランチャ116は、ディープリンクデータ構造126を介して決定された識別子を使用して対応するアプリケーションまたはそのインスタンスを起動するか、開始するか、実行するか、またはそうでなければアクティブ化するかもしくは呼び出すことができる。場合によっては、識別子は、ファイル名もしくはファイルパス、ポインタ、ウェブアドレス、インターネットプロトコルアドレス、ユニフォームリソースロケータ、ディープリンク、またはアプリケーションに関するその他の識別情報を含むかまたはそれに関連付けられ得る。たとえば、データ処理システム102は、衣類小売業者アプリケーションが第三者アプリケーション開発者デバイス108によって提供されると決定し、直接かまたはデータ処理システム102を介して(たとえば、リモートアプリケーションランチャ116を介して)かのどちらかでコンピューティングデバイス104上で実行するために衣類小売業者アプリケーションを提供するように第三者アプリケーション開発者デバイス108に命令することができる。したがって、データ処理システム102(
またはリモートデジタルアシスタント112またはリモートアプリランチャ116)は、データベースの検索によって第三者アプリケーションのディープリンクを特定し、ディープリンクを使用して第三者アプリケーションを呼び出すことができる。
【0075】
データ処理システム102は、入力オーディオ信号からコンピューティングデバイス104のために呼び出すアプリケーションを決定することができる。データ処理システム102は、アプリケーションまたはアプリケーションのインスタンスを起動するか、実行するか、または呼び出すためにコンピューティングデバイス104(たとえば、ローカルデジタルアシスタント134)に命令またはコマンドを与えることができる。場合によっては、アプリケーションを起動するかまたはアプリケーションの起動もしくは実行を引き起こす前に、データ処理システム102は、コンピューティングデバイス104がアプリケーションにアクセスすることを認可されるかどうかを決定し得る。(たとえば、リモートアプリケーションランチャ116を介して)データ処理システム102は、コンピューティングデバイス104がアプリケーションを含むコンピュータプログラムにアクセスすることを認可されるかどうかを決定するために、コンピューティングデバイス104の識別子を用いてデータリポジトリ124(たとえば、ディープリンクデータ構造126)内の検索を実行することができる。認可は、サブスクリプション、計画、制約、リソースの要件、バージョン管理、またはデバイスの機能に基づくことが可能である。たとえば、データ処理システム102は、コンピューティングデバイス104がオペレーティングシステムの予め定義されたバージョンを用いて構成される場合にコンピューティングデバイス104にアプリケーションへのアクセスを許可し得る。別の例において、データ処理システム102は、コンピューティングデバイス104が有効なアカウントまたはプロファイルに関連付けられる場合にコンピューティングデバイス104にアプリケーションへのアクセスを許可し得る。場合によっては、コンピューティングデバイス102がアプリケーションにアクセスすることを認可されないとデータ処理システム102が決定する場合、データ処理システム102は、スレッドを終了するか、ユーザに促すか、またはコンピューティングデバイス104がアクセスすることを認可される別のアプリケーションを特定することができる。したがって、データ処理システム102は、コンピューティングデバイス104がアプリケーションにアクセスすることを認可されるという決定に応じてアプリ
ケーションを選択することができる。
【0076】
アプリケーションを含むコンピュータプログラムは、アプリケーションがコンピューティングデバイスのコンピューティングセキュリティコンポーネント136によって維持されるかまたは確立されるコンピューティングデバイス104上のセキュアな処理環境内で実行され得る。場合によっては、アプリケーションは、部分的にコンピューティングデバイス104上で実行され、部分的にデータ処理システム102上で実行されることが可能である。部分的な実行は、追加的な機能を実行するためにサーバ、データ処理システム102、または第三者アプリケーション開発者デバイス108上で実行されるバックエンドコンポーネントも含みながら、特定の処理を実行する可能性があり、コンピューティングデバイス104によって実行されるフロントエンドユーザインターフェースを含む可能性があるアプリケーションを指し得る。したがって、データ処理システム102は、セキュアな処理環境内で第三者アプリケーションを起動するようにコンピューティングデバイスに命令することができ、セキュアな処理環境は、デジタルアシスタントコンポーネントによって処理された前のオーディオ入力へのアクセスを防止するように最初に構成され得る。前のオーディオ入力へのアクセスを防止するように最初に構成されることは、セキュアな処理環境自体が前のオーディオ入力を記憶するメモリの異なる部分にアクセスすることができないロックされたメモリに置かれることを指し得る。前のオーディオ入力へのアクセスを防止するように最初に構成されることは、セキュアな処理環境自体が前のオーディオ入力にアクセスするか、前のオーディオ入力を要求するか、または前のオーディオ入力を取り出すアクセス権または特権を持たないことを指し得る。サンドボックス環境などのセキュアな処理環境は、コンピューティングデバイス104の製造業者、コンピューティングデバイス104上で実行されるオペレーティングシステムの製造業者、コンピューティングデバイス104の管理者、またはコンピューティングデバイス104のユーザによって最初に構成され得る。しかし、データ処理システム102は、アプリケーションを起動すると、前のオーディオ入力のインジケーションを入力として渡すかまたは転送するように構成されることが可能であり、それによって、前のオーディオ入力のインジケーションにアクセスするように最初に構成されないセキュアな処理環境内で実行されるアプリケーションに前のオーディオ入力のインジケーションを渡すかまたは転送する。
【0077】
第三者アプリケーションを呼び出すことを決定することに応じて第三者アプリケーションに前のオーディオ入力のインジケーションを提供するために、データ処理システム102は、オーディオ入力を含むパッケージングされたデータオブジェクトまたはオーディオ入力を含むパッケージングされたデータオブジェクトの識別子を生成すると決定し得る。たとえば、リモートアプリランチャ116がアプリケーションを呼び出すか、起動するか、またはインスタンス化するか、アプリケーションにナビゲーションするか、アプリケーションを開くか、またはそれ以外の方法で利用すると決定することに応じて、データ処理システム102は、アプリケーションの呼び出しをもたらしたオーディオ入力、問い合わせ、応答、会話、またはその他のコンテキスト、ならびにアプリケーションを呼び出す決定につながったコンテキストを取得するか、記憶するか、示すか、パッケージングするか、またはそうでなければ特定すると決定し得る。データ処理システム102は、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力を含むパッケージングされたデータオブジェクトを、第三者アプリケーションを呼び出す決定に応じて生成するように設計され、構築されたオーディオパッケージングコンポーネント118を含むか、オーディオパッケージングコンポーネント118とインターフェースを取るか、またはオーディオパッケージングコンポーネント118にアクセスすることができる。オーディオパッケージングコンポーネント118は、リモートデジタルアシスタント112のコンポーネントであるか、またはデータ処理システム102の1つもしくは複数のプロセッサもしくはサーバによって実行される別のコンポーネントもしくはモジュールであることが可能である。
【0078】
場合によっては、第三者アプリケーションは、デジタルアシスタント(たとえば、リモートデジタルアシスタント112またはローカルデジタルアシスタントコンポーネント134)が第三者アプリケーションを選択するかまたは起動する結果となったコンテキストまたは会話に関連する情報に第三者アプリケーションがアクセスするかまたはそのような情報を取得することを妨げるまたは防止するセキュアな処理環境またはその他の処理環境もしくは構成内で起動されるかまたは実行され得る。たとえば、第三者アプリケーションは、コンピューティングデバイス104の遠隔にある1つまたは複数のサーバ上で実行され得る。第三者アプリケーションは、データ処理システム102上で実行され得る。第三者アプリケーションは、第三者アプリケーション開発者デバイス108に関連するサーバなどの、コンピューティングデバイス104およびデータ処理システム102の遠隔にある1つまたは複数のサーバ上で実行され得る。第三者アプリケーションは、サービスとしてのソフトウェアプラットフォーム、ウェブベースのアプリケーション、またはクラウドベースのアプリケーション上で実行されるように構成され得る。コンピューティングデバイス104またはデータ処理システム102のうちの少なくとも1つの遠隔にある1つまたは複数のサーバまたはデータセンタ上で実行される第三者アプリケーションは、デジタルアシスタント(たとえば、リモートデジタルアシスタント112またはローカルデジタルアシスタントコンポーネント134)が第三者アプリケーションを選択するかまたは起動する結果となったコンテキストまたは会話に関連する情報にアクセスするかまたはそのような情報を取得することを妨げられるかまたは防止され得る。
【0079】
このコンテキストを提供するために、データ処理システム102は、第三者アプリケーションを起動するかまたは呼び出す決定の前に発生した前のオーディオ入力または会話についての情報を提供し得る。オーディオパッケージングコンポーネント118は、前のオーディオ入力に対応するパッケージングされたデータオブジェクトまたは一意の識別子などの前のオーディオ入力のインジケーションを生成し得る。たとえば、オーディオパッケージングコンポーネント118は、構造化された会話を含むパッケージングされたデータオブジェクトを作成し、シリアル化された不透明トークンを含むパッケージングされたデータオブジェクトを生成し、前のオーディオ入力内のイベントを示すイベント識別子を含むパッケージングされたデータオブジェクトを生成し、問い合わせおよび問い合わせに対する応答から形成されたイベント識別子を含むパッケージングされたデータオブジェクトを生成することができる。
【0080】
前のオーディオ入力は、第三者アプリケーションの起動の前にコンピューティングデバイス104のマイクロフォンによって検出されたオーディオ入力を指し得る。前のオーディオ入力は、ローカルデジタルアシスタント134またはリモートデジタルアシスタント112によって処理されたオーディオ入力を指し得る。前のオーディオ入力は、ローカルデジタルアシスタント134またはリモートデジタルアシスタント112が処理するか、解析するか、またはそうでなければ使用することをユーザが認可または許可するオーディオ入力を指し得る。前のオーディオ入力は、第三者アプリケーションを起動する前の所定の時間間隔の間に発生したオーディオ入力を指し得る。時間間隔は、固定の時間間隔または動的な時間間隔であることが可能である。たとえば、固定の時間間隔は、15秒、30秒、45秒、1分、2分、3分、4分、5分、10分以上であることが可能である。動的な時間間隔は、1つまたは複数の要因に基づいて動的に設定または決定される時間間隔であることが可能である。要因は、たとえば、時刻、位置、アプリケーションの種類、オーディオ入力に関連するキーワード、オーディオ入力の周波数、1秒あたりに発話された単語、文の数、垂直位置、話題、またはその他の要因を含み得る。たとえば、起動されるアプリケーションが衣類または衣料品に関する場合、データ処理システム102は、購入する家を見つけるために起動される可能性があるアプリケーションに比べて短い時間間隔を設定し得る。
【0081】
場合によっては、継続時間または時間間隔は、会話セッションに基づいて設定され得る。データ処理システム102は、オーディオ入力の1つまたは複数の特徴に基づいて会話セッションを決定または特定することができる。たとえば、会話セッションは、ユーザが話題についてデジタルアシスタント(たとえば、134または112)と会話することを指し得る。会話は、1つまたは複数の話題を指し得るが、互いに関連するかまたは互いに論理的に関連し、1つの話題から別の話題へと進むオーディオ入力のシーケンスであることが可能である。会話セッションは、会話を開始した最初の問い合わせに関連するオーディオ入力を指し得る。
【0082】
たとえば、データ処理システム102は、問い合わせ「退屈だ。何をすればいいんだ。」が会話セッションの始まりまたは開始であると決定し得る。データ処理システム102は、この第1の入力オーディオ信号がエンターテインメントの選択肢を特定する要求を含むと決定することができる。データ処理システム102は、第1の出力信号「ビデオゲームをするのはどうですか。」によって応答し得る。第2の入力オーディオ信号は、「いいね。何がいいかな。」であり得る。第2の出力オーディオ信号は、「ロールプレイングゲームか、レースゲームか、それともパズルゲームをするのはどうですか。」であり得る。第3の入力オーディオ信号は、「パズルゲームがしたい。」であり得る。第3の出力オーディオ信号は、「クロスワードパズルか数独はどうですか。」であり得る。数独は、論理に基づく組合せの数字の配置パズルを指し得る。第4の入力オーディオ信号は、「数独をしよう。」であり得る。この最初の問い合わせに続く、アプリケーションが起動される結果となるオーディオ入力および応答は、同じ会話に関連し得る。データ処理システム102は、会話セッションの始めからアプリケーションが起動されるまでのオーディオ入力および応答(たとえば、第1の入力オーディオ、第1の出力オーディオ、第2の入力オーディオ、第2の出力オーディオ、第3の入力オーディオ、第3の出力オーディオ、第4の入力オーディオ、および第5の入力オーディオ)が結果として得られるアプリケーションを起動する決定の周辺のコンテキストを与えると決定し得る。したがって、データ処理システム102は、入力および出力応答を前のオーディオ入力として特定し、第三者アプリケーションが起動されると、第三者アプリケーションにこの前のオーディオ入力のインジケーションを提供するように構成され得る。
【0083】
パッケージングされたデータオブジェクトが、前のオーディオ入力または会話に対応する1つまたは複数のコンポーネントを含み得る。パッケージングされたデータオブジェクトのコンポーネントは、たとえば、1)テキストの形態の実際のシリアル化された会話、2)オブジェクト指向の構造化された会話、または3)会話の要約のうちの1つまたは複数を含み得る。
【0084】
パッケージングされたデータオブジェクトは、たとえば、シリアル化されたフォーマットの実際の会話(たとえば、第1の入力オーディオに対応するテキスト、第1の出力オーディオに対応するテキスト、第2の入力オーディオに対応するテキスト、第2の出力オーディオに対応するテキスト、第3の入力オーディオに対応するテキスト、および第3の出力オーディオに対応するテキスト)を含み得る。場合によっては、パッケージングされたデータオブジェクトは、入力オーディオに対応するテキストを含むが、出力オーディオに対応するテキストを除外し得る。たとえば、帯域幅、データファイルサイズ、メモリ、またはその他の処理もしくはコンピュータの利用を削減するために、データ処理システム102またはローカルデジタルアシスタント134は、パッケージングされたデータオブジェクトが第1の入力オーディオ、第2の入力オーディオ、および第3の入力オーディオ(またはこれらのテキスト)のみを含むようにパッケージングされたデータオブジェクト内のデジタルアシスタント(たとえば、112または134)の出力をフィルタリングして取り除くかまたは除外することができる。
【0085】
場合によっては、データ処理システム102は、入力オーディオ出力オーディオが発生したシーケンスまたは順序(たとえば、第1の入力、それに続く第1の出力、それに続く第2の入力、それに続く第2の出力など)のインジケーションを含めるようにパッケージングされたデータオブジェクトの実際の会話コンポーネントを生成し得る。データ処理システム102は、句読点などの会話のテキストの構造を含めるように実際の会話コンポーネントを生成し得る。データ処理システム102は、入力オーディオおよび出力オーディオに関連するタイムスタンプを含めるように実際の会話コンポーネントを生成し得る。データ処理システム102は、いくつかの単語が語句を作り、いくつかの語句が文を作り、文が考えを伝えることができるように、言語の構造を含めるようにまたは言語の構造に基づくように実際の会話コンポーネントを生成し得る。データ処理システム102は、語彙の曖昧さ(たとえば、単語が複数の意味を持つ)、統語上の曖昧さ(たとえば、文が複数の解析木を持つ)、意味の曖昧さ(たとえば、文が複数の意味を持つ)、または前方照応の曖昧さ(たとえば、既に述べられた語句もしくは単語が今は異なる意味を持つ)のうちの1つまたは複数などの曖昧さなしに実際の会話コンポーネントを生成し得る。場合によっては、パッケージングされたデータオブジェクトの実際の会話コンポーネントを生成するために、データ処理システム102は、会話の一部またはチャンクを、データ処理システム102またはその他のコンピュータプログラムもしくはコンポーネントによる操作を容易にする一階論理構造などの整然とした表現に変換することができる。
【0086】
データ処理システム102は、オブジェクト指向の構造などの構造化されたフォーマットで会話の側面を含めるようにパッケージングされたデータオブジェクトの構造化されたコンポーネントを生成し得る。会話の構造化されたコンポーネントは、会話の中で示された製品またはサービスなどの関心のある対象の一意の識別子を含むか、指すか、または示し得る。オブジェクト指向の構造は、たとえば、靴、または靴にマッピングされる一意の英数字識別子である可能性があるABC_123などの、会話または前のオーディオ入力の中で述べられた製品に対応するキーワードまたは一意の識別子を含み得る。したがって、場合によっては、会話またはパッケージングされたデータオブジェクトの構造化されたコンポーネントは、製品(たとえば、ビデオゲームもしくは特定のビデオゲーム)またはサービス(たとえば、ライドシェアリングサービスもしくは食料雑貨配達サービス)などの会話の中の所望のエンティティのみを含み得る。構造化された会話の中で示されたオブジェクトは、データ処理システム102がさらに下流の処理を実行するように構成される可能性がある製品またはサービスなどの関心のある所定のオブジェクトを含み得る。データ処理システム102がさらに下流の処理を実行するように構成されるパッケージングされたデータオブジェクトの構造化されたコンポーネントにオブジェクトを含めることのみによって、データ処理システム102は、データ処理システム102が処理するように構成されないオブジェクトをデータ処理システム102が解析または処理しようと試みることを防止することによって、パッケージングされたデータオブジェクトのファイルサイズを削減し、パッケージングされたデータオブジェクトを送信することに関連する帯域幅を削減し、下流の処理または誤りを削減することができる。
【0087】
場合によっては、パッケージングされたデータオブジェクトの構造化されたコンポーネントは、前のオーディオ入力内のイベントを示すイベント識別子を含み得る。イベント識別子は、問い合わせおよび問い合わせに対する応答から形成され得る。イベント識別子は、入力された問い合わせ、出力された応答、発話行為(たとえば、イエスかノーで答える質問、内容の質問、談話、または主張)、文の間の関係(たとえば、詳述、説明、または対比)などの会話内のイベントの種類に関して確立され得る。
【0088】
データ処理システム102は、要約コンポーネントを含めるようにパッケージングされたデータオブジェクトを生成し得る。要約コンポーネントは、たとえば、会話に関連する話題の情報または垂直情報(vertical information)を提供することができる。要約は、会話に関連するキーワードまたはメタデータを含み得る。データ処理システム102は、意味解析技術または自然言語処理技術を使用して要約を生成することができる。要約は、たとえば、エンターテインメントまたはゲームなどの起動されるアプリケーションに関連するカテゴリを示し得る。要約は、ユーザがエンターテインメントを求めているなど、会話が開始された理由を含むかまたは示し得る。したがって、データ処理システム102は、1つまたは複数のフォーマットで会話またはその側面を伝える1つまたは複数のフィールド、コンポーネント、または構造を含めるようにパッケージングされたデータオブジェクトを生成し得る。
【0089】
場合によっては、(たとえば、ローカルデジタルアシスタント134を介して)データ処理システム102は、第三者アプリケーションがパッケージングされたデータオブジェクトを解析もしくは処理またはそうでなければパッケージングされたデータオブジェクトの内容を特定もしくは利用し得ないようにパッケージングされたデータオブジェクトを構成またはフォーマットすることができる。たとえば、データ処理システム102が、シリアル化された不透明トークンを含めるようにパッケージングされたデータオブジェクトを生成し得るか、またはパッケージングされたデータオブジェクトが、シリアル化された不透明トークンであるかまたはシリアル化された不透明トークンを含み得る。シリアル化された不透明トークンは、第三者アプリケーションが前のオーディオ入力を解析し得ず、前のオーディオ入力を解析することができる必要がないように前のオーディオ入力のインジケーションを第三者アプリケーションに渡すためのフォーマットを指し得る。たとえば、トークンは、パッケージングされたデータオブジェクトであることが可能であり、トークンをシリアル化することは、複数のスレッドまたはアプリケーションがトークンにアクセスすることができる可能性があるようにトークンをフォーマットするかまたは構成することを指し得る。トークンは、より低いレベルのサブシステムがやはり同じトークンを保持している可能性がある各エンティティを知っていることを必要とせずに、マイクロプロセッサセーフコード(multiprocessor-safe code)であるトークンが記述され得るフォーマットでロックされることが可能である。
【0090】
データ処理システム102は、第三者アプリケーションによって解析されるか、開かれるか、分析されるか、またはそれ以外の方法で処理され得ない暗号化されたデータオブジェクト、アイテム、またはファイルとして前のオーディオ入力を提供することができる。データ処理システム102は、暗号化技術を用いて構成され、第三者アプリケーションに渡すか、転送するか、または提供するためにローカルデジタルアシスタント134に前のオーディオ入力を提供する前に前のオーディオ入力に暗号化技術を適用することができる。第三者アプリケーションは、前のオーディオ入力を復号するために復号技術または鍵を用いて構成されない可能性がある。その代わりに、第三者アプリケーションは、暗号化された前のオーディオ入力を、前のオーディオ入力を復号し、解析することを認可されるか、許可されるか、または前のオーディオ入力を復号し、解析するように構成される意図されたエンドポイントに転送する可能性がある。
【0091】
パッケージングされたデータオブジェクトは、データ処理システム102、リモートデジタルアシスタント112、またはローカルデジタルアシスタント134によって生成され得る。場合によっては、パッケージングされたデータオブジェクトは、ローカルデジタルアシスタント134がリモートデジタルアシスタント112とインタラクションすることによって生成され得る。場合によっては、パッケージングされたデータオブジェクトは、リモートデジタルアシスタント112がローカルデジタルアシスタントコンポーネント134とインタラクションすることによって生成され得る。パッケージングされたデータオブジェクトは、コンピューティングデバイス104のローカルに、または遠隔のデータ処理システム102上のデータリポジトリ124のパッケージングされたデータのデータ構造128に記憶され得る。場合によっては、コンピューティングデバイス104の処理負荷を削減するために、データ処理システム102は、パッケージングされたデータオブジェクトを生成し、データリポジトリ内のパッケージングされたデータオブジェクト128を記憶すると決定し得る。
【0092】
場合によっては、オーディオパッケージングコンポーネント118は、パッケージングされたデータのデータ構造128に生成されたパッケージングされたデータオブジェクトを記憶し得る。オーディオパッケージングコンポーネント118は、パッケージングされたデータオブジェクトに一意の識別子(たとえば、パッケージ識別子またはパッケージIDまたは会話識別子または会話ID)を割り振ることができる。たとえば、データ処理システム102は、ハッシュ関数に基づいて一意の識別子を生成し、一意の識別子をパッケージングされたデータオブジェクトに割り振ることができる。データ処理システム102は、対応するパッケージングされたデータオブジェクトへの一意の識別子のマッピングをテーブルに記憶することができる。したがって、データ処理システムは、第三者アプリケーションを呼び出す決定に応じて、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力(たとえば、パッケージングされたデータオブジェクト)に対応する一意の識別子を生成し得る。
【0093】
場合によっては、データ処理システム102は、前のオーディオ入力に一意の識別子を割り振り、前のオーディオ入力をデータリポジトリ124に記憶することができる。データ処理システム102は、前のオーディオ入力をイベント識別子、構造化された会話、オブジェクト識別子、またはパッケージングされたデータオブジェクトに変換することができる。データ処理システム102は、任意のフォーマットで前のオーディオ入力に一意の識別子を割り振り、一意の識別子および前のオーディオ入力をデータリポジトリ124に記憶することができる。
【0094】
データ処理システム102は、パッケージングされたデータオブジェクトまたは一意の識別子をコンピューティングデバイス104に転送することができる。データ処理システム102は、コンピューティングデバイス上のセキュアな処理環境内で実行するためにデジタルアシスタントコンポーネントによって呼び出される第三者アプリケーションにパッケージングされたデータオブジェクトまたは一意の識別子を転送することができる。データ処理システム102は、第三者アプリケーションにパッケージングされたデータオブジェクトまたは一意の識別子をデジタルコンポーネントセレクタ120に送信させるために第三者アプリケーションにパッケージングされたデータオブジェクトまたは一意の識別子を提供することができる。
【0095】
場合によっては、ローカルデジタルアシスタント134が、セキュアな処理環境内でデータ転送を容易にするための1つまたは複数の機能を実行することができる。たとえば、コンピューティングデバイス104が、コンピューティングセキュリティコンポーネント136を介して、コンピューティングデバイス104のメモリの少なくとも一部においてセキュアな処理環境を管理するかまたは確立することができる。ローカルデジタルアシスタント134(またはローカルデジタルアシスタントコンポーネント)は、通信チャネル(たとえば、ネットワーク105、またはハンドシェークプロトコルまたは資格証明(credentialing)によって確立されたセキュアなチャネル)を介してリモートデジタルアシスタント112と通信していることができる。ローカルデジタルアシスタント134は、コンピューティングデバイス104のマイクロフォン(たとえば、センサ138)によって検出されたオーディオ入力を特定することができる。ローカルデジタルアシスタント134は、オーディオ入力に基づいて、コンピューティングデバイス上で第三者アプリケーションを呼び出すことができる。場合によっては、ローカルデジタルアシスタント134は、データ処理システム102にオーディオ入力を送信し、それから、第三者アプリケーションを呼び出すためのデータ処理システム102(たとえば、リモートアプリランチャ116)からの命令またはどの第三者アプリケーションを呼び出すべきかを受信し得る。ローカルデジタルアシスタント134は、データ処理システム102からの命令またはコマンドを受信することに応じて、セキュアな処理環境内で第三者アプリケーションを呼び出すことができる。場合によっては、コンピューティングセキュリティコンポーネント136は、第三者アプリケーションを呼び出すためのインジケーションを受信することに応じてまたは受信した後にセキュアな処理環境を確立するか、開始するか、または生成することができる。ローカルデジタルアシスタント134は、第三者アプリケーションの呼び出しに応じて、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力のインジケーションを取得することができる。ローカルデジタルアシスタント134は、コン
ピューティングデバイス104のメモリからまたはデータ処理システム102から前のオーディオ入力のインジケーションを受信し得る。前のオーディオ入力のインジケーションは、パッケージングされたデータオブジェクト、データリポジトリ124に記憶されたパッケージングされたデータオブジェクトに対応する一意の識別子、またはデータリポジトリ124に記憶された前のオーディオ入力に対応する一意の識別子を含むかまたは指し得る。ローカルデジタルアシスタント134は、前のオーディオ入力のインジケーションを第三者アプリケーションに転送することができる。ローカルデジタルアシスタント134は、第三者アプリケーションを起動すると、前のオーディオ入力のインジケーションを転送することができる。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、前のオーディオ入力のインジケーションに基づいてリアルタイムのコンテンツ選択プロセスを実行するためにデジタルコンポーネントセレクタ120に前のオーディオ入力のインジケーションを送信するように構成され得る。
【0096】
第三者アプリケーションは、コンテンツを要求すると決定し得る。第三者アプリケーションは、コンテンツ要求をデジタルコンポーネントセレクタ120に送信し得る。デジタルコンポーネントセレクタ120は、データ処理システム102の一部であるかまたはデータ処理システム102と別れていることが可能である。第三者アプリケーションは、コンテンツ要求と一緒にパッケージングされたデータオブジェクトまたは一意の識別子を含めることができる。デジタルコンポーネントセレクタ120は、コンテンツ要求およびパッケージングされたデータオブジェクトまたは一意の識別子を受信し得る。デジタルコンポーネントセレクタ120が一意の識別子を受信する場合、デジタルコンポーネントセレクタ120は、一意の識別子に対応するパッケージングされたデータオブジェクト(または前のオーディオ入力)をデータリポジトリ124から取り出すかまたは要求することができる。データ処理システム102は、第三者アプリケーションから受信された一意の識別子を使用して前のオーディオ入力またはパッケージングされたデータオブジェクトを特定することができる。データ処理システム102は、デジタルコンポーネントセレクタ120に前のオーディオ入力(またはパッケージングされたデータオブジェクト)をリアルタイムのコンテンツ選択プロセスのための入力として提供することができる。デジタルコンポーネントセレクタ120は、パッケージングされたデータオブジェクトを使用して、パッケージングされたデータオブジェクトに基づいてリアルタイムのデジタルコンポーネント選択プロセスを実行することができる。デジタルコンポーネントセレクタ120は、パッケージングされたデータオブジェクトに基づいてデジタルコンポーネントを選択することができる。
【0097】
場合によっては、一意の識別子は、実際の会話ではなく会話に関連するキーワードまたは話題にマッピングされ得る。たとえば、パッケージングされたデータオブジェクトは、会話に関連する1つまたは複数のキーワードまたは意味的話題(semantic topic)を含み得る。実際の会話または構造化された会話を記憶または提供するのではなく、データ処理システム102は、意味的話題、概念、または1つもしくは複数のキーワードを含むパッケージングされたデータオブジェクトを生成することができる。データ処理システム102は、このパッケージングされたデータオブジェクトに一意の識別子を割り振り、一意の識別子をローカルデジタルアシスタントに渡すことができる。データ処理システム102は、このパッケージングされたデータオブジェクトをデジタルコンポーネント選択のためにデジタルセレクタコンポーネント120に提供することもできる。
【0098】
リアルタイムのデジタルコンポーネント選択プロセスは、第三者コンテンツプロバイダ106によって提供された(スポンサー付きデジタルコンポーネントオブジェクトを含む可能性がある)デジタルコンポーネントオブジェクトを選択することを指すかまたは含み得る。リアルタイムのコンテンツ選択プロセスは、複数のコンテンツプロバイダによって提供されたデジタルコンポーネントがコンピューティングデバイス104に提供する1つまたは複数のデジタルコンポーネントを選択するためにパッケージングされたデータオブジェクトに基づいて解析されるか、処理されるか、重み付けされるか、またはマッチングされるサービスを含み得る。デジタルコンポーネントセレクタ120は、コンテンツ選択プロセスをリアルタイムで実行することができる。コンテンツ選択プロセスをリアルタイムで実行することは、クライアントコンピューティングデバイス104を介して受信されたコンテンツの要求に応じてコンテンツ選択プロセスを実行することを指し得る。リアルタイムのコンテンツ選択プロセスは、要求を受信する時間間隔(たとえば、5秒、10秒、20秒、30秒、1分、2分、3分、5分、10分、または20分)以内に実行される(たとえば、開始されるかまたは完了される)ことが可能である。リアルタイムのコンテンツ選択プロセスは、クライアントコンピューティングデバイス104との通信セッション中に、または通信セッションが終了された後にある時間間隔以内に実行され得る。
【0099】
たとえば、デジタルコンポーネントセレクタ120は、パッケージングされたデータオブジェクトに基づいてデジタルコンポーネントオブジェクトを選択するように設計されるか、構築されるか、構成されるか、または動作可能であり得る。デジタルコンポーネントセレクタ120は、画像処理技術、文字認識技術、自然言語処理技術、またはデータベース検索を使用して候補デジタルコンポーネントの音声、オーディオ、語、文字、テキスト、記号、または画像を特定するか、分析するか、または認識することができる。候補デジタルコンポーネントは、候補デジタルコンポーネントの主題を示すメタデータを含むことが可能であり、その場合、デジタルコンポーネントセレクタ120は、候補デジタルコンポーネントの主題がパッケージングされたデータオブジェクトに対応するかどうかを決定するためにメタデータを処理することができる。
【0100】
デジタルコンポーネントプロバイダデバイス106は、デジタルコンポーネントを含むコンテンツキャンペーンをセットアップするときに追加的なインジケータを提供し得る。デジタルコンポーネントプロバイダデバイス106は、候補デジタルコンポーネントについての情報を使用して検索を実行することによってデジタルコンポーネントセレクタ120が特定し得るコンテンツキャンペーンまたはコンテンツグループレベルの情報を提供することができる。たとえば、候補デジタルコンポーネントは、コンテンツグループ、コンテンツキャンペーン、またはコンテンツプロバイダにマッピングされ得る一意の識別子を含む可能性がある。デジタルコンポーネントセレクタ120は、データリポジトリ124内のコンテンツキャンペーンデータ構造に記憶された情報に基づいてデジタルコンポーネントプロバイダデバイス106についての情報を決定することができる。
【0101】
データ処理システム102は、コンピューティングデバイス104を介して提供するためのコンテンツの要求を受信し得る。要求は、パッケージングされたデータオブジェクト、デバイスの種類、または位置などの要求の選択基準を含み得る。
【0102】
要求に応じて、データ処理システム102は、データリポジトリ124(たとえば、コンテンツデータ132)、またはデジタルコンポーネントプロバイダデバイス106に関連するデータベースからデジタルコンポーネントオブジェクトを選択し、コンピューティングデバイス104によって提示するためのデジタルコンポーネントをネットワーク105を介して提供することができる。デジタルコンポーネントオブジェクトは、第三者アプリケーション開発者デバイス108と異なるデジタルコンポーネントプロバイダデバイス106によって提供され得る。コンピューティングデバイス104は、デジタルコンポーネントオブジェクトとインタラクションすることができる。コンピューティングデバイス104は、デジタルコンポーネントに対するオーディオ応答を受信することができる。コンピューティングデバイス104は、コンピューティングデバイス104がデジタルコンポーネントプロバイダデバイス106を特定するか、デジタルコンポーネントプロバイダデバイス106にサービスを要求するか、サービスを実行するようにデジタルコンポーネントプロバイダデバイス106に命令するか、デジタルコンポーネントプロバイダデバイス106に情報を送信するか、またはそうでなければデジタルコンポーネントプロバイダデバイス106に関連する品物もしくはサービスを特定することを引き起こすかまたは可能にするデジタルコンポーネントオブジェクトに関連するハイパーリンクまたはその他のボタンを選択するためのインジケーションを受信し得る。
【0103】
デジタルコンポーネントセレクタ120は、テキストツースピーチシステムによって処理され得るかまたはディスプレイを介して提示可能であり得るテキスト、文字列、または文字を含むデジタルコンポーネントを選択することができる。デジタルコンポーネントセレクタ120は、パラメータ駆動式のテキストツースピーチ技術のために構成されたパラメータ表現されたフォーマットであるデジタルコンポーネントを選択し得る。場合によっては、ダイアログデータ構造が、SSMLフォーマットであるかまたは音声パラメータを用いて構成され得る。データ処理システム102は、デジタルコンポーネントがネイティブ音声、画像、または音響指紋によってコンピューティングデバイス104のユーザに提示され得るように、デジタルコンポーネントを要求したアプリケーションの音声パラメータに一致するようにデジタルコンポーネントの音声パラメータを構成することができる(たとえば、デジタルコンポーネントは、デジタルコンポーネントを用いないダイアログデータ構造と比較して同じまたは似た音響特性を有する)。デジタルコンポーネントセレクタ120は、ディスプレイデバイス132を介して表示するために構成されたフォーマットであるデジタルコンポーネントを選択し得る。デジタルコンポーネントセレクタ120は、アプリケーションのネイティブ出力フォーマットに一致するように再フォーマットされ得るデジタルコンポーネントを選択することができる。
【0104】
デジタルコンポーネントセレクタ120は、リアルタイムのコンテンツ選択プロセスを介して複数のデジタルコンポーネントを選択することができる。デジタルコンポーネントセレクタ120は、デジタルコンポーネントのスコアを付け、ランクを付け、出力合併コンポーネント120が最も高いランク付けのデジタルコンポーネントを選択することを可能にするために出力合併コンポーネント120に複数のデジタルコンポーネントを提供することができる。
【0105】
デジタルコンポーネントセレクタ120は、提示するためにコンピューティングデバイス104またはコンピューティングデバイス104上で実行されるローカルデジタルアシスタント134もしくはアプリケーションに選択されたデジタルコンポーネントを提供することができる。したがって、デジタルコンポーネントセレクタ120は、第三者アプリケーションからパッケージングされたデータオブジェクトおよびコンテンツ要求を受信し、コンテンツ要求に応じて、リアルタイムのコンテンツ選択プロセスを介して、パッケージングされたデータオブジェクトに基づいてデジタルコンポーネントを選択し、コンピューティングデバイス上のセキュアな処理環境内で実行される第三者アプリケーションを介して提示するためにデジタルコンポーネントをコンピューティングデバイスに送信することができる。場合によっては、デジタルコンポーネントセレクタ120は、コンピューティングデバイス上のセキュアな処理環境内で実行される第三者アプリケーションではなくローカルデジタルアシスタント134自体によって提示するために選択されたデジタルコンポーネントをローカルデジタルアシスタント134に送信することができる。たとえば、ローカルデジタルアシスタント134は、選択されたデジタルコンポーネントに対応するオーディオ信号を再生または出力することができる。
【0106】
データ処理システム102は、選択され、提示されたデジタルコンポーネントオブジェクトとのインタラクションを特定し、インタラクションを、デジタルコンポーネントオブジェクトを選択するためにデジタルコンポーネントセレクタ120によって使用されたパッケージングされたデータオブジェクトを生成することまたは提供することを促進したデジタルアシスタントに帰することができる。たとえば、データ処理システム102は、コンピューティングデバイスによって提示された選択されたデジタルコンポーネントとのインタラクションのインジケーションを受信し、インタラクションをデジタルアシスタントコンポーネント112またはローカルデジタルアシスタント134に帰するように設計され、構築されたアトリビューションコンポーネント122を含むか、アトリビューションコンポーネント122とインターフェースを取るか、またはそうでなければアトリビューションコンポーネント122にアクセスすることができる。
【0107】
場合によっては、ローカルデジタルアシスタント134は、リモートデジタルアシスタント112とは異なる種類のデジタルアシスタントであることが可能である。ローカルデジタルアシスタント134は、データ処理システム102のエンティティもしくは管理者、リモートデジタルアシスタント112、またはデジタルコンポーネントセレクタ120と異なるエンティティまたは第三者によって提供され得る。デジタルアシスタントは、バージョンまたは構成に関連付けられ得る。したがって、アトリビューションコンポーネント122は、インタラクションを、デジタルコンポーネントを選択するために使用されたパッケージングされたデータオブジェクトに対応する会話に関連するデジタルアシスタントに帰することができる。
【0108】
アトリビューションを実行するために、場合によっては、オーディオパッケージングコンポーネント118は、第三者アプリケーションを起動する結果となった前のオーディオ入力につながった会話に参加したデジタルアシスタントの識別子をパッケージングされたデータオブジェクトに含めることができる。データ処理システム102は、デジタルアシスタント識別子のテーブルを含み得る。デジタルコンポーネントセレクタ120は、デジタルコンポーネントオブジェクトを選択するとき、識別子を維持し、選択されたデジタルコンポーネントオブジェクトと一緒に識別子を渡すことができる。デジタルコンポーネントオブジェクトとのインタラクションが発生するとき、デジタルコンポーネントオブジェクトは、インタラクションのインジケーションを、会話に関連するデジタルアシスタントコンポーネントの識別子と一緒にデータ処理システム102またはその他のエンティティに送信することができる。したがって、データ処理システム102は、デジタルコンポーネントとのインタラクションを特定されたデジタルアシスタントに帰することができる。
【0109】
場合によっては、オーディオパッケージングコンポーネント118は、デジタルアシスタントコンポーネントの識別子を取得するためにアトリビューションコンポーネント122に問い合わせることができる。オーディオパッケージングコンポーネント118は、パッケージングされたデータオブジェクトの生成前にまたは生成中にアトリビューションコンポーネント122に問い合わせることができる。オーディオパッケージングコンポーネント118は、パッケージングされたデータオブジェクトをパッケージングされたデータオブジェクトに基づいて選択されたデジタルコンポーネントとのインタラクションに帰することを容易にすることができるパッケージングされたデータオブジェクトに含める識別子をアトリビューションコンポーネント122に要求することができる。識別子は、入力が、たとえば、タイムスタンプ、会話の継続時間、デバイス識別子、またはデジタルアシスタント識別子のうちの1つまたは複数を含み得るハッシュ関数に基づくハッシュ値であるかまたはそのようなハッシュ値を含み得る。アトリビューションコンポーネント122は、nタプルを形成し、nタプルに基づいてハッシュ値を生成し、ハッシュ値を生成するために使用されたデジタルアシスタント識別子またはその他の情報へのハッシュ値のマッピングをハッシュテーブルに記憶することができる。
【0110】
たとえば、オーディオパッケージングコンポーネント118は、会話に参加したデジタルアシスタントの名前または種類、デバイス識別子、ならびに日付およびタイムスタンプをアトリビューションコンポーネント122に提供することができる。アトリビューションコンポーネント122は、デジタルアシスタントの名前およびタイムスタンプから生成されたハッシュ値に基づいて一意の識別子を生成することができる。アトリビューションコンポーネント122は、タイムスタンプおよびデジタルアシスタントの名前へのハッシュ値のマッピングを、データリポジトリ124に維持されたハッシュテーブルに記憶することができる。アトリビューションコンポーネント122は、オーディオパッケージングコンポーネント118からの問い合わせに応じて、パッケージングされたデータオブジェクトに含めるために一意インジケータまたはハッシュ値を提供することができる。第三者アプリケーションは、パッケージングされたデータオブジェクトを(たとえば、シリアル化された不透明トークンとして)受信し、そのパッケージングされたデータオブジェクトをコンテンツ要求と一緒にデジタルコンポーネントセレクタ120に提供することができる。デジタルコンポーネントセレクタ120は、パッケージングされたデータオブジェクト内のハッシュ値を特定し、それから、ハッシュ値を選択されたデジタルコンポーネントオブジェクトに埋め込む可能性がある。デジタルコンポーネントオブジェクトは、コンピューティングデバイス104によって提示され得る。デジタルコンポーネントオブジェクトとのインタラクションは、インタラクションのインジケーションがハッシュ値と一緒にデータ処理システム102に渡されるようにし得る。データ処理システム102は、ハッシュ値に対応するデジタルアシスタント、デバイス識別子、または日付およびタイムスタンプを特定するためにハッシュ値を使用してハッシュテーブル内で検索を実行し得る。データ処理システム102は、インタラクションを特定されたデジタルアシスタントに帰することができる。
【0111】
場合によっては、アトリビューションコンポーネント122は、デジタルコンポーネントを選択するためにデジタルコンポーネントセレクタ120によって使用される選択プロトコルまたはプロセスをチューニングするか、修正するか、または重み付けし得る。アトリビューションコンポーネント122は、選択を改善するためにデジタルコンポーネントセレクタ120をチューニングすることを容易にするフィードバックループを提供することができる。たとえば、アトリビューションコンポーネント122は、パッケージングされたデータオブジェクトに基づいて選択されたデジタルコンポーネントがデジタルコンポーネントオブジェクトとのインタラクションまたは所望のインタラクションをもたらす場合、パッケージングされたデータオブジェクトまたは前のオーディオ入力の属性の重みを増やし得る。別の例において、アトリビューションコンポーネント122は、パッケージングされたデータオブジェクトを生成するために使用された会話を促進したデジタルアシスタントデバイスの種類に基づいて属性の重みを増やし得る。場合によっては、デジタルコンポーネントセレクタ120は、アトリビューションコンポーネント122からのフィードバックに基づいて重みを調整することによって選択プロセスをチューニングすることができる。デジタルコンポーネントセレクタ120またはアトリビューションコンポーネント122は、選択プロセスの性能を改善するために機械学習アルゴリズムへの入力としてまたは機械学習アルゴリズムを訓練するためにフィードバック情報を使用し得る。フィードバックおよびパッケージングされたデータオブジェクトを使用して選択プロセスを改善することは、所望のインタラクションを受け取る前にコンピューティングデバイスに送信されるデジタルコンポーネントの数を減らすことによってより効率的なコンテンツ選択をもたらし得る。
【0112】
図2は、セキュアな処理環境内でデータを転送するためのシステム200の動作の図である。システム200の動作は、図1に示されたシステム100の1つまたは複数のコンポーネントまたは機能を含み得る。たとえば、システム200の動作は、データ処理システム102、コンピューティングデバイス104、第三者アプリケーション開発者デバイス108、またはデジタルコンポーネントプロバイダデバイス106によってまたはそれを用いて実行され得る。ACT 202において、コンピューティングデバイス104は、会話を促進し得る。ACT 202は、202a、202b、または202cのうちの1つまたは複数を含む会話を指し得る。会話は、入力オーディオおよび出力オーディオを含み得る。入力オーディオは、1つまたは複数の部分を含むことが可能であり、出力オーディオは、1つまたは複数の部分を含むことが可能である。たとえば、会話は、第1の入力202aで始まることが可能である。第1の入力202aは、コンピューティングデバイス104のユーザからの発話の入力を含み得る。説明のための例において、第1の入力202aは、「結婚式に出るための新しい服を買わないといけない。」であることが可能である。ローカルデジタルアシスタント134は、第1の入力202aを前処理するかまたは解析することができる。ローカルデジタルアシスタント134は、第1の入力202aをテキストまたはオーディオデータファイルに変換することができる。
【0113】
Act 204において、ローカルデジタルアシスタント134は、ネットワーク105を介して、変換されたまたはフォーマットされた第1の入力202aをデータ処理システム102によって実行されるリモートデジタルアシスタント112に送信し得る。リモートデジタルアシスタント112は、第1の入力を処理し、応答を生成することができるNLPコンポーネント114を含み得る。第1の入力への応答は、第1の出力202bと呼ばれ得る。説明のための例において、第1の出力202bは、「新しい服を見つけるために衣類小売業者Aまたは衣類小売業者Bのアプリを起動しますか。」であり得る。リモートデジタルアシスタント112は、第1の入力202aに基づいて提案するアプリケーションを特定するためにアプリランチャコンポーネント116とインタラクションし得る。アプリランチャコンポーネント116は、どのアプリがコンピューティングデバイス104にインストールされるか、どのアプリがコンピューティングデバイス104にインストールするために利用可能であるか、またはどのアプリがインストールしてもしくはインストールせずにコンピューティングデバイス104によって実行するために利用可能であるかに基づいてアプリを提案すると決定し得る。ACT 206において、データ処理システム102は、第1の入力に応答する第1の出力をネットワーク105を介してローカルデジタルアシスタント134に提供することができる。ローカルデジタルアシスタント134は、コンピューティングデバイス104を介してデータ処理システム102から受信された第1の出力202bを提供することができる。第1の入力202aおよび第1の出力202bは、会話の一部であることが可能である。
【0114】
ユーザは、第2の入力202cを与えることによって第1の出力に応答し得る。第2の入力202cは、発話の入力であり得る。第2の入力202cは、第1の出力202bに応じることが可能である。第2の入力202cは、第1の出力202b内でリモートデジタルアシスタント112によって提案されたアプリケーションのうちの1つの選択であることが可能である。たとえば、第2の入力202cは、「はい。衣類小売業者Aにしてみます。」であり得る。ACT 208において、ローカルデジタルアシスタント134は、第2の入力をリモートデジタルアシスタント112に提供することができる。
【0115】
リモートデジタルアシスタント112は、アプリケーションを起動するインジケーションを含む第2の入力202cを受信する。Act 210において、第2の入力202cを受信することに応じて、リモートデジタルアシスタント112は、選択されたアプリケーションを呼び出し、前のオーディオ入力のインジケーションを提供することができる。たとえば、第2の入力202cを受信することに応じて、リモートデジタルアシスタント112は、選択された衣類アプリケーションを呼び出すコマンドまたは命令を生成し得る。リモートデジタルアシスタント112は、アプリランチャコンポーネント116を利用して、選択されたアプリケーションへのポインタ、アドレス、またはディープリンクを特定し、アプリケーションを起動するコマンド、命令、またはリンクを含む1つまたは複数のデータパケットを生成し得る。アプリランチャコンポーネント116は、アプリケーションをダウンロードし、インストールするコマンド、命令、またはリンクを提供し得る。アプリランチャコンポーネント116は、ウェブビューまたはサービスとしてのソフトウェア構成でアプリケーションを起動し得る。
【0116】
ACT 210において、第2の入力202cを受信することに応じて、リモートデジタルアシスタント112は、アプリケーションを起動する結果となった前のオーディオ入力のインジケーションを生成することができる。前のオーディオ入力は、第2の入力202cよりも前の入力オーディオを含む。前のオーディオ入力は、選択されたアプリケーションを起動するようにデータ処理システム102に直接命じた入力オーディオだけよりも多くのコンテキストを含む可能性がある。前のオーディオ入力は、第1の入力202aを含み得る。前のオーディオ入力は、第1の出力202bを含み得る。前のオーディオ入力は、第1の入力202aおよび第1の出力202bを含み得る。前のオーディオ入力は、会話中に発生した入力または出力テキスト、オーディオ、またはその他の通信情報の一部またはすべてを含み得る。会話は、時間窓、話題、論理フロー、位置などに基づいてローカルデジタルアシスタント134またはリモートデジタルアシスタント112によって特定され得る通信セッションを指すかまたは含み得る。
【0117】
第2の入力202cを受信することに応じて、リモートデジタルアシスタント112は、前のオーディオ入力のインジケーションをパッケージングされたデータオブジェクトとして生成することができる。パッケージングされたデータオブジェクトは、1つまたは複数のコンポーネントを含み得る。オーディオパッケージングコンポーネント118は、第1の入力202a、第1の出力202b、または第2の入力202cのうちの1つまたは複数を含めるようにパッケージングされたデータオブジェクトを生成し得る。
【0118】
ACT 212において、リモートデジタルアシスタント112は、ネットワーク105を介してローカルデジタルアシスタント134に1つまたは複数のデータパケット、コマンド、または命令を送信し得る。リモートデジタルアシスタント112は、選択されたアプリケーションを呼び出し、さらに、前のオーディオ入力のインジケーションを提供するコマンドを送信することができる。たとえば、リモートデジタルアシスタント112は、会話の一部またはすべてを含むパッケージングされたデータオブジェクトを提供することができる。ACT 214において、ACT 212において送信されたデータパケットが、コンピューティングデバイスにセキュアな処理環境内でアプリケーションを起動させ得る。ACT 212においてデータパケットを受信することに応じて、ローカルデジタルアシスタント134は、ACT 214においてコンピューティングデバイス104にセキュアな処理環境内でアプリケーションを起動させ得る。さらに、ACT 214において、ローカルデジタルアシスタント134は、リモートデジタルアシスタント112から受信されたパッケージングされたデータオブジェクトをコンピューティングデバイス104において起動されるアプリケーションに入力することができる。したがって、ACT 214は、アプリケーションを起動することと、データ処理システム102から受信された前のオーディオ入力(またはその他のコンテキスト情報)を入力することとを含み得る。
【0119】
アプリケーション(またはアプリ218)は、コンピューティングデバイス102のセキュアな処理環境216内で起動され得る。ローカルデジタルアシスタント134は、セキュアな処理環境内でアプリ218を実行している間に、アプリがパッケージングされたデータオブジェクト220にアクセスすることができるかまたはパッケージングされたデータオブジェクト220を記憶するように、アプリ218にパッケージングされたデータオブジェクトを渡すことができる。
【0120】
たとえば、アプリケーションは、パッケージングされたデータオブジェクト、トークン、シリアル化されたトークン、シリアル化された不透明トークン、または一意の識別子などのフォーマットで前のオーディオ入力の入力を可能にするソフトウェア開発キット(「SDK」)を用いて構成され得る。場合によっては、アプリケーションのSDKは、前のオーディオ入力を処理するように構成され、場合によっては、SDKは、前のオーディオ入力を処理することができずに前のオーディオ入力を受信するように構成されるが、前のオーディオ入力をデジタルコンポーネントセレクタ120に送信することはできる。セキュアな処理環境内で起動されたアプリケーションは、セキュアな処理環境外に記憶された情報またはデータにアクセスすることができないかまたはアクセスすることを禁止される可能性がある。したがって、場合によっては、アプリケーションは、ローカルデジタルアシスタント134またはその他のコンポーネントから前のオーディオ入力を受信するようなやり方で構成されたSDKの結果として前のオーディオ入力を受信するかまたは取得する。場合によっては、ローカルデジタルアシスタント134は、前のオーディオ入力を、セキュアな処理環境に、またはアプリケーションによるアクセスのためにロックを解除されたまたは認可されたメモリのその他の部分に記憶し得る。
【0121】
ACT 222において、コンピューティングデバイス104上で実行されるアプリケーションが、コンテンツ要求またはデジタルコンポーネントの要求をトリガし得る。たとえば、アプリケーション内で走らされるタグまたはスクリプトが、イベントまたは条件に応じてコンテンツの要求をトリガし得る。アプリケーションは、ACT 212においてデータ処理システム102から受信された前のオーディオ入力を含めるようにコンテンツの要求を生成し得る。アプリケーションは、コンピューティングデバイス104を介して、デジタルコンポーネントセレクタ120に、パッケージングされたデータオブジェクトと一緒にコンテンツ要求を送信することができる。デジタルコンポーネントセレクタ120は、データ処理システム102の一部または別のサーバもしくはエンティティの一部であることが可能である。デジタルコンポーネントセレクタ120は、リモートデジタルアシスタント112またはデータ処理システム102と別れていることが可能である。デジタルコンポーネントセレクタ120は、別のエンティティによって維持されるかまたは管理され得る。デジタルコンポーネントセレクタ120が会話を含むパッケージングされたデータオブジェクトを受信し得るので、デジタルコンポーネントセレクタ120は、たとえデジタルコンポーネントセレクタ120が会話に関与したコンピューティングデバイスまたはエンティティと別れているとしても会話に基づいて選択プロセスを実行することができる。
【0122】
デジタルコンポーネントセレクタ102は、要求および前のオーディオ入力を受信し、要求に応じて、前のオーディオ入力に基づいてデジタルコンポーネントを選択するために前のオーディオ入力を使用することができる。デジタルコンポーネントセレクタ120は、リアルタイムのコンテンツ選択プロセスを実行することができる。リアルタイムのコンテンツ選択プロセスは、コンテンツ要求に関連する情報(たとえば、キーワード、デバイス識別子、位置情報)および前のオーディオ入力に関連する情報(たとえば、第1の入力202a、第1の出力202b、または第2の入力202c)を使用し得る。たとえば、デジタルコンポーネントセレクタ120は、リアルタイムのコンテンツ選択プロセスに入力するために第1の入力202a「結婚式に出るための新しい服を買わないといけない。」から1つまたは複数のキーワードを生成することができる。キーワードは、「服」および「結婚式」を含み得る。キーワードは、「出席する」または「買う」または「新しい」を含み得る。デジタルコンポーネントセレクタ120は、これらのキーワードおよびコンテンツ要求に基づいて、旅行、ホテル、フライト、贈り物、またはカードなどの「結婚式」に関連するデジタルコンポーネントを選択し得る。デジタルコンポーネントセレクタ120は、ACT 224において、選択されたコンテンツアイテムを提供することができる。
【0123】
ACT 226において、アトリビューションコンポーネント122が、コンテンツアイテムとのインタラクションのインジケーションを受信し得る。インタラクションのインジケーションは、オーディオ入力、発話の入力、マウス、タッチスクリーン、ジェスチャ、またはキーボードなどの、コンピューティングデバイス104の入力デバイスを介したデジタルコンポーネントとのインタラクションを含み得る。インタラクションのインジケーションは、たとえば、コンテンツアイテムが提示されたこと、オーディオ出力によって再生されたこと、表示するために提示されたこと、選択されたたこと、マウスロールオーバ、一時停止されたこと、会話をもたらしたこと、またはその他のインタラクションを含み得る。
【0124】
図3は、セキュアな処理環境内でデータを転送するためのシステム300の動作の図である。システム300の動作は、図1に示されたシステム100の1つまたは複数のコンポーネントまたは機能を含み得る。たとえば、システム200の動作は、データ処理システム102、コンピューティングデバイス104、第三者アプリケーション開発者デバイス108、またはデジタルコンポーネントプロバイダデバイス106によってまたはそれを用いて実行され得る。システム300の動作は、図2の動作の図200に示された1つまたは複数の動作またはステップを含み得る。たとえば、図3に示されるACT 202、204、206、および208は、図2に示された対応するACT 202、204、206、および208と同様であり得る。システム300は、デジタルコンポーネントセレクタ120を含むデータ処理システム102を含み得る。デジタルコンポーネントセレクタ120は、データリポジトリ124にアクセスすることができる。
【0125】
ACT 302において、ローカルデジタルアシスタント134から第2の入力208を受信することに応じて、リモートデジタルアシスタント112は、選択されたアプリケーションを起動する命令を与えるようにアプリランチャ116に命じ、会話に対応する一意の識別子を生成するようにオーディオパッケージングコンポーネント118に命令することができる。図2に示されるように会話を含むパッケージングされたデータオブジェクトを提供するのではなく、リモートデジタルアシスタント112は、会話またはパッケージングされたデータオブジェクトに対応する一意の識別子を生成し得る。リモートデジタルアシスタント112は、会話またはパッケージングされたデータオブジェクトをデータリポジトリ124に記憶し、下流の処理を容易にするために記憶された会話またはパッケージングされたデータオブジェクトに一意の識別子を割り振ることができる。
【0126】
ACT 304において、リモートデジタルアシスタント112は、アプリケーションを呼び出すためにローカルデジタルアシスタント134にデータパケットの命令を送信し得る。リモートデジタルアシスタント112は、会話の一意の識別子(「ID」)をローカルデジタルアシスタント134に送信するかまたは提供することもできる。ACT 306において、ローカルデジタルアシスタント134は、セキュアな処理環境216内でアプリケーションを起動し、一意の識別子308をアプリケーションに渡すことができる。アプリケーション(またはアプリ218)は、セキュアな処理環境216内で実行され、一意のID 308にアクセスするかまたは一意のID 308を記憶することができる。一意のID 308は、データリポジトリ124に記憶された会話またはパッケージングされたデータオブジェクトに対応し得る。パッケージングされたデータオブジェクトの代わりに一意のIDをローカルデジタルアシスタント134に渡すことは、図2に示されるようにネットワーク105を介してパッケージングされたデータオブジェクト220を渡すことと比較してネットワーク105上の帯域幅の利用を削減し得る。
【0127】
ACT 310において、アプリ218は、デジタルコンポーネントセレクタ120に一意のIDとともにコンテンツ要求を与えることができる。一意のIDまたはトークンは、前から存在し得る。たとえば、一意のIDは、データリポジトリ124に既に存在するパッケージングされたデータオブジェクトに割り振られ得る。コンテンツ要求は、アプリ218におけるイベント、条件、タグ、またはスクリプトに応じてトリガされ得る。一意のID自体はパッケージングされたデータオブジェクトまたは会話を含まないので、デジタルコンポーネントセレクタ120は、ACT 312において、データリポジトリ124から会話またはパッケージングされたデータオブジェクトを取り出すことができる。たとえば、デジタルコンポーネントセレクタ120は、一意のIDを使用してデータリポジトリ124内の検索を実行することができる。デジタルコンポーネントセレクタ120は、一意のIDを使用してデータリポジトリ124に問い合わせすることができる。デジタルコンポーネントセレクタ120は、リモートデジタルアシスタント112に問い合わせをすることができ、そして今度は、リモートデジタルアシスタントが、パッケージングされたデータオブジェクトまたは会話に関してデータリポジトリ124に問い合わせることができる。
【0128】
場合によっては、デジタルコンポーネントセレクタ120は、データ処理システム102の一部であるかまたはデータ処理システム102に関連付けられ得る。デジタルコンポーネントセレクタ120は、会話またはパッケージングされたデータオブジェクトを使用してコンテンツ選択プロセスを実行し、デジタルコンポーネントを選択することができる。ACT 220において、デジタルコンポーネントセレクタ120は、セキュアな処理環境216内で実行されるアプリ218に選択されたデジタルコンポーネントまたはコンテンツアイテムを提供することができる。ACT 222において、アトリビューションコンポーネント122は、コンテンツアイテムとのインタラクションのインジケーションを受信し、インタラクションを、デジタルコンポーネントまたはコンテンツアイテムを選択するために使用された会話を促進したデジタルアシスタント134、またはリモートデジタルアシスタント112、またはそれら両方に帰する。
【0129】
図4は、セキュアな処理環境内でデータを転送する方法の図である。方法400が、図1図2、または図9に示される1つまたは複数のコンポーネントまたはシステムによって実行され得る。方法400は、ACT 402においてデータ処理システムがオーディオ入力を受信することを含み得る。データ処理システムは、コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信し得る。たとえば、1つまたは複数のプロセッサおよびメモリを含むデータ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントが、オーディオ入力を受信し得る。オーディオ入力は、デジタルアシスタントによって促進された会話を含み得る。会話は、1つまたは複数の入力および出力を含み得る。会話は、オーディオに基づくか、テキストに基づくか、またはオーディオとテキストとの組合せであることが可能である。オーディオ入力は、会話の情報を提供することができるテキスト入力またはその他の種類の入力を含み得る。データ処理システムは、会話に対応するセッションに関するオーディオ入力を受信し得る。データ処理システムは、1つもしくは複数の部分のまたはバルク(bulk)もしくはバッチアップロード(たとえば、送信の回数を減らすために単一の送信でアップロードされた会話の複数の部分)としてオーディオ入力を受信し得る。
【0130】
ACT 404において、データ処理システムは、アプリケーションを呼び出すと決定し得る。データ処理システムは、オーディオ入力に基づいて第三者アプリケーションを呼び出すと決定し得る。データ処理システムは、オーディオ入力に基づいてアプリケーションを選択し得る。第三者アプリケーションは、データ処理システムを管理するエンティティと異なるエンティティによって開発されたアプリケーションを指し得る。第三者は、データ処理システムを監督するか、管理するか、またはそうでなければ維持するエンティティと異なる任意のエンティティを指し得る。場合によっては、データ処理システムは、データベースの検索によって第三者アプリケーションに関するディープリンクを特定し得る。データ処理システムは、第三者アプリケーションを呼び出すためにディープリンクを使用し得る。
【0131】
ACT 406において、データ処理システムは、パッケージングされたデータオブジェクトを生成し得る。データ処理システムは、第三者アプリケーションを呼び出す決定に応じてパッケージングされたデータオブジェクトを生成し得る。パッケージングされたデータオブジェクトは、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にコンピューティングデバイスのマイクロフォンによって検出された、前のオーディオ入力入力を含み得る。たとえば、前のオーディオ入力は、デジタルアシスタントによって促進された会話の一部またはすべてを含み得る。デジタルアシスタントによって促進された会話は、選択された第三者アプリケーションを起動すると決定する結果となった可能性がある。データ処理システムは、1つまたは複数のコンポーネントを用いてパッケージングされたデータオブジェクトを生成し得る。パッケージングされたデータオブジェクトは、1つまたは複数のコンポーネント、構造、フィールド、またはオブジェクトを含み得る。たとえば、パッケージングされたデータオブジェクトは、実際の会話、会話に関するオブジェクト指向のフォーマット、構造化された会話、キーワード、構造化された会話、またはイベント識別子を含み得る。
【0132】
ACT 408において、データ処理システムは、パッケージングされたデータオブジェクトを転送し得る。データ処理システムは、パッケージングされたデータオブジェクトを第三者アプリケーションに転送し得る。データ処理システムは、デジタルアシスタントコンポーネント(たとえば、第三者アプリケーションを実行するコンピューティングデバイス上で実行されるローカルデジタルアシスタント、またはリモートデジタルアシスタント)を介して第三者アプリケーションにパッケージングされたデータオブジェクトを転送し得る。データ処理システムは、会話を促進したデジタルアシスタントを介して第三者アプリケーションにパッケージングされたデータオブジェクトを転送し得る。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたコンテンツ要求に応じてパッケージングされたデータオブジェクトをデジタルコンポーネントセレクタに送信するように構成され得る。デジタルコンポーネントセレクタは、コンテンツ要求およびパッケージングされたデータオブジェクトに基づいてデジタルコンポーネントを選択することができる。デジタルコンポーネントセレクタは、コンピューティングデバイスによって提示するために選択されたデジタルコンポーネントを提供し得る。コンピューティングデバイスは、ローカルデジタルアシスタントまたは第三者アプリケーションを介して選択されたデジタルコンポーネントを提示することができる。コンピューティングデバイスは、オーディオ出力、テキスト出力、画像出力、動画出力、またはその他の出力技術を使用して選択されたデジタルコンポーネントを提示することができる。
【0133】
場合によっては、選択されたデジタルコンポーネントとのインタラクションは、デジタルコンポーネントオブジェクトの選択を促進するために使用されたパッケージングされたデータオブジェクトを形成した会話を促進したデジタルアシスタントに帰せられ得る。インタラクションをデジタルアシスタントに帰することは、コンポーネントがフィードバックに基づいて選択プロセス、アルゴリズム、または自然言語処理をチューニングするか、重み付けするか、または訓練することを可能にすることによってデジタルアシスタント、デジタルコンポーネントセレクタ、またはデータ処理システムの性能を改善することができる。
【0134】
図5は、セキュアな処理環境内でデータを転送する方法の図である。方法500が、図1図3、または図9に示される1つまたは複数のコンポーネントまたはシステムによって実行され得る。方法500は、ACT 502においてデータ処理システムがオーディオ入力を受信することを含み得る。データ処理システムは、コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を受信し得る。たとえば、1つまたは複数のプロセッサおよびメモリを含むデータ処理システムによって少なくとも部分的に実行されるデジタルアシスタントコンポーネントが、オーディオ入力を受信し得る。オーディオ入力は、デジタルアシスタントによって促進された会話を含み得る。会話は、1つまたは複数の入力および出力を含み得る。会話は、オーディオに基づくか、テキストに基づくか、またはオーディオとテキストとの組合せであることが可能である。オーディオ入力は、会話の情報を提供することができるテキスト入力またはその他の種類の入力を含み得る。データ処理システムは、会話に対応するセッションに関するオーディオ入力を受信し得る。データ処理システムは、1つもしくは複数の部分のまたはバルク(bulk)もしくはバッチアップロード(たとえば、送信の回数を減らすために単一の送信でアップロードされた会話の複数の部分)としてオーディオ入力を受信し得る。
【0135】
ACT 504において、データ処理システムは、アプリケーションを呼び出すと決定し得る。データ処理システムは、オーディオ入力に基づいて第三者アプリケーションを呼び出すと決定し得る。データ処理システムは、オーディオ入力に基づいてアプリケーションを選択し得る。第三者アプリケーションは、データ処理システムを管理するエンティティと異なるエンティティによって開発されたアプリケーションを指し得る。第三者は、データ処理システムを監督するか、管理するか、またはそうでなければ維持するエンティティと異なる任意のエンティティを指し得る。場合によっては、データ処理システムは、データベースの検索によって第三者アプリケーションに関するディープリンクを特定し得る。データ処理システムは、第三者アプリケーションを呼び出すためにディープリンクを使用し得る。
【0136】
ACT 506において、データ処理システムは、一意の識別子を生成し得る。一意の識別子は、アプリケーションが呼び出されるかまたは起動される結果となったデジタルアシスタントによって促進された前のオーディオ入力または会話に割り振られ得る。データ処理システムは、第三者アプリケーションを呼び出すことを決定することに応じて一意の識別子を生成し得る。データ処理システムは、前のオーディオ入力をデータ処理システムまたはデータリポジトリに1つまたは複数のフォーマットで記憶し、前のオーディオ入力に一意の識別子を割り振ることができる。場合によっては、デジタルアシスタントコンポーネントまたはデータ処理システムは、前のオーディオ入力に関するイベント識別子を生成し、データ処理システムに記憶されたルックアップテーブル内で前のオーディオ入力に関するイベント識別子を一意の識別子にマッピングし得る。
【0137】
ACT 508において、データ処理システムは、一意の識別子をコンピューティングデバイスに転送することができる。データ処理システムは、デジタルアシスタントによって呼び出されるかまたは起動された第三者アプリケーションに一意の識別子を転送することができる。データ処理システムは、一意の識別子をデジタルアシスタントに転送することができる。デジタルアシスタントは、一意の識別子を第三者アプリケーションに渡すことができる。たとえば、データ処理システムは、コンピューティングデバイス上で実行されるローカルデジタルアシスタントに一意の識別子を転送することができ、ローカルデジタルアシスタントは、セキュアな処理環境内で起動されているかまたは実行されている第三者アプリケーションに一意の識別子を渡すことができる。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、データ処理システムに一意の識別子を送信することができる。第三者アプリケーションは、コンテンツ要求と一緒に一意の識別子を送信することができる。
【0138】
ACT 510において、データ処理システムは、前のオーディオ入力を特定し得る。データ処理システムは、一意の識別子を使用して前のオーディオ入力を取り出すか、取得するか、またはそうでなければ特定することができる。データ処理システムは、前のオーディオ入力を取り出すためにデータベースまたはデータリポジトリの検索を実行することができる。前のオーディオ入力は、パッケージングされたデータオブジェクトまたはテキストの会話の形態であり得る。
【0139】
ACT 512において、データ処理システムは、デジタルコンポーネントセレクタに前のオーディオ入力を提供し得る。デジタルコンポーネントセレクタは、前のオーディオ入力を使用してデジタルコンポーネントを選択することができる。デジタルコンポーネントセレクタは、コンテンツ要求および前のオーディオ入力に基づいてデジタルコンポーネントを選択することができる。
【0140】
データ処理システムは、コンピューティングデバイスから受信された一意の識別子およびコンテンツ要求をデジタルコンポーネントセレクタに提供し得る。デジタルコンポーネントセレクタは、コンテンツ要求に応じて、リアルタイムのコンテンツ選択プロセスを介して、一意の識別子に対応する前のオーディオ入力に基づいてデジタルコンポーネントを選択することができる。デジタルコンポーネントセレクタは、コンピューティングデバイス上のセキュアな処理環境内で実行される第三者アプリケーションを介して提示するためにデジタルコンポーネントをコンピューティングデバイスに送信することができる。
【0141】
データ処理システムは、コンピューティングデバイスを介して提示するために、前のオーディオ入力に基づいて選択されたデジタルコンポーネントを送信することができる。データ処理システムは、コンピューティングデバイスを介して提示されたデジタルコンポーネントとのインタラクションのインジケーションを受信し得る。データ処理システムは、デジタルコンポーネントとのインタラクションをデジタルアシスタントコンポーネントに帰することができる。
【0142】
図6は、セキュアな処理環境内でデータを転送する方法の図である。方法600が、図1図2図3、または図9に示される1つまたは複数のコンポーネントまたはシステムによって実行され得る。方法600は、ACT 602においてコンピューティングデバイスがセキュアな処理環境を確立することを含み得る。コンピューティングデバイスは、コンピューティングデバイスのメモリの少なくとも一部においてセキュアな処理環境を確立することができる。場合によっては、セキュアな処理環境を確立することは、アクセスを制約するように設計されるかまたは構築される構成設定を特定するか、取得するか、構成設定にアクセスするか、または構成設定を提供することを指し得る。たとえば、アプリケーションは、コンピューティングデバイス上の1つまたは複数の機能またはデータにアクセスすることを制約され得る。アプリケーションが何にアクセスし得るかを制約することによって、コンピューティングデバイスは、コンピューティングデバイスに記憶されるかまたはコンピューティングデバイス上で実行されるその他のコンポーネントまたはデータを保護することができる。
【0143】
ACT 604において、コンピューティングデバイスによって実行されるローカルデジタルアシスタントが、コンピューティングデバイスのマイクロフォンによって検出されたオーディオ入力を特定し得る。オーディオ入力は、会話の1つまたは複数の部分を含み得る。オーディオ入力は、会話に関連する単語、語句、音、キーワード、イベント、またはその他の情報を含み得る。会話は、コマンド、問い合わせ、命令、または要求を含み得る。オーディオ入力は、ダイアログを含み得る。オーディオ入力は、発話の入力を含み得る。オーディオ入力は、コンピューティングデバイスのユーザとデジタルアシスタントとの間の双方向の会話を指し得る。デジタルアシスタントは、ローカルデジタルアシスタントであり得る。デジタルアシスタントは、サーバまたはデータ処理システム上で実行されるかまたは維持されるリモートデジタルアシスタントを含み得る。ローカルデジタルアシスタントは、会話を促進するかまたは行うためにリモートデジタルアシスタントと通信していることができる。
【0144】
ACT 606において、ローカルデジタルアシスタントは、アプリケーションを呼び出し得る。ローカルデジタルアシスタントは、オーディオ入力に基づいてアプリケーションを呼び出し得る。ローカルデジタルアシスタントは、アプリケーションを呼び出す命令をリモートデジタルアシスタントから受信することができ、命令は、オーディオ入力に基づき得る。ローカルデジタルアシスタントコンポーネントは、データ処理システムからのコマンドまたは命令に応じてアプリケーション(たとえば、第三者アプリケーション)を呼び出すことができる。アプリケーションを呼び出すことは、アプリケーションを開くこと、またはアプリケーションを起動すること、またはアプリケーションを実行することを含むかまたは指し得る。ローカルデジタルアシスタントは、第三者アプリケーションがコンピューティングデバイスのもしくはコンピューティングデバイス上の特定の機能もしくはデータにアクセスするかまたはそれらの特定の機能もしくはデータを使用することを制約されるようにセキュアな処理環境内で第三者アプリケーションを呼び出すことができる。
【0145】
ACT 608において、ローカルデジタルアシスタントは、前のオーディオ入力のインジケーションを取得し得る。ローカルデジタルアシスタントは、第三者アプリケーションを呼び出すことに応じて前のオーディオ入力のインジケーションを取得し得る。前のオーディオ入力のインジケーションは、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された会話またはオーディオ入力を指し得る。たとえば、特定されたオーディオ入力は、第1の部分および第2の部分を含み得る。第1の部分は、第2の部分よりも前にあり得る。オーディオ入力の第2の部分は、アプリケーションを起動するユーザからのコマンドまたは要求を含むことが可能であり、一方、第1の部分は、アプリケーションを起動するコマンドよりも前のオーディオ入力を含むことが可能である。
【0146】
前のオーディオ入力のインジケーションは、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力を含むパッケージングされたデータオブジェクトを含み得る。前のオーディオ入力のインジケーションは、データ処理システムのデータリポジトリに記憶された会話またはパッケージングされたデータオブジェクトにマッピングされる一意の識別子を含み得る。
【0147】
場合によっては、ローカルデジタルアシスタントコンポーネントは、第三者アプリケーションの呼び出しに応じて、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力を含むパッケージングされたデータオブジェクトを生成し得る。ローカルデジタルアシスタントは、パッケージングされたデータオブジェクトもしくは一意の識別子を生成するためのデータ処理システムの1つもしくは複数の機能もしくはコンポーネントを含むかまたはそれらの機能もしくはコンポーネントを用いて構成され得る。
【0148】
ACT 610において、ローカルデジタルアシスタントは、前のオーディオ入力をアプリケーションに転送し得る。ローカルデジタルアシスタントは、前のオーディオ入力をアプリケーションに渡すことができる。ローカルデジタルアシスタントは、ローカルデジタルアシスタントによって呼び出された第三者アプリケーションに前のオーディオ入力のインジケーションを転送し得る。ローカルデジタルアシスタントは、アプリケーションを起動するときに、アプリケーションを起動する間に、またはアプリケーションを起動した後に前のオーディオ入力のインジケーションを転送し得る。第三者アプリケーションは、第三者アプリケーションにおいてトリガされたコンテンツ要求に応じて、前のオーディオ入力のインジケーションに基づいてリアルタイムのコンテンツ選択プロセスを実行するためにデジタルコンポーネントセレクタに前のオーディオ入力のインジケーションを送信することができる。
【0149】
図7は、例による情報リソースにステートフルな情報を提供する方法の図である。方法700が、図1図2図3、または図9に示される1つまたは複数のコンポーネントまたはシステムによって実行され得る。方法は、1つまたは複数のプロセッサ、1つまたは複数のメモリデバイスによって実行されることが可能であり、1つまたは複数のメモリデバイスは、1つまたは複数のプロセッサによって実行されるときに1つまたは複数のプロセッサに動作を実行させる命令を記憶する。方法700は、データ処理システム102、コンピューティングデバイス104、リモートデジタルアシスタント112、デジタルコンポーネントセレクタ120、ローカルデジタルアシスタント134、第三者アプリケーション開発者デバイス108、またはデジタルコンポーネントプロバイダデバイス106のうちの1つまたは複数によって実行され得る。方法700は、ユーザがリソースを訪問するときにウェブサイトなどのオンラインリソースにステートフルな情報を提供し得る。ユーザがウェブサイトを訪問するとき、訪問されるウェブサイトは、コンピューティングデバイスを介してユーザに提示するためのウェブページを組み立てるために(デジタルコンポーネントプロバイダ、コンテンツプロバイダ、地図サーバなどの情報プロバイダなどの)1つまたは複数のさらなるリソースと通信する可能性がある。ウェブサイトを組み立てるためのウェブサイトとさらなるリソースとの間の通信と、ユーザにウェブサイトを提示するためのウェブサイトとユーザのデバイスとの間の通信とは、両方とも、ネットワークリソースおよび送信帯域幅を消費する。さらに、ユーザに提示されたウェブページがユーザの要件を満たさない場合、ユーザは、変更を要求する-ウェブページの改訂されたバージョンを組み立てるためのウェブサイトとリソースとの間のさらなる通信を要求し、ウェブページの改訂されたバージョンをユーザのデバイスに再提示し、それによって、さらなるネットワークリソースを消費する。
【0150】
ACT 702において、方法は、1つまたは複数のプロセッサによって実装されるデジタルアシスタント(またはその他のバーチャルアシスタント)においてユーザからの要求を受け取ることを含む。デジタルアシスタントは、ユーザからの要求を受け取り得る。要求は、ウェブサイトまたはアプリケーションなどのリソースに関するものであることが可能である。デジタルアシスタントは、音声駆動式のインターフェースを介して要求を受け取り得る。デジタルアシスタントは、ローカルコンピューティングデバイスまたはデータ処理システム上で実行され得る。デジタルアシスタントは、ローカルデジタルアシスタントとリモートデジタルアシスタントとの両方を含み得る。
【0151】
ACT 704において、方法は、要求に関して、バーチャルアシスタントによってユーザとインタラクションすることを含む。デジタルアシスタントは、要求に基づいてユーザとインタラクションするかまたは要求をさらに進めることができる。インタラクションすることは、たとえば、会話を促進することを含み得る。インタラクションすることは、要求に応じてフィードバックまたは情報を提供することを含み得る。
【0152】
ACT 706において、方法は、デジタルアシスタントによってインタラクションに基づいてユーザを第1のリソースに導くことを含む。デジタルアシスタントは、リソースを開くか、呼び出すか、起動するか、または実行することができる。
【0153】
ACT 708において、方法は、導くことにつながるユーザとのインタラクションを表し、デジタルアシスタントがユーザを第1のリソースに導く前に行われたインタラクションの中の少なくとも1つのイベントを表すデータオブジェクトをデジタルアシスタントによって生成することを含む。データオブジェクトは、ユーザとデジタルアシスタントとの間の会話またはインタラクションのパッケージングされたデータオブジェクトを指し得る。データオブジェクトは、会話のトークンまたは一意の識別子を含み得る。
【0154】
ACT 710において、方法は、デジタルアシスタントによってデータオブジェクトを第1のリソースに転送することを含む。デジタルアシスタントは、データオブジェクト(たとえば、パッケージングされたデータオブジェクト、トークン、または一意のID)をリソース(たとえば、アプリケーション)に渡すかまたは転送することができる。そして、第1のリソースは、データオブジェクトからインタラクションについての情報を取得することができる。第1のリソースは、データオブジェクト内の情報に基づいてユーザに提示するためのコンテンツを取得するために第2のリソースと通信することができる。
【0155】
場合によっては、第2のリソースは、第1のリソースからデータオブジェクトを受信し得る。第2のリソースは、データオブジェクトからインタラクションについての情報を取得することができる。第2のリソースは、第1のリソースと異なることが可能である。第2のリソースは、第1のリソースと比較して異なるアプリケーションまたはウェブサイトであることが可能である。データオブジェクトは、第1のリソースがインタラクションについての情報を特定するためにデータオブジェクトを解析または処理し得ないように第1のリソースに対して不透明であることが可能である。
【0156】
たとえば、ユーザは、ユーザとデジタルアシスタントとの間のインタラクションの結果として第1のリソースを訪問し得る。インタラクションの詳細は、なぜユーザが第1のリソースを訪問しているかについてのステートフルな情報を提供することができる。ステートフルな情報は、ユーザがリソースに導かれることにつながる先行するイベントまたはユーザインタラクションに関する情報を含むかまたは指し得る。デジタルアシスタントは、ユーザとのインタラクションを表すデータオブジェクトを提供することができる。結果として、ユーザが第1のリソースに導かれることにつながるユーザのインタラクションについての情報は、第1のリソースまたは1つまたは複数のその他のリソースに利用可能にされ得る。そして、この情報は、たとえば、ウェブページを組み立て、ユーザにウェブページを提示する手順をよりリソース効率の高いものにするために使用され得る。第1のリソースまたはその他のリソースがデジタルアシスタントによって提供されたデータオブジェクトからこの情報を取得することができるので、この情報を使用してウェブページを組み立てることは、たとえば、ユーザデバイスがデジタルアシスタントに既に供給した情報をユーザデバイスが再供給する必要を避ける可能性があり、それによって、必要とされるネットワークリソースを削減する。追加的にまたは代替的に、第1のリソースとウェブページを組み立てるために必要とされるその他のリソースとの間の通信は、データオブジェクトからの情報を利用することによって削減され得る。
【0157】
データオブジェクトまたはパッケージングされたデータオブジェクトは、たとえば、以下、すなわち、i)インタラクションの要約、ii)インタラクションのコンパクトなバージョン、iii)インタラクション中の主要なイベントのリスト、またはiv)インタラクションの完全なもしくは実質的に完全なレコードのうちの1つを表す可能性がある。
【0158】
場合によっては、リソースにデータオブジェクトを提供するのではなく、デジタルアシスタントは、データオブジェクトに対応する一意のIDをリソースに提供し得る。デジタルアシスタントは、データオブジェクトをデータリポジトリに記憶し、データオブジェクトを一意のIDにマッピングすることができる。デジタルアシスタントは、データオブジェクトがサーバから取り出されることを可能にする一意の識別子を第1のリソースに送信する。
【0159】
たとえば、方法は、デジタルアシスタントにおいてユーザからの要求を受け取ることと、要求に関して、デジタルアシスタントによってユーザとインタラクションすることと、デジタルアシスタントによってインタラクションに基づいてユーザを第1のリソースに送ることと、デジタルアシスタントによって、送ることにつながるユーザとのインタラクションを表すデータオブジェクトを生成することと、インタラクションを特定する識別子をデジタルアシスタントによって生成することと、デジタルアシスタントによって識別子を第1のリソースに転送することと、デジタルアシスタントによってデータオブジェクトをリソースの遠隔にあるサーバに転送することとを含み得る。
【0160】
方法は、第1のリソースが識別子から遠隔のサーバを特定し、データオブジェクトの要求を遠隔のサーバに送信することを含み得る。第1のリソースは、データオブジェクトからインタラクションについての情報を取得することができる。第1のリソースは、データオブジェクト内の情報に基づいてユーザに提示するためのコンテンツを取得するために第2のリソースと通信することができる。
【0161】
場合によっては、第2のリソースは、第1のリソースから識別子を受信し、識別子から遠隔のサーバを特定することができる。第2のリソースは、遠隔のサーバからデータオブジェクトを取得することができる。第2のリソースは、データオブジェクトからインタラクションについての情報を取得することができる。データオブジェクトは、第1のリソースに対して不透明であることが可能である。
【0162】
第2のリソースは、インタラクションについての取得された情報に基づいて、ユーザに対して提示するために第1のリソースに1つまたは複数のコンテンツアイテムを送信することができる。コンテンツアイテムは、ウェブページまたはその他のグラフィカルユーザインターフェースもしくはオーディオインターフェースに含まれ得る。
【0163】
図8は、セキュアな処理環境内でデータを転送する方法の図である。方法800が、図1図2図3、または図9に示される1つまたは複数のコンポーネントまたはシステムによって実行され得る。方法800は、ACT 802において前のオーディオ入力のインジケーションを受信することを含み得る。コンピューティングデバイス上で実行される第三者アプリケーションが、前のオーディオ入力のインジケーションを受信し得る。第三者アプリケーションは、コンピューティングデバイス上で実行されるローカルデジタルアシスタントから前のオーディオ入力のインジケーションを受信し得る。第三者アプリケーションは、第三者アプリケーションが前のオーディオ入力のインジケーションを受信することを可能にするソフトウェア開発キットのアプリケーションプログラミングインターフェースを用いて構成され得る。前のオーディオ入力は、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にコンピューティングデバイスのマイクロフォンによって検出された、前のオーディオ入力入力に対応し得る。
【0164】
ローカルデジタルコンポーネントは、第三者アプリケーションを呼び出すために入力オーディオ信号を処理するために通信チャネルを介してリモートデジタルアシスタントコンポーネントと通信していることができる。たとえば、ローカルデジタルコンポーネントは、エンドユーザとの会話を促進することができる。ローカルデジタルアシスタントは、会話を促進するためにリモートデジタルアシスタントと通信することができる。たとえば、ローカルデジタルアシスタントは、エンドユーザからのオーディオ入力を検出し、問い合わせを生成し、問い合わせをリモートデジタルアシスタントに送信し、リモートデジタルアシスタントから問い合わせに対する応答を受信し、それから、応答をエンドユーザに提示することができる。
【0165】
第三者アプリケーションは、コンピューティングデバイスによって管理されるセキュアな処理環境内でコンピューティングデバイス上で実行され得る。場合によっては、セキュアな処理環境は、第三者アプリケーションに関してアクセスを制約するように設計されるかまたは構築される構成設定を特定するか、取得するか、構成設定にアクセスするか、または構成設定を提供することを指し得る。たとえば、第三者アプリケーションは、コンピューティングデバイス上の1つまたは複数の機能またはデータにアクセスすることを制約され得る。アプリケーションが何にアクセスし得るかを制約することによって、コンピューティングデバイスは、コンピューティングデバイスに記憶されるかまたはコンピューティングデバイス上で実行されるその他のコンポーネントまたはデータを保護することができる。セキュアな処理環境は、ローカルデジタルアシスタントコンポーネントによって処理された前のオーディオ入力へのアクセスを防止するように最初に構成され得る。
【0166】
場合によっては、前のオーディオ入力のインジケーションは、パッケージングされたデータオブジェクトを含み得る。パッケージングされたデータオブジェクトは、第三者アプリケーションを呼び出す結果となったオーディオ入力の受け取りの前にマイクロフォンによって検出された、前のオーディオ入力入力を含み得る。パッケージングされたデータオブジェクトは、構造化された会話、シリアル化された不透明トークン、またはイベント識別子を含み得る。パッケージングされたデータオブジェクトは、第三者アプリケーションの呼び出しに応じてローカルデジタルアシスタントコンポーネントによって生成され得る。
【0167】
場合によっては、前のオーディオ入力のインジケーションは、前のオーディオ入力またはパッケージングされたデータオブジェクトに対応する一意の識別子を含み得る。たとえば、パッケージングされたデータオブジェクト、前のオーディオ入力、または会話は、データ処理システムなどの遠隔のサーバに記憶され得る。データ処理システムは、前のオーディオ入力(またはパッケージングされたデータオブジェクトまたは会話)への一意の識別子のマッピングを含み得る。データ処理システムは、パッケージングされたデータオブジェクトではなく一意の識別子を第三者アプリケーションに提供することができる。会話自体(もしくはパッケージングされたデータオブジェクトもしくは構築された会話)ではなくまたはその代わりに一意の識別子を提供することは、ネットワーク帯域幅の使用またはコンピューティングデバイス上のメモリの使用を削減することができる。
【0168】
ACT 804において、第三者アプリケーションは、前のオーディオ入力の受信されたインジケーションをメモリに記憶し得る。第三者アプリケーションは、前のオーディオ入力の受信されたインジケーションをコンピューティングデバイスのメモリに記憶し得る。場合によっては、第三者アプリケーションが第三者アプリケーションによる使用のために特定のメモリのみを割り当てたセキュアな処理環境内で実行されている可能性があるので、第三者アプリケーションは、前のオーディオ入力のインジケーションをセキュアな処理環境またはそのメモリに記憶し得る。
【0169】
ACT 806において、第三者アプリケーションは、コンテンツ要求を生成し得る。第三者アプリケーションは、イベントに応じてコンテンツ要求を生成し得る。イベントは、第三者アプリケーション内で起こり得る。イベントは、ユーザインタラクションを含むかまたは指し得る。イベントは、第三者アプリケーションにおけるページ、レベル、アクション、スクリーン、条件、時間的な条件、地理的な条件、センサ入力、またはその他のトリガを含むかまたは指し得る。場合によっては、第三者アプリケーションの開発者が、イベントを構成するか、確立するか、またはセットアップし得る。第三者アプリケーションは、イベントに応じてコンテンツ要求をトリガするかまたは生成する第三者アプリケーションに組み込まれたスクリプトを含み得る。
【0170】
ACT 808において、第三者アプリケーションは、前のオーディオ入力のインジケーションを取り出し得る。第三者アプリケーションは、イベントに応じて前のオーディオ入力のインジケーションを取り出し得る。第三者アプリケーションは、コンテンツ要求の生成に応じて前のオーディオ入力のインジケーションを取り出し得る。第三者アプリケーションは、メモリから前のオーディオ入力のインジケーションを取り出し得る。第三者アプリケーションは、セキュアな処理環境から前のオーディオ入力のインジケーションを取り出し得る。
【0171】
場合によっては、第三者アプリケーションは、前のオーディオ入力のインジケーションを取り出し、前のオーディオ入力のインジケーションを含めるようにコンテンツ要求を生成することができる。たとえば、コンテンツ要求を生成することは、前のオーディオ入力のインジケーションを取り出し、それから、インジケーションをコンテンツ要求と組み合わせるかもしくはコンテンツ要求とともにインジケーションを埋め込むか、またはそうでなければ前のオーディオ入力のインジケーションをコンテンツ要求とともに含めることを含み得る。
【0172】
ACT 810において、第三者アプリケーションは、コンテンツ要求およびインジケーションを提供する。コンテンツ要求は、前のオーディオ入力のインジケーションを含み得る。第三者アプリケーションは、1つまたは複数の送信またはデータパケットを使用してコンテンツ要求および前のオーディオ入力のインジケーションを提供することができる。第三者アプリケーションは、コンテンツ要求および前のオーディオ入力のインジケーションをデジタルコンポーネントセレクタに提供し得る。デジタルセレクタは、コンテンツ要求を受信することに応じて、コンテンツ要求および前のオーディオ入力のインジケーションに基づいてリアルタイムのコンテンツ選択プロセスを実行することができる。
【0173】
場合によっては、前のオーディオ入力のインジケーションは、一意の識別子を含み得る。第三者アプリケーションは、前のオーディオ入力に対応する一意の識別子をローカルデジタルアシスタントコンポーネントから受信し得る。第三者アプリケーションは、第三者アプリケーションにおいて生成されたコンテンツ要求に応じてデジタルコンポーネントセレクタに一意の識別子を提供し得る。第三者アプリケーションは、一意の識別子およびコンテンツ要求をデジタルコンポーネントセレクタに送信し得る。デジタルコンポーネントセレクタは、前のオーディオ入力を特定するために一意の識別子を使用してデータベースの検索を実行することができる。第三者アプリケーションは、一意の識別子に対応する前のオーディオ入力に基づいて、リアルタイムのコンテンツ選択プロセスを介して選択されたデジタルコンポーネントを、提示するためにデジタルコンポーネントセレクタから受信することができる。
【0174】
第三者アプリケーションは、選択されたデジタルコンポーネントを受信し得る。第三者アプリケーションは、コンテンツ要求および前のオーディオ入力のインジケーションの送信の後に選択されたデジタルコンポーネントに受信し得る。第三者アプリケーションは、コンピューティングデバイスを介してデジタルコンポーネントを提示し得る。第三者アプリケーションは、コンピューティングデバイスによるオーディオ出力を介してデジタルコンポーネントを提示し得る。
【0175】
場合によっては、第三者アプリケーションは、選択され、受信されたデジタルコンポーネントを提示するために別のアプリケーションまたはデバイスに送信し得る。たとえば、第三者アプリケーションは、第1のコンピューティングデバイス上で実行される第1の第三者アプリケーションであり得る。第1の第三者アプリケーションは、第2の第三者アプリケーションと通信していることができる。第2の第三者アプリケーションは、同じ第1のコンピューティングデバイス、または第1のコンピューティングデバイスと別れている第2のコンピューティングデバイス上で実行され得る。第2の第三者アプリケーションは、第1の第三者アプリケーションと比較して異なる種類のアプリケーションであり得る。第1のおよび第2の第三者アプリケーションは、同じアプリケーション開発者によって提供され得る。第2の第三者アプリケーションは、第1の第三者アプリケーションに関連し得る。第2の第三者アプリケーションは、第1の第三者アプリケーションのバージョンであり得る。たとえば、第1の第三者アプリケーションは、スマートフォンのために構成されることが可能であり、一方、第2の第三者アプリケーションは、ラップトップまたはスマートウォッチのために構成されることが可能である。
【0176】
第1の第三者アプリケーションは、第2の第三者アプリケーションにデジタルコンポーネントを提示させるために第2の第三者アプリケーションに受信されたデジタルコンポーネントを送信し得る。第1の第三者アプリケーションは、受信されたデジタルコンポーネントを通信チャネルを介して送信し得る。場合によっては、第1の第三者アプリケーションは、コンピューティングデバイス、ローカルデジタルアシスタント、リモートデジタルアシスタント、デジタルコンポーネントセレクタ、またはデータ処理システムに命令を送信し得る。命令は、選択されたデジタルコンポーネントを第2の第三者アプリケーションに送信する命令を含み得る。たとえば、第1の第三者アプリケーションが第2のコンピューティングデバイス上の第2の第三者アプリケーションにデジタルコンポーネントを送信するのではなく、第1の第三者アプリケーションは、第2のコンピューティングデバイスによって実行される第2の第三者アプリケーションにデジタルコンポーネントを送信するようにデータ処理システムに命令することができる。
【0177】
場合によっては、第三者アプリケーションは、前のオーディオ入力のインジケーションを使用することを認可され得る。第三者アプリケーションは、第三者アプリケーションのコンテンツを修正するために前のオーディオ入力(たとえば、会話の側面)のインジケーションを解析し得る。たとえば、第三者アプリケーションは、前のオーディオ入力に関連する情報に基づいてテーマ、論理フロー、スクリーン、フォーマット、フォント、主題、話題、またはその他の側面を選択し得る。
【0178】
図9は、例示的なコンピュータシステム900のブロック図である。コンピュータシステムまたはコンピューティングデバイス900は、システム100、もしくはデータ処理システム102などのそのシステム100のコンポーネントを含むかまたはそれらを実装するために使用され得る。データ処理システム102は、インテリジェントなパーソナルアシスタントまたは音声ベースのデジタルアシスタントを含み得る。コンピューティングシステム900は、情報を通信するためのバス905またはその他の通信コンポーネントと、情報を処理するためのバス905に結合されたプロセッサ910または処理回路とを含む。また、コンピューティングシステム900は、情報を処理するためのバスに結合された1つまたは複数のプロセッサ910または処理回路を含み得る。コンピューティングシステム900は、情報およびプロセッサ910によって実行される命令を記憶するためのバス905に結合されたランダムアクセスメモリ(RAM)またはその他のダイナミックストレージデバイスなどのメインメモリ915も含む。メインメモリ915は、データリポジトリ124であるかまたはデータリポジトリ124を含み得る。メインメモリ915は、位置情報、一時的な変数、またはプロセッサ910による命令の実行中のその他の中間情報を記憶するためにも使用され得る。コンピューティングシステム900は、静的な情報およびプロセッサ910のための命令を記憶するためのバス905に結合された読み出し専用メモリ(ROM)920またはその他のスタティックストレージデバイスをさらに含む可能性がある。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス925が、情報および命令を永続的に記憶するためにバス905に結合され得る。ストレージデバイス925は、データリポジトリ124を含むかまたはデータリポジトリ124の一部であることができる。
【0179】
コンピューティングシステム900は、ユーザに対して情報を表示するための液晶ディスプレイまたはアクティブマトリックスディスプレイなどのディスプレイ935にバス905を介して結合される可能性がある。英数字およびその他のキーを含むキーボードなどの入力デバイス930が、プロセッサ910に情報およびコマンド選択を通信するためにバス905に結合される可能性がある。入力デバイス930は、タッチスクリーンディスプレイ935を含み得る。入力デバイス930は、プロセッサ910に方向情報およびコマンド選択を通信するためおよびディスプレイ935上でカーソルの動きを制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソル制御も含み得る。ディスプレイ935は、たとえば、図1のデータ処理システム102、クライアントコンピューティングデバイス150、またはその他のコンポーネントの一部であることが可能である。
【0180】
本明細書において説明されるプロセス、システム、および方法は、メインメモリ915に含まれる命令の配列をプロセッサ910が実行することに応じてコンピューティングシステム900によって実施され得る。そのような命令は、ストレージデバイス925などの別のコンピュータ可読媒体からメインメモリ915に読まれ得る。メインメモリ915に含まれる命令の配列の実行は、コンピューティングシステム900に本明細書において説明される例示的なプロセスを実行させる。マルチプロセッシング配列の1つまたは複数のプロセッサも、メインメモリ915に含まれる命令を実行するために使用される可能性がある。配線による回路が、本明細書において説明されるシステムおよび方法と一緒にソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて使用され得る。本明細書において説明されるシステムおよび方法は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されない。
【0181】
例示的なコンピューティングシステムが図9に示されたが、本明細書に記載の動作を含む主題は、本明細書において開示された構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
【0182】
本明細書において検討されたシステムがユーザについての個人情報を収集するか、または個人情報を利用する可能性がある状況に関して、ユーザは、プログラムまたは特徴が個人情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルなアクションもしくは活動、ユーザのプリファレンス、またはユーザの位置についての情報)を収集する可能性があるかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバもしくはその他のデータ処理システムから受け取るべきかどうかまたはどのようにして受け取るべきかを制御する機会を与えられる可能性がある。さらに、パラメータを生成するときに個人を特定することができる情報が削除されるように、特定のデータが、それが記憶されるかまたは使用される前に1つまたは複数のやり方で匿名化される可能性がある。たとえば、ユーザの身元が、個人を特定することができる情報がユーザに関して決定され得ないように匿名化される可能性があり、または(都市、郵便番号、もしくは州のレベルまでなど)位置情報が取得される場合に、ユーザの地理的位置が、ユーザの特定の位置が決定され得ないように一般化される可能性がある。したがって、ユーザは、情報がユーザについてどのように収集され、コンテンツサーバによって使用されるかを制御する可能性がある。
【0183】
本明細書に記載の主題および動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の主題は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために1つまたは複数のコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の回路として実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレーもしくはデバイス、またはそれらのうちの1つもしくは複数の組合せであるか、あるいはそれらに含まれることが可能である。コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先であることが可能である。コンピュータストレージ媒体は、1つもしくは複数の別個のコンポーネントもしくは媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれることも可能である。本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶された、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
【0184】
用語「データ処理システム」、「コンピューティングデバイス」、「コンポーネント」、または「データ処理装置」は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するための様々な装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレー)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。たとえば、インターフェース110、リモートアプリケーションランチャ116、デジタルコンポーネントセレクタ120、またはNLPコンポーネント114、およびその他のデータ処理システム102のコンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかまたは共有し得る。
【0185】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に好適なその他の単位としての形態を含む任意の形態で展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得る。コンピュータプログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の連携されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように展開され得る。
【0186】
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラム(たとえば、データ処理システム102のコンポーネント)を1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレー)またはASIC(特定用途向け集積回路)によって実行されることが可能であり、さらに、装置は、それらの専用の論理回路として実装されることが可能である。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含むすべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用論理回路によって補完され得るか、または専用論理回路に組み込まれ得る。
【0187】
本明細書に記載の主題は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載の主題の実装とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの組合せを含むコンピューティングシステムに実装され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続されることが可能である。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)および広域ネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
【0188】
システム100またはシステム900などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワーク(たとえば、ネットワーク105)を通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で走らされており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。一部の実装において、サーバは、(たとえば、クライアントデバイスとインタラクションするユーザに対してデータを表示し、そのようなユーザからユーザ入力を受け取る目的で)クライアントデバイスにデータ(たとえば、デジタルコンポーネントを表すデータパケット)を送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)は、サーバにおいてクライアントデバイスから受信され得る(たとえば、コンピューティングデバイス104またはデジタルコンポーネントプロバイダデバイス106または第三者アプリケーション開発者デバイス108からデータ処理システム102によって受信され得る)。
【0189】
動作が特定の順序で図面に示されているが、そのような動作は、示された特定の順序でまたは逐次的順序で実行される必要があるわけではなく、すべての示された動作が、実行される必要があるわけではない。本明細書に記載のアクションは、異なる順序で実行され得る。
【0190】
様々なシステムコンポーネントの分割は、すべての実装において分割を必要とするわけではなく、説明されたプログラムコンポーネントは、単一のハードウェアまたはソフトウェア製品に含まれ得る。たとえば、NLPコンポーネント114またはデジタルコンポーネントセレクタ120は、単一のコンポーネント、アプリ、もしくはプログラム、または1つもしくは複数の処理回路を有する論理デバイス、またはデータ処理システム102の1つもしくは複数のサーバの一部であることが可能である。
【0191】
今やいくつかの例示的な実装を説明したが、以上は例示的であり、限定的でなく、例として提示されたことは明らかである。特に、本明細書において提示された例の多くは方法の行為またはシステムの要素の特定の組合せを伴うが、それらの行為およびそれらの要素は、同じ目的を達成するためにその他のやり方で組み合わされる可能性がある。1つの実装に関連して検討された行為、要素、および特徴は、その他の実装の同様の役割または実装から除外されるように意図されていない。
【0192】
本明細書において使用された言葉遣いおよび用語は、説明を目的としており、限定と見なされるべきでない。本明細書における「~を含む(including)」、「~を含む(comprising)」、「~を有する」、「~を含む(containing)」、「~を含む(involving)」、「~によって特徴付けられる(characterized by)」、「~ことを特徴とする(characterized in that)」、およびこれらの変化形の使用は、その前に列挙された項目、それらの項目の均等物、および追加的な項目、ならびにその前に列挙された項目だけからなる代替的な実装を包含するように意図される。1つの実装において、本明細書に記載のシステムおよび方法は、説明された要素、行為、またはコンポーネントのうちの1つ、2つ以上のそれぞれの組合せ、またはすべてからなる。
【0193】
本明細書において単数形で言及されたシステムおよび方法の実装または要素または行為への任意の言及は、複数のこれらの要素を含む実装も包含する可能性があり、本明細書における任意の実装または要素または行為への複数形の任意の言及は、単一の要素のみを含む実装も包含する可能性がある。単数形または複数形の言及は、今開示されたシステムまたは方法、それらのコンポーネント、行為、または要素を単一のまたは複数の構成に限定するように意図されていない。任意の情報、行為、または要素に基づいている任意の行為または要素への言及は、行為または要素が任意の情報、行為、または要素に少なくとも部分的に基づく実装を含む可能性がある。
【0194】
本明細書において開示された任意の実装は、任意のその他の実装または実施形態と組み合わされる可能性があり、「実装」、「いくつかの実装」、「1つの実装」などの言及は、必ずしも相互排他的ではなく、実装に関連して説明された特定の特徴、構造、または特色が少なくとも1つの実装または実施形態に含まれる可能性があることを示すように意図される。本明細書において使用されるそのような用語は、必ずしもすべてが同じ実装に言及しているとは限らない。任意の実装は、本明細書において開示された態様および実装に合致する任意の様態で包括的または排他的に任意のその他の実装と組み合わされる可能性がある。
【0195】
「または(or)」との言及は、「または(or)」を使用して記載された任意の項が記載された項のうちの1つ、2つ以上、およびすべてのいずれかを示す可能性があるように包括的であると見なされる可能性がある。たとえば、「『A』および『B』のうちの少なくとも一方」との言及は、「A」のみ、「B」のみ、および「A」と「B」との両方を含み得る。「~を含む(comprising)」またはその他の非限定的用語(open terminology)と関連して使用されるそのような言及は、追加的な項目を含み得る。
【0196】
図面、詳細な説明、または任意の請求項の技術的な特徴が後に参照符号を付されている場合、参照符号は、図面、詳細な説明、および請求項を理解し易くするために含められた。したがって、参照符号があることもないことも、いかなる請求項の要素の範囲に対するいかなる限定的な効果も持たない。
【0197】
本明細書に記載のシステムおよび方法は、それらの特徴を逸脱することなくその他の特定の形態で具現化される可能性がある。たとえば、コンピューティングデバイス104は、パッケージングされたデータオブジェクトを生成し、アプリケーションを起動するときに第三者アプリケーションにそのパッケージングされたデータオブジェクトを転送し得る。上述の実装は、説明されたシステムおよび方法の限定ではなく、例示的である。したがって、本明細書に記載のシステムおよび方法の範囲は、上述の説明ではなく添付の請求項によって示され、請求項の均等の意味および範囲内に入る変更は、それに包含される。
【符号の説明】
【0198】
100 システム
102 データ処理システム
104 クライアントコンピューティングデバイス
105 ネットワーク
106 デジタルコンポーネントプロバイダデバイス
108 第三者アプリケーション開発者デバイス
110 インターフェース
112 リモートデジタルアシスタント
114 自然言語プロセッサコンポーネント
116 リモートアプリランチャ
118 オーディオパッケージングコンポーネント
120 デジタルコンポーネントセレクタ
122 アトリビューションコンポーネント
124 データリポジトリ
126 ディープリンク
128 パッケージングされたデータ
130 イベント識別子
132 コンテンツデータ
134 ローカルデジタルアシスタント
136 コンピューティングセキュリティコンポーネント
138 センサ
140 トランスデューサ
142 オーディオドライバ
144 ディスプレイ
150 クライアントコンピューティングデバイス
200 システム
202a 第1の入力
202b 第1の出力
202c 第2の入力
216 セキュアな処理環境
218 アプリ
220 パッケージングされたデータオブジェクト
300 システム
308 一意の識別子
312 テキストボックス
400 方法
500 方法
600 方法
700 方法
800 方法
900 コンピュータシステム
905 バス
910 プロセッサ
915 メインメモリ
920 読み出し専用メモリ(ROM)
925 ストレージデバイス
930 入力デバイス
935 ディスプレイ
図1
図2
図3
図4
図5
図6
図7
図8
図9