(57)【要約】【課題】自己の発話中でもユーザの発話に対応できるようにすること。【解決手段】ユーザと対話するロボット１は、ユーザの顔画像を解析する画像解析部１０６と、周囲の音声から音源方向の推定と音声認識処理とを行う音声解析部１０５，１１１と、音声解析部による音声認識処理の開始と停止を判定する起動判定部１１０と、音声認識処理の認識結果に応じてメッセージを生成し発話する発話生成部１１５と、を備え、起動判定部は、発話生成部の動作状態と画像解析部によるユーザの顔画像の解析結果と音声解析部による音源方向の推定結果とから、ユーザが話しかけていることを示す所定の条件を満たす場合に、発話生成部による発話を一時停止させ、音声解析部による音声認識処理を起動させる。【選択図】図１
2018185362.tif 000002
【特許請求の範囲】
【請求項１】
ユーザと対話するロボットであって、
ユーザの顔画像を解析する画像解析部と、
周囲の音声から音源方向の推定と音声認識処理とを行う音声解析部と、
前記音声解析部による前記音声認識処理の開始と停止を判定する起動判定部と、
前記音声認識処理の認識結果に応じてメッセージを生成し発話する発話生成部と、
を備え、
前記起動判定部は、前記発話生成部の動作状態と前記画像解析部によるユーザの顔画像の解析結果と前記音声解析部による音源方向の推定結果とから、ユーザが話しかけていることを示す所定の条件を満たす場合に、前記発話生成部による発話を一時停止させ、前記音声解析部による音声認識処理を起動させる、
ロボット。
【請求項２】
前記所定の条件とは、前記発話生成部が発話中であり、ユーザの顔が正面に位置する状態で、前記画像解析部によるユーザの顔画像の解析結果がユーザの口元の動作を示す画像であり、かつ前記音声解析部による音源方向の推定結果が前方を示す場合である、
請求項１に記載のロボット。
【請求項３】
本体部に対して可動する可動部を備えており、
前記起動判定部は、前記音声認識処理の開始を示す所定の音声認識開始動作を、前記可動部に実現させる、
請求項２に記載のロボット。
【請求項４】
前記発話生成部の動作中は、前記音声認識処理の停止を示す音声認識停止動作を、前記可動部を動作させることにより実現させる、
請求項３に記載のロボット。
【請求項５】
前記音声認識開始動作は、前記音声認識停止動作を停止させることである、
請求項４に記載のロボット。
【請求項６】
前記音声解析部による音声認識処理の結果に対応するメッセージを前記発話生成部が生成できる場合は、前記メッセージを発話してユーザと新たな会話を開始し、
前記音声解析部による音声認識処理の結果に対応するメッセージを前記発話生成部が生成できない場合は、前記一時停止した発話を前記発話生成部により再開させる、
請求項１または２のいずれか一項に記載のロボット。
【請求項７】
本体部に対して可動する可動部を備えており、
前記起動判定部は、前記発話生成部が前記一時停止した発話を再開させる場合に、前記音声認識処理の停止を示す音声認識停止動作を、前記可動部を動作させることにより実現させる、
請求項６に記載のロボット。
【請求項８】
ユーザと対話するロボットをロボット制御部により制御する方法であって、
前記ロボット制御部は、
前記ロボットの発話中にユーザが発話したか監視し、
ユーザによる発話を検出した場合、発話を一時停止すると共に、前記ロボットの発話中に実施していた、少なくとも前記ロボットの可動部を動かすことで音声認識処理の停止を示す音声認識停止動作を一時停止させ、
ユーザの発する音声を取得し、
前記取得したユーザの音声を音声認識処理し、
前記音声認識処理の結果に対応するメッセージを生成可能か判定し、
前記メッセージを生成できると判定した場合は、前記メッセージを発話してユーザと新たな会話を開始し、
前記メッセージを生成できないと判定した場合は、前記一時停止させた発話を再開させるとともに、前記音声認識停止動作を再開させる、
ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットおよびその制御方法に関する。
【背景技術】
【０００２】
ユーザと対話するロボットが普及しつつあるが、ロボットの発話中にユーザが発話すると、音声認識処理の精度が低下し、会話が成立しなくなる場合がある。ユーザの発した音声を認識するための音声認識処理に対して、ロボットの発話がノイズとして入力されてしまうためである。
【０００３】
このため、ユーザが発話する場合には、ロボットをタッチするなどして、ロボットの発話を停止させ、その後でユーザ音声の音声認識処理を実行していた。
【０００４】
ロボットではないが、対話型の案内装置では、音声認識処理の認識率を向上させるために、トークスイッチの押下によりユーザの発話を検知した場合は、対話型案内装置の案内（発話）を停止する（特許文献１）。
【０００５】
一方、適応フィルタやエコーキャンセルなどの処理を搭載し、発話と音声認識とを同時に処理できるようにしたロボットも知られている（特許文献２）。
【０００６】
なお、ロボットではないが、ユーザの口元の動きを検知することにより、ユーザの発話開始を判定するナビゲーション装置も知られている（特許文献３）。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特許第３６５４０４５号公報
【特許文献２】特許第５１７８３７０号公報
【特許文献３】特開２００９−９８２１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
特許文献１に記載の従来技術では、何らかの操作により音声入力を開始する指示があった場合、案内装置の音量を低減もしくは消音させ、ノイズ推定区間が終了したときに音声入力の許可を報知する。しかし、ユーザは、発話を希望するたびに、案内装置に何らかの操作を行って案内装置自身の発話（自己発話）を停止させる必要があるため、手間がかかるばかりか、対話のテンポが悪くなり、不自然な対話になりやすい。
【０００９】
特許文献２に記載の従来技術では、音声認識処理に入力される信号のうち自己発話による信号を、適応フィルタやエコーキャンセルを用いて除去できるため、自己発話中であってもユーザの発話を認識することができる。しかし、適応フィルタやエコーキャンセルといった処理を用いても自己発話中のユーザの音声を正確に認識するのは難しく、かつ、適応フィルタやエコーキャンセルの実装には手間がかかり、コストも増大する。特に、メモリサイズやＣＰＵ（Central Processing Unit）などのリソースが限られる安価で小型なロボットに、画像処理（顔認識）、音声認識、動作などの基本的制御処理に加えて、適応フィルタなどの処理を実装するのは容易ではない。
【００１０】
特許文献３に記載の従来技術では、ユーザの発話動作（口元の動き）を検知することにより音声認識処理を開始させるため、音声認識処理を開始するための特別な操作は不要である。しかし、ユーザの口元の動作のみでユーザの発話を検知するのは難しい。
【００１１】
本発明は、上記の課題に鑑みてなされたもので、その目的は、自己の発話中でもユーザの発話に応答して対話することができるようにしたロボットおよびその制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の一つの観点に係るロボットは、ユーザと対話するロボットであって、ユーザの顔画像を解析する画像解析部と、周囲の音声から音源方向の推定と音声認識処理とを行う音声解析部と、音声解析部による音声認識処理の開始と停止を判定する起動判定部と、音声認識処理の認識結果に応じてメッセージを生成し発話する発話生成部と、を備え、起動判定部は、発話生成部の動作状態と画像解析部によるユーザの顔画像の解析結果と音声解析部による音源方向の推定結果とから、ユーザが話しかけていることを示す所定の条件を満たす場合に、発話生成部による発話を一時停止させ、音声解析部による音声認識処理を起動させる。
【００１３】
所定の条件とは、発話生成部が発話中であり、ユーザの顔が正面に位置する状態で、画像解析部によるユーザの顔画像の解析結果がユーザの口元の動作を示す画像であり、かつ音声解析部による音源方向の推定結果が前方を示す場合であってもよい。
【００１４】
本体部に対して可動する可動部を備えており、起動判定部は、音声認識処理の開始を示す所定の音声認識開始動作を、可動部に実現させるものであってもよい。
【００１５】
発話生成部の動作中は、音声認識処理の停止を示す音声認識停止動作を、可動部を動作させることにより実現させてもよい。
【００１６】
音声認識開始動作は、音声認識停止動作を停止させることであってもよい。
【００１７】
音声解析部による音声認識処理の結果に対応するメッセージを発話生成部が生成できる場合は、メッセージを発話してユーザと新たな会話を開始し、音声解析部による音声認識処理の結果に対応するメッセージを発話生成部が生成できない場合は、一時停止した発話を発話生成部により再開させてもよい。
【００１８】
本発明の他の観点に従うロボットの制御方法は、ユーザと対話するロボットをロボット制御部により制御する方法であって、ロボット制御部は、ロボットの発話中にユーザが発話したか監視し、ユーザによる発話を検出した場合、発話を一時停止すると共に、ロボットの発話中に実施していた、少なくともロボットの可動部を動かすことで音声認識処理の停止を示す音声認識停止動作を一時停止させ、ユーザの発する音声を取得し、取得したユーザの音声を音声認識処理し、音声認識処理の結果に対応するメッセージを生成可能か判定し、メッセージを生成できると判定した場合は、メッセージを発話してユーザと新たな会話を開始し、メッセージを生成できないと判定した場合は、一時停止させた発話を再開させるとともに、音声認識停止動作を再開させる。
【図面の簡単な説明】
【００１９】
【図１】ロボットの全体構成を示す図。
【図２】ロボット発話中にユーザが話しかけた場合の処理を示すフローチャート。
【図３】ロボットの発話とユーザの話しかけとの関係を模式的に示す説明図。
【図４】第２実施例に係る処理のフローチャート。
【図５】第３実施例に係る処理のフローチャート。
【図６】第４実施例に係り、ユーザの顔がロボットの正面に位置する一例を示す説明図である。
【図７】ユーザの顔がロボットの正面に位置する他の例と位置しない例とを示す説明図である。
【発明を実施するための形態】
【００２０】
本実施形態では、後述の通り、ユーザ（話者）の顔の正面を見た状態で、ロボット１の発話中に、ユーザの口元が動いていることと、ユーザの方向から音声が到来することとを同時に検出した場合に、ロボット１の発話を一時停止し、音声認識を開始する。これにより、ロボット１の発話中（自己発話中）にユーザが割り込んで発話した場合でも、ユーザの発話を認識して自然な対話を継続することができる。なお、以下では、ロボット１の発話を一時的に停止させることを、「一時停止」または「中断」と表現する。
【実施例１】
【００２１】
図１は、ロボット１の全体構成を示す。ロボット１は、ユーザとコミュニケーションすることのできる、いわゆるコミュニケーションロボットとして構成される。ロボット１は、例えば、一般家庭、オフィス、各種商業施設、病院、介護施設、保育園、幼稚園、学校などで、ユーザと対話したり、運動して遊んだりすることができる。以下、ロボット１と対話を通じてコミュニケーションする者をユーザと呼ぶ。
【００２２】
ロボット１は、一つまたは複数のアプリケーション（サービス）を備える。アプリケーションとは、例えば、ニュース、レクリエーション、クイズ、ゲーム、体操、ダンス等である。アプリケーションに対応付けられているコマンドをユーザが発すると、ロボット１はその音声を認識し、コマンドに応じたアプリケーションを実行する。
【００２３】
ロボット１は、ロボット制御部１０と、ロボット本体１１とに大別できる。ロボット制御部１０は、ロボット本体１１を制御するもので、その詳細は後述する。ロボット本体１１は、例えば、胴体１２と、両脚１３Ｒ，１３Ｌと、両手１４Ｒ，１４Ｌと、頭部１５とを備える。以下、左右を区別しない場合、両脚１３、両手１４と呼ぶ。胴体１２は「本体部」に該当する。両脚１３，両手１４，頭部１５は、胴体１２に対して可動に設けられており、「可動部」に該当する。
【００２４】
ロボット制御部１０は、ロボット本体１１に設けられる。ロボット１には、後述するカメラ１２１やマイク１２０などが設けられる。
【００２５】
ロボット制御部１０は、例えば、マイクロプロセッサ（以下ＣＰＵ）１０１、メモリ１０２、ＳＳＤ（Solid State Drive）１０３、統合制御部１０４、音声信号処理部１０５、画像認識部１０６、音声合成部１０７、音声出力部１０８、ＬＥＤ（Light Emitting Diode）駆動部１０９、音声認識起動判定部１１０、音声認識部１１１、辞書データベース１１２、音響モデル１１３、言語モデル１１４、発話生成部１１５、発話データベース１１６、アクチュエータ制御部１１７、アクチュエータ駆動部１１８、モーションデータベース１１９、図示せぬ通信部や電源部等を備える。
【００２６】
ＣＰＵ１０１は、メモリ１０２またはＳＳＤ１０３に格納されているコンピュータプログラムや動作制御データを読み込んで実行することにより、例えば、ニュース、レクリエーション、クイズ、ダンス、体操等のアプリケーションを実行する。本実施例では、補助記憶装置としてＳＳＤ１０３を用いるが、ＳＳＤ以外の記憶装置を用いてもよい。
【００２７】
統合制御部１０４は、音声認識部１１１の音声認識結果がコマンドである場合に、コマンドに応じた動作の開始をＬＥＤ駆動部１０９、発話生成部１１５、アクチュエータ制御部１１７などの対応する各処理部へ指示する機能である。統合制御部１０４は、音声認識の結果がコマンド以外の言葉である場合、ユーザの言葉を発話生成部１１５へ送る。
【００２８】
音声信号処理部１０５と音声認識部１１１とは、「音声解析部」に該当する。音声信号処理部１０５は、複数のマイク１２０から音信号を取得し、解析する。マイク１２０は、例えば、ロボット本体１１のうち左右の両耳に該当する部分と、首に該当する部分の前後にそれぞれ１つずつ設けられている。つまり、ロボット１には、音源の方向を推定できるように、複数のマイク１２０が異なる場所に設けられている。
【００２９】
音声信号処理部１０５は、例えば、特徴ベクトル抽出部１０５１と、音源方向推定部１０５２を備える。なお、図中では「部」という言葉を適宜省略している。
【００３０】
特徴ベクトル抽出部１０５１は、マイク１２０で取得した音声から音声認識のための特徴量を特徴ベクトルとして抽出する。抽出された特徴ベクトルは、音声認識部１１１へ送られる。なお、特徴ベクトル抽出部１０５１は、音源方向推定部１０５２による音源方向の推定結果を利用してビームフォーミングを行い、音源方向から到来する音声を強調した信号に基づいて特徴ベクトルを生成することもできる。これにより、ロボット１に話しかけているユーザの音声の特徴量をより明確に抽出することができる。
【００３１】
音源方向推定部１０５２は、音源からの音波が各マイク１２０へ到達する時間の差を解析することで、音源の方向を推定する。音源の方向の推定結果は、音声認識起動判定部１１０へ送られる。例えば、ロボット本体１１の左右の耳部に実装した２つのマイク１２０で受音した音声信号の到来時間差を算出することにより、音源方向を推定することができる（遅延時間推定法）。さらに、ロボット本体１１の首部の前後に実装した２つのマイク１２０が受音した音声信号の強弱により、音声が到来した方向の前後を区別することができる。なお、４つの全てのマイク１２０で受音した音声信号の到来時間差を算出して、音源方向を推定しても良い。
【００３２】
画像認識部１０６は、「画像解析部」に該当し、カメラ１２１で撮像した画像データ（以下、画像とも呼ぶ）を解析する。画像認識部１０６の解析結果は、音声認識起動判定部１１０へ送られる。カメラ１２１は、例えば、ロボット頭部１５の正面（ロボットの顔に当たる領域）に少なくとも一つ設けられる。画像認識部１０６は、例えば、顔検出部１０６１と、口元動作検出部１０６２とを有する。
【００３３】
顔検出部１０６１は、カメラ１２１から取得した画像からユーザの顔（人間の顔）を抽出する。詳しくは、顔検出部１０６１は、矩形で検出する顔領域と、鼻と口の位置を示す座標および顔向きを出力する。
【００３４】
口元動作検出部１０６２は、カメラ１２１で連続して撮影した画像に基づいて、ユーザの口元の動きの有無を検出する。詳しくは、連続して撮影した画像から、顔検出部１０６１の検出した鼻や口などの座標を利用して、ユーザの口元に動きがあるか判定する。
【００３５】
音声合成部１０７は、発話生成部１１５から入力されるメッセージ（応答文など）に対応する音声信号を合成する。音声合成部１０７で合成された音声信号は、音声出力部１０８を介してスピーカ１２２から外部へ出力される。
【００３６】
ＬＥＤ駆動部１０９は、ロボット本体１１に設けられたＬＥＤ１２３を駆動する。ＬＥＤ１２３は、例えば、ロボット頭部１５の正面（顔に該当する領域）に少なくとも一つ設けることができる。これに代えて、例えば、ロボット頭部１５の背面、首部の周辺、胴体１２の胸部分などにＬＥＤを設けてもよい。さらには、ＬＥＤ１２３に代えて、あるいはＬＥＤ１２３と共に、液晶ディスプレイ、 ＯＬＥＤ（Organic Light Emitting Diode）などの表示部、発光部を設けることもできる。
【００３７】
音声認識起動判定部１１０は、「起動判定部」に該当する。以下、起動判定部１１０とも呼ぶ。起動判定部１１０は、各マイク１２０から受音した音声とカメラ１２１で撮像した画像とに基づいて、ユーザ（話者）の状況を推定し、音声認識処理の開始または停止について判定する。起動判定部１１０の判定結果に基づいて、特徴ベクトル抽出部１０５１と音声認識部１１１とは、その作動を開始または停止させる。
【００３８】
音声認識部１１１は、音声信号処理部１０５から取得する特徴ベクトル等に基づいて、音声を認識する。音声認識部１１１は、例えば、辞書データベース１１２と、音響モデル１１３と、言語モデル１１４とを利用することができる。
【００３９】
音響モデル１１３は、テキストの読みとテキストを発音したときの波形とを対応づけて記憶したデータベースであり、どのような波形の音がどのような単語として認識されるかを定義する。言語モデル１１４は、言語ごとの単語の並べ方（文法）などを記憶したデータベースである。辞書データベース１１２は、一般的な辞書のデータを保持する。例えば、辞書データベース１１２、音響モデル１１３、言語モデル１１４を言語ごとに用意することで、多言語に対応することもできる。
【００４０】
発話生成部１１５は、音声認識部１１１の認識した言葉に対応する応答文（メッセージ）を生成し、音声合成部１０７等を介してスピーカ１２２から外部へ出力させる。詳しくは、発話生成部１１５は、発話データベース１１６を参照して、認識された言葉に応答する文例を選択し、選択した文例から応答文を生成する。
【００４１】
アクチュエータ制御部１１７は、アクチュエータ駆動部１１８を介して複数のアクチュエータ１２４に接続されており、各アクチュエータ１２４を制御する。アクチュエータ１２４としては、例えば、各部の関節を動かすためのＤＣサーボモータ等がある。これに限らず、例えば、超音波モータ、圧電アクチュエータ、ソレノイド等をアクチュエータとして用いてもよい。以下、アクチュエータの例として関節モータを挙げて説明する。そこで、関節モータに符号１２４を付して関節モータ１２４と呼ぶことがある。
【００４２】
アクチュエータ制御部１１７は、統合制御部１０４から指示された動作を実現するために、モーションデータベース１１９を参照して、各部の関節モータ１２４を制御する。モーションデータベース１１９には、各種の動作に対応する関節モータ１２４の制御情報（回転角、回転時間、回転速度、シーケンス）が登録されている。
【００４３】
ここで、統合制御部１０４は、起動判定部１１０が、音声認識処理を開始すべきと判定すると、アクチュエータ制御部１１７に対して、音声認識開始モーション１１９１を実行するよう指示する。一方、統合制御部１０４は、起動判定部１１０が、音声認識処理を停止すべきと判定すると、アクチュエータ制御部１１７に対して、音声認識停止モーション１１９２を実行するよう指示する。
【００４４】
音声認識開始モーション１１９１は、音声認識処理を開始するタイミングで実行されるモーションであり、「音声認識開始動作」に該当する。音声認識停止モーション１１９２は、音声認識処理を停止するタイミング（つまり、発話を開始するタイミング）で実行されるモーションであり、「音声認識停止動作」に該当する。音声認識停止モーション１１９２は、ロボット１の自己発話中に実施されるモーションであるため、発話モーションと呼ぶこともできる。
【００４５】
音声認識開始モーション１１９１，音声認識停止モーション１１９２では、例えば、ロボット本体１１の可動部を動かしたり、ＬＥＤ１２３を点灯させたりすることで、ユーザの注意を喚起することができる。
【００４６】
ユーザは、音声認識処理の開始タイミングおよび停止タイミングを、ロボット１の動作を通じて体験的に習得することができる。ユーザは、音声認識開始モーション１１９１を視認することで、音声認識処理が開始されたことを知ることができ、適切なタイミングで発話することができる。ユーザは、音声認識停止モーション１１９２を視認することで、音声認識処理が停止されていることを知ることができる。ロボット１の性能に関心の少ないユーザであっても、自分の発話が認識されたか否かと、これらのモーション１１９１，１１９２との関係とを経験することができるため、ロボット１の性能に適した話し方を自然に学習することが期待できる。
【００４７】
音声認識開始モーション１１９１の例を説明する。音声認識開始モーション１１９１では、例えば、自己発話中は腕１４を動かしており、音声認識処理の開始時には腕１４の動きを停止させるという動作を行うことで、音声認識処理の開始を知らせる。腕１４の動作停止に代えて、あるいは腕１４の動作停止と共に、音源のユーザに耳を傾けるような仕草をすることで、音声認識処理の開始を知らせてもよい。
【００４８】
音声認識停止モーション１１９２の例を説明する。音声認識停止モーション１１９２では、例えば、音声認識処理中は腕１４を動かさないでおき、音声認識処理を停止させて自己発話が開始されると腕１４の動きを開始するという動作を行うことで、音声認識処理の停止を知らせる。腕１４の動作開始に代えて、あるいは腕１４の動作開始と共に、音声認識処理中に音源のユーザへ耳を傾けていた仕草を停止し、通常状態に戻してもよい。腕１４以外の他の可動部、例えば脚１３や頭部１５を動作させて音声認識の開始または停止をユーザに知らせることもできる。
【００４９】
なお、音声認識開始モーション１１９１では、上述のように、可動部としての腕１４の動作（例えば、腕を上下に振る動作。腕振りモーションとも呼ぶ）を停止させるが、関節モータ１２４を所定の位置で停止させる制御を行ってもよいし、関節モータ１２４をブレーキモードで停止させてもよい。
【００５０】
本実施例の音声認識開始モーション１１９１では ＤＣサーボモータとして構成される関節モータ１２４の内部のＨブリッジをショートさせることで、モータではなく発電機として機能させる。これにより、ＤＣサーボモータの停止制御時のノイズを低減して、音声認識処理の精度低下を抑制できる。さらに、ＤＣサーボモータを停止制御する場合は、停止させる角度を指定して駆動を指示する必要があり、制御処理が煩雑で時間がかかるが、ブレーキモードの場合は、Ｈブリッジをショートさせるだけでよく、簡単かつ速やかに停止させることができる。さらに、ブレーキモード時では、ＤＣサーボモータを回転させるために負荷が必要となるため、腕１４が重力により自然に回転する量を抑制できる。
【００５１】
図２を参照して、本実施例による対話制御処理を説明する。全体の流れは別の実施例で後述する。
【００５２】
まず最初の状態で、ロボット１は発話中であるとする（Ｓ１０）。ロボット１は、例えば、ニュースを読み上げたり、ユーザと会話しているものとする。ロボット１の発話中、つまり自己発話中では、発話モーション（音声認識停止モーション１１９２）が実行されている。
【００５３】
ロボット制御部１０は、ユーザによるロボット１への話しかけを判定するための所定条件が成立したか監視している（Ｓ１１）。所定の条件とは、例えば、ユーザの顔の向きが所定の方向を向いており、ユーザの口元に動きが検出されており、マイク１２０で検出した音声の音源の方向がロボット１の正面前方にあること、である。詳しくは、ユーザの顔がロボット１の正面にあり、ユーザの口元が動いており、ロボット１の正面前方から音声が検出された場合である。ここで、本明細書において、ロボット１の正面前方とは、ロボット１の胴体を基準にしたものではなく、ロボット１に搭載されたカメラ１２１で撮影可能な方向（画角撮影範囲）を言う。「ユーザの顔が正面に位置する場合」の例については、図６，図７で後述する。
【００５４】
所定の条件が成立した場合は、ロボット１の自己発話中に、ユーザが話しかけ始めた状態であると推定することができる。これら顔の向き、口元の動き、音源の方向の検出タイミングが一致する場合に、所定の条件が成立したものとして判定する（Ｓ１１）。誤検知を抑制し、対話が中断するのを防止するためである。タイミングが一致しているか否かは、例えば、音声データのタイムスタンプと画像データのタイムスタンプとの差が所定時間内に収まるか否かで判定できる。
【００５５】
ロボット制御部１０は、所定の条件が成立したと判定すると（Ｓ１１：ＹＥＳ）、音声認識処理を開始したことを、ロボット１の持つ表現能力を駆使してユーザへ知らせる（Ｓ１２）。ロボット制御部１０は、例えば、自己発話を一時停止し、発話モーションを停止し、ユーザへの短い問いかけ動作を行い、かつ、音声入力待ちを示すＬＥＤ表示を行い、そして、各マイク１２０を通じて音声を収集する（Ｓ１２）。
【００５６】
ここで、発話モーションの停止は、音声認識停止モーション１１９２を停止させることを意味する。ユーザへの短い問いかけ動作では、例えば、「ん？」のような短い言葉であって、対話の最中に突然発せられたとしても対話の流れをあまり妨げないと思われる言葉を発する。音声入力待ちを示すＬＥＤ表示では、例えば、ＬＥＤ１２３を青く点灯させることで、音声入力待ちであることをユーザに知らせる。
【００５７】
ロボット制御部１０は、ユーザの顔がロボット１の正面に見えている状態で、各マイク１２０から音声を収集できるか判定する（Ｓ１３）。ユーザの顔がロボット１の正面に見えている状態で音声を収集できない場合（Ｓ１３：ＮＯ）、ロボット制御部１０は、音声の収集開始から所定時間ｔ１が経過したか判定する（Ｓ１４）。
【００５８】
この所定時間ｔ１は、例えば２，３秒等の数秒程度に設定することができる。無音状態が続いた場合は、ステップＳ１２で一時停止させたロボット１の発話（自己発話）を直ちに再開させるためである。所定の時間ｔ１を短く設定することで、所定の条件が偶然成立したような場合に、対話が長時間途切れるのを防止することができ、一時停止させた発話に自然に復帰させることができる。
【００５９】
ロボット制御部１０は、音声の収集を開始してから所定時間ｔ１が経過するまでステップＳ１３を繰り返す（Ｓ１４：ＮＯ）。所定時間ｔ１が経過しても音声を収集できない場合（Ｓ１４：ＹＥＳ）、ロボット制御部１０は、ステップＳ１２で一時停止させた自己発話を再開し（Ｓ１５）、ステップＳ１０へ戻る。
【００６０】
自己発話を再開するステップＳ１５では、発話モーション（音声認識停止モーション１１９２）を再開させると共に、ＬＥＤ１２３を例えば赤く点灯させることで、音声認識処理を停止したことをユーザへ知らせる。
【００６１】
一方、ロボット制御部１０は、所定時間ｔ１が経過する前に、ユーザの顔がロボット１の正面に見えている状態で、各マイク１２０から音声を収集できる場合（Ｓ１３：ＹＥＳ）、音声認識処理を開始する（Ｓ１６）。
【００６２】
なお、図示は省略しているが、ロボット１の内部で音声認識処理の全てを行う必要はなく、少なくとも一部の処理をロボット１の外部に設けられた音声認識処理サーバで実行してもよい。外部のサーバで音声認識処理の全部または一部を実行する場合、音声認識処理の結果が出るまで多少の時間を要する。そこで、ステップＳ１６では、ロボット頭部１５を前に傾ける等して頷く動作（頷きモーション）を実行してもよい。ロボット１が頷きモーションを実行することで、音声認識処理に時間がかかった場合でも、間を持たせることができ、自然な対話を継続できる。なお、音声認識処理の全てをロボット１内で実行する場合であっても、音声認識処理中に頷きモーションを実行することで、ユーザに対し、ユーザの言葉に耳を傾けているように演出することができる。
【００６３】
ロボット制御部１０は、音声認識の結果が出たか判定する（Ｓ１７）。音声認識結果が出ない場合（Ｓ１７：ＮＯ）、ロボット制御部１０は、ステップＳ１６での音声認識処理の開始から所定時間ｔ２が経過したか判定する（Ｓ１８）。ロボット制御部１０は、音声認識の結果が出るまで、所定時間ｔ２だけ待機する。
【００６４】
所定時間ｔ２は、ステップＳ１４で述べた所定時間ｔ１よりも長い値（例えば１０秒程度）に設定することができる。ユーザによるロボット１への話しかけが行われている可能性の高い状況下では、比較的長い時間ｔ２だけ待機することで、ユーザからの話しかけ（割込み）を受け入れて、新たな対話へ導くことができる。もしも、ステップＳ１８の待機時間ｔ２を短く設定すると、ユーザが話しかけようとした動作がキャンセルされる可能性が高くなり、かえって自然な対話を阻害するおそれがある。
【００６５】
ロボット制御部１０は、所定時間ｔ２が経過する前に、音声認識結果を得た場合（Ｓ１７：ＹＥＳ）、音声認識された言葉に対応するメッセージを発話生成部１１５が生成できるか否か判定する（Ｓ１９）。
【００６６】
詳しくは、ロボット制御部１０は、音声認識された言葉を形態素解析し、形態素解析の結果と一致するキーワードが発話データベース１１６に記憶されているか判定することで、有効な会話の可能な音声を認識したか判定する（Ｓ１９）。
【００６７】
音声認識された言葉が発話データベース１１６に記憶されているキーワードを含む場合（Ｓ１９：ＹＥＳ）、ロボット制御部１０は、認識した音声に基づいて、ユーザと新しい会話を開始する（Ｓ２０）。
【００６８】
これに対し、ロボット制御部１０は、ステップＳ１６で音声認識された言葉が発話データベース１１６に記憶されているキーワードを一つも含んでいない場合、即ち、有効な会話が可能な音声を認識できなかった場合（Ｓ１９：ＮＯ）、ステップＳ１５に移り、一時停止させていたロボット１の発話を再開させる。
【００６９】
図３は、図２で述べた処理の一つの具体例を示すタイムチャートである。図示は省略するが、最初にユーザが「明日の天気を教えて」といった内容の発言をし、ロボット１がこの発言に応答して天気予報データをネットワーク上の天気予報サーバ等から収集して応答する場合を例に挙げて説明する。
【００７０】
ケース（ａ）では、ロボット１は、例えば、「今朝の関東地方は晴れのようです」といったニュースを自己発話Ｗ１として読み上げているものとする。なお、ロボット１は、図示せぬ通信機能を用いて、外部のニュース配信サイトなどの情報源から情報を適宜取得できる。
【００７１】
ケース（ｂ）は、ロボット１の自己発話Ｗ１中に、ユーザがロボット１に話しかけ始めたような状況が偶然出現した場合、つまり、図２のステップＳ１１で述べた所定の条件が一時的に成立した場合を示す。
【００７２】
ケース（ｂ）では、所定の条件が成立すると、ロボット１は、自己発話Ｗ１を一時的に中断し、短い応答「ん？」を発する（図２のＳ１２）。これと同時に、ロボット１は、腕１４を上下動させるなどの音声認識停止モーション１１９２を停止し、音声認識処理を開始する（Ｓ１２）。しかし、音声認識処理を開始後に、音声を取得できない無音時間が所定時間ｔ１継続すると（図２のＳ１４でＹＥＳ）、音声認識処理を停止し、中断された発話Ｗ１ａをその続きＷ１ｂから再開する（図２のＳ１５）。
【００７３】
つまり、ケース（ｂ）のように、ユーザから話しかけられたと仮に誤って判定した場合でも、ロボット１は「ん？」というごく短く自然な応答を返し、一瞬だけ耳をそばだてるかのような反応を示してから速やかに元の発話に復帰する。したがって、ロボット１の発話が中断前部分Ｗ１ａと中断後部分Ｗ１ｂとに分かれた場合でも、不自然さをユーザに与える可能性を低減できる。
【００７４】
ケース（ｃ）は、所定の条件が成立したので「ん？」という応答を発し、音声認識処理を開始したが、所定時間ｔ２内に認識可能な音声を収集できなかった場合を示す（図２のＳ１７でＮＯ、Ｓ１８でＹＥＳ）。
【００７５】
ケース（ｃ）では、音声認識処理の開始から所定時間ｔ２が経過した後、ロボット１は、中断された発話を中断位置から再開する（Ｓ１５）。なお、音声認識停止モーション１１９２と音声認識開始モーション１１９１との切替については、図２で述べたので、ここでは割愛する。
【００７６】
ケース（ｄ）は、所定の条件が成立して「ん？」という応答を発し、音声認識処理を開始したが、有効な会話の可能な音声を収集できなかった場合、即ち、発話データベース１１６に登録されているキーワードに対応する音声を認識できなかった場合を示す（図２のＳ１７でＹＥＳ、Ｓ１９でＮＯ）。ユーザの音声からキーワードを抽出できなかった場合、ロボット１は、中断された発話を中断位置から再開する（Ｓ１５）。
【００７７】
ケース（ｅ）は、ロボット１の発話中に検出されたユーザからの話しかけに対応して、ロボット１が新たな話題に転じる場合を示す。
【００７８】
ロボット１が「ん？」という短い応答を発した後、ユーザから収集した音声に有効な会話の可能なキーワードが含まれている場合（図２のＳ１９でＹＥＳ）、ロボット１は、ユーザから話しかけられた音声に応じて新しい会話Ｗ２を開始する（図２のＳ２０）。最初の発話Ｗ１の残り部分Ｗ１ｂは、発話されない。
【００７９】
ケース（ｅ）では、ユーザからの話しかけに対応して、新たな話題に移ることができ、円滑なコミュニケーションを継続することができる。
【００８０】
このように本実施例のロボット１は、音声認識中に、（１）ユーザの顔または音声を検出不能の場合（Ｓ１３：ＮＯ）、（２）検出した音声を認識できない場合（Ｓ１７：ＮＯ）、（３）音声認識した言葉に対応した会話ができない場合（Ｓ１９：ＮＯ）、のいずれかの状態になると、音声認識処理を停止し、音声認識開始モーション１１９１から音声認識停止モーション１１９２へ切り替わる。
【００８１】
なお、新しい会話が開始された場合（Ｓ２０）、ロボット１の発話中では音声認識処理は停止される。ロボット１の発話が終わった後、音声認識停止モーション１１９２から音声認識開始モーション１１９１に切り替わり、音声認識が開始される。
【００８２】
このように構成される本実施例によれば、所定の条件が成立した場合（話者であるユーザの顔の正面を見ている自己発話中に、ユーザの口元が動いており、かつロボット１の正面前方から音声が入力される場合）、ロボット１の発話を一時停止し、音声認識処理を開始する。したがって、本実施例によれば、自己発話中に音声認識可能な機能（バージイン機能）を用いずに、自己発話中のユーザからの話しかけに自然に応対することができ、円滑なコミュニケーションを行うことができる。
【００８３】
本実施例によれば、リソースの制約が大きいためにバージイン機能を備えるのが難しい安価なロボットであっても、自己発話中のユーザからの話しかけに対応できる。したがって、コストをあまり増大させずにロボット１の対話性能を向上することができる。
【００８４】
本実施例によれば、ユーザの顔の向きと口元の動きと音声到来方向との条件が全て揃ったときに、ユーザがロボット１に向かって話していると判断するため、ユーザの発話を精度よく検出することができ、話題の変化に追従することができる。
【００８５】
本実施例によれば、ロボット１の発話を一時停止し、音声認識処理を開始する際に音声認識が可能状態になったことを示す音声認識開始モーション１１９１を実施する。このため、ユーザは、ロボットが発話モード（音声認識停止モード）から音声認識モードへ切り替わるタイミングを自然に学習できる。ユーザは、音声認識モードに移行するまでは音声認識されないという体験を通して、ロボット１の発話中にいきなり重要な言葉を発しても無駄になるといったロボット１の性能に応じた発話方法（割込み方法）を学習することができる。これにより、ユーザが自然にロボットとの対話をスムーズに行えるようになるという効果を期待できる。
【００８６】
本実施例では、音声認識処理の開始を知らせるために音声認識開始モーション１１９１を実行し、発話中に動かしていた部位（例えば腕１４）の動きを停止させる。これにより、本実施例によれば、自然な対話動作の中で、ユーザにモードが切り替わったことを知らせることができる。
【００８７】
本実施例によれば、ロボット１の自己発話中にユーザから発せられた言葉の音声認識結果が、ロボット１の応答可能な話題の範囲（発話データベース１１６に記憶されているキーワードの範囲）である場合、その新しい話題に応答し、一方、応答可能な話題の範囲ではない場合、または音声認識できなかった場合は一時停止した自己発話をその続きから再開する。これにより、移り気なユーザの興味に合わせて対話を継続することができ、ユーザが意味不明な音を発した場合等には、会話のテンポをあまり崩すことなく、元の話題に復帰してコミュニケーションを継続することができる。
【００８８】
本実施例によれば、音声認識処理を停止してロボット１の発話を開始するときに、ユーザの音声を認識しない状態になったことを示す音声認識停止モーション１１９２を実行するため、ユーザは、ロボット１が音声認識モードから発話モード（音声認識停止モード）へ切り替わるタイミングを自然に学習できる。
【００８９】
本実施例によれば、音声認識開始モーション１１９１では、腕１４などの可動部を停止させるため、関節モータ１２４の作動音をマイク１２０が収集するのを防止し、音声認識の精度を高めることができる。
【００９０】
本実施例によれば、腕１４の停止時に、関節モータ１２４をブレーキモードで停止させるため、電気エネルギを消費せずに重力に抗して停止状態を保持することができる。
【実施例２】
【００９１】
図４を用いて第２実施例を説明する。本実施例を含む以下の各実施例は第１実施例の変形例に該当するため、第１実施例との相違を中心に述べる。本実施例では、ロボット１の周囲のユーザ数に応じて、第１実施例で述べた対話制御方法、即ち、ロボット１の自己発話中にユーザから話しかけられた場合に対応する対話処理（以下、割込み対応対話制御処理）の起動を制御する。
【００９２】
図４は、本実施例に係るロボット１の実行する処理の一部を示す。ロボット制御部１０は、カメラ１２１で撮影した画像やマイク１２０で収集した音声から、ロボット１の周囲の環境を取得する（Ｓ３０）。例えば、ロボット制御部１０は、カメラ１２１を搭載した頭部１５を所定角度水平方向に回動させることで、ロボット１の周囲に存在するユーザの画像を見渡すようにして取得する。
【００９３】
ロボット制御部１０は、ステップＳ３０で取得した画像等から会話対象となり得るユーザの候補を検出する（Ｓ３１）。ロボット制御部１０は、例えば、ユーザの顔画像の大きさなどからロボット１との距離を推定し、ロボット１から所定距離内に位置するユーザであって、ロボット１の正面付近に存在するユーザを、ロボット１と会話可能なユーザの候補として検出する（Ｓ３１）。
【００９４】
ロボット制御部１０は、ステップＳ３１で検出したユーザ数が、あらかじめ設定された閾値ＴｈＵ以下であるか判定する（Ｓ３２）。会話可能なユーザ数が閾値ＴｈＵ以下である場合（Ｓ３２：ＹＥＳ）、ロボット制御部１０は、第１実施例で述べた割込み対応対話制御処理（図２のＳ１０〜Ｓ２０）を実行可能にセットする（Ｓ３３）。
【００９５】
一方、会話可能なユーザ数が閾値ＴｈＵよりも多い場合（Ｓ３２：ＮＯ）、ロボット制御部１０は、ステップＳ３３をスキップする。したがって、ロボット１は、割込み対応対話制御処理を実行することができない。
【００９６】
割込み対応対話制御処理の実施可否を決定した後、ロボット制御部１０は、ユーザと対話する（Ｓ３４）。ロボット制御部１０は、ユーザが「クイズ」や「ダンス」などのアプリケーションの実行を要求するコマンドを発話した場合、そのコマンドに応じたアプリケーションを実行する。
【００９７】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに本実施例では、ロボット１と対話可能なユーザ数が閾値ＴｈＵ以下の場合に、第１実施例で述べた割込み対応対話制御処理を実行可能とする。したがって、ロボット１が、閾値ＴｈＵよりも多い数のユーザを相手にして「レクリエーション」などを実行する場合に、ロボット１の司会進行などが周囲のユーザの発言に妨げられるのを抑制することができる。
【実施例３】
【００９８】
図５を用いて第３実施例を説明する。本実施例では、アプリケーションの種類に応じて、割込み対応対話制御処理の実行可否を決定する。
【００９９】
図５は、本実施例に係るロボット１が実行する処理の一部を示す。ロボット制御部１０は、モードを判定する（Ｓ４０）。ここでは、モードとして、例えば、自由会話モード（Ｓ４１，Ｓ４２）、ニュースモード（Ｓ４３，Ｓ４４）、レクリエーションモード（Ｓ４５，Ｓ４６）、充電要求モード（Ｓ４７，Ｓ４８）などがあるとする。
【０１００】
自由会話モードでは、ロボット１は、ユーザと自由に会話する。ニュースモードは、ユーザが「ニュースを読んで」などのコマンドを発話した場合に実施される。ニュースモードでは、ロボット制御部１０は図外のニュース配信サーバからニュースを取得し、取得したニュースを読み上げる。
【０１０１】
レクリエーションモードは、ロボット１の管理者（例えば、ロボット１の設置された施設のロボット担当者など）が事前に日時を決めて設定することができる。レクリエーションモードは、例えば、介護施設、学校、病院、スーパーマーケット、百貨店、遊園地などで実行される。レクリエーションモードでは、ロボット１が司会を務め、「体操」、「合唱」、「クイズ大会」などのプログラムを実行する。
【０１０２】
充電要求モードは、ロボット１の蓄電池（図示せず）のＳＯＣ（State Of Charge）が所定の閾値まで低下し、充電が必要になった場合に実行される。充電要求モードになると、ロボット制御部１０は、充電が必要であることをＬＥＤ１２３の点灯などで管理者に通知する。
【０１０３】
ロボット制御部１０は、自由会話モードの場合（Ｓ４１：ＹＥＳ）、割込み対応対話制御処理を実行可能な状態で、ユーザと自由に対話する（Ｓ４２）。
【０１０４】
ロボット制御部１０は、ニュースモードの場合（Ｓ４３：ＹＥＳ）、割込み対応対話制御処理を実行可能な状態で、ニュースを読み上げる（Ｓ４４）。
【０１０５】
ロボット制御部１０は、レクリエーションモードの場合（Ｓ４５：ＹＥＳ）、割込み対応対話制御処理を実行しない状態で、レクリエーションの司会を務める（Ｓ４６）。
【０１０６】
ロボット制御部１０は、充電要求モードの場合（Ｓ４７：ＹＥＳ）、割込み対応対話制御処理を実行しない状態で、管理者に対して充電を要求する（Ｓ４８）。
【０１０７】
このように構成される本実施例も第１実施例と同様の作用効果を奏する。さらに、本実施例では、モードに応じて（アプリケーションの種類に応じて）、割込み対応対話制御処理の実行可否を決定するため、ロボット１は、状況に応じてユーザとコミュニケーションを取ることができる。
【０１０８】
例えば、レクリエーションモードでは、多くのユーザを相手にすることが多いため、もしも割込み対応対話制御処理を実行可能に設定すると、ユーザの発話によりロボット１の司会進行が頻繁に中断されてしまい、円滑なレクリエーション活動を行うことができないおそれがある。
【０１０９】
充電要求モードでは、蓄電池の残量が少なくなっているため、ユーザからの話しかけにいちいち対応していたのでは蓄電池の残量がより早くなくなってしまい、ロボット１の機能が停止するおそれがある。
【０１１０】
しかし、本実施例では、割込み対応対話制御処理を実行すべきモードと、実行しないモードとにわけてロボット１を制御するため、ロボット１の置かれた状況に応じて円滑なコミュニケーションを実現することができる。
【実施例４】
【０１１１】
図６，図７を参照して第４実施例を説明する。本実施例では、「所定の条件」について詳細に説明する。
【０１１２】
上述の通り、ユーザが話しかけていることを示す所定の条件を満たす場合に、発話生成部１１５による発話を一時停止させ、音声解析部（１０５，１１１）による音声認識処理を起動させる。
【０１１３】
所定の条件とは、上述の通り、発話生成部１１５が発話中であり、ユーザの顔が正面に位置する状態で、画像解析部としての画像認識部１０６によるユーザの顔画像の解析結果がユーザの口元の動作を示す画像であり、かつ音声解析部による音源方向の推定結果が前方を示す場合である。
【０１１４】
図６に示すように、「ユーザの顔が正面に位置する状態」とは、ユーザがロボット１を見ている状態である。詳しくは、ユーザがロボット１を見ている状態とは、ロボット１のカメラ１２１で撮影可能な範囲（画角撮影範囲）において、ユーザの顔の正面がロボット１の方向を向いている状態である。ロボット１のカメラ１２１がユーザの正面の顔を撮影できればよいため、ユーザがロボット１の真正面に位置する場合（図６のＡ）に限らず、真正面以外の位置であっても画角撮影範囲内にユーザの正面の顔が位置する場合（図６のＢ，Ｃ）も含む。
【０１１５】
図７の説明図に示すように、ユーザの顔が画角撮影範囲内に位置していても、ユーザがロボット１の方を向いていない場合（図７のＤ）、「ユーザの顔が正面に位置する状態」には含まない。また、ユーザはロボット１の方を向いているが、画角撮影範囲から外れている場合（図７のＥ）、「ユーザの顔が正面に位置する場合」に含まない。
【０１１６】
したがって、「ユーザの顔が正面に位置する場合」の具体例は、図６のＡ〜Ｃと図７のＡ’およびＢ’が該当し、図７のＤ，Ｅは該当しない。図示はしないが、画角撮影範囲内のユーザがロボット１に背を向けている場合や、ユーザが天井を見上げていたり床を見ている場合も、「ユーザの顔が正面に位置する場合」には該当しない。
【０１１７】
なお、本発明は、上述した実施の形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。ロボットは、人型である必要はなく、例えば犬、猫、鳥、魚などの動物、ひまわり、トウモロコシなどの植物、円柱、ポリゴン、立方体などの幾何学状物体でもよい。
【符号の説明】
【０１１８】
１：ロボット、１０：ロボット制御部、１１：ロボット本体、１２：胴体、１３Ｌ，１３Ｒ：脚、１４Ｌ，１４Ｒ：手、１５：頭部、１０４：統合制御部、１０５：音声信号処理部、１０６：画像認識部、１１０：音声認識起動判定部、１１１：音声認識部、１１５：発話生成部、１１６：発話データベース、１１９：モーションデータベース
【図１】
2018185362.tif 000003
【図２】
2018185362.tif 000004
【図３】
2018185362.tif 000005
【図４】
2018185362.tif 000006
【図５】
2018185362.tif 000007
【図６】
2018185362.tif 000008
【図７】
2018185362.tif 000009