以下は、デジタルアシスタントアプリケーションを介して補足オーディオコンテンツをプライマリオーディオコンテンツに挿入するための方法、装置、およびシステムに関する、およびそれらの実装形態に関する様々な概念のより詳細な説明である。上記で紹介され、以下でより詳細に説明される様々な概念は、多数の方法のいずれかで実装され得る。
オーディオファイルは、クライアントデバイスのラウドスピーカを介して提示されるオーディオコンテンツを含むことができる。オーディオファイルのオーディオコンテンツを生成するために、コンテンツパブリッシャは、1つまたは複数のマイクを使用して、自然(たとえば、人間の音声、動物、または天気)または人工(たとえば、楽器、シンセサイザ、または別の機械)などの様々な音源をレコーディングすることができる。たとえば、ポッドキャストレコーディングを作成するために、トランスクリプトを継続的に読んでいる人間のアナウンサの発話を、マイクを介してレコーディングすることができる。レコーディング中に、オーディオファイルのオーディオコンテンツの音のデジタル表現(たとえば、バイナリコード)を形成するために、マイクを介して取得された音をサンプリング、量子化、および符号化することができる。情報リソース(たとえば、ウェブページ)で利用可能になると、クライアントデバイスは情報リソースからオーディオファイルをダウンロードし、後でメディアプレーヤを使用してオーディオファイルを再生することができる。
しかしながら、オーディオファイルが生成された後は、ファイルにすでに含まれているオーディオコンテンツを妨害または分割せずに、コンテンツプロバイダなどの別のエンティティによって供給される補足オーディオコンテンツを追加することが難しい場合がある。これは、ほぼリアルタイムで提供されるストリーミングコンテンツとは異なり、そのようなコンテンツの挿入のためにすぐに中断される可能性があるという点で、特に問題になる可能性があり、オーディオファイルは、ダウンロードの後しばらくしてオフラインで再生することができる。補足オーディオコンテンツを挿入する1つの手法は、補足オーディオコンテンツをコンテンツパブリッシャのプライマリオーディオコンテンツとともに手動でレコーディングすることを含むことができる。前のポッドキャストの例から続けると、レコーディングされるべき人間のアナウンサによって声に出して読まれるトランスクリプト自体は、プライマリオーディオコンテンツのための部分の間に補足オーディオコンテンツのための部分を含み得る。しかし、この手法はしばしば、オーディオファイルのリスナが、同じ補足オーディオコンテンツを何の関連性もなく頻繁に聞く必要が生じる可能性がある。さらに、このタイプの手法は、とりわけ、コンテンツの再生に使用されるオーディオ機器の忠実度、リスナの現在のオーディオ環境、および一般的なネットワーク条件などの、動的に変化するまたは状況依存の技術的環境にコンテンツを調整できない場合がある。
一般的な環境への補足オーディオコンテンツの適応の欠如は、挿入する補足オーディオコンテンツを識別する際に、要求元のクライアントデバイスまたはプライマリオーディオコンテンツを説明するコンテンツ選択プロセスがないために発生する。コンテンツプロバイダの観点から見ると、そのようなプロセスがなければ、コンテンツプロバイダが、どのオーディオファイルまたはコンテンツパブリッシャが補足オーディオコンテンツを提供するかを評価または識別することは難しい場合がある。その結果、関連する補足のオーディオコンテンツがない場合、クライアントデバイスは、関連する可能性のあるコンテンツの追加要求の生成および送信から、より多くのコンピューティングリソースとネットワーク帯域幅を消費し、ならびに技術的に最適とは言えない出力を最初に提供する可能性がある。これは、ユーザとオーディオファイルを再生しているクライアントデバイスとの間のヒューマンコンピュータインタラクション(HCI)の低下につながる可能性もある。
これらの技術的な課題は、デジタルアシスタントアプリケーションのコンテキストにおいて悪化する可能性がある。デジタルアシスタントアプリケーションは、特定のコンテンツプロバイダからのオーディオコンテンツの要求を識別するために、クライアントデバイスのマイクを介して取得した入力音声コマンドを解析することができる。たとえば、デジタルアシスタントアプリケーションによって解析された入力音声コマンドは、「「ニュースソースA」からポッドキャストをダウンロードする」であり得る。デジタルアシスタントアプリケーションに提供されるコンテンツプロバイダのオーディオファイルは、オーディオファイルに挿入され、コンテンツ選択プロセスなしで選択された補足オーディオコンテンツを含むことができる。デジタルアシスタントアプリケーションでは、計算が複雑な自然言語処理アルゴリズムを使用しているため、コンテンツに対する追加の要求を生成すると、かなり多くのコンピューティングリソースとネットワーク帯域幅を消費する可能性がある。
オーディオファイル内のプライマリオーディオコンテンツに補足オーディオコンテンツを挿入する際のこれらおよび他の課題に対処するために、本システムおよび方法は、要求時に補足オーディオコンテンツを動的に選択して挿入することができる。オーディオファイルは、プライマリオーディオコンテンツ内で補足オーディオコンテンツを挿入して再生するタイムスパンを定義することができるコンテンツプロバイダによって指定されたコンテンツスポットを有することができる。音声コマンドが特定のコンテンツプロバイダからのオーディオファイルの要求であることを識別すると、デジタルアシスタントアプリケーションはコンテンツ選択サービスを呼び出すことができる。コンテンツ配置サービスは、補足オーディオコンテンツから選択してコンテンツスポットに挿入するために使用されるコンテンツ選択パラメータを識別することができる。コンテンツ選択パラメータは、とりわけ、デバイス識別子、クッキー識別子、アカウント識別子、またはアカウントプロファイルなどの識別子を含むことができる。コンテンツ配置サービスは、パラメータを使用して、ファイル内のオーディオコンテンツのコンテンツスポットについて、様々なコンテンツプロバイダからのコンテンツのセットから補足オーディオコンテンツを識別することができる。識別されると、デジタルアシスタントアプリケーションは、補足オーディオコンテンツをオーディオコンテンツ内のコンテンツスポットに挿入することができる。デジタルアシスタントアプリケーションは、補足のオーディオコンテンツを含むオーディオファイルを提供し、提示のためにクライアントデバイスに返すことができる。
コンテンツ選択パラメータを組み込むことで、補足オーディオコンテンツの選択および識別を強化し、オーディオファイル内のオーディオコンテンツのコンテンツスポットに挿入するために、追加のパラメータが使用され得る。たとえば、デジタルアシスタントアプリケーションは、識別子を使用して、オーディオファイルの提供後にクライアントデバイスにおいて事前定義されたインタラクション(たとえば、コンテンツプロバイダに対する音声コマンドクエリ)のうちの1つが発生するかどうかを監視することができる。事前定義されたインタラクションが検出されるクライアントデバイスの数に基づいて、コンテンツ選択サービスは、オーディオファイルのオーディオコンテンツ内のコンテンツスポットのコンテンツスポットパラメータを決定することができる。コンテンツスポットパラメータの値は、補足オーディオコンテンツを含むオーディオファイルの提示に続いて、事前定義されたインタラクションのうちの1つが発生する可能性に比例することができる。コンテンツ選択サービスは、コンテンツ選択パラメータに加えて、ファイルのオーディオコンテンツに挿入する補足オーディオコンテンツを識別するために、コンテンツスポットパラメータを使用することができる。
要求の識別時にコンテンツを選択するために様々なパラメータが使用されるため、コンテンツスポットに挿入された補足オーディオコンテンツは、一般的な条件により技術的に適してもよく、クライアントデバイスを介してオーディオコンテンツを聞くユーザとの関連性が高くてもよい。適合性および/または関連性の増加により、クライアントデバイスを介する後続の関連するインタラクションの可能性が増加し得、それによって、ユーザとクライアントデバイスとの間のヒューマンコンピューターインタラクション(HCI)を向上させる。さらに、後続の音声コマンドがコンテンツの追加要求のためにデジタルアシスタントアプリケーションによって受信される機会を減らすことができ、それによって、コンピューティングリソースとネットワーク帯域幅の消費を削減することができる。
図1は、とりわけ、デジタルアシスタントアプリケーションを介して補足オーディオコンテンツをプライマリオーディオコンテンツに挿入するための例示的なシステム100のブロック図を示している。システム100は、少なくとも1つのデータ処理システム102を含むことができる。データ処理システム102は、少なくとも1つのプロセッサおよびメモリ、すなわち処理回路を含むことができる。メモリは、プロセッサによって実行されると、プロセッサに、本明細書で説明されている動作のうちの1つまたは複数を実行させるプロセッサ実行可能命令を記憶する。プロセッサは、マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、またはそれらの組合せを含み得る。メモリは、電子的、光学的、磁気的、またはプロセッサにプログラム命令を提供することができる任意の他のストレージまたは送信デバイスを含み得るが、これらに限定されない。メモリは、フロッピーディスク、CD-ROM、DVD、磁気ディスク、メモリチップ、ASIC、FPGA、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブルROM(EEPROM)、消去可能プログラマブルROM(EPROM)、フラッシュメモリ、光メディア、またはプロセッサが命令を読み取ることができる任意の他の適切なメモリをさらに含み得る。命令は、任意の適切なコンピュータプログラミング言語からのコードを含み得る。データ処理システム102は、様々な機能を実行することができる1つまたは複数のコンピューティングデバイスあるいはサーバを含むことができる。
データ処理システム102は、複数の論理的にグループ化されたサーバを含み、分散コンピューティング技法を容易にすることができる。サーバの論理グループは、データセンタ、サーバファーム、またはマシンファームと呼ばれ得る。サーバは地理的に分散させることができる。データセンタまたはマシンファームは単一のエンティティとして管理されてもよく、マシンファームは複数のマシンファームを含むことができる。各マシンファーム内のサーバは異機種混在にすることができ、サーバまたはマシンのうちの1つまたは複数は、1つまたは複数のタイプのオペレーティングシステムプラットフォームに従って動作することができる。データ処理システム102はそれぞれ、たとえば企業のデータセンタに配置された関連付けられるストレージシステムとともに、1つまたは複数の高密度ラックシステムに記憶されるデータセンタ内のサーバを含むことができる。このようにして、統合サーバを備えたデータ処理システム102は、サーバおよび高性能ストレージシステムをローカライズされた高性能ネットワークに配置することによって、システムの管理性、データセキュリティ、システムの物理的セキュリティ、およびシステムパフォーマンスを向上させることができる。サーバおよびストレージシステムを含むデータ処理システム102のコンポーネントのすべてまたは一部を一元化し、それらを高度なシステム管理ツールと結合することで、サーバリソースをより効率的に使用できるようになり、電力と処理の要件が節約され、帯域幅の使用量が削減される。データ処理システム102コンポーネントの各々は、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、アプライアンス、または、システム100の他のコンピューティングデバイスと通信するように構成されたプログラマブル論理アレイなどの他の論理デバイスを含むことができる。
システム100は、少なくとも1つのクライアントデバイス104を含むことができる。クライアントデバイス104は、システム100の他のコンポーネントと通信するためのプロセッサを有するコンピューティングデバイスなどの少なくとも1つの論理デバイスを含むことができる。クライアントデバイス104は、データ処理システム102に関連して説明されたコンポーネントのうちのいずれかのインスタンスを含むことができる。クライアントデバイス104は、デスクトップコンピュータ、ラップトップ、タブレットコンピュータ、携帯情報端末、スマートフォン、モバイルデバイス、ポータブルコンピュータ、シンクライアントコンピュータ、仮想サーバ、スピーカーベースのデジタルアシスタント、または他のコンピューティングデバイスを含むことができる。
システム100は、少なくとも1つのコンテンツパブリッシャ106を含むことができる。コンテンツパブリッシャ106は、プライマリオーディオコンテンツを提供するためにコンテンツ発行エンティティによって動作されるサーバまたは他のコンピューティングデバイスを含むことができる。たとえば、コンテンツパブリッシャ106は、プライマリオーディオコンテンツをレコーディングするオーディオレコーディングエンティティに関連付けることができる。プライマリオーディオコンテンツは、オーディオキャスト(本明細書では、ポッドキャストまたはオーディオポッドキャストと呼ばれることもある)のレコーディングであり得る。プライマリオーディオコンテンツは、コンテンツ発行エンティティ以外の他のエンティティからの他のオーディオコンテンツを挿入するために、オーディオレコーディングエンティティによって定義された1つまたは複数の区切りを含むことができる。区切りは、他のコンテンツを挿入できるレコーディング内の(たとえば、沈黙の、または他の音の)期間に対応することができる。レコーディングされると、コンテンツパブリッシャ106は、1つまたは複数のオーディオファイルをパッケージ化および生成し、ファイルを情報リソース(たとえば、ウェブページ)、ウェブアプリケーション、または別のプログラムを介してダウンロードできるようにすることができる。オーディオファイルは、とりわけ、WAV、MPEG、MP3、RIFF、AAC、OGG、およびWMAなどの任意の形式にすることができる。
システム100は、少なくとも1つのコンテンツプロバイダ108を含むことができる。コンテンツプロバイダ108は、補足オーディオコンテンツを提供するためにコンテンツプロバイダエンティティによって動作されるサーバまたは他のコンピューティングデバイスを含むことができる。たとえば、コンテンツプロバイダ108は、補足のオーディオコンテンツ(本明細書ではサードパーティのオーディオコンテンツと呼ばれることもある)をレコーディングする別のオーディオレコーディングエンティティに関連付けることができる。補足オーディオコンテンツは、コンテンツパブリッシャ106によって作成されたプライマリオーディオコンテンツに含まれるか、それに挿入することができる。たとえば、コンテンツパブリッシャ106に関連付けられるオーディオレコーディングエンティティによって定義された区切りにおいてコンテンツプロバイダ108によってレコーディングされた補足オーディオコンテンツである。レコーディングされると、コンテンツプロバイダ108は、1つまたは複数のオーディオファイルをパッケージ化および生成し、ファイルを情報リソース(たとえば、ウェブページ)、ウェブアプリケーション、または別のプログラムを介して、プライマリオーディオコンテンツと併せて、提示できるようにすることができる。オーディオファイルは、とりわけ、WAV、MPEG、MP3、RIFF、AAC、OGG、およびWMAなどの任意の形式にすることができる。
システム100は、少なくとも1つのネットワーク112を含むことができる。データ処理システム102、クライアントデバイス104、コンテンツパブリッシャ106、およびコンテンツプロバイダ108などのシステム100のコンポーネントは、ネットワーク112を介して通信することができる。ネットワーク112は、たとえば、ポイントツーポイントネットワーク、放送ネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、電気通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(非同期転送モード)ネットワーク、SONET(同期光ネットワーク)ネットワーク、SDH(同期デジタル階層)ネットワーク、NFC(近距離無線通信)ネットワーク、ワイヤレスネットワークまたはワイヤラインネットワーク、およびそれらの組合せを含むことができる。ネットワーク112は、赤外線チャネルまたは衛星帯域などのワイヤレスリンクを含むことができる。ネットワーク112のトポロジは、バス、スター、またはリングネットワークトポロジを含み得る。ネットワーク112は、高度なモバイル電話プロトコル(AMPS)、時分割多元接続(TDMA)、符号分割多元接続(CDMA)、グローバルシステムフォーモバイルコミュニケーションズ(GSM)、汎用パケット無線サービス(GPRS)、またはユニバーサルモバイルテレコミュニケーションシステム(UMTS)を含む、モバイルデバイス間の通信に使用されるプロトコルを使用するモバイル電話ネットワークを含むことができる。異なるタイプのデータが異なるプロトコルを介して送信されてもよく、または同じタイプのデータが異なるプロトコルを介して送信されてもよい。
データ処理システム102は、デジタルアシスタントアプリケーション110の少なくとも1つのインスタンスを含むことができる。デジタルアシスタントアプリケーション110は、オーディオベースの入力を解析するために少なくとも1つの自然言語プロセッサ(NLP)コンポーネント116を含むことができる。デジタルアシスタントアプリケーション110は、オーディオベースの信号を生成するための少なくとも1つのオーディオ信号ジェネレータコンポーネント118を含むことができる。デジタルアシスタントアプリケーション110は、アクションデータ構造を生成するための少なくとも1つのダイレクトアクションハンドラコンポーネント120を含むことができる。デジタルアシスタントアプリケーション110は、オーディオベースの入力信号に対する応答を選択するための少なくとも1つの応答セレクタコンポーネント122を含むことができる。デジタルアシスタントアプリケーションは、デジタルアシスタントアプリケーション110のデータを維持管理するために少なくとも1つのデータリポジトリ124を含むことができる。NLPコンポーネント116、オーディオ信号ジェネレータコンポーネント118、ダイレクトアクションハンドラコンポーネント120、応答セレクタコンポーネント122、およびデータリポジトリ124のうちの1つまたは複数は、データ処理システム102上のデジタルアシスタントアプリケーション110のインスタンスから、または相互から、分離することができる。
データリポジトリ124は、1つまたは複数のローカルまたは分散データベースを含むことができ、またデータベース管理システムを含むことができる。データリポジトリ124は、コンピュータデータストレージまたはメモリを含むことができ、他のデータの中でも、1つまたは複数の正規表現126、1つまたは複数のパラメータ128、1つまたは複数のポリシ130、応答データ132、テンプレート134、および少なくとも1つの識別子136を記憶することができる。パラメータ128、ポリシ130、およびテンプレート134は、クライアントデバイス104とデータ処理システム102との間の音声ベースのセッションに関するルールなどの情報を含むことができる。正規表現126は、デジタルアシスタントアプリケーション110を介してクライアントデバイス104とデータ処理システム102との間で音声ベースのセッションを実施することに関するルールを含むことができる。正規表現126、パラメータ128、ポリシ130、およびテンプレート134はまた、別のソース(たとえば、データ処理システム102およびクライアントデバイス104)から受信した別のデジタルアシスタントアプリケーション110の情報を含むことができる。応答データ132は、オーディオ出力または関連付けられるメタデータのコンテンツアイテム、ならびにクライアントデバイス104との1つまたは複数の通信セッションの一部であり得る入力オーディオメッセージを含むことができる。識別子136は、クライアントデバイス104に関する情報(たとえば、デジタルアシスタントアプリケーション110にアクセスして実行するための認証資格証明)を含むことができる。
データ処理システム102は、コンテンツパブリッシャ106およびコンテンツプロバイダ108からオーディオコンテンツを受信および維持管理するために、少なくとも1つのレコードインデクサコンポーネント138を含むことができる。データ処理システム102は、コンテンツパブリッシャ106のプライマリオーディオコンテンツに挿入するために、コンテンツプロバイダ108から補足オーディオコンテンツを選択するために少なくとも1つのコンテンツ配置コンポーネント140を含むことができる。データ処理システム102は、オーディオコンテンツの提供に関連してインタラクションを監視するために、少なくとも1つのコンバージョン検出コンポーネント142を含むことができる。データ処理システム102はまた、とりわけ、レコードインデクサコンポーネント138、コンテンツ配置コンポーネント140、またはコンバージョン検出コンポーネント142のデータを維持管理するために、少なくとも1つのデータリポジトリ144を含むことができる。レコードインデクサコンポーネント138、コンテンツ配置コンポーネント140、コンバージョン検出コンポーネント142、およびデータリポジトリ144のうちの1つまたは複数は、(たとえば、示されるように)データ処理システム102上のデジタルアシスタントアプリケーション110のインスタンスから分離することができる。レコードインデクサコンポーネント138、コンテンツ配置コンポーネント140、コンバージョン検出コンポーネント142、およびデータリポジトリ144のうちの1つまたは複数は、データ処理システム102上のデジタルアシスタントアプリケーション110のインスタンスの一部であり得る。
データ処理システム102は、少なくとも1つのインターフェース114を含むことができる。インターフェース114は、たとえば、データパケットを使用して情報を送受信するように構成、構築、または動作することができる。インターフェース114は、ネットワークプロトコルなどの1つまたは複数のプロトコルを使用して情報を送受信することができる。インターフェース114は、ハードウェアインターフェース、ソフトウェアインターフェース、ワイヤードインターフェース、またはワイヤレスインターフェースを含むことができる。インターフェース114は、システム100のコンポーネントが互いに通信することを可能にするデータインターフェースまたはネットワークインターフェースであり得る。データ処理システム102のインターフェース114は、ネットワーク112を介して、アクションデータ構造、オーディオ信号、または他のデータを含む1つまたは複数のデータパケットを提供または送信することができる。たとえば、データ処理システム102は、データリポジトリ124からの、またはオーディオ信号ジェネレータコンポーネント118からの出力信号をクライアントデバイス104に提供することができる。
データ処理システム102はまた、データパケット送信を介して、クライアントデバイス104に、アクションデータ構造に示される機能を実行するように命令することができる。出力信号は、データ処理システム102(または、他のコンピューティングデバイス)からクライアントデバイス104に、1つまたは複数のデータパケット(または、他の通信プロトコル)として取得、生成、変換、または送信することができる。インターフェース114は、あるフォーマットから別のフォーマットへのデータの変換またはフォーマットを容易にすることができる。たとえば、インターフェース114は、ソフトウェアコンポーネントなどの様々なコンポーネント間で通信するための定義を含むアプリケーションプログラミングインターフェース(「API」)を含むことができる。データ処理システム102に関連付けられるアプリケーション、スクリプト、プログラム、または他のコンポーネントは、クライアントデバイス104にインストールすることができる。アプリケーションは、クライアントデバイス104が入力オーディオ信号(および、他のデータ)をデータ処理システム102のインターフェース114に通信することを可能にすることができる。
データ処理システム102は、入力オーディオ信号をデータ処理システム102のインターフェース114に通信するために、およびクライアントコンピューティングデバイスのコンポーネントを駆動して、出力オーディオ信号または視覚出力をレンダリングするために、クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスなどの、クライアントデバイス104にインストールされたアプリケーション、スクリプト、またはプログラムを含むことができる。データ処理システム102は、データパケット、デジタルファイル、または入力オーディオ信号(または、複数の入力オーディオ信号)を含むか識別する他の信号を受信することができる。クライアントデバイス104は、スピーカ152を介してオーディオ信号を検出し、アナログデジタル変換器を介してアナログオーディオ信号をデジタルファイルに変換することができる。たとえば、オーディオドライバは、アナログデジタル変換器コンポーネントを含むことができる。プリプロセッサコンポーネントは、オーディオ信号を、ネットワーク112を介してデータパケットを介して送信することができるデジタルファイルに変換することができる。
クライアントデバイス104は、少なくともデジタルアシスタントアプリケーション110のインスタンスを含むことができる。デジタルアシスタントアプリケーション110などのデータ処理システム102の機能は、クライアントデバイス104から(たとえば、インターフェース114を介して)含まれるか、そうでなければアクセス可能であり得る。データ処理システム102の機能は、クライアントデバイス104上で実行されているデジタルアシスタントアプリケーション110との機能またはインターフェースに対応し得る。クライアントデバイス104はそれぞれ、デジタルアシスタントアプリケーション110の1つまたは複数のコンポーネントの別個のインスタンスを含み、実行することができる。そうでなければ、クライアントデバイス104は、ネットワーク112を介してデータ処理システム102上のデジタルアシスタントアプリケーション110のコンポーネントの機能にアクセスすることができる。たとえば、クライアントデバイス104は、NLPコンポーネント116の機能を含み、ネットワーク112を介してデータ処理システム102へのデジタルアシスタントアプリケーション110の残りのコンポーネントにアクセスすることができる。
クライアントデバイス104は、(マイク154またはスピーカ152を介して)オーディオ入力として音声クエリをクライアントデバイス104に入力し、クライアントデバイス104のエンドユーザに提示、表示、またはレンダリングするためにデータ処理システム102からオーディオ(または、他の)出力を受信するエンドユーザに関連付けることができる。デジタルコンポーネントは、データ処理システム102からクライアントデバイス104に提供できるコンピュータで生成された音声を含むことができる。クライアントデバイス104は、コンピュータで生成された音声を、スピーカ152を介してエンドユーザにレンダリングすることができる。コンピュータで生成された音声は、実際の人またはコンピュータで生成された言語のレコーディングを含むことができる。クライアントデバイス104は、クライアントデバイス104に通信可能に結合されたディスプレイデバイスを介して視覚出力を提供することができる。
クライアントデバイス104は、少なくとも1つのスピーカ152および少なくとも1つのマイク154を含むか、インターフェースするか、またはそれと通信することができる。クライアントデバイス104は、スピーカ152およびマイク154とのソフトウェアインターフェースを提供するためにオーディオドライバを含むことができる。オーディオドライバは、スピーカ152を制御し、対応する音響波または音波を生成するために、データ処理システム102によって提供される命令を実行することができる。オーディオドライバは、マイク154から取得された音響波または音波を変換して、オーディオデータを生成するために、オーディオファイルまたは他の命令を実行することができる。たとえば、オーディオドライバは、音響波または音波をオーディオデータに変換するために、アナログデジタル変換器(ADC)を実行することができる。
デジタルアシスタントアプリケーション110の機能は、データ処理システム102およびクライアントデバイス104上のインスタンスによって割り振るか、実行することができる。たとえば、クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、キーワードを検出し、キーワードに基づいてアクションを実行することができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110は、データ処理システム102において実行されるデジタルアシスタントアプリケーション110のインスタンスであってもよく、デジタルアシスタントアプリケーション110の機能のいずれかを実行することもができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、さらなる処理のために、データ処理システム102(たとえば、データ処理システム102上のデジタルアシスタントアプリケーション110のインスタンス)にデータとして用語を送信する前に、1つまたは複数の用語を除外するか、または用語を修正することができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、スピーカ152によって検出されたアナログオーディオ信号をデジタルオーディオ信号に変換し、デジタルオーディオ信号を搬送する1つまたは複数のデータパケットを、ネットワーク112を介してデータ処理システム102に送信することができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、そのような送信を実行する命令を検出することに応答して、入力オーディオ信号の一部または全体を搬送するデータパケットを送信することができる。命令は、たとえば、入力オーディオ信号を備えるデータパケットをデータ処理システム102に送信するためのトリガキーワードまたは他のキーワード、あるいは承認を含むことができる。
クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、オーディオの特定の周波数を除去するために、入力オーディオ信号に対して事前フィルタリングまたは事前処理を実行することができる。事前フィルタリングは、ローパスフィルタ、ハイパスフィルタ、またはバンドパスフィルタなどのフィルタを含むことができる。フィルタを周波数領域において適用することができる。フィルタを、デジタル信号処理技法を使用して適用することができる。フィルタは、人間の音声または人間の発話に対応する周波数を維持管理しながら、人間の発話の一般的な周波数の外にある周波数を除去するように構成することができる。たとえば、バンドパスフィルタは、第1のしきい値(たとえば、70Hz、75Hz、80Hz、85Hz、90Hz、95Hz、100Hz、または105Hz)より低く、第2のしきい値(たとえば、200Hz、205Hz、210Hz、225Hz、235Hz、245Hz、255Hz、または3kHz)より高い周波数を除去するように構成することができる。バンドパスフィルタを適用すると、ダウンストリーム処理におけるコンピューティングリソースの利用を削減することができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、入力オーディオ信号をデータ処理システム102に送信する前にバンドパスフィルタを適用することができ、それによってネットワーク帯域幅の利用を削減する。場合によっては、クライアントデバイス104にとって利用可能なコンピューティングリソースおよび利用可能なネットワーク帯域幅に基づいて、データ処理システム102がフィルタリングを実行することを可能にするためにデータ処理システム102に入力オーディオ信号を提供する方が効率的である場合がある。クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、自然言語プロセッサに干渉する可能性がある周囲のノイズレベルを低減するために、ノイズ低減技法などの追加の事前処理または事前フィルタリング技法を適用することができる。ノイズ低減技法は、自然言語プロセッサの精度と速度を向上させることができ、それによってデータ処理システム102のパフォーマンスを向上させ、ディスプレイを介して提供されるグラフィカルユーザインターフェースのレンダリングを管理する。
データ処理システム102上で起動されるデジタルアシスタントアプリケーション110のインスタンスのNLPコンポーネント116は、クライアントデバイス104のマイク154によって検出された入力オーディオ信号を含むオーディオデータパケットを受信することができる。データパケットはデジタルファイルを提供することができる。NLPコンポーネント116は、オーディオ信号を備えるデジタルファイルまたはデータパケットを受信または取得し、オーディオ信号を解析することができる。入力オーディオ信号をデータ処理システム102に提供する際に、クライアントデバイス104上のNLPコンポーネント116は、少なくとも1つのオーディオデータパケット(本明細書では、一般にデータパケットと呼ばれることもある)を生成することができる。オーディオデータパケットは、クライアントデバイス104のマイク154によって取得された入力オーディオ信号を含むことができる。オーディオデータパケットは、クライアントデバイス104、クライアントデバイス上で動作しているデジタルアシスタントアプリケーション110、または1つまたは複数の識別子136などの入力オーディオ信号の送信に関連するデータを含むことができる。識別子136は、たとえば、とりわけクライアントデバイス104を参照するデバイス識別子、デジタルアシスタントアプリケーション110のユーザに関連付けられるアカウント識別子(たとえば、認証資格証明の一部として)、あるいはデジタルアシスタントアプリケーション110の現在の使用に割り当てられたセッションまたはクッキー識別子を含むことができる。オーディオデータパケット内のデータはまた、とりわけ、クライアントデバイス104に関連付けられるデバイス属性、デジタルアシスタントアプリケーション110に関連付けられるアプリケーション属性、およびデジタルアシスタントアプリケーション110にログインするために使用されるアカウントに関連付けられる特性などのメタデータを含むことができる。生成されると、クライアントデバイス104上のNLPコンポーネント116は、オーディオデータパケットをデータ処理システム102に送信することができる。その後、データ処理システム102上で動作しているデジタルアシスタントアプリケーション110のインスタンスは、オーディオデータパケットを受信し、入力オーディオ信号および任意の追加のデータを含むオーディオデータパケットを処理することができる。
入力オーディオ信号を解析するために、NLPコンポーネント116は、自然言語を理解し、データ処理システム102が人間または自然言語入力から意味を導き出すことを可能にするための技法を用いて構成することができる。様々な自然言語処理技法を使用して、NLPコンポーネント116は、人間(たとえば、クライアントデバイス104のユーザ)とコンピュータ(たとえば、デジタルアシスタントアプリケーション110上で起動されるクライアントデバイス104)との間のインタラクションを提供することができる。NLPコンポーネント116は、統計的機械学習などの機械学習に基づく技法を含むか、それで構成することができる。NLPコンポーネント116は、入力オーディオ信号を解析するために、決定木、統計モデル、または確率モデルを利用することができる。NLPコンポーネント116は、たとえば、名前付きエンティティ認識(たとえば、テキストのストリームが与えられると、テキスト内のどのアイテムが人または場所などの名前にマッピングされるか、および人、位置(たとえば、「自宅」)、または組織などのそのような各名前のタイプが何かを決定する)、自然言語生成(たとえば、コンピュータデータベースまたは意味的意図からの情報を理解可能な人間の言語に変換する)、自然言語理解(たとえば、コンピュータモジュールが操作できる1次論理構造などのより正式な表現にテキストを変換する)、機械翻訳(たとえば、ある人間の言語から別の言語へのテキストの自動翻訳)、形態学的セグメンテーション(たとえば、語句を個々の形態素に分離し、形態素のクラスを識別し、これは、考慮されている言語の語句の形態または構造の複雑さに基づいて、困難な場合がある)、質問応答(たとえば、人間の言語の質問への回答を決定し、それは特定の回答または自由回答であり得る)、またはセマンティック処理(たとえば、語句を識別し、識別された語句を同様の意味を有する他の語句に関連付けるためにその意味を符号化した後に発生する可能性のある処理)などの機能を実行することができる。
NLPコンポーネント116は、入力信号を(たとえば、データリポジトリ124内の)記憶された代表的なオーディオ波形のセットと比較し、最も近い一致を選択することによって、入力オーディオ信号を認識された文字列に変換することができる。オーディオ波形のセットは、データ処理システム102にアクセス可能なデータリポジトリ124または他のデータベースに記憶することができる。代表的な波形は、ユーザの大きなセットにわたって生成され、次いでユーザからの発話サンプルで拡張され得る。オーディオ信号が認識されたテキストに変換された後、NLPコンポーネント116は、テキストを、たとえば、ユーザにわたるトレーニングを介して、または手動の仕様を通じて、データ処理システム102が提供できるアクションと関連付けられる語句と照合する。NLPコンポーネント116は、マイク154から取得された入力オーディオ信号が認識可能な文字列を含まないことを決定することができる。NLPコンポーネント116は、入力オーディオ信号が認識可能な文字列を含まないことを決定する際に、入力オーディオ信号が無音(たとえば、0dB未満の最大振幅を有する)を含むと決定することができる。さらに、NLPコンポーネント116は、入力オーディオ信号の信号対雑音(SNR)を決定することができる。NLPコンポーネント116は、入力オーディオ信号のSNRをしきい値SNR(たとえば、-20dB)と比較することができる。入力オーディオ信号のSNRがしきい値SNRより大きいという決定に応答して、NLPコンポーネント116は、入力オーディオ信号が認識可能な文字列を含まないと決定することができる。
NLPコンポーネント116は、入力オーディオ信号に加えて、またはその代わりに、画像またはビデオ入力信号を受信して処理することができる。NLPコンポーネント116は、画像またはビデオ入力をテキストまたはデジタルファイルに変換することができる。NLPコンポーネント116は、アクションを実行し、要求を生成し、あるいはデータ構造を選択または識別するために、画像またはビデオ入力を処理、分析、または解釈することができる。データ処理システム102は、たとえば、画像解釈技法、コンピュータビジョン、機械学習エンジン、あるいは画像またはビデオを認識または解釈して画像またはビデオをデジタルファイルに変換する他の技法を使用して、画像またはビデオ入力信号を処理することができる。1つまたは複数の画像解釈技法、コンピュータビジョン技法、または機械学習技法は、総称して画像化技法と呼ぶことができる。データ処理システム102(たとえば、NLPコンポーネント116)は、オーディオ処理技法に加えて、またはその代わりに、画像化技法を用いて構成することができる。
入力オーディオパケットから、NLPコンポーネント116は、クライアントデバイス104のマイク154によって取得された入力オーディオ信号を取得または識別することができる。取得すると、NLPコンポーネント116は、各セグメントを処理または解析するために、入力オーディオ信号を持続時間(たとえば、15秒から2分)の1つまたは複数のオーディオセグメントに分割または分離する。解析することによって、NLPコンポーネント116は、入力オーディオ信号から1つまたは複数の語句を識別することができる。識別された語句に基づいて、NLPコンポーネント116は、入力オーディオ信号が特定のコンテンツパブリッシャ106からのオーディオコンテンツの要求に対応するかどうかを決定することができる。決定は、識別されたものがオーディオコンテンツの要求のフォーマットに一致するかどうかに基づくことができる。フォーマッティングは、データリポジトリ124に維持管理されている正規表現126、パラメータ128、ポリシ130、およびテンプレート134によって表示または指定することができる。オーディオコンテンツの要求のフォーマットは、取得する意図を示すトリガワード、取得されるべきオーディオコンテンツのタイプ、およびオーディオコンテンツを取得するエンティティで構成することができる。たとえば、入力オーディオ信号からNLPコンポーネント116によって認識される語句は、「ニュースチャンネルXYZからポッドキャストをダウンロードする」を含むことができる。この例では、トリガキーワードは「ダウンロード」であり得、オブジェクトは「ポッドキャスト」であり得、発信元エンティティは「ニュースチャネルXYZ」であり得る。
入力音声信号からの語句の識別により、NLPコンポーネント116は、語句が音声コンテンツの要求のフォーマットに対応するか、または一致するかを決定することができる。この決定は、1つまたは複数の自然言語処理技法を使用して実行することができる。たとえば、トリガキーワードを決定するために質問応答を使用することができ、オーディオコンテンツのタイプと発信元エンティティを識別するためにエンティティ認識を使用することができる。入力オーディオ要求からの語句がフォーマットと一致しないとの決定に応答して、NLPコンポーネント116は、入力オーディオ信号がオーディオコンテンツの要求に対応しないと決定することができる。さらに、NLPコンポーネント116は、入力オーディオ信号の語句に示された他のタイプの要求を実行するために、追加のアクションを実行することができる。逆に、語句がフォーマットに一致するとの決定に応答して、NLPコンポーネント116は、入力オーディオがオーディオコンテンツの要求に対応すると決定することができる。さらに、デジタルアシスタントアプリケーション110およびデータ処理システム102は、コンテンツパブリッシャ106からオーディオコンテンツを取得する際に、要求を満たすための追加のアクションを実行することができる。
データ処理システム102上で実行されるレコードインデクサコンポーネント138は、データレポジトリ144上にオーディオレコーディング146のセットを維持管理することができる。データレポジトリ144を維持管理する際に、レコードインデクサコンポーネント138は、コンテンツパブリッシャ106のうちの1つからオーディオレコーディング146を受信することができる。受信すると、レコードインデクサコンポーネント138は、オーディオレコーディング146をデータレポジトリ144に記憶することができる。レコードインデクサコンポーネント138はまた、オーディオレコーディング146が受信されるコンテンツパブリッシャ106を識別することと、オーディオレコーディング146をコンテンツパブリッシャ106に関連付けることと、オーディオレコーディング146とコンテンツパブリッシャ106との間の関連付けを記憶することとを行うことができる。各オーディオレコーディング146は、コンテンツパブリッシャ106のうちの1つから提供または受信することができ、クライアントデバイス104上のデジタルアシスタントアプリケーション110へのダウンロードを介して提供することができる。オーディオレコーディング146は、とりわけ、WAV、MPEG、MP3、RIFF、AAC、OGG、およびWMAなどの任意のタイプの形式の1つまたは複数のオーディオファイルを含むことができる。オーディオレコーディング146は、関連付けられるコンテンツパブリッシャ106によって作成されたプライマリオーディオコンテンツを含むことができる。プライマリオーディオコンテンツに加えて、オーディオレコーディング146は、少なくとも1つのコンテンツスポット148を含むことができる。コンテンツスポット148は、その間に補足オーディオコンテンツが提示されるべきプライマリオーディオコンテンツの一部を定義することができる。コンテンツスポット148を、対応するコンテンツスポットマーカを使用してコンテンツパブリッシャ106によって指定または提供することができる。コンテンツスポットマーカは、オーディオレコーディング146におけるプライマリオーディオコンテンツの提示中に補足コンテンツが再生されるべき時間または時間枠を定義することができる。
さらに、レコードインデクサコンポーネント138は、データリポジトリ144上に補足オーディオコンテンツアイテム150(以下、一般的にオーディオコンテンツアイテム150と呼ばれる)を維持管理する。データインデクサコンポーネント138は、データリポジトリ144を維持管理する際に、コンテンツプロバイダ108からオーディオコンテンツアイテム150を受信することができる。受信すると、レコードインデクサコンポーネント138は、オーディオレコーディング146をデータリポジトリ144に記憶することができる。レコードインデクサコンポーネント138はまた、オーディオコンテンツアイテム150が受信されるコンテンツプロバイダ108を識別することと、オーディオコンテンツアイテム150をコンテンツプロバイダ108に関連付けることと、オーディオコンテンツアイテム150とコンテンツプロバイダ108との間の関連付けを記憶することとを行うことができる。各オーディオコンテンツアイテム150は、コンテンツプロバイダ108の1つから提供または受信することができ、クライアントデバイス104上のデジタルアシスタントアプリケーション110へのダウンロードを介してオーディオレコーディング146の一部として提供することができる。各オーディオコンテンツアイテム150は、とりわけ、WAV、MPEG、MP3、RIFF、AAC、OGG、およびWMAなどの任意のタイプの形式の1つまたは複数のオーディオファイルを含むことができる。オーディオコンテンツアイテム150は、関連付けられるコンテンツプロバイダ108によって作成された補足オーディオコンテンツを含むことができる。オーディオコンテンツアイテム150の補足オーディオコンテンツを、オーディオレコーディング146のうちの1つのコンテンツスポット148に挿入することができる。挿入されると、コンテンツスポット148のコンテンツスポットマーカによって指定されたように、プライマリオーディオコンテンツの前、最中、または後にオーディオコンテンツアイテム150の補足オーディオコンテンツが表示される。
入力音声信号が音声コンテンツの要求に対応するという決定に応答して、NLPコンポーネント116は、クライアントデバイス104上のデジタルアシスタントアプリケーション110に提供するために、データレポジトリ144からの音声記録146を識別することができる。入力オーディオ信号から解析された語句に基づいて、NLPコンポーネント116は、そのオーディオコンテンツが要求に関連付けられているコンテンツパブリッシャ106を識別することができる。たとえば、コンテンツパブリッシャ106に関連付けられるコンテンツパブリッシャエンティティを識別するために、NLPコンポーネント116はエンティティ認識を使用することができる。要求に関連付けられるコンテンツパブリッシャ106の識別により、NLPコンポーネント116は、コンテンツパブリッシャ106に属するオーディオレコーディング146のサブセットを識別するために、データリポジトリ144にアクセスすることができる。NLPコンポーネント116は、識別されたコンテンツパブリッシャ106を使用して、データレポジトリ144からオーディオレコーディング146のうちの少なくとも1つを検索および取得するために、レコードインデクサコンポーネント138を呼び出すことができる。たとえば、レコードインデクサコンポーネント138は、データリポジトリ144に記憶および維持管理されるコンテンツパブリッシャ106からの最新のオーディオレコーディング146を検索することができる。サブセットから、NLPコンポーネント116は、入力オーディオ信号から解析された語句に基づいて提供するために1つのオーディオレコーディング146を識別することができる。
データ処理システム102上で実行されるコンテンツ配置コンポーネント140は、要求に関連付けられるオーディオレコーディング146の各コンテンツスポット148に挿入するためのオーディオコンテンツアイテム150のうちの少なくとも1つを選択または識別することができる。入力オーディオ信号がコンテンツの要求に対応するという決定により、コンテンツ配置コンポーネント140は、少なくとも1つのコンテンツ選択パラメータを識別することができる。オーディオコンテンツアイテム150のうちの1つを選択して、オーディオレコーディング146のコンテンツスポット148に含めるために、コンテンツ選択パラメータを使用することができる。コンテンツ選択パラメータは、たとえば、とりわけ識別子136(たとえば、デバイス識別子、アカウント識別子、あるいはセッションまたはクッキー識別子)、クライアントデバイス104に関連付けられる少なくとも1つのデバイス属性(たとえば、デバイスタイプ、デバイス機能、ネットワークアドレス、および地理的位置)、クライアントデバイス104上のデジタルアシスタントアプリケーション110に関連付けられる少なくとも1つのアプリケーション属性(たとえば、アプリケーション名、バージョン、または提示機能)および、デジタルアシスタントアプリケーション110にログインするために使用されるアカウント識別子(たとえば、アカウントプロファイル、関心識別子、またはユーザセグメント)に関連付けられる少なくとも1つの特性を含むことができる。
コンテンツ選択パラメータを識別するために、コンテンツ配置コンポーネント140は、含まれるデータを識別するために、クライアントデバイス104上のデジタルアシスタントアプリケーション110によって提供されるオーディオデータパケットを解析することができる。解析することによって、コンテンツ配置コンポーネント140は、オーディオデータパケットに含まれる識別子136を抽出または識別することができる。識別されると、コンテンツ配置コンポーネント140は、オーディオデータパケットからの識別子136をコンテンツ選択パラメータのうちの1つとして使用することができる。解析の代わりに、または解析に加えて、コンテンツ配置コンポーネント140は、アプリケーションプログラミングインターフェース(API)を介して、クライアントデバイス104上のデジタルアシスタントアプリケーション110から識別子136を取得することができる。たとえば、オーディオデータパケットは識別子136が欠如している可能性があり、デジタルアシスタントアプリケーション110は、識別子136を使用する動作について認証されている可能性がある。この例では、コンテンツ配置コンポーネント140は、識別子136をフェッチするためにデジタルアシスタントアプリケーション110によって使用されるAPIの仕様にしたがって関数呼出しを呼び出すことができる。さらに、コンテンツ配置コンポーネント140は、とりわけデバイス属性、アプリケーション属性、および特性などの中に含まれるメタデータを識別するために、オーディオデータパケットを解析することができる。識別により、コンテンツ配置コンポーネント140は、オーディオデータパケットから識別されたデバイス属性、アプリケーション属性、または特性をコンテンツ選択パラメータとして使用することができる。
さらに、コンテンツ配置コンポーネント140は、入力オーディオ信号の要求に関連付けられるオーディオレコーディング146に含まれるコンテンツスポット148ごとのコンテンツスポットパラメータを決定することができる。コンテンツスポットパラメータは、コンテンツスポット148を評価するために使用でき、また、コンテンツスポット148に挿入されたオーディオレコーディング146または補足オーディオコンテンツ、あるいはそれらの組合せの測定または推定されたビュー数に比例し得る。オーディオレコーディング146自体のリスニングの数およびオーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数は、多数のクライアントデバイス104にわたるオーディオレコーディング146の以前のサービングから計測され得る。たとえば、オーディオレコーディング146のリスニングの数を、異なるクライアントデバイス104にわたるデジタルアシスタントアプリケーション110の複数のインスタンスを介して、オーディオレコーディング146の再生を計測することから測定することができる。オーディオレコーディング146の1つのコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数は、オーディオレコーディング146を備えた複数のクライアントデバイス104にわたって検出された、いくつかの事前定義されたインタラクションイベントを検出することから測定することができる。事前定義されたインタラクションイベントは、たとえば、補足オーディオコンテンツに関連する語句、または補足オーディオコンテンツに関連付けられるコンテンツプロバイダ108に関連付けられる情報リソースに対するインタラクションのセットを含む、クライアントデバイス104のマイク154を介して検出された後続の音声クエリを含むことができる。測定された数から、オーディオレコーディング146、およびコンテンツスポット148に挿入された補足オーディオコンテンツ挿入のリスニングの推定された数を計算することができる(たとえば、再構成、傾向推定、または外挿技法を介して)。測定された数および推定された数の両方は、データ処理システム102のカウンタによって決定および維持管理され得る。
数を決定する際に、コンテンツ配置コンポーネント140は、オーディオレコーディング146のリスニングの数およびコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数を推定するための少なくとも1つの予測モデルを確立することができる。予測モデルを、とりわけ回帰モデル(たとえば、線形またはロジスティック)、サポートベクタマシン、人工ニューラルネットワーク(ANN)、ランダムフォレスト分類器、ベイジアン統計モデル、またはk最近傍アルゴリズムなどの、任意の数の機械学習アルゴリズムまたはモデルにしたがって生成することができる。予測モデルを、データリポジトリ124または144に維持管理されているトレーニングデータセットを使用して確立することができる。トレーニングデータセットは、他のオーディオレコーディング146のリスニングの数、および様々なコンテンツスポット148においてオーディオレコーディング146に挿入された補足オーディオコンテンツのリスニングの数に関する以前の測定値またはサンプル測定値を含むことができる。さらに、トレーニングデータセットは、とりわけ、オーディオレコーディング146およびコンテンツスポット148自体の1つまたは複数の特性、たとえば、各オーディオレコーディング146の長さ、オーディオレコーディング146におけるコンテンツスポット148の長さ、コンテンツスポット148がオーディオレコーディング148内で定義される時間、オーディオレコーディング146のトピックカテゴリ、およびコンテンツスポット148に挿入された補足オーディオコンテンツのトピックカテゴリを含むことができる。トレーニングデータセットはまた、とりわけ、デバイス属性、アプリケーション属性、または特性などの、オーディオレコーディング146のリスナに関するデータも含むことができる。トレーニングデータセットを使用して、コンテンツ配置コンポーネント140は、機械学習アルゴリズムまたはモデルのタイプにしたがって(たとえば、収束するまで)予測モデルをトレーニングすることができる。トレーニング時に、オーディオレコーディング146のリスニングの予測された(または、推定された)数と、オーディオレコーディング146内のコンテンツスポット148のうちのいずれかに挿入される補足オーディオコンテンツのリスニングの数を決定するために、予測モデルを使用することができる。
コンテンツスポット148のコンテンツスポットパラメータを決定するために、コンテンツ配置コンポーネント140は、多数のクライアントデバイス104にわたるオーディオレコーディング146のリスニングの数を計算、決定、または識別することができる。コンテンツ配置コンポーネント140は、カウンタによって維持管理されるオーディオレコーディング146の測定されたリスニングの数を識別することができる。コンテンツ配置コンポーネント140は、(たとえば、外挿を使用して計算された)オーディオレコーディング146のリスニングの推定された数を識別することができる。コンテンツ配置コンポーネント140はまた、オーディオレコーディング146のリスニングの予測された数を決定するためにオーディオレコーディング146を適用することができる。適用する際に、コンテンツ配置コンポーネント140は、オーディオレコーディング146の様々な特性(たとえば、長さおよびトピックカテゴリ)を識別することができる。適用すると、コンテンツ配置コンポーネント140は、予測モデルによって出力されるリスニングの予測された数を決定または識別することができる。
さらに、オーディオレコーディング146のコンテンツスポット148ごとに、コンテンツ配置コンポーネント140は、多数のクライアントデバイス104にわたってコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数を計算、決定、または識別することができる。補足オーディオコンテンツは、データリポジトリ144上で維持管理されるオーディオコンテンツアイテム150のうちの1つまたは複数に対応することができる。コンテンツ配置コンポーネント140は、カウンタによって維持管理されるコンテンツスポット148に挿入された補足オーディオコンテンツの測定されたリスニングの数を識別することができる。コンテンツ配置コンポーネント140は、コンテンツスポット148に挿入された(たとえば、外挿を使用して計算された)補足オーディオコンテンツのリスニングの推定された数を識別することができる。コンテンツ配置コンポーネント140はまた、コンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの予測された数を決定するために、オーディオレコーディング146を適用することができる。適用する際に、コンテンツ配置コンポーネント140は、オーディオレコーディング146(たとえば、長さおよびトピックのカテゴリ)およびコンテンツスポット148(たとえば、オーディオレコーディング146内の時間)の様々な特性を識別することができる。適用すると、コンテンツ配置コンポーネント140は、予測モデルによって出力されるリスニングの予測された数を識別することができる。
測定、推定、または予測されたリスニングの数に基づいて、コンテンツ配置コンポーネント140は、オーディオレコーディング146におけるコンテンツスポット148のコンテンツスポットパラメータを計算または決定することができる。コンテンツ配置コンポーネント140は、オーディオレコーディング146のリスニングの数を使用して、1つのコンテンツスポットパラメータを決定することができる。コンテンツ配置コンポーネント140はまた、オーディオレコーディング146のコンテンツスポット148における補足オーディオコンテンツのリスニングの数を使用して、別の別個のコンテンツスポットパラメータを決定することができる。コンテンツ配置コンポーネント140はまた、オーディオレコーディング146のリスニングの数と、オーディオレコーディング146におけるコンテンツスポット148のリスニングの数との組合せに基づいて、単一のコンテンツスポットパラメータを決定することができる。組合せは、たとえば、とりわけ、合計、平均、加重平均、または関数、あるいはそれらの任意の組合せを含むことができる。
コンテンツスポット148に挿入する補足オーディオコンテンツを選択する際に、コンテンツ配置コンポーネント140は、候補のオーディオコンテンツアイテム150のセットからオーディオコンテンツアイテム150を選択するために、コンテンツ配置プロセスを起動または実行することができる。プロセスを起動する際に、コンテンツ配置コンポーネント140は、各コンテンツプロバイダ108からコンテンツ提案パラメータを要求、検索、または識別することができる。コンテンツ提案パラメータは、対応するコンテンツプロバイダ108によるオーディオレコーディング146におけるコンテンツスポット148の評価を表すか、または示すことができる。コンテンツ提案パラメータは、対応するコンテンツプロバイダ108によって提供されるオーディオコンテンツアイテム150に関連付けることができる。コンテンツ提案パラメータの値が高いほど、コンテンツプロバイダ108のオーディオコンテンツアイテム150が選択される可能性が高い。コンテンツ提案パラメータを取得するために、コンテンツ配置コンポーネント140は、パラメータの要求を各コンテンツプロバイダ108に送信することができる。要求は、コンテンツ選択パラメータおよびコンテンツスポットパラメータを含むことができる。受信すると、各コンテンツプロバイダ108は、コンテンツ選択パラメータおよびコンテンツスポットパラメータに基づいてコンテンツ提案パラメータを決定または生成することができる。生成されると、コンテンツプロバイダ108は、データ処理システム102に送信するために、コンテンツ提案パラメータで返答することができる。
1つまたは複数のパラメータを使用して、コンテンツ配置コンポーネント140は、識別されたオーディオレコーディング146のコンテンツスポット148に挿入するオーディオコンテンツアイテム150のうちの少なくとも1つを選択することができる。コンテンツ配置コンポーネント140は、コンテンツ選択パラメータに基づいて、データレポジトリ144上で維持管理されている候補のオーディオコンテンツアイテム150のセットからオーディオコンテンツアイテム150を選択することができる。たとえば、コンテンツ配置コンポーネント140は、コンテンツ選択パラメータと一致する仕様(たとえば、デバイス属性、アプリケーション属性、および特性属性)を有するオーディオコンテンツアイテム150を見つけることができる。コンテンツ配置コンポーネント140はまた、コンテンツスポットパラメータに基づいて(コンテンツ選択パラメータと組み合わせて)オーディオコンテンツアイテム150を選択すること画像できる。たとえば、コンテンツ配置コンポーネント140は、特性属性によって示される関心に一致するカテゴリトピックを有し、コンテンツスポット148と同じ長さである、オーディオコンテンツアイテム150のサブセットを識別することができる。この例では、コンテンツ配置コンポーネント140は、サブセットから、コンテンツスポット148においてオーディオレコーディング146に挿入するための補足オーディオコンテンツのリスニングの予測された数が最も高い1つのオーディオコンテンツアイテム150を選択することができる。
コンテンツアイテム150を選択する際に、コンテンツ配置コンポーネント140はまた、コンテンツ提案パラメータを使用することができ、コンテンツ提案パラメータの受信を伴うコンテンツ配置プロセスを続けることができる。コンテンツ配置コンポーネント140は、様々なコンテンツプロバイダ108から受信したコンテンツ提案パラメータをランク付けすることができる。ランキングから、コンテンツ配置コンポーネント140は、最高のコンテンツ提案パラメータを有するコンテンツプロバイダ108を識別することができる。識別によって、コンテンツ配置コンポーネント140は、ランキングにおいて最高のコンテンツ提案パラメータを有するコンテンツプロバイダ108からオーディオコンテンツアイテム150を識別または選択することができる。オーディオコンテンツアイテム150を識別または選択して、オーディオレコーディング146のコンテンツスポット148に挿入するために、コンテンツ選択パラメータ、コンテンツスポットパラメータ、またはコンテンツ提案パラメータの任意の組合せを使用することができる。コンテンツ配置コンポーネント140は、オーディオレコーディング146に対して定義されたコンテンツスポット148のそれぞれに対して1つのオーディオコンテンツアイテム150を選択するプロセスを繰り返すことができる。
デジタルアシスタントアプリケーション110のダイレクトアクションハンドラコンポーネント120は、コンテンツ配置コンポーネント115によって選択されたオーディオコンテンツアイテム150を、オーディオレコーディング146のコンテンツスポット148に挿入することができる。データレポジトリ144からのオーディオコンテンツアイテム150の選択により、ダイレクトアクションハンドラコンポーネント120は、NLPコンポーネント116によって識別されたオーディオレコーディング146を識別するために、データレポジトリ144にアクセスすることができる。たとえば、ダイレクトアクションハンドラコンポーネント120は、コンテンツパブリッシャ106によって生成され、NLPコンポーネント116によって識別されたオーディオレコーディング146に対応する1つまたは複数のオーディオファイルを取得することができる。識別されると、ダイレクトアクションハンドラコンポーネント120は、オーディオコンテンツアイテム150が選択されるオーディオレコーディング146におけるコンテンツスポット148を識別することができる。ダイレクトアクションハンドラコンポーネント120は、対応するコンテンツスポットマーカによって定義された時間に、オーディオコンテンツアイテム150をコンテンツスポット148に追加、埋込み、または挿入することができる。たとえば、ダイレクトアクションハンドラコンポーネント120は、コンテンツスポット148のコンテンツスポットマーカによって定義された時間枠中に、オーディオレコーディング146からオーディオコンテンツを削除またはヌルにすることができる。削除されると、ダイレクトアクションハンドラコンポーネント120は、選択されたオーディオコンテンツアイテム150を、オーディオレコーディング146内のコンテンツスポット148の時間枠にオーバーレイすることができる。オーディオコンテンツアイテム150を挿入する際に、ダイレクトアクションハンドラコンポーネント120は、オーディオレコーディング146の残りとの互換性のために補足オーディオコンテンツを変換するために、1つまたは複数の信号処理アルゴリズムを実行することができる。信号処理アルゴリズムは、たとえば、とりわけ、等化、圧縮、および平衡化などの様々なオーディオミキシング技法を含むことができる。ダイレクトアクションハンドラコンポーネント120は、オーディオレコーディング146のコンテンツスポット148のために選択されたすべてのオーディオコンテンツアイテム150を挿入することができる。オーディオコンテンツアイテム150の挿入により、ダイレクトアクションハンドラコンポーネント120は、クライアントデバイス104への提供のために、オーディオレコーディング146を(たとえば、1つ以上の編集されたオーディオファイルとして)キャッシュまたは記憶することができる。
ダイレクトアクションハンドラコンポーネント120は、クライアントデバイス104上のマイク154によって検出された入力オーディオ信号に示される要求を実行するために、少なくとも1つのアクションデータ構造を生成することができる。アクションデータ構造は、とりわけハイパーテキスト転送プロトコル(HTTP)にしたがって生成することができる。たとえば、入力オーディオ信号において指定された要求を完了するために、アクションデータ構造を他のデータとともにHTTP応答の本文(または、ペイロード)に含めることができる。ダイレクトアクションハンドラコンポーネント120は、とりわけ、正規表現126、パラメータ128、ポリシ130、応答データ132、およびテンプレート134などの、データリポジトリ124に記憶されているデータにしたがって、応答セレクタコンポーネント122のフォーマットを呼び出すこと、または、ダイレクトアクション構造を生成することができる。たとえば、応答セレクタコンポーネント122は、アクションデータ構造に含めるフィールドを決定するために、データリポジトリ124からテンプレート134を取得することができる。応答セレクタコンポーネント122は、オーディオコンテンツの要求に対する応答のデータ構造のフィールドに関する情報を取得するために、データリポジトリ124からコンテンツを検索することができる。応答セレクタコンポーネント122(または、ダイレクトアクションハンドラコンポーネント120)は、オーディオコンテンツの要求に対する応答としてアクションデータ構造に含まれるべきメッセージに1つまたは複数の語句を含むことができる。たとえば、応答メッセージは「ポッドキャストを見つけました。トークショーPQRからダウンロードしています」という語句を含むことができる。
アクションデータ構造を生成する際に、ダイレクトアクションハンドラコンポーネント120は、コンテンツスポット148に挿入された1つまたは複数のオーディオコンテンツアイテム150を有するオーディオレコーディング146を含むことができる。ダイレクトアクションハンドラコンポーネント120は、挿入されたオーディオコンテンツアイテム150を有するオーディオレコーディング146に対応する1つまたは複数のオーディオファイルをアクションデータ構造に挿入することができる。ダイレクトアクションハンドラコンポーネント120は、オーディオコンテンツアイテム150を有するオーディオレコーディング146を参照するアドレス(たとえば、URLアドレスまたはネットワークアドレス)をアクションデータ構造に含めることができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスによって、データリポジトリ144から挿入されたオーディオコンテンツアイテム150を有するオーディオレコーディング146を検索またはダウンロードするために、アドレスを使用することができる。ダイレクトアクションハンドラコンポーネント120は、アクションデータ構造を含むHTTP応答の本文の一部としてオーディオレコーディング146を含むことができる。挿入すると、ダイレクトアクションハンドラコンポーネント120は、クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスにアクションデータ構造を提供、送信、または伝送することができる。アクションデータ構造の送信は、オーディオレコーディング146をクライアントデバイス104にストリーミングせずに、オーディオレコーディング146をクライアントデバイス104にアップロードすることを含むか、またはそれに対応することができる。たとえば、ストリーミングを介してオーディオレコーディング146のチャンクを提供するのではなく、ダイレクトアクションハンドラコンポーネント120は、クライアントデバイス104へのダウンロードのためにオーディオレコーディング146に対応するファイルを送信することができる。
送信によって、クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、挿入されたオーディオコンテンツアイテム150を有するオーディオレコーディング146を含むアクションデータ構造を受信することができる。アクションデータ構造の受信は、オーディオレコーディング146に含まれるオーディオコンテンツのストリーミングではなく、デジタルアシスタントアプリケーション110によるオーディオレコーディング146自体の検索またはダウンロードを含むか、またはそれに対応することができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110は、オーディオレコーディング146を抽出、取得、または識別するために、アクションデータ構造を解析することができる。たとえば、オーディオファイルが含まれる場合、デジタルアシスタントアプリケーション110は、HTTP応答の本文から、オーディオレコーディング146に対応する1つまたは複数のオーディオファイルを引き出すことができる。挿入されたオーディオコンテンツアイテム150を有するオーディオレコーディング146へのアドレスが含まれる場合、デジタルアシスタントアプリケーション110は、アドレスを使用して(たとえば、ハードドライブまたはメモリ上の)クライアントデバイス104にオーディオレコーディング146を検索およびダウンロードすることができる。検索に続いて、デジタルアシスタントアプリケーション110は、クライアントデバイス104のスピーカ152を介して、コンテンツスポット148において挿入されたオーディオコンテンツアイテム150を有するオーディオレコーディング146を提示することができる。たとえば、クライアントデバイス104上のデジタルアシスタントアプリケーション110は、スピーカ152を介してオーディオレコーディング146のダウンロードされたオーディオコンテンツの再生を処理するためのメディアプレーヤコンポーネントを含むことができる。
(データ処理システム102またはクライアントデバイス104上の)デジタルアシスタントアプリケーション110のオーディオ信号ジェネレータコンポーネント118は、応答の語句を識別するために、アクションデータ構造を解析することができる。オーディオ信号ジェネレータコンポーネント118は、入力オーディオ信号に示された要求への応答における応答フレーズの1つまたは複数の語句に基づいて出力オーディオファイルを生成することができる。オーディオ信号ジェネレータコンポーネント118は、応答フレーズの1つまたは複数の語句の出力オーディオファイルを(たとえば、スピーカ152を介して)再生することができる。たとえば、オーディオ信号ジェネレータコンポーネント118は、「ポッドキャストを見つけました。トークショーPQRからダウンロードしています」という語句を含む出力オーディオファイルを生成することができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110はまた、応答フレーズの1つまたは複数の語句を表示することができる。
データ処理システム102上で実行するコンバージョン検出コンポーネント142は、挿入されたオーディオコンテンツアイテム150を有するオーディオレコーディング146の提供に続いてクライアントデバイス104上で発生する1つまたは複数のインタラクションイベントを監視することができる。インタラクションイベントは、別の入力オーディオ信号、クリックイベント、画面タッチイベント、または再生開始イベント、再生一時停止イベントなど、あるいは、とりわけクライアントデバイス104を介して検出されたイベントを含むことができる。コンバージョン検出コンポーネント142は、インタラクションイベントを監視するために、任意の数の技法を使用することができる。たとえば、コンバージョン検出コンポーネント142は、ウェブアプリケーション(たとえば、ウェブブラウザ)を介して受信されたインタラクションイベントにアクセスするために、識別子136(たとえば、セッション識別子の形で)を使用することができる。コンバージョン検出コンポーネント142は、クライアントデバイス104上のデジタルアシスタントアプリケーション110のアプリケーションプログラミングインターフェース(API)を介して検出されたインタラクションイベントにアクセスするために、識別子136(たとえば、デバイス識別子またはアカウント識別子の形で)を使用することができる。APIは、クライアントデバイス104上のデジタルアシスタントアプリケーション110上で検出された少なくとも事前定義されたインタラクションイベントの検索のための関数呼出しを定義することができる。たとえば、デジタルアシスタントアプリケーション110は、再生開始および後続の再生完了イベントの検出時に、APIを介してコンバージョン検出コンポーネント142に表示を送信することができる。コンバージョン検出コンポーネント142は、APIを介してデジタルアシスタントアプリケーション110によってオーディオレコーディング146の再生内の位置にアクセスすることができる。位置は、オーディオレコーディング146内のある時点がクライアントデバイス104を介して再生されていることを示すことができる。
監視することによって、コンバージョン検出コンポーネント142は、多数のクライアントデバイス104にわたるオーディオレコーディング146のリスニングの数に関するカウンタを維持管理および更新することができる。カウンタは、オーディオレコーディング146の測定されたリスニングの数を示すことができ、コンテンツスポットパラメータを決定する際にコンテンツ配置コンポーネント140が使用され得る。カウンタを維持管理するために、コンバージョン検出コンポーネント142は、(たとえば、デジタルアシスタントアプリケーション110のAPIを介して)オーディオレコーディング146の再生内の位置を監視することができる。コンバージョン検出コンポーネント142は、クライアントデバイス104上のデジタルアシスタントアプリケーション110からの再生開始イベントの検出に応答して、再生の監視を開始することができる。コンバージョン検出コンポーネント142は、位置がオーディオレコーディング146の事前定義された期間と一致するかどうかを決定することができる。事前定義された期間は、コンテンツパブリッシャ106によって指定された、オーディオレコーディング146の時間全体の長さ、またはオーディオレコーディング146の全体の長さ(たとえば、75~95%)のパーセンテージに対応することができる。
コンバージョン検出コンポーネント142は、監視された位置を事前定義された期間と比較することができる。比較することによって、コンバージョン検出コンポーネント142は、オーディオレコーディング146の再生がクライアントデバイス104上のデジタルアシスタントアプリケーション110上で完了したかどうかを決定することができる。位置が事前定義された期間と一致するとの決定に応答して、コンバージョン検出コンポーネント142は、オーディオレコーディング146の再生が完了したと決定することができる。さらに、コンバージョン検出コンポーネント142は、オーディオレコーディング146のリスニングの数のカウンタを増分することができる。コンバージョン検出コンポーネント142はまた、監視された位置とは無関係に、カウンタを増分するために、再生完了イベントの検出を使用することができる。逆に、位置が事前定義された期間と一致しないという決定に応答して、コンバージョン検出コンポーネント142は、再生の位置を監視し続けることができる。
さらに、コンバージョン検出コンポーネント142は、多数のクライアントデバイスにわたってオーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数についてのカウンタを維持管理することができる。カウンタは、オーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツ(たとえば、選択されたオーディオコンテンツアイテム150、または別のオーディオコンテンツアイテム150)の測定されたリスニングの数を示すことができる。カウンタは、コンテンツスポットパラメータを決定する際にコンテンツ配置コンポーネント140によって使用され得る。オーディオコンテンツアイテム150のリスニングの数についてのカウンタを維持管理するために、コンバージョン検出コンポーネント142は、1つまたは複数の検出されたインタラクションイベントを事前定義されたインタラクションイベントのセットと比較することができる。インタラクションイベントのセットは、オーディオレコーディング148のコンテンツスポット148に挿入されたオーディオコンテンツアイテム150に対して事前定義することができる。インタラクションイベントのセットは、コンバージョンに対応するものとしてオーディオコンテンツアイテム150のためにコンテンツプロバイダ108によって指定することができ、コンバージョンに期待される1つまたは複数のイベントを含むことができる。たとえば、オーディオコンテンツアイテム150のインタラクションイベントのセットは、コンテンツプロバイダ108の名前を含む、クライアントデバイス104のマイク154を介した入力オーディオ信号の取得を含むことができる。
比較から、コンバージョン検出コンポーネント142は、検出されたインタラクションイベントがオーディオコンテンツアイテム150の事前定義されたインタラクションイベントと一致するかどうかを決定することができる。検出された相互作用イベントと事前定義された相互作用イベントとの間の一致という決定に応答して、コンバージョン検出コンポーネント142は、オーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツが聴取されていると決定することができる。さらに、コンバージョン検出コンポーネント142は、オーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数のカウンタを増分することができる。コンバージョン検出コンポーネント142はまた、オーディオコンテンツアイテム150自体のリスニングの数についてのカウンタを維持管理および更新することができる。一方、検出されたインタラクションイベントと事前定義されたインタラクションイベントとの間の一致の欠如という決定に応答して、コンバージョン検出コンポーネント142は、コンテンツスポット148に挿入された補足オーディオコンテンツがコンバージョンをもたらさなかったと決定することができる。さらに、コンバージョン検出コンポーネント142は、オーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数についてのカウンタの値を持続することができる。
測定された数に基づいて、コンバージョン検出コンポーネント142は、オーディオレコーディング146の予想されるリスニングの数、およびオーディオレコーディング146の各コンテンツスポット148に挿入された補足オーディオコンテンツの予想されるリスニングの数を計算または決定することができる。コンバージョン検出コンポーネント142は、オーディオレコーディング146の測定されたリスニングの数と、オーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツの測定されたリスニングの数とを識別するために、カウンタにアクセスすることができる。識別により、コンバージョン検出コンポーネント142は、予想されるリスニングの数を決定するために、回帰、再構成、傾向推定、または外挿などの任意の数の技法を適用することができる。たとえば、コンバージョン検出コンポーネント142は、オーディオレコーディング146(または、コンテンツスポット148のうちの1つにおける補足オーディオコンテンツ)の測定されたリスニングの数を経時的に識別することができる。コンバージョン検出コンポーネント142は、測定されたリスニングの数を特徴付けるための多項式関数を構築することができる。構築された関数にしたがって、コンバージョン検出コンポーネント142は、将来の時点でのオーディオレコーディング146の予想されるリスニングの数を決定することができる。
このようにして、オーディオレコーディング146とともに提示されるオーディオコンテンツアイテム150は、最初の要求を行ったクライアントデバイス104のデジタルアシスタントアプリケーション110のユーザとのより高い関連性を有することができる。関連性が高まると、オーディオコンテンツアイテム150に関連するその後のインタラクションの可能性が高まる可能性がある。さらに、デジタルアシスタントアプリケーション110への後続の音声コマンドが前の音声コマンドまたはオーディオレコーディング146と一致しない機会を低くすることができる。したがって、そのようなオーディオコンテンツアイテム150をオーディオレコーディング146に含めることにより、コンピューティングリソースを会話し、ネットワーク帯域幅を節約しながら、ユーザとクライアントデバイス104上のデジタルアシスタントアプリケーション110との間の人間のインタラクションを向上させることができる。
図2は、とりわけ、図1に示されるシステムにおいて補足オーディオコンテンツをプライマリオーディオコンテンツに挿入するための例示的なデータフロー200のシーケンス図を示している。データフロー200は、図1に関連して上記で説明したシステム100、または、図5に関連して以下に詳細に説明されるシステム500によって実装または実行することができる。データフロー200は、データ処理システム102、クライアントデバイス104、コンテンツパブリッシャ106、コンテンツプロバイダ108、スピーカ152、およびマイク154の間のパケット(たとえば、HTTPメッセージ)の形の通信を含むことができる。
クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、マイク156を介してオーディオ信号205を検出することができる。デジタルアシスタントアプリケーション110は、データパケット210(本明細書では、オーディオデータパケットと呼ばれることもある)を生成するために、オーディオ信号205に対して初期処理を実行することができる。データパケット210は、入力オーディオ信号205自体、あるいは自然言語処理技法を使用してオーディオ信号205から識別された1つまたは複数の文字列を含むことができる。クライアントデバイス104は、データパケット210を、データ処理システム102上のデジタルアシスタントアプリケーション110のリモートインスタンスに送信することができる。
一方、データ処理システム102は、コンテンツパブリッシャ106からオーディオファイル215を受信することができる。オーディオファイル215は、オーディオレコーディング146のインスタンスであり得、コンテンツパブリッシャ106によって生成されたプライマリオーディオコンテンツを含むことができる。オーディオファイル215は、補足オーディオコンテンツを挿入するための、オーディオファイル215のプライマリオーディオコンテンツ内の時間枠を定義するコンテンツスポットマーカとともに受信することができる。受信すると、データ処理システム102は、オーディオファイル215をデータリポジトリ144に記憶および維持管理することができる。
データ処理システム102上のデジタルアシスタントアプリケーション110のインスタンスは、クライアントデバイス104からデータパケット210を受信することができる。受信すると、デジタルアシスタントアプリケーション110は、1つまたは複数の語句を識別するために、データパケット210に含まれる入力オーディオ信号を解析することができる。識別により、デジタルアシスタントアプリケーション110は、語句がコンテンツパブリッシャ106のうちの1つからのオーディオコンテンツの要求に対応することを決定することができる。決定に応答して、デジタルアシスタントアプリケーション110は、指定されたコンテンツパブリッシャ106からオーディオファイル210を識別することができる。さらに、デジタルアシスタントアプリケーション110は、(たとえば、コンテンツ配置コンポーネント140を介して)コンテンツ配置プロセスを呼び出すことができる。
処理を実行する際に、データ処理システム102は、要求を行うクライアントデバイス104のコンテンツ選択パラメータを決定することができ、またオーディオファイル215内のコンテンツスポットのコンテンツスポットパラメータを決定することができる。データ処理システム102はまた、コンテンツ配置パラメータについて、フェッチ要求220をコンテンツプロバイダ108に送信することができる。受信すると、各コンテンツプロバイダ108は、値パラメータ225(本明細書では、コンテンツ提案パラメータと呼ばれることもある)を生成することができる。値パラメータ225は、対応するコンテンツプロバイダ108によるオーディオファイル215内のコンテンツスポット148の評価を示すことができる。生成されると、各コンテンツプロバイダ108は、値パラメータ225をデータ処理システム102に送信することができる。様々なパラメータを使用して、データ処理システム102は、コンテンツ配置プロセスにしたがってオーディオファイル215のコンテンツスポット148に含めるために、1つのオーディオコンテンツアイテム150を選択することができる。
オーディオコンテンツアイテム150を選択すると、データ処理システム102上のデジタルアシスタントアプリケーション110のインスタンスは、オーディオコンテンツアイテム150をオーディオファイル215のコンテンツスポット148に挿入することができる。デジタルアシスタントアプリケーション110はまた、コンテンツスポット148に挿入されたオーディオコンテンツアイテム150を有するオーディオファイル215をパッケージ化する、または含めるためのアクションデータ構造230を生成することができる。生成されると、データ処理システム102上のデジタルアシスタントアプリケーション110は、アクションデータ構造230をクライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスに送信することができる。オーディオファイル215の送信は、ストリームではなく、クライアントデバイス104へのダウンロードであり得る。次に、クライアントデバイス104上のデジタルアシスタントアプリケーション110は、挿入されたオーディオコンテンツアイテム150を有するオーディオファイル215を識別するために、アクションデータ構造230を受信および解析することができる。識別により、デジタルアシスタントアプリケーション110は、挿入されたオーディオコンテンツアイテム250を有するオーディオファイル215を、再生のためのオーディオ信号235に変換することができる。スピーカ152は、オーディオファイル215に含まれるプライマリおよび補足オーディオコンテンツを提示および再生するために、オーディオ信号235を出力することができる。
図3は、とりわけ、構成300の下のプライマリおよび補足オーディオコンテンツを提示する際に要求および応答メッセージを有する例示的なクライアントデバイス104を示している。構成300においては、クライアントデバイス104上で実行されているデジタルアシスタントアプリケーション110のインスタンスは、マイク154を介して入力オーディオ信号を受信することができる。NLPコンポーネント116は、入力オーディオ信号内の1つまたは複数の語句を認識するために、自然言語処理技法を使用することができる。デジタルアシスタントアプリケーション110は、自然言語処理技法の出力をテキストコンテンツアイテム305として表示することができる。テキストコンテンツアイテム305は、マイク154を介して取得された入力オーディオ信号から解析された「トークショーAからポッドキャストをダウンロードする」という語句を含むことができる。NLPコンポーネント116はまた、入力オーディオ信号から解析された語句がオーディオコンテンツの要求に対応することを認識するために、自然言語処理技法を使用することができる。NLPコンポーネント116は、要求に関連付けられるコンテンツパブリッシャ106(たとえば、「トークショーA」)を識別することができる。デジタルアシスタントアプリケーション110は、テキストコンテンツアイテム310を用いて、要求の実行の結果を表示することができる。テキストコンテンツアイテム310は、「トークショーAからの最新のポッドキャスト」という語句を含むことができ、またメディアプレーヤインターフェース315を含むことができる。メディアプレーヤインターフェース315は、たとえば、図示のように、とりわけ、一時停止ボタン、再生ボタン、および進行状況バーを含むことができる。
入力オーディオ信号に示される要求を満たす際に、NLPコンポーネント116は、データリポジトリ144からコンテンツパブリッシャ106に関連付けられるオーディオレコーディング146のうちの1つを識別することができる。オーディオレコーディング146は、プライマリオーディオコンテンツ320と、コンテンツスポット148を定義する少なくとも1つのコンテンツスポットマーカとを含むことができる。コンテンツスポット148は、補足オーディオコンテンツ325を挿入するための時間枠を定義することができる。補足オーディオコンテンツ325を挿入するために、コンテンツ配置コンポーネント140は、クライアントデバイス104のコンテンツ選択パラメータ、およびコンテンツスポット148のコンテンツスポットパラメータを決定することができる。さらに、コンテンツ配置コンポーネント140は、候補のオーディオコンテンツアイテム150に関連付けられる様々なコンテンツプロバイダ108からコンテンツ提案パラメータを収集することができる。コンテンツ配置コンポーネント140は、オーディオコンテンツスポット150のうちの1つを選択してコンテンツスポット148に挿入するために、パラメータのセットを使用してコンテンツ配置プロセスを起動することができる。挿入されると、データ処理システム102は、クライアントデバイス104にダウンロードし、クライアントデバイス104上のデジタルアシスタントアプリケーション110を介して再生するためのオーディオコンテンツアイテム150をオーディオレコーディング146に提供することができる。メディアプレーヤインターフェース315上の再生ボタンとのインタラクションを受信すると、デジタルアシスタントアプリケーション110は、オーディオコンテンツアイテム150を用いてオーディオレコーディング146を再生することができる。
図4は、とりわけ、デジタルアシスタントアプリケーションを介して補足オーディオコンテンツをプライマリオーディオコンテンツに挿入する例示的な方法400の流れ図を示している。方法500は、図1~図3に関連して上記で説明したシステム100、または図5に関連して以下に詳細に説明されるシステム500によって実装または実行することができる。方法400は、入力オーディオ信号を解析するステップ(405)を含むことができる。クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、マイク154を介して取得された入力オーディオ信号を受信することができる。デジタルアシスタントアプリケーション110は、初期処理を実行し、入力オーディオ信号をデータ処理システム102に送信するためにオーディオデータパケットにパッケージ化することができる。データ処理システム102上のデジタルアシスタントアプリケーション110のインスタンスは、クライアントデバイス104からオーディオデータパケットを受信することができる。NLPコンポーネント116は、入力オーディオ信号を識別するために、オーディオデータパケットを解析することができる。処理するために、NLPコンポーネント116は、入力オーディオ信号内の1つまたは複数の語句を識別するために自然言語処理を使用することができ、また、認識された語句に基づいて、入力オーディオ信号がオーディオコンテンツの要求に対応することを決定できる。
方法400は、オーディオレコーディング146を識別するステップ(410)を含むことができる。入力オーディオ信号がオーディオコンテンツの要求に対応するという決定に応答して、NLPコンポーネント116は、要求に関連付けられるコンテンツプロバイダ108を識別することができる。この識別により、NLPコンポーネント116は、要求に示されているコンテンツパブリッシャ106に属するオーディオレコーディング146を識別するために、データリポジトリ144にアクセスすることができる。データレポジトリは、レコードインデクサコンポーネント138によって維持管理することができ、様々なコンテンツパブリッシャ106からのオーディオレコーディング146を含むことができる。オーディオレコーディング146は、プライマリオーディオコンテンツと、補足オーディオコンテンツの挿入のためのコンテンツスポットマーカによって定義される少なくとも1つのコンテンツスポット148とを含むことができる。
方法400は、コンテンツ選択パラメータを識別するステップ(415)を含むことができる。データ処理システム102上のコンテンツ配置コンポーネント140は、入力オーディオ信号がコンテンツの要求に対応するとの決定に応答して、クライアントデバイス104のコンテンツスポットパラメータを決定することができる。コンテンツ配置コンポーネント140は、要求を行ったクライアントデバイス104上のデジタルアシスタントアプリケーション110に関連付けられる識別子136(たとえば、デバイス識別子、アカウント識別子、またはセッションまたはクッキー識別子)を識別することができる。コンテンツ配置コンポーネント140はまた、とりわけ、デバイス属性、アプリケーション属性、または特性などの、オーディオデータパケットに関連付けられるデータを識別することができる。コンテンツ配置コンポーネント140は、識別子136および関連付けられるデータをコンテンツ選択パラメータとして使用することができる。
方法400は、コンテンツスポットパラメータを決定するステップ(420)を含むことができる。コンテンツスポット148のうちの1つのコンテンツスポットパラメータを決定するために、コンテンツ配置コンポーネント140は、識別されたオーディオレコーディング146の多数のリスニングを識別することができる。コンテンツ配置コンポーネント140はまた、オーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数を識別することができる。リスニングの各回数は、カウンタを使用して測定したり、外挿を使用して推定したり、機械学習モデルを使用して予測したりすることができる。識別されると、コンテンツ配置コンポーネント140は、リスニングの数に基づいてコンテンツスポットパラメータを計算または決定することができる。
方法400は、オーディオコンテンツアイテム150を選択するステップを含むことができる(425)。コンテンツ選択パラメータおよびコンテンツスポットパラメータを使用して、コンテンツ配置コンポーネント140は、オーディオレコーディング146のコンテンツスポット148に挿入するために、オーディオコンテンツアイテム150のうちの1つを選択することができる。コンテンツ配置コンポーネント140はまた、オーディオコンテンツアイテム150を選択するために、コンテンツ配置プロセスを実行することができる。プロセスを実行する際に、コンテンツ配置コンポーネント140は、候補のオーディオコンテンツアイテム150のうちの1つに関連付けられる各コンテンツプロバイダ108からコンテンツ提案パラメータをフェッチすることができる。コンテンツ選択パラメータおよびコンテンツスポットパラメータに加えて、コンテンツ配置コンポーネント140はまた、挿入のためのオーディオコンテンツアイテム150を選択する際にコンテンツ提案パラメータを使用することができる。
方法400は、オーディオレコーディング146にオーディオコンテンツアイテム150を挿入するステップ(430)を含むことができる。デジタルアシスタントアプリケーション110のダイレクトアクションハンドラコンポーネント120は、選択されたオーディオコンテンツアイテム150をオーディオレコーディング146のコンテンツスポット148に挿入することができる。挿入するために、ダイレクトアクションハンドラコンポーネント120は、オーディオレコーディング146のコンテンツスポットマーカによって定義されたコンテンツスポット148を識別することができる。識別されると、ダイレクトアクションハンドラコンポーネント120は、選択されたオーディオコンテンツアイテム150をオーディオレコーディング146のコンテンツスポット148にオーバーレイまたは挿入することができる。ダイレクトアクションハンドラコンポーネント120はまた、オーディオコンテンツアイテム150のオーディオレコーディング146への挿入を容易にするために追加の信号処理技法を実行することができる。
方法400は、アクションデータ構造を送信するステップ(435)を含むことができる。ダイレクトアクションハンドラコンポーネント120は、挿入されたオーディオコンテンツアイテム150とともにオーディオレコーディング146を含むようにアクションデータ構造を生成することができる。アクションデータ構造の生成は、ハイパーテキスト転送プロトコル(HTTP)に準拠し、アクションデータ構造はHTTP応答の本文の一部として含まれる。生成されると、ダイレクトアクションハンドラコンポーネント120は、クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスにアクションデータ構造を送信または提供することができる。アクションデータ構造を提供する際、ダイレクトアクションハンドラコンポーネント120は、ストリーミングではなくダウンロードとして挿入されたオーディオコンテンツアイテム150をオーディオレコーディング146に提供することができる。受信すると、クライアントデバイス104上のデジタルアシスタントアプリケーション110のインスタンスは、挿入されたオーディオコンテンツアイテム150を用いてオーディオレコーディング146の再生を開始することができる。
方法400は、再生およびインタラクションを監視するステップを含むことができる(440)。データ処理システム102上のコンバージョン検出コンポーネント142は、アクションデータ構造の送信に続いて、インタラクションおよび再生を監視することができる。コンバージョン検出コンポーネント142は、監視するために、セッションクッキーの使用、またはデジタルアシスタントアプリケーション110用のアプリケーションプログラミングインターフェースを介したクライアントデバイス104へのアクセスなどの、任意の数の技法を使用することができる。検出されたインタラクションおよび再生を使用して、コンバージョン検出コンポーネント142は、オーディオレコーディング146のリスニングの数に関するカウンタを維持管理および更新することができる。コンバージョン検出コンポーネント142は、オーディオレコーディング146のコンテンツスポット148に挿入された補足オーディオコンテンツのリスニングの数のカウンタを維持管理および更新することができる。
図5は、例示的なコンピュータシステム500のブロック図である。コンピュータシステムまたはコンピューティングデバイス500は、システム100またはデータ処理システム102などのそのコンポーネントを実装するために含むこともでき、実装するために使用することもできる。コンピューティングシステム500はまた、情報を処理するためにバスに結合された1つまたは複数のプロセッサ510または処理回路を含むことができる。コンピューティングシステム500はまた、プロセッサ510によって実行される情報および命令を記憶するためにバス505に結合された、ランダムアクセスメモリ(RAM)または他の動的ストレージデバイスなどのメインメモリ515を含む。メインメモリ515は、データリポジトリ124または144であってもよく、それを含んでもよい。メインメモリ515はまた、プロセッサ510による命令の実行中に位置情報、一時変数、または他の中間情報を記憶するために使用することができる。コンピューティングシステム500は、プロセッサ510に対する静的情報および命令を記憶するためにバス505に結合された読取り専用メモリ(ROM)520または他の静的ストレージデバイスをさらに含み得る。情報および命令を永続的に記憶するために、ソリッドステートデバイス、磁気ディスクまたは光ディスクなどのストレージデバイス525を、バス505に結合することができる。ストレージデバイス525は、データリポジトリ124または144を含んでもよく、その一部であってもよい。
コンピューティングシステム500は、バス505を介して、ユーザに情報を表示するための液晶ディスプレイまたはアクティブマトリクスディスプレイなどのディスプレイ535に結合され得る。英数字および他のキーを含むキーボードなどの入力デバイス530は、情報およびコマンド選択をプロセッサ510に通信するためにバス505に結合され得る。入力デバイス530は、タッチスクリーンディスプレイ535を含み得る。入力デバイス530はまた、方向情報およびコマンド選択をプロセッサ510に通信し、ディスプレイ535上のカーソル移動を制御するための、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御を含むことができる。たとえば、ディスプレイ535は、データ処理システム102、クライアントデバイス104、または図1の他のコンポーネントの一部であり得る。
本明細書で説明されるプロセス、システム、および方法は、メインメモリ515に含まれる命令の配列を実行するプロセッサ510に応答して、コンピューティングシステム500によって実装することができる。そのような命令は、ストレージデバイス525などの別のコンピュータ可読媒体からメインメモリ515に読み込むことができる。メインメモリ515に含まれる命令の配置の実行により、コンピューティングシステム500に、本明細書で説明する例示的なプロセスを実行させる。メインメモリ515に含まれる命令を実行するために、マルチプロセッシング配置における1つまたは複数のプロセッサが使用され得る。本明細書に記載のシステムおよび方法とともにソフトウェア命令の代わりに、またはそれと組み合わせて、ハードワイヤード回路を使用することができる。本明細書で説明するシステムおよび方法は、ハードウェア回路とソフトウェアの特定の組合せに限定されない。
例示的なコンピューティングシステムが図5に記載されているが、本明細書に記載されている動作を含む主題を、本明細書に開示されている構造およびそれらの構造的等価物、あるいはそれらの1つまたは複数の組合せを含む他のタイプのデジタル電子回路またはコンピュータソフトウェア、ファームウェア、またはハードウェアにおいて実装することができる。
本明細書で説明するシステムがユーザに関する個人情報を収集する、または個人情報を利用し得る状況では、ユーザは、個人情報(たとえば、ユーザのソーシャルネットワーク、ソーシャルアクション、またはアクティビティに関する情報、ユーザの好み、またはユーザの位置)を収集し得るプログラムまたは機能を制御するための、あるいは、コンテンツサーバまたはユーザにより関連している可能性がある他のデータ処理システムからコンテンツを受信するかどうか、またはどのように受信するかを制御するための機会を提供され得る。さらに、特定のデータは、記憶または使用される前に1つまたは複数の方法で匿名化され得るため、パラメータを生成する際に個人を特定できる情報が削除される。たとえば、ユーザが個人を特定できる情報を決定できないようにユーザの個人情報を匿名化してもよく、ユーザの特定の位置を決定することができないように、位置情報が取得されるユーザの地理的位置(都市、郵便番号、州レベルなど)が一般化されてもよい。したがって、ユーザは、自分に関する情報がどのように収集され、コンテンツサーバによってどのように使用されるかを制御し得る。
本明細書で説明される主題および動作は、本明細書で開示される構造およびそれらの構造的等価物を含むデジタル電子回路またはコンピュータソフトウェア、ファームウェア、またはハードウェア、あるいはそれらの1つまたは複数の組合せにおいて実装することができる。本明細書で説明される主題は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するために1つまたは複数のコンピュータストレージ媒体上に符号化される1つまたは複数のコンピュータプログラム、たとえばコンピュータプログラム命令の1つまたは複数の回路として実装することができる。あるいは、またはさらに、プログラム命令は、人工的に生成された伝播信号、たとえば、データ処理装置による実行のために適切な受信装置への送信のための情報を符号化するために生成される機械生成電気、光学、または電磁信号に符号化され得る。コンピュータストレージ媒体は、コンピュータ可読記憶デバイス、コンピュータ可読ストレージ基板、ランダムまたはシリアルアクセスメモリアレイまたはデバイス、あるいはそれらの1つまたは複数の組合せであってもよく、それらに含まれてもよい。コンピュータストレージ媒体は伝播信号ではないが、コンピュータストレージ媒体は、人工的に生成された伝播信号において符号化されたコンピュータプログラム命令のソースまたは宛先であり得る。コンピュータストレージ媒体はまた、1つまたは複数の別個のコンポーネントあるいは媒体(たとえば、複数のCD、ディスク、または他のストレージデバイス)であってもよく、それらに含まれてもよい。本明細書に記載されている動作を、1つまたは複数のコンピュータ可読ストレージデバイスに記憶された、または他のソースから受信したデータに対してデータ処理装置によって実行される動作として実装することができる。
「データ処理システム」、「コンピューティングデバイス」、「コンポーネント」、または「データ処理装置」という用語は、例として、プログラム可能なプロセッサ、コンピュータ、システムオンチップ、または複数のシステム、あるいはこれらの組合せを含む、データを処理するための様々な装置、デバイス、および機械を包含する。装置は、たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路を含むことができる。装置はまた、ハードウェアに加えて、問題のコンピュータプログラムの実行環境を作成するコード、たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらの1つまたは複数の組合せを構成するコードを含むこともできる。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラストラクチャなどの、様々なコンピューティングモデルインフラストラクチャを実現することができる。システム100のコンポーネントは、1つまたは複数のデータ処理装置、システム、コンピューティングデバイス、またはプロセッサを含むか、または共有することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られる)を、コンパイラ型言語またはインタープリタ型言語、宣言型言語または手続き型言語を含む任意の形式のプログラミング言語で記述することができ、スタンドアロンプログラムとして、あるいはモジュール、コンポーネント、サブルーチン、オブジェクト、またはコンピューティング環境における使用に適した他のユニットとしてなどを含む任意の形式で展開することができる。コンピュータプログラムは、ファイルシステム内のファイルに対応することができる。コンピュータプログラムは、他のプログラムまたはデータを保持するファイルの一部(たとえば、マークアップ言語ドキュメントに記憶された1つまたは複数のスクリプト)、問題のプログラム専用の単一ファイル、または複数の調整ファイル(たとえば、1つまたは複数のモジュール、サブプログラム、あるいはコードの一部を記憶するファイル)に記憶することができる。コンピュータプログラムは、1台のコンピュータ、または1つのサイトに配置されているか、複数のサイトに分散され、通信ネットワークによって相互接続されている複数のコンピュータ上で実行されるように展開することができる。
本明細書で説明するプロセスおよび論理フローは、入力データを動作して出力を生成することによってアクションを実行するために、1つまたは複数のコンピュータプログラム(たとえば、データ処理システム102のコンポーネント)を実行する1つまたは複数のプログラマブルプロセッサによって実行することができる。プロセスおよび論理フローをまた、たとえばFPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)などの専用論理回路によって実行することもでき、それらとして実装することもできる。コンピュータプログラム命令およびデータを記憶するために適したデバイスは、例として、たとえば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、たとえば内蔵ハードディスクまたはリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む、あらゆる形態の不揮発性メモリ、媒体およびメモリデバイスを含む。プロセッサとメモリは、専用論理回路によって補完されてもよく、組み込まれてもよい。
本明細書で説明する主題は、たとえばデータサーバとしてのバックエンドコンポーネントを含むか、アプリケーションサーバなどのミドルウェアコンポーネントを含むか、たとえば、ユーザが本明細書に記載されている主題の実装形態とインタラクションすることができるグラフィカルユーザインターフェースまたはウェブブラウザを備えた、たとえばクライアントコンピュータなどのフロントエンドコンポーネントを含むコンピューティングシステム、あるいは1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの組合せにおいて実装することができる。システムのコンポーネントを、任意の形式または媒体のデジタルデータ通信、たとえば通信ネットワークによって相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ピアツーピアネットワーク(たとえば、アドホックピアツーピアネットワーク)を含む。
システム100またはシステム500などのコンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に、互いに離れており、通常、通信ネットワーク(たとえば、ネットワーク112)を介して相互作用する。クライアントとサーバとの関係は、それぞれのコンピュータ上で起動され、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。いくつかの実装形態では、サーバは、データ(たとえば、コンテンツアイテムを表すデータパケット)をクライアントデバイスに送信する(たとえば、クライアントデバイスとインタラクションするユーザにデータを表示し、ユーザからのユーザ入力を受信するため)。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザインタラクションの結果)は、サーバにおいてクライアントデバイスから受信することができる(たとえば、クライアントデバイス104からデータ処理システム102によって受信される)。
動作は図面に特定の順序で示されているが、そのような動作は、示された特定の順序または連続した順序で実行される必要はなく、すべての例示された動作が実行される必要はない。本明細書で説明するアクションは、異なる順序で実行することができる。
様々なシステムコンポーネントの分離は、すべての実装形態において分離する必要はなく、説明されているプログラムコンポーネントは、単一のハードウェアまたはソフトウェア製品に含めることができる。たとえば、NLPコンポーネント116およびダイレクトアクションハンドラコンポーネント120は、単一のコンポーネント、アプリ、またはプログラム、あるいは1つまたは複数の処理回路を有する論理デバイス、あるいはデータ処理システム102の1つまたは複数のサーバの一部であり得る。
本明細書でいくつかの例示的な実装形態について説明したが、前述のことは例示的であって限定的ではなく、例として提示されたことは明らかである。具体的には、本明細書に提示される例の多くは、方法の行為またはシステム要素の特定の組合せを伴うが、それらの行為およびそれらの要素を、同じ目的を達成するために他の方法で組み合わせることができる。1つの実装形態に関連して説明されている行為、要素、および機能は、他の実装形態における同様の役割から除外されることが意図されるものではない。
本明細書で使用される表現および用語は、説明を目的とするものであり、限定するものと見なされるべきではない。本明細書における「含む」、「備える」、「有する」、「含む」、「関与する」、「~によって特徴付けられる」、「~の点で特徴付けられる」、およびそれらの変形は、その後に列挙されるアイテム、それらの均等物、および追加のアイテム、ならびにその後に排他的に列挙されたアイテムで構成される代替実装形態を包含することを意味する。一実装形態では、本明細書で説明されるシステムおよび方法は、説明される要素、行為、またはコンポーネントのうちの1つ、2つ以上の各組合せ、またはすべてで構成される。
本明細書で、単数で言及されるシステムおよび方法の実装形態、要素、または行為へのあらゆる言及はまた、これらの複数の要素を含む実装形態を包含することもでき、本明細書での任意の実装形態、要素、または行為への複数での言及も、単一の要素のみを含む実装形態を包含し得る。単数形または複数形での参照は、現在開示されているシステムまたは方法、それらのコンポーネント、行為、または要素を単一または複数の構成に限定することが意図されるものではない。情報、行為、または要素に基づく行為または要素への参照は、行為または要素が少なくとも部分的に任意の情報、行為、または要素に基づく実装形態を含み得る。
本明細書で開示される任意の実装形態は、任意の他の実装形態または実施形態と組み合わされてよく、「ある実装形態」、「いくつかの実装形態」、「一実装形態」などへの任意の参照は、必ずしも相互に排他的ではなく、実装形態に関連して説明された特定の機能、構造、または特性が少なくとも1つの実装形態または実施形態に含まれ得ることを示すことが意図される。本明細書で使用されるそのような用語は、必ずしもすべて同じ実装形態を参照するとは限らない。本明細書に開示される態様および実装形態と一致する任意の方法で、任意の実装形態を、包括的または排他的に、任意の他の実装形態と組み合わせることができる。
「または」への参照は、「または」を使用して説明される任意の用語が、説明された用語の1つ、複数、およびすべてのいずれかを示し得るように、包括的であると解釈され得る。用語の連言リストの少なくとも1つへの参照は、記述された用語の1つ、複数、およびすべてのいずれかを示す包括的ORとして解釈され得る。たとえば、「「A」と「B」の少なくとも1つ」への参照は、「A」のみ、「B」のみ、ならびに「A」と「B」の両方を含めることができる。「備える」または他のオープンな用語と組み合わせて使用されるそのような参照は、追加のアイテムを含むことができる。
図面、詳細な説明、または任意の請求項における技術的特徴の後に参照符号が付いている場合、参照符号は、図面、詳細な説明、および請求項の明瞭度を高めるために含まれている。したがって、参照記号もそれらの欠如も、請求項の要素の範囲に限定的な影響を与えることはない。
本明細書で説明されるシステムおよび方法は、それらの特性から逸脱することなしに、他の特定の形態で実施され得る。前述の実装形態は、説明されたシステムおよび方法を限定するものではなく、例示である。したがって、本明細書で説明されるシステムおよび方法の範囲は、前述の説明ではなく、添付の特許請求の範囲によって示され、特許請求の範囲の意味および同等の範囲内に入る変更がその中に含まれる。