説明

コミュニケーションロボット

【構成】コミュニケーションロボットは、相手の発話があったとき、顔画像データを取得して(S25)表情による感情認識を行う(S27)とともに、発話音声データを取得して(S29)非言語情報に基づく感情認識を行う(S31)。感情認識結果に基づいて、文脈依存し難い緊張の感情の有無を判定し(S35,S37)、緊張があるときは緊張緩和行動を実行する(S43)。緊張がないときは感情認識結果に基づいて喜びや怒り等の文脈依存し易い感情の有無を判定する。感情が認識されたとき、音声認識結果から認識感情に対応する候補を抽出して認識語を決定し、また認識感情に対応する行動を実行する。
【効果】相手の緊張を除去でき、文脈に依存し易い感情の表出を促して相手の感情や現在の状況を認識できる。相手の感情に応じた自然なコミュニケーション、音声認識の性能向上によるより深いコミュニケーションを実現できる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明はコミュニケーションロボットに関し、特にたとえば、コミュニケーションの相手から取得した非言語的情報に基づいてその感情を認識する、コミュニケーションロボットに関する。
【背景技術】
【0002】
入力されたユーザの音声および顔画像からその感情を判定し、判定された感情に応じた応答を出力する技術の一例がたとえば特許文献1に開示される。具体的には、この特許文献1の対話装置では、音声の特徴として音声のピッチが抽出されるとともに、顔画像の特徴として視線方向すなわちアイコンタクトが検出される。そして、平均ピッチの変化量とアイコンタクトの時間長の変化量に応じて、ユーザの感情が、「楽しい」、「退屈」、「いらいら」、「怒っている」および「普通」に判定され、判定された感情に応じたピッチパタンの音声とCGの顔画像とがユーザに提示される。
【0003】
一方、発明者等の研究によれば、音声および身振りを用いて人間とコミュニケーションを図るコミュニケーションロボットとの対話において、多くの場合で人間に緊張の感情が見られることがわかった。人間は機械等との対話に慣れていないため、人間がコミュニケーションロボットと初めて対面した場合などに緊張が表出し易いと考えられる。この緊張の感情は、個人の性格にも依存するものであり、たとえば発話単位では変化しにくい持続的な感情である。そして、このような緊張の感情がある場合には、たとえば喜びや怒りなどコミュニケーションの文脈に依存し易い一時的な感情は表出し難いことがわかった。
【特許文献1】特開平8−339446号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
特許文献1の対話装置では、人間の緊張が検出されることがなく、緊張への対応が何ら考慮されていない。上述のように対話相手に緊張の感情が表出している場合には、他の一時的な感情の表出が抑えられてしまうので、特許文献1の技術では対話相手の感情を認識することが困難である。したがって、相手の発話した内容など現在の状況を正確に認識することが困難であるので、相手の感情や現在の状況に対応することができず、相手との間で自然なあるいは深いコミュニケーションを実現することができない。
【0005】
それゆえに、この発明の主たる目的は、コミュニケーションの相手の感情を認識できる、コミュニケーションロボットを提供することである。
【0006】
この発明の他の目的は、コミュニケーションの文脈に依存した相手の感情の表出を促して、現在の状況を認識することができる、コミュニケーションロボットを提供することである。
【0007】
この発明のその他の目的は、相手の感情を認識して、より深いコミュニケーションを実現できる、コミュニケーションロボットを提供することである。
【課題を解決するための手段】
【0008】
請求項1の発明は、コミュニケーションの相手の発話音声を取得する音声取得手段を備えるコミュニケーションロボットであって、音声取得手段によって取得された音声データから得られる非言語的情報に基づいて緊張の感情の有無を判定する緊張判定手段、および緊張判定手段によって緊張の感情があると判定されたとき、緊張緩和行動を実行する第1行動実行手段を備える、コミュニケーションロボットである。
【0009】
請求項1の発明では、コミュニケーションロボットは音声取得手段を含み、音声取得手段によってコミュニケーションの相手の発話音声が取得される。緊張判定手段は、音声取得手段によって取得された音声データから得られる非言語的情報に基づいて、緊張の感情の有無を判定する。実施例では、非言語的情報として、基本周波数、パワー、発話時間、発話間間隔などの複数の特徴量が抽出され、これら特徴量に基づいて緊張の感情の有無が判定される。第1行動実行手段は、緊張の感情がないと判定されたとき、緊張緩和行動を実行する。この緊張緩和行動は、ロボットと相手とが相互に対話(インタラクション)することができるようにする行動である。たとえば、歌を歌ったり、じゃんけんをしたりして、相手をリラックスさせるような行動を実行する。
【0010】
したがって、請求項1の発明によれば、相手の音声の非言語的情報から相手に緊張の感情があるか否かを認識することができ、緊張の感情がある場合には、相手の緊張を緩和させる行動を実行することができる。したがって、相手の緊張を緩和させることによって、コミュニケーションの文脈に依存し易い感情の表出を促すことができる。これにより、相手の感情の認識を行うことが可能な状態に導くことができる。また、相手をリラックスさせてロボットとのコミュニケーションを気軽に楽しんでもらうことが可能である。
【0011】
請求項2の発明は、請求項1の発明に従属し、相手の顔画像を取得する顔画像取得手段をさらに備え、緊張判定手段は、音声データから得られる非言語的情報および顔画像取得手段によって取得された顔画像データから得られる表情に基づいて緊張の感情の有無を判定する。
【0012】
請求項2の発明では、顔画像取得手段は相手の顔画像を取得する。そして、緊張判定手段は、音声データから得られる非言語的情報および顔画像データから得られる表情に基づいて、緊張の感情の有無を判定する。実施例では、FACSを用いて顔画像データからAUに基づいて顔の動きが特徴量として抽出されて、表情が取得され、その感情が認識される。そして、音声による感情の認識結果と表情による感情認識結果とを組み合わせて緊張の感情の有無が判定される。したがって、請求項2の発明によれば、相手の音声の非言語的情報と顔の表情とを組み合わせて緊張の感情を認識することができ、請求項1の発明と同様な効果を奏する。
【0013】
請求項3の発明は、請求項2の発明に従属し、緊張判定手段によって緊張の感情がないと判定されたとき、音声データから得られる非言語的情報および顔画像データから得られる表情の少なくとも一方に基づいて、感情の認識を行う感情認識手段をさらに備える。
【0014】
請求項3の発明では、感情認識手段は、緊張の感情が無いと判定されたとき、音声の非言語的情報および顔の表情の少なくとも一方に基づいて、感情の認識を行う。緊張の感情が無い場合には、文脈に依存し易い感情の表出が促されるので、音声の非言語的情報および顔表情に基づいて、感情の認識をすることができる。実施例では、喜び、怒り、嫌悪、恐れ、悲しみ、驚きなどの感情を認識することができる。したがって、請求項3の発明では、コミュニケーション文脈に依存し易い感情を認識することができ、現在の状況を認識することができる。
【0015】
請求項4の発明は、請求項3の発明に従属し、感情認識手段によって認識された感情に対応する行動を実行する第2行動実行手段をさらに備える。
【0016】
請求項4の発明では、第2行動実行手段は、認識された感情に対応する行動を実行する。たとえば、喜びの感情が認識された場合には、相手が肯定的な応答をしていることも把握できるので、喜びの感情に対応する行動や、肯定的な応答に対応する行動を実行することができる。また、たとえば、怒りなどの否定的な感情が認識された場合には、相手が否定的な応答をしていることも把握できるので、その感情に対応する行動や、否定的な応答に対応する行動を実行することができる。したがって、認識された相手の感情や現在の状態に対応する行動を相手に提示することができるので、より自然なコミュニケーションを実現することができる。
【0017】
請求項5の発明は、請求項3または4の発明に従属し、音声取得手段によって取得された発話音声を認識する音声認識手段、および音声認識手段による音声認識結果から感情認識手段によって認識された感情に対応する認識語を抽出する認識語抽出手段をさらに備える。
【0018】
請求項5の発明では、取得した相手の発話音声を音声認識手段が音声認識する。そして、認識語抽出手段は、音声認識の結果から、認識されている相手の感情に対応する認識語を抽出する。このように、音声認識結果を認識感情に対応するものに限定することができるので、音声認識の性能を向上することができる。したがって、相手の発話内容を精度良く特定することができるので、より深いコミュニケーションを実現することができる。
【発明の効果】
【0019】
この発明によれば、コミュニケーションの相手の音声の非言語的情報や顔表情に基づいて、相手に緊張の感情があると判定された場合には、相手の緊張を緩和させる行動を実行することができる。相手の緊張を緩和させることによって、文脈に依存し易い感情の表出を促すことができるので、相手の感情を認識することが可能な状態に導くことができる。したがって、相手の感情を認識することができ、現在の状況を認識することができる。また、認識した相手の感情や現在の状況に対応する行動を実行することができる。さらに、認識した相手の感情や現在の状況に基づいて、音声認識の認識語の候補を絞り込むことができるので、音声認識の性能を向上させることができる。したがって、より自然な、より深いコミュニケーションを実現することができる。
【0020】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【0021】
図1を参照して、この実施例のコミュニケーションロボット(以下、単に「ロボット」と言う。)10は、主として人間のようなコミュニケーションの対象とコミュニケーションすることを目的とした相互作用指向のものであり、身振りおよび音声の少なくとも一方を用いてコミュニケーションを行う機能を備えている。
【0022】
ロボット10は台車12を含み、この台車12の下面にはロボット10を移動させる2つの車輪14が設けられる。2つの車輪14は車輪モータ16(図2参照)によって独立駆動され、台車12すなわちロボット10を前後左右任意の方向に動かすことができる。
【0023】
なお、図1においては省略するが、台車12の前面には、衝突センサ18(図2参照)が取り付けられ、この衝突センサ18は台車12への人や他の障害物の接触を検知する。つまり、ロボット10の移動中に障害物との接触を検知すると、直ちに車輪14の駆動を停止してロボット10の移動を急停止させる。
【0024】
また、この実施例では、ロボット10の背の高さは、人、特に子供に威圧感を与えることのないように、100cm程度とされる。ただし、この背の高さは変更可能である。
【0025】
台車12の上には、多角形柱のセンサ取付パネル20が設けられ、このセンサ取付パネル20の各面には超音波距離センサ22が取り付けられる。この実施例ではたとえば24個の超音波距離センサ22が周囲360度にわたるように設けられる。この超音波距離センサ22は、センサ取付パネル20すなわちロボット10の周囲の人や障害物との距離を計測するものである。具体的には、超音波距離センサ22は超音波を発射し、その超音波が人から反射されて超音波距離センサ22に入射されたタイミングを測定して、人等との間の距離情報を出力する。
【0026】
また、台車12の上には、さらに、その下部がセンサ取付パネル20に囲まれて、ロボット10の胴体が直立するように設けられる。この胴体は、下部胴体24と上部胴体26とによって構成され、下部胴体24および上部胴体26は、連結部28によって互いに連結される。図示は省略するが、連結部28には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体26の高さすなわちロボット10の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ30(図2参照)によって駆動される。
【0027】
なお、上述したロボット10の背の高さは、上部胴体26をそれの最下位置にしたときのものである。したがって、ロボット10の背の高さは、100cm以上にすることも可能である。
【0028】
上部胴体26のほぼ中央には、1つの全方位カメラ32と1つのマイク34とが設けられる。全方位カメラ32は、ロボット10の周囲を撮影するものであり、後述する眼カメラ36とは区別される。この全方位カメラ32としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。
【0029】
また、マイク34は、周囲の音、とりわけコミュニケーションの相手である人が発する音声を取り込む。なお、これら全方位カメラ32およびマイク34の設置位置は上部胴体26に限られず適宜変更され得る。
【0030】
上部胴体26の両肩には、それぞれ、肩関節38Rおよび38Lによって、右腕40Rおよび左腕40Lが設けられる。右腕40Rおよび左腕40Lは、それぞれ上腕42Rおよび42Lを含む。肩関節38Rおよび38Lは、それぞれ、3軸の自由度を有する。すなわち、肩関節38Rは、X軸、Y軸およびZ軸のそれぞれの軸廻りにおいて上腕42Rの角度を制御できる。Y軸は、上腕42Rの長手方向(または軸)に平行な軸であり、X軸およびZ軸は、そのY軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節38Lは、A軸、B軸およびC軸のそれぞれの軸廻りにおいて上腕42Lの角度を制御できる。B軸は、上腕42Lの長手方向(または軸)に平行な軸であり、A軸およびC軸は、そのB軸に対して、それぞれ異なる方向から直交する軸である。
【0031】
また、上腕42Rおよび42Lのそれぞれの先端には、肘関節44Rおよび44Lを介して、前腕46Rおよび46Lが設けられる。肘関節44Rおよび44Lは、それぞれ、W軸およびD軸の軸廻りにおいて、前腕46Rおよび46Lの角度を制御できる。
【0032】
なお、上腕42Rおよび42Lならびに前腕46Rおよび46Lの変位を制御するX軸,Y軸,Z軸,W軸およびA軸,B軸,C軸,D軸では、それぞれ、「0度」がホームポジションであり、このホームポジションでは、図1に示すように、上腕42Rおよび42Lならびに前腕46Rおよび46Lは下方に向けられる。
【0033】
また、図1では省略されるが、上部胴体26の肩関節38Rおよび38Lを含む肩の部分や上述の上腕42Rおよび42Lならびに前腕46Rおよび46Lには、それぞれ、タッチセンサ48(図2で包括的に示す。)が設けられていて、これらのタッチセンサ48は、人がロボット10の当該各部位に触れたかどうかを検知する。
【0034】
前腕46Rおよび46Lのそれぞれの先端には、手に相当する球体50Rおよび50Lがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【0035】
上部胴体26の中央上方には、首関節52を介して頭部54が設けられる。首関節52は、3軸の自由度を有し、S軸、T軸およびU軸の各軸廻りに角度制御可能である。S軸は首から真上(鉛直上向き)に向かう軸であり、T軸およびU軸は、それぞれ、そのS軸に対して異なる方向で直交する軸である。頭部54には、人の口に相当する位置に、スピーカ56が設けられる。スピーカ56は、ロボット10が自己の周辺の人に対してコミュニケーションを取るための音声ないし音を出力する。ただし、スピーカ56は、ロボット10の他の部位、たとえば胴体などに設けられてもよい。
【0036】
また、頭部54には、目に相当する位置に眼球部58Rおよび58Lが設けられる。眼球部58Rおよび58Lは、それぞれ眼カメラ36Rおよび36Lを含む。以下、右の眼球部58Rと左の眼球部58Lとをまとめて眼球部58ということがあり、また、右の眼カメラ36Rと左の眼カメラ36Lとをまとめて眼カメラ36ということもある。
【0037】
眼カメラ36は、ロボット10に接近した人の顔や他の部分ないし物体等を撮影して、それに対応する映像信号を取り込む。眼カメラ36としては、上述した全方位カメラ32と同様のカメラを用いることができる。
【0038】
たとえば、眼カメラ36は眼球部58内に固定され、眼球部58は眼球支持部(図示せず)を介して頭部54内の所定位置に取り付けられる。眼球支持部は、2軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部54に対して設けられる軸であり、α軸は頭部54の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部54の正面側(顔)が向く方向に直交する方向の軸である。この実施例では、頭部54がホームポジションにあるとき、α軸はS軸と平行であり、β軸はU軸と平行であるように設定される。このような頭部54において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部58ないし眼カメラ36の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。
【0039】
なお、眼カメラ36の変位を制御するα軸およびβ軸では、「0度」がホームポジショ
ンであり、このホームポジションでは、図1に示すように、眼カメラ36のカメラ軸は頭部54の正面側(顔)が向く方向に向けられ、視線は正視状態となる。
【0040】
図2はロボット10の電気的な構成を示すブロック図であり、この図2を参照して、ロボット10はCPU60を含む。CPU60はマイクロコンピュータ或いはプロセサとも呼ばれ、ロボット10の全体的な制御を担当する。CPU60は、バス62を介して、メモリ64、モータ制御ボード66、センサ入力/出力ボード68および音声入力/出力ボード70に接続される。
【0041】
メモリ64は、図示は省略するが、ROMもしくはHDDおよびRAM等を含む。ROMやHDDには、ロボット10を制御するためのプログラムおよびデータが予め記憶され、RAMはワークメモリやバッファメモリとして用いられる。CPU60はこの制御プログラムに従って、生成したデータや受信したデータなどをRAMに一時的に記憶しつつ処理を実行する。
【0042】
メモリ64に記憶される制御プログラムは、音声および身体動作の少なくとも一方を用いた複数のコミュニケーション行動のそれぞれを実行するための複数の行動プログラム等を含む。メモリ64にはまた、各コミュニケーション行動を実行するための必要なデータが記憶される。そのデータは、たとえば、個々の行動を実行する際に、スピーカ56から発生すべき音声または声の音声データ(音声合成データ)、および所定の身振りを提示するための角度データ等を含む。このメモリ64に記憶されたプログラムおよびデータに従って、ロボット10は、自ら能動的にコミュニケーション行動を相手に提示し、それに対する相手の反応を認識してその認識結果に応じた行動をさらに提示することができるし、また、人間と同じような反応動作を行うことができる。
【0043】
モータ制御ボード66は、たとえばDSPで構成され、各腕や頭部および眼球部等の各軸モータの駆動を制御する。すなわち、モータ制御ボード66は、CPU60からの制御データを受け、右眼球部58Rのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図2では、まとめて「右眼球モータ」と示す。)72の回転角度を制御する。同様に、モータ制御ボード66は、CPU60からの制御データを受け、左眼球部58Lのα軸およびβ軸のそれぞれの角度を制御する2つのモータ(図2では、まとめて「左眼球モータ」と示す。)74の回転角度を制御する。
【0044】
また、モータ制御ボード66は、CPU60からの制御データを受け、右肩関節38RのX軸、Y軸およびZ軸のそれぞれの角度を制御する3つのモータと右肘関節44RのW軸の角度を制御する1つのモータとの計4つのモータ(図2では、まとめて「右腕モータ」と示す。)76の回転角度を調節する。同様に、モータ制御ボード66は、CPU60からの制御データを受け、左肩関節38LのA軸、B軸およびC軸のそれぞれの角度を制御する3つのモータと左肘関節44LのD軸の角度を制御する1つのモータとの計4つのモータ(図2では、まとめて「左腕モータ」と示す。)78の回転角度を調整する。
【0045】
さらに、モータ制御ボード66は、CPU60からの制御データを受け、頭部54のS軸、T軸およびU軸のそれぞれの角度を制御する3つのモータ(図2では、まとめて「頭部モータ」と示す。)80の回転角度を制御する。さらにまた、モータ制御ボード66は、CPU60からの制御データを受け、腰モータ30および2つの車輪14をそれぞれ駆動する2つのモータ(図2では、まとめて「車輪モータ」と示す。)16の回転角度を制御する。
【0046】
なお、この実施例では、車輪モータ16を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ16と同様に、直流モータを用いるようにしてもよい。
【0047】
センサ入力/出力ボード68もまた、同様に、DSPで構成され、各センサからの信号ないしデータを取り込んでCPU60に与える。すなわち、超音波距離センサ22のそれぞれからの反射時間(距離情報)に関するデータがこのセンサ入力/出力ボード68を通してCPU60に入力される。また、全方位カメラ32からの映像信号が、必要に応じてこのセンサ入力/出力ボード68で所定の処理を施された後、画像データとしてCPU60に入力される。眼カメラ36からの映像信号も、同様にして、必要に応じてこのセンサ入力/出力ボード68で所定の処理を施された後、画像データとしてCPU60に入力される。また、上述した複数のタッチセンサ48からの信号がセンサ入力/出力ボード68を介してCPU60に与えられる。さらに、上述した衝突センサ18からの信号も、同様にして、CPU60に与えられる。
【0048】
音声入力/出力ボード70もまた、同様に、DSPで構成され、CPU60から与えられる音声合成データに従った音声または声をスピーカ56から出力させる。また、マイク34からの音声入力が、音声入力/出力ボード70を介して音声入力データとしてCPU60に取り込まれる。
【0049】
また、CPU60は、バス62を介して通信LANボード82および無線通信装置84に接続される。通信LANボード82は、DSPで構成され、CPU60からの送信データを無線通信装置84に与え、無線通信装置84から送信データを、たとえば無線LANまたはインタネットのようなネットワークを介して外部のコンピュータに送信させる。また、通信LANボード82は、無線通信装置84を介してデータを受信し、受信したデータをCPU60に与える。つまり、この通信LANボード82および無線通信装置84によって、ロボット10は外部のコンピュータ等と無線通信を行うことができる。
【0050】
さらに、CPU60は、バス62を介して音声認識用辞書データベース(DB)86に接続される。音声認識用辞書DB86は、相手が発する言葉(音声)の内容を音声認識するための辞書を記憶しているデータベースである。音声認識用辞書は、たとえば、複数の人間の日本語または他の言語による単語や日常会話の言葉等を記録した複数の音声データを含む。また、音声データのそれぞれは、当該単語等が発話される際の感情を示す情報に関連付けて記憶されている。つまり、人間にどの感情がある場合に発話される単語等であるかが分かるように各音声データが記憶されている。
【0051】
このロボット10は、コミュニケーションの相手の感情を認識するためのものであり、相手のノンバーバル(nonverbal)情報に基づいてその感情を認識する。ノンバーバル(非言語的な)情報とは、人々が意思を伝える際の言語(バーバル情報)などの明示的な情報ではなく、意味が表に表れない暗示的な情報である。具体的には、顔の表情、言語情報以外の音声情報(「音声表情」とも呼ばれる。)、手や腕のジェスチャ、視線などである。言語内容とは異なり、人間の行為や行動は、その感情から切り離せるものではなく、また、言語内容以上の大きな意味を持つことがしばしばある。ノンバーバル情報は、相手に自分の感情を伝達する手段として重要であり、人間は、意識する/しないに関係なく、ノンバーバルな情報で物事を判断してしまうことが多い。したがって、このロボット10では、相手のノンバーバル情報に基づいて感情を認識するようにした。具体的には、この実施例では、人間の顔の表情と、話し方やニュアンスなどの韻律情報(音声表情、または音声の非言語的情報)とに基づいて、その感情が判別される。
【0052】
背景技術で述べたように、本発明者等の研究によれば、緊張の感情がある場合には、文脈に依存する他の感情の表出が妨げられるということが分かっている。したがって、この実施例では、まず、緊張の感情の判定が他の感情の判定よりも優先して行われる。
【0053】
そして、緊張の感情があると判定された場合には、相手の緊張を緩和させる行動を実行する。緊張を緩和させることによって、文脈に依存し易い一時的な感情の表出を促して、感情の認識を行えるような状態に導くことができる。
【0054】
また、緊張の感情が無いと判定された場合には、文脈に依存する一時的な感情が表出し易いので、相手の感情の認識を行う。そして、相手の感情を判定できた場合には、その感情に対応する行動を実行する。また、音声認識の結果を認識された感情に対応するものに限定する。
【0055】
図3には、メモリ64に記憶されるロボット10の制御プログラムの一例が示される。また、図4には、メモリ64のRAMのデータ記憶領域の一例が示される。なお、図3では、ロボット10の制御プログラムに含まれるプログラムのうち一部のみを示しており、メモリ64にはロボット10の制御に必要なその他のプログラムが記憶されている。また、図4では、データ記憶領域のうちの一部のみを示しており、データ記憶領域には処理に必要な種々のデータが記憶される。
【0056】
行動処理プログラムは、ロボット10のコミュニケーション行動を制御するためのプログラムである。このプログラムによって、たとえば、コミュニケーション相手の顔を見つけたときに会話などの行動を実行したり、あるいは、相手の顔を発見できなかったときや相手の感情が認識できなかったときなどの行動を制御したりする。また、ロボット16の実行した行動の履歴が生成され、図4に示すように行動履歴データとしてRAMの所定領域に記憶される。行動履歴データでは、各行動の識別子が実行順に記述される。
【0057】
表情による感情認識プログラムは、人間の顔の表情からその感情を認識するためのプログラムである。このプログラムによれば、たとえば、FACS(Facial Action Coding System)を用いて、Ekmanの基本6感情(怒り、嫌悪、恐れ、喜び、悲しみ、驚き)と普通とを含む7感情を判別することができる。つまり、表情による感情認識プログラムでは文脈に依存し易い一時的な感情を判別することができる。
【0058】
FACSは、Ekmanらによって開発された表情記述法である。これは、顔の動きをAU(Action Unit)と呼ばれる最小単位に分類し、このAUの組み合わせによって表情を記述するものであり、人間のあらゆる表情を記述可能であるとされる。
【0059】
このプログラムでは、詳しくは、取得した顔の画像データからAUに基づいて顔の筋肉の動きを特徴量として求める。そして、それぞれの感情について、その特徴量の組み合わせを学習させておいたSVM(Support Vector Machine)を用いて、感情の有無を判別する。たとえば、喜びの表情は、(1)頬の筋肉が上に上がる、(2)目の上(眉)の筋肉が下にさがる、…という組み合わせで表すことができる。このような各感情の特徴に対する、取得した表情の近さの程度に基づいて、その感情の判別を行う。表情による感情認識の結果として、各感情の確率を示す感情認識結果データgf(eomx)が生成され、図4に示すようにRAMの所定領域に記憶される。ここで、emoxは、表情によって認識される各感情の識別情報であり、喜び、怒り、嫌悪、恐れ、悲しみ、驚きおよび普通を示す。
【0060】
この実施例の表情による感情認識プログラムとしては、たとえば、G.Littlewortらによって開発された表情による感情認識システムの技術を適用することができ、このシステムは次の文献で開示されている:G. Littlewort (and 6 others),”Towards social robots: Automatic evaluation of human-robot interaction by face detection and expression classification”, Advances in Neural Information Processing Systems, Vol 16. pages 1563-1570, MIT Press, (2003.12)。
【0061】
音声による感情認識プログラムは、人間の音声表情からその感情を認識するためのプログラムである。このプログラムによれば、たとえば、緊張、喜び、および困惑の3つの感情の有無を判別することができる。つまり、音声による感情認識プログラムでは、文脈に依存し難い持続的な感情と一時的な感情の両方について判別をすることができる。
【0062】
このプログラムでは、詳しくは、取得した音声データから、基本周波数(F0)の最大値、F0の初期値、F0の平均値、F0のレンジ(最大値と最小値の差)、パワーの最大値、パワーの平均値、発話時間(発話開始から終了までの時間)の特徴量(7つ)を抽出する。そして、この7つの特徴量のそれぞれについて、(1)そのままの値、(2)前発話との差分した値、(3)その差分値を現在の値で正規化した値、(4)第1発話で正規化した値を算出して、28個の特徴量として求める。さらに、ロボット10の発話終了から相手の発話開始までの時間(発話間の間隔)を特徴量として求める。そして、これら29個の特徴量(すなわち、音声データから抽出したノンバーバル情報)に基づいて、SVMを用いて各感情の判別を行う。なお、緊張の感情の判別に用いる学習アルゴリズムとしては、SVMの他にC5.0を用いる。感情認識の結果として、各感情の確率を示す感情認識結果データga(emoy)が生成され、図4に示すようにRAMの所定領域に記憶される。ここで、emoyは、音声によって認識される各感情の識別情報であり、緊張、喜びおよび困惑を示す。
【0063】
この実施例の音声による感情認識プログラムとしては、たとえば、伊藤らによって開発された音声による感情認識システムの技術を適用することができ、このシステムは次の文献で開示されている:伊藤亮介(他3名),“ロボットとの音声対話におけるユーザの心的状況の分析”,情報処理学会研究会資料,SLP-45-18,(2003.2)。
【0064】
音声認識プログラムは、音声認識を行うためのプログラムである。このプログラムでは、入力音声データから特徴を抽出し、この入力音声データの特徴と音声認識用辞書DB86の音声データの特徴とをたとえばHMM(隠れマルコフモデル)を用いて照合することによって、人間の発話内容の特定を行う。音声認識の結果として、音声認識結果データRW(i,emo)が生成され、図4に示すようにRAMの所定領域に記憶される。このデータRW(i,emo)は、優先度iが1〜Nまでの認識語(その識別情報)を含むデータである。優先度iは、音声認識結果の確からしさを示し、iの値が小さいほど優先度が高い。また、このデータは、その単語または言葉が発話される際の感情を示す情報emoを含んでいる。ここで、emoは、緊張を除いて認識しようとする感情であり、喜び、怒り、嫌悪、恐れ、悲しみ、および驚きを示す。したがって、感情認識結果と照合して感情に対応するものに限定することによって、最適な単語ないし言葉を音声認識結果として用いることが可能になる。
【0065】
このプログラムでは、相手の感情が認識された場合には、音声認識結果データRW(i,emo)からその認識感情に対応するデータRW(i,認識感情)を、認識語の候補として抽出する。そして、候補RW(i,認識感情)の中から、優先度iが最高位であるものを、認識語として決定する。決定された認識語を示す情報(識別情報)は、図4に示すように、認識語データとして、RAMの所定領域に記憶される。
【0066】
緊張判定プログラムは、感情認識の結果に基づいて相手に緊張の感情があるか否かを判定するためのプログラムである。このプログラムによって、緊張の感情の判定が他の感情の判定よりも優先して行われる。
【0067】
具体的には、表情による感情認識結果と音声による感情認識結果とを重み付けして組み合わせることによって評価値V(緊張)を算出する。緊張の評価値は次式で算出される:V(緊張)=α(緊張)×gf(普通)+β(緊張)×ga(緊張)。ここで、αは、表情による認識結果gf(emox)の値に対する重みであり、βは、音声による認識結果ga(emoy)の値に対する重みであり、いずれも緊張の値を算出するための重みである。音声による感情認識では、緊張の感情の認識結果ga(緊張)が得られるが、表情による感情認識では、緊張の感情を判別することができないので、普通の感情の認識結果gf(普通)の値を採用するようにしている。そもそも、表情による感情認識プログラムは一時的な感情を認識するためのものであり、持続的な感情である緊張を認識するためのものではない。そして、上述のように、持続的な感情である緊張の感情がある場合には、文脈に依存する他の一時的な感情の表出が抑えられる。このため、緊張の感情がある場合には、この表情による感情認識処理の結果として、(1)喜びの感情ではなく、(2)その他の感情の認識結果の値が似通っていて、感情を一意に決め難くなる、という結果が生じる。つまり、相手に緊張の感情がある場合には、喜びの確率が低くかつどの感情にも属さないという結果が得られて、普通の感情が認識されることとなる。したがって、V(緊張)を算出する場合には、gf(普通)の値を利用する。また、緊張を算出するための重みの値には、実験に基づいて所定の値が設定される。音声による感情認識で緊張の感情を直接判定できるので、音声の重みβ(緊張)は、表情の重みα(緊張)よりも高く設定される。
【0068】
そして、緊張の評価値V(緊張)が、緊張の判定のための閾値γ(緊張)を超えるか否かを判定する。その結果、V(緊張)がその閾値γ(緊張)よりも大きいと判定された場合には、相手には緊張の感情があるということが認識される。なお、評価値Vを判定するための閾値γの値は、各感情に関して、実験に基づいて所定の値をそれぞれ設定している。
【0069】
緊張緩和行動プログラムは、緊張の感情があると判定されたときに、相手の緊張を緩和させるための行動を実行するためのプログラムである。この緊張緩和行動とは、ロボット10が、コミュニケーション(ロボット10からの一方的な発話を含む。)だけでなく、インタラクション(ロボット10と相手が相互に対話する)を行えるようにする行動である。
【0070】
緊張緩和行動の一例として、ロボット10は、「歌を歌うね」と発話して歌を歌ったり、あるいは、「じゃんけんしようよ」と発話してじゃんけんをしたりする。その他の例として、自己紹介をする(たとえば、「ロボビーです。ATRから来たよ。」と発話する)、ラジオ体操をする、相手をくすぐる、まねっこをする(たとえば、「指揮者の真似ができるよ。いち、に、さん。」と発話しつつ腕を振る)、当てっこゲームをする(たとえば、「ロボビーの手、どっちが光ると思う?『いっせいのーで』で光ると思う方の手を触ってね」と発話する)、相手の顔を見て会話をする(たとえば、「緊張しないで大丈夫だよ」と発話する)、などの種々の行動を実行することができる。ただし、特に音声認識をする必要のない、音声認識ができなくても実行に支障のないような行動を実行する。
【0071】
また、このような緊張緩和行動には、すぐに緊張を緩和する行動と、長い時間をかけて緊張を緩和する行動との少なくとも2種類が含まれている。すぐに緊張を緩和する行動は、相手をくすぐる、ラジオ体操をする等の行動を含む。たとえば、相手をくすぐる行動によって、笑わせることが可能であり、また、ラジオ体操をする行動によれば、一緒に体を動かすことが可能であるので、相手の緊張をすぐに緩和させることが可能になる。一方、長い時間をかけて緊張を緩和する行動は、会話をする、自己紹介をする等の行動を含む。たとえば、自己紹介をする行動によって、徐々に相互的な会話をするようになり、相手の緊張をだんだんと解いていくことが可能になる。
【0072】
また、ロボット10は、たとえば、様子を見ながら(緊張の感情の認識(判定)をしながら)、すぐに緊張を緩和する行動と長い時間をかけて緊張を緩和する行動のどちらを実行すべきかを決定して、その決定した行動を実行する。一例として、会話開始からの経過時間や状況等に応じて、行動の種類を切り替えるようにしてよい。たとえば、開始から一定時間の間はすぐに緩和する行動を実行し、その一定時間が経過しても未だ緊張の感情があると判定されている場合には、長い時間をかけて緩和する行動に切り替えて、比較的長い時間の間当該種類に属する種々の行動を実行していくことが考えられる。あるいは、相手の緊張の評価値V(緊張)の値に応じて、行動の種類を切り替えるようにしてもよい。
【0073】
この緊張緩和行動プログラムによって、上記のような種々の行動が、音声および身振りの少なくとも一方を用いて相手に提示される。これにより、たとえば相手をリラックスさせたり和ませたりするので、相手の緊張を和らげて、相手から緊張を取り除くことができ、ロボット10と相手とがインタラクションをすることができるようになる。したがって、緊張を緩和させることによって、文脈に依存し易い一時的な感情の表出を促して、感情の認識を行えるような状態に導くことができる。また、緊張を解くことによって相手にロボット10とのコミュニケーションやインタラクションを気軽に楽しんでもらうことも可能になる。
【0074】
また、このような緊張緩和行動は、緊張の感情が認識されなくなるまで繰り返し提示される。したがって、相手の緊張を上手く緩和できるように、たとえば同一行動が連続して提示されないようにするなどして、種々の行動を提示するのが望ましい。なお、比較的長い所定時間(たとえば5分程度)が経過しても、相手から緊張が取り除かれなかった場合には、相手の一時的な感情を認識することを中止するようにしてもよい。
【0075】
感情認識プログラムは、緊張の感情がないと判定されたときに、相手の感情を認識するためのプログラムである。緊張の感情がないと判定されたときには、文脈に依存する一時的な感情が表出し易いので、このプログラムによって感情の認識を行う。たとえば、この実施例では、各感情の感情認識結果データのうち、最大値を示している感情について、その感情の有無の判定が行われる。
【0076】
詳しくは、他の感情のうち、喜びについては、表情による認識結果データgf(emox)と音声による認識結果データga(emoy)の両方に、その認識結果が含まれているので、まず、gf(喜び)がgf(emox)の中で最大値を示し、かつ、ga(喜び)が緊張を除くga(emoy)の中で最大値を示すか否かを判定する。その結果、喜びが表情および音声の両方で最大値を示す場合には、喜びの評価値V(喜び)を、両認識結果を重み付けして組み合わせる次式に従って算出する:V(喜び)=α(喜び)×gf(喜び)+β(喜び)×ga(喜び)。ここで、重みα(喜び)および重みβ(喜び)の値には、実験に基づいて所定の値が設定される。また、表情による認識結果に対する重みα(喜び)の値は、認識の精度を考慮して、音声による認識結果に対する重みβ(喜び)の値よりも高く設定される。
【0077】
そして、喜びの評価値V(喜び)が、その閾値γ(喜び)よりも大きいか否かを判定する。その結果、V(喜び)がγ(喜び)よりも大きいと判定された場合には、相手には喜びの感情があるということが認識される。
【0078】
また、他の感情については、表情による認識結果データgf(emox)のうち、最大値を示すを示す感情を検出して、その検出感情の表情による認識結果データgf(検出感情)がその閾値γ(検出感情)よりも大きいか否かを判定する。その結果、gf(検出感情)がγ(検出感情)よりも大きいと判定された場合には、相手にはその検出感情(怒り、嫌悪、おそれ、悲しみ、驚きのいずれか)があるということが認識される。
【0079】
このようにして、認識された感情(識別情報:emo)が、図4に示すように、認識感情データとしてRAMの所定領域に記憶される。
【0080】
なお、他の実施例では、すべての感情の評価値を算出して、その最大値を示すものを検出し、その検出感情について感情の有無を判定するようにしてもよい。各感情の評価値V(emo)は、表情による認識結果と音声による認識結果とを組み合わせることによって算出される。なお、上述では、音声による感情認識結果には、上述のように、緊張、喜び、および困惑の3つの感情に関する値のみ含まれ、喜び以外の他の感情に関する直接の値は含まれていない。したがって、喜び以外の他の感情の評価値を算出する際には、音声による感情認識結果のうち喜びおよび困惑に関する値と、表情による感情認識結果のうち当該感情に関する値とを組み合わせる。ただし、各項の重みを適切に設定する必要がある。なお、音声による感情認識において、喜び以外の他の感情を判別することが可能である場合には、同一の感情に関する認識結果の値を組み合わせるようにする。そして、当該最大値を示す感情に関する評価値が、その感情の判定のための閾値よりも大きいか否かを判定し、大きい場合には、当該感情があることが認識される。
【0081】
感情対応行動プログラムは、認識された感情に対応する行動を実行するためのプログラムである。このプログラムによって、各認識感情に対応する種々の行動が実行される。また、実行する各行動は行動履歴データにも基づいて決定される。つまり、ロボット10の過去の行動に応じて異なった対応をすることも可能である。さらにまた、上述のように、認識感情によって音声認識結果を絞り込むことによって、音声認識の精度が向上されているので、たとえば特定の認識語に対応する所定の行動を実行することもできる。
【0082】
図5から図7にはロボット10の動作の一例が示される。図5の最初のステップS1で、ロボット10のCPU60は、センサ入力/出力ボード68を介して全方位カメラ32および眼カメラ36からそれぞれ画像データを取得してメモリ64に記憶する。次に、ステップS3で、全方位カメラ32の画像データに基づいて周囲に人を発見したかを判断する。たとえば、メモリ64に取り込まれた画像データに基づいてフレーム間のRGB値の差分を求め、求められた差分値から移動物体を検出し、検出した物体を評価して人間が存在するかどうかを判定する。ステップS3で“YES”であれば、ステップS5で、眼カメラ36の画像データに基づいてコミュニケーションの対象となる相手の顔を発見したか否かを判断する。たとえば、メモリ64に取り込まれた画像データに基づいてフレームごとに人間の顔領域または肌色領域を検出し、人間の顔があるか否かを判定する。たとえば、メモリ64にコミュニケーションの相手となる複数のユーザに関する情報を記憶しておく場合には、ユーザ情報としてその顔画像データを登録しておき、その顔画像データと照合することによって、顔を検出するようにしてもよい。
【0083】
ステップS3またはステップS5で“NO”であれば、ステップS7で、感情認識と音声認識の初期化を行って、ステップS9で、たとえば「つまらない」と発話する行動を実行する。発話行動を実行する際には、メモリ64から、その音声合成データを音声入力/出力ボード70に与えて、スピーカ56からその音声を出力する。また、この行動の識別子をメモリ64の行動履歴データ領域に記録する。ステップS9を終了すると、処理はステップS1に戻る。このように、ロボット10は、相手の顔を発見するまでは、相手の感情を認識することが不可能なので、たとえば「つまらない」と発話する行動など、ロボット10とコミュニケーションを図るように人間の気を引いてロボット10に近寄らせるような行動を実行するのが好ましい。また、ロボット10が発話してから所定時間(たとえば5秒)経過しても相手からの発話がなかった場合にも、このステップS9でたとえば「つまらない」と発話する行動など、相手がロボット10に応答するように促すような行動を実行するのが好ましい。また、相手の感情を認識できなかった場合にも、このステップS9でたとえば「つまらない」と発話する行動など、相手がより感情的に応答するように促すような行動を実行するのが好ましい。
【0084】
一方、ステップS5で“YES”であれば、ステップS11で、相手との会話を実行する。たとえば、「一緒に遊ぼうよ」と発話したり、「かわいいでしょ?」と発話したりする。また、実行した行動の識別子をメモリ64の行動履歴データ領域に記録する。このロボット10の行動に対する相手の感情が認識されることとなるので、ここで実行する行動の内容や順序等は、ロボット10の行動履歴や相手の反応などに基づいて決定されるのが望ましい。
【0085】
続いて、ステップS13で図示しない時計回路から時間データを取得して、発話時刻を示す変数Tuにその時刻を記憶する。
【0086】
そして、ステップS15で、行動履歴データに基づいて、ステップS11での発話が一回目の発話であるか否かを判断し、“YES”であれば、ステップS17で、図示しない時計回路から時間データを取得して、会話開始時刻を示す変数Tsにその時刻を記憶する。
【0087】
ステップS15で“NO”である場合、または、ステップS17を終了すると、ステップS19で、相手が発話したか否かを判断する。つまり、音声入力/出力ボード70からの入力データを取得して、相手によるマイク54からの音声入力があったか否かを判断する。ステップS19で“NO”であれば、ステップS21で、図示しない時計回路から時間データを取得して、変数Twにその時刻を記憶する。そして、ステップS23で(Tw−Tu)がたとえば5秒よりも大きいか否か、つまり、ロボット10が発話してから所定時間が経過したか否かを判断する。ステップS23で“NO”であれば、ステップS15に戻る。一方、ステップS23“YES”であれば、つまり、所定時間が経過しても相手が発話してくれない場合には、ステップS9へ進んで、たとえば「つまらない」と発話し、相手がロボット10に応答するように促す。
【0088】
一方、ステップS19で“YES”であれば、つまり、相手がロボット10の発話に対して返事をした場合には、図6のステップS25へ進む。
【0089】
図6のステップS25では、センサ入力/出力ボード68を介して眼カメラ36からの画像データを取得して、メモリ64の所定領域に記憶する。このように、相手の発話があったと判定されたときに画像データを取得するので、その画像データには、相手が発話したときの表情が含まれることとなる。そして、ステップS27で、画像データから抽出した顔画像データに基づいて、表情による感情認識処理を実行する。この処理によって、上述のように、顔画像データから抽出した特徴量に基づいて感情の判別を行って、各感情(喜び、怒り、嫌悪、恐れ、悲しみ、驚きおよび普通)の確率を示す感情認識結果データgf(eomx)をそれぞれ生成し、メモリ64の所定領域に記憶する。
【0090】
また、ステップS29で、音声入力/出力ボード70を介して発話音声データを取得して、メモリ64の所定領域に記憶する。そして、ステップS31で、取得した発話音声データに基づいて、音声による感情認識処理を実行する。この処理によって、上述のように、音声データから抽出した特徴量(ノンバーバル情報、または韻律情報)に基づいて、各感情(緊張、喜びおよび困惑)の確率を示す感情認識結果データga(emoy)をそれぞれ生成し、メモリ64の所定領域に記憶する。
【0091】
また、ステップS33で、取得した発話音声データに基づいて、音声認識処理を実行する。この処理によって、上述のように、音声認識結果データRW(i,emo)を生成し、メモリ64の所定領域に記憶する。
【0092】
続いて、ステップS35で、表情による感情認識結果gf(普通)および音声による感情認識結果ga(緊張)に基づいて、両者を重み付けして組み合わせることによって、緊張の評価値V(緊張)を算出する。そして、ステップS37で、緊張の評価値V(緊張)の値がその閾値γ(緊張)よりも大きいか否かを判定する。
【0093】
ステップS37で“YES”であれば、つまり、緊張の感情があると判定できる場合には、ステップS39で、図示しない時計回路から時間データを取得して、その時刻を変数Tnに記憶する。そして、ステップS41で、(Tn−Ts)がたとえば300秒よりも大きいか否か、つまり、会話(コミュニケーション)を開始してから所定時間が経過したか否かを判断する。
【0094】
ステップS41で“NO”であれば、ステップS43で、緊張緩和行動を実行する。たとえば、「歌を歌うね」と発話して歌を歌ったり、「じゃんけんしようよ」と発話してじゃんけんをしたりする行動等を実行する。詳しくは、上述のように、すぐに緊張を緩和する行動と、長い時間をかけて緊張を緩和する行動のどちらの種類の行動を実行するかを状況に応じて決定して、その決定した種類に属する種々の行動を実行する。そして、実行した緊張緩和行動の識別子をメモリ64の行動履歴データ領域に記憶する。このように、相手をリラックスさせたりロボット10に親近感を抱かせたりするような適切な行動を実行することによって、相手の緊張を緩和させる。これによって、相手から持続的感情である緊張の感情を取り除いて、相手の一時的な感情の表出を促すことができる。また、緊張を緩和することで、相手をロボットとインタラクションできる状態にすることができる。ステップS43を終了すると、図5のステップS1に戻る。
【0095】
一方、ステップS41で“YES”であれば、つまり、会話を開始してから比較的長い時間が経過しても、相手から緊張の感情が消えなかった場合には、この処理を終了する。
【0096】
また、ステップS37で“NO”であれば、つまり、相手に緊張の感情が無いと判定される場合には、相手の一時的な感情を認識すべく、処理は図7のステップS45へ進む。
【0097】
図7のステップS45では、喜びの感情に関しての音声による感情認識結果データga(喜び)の値が、緊張の感情を除くga(emoy)の中で最大値を示し、かつ、喜びの感情に関しての表情による感情認識結果データgf(喜び)の値が、gf(emox)の中で最大値を示すか否かを判断する。ステップS45で“YES”であれば、認識しようとする感情の中で喜びの感情が最も可能性が高いとみなして、喜びの感情の有無を判別する。
【0098】
つまり、まず、ステップS47で、表情による感情認識結果gf(喜び)と音声による感情認識結果ga(喜び)に基づいて、両者を重み付けして組み合わせることによって、喜びの感情に関する評価値V(喜び)の値を算出する。
【0099】
そして、ステップS49で、喜びの感情の評価値V(喜び)の値が、その閾値γ(喜び)よりも大きいか否かを判断する。ステップS49で“YES”であれば、喜びの感情があると判定できるので、ステップS51で喜びの感情を認識感情として設定する。つまり、喜びを示す識別情報をメモリ64の認識感情データ領域に記憶する。また、ステップS49で“NO”であれば、つまり、喜びの感情が無いと判定される場合には、図5のステップS9へ進んで、たとえば「つまらない」と発話する。
【0100】
一方、ステップS45で“NO”であれば、つまり、喜びの感情が最も可能性が高いとはみなせない場合には、ステップS53で、表情による認識結果データgf(emox)のうち最大値を示す感情を検出する。
【0101】
続くステップS55で、検出された感情が喜び以外の感情であるか否かを判断し、“YES”であれば、ステップS57で、検出された感情に関する表情による感情認識結果gf(検出感情)の値が、当該感情に関する閾値γ(検出感情)よりも大きいか否かを判断する。ステップS57で“YES”であれば、その検出感情があると判定できるので、ステップS59で、検出感情を認識感情として設定し、つまり、検出された感情の識別情報をメモリ64の認識感情データ領域に記憶する。
【0102】
一方、ステップS55で“NO”である場合、またはステップS57で“NO”である場合には、感情を認識することができないので、図5のステップS9へ進み、たとえば「つまらない」と発話し、相手がより感情的に応答するように促す。
【0103】
ステップS51を終了し、または、ステップS59を終了すると、相手の感情を認識することができたので、認識感情データに基づいて音声認識の結果を認識感情に対応するものに絞り込む。すなわち、ステップS61で、音声認識結果データRW(i,emo)から、認識感情に対応するデータRW(i,認識感情)を認識語の候補として抽出する。つまり、音声認識の結果を認識感情に対応するものに限定することができる。そして、ステップS63で、候補データRW(i,認識感情)のうち、優先度iが最高位であるものを認識語として決定して、たとえばその認識語の識別子をメモリ64の認識語データ領域に記憶する。
【0104】
続いて、ステップS65で、感情対応行動処理を実行する。つまり、認識感情データに基づいて、たとえば認識感情に対応する行動プログラムを実行することによって、相手の感情(喜び、怒り、嫌悪、恐れ、悲しみ、驚き)に合わせた行動を提示する。このステップS65を終了すると、処理は図5のステップS1へ戻る。
【0105】
発明者等の研究によれば、人間がロボットとの対話において、人間が喜びの感情を示すときには、肯定的な返答をしていることが多く、一方、人間が喜び以外の否定的な感情を示すときには、否定的な返答をしていることが多いということが分かっている。したがって、喜びの感情が認識された場合の感情対応行動処理では、ロボット10の発話に対して人間が肯定的な返答をしているとみなすことができるので、その肯定的な返答に対応する行動を実行することができる。一方、喜び以外の否定的な感情が認識された場合の感情対応行動処理では、ロボット10の発話に対して人間が否定的な返答をしているとみなすことができるので、その否定的な返答に対応する行動を実行することができる。
【0106】
図8には、認識感情が喜びである場合の感情対応行動処理の動作の一例が示される。図8のステップS81で、行動履歴データに基づいて、ロボット10の直前の発話は「一緒に遊ぼうよ」であるか否かを判断する。ステップS81で“YES”であれば、ステップS83で、たとえば「何して遊ぶ?」と発話する行動を実行する。また、ロボット10の「一緒に遊ぼうよ」という提案に対して相手から肯定的な返答があったことが分かっているので、たとえば具体的な遊びの提案をするなどの行動を実行するようにしてもよい。
【0107】
一方、ステップS81で“NO”であれば、ステップS85で、行動履歴データに基づいて、ロボットの直前の発話は「かわいいでしょ?」であるか否かを判断する。ステップS85で“YES”であれば、ステップS87で、認識語データに基づいて、認識語がたとえば「かわいい」であるか否かを判断する。なお、ここでは、「かわいい」に限らず、「かわいい」と同義語または類似語が認識語であるか否かを判定するようにしてもよい。ステップS87で“YES”であれば、つまり、相手が「かわいい」または「かわいい」と同様の言葉を返答してくれた場合には、ステップS89で、たとえば「ありがとう」と発話して喜ぶ身振りを示す行動を実行する。この実施例では、上述したように、認識感情に基づいて音声認識結果を絞り込むことによって音声認識の性能を向上することができるので、相手の発話内容も精度よく特定することが可能である。したがって、たとえば、期待された所定の言葉または単語を相手が発話した場合等には、その発話内容に対応する特定の行動を提示することができるので、相手との間で自由でより深いコミュニケーションを実現することができる。なお、身振りを提示する場合には、CPU60はその身振りの実現に必要なモータ72、74、76、78または80等の制御データをモータ制御ボード66に与えて、各モータの回転を制御する。
【0108】
また、ステップS87で“NO”であれば、ステップS91で、たとえば「ありがとう」と発話する。この場合には、認識語が予期しない単語ないし言葉であるが、肯定的な返答があったことが分かっているので、その肯定的な返答に対応する行動を提示する。
【0109】
一方、ステップS85で“NO”であれば、つまり、直前の発話または行動が所定のものでない場合には、ステップS93で、喜びの感情に対応する行動の一例として、たとえば「うれしそうだね」と発話する行動を実行する。なお、ステップS83、S89、S91またはS93を終了すると、この感情対応行動処理を終了する。
【0110】
図9には、認識感情が怒りである場合の感情対応行動処理の動作の一例が示される。図9のステップS101で、行動履歴データに基づいて、ロボットの直前の発話は「一緒に遊ぼうよ」であるか否かを判断し、“YES”であれば、ステップS103で、たとえば「いじわる」と発話して悲しむ身振りを示す行動を実行する。上述のように、認識感情が否定的な感情である場合には、相手が否定的な応答をしていることが分かっているので、その否定的な応答に対応する行動を実行する。
【0111】
一方、ステップS101で“NO”であれば、ステップS105で、行動履歴データに基づいて、ロボットの直前の発話は「かわいいでしょ?」であるか否かを判断し、“YES”であれば、ステップS107で、認識語データに基づいて、認識語がたとえば「かわいくない」であるか否かを判断する。なお、「かわいくない」に限らず、これと同義語または類似語が認識語であるか否かを判定するようにしてもよい。ステップS107で“YES”であれば、つまり、相手が「かわいくない」と同様な所定の返答をした場合には、ステップS109で、たとえば「ひどいよ」と発話して機嫌の悪い身振りを示す行動を実行する。
【0112】
また、ステップS107で“NO”であれば、ステップS111で、たとえば「ひどいよ」と発話する。この場合には、認識語が予期しない単語ないし言葉であるが、否定的な返答があったことが分かっているので、その否定的な返答に対応する行動を提示する。
【0113】
一方、ステップS105で“NO”であれば、つまり、直前の発話または行動が所定のものでない場合には、ステップS113で、怒りの感情に対応する行動の一例として、たとえば「怒らないでよ」と発話する行動を実行する。なお、ステップS103、S109、S111またはS113を終了すると、この感情対応行動処理を終了する。
【0114】
この実施例によれば、相手の発話があったときに、相手の顔の画像データおよび発話音声データを取得し、その顔の表情および発話音声の非言語的な情報(韻律情報)に基づいて、相手に緊張の感情があるか否かを判定することができるので、相手に緊張の感情がある場合には、相手の緊張を緩和させる行動を実行することができる。また、これによって、持続的な感情である緊張の感情を取り除いて、文脈に依存し易い一時的な感情の表出を促すことができ、感情の認識を行えるような状態に導くことができる。したがって、相手の感情を認識することができ、現在の状況を認識することができる。
【0115】
また、相手の感情および現在の状況を認識することができるので、相手の感情や現在の状況に対応する行動を実行することができる。したがって、より自然で円滑なコミュニケーションを実現することができる。
【0116】
また、相手の感情および現在の状況を認識することができるので、認識した相手の感情や現在の状況に基づいて、音声認識の認識語の候補を限定しまたは絞り込むことができ、音声認識の性能を向上させることができる。したがって、相手の発話内容を精度良く特定することができるので、発話内容に応じて行動すること等によって、より自由な、あるいはより深いコミュニケーションを実現することができる。
【0117】
なお、上述のように、他の実施例では、各感情の有無の判定を行う際には、すべての感情の評価値を算出して、その最大値を示すものを検出し、その検出感情について判定を行うようにしてもよい。この他の実施例における感情の有無を判定する処理の動作の一例が、図10に示される。
【0118】
図10の最初のステップS121では、表情の感情認識結果gf(emox)および音声の感情認識結果ga(emoy)を組み合わせて、緊張を除く各感情の評価値V(emo)を算出する。次に、ステップS123で、評価値V(emo)が最大値を示す感情を検出する。
【0119】
そして、ステップS125で、評価値V(検出感情)がその閾値γ(検出感情)よりも大きいか否かを判定する。ステップS125で“YES”であれば、当該検出感情があると判定できるので、ステップS127で、検出感情の識別情報をメモリ64の認識感情データ領域に記憶する。一方、ステップS125で“NO”であれば、感情を認識することができないので、図5のステップS9へ進む。なお、ステップS127を終了すると、上述したステップS61〜ステップS65の処理を実行する。
【0120】
なお、上述の各実施例では、発話音声の非言語情報に基づく感情認識結果と顔画像の表情に基づく感情認識の結果とを組み合わせて、緊張の感情の有無を判定するようにしていた。しかしながら、たとえば、緊張の認識の精度があまり要求されないような場合、相手に緊張の感情のみがあるか否かを判断する場合、一時的な感情を認識しないでもよい場合、表情による感情認識が失敗した場合等には、音声による感情認識結果のみに基づいて、緊張の有無を判定するようにしてもよい。この場合には、たとえば、図6のステップS35で使用される表情の重みα(緊張)の値を0に近づける、または0に設定すればよい。これによって、表情による感情認識結果データgf(emox)を緊張判別に用いないようにすることができる。
【図面の簡単な説明】
【0121】
【図1】この発明の一実施例のコミュニケーションロボットの一例を示す外観図である。
【図2】図1実施例のロボットの電気的構成の一例を示すブロック図である。
【図3】メモリに記憶されるプログラムの一部を示す図解図である。
【図4】メモリのデータ記憶領域のメモリマップの一部を示す図解図である。
【図5】図1実施例のロボットの動作の一例の一部を示すフロー図である。
【図6】図5の続きの一部を示すフロー図である。
【図7】図6の続きを示すフロー図である。
【図8】認識感情が喜びの場合の感情対応行動処理の動作の一例を示すフロー図である。
【図9】認識感情が怒りの場合の感情対応行動処理の動作の一例を示すフロー図である。
【図10】図6の続きの変形例を示すフロー図である。
【符号の説明】
【0122】
10 …コミュニケーションロボット
34 …マイク
36R,36L …眼カメラ
56 …スピーカ
60 …CPU
64 …メモリ
66 …モータ制御ボード
68 …センサ入力/出力ボード
70 …音声入力/出力ボード
86 …音声認識用辞書DB

