(57)【特許請求の範囲】
【請求項１】
第１カメラおよびマイクを含むテレビ電話機およびロボットを含む、傾聴対話持続システムであって、
前記第１カメラによって撮影された画像および前記マイクによって集音された音声に基づいて、ユーザの行動を判定する判定手段、
前記判定手段によって判定された第１所定時間分の行動から、前記ユーザの状態を認識する認識手段、および
前記認識手段によって認識された前記ユーザの状態に基づいて、対話を持続させるように前記ロボットを動作させる動作付与手段を備える、傾聴対話持続システム。
【請求項２】
前記認識手段は、対話に対する積極的および非積極的を認識する積極性認識手段を含み、
前記動作付与手段は、前記積極性認識手段の認識結果に基づき、前記ユーザに対する疑似傾聴を前記ロボットに行わせる傾聴動作付与手段を含む、請求項１記載の傾聴対話持続システム。
【請求項３】
前記認識手段は、対話における聴取側状態および話手側状態を認識する話者状態認識手段をさらに含み、
前記ユーザまたは相手の発声時間を計測する計測手段をさらに備え、
前記動作付与手段は、前記計測手段によって計測された発声時間に基づき、前記ユーザの発話を制御するように、前記ロボットを動作させる発話制御動作付与手段をさらに含む、請求項２記載の傾聴対話持続システム。
【請求項４】
前記発話制御動作付与手段は、前記積極性認識手段によって積極的と認識され、かつ話者状態認識手段によって話手側状態と認識される積極的発話状態であり、かつ発声時間が閾値以上になったとき、前記ユーザの発話が抑制されるように、前記ロボットを動作させる発話抑制動作付与手段を含む、請求項３記載の傾聴対話持続システム。
【請求項５】
前記発話抑制動作付与手段は、前記ユーザの注意を誘導するように、前記ロボットを動作させる注意誘導手段を含む、請求項４記載の傾聴対話持続システム。
【請求項６】
前記発話制御動作付与手段は、前記積極性認識手段によって積極的と認識され、かつ話者状態認識手段によって聴取側状態と認識される積極的聴取側状態であるとき、前記ユーザの発話が促進されるように、前記ロボットを動作させる発話促進動作付与手段をさらに含む、請求項３ないし５のいずれかに記載の傾聴対話持続システム。
【請求項７】
前記動作付与手段は、前記積極性認識手段によって非積極的と認識されたとき、前記ユーザを対話に参加させるように、前記ロボットを動作させる参加動作付与手段をさらに含む、請求項２ないし５のいずれかに記載の傾聴対話持続システム。
【請求項８】
前記参加動作付与手段は、前記ユーザの注意を引きつけるように前記ロボットを動作させる注意引付手段を含む、請求項７記載の傾聴対話持続システム。
【請求項９】
前記参加動作付与手段は、前記ユーザの発話を促すように前記ロボットを動作させる、発話促し手段をさらに含む、請求項７または８記載の傾聴対話持続システム。
【請求項１０】
前記ロボットが接続されるネットワーク、
前記ネットワークに接続されるサーバ、
前記判定手段によって判定されたユーザの行動を前記サーバに送信する送信手段、および
前記サーバから相手ユーザの行動を取得する取得手段をさらに備え、
前記動作付与手段は、前記取得手段によって取得された相手ユーザの行動とユーザの行動とに基づき、前記相手ユーザに対する疑似傾聴を前記ロボットに行わせる相手傾聴動作付与手段をさらに含む、請求項１ないし９のいずれかに記載の傾聴対話持続システム。
【請求項１１】
前記認識手段は、前記ユーザの興味対象を認識する興味対象認識手段をさらに含み、
前記動作付与手段は、前記興味対象認識手段による認識結果に基づき、前記ユーザが対話に興味を持つように、前記ロボットを動作させる興味動作付与手段をさらに含む、請求項１ないし１０のいずれかに記載の対話傾聴持続システム。
【請求項１２】
前記ロボットは、第２カメラを含み、
前記第１カメラおよび第２カメラによるそれぞれの画像に対して顔認識処理を実行する顔認識手段をさらに備え、
前記興味対象認識手段は、前記顔認識手段による第２所定時間分の顔認識結果から第１カメラの第１認識率を算出する第１認識率算出手段、前記顔認識手段による第２所定時間分の顔認識結果から第２カメラの第２認識率を算出する第２認識率算出手段および前記第１認識率と前記第２認識率とに基づいて認識結果を設定する設定手段を含む、請求項１１記載の対話傾聴持続システム。
【請求項１３】
前記設定手段によって設定された興味対象に基づいて前記第１カメラまたは前記第２カメラの画像のどちらか一方を送信する画像送信手段をさらに備える、請求項１２記載の対話傾聴持続システム。
【請求項１４】
前記判定手段は、前記ユーザの姿勢を判定する姿勢判定手段、前記ユーザの発話の有無を判定する発話判定手段、前記ユーザの頭部方向を判定する頭部方向判定手段、前記ユーザの視線方向を判定する視線方向判定手段、前記ユーザの頷きの有無を判定する頷き判定手段および前記ユーザの相槌を判定する相槌判定手段を含み、
前記ユーザの行動は、姿勢判定結果、発話判定結果、頭部方向判定結果、視線方向判定結果、頷き判定結果および相槌判定結果に基づいて決定される、請求項１ないし１３のいずれかに記載の対話傾聴持続システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、傾聴対話持続システムに関し、特にたとえば、テレビ電話を利用して対話を行う、傾聴対話システムに関する。
【背景技術】
【０００２】
特許文献１に開示されている、対話型アノテーションシステムでは、認知症患者である被介護者が利用するテレビ電話が、ネットワークを介して介護者が利用するコンピュータと接続される。ネットワークにはコンピュータおよびテレビ電話の間で、コマンドの転送を行うサーバが接続され、さらにサーバには写真の画像データが蓄えられるデータベースが結合される。また、介護者は、コンピュータによってサーバのURLを開いて写真を指定することで、相手（被介護者）が利用するテレビ電話に表示させることができる。これにより、介護の一環として、テレビ電話を利用して介護者と被介護者とが会話をすることができる。
【特許文献１】特開２００７−１５０９５５号公報［H04N 7/14］
【発明の概要】
【発明が解決しようとする課題】
【０００３】
近年、軽度認知症患者や、高齢者および言語障害のある人の話を聴き、情緒的なサポートを行う傾聴活動が注目されている。そして、傾聴活動の一環として、傾聴ボランティアが特許文献１の介護者として、軽度認知症患者などの被介護者と会話するようになっている。しかし、傾聴ボランティアの人数は、話し相手を求める介護者の人数に対して少ない。そこで、軽度認知症患者などは対話を行うことも可能であるため、話し相手を求める軽度認知症患者同士で対話を行う活動が進められている。
【０００４】
ところが、軽度認知症患者同士の対話では、軽度認知症患者が対話に対して集中力を欠如してしまい、対話が持続しないことが多々ある。
【０００５】
それゆえに、この発明の主たる目的は、新規な、傾聴対話持続システムを提供することである。
【０００６】
この発明の他の目的は、コミュニケーション障害のある者同士の対話を持続させる、傾聴対話持続システムを提供することである。
【課題を解決するための手段】
【０００７】
この発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、この発明の理解を助けるために記述する実施形態との対応関係を示したものであって、この発明を何ら限定するものではない。
【０００８】
第１の発明は、第１カメラおよびマイクを含むテレビ電話機およびロボットを含む、傾聴対話持続システムであって、第１カメラによって撮影された画像およびマイクによって集音された音声に基づいて、ユーザの行動を判定する判定手段、判定手段によって判定された第１所定時間分の行動から、ユーザの状態を認識する認識手段、および認識手段によって認識されたユーザの状態に基づいて、対話を持続させるようにロボットを動作させる動作付与手段を備える、傾聴対話持続システムである。
【０００９】
第１の発明では、傾聴対話持続システム（１００）は、モニタ（１６ａ，１６ｂ）の近くに設けられる第１カメラ（２２ａ，２２ｂ）およびユーザが発話する音声を集音するマイク（２０ａ，２０ｂ）と接続されるテレビ電話機（１４ａ，１４ｂ）と、ぬいぐるみ型のロボット（１０ａ，１０ｂ，１４ａ，１４ｂ）とを含む。
【００１０】
判定手段（６４，Ｓ６５，Ｓ６７）は、第１カメラによって撮影された画像に対して、所定のテンプレートマッチング処理や顔認識処理を加えた結果と、マイクによって集音された音声の音声レベルとに基づいて、ユーザの行動を判定する。認識手段（６４，Ｓ７５−Ｓ８１）は、たとえば３０秒である第１所定時間分の行動に基づいて、ユーザの状態を認識する。動作付与手段（６４，Ｓ１７１，Ｓ１７３，Ｓ１７７，Ｓ１７９）は、ユーザの状態に基づいて、たとえばユーザの発話を疑似傾聴したり、ユーザの発話を調節したり、ユーザの注意を引きつけたりするようにロボットを動作させることで、対話を持続させる。
【００１１】
第１の発明によれば、ユーザの状態に応じてロボットが対話を持続させるように動作するため、コミュニケーション障害のある者同士の対話を持続させることができる。
【００１２】
第２の発明は、第１の発明に従属し、認識手段は、対話に対する積極的および非積極的を認識する積極性認識手段を含み、動作付与手段は、積極性認識手段の認識結果に基づき、ユーザに対する疑似傾聴をロボットに行わせる傾聴動作付与手段を含む。
【００１３】
第２の発明では、積極性認識手段（６４，Ｓ７５）は、たとえばユーザが相手を見る時間（ＷＴ）、前傾視線の時間（ＦＴ）および相槌の頻度（ＲＦ）に基づいて、対話に対する積極的（アクティブ状態）および非積極的（パッシブ状態）を認識する。傾聴動作付与手段（６４，Ｓ１７１，Ｓ１７３，Ｓ２０１，Ｓ２２５，Ｓ２６５，Ｓ２８５，Ｓ３０５，Ｓ３６７，Ｓ４３５，Ｓ４４１，Ｓ４４３）は、たとえばユーザが対話に対して積極的である場合に、ユーザの発話を疑似傾聴するようにロボットを動作させる。
【００１４】
第２の発明によれば、ユーザは、ロボットの疑似傾聴によって、自身の話を聴いてもらっているように感じることができるため、対話が持続するようになる。
【００１５】
第３の発明は、第２の発明に従属し、認識手段は、対話における聴取側状態および話手側状態を認識する話者状態認識手段をさらに含み、ユーザまたは相手の発声時間を計測する計測手段をさらに備え、動作付与手段は、計測手段によって計測された発声時間に基づき、ユーザの発話を制御するように、ロボットを動作させる発話制御動作付与手段をさらに含む。
【００１６】
第３の発明では、話者状態認識手段（６４，Ｓ７７）は、ユーザの発話の有無に基づいて、対話における傾聴（リッスン状態）および発話（トーク状態）を認識する。計測手段（６４，Ｓ１４１，Ｓ１４３，Ｓ１４５）は、たとえば音声レベルが所定値以上であるとき、ユーザまたは相手の発声時間を計測する。発話制御動作付与手段（６４，Ｓ２０７，Ｓ２２７，Ｓ２９７，Ｓ３１９）は、たとえばとちらかのユーザが一方的に話している状態で発声時間が閾値以上になったとき、ユーザの発話を制御するように、ロボットを動作させる。
【００１７】
第３の発明によれば、発話が制御されることでお互いがバランス良く発話するようになるため、対話が持続するようになる。
【００１８】
第４の発明は、第３の発明に従属し、発話制御動作付与手段は、積極性認識手段によって積極的と認識され、かつ話者状態認識手段によって話手状態と認識される積極的発話状態であり、かつ発声時間が閾値以上になったとき、ユーザの発話が抑制されるように、ロボットを動作させる発話抑制動作付与手段を含む。
【００１９】
第４の発明では、発話抑制動作付与手段（６４，Ｓ２９７，Ｓ４０５，Ｓ４１１，Ｓ４１７，Ｓ４２３，Ｓ４２５）は、ユーザが対話に対して積極的に発話している場合に、発声時間が閾値以上になると、ユーザの発話を抑制するように、ロボットを動作させる。
【００２０】
第４の発明によれば、ユーザが一方的に話しすぎている場合には、発話が抑制される。
【００２１】
第５の発明は、第４の発明に従属し、発話抑制動作付与手段は、ユーザの注意を誘導するように、ロボットを動作させる注意誘導手段を含む。
【００２２】
第５の発明では、注意誘導手段（６４，Ｓ４２５，Ｓ４５５，Ｓ４６１）は、たとえばユーザと相手が表示されるモニタ（１６）とを交互に見るように、ロボットを動作させることでユーザの注意を誘導する。
【００２３】
第５の発明によれば、一方的に話すユーザの注意が誘導されるため、発話が抑制される。また、ユーザの注意が相手に誘導される場合には、相手が発話する機会を得ることができ、対話がより持続するようになる。
【００２４】
第６の発明は、第３の発明ないし第５の発明のいずれかに従属し、発話制御動作付与手段は、積極性認識手段によって積極的と認識され、かつ話者状態認識手段によって聴取側状態と認識される積極的聴取側状態であるとき、ユーザの発話が促進されるように、ロボットを動作させる発話促進動作付与手段をさらに含む。
【００２５】
第６の発明では、発話促進動作付与手段（６４，Ｓ２２７，Ｓ３１９，Ｓ４７１）は、ユーザが積極的に相手の話を聴き取っている（傾聴している）場合に、たとえば相手の発声時間が閾値以上になれば、ユーザの発話が促進されるように、ロボットを動作させる。
【００２６】
第６の発明によれば、ユーザが相手の話を積極的に傾聴している状態が長く続けば、発話が促進される。
【００２７】
第７の発明は、第２の発明ないし第５の発明のいずれかに従属し、動作付与手段は、積極性認識手段によって非積極的と認識されたとき、ユーザを対話に参加させるように、ロボットを動作させる参加動作付与手段をさらに含む。
【００２８】
第７の発明では、参加動作付与手段（６４，Ｓ１７７，Ｓ２３１，Ｓ３１９，Ｓ３２１）は、ユーザが対話に非積極的であれば、ユーザを対話に参加させるように、ロボットを動作させる。
【００２９】
第７の発明によれば、対話に非積極的なユーザを対話に参加させることで、対話を持続させる。
【００３０】
第８の発明は、第７の発明に従属し、参加動作付与手段は、ユーザの注意を引きつけるようにロボットを動作させる注意引付手段を含む。
【００３１】
第８の発明では、注意引付手段（６４，Ｓ３２１，Ｓ３３５，Ｓ３４１，Ｓ３４３）は、たとえば、ユーザを見たり、話しかけたりするようにロボットを動作させることで、ユーザの注意を引きつける。
【００３２】
第８の発明によれば、対話に非積極的なユーザの注意を引きつけることで、対話に参加させる。
【００３３】
第９の発明は、第７の発明または第８の発明に従属し、参加動作付与手段は、ユーザの発話を促すようにロボットを動作させる、発話促し手段をさらに含む。
【００３４】
第９の発明では、発話促し手段（６４，Ｓ３１９，Ｓ４７１）は、たとえばユーザに対して質問をするようにロボットを動作させることで、ユーザの発話を促す。
【００３５】
第９の発明によれば、対話に非積極的なユーザに発話させることで、対話に参加させる。
【００３６】
第１０の発明は、第１の発明ないし第９の発明のいずれかに従属し、ロボットが接続されるネットワーク、ネットワークに接続されるサーバ、判定手段によって判定されたユーザの行動をサーバに送信する送信手段、およびサーバから相手ユーザの行動を取得する取得手段をさらに備え、動作付与手段は、取得手段によって取得された相手ユーザの行動とユーザの行動とに基づき、相手ユーザに対する疑似傾聴をロボットに行わせる相手傾聴動作付与手段をさらに含む。
【００３７】
第１０の発明では、ネットワーク（２００）には、たとえば無線ＬＡＮなどでロボットおよびサーバ（２４）が接続される。送信手段（６４，Ｓ６９）は、ユーザの行動を一定時間毎にサーバに送信する。取得手段（６４，Ｓ２６９，Ｓ２８９，Ｓ３０９）は、サーバに送信された相手ユーザの行動を取得する。相手傾聴動作付与手段（６４，Ｓ２７５，Ｓ２９５，Ｓ３１５，Ｓ３８５，Ｓ３９１，Ｓ３９３）は、相手ユーザが発話していれば、たとえば相手ユーザが表示されるモニタに対して疑似傾聴動作を行うように、ロボットを動作させる。
【００３８】
第１０の発明によれば、たとえユーザが相手ユーザの話を傾聴していなくても、ロボットが相手の話を傾聴することで、相手ユーザは自身の話を聴いてもらっているように感じることができる。
【００３９】
第１１の発明は、第１の発明ないし第１０の発明のいずれかに従属し、認識手段は、ユーザの興味対象を認識する興味対象認識手段をさらに含み、動作付与手段は、興味対象認識手段による認識結果に基づき、ユーザが対話に興味を持つように、ロボットを動作させる興味動作付与手段をさらに含む。
【００４０】
第１１の発明では、興味対象認識手段（６４，Ｓ７９）は、ユーザが見ているものをユーザの興味対象として認識する。興味動作付与手段（６４，Ｓ１７９，Ｓ２４１，Ｓ３２１，Ｓ３３５，Ｓ３４１，Ｓ３４３，Ｓ４０５）は、ユーザの興味が、たとえばロボットでなければ、ユーザが対話に興味を持つように、ロボットを動作させる。
【００４１】
第１１の発明によれば、ユーザに対話に興味を持たせることで、対話が持続するようになる。
【００４２】
第１２の発明は、第１１の発明に従属し、ロボットは、第２カメラを含み、第１カメラおよび第２カメラによるそれぞれの画像に対して顔認識処理を実行する顔認識手段をさらに備え、興味対象認識手段は、顔認識手段による第２所定時間分の顔認識結果から第１カメラの第１認識率を算出する第１認識率算出手段、顔認識手段による第２所定時間分の顔認識結果から第２カメラの第２認識率を算出する第２認識率算出手段および第１認識率と第２認識率とに基づいて認識結果を設定する設定手段を含む。
【００４３】
第１２の発明では、ロボットは、たとえば腹部に第２カメラ（１２）が設けられる。顔認識手段（６４，Ｓ４１）は、第１カメラおよび第２カメラによって撮影されたユーザの顔を認識する。第１認識率算出手段（６４，Ｓ１２３）は、第１カメラによって撮影されたユーザの顔の第１認識率（Ｍ）を算出する。第２認識率算出手段（６４，Ｓ１２５）は、第２カメラによって撮影されたユーザの顔の第２認識率（Ｓ）を算出する。そして、設定手段（６４，Ｓ１３１，Ｓ１３３，Ｓ１３５）は、第１認識率および第２認識率に基づいて、ユーザの興味対象を設定する。
【００４４】
第１２の発明によれば、興味対象がユーザの顔の認識率Ｍ，Ｓに基づいて設定されるため、ユーザが見ている対象を正確に認識することができる。
【００４５】
第１３の発明は、第１２の発明に従属し、設定手段によって設定された興味対象に基づいて第１カメラまたは第２カメラの画像のどちらか一方を送信する画像送信手段をさらに備える。
【００４６】
第１３の発明では、画像送信手段（６４，Ｓ４８９，Ｓ４９１）は、たとえばユーザの興味対象がテレビ電話機であれば第１カメラの画像を送信し、ロボットであれば第２カメラの画像を送信する。
【００４７】
第１３の発明によれば、相手は、たとえユーザがロボットに話しかけている状態であったとしても、相手にはユーザの顔が正面に写る画像が送られる。そのため、相手は自身に話しかけられているように感じるため、対話が持続するようになる。
【００４８】
第１４の発明は、第１の発明ないし第１３の発明のいずれかに従属し、判定手段は、ユーザの姿勢を判定する姿勢判定手段、ユーザの発話の有無を判定する発話判定手段、ユーザの頭部方向を判定する頭部方向判定手段、ユーザの視線方向を判定する視線方向判定手段、ユーザの頷きの有無を判定する頷き判定手段およびユーザの相槌を判定する相槌判定手段を含み、ユーザの行動は、姿勢判定結果、発話判定結果、頭部方向判定結果、視線方向判定結果、頷き判定結果および相槌判定結果に基づいて決定される。
【００４９】
第１４の発明では、姿勢判定手段（６４，Ｓ９）、頭部方向判定手段（６４，Ｓ２５）、視線方向判定手段（６４，Ｓ３３）および頷き判定手段（６４，Ｓ４９）は、ユーザが写る画像に基づいて判定する。発話判定手段（６４，Ｓ１７）はユーザの音声に基づいて判定する。さらに、相槌判定手段（６４，Ｓ５９）は、ユーザの発話と頷きの判定結果に基づいて判定する。そして、ユーザの行動は、各判定結果に基づいて決められる。
【００５０】
第１４の発明によれば、ユーザの行動データに複数の判定結果が含まれることで、ユーザの状態を適確に認識できるようになる。
【発明の効果】
【００５１】
この発明によれば、ユーザの状態に応じてロボットが対話を持続させるように動作するため、コミュニケーション障害のある者同士の対話を持続させることができる。
【００５２】
この発明の上述の目的、その他の目的、特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【００５３】
【図１】図１はこの発明の一実施例の傾聴対話持続システムの概要を示す図解図である。
【図２】図２は図１に示すモニタカメラとモニタとロボットとユーザとの側面的な位置関係およびそのモニタカメラと腹部カメラとの撮影範囲の一例を示す図解図である。
【図３】図３は図１に示すロボットの外観を正面から見た図解図である。
【図４】図４は図１に示すロボットの電気的な構成の一例を示すブロック図である。
【図５】図５は図１に示すＰＣの電気的な構成の一例を示すブロック図である。
【図６】図６は図４に示すメモリに記憶される行動テーブルの一例を示す図解図である。
【図７】図７は図１に示すモニタカメラおよび腹部カメラによる顔認識結果の一例を示す図解図である。
【図８】図８は図１に示すサーバの電気的な構成の一例を示すブロック図である。
【図９】図９は図４に示すＰＣのメモリのメモリマップの一例を示す図解図である。
【図１０】図１０は図９に示すデータ記憶領域の一例を示す図解図である。
【図１１】図１１は図９に示す状況認識プログラムの構成の一例を示す図解図である。
【図１２】図１２は図９に示すロボット制御プログラムの構成の一例を示す図解図である。
【図１３】図１３は図５に示すＰＣのプロセッサの画像／音声取得処理を示すフロー図である。
【図１４】図１４は図５に示すＰＣのプロセッサの姿勢判定処理を示すフロー図である。
【図１５】図１５は図５に示すＰＣのプロセッサの発話判定処理を示すフロー図である。
【図１６】図１６は図５に示すＰＣのプロセッサの頭部方向判定処理を示すフロー図である。
【図１７】図１７は図５に示すＰＣのプロセッサの視線方向判定処理を示すフロー図である。
【図１８】図１８は図５に示すＰＣのプロセッサの顔認識処理を示すフロー図である。
【図１９】図１９は図５に示すＰＣのプロセッサの頷き判定処理を示すフロー図である。
【図２０】図２０は図５に示すＰＣのプロセッサの相槌判定処理を示すフロー図である。
【図２１】図２１は図５に示すＰＣのプロセッサの同期処理を示すフロー図である。
【図２２】図２２は図５に示すＰＣのプロセッサの状態認識処理を示すフロー図である。
【図２３】図２３は図５に示すＰＣのプロセッサのＡｃ／Ｐａ認識処理を示すフロー図である。
【図２４】図２４は図５に示すＰＣのプロセッサのＴａ／Ｌｉ認識処理を示すフロー図である。
【図２５】図２５は図５に示すＰＣのプロセッサの興味対象認識処理を示すフロー図である。
【図２６】図２６は図５に示すＰＣのプロセッサの発声時間計測処理を示すフロー図である。
【図２７】図２７は図５に示すＰＣのプロセッサの全体処理を示すフロー図である。
【図２８】図２８は図５に示すＰＣのプロセッサのアクティブトーク処理を示すフロー図である。
【図２９】図２９は図５に示すＰＣのプロセッサのアクティブリッスン処理を示すフロー図である。
【図３０】図３０は図５に示すＰＣのプロセッサの非アクティブ処理を示すフロー図である。
【図３１】図３１は図５に示すＰＣのプロセッサのアザー処理を示すフロー図である。
【図３２】図３２は図５に示すＰＣの発話継続処理を示すフロー図である。
【図３３】図３３は図５に示すＰＣのプロセッサの発話抑制処理を示すフロー図である。
【図３４】図３４は図５に示すＰＣのプロセッサの発話促進処理を示すフロー図である。
【図３５】図３５は図５に示すＰＣのプロセッサの注意引きつけ処理を示すフロー図である。
【図３６】図３６は図５に示すＰＣのプロセッサの傍参与者的疑似傾聴処理を示すフロー図である。
【図３７】図３７は図５に示すＰＣのプロセッサの第１積極的疑似傾聴処理を示すフロー図である。
【図３８】図３８は図５に示すＰＣのプロセッサのユーザ発話抑制処理を示すフロー図である。
【図３９】図３９は図５に示すＰＣのプロセッサの第２積極的疑似傾聴処理を示すフロー図である。
【図４０】図４０は図５に示すＰＣのプロセッサの注意誘導処理を示すフロー図である。
【図４１】図４１は図５に示すＰＣのプロセッサのユーザ発話促進処理を示すフロー図である。
【図４２】図４２は図５に示すＰＣのプロセッサのカメラ制御処理を示すフロー図である。
【発明を実施するための形態】
【００５４】
図１を参照して、この実施例の傾聴対話持続システム１００は、たとえば認知症患者のような軽度脳障害を持つユーザＡと遠隔地に居るユーザＢとの対話に利用される。そのため、傾聴対話持続システム１００には、ユーザＡが居る部屋１に設置される腹部カメラ１２ａ（第２カメラ）を含むぬいぐるみ型ロボット（以下、単に「ロボット」と言う。）１０ａ、ＰＣ１４ａ、モニタ１６ａ、スピーカ１８ａ、マイク２０ａおよびモニタカメラ２２ａ（第１カメラ）と、ユーザＢが居る部屋２（遠隔地）に設置される腹部カメラ１２ｂを含むロボット１０ｂ、ＰＣ１４ｂ、モニタ１６ｂ、スピーカ１８ｂ、マイク２０ｂおよびモニタカメラ２２ｂと、ネットワーク２００に接続されるサーバ２４とを備える。なお、本明細書では、部屋１および部屋２において対応する機器および人間を、区別なく説明する必要がある場合には、符号にアルファベットを添えずに参照番号だけで表示されることがあることに留意されたい。
【００５５】
ロボット１０はＰＣ１４による制御信号に基づいて傾聴動作や、発話を行う。ロボット１０の腹部に設けられた腹部カメラ１２はユーザを撮影し、ロボット１０を介して画像をＰＣ１４に出力する。ＰＣ１４は、ロボット１０に対して制御信号を出力するとともに、腹部カメラ１２およびモニタカメラ２２によって撮影された画像と、マイク２０によって集音される音声とが入力される。そして、ＰＣ１４は、入力された画像と音声とに基づいてユーザの行動および状態を判定および認識し、その結果をネットワーク２００を介してサーバ２４に送信する。
【００５６】
ＰＣ１４、モニタ１６、スピーカ１８、マイク２０およびモニタカメラ２２はテレビ電話機として機能する。たとえば、ＰＣ１４ａは、ユーザＢ側のＰＣ１４ｂから送信されたユーザＢの画像および音声を受信する。そのため、モニタ１６ａはユーザＢの画像を表示し、スピーカ１８はユーザＢの音声を出力する。さらに、マイク２０はユーザＡの音声を集音してＰＣ１４に出力し、モニタカメラ２２はユーザＡの画像を撮影してＰＣ１４に出力する。そして、ＰＣ１４は、ユーザＡの画像と音声とを、ネットワーク２００を介してＰＣ１４ｂに送信する。
【００５７】
サーバ２４は、ＰＣ１４ａおよびＰＣ１４ｂから送信される、ユーザＡおよびユーザＢの行動や状態のデータを受信すると、データベース（ＤＢ）に蓄積させる。そして、ＰＣ１４から行動および状態のデータを取得する要求がある場合に、その要求に応じてデータをＰＣ１４に送信する。
【００５８】
なお、他の実施例では、ロボット１０とＰＣ１４とが有線接続ではなく、無線接続であってもよい。また、ＰＣ１４およびサーバ２４のネットワーク２００との接続も、有線接続であってもよいし、無線接続であってもよい。
【００５９】
図２は図１に示す実施例を側面から見た実施例である。図２から分かるように、モニタカメラ２２はモニタ１６の上に置かれ、ロボット１２とモニタ１６とは机の上に置かれる。ユーザは、机の上に置かれるモニタ１６およびモニタカメラ２２に対面する状態で、腹部カメラ１２およびモニタカメラ２２によって撮影される。さらに、ロボット１０は、ユーザとモニタ１６との間に配置されるため、モニタカメラ２２はロボット１０とユーザとを同時に撮影する。これにより、ロボット１０は、ユーザＡに対して疑似的な傾聴動作（疑似傾聴動作）を行ったり、ユーザＢが表示されるモニタ１６ａに対して疑似傾聴動作を行ったりする。
【００６０】
なお、ロボット１０は、モニタカメラ２２によって撮影され、かつユーザを撮影可能な位置であれば、机の上に置かれていなくてもよい。
【００６１】
図３にはロボット１０の外観が図示される。このロボット１０は、頭部２６とそれを支える胴体２８とを含む。胴体２８の上部（人間の肩に相当）の左右に左腕３０Ｌおよび右腕３０Ｒが設けられ、胴体２８の腹部には腹部カメラ１２が設けられる。この腹部カメラ１２には、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。また、頭部２６には、前面に口３２が配置され、その口３２の上方には眼球３４が設けられる。そして、頭部２６の上部側面には耳３６が取り付けられている。
【００６２】
頭部２６は、胴体２８によって旋回・俯仰可能に支持され、眼球３４も稼働的に保持されている。また、胴体２８は、腰の部分を中心として左右方向に傾くことが可能である。さらに、口３２にはスピーカ５６（図４）が内蔵され、耳３６にはマイク５８（図４）が内蔵される。
【００６３】
なお、マイク５８を両方の耳３６にそれぞれ内蔵すれば、ステレオマイクとして機能し、それによって、そのステレオマイクに入力された音声の位置を必要に応じて特定することができる。また、ロボット１０の外見は、熊だけに限らず、他の動物や、人型であってもよい。
【００６４】
図４にはロボット１０の電気的な構成を示すブロック図が示される。ロボット１０には、マイクロコンピュータ或いはCPUとも呼ばれる、プロセッサ３８が内蔵されており、通信路の一例であるバス４０を介して、腹部カメラ１２、メモリ４２、モータ制御ボード４４、音声入力／出力ボード５４、センサ入力／出力ボード６０およびＩ／Ｏ６２に接続される。
【００６５】
メモリ４２は、図示しないROMやRAMが組み込まれており、ROMには主として、ロボット１０による傾聴動作や、発話を行うためのプログラムや、発話を行う際にスピーカ５６から出力される音声データなどが予め記憶されている。また、RAMは一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用される。
【００６６】
モータ制御ボード４４は、たとえばDSP(Digital Signal Processor)で構成され、図３に示すロボット１０の各腕や頭部の各軸モータを制御する。すなわち、モータ制御ボード４４は、プロセッサ３８からの制御データを受け、右腕３０Ｒ（図３）を前後や左右に動かすことができるように、Ｘ，ＹおよびＺ軸のそれぞれの角度を制御する３つのモータ（図４ではまとめて、「右腕モータ」として示す。）４６Ｒの回転角度を調節する。また、モータ制御ボード４４は、左腕３０Ｌの３つのモータ（図４ではまとめて、「左腕モータ」として示す。）４６Ｌの回転角度を調節する。モータ制御ボード４４は、また、頭部２６の旋回角や俯仰角を制御する３つのモータ（図４ではまとめて、「頭部モータ」として示す。）４８の回転角度を調節する。モータ制御ボード４４は、また、眼球３４を動かす眼球モータ５０および胴体２８を傾ける腰モータ５２も制御する。
【００６７】
なお、上述のモータは、制御を簡単化するために、それぞれステッピングモータまたはパルスモータであるが、直流モータであってもよい。
【００６８】
スピーカ５６には音声入出力ボード５４を介して、プロセッサ３８から合成音声データが与えられ、それに応じて、スピーカ５６からはそのデータに従った音声または声が出力される。そして、マイク５８によって集音された音声は、音声入出力ボード５４を介して、プロセッサ３８に取り込まれる。
【００６９】
センサ入力／出力ボード６０は、モータ制御ボード４４と同様に、DSPで構成され、腹部カメラ１２からの信号を取り込んで、プロセッサ３８に与える。腹部カメラ１２からの映像信号が、必要に応じてセンサ入力／出力ボード６０で所定の処理を施してからプロセッサ３８に入力される。
【００７０】
Ｉ／Ｏ６２は、各々入力／出力の制御が可能なディジタルポートであり、出力ポートからは映像信号が出力され、ＰＣ１４に与えられる。一方、ＰＣ１４からは、制御信号が出力され、入力ポートに与えられる。
【００７１】
図５にはＰＣ１４の電気的な構成を示すブロック図が示される。ＰＣ１４には、ロボット１０と同様、マイクロコンピュータ或いはCPUとも呼ばれる、プロセッサ６４が内蔵されており、バス６６を介して、メモリ６８、視線サーバ７０、音声入力／出力ボード７２およびＩ／Ｏ７４に接続される。なお、プロセッサ６４には、日時情報を出力するＲＴＣ(Real Time Clock)６４ａが内蔵されている。
【００７２】
メモリ６８は、図示しないROM、RAMおよびHDDが組み込まれており、ROMには主として、電話機能を実現するためのプログラムや、後述のフローチャート（図１３−図４２）で表現されるプログラムが記憶される。また、RAMには主として、腹部カメラ１２およびモニタカメラ２２によって撮影された画像や、マイク２０によって集音された音声などが一時的に記憶されるバッファなどが設定されている。そして、HDDには主として、ユーザの行動を判断した結果や、状態を認識した結果などが随時記憶される。
【００７３】
視線サーバ７０は、腹部カメラ１２およびモニタカメラ２２によって撮影されたユーザの顔の画像から、ユーザの視線方向や位置をリアルタイムで検出する。そして、プロセッサ２０は、視線サーバ７０が特定または検出したユーザの視線方向や位置を示すデータを、バス６６を通して刻々受け取ることで、ユーザが注視する対象を判定する。
【００７４】
なお、視線サーバ７０によるユーザの視線方向や位置の検出方法については、本件出願人が先に出願し既に公開された、特開２００８−１１３８７５号公報に開示されているので、ここでは記述を省略する。
【００７５】
スピーカ１８には、音声入力／出力ボード７２を介して、プロセッサ６４から相手ユーザの音声データが与えられ、それに応じて、スピーカ１８からはそのデータに従った音声が出力される。そして、マイク２０によって集音された相手ユーザの音声は、音声入力／出力ボード７２を介して、プロセッサ６４に取り込まれる。
【００７６】
Ｉ／Ｏ７４は、ロボット１０のＩ／Ｏ６２と同様に、各々入力／出力の制御が可能なディジタルポートであり、出力ポートからは、制御信号がロボット１０に出力され、画像信号がモニタ１６に出力される。また、ロボット１０およびモニタカメラ２２からは、映像信号が出力され、入力ポートに与えられる。なお、スピーカ１８が出力する音声データおよびマイク２０から入力される音声データは、Ｉ／Ｏ７４を介して音声入力／出力ボード７２に入出力されるようにされてもよい。
【００７７】
また、プロセッサ６４は、バス６６を介して通信ＬＡＮボード７６に接続される。この通信ＬＡＮボード７６は、たとえばDSPで構成され、プロセッサ６４から与えられた送信データを無線通信装置７８に与える。無線通信装置７８は送信データを、ネットワーク２００を介して外部のコンピュータ（サーバ２４および相手のＰＣ１４）に送信する。また、通信ＬＡＮボード７６は、無線通信装置７８を介してデータを受信し、受信したデータをプロセッサ６４に与える。
【００７８】
たとえば、送信データとしては、テレビ電話機として必要なコマンド、画像データおよび音声データや、ユーザの行動を判定した結果およびユーザの状態を認識した結果であったりする。また、受信データとしては、テレビ電話機として得られる相手の画像データおよび音声データや、相手ユーザの行動を判定した結果および状態を認識した結果であったりする。
【００７９】
図６にはＰＣ１４のメモリ６８に記憶される、行動テーブルが示される。この行動テーブルとは、ユーザの行動が判定された結果が行動データにされ、その行動データが一定時間（たとえば、１秒）毎に刻々と記録されるテーブルである。
【００８０】
図６を参照して、行動テーブルは、左側から「時刻」、「前傾姿勢」、「発話」、「頭部方向（腹部）」、「視線方向（腹部）」、「顔認識（腹部）」、「頭部方向（モニタ）」、「視線方向（モニタ）」、「顔認識（モニタ）」、「頷き」および「相槌」の列で構成されている。そして、各行動データは、「時刻」の列に同期して、各欄に記録される判定結果から構成される。
【００８１】
「時刻」の列に記録される数値は、ＲＴＣ６４ａが出力する日時情報であり、たとえば「10:00:30」は「１０時００分３０秒」を表す。
【００８２】
「前傾姿勢」の列には、ユーザがモニタ１６に対して前傾姿勢を取っているか否かを示す判定結果が記録される。たとえば、「前傾姿勢」の列に「あり」が記録されていればユーザがモニタ１６に対して前傾姿勢を取っており、「なし」が記録されていれば、ユーザがモニタ１６に対して前傾姿勢を取っていないことを示す。そして、前傾姿勢の「あり」／「なし」は、腹部カメラ１２およびモニタカメラ２２によって撮影された画像に対して、テンプレートマッチング処理を加えて判定される。たとえば、ユーザの姿勢が前傾視線のテンプレートと一致する場合に前傾姿勢が「あり」と判定され、テンプレートと一致しない場合に前傾姿勢が「なし」と判定される。なお、ロボット１０に超音波センサなどの距離を計測可能なセンサを取りつけて、ユーザの姿勢を判定するようにしてもよい。
【００８３】
「発話」の列には、ユーザが発話しているか否かを示す判定結果が記録される。たとえば、「発話」の列に「あり」が記録されていれば、ユーザが発話していることを示し、「なし」が記録されていれば、ユーザが発話していないことを示す。そして、発話の「あり」／「なし」は、マイク２０によって集音された音声データの音声レベルから判定される。たとえば、音声データの音声レベルが決められた値以上であれば「あり」と判定され、決められた値未満であれば「なし」と判定される。
【００８４】
「頭部方向（腹部）」および「頭部方向（モニタ）」の列には、ユーザの頭部が向いている方向に有る物が記録される。たとえば、「モニタ」が記録されていれば、ユーザの頭部が向く方向にはモニタ１６が有ることを示し、「ロボット」が記録されていれば、ユーザの頭部が向く方向にはロボット１０が有ることを示し、「アザー」が記録されていれば、ユーザの頭部が向く方向にはロボット１０およびモニタ１６が無いことを示す。そして、「頭部方向（腹部）」の列については、腹部モニタ１２によって撮影された画像に対してテンプレートマッチング処理を加えて判定される。一方、「頭部方向（モニタ）」の列については、モニタカメラ２２によって撮影された画像に対してテンプレートマッチング処理を加えて判定される。たとえば、ユーザの頭部の形がモニタ１６の方向を向くテンプレートと一致していれば「モニタ」と判定され、ユーザの頭部の形がロボット１０の方向を向くテンプレートと一致していれば「ロボット」と判定され、ユーザの頭部の形がいずれのテンプレートとも一致しなければ「アザー」と判定される。
【００８５】
「視線方向（腹部）」および「視線方向（モニタ）」の列には、ユーザの視線が向いている方向に有る物が記録される。また、「視線方向（腹部）」および「視線方向（モニタ）」の列には、「頭部方向（腹部）」の列と同様に、「モニタ」、「ロボット」および「アザー」が記録される。そして、「視線方向（腹部）」および「視線方向（モニタ）」の列における、「モニタ」、「ロボット」および「アザー」は視線サーバ７０の出力に基づいて判定される。たとえば、ユーザの視線方向がモニタ１６に向いていれば「モニタ」と判定され、ユーザの視線方向がロボット１０に向いていれば「ロボット」と判定され、ユーザの視線方向がロボット１０およびモニタ１６のいずれの方向にも向いていなければ、「アザー」と判定される。
【００８６】
「顔認識（腹部）」および「顔認識（モニタ）」の列には、ユーザの顔の認識結果が記録される。たとえば、ユーザの顔が認識されていれば「成功」が記録され、ユーザの顔が認識されていなければ「失敗」が記録される。そして、「顔認識（腹部）」の列については、腹部モニタ１２によって撮影された画像に対して顔認識処理が実施されることで判定される。一方、「顔認識（モニタ）」の列については、モニタカメラ２２によって撮影された画像に対して所定の顔認識処理が実施されることで判定される。
【００８７】
図７（Ａ）にはモニタカメラ２２による顔認識結果の成功列が示され、図７（Ｂ）には腹部カメラ１２による顔認識結果の成功例が示される。まず、図７（Ａ）を参照して、左側が腹部カメラ１２による画像であり、右側がモニタカメラ２２による画像であり、どちらの画像も同じ時刻に撮影された画像である。このとき、ユーザはモニタカメラ２２を注視している状態である。そのため、モニタカメラ２２による画像では、ユーザの顔が正面に写っているため、顔認識が成功している。一方、腹部カメラ１２による画像では、ユーザの顔は傾いて写っているため、顔認識が失敗している。
【００８８】
次に、図７（Ｂ）を参照して、図７（Ａ）と同様に、左側が腹部カメラ１２による画像であり、右側がモニタカメラ２２による画像であり、同じ時刻に撮影された画像である。このとき、ユーザは腹部カメラ１２を注視しているため、腹部カメラ１２による画像では顔認識が成功している。一方、モニタカメラ２２による画像では顔認識が失敗している。
【００８９】
図６に戻って、「頷き」の列には、ユーザによる頷きの有無が記録される。たとえば、「頷き」の列に「あり」が記録されていればユーザが頷いたことを示し、「なし」が記録されていればユーザが頷かなかったことを示す。そして、ユーザの頷きの有無は、腹部カメラ１２およびモニタカメラ２２によって撮影された画像に対して、所定のテンプレートマッチング処理を加えることで判定する。たとえば、ユーザの頭部の形が頷いている状態のテンプレートと一致していれば「あり」と判定され、テンプレートと一致していなければ「なし」と判定される。
【００９０】
「相槌」の列には、ユーザによる相槌の有無が記録される。たとえば、「相槌」の列に「あり」と記録されていればユーザが頷いたことを示し、「なし」と記録されていればユーザが頷かなかったことを示す。そして、相槌の有無については、頷きの判定結果と、音声データにおける「あー」や「うん」などの相槌らしい音を判定可能な、音声プロソディの判定結果とに基づいて判断する。たとえば、ユーザの頷きが「あり」ときに相槌らしい音があれば、相槌の判定結果は「あり」と判定される。
【００９１】
なお、上述したテンプレートマッチング処理および顔認識処理は、広く一般的な手法が用いられているため、詳細な説明は省略する。
【００９２】
そして、ＰＣ１４では、これらの処理によって一定時間毎に記録された行動データから、ユーザの状態を第１所定時間（たとえば、３０秒）毎に認識する。具体的には、第１所定時間毎の行動データに基づいて、Ａｃ／Ｐａ認識、Ｔａ／Ｌｉ認識および興味対象認識の処理を実行し、各処理の認識結果からユーザの状態を決定する。
【００９３】
まず、Ａｃ／Ｐａ認識とは、ユーザが対話に積極的に参加し、対話に集中している「アクティブ：Ａｃｔｉｖｅ（Ａｃ）」状態か、ユーザが対話に非積極的であり、他のものに集中または注意力が散漫な「パッシブ：Ｐａｓｓｉｖｅ（Ｐａ）」状態かを認識する処理である。そのため、本実施例のＡｃ／Ｐａ認識では、第１所定時間分のユーザの行動データのうち、視線方向、前傾姿勢、頷きおよび相槌に基づいて、アクティブ状態らしさを示すＡＣ値を算出することで、アクティブ状態またはパッシブ状態を認識する。
【００９４】
たとえば、相手を見る時間をＷＴ、体を倒して近づく前傾姿勢の時間をＡＴ、相槌の頻度をＲＦで示す場合に、相手を見る時間ＷＴは、行動テーブルにおける「視線方向（腹部）」および「視線方向（モニタ）」の列で、第１所定時間分の行のうち、「あり」と判定された回数をカウントすることで求めることができる。また、前傾姿勢の時間ＦＴは、「前傾姿勢」の列で、第１所定時間分の行のうち、「あり」と判定された回数をカウントすることで求めることができる。さらに、相槌の頻度ＲＦは、「相槌」の列で「あり」と判定された回数を、「頷き」の列で「あり」と判定された回数で割ることで求めることができる。
【００９５】
また、算出した相手を見る時間ＷＴ、体を倒して近づく時間ＡＴおよび相槌の頻度ＲＦから、数１に示す式に基づいてＡＣ値を算出する。
【００９６】
［数１］
Ｃ１×ＷＴ＋Ｃ２×ＦＴ＋Ｃ３×ＲＦ＝ＡＣ値
Ｃ１，Ｃ２，Ｃ３：定数
そして、このように算出されたＡＣ値を閾値Ａに基づいて判断することで、アクティブ状態またはパッシブ状態を認識することができる。つまり、数１に示す式で算出されたＡＣ値が閾値Ａより大きければアクティブ状態と認識され、ＡＣ値が閾値以下であればパッシブ状態と認識される。なお、定数Ｃ１，Ｃ２およびＣ３の値を変化させることで、各パラメータに重みを付けることができる。
【００９７】
次に、Ｔａ／Ｌｉ認識とは、ユーザが話し手となり発話している「トーク：Ｔａｌｋ（Ｔａ）」状態（話手側状態）であるか、相手ユーザの話を傾聴している「リッスン：Ｌｉｓｔｅｎ（Ｌｉ）」状態（聴取側状態）であるかを認識する処理である。そのため、Ｔａ／Ｌｉ認識では、第１所定時間分のユーザの行動のうち、ユーザの発話に基づいて認識する。この実施例では、ユーザの発声時間を発話量とし、この発話量が閾値Ｔに基づいて、トーク状態またはリッスン状態を認識する。
【００９８】
たとえば、発話量をＴａとする場合に、発話量Ｔａは、行動テーブルにおける「発話」の列で、第１所定時間分の行のうち、「あり」と判定された回数をカウントすることで求めることができる。そして、このように算出された発話量Ｔａを閾値Ｔと比較することで、トーク状態またはパッシブ状態を認識することができる。つまり、発話量Ｔａが閾値Ｔより大きければトーク状態と認識され、発話量Ｔａが閾値Ｔ以下であれば、リッスン状態と認識される。
【００９９】
そして、興味対象認識とは、ユーザの興味が「ロボット」、「モニタ」および「アザー」のいずれであるかを認識する処理である。そのため、興味対象認識では、第２所定時間（たとえば、１０秒）分のユーザの行動データのうち、ユーザの顔認識および視線方向に基づいて、モニタカメラ２２側の顔の認識率Ｍと、腹部カメラ１２側の顔の認識率Ｓとを算出することで、ユーザの興味が有る物を認識する。
【０１００】
たとえば、認識率Ｍは、行動テーブルにおける「顔認識（モニタ）」および「視線方向（モニタ）」の列で、第１所定時間分の行のうち、「成功」および「モニタ」と判定された回数をカウントすることで求めることができる。一方、認識率Ｓは、行動テーブルにおける「顔認識（腹部）」および「視線方向」の列で、「成功」および「ロボット」と判定された回数をカウントすることで求めることができる。そして、このように算出された認識率Ｍおよび認識率Ｓと閾値Ｉｎとを比較することでユーザの興味対象を認識することができる。つまり、認識率Ｍおよび認識率Ｓが共に閾値Ｉｎ以下であれば、興味対象が「アザー」と認識される。また、認識率Ｍおよび認識率Ｓが共に閾値Ｉｎより大きく、かつ認識率Ｍが認識率Ｓより大きければ、興味対象が「モニタ」と認識され、認識率Ｓが認識率Ｍより大きければ、興味対象が「ロボット」と認識される。
【０１０１】
なお、認識率Ｓおよび認識率Ｍは、顔認識の結果だけで求められてもよい。また、顔認識の結果が百分率で示される場合には、１秒毎の認識結果の総積を認識率としてもよい。さらに、興味対象認識では、認識率の代わりに、前傾姿勢の時間割合と視線方向の時間割合と頭部方向の時間割合とから求められる数値に基づいて認識されてもよい。そして、第１所定時間と第２所定時間とは同じ長さであってもよい。
【０１０２】
このようにして、Ａｃ／Ｐａ認識、Ｔａ／Ｌｉ認識および興味対象認識の処理が行われた後に、ユーザの状態は各認識結果を組み合わせることで決定する。具体的なユーザの状態としては、ユーザの興味対象がモニタ１６である「アクティブ・トーク・モニタ」、「アクティブ・リッスン・モニタ」、「パッシブ・トーク・モニタ」および「パッシブ・リッスン・モニタ」の４種類と、ユーザの興味対象がロボット１０である「アクティブ・トーク・ロボット」、「アクティブ・リッスン・ロボット」、「パッシブ・トーク・ロボット」、「パッシブ・リッスン・ロボット」の４種類と、ユーザの興味対象がロボット１０でもモニタ１６でもない「アクティブ・トーク・アザー」、「アクティブ・リッスン・アザー」、「パッシブ・トーク・アザー」および「パッシブ・リッスン・アザー」の４種類とから成る、合計１２種類である。
【０１０３】
ここで、一定時間が１秒、第１所定時間を３０秒とした場合に、「アクティブ・トーク・モニタ」、「アクティブ・リッスン・モニタ」、「パッシブ・トーク・モニタ」および「パッシブ・リッスン・モニタ」と認識されるユーザの状態の一例について説明する。なお、「ロボット」および「アザー」におけるユーザの状態については、ユーザの興味対象が異なるだけで「モニタ」の場合と同じであるため、詳細な説明は省略する。
【０１０４】
まず、ユーザの興味対象が「モニタ」と認識されている状態で、発話の継続時間が１５秒（５０％）以上であり、視線方向の判定において「モニタ」が３０回のうち１８回（６０％）以上判定され、さらに頷きが２回以上あれば「アクティブ・トーク・モニタ」と認識される。
【０１０５】
次に、ユーザの興味対象が「モニタ」と認識されている状態で、発話の継続時間が９秒（３０％）以下であり、視線方向の判定において「モニタ」が３０回のうち１５回（５０％）以上判定され、さらに前傾姿勢の判定において「あり」が３０回のうち２１回（７０％）以上判定されていれば、「アクティブ・リッスン・モニタ」と認識される。
【０１０６】
次に、ユーザの興味対象が「モニタ」と認識されている状態で、発話の継続時間が１２秒（４０％）以下であり、視線方向の判定において「モニタ」が３０回のうち６回（２０％）以上判定され、さらに頷きが一度のなければ、「パッシブ・トーク・モニタ」と認識される。
【０１０７】
そして、ユーザの興味対象が「モニタ」と認識されている状態で、発話の継続時間が９秒（３０％）以下であり、頷きが一度も無く、さらに前傾姿勢の判定において「あり」が３０回のうち６回（２０％）以下であれば、「パッシブ・リッスン・モニタ」と認識される。
【０１０８】
なお、このようにして認識されたユーザの状態は、状態データ３５４（図１０）としてメモリ６４に記憶されると共に、サーバ２４に送信される。また、ユーザの状態の認識には、SVM(Support Vector Machine)が利用されてもよい。
【０１０９】
図８にはサーバ２４の電気的な構成を示すブロック図が示される。サーバ２４は、プロセッサ３８，６４と同様に、マイクロコンピュータ或いはCPUとも呼ばれる、プロセッサ８０が内蔵されている。また、プロセッサ８０は、バス８２を介して、メモリ８４、第１ロボット情報ＤＢ８６、第２ロボット情報ＤＢ８８および通信ＬＡＮボード９０に接続されている。
【０１１０】
メモリ８４は、図示しないROMやRAMが組み込まれており、ROMには主として、サーバ２４とＰＣ１４ａ，１４ｂなどとのデータ通信を行うためのプログラムなどが予め記憶されている。また、RAMは、一時記憶メモリとして用いられるとともに、ワーキングメモリとして利用される。
【０１１１】
第１ロボット情報ＤＢ８６は、ＰＣ１４ａから送信されるユーザＡの行動データおよび状態データを蓄積するためのデータベースである。また、第２ロボットＤＢ８８は、ＰＣ１４ｂから送信されるユーザＢの行動データおよび状態データを蓄積するためのデータベースである。そして、第１ロボット情報ＤＢ８６および第２ロボット情報ＤＢ８８は、HDDやSSDのような記憶媒体を用いて構成される。
【０１１２】
通信ＬＡＮボード９０は、ＰＣ１４の通信ＬＡＮボード７６と同様に、たとえばDSPで構成され、プロセッサ８０から与えられた送信データを無線通信装置９２に与える。無線通信装置９２は送信データを、ネットワーク２００を介して外部のコンピュータ（ＰＣ１４ａ，１４ｂ）に送信する。また、通信ＬＡＮボード９０は、無線通信装置９２を介してデータを受信し、受信データをプロセッサ８０に与える。
【０１１３】
たとえば、受信データはＰＣ１４ａから送信されるユーザＡの行動データであり、プロセッサ８０はユーザＡの行動データを第１ロボット情報ＤＢ８６に保存する。さらに、受信データとして、ＰＣ１４ｂからユーザＡの行動データ取得要求がプロセッサ８０に与えられると、プロセッサ８０は、ユーザＡの行動データを送信データとして、通信ＬＡＮボード９０に与える。
【０１１４】
ここで、本願発明の傾聴対話持続システムでは、ユーザの行動データおよび状態データや、相手ユーザの行動データや状態データに基づいて、２人の対話が持続するように、ロボット１０の動作を制御する。そして、ロボット１０は、ユーザＡとユーザＢとの対話に対して、「疑似傾聴動作」、「発話制御動作」および「注意の引きつけの動作」の３種類の動作を行い、対話を持続させる。
【０１１５】
また、疑似傾聴動作とは、ユーザＡとユーザＢとが積極的に対話している場合には、どちらか一方の発話を傾聴しているかのように振る舞う動作のことである。さらに、発話制御動作とは、どちらかのユーザが一方的に話している場合に、２人の発話のバランスを取るため、ユーザを見ることで発話を抑制したり、ユーザに話しかけたりすることで発話を促進したりする動作のことである。そして、注意の誘導や引きつけの動作は、ユーザが対話に対して集中していない場合に、ユーザに話しかけることでユーザの注意を引きつける動作の事である。なお、具体的なロボット１０の動作については、図２７−図４１に示すフローチャートを用いて説明する。
【０１１６】
図９は、図５に示すＰＣ１４におけるメモリ６８のメモリマップ３００の一例を示す図解図である。図９に示すようにメモリ６８はプログラム記憶領域３０２およびデータ記憶領域３０４を含む。プログラム記憶領域３０２には、ＰＣ１４を動作させるためのプログラムとして、データ通信プログラム３１２、状況認識プログラム３１４、ロボット制御プログラム３１６、カメラ制御プログラム３１８、発声時間計測プログラム３２０および乱数生成プログラム３２２などが記憶される。
【０１１７】
データ通信プログラム３１２は、サーバ２４とデータ通信を行うためのプログラムである。状況認識プログラム３１４は、ユーザの行動を判定し、状態を認識するためのプログラムである。ロボット制御プログラム３１６は、ロボット１０の動作を決定するためのプログラムである。カメラ制御プログラム３１８は、相手に送信するカメラ画像を決定するためのプログラムである。発声時間計測プログラム３２０は、ユーザＡおよびユーザＢの発声時間を計測するためのプログラムである。乱数生成プログラム３２２は、ロボット１０の動作をランダムに決定する際に実行される処理である。
【０１１８】
なお、図示は省略するが、ＰＣ１４を動作させるためのプログラムとしては、テレビで話機能を実現するためのプログラムなどを含む。
【０１１９】
また、図１０を参照して、データ記憶領域３０４には、時刻バッファ３３０、モニタカメラバッファ３３２、腹部カメラバッファ３３４、音声バッファ３３６、判定結果バッファ３３８、顔認識結果バッファ３４０、興味対象認識結果バッファ３４２、データ通信バッファ３４４、相手行動データバッファ３４６、状態データバッファ３４８および乱数バッファ３５０が設けられる。さらに、データ記憶領域３０４には、行動テーブルデータ３５２および状態データ３５４が記憶されるとともに、Ａｃ／Ｐａフラグ３５６、Ｔａ／Ｌｉフラグ３５８、状態カウンタ３６０および発声カウンタ３６２がさらに設けられる。
【０１２０】
時刻バッファ３３０は、ＲＴＣ６４ａが出力する日時情報が一時的に記憶されるバッファである。モニタカメラバッファ３３２は、モニタカメラ２２によって撮影された画像が一時的に記憶されるバッファである。腹部カメラバッファ３３４は、腹部カメラ１２によって撮影された画像が一時的に記憶されるバッファである。音声バッファ３３６は、マイク２０によって集音された音声が一時的に記憶されるバッファである。
【０１２１】
判定結果バッファ３３８は、ユーザの前傾姿勢の有無を判定する姿勢判定、ユーザの発話の有無を判定する発話判定、ユーザの頭部方向を判定する頭部方向判定、ユーザの視線方向を判定する視線方向判定、ユーザの頷きを判定する頷き判定およびユーザの相槌を判定する相槌判定の各判定結果を一時的に記憶するためのバッファである。顔認識結果バッファ３４０は、モニタカメラ２２および腹部カメラ１２によって撮影された画像に対して行われる顔認識の結果が一時的に記憶されるバッファである。興味対象認識結果バッファ３４２は、ユーザが興味を持っていると判定された結果が一時的に記憶されるバッファであり、たとえば「ロボット」、「モニタ」および「アザー」を示すデータが一時的に記憶される。
【０１２２】
データ通信バッファ３４４は、サーバ２４とのデータ通信によって得られた相手の行動データや、状態データなどが一時的に記憶されるバッファである。相手動作データバッファ３４６は、相手の行動データを一時的に記憶するためのバッファである。状態データバッファ３４８は、相手の状態データや、こちら側のユーザの状態データを一時的に記憶するためのバッファである。乱数データバッファ３５０は、乱数生成プログラム３２２によって生成された乱数が一時的に記憶されるバッファである。
【０１２３】
行動テーブルデータ３５２は、図６に示す行動テーブルであり、一定時間毎に最新の行動データが追記される。状態データ３５４は、第１所定時間分の行動データから認識されるユーザの状態を示すデータであり、たとえば「アクティブ・トーク・ロボット」を示す文字列で構成される。
【０１２４】
Ａｃ／Ｐａフラグ３５６は、Ａｃ／Ｐａ認識結果を示すフラグである。たとえばＡｃ／Ｐａフラグ３５６は１ビットのレジスタで構成される。Ａｃ／Ｐａフラグ３５６がオン（成立）されると、レジスタにはデータ値「１」が設定される。一方、Ａｃ／Ｐａフラグ３５６がオフ（不成立）されると、レジスタにはデータ値「０」が設定される。また、Ａｃ／Ｐａフラグ３５６は、アクティブ状態と認識されるとオンになり、パッシブ状態と認識されるとオフになる。Ｔａ／Ｌｉフラグ３５８は、Ｔａ／Ｌｉ認識結果を示すフラグである。つまり、Ｔａ／Ｌｉフラグ３５８はトーク状態と認識されるとオンになり、リッスン状態と認識されるとオフになる。なお、Ｔａ／Ｌｉフラグ３５８の構成については、Ａｃ／Ｐａフラグ３５６と同様であるため、詳細な説明は省略する。
【０１２５】
状態カウンタ３６０は、ユーザの状態を認識する際に、第１所定時間分の行動データを取得するために用いられるカウンタである。たとえば、状態カウンタ３６０は、ＰＣ１４の電源がオンにされるとカウントされ始め、第１所定時間分の行動データが取得される毎にリセットされる。発声カウンタ３６２は、発声時間計測プログラム３２０によって計測される発声時間をカウントするためのカウンタである。
【０１２６】
なお、図示は省略するが、データ記憶領域３０４には、各判定に利用されるテンプレートのデータや、様々な計算の結果を一時的に格納するバッファなどが設けられると共に、ＰＣ１４の動作に必要な他のカウンタやフラグなども設けられる。
【０１２７】
図１１には状況認識プログラム３１４を構成するプログラムが示される。図１１を参照して、状況認識プログラム３１４は、画像／音声取得プログラム３１４ａ、視線判定プログラム３１４ｂ、発話判定プログラム３１４ｃ、頭部方向判定プログラム３１４ｄ、視線方向判定プログラム３１４ｅ、顔認識プログラム３１４ｆ、頷き判定プログラム３１４ｇ、相槌判定プログラム３１４ｈ、同期プログラム３１４ｊ、状態認識プログラム３１４ｋ、Ａｃ／Ｐａ認識プログラム３１４ｍ、Ｔａ／Ｌｉ認識プログラム３１４ｎおよび興味対象認識プログラム３１４ｐから構成される。
【０１２８】
画像／音声取得プログラム３１４ａは、モニタカメラ２２および腹部カメラ１２によって撮影された画像と、マイク２０によって集音された音声とを、バッファに取り込むためのプログラムである。姿勢判定プログラム３１４ｂは、ユーザの姿勢が前傾姿勢であるか否かを判定するためのプログラムである。発話判定プログラム３１４ｃは、ユーザが発話しているか否かを判定するためのプログラムである。頭部方向判定プログラム３１４ｄは、ユーザの頭部方向を判定するためのプログラムである。視線方向判定プログラム３１４ｅは、ユーザの視線方向を判定するためのプログラムである。顔認識プログラム３１４ｆは、モニタカメラ２２および腹部カメラ１２によって撮影された画像における顔領域を認識するためのプログラムである。頷き判定プログラム３１４ｇは、ユーザが頷いたか否かを判定するためのプログラムである。相槌判定プログラム３１４ｈは、ユーザが相槌をしたか否かを判定するためのプログラムである。同期プログラム３１４ｊは、姿勢判定結果、発話判定結果、頭部方向判定結果、視線方向判定結果、顔認識結果、頷き判定結果および相槌判定結果を同期して、行動データとするためのプログラムである。
【０１２９】
状態認識プログラム３１４ｋは、ユーザの状態を第１所定時間毎に認識するためのプログラムである。Ａｃ／Ｐａ認識プログラム３１４ｍは、ユーザがアクティブ状態かパッシブ状態かを認識するためのプログラムである。Ｔａ／Ｌｉ認識プログラム３１４ｎは、ユーザがトーク状態かリッスン状態かを認識するためのプログラムである。興味対象認識プログラム３１４ｐは、ユーザの興味対対象を認識するためのプログラムである。
【０１３０】
図１２にはロボット制御プログラム３１６を構成するプログラムが示される。図１２を参照して、全体プログラム３１６ａ、アクティブトークプログラム３１６ｂ、アクティブリッスンプログラム３１６ｃ、非アクティブプログラム３１６ｄ、アザープログラム３１６ｅ、発話継続プログラム３１６ｆ、発話抑制プログラム３１６ｇ、発話促進プログラム３１６ｈ、注意引きつけプログラム３１６ｊ、傍参与者的疑似傾聴プログラム３１６ｋ、第１積極的疑似傾聴プログラム３１６ｍ、ユーザ発話抑制プログラム３１６ｍ、第２積極的疑似傾聴プログラム３１６ｐ、注意誘導プログラム３１６ｑおよびユーザ発話促進プログラム３１６ｒから構成される。
【０１３１】
全体プログラム３１６ａは、メインルーチンとも呼ばれ、状態データに応じて、対話が持続するようにロボット１０を制御するための全体的な処理を行うプログラムである。アクティブトークプログラム３１６ｂは、状態データが「アクティブ・トーク・ロボット」である場合に実行されるプログラムである。アクティブリッスンプログラム３１６ｃは、状態データが「アクティブ・リッスン・ロボット」である場合に実行されるプログラムである。非アクティブプログラム３１６ｄは、ユーザがパッシブ状態であるか、興味対象が「ロボット」と認識されている場合に実行されるプログラムである。アザープログラム３１６ｅは、ユーザの興味対象が「アザー」である場合に実行されるプログラムである。
【０１３２】
発話継続プログラム３１６ｆは、２人のユーザの対話が継続されるようにロボット１０を動作させるためのプログラムである。発話抑制プログラム３１６ｇは、ユーザが一方的に発話している場合に発話を抑制するようにロボット１０を動作させるためのプログラムである。発話促進プログラム３１６ｈは、ユーザが発話をせずに、相手ユーザの発話を一方的に傾聴している場合に、発話を促すようロボット１０を動作させるログラムである。注意引きつけプログラム３１６ｊは、対話に興味を失っているユーザの注意を引けつけるようにロボット１０動作させるためのプログラムである。
【０１３３】
傍参与者的疑似傾聴プログラム３１６ｋは、２人のユーザの対話が継続している場合に、どちらか一方のユーザの話を傾聴しているかのように、ロボット１０を動作させるためのプログラムである。なお、「傍参与者」とは、会話に参加しているが「話し手」でも「聴き手」でもない人物を示す。
【０１３４】
第１積極的疑似傾聴プログラム３１６ｍは、相手ユーザの話を傾聴しているかのように、ロボット１０を動作させるためのプログラムである。ユーザ発話抑制プログラム３１６ｎは、たとえばロボット１０ａの傍に居るユーザＡの発話を抑制するように、ロボット１０ａを動作させるためのプログラムである。第２積極的疑似傾聴プログラム３１６ｐは、たとえばロボット１０ａの傍に居るユーザＡの発話を傾聴しているかのように、ロボット１０ａを動作させるためのプログラムである。注意誘導プログラム３１６ｑは、ユーザの注意を誘導するように、ロボット１０を動作させるためのプログラムである。ユーザ発話促進プログラム３１６ｒは、たとえばロボット１０ａの傍に居るユーザＡの発話を促すように、ロボット１０を動作させるためのプログラムである。
【０１３５】
以下、ＰＣ１４によって実行される本願発明のフロー図について説明する。また、図１３−図２５のフロー図は状況認識プログラム３１４を構成する各プログラムの処理を示し、図２６は発声時間計測プログラム３２０による処理を示し、図２７−図４１はロボット制御プログラム３１６を構成する各プログラムの処理を示し、図４２はカメラ制御プログラム３１８による処理を示す。
【０１３６】
図１３には画像／音声取得プログラム３１４ａの処理を示すフロー図が示される。たとえば、ＰＣ１４のプロセッサ６４は、ユーザによってＰＣ１４の電源がオンにされると、ステップＳ１で腹部カメラ１２による画像データを取得する。つまり、ロボット１０から入力される映像信号から画像データを取得し、腹部カメラバッファ３３４に一旦記憶させる。続いて、ステップＳ３では、モニタカメラ２２による画像データを取得する。つまり、モニタカメラ２２から入力される映像信号から画像データを取得し、モニタカメラバッファ３３２に一旦記憶させる。続いて、ステップＳ５では、音声データを取得し、ステップＳ１に戻る。つまり、マイク２０によって集音された音声から音声データを抽出し、音声バッファ３３６に一旦記憶させる。なお、ステップＳ１−Ｓ５の処理は、約１秒毎に繰り返される。
【０１３７】
図１４には姿勢判定プログラム３１４ｂの処理を示すフロー図が示される。プロセッサ６４は、ステップＳ７で画像データを取得したか否かを判断する。つまり、モニタカメラバッファ３３２および腹部カメラバッファ３３４に新たな画像データが記憶されたか否かを判断する。ステップＳ７で“ＮＯ”であれば、つまり画像データが取得されていなければステップＳ７の処理を繰り返し実行する。一方、ステップＳ７で“ＹＥＳ”であれば、つまり画像データが取得されていれば、ステップＳ９でユーザの姿勢を判定する。たとえば、モニタカメラバッファ３３２および腹部カメラバッファ３３４に記憶される画像データに対してユーザの前傾姿勢の有無を判定する。そして、どちらの画像でも前傾姿勢が「あり」と判定された場合に、姿勢判定結果を「あり」とする。なお、ステップＳ９の処理を実行するプロセッサ６４は姿勢判定手段として機能する。
【０１３８】
続いて、ステップＳ１１では、現在時刻を取得する。つまり、時刻バッファ３３０に記憶される日時情報を取得する。続いて、ステップＳ１３では、姿勢の判定結果に現在時刻を対応付ける。つまり、複数の判定結果を同期させるために、現在時刻を対応付ける。そして、現在時刻が対応付けられた姿勢の判定結果は判定結果バッファ３３８に一時的に記憶される。
【０１３９】
なお、他の実施例では、モニタカメラ２２または腹部カメラ１２のどちらか一方の画像だけで姿勢判定を行ってもよい。また、図１５−図２０に示す他の判定処理でも、ステップＳ１１と同様に日時情報を取得し、ステップＳ１３と同様に日時情報を対応付ける処理が存在するが、処理内容は全て同じであるため、他のフロー図では詳細な説明は省略する。
【０１４０】
図１５には発話判定プログラム３１４ｃの処理を示すフロー図が示される。プロセッサ６４は、ステップＳ１５で音声データを取得したか否かを判断する。つまり、音声バッファ３３６に新たな音声データが記憶されたか否かを判断する。ステップＳ１５で“ＮＯ”であれば、つまり音声データが取得されていなければステップＳ１５の処理を繰り返し実行する。一方、ステップＳ１５で“ＹＥＳ”であれば、つまり音声データが取得されていればステップＳ１７でユーザの発話を判定する。たとえば、音声バッファ３３６に記憶される音声データの音声レベルが一定値以上であるか否かを判定する。ステップＳ１９では現在時刻を取得し、ステップＳ２１では発話の判定結果に現在時刻を対応付ける。そして、ステップＳ１９の処理が終了するとステップＳ１５に戻る。なお、ステップＳ１９では、現在時刻が対応付けられた発話の判定結果は、判定結果バッファ３３８に一旦記憶される。なお、ステップＳ１７の処理を実行するプロセッサ６４は発話判定手段として機能する。
【０１４１】
図１６には頭部方向判定プログラム３１４ｄの処理を示すフロー図が示される。プロセッサ６４は、ステップＳ２３で画像データを取得したか否かを判断する。つまり、モニタカメラバッファ３３２および腹部カメラバッファ３３４に新たな画像データが記憶されたか否かを判断する。ステップＳ２３で“ＮＯ”であれば、つまり画像データが新たに取得されていなければステップＳ２３の処理を繰り返す。一方、ステップＳ２３で“ＹＥＳ”であれば、つまり新たな画像データが取得されていればステップＳ２５でユーザの頭部方向を判定する。たとえば、モニタカメラバッファ３３２に記憶される画像に対してテンプレートマッチング処理を実行することで、「モニタ」、「ロボット」および「アザー」を判定する。さらに、腹部カメラバッファ３３４に記憶される画像に対しても同様に判定する。なお、ステップＳ２５の処理を実行するプロセッサ６４は頭部方向判定手段として機能する。
【０１４２】
続いて、ステップＳ２７では現在時刻を取得し、ステップＳ２９では頭部方向の判定結果に現在時刻を対応付ける。そして、ステップＳ２９の処理が終了するとステップＳ２３に戻る。なお、ステップＳ２９では、モニタカメラ２２によって撮影された画像の頭部方向の判定結果と、腹部カメラ１２によって撮影された画像の頭部方向の判定結果とをそれぞれ判定結果バッファ３３８に記憶させる。
【０１４３】
図１７には視線方向判定結果プログラム３１４ｅの処理を示すフロー図が示される。プロセッサ６４は、ステップＳ３１で画像データを取得したか否かを判断する。つまり、モニタカメラバッファ３３２および腹部カメラバッファ３３４に新しい画像が記憶されたか否かを判断する。ステップ３１で“ＮＯ”であれば、つまり新しい画像データが取得されていなければステップＳ３１の処理を繰り返し実行する。一方、ステップＳ３１で“ＹＥＳ”であれば、つまり画像データが取得されれば、ステップＳ３３でユーザの視線方向を判定する。たとえば、ステップＳ３３では、まず視線サーバ７０にモニタカメラバッファ３３２に記憶される画像データを入力することで、ユーザの視線方向を特定する。次に、視線サーバ７０によって特定された視線方向に基づいて「モニタ」、「ロボット」および「アザー」を判定する。そして、腹部カメラバッファ３３４に記憶される画像に対しても、同様の判定を行う。なお、ステップＳ３３の処理を実行するプロセッサ６４は視線方向判定手段として機能する。
【０１４４】
続いて、ステップＳ３５では現在時刻を取得し、ステップＳ３７で視線方向の判定結果に現在時刻を対応付ける。そして、ステップＳ３７の処理が終了すれば、ステップＳ３１に戻る。なお、ステップＳ３７の処理では、ステップＳ２９（図１６）と同様に、モニタカメラ２２によって撮影された画像の視線方向の判定結果と、腹部カメラ１２によって撮影された画像の視線方向の判定結果とをそれぞれ判定結果バッファ３３８に記憶させる。
【０１４５】
図１８には顔認識処理プログラム３１４ｆの処理を示すフロー図が示される。プロセッサ６４は、ステップＳ３９で画像データを取得したか否かを判断する。つまり、モニタカメラバッファ３３２および腹部カメラバッファ３３４に新しい画像が記憶され、更新されたか否かを判断する。ステップＳ３９で“ＮＯ”であれば、つまり画像データが取得されていなければ、ステップＳ３９の処理を繰り返す。一方、ステップＳ３９で“ＹＥＳ”であれば、つまり画像データが取得されれば、ステップＳ４１でユーザの顔を認識する。たとえば、モニタカメラバッファ３３２に記憶される画像データに対して所定の顔認識処理を加えることで、顔領域を認識できたか否かを判断する。そして、認識できた場合には顔認識結果を「成功」と判定し、認識できなかった場合には顔認識結果を「失敗」と判定する。そして、腹部カメラバッファ３３４に記憶される画像データに対しても同様の判定を行う。なお、ステップＳ４１の処理を実行するプロセッサ６４は顔認識手段として機能する。
【０１４６】
続いて、ステップＳ４３では現在時刻を取得し、ステップＳ４５では顔認識結果に現在時刻を対応付ける。そして、ステップＳ４５の処理が終了すれば、ステップＳ３９に戻る。また、ステップＳ３９の処理では、現在時刻が対応付けられた各認識結果を顔認識結果バッファ３４０に一旦記憶させる。
【０１４７】
図１９には頷き判定プログラム３１４ｇの処理を示すフロー図が示される。プロセッサ６４は、ステップＳ４７で画像データを取得したか否かを判断する。つまり、モニタカメラバッファ３３２および腹部カメラバッファ３３４が更新されたか否かを判断する。ステップＳ４７で“ＮＯ”であれば、つまり画像データが取得されていなければ、ステップＳ４７を繰り返す。一方、ステップＳ４７で“ＹＥＳ”であれば、つまり画像データが取得されれば、ステップＳ４９でユーザの頷きを判定する。たとえば、モニタカメラバッファ３３２および腹部カメラバッファ３３４に記憶される画像データに対して、テンプレートマッチング処理を加えて、ユーザの頷きの有無をそれぞれ判定する。そして、２つの判定結果で頷きが「あり」と判定される場合に、ユーザの頷きが「あり」と判定される。なお、ステップＳ４９の処理を実行するプロセッサ６４は頷き判定手段として機能する。
【０１４８】
続いて、ステップＳ５１で現在時刻を取得し、ステップＳ５３で頷きの判定結果に現在時刻を対応付ける。そして、ステップＳ５３の処理が終了すれば、ステップＳ４７に戻る。また、日時情報が対応付けられた頷きの判定結果は、判定結果バッファ３３８に記憶される。
【０１４９】
図２０には相槌判定プログラム３１４ｈの処理を示すフロー図が示される。プロセッサ６４は、ステップＳ５５で頷き判定が終了したか否かを判断する。たとえば、頷きの判定結果が判定結果バッファ３３８に記憶されているか否かを判断する。ステップＳ５５で“ＮＯ”であれば、つまり頷き判定が終了していなければ、ステップＳ５５の処理を繰り返す。一方、ステップＳ５５で“ＹＥＳ”であれば、つまり頷き判定が終了していれば、ステップＳ５７で発話判定が終了したか否かを判断する。たとえば、発話の判定結果が判定結果バッファ３３８に記憶されているか否かを判断する。ステップＳ５７で“ＮＯ”であれば、つまり発話判定が終了していなければステップＳ５５に戻る。一方、ステップＳ５７で“ＹＥＳ”であれば、つまり発話判定が終了していれば、ステップＳ５９で日時情報に基づいてユーザの相槌を判定する。たとえば、発話判定結果と頷き判定結果とに対応付けられている日時情報に基づいて、それぞれを同期する。そして、頷きの判定結果が「あり」である場合に、音声バッファに記憶される音声データに対して、上記した音声プロソディを判定することで、相槌の判定をする。なお、ステップＳ５９の処理を実行するプロセッサ６４は相槌判定手段として機能する。
【０１５０】
続いて、ステップＳ６１では、相槌の判定結果に時刻を対応付けて、ステップＳ５５に戻る。つまり、ステップＳ６１では、発話または頷きの判定結果に対応付けられている日時情報を、相槌の判定結果に対応付ける。そして、時刻が対応付けられた相槌の判定結果は、判定結果バッファ３４０に記憶される。
【０１５１】
図２１には同期プログラム３１４ｊの処理を示すフロー図が示される。プロセッサ６４は、ステップＳ６３で各判定が終了したか否かを判断する。たとえば、判定結果バッファ３３８に姿勢、発話、頭部方向、視線方向、頷きおよび相槌の判定結果が記憶され、かつ顔認識結果バッファ３４０に顔認識結果が記憶されているか否かを判定する。ステップＳ６３で“ＮＯ”であれば、つまり各判定が終了していなければ、ステップＳ６３の処理を繰り返し実行する。一方、ステップＳ６３で“ＹＥＳ”であれば、つまり各判定が終了していれば、ステップＳ６５で各判定結果および顔認識結果を時刻に基づいて同期する。つまり、各判定結果および顔認識結果に対応付けられた時刻に基づいて同期する。
【０１５２】
続いて、ステップＳ６７では、同期した各判定結果を行動データとし、行動テーブルに記録する。つまり、図６に示す行動テーブルにおいて、新たな行に各判定結果および顔認識結果を記録する。続いて、ステップＳ６９では、現在の行動データをサーバ２４に送信する。そして、ステップＳ６９の処理が終了すればステップＳ６３に戻る。つまり、ステップＳ６９では、行動テーブルにおいて、新たに追加された行に対応する行動データをサーバ２４に送信する。
【０１５３】
このように、図１３−図２１の処理が一定時間毎に並列的に実行されることで、ユーザの行動データが判定されるとともに、サーバ２４に送信される。そして、ユーザの行動データに複数の判定結果が含まれるため、ユーザの状態が適確に認識される。
【０１５４】
なお、ステップＳ６５，Ｓ６７の処理を実行するプロセッサ６４は判定手段として機能する。また、ステップＳ６９の処理を実行するプロセッサ６４は送信手段として機能する。
【０１５５】
図２２には状態認識プログラム３１４ｋの処理を示すフロー図が示される。たとえば、ＰＣ１４のプロセッサ６４は、ユーザによってＰＣ１４の電源がオンにされると、ステップＳ７１で第１所定時間が経過したか否かを判断する。たとえば、状態カウンタ３６０の値が第１所定時間を示す値と超えたか否かを判断する。ステップＳ７１で“ＮＯ”であれば、つまり第１所定時間が経過していなければ、ステップＳ７１の処理を繰り返し実行する。一方、ステップＳ７１で“ＹＥＳ”であれば、つまり第１所定時間が経過してれば、ステップＳ７３で第１所定時間分の行動データを取得する。つまり、行動テーブルから、現在時刻から第１所定時間前までの行動データを取得する。なお、ステップＳ７３の処理が終了すると、状態カウンタ３６０はリセットされる。
【０１５６】
続いて、ステップＳ７５ではＡｃ／Ｐａ認識処理を実行し、ステップＳ７７ではＴａ／Ｌｉ認識処理を実行し、ステップＳ７９では興味対象認識処理を実行する。なお、ステップＳ７５，Ｓ７７およびＳ７９の処理については、図２３、図２４および図２５に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０１５７】
続いて、ステップＳ８１では、各認識結果を状態データ３５４として記憶する。たとえば、Ａｃ／Ｐａ認識結果がアクティブ状態であり、Ｔａ／Ｌｉ認識結果がトークであり、興味対象認識結果が「ロボット」であれば、状態データ３５４は、「アクティブ・トーク・ロボット」としてメモリ６８に記憶される。続いて、ステップＳ８３では、状態データ３５４をサーバ２４に送信し、ステップＳ７１に戻る。
【０１５８】
なお、ステップＳ７５の処理を実行するプロセッサ６４は積極性認識手段として機能し、ステップＳ７７の処理を実行するプロセッサ６４は話者状態認識手段として機能し、ステップＳ７９の処理を実行するプロセッサ６４は興味対象認識手段として機能する。そして、ステップＳ７５−８１の処理を実行するプロセッサ６４は認識手段として機能する。
【０１５９】
図２３にはＡｃ／Ｐａ認識プログラム３１４ｍの処理を示すフロー図が示される。プロセッサ６４はステップＳ９１で相手を見る時間ＷＴを算出し、ステップＳ９３では前傾姿勢の時間ＦＴを算出し、ステップＳ９５では相槌の頻度ＲＦを算出する。つまり、ステップＳ９１，Ｓ９３およびＳ９５では、上位ルーチンのステップＳ７３で取得された行動データに基づいて、相手を見る時間ＷＴ、前傾姿勢の時間ＦＴおよび相槌の頻度ＲＦを算出する。そして、ステップＳ９７では、各算出結果からＡＣ値を算出する。つまり、上述の数１に示す式に基づいてＡＣ値を算出する。続いて、ステップＳ９９では、算出したＡＣ値が閾値Ａより大きいか否かを判断する。
【０１６０】
ステップＳ９９で“ＹＥＳ”であれば、つまりＡＣ値が閾値Ａよりも大きければ、ステップＳ１０１でアクティブ状態に設定する。つまり、Ａｃ／Ｐａフラグ３５６をオンに設定する。一方、ステップＳ９９で“ＮＯ”であれば、つまりＡＣ値が閾値Ａ以下であれば、ステップＳ１０３でパッシブ状態に設定する。つまり、Ａｃ／Ｐａフラグ３５６をオフに設定する。なお、ステップＳ１０１またはステップＳ１０３の処理が終了すれば、Ａｃ／Ｐａ認識処理を終了して状態認識処理に戻る。
【０１６１】
図２４にはＴａ／Ｌｉ認識プログラム３１４ｎの処理を示すフロー図が示される。プロセッサ６４はステップＳ１１１で第１所定時間分の発話判定結果から発話量Ｔａを算出する。つまり、上位ルーチンのステップＳ７３で取得された行動データに基づいて、発話量Ｔａを算出する。続いて、ステップＳ１１３では算出された発話量Ｔａが閾値Ｔよりも大きいか否かを判断する。ステップＳ１１３で“ＹＥＳ”であれば、つまり発話量Ｔａが閾値Ｔよりも大きければ、ステップＳ１１５でトーク状態に設定する。つまり、ステップＳ１１５ではＴａ／Ｌｉフラグ３５８をオンにする。一方、ステップＳ１１３で“ＮＯ”であれば、つまり発話量Ｔａが閾値Ｔａ以下であれば、ステップＳ１１７でリッスン状態に設定する。つまり、ステップＳ１１７ではＴａ／Ｌｉフラグ３５８をオフにする。
【０１６２】
そして、ステップＳ１１５またはステップＳ１１７の処理が終了すれば、Ｔａ／Ｌｉ認識処理を終了して、状態認識処理に戻る。
【０１６３】
図２５には興味対象認識プログラム３１４ｐの処理を示すフロー図が示される。プロセッサ６４はステップＳ１２１で第２所定時間分の行動データを取得する。つまり、上位ルーチンである、ステップＳ７３で取得された行動データから、第２所定時間分の行動データを取得する。続いて、ステップＳ１２３では、モニタカメラ１２３の顔認識結果および視線判定結果から認識率Ｍを算出し、ステップＳ１２５では、腹部カメラ１２の顔認識の結果および視線判定結果から認識率Ｓを算出する。つまり、ステップＳ１２３，Ｓ１２５では、ステップＳ１２１で取得した第２所定時間分の行動データに基づいて、認識率Ｍおよび認識率Ｓを算出する。なお、ステップＳ１２３の処理を実行するプロセッサ６４は第１認識率算出手段として機能し、ステップＳ１２５の処理を実行するプロセッサ６４は第２認識率算出手段として機能する。
【０１６４】
続いて、ステップＳ１２７では、各認識率は閾値Ｉｎより大きいか否かを判断する。つまり、認識率Ｍおよび認識率Ｓが閾値Ｉｎより大きいか否かを判断する。ステップＳ１２７で“ＮＯ”であれば、つまり認識率Ｍおよび認識率Ｓが共に閾値Ｉｎ以下であれば、ステップＳ１３５に進む。ステップＳ１２７で“ＹＥＳ”であれば、つまり認識率Ｍおよび認識率Ｓが閾値Ｉｎより大きければ、ステップＳ１２９で、認識率Ｍが認識率Ｓよりも大きいか否かを判断する。
【０１６５】
ステップＳ１２９で“ＹＥＳ”であれば、つまり認識率Ｍが認識率Ｓよりも大きければ、ステップＳ１３１でモニタ状態に設定する。つまり、ユーザの興味対象がモニタ１６であるため、興味対象結果バッファ３４２に「モニタ」を示すデータを一時記憶させる。一方、ステップＳ１２９で“ＮＯ”であれば、つまり認識率Ｍが認識率Ｓ以下であれば、ステップＳ１３３でロボット状態に設定する。つまり、ユーザの認識対象がロボット１２であるため、興味対象認識結果バッファ３４２に「ロボット」を示すデータを一時的に記憶させる。そして、認識率Ｍおよび認識率Ｓが閾値Ｉｎ以下である場合、ステップＳ１３５でアザー状態に設定する。つまり、ステップＳ１３５では、ユーザの興味対象がロボット１２およびモニタ１６ではないため、興味対象認識結果バッファ３４２に「アザー」を示すデータを一時的に記憶させる。
【０１６６】
なお、ステップＳ１３１，Ｓ１３３およびステップＳ１３５の処理が終了すれば、興味対象認識処理を終了して、状態認識処理に戻る。また、本実施例では、興味対象がユーザの顔の認識率Ｍ，Ｓに基づいて設定されるため、ユーザが見る対象を正確に認識することができる。
【０１６７】
また、ステップＳ１３１，Ｓ１３３およびＳ１３５の処理を実行するプロセッサ６４は設定手段として機能する。
【０１６８】
このように、図２２−図２５に示す処理が実行されることで、ユーザの状態データがメモリ６８に記憶されるとともに、サーバ２４に送信される。また、他の実施例ではＡｃ／Ｐａ認識処理、Ｔａ／Ｌｉ認識処理および興味対象認識処理が並列的に処理されてもよく、この場合は、興味対象認識処理に限り、行動データを第２所定時間毎に取得することで、ユーザの興味対象を認識する。
【０１６９】
図２６には発声時間計測プログラム３２０の処理を示すフロー図が示される。プロセッサ２０はステップＳ１４１で音声レベルが所定値以上か否かを判断する。たとえば、マイク２０によって集音された音声の音声レベルが、人間の発話と判断できる所定値以上であるか否かを判断する。ステップＳ１４１で“ＮＯ”であれば、つまり音声レベルが所定値未満であれば、ステップＳ１４１の処理を繰り返す。一方、ステップＳ１４１で“ＹＥＳ”であれば、つまり音声レベルが所定値以上であれば、ステップＳ１４３で発声カウンタ３６２をインクリメントする。つまり、ステップＳ１４３では発声時間をカウントするために、発声カウンタ３６２をインクリメントする。なお、ステップＳ１４１−Ｓ１４５の処理を実行するプロセッサ６４は計測手段として機能する。
【０１７０】
続いて、ステップＳ１４５では、音声レベルが所定値未満になったか否かを判断する。たとえば、マイク２０によって集音された音声の音声レベルが所定値未満になったか否かを判断する。つまり、ステップＳ１４５で“ＮＯ”であれば、つまり音声レベルが所定値以上であれば、ステップＳ１４３に戻る。一方、ステップＳ１４５で“ＹＥＳ”であれば、つまり音声レベルが所定値未満であれば、ステップＳ１４７で発声カウンタ３６２を初期化し、ステップＳ１４１に戻る。つまり、ユーザの発話が終了したため、発声時間を計測する発声カウンタ３６２を初期化する。
【０１７１】
なお、ステップＳ１４１およびステップＳ１４５では、マイク２０に入力される音声の音声レベルだけに限らず、スピーカ１８から出力される音声の音声レベルに基づいて判断する。これにより、相手ユーザの発声時間を計測することも可能になる。
【０１７２】
また、他の実施例では、発声カウンタ３６２を利用せず、行動テーブルにおける発話の判定結果に基づいて発声時間が計測されてもよい。つまり、発話判定において連続して「あり」と判定される回数をカウントすることで、発声時間を測定することができる。また、この場合、たとえばユーザＡだけに特化して、発声時間を計測することが可能になり、ユーザＡとユーザＢとが同時に発話しているときには、正確に各ユーザの発声時間を計測できるようになる。さらに、対話中の全ての発話判定結果が行動テーブルに記録されるようにすれば、対話中の総合発声時間や、各発声時間をそれぞれ算出することができる。
【０１７３】
図２７には、ロボット制御プログラム３１６に含まれる全体プログラム３１６ａの処理を示すフロー図が示される。たとえば、ＰＣ１４のプロセッサ６４は、テレビ電話機能による通話が開始されると、ステップＳ１６１で終了操作か否かを判断する。たとえば、テレビ電話機能による通話を終了する操作がされたか否かを判断する。ステップＳ１６１で“ＹＥＳ”であれば、つまり終了操作が行われると、全体処理を終了する。一方、ステップＳ１６１で“ＮＯ”であれば、つまり終了操作が行われなければ、ステップＳ１６３で状態データ３５４を参照する。
【０１７４】
続いて、ステップＳ１６５ではモニタ状態か否かを判断する。つまり、状態データ３５４に、ユーザの興味対象がモニタ１６であること示す「モニタ」が含まれているか否かを判断する。ステップＳ１６５で“ＮＯ”であれば、つまりユーザの興味対象がモニタ１６でなければ、ステップＳ１７５に進む。一方、ステップＳ１６５で“ＹＥＳ”であれば、つまりユーザの興味対象がモニタ１６であれば、ステップＳ１６７でアクティブか否かを判断する。つまり、状態データ３５４に、ユーザがアクティブ状態であることを示す「アクティブ」が含まれているか否かを判断する。ステップＳ１６７で“ＮＯ”であれば、つまりユーザがパッシブ状態であれば、ステップＳ１７７に進む。
【０１７５】
一方、ステップＳ１６７で“ＹＥＳ”であれば、つまりユーザがアクティブ状態であれば、ステップＳ１６９でトークであるか否かを判断する。つまり、状態データ３５４に、ユーザがトーク状態であることを示す「トーク」が含まれるか否かを判断する。ステップＳ１６９で“ＹＥＳ”であれば、つまり、ユーザがトーク状態であれば状態データ３５４は「アクティブ・トーク・モニタ」であるため、ステップＳ１７１でアクティブトーク処理を実行し、ステップＳ１６１に戻る。なお、このアクティブトーク処理については、図２８に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０１７６】
ステップＳ１６９で“ＮＯ”であれば、つまりユーザがリッスン状態であれば状態データ３５４は「アクティブ・リッスン・モニタ」であるため、ステップＳ１７３でアクティブリッスン処理を実行し、ステップＳ１６１に戻る。なお、このアクティブリッスン処理については、図２９に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０１７７】
また、ユーザの興味対象がモニタ１６以外である場合、ステップＳ１７５で、ロボット状態か否かを判断する。つまり、状態データ３５４に、ユーザの興味対象がロボット１０であることを示す「ロボット」が含まれているか否かを判断する。ステップＳ１７５で“ＹＥＳ”であれば、つまりユーザの興味対象がロボット１０であれば、ステップＳ１７７で非アクティブ処理を実行し、ステップＳ１６１に戻る。なお、この非アクティブ処理については図３０に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。一方、ステップＳ１７５で“ＮＯ”であれば、つまりユーザの興味対象がロボット１０でもモニタ１６でもなければ、ステップＳ１７９でアザー処理を実行し、ステップＳ１６１に戻る。なお、アザー処理については図３１に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０１７８】
なお、他の実施例では、ステップＳ１６５，Ｓ１７５およびＳ１７９の処理を省略し、ステップＳ１６７で、アクティブ・モニタか否かを判断するようにしてもよい。また、ステップＳ１７１，Ｓ１７３，Ｓ１７７およびＳ１７９の処理を実行するプロセッサ６４は動作付与手段として機能する。
【０１７９】
図２８にはアクティブトークプログラム３１６ｂの処理を示すフロー図が示される。なお、図２８−図４２までのフロー図に示される処理は、ＰＣ１４ａによって実行されるもとして説明する。そのため、「ユーザ」はユーザＡを示し、「相手」はユーザＢ、つまり相手ユーザを示す。
【０１８０】
ＰＣ１４ａのプロセッサ６４は、ステップＳ１７１の処理が実行されると、ステップＳ１９１でサーバ２４とのデータ通信を確立する。つまり、データ通信処理を実行することで、サーバ２４とのデータ通信を確立する。続いて、ステップＳ１９３では、相手の状態データを取得する。つまり、サーバ２４に記憶されるユーザＢの状態データを、サーバ２４とのデータ通信によって取得する。そして、取得された相手の状態データは、データ通信バッファ３４４に一時的に記憶される。
【０１８１】
続いて、ステップＳ１９５では、相手がモニタ状態か否かを判断する。つまり、データ通信バッファ３４４に一時的に記憶されたユーザＢの状態データに基づいて、ユーザＢの興味対象がモニタ１６ｂであるか否かを判断する。ステップＳ１９５で“ＮＯ”であれば、つまりユーザＢの興味対象がモニタ１６ｂでなければ、ステップＳ２０７に進む。一方、ステップＳ１９５で“ＹＥＳ”であれば、つまりユーザＢの興味対象がモニタ１６ｂであれば、ステップＳ１９７で相手がアクティブか否かを判断する。つまり、取得されたユーザＢの状態データに基づいて、ユーザＢがアクティブ状態であるか否かを判断する。ステップＳ１９７で“ＮＯ”であれば、つまりユーザＢがパッシブ状態であれば、ステップＳ２０７に進む。
【０１８２】
一方、ステップＳ１９７で“ＹＥＳ”であれば、つまりユーザＢがアクティブ状態であれば、ステップＳ１９９で相手がトークであるか否かを判断する。つまり、ユーザＢの状態データに基づいて、ユーザＢがトーク状態であるか否かを判断する。ステップＳ１９９で“ＹＥＳ”であれば、つまりユーザＢがトーク状態であればステップＳ２０１で発話継続処理を実行する。そして、発話継続処理が終了すれば、アクティブトーク処理を終了して、全体処理に戻る。なお、この発話継続処理については、図３２に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０１８３】
また、ステップＳ１９９で“ＮＯ”であれば、つまりユーザＢがリッスン状態であれば、ステップＳ２０３でユーザと相手との状態データを一時記憶する。つまり、ユーザＡの状態を示す状態データ３５４と、データ通信バッファ３４４に記憶されるユーザＢの状態データとを状態データバッファ３４８に一旦格納する。続いて、ステップＳ２０５では、発声時間が閾値Ｌより短いか否かを判断する。つまり、発声カウンタ３６２によってカウントされたユーザＡの発声時間が閾値Ｌより短いか否かを判断する。
【０１８４】
ステップＳ２０５で“ＹＥＳ”であれば、つまりユーザＡの発声時間が閾値Ｌよりも短ければ、ステップＳ２０１に進む。一方、ステップＳ２０５で“ＮＯ”であれば、つまりユーザＡの発声時間が閾値Ｌ以上であれば、ユーザＡが一方的に話しすぎている状態のため、ステップＳ２０７で発話抑制処理を実行する。そして、ステップＳ２０７の処理が終了すれば、アクティブトーク処理を終了して、全体処理に戻る。なお、発話抑制処理については、図３３に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０１８５】
以下、図２９−図３１に示すフロー図において、図２８のフローと重複するフローについては、詳細な説明を省略する。
【０１８６】
図２９にはアクティブリッスンプログラム３１６ｃの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ１７３の処理が実行されると、ステップＳ２１１でサーバ２４とのデータ通信を確立し、ステップＳ２１３では相手の状態データを取得する。続いて、ステップＳ２１５では、相手がモニタ状態であるか否かを判断する。ステップＳ２１５で“ＮＯ”であれば、つまりユーザＢの興味対象がモニタ１６ｂ以外であれば、ステップＳ２２７に進む。
【０１８７】
ステップＳ２１５で“ＹＥＳ”であれば、つまりユーザＢの興味対象がモニタ１６ｂであれば、ステップＳ２１７で相手がアクティブか否かを判断する。ステップＳ２１７で“ＮＯ”であれば、つまりユーザＢがパッシブ状態であれば、ステップＳ２２７に進む。一方、ステップＳ２１７で“ＹＥＳ”であれば、つまりユーザＢがアクティブ状態であれば、ステップＳ２１９で相手がトークであるか否かを判断する。ステップＳ２１９で“ＮＯ”であれば、つまりユーザＢがリッスン状態であれば、ステップＳ２２７に進む。一方、ステップＳ２１９で“ＹＥＳ”であれば、つまりユーザＢがトーク状態であれば、ステップＳ２２１でユーザと相手との状態データを一時記憶する。
【０１８８】
続いて、ステップＳ２２３では発声時間が閾値Ｌよりも短いか否かを判断する。つまり、発声カウンタ３６２によってカウントされたユーザＢの発声時間が、閾値Ｌよりも短いか否かを判断する。ステップＳ２２３で“ＹＥＳ”であれば、つまりユーザＢの発声時間が閾値Ｌよりも短ければ、ステップＳ２２５で発話継続処理を実行する。そして、ステップＳ２２５の処理が終了すれば、アクティブリッスン処理を終了して、全体処理に戻る。一方、ステップＳ２２３で“ＮＯ”であれば、つまりユーザＢの発声時間が閾値Ｌ以上であれば、相手ユーザであるユーザＢが一方的に話しすぎている状態のため、ステップＳ２２７で発話促進処理を実行する。また、ステップＳ２２７の処理が終了すれば、アクティブリッスン処理を終了して、全体処理に戻る。なお、発話促進処理については、図３４に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０１８９】
そして、ステップＳ２０７の発話抑制処理およびステップＳ２２７の発話促進処理が実行されると、ロボット１０ａはユーザＡの発話を制御するように動作する。したがって、ユーザＡとユーザＢとがバランス良く発話するようになるため、対話が持続するようになる。
【０１９０】
図３０には非アクティブプログラム３１６ｄの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ１７７の処理が実行されると、ステップＳ２３１で発話促進処理を実行する。そして、ステップＳ２３１の処理が終了すれば、非アクティブ処理を終了して、全体処理に戻る。たとえば、対話に非積極的なユーザの発話を促進することで、ユーザを対話に参加させ、対話を持続させる。
【０１９１】
図３１にはアザープログラム３１６ｅの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ１７９の処理が実行されると、ステップＳ２４１で注意引きつけ処理を実行する。そして、ステップＳ２４１の処理が終了すると、アザー処理を終了して、全体処理に戻る。
【０１９２】
なお、注意引きつけ処理の詳細な説明は省略するが、この処理が実行されると、ロボット１０ａは、ユーザＡの注意を引きつけるように動作する。つまり、ユーザＡの興味対象がモニタ１６（ユーザＢ）でも、ロボット１０ａでなければ、ロボット１０ａは、ユーザＡが対話に興味を持つように注意を引きつける。このように、アクティブ状態ではないユーザに、対話へ興味を持たせることで、対話が持続するようになる。
【０１９３】
図３２には発話継続プログラム３１６ｆの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ２０１またはステップＳ２２５の処理が実行されると、ステップＳ２６１で行動データを参照する。つまり、ステップＳ２６１では、ユーザＡの行動データを、行動テーブルデータ３５２から参照する。続いて、ステップＳ２６３では、発話しているか否かを判断する。つまり、ユーザＡの行動データにおいて、発話判定結果が「あり」であるか否かを判断する。ステップＳ２６３で“ＹＥＳ”であれば、つまりユーザＡが発話していれば、ステップＳ２６５で傍参与者的疑似傾聴処理を実行する。また、ステップＳ２６５の処理が終了すると、発話継続処理を終了して、上位ルーチンに戻る。なお、傍参与者的疑似傾聴処理については、図３６のフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０１９４】
また、ステップＳ２６３で“ＮＯ”であれば、つまりユーザＡが発話していなければ、ステップＳ２６７で、ステップＳ１９１と同様に、サーバ２４とのデータ通信を確立する。続いて、ステップＳ２６９では相手の行動データを取得する。つまり、ユーザＢの行動データをサーバ２４から取得する。続いて、ステップＳ２７１では、相手の行動データを一時記憶する。つまり、取得されたユーザＢの行動データを相手行動データバッファ３４６に一旦格納する。
【０１９５】
続いて、ステップＳ２７３では、相手が発話しているか否かを判断する。つまり、相手行動データバッファ３４６に記憶されている、ユーザＢの行動データを読み出し、発話判定結果が「あり」となっているか否かを判断する。
【０１９６】
ステップＳ２７３で“ＹＥＳ”であれば、つまりユーザＢが発話していれば、ステップＳ２７５で第１積極的疑似傾聴処理を実行する。また、ステップＳ２７５の処理が終了すれば、発話継続処理を終了して上位ルーチンに戻る。なお、第１積極的疑似傾聴処理については、図３７に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。一方、ステップＳ２７３で“ＮＯ”であれば、つまりユーザＢが発話していなければ、ステップＳ２７７で直前の動作を継続し、処理が終了すれば、発話継続処理を終了して上位ルーチンに戻る。たとえば、ステップＳ２７７では、前回の処理で「ユーザＡを見る」の動作命令が発行されていれば、今回の処理でも同じ動作命令を発行する。
【０１９７】
なお、傍参与者的疑似傾聴処理および第１積極的疑似傾聴処理では、ユーザＡまたはユーザＢに対して、ロボット１０が疑似傾聴を行うように動作命令が付与される。つまり、ユーザＡおよびユーザＢは、ロボット１０の疑似傾聴によって、自身の話を聴いてもらっているように感じることができるため、対話が持続するようになる。
【０１９８】
以下、図３３，図３４に示すフロー図において、図３２のフローと重複するフローについては、詳細な説明を省略する。
【０１９９】
図３３には発話抑制プログラム３１６ｇの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ２０７の処理が実行されると、ステップＳ２８１で行動データを取得する。続いて、ステップＳ２８３では発話しているか否かを判断する。ステップＳ２８３で“ＹＥＳ”であれば、つまりユーザＡが発話していれば、ステップＳ２８５で傍参与者的疑似傾聴処理を実行し、ステップＳ２８５の処理が終了すれば、発話抑制処理を終了してアクティブトーク処理に戻る。
【０２００】
一方、ステップＳ２８３で“ＮＯ”であれば、つまりユーザＡが発話していなければ、ステップＳ２８７でサーバ２４とのデータ通信を確立し、ステップＳ２８９で相手の行動データを取得する。そして、ステップＳ２９１では相手の行動データを一時記憶する。続いて、ステップＳ２９３では、相手が発話しているか否かを判断する。ステップＳ２９３で“ＹＥＳ”であれば、つまりユーザＢが発話してれば、ステップＳ２９５で第１積極的疑似傾聴処理を実行する。また、ステップＳ２９５の処理が終了すれば、発話抑制処理を終了してアクティブトーク処理に戻る。
【０２０１】
また、ステップＳ２９３で“ＮＯ”であれば、つまりユーザＢが発話していなければ、ステップＳ２９７でユーザ発話抑制処理を実行する。そして、ステップＳ２９７の処理が終了すれば、発話抑制処理を終了してアクティブトーク処理に戻る。
【０２０２】
なお、ユーザ発話抑制処理の詳細な説明は後述するが、この処理が実行されると、ロボット１０はユーザの発話を抑制するように動作する。つまり、ユーザＡが一方的に発話している場合には、ユーザＡの発話が抑制される。
【０２０３】
図３４には発話促進プログラム３１６ｈの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ２２７またはステップＳ２３１の処理が実行されると、ステップＳ３０１で行動データを参照する。続いて、ステップＳ３０３では発話しているか否かを判断する。ステップＳ３０３で“ＹＥＳ”であれば、つまりユーザＡが発話していれば、ステップＳ３０５で傍参与者的疑似傾聴処理を実行する。一方、ステップＳ３０３で“ＮＯ”であれば、つまりユーザＡが発話していなければ、ステップＳ３０７でサーバ２４とのデータ通信を確立し、ステップＳ３０９で相手の行動データを取得する。そして、ステップＳ３１１では、相手の行動データを一時記憶する。続いて、ステップＳ３１３では、相手が発話しているか否かを判断する。ステップＳ３１３で“ＹＥＳ”であれば、つまりユーザＢが発話していれば、ステップＳ３１５で第１積極的疑似傾聴処理を実行する。
【０２０４】
また、ステップＳ３１３で“ＮＯ”であれば、つまりユーザＢが発話していなければステップＳ３１７でユーザがロボット１０を見ているか否かを判断する。つまり、ユーザＡの行動データで、視線方向判定結果が「ロボット」であるか否かを判断する。
【０２０５】
ステップＳ３１７で“ＹＥＳ”であれば、つまりユーザＡがロボット１０ａを見ていれば、ステップＳ３１９でユーザ発話促進処理を実行する。そして、ステップＳ３１９の処理が終了すれば、発話促進処理を終了して、上位ルーチンに戻る。
【０２０６】
なお、ユーザ発話促進処理の詳細な説明は後述するが、この処理が実行されると、ロボット１０ａはユーザＡが発話するように動作する。たとえば、上位ルーチンが非アクティブ処理であれば、ユーザＡが会話に参加できるように発話を促進、つまり促すようにロボット１０が動作する。これにより、対話に非積極的なユーザが発話するため、ユーザＡが対話に参加するようになる。
【０２０７】
また、ステップＳ２０７，Ｓ２２７，Ｓ２９７およびＳ３１９の処理を実行するプロセッサ６４は、発話制御動作付与手段として機能する。さらに、ステップＳ２６９，Ｓ２８９およびＳ３０９の処理を実行するプロセッサ６４は取得手段として機能する。
【０２０８】
一方、ステップＳ３１７で“ＮＯ”であれば、つまりユーザＡがロボット１０ａを見ていなければ、ステップＳ３２１で注意引きつけ処理を実行する。そして、ステップＳ３２１の処理が終了すれば、発話促進処理を終了して、上位ルーチンに戻る。
【０２０９】
なお、注意引きつけ処理の詳細な説明は後述するが、この処理が実行されると、ロボット１０ａはユーザＡの注意を引きつけるように動作する。たとえば、上位ルーチンが非アクティブ処理であれば、ユーザＡの注意を引きつけることで、ユーザＡが会話に参加できるようにロボット１０が動作する。これにより、対話に非積極的なユーザは注意を引きつけられ、対話に参加する。
【０２１０】
なお、ステップＳ１７７，Ｓ２３１，Ｓ３１９およびＳ３２１の処理を実行するプロセッサ６４は参加動作付与手段として機能する。
【０２１１】
ここで、発話促進処理の上位ルーチンがアクティブリッスン処理である場合に、ステップＳ３１９またはステップＳ３２１の処理でユーザの発話を促進したり、注意を引きつけたりするようにロボット１０が動作することで、ユーザＡが発話するようになる。つまり、ユーザが相手の話を積極的に傾聴している状態が長く続けば、ユーザＡが発話が求められる。
【０２１２】
図３５には注意引きつけプログラム３１６ｊの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、たとえば、ステップＳ２５１の処理が実行されると、ステップＳ３３１で乱数生成処理を実行する。たとえば、ステップＳ３３１では乱数生成処理では桁数の少ない疑似乱数を１つ生成し、生成した乱数を乱数バッファ３５０に格納する。
【０２１３】
続いて、ステップＳ３３３では、乱数が奇数であるか否かを判断する。つまり、乱数バッファ３５０に格納される乱数を「２」で割ったときの余りが「１」であるか否かを判断する。ステップＳ３３３で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ３３５で「ユーザを見る」の動作命令を発行する。つまり、ユーザＡを見るような動作命令をロボット１０ａに付与する。そして、ステップＳ３３５の処理が終了すれば、注意引きつけ処理を終了して上位ルーチンに戻る。
【０２１４】
また、ステップＳ３３３で“ＮＯ”であれば、つまり乱数が偶数であればステップＳ３３７で、再び乱数生成処理を実行する。また、ステップＳ３３７の処理で作成された乱数は、ステップＳ３３１で作成された乱数を消去した後に記憶される。つまり、ステップＳ３３７の処理が実行されると、乱数バッファ３５０に記憶される乱数が更新される。
【０２１５】
続いて、ステップＳ３３９では、乱数が奇数か否かを判断する。つまり、ステップＳ３３７で生成された乱数が奇数であるか否かを判断する。ステップＳ３３９で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ３４１で「ユーザに声をかける」の動作命令を発行する。たとえば、発行される動作命令は、「ねえねえ」などの合成音声を、口３２に設けられたスピーカ５６から出力させる。そして、ユーザＡは、合成音声を聴くことで、ロボット１０ａに話しかけられたように感じる。
【０２１６】
また、ステップＳ３３９で“ＮＯ”であれば、つまり乱数が偶数であれば、ステップＳ３４３で「ユーザと同じものを見る」の動作命令を発行する。つまり、ユーザＡの行動データにおける、視線判定結果に基づいて、ロボット１０ａの頭部モータ４８および眼球モータ５０を駆動させる動作命令を、ロボット１０ａに付与する。
【０２１７】
たとえば、ユーザＡの視線判定結果が「ロボット」であれば、ロボット１０ａが自身の胴体２８を見るように、頭部モータ４８および眼球モータ５０を駆動させる動作命令を発行する。また、視線判定結果が「モニタ」であれば、ロボット１０ａがモニタ１６ａを見るように、頭部２８を動作させる動作命令を発行する。そして、視線判定結果が「アザー」であれば、ロボット１０ａが周囲をきょろきょろするように、頭部２８を動作させる動作命令を発行する。なお、視線判定結果が４パターン以上ある場合には、さらに動作命令が多様化する。また、行動データにおける視線判定結果が空間座標で示される場合には、ロボット１０ａの空間座標位置と視線判定結果の空間座標位置とに基づいて、ユーザＡが注視する対象をより正確に判断して、見るようにしてもよい。
【０２１８】
このように、注意引きつけ処理では、ユーザを見たり、ユーザに声を掛けたり、ユーザと同じものを見たりするようにロボット１０を動作させる動作命令がランダムに発行される。そして、このようにロボット１０が動作することで、ユーザの注意が引きつけられる。
【０２１９】
なお、右腕３０Ｌまたは左腕３０Ｌを動かしてユーザＡの注意を引きつけてもようにしてもよい。また、ステップＳ３２１，Ｓ３３５，Ｓ３４１およびＳ３４３の処理を実行するプロセッサ６４は注意引付手段として機能する。
【０２２０】
以下、図３６−図４０に示すフロー図において、図３５のフローと重複するフローについては、詳細な説明を省略する。
【０２２１】
図３６には傍参与者的疑似傾聴プログラム３１６ｋの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ３６１で行動データを参照する。続いて、ステップＳ３６３では、話し始めかを判断する。たとえば、発声カウンタ３６２で発声時間がカウントされる場合には、発声カウンタ３６２の値が所定の値（たとえば、２秒を示す値）よりも小さいか否かを判断する。また、行動テーブルにおける発話判定結果に基づいて発声時間が計測されている場合には、発話判定結果が「なし」から「あり」となってから所定回数（たとえば、２回）以内であるか否かを判断する。
【０２２２】
ステップＳ３６３で“ＹＥＳ”であれば、つまりユーザＡが話し始めていれば、ステップＳ３６７で第２積極疑似傾聴処理を実行する。そして、ステップＳ３６７の処理が終了すれば、傍参与者的疑似傾聴処理を終了して、上位ルーチンに戻る。なお、第２積極的疑似傾聴処理については、図３９に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０２２３】
また、ステップＳ３６３で“ＮＯ”であれば、ステップＳ３６５でロボット１０ａを見ているか否かを判断する。つまり、参照されたユーザＡの行動データで、視線方向判定が「ロボット」であるか否かを判断する。ステップＳ３６５で“ＹＥＳ”であれば、つまりユーザＡがロボット１０ａを見ていれば、ステップＳ３６７に進む。一方、ステップＳ３６５で“ＮＯ”であれば、つまりユーザＡがロボット１０ａを見ていなければ、ステップＳ３６９で乱数生成処理を実行し、ステップＳ３７１で生成された乱数が奇数であるか否かを判断する。ステップＳ３７１で“ＮＯ”であれば、つまり乱数が偶数であれば、ステップＳ３６７に進む。一方、ステップＳ３７１で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ３７３で第１積極的疑似傾聴処理を実行する。そして、ステップＳ３７３の処理が終了すると、傍参与者的疑似傾聴処理を終了して、上位ルーチンに戻る。
【０２２４】
このように、傍参与者的疑似傾聴処理では、ユーザＢに対して疑似傾聴を行う第１疑似傾聴処理と、ユーザＡに対して疑似傾聴を行う第２疑似傾聴処理とが、ユーザＡの発話や、視線に基づいて選択される。
【０２２５】
図３７には第１積極的疑似傾聴プログラム３１６ｍの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、たとえばステップＳ３７３の処理が実行されると、ステップＳ３８１で、乱数生成処理を実行し、ステップＳ３８３では生成された乱数が奇数であるか否かを判断する。ステップＳ３８３で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ３８５で「モニタ１６ａに顔を向ける」の動作命令を発行する。つまり、ユーザＢの映像が表示されるモニタ１６ａの方向に、頭部２８の頭部方向および眼球３４の視線方向が向くように、頭部モータ４８および眼球モータ５０を駆動させる動作命令を、ロボット１０ａに付与する。そして、ステップＳ３８５の処理が終了すれば、第１積極的疑似傾聴処理を終了して、上位ルーチンに戻る。
【０２２６】
また、ステップＳ３８３で“ＮＯ”であれば、つまり乱数が偶数であれば、ステップＳ３８７で再び乱数生成処理を実行し、ステップＳ３８９で乱数が奇数であるか否かを判断する。ステップＳ３８９で“ＹＥＳ”であれば、つまり乱数が奇数であればステップＳ３９１で「モニタ１６ａ側に体を傾ける」の動作命令を発行する。つまり、体（頭部２６および胴体２８など）がモニタ１６ａに傾くように、腰モータ５２を駆動させる動作命令を、ロボット１０ａに付与する。そして、ステップＳ３９１の処理が終了すれば、第１積極的疑似傾聴処理を終了して、上位ルーチンに戻る。
【０２２７】
さらに、ステップＳ３８９で“ＮＯ”であれば、つまり乱数が偶数であれば、ステップＳ３９３で「相槌をうつ」の動作命令を発行する。たとえば、人間の相槌のように、スピーカ５６から「あー」などの合成音声を出力するとともに、頭部２６がモニタ１６ａ側に頷くように頭部モータ４８を駆動させる動作命令を、ロボット１０ａに付与する。そして、ステップＳ３９３の処理が終了すれば、第１積極的疑似傾聴処理を終了して、上位ルーチンに戻る。
【０２２８】
このように、第１積極的疑似傾聴処理では、相手ユーザの映像が映るモニタ１６に対して、ロボット１０の顔（頭部２６および眼球３４の方向）を向けたり、ロボット１０の体を傾けたり、相槌をうったりすることで、相手ユーザに対して傾聴しているかのようにロボット１０が動作する。そのため、たとえユーザＡがユーザＢの話を傾聴していなくても、ロボッ１０ａがユーザＢの話を疑似傾聴することで、ユーザＢは自身の話を聴いてもらっているように感じることができる。
【０２２９】
なお、ステップＳＳ２７５，Ｓ２９５，Ｓ３１５，Ｓ３７３，Ｓ３８５，Ｓ３９１およびＳ３９３の処理を実行するプロセッサ６４は相手傾聴動作付与手段として機能する。
【０２３０】
図３８にはユーザ発話抑制プログラム３１６ｎの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ２９７の処理が実行されると、ステップＳ４０１で、行動データを参照する。続いて、ステップＳ４０３では、ステップＳ３６５と同様に、ロボット１０ａを見ているか否かを判断する。ステップ４０３で“ＮＯ”であれば、つまりユーザＡがロボット１０ａを見ていなければ、ステップＳ４０５で注意引きつけ処理を実行する。そして、ステップＳ４０５の処理が終了すれば、ユーザ発話抑制処理を終了して、発話抑制処理に戻る。なお、ステップＳ１７９，Ｓ２４１，Ｓ３２１，Ｓ３３５，Ｓ３４１，Ｓ３４３およびＳ４０５の処理を実行するプロセッサ６４は興味動作付与手段として機能する。
【０２３１】
また、ステップＳ４０３で“ＹＥＳ”であれば、つまりユーザＡがロボット１０ａを見ていなければ、ステップＳ４０７で乱数生成処理を実行し、ステップＳ４０９で乱数が奇数か否かを判断する。ステップＳ４０９で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ４１１で「ユーザを見る」の動作命令を発行する。つまり、ユーザＡの方向に、頭部２８および眼球３４の方向が向くように、頭部モータ４８および眼球モータ５０を駆動させる動作命令を、ロボット１０ａに付与する。そして、ステップＳ４１１の処理が終了すれば、ユーザ発話抑制処理を終了して、発話抑制処理に戻る。
【０２３２】
一方、ステップＳ４０９で“ＮＯ”であれば、ステップＳ４１３で乱数生成処理を再度実行し、ステップＳ４１５で乱数が奇数であるか否かを判断する。ステップＳ４１５で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ４１７で「発話を止める」の動作命令を発行する。つまり、ステップＳ４１７では、発話を止めさせるような合成音声をスピーカ５６から出力させる動作命令を、ロボット１０ａに付与する。また、発話を止めさせるような合成音声とは「ちょっと待って」などである。そして、ステップＳ４１７の処理が終了すれば、ユーザ発話抑制処理を終了して、発話抑制処理に戻る。
【０２３３】
さらに、ステップＳ４１５で“ＮＯ”であれば、つまり乱数が偶数であれば、ステップＳ４１９で再び乱数生成処理を実行し、ステップＳ４２１で乱数が奇数であるか否かを判断する。ステップＳ４２１で“ＹＥＳ”であれば、つまり生成された乱数が奇数であればステップＳ４２３で「モニタ１６ａを指し示す」の動作命令を発行する。つまり、左腕３０Ｌまたは右腕３０Ｒの先端がモニタ１６ａの方を指し示すように、右腕モータ４６Ｒまたは左腕モータ４６Ｌを駆動させる動作命令を、ロボット１０ａに付与する。そして、ステップＳ４２３の処理が終了すれば、ユーザ発話抑制処理を終了して、発話抑制処理に戻る。
【０２３４】
そして、ステップＳ４２１で“ＮＯ”であれば、つまり生成された乱数が偶数であれば、ステップＳ４２５で注意誘導処理を実行する。また、ステップＳ４２５の処理が終了すれば、ユーザ発話抑制処理を終了して、発話抑制処理に戻る。なお、注意誘導処理については、図４０に示すフロー図を用いて後述するため、ここでの詳細な説明は省略する。
【０２３５】
このように、ユーザ発話抑制処理では、積極的に発話するユーザＡに対して、ロボット１０ａがユーザＡを見たり、発話を止める音声を発したり、モニタ１６ａを指示したり、注意を引きつけたり、注意を誘導したりすることで、発話を抑制する。したがって、一方的に話すユーザの注意が誘導されるため、発話が抑制される。また、ユーザの注意が相手に誘導される場合には、相手が発話する機会を得ることができるため、対話がより持続するようになる。
【０２３６】
なお、ステップＳ２９７，Ｓ４０５，Ｓ４１１，Ｓ４１７，Ｓ４２３およびＳ４２５の処理を実行するプロセッサ６４は発話抑制動作付与手段として機能する。
【０２３７】
図３９には第２積極的疑似傾聴プログラム３１６ｐの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ３６７の処理が実行されると、ステップＳ４３１で乱数生成処理を実行し、ステップＳ４３３で乱数が奇数か否かを判断する。ステップＳ４３３で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ４３５で「ユーザに顔を向ける」の動作命令を発行する。つまり、つまりユーザＡの方向に、顔（頭部２６および眼球３４）の方向が向くように、頭部モータ４８および眼球モータ５０を駆動させる動作命令を、ロボット１０ａに付与する。また、ステップＳ４３５の処理が終了すれば、第２積極的疑傾聴処理を終了して、傍参与者的疑似傾聴処理に戻る。
【０２３８】
一方、ステップＳ４３３で“ＮＯ”であれば、つまり乱数が偶数であれば、ステップＳ４３７で乱数生成処理を実行し、ステップＳ４３９で乱数が奇数か否かを再び判断する。ステップＳ４３９で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ４４１で「ユーザＡ側に体を傾ける」の動作命令を発行する。つまり、ロボット１０ａの体（頭部２６および胴体２８）がユーザＡ側に傾くように、腰モータ５２を駆動させる動作命令を、ロボット１０ａに付与する。
【０２３９】
また、ステップＳ４３９で“ＮＯ”であれば、つまり乱数が偶数であれば、ステップＳ４４３で「相槌をうつ」の動作命令を発行する。つまり、頭部２６がユーザＡ側に頷くように頭部モータ４８を駆動させ、人間の相槌のような合成音声をスピーカ５６から出力させる動作命令を、ロボット１０ａに付与する。そして、ステップＳ４４３の処理が終了すれば、第２積極的疑似傾聴処理を終了して、傍参与者的疑似傾聴処理に戻る。
【０２４０】
このように、ロボット１０ａは、ユーザＡに対して顔を向けたり、体を傾けたり、相槌をうったりすることで、ユーザＡの発話を傾聴しているかのような動作を行う。
【０２４１】
なお、ステップＳ１７１，Ｓ１７３，Ｓ２０１，Ｓ２２５，Ｓ２６５，Ｓ２８５，Ｓ３０５，Ｓ３６７，Ｓ４３５，Ｓ４４１およびＳ４４３の処理を実行するプロセッサ６４は傾聴動作付与手段として機能する。
【０２４２】
図４０には注意誘導プログラム３１６ｑの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ４２５の処理が実行されると、ステップＳ４５１で乱数生成処理を実行し、ステップＳ４５３で乱数が奇数であるか否かを判断する。そして、ステップＳ４５３で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ４５５で「モニタ１６ａを見る」の動作命令を発行する。たとえば、ステップＳ４５５では、モニタ１６ａの方向に、頭部２８の頭部方向および眼球３４の視線方向が向くように、頭部モータ４８および眼球モータ５０を駆動させる動作命令を、ロボット１０ａに付与する。そして、ステップＳ４５５の処理が終了すれば、注意誘導処理を終了して、ユーザ発話抑制処理に戻る。
【０２４３】
一方、ステップＳ４５３で“ＮＯ”であれば、つまり乱数が偶数であれば、ステップＳ４５７で乱数生成処理を再度実行し、ステップＳ４５９で乱数が奇数であるか否かを判断する。そして、ステップＳ４５９で“ＹＥＳ”であれば、つまり乱数が奇数であれば、ステップＳ４５５に進む。一方、ステップＳ４５９で“ＮＯ”であれば、つまり生成された乱数が偶数であれば、ステップＳ４６１で、ステップＳ４１１と同様に、「ユーザＡを見る」の動作命令を発行する。そして、ステップＳ４６１の処理が終了すれば、注意誘導処理を終了して、ユーザ発話抑制処理に戻る。
【０２４４】
このように、注意誘導処理が何度か実行されると、ユーザＡとモニタ１６ａとを交互に見るような動作を行うようになるため、ユーザＡの注意が誘導される。特に本実施例では、ロボット１０ａは、ユーザＡよりもモニタ１６ａを見る回数が多くなるように設定されているため、ユーザＡの注意はモニタ１６ａ、つまりユーザＢに誘導される。また、他の実施例では、注意誘導処理を複数回繰り返すことで、より効果的にユーザＡの注意を誘導してもよい。
【０２４５】
なお、ステップＳ４２５，Ｓ４５５およびＳ４６１の処理を実行するプロセッサ６４は注意誘導手段として機能する。
【０２４６】
図４１にはユーザ発話促進プログラム３１６ｒの処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、ステップＳ３１９の処理が実行されると、ステップＳ４７１で「ユーザに質問する」の動作命令を発行する。たとえば、ステップＳ４７１では、「今日の食事のことについて聞いてみたら？」などの合成音声を、口３２に設けられたスピーカ５６から出力されるような動作命令を、ロボット１０ａに付与する。そして、ステップＳ４７１の処理が終了すれば、ユーザ発話促進処理を終了して、発話促進処理に戻る。
【０２４７】
このように、ユーザＡがユーザＢに対して質問をさせるようなことを、ロボット１０ａが発話することで、ユーザＢが発話するようになり、対話が持続するようになる。
【０２４８】
なお、ステップＳ２２７，Ｓ３１９およびＳ４７１の処理を実行するプロセッサ６４は発話促進動作付与手段として機能する。また、ステップＳ３１９およびＳ４７１の処理を実行するプロセッサ６４は発話促し手段として機能する。
【０２４９】
図４２にはカメラ制御プログラム３１８の処理を示すフロー図が示される。ＰＣ１４ａのプロセッサ６４は、テレビ電話機能によって通話が始まると、ステップＳ４８１でモニタカメラ２２ａの画像を送信する。つまり、テレビ電話機能において利用される画像データを、ネットワーク２００を介してＰＣ１４ｂに送信する。続いて、ステップＳ４８３では、興味対象認識結果を参照する。つまり、状態データ３５４に含まれる、興味対象の認識結果を参照する。
【０２５０】
続いて、ステップＳ４８５では、アザー状態か否かを判断する。つまり、ユーザＡの興味対象の認識結果が「アザー」であるか否かを判断する。ステップＳ４８５で“ＹＥＳ”であれば、つまりユーザＡがロボット１０ａまたはモニタ１６ａを見ていなければ、ステップＳ４８３に戻る。一方、ステップＳ４８５で“ＮＯ”であれば、つまりユーザＡがロボット１０ａまたはモニタ１６ａを見ていれば、ステップＳ４８７でモニタ状態か否かを判断する。つまり、ユーザＡの興味対象がモニタ１６であるか否かを判断する。
【０２５１】
ステップＳ４８７で“ＹＥＳ”であれば、つまりユーザＡの興味対象がモニタ１６ａであれば、ステップＳ４８９でモニタカメラ２２ａの画像を送信する。つまり、ユーザＡがモニタ１６を見ることで、ユーザＡの顔がモニタカメラ２２ａによって正面から撮影されていれば、ステップＳ４８９で、モニタカメラ２２ａの画像をＰＣ１４ｂに送信する。一方、ステップＳ４８７で“ＮＯ”であれば、つまりユーザＡの興味対象がロボット１０ａであれば、ステップＳ４９１で腹部カメラ１２ａの画像を送信する。つまり、ユーザＡがロボット１０ａを見ることで、ユーザＡの顔が腹部カメラ１２ａによって正面から撮影されていれば、ステップＳ４９１で、腹部カメラ１２ａの画像をＰＣ１４ｂに送信する。
【０２５２】
なお、ステップＳ４８９またはステップＳ４９１の処理が終了すれば、ステップＳ４８３に戻る。また、ステップＳ４８９およびＳ４９１の処理を実行するプロセッサ６４は画像送信手段として機能する。
【０２５３】
これにより、たとえばユーザＡの顔が認識されている画像がＰＣ１４ｂに送信されるため、モニタ１６ｂに表示される画像には必ずユーザＡの顔が表示されるようになる。そのため、ユーザＢは、たとえユーザＡがロボット１０ａに話しかけている状態であったとしても、ユーザＢ自身に話しかけられているように感じるため、対話が持続するようになる。
【０２５４】
この実施例によれば、傾聴対話持続システム１００は、相手ユーザが表示されるモニタ１６、ユーザの音声が集音されるマイク２０およびユーザを撮影するモニタカメラ２２と接続されるＰＣ１４と、腹部カメラ１２が設けられるロボット１０とを含む。
【０２５５】
ＰＣ１４では、モニタカメラ２２および腹部カメラ１２によって撮影されたユーザの画像と、マイク２０によって集音された音声とに基づいてユーザの行動が判定され、さらにメモリ６８に記憶される。また、ＰＣ１４では、第１所定時間分の行動データからユーザの状態を認識する。そして、たとえばユーザの状態が「アクティブ・トーク・モニタ」と認識されていれば、ロボット１０は、ユーザに対して疑似傾聴を行うように、動作命令がＰＣ１４から付与される。また、ユーザの状態が「パッシブ・リッスン・モニタ」と認識されていれば、ロボット１０はユーザに対して話しかけるなどして注意を引きつけ、ユーザを対話に参加させる。
【０２５６】
このように、ユーザの状態に応じてロボット１０が対話を持続させるように動作するため、コミュニケーション障害のある者同士の対話を持続させることができる。
【０２５７】
なお、腹部カメラ１２およびモニタカメラ２２以外に、モニタ１６およびロボット１０以外の位置でユーザの顔を撮影する第３カメラを設置し、その第３カメラによってユーザの興味対象が「アザー」であるか否かの判定を補完的に行うようにしてもよい。つまり、第３カメラによって、ユーザの顔認識が失敗した状態と、ユーザの興味対象が「アザー」である状態とを区別できるようにする。そして、たとえば顔認識が失敗したときの行動データを興味対象認識処理に反映させないようにすることで、傾聴対話持続システム１００がユーザの興味対象を精度よく認識できるようにしてもよい。
【０２５８】
さらに、ユーザの視線方向を特定する第４カメラを設置し、その第４カメラによってユーザの視界にロボット１０が入っているか否かの判定を補完的に行うようにしてもよい。そして、傾聴対話持続システム１００では、上記判定結果に基づいて、ロボット１０による発話や、ユーザの注意の引きつけの必要性が判断されてもよい。たとえば、ＰＣ１４は、ユーザの視界にロボット１０が入っていなければ、ロボット１０を必ず発話するように動作させる。一方、ＰＣ１４は、ユーザの視界にロボット１０が入っていれば、ロボット１０を必ずユーザの注意の引きつけるように動作させる。
【０２５９】
このように、カメラを３台以上設置することで、興味対象の認識精度を向上させたり、ロボット１０をより効果的に動作させたりすることができる。なお、第３カメラおよび第４カメラの代わりに、１台のカメラで上記２つの判定が行われてもよい。また、より多くのカメラを設置することで、ユーザの行動の判定および状態の認識の精度を向上させたり、ロボット１０に付与される動作命令の判断をより高度なものにしたりしてもよい。
【０２６０】
また、他の実施例は、ＰＣ１４がロボット１０に内蔵されていてもよく、この場合にロボット１０は自律的に傾聴動作や発話機能を実行する。また、この場合、ロボット１０は、ユーザのようなコミュニケーションの対象（コミュニケーション対象）との間で、身振り手振りのような身体動作および音声の少なくとも一方を含むコミュニケーション行動を実行する機能を有する相互作用指向のロボット（コミュニケーションロボット）であってもよい。
【０２６１】
また、ＰＣ１４およびネットワーク２００を利用せずに電話網などを介して、ユーザの画像と音声とがＰＣ１４に送受信されてもよい。また、電話機能をモニタ１６などが有していれば、ＰＣ１４を利用せずに、モニタ１６、スピーカ１８、マイク２０およびモニタカメラ２２のみでテレビ電話機の機能が実現されてもよい。そして、モニタ１６、スピーカ１８、マイク２０およびモニタカメラ２２が同一の筐体に組み込まれてもよい。さらに、この場合、ロボット１０とテレビ電話機とが接続された状態で、テレビ電話の通話が開始される。
【０２６２】
また、ＰＣ１４に代えて、サーバ２４によってユーザの行動および状態が判定および認識され、ロボット１０に対して動作命令を付与するようにしてもよい。この場合、腹部カメラ１２およびモニタカメラ２２によって撮影された画像と、マイク２０によって集音された音声とはサーバ２４に直接送信され、ロボット１０はサーバ２４からの動作命令に従って動作する。さらに、ユーザの状態を認識する処理だけが、サーバ２４で実行されてもよい。つまり、図２２−図２５に示す処理がサーバ２４のプロセッサ８０によって実行され、ＰＣ１４は第１所定時間毎に状態認識結果を取得する。
【０２６３】
また、傾聴対話持続システム１００の他の実施例としては、ユーザＡおよびユーザＢの状態認識結果によらず、ユーザＡの状態データのみに基づいてロボット１０ａが「疑似傾聴動作」、「発話制御動作」および「注意の引きつけの動作」を行ってもよい。たとえば、ユーザＡが発話すれば、ロボット１０ａが疑似傾聴動作を行い、ユーザＡの発声時間が長くなれば、ロボット１０ａがユーザＡを見ることで発話を抑制する。そして、ユーザＡが発話していなかったり、モニタ１６ａおよびロボット１０ａを見ていなかったりすれば、ロボット１０ａはユーザＡの注意を引きつける動作を行う。
【０２６４】
そして、状態データは行動データと同様、図６に示すテーブルのような形式で記憶されてもよい。また、状態データがテーブル形式で記憶される際には、ユーザの状態変化を示すログデータとして利用されてもよい。そして、状態データのテーブルに基づいて作成されるグラフが、モニタ１６に表示されてもよい。
【符号の説明】
【０２６５】
１０ａ，１０ｂ  …ロボット
１２ａ，１２ｂ  …腹部カメラ
１４ａ，１４ｂ  …ＰＣ
１６ａ，１６ｂ  …モニタ
２０ａ，２０ｂ  …マイク
２２ａ，２２ｂ  …モニタカメラ
２４  …サーバ
２６  …頭部
２８  …胴体
３０Ｒ  …右腕
３０Ｌ  …左腕
３２  …口
３４  …眼球
４６Ｒ  …右腕モータ
４６Ｌ  …左腕モータ
４８  …頭部モータ
５０  …眼球モータ
５２  …腰モータ
５６  …スピーカ
６４  …プロセッサ
６８  …メモリ
７０  …視線サーバ
７２  …通信ＬＡＮボード
７０  …無線通信装置
１００  …傾聴対話持続システム
２００  …ネットワーク
【図１】
0005407069.tif 000002
【図２】
0005407069.tif 000003
【図３】
0005407069.tif 000004
【図４】
0005407069.tif 000005
【図５】
0005407069.tif 000006
【図６】
0005407069.tif 000007
【図７】
0005407069.tif 000008
【図８】
0005407069.tif 000009
【図９】
0005407069.tif 000010
【図１０】
0005407069.tif 000011
【図１１】
0005407069.tif 000012
【図１２】
0005407069.tif 000013
【図１３】
0005407069.tif 000014
【図１４】
0005407069.tif 000015
【図１５】
0005407069.tif 000016
【図１６】
0005407069.tif 000017
【図１７】
0005407069.tif 000018
【図１８】
0005407069.tif 000019
【図１９】
0005407069.tif 000020
【図２０】
0005407069.tif 000021
【図２１】
0005407069.tif 000022
【図２２】
0005407069.tif 000023
【図２３】
0005407069.tif 000024
【図２４】
0005407069.tif 000025
【図２５】
0005407069.tif 000026
【図２６】
0005407069.tif 000027
【図２７】
0005407069.tif 000028
【図２８】
0005407069.tif 000029
【図２９】
0005407069.tif 000030
【図３０】
0005407069.tif 000031
【図３１】
0005407069.tif 000032
【図３２】
0005407069.tif 000033
【図３３】
0005407069.tif 000034
【図３４】
0005407069.tif 000035
【図３５】
0005407069.tif 000036
【図３６】
0005407069.tif 000037
【図３７】
0005407069.tif 000038
【図３８】
0005407069.tif 000039
【図３９】
0005407069.tif 000040
【図４０】
0005407069.tif 000041
【図４１】
0005407069.tif 000042
【図４２】
0005407069.tif 000043