(57)【要約】【課題】ユーザが自発的に、または装置からの応答文に応答して入力文を入力しようとしている場合に、装置からの応答文の出力により入力が妨げられないように、適切なタイミングで応答文を出力する。【解決手段】言語解析部２０で、マイク１２から入力された音声信号を音声認識して形態素解析を行い、意図推定部２２で、解析結果に基づいて、ユーザ発話の意図を推定し、応答候補生成部１２４で、推定された発話意図に対応付けられた応答候補タイプに基づいて応答文候補を生成し、出力タイミング計測部２６及び発話待ち時間計測部１２６で、発話意図と応答候補タイプとの組み合わせ毎に定められた待ち時間が経過したか否かを計測し、ユーザからの次発話が入力されることなく待ち時間を経過した場合には、応答文の出力タイミングになったと判断して、出力部２８で、生成された応答文候補を音声信号に変換してスピーカ１４から出力させる。【選択図】図９
2010152119.tif 000002
【特許請求の範囲】
【請求項１】
ユーザからの入力文を入力する入力手段と、
前記入力手段によって入力された前記入力文の構造を解析した解析結果から、前記入力文が表す意図を推定する意図推定手段と、
前記意図推定手段で推定された前記入力文が表す意図に応じた応答文を少なくとも１つ以上生成する応答生成手段と、
前記意図推定手段で推定された意図と前記応答生成手段で生成した応答文との組み合わせにより定まる待ち時間が経過した後に、前記応答生成手段で生成した応答文を出力すると共に、前記待ち時間が経過する前に前記入力手段によって次の入力文が入力された場合には、前記応答生成手段で生成した応答文を出力しないように制御する制御手段と、
を含む応答生成装置。
【請求項２】
ユーザからの入力文を入力する入力手段と、
前記入力手段によって入力された前記入力文の構造を解析した解析結果から、前記入力文が表す意図を推定する意図推定手段と、
前記意図推定手段で推定された前記入力文が表す意図に応じた応答文を少なくとも１つ以上生成する応答生成手段と、
前記応答生成手段で生成された少なくとも１つ以上の応答文の中から１つの応答文を出力し、未出力の応答文が存在する場合には、前記意図推定手段で推定された意図と出力した応答文との組み合わせにより定まる待ち時間が経過した後に、前記未出力の応答文の中から他の１つの応答文を出力すると共に、前記待ち時間が経過する前に前記入力手段によって次の入力文が入力された場合には、前記他の１つの応答文を出力しないように制御する制御手段と、
を含む応答生成装置。
【請求項３】
前記制御手段は、前記未出力の応答文が存在しない場合で、かつ前記待ち時間が経過した場合には、入力文の入力を促す応答文を出力するように制御する請求項２記載の応答生成装置。
【請求項４】
前記推定手段で推定した意図に対して、前記入力文に含まれていない内容について質問または言明する応答文が組み合わされている場合の前記待ち時間を、前記推定手段で推定した意図に対して、回答、了解、繰り返し、または確認する応答文が組み合わされている場合の前記待ち時間に比べて長くした請求項１〜請求項３のいずれか１項記載の応答生成装置。
【請求項５】
前記待ち時間を、前記入力文が最初に入力されたときからの経過時間に応じて短くするか、または、前記ユーザによる過去の応答文出力から次の入力文入力までの沈黙時間に基づいて、該沈黙時間が長くなるほど長くなるようにした請求項１〜請求項４のいずれか１項記載の応答生成装置。
【請求項６】
コンピュータを、
ユーザからの入力文を入力する入力手段によって入力された前記入力文の構造を解析した解析結果から、前記入力文が表す意図を推定する意図推定手段と、
前記意図推定手段で推定された前記入力文が表す意図に応じた応答文を少なくとも１つ以上生成する応答生成手段と、
前記意図推定手段で推定された意図と前記応答生成手段で生成した応答文との組み合わせにより定まる待ち時間が経過した後に、前記応答生成手段で生成した応答文を出力すると共に、前記待ち時間が経過する前に前記入力手段によって次の入力文が入力された場合には、前記応答生成手段で生成した応答文を出力しないように制御する制御手段と、
して機能させるための応答生成プログラム。
【請求項７】
コンピュータを、
ユーザからの入力文を入力する入力手段によって入力された前記入力文の構造を解析した解析結果から、前記入力文が表す意図を推定する意図推定手段と、
前記意図推定手段で推定された前記入力文が表す意図に応じた応答文を少なくとも１つ以上生成する応答生成手段と、
前記応答生成手段で生成された少なくとも１つ以上の応答文の中から１つの応答文を出力し、未出力の応答文が存在する場合には、前記意図推定手段で推定された意図と出力した応答文との組み合わせにより定まる待ち時間が経過した後に、前記未出力の応答文の中から他の１つの応答文を出力すると共に、前記待ち時間が経過する前に前記入力手段によって次の入力文が入力された場合には、前記他の１つの応答文を出力しないように制御する制御手段と、
して機能させるための応答生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、応答生成装置及びプログラムに係り、特に、適切なタイミングで応答文の出力を行う応答生成装置及びプログラムに関する。
【背景技術】
【０００２】
従来、適切なタイミングで応答する音声対話装置として、入力された音声の情報としての話速を算出し、また、入力された音声から単語列を抽出して、抽出した単語列の出現確率から後続して入力される単語列を予測し、算出した話速に基づいて、予測した後続して入力される単語列が入力されるまでの後続入力時間を予測し、後続入力時間に基づいて応答文の出力タイミングを決定する音声対話装置が提案されている（例えば、特許文献１参照）。また、この音声対話装置では、入力された音声の情報として、発話長、基本周波数、形態素数、品詞列などの情報を用いてもよいことが記載されている。
【０００３】
また、入力された音声に対応する文章データに所定回数以上出現した単語が存在しない場合には、一区切りの音声入力毎に相槌の応答文を出力し、所定回数以上出現した単語が存在する場合には、同様に相槌を出力すると共に、該単語をキーワードとして関連する内容を検索し、検索された内容に基づく応答文を出力する対話装置が提案されている（例えば、特許文献２参照）。
【特許文献１】特開２００８−２４１８９０号公報
【特許文献２】特開２００７−３２８２８３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の特許文献１の音声対話装置では、入力された音声の情報に基づいて応答文の出力タイミングを決定しているため、出力する応答文が異なる場合であっても、音声入力直後などの同じタイミングで出力されてしまい、ユーザが自発的に次の音声入力を行おうとしているにもかかわらず、装置からの応答文が出力されてしまう場合がある、という問題がある。
【０００５】
また、上記特許文献２の対話装置では、所定回数以上出現した単語が存在する場合には、相槌を出力した後に検索された内容に基づく応答文を出力しているが、先に出力する応答文が相槌以外の場合には、ユーザが先に出力された応答文に対して応答するために次の音声入力を行おうとしているにもかかわらず、装置からの応答文が出力されてしまう場合がある、という問題がある。
【０００６】
本発明は、上記の問題を解決するためになされたものであり、ユーザが自発的に、または装置からの応答文に応答して入力文を入力しようとしている場合に、装置からの応答文の出力により入力が妨げられないように、適切なタイミングで応答文の出力をすることができる応答生成装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するために、第１の発明の応答生成装置は、ユーザからの入力文を入力する入力手段と、前記入力手段によって入力された前記入力文の構造を解析した解析結果から、前記入力文が表す意図を推定する意図推定手段と、前記意図推定手段で推定された前記入力文が表す意図に応じた応答文を少なくとも１つ以上生成する応答生成手段と、前記意図推定手段で推定された意図と前記応答生成手段で生成した応答文との組み合わせにより定まる待ち時間が経過した後に、前記応答生成手段で生成した応答文を出力すると共に、前記待ち時間が経過する前に前記入力手段によって次の入力文が入力された場合には、前記応答生成手段で生成した応答文を出力しないように制御する制御手段とを含んで構成されている。
【０００８】
また、第２の発明の応答生成プログラムは、コンピュータを、ユーザからの入力文を入力する入力手段によって入力された前記入力文の構造を解析した解析結果から、前記入力文が表す意図を推定する意図推定手段と、前記意図推定手段で推定された前記入力文が表す意図に応じた応答文を少なくとも１つ以上生成する応答生成手段と、前記意図推定手段で推定された意図と前記応答生成手段で生成した応答文との組み合わせにより定まる待ち時間が経過した後に、前記応答生成手段で生成した応答文を出力すると共に、前記待ち時間が経過する前に前記入力手段によって次の入力文が入力された場合には、前記応答生成手段で生成した応答文を出力しないように制御する制御手段として機能させるためのプログラムである。
【０００９】
第１の発明及び第２の発明によれば、入力手段によってユーザからの入力文が入力されると、意図推定手段が、入力文の構造を解析した解析結果から、入力文が表す意図を推定し、応答生成手段が、意図推定手段で推定された入力文が表す意図に応じた応答文を少なくとも１つ以上生成する。そして、制御手段が、意図推定手段で推定された意図と応答生成手段で生成した応答文との組み合わせにより定まる待ち時間が経過した後に、応答生成手段で生成した応答文を出力するように制御する。また、制御手段は、待ち時間が経過する前に入力手段によって次の入力文が入力された場合には、応答生成手段で生成した応答文を出力しないように制御する。
【００１０】
このように、推定された発話意図と応答文との組み合わせにより定まる待ち時間が経過するまで応答文の出力を待つことにより、ユーザが自発的に入力文を入力しようとしている場合に、装置からの応答文の出力により入力が妨げられないように、適切なタイミングで応答文の出力をすることができる。
【００１１】
第３の発明の応答生成装置は、ユーザからの入力文を入力する入力手段と、前記入力手段によって入力された前記入力文の構造を解析した解析結果から、前記入力文が表す意図を推定する意図推定手段と、前記意図推定手段で推定された前記入力文が表す意図に応じた応答文を少なくとも１つ以上生成する応答生成手段と、前記応答生成手段で生成された少なくとも１つ以上の応答文の中から１つの応答文を出力し、未出力の応答文が存在する場合には、前記意図推定手段で推定された意図と出力した応答文との組み合わせにより定まる待ち時間が経過した後に、前記未出力の応答文の中から他の１つの応答文を出力すると共に、前記待ち時間が経過する前に前記入力手段によって次の入力文が入力された場合には、前記他の１つの応答文を出力しないように制御する制御手段とを含んで構成されている。
【００１２】
また、第４の発明の応答生成プログラムは、コンピュータを、ユーザからの入力文を入力する入力手段によって入力された前記入力文の構造を解析した解析結果から、前記入力文が表す意図を推定する意図推定手段と、前記意図推定手段で推定された前記入力文が表す意図に応じた応答文を少なくとも１つ以上生成する応答生成手段と、前記応答生成手段で生成された少なくとも１つ以上の応答文の中から１つの応答文を出力し、未出力の応答文が存在する場合には、前記意図推定手段で推定された意図と出力した応答文との組み合わせにより定まる待ち時間が経過した後に、前記未出力の応答文の中から他の１つの応答文を出力すると共に、前記待ち時間が経過する前に前記入力手段によって次の入力文が入力された場合には、前記他の１つの応答文を出力しないように制御する制御手段として機能させるためのプログラムである。
【００１３】
第３の発明及び第４の発明によれば、入力手段によってユーザからの入力文が入力されると、意図推定手段が、入力文の構造を解析した解析結果から、入力文が表す意図を推定し、応答生成手段が、意図推定手段で推定された入力文が表す意図に応じた応答文を少なくとも１つ以上生成する。そして、制御手段が、応答生成手段で生成された少なくとも１つ以上の応答文の中から１つの応答文を出力し、未出力の応答文が存在する場合には、意図推定手段で推定された意図と出力した応答文との組み合わせにより定まる待ち時間が経過した後に、未出力の応答文の中から他の１つの応答文を出力するように制御する。また、待ち時間が経過する前に入力手段によって次の入力文が入力された場合には、他の１つの応答文を出力しないように制御する。
【００１４】
このように、１つの応答文を出力してから、推定された発話意図と応答文との組み合わせにより定まる待ち時間が経過するまで次の応答文の出力を待つことにより、ユーザが装置からの応答文に応答して入力文を入力しようとしている場合に、装置からの応答文の出力により入力が妨げられないように、適切なタイミングで応答文の出力をすることができる。
【００１５】
また、第３の発明及び第４の発明の前記制御手段は、前記未出力の応答文が存在しない場合で、かつ前記待ち時間が経過した場合には、入力文の入力を促す応答文を出力するように制御することができる。これにより、対話をさらに進めることができる。
【００１６】
また、前記推定手段で推定した意図に対して、前記入力文に含まれていない内容について質問または言明する応答文が組み合わされている場合の前記待ち時間を、前記推定手段で推定した意図に対して、回答、了解、繰り返し、または確認する応答文が組み合わされている場合の前記待ち時間に比べて長くするようにすることができる。
【００１７】
入力文に含まれていない内容について質問または言明の応答文を出力する場合には、ユーザが意図していない内容に話題が変更されることになるが、応答文の出力までの待ち時間を長くすることにより、待ち時間の間に引き続きユーザからの入力があれば話題を変更することなく対話を継続することができる。また、出力後の待ち時間を長くすることにより、出力した応答文に対するユーザからの応答を十分待つことができ、ユーザが応答内容について考えているにもかかわらず、波状して次の応答文を出力してしまうことを避けることができる。
【００１８】
また、前記待ち時間を、前記入力文が最初に入力されたときからの経過時間に応じて短くするか、または、前記ユーザによる過去の応答文出力から次の入力文入力までの沈黙時間に基づいて、該沈黙時間が長くなるほど長くすることができる。このように、待ち時間を動的に変更することにより、ユーザが装置との対話に慣れてきた場合や、ユーザがじっくり考えて応答するタイプか即答するタイプかなどの個人差がある場合などにも対応して、適切なタイミングで応答文を出力することができる。
【発明の効果】
【００１９】
以上説明したように、本発明の応答生成装置及びプログラムによれば、ユーザが自発的に、または装置からの応答文に応答して入力文を入力しようとしている場合に、装置からの応答文の出力により入力が妨げられないように、適切なタイミングで応答文の出力をすることができる、という効果が得られる。
【発明を実施するための最良の形態】
【００２０】
以下、図面を参照して本発明の実施の形態を詳細に説明する。なお、本実施の形態では、ユーザからの発話を入力として、所定の処理を実行して音声出力する応答生成装置に本発明を適用した場合について説明する。
【００２１】
図１に示すように、第１の実施の形態に係る応答生成装置１０は、ユーザ発話を集音して音声信号を生成するマイク１２と、音声出力を行うスピーカ１４と、マイク１２及びスピーカ１４に接続され、かつ、適切なタイミングで応答文を出力する所定の処理を実行するコンピュータ１６とを備えている。
【００２２】
コンピュータ１６は、応答生成装置１０全体の制御を司るＣＰＵ、後述する応答生成処理及び意図推定処理のプログラム等各種プログラムを記憶した記憶媒体としてのＲＯＭ、ワークエリアとしてデータを一時格納するＲＡＭ、各種情報が記憶された記憶手段としてのＨＤＤ、Ｉ／Ｏ（入出力）ポート、及びこれらを接続するバスを含んで構成されている。Ｉ／Ｏポートには、マイク１２及びスピーカ１４が接続されている。
【００２３】
また、このコンピュータ１６を、ハードウエアとソフトウエアとに基づいて定まる機能実現手段毎に分割した機能ブロックで説明すると、図１に示すように、マイク１２から入力された音声信号を音声認識して、一般的な形態素解析器を用いて音声認識されたユーザ発話を示す文字列情報に対して形態素解析を行う言語解析部２０、言語解析部２０による解析結果に基づいて、ユーザ発話の意図を推定する意図推定部２２、意図推定部２２で推定された意図に対応付けられた応答候補タイプに基づいて応答文を生成する応答生成部２４、応答生成部２４で生成された応答文の出力タイミングになったか否かを判断する出力タイミング計測部２６、及び出力タイミング計測部２６で出力タイミングになったと判断された場合に、生成された応答文を音声信号に変換してスピーカ１４から出力させる出力部２８を含んだ構成で表すことができる。
【００２４】
意図推定部２２は、図２に示すように、ユーザ発話の意図として、「言明」、「言明型質問」、「Ｙ／Ｎ質問」、「言明型回答」、「Ｙ／Ｎ回答」、「了解」、及び「その他」の何れの発話意図クラスであるかを推定する。このユーザ発話の意図の分類は、談話分析におけるムーブ（質問や回答など談話機能を担う構成単位）に基づいて定めたものである。ユーザ発話を上記の意図の何れかに分類する場合には、ユーザ発話の言語的特徴によって複数のクラスに分類するという分類課題において、クラスの言語的特徴を最も代表する分類器を設計する。
【００２５】
発話意図クラスが「言明型質問」の場合には、例えば、「今、何時？」といった文のように、何かを質問する文となり、疑問文の形式をとる。また、「Ｙ／Ｎ質問」の場合も同様に、例えば、「グラタン作れるの？」といった疑問文の形式をとり、Ｙｅｓ、Ｎｏを問う質問となる。一方、「言明型質問」及び「Ｙ／Ｎ質問」以外の場合には、一般的に、平叙文の形式をとる。発話意図クラスが「言明」の場合には、例えば、「友達が遊びに来るよ」といった文のように、一定の意味内容を持った文となり、節を含むという特徴を有している。また、例えば、「友達が遊びに」のように動詞が省略されている場合も、省略部分（来るよ）を補完した文が節を含むという特徴を有しているため、発話意図クラスは「言明」となる。
【００２６】
また、発話意図クラスが「言明型回答」となる場合には、例えば、「何を作ってくれたんですか？」という質問に対する「グラタンを作ってくれて」という回答文となり、５Ｗ１Ｈ型の質問に対して、Ｙｅｓ、Ｎｏ以外の形式で質問に対して答える文であって、節を含むという特徴を有している。また、例えば、上記質問に対して、「グラタン」のように動詞を省略した発話の場合も、省略部分（を作ってくれて）を補完した文が節を含むという特徴を有しているため、発話意図クラスは「言明型回答」となる。また、発話意図クラスが「Ｙ／Ｎ回答」となる場合には、例えば、「友達が遊びに来るんですか？」という質問に対する「そうなの。」という回答文となり、Ｙｅｓ、Ｎｏを問う質問に対して、Ｙｅｓ、Ｎｏの形式で答える文となる。
【００２７】
また、発話の意図が「了解」となる場合には、例えば、「そっか〜」、「ううん」、「そうなんだ」のように同意または不同意する文や了解する文となる。発話意図クラスが「その他」の場合には、例えば、「私は晴れ男なんですよ」という相手の発話に対する笑いに相当する文や「うん」のような文となる。
【００２８】
応答生成部２４は、意図推定部２２で推定された発話意図クラスに対応付けられた応答候補タイプの中から選択した応答候補タイプに基づいて、応答文を生成する。
【００２９】
図３に示すように、発話意図クラスが「言明」の場合には、応答候補タイプとして「了解」、「繰り返し」、「確認」、「深堀質問」、「言明」が対応付けられている。また、発話意図クラスが「言明型質問」の場合には、「言明型回答」、発話意図クラスが「Ｙ／Ｎ質問」の場合には、「Ｙ／Ｎ回答」、発話意図クラスが「言明型回答」の場合には、「了解」、発話意図クラスが「Ｙ／Ｎ回答」の場合には、「了解」、発話意図クラスが「了解」の場合には、「了解」及び「言明」がそれぞれ応答候補タイプとして対応付けられて、所定の記憶領域に記憶されている。発話意図クラスに対して、応答候補タイプが複数対応付けられている場合には、複数の応答候補タイプの中からランダムに選択したり、過去の発話履歴に出現していない応答候補タイプを選択したりすることにより、１つまたは複数の応答候補タイプを選択する。
【００３０】
また、応答生成部２４は、選択した応答候補タイプに基づいて、例えば、図３の「応答文例」に示すような応答文を生成する。具体的には、ユーザ発話が「友達が遊びに来るよ。」であった場合には、発話意図クラスは「言明」と推定され、これに対する応答候補タイプとして「了解」を選択した場合には、「そっか〜」のような応答文が生成される。また、応答候補タイプが「繰り返し」の場合には、ユーザ発話の内容を繰り返す「友達が遊びに来るんですね」のような応答文が生成される。また、応答候補タイプが「確認」の場合には、ユーザ発話の内容を確認する「友達が遊びに来るの？」のような応答文が生成される。また、応答候補タイプが「深堀質問」の場合には、ユーザ発話の内容に含まれていない事項について質問する「いつ遊びに来るの？」のような応答文が生成される。また、応答候補タイプが「言明」の場合には、ユーザの発話内容に対して新たな切り返しとなる「僕も友達が欲しいな」のような応答文が生成される。
【００３１】
なお、応答文の生成は、予め応答候補タイプ毎に定めたフォーマットにユーザ発話から抽出した単語を当てはめたり、ユーザ発話に含まれる単語の属性に従って予め定めた応答文生成ルールに従って生成したりなど、周知の技術を用いて行うことができる。
【００３２】
出力タイミング計測部２６は、ユーザ発話が入力されない状態の継続時間を計測し、その継続時間が「応答文出力待ち時間」を経過した場合には、応答文の出力タイミングとなったと判断する。応答文出力待ち時間を経過する前にユーザから次の発話が入力された場合には、継続時間の計測が中断され、応答文の出力タイミングと判断されることはない。
【００３３】
この判断に用いる応答文出力待ち時間は、推定された発話意図クラスとそれに対応付けられた応答候補タイプとの組み合わせ毎に定められている。例えば、図３に示すように、発話意図クラス「言明」と応答候補タイプ「了解」、「繰り返し」、「確認」のそれぞれとの組み合わせの場合は、応答文出力待ち時間を”０（待ち時間なし）”とし、発話意図クラス「言明」と応答候補タイプ「深堀質問」及び「言明」のそれぞれとの組み合わせの場合は、応答文出力待ち時間を”Ｔ１（例えば、７秒）”とする。発話意図クラス「言明」のユーザ発話に対して、応答候補タイプ「深堀質問」及び「言明」に基づく応答文を出力する場合に応答文出力待ち時間をＴ１としたのは、ユーザの発話内容に含まれていない事項について質問したり、新たな切り返しをしたりなど、対話が別の方向へ展開を見せることになるからである。これにより、ユーザが引き続き自発的に発話を入力しようとしているにもかかわらず、装置から対話を別の方向へ展開させるような応答文が出力されてスムーズな対話が阻害されるということを回避することができる。
【００３４】
次に、図４を参照して、第１の実施の形態の応答生成装置１０における応答生成処理ルーチンについて説明する。本ルーチンは、ＲＯＭに記憶された応答生成プログラムをＣＰＵが実行することにより行われる。
【００３５】
ステップ１００で、マイク１２からユーザ発話が入力されたか否かを判断し、ユーザ発話が入力された場合には、ステップ１０２へ進み、入力されない場合には、入力されるまで本ステップの判断を繰り返す。ここでは、ユーザ発話「友達が遊びに来るよ」が入力されたものとする。
【００３６】
ステップ１０２で、入力されたユーザ発話を示す音声信号を音声認識して文字列情報とし、この文字列情報に対して形態素解析を行う。次に、ステップ１０４で、形態素解析の解析結果に基づいて、意図推定処理を実行する。
【００３７】
ここで、図５を参照して、意図推定処理ルーチンについて説明する。
【００３８】
ステップ２００で、形態素解析の解析結果に基づいて、ユーザ発話の意図が「質問」であるか否かを判断する。ユーザ発話を示す文が疑問文の形式であれば、「質問」であると判断して、ステップ２０２へ進み、「質問」ではない場合には、ステップ２０８へ進む。
【００３９】
ステップ２０２で、ユーザ発話を示す疑問文がＹｅｓ、Ｎｏの形式で答える「Ｙ／Ｎ質問」であるか否かを判断する。「Ｙ／Ｎ質問」の場合には、ステップ２０４に進んで、変数ｉに”Ｙ／Ｎ質問”を格納する。「Ｙ／Ｎ質問」ではない場合には、「言明型質問」であると判断して、ステップ２０６に進んで、変数ｉに”言明型質問”を格納する。
【００４０】
上記ステップ２００で、発話意図が「質問」ではないと判断されて、ステップ２０８へ進んだ場合には、ユーザ発話の意図が「言明系」であるか否かを判断する。ユーザ発話を示す文またはユーザ発話の省略部分を補完した文が節を含む場合には、「言明系」であると判断して、ステップ２１０へ進み、「言明系」ではない場合には、ステップ２１６へ進む。
【００４１】
ステップ２１０で、ユーザ発話の意図が「言明回答」であるか否かを判断する。入力されたユーザ発話の前に装置から出力された前応答文を参照し、前応答文が疑問文の場合には、それに対する回答である「言明回答」であると判断して、ステップ２１２に進んで、変数ｉに”言明回答”を格納する。「言明回答」ではない場合には、ステップ２１４に進んで、変数ｉに”言明”を格納する。
【００４２】
上記ステップ２０８で、発話意図が「言明系」ではないと判断されて、ステップ２１６へ進んだ場合には、ユーザ発話の意図が「Ｙ／Ｎ回答」であるか否かを判断する。入力されたユーザ発話の前に装置から出力された前応答文を参照し、前応答文が疑問文の場合には、それに対する回答である「Ｙ／Ｎ回答」であると判断して、ステップ２１８に進んで、変数ｉに”Ｙ／Ｎ回答”を格納する。「Ｙ／Ｎ回答」ではない場合には、ステップ２２０に進んで、変数ｉに”了解”を格納する。
【００４３】
ここでは、ユーザ発話「友達が遊びに来るよ」は、平叙文であるため、ステップ２００で否定され、また、節を含むため、ステップ２０８で肯定され、また、前応答文に対する回答ではないため、ステップ２１０で否定され、ｉ＝”言明”が格納されることになる。  次に、ステップ２２２で、推定された発話意図クラスを示す変数ｉを出力して、リターンする。
【００４４】
応答生成処理（図４）のステップ１０６へ戻ると、意図推定処理で出力された発話意図クラスｉに対応する応答候補タイプの中から１つ以上の応答候補タイプを選択する。ここでは、ｉ＝”言明”であるので、図３を参照して、応答候補タイプ「了解」、「繰り返し」、「確認」、「深堀質問」、及び「言明」から１つ以上を選択する。なお、複数の応答候補タイプを選択する場合には、応答文出力待ち時間が”０（待ち時間なし）”の応答候補タイプを複数選択するよりも、応答文出力待ち時間が”０（待ち時間なし）”の応答候補タイプと応答文出力待ち時間が”Ｔ１”の応答候補タイプとを組み合わせて選択する方が望ましい。ここでは、「了解」及び「深堀質問」を選択することとする。
【００４５】
次に、ステップ１０８で、選択した応答候補タイプに基づく応答文を生成する。応答候補タイプ「了解」については、例えば、「そっか〜」のような応答文、応答候補タイプ「深堀質問」については、例えば、「いつ遊びに来るの？」のような応答文が生成される。
【００４６】
次に、ステップ１１０で、選択された応答候補タイプの中に、応答文出力待ち時間が”０（待ち時間なし）”のものが存在するか否かを判断する。存在する場合には、ステップ１１２へ進んで、上記ステップ１０８で生成した応答文の中から、応答文出力待ち時間が”０（待ち時間なし）” の応答候補タイプに基づく応答文「そっか〜」を音声合成して、スピーカ１４から音声出力して、ステップ１１４へ進む。選択された応答候補タイプの中に、応答文出力待ち時間が”０（待ち時間なし）”のものが存在しない場合には、そのままステップ１１４へ進む。
【００４７】
ステップ１１４で、選択された応答候補タイプの中に、応答文出力待ち時間が”Ｔ１”のものが存在するか否かを判断する。存在する場合には、ステップ１１６へ進み、存在しない場合には、処理を終了する。
【００４８】
ステップ１１６で、ユーザから次発話が入力されたか否かを判断する。次発話が入力された場合には、上記ステップ１０８で生成した応答文出力待ち時間”Ｔ１”の 応答候補タイプに基づく応答文は出力することなく、ステップ１０２へ戻る。次発話が入力されない場合には、ステップ１１８へ進み、前のユーザ発話が入力されてから、発話の入力がされていない状態の継続時間がＴ１を経過したか否かを判断する。Ｔ１を経過していない場合には、ステップ１１６へ戻って処理を繰り返し、Ｔ１を経過した場合には、応答文出力待ち時間”Ｔ１”の 応答候補タイプに基づく応答文の出力タイミングである判断して、ステップ１２０へ進んで、上記ステップ１０８で生成した応答文の中から、応答文出力待ち時間が”Ｔ１” の応答候補タイプに基づく応答文「いつ遊びに来るの？」を音声合成して、スピーカ１４から音声出力し、処理を終了する。
【００４９】
以上説明したように、第１の実施の形態の応答生成装置によれば、ユーザの発話内容に含まれていない事項について質問したり、新たな切り返しをしたりなど、対話が別の方向へ展開を見せるような応答文を出力する場合には、応答文出力までに発話意図と応答候補タイプとの組み合わせで定まる待ち時間を設けることにより、適切なタイミングで応答文を出力することができる。このため、ユーザが引き続き自発的に発話を入力しようとしているにもかかわらず、装置から応答文が出力されてスムーズな対話が阻害されるということを回避することができる。
【００５０】
なお、第１の実施の形態では、選択した応答候補タイプに基づく応答文を生成してから、出力のタイミングまで待って出力する場合について説明したが、選択した応答候補タイプに対応する出力待ち時間の経過を待って、選択した応答候補タイプに基づく応答文を生成して出力するようにしてもよい。
【００５１】
また、第１の実施の形態では、応答文出力待ち時間として、”０（待ち時間なし）”及び”Ｔ１”とした場合について説明したが、より詳細に３段階以上の待ち時間を設定してもよいし、発話意図クラスと応答候補タイプとの組み合わせ毎に異なる待ち時間を設定してもよい。
【００５２】
また、発話意図クラスを「言明型質問」、「Ｙ／Ｎ質問」、「言明回答」、「言明」、「Ｙ／Ｎ回答」、及び「了解」の何れかに分類する場合を例に説明したが、意図が認定できないフィラーやつぶやきなどがユーザ発話として入力される場合があるため、「その他」という分類を追加してもよい。この場合には、上記いずれのクラスにも分類できない場合を「その他」と判定するようにするとよい。
【００５３】
次に、第２の実施の形態について説明する。第２の実施の形態では、装置から応答文を出力した後に、ユーザからの発話を待つ発話待ち時間を設けた点が、第１の実施の形態と異なっている。なお、第１の実施の形態と同様の構成及び処理については、同一の符号を付して説明を省略する。
【００５４】
図６に示すように、第２の実施の形態に係る応答生成装置１１０は、ユーザ発話を集音して音声信号を生成するマイク１２と、音声出力を行うスピーカ１４と、マイク１２及びスピーカ１４に接続され、かつ、適切なタイミングで応答文を出力する所定の処理を実行するコンピュータ１６とを備えている。
【００５５】
コンピュータ１６を、ハードウエアとソフトウエアとに基づいて定まる機能実現手段毎に分割した機能ブロックで説明すると、図６に示すように、言語解析部２０、意図推定部２２、意図推定部２２で推定された意図に対応付けられた応答候補タイプに基づいて応答文候補を生成する応答候補生成部１２４、応答候補生成部１２４で生成された応答文候補を一旦格納する応答候補記憶部３０、応答文出力後のユーザからの発話待ち時間を計測して、次の応答文の出力タイミングになったか否かを判断する発話待ち時間計測部１２６、及び発話待ち時間計測部１２６で出力タイミングになったと判断された場合に、応答候補記憶部３０に格納された応答文候補の中から１つを選択して音声信号に変換してスピーカ１４から出力させる出力部２８を含んだ構成で表すことができる。
【００５６】
応答候補生成部１２４は、意図推定部２２で推定された発話意図クラスに対応付けられた応答候補タイプに基づいて、応答文候補を生成する。発話意図クラスの各々に対応付けられた応答候補タイプ、及び応答候補タイプの各々に基づいた応答文例は、第１の実施の形態の場合と同様である。
【００５７】
また、応答候補生成部１２４は、生成した応答文候補の中から選択した１つの応答文候補を出力する応答文として決定し、決定した応答文を出力部２８へ送信する。一方、選択されなかった応答文候補を応答候補記憶部３０へ格納する。生成した応答文候補から１つの応答文候補を選択する際には、ランダムに選択したり、過去の発話履歴に出現していない応答文候補を選択したりすることにより選択する。
【００５８】
発話待ち時間計測部１２６は、１つ目の応答文を出力した後のユーザ発話が入力されない状態の継続時間を計測し、その継続時間が「発話待ち時間」を経過した場合には、次の応答文の出力タイミングとなったと判断する。発話待ち時間を経過する前にユーザから次の発話が入力された場合には、継続時間の計測が中断され、次の応答文の出力タイミングと判断されることはない。
【００５９】
この判断に用いる発話待ち時間は、推定された発話意図クラスとそれに対応付けられた応答候補タイプとの組み合わせ毎に定められている。例えば、図７に示すように、発話意図クラス「言明」と応答候補タイプ「了解」、「繰り返し」、「言明」のそれぞれとの組み合わせの場合は、発話待ち時間を”Ｔ２”とし、発話意図クラス「言明」と応答候補タイプ「確認」及び「深堀質問」のそれぞれとの組み合わせの場合は、発話待ち時間を”Ｔ３”とする。なお、例えば、Ｔ２＝８秒、Ｔ３＝１５秒のように、Ｔ３はＴ２より長い時間を設定する。これは、出力する応答文の内容が、ユーザに回答を求めるようなものであるため、ユーザに回答を考える時間を十分に与えるためである。また、Ｔ３は∞として、ユーザからの次発話があるまで待つようにしてもよい。これにより、ユーザが装置から出力された応答文に対する回答を考えているにもかかわらず、装置から次の応答文が出力されてスムーズな対話が阻害されるということを回避することができる。
【００６０】
次に、図８を参照して、第２の実施の形態の応答生成装置１１０における応答生成処理ルーチンについて説明する。本ルーチンは、ＲＯＭに記憶された応答生成プログラムをＣＰＵが実行することにより行われる。
【００６１】
ステップ１００で、ユーザ発話が入力されたか否かを判断し、次に、ステップ１０２で、入力されたユーザ発話を示す音声信号を音声認識して文字列情報とし、この文字列情報に対して形態素解析を行い、次に、ステップ１０４で、形態素解析の解析結果に基づいて、意図推定処理を実行して、発話意図クラスｉを出力する。ここでは、第１の実施の形態と同様にユーザ発話「友達が遊びに来るよ」に対して、発話意図クラスｉ＝”言明”が出力されたものとする。
【００６２】
次に、ステップ３００で、意図推定処理で出力された発話意図クラスｉに対応する応答候補タイプに基づく応答文候補を生成する。発話意図クラスｉに対応する応答候補タイプが複数対応付けられている場合には、対応付けられている全ての応答候補タイプに基づく応答文候補を生成する。ここでは、ｉ＝”言明”に対応する応答候補タイプ「了解」、「繰り返し」、「確認」、「深堀質問」、及び「言明」のそれぞれに基づいて、「そっか〜」（了解）、「友達が遊びに来るんですね」（繰り返し）、「友達が遊びに来るの？」（確認）、「いつ遊びに来るの？」（深堀質問）、「僕も友達が欲しいな」（言明）のような応答文候補が生成される。
【００６３】
次に、ステップ３０２で、上記ステップ３００で生成した応答文候補の中から１つの応答文候補を選択して、音声合成して、スピーカ１４から音声出力する。ここでは、「いつ遊びに来るの？」（深堀質問）を選択して出力するものとする。次に、ステップ３０４で、出力しなかった残りの応答文候補を応答候補記憶部３０に一旦格納する。
【００６４】
次に、ステップ３０６で、ユーザから次発話が入力されたか否かを判断する。次発話が入力された場合には、上記ステップ３０４で格納された応答文候補は出力することなく、ステップ１０２へ戻る。次発話が入力されない場合には、ステップ３０８へ進む。
【００６５】
ステップ３０８で、上記ステップ３０２で１つ目の応答文を出力してから、発話の入力がされていない状態の継続時間が出力した応答文の応答候補タイプに対応付けられている発話待ち時間を経過したか否かを判断する。ここでは、発話意図クラスｉ＝”言明”に対する応答候補タイプ「深堀質問」の発話待ち時間”Ｔ３”である。Ｔ３を経過していない場合には、ステップ３０６へ戻って処理を繰り返し、Ｔ３を経過した場合には、次の応答文の出力タイミングである判断して、ステップ３１０へ進む。
【００６６】
ステップ３１０で、応答候補記憶部３０に格納されている応答文候補が存在するか否かを判断し、存在する場合には、ステップ３１２へ進んで、応答候補記憶部３０から応答文候補を１つ、例えば、「僕も友達が欲しいな」（言明）を選択して出力し、ステップ３０６へ戻る。応答候補記憶部３０に格納されている応答文候補が存在しない場合には、ステップ３１４へ進んで、ユーザの発話を促す促し応答文を生成して出力し、処理を終了する。促し応答文は、例えば、「もっとお話が聞きたいな」、「他に何かあるの？」、「それでそれで」、「僕のお話してもいい？」のようの応答文である。
【００６７】
以上説明したように、第２の実施の形態の応答生成装置によれば、出力する応答文の内容が、ユーザに回答を求めるようなものである場合には、応答文を出力してから発話意図と応答候補タイプとの組み合わせで定まる待ち時間を設けることにより、ユーザに回答を考える時間を十分に与えて、適切なタイミングで次の応答文を出力することができる。このため、ユーザが装置から出力された応答文に対する回答を考えているにもかかわらず、装置から次の応答文が出力されてスムーズな対話が阻害されるということを回避することができる。
【００６８】
なお、第２の実施の形態では、発話意図クラスに対応する応答候補タイプが複数ある場合には、その全てについて応答文候補を生成する場合について説明したが、複数の応答候補タイプの中からいくつかの応答候補タイプを選択して、応答文候補を生成するようにしてもよい。例えば、発話意図クラスｉ＝”言明”に対して、応答候補タイプ「了解」及び「深堀質問」を選択し、「そっか〜」及び「いつ遊びに来るの？」を応答文候補として生成するようにしてもよい。
【００６９】
また、第２の実施の形態では、応答候補タイプに基づく応答文候補を生成してから、応答候補記憶部に格納する場合について説明したが、発話意図クラスに対応する応答候補タイプを一旦記憶しておき、出力のタイミングになったときに、記憶しておいた応答候補タイプの中から１つを選択して、選択した応答候補タイプに基づく応答文を生成して出力するようにしてもよい。
【００７０】
また、第２の実施の形態では、発話待ち時間として、”Ｔ２”及び”Ｔ３”とした場合について説明したが、より詳細に３段階以上の待ち時間を設定してもよいし、発話意図クラスと応答候補タイプとの組み合わせ毎に異なる待ち時間を設定してもよい。
【００７１】
次に、第３の実施の形態について説明する。第３の実施の形態では、応答文出力待ち時間及び発話待ち時間を併用し、さらに応答文出力待ち時間及び発話待ち時間を動的に変更する点が、第１及び第２の実施の形態とは異なる。なお、第１及び第２の実施の形態と同様の構成及び処理については、同一の符号を付して説明を省略する。
【００７２】
図９に示すように、第３の実施の形態に係る応答生成装置２１０は、ユーザ発話を集音して音声信号を生成するマイク１２と、音声出力を行うスピーカ１４と、マイク１２及びスピーカ１４に接続され、かつ、適切なタイミングで応答文を出力する所定の処理を実行するコンピュータ１６とを備えている。
【００７３】
コンピュータ１６を、ハードウエアとソフトウエアとに基づいて定まる機能実現手段毎に分割した機能ブロックで説明すると、図９に示すように、言語解析部２０、意図推定部２２、応答候補生成部１２４、応答候補記憶部３０、出力タイミング計測部２６、発話待ち時間計測部１２６、出力部２８、及び応答文出力待ち時間及び発話待ち時間を動的に変更する制御を行う待ち時間制御部３２を含んだ構成で表すことができる。
【００７４】
第３の実施の形態では、生成された応答文候補または応答候補記憶部３０に格納された応答文候補から選択された１つの応答文候補を出力する際、その応答文候補に対応する応答候補タイプの応答文出力待ち時間を待ってから出力する。
【００７５】
例えば、ユーザ発話「友達が遊びに来るよ」（ｉ＝”言明”）に対して、応答候補タイプ「了解」、「繰り返し」、「確認」、「深堀質問」、及び「言明」に基づく応答文候補が生成され、まず「いつ遊びに来るの？」（深堀質問）を出力する場合、第２の実施の形態では、１つ目の応答文は選択されるとすぐに出力したが、ここでは、ｉ＝”言明”に対する「深堀質問」の応答文出力待ち時間”Ｔ１”の経過 を待ってから出力する。ユーザの次発話がないままＴ１を経過すると、残りの応答文候補の中から、例えば、「僕も友達が欲しいな」（言明）を選択して出力する。
【００７６】
ここで、２つ目以降の応答文を出力する際には、出力しようとしている応答文の応答文出力待ち時間と、前に出力した応答文の発話待ち時間が競合することになる。例えば、上記の例では、１つ目の応答文「いつ遊びに来るの？」（深堀質問）について、発話待ち時間”Ｔ３”が設定されており、２つ目の応答文「僕も友達が欲しいな」（言明）について、応答文出力待ち時間”Ｔ１”が設定されている。この場合、「いつ遊びに来るの？」を出力してから「僕も友達が欲しいな」を出力するまでの時間は、Ｔ１を優先、Ｔ３を優先、またはＴ１及びＴ３の平均時間などのように決定することができるが、ユーザの発話を装置からの応答文の出力によって阻害しない、という点に鑑み、待ち時間の長い方を選択することが好ましい。
【００７７】
待ち時間制御部３２は、応答文出力待ち時間及び発話待ち時間を動的に変更する。例えば、ユーザが対話に不慣れな対話開始時は待ち時間を長めに設定し、対話開始から所定時間を経過すると、はじめに設定した待ち時間より短い待ち時間に変更する。また、ユーザ毎に対話における沈黙時間の履歴をとっておき、ユーザの顔を撮影した画像を用いるなどしてユーザを認証し、そのユーザの沈黙時間の履歴を参照して、待ち時間を決定するようにしてもよい。具体的には、応答候補タイプ「言明」、「繰り返し」、「言明回答」、「Ｙ／Ｎ回答」、及び「了解」に基づく応答文出力後のユーザ発話入力までの沈黙時間の平均をＴ２、応答候補タイプ「確認」、及び「深堀質問」に基づく応答文出力後のユーザ発話入力までの沈黙時間の平均をＴ３、対話全体の沈黙時間の平均をＴ１とすることができる。
【００７８】
以上説明したように、第３の実施の形態の応答生成装置によれば、待ち時間を動的に変更することにより、ユーザが装置との対話に慣れてきた場合や、ユーザがじっくり考えて応答するタイプか即答するタイプかなどの個人差がある場合などにも対応して、適切なタイミングで応答文を出力することができる。
【００７９】
なお、上記第１〜第３の実施の形態では、スピーカによる音声出力を行う場合を例に説明したが、これに限定されるものではなく、ディスプレイに応答文を表示するようにしてもよい。また、ユーザから音声がマイクに入力される場合を例に説明したが、ユーザがキーボードなどを用いて入力文としてのテキストを入力するようにしてもよい。
【図面の簡単な説明】
【００８０】
【図１】第１の実施の形態に係る応答生成装置の概略構成を示すブロック図である。
【図２】発話意図クラス、及び発話例を示す表である。
【図３】発話意図クラス、応答候補タイプ、応答文出力待ち時間、及び応答文例を示す表である。
【図４】第１の実施の形態の応答生成処理ルーチンを示すフローチャートである。
【図５】意図推定処理ルーチンを示すフローチャートである。
【図６】第２の実施の形態に係る応答生成装置の概略構成を示すブロック図である。
【図７】発話意図クラス、応答候補タイプ、発話待ち時間、及び応答文例を示す表である。
【図８】第２の実施の形態の応答生成処理ルーチンを示すフローチャートである。
【図９】第３の実施の形態に係る応答生成装置の概略構成を示すブロック図である。
【符号の説明】
【００８１】
１０、１１０、２１０ 応答生成装置
１２   マイク
１４   スピーカ
１６   コンピュータ
２０   言語解析部
２２   意図推定部
２６   出力タイミング計測部
２８   出力部
３０   応答候補記憶部
３２   待ち時間制御部
１２４ 応答候補生成部
１２６ 発話待ち時間計測部
【図１】
2010152119.tif 000003
【図２】
2010152119.tif 000004
【図３】
2010152119.tif 000005
【図４】
2010152119.tif 000006
【図５】
2010152119.tif 000007
【図６】
2010152119.tif 000008
【図７】
2010152119.tif 000009
【図８】
2010152119.tif 000010
【図９】
2010152119.tif 000011