【特許請求の範囲】
【請求項1】
コミュニケーションの相手の発話音声を取得する音声取得手段を備えるコミュニケーションロボットであって、
前記音声取得手段によって取得された音声データから得られる非言語的情報に基づいて緊張の感情の有無を判定する緊張判定手段、および
前記緊張判定手段によって緊張の感情があると判定されたとき、緊張緩和行動を実行する第1行動実行手段を備える、コミュニケーションロボット。
【請求項2】
前記相手の顔画像を取得する顔画像取得手段をさらに備え、
前記緊張判定手段は、前記音声データから得られる非言語的情報および前記顔画像取得手段によって取得された顔画像データから得られる表情に基づいて緊張の感情の有無を判定する、請求項1記載のコミュニケーションロボット。
【請求項3】
前記緊張判定手段によって緊張の感情がないと判定されたとき、前記音声データから得られる非言語的情報および前記顔画像データから得られる表情の少なくとも一方に基づいて、感情の認識を行う感情認識手段をさらに備える、請求項2記載のコミュニケーションロボット。
【請求項4】
前記感情認識手段によって認識された感情に対応する行動を実行する第2行動実行手段をさらに備える、請求項3記載のコミュニケーションロボット。
【請求項5】
前記音声取得手段によって取得された発話音声を認識する音声認識手段、および
前記音声認識手段による音声認識結果から前記感情認識手段によって認識された感情に対応する認識語を抽出する認識語抽出手段をさらに備える、請求項3または4記載のコミュニケーションロボット。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2006−123136(P2006−123136A)
【公開日】平成18年5月18日(2006.5.18)
【国際特許分類】
【出願番号】特願2004−317765(P2004−317765)
【出願日】平成16年11月1日(2004.11.1)
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 2004年9月10日 社団法人情報処理学会発行の「情報処理学会研究報告 情処研報Vol.2004 No.90」に発表
【新規性喪失の例外の表示】特許法第30条第1項適用申請有り 平成16年10月25日 社団法人情報処理学会関西支部主催の「平成16年度 情報処理学会関西支部 支部大会」において文書をもって発表
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成16年度独立行政法人情報通信研究機構、研究テーマ「超高速知能ネットワーク社会に向けた新しいインタラクション・メディアの研究開発」に関する委託研究、産業活力再生特別措置法第30条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】