説明

コミュニケーションシステム、発話内容生成装置、発話内容生成プログラムおよび発話内容生成方法

【構成】 コミュニケーションシステム10は、ロボット12およびサーバ20を含み、ロボットはユーザに指示された物品を特定し、サーバは、ロボットからの要求に応じて、特定した物品を確認するための指差し動作および発話内容を生成する。発話内容を生成する際には、特定した物品の複数の属性についてのべき集合を生成し、当該特定した物品の近傍に存在する他の物品の複数の属性についてのべき集合を当該他の物品毎に生成する。サーバは、特定した物品についてのべき集合の要素から、他の物品のそれぞれについてのべき集合と共通する要素を削除する。サーバは、残った要素のうち、単語数が最も少ない要素を選択し、さらに、選択した要素のうち、特定した物品の近傍に存在する他の物品の複数の属性の文字列との非類似度が最も高い要素を選択して、発話内容を生成する。
【効果】 確認行動における発話内容を簡単に生成することができる。

【発明の詳細な説明】
【技術分野】
【0001】
この発明はコミュニケーションシステム、発話内容生成装置、発話内容生成プログラムおよび発話内容生成方法に関し、特にたとえば、音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかどうかを少なくとも音声によって確認する、コミュニケーションシステム、発話内容生成装置、発話内容生成プログラムおよび発話内容生成方法に関する。
【背景技術】
【0002】
この種の従来のコミュニケーションシステムの一例が特許文献1に開示されている。この特許文献1に開示されるコミュニケーションシステムでは、サーバが人間の指示した物品を特定すると、当該物品を特定する「特定単語」を用いて、当該物品が人間の指示した物品であるか否かを確認する音声をロボットが発する。このとき、「特定単語」として、人間の近傍に存在する他の物品を特定するのに使用されない単語であり、音声認識による認識率の高い単語が選択される。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2009−223171号[G10L 15/22, G10L 15/00]
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかし、特許文献1のコミュニケーションシステムでは、特定単語として用いる単語について、予め音声認識の認識率を求めておく必要があり、面倒である。
【0005】
それゆえに、この発明の主たる目的は、新規な、コミュニケーションシステム、発話内容生成装置、発話内容生成プログラムおよび発話内容生成方法を提供することである。
【0006】
また、この発明の他の目的は、発話内容に含める単語を簡単に選択できる、コミュニケーションシステム、発話内容生成装置、発話内容生成プログラムおよび発話内容生成方法を提供することである。
【課題を解決するための手段】
【0007】
本発明は、上記の課題を解決するために、以下の構成を採用した。なお、括弧内の参照符号および補足説明等は、本発明の理解を助けるために後述する実施の形態との対応関係を示したものであって、本発明を何ら限定するものではない。
【0008】
第1の発明は、音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認するコミュニケーションシステムであって、物品の名称および当該物品に関連する複数の単語を記憶する記憶手段、特定した物品に関連する複数の単語を記憶手段から読み出し、読み出した単語について第1べき集合を作成する第1作成手段、特定した物品の近傍に存在する他の物品に関する複数の単語を記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成する第2作成手段、第1作成手段によって作成された第1べき集合と、第2作成手段によって作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除する削除手段、削除手段によって削除した結果、第1べき集合に含まれる要素のうち、単語数が最小である要素を選択する第1選択手段、第1選択手段によって選択された要素のうち、他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択する第2選択手段、および第2選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する発話内容生成手段を備える、コミュニケーションシステムである。
【0009】
第1の発明では、コミュニケーションシステム(10)は、音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認する。記憶手段(122、204)は、物品の名称および当該物品に関連する複数の単語を記憶する。物品に関連する複数の単語は、たとえば、物品の種類、色、厚みのような属性についての単語であり、物品を補足的に説明する単語である。第1作成手段(200、S33)は、特定した物品に関連する複数の単語を記憶手段から読み出し、読み出した単語について第1べき集合を作成する。第2作成手段(200、S35)は、特定した物品の近傍に存在する他の物品に関する複数の単語を記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成する。第削除手段(200、S37)は、1作成手段によって作成された第1べき集合と、第2作成手段によって作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除する。第1選択手段(200、S39)は、削除手段によって削除した結果、第1べき集合に含まれる要素のうち、単語数が最小である要素を選択する。第2選択手段(200、S41)は、第1選択手段によって選択された要素のうち、他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択する。発話内容生成手段(200、S13)は、第2選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する。
【0010】
第1の発明によれば、特定した物品の近傍に存在する物品とは異なり、文字列の非類似度が最も高い文字列を選択するので、予め単語の音声認識率を求める必要がなく、発話内容に含める単語を簡単に選択することができる。したがって、発話内容を簡単に生成することができる。
【0011】
第2の発明は、第1の発明に従属し、第1選択手段によって選択された要素に含まれる第1単語の文字列と、他の物品に関連する複数の第2単語の文字列のそれぞれとのレーベンシュタイン距離を算出する算出手段をさらに備え、第2選択手段は、算出手段によって算出されたレーベンシュタイン距離が最大となる第1単語を含む要素を選択する。
【0012】
第2の発明では、コミュニケーションシステムは、算出手段(200、S91)をさらに備える。算出手段は、第1選択手段によって選択された要素に含まれる第1単語の文字列と、他の物品に関連する複数の第2単語の文字列のそれぞれとのレーベンシュタイン距離を算出する。つまり、文字列(発音)の類似度が算出される。第2選択手段は、算出手段によって算出されたレーベンシュタイン距離が最大となる第1単語を含む要素を選択する。したがって、上述したように、他の物品に関連する複数の単語の文字列との非類似度が最も高い要素が選択される。
【0013】
第2の発明によれば、文字列同士のレーベンシュタイン距離を算出するだけなので、単語の選択が容易である。
【0014】
第3の発明は、第1または第2の発明に従属し、特定した物品の近傍に他の物品が存在するかどうかを判断する第1判断手段、第1判断手段によって特定した物品の近傍に他の物品が存在しないと判断されたとき、当該特定した物品に関連する複数の単語のそれぞれを発話内容に含める候補として決定する候補決定手段、および候補決定手段によって決定された単語のうち、人間の近傍に存在する他の物品に関連する複数の単語の文字列との非類似度が最も高い単語を選択する第3選択手段をさらに備え、発話内容生成手段は、第3選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する。
【0015】
第3の発明では、コミュニケーションシステムは、第1判断手段(200、S31)、候補決定手段(200、S43)、および第3選択手段(200、S51)をさらに備える。第1判断手段は、特定した物品の近傍に他の物品が存在するかどうかを判断する。候補決定手段は、第1判断手段によって特定した物品の近傍に他の物品が存在しないと判断されたとき、当該特定した物品に関連する複数の単語のそれぞれを発話内容に含める候補として決定する。第3選択手段は、候補決定手段によって決定された単語のうち、人間の近傍に存在する他の物品に関連する複数の単語の文字列との非類似度が最も高い単語を選択する。かかる場合には、発話内容生成手段は、第3選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する。
【0016】
第3の発明によれば、特定した物品の近傍に他の物品が存在しない場合であっても、発話内容に含む適切な単語を選択することができる。
【0017】
第4の発明は、第3の発明に従属し、第1判断手段によって特定した物品の近傍に他の物品が存在しないと判断されたとき、人間の近傍に他の物品が存在するかどうかを判断する第2判断手段、および第2判断手段によって人間の近傍に他の物品が存在しないことが判断されたとき、候補決定手段によって決定された候補のうちから1つの単語を所定のルールに従って選択する第4選択手段をさらに備え、発話内容生成手段は、第4選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する。
【0018】
第4の発明では、コミュニケーションシステムは、第2判断手段(200、S45)および第4選択手段(200、S53)をさらに備える。第2判断手段は、第1判断手段によって特定した物品の近傍に他の物品が存在しないと判断されたとき、人間の近傍に他の物品が存在するかどうかを判断する。第4選択手段は、第2判断手段によって人間の近傍に他の物品が存在しないことが判断されたとき、候補決定手段によって決定された候補のうちから1つの単語を所定のルールに従って選択する。たとえば、候補から、ランダムに1つの単語が選択されたり、システムの管理者等よって予め決定された1つの関連する単語が選択されたりする。かかる場合には、発話内容生成手段は、第4選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する。
【0019】
第4の発明においても、第3の発明と同様に、特定した物品の近傍に他の物品が存在しない場合であっても、発話内容に含む適切な単語を選択することができる。
【0020】
第5の発明は、音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認するコミュニケーションシステムに用いられ、音声にて確認する場合の発話内容を生成する発話内容生成装置であって、物品の名称および当該物品に関連する複数の単語を記憶する記憶手段、特定した物品に関連する複数の単語を記憶手段から読み出し、読み出した単語について第1べき集合を作成する第1作成手段、特定した物品の近傍に存在する他の物品に関する複数の単語を記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成する第2作成手段、第1作成手段によって作成された第1べき集合と、第2作成手段によって作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除する削除手段、削除手段によって削除した結果、第1べき集合に含まれる要素のうち、単語数が最小である要素を選択する第1選択手段、第1選択手段によって選択された要素のうち、他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択する第2選択手段、および第2選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する発話内容生成手段を備える、発話内容生成装置である。
【0021】
第6の発明は、音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認するコミュニケーションシステムに用いられ、物品の名称および当該物品に関連する複数の単語を記憶する記憶手段を備え、音声にて確認する場合の発話内容を生成する発話内容生成装置の発話内容生成プログラムであって、発話内容生成装置のプロセッサに、特定した物品に関連する複数の単語を記憶手段から読み出し、読み出した単語について第1べき集合を作成する第1作成ステップ、特定した物品の近傍に存在する他の物品に関する複数の単語を記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成する第2作成ステップ、第1作成ステップにおいて作成された第1べき集合と、第2作成ステップにおいて作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除する削除ステップ、削除ステップにおいて削除した結果、第1べき集合に含まれる要素のうち、単語数が最小である要素を選択する第1選択ステップ、第1選択ステップにおいて選択された要素のうち、他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択する第2選択ステップ、および第2選択ステップにおいて選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する発話内容生成ステップを実行させる、発話内容生成プログラムである。
【0022】
第7の発明は、音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認するコミュニケーションシステムに用いられ、物品の名称および当該物品に関連する複数の単語を記憶する記憶手段を備え、音声にて確認する場合の発話内容を生成する発話内容生成装置の発話内容生成方法であって、発話内容生成装置のプロセッサは、(a)特定した物品に関連する複数の単語を記憶手段から読み出し、読み出した単語について第1べき集合を作成し、(b)特定した物品の近傍に存在する他の物品に関する複数の単語を記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成し、(c)ステップ(a)において作成された第1べき集合と、ステップ(b)において作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除し、(d)ステップ(c)において削除した結果、第1べき集合に含まれる要素のうち、単語数が最小である要素を選択し、(e)ステップ(d)において選択された要素のうち、他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択し、そして(f)ステップ(e)において選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する、発話内容生成方法である。
【0023】
第5−第7の発明においても、第1の発明と同様に、発話内容を簡単に生成することができる。
【発明の効果】
【0024】
この発明によれば、特定した物品の近傍に存在する物品とは異なり、文字列の非類似度が最も高い文字列を選択するので、予め単語の音声認識率を求める必要がなく、発話内容に含める単語を簡単に選択することができる。したがって、発話内容を簡単に生成することができる。
【0025】
この発明の上述の目的,その他の目的,特徴および利点は、図面を参照して行う以下の実施例の詳細な説明から一層明らかとなろう。
【図面の簡単な説明】
【0026】
【図1】図1はこの発明の一実施例を示すコミュニケーションシステムの概要を示す図解図である。
【図2】図2は図1に示すロボットの外観を正面から見た図解図である。
【図3】図3は図1に示すロボットの電気的な構成を示すブロック図である。
【図4】図4は図1に示すサーバの電気的な構成を示すブロック図である。
【図5】図5は図1の実施例で用いられる物品辞書の一例を示す図解図である。
【図6】図6は図1の実施例で用いられる物品ローカル辞書の一例を示す図解図である。
【図7】図7は図1の実施例で用いられる単語の一覧の一例を示す図解図である。
【図8】図8は図1の実施例の確認行動で用いられる単語を決定する方法を説明するための図解図である。
【図9】図9は図4に示すRAMのメモリマップの一例を示す図解図である。
【図10】図10は図4に示すCPUの確認行動決定処理を示すフロー図である。
【図11】図11は図4に示すCPUの単語選択処理を示すフロー図である。
【図12】図12は図4に示すCPUの物品Xの属性組を生成する処理を示すフロー図である。
【図13】図13は図4に示すCPUの近傍の他の物品の属性組を生成する処理を示すフロー図である。
【図14】図14は図4に示すCPUの物品Xの属性組を低減する処理を示すフロー図である。
【図15】図15は図4に示すCPUの単語の決定(1)処理を示すフロー図である。
【図16】図16は図4に示すCPUの物品Xの呼び名の候補を生成する処理を示すフロー図である。
【図17】図17は図4に示すCPUの単語の決定(2)処理を示すフロー図である。
【発明を実施するための形態】
【0027】
図1を参照して、この実施例のコミュニケーションシステム(以下、単に「システム」という。)10は、コミュニケーションロボット(以下、単に「ロボット」という。)12を含む。このロボット12は、音声および身体動作(ジェスチャ)の少なくとも一方を用いて、人間や他のロボットとコミュニケーションを行うことができる。また、ロボット12は、たとえば無線LANなどのネットワーク14を介してサーバ20にアクセスすることができる。この実施例のロボット12は、サーバ20と協働して、人間16が音声、視線、および指差しで指示する物品を特定し、たとえばその物品を人間16に持って行くなどの動作を実行する。
【0028】
人間16には、無線タグ18が装着されるとともに、図示しないが、モーションキャプチャのためのマーカが付着されている。無線タグ18は、識別情報を含む電波信号を発信する。ここでは、電波信号に含まれる識別情報は、人間16を個別に識別するために用いられる。マーカは、典型的には、人間の頭頂、両肩、両肘、両手の人差し指の先端などに設定されていて、それらのマーカが、人間16の全体とともに、サーバ20に制御されるカメラ120によって撮影される。カメラ120は、実施例では、3つ設けられ、人間16を3方向から撮影し、そのカメラ映像についてのデータ(カメラ映像データ)をサーバ20に供給する。
【0029】
サーバ20は、ネットワーク14に接続され、上述のようにして入力されるカメラ映像データに基づいて、マーカの動きを検出するモーションキャプチャ処理を実行するとともに、たとえば肌色領域を検出することによって、人間16の顔の位置を特定することができる。
【0030】
このシステム10では、上述のように、ロボット12が人間16の指示する物品を対象物として特定するものである。対象物となり得る物品の例として、この実施例では、本(書籍)24を用いる。本24(図1では、「OBJ」と表記してある。)には、その本を識別可能な情報(識別情報)を電波信号に含んで発信する無線タグ18が付着されている。
【0031】
ただし、対象物となり得る物品は実施例の書籍だけでなく、もし家庭用のシステムであれば、家庭内のあらゆる物品が考えられる。また、当然、家庭用としてだけではなく、人間と一緒に働く任意の場所(会社、事務所、工場など)での利用が考えられる。かかる場合には、任意の場所に存在する種々の物品が対象物となり得る。
【0032】
そして、このシステム10が対象とするすべての物品(本24)についての情報は、サーバ20に接続された物品辞書データベース(DB)122に登録される。物品辞書DB122については後述する。
【0033】
また、システム10が対象とする人間16に装着された無線タグ18から発信された識別情報は、複数存在するアンテナ124のいずれかを介して無線タグ読取装置208(図4参照)で読み取られる。そして、無線タグ読取装置208で読み取られた識別情報はサーバ20に与えられる。これに応じて、サーバ20は、識別情報から人間116を特定するとともに、識別情報を受信した(読み取った)アンテナ124が配置されている位置から人間16の若干大まかな位置を把握(検出)する。
【0034】
なお、図1では、簡単のため、1台のロボット12を示してあるが、2台以上であってよい。また、人間16は1人に限定される必要はなく、無線タグ18で識別できるので、複数であってよい。
【0035】
また、図1に示す実施例では、このシステム10を設置している空間のワールド座標を用いてロボット12、人間16、物品24などの位置が表現されていて、他方、ロボット12の制御はロボット座標で行なわれるので、詳細は説明しないが、ロボット12は、後述の処理における必要に応じて、ロボット座標とワールド座標との間の座標変換処理を実行するものである。
【0036】
図2を参照して、ロボット12のハードウェアの構成について説明する。図2は、この実施例のロボット12の外観を示す正面図である。ロボット12は台車30を含み、台車30の下面にはロボット12を自律移動させる2つの車輪32および1つの従輪34が設けられる。2つの車輪32は車輪モータ36(図3参照)によってそれぞれ独立に駆動され、台車30すなわちロボット12を前後左右の任意方向に動かすことができる。また、従輪34は車輪32を補助する補助輪である。したがって、ロボット12は、配置された空間内を自律制御によって移動可能である。
【0037】
台車30の上には、円柱形のセンサ取り付けパネル38が設けられ、このセンサ取り付けパネル38には、多数の赤外線距離センサ40が取り付けられる。これらの赤外線距離センサ40は、センサ取り付けパネル38すなわちロボット12の周囲の物体(人間や障害物など)との距離を測定するものである。
【0038】
なお、この実施例では、距離センサとして、赤外線距離センサを用いるようにしてあるが、赤外線距離センサに代えて、超音波距離センサやミリ波レーダなどを用いることもできる。
【0039】
センサ取り付けパネル38の上には、胴体42が直立するように設けられる。また、胴体42の前方中央上部(人の胸に相当する位置)には、上述した赤外線距離センサ40がさらに設けられ、ロボット12の前方の主として人間との距離を計測する。また、胴体42には、その側面側上端部のほぼ中央から伸びる支柱44が設けられ、支柱44の上には、全方位カメラ46が設けられる。全方位カメラ46は、ロボット12の周囲を撮影するものであり、後述する眼カメラ70とは区別される。この全方位カメラ46としては、たとえばCCDやCMOSのような固体撮像素子を用いるカメラを採用することができる。なお、これら赤外線距離センサ40および全方位カメラ46の設置位置は、当該部位に限定されず適宜変更され得る。
【0040】
胴体42の両側面上端部(人の肩に相当する位置)には、それぞれ、肩関節48Rおよび肩関節48Lによって、上腕50Rおよび上腕50Lが設けられる。図示は省略するが、肩関節48Rおよび肩関節48Lは、それぞれ、直交する3軸の自由度を有する。すなわち、肩関節48Rは、直交する3軸のそれぞれの軸廻りにおいて上腕50Rの角度を制御できる。肩関節48Rの或る軸(ヨー軸)は、上腕50Rの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。同様にして、肩関節48Lは、直交する3軸のそれぞれの軸廻りにおいて上腕50Lの角度を制御できる。肩関節48Lの或る軸(ヨー軸)は、上腕50Lの長手方向(または軸)に平行な軸であり、他の2軸(ピッチ軸およびロール軸)は、その軸にそれぞれ異なる方向から直交する軸である。
【0041】
また、上腕50Rおよび上腕50Lのそれぞれの先端には、肘関節52Rおよび肘関節52Lが設けられる。図示は省略するが、肘関節52Rおよび肘関節52Lは、それぞれ1軸の自由度を有し、この軸(ピッチ軸)の軸回りにおいて前腕54Rおよび前腕54Lの角度を制御できる。
【0042】
前腕54Rおよび前腕54Lのそれぞれの先端には、人の手に相当するハンド56Rおよびハンド56Lがそれぞれ設けられる。これらのハンド56Rおよび56Lは、詳細な図示は省略するが、開閉可能に構成され、それによってロボット12は、ハンド56Rおよび56Lを用いて物体を把持または挟持することができる。ただし、ハンド56R,56Lの形状は実施例の形状に限らず、人間の手に酷似した形状や機能を持たせるようにしてもよい。
【0043】
また、図示は省略するが、台車30の前面,肩関節48Rと肩関節48Lとを含む肩に相当する部位,上腕50R,上腕50L,前腕54R,前腕54L,球体56Rおよび球体56Lには、それぞれ、接触センサ58(図3で包括的に示す)が設けられる。台車30の前面の接触センサ58は、台車30への人間や他の障害物の接触を検知する。したがって、ロボット12は、その自身の移動中に障害物との接触が有ると、それを検知し、直ちに車輪32の駆動を停止してロボット12の移動を急停止させることができる。また、その他の接触センサ58は、当該各部位に触れたかどうかを検知する。なお、接触センサ58の設置位置は、当該部位に限定されず、適宜な位置(人の胸,腹,脇,背中および腰に相当する位置)に設けられてもよい。
【0044】
胴体42の中央上部(人の首に相当する位置)には首関節60が設けられ、さらにその上には頭部62が設けられる。図示は省略するが、首関節60は、3軸の自由度を有し、3軸の各軸廻りに角度制御可能である。或る軸(ヨー軸)はロボット12の真上(鉛直上向き)に向かう軸であり、他の2軸(ピッチ軸、ロール軸)は、それぞれ、それと異なる方向で直交する軸である。
【0045】
頭部62には、人の口に相当する位置に、スピーカ64が設けられる。スピーカ64は、ロボット12が、それの周辺の人間に対して音声ないし音によってコミュニケーションを取るために用いられる。また、人の耳に相当する位置には、マイク66Rおよびマイク66Lが設けられる。以下、右のマイク66Rと左のマイク66Lとをまとめてマイク66ということがある。マイク66は、周囲の音、とりわけコミュニケーションを実行する対象である人間の音声を取り込む。さらに、人の目に相当する位置には、眼球部68Rおよび眼球部68Lが設けられる。眼球部68Rおよび眼球部68Lは、それぞれ眼カメラ70Rおよび眼カメラ70Lを含む。以下、右の眼球部68Rと左の眼球部68Lとをまとめて眼球部68ということがある。また、右の眼カメラ70Rと左の眼カメラ70Lとをまとめて眼カメラ70ということがある。
【0046】
眼カメラ70は、ロボット12に接近した人間の顔や他の部分ないし物体などを撮影して、それに対応する映像信号を取り込む。この実施例では、ロボット12は、この眼カメラ70からの映像信号によって、人間16の左右両目のそれぞれの視線方向(ベクトル)を検出する。その視線検出方法は具体的には、2つのカメラを用いるものとして特開2004‐255074号公報に、1つのカメラを用いるものとして特開2006‐172209号公報や特開2006‐285531号公報開示されるが、ここではその詳細は重要ではないので、これらの公開公報を引用するにとどめる。
【0047】
ただし、人間16の視線ベクトルの検出のためには、よく知られているアイマークレコーダなどが利用されてもよい。
【0048】
また、眼カメラ70は、上述した全方位カメラ46と同様のカメラを用いることができる。たとえば、眼カメラ70は、眼球部68内に固定され、眼球部68は、眼球支持部(図示せず)を介して頭部62内の所定位置に取り付けられる。図示は省略するが、眼球支持部は、2軸の自由度を有し、それらの各軸廻りに角度制御可能である。たとえば、この2軸の一方は、頭部62の上に向かう方向の軸(ヨー軸)であり、他方は、一方の軸に直交しかつ頭部62の正面側(顔)が向く方向に直行する方向の軸(ピッチ軸)である。眼球支持部がこの2軸の各軸廻りに回転されることによって、眼球部68ないし眼カメラ70の先端(正面)側が変位され、カメラ軸すなわち視線方向が移動される。なお、上述のスピーカ64,マイク66および眼カメラ70の設置位置は、当該部位に限定されず、適宜な位置に設けられてよい。
【0049】
このように、この実施例のロボット12は、車輪32の独立2軸駆動,肩関節48の3自由度(左右で6自由度),肘関節52の1自由度(左右で2自由度),首関節60の3自由度および眼球支持部の2自由度(左右で4自由度)の合計17自由度を有する。
【0050】
図3はロボット12の電気的な構成を示すブロック図である。この図3を参照して、ロボット12は、CPU80を含む。CPU80は、マイクロコンピュータ或いはプロセッサとも呼ばれ、バス82を介して、メモリ84,モータ制御ボード86,センサ入力/出力ボード88および音声入力/出力ボード90に接続される。
【0051】
メモリ84は、図示は省略をするが、ROM,HDDおよびRAMを含む。ROMおよびHDDには、ロボット12の動作を制御するための制御プログラムが予め記憶される。たとえば、各センサの出力(センサ情報)を検知するための検知プログラムや、外部コンピュータとの間で必要なデータやコマンドを送受信するための通信プログラムなどが記録される。また、RAMは、ワークメモリやバッファメモリとして用いられる。
【0052】
さらに、この実施例では、ロボット12は、人間16とのコミュニケーションをとるために発話したり、ジェスチャしたりできるように構成されているが、メモリ84に、このような発話やジェスチャのための発話/ジェスチャ辞書85Aが設定されている。
【0053】
モータ制御ボード86は、たとえばDSPで構成され、各腕や首関節および眼球部などの各軸モータの駆動を制御する。すなわち、モータ制御ボード86は、CPU80からの制御データを受け、右眼球部68Rの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「右眼球モータ92」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、CPU80からの制御データを受け、左眼球部68Lの2軸のそれぞれの角度を制御する2つのモータ(図3では、まとめて「左眼球モータ94」と示す)の回転角度を制御する。
【0054】
また、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Rの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Rの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「右腕モータ96」と示す)の回転角度を制御する。同様にして、モータ制御ボード86は、CPU80からの制御データを受け、肩関節48Lの直交する3軸のそれぞれの角度を制御する3つのモータと肘関節52Lの角度を制御する1つのモータとの計4つのモータ(図3では、まとめて「左腕モータ98」と示す)の回転角度を制御する。
【0055】
さらに、モータ制御ボード86は、CPU80からの制御データを受け、首関節60の直交する3軸のそれぞれの角度を制御する3つのモータ(図3では、まとめて「頭部モータ100」と示す)の回転角度を制御する。そして、モータ制御ボード86は、CPU80からの制御データを受け、車輪32を駆動する2つのモータ(図3では、まとめて「車輪モータ36」と示す)の回転角度を制御する。
【0056】
モータ制御ボード86にはさらにハンドアクチュエータ108が結合され、モータ制御ボード86は、CPU80からの制御データを受け、ハンド56R,56Lの開閉を制御する。
【0057】
なお、この実施例では、車輪モータ36を除くモータは、制御を簡素化するためにステッピングモータ(すなわち、パルスモータ)を用いる。ただし、車輪モータ36と同様に直流モータを用いるようにしてもよい。また、ロボット12の身体部位を駆動するアクチュエータは、電流を動力源とするモータに限らず適宜変更された、たとえば、他の実施例では、エアアクチュエータが適用されてもよい。
【0058】
センサ入力/出力ボード88は、モータ制御ボード86と同様に、DSPで構成され、各センサからの信号を取り込んでCPU80に与える。すなわち、赤外線距離センサ40のそれぞれからの反射時間に関するデータがこのセンサ入力/出力ボード88を通じてCPU80に入力される。また、全方位カメラ46からの映像信号が、必要に応じてセンサ入力/出力ボード88で所定の処理を施してからCPU80に入力される。眼カメラ70からの映像信号も、同様にして、CPU80に入力される。また、上述した複数の接触センサ58(図3では、まとめて「接触センサ58」と示す)からの信号がセンサ入力/出力ボード88を介してCPU80に与えられる。音声入力/出力ボード90もまた、同様に、DSPで構成され、CPU80から与えられる音声合成データに従った音声または声がスピーカ64から出力される。また、マイク66からの音声入力が、音声入力/出力ボード90を介してCPU80に与えられる。
【0059】
また、CPU80は、バス82を介して通信LANボード102に接続される。通信LANボード102は、たとえばDSPで構成され、CPU80から与えられた送信データを無線通信装置104に与え、無線通信装置104は送信データを、ネットワーク14を介してサーバ20に送信する。また、通信LANボード102は、無線通信装置104を介してデータを受信し、受信したデータをCPU80に与える。たとえば、送信データとしては、ロボット12からサーバ20への信号(コマンド)であったり、ロボット12が行ったコミュニケーションについての動作履歴情報(履歴データ)などであったりする。このように、コマンドのみならず履歴データを送信するのは、メモリ84の容量を少なくするためと、消費電力を抑えるためである。この実施例では、履歴データはコミュニケーションが実行される度に、サーバ20に送信されたが、一定時間または一定量の単位でサーバ20に送信されるようにしてもよい。
【0060】
さらに、CPU80は、バス82を介して無線タグ読取装置106が接続される。無線タグ読取装置106は、アンテナ(図示せず)を介して、無線タグ18(RFIDタグ)から送信される識別情報の重畳された電波を受信する。そして、無線タグ読取装置106は、受信した電波信号を増幅し、当該電波信号から識別信号を分離し、当該識別情報を復調(デコード)してCPU80に与える。図1によれば無線タグ18は、ロボット12が配置された会社の受付や一般家庭の居間などに居る人間16や物品(この実施例では、本24)に装着され、無線タグ読取装置106は、通信可能範囲内の無線タグ18から発信される電波信号を検出する。
【0061】
なお、無線タグ18は、アクティブ型であってもよいし、無線タグ読取装置106から送信される電波に応じて駆動されるパッシブ型であってもよい。
【0062】
図4を参照して、サーバ20のハードウェアの構成について説明する。図4に示すように、サーバ20は、CPU200を含む。CPU200は、プロセッサとも呼ばれ、バス202を介して、メモリ204、カメラ制御ボード206、無線タグ読取装置208、LAN制御ボード210、入力装置制御ボード212、およびモニタ制御ボード214に接続される。
【0063】
CPU200は、サーバ20の全体の制御を司る。メモリ204は、ROM、RAM、およびHDDなどを包括的に示したものであり、サーバ20の動作のためのプログラムを記録したり、CPU200が動作する際のワークエリアとして機能したりする。カメラ制御ボード206は、当該制御ボード206に接続されるカメラ120を制御するためのものである。
【0064】
無線タグ読取装置208は、当該制御ボード208に接続されるアンテナ124を介して人間16や物品(本)24に装着された無線タグ18から送信される識別情報の重畳された電波を受信する。そして、無線タグ読取装置208は、受信した電波信号を増幅し、当該電波信号から識別信号を分離し、当該識別情報を復調(デコード)してCPU200に与える。アンテナ124は、ロボット12が配置された会社の受付や一般家庭の各部屋などにくまなく配置され、システム10が対象とするすべての物品(本)24および人間16の無線タグ18から電波を受信できるようになっている。したがって、アンテナ124は複数存在するが、図1および図4では包括的に示している。
【0065】
また、LAN制御ボード210は、当該制御ボード210に接続される無線通信装置216を制御し、サーバ20が外部のネットワーク14に無線によってアクセスできるようにするものである。さらに、入力装置制御ボード212は、当該制御ボード212に接続される入力装置としてのたとえば、キーボードやマウスなどによる入力を制御するものである。そして、モニタ制御ボード214は、当該制御ボード214に接続されるモニタへの出力を制御するものである。
【0066】
また、サーバ20は、図示しないインターフェースによって、物品辞書DB122および音声認識辞書DB126(図1参照)に接続されている。
【0067】
メモリ204(RAM)には、後述するように、物品ローカル辞書データ504a、音声認識ローカル辞書データ504b、発話辞書データ504cおよび個人正誤情報データ504dが設定(記憶)されている。
【0068】
物品ローカル辞書データ504aに対応する物品ローカル辞書は、後述するように、物品辞書DB122から抽出された内容が登録される辞書である。サーバ20は、ロボット12が人間16を認識した際に、当該人間16の近傍に存在する物品(本)24の情報だけを物品辞書DB122から抽出して物品ローカル辞書に登録する。音声認識ローカル辞書データ504bに対応する音声認識ローカル辞書は、後述するように、音声認識辞書DB126から抽出された内容が登録される辞書である。サーバ20は、ロボット12が人間16を認識して物品ローカル辞書を作成すると、当該物品ローカル辞書に登録されている単語を音声認識するために必要な情報を音声認識辞書DB126から抽出して音声認識ローカル辞書に登録する。したがって、物品ローカル辞書および音声認識ローカル辞書は、人間16の位置の変化に応じて動的に書き換えられる。このように、音声認識辞書DB126に記憶された音声認識辞書から音声認識ローカル辞書を作成し、音声認識に使用する辞書を小さくすることによって音声認識の対象となる単語(音素記号列)の数を少なくし、音声認識の処理にかかる時間を短くするとともに正しく音声認識できる割合を高めることができる。
【0069】
発話辞書データ504cに対応する発話辞書は、サーバ20がロボット12に、人間16に対して発話させる音声の内容を決定するために必要な情報を記憶している。また、個人正誤情報データ504dに対応する個人正誤情報は、システム10が、人間16が指示した物品(本)24を特定することに最終的に成功したか否かを示す情報(音声認識の成功率)を、人間16の識別情報(ユーザID)別に記憶している。
【0070】
次に、図5を参照して、物品辞書DB122に記憶される物品辞書は、たとえばユーコード(Ucode)のようなIDをそれぞれの物品の1つに割り当て、物品毎にその名称および属性などの必要な情報を登録している。なお、ユーコードは、具体的には、128ビットの数字からなり、340兆の1兆倍のさらに1兆倍の数の物品を個別に識別できるものである。ただし、この物品辞書DB122に使うIDは必ずしもこのようなユーコードである必要はなく、適宜の数字や記号の組み合わせからなるものであってよい。
【0071】
このような物品辞書は、システム10(ロボット12およびサーバ20)が識別すべき対象物となるすべての、たとえば家庭内の物品をIDと文字列とで登録するものであり、いわばグローバル辞書に相当する。
【0072】
物品辞書には、1つの物品(本)24についての情報が1つのレコードとして登録されている。そして、上述したように、たとえば、1つのレコードには、本のID以外に「名称」および「属性」が記憶される。
【0073】
なお、図示は省略するが、本24についての情報として、「著者」および「出版社」などがさらに記憶されてもよい。
【0074】
「名称」は、対応する本24の表題(題号)である。また、「属性」は、本24に関連する情報であり、この実施例では、本24を補足的に説明する内容である。この実施例では、「属性」の項目には、本24の種類(漫画、小説、雑誌など)、カバーの色および厚み(厚い、薄い)の情報が記憶されている。図5では分かり易く示すために、名称および属性の両方について、テキスト形式の文字列で記載してあるが、実際には、属性については、ローマ字で表記した文字列が記述されている。
【0075】
次に、音声認識辞書DB126について説明する。一般的に、音声認識辞書には、単語辞書と文法辞書とが存在するが、音声認識辞書DB126は単語辞書についてのデータを記憶する。文法辞書についての説明は省略する。図示は省略するが、音声認識辞書DB126には、物品の名称(この実施例では、本24の名称)についてのテキスト形式の単語(または物品の識別情報)の各々に対応して、テキスト形式の単語に対応する音素記号形式(音素記号列)が記述されたテーブルのデータ(音声認識辞書データ)が記憶される。
【0076】
音声認識の処理では、入力された音声を音素に分解し、分解した各音素について当該音素を表す記号を生成する。これによって、入力された音声の単語に相当する音素記号列が生成される。次に、入力された音声の単語に相当する音素記号列が、音声認識辞書DB126(実際には、後述する音声認識ローカル辞書)に記憶されている音素記号列と比較される。そして、入力された音声の単語に相当する音素記号列ともっとも近い音素記号列を音声認識辞書DB126(音声認識ローカル辞書)内で特定し、この特定した音素記号列に対応して記述されている単語を音声認識結果として出力する。
【0077】
上述したように、このシステム10では、人間16が音声と視線および指差しによって物品(本)24を指示すると、ロボット12とサーバ20とが協働して、人間16が指示した物品(本)24を特定し、その特定した物品(本)24をロボット12が人間16のところに運搬などする。以下において、この人間16とシステム10とのやり取りをコミュニケーションと呼ぶことがある。
【0078】
より詳細に述べると、このシステム10では、人間16がロボット12に近づくと、ロボット12が人間16を無線タグ18によって認識する。サーバ20には、システム10が対象とする物品(本)24のすべてが登録された物品辞書DB122、および音声認識によって物品(本)24を特定するための単語が登録された音声認識辞書DB126が接続されている。ロボット12は、人間16を認識すると、当該人間16の識別情報(ユーザID)をサーバ20に送信するとともに、サーバ20に対して物品辞書DB122および音声認識辞書DB126のローカル辞書(物品ローカル辞書、音声認識ローカル辞書)の作成を指示する。
【0079】
ローカル辞書の作成の指示を受けると、サーバ20では、ロボット12が認識した人間16の位置を特定し、特定した当該人間16から所定の範囲内、たとえば、半径5m以内にある物品(本)24のレコードのみを物品辞書DB122から抽出して物品ローカル辞書を作成する。次に、音声認識辞書DB126から、物品ローカル辞書に登録されている物品(本)24を音声認識するため必要な情報のみを抽出して音声認識ローカル辞書を作成する。
【0080】
その後、ロボット12は、認識した人間16に対して、たとえば、「何か本を持ってきましょうか?」という発話を行う。この発話に対し、人間16は、持ってきてほしい物品(本)24に視線を向けつつ当該物品(本)24を指差しながら、「漫画Aを持ってきて」などと答える。
【0081】
すると、ロボット12は、「漫画Aを持ってきて」という人間16の声を音声認識し、人間16の視線を推定し、指差した指が向かっている方向を推定することによって、人間16が指示している物品(本)24を特定する。
【0082】
人間16が指示している物品(本)24を特定すると、サーバ20は、人間16に特定した物品(本)24を確認するためにロボット12が発話する音声の内容、たとえば、「赤色の漫画ですか?」を決定し、ロボット12が当該物品(本)24(名称「漫画A」)を指し示しながらこれを発話する。つまり、ロボット12は、特定した物品(本)24を確認するための行動(確認行動)を行う。
【0083】
このとき、サーバ20は、発話の内容を、ロボット12が認識した人間16の近傍や特定した物品(本)24の近傍に存在する他の物品とは異なる特徴(属性)を用いるとともに、音声認識し易い言葉で、物品(本)24を確認するための発話内容を生成する。
【0084】
ここで、音声認識し易い言葉を選択するようにしてあるのは、人間はロボットの発話内容を真似する傾向があるとの知見に基づき、次回以降に、人間が音声で指示した物品(本)24を特定し易くするためである。ただし、発話内容が短すぎる場合には、音声認識を失敗する可能性が高くなり、一方、発話内容が長過ぎる場合には、人間によって真似されない可能性が高くなるため、この実施例では、2〜3個の属性の単語を用いて発話内容を生成するようにしてある。
【0085】
ただし、これは単なる一例であり、発話内容は、属性の単語が長い場合には、1つの属性の単語のみを用いて決定しても良いし、属性の単語が短い場合には、さらに多くの属性を物品辞書に登録しておくことにより、4つ以上を用いて決定してもよい。
【0086】
また、システム10が特定した物品(本)24を確認するために、ロボット12がたとえば「赤色の漫画ですか?」と発話すると、人間16は、「そうです」あるいは「ちがいます」などと発話し、ロボット12に返答する。サーバ20は、この人間16の返答における音声を音声認識し、システム10が特定した物品(本)24が、人間16が指示したものであるか否かを判断する。システム10が特定した物品(本)24が、人間16が指示したものでなかった場合には、次の候補である物品(本)24が、人間16が指示したものであるか否かを確認する。一方、システム10が特定した物品(本)24が、人間16が指示したものであった場合には、ロボット12が当該物品(本)24を人間16のところにまで運搬する。
【0087】
また、サーバ20は、特定した物品(本)24を確認した結果(正誤の情報)を累積的に記録する。サーバ20は、この累積的に記録した正誤の情報を成功率(音声認識の成功率)として、発話内容を生成する際に参照する。
【0088】
なお、発話内容を生成する際に単語(発話に使用する単語)を選択する方法が異なる以外は、出願人が先に出願し既に出願公開された特開平2009−223171号に開示された内容とほぼ同じであり、また、本願発明の本質的な内容ではないため、この実施例においては、単語を決定する方法についてのみ、詳細に説明してある。
【0089】
まず、特定した物品(本)24(以下、「物品X」という。)の属性Fcがすべて取得される。たとえば、名称「漫画A」である物品(本)24が特定された場合には、属性Fcとして{漫画、赤、薄い}が取得される。次に、属性についての組(属性組)が生成される。この実施例では、属性Fcのべき集合(Power set)が計算され、属性組として生成される。以下、同様である。ただし、属性Fcのべき集合Power(Fc)は、{{漫画}、{赤}、{薄い}、{漫画、赤}、{赤、薄い}、{漫画、薄い}、{漫画、赤、薄い}}である。
【0090】
次に、特定した物品Xの近傍(たとえば、30cm以内)に存在する他の物品が検出され、検出された他の物品についての属性が取得される。他の物品が複数存在する場合には、他の物品毎に属性組が生成(べき集合が計算)される。
【0091】
たとえば、物品Xの近傍に、名称「漫画B」の本24(以下、「物品1」という。)と、名称「雑誌B」の本24(以下、「物品2」という。)が存在する場合には、これら他の物品1および物品2のそれぞれについて属性が取得され、それぞれについてべき集合が計算され、それぞれの属性組が生成される。ここで、物品1の属性は{漫画、青、薄い}であり、物品2の属性は{雑誌、赤、厚い}である。したがって、物品1のべき集合Power(F1)は、{{漫画}、{青}、{薄い}、{漫画、青}、{青、薄い}、{漫画、薄い}、{漫画、青、薄い}}である。また、物品2のべき集合Power(F2)は、{{雑誌}、{赤}、{厚い}、{雑誌、赤}、{赤、厚い}、{雑誌、厚い}、{雑誌、赤、厚い}}である。
【0092】
次に、特定した物品24の属性組と、近傍の他の物品24の属性組とで共通する要素(共通要素)が抽出され、特定した物品24の属性組から共通要素が削除される。具体的には、物品Xの属性組と物品1の属性組とから共通要素E1が抽出されるとともに、物品Xの属性組と物品2の属性組とから共通要素E2が抽出される。
【0093】
この実施例においては、共通要素E1は、{{漫画}、{薄い}、{漫画、薄い}}である。また、共通要素E2は、{赤}である。したがって、共通要素の集合Sは、共通要素E1と共通要素E2との和であり、具体的には、{{漫画}、{赤}、{薄い}、{漫画、薄い}}である。したがって、特定した物品Xのべき集合Power(Fc)の要素から集合Sの要素が削除(Power(Fc)−S)されると、{{漫画、赤}、{赤、薄い}、{漫画、赤、薄い}}となる。
【0094】
次に、Power(Fc)−Sの要素のうち、単語数が最小となるものを抽出する。この演算子をたとえばmin()と定義する。したがって、min(Power(Fc)−S)は、{{漫画、赤}、{赤、薄い}}となる。
【0095】
このように、単語数が最小となる要素を選択するのは、上述したように、発話内容を、音声認識を容易にする長さであり、かつ、人間に真似される程度の長さにするためである。
【0096】
そして、min()の要素のうち、1つの要素が発話内容に使用される単語として選択される。この実施例では、特定した物品24の近傍に存在する他の物品24の属性との類似性が最も低い要素(非類似性が最も高い要素)が選択される。ただし、ここでの類似性は、音声で発音する場合に対比する単語が似ている度合を意味する。
【0097】
具体的には、要素に含まれる属性を示す単語(文字列)についてのレーベンシュタイン距離の和を算出し、和が最大となる要素に含まれる属性を示す単語が発話内容に使用する単語として選択される。レーベンシュタイン距離(編集距離)は、2つの文字列がどの程度異なっているかを示す数値である。具体的には、文字の挿入や削除、置換によって、1つの文字列を別の文字列に変形するのに必要な手順の最小回数として与えられる。
【0098】
ただし、この実施例では、正しく音声認識するようにするために、レーベンシュタイン距離を算出する場合には、ローマ字で示された文字列を用いるようにしてある。このローマ字で示された文字列は、物品辞書(物品ローカル辞書)に登録されている。ただし、属性に含まれる種類、色および厚みのそれぞれについて(同じ属性同士で)レーベンシュタイン距離が算出され、合計される。
【0099】
図8(A)に示すように、上記のように選出された{漫画、赤}についてレーベンシュタイン距離を算出する場合には、属性のうち、{種類、色}が対比される。したがって、特定した物品Xと物品1では、種類については“manga”ですべて一致し、色については“aka”と“ao“とで2文字の置き換えが必要であるため、レーベンシュタイン距離LDは「2」となる。また、特定した物品Xと物品2とでは、種類については“manga”と“zasshi”で4文字の置き換えと1文字の追加が必要であり、色については“aka”ですべて一致するため、レーベンシュタイン距離LDは「5」となる。したがって、発話内容として{種類、色}である{漫画、赤}を用いる場合のレーベンシュタイン距離LDの合計は「7」となる。
【0100】
一方、図8(B)に示すように、上記のように選出された{赤、薄い}についてレーベンシュタイン距離を算出する場合には、属性のうち、{色、厚み}が対比される。したがって、特定した物品Xと物品1とでは、色については“aka”と“ao”で2文字の置き換えが必要であり、厚みについては“usui”ですべて一致するため、レーベンシュタイン距離LDは「2」となる。また、特定した物品Xと物品2とでは、色については“aka”ですべて一致し、厚みについては“usui”と“atsui”で1文字の追加と1文字の置き換えが必要であるため、レーベンシュタイン距離は「2」となる。したがって、発話内容として{色、厚み}である{赤、薄い}を用いる場合のレーベンシュタイン距離LDの合計は「4」となる。
【0101】
以上より、発話内容としては、レーベンシュタイン距離LDの合計が大きい{漫画、赤}が選択される。
【0102】
次に、特定した物品(本)24の近傍に他の物品(本)24が存在しない場合についての発話内容に使用する単語の選択方法につい説明する。
【0103】
特定した物品(本)24の近傍に他の物品(本)24が存在しない場合には、特定した物品(本)24のすべての属性が取得される。特定した物品(本)24の近傍に他の物品(本)24が存在しない場合には、基本的には、属性のうち、種類、色および厚みの文字列のいずれを用いても、当該特定の物品(本)24を確認することができるからである。
【0104】
ただし、人間16の近傍に他の物品(本)24が存在する場合には、当該他の物品(本)24の属性の文字列とのレーベンシュタイン距離の和が最大となる属性の単語を発話内容に使用する単語として選択(決定)する。ここでは、他の物品との間で、属性の種類、色、厚みのそれぞれについてレーベンシュタイン距離LDを算出し、種類、色、厚みについてのレーベンシュタイン距離LDの和を算出する。そして、最も和の大きい単語(種類、色、厚みについての単語)を、発話内容に使用する単語として選択する。
【0105】
なお、レーベンシュタイン距離LDを求める方法は、図8(A)および(B)を用いて説明したとおりであり、重複した説明は省略する。
【0106】
図9は図4に示したメモリ204(RAM)のメモリマップ500の一例を示す図解図である。図9に示すように、RAMは、プログラム記憶領域502およびデータ記憶領域504を含む。
【0107】
プログラム領域502には、サーバ20の全体制御を実行するための情報処理プログラムが記憶され、この情報処理プログラムは、動作制御プログラム502a、音声認識プログラム502bおよび発話内容生成プログラム502cなどによって構成される。これらのプログラムは、一度に全部または必要に応じて部分的に、HDDから読み出され、RAMのプログラム記憶領域502に記憶される。ただし、プログラムは、図示しないROMに記憶しておき、そこから読み出してもよい。
【0108】
動作制御プログラム502aは、ロボット12の指差し動作をなどの身体動作についての制御情報を算出し、ロボット12に指示するためのプログラムである。音声認識プログラム502bは、ロボット12から送信される音声信号に対応する音声を認識するためのプログラムである。発話内容生成プログラム502cは、確認行動における発話内容を生成するためのプログラムである。
【0109】
図示は省略するが、プログラム記憶領域502には、人間の視線方向を検出するためのプログラムなどの他のプログラムも記憶される。
【0110】
また、データ記憶領域504には、物品ローカル辞書データ504a、音声認識ローカル辞書データ504b、発話辞書データ504cおよび個人正誤情報データ504dなどが記憶される。さらに、データ記憶領域504には、辞書登録フラグ504eが設けられる。
【0111】
物品ローカル辞書データ504aは、物品辞書DB122に記憶されたオリジナルの物品辞書(グローバル辞書)から、ロボット12から送信されたユーザIDで特定される人間16を中心として所定の範囲内に存在する物品(本)24のレコードを抽出した一部の物品辞書のデータである。音声認識ローカル辞書データ504bは、音声認識辞書DB126に記憶されたオリジナルの音声認識辞書(グローバル辞書)から、物品ローカル辞書データ504aに対応する一部の物品辞書に登録された物品等を認識するために抽出した一部の音声認識辞書のデータである。
【0112】
発話辞書データ504cは、サーバ20がロボット12に、人間16に対して発話させる音声の内容すなわち発話内容を生成するために必要な情報についてのデータである。
【0113】
この実施例では、物品の属性として、種類、色および厚みを含むようにしてあるため、発話内容は、次のような定型の文章で決定されている。たとえば、色と種類についての単語を使用する場合には、「○○の△△ですか?」という発話内容に決定されている。ただし、「○○」のところには、特定した物品Xの属性に記述された色(赤色、青色、黄色、茶色、白色、黒色など)についての単語が入り、「△△」のところには、特定した物品Xの属性に記述された種類(漫画、小説、雑誌など)の単語が入る。以下、同じ。
【0114】
また、厚みと種類についての単語が使用される場合には、「××△△ですか?」という発話内容に決定されている。ただし、「××」のところには、特定した物品Xの属性に記述された厚み(厚い、薄い)の単語が入る。以下、同じ。
【0115】
さらに、色と厚みについての単語が使用される場合には、「○○の××本ですか?」という発話内容に決定されている。ただし、この実施例では、物品として本24を用いてを説明してあるため、「本」を発話するようにしてあるが、他の物品を用いる場合には、その普通名詞が用いられる。
【0116】
個人正誤情報データ504dは、ユーザIDに対応して音声認識の成功率が記述されたテーブルについてのデータである。たとえば、音声認識の正誤は、コミュニケーションの回数(累計)における音声認識を成功した回数(特定した物品(本)24が正しかった回数)の割合(パーセンテージ)で表される。
【0117】
辞書登録フラグ504eは、確認行動における発話で使用することが決定され、物品Xを指示するための1つの属性についての単語と物品Xの普通名詞についての単語とで構成される語または複数の属性についての単語で構成される語(以下、これらを「特定語」という。)を音声認識辞書に登録するか否かを判断するためのフラグである。辞書登録フラグ504eは、1ビットのレジスタで構成されて、当該フラグがオンであれば、レジスタにデータ値「1」が設定され、当該フラグがオフであれば、レジスタにデータ値「0」が設定される。ただし、特定語を音声認識辞書に登録する場合に、辞書登録フラグ504eはオンされ、それを音声認識辞書に登録しない場合には、辞書登録フラグ504eはオフされる。
【0118】
たとえば、確認行動の発話において、物品Xの種類(ここでは、“漫画”)と色(ここでは、“赤”)の単語が使用される場合には、特定語として“赤色の漫画”が登録される。同様に、物品Xの種類と厚み(ここでは“厚い”)の単語が使用される場合には、特定語として“厚い漫画”が登録される。また、確認行動の発話において、物品Xの色と厚みの単語が使用される場合には、さらに物品Xの普通名詞の単語が用いられ、特定語として“赤色の厚い本”が登録される。説明は省略するが、他の種類、色および厚みの単語が使用される場合についても同様である。
【0119】
なお、図示は省略するが、データ記憶領域504には、情報処理プログラムの実行に必要な他のデータが記憶され、必要に応じて、カウンタ(タイマ)や他のフラグ等も設けられる。
【0120】
図10は、図4に示したCPU200の確認行動決定処理のフロー図である。図10に示すように、CPU200は、確認行動決定処理を開始すると、ステップS1で、ロボット12の位置と、特定した物品Xの位置とから指差し動作を生成する。
【0121】
次のステップS3では、初対面のユーザであるかどうかを判断する。ここでは、CPU200は、ロボット12が認識した人間16とコミュニケーションをとるのがはじめてであるか否か、つまり、当該人間16の指示する物品(本)24を特定するのがはじめてであるか否かを判断する。具体的には、CPU200は、ロボット12から送信されたユーザIDが、個人正誤情報データ504dに登録されているかどうかを判断する。
【0122】
ステップS3で“YES”であれば、つまり初対面のユーザであれば、ステップS5で、確認行動の発話内容に含む(発話に使用する)単語を、特定した物品Xの名称に決定して、ステップS13に進む。一方、ステップS3で“NO”であれば、つまり初対面のユーザでなければ、ステップS7で、当該ユーザについての音声認識の成功率が70%以上であるかどうかを判断する。ただし、CPU200は、個人正誤情報データ504dを参照して、ロボット12から送信されたユーザIDに対応して記述された成功率を取得する。
【0123】
なお、ステップS7では、音声認識の成功率が高いか低いかを判断する閾値として70%を設定してあるが、これに限定される必要はなく、閾値はこのシステム10を適用する環境や使用形態等によって自由に変更することができる。
【0124】
ステップS7で“NO”であれば、つまり音声認識の成功率が70%未満であれば、ステップS5に進む。一方、ステップS7で“YES”であれば、つまり音声認識の成功率が70%以上であれば、ステップS9で、後述する単語選択処理(図11参照)を実行する。そして、ステップS11で、辞書登録フラグ504eをオンして、ステップS13に進む。図示および説明は省略したが、CPU200は、確認行動決定処理を開始したときに、辞書登録フラグ504eをオフする。
【0125】
ステップS13では、発話内容を生成する。ここでは、CPU200は、発話辞書データ504cを参照して、確認行動における発話内容を生成する。このとき、ステップS5で選択された物品Xの名称を示す単語またはステップS9で選択された属性についての単語が用いられる。
【0126】
次のステップS15では、辞書登録フラグ504eがオンであるかどうかを判断する。ステップS15で“NO”であれば、つまり辞書登録フラグ504eがオフであれば、そのままステップS19に進む。一方、ステップS15で“YES”であれば、つまり辞書登録フラグ504eがオンであれば、ステップS17で、生成された発話内容に含まれる特定語を、物品Xに対応して当該ユーザIDとともに音声認識DB126内の音声認識辞書データに記憶(登録ないし追加)して、ステップS19に進む。
【0127】
したがって、これ以降に、当該ユーザIDで特定されるユーザが当該物品Xを指示する場合に特定語を用いると、当該特定語を音声認識することにより、対応する当該物品Xを特定することができる。したがって、円滑なコミュニケーションを図ることができる。このような結果をもたらすのは、上述したように、ロボット12が発声した内容を人間が真似する傾向があるためである。
【0128】
ステップS19では、ステップS1で生成した指差し動作と、ステップS13で決定した発話内容とをロボット12に送信して、確認行動決定処理を終了する。これに応じて、ロボット12では、サーバ20から指示された指差し動作を実行するとともに、サーバ20から指示された発話内容を発話(音声出力)する。つまり、ロボット12は、特定した物品Xについての確認行動を実行する。そして、図示は省略するが、その後のロボット12へのユーザの返答(“はい”または“いいえ”)に応じて、サーバ20は、この返答の内容を音声認識することにより、個人正誤情報データ504dを更新する。
【0129】
なお、このような確認決定処理は、ロボット12からの要求がある場合に実行され、ロボット12からの要求が無い場合には、待機状態となっている。
【0130】
図11は、図10のステップS9に示した単語選択処理のフロー図である。図11に示すように、CPU200は、単語選択処理を開始すると、ステップS31で、特定した物品Xの近傍に他の物品が在るかどうかを判断する。ここでは、CPU200は、物品Xに装着された無線タグ18から発信された電波を受信したアンテナ124と同じアンテナ124によって電波を受信された物品24が在るかどうかを判断する。
【0131】
ステップS31で“YES”であれば、つまり物品Xの近傍に他の物品24が在る場合には、ステップS33で、後述する物品Xの属性組を生成する処理(図12参照)を実行し、ステップS35で、後述する物品Xの近傍にある他の物品の属性組を生成する処理(図13参照)を実行する。続いて、ステップS37で、後述する物品Xの属性組を低減する処理(図14参照)を実行し、ステップS39で、物品Xの属性組から単語数が最小の属性組を抽出する。そして、ステップS41で、後述する単語選択(1)処理(図15参照)を実行して、確認行動決定処理にリターンする。
【0132】
また、ステップS31で“NO”であれば、つまり物品Xの近傍に他の物品24が無い場合には、ステップS43で、後述する物品Xの呼び名の候補を決定する処理(図16参照)を実行する。次のステップS45では、ユーザ16の近傍に他の物品24が在るかどうかを判断する。ここでは、CPU200は、特定されたユーザIDが示すユーザ16に装着された無線タグ18から発信された電波を受信したアンテナ124と同じアンテナ124によって電波を受信された物品24が在るかどうかを判断する。
【0133】
ステップS45で“NO”であれば、つまりユーザの近傍に他の物品24が無ければ、ステップS53で、候補の呼び名から1つの単語を所定のルールで選択して、確認行動決定処理にリターンする。たとえば、CPU200は、ステップS53では、呼び名の候補から1の単語をランダムに選択したり、予めシステム10ないしサーバ20の管理者等が決定した1の属性についての単語を選択したりする。
【0134】
一方、ステップS45で“YES”であれば、つまりユーザの近傍に他の物品24が在れば、ステップS47で、物品ローカル辞書データ504aを参照して、近傍の他の物品24の属性を検索する。ここでは、CPU200は、他の物品24の物品IDを検索する。続くステップS49では、検索した物品IDに対応して記載されたレコードから、当該他の物品24の属性を取得する。以下、物品24の属性を検索したり、属性を取得したりする場合について同様である。そして、ステップS51で、後述する単語選択(2)処理(図17参照)を実行して、確認行動決定処理にリターンする。
【0135】
図12に示すように、CPU200は、図11のステップS33に示した物品Xの属性組を生成する処理を開始すると、ステップS61で、物品Xの属性を検索する。続くステップS63では、物品Xの属性を取得する。
【0136】
続いて、ステップS65では、属性のべき集合を計算する。ここでは、上述したように、物品Xの属性Fcについてのべき集合Power(Fc)が計算される。そして、ステップS67で、べき集合Power(Fc)を物品Xの属性組として生成して、単語選択処理にリターンする。
【0137】
図13に示すように、CPU200は、図11のステップS35に示した近傍の他の物品の属性組を生成する処理を開始すると、ステップS71で、他の物品K(Kは他の物品を識別するための自然数である。以下、同じ。)の属性を検索し、ステップS73で、他の物品Kの属性を取得する。次のステップS75では、属性のべき集合Power(FK)を計算する。そして、ステップS77で、べき集合Power(FK)を他の物品Kの属性組として生成し、単語選択処理にリターンする。
【0138】
なお、図13に示す近傍の他の物品の属性組の生成処理は、他の物品毎に実行される。
【0139】
図14に示すように、CPU200は、図11のステップS37に示した物品Xの属性組を低減する処理を開始すると、ステップS81で、物品Xの属性組のべき集合Power(Fc)と、他の物品Kの属性組のべき集合Power(K)の共通要素を抽出する。ただし、他の物品Kが複数存在する場合には、他の物品K毎に共通要素が抽出される。次のステップS83では、物品Xの属性組から共通要素を削除して、単語選択処理にリターンする。
【0140】
図15に示すように、CPU200は、図11に示すステップS41に示した単語選択(1)処理を開始すると、物品Xの属性組の文字列と、他の物品Kの属性組の文字列のレーベンシュタイン距離LDの和を算出する。次のステップS91では、レーベンシュタイン距離LDの和が最大となる属性組を確認行動で使用する単語として選択して、単語選択処理にリターンする。
【0141】
なお、物品Xの属性組の低減処理の結果、物品Xの属性組が一組しか残っていない場合には、単語選択(1)処理を実行するまでもなく、当該一組の属性組が確認行動で使用する単語として選択される。
【0142】
図16に示すように、CPU200は、図11に示すステップS43に示した物品Xの呼び名の候補を生成する処理を開始すると、ステップS101で、物品Xの属性を検索する。次のステップS103では、物品Xの属性(この実施例では、種類、色、厚みについての単語)を取得する。そして、ステップS105で、各属性を確認行動で使用する単語の候補として決定し、単語選択処理にリターンする。
【0143】
図17に示すように、CPU200は、図11に示すステップS51に示した単語選択(2)処理を開始すると、ステップS111で、候補の属性の文字列と、ユーザの位置近傍の他の物品毎の属性の文字列のレーベンシュタイン距離LDの和を計算する。ただし、他の物品X毎に、種類、色および厚みのそれぞれについてのレーベンシュタイン距離LDが求められ、その和が計算される。そして、ステップS113では、レーベンシュタイン距離LDの和が最大となる属性(種類、色または厚み)を確認行動で使用する単語として選択し、単語選択処理にリターンする。
【0144】
この実施例によれば、特定した物品の近傍に存在する他の物品とは異なる属性組を抽出し、さらに、他の物品の属性組とレーベンシュタイン距離が最大の属性組を確認行動で使用する単語として選択するので、予め音声認識率を検出する必要が無く、確認行動で使用する単語を簡単に決定することができる。したがって、確認行動における発話内容を簡単に生成することができる。
【0145】
また、この実施例によれば、抽出された属性組のうち、単語数が最小となる属性組を抽出するので、人間にとって真似し易い言葉を発話内容に含めることができる。
【0146】
さらに、この実施例によれば、他の物品とは異なる属性組を発話内容に含めるとともに、当該属性組で決定される言葉(特定語)を、音声認識辞書にユーザに対応して追加的に登録するので、それ以降において、特定語が使用されたとしても、音声認識により特定語が指示する物品を特定することができる。したがって、当該ユーザとのコミュニケーションを円滑に行うことができる。
【0147】
なお、この実施例では、サーバが音声認識処理および確認行動決定処理を実行するようにしたが、これらの処理をロボットで実行するようにしてもよい。かかる場合には、音声認識辞書データ(音声認識ローカル辞書データ)、物品辞書データ(物品ローカル辞書データ)、発話辞書データおよび個人正誤情報データをロボット内部のメモリやロボットがアクセス可能な外部メモリに記憶する必要がある。
【符号の説明】
【0148】
10 …コミュニケーションシステム
12 …コミュニケーションロボット
14 …ネットワーク
18 …無線タグ
20 …サーバ
24 …物品(本)
80 …CPU
120 …カメラ
124 …アンテナ
200 …CPU
208 …無線タグ読取装置

