(57)【要約】【課題】システム側の次の行動を決定することにより、ユーザと議論を行うことができるようにする。【解決手段】対話行為変換部５０が、ユーザ発話についての対話行為を推定し、ドメイン判定部５６が、ユーザ発話について、所定のドメインに属しているか否かを判定し、議論判定部５２が、ユーザ発話について、議論に関するものであるか否かを判定し、議論構造内判定部５４が、議論構造の各ノードのうち、ユーザ発話に対応するノードを判定する。対話管理部３２が、対話行為変換部５０による推定結果、ドメイン判定部５６による判定結果、議論判定部５２による判定結果、及び議論構造内判定部５４による判定結果に基づいて、システム側の次の行動を決定する。【選択図】図１
2018147189.tif 000002
【特許請求の範囲】
【請求項１】
ユーザ発話についての対話行為を推定する対話行為変換部と、
前記ユーザ発話について、所定のドメインに属しているか否かを判定するドメイン判定部と、
前記ユーザ発話について、議論に関するものであるか否かを判定する議論判定部と、
議論の中心となる論拠と、他の論拠を支持する、または支持しない論拠との各々を表すノードを含む議論構造の各ノードのうち、前記ユーザ発話に対応するノードを判定する議論構造内判定部と、
前記対話行為変換部による推定結果、前記ドメイン判定部による判定結果、前記議論判定部による判定結果、及び前記議論構造内判定部による判定結果に基づいて、システム側の次の行動を決定する対話管理部と、
を含む対話システム。
【請求項２】
前記対話管理部は、システム側の次の行動として、前記推定された前記対話行為と前記判定されたノードとに基づいて前記議論構造を更新する議論構造更新、前記所定のドメインに属していない旨を応答するドメイン外処理、議論ができない旨を応答する議論構造外処理、及び議論とは関係ない雑談に対する応答を行う雑談処理の何れかを決定する請求項１記載の対話システム。
【請求項３】
ユーザの状態を表すマルチモーダル情報を格納するマルチモーダル情報記憶部と、
前記ユーザの動作に基づいて、前記マルチモーダル情報を更新するユーザ動作検知部と、を更に含み、
前記対話管理部は、更に、前記マルチモーダル情報に応じて、決定したシステム側の次の行動を行う請求項１又は２記載の対話システム。
【請求項４】
対話行為変換部が、ユーザ発話についての対話行為を推定し、
ドメイン判定部が、前記ユーザ発話について、所定のドメインに属しているか否かを判定し、
議論判定部が、前記ユーザ発話について、議論に関するものであるか否かを判定し、
議論構造内判定部が、議論の中心となる論拠と、他の論拠を支持する、または支持しない論拠との各々を表すノードを含む議論構造の各ノードのうち、前記ユーザ発話に対応するノードを判定し、
対話管理部が、前記対話行為変換部による推定結果、前記ドメイン判定部による判定結果、前記議論判定部による判定結果、及び前記議論構造内判定部による判定結果に基づいて、システム側の次の行動を決定する
対話方法。
【請求項５】
前記対話管理部が決定することでは、システム側の次の行動として、前記推定された前記対話行為と前記判定されたノードとに基づいて前記議論構造を更新する議論構造更新、前記所定のドメインに属していない旨を応答するドメイン外処理、議論ができない旨を応答する議論構造外処理、及び議論とは関係ない雑談に対する応答を行う雑談処理の何れかを決定する請求項４記載の対話方法。
【請求項６】
ユーザ動作検知部が、ユーザの動作に基づいて、前記ユーザの状態を表すマルチモーダル情報を格納するマルチモーダル情報記憶部の前記マルチモーダル情報を更新すること、及び
前記対話管理部が、前記マルチモーダル情報に応じて、決定したシステム側の次の行動を行うこと
を更に含む請求項４又は５記載の対話方法。
【請求項７】
コンピュータを、請求項１〜請求項３の何れか１項記載の対話システムを構成する各部として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザの発話に対して応答を行う対話システム、方法、及びプログラムに関する。
【背景技術】
【０００２】
対話システムにおいて、人間はコンピュータと対話をし、種々の情報を得たり、要望を満たしたりする。また、所定のタスクを達成するだけではなく、日常会話を行う対話システムも存在し、これらによって、人間は精神的な安定を得たり、承認欲を満たしたり、信頼関係を築いたりする。対話システムの類型については非特許文献１や非特許文献２に詳述されている。
【０００３】
一方、タスク達成や日常会話ではなく、より深い議論をコンピュータによって実現するための研究も進められている。議論は人間の価値判断を変えたり、思考を整理したりする働きがあり、人間にとって重要な役割を果たす。
【０００４】
たとえば、議論のモデルを提案する研究がある。トゥールミンのモデル（非特許文献３）によれば、議論は事実（データ）、論拠、結論からなるとされる。たとえば、「山は空気がよい」という事実があり、「空気がよいことは一般によいことである」という論拠があると、そこから、「山に行くのがよい」という結論が導かれるというモデルである。この議論構造を図示すると図４のようになる。
【０００５】
ウォルトンが提案する議論のモデルでは、Premise（論拠）が支持（プラス）・不支持（マイナス）、もしくは、議論スキーム（支持・不支持のパターン）を持つ矢印で結ばれている（非特許文献４）。
【０００６】
矢印の先のPremise はConclusion と呼ぶこともある。また、議論の中心となるConclusion のことをMain Issue と呼ぶ。ウォルトンのモデルにおける議論構造を図示すると図５のようになる。楕円はPremise を表すノードである。Premise にはその内容を表す文字列が付与されている。「草花がきれい」は「山に行くのがよい」にプラスで接続されており、支持する内容である。「登山は疲れる」は「山に行くのがよい」にマイナスでつながれており、反論となっている。また、「登山は疲れる」は「足腰が鍛えられる」とマイナスでつながれており反論となっている。図中では、Practical Reasoning（PR）という議論スキームが用いられている。PR の前のプラスは支持を表している。PR は「一般的に考えて良いという根拠を支持・不支持に用いる」という議論のパターンを表す。非特許文献４には、29 の議論スキームが列挙されている。PR の他には、Expert Opinion（専門家がそう言っているという根拠を支持・不支持に用いる）などがある。
【０００７】
トゥールミンやウォルトンが提案するモデルに基づく議論構造を、テキストデータから自動的に抽出する試みは多い。そのような研究は以下の非特許文献５にまとめられている。
【先行技術文献】
【非特許文献】
【０００８】
【非特許文献１】河原達也，荒木雅弘，「音声対話システム」，オーム社，2006．
【非特許文献２】中野幹生，駒谷和範，船越孝太郎，中野有紀子，奥村学（監修）「対話システム」，コロナ社，2016．
【非特許文献３】”The Uses of Argument (updated edition)”，Stephen E. Toulmin，Cambridge University Press, 2003．
【非特許文献４】”Methods of Argumentation, Douglas Walton”, Cambridge University Press, 2013.
【非特許文献５】Lippi, M., Torroni, P., “Argumentation Mining: State of the Art and Emerging Trends”, ACM Transactions on Internet Technology, 16(2): 10, 2016.
【発明の概要】
【発明が解決しようとする課題】
【０００９】
人間にとって重要な議論であるが、モデルの研究やテキストデータからの議論構造の研究は進められているものの、自動的なシステムが自由に人間と議論を行うシステムは実現されていない。
【００１０】
本発明は、上記の事情に鑑みてなされたもので、ユーザと議論を行うことができる対話システム、方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の対話システムは、ユーザ発話についての対話行為を推定する対話行為変換部と、前記ユーザ発話について、所定のドメインに属しているか否かを判定するドメイン判定部と、前記ユーザ発話について、議論に関するものであるか否かを判定する議論判定部と、議論の中心となる論拠と、他の論拠を支持する、または支持しない論拠との各々を表すノードを含む議論構造の各ノードのうち、前記ユーザ発話に対応するノードを判定する議論構造内判定部と、前記対話行為変換部による推定結果、前記ドメイン判定部による判定結果、前記議論判定部による判定結果、及び前記議論構造内判定部による判定結果に基づいて、システム側の次の行動を決定する対話管理部と、を含んで構成されている。
【００１２】
本発明の対話方法は、対話行為変換部が、ユーザ発話についての対話行為を推定し、ドメイン判定部が、前記ユーザ発話について、所定のドメインに属しているか否かを判定し、議論判定部が、前記ユーザ発話について、議論に関するものであるか否かを判定し、議論構造内判定部が、議論の中心となる論拠と、他の論拠を支持する、または支持しない論拠との各々を表すノードを含む議論構造の各ノードのうち、前記ユーザ発話に対応するノードを判定し、対話管理部が、前記対話行為変換部による推定結果、前記ドメイン判定部による判定結果、前記議論判定部による判定結果、及び前記議論構造内判定部による判定結果に基づいて、システム側の次の行動を決定する。
【００１３】
本発明に係るプログラムは、コンピュータを、本発明の対話システムを構成する各部として機能させるためのプログラムである。
【発明の効果】
【００１４】
以上説明したように、本発明の対話システム、方法、及びプログラムによれば、対話行為変換部による推定結果、ドメイン判定部による判定結果、議論判定部による判定結果、及び議論構造内判定部による判定結果に基づいて、システム側の次の行動を決定することにより、ユーザと議論を行うことができる、という効果が得られる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施の形態に係る対話システムの構成の一例を示す図である。
【図２】次のアクションを決定する方法を説明するための図である。
【図３】本発明の実施の形態に係る対話処理ルーチンのフローチャートの一例である。
【図４】トゥールミンの理論における議論構造の一例を示す図である。
【図５】ウォルトンの理論における議論構造の一例を示す図である。
【発明を実施するための形態】
【００１６】
＜概要＞
まず、本発明の実施の形態の概要について説明する。
【００１７】
本発明の実施の形態では、あるドメインにおける所定の議論構造があるとき、議論を行うことを可能とする。具体的には、ユーザの入力発話について、その対話行為、ドメインが一致しているか、議論に関するものか、議論構造に対応するノードが存在するか、を推定する。また、議論構造とマルチモーダル情報を参照しながら、対話管理部が次発話を決定する。このように、人間と議論を行う自動的なシステムを実現することにより、人間の知的活動が促進される。
【００１８】
＜対話システムの構成＞
以下、図面を参照して本発明の実施の形態を詳細に説明する。図１は、本実施の形態に係る対話システムの構成の一例を示す図である。なお、本発明の実施の形態では、「遊びにいくなら海がよいか山がよいか」という限られた話題（ドメインと呼ぶ）について議論するものとする。ユーザは対話システムに対して発話を発し、当該発話は対話システムに入力される。また、対話システムは、発話をユーザに対して発するものとする。
【００１９】
本実施の形態に係る対話システム１００は、ＣＰＵと、ＲＡＭと、後述する対話処理ルーチンを実行するためのプログラム及び各種データを記憶したＲＯＭとを備えたコンピュータで構成されている。また、記憶手段としてＨＤＤを設けてもよい。
【００２０】
このコンピュータは、機能的には、図１に示すように、入力部１０、演算部２０、及び出力部９０を含んだ構成で表わすことができる。
【００２１】
入力部１０は、例えば、マイクであり、ユーザの発話の入力を受け付ける。
【００２２】
センサ１２は、ユーザの動作を検知する。本実施の形態では、ユーザが用いるマイクに付与された加速度センサ及びジャイロセンサを用いる。
【００２３】
演算部２０は、発話区間検知部２２、音声認識部２４、動作検知部２６、発話入力部２８、発話判定部３０、対話管理部３２、議論構造記憶部３４、マルチモーダル情報記憶部３６、雑談応答部３８、発話生成部４０、及び音声合成部４２を備えている。
【００２４】
発話判定部３０は、対話行為変換部５０、議論判定部５２、議論構造内判定部５４、及びドメイン判定部５６を備えている。以下、それぞれの部分について詳しく説明する。
【００２５】
（発話区間検知部２２）
発話区間検知部２２は、入力されたユーザ発話に基づいて、音声の発話区間を検知する。音声のパワーやzero交差の数、ポーズ長などを用いることで、音声の開始時点、音声の終了時点を検出することができる。発話区間の検知は基本的な技術であり、一般的な音声認識エンジンにも組み込まれているものである。発話区間検知部２２は音声区間が開始すると開始したという信号（VAD_START）を、マルチモーダル情報記憶部３６に伝える。また、音声区間が終了した場合、その信号（VAD_END）をマルチモーダル情報記憶部３６に伝える。
【００２６】
（音声認識部２４）
音声認識部２４は、発話区間検知部２２と連携し、検知した音声区間に含まれる音声波形をテキスト化する。
【００２７】
ここでは、出願人によるVoiceRex という音声認識エンジンを用いるが、その他の市販されている音声認識エンジンを用いてもよい。音声認識部２４は、音声認識途中のショートポーズ（数百ms のポーズ）において、ショートポーズが発生したという信号（RECG_SP）をマルチモーダル情報記憶部３６に伝える。
【００２８】
また、音声認識が終了し、テキストが得られた際には、音声認識が終了したという信号（RECG_LP）をマルチモーダル情報記憶部３６に伝えるとともに、認識された結果のテキストを発話入力部２８に送る。
【００２９】
（動作検知部２６）
動作検知部２６は、センサ１２によって検知されたデータに基づいて、ユーザの動作を検知する。具体的には、ユーザが用いるマイクに付与された上げ下げ検知を行う加速度センサとジャイロセンサを用いてユーザがマイクを持ち上げて話し始める動作を検知する。ユーザがマイクを持ち上げたときには、マイクを持ち上げたという信号（MIC_UP）を、マイクを置いた時には、マイクを置いたという信号（MIC_DOWN）をマルチモーダル情報記憶部３６に送る。
【００３０】
（発話入力部２８）
発話入力部２８は、音声認識部２４から発話テキストを受け取り、対話行為変換部５０、議論判定部５２、議論構造内判定部５４、及びドメイン判定部５６にそれぞれ送る。
【００３１】
（対話行為変換部５０）
対話行為変換部５０は発話テキストを入力とし、対話行為を推定する。対話行為とは、ユーザ発話の発話意図を表すシンボルである。ここでは、４種類の対話行為を用いる。
【００３２】
これらは、Assertion、Question、Retraction、Concession である。それぞれ、主張、質問、撤回、譲歩という意味である。以下はそれぞれの対話行為の説明と発話の例である。
【００３３】
Assertionは、命題を述べる発話であり、例えば、「私は山がいいと思います。」、「草花はきれいですよね。」である。
【００３４】
Questionは、命題について質問をする発話であり、例えば、「山がいいんですか？」、「登山は疲れませんか？」である。
【００３５】
Retractionは、自身が述べた命題を撤回する発話であり、例えば、「山は空気が美味しいというのは撤回します」、「反論できません」である。
【００３６】
Concessionは、相手が述べた命題を認める発話であり、例えば、「たしかに草花はきれいですね。」、「それは認めざるを得ないですね」である。
【００３７】
対話行為変換部５０は発話テキストをこれらの４種類の対話行為に分類する。この分類には、一般的なテキスト分類手法を用いればよい。たとえば、発話テキストから形態素解析を経て得られる単語n-gramを特徴量として、学習データに基づき（すなわち、複数の発話のそれぞれについて、上記４種類のいずれかがラベル付されたデータ）、機械学習の手法を用いて、分類器を学習すればよい。学習アルゴリズムとしては、ロジスティック回帰やサポートベクトルマシン、もしくは、深層学習による手法を用いればよい。テキスト分類手法の一般的なアルゴリズムについては、非特許文献６に示されている。深層学習による手法は非特許文献７に示されている。
【００３８】
［非特許文献6］「言語処理のための機械学習入門(自然言語処理シリーズ)」，高村大也 (著), 奥村学(監修)，コロナ社，2010.
［非特許文献7］Yoon Kim，"Convolutional Neural Networks for Sentence Classication", Proceedings of the 2014 Conference on Empirical Methods in Natural Language Processing (EMNLP), pp.1746-1751, 2014.
【００３９】
対話行為変換部５０の出力は、推定された対話行為とその信頼度である。たとえば、「Assertion:0.8」といったものになる。0.8 は信頼度である。なお、ここでは、ロジスティック回帰を用いているため分類結果に信頼度を出力することができている。
【００４０】
（議論構造内判定部５４）
議論構造内判定部５４は、ユーザが発話した内容が、議論構造の中（ノードのいずれか）に対応するもの（意味的に類似するもの）があるかどうかを判定する。対応するものがある場合、そのノード番号とその類似度を出力する。議論構造については後述する。
【００４１】
意味的に類似しているノードを議論構造から得るためには、ユーザ発話と議論構造のノードの文字列との意味的な類似度を計算する必要がある。本発明の実施の形態では、word2vec に基づく文間の類似度を用いる。word2vec とは、各単語をその意味を表すベクトルに変換する手法であり、単語のベクトル表現を得る一般的な手法である（非特許文献８）。これを用いて類似度を計算するには、発話テキストから形態素解析を経て得られる単語それぞれのベクトルを基にこれらの平均ベクトルを求め、また、ノードの文字列についても同様に平均ベクトルを求め、これらのベクトルのコサイン類似度を求めればよい。この結果、最も類似度の高いノードを得ることができる。なお、文同士の意味的な類似度を計算する手法であれば、他の手法を用いてもよい。たとえば、単語の重複数やWordNet（英語のシソーラス）におけるSynset（類義語を表すID）の重複数などを用いてもよい。
【００４２】
［非特許文献8］Tomas Mikolov et al. “Distributed representations of words and phrases and their compositionality," Advances in neural information processing systems, 2013.
【００４３】
（ドメイン判定部５６）
ドメイン判定部５６は、ユーザ発話が所定のドメインに属しているかを推定する。今回の例は、「遊びにいくなら海がよいか山がよいか」というドメインであるので、ユーザ発話の話題がこのドメインにどの程度合致するかを判定する。ここでも、対話行為変換部５０と同様、当該ドメインのテキストと、当該ドメインではないテキストを学習データとして機械学習の手法により分類器を学習すればよい。学習データが十分ない場合は、たとえば、議論構造内のノードに紐づけられた文字列のそれぞれから、議論構造内判定部５４で用いているものと同様の平均ベクトルを求め、発話テキストの平均ベクトルとそれぞれのノードの平均ベクトルとの全ての類似度を求め、所定の閾値よりも大きいものが無ければ、当該ドメインでないと判定すればよい。たとえば閾値は0.5 である。
【００４４】
ドメイン判定部５６の出力は、システムが扱う所定のドメインに属しているかどうかという判定結果であり、ロジスティック回帰を用いる場合には、先の例と同様に信頼度も、ドメイン判定部５６の出力として得ることができる。コサイン類似度を用いている場合は、この類似度（例えば、最もコサイン類似度が高かったノードとのコサイン類似度の値）をそのまま信頼度とすればよい。
【００４５】
（対話管理部３２）
対話管理部３２は、ユーザ発話の文字列と、対話行為変換部５０、議論判定部５２、議論構造内判定部５４、及びドメイン判定部５６の結果とを受け取り、図２に示す通り次の動作（アクション）を決定する。なお、ここでは信頼度の情報は用いず、結果のみを対象として次の動作を決定するが、信頼度の閾値を操作することで、信頼度が高い場合のみに所定の動作するようにするなど、適合率を重視した判定を行うようにしてもよい。
【００４６】
アクションは、議論構造更新、ドメイン外処理、議論構造外処理、及び雑談処理の４つある。それぞれ以下の処理を行う。
【００４７】
議論構造更新では、対話行為とノード番号を用いて、後述する議論構造を更新する。具体的には、たとえば、Assertionがなされたら、当該ノード番号に対応するノードのMentioned フラグを1 にする。Questionがなされたら、当該ノード番号に対応するノードのQuestioned フラグを1 にする。Retractionであれば、対応するノードがユーザ自身のサイドである場合、Accepted フラグをディフィートにする。Concession であれば、対応するノードがユーザ自身のサイドでない場合、Acceptedフラグをアクセプトにする。なお、ここで記述した更新は一例であって、その他の更新規則を用いて、これらの挙動と異なる更新を行うようにしてもよい。また、サイドとは、議論構造におけるＭａｉｎ  Ｉｓｓｕｅを支持する側か、支持しない側かを示すものである。
【００４８】
ドメイン外処理は、対応できないドメインであるため、対応できない旨を応答する。
【００４９】
議論構造外処理は、議論でありドメイン内であるが、議論構造内にない議論がされてしまった場合であるので、議論を続けたくてもできない状況である。この場合は、議論不可の旨を応答する。
【００５０】
雑談処理は、議論ではない入力ではあるが、ドメイン内であるため、議論とは関係のない雑談が入力された旨を応答する。
【００５１】
議論構造を更新したり、その他の処理が行われた後、システムは自分自身の行動を行うが、その前に、ユーザが次の行動を取ろうとしている可能性があり、発話がかち合わないために、マルチモーダル情報記憶部３６を参照する。マルチモーダル情報記憶部３６については後述する。マルチモーダル情報記憶部３６に問い合わせることで、ユーザが発話中か、もしくは、ユーザが近い時刻に発話しそうかどうかの情報を得ることができる。もし、ユーザが発話中ではない、もしくは、近い時刻に発話しないと判定されたら、対話システム１００は現状の認識に従ったアクションを実際に行う。具体的には、議論構造が更新されている場合は、ユーザ発話に対応するノードにQuestioned フラグが立っていなければそのノードについての質問文を作成し発話生成部４０に送る。もしくは、ユーザ発話に対応するノードに対して、反対意見のノード（マイナスで接続されたノード）があれば、そのノードの発話文字列を取得し、発話生成部４０に送る。そのようなノードが見つからない場合は、ランダムにシステム自身のサイドのノードを選択し、そのノードの発話文字列を発話生成部４０に送る。これらは基本的な挙動であるが、これらの挙動以外にも別途ルールを作成してそのように動作するようにしてもよい。なお、このアクションと同時に、ユーザ発話が行われた時と同様、議論構造を更新する必要がある点に注意する。ドメイン外処理の場合は、「ドメインが違います」や「海と山について話しましょう」といったユーザを議論のコンテンツに引き戻すような発話を発話生成部４０に送る。議論構造外処理の場合は、「意見が思いつきません」といった意見や反論が思いつかないという旨の発話を発話生成部４０に送る。雑談処理の場合は、ユーザの発話文字列を雑談応答部３８に送る。
【００５２】
（議論構造記憶部３４）
議論構造記憶部３４は、議論の中心となる論拠と、他の論拠を支持する、または支持しない論拠との各々を表すノードを含む議論構造を記憶している。議論構造にはウォルトンの議論構造を用いる。ただし、ここでは、議論スキームは扱わない。Premise を表すノードはプラスかマイナスの矢印によってのみ接続されている。矢印元と矢印先のノードがある時、矢印元は子ノード、矢印先は親ノードと呼ぶ。Main Issue 以外のノードは必ず親ノードが存在する。各ノードは少なくとも以下のノード番号、サイド、命題を表す文字列、Mentionedフラグ、Questionedフラグ、及びAcceptedフラグを持つものとする。
【００５３】
ノード番号は、議論構造中のノードについてユニークに付与された番号である。
【００５４】
サイドは、上述したように、議論構造におけるMain Issue について、支持側か不支持側かを表す。ここでは、一方をAサイド、もう一方をBサイドと呼ぶ。
【００５５】
命題を表す文字列は、Premise の内容を表す文字列である。たとえば、「草花がきれい」や「足腰が鍛えられる」などである。
【００５６】
Mentioned フラグ（Mフラグ）は、当該ノードが議論において言及されたかどうかを表す2 値フラグである。0 だと言及されていない状態、1 だと言及された状態を表す。
【００５７】
Questioned フラグ（Q フラグ）当該ノードが議論において質問されたかどうかを表す2 値フラグである。0 だと質問されていない状態、1 だと質問された状態を表す。
【００５８】
Accepted フラグ（A フラグ）は、当該ノードが議論の参加者によってアクセプトされたかどうかを表す3 値フラグである。undef は未定義、accept はアクセプトされた状態、defeat はディフィートされた状態を表す。アクセプトされた状態とは、議論においてPremise の内容が受理された（認められた）ことを表す。ディフィートされた状態とは、議論においてPremise の内容が不受理となった（認められなかった）ことを表す。undef はアクセプトでもディフィートでもない状態を指す。
【００５９】
（マルチモーダル情報記憶部３６）
マルチモーダル情報記憶部３６は、VAD_START、VAD_END、RECG_SP、RECG_LP、MIC_UP、MIC_DOWN、TTS_START、TTS_END の信号を受け取り、マルチモーダル情報記憶部３６が管理するマルチモーダル情報が更新される。マルチモーダル情報には、ユーザとシステムを表す状態が含まれており、入力にしたがって、ユーザとシステムの状態を更新する。本実施の形態では、マルチモーダル情報記憶部３６は、ユーザの状態を、入力された信号に応じて以下のようにマルチモーダル情報を更新する。
【００６０】
VAD_STARTの信号を受け取ると、話者の状態を話している状態にする。
VAD_ENDの信号を受け取ると、話者の状態を話していない状態にする。
RECG_SPの信号を受け取ると、話者のショートポーズが行われたので、発話生成部４０に相槌命令を送る。
RECG_LPの信号を受け取ると、話者の状態を話していない状態にする。
MIC_UPの信号を受け取ると、話者の状態を話す可能性があるという状態にする。
MIC_DOWNの信号を受け取ると、話者の状態を話す可能性がないという状態にする。
TTS_STARTの信号を受け取ると、システムの状態を話している状態にする。
TTS_ENDの信号を受け取ると、システムの状態を話していない状態にする。
【００６１】
マルチモーダル情報記憶部３６は、対話管理部３２から問い合わせを受けた場合、話者の状態を話している状態、もしくは、話者の状態を話す可能性があるという状態であれば、ユーザが発話中、もしくは、ユーザが近い時刻に発話しそうであることを伝達する。
【００６２】
（雑談応答部３８）
雑談応答部３８は、対話管理部３２から入力される発話文字列から、雑談応答を生成する。ここでは、用例ベースの雑談応答を行う。具体的には、想定される入力発話（input部）とそれに対する出力発話(output部)のペアを大量に準備しておき、入力された発話文字列と最も意味的に類似するinput部を求め（たとえば、前述のword2vecによる手法や単語のオーバーラップ数などを用いればよい）、そのinput部のペアとなっているoutput部を得て、それを発話生成部４０に出力する。なお、雑談応答として、いわゆるif-then ルールで応答してもよいし、その他の雑談対話システムでよく用いられる抽出ベースの手法や深層学習（特に、再帰型ニューラルネットワークによる手法）を用いてもよい。入力発話に関係し、話を継続させることが可能と思われる発話を生成できるものであればよい。
【００６３】
（発話生成部４０）
発話生成部４０は、対話管理部３２から送られた発話文字列、マルチモーダル情報から送られた相槌命令、雑談応答部３８から送られた発話文字列を入力とし、これらを音声合成部４２に送る。相槌命令の場合は「はい」や「ええ」といった発話文字列（これらは事前に定義しておく）を音声合成部４２に送る。
【００６４】
（音声合成部４２）
音声合成部４２は、発話生成部４０から送られた発話文字列を基に音声波形を生成し、システム発話として音声で出力部９０により出力する。本発明の実施の形態では、音声合成エンジンとして、出願人のFutureVoiceを用いるが、その他の市販の音声合成エンジンを用いてもよい。なお、音声合成を開始する際には、TTS_STARTという信号をマルチモーダル情報記憶部３６に送る。また、音声合成が終了した際には、TTS_ENDという信号をマルチモーダル情報記憶部３６に送る。
【００６５】
＜対話システムの動作＞
次に、本実施の形態に係る対話システム１００の作用について説明する。まず、ユーザと対話システム１００との対話が開始され、入力部１０により、ユーザ発話の入力を受け付けると、対話システム１００によって、図３に示す対話処理ルーチンが実行される。対話処理ルーチンは、ユーザの発話が発せられる毎に実行される。
【００６６】
まず、ステップＳ１００において、ユーザ発話に基づいて、音声の発話区間を検知し、ステップＳ１０２において、検知した音声区間に含まれる音声波形をテキスト化する。
【００６７】
ステップＳ１０４では、上記ステップＳ１０２で得られた発話テキストを受け取り、対話行為変換部５０、議論判定部５２、議論構造内判定部５４、及びドメイン判定部５６にそれぞれ送る。
【００６８】
ステップＳ１０６では、ユーザ発話についての対話行為を推定する。
【００６９】
ステップＳ１０８では、ユーザ発話について、議論に関するものであるか否かを判定する。
【００７０】
ステップＳ１１０では、議論構造の各ノードのうち、ユーザ発話に対応するノードを判定する。
【００７１】
ステップＳ１１２では、ユーザ発話について、所定のドメインに属しているか否かを判定する。
【００７２】
ステップＳ１１４では、発話テキストと、上記ステップＳ１０６〜Ｓ１１２の結果とに基づいて、上記図２に示す通り次の動作（アクション）を決定する。
【００７３】
ステップＳ１１６では、上記ステップＳ１１４で決定された次のアクションが、議論構造更新であれば、ステップＳ１１８へ移行し、決定された次のアクションが、雑談処理であれば、ステップＳ１２２へ移行し、決定された次のアクションが、ドメイン外処理又は議論構造外であれば、ステップＳ１２６へ移行する。
【００７４】
ステップＳ１１８では、対話行為とノード番号を用いて議論構造を更新し、ステップＳ１２０において、ユーザ発話に対応するノードについての質問文、ノードの発話文字列、又はランダムに選択されたシステム自身のサイドのノードの発話文字列を、発話生成部４０に送る。
【００７５】
ステップＳ１２２では、ユーザ発話を雑談応答部３８に送り、ステップＳ１２４において、ユーザ発話の文字列から、雑談応答を表す発話文字列を生成し、発話生成部４０へ送る。
【００７６】
ステップＳ１２６では、次のアクションがドメイン外処理の場合、「ドメインが違います」や「海と山について話しましょう」といったユーザを議論のコンテンツに引き戻すような発話を発話生成部４０に送る。次のアクションが、議論構造外処理の場合は、「意見が思いつきません」といった意見や反論が思いつかないという旨の発話を発話生成部４０に送る。
【００７７】
ステップＳ１２８では、マルチモーダル情報記憶部３６に記憶されているマルチモーダル情報を参照して、ユーザが発話中、もしくは、ユーザが近い時刻に発話しそうであるか否かを判定する。ユーザが発話中、もしくは、ユーザが近い時刻に発話しそうであると判定された場合には、対話システム１００が発話せずに、対話処理ルーチンを終了する。
【００７８】
一方、ユーザが発話中でもなく、ユーザが近い時刻に発話しそうでないと判定された場合には、ステップＳ１３０において、発話生成部４０は、対話管理部３２から送られた発話文字列、マルチモーダル情報から送られた相槌命令、又は雑談応答部３８から送られた発話文字列を入力とし、これらを音声合成部４２に送る。
【００７９】
ステップＳ１３２では、音声合成部４２は、発話生成部４０から送られた発話文字列を基に音声波形を生成し、システム発話として音声で出力部９０により出力する。そして、ステップＳ１３４では、上記ステップＳ１３２で出力したシステム発話に応じて、議論構造を更新し、対話処理ルーチンを終了する。例えば、上記ステップＳ１３２で出力したシステム発話に対応する対話行為（Assertion、Question、Retraction、Concession）に応じて、上述した議論構造更新と同様に、議論構造のうちの、現在の対象となっているノード（当該システム発話に対応するノード）のフラグを更新する。
【００８０】
以上説明したように、本実施の形態に係る対話システム１００によれば、ユーザ発話についての対話行為の推定結果、所定のドメインに属しているか否かの判定結果、議論に関するものであるか否かの判定結果、及び議論構造の各ノードのうちのユーザ発話に対応するノードの判定結果に基づいて、システム側の次の行動を決定することにより、ユーザと議論を行うことができる。
【００８１】
なお、本発明は、上述した実施形態に限定されるものではなく、この発明の要旨を逸脱しない範囲内で様々な変形や応用が可能である。
【００８２】
また、上記実施の形態では、議論構造記憶部３４及びマルチモーダル情報記憶部３６を備えている場合について説明したが、例えば、議論構造記憶部３４及びマルチモーダル情報記憶部３６の少なくとも１つが対話システムの外部装置に設けられ、対話システムは、外部装置と通信手段を用いて通信することにより、議論構造記憶部３４及びマルチモーダル情報記憶部３６の少なくとも１つを参照するようにしてもよい。
【００８３】
また、上述の対話システムは、内部にコンピュータシステムを有しているが、コンピュータシステムは、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
【００８４】
また、本願明細書中において、プログラムが予めインストールされている実施形態として説明したが、当該プログラムを、コンピュータ読取り可能な記録媒体に格納して提供することも可能である。
【符号の説明】
【００８５】
１０   入力部
１２   センサ
２０   演算部
２２   発話区間検知部
２４   音声認識部
２６   動作検知部
２８   発話入力部
３０   発話判定部
３２   対話管理部
３４   議論構造記憶部
３６   マルチモーダル情報記憶部
３８   雑談応答部
４０   発話生成部
４２   音声合成部
５０   対話行為変換部
５２   議論判定部
５４   議論構造内判定部
５６   ドメイン判定部
９０   出力部
１００ 対話システム
【図１】
2018147189.tif 000003
【図２】
2018147189.tif 000004
【図３】
2018147189.tif 000005
【図４】
2018147189.tif 000006
【図５】
2018147189.tif 000007