以下は、オーディオベースのコンピュータネットワークにおいてデジタルコンポーネントを取り出し、デジタルコンポーネントとインタラクションする方法、装置、およびシステムに関連する様々な概念ならびにそれらの方法、装置、およびシステムの実装のより詳細な説明である。上で導入され、下でより詳細に検討される様々な概念は、説明される概念が実装のいかなる特定の方法にも限定されないので、多数の方法のいずれかで実装される可能性がある。
概して、本開示は、音声または画像に基づくネットワークへのデジタルコンポーネントなどのネットワークリソースのオンボーディングのスケーラビリティを高めるシステムおよび方法を対象とする。システムは、コンピューティングデバイス上の音声、画像、またはスピーチ入力および出力インターフェースを使用してウェブページ、ウェブページの一部、またはその他のオンラインドキュメントなどのデジタルコンポーネントのナビゲーションおよびそのようなデジタルコンポーネントとのインタラクションを可能にするデータ処理システムを含み得る。システムは、デジタルコンポーネントを特定するために(本明細書においては入力オーディオ信号とも呼ばれる)スピーチ入力を受け取り、処理することができる。システムは、デジタルコンポーネントを提供するコンテンツプロバイダを特定することができる。音声入力(または画像入力などのその他の非テキスト入力)は、デジタルコンポーネント内のアクセスされ得る定義された種類の少なくとも1つのリソースに関連する口頭の命令を含むことができる。リソースは、特定されたデジタルコンポーネント、またはデジタルコンポーネントに含まれるかもしくは別の方法でデジタルコンポーネントによって特定される特定のアイテムもしくはウェブページであるか、それらを含むか、またはそれらを介して完了するアクションに対応し得る。システムは、デジタルコンポーネントをホストするコンテンツプロバイダとのセッションを作成することができる。システムは、コンテンツプロバイダから受信されたデジタルコンポーネントをレンダリングすることができる。システムは、ユーザインターフェースを用いずにデジタルコンポーネントをヘッドレスでレンダリングし得る。システムは、インタラクションモデルを使用してリソースにナビゲートするために、レンダリングされたデジタルコンポーネントをインタラクションモデルを使用して分析することができる。システムは、第1のモデルタイプおよび第2のモデルタイプからインタラクションモデルを選択することができる。第1のモデルタイプは、スピーチ入力内で特定されたリソースと同じ種類のリソースを有するウェブサイトの集合に基づく第1の訓練データセットを組み込み得る包括的モデルであるかまたはそのような包括的モデルを含むことができる。第2のモデルタイプは、デジタルコンポーネントのリソースに固有の第2の訓練データセットを組み込む特定的モデルであるかまたはそのような特定的モデルを含むことができる。モデルセットの両方は、それぞれのリソースへのアクセスを決定するかまたはデジタルコンポーネントをナビゲートするためのデータを含み得る。システムは、それぞれのリソースにアクセスするための受信された命令に基づいて、1つまたは複数の後続の動作のためにコンピューティングデバイスに関連するリソースに関連する情報を提供することができる。システムは、リソースまたは追加的なリソースにアクセスするためにデジタルコンポーネントをナビゲートするときに行われる1つまたは複数の決定に基づいてインタラクションモデルを更新することもできる。
システムは、デジタルコンポーネントにデータを入力することができる。データは、ユーザによって与えられ、コンピューティングデバイスまたはシステム上の安全なストレージウォレット(storage wallet)に記憶され得る。データは、デジタルコンポーネントとのセッションの作成中に、または1つまたは複数の後続の動作のために作成されたセッション中に必要とされるときに自動的にシステムに提供され得る。
システムは、複数の異なるデジタルコンポーネント上のそれぞれの種類のリソースへのアクセスに共通する用語、レイアウト、カテゴリ、およびハイパーリンクのうちの1つまたは複数に関連する情報を取得し、記憶することによって包括的モデルを生成することができる。システムは、スピーチ入力内で特定されたデジタルコンポーネントに応じてリソースの用語、レイアウト、メニュー、カテゴリ、およびハイパーリンクのうちの1つまたは複数に関連する情報を取得し、記憶することによって特定的モデルを生成することができる。
その他のネットワークリソースがネットワークリソースとインタラクションことができるような音声作動型のネットワークへのネットワークリソースのオンボーディングは、一意のインターフェースが各リソースのために作成される必要がある可能性があるので技術的に難しくなり得る。たとえば、リソースの所有者は、音声ベースのコンピューティングデバイスのプロバイダがリソースとインタラクションすることを可能にするアプリケーションプログラムインターフェース(API)を作成する必要がある可能性がある。音声ベースのコンピューティングデバイスのプロバイダは、提供されたAPIを介して、コンピューティングデバイスがリソースとインタラクションすることを可能にするプログラムを生成する必要がある可能性もある。音声ベースのコンピューティングデバイスのプロバイダは、リソースの所有者がそれらのリソースの所有者のデジタルコンポーネントに組み込むことができるAPIを提供し得る。このオンボーディングプロセスは、時間がかかり、コンピュータの使用効率が悪い可能性があり、両者の協力を必要とする可能性がある。
オンボーディングプロセスは、リソースを用いてトランザクションを行うか、リソースの安全な部分にアクセスするか、または機密情報をやりとりすることを求められる可能性がある。トランザクションを行い、データを交換するために音声入力インターフェースを用いてこれらのリソースとインタラクションするための技術は、コンピューティングデバイスが特定のユーザインターフェースモジュールに対して発行されたスピーチコマンドを使用してリソース内をナビゲートすることができるように音声ベースのコンピューティングデバイスのリソースインターフェースのしっかりとした統合を必要とする可能性がある。インターフェースモジュールとそれぞれのリソースとの間で予め定義される必要がある可能性があるそのようなリソースに固有の統合が、コンピューティングデバイスのユーザが安全で、速く、切れ目のない体験を提供されることを保証するために必要になり得る。これは、インターフェースモジュールがリソース入力、コンポーネント、またはその他のインタラクションオブジェクトのレイアウトを知っているように、安全なデータが(たとえば、コンピューティングデバイス上の安全なウォレットから)インターフェースモジュールにどのようにして取得され得るかという事前のセキュリティ構成と、特定のリソースとの事前の統合とが必要とされる可能性があるからである。
したがって、音声ベースのコンピューティングデバイスとリソースとの間のしっかりとした統合を確立するためのオンボーディングプロセスを経ていないリソースとインターフェースを取ることは、可能でない可能性がある。音声ベースのコンピューティングデバイスを使用してリソースを用いたアクションを完了することは、それぞれのあらゆるリソースとの統合なしには可能でない可能性がある。
さらに、音声(または画像または動画)に基づくコンピューティングデバイスは、いくつかの音声認識に基づくインターフェースモジュールを使用し得る。特定のインターフェースモジュールが使用するモジュールに応じて、それぞれのインターフェースモジュールとの予め定義された統合が、音声ベースのコンピューティングデバイスがインタラクションする可能性がある各リソースに関して必要とされる可能性がある。
リソースとのナビゲーションおよびインタラクションを可能にするための音声ベースのコンピューティングデバイスとのそのような統合を提供する技術は、各リソースに関して非常に特定的で密接な予め定義された統合を必要とするという上で説明された欠点に悩まされ得る。これらの技術は、スケーラブルでない可能性があり、すべてのリソースに適用され得ない。たとえば、スピーチによって制御されるユーザインターフェースモジュールがウェブサイトをナビゲートすることを可能にする機能を提供するウェブサイトまたはドメインは、任意の音声入力認識モジュールとインタラクションすることができるのではなく、機能を1つの種類のインターフェースモジュールに制限する必要がある可能性がある。
したがって、音声ベースのコンピューティングデバイスがスピーチ、音声、または画像入力認識インターフェースモジュールを使用してすべてのリソースをナビゲートし、すべてのリソースとインタラクションすることを可能にする包括的でスケーラブルな技術の提供のニーズが存在する。
本開示は、製品、サービス、またはその他のアクションを提供するすべてのリソースによって動作可能なリアルタイムのスケーラブルな技術を可能にするために以下の技術的なステップを提供する。ユーザは、「オーケー。ウェブサイトYで製品Xを入手したい。価格と入手可能かどうかを知らせて」などのコマンドを音声ベースのコンピューティングデバイスを介して開始することができる。システム(たとえば、データ処理システム)は、自然言語処理を使用して入力オーディオ信号をパースし、解釈することができる。たとえば、システムは、安全なウォレットを介してウェブサイトYのためのユーザの資格証明情報を取得することができる。システムは、ウェブサイトYとのセッションを開始することができる。サーバは、ウェブサイトYをヘッドレスでレンダリングすることができる。そのとき、システムは、製品Xの価格および入手可能性を取得するために特定的または包括的インタラクションモデルのうちの1つを使用してウェブサイトYをナビゲートすることができる。価格および入手可能性は、コンピューティングデバイス上のまたはコンピューティングデバイスに関連するトランスデューサ(たとえば、スピーカ)によってユーザに示される出力オーディオファイルを介してユーザのコンピューティングデバイスに提供され得る。ユーザは、システムがパースすることができる第2の入力オーディオ信号を介して購入を確認するかまたはシステムにさらなる詳細を提供することができる。この例において、システムは、システムと音声ベースのコンピューティングデバイスとの間のいかなる特定的な統合も必要とせずに、ユーザがウェブサイトYとインタラクションすることを可能にした。技術は、訓練されたインタラクションモデルを使用して、特定的な統合をせずにウェブサイト、ネットワークリソース、またはその他のデジタルコンポーネントとリアルタイムでインタラクションすることができる方法およびシステムを提供する。
本明細書において説明される技術は、包括的で、すべての種類のデジタルコンポーネントに対してスケーラブルであることができ、デジタルコンポーネントプロバイダと音声ベースのコンピューティングデバイスのプロバイダとの間の事前の統合または調整なしにデジタルコンポーネントとのデータ処理システムのインタラクションを可能にすることができる。
上の技術的解決策は、サーバとウェブサイトのドメインとの間のマッピングを確立するための、それぞれのデジタルコンポーネントのサーバ側のヘッドレスレンダリングの技術的特徴によって提供される。少なくとも1つの訓練されたインタラクションモデルを使用して、システムは、デジタルコンポーネントの構造、要素、入力要素、およびその他のコンポーネントを特定することができる。上のステップは、デジタルコンポーネントとインタラクションするための入力オーディオ信号を処理する効果的なエンドユーザの体験をさらに提供するためにリアルタイムで切れ目なく自動的に行われ得る。
図1は、コンピュータネットワークを介してデジタルコンポーネントを選択し、デジタルコンポーネントとインタラクションするための例示的なシステム100のブロック図を示す。システム100は、コンテンツ選択インフラストラクチャを含み得る。システム100は、データ処理システム102を含み得る。データ処理システム102は、ネットワーク105を介してコンテンツプロバイダコンピューティングデバイス106またはクライアントコンピューティングデバイス104のうちの1つまたは複数と通信することができる。ネットワーク105は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワーク、またはその他のエリアネットワークなどのコンピュータネットワーク、イントラネット、衛星ネットワーク、および音声またはデータモバイル電話ネットワークなどのその他の通信ネットワーク、ならびにそれらの組合せを含み得る。ネットワーク105は、ラップトップ、デスクトップ、タブレット、携帯情報端末、スマートフォン、ホームアシスタントデバイス、ポータブルコンピュータ、またはスピーカなどの少なくとも1つのコンピューティングデバイス104上で提示されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスすることができる。たとえば、ネットワーク105を介して、コンピューティングデバイス104のユーザは、コンテンツプロバイダデバイス106によって提供される情報またはデータにアクセスすることができる。
データ処理システム102は、インターフェース110、自然言語プロセッサコンポーネント112、およびセッションハンドラコンポーネント114を含み得る。データ処理システム102は、ダイレクトアクションアプリケーションプログラミングインターフェース116、ナビゲーションコンポーネント118、およびオーディオ信号ジェネレータコンポーネント122も含み得る。データ処理システム102は、パラメータ126、ポリシー128、インタラクションモデル130、およびテンプレート132が記憶されるデータリポジトリ124も含み得る。
ネットワーク105は、クライアントコンピューティングデバイス104によって提示されるか、出力されるか、レンダリングされるか、または表示され得るウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするためにデータ処理システム102によって使用され得る。コンテンツプロバイダデバイス106によって記憶されるかまたは別の方法で提供されるウェブページ、ウェブサイト、およびその他のデジタルコンテンツが、デジタルコンポーネントまたはコンテンツアイテムと呼ばれ得る。ネットワーク105を介して、クライアントコンピューティングデバイス104のユーザは、コンテンツプロバイダコンピューティングデバイス106によって提供される情報またはデータ(たとえば、コンテンツアイテムなどのデジタルコンポーネント)にアクセスすることができる。
デジタルコンポーネントは、コンピューティングデバイス104のディスプレイデバイスによってレンダリングされることが可能であり、またはデータ処理システム102上でレンダリングされることが可能である。レンダリングは、コンピューティングデバイス104の一部である可能性がありまたは一部ではない可能性があるディスプレイデバイス上にデジタルコンポーネントまたはその他のコンテンツアイテムを表示することを含み得る。一部の実装において、コンピューティングデバイス104は、デジタルコンポーネントをレンダリングするためのディスプレイデバイスを含まない。たとえば、コンピューティングデバイス104は、コンピューティングデバイス104のスピーカによってデジタルコンポーネントを再生することによってデジタルコンポーネントをレンダリングすることのみ可能である。データ処理システム102は、仲介役として働き、コンピューティングデバイス104がオーディオに基づくようにしてデジタルコンポーネントとインタラクションすることを可能にすることができる。
ネットワーク105は、任意の種類または形態のネットワークであってよく、以下、すなわち、ポイントツーポイントネットワーク、ブロードキャストネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタルハイアラーキ)ネットワーク、ワイヤレスネットワーク、および有線ネットワークのいずれかを含む可能性がある。ネットワーク105は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含む可能性がある。ネットワーク105のトポロジーは、バス型、スター型、またはリング型ネットワークトポロジーを含む可能性がある。ネットワークは、改良型移動電話プロトコル(「AMPS」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA(登録商標)」)、移動体通信用グローバルシステム(global system for mobile communication)(「GSM(登録商標)」)、汎用パケット無線サービス(general packet radio services)(「GPRS」)、またはユニバーサル移動体通信システム(universal mobile telecommunications system)(「UMTS」)を含む、モバイルデバイスの間で通信するために使用される任意の1つのプロトコルまたは複数のプロトコルを使用するモバイル電話ネットワークを含む可能性がある。異なる種類のデータが、異なるプロトコルによって送信されてもよく、または同じ種類のデータが、異なるプロトコルによって送信されてもよい。
システム100は、少なくとも1つのデータ処理システム102を含み得る。データ処理システム102は、ネットワーク105を介して、たとえば、コンピューティングデバイス104またはコンテンツプロバイダデバイス106(コンテンツプロバイダ106)と通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。データ処理システム102は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、データ処理システム102は、少なくとも1つのデータセンターに置かれた複数の計算リソースまたはサーバを含み得る。データ処理システム102は、複数の論理的にグループ分けされたサーバを含み、分散型コンピューティング技術を促進することができる。サーバの論理的グループは、データセンター、サーバファーム、またはマシンファームと呼ばれる場合がある。また、サーバは、地理的に分散され得る。データセンターまたはマシンファームは、単一のエンティティとして運用されてもよく、またはマシンファームは、複数のマシンファームを含み得る。各マシンファーム内のサーバは、異種である可能性がある--サーバまたはマシンのうちの1つまたは複数が、1つまたは複数の種類のオペレーティングシステムプラットフォームに応じて動作することができる。
マシンファーム内のサーバは、関連するストレージシステムと一緒に高密度ラックシステムに収容され、エンタープライズデータセンターに置かれ得る。たとえば、このようにしてサーバをまとめることは、サーバおよび高性能ストレージシステムを局所的な高性能ネットワーク上に置くことによってシステムの管理の容易性、データセキュリティ、システムの物理的セキュリティ、およびシステムの性能を改善する可能性がある。サーバおよびストレージシステムを含み、それらを高度なシステム管理ツールに結合するデータ処理システム102のコンポーネントのすべてまたは一部の集中化は、電力および処理の要件を減らし、帯域幅の使用を削減する、サーバリソースのより効率的な使用を可能にする。
システム100は、少なくとも1つのコンテンツプロバイダデバイス106を含むか、少なくとも1つのコンテンツプロバイダデバイス106にアクセスするか、または別の方法で少なくとも1つのコンテンツプロバイダデバイス106とインタラクションすることができる。コンテンツプロバイダデバイス106は、ネットワーク105を介して通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含み得る。コンテンツプロバイダデバイス106は、少なくとも1つの計算リソース、サーバ、プロセッサ、またはメモリを含み得る。たとえば、コンテンツプロバイダデバイス106は、少なくとも1つのデータセンターに置かれた複数の計算リソースまたはサーバを含み得る。
コンテンツプロバイダコンピューティングデバイス106は、データ処理システム102およびコンピューティングデバイス104にデジタルコンポーネントを提供することができる。デジタルコンポーネントは、グラフィックス、テキスト、ハイパーリンク、および機械が実行可能な命令を含むウェブページであることが可能である。デジタルコンポーネントは、ウェブブラウザがウェブページをレンダリングし、レンダリングされたウェブページをディスプレイ上でユーザに対して表示することによるなどしてエンドユーザに視覚的に表示され得る。デジタルコンポーネントは、売り申し込み(offer)、品物、サービス、または情報を含むウェブページであるかまたはそのようなウェブページを含むことが可能である。たとえば、デジタルコンポーネントは、衣服を販売するウェブサイトであることが可能である。
コンピューティングデバイス104は、少なくとも1つのセンサ134、トランスデューサ136、オーディオドライバ138、もしくはプリプロセッサ140を含むか、少なくとも1つのセンサ134、トランスデューサ136、オーディオドライバ138、もしくはプリプロセッサ140とインターフェースを取るか、または別の方法で少なくとも1つのセンサ134、トランスデューサ136、オーディオドライバ138、もしくはプリプロセッサ140と通信することができる。センサ134は、たとえば、環境光センサ、近接センサ、温度センサ、加速度計、ジャイロスコープ、モーションディテクタ、GPSセンサ、位置センサ、マイクロフォン、またはタッチセンサを含み得る。トランスデューサ136は、スピーカまたはマイクロフォンを含み得る。オーディオドライバ138は、ハードウェアトランスデューサ136にソフトウェアインターフェースを提供することができる。オーディオドライバ138は、対応する音響波または音波を生成するようにトランスデューサ136を制御するためにデータ処理システム102によって提供されるオーディオファイルまたはその他の命令を実行することができる。プリプロセッサ140は、キーワードを検出し、キーワードに基づいてアクションを実行するように構成され得る。プリプロセッサ140は、さらなる処理のためにデータ処理システム102に語を送信する前に1つまたは複数の語をフィルタリングして取り除くかまたは語を修正することができる。プリプロセッサ140は、マイクロフォンによって検出されたアナログオーディオ信号をデジタルオーディオ信号に変換し、デジタルオーディオ信号を運ぶ1つまたは複数のデータパケットをネットワーク105を介してデータ処理システム102に送信することができる。場合によっては、プリプロセッサ140は、「オーケー」、「起動」、またはその他のウェイクワードなどの、そのような送信を実行するための命令を検出したことに応じて入力オーディオ信号の一部またはすべてを運ぶデータパケット(またはその他のプロトコルに基づく送信)を送信することができる。命令は、たとえば、入力オーディオ信号を含むデータパケットをデータ処理システム102に送信するためのトリガキーワードまたはその他のキーワードまたは承認を含み得る。場合によっては、コンピューティン
グデバイス104の主なユーザインターフェースは、マイクロフォンおよびスピーカである可能性がある。
アクションの種類は、たとえば、サービス、製品、予約、またはチケットを含み得る。アクションの種類は、サービスまたは製品の種類をさらに含み得る。たとえば、サービスの種類は、カーシェアリングサービス、食品配達サービス、ランドリーサービス、メイドサービス、修理サービス、または家事サービスを含み得る。製品の種類は、たとえば、服、靴、おもちゃ、電子機器、コンピュータ、本、または宝飾品を含み得る。予約の種類は、たとえば、夕食の予約またはヘアサロンの予約を含み得る。チケットの種類は、たとえば、映画のチケット、スポーツ会場のチケット、または航空券を含み得る。場合によっては、サービス、製品、予約、またはチケットの種類は、価格、場所、配送の種類、入手のしやすさ、またはその他の属性に基づいてカテゴリ分けされ得る。
クライアントコンピューティングデバイス104は、(センサ134を介して)音声問い合わせをクライアントコンピューティングデバイス104にオーディオ入力として入力し、トランスデューサ136(たとえばスピーカ)から出力される、データ処理システム102(またはコンテンツプロバイダコンピューティングデバイス106)からクライアントコンピューティングデバイス104に提供され得るコンピュータによって生成された音声の形態のオーディオ出力を受け取るエンドユーザに関連付けられ得る。コンピュータによって生成された音声は、実際の人からの録音またはコンピュータによって生成された言葉を含み得る。音声問い合わせではなく、入力は、生成されるかまたはクライアントコンピューティングデバイス104から(たとえば、ネットワーク105を介して)取得され、音声問い合わせのパースによって得られる同じ種類の情報を得るためにデータ処理システム102によってパースされる1つまたは複数の画像または動画セグメントも含み得る。たとえば、ユーザは、ユーザが購入したいアイテムの写真を撮ることができる。データ処理システム102は、画像の内容を特定するために画像に対してマシンビジョンを実行し、画像の内容を特定するテキスト文字列を生成することができる。テキスト文字列は、入力された問い合わせとして使用され得る。
データ処理システム102は、データ処理システム102がネットワーク105を介するなどしてその他のデバイスと通信することを可能にする少なくとも1つのインターフェース110を含むか、そのような少なくとも1つのインターフェース110とインターフェースを取るか、または別の方法でそのような少なくとも1つのインターフェース110と通信することができる。データ処理システム102は、少なくとも1つの自然言語プロセッサコンポーネント112を含むか、少なくとも1つの自然言語プロセッサコンポーネント112とインターフェースを取るか、または別の方法で少なくとも1つの自然言語プロセッサコンポーネント112と通信することができる。データ処理システム102は、少なくとも1つのダイレクトアクションアプリケーションプログラミングインターフェース(「API」)116を含むか、少なくとも1つのダイレクトアクションAPI 116とインターフェースを取るか、または別の方法で少なくとも1つのダイレクトアクションAPI 116と通信することができる。データ処理システム102は、少なくとも1つのセッションハンドラ114を含むか、少なくとも1つのセッションハンドラ114とインターフェースを取るか、または別の方法で少なくとも1つのセッションハンドラ114と通信することができる。データ処理システム102は、少なくとも1つのナビゲーションコンポーネント118を含むか、少なくとも1つのナビゲーションコンポーネント118とインターフェースを取るか、または別の方法で少なくとも1つのナビゲーションコンポーネント118と通信することができる。データ処理システム102は、少なくとも1つのオーディオ信号ジェネレータ122を含むか、少なくとも1つのオーディオ信号ジェネレータ122とインターフェースを取るか、または別の方法で少なくとも1つのオーディオ信号ジェネレータ122と通信することができる。データ処理システム102は、少なくとも1つのデータリポジトリ124を含むか、少なくとも1つのデータリポジトリ124とインターフェースを取るか、または別の方法で少なくとも1つのデータリポジトリ124と通信することができる。
データ処理システム102は、ナビゲーションコンポーネント118を含むか、ナビゲーションコンポーネント118とインターフェースを取るか、または別の方法でナビゲーションコンポーネント118と通信することができる。ナビゲーションコンポーネント118は、コンピューティングデバイス104とコンテンツプロバイダ106によって提供されるウェブサイトなどのデジタルコンポーネントとの間の音声ベースのインタラクションを可能にすることができる。コンテンツプロバイダ106によって提供されるデジタルコンポーネントは、音声ベースのインタラクションに対応するように構成されない可能性がある。たとえば、デジタルコンポーネントは、テキスト、画像、映像、入力要素、およびその他の非オーディオ要素を含むウェブページであることが可能である。さらに、デジタルコンポーネント(またはそのプロバイダ)とデータ処理システム102との間に予め確立された統合は、存在しない可能性がある。ナビゲーションコンポーネント118は、たとえば、ヘッドレスブラウザまたはヘッドレスウェブキットレンダラを使用してデジタルコンポーネントをレンダリングし、デジタルコンポーネント内の入力要素、テキスト、およびその他のデータを特定することができる。ヘッドレスレンダラによってレンダリングされるとき、レンダリングされるデジタルコンポーネントは、グラフィカルユーザインターフェースが機能することを必要としない。ナビゲーションコンポーネント118は、インタラクションモデルを使用してそれらの要素とインタラクションすることができる。たとえば、ナビゲーションコンポーネント118は、入力フィールドにデータ配列を入力し、入力要素(たとえば、ナビゲーションまたは送信ボタン)を選択し、作動させ、コンピューティングデバイス104から受信された入力オーディオ信号において特定されたアクションを完了するためにインタラクションモデルに基づいてデータを取り出すことができる。一例として、入力オーディオ信号「シャツを2枚買う」に関して、ナビゲーションコンポーネント118は、データ配列「text=2」を生成することができる。ナビゲーションコンポーネント118は、ヘッドレスでレンダリングされたウェブページ内の入力フィールドおよび「購入」ボタンを特定することもできる。ナビゲーションコンポーネ
ント118は、入力フィールドにテキスト「2」を入力し、それから、トランザクションを完了するために「購入」ボタンを選択することができる。
データリポジトリ124は、1つまたは複数のローカルまたは分散型データベースを含むことができ、データベース管理システムを含むことができる。データリポジトリ124は、コンピュータデータストレージまたはメモリを含むことができ、データの中でもとりわけ、1つまたは複数のパラメータ126、1つまたは複数のポリシー128、インタラクションモデル130、およびテンプレート132を記憶することができる。パラメータ126、ポリシー128、およびテンプレート132は、クライアントコンピューティングデバイス104とデータ処理システム102との間の音声ベースのセッションについての規則などの情報を含み得る。データリポジトリ124は、オーディオ出力または関連するメタデータに関するコンテンツアイテムを含み得るコンテンツデータと、クライアントコンピューティングデバイス104との1つまたは複数の通信セッションの一部であることが可能である入力オーディオメッセージとを記憶することもできる。パラメータ126は、たとえば、閾値、距離、時間間隔、継続時間、スコア、または重みを含み得る。
インタラクションモデル130は、ナビゲーションコンポーネント118によって生成され、更新されることが可能である。データリポジトリ124は、複数のインタラクションモデルを含み得る。インタラクションモデル130は、包括的モデルおよびコンテンツプロバイダに固有のモデルにカテゴリ分けされ得る。包括的モデルは、異なるインタラクションまたはアクションカテゴリにさらに細分化され得る。たとえば、インタラクションモデル130は、ショッピングウェブサイト、天気プロバイダウェブサイト、および予約ウェブサイトなどの異なる種類の商用ウェブサイトのための包括的モデルを含み得る。
インタラクションモデル130は、特定的モデルも含み得る。特定的インタラクションモデルは、コンテンツプロバイダ106または特定のコンテンツプロバイダ106によって提供される特定のデジタルコンポーネントに固有であることが可能である。たとえば、特定のウェブサイトYに関して、特定的インタラクションモデルは、リンクの配置、メニュー、ウェブサイトをナビゲートする方法、ならびに特定の製品およびデータがウェブサイト内でどのように記憶され、分類されるかを知ることができる。ナビゲーションコンポーネント118は、この情報を使用してウェブサイト内をナビゲートし、ウェブサイトとのアクションまたはその他のトランザクションを完了するためにウェブサイトとインタラクションするときにウェブサイトにデータ配列を与えることができる。
包括的インタラクションモデルは、ナビゲーションコンポーネント118が特定的インタラクションモデルを生成するためにデジタルコンポーネントまたはコンテンツプロバイダ106と所定の数のインタラクションをこなしていないときに使用され得る。ナビゲーションコンポーネント118は、はじめに特定のセッション(たとえば、それらのパーミッションを得た直後のユーザセッション、またはユーザがデジタルコンポーネントとインタラクションする特定の訓練セッション)からデータを収集することによってモデル(包括的インタラクションモデルと特定的インタラクションモデルとの両方)を訓練することができる。たとえば、入力オーディオ信号を前提として、ユーザは、入力オーディオ信号(たとえば、「オーケー。シャツを買って」)のタスクを完了することができる。ナビゲーションコンポーネント118は、アクションを完了する際にユーザによって行われた入力を受け取り、アクションを完了する際に使用されるテキストフィールドおよびボタンなどの入力要素をナビゲーションコンポーネント118が特定することを可能にするモデルを構築することができる。特定的モデルは、特定のデジタルコンポーネントに関して訓練されることが可能であり、包括的モデルは、所与のカテゴリ内の複数のデジタルコンポーネントを使用して訓練されることが可能である。訓練は、モデルが、特定の製品を購入することに含まれるステップ、製品のカテゴリ、製品のソート、およびデジタルコンポーネント上で注文がどのように実行されるかなどのインタラクションデータを決定することを可能にすることができる。モデルは、ナビゲーションコンポーネント118が入力オーディオ信号内で特定される製品またはサービスを正しく特定し、それらの製品またはサービスとインタラクションすることを可能にすることができる。
両方の種類のインタラクションモデル130が、データ処理システム102とコンテンツプロバイダ106との間のセッション中およびセッション後に訓練され、更新されることが可能である。たとえば、デジタルコンポーネントのために包括的モデルを使用している間に、ナビゲーションコンポーネント118は、デジタルコンポーネントのための特定的モデルを構築することができる。特定のナビゲーションコンポーネント118のための特定的インタラクションモデルが、たとえば、所定の数のセッションからのデータによって構築されることによって信頼できると見なされると、ナビゲーションコンポーネント118は、デジタルコンポーネントのために包括的モデルよりも特定的インタラクションモデルを使い始めることができる。ナビゲーションコンポーネント118は、インタラクションモデル130を更新するために追加的なセッション(または新しいセッション)からのデータを使用することができる。
インターフェース110、自然言語プロセッサコンポーネント112、セッションハンドラ114、ダイレクトアクションAPI 116、ナビゲーションコンポーネント118、またはオーディオ信号ジェネレータコンポーネント122は、それぞれ、少なくとも1つの処理ユニットもしくはプログラミング可能な論理アレイエンジンなどのその他の論理デバイス、またはデータベースリポジトリもしくはデータベース124と通信するように構成されたモジュールを含むことができる。インターフェース110、自然言語プロセッサコンポーネント112、セッションハンドラ114、ダイレクトアクションAPI 116、ナビゲーションコンポーネント118、オーディオ信号ジェネレータコンポーネント122、およびデータリポジトリ124は、別々のコンポーネントであるか、単一のコンポーネントであるか、またはデータ処理システム102の一部であることができる。システム100およびデータ処理システム102などのそのコンポーネントは、1つまたは複数のプロセッサ、論理デバイス、または回路などのハードウェア要素を含み得る。
データ処理システム102は、複数のコンピューティングデバイス104に関連する匿名のコンピュータネットワーク活動情報を取得することができる。コンピューティングデバイス104のユーザは、ユーザのコンピューティングデバイス104に対応するネットワーク活動情報を取得することをデータ処理システム102に肯定的に認可することが可能である。たとえば、データ処理システム102は、1つまたは複数の種類のネットワーク活動情報を取得することに同意するようにコンピューティングデバイス104のユーザに促すことができる。コンピューティングデバイス104のユーザの識別情報は、匿名のままであることができ、コンピューティングデバイス104は、一意識別子(たとえば、データ処理システム102またはコンピューティングデバイスのユーザによって提供されるユーザまたはコンピューティングデバイス104の一意識別子)に関連付けられ得る。データ処理システム102は、各観測値(observation)を対応する一意識別子と関連付けることができる。
データ処理システム102は、たとえばデータパケットを使用して、情報を受信および送信するように設計されたか、構成されたか、構築されたか、または動作可能であるインターフェースコンポーネント110を含み得る。インターフェース110は、ネットワークプロトコルなどの1つまたは複数のプロトコルを使用して情報を受信および送信することができる。インターフェース110は、ハードウェアインターフェース、ソフトウェアインターフェース、有線インターフェース、またはワイヤレスインターフェースを含み得る。インターフェース110は、あるフォーマットから別のフォーマットにデータを変換するかまたはフォーマットすることを容易にすることができる。たとえば、インターフェース110は、ソフトウェアコンポーネントなどの様々なコンポーネントの間で通信するための定義を含むアプリケーションプログラミングインターフェースを含み得る。
データ処理システム102は、オーディオ入力信号を含むかまたは特定するデータパケットまたはその他の信号を受信することができる。たとえば、データ処理システム102は、オーディオ信号を受信するかまたは取得し、オーディオ信号をパースするためにNLPコンポーネント112を実行するかまたは走らせることができる。たとえば、NLPコンポーネント112は、人とコンピュータとの間のインタラクションを提供することができる。NLPコンポーネント112は、自然言語を理解し、データ処理システム102が人間のまたは自然言語入力から意味を導出することを可能にするための技術を用いて構成され得る。NLPコンポーネント112は、統計的機械学習などの機械学習に基づく技術を含むかまたはそのような技術を用いて構成され得る。NLPコンポーネント112は、入力オーディオ信号をパースするために決定木、統計モデル、または確率モデルを利用することができる。NLPコンポーネント112は、たとえば、固有表現認識(たとえば、テキストのストリームが与えられたものとして、テキスト内のどのアイテムが人または場所などの適切な名前にマッピングされるか、およびそれぞれのそのような名前の種類が人、場所、または組織などのどれであるのかを決定すること)、自然言語生成(たとえば、コンピュータデータベースからの情報または意味的意図(semantic intent)を理解可能な人間の言語に変換すること)、自然言語理解(たとえば、テキストをコンピュータモジュールが操作することができる一階論理構造などのより形式的な表現に変換すること)、機械翻訳(たとえば、テキストをある人間の言語から別の人間の言語に自動的に翻訳すること)、形態素分割(たとえば、考慮されている言語の言葉の形態論または構造の複雑さに基づいて困難である可能性があるが、単語を個々の形態素に分け、形態素のクラスを特定すること)、質問応答(たとえば、特定的であるかまたは自由である可能性がある人間の言語の質問に対する答えを決定すること)、意味処理(たとえば、単語を特定し、特定された単語を同様の意味を有するその他の単語に関連付けるために、その単語の意味を符号化した後に行われることができる処理)などの機能を実行することができる。
NLPコンポーネント112は、入力信号を(たとえば、データリポジトリ124内の)オーディオ波形の記憶された代表的なセットと比較し、最も近い一致を選択することによってオーディオ入力信号を認識されたテキストに変換する。オーディオ波形のセットは、データリポジトリ124、またはデータ処理システム102がアクセス可能なその他のデータベースに記憶され得る。代表的な波形が、ユーザの大きなセット全体で生成され、それから、ユーザからの発話サンプルによって増強されてもよい。オーディオ信号が認識されたテキストに変換された後、NLPコンポーネント112は、たとえば、ユーザ全体にわたって訓練することによってまたは手動で指定することによって、データ処理システム102が提供することができるアクションと関連付けられる単語にテキストをマッチングする。
オーディオ入力信号は、クライアントコンピューティングデバイス104のセンサ134またはトランスデューサ136(たとえば、マイクロフォン)によって検出され得る。トランスデューサ136、オーディオドライバ138、またはその他のコンポーネントを介して、クライアントコンピューティングデバイス104は、(たとえば、ネットワーク105を介して)オーディオ入力信号をデータ処理システム102に提供することができ、データ処理システム102において、オーディオ入力信号は、(たとえば、インターフェース110によって)受信され、NLPコンポーネント112に提供されるか、またはデータリポジトリ124に記憶され得る。
NLPコンポーネント112は、入力オーディオ信号を取得することができる。入力オーディオ信号から、NLPコンポーネント112は、少なくとも1つの要求または要求に対応する少なくとも1つのトリガキーワードを特定することができる。要求は、入力オーディオ信号の意図または主題を示すことができる。トリガキーワードは、行われる見込みが大きいアクションの種類を示すことができる。たとえば、NLPコンポーネント112は、夜に食事会に参加し、映画を見るために家を出る少なくとも1つの要求を特定するために入力オーディオ信号をパースし得る。トリガキーワードは、行われるアクションを示す少なくとも1つの単語、語句、語根もしくは部分的な単語、または派生語を含み得る。たとえば、入力オーディオ信号からのトリガキーワード「go」または「to go to」は、輸送の必要性を示す可能性がある。この例において、入力オーディオ信号(または特定された要求)は、輸送の意図を直接表さないが、トリガキーワードが、輸送が要求によって示される少なくとも1つのその他のアクションの補助的なアクションであることを示す。
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は、laundry(洗濯)およびdry cleaning(ドライクリーニング)などの複数のトリガキーワードをさらに特定し得る。たとえば、NLPコンポーネント112は、トリガ語句がトリガキーワードおよび第2のトリガキーワードを含むと判定する可能性がある。
NLPコンポーネント112は、NLPコンポーネント112が要求およびトリガキーワードを取得するために使用する方法と同様の方法でリモートコンテンツプロバイダ106またはリモートデータ処理システム102の識別情報を特定するか、決定するか、取り出すか、または別の方法で取得するために入力オーディオ信号をパースすることができる。たとえば、語句「オーケー。ABCから赤いシャツを買って」を含む入力オーディオ信号が、ABCをシャツの販売者として特定するためにパースされ得る。それから、データ処理システム102は、ABCに関連するコンテンツプロバイダ106を決定することができる。コンテンツプロバイダ106は、ABCのウェブサイトをホストするサーバであることが可能である。データ処理システム102は、「www.ABC.com」などのABCのウェブアドレスを特定することができる。データ処理システム102は、「www.ABC.comのABCのことですか?」という確認オーディオ信号をコンピューティングデバイス104に送信することができる。コンピューティングデバイス104から確認メッセージを受信したことに応答して、データ処理システム102は、www.ABC.comに置かれたコンテンツプロバイダ106とのセッションを開始することができる。
NLPコンポーネント112は、トリガキーワードを特定するために入力オーディオ信号をフィルタリングすることができる。たとえば、入力オーディオ信号を運ぶデータパケットは、「It would be great if I could get someone that could help me go to the airport」を含む可能性があり、その場合、NLPコンポーネント112は、以下の通りの1つまたは複数の語、すなわち、「it」、「would」、「be」、「great」、「if」、「I」、「could」、「get」、「someone」、「that」、「could」、または「help」をフィルタリングして取り除くことができる。これらの語をフィルタリングして取り除くことによって、NLPコンポーネント112は、「go to the airport」などのトリガキーワードをより正確で信頼性高く特定し、これがタクシーまたは相乗りサービスの要求であると判定する可能性がある。
データ処理システム102は、要求および特定されたリモートコンテンツプロバイダ106に応じてトリガキーワードに基づいてアクションデータ構造を生成するように設計され、構築されたダイレクトアクションAPI 116を含み得る。データ処理システム102のプロセッサは、カーシェアリングサービスの自動車などのサービスまたは製品を要求または注文するためにコンテンツプロバイダ106に対するデータ構造を生成するスクリプトを実行するためにダイレクトアクションAPI 116を呼び出すことができる。ダイレクトアクションAPI 116は、データ処理システム102がカーシェアリングサービスの自動車を予約するなどの動作を実行することを可能にするために場所、時間、ユーザアカウント、物流、またはその他の情報を決定するために、データリポジトリ124からのデータと、クライアントコンピューティングデバイス104からのエンドユーザの同意とともに受信されたデータとを取得することができる。
ダイレクトアクションAPI 116は、データ処理システム102がコンテンツプロバイダデバイス106からのデジタルコンポーネントとインタラクションするときにエンドユーザの意図を満足させるために指定されたアクションを実行することができる。その入力において指定されたアクションに応じて、ダイレクトアクションAPI 116は、アクションデータ構造に含められ得る、ユーザの要求を満たすために必要とされるパラメータを特定するコードまたはダイアログスクリプトを実行することができる。入力オーディオ信号が「オーケー。赤いシャツを買って」である上の例を続けるために、そのようなコードは、追加的な情報をルックアップすることができるか、またはユーザの好みのシャツのサイズなどの質問をエンドユーザに尋ねる、クライアントコンピューティングデバイス104においてレンダリングするためのオーディオ出力を提供することができる。ダイレクトアクションAPI 116は、必要なパラメータを決定することができ、情報をアクションデータ構造にパッケージングすることができる。たとえば、入力オーディオ信号が「オーケー。赤いシャツを買って」であるとき、そのアクションデータ構造は、ユーザの好みのシャツのサイズを含み得る。
ダイレクトアクションAPI 116は、要求の種類を特定すると、データリポジトリ124に記憶されたテンプレートリポジトリからの対応するテンプレートにアクセスすることができる。テンプレート132は、コンテンツプロバイダ106によって提供されるデジタルコンポーネントを満たすかまたはコンテンツプロバイダ106によって提供されるデジタルコンポーネントとインタラクションする動作をさらに実行するためにダイレクトアクションAPI 116によってデータを投入され得る構築されたデータセット内のフィールドを含み得る。ダイレクトアクションAPI 116は、トリガキーワードおよび要求の1つまたは複数の特徴に一致するテンプレートを選択するためにテンプレートリポジトリ内のルックアップを実行することができる。たとえば、要求が目的地までの車または乗車の要求に対応する場合、データ処理システム102は、カーシェアリングサービスのテンプレートを選択することができる。カーシェアリングサービスのテンプレートは、以下のフィールド、すなわち、デバイス識別子、ピックアップ場所、目的地、乗客数、またはサービスの種類のうちの1つまたは複数を含み得る。ダイレクトアクションAPI 116は、フィールドに値を投入することができる。フィールドに値を投入するために、ダイレクトアクションAPI 116は、コンピューティングデバイス104の1つもしくは複数のセンサ134またはコンピューティングデバイス104のユーザインターフェースにpingするか、ポーリングするか、あるいはそうでなければそれらのセンサ134またはユーザインターフェースから情報を取得することができる。たとえば、ダイレクトアクションAPI 116は、GPSセンサなどの位置センサを使用してソースの位置を検出することができる。ダイレクトアクションAPI 116は、コンピューティングデバイス104のエンドユーザに調査、プロンプト、または問い合わせを送ることによってさらなる情報を取得することができる。ダイレクトアクションAPI 116は、データ処理システム102のインターフェース110およびコンピューティングデバイス104のユーザインターフェース(たとえば、オーディオインターフェース、音声ベースのユーザインターフェース、ディスプレイ、またはタッチスクリーン)を介して調査、プロ
ンプト、または問い合わせを送ることができる。したがって、ダイレクトアクションAPI 116は、トリガキーワードまたは要求に基づいてアクションデータ構造のためのテンプレートを選択し、1つもしくは複数のセンサによって検出されたかまたはユーザインターフェースを介して取得された情報をテンプレートの1つまたは複数のフィールドに投入し、コンテンツプロバイダ106による動作の実行を容易にするためにアクションデータ構造を生成するか、作成するか、または別の方法で構築することができる。
データ処理システム102は、たとえば、トリガキーワード、要求、コンテンツプロバイダ106の種類、コンテンツプロバイダ106のカテゴリ(たとえば、タクシーサービス、ランドリーサービス、フラワーサービス(flower service)、小売りサービス、もしくは出前)、位置、またはその他のセンサ情報のうちの1つまたは複数を含む様々な要因に基づいてテンプレートデータ構造からテンプレートを選択することができる。
トリガキーワードに基づいてテンプレートを選択するために、(たとえば、API 116を介して)データ処理システム102は、トリガキーワードをマッピングするまたは別の方法でトリガキーワードに対応するテンプレートデータ構造を特定するためにトリガキーワードを使用してテンプレートデータベースに対してルックアップまたはその他の問い合わせ動作を実行することができる。たとえば、テンプレートデータベース内の各テンプレートは、データ処理システム102とコンテンツプロバイダ106との間の通信セッションを確立するためにデータ処理システム102が処理することができるトリガキーワードに応じてアクションデータ構造を生成するようにテンプレートが構成されることを示すために1つまたは複数のトリガキーワードに関連付けられ得る。
アクションデータ構造を構築するかまたは生成するために、データ処理システム102は、値を投入する選択されたテンプレートの1つまたは複数のフィールドを特定することができる。フィールドは、数値、文字列、ユニコード値、ブール論理、2進値、16進値、識別子、位置座標、地理的地域、タイムスタンプ、またはその他の値を投入され得る。フィールドまたはデータ構造自体は、データのセキュリティを保つために暗号化されるかまたはマスクされ得る。
テンプレートのフィールドを決定すると、データ処理システム102は、アクションデータ構造を作成するためにテンプレートのフィールドに投入するためのフィールドの値を特定することができる。データ処理システム102は、データリポジトリ124に対してルックアップまたはその他の問い合わせ動作を実行することによってフィールドの値を取得するか、取り出すか、決定するか、または別の方法で特定することができる。
場合によっては、データ処理システム102は、フィールドのための情報または値がデータリポジトリ124にないと判定する可能性がある。データ処理システム102は、データリポジトリ124に記憶された情報または値が期限切れであるか、古いか、またはNLPコンポーネント112によって特定されたトリガキーワードおよび要求に応じてアクションデータ構造を構築する目的にその他の点で適さない(たとえば、クライアントコンピューティングデバイス104の位置が古い位置である可能性があり、現在位置でない可能性がある、アカウントが失効している可能性がある、目的地のレストランが新しい場所に移転した可能性がある、物理的な活動の情報、または交通手段)と判定する可能性がある。
データ処理システム102は、そのデータ処理システム102がデータ処理システム102のメモリ内でテンプレートのフィールドのための値または情報に現在アクセスすることができないと判定する場合、値または情報を獲得することができる。データ処理システム102は、クライアントコンピューティングデバイス104の1つもしくは複数の利用可能なセンサに問い合わせるかもしくはポーリングするか、クライアントコンピューティングデバイス104のエンドユーザに情報を求めるプロンプトを表示するか、またはHTTPプロトコルを使用してオンラインのウェブに基づくリソースにアクセスすることによって情報を獲得するかまたは取得することができる。たとえば、データ処理システム102は、そのデータ処理システム102がテンプレートの必要とされるフィールドである可能性があるクライアントコンピューティングデバイス104の現在位置を持たないと判定する可能性がある。データ処理システム102は、クライアントコンピューティングデバイス104に位置情報を問い合わせることができる。データ処理システム102は、全地球測位システムセンサなどの1つもしくは複数の位置センサ134、WiFi三角測量、セルタワー三角測量、Bluetooth(登録商標)ビーコン、IPアドレス、またはその他の位置感知技術を使用して位置情報を提供するようにクライアントコンピューティングデバイス104に要求することができる。
場合によっては、データ処理システム102は、トリガキーワードまたは要求に基づいてセッションを確立すべきリモートコンテンツプロバイダ106を特定することができる。トリガキーワードに基づいてコンテンツプロバイダ106を特定するために、データ処理システム102は、トリガキーワードにマッピングするコンテンツプロバイダ106を特定するためにデータリポジトリ124内のルックアップを実行することができる。たとえば、トリガキーワードが「乗車(ride)」または「~まで行く(to go to)」を含む場合、(たとえば、ダイレクトアクションAPI 116を介して)データ処理システム102は、タクシーサービス会社Aに対応するコンテンツプロバイダ106 (またはそのウェブアドレス)を特定することができる。データ処理システム102は、特定されたコンテンツプロバイダ106に基づいてテンプレートデータベースからテンプレートを選択することができる。データ処理システム102は、インターネットに基づく検索を行うことによってコンテンツプロバイダ106を特定することができる。
データ処理システム102は、コンピューティングデバイス104とデータ処理システム102との間の通信セッションを確立するためのセッションハンドラコンポーネント114を含むか、実行するか、アクセスするか、または別の方法でそのようなセッションハンドラコンポーネント114と通信することができる。通信セッションは、データ処理システム102とコンテンツプロバイダ106との間の1つまたは複数のデータ送信を指すことも可能である。コンピューティングデバイス104とデータ処理システム102との間の通信セッションは、コンピューティングデバイス104のセンサ134によって検出される入力オーディオ信号およびデータ処理システム102によってコンピューティングデバイス104に送信される出力信号の送信を含み得る。(たとえば、セッションハンドラコンポーネント114を介して)データ処理システム102は、入力オーディオ信号を受信したことに応答して通信セッションを確立することができる。データ処理システム102は、通信セッションに関する継続時間を設定することができる。データ処理システム102は、通信セッションに関して設定された継続時間に関するタイマまたはカウンタを設定することができる。タイマの満了に応答して、データ処理システム102は、通信セッションを終了することができる。データ処理システム102とコンテンツプロバイダ106との間の通信セッションは、コンテンツプロバイダ106からデータ処理システム102へのデジタルコンポーネントの送信を含み得る。データ処理システム102とコンテンツプロバイダ106との間の通信セッションは、コンテンツプロバイダ106へのデータ配列の送信も含み得る。通信セッションは、データ(たとえば、デジタルコンポーネント、認証情報、資格証明情報など)がデータ処理システム102とコンテンツプロバイダ106との間およびデータ処理システム102とコンピューティングデバイス104との間で送信されるネットワークに基づく通信セッションを指し得る。
データ処理システム102は、出力信号を生成するためのオーディオ信号ジェネレータコンポーネント122を含むか、実行するか、またはそのようなオーディオ信号ジェネレータコンポーネント122と通信することができる。出力信号は、1つまたは複数の部分を含み得る。出力信号は、コンテンツプロバイダ106から受信されたデジタルコンポーネントから特定されたコンテンツを含み得る。
オーディオ信号ジェネレータコンポーネント122は、第1のデータ構造に対応する音声を有する第1の部分を有する出力信号を生成することができる。たとえば、オーディオ信号ジェネレータコンポーネント122は、ダイレクトアクションAPI 116によってアクションデータ構造のフィールドに投入された1つまたは複数の値に基づいて出力信号の第1の部分を生成することができる。タクシーサービスの例において、フィールドの値は、たとえば、ピックアップ場所に123 Main Streetを、目的地に1234 Main Streetを、乗客数に2を、サービスのレベルにエコノミーを含むことが可能である。
(たとえば、インターフェース110およびネットワーク105を介して)データ処理システム102は、オーディオ信号ジェネレータコンポーネント122によって生成された出力信号を含むデータパケットを送信することができる。出力信号は、コンピューティングデバイス104のまたはコンピューティングデバイス104によって実行されるオーディオドライバコンポーネント138に、出力に対応する音響波を生成させるようにコンピューティングデバイス104のスピーカ(たとえば、トランスデューサ136)を駆動させることができる。
コンテンツプロバイダ106は、ウェブサイト、品物、またはサービス(概してすべてデジタルコンポーネントと呼ばれる)をコンピューティングデバイス104およびデータ処理システム102に提供することができる。サービスおよび品物は、デジタルコンポーネントに関連付けられ、物理的に提供されるサービスおよび品物(たとえば、衣服、カーサービス(car service)、その他の消耗品など)であることが可能である。たとえば、カーサービスに関するデジタルコンポーネントは、ユーザがカーサービスをスケジューリングするウェブサイトであることが可能である。サービスまたは品物に関連するデジタルコンポーネントは、品物もしくはサービスの購入、加入、設定、または品物およびサービスに関連するその他のトランザクションにおいて使用されるデジタルコンポーネントであることが可能である。
コンテンツプロバイダ106は、デジタルコンポーネントに1つまたは複数のキーワードを含めることができる。キーワードは、デジタルコンポーネントのメタタグ、ヘッダ文字列、本体、およびリンク内にあることが可能である。デジタルコンポーネントを受信した後、ナビゲーションコンポーネント118は、デジタルコンポーネント(またはデジタルコンポーネントに関連するコンテンツプロバイダ106)を異なるカテゴリにカテゴリ分けするためにキーワードを分析することができる。たとえば、デジタルコンポーネントは、デジタルコンポーネントの全体的な主題を特定するニュース、小売りなどのカテゴリにカテゴリ分けされ得る。ナビゲーションコンポーネント118は、デジタルコンポーネントのカテゴリに少なくとも部分的に基づいてインタラクションモデル130からインタラクションモデルを選択することができる。
デジタルコンポーネントは、コンピューティングデバイス104のディスプレイデバイスによってレンダリングされることが可能であり、またはデータ処理システム102上でレンダリングされることが可能である。レンダリングは、ディスプレイデバイス上にコンテンツアイテムを表示することを含み得る。一部の実装において、コンピューティングデバイス104は、デジタルコンポーネントをレンダリングするためのディスプレイデバイスを含まない。たとえば、コンピューティングデバイス104は、コンピューティングデバイス104のスピーカによってデジタルコンポーネントを再生することによってデジタルコンポーネントをレンダリングすることのみ可能である。データ処理システム102は、仲介役として働き、コンピューティングデバイス104がオーディオに基づくようにしてデジタルコンポーネントとインタラクションすることを可能にすることができる。コンピューティングデバイス104は、データ処理システム102のインターフェース110に入力オーディオ信号を通信するためのアプリなどの、クライアントコンピューティングデバイス104にインストールされたアプリケーション、スクリプト、またはプログラムを含み得る。アプリケーションは、出力オーディオ信号をレンダリングするためにコンピューティングデバイス104のコンポーネントを駆動することもできる。
図2は、音声作動型のデータパケット(またはその他のプロトコル)に基づくコンピュータネットワーク内のデジタルコンポーネントを取り出し、デジタルコンポーネントとインタラクションするための例示的な方法200のブロック図を示す。図3は、図2に示される方法200の最中の、図1に示されるシステムを通じた例示的なデータフローのブロック図を示す。方法200は、入力オーディオ信号を受信すること(ACT 202)を含む。方法200は、要求、コンテンツプロバイダ、およびトリガキーワードを特定するために入力オーディオ信号をパースすること(ACT 204)を含む。方法200は、アクションデータ構造を生成すること(ACT 206)を含む。方法200は、コンテンツプロバイダとのセッションを確立すること(ACT 208)を含む。方法200は、受信されたデジタルコンポーネントをレンダリングすること(ACT 210)を含む。方法200は、インタラクションモデルを選択すること(ACT 212)を含む。方法200は、インタラクションモデルに基づいてデータ配列を生成すること(ACT 214)を含む。方法200は、データ配列をコンテンツプロバイダに送信すること(ACT 216)を含む。
上述のように、図2~図3を参照すると、方法200は、入力オーディオ信号を受信すること(ACT 202)を含む。データ処理システム102は、コンピューティングデバイス104から入力オーディオ信号320を受信することができる。入力オーディオ信号320は、ネットワークを介してNLPコンポーネント112を介してデータ処理システム102によって受信され得る。NLPは、データ処理システム102によって実行され得る。データ処理システム102は、入力オーディオ信号320を入力オーディオ信号を含むデータパケットとして受信することができる。入力オーディオ信号は、コンピューティングデバイス104のマイクロフォンなどのセンサによって検出され得る。
方法200は、要求、コンテンツプロバイダ、およびトリガキーワードを特定するために入力オーディオ信号をパースすること(ACT 204)を含む。入力オーディオ信号は、自然言語プロセッサコンポーネント112によってパースされ得る。たとえば、コンピューティングデバイス104によって検出されたオーディオ信号は、「オーケー、デバイス。ABC Co.のシャツが欲しい」を含み得る。この入力オーディオ信号内で、最初のトリガキーワードは、データ処理システム102に入力オーディオ信号を送信するようにコンピューティングデバイス104に示すことができる「オーケー、デバイス」を含み得る。コンピューティングデバイス104のプリプロセッサは、データ処理システム102に残りのオーディオ信号を送信する前に用語「オーケー、デバイス」をフィルタリングして取り除くことができる。場合によっては、コンピューティングデバイス104は、さらなる用語をフィルタリングして取り除くか、またはさらに処理するためにデータ処理システム102に送信すべきキーワードを生成することができる。
データ処理システム102は、入力オーディオ信号320内のトリガキーワードを特定することができる。語句であることが可能であるトリガキーワードは、上記の例において、「シャツが欲しい」を含み得る。トリガキーワードは、サービスまたは製品の種類(たとえば、シャツ)および行うべきアクションを示すことができる。データ処理システム102は、入力オーディオ信号内の要求を特定することができる。要求は、用語「~が欲しい(I want)」に基づいて決定され得る。トリガキーワードおよび用語は、意味処理技術またはその他の自然言語処理技術を使用して決定され得る。データ処理システム102は、コンテンツプロバイダ106をABC Co.として特定することができる。データ処理システム102は、コンテンツプロバイダ106、ABC Co.に関連するコンテンツプロバイダ106のウェブサイト、IPアドレス、またはその他のネットワークロケーションを特定することができる。
方法200は、アクションデータ構造を生成すること(ACT 206)を含む。ダイレクトアクションアプリケーションプログラミングインターフェースは、トリガキーワードに基づいてアクションデータ構造を生成することができる。アクションデータ構造は、要求および特定されたコンテンツプロバイダ106に応じてやはり生成され得る。アクションデータ構造は、テンプレートからまたはテンプレートに基づいて生成され得る。テンプレートは、トリガキーワードおよび特定されたコンテンツプロバイダ106に基づいて選択され得る。生成されたアクションデータ構造は、トリガキーワードに関連するアクションを完了することに関連する情報およびデータを含み得る。たとえば、「ABC Co.のシャツが欲しい」に関して、テンプレートは、シャツの購入に関連する必要とされる情報がサイズ、好みの色、好みのスタイル、および好みの価格帯を含み得ることを示す可能性がある。データ処理システム102は、データ処理システム102からコンピューティングデバイス104に送信される信号を出力するために、メモリから取り出された値によってまたはユーザによる応答に基づいてアクションデータ構造のフィールドにデータを投入することができる。データ処理システム102は、データ処理システム102またはコンピューティングデバイス104に記憶され得る安全なウォレットからユーザの資格証明情報などの安全なフィールドにデータを投入することができる。データ処理システム102は、安全なウォレットから情報を取得する前に安全なウォレットにアクセスするためのパーミッションをユーザに要求することができる。
方法200は、コンテンツプロバイダとのセッションを確立すること(ACT 208)を含む。データ処理システム102は、入力オーディオ信号内のコンテンツプロバイダ106を特定したことに応答してコンテンツプロバイダ106との通信セッション322を確立することができる。通信セッション322は、コンテンツプロバイダ106からデジタルコンポーネントを受信するために確立され得る。セッションは、ハイパーテキスト転送プロトコルを使用して確立され得る。セッションは、データ処理システム102からコンテンツプロバイダ106への要求324によって確立され得る。要求324は、要求324への応答325内で送信されるウェブページに対するものであることが可能である。
方法200は、受信されたデジタルコンポーネントをレンダリングすること(ACT 210)を含む。受信されたデジタルコンポーネントは、データ処理システム102のナビゲーションコンポーネント118によってレンダリングされ得る。図3は、デジタルコンポーネントの部分的レンダリング300を示す。上の例を続けると、デジタルコンポーネントは、入力オーディオ信号「ABC Co.のシャツが欲しい」に応答して受信され得る。レンダリングされるデジタルコンポーネント300は、(概してデジタルコンポーネントのコンポーネントまたは要素と呼ばれる)入力フィールド302、ボタン304、メニュー、画像フィールド306、画像308、およびテキスト310を含み得る。ボタン、リンク、入力フィールド、およびラジオボタンは、概して、入力要素と呼ばれ得る。デジタルコンポーネントは、グラフィカルユーザインターフェースなしにレンダリングされ得る。たとえば、デジタルコンポーネント300は、ヘッドレスブラウザによってレンダリングされるHTMLドキュメントであることが可能である。ナビゲーションコンポーネント118のヘッドレスブラウザは、デジタルコンポーネント内のHTMLおよびJavaScript(登録商標)などのデジタルコンポーネント300のコードをレンダリングすることができるレイアウトエンジンを含み得る。ナビゲーションコンポーネント118は、デジタルコンポーネントをヘッドレスでレンダリングするとき、デジタルコンポーネント300を、ナビゲーションコンポーネント118のマシンビジョンコンポーネントを用いて分析され得る画像ファイルにレンダリングすることができる。
方法200は、インタラクションモデルを選択すること(ACT 212)を含む。ナビゲーションコンポーネント118は、コンテンツプロバイダ106に関連するインタラクションモデルを選択することができる。ナビゲーションコンポーネント118は、2つの通常の種類のインタラクションモデルから選択することができる。第1のモデルは、特定のカテゴリに関連する各コンテンツプロバイダ106に関して同じである可能性がある包括的モデルであることが可能である。たとえば、データ処理システム102は、ショッピングウェブサイトのための包括的モデル、保険ウェブサイトのための包括的モデル、ホテル予約ウェブサイトのための包括的モデル、および出前ウェブサイトのための包括的モデルを含む可能性がある。第2の種類のモデルは、コンテンツプロバイダ106 (またはコンテンツプロバイダ106から受信されたデジタルコンポーネント)に固有であることが可能である。
加えて、特定的データモデルである第2のモデルも、使用される可能性がある。たとえば、モデルは、ABC Co.に固有であることが可能である。製品にアクセスするためのリンクの配置、特定のメニューおよびそれらのメニュー内をナビゲートする方法、特定の製品がウェブサイト内でどのように記憶され、分類されるかなどの特定のまたは特別な特徴は、特定的モデルに含まれる情報である可能性がある。ナビゲーションコンポーネント118は、デジタルコンポーネント300を解釈するためにモデルを使用することができる。ナビゲーションコンポーネント118は、所定の数のセッションがデータ処理システム102とコンテンツプロバイダ106との間で確立された後に特定的インタラクションモデルを生成することができる。たとえば、最初、データ処理システム102は、所与のコンテンツプロバイダ106とインタラクションするときに包括的モデルを使用することができる。インタラクションからのデータは、特定的インタラクションモデルを構築するために使用され得る。データ処理システム102が所定の数のセッションを開始するかまたはコンテンツプロバイダ106のための特定的モデルにセッションデータを追加すると、データ処理システム102は、コンテンツプロバイダ106のための特定的インタラクションモデルを使用し始めることができる。既に確立されたセッションの数が所定の数未満である間、データ処理システム102は、コンテンツプロバイダ106とインタラクションするときに包括的インタラクションモデルを使用し続けることができる。
選択されたモデルを使用して、ナビゲーションコンポーネント118は、デジタルコンポーネント300の保存された画像ファイルのマシンビジョン分析を実行することによってデジタルコンポーネント300の入力フィールド302、ボタン304、メニュー、画像フィールド306、画像308、およびテキスト310を特定することができる。ナビゲーションコンポーネント118は、デジタルコンポーネント300のコードをパースすることによってデジタルコンポーネント300のコンポーネントを特定することもできる。たとえば、ナビゲーションコンポーネント118は、デジタルコンポーネント300内のHTMLタグを特定することができる。一例として、ナビゲーションコンポーネント118は、入力フィールド302を特定するためにHTMLタグ<input>または<form>を探すことができる。
ナビゲーションコンポーネント118が画像またはボタンを特定するとき、ナビゲーションコンポーネント118は、画像またはボタンの1つまたは複数の特徴を判定するために画像またはボタンに対してマシンビジョン分析を実行することができる。特徴は、画像内の色の判定(たとえば、画像308に示されたシャツが赤いシャツであると判定)、画像内の物体の特定(たとえば、画像308がシャツを示すことを特定)、または画像もしくはボタン内のテキストもしくはアイコン(たとえば、ボタン304が「次」を示す矢印を含むこと、もしくはボタン304がテキスト「次」を含んでいたかどうか)を含み得る。
方法200は、インタラクションモデルに基づいてデータ配列を生成すること(ACT 214)を含む。データ配列は、インタラクションモデルを使用してデジタルコンポーネント300内で特定された情報に基づいてナビゲーションコンポーネント118によって生成され得る。データ配列は、アクションデータ構造からの情報を使用して生成され得る。たとえば、インタラクションモデルを使用して、ナビゲーションコンポーネント118は、テキスト310が「サイズ」と記載し、入力フィールド302に関連付けられると判定することができる。アクションデータ構造は、フィールド「サイズ」に「ミディアム」というエントリを含み得る。ナビゲーションコンポーネント118は、データ配列に「ミディアム」を含め、ミディアムサイズのシャツが選択されるべきであることを示すために入力フィールド302にデータ配列を入力することができる。
方法200は、データ配列をコンテンツプロバイダに送信すること(ACT 216)を含む。データ配列330は、入力フィールド302に入力され得る。データ配列330は、ナビゲーションコンポーネント118がボタン304などの別の入力フィールドを選択したことに応答してコンテンツプロバイダ106に送信され得る。データ配列330は、HTTP POSTまたはGETメソッドに応答してコンテンツプロバイダ106に送信され得る。データ処理システム102は、入力オーディオ信号内で特定されたアクションを完了するためにデジタルコンポーネントとインタラクションし続けることができる。たとえば、図3に示された例においてデータ処理システム102は、シャツを選択し、シャツの会計を済ませるかまたは購入をし、それからクライアントコンピューティングデバイス102に確認を送信するために方法200のACTを繰り返すことができる。
データ処理システム102は、データ処理システム102とコンピューティングデバイス104との間の通信セッション322を確立することができる。通信セッション322は、会話アプリケーションプログラミングインターフェース(conversational application programming interface)によって確立され得る。通信セッション322は、リアルタイムの相互の音声またはオーディオベースの会話セッションであることができる。データ処理システム102は、アクションデータ構造またはデータ配列に関する追加的な情報を取り出すためにコンピューティングデバイス104との通信セッション322を確立することができる。たとえば、データ処理システム102は、コンピューティングデバイス104のトランスデューサに「好みの色は何色ですか」という音波を生成させる命令とともに出力オーディオ信号326を送信することができる。ユーザは、出力オーディオ信号326に応じて第2の入力オーディオ信号328を与えることができる。自然言語プロセッサコンポーネント112は、この例においては「赤」であることが可能であるユーザの応答を特定するために第2の入力オーディオ信号328を処理することができる。ナビゲーションコンポーネント118は、インタラクションモデルと、第2の入力オーディオ信号328内で特定された応答とに基づいて第2のデータ配列332を生成することができる。第2のデータ配列332は、コンテンツプロバイダ106に送信され得る。
データ処理システム102は、入力オーディオ信号を最初に送信した第1のコンピューティングデバイス104のユーザに関連する第2のコンピューティングデバイス104との通信セッションを確立することができる。たとえば、第1のコンピューティングデバイス104は、音声ベースのデジタルアシスタントスピーカシステムであることが可能であり、第2のコンピューティングデバイス104は、ユーザのスマートフォンであることが可能である。データ処理システム102は、第2のコンピューティングデバイス104を介してユーザからの追加的な情報または確認を要求することができる。たとえば、図3に示された例において、データ処理システム102は、ユーザのスマートフォンに選択されたシャツの2つの画像を提供し、ユーザが2つのシャツのうちの一方を選択することを要求することができる。購入を完了するかまたは予約を行う前に、データ処理システム102は、第1のコンピューティングデバイス104を介した口頭の確認または第2のコンピューティングデバイス104を介した確認(たとえば、「購入」ボタンの選択)を要求することができる。
図4は、例示的なコンピュータシステム400のブロック図である。コンピュータシステムまたはコンピューティングデバイス400は、システム100、またはデータ処理システム102などのそのシステム100のコンポーネントを含むかまたはそれらを実装するために使用され得る。データ処理システム102は、インテリジェントなパーソナルアシスタントまたは音声ベースのデジタルアシスタントを含み得る。コンピューティングシステム400は、情報を通信するためのバス405またはその他の通信コンポーネントと、情報を処理するためのバス405に結合されたプロセッサ410または処理回路とを含む。また、コンピューティングシステム400は、情報を処理するためのバスに結合された1つまたは複数のプロセッサ410または処理回路を含み得る。コンピューティングシステム400は、情報およびプロセッサ410によって実行される命令を記憶するためのバス405に結合されたランダムアクセスメモリ(RAM)またはその他のダイナミックストレージデバイスなどのメインメモリ415も含む。メインメモリ415は、データリポジトリ124であるかまたはデータリポジトリ124を含む可能性がある。メインメモリ415は、位置情報、一時的な変数、またはプロセッサ410による命令の実行中のその他の中間情報を記憶するためにも使用され得る。コンピューティングシステム400は、静的な情報およびプロセッサ410のための命令を記憶するためのバス405に結合された読み出し専用メモリ(ROM)420またはその他のスタティックストレージデバイスをさらに含む可能性がある。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス425が、情報および命令を永続的に記憶するためにバス405に結合され得る。ストレージデバイス425は、データリポジトリ124を含むかまたはデータリポジトリ124の一部である可能性がある。
コンピューティングシステム400は、ユーザに対して情報を表示するための液晶ディスプレイまたはアクティブマトリックスディスプレイなどのディスプレイ435にバス405を介して結合される可能性がある。英数字およびその他のキーを含むキーボードなどの入力デバイス430が、プロセッサ410に情報およびコマンド選択を通信するためにバス405に結合される可能性がある。入力デバイス430は、タッチスクリーンディスプレイ435を含み得る。入力デバイス430は、プロセッサ410に方向情報およびコマンド選択を通信するためおよびディスプレイ435上でカーソルの動きを制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソルコントロールも含み得る。ディスプレイ435は、たとえば、図1のデータ処理システム102、クライアントコンピューティングデバイス104、またはその他のコンポーネントの一部である可能性がある。
本明細書において説明されるプロセス、システム、および方法は、メインメモリ415に含まれる命令の配列をプロセッサ410が実行したことに応答してコンピューティングシステム400によって実施され得る。そのような命令は、ストレージデバイス425などの別のコンピュータ可読媒体からメインメモリ415に読まれ得る。メインメモリ415に含まれる命令の配列の実行は、コンピューティングシステム400に本明細書において説明される例示的なプロセスを実行させる。マルチプロセッシング配列の1つまたは複数のプロセッサも、メインメモリ415に含まれる命令を実行するために使用される可能性がある。配線による回路が、本明細書において説明されるシステムおよび方法と一緒にソフトウェア命令の代わりにまたはソフトウェア命令と組み合わせて使用され得る。本明細書において説明されるシステムおよび方法は、ハードウェア回路とソフトウェアとのいかなる特定の組合せにも限定されない。
例示的なコンピューティングシステムが図4に示されたが、本明細書に記載の動作を含む対象は、本明細書において開示された構造およびそれらの構造的均等物を含む、その他の種類のデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはそれらのうちの1つもしくは複数の組合せで実装され得る。
本明細書に記載のシステムがユーザについての個人情報を収集するか、または個人情報を利用する可能性がある状況に関して、ユーザは、プログラムまたは機能が個人情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルなアクションもしくは活動、ユーザの好み、またはユーザの位置についての情報)を収集し得るかどうかを制御するか、あるいはユーザにより関連性がある可能性があるコンテンツをコンテンツサーバもしくはその他のデータ処理システムから受信すべきかどうかまたはどのようにして受信すべきかを制御する機会を与えられる可能性がある。さらに、特定のデータが、パラメータを生成するときに個人を特定することができる情報が削除されるように、記憶されるかまたは使用される前に1つまたは複数の方法で匿名化される可能性がある。たとえば、ユーザの識別情報が、個人を特定することができる情報がユーザに関して決定され得ないように匿名化される可能性があり、または(都市、郵便番号、もしくは州のレベルまでなど)位置情報が取得される場合に、ユーザの地理的位置が、ユーザの特定の位置が決定され得ないように一般化される可能性がある。したがって、ユーザは、情報がユーザについてどのように収集され、コンテンツサーバによって使用されるかを制御し得る。
本明細書に記載の対象および動作は、本明細書において開示された構造およびそれらの構造的均等物を含むデジタル電子回路、またはコンピュータソフトウェア、ファームウェア、もしくはハードウェア、またはこれらのうちの1つもしくは複数の組合せで実装され得る。本明細書に記載の対象は、1つまたは複数のコンピュータプログラム、たとえば、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために1つまたは複数のコンピュータストレージ媒体上に符号化されたコンピュータプログラム命令の1つまたは複数の回路として実装され得る。代替的にまたは追加的に、プログラム命令は、データ処理装置による実行のために好適なレシーバ装置に送信するために情報を符号化するように生成される人為的に生成された伝播信号、たとえば、機械によって生成された電気的信号、光学的信号、または電磁的信号上に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはこれらのうちの1つもしくは複数の組合せであるか、あるいはこれらに含まれる可能性がある。コンピュータストレージ媒体は、伝播信号ではないが、人為的に生成された伝播信号に符号化されたコンピュータプログラム命令の送信元または送信先である可能性がある。コンピュータストレージ媒体は、1つまたは複数の別個のコンポーネントまたは媒体(たとえば、複数のCD、ディスク、もしくはその他のストレージデバイス)であるか、またはそれらに含まれる可能性もある。本明細書に記載の動作は、1つもしくは複数のコンピュータ可読ストレージデバイスに記憶された、またはその他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実装され得る。
「データ処理システム」、「コンピューティングデバイス104」、「コンポーネント」、または「データ処理装置」という用語は、例として、1つのプログラミング可能なプロセッサ、1台のコンピュータ、1つのシステムオンチップ、またはそれらの複数もしくは組合せを含む、データを処理するための様々な装置、デバイス、および機械を包含する。装置は、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得る。装置は、ハードウェアに加えて、問題にしているコンピュータプログラムのための実行環境を作成するコード、たとえば、プロセッサのファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つもしくは複数の組合せを構成するコードも含み得る。装置および実行環境は、ウェブサービスインフラストラクチャ、分散コンピューティングインフラストラクチャ、およびグリッドコンピューティングインフラストラクチャなどの様々な異なるコンピューティングモデルインフラストラクチャを実現することができる。たとえば、ダイレクトアクションAPI 116、NLPコンポーネント112、およびその他のデータ処理システム102のコンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むかまたは共有し得る。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)は、コンパイラ型言語もしくはインタープリタ型言語、宣言型言語もしくは手続き型言語を含む任意の形態のプログラミング言語で記述可能であり、独立型プログラムとしての形態、またはモジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境での使用に好適なその他の単位としての形態を含む任意の形態で展開され得る。コンピュータプログラムは、ファイルシステム内のファイルに対応し得る。コンピュータプログラムは、その他のプログラムもしくはデータを保持するファイルの一部(たとえば、マークアップ言語のドキュメントに記憶された1つもしくは複数のスクリプト)、問題にしているプログラムに専用の単一のファイル、または複数の連携されたファイル(たとえば、1つもしくは複数のモジュール、サブプログラム、もしくはコードの一部を記憶するファイル)に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または1つの場所に置かれるか、もしくは複数の場所に分散され、通信ネットワークによって相互に接続される複数のコンピュータ上で実行されるように展開され得る。
本明細書に記載のプロセスおよび論理フローは、入力データに対して演算を行い、出力を生成することによってアクションを行うために1つまたは複数のコンピュータプログラム(たとえば、データ処理システム102のコンポーネント)を1つまたは複数のプログラミング可能なプロセッサが実行することによって実行され得る。また、プロセスおよび論理フローは、専用の論理回路、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって実行される可能性があり、さらに、装置は、それらの専用の論理回路として実装される可能性がある。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、例として、半導体メモリデバイス、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイス、磁気ディスク、たとえば、内蔵ハードディスクまたはリムーバブルディスク、光磁気ディスク、ならびにCD-ROMディスクおよびDVD-ROMディスクを含む、すべての形態の不揮発性メモリ、媒体、およびメモリデバイスを含む。プロセッサおよびメモリは、専用の論理回路によって補完されるか、または専用の論理回路に組み込まれ得る。
本明細書に記載の対象は、バックエンドコンポーネントを、たとえば、データサーバとして含むか、またはミドルウェアコンポーネント、たとえば、アプリケーションサーバを含むか、またはフロントエンドコンポーネント、たとえば、ユーザが本明細書に記載のコンピュータシステム100もしくはその他の要素とインタラクションすることができるグラフィカルユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータを含むか、または1つもしくは複数のそのようなバックエンドコンポーネント、ミドルウェアコンポーネント、もしくはフロントエンドコンポーネントの組合せを含むコンピューティングシステムに実装され得る。システムのコンポーネントは、任意の形態または媒体のデジタルデータ通信、たとえば、通信ネットワークによって相互に接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
システム100などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、概して互いに離れており、通常は通信ネットワーク(たとえば、ネットワーク105)を通じてインタラクションする。クライアントとサーバとの関係は、それぞれのコンピュータ上で実行されており、互いにクライアント-サーバの関係にあるコンピュータプログラムによって生じる。サーバは、(たとえば、コンピューティングデバイス104とインタラクションするユーザに対してデータを表示し、ユーザからユーザ入力を受け取ることを目的として)コンピューティングデバイス104にデータ(たとえば、コンテンツアイテムを表現するデータパケット)を送信することができる。コンピューティングデバイス104において生成されたデータ(たとえば、ユーザインタラクションの結果)は、サーバにおいてコンピューティングデバイス104から受信され得る(たとえば、コンピューティングデバイス104またはコンテンツプロバイダ106からデータ処理システム102によって受信され得る)。
動作が特定の順序で図面に示されているが、そのような動作は、示された特定の順序でまたは逐次的順序で実行される必要があるわけではなく、すべての示された動作が、実行される必要があるわけではない。本明細書に記載のアクションは、異なる順序で実行され得る。
様々なシステムコンポーネントの分割は、すべての実装において分割を必要とするわけではなく、説明されたプログラムコンポーネントは、単一のハードウェアまたはソフトウェア製品に含まれる可能性がある。たとえば、NLPコンポーネント112は、単一のコンポーネント、アプリ、もしくはプログラム、または1つもしくは複数の処理回路を有する論理デバイス、またはデータ処理システム102の1つもしくは複数のサーバの一部である可能性がある。
ここにいくつかの例示的な実装を説明したが、以上は例示的であり、限定的でなく、例として提示されたことは明らかである。特に、本明細書において提示された例の多くは方法の行為またはシステムの要素の特定の組合せを含むが、それらの行為およびそれらの要素は、同じ目的を達成するためにその他の方法で組み合わされる可能性がある。1つの実装に関連して検討された行為、要素、および特徴は、その他の実装または実装の同様の役割から除外されるように意図されていない。
本明細書において使用された語法および術語は、説明を目的としており、限定と見なされるべきでない。本明細書における「~を含む(including)」、「~を含む(comprising)」、「~を有する」、「~を含む(containing)」、「~を含む(involving)」、「~によって特徴付けられる(characterized by)」、「~ことを特徴とする(characterized in that)」、およびこれらの変化形の使用は、その後に列挙された項目、それらの項目の均等物、および追加的な項目、ならびにその後に列挙された項目だけからなる代替的な実装を包含するように意図される。1つの実装において、本明細書に記載のシステムおよび方法は、説明された要素、行為、またはコンポーネントのうちの1つ、2つ以上のそれぞれの組合せ、またはすべてからなる。
本明細書において単数形で言及されたシステムおよび方法の実装または要素または行為へのすべての言及は、複数のこれらの要素を含む実装も包含する可能性があり、本明細書における任意の実装または要素または行為への複数形のすべての言及は、単一の要素のみを含む実装も包含する可能性がある。単数形または複数形の言及は、ここに開示されたシステムもしくは方法、それらのコンポーネント、行為、または要素を単一のまたは複数の構成に限定するように意図されていない。任意の情報、行為、または要素に基づいている任意の行為または要素への言及は、行為または要素が任意の情報、行為、または要素に少なくとも部分的に基づく実装を含み得る。
本明細書において開示された任意の実装は、任意のその他の実装または実施形態と組み合わされる可能性があり、「実装」、「いくつかの実装」、「1つの実装」などの言及は、必ずしも相互排他的ではなく、実装に関連して説明された特定の特徴、構造、または特色が少なくとも1つの実装または実施形態に含まれる可能性があることを示すように意図される。本明細書において使用されるそのような用語は、必ずしもすべてが同じ実装に言及していない。任意の実装は、本明細書において開示された態様および実装に合致する任意の方法で包括的または排他的に任意のその他の実装と組み合わされる可能性がある。
「または(or)」との言及は、「または(or)」を使用して記載された任意の項が、記載された項のうちの1つ、2つ以上、およびすべてのいずれかを示す可能性があるように包括的であると見なされ得る。たとえば、「『A』および『B』のうちの少なくとも一方」との言及は、「A」のみ、「B」のみ、および「A」と「B」との両方を含み得る。「~を含む」またはその他の非限定的用語(open terminology)と関連して使用されるそのような言及は、追加的な項を含み得る。
図面、詳細な説明、または任意の請求項の技術的な特徴が後に参照符号を付されている場合、参照符号は、図面、詳細な説明、および請求項を理解しやすくするために含められたものである。したがって、参照符号があることもないことも、いかなる請求項の要素の範囲に対してのいかなる限定的な効果も持たない。
本明細書に記載のシステムおよび方法は、それらの特徴を逸脱することなくその他の特定の形態で具現化される可能性がある。上述の実装は、説明されたシステムおよび方法の限定ではなく、例示的である。したがって、本明細書に記載のシステムおよび方法の範囲は、上述の説明ではなく添付の請求項によって示され、請求項の均等の意味および範囲内に入る変更は、それに包含される。
[付記項1]
音声作動型のデータパケットに基づくコンピュータネットワーク環境内のデジタルコンポーネントを取り出すシステムであって、
コンピューティングデバイスのセンサによって検出された入力オーディオ信号を含むデータパケットをデータ処理システムのインターフェースを介して受信するために前記データ処理システムによって実行される自然言語プロセッサコンポーネントと、
要求、コンテンツプロバイダ、および前記要求に対応するトリガキーワードを特定するために前記入力オーディオ信号をパースする前記自然言語プロセッサコンポーネントと、
前記要求および前記コンテンツプロバイダに応じたアクションデータ構造を前記トリガキーワードに基づいて生成するダイレクトアクションアプリケーションプログラミングインターフェースと、
ナビゲーションコンポーネントであって、
前記コンテンツプロバイダとのセッションを確立し、前記コンテンツプロバイダから前記セッションを介して受信されたデジタルコンポーネントをレンダリングし、
前記コンテンツプロバイダに関連するインタラクションモデルを選択し、
前記インタラクションモデルおよび前記アクションデータ構造に基づいてデータ配列を生成する、ナビゲーションコンポーネントと、
前記データ処理システムの前記インターフェースを介して前記コンテンツプロバイダに前記データ配列を送信する前記データ処理システムとを含む、
システム。
[付記項2]
メモリに記憶されたデータベースから前記トリガキーワードおよび前記コンテンツプロバイダに基づいてテンプレートを選択し、
前記テンプレートに基づいて前記アクションデータ構造を生成する前記データ処理システムを含む、
付記項1に記載のシステム。
[付記項3]
前記インターフェースを介して確立された前記データ処理システムと前記コンピューティングデバイスとの間の通信セッションにおいて、前記コンピューティングデバイスの前記センサによって検出された第2の入力オーディオ信号を含むデータパケットを受信する会話アプリケーションプログラミングインターフェースと、
応答を特定するために前記第2の入力オーディオ信号をパースする前記自然言語プロセッサコンポーネントと、
前記インタラクションモデルおよび前記応答に基づいて第2のデータ配列を生成する前記ナビゲーションコンポーネントとを含む、
付記項1に記載のシステム。
[付記項4]
レンダリングされたデジタルコンポーネントの入力要素に前記データ配列を与えるように構成された前記データ処理システムを含む、
付記項1に記載のシステム。
[付記項5]
前記コンテンツプロバイダとの以前のセッションの数を判定し、
前記コンテンツプロバイダとの以前のセッションの前記数に基づいて前記インタラクションモデルを選択する前記データ処理システムを含む、
付記項1に記載のシステム。
[付記項6]
以前のセッションの前記数が所定の閾値未満であることに応じて包括的インタラクションモデルを選択する前記データ処理システムを含む、
付記項5に記載のシステム。
[付記項7]
前記ナビゲーションコンポーネントが、グラフィカルユーザインターフェースなしに前記デジタルコンポーネントをレンダリングするヘッドレスレンダリングコンポーネントを含む、
付記項1に記載のシステム。
[付記項8]
レンダリングされたデジタルコンポーネント内の画像の特徴を特定する前記データ処理システムを含む、
付記項1に記載のシステム。
[付記項9]
前記コンテンツプロバイダとの以前のセッションに基づいて前記インタラクションモデルを生成する前記ナビゲーションコンポーネントを含む、
付記項1に記載のシステム。
[付記項10]
前記データ処理システムと前記コンピューティングデバイスとの間の通信セッションを確立し、
出力オーディオ信号を含むデータパケットを前記コンピューティングデバイスに前記インターフェースを介して送信する会話アプリケーションプログラミングインターフェースを含む、
付記項1に記載のシステム。
[付記項11]
前記デジタルコンポーネントがウェブページである、
付記項1に記載のシステム。
[付記項12]
音声作動型のデータパケットに基づくコンピュータネットワーク環境内のデジタルコンポーネントを取り出す方法であって、
コンピューティングデバイスのセンサによって検出された入力オーディオ信号を含むデータパケットを、データ処理システムによって実行される自然言語プロセッサコンポーネントによって、前記データ処理システムのインターフェースを介して受信するステップと、
要求、コンテンツプロバイダ、および前記要求に対応するトリガキーワードを特定するために前記入力オーディオ信号を前記自然言語プロセッサコンポーネントによってパースするステップと、
前記要求および前記コンテンツプロバイダに応じたアクションデータ構造を前記トリガキーワードに基づいてダイレクトアクションアプリケーションプログラミングインターフェースによって生成するステップと、
前記コンテンツプロバイダとのセッションをナビゲーションコンポーネントによって確立するステップと、
前記コンテンツプロバイダから前記セッションを介して受信されたデジタルコンポーネントを前記ナビゲーションコンポーネントによってレンダリングするステップと、
前記コンテンツプロバイダに関連するインタラクションモデルを前記ナビゲーションコンポーネントによって選択するステップと、
前記インタラクションモデルおよび前記アクションデータ構造に基づいてデータ配列を前記ナビゲーションコンポーネントによって生成するステップと、
前記データ処理システムによって、前記データ処理システムの前記インターフェースを介して、前記コンテンツプロバイダに前記データ配列を送信するステップとを含む、
方法。
[付記項13]
メモリに記憶されたデータベースから前記トリガキーワードおよび前記コンテンツプロバイダに基づいてテンプレートを選択するステップと、
前記テンプレートに基づいて前記アクションデータ構造を生成するステップとを含む、
付記項12に記載の方法。
[付記項14]
会話アプリケーションプログラミングインターフェースによって、前記データ処理システムと前記コンピューティングデバイスとの間の通信セッションを介して、前記コンピューティングデバイスの前記センサによって検出された第2の入力オーディオ信号を含むデータパケットを受信するステップと、
応答を特定するために前記第2の入力オーディオ信号を前記自然言語プロセッサコンポーネントによってパースするステップと、
前記インタラクションモデルおよび前記応答に基づいて第2のデータ配列を前記ナビゲーションコンポーネントによって生成するステップとを含む、
付記項12に記載の方法。
[付記項15]
前記デジタルコンポーネントの入力要素に前記データ配列を与えるステップを含む、
付記項12に記載の方法。
[付記項16]
前記コンテンツプロバイダとの以前のセッションの数を判定するステップと、
前記コンテンツプロバイダとの以前のセッションの前記数に基づいて前記インタラクションモデルを選択するステップとを含む、
付記項12に記載の方法。
[付記項17]
以前のセッションの前記数が所定の閾値未満であることに応じて包括的インタラクションモデルを選択するステップを含む、
付記項16に記載の方法。
[付記項18]
グラフィカルユーザインターフェースなしに前記デジタルコンポーネントをレンダリングするステップを含む、
付記項12に記載の方法。
[付記項19]
前記デジタルコンポーネント内の画像の特徴を特定するステップを含む、
付記項12に記載の方法。
[付記項20]
前記コンテンツプロバイダとの以前のセッションに基づいて前記インタラクションモデルを生成するステップを含む、
付記項12に記載の方法。