(57)【要約】【課題】  音声対話装置において、シナリオの追加や修正が容易な音声対話シーケンス状態表記方法を提供する。【解決手段】  シナリオ解析部６は音声ガイダンスを音声入出力受付部１に、対話シーケンス名とスロット状態（空スロット、未確定スロット、確定スロット、逐次確認中スロット）をデータ入出力受付部２に出力し、音声入出力受付部１からの音声ガイダンスに対応するユーザの音声入力に対して音声認識部５に指示して適切な音声認識文法にて音声認識処理を行わせ、その音声認識結果に応じて音声対話シナリオの状態を遷移させると共に、音声対話再開時にはデータ入出力受付部２より出力された対話シーケンス名およびスロット状態によって音声対話を再開する。【選択図】  図１
2006053470.tif 000002
【特許請求の範囲】
【請求項１】
音声対話装置において行なわれる音声対話シーケンス状態表現方法であって、
ユーザとの音声対話で所定の目的を達成するために必要な各情報に対してスロットを割り当て、
音声対話開始から所定の目的の達成に至るまでの各音声入力に応じてスロットに情報を格納するとともに、
該スロットの中に情報が格納されていない状態である空スロット、該スロットの中に情報は格納されているが、該情報はユーザが確認して確定していない状態である未確定スロット、該スロットの中に格納された情報がユーザに確認、確定された状態である確定スロット、複数のスロットに対してユーザが同時に音声入力を行なった際に、ユーザが認識結果が正しくないと言った場合に各スロットの情報を確認中である逐次確認中スロットの４つの状態で各スロットの状態を管理することにより、音声対話シーケンスの状態をスロット状態と一意に関連づけて表現する、
音声対話シーケンス状態表記方法。
【請求項２】
前記スロット状態は、入力可能スロット数未満のスロットが確定した場合に、確定済みのスロットだけで次のシーケンスに進めるかどうかをユーザに確認する制御状態コードをさらに含む、請求項１に記載の方法。
【請求項３】
前記シーケンスのある状態での様々な定義済みの入力に対して受理可または受理否の２状態のみを取る状態遷移表を持つ、請求項１または２に記載の方法。
【請求項４】
前記定義済み入力は、同一種別のスロットに対して、単一入力、ＯＲ入力、ＡＮＤ入力、部分指定訂正入力、訂正入力、ＡＮＹ入力、ＹＥＳ入力、ＮＯ入力である、請求項３記載の方法。
【請求項５】
前記定義済み入力は、異なる種別のスロットに対して、単一入力、ＯＲ入力、ＡＮＤ入力、部分指定訂正入力、訂正入力、ＡＮＹ入力、ＹＥＳ入力、ＮＯ入力である、請求項３記載の方法。
【請求項６】
受理可能な入力に対して変化したスロットの状態によって、音声対話シーケンスの遷移先を一意に確定させる、請求項１から５のいずれかに記載の方法。
【請求項７】
前記スロット状態および対話シーケンス名のみを記憶することで、対話シーケンスの中断復帰を可能とする、請求項１から６のいずれかに記載の方法。
【請求項８】
音声対話装置であって、
ユーザに対して音声ガイダンスを出力し、またユーザから該音声ガイダンスに応答した音声入力を受付ける音声入出力受付部と、
入力された対話シーケンス名とスロット状態をユーザに出力し、また音声対話シーケンスの再開時にユーザから入力された対話シーケンス名とスロット状態を受付けるデータ入出力受付部と、
音声対話を制御する際に用いる音声対話シナリオを音声対話シーケンスごとに格納しているシナリオＤＢと、
音声認識文法を格納している認識辞書ＤＢと、
入力された音声に対して、前記認識辞書ＤＢに格納されている、指定された音声認識文法を用いて音声認識処理を行ない、その音声認識結果を出力する音声認識部と、
対話シーケンス名とスロット状態を前記データ入出力受付部に出力し、該音声ガイダンスに対応して前記音声入出力部に入力された、ユーザの音声入力に対して前記音声認識部に、指示した音声認識文法にて音声認識処理を行なわせ、その音声認識結果に応じて、前記シナリオＤＢに格納されている音声対話シナリオの状態を遷移させると共に、音声対話再開時には前記データ入出力受付部より出力された対話シーケンス名およびスロット状態によって音声対話を再開するシナリオ解析部と
を有し、
前記スロットの状態は、該スロットの中に情報が格納されていない状態である空スロット、該スロットの中に情報は格納されているが、該情報はユーザが確認して確定していない状態である未確定スロット、該スロットの中に格納された情報がユーザに確認、確定された状態である確定スロット、複数のスロットに対してユーザが同時に音声入力を行なった際に、ユーザが認識結果が正しくないといった場合に、各スロットの情報を確認中である逐次確認中スロットの４つの状態である
音声対話装置。
【請求項９】
請求項１から７までのいずれかに記載の音声対話シーケンス状態表記方法をコンピュータで実行するためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は音声対話装置に関し、特に対話シーケンスの状態の表記方法に関する。
【背景技術】
【０００２】
従来のＣＴＩ（Ｃｏｍｐｕｔｅｒ  Ｔｅｌｅｐｈｏｎｙ  Ｉｎｔｅｇｒａｔｉｏｎ）などの音声対話システムでは、対話自体をプログラムとして記述する例が多い。各音声入力に対して、応答処理をコードで書き下ろすことにより、様々な記述が可能なのが特徴である。
【０００３】
また、ＶｏｉｃｅＸＭＬ（ｅＸｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）では、各状態毎にスクリプトを記述し、ブラウザがそれを解析することで、対話処理を行っている（非特許文献１）。ＶｏｉｃｅＸＭＬでは、可読性の高いＸＭＬを活用することで、コンテンツ生産性の向上を狙っている。
【非特許文献１】ＦＩＴ（情報科学技術フォーラム）２００３，Ｆ−００６，ＰＰ．２１５−２１６
【発明の開示】
【発明が解決しようとする課題】
【０００４】
音声ポータルやカーナビゲーション装置などのユビキタス環境からの情報アクセスにおいては、音声対話インタフェースが提供されることが多くなってきている。将来的に様々な音声サービスの追加や状況に応じた音声サービスの修正を適宜行うためには、音声対話シナリオ作成・修正の容易性が必要となる。しかし、従来の状態遷移を記述する技術では、音声入力に対する応答や状態遷移をプログラムとしてコーディングしていたり、ＶｏｉｃｅＸＭＬなどでは一状態毎にシナリオを書き下ろしているため、専門的なプログラミングスキルが必要であったり、一部の修正がプログラム全体に及ぼす影響を推定することが困難（些細なサービスの修正を行うために、プログラム全体の多数箇所の修正が必要）であったりした。
【０００５】
また、カーナビゲーション装置のように高速移動環境での利用においては、センタサーバとクライアント端末との回線が切断されることがある。従来のｗｅｂを用いたテレマティクスサービスでは、ｃｏｏｋｉｅを利用することでユーザＩＤなどのパラメータ保持を行ってはいるが、状態遷移の管理は行っておらず、再接続時にはメインメニュー（トップメニュー）から再び階層をたどることが必要となっている。また、ＣＴＩなどの音声対話システムにおいても、ＶｏｉｃｅＸＭＬなどを用いることによって記述の容易性は高めているが、依然、状態ごとにＸＭＬファイルを切り替えているために再接続時の状態復帰を十分にサポートしているとは言い難い。
【０００６】
本発明の目的は、シナリオの追加や修正が容易な、音声対話シーケンス状態表記方法および音声対話装置を提供することにある。
【課題を解決するための手段】
【０００７】
本発明は、音声対話シーケンス（音声対話をある目的に利用するために、音声対話開始時から目的が達成された状態に至るまでの音声のやりとり）の状態を、目的を達成するために必要な情報が格納されているスロットの状態と一意に関連づけて表現するものである。
【０００８】
ここで、スロットの状態は、スロットの中に情報が格納されていない状態である「空スロット」、スロットの中に情報は格納されているが、該情報はユーザが確認して確定していない状態である「未確定スロット」、スロットの中に格納された情報がユーザに確認、確定された状態である「確定スロット」、複数のスロットに対してユーザが同時に音声入力を行なった際に、ユーザが認識結果が正しくないと言った場合に、各スロットの情報を確認中である「逐次確認中スロット」の４つの状態をとる。
【０００９】
音声対話シーケンスをスロット状態で表すことで、シナリオ追加や修正の容易性と、再接続時の状態復帰が可能となる。
【発明の効果】
【００１０】
本発明では、音声対話シーケンスの状態を２ビット（＝４状態）のスロット状態で表すことで、音声入力の受理可否を１ビットで記述可能、かつ遷移先状態もスロット状態で一意に確定する。従って、網羅性に優れ、状態遷移図に記述できる内容はすべて正常系であると共に、記述できない内容は受理しないため基本的に異常系という概念がなく、対話シーケンスの構築およびメンテナンスが非常に容易になると言う効果がある。
【００１１】
また、本対話シーケンスは、スロット状態にのみ対話状態が依存するため、対話シーケンス名とスロット状態を保持するだけで、再開処理が可能となるため、複雑な再開処理やフロー再生を必要とせずに必要十分な再開処理の実装が容易になると言う効果がある。
【発明を実施するための最良の形態】
【００１２】
次に、本発明の実施の形態について図面を参照して説明する。
【００１３】
図１は本発明の一実施形態の音声対話装置の構成図である。本実施形態の音声対話装置はと音声入出力受付部１とデータ入出力受付部２とシナリオＤＢ３と認識辞書ＤＢ４と音声認識部５とシナリオ解析部６を有している。
【００１４】
音声入出力受付部２は、シナリオ解析部６から出力された音声ガイダンスをユーザの端末装置７に出力し、またユーザが音声ガイダンスに対して端末装置７から入力した音声入力を受付け、シナリオ解析部６に出力する。データ入出力受付部２はシナリオ解析部６から出力された対話シーケンス名とスロット状態をユーザの端末装置７に出力し、また音声対話シーケンスの再開時などに端末装置７から入力された対話シーケンス名とスロット状態をシナリオ解析部６に出力する。シナリオＤＢ３には、シナリオ解析部６が音声対話を制御する際に用いる音声対話シナリオが音声対話シーケンス毎に格納されている、認識辞書ＤＢ４は、音声認識部５が音声認識する際に用いる認識文法を格納している。音声認識部５は、シナリオ解析部６から出力された音声に対して、シナリオ解析部６から指定された音声認識文法を用いて音声認識処理を行い、その認識結果をシナリオ解析部６に出力する。シナリオ解析部６は、音声ガイダンスを音声入出力受付部１に、対話シーケンス名とスロット状態（空スロット、未確定スロット、確定スロット、逐次確認中スロット）をデータ入出力受付部２に出力し、音声入出力受付部１からの該音声ガイダンスに対応するユーザの音声入力に対して、音声認識部５に指示して適切な音声認識文法にて音声認識処理を行わせ、その音声認識結果に応じてシナリオＤＢ３中の音声対話シナリオの状態を遷移させると共に、音声対話再開時にはデータ入出力受付部２より出力された対話シーケンス名およびスロット状態によって音声対話を再開する。
【００１５】
［第１の実施形態］
シナリオ記述例
本発明のシナリオ記述例を図２に示す。
【００１６】
以下、流れに沿って説明する。
【００１７】
初期状態はシナリオが受け付け可能なスロット個数のＸが並んだ状態とする。図２のシナリオでは、店舗の種類スロット数を２としているため、初期状態はＸＸとなる。音声入出力受付部１は、シナリオ記述のＧｕｉｄａｎｃｅに定義された文字列をガイダンスとしてユーザに対し読み上げ処理を行う。この状態で受理可能な入力に対してはシナリオ記述欄に１を、受理不能な入力に対してはシナリオ記述欄に０が記入されている。
【００１８】
例えば、図２のシナリオにおいて、お店の種類として、「和食」「洋食」「中華」が受理可能であるとする。その場合、このシナリオが受理可能な入力と発声例との比較は下記の通りである。
ＳＬａ：和食
ＳＬａ  ＳＬａ：和食か洋食
ＳＬａ  ＮＯＴ  ＳＬａ：洋食ではなくて中華
ＮＯＴ  ＳＬａ：そうじゃなくて洋食
ＡＮＹ：なんでもよい
ＹＥＳ：はい
ＮＯ：いいえ
初期状態ＸＸ
初期状態ＸＸでは、音声入出力受付部１は「お店の入力は」というガイダンスを流し、Ｓｅｃ１＿ＸＸ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。なお、Ｓｅｃ１＿ＸＸ．ｂｎｆは認識が受理可能な語彙をＢＮＦ文法によって記述したファイルのファイル名であり、例えば図３に示すような記述となる。図２に示すシナリオでは、初期状態ＸＸにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＳＬａ｜ＳＬａ  ＳＬａ｜ＡＮＹ）が受理可能となる。なお、「戻る」という入力については、シナリオ解析部６において前状態をスタック保持するため、シナリオに記述はせず、シナリオ解析部６において解析・処理される。
【００１９】
初期状態ＸＸにおいて「和食」と入力された場合、Ｓｅｃ１＿ＸＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿和食”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたとみなす。そして、音声認識部５からの返値の内容（カテゴリ“ＦＯＯＤ＿”を除いたもの）によってスロットＸの前方よりスロットを埋める。この場合、全てのスロットが空のため、一番目のスロットＸに“和食”がセットされる。ここで、スロットＸの“和食”は音声認識の誤認識などを考えるとユーザの確認が行われていない未確認入力の状態である。従って、一番目のスロットＸはスロットＹとなり、二番目のスロットＸは変化がないため、状態ＹＸに遷移することになる。
【００２０】
また、初期状態ＸＸにおいて「和食か洋食」と入力された場合、Ｓｅｃ１＿ＸＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿和食”，“ＯＲ”，“ＦＯＯＤ＿洋食”｝という値が返る。シナリオ解析部６は二つのスロットに対して入力があると判断し、［ＳＬａ  ＳＬａ］の入力がなされたとみなす。そして、スロットＸの前方よりスロットを埋める。この場合、全てのスロットが空のため、一番目のスロットＸに“和食”が、二番目のスロットＸに“洋食”がセットされる。ここで、スロットＸの“和食”およびスロットＸの“洋食”はユーザの確認が行われていない未確認入力の状態である。従って、一番目のスロットＸはスロットＹとなり、二番目のスロットＸはスロットＹとなり、状態ＹＹに遷移することになる。
【００２１】
また、初期状態ＸＸにおいて「何でも良い」と入力された場合、Ｓｅｃ１＿ＸＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＡＮＹ”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＡＮＹ］の入力がなされたと見なす。そして、スロットＸの前方よりスロットを埋める。この場合、全てのスロットが空のため、一番目のスロットＸに“ＡＮＹ”がセットされる。ここで、スロットＸの“ＡＮＹ”は未確認入力の状態である。従って、一番目のスロットＸはスロットＹとなり、二番目のスロットＸは変化がないため、状態としてスロットＹＸに遷移することになる。
【００２２】
状態ＹＸ
状態ＹＸでは、一つのスロットが未確認情報で埋まった状態となる。そこで、未確認情報を確認し確定情報とする対話を行う。音声入出力受付部１は「入力は和食でよろしいですか」といったガイダンスを流し、Ｓｅｃ１＿ＹＸ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。図２に示すシナリオでは、状態ＹＸにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＳＬａ｜ＳＬａ  ＳＬａ｜ＳＬａ  ＮＯＴ  ＳＬａ｜ＮＯＴ  ＳＬａ｜ＡＮＹ｜ＹＥＳ｜ＮＯ）が受理可能となる。
【００２３】
状態ＹＸで「洋食」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿洋食”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定または空のスロットの前方よりスロットを埋める。この場合、一番目のスロットＹが未確定であり、既にスロットＹに入っている値“和食”と異なった入力“洋食”受理されたため、スロットＹの内容が“洋食”がセットされる。従って、スロット状態はＹＸとなり、同じ状態ＹＸに戻り「入力は洋食でよろしいですか」というガイダンスとなる。
【００２４】
なお、状態ＹＸで「和食」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿和食”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定または空のスロットの前方よりスロットを埋める。この場合、一番目のスロットＹが未確定であり、既にスロットＹに入っている値“和食”と同じ入力が受理されたため、スロットＹの内容はそのまま“和食”がセットされ、同じ状態ＹＸに戻り「入力は和食でよろしいですか」というガイダンスが繰り返されることになる。
【００２５】
状態ＹＸで「洋食か中華」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿洋食”，“ＯＲ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は、二つのスロットに対して入力があると判断し、［ＳＬａ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定または空のスロットの前方よりスロットを埋める。この場合、一番目のスロットＹが未確定であり、また入力“洋食”、“中華”とは異なった値“和食”がセットされているため、一番目のスロットＹの内容が“洋食”がリセットされ、二番目のスロットＸは空のため、スロットＸの内容が“中華”にセットされる。従って、一番目のスロットＹはスロットＹとなり、二番目のスロットＸはスロットＹとなり、状態ＹＹに遷移することになる。
【００２６】
また、状態ＹＸで「和食か洋食」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿和食”，“ＯＲ”，“ＦＯＯＤ＿洋食”｝という値が返る。シナリオ解析部６は、二つのスロットに対して入力があると判断し、［ＳＬａ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定または空のスロットの前方よりスロットを埋める。この場合、一番目のスロットＹが未確定であり、また入力“和食”と同じ値がセットされているため、スロットＹの内容は“和食”で保持され、二番目のスロットＸは空のため、スロットＸの内容が“洋食”にセットされる。従って、スロットＹはスロットＹとなり、スロットＸはスロットＹとなり、状態ＹＹに遷移することになる。
【００２７】
状態ＹＸで、「和食ではなくて洋食」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿和食”，“ＮＯＴ”，“ＦＯＯＤ＿洋食”｝という値が返る。シナリオ解析部６は、一つのスロットに対して修正入力があると判断し、［ＳＬａ  ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定のスロットＹの値“和食”を参照し、それを修正入力値である“洋食”にリセットする。従って、スロットＹはスロットＹとなり、スロットＸはそのままとなり、状態ＹＸに遷移することになる。
【００２８】
状態ＹＸで、「そうじゃなくて洋食」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯＴ”，“ＦＯＯＤ＿洋食”｝という値が返る。シナリオ解析部６は、一つのスロットに対して修正入力があると判断し、［ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定のスロットＹの値“和食”を参照し、それを修正入力値である“洋食”にリセットする。従って、スロットＹはスロットＹとなり、スロットＸはそのままとなり、状態ＹＸに遷移することになる。
【００２９】
状態ＹＸで、「なんでもよい」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＡＮＹ”｝という値が返る。シナリオ解析部６は、一つのスロットに対して入力があると判断し、［ＡＮＹ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定のスロットＹの値“和食”を参照し、入力値“ＡＮＹ”と異なるためそれを修正入力値である“ＡＮＹ”にリセットする。従って、スロットＹはスロットＹとなり、スロットＸはそのままとなり、状態ＹＸに遷移することになる。
【００３０】
状態ＹＸで、「はい」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＹＥＳ”｝という値が返る。シナリオ解析部６は、確認ガイダンスに対して受諾意志の入力があると判断し、［ＹＥＳ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定のスロットＹの値が確定スロットＸとなり、スロットＸはそのままとなり、スロット状態はＺＸとなる。ここで、スロット数＝２に対して、決定スロット＝１が下回るため、この入力だけでよいか確認するシーケンスに遷移する。これは、ＺＸに遷移して良いか確認する（ｃｏｎｆｉｒｍａｔｉｏｎ）ということから、状態ＺＸＣとする。従って、状態ＹＸで、「はい」と入力された場合、状態ＺＸＣに遷移することになる。但し、受諾されたＹが“ＡＮＹ”の場合は、スロット状態をＺＺ＝｛“ＡＮＹ”，“ＡＮＹ”｝とし、Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔを実行する。
【００３１】
状態ＹＸで、「いいえ」と入力された場合、Ｓｅｃ１＿ＹＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯ”｝という値が返る。シナリオ解析部６は、確認ガイダンスに対して拒否意志の入力があると判断し、［ＮＯ］の入力がなされたと見なす。現状のスロット状態はＹＸであるため、未確定のスロットＹの値が空スロットＸとなり、二番目のスロットＸはそのままとなり、状態ＸＸに遷移することになる。
【００３２】
状態ＹＹ
状態ＹＹでは、二つのスロットが未確認情報で埋まった状態となる。そこで、未確認情報を確認し確定情報とする対話を行う。音声入出力受付部１は「入力は和食と洋食でよろしいですか」といったガイダンスを流し、Ｓｅｃ１＿ＹＹ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。図２に示すシナリオでは、状態ＹＹにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＳＬａ｜ＳＬａ  ＳＬａ｜ＳＬａ  ＮＯＴ  ＳＬａ｜ＮＯＴ  ＳＬａ｜ＡＮＹ｜ＹＥＳ｜ＮＯ）が受理可能となる。ここでは、状態ＹＹの受理可能入力と状態ＹＸの受理可能入力が完全に同一のため、認識文法はＳｅｃ１＿ＹＸ．ｂｎｆと同一となる。
【００３３】
状態ＹＹで「中華」と入力された場合、Ｓｅｃ１＿ＹＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＹであるため、未確定スロットである一番目のＹおよび二番目のＹの値を抹消し、入力値“中華”によって前方よりスロットを埋める。従って、状態ＹＸに遷移することとなる。
【００３４】
状態ＹＹで「洋食か中華」と入力された場合、Ｓｅｃ１＿ＹＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿洋食”，“ＯＲ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は二つのスロットに対して入力があると判断し、［ＳＬａ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＹであるため、未確定スロットである一番目のＹおよび二番目のＹの値を抹消し、入力値“洋食”と“中華”によって前方よりスロットを埋める。従って、同じ状態ＹＹに遷移することとなる。
【００３５】
状態ＹＹで「和食ではなくて中華」と入力された場合、Ｓｅｃ１＿ＹＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿和食”，“ＮＯＴ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して修正入力があると判断し、［ＳＬａ  ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＹであるため、未確定スロットである一番目のＹおよび二番目のＹの値と修正対象入力“和食”の値を比較し、該当する一番目のスロットＹの値を“中華”に変更する。また、二番目のスロットＹの値は変更はない。従って、同じ状態ＹＹに遷移することとなる。
【００３６】
状態ＹＹで「そうではなくて中華」と入力された場合、Ｓｅｃ１＿ＹＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯＴ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は修正入力があると判断し、［ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＹＹであるため、未確定スロットである一番目のＹおよび二番目のＹの値を抹消し、入力値“中華”によって前方よりスロットを埋める。従って、スロット状態はＹＸとなり、状態ＹＸに遷移することとなる。
【００３７】
状態ＹＹで「なんでもよい」と入力された場合、Ｓｅｃ１＿ＹＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＡＮＹ”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＡＮＹ］の入力がなされたと見なす。現状のスロット状態はＹＹであるため、未確定スロットである一番目のＹおよび二番目のＹの値を抹消し、入力値“ＡＮＹ”によって前方よりスロットを埋める。従って、スロット状態はＹＸとなり、状態ＹＸに遷移することとなる。
【００３８】
状態ＹＹで「はい」と入力された場合、Ｓｅｃ１＿ＹＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＹＥＳ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して受諾意志の入力があると判断し、［ＹＥＳ］の入力がなされたと見なす。現状のスロット状態はＹＹであるため、一番目の未確定スロットＹが確定スロットＺになり、二番目の未確定スロットＹが確定スロットＺとなり、状態としては状態ＺＺに相当する。ここで、スロット数＝２と同数のスロットが確定スロットとなったため、スロットを埋めるという、本対話シーケンスの目的は達成された。そこで、Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔに記述された処理を実行することとなる。
【００３９】
状態ＹＹで「いいえ」と入力された場合、Ｓｅｃ１＿ＹＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して拒否意志の入力があると判断し、［ＮＯ］の入力がなされたと見なす。現状のスロット状態はＹＹであり、複数の未確定スロットが存在するため、逐次確認処理に遷移する。そこで逐次確認状態をＷと定義し、状態ＷＷに遷移する。
【００４０】
状態ＷＷ
状態ＷＷでは、二つのスロットが要逐次確認情報で埋まった状態となる。そこで、未確認情報を逐次確認し確定情報とする対話を行う。音声入出力受付部１は「最初の入力は和食でよろしいですか」といったガイダンスを流し、Ｓｅｃ１＿ＷＷ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。図２に示すシナリオでは、状態ＷＷにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＳＬａ｜ＳＬａ  ＳＬａ｜ＳＬａ  ＮＯＴ  ＳＬａ｜ＮＯＴ  ＳＬａ｜ＡＮＹ｜ＹＥＳ｜ＮＯ）が受理可能となる。ここでは、状態ＷＷの受理可能入力と状態ＹＸの受理可能入力が完全に同一のため、認識文法はＳｅｃ１＿ＹＸ．ｂｎｆと同一となる。
【００４１】
状態ＷＷで「中華」と入力された場合、Ｓｅｃ１＿ＷＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＷＷであるため、確認中の一番目の未確定スロットＷの値“和食”を入力値“中華”によってリセットする。“中華”は未確定状態のため、再び確認するシーケンスに移ることとなり、状態ＷＷに遷移することとなる。
【００４２】
状態ＷＷで「洋食か中華」と入力された場合、Ｓｅｃ１＿ＷＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿洋食”，“ＯＲ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は二つのスロットに対して入力があると判断し、［ＳＬａ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＷＷであるため、逐次確認中の一番目の未確定スロットＷおよび二番目の未確定スロットＷの値を抹消し、入力値“洋食”と“中華”によって前方よりスロットを埋める。従って、状態ＹＹに遷移することとなる。
【００４３】
状態ＷＷで「和食ではなくて中華」と入力された場合、Ｓｅｃ１＿ＷＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿和食”，“ＮＯＴ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して修正入力があると判断し、［ＳＬａ  ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＷＷであるため、逐次確認中未の一番目の確定スロットＷの値を“中華”に変更する。“中華”は未確定状態のため、再び確認するシーケンスに移ることとなり、状態ＷＷに遷移することとなる。
【００４４】
状態ＷＷで「そうではなくて中華」と入力された場合、Ｓｅｃ１＿ＷＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯＴ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は修正入力があると判断し、［ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＷＷであるため、逐次確認中の一番目の未確定スロットＷの値を抹消し、入力値“中華”によってスロットＷを埋める。“中華”は未確定状態のため、再び確認するシーケンスに移ることとなり、状態ＷＷに遷移することとなる。
【００４５】
状態ＷＷで「なんでもよい」と入力された場合、Ｓｅｃ１＿ＷＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＡＮＹ”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＡＮＹ］の入力がなされたと見なす。現状のスロット状態はＷＷであるため、逐次確認中の一番目の未確定スロットＷを入力値“ＡＮＹ”によってリセットする。従って、スロット状態はＷＷとなり、状態ＷＷに遷移することとなる。
【００４６】
状態ＷＷで「はい」と入力された場合、Ｓｅｃ１＿ＷＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＹＥＳ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して受諾意志の入力があると判断し、［ＹＥＳ］の入力がなされたと見なす。現状のスロット状態はＷＷであるため、逐次確認中の一番目の未確定スロットＷが確定スロットＺになり、状態ＺＷに遷移することとなる。
【００４７】
状態ＷＷで「いいえ」と入力された場合、Ｓｅｃ１＿ＷＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して拒否意志の入力があると判断し、［ＮＯ］の入力がなされたと見なす。現状のスロット状態はＷＷであるため、逐次確認中の一番目の未確定スロットＷが空スロットＸになり、スロットの状態はＸＷとなるが、確定情報（Ｚ）→未確認情報（Ｙ，Ｗ）→空（Ｘ）、の順でスロットをソートするというルールに従い、ＸとＷが入れ替わり、スロット状態はＷＸとなり状態ＷＸに遷移することとなる。
【００４８】
状態ＷＸ
状態ＷＸでは、一つのスロットについて逐次確認を行う状態となる。音声入出力受付部１は「次の入力は洋食でよろしいですか」といったガイダンスを流し、Ｓｅｃ１＿ＸＷ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。シナリオでは、状態ＷＸにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＳＬａ｜ＳＬａ  ＳＬａ｜ＳＬａ  ＮＯＴ  ＳＬａ｜ＮＯＴ  ＳＬａ｜ＡＮＹ｜ＹＥＳ｜ＮＯ）が受理可能となる。ここでは、状態ＷＸの受理可能入力と状態ＹＸの受理可能入力が完全に同一のため、認識文法はＳｅｃ１＿ＹＸ．ｂｎｆと同一となる。
【００４９】
状態ＷＸで「中華」と入力された場合、Ｓｅｃ１＿ＸＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＷＸであるため、確認中の未確定スロットＷの値“洋食”を入力値“中華”に変更する。従って、スロット状態はＹＸとなり、状態ＹＸに遷移することとなる。
【００５０】
状態ＷＸで「洋食か中華」と入力された場合、Ｓｅｃ１＿ＸＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿洋食”，“ＯＲ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は二つのスロットに対して入力があると判断し、［ＳＬａ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＷＸであるため、逐次確認中未確定スロットＷの値を抹消し、入力値“洋食”と“中華”によって前方よりスロットを埋める。従って、状態ＹＹに遷移することとなる。
【００５１】
状態ＷＸで「洋食ではなくて中華」と入力された場合、Ｓｅｃ１＿ＸＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿洋食”，“ＮＯＴ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して修正入力があると判断し、［ＳＬａ  ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＷＸであるため、逐次確認中未確定スロットＷの値と入力“洋食”を比較し、それを“中華”に変更する。従って、スロット状態はＹＸとなり、状態ＹＸに遷移することとなる。
【００５２】
状態ＷＸで「そうではなくて中華」と入力された場合、Ｓｅｃ１＿ＸＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯＴ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は修正入力があると判断し、［ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＷＸであるため、逐次確認中未確定スロットＷの値を抹消し、入力値“中華”によってスロットＷを埋める。従って、スロット状態はＹＸとなり、状態ＹＸに遷移することとなる。
【００５３】
状態ＷＸで「なんでもよい」と入力された場合、Ｓｅｃ１＿ＸＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＡＮＹ”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＡＮＹ］の入力がなされたと見なす。現状のスロット状態はＷＸであるため、逐次確認中の未確定スロットＷの値を抹消し、入力値“ＡＮＹ”によってスロットを埋める。従って、スロット状態はＹＸとなり、状態ＹＸに遷移することとなる。
【００５４】
状態ＷＸで「はい」と入力された場合、Ｓｅｃ１＿ＸＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＹＥＳ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して受諾意志の入力があると判断し、［ＹＥＳ］の入力がなされたと見なす。現状のスロット状態はＷＸであるため、逐次確認中の未確定スロットＷが確定スロットＺになり、スロット状態はＺＸとなる。ここで、二つの入力可能スロット数に対して、それ未満のスロットが確定した状態となる、そこで、状態ＹＸにおいて「はい」と入力された場合と同様に、この入力だけでよいか確認するシーケンスに遷移する。これは、ＺＸに遷移して良いか確認する（ｃｏｎｆｉｒｍａｔｉｏｎ）ということから、状態ＺＸＣとする。従って、状態ＷＸで、「はい」と入力された場合、状態ＺＸＣに遷移することとなる。
【００５５】
状態ＷＸで「いいえ」と入力された場合、Ｓｅｃ１＿ＸＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して拒否意志の入力があると判断し、［ＮＯ］の入力がなされたと見なす。現状のスロット状態はＷＸであるため、逐次確認中の未確定スロットＷが空スロットＸになり、状態ＸＸに遷移することとなる。
【００５６】
状態ＺＷ
状態ＺＷでは、一つのスロットについて逐次確認を行う状態となる。音声入出力受付部１は「次の入力は洋食でよろしいですか」といったガイダンスを流し、Ｓｅｃ１＿ＺＷ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。図２に示すシナリオでは、状態ＺＷにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＳＬａ｜ＳＬａ  ＮＯＴ  ＳＬａ｜ＮＯＴ  ＳＬａ｜ＡＮＹ｜ＹＥＳ｜ＮＯ）が受理可能となる。
【００５７】
状態ＺＷで「中華」と入力された場合、Ｓｅｃ１＿ＺＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＺＷであるため、確認中の未確定スロットＷの値“洋食”を入力値“中華”に変更する。従って、状態ＺＷに遷移することとなる。
【００５８】
状態ＺＷで「洋食ではなくて中華」と入力された場合、Ｓｅｃ１＿ＺＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿洋食”，“ＮＯＴ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して修正入力があると判断し、［ＳＬａ  ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＺＷであるため、逐次確認中未確定スロットＷの値と入力“洋食”を比較し、それを“中華”に変更する。従って、状態ＺＷに遷移することとなる。
【００５９】
状態ＺＷで「そうではなくて中華」と入力された場合、Ｓｅｃ１＿ＺＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯＴ”，“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は修正入力があると判断し、［ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＺＷであるため、逐次確認中未確定スロットＷの値を抹消し、入力値“中華”によってスロットＷを埋める。従って状態ＺＷに遷移することとなる。
【００６０】
状態ＺＷで「なんでもよい」と入力された場合、Ｓｅｃ１＿ＸＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＡＮＹ”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＡＮＹ］の入力がなされたと見なす。現状のスロット状態はＺＷであるため、逐次確認中未確定スロットＷの値を抹消し、入力値“ＡＮＹ”によってスロットＷを埋める。従って状態ＺＷに遷移することとなる。
【００６１】
状態ＺＷで「はい」と入力された場合、Ｓｅｃ１＿ＺＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＹＥＳ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して受諾意志の入力があると判断し、［ＹＥＳ］の入力がなされたと見なす。現状のスロット状態はＺＷであるため、逐次確認中の未確定スロットＷが確定スロットＺになり、スロット状態はＺＺとなり、状態としては状態ＺＺに相当する。ここで、スロット数＝２と同数のスロットが確定スロットとなったため、スロットを埋めるという、本対話シーケンスの目的は達成された。そこで、Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔに記述された処理を実行することとなる。
【００６２】
状態ＺＷで「いいえ」と入力された場合、Ｓｅｃ１＿ＺＷ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して拒否意志の入力があると判断し、［ＮＯ］の入力がなされたと見なす。現状のスロット状態はＺＷであるため、逐次確認中の未確定スロットＷが空スロットＸになる。従って、スロット状態はＺＸとなり二つの入力可能スロット数に対して、それ未満のスロットが確定した状態となる。そこで、状態ＹＸにおいて「はい」と入力された場合と同様に、この入力だけでよいか確認するシーケンスに遷移する。これは、ＺＸに遷移して良いか確認する（ｃｏｎｆｉｒｍａｔｉｏｎ）ということから、状態ＺＸＣとする。従って、状態ＸＷで、「はい」と入力された場合、状態ＺＸＣに遷移することになる。
【００６３】
状態ＺＸＣ
状態ＺＸＣでは、入力可能スロット数未満のスロットが確定された場合に、確定された情報だけで本対話シーケンスを完了するかどうか確認を行う状態となる。音声入出力受付部１は「入力は和食だけでよろしいですか」といったガイダンスを流し、Ｓｅｃ１＿ＺＸＣ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。図２に示すシナリオでは、状態ＺＸＣにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＹＥＳ｜ＮＯ）が受理可能となる。
【００６４】
状態ＺＸＣで「はい」と入力された場合、Ｓｅｃ１＿ＺＸＣ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＹＥＳ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して受諾意志の入力があると判断し、［ＹＥＳ］の入力がなされたと見なす。現状のスロット状態はＺＸＣであるため、本対話シーケンスの目的は達成されたと見なし、Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔに記述された処理を実行することとなる。
【００６５】
状態ＺＸＣで「いいえ」と入力された場合、Ｓｅｃ１＿ＺＸＣ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して拒否意志の入力があると判断し、［ＮＯ］の入力がなされたと見なす。現状のスロット状態はＺＸＣであるため、未確定の空スロットＸを確定するシーケンスに移行する。すなわち、状態ＺＸＣで「いいえ」が入力された場合、状態ＺＸに遷移することになる。
【００６６】
状態ＺＸ
状態ＺＸでは、入力可能スロット数未満のスロットが確定された場合に、残りの空スロットに情報を入力する状態となる。音声入出力受付部１は「もう一つのお店の種類は」といったガイダンスを流し、Ｓｅｃ１＿ＺＸ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。図２に示すシナリオでは、状態ＺＸにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＳＬａ｜ＡＮＹ）が受理可能となる。
【００６７】
状態ＺＸで「中華」と入力された場合、Ｓｅｃ１＿ＺＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿中華”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＺＸであるため、空スロットＸに入力値“中華”を格納する。従って、状態ＺＹに遷移することとなる。
【００６８】
状態ＺＸで「なんでもよい」と入力された場合、Ｓｅｃ１＿ＺＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＡＮＹ”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＡＮＹ］の入力がなされたと見なす。現状のスロット状態はＺＸであるため、空スロットＸの値を抹消し、入力値“ＡＮＹ”によってスロットを埋める。従って、状態ＺＹに遷移することとなる。
【００６９】
状態ＺＹ
状態ＺＹでは、入力可能スロット数未満のスロットが確定された場合に、残りの空スロットに入力された情報を確認する状態となる。音声入出力受付部１は「中華でよろしいですか」といったガイダンスを流し、Ｓｅｃ１＿ＺＹ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。図２に示すシナリオでは、状態ＺＹにおいて受理可能な入力は欄に１が記入された入力であり、この場合は（ＳＬａ｜ＳＬａ  ＮＯＴ  ＳＬａ｜ＮＯＴ  ＳＬａ｜ＡＮＹ｜ＹＥＳ｜ＮＯ）が受理可能となる。
【００７０】
状態ＺＹで「洋食」と入力された場合、Ｓｅｃ１＿ＺＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿洋食”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＺＹであるため、未確定スロットＹの値を入力値“洋食”に変更する。従って、同じ状態ＺＹに遷移することとなる。
【００７１】
状態ＺＹで「中華ではなくて洋食」と入力された場合、Ｓｅｃ１＿ＺＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＦＯＯＤ＿中華”，“ＮＯＴ”，“ＦＯＯＤ＿洋食”｝という値が返る。シナリオ解析部６は一つのスロットに対して修正入力があると判断し、［ＳＬａ  ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＺＹであるため、修正対象“中華”に該当する未確定スロットＹの値を入力値“洋食”に変更する。従って、同じ状態ＺＹに遷移することとなる。
【００７２】
状態ＺＹで「そうではなくて洋食」と入力された場合、Ｓｅｃ１＿ＺＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯＴ”，“ＦＯＯＤ＿洋食”｝という値が返る。シナリオ解析部６は一つのスロットに対して修正入力があると判断し、［ＮＯＴ  ＳＬａ］の入力がなされたと見なす。現状のスロット状態はＺＹであるため、未確定スロットＹの値を入力値“洋食”に変更する。従って、同じ状態ＺＹに遷移することとなる。
【００７３】
状態ＺＹで「なんでもよい」と入力された場合、Ｓｅｃ１＿ＺＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＡＮＹ”｝という値が返る。シナリオ解析部６は一つのスロットに対して入力があると判断し、［ＡＮＹ］の入力がなされたと見なす。現状のスロット状態はＺＹであるため、未確定スロットＹの値を抹消し、入力値“ＡＮＹ”によってスロットを埋める。従って、同じ状態ＺＹに遷移することとなる。
【００７４】
状態ＺＹで「はい」と入力された場合、Ｓｅｃ１＿ＺＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＹＥＳ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して受諾意志の入力があると判断し、［ＹＥＳ］の入力がなされたと見なす。現状のスロット状態はＺＹであるため、スロット状態はＺＺとなり本対話シーケンスの目的は達成されたと見なし、Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔに記述された処理を実行することとなる。但し、受諾されたＹが以下の場合には異なる処理が行われる。
・Ｙ＝Ｚの場合
スロット内容がマージされるため、スロット状態はＺＸとなる。従って、入力可能スロット数未満のスロットが確定した状態となり、状態ＺＸＣに遷移することとなる。
・Ｙ＝“ＡＮＹ”の場合
確定済みのＺと内容が競合するが、確定済みの内容を優先するとし、Ｚ＝“和食”であった場合、スロット状態をＺＺ＝｛“和食”，''''｝とし、Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔを実行する。
【００７５】
状態ＺＹで「いいえ」と入力された場合、Ｓｅｃ１＿ＺＹ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＮＯ”｝という値が返る。シナリオ解析部６は確認ガイダンスに対して拒否意志の入力があると判断し、［ＮＯ］の入力がなされたと見なす。現状のスロット状態はＺＹであるため、未確定スロットＹが空スロットＸとなる。従って、入力可能スロット数未満のスロットが確定した状態となり、状態ＺＸＣに遷移することとなる。
【００７６】
Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔについて
Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔは、対話シーケンスＳｅｃ１が完了した場合に実行されるスクリプトである。ここには、検索処理実行方法や、検索後に起動する対話シーケンス名が記載される。Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔの記述例を図４に示す。例えば、対話シーケンス（Ｓｅｃ１）にて、“和食”と“洋食”が確定した場合、ＤＢアクセスとして、“ｓｅｌｅｃｔ * ｆｒｏｍ  ｔａｂｌｅ  ｗｈｅｒｅ  ＳＬａ＝“和食”｜ＳＬａ＝“洋食””というＳＱＬが呼ばれ、その返値の配列＠Ｒｅｓｕｌｔが次の対話シーケンス（Ｓｅｃ２）に渡され、Ｓｅｃ２が起動される。
【００７７】
［第２の実施形態］
切断・再開処理の実施形態について説明する。
【００７８】
本発明の対話シーケンスはスロット状態にのみ依存するため、スロットの状態を指定することで中断復帰の動作は容易に実施可能となる。
【００７９】
例えば、状態ＹＹにおいて、｛“和食”，“洋食”｝が入力され、その確認ガイダンス中（「和食と洋食でよろしいですか」）の状態で中断された場合、端末装置７は対話シーケンス名Ｓｅｃ１と状態ＹＹおよび｛“和食”，“洋食”｝を記憶する。接続再開時に、端末装置７は音声対話装置に対し、対話シーケンス名Ｓｅｃ１と状態ＹＹおよび｛“和食”，“洋食”｝を送信する。音声対話装置のシナリオ解析部６は対話シーケンスＳｅｃ１を状態ＹＹおよびスロット値｛“和食”，“洋食”｝で呼び出して実行することで、切断前の状態に復帰可能となる。
【００８０】
［第３の実施形態］
複数種別のスロットが存在する場合の実施形態を説明する。
【００８１】
例えば、駐車場検索において、現在地からの距離と料金を用いて「８００ｍ以内で５００円／Ｈ以下」といった検索する場合を考える。この場合、距離と料金は別カテゴリの入力となるため、それぞれに対して別の入力ＩＤ、ＳＬａおよびＳＬｂを付与すると共に、カテゴリ毎に利用可能なスロット数を指定する。図６に示すシナリオ例では、ＳＬａ｛ＤＩＳＴＡＮＣＥ｝＝１，ＳＬｂ｛ＰＲＩＣＥ｝＝１となる。複数カテゴリ、複数スロットであれば、ＳＬａ＝２，ＳＬｂ＝１，ＳＬｃ＝３となり、初期状態はＸＸＸＸＸＸと表記されることとなる。
【００８２】
駐車場検索における状態遷移表例の一部を図６に示す。距離および料金はそれぞれ０以上１未満のスロットに対して入力可能であるため、初期状態はＸＸとなる。
【００８３】
状態ＸＸ
初期状態ＸＸでは、「距離または料金は」というガイダンスを流し、図７に示すＳｅｃ２＿ＸＸ．ｂｎｆを音声認識部５にセットしてユーザの入力を待つ。
【００８４】
初期状態ＸＸにおいて「８００ｍ以内」と入力された場合、Ｓｅｃ２＿ＸＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＤＩＳＴＡＮＣＥ＿８００ｍ”｝という値が返る。シナリオ解析部６は距離に関する一つのスロットに対して入力があると判断し、［ＳＬａ］の入力がなされたとみなす。そして、スロットＸの前方よりスロットを埋める。この場合は、距離に関する一番目のスロットＸに“８００ｍ”がセットされ、スロット状態はＹとなる。従って、状態ＹＸに遷移することになる。
【００８５】
初期状態ＸＸにおいて、「５００円以下」と入力された場合、Ｓｅｃ２＿ＸＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＰＲＩＣＥ＿５００円”｝という値が返る。シナリオ解析部６は料金に関する一つのスロットに対して入力があると判断し、［ＳＬｂ］の入力がなされたとみなす。そして、料金に関する二番目のスロットＸの前方よりスロットを埋める。この場合は、スロットＸｂに“８００ｍ”がセットされ、スロット状態はＹとなる。従って、状態ＸＹに遷移することになる。
【００８６】
初期状態ＸＸにおいて、「８００ｍ以内で５００円以下」と入力された場合、Ｓｅｃ２＿ＸＸ．ｂｎｆに従い、音声認識部５からシナリオ解析部６へは｛“ＤＩＳＴＡＮＣＥ＿８００ｍ”，“ＰＲＩＣＥ＿５００円”｝という値が返る。シナリオ解析部６は距離と料金に関してそれぞれ一つのスロットに対して入力があると判断し、［ＳＬａ  ＳＬｂ］の入力がなされたとみなす。そして、距離に関する一番目のスロットＸの前方より距離に関する入力値“８００ｍ”を埋め、料金に関する二番目のスロットＸの前方より料金に関する入力値“５００円”を埋める。従って、状態ＹＹに遷移することになる。その後の処理ルールは第１の実施形態と同様のルールに従う。
【００８７】
［第４の実施形態］
受理可能な入力はシナリオ毎に設定されるものであり、図２や図６に示したものの他に、以下のような入力も考えられる。
・［ＳＬａ  ＳＬａ  ＮＯＴ  ＳＬａ  ＳＬａ］
２つのスロットに｛“和食”，“洋食”｝が入っているＹＹ状態において、「和食と洋食ではなくて中華とイタリア料理」という入力がこれに相当する。
・［ＮＯＴ  ＳＬａ  ＳＬａ］
２つのスロットに｛“和食”，“洋食”｝が入っているＹＹ状態において、「そうではなくて中華かイタリア料理」という入力がこれに相当する。
【００８８】
［第５の実施形態］
図２や図６で示したシナリオ例では、「和食でよろしいですか」や「洋食だけでよろしいですか」といった確認シーケンスが含まれている。しかし、シナリオが使われる状況によっては、これら確認シーケンスをスキップすることが必要となる場合もある。その場合は、図８に示す状態に対してＳｋｉｐ属性を付与する。シナリオ解析部６はＳｋｉｐ属性を持つ状態に対して、スロットＹはＺとして確定させると共に、ＺＸＣのようにＣを持つ状態についてはＺＸに無条件に遷移させる。
【００８９】
［第６の実施形態］
図２に示したシナリオ例では、入力可能なスロット数より少ないスロット数が確定した状態で、確定スロットだけで検索など次の処理に進むか確認するＺＸＣなどの状態では、「Ｓｌｏｔ［１］だけでＯＫ」というガイダンスにより、［ＹＥＳ］であればシナリオ完了と見なし、［ＮＯ］であれば、不足スロットを入力する状態（ＺＸ）に遷移する。しかし、ガイダンスとして、「もう一つの条件を入力しますか」といったものを設定した場合、［ＹＥＳ］、［ＮＯ］の持つ意味が正反対となる。そこで、［ＹＥＳ］、［ＮＯ］に関してＺＸＣと正反対の遷移先となるＺＸＤを定義する。
【００９０】
ＹＸなどで［ＹＥＳ］入力でＹが確定した場合、シナリオ解析部６は最初に状態ＺＸＣを検索し、見つからない場合には状態ＺＸＤを検索する。状態ＺＸＤにおいては、［ＹＥＳ］入力が状態ＺＸへの遷移を意味し、［ＮＯ］入力が状態ＺＺと同様に次の処理に進むことを意味する。
【００９１】
なお、本発明は専用のハードウェアにより実現されるもの以外に、その機能を実現するためのプログラムを、コンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行するものであってもよい。コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク、光磁気ディスク、ＣＤ−ＲＯＭ等の記録媒体、コンピュータシステムに内蔵されるハードディスク装置等の記憶装置を指す。さらに、コンピュータ読み取り可能な記録媒体は、インターネットを介してプログラムを送信する場合のように、短時間の間、動的にプログラムを保持するもの（伝送媒体もしくは伝送波）、その場合のサーバとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含む。
【図面の簡単な説明】
【００９２】
【図１】本発明の一実施形態の音声対話装置の構成図である。
【図２】食事検索の状態遷移表の例を示す図である。
【図３】Ｓｅｃ１＿ＸＸ．ｂｎｆの記述例を示す図である。
【図４】Ｓｅｃ１＿ＹＸ．ｂｎｆの記述例を示す図である。
【図５】Ｓｅｃ１＿ＺＺ．ｓｃｒｉｐｔの記述例を示す図である。
【図６】駐車場検索の状態遷移表の例を示す図である。
【図７】Ｓｅｃ２＿ＸＸ．ｂｎｆの記述例を示す図である。
【図８】スキップを含むシナリオの例を示す図である。
【符号の説明】
【００９３】
１    音声入出力受付部
２    データ入出力受付部
３    シナリオＤＢ
４    認識辞書ＤＢ
５    音声認識部
６    シナリオ解析部
７    端末装置
【図１】
2006053470.tif 000003
【図２】
2006053470.tif 000004
【図３】
2006053470.tif 000005
【図４】
2006053470.tif 000006
【図５】
2006053470.tif 000007
【図６】
2006053470.tif 000008
【図７】
2006053470.tif 000009
【図８】
2006053470.tif 000010