【文献】
山登 庸次,ユビキタス環境で動的にサービス実現するためのサービス合成技術 Ubiquitous Service Composition Technology for Ubiquitous Network Environments,情報処理学会論文誌 第48巻 第2号 IPSJ Journal,日本,社団法人情報処理学会 Information Processing Society of Japan,2007年 2月15日,第48巻 第2号,P.562−577
(58)【調査した分野】(Int.Cl.,DB名)
前記データ処理システムは、前記アクションデータ構造を前記サードパーティプロバイダデバイスに送信して、前記サードパーティプロバイダデバイスに、前記サードパーティプロバイダデバイスにより実行される前記会話アプリケーションプログラミングインタフェースを起動させる、請求項1に記載のシステム。
前記データ処理システムは、前記アクションデータ構造を前記サードパーティプロバイダデバイスに送信して、前記サードパーティプロバイダデバイスに、前記サードパーティプロバイダデバイスに対して構成され前記データ処理システムにより実行される前記会話アプリケーションプログラミングインタフェースを起動させる、請求項1に記載のシステム。
前記データ処理システムにより、前記アクションデータ構造を前記サードパーティプロバイダデバイスに送信して、前記サードパーティプロバイダデバイスに、前記サードパーティプロバイダデバイスに対して構成され前記データ処理システムにより実行される前記会話アプリケーションプログラミングインタフェースを起動させるステップを含む、請求項12に記載の方法。
【発明を実施するための形態】
【0010】
以下は、コンピュータネットワークを介してパケット化されたアクションをルーティングする方法、装置、およびシステムの実装に関連する様々な概念のより詳細な説明である。上で導入し以下でさらに詳細に説明する様々な概念を任意の多数の方法で実装してもよい。
【0011】
本開示は一般に、異種のコンピューティングリソース上の情報送信および処理の効率および有効性を高めることに関する。異種のコンピューティングリソースが音声ベースのコンピューティング環境においてオーディオベースの命令を効率的に処理し、一貫しておよび正確に解析するのは困難である。例えば、当該異種のコンピューティングリソースは、同一の音声モデルへのアクセスを有さないかもしれず、または当該オーディオベースの命令を解析するのを困難にしうる古いまたは非同期の音声モデルにアクセスするかもしれない。
【0012】
本開示のシステムおよび方法は一般に、コンピュータネットワークを介してパケット化されたアクションをルーティングするデータ処理システムに関する。データ処理システムは特に、当該音声ベースの命令を解析しアクションデータ構造を生成するための集約された音声に基づいてトレーニングされた音声モデルを用いて当該音声ベースの入力を処理することができる。データ処理システムは当該アクションデータ構造をデータ処理システムまたはサードパーティプロバイダデバイスの1つまたは複数のコンポーネントに送信でき、それにより当該サードパーティプロバイダデバイスは当該音声ベースの入力を処理する必要なしに当該アクションデータ構造を処理することができる。複数のサードパーティプロバイダデバイスに対する当該音声ベースの入力を処理することによって、データ処理システムは音声ベースの命令が処理され実施される信頼性、効率、および精度を高めることができる。
【0013】
本発明は、エンド・ユーザからの音声ベースの命令を解析し、テンプレートを用いてアクションデータ構造を構築し、当該アクションデータ構造を対応するサードパーティプロバイダにルーティングすることで、リソース消費、プロセッサ利用、バッテリ消費、帯域幅利用、オーディオファイルのサイズ、またはスピーカにより消費される時間量を減らすことができる。
【0014】
図1はコンピュータネットワークを介してパケット化されたアクションをルーティングするための例示的なシステム100を示す。システム100はコンテンツ選択インフラを含むことができる。システム100はデータ処理システム102を含むことができる。データ処理システム102は、ネットワーク105を介して、コンテンツプロバイダコンピューティングデバイス106、サービスプロバイダコンピューティングデバイス108、またはクライアントコンピューティングデバイス104の1つまたは複数と通信することができる。ネットワーク105は、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、メトロポリタン・ネットワーク、または他の領域ネットワーク、イントラネット、衛星ネットワーク、および音声またはデータモバイル電話ネットワークのような他の通信ネットワークのようなコンピュータネットワークを含むことができる。ネットワーク105を、ラップトップ、デスクトップ、タブレット、携帯情報端末、スマートフォン、ポータブルコンピュータ、またはスピーカのような少なくとも1つのコンピューティングデバイス104に提供、出力、描画、または表示できる、ウェブページ、ウェブサイト、ドメイン名、またはユニフォーム・リソース・ロケータのような情報リソースにアクセスするために使用することができる。例えば、ネットワーク105を介してコンピューティングデバイス104のユーザは、サービスプロバイダ108またはコンテンツプロバイダ106により提供された情報またはデータにアクセスすることができる。コンピューティングデバイス104は、ディスプレイを含んでも含まなくてもよい。例えば、当該コンピューティングデバイスは、マイクロフォンおよびスピーカのような制限されたタイプのユーザインタフェースを含んでもよい。幾つかのケースでは、コンピューティングデバイス104の主要なユーザインタフェースはマイクロフォンおよびスピーカであってもよい。
【0015】
ネットワーク105は、コンテンツ配置または検索エンジン結果システムに関連付けられるか、または、サードパーティコンテンツ・アイテムをコンテンツ・アイテム配置キャンペーンの一部として含む権利があるディスプレイネットワーク、例えば、インターネット上で利用可能な情報リソースのサブセットを含むかまたは構成することができる。ネットワーク105を、クライアントコンピューティングデバイス104により提供、出力、描画、または表示できるウェブページ、ウェブサイト、ドメイン名、またはユニフォーム・リソース・ロケータのような情報リソースにアクセスするために、データ処理システム102により使用することができる。例えば、ネットワーク105を介してクライアントコンピューティングデバイス104のユーザはコンテンツプロバイダコンピューティングデバイス106またはサービスプロバイダコンピューティングデバイス108により提供された情報またはデータにアクセスすることができる。
【0016】
ネットワーク105は、任意のタイプまたは形態のネットワークであってもよく、ポイント・ツー・ポイントネットワーク、ブロードキャストネットワーク、広帯域ネットワーク、ローカル・エリア・ネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(Asynchronous Transfer Mode)ネットワーク、SONET(Synchronous Optical Network)ネットワーク、SDH(Synchronous Digital Hierarchy)ネットワーク、ワイヤレスネットワークおよび有線ネットワークのうち何れかを含んでもよい。ネットワーク105は赤外線チャネルまたは衛星帯域のような無線リンクを含んでもよい。ネットワーク105のトポロジはバス、星形、またはリング・ネットワークトポロジを含んでもよい。当該ネットワークは、高度携帯電話プロトコル(「AMPS」)、時分割多重アクセス(「TDMA」)、符号分割多重アクセス(「CDMA」)、グローバル・システム・フォー・モバイル・コミュニケーション(「GSM(登録商標)」)、汎用パケット無線サービス(「GPRS」)またはユニバーサル・モバイル電気通信システム(「UMTS」)を含む、モバイルデバイスの間で通信するために使用される任意の1つまたは複数のプロトコルを用いた携帯電話ネットワークを含んでもよい。様々なタイプのデータが異なるプロトコルを介して送信されてもよいか、または、同一のタイプのデータが異なるプロトコルを介して送信されてもよい。
【0017】
システム100は少なくとも1つのデータ処理システム102を含むことができる。データ処理システム102は、ネットワーク105を介して、例えばコンピューティングデバイス104、コンテンツプロバイダデバイス106(コンテンツプロバイダ106)、またはサービスプロバイダデバイス108(またはサービスプロバイダ108)と通信するためのプロセッサを有するコンピューティングデバイスのような少なくとも1つの論理デバイスを含むことができる。データ処理システム102は、少なくとも1つの計算リソース、サーバ、プロセッサまたはメモリを含むことができる。例えば、データ処理システム102は少なくとも1つのデータセンタに配置された複数の計算リソースまたはサーバを含むことができる。データ処理システム102は、複数の、論理的にグループ化されたサーバを含むことができ、分散コンピューティング技術を促進する。サーバの当該論理グループをデータセンタ、サーバ・ファームまたはマシン・ファームと称してもよい。当該サーバはまた、地理的に分散されることができる。データセンタまたはマシン・ファームを単一のエンティティとして管理してもよく、または当該マシン・ファームは複数のマシン・ファームを含むことができる。各マシン・ファーム内の当該サーバは不均一であることができる。即ち、当該サーバまたはマシンのうち1つまたは複数が1つまたは複数のタイプのオペレーティング・システムプラットフォームに従って動作することができる。
【0018】
当該マシン・ファーム内のサーバ、関連付けられた記憶システムとともに高密度ラック・システムに格納でき、エンタープライズデータセンタに配置することができる。例えば、当該サーバをこのように統合することで当該システムのシステム管理可能性、データセキュリティ、当該物理セキュリティを高めることができ、高性能ネットワーク上にサーバおよび高性能記憶システムを配置することでシステム性能を高めることができる。サーバおよび記憶システムを含むデータ処理システム102コンポーネントの全部または一部の集約化、それらを高度なシステム管理ツールと組み合わせることで、サーバリソースのより効率的な利用が可能となり、これは電力および処理要件を節約し帯域幅利用を減らす。
【0019】
システム100は、少なくとも1つのサービスプロバイダデバイス108を含み、それにアクセスし、または対話することができる。サービスプロバイダデバイス108は、ネットワーク105を介して、例えばコンピューティングデバイス104、データ処理システム102、またはコンテンツプロバイダ106と通信するためのプロセッサを有するコンピューティングデバイスのような少なくとも1つの論理デバイスを含むことができる。サービスプロバイダデバイス108は、少なくとも1つの計算リソース、サーバ、プロセッサまたはメモリを含むことができる。例えば、サービスプロバイダデバイス108は少なくとも1つのデータセンタに配置された複数の計算リソースまたはサーバを含むことができる。サービスプロバイダデバイス108はデータ処理システム102の1つまたは複数のコンポーネントまたは機能を含むことができる。
【0020】
コンテンツプロバイダコンピューティングデバイス106は、クライアントコンピューティングデバイス104により表示するためのオーディオベースのコンテンツ・アイテムを、オーディオ出力コンテンツ・アイテムとして提供することができる。当該コンテンツ・アイテムは「Would you like me to order you a taxi?」と述べる音声ベースのメッセージのような商品またはサービスの申し出を含むことができる。例えば、コンテンツプロバイダコンピューティングデバイス155は、音声ベースのクエリに応答してを提供できる一連のオーディオコンテンツ・アイテムを格納するためのメモリを含むことができる。コンテンツプロバイダコンピューティングデバイス106はまた、オーディオベースのコンテンツ・アイテム(または他のコンテンツ・アイテム)をデータ処理システム102に提供することができる。それらをデータリポジトリ124に格納することができる。データ処理システム102は当該オーディオコンテンツ・アイテムを選択し、当該オーディオコンテンツ・アイテムをクライアントコンピューティングデバイス104に提供する(または提供するようにコンテンツプロバイダコンピューティングデバイス104に指示する)ことができる。当該オーディオベースのコンテンツ・アイテムは、排他的にオーディオであることができ、または、テキスト、画像、またはビデオデータと組み合わせることができる。
【0021】
サービスプロバイダデバイス108はインタフェースを含むことができ、または少なくとも1つのサービスプロバイダ自然言語プロセッサコンポーネント142およびサービスプロバイダインタフェース144と通信することができる。サービスプロバイダコンピューティングデバイス108は、少なくとも1つのサービスプロバイダ自然言語プロセッサ(NLP)コンポーネント142および少なくとも1つのサービスプロバイダインタフェース144を含むことができる。サービスプロバイダNLPコンポーネント142(またはサービスプロバイダコンピューティングデバイス108のダイレクト・アクションAPIのような他のコンポーネント)は、クライアントコンピューティングデバイス104と(データ処理システムを介して102またはデータ処理システム102をバイパスして)関与して、クライアントコンピューティングデバイス104およびサービスプロバイダコンピューティングデバイス108の間の行き来するリアルタイム音声またはオーディオベースの会話(例えば、セッション)を生成することができる。サービスプロバイダNLP142はデータ処理システム102のNLPコンポーネント112としての1つまたは複数の機能または特徴を含むことができる。例えば、サービスプロバイダインタフェース144はデータメッセージを受信し、または、データメッセージをデータ処理システム102のダイレクト・アクションAPI116に提供することができる。サービスプロバイダコンピューティングデバイス108およびコンテンツプロバイダコンピューティングデバイス106を同一のエンティティに関連付けることができる。例えば、コンテンツプロバイダコンピューティングデバイス106はカーシェア・サービスに対して利用可能なコンテンツ・アイテムを生成、格納、または作成でき、およびサービスプロバイダコンピューティングデバイス108はクライアントコンピューティングデバイス106とのセッションを確立してクライアントコンピューティングデバイス104のエンド・ユーザをピックアップするためのタクシーまたはカーシェアサービスの車の配送をアレンジすることができる。データ処理システム102、ダイレクト・アクションAPI116を介して、NLPコンポーネント112または他のコンポーネントはまた、当該クライアントコンピューティングデバイスとのセッションを確立し、サービスプロバイダコンピューティングデバイス104を含むかまたはバイパスして、例えばタクシーまたはカーシェアサービスの車の配送をアレンジすることができる。
【0022】
コンピューティングデバイス104は、インタフェース、またはと通信する少なくとも1つのセンサ134、トランスデューサ136、オーディオドライバ138、またはプリプロセッサ140を含むことができる。センサ134は、例えば、周辺光センサ、近接性センサ、温度センサ、加速度計、ジャイロスコープ、動き検出器、GPSセンサ、位置センサ、マイクロフォン、またはタッチセンサを含むことができる。トランスデューサ136はスピーカまたはマイクロフォンを含むことができる。オーディオドライバ138はソフトウェアインタフェースをハードウェアトランスデューサ136にを提供することができる。当該オーディオドライバは、データ処理システム102によりを提供されたオーディオファイルまたは他の命令を実行して、対応する音波または音波を生成するようにトランスデューサ136を制御することができる。プリプロセッサ140を、キーワードを検出するし、当該キーワードに基づいてアクションを実施するように構成することができる。プリプロセッサ140は、1つまたは複数の用語をフィルタするか、または、当該用語を、さらなる処理のために当該用語をデータ処理システム102に送信する前に修正することができる。プリプロセッサ140はマイクロフォンにより検出されたアナログオーディオ信号をデジタルオーディオ信号に変換し、ネットワーク105を介して、当該デジタルオーディオ信号を運搬する1つまたは複数のデータパケットをデータ処理システム102に送信することができる。幾つかのケースでは、プリプロセッサ140は、かかる送信を実施するための命令を検出したことに応答して、当該入力オーディオ信号の一部または全部を運搬するデータパケットを送信することができる。当該命令は、例えば、当該入力オーディオ信号を含むデータパケットをデータ処理システム102に送信するためのトリガキーワードまたは他のキーワードまたは承認を含むことができる。
【0023】
クライアントコンピューティングデバイス104を、(センサ134を介して)音声クエリをオーディオ入力としてクライアントコンピューティングデバイス104に入力するエンド・ユーザに関連付けることができる。当該エンド・ユーザは、データ処理システム102(またはコンテンツプロバイダコンピューティングデバイス106またはサービスプロバイダコンピューティングデバイス108)からクライアントコンピューティングデバイス104に提供し、トランスデューサ136(例えば、スピーカ)から出力供できるコンピュータ生成された音声の形でオーディオ出力を受信する。当該コンピュータ生成された音声は実際の人またはコンピュータ生成された言語からの記録を含むことができる。
【0024】
データリポジトリ124は1つまたは複数のローカルまたは分散データベースを含むことができ、データベース管理システムを含むことができる。データリポジトリ124はコンピュータデータ記憶またはメモリを含むことができ、他のデータのうち1つまたは複数のパラメータ126、1つまたは複数のポリシ128、コンテンツデータ130、またはテンプレート132を格納することができる。パラメータ126、ポリシ128、およびテンプレート132は、音声ベースのセッションに関するルールクライアントコンピューティングデバイス104およびデータ処理システム102(またはサービスプロバイダコンピューティングデバイス108)の間ののような情報を含むことができる。コンテンツデータ130は、オーディオ出力に対するコンテンツ・アイテムまたは関連付けられたメタデータ、ならびにクライアントコンピューティングデバイス104との1つまたは複数の通信セッションの一部でありうる入力オーディオメッセージを含むことができる。
【0025】
データ処理システム102は少なくとも1つの計算リソースまたはサーバを有するコンテンツ配置システムを含むことができる。データ処理システム102は、インタフェースを含むか、または少なくとも1つのインタフェース110と通信することができる。データ処理システム102はインタフェースを含むことができ、または少なくとも1つの自然言語プロセッサコンポーネント112と通信する。データ処理システム102はインタフェースを含むことができ、または少なくとも1つのダイレクト・アクション・アプリケーションプログラミングインタフェース(「API」)116と通信する。データ処理システム102はインタフェースを含むことができ、または少なくとも1つのセッションハンドラ114と通信する。データ処理システム102はインタフェースを含むことができ、または少なくとも1つのコンテンツセレクタコンポーネント118と通信する。データ処理システム102はインタフェースを含むことができ、または少なくとも1つのオーディオ信号ジェネレータ122と通信する。データ処理システム102はインタフェースを含むことができ、または少なくとも1つのデータリポジトリ124と通信する。少なくとも1つのデータリポジトリ124は、1つまたは複数のデータ構造またはデータベースに、パラメータ126、ポリシ128、コンテンツデータ130、またはテンプレート132をを含むかまたは格納することができる。パラメータ126は、例えば、閾値、距離、時間間隔、期間、スコア、または重みを含むことができる。コンテンツデータ130は、例えば、コンテンツキャンペーン情報、コンテンツグループ、コンテンツ選択基準、コンテンツ・アイテム・オブジェクトまたはコンテンツプロバイダ106により提供されたまたはコンテンツ選択を促進するためにデータ処理システムにより取得または決定された他の情報を含むことができる。コンテンツデータ130は、例えば、コンテンツキャンペーンの履歴性能を含むことができる。
【0026】
インタフェース110、自然言語プロセッサコンポーネント112、セッションハンドラ114、ダイレクト・アクションAPI116、コンテンツセレクタコンポーネント118、またはオーディオ信号ジェネレータコンポーネント122はそれぞれ、プログラム可能論理アレイエンジンのような少なくとも1つの処理ユニットまたは他の論理デバイス、または当該データベースリポジトリまたはデータベース124と通信するように構成されたモジュールを含むことができる。インタフェース110、自然言語プロセッサコンポーネント112、セッションハンドラ114、ダイレクト・アクションAPI116、コンテンツセレクタコンポーネント118、オーディオ信号ジェネレータコンポーネント122およびデータリポジトリ124は、別々のコンポーネント、単一のコンポーネント、またはデータ処理システム102の一部であることができる。システム100およびそのコンポーネント、データ処理システムのような102、は1つまたは複数のプロセッサ、論理デバイス、または回路のようなハードウェア要素を含むことができる。
【0027】
データ処理システム102は複数のコンピューティングデバイス104に関連付けられた匿名コンピュータネットワーク活動情報を取得することができる。コンピューティングデバイス104のユーザは、データ処理システム102を肯定的に認証してユーザのコンピューティングデバイス104に対応するネットワーク活動情報を取得することができる。例えば、データ処理システム102は1つまたは複数のタイプのネットワーク活動情報を取得することに対する同意に関してコンピューティングデバイス104の当該ユーザを促すことができる。コンピューティングデバイス104のユーザのアイデンティティは匿名のままであってもよく、コンピューティングデバイス104を、一意な識別子(例えば、データ処理システムまたは当該コンピューティングデバイスのユーザにより提供された当該コンピューティングデバイスのユーザの一意な識別子)に関連付けることができる。データ処理システムは各観測を対応する一意な識別子に関連付けることができる。
【0028】
コンテンツプロバイダ106は電子コンテンツキャンペーンを確立することができる。当該電子コンテンツキャンペーンをコンテンツデータ130としてデータリポジトリ124に格納することができる。電子コンテンツキャンペーンは、共通のテーマに対応する1つまたは複数のコンテンツグループを指すことができる。コンテンツキャンペーンは、コンテンツグループ、コンテンツ・アイテムデータオブジェクト、およびコンテンツ選択基準を含む階層的データ構造を含むことができる。コンテンツキャンペーンを生成するために、コンテンツプロバイダ106は、当該コンテンツキャンペーンのキャンペーンレベルパラメータの値を指定することができる。当該キーャンペーンレベルパラメータは、例えば、キャンペーン名、コンテンツ・アイテム・オブジェクトを配置するための好適なコンテンツネットワーク、当該コンテンツキャンペーンに使用されるリソースの値、当該コンテンツキャンペーンの開始日と終了日、当該コンテンツキャンペーンの期間、コンテンツ・アイテム・オブジェクト配置のスケジュール、言語、地理的位置、コンテンツ・アイテム・オブジェクトを提供するコンピューティングデバイスのタイプを含むことができる。幾つかのケースでは、印象は、コンテンツ・アイテム・オブジェクトがそのソース(例えば、データ処理システム102またはコンテンツプロバイダ106)からフェッチされたときを指すことができ、計測可能である。幾つかのケースでは、クリック詐欺の可能性のため、ロボット活動をインプレッションとしてフィルタし除外することができる。したがって、幾つかのケースでは、インプレッションはブラウザからのページ要求へのWebサーバからの応答の測定値を指すことができる、当該ページ要求はロボット活動およびエラーコードからフィルタされ、コンピューティングデバイス104に表示するためのコンテンツ・アイテム・オブジェクトを描画する機会にできるだけ近いポイントで記録される。幾つかのケースでは、インプレッションは視聴可能または可聴なインプレッションを指すことができる。例えば、当該コンテンツ・アイテム・オブジェクトは、少なくとも部分的に(例えば、20%、30%、30%、40%、50%、60%、70%、またはそれ以上)クライアントコンピューティングデバイス104のディスプレイデバイスで視聴可能、またはコンピューティングデバイス104のスピーカ136を介して可聴である。クリックまたは選択は、可聴インプレッションへの音声応答、マウス−クリック、タッチ対話、ジェスチャ、振動、オーディオ対話、またはキーボードクリックのような当該コンテンツ・アイテム・オブジェクトとのユーザ対話を指すことができる。変換は、ユーザが、当該コンテンツ・アイテム・オブジェクトに関して所望のアクションをとったこと、例えば、製品またはサービスの購入、調査の完了、当該コンテンツ・アイテムに対応する物理的な店の訪問、または電子トランザクションの完了を指すことができる。
【0029】
コンテンツプロバイダ106はさらに、コンテンツキャンペーンに対する1つまたは複数のコンテンツグループを確立することができる。コンテンツグループは、1つまたは複数のコンテンツ・アイテム・オブジェクトおよびキーワード、単語、用語、フレーズ、地理的位置、コンピューティングデバイスのタイプ、日時、関心、トピック、または垂直線のような対応するコンテンツ選択基準を含む。同一のコンテンツキャンペーンのもとでのコンテンツグループは同一のキャンペーンレベルパラメータを共有できるが、キーワード、ネガティブなキーワード(例えば、メイン・コンテンツに対するネガティブなキーワードの存在下で当該コンテンツ・アイテムの配置をブロックする)、キーワードに対する入札、または当該入札またはコンテンツキャンペーンに関連付けられたパラメータのような特定のコンテンツグループレベルパラメータに関する仕様をカスタマイズしてもよい。
【0030】
新たなコンテンツグループを生成するために、当該コンテンツプロバイダは、当該コンテンツグループのコンテンツグループレベルパラメータの値を提供することができる。当該コンテンツグループレベルパラメータは、例えば、コンテンツグループの名前またはコンテンツグループのテーマ、および異なるコンテンツ配置機会(例えば、自動配置または管理された配置)に対する入札または結果(例えば、クリック、インプレッション、または変換)を含む。コンテンツグループの名前またはコンテンツグループテーマはコンテンツプロバイダ106が当該コンテンツグループのどのコンテンツ・アイテム・オブジェクトが表示のために選択されるべきかに対するトピックまたは主題をキャプチャするために使用できる、1つまたは複数の用語であることができる。例えば、車ディーラーは、それが有する車のブランドごとに異なるコンテンツグループを生成でき、さらに、それが有する車のモデルごとに異なるコンテンツグループを生成してもよい。当該車ディーラーが使用できるコンテンツグループテーマの例には、例えば、「Make A sports car」、「Make B sports car」、「Make C sedan」、「Make C truck」、「Make C hybrid」、または「Make D hybrid」が含まれる。例コンテンツキャンペーンテーマは「ハイブリッド」であることができ、例えば「Make C hybrid」および「Make D hybrid」の両方に対するコンテンツグループを含む。
【0031】
コンテンツプロバイダ106は、1つまたは複数のキーワードおよびコンテンツ・アイテム・オブジェクトを各コンテンツグループに提供することができる。キーワードは、当該コンテンツ・アイテム・オブジェクトに関連付けられるかまたは識別された製品またはサービスに関連する用語を含むことができる。キーワードは1つまたは複数の用語またはフレーズを含むことができる。例えば、当該車ディーラーはコンテンツグループまたはコンテンツキャンペーンのためのキーワードとして、「スポーツカー」、「V−6エンジン」、「四輪駆動」、「燃料効率」を含むことができる。幾つかのケースでは、ネガティブなキーワードを、特定の用語またはキーワードに対するコンテンツ配置を回避、防止、ブロック、または無効にするためにコンテンツプロバイダにより指定することができる。当該コンテンツプロバイダはコンテンツ・アイテム・オブジェクトを選択するために使用される厳密なマッチ、フレーズマッチ、または広義のマッチのようなマッチングのタイプを指定することができる。
【0032】
コンテンツプロバイダ106は、コンテンツプロバイダ106により提供されたコンテンツ・アイテム・オブジェクトを選択するためにデータ処理システム102により使用される1つまたは複数のキーワードを提供することができる。コンテンツプロバイダ106は、入札する1つまたは複数のキーワードを識別でき、さらに様々なキーワードに対する入札量を提供することができる。コンテンツプロバイダ106は、コンテンツ・アイテム・オブジェクトを選択するためにデータ処理システム102により使用される追加のコンテンツ選択基準を提供することができる。複数のコンテンツプロバイダ106は同一のまたは異なるキーワードに入札でき、データ処理システム102は、電子メッセージのキーワードの指示を受信したことに応答して、コンテンツ選択プロセスまたは広告オークションを実行することができる。
【0033】
コンテンツプロバイダ106は、データ処理システム102により選択するための1つまたは複数のコンテンツ・アイテム・オブジェクトを提供することができる。データ処理システム102は(例えば、コンテンツセレクタコンポーネント118を介して)リソース位置、コンテンツスケジュール、最大入札、キーワード、およびコンテンツグループに対して指定された他の選択基準にマッチするコンテンツ配置機会が利用可能になったとき、当該コンテンツ・アイテム・オブジェクトを選択することができる。様々なタイプのコンテンツ・アイテム・オブジェクトは、音声コンテンツ・アイテム、オーディオコンテンツ・アイテム、テキストコンテンツ・アイテム、画像コンテンツ・アイテム、ビデオコンテンツ・アイテム、マルチメディアコンテンツ・アイテム、またはコンテンツ・アイテムリンクのようなコンテンツグループに含まれることができる。コンテンツ・アイテムを選択すると、データ処理システム102は、コンピューティングデバイス104またはコンピューティングデバイス104のディスプレイデバイスに描画するための当該コンテンツ・アイテム・オブジェクトを送信することができる。描画は、当該コンテンツ・アイテムをディスプレイデバイスに表示すること、または当該コンピューティングデバイスのスピーカ104を介して当該コンテンツ・アイテムを再生することを含むことができる。データ処理システム102は、コンピューティングデバイス104への命令を当該コンテンツ・アイテムを描画するオブジェクトに提供することができる。データ処理システム102は、オーディオ信号または音波を生成するように、コンピューティングデバイス104、またはコンピューティングデバイス104のオーディオドライバ138に指示することができる。
【0034】
データ処理システム102は例えば、データパケットを用いて情報を送受信するように設計され、構成され、構築され、または動作するインタフェースコンポーネント110を含むことができる。インタフェース110は、ネットワークプロトコルのような1つまたは複数のプロトコルを用いて情報を送受信することができる。インタフェース110は、ハードウェアインタフェース、ソフトウェアインタフェース、有線インタフェース、またはワイヤレスインタフェースを含むことができる。インタフェース110は、或るフォーマットから別のフォーマットへのデータ変換またはデータ・フォーマットを促進することができる。例えば、インタフェース110は、様々なコンポーネントの間で通信するための定義を含む、ソフトウェアコンポーネントのようなアプリケーションプログラミングインタフェースを含むことができる。
【0035】
データ処理システム102は、入力オーディオ信号をデータ処理システム102のインタフェース110に送信し当該クライアントコンピューティングデバイスのコンポーネントを駆動して、出力オーディオ信号を描画するためのアプリのようなクライアントコンピューティングデバイス104にインストールされたアプリケーション、スクリプトまたはプログラムを含むことができる。データ処理システム102はオーディオ入力信号を含むかまたは識別するデータパケットまたは他の信号を受信することができる。例えば、データ処理システム102は、NLPコンポーネント112を実行して、当該オーディオ信号を受信または取得し、当該オーディオ信号を解析することができる。例えば、NLPコンポーネント112は人間とコンピュータの間の対話を提供することができる。NLPコンポーネント112を、自然言語を理解しデータ処理システム102が人間または自然言語入力から意味を導出するための技術で構成することができる。NLPコンポーネント112は、統計的機械学習のような機械学習に基づく技術を含むことができるかまたはそれで構成することができる。NLPコンポーネント112は、決定木、統計的モデル、または確率論的モデルを利用して当該入力オーディオ信号を解析することができる。NLPコンポーネント112は、例えば、名前付きエンティティ認識(例えば、テキストのストリームが与えられると、当該テキスト内のどのアイテムを人または場所のような正確な名前にマップするか、および人、位置、または組織のような、各かかる名前がどんなタイプかを判定する)、自然言語生成(例えば、コンピュータデータベースまたはセマンティックな意図からの情報を理解可能な人間言語に変換する)、自然言語理解(例えば、コンピュータモジュールが操作できる1次論理構造のようなより形式的な表現にテキストを変換する)、マシン変換(例えば、自動的に或る人間の言語から別の人間の言語にテキストを翻訳する)、形態学的セグメンテーション(例えば、単語を独立な形態素に分離し当該形態素のクラスを識別する。これは、考慮されている言語の単語の形態学または構造の複雑性に基づいて困難なものでありうる)、質問回答(例えば、人間言語質問への回答を決定する。これは、特定的または制約なしであることができる)、セマンティック処理(例えば、当該識別された単語を、同様な意味を有する他の単語に関連付けるために単語を識別しその意味を符号化した後に発生しうる処理)のような機能を実施することができる。
【0036】
NLPコンポーネント112は、入力信号を(例えば、データリポジトリ124に)格納された、代表的な組のオーディオ波形に対して比較し最も近いマッチを選択することで、当該オーディオ入力信号を認識されたテキストに変換する。当該1組のオーディオ波形を、データ処理システム102にアクセス可能なデータリポジトリ124または他のデータベースに格納することができる。当該代表的な波形は大規模な1組のユーザにわたって生成され、次いで当該ユーザからの会話サンプルで補強してもよい。当該オーディオ信号を認識されたテキストに変換された後、NLPコンポーネント112は、当該テキストを、関連付けられた、例えばユーザにわたるトレーニングを介してまたはマニュアル仕様を通じて、データ処理システム102がサービス提供できるアクションに関連付けられた単語にマッチする。
【0037】
当該オーディオ入力信号はクライアントコンピューティングデバイス104のセンサ134またはトランスデューサ136(例えば、マイクロフォン)により検出されることができる。トランスデューサ136、オーディオドライバ138、または他のコンポーネントを介して、クライアントコンピューティングデバイス104は当該オーディオ入力信号をデータ処理システム102に(例えば、ネットワーク105を介して)提供することができる。それを、(例えば、インタフェース110により)受信でき、NLPコンポーネント112に提供するかまたはデータリポジトリ124に格納することができる。
【0038】
NLPコンポーネント112は当該入力オーディオ信号を取得することができる。当該入力オーディオ信号から、NLPコンポーネント112は、少なくとも1つの要求または当該要求に対応する少なくとも1つのトリガキーワードを識別することができる。当該要求は当該入力オーディオ信号の意図または主題を示すことができる。当該トリガキーワードは行われる可能性があるアクションのタイプを示すことができる。例えば、NLPコンポーネント112は当該入力オーディオ信号を解析して、夕方に家を出てディナーおよび映画に参加する少なくとも1つの要求を識別することができる。当該トリガキーワードは、取るべきアクションを示す少なくとも1つの単語、フレーズ、語源または部分語、または派生物を含むことができる。例えば、当該入力オーディオ信号からの当該トリガキーワード「go」または「to go to」は輸送に対する必要性を示すことができる。本例では、当該入力オーディオ信号(または当該識別された要求)は輸送の意図を直接表現しないが、しかし当該トリガキーワードは、輸送が当該要求により示される少なくとも1つの他のアクションに対する付属的アクションであることを示す。
【0039】
NLPコンポーネント112は当該入力オーディオ信号を解析し、識別し、決定し、取り出し、または当該要求および当該トリガキーワードを取得することができる。例えば、NLPコンポーネント112は、セマンティック処理技術を当該入力オーディオ信号に適用して、当該トリガキーワードまたは当該要求を識別することができる。NLPコンポーネント112は、当該セマンティック処理技術を当該入力オーディオ信号に適用して、第1のトリガキーワードおよび第2のトリガキーワードのような1つまたは複数のトリガキーワードを含むトリガ・フレーズを識別することができる。例えば、当該入力オーディオ信号は「I need someone to do my laundry and my dry cleaning」という文章を含むことができる。NLPコンポーネント112は、セマンティック処理技術、または他の自然言語処理技術を当該文章を含むデータパケットに適用して、トリガ・フレーズ「do my laundry」および「do my dry cleaning」を識別することができる。NLPコンポーネント112はさらに、洗濯、およびドライ・クリーニングのような複数のトリガキーワードを識別することができる。例えば、NLPコンポーネント112は、当該トリガフレーズが当該トリガキーワードおよび第2のトリガキーワードを含むと判定することができる。
【0040】
NLPコンポーネント112は、フィルタ当該入力オーディオ信号をフィルタして当該トリガキーワードを識別することができる。例えば、当該入力オーディオ信号を運搬するデータパケットは「It would be great if I could get someone that could help me go to the airport」を含むことができる、この場合NLPコンポーネント112は、「it」、「would」、「be」、「great」、「if」、「I」、「could」、「get」、「someone」、「that」、「could」、または「help」といった1つまたは複数の用語をフィルタして除去することができる。これらの用語をフィルタして除去することで、NLPコンポーネント112は、「go to the airport」のようなトリガキーワードをより正確におよび信頼性高く識別し、これがタクシーまたは乗車共有サービスの要求であると判定することができる。
【0041】
幾つかのケースでは、当該NLPコンポーネントは、当該入力オーディオ信号を運搬するデータパケットが1つまたは複数の要求を含むと判定することができる。例えば、当該入力オーディオ信号は「I need someone to do my laundry and my dry cleaning」という文章を含むことができる。NLPコンポーネント112はこれが洗濯サービスおよびドライ・クリーニングサービスの要求であると判定することができる。NLPコンポーネント112は、これが、洗濯サービスおよびドライ・クリーニングサービスの両方を提供できるサービスプロバイダに対する単一の要求であると判定することができる。NLPコンポーネント112は、これが2つの要求、即ち、洗濯サービスを実施するサービスプロバイダに対する第1の要求、およびドライ・クリーニングサービスを提供するサービスプロバイダに対する第2の要求であると判定することができる。幾つかのケースでは、NLPコンポーネント112は、当該複数の決定された要求を単一の要求に結合し、当該単一の要求をサービスプロバイダデバイス108に送信することができる。幾つかのケースでは、NLPコンポーネント112は独立な要求を各サービスプロバイダデバイス108に送信するか、または別々に両方の要求を同一のサービスプロバイダデバイス108に送信することができる。
【0042】
データ処理システム102は、当該トリガキーワードに基づいて、当該要求に応答してアクションデータ構造を生成するように設計され構成されたダイレクト・アクションAPI116を含むことができる。データ処理システム102のプロセッサは、ダイレクト・アクションAPI116を起動して、カーシェアサービスからの車のようなサービスまたは製品を要求または注文するためのサービスプロバイダデバイス108に対するデータ構造を生成するスクリプトを実行することができる。ダイレクト・アクションAPI116はデータをデータリポジトリ124から取得でき、ならびにエンド・ユーザの同意によりクライアントコンピューティングデバイス104から受信されたデータを取得して、サービスプロバイダデバイス108がカーシェアサービスからの車の予約のような動作を実施できるようにするための位置、時間、ユーザアカウント、物流または他の情報を決定することができる。ダイレクト・アクションAPI116を用いて、データ処理システム102はまた、サービスプロバイダデバイス108と通信して、この例ではカーシェアのピックアップ予約を行うことによって当該変換を完了することができる。
【0043】
ダイレクト・アクションAPI116はデータ処理システム102により決定されるように、指定されたアクションを実行してエンド・ユーザの意図を満たすことができる。その入力で指定された当該アクションに依存して、ダイレクト・アクションAPI116は、ユーザ要求を満たすのに必要なパラメータを識別するコードまたはダイアログスクリプトを実行することができる。かかるコードは、例えば、ホーム・オートメーションサービスの名前のようなデータリポジトリ124内の追加の情報を検索でき、またはエンド・ユーザに要求されたタクシーの意図した宛先のような質問をするために、クライアントコンピューティングデバイス104で描画するためのオーディオ出力を提供することができる。ダイレクト・アクションAPI116は必要なパラメータを決定し、当該情報をアクションデータ構造にパッケージ化することができる。当該アクションデータ構造を次いで、サービスプロバイダコンピューティングデバイス108のような別のコンポーネントまたは満たすべきコンテンツセレクタコンポーネント118に送信することができる。
【0044】
ダイレクト・アクションAPI116は当該アクションデータ構造を生成または構築するための命令またはコマンドを、NLPコンポーネント112、またはデータ処理システム102の他のコンポーネントから受信することができる。ダイレクト・アクションAPI116はデータリポジトリ124に格納されたテンプレートリポジトリ132からテンプレートを選択するためのアクションのタイプを決定することができる。アクションのタイプは、例えば、サービス、製品、予約、またはチケットを含むことができる。アクションのタイプはさらに、サービスまたは製品のタイプを含むことができる。例えば、サービスのタイプは、カーシェアサービス、フード・デリバリーサービス、洗濯サービス、メイドサービス、修理サービス、または家庭サービスを含むことができる。製品のタイプは、例えば、衣服、靴、おもちゃ、電子、コンピュータ、ブック、または宝石を含むことができる。予約のタイプは、例えば、ディナー予約またはヘアサロンの予約を含むことができる。チケットのタイプは、例えば、映画チケット、競技場チケット、または飛行機チケットを含むことができる。幾つかのケースでは、サービス、製品、予約またはチケットのタイプを、価格、位置、発送、可用性、または他の属性のタイプに基づいて分類することができる。
【0045】
ダイレクト・アクションAPI116は、要求のタイプを識別すると、対応するテンプレートにテンプレートリポジトリ132からアクセスすることができる。テンプレートは、(エンド・ユーザをピックアップ位置でピックアップしてエンド・ユーザを宛先位置に輸送するためにタクシーを回す動作のような)サービスプロバイダデバイス108に要求されたさらなる動作にダイレクト・アクションAPI116により埋めることができる構造化データ・セット内のフィールドを含むことができる。ダイレクト・アクションAPI116は、テンプレートリポジトリ132内で検索を実施して、当該トリガキーワードおよび要求の1つまたは複数の特性にマッチするテンプレートを選択することでができる。例えば、当該要求が宛先への車または乗車の要求に対応する場合、データ処理システム102はカーシェア・サービステンプレートを選択することができる。カーシェア・サービステンプレートは、以下のフィールド、即ち、デバイス識別子、ピックアップ位置、宛先位置、乗客の数、またはサービスのタイプのうち1つまたは複数を含むことができる。ダイレクト・アクションAPI116は当該フィールドを値で埋めることができる。当該フィールドを値で埋めるために、ダイレクト・アクションAPI116は、コンピューティングデバイス104の1つまたは複数のセンサ134またはデバイス104のユーザインタフェースをピングし、そこから情報をポーリングまたは取得することができる。例えば、ダイレクト・アクションAPI116は、GPSセンサのような位置センサを用いて当該ソース位置を検出することができる。ダイレクト・アクションAPI116は、コンピューティングデバイス104のエンドユーザに調査、プロンプト、またはクエリを送信することで、さらなる情報を取得することができる。当該ダイレクト・アクションAPIは、データ処理システム102のインタフェース110およびコンピューティングデバイス104のユーザインタフェース(例えば、オーディオインタフェース、音声ベースのユーザインタフェース、ディスプレイ、またはタッチ・スクリーン)を介して、調査、プロンプト、またはクエリを送信することができる。したがって、ダイレクト・アクションAPI116は、当該トリガキーワードまたは当該要求に基づいて当該アクションデータ構造に対するテンプレートを選択し、1つまたは複数のセンサ134により検出されたまたはユーザインタフェースを介して取得された情報で当該テンプレート内の1つまたは複数のフィールドを埋め、サービスプロバイダデバイス108による動作の実施を促進するための当該アクションデータ構造を生成、作成、または構築することができる。
【0046】
データ処理システム102は当該テンプレートをテンプレートデータ構造132から、例えば、当該トリガキーワード、要求、サードパーティプロバイダデバイス108、サードパーティプロバイダデバイス108のタイプ、サードパーティプロバイダデバイス108が入るカテゴリ(例えば、タクシーサービス、洗濯サービス、フラワー・サービス、またはフード・デリバリー)、位置、または他のセンサ情報を含む様々な因子のうち1つまたは複数に基づいて選択することができる。
【0047】
当該トリガキーワードに基づいて当該テンプレートを選択するために、データ処理システム102は(例えば、ダイレクト・アクションAPI116を介して)当該トリガキーワードを用いて検索または他のクエリ動作をテンプレートデータベース132に実施して、当該トリガキーワードにマップまたは対応するテンプレートデータ構造を識別することができる。例えば、テンプレートデータベース132内の各テンプレートを、当該テンプレートが、通信セッションを確立するためにサードパーティプロバイダデバイス108が処理できるトリガキーワードに応答してアクションデータ構造を生成するように構成されることを示すための1つまたは複数のトリガキーワードに関連付けることができる。
【0048】
幾つかのケースでは、データ処理システム102は、当該トリガキーワードに基づいてサードパーティプロバイダデバイス108を識別することができる。当該トリガキーワードに基づいてサードパーティプロバイダ108を識別するために、データ処理システム102は、データリポジトリ124内で検索を実施して、当該トリガキーワードにマップするサードパーティプロバイダデバイス108を識別することができる。例えば、当該トリガキーワードが「ride」または「to go to」を含む場合、データ処理システム102は、(例えば、ダイレクト・アクションAPI116を介して)サードパーティプロバイダデバイス108をタクシーサービス会社Aに対応するとして識別することができる。データ処理システム102は、サードパーティプロバイダデバイス108を用いて当該テンプレートをテンプレートデータベース132から選択することができる。例えば、テンプレートデータベース132は、通信セッションを確立するためにサードパーティプロバイダデバイス108が処理できる当該トリガキーワードに応答してアクションデータ構造を生成するように構成されたサードパーティプロバイダデバイス108またはエンティティの間のテンプレートに対するマッピングまたは相関関係を含むことができる。幾つかのケースでは、当該テンプレートを、サードパーティプロバイダデバイス108に対して、またはサードパーティプロバイダデバイス108のカテゴリに関してカスタマイズすることができる。データ処理システム102は、サードパーティプロバイダ108に対するテンプレートに基づいて当該アクションデータ構造を生成することができる。
【0049】
当該アクションデータ構造を構築または生成するために、データ処理システム102は、値で埋めるべき当該選択されたテンプレート内の1つまたは複数のフィールドを識別することができる。当該フィールドを、数値、文字列、ユニコード値、ブール論理、二進値、16進値、識別子、位置座標、地理的領域、タイムスタンプ、または他の値で埋めることができる。当該フィールドまたは当該データ構造自体を、データセキュリティを維持するために、暗号化またはマスクすることができる。
【0050】
当該テンプレート内のフィールドを決定すると、データ処理システム102は、当該テンプレートのフィールドを埋めるための当該フィールドに対する値を識別して、当該アクションデータ構造を生成することができる。データ処理システム102は、検索または他のクエリ動作をデータリポジトリ124に実施することで、当該フィールドに対する値を取得し、取り出し、決定し、または識別することができる。
【0051】
幾つかのケースでは、データ処理システム102は当該フィールドに対する情報または値がデータリポジトリ124にないと判定することができる。データ処理システム102は、データリポジトリ124に格納された当該情報または値が古い、陳腐であるか、またはトリガキーワードおよび要求に応答してNLPコンポーネント112により識別されたアクションデータ構造を構築する目的に適していないと判定することができる(例えば、クライアントコンピューティングデバイス104の位置が古い位置であり現在の位置でないかもしれないこと、アカウントが切れているかもしれないこと、当該宛先レストランが新たな位置に移動しているかもしれないこと、物理活動情報、または輸送のモード)。
【0052】
データ処理システム102が、データ処理システム102のメモリ内で、当該テンプレートのフィールドに対する値または情報に対するアクセスを現在有さないと判定した場合、データ処理システム102は当該値または情報を取得することができる。データ処理システム102は、クライアントコンピューティングデバイス104の1つまたは複数の利用可能なセンサを問い合わせまたはポーリングし、クライアントコンピューティングデバイス104のエンド・ユーザに情報を促し、またはHTTPプロトコルを用いてオンラインのwebベースのリソースにアクセスすることによって、当該情報を取得することができるまたは取得する。例えば、データ処理システム102は、それがクライアントコンピューティングデバイス104の現在の位置を有さないと判定でき、現在の位置は当該テンプレートの必要とされるフィールドであってもよい。データ処理システム102は、クライアントコンピューティングデバイス104に位置情報を問い合わせることができる。データ処理システム102は、全地球測位システムセンサ、WIFI三角測量、携帯電波塔三角測量、Bluetooth(登録商標)ビーコン、IPアドレス、または他の位置検知技術のような1つまたは複数の位置センサ134を用いて当該位置情報を提供するように、クライアントコンピューティングデバイス104に要求することができる。
【0053】
ダイレクト・アクションAPI116は、当該アクションデータ構造をサードパーティプロバイダデバイス(例えば、サービスプロバイダデバイス108)に送信して、サードパーティプロバイダデバイス108に、会話アプリケーションプログラミングインタフェース(例えば、サービスプロバイダNLPコンポーネント142)を起動させ、サードパーティプロバイダデバイス108およびクライアントコンピューティングデバイス104の間の通信セッションを確立させることができる。サービスプロバイダデバイス108およびクライアントコンピューティングデバイス1004の間の通信セッションを確立したことに応答して、サービスプロバイダデバイス108は、データパケットをクライアントコンピューティングデバイス104にネットワーク105を介して直接に送信することができる。幾つかのケースでは、サービスプロバイダデバイス108は、データ処理システム102およびネットワーク105を介して、データパケットをクライアントコンピューティングデバイス104に送信することができる。
【0054】
幾つかのケースでは、サードパーティプロバイダデバイス108は会話API142の少なくとも一部を実行することができる。例えば、サードパーティプロバイダデバイス108は、当該通信セッションの特定の態様またはクエリのタイプを扱うことができる。サードパーティプロバイダデバイス108は、データ処理システム102により実行されるNLPコンポーネント112を利用して、当該通信セッションに関連付けられたオーディオ信号の処理およびクエリに対する応答の生成を促進してもよい。幾つかのケースでは、データ処理システム102はサードパーティプロバイダ108に構成された会話API142を含むことができる。幾つかのケースでは、データ処理システムは、当該クライアントコンピューティングデバイスおよび当該サードパーティプロバイダデバイスの間でデータパケットをルーティングして、当該通信セッションを確立する。データ処理システム102は、サードパーティプロバイダデバイス108から、当該サードパーティプロバイダデバイスがクライアントデバイス104との通信セッションを確立したとの指示を受信することができる。当該指示は、クライアントコンピューティングデバイス104の識別子、当該通信セッションが確立されたときに対応するタイムスタンプ、または当該通信セッションに関連付けられたアクションデータ構造のような当該通信セッションに関連付けられた他の情報を含むことができる。
【0055】
幾つかのケースでは、会話APIは、第1のNLP112の1つまたは複数のコンポーネントまたは機能を含む第2のNLPであることができる。第2のNLP142は第1のNLP112と対話またはそれを利用することができる。幾つかのケースでは、システム100は、データ処理システム102により実行される単一のNLP112を含むことができる。単一のNLP112はデータ処理システム102およびサードパーティサービスプロバイダデバイス108の両方をサポートすることができる。幾つかのケースでは、ダイレクト・アクションAPI116は、サービスの実施を促進するためのアクションデータ構造を生成または構築し、会話APIは、さらにエンド・ユーザとの通信セッションへの応答またはクエリを生成し、または当該サービスのエンド・ユーザのエクスペリエンスまたは性能を実装または改善するための追加の情報を取得する。
【0056】
データ処理システム102は、クライアントデバイス104およびデータ処理システム102の間の通信セッションを確立するために、セッションハンドラコンポーネント114を包含し、実行し、アクセスし、または通信することができる。当該通信セッションは、クライアントデバイス104のセンサ134により検出された入力オーディオ信号、およびデータ処理システム102によりクライアントデバイス104に送信された出力信号を含むクライアントデバイス104およびデータ処理システム102の間の1つまたは複数のデータ送信を指すことができる。データ処理システム102は、当該入力オーディオ信号を受信したことに応答して、(例えば、セッションハンドラコンポーネント114を介して)当該通信セッションを確立することができる。データ処理システム102は当該通信セッションに対する期間を設定することができる。データ処理システム102は当該通信セッションに対して設定された期間に対してタイマまたはカウンタを設定することができる。当該タイマの期限切れに応答して、データ処理システム102は当該通信セッションを終了することができる。
【0057】
当該通信セッションは、クライアントデバイス104が当該セッションを確立するための認証情報または証明書を提供するネットワークベースの通信セッションを指すことができる。幾つかのケースでは、当該通信セッションは、当該セッション中にデータパケットにより運搬されるオーディオ信号のトピックまたはコンテキストを指す。例えば、第1の通信セッションはタクシーサービスに関連する(例えば、キーワード、アクションデータ構造、またはコンテンツ・アイテム・オブジェクトを含む)クライアントデバイス104およびデータ処理システム102の間で送信されたオーディオ信号を指すことができ、第2の通信セッションは洗濯およびドライ・クリーニングサービスに関連するクライアントデバイス104およびデータ処理システム102の間で送信されたオーディオ信号を指すことができる。本例では、データ処理システム102は当該オーディオ信号のコンテキストが異なると(例えば、NLPコンポーネント112を介して)判定し、当該2つの組のオーディオ信号を異なる通信セッションに分離することができる。セッションハンドラ114は、当該ドライ・クリーニングおよび洗濯サービスに関連する1つまたは複数のオーディオ信号を識別したことに応答して乗車サービスに関連する第1のセッションを終了することができる。したがって、データ処理システム102は、当該オーディオ信号のコンテキストを検出したことに応答してドライ・クリーニングおよび洗濯サービスに関連するオーディオ信号に対する第2のセッションを開始または確立することができる。
【0058】
データ処理システム102は自然言語プロセッサにより識別されたトリガキーワードを受信し、当該トリガキーワードに基づいて、リアルタイムコンテンツ選択プロセスを介してコンテンツ・アイテムを選択するためにコンテンツセレクタコンポーネント118を包含、実行、または通信することができる。当該コンテンツ選択プロセスは、サードパーティコンテンツプロバイダ106により提供されたスポンサーされたコンテンツ・アイテム・オブジェクトを選択するステップを指すかまたは含むことができる。当該リアルタイムコンテンツ選択プロセスは、複数のコンテンツプロバイダにより提供されたコンテンツ・アイテムを解析し、処理し、重み付けし、またはマッチして、コンピューティングデバイス104に提供するための1つまたは複数のコンテンツ・アイテムを選択するサービスを含むことができる。コンテンツセレクタコンポーネント118は当該コンテンツ選択プロセスをリアルタイムに実施することができる。当該コンテンツ選択プロセスをリアルタイムに実施することは、当該コンテンツ要求がクライアントコンピューティングデバイス104を介して受信されたことに応答して当該コンテンツ選択プロセスを実施するステップを指すことができる。当該リアルタイムコンテンツ選択プロセスを、当該要求を受信する時間間隔(例えば、5秒、10秒、20秒、30秒、1分、2分、3分、5分、10分、または20分)内に実施(例えば、開始または完了)することができる。当該リアルタイムコンテンツ選択プロセスを、クライアントコンピューティングデバイス104との通信セッション中に、または、当該通信セッションが終了した後のある時間間隔内に、実施することができる。
【0059】
例えば、データ処理システム102は、コンテンツ・アイテム・オブジェクトを選択するように設計、構築、構成、または動作可能なコンテンツセレクタコンポーネント118を含むことができる。音声ベースの環境内で表示するためのコンテンツ・アイテムを選択するために、データ処理システム102は(例えば、NLPコンポーネント112を介して)当該入力オーディオ信号を解析して、キーワード(例えば、トリガキーワード)を識別し、当該キーワードを使用して広いマッチ、厳密なマッチ、またはフレーズマッチに基づいてマッチングコンテンツ・アイテムを選択することができる。例えば、コンテンツセレクタコンポーネント118は候補コンテンツ・アイテムの主題を分析、解析、または処理して、当該候補コンテンツ・アイテムの主題が、クライアントコンピューティングデバイス104のマイクロフォンにより検出された当該入力オーディオ信号のキーワードまたはフレーズの主題に対応するかどうかを判定することができる。コンテンツセレクタコンポーネント118は、画像処理技術、文字認識技術、自然言語処理技術、またはデータベース検索を用いて、音声、オーディオ、候補コンテンツ・アイテムの用語、文字、テキスト、記号、または画像を識別、分析、または認識してもよい。当該候補コンテンツ・アイテムは当該候補コンテンツ・アイテムの主題を示すメタデータを含んでもよく、この場合コンテンツセレクタコンポーネント118は当該メタデータを処理して、当該候補コンテンツ・アイテムの主題が当該入力オーディオ信号に対応するかどうかを判定してもよい。
【0060】
コンテンツプロバイダ106は、コンテンツ・アイテムを含むコンテンツキャンペーンをセットアップするときに、追加のインジケータを提供してもよい。コンテンツプロバイダ106は、コンテンツセレクタコンポーネント118が当該候補コンテンツ・アイテムに関する情報を用いて検索を実施することで識別しうる情報を当該コンテンツキャンペーンまたはコンテンツグループレベルで提供してもよい。例えば、当該候補コンテンツ・アイテムは一意な識別子を含んでもよく、当該一意な識別子を、コンテンツグループ、コンテンツキャンペーン、またはコンテンツプロバイダにマップしてもよい。コンテンツセレクタコンポーネント118は、データリポジトリ124内のコンテンツキャンペーンデータ構造に格納された情報に基づいて、コンテンツプロバイダ106に関する情報を決定してもよい。
【0061】
データ処理システム102は、コンピュータネットワークを介して、コンピューティングデバイス104で提示するためのコンテンツに対する要求を受信することができる。データ処理システム102は、クライアントコンピューティングデバイス104のマイクロフォンにより検出された入力オーディオ信号を処理することによって当該要求を識別することができる。当該要求は、当該要求に関連付けられたデバイスのタイプ、位置、およびキーワードのような当該要求の選択基準を含むことができる。当該要求はアクションデータ構造を含むことができる。
【0062】
当該要求に応答して、データ処理システム102は、コンテンツ・アイテム・オブジェクトをデータリポジトリ124またはコンテンツプロバイダ106に関連付けられたデータベースから選択し、ネットワーク105を介してコンピューティングデバイス104を介して提供するために当該コンテンツ・アイテムを提供することができる。当該コンテンツ・アイテム・オブジェクトを、サービスプロバイダデバイス108と異なるコンテンツプロバイダデバイス108により提供することができる。当該コンテンツ・アイテムは、当該アクションデータ構造のサービスのタイプと異なるサービスのタイプ(例えば、タクシーサービス対フード・デリバリーサービス)に対応することができる。コンピューティングデバイス104は当該コンテンツ・アイテム・オブジェクトと対話することができる。コンピューティングデバイス104は当該コンテンツ・アイテムへのオーディオ応答を受信することができる。コンピューティングデバイス104は、コンピューティングデバイス104に、サービスプロバイダ108を識別し、サービスプロバイダ108にサービスを要求し、サービスを実施し、情報をサービスプロバイダ108に送信し、またはサービスプロバイダデバイス108を問い合わせるようにサービスプロバイダ108に指示させるかまたはそれを可能とする、当該コンテンツ・アイテム・オブジェクトに関連付けられたハイパーリンクまたは他のボタンを選択するための指示を受信することができる。
【0063】
データ処理システム102は、出力信号を生成するためのオーディオ信号ジェネレータコンポーネント122を包含し、実行し、または通信する。当該出力信号は1つまたは複数の部分を含むことができる。例えば、当該出力信号は第1の部分および第2の部分を含むことができる。当該出力信号の第1の部分は当該アクションデータ構造に対応することができる。当該出力信号の第2の部分は、当該リアルタイムコンテンツ選択プロセス中にコンテンツセレクタコンポーネント118により選択されたコンテンツ・アイテムに対応することができる。
【0064】
オーディオ信号ジェネレータコンポーネント122は、第1のデータ構造に対応する音を有する第1の部分で当該出力信号を生成することができる。例えば、オーディオ信号ジェネレータコンポーネント122は、ダイレクト・アクションAPI116によりアクションデータ構造のフィールドに埋められた1つまたは複数の値に基づいて当該出力信号の第1の部分を生成することができる。タクシーサービスの例では、当該フィールドに対する値は、例えば、ピックアップ位置に対する123 Main Street、宛先位置に対する1234 Main Street、乗客の数に関して2、およびサービスのレベルに関してエコノミーを含むことができる。オーディオ信号ジェネレータコンポーネント122は、コンピューティングデバイス104のエンド・ユーザがサービスプロバイダ108へ要求を送信することについて先に進みたいことを確認するために、当該出力信号の第1の部分を生成することができる。第1の部分は、以下の出力「Would you like to order an economy car from taxi Service Provider A to pick two people up at 123 Main Street and drop off at 1234 Main Street?」を含むことができる
【0065】
幾つかのケースでは、第1の部分は、サービスプロバイダデバイス108から受信された情報を含むことができる。サービスプロバイダデバイス108から受信された当該情報を、アクションデータ構造に対してカスタマイズすることができる。例えば、データ処理システム102は(例えば、ダイレクト・アクションAPI116を介して)動作を実施するようにサービスプロバイダ108に指示する前に、当該アクションデータ構造をサービスプロバイダ108に送信することができる。その代わり、データ処理システム102はサービスプロバイダデバイス108に、初期または予備的処理を当該アクションデータ構造に実施して当該動作に関する予備的情報を生成するように指示することができる。タクシーサービスの例において、当該アクションデータ構造に対する当該予備的処理は、ピックアップ位置の周囲に配置されたサービス要件のレベルを満たす利用可能なタクシーを識別するステップと、最も近い利用可能なタクシーが当該ピックアップ位置に到達するための時間を推定するステップと、当該宛先への到着時刻を推定するステップと、当該タクシーサービスに対する価格を推定するステップを含むことができる。当該推定された予備値は、固定された値、様々な条件、または値の範囲に基づいて変化を受ける推定値を含んでもよい。サービスプロバイダデバイス108は、当該予備情報をデータ処理システム102に返すか、または直接ネットワーク104を介してクライアントコンピューティングデバイス104に返すことができる。データ処理システム102は、当該予備結果をサービスプロバイダデバイス108から当該出力信号に取り込み、当該出力信号をコンピューティングデバイス104に送信することができる。当該出力信号は、例えば、「Taxi Service Company A can pick you up at 123 Main Street in 10 minutes, and drop you off at 1234 Main Street by 9 AM for $10. Do you want to order this ride?」を含むことができ、これは当該出力信号の第1の部分を形成することができる。
【0066】
幾つかのケースでは、データ処理システム102は当該出力信号の第2の部分を形成することができる。当該出力信号の第2の部分は、リアルタイムコンテンツ選択プロセス中にコンテンツセレクタコンポーネント118により選択されたコンテンツ・アイテムを含むことができる。第1の部分は第2の部分と異なることができる。例えば、第1の部分は、クライアントコンピューティングデバイス104のセンサ134により検出された入力オーディオ信号を運搬するデータパケットに直接応答するアクションデータ構造に対応する情報を含むことができ、第2の部分は、当該アクションデータ構造に垂直方向に関連しうるか、またはコンテンツプロバイダデバイス106により提供されたスポンサーされたコンテンツを含むコンテンツセレクタコンポーネント104により選択されたコンテンツ・アイテムを含むことができる。例えば、コンピューティングデバイス104のエンド・ユーザはタクシーをタクシーサービス会社Aに要求することができる。データ処理システム102は、タクシーサービス会社Aからのタクシーに関する情報を含むために当該出力信号の第1の部分を生成することができる。しかし、データ処理システム102は、キーワード「taxi service」およびエンド・ユーザが関心があるかもしれない当該アクションデータ構造に含まれる情報に基づいて選択されたコンテンツ・アイテムを含むために当該出力信号の第2の部分を生成することができる。例えば、第2の部分は、タクシーサービス会社Bのような異なるタクシーサービス会社により提供されたコンテンツ・アイテムまたは情報を含むことができる。ユーザはタクシーサービス会社Bに特段要求していないかもしれないが、データ処理システム102は、当該ユーザがタクシーサービス会社Bと動作を実施することを選択しうるので、それにもかかわらずタクシーサービス会社Bからのコンテンツ・アイテムを提供してもよい。
【0067】
データ処理システム102は、ピックアップ時刻、宛先の到着時刻、および乗車の価格を決定するための情報を、アクションデータ構造からタクシーサービス会社Bに送信することができる。データ処理システム102は、この情報を受信し、当該出力信号の第2の部分を「Taxi Service Company B can pick you up at 123 Main Street in 2 minutes, and drop you off at 1234 Main Street by 8:52 AM for $15. Do you want this ride instead?」としてを生成でき、コンピューティングデバイス104のエンド・ユーザは次いで、タクシーサービス会社Aにより提供された乗車またはタクシーサービス会社Bにより提供された乗車を選択することができる。
【0068】
当該出力信号の第2の部分で、タクシーサービス会社Bにより提供されたサービスに対応する当該スポンサーされたコンテンツ・アイテムを提供する前に、データ処理システム102は、第2の部分が(例えば、コンテンツセレクタコンポーネント118により)リアルタイムコンテンツ選択プロセス中に選択されたコンテンツ・アイテム・オブジェクトに対応するとエンド・ユーザコンピューティングデバイスに通知することができる。しかし、データ処理システム102は、当該通知をコンピューティングデバイス104のエンド・ユーザに提供するための異なるタイプのインタフェースに対して制限されたアクセスを有することができる。例えば、コンピューティングデバイス104はディスプレイデバイスを含まなくてもよい、または当該ディスプレイデバイスを無効またはターンオフしてもよい。コンピューティングデバイス104の当該ディスプレイデバイスはコンピューティングデバイス104のスピーカより多くのリソースを消費するかもしれず、コンピューティングデバイス104のスピーカを用いて当該通知を運搬することと比べて、コンピューティングデバイス104の当該ディスプレイデバイスをターンオンするのはあまり効率的でないかもしれない。したがって、幾つかのケースでは、データ処理システム102は、1つまたは複数のインタフェースまたは1つまたは複数のタイプのコンピュータネットワーク上の情報送信の効率および有効性を高めることができる。例えば、データ処理システム102は(例えば、オーディオ信号ジェネレータコンポーネント122を介して)、当該コンテンツ・アイテムを含む出力オーディオ信号の部分をモジュール化して、当該出力信号のその部分がスポンサーされたコンテンツ・アイテムを含むという指示または通知をエンド・ユーザに提供することができる。
【0069】
データ処理システム102は(例えば、インタフェース110およびネットワーク105を介して)、オーディオ信号ジェネレータコンポーネント122により生成された出力信号を含むデータパケットを送信することができる。当該出力信号は、クライアントデバイス104のオーディオドライバコンポーネント138またはクライアントデバイス104により実行されるオーディオドライバコンポーネント138に、クライアントデバイス104のスピーカ(例えば、トランスデューサ136)を駆動して当該出力信号に対応する音波を生成させることができる。
【0070】
図2は、コンピュータネットワークを介して、パケット化されたアクションをルーティングするシステム100の例示である。当該システムは、
図1に示すシステム100の1つまたは複数のコンポーネントを含むことができる。205で、クライアントコンピューティングデバイス104は、コンピューティングデバイス104のマイクロフォンまたは他のセンサにより検出された入力オーディオ信号を運搬するデータパケットを送信することができる。クライアントコンピューティングデバイス104は当該入力オーディオ信号をデータ処理システム102に送信することができる。データ処理システム102は当該入力オーディオ信号を解析して、当該要求に応答してアクションデータ構造を生成するためのキーワード、要求または他の情報を識別することができる。
【0071】
動作210で、データ処理システム102は当該アクションデータ構造をサービスプロバイダデバイス108(またはサードパーティプロバイダデバイス108)に送信することができる。データ処理システム102はネットワークを介して当該アクションデータ構造を送信することができる。サービスプロバイダデバイス108は、データ処理システム102により送信された当該アクションデータ構造を受信および処理するように構成されたインタフェースを含むことができる。
【0072】
サービスプロバイダデバイス108は(例えば、会話APIを介して)動作215で当該アクションデータ構造に応答することができる。サービスプロバイダデバイス108からの当該応答は当該アクションデータ構造に対応して実施されるサービスの指示を含むことができる。当該応答は当該動作を実施することで進むための確認を含むことができる。当該応答は当該アクションデータ構造に対応する当該動作を実施するためのさらなる情報の要求を含むことができる。例えば、当該アクションデータ構造は乗車に関するものであることができ、サービスプロバイダ108は、当該乗車に対する乗客の数、乗客が望む車のタイプ、車における所望のアメニティ、または好適なピックアップ位置のようなさらなる情報の要求で応答することができる。追加の情報に対する要求は、当該アクションデータ構造に存在しないかもしれない情報を含むことができる。例えば、当該アクションデータ構造は、当該ピックアップ位置、宛先位置、および乗客の数のような、当該動作を実施するためのベースライン情報を含むことができる。当該ベースライン情報は、タクシーサービスカテゴリ内で複数のサービスプロバイダ108により使用される標準データ・セットであることができる。しかし、特定のタクシーサービスプロバイダ108は、クライアントコンピューティングデバイス104から追加の情報または嗜好を要求することによって、当該動作をカスタマイズし高めることを選択することができる。
【0073】
サービスプロバイダデバイス108は、動作215で、データ処理システム102への応答を運搬する1つまたは複数のデータパケットを送信することができる。データ処理システム102は当該データパケットを解析し、当該データパケットのソースおよび当該データパケットの宛先を識別することができる。動作220で、データ処理システム102は、それに応じて、当該データパケットをクライアントコンピューティングデバイス104にルーティングまたは転送することができる。データ処理システム102はネットワーク105を介して当該データパケットをルーティングまたは転送することができる。
【0074】
動作225で、当該クライアントコンピューティングデバイス220は、当該転送された応答に基づいて命令またはコマンドをデータ処理システム102に送信することができる。例えば、225で転送された応答は、乗客の数の要求およびタクシー乗車をスケジューリングすることで進むための確認であることができる。当該命令は225で、乗客の数およびピックアップをスケジューリングすることで進むための命令を含むことができる。クライアントデバイス104は、当該命令を運搬する1つまたは複数のデータパケットをデータ処理システム102に送信することができる。データ処理システム102は、動作230で、当該命令を運搬する当該データパケットをサービスプロバイダデバイス108にルーティングまたは転送することができる。
【0075】
幾つかのケースでは、データ処理システム102は、動作220または動作230で、データパケットをそのまま(例えば、当該データパケットを操作せずに)ルーティングまたは転送することができる。幾つかのケースでは、データ処理システム102は、当該データパケットを処理して情報をフィルタし、または、サービスプロバイダデバイス108またはクライアントコンピューティングデバイス104による当該データパケットの処理を促進するための情報で当該データパケットを埋めることができる。例えば、データ処理システム102は、クライアントコンピューティングデバイス104のアイデンティティをサービスプロバイダデバイス108からマスクし、隠蔽し、または保護することができる。したがって、データ処理システム102は、サービスプロバイダ108がクライアントコンピューティングデバイス104のデバイス識別子またはユーザ名を直接に識別できないように、ハッシュ関数を用いて識別情報を暗号化することができる。データ処理システム102は、通信セッション中に使用するためのサービスプロバイダデバイス108に提供されたプロキシ識別子の、クライアントコンピューティングデバイス104の識別子またはユーザ名へのマッピングを維持することができる。
【0076】
図3は、コンピュータネットワークを介してパケット化されたアクションをルーティングするシステム100の例示である。当該システムは
図1に示すシステム100の1つまたは複数のコンポーネントを含むことができる。305で、クライアントコンピューティングデバイス104は、コンピューティングデバイス104のマイクロフォンまたは他のセンサにより検出された入力オーディオ信号を運搬するデータパケットを送信することができる。クライアントコンピューティングデバイス104は当該入力オーディオ信号をデータ処理システム102に送信することができる。データ処理システム102は当該入力オーディオ信号を解析して、当該要求に応答してアクションデータ構造を生成するためのキーワード、要求または他の情報を識別することができる。
【0077】
動作310で、データ処理システム102はアクションデータ構造をサービスプロバイダデバイス108(またはサードパーティプロバイダデバイス108)に送信することができる。データ処理システム102はネットワークを介して当該アクションデータ構造を送信することができる。サービスプロバイダデバイス108は、データ処理システム102により送信された当該アクションデータ構造を受信および処理するように構成されたインタフェースを含むことができる。
【0078】
サービスプロバイダデバイス108は(例えば、会話APIを介して)動作315で当該アクションデータ構造に応答することができる。サービスプロバイダデバイス108からの当該応答は当該アクションデータ構造に対応して実施するサービスの指示を含むことができる。当該応答は当該動作を実施することで進むための確認を含むことができる。当該応答は当該アクションデータ構造に対応する当該動作を実施するためのさらなる情報の要求を含むことができる。例えば、当該アクションデータ構造は乗車に関するものであることができ、サービスプロバイダ108は、乗車に対する乗客の数、乗客が望む車のタイプ、車における所望のアメニティ、または好適なピックアップ位置のようなさらなる情報の要求で応答することができる。追加の情報に対する当該要求は、当該アクションデータ構造に存在しないかもしれない情報を含むことができる。例えば、当該アクションデータ構造は、ピックアップ位置、宛先位置、および乗客の数のような、当該動作を実施するためのベースライン情報を含むことができる。当該ベースライン情報は、タクシーサービスカテゴリ内で複数のサービスプロバイダ108により使用される標準データ・セットであることができる。しかし、特定のタクシーサービスプロバイダ108は、クライアントコンピューティングデバイス104から追加の情報または嗜好を要求することによって、当該動作をカスタマイズし高めることを選択することができる。
【0079】
サービスプロバイダデバイス108は、ネットワーク105を介して、当該応答を運搬する1つまたは複数のデータパケットをクライアントコンピューティングデバイス104に直接送信することができる。例えば、データ処理システム102を通じて当該応答をルーティングする代わりに、サービスプロバイダデバイス108は、サービスプロバイダデバイス108により実行される会話APIを介して、クライアントコンピューティングデバイス104に直接に応答することができる。これにより、当該サービスプロバイダは当該通信セッションをカスタマイズすることができる。
【0080】
動作320で、クライアントコンピューティングデバイス104は、当該応答に基づいて、命令またはコマンドをサービスプロバイダデバイス108に送信することができる。例えば、315で提供された応答は、乗客の数の要求およびタクシー乗車をスケジューリングすることで進むための確認であることができる。320での命令は、乗客の数およびピックアップをスケジューリングすることで進むための命令を含むことができる。クライアントデバイス104は、データ処理システム102を通じてデータパケットをルーティングする代わりに、当該命令を運搬する1つまたは複数のデータパケットをサービスプロバイダデバイス108に送信することができる。
【0081】
データ処理システム102は、サービスプロバイダデバイス108およびクライアントコンピューティングデバイス104が、通信識別子を各デバイスに渡すことでデータ処理システム102と独立に通信セッションを確立するのを促進することができる。例えば、データ処理システム102は、デバイス104の識別子をデバイス108に転送でき、データ処理システム102はデバイス108の識別子をデバイス104に転送することができる。したがって、デバイス108は当該通信セッションを直接にデバイス104と確立することができる。
【0082】
幾つかのケースでは、デバイス108またはデバイス104は、通信セッションに関するステータス情報のような情報をデータ処理システム102に別々に転送することができる。例えば、デバイス108は、デバイス108がクライアントデバイス104との当該通信セッションの確立に完全に成功したとの指示をデータ処理システムに提供することができる。
【0083】
図4は、パケット化されたオーディオ信号の動的変調を実施するための例示的な方法の例示である。方法400を、システム100またはシステム500の1つまたは複数のコンポーネント、システムまたは要素により実施することができる。方法400はデータ処理システムが入力オーディオ信号を受信するステップを含むことができる(動作405)。データ処理システムは当該入力オーディオ信号をクライアントコンピューティングデバイスから受信することができる。例えば、データ処理システムにより実行される自然言語プロセッサコンポーネントは当該入力オーディオ信号をデータ処理システムのインタフェースを介してクライアントコンピューティングデバイスから受信することができる。データ処理システムは、当該クライアントコンピューティングデバイス(またはクライアントデバイス)のセンサにより検出された入力オーディオ信号を運搬または含むデータパケットを受信することができる。
【0084】
動作410で、方法400はデータ処理システムが当該入力オーディオ信号を解析することを含むことができる。当該自然言語プロセッサコンポーネントは当該入力オーディオ信号を解析して、要求および当該要求に対応するトリガキーワードを識別することができる。例えば、当該クライアントデバイスにより検出された当該オーディオ信号は、「Okay device, I need a ride from Taxi Service Company A to go to 1234 Main Street.」を含むことができる。このオーディオ信号において、初期トリガキーワードは「okay device」を含むことができ、これは、クライアントデバイスが入力オーディオ信号をデータ処理システムに送信することを示すことができる。当該クライアントデバイスのプリプロセッサは、残りのオーディオ信号をデータ処理システムに送信する前に用語「okay device」をフィルタして除外することができる。幾つかのケースでは、当該クライアントデバイスは、追加の用語をフィルタして除外するか、または、さらなる処理のためにキーワードをデータ処理システムに送信することができる。
【0085】
データ処理システムは当該入力オーディオ信号内のトリガキーワードを識別することができる。当該トリガキーワードは、例えば、「to go to」または「ride」またはこれらの用語の変形を含むことができる。当該トリガキーワードはサービスまたは製品のタイプを示すことができる。データ処理システムは当該入力オーディオ信号内の要求を識別することができる。当該要求を用語「I need」に基づいて決定することができる。当該トリガキーワードおよび要求を、セマンティック処理技術または他の自然言語処理技術を用いて決定することができる。
【0086】
動作415で、方法400はデータ処理システムがアクションデータ構造を生成するステップを含むことができる。データ処理システムはトリガキーワード、要求、サードパーティプロバイダデバイス、または他の情報に基づいて、当該アクションデータ構造を生成することができる。当該アクションデータ構造は当該要求に応答することができる。例えば、当該クライアントコンピューティングデバイスのエンド・ユーザがタクシーをタクシーサービス会社Aに要求した場合、当該アクションデータ構造はタクシーサービス会社Aへタクシーサービスを要求する情報を含むことができる。データ処理システムは、タクシーサービス会社Aに対するテンプレートを選択し、当該テンプレート内のフィールドを値で埋め、タクシーサービス会社Aがタクシーを当該クライアントコンピューティングデバイスのユーザに送り、当該ユーザをピックアップし当該ユーザを要求された目的地に輸送できるようにすることができる。
【0087】
動作420で、方法400は、データ処理システムが当該アクションデータ構造を当該サードパーティプロバイダデバイスに送信することを含むことができる。当該サードパーティデバイスは、受信されたアクションデータ構造を解析または処理し、会話APIを起動し、当該サードパーティプロバイダデバイスおよび当該クライアントデバイスの間の通信セッションを確立すると判定することができる。サービスプロバイダデバイス108は、当該アクションデータ構造の内容に基づいて会話APIを起動または実行または利用することを決定することができる。例えば、サービスプロバイダデバイス108は、追加の情報が当該アクションデータ構造に対応する動作を実施するステップを促進できると判定することができる。サービスプロバイダデバイス108は、クライアントコンピューティングデバイス104と通信することが、サービスのレベルを高めるか、または、当該動作の誤った実施に起因するリソース利用を減らすことができると判定することができる。サービスプロバイダデバイス108は、追加の情報を取得することでクライアントコンピューティングデバイス104のための動作をカスタマイズすると判定することができる。
【0088】
動作425で、方法400は、データ処理システムが、当該サードパーティプロバイダデバイスから、当該サードパーティプロバイダデバイスが通信セッションを当該クライアントデバイスと確立したとの指示を受信するステップを含むことができる。当該指示は、当該通信セッションが確立されたときに対応するタイムスタンプ、当該通信セッションの一意な識別子(例えば、デバイス識別子で形成されたタプル、当該通信セッションの時刻日付スタンプ、および当該サービスプロバイダデバイスの識別子)を含むことができる。
【0089】
図5は例示的なコンピュータシステム500のブロック図である。当該コンピュータシステムまたはコンピューティングデバイス500は、システム100、またはデータ処理システム102のようなそのコンポーネントを含むことができるかまたはそれを実装するために使用される。データ処理システム102はインテリジェント・パーソナル・アシスタントまたは音声ベースのデジタルアシスタントを含むことができる。コンピューティングシステム500は、情報を通信するためのバス505または他の通信コンポーネントおよび情報を処理するためにバス505に接続するためのプロセッサ510または処理回路を含む。コンピューティングシステム500はまた、情報を処理するためのに当該バスに接続された1つまたは複数のプロセッサ510または処理回路を含むことができる。コンピューティングシステム500はまた、情報、およびプロセッサ510により実行される命令を格納するためにバス505に接続されたランダム・アクセスメモリ(RAM)または他の動的記憶デバイスのようなメイン・メモリ515を含む。メイン・メモリ515はデータリポジトリ145であることができるかまたはそれを含むことができる。メイン・メモリ515をまた、プロセッサ510による命令の実行中に位置情報、一時的変数、または他の中間情報を格納するために使用することができる。コンピューティングシステム500はさらに、プロセッサ510のための静的情報および命令を格納するために、バス505に接続される読取専用メモリ(ROM)520または他の静的記憶デバイスを含んでもよい。固体状態デバイス、磁気ディスクまたは光ディスクのような記憶デバイス525は、永続的に情報および命令を格納するためにバス505に接続されることができる。記憶デバイス525はデータリポジトリ145を含むことができるかまたはその一部であることができる。
【0090】
コンピューティングシステム500を、バス505を介して、情報をユーザに表示するための、液晶ディスプレイ、またはアクティブ行列ディスプレイのようなディスプレイ535に接続してもよい。英数字および他のキーを含むキーボードのような入力デバイス530が、情報およびコマンド選択をプロセッサ510に通信するためにバス505に接続されてもよい。入力デバイス530はタッチ・スクリーンディスプレイ535を含むことができる。入力デバイス530はまた、方向情報およびコマンド選択をプロセッサ510に通信し、ディスプレイ535上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーのようなカーソル・コントロールを含むことができる。ディスプレイ535は、例えば、
図1のデータ処理システム102の一部は、クライアントコンピューティングデバイス150または他のコンポーネントであることができる。
【0091】
本明細書で説明したプロセス、システムおよび方法、プロセッサ510がメイン・メモリ515に含まれる命令の配置を実行したことに応答してコンピューティングシステム500により実装することができる。かかる命令を記憶デバイス525のような別のコンピュータ−可読媒体からメイン・メモリ515に読み込むことができる。メイン・メモリ515に含まれる命令の配置の実行は、コンピューティングシステム500に本明細書で説明した例示的なプロセスを実施させる。マルチプロセッシング配置における1つまたは複数のプロセッサをまた、メイン・メモリ515に含まれる命令を実行するために使用することができる。ハードワイヤード回路を、本明細書で説明するシステムおよび方法とともにソフトウェア命令の代わりにまたはそれを組み合わせて使用することができる。本明細書で説明したシステムおよび方法はハードウェア回路およびソフトウェアの任意の特定の組合せに限定されない。
【0092】
例示的なコンピューティングシステムを
図5で説明したが、本明細書で説明した動作を含む主題を、本明細書で開示した構造およびそれらの構造的均等物を含む他のタイプのデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの1つまたは複数の組合せで実装することができる。
【0093】
本明細書で説明するシステムがユーザに関する個人情報を収集するか、または個人情報を利用しうる状況に対して、当該ユーザに、プログラムまたは機能が個人情報(例えば、ユーザのソーシャルネットワーク、ソーシャルアクションまたはアクティビティ、ユーザの嗜好、またはユーザの位置に関する情報)を収集しうるかどうかを制御するか、または、当該ユーザにより関連しうるコンテンツサーバまたは他のデータ処理システムからコンテンツを受信するかどうかまたはその方法を制御するための機会を与えてもよい。さらに、特定のデータはそれが格納または使用される前に1つまたは複数の方法で匿名化してもよく、その結果個人的に識別可能な情報がパラメータを生成するときに除去される。例えば、ユーザのアイデンティティを匿名化してもよく、その結果個人的に識別可能な情報をユーザに対して決定できず、またはユーザの特定の位置を決定できないように、ユーザの地理的位置を位置情報が取得される場所で(例えば都市、郵便番号、または状態レベルに)一般化してもよい。したがって、当該ユーザは、どのように情報が当該ユーザに関して収集され当該コンテンツサーバにより使用されるかを制御することができる。
【0094】
当該主題および本明細書で説明した動作を、本明細書で開示した構造およびそれらの構造的均等物を含むデジタル電子回路で、またはコンピュータソフトウェア、ファームウェア、またはハードウェアで、またはそれらの1つまたは複数の組合せで実装することができる。本明細書で説明した当該主題を、データ処理装置による実行のためにまたは当該装置の動作を制御するために1つまたは複数のコンピュータ記憶媒体で符号化された、1つまたは複数のコンピュータプログラム、例えば、コンピュータプログラム命令の1つまたは複数の回路として実装することができる。代替的にまたは追加として、当該プログラム命令を、人工的に生成された伝播信号、例えば、データ処理装置による実行のために適切な受信器装置に送信するための情報を符号化するために生成されたマシン生成された電気、光、または電磁気信号で符号化することができる。コンピュータ記憶媒体は、コンピュータ−可読記憶デバイス、コンピュータ−可読記憶基板、ランダムなまたはシリアル・アクセスメモリ・アレイまたはデバイス、またはそれらの1つまたは複数の組合せであることができ、または、それらに含まれることができる。コンピュータ記憶媒体は伝播信号ではないが、コンピュータ記憶媒体は、人工的に生成された伝播信号で符号化されたコンピュータプログラム命令のソースまたは宛先であることができる。当該コンピュータ記憶媒体はまた、1つまたは複数の別々のコンポーネントまたは媒体(例えば、複数のCD、ディスク、または他の記憶デバイス)であることができ、または、それに含まれることができる。本明細書で説明した動作を、1つまたは複数のコンピュータ−可読記憶デバイスに格納されまたは他のソースから受信されたデータに対してデータ処理装置により実施される動作として実装することができる。
【0095】
「データ処理システム」「コンピューティングデバイス」「コンポーネント」または「データ処理装置」という用語は、例としてプログラム可能プロセッサ、コンピュータ、システム・オン・チップ、または以上のうち複数または組合せを含む、データを処理するための様々な装置、デバイス、およびマシンを包含する。当該装置は、特殊目的論理回路、例えば、FPGA(フィールドプログラム可能ゲート・アレイ)またはASIC(特殊用途向け集積回路)を含むことができる。当該装置はまた、ハードウェアに加えて、着目するコンピュータプログラムに対する実行環境を生成するコード、例えば、プロセッサファームウェア、プロトコル・スタック、データベース管理システム、オペレーティング・システム、クロス・プラットフォームランタイム環境、仮想マシン、またはそれらの1つまたは複数の組合せを構成するコードを含むことができる。当該装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッド・コンピューティングインフラのような様々な異なるコンピューティングモデルインフラを実現することができる。例えば、ダイレクト・アクションAPI116、コンテンツセレクタコンポーネント118、またはNLPコンポーネント112および他のデータ処理システム102コンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかまたは共有することができる。
【0096】
Aコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)を、コンパイル型言語またはインタプリタ型言語、宣言型または手続型言語を含む任意の形態のプログラミング言語で書くことができ、スタンドアロンプログラムまたはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境で使用するのに適した他のユニットを含む任意の形態で展開することができる。コンピュータプログラムはイルシステム内のファイルに対応することができる。コンピュータプログラムを、他のプログラムまたはデータを保持するファイル部分(例えば、マークアップ言語ドキュメントに格納された1つまたは複数のスクリプト)に、着目するプログラム専用の単一のファイルに、または複数の協調ファイルに(例えば、1つまたは複数のモジュール、サブプログラム、またはコード部分を格納するファイル)に格納することができる。コンピュータプログラムを、1つのコンピュータ上でまたは1つのサイトに配置されるかまたは複数のサイトにわたって分散され通信ネットワークにより相互接続された複数のコンピュータ上で実行されるように展開することができる。
【0097】
本明細書で説明した当該プロセスおよび論理フローを、入力データで動作し出力を生成することによって、1つまたは複数のコンピュータプログラムを実行する1つまたは複数のプログラム可能プロセッサ(例えば、データ処理システム102のコンポーネント)により実施して、アクションを実施することができる。当該プロセスおよび論理フローはまた、特殊目的論理回路、例えば、FPGA(フィールドプログラム可能ゲート・アレイ)またはASIC(特殊用途向け集積回路)により実施でき、装置をまた特殊目的論理回路、例えば、FPGA(フィールドプログラム可能ゲート・アレイ)またはASIC(特殊用途向け集積回路)として実装することができる。コンピュータプログラム命令およびデータを格納するのに適したデバイス、例として半導体メモリデバイス、例えば、EPROM、EEPROM、およびフラッシュ・メモリデバイスを含むあらゆる形態の非揮発性メモリ、媒体およびメモリデバイス、磁気ディスク、例えば、内部ハードディスクまたは取外し可能ディスク、磁気光ディスク、およびCDROMおよびDVD−ROMディスクを含む。当該プロセッサおよび当該メモリを特殊目的論理回路で補完するかまたはそれに組み込むことができる。
【0098】
本明細書で説明する主題を、コンピューティングシステムで実装することができるバックエンドコンポーネントを、例えば、データサーバとして含むか、またはミドルウェアコンポーネント、例えば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、例えば、ユーザがそれを通じて本明細書で説明した当該主題の実装と対話できるグラフィカルユーザインタフェースまたはウェブブラウザを有するクライアントコンピュータ、または1つまたは複数のかかるバックエンド、ミドルウェア、またはフロントエンドコンポーネントの組合せを含む。当該システムの当該コンポーネントはデジタルデータ通信、例えば、通信ネットワークの任意の形態または媒体により相互接続することができる。通信ネットワークの例は、ローカル・エリア・ネットワーク(「LAN」)および広帯域ネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、およびピア・ツー・ピアネットワーク(例えば、アドホックピア・ツー・ピアネットワーク)を含む。
【0099】
システム100またはシステム500のようなコンピューティングシステムはクライアントおよびサーバを含むことができる。クライアントおよびサーバは一般に互いから離れており、一般に通信ネットワーク(例えば、ネットワーク165)を通じて対話する。クライアントおよびサーバの関係は、当該各コンピュータで実行され互いにクライアントサーバ関係を有するコンピュータプログラムにより生ずる。幾つかの実装では、サーバは、(例えば、データを表示し、ユーザ入力を当該クライアントデバイスと対話するユーザから受信する目的で)データ(例えば、コンテンツ・アイテムを表すデータパケット)をクライアントデバイスに送信する。当該クライアントデバイスで生成されたデータ(例えば、ユーザ対話の結果)は当該クライアントデバイスから当該サーバでから受信されることができる(例えば、コンピューティングデバイス150またはコンテンツプロバイダコンピューティングデバイス155またはサービスプロバイダコンピューティングデバイス160からデータ処理システム102により受信される)。
【0100】
動作を当該図面において特定の順序で説明したが、かかる動作を示した特定の順序でまたは逐次的な順序で実施する必要はなく、全ての図示した動作を実施する必要はない。本明細書で説明した動作を異なる順序で実施することができる。
【0101】
様々なシステムコンポーネントの分離は全ての実装における分離を要求しないが、説明したプログラムコンポーネントを単一のハードウェアまたはソフトウェア製品に含めることができる。例えば、NLPコンポーネント112またはコンテンツセレクタコンポーネント118は、単一のコンポーネント、アプリ、またはプログラム、または1つまたは複数の処理回路を有する論理デバイス、またはデータ処理システム102の1つまたは複数のサーバの一部であることができる。
【0102】
幾つかの例示的な実装を説明したので、以上は、例示的であり限定的ではなく、例として提示されていることは明らかである。特に、本明細書で提示した例の多くは方法の動作またはシステム要素の特定の組合せを含むが、これらの動作およびこれらの要素を他の方法で組み合わせて同一の目的を実現してもよい。1実装と関連して説明した動作、要素および特徴は他の実装または実装における類似の役割から排除されるものではない。
【0103】
本明細書で使用したフレーズおよび用語は説明の目的のためであり限定として解釈されるべきではない。「〜を含む」、「〜を備える」、「〜を有する」、「〜を包含する」、「〜が関与する」、「〜により特徴付けられる」、「〜の点で特徴付けられる」、およびその本明細書における変形の使用は、その後に列挙された項目、その均等物、および追加の項目、ならびに排他的にその後に列挙された項目からなる代替的な実装を含むことを意味する。1実装では、本明細書で説明するシステムおよび方法は説明した要素、動作、またはコンポーネントの1つ、複数の各組合せ、または全てから成る。
【0104】
本明細書で単一形で参照されるシステムおよび方法の実装または要素または動作に対する任意の言及は複数のこれらの要素を含む実装を含んでもよく、本明細書の任意の実装または要素または動作への複数形の任意の参照は単一の要素のみを含む実装を含んでもよい。単一形または複数形における参照は本明細書で開示したシステムまたは方法、それらのコンポーネント、動作、または要素を単一のまたは複数の構成に限定しようとするものではない。任意の情報、動作または要素に基づく任意の動作または要素への参照は当該動作または要素は任意の情報、動作、または要素に少なくとも部分的に基づく実装を含んでもよい。
【0105】
本明細書で開示した任意の実装を任意の他の実装または実施形態と組み合わせてもよく「実装」、「幾つかの実装」、「1実装」等への言及は必ずしも相互に排他的ではなく、当該実装と関連して説明した特定の特徴、構造、または特性が少なくとも1つの実装または実施形態に含まれてもよいを示すことを意図している。本明細書で使用した用語は必ずしも全て同一の実装を参照しない。任意の実装を、任意の他の実装と、包含的にまたは排他的に、本明細書で開示した態様および実装と一貫する任意の方式で結合してもよい。
【0106】
「または」に対する言及は、「または」を用いて説明された任意の用語が当該説明した用語のうち1つ、複数、および全ての何れかを示しうるように、包含的として解釈してもよい。例えば、「‘A’および‘B’のうち少なくとも1つ」への言及は‘A’のみ、‘B’のみ、ならびに‘A’および‘B’の両方を含むことができる。「〜を備える」または他のオープンな用語と関連して使用されるかかる言及は追加の項目を含むことができる。
【0107】
当該図面、詳細な説明または任意の請求項における技術的特徴に参照記号が続く場合、当該参照記号は当該図面、詳細な説明、および特許請求の範囲の明瞭性を高めるために含まれている。したがって、当該参照記号もそれがないことも任意のクレーム要素の範囲に対する限定効果を有さない。
【0108】
本明細書で説明するシステムおよび方法をその特徴から逸脱せずに他の特定の形態で具体化してもよい。例えば、データ処理システム102は、第2のアクション210が完了するかまたはまさに始まろうとすることを示す第2のアクション210からのデータのような、スレッド200のアクションのシーケンスにおける過去のアクションからのデータに少なくとも部分的に基づいて、後続のアクションに対して(例えば、前記第3のアクション215に対して)コンテンツ・アイテムを選択することができる。以上の実装は説明したシステムおよび方法の限定ではなく例示的なものである。本明細書で説明するシステムおよび方法の範囲はしたがって以上の説明ではなく添付の特許請求の範囲により示され、添付の特許請求の範囲の均等物の意味と範囲に入る変更がそこに包含される。