(57)【要約】【課題】応答誤りが発生しないように適切に対処することが可能な音声対話システムを提供する。【解決手段】発話取得部１０２は、ユーザ発話を取得する。特徴抽出部１０４は、ユーザ発話の特徴を抽出する。応答決定部１２０は、複数の学習モデルのうちのいずれかを用いて、抽出された特徴に応じた応答を決定する。応答実行部１３０は、決定された応答を実行するための制御を行う。応答誤り判定部１４０は、実行された応答が誤りであるか否かを判定する。学習モデル選択部１５０は、応答誤り判定部１４０による判定結果に応じて、学習モデルデータベース１６０に記憶された複数の学習モデルから学習モデルを選択する。応答決定部１２０は、選択された学習モデルを用いて、応答を決定する。【選択図】図２
2019197182.tif 000002
【特許請求の範囲】
【請求項１】
ユーザと音声を用いた対話を行う音声対話システムであって、
前記ユーザの発話であるユーザ発話を取得する発話取得部と、
前記取得されたユーザ発話の特徴を抽出する特徴抽出部と、
予め機械学習によって生成された複数の学習モデルのうちのいずれかを用いて、前記抽出された特徴に応じた応答を決定する応答決定部と、
前記決定された応答を実行するための制御を行う応答実行部と、
前記ユーザ発話に対する前記実行された応答のタイミング又は前記実行された応答に対する前記ユーザ発話のタイミングに応じて、前記実行された応答が誤りであるか否かを判定する応答誤り判定部と、
前記応答誤り判定部による判定結果に応じて、前記複数の学習モデルから前記学習モデルを選択する学習モデル選択部と
を有し、
前記応答決定部は、前記学習モデル選択部によって選択された学習モデルを用いて、前記応答を決定する
音声対話システム。
【請求項２】
前記学習モデル選択部は、前記誤りであると判定されたときの前記応答に対応する特徴を入力した場合に前記誤りと判定された応答を選択しない確率が高い学習モデルを選択する
請求項１に記載の音声対話システム。
【請求項３】
前記学習モデル選択部は、予め定められた第１の期間の間に予め定められた複数回数以上、前記応答が誤りであると判定されたときに、前記誤りであると判定されたときの前記応答に対応する特徴を入力した場合に前記誤りと判定された応答を選択しない確率が高い学習モデルを選択する
請求項２に記載の音声対話システム。
【請求項４】
前記応答誤り判定部は、前記ユーザ発話の途中で前記応答実行部によって発話応答が実行された場合、又は、前記応答実行部によって発話応答が実行されている途中で前記ユーザ発話がなされた場合に、前記応答が発話衝突の誤りであると判定し、
前記学習モデル選択部は、前記発話衝突の誤りであると判定されたときの前記応答に対応する特徴を入力した場合に前記発話応答を出力しない確率が高い学習モデルを選択する
請求項３に記載の音声対話システム。
【請求項５】
前記応答誤り判定部は、前記ユーザ発話が終了してから前記応答実行部によって発話応答が実行されるまでの期間が予め定められた第２の期間以上である場合に、前記応答が長期沈黙の誤りであると判定し、
前記学習モデル選択部は、前記長期沈黙の誤りであると判定されたときの前記応答に対応する特徴を入力した場合に前記発話応答を出力する確率が高い学習モデルを選択する
請求項３又は４に記載の音声対話システム。
【請求項６】
複数の学習モデルを生成する学習モデル生成部
をさらに有し、
前記学習モデル生成部は、
前記学習モデルの生成に用いるサンプルデータ群を複数の分類法で分類し、
前記複数の分類法それぞれについて、分類されて得られた複数のグループごとに機械学習を行って得られる学習モデルの精度を算出することで、前記複数の分類法それぞれの精度を算出し、
前記精度が最高となる分類法で分類された前記複数のグループそれぞれを用いて、複数の学習モデルを生成する
請求項１〜５のいずれか１項に記載の音声対話システム。
【請求項７】
前記学習モデルを生成するためのサンプルデータを取得するデータ取得部
をさらに有し、
前記データ取得部が前記サンプルデータを取得する際に、
前記発話取得部は、サンプルデータを取得するための前記ユーザ発話を取得し、
前記特徴抽出部は、前記取得されたユーザ発話の特徴を抽出し、
前記応答決定部は、予め機械学習によって生成された判別モデルを用いて、前記抽出された特徴に応じた応答を決定し、
前記応答実行部は、前記決定された応答を実行するための制御を行い、
前記応答誤り判定部は、前記サンプルデータを取得するためのユーザ発話に対して実行された応答が誤りであるか否かを判定し、
前記データ取得部は、前記サンプルデータを取得するためのユーザの発話に対して実行された応答が誤りである場合に、当該ユーザ発話に対応する特徴に不正解ラベルを付与することで、前記サンプルデータを取得する
請求項１〜６のいずれか１項に記載の音声対話システム。
【請求項８】
ユーザと音声を用いた対話を行う音声対話システムを用いて行われる音声対話方法であって、
前記ユーザの発話であるユーザ発話を取得し、
前記取得されたユーザ発話の特徴を抽出し、
予め機械学習によって生成された複数の学習モデルのうちのいずれかを用いて、前記抽出された特徴に応じた応答を決定し、
前記決定された応答を実行するための制御を行い、
前記ユーザ発話に対する前記実行された応答のタイミング又は前記実行された応答に対する前記ユーザ発話のタイミングに応じて、前記実行された応答が誤りであるか否かを判定し、
前記判定の結果に応じて、前記複数の学習モデルから前記学習モデルを選択し、
前記選択された学習モデルを用いて、前記応答を決定する
音声対話方法。
【請求項９】
ユーザと音声を用いた対話を行う音声対話システムを用いて行われる音声対話方法を実行するプログラムであって、
前記ユーザの発話であるユーザ発話を取得するステップと、
前記取得されたユーザ発話の特徴を抽出するステップと、
予め機械学習によって生成された複数の学習モデルのうちのいずれかを用いて、前記抽出された特徴に応じた応答を決定するステップと、
前記決定された応答を実行するための制御を行うステップと、
前記ユーザ発話に対する前記実行された応答のタイミング又は前記実行された応答に対する前記ユーザ発話のタイミングに応じて、前記実行された応答が誤りであるか否かを判定するステップと、
前記判定の結果に応じて、前記複数の学習モデルから前記学習モデルを選択するステップと、
前記選択された学習モデルを用いて、前記応答を決定するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音声対話システム、音声対話方法及びプログラムに関し、特に、ユーザと音声を用いた対話を行うことが可能な音声対話システム、音声対話方法及びプログラムに関する。
【背景技術】
【０００２】
ユーザが音声対話ロボット（音声対話システム）と日常会話を楽しむための技術が普及しつつある。この技術にかかる音声対話ロボットは、ユーザが発声した音声の音韻情報等を解析して、解析結果に応じた応答を実行する。ここで、音声対話ロボットが学習モデルを用いて応答を決定することが、行われている。
【０００３】
上記の技術に関連し、特許文献１は、ユーザの発する音声からそのユーザの感情状態を判断して適切な対応動作を実行する感情状態反応動作装置を開示する。特許文献１にかかる感情状態反応動作装置は、音声情報の音韻スペクトルに係る特徴量を抽出する音韻特徴量抽出手段と、音韻特徴量を入力して、予め備えた状態判断テーブルに基づき音声情報の感情状態を判断する状態判断手段と、感情状態を入力して、予め備えた対応動作選択テーブルに基づき対応動作処理を決定する対応動作選択手段とを有する。さらに、特許文献１にかかる感情状態反応動作装置は、感情状態学習用テーブルと感情状態学習手段を備え、感情状態学習手段は、感情状態学習テーブルに基づいて所定の機械学習モデルにより音韻特徴量と感情状態との関連を取得して状態判断テーブルに学習結果を保存し、状態判断手段は、状態判断テーブルに基づいて上記機械学習モデルによる感情状態の判断を行う。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−３５２１５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ユーザの状態（ユーザの違い、又は、ユーザの感情等）によっては、機械学習モデルが適切でないおそれがある。この場合、例えば、ユーザの発話と装置の発話とが衝突する発話衝突、又は、ユーザの発話と装置の発話との間の期間が長期に亘ってしまう長期沈黙といった、応答誤りが発生するおそれがある。一方、特許文献１にかかる技術では、１つの機械学習モデルを用いて対応動作処理を決定している。したがって、特許文献１にかかる技術では、学習モデルが適切でないために応答誤りが発生する場合であっても、応答誤りが発生しないように適切に対処することが困難である。
【０００６】
本発明は、応答誤りが発生しないように適切に対処することが可能な音声対話システム、音声対話方法及びプログラムを提供するものである。
【課題を解決するための手段】
【０００７】
本発明にかかる音声対話システムは、ユーザと音声を用いた対話を行う音声対話システムであって、前記ユーザの発話であるユーザ発話を取得する発話取得部と、前記取得されたユーザ発話の特徴を抽出する特徴抽出部と、予め機械学習によって生成された複数の学習モデルのうちのいずれかを用いて、前記抽出された特徴に応じた応答を決定する応答決定部と、前記決定された応答を実行するための制御を行う応答実行部と、前記ユーザ発話に対する前記実行された応答のタイミング又は前記実行された応答に対する前記ユーザ発話のタイミングに応じて、前記実行された応答が誤りであるか否かを判定する応答誤り判定部と、前記応答誤り判定部による判定結果に応じて、前記複数の学習モデルから前記学習モデルを選択する学習モデル選択部とを有し、前記応答決定部は、前記学習モデル選択部によって選択された学習モデルを用いて、前記応答を決定する。
【０００８】
また、本発明にかかる音声対話方法は、ユーザと音声を用いた対話を行う音声対話システムを用いて行われる音声対話方法であって、前記ユーザの発話であるユーザ発話を取得し、前記取得されたユーザ発話の特徴を抽出し、予め機械学習によって生成された複数の学習モデルのうちのいずれかを用いて、前記抽出された特徴に応じた応答を決定し、前記決定された応答を実行するための制御を行い、前記ユーザ発話に対する前記実行された応答のタイミング又は前記実行された応答に対する前記ユーザ発話のタイミングに応じて、前記実行された応答が誤りであるか否かを判定し、前記判定の結果に応じて、前記複数の学習モデルから前記学習モデルを選択し、前記選択された学習モデルを用いて、前記応答を決定する。
【０００９】
また、本発明にかかるプログラムは、ユーザと音声を用いた対話を行う音声対話システムを用いて行われる音声対話方法を実行するプログラムであって、前記ユーザの発話であるユーザ発話を取得するステップと、前記取得されたユーザ発話の特徴を抽出するステップと、予め機械学習によって生成された複数の学習モデルのうちのいずれかを用いて、前記抽出された特徴に応じた応答を決定するステップと、前記決定された応答を実行するための制御を行うステップと、前記ユーザ発話に対する前記実行された応答のタイミング又は前記実行された応答に対する前記ユーザ発話のタイミングに応じて、前記実行された応答が誤りであるか否かを判定するステップと、前記判定の結果に応じて、前記複数の学習モデルから前記学習モデルを選択するステップと、前記選択された学習モデルを用いて、前記応答を決定するステップとをコンピュータに実行させる。
【００１０】
応答誤りが発生する要因は、学習モデルが適切でないことが多い。本発明は、上記のように構成されているので、応答誤りが発生した場合に、応答を決定するための学習モデルを適切なものに切り替えることができる。したがって、本発明は、応答誤りが発生しないように適切に対処することが可能となる。
【００１１】
また、好ましくは、前記学習モデル選択部は、前記誤りであると判定されたときの前記応答に対応する特徴を入力した場合に前記誤りと判定された応答を選択しない確率が高い学習モデルを選択する。
本発明は、このように構成されていることによって、応答の精度がより良くなる学習モデルを選択することが可能となる。
【００１２】
また、好ましくは、前記学習モデル選択部は、予め定められた第１の期間の間に予め定められた複数回数以上、前記応答が誤りであると判定されたときに、前記誤りであると判定されたときの前記応答に対応する特徴を入力した場合に前記誤りと判定された応答を選択しない確率が高い学習モデルを選択する。
本発明は、このように構成されていることによって、応答誤りを誘発したユーザ発話の特徴ベクトルを複数用いて、新たな学習モデルを選択するように構成されている。このように、複数の特徴ベクトルを用いて学習モデルを評価することで、選択される学習モデルの精度をより向上させることが可能となる。
【００１３】
また、好ましくは、前記応答誤り判定部は、前記ユーザ発話の途中で前記応答実行部によって発話応答が実行された場合、又は、前記応答実行部によって発話応答が実行されている途中で前記ユーザ発話がなされた場合に、前記応答が発話衝突の誤りであると判定し、前記学習モデル選択部は、前記発話衝突の誤りであると判定されたときの前記応答に対応する特徴を入力した場合に前記発話応答を出力しない確率が高い学習モデルを選択する。
本発明は、このように構成されていることによって、発話衝突の応答誤りが発生したときに、発話衝突のきっかけとなったユーザ発話の特徴に対して発話応答を出力しないような学習モデルを選択し直すことができる。したがって、本発明は、発話衝突の発生を抑制することができる。
【００１４】
また、好ましくは、前記応答誤り判定部は、前記ユーザ発話が終了してから前記応答実行部によって発話応答が実行されるまでの期間が予め定められた第２の期間以上である場合に、前記応答が長期沈黙の誤りであると判定し、前記学習モデル選択部は、前記長期沈黙の誤りであると判定されたときの前記応答に対応する特徴を入力した場合に前記発話応答を出力する確率が高い学習モデルを選択する。
本発明は、このように構成されていることによって、長期沈黙の応答誤りが発生したときに、長期沈黙のきっかけとなったユーザ発話の特徴に対して発話応答を出力するような学習モデルを選択し直すことができる。したがって、本発明は、長期沈黙の発生を抑制することができる。
【００１５】
また、好ましくは、複数の学習モデルを生成する学習モデル生成部をさらに有し、前記学習モデル生成部は、前記学習モデルの生成に用いるサンプルデータ群を複数の分類法で分類し、前記複数の分類法それぞれについて、分類されて得られた複数のグループごとに機械学習を行って得られる学習モデルの精度を算出することで、前記複数の分類法それぞれの精度を算出し、前記精度が最高となる分類法で分類された前記複数のグループそれぞれを用いて、複数の学習モデルを生成する。
本発明は、このように構成されていることによって、予め精度のよい学習モデルを複数生成しておくことが可能となる。したがって、学習モデルを選択し直したときに、より応答精度のよい対話を行うことが可能となる。
【００１６】
また、好ましくは、前記学習モデルを生成するためのサンプルデータを取得するデータ取得部をさらに有し、前記データ取得部が前記サンプルデータを取得する際に、前記発話取得部は、サンプルデータを取得するための前記ユーザ発話を取得し、前記特徴抽出部は、前記取得されたユーザ発話の特徴を抽出し、前記応答決定部は、予め機械学習によって生成された判別モデルを用いて、前記抽出された特徴に応じた応答を決定し、前記応答実行部は、前記決定された応答を実行するための制御を行い、前記応答誤り判定部は、前記サンプルデータを取得するためのユーザ発話に対して実行された応答が誤りであるか否かを判定し、前記データ取得部は、前記サンプルデータを取得するためのユーザの発話に対して実行された応答が誤りである場合に、当該ユーザ発話に対応する特徴に不正解ラベルを付与することで、前記サンプルデータを取得する。
本発明は、このように構成されていることによって、効率的に学習モデルを生成することが可能となる。
【発明の効果】
【００１７】
本発明によれば、応答誤りが発生しないように適切に対処することが可能な音声対話システム、音声対話方法及びプログラムを提供できる。
【図面の簡単な説明】
【００１８】
【図１】実施の形態１にかかる音声対話システムのハードウェア構成を示す図である。
【図２】実施の形態１にかかる音声対話システムの構成を示すブロック図である。
【図３】実施の形態１にかかる特徴抽出部によって生成される特徴ベクトルを例示する図である。
【図４】実施の形態１にかかる学習モデルの生成方法を説明するための図である。
【図５】実施の形態１にかかる学習モデルの生成方法を説明するための図である。
【図６】実施の形態１にかかる学習モデルの生成方法を説明するための図である。
【図７】実施の形態１にかかる音声対話システムによってなされる音声対話方法を示すフローチャートである。
【図８】実施の形態１にかかる音声対話システムによってなされる音声対話方法を示すフローチャートである。
【図９】発話衝突を例示する図である。
【図１０】発話衝突を例示する図である。
【図１１】発話衝突を例示する図である。
【図１２】発話衝突が発生したときの学習モデル選択部の処理を示すフローチャートである。
【図１３】長期沈黙を例示する図である。
【図１４】長期沈黙が発生したときの学習モデル選択部の処理を示すフローチャートである。
【図１５】実施の形態２にかかる音声対話システムの構成を示すブロック図である。
【図１６】実施の形態２にかかる学習モデル生成部の処理を示すフローチャートである。
【図１７】サンプルデータ群を例示する図である。
【図１８】サンプルデータが分類された例を示す図である。
【図１９】実施の形態３にかかる音声対話システムの構成を示すブロック図である。
【図２０】実施の形態３にかかる音声対話システムによって行われる、サンプルデータの取得方法を示すフローチャートである。
【図２１】実施の形態３にかかる音声対話システムによって行われる、サンプルデータの取得方法を説明するための図である。
【図２２】実施の形態３にかかる、学習モデルの生成で使用されるサンプルデータを例示する図である。
【図２３】実施の形態３にかかる、学習モデルの生成で使用されるサンプルデータを例示する図である。
【発明を実施するための形態】
【００１９】
（実施の形態１）
以下、図面を参照して本発明の実施の形態について説明する。なお、各図面において、同一の要素には同一の符号が付されており、必要に応じて重複説明は省略されている。
【００２０】
図１は、実施の形態１にかかる音声対話システム１のハードウェア構成を示す図である。音声対話システム１は、ユーザと音声を用いて対話を行う。具体的には、音声対話システム１は、ユーザからの発話（ユーザ発話）に応じて、ユーザに対して音声等の応答を実行することで、ユーザと対話を行う。音声対話システム１は、例えば、生活支援ロボット及び小型ロボット等のロボット、クラウドシステム及びスマートフォン等に搭載可能である。以下の説明では、音声対話システム１がロボットに搭載された例を示している。
【００２１】
音声対話システム１は、周囲の音声を収集するマイク２と、音声を発するスピーカ４と、ロボットの首等を動作させるマニピュレータ８と、制御装置１０とを有する。なお、音声対話システム１は、カメラ等の撮像装置を有してもよい。制御装置１０は、例えばコンピュータとしての機能を有する。制御装置１０は、マイク２、スピーカ４及びマニピュレータ８と、有線又は無線で接続されている。
【００２２】
制御装置１０は、主要なハードウェア構成として、ＣＰＵ（Central Processing Unit）１２と、ＲＯＭ（Read Only Memory）１４と、ＲＡＭ（Random Access Memory）１６と、インタフェース部（ＩＦ；Interface）１８とを有する。ＣＰＵ１２、ＲＯＭ１４、ＲＡＭ１６及びインタフェース部１８は、データバスなどを介して相互に接続されている。
【００２３】
ＣＰＵ１２は、制御処理及び演算処理等を行う演算装置としての機能を有する。ＲＯＭ１４は、ＣＰＵ１２によって実行される制御プログラム及び演算プログラム等を記憶するための機能を有する。ＲＡＭ１６は、処理データ等を一時的に記憶するための機能を有する。インタフェース部１８は、有線又は無線を介して外部と信号の入出力を行う。また、インタフェース部１８は、ユーザによるデータの入力の操作を受け付け、ユーザに対して情報を表示する。
【００２４】
制御装置１０は、マイク２によって集音されたユーザ発話を解析して、そのユーザ発話に応じて、ユーザに対する応答を決定して実行する。ここで、本実施の形態では、「応答」は、「沈黙」、「頷き」及び「発話」を含む。「沈黙」は、音声対話システム１が何もしないという動作である。「頷き」は、ロボットの首部を縦に振るという動作である。また、「発話」は、音声対話システム１が音声を出力するという動作である。決定された応答が「頷き」である場合、制御装置１０は、マニピュレータ８を制御して、ロボットの首部を動作させる。また、決定された応答が「発話」である場合、制御装置１０は、スピーカ４を介して、生成された応答に対応する音声（システム発話）を出力する。
【００２５】
図２は、実施の形態１にかかる音声対話システム１の構成を示すブロック図である。実施の形態１にかかる音声対話システム１は、発話取得部１０２と、特徴抽出部１０４と、特徴格納部１０６と、選択モデル格納部１０８と、応答データベース１１０（応答ＤＢ；Database）と、応答決定部１２０と、応答実行部１３０と、応答履歴格納部１３２とを有する。さらに、実施の形態１にかかる音声対話システム１は、応答誤り判定部１４０と、学習モデル選択部１５０と、学習モデルデータベース１６０（学習モデルＤＢ）とを有する。
【００２６】
図２に示す各構成要素は、マイク２、スピーカ４、マニピュレータ８及び制御装置１０の少なくとも１つによって実現可能である。また、各構成要素の少なくとも１つは、例えば、ＣＰＵ１２がＲＯＭ１４に記憶されたプログラムを実行することによって実現可能である。また、必要なプログラムを任意の不揮発性記録媒体に記録しておき、必要に応じてインストールするようにしてもよい。なお、各構成要素は、上記のようにソフトウェアによって実現されることに限定されず、何らかの回路素子等のハードウェアによって実現されてもよい。さらに、図２に示す構成要素の全てが１つの装置に設けられている必要はなく、図２に示す構成要素の１つ以上は、他の構成要素とは物理的に別個の装置に設けられていてもよい。例えば、学習モデルデータベース１６０がサーバに設けられ、その他の構成要素が、サーバと通信可能な音声対話ロボット等に設けられるようにしてもよい。これらのことは、後述する他の実施の形態においても同様である。
【００２７】
発話取得部１０２は、マイク２を含み得る。発話取得部１０２は、ユーザ発話（及びシステム発話）を取得する。具体的には、発話取得部１０２は、ユーザの発話（及び音声対話システム１の発話）を集音してデジタル信号に変換する。そして、発話取得部１０２は、ユーザ発話の音声データ（ユーザ音声データ）を、特徴抽出部１０４に対して出力する。また、発話取得部１０２は、ユーザ音声データと、システム発話の音声データ（システム音声データ）とを、応答誤り判定部１４０に対して出力する。
【００２８】
特徴抽出部１０４は、ユーザ発話の特徴を抽出する。具体的には、特徴抽出部１０４は、ユーザ発話について、発話の具体的な意味内容を示す言語情報とは異なる非言語情報の解析を行う。また、特徴抽出部１０４は、非言語情報の解析結果である非言語情報解析結果として、後述する特徴ベクトルを生成する。そして、特徴抽出部１０４は、非言語情報解析結果（特徴ベクトル）を、応答決定部１２０に対して出力する。また、特徴抽出部１０４は、抽出された特徴ベクトルを、特徴格納部１０６に格納する。特徴格納部１０６には、発話取得部１０２がユーザ発話を取得するごとに、対応する特徴ベクトルが格納され得る。
【００２９】
ここで、非言語情報とは、処理対象のユーザ発話の言語情報（文字列）とは異なる情報であり、ユーザ発話の韻律情報、及び、応答履歴情報の少なくとも一方を含む。韻律情報とは、ユーザ発話の音声波形の特徴を示す情報であり、例えば、基本周波数、音圧、周波数等の変化量、変動帯域、振幅の最大値及び平均値等である。また、応答履歴情報とは、応答決定部１２０によって決定（生成）され、応答実行部１３０によって実行された応答に関する過去の履歴を示す情報である。応答履歴格納部１３２は、応答実行部１３０によって応答が実行されると、この応答履歴情報を格納（更新）する。
【００３０】
具体的には、特徴抽出部１０４は、発話取得部１０２によって取得されたユーザ音声データについて音声分析等を行って、音声波形から韻律情報を解析する。そして、特徴抽出部１０４は、韻律情報を示す特徴量を示す値を算出する。なお、特徴抽出部１０４は、ユーザ音声データについて、例えば３２ｍｓｅｃごとに区切られたフレームごとに、基本周波数等を算出してもよい。また、特徴抽出部１０４は、応答履歴格納部１３２から応答履歴情報を抽出して、応答履歴の特徴を示す特徴量を算出する。
【００３１】
なお、ユーザ発話の言語情報を用いた構文解析は、パターン認識等を用いるため、多大な時間を要することが多い。一方、非言語情報の解析（韻律情報の解析及び応答履歴情報の解析）については、解析に用いられるデータ量が構文解析と比較して少なく、演算手法が、構文解析と比較して単純である。したがって、非言語情報の解析に要する時間は、構文解析と比較してかなり短くなり得る。
【００３２】
選択モデル格納部１０８は、後述する学習モデル選択部１５０によって選択された学習モデルを格納する。ここで、本実施の形態においては、学習モデル選択部１５０は、学習モデルデータベース１６０に格納された複数の学習モデルから、後述する方法によって、適切な学習モデルを選択する。なお、音声対話の開始前など、学習モデル選択部１５０によって学習モデルの選択処理がなされていない場合は、選択モデル格納部１０８は、任意の１つの学習モデルを格納してもよい。
【００３３】
応答データベース１１０は、音声対話システム１が応答を行う際に必要なデータを格納する。例えば、応答データベース１１０は、応答が「発話」である場合のシステム発話を示す複数のシステム音声データを、予め記憶している。
【００３４】
応答決定部１２０は、非言語情報解析結果（特徴ベクトル）に応じて、どの応答を実行するかを決定する。ここで、本実施の形態においては、応答決定部１２０は、予め、教師あり学習等の機械学習によって生成された複数の学習モデルのうちのいずれかを用いて、抽出された特徴（特徴ベクトル）に応じた応答を決定する。詳しくは後述する。
【００３５】
本実施の形態においては、応答決定部１２０は、「沈黙」、「頷き」及び「発話」のうちの１つを、応答として決定する。応答決定部１２０は、決定された応答を示すデータ（応答データ）を、応答実行部１３０に対して出力する。なお。応答決定部１２０は、応答として「発話」を行うと決定した場合、応答データベース１１０に記憶された複数のシステム発話から、順番に、又はランダムに、システム発話（システム音声データ）を選択してもよい。応答決定部１２０は、選択されたシステム音声データを、応答実行部１３０に対して出力する。
【００３６】
応答実行部１３０は、応答決定部１２０によって決定された応答を実行するための制御を行う。具体的には、応答決定部１２０から出力された応答データが「沈黙（沈黙応答）」を示す場合、応答実行部１３０は、スピーカ４及びマニピュレータ８を動作させないように制御する。また、応答決定部１２０から出力された応答データが「頷き（頷き応答）」を示す場合、応答実行部１３０は、マニピュレータ８を制御してロボットの首部を動作させる。また、応答決定部１２０から出力された応答データが「発話（発話応答）」を示す場合、応答実行部１３０は、スピーカ４を制御して、応答決定部１２０によって選択されたシステム音声データを示す音声を出力させる。
【００３７】
応答履歴格納部１３２は、応答実行部１３０によって実行された応答を識別するデータを、応答履歴情報として格納する。さらに、応答履歴格納部１３２は、応答履歴情報として対話に関する時間を含む場合に、その時間を計測し、計測された時間を応答履歴情報として格納してもよい。
【００３８】
図３は、実施の形態１にかかる特徴抽出部１０４によって生成される特徴ベクトルを例示する図である。なお、図３に例示する特徴ベクトルは、一例にすぎず、他の様々な特徴ベクトルが可能である。ｉ番目のユーザ発話についての特徴ベクトルをｖｉとすると、特徴ベクトルのｎ個の成分は、ｖｉ＝（ｖｉ１，ｖｉ２，・・・，ｖｉｍ−１），ｖｉｍ，ｖｉ（ｍ＋１），・・・，ｖｉｎ）と表される。ここで、ｉ、ｎ及びｍは整数（但しｎ＞ｍ）である。また、ｖｉ１〜ｖｉ（ｍ−１）が、ｉ番目のユーザ発話情報に関する韻律情報の解析結果に対応する。また、ｖｉｍ〜ｖｉｎが、応答履歴情報の解析結果に対応する。なお、ｖｉｍ〜ｖｉｎについては、応答履歴格納部１３２に格納された情報そのものであってもよい。つまり、特徴抽出部１０４は、応答履歴情報については、応答履歴格納部１３２から応答履歴を抽出するのみでもよく、特別な解析を行わなくてもよい。
【００３９】
図３に示す例では、例えば、ｖｉ１は、ｉ番目のユーザ発話の句末のＴ１ｍｓｅｃ（ユーザ発話の終了時点からＴ１ｍｓｅｃ（Ｔミリ秒）遡った時間から終了時点までの期間）における基本周波数ｆ０（ｆ０Ｔ１）についてのパラメータを示す。また、ｖｉ７は、ｉ番目のユーザ発話の長さ（ユーザ発話長）Ｌ１［ｓｅｃ］を示す。なお、基本周波数ｆ０は、フレームごとに、ＳＰＴＫ（Speech Signal Processing Toolkit）のＳＷＩＰＥ（Saw-tooth Waveform Inspired Pitch Estimation）のロジックを用いて算出され得る。
【００４０】
また、ｖｉｍは、直前の応答タイプを示す。直前の応答タイプは、直前（ｉ番目のユーザ発話の直前）に、応答実行部１３０によって実行された応答のタイプ（「沈黙」、「頷き」、及び「発話」のいずれか）である。ここで、ｖｉｍのような、数値ではない成分の成分値（特徴量）については、各タイプに数値が割り当てられている。例えば、ｖｉｍにおいて、成分値「１」は「沈黙」を示し、成分値「２」は「頷き」を示し、成分値「３」は「発話」を示す。
【００４１】
応答誤り判定部１４０（図２）は、ユーザ発話に対する応答実行部１３０によって実行された応答のタイミング、又は、応答実行部１３０によって実行された応答に対するユーザ発話のタイミングに応じて、実行された応答が誤りであるか否かを判定する。詳しくは後述する。ここで、実施の形態１においては、「応答誤り」が発生した場合とは、「発話衝突」又は「長期沈黙」が発生した場合であるとする。「発話衝突」とは、ユーザ発話とシステム発話とが衝突することである。「発話衝突」の一例は、ユーザ発話の途中（ユーザ発話が終了する前）に応答実行部１３０がシステム発話（発話応答）を実行した場合である。「発話衝突」の他の例は、応答実行部１３０によって発話応答が実行されている途中でユーザの発話がなされた場合である。また、「長期沈黙」とは、ユーザ発話が終了してから応答実行部１３０によって発話応答が実行されるまでの期間が予め定められた期間（Ｔｓ秒；第２の期間）以上であることである。このように、応答誤り判定部１４０は、応答実行部１３０によって実行された応答が誤りであったことを検出することができる。したがって、応答誤り判定部１４０は、現在の学習モデルが不適切であることを検出することができる。
【００４２】
学習モデル選択部１５０は、応答誤り判定部１４０による判定結果に応じて、学習モデルデータベース１６０に記憶された複数の学習モデルから学習モデルを選択する。詳しくは後述する。学習モデルデータベース１６０は、予め機械学習によって生成された複数の学習モデルを記憶する。複数の学習モデルの生成方法の具体例については後述する。
【００４３】
応答誤りが発生する要因は、学習モデルが適切でないことが多い。例えば、あるユーザにとって適切な学習モデルが、別のユーザにとっては適切でないことがある。また、同じユーザであっても、そのユーザの感情等の変化によって、適切であった学習モデルが適切でなくなることがある。ここで、学習モデルが適切でないとは、ユーザ発話に対する応答の精度が悪いことである。学習モデルの応答の精度が悪いと、ロボットは、あるユーザ発話に対して「沈黙応答」を実行すべきときに「発話応答」を実行してしまい、又は、あるユーザ発話に対して「発話応答」を実行すべきときに「沈黙応答」を実行してしまう。
【００４４】
これに対し、本実施の形態においては、応答誤りが発生した場合に、応答を決定するための学習モデルを適切なものに切り替えることができる。したがって、本実施の形態にかかる音声対話システム１は、応答誤りが発生しないように適切に対処することが可能となる。つまり、本実施の形態にかかる音声対話システム１は、応答の精度を良好にすることが可能となる。
【００４５】
次に、学習モデルの生成方法の概略を説明する。
図４〜図６は、実施の形態１にかかる学習モデルの生成方法を説明するための図である。まず、学習モデルを生成するためのサンプルデータを取得する。図４で示すように、ユーザＡの発話に対して、ロボット（音声対話システム１）が応答するといった、ユーザＡとロボットとの対話によって、特徴ベクトルと正解ラベルとが対応付けられたサンプルデータを収集する。このとき、オペレータは、ユーザＡの発話に対して適切な応答をロボットが実行するように、ロボット（音声対話システム１）を操作する。
【００４６】
図４に示す例では、正解ラベル「Ａ」が、「沈黙応答」に対応する。正解ラベル「Ｂ」が、「頷き応答」に対応する。正解ラベル「Ｃ」が、「発話応答」に対応する。オペレータは、ユーザＡの発話の途中では、沈黙応答が実行されるように、ロボットを操作する。このとき、オペレータは何もしなくてもよい。また、オペレータは、ユーザＡの発話の読点レベルの切れ目で頷き応答が実行されるように、ロボットを操作する。このとき、ロボットは、オペレータの操作によって頷く動作を行う。また、オペレータは、ユーザＡの発話の句点レベルの切れ目で発話応答が実行されるように、ロボットを操作する。このとき、ロボットは、オペレータの操作によって発話を行う。
【００４７】
図４の例では、ユーザＡの発話「結局」と「１人で聴いたよ。」との間には切れ目がないので、オペレータは、ユーザＡの発話の途中であると判断し、沈黙応答が実行されるように、ロボットを操作する。また、ユーザＡの発話「１人で聴いたよ。」が終了すると、句点レベルの切れ目があったと判断し、発話応答が実行されるようにロボットを操作する。このとき、ロボットは、発話「まじですか」を出力する。
【００４８】
図５は、図４の例によって取得された特徴ベクトルと正解ラベルとの組であるサンプルデータを例示する図である。ユーザ発話「結局」のユーザ発話長は０．５秒であったので、特徴ベクトルの成分（図３のｖｉ７）に「０．５」が入力される。また、ユーザ発話「結局」に対する応答は「沈黙応答」であったので、ユーザ発話「結局」の特徴ベクトルには、正解ラベル「Ａ」が対応付けられる。
【００４９】
また、ユーザ発話「１人で聴いたよ。」のユーザ発話長は１．５秒であったので、特徴ベクトルの成分（図３のｖｉ７）に「１．５」が入力される。また、ユーザ発話「１人で聴いたよ。」に対する応答は「発話応答」であったので、ユーザ発話「１人で聴いたよ。」の特徴ベクトルには、正解ラベル「Ｃ」が対応付けられる。
【００５０】
次に、上記のようにして収集されたサンプルデータ群を、Ｍ個のグループに分類する。分類方法については例えばｋ−ｆｏｌｄ  Ｃｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎ（クロスバリデーション；交差検証）によって行われ得る。詳しくは後述する。このとき、サンプルデータ群は、応答が正解となる精度が良くなるように、分類される。言い換えると、サンプルデータ群は、そのサンプルデータ群を分類して得られたグループを用いて得られる学習モデルによる応答と正解ラベルとの一致度が高くなるように、分類される。なお、各分類されたグループには、ユーザ発話長の合計が１５分以上となる程度の数のサンプルデータが含まれることが望ましい。これにより、１つの学習モデルは、合計１５分以上となるサンプルデータによって生成されることとなる。
【００５１】
図６は、分類されたサンプルデータ群から学習モデルが生成される態様を例示する図である。グループ＃１のサンプルデータ群から、例えば教師あり学習等の機械学習によって、学習モデル＃１が生成される。同様にして、グループ＃Ｍのサンプルデータ群から、機械学習によって、学習モデル＃Ｍが生成される。学習モデル＃１〜＃Ｍの正解ラベル「Ａ」，「Ｂ」，「Ｃ」の境界が互いに異なっているので、学習モデル＃１〜＃Ｍそれぞれに同じ特徴ベクトルを入力した場合であっても、出力される応答は異なり得る。このように生成された複数の学習モデルが、学習モデルデータベース１６０に格納される。
【００５２】
図７及び図８は、実施の形態１にかかる音声対話システム１によってなされる音声対話方法を示すフローチャートである。まず、発話取得部１０２は、上述したようにユーザ発話を取得する（ステップＳ１０２）。特徴抽出部１０４は、上述したように、取得されたユーザ発話について非言語情報（韻律情報及び応答履歴情報）の解析を行って、ユーザ発話の特徴（特徴ベクトル）を抽出する（ステップＳ１０４）。
【００５３】
次に、応答決定部１２０は、現在の学習モデル（選択モデル格納部１０８に格納された学習モデル）を用いて、抽出された特徴ベクトルに応じた、ユーザ発話に対する応答を決定する（ステップＳ１１０）。応答実行部１３０は、上述したように、Ｓ１１０で決定された応答を実行する（ステップＳ１２０）。
【００５４】
図８は、Ｓ１１０の処理を示すフローチャートである。応答決定部１２０は、抽出された特徴ベクトルを、学習モデルに入力する（ステップＳ１１２）。応答決定部１２０は、学習モデルの出力を判定する（ステップＳ１１４）。
【００５５】
出力が「沈黙応答」である場合（Ｓ１１４の「沈黙」）、応答決定部１２０は、沈黙応答を実行すると決定する（ステップＳ１１６Ａ）。つまり、応答決定部１２０は、その特徴ベクトルに対応するユーザ発話に対して、何もしないと決定する。また、出力が「頷き応答」である場合（Ｓ１１４の「頷き」）、応答決定部１２０は、頷き応答を実行すると決定する（ステップＳ１１６Ｂ）。つまり、応答決定部１２０は、その特徴ベクトルに対応するユーザ発話に対して、ロボットの首部を縦に振るようにマニピュレータ８を動作させると決定する。また、出力が「発話応答」である場合（Ｓ１１４の「発話」）、応答決定部１２０は、発話応答を実行すると決定する（ステップＳ１１６Ｃ）。つまり、応答決定部１２０は、その特徴ベクトルに対応するユーザ発話に対して、システム発話を出力させるようにスピーカ４を動作させると決定する。
【００５６】
次に、応答誤り判定部１４０は、上述したように、応答が誤りであったか否かを判定する（ステップＳ１３０）。応答が誤りでなかったと判定された場合（Ｓ１３０のＮＯ）、処理はＳ１０２に戻る。一方、応答が誤りであったと判定された場合（Ｓ１３０のＹＥＳ）、応答誤り判定部１４０は、応答誤りが検出されたことを示す誤り検出トリガを、学習モデル選択部１５０に対して出力する（ステップＳ１３２）。ここで、誤り検出トリガは、誤りであった応答に対応する特徴ベクトル、及び、どの応答誤り（「発話衝突」又は「長期沈黙」）が発生したかを示すデータを含み得る。「誤りであった応答に対応する特徴ベクトル」とは、誤りと判定された応答が学習モデルから出力されたときに学習モデルに入力された特徴ベクトルである。
【００５７】
学習モデル選択部１５０は、Ｔ秒間にＮ回以上の誤りが検出されたか否かを判定する（ステップＳ１３４）。つまり、学習モデル選択部１５０は、予め定められた期間（第１の期間）の間に予め定められた複数回数以上、応答が誤りであると判定されたか否かを判定する。具体的には、学習モデル選択部１５０は、同じ種類の応答誤りが発生したことを示す誤り検出トリガが、Ｔ秒間にＮ回以上出力されたか否かを判定する。Ｔ秒間にＮ回以上の誤りが検出されていない場合（Ｓ１３４のＮＯ）、処理はＳ１０２に戻る。一方、Ｔ秒間にＮ回以上の誤りが検出された場合（Ｓ１３４のＹＥＳ）、学習モデル選択部１５０は、学習モデルデータベース１６０に格納された複数の学習モデルから、学習モデルを選択する（ステップＳ１４０）。
【００５８】
このとき、学習モデル選択部１５０は、応答誤りと判定されたときの応答に対応する特徴ベクトルを入力した場合に、その応答誤りと判定された応答を選択しない確率が高い学習モデルを選択する。例えば、学習モデル選択部１５０は、「発話衝突」と判定されたときの応答に対応する特徴ベクトルを入力した場合に、発話応答を出力しない確率が高い学習モデルを選択する。また、学習モデル選択部１５０は、「長期沈黙」と判定されたときの応答に対応する特徴ベクトルを入力した場合に、沈黙応答又は頷き応答を出力しない（つまり発話応答を出力する）確率が高い学習モデルを選択する。このように、実施の形態１にかかる学習モデル選択部１５０は、応答誤りと判定された応答に対応する特徴ベクトルを用いて新たな学習モデルを選択するように構成されているので、応答の精度がより良くなる学習モデルを選択することが可能となる。
【００５９】
また、学習モデル選択部１５０は、Ｔ秒間にＮ回以上発生した応答誤りに対応する特徴ベクトル（Ｎ個以上の特徴ベクトル）を入力した場合に、発話応答を選択しない確率が高い学習モデルを選択する。ここで、Ｎが複数である場合、学習モデル選択部１５０は、応答誤りを誘発したユーザ発話の特徴ベクトルを複数用いて、新たな学習モデルを選択するように構成されている。このように、複数の特徴ベクトルを用いて学習モデルを評価することで、選択される学習モデルの精度をより向上させることが可能となる。
【００６０】
以下、応答誤りが「発話衝突」である場合、及び、「長期沈黙」である場合について、さらに詳述する。つまり、「発話衝突」がＴ秒間にＮ回以上発生した場合、及び、「長期沈黙」がＴ秒間にＮ回以上発生した場合について説明する。
【００６１】
図９〜図１１は、発話衝突を例示する図である。図９に示す例では、ユーザ発話「１人で聴いたよ。」が、対話開始から２．４秒後に開始し、対話開始から３．９秒後に終了する。また、システム発話「まじですか」が、対話開始から３．１秒後に開始し、対話開始から４．３秒後に終了する。この場合、応答誤り判定部１４０は、ユーザ発話「１人で聴いたよ。」が終了する前にシステム発話「まじですか」が開始しているので、「発話衝突」を検出する。
【００６２】
また、図１０に示す例では、ユーザ発話「今週末はね、」の後にユーザ発話「新幹線に乗って東京に行くよ。」が続き、システム発話「いいね」が、ユーザ発話「今週末はね、」に対する応答として実行されている。この例では、応答誤り判定部１４０は、システム発話「いいね」が終了する前にユーザ発話「新幹線に乗って東京に行くよ。」が開始しているので、「発話衝突」を検出する。なお、この発話衝突は、ユーザ発話「今週末はね、」の後にさらに句点レベルの切れ目がなくユーザ発話が続くと音声対話システム１が判断できなかったことに起因する。
【００６３】
また、図１１に示す例では、ユーザ発話「今週末は新幹線に乗って東京に行くよ。」の最中にシステム発話「いいね」が実行されている。この例では、応答誤り判定部１４０は、ユーザ発話「今週末は新幹線に乗って東京に行くよ。」が終了する前にシステム発話「いいね」が開始しているので、「発話衝突」を検出する。
【００６４】
図１２は、発話衝突が発生したときの学習モデル選択部１５０の処理（Ｓ１４０）を示すフローチャートである。まず、学習モデル選択部１５０は、応答誤りが発生したときの応答に対応する特徴ベクトル（エラー特徴ベクトル）を、特徴格納部１０６から抽出する（ステップＳ１４２Ａ）。この場合、エラー特徴ベクトルは、少なくともＮ個抽出され得る。例えば、図９に示す例では、特徴抽出部１０４がユーザ発話の一部「１人で」の特徴ベクトルを抽出したときに応答決定部１２０が発話応答を実行すると決定してしまったので、ユーザ発話「１人で」の特徴ベクトルが抽出される。また、図１０に示す例では、ユーザ発話「今週末はね、」の特徴ベクトルが抽出される。また、図１１に示す例では、特徴抽出部１０４がユーザ発話の一部「今週末は」の特徴ベクトルを抽出したときに応答決定部１２０が発話応答を実行すると決定してしまったので、ユーザ発話「今週末は」の特徴ベクトルが抽出される。
【００６５】
次に、学習モデル選択部１５０は、Ｓ１４２Ａの処理で抽出されたエラー特徴ベクトルを、学習モデルデータベース１６０に格納された学習モデル＃１〜＃Ｍのそれぞれに入力する（ステップＳ１４４Ａ）。そして、学習モデル選択部１５０は、「発話応答」を出力しない確率の高い学習モデルを選択する（ステップＳ１４６Ａ）。つまり、学習モデル選択部１５０は、「沈黙応答」又は「頷き応答」を出力する確率の高い学習モデルを選択する。
【００６６】
例えば、Ｎ＝３、Ｍ＝３とする。そして、学習モデル＃１が使用されていたときに発話衝突が発生したとする。この場合、３個のエラー特徴ベクトルを学習モデル＃１に入力したときに学習モデル＃１が「発話応答」を出力した回数は、３回となる。この場合、「発話応答」を出力しない確率は、０／３である。また、３個のエラー特徴ベクトルを学習モデル＃２に入力したときに学習モデル＃２が「発話応答」を出力した回数が、２回であるとする。この場合、「発話応答」を出力しない確率は、１／３である。また、３個のエラー特徴ベクトルを学習モデル＃３に入力したときに学習モデル＃３が「発話応答」を出力した回数が、１回であるとする。この場合、「発話応答」を出力しない確率は、２／３である。この場合、学習モデル選択部１５０は、「発話応答」を出力する回数が最も少ない学習モデル、つまり、「発話応答」を出力しない確率が最も高い学習モデル＃３を選択する。
【００６７】
なお、学習モデル選択部１５０は、「発話応答」を出力する回数が０回である学習モデル、つまり、「発話応答」を出力しない確率が１００％である学習モデルを検出できたときに処理を打ち切って、その他の学習モデルについての処理を省略してもよい。また、学習モデル選択部１５０は、「発話応答」を出力する回数が予め定められた閾値以下である任意の学習モデル、つまり、「発話応答」を出力しない確率が予め定められた閾値以上である任意の学習モデルを選択してもよい。
【００６８】
このように、実施の形態１にかかる音声対話システム１は、発話衝突の応答誤りが発生したときに、発話衝突のきっかけとなったユーザ発話の特徴ベクトルに対して発話応答を出力しないような学習モデルを選択し直すことができる。したがって、実施の形態１にかかる音声対話システム１は、発話衝突の発生を抑制することができる。
【００６９】
図１３は、長期沈黙を例示する図である。この例では、ユーザ発話とシステム発話との間にＴｓ秒間（第２の期間）以上の沈黙があったとする。そして、Ｔｓ＝２．５（ｓｅｃ）とする。図１３に示す例では、ユーザ発話「１人で聴いたよ。」が、対話開始から２．４秒後に開始し、対話開始から３．９秒後に終了する。また、システム発話「まじですか」が、対話開始から６．５秒後に開始し、対話開始から７．３秒後に終了する。この場合、応答誤り判定部１４０は、ユーザ発話「１人で聴いたよ。」が終了してからシステム発話「まじですか」が開始するまでの期間が２．６秒であり、Ｔｓ秒間よりも長く沈黙が続いたので、「長期沈黙」を検出する。
【００７０】
図１４は、長期沈黙が発生したときの学習モデル選択部１５０の処理（Ｓ１４０）を示すフローチャートである。まず、学習モデル選択部１５０は、応答誤りが発生したときの応答に対応する特徴ベクトル（エラー特徴ベクトル）を、特徴格納部１０６から抽出する（ステップＳ１４２Ｂ）。この場合、エラー特徴ベクトルは、少なくともＮ個抽出され得る。例えば、図１３に示す例では、特徴抽出部１０４がユーザ発話の一部「１人で聴いたよ。」の特徴ベクトルを抽出したときに応答決定部１２０が沈黙応答を実行すると決定してしまったので、ユーザ発話「１人で聴いたよ。」の特徴ベクトルが抽出される。
【００７１】
次に、学習モデル選択部１５０は、Ｓ１４２Ｂの処理で抽出されたエラー特徴ベクトルを、学習モデルデータベース１６０に格納された学習モデル＃１〜＃Ｍのそれぞれに入力する（ステップＳ１４４Ｂ）。そして、学習モデル選択部１５０は、「発話応答」を出力する確率の高い学習モデルを選択する（ステップＳ１４６Ｂ）。
【００７２】
例えば、Ｎ＝３、Ｍ＝３とする。そして、学習モデル＃１が使用されていたときに長期沈黙が発生したとする。この場合、３個のエラー特徴ベクトルを学習モデル＃１に入力したときに学習モデル＃１が「発話応答」を出力した回数は、０回となる。この場合、「発話応答」を出力する確率は、０／３である。また、３個のエラー特徴ベクトルを学習モデル＃２に入力したときに学習モデル＃２が「発話応答」を出力した回数が、１回であるとする。この場合、「発話応答」を出力する確率は、１／３である。また、３個のエラー特徴ベクトルを学習モデル＃３に入力したときに学習モデル＃３が「発話応答」を出力した回数が、２回であるとする。この場合、「発話応答」を出力する確率は、２／３である。この場合、学習モデル選択部１５０は、「発話応答」を出力する回数が最も多い学習モデル、つまり、「発話応答」を出力する確率が最も高い学習モデル＃３を選択する。
【００７３】
なお、学習モデル選択部１５０は、「発話応答」を出力しない回数が０回である学習モデル、つまり、「発話応答」を出力する確率が１００％である学習モデルを検出できたときに処理を打ち切って、その他の学習モデルについての処理を省略してもよい。また、学習モデル選択部１５０は、「発話応答」を出力しない回数が予め定められた閾値以下である任意の学習モデル、つまり、「発話応答」を出力する確率が予め定められた閾値以上である任意の学習モデルを選択してもよい。
【００７４】
このように、実施の形態１にかかる音声対話システム１は、長期沈黙の応答誤りが発生したときに、長期沈黙のきっかけとなったユーザ発話の特徴ベクトルに対して発話応答を出力するような学習モデルを選択し直すことができる。したがって、実施の形態１にかかる音声対話システム１は、長期沈黙の発生を抑制することができる。
【００７５】
（実施の形態２）
次に、実施の形態２について説明する。実施の形態２においては、音声対話システム１が複数の学習モデルを生成する点で、実施の形態１と異なる。なお、実施の形態２にかかる音声対話システム１のハードウェア構成については、図１に示した実施の形態１にかかる音声対話システム１のハードウェア構成と実質的に同様であるので、説明を省略する。
【００７６】
図１５は、実施の形態２にかかる音声対話システム１の構成を示すブロック図である。実施の形態２にかかる音声対話システム１は、発話取得部１０２と、特徴抽出部１０４と、特徴格納部１０６と、選択モデル格納部１０８と、応答データベース１１０と、応答決定部１２０と、応答実行部１３０と、応答履歴格納部１３２とを有する。さらに、実施の形態２にかかる音声対話システム１は、応答誤り判定部１４０と、学習モデル選択部１５０と、学習モデルデータベース１６０と、学習モデル生成部２１０とを有する。学習モデル生成部２１０以外の構成要素については、実施の形態１にかかるものと実質的に同様の機能を有するので、説明を省略する。
【００７７】
なお、学習モデル生成部２１０は、その他の構成要素と物理的に一体となっている必要はない。つまり、その他の構成要素が設けられた装置（ロボット等）と、学習モデル生成部２１０が設けられた装置（コンピュータ等）とが、同一である必要はない。学習モデル生成部２１０の具体的な機能について、以下に説明する。なお、学習モデル生成部２１０の処理（後述する図１６の処理）は、図４〜図６に対応し、ユーザとの対話（図７の処理）の前段階で行われる。
【００７８】
図１６は、実施の形態２にかかる学習モデル生成部２１０の処理を示すフローチャートである。まず、学習モデル生成部２１０は、学習モデルを生成するために必要なサンプルデータを取得する（ステップＳ２００）。ここで、実施の形態２においては、図４で示したように、オペレータが正解ラベルを付与することで、図５に例示するような、特徴ベクトルと正解ラベルとが対応付けられたサンプルデータ群が生成されてもよい。
【００７９】
図１７は、サンプルデータ群を例示する図である。図１７に例示したサンプルデータ群は、ユーザＡ〜ユーザＺの２６人のサンプルデータを含むとする。各サンプルデータでは、ユーザＡ〜ユーザＺそれぞれのユーザ発話に対応する特徴ベクトルと正解ラベルとが対応付けられている。
【００８０】
次に、学習モデル生成部２１０は、Ｍｃ通りの方法で、サンプルデータを分類する（ステップＳ２０２）。ここで、分類方法は、ランダムであってもよいし、ユーザごとであってもよいし、サンプルデータを生成したときの話題ごとであってもよい。以下に示す例では、ユーザごとにランダムに分類するとする。つまり、あるユーザについての複数のサンプルデータが纏めて分類される（つまりあるユーザについての複数のサンプルデータは分離して分類されない）とする。
【００８１】
図１８は、サンプルデータが分類された例を示す図である。図１８に示した例では、１０通り（Ｍｃ＝１０）の分類法でサンプルデータが分類されている。したがって、分類法＃１〜分類法＃１０ごとに異なる方法で、図１７に例示したサンプルデータが分類されている。また、図１８に例示した方法では、各分類法で、サンプルデータが２〜５個のグループに分類されている。例えば、分類法＃１では、サンプルデータが２個のグループに分類されている。分類法＃１０では、３個のグループに分類されている。
【００８２】
次に、学習モデル生成部２１０は、分類法＃１〜＃Ｍｃそれぞれの精度を算出する（ステップＳ２０４）。具体的には、学習モデル生成部２１０は、分類法＃１〜＃Ｍｃそれぞれを用いて生成される学習モデルの精度を算出する。さらに具体的には、学習モデル生成部２１０は、各分類法について、各グループに対してｋ−ｆｏｌｄ  Ｃｒｏｓｓ  Ｖａｌｉｄａｔｉｏｎを適用してグループごとに学習モデルを生成して、それらの学習モデルの精度を算出する。そして、学習モデル生成部２１０は、グループに対する精度を平均したものを、その分類法の精度とする。
【００８３】
例えば、図１８に示した例について、学習モデル生成部２１０は、分類法＃１について、グループ＃１及びグループ＃２の精度を算出する。このとき、学習モデル生成部２１０は、グループ＃１のサンプルデータ群をＫ個のサブグループに分割する。そして、学習モデル生成部２１０は、そのうちの１個のサブグループのサンプルデータをテストデータとし、残りのＫ−１個のサブグループのサンプルデータ訓練データとして用いることで、機械学習により検証用学習モデルを生成する。学習モデル生成部２１０は、生成された検証用学習モデルをテストデータとしたサンプルデータで検証する。つまり、学習モデル生成部２１０は、検証用学習モデルにテストデータを入力して、正解ラベルと一致する応答が得られる確率（一致度）を算出する。学習モデル生成部２１０は、この処理を、テストデータとするサブグループを変えながら、Ｋ回行う。これにより、学習モデル生成部２１０は、グループ＃１の精度（正解ラベルとなる確率）を算出する。
【００８４】
学習モデル生成部２１０は、同様の処理をグループ＃２についても行う。そして、学習モデル生成部２１０は、グループ＃１の精度及びグループ＃２の精度を平均して、分類法＃１の精度を算出する。例えば、グループ＃１の精度が６８％であり、グループ＃２の精度が７０％であるとすると、分類法＃１の精度は、６９％となる。学習モデル生成部２１０は、他の分類法＃２〜＃１０についても同様の処理を行って、各分類法の精度を算出する。
【００８５】
次に、学習モデル生成部２１０は、精度が最高となる分類法＃ｊを選択する（ステップＳ２０６）。学習モデル生成部２１０は、選択した分類法＃ｊのグループそれぞれについて、学習モデルを生成する（ステップＳ２０８）。例えば、図１８に示した例において、分類法＃１０の精度が７５％で最高であったとすると、学習モデル生成部２１０は、分類法＃１０を選択する。そして、学習モデル生成部２１０は、分類法＃１０のグループ＃１〜＃３をそれぞれ用いて、学習モデルを生成する。つまり、グループ＃１のサンプルデータを用いて１つの学習モデルが生成され、グループ＃２のサンプルデータを用いて１つの学習モデルが生成され、グループ＃３のサンプルデータを用いて１つの学習モデルが生成される。したがって、この例では、３個の学習モデルが生成される。このようにして、複数の学習モデルが生成される。実施の形態２においては、このようにして学習モデルを生成することによって、予め精度のよい学習モデルを複数生成しておくことが可能となる。したがって、学習モデルを選択し直したときに、より応答精度のよい対話を行うことが可能となる。
【００８６】
（実施の形態３）
次に、実施の形態３について説明する。実施の形態３においては、音声対話システム１が自律的にサンプルデータを収集する点で、他の実施の形態と異なる。なお、実施の形態３にかかる音声対話システム１のハードウェア構成については、図１に示した実施の形態１にかかる音声対話システム１の構成と実質的に同様であるので、説明を省略する。実施の形態１及び実施の形態２においては、図４に示すように、オペレータの操作によって特徴ベクトルに正解ラベルが付与されていたが、実施の形態３においては、音声対話システム１が、ユーザ発話の特徴ベクトルに自律的に正解ラベルを付与する。ここで、実施の形態３においては、音声対話システム１が、図２に示した構成要素を用いて、自律的にサンプルデータを収集し得る。しかしながら、音声対話システム１とは異なるシステム（自律型ロボット）が、自律的にサンプルデータを収集してもよい。
【００８７】
図１９は、実施の形態３にかかる音声対話システム１の構成を示すブロック図である。実施の形態３にかかる音声対話システム１は、発話取得部１０２と、特徴抽出部１０４と、特徴格納部１０６と、選択モデル格納部１０８と、応答データベース１１０と、応答決定部１２０と、応答実行部１３０と、応答履歴格納部１３２とを有する。さらに、実施の形態３にかかる音声対話システム１は、応答誤り判定部１４０と、学習モデル選択部１５０と、学習モデルデータベース１６０と、データ取得部３１０とを有する。データ取得部３１０以外の構成要素については、実施の形態１にかかるものと実質的に同様の機能を有するので、説明を省略する。
【００８８】
図２０は、実施の形態３にかかる音声対話システム１によって行われる、サンプルデータの取得方法を示すフローチャートである。まず、発話取得部１０２は、図７のＳ１０２の処理と同様にして、ユーザ発話を取得する（ステップＳ３０２）。特徴抽出部１０４は、図７のＳ１０４の処理と同様にして、取得されたユーザ発話について特徴（特徴ベクトル）を抽出する（ステップＳ３０４）。
【００８９】
次に、図７のＳ１１０の処理と同様にして、応答決定部１２０は、ある判別モデルを用いて、抽出された特徴ベクトルに応じた応答を決定する（ステップＳ３１０）。なお、Ｓ３１０で用いる判別モデルは、予め機械学習等によって生成された学習モデルであってもよいが、学習モデルデータベース１６０に格納されたものではなくてもよい。応答実行部１３０は、図７のＳ１２０の処理と同様にして、Ｓ３１０で決定された応答を実行する（ステップＳ３２０）。
【００９０】
応答誤り判定部１４０は、図７のＳ１３０の処理と同様にして、応答が誤りであったか否かを判定する（ステップＳ３３０）。応答が誤りであったと判定された場合（Ｓ３３０のＹＥＳ）、データ取得部３１０は、特徴ベクトルに不正解ラベルを付与したサンプルデータを取得する（ステップＳ３３２）。一方、応答が誤りでなかったと判定された場合（Ｓ３３０のＮＯ）、データ取得部３１０は、特徴ベクトルに正解ラベルを付与したサンプルデータを取得する（ステップＳ３３４）。そして、ユーザ発話が終了していない場合には（ステップＳ３３６のＮＯ）、処理はＳ３０２に戻る。
【００９１】
図２１は、実施の形態３にかかる音声対話システム１によって行われる、サンプルデータの取得方法を説明するための図である。音声対話システム１は、何らかの判別モデルを用いて、ユーザ発話「結局」に応じて、発話応答であるシステム発話Ｒ１「まじですか」を出力する。そして、音声対話システム１の応答誤り判定部１４０は、このシステム発話Ｒ１が応答誤り（発話衝突）であると判定する（Ｓ３３０のＹＥＳ）。したがって、データ取得部３１０は、ユーザ発話「結局」の特徴ベクトルに不正解ラベルを付与したサンプルデータを取得する（Ｓ３３２）。また、音声対話システム１は、何らかの判別モデルを用いて、ユーザ発話「１人で聴いたよ。」に応じて、発話応答であるシステム発話Ｒ２「まじですか」を出力する。そして、音声対話システム１の応答誤り判定部１４０は、このシステム発話Ｒ１が応答誤りでないと判定する（Ｓ３３０のＮＯ）。したがって、データ取得部３１０は、ユーザ発話「１人で聴いたよ。」の特徴ベクトルに正解ラベルを付与したサンプルデータを取得する（Ｓ３３４）。
【００９２】
図２２及び図２３は、実施の形態３にかかる、学習モデルの生成（図６，図１６）で使用されるサンプルデータを例示する図である。図２２に示すサンプルデータ群では、不正解ラベルが付与された、ユーザ発話「結局」についてのサンプルデータが除外されている。また、図２３に示すサンプルデータ群では、ユーザ発話「結局」についてのサンプルデータには、不正解ラベル「ｎｏｔ  Ｃ」が付与されている。実施の形態３においては、図２２に示したサンプルデータ群又は図２３に示したサンプルデータ群を用いて、機械学習が実行されて学習モデルが生成される。
【００９３】
このように、実施の形態３にかかる音声対話システム１は、自律的にサンプルデータを取得することができる。したがって、オペレータの操作を必要とすることなく、サンプルデータを取得することが可能となる。さらに、学習モデルデータベース１６０に格納された学習モデルを用いて自律的にサンプルデータを取得することによって、その学習モデルに対してオンライン学習を行い、学習モデルを更新することが可能となる。したがって、実施の形態３にかかる音声対話システム１は、効率的に学習モデルを生成することが可能となる。
【００９４】
（変形例）
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述したフローチャートにおいて、複数の処理の順序は、適宜、変更可能である。また、上述したフローチャートにおいて、複数の処理のうちの１つは、省略されてもよい。
【００９５】
また、上述した実施の形態は、相互に適用され得る。例えば、実施の形態３は、実施の形態２に対しても適用可能である。つまり、音声対話システム１は、学習モデル生成部２１０及びデータ取得部３１０を有してもよく、データ取得部３１０によって取得されたサンプルデータを用いて、学習モデル生成部２１０が学習モデルを生成してもよい。
【００９６】
また、図７のＳ１３４の処理では、Ｎ回の応答誤りが同じ種類のものである必要はない。つまり、Ｓ１３４の処理では、「発話衝突」の回数及び「長期沈黙」の回数の合計がＮ回以上となったか否かが判定されてもよい。例えば、Ｎ＝３のとき、「発話衝突」が２回、「長期沈黙」が１回検出されたときに、Ｓ１４０の処理で学習モデルが選択されてもよい。この場合、学習モデル選択部１５０は、図１２の処理と図１４の処理とを組み合わせた処理を行う。具体的には、学習モデル選択部１５０は、「発話衝突」となった応答に対応する特徴ベクトルを入力したときに「発話応答」を出力せず、「長期沈黙」となった応答に対応する特徴ベクトルを入力したときに「発話応答」を出力する確率の高い学習モデルを選択する。
【００９７】
例えば、Ｎ＝３、Ｍ＝３であって、「発話衝突」が２回、「長期沈黙」が１回検出されたとする。そして、学習モデル＃１が使用されていたときに発話衝突が発生したとする。この例において、２個の「発話衝突」に関するエラー特徴ベクトルを学習モデル＃２に入力したときに学習モデル＃２が「発話応答」を出力しなかった回数が１回であるとする。そして、１個の「長期沈黙」に関するエラー特徴ベクトルを学習モデル＃２に入力したときに学習モデル＃２が「発話応答」を出力した回数が１回であるとする。この場合、学習モデル＃２についての、応答誤りとなった応答を出力しない確率は、２／３である。また、２個の「発話衝突」に関するエラー特徴ベクトルを学習モデル＃３に入力したときに学習モデル＃３が「発話応答」を出力しなかった回数が０回であるとする。そして、１個の「長期沈黙」に関するエラー特徴ベクトルを学習モデル＃３に入力したときに学習モデル＃３が「発話応答」を出力した回数が１回であるとする。この場合、学習モデル＃３についての、応答誤りとなった応答を出力しない確率は、１／３である。この場合、学習モデル選択部１５０は、応答誤りとなった応答を出力する回数が最も少ない学習モデル、つまり、応答誤りとなった応答を出力しない確率が最も高い学習モデル＃２を選択する。
【００９８】
また、上述した実施の形態においては、非言語情報のみからユーザ発話に対する応答を決定しているが、このような構成に限られない。ユーザ発話の言語情報を用いた構文解析を用いてユーザ発話の意味内容を認識して、その意味内容に応じたシステム発話を実行してもよい。しかしながら、上述したように、構文解析に要する時間は非言語情報の解析に要する時間よりも多大であるため、非言語情報の解析のみを用いることで、よりリアルタイムな対話を実現することができる。
【００９９】
また、上述した実施の形態においては、音声対話システム１がロボットに搭載された例を示しているが、このような構成に限られない。音声対話システム１は、スマートフォン又はタブレット端末等の情報端末にも搭載可能である。この場合、「頷き応答」を行うときは、マニピュレータ８を動作させる代わりに、情報端末の表示画面に、人物、動物、又はロボット等が頷くような動画を表示させてもよい。
【０１００】
また、上述の例において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体（non-transitory computer readable medium）を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体（tangible storage medium）を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体（例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ）、光磁気記録媒体（例えば光磁気ディスク）、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＣＤ−Ｒ／Ｗ、半導体メモリ（例えば、マスクＲＯＭ、ＰＲＯＭ（Programmable ROM）、ＥＰＲＯＭ（Erasable PROM）、フラッシュＲＯＭ、ＲＡＭ）を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体（transitory computer readable medium）によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【０１０１】
１・・・音声対話システム、２・・・マイク、４・・・スピーカ、１０・・・制御装置、１０２・・・発話取得部、１０４・・・特徴抽出部、１０６・・・特徴格納部、１０８・・・選択モデル格納部、１１０・・・応答データベース、１２０・・・応答決定部、１３０・・・応答実行部、１３２・・・応答履歴格納部、１４０・・・応答誤り判定部、１５０・・・学習モデル選択部、１６０・・・学習モデルデータベース、２１０・・・学習モデル生成部、３１０・・・データ取得部
【図１】
2019197182.tif 000003
【図２】
2019197182.tif 000004
【図３】
2019197182.tif 000005
【図４】
2019197182.tif 000006
【図５】
2019197182.tif 000007
【図６】
2019197182.tif 000008
【図７】
2019197182.tif 000009
【図８】
2019197182.tif 000010
【図９】
2019197182.tif 000011
【図１０】
2019197182.tif 000012
【図１１】
2019197182.tif 000013
【図１２】
2019197182.tif 000014
【図１３】
2019197182.tif 000015
【図１４】
2019197182.tif 000016
【図１５】
2019197182.tif 000017
【図１６】
2019197182.tif 000018
【図１７】
2019197182.tif 000019
【図１８】
2019197182.tif 000020
【図１９】
2019197182.tif 000021
【図２０】
2019197182.tif 000022
【図２１】
2019197182.tif 000023
【図２２】
2019197182.tif 000024
【図２３】
2019197182.tif 000025