(57)【要約】      （修正有）【課題】パケットベースのデータメッセージ伝送のシーケンス依存オペレーションの処理を提供する。【解決手段】システムシステム１００において、自然言語プロセッサコンポーネント１１０は、要求およびトリガキーワードを識別するために入力オーディオ信号をパースし、予測コンポーネント１２０は、トリガキーワードおよび要求に基づいてスレッドを決定する。スレッドは、第1、第2、第3のアクションを含む。コンテンツ選択コンポーネントは、第3のアクションおよびトリガキーワードに基づいて、コンテンツアイテムを選択する。オーディオ信号ジェネレータコンポーネント１３０は、コンテンツアイテムを含む出力信号を生成する。インターフェース１１５は、出力信号を送信して、クライアントコンピュータデバイスにスピーカを駆動して第1のアクションおよび第2のアクションのうちの少なくとも1つの発生の前に出力信号に対応する音波を生成させる。【選択図】図１
2020038691.tif 000002
【特許請求の範囲】
【請求項１】
音声起動データパケットベースコンピュータネットワーク環境におけるシーケンス依存オペレーションを処理する、システムであって、
クライアントコンピュータデバイスのセンサによって検出される入力オーディオ信号を含む入力データパケットを受信する、データ処理システムによって実行される、自然言語プロセッサコンポーネントと、
前記入力オーディオ信号をパースしてキーワードを識別する、前記自然言語プロセッサコンポーネントと、
前記キーワードに基づいてスレッドを決定する、予測コンポーネントであって、前記スレッドは、第1のアクション、前記第1のアクションの後に続く第2のアクション、および前記第2のアクションの後に続く第3のアクションを含み、
前記データ処理システムのコンテンツ選択コンポーネントに、前記第1のアクションおよび前記第2のアクションのうちの少なくとも1つの発生の前に前記第3のアクションの指示を提供する、予測コンポーネントと、
前記第3のアクションの指示に基づいて、または、前記自然言語プロセッサコンポーネントによって識別された前記キーワードに基づいて、コンテンツアイテムを識別する、前記コンテンツ選択コンポーネントと、
前記コンテンツアイテムを含むデータパケットを送信して、前記クライアントコンピュータデバイスに前記コンテンツアイテムを提示させる、前記データ処理システムのインターフェースとを含む、システム。
【請求項２】
リアルタイムコンテンツ選択プロセスを介して前記コンテンツアイテムを識別する、前記コンテンツ選択コンポーネントを含む、請求項1に記載のシステム。
【請求項３】
前記入力オーディオ信号をパースして要求および前記要求に対応するトリガキーワードを識別する、前記自然言語プロセッサコンポーネントを含む、請求項1に記載のシステム。
【請求項４】
前記コンテンツアイテムを含む出力信号を生成し、
前記出力信号を送信して、前記クライアントコンピュータデバイスによって実行されるオーディオドライバコンポーネントに前記クライアントコンピュータデバイスのスピーカを駆動して前記第1のアクションおよび前記第2のアクションのうちの少なくとも1つの発生の前に前記出力信号に対応する音波を生成させる、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項５】
前記第1のアクションの発生の後に第2のコンテンツアイテムを識別し、
前記第2のコンテンツアイテムを送信して、前記クライアントコンピュータデバイスに前記第3のアクションの発生の前に前記第2のコンテンツアイテムを提示させる、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項６】
前記コンテンツアイテムを含む出力信号を生成し、
前記出力信号を含む前記データパケットを送信して、前記クライアントコンピュータデバイスによって実行されるオーディオドライバコンポーネントに前記クライアントコンピュータデバイスのスピーカを駆動して前記第1のアクションの発生の後かつ前記第2のアクションの発生の前に前記出力信号に対応する音波を生成させる、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項７】
前記クライアントコンピュータデバイスから、前記第1のアクションまたは前記第2のアクションのうちの少なくとも1つの発生の前に前記コンテンツアイテムに対する応答を含むデータメッセージを受信する、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項８】
前記第1のアクションの完了の時間および前記第2のアクションの完了の時間のうちの1つに基づいて前記第3のアクションを開始する、前記データ処理システムを含む、請求項1に記載のシステム。
【請求項９】
前記第1のアクションおよび前記第2のアクションのうちの少なくとも1つの完了の後に前記第3のアクションを開始する、前記データ処理システムのダイレクトアクションアプリケーションプログラミングインターフェースを含む、請求項1に記載のシステム。
【請求項１０】
音声起動データパケットベースコンピュータネットワーク環境におけるシーケンス依存オペレーションを拡張する、システムであって、
クライアントコンピュータデバイスのセンサによって検出される入力オーディオ信号を含む入力データパケットを受信する、データ処理システムによって実行される、自然言語プロセッサコンポーネントと、
前記入力オーディオ信号をパースして要求および前記要求に対応するトリガキーワードを識別する、前記自然言語プロセッサコンポーネントと、
前記トリガキーワードおよび前記要求に基づいてスレッドを決定する、前記データ処理システムであって、前記スレッドは、第1のアクション、前記第1のアクションの後に続く第2のアクション、および前記第2のアクションの後に続く第3のアクションを含む、前記データ処理システムと、
前記スレッドに対応するコンテンツアイテムを含む出力信号を生成する、前記データ処理システムによって実行されるオーディオ信号ジェネレータコンポーネントと、
前記オーディオ信号ジェネレータコンポーネントによって生成された前記出力信号を含むデータパケットを送信して、前記クライアントコンピュータデバイスによって実行されるオーディオドライバコンポーネントに前記クライアントコンピュータデバイスのスピーカを駆動して前記第1のアクション、前記第2のアクション、または前記第3のアクションのうちの少なくとも1つの発生の前に前記出力信号に対応する音波を生成させる、前記データ処理システムのインターフェースとを含む、システム。
【請求項１１】
リアルタイムコンテンツ選択プロセスを介して前記コンテンツアイテムを識別する、コンテンツ選択コンポーネントを含む、請求項10に記載のシステム。
【請求項１２】
前記第1のアクションの発生の後に第2のコンテンツアイテムを識別し、
前記第2のコンテンツアイテムを送信して、前記クライアントコンピュータデバイスに前記第3のアクションの発生の前に前記第2のコンテンツアイテムを提示させる、前記データ処理システムを含む、請求項10に記載のシステム。
【請求項１３】
前記出力信号を含む前記データパケットを送信して、前記クライアントコンピュータデバイスによって実行される前記オーディオドライバコンポーネントに前記クライアントコンピュータデバイスの前記スピーカを駆動して前記第1のアクションの発生の後かつ前記第2のアクションの発生の前に前記出力信号に対応する前記音波を生成させる、前記データ処理システムを含む、請求項10に記載のシステム。
【請求項１４】
前記クライアントコンピュータデバイスから、前記第1のアクションまたは前記第2のアクションのうちの少なくとも1つの発生の前に前記コンテンツアイテムに対する応答を含むデータメッセージを受信する、前記データ処理システムを含む、請求項10に記載のシステム。
【請求項１５】
前記第1のアクションの完了の時間および前記第2のアクションの完了の時間のうちの1つに基づいて前記第3のアクションを開始する、前記データ処理システムを含む、請求項10に記載のシステム。
【請求項１６】
前記第1のアクションおよび前記第2のアクションのうちの少なくとも1つの完了の後に前記第3のアクションを開始する、前記データ処理システムのダイレクトアクションアプリケーションプログラミングインターフェースを含む、請求項10に記載のシステム。
【請求項１７】
前記第3のアクションに対応するアクティビティを開始して、その後、前記第2のアクションに対応するアクティビティを開始する、前記データ処理システムのダイレクトアクションアプリケーションプログラミングインターフェースを含む、請求項10に記載のシステム。
【請求項１８】
前記第1のアクションに関して、第2のリアルタイムコンテンツ選択プロセスを介して第2のコンテンツアイテムを選択するとともに、前記第2のアクションに関して、第3のリアルタイム選択プロセスを介して第3のコンテンツアイテムを選択する、前記データ処理システムを含む、請求項10に記載のシステム。
【請求項１９】
音声起動データパケットベースコンピュータネットワーク環境における処理シーケンス依存オペレーションの方法であって、
1つまたは複数のプロセッサおよびメモリを含むデータ処理システムによって、クライアントコンピュータデバイスのセンサによって検出される入力オーディオ信号を含むデータパケットを受信するステップと、
前記データ処理システムによって、前記入力オーディオ信号をパースしてキーワードを識別するステップと、
前記データ処理システムによって、前記キーワードに基づいてスレッドを決定するステップであって、前記スレッドは、第1のアクション、前記第1のアクションの後に続く第2のアクション、および前記第2のアクションの後に続く第3のアクションを含む、ステップと、
前記データ処理システムによって、前記第1のアクションおよび前記第2のアクションのうちの少なくとも1つの発生の前に前記第3のアクションの指示を提供するステップと、
前記データ処理システムによって、前記第3のアクションの指示に基づいて、または、前記データ処理システムによって識別された前記キーワードに基づいて、コンテンツアイテムを識別するステップと、
前記データ処理システムによって、前記コンテンツアイテムを含むデータパケットを送信して、前記クライアントコンピュータデバイスに前記コンテンツアイテムを提示させるステップとを含む、方法。
【請求項２０】
リアルタイムコンテンツ選択プロセスを介して前記コンテンツアイテムを識別するステップを含む、請求項19に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、すべての目的に関してその全体が参照により組み込まれている、「SEQUENCE DEPENDENT OPERATION PROCESSING OF PACKET BASED DATA MESSAGE TRANSMISSIONS」と題する、2016年12月30日に出願された、米国特許出願第15/395,682号に対する利益および優先権を主張する。
【背景技術】
【０００２】
コンピュータデバイス間のネットワークトラフィックデータの、パケットベースのまたは別の方法による、過度なネットワーク伝送は、コンピュータデバイスがネットワークトラフィックデータを適切に処理する、ネットワークトラフィックデータに関連するオペレーションを完了する、または、ネットワークトラフィックデータに適時に応答する、妨げとなり得る。ネットワークトラフィックデータの過度なネットワーク伝送はまた、データルーティングを複雑にし得る、または、応答処理中のコンピュータデバイスがその処理容量に達したもしくは超過した場合に応答の品質を低下させ得るため、非効率な帯域幅利用という結果になり得る。コンテンツアイテムオブジェクトに対応するネットワーク伝送の制御が、コンピュータデバイス間のネットワークトラフィックデータのネットワーク伝送を開始し得る多数のコンテンツアイテムオブジェクトによって複雑なものとなり得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
少なくとも1つの態様は、音声起動データパケットベースコンピュータネットワーク環境におけるシーケンス依存オペレーションの処理を最適化する、システムを目的としている。データ処理システムによって実行される自然言語プロセッサコンポーネントは、データパケットを受信し得る。データパケットは、クライアントコンピュータデバイスのセンサによって検出される入力オーディオ信号を含み得る。自然言語プロセッサコンポーネントは、入力オーディオ信号をパースして要求および要求に対応するトリガキーワードを識別し得る。予測コンポーネントは、トリガキーワードおよび要求に基づいてスレッドを決定し得る。スレッドは、第1のアクション、第1のアクションの後に続く第2のアクション、および第2のアクションの後に続く第3のアクションを含み得る。予測コンポーネントは、データ処理システムのコンテンツ選択コンポーネントに、第1のアクションおよび第2のアクションのうちの少なくとも1つの発生の前に第3のアクションの指示を提供し得る。コンテンツ選択コンポーネントは、第3のアクションおよび自然言語プロセッサによって識別されたトリガキーワードに基づいて、リアルタイムコンテンツ選択プロセスを介してコンテンツアイテムを選択し得る。データ処理システムによって実行されるオーディオ信号ジェネレータコンポーネントは、コンテンツアイテムを含む出力信号を生成し得る。データ処理システムのインターフェースは、オーディオ信号ジェネレータコンポーネントによって生成された出力信号を含むデータパケットを送信して、クライアントコンピュータデバイスによって実行されるオーディオドライバコンポーネントに、クライアントコンピュータデバイスのスピーカを駆動して第1のアクションおよび第2のアクションのうちの少なくとも1つの発生の前に出力信号に対応する音波を生成させ得る。
【０００４】
少なくとも1つの態様は、音声起動データパケットベースコンピュータネットワーク環境におけるシーケンス依存オペレーションのためのアクションを起動する方法を目的としている。方法は、データ処理システムによって実行される自然言語プロセッサコンポーネントによって、クライアントコンピュータデバイスのセンサによって検出される入力オーディオ信号を含むデータパケットを受信するステップを含む。方法は、自然言語プロセッサコンポーネントによって、入力オーディオ信号に基づいて、要求および要求に対応するトリガキーワードを識別するステップを含む。方法は、予測コンポーネントによって、トリガキーワードおよび要求に基づいてスレッドを決定するステップを含む。スレッドは、第1のアクション、第1のアクションの後に続く第2のアクション、および第2のアクションの後に続く第3のアクションを含み得る。方法は、予測コンポーネントによって、データ処理システムのコンテンツ選択コンポーネントに、第1のアクションおよび第2のアクションのうちの少なくとも1つの発生の前に第3のアクションの指示を提供するステップを含み得る。方法は、コンテンツ選択コンポーネントによって、第3のアクションおよび自然言語プロセッサによって識別されたトリガキーワードに基づいて、リアルタイムコンテンツ選択プロセスを介してコンテンツアイテムを選択するステップを含み得る。方法は、データ処理システムによって実行されるオーディオ信号ジェネレータコンポーネントによって、コンテンツアイテムを含む出力信号を取得するステップを含み得る。方法は、データ処理システムのインターフェースを介して、オーディオ信号ジェネレータコンポーネントによって取得された出力信号を含むデータパケットを送信して、クライアントコンピュータデバイスおよび第2のクライアントコンピュータデバイスのうちの少なくとも1つによって実行されるオーディオドライバコンポーネントにクライアントコンピュータデバイスのスピーカを駆動して第1のアクションおよび第2のアクションのうちの少なくとも1つの発生の前に出力信号に対応する音波を生成させるステップを含み得る。
【０００５】
少なくとも1つの態様は、1つまたは複数のデータプロセッサによって実行されると、1つまたは複数のデータプロセッサに音声起動データパケットベースコンピュータネットワーク環境におけるシーケンス依存オペレーションを選択するように動作を行わせる命令を記憶するコンピュータ可読記憶媒体を目的としている。オペレーションは、データ処理システムによって実行される自然言語プロセッサコンポーネントによって、クライアントコンピュータデバイスのセンサによって検出される入力オーディオ信号を含むデータパケットを受信し得る。オペレーションは、自然言語プロセッサコンポーネントによって、入力オーディオ信号に基づいて、要求および要求に対応するトリガキーワードを識別し得る。オペレーションは、予測コンポーネントによって、トリガキーワードおよび要求に基づいてスレッドを選択し得る。スレッドは、第1のアクション、第1のアクションの後に続く第2のアクション、および第2のアクションの後に続く第3のアクションを含み得る。オペレーションは、予測コンポーネントによって、データ処理システムのコンテンツ選択コンポーネントに、第1のアクションおよび第2のアクションのうちの少なくとも1つの発生の前に第3のアクションの指示を提供し得る。オペレーションは、コンテンツ選択コンポーネントによって、第3のアクションおよび自然言語プロセッサによって識別されたトリガキーワードに基づいて、リアルタイムコンテンツ選択プロセスを介してコンテンツアイテムを選択し得る。オペレーションは、データ処理システムによって実行されるオーディオ信号ジェネレータコンポーネントによって、コンテンツアイテムを含む出力信号を生成し得る。オペレーションは、データ処理システムのインターフェースを介して、オーディオ信号ジェネレータコンポーネントによって生成された出力信号を含むデータパケットを送信して、クライアントコンピュータデバイスによって実行されるオーディオドライバコンポーネントに、クライアントコンピュータデバイスのスピーカを駆動して第1のアクションおよび第2のアクションのうちの少なくとも1つの発生の前に出力信号に対応する音波を生成させ得る。
【０００６】
これらおよび他の態様および実施形態を以下に詳細に説明する。前述の情報および以下の詳細な説明は、様々な態様および実施形態の事例的な例示を含むものであり、主張した態様および実施形態の特質および特徴を理解するために概要またはフレームワークを提供している。図面は、図ならびに様々な態様および実施形態の更なる理解を提供しており、本明細書の一部に組み込まれるとともにその一部を構成する。
【０００７】
添付の図面は、縮尺どおりに描画することを意図していない。様々な図面中の類似の参照番号および記号表示は類似の要素を示す。明瞭にすることを目的として、すべての図面において必ずしもすべての構成要素に符号を付けていない。
【図面の簡単な説明】
【０００８】
【図１】音声起動コンピュータネットワーク環境におけるシーケンス依存オペレーションの処理を最適化するシステムの図である。
【図２】シーケンス依存アクションを含むスレッドの機能図である。
【図３】音声起動データパケットベースコンピュータネットワーク環境におけるシーケンス依存オペレーションのためのアクションを起動する方法の図である。
【図４】本明細書に説明および図示したシステムの要素および方法を実施するために使用され得るコンピュータシステムのための一般的なアーキテクチャを図示するブロック図である。
【発明を実施するための形態】
【０００９】
以下の記載は、音声起動コンピュータネットワーク環境におけるシーケンス依存オペレーションの処理を最適化する方法、装置、およびシステムの実施形態に関する様々な概念のより詳細な説明である。上記において軽く触れ以下でより詳細に説明をしている様々な概念を任意の多数の方法で実施してもよい。
【００１０】
本開示のシステムおよび方法は、概して、音声起動コンピュータネットワーク環境におけるデータパケットベースの伝送を介した処理シーケンス依存オペレーションのオーダーの最適化または動的な調整をするデータ処理システムに関連する。データ処理システムは、複数のシーケンス依存オペレーションからあるオペレーションを、例えば、非同期的に、順不同に、または動的に選択することによって、1つまたは複数のコンピュータネットワークを介したデータパケット伝送の効率および有効性を改善することを可能としている。選択されたオペレーションに対応する信号に基づくデータパケットまたは他のプロトコルは、複数のコンピュータデバイス間をコンピュータネットワークを介してルーティングされ得る。データ処理システムは、シーケンス依存オペレーションのセットのうちの始段のオペレーションを一時的にまたは恒久的にスキップし、その代わりに、後段または終段のオペレーションに対応するオペレーションを開始し得る。複数のシーケンス依存オペレーションの前段のオペレーションに対応するデータ伝送に基づくパケットまたは他のプロトコルをバイパスし、その代わりに、一連のオペレーションにおける後段のオペレーションに関するデータ伝送に基づくパケットを直ちに開始することによって、データ処理システムは、前段のオペレーションに関連付けられたデータ処理を低減、後回し、除去し得る。このことは、処理電力およびメモリなどの他のコンピューティングリソースを節約し、データ処理システムによる電力の消費量を低減しており、コンピュータネットワークを介したデータ伝送の低減は、帯域幅要件およびデータ処理システムの使用量を低減することになる。
【００１１】
本明細書に記載のシステムおよび方法は、入力オーディオクエリを受信するデータ処理システムを含み得る。入力オーディオクエリから、データ処理システムは、要求および要求に対応するトリガキーワードを識別し得る。トリガキーワードまたは要求に基づいて、データ処理システムは、複数のシーケンス依存オペレーションを示すスレッドを決定し得る。例えば、スレッドは、第1のアクション、第1のアクションの後に続く第2のアクション、第2のアクションの後に続く第3のアクションを示し得る。本例では、シーケンス依存オペレーションのスレッド内の最終アクションである、第3のアクションが、第1のアクションの発生の前におよび第2のアクションの発生の前にコンテンツアイテムを選択するためにデータ処理システムによって使用され得る。このことは、第1のアクションまたは第2のアクションに基づいたデータ処理オペレーションの少なくとも一部を行う前または行うことなく完了し得る。これらの処理オペレーションのバイパス処理は、第3のアクションに関するコンテンツアイテムがより少ないデータ処理で選択されるようにするともに、バイパスをしないケースと比べてより少ない電力の使用量をもたらす。
【００１２】
コンテンツアイテムは、出力信号を含み得る。データ処理システムは、クライアントコンピュータデバイスにコンピュータネットワークを介してパケットまたは他のプロトコルベースのデータメッセージ伝送による出力信号を含むコンテンツアイテムを提供し得る。出力信号は、クライアントコンピュータデバイスのオーディオドライバコンポーネントに、クライアントコンピュータデバイスから出力され得る、音波、例えば、オーディオ出力を生成させ得る。オーディオ出力は、第3の(例えば、最終またはある時間における最新の)アクションに対応し、第1のアクションの発生の前にまたは第2のアクションの発生の前にクライアントコンピュータデバイスから出力され得る。第1および第2のシーケンス依存アクションの発生の前に第3のアクションに対応するコンテンツアイテムをまず選択および送信する、第1および第2のアクションのバイパス処理(または、これらのアクションに対応するコンテンツアイテムの選択および提供のバイパス処理)は、バイパスをしないケースと比べて、より少ないデータ処理オペレーション、より少ないメモリ使用量、およびより少ないネットワーク帯域幅利用をもたらす。
【００１３】
図1は、音声起動データパケット(または他のプロトコル)ベースコンピュータネットワーク環境におけるシーケンス依存オペレーションの処理を最適化する、例示的なシステム100を図示している。システム100は、少なくとも1つのデータ処理システム105を含み得る。データ処理システム105は、少なくとも1つのプロセッサを有する少なくとも1つのサーバを含み得る。例えば、データ処理システム105は、少なくとも1つのデータセンタまたはサーバファームに設置された複数のサーバを含み得る。データ処理システム105は、オーディオ入力信号から、要求および要求に関連付けられたトリガキーワードを決定し得る。要求およびトリガキーワードに基づいて、データ処理システム105は、複数のシーケンス依存オペレーションを含むスレッドを決定または選択し得るし、例えば、音声起動通信またはプランニングシステムの一部として、依存オペレーションのシーケンスと一致しない順序でコンテンツアイテムを選択(そして、本明細書に記載しているような他のアクションを開始)し得る。コンテンツアイテムは、レンダリングされるとオーディオ出力または音波を提供する1つまたは複数のオーディオファイルを含み得る。コンテンツアイテムは、オーディオコンテンツに加えてまたはオーディオコンテンツの代わりに他のコンテンツ(例えば、テキスト、ビデオ、または画像コンテンツ)を含み得る。例えば、コンテンツアイテムは、オーディオファイルを含まず、オーディオ出力をレンダリングしない、テキストもしくは画像ファイル、またはその組合せを含み得る。
【００１４】
データ処理システム105は、複数の論理的にグループ分けされたサーバを含み、分散コンピューティング技法を支援し得る。サーバの論理グループを、データセンタ、サーバファーム、またはマシンファームと称し得る。サーバは地理的に分散され得る。データセンタまたはマシンファームは単一のエンティティとして管理され得るし、マシンファームは複数のマシンファームを含み得る。各マシンファーム内のサーバは、1つまたは複数のサーバまたはマシンが1つまたは複数のタイプのオペレーティングシステムプラットフォームに従って稼動し得るヘテロジニアスであり得る。データ処理システム105は、データセンタ内にサーバを含み得るし、サーバは、関連ストレージシステムとともに、1つまたは複数の高密度ラックシステムに記憶されており、例えば、企業向けデータセンタに設置されている。このような統合サーバを有するデータ処理システム105は、ローカライズされた高パフォーマンスネットワーク上にサーバおよび高パフォーマンスストレージシステムを設置することによって、システム管理容易性、データセキュリティ、システムの物理セキュリティ、およびシステムパフォーマンスを改善することを可能としている。サーバおよびストレージシステムを含むとともに先進システム管理ツールとそれらを接続している、データ処理システム105のコンポーネントのすべてまたは一部の中央集権化は、サーバリソースのより効率的な使用を可能としており、そのことは、電力および処理要件を節約するとともに帯域幅使用量を低減することになる。
【００１５】
データ処理システム105は、少なくとも1つの自然言語プロセッサ(NLP)コンポーネント110、少なくとも1つのインターフェース115、少なくとも1つの予測コンポーネント120、少なくとも1つのコンテンツ選択コンポーネント125、少なくとも1つのオーディオ信号ジェネレータコンポーネント130、少なくとも1つのダイレクトアクションアプリケーションプログラミングインターフェース(API)135、少なくとも1つのセッションハンドラコンポーネント140、および少なくとも1つのデータリポジトリ145を含み得る。NLPコンポーネント110、インターフェース115、予測コンポーネント120、コンテンツ選択コンポーネント125、オーディオ信号ジェネレータコンポーネント130、ダイレクトアクションAPI135、およびセッションハンドラコンポーネント140の各々は、少なくとも1つのコンピュータネットワーク165を介して、データリポジトリ145および他のコンピュータデバイス(例えば、クライアントコンピュータデバイス150、コンテンツプロバイダコンピュータデバイス155、またはサービスプロバイダコンピュータデバイス160)と通信するように構成された、少なくとも1つの処理ユニット、サーバ、仮想サーバ、回路、エンジン、エージェント、機器、またはプログラマブルロジックアレイなどの他のロジックデバイスを含み得る。ネットワーク165は、インターネット、ローカルエリアネットワーク、ワイドエリアネットワーク、メトロエリアネットワークまたは他のエリアネットワーク、イントラネット、サテライトネットワーク、音声またはデータ移動電話通信ネットワークなどの他のコンピュータネットワーク、およびその組合せなどのコンピュータネットワークを含み得る。
【００１６】
ネットワーク165は、例えば、コンテンツ配置もしくはサーチエンジン結果システムと関連している、または、コンテンツアイテム配置キャンペーンの一部としてサードパーティコンテンツアイテムを含む資格がある、インターネット上で利用可能な情報リソースのサブセットといった、提示ネットワークを含み得るもしくは構成し得る。ネットワーク165は、クライアントコンピュータデバイス150によって提示、出力、レンダリング、または表示され得る、ウェブページ、ウェブサイト、ドメイン名、またはユニフォームリソースロケータなどの情報リソースにアクセスするために、データ処理システム105によって使用され得る。例えば、ネットワーク165を介して、クライアントコンピュータデバイス150のユーザは、コンテンツプロバイダコンピュータデバイス155またはサービスプロバイダコンピュータデバイス160によって提供された情報またはデータにアクセスし得る。
【００１７】
ネットワーク165は、例えば、ポイント・ツー・ポイントネットワーク、ブロードキャストネットワーク、ワイドエリアネットワーク、ローカルエリアネットワーク、通信ネットワーク、データ通信ネットワーク、コンピュータネットワーク、ATM(Asynchronous Transfer Mode)ネットワーク、SONET(Synchronous Optical Network)ネットワーク、SDH(Synchronous Digital Hierarchy)ネットワーク、無線ネットワーク、または有線ネットワーク、およびその組合せを含み得る。ネットワーク165は、赤外線チャネルまたは衛星帯域などの無線リンクを含み得る。ネットワーク165のトポロジは、バス、スター、リングネットワークトポロジを含み得る。ネットワーク165は、先進移動電話プロトコル(「AMPS」)、時分割多元接続(「TDMA」)、符号分割多元接続(「CDMA」)、グローバル・システム・フォー・モバイル・コミュニケーションズ(「GSM(登録商標)」)、ジェネラル・パケット・ラジオ・サービス(「GPRS」)、またはユニバーサル・モバイル・テレコミュニケーション・システム(「UMTS」)を含む、任意のプロトコルまたはモバイルデバイス間で通信するために使用されるプロトコルを使用するモバイル電話ネットワークを含み得る。異なるタイプのデータを異なるプロトコルを介して伝送してもよいし、同一のタイプのデータを異なるプロトコルを介して伝送してもよい。
【００１８】
クライアントコンピュータデバイス150、コンテンツプロバイダコンピュータデバイス155、およびサービスプロバイダコンピュータデバイス160の各々は、ネットワーク165を介して互いにまたはデータ処理システム105と通信するためのプロセッサを有するコンピュータデバイスなどといった、少なくとも1つのロジックデバイスを含み得る。クライアントコンピュータデバイス150、コンテンツプロバイダコンピュータデバイス155、およびサービスプロバイダコンピュータデバイス160の各々は、少なくとも1つのサーバ、プロセッサもしくはメモリ、または少なくとも1つのデータセンタに設置された複数の計算リソースもしくはサーバを含み得る。クライアントコンピュータデバイス150、コンテンツプロバイダコンピュータデバイス155、およびサービスプロバイダコンピュータデバイス160の各々は、デスクトップコンピュータ、ラップトップ、タブレット、携帯情報端末、スマートフォン、ポータブルコンピュータ、サーバ、シンクライアントコンピュータ、仮想サーバ、または他のコンピュータデバイスなどといった、少なくとも1つのコンピュータデバイスを含み得る。
【００１９】
クライアントコンピュータデバイス150は、少なくとも1つのセンサ151、少なくとも1つのトランスデューサ152、少なくとも1つのオーディオドライバ153、および少なくとも1つのスピーカ154を含み得る。センサ151は、マイクロフォンまたはオーディオ入力センサを含み得る。トランスデューサ152は、オーディオ入力を電子信号に変換し得る。オーディオドライバ153は、オーディオ入力を処理またはオーディオ出力を提供するクライアントコンピュータデバイス150の他のコンポーネントの間に存在するセンサ151、トランスデューサ152、またはオーディオドライバ153を制御するためにクライアントコンピュータデバイス150の1つまたは複数のプロセッサによって実行されるスクリプトまたはプログラムを含み得る。スピーカ154は、オーディオ出力信号を送信し得る。
【００２０】
クライアントコンピュータデバイス150は、オーディオ入力として音声クエリをクライアントコンピュータデバイス150に(センサ151を介して)入力して、データ処理システム105(または、コンテンツプロバイダコンピュータデバイス155、もしくはサービスプロバイダコンピュータデバイス160)からクライアントコンピュータデバイス150へと提供され、スピーカ154から出力され得る、コンピュータ生成された音声の形式でオーディオ出力を受信する、エンドユーザに関連付けられ得る。コンピュータ生成された音声は、実在の人物またはコンピュータ生成された言語から記録することを含み得る。
【００２１】
コンテンツプロバイダコンピュータデバイス155は、オーディオ出力コンテンツアイテムとしてクライアントコンピュータデバイス150によって提示するためのオーディオベースのコンテンツアイテムを提供し得る。コンテンツアイテムは、「タクシーを呼びますか?」と述べる音声ベースのメッセージなどのグッズまたはサービスに関するオファーを含み得る。例えば、コンテンツプロバイダコンピュータデバイス155は、音声ベースのクエリに応答して提供され得る一連のオーディオコンテンツアイテムを記憶するメモリを含み得る。コンテンツプロバイダコンピュータデバイス155はまた、データリポジトリ145に記憶されている、オーディオベースのコンテンツアイテム(または他のコンテンツアイテム)をデータ処理システム105に提供し得る。データ処理システム105は、オーディオコンテンツアイテムを選択し、オーディオコンテンツアイテムをクライアントコンピュータデバイス150に提供(または、コンテンツプロバイダコンピュータデバイス155に提供するように命令)し得る。オーディオベースのコンテンツアイテムは、もっぱらオーディオであり得るが、テキスト、画像、もしくはビデオデータとも組み合わせられ得る。
【００２２】
サービスプロバイダコンピュータデバイス160は、少なくとも1つのサービスプロバイダ自然言語プロセッサ(NLP)コンポーネント161および少なくとも1つのサービスプロバイダインターフェース162を含み得る。サービスプロバイダNLPコンポーネント161(または、サービスプロバイダコンピュータデバイス160のダイレクトアクションAPIなどの他のコンポーネント)は、(データ処理システム105を介してまたはデータ処理システム105をバイパスして)クライアントコンピュータデバイス150と協働して、やりとりのためのリアルタイム音声またはオーディオベースの会話(例えば、クライアントコンピュータデバイス150とサービスプロバイダコンピュータデバイス160との間のセッション)を作成し得る。例えば、サービスプロバイダインターフェース162は、データ処理システム105のダイレクトアクションAPI135に対するデータメッセージを受信または提供し得る。サービスプロバイダコンピュータデバイス160およびコンテンツプロバイダコンピュータデバイス155は、同一のエンティティに関連付けられ得る。例えば、コンテンツプロバイダコンピュータデバイス155は、カーシェアリングサービスに関して利用可能なコンテンツアイテムを作成、記憶、または生成し得るし、サービスプロバイダコンピュータデバイス160は、タクシーの配送またはカーシェアサービスの車を手配してクライアントコンピュータデバイス150のエンドユーザをピックアップするために、クライアントコンピュータデバイス150とのセッションを確立し得る。データ処理システム105、ダイレクトアクションAPI135を介して、NLPコンポーネント110または他のコンポーネントはまた、例えば、タクシーの配送またはカーシェアサービスの車を手配するために、サービスプロバイダコンピュータデバイス160を含むまたはバイパスするセッションをクライアントコンピュータデバイスと確立し得る。
【００２３】
データリポジトリ145は、1つまたは複数のローカルまたは分散データベースを含み得るし、データベース管理システムを含み得る。データリポジトリ145は、コンピュータデータストレージまたはメモリを含み得るし、1つまたは複数のパラメータ146、1つまたは複数のポリシー147、コンテンツデータ148、または他のデータ間のテンプレート149を記憶し得る。パラメータ146、ポリシー147、およびテンプレート149は、クライアントコンピュータデバイス150とデータ処理システム105(またはサービスプロバイダコンピュータデバイス160)との間の音声ベースのセッションに関するルールなどの情報を含み得る。コンテンツデータ148は、クライアントコンピュータデバイス150との1つまたは複数の通信セッションの一部であり得る入力オーディオメッセージだけでなく、オーディオ出力のためのコンテンツアイテムまたは関連メタデータも含み得る。
【００２４】
システム100は、音声起動データパケット(または他のプロトコル)環境におけるシーケンス依存オペレーションの処理を最適化し得る。例えば、データ処理システム105は、音声起動アシスタントサービス、音声コマンドデバイス、インテリジェントパーソナルアシスタント、ナレッジナビゲータ、イベントプランニング、または他のアシスタントプログラムの一部を含み得るまたは一部であり得る。データ処理システム105は、この入力オーディオ信号に関連するタスクを完遂するために、クライアントコンピュータデバイス150から提示するためのオーディオ出力の1つまたは複数のインスタンスを提供し得る。タスクは、例えば、夕食の予約または映画のチケットの購入をするためにサービスプロバイダコンピュータデバイス160または他のサードパーティコンピュータデバイスと通信することを含み得る。例えば、エンドユーザは、「オーケー、今晩、夕食に行ってその後映画に行きたいんだけど」といった入力オーディオ信号をクライアントコンピュータデバイス150に入力し得る。
【００２５】
シーケンス依存オペレーションは、既知の、推奨の、必須の、または特定のオーダーにおいて発生する多数のアクションを含み得る。例えば、家から映画館に行ってその後帰宅することは、3つのシーケンス依存オペレーションまたはアクションを含み得る。本例における第1のアクションは、家から映画館への移動することを含む。第2のアクションは、映画館で映画を見ることを含む。第3のアクションは、映画館から帰宅することを含む。本例では、シーケンス内の第2のアクション(映画を見ること)は、第1のアクション(夕食に出かけること)の後に続くものであるまたは依存するものであり、第3のアクション(帰宅すること)は、第1のアクションおよび第2のアクションの後に続くものであるまたは依存するものである。第3のアクションは、そうする意思を伝えたように、第2のアクションの後に続くものであるまたは依存するものであるとみなされ得るし、データ処理システム105は、同様に帰宅する前にエンドユーザが映画館で映画を見るであろうと予測する。
【００２６】
データ処理システム105は、入力オーディオ信号をデータ処理システム105のインターフェース115に通信しクライアントコンピュータデバイスのコンポーネントを駆動して出力オーディオ信号をレンダリングするアプリケーションなどの、クライアントコンピュータデバイス150にインストールされたアプリケーション、スクリプト、またはプログラムを含み得る。データ処理システム105は、オーディオ入力信号を含むまたは識別するデータパケットまたは他の信号を受信し得る。例えば、データ処理システム105は、NLPコンポーネント110を実行または動作してオーディオ入力信号を受信し得る。
【００２７】
NLPコンポーネント110は、入力信号を(例えば、データリポジトリ145に)記憶されているオーディオ波形の代表的セットと比較し、最も一致するものを選択することによって、オーディオ入力信号を認識済みテキストに変換し得る。代表的波形は、多数のユーザから生成され、音声サンプルを用いて補強することが可能である。オーディオ信号を認識済みテキストに変換した後に、NLPコンポーネント110は、テキストを、例えば、ユーザによるまたはマニュアル仕様書による訓練を介して、データ処理システム105が機能を果たし得るアクションに関連付けられた単語とマッチングし得る。
【００２８】
オーディオ入力信号は、クライアントコンピュータデバイスのセンサ151(例えば、マイクロフォン)によって検出され得る。トランスデューサ152、オーディオドライバ153、または他のコンポーネントを介して、クライアントコンピュータデバイス150は、オーディオ入力信号をデータ処理システム105に(例えば、ネットワーク165を介して)提供し得る、ここで、(例えば、インターフェース115によって)受信され、NLPコンポーネント110に提供され得るまたはコンテンツデータ148としてデータリポジトリ145に記憶され得る。
【００２９】
NLPコンポーネント110は、入力オーディオ信号を取得し得る。入力オーディオ信号から、NLPコンポーネント110は、少なくとも1つの要求または要求に対応する少なくとも1つのトリガキーワードを識別する。要求は、入力オーディオ信号の意図または主目的を示し得る。トリガキーワードは、動作に移す可能性のあるアクションのタイプを示し得る。例えば、NLPコンポーネント110は、入力オーディオ信号をパースして、夕方に家を出て夕食と映画に行くという少なくとも1つの要求を識別し得る。トリガキーワードは、動作に移すつもりのアクションを示す、少なくとも1つの単語、フレーズ、語幹もしくは部分的な単語、または派生語を含み得る。例えば、入力オーディオ信号からの「行く」または「に行き」というトリガキーワードは、移動手段の要求を示し得る。本例では、入力オーディオ信号(または識別した要求)は、移動手段の意図を直接表していないが、トリガキーワードは、移動手段が要求によって示される少なくとも1つの他のアクションに対する付随的アクションであることを示している。
【００３０】
予測コンポーネント120(またはデータ処理システム105の他の機構)は、要求またはトリガキーワードに基づいて、入力オーディオ信号に関連付けられた少なくとも1つのスレッドを決定し得る。スレッドは、一連のアクションなどのシーケンス依存オペレーションのセットを示し得る。スレッドは、第1のアクション、第2のアクション、および第3のアクションなどの任意の2つ以上のアクションを含み得る。例えば、「オーケー、今晩、夕食に行ってその後映画に行きたいんだけど」という入力オーディオ信号は、夕食と映画に行く意図を示す少なくとも1つの要求を含み得るし、例えば、「行く」といった、少なくとも1つのトリガキーワードが、移動手段の要求を示している。予測コンポーネント120は、夕食アクション(第1のアクション)、映画アクション(第2のアクション)、および帰宅アクション(第3のアクション)などの少なくとも3つのアクションを有するスレッドを識別し得る。本例では、要求またはトリガキーワードから、予測コンポーネント120は、3つのアクションを予測、推定、さもなければ、決定する。スレッドは、夕食アクションに対する最初の移動などの他のアクションを含み得る。
【００３１】
データ処理システム105、または、予測コンポーネント120などといったそのコンポーネントは、スレッドのアクションがシーケンス依存オペレーションであると決定し得る。例えば、予測コンポーネントは、映画を見るという第2のアクションが夕食を食べるという第1のアクションの後に続くものであり、映画館から帰宅するという第3のアクションが映画を見るという第2のアクションの後であると決定し得る。予測コンポーネント120は、データリポジトリ145内のパラメータ146またはポリシー147にアクセスして、シーケンス依存アクションについてのオーダーを決定、さもなければ、推定し得る。例えば、パラメータ146またはポリシー147は、移動アクション(例えば、タクシーで帰宅)がイベントアクション(例えば、映画を見る)の後に発生し得ることを示し得る。
【００３２】
コンテンツ選択コンポーネント125は、スレッドのアクションのうちのいずれかについての指示を取得し得る。例えば、予測コンポーネント120は、第3の(または他のいずれかの)アクションの指示をコンテンツ選択コンポーネント125に直接的または間接的に(例えば、データリポジトリ145を介して)提供し得る。コンテンツ選択コンポーネント125は、データリポジトリ145から本情報を取得し得る、ここで、コンテンツデータ148の一部として記憶され得る。第3のアクションの指示は、コンテンツ選択コンポーネント125に、最終目的地まで乗車などといった、映画館の位置からクライアントコンピュータデバイス150によって決定されているようなまたは示されているような位置への移動手段の要求を通知し得る。
【００３３】
コンテンツ選択コンポーネント125は、少なくとも1つの前段のアクションの発生の前にスレッド内の後段のアクションの指示を取得し得る。例えば、コンテンツ選択コンポーネント125は、映画が映画館で上映される(第2のアクション)前に、または、入力オーディオ信号をクライアントコンピュータデバイス150に入力した人がレストランで夕食を食べる(第1のアクション)前に、第3のアクションの指示(例えば、映画館からの乗車といった要求)を受信し得る。コンテンツ選択コンポーネント125は、スレッドの少なくとも1つのアクションの完了の前にスレッドの少なくとも1つのアクションの指示を取得し得る。
【００３４】
コンテンツ選択コンポーネント125によって受信された情報、例えば、少なくとも1つのシーケンス依存スレッド内の先行アクションの発生前の第3のアクションの指示から、コンテンツ選択コンポーネント125は、少なくとも1つのコンテンツアイテムを識別し得る。コンテンツアイテムは、第3のアクションに対応または関連し得る。例えば、コンテンツアイテムは、移動手段の要求を示す第3のアクションに応じた、カーシェア企業のサービスをオファーするオーディオメッセージを含み得る。コンテンツ選択コンポーネント125は、クエリデータリポジトリ145にクエリを行い、例えば、コンテンツデータ148から、コンテンツアイテムを選択、さもなければ、識別し得る。コンテンツ選択コンポーネント125はまた、コンテンツプロバイダコンピュータデバイス155からコンテンツアイテムを選択し得る。例えば、データ処理システム105から受信したクエリに応じて、コンテンツプロバイダコンピュータデバイス155は、クライアントコンピュータデバイス150による最終的な出力のためにデータ処理システム105(または、そのコンポーネント)にコンテンツアイテムを提供し得る。
【００３５】
オーディオ信号ジェネレータコンポーネント130は、第3のアクションに対応するコンテンツアイテムを含む出力信号を生成、さもなければ、取得し得る。例えば、データ処理システム105は、オーディオ信号ジェネレータコンポーネントを実行して、コンテンツアイテムに対応する出力信号を生成または作成し得る。データ処理システム105のインターフェース115は、クライアントコンピュータデバイス150にコンピュータネットワーク165を介して出力信号を含む1つまたは複数のデータパケットを提供または送信し得る。インターフェース115は、例えば、データパケットを使用して、情報を受信および送信するように設計され得る、構成され得る、構築され得る、または、動作可能であり得る。インターフェース115は、ネットワークプロトコルなどの1つまたは複数のプロトコルを使用して情報を受信および送信し得る。インターフェース115は、ハードウェアインターフェース、ソフトウェアインターフェース、有線インターフェース、または無線インターフェースを含み得る。インターフェース115は、あるフォーマットから別のフォーマットにデータを変換または形式変更することを支援する。例えば、インターフェース115は、システム100のソフトウェアコンポーネントなどといった様々なコンポーネント間で通信するための定義条項を含む、アプリケーションプログラミングインターフェースを含み得る。
【００３６】
例えば、データ処理システム105は、データリポジトリ145から、または、オーディオ信号ジェネレータコンポーネント130から、クライアントコンピュータデバイス150に出力信号を提供し得る。データ処理システム105はまた、クライアントコンピュータデバイス150に出力信号を提供するように、データパケット伝送を介して、コンテンツプロバイダコンピュータデバイス155またはサービスプロバイダコンピュータデバイス160に命令し得る。出力信号は、データ処理システム105(または、他のコンピュータデバイス)からクライアントコンピュータデバイス150への1つまたは複数のデータパケット(または、他の通信プロトコル)として取得、生成、変換、または送信され得る。
【００３７】
本例では、コンテンツ選択コンポーネント125は、シーケンス依存オペレーションのセット内の後段の(例えば、第3の)アクションまでスキップして、第3のアクションに対応するアクティビティに関する発生の前に(および、緊急の要求の前に)第3のアクションに関するコンテンツアイテムを選択する。一連のアクションの後段までスキップすることによって、データ処理システム105は、第1のアクションまたは第2のアクションに関連する情報を処理してこれらのアクションに関するコンテンツアイテムを選択する必要がなくなる。このことは、プロセッサ利用量、電力消費、および帯域幅を、そうしなければ、第3のアクションに関するコンテンツアイテムの選択の前の(第1のアクションに関する)コンテンツアイテムの選択または(第2のアクションに関する)コンテンツアイテムの選択に関連し得る、データ伝送から低減し得る。
【００３８】
コンテンツ選択コンポーネント125は、リアルタイムコンテンツ選択プロセスの一部として(後続または後段の)第3のアクションに関するコンテンツアイテムを選択し得る。例えば、コンテンツアイテムは、入力オーディオ信号に対して直接的応答をする会話形式のオーディオ出力として伝送のためにクライアントコンピュータデバイスに提供され得る。コンテンツアイテムを識別し、コンテンツアイテムをクライアントコンピュータデバイス150に提供する、リアルタイムコンテンツ選択プロセスは、入力オーディオ信号の時間から1分以内に発生し、リアルタイムとみなすことができる。
【００３９】
例えば、オーディオ信号ジェネレータコンポーネント130によって取得または生成され、インターフェース115およびコンピュータネットワーク165を介してクライアントコンピュータデバイス150に送信された、コンテンツアイテムに対応する、出力信号は、クライアントコンピュータデバイス150に、スピーカ154を駆動するようにオーディオドライバ153を実行して出力信号に対応する音波を生成させ得る。音波は、第3のアクションに関するコンテンツアイテムの単語または対応する単語を含み得る。コンテンツアイテムに対応する出力信号はまた、オーディオ要素無しでレンダリングされ得るテキストまたは画像メッセージとして、入力オーディオ信号のソースであるクライアントコンピュータデバイス150上で、または、異なるクライアントコンピュータデバイス150(例えば、ウェアラブルデバイスコンピュータデバイス)上で、レンダリングされる非オーディオコンテンツアイテムを含み得る。
【００４０】
前記音波は、第1のアクションまたは第2のアクションの発生の前にクライアントコンピュータデバイス150から出力され得る。例えば、音波は、「映画の後にタクシーを待たせておきましょうか?」というオーディオ出力を含み得る。本例では、データ処理システム105は、例えば、「オーケー、今晩、夕食に行ってその後映画に行きたいんだけど」といった入力オーディオ信号を取得しているものとする。本情報から、NLPコンポーネント110は、少なくとも1つの要求または少なくとも1つのトリガキーワードを識別し、予測コンポーネント120は、要求またはトリガキーワードを使用して少なくとも1つのスレッドを識別する。スレッドは、例えば、第1の夕食アクション、第2の映画アクション、および第3の帰宅アクションといった、一連のシーケンス依存アクションを含み得る。予測コンポーネント120は、クライアントコンピュータデバイス150のエンドユーザが、まず夕食を食べて、その後、夕食の後に映画に行って、その後、夕食の後に帰宅または映画館を離れることになるという、これらのアクションが、シーケンシャルな順序で発生するであろうと(例えば、少なくとも75%の信頼性などといった信頼性の閾値レベルで)決定し得る。コンテンツ選択コンポーネント125は、例えば、第1のアクションおよび第2のアクションに関するコンテンツアイテム選択に関連する処理をバイパスし、その代わりに、例えば、映画館のピックアップ場所で移動手段を用意するカーシェアサービスに関するコンテンツアイテムといった、第3のアクションに関するコンテンツアイテムをまず選択し得る。データ処理システム105、または、オーディオ信号ジェネレータコンポーネント130などといったそのコンポーネントは、第3のアクションに関するコンテンツアイテムをクライアントコンピュータデバイス150に提供し得る。音波は、例えば、スレッド内の先行アクション間の、第1のアクションの発生の後かつ第2のアクションの発生の前に、クライアントコンピュータデバイス150から出力され得る。
【００４１】
第3のアイテムのためのコンテンツアイテムは、第1のアクションまたは第2のアクションが発生してしまう前に、クライアントコンピュータデバイス150からのオーディオ出力として少なくとも一部をレンダリングされ得る。例えば、第3のアクションに関するコンテンツアイテムを含む出力信号は、「映画館からの帰宅は車にしましょうか?」と提示する人間または自動音声としてレンダリングされ得る。データ処理システム105は、オーダーされた一連のアクションのうちの1つ、2つ以上、またはすべての先行アクションの発生の前に、第3のアクションに関するコンテンツアイテムに対する応答を受信し得る。例えば、データ処理システム105は、レンダリングのためにコンテンツアイテムを提供し、エンドユーザが夕食に行ってしまう前に、または、エンドユーザが映画を見終わってしまう前に、例えば、インターフェース115を介して、応答を受信し得る。データ処理システム105は、データ処理システム105とクライアントコンピュータデバイス150との間の通信セッションの一部である、コンピュータネットワーク165を介した、パケットベースのデータ伝送が、リアルタイムの人同士の会話のような澱みのない流れおよび印象を有するように、「オーケー、今晩、夕食に行ってその後映画に行きたいんだけど」といった入力オーディオ信号に対して直接またはリアルタイム応答でコンテンツアイテムを含む出力信号を提供し得る。本パケットベースのデータ伝送通信セッションはまた、コンテンツプロバイダコンピュータデバイス155またはサービスプロバイダコンピュータデバイス160を含み得る。
【００４２】
コンテンツ選択コンポーネント125は、シーケンス内の任意の先行アクションに関する任意のコンテンツアイテムを選択する前に、アクションのシーケンス依存セットのうちの第3の(または任意の第1ではない)アクションに応答して提供されたコンテンツアイテムを選択し得る。これにより、先行アクションに対応する少なくとも一部のデータを処理する必要性を回避し、コンテンツアイテムが一連のアクションの順序と一致する順序で選択された場合に生じる処理オペレーションの数を削減して第3のコンテンツアイテムを選択するようにさせている。先行(例えば、第1および第2の)アクションに関するコンテンツアイテムは、例えば、第3のアクションに関するコンテンツアイテムの選択の後に、選択されてもされなくてもよい。
【００４３】
コンテンツ選択コンポーネント125は、同一のスレッドの1つまたは複数の要求の主目的とは異なる主目的を示すスレッドの少なくとも1つのトリガキーワードに基づいて、(例えば、第3のアクションに関する)コンテンツアイテムを選択してもよい。例えば、「オーケー、今晩、夕食に行ってその後映画に行きたいんだけど」に対応するスレッドの要求は、夕食の要求(第1のアクション)の主目的と、映画の要求(第2のアクション)の主目的とを示し得る。この主目的は、いかなる移動要求も示していない。しかしながら、NLPコンポーネント110または予測コンポーネント120(または、ダイレクトアクションAPI135の一部として実行される他のデータ処理システム105コンポーネント)は、「行く」、「に行く」、または「に行き」というトリガキーワードを識別し得るし、トリガキーワードの少なくとも一部に基づいて移動要求(第3のアクション)を決定し得る。そのため、データ処理システム105は、入力オーディオ信号の一次要求または主目的ではない二次要求である入力オーディオ信号からアクションを推論し得る。
【００４４】
データ処理システム105は、コンテンツアイテムを含む出力信号の伝送を阻止または遅延し得る。例えば、インターフェース115またはダイレクトアクションAPI135を介して実行されるスクリプトは、トリガイベントまでコンテンツアイテムに対応する出力信号を含むデータパケットの伝送を阻止し得る。トリガイベントは、2時間などといった所定の期間の満了、または、映画の予定終了時間などといったスレッド内の前段のアクションの発生と一致する時間を含み得る。トリガイベントはまた、クライアントコンピュータデバイス150からデータ処理システム105によって受信された承諾指示を含み得る。承諾指示は、スレッドに関連付けられているが入力オーディオ信号の後にデータ処理システムによって受信される後続のオーディオ入力として、テキストベースもしくは他の非可聴信号を生じ得る、または、コンテンツアイテムのクライアントコンピュータデバイス150による受信を承諾するクライアントコンピュータデバイス150の設定の指示を含み得る。
【００４５】
データ処理システム105はまた、スレッドの第2または第2以降のアクションに関連付けられたコンテンツアイテムの伝送を遅延して、プロセッシングの利用を最適化し得る。例えば、データ処理システム105は、データセンタ使用量のオフピークまたは非ピーク期間までコンテンツアイテムの伝送を遅延し得るし、このことは、ピーク帯域の使用量、熱出力、または冷却要求を低減することによって、データセンタのより効率的な利用をもたらすことになる。データ処理システム105はまた、データセンタの利用率または帯域幅メトリックまたはネットワーク165の要件もしくはデータ処理システム105を含むデータセンタの要件に基づいて、カーサービスをオーダーするなどのコンテンツアイテムに関連するコンバージョンまたは他のアクティビティを開始し得る。
【００４６】
コンテンツアイテムは、スレッドのアクションに対応し得るし、コンテンツ選択コンポーネント125は、スレッドの1つ、2つ以上、またはすべてのアクションに関するコンテンツアイテムを選択し得る。予測コンポーネント120は、例えば、「夕食」(第1のアクション)、「映画」(第2のアクション)、および「映画の場所からの移動」(第3のアクション)といったアクションのシーケンス依存スレッドを識別し得る。ダイレクトアクションAPI135は、例えば、NLPコンポーネント110、予測コンポーネント120、またはコンテンツ選択コンポーネント125からのプログラムまたはスクリプトを実行して、1つまたは複数のこれらのアクションに関するコンテンツアイテムを識別し得る。ダイレクトアクションAPI135は、指定のアクションを実行して、データ処理システム105によって決定されるような、エンドユーザの意図を満足する。その入力において指定されたアクションに応じて、ダイレクトアクションAPI135は、ユーザ要求を履行するために必要なパラメータを識別するコードまたはダイアログスクリプトを実行し得る。そのようなコードは、例えば、データリポジトリ145内で、ホームオートメーションサービスの名称などといった追加の情報を検索し得る、または、要望したタクシーの所望の目的地などのエンドユーザの質問をするためにクライアントコンピュータデバイス150におけるレンダリングのためのオーディオ出力を提供し得る。ダイレクトアクションAPI135は、必須のパラメータを決定し得るし、コンテンツ選択コンポーネント125などの別のコンポーネントに、または、サービスプロバイダコンピュータデバイス160にその後送信されて履行され得るアクションデータ構造に、情報をパッケージ化し得る。
【００４７】
データ処理システム105のダイレクトアクションAPI135は、要求またはトリガキーワードに基づいて、スレッドのアクションに関するデータ構造を生成し得る。アクションデータ構造は、要求に応じて生成され得る。アクションデータ構造は、サービスプロバイダコンピュータデバイス160に送信またはサービスプロバイダコンピュータデバイス160によって受信される、メッセージに含まれ得る。NLPコンポーネント110によってパースされた要求に基づいて、ダイレクトアクションAPI135は、複数のサービスプロバイダコンピュータデバイス160のうちのどれに対してメッセージを送信すべきかを決定し得る。例えば、入力オーディオ信号が「タクシーをオーダーして」を含んでいる場合には、NLPコンポーネント110は、「オーダー」といったトリガワードおよびタクシーに関する要求を識別し得る。ダイレクトアクションAPI135は、タクシーサービスのサービスプロバイダコンピュータデバイス160へのメッセージとして伝送のためのアクションデータ構造に要求をパッケージ化し得る。メッセージは、コンテンツ選択コンポーネント125にも伝えられ得る。アクションデータ構造は、要求を完遂するための情報を含み得る。本例では、情報は、ピックアップ場所および目的地を含み得る。ダイレクトアクションAPI135は、リポジトリ145からテンプレート149を読み出して、アクションデータ構造内のどのフィールドに含めるかを決定し得る。ダイレクトアクションAPI135は、リポジトリ145からコンテンツを読み出して、データ構造のフィールドに関する情報を取得し得る。ダイレクトアクションAPI135は、その情報を有する前記テンプレートからのフィールドを追加して、データ構造を生成し得る。ダイレクトアクションAPI135はまた、入力オーディオ信号からのデータを有するフィールドを追加し得る。テンプレート149は、サービスプロバイダのカテゴリに関して標準化され得る、または、特定のサービスプロバイダに関して標準化され得る。例えば、乗車シェアリングサービスプロバイダは、{client_device_identifier; authentication_credentials; pick_up_location; destination_location; no_passengers; service_level}といった標準化テンプレート149を使用して、データ構造を作成し得る。
【００４８】
例えば、第3のアクションに関するコンテンツアイテムが、オーディオ入力信号に応じて「映画館からの帰宅は車にしましょうか?」と提示するオーディオ応答としてクライアントコンピュータデバイス150においてレンダリングするために提供され得る。このレンダリングの後または前に、データ処理システム105は、第1のアクション(夕食)に関して、例えば、「繁華街のイタリアンレストランは今晩の午後7時に開店ですか?」といったコンテンツアイテムを選択または提供し得るし、第2のアクション(映画)に関して、例えば、「繁華街の映画館の午後9時の映画のチケットはどうでしょう?」といった別のコンテンツアイテムを選択または提供し得る。データ処理システム105は、オーディオ出力コンテンツアイテムとしてクライアントコンピュータデバイス150によってレンダリングするために入力オーディオ信号に応じてこれらのコンテンツアイテムを提供し得る(コンテンツプロバイダコンピュータデバイス155に提供するように命令することを含む)。データ処理システム105は、インターフェース115を介して、クライアントコンピュータデバイス150に対する任意のオーダーにおいて、このようなコンテンツアイテムを選択または提供し得る。例えば、第3の(例えば、最終)アクションに関するコンテンツアイテムがまず、スレッドのその他の前段のアクションに対応するコンテンツアイテムの前に、選択または提供され得る。
【００４９】
データ処理システム105は、「映画館からの帰宅は車にしましょうか?」というコンテンツアイテムに対する応答を受信し得る。応答は、エンドユーザによってクライアントコンピュータデバイス150に入力されデータ処理システム105によって受信された、例えば、「そうだね、お願い」といった、入力オーディオ信号を含み得る。本応答に基づいて、ダイレクトアクションAPI135は、(カーシェア企業などのコンテンツアイテムと関連付けられ得る)サービスプロバイダコンピュータデバイス160と通信して、映画が終了する時間に映画館の場所にタクシーまたは相乗自動車をオーダーし得る。データ処理システム105は、データリポジトリ145から、または、サービスプロバイダコンピュータデバイス160またはコンテンツプロバイダコンピュータデバイス155などの他のソースから、クライアントコンピュータデバイス150とのデータパケット(または他のプロトコル)ベースのデータメッセージ通信の一部としてこの位置または時間の情報を取得し得る。このオーダー(または他のコンバージョン)についての確認が、データ処理システム105からのオーディオ通信として、クライアントコンピュータデバイス150を駆動して「いいね、映画館の外で午後11時に車を待機させておきます」などといったオーディオ出力をレンダリングするデータ処理システム105からの出力信号の形式でクライアントコンピュータデバイス150に提供され得る。データ処理システム105は、ダイレクトアクションAPI135を介して、サービスプロバイダコンピュータデバイス160と通信して、車に関するオーダーを確認し得る。
【００５０】
データ処理システム105は、コンテンツアイテム(「映画館からの帰宅は車にしましょうか?」)に対する応答(例えば、「そうだね、お願い」)を取得し得るし、サービスプロバイダNPLコンポーネント161(または、サービスプロバイダコンピュータデバイスの他のコンポーネント)にパケットベースのデータメッセージをルーティングし得る。本パケットベースのデータメッセージは、サービスプロバイダコンピュータデバイス160にコンバージョンを行わせ得る、例えば、映画館の外で車のピックアップ予約をさせ得る。本コンバージョンまたは確認済みのオーダー(または、スレッドの任意の他のアクションについての任意の他のコンバージョン)は、夕食の後などといった、スレッドの1つまたは複数のアクションの完了の後だけでなく、映画の完了の前などといった、スレッドの1つまたは複数のアクションの完了の前にも発生し得る。
【００５１】
シーケンス依存スレッド内の第3および最終アクションに関する「映画館からの帰宅は車にしましょうか」といったコンテンツアイテムに対する「そうだね、お願い」といった応答などの、スレッド内の後続のアクションに関するコンテンツアイテムに対する応答に基づいて、データ処理システム105は、コンバージョンまたはアクションを開始し得る。このことは、エンドユーザがスレッドに関連付けられた任意のアクティビティを開始する前に、例えば、夕食の前にまたは映画が終わってしまう前に、発生し得る。データ処理システム105のプロセッサは、ダイレクトアクションAPI135を起動して、カーシェアサービスから車をオーダーするスクリプトを実行し得る。ダイレクトアクションAPI135は、カーシェアサービスから車を予約するために、データリポジトリ145からコンテンツデータ148(または、パラメータ146もしくはポリシー147)と、クライアントコンピュータデバイス150からのエンドユーザコンテンツとともに受信したデータとを取得して、位置、時間、ユーザアカウント、論理的、または他の情報を決定し得る。ダイレクトアクションAPI135を使用して、データ処理システム105はまた、サービスプロバイダコンピュータデバイス160と通信して、カーシェアピックアップ予約を行う本例におけるコンバージョンを完了し得る。
【００５２】
ダイレクトアクションAPI135は、コンバージョンまたはアクティビティを開始して、スレッドに関連付けられた第1の入力オーディオ信号についてのデータ処理システム105による受信(例えば、「オーケー、今晩、夕食に行ってその後映画に行きたいんだけど」)から、スレッドのアクションのうちの1つの完了後の閾値期間まで(例えば、映画を見るという第2のアクションの終了後から15分間まで)の期間の間の任意の時間において、スレッドのアクションを完遂し得る。データ処理システム110はまた、エンドユーザが、スレッドのアクションを完了した、例えば、帰宅した、または、映画館にはもういない、といった指示などの他の因子に基づいたこの期間の終了を決定し得る。データ処理システム105はまた、スレッドがキャンセルされたもしくは休止状態である、または、エンドユーザがスレッドのアクションをキャンセルしたまたは完了した、という、クライアントコンピュータデバイス150からの指示(ネットワーク165を介して送信されたデータメッセージ)を取得し得る。
【００５３】
ダイレクトアクションAPI135は、コンバージョンまたはアクティビティを開始して、スレッドの他のアクションの完了に基づいて、または、スレッドの他のアクションの完了の時間に基づいて、スレッドのアクションを完遂し得る。例えば、データ処理システム105は、グッズまたはサービス(カーシェアピックアップ)を、直接、または、スレッド内の先行アクションの完了の閾値期間内にサービスプロバイダコンピュータデバイス160と通信することによって、オーダーし得る。映画(第2のアクション)の予定されたまたは実際の完了の前または後の5分(または、他の期間)以内に、データ処理システム105は、映画館においてエンドユーザをピックアップする(その後、第3のアクション)ために車を寄越してもらうために、確認、またはカーシェアサービスにオーダーし得る。この期間の間はエンドユーザコンピュータデバイス150から受信した入力に反応しなくてもよい、または、この期間の間にエンドユーザコンピュータデバイス150から受信した催促に対して反応しなくてもよい。
【００５４】
ダイレクトアクションAPI135は、任意のオーダーにおけるスレッドのシーケンス依存オペレーションに関連するコンバージョンまたは他のアクティビティを開始し得る。例えば、ダイレクトアクションAPI135(または、他のデータ処理システム105コンポーネント)は、シーケンス内の前段のスレッドに対応するアクティビティを開始する前に(例えば、夕食の予約をする前に、または、映画のチケットをオーダーする前に)、最終アクションに対応するアクティビティ(例えば、3つのアクションのスレッドにおける第3のアクション、例えば、タクシーをオーダーすることなど)を開始し得る。本例では、データ処理システム105は、後段の(例えば、第3の)アクションに関するアクティビティの開始の後に、前段の(例えば、第2の)アクションに関するアクティビティを開始し得る。
【００５５】
コンテンツ選択コンポーネント125は、複数のコンテンツ選択プロセスからもたらされる複数のコンテンツアイテムを識別、選択、または取得し得る。コンテンツ選択プロセスは、リアルタイムであり得るし、例えば、あるスレッドを引き起こすデータ処理システム105とクライアントコンピュータデバイス150との間における、同一のカンバセーション、通信セッション、または一連の通信セッションの一部である。カンバセーションは、例えば、数時間または数日といった期間ごとに互いに分離された非同期通信を含み得る。カンバセーションまたは通信セッションは、第1の入力オーディオ信号の受信からスレッドの最終アクションの推定したまたは既知の完了までの期間の間は、スレッドの終了の指示についてのデータ処理システム105による受信までの期間の間は、持続し得る。このことは、スレッドのアクティブ期間と称し得る。例えば、3つのアクション(例えば、夕食、映画、および帰宅)を有するスレッドに関して、コンテンツ選択コンポーネント125は、各アクションに関する少なくとも1つのコンテンツアイテムを選択し得る。コンテンツアイテム選択コンポーネント125は、各アクションに関して、異なるコンテンツ選択プロセスから実行または結果を取得し得る。コンテンツ選択プロセスにおいて、コンテンツプロバイダコンピュータデバイス150は、コンテンツ選択コンポーネント125による選択のためのコンテンツアイテムを示し得る。少なくとも3つのアクションを有するスレッドに関して、コンテンツアイテム選択コンポーネントは、第1のコンテンツ選択プロセスを介して第1のアクションに関する第1のコンテンツアイテムを、第2のコンテンツ選択プロセスを介して第2のアクションに関する第2のコンテンツアイテムを、第3のコンテンツ選択プロセスを介して第3のアクションに関する第3のコンテンツアイテムを選択、さもなければ、識別し得る。スレッドのアクティブ期間中にクライアントコンピュータデバイス150によってレンダリングするためにこれらのコンテンツアイテムを提供するデータ処理システム105は、リアルタイムで動作するものとしてみなせ得る。本例では、コンテンツ選択プロセスおよびコンテンツアイテムのレンダリングはリアルタイムで発生する。
【００５６】
データ処理システム105は、コンテンツアイテムに関連するアクションをキャンセルし得る。例えば、カーサービスのオーダー後に、エンドユーザは、映画を見て、その後、歩いて帰宅することを決める場合がある、または、車で帰宅する代わりに映画の後にデザートをいただくと決める場合がある。データ処理システム105の一部としてクライアントコンピュータデバイス150において実行されるアプリまたは他のプログラムは、「車で帰宅するのはキャンセルして」という入力オーディオ信号を受信し得る。NLPコンポーネント110は、例えば、1つまたは複数のパケットベースのデータメッセージとして、このような入力オーディオ信号を受信し得るし、この入力オーディオ信号が既存のスレッド(例えば、夕食、映画、帰宅)に関連するとともに同一のカンバセーションまたは通信の一部であると決定し得る。例えば、NLPコンポーネント110(または、他のデータ処理システム105コンポーネント)は、データリポジトリ145のコンテンツデータ148から、時間データ、位置データ、およびスレッドの過去、現在、または予定されているアクションなどの既存のスレッドデータを評価して、入力オーディオ信号が既存のスレッドに関連していると決定し得る。例えば、「車」といった要求、または「キャンセル」といったトリガキーワードに基づいて、NLPコンポーネント110は、「車で帰宅するのはキャンセルして」という入力オーディオ信号が既存のスレッドの第3のアクションに対応する「映画館からの帰宅は車にしましょうか?」というコンテンツアイテムに関連していると決定し得る。ダイレクトアクションAPI135(または、他のコンポーネント)は、データ処理システム105に、インターフェース115を介してサービスプロバイダコンピュータデバイス160と通信させて、映画の完了時に映画館の外で車がエンドユーザを待機させるタクシーまたはカーシェアサービスに関するオーダーをキャンセルさせ得る。
【００５７】
NLPコンポーネント135は、データパケットまたは他のプロトコルベースのメッセージを受信して、スレッドの任意のアクションの完了の前または後のスレッドのアクションをキャンセルし得る。NLPコンポーネント135は、データメッセージ(着信オーディオ信号)をクライアントコンピュータデバイス150から受信(または、データリポジトリ145から取得)して、スレッドの以前のアクションによってトリガされる時間間隔内にスレッドのアクションをキャンセルし得る。例えば、夕食、映画、帰宅といった3つのアクションを有するシーケンス依存スレッドにおいては、データ処理システム105は、映画の完了の5分(または、他の期間)以内に帰宅のキャンセルのデータメッセージを受信し得る。データ処理システム105は、スレッドのアクションに関連する製品またはサービスの確認を促し得る。例えば、第1のアクションと第2のアクションとの間(例えば、夕食の後かつ映画の前)の期間の間は、データ処理システム105は、クライアントコンピュータデバイス150においてレンダリングする際に「映画の後に車を待機させることをまだ希望されているかちょっと確認します」と述べるオーディオまたはテキストメッセージを出力するクライアントコンピュータデバイス150に、データメッセージを送信し得る。データ処理システム105は、例えば、「うん、確認した」または「いいえ、車はキャンセル」といった応答を受信し得る。ダイレクトアクションAPI135は、スクリプトを実行してこの情報を処理し得るし、確認またはキャンセルを示すためにサービスプロバイダコンピュータデバイス160と通信し得る。
【００５８】
図2は、第1のアクション205、第2のアクション210、および第3のアクション215を含むシーケンス依存アクションを有するスレッド200の機能図を図示している。スレッド200は、予測コンポーネント120などといったデータ処理システム105のコンポーネントによって決定され得る。データ処理システム105は、例えば、データパケットとして、インターフェース115を介して時間T-0(T-ゼロ)において、入力オーディオ信号を受信し得る。データ処理システム105は、時間T-0がスレッド200のアクティブ期間220の開始であると決定し得る。
【００５９】
(例えば、「オーケー、今晩、夕食に行ってその後映画に行きたいんだけど」)といった入力オーディオ信号から取得した要求またはリガキーワードに基づいて、予測コンポーネントは、このオーダーにおいて発生することが予測されるとともに少なくとも1つのアクションが少なくとも1つの先行アクションの発生に依存する、第1のアクション205(例えば、夕食)、第2のアクション210(例えば、映画)、第3のアクション215(例えば、映画の後に車で帰宅)などといった、複数のシーケンス依存アクションを識別し得る。例えば、第3のアクション215(映画館から車で帰宅)は、第2のアクションの発生(エンドユーザが映画を見るために映画館に到着すること)に依存する。
【００６０】
データ処理システム105ならびにコンテンツ選択コンポーネント125およびインターフェース115などのコンポーネントは、スレッド200のアクティブ期間220の間にクライアントコンピュータデバイス150によってオーディオ出力としてレンダリングするためにコンテンツアイテムを提供し得る。例えば、データ処理システム105は、アクティブ期間220の開始から第1のアクション205(例えば、夕食の予約の時間)の開始までの期間である期間T-1の間に、(例えば、「映画館からの帰宅は車にしましょうか?」)といったコンテンツアイテムを、選択、および第3のアクション215に提供し得る。データ処理システム105は、アクティブ期間220の間の任意の時間において任意のアクションに関連付けられた任意のコンテンツアイテムを選択または提供し得る。例えば、(第3のアクション215に関する)第1のコンテンツアイテムまたは第3のアクション210に関する異なるコンテンツアイテム(例えば、映画のチケットを購入するための映画の推薦またはオファー)が、期間T-1の間またはアクティブ期間220の任意の他の期間の間に提供され得る。データ処理システム105はまた、コンテンツアイテムがタイムアウトしていると決定し得るし、アクティブ期間T1の一部の間に任意のさらなるレンダリングのためにそれらを提供することはなくなり得る。例えば、データ処理システム105は、第2のアクション210(例えば、時間T-4における映画)が開始してしまったとデータ処理システム105によって決定された後は、第1のアクション205に関するコンテンツアイテム(例えば、時間T-2における夕食)を提供しないと決定し得る。本例では、第1のアクション205に関するコンテンツアイテムは、時間T-1(第1のアクション205の前)とT-3(第1のアクション205と第2のアクション210との間)との間にクライアントコンピュータデバイスに提供され得る。
【００６１】
第3のアクション215に関する少なくとも1つのコンテンツアイテム(例えば、車で帰宅)は、時間T-1からT-6の間は依然として提供され得るし、時間T-7、例えば、映画は終わったがエンドユーザが夕方の間は外に残ることをデータ処理システム105に示すことをエンドユーザが選択したとデータ処理システム105が決定した後の期間の間でさえ提供され得る。第2のアクション210と第3のアクション215との間にある期間T-5の間に、または、T-6(第3のアクション215の間)もしくはT-7(第3のアクション215の後)などのアクティブ期間220の任意の他の期間の間に、データ処理システム105は、第3のアクション215に関連するコンテンツアイテムを中古販売業者に提供し得る、または、カーシェアサービスの予約した車についての確認などのアクションの確認を促し得る。
【００６２】
図3は、システム100などの音声起動データパケットベースコンピュータネットワーク環境におけるシーケンス依存オペレーションのためのアクションを起動する方法300を図示している。方法は、データパケットを受信し得る(動作305)。例えば、データ処理システム105は、NLPコンポーネント110を実行、立ち上げ、または起動して、クライアントコンピュータデバイス150からネットワークを介してパケットまたは他のプロトコルベースの伝送を受信し得る。データパケットは、エンドユーザがスマートフォンに言った「オーケー、今晩、夕食に行ってその後映画に行きたいんだけど」などの、センサ151によって検出される入力オーディオ信号を含み得るまたは対応し得る。
【００６３】
方法300は、入力オーディオ信号から少なくとも1つの要求または少なくとも1つのトリガキーワードを識別し得る(動作310)。例えば、NLPコンポーネント110は、入力オーディオ信号をパースして、要求(「夕食」または「映画」)と、要求に対応または関連する「行く」、「に行く」、または「に行き」といったトリガキーワードとを識別し得る。方法300は、要求またはトリガキーワードに基づいて少なくとも1つのスレッドを決定し得る(動作315)。スレッドは、時間T-2に発生する第1のアクションの後に第2のアクション210が時間T-4に発生するとともに第2のアクション210の後および第1のアクション205の後に第3のアクション215が時間T-6に発生するスレッド200などのセットオーダーにおいて発生するであろうとデータ処理システム100が決定する、一連のシーケンス依存アクションを含み得る。
【００６４】
方法300は、コンテンツ選択コンポーネント125に第3のアクションの指示を提供し得る(動作320)。例えば、コンテンツ選択コンポーネント125は、第1のアクション205の発生の前に(時間T-2の前に)または第2のアクション210の発生の前に(時間T-4の前に)第3のアクション215の指示を受信し得る。第3のアクションの指示に応答して、または要求およびトリガキーワードに基づいて、コンテンツ選択コンポーネントは、第3のアクションに対応する少なくとも1つのコンテンツアイテムを選択し得る(動作325)。方法300は、コンテンツアイテムに対応する少なくとも1つの出力信号を生成し得る(動作330)し、クライアントコンピュータデバイス150に出力信号を提供し得る(動作335)。例えば、インターフェース115は、データ処理システム105からクライアントコンピュータデバイス150に出力信号を含むデータパケットを送信し得る。データ処理システム105は、データ処理システム105が、期間T1〜T7のうちの1つの満了などといった、条件の発生を検出するまでは、または、クライアントコンピュータデバイス150から承諾の受信をするまでは、データパケットの送信を遅延または阻止し得る。
【００６５】
出力信号は、クライアントコンピュータデバイス150(例えば、クライアントコンピュータデバイス150に常駐し実行されるアプリまたはデータ処理システム105の他のコンポーネント)に、スピーカ154を駆動して出力信号(および、コンテンツアイテム)に対応する音波を生成させ得る。クライアントコンピュータデバイス150からのコンテンツアイテムについての本オーディオ出力は、第1のアクション205の発生の前(例えば、時間T2の前)に、または、第2のアクション210の発生の前(例えば、時間T-4の前)に発生し得る。方法300は、クライアントコンピュータデバイス150からコンテンツアイテムに対する応答を受信し得る(動作340)。例えば、データ処理システム105は、タクシーの予約またはイベントチケットの購入といった要求などのアクションを開始または行うという要求するクライアントコンピュータデバイスに入力されたオーディオから生成される応答信号を受信し得る(動作340)。ダイレクトアクションAPI135は、プログラムを起動して、要求されたアクションを行い得るまたは開始し得る。本アクションは、応答信号の受信(動作340)だけでなく、例えば、時間T-4と時間T-5との間の境界における第2のアクション210の終了といったアクションの完了の時間などの他の因子にも基づいて、ダイレクトアクションAPIによって開始され得る。アクションはまた、キャンセルされ得る。例えば、応答信号を受信した(動作340)後に、データ処理システム105は、スレッドのアクションのキャンセルまたは終了、スレッドの変化、またはクライアントコンピュータデバイス150からのキャンセル要求のデータ処理システム105による受信により、アクションをキャンセルし得る。
【００６６】
図4は、例コンピュータシステム400のブロック図である。コンピュータシステムまたはコンピュータデバイス400は、システム100またはデータ処理システム105などのそのコンポーネントを含み得るし、また実施するために使用され得る。コンピューティングシステム400は、バス405または情報を通信するための他の通信コンポーネントと、プロセッサ410または情報を処理するためにバス405に接続されている処理回路とを含む。コンピューティングシステム400はまた、1つまたは複数のプロセッサ410または情報を処理するためにバスに接続されている処理回路を含み得る。コンピューティングシステム400はまた、ランダムアクセスメモリ(RAM)などのメインメモリ415、または、情報もしくはプロセッサ410によって実行される命令を記憶するためにバス405に接続されている他の動的ストレージデバイスを含み得る。メインメモリ415は、データリポジトリ145であり得るし含み得る。メインメモリ415はまた、プロセッサ410による命令の実行中の、位置情報、一時的な変数、または他の中間情報を記憶するために使用され得る。コンピューティングシステム400は、リードオンリーメモリ(ROM)420、または、プロセッサ410のための静的情報および命令を記憶するためにバス405に接続されている他の静的ストレージデバイスをさらに含み得る。ソリッドステートデバイス、磁気ディスク、または光ディスクなどのストレージデバイス425は、情報および命令を永続的に記憶するためにバス405に接続され得る。ストレージデバイス425は、データリポジトリ145の一部を含み得るしその一部であり得る。
【００６７】
コンピューティングシステム400は、情報をユーザに表示するために、液晶ディスプレイ、またはアクティブ行列ディスプレイなどのディスプレイ435にバス405を介して接続されていてもよい。英数字および他のキーを含むキーボードなどの入力デバイス430は、プロセッサ410と情報およびコマンド選択を通信するためにバス405に接続されていてもよい。入力デバイス430は、タッチスクリーンディスプレイ435を含み得る。入力デバイス430はまた、プロセッサ410に方向情報およびコマンド選択を通信するために、および、ディスプレイ435上のカーソル移動を制御するために、マウス、トラックボール、またはカーソル方向キーなどのカーソル制御を含み得る。ディスプレイ435は、例えば、データ処理システム105の一部、クライアントコンピュータデバイス150、または図1の他のコンポーネントであり得る。
【００６８】
本明細書に記載のプロセス、システム、および方法は、プロセッサ410がメインメモリ415に含まれる命令の配列を実行したことに応じてコンピューティングシステム400によって実施され得る。そのような命令は、ストレージデバイス425などの別のコンピュータ可読媒体からメインメモリ415に読み出され得る。メインメモリ415に含まれる命令の配列の実行は、コンピューティングシステム400に本明細書に記載の事例的なプロセスを実行させる。また、マルチプロセッシング構成における1つまたは複数のプロセッサが、メインメモリ415に含まれる命令を実行するために使用されてもよい。ハード・ワイヤード回路が、ソフトウェア命令の代わりに、本明細書に記載のシステムおよび方法とともにソフトウェア命令と組み合わせて使用され得る。本明細書に記載のシステムおよび方法は、ハードウェア回路とソフトウェアとの任意の特定の組合せに限定されない。
【００６９】
例示的なコンピューティングシステムを図4に記載しているが、本明細書において説明したオペレーションを含む発明特定事項を、他のタイプのデジタル電子回路の形式で、または、本明細書において開示した構造およびその構造的均等物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアの形式で、または、それらの1つまたは複数の組合せの形式で実装し得る。
【００７０】
本明細書で述べているシステムがユーザに関する個人情報を収集する状況または個人情報を使用する場合がある状況については、ユーザは、プログラムまたは機能が個人情報(例えば、ユーザのソーシャルネットワークに関する情報、ソーシャルアクションもしくはアクティビティ、ユーザのプリファレンス、またはユーザのロケーション)を収集してもよいかどうかを制御する、または、コンテンツサーバまたは他のデータ処理システムからユーザにより関連のありそうなコンテンツを受信するかどうかもしくはどのように受信するかを制御する機会が提供され得る。加えて、個人を識別可能な情報がパラメータを生成する際に除去されるように、あるデータが、それが記憶または使用される前に1つまたは複数の方法で匿名化されてもよい。例えば、個人を識別可能な情報がユーザを特定できないように、ユーザのIDが匿名化され得る、または、ユーザの特定のロケーションを特定できないように、ユーザの地理的ロケーションを一般化し位置情報が(市、郵便番号、または州レベルなどで)取得され得る。そのため、ユーザは、彼または彼女に関するとともにコンテンツサーバによって使用される情報がどのように収拾されるかについての制御を有し得る。
【００７１】
本明細書において説明した発明特定事項およびオペレーションは、デジタル電子回路の形式で、または、本明細書において開示した構造およびその構造的均等物を含む、コンピュータソフトウェア、ファームウェア、もしくはハードウェアの形式で、または、それらの1つまたは複数の組合せの形式で実装し得る。本明細書において説明した発明特定事項は、データ処理装置による実行のために1つまたは複数のコンピュータ記憶媒体に組み込まれる、1つまたは複数のコンピュータプログラム、例えば、コンピュータプログラム命令の1つまたは複数の回路として、または、データ処理装置のオペレーションを制御するために、実装され得る。あるいはまたは加えて、プログラム命令は、人工的に生成した伝搬信号、例えば、データ処理装置による実行のために適切な受信装置への伝送のための情報を符号化するために生成した、機械生成された電気、光、または電磁気信号上に組み込まれ得る。コンピュータ記憶媒体は、コンピュータ可読ストレージデバイス、コンピュータ可読ストレージ回路基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらの1つまたは複数の組合せであり得るし、それに含まれ得る。コンピュータ記憶媒体は伝搬信号ではないが、コンピュータ記憶媒体は、人工的に生成した伝搬信号に符号化されたコンピュータプログラム命令の送信元または送信先であり得る。コンピュータ記憶媒体はまた、1つまたは複数の別個のコンポーネントまたは媒体(例えば、複数のCD、ディスク、または他のストレージデバイス)であり得るし、それに含まれ得る。本明細書において説明したオペレーションは、1つまたは複数のコンピュータ可読ストレージデバイスに記憶されている、または、他のソースから受信されたデータに対するデータ処理装置によって行われるオペレーションとして実施され得る。
【００７２】
用語「データ処理システム」、「コンピュータデバイス」、「コンポーネント」、または「データ処理装置」は、例として、プログラマブルプロセッサ、コンピュータ、システム・オン・チップ、または、前述したうちのいくつかもしくはその組合せを含む、データを処理するための様々な装置、デバイス、およびマシンを含む。装置は、特殊用途論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)を含み得るし。装置はまた、ハードウェアに加えて、当該のコンピュータプログラムのための実行環境を作成するコード、例えば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、仮想マシン、またはそれらのうちの1つまたは複数の組合せを構成するコードを含み得る。装置および実行環境は、ウェブサービス、分散コンピューティング、およびグリッドコンピューティングインフラなどの様々な異なるコンピューティングモデルインフラを実現し得る。ダイレクトアクションAPI135、コンテンツ選択コンポーネント125、予測コンポーネント120またはNLPコンポーネント110、および他のデータ処理システム105のコンポーネントは、1つまたは複数のデータ処理装置、システム、コンピュータデバイス、またはプロセッサを含み得るまたは共有し得る。
【００７３】
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリ、スクリプト、またはコードとしても知られている)は、コンパイル型またはインタプリタ型言語、宣言型または手続き型言語を含む、プログラミング言語の任意の形式で記述され得るし、スタンドアローンプログラムとして、または、モジュール、コンポーネント、サブルーチン、オブジェクト、もしくはコンピューティング環境において使用するのに適した他のユニットとして、という任意の形式で、デプロイされ得る。コンピュータプログラムは、ファイルシステム内のファイルに相当し得る。コンピュータプログラムは、当該のプログラム専用の単一のファイルにおいて、または、複数の協調ファイル(例えば、1つまたは複数のモジュール、サブプログラム、またはコードの部分を記憶しているファイル)において、他のプログラムまたはデータ(例えば、マークアップ言語文書に記憶されている1つまたは複数のスクリプト)を保持しているファイルの一部に記憶され得る。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトもしくは複数に分散されたサイトに設置されるとともに通信ネットワークによって相互接続されている複数のコンピュータ上で、実行されるようにデプロイされ得る。
【００７４】
本明細書において説明したプロセスおよびロジックフローは、1つまたは複数のコンピュータプログラムを実行して入力データを処理して出力を生成することによってアクションを行う、1つまたは複数のプログラマブルプロセッサ(例えば、データ処理システム105のコンポーネント)によって行われ得る。プロセスおよびロジックフローはまた、特殊用途論理回路、例えば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路)によって行われ得るし、装置はまた、そのような特殊用途論理回路として実装され得る。コンピュータプログラム命令およびデータを記憶するのに適したデバイスは、すべての形式の不揮発性メモリ、メディア、およびメモリデバイスを含み、例として、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスといった半導体メモリデバイス、例えば、内部ハードディスクまたはリムーバブルディスクといった磁気ディスク、光磁気ディスク、CD ROMおよびDVD-ROMディスクを含む。プロセッサおよびメモリは、特殊用途論理回路によって補完され得る、または、特殊用途論理回路に組み込まれ得る。
【００７５】
本明細書に記載の発明特定事項は、例えば、データサーバとして、バックエンドコンポーネントを含む、または、例えば、アプリケーションサーバといった、ミドルウェアコンポーネントを含む、または、例えば、それを介してユーザが本明細書において説明した発明特定事項の実施形態とやりとりすることができるグラフィックユーザインターフェースもしくはウェブブラウザを有するクライアントコンピュータといった、フロントエンドコンポーネントを含む、コンピューティングシステム内に、または、1つまたは複数のそのようなバックエンド、ミドルウェア、またはフロントエンドコンポーネントの組合せで、実装され得る。システムのコンポーネントは、任意の形式または媒体のデジタルデータ通信、例えば、通信ネットワークによって相互通信され得る。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(例えば、インターネット)、ならびにピア・ツー・ピアネットワーク(例えば、アドホックピア・ツー・ピアネットワーク)を含む。
【００７６】
システム100またはシステム400などのコンピューティングシステムは、クライアントおよびサーバを含み得る。クライアントおよびサーバは、一般的に互いにリモートに存在し、通信ネットワーク(例えば、ネットワーク165)を介して通常はやりとりをする。クライアントとサーバとの関係は、それぞれのコンピュータ上で動作するとともに互いにクライアントサーバ関係を有しているコンピュータプログラムによって構築される。いくつかの実施形態においては、サーバは、(例えば、データを表示することおよびクライアントデバイスとやりとりをするユーザからユーザ入力を受信することを目的として)データ(例えば、コンテンツアイテムを表すデータパケット)をクライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(例えば、ユーザインタラクションの結果)は、サーバにおいてクライアントデバイスから受信され得る(例えば、コンピュータデバイス150またはコンテンツプロバイダコンピュータデバイス155またはサービスプロバイダコンピュータデバイス160からデータ処理システム105によって受信され得る)。
【００７７】
オペレーションを特定の順序で図面に記述しているが、そのようなオペレーションを図示した特定の順序またはシーケンシャル順序で行う必要があるわけではなく、図示したすべてのオペレーションを行う必要もない。本明細書に記載のアクションを異なる順序で行うことができる。
【００７８】
様々なシステムコンポーネントの分離は、すべての実施形態において分離を必要としているわけでなく、説明したプログラムコンポーネントを、単一のハードウェアまたはソフトウェア製品に含めることができる。例えば、NLPコンポーネント110、コンテンツ選択コンポーネント125、または予測コンポーネント120は、単一のコンポーネント、アプリ、またはプログラム、または1つまたは複数の処理回路を有するロジックデバイス、またはデータ処理システム105の1つまたは複数のサーバの一部であり得る。
【００７９】
ここまでいくつかの事例的な実施形態を説明してきたが、例として提示された前述してきたものは事例的なものであり限定ではないことは明らかであろう。詳細には、本明細書で提示した例の多くが特定の組合せの方法の動作またはシステム要素を含んでいるが、これらの動作およびこれらの要素は、同一の目的を実現するために他の方法で組み合わされてもよい。ある実施形態に関連して説明した動作、要素、および特徴は、他の実施形態または複数の実施形態における同様の役割を排除することを意図していない。
【００８０】
本明細書において使用されている表現および用語は、説明を目的としており、限定としてみなすべきではない。本明細書における「含む」、「備える」、「有する」、「包含する」、「伴う」、「と特徴付けられる」、「という点で特徴付けられる」、およびその変形の使用は、それ以降に列挙した項目、その均等物、および追加の項目だけでなく、排他的にそれ以降に列挙した項目を含む代替の実施形態も包含することを意味している。ある実施形態においては、本明細書に記載のシステムおよび方法は、説明した要素、動作、またはコンポーネントのうちの1つ、2つ以上の各組合せ、すべてで構成される。
【００８１】
単数形とみなされる本明細書のシステムおよび方法の実施形態または要素または動作に対するいかなる言及も、これらの要素を複数含む実施形態を含み得るし、本明細書における任意の実施形態または要素または動作に対する複数形での任意の言及も、単一の要素のみを含む実施形態を含み得る。単数形または複数形での言及は、本明細書において開示したシステムまたは方法、そのコンポーネント、動作、または要素を単数または複数の構成に限定することを意図していない。任意の情報、動作、または要素に基づいた任意の動作または要素に対する言及は、動作または要素が任意の情報、動作、または要素の少なくとも一部に基づいている実施形態を含み得る。
【００８２】
本明細書に開示の任意の実施形態は、任意の他の実施形態と組み合わせてもよく、「ある実施形態」、「いくつかの実施形態」、「一実施形態」などの言及は、必ずしも相互に排他的である必要はなく、実施形態に関連して説明した特定の特徴、構造、または特性が少なくとも1つの実施形態に含まれ得ることを示すことを意図している。本明細書で使用されているそのような用語は、必ずしも同一の実施形態を指しているそのすべてというわけではない。任意の実施形態は、本明細書に開示の態様および実施形態に準拠する任意の方式で、包含的または独占的に、任意の他の実施形態と組み合わせてもよい。
【００８３】
「または」に対する言及は、「または」を使用して記載された任意の用語が記載した用語の単数、2つ以上、およびすべてのいずれかを示し得るように、包含的なものとして解釈され得る。例えば、「少なくとも1つのAおよびB」に対する言及は、Aだけ、Bだけでなく、AとBの両方も含み得る。「含む」または他のオープン用語(open terminology)とともに使用されたそのような言及は、追加の項目を含み得る。
【００８４】
ここで、図面、詳細な発明の説明、または任意の請求項における技術的特徴の後に参照符号が存在しており、参照符号は、図面、詳細な発明説明、および請求項の理解度を増大させるために含まれている。それゆえ、参照符号が存在していても存在していなくても、請求項の任意の構成要素の範囲に対する影響を限定するものではない。
【００８５】
本明細書に記載のシステムおよび方法は、その特性から逸脱しない限り他の特定の形式で具現化されてもよい。例えば、データ処理システム105は、第2のアクション210が完了したまたは今から開始するところであることを示す第2のアクション210からのデータなどといった、スレッド200の一連のアクションのうちの先行アクションからのデータに部分的に基づいて、後続のアクションに関する(例えば、第3のアクション215に関する)コンテンツアイテムを選択し得る。前述の実施形態は、説明したシステムおよび方法を限定するものではなく事例的なものである。そのため、本明細書に記載のシステムおよび方法の範囲は、前述の説明よりむしろ添付の特許請求の範囲に示されており、特許請求の範囲と均等な意味および範囲内にある変形はそこに含まれる。
【符号の説明】
【００８６】
100  システム
105  データ処理システム
110  自然言語プロセッサコンポーネント
115  インターフェース
120  予測コンポーネント
125  コンテンツ選択コンポーネント
130  オーディオ信号ジェネレータコンポーネント
135  ダイレクトアクションAPI
140  セッションハンドラ
145  データリポジトリ
146  パラメータ
147  ポリシー
148  コンテンツデータ
149  テンプレート
150  クライアントコンピュータデバイス
151  センサ
152  トランスデューサ
153  オーディオドライバ
154  スピーカ
155  コンテンツプロバイダデバイス
160  サービスプロバイダデバイス
161  サービスプロバイダ自然言語プロセッサコンポーネント
162  サービスプロバイダインターフェース
165  ネットワーク
200  スレッド
205  第1のアクション
210  第2のアクション
215  第3のアクション
220  スレッドのアクティブ期間
305  データパケットを受信する
310  要求およびトリガキーワードを識別する
315  スレッドを決定する
320  第3のアクションの指示を提供する
325  コンテンツアイテムを選択する
330  出力信号を生成する
335  クライアントコンピュータデバイスに出力信号を提供する
340  コンテンツアイテムに対する応答を受信する
400  システム
405  バス
410  プロセッサ
415  メインメモリ
420  ROM
425  ストレージデバイス
430  入力デバイス
435  ディスプレイ
【図１】
2020038691.tif 000003
【図２】
2020038691.tif 000004
【図３】
2020038691.tif 000005
【図４】
2020038691.tif 000006
【外国語明細書】
2020038691000001.pdf