【特許請求の範囲】
【請求項1】
音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認するコミュニケーションシステムであって、
物品の名称および当該物品に関連する複数の単語を記憶する記憶手段、
前記特定した物品に関連する複数の単語を前記記憶手段から読み出し、読み出した単語について第1べき集合を作成する第1作成手段、
前記特定した物品の近傍に存在する他の物品に関する複数の単語を前記記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成する第2作成手段、
前記第1作成手段によって作成された第1べき集合と、前記第2作成手段によって作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除する削除手段、
前記削除手段によって削除した結果、前記第1べき集合に含まれる要素のうち、単語数が最小である要素を選択する第1選択手段、
前記第1選択手段によって選択された要素のうち、前記他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択する第2選択手段、および
前記第2選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する発話内容生成手段を備える、コミュニケーションシステム。
【請求項2】
前記第1選択手段によって選択された要素に含まれる第1単語の文字列と、前記他の物品に関連する複数の第2単語の文字列のそれぞれとのレーベンシュタイン距離を算出する算出手段をさらに備え、
前記第2選択手段は、前記算出手段によって算出されたレーベンシュタイン距離が最大となる第1単語を含む要素を選択する、請求項1記載のコミュニケーションシステム。
【請求項3】
前記特定した物品の近傍に前記他の物品が存在するかどうかを判断する第1判断手段、
前記第1判断手段によって前記特定した物品の近傍に前記他の物品が存在しないと判断されたとき、当該特定した物品に関連する複数の単語のそれぞれを発話内容に含める候補として決定する候補決定手段、および
前記候補決定手段によって決定された単語のうち、前記人間の近傍に存在する他の物品に関連する複数の単語の文字列との非類似度が最も高い単語を選択する第3選択手段をさらに備え、
前記発話内容生成手段は、前記第3選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する、請求項1または2記載のコミュニケーションシステム。
【請求項4】
前記第1判断手段によって前記特定した物品の近傍に前記他の物品が存在しないと判断されたとき、前記人間の近傍に他の物品が存在するかどうかを判断する第2判断手段、および
前記第2判断手段によって前記人間の近傍に他の物品が存在しないことが判断されたとき、前記候補決定手段によって決定された候補のうちから1つの単語を所定のルールに従って選択する第4選択手段をさらに備え、
前記発話内容生成手段は、前記第4選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する、請求項3記載のコミュニケーションシステム。
【請求項5】
音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認するコミュニケーションシステムに用いられ、音声にて確認する場合の発話内容を生成する発話内容生成装置であって、
物品の名称および当該物品に関連する複数の単語を記憶する記憶手段、
前記特定した物品に関連する複数の単語を前記記憶手段から読み出し、読み出した単語について第1べき集合を作成する第1作成手段、
前記特定した物品の近傍に存在する他の物品に関する複数の単語を前記記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成する第2作成手段、
前記第1作成手段によって作成された第1べき集合と、前記第2作成手段によって作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除する削除手段、
前記削除手段によって削除した結果、前記第1べき集合に含まれる要素のうち、単語数が最小である要素を選択する第1選択手段、
前記第1選択手段によって選択された要素のうち、前記他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択する第2選択手段、および
前記第2選択手段によって選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する発話内容生成手段を備える、発話内容生成装置。
【請求項6】
音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認するコミュニケーションシステムに用いられ、物品の名称および当該物品に関連する複数の単語を記憶する記憶手段を備え、音声にて確認する場合の発話内容を生成する発話内容生成装置の発話内容生成プログラムであって、
前記発話内容生成装置のプロセッサに、
前記特定した物品に関連する複数の単語を前記記憶手段から読み出し、読み出した単語について第1べき集合を作成する第1作成ステップ、
前記特定した物品の近傍に存在する他の物品に関する複数の単語を前記記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成する第2作成ステップ、
前記第1作成ステップにおいて作成された第1べき集合と、前記第2作成ステップにおいて作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除する削除ステップ、
前記削除ステップにおいて削除した結果、前記第1べき集合に含まれる要素のうち、単語数が最小である要素を選択する第1選択ステップ、
前記第1選択ステップにおいて選択された要素のうち、前記他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択する第2選択ステップ、および
前記第2選択ステップにおいて選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する発話内容生成ステップを実行させる、発話内容生成プログラム。
【請求項7】
音声認識によって人間が指示する物品を特定し、当該特定した物品が当該人間の指示したものであるかを音声にて確認するコミュニケーションシステムに用いられ、物品の名称および当該物品に関連する複数の単語を記憶する記憶手段を備え、音声にて確認する場合の発話内容を生成する発話内容生成装置の発話内容生成方法であって、
前記発話内容生成装置のプロセッサは、
(a)前記特定した物品に関連する複数の単語を前記記憶手段から読み出し、読み出した単語について第1べき集合を作成し、
(b)前記特定した物品の近傍に存在する他の物品に関する複数の単語を前記記憶手段から読み出し、読み出した単語についての第2べき集合を、当該他の物品毎に作成し、
(c)前記ステップ(a)において作成された第1べき集合と、前記ステップ(b)において作成された第2べき集合のそれぞれとの間で共通する要素を、当該第1べき集合から削除し、
(d)前記ステップ(c)において削除した結果、前記第1べき集合に含まれる要素のうち、単語数が最小である要素を選択し、
(e)前記ステップ(d)において選択された要素のうち、前記他の物品に関連する複数の単語の文字列との非類似度が最も高い要素を選択し、そして
(f)前記ステップ(e)において選択された要素に含まれる単語を含めて、音声にて確認する際の発話内容を生成する、発話内容生成方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate


【公開番号】特開2013−114107(P2013−114107A)
【公開日】平成25年6月10日(2013.6.10)
【国際特許分類】
【出願番号】特願2011−261245(P2011−261245)
【出願日】平成23年11月30日(2011.11.30)
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成23年4月1日付け、支出負担行為担当官 総務省大臣官房会計課企画官、研究テーマ「ライフサポート型ロボット技術に関する研究開発」に関する委託研究、産業技術力強化法第19条の適用を受ける特許出願
【出願人】(393031586)株式会社国際電気通信基礎技術研究所 (905)
【Fターム(参考)】