(58)【調査した分野】(Int.Cl.,DB名)
前記対話制御手段は、前記感情推定手段により推定された相手の感情が悪い場合、前記話題マップから選択した話題を別の話題に切り替える、請求項1に記載の対話制御装置。
前記話題マップ更新手段は、前記相手との対話中に推定された相手の感情の良し悪しに基づいて、前記選択された話題に関連付けられた前記話題マップの前記スコアに加減算を行うとともに、相手の感情が良くなる話題を学習して前記話題マップを更新する、請求項1から3の何れか1項に記載の対話制御装置。
前記対話制御手段は、前記複数の話題のうちの、前記スコアが1度も更新されていない話題であるスコア未更新話題を選択するような場合、前記話題マップにおける前記スコアの高い話題の位置に対する前記スコア未更新話題の位置関係に基づいて、前記スコア未更新話題の選択を実行する、請求項1から4の何れか1項に記載の対話制御装置。
前記対話制御手段は、複数の前記スコア未更新話題から話題を選択するような場合、前記複数のスコア未更新話題のうち、前記話題マップにおいて前記スコアの高い話題の最も近くに位置する前記スコア未更新話題を選択する、請求項5に記載の対話制御装置。
【発明を実施するための形態】
【0010】
以下、
図1を参照しながら、本発明の実施形態に係る対話制御装置の概要について説明する。この対話制御装置10は、対話相手との物理インターフェイスとして、対話相手の音声を収音するマイク40、対話相手に音声出力するスピーカ41、対話相手を撮影するカメラ42を備えている。
対話制御装置10は、マイク40の音声とカメラ42の画像とから感情推定を行って、推定した感情に応じた話題による対話を、スピーカ41を通して行う。
【0011】
なお、対話エンジンである対話制御装置10をロボットに適用してもよい。この対話制御装置10は、人との対話を必要とする、およそ全ての場面に適用可能な人工知能であって、適用範囲はカーナビ、スマホの対話型アプリ、デジタルの2次元キャラクタなど幅広い。また、以下の説明において、「対話」、「会話」、「コミュニケーション」の各用語は、自然言語でインタラクティブに情報のやりとりをするという意味で全て同義であるものとする。
【0012】
対話制御装置10は、対話相手との物理インターフェイス(マイク40、スピーカ41、カメラ42)に加えて、制御部20と記憶部30とを備える。
【0013】
制御部20は、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)などで構成される。制御部20は、ROMに記憶されたプログラム(例えば、後述する話題マップ作成処理や対話制御処理に係るプログラム)を実行することにより、各部(感情推定部21、対話制御部22)の機能を実現する。
【0014】
記憶部30は、ハードディスクやフラッシュメモリなどの不揮発性メモリであって、各種Data Base(対話用DB32、感情推定用DB33)を記憶する。これらDBについては後述する。
【0015】
さて、次に、制御部20の機能について説明する。
制御部20は、機能として、感情推定部21と対話制御部22とを備える。
【0016】
感情推定部21は、対話相手の感情を推定する。感情推定部21は、感情推定用DB33(表情用DB331、韻律用DB332、テキスト用DB333)と、カメラ42が撮影した対話相手の顔画像と、マイク40が収音した対話相手の音声と、から対話相手の感情を推定する。
【0017】
表情用DB331は、予め多量のサンプルを機械学習して得られた表情毎のテンプレート画像を記憶するデータベースである。感情推定部21は、カメラ42が撮影した対話相手の顔画像とテンプレート画像のマッチングにより対話相手の感情を推定する。この実施形態では、感情として、喜び、恐れ、嫌悪、怒り、悲しみ、驚きの基本的な6感情を推定するものとする。
【0018】
韻律用DB332は、韻律(声の高さ、音量、イントネーション、リズム、ポーズなどのしゃべり方の特徴)を、感情毎に対応付けて記憶するデータベースである。感情推定部21は、マイク40が収音した対話相手の音声から韻律を抽出して、抽出した韻律と韻律用DB332とから対話相手の感情を推定する。
【0019】
テキスト用DB333は、感情を示す単語(名詞や形容詞など)を、感情毎に対応付けて記憶するデータベースである。例えば、名詞「合格」、「優勝」は感情「喜び」と対応付け、形容詞「残念だ」、「つまらない」は感情「悲しみ」と対応付けておく。感情推定部21は、マイク40が収音した音声をテキスト化して形態素解析により単語に分解して、テキスト用DB333を参照して感情を推定する。
【0020】
感情推定部21は、これら何れかのDB(表情用DB331、韻律用DB332、テキスト用DB333)を単独で又は併用して対話相手の感情を推定する。表情による感情推定のタイミングは、後述する対話部222が発話した直後に毎回行う。発話後しばらくたった後よりも直後の方が聞き手である対話相手の感情が表情にでやすいからである。また、韻律とテキストによる感情推定は、対話相手が発話する都度行う。
【0021】
さて、次に、対話制御部22の機能について説明する。
この対話制御部22は、感情推定部21が推定した感情の良し悪しに基づいて選択した話題で、対話相手との対話を制御する。この対話制御部22は、選択部221、対話部222、話題マップ作成部223、更新部224を備える。なお、選択部221は第1及び第2の選択手段に、対話部222は第1及び第2の対話手段に、それぞれ相当する。以下では、まず、(i)対話相手の趣味嗜好を探って学習することで話題マップを作成する段階(作成段階)について説明した上で、次に、(ii)作成した話題マップを活用して対話相手との対話を制御する段階(活用段階)について説明する。
【0022】
選択部221は、複数の異なる話題の中からランダムに一つの話題を選択する。具体的には、選択部221は、
図2が示すスコア処理前の話題マップ31中の話題の中からランダムに一つの話題を選択する。この話題マップ31は、対話相手の話題に対する関心の高さの度合いを示すスコアを、複数の異なる話題(図中の例では、食べ物、旅行、動物など)に対応付けた一次元のテーブルである。なお、初期状態では、スコアは全て0である。
【0023】
次に、対話部222は、選択部221が選択した話題に基づいて、対話相手と対話する。この対話の手法は任意だが、この実施形態では対話用DB32が含む対話用の各DB(質問文DB321、応答文DB322)を用いて対話相手と対話する。ここでの対話とは、一つのタスク(例えば、予約受付や道案内など)を達成するためのタスク指向型ではなく、雑談などの話しを続けることを企図した非タスク指向型の対話である。
【0024】
この非タスク指向型の対話は未だ発展途上であるものの、この実施形態では様々な話題を扱うために話題別に数万パターンの質問候補、応答候補を予めDBに用意しておく。これら質問・応答は、
図3に示すキーワードテーブル35を活用して行う。このキーワードテーブル35は、単語辞書などに基づいて作成され、話題毎に名詞ワードと形容詞ワードを対応付けたものである。名詞ワードは話題に関連する名詞を、形容詞ワードは話題に関連する形容詞を、それぞれ示す。
【0025】
図3に示すキーワードはごく一部であって、実際は各話題につき対話に必要な数万キーワード用意しておく。また、キーワード毎に上下関係(野菜であれば、上位概念たる野菜が下位概念たるキャベツ、タマネギを含むなど)と、類似関係(うどんとラーメンは麺類で類似するなど)と、を対応付けておく。また、対話制御部22は、対話相手から不知の単語が発話された場合、その単語を新たなキーワード(例えば、対話相手の名前など)を追加して学習していくとよい。
【0026】
さて、質問文DB321は、話題毎に複数の異なる質問文のテンプレートを記憶したデータベースである。対話部222は、会話のオープニングで質問する場合、対話相手からの応答に対して質問する場合、ある話題において対話相手からの無音区間が続いた場合、など質問文DB321から質問文テンプレートを選択して質問をスピーカ41から発話させる。
【0027】
図4に話題「食べ物」の質問文テンプレートのバリエーションの一例を示す。この質問文テンプレートは、キーワード(名詞ワード・形容詞ワード)を当てはめる形式であって、下位ワードは上位概念のキーワードに含まれるキーワードである。対話部222は、キーワードテーブル35から「食べ物」に関するキーワードをランダムに、あるいは対話相手からの発話中に含まれる「食べ物」のキーワードを使って、質問文テンプレートを作成して発話する。
【0028】
次に、応答文DB322は、話題毎に複数の異なる応答文のテンプレートを記憶したデータベースである。応答文テンプレートは、例えばXML(Extensible Markup Language)などのマークアップ言語で記述することができる。具体的には、AIML(Artificial Intelligence Markup Language)で記述しておき、対話部222は、対話相手の発話中にキーワード(名詞ワード・形容詞ワード)が含まれる場合は、そのキーワードを用いた応答用のテンプレートで応答する。
【0029】
図5に話題「食べ物」の応答文テンプレートのバリエーションの一例を示す。応答文テンプレートは、対話相手の発話中にキーワードテーブル35が含むキーワードがあれば、そのキーワード(名詞ワード・形容詞ワード)をあてはめて応答する形式となっている。なお、類似ワードとはキーワードテーブル35において類似関係にあるキーワード(うどんとラーメンなど)をいう。カテゴリの種別(共感、自己開示、情報提供)は一例であって、これ以上の種別を設けてもよい。
【0030】
例えば、話題「食べ物」について対話相手の発話中に「ラーメン」というキーワードがあった場合、対話部222は、共感用の応答文テンプレートとして「ラーメンはおいしいですよね。私も好きです。」や自己開示用の応答文テンプレートとして「私は、ラーメンよりもうどんの方が好きです。」、質問文テンプレートとして「何味のラーメンが好きなんですか。」といった具合に応答することになる。これらテンプレートのうち、何れを選ぶかはランダムで選択するか、あるいは対話履歴からの文脈や優先順位に応じて選択すればよい。
【0031】
ここで、情報提供とは、インターネットでの検索結果に係る情報を提供する際のテンプレートである。この情報提供に係る情報(場所の固有名詞など)は、対話部222が対話相手からの検索要求をトリガとして又は対話中の適宜なタイミングで能動的に取得する。そして、対話部222は、取得した情報を情報提供用の応答テンプレートに当てはめて発話する。
【0032】
なお、1つの応答文テンプレートは、汎用性を高める観点から複数のキーワードで共通して用いるようにしているが、これに限られない。特定のキーワードに対応する独自の応答文を対応付けてもよい。例えば、話題「動物」の名詞ワード「ライオン」に、「タテガミがあるのは雄のライオンだけなんですよね。」や「ライオンって百獣の王なんですよね。」といった具合にライオン独自の応答文テンプレートを複数対応付けておき、ランダムに選択して発話してもよい。
【0033】
以上、対話部222は、質問文DB321と応答文DB322とに含まれる、話題別の数万パターンの質問文・応答文テンプレートを使用して、一問一答ではない、少なくとも数ターンの会話を話題毎に行う。以下ではこれら各DBを用いて、対話部222が対話相手と対話する場合の具体例1を、選択部221が話題「食べ物」を選択した場合で説明する。なお、対話は時系列に沿って(1)(2)などと符号を付す。
【0034】
(1)対話制御装置10:「食べ物について話しをしましょう。」
(2)対話制御装置10:「好きな食べ物は何ですか。」
(3)対話相手:「うどんが好きかな。」
(4)対話制御装置10:「うどんはおいしいですよね。私も好きです。」
(5)対話制御装置10:「他においしいと思う食べ物はありますか。」
【0035】
(6)対話相手:「とんかつも好きかな。」
(7)対話制御装置10:「とんかつはおいしいですよね。同感です。」
(8)対話制御装置10:「上野に、とんかつのおいしいお店がありますよ。」
(9)対話相手:「へー何て店。」
(10)対話制御装置10:「店舗名は、○○です。」
【0036】
(11)対話相手:「いつ開いているの。」
(12)対話制御装置10:「朝10時〜夜9時まで開いています。」
(13)対話相手:「分かった。今度行ってみるよ。ありがとう。」
(14)対話制御装置10:「どういたしまして。」
【0037】
この具体例1では、対話部222は、(1)で選択部221が選択した話題である「食べ物」について話しをするためのオープニングを行い、(2)で質問文DB321から「食べ物」についてオープニング用の質問文テンプレートを選択して質問を行い、(4)及び(7)で応答文DB322から「食べ物」の共感用の応答文テンプレートで応答を行い、(8)で対話相手が発話した「食べ物」の名詞ワード(具体例1では「とんかつ」)に対する検索を行って情報提供を行い、(10)及び(12)で対話相手からの質問に対して情報提供し、最後に(14)で応答文DB322からキーワード「ありがとう」に対する応答文テンプレート「どういたしまして。」と応答する。なお、キーワードテーブル35と応答文DB322は、話題に関するキーワードと応答文テンプレート以外に、あいさつなどの話題に関係のない日常のシナリオ毎にキーワードと応答文テンプレートを用意しておく。
【0038】
この具体例1にように非タスク指向型の会話シナリオは千差万別であるものの、対話部222は対話用DB32(質問文DB321、応答文DB322)を適宜組み合わせて上記(1)〜(14)のような話題に対する対話を行う。なお、品詞(名詞・形容詞など)や疑問文かなどは、マイク40が収音した対話相手からの発話をテキスト化して形態素解析をすればよい。
【0039】
また、対話部222が自律的に検索をするタイミングは、対話相手から所定数以上の名詞(上記具体例1では二つ目の名詞「とんかつ」)が得られたタイミングなど予め規則(検索タイミングのルール)を設定しておけばよく、設計事項となる。また、音声認識により得られた対話相手からの発話が曖昧であれば、確認応答(例えば、「(名詞ワード)のことですか。」などと聞き返す)などエラーハンドリングも適宜行うとよい。
【0040】
ここで、感情推定部21は、上記対話の具体例1において、対話制御装置10が発話する都度(例えば、「好きな食べ物は何ですか。」と対話相手に聞いた直後)に対話相手の感情を、表情用DB331を用いて推定する。さらに、感情推定部21は、対話相手が発話する都度(例えば、対話相手が「分かった。今度行ってみるよ。ありがとう。」と言ったら)、韻律用DB332とテキスト用DB333とを用いて対話相手の感情を推定する。これにより、対話相手の感情を、対話制御装置10が発話したタイミング及び対話相手が発話したタイミングで推定することができる。
【0041】
さて、
図1に戻って、話題マップ作成部223は、対話相手の感情を害さずに会話をリードするための話題マップを作成する。具体的には、話題マップ作成部223は、対話部222が対話相手と対話中に感情推定部21が推定した感情の良し悪しに応じて、選択部221が選択中の話題のスコアの加減算処理を行う。
【0042】
なお、話題マップ作成部223は、対話相手毎に話題マップを作成するが、理解を容易にするために、対話相手が一人である場合を例にとって説明する。また、この一人の対話相手の趣味嗜好を示した話題マップ31を特段特定して説明する必要がなければ、一般論として単に話題マップと称して以下説明する。また、一例として、感情が良い場合を、楽しい、嬉しいなどが感得できるポジティブな「喜び」とし、感情が悪い場合を、つまらない、落胆などが感得できるネガティブな「恐れ、嫌悪、怒り、悲しみ」として説明する。
【0043】
話題マップ作成部223は、感情推定部21が推定した感情が良ければ選択中の話題のスコアの加算処理を行い、感情推定部21が推定した感情が悪ければ選択中の話題のスコアの減算処理を行う。例えば、上記具体例1で、「上野に、とんかつのおいしいお店がありますよ。」と対話制御装置10が発話した直後の対話相手の感情が「喜び」であれば、話題マップ作成部223は、話題マップ31において選択中の話題である食べ物のスコアを+1する。
【0044】
一方、具体例1とは別に、「好きな食べ物は何ですか。」との問いに対して対話相手から「何でそんなこと聞くの。」との返答があり、韻律から感情「嫌悪」が推定された場合、話題マップ作成部223は、話題マップ31において選択中の話題である食べ物のスコアを−1する。このように、話題マップ作成部223は、選択中の話題の対話中に対話相手の感情が推定される都度、加減算処理を行ってスコア処理を行う。このスコア処理を話題毎に行って、
図6に示したような話題マップ31を作成する。
【0045】
さて、
図1に戻って、更新部224は、話題マップ作成部223が作成した話題マップ31の各スコアを、対話中の対話相手の感情の良し悪しに応じて更新する。この更新部224については後述する。
【0046】
以上が対話制御部22の各部の機能についての説明である。以下では、
図7を参照しながら、話題マップ作成処理について説明する。この話題マップ作成処理は、話題マップ31が初期状態の段階で対話制御装置10が対話相手と対話する際に(例えば、対話相手が対話制御装置10の対話機能をオンしたことをトリガとして)行われる。対話制御装置10は、対話相手の趣味嗜好を機械学習しなければ対話相手の感情を良好のまま会話をすることが困難である。このため、話題マップの活用段階に先立って話題マップ作成処理を行う。
【0047】
まず、選択部221は、ランダムに一つの話題を選択する(ステップS11)。次に、対話部222は、選択した話題に基づいて、対話相手と対話する(ステップS12)。具体的には、対話部222は、上述した要領で、対話用DB32(質問文DB321、応答文DB322)を用いて上記具体例1の(1)〜(14)のような対話を行う。
【0048】
その間、感情推定部21は、対話相手の感情を推定する(ステップS13)。具体的には、感情推定部21は、上述した要領で、感情推定用DB33(表情用DB331、韻律用DB332、テキスト用DB333)を用いて、対話相手の感情を、対話制御装置10の発話直後か、対話相手の発話直後に推定する。
【0049】
次に、話題マップ作成部223は、推定した感情は良好か否かの良否判定を行う(ステップS14)。話題マップ作成部223は、推定した感情が良好であれば(ステップS14;Yes)、選択中の話題のスコアの加算処理を行い(ステップS15)、一方で推定した感情が良好でなければ(ステップS14;No)、選択中の話題のスコアの減算処理を行う(ステップS16)。
【0050】
ステップS15又はステップS16の後、話題マップ作成部223は対話終了か否か判定し(ステップS17)、終了していなければ(ステップS17;No)、ステップS12に戻る。すなわち、対話が終了するまで、ステップS12乃至ステップS16の処理を繰り返して、対話中の感情推定の度にスコア処理を行う。なお、対話終了か否かは、例えば、所定のターン数以上対話を行い、かつ、それ以降の対話相手からの無音期間が所定期間経過した場合などにすればよい。所定のターン数以下であっても、対話相手から「その話題については話したくない。」「興味がない。」など会話を続ける意思がないことが明らかな発話があれば対話を強制終了しても構わないし、減算されたスコアが所定値(例えば、−5)に達すれば強制終了しても構わない。対話終了のタイミングは適宜設計しうる事項である。
【0051】
ここで、対話が終了すると(ステップS17;Yes)、ステップS11に戻って、選択中の話題を別の話題に切り替えて、ステップS12以下の処理を繰り返す。例えば、上記具体例1において、(1)〜(14)の対話終了時点で「食べ物」に対するスコアが
図6の話題マップ31が示す5である。その後、話題マップ作成部223は、「食べ物」以外の話題に切り替えて対話を続ける。このように、話題マップ作成部223が話題を切り替えて対話を繰り返して作成したのが
図6に示す話題マップ31である。
【0052】
なお、対話は上記具体例1のように終了するとは限らない。例えば、対話の自然な流れで別話題になることもあるし、対話相手から突然この話題について話したいと提案されることもある。このような割り込み処理がある場合に備えて、選択中の話題に対する対話中に対話相手から別話題に関連する単語が発話されれば、それをトリガに別話題に切り替えてもよい。
【0053】
例えば、上記具体例1において、対話制御装置10が「上野に、おいしいとんかつのお店がありますよ。」と発話したことに対して対話相手から「へーそうなんだ、そういえば最近上野のアメ横で買い物してないな。」と返答があれば、対話部222は、「買い物」をキーワードに、「食べ物」から「買い物」への話題に切り替えて対話を続けるようにする。この場合、選択中であった食べ物のスコアは別話題に切り替えるまでのスコアとなる。
【0054】
以上が話題マップ作成処理についての説明である。ここで、
図6の話題マップ31は、全話題についてスコア処理されていない。これは話題マップを活用して対話相手と対話できる程度に趣味嗜好が分かればよく、話題マップ作成のための学習段階から話題マップを活用した対話制御処理に遷移するタイミングは適宜設定できるからでる。例えば、話題マップ作成処理を何度か繰り返してスコアが3以上の話題が3つになった段階で話題マップを活用する段階に遷移してもよいし、全話題につきスコア処理がされた段階で活用段階に遷移してもよい。
【0055】
以下では、作成された話題マップ(
図6の話題マップ31)を活用して、対話相手の趣味嗜好をおさえて会話をリードする対話制御処理1乃至3のバリエーションについて順に説明する。なお、活用段階においては話題マップ作成部223を除く、選択部221(第2の選択手段)、対話部222(第2の対話手段)、更新部224が機能する。対話部222の機能は話題マップの作成段階と同じである。
【0056】
(対話制御処理1)
ここで、
図8を参照しながら、対話制御処理1について説明する。この対話制御処理1は、話題マップ作成段階から活用段階に遷移した後、対話制御装置10が対話相手をカメラ42により撮影したことをトリガとして行われる。
【0057】
まず、感情推定部21は、カメラ42により撮影した対話相手の推定した感情は良好か否か判定する(ステップS21)。推定した感情が良好であれば(ステップS21;Yes)、選択部221は、スコア未処理の話題をランダムに一つ選択する(ステップS22)。例えば、選択部221は、話題マップ31のうちスコアが0の話題(音楽、芸能、投資)のうち、音楽を選択する。
【0058】
一方、推定した感情が良好でなければ(ステップS21:No)、選択部221は、スコアが閾値以上の話題を選択する(ステップS23)。閾値がスコア3であれば、選択部221は、話題マップ31のうちスコアが3以上の話題(食べ物、動物、買い物)のうち、ランダムに動物を選択する。この閾値は、対話相手が好む話題と言える目安の値にするとよい。
【0059】
ステップS22又はステップS23の後、対話部222は、選択した話題に基づいて、対話相手と対話する(ステップS24)。このように、ステップS21乃至ステップS24では、対話前に推定した対話相手の感情に応じて、選択する話題を切り替えて対話を開始するようにしている。
【0060】
さて、選択した話題で対話を開始すると、感情推定部21は、対話相手の感情を推定して、推定した感情は良好か否か判定する(ステップS25)。推定した感情が良好であれば(ステップS25;Yes)、更新部224は、スコアを加算して更新するとともに(ステップS26)、対話部222は、対話終了か否か判定する(ステップS27)。対話終了していなければステップS25に戻って、対話中の対話相手の感情が良好の間は選択した話題で対話を続ける(ステップS25乃至ステップS27のループ)。推定した感情が良好のまま対話を終了すると(ステップS27;Yes)、選択部221は、スコア未処理の話題を全て選択済みか否か判定する(ステップS28)。スコア未処理の話題を全て選択済みでなければ(ステップS28;No)、ステップS22に戻る。一方、スコア未処理の話題を全て選択済みの場合(ステップS28;Yes)、処理を終了する。
【0061】
一方、選択した話題で対話中に、推定した対話相手の感情が良好でなくなった場合(ステップS25;No)、更新部224は、スコアを減算して更新するとともに(ステップS29)、選択部221は、スコアが閾値以上の話題があるか否か判定する(ステップS30)。スコアが閾値以上の話題があれば(ステップS30;Yes)、ステップS23に戻る。一方で、スコアが閾値以上の話題がなければ(ステップS30;No)、処理を終了する。
【0062】
この対話制御処理1によれば、感情が良好の間は選択中の話題(スコア未処理の話題)で対話して話題マップを更新する一方、感情が悪くなるとスコアが閾値以上の話題に切り替えて対話を継続するようにしている。この対話制御処理1により対話相手と対話した場合の具体例2は以下のようになる。この具体例2は、ステップS21において、対話制御装置10がカメラ42で対話相手を最初に捉えた際に、対話相手の感情が良好と判定された場合を想定している。
【0063】
(1)対話制御装置10:「音楽について話しをしましょう。」
(2)対話制御装置10:「好きな音楽のジャンルは何ですか。」
(3)対話相手:「洋楽かな。」
(4)対話制御装置10:「私は、洋楽よりも邦楽の方が好きです。」
(5)対話相手:「ふーん。邦楽はあまり好きじゃないな。」
(6)対話制御装置10:「そうですか、すみません。」
(7)対話制御装置10:「それでは、動物について話しをしましょう。」
(8)対話相手:「動物いいね。話しをしようよ。」
(9)対話制御装置10:「好きな動物は何ですか。」
【0064】
この(9)以降も対話は続く。この具体例2の(1)において選択部221はスコア未処理の話題「音楽」を選択し、(2)において対話部222は質問文DB321から「音楽」のオープニング用の質問文テンプレートで質問を行い、(4)において対話部222は対話相手の発話中に含まれる名詞ワード「洋楽」と類似ワード「邦楽」とを用いた応答文テンプレートにより応答を行い、(5)において感情推定部21は対話相手の感情が悪いと推定し、(7)において対話部222はスコアが3以上の話題「動物」に切り替えて対話を仕切り直す。
【0065】
この対話制御処理1によれば、対話相手の感情が良好の間はスコア未処理の話題について機械学習を継続しつつ、感情が悪くなるとスコアが閾値以上の話題に切り替えて対話を継続するようにしている。このため、対話相手が好む話題を探りつつ、学習済みの対話相手が好む話題で対話を続けることができる。したがって、対話相手の趣味嗜好をおさえた上で対話相手が飽きずにコミュニケーションを楽しむことができる。
【0066】
(対話制御処理2)
ここで、
図9を参照しながら、対話制御処理2について説明する。この対話制御処理2の開始タイミングは、対話制御処理1と同じである。
【0067】
まず、選択部221は、複数の話題のうち、スコアが最大の話題を選択する(ステップS31)。
図6の話題マップ31の場合、選択部221は、話題としてスコアが最大の「食べ物」を選択する。
【0068】
次に、対話部222は、選択した話題で対話する(ステップS32)。対話部222は、上述した要領で、対話用DB32(質問文DB321、応答文DB322)を用いて、対話を行う。
次に、感情推定部21は、対話相手の感情を推定する(ステップS33)。感情推定部21は、上述した要領で、感情推定用DB33(表情用DB331、韻律用DB332、テキスト用DB333)を用いて、対話制御装置10が発話した直後又は対話相手が発話した直後に対話相手の感情を推定する。
【0069】
次に、感情推定部21は、推定した感情は良好か否か判定する(ステップS34)。推定した感情が良好であれば(ステップS34;Yes)、更新部224は選択中の話題のスコアを加算して更新する(ステップS35)。その後、ステップS32に戻って、対話相手との対話を続ける。
【0070】
一方、推定した感情が良好でなければ(ステップS34;No)、更新部224は、選択中の話題のスコアを減算して更新する(ステップS36)。その後、対話制御部22は、話題を全て選択済みか否か判定し(ステップS37)、全て選択済みでなければ(ステップS37;No)、ステップS31に戻る。このステップS31において、選択中の話題「食べ物」のスコア5に次ぐスコア4の話題「買い物」を選択することになる。
【0071】
このように、話題マップ31のスコアの更新をしながら、推定した感情が良好であればそのまま選択中の話題で対話を続け、良好じゃなければ次順位のスコアの話題に切り替えて対話を行う。なお、最大スコアと次順位スコアに続くスコアが全て0のような場合、ステップS31において選択部221はスコア未処理の複数の話題の中からランダムに話題を1つ選択すればよい。
ここで、全ての話題を選択した場合(ステップS37;Yes)、対話制御処理2を終了する。
ここで、対話制御処理2により対話相手と対話した場合の具体例3は以下のようになる。
【0072】
(1)対話制御装置10:「食べ物について話しをしましょう。」
(2)対話制御装置10:「肉だと、豚肉、牛肉、鶏肉のうちどれが好きですか。」
(3)対話相手:「ダイエット中だから最近野菜中心なんだよね。」
(4)対話制御装置10:「それでは、買い物について話しをしましょう。」
(5)対話制御装置10:「最近何か買い物をしましたか。」
(6)対話相手「うーん、あまり買い物って気分じゃないから何も買ってない。」
(7)対話制御装置10:「それでは、動物について話しをしましょう。」
(8)対話制御装置10:「(対話相手の名前)さんは、どんな動物が見たいですか。」
(9)対話相手:「そうだな、ライオンが見たいな。」
(10)対話制御装置10:「ライオンって百獣の王なんですよね。」
【0073】
この(10)以降も対話は続く。一般的に、対話相手は、自身の感心が高い話題(上記具体例3ではスコアが高い「食べ物」と「買い物」の話題)であっても、聞かれたくないことや話したくないことがあり、感情は気分に応じて変化する。具体例3では、スコアが最も高い話題「食べ物」と次順位スコアの話題「買い物」について対話相手の感情が悪い場合の例である。
【0074】
この対話制御処理2において、対話制御装置10は、対話相手の感情が悪いと次順位の話題に切り替えるようにしている。すなわち、具体例3では、(3)の対話相手の返答「ダイエット中だから最近野菜中心なんだよね。」から話題を「食べ物」から「買い物」に切り替え、(6)の対話相手の返答「うーん、あまり買い物って気分じゃないから何も買ってない。」から話題を「買い物」から「動物」に切り替えている。
【0075】
なお、(8)において、対話部222は、話題「動物」のオープニング用の質問文テンプレートに、学習した対話相手の名前を加えるようにしている。これにより、対話相手が対話制御装置10に親しみを感じ、親密な関係が築きやすくなる。なお、推定した対話相手の感情が良好でなければ、話題を切り替える前に「そうですか、すみません。」などワンクッション入れるとよい。
【0076】
以上、対話制御処理2によれば、対話制御装置10は話題マップに基づいて、対話相手の感情が悪くなる都度、選択中の話題を除く話題の中で最大スコアの話題を選択して会話を続ける。このため、対話相手が飽きずにコミュニケーションを続けることができ、かつ、対話相手の趣味嗜好をおさえた上で対話相手の感情を害さずに会話をリードすることができる。
【0077】
(対話制御処理3)
次に、対話制御処理3について、
図10を参照しながら説明する。この対話制御処理3の開始のタイミングは対話制御処理1と同じである。
まず、対話部222は、対話相手に話したい話題を質問する(ステップS41)。例えば、対話部222は、質問文DB321を参照して、質問文テンプレート「何の話題について話しをしたいですか。」を、スピーカ41を通して発話させる。
【0078】
次に、対話部222は、対話相手から話題を受け付けたか否か判定する(ステップS42)。対話部222は、マイク40が収音した対話相手の音声をテキスト化して形態素解析後、複数の単語の中に話題が含まれるか否かにより上記判定を行う。
【0079】
ここで、対話相手から話題を受け付けるまで待機し(ステップS42;No)、話題を受け付けると(ステップS42;Yes)、選択部221は、受け付けた話題を選択する(ステップS43)。そして、対話部222は、選択した話題で対話を行い(ステップS44)、感情推定部21は、対話相手の感情を推定する(ステップS45)。そして、感情推定部21は、推定した感情は良好か否か判定する(ステップS46)。ここで、推定した感情が良好であれば(ステップS46;Yes)、更新部224が選択中の話題のスコアを加算して更新後(ステップS47)、ステップS44に戻って、推定した感情が悪くならない限り対話を続ける。
【0080】
一方、推定した感情が良好でなければ(ステップS46;No)、更新部224が選択中の話題のスコアを減算して更新後(ステップS48)、選択部221は、選択中の話題のスコアよりも高いスコアがあるか否か判定する(ステップS49)。
【0081】
ここで、選択中の話題のスコアよりも高いスコアがあれば(ステップS49;Yes)、選択部221は、高いスコアの話題を選択して(ステップS50)、ステップS44に戻る。そして、対話部222は、対話相手の感情が悪くならない限り選択した話題で対話を続ける(ステップS44乃至ステップS47のループ)。
【0082】
一方、選択中の話題のスコアよりも高いスコアがなければ(ステップS49;No)、対話制御処理3を終了する。なお、選択中の話題のスコアよりも高いスコアがない場合であっても、対話制御処理3を終了せずに、ランダムにスコア未処理の話題を選択して対話を続けてもよい。
【0083】
以上、対話制御処理3では、対話相手が望む話題で対話を開始した後、対話相手が不快感を示すとその都度、選択中の話題よりもスコアが高い話題に切り替えて対話を続ける。この対話制御処理3により対話相手と対話した場合の具体例4は以下のようになる。
【0084】
(1)対話制御装置10:「何の話題について話しをしたいですか。」
(2)対話相手:「うーん、そうだな、旅行かな。」
(3)対話制御装置10:「それでは、旅行について話しをしましょう。」
(4)対話制御装置10:「最近、旅行に行きましたか。」
(5)対話相手:「最近、海に行ってきたよ。」
【0085】
(6)対話制御装置10:「海は、どんなところでしたか。」
(7)対話相手:「暑かったけど、エメラルドグリーンですごくきれいだったよ。」
(8)対話制御装置10:「暑いと涼しいところに行きたいですよね。」
(9)対話相手:「夏の海だから暑くてもいいんだよ。」
(10)対話制御装置10:「そうですか。すみません」
(11)対話制御装置10:「それでは、買い物の話しをしませんか。」
(12)対話相手:「いいよ、買い物の話しをしよう。」
【0086】
この(12)以降も対話は続く。この具体例4では、対話相手が望む話題「旅行」で対話を開始した後、対話部222は、(8)において、形容詞ワード「暑い」の応答文テンプレートで文脈に沿わない応答をした結果、(9)において対話相手が不快感を示している。その後、対話部222は、スコアが1の「旅行」よりもスコアが4で高い「買い物」に話題を切り替えて対話を続ける。
【0087】
この対話制御処理3によれば、上記対話制御処理1及び2の効果を奏することに加えて、対話相手が今現在話したい話題で対話を開始できるので、対話相手の気分に最も合った会話をすることができ対話相手の満足度を向上することができる。
【0088】
(対話制御処理4)
対話制御処理1乃至3は、話題マップ作成処理と対話制御処理とを分けて話題マップの作成段階(機械学習段階)と活用段階とを区別して説明したが、これに限られない。これらを区別せずに、即座に、対話制御処理を行って話題マップを作成しつつ、会話をリードするようにしてもよい。この場合の対話制御処理4について
図11を参照しながら説明する。なお、ステップS51乃至ステップS55は、話題マップ作成処理のステップS11乃至ステップS15と同じである。このため、以下では異なるステップを中心に説明する。
【0089】
ステップS51乃至ステップS53において、対話制御部22の各部(選択部221、対話部222)により、初期状態の話題マップ31のうち、ランダムに選択された話題に基づいて対話相手と対話を行いその対話相手の感情を推定する。そして、推定した感情が良好である限り(ステップS54でYesの間は)、選択中の話題のスコアを加算処理しながら対話を続ける(ステップS52乃至ステップS55のループ)。
【0090】
ここで、対話中の対話相手の推定した感情が良好でなければ(ステップS54;No)、選択部221は、話題を全て選択済みか否か判定する(ステップS56)。話題を全て選択済みでなければ(ステップS56:No)、ステップS51に戻って、選択部221は、ランダムに一つの話題を選択して、ステップS52以下の処理を繰り返す。一方、話題を全て選択済みであれば(ステップS56;Yes)、対話制御処理4を終了する。
【0091】
このように、この対話制御処理4では、ランダムに選択した話題で対話相手が不快感を示さない限り対話を行ってスコアの加算処理を行いながら、不快感を示したタイミングで未選択の別話題に切り替えて対話を続ける。これにより、対話を継続しながら徐々に話題マップを作成することができる。対話相手が不快感を示しても即座に別話題に切り替えるようにしているので、対話制御装置10は対話相手の趣味嗜好を探る一方、対話相手は会話を長く楽しむことができる。
なお、この対話制御処理4においても、複数の話題のスコア処理が終わったタイミングで対話制御処理1乃至3に切り替えてもよい。
従って、個々のユーザは一般的に趣味嗜好が異なるが、実施形態によれば、ユーザ個人の趣味志向を踏まえて、ユーザが飽きずにコミュニケーションをつづけることができる。
【0092】
以上で実施形態の説明を終了するが、上記実施形態は一例であり、対話制御装置10の構成や対話制御処理1乃至4の内容などが上記実施形態で説明したものに限られないことはもちろんである。
【0093】
例えば、上述した実施形態においては、感情推定部21は、対話相手の表情、韻律、音声のテキストに基づいて感情を推定するようにしたが、これに限られない。例えば、感情推定部21は、対話相手の非言語的な挙動(仕草)により感情を推定してもよい。具体的には、感情推定部21は、対話相手が顔を縦に振れば感情を良好と推定し、対話相手が顔を横に振れば感情を良好でないと推定すればよい。
【0094】
また、「対話」は音声を使用して互いに応答する例を説明したが、キーボードとディスプレイを使用して文字による対話を行うようにしても良い。例えば、対話制御装置10をPCなどに組み込んで、ユーザ(対話相手)とPC(対話制御装置10)の間で上述したような具体例1〜4の会話を文字によるチャット感覚で楽しむようにしてもよい。この場合、音声の韻律による感情推定ができないが、カメラ42を利用した対話相手の表情、対話文章の内容(感情の良し悪しを示す単語による感情推定)、あるいはキーボードタッチの速度や力強さなどから感情推定を行うことが可能である。
【0095】
また、上述した実施形態において話題マップ31は、対話制御装置10が作成することを前提に説明したが、これに限られない。例えば、予め対話相手毎の話題マップをナレッジデータベースとなる外部サーバにアップしておき、対話制御装置10が対話制御処理1乃至4において話題マップを参照する都度、外部サーバにアクセスして対話を行ってもよい。これにより、話題マップ作成の処理負担が減るとともに、対話制御装置10の記憶領域を節約することができる。
【0096】
また、上述した実施形態では、話題マップ31は、一次元であることを例にとって説明したが、これに限られない。例えば、n次元の話題マップを作成してもよい。ここでいう次元数は話題の特徴を示す特徴ベクトル数となる。例えば、話題が「投資」であれば、話題の特徴は娯楽性が低く実益があるという2次元の特徴ベクトルで表すことができる。
図12に、2次元の話題マップの例を示す。この話題マップは、話題の特徴(娯楽性と実益)を示す2本の特徴ベクトルで構成され、各話題(楕円形)はこの特徴に従って予めマッピングされている。
図6の一次元の話題マップに従えば、対話相手が好む話題は実益大で娯楽性が高い第1象限の長方形で示される位置となる。
【0097】
このため、選択部221は、スコア未処理の話題を選択する際、対話相手が好みそうな同じ第1象限の話題である「乗り物」を選んで対話を試みることができる。すなわち、長方形位置から一番距離が近い話題を選んで対話を試みることができる。このように、2次元の話題マップによれば、対話相手が好みそうな話題を予測することができ、対話相手の気分を害さずに会話を継続することができるようになる。2次元マップ作成にあたっては、話題マップ作成処理によりスコア処理した複数の話題のスコアに基づいて、距離を算出して好む話題の位置決めをすればよい。例えば、2つの話題のスコアが同じであれば2つの話題間の中央位置に、スコアが異なる場合は按分位置に、それぞれすればよい。なお、ベクトル数(次元数)を増やして、対話相手が好む話題の精度をあげてもよいことはもちろんである。
【0098】
また、この発明の対話制御装置10の各機能は、通常のPC等のコンピュータによっても実施することができる。具体的には、上記実施形態では、対話制御装置10が行う話題マップ作成処理と対話制御処理のプログラムが、制御部20のROMに予め記憶されているものとして説明した。しかし、プログラムを、フレキシブルディスク、CD−ROM(Compact Disc Read Only Memory)、DVD(Digital Versatile Disc)及びMO(Magneto-Optical Disc)等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをコンピュータにインストールすることにより、上述の各機能を実現することができるコンピュータを構成してもよい。さらに、この発明の対話制御装置10をロボットに搭載すれば、コミュニケーション機能を備えたロボットを実現できる。
【0099】
以上、本発明の好ましい実施形態について説明したが、本発明は係る特定の実施形態に限定されるものではなく、本発明には、特許請求の範囲に記載された発明とその均等の範囲が含まれる。以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0100】
(付記1)
対話相手の感情を推定する感情推定手段と、
前記感情推定手段が推定した感情に基づいて選択した話題で、前記対話相手との対話を制御する対話制御手段と、
を備えたことを特徴とする対話制御装置。
【0101】
(付記2)
前記感情推定手段は、前記対話相手の表情又は該対話相手の音声の韻律に基づいて、該対話相手の感情を推定する、
ことを特徴とする付記1に記載の対話制御装置。
【0102】
(付記3)
前記対話制御手段は、前記話題を、前記感情推定手段が推定した感情の良し悪しに基づいて選択する、
ことを特徴とする付記1又は2に記載の対話制御装置。
【0103】
(付記4)
前記対話制御手段は、前記感情推定手段が推定した前記感情の良し悪しに基づいて、前記対話相手が好む話題を含む話題マップを作成する作成手段を備える、
ことを特徴とする付記1乃至3の何れか一つに記載の対話制御装置。
【0104】
(付記5)
前記話題マップは、複数の異なる話題を含み、前記対話相手の話題に対する関心の高さの度合いを示すスコアを、該複数の異なる話題に対応付けたものである、
ことを特徴とする付記4に記載の対話制御装置。
【0105】
(付記6)
前記対話制御手段は、さらに、
複数の異なる話題の中からランダムに一つの話題を選択する第1の選択手段と、
前記第1の選択手段が選択した話題に基づいて、前記対話相手と対話する第1の対話手段と、
を備え、
前記作成手段は、前記第1の対話手段が前記対話相手と対話中に前記感情推定手段が推定した感情の良し悪しに応じて、前記第1の選択手段が選択中の話題のスコアの加減算処理を行い、前記話題マップを作成する、
ことを特徴とする付記5に記載の対話制御装置。
【0106】
(付記7)
前記作成手段は、前記感情推定手段が推定した感情が良ければ選択中の話題のスコアの加算処理を行い、前記感情推定手段が推定した感情が悪ければ選択中の話題のスコアの減算処理を行う、
ことを特徴とする付記6に記載の対話制御装置。
【0107】
(付記8)
前記対話制御手段は、さらに、
前記感情推定手段が推定した前記感情が悪い場合、前記作成手段が作成した話題マップが含む複数の話題のうち、スコアが閾値以上の話題を選択する第2の選択手段と、
前記第2の選択手段が選択した話題に基づいて、前記対話相手と対話する第2の対話手段と、
を備える、
ことを特徴とする付記6又は7に記載の対話制御装置。
【0108】
(付記9)
前記対話制御手段は、さらに、
前記作成手段が作成した話題マップが含む複数の話題のうち、最もスコアが高い話題を選択する第2の選択手段と、
前記第2の選択手段が選択した話題に基づいて、前記対話相手と対話する第2の対話手段と、
を備え、
前記第2の選択手段は、前記感情推定手段が対話中の対話相手の感情を悪いと推定した場合、選択中の話題のスコアに次ぐスコアの話題を選択する、
ことを特徴とする付記6又は7に記載の対話制御装置。
【0109】
(付記10)
前記対話制御手段は、さらに、
前記作成手段が作成した話題マップの複数の話題のうち、前記対話相手から受け付けた話題を選択する第2の選択手段と、
前記第2の選択手段が選択した話題に基づいて、前記対話相手と対話する第2の対話手段と、
を備え、
前記第2の選択手段は、前記感情推定手段が対話中の対話相手の感情を悪いと推定した場合、選択中の話題のスコアよりも高いスコアの話題を選択する、
ことを特徴とする付記6又は7に記載の対話制御装置。
【0110】
(付記11)
前記対話制御手段は、さらに、
前記第2の対話手段が対話中の対話相手の感情の良し悪しに応じて、前記第2の選択手段が選択中の話題のスコアの加減算処理を行い、前記作成手段が作成した話題マップを更新する更新手段を備える、
ことを特徴とする付記8乃至10の何れか一つに記載の対話制御装置。
【0111】
(付記12)
前記第1の対話手段及び第2の対話手段は、前記対話相手に対して、選択中の話題に関する質問、前記対話相手からの話題に関する発話への応答又は該話題に関して検索した情報の発話を行う、
ことを特徴とする付記8乃至11の何れか一つに記載の対話制御装置。
【0112】
(付記13)
前記話題マップは、話題の特徴を示す特徴ベクトルの数をnとしたとき、n次元の特徴ベクトルで構成される、
ことを特徴とする付記4に記載の対話制御装置。
【0113】
(付記14)
対話相手の感情を推定する感情推定ステップと、
前記感情推定ステップにおいて推定した感情に応じた話題で、前記対話相手との対話を制御する対話制御ステップと、
を備えたことを特徴とする対話制御方法。
【0114】
(付記15)
コンピュータを、
対話相手の感情を推定する感情推定手段、
前記感情推定手段が推定した感情に応じた話題で、前記対話相手との対話を制御する対話制御手段、
として機能させるためのプログラム。