(57)【特許請求の範囲】
【請求項１】
人間の発話および発話以外の動作に基づいて人間の近傍に存在する物品のうち人間の指示する物品を推定する物品推定システムであって、
物品に関連する単語と当該単語の音素記号列とを対応つけて記憶する第１記憶手段、
物品の識別情報と当該物品に関連する単語とを対応つけて記憶する第２記憶手段、
前記人間の発する音声を音声認識することにより生成した音素記号列を前記第１記憶手段に参照して物品に関連する単語を特定する単語特定手段、
前記単語特定手段が特定した物品に関する単語を前記第２記憶手段に参照して前記人間が指示する物品を特定する第１物品特定手段、
前記人間の発話以外の動作に基づいて前記人間が指示する物品を特定する第２物品特定手段、
前記人間の発する前記音声のパターンが前記人間の指示する物品を特定する単語を含むことが予測されるパターンであるかを判断する判断手段、
音声認識により生成した前記音素記号列が前記第１記憶手段に記憶されておらず、かつ、前記判断手段が前記人間の発する前記音声のパターンが前記人間の指示する物品を含むことが予測されるパターンであると判断した場合に、当該記憶されていない音素記号列を、前記第２物品特定手段が特定した物品の名称を示す単語と対応つけて前記第１記憶手段に記憶させる記録更新手段、および
前記第１物品特定手段および前記第２物品特定手段の特定結果に基づいて前記人間が指示する物品を推定する推定手段を備える、物品推定システム。
【請求項２】
前記第２物品特定手段は、前記人間の視線の直線と各物品との距離に基づく前記人間の指示する物品の特定、および前記人間が行う指差しの方向の直線と各物品との距離に基づく前記人間の指示する物品の特定の少なくとも一方を行う、請求項１記載の物品推定システム。
【請求項３】
前記推定手段は、前記単語物品特定手段が特定した単語が物品の名称を示す単語である場合には、前記第１物品特定手段による特定結果を前記第２物品特定手段による特定結果に優先して前記人間が指示する物品を推定し、前記単語物品特定手段が特定した単語が物品の名称を示す単語でない場合には、前記第２物品特定手段による特定結果を前記第１物品特定手段による特定結果に優先して前記人間が指示する物品を推定する、請求項１または２記載の物品推定システム。
【請求項４】
人間の発話および人間のジェスチャに基づいて人間の近傍に存在する物品のうち人間の指示する物品を推定する物品推定システムであって、
物品に関連する単語と当該単語の音素記号列とを対応つけて記憶する第１記憶手段、
物品の識別情報と当該物品に関連する単語とを対応つけて記憶する第２記憶手段、
前記人間の発する音声を音声認識することにより生成した音素記号列を前記第１記憶手段に参照して物品に関連する単語を特定する単語特定手段、
前記単語特定手段が特定した物品に関する単語を前記第２記憶手段に参照して前記人間が指示する物品を特定する第１物品特定手段、
前記人間のジェスチャに基づいて前記人間が指示する物品を特定する第２物品特定手段、
前記人間の発する前記音声のパターンが前記人間の指示する物品を特定する単語を含むことが予測されるパターンであるかを判断する判断手段、
音声認識により生成した前記音素記号列が前記第１記憶手段に記憶されておらず、かつ、前記判断手段が前記人間の発する前記音声のパターンが前記人間の指示する物品を含むことが予測されるパターンであると判断した場合に、当該記憶されていない音素記号列を、前記第２物品特定手段が特定した物品の名称を示す単語と対応つけて前記第１記憶手段に記憶させる記録更新手段、および
前記第１物品特定手段および前記第２物品特定手段の特定結果に基づいて前記人間が指示する物品を推定する推定手段を備える、物品推定システム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は物品推定システムに関し、特にたとえば、人間の発話および発話以外の動作に基づいて人間の近傍に存在する物品のうち人間の指示する物品を推定する物品推定システムに関する。
【背景技術】
【０００２】
この種の物品推定システムの例が開示された特許文献は見当たらないが、音声認識は人間と装置をつなぐインターフェースとしてさまざまな装置に採用されており、音声認識を採用した装置には、たとえば、特許文献１に開示された片付けロボットがある。
【０００３】
特許文献１によると、この片付けロボットは、人間から受け取った物品の片付けや片付けた物品の人間への返却を行う。ロボットは、人間から片付ける物品を受け取ると、その物品の写真を撮って記憶してから物品を片付ける。そして、後に、人間が「この前預けた物とってきて」などと指示すると、ロボットは、この指示を音声認識して理解し、物品を預かったときに撮影してデータベースに記憶されている複数の物品の写真を返却する物品の候補として表示する。そして、人間は、表示された写真に添付された数字を発声して返却してほしい物品をロボットに伝える。ロボットは、人間の発声した数字を音声認識し、認識された数字が添付された写真から返却する物品を特定する。
【特許文献１】特開２００７−１５２４４３号公報［Ｂ２５Ｊ  １３／００］
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の片付けロボットは、人間による返却してほしい物品の指示を、写真の提示と写真の選択によって行っているが、インターフェースの簡便化のためこの物品の指示をも音声認識で実現することが考えられる。音声によって物品を指示する場合、人間はロボットが備えている音声認識辞書に登録されている物品の正式名称である単語を用いて物品を指示するとは限らず、音声認識辞書に登録されていないその人間独自の略称である単語や地方特有の呼び名である単語を用いて物品を指示することが考えられる。このような場合、これらの単語が音声認識辞書に登録されていないために、音声認識することができないという問題がある。また、これらの単語を音声認識辞書に登録するには手間がかかるという問題がある。
【０００５】
それゆえに、この発明の主たる目的は、新規な物品推定システムを提供することである。
【０００６】
また、この発明の他の目的は、人間独自の略語や地方の方言など音声認識辞書に登録されておらず音声認識できなかった単語を、手間をかけずに音声認識辞書に登録して音声認識できるようにすることができる物品推定システムを提供することである。
【課題を解決するための手段】
【０００７】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【０００８】
第１の発明は、人間の発話および発話以外の動作に基づいて人間の近傍に存在する物品のうち人間の指示する物品を推定する物品推定システムであって、物品に関連する単語と当該単語の音素記号列とを対応つけて記憶する第１記憶手段、物品の識別情報と当該物品に関連する単語とを対応つけて記憶する第２記憶手段、人間の発する音声を音声認識することにより生成した音素記号列を第１記憶手段に参照して物品に関連する単語を特定する単語特定手段、単語特定手段が特定した物品に関する単語を第２記憶手段に参照して人間が指示する物品を特定する第１物品特定手段、人間の発話以外の動作に基づいて人間が指示する物品を特定する第２物品特定手段、人間の発する音声のパターンが人間の指示する物品を特定する単語を含むことが予測されるパターンであるかを判断する判断手段、音声認識により生成した音素記号列が前記第１記憶手段に記憶されておらず、かつ、判断手段が人間の発する音声のパターンが人間の指示する物品を含むことが予測されるパターンであると判断した場合に、当該記憶されていない音素記号列を、第２物品特定手段が特定した物品の名称を示す単語と対応つけて第１記憶手段に記憶させる記録更新手段、および第１物品特定手段および第２物品特定手段の特定結果に基づいて人間が指示する物品を推定する推定手段を備える、物品推定システムである。
【０００９】
第１の発明では、物品推定システム（１０）は人間の発話および発話以外の動作に基づいて人間の近傍に存在する物品のうち人間の指示する物品を推定する。第１記憶手段（１２６、２０５Ｂ）は物品に関連する単語と当該単語の音素記号列とを対応つけて記憶する。第２記憶手段（１２２、２０５Ａ）は物品の識別情報と当該物品に関連する単語とを対応つけて記憶する。単語特定手段（２００、Ｓ１１１）は人間の発する音声を音声認識することにより生成した音素記号列を第１記憶手段に参照して物品に関連する単語を特定する。第１物品特定手段（２００、Ｓ１２５）は単語特定手段が特定した物品に関する単語を第２記憶手段に参照して人間が指示する物品を特定する。第２物品特定手段（２００、Ｓ３９）は人間の発話以外の動作に基づいて人間が指示する物品を特定する。判断手段（２００、２０５Ｃ、Ｓ１１５）は人間の発する音声のパターンが人間の指示する物品を特定する単語を含むことが予測されるパターンであるかを判断する。記録更新手段（２００）は音声認識により生成した音素記号列が第１記憶手段（１２６）に記憶されておらず、かつ、判断手段が人間の発する音声のパターンが人間の指示する物品を含むことが予測されるパターンであると判断した場合に、当該記憶されていない音素記号列を、第２物品特定手段が特定した物品の名称を示す単語と対応つけて第１記憶手段（１２６）に記憶させる。そして、推定手段（２００、Ｓ４３）は第１物品特定手段および第２物品特定手段の特定結果に基づいて人間が指示する物品を推定する。
【００１０】
ここで、物品の名称を示す単語とは、たとえば、物品が書籍である場合には、「本」や「書籍」など物品の種類を示す単語ではなく、本のタイトルの名称であり、物品を一意に特定することができる名称を示す単語である。
【００１１】
第１の発明によれば、人間の発した発話内容に含まれる単語が音声認識辞書に登録されていない場合であっても、人間の発話以外の動作に基づいて人間の指示する物品を特定できる。そして、特定した物品の名称と音声認識辞書に登録されていない単語の音素記号列とを対応付けて音声認識辞書に登録する。したがって、人間が独自の省略された単語や地方に特有の単語などを用いた場合でもその単語を音声認識辞書に簡便に登録し、次回からは音声認識できるようにすることができる。
【００１２】
第２の発明は、第１の発明に従属する発明であって、第２物品特定手段は、人間の視線の直線と各物品との距離に基づく人間の指示する物品の特定および人間が行う指差しの方向の直線と各物品との距離に基づく人間の指示する物品の特定の少なくとも一方を行う。
【００１３】
第２の発明では、第２物品特定手段（２００、Ｓ３９）は人間の視線の直線と各物品との距離に基づく人間の指示する物品の特定および人間が行う指差しの方向の直線と各物品との距離に基づく人間の指示する物品の特定の少なくとも一方を行う。
【００１４】
第２の発明によれば、人間の視線または人間の行う指差しの方向の少なくとも一方に基づいて人間の指示する物品を特定することができる。
【００１５】
第３の発明は、第１の発明および第２の発明に従属する発明であって、推定手段は、単語物品特定手段が特定した単語が物品の名称を示す単語である場合には、第１物品特定手段による特定結果を第２物品特定手段による特定結果に優先して前記人間が指示する物品を推定し、単語物品特定手段が特定した単語が物品の名称を示す単語でない場合には、第２物品特定手段による特定結果を第１物品特定手段による特定結果に優先して前記人間が指示する物品を推定する。
【００１６】
第３の発明では、推定手段（２００、Ｓ４３）は、単語物品特定手段が特定した単語が物品の名称を示す単語である場合には、第１物品特定手段による特定結果を第２物品特定手段による特定結果に優先して前記人間が指示する物品を推定し、単語物品特定手段が特定した単語が物品の名称を示す単語でない場合には、第２物品特定手段による特定結果を第１物品特定手段による特定結果に優先して人間が指示する物品を推定する。
【００１７】
第３の発明によれば、音声認識の結果、物品の名称を示す単語が認識された場合は、音声認識に基づいて特定された物品を、人間の発話以外の動作（人間の視線や指差し方向）に基づいて特定された物品よりも優先して人間が指示した物品を推定する。また、音声認識の結果、物品の名称を示す単語が認識されなかった場合には、人間の発話以外の動作（視線や指差し方向）に基づいて特定された物品を優先して人間が指示した物品を推定する。人間の発話以外の動作（視線や指差し方向）に基づく物品の特定よりも物品の名称を示す単語を認識した音声認識に基づく物品の特定の方が人間の指示している物品を正しく特定すると考えられ、また、物品の名称以外の単語を認識した音声認識に基づく物品の特定よりも人間の発話以外の動作（視線や指差し）に基づく物品の特定の方が人間の指示している物品を正しく特定すると考えられるので、より正確に人間の指示する物品を推定することができる。
第４の発明は、人間の発話および人間のジェスチャに基づいて人間の近傍に存在する物品のうち人間の指示する物品を推定する物品推定システムであって、物品に関連する単語と当該単語の音素記号列とを対応つけて記憶する第１記憶手段、物品の識別情報と当該物品に関連する単語とを対応つけて記憶する第２記憶手段、人間の発する音声を音声認識することにより生成した音素記号列を第１記憶手段に参照して物品に関連する単語を特定する単語特定手段、単語特定手段が特定した物品に関する単語を第２記憶手段に参照して人間が指示する物品を特定する第１物品特定手段、人間のジェスチャに基づいて人間が指示する物品を特定する第２物品特定手段、人間の発する音声のパターンが人間の指示する物品を特定する単語を含むことが予測されるパターンであるかを判断する判断手段、音声認識により生成した音素記号列が第１記憶手段に記憶されておらず、かつ、判断手段が人間の発する音声のパターンが人間の指示する物品を含むことが予測されるパターンであると判断した場合に、当該記憶されていない音素記号列を、第２物品特定手段が特定した物品の名称を示す単語と対応つけて第１記憶手段に記憶させる記録更新手段、および第１物品特定手段および第２物品特定手段の特定結果に基づいて人間が指示する物品を推定する推定手段を備える、物品推定システムである。
第４の発明でも、第１の発明と同様の効果が期待できる。
【発明の効果】
【００１８】
この発明によれば、人間独自の略語や地方の方言など音声認識辞書に登録されておらず音声認識できなかった単語を、手間をかけずに音声認識辞書に登録して音声認識できるようにすることができる。
【００１９】
この発明の上述の目的，その他の目的，特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【発明を実施するための最良の形態】
【００２０】
図１を参照して、この実施例のコミュニケーションロボットシステム（以下、単に「システム」ということがある。）１０は、コミュニケーションロボット(以下、単に「ロボット」ということがある。)１２を含む。このロボット１２は、たとえば無線ＬＡＮなどのネットワーク１４にアクセスすることができる。ロボット１２はサーバ２０と協働して人間１６が音声、視線、および指差しで指示する物品を特定し、たとえばその物品を人間１６に持っていくなどの動作を実行する。
【００２１】
人間１６は、その人物が誰であるかを示す無線タグ１８を装着しているとともに、図示しないが、モーションキャプチャのためのマーカが付着されている。マーカは、典型的には、人間の頭頂、両肩、両肘、両手の人差し指の先端などに設定されていて、それらのマーカが、人間１６の全体とともに、サーバ２０に制御されるカメラ１２０によって撮影される。カメラ１２０は、実施例では、３つ設けられ、人間１６を３方向から撮影し、そのカメラ映像をサーバ２０に供給する。
【００２２】
サーバ２０は無線ＬＡＮのようなネットワーク１４に結合され、上述のようにして入力されるカメラ映像データに基づいて、マーカの動きを検出するモーションキャプチャ処理を実行するとともに、たとえば肌色領域を検出することによって、人間１６の顔の位置を特定することができる。
【００２３】
このシステム１０では、上述のように、ロボット１２が人間１６の指示する物品を対象物として特定するものである。対象物となり得る物品の例として、この実施例では、本（書籍）２４を用いる。本２４には、その本がどのような本であるかを示す無線タグ１８が付着されている。本２４は本棚２６に収納される。
【００２４】
ただし、対象物となり得る物品は実施例の書籍だけでなく、もし家庭用のシステムであれば、家庭内のあらゆる物品が考えられる。また、当然、家庭用としてだけではなく、人間と一緒に働く任意の場所（会社、事務所、工場など）での利用が考えられる。
【００２５】
そして、このシステム１０が対象とするすべての物品（本２４）は、サーバ２０に付設された物品辞書１２２に登録される。物品辞書１２２については後述する。
【００２６】
また、システム１０が対象とする人間１６は、人間１６に付着されている無線タグ１８が複数存在するアンテナ１２４のいずれかを介して無線タグ読取装置２０８（図４参照）で読み取られることによって、その位置がサーバ２０で把握される。つまり、人間１６の位置は、人間１６に付着されている無線タグ１８からの電波をどのアンテナ１２４で受信したかによって若干大まかな位置が把握される。
【００２７】
なお、図１では、簡単のため、１台のロボット１２を示してあるが、２台以上であってよい。また、人間１６は１人に限定される必要はなく、無線タグ１８で識別できるので、複数であってよい。
【００２８】
また、図１に示す実施例では、このシステム１０を設置している空間のワールド座標を用いてロボット１２、人間１６、物品２４などの位置が表現されていて、他方、ロボット１２の制御はロボット座標で行なわれるので、詳細は説明しないが、ロボット１２は、後述の処理における必要に応じて、ロボット座標とワールド座標との間の座標変換処理を実行するものである。
【００２９】
図２を参照して、ロボット１２のハードウェアの構成について説明する。また、図２はこの実施例のロボット１２の外観を示す正面図である。ロボット１２は台車３０を含み、台車３０の下面にはロボット１２を自律移動させる２つの車輪３２および１つの従輪３４が設けられる。２つの車輪３２は車輪モータ３６（図３参照）によってそれぞれ独立に駆動され、台車３０すなわちロボット１２を前後左右の任意方向に動かすことができる。また、従輪３４は車輪３２を補助する補助輪である。したがって、ロボット１２は、配置された空間内を自律制御によって移動可能である。
【００３０】
台車３０の上には、円柱形のセンサ取り付けパネル３８が設けられ、このセンサ取り付けパネル３８には、多数の赤外線距離センサ４０が取り付けられる。これらの赤外線距離センサ４０は、センサ取り付けパネル３８すなわちロボット１２の周囲の物体（人間や障害物など）との距離を測定するものである。
【００３１】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、超音波距離センサやミリ波レーダなどを用いることもできる。
【００３２】
センサ取り付けパネル３８の上には、胴体４２が直立するように設けられる。また、胴体４２の前方中央上部（人の胸に相当する位置）には、上述した赤外線距離センサ４０がさらに設けられ、ロボット１２の前方の主として人間との距離を計測する。また、胴体４２には、その側面側上端部のほぼ中央から伸びる支柱４４が設けられ、支柱４４の上には、全方位カメラ４６が設けられる。全方位カメラ４６は、ロボット１２の周囲を撮影するものであり、後述する眼カメラ７０とは区別される。この全方位カメラ４６としては、たとえばＣＣＤやＣＭＯＳのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ４０および全方位カメラ４６の設置位置は、当該部位に限定されず適宜変更され得る。
【００３３】
胴体４２の両側面上端部（人の肩に相当する位置）には、それぞれ、肩関節４８Ｒおよび肩関節４８Ｌによって、上腕５０Ｒおよび上腕５０Ｌが設けられる。図示は省略するが、肩関節４８Ｒおよび肩関節４８Ｌは、それぞれ、直交する３軸の自由度を有する。すなわち、肩関節４８Ｒは、直交する３軸のそれぞれの軸廻りにおいて上腕５０Ｒの角度を制御できる。肩関節４８Ｒの或る軸（ヨー軸）は、上腕５０Ｒの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節４８Ｌは、直交する３軸のそれぞれの軸廻りにおいて上腕５０Ｌの角度を制御できる。肩関節４８Ｌの或る軸（ヨー軸）は、上腕５０Ｌの長手方向（または軸）に平行な軸であり、他の２軸（ピッチ軸およびロール軸）は、その軸にそれぞれ異なる方向から直交する軸である。
【００３４】
また、上腕５０Ｒおよび上腕５０Ｌのそれぞれの先端には、肘関節５２Ｒおよび肘関節５２Ｌが設けられる。図示は省略するが、肘関節５２Ｒおよび肘関節５２Ｌは、それぞれ１軸の自由度を有し、この軸（ピッチ軸）の軸回りにおいて前腕５４Ｒおよび前腕５４Ｌの角度を制御できる。
【００３５】
前腕５４Ｒおよび前腕５４Ｌのそれぞれの先端には、人の手に相当するハンド５６Ｒおよびハンド５６Ｌがそれぞれ設けられる。これらのハンド５６Ｒおよび５６Ｌは、詳細な図示は省略するが、開閉可能に構成され、それによってロボット１２は、ハンド５６Ｒおよび５６Ｌを用いて物体を把持または挟持することができる。ただし、ハンド５６Ｒ，５６Ｌの形状は実施例の形状に限らず、人間の手に酷似した形状や機能を持たせるようにしてもよい。
【００３６】
また、図示は省略するが、台車３０の前面，肩関節４８Ｒと肩関節４８Ｌとを含む肩に相当する部位，上腕５０Ｒ，上腕５０Ｌ，前腕５４Ｒ，前腕５４Ｌ，球体５６Ｒおよび球体５６Ｌには、それぞれ、接触センサ５８（図３で包括的に示す）が設けられる。台車３０の前面の接触センサ５８は、台車３０への人間や他の障害物の接触を検知する。したがって、ロボット１２は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪３２の駆動を停止してロボット１２の移動を急停止させることができる。また、その他の接触センサ５８は、当該各部位に触れたかどうかを検知する。なお、接触センサ５８の設置位置は、当該部位に限定されず、適宜な位置（人の胸，腹，脇，背中および腰に相当する位置）に設けられてもよい。
【００３７】
胴体４２の中央上部（人の首に相当する位置）には首関節６０が設けられ、さらにその上には頭部６２が設けられる。図示は省略するが、首関節６０は、３軸の自由度を有し、３軸の各軸廻りに角度制御可能である。或る軸（ヨー軸）はロボット１２の真上（鉛直上向き）に向かう軸であり、他の２軸（ピッチ軸、ロール軸）は、それぞれ、それと異なる方向で直交する軸である。
【００３８】
頭部６２には、人の口に相当する位置に、スピーカ６４が設けられる。スピーカ６４は、ロボット１２が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク６６Ｒおよびマイク６６Ｌが設けられる。以下、右のマイク６６Ｒと左のマイク６６Ｌとをまとめてマイク６６ということがある。マイク６６は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部６８Ｒおよび眼球部６８Ｌが設けられる。眼球部６８Ｒおよび眼球部６８Ｌは、それぞれ眼カメラ７０Ｒおよび眼カメラ７０Ｌを含む。以下、右の眼球部６８Ｒと左の眼球部６８Ｌとをまとめて眼球部６８ということがある。また、右の眼カメラ７０Ｒと左の眼カメラ７０Ｌとをまとめて眼カメラ７０ということがある。
【００３９】
眼カメラ７０は、ロボット１２に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。この実施例では、ロボット１２は、この眼カメラ７０からの映像信号によって、人間１６の左右両目のそれぞれの視線方向（ベクトル）を検出する。その視線検出方法は具体的には、２つのカメラを用いるものとして特開２００４‐２５５０７４号公報に、１つのカメラを用いるものとして特開２００６‐１７２２０９号公報や特開２００６‐２８５５３１号公報開示されるが、ここではその詳細は重要ではないので、これらの公開公報を引用するにとどめる。
【００４０】
ただし、人間１６の視線ベクトルの検出のためには、よく知られているアイマークレコーダなどが利用されてもよい。
【００４１】
また、眼カメラ７０は、上述した全方位カメラ４６と同様のカメラを用いることができる。たとえば、眼カメラ７０は、眼球部６８内に固定され、眼球部６８は、眼球支持部（図示せず）を介して頭部６２内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、２軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この２軸の一方は、頭部６２の上に向かう方向の軸（ヨー軸）であり、他方は、一方の軸に直交しかつ頭部６２の正面側（顔）が向く方向に直行する方向の軸（ピッチ軸）である。眼球支持部がこの２軸の各軸廻りに回転されることによって、眼球部６８ないし眼カメラ７０の先端（正面）側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ６４，マイク６６および眼カメラ７０の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【００４２】
このように、この実施例のロボット１２は、車輪３２の独立２軸駆動，肩関節４８の３自由度（左右で６自由度），肘関節５２の１自由度（左右で２自由度），首関節６０の３自由度および眼球支持部の２自由度（左右で４自由度）の合計１７自由度を有する。
【００４３】
図３はロボット１２の電気的な構成を示すブロック図である。この図３を参照して、ロボット１２は、ＣＰＵ８０を含む。ＣＰＵ８０は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス８２を介して、メモリ８４，モータ制御ボード８６，センサ入力／出力ボード８８および音声入力／出力ボード９０に接続される。
【００４４】
メモリ８４は、図示は省略をするが、ＲＯＭ，ＨＤＤおよびＲＡＭを含む。ＲＯＭおよびＨＤＤには、ロボット１２の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力（センサ情報）を検知するための検知プログラムや、外部コンピュータとの間で必要なデータやコマンドを送受信するための通信プログラムなどが記録される。また、ＲＡＭは、ワークメモリやバッファメモリとして用いられる。
【００４５】
さらに、この実施例では、ロボット１２は、人間１６とのコミュニケーションをとるために発話したり、ジェスチャしたりできるように構成されているが、メモリ８４に、このような発話やジェスチャのための発話／ジェスチャ辞書８５Ａが設定されている。
【００４６】
モータ制御ボード８６は、たとえばＤＳＰで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、右眼球部６８Ｒの２軸のそれぞれの角度を制御する２つのモータ（図３では、まとめて「右眼球モータ９２」と示す）の回転角度を制御する。同様にして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、左眼球部６８Ｌの２軸のそれぞれの角度を制御する２つのモータ（図３では、まとめて「左眼球モータ９４」と示す）の回転角度を制御する。
【００４７】
また、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、肩関節４８Ｒの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節５２Ｒの角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「右腕モータ９６」と示す）の回転角度を制御する。同様にして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、肩関節４８Ｌの直交する３軸のそれぞれの角度を制御する３つのモータと肘関節５２Ｌの角度を制御する１つのモータとの計４つのモータ（図３では、まとめて「左腕モータ９８」と示す）の回転角度を制御する。
【００４８】
さらに、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、首関節６０の直交する３軸のそれぞれの角度を制御する３つのモータ（図３では、まとめて「頭部モータ１００」と示す）の回転角度を制御する。そして、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、車輪３２を駆動する２つのモータ（図３では、まとめて「車輪モータ３６」と示す）の回転角度を制御する。
【００４９】
モータ制御ボード８６にはさらにハンドアクチュエータ１０８が結合され、モータ制御ボード８６は、ＣＰＵ８０からの制御データを受け、ハンド５６Ｒ，５６Ｌの開閉を制御する。
【００５０】
なお、この実施例では、車輪モータ３６を除くモータは、制御を簡素化するためにステッピングモータ（すなわち、パルスモータ）を用いる。ただし、車輪モータ３６と同様に直流モータを用いるようにしてもよい。また、ロボット１２の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。
【００５１】
センサ入力／出力ボード８８は、モータ制御ボード８６と同様に、ＤＳＰで構成され、各センサからの信号を取り込んでＣＰＵ８０に与える。すなわち、赤外線距離センサ４０のそれぞれからの反射時間に関するデータがこのセンサ入力／出力ボード８８を通じてＣＰＵ８０に入力される。また、全方位カメラ４６からの映像信号が、必要に応じてセンサ入力／出力ボード８８で所定の処理を施してからＣＰＵ８０に入力される。眼カメラ７０からの映像信号も、同様にして、ＣＰＵ８０に入力される。また、上述した複数の接触センサ５８（図３では、まとめて「接触センサ５８」と示す）からの信号がセンサ入力／出力ボード８８を介してＣＰＵ８０に与えられる。音声入力／出力ボード９０もまた、同様に、ＤＳＰで構成され、ＣＰＵ８０から与えられる音声合成データに従った音声または声がスピーカ６４から出力される。また、マイク６６からの音声入力が、音声入力／出力ボード９０を介してＣＰＵ８０に与えられる。
【００５２】
また、ＣＰＵ８０は、バス８２を介して通信ＬＡＮボード１０２に接続される。通信ＬＡＮボード１０２は、たとえばＤＳＰで構成され、ＣＰＵ８０から与えられた送信データを無線通信装置１０４に与え、無線通信装置１０４は送信データを、ネットワーク１４を介してサーバ２０に送信する。また、通信ＬＡＮボード１０２は、無線通信装置１０４を介してデータを受信し、受信したデータをＣＰＵ８０に与える。たとえば、送信データとしては、ロボット１２からサーバ２０への信号（コマンド）であったり、ロボット１２が行ったコミュニケーションについての動作履歴情報（履歴データ）などであったりする。このように、コマンドのみならず履歴データを送信するのは、メモリ８４の容量を少なくするためと、消費電力を抑えるためである。この実施例では、履歴データはコミュニケーションが実行される度に、サーバ２０に送信されたが、一定時間または一定量の単位でサーバ２０に送信されるようにしてもよい。
【００５３】
さらに、ＣＰＵ８０は、バス８２を介して無線タグ読取装置１０６が接続される。無線タグ読取装置１０６は、アンテナ（図示せず）を介して、無線タグ１８（ＲＦＩＤタグ）から送信される識別情報の重畳された電波を受信する。そして、無線タグ読取装置１０６は、受信した電波信号を増幅し、当該電波信号から識別信号を分離し、当該識別情報を復調（デコード）してＣＰＵ８０に与える。図１によれば無線タグ１８は、ロボット１２が配置された会社の受付や一般家庭の居間などに居る人間１６に装着され、無線タグ読取装置１０６は、通信可能範囲内の無線タグ１８を検出する。なお、無線タグ１８は、アクティブ型であってもよいし、無線タグ読取装置１０６から送信される電波に応じて駆動されるパッシブ型であってもよい。
【００５４】
図４を参照して、サーバ２０のハードウェアの構成について説明する。図４に示すように、サーバ２０は、ＣＰＵ２００を含む。ＣＰＵ２００は、プロセッサとも呼ばれ、バス２０２を介して、メモリ２０４、カメラ制御ボード２０６、無線タグ読取装置２０８、ＬＡＮ制御ボード２１０、入力装置制御ボード２１２、およびモニタ制御ボード２１４に接続される。
【００５５】
ＣＰＵ２００は、サーバ２０の全体の制御を司る。メモリ２０４は、ＲＯＭ、ＲＡＭ、およびＨＤＤなどを包括的に示したものであり、サーバ２０の動作のためのプログラムを記録したり、ＣＰＵ２００が動作する際のワークエリアとして機能したりする。カメラ制御ボード２０６は、当該制御ボード２０６に接続されるカメラ１２０を制御するためのものである。
【００５６】
無線タグ読取装置２０８は、当該制御ボード２０８に接続されるアンテナ１２４を介して人間１６や物品（本）２４に装着された無線タグ１８から送信される識別情報の重畳された電波を受信する。そして、無線タグ読取装置２０８は、受信した電波信号を増幅し、当該電波信号から識別信号を分離し、当該識別情報を復調（デコード）してＣＰＵ２００に与える。アンテナ１２４は、ロボット１２が配置された会社の受付や一般家庭の各部屋などにくまなく配置され、システム１０が対象とするすべての物品（本）２４および人間１６の無線タグ１８から電波を受信できるようになっている。したがって、アンテナ１２４は複数存在するが、図１および図４では包括的に示している。
【００５７】
また、ＬＡＮ制御ボード２１０は、当該制御ボード２１０に接続される無線通信装置２１６を制御し、サーバ２０が外部のネットワーク１４に無線によってアクセスできるようにするものである。さらに、入力装置制御ボード２１２は、当該制御ボード２１２に接続される入力装置としてのたとえば、キーボードやマウスなどによる入力を制御するものである。そして、モニタ制御ボード２１４は、当該制御ボード２１４に接続されるモニタへの出力を制御するものである。
【００５８】
また、サーバ２０は、図示しないインターフェースによって、サーバ２０に付設された物品辞書１２２および音声認識辞書１２６（図１参照）に接続されている。
【００５９】
メモリ２０４には、物品ローカル辞書２０５Ａ、音声認識ローカル辞書２０５Ｂ、発話パターン辞書２０５Ｃ、発話辞書２０５Ｄ、個人正誤ＤＢ２０５Ｅ、および音声認識率ＤＢ２０５Ｆが設定されている。
【００６０】
物品ローカル辞書２０５Ａは、後述する物品辞書１２２から抽出された内容が登録される辞書である。サーバ２０は、ロボット１２が人間１６を認識した際に、当該人間１６の近傍に存在する物品（本）２４の情報だけを物品辞書１２２から抽出して物品ローカル辞書２０５Ａに登録する。音声認識ローカル辞書２０５Ｂは、後述する音声認識辞書１２６から抽出された内容が登録される辞書である。サーバ２０は、ロボット１２が人間１６を認識して物品ローカル辞書２０５Ａを作成すると、当該物品ローカル辞書２０５Ａに登録されている単語を音声認識するために必要な情報を音声認識辞書１２６から抽出して音声認識ローカル辞書２０５Ｂに登録する。したがって、物品ローカル辞書２０５Ａおよび音声認識ローカル辞書２０５Ｂは、人間１６の位置の変化に応じて動的に書き換えられる。このように音声認識辞書１２６から音声認識ローカル辞書２０５Ｂを作成し、音声認識に使用する辞書を小さくすることによって音声認識の対象となる単語（音素記号列）の数を少なくし、音声認識の処理にかかる時間を短くするとともに正しく音声認識できる割合を高めることができる。
【００６１】
発話パターン辞書２０５Ｃは、人間１６の行った発話の内容が特定のパターンであるか否かを判断するための辞書である。発話辞書２０５Ｄは、サーバ２０がロボット１２に、人間１６に対して発話させる音声の内容を決定するために必要な情報を記憶している。また、個人正誤ＤＢ２０５Ｅは、システム１０が、人間１６が指示した物品（本）２４を特定することに最終的に成功したか否かを人間１６のＩＤ別に記憶している。そして、音声認識率ＤＢ２０５Ｆは、音声認識辞書１２６に登録されている単語のそれぞれについての音声認識における認識率、つまり、実際の音声認識により当該単語を正しく認識できた割合を記憶している。
【００６２】
次に、図５を参照して物品辞書１２２を説明する。この図５に示す物品辞書１２２は、たとえばユーコード（Ucode）のようなＩＤをそれぞれの物品の１つに割り当て、物品毎にその名称、属性、位置(座標)などの必要な情報を文字列として登録している。なお、ユーコードは、具体的には、１２８ビットの数字からなり、３４０兆の１兆倍のさらに１兆倍の数の物品を個別に識別できるものである。ただし、この物品辞書１２２に使うＩＤは必ずしもこのようなユーコードである必要はなく、適宜の数字や記号の組み合わせからなるものであってよい。
【００６３】
このような物品辞書１２２は、システム１０（ロボット１２およびサーバ２０）が識別すべき対象物となるすべての、たとえば家庭内の物品をＩＤと文字列とで登録するものであり、いわばグローバル辞書に相当する。
【００６４】
物品辞書１２２には、1つの物品（本）２４についての情報が１つのレコードとして登録されている。そして、たとえば、１つのレコードには、本のＩＤ以外に「名称」、「属性」、「著者」、「出版社」などの項目が記憶されている。「属性」の項目には、本のカバーの色や体裁など当該本を補足的に説明する単語が記憶されている。各項目の情報はテキスト形式の単語で記憶されている。しかし、「属性」の項目においてダブルコーテーション（“）で囲まれている情報は、音声認識における音素記号形式（音素記号列）の単語で記憶されている。
【００６５】
この音素記号列の情報は、ロボット１２がマイク６６で拾った人間１６が発する音声をサーバ２０が音声認識する処理の過程で生成される情報であり、音声認識ローカル辞書２０５Ｂ（音声認識辞書１２６）に登録されておらず、音声認識をすることができなかったが、人間１６の視線や指差しにより、人間１６がどの本を指示しているか判断できた場合に、その認識できなかった音声に相当する音素記号列をその本のレコードの「属性」として記憶したものである。
【００６６】
また、音素記号列の後に括弧書きで付記されているのは、当該音素記号列に対応つけて記憶された人間１６のＩＤの情報である。これは、当該音声記号列の示す音声が、当該ＩＤが示す人間１６によって発せられたことを示している。
【００６７】
なお、前述したように、物品辞書１２２には各物品（本）２４が存在する場所の情報も記憶されており、物品辞書１２２の１つのレコードには、図示しないが当該物品（本）２４が存在する場所を記憶する項目も含まれている。
【００６８】
次に、図１０を参照して音声認識辞書１２６を説明する。一般的に音声認識辞書には単語辞書と文法辞書とが存在するが音声認識辞書１２６は単語辞書である。文法辞書についての説明は省略する。音声認識辞書１２６は、図１０に示すように、テキスト形式の単語を記憶する項目、テキスト形式の単語に対応する音素記号形式（音素記号列）の単語を記憶する項目、および当該テキスト形式の単語が物品の名称、たとえば、本のタイトル（名称）であるか否かを示す情報を記憶する項目を含むレコードからなっている。テキスト形式の単語を記憶する項目に記憶されているのが物品の名称であるか否かを示す情報を記憶する項目には、テキスト形式の単語を記憶する項目に物品の名称が記憶されている場合には「１」が記憶され、そうでない場合は「０」が記憶されている。
【００６９】
音声認識の処理では、入力された音声を音素に分解し、分解した各音素について当該音素を表す記号を生成する。そして、入力された音声の単語に相当するこの記号の列が音声認識辞書１２６に記憶されている音素記号列である。音声認識の処理では、音声から生成した音素記号列ともっとも近い音素記号列を音声認識辞書１２６（音声認識ローカル辞書２０５Ｂ）内で特定し、この特定した音素記号列に対応して記憶されている単語を音声認識結果として出力する。
【００７０】
前述したように、このシステム１０では、人間１６が音声と視線および指差しによって物品（本）２４を指示すると、ロボット１２とサーバ２０とが協働して、人間１６が指示した物品（本）２４を特定し、その特定した物品（本）２４をロボット１２が人間１６のところに運搬などする。以下において、この人間１６とシステム１０とのやり取りをコミュニケーションと呼ぶことがある。
【００７１】
より詳細に述べると、このシステム１０では、人間１６がロボット１２に近づくと、ロボット１２が人間１６を無線タグ１８によって認識する。サーバ２０には、システム１０が対象とする物品（本）２４のすべてが登録された物品辞書１２２、および音声認識によって物品（本）２４を特定するための単語が登録された音声認識辞書１２６が付設されている。ロボット１２が人間１６を認識すると、ロボット１２はサーバ２０に対して物品辞書１２２および音声認識辞書１２６のローカル辞書（物品ローカル辞書２０５Ａ、音声認識ローカル辞書２０５Ｂ）の作成を指示する。
【００７２】
ローカル辞書の作成の指示を受けると、サーバ２０では、ロボット１２が認識した人間１６の位置を特定し、特定した当該人間１６から所定の範囲内、たとえば、半径５ｍ以内にある物品（本）２４のレコードのみを物品辞書１２２から抽出して物品ローカル辞書２０５Ａを作成する。そして次に、音声認識辞書１２６から、物品ローカル辞書２０５Ａに登録されている物品（本）２４を音声認識するため必要な情報のみを抽出して音声認識ローカル辞書２０５Ｂを作成する。
【００７３】
その後、ロボット１２は、認識した人間１６に対して、たとえば、「何か本を持ってきましょうか？」という発話を行う。この発話に対し、人間１６は、持ってきてほしい物品（本）２４に視線を向けつつ当該物品（本）２４を指差しながら、「化学の謎持ってきて」などと答える。
【００７４】
するとロボット１２は、「化学の謎持ってきて」という人間１６の声を音声認識し、人間１６の視線を推定し、指差した指が向かっている方向を推定することによって、人間１６が指示している物品（本）２４を特定する。
【００７５】
人間１６が指示している物品（本）２４を特定すると、サーバ２０は、人間１６に特定した物品（本）２４を確認するためにロボット１２が発話する音声の内容、たとえば、「白い本ですか？」を決定し、ロボット１２が当該物品（本）２４（化学の謎の本２４）を指し示しながらこれを発話する。
【００７６】
このとき、サーバ２０は、発話の内容を、次回に人間１６が当該物品（本）２４（化学の謎の本２４）をロボット１２に指示する際に、人間１６に当該物品（本）２４（化学の謎の本２４）を特定するための単語として使用してほしい単語を含んだものとする。
【００７７】
たとえば、ロボット１２が特定した物品（本）２４（化学の謎の本２４）を確認するための発話内容が「白い本ですか？」であった場合、システム１０は、次回に人間１６が「化学の謎」の本を指示する際には、指差しとともに、「化学の謎持ってきて」と発話する代わりに「あの白い本持ってきて」と発話することを期待している。このことは、人間はロボットの発話内容を真似する傾向があるという知見に基づいている。この場合、人間１６に物品（本）２４を特定するために次回に使用することを期待する単語は「白い」である。この「白い」という単語は、人間１６の近傍に「化学の謎」の本２４の他に「白い」物品（本）２４が存在せず、また、「白い」という単語の音声認識における認識率が高い場合にサーバ２０によって選択される。
【００７８】
ところで、人間１６が指差しとともに、「化学の謎を持ってきて」などと発話する場合、「化学の謎」という単語ではなく、その人間１６が独自に使用する、たとえば、「化学の謎」の省略形である「バケナゾ」という単語を用い「バケナゾ持ってきて」などと発話することが考えられる。この場合、「バケナゾ」という単語が物品辞書１２２および音声認識辞書１２６に登録されていなければ、システム１０は「バケナゾ」という音声を認識し、「バケナゾ」が「化学の謎」の本を指示していることを特定することができない。
【００７９】
このような場合においても、システム１０は、人間１６の視線や指差しの方向に基づいて人間１６が指示している物品（本）２４を特定することが可能である。したがって、「バケナゾ」などのように音声認識できなかった単語がある場合には、視線や指差しの方向に基づいて特定した結果を利用して、音声認識できなかった単語を物品辞書１２２および音声認識辞書１２６に登録する。
【００８０】
システム１０が特定した物品（本）２４を確認するために、ロボット１２がたとえば「白い本ですか？」と発話すると、人間１６は、「そうです」あるいは「ちがいます」などと発話し、ロボット１２に返答する。サーバ２０は、この人間１６の返答における音声を音声認識し、システム１０が特定した物品（本）２４が、人間１６が指示したものであるか否かを判断する。システム１０が特定した物品（本）２４が、人間１６が指示したものでなかった場合には、次の候補である物品（本）２４が、人間１６が指示したものであるか否かを確認する。一方、システム１０が特定した物品（本）２４が、人間１６が指示したものであった場合には、ロボット１２が当該物品（本）２４を人間１６のところにまで運搬する。
【００８１】
次に、図１に示す実施例におけるロボット１２およびサーバ２０の動作について、図１５から図２２に示すフロー図を参照して説明する。
【００８２】
図１５の最初のステップＳ１において、ロボット１２のＣＰＵ８０（図３）は、同じく図３に例示するセンサ入力／出力ボード８８からのセンサ入力にしたがって、人間１６（図１）を認識したかどうか判断する。具体的には、たとえば赤外線センサ４０で人体を検知し、そのとき無線タグ読取装置１０６で人間１６が装着している無線タグ１８を認識したとき、人間１６を認識したと判断する。このとき、ロボット１２は、無線タグ１８より人間１６のユーザＩＤ（たとえば、（456…0000004））を読み取る。
【００８３】
ステップＳ１でＹＥＳと判断すると、次のステップＳ３で、ロボット１２のＣＰＵ８０は、ローカル辞書、つまり、物品ローカル辞書２０５Ａおよび音声認識ローカル辞書２０５Ｂを作成する指示を、ネットワーク１４を介してサーバ２０に送信する。このとき、ローカル辞書の作成指示と同時に、ステップＳ１で認識したと判断した人間１６のユーザＩＤ（456…0000004）をもサーバ２０に送信する。
【００８４】
ロボット１２からローカル辞書の作成指示とユーザＩＤとが送信されると、サーバ２０では、図１６のステップＳ３１で、ＣＰＵ２００は、ローカル辞書の作成指示を受信したと判断し、ステップＳ３３において、ロボット１２が認識した人間１６とのコミュニケーションに使用する当該人間１６に専用の物品ローカル辞書２０５Ａおよび音声認識ローカル辞書２０５Ｂの作成を行う。
【００８５】
ステップＳ３３の「ローカル辞書の作成」の処理は、図１８のフロー図に示す手順で実行される。まず、図１８のステップＳ８１で、ロボット１２から送信されたユーザＩＤで特定される人間１６の近傍にある物品（本）２４のレコードを物品辞書１２２から抽出して物品ローカル辞書２０５Ａを作成する。
【００８６】
このとき、ＣＰＵ２００は、無線タグ読取装置２０８を駆動してアンテナ１２４を介して、人間１６に付着された無線タグ１８から電波を受信して人間１６ごとにユーザＩＤと人間の位置を特定する。そして、こうして特定した複数の人間１６のユーザＩＤと人間の位置の情報と、ロボット１２より送信されたユーザＩＤとに基づいてロボット１２が認識した人間１６の位置を特定する。
【００８７】
ロボット１２が認識した人間１６の位置を特定すると、次に、物品辞書１２２に記憶されている各レコードの物品（本）２４の位置が記憶されている項目を参照し、図５に示すような物品辞書１２２から、ロボット１２が認識した人間１６の近傍に位置する物品（本）２４のレコードをすべて抽出して、図６に示すような物品ローカル辞書２０５Ａを作成する。
【００８８】
こうして物品ローカル辞書２０５Ａを作成すると、次に、ＣＰＵ２００はステップＳ８３で、「物品ローカル辞書２０５Ａに登録されている単語」の一覧３００を作成する。図７は、この単語の一覧３００を示した図解図である。この単語の一覧３００は、音声認識辞書１２６から音声認識ローカル辞書２０５Ｂを作成する際に使用される。図６および図７からわかるように、単語の一覧３００に登録される「物品ローカル辞書２０５Ａに登録されている単語」とは、物品ローカル辞書２０５Ａの各レコードの「名称」、「属性」、「著者」、「出版社」のそれぞれに記憶されているテキスト形式の単語である。ただし、図７に示されるように、この単語一覧３００には、テキスト形式の文字列からなる単語のみではなく、先に説明した音素記号列（図７の例では、“bakenazo”、“saiai”）もユーザＩＤ（図７の例では、（456…0000004）、（456…0000003））とともに登録される。これらの音素記号列（およびユーザＩＤ）は、先述したように、物品辞書１２２に単語が登録されていなかったために、登録されていない単語に対応する音素記号列が後から登録されたものである。
【００８９】
ステップＳ８５では、単語の一覧３００に登録されている音素記号列の中から、ロボット１２が認識した人間１６のユーザＩＤ以外のユーザＩＤが対応つけられている音素記号列を削除する。ロボット１２が認識した人間１６のユーザＩＤが（456…0000004）である場合には、図８に示したように、他の人間１６のユーザＩＤ（456…0000003）と対応つけられている“saiai”が削除される。ユーザＩＤが（456…0000003）である人間１６に特有の“saiai”という本２４（化学の目）の名称の呼び方は、ロボット１２が認識したユーザＩＤが（456…0000004）である人間１６とのコミュニケーションにおける音声認識には必要がないと考えられるからである。
【００９０】
次に、ＣＰＵ２００は、ステップＳ８７で、単語の一覧３００における冗長性を排除する。つまり、図７の例において、単語の一覧３００に登録されている「白色」や「ハードカバー」などの重複部分を図８に示すように削除する。
【００９１】
こうして単語の一覧３００が完成すると、次に、この単語の一覧３００を利用して音声認識辞書１２６から音声認識ローカル辞書２０５Ｂを作成する。
【００９２】
まず、ステップＳ８９において、ＣＰＵ２００は、メモリ２０４内に設定したカウンタＣｔ１をインクリメントする。初期状態では、カウンタＣｔ１は「０」である。このカウンタＣｔ１は、単語の一覧３００に登録されている単語の数をカウントするものであり、単語の一覧３００のポインタとして機能する。したがって、カウンタＣｔ１のカウント値によって、単語の一覧３００内において異なる単語を指定する。カウンタＣｔ１のカウント値が、単語の一覧３００に登録されている単語の数「Ｌ」に等しくなるまで、以下の動作が各単語について実行されると理解されたい。
【００９３】
ステップＳ９１では、単語の一覧３００に登録されている単語が音素記号列であるか否かを判断する。たとえば、単語の一覧３００に登録されている単語が図８に示すように、テキスト形式で表現された「地球温暖化」という単語であれば、ステップＳ９１でＮＯと判断される。すると、ステップＳ９３で、テキスト形式である「地球温暖化」という単語をキーとして、音声認識辞書１２６（図１０参照）を検索し、「地球温暖化」という単語を記憶した項目を含むレコードを抽出し、図１１に示すように音声認識ローカル辞書２０５Ｂに登録する。
【００９４】
一方、単語の一覧３００に登録されている単語が図８に示すように、音素記号形式で表現された“bakenazo”という単語であれば、ステップＳ９１でＹＥＳと判断される。すると、ステップＳ９５で、音素記号列である“bakenazo”という単語をキーとして音声認識辞書１２６を検索し、“bakenazo”という単語を記憶した項目を含むレコードを抽出し、図１１に示すように音声認識ローカル辞書２０５Ｂに登録する。
【００９５】
このようにして、物品辞書１２２から物品ローカル辞書２０５Ａが作成され、音声認識辞書１２６から音声認識ローカル辞書２０５Ｂが作成される。
【００９６】
一方、図１５に戻って、ロボット１２において、ステップＳ３でローカル辞書の作成指示をサーバ２０に送信した後は、ステップＳ５で、ＣＰＵ８０は、メモリ８４内に設定している発話／ジェスチャ辞書８５Ａを用いて、スピーカ６４から、たとえば、「何か本を持って来ましょうか？」のような発話を行なわせる。その後、人間１６がたとえば「花火の匠持ってきて」のような発話をしたとすると、ロボット１２が人間１６の指示を認識し、ステップＳ７で、ＣＰＵ８０が、“ＹＥＳ”と判断する。このとき、人間１６は、「花火の匠持ってきて」という発話とともに、該当本に視線を向けつつ当該本を指差すことによって、どの本持ってきてほしいかを指示する。
【００９７】
ＣＰＵ８０は、ステップＳ７でＹＥＳと判断すると、次にステップＳ９において、人間１６が指示した「花火の匠持ってきて」という音声の情報とともに、音声認識ならびに視線と指差しの推定を行わせる指示をサーバ２０に送信する。
【００９８】
サーバ２０では、ＣＰＵ２００が、図１６のステップＳ３５において、ロボット１２から音声認識ならびに視線と指差しの推定を行わせる指示を音声の情報とともに受信したと判断すると、ステップＳ３７における「音声認識による物品の推定」の処理とステップＳ３９における「視線と指差しによる物品の推定」の処理とを並列的に実行する。
【００９９】
「音声認識による物品の推定」の処理は、図１９のフロー図に示す手順にしたがって実行される。まず、ＣＰＵ２００は、ステップＳ１１１で、ロボット１２から送信されてきた「花火の匠持ってきて」という音声の情報を音声認識する。具体的には、「花火の匠持ってきて」という音声を音素に分割し、各音素に対応する音素記号を生成する。そして、図示しない文法辞書を参照して、生成した音素記号列“hanabinotakumi mottekite”のうち“hanabinotakumi”という音素記号列が目的語であると特定する。次に、この“hanabinotakumi”という音素記号列をキーとして音声認識ローカル辞書２０５Ｂ（図１１参照）を検索し、もっとも近い音素記号列の単語を記憶した項目を有するレコードを特定する。そして、特定したレコードに記憶されているテキスト形式の単語である「花火の匠」を得る。また、このとき、特定したレコードの「物品名称」の項目に記憶されている情報に基づいて、音声認識されたのが物品の名称であるか、つまり、本２４のタイトル（名称）であるか否かを判断することができる。この判断に基づいて後ほどフラグｔｗの設定を行うが、後ほど設定を行うのはフロー図の表現上の都合であり、ステップＳ１１１においてフラグｔｗの設定を行えばよい。
【０１００】
たとえば、人間１６が「花火の匠持ってきて」という代わりに「黒いの持ってきて」と指示した場合には、同様にしてステップＳ１１１における音声認識の結果として、「黒い」が得られる。なお、音声認識の方法としては特に限定されるものではなく既存の方法を採用することができる。
【０１０１】
また、人間１６が「花火の匠持ってきて」という代わりに、「花火の匠」という単語の人間１６独特の略語である「ハナタク」という単語を用いて、「ハナタク持ってきて」と発話した場合には、音声認識ローカル辞書２０５Ｂには「ハナタク」という単語に相当する“hanataku”という音素記号列は登録されていないので、音声認識をすることができない。
【０１０２】
このように、音声認識ができない単語があった場合には、ＣＰＵ２００は、ステップＳ１１３において、ＹＥＳと判断し、ステップＳ１１５において、音声認識した人間１６の発話内容は特定のパターンであったか否かを判断する。ここで発話内容の特定のパターンとは、たとえば、「○○持ってきて」や「○○お願い」などであり、人間１６が指示する物品を特定する単語（○○）が含まれるであろう発話パターンである。人間１６が発した発話の内容がこれらの特定のパターンに該当するか否かは、音声認識の処理における図示しない文法辞書を用いた発話内容の文法解析とともに、メモリ２０４に設定されている発話パターン辞書２０５Ｃを参照することによって判定することができる。
【０１０３】
ステップＳ１１５でＹＥＳと判断した場合は、音声認識できなかった単語であって、人間１６が指示した物品を特定するであろう単語があることを示すために、ステップＳ１１７で、メモリ２０４上に設定されているフラグｎｗに数値「１」を記憶させてフラグｎｗをオン状態にする。なお、フラグｎｗの初期状態はオフ状態（数値「０」）である。そして、ステップＳ１１９では、ステップＳ１１１における音声認識の処理で生成された、音声認識できなかった単語の音素記号列をメモリ２０４に設定されたワークエリアｗａに格納する。なお、ステップＳ１１５でＮＯと判断すると、ステップＳ１１７およびステップＳ１１９をスキップする。
【０１０４】
一方、ステップＳ１１３においてＮＯと判断すると、つまり、音声認識できない単語がなかったと判断すると、ステップＳ１２１において、ＣＰＵ２００は、音声認識した単語は物品の名称、つまり、本２４のタイトル（名称）であったかどうかを判断する。この音声認識した単語が本２４のタイトル（名称）であったかどうかは、音声認識ローカル辞書２０５Ｂの各レコードに含まれる「物品名称」の項目に記録されている情報に基づいて判断される。
【０１０５】
ステップＳ１２１でＹＥＳと判断すると、ステップＳ１２３で、本２４のタイトル（名称）が音声認識されたことを示すために、メモリ２０４に設定されたフラグｔｗに数値「１」を記憶させてフラグｔｗをオン状態にする。なお、フラグｔｗの初期状態はオフ状態（数値「０」）である。ステップＳ１２１でＮＯと判断するとステップＳ１２３をスキップする。
【０１０６】
ステップＳ１２５では、ＣＰＵ２００は、ステップＳ１１１における音声認識の結果として得られたテキスト形式の単語、たとえば、「花火の匠」に基づいて物品ローカル辞書２０５Ａを参照し、人間１６が指示した物品（本）２４の候補としての物品（本）２４を選出する。具体的には、ステップＳ１１１で得られたテキスト形式の単語、たとえば、「花火の匠」をキーとして、物品ローカル辞書２０５Ａを検索し、「花火の匠」というテキスト形式の単語を項目に記憶しているレコードを特定する。図６の例では、物品ＩＤが「123…0000046」であるレコードが「名称」の項目に「花火の匠」という単語を記憶しているので、物品ＩＤが「123…0000046」である物品（本）２４が特定される。こうして特定された物品ＩＤの物品（本）２４が、人間１６が指示した物品の候補として選出され、当該物品（本）２４のＩＤが物品リストＡ（不図示）に登録される。
【０１０７】
ここで、ステップＳ１１１における音声認識の結果として得られた単語が、たとえば、「白い」であった場合は、図６の物品ローカル辞書２０５Ａの例の場合では、「属性」の項目に「白い」という単語を記憶しているレコードが複数存在するので、これらのレコードに含まれる物品ＩＤ、つまり、物品ＩＤが「123…0000035」、「123…0000091」、および「123…0000102」の物品（本）２４が、人間１６が指示した物品の候補として選出される。この場合、こうして選出された複数の物品のＩＤが、物品リストＡ（不図示）に登録される。
【０１０８】
ステップＳ１２７では、こうして選出された物品（本）２４の候補が物品リストＡに存在するか否かを判断する。ステップＳ１２７でＹＥＳと判断すると、ステップＳ１２９で、ＣＰＵ２００は、音声認識の結果による物品（本）２４の候補が存在することを示すために、メモリ２０４に設定されているフラグｃａに数値「１」を記憶させてフラグｃａをオン状態にする。なお、フラグｃａの初期状態はオフ状態（数値「０」）である。ステップＳ１２７でＮＯと判断すると、ステップＳ１２９をスキップする。このようにして、音声認識によって、人間１６が指示した物品（本）２４の推定が行われる。
【０１０９】
図１６に戻って、ステップＳ３９の「視線と指差しによる物品の推定」の処理は、図２０のフロー図に示す手順にしたがって実行される。ＣＰＵ２００は、まず、ステップＳ１４１で、メモリ２０４内に設定したカウンタＣｔ２をインクリメントする。初期状態ではカウンタＣｔ２は「０」が設定されている。このカウンタＣｔ２は、人間１６の近傍に存在する物品の数をカウントするもので、物品ローカル辞書２０５Ａ（図６参照）のポインタとして機能する。したがって、カウンタＣｔ２のカウント値によって、物品ローカル辞書２０５Ａ内において、異なる物品を指定する。カウンタＣｔ２のカウント値が、物品ローカル辞書２０５Ａ内にリストアップしている物品の数「ｍ」に等しくなるまで、以下の動作が各物品について、実行されるものと理解されたい。
【０１１０】
ステップＳ１４１に続いて、ＣＰＵ２００は、人間１６の視線を推定してそれの確信度を求める動作と、指差し方向を推定してそれの確信度を求める動作とを並行して実行するが、ここでは便宜上、まず視線を推定し次いで指差し方向を推定する順序で説明する。
【０１１１】
図２０のステップＳ１４１〜ステップＳ１５３の処理は、図１６のステップＳ３５でロボット１２から音声認識ならびに視線と指差しの推定を行わせる指示を受信した後の一定の繰り返しの時間（ｔ１，ｔ２，ｔ３，…，ｔｍ）毎に実行されるが、実施例では、５０Ｈｚ（１秒間に５０回）で実行されるものとする。なお、ステップＳ１４１〜ステップＳ１５３の処理は、たとえば、図１５のステップＳ５でロボット１２が発話を行った際に、その旨を知らせる通知をロボット１２からサーバ２０に送信し、当該通知を受信したサーバ２０が、当該通知を受信した後の一定の繰り返しの時間（ｔ１，ｔ２，ｔ３，…，ｔｍ）毎に実行するようにしてもよい。
【０１１２】
ステップＳ１４３では、ＣＰＵ２００は、ロボット１２から、人間１６の視線の方向を示す視線ベクトル情報を受信する。フロー図には明記しないが、ロボット１２では、ＣＰＵ８０は、たとえば眼カメラ７０からのカメラ映像を処理することによって、先に挙げた公開公報に記載したいずれかの方法に従って、人間１６の左右のそれぞれの眼の視線ベクトルを推定する。この左右それぞれの眼の視線方向は図１３において直線Ｌ１およびＬ２で示される。このようにして、ロボット１２は、所定の時間間隔で繰り返し各視線Ｌ１およびＬ２を推定し、この視線の方向を示す視線ベクトル情報をサーバ２０に送信する。
【０１１３】
サーバ２０では、ステップＳ１４５において、ＣＰＵ２００が、カウンタＣｔ２がそのとき物品ローカル辞書２０５Ａ内でポイントしている物品と、各視線Ｌ１およびＬ２との距離を計算する。この計算の際には、ＣＰＵ２００は、ロボット１２から受信した視線ベクトル情報をロボット座標系からワールド座標系に座標変換して使用する。また、この距離の計算の際には、物品ローカル辞書２０５Ａの当該物品（本）２４のレコードに記録されている当該物品（本）２４の位置の情報が利用される。
【０１１４】
一方、指差し方向を推定するためには、ステップＳ１４７において、まず、ＣＰＵ２００は、人間１６が指差し動作をした腕を特定する。具体的には、モーションキャプチャのデータを参照して、たとえば、人間１６の指先と肩の高さとの差が小さい側の腕を指差し腕として推定する。なぜなら、指差し動作をする場合には、腕を持ち上げる動作をまずすると考えられるからである。このようにして、ステップＳ１４７でどちらの腕を用いて指差し動作をするかを推定した後、ＣＰＵ２００は、次のステップＳ１４９において、指差し方向を推定する。
【０１１５】
この実施例では、図１３に示すように、指差し腕の指先と顔の中心（重心）とを通る直線Ｌ３、および指差し腕の指先とその腕の肘とを通る直線Ｌ４を想定する。そして、モーションキャプチャのデータを参照して、その直線Ｌ３およびＬ４を推定する。次のステップＳ１５１において、各直線Ｌ３およびＬ４と各物品との間の距離を計算する。
【０１１６】
上述のステップＳ１４３〜Ｓ１４５およびステップＳ１４７〜Ｓ１５１は、繰返し時間（ｔ１，ｔ２，ｔ３，．．．，ｔｍ）毎に行われる。そして、各繰返しの時間（ｔ１，ｔ２，ｔ３，．．．，ｔｍ）毎に、線Ｌ１，Ｌ２，Ｌ３，およびＬ４との距離が最小になる物品を求める。各線において、最小になった物品に対して高い確信度（図１４でいえば「○」印）を付与する。このようにして、たとえば図１４に示すような確信度表を作成する。
【０１１７】
このように直線毎に最短距離を持つ物品を算出することによって確信度表を作成するようにすれば、１つの物品について２以上の直線について確信度（○）が付与されることがある。このことによって、後にステップＳ１５５で説明するような物品リストＢ（不図示）を作成することができるのである。
【０１１８】
この図１４の確信度表において、視線Ｌ１およびＬ２のそれぞれについて評価される確信度は「視線確信度」ということができ、指差し方向線Ｌ３およびＬ４のそれぞれについて評価される確信度が「指差し方向確信度」であるということができる。
【０１１９】
図１４に示す例で説明すると、「123…0000001」のＩＤを持つ物品、実施例でいえば図１に示す「地球温暖化」という名称の本についていえば、時間ｔ１に一方の視線Ｌ２とこの本との間の距離が最小になったものの、その他の時間区間ではどの線も当該本に最接近することはなかったと判断できる。次の、「123…0000046」のＩＤを持つ物品、実施例でいえば図１に示す「花火の匠」という名称の本についていえば、時間ｔ１を除いて、各時間にどれかの線がこの物品に再接近したことがわかる。このようにして、図１４に示す確信度表がステップＳ１４５およびステップＳ１５１で作成される。
【０１２０】
ステップＳ１５５においてＣＰＵ２００は、図１４に示す確信度表を参照して、そのとき人間１６が指示したと考える物品（本）２４を特定する。具体的には、確信度評価（図１４で言えば丸印）が単に多い順や、繰返し時間で視線（Ｌ１またはＬ２）と指差し(Ｌ３またはＬ４)の両方に○が入っている回数が多い順などに従って、物品のＩＤのリストである物品リストＢ（不図示）を作成する。
【０１２１】
この確信度評価について、たとえば、図１４に示す例で説明すると、「123…0000001」のＩＤを持つ「地球温暖化」という名称の本についていえば、確信度評価は「１」（１つの○印が付与された。）であり、「123…0000046」のＩＤを持つ「花火の匠」という本の確信度は「３」ということになる。したがって、この場合には、物品リストＢには、ＩＤ「123…0000046」、ＩＤ「123…0000001」の順で登録される。
【０１２２】
ただし、確信度（○印）の数が同じ場合であるとか、確信度（○印）の数が所定の閾値より小さい場合など、判断に迷う場合には、たとえば、図１４に示す各繰り返しの時間の全区間の半分以上で確信度が付与されているような物品を対象物として特定すればよい。
【０１２３】
このようにして、ステップＳ３７の「音声認識による物品の推定」の処理で物品リストＡが作成され、ステップＳ３９の「視線と指差しによる物品の推定」の処理で物品リストＢが作成されると、次に、ＣＰＵ２００は、図１６のステップＳ４１で、人間１６が指示した物品の候補の一覧である候補物品一覧Ｃ（不図示）を作成する。この候補物品一覧Ｃを作成する処理は、図２１のフロー図に示す手順で実行される。
【０１２４】
まず、ＣＰＵ２００は、ステップＳ１６１で、メモリ２０４に設定されているフラグｃａがオン状態であるか、つまり、音声認識の結果により推定された物品が存在するか否か、言い換えれば、物品リストＡに物品のＩＤが登録されているか否かを判断する。
【０１２５】
ステップＳ１６１でＮＯと判断すると、音声認識の結果によって推定された物品は存在しないので、ステップＳ１６３で、視線確信度および指差し方向確信度に基づいて候補物品一覧Ｃを作成する。つまり、物品リストＢの内容をそのままに候補物品一覧Ｃを作成する。
【０１２６】
一方、ステップＳ１６１でＹＥＳと判断すると、次に、ＣＰＵ２００は、ステップＳ１６５で、フラグｔｗがオン状態であるか、つまり、音声認識により本２４のタイトル（名称）（物品の名称）が認識されたか否か、言い換えれば、音声認識の結果として得られた物品リストＡに登録されている物品のＩＤは、人間１６の発話内容に含まれる本２４のタイトル（名称）に基づいて決定されたか否かを判断する。
【０１２７】
ステップＳ１６５でＹＥＳと判断すると、ステップＳ１６７で、ＣＰＵ２００は、音声認識の結果を視線確信度および指差し方向確信度よりも優先させて候補物品一覧Ｃを作成する。つまり、物品リストＡに登録されている物品のＩＤが上位となるように先に候補物品一覧Ｃに登録し、その後に、物品リストＢに登録されている物品のＩＤが下位となるように登録する。これは、人間１６が名指しした本２４のタイトル（名称）を音声認識して物品（本）２４を推定したほうが、視線や指差しに基づいて物品（本）２４を推定するよりも確実であると考えられるからである。なお、物品リストＡと物品リストＢとに重複する物品のＩＤが存在する場合には、物品リストＢに登録されている物品のＩＤを候補物品一覧Ｃに登録しない。
【０１２８】
一方、ステップＳ１６５でＮＯと判断すると、ＣＰＵ２００は、ステップＳ１６９で、視線確信度および指差し方向確信度を音声認識の結果よりも優先させて候補物品一覧Ｃを作成する。つまり、物品リストＢに登録されている物品のＩＤが上位となるように先に候補物品一覧Ｃに登録し、その後に、物品リストＡに登録されている物品のＩＤが下位となるように登録する。なお、物品リストＡと物品リストＢとに重複する物品のＩＤが存在する場合には、物品リストＡに登録されている物品のＩＤを候補物品一覧Ｃに登録しない。
【０１２９】
このようにして候補物品一覧Ｃが作成されると、次に、ＣＰＵ２００は、図１６のステップＳ４３で、候補物品一覧Ｃから第１候補である物品（本）２４を選出する。はじめのステップＳ４３では、候補物品一覧Ｃの先頭に登録されている物品（本）２４のＩＤを選出する。２回目以降のステップＳ４３では、候補物品一覧Ｃの２番目以降に登録されている物品（本）２４のＩＤを選出する。
【０１３０】
そして、ステップＳ４５では、ステップＳ４３で物品（のＩＤ）が選出されたか否か、つまり、候補となる物品（本）２４が存在したか否かを判断する。ステップＳ４５で、ＹＥＳと判断すると、次に、ＣＰＵ２００は、ステップＳ４７において、ステップＳ４３で選出された物品の位置情報を取得する。つまり、ＣＰＵ２００は、ステップＳ４３で選出された物品（本）２４（以下、「選出物品（本）２４」と呼ぶ。）のＩＤをキーとして物品ローカル辞書２０５Ａを検索することによって、当該物品ＩＤが示す物品（本）２４の位置の情報を取得する。
【０１３１】
次に、ＣＰＵ２００は、ステップＳ４９で、「選出物品（本）２４」が、人間１６が指示した物品（本）２４であるか否かを人間１６に確認するためにロボット１２に発話させる際の発話内容を決定する。ロボット１２が行うこの発話の内容には、サーバ２０が、人間１６が指示したと推定する物品（本）２４を特定する単語（以下、「特定単語」と呼ぶ。）が含まれる。図６を参照して、サーバ２０が、人間１６が指示したと推定した物品（本）２４が、物品ＩＤが「123…0000046」である「花火の匠」とう本であったとする。この場合、ステップＳ４９では、たとえば、「花火の匠の本ですね」、「黒色の本ですね」、「ハードカバーの本ですね」などという発話内容を決定する。この例の場合、それぞれ、「花火の匠」、「黒色」、「ハードカバー」が先述の「特定単語」である。この「発話内容の決定」の処理は、図２２のフロー図に示す手順で実行される。
【０１３２】
図２２を参照して、まず、ＣＰＵ２００は、ステップＳ１８１で、メモリ２０４に設定されている個人正誤ＤＢ２０５Ｅを参照して、ロボット１２が認識した人間１６とコミュニケーションをとるのがはじめてであるか否か、つまり、当該人間１６の指示する物品（本）２４を特定するのがはじめてであるか否かを判断する。個人正誤ＤＢ２０５Ｅは、ロボット１２と人間１６とのコミュニケーション結果の記録である。つまり、この個人正誤ＤＢ２０５Ｅには、ロボット１２とコミュニケーションを行った人間１６のＩＤと当該人間１６が指示する物品（本）２４をシステム１０が正しく推定することができたか否かを示す成功、不成功の別がコミュニケーションのたび毎に記録されている。個人正誤ＤＢ２０５Ｅに当該人間１６のＩＤが記録されていなければ、当該人間１６は初対面であると判断する。
【０１３３】
ステップＳ１８１でＹＥＳと判断すると、つまり、人間１６は初対面であると判断すると、ステップＳ１８３で、ＣＰＵ２００は、物品（本）２４の「特定単語」を本２４のタイトル（名称）に決定する。この本２４のタイトル（名称）の内容は、図１６のステップＳ４３で選出した物品（本）２４（「選出物品（本）２４」）のＩＤを物品ローカル辞書２０５Ａで検索することによって得ることができる。
【０１３４】
そして、ステップＳ２０３では、メモリ２０４に設定されている発話辞書２０５Ｄを利用して、ステップＳ１８３で決定した「特定単語」である本２４のタイトル（名称）、たとえば、「花火の匠」に基づいて「花火の匠の本ですね」などという発話内容を決定する。なお、ステップＳ２０３では、決定した発話内容をロボット１２がこれにしたがって発話するための発話内容情報の生成も行う。
【０１３５】
一方、ステップＳ１８１でＮＯと判断された場合、つまり、当該人間１６のＩＤが個人正誤ＤＢ２０５Ｅに記録されている場合は、ステップＳ１８５で、ＣＰＵ２００は、同じく個人正誤ＤＢ２０５Ｅを参照して当該人間１６とのコミュニケーションにおける成功率を計算し、成功率が、たとえば、７０％以上であるか否かを判断する。ステップＳ１８５でＮＯと判断すると、先に説明したように、ステップＳ１８３で、物品（本）２４の「特定単語」を本２４のタイトル（名称）と決定し、ステップＳ２０３で、発話内容を決定する。
【０１３６】
一方、ステップＳ１８５で、ＹＥＳと判断すると、ステップＳ１８７で、「選出物品（本）２４」に関する単語の一覧Ｄ（不図示）を物品ローカル辞書２０５Ａから作成する。たとえば、「選出物品（本）２４」が、図６を参照して物品ＩＤが「123…0000046」である「花火の匠」という本２４であったとすると、単語の一覧Ｄには、物品ローカル辞書２０５Ａの物品ＩＤが「123…0000046」であるレコードに登録されている単語である「花火の匠」、「黒色」、「ハードカバー」、「近藤四郎」、「ＡＴＲ出版株式会社」が登録される。
【０１３７】
単語の一覧Ｄが作成されると、次に、ＣＰＵ２００は、ステップＳ１８９で、単語の一覧Ｄに登録されている単語のうち、人間１６の近傍に存在する物品（本）２４に関連する単語と同一の単語を削除する。人間１６の近傍には、物品ローカル辞書２０５Ａに登録されている物品（本）２４が存在することになる。「選出物品（本）２４」が、図６を参照して物品ＩＤが「123…0000046」である「花火の匠」という本２４であったとすると、単語の一覧Ｄには、先述したように、「ハードカバー」という単語や「ＡＴＲ出版株式会社」という単語が登録されている。
【０１３８】
ここで、物品（本）２４の「特定単語」を「ハードカバー」という単語や「ＡＴＲ出版株式会社」という単語に決定し、ロボット１２が「ハードカバーの本ですね」や「ＡＴＲ出版株式会社の本ですね」と発話したとする。すると、図６の物品ローカル辞書２０５Ａからわかるように、人間１６の近傍には「ハードカバーの本」や「ＡＴＲ出版株式会社の本」は複数存在するので、人間１６はロボット１２の発話に基づいてロボット１２がどの物品（本）２４を示しているのかがわからない。そこで、単語の一覧Ｄから、物品ローカル辞書２０５Ａに記録されている「選出物品（本）２４」以外のレコードに記録されている単語と同一の単語を削除する。
【０１３９】
次に、ステップＳ１９１で、ＣＰＵ２００は、単語の一覧Ｄから６個未満の音素からなる単語、つまり、音声認識の処理において６個未満の音素に分解される単語を削除する。これは、音素数の少ない単語は正しく音声認識されにくいためである。なお、分解される音素の数は、当該単語を音声認識ローカル辞書２０５Ｂに参照することによって判明する当該単語に対応する音素記号列を構成する音素記号の数によって判断することができる。ただし、図１１の音声認識ローカル辞書２０５Ｂに示した音素記号列は、説明の表現の都合上、アルファベットを用いてローマ字であらわしたものであり、図１１に示すアルファベットが音素記号をあらわしたものではない。そして、ステップＳ１９３では、さらに、単語の一覧Ｄから平仮名の「う」で始まる単語を削除する。これは、「う」から始まる単語は正しく音声認識されにくいためである。
【０１４０】
次に、ＣＰＵ２００は、ステップＳ１９５で、単語の一覧Ｄに単語が存在するか否かを判断する。ステップＳ１９５でＮＯと判断すると、「特定単語」とするべき単語が単語の一覧Ｄに存在しないので、ステップＳ１９７で指示形容詞である「あの」という単語を「特定単語」に決定する。そして、ステップＳ２０３では、発話辞書２０５Ｄを利用して、ステップＳ１９７で決定した「特定単語」である「あの」に基づいて「あの本ですね」などという発話内容を決定する。あるいは、指示形容詞とステップＳ１８７の段階で作成した単語の一覧Ｄに登録されているいずれかの単語を用いて、「あの白い本ですね」という発話内容にしてもよい。ただし、この例では、「白い本」という言葉によっては物品（本）２４を一意に特定することはできない。なお、ステップＳ２０３では、指示代名詞を用いて「白いあれ（これ）ですね」という発話内容にしてもよいし、単に「あれ（これ）ですね」という発話内容にしてもよい。
【０１４１】
一方、ステップＳ１９５でＹＥＳと判断すると、ステップＳ１９９で、メモリ２０４に設定されている音声認識率ＤＢ２０５Ｆを参照し、単語の一覧Ｄに登録されている単語のそれぞれの音声認識率を取得して単語の一覧Ｄに登録されている単語を音声認識率の高い順にソートする。そして、ステップＳ２０１では、単語の一覧Ｄの最上位に登録されているもっとも音声認識率の高い単語を「特定単語」に決定する。ステップＳ２０３では、発話辞書２０５Ｄを利用して、ステップＳ２０１で決定した「特定単語」に基づいて発話内容を決定する。このようにして、システム１０が推定した人間１６が指示した物品（本）２４を人間１６に確認するためにロボット１２が発話する内容が決定される。
【０１４２】
このように、人間１６が指示したとシステム１０が推定した物品（本）２４を人間１６に確認する際にロボット１２が発話する内容に、音声認識率の高い「特定単語」を利用すると、人間１６がこれを真似し、次回にその物品（本）２４を指示する際にこの「特定単語」を利用すれば、システム１０は音声認識による物品（本）２４の特定を容易に行うことができるようになる。
【０１４３】
図１６に戻って、ステップＳ４９において発話内容が決定されると、次に、ＣＰＵ２００は、ステップＳ５１で、ステップＳ４７で取得した「選出物品（本）２４」の位置情報とステップＳ２０３（図２２）で生成した発話内容情報とをロボット１２に送信する。
【０１４４】
ロボット１２では、「選出物品（本）２４」の位置情報と発話内容情報とを受信すると、ＣＰＵ８０が、図１５のステップＳ１１でＹＥＳと判断する。するとＣＰＵ８０は、次のステップＳ１３において、メモリ８４に設定されている発話／ジェスチャ辞書８５Ａを参照して、「選出物品（本）２４」の位置情報に基づいて「選出物品（本）２４」を指差すとともに、発話内容情報に基づいて発話を行う。なお、このとき、ＣＰＵ８０は、受信した「選出物品（本）２４」の位置情報をワールド座標系からロボット座標系に座標変換して利用する。
【０１４５】
「選出物品（本）２４」が「花火の匠」というタイトル（名称）の本２４である場合は、このステップＳ１３では、図１において右から２番名に置かれている本を指差しジェスチャで示すとともに、たとえば、「花火の匠の本ですね」のような発話を行う。
【０１４６】
このようなロボット１２の指差しと発話に対し、人間１６は、「そうです」とか「ちがいます」などといった応答を行う。するとロボット１２では、ＣＰＵ８０が、マイク６６を通して入力された人間１６の声を取り込み、ステップＳ１５で人間１６の応答があったと判断する。そして、ステップＳ１７では、取り込んだ人間１６の音声の情報とともに、当該音声を音声認識して肯定する内容であるか否定する内容であるかを判断させる指示をサーバ２０に送信する。
【０１４７】
サーバ２０では、ＣＰＵ２００は、音声認識により肯定であるか否定であるかを判断させる指示と、音声認識すべき音声の情報を受信すると、図１６のステップＳ５３でＹＥＳと判断する。そして、次に、ＣＰＵ２００は、ステップＳ５５で、受信した音声の情報に音声認識処理を施して、音声の内容が肯定を示すものであるか否定を示すものであるかを判断し、ステップＳ５７でその判断結果をロボット１２に送信する。
【０１４８】
ロボット１２では、音声認識による肯定であるか否定であるかの判断結果を受信すると、ＣＰＵ８０は、ステップＳ１９でＹＥＳと判断する。そして、さらに、ステップＳ２１ではサーバ２０における音声認識の結果が肯定を示すものであったか否かを判断する。ステップＳ２１でＮＯと判断すると、ＣＰＵ８０は、ステップＳ１１で、サーバ２０から「選出物品（本）２４」の位置情報と発話内容情報とをさらに受信したか否かを判断する。
【０１４９】
一方、ステップＳ２１でＹＥＳと判断すると、ロボット１２は、該当する物品（本）２４の方向に移動し、該当する物品(本)２４を把持して人間１６の位置に運ぶ。つまり、物品（本）２４が存在する位置の座標が既にわかっているので、ロボット１２のＣＰＵ８０は、車輪モータ３６を制御して、ロボット１２をその物品（本）２４の位置に移動させ、次いでアクチュエータ１０８（図３）を制御することによってハンド５６Ｒ（または５６Ｌ）開閉して物品（本）２４をハンド５６Ｒ（または５６Ｌ：図２）で把持させ、その状態で再び車輪モータ３６を制御してロボット１２を人間１６の位置にまで移動させる。このようにして、ステップＳ２３で、サーバ２０が図１６のステップＳ４３で選出した「選出物品（本）２４」を人間１６に運ぶことができる。
【０１５０】
一方、サーバ２０では、図１６のステップＳ５７で、音声認識による人間１６の音声の内容が肯定であるか否定であるかの判断結果をロボット１２に送信した後、図１７のステップＳ６１で、当該判断の結果が肯定であったか否かを判断する。ステップＳ６１でＮＯと判断すると、ＣＰＵ２００は、図１６のステップＳ４３で、音声認識の結果ならびに視線確信度と指差し方向確信度から作成した前述の候補物品一覧Ｃから、次の候補である物品（本）２４の選出を行う。
【０１５１】
このとき、候補物品一覧Ｃに他の物品（本）２４のＩＤが登録されていない場合には、ステップＳ４５で物品が選出されなかったと判断される（ステップＳ４５でＮＯ）。すると、ＣＰＵ２００は、ステップＳ５９で候補物品がない旨の通知をロボット１２に送信する。
【０１５２】
ロボット１２では、候補物品がない旨の通知を受信すると、ＣＰＵ２００が、図１５のステップＳ２５でＹＥＳと判断し、人間１６が指示する物品（本）２４を特定できなかったものとして処理を終了する。
【０１５３】
一方、図１７に戻って、ステップＳ６１でＹＥＳと判断すると、次に、ＣＰＵ２００は、ステップＳ６３で、人間１６の指示する物品（本）２４を特定することができたことを示すために、メモリ２０４に設定されているフラグｓｃに数値「１」を記憶させてフラグｓｃをオン状態にする。なお、フラグｓｃの初期状態はオフ状態（数値「０」）である。
【０１５４】
次に、ＣＰＵ２００は、ステップＳ６５で、メモリ２０４に設定されているフラグｎｗがオン状態であるか否かを判断する。先に説明したように、このフラグｎｗは、人間１６が発話した音声を音声認識した結果、音声認識できない単語が存在し、その単語が、人間１６が指示した物品を特定するであろう単語である場合にオン状態に設定される。
【０１５５】
ステップＳ６５でＹＥＳと判断すると、ＣＰＵ２００は、ステップＳ６７で、音声認識できなかった単語を物品辞書１２２に登録して辞書を更新する。具体的には、図１９のステップＳ１１９で、メモリ２０４のワークエリアｗａに格納された音声認識できなかった単語の音素記号列を、物品辞書１２２に登録する。たとえば、人間１６が「ハナタク持ってきて」と発話し、「ハナタク」が音声認識できなかったが、視線や指差しに基づく推定により、人間１６は「花火の匠」の本を指示していたと判明したとする。この場合、ワークエリアｗａには単語「ハナタク」の音素記号列“hanataku”が格納されているので、この音素記号列を、図９に示すように、物品辞書１２２の物品のＩＤが「123…0000046」である「花火の匠」という本２４のレコードの「属性」の項目に、この「ハナタク」という単語を発話した人間１６のＩＤとともに記憶する。
【０１５６】
次に、ＣＰＵ２００は、ステップＳ６９で、音声認識できなかった単語を音声認識辞書１２６に新たなレコードとして登録して辞書を更新する。具体的には、ステップＳ６７での例をそのまま用いると、図１２に示すように、音声認識辞書１２６に、図１６のステップＳ４３で選出された物品（本）２４（「選出物品（本）２４」）の名称の単語である「花火の匠」を記憶した項目と、メモリ２０４のワークエリアｗａに格納されている音素記号列である“hanataku”を記憶した項目とを含むレコードを追加する。このとき、当該レコードの「物品名称」の項目には、物品の名称（本２４のタイトル（名称））であることを示す値「１」が格納される。
【０１５７】
このように音声認識辞書１２２に「花火の匠」という単語と“hanataku”という音素記号列を登録しておくと、次回以降において、人間１６が、たとえば、「ハナタク持ってきて」と発話すると、「ハナタク」を音声認識することができ、その音声認識の結果として物品（本）２４の名称である「花火の匠」を得ることができる。
【０１５８】
ステップＳ７１では、メモリ２０４に設定されている個人正誤ＤＢ２０５Ｅを更新する。つまり、メモリ２０４に設定されているフラグｓｃがオン状態であるか否かを判断し、オン状態である場合には、人間１６が指示する物品（本）２４を特定することができたということを示しているので、個人正誤ＤＢ２０５Ｅに当該人間１６とのコミュニケーションが成功したことを示す情報を記憶する。一方、フラグｓｃがオフ状態である場合には、当該人間１６とのコミュニケーションが不成功であったことを示す情報を記憶する。
【０１５９】
なお、ステップＳ６５でＮＯと判断した場合は、ステップＳ６７およびステップＳ６９をスキップする。
【０１６０】
このように、システム１０では、音声認識、視線の推定、指差し方向の推定のそれぞれに基づいて、人間１６が指示する物品（本）２４の推定を行う。そして、人間１６の発生する音声に含まれる物品（本）２４を特定する単語が音声認識辞書１２６（音声認識ローカル辞書２０５Ｂ）に登録されておらず、物品（本）２４を特定する単語が音声認識できなかった場合、視線の推定および指差し方向の推定に基づいて推定した物品を示す単語と音声認識できなかった単語の音素記号列とを対応つけて音声認識辞書１２６に登録する。
【０１６１】
したがって、人間１６が物品（本）２４を指示する際に音声認識辞書１２６に登録されていない、人間１６に独自の単語や地方の方言である単語を用いた場合でも、当該単語を音声認識辞書１２６に手間をかけずに登録し、次回からはこの単語を音声認識して人間１６の指示する物品（本）２４を特定することができる。
【０１６２】
なお、上述の実施例では、この発明の物品推定システムをコミュニケーションロボットシステムに適用して説明したが、コミュニケーションロボットシステム以外の用途にも適用できることはいうまでもない。
【図面の簡単な説明】
【０１６３】
【図１】図１はこの発明の一実施例を示すコミュニケーションロボットシステムの概要を示す図解図である。
【図２】図２は図１に示すロボットの外観を正面から見た図解図である。
【図３】図３は図１に示すロボットの電気的な構成を示す図解図である。
【図４】図４は図１に示すサーバの電気的な構成を示す図解図である。
【図５】図５は図１の実施例で用いられる物品辞書の一例を示す図解図である。
【図６】図６は図１の実施例で用いられる物品ローカル辞書の一例を示す図解図である。
【図７】図７は図１の実施例で用いられる単語の一覧の一例を示す図解図である。
【図８】図８は図１の実施例で用いられる単語の一覧の一例を示す図解図である。
【図９】図９は図１の実施例で用いられる物品辞書の一例を示す図解図である。
【図１０】図１０は図１の実施例で用いられる音声認識辞書の一例を示す図解図である。
【図１１】図１１は図１の実施例で用いられる音声認識ローカル辞書の一例を示す図解図である。
【図１２】図１２は図１の実施例で用いられる音声認識辞書の一例を示す図解図である。
【図１３】図１３は人間の視線および指差し方向を示す図解図である。
【図１４】図１４は図１の実施例で用いられる確信度表の一例を示す図解図である。
【図１５】図１５は図１の実施例におけるロボットの動作を示すフロー図である。
【図１６】図１６は図１の実施例におけるサーバの動作を示すフロー図である。
【図１７】図１７は図１の実施例におけるサーバの動作を示すフロー図である。
【図１８】図１８は図１の実施例におけるサーバの動作を示すフロー図である。
【図１９】図１９は図１の実施例におけるサーバの動作を示すフロー図である。
【図２０】図２０は図１の実施例におけるサーバの動作を示すフロー図である。
【図２１】図２１は図１の実施例におけるサーバの動作を示すフロー図である。
【図２２】図２２は図１の実施例におけるサーバの動作を示すフロー図である。
【符号の説明】
【０１６４】
１０  …コミュニケーションロボットシステム
１２  …コミュニケーションロボット
１４  …ネットワーク
１８  …無線タグ
２０  …サーバ
２４  …物品（本）
８０  …ＣＰＵ
１２０  …カメラ
１２４  …アンテナ
２００  …ＣＰＵ
２０８  …無線タグ読取装置
【図１】
0005163202.tif 000002
【図２】
0005163202.tif 000003
【図３】
0005163202.tif 000004
【図４】
0005163202.tif 000005
【図５】
0005163202.tif 000006
【図６】
0005163202.tif 000007
【図７】
0005163202.tif 000008
【図８】
0005163202.tif 000009
【図９】
0005163202.tif 000010
【図１０】
0005163202.tif 000011
【図１１】
0005163202.tif 000012
【図１２】
0005163202.tif 000013
【図１３】
0005163202.tif 000014
【図１４】
0005163202.tif 000015
【図１５】
0005163202.tif 000016
【図１６】
0005163202.tif 000017
【図１７】
0005163202.tif 000018
【図１８】
0005163202.tif 000019
【図１９】
0005163202.tif 000020
【図２０】
0005163202.tif 000021
【図２１】
0005163202.tif 000022
【図２２】
0005163202.tif 000023