(57)【要約】  【構成】コミュニケーションロボットは、相手の発話があったとき、顔画像データを取得して(S25)表情による感情認識を行う(S27)とともに、発話音声データを取得して(S29)非言語情報に基づく感情認識を行う(S31)。感情認識結果に基づいて、文脈依存し難い緊張の感情の有無を判定し(S35,S37)、緊張があるときは緊張緩和行動を実行する(S43)。緊張がないときは感情認識結果に基づいて喜びや怒り等の文脈依存し易い感情の有無を判定する。感情が認識されたとき、音声認識結果から認識感情に対応する候補を抽出して認識語を決定し、また認識感情に対応する行動を実行する。  【効果】相手の緊張を除去でき、文脈に依存し易い感情の表出を促して相手の感情や現在の状況を認識できる。相手の感情に応じた自然なコミュニケーション、音声認識の性能向上によるより深いコミュニケーションを実現できる。【選択図】図６
2006123136.tif 000002
【特許請求の範囲】
【請求項１】
コミュニケーションの相手の発話音声を取得する音声取得手段を備えるコミュニケーションロボットであって、
前記音声取得手段によって取得された音声データから得られる非言語的情報に基づいて緊張の感情の有無を判定する緊張判定手段、および
前記緊張判定手段によって緊張の感情があると判定されたとき、緊張緩和行動を実行する第１行動実行手段を備える、コミュニケーションロボット。
【請求項２】
前記相手の顔画像を取得する顔画像取得手段をさらに備え、
前記緊張判定手段は、前記音声データから得られる非言語的情報および前記顔画像取得手段によって取得された顔画像データから得られる表情に基づいて緊張の感情の有無を判定する、請求項１記載のコミュニケーションロボット。
【請求項３】
前記緊張判定手段によって緊張の感情がないと判定されたとき、前記音声データから得られる非言語的情報および前記顔画像データから得られる表情の少なくとも一方に基づいて、感情の認識を行う感情認識手段をさらに備える、請求項２記載のコミュニケーションロボット。
【請求項４】
前記感情認識手段によって認識された感情に対応する行動を実行する第２行動実行手段をさらに備える、請求項３記載のコミュニケーションロボット。
【請求項５】
前記音声取得手段によって取得された発話音声を認識する音声認識手段、および
前記音声認識手段による音声認識結果から前記感情認識手段によって認識された感情に対応する認識語を抽出する認識語抽出手段をさらに備える、請求項３または４記載のコミュニケーションロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明はコミュニケーションロボットに関し、特にたとえば、コミュニケーションの相手から取得した非言語的情報に基づいてその感情を認識する、コミュニケーションロボットに関する。
【背景技術】
【０００２】
入力されたユーザの音声および顔画像からその感情を判定し、判定された感情に応じた応答を出力する技術の一例がたとえば特許文献１に開示される。具体的には、この特許文献１の対話装置では、音声の特徴として音声のピッチが抽出されるとともに、顔画像の特徴として視線方向すなわちアイコンタクトが検出される。そして、平均ピッチの変化量とアイコンタクトの時間長の変化量に応じて、ユーザの感情が、「楽しい」、「退屈」、「いらいら」、「怒っている」および「普通」に判定され、判定された感情に応じたピッチパタンの音声とＣＧの顔画像とがユーザに提示される。
【０００３】
一方、発明者等の研究によれば、音声および身振りを用いて人間とコミュニケーションを図るコミュニケーションロボットとの対話において、多くの場合で人間に緊張の感情が見られることがわかった。人間は機械等との対話に慣れていないため、人間がコミュニケーションロボットと初めて対面した場合などに緊張が表出し易いと考えられる。この緊張の感情は、個人の性格にも依存するものであり、たとえば発話単位では変化しにくい持続的な感情である。そして、このような緊張の感情がある場合には、たとえば喜びや怒りなどコミュニケーションの文脈に依存し易い一時的な感情は表出し難いことがわかった。
【特許文献１】特開平８−３３９４４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１の対話装置では、人間の緊張が検出されることがなく、緊張への対応が何ら考慮されていない。上述のように対話相手に緊張の感情が表出している場合には、他の一時的な感情の表出が抑えられてしまうので、特許文献１の技術では対話相手の感情を認識することが困難である。したがって、相手の発話した内容など現在の状況を正確に認識することが困難であるので、相手の感情や現在の状況に対応することができず、相手との間で自然なあるいは深いコミュニケーションを実現することができない。
【０００５】
それゆえに、この発明の主たる目的は、コミュニケーションの相手の感情を認識できる、コミュニケーションロボットを提供することである。
【０００６】
この発明の他の目的は、コミュニケーションの文脈に依存した相手の感情の表出を促して、現在の状況を認識することができる、コミュニケーションロボットを提供することである。
【０００７】
この発明のその他の目的は、相手の感情を認識して、より深いコミュニケーションを実現できる、コミュニケーションロボットを提供することである。
【課題を解決するための手段】
【０００８】
請求項１の発明は、コミュニケーションの相手の発話音声を取得する音声取得手段を備えるコミュニケーションロボットであって、音声取得手段によって取得された音声データから得られる非言語的情報に基づいて緊張の感情の有無を判定する緊張判定手段、および緊張判定手段によって緊張の感情があると判定されたとき、緊張緩和行動を実行する第１行動実行手段を備える、コミュニケーションロボットである。
【０００９】
請求項１の発明では、コミュニケーションロボットは音声取得手段を含み、音声取得手段によってコミュニケーションの相手の発話音声が取得される。緊張判定手段は、音声取得手段によって取得された音声データから得られる非言語的情報に基づいて、緊張の感情の有無を判定する。実施例では、非言語的情報として、基本周波数、パワー、発話時間、発話間間隔などの複数の特徴量が抽出され、これら特徴量に基づいて緊張の感情の有無が判定される。第１行動実行手段は、緊張の感情がないと判定されたとき、緊張緩和行動を実行する。この緊張緩和行動は、ロボットと相手とが相互に対話（インタラクション）することができるようにする行動である。たとえば、歌を歌ったり、じゃんけんをしたりして、相手をリラックスさせるような行動を実行する。
【００１０】
したがって、請求項１の発明によれば、相手の音声の非言語的情報から相手に緊張の感情があるか否かを認識することができ、緊張の感情がある場合には、相手の緊張を緩和させる行動を実行することができる。したがって、相手の緊張を緩和させることによって、コミュニケーションの文脈に依存し易い感情の表出を促すことができる。これにより、相手の感情の認識を行うことが可能な状態に導くことができる。また、相手をリラックスさせてロボットとのコミュニケーションを気軽に楽しんでもらうことが可能である。
【００１１】
請求項２の発明は、請求項１の発明に従属し、相手の顔画像を取得する顔画像取得手段をさらに備え、緊張判定手段は、音声データから得られる非言語的情報および顔画像取得手段によって取得された顔画像データから得られる表情に基づいて緊張の感情の有無を判定する。
【００１２】
請求項２の発明では、顔画像取得手段は相手の顔画像を取得する。そして、緊張判定手段は、音声データから得られる非言語的情報および顔画像データから得られる表情に基づいて、緊張の感情の有無を判定する。実施例では、FACSを用いて顔画像データからAUに基づいて顔の動きが特徴量として抽出されて、表情が取得され、その感情が認識される。そして、音声による感情の認識結果と表情による感情認識結果とを組み合わせて緊張の感情の有無が判定される。したがって、請求項２の発明によれば、相手の音声の非言語的情報と顔の表情とを組み合わせて緊張の感情を認識することができ、請求項１の発明と同様な効果を奏する。
【００１３】
請求項３の発明は、請求項２の発明に従属し、緊張判定手段によって緊張の感情がないと判定されたとき、音声データから得られる非言語的情報および顔画像データから得られる表情の少なくとも一方に基づいて、感情の認識を行う感情認識手段をさらに備える。
【００１４】
請求項３の発明では、感情認識手段は、緊張の感情が無いと判定されたとき、音声の非言語的情報および顔の表情の少なくとも一方に基づいて、感情の認識を行う。緊張の感情が無い場合には、文脈に依存し易い感情の表出が促されるので、音声の非言語的情報および顔表情に基づいて、感情の認識をすることができる。実施例では、喜び、怒り、嫌悪、恐れ、悲しみ、驚きなどの感情を認識することができる。したがって、請求項３の発明では、コミュニケーション文脈に依存し易い感情を認識することができ、現在の状況を認識することができる。
【００１５】
請求項４の発明は、請求項３の発明に従属し、感情認識手段によって認識された感情に対応する行動を実行する第２行動実行手段をさらに備える。
【００１６】
請求項４の発明では、第２行動実行手段は、認識された感情に対応する行動を実行する。たとえば、喜びの感情が認識された場合には、相手が肯定的な応答をしていることも把握できるので、喜びの感情に対応する行動や、肯定的な応答に対応する行動を実行することができる。また、たとえば、怒りなどの否定的な感情が認識された場合には、相手が否定的な応答をしていることも把握できるので、その感情に対応する行動や、否定的な応答に対応する行動を実行することができる。したがって、認識された相手の感情や現在の状態に対応する行動を相手に提示することができるので、より自然なコミュニケーションを実現することができる。
【００１７】
請求項５の発明は、請求項３または４の発明に従属し、音声取得手段によって取得された発話音声を認識する音声認識手段、および音声認識手段による音声認識結果から感情認識手段によって認識された感情に対応する認識語を抽出する認識語抽出手段をさらに備える。
【００１８】
請求項５の発明では、取得した相手の発話音声を音声認識手段が音声認識する。そして、認識語抽出手段は、音声認識の結果から、認識されている相手の感情に対応する認識語を抽出する。このように、音声認識結果を認識感情に対応するものに限定することができるので、音声認識の性能を向上することができる。したがって、相手の発話内容を精度良く特定することができるので、より深いコミュニケーションを実現することができる。
【発明の効果】
【００１９】
この発明によれば、コミュニケーションの相手の音声の非言語的情報や顔表情に基づいて、相手に緊張の感情があると判定された場合には、相手の緊張を緩和させる行動を実行することができる。相手の緊張を緩和させることによって、文脈に依存し易い感情の表出を促すことができるので、相手の感情を認識することが可能な状態に導くことができる。したがって、相手の感情を認識することができ、現在の状況を認識することができる。また、認識した相手の感情や現在の状況に対応する行動を実行することができる。さらに、認識した相手の感情や現在の状況に基づいて、音声認識の認識語の候補を絞り込むことができるので、音声認識の性能を向上させることができる。したがって、より自然な、より深いコミュニケーションを実現することができる。
【００２０】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２１】
図１を参照して、この実施例のコミュニケーションロボット（以下、単に「ロボット」と言う。）１０は、主として人間のようなコミュニケーションの対象とコミュニケーションすることを目的とした相互作用指向のものであり、身振りおよび音声の少なくとも一方を用いてコミュニケーションを行う機能を備えている。
【００２２】
ロボット１０は台車１２を含み、この台車１２の下面にはロボット１０を移動させる２つの車輪１４が設けられる。２つの車輪１４は車輪モータ１６（図２参照）によって独立駆動され、台車１２すなわちロボット１０を前後左右任意の方向に動かすことができる。
【００２３】
なお、図１においては省略するが、台車１２の前面には、衝突センサ１８（図２参照）が取り付けられ、この衝突センサ１８は台車１２への人や他の障害物の接触を検知する。つまり、ロボット１０の移動中に障害物との接触を検知すると、直ちに車輪１４の駆動を停止してロボット１０の移動を急停止させる。
【００２４】
また、この実施例では、ロボット１０の背の高さは、人、特に子供に威圧感を与えることのないように、１００ｃｍ程度とされる。ただし、この背の高さは変更可能である。
【００２５】
台車１２の上には、多角形柱のセンサ取付パネル２０が設けられ、このセンサ取付パネル２０の各面には超音波距離センサ２２が取り付けられる。この実施例ではたとえば２４個の超音波距離センサ２２が周囲３６０度にわたるように設けられる。この超音波距離センサ２２は、センサ取付パネル２０すなわちロボット１０の周囲の人や障害物との距離を計測するものである。具体的には、超音波距離センサ２２は超音波を発射し、その超音波が人から反射されて超音波距離センサ２２に入射されたタイミングを測定して、人等との間の距離情報を出力する。
【００２６】
また、台車１２の上には、さらに、その下部がセンサ取付パネル２０に囲まれて、ロボット１０の胴体が直立するように設けられる。この胴体は、下部胴体２４と上部胴体２６とによって構成され、下部胴体２４および上部胴体２６は、連結部２８によって互いに連結される。図示は省略するが、連結部２８には昇降機構が内蔵されていて、この昇降機構を用いることによって、上部胴体２６の高さすなわちロボット１０の背の高さを変化させることができる。昇降機構は、後述するように、腰モータ３０（図２参照）によって駆動される。
【００２７】
なお、上述したロボット１０の背の高さは、上部胴体２６をそれの最下位置にしたときのものである。したがって、ロボット１０の背の高さは、１００ｃｍ以上にすることも可能である。
【００２８】
上部胴体２６のほぼ中央には、１つの全方位カメラ３２と１つのマイク３４とが設けられる。全方位カメラ３２は、ロボット１０の周囲を撮影するものであり、後述する眼カメラ３６とは区別される。この全方位カメラ３２としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。
【００２９】
また、マイク３４は、周囲の音、とりわけコミュニケーションの相手である人が発する音声を取り込む。なお、これら全方位カメラ３２およびマイク３４の設置位置は上部胴体２６に限られず適宜変更され得る。
【００３０】
上部胴体２６の両肩には、それぞれ、肩関節３８Ｒおよび３８Ｌによって、右腕４０Ｒおよび左腕４０Ｌが設けられる。右腕４０Ｒおよび左腕４０Ｌは、それぞれ上腕４２Ｒおよび４２Ｌを含む。肩関節３８Ｒおよび３８Ｌは、それぞれ、３軸の自由度を有する。すなわち、肩関節３８Ｒは、Ｘ軸、Ｙ軸およびＺ軸のそれぞれの軸廻りにおいて上腕４２Ｒの角度を制御できる。Ｙ軸は、上腕４２Ｒの長手方向（または軸）に平行な軸であり、Ｘ軸およびＺ軸は、そのＹ軸に対して、それぞれ異なる方向から直交する軸である。他方、肩関節３８Ｌは、Ａ軸、Ｂ軸およびＣ軸のそれぞれの軸廻りにおいて上腕４２Ｌの角度を制御できる。Ｂ軸は、上腕４２Ｌの長手方向（または軸）に平行な軸であり、Ａ軸およびＣ軸は、そのＢ軸に対して、それぞれ異なる方向から直交する軸である。
【００３１】
また、上腕４２Ｒおよび４２Ｌのそれぞれの先端には、肘関節４４Ｒおよび４４Ｌを介して、前腕４６Ｒおよび４６Ｌが設けられる。肘関節４４Ｒおよび４４Ｌは、それぞれ、Ｗ軸およびＤ軸の軸廻りにおいて、前腕４６Ｒおよび４６Ｌの角度を制御できる。
【００３２】
なお、上腕４２Ｒおよび４２Ｌならびに前腕４６Ｒおよび４６Ｌの変位を制御するＸ軸，Ｙ軸，Ｚ軸，Ｗ軸およびＡ軸，Ｂ軸，Ｃ軸，Ｄ軸では、それぞれ、「０度」がホームポジションであり、このホームポジションでは、図１に示すように、上腕４２Ｒおよび４２Ｌならびに前腕４６Ｒおよび４６Ｌは下方に向けられる。
【００３３】
また、図１では省略されるが、上部胴体２６の肩関節３８Ｒおよび３８Ｌを含む肩の部分や上述の上腕４２Ｒおよび４２Ｌならびに前腕４６Ｒおよび４６Ｌには、それぞれ、タッチセンサ４８（図２で包括的に示す。）が設けられていて、これらのタッチセンサ４８は、人がロボット１０の当該各部位に触れたかどうかを検知する。
【００３４】
前腕４６Ｒおよび４６Ｌのそれぞれの先端には、手に相当する球体５０Ｒおよび５０Ｌがそれぞれ固定的に設けられる。ただし、指や掌の機能が必要な場合には、人の手の形をした「手」を用いることも可能である。
【００３５】
上部胴体２６の中央上方には、首関節５２を介して頭部５４が設けられる。首関節５２は、３軸の自由度を有し、Ｓ軸、Ｔ軸およびＵ軸の各軸廻りに角度制御可能である。Ｓ軸は首から真上（鉛直上向き）に向かう軸であり、Ｔ軸およびＵ軸は、それぞれ、そのＳ軸に対して異なる方向で直交する軸である。頭部５４には、人の口に相当する位置に、スピーカ５６が設けられる。スピーカ５６は、ロボット１０が自己の周辺の人に対してコミュニケーションを取るための音声ないし音を出力する。ただし、スピーカ５６は、ロボット１０の他の部位、たとえば胴体などに設けられてもよい。
【００３６】
また、頭部５４には、目に相当する位置に眼球部５８Ｒおよび５８Ｌが設けられる。眼球部５８Ｒおよび５８Ｌは、それぞれ眼カメラ３６Ｒおよび３６Ｌを含む。以下、右の眼球部５８Ｒと左の眼球部５８Ｌとをまとめて眼球部５８ということがあり、また、右の眼カメラ３６Ｒと左の眼カメラ３６Ｌとをまとめて眼カメラ３６ということもある。
【００３７】
眼カメラ３６は、ロボット１０に接近した人の顔や他の部分ないし物体等を撮影して、それに対応する映像信号を取り込む。眼カメラ３６としては、上述した全方位カメラ３２と同様のカメラを用いることができる。
【００３８】
たとえば、眼カメラ３６は眼球部５８内に固定され、眼球部５８は眼球支持部（図示せず）を介して頭部５４内の所定位置に取り付けられる。眼球支持部は、２軸の自由度を有し、α軸およびβ軸の各軸廻りに角度制御可能である。α軸およびβ軸は頭部５４に対して設けられる軸であり、α軸は頭部５４の上へ向かう方向の軸であり、β軸はα軸に直交しかつ頭部５４の正面側（顔）が向く方向に直交する方向の軸である。この実施例では、頭部５４がホームポジションにあるとき、α軸はＳ軸と平行であり、β軸はＵ軸と平行であるように設定される。このような頭部５４において、眼球支持部がα軸およびβ軸の各軸廻りに回転されることによって、眼球部５８ないし眼カメラ３６の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。
【００３９】
なお、眼カメラ３６の変位を制御するα軸およびβ軸では、「０度」がホームポジショ
ンであり、このホームポジションでは、図１に示すように、眼カメラ３６のカメラ軸は頭部５４の正面側（顔）が向く方向に向けられ、視線は正視状態となる。
【００４０】
図２はロボット１０の電気的な構成を示すブロック図であり、この図２を参照して、ロボット１０はＣＰＵ６０を含む。ＣＰＵ６０はマイクロコンピュータ或いはプロセサとも呼ばれ、ロボット１０の全体的な制御を担当する。ＣＰＵ６０は、バス６２を介して、メモリ６４、モータ制御ボード６６、センサ入力／出力ボード６８および音声入力／出力ボード７０に接続される。
【００４１】
メモリ６４は、図示は省略するが、ＲＯＭもしくはＨＤＤおよびＲＡＭ等を含む。ＲＯＭやＨＤＤには、ロボット１０を制御するためのプログラムおよびデータが予め記憶され、ＲＡＭはワークメモリやバッファメモリとして用いられる。ＣＰＵ６０はこの制御プログラムに従って、生成したデータや受信したデータなどをＲＡＭに一時的に記憶しつつ処理を実行する。
【００４２】
メモリ６４に記憶される制御プログラムは、音声および身体動作の少なくとも一方を用いた複数のコミュニケーション行動のそれぞれを実行するための複数の行動プログラム等を含む。メモリ６４にはまた、各コミュニケーション行動を実行するための必要なデータが記憶される。そのデータは、たとえば、個々の行動を実行する際に、スピーカ５６から発生すべき音声または声の音声データ（音声合成データ）、および所定の身振りを提示するための角度データ等を含む。このメモリ６４に記憶されたプログラムおよびデータに従って、ロボット１０は、自ら能動的にコミュニケーション行動を相手に提示し、それに対する相手の反応を認識してその認識結果に応じた行動をさらに提示することができるし、また、人間と同じような反応動作を行うことができる。
【００４３】
モータ制御ボード６６は、たとえばＤＳＰで構成され、各腕や頭部および眼球部等の各軸モータの駆動を制御する。すなわち、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、右眼球部５８Ｒのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図２では、まとめて「右眼球モータ」と示す。）７２の回転角度を制御する。同様に、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、左眼球部５８Ｌのα軸およびβ軸のそれぞれの角度を制御する２つのモータ（図２では、まとめて「左眼球モータ」と示す。）７４の回転角度を制御する。
【００４４】
また、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、右肩関節３８ＲのＸ軸、Ｙ軸およびＺ軸のそれぞれの角度を制御する３つのモータと右肘関節４４ＲのＷ軸の角度を制御する１つのモータとの計４つのモータ（図２では、まとめて「右腕モータ」と示す。）７６の回転角度を調節する。同様に、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、左肩関節３８ＬのＡ軸、Ｂ軸およびＣ軸のそれぞれの角度を制御する３つのモータと左肘関節４４ＬのＤ軸の角度を制御する１つのモータとの計４つのモータ（図２では、まとめて「左腕モータ」と示す。）７８の回転角度を調整する。
【００４５】
さらに、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、頭部５４のＳ軸、Ｔ軸およびＵ軸のそれぞれの角度を制御する３つのモータ（図２では、まとめて「頭部モータ」と示す。）８０の回転角度を制御する。さらにまた、モータ制御ボード６６は、ＣＰＵ６０からの制御データを受け、腰モータ３０および２つの車輪１４をそれぞれ駆動する２つのモータ（図２では、まとめて「車輪モータ」と示す。）１６の回転角度を制御する。
【００４６】
なお、この実施例では、車輪モータ１６を除くモータは、制御を簡素化するために、ステッピングモータ或いはパルスモータを用いるようにしてある。ただし、車輪モータ１６と同様に、直流モータを用いるようにしてもよい。
【００４７】
センサ入力／出力ボード６８もまた、同様に、ＤＳＰで構成され、各センサからの信号ないしデータを取り込んでＣＰＵ６０に与える。すなわち、超音波距離センサ２２のそれぞれからの反射時間（距離情報）に関するデータがこのセンサ入力／出力ボード６８を通してＣＰＵ６０に入力される。また、全方位カメラ３２からの映像信号が、必要に応じてこのセンサ入力／出力ボード６８で所定の処理を施された後、画像データとしてＣＰＵ６０に入力される。眼カメラ３６からの映像信号も、同様にして、必要に応じてこのセンサ入力／出力ボード６８で所定の処理を施された後、画像データとしてＣＰＵ６０に入力される。また、上述した複数のタッチセンサ４８からの信号がセンサ入力／出力ボード６８を介してＣＰＵ６０に与えられる。さらに、上述した衝突センサ１８からの信号も、同様にして、ＣＰＵ６０に与えられる。
【００４８】
音声入力／出力ボード７０もまた、同様に、ＤＳＰで構成され、ＣＰＵ６０から与えられる音声合成データに従った音声または声をスピーカ５６から出力させる。また、マイク３４からの音声入力が、音声入力／出力ボード７０を介して音声入力データとしてＣＰＵ６０に取り込まれる。
【００４９】
また、ＣＰＵ６０は、バス６２を介して通信ＬＡＮボード８２および無線通信装置８４に接続される。通信ＬＡＮボード８２は、ＤＳＰで構成され、ＣＰＵ６０からの送信データを無線通信装置８４に与え、無線通信装置８４から送信データを、たとえば無線ＬＡＮまたはインタネットのようなネットワークを介して外部のコンピュータに送信させる。また、通信ＬＡＮボード８２は、無線通信装置８４を介してデータを受信し、受信したデータをＣＰＵ６０に与える。つまり、この通信ＬＡＮボード８２および無線通信装置８４によって、ロボット１０は外部のコンピュータ等と無線通信を行うことができる。
【００５０】
さらに、ＣＰＵ６０は、バス６２を介して音声認識用辞書データベース（ＤＢ）８６に接続される。音声認識用辞書ＤＢ８６は、相手が発する言葉（音声）の内容を音声認識するための辞書を記憶しているデータベースである。音声認識用辞書は、たとえば、複数の人間の日本語または他の言語による単語や日常会話の言葉等を記録した複数の音声データを含む。また、音声データのそれぞれは、当該単語等が発話される際の感情を示す情報に関連付けて記憶されている。つまり、人間にどの感情がある場合に発話される単語等であるかが分かるように各音声データが記憶されている。
【００５１】
このロボット１０は、コミュニケーションの相手の感情を認識するためのものであり、相手のノンバーバル(nonverbal)情報に基づいてその感情を認識する。ノンバーバル（非言語的な）情報とは、人々が意思を伝える際の言語（バーバル情報）などの明示的な情報ではなく、意味が表に表れない暗示的な情報である。具体的には、顔の表情、言語情報以外の音声情報（「音声表情」とも呼ばれる。）、手や腕のジェスチャ、視線などである。言語内容とは異なり、人間の行為や行動は、その感情から切り離せるものではなく、また、言語内容以上の大きな意味を持つことがしばしばある。ノンバーバル情報は、相手に自分の感情を伝達する手段として重要であり、人間は、意識する／しないに関係なく、ノンバーバルな情報で物事を判断してしまうことが多い。したがって、このロボット１０では、相手のノンバーバル情報に基づいて感情を認識するようにした。具体的には、この実施例では、人間の顔の表情と、話し方やニュアンスなどの韻律情報（音声表情、または音声の非言語的情報）とに基づいて、その感情が判別される。
【００５２】
背景技術で述べたように、本発明者等の研究によれば、緊張の感情がある場合には、文脈に依存する他の感情の表出が妨げられるということが分かっている。したがって、この実施例では、まず、緊張の感情の判定が他の感情の判定よりも優先して行われる。
【００５３】
そして、緊張の感情があると判定された場合には、相手の緊張を緩和させる行動を実行する。緊張を緩和させることによって、文脈に依存し易い一時的な感情の表出を促して、感情の認識を行えるような状態に導くことができる。
【００５４】
また、緊張の感情が無いと判定された場合には、文脈に依存する一時的な感情が表出し易いので、相手の感情の認識を行う。そして、相手の感情を判定できた場合には、その感情に対応する行動を実行する。また、音声認識の結果を認識された感情に対応するものに限定する。
【００５５】
図３には、メモリ６４に記憶されるロボット１０の制御プログラムの一例が示される。また、図４には、メモリ６４のＲＡＭのデータ記憶領域の一例が示される。なお、図３では、ロボット１０の制御プログラムに含まれるプログラムのうち一部のみを示しており、メモリ６４にはロボット１０の制御に必要なその他のプログラムが記憶されている。また、図４では、データ記憶領域のうちの一部のみを示しており、データ記憶領域には処理に必要な種々のデータが記憶される。
【００５６】
行動処理プログラムは、ロボット１０のコミュニケーション行動を制御するためのプログラムである。このプログラムによって、たとえば、コミュニケーション相手の顔を見つけたときに会話などの行動を実行したり、あるいは、相手の顔を発見できなかったときや相手の感情が認識できなかったときなどの行動を制御したりする。また、ロボット１６の実行した行動の履歴が生成され、図４に示すように行動履歴データとしてＲＡＭの所定領域に記憶される。行動履歴データでは、各行動の識別子が実行順に記述される。
【００５７】
表情による感情認識プログラムは、人間の顔の表情からその感情を認識するためのプログラムである。このプログラムによれば、たとえば、FACS(Facial Action Coding System)を用いて、Ekmanの基本６感情（怒り、嫌悪、恐れ、喜び、悲しみ、驚き）と普通とを含む７感情を判別することができる。つまり、表情による感情認識プログラムでは文脈に依存し易い一時的な感情を判別することができる。
【００５８】
FACSは、Ekmanらによって開発された表情記述法である。これは、顔の動きをAU(Action Unit)と呼ばれる最小単位に分類し、このAUの組み合わせによって表情を記述するものであり、人間のあらゆる表情を記述可能であるとされる。
【００５９】
このプログラムでは、詳しくは、取得した顔の画像データからAUに基づいて顔の筋肉の動きを特徴量として求める。そして、それぞれの感情について、その特徴量の組み合わせを学習させておいたSVM(Support Vector Machine)を用いて、感情の有無を判別する。たとえば、喜びの表情は、(1)頬の筋肉が上に上がる、(2)目の上(眉)の筋肉が下にさがる、…という組み合わせで表すことができる。このような各感情の特徴に対する、取得した表情の近さの程度に基づいて、その感情の判別を行う。表情による感情認識の結果として、各感情の確率を示す感情認識結果データｇf(eomx)が生成され、図４に示すようにＲＡＭの所定領域に記憶される。ここで、emoxは、表情によって認識される各感情の識別情報であり、喜び、怒り、嫌悪、恐れ、悲しみ、驚きおよび普通を示す。
【００６０】
この実施例の表情による感情認識プログラムとしては、たとえば、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)。
【００６１】
音声による感情認識プログラムは、人間の音声表情からその感情を認識するためのプログラムである。このプログラムによれば、たとえば、緊張、喜び、および困惑の３つの感情の有無を判別することができる。つまり、音声による感情認識プログラムでは、文脈に依存し難い持続的な感情と一時的な感情の両方について判別をすることができる。
【００６２】
このプログラムでは、詳しくは、取得した音声データから、基本周波数(F0)の最大値、F0の初期値、F0の平均値、F0のレンジ（最大値と最小値の差）、パワーの最大値、パワーの平均値、発話時間（発話開始から終了までの時間）の特徴量（７つ）を抽出する。そして、この７つの特徴量のそれぞれについて、(1)そのままの値、(2)前発話との差分した値、(3)その差分値を現在の値で正規化した値、(4)第１発話で正規化した値を算出して、２８個の特徴量として求める。さらに、ロボット１０の発話終了から相手の発話開始までの時間（発話間の間隔）を特徴量として求める。そして、これら２９個の特徴量（すなわち、音声データから抽出したノンバーバル情報）に基づいて、SVMを用いて各感情の判別を行う。なお、緊張の感情の判別に用いる学習アルゴリズムとしては、SVMの他にC5.0を用いる。感情認識の結果として、各感情の確率を示す感情認識結果データｇa(emoy)が生成され、図４に示すようにＲＡＭの所定領域に記憶される。ここで、emoyは、音声によって認識される各感情の識別情報であり、緊張、喜びおよび困惑を示す。
【００６３】
この実施例の音声による感情認識プログラムとしては、たとえば、伊藤らによって開発された音声による感情認識システムの技術を適用することができ、このシステムは次の文献で開示されている：伊藤亮介（他３名），“ロボットとの音声対話におけるユーザの心的状況の分析”，情報処理学会研究会資料，SLP-45-18，(2003.2)。
【００６４】
音声認識プログラムは、音声認識を行うためのプログラムである。このプログラムでは、入力音声データから特徴を抽出し、この入力音声データの特徴と音声認識用辞書ＤＢ８６の音声データの特徴とをたとえばＨＭＭ（隠れマルコフモデル）を用いて照合することによって、人間の発話内容の特定を行う。音声認識の結果として、音声認識結果データＲＷ(i,emo)が生成され、図４に示すようにＲＡＭの所定領域に記憶される。このデータＲＷ(i,emo)は、優先度iが１〜Ｎまでの認識語（その識別情報）を含むデータである。優先度iは、音声認識結果の確からしさを示し、iの値が小さいほど優先度が高い。また、このデータは、その単語または言葉が発話される際の感情を示す情報emoを含んでいる。ここで、emoは、緊張を除いて認識しようとする感情であり、喜び、怒り、嫌悪、恐れ、悲しみ、および驚きを示す。したがって、感情認識結果と照合して感情に対応するものに限定することによって、最適な単語ないし言葉を音声認識結果として用いることが可能になる。
【００６５】
このプログラムでは、相手の感情が認識された場合には、音声認識結果データＲＷ(i,emo)からその認識感情に対応するデータＲＷ(i,認識感情)を、認識語の候補として抽出する。そして、候補ＲＷ(i,認識感情)の中から、優先度iが最高位であるものを、認識語として決定する。決定された認識語を示す情報（識別情報）は、図４に示すように、認識語データとして、ＲＡＭの所定領域に記憶される。
【００６６】
緊張判定プログラムは、感情認識の結果に基づいて相手に緊張の感情があるか否かを判定するためのプログラムである。このプログラムによって、緊張の感情の判定が他の感情の判定よりも優先して行われる。
【００６７】
具体的には、表情による感情認識結果と音声による感情認識結果とを重み付けして組み合わせることによって評価値Ｖ(緊張)を算出する。緊張の評価値は次式で算出される：Ｖ(緊張)＝α(緊張)×ｇf(普通)＋β(緊張)×ｇa(緊張)。ここで、αは、表情による認識結果ｇf(emox)の値に対する重みであり、βは、音声による認識結果ｇa(emoy)の値に対する重みであり、いずれも緊張の値を算出するための重みである。音声による感情認識では、緊張の感情の認識結果ｇa(緊張)が得られるが、表情による感情認識では、緊張の感情を判別することができないので、普通の感情の認識結果ｇf(普通)の値を採用するようにしている。そもそも、表情による感情認識プログラムは一時的な感情を認識するためのものであり、持続的な感情である緊張を認識するためのものではない。そして、上述のように、持続的な感情である緊張の感情がある場合には、文脈に依存する他の一時的な感情の表出が抑えられる。このため、緊張の感情がある場合には、この表情による感情認識処理の結果として、(1)喜びの感情ではなく、(2)その他の感情の認識結果の値が似通っていて、感情を一意に決め難くなる、という結果が生じる。つまり、相手に緊張の感情がある場合には、喜びの確率が低くかつどの感情にも属さないという結果が得られて、普通の感情が認識されることとなる。したがって、Ｖ(緊張)を算出する場合には、ｇf(普通)の値を利用する。また、緊張を算出するための重みの値には、実験に基づいて所定の値が設定される。音声による感情認識で緊張の感情を直接判定できるので、音声の重みβ(緊張)は、表情の重みα(緊張)よりも高く設定される。
【００６８】
そして、緊張の評価値Ｖ(緊張)が、緊張の判定のための閾値γ(緊張)を超えるか否かを判定する。その結果、Ｖ(緊張)がその閾値γ(緊張)よりも大きいと判定された場合には、相手には緊張の感情があるということが認識される。なお、評価値Ｖを判定するための閾値γの値は、各感情に関して、実験に基づいて所定の値をそれぞれ設定している。
【００６９】
緊張緩和行動プログラムは、緊張の感情があると判定されたときに、相手の緊張を緩和させるための行動を実行するためのプログラムである。この緊張緩和行動とは、ロボット１０が、コミュニケーション（ロボット１０からの一方的な発話を含む。）だけでなく、インタラクション（ロボット１０と相手が相互に対話する）を行えるようにする行動である。
【００７０】
緊張緩和行動の一例として、ロボット１０は、「歌を歌うね」と発話して歌を歌ったり、あるいは、「じゃんけんしようよ」と発話してじゃんけんをしたりする。その他の例として、自己紹介をする（たとえば、「ロボビーです。ＡＴＲから来たよ。」と発話する）、ラジオ体操をする、相手をくすぐる、まねっこをする（たとえば、「指揮者の真似ができるよ。いち、に、さん。」と発話しつつ腕を振る）、当てっこゲームをする（たとえば、「ロボビーの手、どっちが光ると思う？『いっせいのーで』で光ると思う方の手を触ってね」と発話する）、相手の顔を見て会話をする（たとえば、「緊張しないで大丈夫だよ」と発話する）、などの種々の行動を実行することができる。ただし、特に音声認識をする必要のない、音声認識ができなくても実行に支障のないような行動を実行する。
【００７１】
また、このような緊張緩和行動には、すぐに緊張を緩和する行動と、長い時間をかけて緊張を緩和する行動との少なくとも２種類が含まれている。すぐに緊張を緩和する行動は、相手をくすぐる、ラジオ体操をする等の行動を含む。たとえば、相手をくすぐる行動によって、笑わせることが可能であり、また、ラジオ体操をする行動によれば、一緒に体を動かすことが可能であるので、相手の緊張をすぐに緩和させることが可能になる。一方、長い時間をかけて緊張を緩和する行動は、会話をする、自己紹介をする等の行動を含む。たとえば、自己紹介をする行動によって、徐々に相互的な会話をするようになり、相手の緊張をだんだんと解いていくことが可能になる。
【００７２】
また、ロボット１０は、たとえば、様子を見ながら（緊張の感情の認識（判定）をしながら）、すぐに緊張を緩和する行動と長い時間をかけて緊張を緩和する行動のどちらを実行すべきかを決定して、その決定した行動を実行する。一例として、会話開始からの経過時間や状況等に応じて、行動の種類を切り替えるようにしてよい。たとえば、開始から一定時間の間はすぐに緩和する行動を実行し、その一定時間が経過しても未だ緊張の感情があると判定されている場合には、長い時間をかけて緩和する行動に切り替えて、比較的長い時間の間当該種類に属する種々の行動を実行していくことが考えられる。あるいは、相手の緊張の評価値Ｖ（緊張）の値に応じて、行動の種類を切り替えるようにしてもよい。
【００７３】
この緊張緩和行動プログラムによって、上記のような種々の行動が、音声および身振りの少なくとも一方を用いて相手に提示される。これにより、たとえば相手をリラックスさせたり和ませたりするので、相手の緊張を和らげて、相手から緊張を取り除くことができ、ロボット１０と相手とがインタラクションをすることができるようになる。したがって、緊張を緩和させることによって、文脈に依存し易い一時的な感情の表出を促して、感情の認識を行えるような状態に導くことができる。また、緊張を解くことによって相手にロボット１０とのコミュニケーションやインタラクションを気軽に楽しんでもらうことも可能になる。
【００７４】
また、このような緊張緩和行動は、緊張の感情が認識されなくなるまで繰り返し提示される。したがって、相手の緊張を上手く緩和できるように、たとえば同一行動が連続して提示されないようにするなどして、種々の行動を提示するのが望ましい。なお、比較的長い所定時間（たとえば５分程度）が経過しても、相手から緊張が取り除かれなかった場合には、相手の一時的な感情を認識することを中止するようにしてもよい。
【００７５】
感情認識プログラムは、緊張の感情がないと判定されたときに、相手の感情を認識するためのプログラムである。緊張の感情がないと判定されたときには、文脈に依存する一時的な感情が表出し易いので、このプログラムによって感情の認識を行う。たとえば、この実施例では、各感情の感情認識結果データのうち、最大値を示している感情について、その感情の有無の判定が行われる。
【００７６】
詳しくは、他の感情のうち、喜びについては、表情による認識結果データｇf(emox)と音声による認識結果データｇa(emoy)の両方に、その認識結果が含まれているので、まず、ｇf(喜び)がｇf(emox)の中で最大値を示し、かつ、ｇa(喜び)が緊張を除くｇa(emoy)の中で最大値を示すか否かを判定する。その結果、喜びが表情および音声の両方で最大値を示す場合には、喜びの評価値Ｖ（喜び）を、両認識結果を重み付けして組み合わせる次式に従って算出する：Ｖ(喜び)＝α(喜び)×ｇf(喜び)＋β(喜び)×ｇa(喜び)。ここで、重みα(喜び)および重みβ(喜び)の値には、実験に基づいて所定の値が設定される。また、表情による認識結果に対する重みα(喜び)の値は、認識の精度を考慮して、音声による認識結果に対する重みβ(喜び)の値よりも高く設定される。
【００７７】
そして、喜びの評価値Ｖ（喜び）が、その閾値γ(喜び)よりも大きいか否かを判定する。その結果、Ｖ(喜び)がγ(喜び)よりも大きいと判定された場合には、相手には喜びの感情があるということが認識される。
【００７８】
また、他の感情については、表情による認識結果データｇf(emox)のうち、最大値を示すを示す感情を検出して、その検出感情の表情による認識結果データｇf(検出感情)がその閾値γ（検出感情）よりも大きいか否かを判定する。その結果、ｇf(検出感情)がγ（検出感情）よりも大きいと判定された場合には、相手にはその検出感情（怒り、嫌悪、おそれ、悲しみ、驚きのいずれか）があるということが認識される。
【００７９】
このようにして、認識された感情（識別情報：emo）が、図４に示すように、認識感情データとしてＲＡＭの所定領域に記憶される。
【００８０】
なお、他の実施例では、すべての感情の評価値を算出して、その最大値を示すものを検出し、その検出感情について感情の有無を判定するようにしてもよい。各感情の評価値Ｖ(emo)は、表情による認識結果と音声による認識結果とを組み合わせることによって算出される。なお、上述では、音声による感情認識結果には、上述のように、緊張、喜び、および困惑の３つの感情に関する値のみ含まれ、喜び以外の他の感情に関する直接の値は含まれていない。したがって、喜び以外の他の感情の評価値を算出する際には、音声による感情認識結果のうち喜びおよび困惑に関する値と、表情による感情認識結果のうち当該感情に関する値とを組み合わせる。ただし、各項の重みを適切に設定する必要がある。なお、音声による感情認識において、喜び以外の他の感情を判別することが可能である場合には、同一の感情に関する認識結果の値を組み合わせるようにする。そして、当該最大値を示す感情に関する評価値が、その感情の判定のための閾値よりも大きいか否かを判定し、大きい場合には、当該感情があることが認識される。
【００８１】
感情対応行動プログラムは、認識された感情に対応する行動を実行するためのプログラムである。このプログラムによって、各認識感情に対応する種々の行動が実行される。また、実行する各行動は行動履歴データにも基づいて決定される。つまり、ロボット１０の過去の行動に応じて異なった対応をすることも可能である。さらにまた、上述のように、認識感情によって音声認識結果を絞り込むことによって、音声認識の精度が向上されているので、たとえば特定の認識語に対応する所定の行動を実行することもできる。
【００８２】
図５から図７にはロボット１０の動作の一例が示される。図５の最初のステップＳ１で、ロボット１０のＣＰＵ６０は、センサ入力／出力ボード６８を介して全方位カメラ３２および眼カメラ３６からそれぞれ画像データを取得してメモリ６４に記憶する。次に、ステップＳ３で、全方位カメラ３２の画像データに基づいて周囲に人を発見したかを判断する。たとえば、メモリ６４に取り込まれた画像データに基づいてフレーム間のＲＧＢ値の差分を求め、求められた差分値から移動物体を検出し、検出した物体を評価して人間が存在するかどうかを判定する。ステップＳ３で“ＹＥＳ”であれば、ステップＳ５で、眼カメラ３６の画像データに基づいてコミュニケーションの対象となる相手の顔を発見したか否かを判断する。たとえば、メモリ６４に取り込まれた画像データに基づいてフレームごとに人間の顔領域または肌色領域を検出し、人間の顔があるか否かを判定する。たとえば、メモリ６４にコミュニケーションの相手となる複数のユーザに関する情報を記憶しておく場合には、ユーザ情報としてその顔画像データを登録しておき、その顔画像データと照合することによって、顔を検出するようにしてもよい。
【００８３】
ステップＳ３またはステップＳ５で“ＮＯ”であれば、ステップＳ７で、感情認識と音声認識の初期化を行って、ステップＳ９で、たとえば「つまらない」と発話する行動を実行する。発話行動を実行する際には、メモリ６４から、その音声合成データを音声入力／出力ボード７０に与えて、スピーカ５６からその音声を出力する。また、この行動の識別子をメモリ６４の行動履歴データ領域に記録する。ステップＳ９を終了すると、処理はステップＳ１に戻る。このように、ロボット１０は、相手の顔を発見するまでは、相手の感情を認識することが不可能なので、たとえば「つまらない」と発話する行動など、ロボット１０とコミュニケーションを図るように人間の気を引いてロボット１０に近寄らせるような行動を実行するのが好ましい。また、ロボット１０が発話してから所定時間（たとえば５秒）経過しても相手からの発話がなかった場合にも、このステップＳ９でたとえば「つまらない」と発話する行動など、相手がロボット１０に応答するように促すような行動を実行するのが好ましい。また、相手の感情を認識できなかった場合にも、このステップＳ９でたとえば「つまらない」と発話する行動など、相手がより感情的に応答するように促すような行動を実行するのが好ましい。
【００８４】
一方、ステップＳ５で“ＹＥＳ”であれば、ステップＳ１１で、相手との会話を実行する。たとえば、「一緒に遊ぼうよ」と発話したり、「かわいいでしょ？」と発話したりする。また、実行した行動の識別子をメモリ６４の行動履歴データ領域に記録する。このロボット１０の行動に対する相手の感情が認識されることとなるので、ここで実行する行動の内容や順序等は、ロボット１０の行動履歴や相手の反応などに基づいて決定されるのが望ましい。
【００８５】
続いて、ステップＳ１３で図示しない時計回路から時間データを取得して、発話時刻を示す変数Tuにその時刻を記憶する。
【００８６】
そして、ステップＳ１５で、行動履歴データに基づいて、ステップＳ１１での発話が一回目の発話であるか否かを判断し、“ＹＥＳ”であれば、ステップＳ１７で、図示しない時計回路から時間データを取得して、会話開始時刻を示す変数Tsにその時刻を記憶する。
【００８７】
ステップＳ１５で“ＮＯ”である場合、または、ステップＳ１７を終了すると、ステップＳ１９で、相手が発話したか否かを判断する。つまり、音声入力／出力ボード７０からの入力データを取得して、相手によるマイク５４からの音声入力があったか否かを判断する。ステップＳ１９で“ＮＯ”であれば、ステップＳ２１で、図示しない時計回路から時間データを取得して、変数Twにその時刻を記憶する。そして、ステップＳ２３で(Tw−Tu)がたとえば５秒よりも大きいか否か、つまり、ロボット１０が発話してから所定時間が経過したか否かを判断する。ステップＳ２３で“ＮＯ”であれば、ステップＳ１５に戻る。一方、ステップＳ２３“ＹＥＳ”であれば、つまり、所定時間が経過しても相手が発話してくれない場合には、ステップＳ９へ進んで、たとえば「つまらない」と発話し、相手がロボット１０に応答するように促す。
【００８８】
一方、ステップＳ１９で“ＹＥＳ”であれば、つまり、相手がロボット１０の発話に対して返事をした場合には、図６のステップＳ２５へ進む。
【００８９】
図６のステップＳ２５では、センサ入力／出力ボード６８を介して眼カメラ３６からの画像データを取得して、メモリ６４の所定領域に記憶する。このように、相手の発話があったと判定されたときに画像データを取得するので、その画像データには、相手が発話したときの表情が含まれることとなる。そして、ステップＳ２７で、画像データから抽出した顔画像データに基づいて、表情による感情認識処理を実行する。この処理によって、上述のように、顔画像データから抽出した特徴量に基づいて感情の判別を行って、各感情（喜び、怒り、嫌悪、恐れ、悲しみ、驚きおよび普通）の確率を示す感情認識結果データｇf(eomx)をそれぞれ生成し、メモリ６４の所定領域に記憶する。
【００９０】
また、ステップＳ２９で、音声入力／出力ボード７０を介して発話音声データを取得して、メモリ６４の所定領域に記憶する。そして、ステップＳ３１で、取得した発話音声データに基づいて、音声による感情認識処理を実行する。この処理によって、上述のように、音声データから抽出した特徴量（ノンバーバル情報、または韻律情報）に基づいて、各感情（緊張、喜びおよび困惑）の確率を示す感情認識結果データｇa(emoy)をそれぞれ生成し、メモリ６４の所定領域に記憶する。
【００９１】
また、ステップＳ３３で、取得した発話音声データに基づいて、音声認識処理を実行する。この処理によって、上述のように、音声認識結果データＲＷ(i,emo)を生成し、メモリ６４の所定領域に記憶する。
【００９２】
続いて、ステップＳ３５で、表情による感情認識結果ｇf(普通)および音声による感情認識結果ｇa(緊張)に基づいて、両者を重み付けして組み合わせることによって、緊張の評価値Ｖ(緊張)を算出する。そして、ステップＳ３７で、緊張の評価値Ｖ(緊張)の値がその閾値γ(緊張)よりも大きいか否かを判定する。
【００９３】
ステップＳ３７で“ＹＥＳ”であれば、つまり、緊張の感情があると判定できる場合には、ステップＳ３９で、図示しない時計回路から時間データを取得して、その時刻を変数Tnに記憶する。そして、ステップＳ４１で、(Tn−Ts)がたとえば３００秒よりも大きいか否か、つまり、会話（コミュニケーション）を開始してから所定時間が経過したか否かを判断する。
【００９４】
ステップＳ４１で“ＮＯ”であれば、ステップＳ４３で、緊張緩和行動を実行する。たとえば、「歌を歌うね」と発話して歌を歌ったり、「じゃんけんしようよ」と発話してじゃんけんをしたりする行動等を実行する。詳しくは、上述のように、すぐに緊張を緩和する行動と、長い時間をかけて緊張を緩和する行動のどちらの種類の行動を実行するかを状況に応じて決定して、その決定した種類に属する種々の行動を実行する。そして、実行した緊張緩和行動の識別子をメモリ６４の行動履歴データ領域に記憶する。このように、相手をリラックスさせたりロボット１０に親近感を抱かせたりするような適切な行動を実行することによって、相手の緊張を緩和させる。これによって、相手から持続的感情である緊張の感情を取り除いて、相手の一時的な感情の表出を促すことができる。また、緊張を緩和することで、相手をロボットとインタラクションできる状態にすることができる。ステップＳ４３を終了すると、図５のステップＳ１に戻る。
【００９５】
一方、ステップＳ４１で“ＹＥＳ”であれば、つまり、会話を開始してから比較的長い時間が経過しても、相手から緊張の感情が消えなかった場合には、この処理を終了する。
【００９６】
また、ステップＳ３７で“ＮＯ”であれば、つまり、相手に緊張の感情が無いと判定される場合には、相手の一時的な感情を認識すべく、処理は図７のステップＳ４５へ進む。
【００９７】
図７のステップＳ４５では、喜びの感情に関しての音声による感情認識結果データｇa(喜び)の値が、緊張の感情を除くｇa(emoy)の中で最大値を示し、かつ、喜びの感情に関しての表情による感情認識結果データｇf(喜び)の値が、ｇf(emox)の中で最大値を示すか否かを判断する。ステップＳ４５で“ＹＥＳ”であれば、認識しようとする感情の中で喜びの感情が最も可能性が高いとみなして、喜びの感情の有無を判別する。
【００９８】
つまり、まず、ステップＳ４７で、表情による感情認識結果ｇf(喜び)と音声による感情認識結果ｇa(喜び)に基づいて、両者を重み付けして組み合わせることによって、喜びの感情に関する評価値Ｖ(喜び)の値を算出する。
【００９９】
そして、ステップＳ４９で、喜びの感情の評価値Ｖ(喜び)の値が、その閾値γ(喜び)よりも大きいか否かを判断する。ステップＳ４９で“ＹＥＳ”であれば、喜びの感情があると判定できるので、ステップＳ５１で喜びの感情を認識感情として設定する。つまり、喜びを示す識別情報をメモリ６４の認識感情データ領域に記憶する。また、ステップＳ４９で“ＮＯ”であれば、つまり、喜びの感情が無いと判定される場合には、図５のステップＳ９へ進んで、たとえば「つまらない」と発話する。
【０１００】
一方、ステップＳ４５で“ＮＯ”であれば、つまり、喜びの感情が最も可能性が高いとはみなせない場合には、ステップＳ５３で、表情による認識結果データｇf(emox)のうち最大値を示す感情を検出する。
【０１０１】
続くステップＳ５５で、検出された感情が喜び以外の感情であるか否かを判断し、“ＹＥＳ”であれば、ステップＳ５７で、検出された感情に関する表情による感情認識結果ｇf(検出感情)の値が、当該感情に関する閾値γ(検出感情)よりも大きいか否かを判断する。ステップＳ５７で“ＹＥＳ”であれば、その検出感情があると判定できるので、ステップＳ５９で、検出感情を認識感情として設定し、つまり、検出された感情の識別情報をメモリ６４の認識感情データ領域に記憶する。
【０１０２】
一方、ステップＳ５５で“ＮＯ”である場合、またはステップＳ５７で“ＮＯ”である場合には、感情を認識することができないので、図５のステップＳ９へ進み、たとえば「つまらない」と発話し、相手がより感情的に応答するように促す。
【０１０３】
ステップＳ５１を終了し、または、ステップＳ５９を終了すると、相手の感情を認識することができたので、認識感情データに基づいて音声認識の結果を認識感情に対応するものに絞り込む。すなわち、ステップＳ６１で、音声認識結果データＲＷ(i,emo)から、認識感情に対応するデータＲＷ(i,認識感情)を認識語の候補として抽出する。つまり、音声認識の結果を認識感情に対応するものに限定することができる。そして、ステップＳ６３で、候補データＲＷ(i,認識感情)のうち、優先度iが最高位であるものを認識語として決定して、たとえばその認識語の識別子をメモリ６４の認識語データ領域に記憶する。
【０１０４】
続いて、ステップＳ６５で、感情対応行動処理を実行する。つまり、認識感情データに基づいて、たとえば認識感情に対応する行動プログラムを実行することによって、相手の感情（喜び、怒り、嫌悪、恐れ、悲しみ、驚き）に合わせた行動を提示する。このステップＳ６５を終了すると、処理は図５のステップＳ１へ戻る。
【０１０５】
発明者等の研究によれば、人間がロボットとの対話において、人間が喜びの感情を示すときには、肯定的な返答をしていることが多く、一方、人間が喜び以外の否定的な感情を示すときには、否定的な返答をしていることが多いということが分かっている。したがって、喜びの感情が認識された場合の感情対応行動処理では、ロボット１０の発話に対して人間が肯定的な返答をしているとみなすことができるので、その肯定的な返答に対応する行動を実行することができる。一方、喜び以外の否定的な感情が認識された場合の感情対応行動処理では、ロボット１０の発話に対して人間が否定的な返答をしているとみなすことができるので、その否定的な返答に対応する行動を実行することができる。
【０１０６】
図８には、認識感情が喜びである場合の感情対応行動処理の動作の一例が示される。図８のステップＳ８１で、行動履歴データに基づいて、ロボット１０の直前の発話は「一緒に遊ぼうよ」であるか否かを判断する。ステップＳ８１で“ＹＥＳ”であれば、ステップＳ８３で、たとえば「何して遊ぶ？」と発話する行動を実行する。また、ロボット１０の「一緒に遊ぼうよ」という提案に対して相手から肯定的な返答があったことが分かっているので、たとえば具体的な遊びの提案をするなどの行動を実行するようにしてもよい。
【０１０７】
一方、ステップＳ８１で“ＮＯ”であれば、ステップＳ８５で、行動履歴データに基づいて、ロボットの直前の発話は「かわいいでしょ？」であるか否かを判断する。ステップＳ８５で“ＹＥＳ”であれば、ステップＳ８７で、認識語データに基づいて、認識語がたとえば「かわいい」であるか否かを判断する。なお、ここでは、「かわいい」に限らず、「かわいい」と同義語または類似語が認識語であるか否かを判定するようにしてもよい。ステップＳ８７で“ＹＥＳ”であれば、つまり、相手が「かわいい」または「かわいい」と同様の言葉を返答してくれた場合には、ステップＳ８９で、たとえば「ありがとう」と発話して喜ぶ身振りを示す行動を実行する。この実施例では、上述したように、認識感情に基づいて音声認識結果を絞り込むことによって音声認識の性能を向上することができるので、相手の発話内容も精度よく特定することが可能である。したがって、たとえば、期待された所定の言葉または単語を相手が発話した場合等には、その発話内容に対応する特定の行動を提示することができるので、相手との間で自由でより深いコミュニケーションを実現することができる。なお、身振りを提示する場合には、ＣＰＵ６０はその身振りの実現に必要なモータ７２、７４、７６、７８または８０等の制御データをモータ制御ボード６６に与えて、各モータの回転を制御する。
【０１０８】
また、ステップＳ８７で“ＮＯ”であれば、ステップＳ９１で、たとえば「ありがとう」と発話する。この場合には、認識語が予期しない単語ないし言葉であるが、肯定的な返答があったことが分かっているので、その肯定的な返答に対応する行動を提示する。
【０１０９】
一方、ステップＳ８５で“ＮＯ”であれば、つまり、直前の発話または行動が所定のものでない場合には、ステップＳ９３で、喜びの感情に対応する行動の一例として、たとえば「うれしそうだね」と発話する行動を実行する。なお、ステップＳ８３、Ｓ８９、Ｓ９１またはＳ９３を終了すると、この感情対応行動処理を終了する。
【０１１０】
図９には、認識感情が怒りである場合の感情対応行動処理の動作の一例が示される。図９のステップＳ１０１で、行動履歴データに基づいて、ロボットの直前の発話は「一緒に遊ぼうよ」であるか否かを判断し、“ＹＥＳ”であれば、ステップＳ１０３で、たとえば「いじわる」と発話して悲しむ身振りを示す行動を実行する。上述のように、認識感情が否定的な感情である場合には、相手が否定的な応答をしていることが分かっているので、その否定的な応答に対応する行動を実行する。
【０１１１】
一方、ステップＳ１０１で“ＮＯ”であれば、ステップＳ１０５で、行動履歴データに基づいて、ロボットの直前の発話は「かわいいでしょ？」であるか否かを判断し、“ＹＥＳ”であれば、ステップＳ１０７で、認識語データに基づいて、認識語がたとえば「かわいくない」であるか否かを判断する。なお、「かわいくない」に限らず、これと同義語または類似語が認識語であるか否かを判定するようにしてもよい。ステップＳ１０７で“ＹＥＳ”であれば、つまり、相手が「かわいくない」と同様な所定の返答をした場合には、ステップＳ１０９で、たとえば「ひどいよ」と発話して機嫌の悪い身振りを示す行動を実行する。
【０１１２】
また、ステップＳ１０７で“ＮＯ”であれば、ステップＳ１１１で、たとえば「ひどいよ」と発話する。この場合には、認識語が予期しない単語ないし言葉であるが、否定的な返答があったことが分かっているので、その否定的な返答に対応する行動を提示する。
【０１１３】
一方、ステップＳ１０５で“ＮＯ”であれば、つまり、直前の発話または行動が所定のものでない場合には、ステップＳ１１３で、怒りの感情に対応する行動の一例として、たとえば「怒らないでよ」と発話する行動を実行する。なお、ステップＳ１０３、Ｓ１０９、Ｓ１１１またはＳ１１３を終了すると、この感情対応行動処理を終了する。
【０１１４】
この実施例によれば、相手の発話があったときに、相手の顔の画像データおよび発話音声データを取得し、その顔の表情および発話音声の非言語的な情報（韻律情報）に基づいて、相手に緊張の感情があるか否かを判定することができるので、相手に緊張の感情がある場合には、相手の緊張を緩和させる行動を実行することができる。また、これによって、持続的な感情である緊張の感情を取り除いて、文脈に依存し易い一時的な感情の表出を促すことができ、感情の認識を行えるような状態に導くことができる。したがって、相手の感情を認識することができ、現在の状況を認識することができる。
【０１１５】
また、相手の感情および現在の状況を認識することができるので、相手の感情や現在の状況に対応する行動を実行することができる。したがって、より自然で円滑なコミュニケーションを実現することができる。
【０１１６】
また、相手の感情および現在の状況を認識することができるので、認識した相手の感情や現在の状況に基づいて、音声認識の認識語の候補を限定しまたは絞り込むことができ、音声認識の性能を向上させることができる。したがって、相手の発話内容を精度良く特定することができるので、発話内容に応じて行動すること等によって、より自由な、あるいはより深いコミュニケーションを実現することができる。
【０１１７】
なお、上述のように、他の実施例では、各感情の有無の判定を行う際には、すべての感情の評価値を算出して、その最大値を示すものを検出し、その検出感情について判定を行うようにしてもよい。この他の実施例における感情の有無を判定する処理の動作の一例が、図１０に示される。
【０１１８】
図１０の最初のステップＳ１２１では、表情の感情認識結果ｇf(emox)および音声の感情認識結果ｇa(emoy)を組み合わせて、緊張を除く各感情の評価値Ｖ(emo)を算出する。次に、ステップＳ１２３で、評価値Ｖ(emo)が最大値を示す感情を検出する。
【０１１９】
そして、ステップＳ１２５で、評価値Ｖ(検出感情)がその閾値γ(検出感情)よりも大きいか否かを判定する。ステップＳ１２５で“ＹＥＳ”であれば、当該検出感情があると判定できるので、ステップＳ１２７で、検出感情の識別情報をメモリ６４の認識感情データ領域に記憶する。一方、ステップＳ１２５で“ＮＯ”であれば、感情を認識することができないので、図５のステップＳ９へ進む。なお、ステップＳ１２７を終了すると、上述したステップＳ６１〜ステップＳ６５の処理を実行する。
【０１２０】
なお、上述の各実施例では、発話音声の非言語情報に基づく感情認識結果と顔画像の表情に基づく感情認識の結果とを組み合わせて、緊張の感情の有無を判定するようにしていた。しかしながら、たとえば、緊張の認識の精度があまり要求されないような場合、相手に緊張の感情のみがあるか否かを判断する場合、一時的な感情を認識しないでもよい場合、表情による感情認識が失敗した場合等には、音声による感情認識結果のみに基づいて、緊張の有無を判定するようにしてもよい。この場合には、たとえば、図６のステップＳ３５で使用される表情の重みα(緊張)の値を０に近づける、または０に設定すればよい。これによって、表情による感情認識結果データｇf(emox)を緊張判別に用いないようにすることができる。
【図面の簡単な説明】
【０１２１】
【図１】この発明の一実施例のコミュニケーションロボットの一例を示す外観図である。
【図２】図１実施例のロボットの電気的構成の一例を示すブロック図である。
【図３】メモリに記憶されるプログラムの一部を示す図解図である。
【図４】メモリのデータ記憶領域のメモリマップの一部を示す図解図である。
【図５】図１実施例のロボットの動作の一例の一部を示すフロー図である。
【図６】図５の続きの一部を示すフロー図である。
【図７】図６の続きを示すフロー図である。
【図８】認識感情が喜びの場合の感情対応行動処理の動作の一例を示すフロー図である。
【図９】認識感情が怒りの場合の感情対応行動処理の動作の一例を示すフロー図である。
【図１０】図６の続きの変形例を示すフロー図である。
【符号の説明】
【０１２２】
１０  …コミュニケーションロボット
３４  …マイク
３６Ｒ，３６Ｌ  …眼カメラ
５６  …スピーカ
６０  …ＣＰＵ
６４  …メモリ
６６  …モータ制御ボード
６８  …センサ入力／出力ボード
７０  …音声入力／出力ボード
８６  …音声認識用辞書ＤＢ
【図１】
2006123136.tif 000003
【図２】
2006123136.tif 000004
【図３】
2006123136.tif 000005
【図４】
2006123136.tif 000006
【図５】
2006123136.tif 000007
【図６】
2006123136.tif 000008
【図７】
2006123136.tif 000009
【図８】
2006123136.tif 000010
【図９】
2006123136.tif 000011
【図１０】
2006123136.tif 000012