(58)【調査した分野】(Int.Cl.,DB名)
前記一致を判定するステップが、前記第1の音声入力の前記転写において生じる前記1つまたは複数のnグラムと、前記特定の対話状態にマッピングされるnグラムの前記対応するセット内の前記1つまたは複数のnグラムとの間の意味関係を判定するステップを含む、請求項4に記載のコンピュータ実装方法。
前記コンピューティングデバイスにおいて前記第1の音声入力が向けられたアプリケーションを示すアプリケーション識別子を、前記コンピューティングシステムにおいて受信するステップをさらに含み、
前記複数の対話状態が、前記第1の音声入力が向けられた前記アプリケーションに関するアプリケーション固有のタスクに関係する、請求項1に記載のコンピュータ実装方法。
前記第1のディスプレイデータが、前記第1の音声入力が前記コンピューティングデバイスに提供されたとき、前記コンピューティングデバイスの前記スクリーン上に表示された前記コンテンツに関する情報を提示するデータを処理することから結果として得られるハッシュ値を含む、請求項1に記載のコンピュータ実装方法。
【発明の概要】
【課題を解決するための手段】
【0003】
音声入力に対応する対話状態を判定して、判定された対話状態に基づいて言語モデルにバイアスをかけるためのシステム、方法、デバイス、および他の技法について本明細書で説明する。いくつかの実装形態では、スピーチ認識システムは、対話状態および各それぞれの対話状態に対する言語モデルバイアスモードのセットを自動的に学習することができる。対話状態およびバイアスモードは、ユーザによって定義されることなく判定され得る。
【0004】
本明細書で説明する主題のいくつかの実装形態は、コンピュータ実装方法を含む。この方法は、コンピューティングシステムにおいて、音声入力を示すオーディオデータを受信するステップと、複数の対話状態の中から音声入力に対応する特定の対話状態を判定するステップとを含み得る。音声入力に対応する特定の対話状態に関連付けられるnグラムのセットを識別することができる。nグラムのセットは、対話状態に対応する履歴音声入力において頻繁に生じるnグラムのセット内のnグラムに少なくとも基づいて特定の対話状態に関連付けられてよい。音声入力に対応する特定の対話状態に関連付けられるnグラムのセットを識別することに応じて、言語モデルがnグラムのセット内のnグラムに関して示す確率スコアを調整することによって、言語モデルにバイアスをかけることができる。調整された言語モデルを使用して音声入力を転写することができる。
【0005】
これらのおよび他の実装形態は、オプションで、以下の特徴のうちの1つまたは複数を含み得る。
【0006】
複数の対話状態は、特定のタスクに関係するコンピューティングデバイスとのユーザ音声対話の複数の段階をそれぞれ示す。
【0007】
コンピューティングシステムは、第2の音声入力を受信することができ、複数の対話状態の中から第2の音声入力に対応する第2の特定の対話状態を判定することができる。第2の音声入力に対応する第2の特定の対話状態に関連付けられるnグラムの第2のセットを識別することができる。nグラムの第2のセットは、音声入力に対応する特定の対話状態に関連付けられるnグラムのセットとは異なり得る。
【0008】
音声入力に対応する特定の対話状態を判定するステップは、複数の対話状態の中から音声入力に先行した第2の音声入力に対応する第2の特定の対話状態を識別するステップであって、音声入力および第2の音声入力が各々、同じタスクに関係する、識別するステップと、第2の特定の対話状態の後に生じる可能性が高い複数の対話状態の中の1つまたは複数の対話状態を示すデータに基づいて、音声入力に対応する特定の対話状態を判定するステップとを含み得る。
【0009】
音声入力に対応する特定の対話状態を判定するステップは、音声入力の転写を生成するステップと、音声入力の転写において生じる1つまたは複数のnグラムと特定の対話状態に関連付けられるnグラムのセット内の1つまたは複数のnグラムとの間の一致を判定するステップとを含み得る。
【0010】
一致を判定するステップは、音声入力の転写において生じる1つまたは複数のnグラムと特定の対話状態に関連付けられるnグラムのセット内の1つまたは複数のnグラムとの間の意味関係を判定するステップを含み得る。
【0011】
音声入力に関連付けられるコンテキストを示すデータを受信することができる。音声入力に対応する特定の対話状態を判定するステップは、音声入力に関連付けられるコンテキストに基づいて、特定の対話状態を識別するステップを含み得る。
【0012】
音声入力に関連付けられるコンテキストは、音声入力が受信された時点で、音声入力が受信されたコンピューティングデバイスのユーザインターフェースのディスプレイを特徴付けるデータを含み得る。音声入力に関連付けられるコンテキストに基づいて特定の対話状態を識別するステップは、音声入力が受信された時点で、音声入力が受信されたコンピューティングデバイスのユーザインターフェースのディスプレイを特徴付けるデータに基づいて、特定の対話状態を識別するステップを含み得る。
【0013】
コンピューティングデバイスにおいて、音声入力が向けられた(directed to)アプリケーションを示すアプリケーション識別子を受信することができる。複数の対話状態は、音声入力が向けられたアプリケーションに対するアプリケーション固有のタスクに関係し得る。
【0014】
本明細書で説明する主題のいくつかの実装形態は、別のコンピュータ実装方法を含む。この方法は、多段階対話における異なる段階に対応する音声入力の複数の転写を取得するステップを含み得る。複数の転写の中の各転写に関して、その転写において生じるnグラムのセットを識別することができる。複数の転写の中の、nグラムの識別されたセットが関係すると判定される転写のそれぞれのサブセットを複数の転写グループの各々に割り当てることによって、複数の転写グループを生成することができる。複数の転写グループに基づいて、多段階対話において生じる複数の対話状態と各対話状態に関連付けられるnグラムのそれぞれのセットとを示すモデルを判定することができる。判定されたモデルは、スピーチ認識プロセスにおいて使用される言語モデルにバイアスをかけるために使用され得る。
【0015】
これらのおよび他の実装形態は、オプションで、以下の特徴のうちの1つまたは複数を含み得る。
【0016】
複数の対話状態の各々が転写グループのそれぞれのサブセットに対応し、複数の対話状態の各々に関する転写グループのそれぞれのサブセットが互いに異なるように、複数の転写グループ内のグループの各々を複数の対話状態の中のそれぞれの対話状態に割り当てることによって、複数の対話状態を判定することができる。複数の対話状態の中の各対話状態に関連付けられるnグラムのそれぞれのセットは、対話状態に対応する転写グループのそれぞれのサブセット内の転写において生じるnグラムの識別されたセットに基づいて、選択され得る。
【0017】
複数の対話状態の中の第1の対話状態は、転写グループのうちの2つ以上を含む転写グループの第1のサブセットに対応し得る。
【0018】
複数の転写グループを生成するステップは、互いに意味的に類似すると判定される転写グループを形成するステップを含み得る。
【0019】
コンピューティングシステムは、音声入力のうちの少なくともいくつかが多段階対話において提出された順序を示すデータを受信することができる。音声入力のうちの少なくともいくつかが多段階対話において提出された順序を示すデータに少なくとも基づいて、複数の対話状態内の対話状態のシーケンスを判定することができる。シーケンス情報は、各それぞれの対話状態に関して、それぞれの対話状態に続く1つまたは複数の他の対話状態またはそれぞれの対話状態に先行する1つまたは複数の他の対話状態を示し得る。
【0020】
音声入力の複数の転写は、多段階対話内の複数の対話状態の中の各それぞれの対話状態に関して、複数の対話状態の中のそれぞれの対話状態に対応する音声入力の複数の転写を含み得る。
【0021】
コンピューティングシステムは、複数の転写のうちの少なくともいくつかに対応する音声入力に関連付けられるそれぞれのコンテキストを示すデータを受信することができる。複数の転写グループを生成するステップは、複数の転写のうちの少なくともいくつかに対応する音声入力に関連付けられるそれぞれのコンテキストを示すデータにさらに基づいて、転写をグループ化するステップを含み得る。
【0022】
複数の転写の中の第1の転写に対応する第1の音声入力に関連付けられるそれぞれのコンテキストは、第1の音声入力が受信された時点で、第1の音声入力が受信されたコンピューティングデバイスのユーザインターフェースのディスプレイを特徴付けるデータを含み得る。
【0023】
本明細書で説明する主題のいくつかの実装形態は、コンピューティングシステムを含み得る。このコンピューティングシステムは、1つまたは複数のプロセッサと1つまたは複数のコンピュータ可読媒体とを含み得る。このコンピュータ可読媒体は、実行されると、音声入力を示すオーディオデータを受信することと、複数の対話状態の中から音声入力に対応する特定の対話状態を判定することと、音声入力に対応する特定の対話状態に関連付けられるnグラムのセットを識別することであって、nグラムのセットが、対話状態に対応する履歴音声入力において頻繁に生じるnグラムのセット内のnグラムに少なくとも基づいて、特定の対話状態に関連付けられる、識別することと、音声入力に対応する特定の対話状態に関連付けられるnグラムのセットを識別することに応じて、nグラムのセット内のnグラムの言語モデルによって示される確率スコアを増大させることによって、言語モデルを調整することと、調整された言語モデルを使用して音声入力を転写することとを含む動作を実行させる命令を記憶する。
【0024】
いくつかの実装形態では、本明細書で説明する技法は、場合によっては、以下の利点のうちの1つまたは複数を実現することができる。スピーチ認識装置は、音声入力に対応すると判定される対話状態に基づいてバイアスがかけられた言語モデルを使用して、音声入力のより正確な転写を生成することができる。その上、アプリケーション開発者が、彼らのそれぞれのアプリケーション内の対話状態を追跡する必要がないように、またはそれぞれのアプリケーションに関する音声入力を転写するスピーチ認識システムに対話状態識別子を提供する必要がないように、人間と機械の対話において生じる対話状態は、コンピューティングシステムによって自動的に判定され得る。いくつかの実装形態では、コンピューティングシステムは、履歴音声入力および転写の分析に基づいて、複数の対話状態に関連付けられるnグラムのそれぞれのセットを判定することができる。nグラムのセットを使用して、所与の転写要求に対してどの対話状態が検出されるかに基づいて異なる方法で言語モデルにバイアスをかけることができる。有益には、いくつかの実装形態では、これらの技法は、アプリケーション開発者が各対話状態に関連付けられるnグラムのセットをスピーチ認識システムに手動で提供する必要をなくすことができる。
【発明を実施するための形態】
【0026】
様々な図内の類似の符号は類似の要素を示す。
【0027】
本書は、一般に、音声入力をテキストに転写するためにスピーチ認識装置によって使用され得る言語モデルなど、言語モデルにバイアスをかけるために対話状態を識別および使用するためのシステム、方法、デバイス、および他の技法について説明する。たとえば、アプリケーションまたはアプリケーション開発者が対話状態または所与の音声入力転写要求に関連付けられるnグラムを明示的に識別せずに、対話状態およびnグラムを自動的に判定するための技法について説明する。これらの技法および他の技法について、図面に関してさらに詳細に説明する。
【0028】
図1を参照すると、音声入力110に対応する、識別された対話状態に基づいてバイアスがかけられている言語モデル120を使用して音声入力110をテキストに転写するある例示的なプロセス100を実行するコンピューティングシステムの概念図が示されている。このシステムは、ユーザデバイス108と通信しているスピーチ認識装置102を含む。ユーザデバイス108は、一般に、ユーザからの音声入力を検出することが可能な任意のタイプのコンピューティングデバイスであってよい。たとえば、ユーザデバイス108は、デスクトップコンピュータ、ノートブックコンピュータ、スマートフォン、タブレットコンピューティングデバイス、テレビジョンもしくは他のマルチメディアデバイス、またはスマートウォッチなどの装着可能なコンピューティングデバイスであってよい。ユーザデバイス108は、音声入力を検出するマイクロフォンと、音声入力をデジタルオーディオデータに変換するソフトウェアおよび回路(たとえば、アナログ-デジタル変換機)とを含み得る。
【0029】
いくつかの実装形態では、スピーチ認識装置102は、ユーザデバイス108から離れた1つまたは複数のコンピュータ上で動作することができる。たとえば、スピーチ認識装置102は、1つまたは複数のネットワーク(たとえば、インターネット)を介してスピーチ認識装置102と通信している多くの異なるユーザデバイスからの音声入力を転写するクラウドベースのスピーチ認識サービスを提供し得る。このようにして、スピーチ認識タスクが潜在的により大きな計算能力を備えたリモートサーバにオフロードされることにより、それぞれのユーザデバイスにおけるコンピューティングリソースを節約することができる。いくつかの実装形態では、ユーザデバイス108がオフラインであり、ネットワーク接続が利用可能でないときですら、スピーチ認識能力を可能にするために、スピーチ認識装置102をユーザデバイス108上に局所的に提供することができる。
【0030】
プロセス100は、ユーザ106が音声入力110をユーザのデバイス108に提供するときに開始する。発話の前に、ユーザ106は、デバイス108が音声入力を検出して、検出されたスピーチの転写を生成するためにスピーチ認識装置102と通信することを可能にするモードをデバイス108上でアクティブ化した可能性がある。
図1に表す例では、ユーザ106は、「ペパローニとマッシュルーム」という表現を発話した。この表現は、ユーザがピザレストランに注文するためにデバイス108上のアプリケーションを用いて行った多段階対話の文脈で発話された可能性がある。たとえば、ユーザ106は、ユーザの入力を受信するための入力フィールド(たとえば、テキストフィールド、ドロップダウンメニュー、または無線ボタン選択器)の収集物を含むユーザインターフェース内に提示されるフォーム(たとえば、デバイス108上へのウェブページまたはネイティブアプリケーションの提示)を仕上げることによって、ユーザのピザ注文に対するオプションを選択することができる。いくつかの実装形態では、デバイス108は、ユーザ106がタイピングまたは音声入力など、異なる入力機構を使用してフィールドの各々の中に入力を提供することを可能にし得る。タイプされた入力を用いて、ユーザ106は、キーボードを通して様々なフィールド内にテキストを直接入力することができ、音声入力を用いて、ユーザ106は、テキストに変換される音声入力として様々なフィールド内に提供されることになるテキストを口述する。いくつかの実装形態では、ユーザ106は、デバイス108上の音声アシスタントと対話することができ、その中で、デバイス108は、ユーザ106に視覚的にかつ/または聴覚的に提示される一連の質問(たとえば、「どのサイズのピザの注文をご希望ですか?」、「ご注文のピザにどのトッピングをご希望ですか?」、「何か付け合わせの追加をご希望ですか?」)に応じて、音声入力を提供するようにユーザ106に指示する。
【0031】
動作A(104)において、音声入力110を受信するとすぐに、デバイス108は、スピーチ認識装置102に対して音声入力110をテキストに転写する要求112を生成する。スピーチ認識装置102がユーザデバイス108から離れている場合、ネットワークを介して転写要求112をスピーチ認識装置102に送信することができる。要求112は1つまたは複数の構成要素を含み得る。一般に、要求は、音声入力110に対するデジタルオーディオデータを含むことになる。いくつかの実装形態では、要求112は、コンテキストデータ、アプリケーション識別子、対話識別子、対話状態識別子、またはこれらのうちの2つ以上の組合せをさらに含み得る。いくつかの実装形態では、要求112は、追加のコンテキストデータ、アプリケーション識別子、対話識別子、または対話状態識別子を伴わずに、音声入力110に対するデジタルオーディオのみを含み得る。
【0032】
要求112内のコンテキストデータは、一般に、スピーチ認識装置102が転写を判定するために使用することができる音声入力110に関するオーディオデータ以外の任意のデータを含み得る。一部のタイプのコンテキストデータは、音声入力108がデバイス108によって検出された時点またはほぼその時点のユーザデバイス108のコンディションまたは状態を示し得る。以下でさらに説明するように、コンテキストデータの例は、ユーザアカウント情報、匿名ユーザプロフィール情報(たとえば、性別、年齢、ブラウジング履歴データ、デバイス108上に提出された前のクエリを示すデータ)、ロケーション情報、およびスクリーン署名(screen signature)(すなわち、音声入力110がデバイス108によって検出された時点またはほぼその時点でデバイス108によって表示されたコンテキストを示すデータ)を含む。いくつかの実装形態では、アプリケーション識別子、対話識別子、および対話状態識別子は、特別なタイプのコンテキストデータと見なされ得るが、ここでは、例として別個に論じる。
【0033】
スピーチ認識装置102によって識別されることが可能な複数のアプリケーションの中の、音声入力110が向けられた特定のアプリケーションを識別するアプリケーション識別子が要求112内に含まれ得る。いくつかの実装形態では、スピーチ認識装置102は、異なるアプリケーションに関する対話状態または他の言語モデルバイアスデータの異なるセットを記憶することができ、アプリケーション識別子は、音声入力110を転写する際に使用するための対話状態の適切なセットを判定するためにスピーチ認識装置102によって使用され得る。たとえば、スピーチ認識装置102は、ピザ注文アプリケーションに関する対話状態および言語モデルバイアスデータの第1のセットと、銀行取引に関する対話状態および言語モデルバイアスデータの異なる第2のセットとを記憶することができる。要求112内にアプリケーション識別子を含めることによって、スピーチ認識装置102は、たとえば、要求112がピザ注文アプリケーションに関係することを認識することができる。したがって、音声入力110を転写する際に使用するために、ピザ注文アプリケーションに関連付けられる対話状態および言語モデルバイアスデータの第1のセットを選択することができる。
【0034】
いくつかの実装形態では、音声入力110を転写する要求112は対話識別子を含み得る。対話識別子は、複数の対話の中の転写要求112が関係する特定の対話を示し得る。いくつかの実装形態では、対話識別子を使用して、単一のアプリケーション内で提供される複数の対話を区別することができる。たとえば、ピザ注文アプリケーションの一次対話は、ピザ注文を提出するための対話であり得る。しかしながら、アプリケーションは、ユーザがカスタマフィードバックを提出することを可能にする対話、またはユーザがアカウント設定を調整することを可能にする対話など、ユーザが異なる方法でアプリケーションと対話することを可能にする他の対話をさらに提供することができる。スピーチ認識装置102は、対話識別子を使用して、互いの考えられる対話を区別し、言語モデルにバイアスをかけて、音声入力110を転写するための適切なモデルおよびパラメータを選択することができる。
【0035】
いくつかの実装形態では、音声入力110を転写する要求112は、対話状態識別子を含み得る。対話状態識別子は、所与の対話内の複数の対話状態の中の転写要求112が関係する特定の対話状態を示し得る。対話状態は、一般に、ユーザがコンピューティングデバイスに音声入力を提供する対話の1つまたは複数の段階の表現である。対話の段階は、特定のタスクまたは活動に関する一連のユーザ対話を構成する。たとえば、ピザを注文する活動に関する対話は、それぞれの音声入力がピザサイズを選択するために受信される段階、トッピングを選択する段階、配達先住所を指定する段階、および支払情報を提供する段階を含み得る。対話状態は、活動の段階の各々に割り当てられてよく、いくつかの対話状態は複数の段階に割り当てられてよい。対話状態識別子は、段階のうちのどれに110音声入力が向けられているかを示し得る。いくつかの実装形態では、対話状態識別子は、言語モデル120にバイアスをかけるための方法を判定するためにスピーチ認識装置102によって使用される対話状態の真の表示であり得る。いくつかの実装形態では、対話状態、またはデバイスによる真の対話状態の推定を示す対話状態「ヒント」を(たとえば、整数の形で)提供することができる。スピーチ認識装置102は、対話状態ヒントを信頼することができるか、またはヒントが正確であるかどうかを検証するために他のデータ(たとえば、コンテキストデータ、対話状態履歴データ)を使用することもできる。
【0036】
動作B(114)において、スピーチ認識装置102は、要求112を処理して、要求112に関連付けられる(したがって、音声入力110に関連付けられる)対話状態を判定する。いくつかの実装形態では、スピーチ認識装置102は、要求112内に含まれた、音声入力110に関するオーディオデータ以外の情報を使用して要求112に関連する対話状態を判定することができる。たとえば、要求112が、アプリケーション識別子と、対話識別子と、対話状態識別子とを含む場合、すべての3つの情報を使用して対話状態を判定することができる。アプリケーション識別子は、1つまたは複数の対話のセットに関連付けられる特定のアプリケーションを識別することができる。対話識別子は、要求112がこれらの対話のうちのどれに関するかを識別することができ、対話状態識別子は、要求112が識別された対話の中のどの対話状態に関するかを識別することができる。いくつかの実装形態では、スピーチ認識装置102に何の情報も提供されない場合、またはこれらの情報の3つすべてに満たない情報が提供される場合ですら、対話状態は判定され得る。
【0037】
いくつかの実装形態では、スピーチ認識装置102は、他のタイプのコンテキストデータを使用して対話状態を選択することができる。たとえば、要求112は、音声入力110がデバイス108に提供された時点またはほぼその時点でデバイス108上に表示されたユーザインターフェースを特徴付けるハッシュ値(すなわち、スクリーン署名)を含み得る。その後、スピーチ認識装置102は、要求112内で受信したハッシュ値を異なる対話状態に関連付けられる所定のハッシュ値と比較することができる。次いで、音声入力110および要求112が対応すると判定される対話状態として、要求112内で受信したハッシュ値に一致する所定のハッシュ値に関連付けられる特定の対話状態を選択することができる。いくつかの実装形態では、対話状態の選択は、2つ以上のタイプのコンテキストデータ(たとえば、スクリーン署名、対話状態ヒント、および音声入力110が検出されたときのデバイス108の地理的ロケーションを示すロケーションインジケータ)に基づき得る。いくつかの実装形態では、スピーチ認識装置102は、複数のタイプのコンテキストデータを含む複数の信号に基づいて、予測された対話状態を出力する分類子を使用することによって、対話状態を選択することができる。分類子は、規則ベースであってよく、または機械学習プロセス(たとえば、ニューラルネットワーク)によって訓練されてもよい。
【0038】
図1の例では、複数の対話状態の各々をそれぞれのコンテキストデータおよび1つまたは複数のnグラム(たとえば、言語モデルバイアスデータ)のそれぞれのセットに相関させるデータ構造116の表現が示されている。具体的には、ピザ注文対話における異なる段階に対応する5つの対話状態が示されている。たとえば、対話状態「1」は、配達または持ち帰りオプションに対するユーザの選好に関するが、対話状態「2」は、クラストタイプに関するユーザの選好に関し、対話状態「3」は、ピザのトッピングに関するユーザの選好に関する。いくつかの実装形態では、対話は、ユーザからの類似の応答を導き出す、対話の複数の異なる段階におけるそれぞれの指示を含み得る。異なる指示の各々は異なるコンテキストデータに関連付けられてよいが、スピーチ認識装置102は、類似の指示および応答を単一の対話状態にマージした可能性がある。たとえば、ピザ注文アプリケーションは、ピザにどのトッピングを含めるかをユーザ106にたずねる第1の指示と、ユーザが割引価格で追加のトッピングを追加することを希望するかどうかをユーザ106にたずねる第2の指示とを含み得る。デバイス108は、第1の指示に対して要求112内で「1」のコンテキスト値(たとえば、対話状態識別子)を提供することができ、第2の指示に対して要求112内で「7」のコンテキスト値を提供することができる。しかしながら、これらの指示の各々に応じる音声入力の間の類似度により、スピーチ認識装置102は、両方の指示に対応する単一の対話状態を維持することができる。
【0039】
データ構造116は、各対話状態に関連付けられる1つまたは複数のnグラムのそれぞれのセットを識別する。所与の対話状態に関連付けられるnグラムのセットは、一般に、所与の対話状態に対応すると判定されている音声入力において頻繁に生じる、語、成句、数、または他の言語単位(すなわち、nグラム)を示す。たとえば、データ構造116は、ピザ注文に対する支払オプションに関して、対話状態「5」においてユーザが発言する可能性が高い用語として、nグラム「信用」、「支払い」、「ドル」、「セント」、「インストア(in-store)」、および「現金」を識別する。いくつかの実装形態では、対話状態の各々に割り当てられたそれぞれのnグラムは、前の転写要求の結果の分析に基づいてスピーチ認識装置102によって判定され得る。たとえば、スピーチ認識装置102(または、別のコンピューティングシステム)は、経時的に多くの異なるユーザからの音声入力の転写を記録することができる。次いで、音声入力転写において生じる最も使用頻度が高い(popular)用語(nグラム)のセットを判定し、対話状態と相関させることができる。したがって、アプリケーション開発者が各対話状態に関連付けられるnグラムのセットをスピーチ認識装置102に提供する必要は存在し得ない。むしろ、スピーチ認識装置102は、履歴転写結果の分析によってnグラムのセットを自動的に判定することができる。いくつかの実装形態では、所与の対話状態に関連付けられるnグラムのセットは、アプリケーション開発者が指定する他のnグラムとともに、アプリケーション開発者からの入力なしに自動的に判定されるnグラムの組合せを含み得る。
【0040】
動作C(118)において、プロセス100は、選択された対話状態に関連付けられるnグラムのセットを使用して、音声入力110をテキストに転写するためにスピーチ認識装置102によって使用される言語モデル120にバイアスをかける。一般に、言語モデル120は、言語シーケンスが音声入力の正確な転写を表す可能性(たとえば、確率)を判定するように構成される。たとえば、言語モデル120は、スピーチ認識装置102の音響モデルが生成する音素または他のスピーチ特徴のシーケンスを処理して、音声入力110の1つまたは複数の候補転写を判定することができる。言語モデル120は、それぞれの候補転写が音声入力の正確な転写である可能性を示す確率を候補転写の各々に割り当てることができる。次いで、転写結果として上位n個の候補転写をユーザデバイス108に戻すことができ、この場合、nは、所定の整数(たとえば、1、2、3、4、またはそれ以上)である。
【0041】
いくつかの実装形態では、言語モデル120は、言語データの1つまたは複数の集成内で語の異なるシーケンスがどの程度頻繁に生じるかを示す確率データに基づいて候補転写に対する確率を判定することができる。たとえば、言語モデル120は、「スリーブラインドマイス(three blind mice)」の転写に「ツリーブラインドマイス(tree blind mice)」よりも高いスコアを割り当てることができるが、これは、後者の言語シーケンスよりも、前者の言語シーケンスのほうが検索クエリの集成内でより頻繁に生じるためである。いくつかの実装形態では、言語モデル120は、シーケンス内のnまたはn-1個の前の語に基づいて言語シーケンス内で語を連続して予測するために条件付き確率を使用するnグラム言語モデルであってよく、この場合、nは、所定の整数(たとえば、1、2、3、4、またはそれ以上)である。
【0042】
スピーチ認識装置102は、音声入力110に対する転写結果が選択される対話状態に関連付けられるnグラムのセットからのnグラムを含む確率を増大または低減させるために、言語モデル120にバイアスをかけることができる。いくつかの実装形態では、言語モデル120にバイアスをかけて、選択される対話状態に割り当てられるnグラムのセットからのnグラムを含む候補転写を優先することができる。たとえば、
図1の棒グラフ122は、ピザのトッピングに関する、選択される対話状態(3)に関連付けられるnグラムの各々に適用される確率性「ブースト」を示す。したがって、バイアスがかけられていない言語モデルは候補転写「ペパローニとマッシュルーム」に0.20の確率スコアを割り当てることができるが、バイアスがかけられた言語モデルは、0.85の確率スコアを割り当てることができ、したがって、その候補転写がユーザの音声入力110のコンテンツを正確に表す高い確率を示す。
【0043】
いくつかの実装形態では、言語モデル120が記憶する確率データは選択される対話状態に関連付けられるnグラムのセットに関して増大し得るが、バイアスがかけられた言語モデル120は、選択されるセット内にnグラムを含まない(または、選択されるセット外部の1つまたは複数のnグラムを少なくとも含む)転写を依然として生成することが可能であり得る。しかしながら、nグラムの選択されるセットからのnグラムを含まない、バイアスがかけられた言語モデル120を用いて転写を生成する確率は、そのようなnグラムを含まない、バイアスがかけられていない言語モデルを用いて転写を生成する可能性と比較して低減され得る。いくつかの実装形態では、選択される対話状態に関するnグラムに関連付けられる確率を低減させることによって、言語モデル120にバイアスをかけることができる。いくつかの実装形態では、所与の対話状態は、バイアスがかけられた言語モデル120内の確率を増大させたnグラムの第1のセット、およびバイアスがかけられた言語モデル120内の確率を低減させたnグラムの第2のセットに関連付けられ得る。
【0044】
動作D(124)において、スピーチ認識装置102は、バイアスがかけられた言語モデル120を使用して、音声入力110に関する1つまたは複数の転写結果を判定することができる。いくつかの実装形態では、要求112に応じて、バイアスがかけられた言語モデル120が音声入力110の最も正確な転写である可能性が高いことを示す上位ランクの転写結果126(たとえば、「ペパローニとマッシュルーム」)を選択して、ユーザデバイス108に戻すことができる(動作E(128))。ユーザデバイス108は、次いで、たとえば、転写結果をテキストとしてフォームフィールド内に入力することができる。
【0045】
図2は、バイアスがかけられた言語モデル228を使用して音声入力210をテキストに転写するある例示的なプロセス200を実行するコンピューティングシステムの概念図である。プロセス200は、
図1のプロセス100と類似するが、プロセス200では、音声入力210に対応する対話状態を判定するために対話状態履歴データが少なくとも部分的に使用される。一般に、対話状態履歴データは、所与のユーザの対話セッション内で前に生じた1つまたは複数の対話状態を識別する。場合によっては、対話状態履歴データは、新しい転写要求に対する対話状態の直前の対話状態を識別することができる。スピーチ認識装置102は、次いで、対話状態フローモデルを評価して、どの対話状態が新しい要求に対する音声入力の直前にあるかの指示に基づいて、新しい転写要求に対する対話状態を予測することができる。いくつかの実装形態では、以下の段落で説明するように、対話状態履歴データを単独で(すなわち、他のコンテキストデータなしに)使用して、転写要求に関連付けられる対話状態を判定することができる。いくつかの実装形態では、コンテキストデータと対話状態履歴データの両方からを含めて、複数の信号をスピーチ認識装置102によって使用して、転写要求に関連付けられる対話状態を判定することができる。
【0046】
動作A(204)において、ユーザのデバイス208は、転写要求212を生成して、要求212をスピーチ認識装置202に送信する。要求212は、デバイス208が検出した音声入力210を特徴付けるオーディオデータを含む。この例では、音声入力210は、ユーザの発言「ペパローニとマッシュルーム」の記録である。要求212は、音声入力210を転写するためにスピーチ認識装置202によって使用可能な他のデータを含んでよく、または含まなくてもよい。いくつかの実装形態では、要求212は、アプリケーション識別子、対話識別子、対話状態識別子、他のコンテキストデータ、対話状態履歴データ、セッション識別子、またはこれらのうちの2つ以上の組合せをさらに含み得る。いくつかの実装形態では、要求212は、対話セッション内で生じた最後のn個の対話状態を識別する対話状態履歴データを含み得る。スピーチ認識装置202は、アプリケーションプログラミングインターフェース(API)をデバイス208に明らかにすることによって、またはその要求の転写結果230とともに、所与の要求に対応する対話状態識別子の指示をユーザデバイス208に提供することによって、対話状態履歴データをユーザデバイス208に利用可能にすることができる。たとえば、ユーザデバイス208は、第1の転写要求をスピーチ認識装置202に提出することができ、それに応じて、スピーチ認識装置202は、第1の要求に関連付けられる転写結果および対話状態識別子をユーザデバイス208に提供する。その後で、ユーザデバイス208は、対話状態履歴データの一部として、第1の(先行する)要求に関連付けられる対話状態識別子を含む第2の転写要求をスピーチ認識装置202に提出することができる。次いで、以下でさらに詳細に説明するように、第2の要求に関連付けられる対話状態を判定するために、対話状態フローモデルとともに、第1の要求に関連付けられる対話状態識別子がスピーチ認識装置202によって使用され得る。
【0047】
いくつかの実装形態では、要求212は、対話状態履歴データの追加としてまたはその代替として対話セッション識別子を含み得る。対話セッション識別子は、要求212に関連付けられる特定の対話セッションを示すデータである。対話セッション識別子は、同じ対話セッションに関する一連の転写要求を相関させるためにスピーチ認識装置202によって使用され得る。たとえば、対話セッション識別子を含む第1の転写要求をユーザデバイス208からスピーチ認識装置202に送ることができる。スピーチ認識装置202は、第1の転写要求に関連付けられる対話状態を判定することができ、判定された対話状態をセッション識別子に関連付ける記録を記憶することができる。スピーチ認識装置202が後で同じセッション識別子を含む第2の転写要求を受信するとき、スピーチ認識装置202は、記憶された記録にアクセスして、第1の要求に関連付けられた先行する対話状態を識別することができる。先行する対話状態および対話状態フローモデルに基づいて、スピーチ認識装置202は、第2の要求に関連付けられる対話状態を判定して、第2の対話状態をセッション識別子と相関させる記録を記憶することができる。スピーチ認識装置202は、このプロセスを続けて、同じセッション内の先行する対話状態に基づいて、後続の転写要求に対する後続の対話状態を引き続き判定することができる。
【0048】
動作B(214)において、要求212を受信するとすぐに、スピーチ認識装置202は、スピーチ認識装置202が同じ対話セッションに対してユーザデバイス208から受信した最後の転写要求に関連付けられると判定した対話状態を識別する。たとえば、ピザ注文の完了時に、ユーザ206は、連続的な転写要求においてスピーチ認識装置202に提供される「持ち帰り」、次いで、「薄いクラスト」、次いで、「ペパローニとマッシュルーム」など、一連の音声入力を提供することができる。第3の要求212の受信に応じて、スピーチ認識装置202は、同じ対話セッション内の先行する要求に関連付けられる対話状態を対話状態「2」(表216内で強調表示される)として識別することができる。いくつかの実装形態では、スピーチ認識装置202は要求212内に含まれた対話セッション識別子を、同じ対話セッションに関して判定された最後の1つまたは複数の対話状態を示す、スピーチ認識装置202によって記憶された情報と相関させることによって、先行する対話セッションを判定することができる。いくつかの実装形態では、スピーチ認識装置202は、先行状態を直接識別する要求212内に含まれた対話状態履歴データに基づいて、先行する対話状態を判定することができる。
【0049】
動作C(218)において、スピーチ認識装置202は、転写要求212に関連付けられる可能性が最も高い(したがって、要求212内に含まれた音声入力110に関連付けられる可能性が最も高い)対話状態を判定する。いくつかの実装形態では、対話状態は、動作B(214)において識別された1つまたは複数の先行する対話状態と対話状態フローモデルとに基づいて判定され得る。対話状態フローモデルは、一般に、所与の対話において生じることが予想される対話状態のシーケンスを示し、
図3を参照してここで説明される。
【0050】
図3は、ある例示的な対話状態フローモデルの概念表現を示す。対話状態フローモデルは、複数のノード302a〜gと、ノード302a〜gの種々のノードを接続する複数のエッジ304a〜lとを含むグラフ300として表されている。モデルによって表される対話内の各それぞれの対話状態は、グラフ300内でそれぞれのノード302a〜gによって表されている。エッジ304a〜lは、対話状態同士の間の候補遷移を表す。たとえば、ノード302a(第1の対話状態を表す)は、それぞれ、ノード302b(第2の対話状態を表す)および302c(第3の対話状態を表す)を指す2つの外向き矢印304aおよび304bを有する。したがって、このモデルによれば、第1の対話状態302aに続く対話状態は、第2の対話状態302bまたは第3の対話状態302cのいずれかであり得ることが考えられる。しかしながら、どのエッジも第1の対話状態に関するノード302aから第4、第5、第6、または第7の対話状態(302d〜g)に関するそれぞれのノードを指さないため、第1の対話状態からこれらの他の対話状態に対話が流れることは可能でない。
【0051】
いくつかの実装形態では、対話状態フローモデルは、そのモデル内で表される対話状態の各対の中の遷移に確率を割り当てることができる。たとえば、モデルは、第2または第3の対話状態302a、302bのいずれかが第1の対話状態302aに続く等しい確率が存在することを示す。しかしながら、第4の対話状態302dの直後に第1の対話状態302aに戻る対話の可能性は40%にすぎないが、第4の対話状態302dから第7の対話状態302gに進むことになる対話の確率は60%である。いくつかの実装形態では、対話状態フローモデルは、経時的に1つまたは複数のユーザデバイスからの多くの対話セッションにわたって生じた対話状態のシーケンスの分析に基づいて、スピーチ認識装置または別のコンピューティングシステムによって自動的に学習され得る。いくつかの実装形態では、対話状態フローモデルは、所与の対話を開発したアプリケーション開発者など、ユーザによって手動で定義されてよい。いくつかの実装形態では、スピーチ認識装置は、複数の対話の各々に関するそれぞれのモデルにアクセスし、それらを使用することが可能であり得る。
【0052】
図2および動作C(218)の議論を再び参照すると、いくつかの実装形態では、各それぞれの対話状態が要求212または音声入力210に一致する可能性を示す対話状態のセットに関して判定されるそれぞれのスコアに基づいて音声入力210(および、要求212)に対する対話状態を判定することができる。ピザ注文対話に関連付けられる5個の対話状態のセットに関する例示的なスコアを表220に示す。いくつかの実装形態では、スピーチ認識装置202は、最高確率スコアを有する対話状態を選択する。
図2の例では、対話のピザトッピング選択段階に対応する対話状態「3」は、最高確率スコアを有し、転写要求212に対応する対話状態であると判定される。
【0053】
いくつかの実装形態では、対話状態確率スコアは、要求212に関連付けられるコンテキストデータにさらに基づき得る。スピーチ認識装置202は、要求212内に含まれたコンテキストデータを対話状態の各々に関連付けられるそれぞれのコンテキストデータと比較して、対話状態の各々に関するそれぞれのコンテキスト類似度スコアを判定することができる。一般に、より高いコンテキスト類似度スコアは、要求212内のコンテキストデータと所与の対話状態に関連付けられるコンテキストデータとの間のより近い一致を示す。いくつかの実装形態では、コンテキスト類似度スコアは、ユーザインターフェースハッシュ、ロケーションデータ、およびユーザプロフィールデータなど、複数のタイプのコンテキストデータの中の類似度スコアの重み付けされた組合せに基づき得る。いくつかの実装形態では、対話状態の各々に割り当てられる最終確率スコア(たとえば、表220の右端の列に示す)は、コンテキスト類似度スコアとシーケンススコアの重み付けされた組合せに基づき得る。シーケンススコアは、対話状態フローモデル内の確率から導出可能であり、所与の1つまたは複数の先行する対話状態に基づく対話状態の確率を示し得る。
【0054】
動作D(222)、動作E(226)、および動作F(232)において、プロセス200は、
図1に示したプロセス100の動作C(118)、動作D(124)、および動作E(128)と類似の方法で進む。具体的には、動作D(222)において、動作C(218)中に選択された対話状態に関連付けられるnグラムのセットに基づいて言語モデル228にバイアスをかける。動作E(226)において、スピーチ認識装置202は、バイアスをかけた言語モデル228を使用して音声入力110の転写結果230を生成する。最終的に、動作F(232)において、転写結果230がスピーチ認識装置202からユーザデバイス208に供給される。いくつかの実装形態では、転写結果230は、デバイス208が次の対話状態を判定するためにスピーチ認識装置202によって使用するために対話セッション内の後続の転写要求内に含めることができる対話状態識別子とともにデバイス208に供給され得る。
【0055】
次に、
図4を参照すると、多重対話式音声対話(multi-interaction voice dialog)において対話状態を判定するために音声入力の転写を分析するためのある例示的なプロセス400のフローチャートが示されている。いくつかの実装形態では、nグラムのそれぞれのセットは、対話状態の各々に割り当てられてよく、これらのnグラムセットは、後で言語モデルにバイアスをかけるためにランタイムにおいてスピーチ認識装置によって使用され得る。たとえば、音声入力が所与の対話状態に対応するとの判定に応じて、所与の対話状態に関するnグラムに関連付けられる確率データが言語モデル内で調整され得る。いくつかの実装形態では、プロセス400は、対話に関する対話状態を自動的に学習するために、かつ各対話状態に関する言語モデルにどのようにバイアスをかけるかを自動的に学習するために、スピーチ認識システムによって用いられ得る。したがって、いくつかの実装形態では、スピーチ認識システムのスピーチ認識サービスを使用するアプリケーションは、所与の一連のユーザとの音声対話中に対話状態のフローを追跡する必要がなく、所与の転写要求が対応する対話状態、所与の転写要求に関する言語モデルにバイアスをかける際に使用されることになるnグラムのセット、またはそれら両方をスピーチ認識システムに明示的に知らせる必要がない。
【0056】
段階402において、コンピューティングシステムは、複数のコンピューティングデバイスからユーザの音声入力を示すオーディオデータを受信する。音声入力は、一般に、対話の一部としてユーザによって発話される発言である。各ユーザに関して、対話は、特定の活動に関する一連の音声入力を含み得る。たとえば、予約スケジューリング活動に関する対話は、予約の開始時間、持続時間、ロケーション、詳細、および出席予定者を識別するそれぞれの音声入力を含み得る。場合によっては、ユーザは、すべての利用可能な予約スケジューリングパラメータに関する入力を提供する場合がある。他の場合には、ユーザは、利用可能な予約スケジューリングパラメータの一部分のみに関する入力を提供する場合がある。さらに、音声入力においてパラメータが提供される順序はユーザ間で異なり得る。したがって、音声入力はすべて同じ活動(たとえば、予約スケジューリング)についての対話に関係する可能性があるが、音声入力の数およびシーケンスは対話セッションを通して異なり得る。いくつかの実装形態では、コンピューティングシステムは、複数の異なる対話に対応する音声入力を受信することができる。プロセス400は、一般に、特定の対話(たとえば、予約スケジューリング)に関する対話状態およびnグラムセットの判定に関するため、システムは、受信したデータをフィルタ処理して、その対話に対応する音声入力に関するデータのみを含めることができる。他の対話(たとえば、ピザ注文、金融取引、ソーシャルメディア投稿)に対応する音声入力に関するデータは、廃棄され得る。
【0057】
段階404において、コンピューティングシステムは、オプションで、受信した音声入力に関連付けられるコンテキストデータを識別する。いくつかの実装形態では、コンテキストデータは、転写要求内でユーザデバイスによってコンピューティングシステムに提供され得る。転写要求は、転写するように要求される音声入力に関するオーディオデータを含んでもよい。コンテキストデータは、一般に、スピーチ認識装置が音声入力の転写を判定するために使用することが可能な任意のデータ(音声入力オーディオデータ以外)を含む。たとえば、ユーザデバイスは、デバイスが音声入力を検出する時点またはほぼその時点でのデバイス上のユーザインターフェースのディスプレイを特徴付けるスクリーン署名を計算することができる。スクリーン署名は、場合によっては、デバイスが音声入力を検出する時点またはほぼその時点でデバイスによって表示されたユーザインターフェース要素に関連付けられる値に基づいて判定されるハッシュ値であり得る。スクリーン署名(または、他の個々のコンテキストデータ)は、コンピューティングシステムが音声入力に関連付けられる対話状態を判定するために十分な場合があり、または十分でない場合もある。いくつかの実装形態では、所与の音声入力を単一のコンテキストデータ(たとえば、スクリーン署名)に関連付けることができる。いくつかの実装形態では、音声入力を複数のコンテキストデータ(たとえば、スクリーン署名および対話ヒント)に関連付けることができる。対話ヒントは、ユーザデバイスの推定される対話状態を示すあるタイプのコンテキストデータである。ユーザデバイスが対話中に対話状態を確実に追跡する場合、対話ヒントは対話状態識別子として効果的に役立ち得る。ユーザデバイスが対話状態を確実に追跡しない場合、コンピューティングシステムは、ユーザデバイスに関連付けられる対話状態を判定する際に、対話ヒントにより少ない重みを与えることができる。いくつかの実装形態では、コンピューティングシステムは、受信した音声入力に関連付けられるコンテキストデータを識別することができず、コンテキストデータなしに対話状態およびnグラムセットを判定することができる。
【0058】
段階406において、システムは、受信した音声入力(または、少なくとも、分析のためにフィルタ処理されている音声入力)の転写を判定する。転写は、音声入力をテキストに変換するスピーチ認識装置によって判定され得る。スピーチ認識装置は、音声入力に関するオーディオデータをテキストに変換することを可能にする構成要素の収集物を含み得る。一般に、ある言語において用語のシーケンスの確率を判定するように構成された言語モデルをこれらの構成要素の中に含めることができる。言語モデルは、転写に関する用語の候補シーケンスを評価し、スピーチ認識装置による出力として最終的に提供される転写として、可能性が最も高い用語のシーケンスを選択することができる。いくつかの実装形態では、一般的な、バイアスがかけられていない言語モデルを使用して、段階406中に音声入力の転写を判定することができるが、これは、プロセス400のこの段階によって対話状態および言語モデルバイアスデータ(たとえば、nグラムセット)がまだ判定されていない可能性があるためである。いくつかの実装形態では、コンピューティングシステムは、自らが音声入力のオーディオデータを受信して、プロセス400の一部として転写を生成する必要なしに、1つまたは複数の他のコンピューティングシステムによって判定された音声入力の転写を単に取得することができる。
【0059】
段階408において、コンピューティングシステムは、音声入力の転写を分析して、転写のうちの少なくともいくつかの各々の中で生じる1つまたは複数のnグラムのそれぞれのセットを識別する。各転写に関して識別されたnグラムのそれぞれのセットは、転写を表すベクトルの形で提供され得る。ベクトルは、nグラムがその転写において生じた順序にかかわらず、各転写に関して識別されたnグラムのそれぞれのセットを示し得る。いくつかの実装形態では、転写において生じるすべてのnグラムが識別されて、その転写に関して対応するベクトルに追加され得る。いくつかの実装形態では、転写において生じるすべてのnグラムの適切なサブセットのみが識別されて、その転写に関して対応するベクトルに追加され得る。たとえば、nグラムに関連付けられるプロミネンススコアに基づいて、nグラムのサブセットを選択することができる。たとえば、ある言語でより低い頻度で生じるnグラムにより高いプロミネンススコアを割り当てることができ、ある言語でより高い頻度で生じるnグラム(たとえば、名詞、冠詞、一般形容詞、および一般名詞)により低いプロミネンススコアを割り当てることができる。転写のベクトル内に含めるために、しきいスコアを超えるプロミネンススコアが割り当てられたnグラムを選択することができ、たとえば、または、転写内に上位n個のプロミネンススコアを有するnグラムを選択することができる(この場合、nは、1、2、3、4、またはそれ以上など、事前定義された整数である)。
【0060】
段階410において、コンピューティングシステムは、転写間の類似度に基づいて、転写グループを生成する。特に、この説明は、例としてのみ、転写グループを参照する。各転写は、単に単一の音声入力および転写において生じるとして識別されるnグラムの単一のセットのみに対応するため、コンピューティングシステムは、転写グループを生成するための、本明細書で説明する技法と類似の技法に基づいて、音声入力のグループまたはnグラムセットのグループを等しく生成することができる。転写グループに関するここの議論は、したがって、他のタイプのグループにも同様に適用される。
【0061】
いくつかの実装形態では、転写は、転写において生じるnグラムの意味的類似度に基づいてグループ化され得る。たとえば、予約スケジューリングアプリケーションに対する音声入力の転写グループを判定する際に、予約時間(たとえば、「正午」、「午後12時」、「午前8:30」、「夜」、「午後4時」)に関するnグラムを有する転写間で第1の転写グループが形成されてよく、予約ロケーション(たとえば、「会議室」、「コーヒーショップ」、「中心街」、「事務所」、「大通り」、「通り」、「階」、「特別室」)に関するnグラムを有する転写間で第2の転写グループが形成されてよく、予約詳細(たとえば、「会議」、「昼食」、「テレビ会議」、「審査」、「パーティ」)に関するnグラムを有する転写間で第3の転写グループが形成されてよい。いくつかの実装形態では、転写の意味的類似度は、所与の転写内のnグラムに関連付けられる1つまたは複数の主題を識別することによって判定され得る。主題は、たとえば、nグラムを主題と関連付け、かつテキストサンプル内で見出されたnグラムに基づいて、主題を備えたテキストサンプルをラベル付けすることができる指名されたエンティティ認識エンジンによって識別され得る。主題が判定されると、1つまたは複数の同じ主題に関する転写をグループ化することができる。いくつかの実装形態では、異なるが類似の主題に関する転写をグループ化することができる。
【0062】
いくつかの実装形態では、そこから転写が導出された音声入力に関連付けられる、識別されたコンテキストデータ間の類似度に基づいて転写をグループ化することができる。たとえば、第1のスクリーン署名を有する音声入力の転写間で第1の転写グループが形成されてよく、第2のスクリーン署名を有する音声入力の転写間で第2の転写グループが形成されてよい、等々である。別の例では、第1の時間期間(たとえば、午前8時から午後12時)内の時間に発話された音声入力の転写間で第1の転写グループが形成されてよく、第2の時間期間(たとえば、午後12時1分から午後4時)内の時間に発話された音声入力の転写間で第2の転写グループが形成されてよい、等々である。たとえば、ロケーションデータ、ユーザプロフィールデータ、ユーザ人口統計データ、対話ヒント、または発話入力が検出されたときにデバイス上で実行している1つまたは複数のアプリケーションの指示など、他のタイプの一致するまたは類似のコンテキストデータに基づいてグループを形成することもできる。いくつかの実装形態では、そこから転写が導出された音声入力に関連付けられる複数のタイプのコンテキスト間の類似度に基づいて、転写をグループ化することができる。たとえば、スクリーン署名とユーザデバイスにおいて音声入力が検出された時間期間の両方における類似度を有する音声入力の転写間で転写グループが形成され得る。いくつかの実装形態では、あるタイプのコンテキスト間の類似度が他のタイプのコンテキストよりも大きな影響をグループ化に与えるように、異なるタイプのコンテキストデータを互いに対して重み付けすることができる。
【0063】
いくつかの実装形態では、転写において生じるnグラムの意味的類似度に基づいて、そこから転写が導出された音声入力に関連付けられるコンテキストデータに基づかずに、転写グループを生成することができる。いくつかの実装形態では、転写において生じるnグラムの意味的類似度に基づかずに、そこから転写が導出された音声入力に関連付けられるコンテキストデータに基づいて、転写グループを生成することができる。しかしながら、いくつかの実装形態では、(i)転写において生じるnグラムの意味的類似度と、(ii)そこから転写が導出された音声入力に関連付けられるコンテキストデータの両方に基づいて、転写グループを生成することができる。後者の実装形態では、たとえば、意味的類似度と類似のコンテキストデータの両方を有する転写を一緒にグループ化することができる。したがって、単に意味的に若干類似するnグラムを有する転写は、それらのコンテキストが極めて類似する場合、グループ化され得、単に若干類似するコンテキストを有する転写は、それらが意味的に非常に関係する場合、グループ化され得る。
【0064】
いくつかの実装形態では、コンピューティングシステムが転写グループの最初のセットを生成した後で、類似すると判定されるグループをマージして、転写グループの全体数を低減させることができる。コンピューティングシステムが生成する転写グループの最終セットは、対話において生じると判定されるそれぞれの対話状態に対応する。各対話状態は言語モデルに異なってバイアスをかけるためにスピーチ認識装置によって使用され得るため、スピーチ認識装置が検出可能な対話状態の数を低減させるためにグループを統合することは有益であり得る。具体的には、グループのマージは、冗長グループを除去し、グループ間の分離(したがって、対話状態間の多様性)を高めて、対話状態の各々の間で言語モデルにバイアスをかける方法に有意義な違いを確保する。たとえば、対話の第1の段階は、予約開始時間に関してユーザの音声入力を求める(solicit)ことができ、対話の第2の段階は、予約終了時間に関してユーザの音声入力を求めることができ、対話の第3の段階は、予約への出席者の数に関してユーザの音声入力を求めることができる。これらの段階の各々において、音声入力内のnグラム間にかなりの重複が存在し得るため(たとえば、数および時間の記述)、音声入力の転写をマージして単一のグループにすることができる。マージされたグループから生じる、判定された対話状態は、したがって、音声対話の3つの別個の段階に対応し得るが、これは、nグラムの同じセットを使用して、これらの段階の各々に対して同じ方法で言語モデルに効果的にバイアスをかけることができるためである。
【0065】
コンピューティングシステムは、様々な技法に従ってマージするための転写グループを識別することができる。いくつかの実装形態では、各グループからのnグラムのセットを各他のグループからのnグラムのそれぞれのセットと比較することができ、その比較に基づいて、グループの各対のnグラムのセット同士の間の類似度を判定することができる。グループの所与の対内のnグラム同士の間の類似度スコアがしきい類似度スコアを満たす(たとえば、超える)場合、それらのグループをマージすることができる。マージの結果は、マージされたグループの各々からの転写のすべてまたは少なくともいくつかを含むグループであり得る。たとえば、比較されるグループのnグラム同士の間の一致の数または頻度に基づいて、類似度スコアを判定することができる。たとえば、最初のコンテキストベースの転写のグループ化が、第1のスクリーン署名値に関する第1のグループと第2のスクリーン署名値に関する第2のグループとをもたらしたが、それらのグループの各々間の音声入力の転写がほとんど同じ場合、それらのグループをマージして、コンピューティングシステムによって生成されるグループの最終セット内の単一グループにすることができる。いくつかの実装形態では、限界に達するまで(たとえば、所定数の反復が完了するまで、グループ同士の間の類似度スコアのいずれもがしきい類似度スコアを満たさなくなるまで、残りのグループ数が所定の最大グループ数を超えなくなるまで、またはこれらの組合せまで)、グループは連続的に反復してマージされてよい。いくつかの実装形態では、グループの各々からのnグラムのそれぞれのセット同士の間にコサイン距離をとることによって、転写グループ同士の間の類似度スコアを判定することができる。コサイン距離は、(たとえば、bag-of-words技法に従って)各グループからnグラムのベクトルを生成し、ベクトル同士の間の距離を判定することによって算出され得る。いくつかの実装形態では、nグラムのセットを低次元空間に移し、低次元空間内の類似度を判定することによって、転写グループ同士の間の類似度スコアを判定することができる。
【0066】
図5Aおよび
図5Bは、類似の転写グループをマージして、対話において生じると判定される対話状態に対応するグループの最終セットを形成するための技法の概念図を示す。
【0067】
図5Aでは、転写内の用語(nグラム)の意味的類似度に基づいて、最初の転写グループ504、506、および510がグループ化される。たとえば、コンテキストデータが利用不可能であるとき、またはスピーチ認識装置が、ランタイムにおいて音声入力転写要求の対話状態を検出するために、コンテキストデータではなく、対話状態フローモデルを使用するように構成されている場合、このタイプのグループ化は有益であり得る。最初のグループ504、506、および510が生成された後で、グループのうちの2つ504および506がnグラムの類似のセットを含むとして判定され、したがって、単一グループ502にマージされる。マージされたグループ502および第3の最初のグループ510は、次いで、所与の対話内でそれぞれの対話状態508および512と相関される。
【0068】
図5Bでは、最初の転写グループ552、556、および558は、転写に関連付けられる(したがって、そこから転写が判定された音声入力に関連付けられる)コンテキストデータに基づいてグループ化される。たとえば、ランタイム中に音声入力を転写するために、対話状態に対して強い相関関係を有するコンテキストデータがスピーチ認識装置に利用可能になるとき、コンテキスト的なグループ化は有益であり得る。いくつかの実装形態では、コンテキストに基づいて判定された対話状態は、たとえば、スピーチ認識装置が対話状態履歴データまたは対話状態フローモデルに基づいて対話状態を判定するいかなる必要もなくすことができる。最初のグループ552、556、および558が生成された後で、グループのうちの2つ556および558が、nグラムの類似セットを含むと判定され、したがって、単一のグループ554にマージされる。マージされたグループ554および第1の最初のグループ552は、次いで、所与の対話内でそれぞれの対話状態560および562と相関される。
【0069】
図4を再び参照すると、段階414において、プロセス400は、それぞれの対話状態に対応する音声入力を転写するときにスピーチ認識装置が言語モデルにバイアスをかける際に使用するためのnグラムのそれぞれのセットを段階410および412において判定された対話状態の各々に割り当てる。いくつかの実装形態では、所与の対話状態に割り当てられるnグラムのセットは、所与の対話状態に対応するグループを含む、転写において生じるすべてのnグラムの中から選択され得る。いくつかの実装形態では、各nグラムが転写グループにおいて生じる回数のカウントを判定することができ、カウントに基づいて最も頻繁に生じるnグラムを選択することができる(たとえば、しきいカウントを満たすカウントを有するnグラムを選択することができ、かつ/または、最高カウントを有する所定数のnグラムを選択することができる)。いくつかの実装形態では、選択されるnグラムは、たとえば、重要でない語(たとえば、「の(of)」、「その(the)」、「ある(a)」、「に対する(to)」、「に関する(for)」など)を除いた、nグラムのフィルタ処理されたセットの中から選択され得る。nグラムの選択されたセットは、それらのそれぞれの対話状態との関連で記憶され得る。
【0070】
いくつかの実装形態では、転写グループが転写に関連付けられるコンテキストデータに少なくとも基づいて作成されている場合、段階416において、コンピューティングシステムは、所与の音声入力または転写要求をそれぞれの対話状態に関連付けるためにスピーチ認識装置によって使用され得るコンテキストデータのそれぞれのセットを段階410および412において判定された対話状態の各々に割り当てることができる。所与の対話状態に割り当てられるコンテキストデータのセットは、対話状態を一意に識別するフィンガープリントに対して分析される。したがって、スピーチ認識装置がコンテキストデータを含む音声入力転写要求を受信するとき、その要求からのコンテキストデータを対話状態の各々に割り当てられたコンテキストデータのそれぞれのセットと比較することができる。要求内のコンテキストデータとコンテキストデータの割り当てられたセットのうちの1つとの間で一致または強い相関関係が判定された場合、スピーチ認識装置は、その要求がコンテキストデータの一致するセットに対応する対話状態に関係することを識別することができる。いくつかの実装形態では、コンピューティングシステムが対話状態に割り当てるコンテキストデータのセットは、対話状態に対応するグループ内の転写のすべてまたはいくつかに関連付けられるコンテキストデータに基づき得る。たとえば、所与のグループ内のかなり複数の転写または大部分の転写が第1のスクリーン署名値に関連付けられる場合、第1のスクリーン署名値をそのグループに対応する対話状態に割り当てることができる。
【0071】
いくつかの実装形態では、コンピューティングシステムは、段階418において、対話セッションにおいて生じる可能性が高い対話状態のシーケンスを示す対話状態フローモデルを判定することができる。いくつかの実装形態では、対話状態フローモデルは、段階410および412において判定された各対話状態に関して、1つまたは複数の他の対話状態が対話セッション内の次の対話状態になる確率を示し得る。たとえば、
図3に示したフローモデルでは、対話状態7が対話状態4の後に続く確率は0.6であり、対話状態1が対話状態4の後に続く確率は0.4である。いずれかの他の対話状態が対話状態4の後に続く確率はゼロである。いくつかの実装形態では、コンピューティングシステムは、履歴対話セッションの記録内で生じた対話状態の識別されたシーケンスに基づいて、対話状態フローモデルを判定することができる。たとえば、履歴対話セッションの記録内で、第1の対話状態の後に80%の割合で第2の対話状態が続き、20%の割合で第3の対話状態が続いた場合、対話状態フローモデル内で、第1の対話状態から第2の対話状態への遷移に0.8の確率を割り当てることができ、第1の対話状態から第3の対話状態への遷移に0.2の確率を割り当てることができる。
【0072】
図6は、音声入力に関連付けられる対話状態に基づいて選択される、バイアスがかけられた言語モデルを使用して、音声入力に関してスピーチ認識を実行するためのある例示的なプロセス600のフローチャートである。いくつかの実装形態では、プロセス600は、
図1および
図2で説明したスピーチ認識装置など、スピーチ認識コンピューティングシステムによって実行され得る。プロセス600は、対話状態、nグラム、コンテキストデータ、および対話状態フローモデルに関して、
図4のプロセス400で判定されるデータを使用して実行されてもよい。
【0073】
段階602において、スピーチ認識システムは、転写されることが要求される音声入力を受信する。いくつかの実装形態では、システムは、段階602において、音声入力に関連付けられるコンテキストデータをやはり受信する。コンテキストデータは、音声入力が検出された時点またはほぼその時点で音声入力を検出したユーザデバイスのコンディションを示し得る。たとえば、コンテキストデータは、音声入力が検出されたときのユーザデバイスのディスプレイを特徴付けるスクリーン署名、対話ヒント、またはそれらの組合せ、および他のタイプのコンテキストデータを示し得る。
【0074】
段階606において、スピーチ認識システムは、音声入力、コンテキストデータ、または両方を分析して、音声入力に関する対話状態を判断する。いくつかの実装形態では、転写要求内のコンテキストデータを、記憶されて、対応する対話状態と相関されたコンテキストデータの特定のセットと一致させることによって、対話状態を判定することができる(段階608)。いくつかの実装形態では、対話状態履歴データと対話状態のシーケンスを予測する対話状態フローモデルとに基づいて、対話状態を判定することができる。対話状態履歴データは、現在の転写要求に対する対話状態に先行した1つまたは複数の対話状態を示すことができ、スピーチ認識システムによって事前に記憶され得るか、または転写要求内でユーザデバイスから提供され得る。
【0075】
段階612において、スピーチ認識システムは、段階606において判定された対話状態に割り当てられているnグラムのセットを識別する。段階614において、言語モデルにバイアスをかけるために、nグラムの識別されたセットを適用する。たとえば、nグラムの識別されたセット内のnグラムに関連付けられる確率を言語モデル内で増大させて、言語モデルが割り当てられたnグラムを選択する可能性をより高めることができる。いくつかの実装形態では、音声入力が受信されて、音声入力に関する対話状態が判定された後で、言語モデルにバイアスをかけることができる。いくつかの実装形態では、スピーチ認識システムは、音声入力が受信される前に、対話状態の各々に関して、バイアスがかけられた言語モデルを生成することができる。後で、音声入力を転写する要求が受信されるとき、音声システムは、音声入力に関する対話状態に対応する、事前にバイアスがかけられた言語モデルにアクセスすることができる。段階616において、バイアスがかけられた言語モデルを使用して音声入力をテキストに転写することができる。転写されたテキストは、次いで、その転写を要求したコンピューティングデバイスに送信され得る。
【0076】
図7は、コンピューティングデバイス700、およびコンピュータ実装方法および本明細書で説明する他の技法を実装するために使用され得るモバイルコンピューティングデバイスの一例を示す。コンピューティングデバイス700は、ラップトップ、デスクトップ、ワークステーション、携帯情報端末、サーバ、ブレードサーバ、メインフレーム、および他の適切なコンピュータなど、様々な形態のデジタルコンピュータを表すことが意図される。モバイルコンピューティングデバイスは、携帯情報端末、セルラー電話、スマートフォン、および他の類似のコンピューティングデバイスなど、様々な形態のモバイルデバイスを表すことが意図される。ここに示す構成要素、それらの接続および関係、およびそれらの機能は、単なる例であることを意味し、本書で説明するかつ/または特許請求する発明の実装形態を限定することを意味しない。
【0077】
コンピューティングデバイス700は、プロセッサ702と、メモリ704と、記憶デバイス706と、メモリ704および複数の高速拡張ポート710に接続された高速インターフェース708と、低速拡張ポート714および記憶デバイス706に接続された低速インターフェース712とを含む。プロセッサ702、メモリ704、記憶デバイス706、高速インターフェース708、高速拡張ポート710、および低速インターフェース712は各々、様々なバスを使用して相互接続され、共通のマザーボード上にまたは適宜に他の方法で取り付けられる。プロセッサ702は、高速インターフェース708に結合されたディスプレイ716など、外部入出力デバイス上のGUIに関するグラフィカル情報を表示するためにメモリ704内にまたは記憶デバイス706上に記憶された命令を含めて、コンピューティングデバイス700内で実行するための命令を処理することができる。他の実装形態では、複数のメモリおよび複数のタイプのメモリとともに、複数のプロセッサおよび/もしくは複数のバスを適宜に使用することができる。また、複数のコンピューティングデバイスを必要な動作の部分を提供する各デバイス(たとえば、サーババンク、ブレードサーバのグループ、またはマルチプロセッサシステム)に接続することができる。
【0078】
メモリ704は、コンピューティングデバイス700内に情報を記憶する。いくつかの実装形態では、メモリ704は1つまたは複数の揮発性メモリユニットである。いくつかの実装形態では、メモリ704は1つまたは複数の不揮発性メモリユニットである。メモリ704は、磁気ディスクまたは光ディスクなど、別の形態のコンピュータ可読媒体であってもよい。
【0079】
記憶デバイス706は、大容量記憶装置をコンピューティングデバイス700に提供することが可能である。いくつかの実装形態では、記憶デバイス706は、フロッピーディスクデバイス、ハードディスクデバイス、光ディスクデバイス、もしくはテープデバイス、フラッシュメモリもしくは他の類似の固体メモリデバイス、または記憶域ネットワークもしくは他の構成の形のデバイスを含めて、デバイスのアレイなど、コンピュータ可読媒体であってよく、またはこれらを含んでもよい。コンピュータプログラム製品は、実行されると、上記で説明した方法など、1つまたは複数の方法を実行する命令を含んでもよい。コンピュータプログラム製品は、メモリ704、記憶デバイス706、またはプロセッサ702上のメモリなど、コンピュータ可読媒体または機械可読媒体内で有形に実施されてもよい。
【0080】
高速インターフェース708は、コンピューティングデバイス700に関する帯域幅集約的動作(bandwidth-intensive operations)を管理し、低速インターフェース712は、より低い帯域幅集約的動作を管理する。機能のそのような割振りは単なる例示である。いくつかの実装形態では、高速インターフェース708は、メモリ704、ディスプレイ716(たとえば、グラフィックスプロセッサまたは加速度計を通して)、および様々な拡張カード(図示せず)を受け入れることができる高速拡張ポート710に結合される。この実装形態では、低速インターフェース712は記憶デバイス706および低速拡張ポート714に結合されている。様々な通信ポート(たとえば、USB、Bluetooth(登録商標)、Ethernet、ワイヤレスEthernet)を含み得る低速拡張ポート714は、たとえば、キーボード、ポインティングデバイス、スキャナ、または、ネットワークアダプタを通した、スイッチまたはルータなどのネットワーキングデバイスなど、1つまたは複数の入出力デバイスに結合され得る。
【0081】
コンピューティングデバイス700は、図に示すように、いくつかの異なる形態で実装され得る。たとえば、コンピューティングデバイス700は、標準サーバ720として実装されてよく、またはそのようなサーバグループ内で複数回実装されてよい。さらに、コンピューティングデバイス700は、ラップトップコンピュータ722などのパーソナルコンピュータの形で実装されてよい。コンピューティングデバイス700は、ラックサーバシステム724の一部分として実装されてもよい。代替として、コンピューティングデバイス700からの構成要素を、モバイルコンピューティングデバイス750など、モバイルデバイス(図示せず)内の他の構成要素と組み合わせることも可能である。そのようなデバイスの各々は、コンピューティングデバイス700およびモバイルコンピューティングデバイス750のうちの1つまたは複数を含んでよく、システム全体が、互いに通信している複数のコンピューティングデバイスで作られてよい。
【0082】
モバイルコンピューティングデバイス750は、構成要素の中でも、プロセッサ752と、メモリ764と、ディスプレイ754などの入出力デバイスと、通信インターフェース766と、トランシーバ768とを含む。モバイルコンピューティングデバイス750には、追加の記憶装置を提供するために、マイクロドライブまたは他のデバイスなど、記憶デバイスが提供されてもよい。プロセッサ752、メモリ764、ディスプレイ754、通信インターフェース766、およびトランシーバ768は各々、様々なバスを使用して相互接続され、これらの構成要素のうちのいくつかは共通マザーボード上にまたは適宜に他の方法で取り付けられてよい。
【0083】
プロセッサ752は、メモリ764内に記憶された命令を含めて、モバイルコンピューティングデバイス750内の命令を実行することができる。プロセッサ752は、別個の複数のアナログプロセッサおよびデジタルプロセッサを含むチップのチップセットとして実装され得る。プロセッサ752は、たとえば、ユーザインターフェース、モバイルコンピューティングデバイス750によって実行されるアプリケーション、およびモバイルコンピューティングデバイス750によるワイヤレス通信の制御など、モバイルコンピューティングデバイス750の他の構成要素の調整を提供することができる。
【0084】
プロセッサ752は、ディスプレイ754に結合された制御インターフェース758およびディスプレイインターフェース756を通してユーザと通信することができる。ディスプレイ754は、たとえば、TFT(薄膜トランジスタ液晶ディスプレイ)ディスプレイもしくはOLED(有機発光ダイオード)ディスプレイ、または他の適切なディスプレイ技術であってよい。ディスプレイインターフェース756は、グラフィカル情報および他の情報をユーザに提示するためにディスプレイ754を駆動させるための適切な回路を含み得る。制御インターフェース758は、ユーザからコマンドを受信して、プロセッサ752に提出するためにそれらを変換することができる。さらに、外部インターフェース762は、他のデバイスとのモバイルコンピューティングデバイス750の近距離通信を可能にするために、プロセッサ752との通信を提供することができる。外部インターフェース762は、たとえば、いくつかの実装形態では、ワイヤード通信を提供することができ、または他の実装形態では、ワイヤレス通信を提供することができ、複数のインターフェースが使用されてもよい。
【0085】
メモリ764は、情報をモバイルコンピューティングデバイス750内に記憶する。メモリ764は、1つまたは複数のコンピュータ可読媒体、1つまたは複数の揮発性メモリ装置、または1つまたは複数の不揮発性メモリ装置のうちの1つまたは複数として実装され得る。たとえば、SIMM(シングルインラインメモリモジュール)カードインターフェースを含み得る拡張インターフェース772を通して拡張メモリ774をモバイルコンピューティングデバイス750に提供および接続することもできる。拡張メモリ774は、モバイルコンピューティングデバイス750に余剰記憶空間を提供することができるか、またはモバイルコンピューティングデバイス750に関するアプリケーションまたは他の情報を記憶することもできる。具体的には、拡張メモリ774は、上記で説明したプロセスを実行または補完するための命令を含むことが可能であり、セキュア情報を含むことも可能である。したがって、たとえば、拡張メモリ774は、モバイルコンピューティングデバイス750に関するセキュリティモジュールとして提供されてよく、モバイルコンピューティングデバイス750のセキュアな使用を可能にする命令でプログラムされ得る。さらに、ハッキングできない方法でSIMMカード上に識別情報を配置するなど、追加情報とともに、SIMMカードを介してセキュアなアプリケーションを提供することができる。
【0086】
メモリは、たとえば、下記で論じるように、フラッシュメモリおよび/またはNVRAMメモリ(不揮発性ランダムアクセスメモリ)を含み得る。コンピュータプログラム製品は、実行されると、上記で説明した方法など、1つまたは複数の方法を実行する命令を含む。コンピュータプログラム製品は、メモリ764、拡張メモリ774、またはプロセッサ752上のメモリなど、コンピュータ可読媒体または機械可読媒体であってよい。いくつかの実装形態では、コンピュータプログラム製品は、たとえば、トランシーバ768または外部インターフェース762を介して伝搬される信号内で受信され得る。
【0087】
モバイルコンピューティングデバイス750は、通信インターフェース766を通してワイヤレスに通信することができ、通信インターフェース766は、必要な場合、デジタル信号処理回路を含み得る。通信インターフェース766は、中でも、GSM(登録商標)音声呼(グローバルシステムフォーモバイルコミュニケーション)、SMS(ショートメッセージサービス)、EMS(拡張メッセージングサービス)、またはMMSメッセージング(マルチメディアメッセージングサービス)、CDMA(符号分割多元接続)、TDMA(時分割多元接続)、PDC(パーソナルデジタルセルラー)、WCDMA(登録商標)(広帯域符号分割多元接続)、CDMA2000、またはGPRS(汎用パケット無線サービス)など、様々なモードまたはプロトコルに基づいて通信を提供することができる。そのような通信は、たとえば、無線周波数を使用してトランシーバ768を通して生じ得る。さらに、Bluetooth(登録商標)、WiFi、または他のそのようなトランシーバ(図示せず)を使用してなど、短距離通信が生じ得る。さらに、GPS(全地球測位システム)受信機モジュール770は追加のナビゲーションおよびロケーション関連のワイヤレスデータをモバイルコンピューティングデバイス750に提供することができ、モバイルコンピューティングデバイス750は、モバイルコンピューティングデバイス750上で実行するアプリケーションによって適宜に使用され得る。
【0088】
モバイルコンピューティングデバイス750は、ユーザから発話情報を受信して、それを使用可能なデジタル情報に変換することができるオーディオコーデック760を使用して可聴式に通信することもできる。オーディオコーデック760は、同様に、たとえば、モバイルコンピューティングデバイス750のハンドセット内で、スピーカーを通してなど、ユーザに可聴音を生成することができる。そのような音は、音声電話呼からの音を含んでよく、記録音(たとえば、音声メッセージ、ミュージックファイルなど)を含んでよく、モバイルコンピューティングデバイス750上で動作するアプリケーションによって生成される音を含んでもよい。
【0089】
モバイルコンピューティングデバイス750は、図に示したように、いくつかの異なる形態で実装され得る。たとえば、モバイルコンピューティングデバイス750は、セルラー電話780として実装され得る。モバイルコンピューティングデバイス750は、スマートフォン782、携帯情報端末、または他の類似のモバイルデバイスの一部として実装されてもよい。
【0090】
ここで説明したシステムおよび技法の様々な実装形態は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向け集積回路)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せの形で実現され得る。これらの様々な実装形態は、記憶システム、少なくとも1つの入力デバイス、および少なくとも1つの出力デバイスからデータおよび命令を受信して、これらにデータおよび命令を送信するように結合された、専用または汎用であってよい、少なくとも1つのプログラマブルプロセッサを含むプログラマブルシステム上で実行可能かつ/または解釈可能な1つまたは複数のコンピュータプログラムの形での実装を含み得る。
【0091】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーションまたはソフトウェアコードとしても知られている)は、プログラマブルプロセッサに対する機械命令を含み、ハイレベル手続き型および/もしくはオブジェクト指向プログラミング言語の形で、ならびに/またはアセンブリ/機械言語の形で実装されてよい。本明細書で使用される場合、機械可読媒体およびコンピュータ可読媒体という用語は、機械可読信号として機械命令を受信する機械可読媒体を含めて、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される、任意のコンピュータプログラム製品、装置および/またはデバイス(たとえば、磁気ディスク、光ディスク、メモリ、プログラマブル論理デバイス(PLD))を指す。機械可読信号という用語は、機械命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。
【0092】
ユーザとの対話を提供するために、ここで説明したシステムおよび技法は、情報をユーザに表示するためのディスプレイデバイス(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、それによってユーザがコンピュータに入力を提供し得るキーボードおよびポインティングデバイス(たとえば、マウスまたはトラックボール)とを有するコンピュータ上で実装され得る。ユーザとの対話を提供するために他の種類のデバイスを同様に使用することもできる。たとえば、ユーザに提供されるフィードバックは任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバック、または触覚フィードバック)であってよく、ユーザからの入力は、音響入力、スピーチ入力、または触覚入力を含めて、任意の形態で受信され得る。
【0093】
ここで説明したシステムおよび技法は、バックエンド構成要素(たとえば、データサーバなど)を含む、もしくはミドルウェア構成要素(たとえば、アプリケーションサーバ)を含む、またはフロントエンド構成要素(たとえば、それを通してユーザがここで説明したシステムおよび技法の実装形態と対話することができるグラフィカルユーザインターフェースまたはウェブブラウザを有するクライアントコンピュータ)、あるいはそのようなバックエンド構成要素、ミドルウェア構成要素、またはフロントエンド構成要素の何らかの組合せを含むコンピューティングシステムの形で実装され得る。システムの構成要素は、任意の形態または媒体のデジタルデータ通信(たとえば、通信ネットワーク)によって相互接続され得る。通信ネットワークの例は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、およびインターネットを含む。
【0094】
コンピューティングシステムは、クライアントとサーバとを含み得る。クライアントおよびサーバは、一般に、互いから離れており、概して、通信ネットワークを通して対話する。クライアントとサーバの関係は、それぞれのコンピュータ上で実行し、互いにクライアント-サーバ関係を有するコンピュータプログラムにより生じる。
【0095】
ここでシステム、方法、デバイス、および他の技法が、ユーザに関する個人情報(たとえば、コンテキストデータ)を収集するか、またはその個人情報を使用することができる状態において、プログラムまたは特徴がユーザ情報(たとえば、ユーザのソーシャルネットワーク、社会的行為または活動、専門、ユーザの選好、またはユーザの現在のロケーションに関する情報)を収集するかどうかを制御する機会、またはユーザにより関連し得るコンテンツをコンテンツサーバから受信するかどうか、かつ/またはどのように受信するかを制御する機会をユーザに提供することができる。さらに、ある種のデータは、個人的に識別可能な情報が除去されるように、記憶または使用される前に1つまたは複数の方法で処理され得る。たとえば、そのユーザに関する個人的に識別可能な情報を判定することができないように、ユーザの識別子を処理することができるか、またはロケーション情報(都市レベル、郵便番号レベル、または州レベルに関して)が取得される場合、ユーザの特定のロケーションを判定することができないように、ユーザの地理的ロケーションを一般化することができる。したがって、ユーザは、ユーザについての情報をどのように収集されるか、およびコンテンツサーバによってどのように使用されるかについて制御することができる。
【0096】
上記の詳細において様々な実装形態が説明されてきたが、他の修正が可能である。さらに、図に示した論理的な流れは、所望の結果を達成するために、示した特定の順序または順番を必要としない。さらに、他のステップを提供することができるか、または説明した流れからステップを除去することができ、説明したシステムに他の構成要素を追加すること、または説明したシステムから他の構成要素を除去することができる。したがって、他の実装形態は以下の特許請求の範囲内である。