(57)【要約】コンポーネントベースの手法を使用して、特定の目的またはトピック（マルチスロット対話）を達成することを目的として複数の関連する情報を集めるための、ユーザとの一連の双方向交流を構築するシステムおよび方法が開示される。本方法は、一般的には、セグメントのスロットに対する値をユーザから引き出すために一次ヘッダプロンプトを出力すること、セグメントのスロットの少なくともサブセットの各スロットに対する値を含む一次ユーザ応答を受け取ること、一次ユーザ応答を処理し一次ユーザ応答に含まれる各スロットに対する少なくとも１つの候補認識値を決定すること、一次ユーザ応答に含まれる各スロットに対応する候補認識値から選択される合致値を入力すること、および、スロットセグメントのすべてのスロットが入力されるまで、セグメントの入力されていないスロットに対して、上記のステップを繰り返すことを含む。
2008506156.tif 000002
【特許請求の範囲】
【請求項１】
ユーザとのマルチスロット対話を構築および処理する方法であって、
セグメントのスロットに対する値をユーザから引き出すために、一次ヘッダプロンプトを出力することと、
一次ユーザ応答を受け取ることであって、該一次ユーザ応答は、該セグメントの該スロットの少なくともサブセットの中の各スロットに対する値を含む、該受け取ることと、
該一次ユーザ応答に含まれる、各スロットに対する少なくとも１つの候補認識値を決定するために、該一次ユーザ応答を処理することと、
該一次ユーザ応答に含まれる各スロットに、対応する少なくとも１つの候補認識値のうちから選択される合致値を入力することと、
該スロットセグメントのすべてのスロットが入力されるまで、該セグメントの任意の入力されていないスロットに対して、該出力すること、該受け取ること、該処理すること、および該入力すること、を繰り返すこと
を包含する、方法。
【請求項２】
前記一次ユーザ応答に含まれるスロットに対する前記合致スロット値を、確認するおよび明確化するのうちの少なくとも１つ、のためにターンを遂行すること、
をさらに包含する、請求項１に記載の方法。
【請求項３】
前記確認するおよび明確化するのうちの少なくとも１つは、最良の合致を黙って受け入れる、最良の合致を受動的に確認する、最良の合致を能動的に確認する、最良の合致の間のあいまいさを解消する、および認識できないことを前記ユーザに知らせる、からなるグループのうちから選択される、請求項２に記載の方法。
【請求項４】
前記確認するおよび明確化するのうちの少なくとも１つは、前記一次ユーザ応答の中の前記スロットに対する候補認識値の数、および該候補認識値のそれぞれに対する対応する信頼性レベルに基づいて選択される、請求項３に記載の方法。
【請求項５】
前記確認するおよび明確化するのうちの少なくとも１つが能動的な確認であるときには、前記ターンを遂行することは、ユーザの確認応答を、確認、取り消し、ならびに取り消しおよび訂正のうちの１つとして認識することを含み、また、該ユーザの確認応答が取り消しおよび訂正であるときには、該訂正を処理して該訂正に含まれる各スロットに対する少なくとも１つの候補認識値を決定することによって、該訂正が処理される、請求項３に記載の方法。
【請求項６】
前記確認するおよび明確化するのうちの少なくとも１つが受動的な確認であるときには、前記ターンを遂行することは、ユーザの受動的な確認応答を、次の一次ヘッダプロンプトへの応答、確認、取り消し、ならびに取り消しおよび訂正のうちの１つとして認識することを含み、また、該ユーザの受動的な確認応答が取り消しおよび訂正であるときには、該訂正を処理して該訂正に含まれる各スロットに対する少なくとも１つの候補認識値を決定することによって、該訂正が処理される、請求項３に記載の方法。
【請求項７】
前記スロットセグメントの入力されていない任意のスロットを有効化することをさらに包含する、請求項１に記載の方法であって、
前記一次ヘッダプロンプトが、該セグメントの有効化されたスロットに対する値を引き出す、方法。
【請求項８】
前記一次ユーザ応答を前記処理することは、対応するスロットに対する候補値の認識を容易にするための文法規則を適用することを含む、請求項１に記載の方法。
【請求項９】
前記一次ヘッダプロンプトを前記出力することは、入力されていないセグメントのセットに依存する、請求項１に記載の方法。
【請求項１０】
前記出力すること、および前記受け取ることは、テキストベースおよび音声ベースのうちの１つである、請求項１に記載の方法。
【請求項１１】
ユーザとのマルチスロット対話を構築および処理するシステムであって、
それぞれがセグメントのスロットを表す複数のスロットオブジェクトであって、各スロットは該マルチスロット対話に基づく値を割り当てられ得る、該複数のスロットオブジェクトと、
少なくとも１つのスロットセグメントオブジェクトであって、各スロットセグメントは対応する１セットのスロットオブジェクトを含む、該少なくとも１つのスロットセグメントオブジェクトと、
各スロットセグメントオブジェクトに対する少なくとも１セットのスロットグループオブジェクトであって、各スロットグループオブジェクトは該スロットセグメントオブジェクトのスロットの特定の組合せと関連するパラメータを定義する、該少なくとも１セットのスロットグループオブジェクトと、
該マルチスロット対話のフローを定義する対話オブジェクトと
を備える、システム。
【請求項１２】
前記システムは、オブジェクト指向のプログラミング言語において実装される、請求項１１に記載のシステム。
【請求項１３】
少なくとも１セットのスロットグループオブジェクトに対する各パラメータは、該パラメータの個別のセットの維持を容易にするために定義される、少なくとも２つのスロットグループクラスのうちの１つに分類される、請求項１１に記載のシステム。
【請求項１４】
前記スロットグループクラスは、認識前スロットグループクラスおよび認識後スロットグループクラスを含む、請求項１３に記載のシステム。
【請求項１５】
各スロットオブジェクトは、前記対応するスロットに対して前記ユーザによって提供される候補値の認識を容易にするための文法、文法の認識結果の該対応するスロットに対する意味値へのマッピングを容易にする規則、および該対応するスロットの状態を示す変数を含む、請求項１１に記載のシステム。
【請求項１６】
各スロットグループオブジェクトによって定義される前記パラメータは、ヘッダプロンプト、ヘルププロンプト、エラープロンプト、確認プロンプト、あいまいさ解消プロンプト、および認識プロパティからなるグループのうちから選択される、請求項１１に記載のシステム。
【請求項１７】
前記システムは、テキストベースおよび音声ベースのうちの１つである、請求項１１に記載のシステム。
【請求項１８】
複数のターンを通じて複数の情報項目を取得するための、ユーザとのマルチスロット対話を構築する方法であって、
少なくとも１つのスロットセグメントオブジェクトを提供することであって、各スロットセグメントオブジェクトは対応する１セットのスロットオブジェクトを含み、各スロットオブジェクトはセグメントのスロットを表し、各スロットは該ユーザによって提供される情報項目を表す、提供することと、
各スロットセグメントオブジェクトに対する少なくとも１セットのスロットグループオブジェクトを提供することであって、各スロットグループオブジェクトは、該スロットセグメントオブジェクトのスロットの特定の組合せに関連するパラメータを定義する、提供することと、
対話オブジェクトによって定義されるマルチスロット対話のフローを実行すること
を包含する、方法。
【請求項１９】
各スロットオブジェクトは、前記対応するスロットに対して前記ユーザによって提供される候補値の認識を容易にするための文法、文法の認識結果を該対応するスロットに対する意味値にマッピングする規則、および該対応するスロットの状態を示す変数を含む、請求項１８に記載の方法。
【請求項２０】
少なくとも1セットのスロットグループオブジェクトに対する各パラメータは、該パラメータの個別のセットの維持を容易にするために定義される少なくとも２つのスロットグループクラスのうちの１つに分類される、請求項１８に記載の方法。
【請求項２１】
前記スロットグループクラスは、認識前スロットグループクラスおよび認識後スロットグループクラスを含む、請求項２０に記載の方法。
【請求項２２】
各スロットグループオブジェクトによって定義される前記パラメータは、ヘッダプロンプト、ヘルププロンプト、エラープロンプト、確認プロンプト、あいまいさ解消プロンプト、および認識プロパティからなるグループのうちから選択される、請求項１８に記載の方法。
【請求項２３】
前記システムは、テキストベースおよび音声ベースのうちの１つである、請求項１８に記載の方法。
【請求項２４】
実行することは、ユーザ入力に応答してアクションを遂行することを含み、該アクションは、最良の合致を黙って受け入れること、最良の合致を受動的に確認すること、最良の合致を能動的に確認すること、最良の合致の間のあいまいさを解消すること、および認識できないことを前記ユーザに知らせることからなるグループのうちから選択される、請求項１８に記載の方法。
【請求項２５】
前記アクションが能動的な確認であるときには、前記実行することは、ユーザの確認応答を、確認、取り消し、ならびに取り消しおよび訂正のうちの１つとして認識することをさらに含み、また、該ユーザの確認応答が取り消しおよび訂正であるときには、該訂正を処理して該訂正に含まれる各スロットに対する少なくとも１つの候補認識値を決定することによって、該訂正が処理される、請求項２４に記載の方法。
【請求項２６】
前記アクションが受動的な確認であるときには、前記実行することは、ユーザの受動的な確認応答を、次の一次ヘッダプロンプトへの応答、確認、取り消し、ならびに取り消しおよび訂正のうちの１つとして認識することをさらに含み、また、該ユーザの受動的な確認応答が取り消しおよび訂正であるときには、該訂正を処理して該訂正に含まれる各スロットに対する少なくとも１つの候補認識値を決定することによって、該訂正が処理される、請求項２４に記載の方法。
【請求項２７】
前記アクションは、前記スロットに対する複数の候補値の数、および各候補値に対する対応する信頼性レベルに基づいて選択される、請求項２４に記載の方法。
【請求項２８】
前記対話オブジェクトは、スロット値を確認するおよび明確化するのうちの少なくとも１つのためのターンを定義する、請求項１８に記載の方法。
【請求項２９】
コンピュータ可読媒体に具体化されるコンピュータプログラム製品であって、該コンピュータプログラム製品は命令を含み、該命令は、それがプロセッサによって実行されるときには、該プロセッサをして、
セグメントのスロットに対する値をユーザから引き出すために一次ヘッダプロンプトを出力することと、
一次ユーザ応答を受け取ることであって、該一次ユーザ応答は該セグメントの該スロットの少なくともサブセットの各スロットに対する値を含む、該受け取ることと、
該一次ユーザ応答に含まれる各スロットに対する少なくとも１つの候補認識値を決定するために、該一次ユーザ応答を処理することと、
該一次ユーザ応答に含まれる各スロットに、該対応する少なくとも１つの候補認識値から選択される合致値を入力することと、
該スロットセグメントのすべてのスロットが入力されるまで、該セグメントの任意の入力されていないスロットに対して、該出力すること、該受け取ること、該処理すること、および該入力すること、を繰り返すこと
を行わせる、コンピュータプログラム製品。
【請求項３０】
命令をさらに含む請求項２９に記載のコンピュータプログラム製品であって、該命令は、それが前記プロセッサによって実行されるときには、該プロセッサをして、
該一次ユーザ応答に含まれるスロットに対する前記合致スロット値を確認するおよび明確化する、のうちの少なくとも１つのためのターンを遂行させる、
コンピュータプログラム製品。
【請求項３１】
確認するおよび明確化するのうちの前記少なくとも１つは、最良の合致を黙って受け入れる、最良の合致を受動的に確認する、最良の合致を能動的に確認する、最良の合致の間のあいまいさを解消する、および認識できないことを前記ユーザに知らせる、からなるグループのうちから選択される、請求項３０に記載のコンピュータプログラム製品。
【請求項３２】
確認するおよび明確化するのうちの前記少なくとも１つは、前記一次ユーザ応答の前記スロットに対する候補認識値の数、および該候補認識値のそれぞれに対する対応する信頼性レベルに基づいて選択される、請求項３１に記載のコンピュータプログラム製品。
【請求項３３】
確認するおよび明確化するのうちの前記少なくとも１つが能動的な確認であるときには、前記ターンを遂行することは、ユーザの確認応答を、確認、取り消し、ならびに取り消しおよび訂正のうちの１つとして認識することを含み、また、該ユーザの確認応答が取り消しおよび訂正であるときには、該訂正を処理して該訂正に含まれる各スロットに対する少なくとも１つの候補認識値を決定することによって、該訂正が処理される、請求項３１に記載のコンピュータプログラム製品。
【請求項３４】
確認するおよび明確化するのうちの前記少なくとも１つが受動的な確認であるときには、前記ターンを遂行することは、ユーザの受動的な確認応答を、次の一次ヘッダプロンプトへの応答、確認、取り消し、ならびに取り消しおよび訂正のうちの１つとして認識することを含み、また、該ユーザの受動的な確認応答が取り消しおよび訂正であるときには、該訂正を処理して該訂正に含まれる各スロットに対する少なくとも１つの候補認識値を決定することによって、該訂正が処理される、請求項３１に記載のコンピュータプログラム製品。
【請求項３５】
命令をさらに含む請求項２９に記載のコンピュータプログラム製品であって、該命令は、それが前記プロセッサによって実行されるときには、該プロセッサをして、
前記スロットセグメントの入力されていない任意のスロットを有効化することであって、前記一次ヘッダプロンプトは前記セグメントの有効化されたスロットに対する値を引き出す、有効化することを行わせる、
コンピュータプログラム製品。
【請求項３６】
前記一次ユーザ応答を前記処理することは、対応するスロットに対する候補値の認識を容易にするために文法規則を適用することを含む、請求項２９に記載のコンピュータプログラム製品。
【請求項３７】
前記一次ヘッダプロンプトを前記出力することは、入力されていないセグメントのセットに依存する、請求項２９に記載のコンピュータプログラム製品。
【請求項３８】
前記出力することおよび前記受け取ることは、テキストベースおよび音声ベースのうちの１つである、請求項２９に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して音声認識システムに関する。より具体的には、コンポーネントベースの手法を使用して、特定の目的またはトピック（マルチスロット対話（ｄｉａｌｏｇ））を達成することを目的として複数の関連する情報を集めるための、ユーザとの一連の双方向交流（ｉｎｔｅｒａｃｔｉｏｎ）を構築するシステムおよび方法が開示される。
【背景技術】
【０００２】
音声認識システムは、ユーザ側の対応を大幅に変更する必要なしにサービス機能を自動化する有望な方法である。多くの会社は、従来は担当者が行っていた業務を音声認識技術を使用して自動化することにより、カスタマーサービス機能を拡張あるいは改良することを模索してきた。これを達成するためには、音声認識システムは、ユーザが自然な会話形式の発話入力を使用して、情報の要求および提供を行うことができるものである必要がある。最近、音声認識技術の特定の領域が進歩し、有用な音声認識システムを構築するうえでの従来の障害のいくつかが容易に解決されるようになった。例えば、技術の進歩により、実際の幅広い動作条件（背景ノイズや電話回線の不完全な品質など）の下で、リハーサルされてない発話入力を復号化できるようになった。さらには、最近の進歩により、音声アプリケーションは、アクセントや発話様式の異なる広範な人口のユーザの音声入力を認識できるようになった。
【０００３】
適切に構築されている音声システムであれば、顧客の受容度も高くなる。残念ながら、過去の手法を使用して効果的な音声システムを構築することは依然として難しい。
【０００４】
最も初期の手法では、音声認識エンジンのアプリケーションプログラムインタフェース（ＡＰＩ）を使用して、プログラムする必要があった。この手法は、開発者に低レベルの、認識エンジンに固有な細部（例外処理やリソース管理など）の負担を負わせた。さらに、これらのＡＰＩは特定の認識エンジンに固有であったため、構築したアプリケーションを別のプラットフォームに簡単に移植することができなかった。
【０００５】
オープン標準としての中間音声言語（ＶｏｉｃｅＸＭＬなど）の登場により、開発プロセスがやや単純化された。これらの中間音声言語では、ブラウザ（音声言語を解釈し、電話操作、音声認識、およびテキスト−音声インフラストラクチャを処理する）と、クライアントアプリケーション（ユーザ対話コード（音声言語で記述されている）を提供する）との間で、音声システムにおける処理の責任が分散される。この結果として、アプリケーション開発者は、低レベルＡＰＩに悩まされる必要はなくなったが、その代わりに、音声ブラウザによって実行されるドキュメントを生成することに関する責任が生じた。
【０００６】
しかしながら、これらの進歩をもってしても、音声アプリケーションの開発は、多くの理由のために依然として複雑である。例えば、音声アプリケーションは、（周知の）グラフィカルユーザインタフェースとは大幅に異なる新しいユーザ双方向交流モデルを提示するが、このモデルには特殊な設計と実装上の専門知識とが要求される。音声インタフェースのコンセプト（例えば、対話管理、文法の最適化、およびマルチスロットインタフェース）は、カスタム仕様の音声システムごとに手作業によって実装される。音声パラダイムの相対的な新しさを考えると、開発者の負担がさらに大きくなる。さらに、プレゼンテーション、ビジネスロジック、およびデータアクセス機能を取り扱うアプリケーションが求められる結果として、そのアーキテクチャは、静的および動的に生成されるドキュメント、バックエンド・サーブレット、文法（ｇｒａｍｍａｒ）、そのほか互いに無関係のコンポーネントが組み合わされた断片的なものとなる。
【０００７】
企業の音声アプリケーションの開発を単純化するための製品は、数多く市販されている。これらの製品の多くにおける中心的な要素は、事前に定義されておりカスタマイズ可能な音声コンポーネントのライブラリであり、そのライブラリを使用することにより、プログラマが開発する必要のあるコードの量が減少する。これら音声コンポーネントは、通常、発呼者（ｃａｌｌｅｒ）からの１つの情報（例えば、日付、時刻、金額、一連の数字、あるいは指定可能な項目のセットまたはリスト（例えば、一連の空港）のうちの１つの項目）を取得するのに必要な、音声言語コード、文法、内部コールフロー、プロンプトおよびエラーリカバリルーチンをカプセル化している。
【０００８】
この音声コンポーネントのフレームワークの大きな制限は、ユーザが１回の発話において複数の情報を提供できるようにコンポーネントを組み合わせることができないことである。例えば、フライト予約アプリケーションは、４つのコンポーネント、すなわち、出発空港、到着空港、出発日および出発時刻を使用することができる。既存のフレームワークでは、ユーザは４回の個別の発話において４つの情報を提供することができる。しかしながら、アプリケーションにおいて、ユーザが出発空港、到着空港および出発日を１回の発話において言う（例えば、「フライトは月曜日にボストンからサンフランシスコです」）ことができるようにする場合には、出発空港、到着空港および出発日のコンポーネントを単純に組み合わせることができない。そのかわりに、新しい文法、コールフロー、プロンプトなどを使用して、２つの空港と日付とを認識するための新しいコンポーネントを開発する必要がある。さらに同じ例で、アプリケーションにおいて、発呼者がいくつかの情報を保持する一方で別の情報を変更できるようにする場合（例えば、「いいえ、フライトは火曜日にオークランドまでです」）には、さらに複雑なコンポーネントを開発する必要がある。
【０００９】
これらの制限のために、既存のコンポーネントのフレームワークに依存する音声アプリケーションは、例えば図１ａに示したやりとりのように、コールフローがおおまかに予め決定されており、各ステップが１つの情報項目のみを受け入れる、強く方向付けされている対話を実施する。そのような音声システムは、柔軟性がなく、図１ｂに示したやりとりにおけるように、多くの情報を伝えすぎる発呼者にとって使いづらいことがしばしばある。その結果、これらのシステムは、情報を迅速に取得できなかったり、ユーザが情報を伝えるときのユーザの選択に合わせることができないために、使いにくく、かつ非効率的である。
【００１０】
必要とされているのは、ユーザ（例えば、発呼者）から情報を取得するために、より使いやすく、迅速かつ自然な手法を使用する音声アプリケーションである。
【発明の開示】
【課題を解決するための手段】
【００１１】
コンポーネントベースの手法を使用して、特定の目的またはトピック（マルチスロット対話）を達成することを目的として複数の関連する情報を集めるための、ユーザとの一連の双方向交流を構築するシステムおよび方法が開示される。なお、本発明は、例えば、プロセス、装置、システム、デバイス、方法、またはコンピュータ可読媒体（例えば、コンピュータ可読記憶媒体、または光通信回線または電気通信回線を通じてプログラム命令が送られるコンピュータネットワーク）を含む、極めて多くの方法で実装され得ることを理解されたい。以下では、本発明のいくつかの独創的な実施形態が説明される。
【００１２】
本方法は、一般的には、セグメントのスロットに対する値をユーザから引き出すための一次ヘッダプロンプトを出力すること、セグメントのスロットの少なくともサブセットの各スロットに対する値を含む一次ユーザ応答を受け取ること、一次ユーザ応答に含まれる各スロットに対する少なくとも１つの候補認識値を決定するために、一次ユーザ応答を処理すること、一次ユーザ応答に含まれる各スロットに、対応する候補認識値から選択される合致値を入力すること、およびスロットセグメントのすべてのスロットが入力されるまで、セグメントの入力されていないスロットに対して、出力すること、受け取ること、処理すること、入力すること、を繰り返すことを含む。
【００１３】
本方法は、合致スロット値を確認するおよび／または明確化するためのターンを、例えば、最良の合致を黙って受け入れること、最良の合致を受動的に確認すること、最良の合致を能動的に確認すること、最良の合致の間のあいまいさを解消すること、および認識できないことをユーザに知らせること、によって、遂行することを含み得る。確認および／または明確化の方法は、例えば、一次ユーザ応答のスロットに対する候補認識値の数、および候補認識値それぞれに対する対応する信頼性レベルに基づいて選択され得る。能動的な確認では、ユーザの確認応答は、確認、取り消し、または取り消しおよび訂正として認識される。取り消しおよび訂正の場合には、訂正は、その訂正に含まれる各スロットに対する少なくとも１つの候補認識値を決定することによって処理される。受動的な確認では、受動的確認プロンプトが次の一次ヘッダプロンプトと共に出力される。本方法は、スロットセグメントの入力されていないスロットを有効化することをさらに含むことができ、一次ヘッダプロンプトがセグメントの有効化されたスロットに対する値を引き出す。本方法は、テキストベースまたは音声ベースとすることができる。
【００１４】
別の実施形態においては、ユーザとのマルチスロット対話を構築および処理するシステムは、一般的に、セグメントのスロットを表すスロットオブジェクトであって、各スロットはマルチスロット対話に基づいて値を割り当てられることができる、スロットオブジェクトと、それぞれが対応する１セットのスロットオブジェクトを含む、少なくとも１つのスロットセグメントオブジェクトと、各スロットセグメントオブジェクトに対する少なくとも１セットのスロットグループオブジェクトであって、各スロットグループオブジェクトはスロットセグメントオブジェクトのスロットの特定の組合せに関連するパラメータを定義する、少なくとも１セットのスロットグループオブジェクトと、マルチスロット対話のフローを定義する対話グオブジェクトと、を含むことができる。このシステムは、オブジェクト指向のプログラミング言語において実装され得る。
【００１５】
別の実施形態によると、複数のターンを通じて複数の情報項目を取得するための、ユーザとのマルチスロット対話を構築する方法は、一般的には、少なくとも１つのスロットセグメントオブジェクトを提供することであって、各スロットセグメントオブジェクトは対応する１セットのスロットオブジェクトを含み、各スロットオブジェクトはセグメントのスロットを表し、各スロットはユーザによって提供される情報項目を表す、提供することと、各スロットセグメントオブジェクトに対する少なくとも１セットのスロットグループオブジェクトを提供することであって、各スロットグループオブジェクトはスロットセグメントオブジェクトのスロットの特定の組合せに関連するパラメータを定義する、提供することと、対話オブジェクトによって定義されるマルチスロット対話のフローを実行することと、を含むことができる。
【００１６】
本発明の上記およびその他の特徴および利点は、以下の詳細な説明および添付の図面においてさらに詳しく示される。図面は、本発明の原理を例示として示す。
【００１７】
本発明は、添付の図面を参照する以下の詳細な説明によって容易に理解される。図面において、同一の参照番号は、同一の構造要素を表す。
【発明を実施するための最良の形態】
【００１８】
コンポーネントベースの手法を使用して、特定の目的またはトピック（マルチスロット対話）を達成することを目的として複数の関連する情報を集めるための、ユーザとの一連の双方向交流を構築するシステムおよび方法が開示される。このマルチスロット対話システムおよび方法は、音声認識ベースの一連の双方向交流を実施することによって、ユーザから情報を取得する。本システムおよび本方法は、ユーザに出力されるプロンプトを決定することと、ユーザ入力（例えば、会話またはやりとりにおける各ポイントにおける発話）を認識するために利用される文法および意味規則を含んでいる。以下の説明は、任意の当業者が本発明を構築して使用することができるように提示される。具体的な実施形態およびアプリケーションの記載は単なる例示として示してあるに過ぎず、さまざまな変更が、当業者にとっては明らかである。本明細書において定義される一般的原理は、本発明の精神および範囲から逸脱することなく別の実施形態およびアプリケーションに適用され得る。従って、本発明は、本明細書に開示してある原理および特徴と矛盾しない数多くの代替形態、変更形態、および均等形態を包括する最大限の範囲が与えられるものとする。説明を簡潔にするために、本発明に関連する技術分野において公知である技術内容に関する詳細については、本発明を不必要に解りにくくすることがないように、詳しくは説明していない。
【００１９】
図２ａ〜図２ｃは、マルチスロット対話のさまざまな例を示している。マルチスロット対話は、特定の目的またはトピック（例えば、航空機の予約を確認する）を達成するために、複数の関連する情報（「スロット」）を集めることを目的としている。人間にとって便利かつ容易なユーザ双方向交流を達成するために、マルチスロット対話アプリケーションは、（ｉ）発呼者は任意の順序でスロットを提供することができる、（ｉｉ）発呼者は１回の入力（例えば、発話）において複数のスロットを提供することができる、（ｉｉｉ）発呼者は１回の発話において、アプリケーションが要求しているスロットの一部のみを提供することができる、（ｉｖ）発呼者は自身が提供したスロットの、アプリケーション側の解釈を明確化または訂正することができる、（ｖ）発呼者は以前のスロットをその後の発話において修正することができる、ことを含む、音声媒体における人間の双方向交流に典型的な挙動および双方向交流を、好適にも取り扱う。
【００２０】
これらの人間の双方向交流の要件を満たすために、対話アプリケーションは、相当に複雑な長くかつ高度なコールパスを実行することができる。しかしながら、従来の音声アプリケーションは、マルチスロット対話を実施するには適していない。詳細には、情報が提供され得る動的な順序および組合せは、あらかじめ決定されている柔軟性のないコールフローを指定する従来の音声アプリケーションの、既存のコンポーネントのフレームワークおよび開発方法によっては容易に取り扱うことができない。
【００２１】
手作業による手法ではなく、本明細書に説明するマルチスロット対話システムおよび方法が、コンポーネントベースの手法を使用してマルチスロットダイアログアプリケーションを構築するために利用され得る。このようなコンポーネントベースの手法は、例えば、順序付け、グループ化、プロンプト出力、確認、および／または修正を含む、人間と機械との間のマルチスロット交換の挙動要素のコンポーネントを有する、マルチスロット処理プロセスを自動化する。
【００２２】
図３は、説明用の音声アプリケーションシステム３００のブロック図である。このシステムは、一般的には、電話網３０２を介して音声ブラウザ３０３と通信する電話３０１を含み、音声ブラウザ３０３は、データネットワーク３０８を介して音声アプリケーション３０９と通信する。音声ブラウザ３０３は、電話網３０２および電話３０１を介して発呼者との双方向音声通信を実施するハードウェアおよびソフトウェアを含む。音声ブラウザ３０３は、音声言語で記述されるプログラムを実行することができ、このプログラムは、音声アプリケーション３０９からデータネットワーク３０８（インターネット、イントラネットなどの）を通じてドキュメントの形態で送信される。音声ブラウザ３０３および音声アプリケーション３０９は、任意の様々な好適なコンピュータシステムに属し得る。
【００２３】
音声言語は、ＶｏｉｃｅＸＭＬまたはＳｐｅｅｃｈ  Ａｐｐｌｉｃａｔｉｏｎ  Ｌａｎｇｕａｇｅ  Ｔａｇｓ（ＳＡＬＴ）などのマークアップ言語であり得る。音声ブラウザ３０３は、音声認識エンジン３０４、テキスト−音声合成器３０５、一般に利用可能な音声形式を使用して記録されたファイルを音声として再生する音声再生プレイヤー３０６、および電話網を通じた呼出しを処理するコンポーネント３０７など、さまざまなコンポーネントを含み得る。音声ブラウザ３０３のさまざまなコンポーネントの任意のものまたはそのすべてを実現することにおいて、音声アプリケーションを構築するために、市販されているコンポーネントおよび／または特許権が保持されているコンポーネントを使用することができる。
【００２４】
音声ブラウザ３０３は、着呼（ｉｎｃｏｍｉｎｇ  ｃａｌｌ）を検出し、着呼に応答し、音声アプリケーション３０９からの初期音声ドキュメントを要求し、その音声ドキュメントを解釈し、該当する音声言語の規則に従って音声ドキュメントに含まれている命令を実行する、処理を担当することができる。この場合の命令は、音声によるプロンプトをユーザに出力すること、およびユーザからの音声応答を指定されている文法を使用して処理すること、を含み得る。ユーザにプロンプトを出力するとき、音声ブラウザ３０３は、あらかじめ記録されたメッセージを音声再生プレイヤー３０６を使用して音声として再生することができ、または、テキストメッセージをテキスト−音声合成器３０５を使用して音声として再生することができる。次いで、音声ブラウザ３０３は、ユーザイベント（発話入力または呼び出しの連絡切断のような）またはシステムイベント（サブシステムの除外のような）に応答するアクション、および／または現在のドキュメントの中にまたは音声アプリケーション３０９から取得される別のドキュメントの中に定義され得るアクション、を生成することができる。
【００２５】
ここまでは、音声アプリケーションシステム３００の全体的なアーキテクチャについて説明した。以下では、音声アプリケーションシステム３００によって（例えば、音声ブラウザ３０３と音声アプリケーション３０９との組合せによって、などの）実装されるマルチスロットフレームワークについて説明する。マルチスロットの会話モードを実装しているシステムは、一般的には、より制約の少ない質問を含んだプロンプトをユーザに出力するのに対し、従来の方向付けされた会話の対話モードを実装しているシステムは、より具体的なプロンプトをユーザに出力し、より限定された応答を受け入れる。図４は、マルチスロット音声認識ベースの会話を管理するためのマルチスロットフレームワーク４０１の１つの実施形態を示している。具体的には、マルチスロットフレームワーク４０１は、ユーザからの情報を取得するためのマルチスロットモードを実施している。このフレームワーク４０１は、ビジネスロジックとスロット４０３の一組に対するデータアクセスタスクとを管理する、マルチスロットアプリケーション４０２を含み得る。本明細書においては、スロットは、その値をテキスト入力あるいは発話などのユーザ入力から取得できるデータ項目と称する。例えば、フライト予約アプリケーションは出発空港スロットを管理することができ、出発空港スロットの有効な値はフライトスケジュールデータベースの中に見出され、その値は、発話されたまたはその他の方法でユーザによって入力された時点で、予約記録に格納される必要がある。マルチスロットプラットフォーム４０４は、目的のスロットをユーザから取得するための１つ以上の音声双方向交流を構築する。
【００２６】
図５は、フライト再確認のマルチスロット対話のセグメントの例を示しており、図６は、フライト再確認のマルチスロット対話における例示的なセグメントのうちの１つ（すなわちフライト計画）の内容を示している。詳細には、マルチスロット対話はさまざまなレベルにおいてサブユニットに分解することができる。最小のレベルでは、ターン（ｔｕｒｎ）が、一方の関係者、すなわちシステムまたはユーザからの中断されない入力ストリーム（例えば、音声）である。従って、システムターンは、システムがユーザにメッセージを含んだプロンプトを出力するターンであり、ユーザターンは、ユーザが発話しシステムがその解釈を試みるターンである。交換（ｅｘｃｈａｎｇｅ）は、１つ以上のスロットに対する値をユーザから取得する一連のターンである。従って、交換は、最終的な1セットのスロット値がシステムによって受け入れられるまでの、１つ以上の確認ターン、訂正ターン、またはあいまいさ解消ターンを含み得る。セグメントは、1セットの関連するスロットを取得する一連の交換である。セグメントは、セグメントに関連付けられているすべてのスロットを１回のユーザターンにおいて提供できる、対話の最大の単位である。図６に示した例においては、５つのスロット、すなわち、出発空港、到着空港、日付、時刻、および午前／午後インジケータがフライト計画セグメントを形成しており、従って、ユーザが「明日の午前９時にサンフランシスコからボストン」と発話することによるなどの、１回のユーザターンにおいて、フライト計画セグメントの最大５つのスロットすべてが入力され得る。
【００２７】
マルチスロット対話は、単一セグメントの対話から、各セグメントが１つ以上のスロットを含む複雑なマルチセグメントの対話まで、その複雑さはさまざまに変わり得る。単一セグメント対話の１つの例は、発呼者から従業員名を要求する電話案内係アプリケーションである。それに対して、マルチセグメント対話の１つの例は、例えば図５に示したフライト再確認対話である。このフライト再確認対話は、例えば、発呼者からフライト計画（図６に示したように出発空港および到着空港と、出発の日付、時刻、および午前／午後インジケータのスロットを含み得る）を要求することができ、予約番号を要求することによって、および姓名などの個人の詳細情報を要求することによって、発呼者が本人であるかを確認することができる。
【００２８】
図７は、フライト計画対話に含まれる交換の例を示している。フライト計画セグメント７０１は、フライト計画を表す５つのスロットを含んでいる。最初の交換７０２においては、システムは、ユーザが最大で５つのスロットすべての情報または値を入力することができるように、「フライト計画をお知らせください」というプロンプトをユーザに出力することができる。ユーザは、「フライトはボストンからです」と応答することができ、任意の該当する確認／明確化ターンの後に、アプリケーションは、出発空港スロットに対する値としてボストンを受け入れる。アプリケーションは、事前に定義されているロジックに従って、例えば、次の交換７０３においては到着空港のみについてプロンプトすべきであると判定し、「お客様の目的地はどこですか」というプロンプトを出力する。ユーザの応答を処理した後に、値「サンフランシスコ」を到着空港スロットに格納する。次いで、アプリケーションは、次の交換７０４において、例えば、「フライトはいつですか？」というプロンプトを出力することによって、入力されていない残りの３つのスロットに対するプロンプトを出力することができる。「次の金曜日の午前９時３０分」というユーザの応答によって、残りの３つのスロットがすべて入力され、対話が完了する。
【００２９】
図８は、例示的なマルチスロット会話８００を示す流れ図である。ブロック８０２における交換の開始時に、音声アプリケーションシステムは、一組のスロットに対する値をユーザから引き出すための一次ヘッダプロンプトを出力する。このシステムプロンプトは、通常、複数の所望のスロットに対する値を１回のターンでユーザが提供できるように構築される。ブロック８０４において、ユーザは、出力プロンプトに応答して、一次ユーザターンをもって応答する。このユーザターンは、１つ以上のスロット値を提供し得る。ユーザターンがシステムによって認識される場合には、ブロック８０６において、複数の確認／明確化ターンが続けられ、これらのターンにおいて、システムは、オプションとして、例えば、最良の合致を黙って受け入れること、最良の合致を受動的に確認すること、最良の合致の能動的な確認を要求すること、最良の合致の間のあいまいさを解消すること、または認識できないことをユーザに知らせることができ、これらについては以下でさらに詳しく説明される。このターンからのスロット値が明示的または暗黙的に確認されると、ブロック８０８において、スロットはそれぞれの値が入力される。
【００３０】
ブロック８０２〜ブロック８０８は、１つの交換を表している。現在の交換が完了すると、システムは、決定ブロック８１０において、任意の入力されていない残りのスロットが現在のセグメントに存在しているかを判定する。現在のセグメントにおけるすべてのスロットが入力されている場合には、システムは、決定ブロック８１２において、さらなるスロットセグメントが存在しているかを判定する。すべてのセグメントにおけるすべてのスロットが入力されている場合には、マルチスロット対話８００が完了する。あるいは、現在のセグメントに入力されていないスロットが残っている場合、および／またはさらなるスロットセグメントがある場合には、対話８００は、ブロック８０２に戻って次の交換を開始する。例えば、次の交換は、入力されなかった任意の残りのスロットに対するプロンプトを出力すること（例えば、「およそ何時ですか？」）によって、前の交換の続行処理を行うこと、または、新しい１組のスロットに対するプロンプトを出力すること（例えば、「借りたい車種は何ですか？」）によって、次のスロットセグメントについて続行することができる。
【００３１】
上述したように、ユーザターンが認識される場合には、複数の確認ターンおよび／または明確化ターンが続けられ得、これらのターンにおいて、システムは、オプションとして、例えば、最良の合致の能動的な確認を要求すること、最良の合致を受動的に確認すること、最良の合致の間のあいまいさを解消すること、最良の合致を黙って受け入れること、または認識できないことをユーザに知らせることができる。確認ターンおよび明確化ターンの詳細は、図９および図１０を参照してさらに詳しく説明される。
【００３２】
詳細には、図９は、能動的な確認を使用する例示的な交換の流れ図である。能動的な確認においては、確認プロンプトがユーザに出力される（例えば、「オースティンからサンフランシスコまでと認識しました。正しいですか？」）。この確認プロンプトは、いくつかの確認サイクルがある場合には、交換中に段階的に拡大していくことができる。システムは、スロットに入力する前に、関連するスロットに対する値をユーザ明確に承諾するように要求することができる。ユーザは、取り消しフレーズ（例えば、「いいえ」、「いいえ違います」）を言うことによって、前に認識された値を取り消すことができる。さらに、より効率的な双方向交流を促進するために、システムは、オプションとして、後に訂正が続く取り消しフレーズを含むユーザによる発話（例えば、「いいえ、ボストンからサンフランシスコと言いました」）を受け入れることができる。前に認識された値をユーザが取り消す場合には、システムは、そのユーザターンにおいて認識されたスロット値のすべてを取り消して、図９に示されるように、メッセージ（例えば、「もう一度行います。お客様のフライト計画をお知らせください」）を再生し、交換をもう一度開始することができる。代替案として、システムは、ユーザターンにおいて発話されたユーザ応答を訂正として扱い、例えば「わかりました。ボストンからサンディエゴですね。正しいですか？」というプロンプトを出力することによって、確認／明確化ターンを繰り返すことができる。確認対象のスロットの一部が訂正に含まれていない場合には、システムは、そのようなスロットの前に発話された値を維持することができる。
【００３３】
図１０は、受動的な確認を使用する例示的な交換の流れ図である。受動的な確認においては、マルチスロット対話システムは、受動的な確認プロンプトと、次の交換のヘッダプロンプトとの組合せであるプロンプトを出力する。一例として、組み合わされた出力プロンプトは、例えば、「わかりました。オースティンからサンフランシスコですね。フライトはいつですか？」とすることができる。値が正しい場合には、ユーザは確認を明示的に発話する必要がないたに、この受動的な確認手法は、対話のスピードアップを容易にし、システムが高い信頼度のレベルを有するときの認識結果を確認するのに適している。受動的な確認が利用されるときには、スロットはそれぞれの値が入力され、ユーザが取り消しフレーズ（例えば、「いいえ」、「いいえ違います」）を発話したとき、または後に訂正が続く取り消しフレーズ（例えば、「違います。ボストンからサンフランシスコと言いました」）を発話したときに、入力された値は削除またはロールバックされ得る。ユーザが取り消しフレーズによって取り消しを行う場合には、システムは、前の交換において受け入れたスロット値をクリアして、プロンプト（例えば、「失礼しました、もう一度行います」）を出力し、前の交換を繰り返すことができる。代替案として、システムは、ユーザターンにおいて発話されたユーザ応答を訂正として扱い、例えば「わかりました。ボストンからサンフランシスコですね。正しいですか？」というプロンプトを出力することによって、確認／明確化ターンを繰り返すことができる。ユーザが応答において承諾フレーズ（例えば、「はい」）を発話する場合には、新しい交換のためのヘッダプロンプトが繰り返される。受動的な確認の応答においてユーザが取り消しフレーズを発した後には、能動的な確認が使用され得ることは明らかである。しかしながら、受動的な確認の応答においてユーザが取り消しフレーズを発した後には、別のタイプの確認が同様に使用され得る。次の交換が「はい／いいえ」で答えるプロンプトを含む場合には、その受動的な確認の前の受動的な確認をロールバックする機能は無効化され得る。
【００３４】
あいまいさ解消においては、システムは、上位の合致のリストを含んでいるプロンプトを出力し、例えば対応する番号によって、それらの上位の合致のうちの１つ選択することをユーザに要求する。合致のそれぞれは、１つのスロット値、または１組のスロット値を含むことができ、認識されたスロット値すべてを含む、確認プロンプトに類似するプロンプトによって提示され得る。合致が選択されるときには、対応する１つまたは複数の値は一次ユーザターンにおいてそれらが発話されたものとして扱われ、システムは確認／明確化プロセスを繰り返す。
【００３５】
システムは、認識できないことをユーザに知らせることもできる。具体的には、ユーザターンが認識されないときには、システムは例外プロンプト（「認識できませんでした」のような）を出力して、前のシステムターンまたはその修正バージョンを繰り返すことができる。
【００３６】
システムは、交換をさらに円滑にするさまざまな特徴および機能を有するように構成され得、それは図１１〜図１３を参照して以下に詳しく説明される。例えば、システムは１つの交換中にスキップリストを維持するように構成され得、スキップリストには、その交換中にユーザが確認を取り消すたびに、確認において提示された一連のスロット値に対応するスキップリストエントリが追加される。スキップリストは、同一の交換の中で、システムがスキップリストの中のエントリと合致する１セットの値を使用せず、従って再び提示しないことを確実にするのに役立つ。その代わりに、システムは次に良好な合致を、それが存在するときには、使用し得る。
【００３７】
図１１は、システムのさらに別のオプション機能、すなわち後退（ｇｏ  ｂａｃｋ）機能を含む会話の例を示す流れ図である。具体的には、ユーザは、任意のときに後退コマンド（例えば、「戻ります」）を発話し得、アプリケーションに依存して、前のターンの最初、現在の交換の最初、または現在のセグメントの最初に戻ることができる。システムが一部のスロットに入力したステップをこえて後退する場合には、それらのスロットはクリアされ得る。
【００３８】
マルチスロット対話システムは、１回の交換中に例外、訂正、または後退が閾値回数だけ起きた後には、強く方向付けされたプロンプトを適応的に提示するように構成され得る。例えば、システムは、新しい強く方向付けされたヘッダプロンプト「車を受け取る日はいつですか？例えば、明日、次の火曜日または７月２４日とおっしゃってください」を提示することができる。依然として例外、訂正、または後退が起こる場合には、システムはさらなる援助のために、ユーザを人間のオペレータにつなぐことができる。
【００３９】
図１２は、システムのさらに別のオプション機能、すなわち変更機能を含む会話の例を示す流れ図である。変更機能は、ユーザが例えば「空港を変更したい」と発話することによって、前に入力されたスロット値を変更することを可能にする。変更を要求するユーザの発話によって、変更要求に必要なスロットすべてに入力されない場合には、システムは、続行処理交換（「出発空港ですか、到着空港ですか？」のような）を開始する。変更コマンドは、オプションとして、上述した任意の確認メカニズムを使用して確認され得る。例えば、システムは「到着空港の変更を希望されたように認識しました。正しいですか？」というプロンプトを出力することによって、変更コマンドを能動的に確認することができる。
【００４０】
変更コマンドは、ユーザの現在の交換を取り消し、前に入力されたスロット値の少なくとも一部をクリアする。次いで、新しい交換が開始され、それは１つ以上の交換において入力することのできるクリアされたスロットについてのプロンプトをユーザに出力する。クリアされたスロットが入力されると、システムは処理を続行し、前のいくつかの交換と関連付けられているスロットに依然として入力されている場合には、それらの交換をバイパスすることになる。
【００４１】
図１３は、システムのさらに別のオプション機能、すなわち確認機能を含む会話の例を示す流れ図である。詳細には、ユーザは要求フレーズ（「出発日を確認できますか？」のような）を発話することによって、前に入力されたスロット値の確認を要求できる。システムは確認コマンドに応答して、入力されているスロット値を再生（「フライトは２００２年８月９日金曜日です」のように）し、現在の交換に戻る。確認要求に必要なすべてのスロットに対する値をユーザが提供しない場合には、システムは続行処理交換（「出発日ですか帰着日ですか？」のような）を開始する。
【００４２】
（マルチスロット対話の実装）
次に、マルチスロット対話を実装する例示的なシステムまたはプラットフォームが説明される。本明細書においては、マルチスロット対話を実装するプラットフォームは、単なる一例として、Ｊａｖａ（登録商標）を利用して実装するものとして説明される。しかしながら、本システムは、任意の適したプログラミング言語、好ましくはオブジェクト指向のプログラミング言語（例えば、Ｊａｖａ（登録商標）、Ｃ＋＋）を使用して実装され得ることを理解されたい。システムは、一般的には、スロットオブジェクト、スロットグループオブジェクト、セグメントオブジェクト、および対話オブジェクトを含む。以下では、これらのオブジェクトのそれぞれが説明される。
【００４３】
スロットオブジェクトは、上述したように、ユーザから取得される情報項目であるスロットを表す。スロットオブジェクトは、対応するスロットに対してユーザによって提供され得る候補値を認識する文法、文法の認識結果をそのスロットの意味値にマッピングする規則、ならびにそのスロットの有効状態および入力状態を示す変数（他の状態変数の中で）を含む。スロットオブジェクトは、基本のデフォルト機能および／またはすべてのスロットオブジェクトに共通する機能を提供する、Ｊａｖａ（登録商標）インタフェースをベースとすることができる。
【００４４】
対応するスロットに対してユーザによって提供され得る候補値を認識する文法は、スロットの候補値を表現するためにシステムが受け入れる、発話の正式な規格（ｓｐｅｃｉｆｉｃａｔｉｏｎ）である。文法は、使用できる単語の語彙およびそれらの単語を並べるための有効な構造を含み得る。例えば、日付スロットに対する文法は、絶対的な指定形式（「２００４年１月１２日」のような）から、相対的な形式（「次の金曜日」のような）および日常語（「今日」、「昨日」のような）にいたるまでの、さまざまな日付形式が認識されるようにする必要がある。また、文法は、ユーザの発話におけるスロット値の前および／または後に置かれ得る補足フレーズ（ｆｉｌｌｅｒ）を含み得るが、補足フレーズは、１つのスロット値を規定したり別の値と区別したりすることはない。例えば、空港スロットは、先行する補足フレーズとして「出発地は」を有し得る。一部の文法は、フライト予約アプリケーションにおける指定可能な空港に対する文法のように、アプリケーションに高度に固有のものであり得る。別の文法は、例えば、日付、時刻、または金額に対する文法のように、アプリケーション間で共通に使用され得る。これらの文法の共通部分は、文法オブジェクトの中にあらかじめ定義され得、特定のスロットに対してカスタマイズされ得る。
【００４５】
文法の規則に加えて、各スロットオブジェクトは、文法の認識結果を、その特定のアプリケーションにおいて意味のある対応するスロットの意味値にマッピングする規則をも含んでいる。例えば、到着空港スロットオブジェクトは、「サンフランシスコ」、「サンフランシスコ空港」、「サンフランシスコ国際空港」および「ＳＦＯ」という発話を、「ＳＦＯ」という１つの空港識別子にマッピングすることができる。別の例として、日付スロットオブジェクトは、「明日」という発話を、現在の日付の翌日の日付として計算される日付値にマッピングすることができる。
【００４６】
各スロットオブジェクトは、またマルチスロット対話の実行中に使用される複数の状態変数またはフラグを維持し、これらは、対応するスロットの有効状態および入力状態を（他の状態変数の中で）示す。フラグの例は、有効フラグ、オプションフラグ、入力済みフラグ、保留中フラグを含む。詳細には、有効フラグは、次のユーザターンにおいてスロットが受け入れ可能であることを示すときに、真（ｔｒｕｅ）に設定される。オプションフラグは、ユーザによって有効なスロットが必ずしも明示的に提供される必要のない場合に、真に設定される。入力済みフラグは、任意の該当する確認／明確化の後にスロット値が受け入れられたときに、真に設定される。保留中フラグは、スロットに対する値がユーザによって認識されたが、まだ受け入れられていない（例えば、確認が保留されている）場合に、真に設定される。
【００４７】
システムは、各スロットセグメントに対してスロットグループオブジェクトを維持し、その例は、図１４および図１５において、フライト計画セグメントに対して示されている。各スロットグループオブジェクトは、スロットセグメントにおけるスロットの特定のグループまたは組合せと関連付けられるパラメータまたはプロパティを定義する。スロットグループのプロパティの例は、プロンプト（ヘッダまたはメインプロンプト、ヘルププロンプト、エラープロンプト、確認プロンプトおよび／またはあいまいさ解消プロンプトのような）と、認識プロパティ、すなわち認識挙動に影響する変数（タイムアウト、認識閾値、認識パラメータ、キャッシング方式、その他、のような）とを含む。異なるスロットグループクラス（例えば、それぞれ、図１４および図１５に示された、認識前スロットグループクラス、および認識後スロットグループクラス）が、個別のプロパティセットを維持するために定義され得る。
【００４８】
具体的には、図１４は、フライト計画セグメントの認識前スロットグループクラスに対して可能なスロットグループオブジェクトの一部を示している。認識前スロットグループクラスは、スロット値が認識される前に使用されるプロンプトおよび認識プロパティ（ヘッダまたはメインプロンプト、ヘルププロンプト、合致なしプロンプト、入力なしプロンプト、タイムアウト、信頼度閾値、その他、などの）を含み得る。認識前スロットグループクラスが使用されるときには、通常、スロットの組合せが、現在有効なスロットのセットと比較される。
【００４９】
図１５は、フライト計画セグメントの認識後スロットグループクラスに対して可能なスロットグループオブジェクトの一部を示している。認識後スロットグループクラスは、スロット値が認識された後に使用されるプロンプトおよび認識プロパティ（能動的な確認プロンプト、あいまいさ解消プロンプト、受動的な確認プロンプト、その他、などの）を含み得る。認識後スロットグループクラスが使用されるときには、通常、スロットの組合せが、現在保留中のスロットのセット、すなわちユーザから認識されたがまだ確認されていないスロットと比較される。
【００５０】
マルチスロット対話の中のあるポイントにおいて、プロンプトまたは認識プロパティなどのパラメータが必要とされるときには、システムは、そのパラメータを含むスロットグループクラスから最も合致するスロットグループオブジェクトを識別し、識別された最も合致するスロットグループオブジェクトの中で、所望のパラメータの値を探索する。例えば、マルチスロット対話の中のあるポイントにおいて、システムが現在有効なスロットの組合せ（例えば、日付、時刻、および午前−午後）におけるスロットに対する値をユーザから引き出すために、ヘッダプロンプトが必要である場合には、システムは、図１４における認識前スロットグループクラスから最も合致するスロットグループオブジェクトを識別する。システムは、そのスロットの組合せが現在有効なスロットの組合せに最も近い、スロットグループオブジェクトを選択する。最も近いスロットの組合せは、さまざまな好適な方法（例えば、スロットグループオブジェクトにおける重複しているスロットの最大数、重複していないスロットの最小数、または、有効なグループにおける重複していないスロットの最小数）を利用して決定され得る。本例においては、システムは、図１４に示された認識前スロットグループクラスの中のスロットグループオブジェクトのうちで、スロットの組合せが、現在有効なスロットの組合せ（すなわち、日付、時刻、および午前−午後）に正確に一致しているスロットグループオブジェクトを識別して使用する。しかしながら、正確に合致しているスロットグループオブジェクトが見つからない場合には、最も近いとみなされる別のグループオブジェクト、例えば２つのスロットの組合せ（時刻スロットおよび午前−午後スロットのような）を持つグループオブジェクトが識別され使用され得る。有効なスロットの任意の組合せに対してスロットグループを必ず見つけることができるように、システムは、スロットセグメントの各スロットに対して、個別のスロットグループオブジェクトを定義することができる。
【００５１】
システムは、またセグメントオブジェクトを含む。セグメントオブジェクトは、スロットセグメントにおける１セットのスロットを維持し、それは１つ以上の連続する一連のマルチスロット交換を決定する。１つのスロットセグメントにおけるスロットに対する値は、１回の交換においてユーザから取得され得る。代替案としては、ユーザがセグメントの中のすべてのスロットに対す値を１回の交換において提供しない場合には、必須のスロット、すなわちオプションではないスロットすべてに入力されるまで、続行処理交換が開始される。セグメントが完全に入力されると、次のセグメントが（存在時には）呼び出される。
【００５２】
システムは、対話フローを定義する対話オブジェクトをさらに含む。マルチスロット対話のそれぞれが異なる機能を実行できるが、各対話の対話フローは、一般的には共通の構造を持つ。図１６は、例示的なダイアログフローの構造を示すブロック図である。システムがブロック１６０１において対話を開始した後、システムはブロック１６０２において対話における最初のセグメントを取得する。システムは、ブロック１６０３において、例えば、まだ入力されていないスロットを含めることによって、そのセグメントの中の有効にすべきスロットを決定する。ブロック１６０４において、最も近い認識前スロットグループが選択され、ヘッダプロンプトおよびその他の認識前パラメータ（ヘルププロンプト、例外プロンプトなどの）を取得する。ヘッダプロンプトは、通常、ユーザが複数の所望のスロットを１回の発話においてが提供できるように構築される。例えば、スロットが、日付スロット、時刻スロット、および子午線（午前／午後）スロットを含む場合には、プロンプトは「いつ車を受け取りますか？」とすることができる。次いで、システムは、ブロック１６０５において、ユーザの応答を受け取って処理し、この処理は、例えば、１セットのスロット値がシステムによって受け入れられるまで、ユーザの意図する単語列の最良の推定を音声認識エンジンから取得し、アプリケーションのカスタム設定に基づいて任意の所望の確認、明確化またはあいまいさ解消を実行することによってなされる。
【００５３】
次いで、システムは、決定ブロック１６０６において、入力されるべきさらなるスロット（通常では、値がまだ入力されていないスロットを含む）がスロットセグメントに含まれているかを判定する。なお、システムは、決定ブロック１６０６において、入力されるべきさらなるスロットがスロットセグメントに含まれているかを判定するときに、アプリケーションに固有なロジックとして、一部のスロット値は別のスロット値から自動的に入力され得、または入力される必要があること、一部のスロットはオプションであること、または他の受け入れられたスロットに対する値の結果として、特定の追加のスロットが入力される必要があること、を指定するロジックを適用できる。決定ブロック１６０６において、一部のスロットが入力されずに残っていると判定された場合には、システムはブロック１６０３に戻り、次のスロットのセットを有効化する。残っていないと判定された場合には、システムは、決定ブロック１６０７に進み、さらなるスロットセグメントが存在しているかを判定する。少なくとも１つ以上のさらなるスロットセグメントが残っている場合には、システムはブロック１６０８において次のセグメントを取得し、ブロック１６０３に戻る。あるいは、スロットセグメントが残っていない場合には、ブロック１６１０において対話が終了する。
【００５４】
ユーザの入力を処理するときには、システムは、通常モードまたは受動的な確認モードであり得る。受動的な確認モードは、何らかのあらかじめ定義されている基準に基づいて、ユーザの応答を受動的に確認すべきであるとシステムが判定するときに起動される。そのような一連の基準の１つとして、音声エンジンによって戻される信頼性レベルが、黙って受け入れる場合の閾値よりも低いが、能動的な確認が要求される閾値よりも高い場合とすることができる。受動的な確認モードが起動されない場合には、システムはデフォルトによって通常モードになり得る。図１７は、通常モードにおけるユーザの入力の例示的な処理を示す流れ図であり、図１８は、受動的な確認モードにおけるユーザの入力の例示的な処理を示す流れ図である。通常モードか受動的なモードかの判定は、例えば、それにユーザの応答が対応するスロットのセットに対する信頼性レベルの加重値または平均値に基づくことができる。複数のスロットに対する値が含まれているユーザ応答を処理するときには、例えば、ユーザ応答におけるすべてのスロットに対する１回の判定によるか、あるいは、ユーザ応答における各スロットに対して個別に判定し、それら個別の結果の平均値または加重値によって判定することができる。
【００５５】
図１７に示された通常モードにおいては、ブロック１７０１において、音声エンジンがユーザの入力を認識し、１つ以上の推定を戻す。決定ブロック１７０２の判定において、いくつかの合致候補が音声エンジンによって戻される場合には、ブロック１７０８において、それらの合致候補のあいまいさが解消され得る。例えば、ユーザに上位の合致候補のリストを提示し、１つを選択するように求めることができる。各合致候補は、確認プロンプトに類似するあいまいさ解消プロンプトによって提示され得る。ブロック１７０９において、ユーザによって選択された合致値が受け取られ処理されると、システムは、ブロック１７１０において次の交換に進む。
【００５６】
代替案としては、決定ブロック１７０２の判定において、音声エンジンによって１つのみの推定、すなわち最良の合致が戻される場合には、システムは、決定ブロック１７０３において、その１つの推定の信頼性レベルが、あらかじめ定義されている高信頼性閾値に等しいかまたはそれよりも大きいかを判定する。高信頼性レベルが高信頼性閾値に等しいかまたはそれよりも大きい場合には、システムは、そのスロット値を受け入れて、ブロック１７０７において、受動的な確認モードに入る。あるいは、高信頼性レベルが高信頼性閾値よりも小さい場合には、システムは、ブロック１７０４において確認プロンプトを出力することによって、その最良の合致を能動的に確認する。例えば、システムは、認識後スロットグループクラスの中のスロットグループのうち、その最良の合致におけるスロットのグループに最も近いスロットグループを識別し、それに対応する能動的な確認プロンプトを取得することによって、確認プロンプトを構築することができる。ブロック１７０５において、確認プロンプトへのユーザの応答が受け取られ、処理される。ユーザが取り消しフレーズ（例えば、「いいえ」、「違います」）を発話することによって確認を取り消し、訂正を提供する場合には、訂正された値は確認のためにブロック１７０４に戻り得る。ユーザが訂正せずに確認を取り消す場合には、ブロック１７０６において、現在の交換が繰り返される。言い換えれば、任意の保留中のスロット値は破棄またはクリアされ、システムは最初に再生したヘッダプロンプトを繰り返す。ユーザが、例えば「はい」または「そうです」などのフレーズを発話することによって確認を受け入れる場合には、システムはスロット値を受け入れて、ブロック１７１０において次の交換に進む。
【００５７】
図１８に示された受動的な確認モードにおいては、１つの交換からの確認プロンプトが、次の交換のヘッダプロンプトと組み合わされる。組み合わせたプロンプトは、例えば「わかりました。ボストンですね。フライト日はいつですか？」とすることができる。次いで、ブロック１８０１において、ユーザの応答は音声エンジンによって認識される。決定ブロック１８０２での判定において、ユーザの応答が受け入れフレーズまたは取り消しフレーズで始まっていない（すなわち先頭が「はい」または「いいえ」ではない）場合には、そのユーザの応答は、上述した通常モードの場合と同様に処理される。あるいは、決定ブロック１８０２での判定において、ユーザの応答が受け入れフレーズまたは取り消しフレーズで始まっている場合には、前のスロット値が影響される。ユーザの応答が肯定応答である場合には、ブロック１８０３において、新しい交換に対するヘッダプロンプト（例えば、「フライト日はいつですか？」）が単純に繰り返され得る。ユーザ応答が否定応答であり訂正が含まれない場合には、システムは、前の交換において受け入れたスロット値をクリアし、ブロック１８０４において、「失礼しました、もう一度行います」などのメッセージを再生し、前の交換を繰り返すことができる。ユーザ応答が否定応答であり訂正が含まれる場合には、ブロック１８０５において、前の交換のスロットが明示的に受け入れられる、または取り消されるまで、訂正された値は明示的に確認される。
【００５８】
本システムでは、一次ユーザターンの間に、ユーザは１つ以上の有効スロットに対する値を提供することができる。従って、一次ユーザターンの文法は、スロットのさまざまな柔軟な組合せを認識するように柔軟に構成される必要がある。例えば、図１９は、３つのスロットが含まれる交換の場合の可能な文法を示している。この図のそれぞれの分岐は、ユーザの発話に合致しうる文法規則を表す。参照番号１９０１、１９０２、１９０３は、それぞれスロット１、２、３に対する文法を表している。最初の分岐において、スロット２およびスロット３に対応する文法１９０２および文法１９０３のそれぞれに付されている接尾辞演算子「？」は、スロット２およびスロット３がオプションであり、この最初の分岐においては、ユーザの発話はスロット１の値を、またオプションとしてスロット２の値を含み、また、スロット２の値が存在する場合にはオプションとしてスロット３の値を含むことを示している。なお、使用される言語の規準（ｎｏｒｍ）と特定の交換のコンテキストとに応じて、スロットの許容される組合せ（あるスロットは別のスロットの前に位置しなくてはならない、などの）を、アプリケーション側で制限することができることに注意するべきである。
【００５９】
本システムでは、確認ターンの間に、ユーザは確認を受け入れるかまたは取り消すことができるのみならず、訂正値を提供することができる。従って、確認ターンに対する文法は、受け入れ文法および取り消し文法と、確認対象のスロットに対する文法が含まれるように構築される必要があり、図２０は確認ターンに対する文法の例を示している。受け入れ文法２００１は、肯定応答を表す一組のフレーズ（「はい」、「正しいです」および「そうです」などの）を含む。取り消し文法２００２は、否定応答を表す一組のフレーズ（「いいえ」、「違います」および「正しくありません」などの）を含む。取り消し文法が存在する場合には、取り消されたスロットに対する新しい値を認識するオプションの訂正文法２００３が含まれる。
【００６０】
本明細書においては本発明の例示的な実施形態が記載され示されているが、これらは単に説明のためのものであり、本発明の精神および範囲から逸脱することなくこれらの実施形態に対して変更がなされ得ることが理解される。例えば、本明細書に説明したマルチスロットシステムおよび方法は、音声認識システムを使用しての音声双方向交流に好適であるが、このマルチスロットシステムおよび方法は、テキストベースのマルチスロット双方向交流（双方向的インターネットベースのマルチスロット対話）による使用に対してもまた適合され得る。従って、本発明の範囲は、補正される場合を含む「特許請求の範囲」のみによって定義されるものであり、各請求項は、本発明の実施形態として「発明を実施する最良の形態」の中に明示的に援用される。
【図面の簡単な説明】
【００６１】
【図１】図１ａおよび図１ｂは、従来の音声アプリケーションを使用する、強く方向付けされた対話の例を示す。
【図２】図２ａ、図２ｂおよび図２ｃは、マルチスロット対話のさまざまな例を示す。
【図３】例示的なマルチスロット音声アプリケーションシステムのブロック図である。
【図４】マルチスロット音声認識ベースの会話を管理するフレームワークの一実施形態を示す。
【図５】フライト再確認のマルチスロット対話に対するセグメントの例を示す。
【図６】図５のフライト再確認のマルチスロット対話における１つの例示的なセグメント、すなわちフライト計画の内容を示す。
【図７】フライト計画対話に含まれる交換の例を示す。
【図８】例示的なマルチスロット対話のさまざまなステップを示す流れ図である。
【図９】能動的な確認を使用する例示的な交換の流れ図である。
【図１０】受動的な確認を使用する例示的な交換の流れ図である。
【図１１】マルチスロット対話システムの後退機能を利用する会話の例を示す流れ図である。
【図１２】マルチスロット対話システムの変更機能を利用する会話の例を示す流れ図である。
【図１３】マルチスロット対話システムの確認機能を利用する会話の例を示す流れ図である。
【図１４】フライト計画セグメントの認識前スロットグループクラスに対する可能なスロットグループオブジェクトの一部を示す。
【図１５】フライト計画セグメントの認識後スロットグループクラスに対する可能なスロットグループオブジェクトの一部を示す。
【図１６】例示的な対話のフロー構造を示すブロック図である。
【図１７】通常確認モードにおけるユーザ入力の例示的な処理を示す流れ図である。
【図１８】受動的確認モードにおけるユーザ入力の例示的な処理を示す流れ図である。
【図１９】３つのスロットが含まれる交換に対する可能な文法を示す。
【図２０】受け入れ文法および取り消し文法と、確認対象の３つのスロットに対する文法とを含む、確認交換に対する可能な文法を示す。
【図１】
2008506156.tif 000003
【図２】
2008506156.tif 000004
【図３】
2008506156.tif 000005
【図４】
2008506156.tif 000006
【図５】
2008506156.tif 000007
【図６】
2008506156.tif 000008
【図７】
2008506156.tif 000009
【図８】
2008506156.tif 000010
【図９】
2008506156.tif 000011
【図１０】
2008506156.tif 000012
【図１１】
2008506156.tif 000013
【図１２】
2008506156.tif 000014
【図１３】
2008506156.tif 000015
【図１４】
2008506156.tif 000016
【図１５】
2008506156.tif 000017
【図１６】
2008506156.tif 000018
【図１７】
2008506156.tif 000019
【図１８】
2008506156.tif 000020
【図１９】
2008506156.tif 000021
【図２０】
2008506156.tif 000022
【国際調査報告】
2008506156.tif 000023