(57)【特許請求の範囲】
【請求項１】
実行可能命令を記憶するコンピュータ可読メモリと、
前記コンピュータ可読メモリと通信する１つ以上のプロセッサであり、前記１つ以上のプロセッサは前記実行可能命令により、少なくとも
ユーザの第１発話に関する第１オーディオデータを取得することと、
前記第１オーディオデータに少なくとも部分的に基づき、第１の意図及び前記第１の意図に関連する１または複数のスロット値を含む前記第１発話の意味論的表現を有する、第１音声処理結果を生成することと、
前記第１音声処理結果に基づいて、前記ユーザへの提示に対する第１応答を生成することと、
前記第１発話の意味論的表現と、前記第１応答の意味論的表現とを有する文脈情報を記憶することと、
前記ユーザの第２発話に関する第２オーディオデータを取得することと、
前記第２オーディオデータを使用し、第２の意図を含む前記第２発話の意味論的表現を有する、第２音声処理結果を生成することと、
前記第２オーディオデータの取得に続いて、ユーザの第３発話に関する第３オーディオデータを取得することと、
前記第３オーディオデータに基づき、前記第１の意図に関する前記第３発話の意味論的表現を有する第３音声処理結果を生成することと、
前記第１発話の前記意味論的表現のスロット値または意図のうち少なくとも１つを前記第３発話の意味論的表現のスロット値または意図のうち少なくとも１つに置き換えることに関する前記文脈情報、および前記第３オーディオデータ及び前記第１応答の前記意味論的表現に基づく文脈解釈ルールを使用し、マージされた音声処理結果を生成することと、
前記マージされた音声処理結果に基づいて、前記ユーザへの提示に対する第２応答を生成することと、
を備えるシステム。
【請求項２】
特定のコンピュータ実行可能命令で構成される１つ以上のコンピューティングデバイスの制御下において、
第１の意図に関連する第１自然言語入力の意味論的表現と、前記自然言語入力に対する第１応答の意味論的表現とを含み、第１自然言語入力及び前記第１自然言語入力への前記第１応答に関連する文脈情報を記憶することと、
前記第１自然言語入力を受け取った後、第２自然言語入力を受けとることと、
第２の意図に関連する第２自然言語入力の意味論的表現を生成することと、
前記第２自然言語入力を受け取った後、第３自然言語入力を受けとることと、
前記第１の意図に関連する第３自然言語入力の意味論的表現を生成することと、
前記文脈情報と、第１自然言語入力の意味論的表現と、第３自然言語入力の意味論的表現とを使用し、前記第１自然言語入力の前記意味論的表現のコンテンツのスロット値を前記第３自然言語入力の前記意味論的表現のコンテンツのスロット値に置き換える自然言語処理結果を生成することと、
前記自然言語処理結果に基づいて、前記第３自然言語入力への第２応答を生成することと、
を備えるコンピュータ実装方法。
【請求項３】
前記自然言語入力はテキスト入力または音声入力を含む、請求項２に記載のコンピュータ実装方法。
【請求項４】
前記第１自然言語入力の意味論的繰り返しの意図を前記第３自然言語入力の前記意味論的表現の意図に置き換えることをさらに備える、請求項２に記載のコンピュータ実装方法。
【請求項５】
前記自然言語処理結果は文脈解釈ルールに基づいて生成される、請求項２に記載のコンピュータ実装方法。
【請求項６】
前記文脈解釈ルールは、前記第１自然言語入力の前記意味論的表現のドメインが前記第２自然言語入力の前記意味論的表現のドメインに等しいかどうかを判定することに関する、請求項５に記載のコンピュータ実装方法。
【請求項７】
前記文脈解釈ルールは、前記第１自然言語入力の前記意味論的表現に関連する意図またはスロットの少なくとも１つが前記第２自然言語入力の前記意味論的表現に関連する意図またはスロットの少なくとも１つに等しいかどうかを判定することに関する、請求項５に記載のコンピュータ実装方法。
【請求項８】
前記文脈解釈ルールは、前記第１自然言語入力への前記第１応答の前記意味論的表現に関する、請求項５に記載のコンピュータ実装方法。
【請求項９】
前記文脈解釈ルールはさらに、前記第１自然言語入力への前記第１応答の前記意味論的表現が前記第１自然言語入力の前記意味論的表現に関連する情報の導出に対応するかどうかを判定することに関する、請求項８に記載のコンピュータ実装方法。
【請求項１０】
前記文脈解釈ルールは、さらに、前記第１自然言語入力への前記第１応答の前記意味論的表現が前記第１自然言語入力の前記意味論的表現に関連する情報の確認に対応するかどうかを判定することに関する、請求項８に記載のコンピュータ実装方法。
【請求項１１】
前記自然言語処理結果の少なくとも一部を再ランク付けすることをさらに備える、請求項２に記載のコンピュータ実装方法。
【請求項１２】
前記自然言語処理結果の少なくとも一部をフィルタリングすることをさらに備える、請求項２に記載のコンピュータ実装方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、以前の対話行為を使用する自然言語処理における文脈解釈に関する。
【背景技術】
【０００２】
音声処理システムは、ユーザからの口語入力を受信し、ユーザが意味したことを判定するための種々のモジュール及び構成要素を含む。いくつかの実施態様では、音声処理システムは、ユーザ発話のオーディオ入力を受信し、発話の１つ以上の有力な音訳を生成する自動音声認識（「ＡＳＲ」）モジュールを含む。ＡＳＲモジュールは、音響モデル及び言語モデルを通常使用する。音響モデルは、発話の音響特性を基に、どのワードまたはサブワードユニット（例えば、音素）が発話に対応するかに関する仮説を生成するために使用される。言語モデルは、発話が話される言語の語彙特性を基に、音響モデルを使用して生成された仮説のうちどれが最も有力な発話の音訳かを判定するために使用される。
【０００３】
音声処理システムは、ユーザ発話の音訳などのテキスト入力を受信し、コンピュータアプリケーションなどが従い得る方法で入力の意味を判定する、自然言語理解（「ＮＬＵ」）モジュールをさらに含んでも良い。例えば、ＮＬＵモジュールは統計言語モデルを使用して、ＡＳＲモジュールにより生成されるテキストの意味を判定するために使用されても良い。ＮＬＵモジュールは、その後、ＡＳＲ出力からユーザ意図を判定し、いくつかのダウンストリームプロセスに意図を提供することができ、ダウンストリームプロセスは判定されたユーザ意図に応答して、いくつかのタスク（例えば、通話を開始する、要求された音楽の再生を開始する、要求された情報を提供する等の指示を生成する）を行う。
【発明の概要】
【課題を解決するための手段】
【０００４】
マルチターン対話インタラクションにおける、ユーザ発話の解釈などの自然言語を処理及び解釈する機能が開示される。ユーザ発話の解釈及びユーザ発話へのシステム応答に関する文脈情報が保持され得る。後続のユーザ発話は、文脈を伴わず解釈されるのではなく、文脈情報を使用して解釈され得る。いくつかの場合では、後続のユーザ発話の解釈は、ルールベースフレームワークを使用して、前のユーザ発話の解釈にマージされ得る。ルールはどの解釈がマージされても良く、どの状況において解釈がマージされても良いかを判定するために規定されても良い。
【０００５】
いくつかの音声処理システムは、ユーザとのマルチターン対話インタラクションを行うように構成される。例えば、ユーザは特定のプロセスまたはタスクを開始することを望むことがあるが、全ての情報を提供しない可能性がある。この場合、音声処理システムは、欠如している必要な情報をユーザに促すことができる。別の例では、ユーザはシステムから情報を受信することを望むことがある。音声処理システムは、要求された情報を提供し、提供された情報を基に、ユーザは後続のプロセスを開始することができる。
【０００６】
以下の図面を参照して種々の発明の機能の実施形態を説明する。図面全体を通して、参照番号は、参照する要素間の対応を示すために繰り返して使用する場合がある。図面は、本明細書に記載の実施形態例を説明するために提供し、本開示の範囲を限定することは意図しない。
【図面の簡単な説明】
【０００７】
【図１】以前のターンからの文脈情報を使用する、マルチターン対話発話処理中の音声処理システムのモジュール間の例示的なデータフローのブロック図である。
【図２】文脈インタープリタを使用する、発話処理中のクライアントデバイスと音声処理システムとの間の例示的なデータフローのブロック図である。
【図３】文脈インタープリタを使用する、発話処理中のクライアントデバイスと音声処理システムとの間の例示的なデータフローのブロック図である。
【図４】文脈インタープリタを使用して発話を処理するための例示的なプロセスのフロー図である。
【図５】現在の発話解釈が前の発話解釈にマージできるかどうかを判定する例示的なプロセスのフロー図である。
【発明を実施するための形態】
【０００８】
＜序論＞
本開示は、ユーザとのマルチターン対話インタラクション（例えば、いくつかのタスクを達成するための、複数のユーザ発話及び／または複数のシステム応答を含む、口語の対話セッション）を自然に行い、かつ正確に管理する音声処理システムの能力を向上することに関する。概して記載すると、マルチターン対話インタラクションの音声処理結果の正確性は、少なくとも一部は、以前にユーザが開始した及び／またはシステムが開始した対話インタラクションの文脈におけるユーザ発話により伝えられる意図または情報を判定できることに依存する。音声処理システムがマルチターン対話インタラクションの適切な文脈保持に失敗した場合、またはユーザが脱線したり、予測外の意図に関する発話を行ったり、文の断片を発話したりするなどの場合、音声処理システムはユーザ発話に正確に応答できない場合がある。いくつかのシステムは、特定の応答のみを可能にする制限的な文法または高度に構造化された対話を使用する（例えば、特定の情報を導出するプロンプトは導出された情報のみに応答し、他の全ての応答は拒否される）。しかしながら、係るシステムは、多くのユーザ及びアプリケーション開発者が望む、自然な口語インタラクションを実現しない。他のシステムは、将来のユーザ発話の予測される主題に関する内部「ヒント」または他の情報（例えば、予測される意図または意図に関連する情報）を使用する。次のユーザ発話は予測される主題に対する先入観を伴って処理される可能性があるが、それでも予測外の主題に関する発話を適切に受容し処理することが可能である。しかしながら、係るシステムは、処理中のマルチターン対話インタラクションからの脱線、及びマルチターン対話インタラクションへの復帰を適切に処理できないことがあり、あるいは、マルチターン対話インタラクションの現在の文脈をあまりに頻繁に、またはあまりに急速に失うことがある。
【０００９】
本開示の態様は、マルチターン対話インタラクションのターンの履歴を保持することに関する（本明細書では、便宜上「マルチターンインタラクション」とも呼ぶ）。いくつかの実施形態では、前のユーザ発話の意味論的表現（本明細書では「解釈」とも呼ぶ）及び前のシステム応答及びアクションの意味論的表現（本明細書では「対話行為」とも呼ぶ）を保持することができる。ユーザ及びシステムの両方による前のターンの意味論的表現を保持することにより、システムは、同じマルチターンインタラクションの後のユーザ発話を解釈する際に、それらに戻って参照することができる。例えば、音声処理システムは、マルチターンインタラクションの以前のターン中にユーザが言ったことの解釈に戻って参照し、追加情報を得るか、または現在の発話への応答方法に関する判定を行うことができる。音声処理システムは、さらにマルチターンインタラクションの以前のターン中に、これらのインタラクションに応えてシステム自体が行ったことに戻って参照することができる。このように、音声処理システムはマルチターンインタラクションの前のユーザ発話及びシステム応答の一部または全てに関する現在のユーザ発話を、より正確に解釈することができる。
【００１０】
有利には、マルチターンインタラクション文脈にアクセスする能力により、システムは文の断片（「本明細書では「非文発話」または「ＮＳＵ」とも呼ぶ」）、脱線、曖昧な意図などを正しく解釈することが可能になり得る。例えば、マルチターンインタラクションは特定の出発位置から特定の目的地位置までの航空便の検索（例えば、「ロサンゼルスからシカゴへの航空便の検索」）を要求することを含んでも良い。マルチターンインタラクションの１つのターンは「金曜の朝」というＮＳＵに対応しても良い。この発話の完全な意味は、マルチターンインタラクション文脈を使用して推測することができる。この意味は「金曜の朝のロサンゼルスからシカゴへの航空便の検索」として解釈できるだろうが、帰りの日付または何か他のものとして解釈される場合もある。マルチターンインタラクション文脈がシステムプロンプト「いつ帰りたいですか？」を含む場合、ＮＳＵの適切な解釈は、金曜の朝に帰る往復航空便を検索することであろう。
【００１１】
本明細書に使用される、用語「意味論的表現」はユーザ発話の意味の処理された表現、またはユーザ発話に応えてトリガされた対話行為の意味の曖昧な表現を指す。ユーザ発話の意味論的表現は、単にユーザ発話の音訳または他の語彙表現ではなく、ユーザ発話の意図の解釈となり得る。例えば、ユーザがワード「明日」を話した場合、他のワードまたはフレーズ（例えば、「木曜日」などの曜日、「２０１４年４月２４日」などのカレンダーの日付等）は意味論的には同等であっても良い。文字列「明日」のみが保存される場合、後続の発話または対話行為が特定の日付等に依存する際には有益ではないことがある。例示的には、ユーザ発話の意味論的表現は、ユーザ発話の解釈に関する情報を記憶するために、ＮＬＵモジュールまたは音声処理システムの構成要素により生成されるデータ構造またはプログラム可能オブジェクトのインスタンスであっても良く、例えば、解釈のドメイン、解釈により表現される意図、意図に関連する情報（例えば、意図の「スロット」に対する値）等である。
【００１２】
システム対話行為の意味論的表現は、音声処理システムによる実施対象のアクションまたはプロセスのいくつかの内部識別子であっても良い。例えば、音声処理システムがユーザから追加情報を導出する場合（例えば、航空チケット検索要求に応えて旅行日を尋ねる）、対話行為の意味論的表現は、音声処理システムによりユーザが理解可能なプロンプト（例えば、合成された音声または視覚表示）に処理される、コード、名前、署名、または他の識別子（及び関連情報）であっても良い。いくつかの実施形態では、対話行為の意味論的表現は、対話行為に関する情報を記憶するための、対話マネージャまたは音声処理システムのいくつかの他の構成要素により生成されるデータ構造またはプログラム可能オブジェクトであっても良く、例えば、対話行為のドメイン、解釈（例えば、情報の導出、意図の確認等）により表現されるアクション、判定された意図に関連する情報（例えば、「スロット」）等である。
【００１３】
本開示の追加の態様は、マルチターンインタラクションの文脈（前のユーザ及びシステムのターンの意味論的表現）の解釈へのルールベース手法に関する。ルールベース手法は、上記の通り保存された、前の解釈及び対話行為を考慮して、現在のユーザ発話を解釈するフレームワークを提供することにより、自然言語理解の正確性を向上することができる。いくつかの実施形態では、ルールは、現在のマルチターンインタラクションにおいて、以前の発話のどれをユーザが行ったか、及び／またはどの対話行為が以前にトリガされたかを基に、ユーザ発話に応えて、どの対話行為をトリガするかの判断を規定し、あるいは容易にしても良い。例えば、ユーザが航空チケットの検索を開始する場合、ユーザは検索に関連する特定の情報（例えば、旅行日、航空会社、及び出発位置）を提供しても良い。システムは目的地をユーザに促してもよく、ユーザは種々の位置の天気に関して尋ねることにより、脱線しても良い。このシナリオでは、ユーザは航空チケットの検索のために以前に行われた作業（例えば、旅行日、航空会社、及び出発位置の特定）がシステムにより保持されることを予測しても良く、ユーザはシステムによる目的地情報の導出に応答して、目的地を提供するだけでも良い。前の発話及び対話行為の意味論的表現を記憶することにより、例えば、発話を以前に提供された情報にマージして完全形式の意図及び対応するスロット値にすることにより、音声処理システムは目的地を提供するこの発話を巧みに処理することができる。
【００１４】
本開示のさらなる態様は、記憶された文脈情報に基づく音声処理結果（例えば、ＮＬＵ結果）の再スコア化、または再ランク付けに関する。いくつかの実施形態では、ＮＬＵモジュールまたは構成要素は、特定のユーザ発話の上位ｎ解釈（ｎは負ではない、いくつかの整数）のうちｎ−ｂｅｓｔリストを生成しても良い。最上位スコア解釈のみを処理する、またはルールを満たす１つのみの解釈を選択するために、上記及び以下にさらに詳述するルールを使用することなく、ルールの適用を基に、ｎ−ｂｅｓｔリストの解釈をフィルタリングし、再スコア化し、再ランク付けしても良い。例えば、ｎ−ｂｅｓｔリストの特定の解釈が前の解釈にマージされる場合、組み合わされたマージ解釈はｎ−ｂｅｓｔリストに挿入されても良く、上位スコア、あるいは、マージされていない意図のみに比べてより関連性を示すスコアを与えられても良い。解釈が低い認識信頼性に関連する場合であっても、再ランク付けは音声処理システムがルールを満たす任意の解釈を使用する機会を減少または防止するのに役立つことができる。代わりに、真の「正しい」結果は結果のｎ−ｂｅｓｔリストに保持され、したがって、正しく認識され得る。
【００１５】
本開示に記載の実施形態の態様は、例示の目的上、ユーザ発話がクライアントデバイスにより受信され、オーディオデータが処理のために単独のネットワークベース音声処理システムに伝達される分散システムに注目するが、当業者は、本明細書に開示する技法が、音声処理を行う任意の数のソフトウェアプロセスまたはアプリケーションに適用され得ることを理解するであろう。例えば、ユーザデバイスは、音声を処理し、文脈を保持するための、モジュール、構成要素または他の機能の一部または全てを含み得る。加えて、本開示中に記載の実施形態の態様は、例示の目的上、ユーザ発話に行われる音声認識に注目するが、本発明はこれに限定されない。いくつかの実施形態では、文脈解釈システム及び技法は、あらゆる種類の自然言語入力に適用され得る。例えば、ユーザ供給テキストまたは他の非言語入力が処理され得る。係る場合、音声処理システムはより一般的な自然言語処理システムに置き換えられるか、またはより一般的な自然言語処理システムに追加される。本開示の種々の態様を、本開示を限定するのではなく例示する意図で、特定の実施例及び実施形態に関して記載する。
文脈インタープリタによる音声処理システムの例
【００１６】
例示的な実施形態を参照すると、図１は本開示の態様を実装しても良い音声処理システムを示す。特に、図１はユーザ発話の受信に応えて、種々の音声と言語処理モジュールとの間のデータフローの例を示す。ユーザ１００は、コンピューティングシステムにいくつかのタスクを行うよう口語指示を含む発話などの発話を行っても良い。１つの個別の非制限的な実施例では、ユーザ１００は「来週の金曜日にロサンゼルスから出発する航空便を検索しなさい」と言っても良い。ユーザ１００は、ユーザにより操作されるいくつかのクライアントデバイスに（またはその前で）発話を話しても良い。
【００１７】
クライアントデバイス（例えば、図２及び図３に示すクライアントデバイス３００）は幅広い種類の電子デバイスに対応することができる。いくつかの実施形態では、クライアントデバイスは１つ以上のプロセッサと、プロセッサにより実行されるソフトウェアアプリケーションとを含んでも良いメモリを含むコンピューティングデバイスであっても良い。クライアントデバイスは、マイクロフォン１０２などの、音声認識が行われる音声入力を受容するための、オーディオ入力構成要素を含んでも良く、またはオーディオ入力構成要素と通信しても良い。クライアントデバイスは、スピーカ１０４などの、音声処理システム２００からの応答または他の情報を提示するための出力構成要素をさらに含んでも良く、または出力構成要素と通信しても良い。クライアントデバイスのソフトウェアは、無線通信ネットワークを介した通信、または他のコンピューティングデバイスとの直接の通信を構築するハードウェア構成要素及び／またはソフトウェアを含んでも良い。例示的には、クライアントデバイスは、携帯電話、パーソナルデジタルアシスタント（「ＰＤＡ」）、携帯ゲームデバイス、メディアプレイヤー、電子書籍リーダー、タブレットコンピュータ、ラップトップコンピュータなどの携帯デバイスであり得る。いくつかの実施形態では、クライアントデバイスは、実質的には、プログラム実行能力及びネットワーク接続性を伴うテレビ（「スマートＴＶ」）、セットトップボックス、ゲーム機、ホームエンターテイメントシステム、デスクトップコンピュータ、サーバコンピュータなどの固定式デバイスであっても良い。
【００１８】
図１に示す通り、ユーザ発話は音声処理システム２００に提供されても良い。音声処理システム２００は携帯電話ネットワークまたはインターネットなどの通信ネットワークを介してクライアントデバイスと通信するネットワークアクセス可能システムであり得る。ユーザは、クライアントデバイスまたは音声処理システム２００のいずれか上で、クライアントデバイスを使用して発話を送信し、情報を受信し、種々のプロセスを開始しても良い。例えば、ユーザは、上記の航空チケットの検索、タイマの設定、音楽の視聴、通話の開始等のためにクライアントデバイスに口語指示を発行することができる。
【００１９】
音声処理システム２００は、ユーザ発話に関するオーディオデータの自動音声認識を行うＡＳＲモジュール２０２と、ＡＳＲモジュール２０２により生成される音訳に自然言語理解を行うＮＬＵモジュール２０４と、前の解釈及び対話行為を基に、現在のＮＬＵ結果に文脈ルールを適用する文脈インタープリタ２０６と、音声処理システム２００とのユーザインタラクションを管理し、種々の対話行為を開始する対話マネージャ２０８と、特定の対話行為をユーザが理解可能な通信（例えば、テキスト読み上げ、つまり「ＴＴＳ」構成要素によりユーザに「読み取り」可能なテキスト）に変換する自然言語生成（ＮＬＧ）モジュールと、以前のユーザ発話及びシステム対話行為の意味論的表現を記憶するための文脈データストア２１２とを含んでも良い。
【００２０】
音声処理システム２００は任意の数のサーバコンピューティングデバイス、デスクトップコンピューティングデバイス、メインフレームコンピュータなどを含んでも良い。それぞれの個々のデバイスは音声処理システム２００のモジュールまたは構成要素のうちの１つを実装しても良い。いくつかの実施形態では、音声処理システム２００は、音声処理システム２００のモジュールまたは構成要素のうちの１つを実装するために、物理的または論理的にグループ化されたいくつかのデバイスを含み得る。例えば、音声処理システム２００は、単一のデバイス上で組み合わされた種々のモジュール及び構成要素、単一のモジュールまたは構成要素の複数のインスタンス等を含み得る。１つの個別の非制限的な実施形態では、音声処理システム２００は、ＡＳＲ及び／若しくはＮＬＵモジュール２０２、２０４で構成される１つのサーバまたはサーバ群、文脈インタープリタ２０６及び／若しくは対話マネージャ２０８で構成される１つのサーバまたはサーバ群等を含んでも良い。マルチデバイスの実施態様では、音声処理システム２００の種々のデバイスは、ローカルエリアネットワーク（「ＬＡＮ」）またはワイドエリアネットワーク「（ＷＡＮ）」として構成された企業または大学ネットワークなどの、内部通信ネットワークを介して通信しても良い。いくつかの場合には、音声処理システム２００のデバイスは、インターネットなどの外部ネットワーク上、または内部ネットワークと外部ネットワークとの組み合わせ上で通信しても良い。
【００２１】
いくつかの実施形態では、音声処理システム２００が提供する機能及びサービスは、通信ネットワークを介して消費可能なウェブサービスとして実装されても良い。さらなる実施形態では、音声処理システム２００は、ホスト型コンピューティング環境で実装される、もう１つの仮想マシンによって提供される。ホスト型コンピューティング環境は、急速にプロビジョニングされ公開された、１つ以上のコンピューティング資源を含む場合があり、コンピューティング資源は、コンピューティングデバイス、ネットワークデバイス、及び／または記憶デバイスを含み得る。ホスト型コンピューティング環境は、クラウドコンピューティング環境と呼ばれることもある。
【００２２】
いくつかの実施形態では、ネットワーク接続及び１つ以上の単独のコンピューティングシステムが本開示の処理を行う必要がないよう、音声処理システム２００の機能はクライアントデバイスに統合されても良い。例えば、単一のクライアントデバイスはマイクロフォン１０２、ＡＳＲモジュール２０２、ＮＬＵモジュール２０４、対話マネージャ２０６、スキップリスト２０８またはそれらのいくつかの組み合わせを含んでも良い。
【００２３】
上記及び詳細には以下にさらに詳述する実施例に戻ると、ユーザは種々の指示、要求などを含んでも良い発話を送信しても良い。マイクロフォン１０２は発話オーディオを取得し、発話オーディオ（または発話音声から派生するデータ）を音声処理システム２００に提供する。ＡＳＲモジュール２０２は、音訳のｎ−ｂｅｓｔリストなど、発話のＡＳＲ結果を生成しても良い。それぞれの音訳またはその一部は、信頼性スコアまたは音訳またはその一部が正しい尤度などのいくつかのスコアに関連付けられても良い。ｎ−ｂｅｓｔリストまたはいくつかの他のタイプの結果は、ユーザ意図が判定されるよう、ＮＬＵモジュール２０４に提供されても良い。解釈のｎ−ｂｅｓｔリスト（例えば、意図）はＮＬＵモジュール２０４により判定または生成され、文脈インタープリタ２０６に提供されても良い。文脈インタープリタ２０６は、以下にさらに詳述する通り、ＮＬＵ結果を処理し（例えば、個々の解釈の修正、解釈のフィルタリング、解釈の再スコア化または再ランク付け等）、処理された結果を対話マネージャ２０６に提供することができる。例示的には、文脈インタープリタ２０６は、文脈解釈ルールの適用を基に、現在のＮＬＵ結果を文脈データストア２１２に記憶された前の結果とマージしても良い。対話マネージャ２０８は、その後、マージされた結果を基に応答を生成し（例えば、確認）、ＮＬＧモジュール２１０は対話マネージャ２０８により生成された意味論的応答を人間が可読なテキスト、合成された音声等に変換することができる。対話マネージャ２０８により生成された意味論的応答は、前の応答の意味論的表現、ユーザ発話などと共に、文脈データストア２１２に記憶することができる。
文脈インタープリタを使用して処理されるマルチターンインタラクションの例
【００２４】
図２及び図３は、マルチターンインタラクション中のクライアントデバイス３００と音声処理システム２００との間のインタラクションの例を説明する。マルチターンインタラクション中では、音声処理システム２００及びクライアントデバイス３００のユーザは、曲を見つける、音楽を購入する、航空便を予約するなどの、いくつかの目的を達成するために、それぞれ交代で１つ以上の発話を交換することができる。上記の通り、それぞれのユーザ発話は解釈（ユーザ発話の意味の意味論的表現またはそのいくつかの部分）により表現することができ、それぞれのシステム通信は対話行為（システムプロンプトの意味の意味論的表現またはそのいくつかの部分）により表現することができる。
【００２５】
特定の対話行為を参照して、例示のみを目的とする図２及び図３に例示する実施例（ならびに本明細書の他の実施例）を記載する。本明細書に記載する対話行為は、音声処理システムにより実装されても良い、あらゆる対話行為を包括するものではない。いくつかの実施形態では、対話行為は４つの主なタイプ、すなわち（１）スロット値または意図の明示的な確認、（２）スロット値または意図の暗示的な確認、（３）スロット値の導出、（４）スロット値または意図の曖昧性排除に分類されても良い。
【００２６】
例えば、システムは自身の解釈の信頼性が低い場合、意図への行為に費用がかかるか、または意図への行為を無効にするのが困難な場合等では、特定のスロット値または特定の意図の正確性を明示的に確認しても良い。システムは、はい／いいえの質問（例えば、「『フライ・ミー・トゥー・ザ・ムーン』という曲を購入したいということですか？」）を作成することができる。ユーザはスロット値（例えば、意図「曲の購入」のスロット「曲のタイトル」に対する値「フライ・ミー・トゥー・ザ・ムーン」）を確認もしくは拒否すること、または意図自体を確認もしくは拒否することができる。
【００２７】
別の実施例では、システムは、ステートメント形式（例えば、「現在、フランク・シナトラの『フライ・ミー・トゥー・ザ・ムーン』を再生しています」）でプロンプトを提示することにより、スロット値または意図の正確性を暗示的に確認しても良い。ユーザは、文の断片（例えば、「ちがう、『マイ・ウェイ』」）を返答することにより、誤って解釈された入力を修正しようとしても良く、文の断片は通常、特定のスロット値を伴うが対応する意図を伴わない、非文発話（「ＮＳＵ」）として音声処理システムに解釈される。
【００２８】
さらなる実施例として、システムは、特定の意図にアクションを起こすために必要なスロット値が欠如していても良い。システムは明示的な質問（例えば、「どの曲ですか？」）により、欠如したスロット値を導出しても良い。この場合、ユーザが文の断片を発話すると予測され、これは通常、特定のスロット値を伴うＮＳＵとして分類される。
【００２９】
さらに別の実施例として、システムは、２つ以上あるスロットのうちどれに特定の値を配置すべきか、または２つ以上ある意図のうちどれをユーザが指しているかを確実に判定することができなくても良い。システムは明示的な質問（例えば、「アルバムですか、それとも曲ですか？」）によりユーザの曖昧性を導出することができる。この場合、ユーザが文の断片を発話すると予測され、これは通常、特定のスロット名または意図名を伴うＮＳＵとして分類される。
【００３０】
図２を参照して、ユーザの脱線または予測外の意図の実施例を記載する。有利には、マルチターンインタラクションの前のターンの文脈内で現在の発話を解釈することは、マルチターンインタラクションの１つ以上の割り込みターンが以前の対話行為に関係してない場合でも、現在の発話がシステムによる情報の導出などの以前の対話行為に関係するということを音声処理システムが理解することに役立つことができる。このような方法でマルチターン文脈を保持または使用しないシステムでは、係る割り込みユーザ脱線または予測外の意図により、システムは、本来であればユーザによる関連及び応答性のある発話の誤解、または解釈の失敗を引き起こし得る（例えば、システムは、以前の対話行為が生成されたことを「忘れる」可能性がある）。
【００３１】
図２に示す通り、ユーザはマルチターンインタラクションの第１発話を行っても良く、第１発話は［１］においてクライアントデバイス３００により音声処理システム２００に伝達される。例示的には、発話は「来週の金曜日にロサンゼルスから出発する航空便を検索しなさい」であっても良い。音声処理システム２００は上記の通り、ＡＳＲモジュール２０２及びＮＬＵモジュール２０４を使用して発話を処理することができる。対話マネージャ２０８は発話の意味論的表現（例えば、「航空便検索の意図（出発日付＝２０１４年４月２３日、出発位置＝ＬＡＸ）」）を文脈データストア２１２に記憶し、発話に応答する対話行為（例えば、「導出情報（目的地位置）」）を生成することができる。ＮＬＧモジュール２１０は対話行為（例えば、「目的地は何ですか？」）を基にユーザプロンプトを生成しても良く、ユーザに提示するために、［２］でプロンプトをクライアントデバイス３００に提供しても良い。
【００３２】
導出に応答することなく、ユーザは、脱線を行うか、またはいくつかの予測外もしくは非応答性の発話を行う場合がある。例えば、ユーザは「シカゴの天気は何か？」と言う場合がある。クライアントデバイス３００は［３］で音声処理システム２００に脱線を提供することができる。音声処理システム２００は予備の音声処理結果（例えば、上記の通り、発話の解釈のｎ−ｂｅｓｔリスト）を生成しても良く、予備の結果はコンテンツインタープリタ２０６に提供されても良い。図４及び図５に関して以下にさらに詳述する通り、文脈インタープリタ２０６は結果を処理しても良い。例えば、発話の解釈のｎ−ｂｅｓｔリストの１つは、発話がある位置の天気を要求する完全形成の意図であっても良い。文脈データストア２１２にはその意図に関係する前の対話行為または解釈がないため、文脈インタープリタ２０６は解釈を修正することができない。別の実施例では、ｎ−ｂｅｓｔリストの第２解釈は、発話が「目的地位置」スロットの値を提供するＮＳＵであっても良い。文脈データストア２１２はその特定のスロット値を導出する、前の対話行為を含むため、欠如したスロット値を提供するために、解釈は「航空便検索の意図（・・・）」の前の解釈（さらに文脈データストア２１２にある）にマージされても良い。このマージされた解釈はｎ−ｂｅｓｔリストに挿入されても良い。しかしながら、ｎ−ｂｅｓｔリストの第１解釈（例えば、天気位置意図の完全形成）はシステム２００が、その解釈の正確性において、マージされた解釈よりも高い信頼性を有することを示すスコアに関連付けられても良い。第１解釈は対話マネージャ２０８（例えば、要求された位置の天気を提供する対話行為を生成する）及びＮＬＧモジュール２１０が従っても良く、［４］でクライアントデバイス３００に応答を提供する。加えて、選択された解釈及び生成された対話行為は文脈データストア２１２に記憶することができる。
【００３３】
ユーザは、この例示的なマルチターンインタラクションの最初のターンに関係する発話を後続的に行っても良い。例えば、ユーザは［２］でシステム２００により、以前に導出された情報を提供することにより、引き続き航空便を検索するように判断しても良い。ユーザは「シカゴ」（または「シカゴに行く」、または「シカゴにしてみよう」、または「目的地シカゴ」等）と言っても良く、クライアントデバイス３００は［５］で音声処理システム２００にその発話を提供することができる。
【００３４】
音声処理システム２００は、現在の発話の予備の音声処理結果を再び生成することができる。最上位スコア結果の１つは、発話が「目的地位置」スロットの値を提供するＮＳＵであるという解釈でも良い。文脈データストア２１２はその特定のスロット値を導出する、前の対話行為を含むため、「目的地位置」スロットに欠如した値を提供するために、解釈は「航空便検索の意図（・・・）」の前の解釈（さらに文脈データストア２１２にある）にマージされても良い。今回は、マージされていない上位スコアの解釈がないことを基に、解釈が適当な正しい解釈であることを示すスコアに関連付けられても良い（例えば、発話がＮＳＵであったため、［３］でユーザが天気関連の発話を行った場合と同様、完全形式の意図の上位スコアの解釈がなかった）。対話マネージャ２０８は完全形式の「航空便検索の意図（・・・）」とマージされた解釈を受信することができ、（例えば、航空便検索を実行するように構成されるアプリケーションモジュールに指示を提供することにより）要求アクションを開始することができる。対話マネージャ２０８は意図に応答して対話行為を作成することができ、ＮＬＧモジュール２１０は［６］でクライアントデバイス３００に送信される応答を生成することができる。例示的には、応答は航空便検索、意図の確認（例えば、「シカゴへの航空便の検索中・・・」）、追加情報の導出（例えば、「いつ帰りたいですか？」）等の結果であっても良い。
【００３５】
クライアントデバイス３００と音声処理システム２００とのインタラクションは［６］で対話行為番号４の後に続いても良い。例えば、ユーザは、［３］でユーザにより以前に行われた脱線に関係する後続の発話を行っても良い。音声処理システム２００は、上記及び以下にさらに詳述する通り、文脈インタープリタ２０６を使用し、脱線を含む以前の発話及び対話行為を考慮して後続の発話を解釈しても良い。この場合、後続の発話は脱線とマージされ、従われ得る。
【００３６】
図３を参照すると、マルチターンインタラクション文脈を使用して解釈される、潜在的に曖昧な意図の実施例が記載される。有利には、マルチターンインタラクションの前のターンの文脈内で現在の発話を解釈することは、追加のユーザ入力を必要とすることなく曖昧性を解消するのに役立ち、さらにマルチターンインタラクションの全体（またはマルチターンインタラクションのいくつかの部分）の文脈で正確なアクションが判定可能である場合に、単独の発話の解釈を基に不正確なアクションを開始するのを回避することに役立つことができる。
【００３７】
図３に示す通り、ユーザはマルチターンインタラクションの第１発話を行っても良く、第１発話は［１］でクライアントデバイス３００により音声処理システム２００に伝達される。例示的には、発話は「インターネットラジオを再生しなさい」であっても良い。音声処理システム２００は上記の通り、ＡＳＲモジュール２０２及びＮＬＵモジュール２０４を使用して発話を処理することができる。対話マネージャ２０８は発話の意味論的表現（例えば、「インターネットラジオ局再生の意図（・・・）」）を文脈データストア２１２に記憶し、発話に応答する対話行為（例えば、「導出情報（ラジオ局）」）を生成することができる。ＮＬＧモジュール２１０は対話行為（例えば、「どのインターネットラジオ局ですか？」）を基にユーザプロンプトを生成しても良く、ユーザに提示するために、［２］でプロンプトをクライアントデバイス３００に提供しても良い。
【００３８】
ユーザは潜在的に曖昧な発話で導出に応答しても良い。例えば、ユーザは「フランク・シナトラを再生しなさい」と言っても良い。単独では、その発話は通常、ユーザが所有するフランク・シナトラの音楽を聞くことをユーザが望むということを示し得る（例えば、意図は「音楽再生の意図（アーティスト＝『フランク・シナトラ』）」）と解釈され得る）。しかしながら、本発明の実施例では、ユーザはユーザが所有する音楽ではなく、「フランク・シナトラ」のインターネットラジオ局を聞くことを望む（例えば、適切には「インターネットラジオ再生の意図（局＝『フランク・シナトラ』）」）と解釈される）。前のマルチターンインタラクションの文脈にアクセスすることなくユーザ発話を解釈するシステムでは、発話「フランク・シナトラを再生しなさい」は前のユーザ意図に関する情報の導出への応答ではなく、新規のユーザ意図を反映していると判定する場合がある。したがって、係るシステムはユーザが所有する音楽の再生を開始するだろう。対照的に、音声処理システム２００の文脈インタープリタ２０６は、このマルチターンインタラクションに対するユーザ発話の前の解釈及び前の対話行為にアクセスし、発話「フランク・シナトラを再生しなさい」はインターネットラジオ局の名前に対する導出に応えて行われたものであると判定することができる。したがって、文脈インタープリタはユーザ発話の解釈（例えば、ＮＬＵ結果は、発話が「局」スロットの値を含むＮＳＵであることを示す）を以前に記憶されたインターネットラジオ再生の意図（・・・）に適切にマージすることができる。その後、応答を生成し、［４］でクライアントデバイス３００に提供することができる。例示的には、応答は要求されたインターネットラジオ局のストリーム、意図の確認（例えば、「フランク・シナトラ局を再生しています」）、追加情報の導出等であっても良い。
マルチターンインタラクション文脈を使用する発話の解釈プロセス
【００３９】
図４を参照すると、マルチターンインタラクション文脈を使用してユーザ発話を処理するサンプルプロセス４００が記載される。有利には、文脈インタープリタ２０６またはプロセス４００を行う音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、ユーザ意図の以前の解釈及びこれらの意図に応答して生成される以前の対話行為のルールベースの解析を使用して個々の音声処理結果を修正することができる。係るマルチターンインタラクションの文脈に基づく処理により、音声処理システムとのより自然な通信、及び文脈を失うことのない、より堅固な対話管理が可能になり得る。
【００４０】
プロセス４００はブロック４０２で開始する。プロセス４００は、文脈インタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素による入力データ（例えば、現在のユーザ発話の解釈のｎ−ｂｅｓｔリスト）の受信の際に自動的に開始され得る。プロセス４００は、音声処理システム２００のコンピューティングシステムの１つ以上のディスクドライブなどのコンピュータ可読媒体上に記憶された実行可能なプログラム命令セットに具現化され得る。プロセス４００が開始される際、実行可能なプログラム命令は、ＲＡＭなどのメモリにロードされ、コンピューティングシステムの１つ以上のプロセッサにより実行することができる。
【００４１】
ブロック４０４では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、現在のユーザ発話の解釈リストを取得することができる。図３に説明し、かつ上に記載した実施例に戻ると、文脈インタープリタ２０６は発話番号２である「フランク・シナトラを再生しなさい」の解釈のｎ−ｂｅｓｔリストを受信しても良い。ｎ−ｂｅｓｔリストは、ユーザが所有するフランク・シナトラの音楽を再生すること（「音楽再生の意図（アーティスト＝『フランク・シナトラ』）」）を意図とする、最上位ランクのユーザ発話の解釈を含んでも良い。ｎ−ｂｅｓｔリストは、スロット「ラジオ局」のスロット値「フランク・シナトラ」を伴うＮＳＵとしての下位ランクのユーザ発話の解釈を含んでも良い。
【００４２】
ブロック４０６では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、それぞれのｎ−ｂｅｓｔ結果（またはそれらのいくつかのサブセット）を繰り返し処理し、特定の結果が修正されたか、あるいは以前の意図とマージされたかを判定することができる。以下に記載の通り、判定は、本発明のマルチターンインタラクションにおいて以前のユーザ発話の解釈及び以前に生成された対話行為に関する文脈情報を使用する、ルールベースの判定であり得る。
【００４３】
判定ブロック４０８では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、特定の解釈が以前に記憶された解釈にマージ可能かどうかを判定することができる。解釈が以前に記憶された解釈にマージできるかどうかを判定するルールベースのプロセスの一例は、図５に説明され、さらに以下に詳細を記載する。解釈がマージされると、プロセス４００はブロック４１０に進み、ここで解釈をマージできる。それ以外の場合、プロセス４００は判定ブロック４１２に進み、ここでは、解析のための現在の発話に対する追加の解釈結果があるかどうかを判定する。
【００４４】
いくつかの実施形態では、現在の発話の単一の解釈は、以前に記憶された複数（例えば、２つ以上）の解釈にマージすることができる。例えば、現在の発話の解釈及び複数の前の解釈のそれぞれが図５に示すルールベースフレームワークを満たす場合、解釈はこれらの前の解釈のそれぞれにマージされ、解釈のｎ−ｂｅｓｔに追加すべき候補結果として使用されても良い。
【００４５】
一旦マルチターンインタラクションの文脈を使用して関連する解釈が処理されると、解釈はブロック４１４でフィルタリングされ、再スコア化または再ランク付けされ、対話マネージャ２０８などの解釈のダウンストリーム消費者に提供される。例えば、マージされていない全てのＮＳＵは結果からフィルタリングされても良い。別の実施例として、マージされた解釈は、現在の解釈がマージされた、以前の解釈のスコアに対応するスコアを与えられても良い。いくつかの実施形態では、文脈インタープリタ２０６は解釈を再スコア化及び／または再ランク付けするために機械学習モデルを利用しても良い。例えば、機械学習モデルにより使用される機能は、現在及び任意の数の前の発話に対するＡＳＲ結果及び／またはスコア、現在及び任意の数の前の発話に対するＮＬＵ結果及び／またはスコア、任意の数の以前の対話行為等を含んでも良い。モデルは、その後、解釈のダウンストリーム消費者に提供される結果のランキングまたはスコアを提供するために使用されても良い。プロセス４００はブロック４１６で終了する。
【００４６】
図５は、ある解釈が以前に記憶された解釈とマージされ得るかどうかを判定するサンプルプロセス５００を説明する。プロセス５００はブロック５０２で開始する。いくつかの実施形態では、プロセス５００は、上記のプロセス４００の判定ブロック４０８の入力時に自動的に開始しても良い。プロセス５００は、１つ以上のディスクドライブなど、音声処理システム２００のコンピューティングシステムのコンピュータ可読媒体上に記憶された実行可能なプログラム命令セットに具現化されても良い。プロセス５００が開始されるとき、実行可能なプログラム命令は、ＲＡＭなどのメモリにロードされ、コンピューティングシステムの１つ以上のプロセッサによって実行することができる。いくつかの実施形態では、プロセス５００は単独のプログラム命令セットに具現化された単独のプロセスではなく、プロセス４００のサブルーチンであっても良い。
【００４７】
ブロック５０４では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、マルチターンインタラクションのそれぞれの対話行為、またはそれらのいくつかのサブセット（例えば、以前の１つまたは２つの対話行為のみ）を繰り返し処理し、現在考慮されている解釈が修正され得るか、あるいは以前の意図にマージされ得るかを判定することができる。
【００４８】
判定ブロック５０６では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、現在の繰り返しに対する対話行為が情報の導出または確認かどうかを判定することができる。この判定に該当しない場合、プロセス５００は判定ブロック５１８に進み、ここでプロセス５００を使用して任意の他の前の対話行為を繰り返し処理するかどうかを判定することができる。しかしながら、現在の繰り返しの対話行為が正に導出または確認の場合、プロセス５００は判定ブロック５０８に進むことができる。上の実施例に戻ると、図２及び図３の両方のターン［２］で導出対話行為が開始された。図２では、導出は航空便検索意図のスロットを埋めるため、目的地名に対して行われた。図３では、導出はインターネットラジオ意図のスロットを埋めるため、ラジオ局名に対して行われた。
【００４９】
判定ブロック５０８では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、現在の繰り返しに対する対話行為が現在考慮されている解釈と同じドメイン内かどうかを判定することができる。概して記載すると、ドメインは特定のトピックもしくは主題、または複数の（例えば、２つ以上の）関連するトピック及び／もしくは主題に対応しても良い。特定のワードまたはフレーズの意味は、ワードまたはフレーズが使用されるドメインに応じて変化しても良い。現在の繰り返しの対話行為が現在考慮されている解釈と同じドメインにある場合、プロセス５００は判定ブロック５１０に進むことができる。
【００５０】
判定ブロック５１０では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、現在の繰り返しに対する対話行為がターゲットスロットに関係するかどうかを判定することができる。上の実施例では、導出対話行為がターゲットスロットの値を導出しているため、導出対話行為はこれらのターゲットスロットに関係している。図２のターン［６］及び図３のターン［４］の対話行為は、これらの対話行為が特定のスロットの値を確認している場合、ターゲットスロットに関係し得る。これらの場合、プロセスは判定ブロック５１２に進んでも良い。しかしながら、これらの対話行為が意図の確認または要求された情報を提供している場合（例えば、航空便のリスト化、ラジオ局の再生）、対話行為はターゲットスロットに関係していない。これらの場合、プロセス５００は判定ブロック５１４に進み得る。
【００５１】
判定ブロック５１２では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、現在考慮されている解釈がターゲットスロットの受容値、拒否値または交換値を提供するかどうかを判定することができる。この判定に該当する場合、解釈はマルチターンインタラクションの文脈にある以前の解釈、つまり、プロセス５００の現在の繰り返しの対話行為が生成された、以前の解釈にマージすることができる。
【００５２】
判定ブロック５１４では、コンテンツインタープリタ２０６または音声処理システム２００のいくつかの他のモジュールもしくは構成要素は、現在考慮されている解釈が、マルチターンインタラクションの文脈にある以前の解釈、つまり、プロセス５００の現在の繰り返しの対話行為が生成された以前の解釈にある値の受容値、拒否値または交換値を提供するかどうかを判定することができる。この判定に該当する場合、解釈はその以前の解釈にマージすることができる。
追加の実施形態
【００５３】
いくつかの実施形態では、上記のルールセットではなく、統計モデルを使用して、解釈が前の解釈にマージ可能かどうかを判定しても良い。例えば、条件付き確率場（「ＣＲＦ」）、最大エントロピーベース統計分類手法等、またはこれらのいくつかの組み合わせを使用して、マルチターンインタラクション文脈内の特定の解釈が正しい確率を判定することができる。係る確率的方法を使用することの１つの難しさは、モデルをトレーニングするために、注釈付きトレーニングデータのコーパスが必要である点である。係るデータは、単に個別のインタラクションの集合ではなく、インタラクションの順序が重要であるマルチターンインタラクションを伴うため、取得または生成することが困難であり得る。したがって、十分な量のトレーニングデータを取得するために、ブートストラップ手法を使用しても良い。例えば、十分な量のトレーニングデータを取得するまで、上記のルールベース手法を使用してインタラクションデータを収集しても良く、その後、統計モデルを生成してルールフレームワークの代わりに（またはルールフレームワークと組み合わせて）使用しても良い。
【００５４】
＜用語＞
実施形態により、本明細書に記載した任意のプロセスまたはアルゴリズムの特定の動作、事象、または機能は、異なる順序で行うこと、追加すること、マージすること、または完全に省略すること（例えば、記載した全ての操作または事象がアルゴリズムの実施に必要という訳ではない）ができる。さらに、特定の実施形態では、操作または事象は、例えば、マルチスレッド処理、割り込み処理、複数のプロセッサもしくはプロセッサコアを通して、または他の並列アーキテクチャ上で、連続的ではなく同時に行うことができる。
【００５５】
本明細書に開示の実施形態に関連して記載する種々の例示的な論理ブロック、モジュール、ルーチン、及びアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組み合わせとして実装することができる。ハードウェアとソフトウェアとのこの互換性を明確に説明するために、種々の例示的な構成要素、ブロック、モジュール、及びステップを、概してそれらの機能性の観点から上で記載した。係る機能性をハードウェアとして実装するか、またはハードウェアで実行するソフトウェアとして実装するかは、特定の適用及びシステム全体上に課される設計制約に依存する。記載の機能性は、各特定の適用に対して様々な方法で実装できるが、係る実装の判断は、本開示の範囲からの逸脱を引きこすと解釈されるべきではない。
【００５６】
さらに、本明細書に開示される実施形態に関連して記載される種々の例示的な論理ブロック及びモジュールは、汎用プロセッサデバイス、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他のプログラム可能論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書に記載される機能を実行するように設計された任意のそれらの組み合わせなどの機械により実装または実行することができる。汎用プロセッサデバイスは、マイクロプロセッサであっても良いが、代替的には、プロセッサデバイスは、コントローラ、マイクロコントローラ、もしくはステートマシン、またはこれらの組み合わせなどであっても良い。プロセッサデバイスは、コンピュータ実行可能命令を処理するように構成される電気回路を含み得る。別の実施形態では、プロセッサデバイスは、コンピュータ実行可能命令を処理することなく論理動作を行う、ＦＰＧＡまたは他のプログラム可能デバイスを含む。プロセッサデバイスは、さらに、コンピューティングデバイスの組み合わせ、例えば、ＤＳＰ及びマイクロプロセッサ、複数のマイクロプロセッサ、ＤＳＰコアと連動する１つ以上のマイクロプロセッサ、または任意の他の係る構成の組み合わせとして実装され得る。本明細書はデジタル技術に関して主に記載したが、プロセッサデバイスは、主にアナログ構成要素をさらに含んでも良い。例えば、本明細書に記載の信号処理アルゴリズムの一部または全てはアナログ回路またはアナログ及びデジタル混合回路に実装されても良い。コンピューティング環境は、数例を挙げると、マイクロプロセッサ、メインフレームコンピュータ、デジタル信号プロセッサ、ポータブルコンピューティングデバイス、デバイスコントローラ、または機器内の計算エンジンをベースとする任意の形式のコンピュータシステムを含み得るが、これらに制限されない。
【００５７】
本明細書に開示の実施形態に関連して記載する方法、プロセス、ルーチン、またはアルゴリズムの要素は、直接ハードウェアにおいて、プロセッサデバイスによって実行されるソフトウェアモジュールにおいて、またはその２つの組み合わせにおいて具現化することができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または任意の他の形式の非一時的なコンピュータ可読記憶媒体内に存在することができる。例示的な記憶媒体は、プロセッサデバイスが記憶媒体から情報を読み出すことができるように、かつ記憶媒体に情報を書き込むことができるようにプロセッサデバイスに連結することができる。代替的には、記憶媒体は、プロセッサデバイスに統合することができる。プロセッサデバイス及び記憶媒体は、ＡＳＩＣ内に存在することができる。ＡＳＩＣは、ユーザ端末内に存在することができる。代替的には、プロセッサデバイス及び記憶媒体は、ユーザ端末内に個別構成要素として存在することができる。
【００５８】
とりわけ、「ｃａｎ」、「ｃｏｕｌｄ」、「ｍｉｇｈｔ」、「ｍａｙ」、「ｅ．ｇ．」などの、本明細書に使用する条件付き言語は、他に指示のない限り、あるいは使用される文脈内で理解されない限り、その特定の実施形態が、特定の機能、要素、及び／またはステップを含むが、他の実施形態はそれらを含まないことを伝えることを概して意図する。したがって、係る条件付き言語は、機能、要素、及び／またはステップが、１つ以上の実施形態のために何としても必要とされること、または１つ以上の実施形態が、他の入力またはプロンプトの有無に関わらず、これらの機能、要素、及び／もしくはステップが含まれるか、もしくは任意の特定の実施形態において行われるかどうかを判定するための論理を必ず含むことを意味することを概して意図するわけではない。用語「ｃｏｍｐｒｉｓｉｎｇ」、「ｉｎｃｌｕｄｉｎｇ」、「ｈａｖｉｎｇ」などは、同義語であり、非制限的な形で包含的に使用され、かつ追加の要素、機能、動作、操作などを除外しない。また、用語「ｏｒ」は、例えば、要素のリストを繋げるために使用されるときに、用語「ｏｒ」がリストの要素のうちの１つ、一部、または全てを意味するように、その包含的な意味で（その排他的な意味ではなく）使用される。
【００５９】
フレーズ「ａｔ  ｌｅａｓｔ  ｏｎｅ  ｏｆ  Ｘ，  Ｙ，  Ｚ」などの離接接続語は、別途指示のない限り、項目、用語等が、概して、Ｘ、Ｙ、もしくはＺのいずれか、またはそれらの組み合わせ（例えば、Ｘ、Ｙ、及び／またはＺ）であることを提示するために使用される際の文脈で理解されるべきである。したがって、係る離接接続語は、特定の実施形態が、少なくとも１つのＸ、少なくとも１つのＹ、または少なくとも１つのＺが各々存在することを必要とすることを意味することを概して意図せず、かつ意図すべきではない。
【００６０】
上の詳述により、種々の実施形態に適用される際の新規の機能を示し、記載し、指摘したが、説明したデバイスまたはアルゴリズムの形態及び詳細における種々の省略、置換、及び変更が、本開示の趣旨から逸脱することなく行うことができることが理解され得る。認識され得る通り、本明細書に記載の特定の実施形態は、一部の機能が他の機能から分離して使用または実施され得るため、本明細書に記載の機能及び利益の全てを提供するわけではない形式内で具現化され得る。本明細書に開示される特定の実施形態の範囲は、前述の記載によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲の等価の意味及び範囲内に入る全ての変更は、それらの範囲内に包含されるべきである。
【００６１】
上述の事項は、以下の条項を考慮しても理解され得る。
１．実行可能命令を記憶するコンピュータ可読メモリと、
前記コンピュータ可読メモリと通信する１つ以上のプロセッサであり、前記１つ以上のプロセッサは前記実行可能命令により、少なくとも
ユーザの第１発話に関する第１オーディオデータを取得することと、
前記第１オーディオデータに少なくとも部分的に基づいて、第１音声処理結果を生成することであり、前記第１音声処理結果が前記第１発話の意味論的表現を備え、
前記第１音声処理結果に少なくとも部分的に基づいて、前記ユーザへの提示に対する第１応答を生成することと、
前記第１発話の前記意味論的表現と、前記第１応答の意味論的表現とを備える文脈情報を記憶することと、
前記ユーザの第２発話に関する第２オーディオデータを取得することと、
前記第２オーディオデータ、前記文脈情報、及び文脈解釈ルールを使用して第２音声処理結果を生成することであり、前記文脈解釈ルールは前記第１発話の前記意味論的表現のスロット値または意図のうち少なくとも１つを前記第２発話の意味論的表現のスロット値または意図のうち少なくとも１つに置き換えることに関し、前記文脈ルールは前記第１応答の前記意味論的表現に少なくとも部分的に基づき、
前記第２音声処理結果に少なくとも部分的に基づいて、前記ユーザへの提示に対する第２応答を生成することと、
をプログラムされる前記１つ以上のプロセッサと、
を備えるシステム。
【００６２】
２．前記第１発話の前記意味論的表現は、意図と、前記意図に関連する１つ以上のスロットとを備える、条項１に記載のシステム。
【００６３】
３．前記１つ以上のプロセッサが、前記第１発話に関連する前記文脈情報の記憶の後に、かつ前記第２ユーザ発話に対する前記第２音声処理結果を生成する前に、割り込みユーザ発話に対する割り込み音声処理結果を生成するようさらにプログラムされる、条項１に記載のシステム。
【００６４】
４．特定のコンピュータ実行可能命令で構成される１つ以上のコンピューティングデバイスの制御下において、
第１自然言語入力及び前記第１自然言語入力への第１応答に関連する文脈情報を記憶することであり、前記文脈情報は前記第１自然言語入力の意味論的表現と、前記自然言語入力への前記第１応答の意味論的表現とを備え、
前記文脈情報に少なくとも部分的に基づいて、第２自然言語入力に対する自然言語処理結果を生成することであり、前記自然言語処理結果は前記第１自然言語入力の意味論的表現にマージされる前記第２自然言語入力の意味論的表現の少なくとも１部を備え、
前記自然言語処理結果に少なくとも部分的に基づいて、前記第２自然言語入力への第２応答を生成することと、
を備えるコンピュータ実装方法。
【００６５】
５．前記自然言語入力がテキストまたは音声を備える、条項４に記載のコンピュータ実装方法。
【００６６】
６．前記第２自然言語入力の前記意味論的表現は、前記第１自然言語入力の前記意味論的繰り返しのスロット値を前記第２自然言語入力の前記意味論的表現のスロット値に置き換えることにより、前記第１自然言語入力の前記意味論的表現にマージされる、条項４に記載のコンピュータ実装方法。
【００６７】
７．前記第２自然言語入力の前記意味論的表現は、前記第１自然言語入力の前記意味論的繰り返しの意図を前記第２自然言語入力の前記意味論的表現の意図に置き換えることにより、前記第１自然言語入力の前記意味論的表現にマージされる、条項４に記載のコンピュータ実装方法。
【００６８】
８．前記第２自然言語入力に対する前記自然言語処理結果は文脈解釈ルールに少なくとも部分的に基づいて生成される、条項４に記載のコンピュータ実装方法。
【００６９】
９．前記文脈解釈ルールが前記第１自然言語入力の前記意味論的表現のドメインが前記第２自然言語入力の前記意味論的表現のドメインに等しいかどうかを判定することに関する、条項８に記載のコンピュータ実装方法。
【００７０】
１０．前記文脈解釈ルールが前記第１自然言語入力の前記意味論的表現に関連する意図またはスロットの少なくとも１つが前記第２自然言語入力の前記意味論的表現に関連する意図またはスロットの少なくとも１つに等しいかどうかを判定することに関する、条項８に記載のコンピュータ実装方法。
【００７１】
１１．前記文脈解釈ルールが前記第１自然言語入力への前記第１応答の前記意味論的表現に関する、条項８に記載のコンピュータ実装方法。
【００７２】
１２．前記文脈解釈ルールはさらに、前記第１自然言語入力への前記第１応答の前記意味論的表現が前記第１自然言語入力の前記意味論的表現に関連する情報の導出に対応するかどうかを判定することに関する、条項１１に記載のコンピュータ実装方法。
【００７３】
１３．前記文脈解釈ルールはさらに、前記第１自然言語入力への前記第１応答の前記意味論的表現が前記第１自然言語入力の前記意味論的表現に関連する情報の確認に対応するかどうかを判定することに関する、条項１１に記載のコンピュータ実装方法。
【００７４】
１４．前記第２自然言語処理結果の少なくとも１部を再ランク付けすることをさらに備える、条項４に記載のコンピュータ実装方法。
【００７５】
１５．前記第２自然言語処理結果の少なくとも１部をフィルタリングすることをさらに備える、条項４に記載のコンピュータ実装方法。
【００７６】
１６．実行時に、１つ以上のコンピューティングデバイスに
第１自然言語入力及び前記第１自然言語入力への第１応答に関連する文脈情報を記憶することであり、前記文脈情報は前記第１自然言語入力の意味論的表現と、前記自然言語入力への前記第１応答の意味論的表現とを備え、
前記文脈情報に少なくとも部分的に基づいて、第２自然言語入力に対する自然言語処理結果を生成することであり、前記自然言語処理結果は前記第１自然言語入力の前記意味論的表現にマージされる前記第２自然言語入力の意味論的表現の少なくともの１部を備え、
前記自然言語処理結果に少なくとも部分的に基づいて、前記第２自然言語入力への第２応答を生成することと
を備えるプロセスを行わせる実行可能コードを備える、非一時的なコンピュータ可読記憶装置。
【００７７】
１７．前記自然言語入力がテキストまたは音声を備える、条項１６に記載の非一時的なコンピュータ可読記憶装置。
【００７８】
１８．前記第２自然言語入力の前記意味論的表現は、前記第１自然言語入力の前記意味論的繰り返しのスロット値または意図の少なくとも１つを前記第２自然言語入力の前記意味論的表現のスロット値または意図の少なくとも１つに置き換えることにより、前記第１自然言語入力の前記意味論的表現にマージされる、条項１６に記載の非一時的なコンピュータ可読記憶装置。
【００７９】
１９．前記プロセスが前記第１自然言語入力の前記意味論的表現のドメインが前記第２自然言語入力の前記意味論的表現のドメインに等しいかどうかを判定することをさらに備える、条項１６に記載の非一時的なコンピュータ可読記憶装置。
【００８０】
２０．前記プロセスが前記第１自然言語入力の前記意味論的表現に関連する意図またはスロットの少なくとも１つが前記第２自然言語入力の前記意味論的表現に関連する意図またはスロットの少なくとも１つに等しいかどうかを判定することをさらに備える、条項１６に記載の非一時的なコンピュータ可読記憶装置。
【００８１】
２１．前記プロセスが前記第１自然言語入力への前記第１応答の前記意味論的表現が前記第１自然言語入力の前記意味論的表現に関連する情報の導出に対応するかどうかを判定することをさらに備える、条項１６に記載の非一時的なコンピュータ可読記憶装置。
【００８２】
２２．前記プロセスが前記第１自然言語入力への前記第１応答の前記意味論的表現が前記第１自然言語入力の前記意味論的表現に関連する情報の確認に対応するかどうかを判定することをさらに備える、条項１６に記載の非一時的なコンピュータ可読記憶装置。
【００８３】
２３．前記プロセスが前記第２自然言語処理結果の少なくとも１部を再ランク付けまたはフィルタリングすることの１つをさらに備える、条項１６に記載の非一時的なコンピュータ可読記憶装置。
【００８４】
２４．前記プロセスが前記第１自然言語入力に関連する前記文脈情報の記憶の後に、かつ前記第２自然言語入力に対する前記自然言語処理結果を生成する前に、割り込み自然言語入力に対する割り込み自然言語処理結果を生成することをさらに備える、条項１６に記載の非一時的なコンピュータ可読記憶装置。
【００８５】
２５．第１自然言語入力及び前記第２自然言語入力が第１意図に関連し、前記割り込み自然言語入力が前記第１意図とは異なる第２意図に関連する、条項２４に記載の非一時的なコンピュータ可読記憶装置。
【図１】
0006535349.tif 000002
【図２】
0006535349.tif 000003
【図３】
0006535349.tif 000004
【図４】
0006535349.tif 000005
【図５】
0006535349.tif 000006