(57)【特許請求の範囲】
【請求項１】
話題に対する相手の感情を推定する感情推定手段と、
互いに異なる複数の話題を含み、前記複数の話題の各々に対する相手の関心の高さの度合いを示すスコアを、該複数の話題に対応付けた話題マップと、
前記話題マップから選択した話題で、前記相手との対話を制御する対話制御手段と、
前記話題マップの前記スコアを更新する話題マップ更新手段と、
を備え、
前記話題マップは、前記複数の話題の各々が対応する所定の位置に位置決めされた複数の次元のマップで構成されており、
前記話題マップ更新手段は、前記対話制御手段が選択した話題に対する前記相手の感情に基づいて、前記選択した話題に対する前記スコアの更新処理を行い、
前記対話制御手段は、前記話題マップにおける前記スコアの高い話題の位置を特定し、当該特定した位置に基づいて、前記複数の話題のうちの前記スコアの高い話題とは異なる話題であって、前記話題マップにおいて前記スコアの高い話題のより近くに位置する話題を、前記話題マップから選択して前記相手との対話をリードすることを特徴とする対話制御装置。
【請求項２】
前記対話制御手段は、前記感情推定手段により推定された相手の感情が悪い場合、前記話題マップから選択した話題を別の話題に切り替える、請求項１に記載の対話制御装置。
【請求項３】
前記話題マップは外部サーバ上に配置され、前記対話制御手段は、前記外部サーバにアクセスして前記話題マップを参照する、請求項１または２に記載の対話制御装置。
【請求項４】
前記話題マップ更新手段は、前記相手との対話中に推定された相手の感情の良し悪しに基づいて、前記選択された話題に関連付けられた前記話題マップの前記スコアに加減算を行うとともに、相手の感情が良くなる話題を学習して前記話題マップを更新する、請求項１から３の何れか１項に記載の対話制御装置。
【請求項５】
前記対話制御手段は、前記複数の話題のうちの、前記スコアが１度も更新されていない話題であるスコア未更新話題を選択するような場合、前記話題マップにおける前記スコアの高い話題の位置に対する前記スコア未更新話題の位置関係に基づいて、前記スコア未更新話題の選択を実行する、請求項１から４の何れか１項に記載の対話制御装置。
【請求項６】
前記対話制御手段は、複数の前記スコア未更新話題から話題を選択するような場合、前記複数のスコア未更新話題のうち、前記話題マップにおいて前記スコアの高い話題の最も近くに位置する前記スコア未更新話題を選択する、請求項５に記載の対話制御装置。
【請求項７】
互いに異なる複数の話題を含み、前記複数の話題の各々に対する相手の関心の高さの度合いを示すスコアを、該複数の話題に対応付けた話題マップを備えた対話制御装置によって実行される対話制御方法であって、
話題に対する相手の感情を推定する感情推定ステップと、
前記話題マップから選択した話題で、前記相手との対話を制御する対話制御ステップと、
前記話題マップの前記スコアを更新する話題マップ更新ステップと、
を含み、
前記話題マップは、前記複数の話題の各々が対応する所定の位置に位置決めされた複数の次元のマップで構成されており、
前記話題マップ更新ステップでは、前記対話制御ステップで選択した話題に対する前記相手の感情に基づいて、前記選択した話題に対する前記スコアの更新処理を行い、
前記対話制御ステップでは、前記話題マップにおける前記スコアの高い話題の位置を特定し、当該特定した位置に基づいて、前記複数の話題のうちの前記スコアの高い話題とは異なる話題であって、前記話題マップにおいて前記スコアの高い話題のより近くに位置する話題を、前記話題マップから選択して前記相手との対話をリードすることを特徴とする対話制御方法。
【請求項８】
互いに異なる複数の話題を含み、前記複数の話題の各々に対する相手の関心の高さの度合いを示すスコアを、該複数の話題に対応付けた話題マップを備えた対話制御装置のコンピュータを、
話題に対する相手の感情を推定する感情推定手段、
前記話題マップから選択した話題で、前記相手との対話を制御する対話制御手段、
前記話題マップの前記スコアを更新する話題マップ更新手段、
として機能させ、
前記話題マップは、前記複数の話題の各々が対応する所定の位置に位置決めされた複数の次元のマップで構成されており、
前記話題マップ更新手段は、前記対話制御手段が選択した話題に対する前記相手の感情に基づいて、前記選択した話題に対する前記スコアの更新処理を行い、
前記対話制御手段は、前記話題マップにおける前記スコアの高い話題の位置を特定し、当該特定した位置に基づいて、前記複数の話題のうちの前記スコアの高い話題とは異なる話題であって、前記話題マップにおいて前記スコアの高い話題のより近くに位置する話題を、前記話題マップから選択して前記相手との対話をリードすることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対話制御装置、対話制御方法及びプログラムに関する。
【背景技術】
【０００２】
近時、人間と機械との間でインタラクティブな対話を実現する技術が浸透してきている。人間と機械がコミュニケーションを伴った対話をするためには、人工知能（ＡＩ：Artificial Intelligence）の技術、音声認識技術が必要であるが、単に文脈を分析して応答するだけでは、コミュニケーションをはかることはできない。人間の感情を推定する技術等が必要である。
【０００３】
例えば、特許文献１には、対話相手となるユーザの感情を推定して、その推定した感情を対話に活かす技術が開示されている。特許文献１では、ユーザの発話の都度、その発話内容をテキスト化して、そのテキストの中に感情の良否を示す単語が含まれているかで感情推定を行う。そして、装置は、推定した感情に応じて回答（例えば、推定した感情がネガティブであれば「大丈夫？」などと発話）するようにしている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００６−１７８０６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１では、単にユーザが発話する都度、ユーザの感情を推定して短く返答するだけなので、ユーザが飽きずにコミュニケーションを続けるには難があった。このため、対話によるユーザの満足度を向上するには程遠く、装置との間で親密な関係を築くことができなかった。
このようなことから、ユーザの感情を害さずに会話をリードする技術が求められている。
【０００６】
そこで、本発明は、上述した事情に鑑みてなされたものであり、対話相手となるユーザの感情を良好なまま会話をリードする対話制御装置等を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一態様は、話題に対する相手の感情を推定する感情推定手段と、互いに異なる複数の話題を含み、前記複数の話題の各々に対する相手の関心の高さの度合いを示すスコアを、該複数の話題に対応付けた話題マップと、前記話題マップから選択した話題で、前記相手との対話を制御する対話制御手段と、前記話題マップの前記スコアを更新する話題マップ更新手段と、を備え、前記話題マップは、前記複数の話題の各々が対応する所定の位置に位置決めされた複数の次元のマップで構成されており、前記話題マップ更新手段は、前記対話制御手段が選択した話題に対する前記相手の感情に基づいて、前記選択した話題に対する前記スコアの更新処理を行い、前記対話制御手段は、前記話題マップにおける前記スコアの高い話題の位置を特定し、当該特定した位置に基づいて、前記複数の話題のうちの前記スコアの高い話題とは異なる話題であって、前記話題マップにおいて前記スコアの高い話題のより近くに位置する話題を、前記話題マップから選択して前記相手との対話をリードすることを特徴とする対話制御装置である。
【発明の効果】
【０００８】
本発明によれば、対話相手となるユーザの感情を良好なまま会話をリードすることができる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る対話制御装置の構成を示すブロック図である。
【図２】スコア処理前の話題マップの例を示す図である。
【図３】キーワードテーブルの一例を示す図である。
【図４】質問文テンプレートの一例を示す図である。
【図５】応答文テンプレートの一例を示す図である。
【図６】スコア処理後の話題マップの例を示す図である。
【図７】話題マップ作成処理のフローチャートの一例を示す図である。
【図８】対話制御処理１のフローチャートの一例を示す図である。
【図９】対話制御処理２のフローチャートの一例を示す図である。
【図１０】対話制御処理３のフローチャートの一例を示す図である。
【図１１】対話制御処理４のフローチャートの一例を示す図である。
【図１２】２次元の話題マップの例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図１を参照しながら、本発明の実施形態に係る対話制御装置の概要について説明する。この対話制御装置１０は、対話相手との物理インターフェイスとして、対話相手の音声を収音するマイク４０、対話相手に音声出力するスピーカ４１、対話相手を撮影するカメラ４２を備えている。
対話制御装置１０は、マイク４０の音声とカメラ４２の画像とから感情推定を行って、推定した感情に応じた話題による対話を、スピーカ４１を通して行う。
【００１１】
なお、対話エンジンである対話制御装置１０をロボットに適用してもよい。この対話制御装置１０は、人との対話を必要とする、およそ全ての場面に適用可能な人工知能であって、適用範囲はカーナビ、スマホの対話型アプリ、デジタルの２次元キャラクタなど幅広い。また、以下の説明において、「対話」、「会話」、「コミュニケーション」の各用語は、自然言語でインタラクティブに情報のやりとりをするという意味で全て同義であるものとする。
【００１２】
対話制御装置１０は、対話相手との物理インターフェイス（マイク４０、スピーカ４１、カメラ４２）に加えて、制御部２０と記憶部３０とを備える。
【００１３】
制御部２０は、ＣＰＵ（Central Processing Unit）、ＲＯＭ（Read Only Memory)、ＲＡＭ（Random Access Memory）などで構成される。制御部２０は、ＲＯＭに記憶されたプログラム（例えば、後述する話題マップ作成処理や対話制御処理に係るプログラム）を実行することにより、各部（感情推定部２１、対話制御部２２）の機能を実現する。
【００１４】
記憶部３０は、ハードディスクやフラッシュメモリなどの不揮発性メモリであって、各種Data Base（対話用ＤＢ３２、感情推定用ＤＢ３３）を記憶する。これらＤＢについては後述する。
【００１５】
さて、次に、制御部２０の機能について説明する。
制御部２０は、機能として、感情推定部２１と対話制御部２２とを備える。
【００１６】
感情推定部２１は、対話相手の感情を推定する。感情推定部２１は、感情推定用ＤＢ３３（表情用ＤＢ３３１、韻律用ＤＢ３３２、テキスト用ＤＢ３３３）と、カメラ４２が撮影した対話相手の顔画像と、マイク４０が収音した対話相手の音声と、から対話相手の感情を推定する。
【００１７】
表情用ＤＢ３３１は、予め多量のサンプルを機械学習して得られた表情毎のテンプレート画像を記憶するデータベースである。感情推定部２１は、カメラ４２が撮影した対話相手の顔画像とテンプレート画像のマッチングにより対話相手の感情を推定する。この実施形態では、感情として、喜び、恐れ、嫌悪、怒り、悲しみ、驚きの基本的な６感情を推定するものとする。
【００１８】
韻律用ＤＢ３３２は、韻律（声の高さ、音量、イントネーション、リズム、ポーズなどのしゃべり方の特徴）を、感情毎に対応付けて記憶するデータベースである。感情推定部２１は、マイク４０が収音した対話相手の音声から韻律を抽出して、抽出した韻律と韻律用ＤＢ３３２とから対話相手の感情を推定する。
【００１９】
テキスト用ＤＢ３３３は、感情を示す単語（名詞や形容詞など）を、感情毎に対応付けて記憶するデータベースである。例えば、名詞「合格」、「優勝」は感情「喜び」と対応付け、形容詞「残念だ」、「つまらない」は感情「悲しみ」と対応付けておく。感情推定部２１は、マイク４０が収音した音声をテキスト化して形態素解析により単語に分解して、テキスト用ＤＢ３３３を参照して感情を推定する。
【００２０】
感情推定部２１は、これら何れかのＤＢ（表情用ＤＢ３３１、韻律用ＤＢ３３２、テキスト用ＤＢ３３３）を単独で又は併用して対話相手の感情を推定する。表情による感情推定のタイミングは、後述する対話部２２２が発話した直後に毎回行う。発話後しばらくたった後よりも直後の方が聞き手である対話相手の感情が表情にでやすいからである。また、韻律とテキストによる感情推定は、対話相手が発話する都度行う。
【００２１】
さて、次に、対話制御部２２の機能について説明する。
この対話制御部２２は、感情推定部２１が推定した感情の良し悪しに基づいて選択した話題で、対話相手との対話を制御する。この対話制御部２２は、選択部２２１、対話部２２２、話題マップ作成部２２３、更新部２２４を備える。なお、選択部２２１は第１及び第２の選択手段に、対話部２２２は第１及び第２の対話手段に、それぞれ相当する。以下では、まず、（ｉ）対話相手の趣味嗜好を探って学習することで話題マップを作成する段階（作成段階）について説明した上で、次に、（ｉｉ）作成した話題マップを活用して対話相手との対話を制御する段階（活用段階）について説明する。
【００２２】
選択部２２１は、複数の異なる話題の中からランダムに一つの話題を選択する。具体的には、選択部２２１は、図２が示すスコア処理前の話題マップ３１中の話題の中からランダムに一つの話題を選択する。この話題マップ３１は、対話相手の話題に対する関心の高さの度合いを示すスコアを、複数の異なる話題（図中の例では、食べ物、旅行、動物など）に対応付けた一次元のテーブルである。なお、初期状態では、スコアは全て０である。
【００２３】
次に、対話部２２２は、選択部２２１が選択した話題に基づいて、対話相手と対話する。この対話の手法は任意だが、この実施形態では対話用ＤＢ３２が含む対話用の各ＤＢ（質問文ＤＢ３２１、応答文ＤＢ３２２）を用いて対話相手と対話する。ここでの対話とは、一つのタスク（例えば、予約受付や道案内など）を達成するためのタスク指向型ではなく、雑談などの話しを続けることを企図した非タスク指向型の対話である。
【００２４】
この非タスク指向型の対話は未だ発展途上であるものの、この実施形態では様々な話題を扱うために話題別に数万パターンの質問候補、応答候補を予めＤＢに用意しておく。これら質問・応答は、図３に示すキーワードテーブル３５を活用して行う。このキーワードテーブル３５は、単語辞書などに基づいて作成され、話題毎に名詞ワードと形容詞ワードを対応付けたものである。名詞ワードは話題に関連する名詞を、形容詞ワードは話題に関連する形容詞を、それぞれ示す。
【００２５】
図３に示すキーワードはごく一部であって、実際は各話題につき対話に必要な数万キーワード用意しておく。また、キーワード毎に上下関係（野菜であれば、上位概念たる野菜が下位概念たるキャベツ、タマネギを含むなど）と、類似関係（うどんとラーメンは麺類で類似するなど）と、を対応付けておく。また、対話制御部２２は、対話相手から不知の単語が発話された場合、その単語を新たなキーワード（例えば、対話相手の名前など）を追加して学習していくとよい。
【００２６】
さて、質問文ＤＢ３２１は、話題毎に複数の異なる質問文のテンプレートを記憶したデータベースである。対話部２２２は、会話のオープニングで質問する場合、対話相手からの応答に対して質問する場合、ある話題において対話相手からの無音区間が続いた場合、など質問文ＤＢ３２１から質問文テンプレートを選択して質問をスピーカ４１から発話させる。
【００２７】
図４に話題「食べ物」の質問文テンプレートのバリエーションの一例を示す。この質問文テンプレートは、キーワード（名詞ワード・形容詞ワード）を当てはめる形式であって、下位ワードは上位概念のキーワードに含まれるキーワードである。対話部２２２は、キーワードテーブル３５から「食べ物」に関するキーワードをランダムに、あるいは対話相手からの発話中に含まれる「食べ物」のキーワードを使って、質問文テンプレートを作成して発話する。
【００２８】
次に、応答文ＤＢ３２２は、話題毎に複数の異なる応答文のテンプレートを記憶したデータベースである。応答文テンプレートは、例えばＸＭＬ（Extensible Markup Language）などのマークアップ言語で記述することができる。具体的には、ＡＩＭＬ（Artificial Intelligence Markup Language）で記述しておき、対話部２２２は、対話相手の発話中にキーワード（名詞ワード・形容詞ワード）が含まれる場合は、そのキーワードを用いた応答用のテンプレートで応答する。
【００２９】
図５に話題「食べ物」の応答文テンプレートのバリエーションの一例を示す。応答文テンプレートは、対話相手の発話中にキーワードテーブル３５が含むキーワードがあれば、そのキーワード（名詞ワード・形容詞ワード）をあてはめて応答する形式となっている。なお、類似ワードとはキーワードテーブル３５において類似関係にあるキーワード（うどんとラーメンなど）をいう。カテゴリの種別（共感、自己開示、情報提供）は一例であって、これ以上の種別を設けてもよい。
【００３０】
例えば、話題「食べ物」について対話相手の発話中に「ラーメン」というキーワードがあった場合、対話部２２２は、共感用の応答文テンプレートとして「ラーメンはおいしいですよね。私も好きです。」や自己開示用の応答文テンプレートとして「私は、ラーメンよりもうどんの方が好きです。」、質問文テンプレートとして「何味のラーメンが好きなんですか。」といった具合に応答することになる。これらテンプレートのうち、何れを選ぶかはランダムで選択するか、あるいは対話履歴からの文脈や優先順位に応じて選択すればよい。
【００３１】
ここで、情報提供とは、インターネットでの検索結果に係る情報を提供する際のテンプレートである。この情報提供に係る情報（場所の固有名詞など）は、対話部２２２が対話相手からの検索要求をトリガとして又は対話中の適宜なタイミングで能動的に取得する。そして、対話部２２２は、取得した情報を情報提供用の応答テンプレートに当てはめて発話する。
【００３２】
なお、１つの応答文テンプレートは、汎用性を高める観点から複数のキーワードで共通して用いるようにしているが、これに限られない。特定のキーワードに対応する独自の応答文を対応付けてもよい。例えば、話題「動物」の名詞ワード「ライオン」に、「タテガミがあるのは雄のライオンだけなんですよね。」や「ライオンって百獣の王なんですよね。」といった具合にライオン独自の応答文テンプレートを複数対応付けておき、ランダムに選択して発話してもよい。
【００３３】
以上、対話部２２２は、質問文ＤＢ３２１と応答文ＤＢ３２２とに含まれる、話題別の数万パターンの質問文・応答文テンプレートを使用して、一問一答ではない、少なくとも数ターンの会話を話題毎に行う。以下ではこれら各ＤＢを用いて、対話部２２２が対話相手と対話する場合の具体例１を、選択部２２１が話題「食べ物」を選択した場合で説明する。なお、対話は時系列に沿って（１）（２）などと符号を付す。
【００３４】
（１）対話制御装置１０：「食べ物について話しをしましょう。」
（２）対話制御装置１０：「好きな食べ物は何ですか。」
（３）対話相手：「うどんが好きかな。」
（４）対話制御装置１０：「うどんはおいしいですよね。私も好きです。」
（５）対話制御装置１０：「他においしいと思う食べ物はありますか。」
【００３５】
（６）対話相手：「とんかつも好きかな。」
（７）対話制御装置１０：「とんかつはおいしいですよね。同感です。」
（８）対話制御装置１０：「上野に、とんかつのおいしいお店がありますよ。」
（９）対話相手：「へー何て店。」
（１０）対話制御装置１０：「店舗名は、○○です。」
【００３６】
（１１）対話相手：「いつ開いているの。」
（１２）対話制御装置１０：「朝１０時〜夜９時まで開いています。」
（１３）対話相手：「分かった。今度行ってみるよ。ありがとう。」
（１４）対話制御装置１０：「どういたしまして。」
【００３７】
この具体例１では、対話部２２２は、（１）で選択部２２１が選択した話題である「食べ物」について話しをするためのオープニングを行い、（２）で質問文ＤＢ３２１から「食べ物」についてオープニング用の質問文テンプレートを選択して質問を行い、（４）及び（７）で応答文ＤＢ３２２から「食べ物」の共感用の応答文テンプレートで応答を行い、（８）で対話相手が発話した「食べ物」の名詞ワード（具体例１では「とんかつ」）に対する検索を行って情報提供を行い、（１０）及び（１２）で対話相手からの質問に対して情報提供し、最後に（１４）で応答文ＤＢ３２２からキーワード「ありがとう」に対する応答文テンプレート「どういたしまして。」と応答する。なお、キーワードテーブル３５と応答文ＤＢ３２２は、話題に関するキーワードと応答文テンプレート以外に、あいさつなどの話題に関係のない日常のシナリオ毎にキーワードと応答文テンプレートを用意しておく。
【００３８】
この具体例１にように非タスク指向型の会話シナリオは千差万別であるものの、対話部２２２は対話用ＤＢ３２（質問文ＤＢ３２１、応答文ＤＢ３２２）を適宜組み合わせて上記（１）〜（１４）のような話題に対する対話を行う。なお、品詞（名詞・形容詞など）や疑問文かなどは、マイク４０が収音した対話相手からの発話をテキスト化して形態素解析をすればよい。
【００３９】
また、対話部２２２が自律的に検索をするタイミングは、対話相手から所定数以上の名詞（上記具体例１では二つ目の名詞「とんかつ」）が得られたタイミングなど予め規則（検索タイミングのルール）を設定しておけばよく、設計事項となる。また、音声認識により得られた対話相手からの発話が曖昧であれば、確認応答（例えば、「（名詞ワード）のことですか。」などと聞き返す）などエラーハンドリングも適宜行うとよい。
【００４０】
ここで、感情推定部２１は、上記対話の具体例１において、対話制御装置１０が発話する都度（例えば、「好きな食べ物は何ですか。」と対話相手に聞いた直後）に対話相手の感情を、表情用ＤＢ３３１を用いて推定する。さらに、感情推定部２１は、対話相手が発話する都度（例えば、対話相手が「分かった。今度行ってみるよ。ありがとう。」と言ったら）、韻律用ＤＢ３３２とテキスト用ＤＢ３３３とを用いて対話相手の感情を推定する。これにより、対話相手の感情を、対話制御装置１０が発話したタイミング及び対話相手が発話したタイミングで推定することができる。
【００４１】
さて、図１に戻って、話題マップ作成部２２３は、対話相手の感情を害さずに会話をリードするための話題マップを作成する。具体的には、話題マップ作成部２２３は、対話部２２２が対話相手と対話中に感情推定部２１が推定した感情の良し悪しに応じて、選択部２２１が選択中の話題のスコアの加減算処理を行う。
【００４２】
なお、話題マップ作成部２２３は、対話相手毎に話題マップを作成するが、理解を容易にするために、対話相手が一人である場合を例にとって説明する。また、この一人の対話相手の趣味嗜好を示した話題マップ３１を特段特定して説明する必要がなければ、一般論として単に話題マップと称して以下説明する。また、一例として、感情が良い場合を、楽しい、嬉しいなどが感得できるポジティブな「喜び」とし、感情が悪い場合を、つまらない、落胆などが感得できるネガティブな「恐れ、嫌悪、怒り、悲しみ」として説明する。
【００４３】
話題マップ作成部２２３は、感情推定部２１が推定した感情が良ければ選択中の話題のスコアの加算処理を行い、感情推定部２１が推定した感情が悪ければ選択中の話題のスコアの減算処理を行う。例えば、上記具体例１で、「上野に、とんかつのおいしいお店がありますよ。」と対話制御装置１０が発話した直後の対話相手の感情が「喜び」であれば、話題マップ作成部２２３は、話題マップ３１において選択中の話題である食べ物のスコアを＋１する。
【００４４】
一方、具体例１とは別に、「好きな食べ物は何ですか。」との問いに対して対話相手から「何でそんなこと聞くの。」との返答があり、韻律から感情「嫌悪」が推定された場合、話題マップ作成部２２３は、話題マップ３１において選択中の話題である食べ物のスコアを−１する。このように、話題マップ作成部２２３は、選択中の話題の対話中に対話相手の感情が推定される都度、加減算処理を行ってスコア処理を行う。このスコア処理を話題毎に行って、図６に示したような話題マップ３１を作成する。
【００４５】
さて、図１に戻って、更新部２２４は、話題マップ作成部２２３が作成した話題マップ３１の各スコアを、対話中の対話相手の感情の良し悪しに応じて更新する。この更新部２２４については後述する。
【００４６】
以上が対話制御部２２の各部の機能についての説明である。以下では、図７を参照しながら、話題マップ作成処理について説明する。この話題マップ作成処理は、話題マップ３１が初期状態の段階で対話制御装置１０が対話相手と対話する際に（例えば、対話相手が対話制御装置１０の対話機能をオンしたことをトリガとして）行われる。対話制御装置１０は、対話相手の趣味嗜好を機械学習しなければ対話相手の感情を良好のまま会話をすることが困難である。このため、話題マップの活用段階に先立って話題マップ作成処理を行う。
【００４７】
まず、選択部２２１は、ランダムに一つの話題を選択する（ステップＳ１１）。次に、対話部２２２は、選択した話題に基づいて、対話相手と対話する（ステップＳ１２）。具体的には、対話部２２２は、上述した要領で、対話用ＤＢ３２（質問文ＤＢ３２１、応答文ＤＢ３２２）を用いて上記具体例１の（１）〜（１４）のような対話を行う。
【００４８】
その間、感情推定部２１は、対話相手の感情を推定する（ステップＳ１３）。具体的には、感情推定部２１は、上述した要領で、感情推定用ＤＢ３３（表情用ＤＢ３３１、韻律用ＤＢ３３２、テキスト用ＤＢ３３３）を用いて、対話相手の感情を、対話制御装置１０の発話直後か、対話相手の発話直後に推定する。
【００４９】
次に、話題マップ作成部２２３は、推定した感情は良好か否かの良否判定を行う（ステップＳ１４）。話題マップ作成部２２３は、推定した感情が良好であれば（ステップＳ１４；Ｙｅｓ）、選択中の話題のスコアの加算処理を行い（ステップＳ１５）、一方で推定した感情が良好でなければ（ステップＳ１４；Ｎｏ）、選択中の話題のスコアの減算処理を行う（ステップＳ１６）。
【００５０】
ステップＳ１５又はステップＳ１６の後、話題マップ作成部２２３は対話終了か否か判定し（ステップＳ１７）、終了していなければ（ステップＳ１７；Ｎｏ）、ステップＳ１２に戻る。すなわち、対話が終了するまで、ステップＳ１２乃至ステップＳ１６の処理を繰り返して、対話中の感情推定の度にスコア処理を行う。なお、対話終了か否かは、例えば、所定のターン数以上対話を行い、かつ、それ以降の対話相手からの無音期間が所定期間経過した場合などにすればよい。所定のターン数以下であっても、対話相手から「その話題については話したくない。」「興味がない。」など会話を続ける意思がないことが明らかな発話があれば対話を強制終了しても構わないし、減算されたスコアが所定値（例えば、−５）に達すれば強制終了しても構わない。対話終了のタイミングは適宜設計しうる事項である。
【００５１】
ここで、対話が終了すると（ステップＳ１７；Ｙｅｓ）、ステップＳ１１に戻って、選択中の話題を別の話題に切り替えて、ステップＳ１２以下の処理を繰り返す。例えば、上記具体例１において、（１）〜（１４）の対話終了時点で「食べ物」に対するスコアが図６の話題マップ３１が示す５である。その後、話題マップ作成部２２３は、「食べ物」以外の話題に切り替えて対話を続ける。このように、話題マップ作成部２２３が話題を切り替えて対話を繰り返して作成したのが図６に示す話題マップ３１である。
【００５２】
なお、対話は上記具体例１のように終了するとは限らない。例えば、対話の自然な流れで別話題になることもあるし、対話相手から突然この話題について話したいと提案されることもある。このような割り込み処理がある場合に備えて、選択中の話題に対する対話中に対話相手から別話題に関連する単語が発話されれば、それをトリガに別話題に切り替えてもよい。
【００５３】
例えば、上記具体例１において、対話制御装置１０が「上野に、おいしいとんかつのお店がありますよ。」と発話したことに対して対話相手から「へーそうなんだ、そういえば最近上野のアメ横で買い物してないな。」と返答があれば、対話部２２２は、「買い物」をキーワードに、「食べ物」から「買い物」への話題に切り替えて対話を続けるようにする。この場合、選択中であった食べ物のスコアは別話題に切り替えるまでのスコアとなる。
【００５４】
以上が話題マップ作成処理についての説明である。ここで、図６の話題マップ３１は、全話題についてスコア処理されていない。これは話題マップを活用して対話相手と対話できる程度に趣味嗜好が分かればよく、話題マップ作成のための学習段階から話題マップを活用した対話制御処理に遷移するタイミングは適宜設定できるからでる。例えば、話題マップ作成処理を何度か繰り返してスコアが３以上の話題が３つになった段階で話題マップを活用する段階に遷移してもよいし、全話題につきスコア処理がされた段階で活用段階に遷移してもよい。
【００５５】
以下では、作成された話題マップ（図６の話題マップ３１）を活用して、対話相手の趣味嗜好をおさえて会話をリードする対話制御処理１乃至３のバリエーションについて順に説明する。なお、活用段階においては話題マップ作成部２２３を除く、選択部２２１（第２の選択手段）、対話部２２２（第２の対話手段）、更新部２２４が機能する。対話部２２２の機能は話題マップの作成段階と同じである。
【００５６】
（対話制御処理１）
ここで、図８を参照しながら、対話制御処理１について説明する。この対話制御処理１は、話題マップ作成段階から活用段階に遷移した後、対話制御装置１０が対話相手をカメラ４２により撮影したことをトリガとして行われる。
【００５７】
まず、感情推定部２１は、カメラ４２により撮影した対話相手の推定した感情は良好か否か判定する（ステップＳ２１）。推定した感情が良好であれば（ステップＳ２１；Ｙｅｓ）、選択部２２１は、スコア未処理の話題をランダムに一つ選択する（ステップＳ２２）。例えば、選択部２２１は、話題マップ３１のうちスコアが０の話題（音楽、芸能、投資）のうち、音楽を選択する。
【００５８】
一方、推定した感情が良好でなければ（ステップＳ２１：Ｎｏ）、選択部２２１は、スコアが閾値以上の話題を選択する（ステップＳ２３）。閾値がスコア３であれば、選択部２２１は、話題マップ３１のうちスコアが３以上の話題（食べ物、動物、買い物）のうち、ランダムに動物を選択する。この閾値は、対話相手が好む話題と言える目安の値にするとよい。
【００５９】
ステップＳ２２又はステップＳ２３の後、対話部２２２は、選択した話題に基づいて、対話相手と対話する（ステップＳ２４）。このように、ステップＳ２１乃至ステップＳ２４では、対話前に推定した対話相手の感情に応じて、選択する話題を切り替えて対話を開始するようにしている。
【００６０】
さて、選択した話題で対話を開始すると、感情推定部２１は、対話相手の感情を推定して、推定した感情は良好か否か判定する（ステップＳ２５）。推定した感情が良好であれば（ステップＳ２５；Ｙｅｓ）、更新部２２４は、スコアを加算して更新するとともに（ステップＳ２６）、対話部２２２は、対話終了か否か判定する（ステップＳ２７）。対話終了していなければステップＳ２５に戻って、対話中の対話相手の感情が良好の間は選択した話題で対話を続ける（ステップＳ２５乃至ステップＳ２７のループ）。推定した感情が良好のまま対話を終了すると（ステップＳ２７；Ｙｅｓ）、選択部２２１は、スコア未処理の話題を全て選択済みか否か判定する（ステップＳ２８）。スコア未処理の話題を全て選択済みでなければ（ステップＳ２８；Ｎｏ）、ステップＳ２２に戻る。一方、スコア未処理の話題を全て選択済みの場合（ステップＳ２８；Ｙｅｓ）、処理を終了する。
【００６１】
一方、選択した話題で対話中に、推定した対話相手の感情が良好でなくなった場合（ステップＳ２５；Ｎｏ）、更新部２２４は、スコアを減算して更新するとともに（ステップＳ２９）、選択部２２１は、スコアが閾値以上の話題があるか否か判定する（ステップＳ３０）。スコアが閾値以上の話題があれば（ステップＳ３０；Ｙｅｓ）、ステップＳ２３に戻る。一方で、スコアが閾値以上の話題がなければ（ステップＳ３０；Ｎｏ）、処理を終了する。
【００６２】
この対話制御処理１によれば、感情が良好の間は選択中の話題（スコア未処理の話題）で対話して話題マップを更新する一方、感情が悪くなるとスコアが閾値以上の話題に切り替えて対話を継続するようにしている。この対話制御処理１により対話相手と対話した場合の具体例２は以下のようになる。この具体例２は、ステップＳ２１において、対話制御装置１０がカメラ４２で対話相手を最初に捉えた際に、対話相手の感情が良好と判定された場合を想定している。
【００６３】
（１）対話制御装置１０：「音楽について話しをしましょう。」
（２）対話制御装置１０：「好きな音楽のジャンルは何ですか。」
（３）対話相手：「洋楽かな。」
（４）対話制御装置１０：「私は、洋楽よりも邦楽の方が好きです。」
（５）対話相手：「ふーん。邦楽はあまり好きじゃないな。」
（６）対話制御装置１０：「そうですか、すみません。」
（７）対話制御装置１０：「それでは、動物について話しをしましょう。」
（８）対話相手：「動物いいね。話しをしようよ。」
（９）対話制御装置１０：「好きな動物は何ですか。」
【００６４】
この（９）以降も対話は続く。この具体例２の（１）において選択部２２１はスコア未処理の話題「音楽」を選択し、（２）において対話部２２２は質問文ＤＢ３２１から「音楽」のオープニング用の質問文テンプレートで質問を行い、（４）において対話部２２２は対話相手の発話中に含まれる名詞ワード「洋楽」と類似ワード「邦楽」とを用いた応答文テンプレートにより応答を行い、（５）において感情推定部２１は対話相手の感情が悪いと推定し、（７）において対話部２２２はスコアが３以上の話題「動物」に切り替えて対話を仕切り直す。
【００６５】
この対話制御処理１によれば、対話相手の感情が良好の間はスコア未処理の話題について機械学習を継続しつつ、感情が悪くなるとスコアが閾値以上の話題に切り替えて対話を継続するようにしている。このため、対話相手が好む話題を探りつつ、学習済みの対話相手が好む話題で対話を続けることができる。したがって、対話相手の趣味嗜好をおさえた上で対話相手が飽きずにコミュニケーションを楽しむことができる。
【００６６】
（対話制御処理２）
ここで、図９を参照しながら、対話制御処理２について説明する。この対話制御処理２の開始タイミングは、対話制御処理１と同じである。
【００６７】
まず、選択部２２１は、複数の話題のうち、スコアが最大の話題を選択する（ステップＳ３１）。図６の話題マップ３１の場合、選択部２２１は、話題としてスコアが最大の「食べ物」を選択する。
【００６８】
次に、対話部２２２は、選択した話題で対話する（ステップＳ３２）。対話部２２２は、上述した要領で、対話用ＤＢ３２（質問文ＤＢ３２１、応答文ＤＢ３２２）を用いて、対話を行う。
次に、感情推定部２１は、対話相手の感情を推定する（ステップＳ３３）。感情推定部２１は、上述した要領で、感情推定用ＤＢ３３（表情用ＤＢ３３１、韻律用ＤＢ３３２、テキスト用ＤＢ３３３）を用いて、対話制御装置１０が発話した直後又は対話相手が発話した直後に対話相手の感情を推定する。
【００６９】
次に、感情推定部２１は、推定した感情は良好か否か判定する（ステップＳ３４）。推定した感情が良好であれば（ステップＳ３４；Ｙｅｓ）、更新部２２４は選択中の話題のスコアを加算して更新する（ステップＳ３５）。その後、ステップＳ３２に戻って、対話相手との対話を続ける。
【００７０】
一方、推定した感情が良好でなければ（ステップＳ３４；Ｎｏ）、更新部２２４は、選択中の話題のスコアを減算して更新する（ステップＳ３６）。その後、対話制御部２２は、話題を全て選択済みか否か判定し（ステップＳ３７）、全て選択済みでなければ（ステップＳ３７；Ｎｏ）、ステップＳ３１に戻る。このステップＳ３１において、選択中の話題「食べ物」のスコア５に次ぐスコア４の話題「買い物」を選択することになる。
【００７１】
このように、話題マップ３１のスコアの更新をしながら、推定した感情が良好であればそのまま選択中の話題で対話を続け、良好じゃなければ次順位のスコアの話題に切り替えて対話を行う。なお、最大スコアと次順位スコアに続くスコアが全て０のような場合、ステップＳ３１において選択部２２１はスコア未処理の複数の話題の中からランダムに話題を１つ選択すればよい。
ここで、全ての話題を選択した場合（ステップＳ３７；Ｙｅｓ）、対話制御処理２を終了する。
ここで、対話制御処理２により対話相手と対話した場合の具体例３は以下のようになる。
【００７２】
（１）対話制御装置１０：「食べ物について話しをしましょう。」
（２）対話制御装置１０：「肉だと、豚肉、牛肉、鶏肉のうちどれが好きですか。」
（３）対話相手：「ダイエット中だから最近野菜中心なんだよね。」
（４）対話制御装置１０：「それでは、買い物について話しをしましょう。」
（５）対話制御装置１０：「最近何か買い物をしましたか。」
（６）対話相手「うーん、あまり買い物って気分じゃないから何も買ってない。」
（７）対話制御装置１０：「それでは、動物について話しをしましょう。」
（８）対話制御装置１０：「（対話相手の名前）さんは、どんな動物が見たいですか。」
（９）対話相手：「そうだな、ライオンが見たいな。」
（１０）対話制御装置１０：「ライオンって百獣の王なんですよね。」
【００７３】
この（１０）以降も対話は続く。一般的に、対話相手は、自身の感心が高い話題（上記具体例３ではスコアが高い「食べ物」と「買い物」の話題）であっても、聞かれたくないことや話したくないことがあり、感情は気分に応じて変化する。具体例３では、スコアが最も高い話題「食べ物」と次順位スコアの話題「買い物」について対話相手の感情が悪い場合の例である。
【００７４】
この対話制御処理２において、対話制御装置１０は、対話相手の感情が悪いと次順位の話題に切り替えるようにしている。すなわち、具体例３では、（３）の対話相手の返答「ダイエット中だから最近野菜中心なんだよね。」から話題を「食べ物」から「買い物」に切り替え、（６）の対話相手の返答「うーん、あまり買い物って気分じゃないから何も買ってない。」から話題を「買い物」から「動物」に切り替えている。
【００７５】
なお、（８）において、対話部２２２は、話題「動物」のオープニング用の質問文テンプレートに、学習した対話相手の名前を加えるようにしている。これにより、対話相手が対話制御装置１０に親しみを感じ、親密な関係が築きやすくなる。なお、推定した対話相手の感情が良好でなければ、話題を切り替える前に「そうですか、すみません。」などワンクッション入れるとよい。
【００７６】
以上、対話制御処理２によれば、対話制御装置１０は話題マップに基づいて、対話相手の感情が悪くなる都度、選択中の話題を除く話題の中で最大スコアの話題を選択して会話を続ける。このため、対話相手が飽きずにコミュニケーションを続けることができ、かつ、対話相手の趣味嗜好をおさえた上で対話相手の感情を害さずに会話をリードすることができる。
【００７７】
（対話制御処理３）
次に、対話制御処理３について、図１０を参照しながら説明する。この対話制御処理３の開始のタイミングは対話制御処理１と同じである。
まず、対話部２２２は、対話相手に話したい話題を質問する（ステップＳ４１）。例えば、対話部２２２は、質問文ＤＢ３２１を参照して、質問文テンプレート「何の話題について話しをしたいですか。」を、スピーカ４１を通して発話させる。
【００７８】
次に、対話部２２２は、対話相手から話題を受け付けたか否か判定する（ステップＳ４２）。対話部２２２は、マイク４０が収音した対話相手の音声をテキスト化して形態素解析後、複数の単語の中に話題が含まれるか否かにより上記判定を行う。
【００７９】
ここで、対話相手から話題を受け付けるまで待機し（ステップＳ４２；Ｎｏ）、話題を受け付けると（ステップＳ４２；Ｙｅｓ）、選択部２２１は、受け付けた話題を選択する（ステップＳ４３）。そして、対話部２２２は、選択した話題で対話を行い（ステップＳ４４）、感情推定部２１は、対話相手の感情を推定する（ステップＳ４５）。そして、感情推定部２１は、推定した感情は良好か否か判定する（ステップＳ４６）。ここで、推定した感情が良好であれば（ステップＳ４６；Ｙｅｓ）、更新部２２４が選択中の話題のスコアを加算して更新後（ステップＳ４７）、ステップＳ４４に戻って、推定した感情が悪くならない限り対話を続ける。
【００８０】
一方、推定した感情が良好でなければ（ステップＳ４６；Ｎｏ）、更新部２２４が選択中の話題のスコアを減算して更新後（ステップＳ４８）、選択部２２１は、選択中の話題のスコアよりも高いスコアがあるか否か判定する（ステップＳ４９）。
【００８１】
ここで、選択中の話題のスコアよりも高いスコアがあれば（ステップＳ４９；Ｙｅｓ）、選択部２２１は、高いスコアの話題を選択して（ステップＳ５０）、ステップＳ４４に戻る。そして、対話部２２２は、対話相手の感情が悪くならない限り選択した話題で対話を続ける（ステップＳ４４乃至ステップＳ４７のループ）。
【００８２】
一方、選択中の話題のスコアよりも高いスコアがなければ（ステップＳ４９；Ｎｏ）、対話制御処理３を終了する。なお、選択中の話題のスコアよりも高いスコアがない場合であっても、対話制御処理３を終了せずに、ランダムにスコア未処理の話題を選択して対話を続けてもよい。
【００８３】
以上、対話制御処理３では、対話相手が望む話題で対話を開始した後、対話相手が不快感を示すとその都度、選択中の話題よりもスコアが高い話題に切り替えて対話を続ける。この対話制御処理３により対話相手と対話した場合の具体例４は以下のようになる。
【００８４】
（１）対話制御装置１０：「何の話題について話しをしたいですか。」
（２）対話相手：「うーん、そうだな、旅行かな。」
（３）対話制御装置１０：「それでは、旅行について話しをしましょう。」
（４）対話制御装置１０：「最近、旅行に行きましたか。」
（５）対話相手：「最近、海に行ってきたよ。」
【００８５】
（６）対話制御装置１０：「海は、どんなところでしたか。」
（７）対話相手：「暑かったけど、エメラルドグリーンですごくきれいだったよ。」
（８）対話制御装置１０：「暑いと涼しいところに行きたいですよね。」
（９）対話相手：「夏の海だから暑くてもいいんだよ。」
（１０）対話制御装置１０：「そうですか。すみません」
（１１）対話制御装置１０：「それでは、買い物の話しをしませんか。」
（１２）対話相手：「いいよ、買い物の話しをしよう。」
【００８６】
この（１２）以降も対話は続く。この具体例４では、対話相手が望む話題「旅行」で対話を開始した後、対話部２２２は、（８）において、形容詞ワード「暑い」の応答文テンプレートで文脈に沿わない応答をした結果、（９）において対話相手が不快感を示している。その後、対話部２２２は、スコアが１の「旅行」よりもスコアが４で高い「買い物」に話題を切り替えて対話を続ける。
【００８７】
この対話制御処理３によれば、上記対話制御処理１及び２の効果を奏することに加えて、対話相手が今現在話したい話題で対話を開始できるので、対話相手の気分に最も合った会話をすることができ対話相手の満足度を向上することができる。
【００８８】
（対話制御処理４）
対話制御処理１乃至３は、話題マップ作成処理と対話制御処理とを分けて話題マップの作成段階（機械学習段階）と活用段階とを区別して説明したが、これに限られない。これらを区別せずに、即座に、対話制御処理を行って話題マップを作成しつつ、会話をリードするようにしてもよい。この場合の対話制御処理４について図１１を参照しながら説明する。なお、ステップＳ５１乃至ステップＳ５５は、話題マップ作成処理のステップＳ１１乃至ステップＳ１５と同じである。このため、以下では異なるステップを中心に説明する。
【００８９】
ステップＳ５１乃至ステップＳ５３において、対話制御部２２の各部（選択部２２１、対話部２２２）により、初期状態の話題マップ３１のうち、ランダムに選択された話題に基づいて対話相手と対話を行いその対話相手の感情を推定する。そして、推定した感情が良好である限り（ステップＳ５４でＹｅｓの間は）、選択中の話題のスコアを加算処理しながら対話を続ける（ステップＳ５２乃至ステップＳ５５のループ）。
【００９０】
ここで、対話中の対話相手の推定した感情が良好でなければ（ステップＳ５４；Ｎｏ）、選択部２２１は、話題を全て選択済みか否か判定する（ステップＳ５６）。話題を全て選択済みでなければ（ステップＳ５６：Ｎｏ）、ステップＳ５１に戻って、選択部２２１は、ランダムに一つの話題を選択して、ステップＳ５２以下の処理を繰り返す。一方、話題を全て選択済みであれば（ステップＳ５６；Ｙｅｓ）、対話制御処理４を終了する。
【００９１】
このように、この対話制御処理４では、ランダムに選択した話題で対話相手が不快感を示さない限り対話を行ってスコアの加算処理を行いながら、不快感を示したタイミングで未選択の別話題に切り替えて対話を続ける。これにより、対話を継続しながら徐々に話題マップを作成することができる。対話相手が不快感を示しても即座に別話題に切り替えるようにしているので、対話制御装置１０は対話相手の趣味嗜好を探る一方、対話相手は会話を長く楽しむことができる。
なお、この対話制御処理４においても、複数の話題のスコア処理が終わったタイミングで対話制御処理１乃至３に切り替えてもよい。
従って、個々のユーザは一般的に趣味嗜好が異なるが、実施形態によれば、ユーザ個人の趣味志向を踏まえて、ユーザが飽きずにコミュニケーションをつづけることができる。
【００９２】
以上で実施形態の説明を終了するが、上記実施形態は一例であり、対話制御装置１０の構成や対話制御処理１乃至４の内容などが上記実施形態で説明したものに限られないことはもちろんである。
【００９３】
例えば、上述した実施形態においては、感情推定部２１は、対話相手の表情、韻律、音声のテキストに基づいて感情を推定するようにしたが、これに限られない。例えば、感情推定部２１は、対話相手の非言語的な挙動（仕草）により感情を推定してもよい。具体的には、感情推定部２１は、対話相手が顔を縦に振れば感情を良好と推定し、対話相手が顔を横に振れば感情を良好でないと推定すればよい。
【００９４】
また、「対話」は音声を使用して互いに応答する例を説明したが、キーボードとディスプレイを使用して文字による対話を行うようにしても良い。例えば、対話制御装置１０をＰＣなどに組み込んで、ユーザ（対話相手）とＰＣ（対話制御装置１０）の間で上述したような具体例１〜４の会話を文字によるチャット感覚で楽しむようにしてもよい。この場合、音声の韻律による感情推定ができないが、カメラ４２を利用した対話相手の表情、対話文章の内容（感情の良し悪しを示す単語による感情推定）、あるいはキーボードタッチの速度や力強さなどから感情推定を行うことが可能である。
【００９５】
また、上述した実施形態において話題マップ３１は、対話制御装置１０が作成することを前提に説明したが、これに限られない。例えば、予め対話相手毎の話題マップをナレッジデータベースとなる外部サーバにアップしておき、対話制御装置１０が対話制御処理１乃至４において話題マップを参照する都度、外部サーバにアクセスして対話を行ってもよい。これにより、話題マップ作成の処理負担が減るとともに、対話制御装置１０の記憶領域を節約することができる。
【００９６】
また、上述した実施形態では、話題マップ３１は、一次元であることを例にとって説明したが、これに限られない。例えば、ｎ次元の話題マップを作成してもよい。ここでいう次元数は話題の特徴を示す特徴ベクトル数となる。例えば、話題が「投資」であれば、話題の特徴は娯楽性が低く実益があるという２次元の特徴ベクトルで表すことができる。図１２に、２次元の話題マップの例を示す。この話題マップは、話題の特徴（娯楽性と実益）を示す２本の特徴ベクトルで構成され、各話題（楕円形）はこの特徴に従って予めマッピングされている。図６の一次元の話題マップに従えば、対話相手が好む話題は実益大で娯楽性が高い第１象限の長方形で示される位置となる。
【００９７】
このため、選択部２２１は、スコア未処理の話題を選択する際、対話相手が好みそうな同じ第１象限の話題である「乗り物」を選んで対話を試みることができる。すなわち、長方形位置から一番距離が近い話題を選んで対話を試みることができる。このように、２次元の話題マップによれば、対話相手が好みそうな話題を予測することができ、対話相手の気分を害さずに会話を継続することができるようになる。２次元マップ作成にあたっては、話題マップ作成処理によりスコア処理した複数の話題のスコアに基づいて、距離を算出して好む話題の位置決めをすればよい。例えば、２つの話題のスコアが同じであれば２つの話題間の中央位置に、スコアが異なる場合は按分位置に、それぞれすればよい。なお、ベクトル数（次元数）を増やして、対話相手が好む話題の精度をあげてもよいことはもちろんである。
【００９８】
また、この発明の対話制御装置１０の各機能は、通常のＰＣ等のコンピュータによっても実施することができる。具体的には、上記実施形態では、対話制御装置１０が行う話題マップ作成処理と対話制御処理のプログラムが、制御部２０のＲＯＭに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）、ＤＶＤ（Digital Versatile Disc）及びＭＯ（Magneto-Optical Disc）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。さらに、この発明の対話制御装置１０をロボットに搭載すれば、コミュニケーション機能を備えたロボットを実現できる。
【００９９】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【０１００】
（付記１）
対話相手の感情を推定する感情推定手段と、
前記感情推定手段が推定した感情に基づいて選択した話題で、前記対話相手との対話を制御する対話制御手段と、
を備えたことを特徴とする対話制御装置。
【０１０１】
（付記２）
前記感情推定手段は、前記対話相手の表情又は該対話相手の音声の韻律に基づいて、該対話相手の感情を推定する、
ことを特徴とする付記１に記載の対話制御装置。
【０１０２】
（付記３）
前記対話制御手段は、前記話題を、前記感情推定手段が推定した感情の良し悪しに基づいて選択する、
ことを特徴とする付記１又は２に記載の対話制御装置。
【０１０３】
（付記４）
前記対話制御手段は、前記感情推定手段が推定した前記感情の良し悪しに基づいて、前記対話相手が好む話題を含む話題マップを作成する作成手段を備える、
ことを特徴とする付記１乃至３の何れか一つに記載の対話制御装置。
【０１０４】
（付記５）
前記話題マップは、複数の異なる話題を含み、前記対話相手の話題に対する関心の高さの度合いを示すスコアを、該複数の異なる話題に対応付けたものである、
ことを特徴とする付記４に記載の対話制御装置。
【０１０５】
（付記６）
前記対話制御手段は、さらに、
複数の異なる話題の中からランダムに一つの話題を選択する第１の選択手段と、
前記第１の選択手段が選択した話題に基づいて、前記対話相手と対話する第１の対話手段と、
を備え、
前記作成手段は、前記第１の対話手段が前記対話相手と対話中に前記感情推定手段が推定した感情の良し悪しに応じて、前記第１の選択手段が選択中の話題のスコアの加減算処理を行い、前記話題マップを作成する、
ことを特徴とする付記５に記載の対話制御装置。
【０１０６】
（付記７）
前記作成手段は、前記感情推定手段が推定した感情が良ければ選択中の話題のスコアの加算処理を行い、前記感情推定手段が推定した感情が悪ければ選択中の話題のスコアの減算処理を行う、
ことを特徴とする付記６に記載の対話制御装置。
【０１０７】
（付記８）
前記対話制御手段は、さらに、
前記感情推定手段が推定した前記感情が悪い場合、前記作成手段が作成した話題マップが含む複数の話題のうち、スコアが閾値以上の話題を選択する第２の選択手段と、
前記第２の選択手段が選択した話題に基づいて、前記対話相手と対話する第２の対話手段と、
を備える、
ことを特徴とする付記６又は７に記載の対話制御装置。
【０１０８】
（付記９）
前記対話制御手段は、さらに、
前記作成手段が作成した話題マップが含む複数の話題のうち、最もスコアが高い話題を選択する第２の選択手段と、
前記第２の選択手段が選択した話題に基づいて、前記対話相手と対話する第２の対話手段と、
を備え、
前記第２の選択手段は、前記感情推定手段が対話中の対話相手の感情を悪いと推定した場合、選択中の話題のスコアに次ぐスコアの話題を選択する、
ことを特徴とする付記６又は７に記載の対話制御装置。
【０１０９】
（付記１０）
前記対話制御手段は、さらに、
前記作成手段が作成した話題マップの複数の話題のうち、前記対話相手から受け付けた話題を選択する第２の選択手段と、
前記第２の選択手段が選択した話題に基づいて、前記対話相手と対話する第２の対話手段と、
を備え、
前記第２の選択手段は、前記感情推定手段が対話中の対話相手の感情を悪いと推定した場合、選択中の話題のスコアよりも高いスコアの話題を選択する、
ことを特徴とする付記６又は７に記載の対話制御装置。
【０１１０】
（付記１１）
前記対話制御手段は、さらに、
前記第２の対話手段が対話中の対話相手の感情の良し悪しに応じて、前記第２の選択手段が選択中の話題のスコアの加減算処理を行い、前記作成手段が作成した話題マップを更新する更新手段を備える、
ことを特徴とする付記８乃至１０の何れか一つに記載の対話制御装置。
【０１１１】
（付記１２）
前記第１の対話手段及び第２の対話手段は、前記対話相手に対して、選択中の話題に関する質問、前記対話相手からの話題に関する発話への応答又は該話題に関して検索した情報の発話を行う、
ことを特徴とする付記８乃至１１の何れか一つに記載の対話制御装置。
【０１１２】
（付記１３）
前記話題マップは、話題の特徴を示す特徴ベクトルの数をｎとしたとき、ｎ次元の特徴ベクトルで構成される、
ことを特徴とする付記４に記載の対話制御装置。
【０１１３】
（付記１４）
対話相手の感情を推定する感情推定ステップと、
前記感情推定ステップにおいて推定した感情に応じた話題で、前記対話相手との対話を制御する対話制御ステップと、
を備えたことを特徴とする対話制御方法。
【０１１４】
（付記１５）
コンピュータを、
対話相手の感情を推定する感情推定手段、
前記感情推定手段が推定した感情に応じた話題で、前記対話相手との対話を制御する対話制御手段、
として機能させるためのプログラム。
【符号の説明】
【０１１５】
１０…対話制御装置、２０…制御部、２１…感情推定部、２２…対話制御部、２２１…選択部、２２２…対話部、２２３…話題マップ作成部、２２４…更新部、３０…記憶部、３１…話題マップ、３２…対話用ＤＢ、３２１…質問文ＤＢ、３２２…応答文ＤＢ、３３…感情推定用ＤＢ、３３１…表情用ＤＢ、３３２…韻律用ＤＢ、３３３…テキスト用ＤＢ、３５…キーワードテーブル、４０…マイク、４１…スピーカ、４２…カメラ
【図１】
0006601069.tif 000002
【図２】
0006601069.tif 000003
【図３】
0006601069.tif 000004
【図４】
0006601069.tif 000005
【図５】
0006601069.tif 000006
【図６】
0006601069.tif 000007
【図７】
0006601069.tif 000008
【図８】
0006601069.tif 000009
【図９】
0006601069.tif 000010
【図１０】
0006601069.tif 000011
【図１１】
0006601069.tif 000012
【図１２】
0006601069.tif 000013