(57)【特許請求の範囲】
【請求項１】
1つまたは複数のプロセッサによって実施される方法であって、
第1の言語でクライアントデバイスの入力構成要素においてユーザによって与えられた音声入力を受け取るステップと、
前記音声入力から音声認識出力を生成するステップであって、前記音声認識出力が前記第1の言語である、ステップと、
前記音声認識出力に基づいて前記ユーザの第1の言語の意図を特定するステップと、
第1の遂行情報を生成するために前記第1の言語の意図を遂行するステップと、
前記第1の遂行情報に基づいて、前記第1の言語で第1の自然言語出力の候補を生成するステップと、
前記音声認識出力の少なくとも部分的な翻訳を生成するために前記音声認識出力の少なくとも一部を前記第1の言語から第2の言語に翻訳するステップと、
前記少なくとも部分的な翻訳に基づいて前記ユーザの第2の言語の意図を特定するステップと、
第2の遂行情報を生成するために前記第2の言語の意図を遂行するステップと、
前記第2の遂行情報に基づいて、前記第2の言語で第2の自然言語出力の候補を生成するステップと、
前記第1の自然言語出力の候補のスコアおよび前記第2の自然言語出力の候補のスコアを決定するステップと、
前記スコアに基づいて、前記第1の自然言語出力の候補および前記第2の自然言語出力の候補から、前記ユーザに提示するための自然言語出力を選択するステップと、
前記クライアントデバイスに、前記選択された自然言語出力を前記クライアントデバイスの出力構成要素において提示させるステップとを含む、方法。
【請求項２】
前記第2の言語の意図に応じる前記第1の言語の第3の自然言語出力の候補を生成するステップをさらに含み、前記スコアを決定するステップが、第1の内容のスコア、第2の内容のスコア、および第3の内容のスコアを決定することをさらに含む請求項1に記載の方法。
【請求項３】
採点する前に前記第2の自然言語出力の候補を前記第1の言語に翻訳するステップをさらに含む請求項1に記載の方法。
【請求項４】
前記第2の自然言語出力の候補を翻訳するステップが、人とコンピュータの対話中に1つまたは複数の自動化されたアシスタントによって与えられた自然言語出力の1つまたは複数のログを使用して訓練される機械学習モデルに基づく請求項3に記載の方法。
【請求項５】
前記音声認識出力の前記少なくとも部分的な翻訳を生成するために翻訳する前記ステップが、人とコンピュータの対話中に1つまたは複数の自動化されたアシスタントに送られたユーザの問い合わせの1つまたは複数のログを使用して訓練される機械学習モデルに基づく請求項1に記載の方法。
【請求項６】
採点することが、前記第1の自然言語の意図および前記第2の自然言語の意図に割り当てられたそれぞれの信頼性スコアに基づく請求項1に記載の方法。
【請求項７】
採点することが、前記第1の自然言語出力の候補および前記第2の自然言語出力の候補を取得するために必要とされた時間に基づく請求項1に記載の方法。
【請求項８】
前記音声認識出力内のスロット値を特定するステップをさらに含み、前記音声認識出力の前記少なくとも部分的な翻訳が前記スロット値を除外し、前記第2の言語の意図が前記第1の言語の前記スロット値に基づいてさらに特定される請求項1に記載の方法。
【請求項９】
1つまたは複数のプロセッサによって実施される方法であって、
第1の言語でクライアントデバイスの入力構成要素においてユーザによって与えられた音声入力を受け取るステップと、
前記第1の言語で前記音声入力の音声認識出力を生成するステップと、
前記音声認識出力の少なくとも部分的な翻訳を生成するために前記音声認識出力の少なくとも一部を前記第1の言語から第2の言語に翻訳するステップと、
前記少なくとも部分的な翻訳に基づいて前記ユーザの第2の言語の意図を特定するステップと、
遂行情報を生成するために前記第2の言語の意図を遂行するステップと、
前記第2の言語の意図に基づいて前記第2の言語で自然言語出力を生成するステップと、
翻訳された自然言語出力を生成するために前記自然言語出力を前記第1の言語に翻訳するステップと、
前記翻訳された自然言語出力が1つまたは複数の基準を満たすかどうかを判定するステップと、
前記判定に基づいて、前記翻訳された自然言語出力または代替的な自然言語出力に基づく出力を選択するステップと、
前記クライアントデバイスに前記クライアントデバイスの出力構成要素において前記出力を提示させるステップとを含む、方法。
【請求項１０】
前記1つまたは複数の基準が、前記翻訳された自然言語出力が翻訳品質の基準を満たすかどうかを含む請求項9に記載の方法。
【請求項１１】
前記自然言語出力を翻訳するステップが、人とコンピュータの対話中に1つまたは複数の自動化されたアシスタントによって与えられた自然言語出力の1つまたは複数のログを使用して訓練される機械学習モデルに基づく請求項9に記載の方法。
【請求項１２】
前記音声認識出力の前記少なくとも部分的な翻訳を生成するために翻訳する前記ステップが、人とコンピュータの対話中に1つまたは複数の自動化されたアシスタントに送られたユーザの問い合わせの1つまたは複数のログを使用して訓練される機械学習モデルに基づく請求項9に記載の方法。
【請求項１３】
1つまたは複数のプロセッサと、前記1つまたは複数のプロセッサに動作可能なように結合されたメモリとを含み、前記メモリが、1つまたは複数のプロセッサによる命令の実行に応じて前記1つまたは複数のプロセッサに以下の動作、すなわち、
第1の言語でクライアントデバイスの入力構成要素においてユーザによって与えられた音声入力を受け取る動作と、
前記音声入力から音声認識出力を生成する動作であって、前記音声認識出力が前記第1の言語である、動作と、
前記音声認識出力に基づいて前記ユーザの第1の言語の意図を特定する動作と、
第1の遂行情報を生成するために前記第1の言語の意図を遂行する動作と、
前記第1の遂行情報に基づいて、前記第1の言語で第1の自然言語出力の候補を生成する動作と、
前記音声認識出力の少なくとも部分的な翻訳を生成するために前記音声認識出力の少なくとも一部を前記第1の言語から第2の言語に翻訳する動作と、
前記少なくとも部分的な翻訳に基づいて前記ユーザの第2の言語の意図を特定する動作と、
第2の遂行情報を生成するために前記第2の言語の意図を遂行する動作と、
前記第2の遂行情報に基づいて、前記第2の言語で第2の自然言語出力の候補を生成する動作と、
前記第1の自然言語出力の候補のスコアおよび前記第2の自然言語出力の候補のスコアを決定する動作と、
前記スコアに基づいて、前記第1の自然言語出力の候補および前記第2の自然言語出力の候補から、前記ユーザに提示するための自然言語出力を選択する動作と、
前記クライアントデバイスに、前記選択された自然言語出力を前記クライアントデバイスの出力構成要素において提示させる動作とを実行させる前記命令を記憶する、システム。
【請求項１４】
前記第2の言語の意図に応じる前記第1の言語の第3の自然言語出力の候補を生成するための命令をさらに含み、前記スコアを決定する動作が、第1の内容のスコア、第2の内容のスコア、および第3の内容のスコアを決定することをさらに含む請求項13に記載のシステム。
【請求項１５】
採点する前に前記第2の自然言語出力の候補を前記第1の言語に翻訳するための命令をさらに含み、前記第2の自然言語出力の候補を翻訳することが、人とコンピュータの対話中に1つまたは複数の自動化されたアシスタントによって与えられた自然言語出力の1つまたは複数のログを使用して訓練される機械学習モデルに基づく請求項13に記載のシステム。
【請求項１６】
前記音声認識出力の前記少なくとも部分的な翻訳を生成するために翻訳する前記動作が、人とコンピュータの対話中に1つまたは複数の自動化されたアシスタントに送られたユーザの問い合わせの1つまたは複数のログを使用して訓練される機械学習モデルに基づく請求項13に記載のシステム。
【請求項１７】
前記自然言語出力を選択する動作が、前記翻訳された第2の内容が翻訳の基準を満たさないと判定することと、前記翻訳された第2の内容を前記第1の言語の代替的な自然言語出力によって置き換えることとを含む請求項15に記載のシステム。
【請求項１８】
採点することが、前記第1の自然言語の意図および前記第2の自然言語の意図に割り当てられたそれぞれの信頼性スコアに基づく請求項13に記載のシステム。
【請求項１９】
採点することが、前記第1の自然言語出力の候補および前記第2の自然言語出力の候補を取得するために必要とされた時間に基づく請求項13に記載のシステム。
【請求項２０】
前記音声認識出力内のスロット値を特定するための命令をさらに含み、前記音声認識出力の前記少なくとも部分的な翻訳が前記スロット値を除外し、前記第2の言語の意図が前記第1の言語の前記スロット値に基づいてさらに特定される請求項13に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、多言語での自動化されたアシスタントを用いたエンドツーエンドコミュニケーションの促進に関する。
【背景技術】
【０００２】
人は、本明細書において「自動化されたアシスタント」(「チャットボット」、「インタラクティブパーソナルアシスタント」、「インテリジェントパーソナルアシスタント」、「パーソナルボイスアシスタント」、「会話エージェント」などとも呼ばれる)と呼ばれるインタラクティブなソフトウェアアプリケーションを用いて人とコンピュータの対話に従事する可能性がある。たとえば、人(自動化されたアシスタントとインタラクションするときは「ユーザ」と呼ばれることがある)は、テキストに変換され、それから処理される音声の発話である可能性がある自由形式の自然言語入力および/またはタイピングされた自由形式の自然言語入力を使用してコマンド、クエリ、および/または要求(本明細書においては集合的に「問い合わせ」と呼ばれる)を与える可能性がある。概して、自動化されたアシスタントは、所定の音声の発話(たとえば、「OK Assistant」)を使用して呼び出され、多くの場合、呼び出しの語句の後に続く音声の発話に対してのみ音声テキスト化処理および/または自然言語処理などの様々な種類の処理を実行する。
【０００３】
自動化されたアシスタントは、英語などの何らかの広く使用されている言語でユーザとコミュニケーションすることに長けているが、その他の言語でコミュニケーションする能力は、それに劣る。しかし、新しい言語でコミュニケーションするために自動化されたアシスタントを構成するための通常の技術は、大量のリソースを必要とする。それぞれの新しい言語に関して、新しいトリガ文法(trigger grammar) (すなわち、自動化されたアシスタントによる特定のアクションを呼び出すように意図された語または語句)を生成し、新しい言語での問い合わせの意図を認識し(これは、異なる言語のための異なる自然言語処理構成要素を必要とする)、新しい言語で理解できる自然言語出力を生成することが必要である可能性がある。この課題に加えて、各言語は、無数の特異性(たとえば、形態的な豊かさ、代名詞の脱落(pro-drop)、ジェンダー中立性など)を有しており、特定の言語でこれらのシステムを構築することができる言語の専門家は、見つけることが難しい可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００４】
特定の言語の処理を利用することによって様々な言語の人とコンピュータの対話のエンドツーエンドの処理を容易にするための技術が、本明細書において説明される。別の言い方をすれば、本明細書において説明される技術は、自動化されたアシスタントの言語の対応範囲を広げる。様々な実装において、自動化されたアシスタントに与えられたユーザの問い合わせは、複数のパイプラインを使用して処理され得る。たとえば、一部の実装においては、第1のパイプラインが、問い合わせの元の言語でユーザの問い合わせを処理しようと試みるために使用され得る。ユーザの問い合わせを自動化されたアシスタントが処理するための装備がより整っている異なる言語に変換するための、およびユーザの意図を特定し、遂行するために翻訳を使用するための第2のパイプラインが、使用され得る。第2のパイプラインによって返される自然言語出力は、ユーザの元の言語に翻訳して戻される可能性があり、または翻訳して戻されない可能性がある。様々な実装において、複数のパイプラインによって生成された自然言語出力は、たとえば、信頼性スコアに基づいてランク付けされる可能性があり、最も高くランク付けされた自然言語出力が、ユーザに提示される可能性がある。
【０００５】
ユーザの元の問い合わせの一部をユーザの話し言葉のまま残すことが、望ましい可能性がある。たとえば、一部の実装においては、スロット値が、ユーザの元の問い合わせの中で(またはより詳細には、ユーザの元の音声入力から生成された音声認識出力の中で)特定され得る。これらのスロット値は、翻訳される必要がない可能性があり、場合によっては、それらのスロット値を翻訳することは、誤りにつながる可能性がある。たとえば、ユーザが語句「What is Akash's phone number?」を口に出すと仮定する。名前「Akash」は、ユーザの意図と無関係の特定の意味(たとえば、sky)を有する英語の何らかの単語に翻訳できる可能性がある。しかし、単語「Akash」がスロット値として特定され、ユーザの話し言葉のまま残され得る場合、ユーザの問い合わせの残りの部分は、適切な応答アクションが行われ得るように適切に翻訳される可能性がある。
【０００６】
ほとんどの言語は、様々な口語表現を持っている。加えて、自動化されたアシスタントがより「人間らしく」聞こえる出力を提供することができるように、口語表現が自然言語出力の生成プロセスに組み込まれる可能性がある。たとえば、ユーザがまだ十分にサポートされていない言語で今日の天気について尋ねると仮定する。ユーザの問い合わせは、英語などのより広くサポートされている言語に翻訳される可能性があり、ユーザの意図が、特定され、遂行される可能性がある。しかし、このようなよくある問い合わせに関しては、簡単な自然言語出力の代替としてくだけた(「人間らしい」)自然言語出力が利用され得る可能性があることが、大いにあり得る。たとえば、今日は暑く、晴れるはずであると仮定する。単に「It will be 90 degrees and sunny」などの自然言語出力を生成するのではなく、自動化されたアシスタントは、その代わりに、たとえば、「Better grab your sunglasses because it's gonna be a scorcher」などのより人間らしく聞こえるように手動で生成される自然言語出力を選択し得る。この口語的に聞こえる自然言語出力をユーザの母語に翻訳して戻すことは、ユーザにとって無意味な結果を生じる可能性がある。したがって、一部の実装においては、たとえば、手動で生成された口語表現、スラングなどを含むために翻訳することが難しい可能性がある自然言語出力が、ユーザの母語に適切に翻訳可能である見込みがより大きいより簡単な自然言語出力によって置き換えられ得る。
【０００７】
一部の実装においては、第1の言語でクライアントデバイスの入力構成要素においてユーザによって与えられた音声入力を受け取るステップと、音声入力から音声認識出力を生成するステップであって、音声認識出力が第1の言語である、ステップと、音声認識出力に基づいてユーザの第1の言語の意図を特定するステップと、第1の遂行情報を生成するために第1の言語の意図を遂行するステップと、第1の遂行情報に基づいて、第1の言語で第1の自然言語出力の候補を生成するステップと、音声認識出力の少なくとも部分的な翻訳を生成するために音声認識出力の少なくとも一部を第1の言語から第2の言語に翻訳するステップと、少なくとも部分的な翻訳に基づいてユーザの第2の言語の意図を特定するステップと、第2の遂行情報を生成するために第2の言語の意図を遂行するステップと、第2の遂行情報に基づいて、第2の言語で第2の自然言語出力の候補を生成するステップと、第1の自然言語出力の候補のスコアおよび第2の自然言語出力の候補のスコアを決定するステップと、スコアに基づいて、第1の自然言語出力の候補および第2の自然言語出力の候補から、ユーザに提示するための自然言語出力を選択するステップと、クライアントデバイスに、選択された自然言語出力をクライアントデバイスの出力構成要素において提示させるステップとを含む、1つまたは複数のプロセッサによって実行される方法が、提供される。
【０００８】
本明細書において開示されるテクノロジーのこれらのおよびその他の実装は、任意で、以下の特徴のうちの1つまたは複数を含む可能性がある。
【０００９】
様々な実装において、方法は、第2の言語の意図に応じる第1の言語の第3の自然言語出力の候補を生成するステップをさらに含む可能性がある。一部のそのような実装において、スコアを決定するステップは、第1の内容のスコア、第2の内容のスコア、および第3の内容のスコアを決定することをさらに含む可能性がある。
【００１０】
様々な実装において、方法は、採点する前に第2の自然言語出力の候補を第1の言語に翻訳するステップをさらに含む可能性がある。様々な実装において、第2の自然言語出力の候補を翻訳するステップは、人とコンピュータの対話中に1つまたは複数の自動化されたアシスタントによって与えられた自然言語出力の1つまたは複数のログを使用して訓練される機械学習モデルに基づく可能性がある。
【００１１】
様々な実装において、音声認識出力の少なくとも部分的な翻訳を生成するために翻訳するステップは、人とコンピュータの対話中に1つまたは複数の自動化されたアシスタントに送られたユーザの問い合わせの1つまたは複数のログを使用して訓練される機械学習モデルに基づく可能性がある。様々な実装において、採点することは、第1の自然言語の意図および第2の自然言語の意図に割り当てられたそれぞれの信頼性スコアに基づく可能性がある。様々な実装において、採点することは、第1の自然言語出力の候補および第2の自然言語出力の候補を取得するために必要とされた時間に基づく可能性がある。
【００１２】
様々な実装において、方法は、音声認識出力内のスロット値を特定するステップをさらに含む可能性がある。一部のそのような実装において、音声認識出力の少なくとも部分的な翻訳は、スロット値を除外する可能性があり、第2の言語の意図は、第1の言語のスロット値に基づいてさらに特定される可能性がある。
【００１３】
別の態様においては、方法が、以下の動作、すなわち、第1の言語でクライアントデバイスの入力構成要素においてユーザによって与えられた音声入力を受け取るステップと、第1の言語で音声入力の音声認識出力を生成するステップと、音声認識出力の少なくとも部分的な翻訳を生成するために音声認識出力の少なくとも一部を第1の言語から第2の言語に翻訳するステップと、少なくとも部分的な翻訳に基づいてユーザの第2の言語の意図を特定するステップと、遂行情報を生成するために第2の言語の意図を遂行するステップと、第2の言語の意図に基づいて第2の言語で自然言語出力を生成するステップと、翻訳された自然言語出力を生成するために自然言語出力を第1の言語に翻訳するステップと、翻訳された自然言語出力が1つまたは複数の基準を満たすかどうかを判定するステップと、判定に基づいて、翻訳された自然言語出力または代替的な自然言語出力に基づく出力を選択するステップと、クライアントデバイスにクライアントデバイスの出力構成要素において出力を提示させるステップと、クライアントデバイスに、選択された自然言語出力をクライアントデバイスの出力構成要素において提示させるステップとを含む可能性がある。
【００１４】
加えて、一部の実装は、1つまたは複数のコンピューティングデバイスの1つまたは複数のプロセッサを含み、1つまたは複数のプロセッサは、関連するメモリに記憶された命令を実行するように動作可能であり、命令は、上述の方法のいずれかの実行を引き起こすように構成される。一部の実装は、上述の方法のいずれかを実行するために1つまたは複数のプロセッサによって実行され得るコンピュータ命令を記憶する1つまたは複数の非一時的コンピュータ可読ストレージ媒体も含む。
【００１５】
上述の概念および本明細書においてより詳細に説明される追加的な概念のすべての組合せは、本明細書において開示される対象の一部であると考えられることを理解されたい。たとえば、本開示の最後に現れる特許請求の対象のすべての組合せは、本明細書において開示される対象の一部であると考えられる。
【図面の簡単な説明】
【００１６】
【図１】本明細書において開示される実装が実装され得る例示的な環境のブロック図である。
【図２】様々な実装による本開示の様々な態様を明示する例示的なプロセスフローを示す図である。
【図３Ａ】様々な実装によるユーザと自動化されたアシスタントとの間の例示的な対話を示す図である。
【図３Ｂ】様々な実装によるユーザと自動化されたアシスタントとの間の例示的な対話を示す図である。
【図４】本明細書において開示される実装による例示的な方法を示す流れ図である。
【図５】本明細書において開示される実装による例示的な方法を示す流れ図である。
【図６】コンピューティングデバイスの例示的なアーキテクチャを示す図である。
【発明を実施するための形態】
【００１７】
ここで図1に目を向けると、本明細書において開示される技術が実装され得る例示的な環境が示される。例示的な環境は、複数のクライアントコンピューティングデバイス1061-Nを含む。各クライアントデバイス106は、自動化されたアシスタントのクライアント118のそれぞれのインスタンスを実行する可能性がある。自然言語理解エンジン135などの1つまたは複数のクラウドに基づく自動化されたアシスタントの構成要素119は、110に全体的に示される1つまたは複数のローカルおよび/または広域ネットワーク(たとえば、インターネット)を介してクライアントデバイス1061-Nに通信可能なように結合される1つまたは複数のコンピューティングシステム(集合的に「クラウド」コンピューティングシステムと呼ばれる)に実装される可能性がある。
【００１８】
一部の実装において、複数のクライアントコンピューティングデバイス1061-N (本明細書においては単に「クライアントデバイス」とも呼ばれる)は、本明細書において説明される技術の実行を容易にするために様々な方法で互いに関連付けられる可能性がある。たとえば、一部の実装において、複数のクライアントコンピューティングデバイス1061-Nは、それのクライアントコンピューティングデバイス1061-Nが1人または複数のユーザ(たとえば、個人、家族、組織の被雇用者、その他の予め定義されたグループなど)によって運用されるクライアントデバイス106の協調的なエコシステムのメンバーであることによって互いに関連付けられる可能性がある。
【００１９】
背景技術に記されたように、自動化されたアシスタントのクライアント118のインスタンスは、1つまたは複数のクラウドに基づく自動化されたアシスタントの構成要素119とのその自動化されたアシスタントのクライアント118のインタラクションを通して、ユーザの観点から見てユーザが人とコンピュータの対話に従事し得る自動化されたアシスタント120の論理的なインスタンスであるように見えるものを形成する可能性がある。そのような自動化されたアシスタント120の2つのインスタンスが、図1に示される。破線によって囲まれた第1の自動化されたアシスタント120Aは、第1のクライアントデバイス1061を運用する第1のユーザ(図示せず)にサービスを提供し、自動化されたアシスタントのクライアント1181および1つまたは複数のクラウドに基づく自動化されたアシスタントの構成要素119を含む。破線の間隙部分に1つおきに点を入れた線によって囲まれた第2の自動化されたアシスタント120Bは、別のクライアントデバイス106Nを運用する第2のユーザ(図示せず)にサービスを提供し、自動化されたアシスタントのクライアント118Nおよび1つまたは複数のクラウドに基づく自動化されたアシスタントの構成要素119を含む。したがって、クライアントデバイス106上で実行される自動化されたアシスタントのクライアント118と関わり合う各ユーザは、実際には、自動化されたアシスタント120のそのユーザ独自の論理的なインスタンスと関わり合う可能性があることを理解されたい。簡潔で単純にするために、特定のユーザに「サービスを提供する」ものとして本明細書において使用される語「自動化されたアシスタント」は、ユーザによって運用されるクライアントデバイス106上で実行される自動化されたアシスタントのクライアント118と(複数の自動化されたアシスタントのクライアント118の間で共有される可能性がある) 1つまたは複数のクラウドに基づく自動化されたアシスタントの構成要素119との組合せを指す。一部の実装において、自動化されたアシスタント120は、ユーザが自動化されたアシスタント120のその特定のインスタンスによって実際に「サービスを提供される」かどうかに関係なく任意のユーザからの要求に応答する可能性があることも理解されたい。
【００２０】
クライアントデバイス1061-Nは、たとえば、デスクトップコンピューティングデバイス、ラップトップコンピューティングデバイス、タブレットコンピューティングデバイス、モバイル電話コンピューティングデバイス、ユーザの車両のコンピューティングデバイス(たとえば、車載通信システム、車載エンターテインメントシステム、車載ナビゲーションシステム)、スタンドアロンインタラクティブスピーカ、スマートテレビなどのスマート家電、および/またはコンピューティングデバイスを含むユーザのウェアラブル装置(たとえば、コンピューティングデバイスを有するユーザの腕時計、コンピューティングデバイスを有するユーザのメガネ、仮想もしくは拡張現実コンピューティングデバイス)のうちの1つまたは複数を含み得る。追加的なおよび/または代替的なクライアントコンピューティングデバイスが、提供される可能性がある。
【００２１】
クライアントコンピューティングデバイス1061-Nの各々は、複数のメッセージ交換クライアント1071-Nのうちの対応する1つなどの様々な異なるアプリケーションを動作させる可能性がある。メッセージ交換クライアント1071-Nは、様々な形態で現れる可能性があり、形態は、クライアントコンピューティングデバイス1061-Nの中で異なる可能性があり、および/または複数の形態が、クライアントコンピューティングデバイス1061-Nのうちの1つにおいて動作させられる可能性がある。一部の実装において、メッセージ交換クライアント1071-Nのうちの1つまたは複数は、ショートメッセージングサービス(「SMS」)および/またはマルチメディアメッセージングサービス(「MMS」)クライアント、オンラインチャットクライアント(たとえば、インスタントメッセンジャ、インターネットリレーチャット、または「IRC」など)、ソーシャルネットワークに関連するメッセージングアプリケーション、自動化されたアシスタント120を用いた会話に専用のパーソナルアシスタントメッセージングサービスなどの形態で現れる可能性がある。一部の実装において、メッセージ交換クライアント1071-Nのうちの1つまたは複数は、クライアントコンピューティングデバイス106のウェブブラウザ(図示せず)またはその他のアプリケーションによってレンダリングされるウェブページまたはその他のリソースによって実装される可能性がある。
【００２２】
本明細書においてより詳細に説明されるように、自動化されたアシスタント120は、1つまたは複数のクライアントデバイス1061-Nのユーザインターフェースの入力および出力デバイスを介した1人または複数のユーザとの人とコンピュータの対話セッションに従事する。一部の実装において、自動化されたアシスタント120は、クライアントデバイス1061-Nのうちの1つの1つまたは複数のユーザインターフェースの入力デバイスを介してユーザによって与えられたユーザインターフェースの入力に応答してユーザとの人とコンピュータの対話セッションに従事する可能性がある。それらの実装の一部において、ユーザインターフェースの入力は、自動化されたアシスタント120に明示的に振り向けられる。たとえば、メッセージ交換クライアント1071-Nのうちの1つが、自動化されたアシスタント120との会話に専用のパーソナルアシスタントメッセージングサービスである可能性があり、パーソナルアシスタントメッセージングサービスを介して与えられたユーザインターフェースの入力が、自動化されたアシスタント120に自動的に与えられる可能性がある。また、たとえば、ユーザインターフェースの入力は、自動化されたアシスタント120が呼び出されるべきであることを示す特定のユーザインターフェースの入力に基づいてメッセージ交換クライアント1071-Nのうちの1つまたは複数において自動化されたアシスタント120に明示的に振り向けられる可能性がある。たとえば、特定のユーザインターフェースの入力は、1つもしくは複数のタイピングされた文字(たとえば、@AutomatedAssistant)、ハードウェアのボタンおよび/もしくは仮想的なボタンとのユーザのインタラクション(たとえば、タップ、ロングタップ)、口頭のコマンド(たとえば、「Hey Automated Assistant」)、ならびに/またはその他の特定のユーザインターフェースの入力である可能性がある。
【００２３】
一部の実装において、自動化されたアシスタント120は、ユーザインターフェースの入力が自動化されたアシスタント120に明示的に振り向けられないときでさえもそのユーザインターフェースの入力に応答して人とコンピュータの対話セッションに従事する可能性がある。たとえば、自動化されたアシスタント120は、ユーザインターフェースの入力の内容を調べ、ユーザインターフェースの入力の中に特定の語が存在することに応じておよび/またはその他の手掛かりに基づいて対話セッションに従事する可能性がある。多くの実装において、自動化されたアシスタント120は、ユーザがコマンド、検索などを口に出すことができるように音声自動応答(「IVR: interactive voice response」)を使う可能性があり、自動化されたアシスタントは、発話をテキストに変換するために音声認識を利用し、それに応じて、たとえば、検索結果、全般的な情報を提供すること、および/または1つもしくは複数の応答アクション(たとえば、メディアを再生する、ゲームを起動する、食べ物を注文するなど)を行うことによってテキストに応答する可能性がある。一部の実装において、自動化されたアシスタント120は、追加的にまたは代替的に、発話をテキストに変換することなく発話に応答する可能性がある。たとえば、自動化されたアシスタント120は、埋込み(embedding)、(音声入力内に存在する1つのエンティティ/複数のエンティティを示す)エンティティ表現、および/またはその他の「非テキスト」表現に音声入力を変換し、そのような非テキスト表現によって働く可能性がある。したがって、音声入力から変換されたテキストに基づいて動作するものとして本明細書において説明される実装は、追加的におよび/または代替的に、直接的に音声入力によっておよび/または音声入力のその他の非テキスト表現によって動作する可能性がある。
【００２４】
クライアントコンピューティングデバイス1061-Nの各々およびクラウドに基づく自動化されたアシスタントの構成要素119を動作させるコンピューティングデバイスは、データおよびソフトウェアアプリケーションを記憶するための1つまたは複数のメモリと、データにアクセスし、アプリケーションを実行するための1つまたは複数のプロセッサと、ネットワークを介した通信を容易にするためのその他の構成要素とを含み得る。クライアントコンピューティングデバイス1061-Nのうちの1つもしくは複数によっておよび/または自動化されたアシスタント120によって実行される動作は、複数のコンピュータシステムに分散され得る。自動化されたアシスタント120は、たとえば、ネットワークを通じて互いに結合される1つまたは複数の場所の1つまたは複数のコンピュータ上で実行されるコンピュータプログラムとして実装され得る。
【００２５】
上述のように、様々な実装において、クライアントコンピューティングデバイス1061-Nの各々は、自動化されたアシスタントのクライアント118を動作させる可能性がある。様々な実装において、それぞれの自動化されたアシスタントのクライアント118は、対応する音声キャプチャ/テキスト音声化(「TTS: text-to-speech」)/音声テキスト化(「STT」)モジュール114を含み得る。その他の実装において、音声キャプチャ/TTS/STTモジュール114の1つまたは複数の態様は、自動化されたアシスタントのクライアント118とは別に実装される可能性がある。様々な実装において、音声キャプチャ/TTS/STTモジュール114は、口頭の問い合わせに基づいて音声認識出力を生成する可能性がある。この音声認識出力は、本明細書において説明される技術に従って分析される可能性がある。
【００２６】
各音声キャプチャ/TTS/STTモジュール114は、1つまたは複数の機能を実行する、すなわち、たとえば、マイクロフォンによってユーザの音声をキャプチャし、キャプチャされた音声をテキストに(および/もしくはその他の表現もしくは埋込みに)変換し、ならびに/またはテキストを音声に変換するように構成され得る。たとえば、一部の実装においては、クライアントデバイス106が計算リソース(たとえば、プロセッササイクル、メモリ、バッテリなど)の点で比較的制約される可能性があるので、各クライアントデバイス106のローカルにある音声キャプチャ/TTS/STTモジュール114は、有限の数の異なる発話された語句--特に自動化されたアシスタント120を呼び出す語句--をテキストに(またはより低い次元の埋込みなどのその他の形態に)変換するように構成され得る。その他の音声入力が、クラウドに基づく自動化されたアシスタントの構成要素119に送信される可能性があり、クラウドに基づく自動化されたアシスタントの構成要素119は、クラウドに基づくTTSモジュール116および/またはクラウドに基づくSTTモジュール117を含む可能性がある。
【００２７】
クラウドに基づくSTTモジュール117は、音声キャプチャ/TTS/STTモジュール114によってキャプチャされた音声データをテキストに変換するためにクラウドの実質的に制限のないリソースを利用するように構成される可能性がある(それから、テキストは、自然言語プロセッサ122に提供され得る)。クラウドに基づくTTSモジュール116は、テキストデータ(たとえば、自動化されたアシスタント120によって作られた自然言語応答)をコンピュータによって生成される音声出力に変換するためにクラウドの実質的に制限のないリソースを利用するように構成される可能性がある。一部の実装において、TTSモジュール116は、コンピュータによって生成される音声出力を、たとえば、1つまたは複数のスピーカを使用して直接出力されるようにクライアントデバイス106に提供し得る。その他の実装において、自動化されたアシスタント120によって生成されたテキストデータ(たとえば、自然言語応答)は、音声キャプチャ/TTS/STTモジュール114に提供される可能性があり、それから、音声キャプチャ/TTS/STTモジュール114が、テキストデータを、ローカルで出力されるコンピュータによって生成される音声に変換する可能性がある。
【００２８】
自動化されたアシスタント120 (および特にクラウドに基づく自動化されたアシスタントの構成要素119)は、自然言語理解エンジン135、上述のTTSモジュール116、上述のSTTモジュール117、および下でより詳細に説明されるその他の構成要素を含み得る。一部の実装において、自動化されたアシスタント120のエンジンおよび/またはモジュールのうちの1つまたは複数は、省略されるか、組み合わされるか、および/または自動化されたアシスタント120とは別である構成要素に実装される可能性がある。一部の実装においては、プライバシーを保護するために、自然言語プロセッサ122、音声キャプチャ/TTS/STTモジュール114などの自動化されたアシスタント120の構成要素のうちの1つまたは複数が、(たとえば、クラウドを除いて)少なくとも部分的にクライアントデバイス106に実装される可能性がある。
【００２９】
一部の実装において、自動化されたアシスタント120は、自動化されたアシスタント120との人とコンピュータの対話セッション中にクライアントデバイス1061-Nのうちの1つのユーザによって生成された様々な入力に応答して応答内容を生成する。自動化されたアシスタント120は、対話セッションの一部としてユーザに提示するための応答内容を(たとえば、ユーザのクライアントデバイスと別であるときは1つまたは複数のネットワークを介して)提供する可能性がある。たとえば、自動化されたアシスタント120は、クライアントデバイス1061-Nのうちの1つを介して与えられた自由形式の自然言語入力に応答して応答内容を生成する可能性がある。本明細書において使用されるとき、自由形式の入力は、ユーザによって作られ、ユーザによる選択のために提示される1群の選択肢に制約されない入力である。
【００３０】
本明細書において使用されるとき、「対話セッション」は、ユーザと自動化されたアシスタント120 (および場合によってはその他の人間の参加者)との間の1つまたは複数のメッセージの論理的に自己充足的な交換を含み得る。自動化されたアシスタント120は、セッションの間の時間の経過、セッションの間のユーザコンテキスト(たとえば、位置、スケジューリングされた会議の前/最中/後など)の変化、ユーザと自動化されたアシスタントとの間の対話以外のユーザとクライアントデバイスとの間の1つまたは複数の介入するインタラクションの検出(たとえば、ユーザは、アプリケーションをしばらく切り替え、ユーザは、スタンドアロンの音声作動式の製品の所から立ち去り、そして後でそこに戻る)、セッションの間のクライアントデバイスのロック/スリープ、自動化されたアシスタント120の1つまたは複数のインスタンスとインターフェースをとるために使用されるクライアントデバイスの変更などの様々な合図に基づいてユーザとの複数の対話セッションを区別し得る。
【００３１】
自然言語理解エンジン135の自然言語プロセッサ122は、クライアントデバイス1061-Nを介してユーザによって生成された自然言語入力を処理し、自動化されたアシスタント120の1つまたは複数のその他の構成要素による使用のために(たとえば、テキスト形式の)注釈付きの出力を生成する可能性がある。たとえば、自然言語プロセッサ122は、クライアントデバイス1061の1つまたは複数のユーザインターフェースの入力デバイスを介してユーザによって生成される自然言語の自由形式の入力を処理する可能性がある。生成される注釈付きの出力は、自然言語入力の1つまたは複数の注釈および自然言語入力の語のうちの1つまたは複数(たとえば、すべて)を含む。
【００３２】
一部の実装において、自然言語プロセッサ122は、自然言語入力内の様々な種類の文法的情報を特定し、注釈を付けるように構成される。たとえば、自然言語プロセッサ122は、個々の単語を形態素に分割し得るおよび/または形態素にたとえばそれらの形態素のクラスによって注釈を付け得る形態エンジンを含む可能性がある。自然言語プロセッサ122は、語にそれらの語の文法的役割によって注釈を付けるように構成された品詞タガーも含む可能性がある。たとえば、品詞タガーの一部は、各語を「名詞」、「動詞」、「形容詞」、「代名詞」などのその語の品詞によってタグ付けする可能性がある。また、たとえば、一部の実装において、自然言語プロセッサ122は、追加的におよび/または代替的に、自然言語入力内の語の間の統語的関係を決定するように構成された依存関係パーサ(図示せず)を含む可能性がある。たとえば、依存関係パーサは、どの語がその他の語を修飾するか、文の主語および動詞など(たとえば、解析木)を決定する可能性があり--そのような依存関係の注釈を付ける可能性がある。
【００３３】
一部の実装において、自然言語プロセッサ122は、追加的におよび/または代替的に、(たとえば、文学のキャラクター、有名人、著名人などを含む)人、組織、(現実のおよび架空の)場所などへの言及などの1つまたは複数のセグメント内のエンティティの言及に注釈を付けるように構成されたエンティティタガー(図示せず)を含み得る。一部の実装においては、エンティティについてのデータが、ナレッジグラフ(knowledge graph) (図示せず)などの1つまたは複数のデータベースに記憶される可能性がある。一部の実装において、ナレッジグラフは、知られているエンティティ(および場合によってはエンティティの属性)を表すノードと、エンティティを接続し、エンティティの間の関係を表すエッジとを含み得る。たとえば、「banana」ノードが、「fruit」ノードに(たとえば、子として)接続される可能性があり、そして今度は、「fruit」ノードが、「produce」および/または「food」ノードに(たとえば、子として)接続される可能性がある。別の例として、「Hypothetical Cafe」と呼ばれるレストランが、そのレストランの住所、提供される食事の種類、営業時間、連絡先情報などの属性も含むノードによって表される可能性がある。「Hypothetical Cafe」ノードは、一部の実装において、「restaurant」ノード、「business」ノード、レストランのある都市および/または州を表すノードなどの1つまたは複数のその他のノードに(たとえば、子-親関係を表す)エッジによって接続される可能性がある。
【００３４】
自然言語プロセッサ122のエンティティタガーは、(たとえば、人などのエンティティのクラスへのすべての言及の特定を可能にするための)高レベルの粒度(granularity)および/または(たとえば、特定の人物などの特定のエンティティへのすべての言及の特定を可能にするための)より低いレベルの粒度でエンティティへの言及に注釈を付ける可能性がある。エンティティタガーは、特定のエンティティを解決するために自然言語入力の内容に依拠する可能性があり、および/または特定のエンティティを解決するためにナレッジグラフもしくはその他のエンティティデータベースと任意で通信する可能性がある。
【００３５】
一部の実装において、自然言語プロセッサ122は、追加的におよび/または代替的に、1つまたは複数の状況から得られる手掛かり(contextual cue)に基づいて同じエンティティへの言及をグループ分けするかまたは「クラスタリングする」ように構成された同一指示(coreference)リゾルバ(図示せず)を含み得る。たとえば、同一指示リゾルバは、自然言語入力「I liked Hypothetical Cafe last time we ate there」内の語「there」を「Hypothetical Cafe」に解決するために利用され得る。
【００３６】
一部の実装において、自然言語プロセッサ122の1つまたは複数の構成要素は、自然言語プロセッサ122の1つまたは複数のその他の構成要素からの注釈に依拠する可能性がある。たとえば、一部の実装において、固有表現(named entity)タガーは、特定のエンティティへのすべての言及に注釈を付ける際に同一指示リゾルバおよび/または依存関係パーサからの注釈に依拠する可能性がある。また、たとえば、一部の実装において、同一指示リゾルバは、同じエンティティへの言及をクラスタリングする際に依存関係パーサからの注釈に依拠する可能性がある。一部の実装においては、特定の自然言語入力を処理する際に、自然言語プロセッサ122の1つまたは複数の構成要素が、1つまたは複数の注釈を決定するために関連する以前の入力および/または特定の自然言語入力の外のその他の関連するデータを使用する可能性がある。
【００３７】
自然言語理解エンジン135は、自動化されたアシスタント120との人とコンピュータの対話セッションに従事させられるユーザの意図を決定するように構成される意図マッチャ136も含み得る。図1においては自然言語プロセッサ122とは別に示されているが、その他の実装において、意図マッチャ136は、自然言語プロセッサ122の(またはより広く自然言語プロセッサ122を含むパイプラインの)一体的な部分である可能性がある。一部の実装において、自然言語プロセッサ122および意図マッチャ136は、集合的に、上述の「自然言語理解」エンジン135を形成する可能性がある。
【００３８】
意図マッチャ136は、たとえば、(自然言語入力の注釈および語を含む可能性がある)自然言語プロセッサ122からの出力に基づいてユーザの意図を決定するための様々な技術を使用し得る。一部の実装において、意図マッチャ136は、たとえば文法と応答アクション(またはより広く意図)との間の複数のマッピングを含む1つまたは複数のデータベース137にアクセスすることができる可能性がある。多くの場合、これらの文法は、選択されおよび/または時間とともに学習される可能性があり、ユーザの最も普通の意図を表す可能性がある。たとえば、1つの文法「play <artist>」は、<artist>による音楽をユーザによって運用されるクライアントデバイス106上で再生させる応答アクションを呼び出す意図にマッピングされる可能性がある。別の文法「[weather|forecast] today」は、「what's the weather today」および「what's the forecast for today?」などのユーザの問い合わせにマッチングされ得る可能性がある。下でより詳細に説明されるように、文法に加えてまたは文法の代わりに、一部の実装において、意図マッチャ136は、1つまたは複数の訓練された機械学習モデルを単独でまたは1つもしくは複数の文法と組み合わせて使用し得る。これらの訓練された機械学習モデルは、1つまたは複数のデータベース137に記憶される可能性もある。
【００３９】
「play <artist>」の例示的な文法に見られるように、いくつかの文法は、スロット値(または「パラメータ」)によって満たされ得るスロット(たとえば、<artist>)を有する。スロット値は、様々な方法で決定され得る。多くの場合、ユーザは、スロット値を先を見越して与える。たとえば、文法「Order me a <topping> pizza」に関して、ユーザは、語句「order me a sausage pizza」と言う見込みが大きい可能性があり、その場合、スロット<topping>は、自動的に満たされる。追加的にまたは代替的に、ユーザがスロット値を先を見越して与えることなしにユーザがスロット値によって満たされるスロットを含む文法を呼び出す場合、自動化されたアシスタント120が、ユーザにそれらのスロット値を求める可能性がある(たとえば、「what type of crust do you want on your pizza?」)。
【００４０】
一部の実装において、自動化されたアシスタント120は、ユーザとサードパーティアプリケーションとの間のトランザクションを容易にする(または「仲介する」)可能性がある。これらのサードパーティアプリケーションは、たとえば、クラウドに基づく自動化されたアシスタントの構成要素119を動作させるコンピューティングシステムとは別であるコンピューティングシステム上で動作する可能性があり、または動作しない可能性がある。したがって、意図マッチャ136によって特定され得るユーザの意図の1つの種類は、サードパーティアプリケーションを関与させることになる。たとえば、自動化されたアシスタント120は、アプリケーションプログラミングインターフェース(「API」)へのアクセスをピザ宅配サービスに提供する可能性がある。ユーザは、自動化されたアシスタント120を呼び出し、「I'd like to order a pizza」などのコマンドを与える可能性がある。意図マッチャ136は、このコマンドを、サードパーティピザ宅配サービスと関わり合うように自動化されたアシスタント120をトリガする(場合によってはサードパーティによってデータベース137に追加される可能性がある)文法にマッピングし得る。サードパーティピザ宅配サービスは、自動化されたアシスタント120に、ピザ宅配の注文を遂行するために満たされる必要があるスロットの最小限のリストを与える可能性がある。自動化されたアシスタント120は、スロットのためのパラメータを求める自然言語出力を生成し、(クライアントデバイス106を介して)ユーザに与える可能性がある。
【００４１】
人とコンピュータの対話の領域において、ユーザによっておよび自動化されたアシスタント120によって使用される語彙は、日常の会話、文学作品、文章などにおいて使用されるものよりもいくらか狭い可能性がある。換言すれば、人とコンピュータの対話中に使用される限られた言語空間は、概して、より広い目的の人と人のコミュニケーション(たとえば、話すこと、書くことなど)のために使用されるより包括的な言語空間のサブセットになる。たとえば、ユーザは、1つまたは複数のタスクを実行させるために自動化されたアシスタント120と関わり合う傾向がある。通常の検索クエリとの関連においてさえ、ユーザは、天気、交通、乗り換え時間、レストランの営業時間などについて尋ねるなど、特定の種類の問い合わせを行うために自動化されたアシスタントと関わり合う傾向がある。
【００４２】
したがって、一部の実装において、自然言語理解エンジン135は、たとえば、自然言語プロセッサ122または意図マッチャ136を通して、自動化されたアシスタント120との人とコンピュータの対話において通常使用される特定の限られた語彙を理解するように特定の言語で訓練される(たとえば、データベース137内の) 1つまたは複数のモデルにアクセスすることができる可能性がある。これらのモデルは、たとえば、特定の言語でユーザの意図を決定するために特定の言語に訳された自然言語入力のログを使用して特定の言語で訓練される可能性がある。これは、まだ完全にサポートされていない(すなわち、包括的な翻訳がまだ利用可能でない)言語に特に役立つ。たとえば、英語などの広くサポートされる言語でよくある問い合わせ(たとえば、食べ物を注文する、天気を調べる、タイマーを設定するなど)が、ログから取得され、比較的広くサポートされていない第2の言語に(たとえば、トランスレータ138によって自動的に、諸外国語に通じた者/翻訳家によって手動でなど)翻訳される可能性がある。これらの翻訳されたよくある問い合わせは、比較的広くサポートされていない第2の言語のためにモデルを訓練するための訓練例としてそれらの問い合わせが一致する意図と併せて使用され得る。
【００４３】
たとえば、英語の問い合わせが、たとえば、トランスレータ138および/または人間の諸外国語に通じた者/翻訳家を使用して比較的広くサポートされていない言語に翻訳される可能性がある。翻訳は、モデルを訓練するために、(比較的広くサポートされていない言語にやはり翻訳される可能性がある)対応する意図によってラベル付けされた訓練例として使用され得る。モデルが何らかの種類のニューラルネットワークである場合、ラベル付けされた訓練例は、出力を生成するためにニューラルネットワーク全体の入力として適用され得る。出力は、誤差を生成するために対応するラベルと比較され得る。誤差に基づいて、(確率的またはバッチ)勾配降下法および逆伝播法などの様々な訓練技術が、ニューラルネットワークの1つまたは複数の隠れ層の重みを調整するために使用され得る。
【００４４】
一部の実装においては、比較的広くサポートされていない言語のこれまで見られなかった問い合わせが、出力を生成するためにモデル全体の入力として適用され得る。一部のそのような実装において、出力は、言語に関連する次元の削減された空間への埋込みの形態をとる可能性がある。意図が、これらのこれまで見られなかった問い合わせに、次元の削減された空間内のその他の埋込みとのそれらの近接性(たとえば、ユークリッド距離、コサイン類似度など)に基づいてマッチングされ得る。これまで見られなかった問い合わせを与えるユーザが最終結果を拒絶する場合、ユーザの問い合わせは、モデルをさらに訓練するための負の訓練例として使用され得る。新しい問い合わせを与えるユーザが正のフィードバックを与える(またはフィードバックを与えず、そのことがユーザが満足していることを示す)場合、ユーザの問い合わせは、モデルをさらに訓練するための正の訓練例として使用され得る。このようにして、自動化されたアシスタント120が新しい言語でどのようにして意図を予測すべきかを「学習する」ことが可能である。
【００４５】
遂行エンジン124は、意図マッチャ136によって出力された意図と、(ユーザによって先を見越して与えられるかまたはユーザから求められるかに関わらず)関連するスロット値とを受け取り、意図を遂行するように構成され得る。様々な実装において、ユーザの意図の遂行は、(場合によっては言語に依存しない可能性がある)様々な遂行情報をたとえば遂行エンジン124によって生成させる/取得させる可能性がある。以下で説明されるように、遂行情報は、一部の実装においては、自然言語ジェネレータ(一部の図においては「NLG」)126に提供される可能性があり、自然言語ジェネレータ126は、遂行情報に基づいて自然言語出力を生成する可能性がある。
【００４６】
遂行情報は、意図が様々な方法で遂行され得るので様々な形態をとる可能性がある。ユーザが「Where were the outdoor shots of ‘The Shining' filmed?」のように純然たる情報を要求すると仮定する。ユーザの意図は、たとえば、意図マッチャ136によって検索クエリであるものと判定され得る。検索クエリの意図および内容が、遂行エンジン124に与えられる可能性があり、遂行エンジン124は、図1に示されるように、応答情報に関して文書のコーパスおよび/またはその他のデータソース(たとえば、ナレッジグラフなど)を検索するように構成された1つまたは複数の検索エンジン150と通信し得る。遂行エンジン124は、検索クエリを示すデータ(たとえば、クエリのテキスト、次元の削減された埋込みなど)を検索エンジン150に提供する可能性がある。検索エンジン150は、GPS座標または「Timberline Lodge, Mt. Hood, Oregon」などのその他のより明示的な情報などの応答情報を提供する可能性がある。この応答情報は、遂行エンジン124によって生成される遂行情報の一部を形成する可能性がある。
【００４７】
追加的にまたは代替的に、遂行エンジン124は、たとえば、自然言語理解エンジン135から、ユーザの意図と、ユーザによって与えられたまたはその他の手段を使用して決定された任意のスロット値(たとえば、ユーザのGPS座標、ユーザの好みなど)とを受け取り、応答アクションをトリガするように構成され得る。応答アクションは、たとえば、物/サービスを注文すること、タイマーを開始すること、リマインダを設定すること、電話をかけること、メディアを再生すること、メッセージを送信することなどを含み得る。一部のそのような実装において、遂行情報は、遂行に関連するスロット値、(場合によっては所定の応答から選択される可能性がある)確認応答などを含み得る。
【００４８】
上述のように、自然言語ジェネレータ126は、様々なソースから取得されたデータに基づいて自然言語出力(たとえば、人の話し方をまねるように設計される発話される単語/語句)を生成するおよび/または選択するように構成され得る。一部の実装において、自然言語ジェネレータ126は、意図の遂行に関連する遂行情報を入力として受け取り、遂行情報に基づいて自然言語出力を生成するように構成され得る。追加的にまたは代替的に、自然言語ジェネレータ126は、その自然言語ジェネレータ126がユーザのための自然言語出力を構成するために使用し得るサードパーティアプリケーションなどのその他のソースからの情報(たとえば、必要とされるスロット)を受け取る可能性がある。
【００４９】
ユーザの意図が全般的な情報を検索することである場合、自然言語ジェネレータ126は、たとえば、文の形態でユーザの意図に応答する情報を運ぶ自然言語出力を生成し得る。場合によっては、自然言語出力は、たとえば、自然言語ジェネレータ126によって抽出され、(たとえば、それが既に完全な文の形態であるので)文書から変更されず、そのまま提供される可能性がある。追加的にまたは代替的に、一部の実装において、応答内容は、完全な文の形態ではない可能性があり(たとえば、今日の天気の要求は、高い温度および降水確率を独立したデータとして含む可能性がある)、その場合は、自然言語ジェネレータ126が、応答内容を提示する1つまたは複数の完全な文または語句を自然言語出力として構成する可能性がある。
【００５０】
自然言語理解エンジン135 (たとえば、意図マッチャ136)がそうであったように、自然言語ジェネレータ126は、広い目的のコミュニケーションのために使用されるより包括的な言語空間よりも狭い言語空間(たとえば、そのサブセット)内で動作し得る。したがって、自然言語理解エンジン135がそうであったように、一部の実装において、自然言語ジェネレータ126は、たとえば、人とコンピュータの対話の文脈で自然言語出力を生成するように特に訓練される1つまたは複数の言語に固有のモデルを記憶し得る1つまたは複数のデータベース127にアクセスすることができる可能性がある。これらの切り詰められたモデルを訓練することは、包括的なモデルを訓練するよりも労力がかからない可能性があり、したがって、特定の言語の包括的な自動化された翻訳および/または全般的な能力がまだサポートされていない言語での自動化されたアシスタント120のより早いロールアウトを容易にする可能性がある。
【００５１】
一部の実装において、英語などの十分にサポートされた言語での人とコンピュータの対話中に得られた人とコンピュータの対話の知識が、その他の比較的サポートされていない言語に固有のモデルを訓練するために利用され得る。たとえば、自然言語出力、たとえば、語句、(下でより詳細に説明される)テンプレートなどのコーパスが、第2の言語に(たとえば、諸外国語に通じた者/翻訳家によって手動で)翻訳され、それから、第2の言語で自然言語出力を生成するために自然言語ジェネレータ126によって使用され得る第2の言語のための自然言語生成モデルを訓練するための訓練データとして使用され得る。
【００５２】
一部の実装において、訓練データの各訓練例は、特定の英語の自然言語出力の語句/文が生成されることにつながる意図と、もしあればユーザによって与えられたスロット値とを入力として(たとえば、入力ベクトルとして)含み得る。訓練例は、英語の自然言語出力の語句/文の翻訳されたバージョンによってラベル付けされ得る。入力は、出力を生成するために自然言語生成モデル(たとえば、ニューラルネットワークなど)全体に適用される可能性があり、そして、出力は、誤差を決定するためにラベルと比較される。誤りに基づいて、逆伝播法、(確率的またはバッチ)勾配降下法などの様々な訓練技術が、自然言語生成モデルの重みを調整するために適用される可能性がある。
【００５３】
訓練されると、そのような自然言語生成モデルは、たとえば、次元の削減された空間(たとえば、第2の言語での潜在的な自然言語出力に関連付けられる埋込み空間)へのその後決定されたユーザの意図の埋込みを生成するために使用され得る。その他の同様の意図の埋込みとの(たとえば、ユークリッド距離、コサイン類似度などを使用して決定される)埋込みの近接性が、その他の埋込みに応じて使用された自然言語出力を特定するために使用され得る。そして、自然言語ジェネレータ126は、同じまたは同様の自然言語出力を使用する可能性がある。
【００５４】
一部の実装において、自然言語ジェネレータ126は、自然言語出力を生成するために、本明細書において「自然言語生成テンプレート」(または「NLGテンプレート」)と呼ばれるものに依拠し得る。一部の実装において、NLGテンプレートは、データベース127に記憶され得る。NLGテンプレートは、遂行エンジン124によって生成される遂行情報と一緒に含められるデータなどの様々なソースからの様々な情報に応じて自然言語出力の作成を規定する論理を含み得る。したがって、いくつかの方法で、NLGテンプレートは、実際には状態機械を構成する可能性があり、任意の知られているプログラミング言語またはその他のモデリング言語(たとえば、統一モデリング言語、仕様記述言語(Specification and Description Language)など)を使用して作成される可能性がある。
【００５５】
例として、英語のNLGテンプレートは、天気情報の英語の要求に応答するように構成され得る。NLGテンプレートは、複数の候補の自然言語出力のうちのどれが複数の状況下で提供されるかを規定する可能性がある。たとえば、遂行エンジン124によって生成される遂行情報が、温度がたとえば華氏80度を超え、快晴になることを示すと仮定する。NLGテンプレートに記載の論理(たとえば、if/elseステートメント)は、自然言語ジェネレータ126によって選択される自然言語出力が「It's gonna be a scorcher, don't forget your sunglasses」などの語句であると規定する可能性がある。遂行エンジン124によって生成される遂行情報が、温度がたとえば華氏30度未満であり、雪が降ることを示すと仮定する。NLGテンプレートに記載の論理は、自然言語ジェネレータ126によって選択される自然言語出力が「It's gonna be chilly, you might want a hat and gloves, and be careful on the road」などの語句であると規定する可能性がある。以下同様である。
【００５６】
一部の実装においては、英語などの1つの十分にサポートされた言語のNLGテンプレートが、別の比較的サポートされていない言語に翻訳される可能性がある。たとえば、諸外国語に通じた者および/または翻訳家が、1つの言語のNLGテンプレートを、そのNLGテンプレートに含まれる自然言語出力の選択肢が別の言語に翻訳されるように手動で編集する可能性がある。一部の実装において、コンピューティングデバイスにグラフィカルユーザインターフェース(「GUI」)をレンダリングさせる設計アプリケーションが、提供される可能性がある。GUIは、(たとえば、ノードが状態を表し、エッジが状態の間の遷移を表す)論理流れ図などの直観的に提示されるNLGテンプレートに含まれる論理のグラフィカルな表現を含み得る。一部のそのような実装において、論理流れ図のノードは、適切な場合、諸外国語に通じた者および/または翻訳家によって編集され得る可能性がある(場合によってはプレースホルダが遂行エンジン124によって提供される遂行情報および/またはスロット値に依存する単語/語句の代わりに使われる)候補の自然言語出力の言説を含み得る。これは、幅広いプログラミングの知識を欠いているが、翻訳の訓練を受けている個人が、基礎をなす論理を扱う必要なしに自然言語出力のみを翻訳することを可能にし得る。
【００５７】
一部の言語は、その他の言語よりも話し手/聞き手に依存せず、したがって、それらの言語の自然言語出力は、様々な状況下で比較的一様である可能性がある。しかし、その他の言語は、ジェンダーに基づく規則、形式に基づく規則など、特定の単語または語句がどのように話されるかを規定する規則を含む。したがって、一部の実装において、1つの話し手/聞き手に依存しない言語に関して生成されたNLGテンプレートは、別のより話し手/聞き手に依存する言語に翻訳されるとき、追加的な論理を必要とする可能性がある。たとえば、英語のNLGテンプレートをスペイン語のNLGテンプレートに翻訳するときは、ユーザのジェンダーおよび/または自動化されたアシスタント120によって使用される音声に関連するジェンダーを説明するために翻訳されたNLGテンプレートに追加的な論理を追加することが必要である可能性がある(たとえば、男性および女性の音声などの異なるコンピュータによって生成される音声から選択する選択肢が存在する可能性がある)。反対に、NLGテンプレートをスペイン語から英語(または別の話し手/聞き手に依存しない言語)に翻訳するときは、不必要なジェンダー選択論理(および/または形式選択論理)が削除されるようにテンプレートを簡単にすることが必要である可能性がある。
【００５８】
背景技術に記されたように、自動化されたアシスタントは、英語などの何らかの広く使用されている言語でユーザとコミュニケーションすることに長けている。これは、英語が最もよく話される言語である国において自動化されたアシスタントが開発されていることなどの様々な理由による可能性がある。しかし、自動化されたアシスタントは、その他の言語でユーザとコミュニケーションすることにはそれほど長けていない可能性がある。あらゆる言語は、それらの言語でコミュニケーションするために自動化されたアシスタント120を適合することを難しくする無数の特異性を持っており、多くの場合、言語の専門家によるかなりの人間の介入を必要とする。さらに、サードパーティアプリケーションの開発者は、複数の言語でコミュニケーションするためにそれらの開発者のシステムを適合するためのリソースを欠いている可能性がある。
【００５９】
ある言語のテキストを別の言語に自動的に翻訳するための様々な技術が、存在する。第1の言語で入力を受け取り、第2の言語で出力を提供するように構成される様々なモデルが、存在する。たとえば、多くのウェブブラウザは、ウェブページを異なる言語に翻訳する能力を提供する。加えて、ある言語でユーザ入力を受け取り、ユーザによって選択された別の言語で出力を提供するためのいくつかのウェブサービスが、備えられている。
【００６０】
したがって、様々な実装において、様々な言語の間で内容を翻訳するように構成され得るトランスレータ138が、たとえば、クラウドに基づく自動化されたアシスタントの構成要素119の一部としてまたは別に提供される可能性がある。図1において、トランスレータ138は、ある言語から別の言語に翻訳するために使用され得る様々な種類のデータ(たとえば、辞書、訓練された翻訳モデルなど)を含む可能性がある1つまたは複数のデータベース139にアクセスすることができる。たとえば、第1のデータベースが、第1の言語から第2の言語への翻訳およびその逆の翻訳を容易にする可能性がある。第2のデータベースが、第1の言語から第3の言語への翻訳およびその逆の翻訳を容易にする可能性がある。以下同様である。
【００６１】
一部の実装において、トランスレータ138は、テキストを様々な元言語から標準的な言語(たとえば、英語)に翻訳し、それから、標準的な言語から目標言語に翻訳する統計的な機械翻訳サービスを実装する可能性がある。追加的にまたは代替的に、一部の実装において、トランスレータ138は、テキスト入力のコンテキスト全体が利用され得るように、個々のトークンではなく文または語句全体を一度に翻訳するニューラル機械翻訳(「NMT」)エンジンを実装する可能性がある。
【００６２】
一部の実装においては、たとえば、汎用の翻訳を実行するためにトランスレータ138によって既に使用されている通常のニューラル機械翻訳(「NMT」)モデルが、特に人とコンピュータの対話セッション中に使用される言語を翻訳し、理解することがより得意になるように強化され(すなわち、特別に訓練され)得る。この強化されたNMTモデルは、本明細書においては「自然言語理解-ニューラル機械翻訳」(「NLU-NMT」)モデルと呼ばれる。
【００６３】
第1に、訓練データが、ユーザと自動化されたアシスタント120との間の人とコンピュータの対話中に生成された問い合わせ/意図のログから収集され得る。たとえば、十分にサポートされた言語、たとえば、英語の問い合わせのランダムなサンプルと、別の比較的十分にサポートされていない言語(この例に関しては「言語L」)の問い合わせのランダムなサンプルとが、ログから取得され得る。追加的にまたは代替的に、英語および言語Lのある数の「上位の」(たとえば、最も頻繁な)問い合わせも、取得され得る。
【００６４】
このデータは、ペア<sentence-en, sentence-L>の第1の組を生成するために、たとえば、人間の諸外国語に通じた者/翻訳家によって英語におよび/または英語から手動で翻訳され得る。ペアのこの組が、NLU-NMTのための訓練データとして使用される。次に、(i)同じ自動化されたアシスタントのログから比較的多い数の追加的な問い合わせを取得し、(ii)ペア<sentence-en, sentence-L>の第2の組を生成するためにこれらの追加的な問い合わせをたとえばトランスレータ138によって機械翻訳することによって、さらなる訓練データがNLU-NMTモデルのための訓練データに追加され得る。ペアの第1のおよび第2の組は、たとえば、NLU-NMTモデルを生成するために、トランスレータ138によって既に利用されている既存のNMTモデルを再訓練する(すなわち、強化する)ために組み合わされ、使用され得る。その後、NLU-NMTモデルは、ユーザが自動化されたアシスタント120によく尋ねる種類の問い合わせを言語Lから英語に翻訳することに通常のNMTモデル単独よりも優れている可能性がある。
【００６５】
第2の言語(たとえば、英語)の問い合わせを訓練データを収集するための基礎として使用することは、第1の言語で自動化されたアシスタント120を実装し始める前でさえもNLU-NMTモデルを前もって準備することを可能にする。一部の実装においては、第2の言語(たとえば、英語)のログが利用可能であるとき、NLU-NMTモデルが、第2の言語からログを取得することによって得られた新しい訓練セットを与え、それらの訓練セットを人間の翻訳家および機械翻訳によって翻訳することによってさらに再訓練され得る。
【００６６】
自動化されたアシスタント120と関わり合うときにユーザによって使用される言語がそうであるように、自動化されたアシスタント120によって生成される種類の自然言語は、広い目的の人と人のコミュニケーション中に使用される言語の下位空間である。したがって、一部の実装において、NLU-NMTモデルに関連して上で説明されたのと同様のプロセスが、たとえば、自然言語出力を生成するために自然言語ジェネレータ126によって使用され得る。
【００６７】
上述のように、一部の通常のトランスレータは、2つの言語の間の広い目的の翻訳を実行するためにニューラル機械翻訳(「NMT」)モデルを既に使用している。したがって、上述のNLU-NMTモデルと同様に、通常のNMTモデルが、自然言語生成-ニューラル翻訳モデル(「NLG-NMT」)を生成するためにユーザとの人とコンピュータの対話中に自動化されたアシスタント120によって提供された自然言語出力のログから収集された訓練データによって強化され(すなわち、再訓練され)得る。たとえば、ログから得られたこれらの自然言語出力は、上述のように、たとえば、諸外国語に通じた者/翻訳家によって手動で、および/またはたとえばトランスレータ138によって自動で<sentence-EN, sentence-L>のペアに翻訳され得る。それから、これらのペアは、トランスレータ138によって既に使用されているNMTモデルを、人とコンピュータの対話セッション中に自動化されたアシスタント120によって通常使用される自然言語出力を翻訳する能力がより高いNLG-NMTモデルへと再訓練するために使用され得る。
【００６８】
一部の実装において、NLG-NMTモデルは、1つまたは複数のNLG言語テンプレートによって生成された言語出力を翻訳するように訓練され得る。再訓練は、新しい訓練セットを与えることによって実現され得る。一部の実装において、訓練セットは、人間の翻訳家によってより広くサポートされている言語(たとえば、英語)で最も頻繁に生成される文を翻訳することによって取得され得る。一部の実装において、このセットは、NLGテンプレートの多数のアルゴリズムによって生成された例の実現をたとえばトランスレータ138によって自動的に翻訳することによって強化され得る。
【００６９】
様々な実装において、NLG-NMTモデルは、様々なその他のソースに由来する答えをより正確に翻訳するように訓練され得る。たとえば、NLG-NMTモデルは、ウェブ文書から取得された通常の質問への答えをより正確に訓練するように訓練され得る。特に、よくある問い合わせに対するオンライン文書からの上位の答えの手動で翻訳されたバージョンが、NLG-NMTモデルを再訓練するための追加的な訓練セットとして広くサポートされている言語(たとえば、英語)で提供され得る。別の例として、一部の実装において、NLG-NMTモデルは、「パーソナリティ(personality)」データベースに由来する答えを翻訳するように訓練され得る。(口語表現を含む可能性がある)「パーソナリティ」の答えは、特定の種類のユーザの問い合わせに答えるために創造力のあるライターによって書かれる答えである。創造力のあるライターによって書かれる可能性のある答えの例は、たとえば、本明細書の他の箇所で説明される「It's gonna be a scorcher」の例を含み得る。これらのパーソナリティの答えは、手動で翻訳され、それから、NLG-NMTモデルのためのさらに別の訓練セットとして使用され得る。
【００７０】
図2は、様々な実装による、(たとえば、発話されるかまたはタイピングされる)ユーザの自由形式の入力が複数のパイプラインを使用して処理され得る1つの例示的なプロセスフローを示す。ブロック250において、自由形式の入力(たとえば、「問い合わせ」)が、たとえば、クライアントデバイス106のマイクロフォンにおいて受け取られる。問い合わせは、情報(たとえば、「what's the weather today?」、「what's the capitol of France?」)および/または1つもしくは複数のアクション(たとえば、食べ物を注文する、音楽を再生する、リマインダを作成する、カレンダーの項目を作成する、他の誰かにメッセージを送信する、タイマーを設定するなど)の開始を要求する可能性がある。例示を目的として、問い合わせが、ユーザの母語で受け取られると仮定する。この例に関して、(ユーザの発話の次元の削減された埋込みなどその他の形式もあり得るが)問い合わせがテキスト形式であるように、ブロック250における問い合わせが(たとえば、図1のモジュール114および/または117によって)既に音声認識されたということも仮定され得る。受け取られた問い合わせは、それぞれが(i)ユーザの意図(および意図を遂行するために必要とされる任意のスロット値)を特定し、(ii)特定された意図を遂行し、(iii)特定された意図の遂行に基づいて自然言語出力を生成するように構成された複数の処理パイプラインに提供され得る。
【００７１】
第1のパイプラインは、ブロック252において始まる可能性があり、この時点で、意図マッチャ136が、(図2において「第1の言語」と呼ばれる)ユーザの母語でユーザの意図を決定しようと試みる可能性がある。上述のように、一部の実装において、意図マッチャ136は、次元の削減された空間に問い合わせを埋め込み、その他の意図に関連するその他の埋込みとのその問い合わせの近接性を決定するために1つまたは複数の訓練機械学習モデル(たとえば、ニューラルネットワーク)を使用し得る。追加的にまたは代替的に、意図マッチャ136は、ユーザの意図を決定するために1つまたは複数の文法を利用し得る。
【００７２】
一部の実装において、(「第1の言語の意図」とも呼ばれることがある)ブロック252において決定された意図は、たとえば、マッチングされた意図が本当にユーザの意図であるという信頼性の尺度を決定するために採点エンジン140によって採点される可能性がある。ユーザの母語のサポートが既に比較的強力である場合、マッチングされた意図に関連する信頼性の尺度は比較的高い可能性がある。しかし、ユーザの母語がまだ十分にサポートされていない状況では、信頼性の尺度は比較的低い可能性がある。一部の実装において、マッチングされた第1の言語の意図の信頼性の尺度が所定の閾値などの何らかの基準を満たさない場合、第1のパイプラインの処理は、その処理がさらに進む前に断念される可能性がある。一部の実装において、このマッチングされた意図に関連する信頼性の尺度は、(下で説明される)その他のパイプラインを使用して決定されたその他のマッチングされた意図に関して決定された信頼性の尺度と比較される可能性がある、最も高い信頼性の意図が、ユーザの要求を遂行するために使用される可能性がある。
【００７３】
ブロック253において、ブロック252においてユーザの母語で特定された第1の言語の意図が、たとえば、ユーザの要求を遂行するために遂行エンジン124によって使用され得る。様々な筋書きにおいて、ユーザの意図は、ユーザによって与えられたスロット値および/または様々なその他のソースから取得されたデータポイント(data point)などのその他のデータポイントによって遂行される可能性もある。上述のように、ユーザの意図の遂行は、遂行エンジン124に応答内容を含む遂行情報を生成させ得る。一部の実装において、これは、ユーザの母語の文書の様々なコーパス(たとえば、通常の検索エンジンによって検索される同様のコーパス)から、および/またはユーザの言語の文書が検索結果としてより重く偏向されるより広いコーパスからの内容を含み得る。一部の実装において、これは、ユーザのカレンダー、リマインダリストなどからの情報などのユーザによって制御される内容を含み得る。追加的にまたは代替的に、遂行情報は、メディアを再生する、製品/サービスを注文するなどの応答アクションを含み得る。
【００７４】
ブロック254において、遂行情報が、たとえば、ユーザの母語で第1の自然言語出力の候補を生成するために自然言語ジェネレータ126によって使用され得る。上述のように、一部の実装において、これは、第1の自然言語出力の候補を作るために使用される出力を生成するためにユーザ母語で訓練された機械学習モデル全体の入力として遂行情報を自然言語ジェネレータ126が適用することを含み得る。追加的にまたは代替的に、これは、自然言語出力を生成するためにユーザの母語のNLGテンプレートに含まれる論理を実装することを含み得る。下で説明されるように、ブロック254において生成される自然言語出力は、それから、ブロック264における採点のために採点エンジン140に提供され得る。
【００７５】
様々な実装においては、1つまたは複数の追加的なパイプラインが、たとえば、ブロック252〜254によって定義されたパイプラインと並列に実装される可能性がある。たとえば、第2のパイプラインは、ユーザの問い合わせがより十分にサポートされる可能性がある第2の言語にたとえばトランスレータ138によって翻訳され得るブロック256において始まる可能性がある。本明細書において説明される例においては英語がより十分にサポートされる言語であるものとして示されているが、これは、限定的であるように意図されていない。一部の実装において、トランスレータ138は、ブロック256の翻訳を実行するために上述のNLU-NMTモデルを使用し得る。上述のように、NLU-NMTモデル全体の入力としてユーザの問い合わせを適用することは、広い目的の翻訳のために既に使用されている通常のNMTモデルによって生成される出力よりもユーザの意図を正確に予測する見込みが大きい出力を生成し得る。
【００７６】
ブロック258において、ユーザの問い合わせの翻訳が、たとえば、第2の言語での1つまたは複数の意図(「第2の言語の意図」とも呼ばれる)に意図マッチャ136によってマッチングされる。ブロック252がそうであったように、様々な実装において、ブロック258においてマッチングされた第2の言語の意図は、たとえば信頼性の尺度を決定するためにたとえば採点エンジン140によって採点され得る。この信頼性の尺度は、たとえば、ブロック252のマッチングされた第1の言語の意図に関して決定された信頼性の尺度と比較され得る。一部の実装においては、最も高い信頼性の尺度を有する(または十分なだけより高い信頼性の尺度にある)意図が選択される可能性があり、その選択された意図に関連するパイプラインのみが処理を継続する可能性がある。
【００７７】
ブロック259において、ブロック258においてマッチングされた第2の言語の意図が、たとえば、ブロック253と同様に、第2の遂行情報を生成するために遂行エンジン124によって遂行され得る。ブロック260において、ブロック259において生成された遂行情報が、たとえば、ブロック254と同様に、第2の言語で第2の自然言語出力の候補を生成するために自然言語ジェネレータ126によって使用され得る。一部の実装において、(第2の言語の)第2の自然言語出力の候補は、それから、たとえば、ブロック262において第1の言語(すなわち、ユーザの母語)にトランスレータ138によって翻訳して戻される可能性があり、翻訳された第2の自然言語出力の候補をもたらす。
【００７８】
様々な実装において、(第1の言語の)ブロック254において生成された第1の自然言語出力の候補と、ブロック262において第1の言語に翻訳して戻された(第2の言語の)ブロック260において生成された第2の自然言語出力の候補は、たとえば、採点エンジン140によって採点され得る。様々な実装において、最も高いスコアを有する(今や両方とも第1の言語の)自然言語出力の候補が、ユーザに提示するために選択され得る。自然言語出力の候補を採点するとき、様々な基準が使用され得る。一部の実装において、自然言語出力の候補は、自然言語出力を生じた意図(ブロック252および258)に関して決定された信頼性の尺度に少なくとも部分的に基づいて採点される可能性がある。追加的にまたは代替的に、一部の実装においては、ブロック262において第1の言語に翻訳される第2の自然言語出力の候補が、翻訳の品質に基づいて採点される可能性がある(一部の翻訳モデルは、それらのそれぞれの翻訳を採点するように構成される)。
【００７９】
一部の実装においては、別の(第3の)パイプラインが、ブロック252〜254および256〜262によってそれぞれ定義された第1のおよび第2のパイプラインの「ハイブリッド」として確立される可能性がある。たとえば、一部の実装においては、ブロック258においてユーザの意図が第2の言語でマッチングされた後、ブロック261において、「ハイブリッド」とラベル付けされた矢印によって示されるように、第1の言語のそのマッチングされた意図を遂行する試みがなされ得る。ブロック254において、ブロック261において生成された遂行情報が、たとえば、第3の自然言語出力の候補を生成するために自然言語ジェネレータ126によって使用され得る。一部の実装において、この第3の自然言語出力の候補は、ブロック264においてその他の自然言語出力の候補と一緒に採点され得る。
【００８０】
パイプラインのこの連続(たとえば、階層)を実装することは、既にサポートされている言語の自動化されたアシスタント120の品質を高める可能性がある。新しいパイプラインを作動させることによって、より多くの問い合わせが、正しく理解され、実行される。さらに、複数のパイプラインの使用は、ユーザの問い合わせに対する自動化されたアシスタント120の応答の品質を犠牲にすることなく自動化されたアシスタント120の開発を早める。一部の実装において、新しい言語で自動化されたアシスタント120を実装することに取り組む諸外国語に通じた者は、文法を書き、ネイティブ理解モデル(native understanding model)を訓練し、ならびに/または第2のおよび第3のパイプライン(それぞれ256-262または256->258->261->254)を使用して、そのままでは機能しない問い合わせのための言語テンプレートを提供することができる。
【００８１】
図2に示された3つのパイプラインの各々は、特に、特定の種類の問い合わせを処理することに長けている可能性がある。第1のパイプライン252〜254は、単純でありおよび/または人とコンピュータの対話の文脈でよく出くわす問い合わせを処理するのに特に好適である可能性がある。セルビア語の包括的な翻訳がまだ十分にサポートされていないが、自動化されたアシスタントの対話の文脈でよく見られる基本的な問い合わせを理解するために、セルビア語の一部の文法が既に利用可能であり、および/または意図マッチャ136が利用可能な(たとえば、データベース137に記憶された)機械学習モデルがたとえばセルビア語に翻訳された英語の問い合わせ/意図のペアのログを使用して訓練済みであると仮定する。セルビア人のユーザが、英語で「Call Ivan」を意味する語句「Zovi Ivana」と発言するとさらに仮定する。この種類の問い合わせは、自動化されたアシスタント120の能力の中心をなす。結果として、この問い合わせは、第1のパイプライン252〜254を使用して容易に処理される。ブロック264において結果として得られる自然言語出力の候補に割り当てられるスコアは、その他の2つのパイプラインがすっかり完了する時間があったとすれば、それらのその他の2つのパイプラインから生成された任意のその他の自然言語出力の候補に関連するスコアよりも高い見込みが大きい。
【００８２】
第2のパイプライン256〜262は、自然言語出力の生成が最も複雑および/または難しいことが明らかになる問い合わせにより好適である可能性がある。たとえば、セルビア人の話者が、コマンド「Koliko je brz najbrzi covek na svetu?」を発行すると仮定する。ブロック256において、この問い合わせが、セルビア語から「How fast is the fastest man in the world?」のように英語に(たとえば、トランスレータ138によって)翻訳される可能性がある。ブロック258において、この翻訳が、問い合わせの語が1つまたは複数のパラメータ/スロット値を形成するようにしてGET_INFORMATIONの意図を決定するために使用され得る。ブロック259において、意図が、たとえば、関連性のある文書の標準的なインターネット検索を実行し、それらの文書から要求された情報を抽出することによって遂行され得る。この例において、英語の答えは、「The data on Usain Bolt showed that he reached at top speed of 12.27 metres per second, which is 27.44 miles per hour」である。この言説は情報を含んでおり、比較的長いので、ブロック260において、自然言語ジェネレータ126は、この言語を単純にそっくりそのまま自然言語出力として使用する可能性がある。ブロック262において、トランスレータ138が、この英語の言説をセルビア語に翻訳する可能性があり、セルビア語の翻訳が、ブロック264において採点される可能性がある。
【００８３】
第3のハイブリッドパイプライン256->258->261->254は、比較的単純な意図および/または遂行情報を生成する問い合わせにより好適である可能性がある。セルビア人の話者が、問い合わせ「Podesi alarm za 9 ujutru」を発すると仮定する。ブロック256において、この問い合わせが、セルビア語から「Set an alarm for 9 in the morning」のように英語に(たとえば、トランスレータ138によって)翻訳される可能性がある。ブロック258において、この翻訳が、意図SET_ALARMおよびパラメータ9AM the next dayを決定するために使用され得る。ブロック261においてこの意図が遂行されると、自然言語ジェネレータ126は、通常、たとえば、英語のNLGテンプレートから自然言語出力「Alright, alarm set for 9am」を生成する。しかし、そのようなNLGテンプレート(および特にそこに含まれる出力の候補)は、英語からセルビア語に翻訳するのが比較的簡単である可能性がある。したがって、NLGテンプレートのセルビア語の翻訳が(たとえば、諸外国語に通じた者および/または翻訳家によって)生成済みであると仮定すると、そのセルビア語のNLGテンプレートが、たとえば、セルビア語で出力を生成するために自然言語ジェネレータ126によってブロック254において使用され得る。
【００８４】
上で説明され、図2に示されたパイプラインは、様々な方法で実装される可能性がある。一部の実装において、パイプラインのうちの1つまたは複数は、たとえば、別のパイプラインの始動中に再帰的に始動される可能性がある。たとえば、第1のパイプライン252〜254が、最初に始動される可能性があり、それから、その第1のパイプライン252〜254の始動が、第2のパイプライン(256〜262)の始動をトリガする可能性がある。一部のそのような実装においては、(たとえば、話者の言語が十分にサポートされるので)第2のパイプラインが終了する機会を得る前に第1のパイプラインが十分に高いスコアを有する内容を返す場合、第1のパイプラインへの呼び出しは、単純に、第2のパイプラインへの呼び出しが完了する前に戻る可能性がある。
【００８５】
第2のパイプライン(256〜262)を使用するときは、ユーザの問い合わせの一部の語を未翻訳のままにする(たとえば、それらの語をユーザの母語のまま残す)ことが望ましい可能性がある。これは、ユーザによってユーザの母語で与えられたスロット値またはパラメータに特に当てはまる。図3Aおよび図3Bは、1つのそのような例を示す。図3Aにおいては、ユーザ101が、自動化されたアシスタント120のインスタンスを少なくとも部分的に動作させるインタラクティブなスタンドアロンのスピーカの形態をとるクライアントデバイス306と関わり合う。ユーザ101は、英語で「Akash」という名前の人を呼ぶコマンドとして解釈されるべきである発話「Kol Akash」をヒンディー語で言う。しかし、「Akash」は、英語の「sky」に翻訳できるヒンディー語の単語「aakaash」に似た音に聞こえる。したがって、ユーザの発話が音声認識され、それから(ブロック256において)翻訳されるときに、そのユーザの発話が「Call sky」として翻訳される可能性があるリスクがある。そのような翻訳は、ユーザ101の本当の意図に一致する意図を生じる見込みが小さい。結果として、図3Aにおいて、少なくとも部分的にクライアントデバイス306上で動作する自動化されたアシスタント120は、「I'm sorry, I don't understand」と翻訳できる「mujhe kshama karen, mujhe samajh nahin aa raha hai」と応答する。
【００８６】
しかし、一部の実装において、スロット値は、ユーザの問い合わせから生成された音声認識出力内で、たとえば、意図マッチャ136によっておよび/またはその他のクラウドに基づく自動化されたアシスタントの構成要素119によって特定され得る。様々な実装において、図2のブロック256において行われる翻訳は、たとえば、一致する意図がブロック258において特定されるときにこの特定されたスロット値が保存されるようにこの特定されたスロット値を特に除外する可能性がある。結果として、第2の言語の意図が、第1の言語のスロット値に少なくとも部分的に基づいてブロック258において特定され得る。たとえば、図3Bにおいては、「aakaash」を「sky」に翻訳する代わりに、「call」に翻訳できる語「Kol」が、通例、スロット値に先立つ語として(たとえば、自然言語プロセッサ122によって)特定され、次の語「Akash」が人の名前である見込みが大きいと判定するために使用され得る。したがって、ユーザの問い合わせの翻訳は、「Kol aakaash」よりも「Kol Akash」となり、自動化されたアシスタント120は、「OK, calling Akash now」を意味する「theek hai, ab aakrti ko bulao」によって応答する可能性がある。
【００８７】
別の例として、ユーザが、英語で「add milk to the shopping list」と翻訳できる「Aggiungi latte alla lista della spesa」とイタリア語で尋ねるものと仮定する。ここで、ユーザは、「milk」ではなく単語「latte」がそれらの買い物リストに追加されるのを見たい。したがって、自然言語プロセッサ122によって適用される注釈または上述のNLU-NMTモデルに基づいて適用される注釈などの様々な技術を使用して、ユーザの元のイタリア語の問い合わせの中の語「latte」は、ユーザの意図(たとえば、ADD_TO_SHOPPING_LIST)がユーザに意図されたように正しいパラメータ「latte」を用いて遂行され得るように注釈を付けられる可能性がある。
【００８８】
さらに別の例として、ユーザが、英語で「Play from the heart」と直訳できる「dil se bajao」とヒンディー語で尋ねるものと仮定する。しかし、ユーザは、実際には、自動化されたアシスタント120に「Dil Se」というタイトルのインド映画を開始させたかった可能性がある。この例において、「dil se」は、たとえば、上述のエンティティタガーによってインド映画として注釈を付けられる可能性がある。結果として、「dil se」は、自動化されたアシスタント120がユーザが意図したように映画の再生を開始するように、ユーザの問い合わせの残りの部分(bajao)が英語に翻訳され得る一方でヒンディー語に保たれ得る。
【００８９】
一部の実装において、図2に示されたように複数の処理パイプラインを実装することは、人とコンピュータの対話にレイテンシーをもたらす可能性がある。たとえば、トランスレータ138の一部の実装は、数百ミリ秒程度のレイテンシーを加える可能性がある。したがって、様々な実装において、レイテンシーの影響を減らすために、様々な緩和措置が取られる可能性がある。
【００９０】
たとえば、第1のパイプライン(252〜254)が高レベルの信頼性に関連付けられる意図および/または自然言語出力を生成するものと仮定する。これは、問い合わせを与えるためにユーザによって使用される言語が十分にサポートされている場合であるか、またはユーザの問い合わせが十分にサポートされているユーザの言語の数個の文法のうちの1つとたまたま一致する場合である可能性がある。結果として、自然言語出力は、第2のパイプライン(256〜262)が完了するための時間を持つ前にユーザの言語で生成される可能性がある。この筋書きにおいては、第1のパイプラインがユーザの言語で自然言語出力を返すと、第2のパイプラインの処理が断念される可能性がある。
【００９１】
別の例として、様々な言語でよく出くわす問い合わせ(より少ない「ロングテールの(long-tail)」問い合わせとは対照的に「ヘッドの(head)」問い合わせとも呼ばれる)が、たとえば、トランスレータ138によってインデックス139にキャッシュされる可能性がある。さらに別の例として、一部の実装において、トランスレータ138によって使用される翻訳モデルは、文書全体を翻訳するために使用される可能性がある包括的な翻訳モデルよりも単純である可能性がある。一部の実装においては、切り詰められた翻訳モデルが、人とコンピュータの対話向けに仕立てられる可能性があり、特に、人とコンピュータの対話においてよく出くわす文法に合わせて仕立てられる可能性がある。
【００９２】
一部の実装において、翻訳(すなわち、第2のパイプライン256〜262)は、初期の問い合わせを与えるためにユーザによって使用される言語が十分にサポートされていないと判定されるときにのみ使用される可能性がある。追加的にまたは代替的に、一部の実装において、翻訳(すなわち、第2のパイプライン256〜262)は、たとえば、ブロック252においてマッチングされた意図またはブロック254において生成された自然言語出力の候補が低い関連する信頼性の尺度を有するので第1のパイプライン(252〜254)が不成功であった後にのみ使用される可能性がある。
【００９３】
一部の実装においては、特定の問い合わせが第1のパイプライン(252〜254)において成功である場合、その問い合わせが、たとえば、「発動(triggered)」ビットによってフラグを立てられる可能性があり、発動ビットは、同じ言語の同じ問い合わせ(または同じ言語の統語的に/意味的に似ている問い合わせ)が後で受け取られるときに発動ビットが調べられ得るように(たとえば、データベース137に)記憶される可能性がある。ビットが設定される(同じまたは同様の問い合わせが既に第1のパイプラインにおいて成功であったことを意味する)と仮定すると、第1のパイプラインの処理が始動される可能性があり、第2のパイプラインが始動されない可能性がある(または第1のパイプラインが何らかの理由で失敗する場合にのみ始動される可能性がある)。
【００９４】
この考えは、第1のパイプラインにおいて問い合わせをたとえば成功の見込みが大きいかまたは不成功の見込みが大きいものとして分類する機械学習の分類器を構築することによって一部の実装において拡張され得る。たとえば、第1のパイプライン(252〜254)を使用して処理される問い合わせが成功の結果を生じる場合、その問い合わせは、分類器(たとえば、ニューラルネットワーク、サポートベクターマシンなど)のための正の訓練例として使用される可能性があり、正の訓練例に関連するラベルは、その問い合わせが成功であったことを示す可能性がある。同様に、一部の実装において、第1のパイプラインによって成功裏に処理されなかった問い合わせは、負の訓練例として使用される可能性がある。ニューラルネットワークなどのモデルが、出力を生成するためにモデル全体にこれらの正のおよび/または負の訓練例を適用し、出力とラベルとの間の違い(または誤差)を決定し、モデルの重みを調整するために(確率的もしくはバッチ)勾配降下法および/または逆伝播法などの様々な学習技術を実行することによって訓練され得る。その後、新しい問い合わせが、たとえば、それらの問い合わせが第1のパイプラインを使用して成功裏に処理される見込みが大きいかどうかを示す出力を生成するために訓練されたモデル全体の入力として適用され得る。答えがそうである場合、第2のパイプラインは始動されない可能性がある。
【００９５】
図4は、本明細書において開示される実装による例示的な方法400を示す流れ図である。便宜上、流れ図の動作は、動作を実行するシステムに関連して説明される。このシステムは、自動化されたアシスタント120を実装するコンピューティングシステムの1つまたは複数の構成要素などの様々なコンピュータシステムの様々な構成要素を含み得る。さらに、方法400の動作は特定の順序で示されるが、これは、限定的であるように意図されていない。1つまたは複数の動作が、順序を変えられるか、省略されるか、または追加され得る。
【００９６】
ブロック402において、システムは、ユーザの母語などの第1の言語でクライアントデバイスの入力構成要素においてユーザによって与えられた音声入力を受け取り得る。ブロック404において、システムは、たとえば、STTエンジン117または音声キャプチャ/TTS/STT 114を通して、音声入力から音声認識出力を生成し得る。様々な実装において、音声認識出力は、音声から生成されたテキストデータを含む可能性があり、多くの場合、音声認識出力は、第1の言語である可能性もある。ユーザが(たとえば、メッセージ交換クライアント107を通して)タイピングされたテキストとして問い合わせを与えるその他の実装においては、ブロック402〜404は省略され得る。
【００９７】
ブロック406において、システムは、たとえば、意図マッチャ136を通して、ブロック404において生成された音声認識出力に基づいてユーザの第1の言語の意図を特定し得る。これは、図2のブロック252に対応する可能性があり、上述の第1のパイプラインの冒頭を構成する可能性がある。たとえば、意図マッチャ136は、音声認識出力を、たとえばデータベース137に記憶される第1の言語の1つまたは複数の文法と比較し得る。自動化されたアシスタントのエコシステムにおいて比較的サポートされていない言語に関してさえも、データベース137に提供された少なくとも数個の基本的な文法がやはり存在する可能性がある。音声認識出力が1つまたは複数の文法と(意味的におよび/または統語的に)十分に似ているなど、様々な形で一致が見つかる可能性がある。追加的にまたは代替的に、一部の実装において、システムは、第1の言語の意図を特定するために1つまたは複数の領域に固有の訓練された機械学習モデルを使用し得る。
【００９８】
ブロック408において、システムは、第1の言語の意図を遂行し得る。これは、図2のブロック253に対応する可能性がある。たとえば、システムは、少なくとも部分的に第1の言語で書かれた文書のコーパスから応答内容を取得し得る。追加的にまたは代替的に、システムは、第1の言語の意図(たとえば、1つまたは複数の文法に一致するコマンド)に応じた1つまたは複数のアクションを特定し得る。第1の遂行情報が、ブロック408の遂行に基づいて生成され得る。ブロック410において、システムは、たとえば、自然言語ジェネレータ126を通して、ブロック408において生成された第1の遂行情報に基づいて第1の言語で第1の自然言語出力(図4の「NLO」)の候補を生成し得る。
【００９９】
ブロック412において、システムは、音声認識出力の少なくとも部分的な翻訳を生成するために音声認識出力の少なくとも一部を第1の言語から第2の言語に翻訳し得る。これは、図2のブロック256に対応する可能性があり、上述の第2のおよび第3のパイプラインの冒頭である可能性がある。したがって、一部の実装において、ブロック406〜410の動作およびブロック412〜420の動作は、並列に動作する可能性があり、および/または動作の一方の組が、他方の組を再帰的に呼び出す可能性がある。
【０１００】
ブロック414において、システムは、少なくとも部分的な翻訳に基づいてユーザの第2の言語の意図を特定し得る(たとえば、図2のブロック258に対応する)。ブロック416において、システムは、図2のブロック259と同様に、第2の遂行情報を生成するために第2の言語の意図を遂行し得る。この時点で、第2のおよび第3のパイプラインは、分岐する。ブロック418において、第2のパイプラインは、継続し、システムは、たとえば、自然言語ジェネレータ126を通して、第2の言語で第2の自然言語出力の候補を生成し得る。ブロック419において、第2の自然言語出力の候補が、第1の言語に翻訳され得る。その一方で、ブロック420において、第3のパイプラインの一部として、システムは、たとえば、自然言語ジェネレータ126を通して、たとえば、上述の翻訳されたNLGテンプレートを使用して、またはその他の技術を使用することによって、直接第1の言語で第3の自然言語出力の候補を生成し得る。
【０１０１】
ブロック422において、システムは、たとえば、採点エンジン140を通して、図2のブロック264に示されたように、第1の、第2の、および第3の自然言語出力の候補に関するスコアを決定し得る。ブロック422において決定されたスコアに基づいて、ブロック424において、システムは、自然言語出力を選択し、その自然言語出力をユーザに対して出力させ得る。たとえば、ユーザが口頭で初期の発話を与えた場合、自然言語出力は、スピーカを通して音声でユーザに提供される可能性がある。ユーザが(たとえば、メッセージ交換クライアント107を使用して)テキスト入力として初期の問い合わせを与えた場合、自然言語出力は、たとえば、メッセージ交換クライアント107において進行中の書き写し(transcript)の一部として視覚的に提示される可能性がある。
【０１０２】
選択される内容がアクション(たとえば、音楽を再生する、食べ物を注文する)である一部の実装において、生成される自然言語の候補は、アクションが実行されるという確認を含み得る。下でより詳細に説明されるように、一部の実装において、自然言語出力は、第2の言語で生成され、それから、(たとえば、ユーザが最初に第1の言語でしゃべったので)第1の言語に翻訳される可能性がある。一部のそのような実装においては、翻訳された自然言語出力が1つまたは複数の基準を満たすかどうかに関して判定が行われる可能性があり、満たさない場合、第2の言語で代わりの自然言語出力が生成され、翻訳され、代わりにユーザに提供される可能性がある。
【０１０３】
自然言語出力が第2の言語で生成され、それから、ユーザによる消費のために第1の言語に翻訳されるとき、第2の言語で生成された自然言語出力が容易に翻訳され得ないか、または翻訳が翻訳品質に関する何らかのテストに通らないことがあり得る。たとえば、自動化されたアシスタント120をより生きているように聞こえさせるかまたは見せるために、口語表現が、(たとえば、NLGテンプレートによって規定されるように)様々な筋書きにおいてより硬いおよび/または形式張った自然言語出力の代わりに使われることがある可能性がある。ユーザが今日の天気について尋ね、予報が華氏85度および晴れに関するものであると仮定する。場合によっては、この情報を運ぶために単に簡単な自然言語出力を生成するのではなく、自動化されたアシスタント120は、その代わりに、「It's gonna be a scorcher, don't forget your sunglasses」などの所定の口語的な語句を(たとえば、NLGテンプレートに基づいて)選択する可能性がある。しかし、自動化されたアシスタントによって十分にサポートされていない言語を話すユーザの文脈で、そのような口語的な語句は、ユーザの母語に上手く翻訳できない可能性がある。
【０１０４】
したがって、一部の実装において、たとえば、ブロック418において自然言語出力を生成するとき、ユーザが出力として受け取るものがユーザの母語で意味をなすことを保証するために、様々な技術が使用され得る。図5は、図2の第2のパイプライン256〜262の一部として実装され得る1つのそのような技術500を示す。
【０１０５】
ブロック520において、システムは、図2のブロック260と同様に、第2の言語で自然言語出力を生成し得る。ブロック522において、システムは、図2のブロック262と同様に、たとえば、トランスレータ138を通して、第2の言語(たとえば、英語または別の十分にサポートされている言語)から第1の言語に自然言語出力を翻訳し得る。ブロック524において、システムは、ブロック522の翻訳に関連する品質の尺度が最小閾値などの何らかの基準を満たすかどうかを判定し得る。答えがそうである場合、翻訳は、第1の言語でユーザによって理解され得る見込みが大きく、したがって、ブロック526において、翻訳された自然言語出力が、ユーザのクライアントデバイスにおいて提示され得る。
【０１０６】
しかし、ブロック524における答えがそうでない場合、翻訳は、品質が低い可能性があり、ユーザは、その翻訳を容易に理解しない可能性がある(またはその翻訳は、拙劣もしくは誤りだらけに見える可能性がある)。そのような場合、ブロック528において、システムは、ブロック520において第2の言語で生成された自然言語出力を代替的な自然言語出力によって置き換え得る。この代替的な自然言語出力は、より形式主義的であり、広く通じ、口語表現が少ない可能性があり、またはそうでなければ第2の言語からユーザによって使用される第1の言語により容易に翻訳されるように選択される可能性がある。ブロック530において、システムは、たとえば、トランスレータ138を通して、代替的な自然言語出力を翻訳し、その代替的な自然言語出力をユーザのクライアントデバイスにおいて提示させ得る。
【０１０７】
図6は、本明細書において説明される技術の1つまたは複数の態様を実行するために任意で利用され得る例示的なコンピューティングデバイス610のブロック図である。一部の実装においては、クライアントコンピューティングデバイス、ユーザによって制御されるリソースエンジン130、および/またはその他の構成要素のうちの1つまたは複数が、例示的なコンピューティングデバイス610の1つまたは複数の構成要素を含む可能性がある。
【０１０８】
概して、コンピューティングデバイス610は、バスサブシステム612を介していくつかの周辺デバイスと通信する少なくとも1つのプロセッサ614を含む。これらの周辺デバイスは、たとえば、メモリサブシステム625およびファイルストレージサブシステム626を含むストレージサブシステム624と、ユーザインターフェース出力デバイス620と、ユーザインターフェース入力デバイス622と、ネットワークインターフェースサブシステム616とを含み得る。入力および出力デバイスは、コンピューティングデバイス610とのユーザインタラクションを可能にする。ネットワークインターフェースサブシステム616は、外部ネットワークへのインターフェースを提供し、その他のコンピューティングデバイスの対応するインターフェースデバイスに結合される。
【０１０９】
ユーザインターフェース入力デバイス622は、キーボード、マウス、トラックボール、タッチパッド、もしくはグラフィックスタブレットなどのポインティングデバイス、スキャナ、ディスプレイに組み込まれたタッチスクリーン、音声認識システムなどの音声入力デバイス、マイクロフォン、および/またはその他の種類の入力デバイスを含み得る。概して、語「入力デバイス」の使用は、コンピューティングデバイス610または通信ネットワークに情報を入力するためのすべての可能な種類のデバイスおよび方法を含むように意図される。
【０１１０】
ユーザインターフェース出力デバイス620は、ディスプレイサブシステム、プリンタ、ファックスマシン、または音声出力デバイスなどの非視覚的表示を含み得る。ディスプレイサブシステムは、ブラウン管(CRT)、液晶ディスプレイ(LCD)などのフラットパネルデバイス、プロジェクションデバイス、または可視画像を生成するための何らかのその他のメカニズムを含み得る。ディスプレイサブシステムは、音声出力デバイスなどの非視覚的表示を提供する可能性もある。概して、語「出力デバイス」の使用は、コンピューティングデバイス610からユーザまたは別のマシンもしくはコンピューティングデバイスに情報を出力するすべての可能な種類のデバイスおよび方法を含むように意図される。
【０１１１】
ストレージサブシステム624は、本明細書において説明されるモジュールの一部またはすべての機能を提供するプログラミングおよびデータ構造体を記憶する。たとえば、ストレージサブシステム624は、図4および図5A〜図5Bの方法の選択された態様を実行するためおよび図1に示された様々な構成要素を実装するための論理を含み得る。
【０１１２】
これらのソフトウェアモジュールは、概して、プロセッサ614によって単独で、またはその他のプロセッサとの組合せで実行される。ストレージサブシステム624において使用されるメモリ625は、プログラムの実行中の命令およびデータの記憶のための主ランダムアクセスメモリ(RAM) 630と、決まった命令が記憶される読出し専用メモリ(ROM) 632とを含むいくつかのメモリを含み得る。ファイルストレージサブシステム626は、プログラムおよびデータファイルのための永続的ストレージを提供することができ、ハードディスクドライブ、関連する取り外し可能な媒体を伴うフロッピーディスクドライブ、CD-ROMドライブ、光学式ドライブ、または取り外し可能なメディアカートリッジを含み得る。特定の実装の機能を実装するモジュールは、ストレージサブシステム624内のファイルストレージサブシステム626によって、またはプロセッサ614によりアクセスされ得るその他のマシンに記憶される可能性がある。
【０１１３】
バスサブシステム612は、コンピューティングデバイス610の様々な構成要素およびサブシステムに意図されたように互いに通信させるためのメカニズムを提供する。バスサブシステム612は単一のバスとして概略的に示されているが、バスサブシステムの代替的な実装は複数のバスを使用する可能性がある。
【０１１４】
コンピューティングデバイス610は、ワークステーション、サーバ、コンピューティングクラスタ、ブレードサーバ、サーバファーム、または任意のその他のデータ処理システムもしくはコンピューティングデバイスを含む様々な種類である可能性がある。コンピュータおよびネットワークの変わり続ける成立が原因で、図6に示されたコンピューティングデバイス610の説明は、いくつかの実装を示すことを目的とする特定の例としてのみ意図される。図6に示されたコンピューティングデバイスよりも多くのまたは図6に示されたコンピューティングデバイスよりも少ない構成要素を有するコンピューティングデバイス610の多くのその他の構成が、可能である。
【０１１５】
いくつかの実装が本明細書において説明され、図示されたが、本明細書において説明された機能を実行するならびに/または結果および/もしくは利点のうちの1つもしくは複数を得るための様々なその他の手段および/または構造が利用される可能性があり、そのような変更および/または修正は本明細書において説明された実装の範囲内にあるとみなされる。より広く、本明細書において説明されたすべてのパラメータ、寸法、材料、および構成は、例示的であるように意図されており、実際のパラメータ、寸法、材料、および/または構成は、教示が使用される特定の1つの応用または複数の応用に依存する。当業者は、本明細書において説明された特定の実装の多くの均等物を通常の実験だけを使用して認識するかまたは突き止めることができる。したがって、上述の実装は単に例として提示されており、添付の請求項およびその均等物の範囲内で、実装が、特に説明され、特許請求されたのとは異なる方法で実施され得ることを理解されたい。本開示の実装は、本明細書において説明されたそれぞれの個々の特徴、システム、品物、材料、キット、および/または方法を対象とする。さらに、2つ以上のそのような特徴、システム、品物、材料、キット、および/または方法の任意の組合せが、そのような特徴、システム、品物、材料、キット、および/または方法が相互に矛盾しない場合は本開示の範囲に含まれる。
【符号の説明】
【０１１６】
101  ユーザ
106  クライアントデバイス
1061-N  クライアントコンピューティングデバイス
1061  第1のクライアントデバイス
106N  別のクライアントデバイス
107  メッセージ交換クライアント
1071-N  メッセージ交換クライアント
110  ローカルおよび/または広域ネットワーク
114  音声キャプチャ/TTS/ STTモジュール
116  クラウドに基づくTTSモジュール
117  クラウドに基づくSTTモジュール
118  自動化されたアシスタントのクライアント
1181  自動化されたアシスタントのクライアント
118N  自動化されたアシスタントのクライアント
119  クラウドに基づく自動化されたアシスタントの構成要素
120  自動化されたアシスタント
120A  第1の自動化されたアシスタント
120B  第2の自動化されたアシスタント
122  自然言語プロセッサ
124  遂行エンジン
126  自然言語ジェネレータ
127  データベース
130  ユーザによって制御されるリソースエンジン
135  自然言語理解エンジン
136  意図マッチャ
137  データベース
138  トランスレータ
139  データベース、インデックス
140  採点エンジン
150  検索エンジン
306  クライアントデバイス
400  方法
500  技術
610  コンピューティングデバイス
612  バスサブシステム
614  プロセッサ
616  ネットワークインターフェースサブシステム
620  ユーザインターフェース出力デバイス
622  ユーザインターフェース入力デバイス
624  ストレージサブシステム
625  メモリサブシステム
626  ファイルストレージサブシステム
630  主RAM
632  ROM
【要約】
本明細書において説明される技術は、自動化されたアシスタントとのエンドツーエンドの多言語コミュニケーションを容易にすることに関する。様々な実装において、音声認識出力が、第1の言語で音声入力に基づいて生成される可能性がある。第1の言語の意図が、音声認識出力に基づいて特定され、第1の言語で第1の自然言語出力の候補を生成するために遂行される可能性がある。音声認識出力の少なくとも一部が、少なくとも部分的な翻訳を生成するために第2の言語に翻訳される可能性があり、そして、その少なくとも部分的な翻訳が、第2の言語で第2の自然言語出力の候補を生成するために遂行される第2の言語の意図を特定するために使用される可能性がある。第1のおよび第2の自然言語出力の候補に関してスコアが決定される可能性があり、スコアに基づいて、自然言語出力が提示するために選択される可能性がある。【図１】
0006678764.tif 000002
【図２】
0006678764.tif 000003
【図３Ａ】
0006678764.tif 000004
【図３Ｂ】
0006678764.tif 000005
【図４】
0006678764.tif 000006
【図５】
0006678764.tif 000007
【図６】
0006678764.tif 000008