(57)【要約】【課題】適切なタイミングで話題を遷移することが可能な音声対話装置及び音声対話方法を提供する。【解決手段】構文解析部１０４は、取得されたユーザ発話の言語情報について構文解析を行う。非言語情報解析部１０６は、取得されたユーザ発話について、言語情報とは異なる非言語情報の解析を行う。話題継続判定部１１０は、非言語情報解析結果に応じて、現在の対話の話題を継続するか、又は別の話題に遷移するかを判定する。応答生成部１２０は、話題継続判定部１１０による判定結果に応じて、応答を生成する。【選択図】図２
2018072650.tif 000002
【特許請求の範囲】
【請求項１】
ユーザと音声を用いた対話を行う音声対話装置であって、
前記ユーザの発話であるユーザ発話を取得する発話取得部と、
前記取得されたユーザ発話の言語情報について構文解析を行う構文解析部と、
前記ユーザ発話に応じて応答を生成する応答生成部と、
前記ユーザに対して前記生成された応答に対応する音声を出力する音声出力部と、
前記取得されたユーザ発話について、前記言語情報とは異なる非言語情報であって、前記ユーザ発話の韻律情報及び前記応答生成部によって生成された応答に関する履歴情報の少なくとも一方を含む非言語情報の解析を行う非言語情報解析部と、
前記非言語情報解析部による解析結果である非言語情報解析結果に応じて、現在の対話の話題を継続するか否かを判定する話題継続判定部と
を有し、
前記応答生成部は、前記話題継続判定部による判定結果に応じて、応答を生成する
音声対話装置。
【請求項２】
前記話題継続判定部は、前記非言語情報解析結果に含まれる少なくとも１つの特徴量と、前記特徴量に対応する予め定められた閾値との比較に応じて、話題を継続するか否かを判定する
請求項１に記載の音声対話装置。
【請求項３】
前記話題継続判定部は、同一の話題の継続時間が予め定められた閾値以上である場合に、話題を遷移すると判定する
請求項２に記載の音声対話装置。
【請求項４】
前記話題継続判定部は、予め機械学習によって生成された判定モデルを用いて、前記非言語情報解析結果によって示される特徴が、話題を継続することに対応するか又は話題を遷移することに対応するかを識別することによって、話題を継続するか否かを判定する
請求項１に記載の音声対話装置。
【請求項５】
ユーザと音声を用いた対話を行う音声対話装置を用いて行われる音声対話方法であって、
前記ユーザの発話であるユーザ発話を取得し、
前記取得されたユーザ発話の言語情報について構文解析を行い、
前記取得されたユーザ発話について、前記言語情報とは異なる非言語情報であって、前記ユーザ発話の韻律情報及び前記音声対話装置によって生成された応答に関する履歴情報の少なくとも一方を含む非言語情報の解析を行い、
前記非言語情報の解析結果である非言語情報解析結果に応じて、現在の対話の話題を継続するか否かを判定し、
前記判定の結果に応じて生成された応答に対応する音声を出力する
音声対話方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声対話装置及び音声対話方法に関し、特に、ユーザと音声を用いた対話を行う音声対話装置及び音声対話方法に関する。
【背景技術】
【０００２】
ユーザが音声対話ロボット（音声対話装置）と日常会話を楽しむための技術が普及しつつある。この技術にかかる音声対話ロボットは、ユーザが発声した音声を認識し、認識した音声に対応する回答を発話（出力）する。このような音声対話ロボットでは、現在の対話の話題を継続するか否かを判定することも行い得る。
【０００３】
上記の技術に関連し、特許文献１は、話題変換検出装置を開示する。特許文献１にかかる話題変換検出装置は、対話における発話列において、トピックの境界となる位置をリアルタイムに検出する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１５−２２５１３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１にかかる技術では、ユーザの発話内容を構文解析等で解析しなければ、話題を継続するか遷移するかの判定を行うことができない。ここで、構文解析は、パターン認識等の多くの時間を必要とする処理を伴う。さらに、構文解析を行って話題の継続を判定する方法では、ユーザが話題を遷移させたい場合に、ユーザが話題の遷移を促すような単語を発話に織り交ぜないと、話題を遷移することができない。したがって、特許文献１にかかる技術では、適切なタイミングで話題を遷移することができないおそれがある。
【０００６】
本発明は、適切なタイミングで話題を遷移することが可能な音声対話装置及び音声対話方法を提供するものである。
【課題を解決するための手段】
【０００７】
本発明にかかる音声対話装置は、ユーザと音声を用いた対話を行う音声対話装置であって、前記ユーザの発話であるユーザ発話を取得する発話取得部と、前記取得されたユーザ発話の言語情報について構文解析を行う構文解析部と、前記ユーザ発話に応じて応答を生成する応答生成部と、前記ユーザに対して前記生成された応答に対応する音声を出力する音声出力部と、前記取得されたユーザ発話について、前記言語情報とは異なる非言語情報であって、前記ユーザ発話の韻律情報及び前記応答生成部によって生成された応答に関する履歴情報の少なくとも一方を含む非言語情報の解析を行う非言語情報解析部と、前記非言語情報解析部による解析結果である非言語情報解析結果に応じて、現在の対話の話題を継続するか否かを判定する話題継続判定部とを有し、前記応答生成部は、前記話題継続判定部による判定結果に応じて、応答を生成する。
【０００８】
また、本発明にかかる音声対話方法は、ユーザと音声を用いた対話を行う音声対話装置を用いて行われる音声対話方法であって、前記ユーザの発話であるユーザ発話を取得し、前記取得されたユーザ発話の言語情報について構文解析を行い、前記取得されたユーザ発話について、前記言語情報とは異なる非言語情報であって、前記ユーザ発話の韻律情報及び前記音声対話装置によって生成された応答に関する履歴情報の少なくとも一方を含む非言語情報の解析を行い、前記非言語情報の解析結果である非言語情報解析結果に応じて、現在の対話の話題を継続するか否かを判定し、前記判定の結果に応じて生成された応答に対応する音声を出力する。
【０００９】
本発明は、上記のように構成されていることによって、構文解析の結果を用いなくても、話題を継続するか否かを判定することができる。したがって、本発明は、適切なタイミングで話題を遷移することが可能である。
【００１０】
また、好ましくは、前記話題継続判定部は、前記非言語情報解析結果に含まれる少なくとも１つの特徴量と、前記特徴量に対応する予め定められた閾値との比較に応じて、話題を継続するか否かを判定する。
本発明は、上記のように構成されていることによって、話題を継続するか否かの判定を、容易に実現することが可能である。
【００１１】
また、好ましくは、前記話題継続判定部は、同一の話題の継続時間が予め定められた閾値以上である場合に、話題を遷移すると判定する。
本発明は、上記のように構成されていることによって、同一の話題が長く続いたときに、確実に話題を遷移することが可能となる。
【００１２】
また、好ましくは、前記話題継続判定部は、予め機械学習によって生成された判定モデルを用いて、前記非言語情報解析結果によって示される特徴が、話題を継続することに対応するか又は話題を遷移することに対応するかを識別することによって、話題を継続するか否かを判定する。
本発明は、上記のように構成されていることによって、話題を継続するか否かの判定を、より正確に行うことが可能である。
【発明の効果】
【００１３】
本発明によれば、適切なタイミングで話題を遷移することが可能な音声対話装置及び音声対話方法を提供できる。
【図面の簡単な説明】
【００１４】
【図１】実施の形態１にかかる音声対話装置のハードウェア構成を示す図である。
【図２】実施の形態１にかかる音声対話装置の構成を示すブロック図である。
【図３】実施の形態１にかかる非言語情報解析部によって生成される特徴ベクトルを例示する図である。
【図４】実施の形態１にかかる音声対話装置によってなされる音声対話方法を示すフローチャートである。
【図５】実施の形態１にかかる音声対話装置とユーザとの間でなされる対話の例を示す図である。
【図６】比較例にかかる音声対話装置とユーザとの間でなされる対話の例を示す図である。
【図７】実施の形態２にかかる話題継続判定部の処理を示すフローチャートである。
【図８】話題継続時間と、ユーザ発話の後で話題を遷移する場合及び話題を継続する場合それぞれの頻度との関係を例示するグラフである。
【図９】ユーザ発話の句末５００ｍｓｅｃの基本周波数の正規化された値の最大値と、ユーザ発話の後で話題を遷移する場合及び話題を継続する場合それぞれの頻度との関係を例示するグラフである
【図１０】実施の形態３にかかる話題継続判定部の処理を示すフローチャートである。
【図１１】実施の形態３にかかる判定モデルの生成方法を示すフローチャートである。
【図１２】サンプル集合及びサブセットを例示する図である。
【図１３】各サンプルに付与される特徴ベクトルを例示する図である。
【図１４】図１１のＳ３４の処理によって生成される決定木（判定モデル）を例示する図である。
【図１５】決定木の生成方法を示すフローチャートである。
【図１６】２つの分岐関数候補それぞれについて分割された集合を例示する図である。
【図１７】図１４に例示した決定木（判定モデル）を用いて特徴ベクトルを分類する方法を説明するための図である。
【発明を実施するための形態】
【００１５】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００１６】
図１は、実施の形態１にかかる音声対話装置１のハードウェア構成を示す図である。音声対話装置１は、ユーザと音声を用いて対話を行う。具体的には、音声対話装置１は、ユーザからの発話（ユーザ発話）に応じて、ユーザに対して音声を出力することで、ユーザと対話を行う。音声対話装置１は、例えば、生活支援ロボット及び小型ロボット等のロボット、クラウドシステム及びスマートフォン等に搭載可能である。
【００１７】
音声対話装置１は、周囲の音声を収集するマイク２と、音声を発するスピーカ４と、制御装置１０とを有する。なお、音声対話装置１は、カメラ等の撮像装置を有してもよい。制御装置１０は、例えばコンピュータとしての機能を有する。制御装置１０は、マイク２及びスピーカ４と、有線又は無線で接続されている。
【００１８】
制御装置１０は、主要なハードウェア構成として、ＣＰＵ（Central Processing Unit）１２と、ＲＯＭ（Read Only Memory）１４と、ＲＡＭ（Random Access Memory）１６とを有する。ＣＰＵ１２は、制御処理及び演算処理等を行う演算装置としての機能を有する。ＲＯＭ１４は、ＣＰＵ１２によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。ＲＡＭ１６は、処理データ等を一時的に記憶するための機能を有する。
【００１９】
制御装置１０は、マイク２によって集音されたユーザ発話を解析して、そのユーザ発話に応じて、ユーザに対する応答を生成する。そして、制御装置１０は、スピーカ４を介して、生成された応答に対応する音声（応答音声）を出力する。
【００２０】
図２は、実施の形態１にかかる音声対話装置１の構成を示すブロック図である。音声対話装置１は、発話取得部１０２と、構文解析部１０４と、非言語情報解析部１０６と、話題継続判定部１１０と、応答生成部１２０と、音声出力部１５０と、応答履歴格納部１５２とを有する。また、応答生成部１２０は、話題誘導部１３０と、遷移質問データベース１３２（遷移質問ＤＢ；Database）と、深堀質問生成部１４０と、深堀質問データベース１４２（深堀質問ＤＢ）とを有する。
【００２１】
図２に示す各構成要素は、マイク２、スピーカ４及び制御装置１０の少なくとも１つによって実現可能である。また、各構成要素の少なくとも１つは、例えば、ＣＰＵ１２がＲＯＭ１４に記憶されたプログラムを実行することによって実現可能である。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールするようにしてもよい。なお、各構成要素は、上記のようにソフトウェアによって実現されることに限定されず、何らかの回路素子等のハードウェアによって実現されてもよい。
【００２２】
発話取得部１０２は、マイク２を含み得る。発話取得部１０２は、ユーザ発話を取得する。具体的には、発話取得部１０２は、ユーザの発話を集音してデジタル信号に変換する。そして、発話取得部１０２は、ユーザ発話の音声データ（発話音声データ）を、構文解析部１０４及び非言語情報解析部１０６に対して出力する。
【００２３】
構文解析部１０４は、ユーザ発話の言語情報について構文解析を行う。また、構文解析部１０４は、構文解析の結果である構文解析結果を生成する。そして、構文解析部１０４は、構文解析結果を、応答生成部１２０に対して出力する。なお、言語情報とは、ユーザ発話を構成する文字列を示す情報である。
【００２４】
具体的には、構文解析部１０４は、ユーザ発話を示す発話音声データに対して、パターン認識等を用いて自然言語処理を行う。さらに具体的には、構文解析部１０４は、発話音声データに対して、音声認識処理、及び、形態素解析等を含む構文解析を行う。これにより、構文解析部１０４は、ユーザ発話の言語的な内容を認識することができる。例えば、ユーザ発話が「君は京都に行ったことある？」である場合、構文解析部１０４は、「君は京都に行ったことある？」という文字列を認識し、「君」（つまり音声対話装置１が実装されたロボット等）が、「京都」という場所に行ったことがあるか否かを、ユーザが質問しているといった、ユーザ発話の内容を認識し得る。
【００２５】
非言語情報解析部１０６は、ユーザ発話について、言語情報とは異なる非言語情報の解析を行う。また、非言語情報解析部１０６は、非言語情報の解析結果である非言語情報解析結果として、後述する特徴ベクトルを生成する。そして、非言語情報解析部１０６は、非言語情報解析結果（特徴ベクトル）を、話題継続判定部１１０に対して出力する。
【００２６】
ここで、非言語情報とは、処理対象のユーザ発話の言語情報（文字列）とは異なる情報であり、ユーザ発話の韻律情報、及び、応答履歴情報の少なくとも一方を含む。韻律情報とは、ユーザ発話の音声波形の特徴を示す情報であり、例えば、基本周波数、音圧、周波数等の変化量、変動帯域、振幅の最大値及び平均値等である。また、応答履歴情報とは、応答生成部１２０によって生成され、音声出力部１５０によって出力された応答（応答音声データ）に関する過去の履歴を示す情報である。応答履歴格納部１５２は、音声出力部１５０によって応答（応答音声データ）が出力されると、この応答履歴情報を格納（更新）する。
【００２７】
具体的には、非言語情報解析部１０６は、発話取得部１０２によって取得された発話音声データについて音声分析等を行って、音声波形から韻律情報を解析する。そして、非言語情報解析部１０６は、韻律情報を示す特徴量を示す値を算出する。なお、非言語情報解析部１０６は、発話音声データについて、例えば３２ｍｓｅｃごとに区切られたフレームごとに、基本周波数等を算出してもよい。また、非言語情報解析部１０６は、応答履歴格納部１５２から応答履歴情報を抽出して、応答履歴の特徴を示す特徴量を算出する。
【００２８】
なお、上述したように、構文解析は、パターン認識等を用いるため、多大な時間を要することが多い。一方、非言語情報の解析（韻律情報の解析及び応答履歴情報の解析）については、解析に用いられるデータ量が構文解析と比較して少なく、演算手法が、構文解析と比較して単純である。したがって、非言語情報の解析に要する時間は、構文解析と比較してかなり短くなり得る。
【００２９】
話題継続判定部１１０は、非言語情報解析結果に応じて、現在の対話の話題を継続するか、又は別の話題に遷移するかを判定する。話題継続判定部１１０は、この判定結果を、応答生成部１２０に対して出力する。具体的には、話題継続判定部１１０は、別の話題に遷移すると判定した場合は、話題を遷移する旨を示す話題遷移指示を、話題誘導部１３０に対して出力する。一方、話題継続判定部１１０は、話題を継続すると判定した場合は、話題を継続する旨を示す話題継続指示を、深堀質問生成部１４０に対して出力する。
【００３０】
なお、話題継続判定部１１０が非言語情報解析結果を用いて行う判定方法の具体例については、後述する他の実施の形態で示す。例えば、この話題継続判定部１１０によってなされる判定方法は、予め設定された判別式を用いてなされてもよいし、予め機械学習によって生成された判定モデルを用いてなされてもよい。
【００３１】
応答生成部１２０は、構文解析結果又は非言語情報解析結果を用いて、ユーザに対して出力する音声を示す音声データを生成する。具体的には、応答生成部１２０は、構文解析結果から、ユーザに対する応答を示す応答音声データを生成し得る。また、応答生成部１２０は、話題継続判定部１１０による判定結果に応じて、異なる応答を生成し得る。
【００３２】
ここで、応答は、ユーザの発話に応じて発せられる音声であり、例えば、「相槌」、「傾聴応答」、「質問」及び「回答」を含む。応答生成部１２０は、例えば予め定められた設定条件等に応じて、どの応答タイプとするかを決定し、その応答タイプに対応する具体的な音声データを決定する。
【００３３】
「相槌」は、ユーザの話を聞いているということを示す音声であって、例えば「うん」、「はい」、「うんうん」、「ええ」等の、ユーザ発話の内容とは関係のない音声を含む。「傾聴応答」は、ユーザの話を聞いているということを示す音声であって、ユーザ発話の内容に応じた音声であり得る。傾聴応答は、例えばユーザ発話に対するおうむ返しの応答を含む。また、例えば、ユーザ発話が「今度京都に連れて行ってあげるよ」である場合、傾聴応答は、「それは嬉しいね」であってもよい。また、「質問」は、ユーザに対して何かを聞くための音声である。質問は、「深堀質問」及び「遷移質問」を含む。「深堀質問」は、ユーザ発話に対してさらに詳しいことを聞き出すための質問を示す音声である。例えば、「深堀質問」は、「もっと詳しく聞かせてもらえますか？」であってもよい。また、「遷移質問」は、現在の対話における話題を転換させるように、次の話題に誘導するための質問を示す音声である。後述するように、応答生成部１２０は、話題継続判定部１１０によって現在の対話の話題を継続すると判定された場合に、「深堀質問」を生成する。また、応答生成部１２０は、話題継続判定部１１０によって別の話題に遷移すると判定された場合に、「遷移質問」を生成する。また、「回答」は、ユーザ発話が、音声対話装置１（音声対話装置１が実装されたロボット等）に対する質問である場合に、その質問に対する回答を示す音声である。
【００３４】
なお、本実施の形態においては、ユーザと音声対話装置１との対話において話題を提供するのは、音声対話装置１であるとする。このとき、音声対話装置１は、「遷移質問」の応答によって、話題を提供し得る。ここで、「遷移質問」は、直前のユーザ発話とは関係のない音声である。したがって、「遷移質問」は、ユーザ発話の内容を構文解析によって解析しなくても、生成され得る。また、「深堀質問」も、直前のユーザ発話とは関係のない音声であってもよく、したがって、ユーザ発話の内容を構文解析によって解析しなくても、生成され得る。
【００３５】
音声出力部１５０は、スピーカ４を含み得る。音声出力部１５０は、応答生成部１２０から受け付けた応答音声データを、アナログ信号に変換する。そして、音声出力部１５０は、応答音声データに対応する音声（応答）を、スピーカ４から出力する。さらに、音声出力部１５０は、出力した応答音声データを応答履歴格納部１５２に対して出力する。
【００３６】
応答履歴格納部１５２は、その応答音声データを識別するデータを、応答履歴情報として格納する。さらに、応答履歴格納部１５２は、応答履歴情報として対話に関する時間を含む場合に、その時間を計測し、計測された時間を応答履歴情報として格納してもよい。
【００３７】
図３は、実施の形態１にかかる非言語情報解析部１０６によって生成される特徴ベクトルを例示する図である。なお、図３に例示する特徴ベクトルは、一例にすぎず、他の様々な特徴ベクトル（例えば後述する図１３に示す特徴ベクトル等）が可能である。ｉ番目のユーザ発話についての特徴ベクトルをｖｉとすると、特徴ベクトルのｎ個の成分は、ｖｉ＝（ｖｉ１，ｖｉ２，・・・，ｖｉ（ｍ−１），ｖｉｍ，ｖｉ（ｍ＋１），・・・，ｖｉｎ）と表される。ここで、ｉ、ｎ及びｍは整数（但しｎ＞ｍ）である。また、ｖｉ１〜ｖｉ（ｍ−１）が、ｉ番目のユーザ発話情報に関する韻律情報の解析結果に対応する。また、ｖｉｍ〜ｖｉｎが、応答履歴情報の解析結果に対応する。なお、ｖｉｍ〜ｖｉｎについては、応答履歴格納部１５２に格納された情報そのものであってもよい。つまり、非言語情報解析部１０６は、応答履歴情報については、応答履歴格納部１５２から応答履歴を抽出するのみでもよく、特別な解析を行わなくてもよい。
【００３８】
図３に示す例では、例えば、ｖｉ１は、ｉ番目のユーザ発話の句末のＴｍｓｅｃ（ユーザ発話の終了時点からＴｍｓｅｃ（Ｔミリ秒）遡った時間から終了時点までの期間）における基本周波数ｆ０（ｆ０Ｔ）についてのパラメータを示す。また、ｖｉ５は、ｉ番目のユーザ発話の長さ（ユーザ発話長）Ｌ１［ｓｅｃ］を示す。なお、基本周波数ｆ０は、フレームごとに、ＳＰＴＫ（Speech Signal Processing Toolkit）のＳＷＩＰＥ（Saw-tooth Waveform Inspired Pitch Estimation）のロジックを用いて算出され得る。
【００３９】
また、ｖｉｍは、同一話題の継続時間（話題継続時間）Ｄ１［ｓｅｃ］を示す。話題継続時間Ｄ１は、最後に「遷移質問」（応答）が音声出力部１５０から出力されてからの、経過時間である。また、ｖｉ（ｍ＋１）は、直前の応答タイプを示す。直前の応答タイプは、直前（ｉ番目のユーザ発話の直前）に、音声出力部１５０から出力された応答のタイプ（「相槌」、「傾聴応答」、「質問」及び「回答」のいずれか）である。また、ｖｉ（ｍ＋２）は、最新の質問タイプを示す。最新の質問タイプは、最後に音声出力部１５０から出力された「質問」（応答）のタイプ（「深堀質問」及び「遷移質問」のいずれか）である。
【００４０】
ここで、ｖｉ（ｍ＋１）及びｖｉ（ｍ＋２）のような、数値ではない成分の成分値（特徴量）については、各タイプに数値が割り当てられている。例えば、ｖｉ（ｍ＋１）において、成分値「０」は「相槌」を示し、成分値「１」は「傾聴応答」を示し、成分値「２」は「質問」を示し、成分値「３」は「回答」を示す。また、ｖｉ（ｍ＋２）において、成分値「０」は「深堀質問」を示し、成分値「１」は「遷移質問」を示す。
【００４１】
次に、応答生成部１２０（図２）の構成について説明する。なお、図２に示された応答生成部１２０の構成要素は、応答として、「質問」、つまり話題を継続するための質問（深堀質問）又は話題を遷移するための質問（遷移質問）を生成する場合におけるものである。しかしながら、応答生成部１２０は、「質問」以外の応答も生成し得る。その場合、上述したように、応答生成部１２０は、構文解析結果から、応答音声データを生成し得る。
【００４２】
話題誘導部１３０は、話題継続判定部１１０から話題遷移指示を受け付けた場合に、遷移質問を、応答として生成する。具体的には、話題誘導部１３０は、遷移質問データベース１３２を用いて、遷移質問を示す応答音声データを生成する。遷移質問データベース１３２は、遷移質問を示す複数の応答音声データを予め記憶している。話題誘導部１３０は、遷移質問データベース１３２に記憶された複数の遷移質問から、順番に、又はランダムに、応答のための質問（応答音声データ）を選択する。そして、話題誘導部１３０は、選択された応答音声データを、音声出力部１５０に対して出力する。これにより、遷移質問を示す音声が、音声出力部１５０によって出力される。なお、話題誘導部１３０は、構文解析結果を用いないで、「遷移質問」の応答を生成し得る。したがって、遷移質問の応答は、取得されたユーザ発話の内容とは関係がなくてもよい。例えば、話題誘導部１３０は、ユーザ発話に関係なく、例えば「リハビリの調子はどう？」といった、次の話題を促す「遷移質問」の応答を生成する。このように、話題継続判定部１１０が話題を遷移すると判定した場合に、話題誘導部１３０が遷移質問を生成するので、適切なタイミングで、ユーザにとって違和感なく話題を転換させることができる。つまり、ユーザにとって興味のない話題を継続してしまってユーザに不快感を与えることを抑制することができる。したがって、音声対話装置１との対話の満足度を向上させることが可能となる。
【００４３】
深堀質問生成部１４０は、話題継続判定部１１０から話題継続指示を受け付けた場合に、深堀質問を、応答として生成する。具体的には、深堀質問生成部１４０は、深堀質問データベース１４２を用いて、深堀質問を示す応答音声データを生成する。深堀質問データベース１４２は、深堀質問を示す複数の応答音声データを予め記憶している。深堀質問生成部１４０は、深堀質問データベース１４２に記憶された複数の深堀質問から、順番に、又はランダムに、応答のための質問（応答音声データ）を選択する。そして、深堀質問生成部１４０は、選択された応答音声データを、音声出力部１５０に対して出力する。これにより、深堀質問を示す音声が、音声出力部１５０によって出力される。なお、深堀質問生成部１４０は、構文解析結果を用いないで、「深堀質問」の応答を生成し得る。したがって、深堀質問の応答は、取得されたユーザ発話の内容とは関係がなくてもよい。例えば、深堀質問生成部１４０は、ユーザ発話に関係なく、例えば「もっと詳しく聞かせてもらえますか？」といった、話題の継続を促す「深堀質問」の応答を生成する。このように、話題継続判定部１１０が話題を継続すると判定した場合に、話題誘導部１３０が深堀質問を生成するので、ユーザにとって違和感なく話題を継続させることができる。つまり、ユーザが継続したい話題であるにも関わらず別の話題に転換してしまって表層的な対話に終始することを抑制することができる。したがって、音声対話装置１との対話の満足度を向上させることが可能となる。
【００４４】
図４は、実施の形態１にかかる音声対話装置１によってなされる音声対話方法を示すフローチャートである。また、図５は、実施の形態１にかかる音声対話装置１とユーザとの間でなされる対話の例を示す図である。なお、図５において、奇数の発話Ｎｏ（発話番号）の発話が、音声対話装置１が出力した発話（音声）であり、偶数の発話Ｎｏの発話が、ユーザが発した発話（ユーザ発話）である。また、図５に示す例では、音声対話装置１は、発話Ｎｏ．６から発話Ｎｏ．９の発話において、話題を継続するか否かを判定するとする。
【００４５】
まず、発話取得部１０２は、上述したようにユーザ発話を取得する（ステップＳ１０２）。そして、構文解析部１０４は、上述したように、取得されたユーザ発話について構文解析を行い（ステップＳ１０４）、非言語情報解析部１０６は、取得されたユーザ発話について、非言語情報（韻律情報及び応答履歴情報）の解析を行う（ステップＳ１０６）。ここで、Ｓ１０４の処理及びＳ１０６の処理は、並行して行われ得る。そして、Ｓ１０４の処理及びＳ１０６の処理の開始のタイミングは、同じであってもよいし、Ｓ１０６の処理の方が早くてもよい。そして、Ｓ１０６の処理は、次のＳ１０８の処理の前に完了する。一方、Ｓ１０４の処理は、後述するＳ１２２（又はＳ１３２）の処理が開始したときであっても、完了する必要はない。さらに、本実施の形態において、Ｓ１０４の処理は、必ずしも行われなくてもよい。
【００４６】
Ｓ１０６の処理（非言語情報の解析処理）が完了すると、話題継続判定部１１０は、上述したように、非言語情報解析結果を用いて、現在の対話の話題を継続するか、又は別の話題に遷移するかを判定する（ステップＳ１０８）。話題継続判定部１１０によって別の話題に遷移すると判定された場合（ステップＳ１１０のＮＯ）、話題誘導部１３０は、遷移質問を示す応答音声データを生成し、音声出力部１５０は、この生成された遷移質問を出力する（ステップＳ１２２）。一方、話題継続判定部１１０によって話題を継続すると判定された場合（ステップＳ１１０のＹＥＳ）、深堀質問生成部１４０は、深堀質問を示す応答音声データを生成し、音声出力部１５０は、この生成された深堀質問を出力する（ステップＳ１３２）。
【００４７】
例えば、図５の例で、非言語情報解析部１０６は、発話Ｎｏ．６のユーザ発話「月に１回とかかなあ」についての非言語情報を解析する。そして、話題継続判定部１１０は、発話Ｎｏ．６のユーザ発話についての非言語情報解析結果を用いて、話題を継続するか否かを判定し（Ｓ１０８）、話題を遷移すると判定する（Ｓ１１０のＮＯ）。したがって、話題誘導部１３０は、遷移質問である「リハビリの調子はどう？」（発話Ｎｏ．７）を生成し、音声出力部１５０によってその遷移質問が出力される。
【００４８】
一方、図５の例で、非言語情報解析部１０６は、発話Ｎｏ．８のユーザ発話「まあまあですよ」についての非言語情報を解析する。そして、話題継続判定部１１０は、発話Ｎｏ．８のユーザ発話についての非言語情報解析結果を用いて、話題を継続するか否かを判定し（Ｓ１０８）、話題を継続すると判定する（Ｓ１１０のＹＥＳ）。したがって、深堀質問生成部１４０は、深堀質問である「もっと聞かせてもらえますか？」（発話Ｎｏ．９）を生成し、音声出力部１５０によってその深堀質問が出力される。
【００４９】
そして、Ｓ１２２の処理及びＳ１３２の処理の後、応答履歴格納部１５２は、応答履歴を更新する（ステップＳ１４０）。具体的には、遷移質問が生成された場合（Ｓ１１０のＮＯ、Ｓ１２２）、音声対話装置１の応答タイプは「質問」であるので、応答履歴格納部１５２は、最新（図５の例では発話Ｎｏ．７）の応答タイプを「質問」と記憶する。そして、この質問タイプは「遷移質問」であるので、最新の質問タイプを「遷移質問」と記憶する。また、応答履歴格納部１５２は、話題継続時間については、時間のカウントを終了し、新たな時間のカウントを開始する。
【００５０】
一方、深堀質問が生成された場合（Ｓ１１０のＹＥＳ、Ｓ１３２）、音声対話装置１の応答タイプは「質問」であるので、応答履歴格納部１５２は、最新（図５の例では発話Ｎｏ．９）の応答タイプを「質問」と記憶する。そして、この質問タイプは「深堀質問」であるので、最新の質問タイプを「深堀質問」と記憶する。また、応答履歴格納部１５２は、話題継続時間については、時間のカウントを継続する。
【００５１】
（比較例）
次に、比較例について説明する。
図６は、比較例にかかる音声対話装置とユーザとの間でなされる対話の例を示す図である。なお、図６において、奇数の発話Ｎｏ（発話番号）の発話が、音声対話装置が出力した発話（音声）であり、偶数の発話Ｎｏの発話が、ユーザが発した発話（ユーザ発話）である。ここで、比較例にかかる音声対話装置は、ユーザの発話内容を構文解析で解析した構文解析結果を用いて、話題を継続するか遷移するかの判定を行っている。
【００５２】
このとき、ユーザが「月に１回とかかなあ」（発話Ｎｏ．６）と発声したとき、実際には、話題を転換したいと考えていたとする。しかしながら、上記ユーザ発話には話題の遷移を促すような単語が含まれていない。したがって、比較例にかかる音声対話装置は、このユーザ発話について構文解析を行っても、話題を遷移することはできない。そして、ユーザが「入院生活が長かったからね」（発話Ｎｏ．１０）と発声し、そのユーザ発話に、「入院生活」という、話題の遷移を促すような単語が含まれている。したがって、この発話Ｎｏ．１０の発話が発声されて初めて、比較例にかかる音声対話装置は、話題を遷移することができる。このように、比較例にかかる音声対話装置では、ユーザが話題を転換したい場合であっても、すぐに話題を遷移することができない。図６の例では、ユーザが「月に１回とかかなあ」（発話Ｎｏ．６）と発声してから、音声対話装置が「リハビリの調子はどう？」（発話Ｎｏ．１１）という話題の遷移を促す質問を発声するまで、かなりの時間が経過してしまっている。また、比較例にかかる音声対話装置では、ユーザが主体的に話題の転換を促す単語を発話に織り交ぜなければ、話題を遷移することができないおそれがある。したがって、比較例にかかる音声対話装置では、適切なタイミングで話題を遷移することができない。
【００５３】
一方、ここで、ユーザが話題を転換したい場合、例えばユーザ発話の韻律又は同一話題の継続時間といった非言語情報に、その話題を転換したい旨の意思が表れる可能性が高い傾向にある。したがって、本実施の形態にかかる音声対話装置１は、構文解析結果を用いなくても、ユーザ発話に対する非言語情報解析結果を用いて、話題を継続するか遷移するかを判定する。これにより、図５に例示するように、ユーザが「月に１回とかかなあ」（発話Ｎｏ．６）と発声したときに、音声対話装置１は、自身の次の発話で、話題を遷移するための遷移質問（発話Ｎｏ．７）を出力することができる。つまり、本実施の形態にかかる音声対話装置１では、比較例の場合と比較して、ユーザが話題を転換したいと望んでから話題が転換されるまでの時間が短くなる。
【００５４】
また、ユーザが話題の継続を望む場合（発話Ｎｏ．９）には、音声対話装置１は、自身の次の発話で、話題を継続するための深堀質問を出力することができる。そして、本実施の形態にかかる音声対話装置１では、ユーザが主体的に話題の転換を促す単語を発話に織り交ぜなくても、話題を遷移することができる。さらに、ユーザ発話について構文解析よりも時間のかからない非言語情報解析の結果を用いて、話題を継続するか遷移するかを判定する。したがって、実施の形態１にかかる音声対話装置１は、適切なタイミングで話題を遷移することが可能である。
【００５５】
（実施の形態２）
次に、実施の形態２について説明する。実施の形態２においては、話題継続判定部１１０の処理が、実施の形態１と比較して、より具体的に示されている。具体的には、実施の形態２にかかる話題継続判定部１１０は、非言語情報解析結果のうちの、話題継続時間Ｄ１（図３のｖｉｍ）及び判定対象のユーザ発話の句末の５００ｍｓｅｃにおける基本周波数ｆ０５００（図３のｖｉ１）を用いて、話題を継続するか否かを判定する。なお、実施の形態２にかかる音声対話装置１の構成については、図１及び図２に示した実施の形態１にかかる音声対話装置１の構成と実質的に同様であるので、説明を省略する。
【００５６】
図７は、実施の形態２にかかる話題継続判定部１１０の処理を示すフローチャートである。図７に示すフローチャートは、図４に示したフローチャートのＳ１０８及びＳ１１０の処理の具体例に対応する。話題継続判定部１１０は、話題継続時間Ｄ１が予め定められた閾値Ｄｔｈ１よりも短いか否かを判定する（ステップＳ２０２）。話題継続時間Ｄ１が閾値Ｄｔｈ１以上である場合（Ｓ２０２のＮＯ）、話題継続判定部１１０は、話題を遷移すると判定する（ステップＳ２０４）。そして、処理は、図４のＳ１２２に進む。同一の話題が長く続いたとき、ユーザは別の話題に転換したいと所望する傾向にあるが、上記の構成により、確実に話題を遷移することが可能となる。
【００５７】
一方、話題継続時間Ｄ１が閾値Ｄｔｈ１よりも短い場合（Ｓ２０２のＹＥＳ）、話題継続判定部１１０は、ユーザ発話の句末５００ｍｓｅｃの基本周波数ｆ０５００の正規化された値ｆ０ｚ５００の最大値ｍａｘ（ｆ０ｚ５００）が予め定められた閾値Ｍｔｈ１よりも小さいか否かを判定する（ステップＳ２０６）。具体的には、話題継続判定部１１０は、非言語情報解析結果（特徴ベクトル）から最大値ｍａｘ（ｆ０ｚ５００）を算出し、算出された最大値ｍａｘ（ｆ０ｚ５００）と閾値Ｍｔｈ１とを比較する。なお、最大値ｍａｘ（ｆ０ｚ５００）の算出は、非言語情報解析部１０６によって行われてもよい。
【００５８】
ここで、基本周波数ｆ０５００の正規化値ｆ０ｚ５００は、以下の式１を用いて算出される。ここで、事前発話の基本周波数ｆ０５００をｆ０ｐｒｅ５００とする。「事前発話」とは、判定対象のユーザ発話よりも前にそのユーザが発声した発話のことである。事前とは、１分前であってもよいし、１０分前であってもよいし、前日であってもよい。
（式１）
【数１】
2018072650.tif 000003
【００５９】
最大値ｍａｘ（ｆ０ｚ５００）が閾値Ｍｔｈ１以上である場合（Ｓ２０６のＮＯ）、話題継続判定部１１０は、話題を遷移すると判定する（ステップＳ２０４）。そして、処理は、図４のＳ１２２に進む。一方、最大値ｍａｘ（ｆ０ｚ５００）が閾値Ｍｔｈ１よりも小さい場合（Ｓ２０６のＹＥＳ）、話題継続判定部１１０は、話題を継続すると判定する（ステップＳ２０８）。そして、処理は、図４のＳ１３２に進む。なお、閾値Ｄｔｈ１及び閾値Ｍｔｈ１の設定方法については、それぞれ、後述する図８及び図９を用いて説明する。
【００６０】
図８は、話題継続時間と、ユーザ発話の後で話題を遷移する場合及び話題を継続する場合それぞれの頻度との関係を例示するグラフである。図８は、事前にサンプルとして抽出した複数のユーザ発話のそれぞれについてまとめた統計データである。なお、それぞれのユーザ発話が、話題を遷移することに対応するか、又は話題を継続することに対応するかについては、例えば、アノテーションを行う者が対話（ユーザ発話）を聴くことで判断してもよい（図９の例でも同様）。
【００６１】
例えば、話題継続時間が１ｓｅｃ未満である場合に話題を遷移する頻度は、６である。一方、話題継続時間が１ｓｅｃ未満である場合に話題を継続する頻度は、７である。同様に、話題継続時間が７ｓｅｃ以上である場合に話題を遷移する頻度は、７である。一方、話題継続時間が７ｓｅｃ以上である場合に話題を継続する頻度は、３である。このように、話題継続時間がある程度長い場合は、話題を遷移する可能性が高い傾向にある。一方、話題継続時間が短い場合は、話題を遷移するか話題を継続するかの傾向はない。
【００６２】
図８に例示するように、話題を遷移する傾向となる話題継続時間の境界値は、５．１ｓｅｃである。したがって、Ｄｔｈ１＝５．１と設定される。なお、上記の閾値（境界値）は、音声対話装置１の話題誘導部１３０によって提供される話題（例えば旅行の雑談等）に応じて、適宜、変更され得る。したがって、音声対話装置１は、遷移質問データベース１３２に格納された質問ごとに、閾値Ｄｔｈ１を記憶していてもよい。また、上記の閾値は、発話の個別言語（日本語、英語、仏語等）によっても異なり得る。したがって、音声対話装置１は、遷移質問データベース１３２に格納された質問及び個別言語ごとに、閾値Ｄｔｈ１を記憶していてもよい。
【００６３】
図９は、ユーザ発話の句末５００ｍｓｅｃの基本周波数ｆ０５００の正規化された値ｆ０ｚ５００の最大値ｍａｘ（ｆ０ｚ５００）と、ユーザ発話の後で話題を遷移する場合及び話題を継続する場合それぞれの頻度との関係を例示するグラフである。図９は、事前にサンプルとして抽出した複数のユーザ発話のそれぞれについてまとめた統計データである。例えば、最大値ｍａｘ（ｆ０ｚ５００）が０．２未満である場合に話題を遷移する頻度は、６である。一方、最大値ｍａｘ（ｆ０ｚ５００）が０．２未満である場合に話題を継続する頻度は、９である。このように、最大値ｍａｘ（ｆ０ｚ５００）が小さい場合は、話題を継続する可能性が高い傾向にある。
【００６４】
同様に、最大値ｍａｘ（ｆ０ｚ５００）が０．６以上かつ０．８未満である場合に話題を遷移する頻度は、０である。一方、最大値ｍａｘ（ｆ０ｚ５００）が０．６以上かつ０．８未満である場合に話題を継続する頻度は、３である。このように、最大値ｍａｘ（ｆ０ｚ５００）が大きい場合は、話題を遷移する可能性が高い傾向にある。
【００６５】
図９に例示するように、話題を遷移するか継続するかの境界値となる最大値ｍａｘ（ｆ０ｚ５００）の値は、０．５５である。したがって、Ｍｔｈ１＝０．５５と設定される。なお、上記の閾値（境界値）は、音声対話装置１の話題誘導部１３０によって提供される話題（例えば旅行の雑談等）に応じて、適宜、変更され得る。したがって、音声対話装置１は、遷移質問データベース１３２に格納された質問ごとに、閾値Ｍｔｈ１を記憶していてもよい。また、上記の閾値は、発話の個別言語（日本語、英語、仏語等）によっても異なり得る。したがって、音声対話装置１は、遷移質問データベース１３２に格納された質問及び個別言語ごとに、閾値Ｍｔｈ１を記憶していてもよい。
【００６６】
実施の形態２にかかる音声対話装置１においても、構文解析結果を用いなくても、ユーザ発話に対する非言語情報解析結果を用いて、話題を継続するか遷移するかを判定する。したがって、実施の形態１と同様に、実施の形態２にかかる音声対話装置１は、適切なタイミングで話題を遷移することが可能である。
【００６７】
さらに、実施の形態２においては、予め定められた単純な判別式（Ｓ２０２及びＳ２０６の処理に対応）を用いて、話題を継続するか遷移するかを判定することができる。つまり、実施の形態２においては、話題継続判定部１１０は、非言語情報解析結果に含まれる特徴量（話題継続時間Ｄ１及び基本周波数ｆ０の最大値等）と、それらの特徴量に対応する予め定められた閾値（Ｄｔｈ１及びＭｔｈ１等）との比較に応じて、話題を継続するか遷移するかを判定する。したがって、話題を継続するか遷移するかの判定を、容易に実現することが可能である。
【００６８】
（実施の形態３）
次に、実施の形態３について説明する。実施の形態３においては、話題継続判定部１１０の処理が、実施の形態１と比較して、より具体的に示されている。具体的には、実施の形態３にかかる話題継続判定部１１０は、予め機械学習（ランダムフォレスト等）によって生成された判定モデルを用いて、話題を継続するか遷移するかを判定する。より具体的には、話題継続判定部１１０は、判定モデルを用いて、非言語情報解析結果によって示される特徴（特徴ベクトルの成分）が、話題を継続することに対応するか又は話題を遷移することに対応するかを識別（分類）する。これによって、話題継続判定部１１０は、話題を継続するか遷移するかを判定する。なお、実施の形態３にかかる音声対話装置１の構成については、図１及び図２に示した実施の形態１にかかる音声対話装置１の構成と実質的に同様であるので、説明を省略する。
【００６９】
図１０は、実施の形態３にかかる話題継続判定部１１０の処理を示すフローチャートである。図１０に示すフローチャートは、図４に示したフローチャートのＳ１０８及びＳ１１０の処理の具体例に対応する。話題継続判定部１１０は、判定対象のユーザ発話の特徴ベクトルｖを、判定モデルに入力する（ステップＳ３０２）。なお、上述したように、特徴ベクトルｖは、非言語情報解析結果に対応する。つまり、特徴ベクトルｖは、非言語情報解析部１０６によって生成され得る。また、判定モデルは、対応するユーザ発話の特徴ベクトルが、話題の継続を示すか又は話題の遷移を示すかを判定するための、決定木で構成されている。判定モデルについては後述する。
【００７０】
話題継続判定部１１０は、特徴ベクトルｖが、「遷移クラス」に分類されるか否かを判定する（ステップＳ３０４）。ここで、「遷移クラス」とは、判定モデルによってクラス分けされたクラス（カテゴリ）の１つである。ここでは、判定モデルでクラス分けされるクラスには、「遷移クラス」及び「継続クラス」がある。「遷移クラス」は、そのユーザ発話が話題の遷移を示す確率が高いクラスである。また、「継続クラス」は、そのユーザ発話が話題の継続を示す確率が高い（つまりそのユーザ発話が話題の遷移を示す確率が低い）クラスである。詳しくは後述する。
【００７１】
特徴ベクトルｖが「遷移クラス」に分類される場合（Ｓ３０４のＹＥＳ）、話題継続判定部１１０は、話題を遷移すると判定する（ステップＳ３０６）。そして、処理は、図４のＳ１２２に進む。一方、特徴ベクトルｖが「遷移クラス」に分類されない場合（Ｓ３０４のＮＯ）、特徴ベクトルｖは、「継続クラス」に分類される。したがって、話題継続判定部１１０は、話題を継続すると判定する（ステップＳ３０８）。そして、処理は、図４のＳ１３２に進む。
【００７２】
次に、判定モデルの生成方法について説明する。なお、判定モデルの生成については、本実施の形態にかかる音声対話装置１が行ってもよいし、音声対話装置１とは別の装置（コンピュータ）が行ってもよい。
【００７３】
図１１は、実施の形態３にかかる判定モデルの生成方法を示すフローチャートである。まず、多数の学習データを用いてサンプル集合Ｓが準備される（ステップＳ３２０）。ここで、サンプル集合Ｓの要素であるサンプルｉは、事前に準備したユーザ発話に対応するデータである。サンプルの数は、例えば１５０個程度であるが、これに限定されない。次に、サンプル集合Ｓを用いて、Ｔ個のサブセットＳ１〜ＳＴが生成される（ステップＳ３２２）。サブセットの数Ｔは、例えば１００個程度であるが、これに限定されない。そして、サブセットごとに決定木（判定モデル）が生成される。つまり、Ｔ本の決定木が生成されることとなる（ステップＳ３４）。以下、図を用いて詳述する。
【００７４】
図１２は、サンプル集合Ｓ及びサブセットＳ１〜ＳＴを例示する図である。サンプルｉ（図１２に円で示す）には、それぞれ、特徴ベクトルｖｉ及び正解ラベルｃｉが付与されている。正解ラベルｃｉは、そのサンプルｉに対応するユーザ発話が話題の遷移を示す場合に「遷移」を示し、そのサンプルｉに対応するユーザ発話が話題の継続を示す場合に「継続」を示す。なお、図１２において、「遷移」の正解ラベルが付与されているサンプルｉには、ハッチングが施されている。また、「遷移クラス」は、「遷移」を示す正解ラベルｃｉに対応し、「継続クラス」は、「継続」を示す正解ラベルｃｉに対応する。なお、正解ラベルｃｉは、アノテーションを行う者（アノテータ）が各サンプルｉに対応するユーザ発話を聴くこと等によって、付与される。つまり、アノテータは、ユーザ発話を聴いて、そのユーザ発話が話題の遷移を示すか否かを、ユーザ発話の言語情報及び非言語情報等から判断して、正解ラベルｃｉをサンプルｉに付与する。例えば、アノテータは、ユーザ発話に否定的な語が含まれる場合に、「遷移」の正解ラベルを、対応するサンプルｉに付与してもよい。なお、アノテータは、ユーザ発話を発しているユーザの画像を見て、正解ラベルｃｉをサンプルｉに付与してもよい。
【００７５】
サブセットは、サンプル集合Ｓから、サンプルｉをランダムに抽出して各サブセットに割り当てることで、作成される。ここで、各サブセットの要素となるサンプルｉの個数は、互いに同じとする。各サブセットの要素となるサンプルｉの個数は、例えば数十個（例えば３０個）である。なお、説明の明確化のため、図１２の例では、各サブセットのサンプルｉの個数を、４個としている。また、サブセット間でサンプルｉが重複してもよい。また、サンプル集合Ｓ内の全てのサンプルｉがサブセットに割り当てられなくてもよい。
【００７６】
図１３は、各サンプルに付与される特徴ベクトルｖｉを例示する図である。なお、図１３に例示する特徴ベクトルは、一例にすぎず、他の様々な特徴ベクトルが可能である。図１３に例示する特徴ベクトルは、１７次元のベクトルであり、ｘ１〜ｘ１７の成分を有する。なお、これらのｘ１〜ｘ１７の成分の値は、各成分の特徴量を正規化（無次元化）したものであり、最小値が０であり、最大値が１である。なお、次元４（ｘ４）の「句末２００ｍｓｅｃのｆ０の傾き」とは、句末２００ｍｓｅｃにおける基本周波数ｆ０の変化量に対応する。具体的には、「句末２００ｍｓｅｃのｆ０の傾き」は、句末２００ｍｓｅｃの後半１００ｍｓｅｃにおける基本周波数ｆ０の平均値から、句末２００ｍｓｅｃの前半１００ｍｓｅｃにおける基本周波数ｆ０の平均値を減算した値に対応し得る。
【００７７】
図１４は、図１１のＳ３４の処理によって生成される決定木（判定モデル）を例示する図である。図１４の例では、Ｔｒｅｅ＿１〜Ｔｒｅｅ＿ＴのＴ本の決定木が生成される。決定木の深さＤを過剰に深くすると過学習となるおそれがあるので、図１４に例示する決定木の深さＤは、最大で３となっている。例えば、Ｔｒｅｅ＿１では、深さ１にノード２，３があり、深さ２にノード４〜７があり、深さ３にノード８，９がある。
【００７８】
また、例えば、Ｔｒｅｅ＿１においては、ノード１が根ノードであり、ノード１から、ノード１の子ノードであるノード２とノード３とに分岐している。また、ノード２から、ノード２の子ノードであるノード４とノード５とに分岐し、ノード３から、ノード３の子ノードであるノード６とノード７に分岐している。さらに、ノード５から、ノード５の子ノードであるノード８とノード９とに分岐している。そして、ノード４，６，７，８，９が、末端ノード（太い線の円で示す）となっている。判定対象のユーザ発話の特徴ベクトルが根ノードであるノード１に入力されたときに、末端ノードであるノード４，６，７，８，９のいずれかに到達する。なお、末端ノード以外のノード１，２，３，５が、分岐ノード（細い線の円で示す）である。
【００７９】
ここで、分岐ノードには、特徴ベクトルがどちらの子ノードに分岐されるかを定義する分岐関数Ｆが割り当てられている。また、末端ノードには、その末端ノードに到達した特徴ベクトルが「遷移クラス」（又は「継続クラス」）に対応する確率Ｐが対応付けられている。以下、決定木の生成方法について説明する。
【００８０】
図１５は、決定木の生成方法を示すフローチャートである。まず、あるサブセット（例えばサブセットＳ１）のある分岐ノード（例えば根ノードであるノード１）について、Ｋ個の分岐関数候補Ｆｃ（Ｆｃｋ；ｋ＝１〜Ｋ）が、ランダムに生成される（ステップＳ３４０）。分岐関数候補Ｆｃは、図１３に例示した特徴ベクトルの成分（ｘ１〜ｘ１７）の少なくとも１つをパラメータとする関数である。このとき、分岐関数候補Ｆｃｋについて、特徴ベクトルがどちらの子ノードに分岐されるかの境界となる閾値ｔｋが対応付けられる。なお、閾値ｔｋも、ランダムに生成され得る。なお、Ｋの値は、特徴ベクトルの次元数の平方根の近似値であってもよい。したがって、図１３の例では、特徴ベクトルの次元数は１７であるので、Ｋ＝４である。
【００８１】
例えば、Ｆｃ１をｘ１の関数とし、対応する閾値ｔ１を０．４としてもよい。また、Ｆｃ２をｘ３の関数とし、対応する閾値ｔ２を０．３としてもよい。また、Ｆｃ３をｘ５の関数とし、対応する閾値ｔ３を０．６としてもよい。また、Ｆｃ４をｘ１７の関数とし、対応する閾値ｔ４を０．４としてもよい。
【００８２】
次に、各分岐関数候補Ｆｃを用いて、サンプルｉが分割される（ステップＳ３４２）。具体的には、以下の式２を用いて、分岐前のノード（親ノード）のサンプル集合Ｓｊのサンプルｉが、左側の子ノードのサンプル集合ＳＬ又は右側の子ノードのサンプル集合ＳＲに分割される。
（式２）
【数２】
2018072650.tif 000004
【００８３】
次に、情報利得Ｉの最も高い分岐関数候補Ｆｃが、そのノードにおける分岐関数Ｆとして採用される（ステップＳ３４４）。具体的には、まず、分岐関数候補Ｆｃごとに、以下の式３で示される情報利得Ｉを算出する。
（式３）
【数３】
2018072650.tif 000005
【００８４】
ここで、Ｈ（Ｓ）は以下の式４で定義される集合Ｓのエントロピである。なお、Ｃは、クラスの数である。上記の例では、Ｃ＝２であり、ｃ＝１を「遷移クラス」とし、ｃ＝２を「継続クラス」とする。また、以下の式において、Ｐｃは、集合Ｓにおけるクラスｃの出現確率である。また、エントロピＨ（Ｓ）は、集合Ｓにおける各クラスの出現確率の偏りを示す。各クラスの出現確率の偏りが小さい場合に、エントロピは大きくなる。
（式４）
【数４】
2018072650.tif 000006
【００８５】
図１６は、２つの分岐関数候補Ｆｃそれぞれについて分割された集合を例示する図である。以下に説明する例では、説明を明確化するため、分岐関数候補Ｆｃが２個であるとする。親ノードの集合Ｓｊのサンプルが、分岐関数候補Ｆｃ１（候補１）によって集合ＳＬ１及び集合ＳＲ１に分割される。また、親ノードの集合Ｓｊのサンプルが、分岐関数候補Ｆｃ２（候補２）によって集合ＳＬ２及び集合ＳＲ２に分割される。図１６の例では、親ノードの集合Ｓｊの８個のサンプルは、各分岐関数候補Ｆｃによって、それぞれ４個のサンプルに分割されている。
【００８６】
この場合、親ノードの集合ＳｊのエントロピＨ（Ｓｊ）は、上記の式４を用いて、以下の式５のように算出される。
（式５）
【数５】
2018072650.tif 000007
【００８７】
また、候補１についての分割後の集合ＳＬ１及び集合ＳＲ１のエントロピは、上記の式４を用いて、以下の式６のように算出される。
（式６）
【数６】
2018072650.tif 000008
【００８８】
また、候補２についての分割後の集合ＳＬ２及び集合ＳＲ２のエントロピは、上記の式４を用いて、以下の式７のように算出される。
（式７）
【数７】
2018072650.tif 000009
【００８９】
したがって、候補１の情報利得Ｉ１及び候補２の情報利得Ｉ２は、上記の式３より、以下の式８のように算出される。
（式８）
【数８】
2018072650.tif 000010
【００９０】
式８より、Ｉ１＜Ｉ２であるので、分岐関数候補Ｆｃ２が、親ノードの分岐関数Ｆとして採用される。そして、集合ＳＬ２及び集合ＳＲ２に対応するノードが、上記親ノードに対する子ノードとされる。つまり、親ノードが根ノードであるノード１である場合、集合ＳＲ２に対応するノードがノード２となり。集合ＳＬ２に対応するノードがノード３となる。
【００９１】
次に、処理は次のノードに移行する（ステップＳ３４６）。ここで、上記のように子ノードがある場合は、処理は子ノードに移行する。また、子ノードがない場合は、処理が終わっていない別のノードに移行する。そして、処理対象のノードのエントロピが０であるか、又はそのノードが指定された深さに到達したかが判定される（ステップＳ３４８）。処理対象のノードのエントロピが０であるか、又はそのノードが指定された深さに到達した場合（Ｓ３４８のＹＥＳ）、そのノードが末端ノードと決定される。そして、末端ノードに割り当てられる、「遷移クラス」の出現確率Ｐが算出される（ステップＳ３５０）。一方、処理対象のノードのエントロピが０でなく、かつ、そのノードが指定された深さに到達していない場合（Ｓ３４８のＮＯ）、そのノードは分岐ノードと決定される。したがって、このノードについて、Ｓ３４０〜Ｓ３４４の処理が繰り返される。
【００９２】
具体的には、図１６に示した例では、集合ＳＲ２のエントロピは０である。したがって、この集合ＳＲ２に対応するノードが末端ノードと決定される。そして、このノードに割り当てられる「遷移クラス」の出現確率Ｐ（Ｐ＝１）が算出される。なお、エントロピが０である場合、その末端ノードに関する「遷移クラス」の出現確率Ｐは１又は０である。
【００９３】
また、図１６に示した例では、集合ＳＲ１のエントロピは０ではない。したがって、この集合ＳＲ１に対応するノードの深さが予め定められた深さ（図１４の例では深さ３）に到達していなければ、このノードは分岐ノードであるとして、Ｓ３４０〜Ｓ３４４の処理が繰り返される。一方、この集合ＳＲ１に対応するノードの深さが予め定められた深さに到達している場合、このノードは末端ノードと決定される。そして、このノードに割り当てられる「遷移クラス」の出現確率Ｐ（Ｐ＝１／４）が算出される。
【００９４】
次に、全てのサブセットについて決定木が生成されたか否かが判定される（ステップＳ３５２）。全てのサブセットについて決定木が生成されていない場合（Ｓ３５２のＮＯ）、処理は、決定木が生成されていない次のサブセットに移行して（ステップＳ３５４）、Ｓ３４０〜Ｓ３５０の処理が繰り返される。一方、全てのサブセットについて決定木が生成された場合（Ｓ３５２のＹＥＳ）、判定モデルが完成したので、処理が終了する。なお、複数の決定木の生成は、並行して行われ得る。つまり、Ｔｒｅｅ＿１〜Ｔｒｅｅ＿Ｔの生成を、同時に行うことが可能である。
【００９５】
次に、判定モデルを用いて、特徴ベクトルを分類する方法について説明する。
図１７は、図１４に例示した決定木（判定モデル）を用いて特徴ベクトルを分類する方法（図１０のＳ３０４）を説明するための図である。まず、Ｔｒｅｅ＿１に特徴ベクトルｖが入力される。ノード１の分岐関数Ｆ１１（閾値ｔ１１）に特徴ベクトルｖが代入されると、Ｆ１１（ｖ）≧ｔ１１であるので、式２より、特徴ベクトルｖは、右側の子ノード２に移行する。ノード２の分岐関数Ｆ１２（閾値ｔ１２）に特徴ベクトルｖが代入されると、Ｆ１２（ｖ）＜ｔ１２であるので、式２より、特徴ベクトルｖは、左側の子ノード５に移行する。ノード５の分岐関数Ｆ１５（閾値ｔ１５）に特徴ベクトルｖが代入されると、Ｆ１５（ｖ）＜ｔ１５であるので、式２より、特徴ベクトルｖは、左側の子ノード９に移行する。そして、ノード９は末端ノードであるので、Ｔｒｅｅ＿１についての、特徴ベクトルｖが各クラスに分類される確率は、ノード９に対応付けられたＰ１（ｃ｜ｖ）である。図１７の例では、特徴ベクトルｖが遷移クラスに分類される確率はＰ１（ｃ＝１｜ｖ）＝０．６であり、継続クラスに分類される確率はＰ１（ｃ＝２｜ｖ）＝０．４である。
【００９６】
また、Ｔｒｅｅ＿Ｔに特徴ベクトルｖが入力され、ノード１の分岐関数ＦＴ１（閾値ｔＴ１）に特徴ベクトルｖが代入されると、ＦＴ１（ｖ）＜ｔＴ１であるので、式２より、特徴ベクトルｖは、左側の子ノード３に移行する。ノード３の分岐関数ＦＴ３（閾値ｔＴ３）に特徴ベクトルｖが代入されると、ＦＴ３（ｖ）＜ｔＴ３であるので、式２より、特徴ベクトルｖは、左側の子ノード７に移行する。ノード７の分岐関数ＦＴ７（閾値ｔＴ７）に特徴ベクトルｖが代入されると、ＦＴ７（ｖ）≧ｔＴ７であるので、式２より、特徴ベクトルｖは、右側の子ノード１０に移行する。そして、ノード１０は末端ノードであるので、Ｔｒｅｅ＿Ｔについての、特徴ベクトルｖが各クラスに分類される確率は、ノード１０に対応付けられたＰＴ（ｃ｜ｖ）である。図１７の例では、特徴ベクトルｖが遷移クラスに分類される確率はＰＴ（ｃ＝１｜ｖ）＝０．８であり、継続クラスに分類される確率はＰＴ（ｃ＝２｜ｖ）＝０．２である。このようにして、話題継続判定部１１０は、Ｔｒｅｅ＿１〜Ｔｒｅｅ＿Ｔについて、上記の処理を行う。
【００９７】
話題継続判定部１１０は、各決定木において算出された確率Ｐ１（ｃ｜ｖ）〜ＰＴ（ｃ｜ｖ）を用いて、以下の式９を用いて、統合された確率Ｐ（ｃ｜ｖ）を算出する。
（式９）
【数９】
2018072650.tif 000011
【００９８】
そして、話題継続判定部１１０は、特徴ベクトルｖが、確率Ｐ（ｃ｜ｖ）において最大値をとるｃに対応するクラスに分類されると判定する。例えば、確率Ｐ（ｃ＝１｜ｖ）＝０．７であり、確率Ｐ（ｃ＝２｜ｖ）＝０．３である場合、話題継続判定部１１０は、特徴ベクトルｖが、ｃ＝１に対応するクラス、つまり遷移クラスに分類されると判定する。
【００９９】
実施の形態３にかかる音声対話装置１においても、構文解析結果を用いなくても、ユーザ発話に対する非言語情報解析結果を用いて、話題を継続するか遷移するかを判定する。したがって、実施の形態１と同様に、実施の形態３にかかる音声対話装置１は、適切なタイミングで話題を遷移することが可能である。
【０１００】
さらに、実施の形態３においては、予め機械学習によって生成された判定モデルを用いて、話題を継続するか遷移するかを判定することが可能となる。ここで、機械学習によって生成された判定モデルを用いることで、より正確な識別を行うことが可能となる。したがって、話題を継続するか遷移するかの判定を、実施の形態２の場合と比較して、より正確に行うことが可能である。
【０１０１】
なお、実施の形態３においては、予め判定モデルを準備しておく必要がある。したがって、実施の形態２の場合の方が、実施の形態３の場合と比較して、より容易に、上記の処理を実現することが可能である。
【０１０２】
（変形例）
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、例えば、上述したフローチャートにおいて、複数の処理の順序は、適宜、変更可能である。また、上述したフローチャートにおいて、複数の処理のうちの１つは、省略されてもよい。また、話題を継続するか遷移するかの判定は、常に行われる必要はない。
【０１０３】
また、上述した実施の形態においては、ユーザ発話について非言語情報解析を行うことで、話題を継続するか遷移するかを判定するとしたが、ユーザ発話についての非言語情報解析だけでなく、他の方法を併用することも可能である。例えば、音声対話装置１に搭載されたカメラによってユーザを撮影して得られたカメラ画像について画像認識処理を行い、その画像認識処理結果（例えばユーザの表情等）も用いてもよい。これにより、非言語情報解析結果のみを用いる場合と比較して、話題を継続するか遷移するかの判定を、より正確に行うことができる。
【０１０４】
また、非言語情報解析部１０６の処理の一部は、構文解析部１０４でも行われ得る。つまり、構文解析部１０４は、構文解析を行う上で必要である場合は、非言語情報解析部１０６で行われる処理も行い得る。したがって、構文解析部１０４は、非言語情報解析部１０６の解析結果を用いて構文解析を行ってもよい。
【符号の説明】
【０１０５】
１  音声対話装置、２  マイク、４  次元、４  スピーカ、１０  制御装置、１０２  発話取得部、１０４  構文解析部、１０６  非言語情報解析部、１１０  話題継続判定部、１２０  応答生成部、１３０  話題誘導部、１３２  遷移質問データベース、１４０  深堀質問生成部、１４２  深堀質問データベース、１５０  音声出力部、１５２  応答履歴格納部
【図１】
2018072650.tif 000012
【図２】
2018072650.tif 000013
【図３】
2018072650.tif 000014
【図４】
2018072650.tif 000015
【図５】
2018072650.tif 000016
【図６】
2018072650.tif 000017
【図７】
2018072650.tif 000018
【図８】
2018072650.tif 000019
【図９】
2018072650.tif 000020
【図１０】
2018072650.tif 000021
【図１１】
2018072650.tif 000022
【図１２】
2018072650.tif 000023
【図１３】
2018072650.tif 000024
【図１４】
2018072650.tif 000025
【図１５】
2018072650.tif 000026
【図１６】
2018072650.tif 000027
【図１７】
2018072650.tif 000028