(57)【要約】【課題】形式と内容が適切な応答を、短時間で返す。【解決手段】  形式的応答生成部１１は、入力文に対して、形式的応答文を生成し、応答出力制御部１６に供給する。実質的応答生成部１３は、入力文に対して、実質的応答文を生成し、応答出力制御部１５に供給する。応答出力制御部１６は、形式的応答文と実質的応答文の出力を制御し、入力文に対する最終的な応答文を出力する。即ち、応答出力制御部１６は、例えば、形式的応答文を出力し、その後、実質的応答文を出力する。本発明は、例えば、対話を行うロボットなどに適用できる。【選択図】図２
2006039120.tif 000002
【特許請求の範囲】
【請求項１】
入力文に対する応答文を出力することにより、対話を行う対話装置において、
前記入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得手段と、
前記入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得手段と、
前記形式的応答文と実質的応答文の出力を制御し、前記入力文に対する最終的な応答文を出力する出力制御手段と
を備えることを特徴とする対話装置。
【請求項２】
用例を記憶する用例記憶手段をさらに備え、
前記形式的応答取得手段または実質的応答取得手段は、前記入力文と用例に基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項１に記載の対話装置。
【請求項３】
前記入力文、または前記入力文に対する最終的な応答文を、対話履歴として記憶する対話履歴記憶手段をさらに備え、
前記形式的応答取得手段または実質的応答取得手段は、さらに、前記対話履歴にも基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項４】
前記形式的応答取得手段または実質的応答取得手段は、前記対話履歴を前記用例として用いて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項３に記載の対話装置。
【請求項５】
前記対話履歴記憶手段は、前記対話履歴を、話題ごとに分けて記憶する
ことを特徴とする請求項３に記載の対話装置。
【請求項６】
前記形式的応答取得手段または実質的応答取得手段は、前記入力文と用例とのマッチングを、ベクトル空間法により行い、そのマッチングにより得られるスコアが上位の用例に基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項７】
前記形式的応答取得手段または実質的応答取得手段は、前記入力文と用例とのマッチングを、DP(Dynamic Programming)マッチング法により行い、そのマッチングにより得られるスコアが上位の用例に基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項８】
前記形式的応答取得手段または実質的応答取得手段は、前記入力文を構成する単語に対し、df(Document Frequency)またはidf(Invert Document Frequency)により重みを付して、前記用例とのマッチングを、DPマッチング法により行い、そのマッチングにより得られるスコアが上位の用例に基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項７に記載の対話装置。
【請求項９】
前記形式的応答取得手段または実質的応答取得手段は、
前記入力文と用例とのマッチングを、ベクトル空間法により行い、
前記ベクトル空間法によるマッチングにより得られるスコアが上位の複数の用例について、さらに、前記入力文とのマッチングをDP(Dynamic Programming)マッチング法により行い、
そのマッチングにより得られるスコアが上位の用例に基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項１０】
前記実質的応答取得手段は、前記入力文と類似する用例を、前記実質的応答文とする
ことを特徴とする請求項２に記載の対話装置。
【請求項１１】
前記実質的応答取得手段は、前記入力文と類似する用例であって、前記入力文と異なる用例を、前記実質的応答文とする
ことを特徴とする請求項１０に記載の対話装置。
【請求項１２】
前記用例記憶手段は、発言順に並んだ用例を記憶しており、
前記実質的応答取得手段は、前記入力文と類似する用例の次の用例であって、前回出力された前記実質的応答文と異なる用例を、今回出力する前記実質的応答文とする
ことを特徴とする請求項２に記載の対話装置。
【請求項１３】
前記用例記憶手段は、用例と、その用例を発言した発言者の情報とを対応付けて記憶しており、
前記実質的応答取得手段は、前記発言者の情報にも基づいて、前記実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項１４】
前記用例記憶手段は、前記用例を、所定の単位の用例群ごとに記憶しており、
前記実質的応答取得手段は、前記入力文とのマッチングを行う用例の用例群と、前回出力された前記実質的応答文となった用例の用例群との類似性に基づき、前記入力文と用例とのマッチングを行うことにより、今回出力する前記実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項１５】
前記用例記憶手段は、一部が変数で記述された前記用例を記憶しており、
前記実質的応答取得手段は、前記用例の変数を、所定の記述に置換することにより、前記実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項１６】
音声を認識し、音声認識結果を前記入力文として出力するとともに、前記音声認識結果を構成する単語の正解確信度を出力する音声認識手段をさらに備え、
前記形式的応答取得手段または実質的応答取得手段は、前記入力文と用例とのマッチングを、前記正解確信度に基づいて行うことにより、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項１７】
音声を認識し、音声認識結果を前記入力文として出力する音声認識手段をさらに備え、
前記形式的応答取得手段または実質的応答取得手段は、前記入力文と用例とのマッチングにより得られるスコアと、前記入力文である音声認識結果の尤度を表すスコアとに基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする請求項２に記載の対話装置。
【請求項１８】
前記形式的応答取得手段と実質的応答取得手段は、それぞれ異なる方法で、形式的応答文と実質的応答文を取得する
ことを特徴とする請求項１に記載の対話装置。
【請求項１９】
前記出力制御手段は、前記形式的応答文または実質的応答文が所定の条件を満たすかどうかを判定し、前記所定の条件を満たす形式的応答文または実質的応答文を出力する
ことを特徴とする請求項１に記載の対話装置。
【請求項２０】
音声を認識し、音声認識結果を前記入力文として出力する音声認識手段をさらに備え、
前記形式的応答取得手段は、前記音声の音響的な特徴に基づいて、前記形式的応答文を取得し、
実質的応答取得手段は、前記入力文に基づいて、実質的応答文を取得する
ことを特徴とする請求項１に記載の対話装置。
【請求項２１】
前記出力制御手段は、前記形式的応答文を出力し、その後、前記実質的応答文を出力する
ことを特徴とする請求項１に記載の対話装置。
【請求項２２】
前記出力制御手段は、前記実質的応答文から、前記形式的応答文と実質的応答文との重複部分を削除し、その重複部分の削除後の前記実質的応答文を出力する
ことを特徴とする請求項２１に記載の対話装置。
【請求項２３】
前記出力制御手段は、前記形式的応答文と実質的応答文とを連結して出力する
ことを特徴とする請求項１に記載の対話装置。
【請求項２４】
入力文に対する応答文を出力することにより、対話を行う対話方法において、
前記入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得ステップと、
前記入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得ステップと、
前記形式的応答文と実質的応答文の出力を制御し、前記入力文に対する最終的な応答文を出力する出力制御ステップと
を含むことを特徴とする対話方法。
【請求項２５】
入力文に対する応答文を出力することにより、コンピュータに対話を行わせるプログラムにおいて、
前記入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得ステップと、
前記入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得ステップと、
前記形式的応答文と実質的応答文の出力を制御し、前記入力文に対する最終的な応答文を出力する出力制御ステップと
を含むことを特徴とするプログラム。
【請求項２６】
入力文に対する応答文を出力することにより、コンピュータに対話を行わせるプログラムが記録されている記録媒体において、
前記入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得ステップと、
前記入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得ステップと、
前記形式的応答文と実質的応答文の出力を制御し、前記入力文に対する最終的な応答文を出力する出力制御ステップと
を含むことを特徴とするプログラムが記録されている記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話装置および対話方法、並びにプログラムおよび記録媒体に関し、特に、例えば、形式と内容が適切な応答を、短時間で返すことができるようにする対話装置および対話方法、並びにプログラムおよび記録媒体に関する。
【背景技術】
【０００２】
例えば、人間と音声で対話を行う対話装置である音声対話システムは、ゴールのある対話を行うものと、ゴールのない対話（雑談）を行うものとに大別することができる。
【０００３】
ゴールのある対話を行う音声対話システムとしては、例えば、音声対話によりチケットの予約を行うチケット予約システムなどがあり、雑談を行う音声対話システムとしては、例えば、非特許文献１に記載されている、いわゆる「人工無能」などがある。
【０００４】
ゴールのある対話を行う音声対話システムと、雑談を行う音声対話システムとでは、ユーザからの音声入力（発話）に対して、どのような応答をするべきかの方針が異なる。
【０００５】
即ち、ゴールのある対話を行う音声対話システムでは、ゴールに到達するのに必要な情報を、ユーザに発話してもらえるような応答を出力する必要がある。このため、例えば、飛行機のチケットを音声で予約するための音声対話システムにおいて、そのチケットの予約に必要な情報が、例えば、出発日、出発時刻、出発地、および目的地である場合に、ユーザが、「2月16日。東京から札幌まで」と発話したとすると、音声対話システムは、出発時刻の情報が不足していると判断して、「出発は何時ですか」という応答を出力するのが望ましい。
【０００６】
一方、雑談を行う音声対話システムについては、どのような応答をすべきかの正解は存在しない。しかしながら、雑談を行うという性質上、音声対話システムの応答には、ユーザが「面白い」と感じる応答であることや、ユーザが「自分の話を理解してくれている」と感じる応答であること、ユーザが次の発言をしたくなるような応答であること、などが要求される。
【０００７】
いま、ユーザが「自分の話を理解してくれている」と感じる応答であることに注目すると、そのような応答であるためには、応答の形式がユーザの発話に合っていることや、応答の内容（話題）がユーザの発話に合っていることなどが必要である。
【０００８】
ここで、例えば、ユーザが、「はい」か、「いいえ」で回答することができる質問をした場合、「はい」（または、その他の肯定を表す言葉）や、「いいえ」（または、その他の否定を表す言葉）などが、形式が合っている応答である。また、ユーザが挨拶の発話をした場合には、その挨拶に応じた挨拶（例えば、「おはよう」に対して「おはよう」、「ただいま」に対して「お帰り」など）が、形式が合っている応答である。さらに、ユーザの発話に対して相づちをうつような応答も、形式が合っている応答である。
【０００９】
一方、例えば、ユーザが天気に関する発話をした場合、その天気に関する応答が、内容が合っている応答である。
【００１０】
従って、例えば、ユーザが「明日は晴れるかなあ」と発話した場合には、「そうだね、天気が気になるね」が、形式と内容のいずれも合っている応答である。ここで、応答「そうだね、天気が気になるね」の前半部分「そうだね」は、相づちをうつ応答であり、形式が合っている応答である。また、応答「そうだね、天気が気になるね」の後半部分「天気が気になるね」は、内容が合っている応答である。
【００１１】
音声対話システムにおいて、上述のような形式と内容のいずれも合っている応答を出力することにより、ユーザに「（システムは）自分の話を聞いてくれた」という印象を持たせることができる。
【００１２】
しかしながら、従来の音声対話システムでは、形式と内容の両方が合っている応答を生成するのは困難であった。
【００１３】
即ち、雑談を行う場合の応答を生成する方法としては、例えば、規則を用いる方法や、用例を用いる方法などがある。
【００１４】
規則を用いる方法は、例えば、非特許文献２や３で紹介されているイライザ(Eliza)と呼ばれるプログラムで採用されている。
【００１５】
規則を用いる方法では、例えば、「入力に○○（単語や言い回し）が含まれていたら〜を出力する」といった規則の集合を用いて、応答が生成される。
【００１６】
従って、例えば、ユーザから「どうもありがとうございました」という入力（発話）があった場合において、「入力に『ありがとう』が含まれていたら『どういたしまして』と応答する」という規則が存在するときには、その規則にしたがい、応答「どういたしまして」という応答が生成される。
【００１７】
しかしながら、形式が合っている応答を生成する規則は、比較的記述しやすいが、内容が合っている応答を生成する規則は、記述が難しい。また、内容が合っている応答を生成する規則は、多数になりがちで、そのような多数の規則をメンテナンスするのは、多大な労力を必要とする。
【００１８】
なお、応答を生成する方法としては、規則を用いる方法や、用例を用いる方法以外に、応答生成用テンプレートを用いる方法があるが（例えば、特許文献１参照）、応答生成用テンプレートを用いる方法にも、規則を用いる方法と同様の問題がある。
【００１９】
一方、用例を用いる方法については、例えば、非特許文献４に、「・・・人間同士のチャットのログを用いて辞書を生成する戦略がある。これはn-1番目の文からキーを抽出し、n番目の文を値とするという操作を全文にわたって繰り返すことで辞書を生成する」ことが記載されている。この記載における「チャットのログ」が、用例に該当する。
【００２０】
このように、用例としては、チャットのログなどを用いることができるので、多数の用例を集めることは、人手で多数の規則を記述することに比べれば容易であり、そのような多数の用例によって、多様な応答を生成することができる。
【００２１】
しかしながら、用例を用いる方法によって、形式と内容がいずれも合っている応答を生成するためには、そのような応答に相当する文が、１つの用例として存在する必要がある。
【００２２】
一般に、１つの用例は、形式または内容のうちのいずれか一方だけが合っている応答に相当する文になっていることが多い。従って、形式または内容のうちのいずれか一方だけが合っている応答に相当する文になっている用例を集めることは、容易であるが、それに対して、形式と内容の両方が合っている応答に相当する文になっている用例を集めることは、容易ではない。
【００２３】
また、音声対話システムについては、応答の形式や内容がユーザの発話に合っていることの他に、応答のタイミングも、ユーザが好印象を持つ、あるいは、ユーザが煩わしさを感じるかどうかの重要な要因となる。特に、応答時間、つまり、ユーザが発話してから、音声応答システムが何らかの応答を返すまでの時間が重要である。
【００２４】
応答時間には、ユーザの発話の音声認識に要する時間、その発話に対する応答の生成に要する時間、その応答を音声波形にする音声合成を行って再生する時間、オーバーヘッドの処理に要する時間などが影響する。
【００２５】
いま、これらの時間のうちの、対話システム（対話装置）に固有の時間である、応答の生成に要する時間に注目すると、応答の生成は、規則を用いる方法では、規則の数が少ない方が短時間で行うことができるし、用例を用いる方法であっても、用例の数が少ない方が短時間で行うことができる。
【００２６】
しかしながら、ユーザを飽きさせない多様な応答を行うためには、ある程度の数の規則や用例が必要である。従って、応答の生成に用いる規則や用例の数を維持しつつ、応答時間を短縮する技術が必要である。
【００２７】
【特許文献１】特開2001-357053号公報
【非特許文献１】“人工無能は考える”、［online］、［平成１６年７月２６日検索］、インターネット＜URL：http://www.ycf.nanet.co.jp/~skato/muno/index.shtml＞
【非特許文献２】“ELIZAの語るもの”、［online］、［平成１６年７月２６日検索］、インターネット＜URL：http://www.ycf.nanet.co.jp/~skato/muno/eliza.html＞
【非特許文献３】長尾真著，「言語工学」，昭晃堂出版，p.226-228
【非特許文献４】“辞書の構築”、［online］、［平成１６年７月２６日検索］、インターネット＜URL：http://www.ycf.nanet.co.jp/~skato/muno/dict.html＞
【発明の開示】
【発明が解決しようとする課題】
【００２８】
以上のように、対話システムには、ユーザが「自分の話を理解してくれている」と感じられるように、形式と内容が適切な応答を返すことが要請されており、さらに、ユーザに煩わしさを感じさせないように、応答時間を短縮することも要請されている。
【００２９】
本発明は、このような状況に鑑みてなされたものであり、形式と内容が適切な応答を、短時間で返すことができるようにするものである。
【課題を解決するための手段】
【００３０】
本発明の対話装置は、入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得手段と、入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得手段と、形式的応答文と実質的応答文の出力を制御し、入力文に対する最終的な応答文を出力する出力制御手段とを備えることを特徴とする。
【００３１】
本発明の対話方法は、入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得ステップと、入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得ステップと、形式的応答文と実質的応答文の出力を制御し、入力文に対する最終的な応答文を出力する出力制御ステップとを含むことを特徴とする。
【００３２】
本発明のプログラムは、入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得ステップと、入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得ステップと、形式的応答文と実質的応答文の出力を制御し、入力文に対する最終的な応答文を出力する出力制御ステップとを含むことを特徴とする。
【００３３】
本発明の記録媒体に記録されているプログラムは、入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得ステップと、入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得ステップと、形式的応答文と実質的応答文の出力を制御し、入力文に対する最終的な応答文を出力する出力制御ステップとを含むことを特徴とする。
【００３４】
本発明においては、入力文に対して、形式的応答文が取得されるとともに、実質的応答文が取得される。そして、形式的応答文と実質的応答文の出力が制御され、入力文に対する最終的な応答文が出力される。
【発明の効果】
【００３５】
本発明によれば、形式と内容が適切な応答を出力することが可能となる。また、本発明によれば、応答を、短時間で返すことが可能となる。
【発明を実施するための最良の形態】
【００３６】
以下に本発明の実施の形態を説明するが、請求項に記載の構成要件と、発明の実施の形態における具体例との対応関係を例示すると、次のようになる。この記載は、請求項に記載されている発明をサポートする具体例が、発明の実施の形態に記載されていることを確認するためのものである。従って、発明の実施の形態中には記載されているが、構成要件に対応するものとして、ここには記載されていない具体例があったとしても、そのことは、その具体例が、その構成要件に対応するものではないことを意味するものではない。逆に、具体例が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その具体例が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００３７】
さらに、この記載は、発明の実施の形態に記載されている具体例に対応する発明が、請求項に全て記載されていることを意味するものではない。換言すれば、この記載は、発明の実施の形態に記載されている具体例に対応する発明であって、この出願の請求項には記載されていない発明の存在、すなわち、将来、分割出願されたり、補正により追加される発明の存在を否定するものではない。
【００３８】
請求項１に記載の対話装置は、
入力文に対する応答文を出力することにより、対話を行う対話装置（例えば、図１の音声対話システム）において、
前記入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得手段（例えば、図２の形式的応答生成部１１）と、
前記入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得手段（例えば、図２の実質的応答生成部１３）と、
前記形式的応答文と実質的応答文の出力を制御し、前記入力文に対する最終的な応答文を出力する出力制御手段（例えば、図２の応答出力制御部１６）と
を備えることを特徴とする。
【００３９】
請求項２に記載の対話装置は、
用例を記憶する用例記憶手段（例えば、図２の対話用例データベース１２1乃至１２Iや、対話用例データベース１４1乃至１４J）をさらに備え、
前記形式的応答取得手段または実質的応答取得手段は、前記入力文と用例に基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする。
【００４０】
請求項３に記載の対話装置は、
前記入力文、または前記入力文に対する最終的な応答文を、対話履歴として記憶する対話履歴記憶手段（例えば、図２の対話履歴データベース１５）をさらに備え、
前記形式的応答取得手段または実質的応答取得手段は、さらに、前記対話履歴にも基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする。
【００４１】
請求項１６に記載の対話装置は、
音声を認識し、音声認識結果を前記入力文として出力するとともに、前記音声認識結果を構成する単語の正解確信度を出力する音声認識手段（例えば、図１の音声認識部２）をさらに備え、
前記形式的応答取得手段または実質的応答取得手段は、前記入力文と用例とのマッチングを、前記正解確信度に基づいて行うことにより、前記形式的応答文または実質的応答文を取得する
ことを特徴とする。
【００４２】
請求項１７に記載の対話装置は、
音声を認識し、音声認識結果を前記入力文として出力する音声認識手段（例えば、図１の音声認識部２）をさらに備え、
前記形式的応答取得手段または実質的応答取得手段は、前記入力文と用例とのマッチングにより得られるスコアと、前記入力文である音声認識結果の尤度を表すスコアとに基づいて、前記形式的応答文または実質的応答文を取得する
ことを特徴とする。
【００４３】
請求項２０に記載の対話装置は、
音声を認識し、音声認識結果を前記入力文として出力する音声認識手段（例えば、図１の音声認識部２）をさらに備え、
前記形式的応答取得手段は、前記音声の音響的な特徴に基づいて、前記形式的応答文を取得し、
実質的応答取得手段は、前記入力文に基づいて、実質的応答文を取得する
ことを特徴とする。
【００４４】
請求項２４に記載の対話方法は、
入力文に対する応答文を出力することにより、対話を行う対話方法において、
前記入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得ステップ（例えば、図１４のステップＳ３）と、
前記入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得ステップ（例えば、図１４のステップＳ５）と、
前記形式的応答文と実質的応答文の出力を制御し、前記入力文に対する最終的な応答文を出力する出力制御ステップ（例えば、図１４のステップＳ４およびＳ６）と
を含むことを特徴とする。
【００４５】
請求項２５に記載のプログラム、および請求項２６の記録媒体に記録されているプログラムは、
入力文に対する応答文を出力することにより、コンピュータに対話を行わせるプログラムにおいて、
前記入力文に対して、形式的な応答文である形式的応答文を取得する形式的応答取得ステップ（例えば、図１４のステップＳ３）と、
前記入力文に対して、実質的な応答文である実質的応答文を取得する実質的応答取得ステップ（例えば、図１４のステップＳ５）と、
前記形式的応答文と実質的応答文の出力を制御し、前記入力文に対する最終的な応答文を出力する出力制御ステップ（例えば、図１４のステップＳ４およびＳ６）と
を含むことを特徴とする。
【００４６】
以下、図面を参照して、本発明の実施の形態について説明する。
【００４７】
図１は、本発明を適用した音声対話システムの一実施の形態の構成例を示している。
【００４８】
音声対話システムは、マイク（マイクロフォン）１、音声認識部２、制御部３、応答生成部４、音声合成部５、およびスピーカ６から構成されており、音声による対話を行うようになっている。
【００４９】
即ち、マイク１は、ユーザ等の音声（発話）を、電気信号としての音声信号に変換し、音声認識部２に供給する。
【００５０】
音声認識部２は、マイク１からの音声信号を対象に音声認識を行い、その音声認識結果（認識結果）としての、例えばテキストの単語列を、制御部３に供給する。
【００５１】
なお、音声認識部２による音声認識のアルゴリズムとしては、例えば、HMM(Hidden Markov Model)法その他の任意のアルゴリズムを採用することができる。
【００５２】
また、音声認識部２から制御部３に供給する音声認識結果は、いわゆる認識仮説としての単語列のうちの、例えば、最も尤度の高い（尤度が有するスコアが最も高い）１つの単語列であっても良いし、上位Ｎ個の単語列であっても良い。但し、ここでは、最も尤度の高い１つの単語列が、音声認識結果として、音声認識部２から制御部３に供給されるものとする。
【００５３】
さらに、音声認識部２から制御部３には、単語列の形ではなく、例えば、単語グラフの形で、音声認識結果を供給することもできる。
【００５４】
また、音声対話システムでは、マイク１および音声認識部２とともに、あるいは、それらに代えて、キーボードを設け、ユーザには、そのキーボードを操作することにより、テキストを入力してもらい、そのテキストを、制御部３に供給するようにすることもできる。
【００５５】
さらに、制御部３には、ユーザによる手書き文字を文字認識することにより得られるテキストや、カメラやスキャナで読み取った画像をOCR(Optical Character Recognition)で処理することにより得られるテキストなどを供給するようにすることもできる。
【００５６】
制御部３は、音声対話システム全体の制御を行う。
【００５７】
即ち、制御部３は、例えば、音声認識部２に制御信号を供給することにより、音声認識を行わせる。また、制御部３は、例えば、音声認識部２から供給される音声認識結果を、対話の入力文として、応答生成部４に供給し、その入力文に対する応答文を生成させる。さらに、制御部３は、例えば、応答生成部４から供給される応答文を受信し、音声合成部５に供給する。また、制御部３は、音声合成部５から、音声合成が完了した旨の完了通知を受け、その完了通知に応じて必要な処理を行う。
【００５８】
応答生成部４は、制御部３から供給される音声認識結果としての入力文に対する応答文、即ち、ユーザの発話に対して返事するテキストを生成し、その応答文を、制御部３に供給する。
【００５９】
音声合成部５は、制御部から供給される応答文を対象に、例えば、規則音声合成などの音声合成を行い、対応する合成音（の音声信号）を、スピーカ６に供給する。
【００６０】
スピーカ６は、音声合成部５からの、応答文に対応する合成音を出力（放音）する。
【００６１】
なお、音声合成部５では、例えば、規則音声合成によって合成音を生成する他、典型的な応答文については、対応する音声をあらかじめ記憶しておき、その音声を再生するようにすることもできる。
【００６２】
また、制御部３から供給される応答文は、音声合成部５およびスピーカ６によって音声により出力する他、ディスプレイやプロジェクタによって表示するようにしても良い。
【００６３】
次に、図２は、図１の応答生成部４の構成例を示している。
【００６４】
形式的応答生成部１１には、音声認識部２（図１）からの音声認識結果としての入力文が供給されるようになっている。形式的応答生成部１１は、入力文、対話用例データベース１２1，１２2，・・・，１２Iに記憶された用例、さらには、必要に応じて、対話履歴データベース１５に記憶された対話履歴に基づいて、入力文に対して、形式的な応答文、即ち、形式が入力文に合っている形式的応答文を生成（取得）し、応答出力制御部１６に供給する。
【００６５】
従って、ここでは、形式的応答生成部１１は、用例を用いる方法により、応答文（形式的応答文）を生成する。但し、形式的応答生成部１１では、用例を用いる方法以外の、例えば、規則を用いる方法により、応答文を生成することも可能である。形式的応答生成部１１が、規則を用いる方法により、応答文を生成する場合、次に説明する対話用例データベース１２iに代えて、規則のデータベースが設けられる。
【００６６】
対話用例データベース１２i（ｉ＝１，２，・・・，Ｉ）は、形式的応答生成部１１が形式的応答文を生成するのに用いる用例、即ち、例えば、ある文（発言）に対して、少なくとも、形式が合っている文（発言）になっている用例を記憶している。
【００６７】
なお、ある１つの対話用例データベース１２iと、他の１つの対話用例データベース１２i'とでは（ｉ≠ｉ’）、例えば、記憶している用例のカテゴリが異なる。即ち、例えば、対話用例データベース１２iが、挨拶に関する多数の用例を記憶しているとすると、対話用例データベース１２i'は、相づちに関する多数の用例を記憶している。このように、対話用例データベース１２1乃至１２Iにおいては、用例が、所定の単位（カテゴリ）の用例の群（用例群）ごとに記憶されている。
【００６８】
ここで、以下、適宜、対話用例データベース１２1，１２2，・・・，１２Iを、特に区別する必要がない限り、対話用例データベース１２と記述する。
【００６９】
実質的応答生成部１３には、音声認識部２（図１）から、形式的応答生成部１１に供給されるのと同一の音声認識結果としての入力文が供給されるようになっている。実質的応答生成部１３は、入力文、対話用例データベース１４1，１４2，・・・，１４Jに記憶された用例、さらには、必要に応じて、対話履歴データベース１５に記憶された対話履歴に基づいて、入力文に対して、実質的な応答文、即ち、内容（話題）が入力文に合っている実質的応答文を生成（取得）し、応答出力制御部１６に供給する。
【００７０】
従って、ここでは、実質的応答生成部１３は、用例を用いる方法により、応答文（実質的応答文）を生成する。但し、実質的応答生成部１３では、上述の形式的応答生成部１１と同様に、用例を用いる方法以外の、例えば、規則を用いる方法により、応答文を生成することも可能である。実質的応答生成部１３が、規則を用いる方法により、応答文を生成する場合、次に説明する対話用例データベース１４jに代えて、規則のデータベースが設けられる。
【００７１】
対話用例データベース１４j（ｊ＝１，２，・・・，Ｊ）は、実質的応答生成部１３が実質的応答文を生成するのに用いる用例、即ち、例えば、ある文（発言）に対して、少なくとも、内容が合っている文（発言）になっている用例を記憶している。
【００７２】
なお、ある１つの対話用例データベース１４jには、例えば、ある一連の対話の発言、即ち、ある話題に関しての対話の開始から終了までの発言が、１単位の用例として記憶されている。ある対話の発言列があった場合に、例えば、「ところで」などといった話題を転換するフレーズを、新たな単位の始まりとすることができる。
【００７３】
ここで、以下、適宜、対話用例データベース１４1，１４2，・・・，１４Jを、特に区別する必要がない限り、対話用例データベース１４と記述する。
【００７４】
対話履歴データベース１５は、応答出力制御部１６から供給される、入力文、もしくはその入力文に対して最終的に出力された応答文（最終的な応答文）のうちの一方または両方を、対話履歴として記憶する。対話履歴データベース１５に記憶された対話履歴は、上述したように、必要に応じて、形式的応答生成部１１や実質的応答生成部１３で、応答文（形式的応答文、実質的応答文）の生成に用いられる。
【００７５】
応答出力制御部１６は、形式的応答生成部１１からの形式的応答文と、実質的応答生成部１３からの実質的応答文の出力を制御し、入力文に対する最終的な応答文を、制御部３（図１）に出力する。即ち、応答出力制御部１６は、入力文に対して得られた形式的応答文と実質的応答文とを、いわば合成し、その入力文に対する最終的な応答文を得て、制御部３に出力する。
【００７６】
また、応答出力制御部１６には、音声認識部２（図１）から音声認識結果としての入力文が供給されるようになっている。応答出力制御部１６は、入力文に対する最終的な応答文を出力した後、その入力文と最終的な応答文を、対話履歴データベース１５に供給する。対話履歴データベース１５では、上述したように、応答出力制御部１６からの入力文と最終的な応答文が、対話履歴として記憶される。
【００７７】
次に、図３は、図２の形式的応答生成部１１が形式的応答文の生成に用いる、対話用例データベース１２に記憶された用例の例を示している。
【００７８】
対話用例データベース１２では、用例が、例えば、入力例と、その入力例に対する応答としての応答例とのセットの形で記憶されている。
【００７９】
また、対話用例データベース１２に記憶されている用例は、形式的応答生成部１１が形式的応答文を生成するのに用いる用例であるため、入力例とセットになっている応答例は、その入力例に対して、少なくとも、形式が合っている文になっており、さらに、入力例は、応答例に対応した文になっている。
【００８０】
即ち、対話用例データベース１２に記憶されている用例である応答例は、例えば「はい」や「そうです」といった肯定の返事や、「いいえ」や「いや、違います」といった否定の返事、「こんにちは」や「どういたしまして」といった挨拶、「うん」や「ええ」といった相づちなどになっている。そして、そのような応答例とセットになっている入力例は、応答例の応答をするのが形式的には自然（適切）な文（用例）になっている。
【００８１】
図３に示した対話用例データベース１２は、例えば、インターネット上のチャットのログなどの、実際の対話を記述したリストから、形式的な応答文となる発言を、応答例として抽出し、その発言の直前の発言を、その応答例とセットにする入力例として抽出することにより作成することができる。その他、対話用例データベース１２は、人手によって作成しても良い。
【００８２】
ここで、対話用例データベース１２の用例（入力例と応答例）は、後述するマッチング等で使用されることに備えて、あらかじめ単語単位に区切られている。図３において、単語を区切る記号としては、空白が用いられているが、この空白は、形式的応答生成部１１や応答出力制御部１６での処理において、必要に応じて除去される。後述する図７で説明する対話用例データベース１４の用例についても同様である。
【００８３】
なお、用例は、単語単位で区切らずに（単語を区切る記号としての空白なしで）記憶しておき、マッチング時に必要に応じて単語単位に区切るようにしても良い。
【００８４】
また、本明細書中において、「単語」とは、１つの単位として扱った方が処理上都合が良い文字列のことであり、言語学的な単語とは必ずしも一致しない。「文」についても同様である。
【００８５】
次に、図４乃至図６を参照して、図２の形式的応答生成部１１による形式的応答文の生成について説明する。
【００８６】
形式的応答生成部１１は、図４に示すように、対話用例データベース１２に記憶された用例に基づいて、入力文に対する形式的応答文を生成する。
【００８７】
即ち、図４は、図３に示した対話用例データベース１２に記憶された用例を模式的に示しており、用例は、入力例と、その入力例に対応する応答例とのセットの形で記憶されている。
【００８８】
形式的応答生成部１１は、図４に示すように、対話用例データベース１２に記憶された入力例＃１，＃２，・・・，＃ｋ，・・・のそれぞれと、入力文とのマッチングを行い、入力例＃１，＃２，・・・，＃ｋ，・・・のそれぞれについて、入力文との類似度を表すスコアを求める。そして、形式的応答生成部１１は、例えば、入力例＃ｋが入力文に、最も類似している場合、即ち、入力例＃ｋのスコアが最も高い場合、図４に示すように、その入力例＃ｋとセットになっている応答例＃ｋを選択し、形式的応答文として出力する。
【００８９】
形式的応答生成部１１が出力する形式的応答文は、その形式が入力文に合っている応答文であるから、形式的応答生成部１１での入力文と入力例とのマッチングは、形式（内容（話題）ではなく）が合っているかという観点で、入力文と入力例との類似度を表すスコアを求める処理である必要がある。
【００９０】
そこで、形式的応答生成部１１では、例えば、ベクトル空間法により、入力文と入力例とのマッチングが行われるようになっている。
【００９１】
ここで、ベクトル空間法は、文章検索の分野で広く使われている方法の一つであり、文章をベクトルで表し、文章間の類似度または距離が、ベクトル同士のなす角度として求められる。
【００９２】
図５を参照して、ベクトル空間法による、入力文と入力例とのマッチングについて説明する。
【００９３】
対話用例データベース１２に、Ｋセットの入力例と応答例とのセットが記憶されており、Ｋ個の入力例に登場する単語の中で、例えば、表記が異なる単語の数が、Ｍ個であるとする。
【００９４】
この場合、対話用例データベース１２に記憶された入力例は、図５に示すように、Ｍ個の単語＃１，＃２，・・・，＃Ｍを要素とするＭ次元のベクトルで表すことができる。
【００９５】
入力例を表すベクトルの、単語＃ｍ（ｍ＝１，２，・・・，Ｍ）に対応する要素の値としては、例えば、その入力例における単語＃ｍの出現回数を採用することができる。
【００９６】
入力文も、入力例と同様に、Ｍ次元のベクトルで表すことができる。
【００９７】
いま、図５に示すように、ある入力例＃ｋ（ｋ＝１，２，・・・，Ｋ）を表すベクトルをｘkと、入力文を表すベクトルをｙと、ベクトルｘkとｙとがなす角度をθkと、それぞれ表すこととすると、その余弦(cosine)であるcosθkは、式（１）にしたがって求めることができる。
【００９８】
【数１】
2006039120.tif 000003
・・・（１）
【００９９】
ここで、式（１）において、・は内積を表し、|z|はベクトルzのノルムを表す。
【０１００】
cosθkは、ベクトルｘkとｙとが同一の向きであるときに最大値である1となり、ベクトルｘkとｙとが逆向きであるときに最小値である-1となる。但し、ここでは、入力文のベクトルｙや入力例＃ｋのベクトルｘkの要素は、０以上の値をとるので、ベクトルｘkとｙとのcosθkの最小値は0となる。
【０１０１】
ベクトル空間法によるマッチングでは、すべての入力例＃ｋについて、cosθkをスコアとして計算し、例えば、最大のスコアを与える入力例＃ｋが、入力文に最も類似する入力例として求められる。
【０１０２】
例えば、いま、入力例として、入力例＃１「これ は 用例 の 記述 の 例 です」と、入力例＃２「用例 は この よう に し て 単語 ごと に 区切っ て 記述 し ます」との２つが対話用例データベース１２に記憶されており、入力文として「これ は どちら の 用例 に 近い です か」が入力されたとする。この場合、入力例＃１，＃２、入力文のそれぞれを表すベクトルは、図６に示すようになる。
【０１０３】
図６から、入力例＃１のスコアであるcosθ1は、6/(√10√9)=0.632・・・となり、入力例＃２のスコアであるcosθ2は、4/(√21√9)=0.291・・・となる。
【０１０４】
従って、この場合、スコアが高い入力例＃１が、入力文に最も類似する入力例ということになる。
【０１０５】
ここで、ベクトル空間法においては、入力文や入力例を表すベクトルの要素の値として、例えば、上述したように、単語の出現回数が使用されるが、この単語の出現回数は、tf(Term Frequency)と呼ばれる。
【０１０６】
一般に、ベクトルの（要素の）値としてtfを使用した場合、スコアは、出現頻度が高い単語の影響を受けやすい。また、日本語では、助詞や助動詞の出現頻度が高い傾向がある。従って、tfを使用した場合、入力文や入力例の中の助詞や助動詞に、いわば引きずられたスコアが得られやすい傾向がある。即ち、例えば、入力文に、助詞「の」が頻出している場合は、助詞「の」が頻出している入力例のスコアが高くなる傾向がある。
【０１０７】
一般の文章検索では、出現頻度が高い単語の影響を受けるのを防止するために、ベクトルの値として、tfの代わりに、後述するidfを用いたtf×idfという尺度を使用することがある。
【０１０８】
しかしながら、日本語の文については、助詞や助動詞こそが、その文の形式を表していると考えられるので、形式的応答文を生成する形式的応答生成部１１でのマッチングにおいて、入力文および入力例における助詞や助動詞に影響を受けるのは、むしろ望ましい。
【０１０９】
そこで、形式的応答生成部１１でのマッチングでは、tfを採用することができる。
【０１１０】
なお、ベクトルの値として、tfの代わりに、後述するdf(Document Frequency)を用いたtf×dfという尺度を使用することにより、助詞や助動詞の影響を一層強くすることができ、形式的応答生成部１１でのマッチングでは、このtf×dfを採用することもできる。
【０１１１】
ここで、ある単語wについてのdfであるdf(w)は、例えば、式（２）で表される。
【０１１２】
【数２】
2006039120.tif 000004
・・・（２）
【０１１３】
式（２）において、対数(log)の底は、例えば2である。また、式（２）において、C(w)は、単語wが出現している入力例の数を表し、offsetは、所定の定数である。
【０１１４】
式（２）によれば、単語wが出現する入力例の数が多いほど、その単語wのdf(w)も大になる。
【０１１５】
即ち、例えば、助詞「の」が出現する入力例の数が1023であるとし、つまり、C(の)が1023であるとし、offsetが1であるとする。また、ある入力例＃ｋ（または入力文）における助詞「の」の出現回数が2回、つまり、tfが2であるとする。この場合、入力例＃ｋを表すベクトルの、単語（助詞）「の」に対応する要素の値は、tfを採用したときにはtf=2となり、tf×dfを採用したときにはtf×df(の)=2×10=20となる。
【０１１６】
従って、tf×dfを採用することにより、形式的応答生成部１１でのマッチングは、文に出現する頻度が高い単語の影響を受けることになる。
【０１１７】
以上のように、対話用例データベース１２に、形式的な文を、応答例として記憶しておき、形式的応答生成部１１において、入力文と入力例とのマッチングを、「文の形式が近いか」という尺度で行うことにより、形式が入力文にあった応答文を生成することができる。
【０１１８】
なお、ベクトルの要素の値として、tfに代えてtf×dfを採用することは、入力例と入力文との両方について行っても良いし、いずれか一方だけについて行っても良い。
【０１１９】
また、形式的応答生成部１１でのマッチングにおいて、助詞や助動詞といった文の形式を表す語句の影響を大にする方法としては、tf×dfを採用する方法の他、例えば、入力文や入力例のベクトルの要素のうち、助詞や、助動詞、その他の文の形式を表す語句に対応する要素を除く要素の値を0にする（文の形式を表す語句に対応する要素以外を無視する）方法などがある。
【０１２０】
ここで、上述の場合には、形式的応答生成部１１において、入力文と、対話用例データベース１２に記憶された用例（入力例、応答例）とに基づいて、その入力文に対する形式的応答文を生成するようにしたが、形式的応答文は、さらに、対話履歴データベース１５に記憶された対話履歴にも基づいて生成することができる。対話履歴にも基づいて、応答文を生成する方法については、実質的応答生成部１３における実質的応答文の生成を例にして、後述する。
【０１２１】
次に、図７は、図２の実質的応答生成部１３が実質的応答文の生成に用いる、対話用例データベース１４に記憶された用例の例を示している。
【０１２２】
対話用例データベース１４では、用例が、例えば、発言ごとに区別可能な形式で記憶されている。即ち、図７では、対話用例データベース１４において、１レコード（１行）に１発言（発話）の形で、用例が記憶されている。
【０１２３】
また、図７では、１レコードに、用例の他、その用例の発言を行った話者と、その用例を他の用例と区別するための用例番号とが記憶されている。ここで、用例番号は、用例に対して、その発言順にシーケンシャルに付されており、さらに、各レコードは、用例番号の昇順にソートされている。従って、ある用例番号の用例は、その用例番号の１つ前の用例番号の用例に対する応答になっている。
【０１２４】
対話用例データベース１４に記憶されている用例は、実質的応答生成部１４が実質的応答文を生成するのに用いる用例であるため、その直前の用例に対して、少なくとも、内容が合っている文になっている。
【０１２５】
なお、図７に示した対話用例データベース１４の用例は、「ATR(Advanced Telecommunications Research Institute International)旅行会話コーパス」(http://www.red.atr.co.jp/database_page/sdb_main.html)を元に作成したものであるが、その他、実際の座談会や対談の書き起こし文などから作成することも可能である。もちろん、すべて人手で作成しても構わない。
【０１２６】
また、図７に示した用例は、図３で説明したように、あらかじめ単語単位に区切られている。但し、用例は、必ずしも、単語単位に区切っておく必要はない。
【０１２７】
さらに、対話用例データベース１４に記憶される用例は、一連の対話ごとにデータ（ファイル）を分割しておくのが望ましい。
【０１２８】
ここで、図７に示したように、用例を、１レコードに１発言の形で記述する場合には、ある用例が、その直前の用例に対する応答になっている必要がある。従って、用例の順番の入れ替えや削除などの編集を行うと、その編集点における用例が、その直前の用例の応答になっていないことが生じるため、用例を、１レコードに１発言の形で記述する場合には、用例の編集は、原則として行うことができない。
【０１２９】
一方、図３に示したように、用例を、入力例と、その入力例に対する応答例とのセットの形で記述する場合には、任意のセットの応答例は、その応答例とセットなっている入力例に対する応答となっているから、セットの順番の入れ替えや削除などの編集を行っても問題はない。
【０１３０】
なお、図３に示したような入力例と応答例とのセットは、例えば、図７における任意の用例を入力例とし、その用例の次の用例（その用例の直後の用例）を応答例とすることにより作成することができる。
【０１３１】
次に、図８を参照して、図２の実質的応答生成部１３による実質的応答文の生成について説明する。
【０１３２】
図８は、対話用例データベース１４に記憶された用例を模式的に示しており、用例は、その発言順に並んでいる。
【０１３３】
実質的応答生成部１１は、図８に示したような、対話用例データベース１４に記憶された用例に基づいて、入力文に対する実質的応答文を生成する。
【０１３４】
即ち、対話用例データベース１４に記憶された用例は、図８に示すように、ある対話における発言を、その発言順に並べたものとなっている。
【０１３５】
実質的応答生成部１３は、図８に示すように、対話用例データベース１４に記憶された用例＃１，＃２，・・・，＃ｐ−１，＃ｐ，＃ｐ＋１，・・・のそれぞれと、入力文とのマッチングを行い、用例＃１，＃２，・・・のそれぞれについて、入力文との類似度を表すスコアを求める。そして、実質的応答生成部１３は、例えば、用例＃ｐが入力文に、最も類似している場合、即ち、用例＃ｐのスコアが最も高い場合、図８に示すように、その用例＃ｐの次の用例＃ｐ＋１を選択し、実質的応答文として出力する。
【０１３６】
実質的応答生成部１３が出力する実質的応答文は、その内容が入力文に合っている応答文であるから、実質的応答生成部１３での入力文と用例とのマッチングは、内容（形式ではなく）が合っているかという観点で、入力文と用例との類似度を表すスコアを求める処理である必要がある。
【０１３７】
入力文と用例との内容が合っているかという観点のマッチングも、上述したベクトル空間法により行うことができる。
【０１３８】
即ち、ベクトル空間法において、ベクトルの要素の値として、tfの代わりに、例えば、idf(Invert Document Frequency)を用いたtf×idfという尺度を採用することにより、入力文と用例との内容が合っているかという観点のマッチングを行うことができる。
【０１３９】
ここで、ある単語wについてのidfであるidf(w)は、例えば、式（３）で表される。
【０１４０】
【数３】
2006039120.tif 000005
・・・（３）
【０１４１】
式（３）において、対数(log)の底は、例えば2である。また、式（３）において、Ｐは、用例の総数を表し、C(w)は、単語wが出現している用例の数を表す。さらに、offsetは、所定の定数である。
【０１４２】
式（３）によれば、ある用例に偏って出現する語句（単語）w、つまり、その用例の内容（話題）を表していると考えられる語句のidf(w)は大になり、多くの用例に、万遍なく現れる語句（単語）w、つまり、一般には、助詞や助動詞などのidf(w)は小になる。
【０１４３】
即ち、例えば、助詞「は」が出現する用例の数が1024であるとし、つまり、C(は)が1024であるとし、offsetが1であるとする。さらに、用例の総数Ｐが4096であり、用例＃ｐ（または入力文）における助詞「は」の出現回数が2回、つまり、tfが2であるとする。この場合、用例＃ｐを表すベクトルの、単語（助詞）「は」に対応する要素の値は、tfを採用したときにはtf=2となり、tf×idfを採用したときにはtf×idf(は)=2×3=6となる。
【０１４４】
なお、ベクトルの要素の値として、tfに代えてtf×idfを採用することは、用例と入力文との両方について行っても良いし、いずれか一方だけについて行っても良い。
【０１４５】
また、実質的応答生成部１３でのマッチングにおいて、文の内容を表す語句の影響を大にする方法としては、tf×idfを採用する方法の他、例えば、入力文や用例のベクトルの要素のうち、名詞や、動詞、形容詞、形容動詞といった自立語ではない語句、即ち、例えば、助詞や助動詞といった付属語の類に対応する要素の値を0にする（付属語の類に対応する要素を無視する）方法などがある。
【０１４６】
さらに、上述の場合には、実質的応答生成部１３において、入力文と、対話用例データベース１４に記憶された用例とに基づいて、その入力文に対する実質的応答文を生成するようにしたが、実質的応答文は、さらに、対話履歴データベース１５に記憶された対話履歴にも基づいて生成することができる。以下、対話履歴にも基づいて、応答文を生成する方法について、実質的応答生成部１３における実質的応答文の生成を例にして説明するが、その前に、対話履歴データベース１５に記憶された対話履歴について説明する。
【０１４７】
即ち、図９は、図２の対話履歴データベース１５に記憶されている対話履歴を示している。
【０１４８】
対話履歴データベース１５では、図１の音声対話システムとユーザとの間で行われた対話における発言が、例えば、１レコード（１行）に１発言（発話）の形で記憶される。即ち、対話履歴データベース１５には、上述したように、応答出力制御部１６から、ユーザの発話の音声認識結果である入力文と、その入力文に対する最終的な応答文とが供給されるが、対話履歴データベース１５では、その入力文や最終的な応答文が、１発言として１レコードに記憶される。
【０１４９】
さらに、対話履歴データベース１５の１レコードには、発言（入力文や最終的な応答文）の他、例えば、発言順に付されるシーケンシャルな番号である発言番号、発言が行われた時刻（または日時）である発言時刻、発言を行った発言者（話者）の情報が記憶される。
【０１５０】
ここで、発言番号の初期値が、例えば１であるとすると、図９では、発言番号が１乃至ｒ−１のｒ−１個の発言が、対話履歴として記憶されている。この場合、対話履歴データベース１５に、次に記憶される発言の発言番号は、rになる。
【０１５１】
また、発言時刻は、発言が入力文である場合には、例えば、その入力文となったユーザの発話が行われた時刻であり、発言が最終的な応答文である場合には、例えば、その最終的な応答文が応答出力制御部１６から出力された時刻であり、これらの時刻は、例えば、図１の音声対話システムが内蔵する図示せぬ時計によって認識される。
【０１５２】
さらに、対話履歴データベース１５における話者の情報は、発言が入力文である場合には、その入力文に対応する発話を行ったユーザを表す「ユーザ」とされ、発言が最終的な応答文である場合には、その最終的な応答文を出力する図１の音声対話システムを表す「システム」とされる。
【０１５３】
なお、対話履歴データベース１５において、発言番号や、発言時刻、話者の情報を記憶することは必須ではない。また、対話履歴データベース１５においては、発言としての入力文と最終的な応答文を、その発言順に記憶するのが望ましい。
【０１５４】
実質的応答生成部１３では、入力文と、対話用例データベース１４に記憶された用例の他、以上のような対話履歴データベース１５に記憶された対話履歴にも基づいて、実質的応答文を生成することができる。
【０１５５】
対話履歴に基づく実質的応答文の生成方法としては、対話履歴における最新の発言を使用して実質的応答文を生成する方法と、対話履歴における最新の発言から任意の回数だけ遡った発言までを使用して実質的応答文を生成する方法とがある。
【０１５６】
なお、対話履歴における最新の発言の発言番号をｒ−１とし、以下、適宜、発言番号がｒ−１の発言を、発言＃ｒ−１と表す。
【０１５７】
図１０は、対話履歴における最新の発言＃ｒ−１を使用して実質的応答文を生成する方法を示している。
【０１５８】
実質的応答生成部１３は、対話履歴における最新の発言＃ｒ−１を使用して実質的応答文を生成する場合、図１０に示すように、入力文と、対話用例データベース１４に記憶された用例＃ｐとのマッチングの他に、その１つ前の用例＃ｐ−１と対話履歴における発言＃ｒ−１とのマッチングを行う。
【０１５９】
即ち、２つの文AとBとのマッチングにより計算される、その２つの文AとBとの類似度を表すスコア（例えば、式（１）で求められるcosθk）を、score(A,B)と表すこととすると、実質的応答生成部１３は、対話用例データベース１４に記憶された用例＃ｐについての、入力文に対するスコアを、例えば、式（４）にしたがって求める。
【０１６０】
【数４】
2006039120.tif 000006
・・・（４）
【０１６１】
ここで、式（４）において、Ur-1は、対話履歴における発言＃ｒ−１を表し、例えば、図９では、最下行（レコード）の発言「そうだね 。 天気 が 気 に なる ね 。」が、発言＃ｒ−１である。また、式（４）において、αは、発言＃ｒ−１に対する重み（発言＃ｒ−１を考慮する程度）を表し、０以上の適切な値が設定される。なお、αを０とした場合には、対話履歴を考慮せずに、用例＃ｐのスコアが求められることになる。
【０１６２】
実質的応答生成部１３は、対話用例データベース１４に記憶された用例＃１，＃２，・・・，＃ｐ−１，＃ｐ，＃ｐ＋１，・・・のそれぞれについて、式（４）によるスコアを求めるマッチングを行う。そして、実質的応答生成部１３は、対話用例データベース１４に記憶された用例のうちの、式（４）のスコアが上位の用例、即ち、例えば、スコアが最も高い用例の、並び順で次の用例を、入力文に対する実質的応答文とする。従って、例えば、図１０に示すように、式（４）のスコアが最も高い用例が、用例＃ｐであったとすると、並び順で、次の用例＃ｐ＋１が選択され、実質的応答文とされる。
【０１６３】
なお、式（４）では、入力文と用例＃ｐとのスコアscore(入力文,用例＃ｐ)と、発言＃ｒ−１(Ur-1)と用例＃ｐ−１との、重みα付きのスコアαscore(Ur-1,用例＃ｐ−１)との加算値を、用例＃ｐについての最終的なスコアとして求めるようにしたが、用例＃ｐについての最終的なスコアは、その他、例えば、スコアscore(入力文,用例＃ｐ)と、スコアαscore(Ur-1,用例＃ｐ−１)とを引数とする任意の単調増加関数によって求めることが可能である。
【０１６４】
次に、図１１は、対話履歴における最新の発言から任意の回数だけ遡った発言までを使用して実質的応答文を生成する方法を示している。
【０１６５】
実質的応答生成部１３は、対話履歴における最新の発言＃ｒ−１から任意の回数Ｄだけ遡った発言まで、つまり、発言＃ｒ−１，＃ｒ−２，・・・，＃ｒ−Ｄを使用して実質的応答文を生成する場合、入力文と、対話用例データベース１４に記憶された用例＃ｐとのマッチングの他に、その直前のＴ個の用例＃ｐ−１，＃ｐ−２，・・・，＃ｐ−Ｄと対話履歴における発言＃ｒ−１，＃ｒ−２，・・・，＃ｒ−Ｄとそれぞれのマッチングを行う。
【０１６６】
即ち、実質的応答生成部１３は、対話用例データベース１４に記憶された用例＃ｐについての、入力文に対するスコアを、例えば、式（５）にしたがって求める。
【０１６７】
【数５】
2006039120.tif 000007
・・・（５）
【０１６８】
ここで、式（５）において、tr-dは、履歴における発言＃ｒ−１がされた時刻（図９における発言時刻）から現在時刻までの経過時間を表す。但し、d=0のときのtrは、例えば、0であるとする。
【０１６９】
また、式（５）において、関数f(t)は、引数tと共に単調減少していく非負関数である。但し、引数tが0のときの関数f(0)は、例えば、1であるとする。
【０１７０】
さらに、式（５）において、Ur-dは、対話履歴における発言＃ｒ−ｄを表す。但し、d=0のときのUrは、入力文を表す。
【０１７１】
なお、式（５）におけるＤは、０以上で、ｐまたはｒのうちの小さい方より小さい値の整数値である。
【０１７２】
実質的応答生成部１３は、対話用例データベース１４に記憶された用例＃１，＃２，・・・，＃ｐ−１，＃ｐ，＃ｐ＋１，・・・のそれぞれについて、式（５）によるスコアを求めるマッチングを行う。そして、実質的応答生成部１３は、対話用例データベース１４に記憶された用例のうちの、式（５）のスコアが上位の用例、即ち、例えば、スコアが最も高い用例の、並び順で次の用例を、入力文に対する実質的応答文とする。従って、例えば、図１１に示すように、式（５）のスコアが最も高い用例が、用例＃ｐであったとすると、並び順で、次の用例＃ｐ＋１が選択され、実質的応答文とされる。
【０１７３】
式（５）によれば、用例＃ｐについての最終的なスコアには、入力文Urと用例＃ｐとのスコアscore(Ur,用例＃ｐ)が、１(=f(0))の重みで反映されるとともに、ｄ回前の発言＃ｒ−ｄ(Ur-d)と用例＃ｐ−ｄとのスコアscore(Ur-d,用例＃ｐ−ｄ)が、そのｄ回前の発言＃ｒ−ｄ(Ur-d)がされた発話時刻から現在時刻までの経過時間tr-dに応じて減少する重みf(tr-d)で反映される。なお、式（５）において、Ｄを０とした場合には、対話履歴を考慮せずに、用例＃ｐのスコアが求められることになる。
【０１７４】
ここで、図１２は、式（５）における、時間tを引数とする関数f(t)の例を示している。
【０１７５】
図１２の関数f(t)は、例えば、いわゆる忘却曲線を模した関数となっている。但し、忘却曲線は、人が記憶した事項を覚えている度合いを表す曲線であり、減衰の度合いが緩やかな曲線であるのに対して、図１２の関数f(t)は、そのような忘却曲線よりも減衰の度合いが急峻になっている。
【０１７６】
以上のように、対話履歴にも基づいて実質的応答文を生成することにより、ユーザが過去の発話と同一の発話をすることにより、過去に入力されたとの同一の入力文が入力された場合であっても、過去の入力文に対する用例とは異なる用例のスコアが高くなることによって、過去の応答文とは異なる応答文を返すことが可能となる。
【０１７７】
さらに、応答文の内容（話題）が突然変化し、ユーザが不自然に感じることを防止することが可能となる。
【０１７８】
即ち、例えば、対話用例データベース１４において、図７に示したような旅行時の対話から得られた用例と、対談番組で行われた対話から書き起こすことにより得られた用例とが記憶されているとする。この場合、前回出力された実質的応答文が、旅行時の対話から得られた用例であったときに、対談番組で行われた対話から書き起こすことにより得られた用例が、今回の実質的応答文として出力されると、ユーザは、「急に話題が変わった」という印象を受け、不自然に感じることが予想される。
【０１７９】
そこで、式（４）や式（５）にしたがってスコアを計算するマッチングを行うことで、対話履歴にも基づいて実質的応答文を生成することにより、上述のような、いままでと内容が異なる実質的応答文が出力されることを防止することができる。
【０１８０】
即ち、前回出力された実質的応答文が、上述したように、旅行時の対話から得られた用例であったときには、式（４）や式（５）にしたがってスコアを計算することで、対談番組で行われた対話から書き起こすことにより得られた用例よりも、旅行時の対話から得られた用例についてのスコアの方が、一般に高くなるので、対談番組で行われた対話から書き起こすことにより得られた用例が、今回の実質的応答文として出力されることを防止することができる。
【０１８１】
なお、ユーザが、例えば、「話は変わるけど」などといった話題を変更する発話をした場合は、応答生成部４（図２）は、対話履歴データベース１５に記憶された対話履歴をクリアし、対話履歴、即ち、前回までの入力文や、前回までの応答文が、今回の応答文に影響を与えないようにすることができる。
【０１８２】
次に、図１３を参照して、図２の応答出力制御部１６による形式的応答文と実質的応答文との出力の制御について説明する。
【０１８３】
上述したように、応答出力制御部１６には、形式的応答生成部１１から形式的応答文が供給されるとともに、実質的応答生成部１３から実質的応答文が供給される。そして、応答出力制御部１６は、入力文に対して得られた形式的応答文と実質的応答文とを合成し、その入力文に対する最終的な応答文を得て、制御部３に出力する。
【０１８４】
具体的には、例えば、応答出力制御部１６は、入力文に対して得られた形式的応答文と実質的応答文とを、その順に出力し、結果として、形式的応答文と実質的応答文とを、その順で連結したものを、最終的な応答文として出力する。
【０１８５】
即ち、例えば、図１３に示すように、入力文として、「明日は晴れるといいな」が、形式的応答生成部１１および実質的応答生成部１３に供給され、形式的応答生成部１１において、「そうだね。」という、入力文「明日は晴れるといいな」に対して形式が合っている形式的応答文が生成されるとともに、実質的応答生成部１３において、「天気が気になるね」という、入力文「明日は晴れるといいな」に対して内容が合っている実質的応答文が生成されたとする。さらに、形式的応答生成部１１から応答出力制御部１６に対して、形式的応答文「そうだね。」が供給されるとともに、実質的応答生成部１３から応答出力制御部１６に対して、実質的応答文「明日は晴れるといいな」が供給されたとする。
【０１８６】
この場合、応答出力制御部１６では、形式的応答生成部１１からの形式的応答文「そうだね。」と、実質的応答生成部１３からの実質的応答文「明日は晴れるといいな」とを、その順で、（制御部３を介して）音声合成部５（図１）に出力する。音声合成部５は、そこに供給される形式的応答文「そうだね。」と、実質的応答文「明日は晴れるといいな」とを対象に、順次、音声合成を行い、その結果、スピーカ６からは、合成音「そうだね。天気が気になるね」が、入力文「明日は晴れるといいな」に対する最終的な応答文として出力される。
【０１８７】
なお、図１３では、応答出力制御部１６において、入力文に対して得られた形式的応答文と実質的応答文とを、その順に出力することで、形式的応答文と実質的応答文とを、その順で連結したものを、最終的な応答文として出力するようにしたが、応答出力制御部１６では、その他、例えば、入力文に対して得られた形式的応答文と実質的応答文とを、その逆順に出力することで、形式的応答文と実質的応答文とを、その逆順で連結したものを、最終的な応答文として出力することが可能である。
【０１８８】
また、形式的応答文と実質的応答文とのうちのいずれを先に出力するかは、例えば、入力文に対する応答文とすることの相応しさを表すスコアとしての応答スコアに基づいて決定することができる。即ち、形式的応答文と実質的応答文それぞれについて、応答スコアを求め、その応答スコアの高い方を先に出力し、低い方を後に出力するようにすることができる。
【０１８９】
あるいは、また、応答出力制御部１６では、形式的応答文と実質的応答文のうちの、例えば、応答スコアが高い方のみを、最終的な応答文として選択して出力することができる。
【０１９０】
さらに、応答出力制御部１６では、形式的応答文と実質的応答文のいずれの応答スコアも、所定の閾値より大である場合（以上である場合）には、形式的応答文と実質的応答文を、その順、または逆順で出力し、形式的応答文と実質的応答文のうちのいずれかの応答スコアだけが所定の閾値より大である場合には、その所定の閾値より応答スコアが大の方だけを出力することができる。そして、形式的応答文と実質的応答文のいずれの応答スコアも、所定の閾値以下（未満）である場合には、例えば、形式的応答文や実質的応答文に代えて、例えば、ユーザの発話を聞き返す文、あるいはユーザの発話が理解できない旨の文などを、最終的な応答文として出力するようにすることができる。
【０１９１】
なお、応答スコアとしては、例えば、入力文と用例とのマッチングにより求められるスコアなどを採用することができる。
【０１９２】
次に、図１４のフローチャートを参照して、図１の音声対話システムの動作について説明する。
【０１９３】
なお、図１４のフローチャートにしたがった動作では、応答出力制御部１６が、形式的応答文と実質的応答文とを、その順で出力することにより、形式的応答文と実質的応答文とをその順で連結した文が、入力文に対する最終的な応答文として出力されるようになっている。
【０１９４】
音声対話システムでは、大きく分けて、対話処理と音声合成処理が行われる。
【０１９５】
対話処理では、まず最初に、ステップＳ１において、音声認識部２は、ユーザが発話をするのを待って、ユーザが発話を行ったら、その発話によってマイク１に入力される音声について、音声認識を行う。
【０１９６】
ここで、ユーザが、一定時間以上黙っている場合には、音声対話システムにおいて、例えば、「何かしゃべってよ」といった発話を促すメッセージを、合成音によりスピーカ６から出力し、あるいは、図示せぬディスプレイに表示することができる。
【０１９７】
ステップＳ１において、音声認識部２は、ユーザが発話を行うことによってマイク１に入力された音声について、音声認識を行った場合、その音声認識結果を、単語単位の単語列にし、入力文として、制御部３に供給する。
【０１９８】
ここで、入力文は、上述したように、音声認識による他、ユーザがキーボードを操作することによって入力することができる。ユーザがキーボードを操作することによって、入力文が制御部３に入力された場合、制御部３は、その入力文を、単語単位に分割する。
【０１９９】
制御部３は、入力文の入力を受けると、ステップＳ１からＳ２に進み、例えば、その入力文に基づき、対話処理を終了するかどうかを判定する。
【０２００】
ステップＳ２において、対話処理を終了しないと判定された場合、制御部３は、入力文を、応答生成部４（図２）の形式的応答生成部１１と実質的応答生成部１３に供給し、ステップＳ３に進む。
【０２０１】
ステップＳ３では、形式的応答生成部１１が、入力文に対して、形式的応答文を生成し、応答出力制御部１６に供給して、ステップＳ４に進む。即ち、例えば、入力文が、「明日は晴れるかな」であり、その入力文に対して、「そうだね」が、形式的応答文として生成された場合、その形式的応答文が、形式的応答生成部１１から応答出力制御部１６に供給される。
【０２０２】
ステップＳ４では、応答出力制御部１６が、形式的応答生成部１１からの形式的応答文を、制御部３（図１）を介して、音声合成部５に出力し、ステップＳ５に進む。
【０２０３】
ステップＳ５では、実質的応答生成部１３が、入力文に対して、実質的応答文を生成し、応答出力制御部１６に供給して、ステップＳ６に進む。即ち、例えば、入力文が、「明日は晴れるかな」であり、その入力文に対して、「天気が気になるね」が、実質的応答文として生成された場合、その実質的応答文が、実質的応答生成部１３から応答出力制御部１６に供給される。
【０２０４】
ステップＳ６では、応答出力制御部１６が、ステップＳ４での形式的応答文の出力に続いて、実質的応答生成部１３からの実質的応答文を、制御部３（図１）を介して、音声合成部５に出力し、ステップＳ７に進む。
【０２０５】
即ち、図１４では、応答出力制御部１６は、形式的応答生成部１１からの形式的応答文を、音声合成部５に出力し、その形式的応答文に続いて、実質的応答生成部１３からの実質的応答文を、音声合成部５に出力する。結果として、例えば、上述したように、形式的応答文が「そうだね」であり、実質的応答文が「天気が気になるね」であった場合、応答出力制御部１６から音声合成部５に対しては、その形式的応答文と実質的応答文とをその順で連結した文「そうだね、天気が気になるね」が出力されることになる。
【０２０６】
ステップＳ７では、応答出力制御部１６は、対話履歴データベース１５の対話履歴を更新して、ステップＳ１に戻り、以下、同様の処理が繰り返される。
【０２０７】
即ち、ステップＳ７では、応答出力制御部１６は、入力文と、その入力文に対して出力した最終的な応答文、即ち、形式的応答文および実質的応答文をその順で連結した文とを、対話履歴データベース１５に供給する。そして、例えば、対話履歴データベース１５における最新の発言が発言番号ｒ−１の発言であったとすると、対話履歴データベース１５は、応答出力制御部１６からの入力文を、発言番号ｒの発言として記憶するとともに、応答出力制御部１６からの最終的な応答文を、発言番号ｒ＋１の発言として記憶する。
【０２０８】
従って、例えば、上述したように、入力文が「明日は晴れるかな」であり、形式的応答文と実質的応答文とをその順で連結した文である最終的な応答文が「そうだね、天気が気になるね」であった場合、対話履歴データベース１５においては、入力文「明日は晴れるかな」が発言番号ｒの発言として記憶され、最終的な応答文「そうだね、天気が気になるね」が発言番号ｒ＋１の発言として記憶される。
【０２０９】
一方、ステップＳ２において、対話処理を終了すると判定された場合、即ち、入力文が、例えば、「終わりにしよう」等の対話の終了を意味する文である場合、対話処理は終了する。
【０２１０】
以上のように、対話処理では、ステップＳ３において、入力文に対する形式的応答文が生成され、ステップＳ４において、その形式的応答文が、応答出力制御部１６から音声合成部５に出力される。さらに、ステップＳ５において、入力文に対する実質的応答文が生成され、ステップＳ６において、その実質的応答文が、応答出力制御部１６から音声合成部５に出力される。
【０２１１】
音声合成部５（図１）は、以上のように、対話処理において、応答出力制御部１６から形式的応答文が出力され、あるいは、実質的応答文が出力されると、対話処理とは並列に、音声合成処理を開始する。
【０２１２】
即ち、音声合成処理では、まず最初に、ステップＳ１１において、音声合成部５は、応答出力制御部１６から出力された形式的応答文、または実質的応答文を受信し、ステップＳ１２に進む。
【０２１３】
ステップＳ１２では、音声合成部５は、ステップＳ１１で受信した形式的応答文または実質的応答文を対象に音声合成を行い、これにより、形式的応答文または実質的応答文に対応する合成音を生成して、スピーカ６（図１）から出力し、音声合成処理を終了する。
【０２１４】
対話処理では、上述したように、ステップＳ４において、形式的応答文が、応答出力制御部１６から音声合成部５に出力され、その後、ステップＳ６において、実質的応答文が、応答出力制御部１６から音声合成部５に出力される。そして、音声合成処理では、上述したように、応答文を受信した順に、その応答文を対象とした音声合成が行われる。
【０２１５】
従って、例えば、上述したように、形式的応答文が「そうだね」であり、実質的応答文が「天気が気になるね」であった場合、応答出力制御部１６から音声合成部５に対しては、その形式的応答文「そうだね」と、実質的応答文「天気が気になるね」とが、その順で出力され、音声合成部５では、やはり、その順で音声合成が行われる。その結果、スピーカ６からは、合成音「そうだね、天気が気になるね」が出力される。
【０２１６】
なお、対話処理と音声合成処理とを並列に行うことができない場合には、音声合成部５は、対話処理におけるステップＳ４とＳ５との間に、直前のステップＳ４で応答出力制御部１６から出力される形式的応答文を対象とした音声合成を行い、対話処理におけるステップＳ６とＳ７との間に、直前のステップＳ６で応答出力制御部１６から出力される実質的応答文を対象とした音声合成を行う。
【０２１７】
以上のように、形式的応答生成部１１と実質的応答生成部１３とを別個に設け、形式的応答生成部１１において形式的応答文を生成するとともに、実質的応答生成部１３において実質的応答文を生成するようにしたので、入力文に対して形式が合っている形式的応答文、および入力文に対して内容が合っている実質的応答文を得ることができる。さらに、応答出力制御部１６において、形式的応答文と実質的応答文との出力を制御するようにしたので、形式と内容が適切な応答文を出力することができ、これにより、ユーザに「自分が言ったことを理解してもらえた」という印象を与えることができる。
【０２１８】
また、形式的応答生成部１１による形式的応答文の生成と、実質的応答生成部１３による実質的応答文の生成とは独立して行われるので、音声合成部５において、応答出力制御部１６から出力される形式的応答文や実質的応答文の音声合成を、形式的応答生成部１１や実質的応答生成部１３の処理と並列に行うことができる場合には、形式的応答生成部１１で生成された形式的応答文の合成音による出力を行いながら、実質的応答生成部１３において実質的応答文の生成を行うことができ、ユーザからの入力文が入力されてから、応答文の出力が開始されるまでの時間である応答時間を短縮することができる。
【０２１９】
即ち、例えば、形式的応答生成部１１と実質的応答生成部１３において、それぞれ、上述したように、用例に基づき、形式的応答文と実質的応答文を生成する場合、形式的応答文は、入力文の構造を表す語句に依存する文（形式が合っている文）であるという性質上、そのような形式的応答文を生成するための用例は、入力文の内容（話題）を表す語句に依存する文（内容が合っている文）であるという性質を有する実質的応答文を生成するための用例に比較して、それほど多くの数を必要としない。
【０２２０】
従って、形式的応答文を生成するための用例と、実質的応答文を生成するための用例との数の比が、例えば、1:9であるとし、さらに、説明を簡単にするために、応答文の生成に要する時間が、単純に、その応答文の生成に用いる用例の数に比例することとすると、形式的応答文を生成するのに要する時間は、形式的応答文を生成するための用例と、実質的応答文を生成するための用例とのすべてに基づき、応答文を生成する場合の1/10で済む。よって、形式的応答文を生成して即座に出力することにより、形式的応答文を生成し、さらに、実質的応答文を生成してから、その形式的応答文と実質的応答文を出力する場合に比較して、応答時間を1/10に短縮することができる。
【０２２１】
その結果、リアルタイム性が高い対話、あるいはテンポの良い対話を行うことができる。
【０２２２】
ここで、音声合成部５において、応答出力制御部１６から出力される形式的応答文や実質的応答文の音声合成を、形式的応答生成部１１や実質的応答生成部１３の処理と並列に行うことができない場合には、形式的応答生成部１１による形式的応答文の生成が行われた後、音声合成部５において、その形式的応答文を対象とした音声合成を行い、その後、実質的応答生成部１３による実質的応答文の生成を行い、音声合成部５において、その実質的応答文を対象とした音声合成を行うこととなる。あるいは、形式的応答文と実質的応答文の生成を順次行った後、音声合成部５において、その形式的応答文と実質的応答文を対象とした音声合成を順次行うこととなる。
【０２２３】
なお、実質的応答文の生成に、入力文と用例だけではなく、対話履歴も用いるようにすることで、実質的応答文の内容（話題）が急に変化することを防止することができる他、同一の入力文に対して異なる実質的応答文の生成が可能となる。
【０２２４】
次に、図１５のフローチャートを参照して、図１の音声対話システムが対話処理を行う場合の動作の他の実施の形態について説明する。
【０２２５】
図１５の対話処理では、ステップＳ２６の処理が行われることを除いて、図１４の対話処理と同様の処理が行われる。即ち、図１５の対話処理は、ステップＳ２１乃至Ｓ２５，Ｓ２７，Ｓ２８において、図１４の対話処理のステップＳ１乃至Ｓ７における場合とそれぞれ同様の処理が行われる。そして、図１５の対話処理では、図１４のステップＳ５に対応するステップＳ２５の処理後に、ステップＳ２６の処理が行われてから、図１４のステップＳ６に対応するステップＳ２７の処理が行われる点が、図１４の対話処理と異なる。
【０２２６】
即ち、図１５の対話処理では、ステップＳ２１において、図１４のステップＳ１における場合と同様に、音声認識部２は、ユーザが発話をするのを待って、そのユーザの発話を音声認識し、その音声認識結果を、単語単位の単語列にして、入力文として、制御部３に供給する。制御部３は、入力文の入力を受けると、ステップＳ２１からＳ２２に進み、図１４のステップＳ２における場合と同様に、その入力文に基づき、対話処理を終了するかどうかを判定する。ステップＳ２２において、対話処理を終了すると判定された場合、対話処理は終了する。
【０２２７】
また、ステップＳ２２において、対話処理を終了しないと判定された場合、制御部３は、入力文を、応答生成部４（図２）の形式的応答生成部１１と実質的応答生成部１３に供給し、ステップＳ２３に進む。ステップＳ２３では、形式的応答生成部１１が、入力文に対して、形式的応答文を生成し、応答出力制御部１６に供給して、ステップＳ２４に進む。
【０２２８】
ステップＳ２４では、応答出力制御部１６が、形式的応答生成部１１からの形式的応答文を、制御部３（図１）を介して、音声合成部５に出力し、ステップＳ２５に進む。これにより、図１４で説明したように、音声合成部５では、形式的応答文を対象とした音声合成が行われる。
【０２２９】
ステップＳ２５では、実質的応答生成部１３が、入力文に対して、実質的応答文を生成し、応答出力制御部１６に供給して、ステップＳ２６に進む。
【０２３０】
ステップＳ２６では、応答出力制御部１６が、実質的応答生成部１３からの実質的応答文の中に、直前のステップＳ２４で音声合成部５（図１）に出力した形式的応答文と重複する表記（部分）が存在するかどうかを調査し、即ち、例えば、実質的応答生成部１３からの実質的応答文が、直前のステップＳ２４で音声合成部５に出力した形式的応答文を包含するかどうかを調査し、実質的応答文が、形式的応答文を包含する場合には、その包含部分を、実質的応答文から削除（除去）する。
【０２３１】
具体的には、例えば、形式的応答文が「そう。」であり、実質的応答文が「そう。天気が気になるね」であった場合、図１４の対話処理によれば、その形式的応答文と実質的応答文とが連結した合成音「そう。そう。天気が気になるね」が出力されることになり、「そう。」が重複することになる。
【０２３２】
そこで、図１５の対話処理では、ステップＳ２６において、実質的応答生成部１３からの実質的応答文が、直前のステップＳ２４で音声合成部５に出力した形式的応答文を包含するかどうかを調査し、実質的応答文が、形式的応答文を包含する場合には、その包含部分を、実質的応答文から削除するようになっている。これにより、形式的応答文が「そう。」であり、実質的応答文が、形式的応答文「そう。」を包含する「そう。天気が気になるね」であった場合、実質的応答文「そう。天気が気になるね」から、包含部分「そう。」が削除され、実質的応答文は、「天気が気になるね」にされる。
【０２３３】
なお、ステップＳ２６では、実質的応答文の中に、形式的応答文との重複部分が存在する場合も、その重複部分を、実質的応答文から削除することができる。即ち、例えば、形式的応答文が「うん、そうだね。」であり、実質的応答文が「そうだね。天気が気になるね」である場合のように、形式的応答文「うん、そうだね。」の終わりの部分「そうだね。」と、実質的応答文「そうだね。天気が気になるね」の先頭の部分「そうだね。」とが重複する場合、ステップＳ２６では、実質的応答文「そうだね。天気が気になるね」から、重複部分「そうだね。」を削除して、実質的応答文を、「天気が気になるね」にすることができる。
【０２３４】
ここで、ステップＳ２６では、実質的応答文の中に、形式的応答文との重複部分が存在しない場合、実質的応答文に対しては、何ら処理は行われない。
【０２３５】
ステップＳ２６の後は、ステップＳ２７に進み、応答出力制御部１６は、実質的応答生成部１３からの実質的応答文を、制御部３（図１）を介して、音声合成部５に出力し、ステップＳ２８に進む。ステップＳ２８では、応答出力制御部１６は、図１４のステップＳ７で説明したように、入力文と、その入力文に対して出力した最終的な応答文によって、対話履歴データベース１５の対話履歴を更新して、ステップＳ２１に戻り、以下、同様の処理が繰り返される。
【０２３６】
以上のように、図１５の対話処理では、ステップＳ２６において、実質的応答文から、形式的応答文と実質的応答文との重複部分（包含部分）を削除し、その重複部分の削除後の実質的応答文を、音声合成部５に出力するようにしたので、例えば、「そう。そう。天気が気になるね」といった「そう。」の重複が存在する不自然な合成音（応答）や、「うん、そうだね。そうだね。天気が気になるね」といった「そうだね。」が重複する不自然な合成音がされることを防止することができる。
【０２３７】
即ち、例えば、上述したように、形式的応答文が「そう。」であり、実質的応答文が「そう。天気が気になるね」であった場合、図１４の対話処理によれば、その形式的応答文と実質的応答文とが連結した合成音「そう。そう。天気が気になるね」が出力されることになり、「そう。」が重複する。また、例えば、形式的応答文が「うん、そうだね。」であり、実質的応答文が「そうだね。天気が気になるね」であった場合、図１４の対話処理によれば、合成音「うん、そうだね。そうだね。天気が気になるね」が出力されることになり、「そうだね。」が重複する。
【０２３８】
これに対して、図１５の対話処理によれば、実質的応答文の中に、形式的応答文と重複する部分（重複部分）が存在するかどうかを調査し、重複部分が存在する場合には、実質的応答文から、その重複部分を削除するようにしたので、重複部分が存在する不自然な合成音の出力を防止することができる。
【０２３９】
即ち、形式的応答文が「そう。」であり、実質的応答文が「そう。天気が気になるね」であり、「そう。」が重複する（実質的応答文に形式的応答文が包含される）場合、ステップＳ２６において、上述したように、実質的応答文「そう。天気が気になるね」から、重複部分「そう。」が削除され、実質的応答文は、「天気が気になるね」にされる。その結果、合成音としては、形式的応答文「そう。」と、重複部分である「そう。」が削除された実質的応答文「天気が気になるね」とが連結された文「そう。天気が気になるね」が出力されることになる。
【０２４０】
また、例えば、形式的応答文が「うん、そうだね。」であり、実質的応答文が「そうだね。天気が気になるね」であり、「そうだね。」が重複する場合、ステップＳ２６において、上述したように、実質的応答文「そうだね。天気が気になるね」から、重複部分「そうだね。」が削除され、実質的応答文は、「天気が気になるね」にされる。その結果、合成音としては、形式的応答文「うん、そうだね。」と、重複部分である「そうだね。」が削除された実質的応答文「天気が気になるね」とが連結された文「うん。そうだね。天気が気になるね」が出力されることになる。
【０２４１】
ところで、上述のように、形式的応答文と実質的応答文とに、重複部分が存在する場合には、その重複部分は、実質的応答文から削除する他、形式的応答文から削除することもできる。しかしながら、図１５の対話処理においては、重複部分を削除するステップＳ２６の処理が、形式的応答文を、応答出力制御部１６から音声合成部５に出力するステップＳ２４の処理後に行われるため、形式的応答文から、重複部分を削除することはできない。
【０２４２】
そこで、図１６のフローチャートを参照して、形式的応答文からの重複部分の削除が可能な対話処理について説明する。
【０２４３】
図１６の対話処理では、ステップＳ３１において、図１４のステップＳ１における場合と同様に、音声認識部２は、ユーザが発話をするのを待って、そのユーザの発話を音声認識し、その音声認識結果を、単語単位の単語列にして、入力文として、制御部３に供給する。制御部３は、入力文の入力を受けると、ステップＳ３１からＳ３２に進み、図１４のステップＳ２における場合と同様に、その入力文に基づき、対話処理を終了するかどうかを判定する。ステップＳ３２において、対話処理を終了すると判定された場合、対話処理は終了する。
【０２４４】
また、ステップＳ３２において、対話処理を終了しないと判定された場合、制御部３は、入力文を、応答生成部４（図２）の形式的応答生成部１１と実質的応答生成部１３に供給し、ステップＳ３３に進む。ステップＳ３３では、形式的応答生成部１１が、入力文に対して、形式的応答文を生成し、応答出力制御部１６に供給して、ステップＳ３４に進む。
【０２４５】
ステップＳ３４では、実質的応答生成部１３が、入力文に対して、実質的応答文を生成し、応答出力制御部１６に供給して、ステップＳ３５に進む。
【０２４６】
なお、ステップＳ３３とＳ３４の処理は、並列に行っても構わない。
【０２４７】
ステップＳ３５では、応答出力制御部１６が、形式的応答生成部１１からステップＳ３３で得られる形式的応答文と、実質的応答生成部１３からステップＳ３４で得られる実質的応答文とを合成し、これにより、入力文に対する最終的な応答文を作成し、ステップＳ３６に進む。ここで、ステップＳ３５において、形式的応答文と実質的応答文とを合成する方法については、後述する。
【０２４８】
ステップＳ３６では、応答出力制御部１６が、ステップＳ３５での形式的応答文と実質的応答文との合成によって得られた最終的な応答文を、制御部３（図１）を介して、音声合成部５に出力し、ステップＳ３７に進む。音声合成部５では、図１４で説明した音声合成処理において、応答出力制御部１６からの最終的な応答文を対象とした音声合成が行われる。
【０２４９】
ステップＳ３７では、応答出力制御部１６は、図１４のステップＳ７で説明したように、入力文と、その入力文に対して出力した最終的な応答文によって、対話履歴データベース１５の対話履歴を更新して、ステップＳ３１に戻り、以下、同様の処理が繰り返される。
【０２５０】
図１６の対話処理では、ステップＳ３５において、例えば、次のような第１乃至第３の合成方法のうちのいずれかによって、形式的応答文と実質的応答文とが合成され、入力文に対する最終的な応答文が作成される。
【０２５１】
即ち、第１の合成方法では、形式的応答文と実質的応答文とが、その順または逆順で連結され、最終的な応答文とされる。
【０２５２】
第２の合成方法では、形式的応答文と実質的応答文のそれぞれについて、所定の条件を満たすかどうかがチェックされる。なお、所定の条件の詳細については、後述する第６の変形例において説明する。
【０２５３】
第２の合成方法において、形式的応答文と実質的応答文の両方が所定の条件を満たす場合、第１の合成処理と同様に、形式的応答文と実質的応答文とが、その順または逆順で連結され、最終的な応答文とされる。また、形式的応答文と実質的応答文のうちのいずれか一方だけが所定の条件を満たす場合、その所定の条件を満たす方だけが、最終的な応答文とされる。形式的応答文と実質的応答文のうちのいずれも所定の条件を満たさない場合、例えば、「良い返事が思いつかなかったよ」等が、最終的な応答文とされる。
【０２５４】
第３の合成方法では、機械翻訳等で用いられている、フレーズ単位の翻訳結果から文を生成する技術を応用して、形式応答文と実質的応答文とから、最終的な応答文が生成される。
【０２５５】
なお、第１または第２の合成方法において、形式的応答文と実質的応答文とを連結する場合には、図１５の対話処理で説明したように、形式的応答文と実質的応答文との重複部分を削除して、最終的な応答文を作成することができる。
【０２５６】
図１６の対話処理では、形式的応答文と実質的応答文とを合成した後に、その合成によって得られる最終的な応答文が、応答出力制御部１６から音声合成部５に出力されるので、重複部分の削除は、形式的応答文と実質的応答文のいずれからでも行うことができる。
【０２５７】
また、形式的応答文と実質的応答文とに、重複部分が存在する場合には、応答出力制御部１６において、その重複部分を、形式的応答文または実質的応答文から削除する他、単純に、形式的応答文を無視し、実質的応答文を、そのまま最終的な応答文とすることができる。
【０２５８】
このように、形式的応答文を無視し、実質的応答文を、そのまま最終的な応答文とすることによっても、図１５の対話処理で説明したような、重複部分が存在する不自然な合成音がされることを防止することができる。
【０２５９】
即ち、例えば、形式的応答文が「そう。」であり、実質的応答文が「そう。天気が気になるね」であった場合には、形式的応答文を無視し、実質的応答文を、そのまま最終的な応答文とすることにより、最終的な応答文は、「そう。天気が気になるね」となる。従って、形式的応答文「そう。」と、実質的応答文「そう。天気が気になるね」とを、その順で連結することにより、最終的な応答文が、「そう。そう。天気が気になるね」といった「そう。」が重複する不自然な文になることを防止することができる。
【０２６０】
また、例えば、形式的応答文が「うん、そうだね。」であり、実質的応答文が「そうだね。天気が気になるね」であった場合には、形式的応答文を無視し、実質的応答文を、そのまま最終的な応答文とすることにより、最終的な応答文は、「そうだね。天気が気になるね」となる。従って、形式的応答文「うん、そうだね。」と、実質的応答文「そうだね。天気が気になるね」とを、その順で連結することにより、最終的な応答文が、「うん、そうだね。そうだね。天気が気になるね」といった「そうだね。」が重複する不自然な文になることを防止することができる。
【０２６１】
なお、図１６の対話処理では、形式的応答文と実質的応答文の生成後に、応答出力制御部１６において、その形式的応答文と実質的応答文とを合成することにより、最終的な応答文を作成し、その後、最終的な応答文を、音声合成部５に出力するので、形式的応答文の音声合成と、実質的応答文の生成とを並列に行うことが可能な図１４や図１５の対話処理に比較して、ユーザからの入力文が入力されてから、応答文の出力が開始されるまでの応答時間が長くなることがある。
【０２６２】
但し、図１６の対話処理では、応答出力制御部１６において、形式的応答文と実質的応答文の生成が終了するのを待って、その形式的応答文と実質的応答文とが合成され、最終的な応答文が作成されるので、例えば、形式的応答文と実質的応答文のいずれをも自由に加工等して合成することができる。
【０２６３】
次に、図１の音声対話システムの変形例である第１乃至第１０の変形例について説明する。第１乃至第１０の変形例は、簡単には、以下のようなものである。
【０２６４】
即ち、第１の変形例は、入力文と用例とのマッチングに、ベクトル空間法の代わりにDP(Dynamic Programming)マッチング法を用いるものであり、第２の変形列は、実質的応答生成部１３において、スコアが最も高い用例の、並び順で次の用例を、実質的応答文とする代わりに、スコアが最も高い用例を、実質的応答文とするものである。第３の変形例は、特定の話者が発言した用例だけを応答文として採用することで、図１の音声対話システムのキャラクタ付けを実現するものである。第４の変形例は、入力文と用例とのマッチングにおいて、所定の単位の用例群ごとに優先度を付してスコアを計算することで、それまでの話題を維持した用例が、応答文として出力されやすくするものである。第５の変形例は、一部が変数で記述された用例を用いて、応答文を生成するものであり、第６の変形例は、形式的応答文や実質的応答文が所定の条件を満たすかどうかを判定し、所定の条件を満たす形式的応答文や実質的応答文を出力するものである。第７の変形例は、音声認識結果の正解確信度(confidence measure)を求め、その正解確信度にも基づいて、応答文を生成するものであり、第８の変形例は、対話履歴も用例として用いて応答文を生成するものである。第９の変形例は、音声認識結果の、いわゆるＮベスト、即ち、尤度（尤度を表すスコア）の高い上位Ｎ個の音声認識結果それぞれの尤度と、用例とのマッチングにより求められるスコアとを用いて、応答文を生成するものであり、第１０の変形例は、ユーザの発話の音響的特徴を用いて、形式的応答文を生成するものである。
【０２６５】
以下、第１乃至第１０の変形例について説明する。
【０２６６】
［第１の変形例］
第１の変形例では、実質的応答生成部１３において、入力文と用例とのマッチングに、ベクトル空間法ではなく、DPマッチング法を用いる。
【０２６７】
ここで、DPマッチング法は、要素の数（長さ）が異なる２つのパターンについて、要素同士の対応をとりながら、その２つのパターンの距離尺度などを計算する方法としてよく用いられる。
【０２６８】
入力文と用例とは、単語を要素とする単語列であり、従って、DPマッチング法によれば、入力文と用例とについて、それぞれを構成する単語同士の対応をとりながら、その入力文と用例との距離尺度を計算することができる。
【０２６９】
そこで、図１７を参照して、DPマッチング法による入力文との用例とのマッチングについて説明する。
【０２７０】
図１７は、入力文との用例とのDPマッチングの結果を示している。
【０２７１】
即ち、図１７上側は、入力文「明日  は  出かけ  よう  かな」と、用例「今度  から  そう  し  よう  かな」とのDPマッチングの結果を示しており、図１７下側は、入力文「明日  サッカー  しよう  か」と、用例「どう  しよう  か  な」とのDPマッチングの結果を示している。
【０２７２】
DPマッチングにおいては、入力文と用例との単語の並び順を維持したまま、それぞれの単語同士の対応をとり、その対応関係が求められる。
【０２７３】
対応関係には、正解、置換誤り、挿入誤り、削除誤りがあり、それぞれは、マークC,S,I,Dで表される。
【０２７４】
ここで、正解Cとは、入力文と用例との、対応をとられた単語どうしが一致することを表す。置換誤りSとは、入力文と用例との、対応をとられた単語どうしが、異なる単語であることを表す。挿入誤りIとは、用例にある単語と対応をとる単語が、入力文に存在しないこと（用例に、入力文に存在しない余計な単語があること）を表す。削除誤りDとは、入力文にある単語と対応をとる単語が、用例に存在しないこと（用例に、入力文に存在する単語が不足していること）を表す。
【０２７５】
従って、DPマッチングによって付されたマークが、正解C以外の置換誤りS、挿入誤りI、または削除誤りDのうちのいずれかである場合には、入力文と用例との間には、何らかの違い（存在する単語の違い、単語の並び順の違い）があることになる。
【０２７６】
入力文と用例とのマッチングを、DPマッチング法によって行う場合、入力文と用例の各単語に対して、マッチングにおいてその単語を考慮する度合いとしての重みを付与する。重みは、すべての単語について１であっても良いし、単語ごとに異なっていても良い。
【０２７７】
ここで、図１８は、図１７にDPマッチングの結果を示した入力文と用例の各単語に重みを付与した状態を示している。
【０２７８】
図１８上側は、図１７上側のDPマッチングの結果における入力文と用例の各単語に重みを付与したものであり、図１８下側は、図１７下側のDPマッチングの結果における入力文と用例の各単語に重みを付与したものである。
【０２７９】
なお、図１８において、入力文と用例の各単語の直後のコロン(:)に続く数字が、重みである。
【０２８０】
形式的応答生成部１１におけるマッチングでは、そこで生成する形式的応答文の性質上、助詞や助動詞などの文の形式を表す単語に重きをおくべきであり、実質的応答生成部１３におけるマッチングでは、そこで生成する実質的応答文の性質上、内容（話題）を表す単語に重きをおくべきである。
【０２８１】
そこで、形式的応答生成部１１におけるマッチングでは、例えば、入力文の単語の重みとしては、dfを採用し、用例の単語の重みとしては、1.0を採用するのが望ましい。また、実質的応答生成部１３におけるマッチングでは、例えば、入力文の単語の重みとしては、idfを採用し、用例の単語の重みとしては、1.0を採用するのが望ましい。
【０２８２】
但し、図１８では、説明のために、重みとして、入力文の単語にはdfが、用例の単語にはidfが、それぞれ採用されている。
【０２８３】
次に、入力文と用例とのマッチングを行うにあたっては、入力文と用例とが、どれだけ類似しているか（あるいは、入力文と用例とが、どれだけ離れているか）を評価する評価尺度を導入することが必要である。
【０２８４】
ここで、音声認識におけるマッチングでは、correctnessとaccuracyという評価尺度が知られており、文書検索におけるマッチングでは、precisionという評価尺度が知られている。
【０２８５】
そこで、入力文と用例とのマッチングをDPマッチング法により行うにあたって、correctness,accuracy,precisionから類推した評価尺度を導入することとする。
【０２８６】
評価尺度correctness,accuracy,precisionは、それぞれ、式（６）乃至式（８）にしたがって計算することができる。
【０２８７】
【数６】
2006039120.tif 000008
・・・（６）
【０２８８】
【数７】
2006039120.tif 000009
・・・（７）
【０２８９】
【数８】
2006039120.tif 000010
・・・（８）
【０２９０】
なお、式（６）乃至式（８）において、Ciは、入力文において、正解Cとなっている単語の重みの総和を表し、Siは、入力文において、置換誤りSとなっている単語の重みの総和を表す。また、Diは、入力文において、削除誤りDとなっている単語の重みの総和を表し、Coは、用例において、正解Cとなっている単語の重みの総和を表す。さらに、Soは、用例において、置換誤りSとなっている単語の重みの総和を表し、Ioは、用例において、挿入誤りIとなっている単語の重みの総和を表す。
【０２９１】
従って、すべての単語の重みが１である場合には、Ciは、入力文における正解Cの数に等しく、Siは、入力文における置換誤りSの数に等しい。また、Diは、入力文における削除誤りDの数に等しく、Coは、用例における正解Cの数に等しい。さらに、Soは、用例における置換誤りSの数に等しく、Ioは、用例における挿入誤りIの数に等しい。
【０２９２】
図１８上側のDPマッチングの結果では、Ci,Si,Di,Co,So,Ioは、式（９）に示すようになり、その結果、correctness,accuracy,precisionは、式（１０）に示すようになる。
【０２９３】
【数９】
2006039120.tif 000011
・・・（９）
【０２９４】
【数１０】
2006039120.tif 000012
・・・（１０）
【０２９５】
また、図１８下側のDPマッチングの結果では、Ci,Si,Di,Co,So,Ioは、式（１１）に示すようになり、その結果、correctness,accuracy,precisionは、式（１２）に示すようになる。
【０２９６】
【数１１】
2006039120.tif 000013
・・・（１１）
【０２９７】
【数１２】
2006039120.tif 000014
・・・（１２）
【０２９８】
入力文と用例との類似度を表すスコアとしては、式（６）乃至式（８）の３つの評価尺度correctness,accuracy,precisionのうちのいずれを用いることも可能であるが、上述したように、用例の単語の重みとして1.0を採用するとともに、形式的応答生成部１１におけるマッチングでは、入力文の単語の重みとしてdfを採用し、実質的応答生成部１３におけるマッチングでは、入力文の単語の重みとしてidfを採用する場合、correctness,accuracy,precisionのうちの、accuracyを、入力文と用例との類似度を表すスコアとして用いるのが望ましい。即ち、これにより、形式的応答生成部１１では文の形式を重視したマッチングを、実質的応答生成部１３では文の内容を表す単語を重視したマッチングを、それぞれ行うことができる。
【０２９９】
評価尺度accuracyを、入力文と用例との類似度を表すスコアとして用いた場合、スコアが1.0に近いほど、入力文と用例とが類似していることを表す。
【０３００】
ここで、ベクトル空間法による入力文と用例とのマッチングでは、入力文と用例とが類似しているとは、入力文と用例それぞれを構成する単語の同一性が高いことを意味するが、DPマッチング法による入力文と用例とのマッチングでは、入力文と用例とが類似しているとは、入力文と用例それぞれを構成する単語の同一性が高いだけでなく、それぞれの単語の語順や、文長（それぞれの単語の数）などの同一性も高いことを意味する。従って、DPマッチング法によるマッチングによれば、ベクトル空間法によるマッチングに比較して、入力文と用例との類似性を、いわば、より厳格に判断することができる。
【０３０１】
なお、入力文の単語に付与する重みとしてidfを採用した場合、idfは、上述の式（３）で計算されるため、式（３）におけるC(w)が0となるときには、式（３）によって、idfを求めることができない。
【０３０２】
即ち、式（３）におけるC(w)は、単語wが出現している用例の数を表すから、入力文の単語が、すべての用例に存在しない場合、0となり、式（３）では、idfを計算することができない問題（いわゆる未知語の問題）がある。
【０３０３】
そこで、入力文の単語wについてのC(w)が0となる場合には、その単語wについては、例えば、次のような第１または第２の対処法によって対処する。
【０３０４】
即ち、第１の対処法では、C(w)が0となる単語wに対しては、重みとして0を付与することにより、マッチングにあたって、その単語w（未知語）を考慮しないようにする。
【０３０５】
第２の対処法では、C(w)が0となる単語wについては、C(w)として、例えば、1、あるいは、0乃至1の範囲の任意の値を用いて、式（３）によりidfを計算することで、マッチングにあたって、大きな重みを与えるようにする。
【０３０６】
なお、入力文と用例との類似度を表すスコアとなるcorrectness，accuracy、またはprecisionの計算は、DPマッチングの最中に行うことができる。即ち、入力文と用例との類似度を表すスコアとして、例えば、accuracyを採用する場合には、accuracyが最も大となるように、入力文と用例の単語を対応付けながら、各単語が、正解C、置換誤りS、挿入誤りI、または削除誤りDのうちのいずれに該当するかを求めることができる。
【０３０７】
また、DPマッチングでは、正解C以外の置換誤りS、挿入誤りI、および削除誤りDの数を最も少なくするという簡単な尺度で、入力文と用例の単語を対応付けることができ、入力文と用例の各単語が、正解C、置換誤りS、挿入誤りI、または削除誤りDのうちのいずれに該当するかを確定してから、入力文と用例との類似度を表すスコアとなるcorrectness，accuracy、またはprecisionの計算を行っても良い。
【０３０８】
さらに、入力文と用例との類似度を表すスコアとしては、correctness，accuracy、またはprecisionのうちのいずれか１つの他、それらのうちの２以上から、何らかの演算によって求められる値を採用することもできる。
【０３０９】
また、DPマッチング法によるマッチングでは、ベクトル空間法によるマッチングに比較して、上述したように、入力文と用例との類似性を、より厳格に判断することができるが、その反面、演算量が大となり、時間も要する。そこで、入力文と用例とのマッチングとしては、まず、すべての用例を対象として、ベクトル空間法によるマッチングを行い、入力文に類似する上位複数個の用例を選択し、その上位複数個の用例を対象として、DPマッチング法によるマッチングを行うといった、ベクトル空間法とDPマッチング法との両方を採用したマッチングを行うことができる。この場合、すべての用例を対象として、DPマッチング法によるマッチングを行うのに比較して、処理の高速化を図ることができる。
【０３１０】
さらに、形式的応答生成部１１と実質的応答生成部１３とでは、それぞれ、マッチングの方法として、同一の方法を採用して、形式的応答文と実質的応答文を生成することもできるし、異なる方法を採用して、形式的応答文と実質的応答文を生成することもできる。
【０３１１】
即ち、例えば、形式的応答生成部１１では、DPマッチング法によるマッチングを行い、実質的応答生成部１３では、ベクトル空間法によるマッチングを行うことができる。また、例えば、形式的応答生成部１１では、ベクトル空間法とDPマッチング法の両方を採用したマッチングを行い、実質的応答生成部１３では、ベクトル空間法によるマッチングを行うことができる。
【０３１２】
［第２の変形例］
第２の変形列では、実質的応答生成部１３において、スコアが最も高い用例の、並び順で次の用例を、実質的応答文とするのではなく、そのスコアが最も高い用例を、実質的応答文とする。
【０３１３】
即ち、上述の場合には、実質的応答生成部１３において、図８や、図１０、図１１で説明したように、入力文に対するスコアが最も高い用例が、用例＃ｐであった場合に、その次の用例＃ｐ＋１を、実質的応答文とするようにしたが、実質的応答文としては、スコアが最も高い用例＃ｐを、そのまま採用することもできる。
【０３１４】
但し、スコアが最も高い用例＃ｐが、入力文に一致する場合（完全に一致する場合、用例＃ｐが入力文を包含する場合、または入力文が用例＃ｐを包含する場合のうちの、例えば、完全に一致する場合）、その用例＃ｐを実質的応答文とすると、入力文と同一の実質的応答文が出力され、単純なオウム返しの応答となってしまい、ユーザに不自然さを感じさせる。
【０３１５】
そこで、スコアが最も高い用例＃ｐが、入力文に一致する場合には、入力文と異なる用例のうちの、スコアが最も高い用例を、実質的応答文として採用することができる。この場合、入力文と類似するが、入力文とは異なる用例が、実質的応答文とされることになる。
【０３１６】
以上のように、スコアが最も高い用例を、実質的応答文として採用する場合には、対話用例データベース１４（図２）に記憶させておく用例は、対話の用例である必要はなく、例えば、小説や、日記、新聞記事などの、いわゆるモノローグの用例で良い。
【０３１７】
一般に、モノローグの用例は、対話の用例に比較して収集することが容易であり、従って、スコアが最も高い用例を、実質的応答文として採用することにより、対話用例データベース１４には、モノローグの用例を記憶させておけば良く、対話用例データベース１４の構築を容易に行うことが可能となる。
【０３１８】
ここで、対話用例データベース１４には、対話の用例と、モノローグの用例とを、混在する形で記憶させておくことができる。即ち、ある対話用例データベース１４jには、対話の用例を記憶させておき、他の対話用例データベース１４j'には、モノローグの用例を記憶させておくことができる。この場合、最もスコアが高い用例が、対話の用例を記憶している対話用例データベース１４jに記憶された用例であれば、その次の用例を、実質的応答文とすれば良く、また、最もスコアが高い用例が、モノローグの用例を記憶している対話用例データベース１４j'に記憶された用例であれば、その用例を、実質的応答文とすれば良い。
【０３１９】
なお、モノローグの用例においては、ある用例の次の用例が、ある用例の応答になっているとは限らないため、図１０や図１１で説明したように、ユーザと音声対話システムとの対話履歴（対話履歴データベース１５（図２）に記憶された対話履歴）を用いて、入力文と用例とのマッチング（式（４）や式（５）にしたがってスコアを計算するマッチング）を行うのは適切であるとは言えない。
【０３２０】
一方、入力文と用例とのマッチングにあたって、対話履歴を用いることにより、上述したように、いままでに行われた対話の話題を維持すること、即ち、応答文の内容が突然変化し、ユーザが不自然に感じることを防止することが可能となる。
【０３２１】
しかしながら、用例として、モノローグの用例を用いる場合には、対話履歴を用いたマッチングを行うことは適切でないから、どのようにして、いままでに行われた対話の話題を維持するかが問題となる。入力文と用例とのマッチングにあたって、対話履歴を用いずに、いままでに行われた対話の話題を維持する方法については、第４の変形例で説明する。
【０３２２】
また、第２の変形列では、実質的応答生成部１３において、モノローグの用例を対象にマッチングを行い、スコアが最も高い用例が、入力文に一致する場合には、単純なオウム返しの応答となることを防止するために、入力文と異なる用例のうちの、スコアが最も高い用例を、実質的応答文する方法を採用することとしたが、この方法は、対話の用例を対象にマッチングを行い、スコアが最も高い用例の次の用例を、実質的応答文とする場合にも応用することができる。
【０３２３】
即ち、音声対話システムにおいて、今回出力する応答文が、前回出力された応答文と同一である場合には、ユーザに不自然さを感じさせる。
【０３２４】
そこで、実質的応答部生成部１３では、入力文と類似する用例の次の用例であって、前回出力された実質的応答文と異なる用例を、今回出力する実質的応答文とすること、つまり、前回出力された実質的応答文となった用例と異なる用例の、並び順で直前にある用例うちの、スコアが最も高い用例の次の用例を、今回出力する実質的応答文とすることができる。
【０３２５】
［第３の変形例］
第３の変形例では、特定の話者が発言した用例だけを応答文として採用することで、図１の音声対話システムのキャラクタ付けを実現する。
【０３２６】
即ち、上述の場合には、例えば、実質的応答生成部１３において、スコアが高い用例の次の用例を、実質的応答文とし、その実質的応答文とした用例の話者を、特に考慮していなかった。
【０３２７】
このため、図１の音声対話システムに、特定のキャラクタ、即ち、例えば、ホテルの予約係などの役割をさせるとした場合であっても、音声対話システムにおいて、ホテルの予約係に相応しくない応答が行われることがあり得る。
【０３２８】
そこで、対話用例データベース１４（図２）において、例えば、図７に示したように、用例とともに、その用例の話者（発言者）の情報が記憶されている場合には、実質的応答生成部１３において、用例の話者（の情報）にも基づいて、実質的応答文を生成することができる。
【０３２９】
即ち、例えば、対話用例データベース１４に、図７に示したような用例が記憶されており、音声対話システムに、ホテルの予約係の役割をさせる場合には、実質的応答生成部１３において、話者が「予約係」になっている用例を、優先的に、実質的応答文とするようにすることができる。
【０３３０】
具体的には、図７では、「予約係」の話者の発言である用例（用例番号が1,3,5,・・・の用例）と、「申込者」の話者の発言である用例（用例番号が2,4,6,・・・の用例）とが、その発言順に、交互に並んでいるので、最もスコアの高い用例の次の用例を、実質的応答文とする場合には、「予約係」の話者の発言である用例の直前の用例のスコア、つまり、「申込者」の話者の発言である用例のスコアが大となるようにすることで、話者が「予約係」になっている用例を、優先的に、実質的応答文とすることができる。
【０３３１】
「申込者」の話者の発言である用例のスコアを大にするには、例えば、入力文との類似度を表すスコアの計算対象の用例が、「申込者」の話者の発言であるかどうかを判定し、その用例が、「申込者」の話者の発言である場合には、その用例のスコアの計算にあたって、所定のオフセット値を加算し、あるいは乗算するようにすれば良い。
【０３３２】
以上のようなスコアの計算を行うことによって、実質的応答生成部１３では、「申込者」の話者が発言した用例の次の用例、即ち、「予約係」の話者が発言した用例が、実質的応答文とされやすくなり、その結果、ホテルの予約係の役割を果たす音声対話システムを実現することができる。
【０３３３】
なお、音声対話システムには、幾つかのキャラクタの中から、任意のキャラクタを設定する操作部等を設け、その操作部が操作されることにより設定されたキャラクタに応じた用例を、優先的に、実質的応答文とするようにすることができる。
【０３３４】
［第４の変形例］
第４の変形例では、入力文と用例とのマッチングにおいて、スコアの計算に、式（４）や式（５）を採用するのではなく、所定の単位の用例群ごとに優先度を付してスコアを計算することで、それまでの話題を維持した用例が、応答文として出力されやすくする。
【０３３５】
このため、例えば、対話用例データベース１４（図２）には、用例を、適切な単位の用例群ごとに分けて記憶させておく。
【０３３６】
具体的には、対話用例データベース１４に記憶させる用例として、例えば、対談番組から書き起こした用例を使用する場合には、用例を、例えば、放映日ごとや、対談相手ごと、あるいは、対談の話題ごとなどの所定の単位の用例群ごとに分けて、対話用例データベース１４に記憶させておく。
【０３３７】
例えば、いま、用例が、上述のように、所定の単位の用例群ごとに分けて、図２に示した対話用例データベース１４1，１４2，・・・，１４Jそれぞれに記憶されているものとする。即ち、ある対話用例データベース１４jには、ある用例群の用例が記憶されており、他の対話用例データベース１４j'には、他の用例群の用例が記憶されているとする。
【０３３８】
なお、ある用例群の用例が記憶されている対話用例データベース１４jは、例えば、１つのファイルであっても良いし、あるファイルの中のタグ等で識別することができる部分であっても良い。
【０３３９】
以上のように、対話用例データベース１４jに、ある用例群の用例を記憶させることにより、対話用例データベース１４jは、その対話用例データベース１４jに記憶されている用例の内容、即ち、その用例による対話における話題によって特徴付けることができる。対話用例データベース１４jを特徴付ける話題は、例えば、上述のベクトル空間法で説明したベクトルで表すことができる。
【０３４０】
即ち、対話用例データベース１４jに記憶された用例において、表記が異なる単語の数がＰ個であるとすると、これらのＰ個の単語を要素とし、各単語の数を要素の値とするＰ次元のベクトルは、対話用例データベース１４jを特徴付ける話題を表す。
【０３４１】
いま、対話用例データベース１４jを特徴付ける話題を表すベクトルを、話題ベクトルということとすると、この話題ベクトルの要素を軸とする空間である話題空間を考えることができる。
【０３４２】
図１９は、話題空間を示している。なお、図１９では、図が煩雑になるのを避けるため、話題ベクトルの要素である単語AとBの２軸によって定義される２次元の話題空間を示してある。
【０３４３】
図１９に示すように、対話用例データベース１４1，１４2，・・・，１４Jそれぞれの話題ベクトル（の終点）は、話題空間にプロットすることができる。
【０３４４】
ある対話用例データベース１４jを特徴付ける話題と、他の対話用例データベース１４j'を特徴付ける話題との類似度（または距離）の尺度としては、例えば、ベクトル空間法における場合と同様に、対話用例データベース１４jを特徴付ける話題を表す話題ベクトルと、対話用例データベース１４j'を特徴付ける話題を表す話題ベクトルとが話題空間でなす角度の余弦(cosine)や、それらの話題ベクトルどうしの話題空間での距離（終点どうしの距離）を採用することができる。
【０３４５】
そして、対話用例データベース１４jを特徴付ける話題を表す話題ベクトルと、対話用例データベース１４j'を特徴付ける話題を表す話題ベクトルとの余弦が大きいほど、またはそれらの話題ベクトルどうしの距離が近いほど、対話用例データベース１４jに記憶された用例群が表す話題と、対話用例データベース１４j'に記憶された用例群が表す課題とが類似していることを表す。
【０３４６】
図１９においては、例えば、対話用例データベース１４1，１４3，１４10は、それぞれの話題ベクトルどうしの距離が近く、従って、対話用例データベース１４1，１４3，１４10それぞれに記憶された用例が表す話題は類似している。
【０３４７】
以上から、実質的応答生成部１３において、入力文とのマッチングを行う用例の用例群と、前回出力された実質的応答文となった用例の用例群との話題の類似性に基づき、入力文と用例とのマッチングを行うことにより、つまり、入力文と用例とのマッチングにおけるスコアの計算において、用例群ごとに優先度を付すことで、それまでの話題に合致した用例群の用例のスコアが大となるようにすることにより、そのような用例が、実質的応答文とされやすくなり、その結果、それまでの話題を維持することが可能となる。
【０３４８】
具体的には、例えば、図１９において、前回出力された実質的応答文となった用例が、対話用例データベース１４1に記憶されていたとすると、その対話用例データベース１４1に記憶された用例、あるいは話題ベクトルが対話用例データベース１４1に近い位置にある対話用例データベース１４3や１４10に記憶された用例は、前回出力された実質的応答文となった用例と同様の話題の用例である可能性が高い。
【０３４９】
逆に、話題ベクトルが対話用例データベース１４1から近い位置にない（遠い位置にある）対話用例データベース１４4乃至１４8などに記憶された用例は、前回出力された実質的応答文となった用例と異なる話題の用例である可能性が高い。
【０３５０】
そこで、実質的応答生成部１３では、それまでの話題を維持した用例が、優先的に、今回の実質的応答文とされるようにするため、入力文と用例＃ｐとのマッチングにおけるスコアの計算を、例えば、式（１３）にしたがって行うことができる。
【０３５１】
【数１３】
2006039120.tif 000015
・・・（１３）
【０３５２】
ここで、式（１３）において、Ur-1は、前回出力された実質的応答文となった用例を表す。また、file(Ur-1)は、用例Ur-1を記憶している対話用例データベース１４を表し、file(用例＃ｐ)は、用例＃ｐを記憶している対話用例データベース１４を表す。また、f_score(file(Ur-1)，file(用例＃ｐ))は、用例Ur-1を記憶している対話用例データベース１４に記憶されている用例群と、用例＃ｐを記憶している対話用例データベース１４に記憶されている用例群との類似度を表し、例えば、それぞれの話題ベクトルどうしが話題空間でなす角度の余弦である。さらに、score(入力文，用例＃ｐ)は、ベクトル空間法やDPマッチング法によって求められる入力文と用例＃ｐとの類似度（スコア）を表す。
【０３５３】
入力文と用例＃ｐとのマッチングにおけるスコアの計算を、式（１３）にしたがって行うことにより、対話履歴を用いなくても、話題が突然変化することを防止し、話題を維持することが可能となる。
【０３５４】
［第５の変形例］
第５の変形例では、例えば、対話用例データベース１４に、一部が変数で記述された用例を記憶させておき、実質的応答生成部１３において、そのような一部が変数で記述された用例から、実質的応答文を生成する。
【０３５５】
このため、対話用例データベース１４に記憶された用例を対象に、ユーザの名前（氏名）に置換することができる単語や、現在時刻、今日の日付に置換することができる単語などの、特定のカテゴリに属する単語を検索し、その単語を、その単語のカテゴリを表す変数に記述し直しておく。
【０３５６】
即ち、対話用例データベース１４において、例えば、ユーザの名前に置換することができる単語は、例えば、変数%USER_NAME%に、現在時刻に置換することができる単語は、例えば、変数%TIME%に、今日の日付に置換することができる単語は、例えば、変数%DATE%に、それぞれ記述し直しておく。
【０３５７】
また、音声対話システムにおいては、対話の相手となるユーザのユーザ名を登録しておき、さらに、変数%USER_NAME%は、ユーザ名に置換し、変数%TIME%と%DATE%は、それぞれ現在時刻と現在の日付に置換する、といったルールを設定しておく。
【０３５８】
この場合、実質的応答生成部１３において、スコアが最も高い用例の次の用例として、例えば、一部が変数で記述された用例「%USER_NAME%さん、今日は%DATE%だよ」が得られたときには、その用例「%USER_NAME%さん、今日は%DATE%だよ」における変数%USER_NAME%と%DATE%を、ルールにしたがった所定の記述に置換し、その置換後の用例を、実質的応答文とすることができる。
【０３５９】
例えば、音声対話システムにおいて、ユーザ名として、「佐藤」が登録されており、今日の日付が１月１日である場合には、上述の用例「%USER_NAME%さん、今日は%DATE%だよ」は、「佐藤さん、今日は１月１日だよ」に置換され、実質的応答文とされる。
【０３６０】
以上のように、対話用例データベース１４に、一部が変数で記述された用例を記憶させておき、実質的応答生成部１３において、用例の変数を、所定の記述に置換することにより、実質的応答文を生成（取得）することにより、用例の数が少ない場合であっても、バリエーション豊かな実質的応答文を得ることが可能となる。
【０３６１】
なお、対話用例データベース１４においては、例えば、図３に示した対話用例データベース１２と同様に、用例を、入力例と、その入力例に対する応答例とのセットの形で記憶しておき、セットになっている入力例と応答例との両方に、特定のカテゴリの単語が共通に存在する場合には、その単語を、その単語のカテゴリを表す変数に置換しておくようにすることができる。この場合、実質的応答生成部１３では、入力文の中の特定のカテゴリの単語を、そのカテゴリを表す変数に置換し、その置換後の入力文と、入力例とのマッチングを行う。そして、実質的応答生成部１３では、マッチングの結果、最も高いスコアが得られた入力例とセットになっている応答例を選択し、その応答例における変数を、入力文における同一の変数に置換された単語に変換して、実質的応答文とする。
【０３６２】
この場合、例えば、対話用例データベース１４に、入力例「私、佐藤太郎と申します」と、応答例「佐藤太郎さんですか、覚えておきます」とのセットが記憶されていたとして、人名のカテゴリに属する単語が、その人名のカテゴリを表す変数＄人名＄に置換されるものとすると、入力例「私、佐藤太郎と申します」と、応答例「佐藤太郎さんですか、覚えておきます」との両方に共通に存在する、人名のカテゴリに属する単語「佐藤太郎」が、人名のカテゴリを表す変数＄人名＄に置換される。その結果、入力例「私、佐藤太郎と申します」と、応答例「佐藤太郎さんですか、覚えておきます」とのセットは、入力例「私、＄人名＄と申します」と、応答例「＄人名＄さんですか、覚えておきます」とのセットにされる。
【０３６３】
そして、入力文が、例えば、「鈴木と申します」であった場合、実質的応答生成部１３では、入力文「鈴木と申します」の中の人名のカテゴリの単語「鈴木」が、そのカテゴリを表す変数＄人名＄に置換され、その置換後の入力文「＄人名＄と申します」と、入力例とのマッチングが行われる。そのマッチングの結果、例えば、上述の入力例「私、＄人名＄と申します」のスコアが最も高かったとすると、実質応答生成部１３では、その入力例「私、＄人名＄と申します」とセットになっている応答例「＄人名＄さんですか、覚えておきます」が選択される。さらに、実質的応答生成部１３では、その応答例「＄人名＄さんですか、覚えておきます」における変数＄人名＄が、入力文「＄人名＄と申します」における同一の変数＄人名＄に置換された単語「鈴木」に変換され、その結果得られる応答例「鈴木さんですか、覚えておきます」が、実質的応答文とされる。
【０３６４】
［第６の変形例］
第６の変形例では、応答出力制御部１６（図２）において、形式的応答文や実質的応答文を、単純に、音声合成部５（図１）に出力するのではなく、形式的応答文や実質的応答文が所定の条件を満たすかどうかを判定し、所定の条件を満たす形式的応答文や実質的応答文のみを、音声合成部５（図１）に出力する。
【０３６５】
即ち、形式的応答文や実質的応答文を、上述したように、入力文と用例とのマッチングによって得られるスコアが最も高い用例の次の用例等とするのでは、すべての用例について、低いスコアしか得られない場合、つまり、入力文に対して適切な応答となる用例が存在しない場合であっても、低いスコアの中で最も高いスコアの用例の次の用例等が、形式的応答文や実質的応答文とされることになる。
【０３６６】
さらに、文長（単語の数）が極端に長い（多い）用例や、逆に、極端に短い用例は、形式的応答文または実質的応答文として適切でないことがある。
【０３６７】
そこで、このような応答として適切でない用例が、形式的応答文や実質的応答文とされて出力されることを防止するため、応答出力制御部１６では、形式的応答文や実質的応答文が所定の条件を満たすかどうかを判定し、所定の条件を満たす形式的応答文や実質的応答文のみを、音声合成部５（図１）に出力することができる。
【０３６８】
ここで、所定の条件としては、例えば、用例のスコアが所定の閾値以上（より大）であるという条件や、用例を構成する単語の数（文長）がC1以上C2以下（未満）であるという条件(C1<C2)などがある。
【０３６９】
所定の条件は、形式的応答文と、実質的応答文とに対して共通に与えることもできるし、別々に与えることもできる。
【０３７０】
第６の変形例では、応答出力制御部１６（図２）が、形式的応答生成部１１からの形式的応答文と、実質的応答生成部１３からの実質的応答文とのそれぞれが、所定の条件を満たすかどうかを判定し、所定の条件を満たす形式的応答文または実質的応答文を、音声合成部５（図１）に出力する。
【０３７１】
従って、第６の変形例では、第１に、形式的応答文と実質的応答文との両方が所定の条件を満たし、音声合成部５に出力されるケース、第２に、形式的応答文と実質的応答文とのうちの形式的応答文だけが所定の条件を満たし、音声合成部５に出力されるケース、第３に、形式的応答文と実質的応答文とのうちの実質的応答文だけが所定の条件を満たし、音声合成部５に出力されるケース、第４に、形式的応答文と実質的応答文との両方が所定の条件を満たさず、いずれも、音声合成部５に出力されないケース、の第１乃至第４のケースがある。
【０３７２】
以上の第１乃至第４のケースのうちの第４のケースでは、形式的応答文と実質的応答文とのいずれも、音声合成部５に出力されないので、そのままだと、ユーザの発話に対して、何らの応答も行われないこととなり、ユーザに、音声対話システムが故障したと勘違いさせるおそれ等がある。そこで、第４のケースでは、応答出力制御部１６において、例えば、「良い返事が思いつかなかったよ」、「ごめん。別の言葉で言ってくれる？」などといったユーザの発話を聞き返す文、あるいはユーザの発話が理解できない旨の文などを、音声合成部５に出力するようにすることができる。
【０３７３】
次に、図２０のフローチャートを参照して、応答出力制御部１６において、形式的応答文と実質的応答文が所定の条件を満たすかどうかを判定し、所定の条件を満たす形式的応答文または実質的応答文を、音声合成部５に出力する対話処理について説明する。
【０３７４】
なお、図２０は、図１５の対話処理において、形式的応答文と実質的応答文が所定の条件を満たすかどうかを判定し、所定の条件を満たす形式的応答文または実質的応答文を出力するようにした対話処理のフローチャートを示しているが、形式的応答文と実質的応答文が所定の条件を満たすかどうかを判定し、所定の条件を満たす形式的応答文または実質的応答文を出力することは、その他、例えば、図１４のフローチャートで説明した対話処理などにも適用可能である。
【０３７５】
図２０の対話処理では、ステップＳ４１において、図１４のステップＳ１における場合と同様に、音声認識部２は、ユーザが発話をするのを待って、そのユーザの発話を音声認識し、その音声認識結果を、単語単位の単語列にして、入力文として、制御部３に供給する。制御部３は、入力文の入力を受けると、ステップＳ４１からＳ４２に進み、図１４のステップＳ２における場合と同様に、その入力文に基づき、対話処理を終了するかどうかを判定する。ステップＳ４２において、対話処理を終了すると判定された場合、対話処理は終了する。
【０３７６】
また、ステップＳ４２において、対話処理を終了しないと判定された場合、制御部３は、入力文を、応答生成部４（図２）の形式的応答生成部１１と実質的応答生成部１３に供給し、ステップＳ４３に進む。ステップＳ４３では、形式的応答生成部１１が、入力文に対して、形式的応答文を生成し、応答出力制御部１６に供給して、ステップＳ４４に進む。
【０３７７】
ステップＳ４４では、応答出力制御部１６が、形式的応答生成部１１からの形式的応答文が所定の条件を満たすかどうか、即ち、例えば、形式的応答文となった応答例とセットになっている入力例について得られたスコアが所定の閾値以上であるかどうかや、形式的応答文となった応答例を構成する単語の数がC1以上C2以下であるかどうかなどを判定する。
【０３７８】
ステップＳ４４において、形式的応答文が所定の条件を満たすと判定された場合、ステップＳ４５に進み、応答出力制御部１６は、その所定の条件を満たす形式的応答文を、制御部３（図１）を介して、音声合成部５に出力し、ステップＳ４６に進む。これにより、図１４で説明したように、音声合成部５では、形式的応答文を対象とした音声合成が行われる。
【０３７９】
一方、ステップＳ４４において、形式的応答文が所定の条件を満たさないと判定された場合、ステップＳ４５をスキップして、ステップＳ４６に進む。従って、この場合、所定の条件を満たさない形式的応答文は、応答として出力されない。
【０３８０】
ステップＳ４６では、実質的応答生成部１３が、入力文に対して、実質的応答文を生成し、応答出力制御部１６に供給して、ステップＳ４７に進む。
【０３８１】
ステップＳ４７では、応答出力制御部１６が、実質的応答生成部１３からの実質的応答文が所定の条件を満たすかどうか、即ち、例えば、実質的応答文となった用例の直前の用例について得られたスコアが所定の閾値以上であるかどうかや、実質的応答文となった用例を構成する単語の数がC1以上C2以下であるかどうかなどを判定する。
【０３８２】
ステップＳ４７において、実質的応答文が所定の条件を満たさないと判定された場合、ステップＳ４８およびＳ４９をスキップして、ステップＳ５０に進む。この場合、所定の条件を満たさない実質的応答文は、応答として出力されない。
【０３８３】
ここで、ステップＳ４７において、実質的応答文が所定の条件を満たさないと判定された場合において、直前のステップＳ４４でも、形式的応答文が所定の条件を満たさないと判定されているときは、上述の第４のケースに該当し、形式的応答文および実質的応答文のいずれも出力されない。そこで、この場合、応答出力制御部１６は、上述したように、「良い返事が思いつかなかったよ」、「ごめん。別の言葉で言ってくれる？」などといっ文を、最終的な応答文として、音声合成部５に出力し、その後、ステップＳ４７からＳ５０に進む。
【０３８４】
一方、ステップＳ４７において、実質的応答文が所定の条件を満たすと判定された場合、ステップＳ４８に進み、応答出力制御部１６は、図１５のステップＳ２６における場合と同様に、所定の条件を満たす実質的応答文の中に、直前のステップＳ４５で音声合成部５に出力した形式的応答文と重複する表記（部分）が存在するかどうかを調査し、そのような部分（重複部分）が存在する場合には、その重複部分を、実質的応答文から削除して、ステップＳ４９に進む。
【０３８５】
なお、ステップＳ４８では、実質的応答文の中に、形式的応答文との重複部分が存在しない場合には、実質的応答文に対しては、何ら処理は行われない。
【０３８６】
ステップＳ４９では、応答出力制御部１６は、実質的応答文を、制御部３（図１）を介して、音声合成部５に出力し、ステップＳ５０に進む。ステップＳ５０では、応答出力制御部１６は、図１４のステップＳ７で説明したように、入力文と、その入力文に対して出力した最終的な応答文によって、対話履歴データベース１５の対話履歴を更新して、ステップＳ４１に戻り、以下、同様の処理が繰り返される。
【０３８７】
［第７の変形例］
第７の変形例では、音声認識結果の正解確信度（信頼度）(confidence measure)が求められ、形式的応答生成部１１または実質的応答部生成部１３において、その正解確信度にも基づいて、形式的応答文または実質的応答文が生成される。
【０３８８】
即ち、図１の音声対話システムにおいて、音声認識部２は、音声対話システム用に新たに作成しても良いが、既存の音声認識部（音声認識装置または音声認識モジュール）を流用することもできる。
【０３８９】
そして、既存の音声認識部には、音声認識結果としての単語列を構成する単語ごとに、その単語の確からしさを表す正解確信度を求め、音声認識結果とともに出力するものがある。
【０３９０】
ここで、例えば、ユーザの発話が、「明日サッカーしようよ」であり、その発話に対する音声認識結果として、「明日朝から使用から」が得られた場合、正解確信度は、音声認識結果「明日朝から使用から」の各単語に対して、例えば、「明日(0.98)朝(0.3)から(0.5)使用(0.6)から(0.1)」といったように得られる。ここで、「明日(0.98)朝(0.3)から(0.5)使用(0.6)から(0.1)」において、カッコ()内の数字が、その直前の単語の正解確信度を表し、ここでは、正解確信度の値が大きいほど、音声認識結果として確からしいことを表す。
【０３９１】
音声認識結果「明日(0.98)朝(0.3)から(0.5)使用(0.6)から(0.1)」において、例えば、単語「明日」は、ユーザの発話における単語「明日」に一致しており、0.98という高い正解確信度が得られている。また、例えば、音声認識結果「明日(0.98)朝(0.3)から(0.5)使用(0.6)から(0.1)」において、例えば、単語「朝」は、ユーザの発話における単語「サッカー」の全部または一部を誤認識したものであり、0.3という低い正解確信度が得られている。
【０３９２】
音声認識部２が、音声認識結果としての単語列を構成する単語ごとに、正解確信度を求めて出力する場合には、形式的応答生成部１１または実質的応答部生成部１３において、その正解確信度にも基づいて、音声認識結果である入力文に対する形式的応答文または実質的応答文を生成することができる。
【０３９３】
即ち、音声認識結果である入力文において、正解確信度の高い単語は、音声認識結果として正解である可能性が高く、逆に、正解確信度の低い単語は、音声認識結果として誤っている可能性が高い。
【０３９４】
そして、入力文と用例とのマッチングでは、入力文において、音声認識結果として誤っている可能性が高い単語、つまり、正解確信度の低い単語の影響を受けにくいようにするのが望ましい。
【０３９５】
そこで、形式的応答生成部１１や実質的応答部生成部１３では、入力文と用例とのマッチングにおけるスコアの計算を、入力文の各単語の正解確信度に基づいて行うことにより、正解確信度の低い単語の影響を受けにくいスコアを求めるようにすることができる。
【０３９６】
具体的には、入力文と用例とのマッチングを、例えば、ベクトル空間法を用いて行う場合には、入力文を表すベクトル（式（１）におけるベクトルｙ）の各要素の値として、tf（入力文における、ベクトルの要素に対応する単語の数）に代えて、例えば、対応する単語の正解確信度の総和を用いる。
【０３９７】
従って、入力文である音声認識結果が、例えば、上述した「明日(0.98)朝(0.3)から(0.5)使用(0.6)から(0.1)」であった場合、その入力文のベクトルにおいて、単語「明日」に対応する要素の値は、「明日」の正解確信度である0.98と、単語「朝」に対応する要素の値は、「朝」の正解確信度である0.3と、単語「から」に対応する要素の値は、２つの「から」の正解確信度0.5および0.1の和である0.6と、単語「使用」に対応する要素の値は、「使用」の正解確信度である0.6と、それぞれされる。
【０３９８】
また、入力文と用例とのマッチングを、例えば、DPマッチング法を用いて行う場合には、入力文の各単語の重みとして、その単語の正確確信度を用いることができる。
【０３９９】
従って、入力文である音声認識結果が、例えば、上述した「明日(0.98)朝(0.3)から(0.5)使用(0.6)から(0.1)」であった場合、入力文の単語「明日」、「朝」、「から」、「使用」、「から」の重みは、それぞれ、0.98，0.3，0.5，0.6，0.1とされる。
【０４００】
ここで、上述したように、文の形式は、助詞や助動詞などに、特に影響を受けるので、形式的応答文を生成する形式的応答生成部１１でのマッチングは、入力文および用例における助詞や助動詞の影響を強く受けるように行うのが望ましい。
【０４０１】
しかしながら、形式的応答生成部１１において、単に、助詞や助動詞の影響を強く受けるようなマッチングを行うと、入力文である音声認識結果において、助詞や助動詞に、認識誤りが生じている場合には、そのような誤っている助詞や助動詞の影響を強く受けることになり、ユーザの発話に対して不自然な形式的応答文が得られることがありうる。
【０４０２】
そこで、上述のように、入力文と用例とのマッチングにおけるスコアの計算を、入力文の各単語の正解確信度に基づいて行うことにより、正解確信度の低い単語、つまり、認識誤りが生じている単語の影響を受けにくいスコアを求めることができ、ユーザの発話に対して不自然な形式的応答文が得られることを防止することができる。
【０４０３】
なお、正解確信度の計算方法としては、各種の方法が提案されているが、ここでは、音声認識結果の正解確信度を単語単位で求めることができる、あらゆる方法を採用することができる。
【０４０４】
ここで、単語（単位）の正解確信度を求める方法の例について説明する。
【０４０５】
例えば、音声認識部２（図１）が、HMM(Hidden Markov Model)法による音声認識を行う場合、次のようにして、正解確信度を計算することができる。
【０４０６】
即ち、一般的に、HMM音響モデルによる音声認識では、音素や音節などを認識の基本単位とし、単語モデルは、音素や音節などのHMMの連結としてモデル化される。音声認識において、認識エラー（認識誤り）は、入力された音声信号を正確な音素単位や音節単位等に分離していないことによって生じることがある。逆に言えば、入力された音声信号について、音素単位等に分離する境界（位置）が正確に決定されていれば、正確な音素等の認識、さらには、正確な単語や文の認識を行うことができる。
【０４０７】
そこで、音声認識結果において、入力された音声信号に対して、音素単位等に正確に境界が決定されているかどうかを検証する尺度として、音素境界検証尺度関数PBVMを導入する。そして、音声認識結果（単語列）について、音素境界検証尺度関数PBVMを音素単位で求め、その音素単位の音素境界検証尺度関数PBVMを、単語単位に拡張することで、単語の正解確信度とする。
【０４０８】
音素境界検証尺度関数PBVMは、例えば次のようにして算出することができる。
【０４０９】
まず、音声認識結果（単語列）の、ある音素ｋと次の音素ｋ＋１との間の境界を音素境界ｋとして、音素境界ｋの左右（音素境界ｋの時系列で前後）それぞれのコンテキストを定義する。ここで、音素境界ｋの左右（前後）それぞれのコンテキストの定義としては、例えば、図２１乃至図２３に示す３つのいずれかを採用することができる。
【０４１０】
即ち、図２１は、音素境界ｋの左右（前後）の２つのコンテキストの第１の定義の例を示している。
【０４１１】
図２１では、音声認識結果における音素ｋ，ｋ＋１，およびｋ＋２、並びに、音素ｋとｋ＋１との境界である音素境界ｋ、および音素ｋ＋１とｋ＋２との境界である音素境界ｋ＋１が示されている。また、音素kおよびｋ＋１については、音声信号のフレームの区切りが、点線で示されており、例えば、音素ｋの最後のフレームがフレームｉ、音素ｋ＋１の最初のフレームがフレームｉ＋１となっている。さらに、音素ｋでは、HMM状態（HMMの状態）が状態ａ，ｂ，ｃと遷移し、音素ｋ＋１では、HMM状態が状態a’，ｂ’，ｃ’と遷移している。
【０４１２】
なお、図２１（後述する図２２および図２３も同様）における実線の曲線は、例えば、音声信号のパワーの推移を表す。
【０４１３】
音素境界ｋの左右（前後）の２つのコンテキストの第１の定義では、図２１に示すように、音素境界ｋの左（音素境界ｋより時系列で前）のコンテキストは、音素ｋの最後のHMM状態である状態ｃに対応する全フレーム（フレーム（ｉ−４）乃至フレームｉ）からなり、音素境界ｋの左（音素境界ｋより時系列で後）のコンテキストは、音素ｋ＋１の最初のHMM状態である状態ａ’に対応する全フレーム（フレーム（ｉ＋１）乃至フレーム（ｉ＋４））からなる。
【０４１４】
図２２は、音素境界ｋの左右（前後）の２つのコンテキストの第２の定義の例を示している。なお、図２２において、図２１と対応する部分については、同様の符号が付してあり、その説明は適宜省略する（後述する図２３も同様）。
【０４１５】
音素境界ｋの左右（前後）の２つのコンテキストの第２の定義では、図２２に示すように、音素境界ｋの左のコンテキストは、音素ｋの最後から２番目のHMM状態である状態ｂに対応する全フレームからなり、音素境界ｋの左のコンテキストは、音素ｋ＋１の２番目のHMM状態である状態ｂ’に対応する全フレームからなる。
【０４１６】
図２３は、音素境界ｋの左右（前後）の２つのコンテキストの第３の定義の例を示している。
【０４１７】
音素境界ｋの左右（前後）の２つのコンテキストの第３の定義では、図２３に示すように、音素境界ｋの左のコンテキストは、フレーム（ｉ−ｎ）乃至フレームｉからなり、音素境界ｋの左のコンテキストは、フレーム（ｉ＋１）乃至フレーム（ｉ＋ｍ）からなる。ここで、ｎおよびｍは、１以上の任意の整数である。
【０４１８】
次に、音素境界kの左右の２つのコンテキストの類似度を表す類似度関数を求めるが、そのために、コンテキストを表すベクトルを導入する。
【０４１９】
例えば、音声認識を行うために、音声の特徴量として、スペクトルがフレームの単位で抽出されるものとすると、コンテキストのベクトル（コンテキストを表すベクトル）としては、例えば、そのコンテキストを構成する各フレームから得られるスペクトルの係数を要素とするベクトルの、コンテキストを構成する全フレームについての平均ベクトルを採用することができる。
【０４２０】
２つのコンテキストのベクトルをｘとｙとするとき、ベクトルｘとｙの類似度を表す類似度関数ｓ（ｘ，ｙ）は、例えば、ベクトル空間法によって、次式（１４）で表すことができる。
【０４２１】
【数１４】
2006039120.tif 000016
・・・・・・・・・・（１４）
【０４２２】
式（１４）において、|x|と|y|は、それぞれ、ベクトルｘとｙの大きさを表し、xtは、ベクトルｘの転置を表す。なお、式（１４）の類似度関数ｓ（ｘ，ｙ）は、ベクトルｘとｙの内積ｘtｙを、ベクトルｘとｙの大きさの積|x|・|y|で除算したものであるから、２つのベクトルｘとｙとの角度（cosθ）を意味する。
【０４２３】
ここで、類似度関数ｓ（ｘ，ｙ）は、その値が小さいほど、ベクトルｘとｙとが類似していることを表す。
【０４２４】
ある音素境界ｋの音素境界検証尺度関数PBVM（ｋ）は、類似度関数ｓ（ｘ，ｙ）を用いて、例えば、式（１５）で表すことができる。
【０４２５】
【数１５】
2006039120.tif 000017
・・・・・・・・・・（１５）
【０４２６】
なお、類似度関数ｓ（ｘ，ｙ）の他に、２つのベクトルｘとｙとの類似度を求める関数としては、２つのベクトルｘとｙとの距離を表す距離関数ｄ（ｘ，ｙ）（但し、ｄ（ｘ，ｙ）は、−１乃至１の範囲に正規化されるものとする）も考えられる。この場合、音素ｋの音素境界検証尺度関数PBVM（ｋ）は、式（１６）のように表すことができる。
【０４２７】
【数１６】
2006039120.tif 000018
・・・・・・・・・・（１６）
【０４２８】
なお、音素境界ｋにおけるコンテキストのベクトルx，yとしては、そのコンテキストを構成する各フレームのスペクトルを表すベクトル（フレームから得られるスペクトルの係数を要素とするベクトル）の、コンテキストを構成する全フレームの平均値（平均ベクトル）の他、コンテキストを構成するフレームのうちの、例えば、音素境界ｋに最も近いフレームのスペクトルを表すベクトルから、コンテキストを構成するフレームのスペクトルを表すベクトルの、全フレームについての平均値を減算して得られるベクトルなどを採用することが可能である。また、HMMにおける特徴量（音声の特徴ベクトル）の出力確率密度関数がガウス分布を用いて表される場合には、例えば、コンテキストを構成するフレームに対応するHMM状態における出力確率密度関数を表すガウス分布を定義する平均ベクトルから音素境界ｋにおけるコンテキストのベクトルx，yを求めることが可能である。
【０４２９】
上述の式（１５）または式（１６）で求められる、音素境界ｋの音素境界検証尺度関数PBVM（ｋ）は、変数ｋに対して、０乃至１の間の値を持つ連続関数となり、PBVM（ｋ）＝０は、音素境界ｋの左右のコンテキストのベクトルが、互いに同一方向であることを意味する。即ち、音素境界検証尺度関数PBVM（ｋ）の関数値が０である場合、音素境界ｋは、実際の音素境界ではない可能性が高く、従って、認識エラーが生じている可能性が高いことを表している。
【０４３０】
一方、音素境界検証尺度関数PBVM（ｋ）の関数値が１である場合、音素境界ｋの左右のコンテキストのベクトルが、互いに反対方向であることを意味し、音素境界ｋは、音声信号中の正確な音素境界である可能性が高いことを表している。
【０４３１】
以上のように、０乃至１の範囲の音素境界検証尺度関数PBVM（ｋ）は、音素境界ｋが実際の音素境界である確からしさを表す。
【０４３２】
次に、音声認識結果としての単語列の各単語は、複数の音素で構成されるので、単語の正解確信度は、その単語における音素境界ｋの確からしさ、つまり、その単語を構成する音素の音素境界検証尺度関数PBVMから演算することができる。
【０４３３】
具体的には、単語の正解確信度としては、例えば、単語の各音素の音素境界検証尺度関数PBVMの平均値、単語の各音素の音素境界検証尺度関数PBVMの最小値、単語の各音素の音素境界検証尺度関数PBVMの最大値と最小値の差、単語の各音素の音素境界検証尺度関数PBVMの標準偏差、単語の各音素の音素境界検証尺度関数PBVMの変動係数（標準偏差を平均値で除算した値）などを採用することができる。
【０４３４】
なお、正解確信度としては、その他、例えば、特開平９−２５９２２６号公報に記載されているように、音声認識結果とする第１位の候補と、次の第２位の候補とのスコアの差を採用することも可能である。さらに正解確信度は、HMMから計算されるフレームごとの音響スコアや、ニューラルネットワークを用いて計算することも可能である。
【０４３５】
［第８の変形例］
第８の変形列では、実質的応答生成部１３において、対話履歴も用例として用いて応答文を生成する。
【０４３６】
即ち、図１０や図１１の実施の形態では、実質的応答生成部１３において、実質的応答文を生成するにあたり、入力文との用例とのマッチングを行うときのスコアの計算に、対話履歴データベース１５（図２）に記憶された対話履歴を、いわば補助的に用いることとしたが、実質的応答生成部１３では、対話履歴を用例として用いて、実質的応答文を生成することが可能である。
【０４３７】
この場合、対話履歴データベース１５に記憶された対話履歴における各発言（図９）のすべてを、用例データベース１４に記憶されている用例と同様に扱っても良いが、そのようにすると、応答出力制御部１６（図２）から出力された最終的な応答文が、入力文に対して不適切な文であったときに、その後、その不適切な文が、実質的応答文として出力されやすくなるという弊害が起こりうる。
【０４３８】
そこで、対話履歴を用例として用いる場合には、第３の変形例における場合と同様に、図９に示した対話履歴において、特定の話者の発言を、優先的に、実質的応答文とするのが望ましい。
【０４３９】
即ち、図９の対話履歴において、例えば、話者が「ユーザ」になっている発言（例えば、図９における発言番号がｒ−４やｒ−２の発言）を、他の話者（図９では、「システム」）の発言よりも優先的に、実質的応答文とするのが望ましい。この場合、ユーザによる過去の発話内容が、優先的に実質的応答文とされるので、ユーザに、「このシステムは言葉を学習している」といった印象を与えることができる。
【０４４０】
また、対話履歴を用例として用いる場合には、第４の変形例における場合と同様に、対話履歴における発言を、所定の単位の発言群ごとに分けて記憶しておき、入力文と用例としての発言とのマッチングにおいて、所定の単位の発言群ごとに優先度を付して、式（１３）で説明したようにスコアを計算することで、それまでの話題を維持した発言が、実質的応答文として出力されやすくするようにすることができる。
【０４４１】
この場合、対話履歴における各発言を、所定の単位の発言群ごと、つまり、例えば、ある話題の発言群ごとに分けて記憶する必要があるが、これは、例えば、以下のようにして行うことができる。
【０４４２】
即ち、対話履歴データベース１５において、ユーザとの対話における話題の変更を検出し、前回の話題の変更の検出の直後から、今回の話題の変更の検出の直前までの発言（入力文と、それに対する最終的な応答文）を、１つの対話履歴ファイルとすることにより、話題ごとの発言を格納した対話履歴ファイルを記憶することができる。
【０４４３】
ここで、話題の変更の検出は、例えば、ユーザが、「ところで」や「話は変わるけど」などといった、話題を変更する内容の発話を行ったかどうかを判定することにより行うことができる。ユーザが話題を変更する内容の発話を行ったかどうかの判定は、例えば、話題を変更するときの言い回しの用例（以下、適宜、話題変更用用例という）を多数用意し、入力文と話題変更用用例とのマッチングによって得られるスコアが所定の閾値以上であるかどうかによって行うことができる。
【０４４４】
また、例えば、ユーザが一定時間以上黙っていた場合に、話題の変更があったとしても良い。
【０４４５】
以上のように、話題ごとの対話履歴ファイルを構成する場合には、対話履歴データベース１５では、対話処理が開始されると、対話履歴ファイルがオープンされ、その対話履歴ファイルに対して、応答出力制御部１６から供給される入力文と、その入力文に対する最終的な応答文とが、発言として書き込まれていく（図９）。そして、話題の変更が検出されると、それまでオープンされていた対話履歴ファイルがクローズされ、新規の対話履歴ファイルがオープンされる。以下、同様に、その新規の対話履歴ファイルに対して、応答出力制御部１６から供給される入力文と、その入力文に対する最終的な応答文とが、発言（図９）として書き込まれていく。
【０４４６】
ここで、対話履歴ファイルのファイル名の命名規則を、例えば、所定の文字列であるsubject、所定のシーケンシャルな数字、および、所定の拡張子であるxxxの並びと定義しておけば、対話履歴データベース１５においては、対話履歴ファイルとして、ファイル名がsubject0.xxx，subject1.xxx，・・・のファイルが順次増えていく。
【０４４７】
なお、ここでは、対話履歴における発言を用例として用いるため、対話処理が実行されている間、対話履歴データベース１５に存在する対話履歴ファイルのすべては、対話履歴における発言の読み出しのために、少なくとも読み出し用でオープンする必要がある。また、現に、入力文と最終的な応答文とが、対話履歴として書き込まれる対話履歴ファイルは、その書き込みのために、書き込み用でもオープンする必要がある。
【０４４８】
さらに、対話履歴データベース１５の記憶容量は有限であるため、例えば、（用例として用いられる）発言が実質的応答文として採用される頻度が少ない対話履歴ファイルは、削除するようにすることができる。
【０４４９】
［第９の変形例］
第９の変形例では、音声認識結果の、いわゆるＮベスト、即ち、尤度の高い上位Ｎ個の音声認識結果それぞれの尤度（尤度を表すスコア）と、用例とのマッチングにより求められるスコアとを用いて、形式的応答文や実質的応答文を生成する。
【０４５０】
即ち、上述の場合には、音声認識部２（図１）において、いわゆる認識仮説の中で最も尤度が最も高い認識仮説を、音声認識結果として出力するようにしたが、音声認識部２には、認識仮説のうちの尤度の高い上位Ｎ個の認識仮説を入力文として、尤度とともに出力させ、形式的応答生成部１１や実質的応答生成部１３では、その尤度の高い上位Ｎ個の認識仮説である入力文それぞれと、用例とのマッチングを行い、その結果得られる、Ｎ個の入力文それぞれに対する各用例のスコアと、Ｎ個の入力文それぞれの尤度（Ｎ個の入力文としての認識仮説の尤度）とを考慮して、各入力文に対する各用例の最終的なスコアを求めることができる。
【０４５１】
この場合、対話用例データベース１２や１４に記憶されている用例の数を、Pで表すこととすると、形式的応答生成部１１や実質的応答生成部１３では、N個の入力文それぞれと、P個の用例それぞれとのマッチング、即ち、N×P回のマッチングが行われる。
【０４５２】
このマッチングでは、例えば、式（１７）にしたがって、各入力文に対する各用例の最終的なスコアが求められる。
【０４５３】
【数１７】
2006039120.tif 000019
・・・（１７）
【０４５４】
ここで、式（１７）において、入力文#nは、N個の入力文（上位N個の認識仮説）のうちのn番目の入力文を表し、用例#pは、P個の用例のうちのp番目の用例を表す。また、total_score(入力文#n，用例#p）は、入力文#nに対する用例#pの最終的なスコアを表す。さらに、recog_score(入力文#n)は、入力文（認識仮説）#nの尤度を表し、match_score(入力文#n，用例#p)は、入力文#nに対する用例#pの類似度を表すスコアで、上述したベクトル空間法やDPマッチング法によって求められる。また、２つの変数a，bを引数とする関数g(a,b)は、その引数aとbそれぞれに対して単調増加する関数である。関数g(a,b)としては、例えば、g(a,b)=c1a+c2b（c1とc2は非負の定数）や、g(a,b)=abなどを採用することができる。
【０４５５】
形式的応答生成部１１や実質的応答生成部１３では、N個の入力文#nそれぞれに対する、P個の用例#pそれぞれの最終的なスコアtotal_score(入力文#n，用例#p)が、式（１７）にしたがって求められ、例えば、この最終的なスコアtotal_score(入力文#n，用例#p）が最大となる用例#pが、形式的応答文や実質的応答文とされる。
【０４５６】
なお、形式的応答生成部１１と実質的応答生成部１３とにおいて、最終的なスコアtotal_score(入力文#n，用例#p）が最大となる入力文#nは、異なっていても同一であってもかまわない。
【０４５７】
但し、最終的なスコアtotal_score(入力文#n，用例#p)が最大となる入力文#nが、形式的応答生成部１１と実質的応答生成部１３とで異なる場合には、形式的応答生成部１１と実質的応答生成部１３に対して、あるユーザの発話について別々の入力文（音声認識結果）が供給されたのと等価な状態であり、この、ある発話についての別々の入力文を、どのように、対話履歴データベース１５に対話履歴における発言として記憶させるかが問題となる。
【０４５８】
例えば、形式的応答生成部１１が対話履歴を用いずに、用例とのマッチングを行い、実質的応答生成部１３が対話履歴を用いて、用例とのマッチングを行う場合には、実質的応答生成部１３において最終的なスコアtotal_score(入力文#n，用例#p）が最大となった入力文#nの方を、対話履歴における発言として記憶させることができる。
【０４５９】
その他、単純に、形式的応答生成部１１において最終的なスコアtotal_score(入力文#n1，用例#p)が最大となった入力文#n1と、実質的応答生成部１３において最終的なスコアtotal_score(入力文#n2，用例#p)が最大となった入力文#n2との両方を、対話履歴における発言として記憶させるようにしてもよい。
【０４６０】
但し、入力文#n1と#n2との両方を、対話履歴における発言として記憶させる場合には、対話履歴に基づくマッチング（図１０乃至図１２で説明したマッチングと、対話履歴における発言を用例として用いるマッチングの両方を含む）において、その２つの入力文#n1と#n2を、１つの発言として扱う必要がある。
【０４６１】
このため、例えば、ベクトル空間法によるマッチングを行う場合には、例えば、入力文#n1を表すベクトルV1と、入力文#n2を表すベクトルV2との平均ベクトル(V1+V2)/2を、２つの入力文#n1と#n2に対応する１つの発言を表すベクトルとして用いる必要がある。
【０４６２】
［第１０の変形例］
第１０の変形例では、形式的応答生成部１１において、ユーザの発話の音響的特徴を用いて、形式的応答文を生成する。
【０４６３】
即ち、上述の場合には、形式的応答生成部１１において、ユーザの発話の音声認識結果を入力文として、その入力文を用いることによって、即ち、入力文と用例とのマッチングを行うことによって、形式的応答文を生成したが、形式的応答生成部１１では、音声認識結果である入力文に代えて、あるいは入力文とともに、ユーザの発話の音響的特徴を用いることによって、形式的応答文を生成することができる。
【０４６４】
ここで、ユーザの発話の音響的特徴としては、例えば、その発話の発話長（音声区間）や、韻律に関する韻律情報などがある。
【０４６５】
形式的応答生成部１１において、例えば、ユーザの発話の発話長を用いることによって、形式的応答文を生成する場合には、発話長が長くなるに連れて、例えば、「うん」、「うんうん」、「うんうんうん」、・・・といったように、「うん」などの同一の単語の繰り返し回数が多くなる形式的応答文を生成することができる。
【０４６６】
また、形式的応答生成部１１では、発話長が長くなるに連れて、例えば、「そう」、「そうなんだ」、「へー、そうなんだ」、・・・といったように、語数が多くなる形式的応答文を生成することができる。発話長が長くなるに連れて、語数が多くなる形式的応答文を生成するには、例えば、語数の多い用例のスコアが高くなるように、優先度をつけて、入力文と用例とのマッチングを行えばよい。あるいは、発話長と、その発話長に応じた語数の用例とを対応付けておき、ユーザの発話の発話長に応じた語数の用例を、形式的応答文とすることができる。この場合、形式的応答文の生成には、音声認識結果を用いていないので、即座に、形式的応答文を得ることができる。なお、ある発話長に複数の用例が対応付けられている場合には、例えば、その複数の用例からランダムに、形式的応答文とする用例を選択すればよい。
【０４６７】
その他、形式的応答生成部１１では、上述の場合と同様に、スコアが最も高い用例を形式的応答文とし、音声合成部５（図１）において、発話長が長くなるに連れて、形式的応答文に対応する合成音の再生速度（出力速度）を遅くしても良い。
【０４６８】
いずれにしても、ユーザの発話の発話長が長くなるほど、形式的応答文に対応する合成音の出力が開始されてから終了するまでの時間も長くなる。従って、例えば、図１４のフローチャート等で説明したように、応答出力制御部１６において、形式的応答文の出力を、実質的応答文の生成を待たずに行うことによって、ユーザの発話が終了した後、その発話に対する応答としての合成音の出力が開始されるまでの応答時間が長くなることを防止し、さらには、形式的応答文の出力と、実質的応答文の出力との間に、不自然な間ができることを防止することができる。
【０４６９】
即ち、ユーザの発話の発話長が長い場合には、音声認識部２（図１）において音声認識結果が得られるまでに時間を要し、さらに、そのような発話長の長い発話の音声認識結果を入力文として、用例とのマッチングを行う実質的応答生成部１３でも、そのマッチングの処理に時間を要することになる。従って、形式的応答生成部１１において、音声認識結果が得られるまで待って、用例とのマッチングを行い、形式的応答文を生成するのでは、形式的応答文が得られるまでに時間を要し、応答時間が長くなる。
【０４７０】
また、上述したように、実質的応答生成部１３では、形式的応答生成部１１のマッチングで用いられる用例に比較して数が多い用例を用いてマッチングが行われるため、実質的応答文の生成に要する時間は、形式的応答文の生成に要する時間よりもさらに長時間となる。従って、形式的応答文が生成され、合成音による出力が終了しても、まだ、実質的応答文の生成が終了していない場合には、形式的応答文の出力が終了してから、実質的応答文の出力が開始されるまでの間に、不自然な間ができることになる。
【０４７１】
そこで、形式的応答生成部１１において、例えば、発話長に対応した回数だけ単語「うん」を繰り返す形式的応答文を生成し、応答出力制御部１６において、その形式的応答文の出力を、実質的応答文の生成を待たずに行うことによって、ユーザの発話が終了した後、即座に、形式的応答文による応答を行うことができる。さらに、形式的応答文は、例えば、発話長に対応した回数だけ単語「うん」を繰り返す文であるから、発話長が長いほど、形式的応答文が合成音によって出力されている時間が長くなる。従って、その間に、音声認識部２において音声認識結果が得られ、さらに、実質的応答生成部１３において実質的応答文の生成を完了することが可能となり、その結果、上述したような不自然な間ができることを防止することができる。
【０４７２】
なお、形式的応答生成部１１では、ユーザの発話の発話長の他、その韻律情報のうちの、例えば、ピッチ（周波数）などを用いることによって、形式的応答文を生成することが可能である。
【０４７３】
具体的には、形式的応答生成部１１において、ユーザの発話のピッチの変化によって、ユーザの発話が平叙文または疑問文のうちのいずれであるかを判定し、ユーザの発話が平叙文である場合には、例えば、「そうなんだ」などの、平叙文に対する形式的な応答となる文を、形式的応答文として生成することができる。また、形式的応答生成部１１では、ユーザの発話が疑問文である場合には、例えば、「うーん・・・」などの、疑問文に対する形式的な応答となる文を、形式的応答文として生成することができる。さらに、形式的応答生成部１１では、あわせて、上述したように、ユーザの発話の発話長に応じて、形式的応答文の長さを変化させることもできる。
【０４７４】
また、ユーザの発話の韻律情報から、ユーザの感情を推定し、形式的応答生成部１１では、その感情に応じて、形式的応答文を生成することもできる。即ち、形式的応答生成部１１では、例えば、ユーザの感情が高ぶっている場合には、ユーザを刺激しないように、ユーザの発話を肯定する形式的応答文を生成することができる。
【０４７５】
ここで、ユーザの感情の推定には、例えば、特開平5-12023号公報に記載の方法などを採用することができる。また、ユーザの感情に応じた応答文の生成には、例えば、特開平8-339446号公報に記載の方法などを採用することができる。
【０４７６】
ユーザの発話の発話長や韻律情報の抽出、さらには、ユーザの感情の推定を行う処理は、一般に、音声認識処理よりも負荷が軽いので、形式的応答生成部１１において、音声認識結果である入力文に代えて、発話長や、韻律情報、ユーザの感情を用いて形式的応答文を生成して出力することにより、応答時間（ユーザが発話してから応答の出力が開始されるまでの時間）を一層短縮することができる。
【０４７７】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０４７８】
そこで、図２４は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０４７９】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やＲＯＭ１０３に予め記録しておくことができる。
【０４８０】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体１１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０４８１】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部１０８で受信し、内蔵するハードディスク１０５にインストールすることができる。
【０４８２】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵している。CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されており、CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部１０７が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、また、CPU１０２は、ハードディスク１０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１０８で受信されてハードディスク１０５にインストールされたプログラム、またはドライブ１０９に装着されたリムーバブル記録媒体１１１から読み出されてハードディスク１０５にインストールされたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、LCD(Liquid Crystal Display)やスピーカ等で構成される出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０４８３】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０４８４】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０４８５】
なお、本実施の形態では、形式的応答生成部１１が参照する対話用例データベース１２では、図３に示したように、用例を、入力例と、その入力例に対する応答例とのセットの形で記憶し、実質的応答生成部１３が参照する対話用例データベース１４では、図７に示したように、用例を、１レコードに１発言の形で記憶するようにしたが、対話用例データベース１２では、対話用例データベース１４のように、用例を、１レコードに１発言の形で記憶することができるし、対話用例データベース１４でも、対話用例データベース１２のように、用例を、入力例と、その入力例に対する応答例とのセットの形で記憶することができる。
【０４８６】
また、上述した説明のうち、形式的応答生成部１１または実質的応答生成部１３のうちのいずれか一方についてだけした説明は、適宜、他方にも適用可能である。
【０４８７】
さらに、図１の音声対話システムは、例えば、現実のロボットや、ディスプレイに表示される仮想的なキャラクタ、翻訳を伴う対話システム、その他に適用可能である。
【０４８８】
また、音声対話システムにおいて処理の対象となる言語は、日本語に限定されるものではなく、音声対話システムでは、英語その他の任意の言語を対象として処理を行うことが可能である。
【図面の簡単な説明】
【０４８９】
【図１】本発明を適用した音声対話システムの一実施の形態の構成例を示すブロック図である。
【図２】応答生成部４の構成例を示すブロック図である。
【図３】対話用例データベース１２に記憶された用例の例を示す図である。
【図４】形式的応答生成部１１による形式的応答文の生成を説明するための図である。
【図５】ベクトル空間法を説明するための図である。
【図６】入力文と入力例それぞれを表すベクトルを説明するための図である。
【図７】対話用例データベース１４に記憶された用例の例を示す図である。
【図８】実質的応答生成部１３による実質的応答文の生成を説明するための図である。
【図９】対話履歴データベース１５に記憶される対話履歴を示す図である。
【図１０】対話履歴を用いた実質的応答文の生成を説明するための図である。
【図１１】対話履歴を用いた実質的応答文の生成を説明するための図である。
【図１２】忘却曲線を模した関数を示す図である。
【図１３】応答出力制御部１６による出力制御を説明するための図である。
【図１４】対話処理の第１実施の形態と、音声合成処理とを説明するフローチャートである。
【図１５】対話処理の第２実施の形態を説明するフローチャートである。
【図１６】対話処理の第３実施の形態を説明するフローチャートである。
【図１７】DPマッチング法による入力文と用例とのマッチングを説明するための図である。
【図１８】DPマッチング法による入力文と用例とのマッチングを説明するための図である。
【図１９】話題空間を示す図である。
【図２０】対話処理の第４実施の形態を説明するフローチャートである。
【図２１】音素境界ｋの左右の２つのコンテキストの定義を説明する図である。
【図２２】音素境界ｋの左右の２つのコンテキストの定義を説明する図である。
【図２３】音素境界ｋの左右の２つのコンテキストの定義を説明する図である。
【図２４】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
【０４９０】
１  マイク，  ２  音声認識部，  ３  制御部，  ４  応答生成部，  ５  音声合成部，  ６  スピーカ，  １１  形式的応答生成部，  １２1乃至１２I  対話用例データベース，  １３  実質的応答生成部，  １４1乃至１４J  対話用例データベース，  １５  対話履歴データベース，  １６  応答出力制御部，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
2006039120.tif 000020
【図２】
2006039120.tif 000021
【図３】
2006039120.tif 000022
【図４】
2006039120.tif 000023
【図５】
2006039120.tif 000024
【図６】
2006039120.tif 000025
【図７】
2006039120.tif 000026
【図８】
2006039120.tif 000027
【図９】
2006039120.tif 000028
【図１０】
2006039120.tif 000029
【図１１】
2006039120.tif 000030
【図１２】
2006039120.tif 000031
【図１３】
2006039120.tif 000032
【図１４】
2006039120.tif 000033
【図１５】
2006039120.tif 000034
【図１６】
2006039120.tif 000035
【図１７】
2006039120.tif 000036
【図１８】
2006039120.tif 000037
【図１９】
2006039120.tif 000038
【図２０】
2006039120.tif 000039
【図２１】
2006039120.tif 000040
【図２２】
2006039120.tif 000041
【図２３】
2006039120.tif 000042
【図２４】
2006039120.tif 000043