(57)【要約】【課題】大きなノイズが混入した音声の音声認識結果を除去する。【解決手段】音声認識部１２１は、マイクロフォン８２により集音された音声を音声認識して生成した単語列を、認識結果除去フィルタ１０３に供給する。ノイズ予測部１０２は、角速度センサ７７から供給されたアクチュエータの角速度、並びに頭部スイッチ５１および足底スイッチ７６オン・オフの信号に基づいて、ロボット１自身の動作により発生されるであろうノイズの大きさ（以下、ノイズ予測値）を求め、認識結果除去フィルタ１０３に供給する。認識結果除去フィルタ１０３は、ノイズ予測値に基づいて、音声認識部１２１から供給された単語列から、大きなノイズが所定の時間以上混入していると予測される単語列を除去する。本発明は、ロボットに適用できる。【選択図】      図６
2004258289.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を制御するロボット制御装置において、
機械的動作を実行する動作実行手段と、
前記動作実行手段により実行された前記機械的動作に関する物理量を取得する取得手段と、
前記取得手段により取得された前記物理量に基づいて、前記機械的動作によって発生されるノイズの予測値を算出する算出手段と、
音声を認識する音声認識手段と、
前記算出手段により算出された前記予測値に基づいて、前記音声認識手段により認識され、生成された単語列から、利用しない単語列を除去する除去手段と
を備えることを特徴とするロボット制御装置。
【請求項２】
前記動作実行手段は、アクチュエータを含み、前記物理量は前記アクチュエータの角速度または速度を含む
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記取得手段は、前記ロボットに設置されたスイッチのオン・オフを示す情報を前記物理量としてさらに取得する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項４】
前記音声認識手段は、前記算出手段により算出された前記予測値に基づいて、認識する前記音声を選択する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項５】
前記除去手段は、前記単語列に対応する音声の発声時間に占める、前記予測値が所定の閾値以上である時間の割合が、予め設定された所定の基準値以上であった場合、前記単語列を除去する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項６】
前記音声認識手段は、異なる言語モデルに基づく複数の認識処理を並列に実行し、
前記除去手段は、複数の前記認識処理のそれぞれの前記閾値を異なる値に設定する
ことを特徴とする請求項５に記載のロボット制御装置。
【請求項７】
前記機械的動作のうちパターン化された定型動作が実行される場合において、認識結果を除去すべき認識結果除去区間を予め記憶する記憶手段をさらに備え、
前記動作実行手段により前記定型動作が実行される場合、
前記算出手段は、前記予測値の算出を中止し、
前記除去手段は、前記記憶手段により記憶された前記認識結果除去区間に基づいて、前記音声認識手段により生成された前記単語列から、利用しない前記単語列を除去する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項８】
ロボットの動作を制御するロボット制御装置のロボット制御方法において、
機械的動作を実行する動作実行ステップと、
前記動作実行ステップの処理により実行された前記機械的動作に関する物理量を取得する取得ステップと、
前記取得ステップの処理により取得された前記物理量に基づいて、前記機械的動作によって発生されるノイズの予測値を算出する算出ステップと、
音声を認識する音声認識ステップと、
前記算出ステップの処理により算出された前記予測値に基づいて、前記音声認識ステップの処理により認識され、生成された単語列から、利用しない単語列を除去する除去ステップと
を含むことを特徴とするロボット制御方法。
【請求項９】
ロボットの動作を制御する処理をコンピュータに実行させるプログラムであって、
機械的動作を実行する動作実行ステップと、
前記動作実行ステップの処理により実行された前記機械的動作に関する物理量を取得する取得ステップと、
前記取得ステップの処理により取得された前記物理量に基づいて、前記機械的動作によって発生されるノイズの予測値を算出する算出ステップと、
音声を認識する音声認識ステップと、
前記算出ステップの処理により算出された前記予測値に基づいて、前記音声認識ステップの処理により認識され、生成された単語列から、利用しない単語列を除去する除去ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１０】
ロボットの動作を制御するコンピュータに、
機械的動作を実行する動作実行ステップと、
前記動作実行ステップの処理により実行された前記機械的動作に関する物理量を取得する取得ステップと、
前記取得ステップの処理により取得された前記物理量に基づいて、前記機械的動作によって発生されるノイズの予測値を算出する算出ステップと、
音声を認識する音声認識ステップと、
前記算出ステップの処理により算出された前記予測値に基づいて、前記音声認識ステップの処理により認識され、生成された単語列から、利用しない単語列を除去する除去ステップと
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボット制御装置および方法、記録媒体、並びにプログラムに関し、特に、音声認識、および、駆動が可能なロボットを制御する場合に用いて好適な、ロボット制御装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
近年、ユーザが発した音声を音声認識し、その音声認識結果に基づいて、機械的動作をしたり、合成音を出力する等の行動を行うロボット（本明細書においては、人型２足歩行ロボットを含む）が製品化され、また、より人間らしい行動をするロボットの研究開発が進んでいる。
【０００３】
ユーザにより発せられた音声を音声認識し、この音声認識結果に基づいて行動を行なう対話システムにおいては、ロボットが動作する際に発生するモータ音などのノイズの影響で、ユーザが発話した内容を、誤って音声認識してしまうことがある。
【０００４】
この問題を解決するものとして、例えば、ロボットに複数装着されたマイクロフォンにより、ロボットの周囲の環境音（ロボット自身が発生するノイズを含む）を取得し、この環境音に基づいて、ユーザにより発話された音声とノイズを分離するようにしたものがある（例えば、特許文献１参照）。
【０００５】
また、マイクロフォンの近傍のアクチュエータが稼動した場合、音声認識を中止するようにしたものもある（例えば、特許文献２参照）。
【０００６】
【特許文献１】
特開２００１−２１５９８９号公報
【特許文献２】
特開２００２−１１６７９４号公報
【０００７】
【発明が解決しようとする課題】
しかしながら、特許文献１に記載された方法の場合、ユーザにより発話された音声をノイズから正確に分離するのが困難であるという課題があった。
【０００８】
また、特許文献２に記載された方法の場合、ノイズの発生の有無を、マイクロフォンの近傍のアクチュエータが駆動したか否かという情報だけで判断するため、そのアクチュエータが動作することが、音声認識に重大な影響を与えるか否かを適切に判断することが難しいという課題があった。例えば、アクチュエータが発生するノイズが、音声認識に駅用を与えないほど小さくても、音声認識を中止してしまうことがあった。また、マイクロフォンから遠い位置に設置されたアクチュエータが、大きなノイズを発生する場合、そのアクチュエータを駆動した場合でも、音声認識に重大な影響を与えるが、これが考慮されていないという課題があった。さらに、複数のアクチュエータが同時に駆動した場合、たとえ駆動したアクチュエータが、マイクロフォンの近傍になくても、音声認識に重大な影響を与える可能性があるが、このような状況が考慮されていないという課題があった。
【０００９】
従って、特許文献１や特許文献２に記載された方法を採用した場合、ロボットは、ユーザの発言内容を誤って音声認識し、その認識結果に基づいて、ユーザが意図していない、誤った行動をしてしまう可能性があった。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、誤った音声認識結果である可能性が高い音声認識結果を適切に除去することができるようにするものである。
【００１１】
【課題を解決するための手段】
本発明のロボット制御装置は、機械的動作を実行する動作実行手段と、動作実行手段により実行された機械的動作に関する物理量を取得する取得手段と、取得手段により取得された物理量に基づいて、機械的動作によって発生されるノイズの予測値を算出する算出手段と、音声を認識する音声認識手段と、算出手段により算出された予測値に基づいて、音声認識手段により認識され、生成された単語列から、利用しない単語列を除去する除去手段とを備えることを特徴とする。
【００１２】
前記動作実行手段には、アクチュエータを含むようにさせ、前記物理量は前記アクチュエータの角速度または速度を含むようにすることができる。
【００１３】
前記取得手段には、前記ロボットに設置されたスイッチのオン・オフを示す情報を前記物理量としてさらに取得するようにさせることができる。
【００１４】
前記音声認識手段には、前記算出手段により算出された前記予測値に基づいて、認識する前記音声を選択するようにさせることができる。
【００１５】
前記除去手段には、前記単語列に対応する音声の発声時間に占める、前記予測値が所定の閾値以上である時間の割合が、予め設定された所定の基準値以上であった場合、前記単語列を除去するようにさせることができる。
【００１６】
前記音声認識手段には、異なる言語モデルに基づく複数の認識処理を並列に実行するようにさせ、前記除去手段には、複数の前記認識処理のそれぞれの前記閾値を異なる値に設定するようにさせることができる。
【００１７】
前記機械的動作のうちパターン化された定型動作が実行される場合において、認識結果を除去すべき認識結果除去区間を予め記憶する記憶手段をさらに設けるようにし、前記動作実行手段により前記定型動作が実行される場合、前記算出手段には、前記予測値の算出を中止するようにさせ、前記除去手段には、記憶手段により記憶された認識結果除去区間に基づいて、前記音声認識手段により生成された前記単語列から、利用しない前記単語列を除去するようにさせることができる。
【００１８】
本発明のロボット制御方法は、機械的動作を実行する動作実行ステップと、動作実行ステップの処理により実行された機械的動作に関する物理量を取得する取得ステップと、取得ステップの処理により取得された物理量に基づいて、機械的動作によって発生されるノイズの予測値を算出する算出ステップと、音声を認識する音声認識ステップと、算出ステップの処理により算出された予測値に基づいて、音声認識ステップの処理により認識され、生成された単語列から、利用しない単語列を除去する除去ステップとを含むことを特徴とする。
【００１９】
本発明の記録媒体のプログラムは、機械的動作を実行する動作実行ステップと、動作実行ステップの処理により実行された機械的動作に関する物理量を取得する取得ステップと、取得ステップの処理により取得された物理量に基づいて、機械的動作によって発生されるノイズの予測値を算出する算出ステップと、音声を認識する音声認識ステップと、算出ステップの処理により算出された予測値に基づいて、音声認識ステップの処理により認識され、生成された単語列から、利用しない単語列を除去する除去ステップとを含むことを特徴とする。
【００２０】
本発明のプログラムは、ロボットの動作を制御するコンピュータに、機械的動作を実行する動作実行ステップと、動作実行ステップの処理により実行された機械的動作に関する物理量を取得する取得ステップと、取得ステップの処理により取得された物理量に基づいて、機械的動作によって発生されるノイズの予測値を算出する算出ステップと、音声を認識する音声認識ステップと、算出ステップの処理により算出された予測値に基づいて、音声認識ステップの処理により認識され、生成された単語列から、利用しない単語列を除去する除去ステップとを実行させることを特徴とする。
【００２１】
本発明のロボット制御装置および方法、記録媒体、並びにプログラムにおいては、機械的動作が実行され、実行された機械的動作に関する物理量が取得され、取得された物理量に基づいて、機械的動作によって発生されるノイズの予測値が算出され、音声が認識され、算出された予測値に基づいて、生成された単語列から、利用しない単語列が除去される。
【００２２】
本発明は、例えばロボットに適用することができる。
【００２３】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【００２４】
図１は、本発明を適用した２足歩行型のロボット１の正面方向の斜視図であり、図２は、ロボット１の背面方向からの斜視図である。また、図３は、ロボット１の軸構成について説明するための図である。
【００２５】
ロボット１は、胴体部ユニット１１、胴体部ユニット１１の上部に配設された頭部ユニット１２、胴体部ユニット１１の上部左右の所定位置に取り付けられた腕部ユニット１３Ａおよび腕部ユニット１３Ｂ、並びに胴体部ユニット１１の下部左右の所定位置に取り付けられた脚部ユニット１４Ａおよび脚部ユニット１４Ｂにより構成されている。腕部ユニット１３Ａおよび腕部ユニット１３Ｂは、同様の構成とされる。また、脚部ユニット１４Ａおよび脚部ユニット１４Ｂも、同様の構成とされる。頭部ユニット１２には、頭部スイッチ５１が設けられている。
【００２６】
胴体部ユニット１１は、体幹上部を形成するフレーム２１および体幹下部を形成する腰ベース２２が腰関節機構２３を介して連結することにより構成されている。胴体部ユニット１１は、体幹下部の腰ベース２２に固定された腰関節機構２３のアクチュエータＡ１、および、アクチュエータＡ２をそれぞれ駆動することによって、体幹上部を、図３に示す直交するロール軸２４およびピッチ軸２５の回りに、それぞれ独立に回転させることができるようになされている。
【００２７】
頭部ユニット１２は、フレーム２１の上端に固定された肩ベース２６の上面中央部に首関節機構２７を介して取り付けられており、首関節機構２７のアクチュエータＡ３、およびアクチュエータＡ４をそれぞれ駆動することによって、図３に示す直交するピッチ軸２８およびヨー軸２９の回りに、それぞれ独立に回転させることができるようになされている。
【００２８】
腕部ユニット１３Ａ、および腕部ユニット１３Ｂは、肩関節機構３０を介して肩ベース２６の左右にそれぞれ取り付けられており、対応する肩関節機構３０のアクチュエータＡ５、および、アクチュエータＡ６をそれぞれ駆動することによって、図３に示す、直交するピッチ軸３１およびロール軸３２の回りに、それぞれを独立に回転させることができるようになされている。
【００２９】
この場合、腕部ユニット１３Ａ、および腕部ユニット１３Ｂは、上腕部を形成するアクチュエータＡ７の出力軸に、肘関節機構４４を介して、前腕部を形成するアクチュエータＡ８が連結され、前腕部の先端に手部３４が取り付けられることにより構成されている。
【００３０】
そして腕部ユニット１３Ａ、および腕部ユニット１３Ｂでは、アクチュエータＡ７を駆動することによって、前腕部を図３に示すヨー軸３５に対して回転させることができ、アクチュエータＡ８を駆動することによって、前腕部を図３に示すピッチ軸３６に対して回転させることができるようになされている。
【００３１】
脚部ユニット１４Ａ、および、脚部ユニット１４Ｂは、股関節機構３７を介して、体幹下部の腰ベース２２にそれぞれ取り付けられており、対応する股関節機構３７のアクチュエータＡ９乃至Ａ１１をそれぞれ駆動することによって、図３に示す、互いに直交するヨー軸３８、ロール軸３９、およびピッチ軸４０に対して、それぞれ独立に回転させることができるようになされている。
【００３２】
脚部ユニット１４Ａ、および、脚部ユニット１４Ｂにおいては、大腿部を形成するフレーム４１の下端が、膝関節機構４２を介して、下腿部を形成するフレーム４３に連結されるとともに、フレーム４３の下端が、足首関節機構４４を介して、足部４５に連結されている。
【００３３】
これにより脚部ユニット１４Ａ、および、脚部ユニット１４Ｂにおいては、膝関節機構４２を形成するアクチュエータＡ１２を駆動することによって、図３に示すピッチ軸４６に対して、下腿部を回転させることができ、また足首関節機構４４のアクチュエータＡ１３、および、アクチュエータＡ１４をそれぞれ駆動することによって、図３に示す直交するピッチ軸４７およびロール軸４８に対して、足部４５をそれぞれ独立に回転させることができるようになされている。
【００３４】
脚部ユニット１４Ａ、および脚部ユニット１４Ｂの、足部４５の足底面（床と接する面）には、それぞれ足底スイッチ７６（図５）が配設されており、足底スイッチ７６のオン・オフに基づいて、足部４５が床に接地しているか否かが判別される。
【００３５】
また、胴体部ユニット１１の体幹下部を形成する腰ベース２２の背面側には、後述するメイン制御部６１や周辺回路６２（いずれも図４）などを内蔵したボックスである、制御ユニット５２が配設されている。
【００３６】
図４は、ロボット１のアクチュエータとその制御系等について説明する図である。
【００３７】
制御ユニット５２には、ロボット１全体の動作制御をつかさどるメイン制御部６１、電源回路および通信回路などの周辺回路６２、および、バッテリ７４（図５）などが収納されている。
【００３８】
そしてこの制御ユニット５２は、各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３Ａおよび腕部ユニット１３Ｂ、並びに、脚部ユニット１４Ａおよび脚部ユニット１４Ｂ）内にそれぞれ配設されたサブ制御部６３Ａ乃至６３Ｄと接続されており、サブ制御部６３Ａ乃至６３Ｄに対して必要な電源電圧を供給したり、サブ制御部６３Ａ乃至６３Ｄと通信を行う。
【００３９】
また、サブ制御部６３Ａ乃至６３Ｄは、対応する構成ユニット内のアクチュエータＡ１乃至Ａ１４と、それぞれ接続されており、メイン制御部６１から供給された各種制御コマンドに基づいて、構成ユニット内のアクチュエータＡ１乃至Ａ１４を、指定された状態に駆動させるように制御する。
【００４０】
アクチュエータＡ１乃至Ａ１４のそれぞれには、角速度センサ７７（図５）が内蔵されており、アクチュエータＡ１乃至Ａ１４の回転の角速度を検知し、角速度を情報として含む角速度検出信号をメイン制御部６１に送出する。従って、メイン制御部６１は、アクチュエータＡ１乃至Ａ１４のそれぞれから、リアルタイムで、角速度検出信号を受信する。
【００４１】
図５は、ロボット１の内部構成を示すブロック図である。
【００４２】
頭部ユニット１２には、このロボット１の「目」として機能するＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ  ）カメラ８１、「耳」として機能するマイクロホン８２、頭部スイッチ５１などからなる外部センサ部７１、および、「口」として機能するスピーカ７２となどがそれぞれ所定位置に配設され、制御ユニット５２内には、バッテリセンサ９１および加速度センサ９２などからなる内部センサ部７３が配設されている。また、脚部ユニット１４Ａ、および脚部ユニット１４Ｂの足部４５の足底面には、このロボット１の「体性感覚」の１つとして機能する足底スイッチ７６が配設されている。さらに、上記したように、アクチュエータＡ１乃至Ａ１４のそれぞれには、このロボット１の「体性感覚」の１つとして機能する角速度センサ７７が配設されている。
【００４３】
そして、外部センサ部７１のＣＣＤカメラ８１は、周囲の状況を撮像し、得られた画像信号Ｓ１Ａを、メイン制御部６１に送出する。マイクロホン８２は、ユーザから音声入力として与えられる「歩け」、「とまれ」または「右手を挙げろ」等の各種命令音声を集音し、得られた音声信号Ｓ１Ｂを、メイン制御部６１に送出する。
【００４４】
また、頭部スイッチ５１は、例えば、図１および図２に示されるように頭部ユニット１２の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、検出結果を、圧力検出信号Ｓ１Ｃとしてメイン制御部６１に送出する。
【００４５】
足底スイッチ７６は、足部４５の足底面に配設されており、足部４５が床に接地している場合、接地信号Ｓ１Ｄをメイン制御部６１に送出する。メイン制御部６１は、接地信号Ｓ１Ｄに基づいて、足部４５が床に接地しているか否かを判定する。足底スイッチ７６は、脚部ユニット１４Ａ、および脚部ユニット１４Ｂの両方の足部４５に配設されているため、メイン制御部６１は、接地信号Ｓ１Ｄに基づいて、ロボット１の両足が床に接地しているか、片足が床に接地しているか、両足とも床に接地していないかを判定することができる。
【００４６】
アクチュエータＡ１乃至Ａ１４それぞれに内蔵された角速度センサ７７は、アクチュエータＡ１乃至Ａ１４それぞれの角速度検出信号Ｓ１Ｅを、リアルタイムでメイン制御部６１に送出する。
【００４７】
内部センサ部７３のバッテリセンサ９１は、バッテリ７４のエネルギ残量を所定の周期で検出し、検出結果をバッテリ残量検出信号Ｓ２Ａとして、メイン制御部６１に送出する。加速度センサ９２は、ロボット１の移動について、３軸方向（ｘ軸、ｙ軸、およびｚ軸）の加速度を、所定の周期で検出し、検出結果を、加速度検出信号Ｓ２Ｂとして、メイン制御部６１に送出する。
【００４８】
メイン制御部６１は、外部センサ部７１のＣＣＤカメラ８１、マイクロホン８２および頭部スイッチ５１からそれぞれ供給される、画像信号Ｓ１Ａ、音声信号Ｓ１Ｂおよび圧力検出信号Ｓ１Ｃ、並びに足底スイッチ７６および角速度センサ７７からそれぞれ供給される接地信号Ｓ１Ｄ、および角速度検出信号Ｓ１Ｅ（以下、これらをまとめて外部センサ信号Ｓ１と称する）と、内部センサ部７３のバッテリセンサ９１および加速度センサ９２等からそれぞれ供給される、バッテリ残量検出信号Ｓ２Ａおよび加速度検出信号Ｓ２Ｂ（以下、これらをまとめて内部センサ信号Ｓ２と称する）に基づいて、ロボット１の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無などを判断する。
【００４９】
そして、メイン制御部６１は、ロボット１の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無の判断結果と、内部メモリ６１Ａに予め格納されている制御プログラム、あるいは、そのとき装填されている外部メモリ７５に格納されている各種制御パラメータなどに基づいて、ロボット１の行動を決定し、決定結果に基づく制御コマンドＣＯＭを生成して、対応するサブ制御部６３Ａ乃至６３Ｄに送出する。サブ制御部６３Ａ乃至６３Ｄは、供給された制御コマンドＣＯＭに基づいて、アクチュエータＡ１乃至Ａ１４のうち、対応するものの駆動を制御するので、ロボット１は、例えば、頭部ユニット１２を上下左右に揺動させたり、腕部ユニット１３Ａ、あるいは、腕部ユニット１３Ｂを上に挙げたり、脚部ユニット１４Ａおよび脚部ユニット１４Ｂを交互に駆動させて、歩行するなどの機械的動作を行うことが可能となる。
【００５０】
また、メイン制御部６１は、必要に応じて、所定の音声信号Ｓ３をスピーカ７２に与えることにより、音声信号Ｓ３に基づく音声を外部に出力させる。更に、メイン制御部６１は、外見上の「目」として機能する、頭部ユニット１２の所定位置に設けられた、図示しないＬＥＤに対して駆動信号を出力することにより、ＬＥＤを点滅させる。
【００５１】
このようにして、ロボット１は、周囲および内部の状況や、ユーザからの指令および働きかけの有無などに基づいて、自律的に行動することができるようになされている。
【００５２】
次に、図６は、図５のメイン制御部６１の機能的構成例を示している。なお、図６に示す機能的構成は、メイン制御部６１が、メモリ６１Ａに記憶された制御プログラムを実行することで実現されるようになっている。
【００５３】
メイン制御部６１は、特定の外部状態を認識するセンサ入力処理部１０１、頭部スイッチ５１、足底スイッチ７６、および角速度センサ７７からそれぞれ供給される圧力検出信号Ｓ１Ｃ、接地信号Ｓ１Ｄ、および角速度信号Ｓ１Ｅに基づいて、ノイズ（雑音）の大きさの予測値（以下、ノイズ予測値と称する）を算出するノイズ予測部１０２、音声認識して生成された単語列から、所定の大きさ以上の雑音下で集音された音声に対応する単語列を除去する認識結果除去フィルタ１０３、複数の認識結果から１つを選択する認識結果評価部１０４、センサ入力処理部１０１の認識結果を累積して、ロボット１の感情、本能、あるいは、成長の状態などのモデルを記憶するモデル記憶部１０６、音声認識結果と行動内容のテーブルを記憶するテーブル記憶部１０７、センサ入力処理部１０１の認識結果や、テーブル記憶部１０７に記憶されているテーブル等に基づいて、ロボット１の行動を決定し、ロボット１に行動を起こさせる行動制御部１０５、並びに合成音を生成する音声合成部１０８から構成されている。
【００５４】
センサ入力処理部１０１は、マイクロホン８２、角速度センサ７７、加速度センサ９２、頭部スイッチ５１、足底スイッチ７６、およびＣＣＤカメラ８１等から与えられる音声信号、角速度検出信号、加速度検出信号、圧力検出信号、接地信号、および画像信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部１０６および行動制御部１０５に通知する。
【００５５】
すなわち、センサ入力処理部１０１は、音声認識部１２１を有しており、音声認識部１２１は、マイクロホン８２から与えられる音声信号について音声認識を行う。そして、音声認識部１２１は、例えば、「歩け」、「止まれ」、「右手を挙げろ」等の指令、その他の音声認識結果としての単語列を、認識結果除去フィルタ１０３に供給する。
【００５６】
また、センサ入力処理部１０１は、姿勢処理部１２２を有しており、姿勢処理部１２２は、加速度センサ９２、角速度センサ７７、および足底スイッチ７６から供給される加速度検出信号、角速度検出信号、および接地信号に基づいて、ロボット１がとっている姿勢や動作状態を推定し、この推定結果を、状態認識情報として、モデル記憶部１０６および行動制御部１０５に通知する。
【００５７】
また、センサ入力処理部１０１は、圧力処理部１２３を有しており、圧力処理部１２３は、頭部スイッチ５１から与えられる圧力検出信号を処理する。そして、圧力処理部１２３は、その処理の結果、所定の閾値以上で、かつ短時間の圧力を検出したときには、「叩かれた（しかられた）」と認識し、所定の閾値未満で、かつ長時間の圧力を検出したときには、「撫でられた（ほめられた）」と認識して、その認識結果を、状態認識情報として、モデル記憶部１０６および行動制御部１０５に通知する。
【００５８】
更に、センサ入力処理部１０１は、画像認識部１２４を有しており、画像認識部１２４は、ＣＣＤカメラ８１から与えられる画像信号を用いて、画像認識処理を行う。そして、画像認識部１２４は、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」等の画像認識結果を、状態認識情報として、モデル記憶部１０６および行動制御部１０５に通知する。
【００５９】
モデル記憶部１０６は、ロボット１の感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶、管理している。
【００６０】
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態（度合い）を、所定の範囲（例えば、−１．０乃至１．０等）の値によってそれぞれ表し、センサ入力処理部１０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部１０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。成長モデルは、例えば、「幼年期」、「青年期」、「熟年期」、「老年期」等の成長の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部１０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００６１】
モデル記憶部１０６は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動制御部１０５に送出する。
【００６２】
なお、モデル記憶部１０６には、センサ入力処理部１０１から状態認識情報が供給される他、行動制御部１０５から、ロボット１の現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、モデル記憶部１０６は、同一の状態認識情報が与えられても、行動情報が示すロボット１の行動に応じて、異なる状態情報を生成するようになっている。
【００６３】
即ち、例えば、ロボット１が、ユーザに挨拶をし、ユーザに頭を撫でられた場合には、ユーザに挨拶をしたという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部１０６に与えられ、この場合、モデル記憶部１０６では、「うれしさ」を表す感情モデルの値が増加される。
【００６４】
一方、ロボット１が、何らかの仕事を実行中に頭を撫でられた場合には、仕事を実行中であるという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部１０６に与えられ、この場合、モデル記憶部１０６では、「うれしさ」を表す感情モデルの値は変化されない。
【００６５】
このように、モデル記憶部１０６は、状態認識情報だけでなく、現在または過去のロボット１の行動を示す行動情報も参照しながら、感情モデルの値を設定する。これにより、例えば、何らかのタスクを実行中に、ユーザが、いたずらするつもりで頭を撫でたときに、「うれしさ」を表す感情モデルの値を増加させるような、不自然な感情の変化が生じることを回避することができる。
【００６６】
なお、モデル記憶部１０６は、本能モデルおよび成長モデルについても、感情モデルにおける場合と同様に、状態認識情報および行動情報の両方に基づいて、その値を増減させるようになっている。また、モデル記憶部１０６は、感情モデル、本能モデル、成長モデルそれぞれの値を、他のモデルの値にも基づいて増減させるようになっている。
【００６７】
行動制御部１０５は、センサ入力処理部１０１からの状態認識情報や、モデル記憶部１０６からの状態情報、時間経過等に基づいて、必要に応じて、テーブル記憶部１０７に記憶されたテーブルを参照して、次の行動を決定し、決定された行動に対応する行動プログラム１０５Ａを読み出し、行動プログラム１０５Ａに基づく指令を、サブ制御部６３Ａ乃至６３Ｄに送出する。
【００６８】
すなわち、行動制御部１０５は、ロボット１がとり得る行動をステート（状態：ｓｔａｔｅ）に対応させた有限オートマトンを、ロボット１の行動を規定する行動モデルとして管理しており、この行動モデルとしての有限オートマトンにおけるステートを、センサ入力処理部１０１からの状態認識情報や、モデル記憶部１０６における感情モデル、本能モデル、または成長モデルの値、時間経過等に基づいて遷移させ、遷移後のステートに対応する行動を、次にとるべき行動として決定する。
【００６９】
ここで、行動制御部１０５は、所定のトリガ（ｔｒｉｇｇｅｒ）があったことを検出すると、ステートを遷移させる。即ち、行動制御部１０５は、例えば、現在のステートに対応する行動を実行している時間が所定時間に達したときや、特定の状態認識情報を受信したとき、モデル記憶部１０６から供給される状態情報が示す感情や、本能、成長の状態の値が所定の閾値以下または以上になったとき等に、ステートを遷移させる。
【００７０】
なお、行動制御部１０５は、上述したように、センサ入力処理部１０１からの状態認識情報だけでなく、モデル記憶部１０６における感情モデルや、本能モデル、成長モデルの値等にも基づいて、行動モデルにおけるステートを遷移させることから、同一の状態認識情報が入力されても、感情モデルや、本能モデル、成長モデルの値（状態情報）によっては、ステートの遷移先は異なるものとなる。
【００７１】
なお、行動制御部１０５では、上述したように、ロボット１の頭部や手足等を動作させる行動指令情報の他、ロボット１に発話を行わせる行動指令情報も生成される。ロボット１に発話を行わせる行動指令情報は、音声合成部１０８に供給されるようになっており、音声合成部１０８に供給される行動指令情報には、音声合成部１０８に生成させる合成音に対応するテキスト等が含まれる。そして、音声合成部１０８は、行動決定部５２から行動指令情報を受信すると、その行動指令情報に含まれるテキストに基づき、合成音を生成し、スピーカ７２に供給して出力させる。これにより、スピーカ７２からは、例えば、「こんにちは」などのユーザへの挨拶、ユーザへの各種の要求、あるいは、「何ですか？」等のユーザの呼びかけに対する応答その他の音声出力が行われる。
【００７２】
図７は、センサ入力処理部１０１の音声認識部１２１の機能を示す機能ブロック図である。
【００７３】
この構成例においては、マイクロフォン８２から入力され、図示せぬＡＤ変換部によりデジタル信号に変換された音声から特徴量を演算する特徴抽出部１５１、および特徴量を分析し、音声の認識処理をおこなう認識処理制御部１５２が設けられている。
【００７４】
認識処理制御部１５２は、複数の言語モデル（語彙と文法）に対応する認識処理を並列に処理することができるように構成されており、１つの言語モデルに対応する認識処理を行なうモジュールとして、それぞれ認識処理部１６１−１乃至１６１−４が設けられている。
【００７５】
認識処理制御部１５２においては、新たな言語モデルに対応した認識処理部を追加したり、不要になった認識処理部を削除することができる。また、各認識処理部に対して、認識処理を停止させたり、開始させたりすることができる。すなわち、複数の認識処理部を同時に駆動したり、認識処理部を切り替えたりすることによって、複数の言語モデルを同時に駆動したり、言語モデルを切り替えることができる。
【００７６】
認識処理部１６１−１乃至１６１−４には、特徴抽出部１５１により演算された特徴量に基づいて、音声のマッチングを行うマッチング部１７１−１乃至１７１−４が設けられており、また、語彙に関する情報が蓄積された辞書データベース１７２−１乃至１７２−４、文法に関する情報が蓄積された文法データベース１７３−１乃至１７３−４が設けられている。さらに音響に関する情報が蓄積された音響モデルデータベース１６２が、マッチング部１７１−１乃至１７１−４と接続されている。
【００７７】
なお、以下の説明において、認識処理部１６１−１乃至１６１−４のそれぞれを、個々に区別する必要がない場合、まとめて認識処理部１６１と称する。他の部分についても同様とする。また、図７の例においては、認識処理部は、認識処理部１６１−１乃至１６１−４の４つが示されているが、認識処理部は、必要に応じて、３つ以下、または５つ以上設けられることもある。
【００７８】
音響モデルデータベース１６２により、同じ音響モデルをすべての認識処理部１６１が共有して利用することができるように構成されており、これによって消費するメモリや音響モデルにおいて発生するスコア計算のための処理などを効率的に共有することが可能となる。
【００７９】
音響モデルデータベース１６２は、音声認識する音声の言語における個々の音素や音節などの音響的な特徴を表す音響モデルを記憶している。音響モデルとしては、例えば、ＨＭＭ（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ）が用いられる。辞書データベース１７２−１乃至１７２−４は、認識対象の各単語（語彙）について、その発音に関する情報（音韻情報）が記述された単語辞書を記憶している。文法データベース１７３−１乃至１７３−４は、辞書データベース１７２−１乃至１７２−４の単語辞書に登録されている各単語が、どのように連鎖する（つながる）かを記述した文法規則（言語モデル）を記憶している。文法規則としては、例えば、文脈自由文法（ＣＦＧ）に基づく記述や、統計的な単語連鎖確率（Ｎ−ｇｒａｍ）などが用いられる。
【００８０】
辞書データベース１７２−１乃至１７２−４にはそれぞれ異なる語彙に関する情報が蓄積されており、文法データベース１７３−１乃至１７３−４にもそれぞれ異なる文法に関する情報が蓄積されている。この辞書データベース１７２と文法データベース１７３の組み合わせにより言語モデルが決定される。
【００８１】
ところで、従来、ロボットは、動作時に、アクチュエータや頭部スイッチおよび足底スイッチから、ノイズ（雑音）を発生する。ロボットは、この自身が発生するノイズにより、音声認識の結果を誤る場合があり、その結果、ユーザが意図しない行動を実行してしまう恐れがあった。
【００８２】
そこで、この問題を解決するために、本発明のロボット１は、ロボット１自身が動作中に発するノイズの大きさを、アクチュエータＡ１乃至Ａ１４の角速度や、頭部スイッチ５１および足底スイッチ７６のオン・オフなどの物理量に基づいて、リアルタイムに予測する。そして、ノイズの予測値が、予め設定された所定の閾値より大きい時間が、音声認識した時間に占める割合が、所定の割合より大きかった場合、その間にマイクロフォン８２により集音された音声の音声認識結果を除外するようになされている。
【００８３】
これにより、誤った音声認識をした確率の高い音声認識結果を除外して、信頼性の高い音声認識結果のみを利用することができる。
【００８４】
アクチュエータＡ１乃至Ａ１４の角速度や、頭部スイッチ５１および足底スイッチ７６のオン・オフなどの物理量から、ノイズの大きさを推測するためには、アクチュエータＡ１乃至Ａ１４を稼動させたり、頭部スイッチ５１および足底スイッチ７６をオン・オフしたりした場合に、どれくらい大きなノイズが発生するのかを、予め測定しておく必要がある。そこで、ロボット１の製造者は、ロボット１の出荷前に、ロボット１に種々の動作を実行させて、マイクロフォン８２からノイズを集音する。そして、製造者は、アクチュエータＡ１乃至Ａ１４の角速度や、頭部スイッチ５１および足底スイッチ７６のオン・オフなどの物理量と、発生するノイズ値の関係式を求め、これをロボット１に記憶させる。
【００８５】
その後、ロボット１は、出荷され、ユーザにより使用される。ロボット１は、ユーザが発話した音声を音声認識する際、アクチュエータＡ１乃至Ａ１４の角速度や、頭部スイッチ５１および足底スイッチ７６のオン・オフなどの物理量を、記憶された関係式に代入することにより、ノイズの予測値を算出し、この予測値に基づいて、利用しない区間の音声認識結果を除外する。
【００８６】
このようにすることにより、ロボット１自身が発生するノイズの影響で、誤って音声認識した場合でも、その認識結果に基づいて、ロボット１が動作してしまうことを防ぐことができる。
【００８７】
なお、以下の説明において、アクチュエータＡ１乃至Ａ１４の角速度や、頭部スイッチ５１および足底スイッチ７６のオン・オフなどの物理量に基づいて、ノイズ予測値を算出する関係式を、ノイズ予測値算出式と称する。
【００８８】
次に、図８は、出荷前のロボット１に種々の動作を実行させ、ノイズを測定する場合の構成例を表している。
【００８９】
図８において、ロボット１は、ケーブル２０２を介して、コンピュータ２０１と接続されており、ケーブル２０２を介して、種々の情報の授受が行なわれる。ロボット１は、外界の音が遮音された防音室内に置かれ、コンピュータ２０１からの指示に従って、種々の動作を実行し、マイクロフォン８２から集音された音声（ノイズ）をコンピュータ２０１に出力する。コンピュータ２０１は、ケーブル２０２を介して、ロボット１に種々の動作を実行するように指令し、ロボット１が動作中にマイクロフォン８２から集音された音声（ノイズ）をロボット１から取得し、アクチュエータＡ１乃至Ａ１４の角速度や、頭部スイッチ５１および足底スイッチ７６のオン・オフなどの物理量、およびマイクロフォン８２から集音された音声のノイズ値を基に、ノイズ予測値算出式を求める。そして、コンピュータ２０１は、求められたノイズ予測値算出式を、ロボット１に供給し、記憶させる。
【００９０】
次に、図９および図１０のフローチャートを参照して、ノイズ予測値算出式を求め、ロボット１に記憶させるまでの設定処理について説明する。
【００９１】
なお、図９はコンピュータ２０１の処理を、図１０はロボット１の処理をそれぞれ示している。また、以下の設定処理の説明においては、物理量として、アクチュエータＡ１乃至Ａ１４の角速度のみを考えることとする。その理由は、頭部スイッチ５１および足底スイッチ７６をオン・オフする際のノイズは、アクチュエータＡ１乃至Ａ１４により発生されるノイズと比較して、ごく短時間のうちに発生するため、アクチュエータＡ１乃至Ａ１４により発生されるノイズ、並びに頭部スイッチ５１および足底スイッチ７６をオン・オフする際のノイズの両方を考慮した１つのノイズ予測値算出式を求める代わりに、それぞれでノイズ予測値算出式を求めるためである。従って、図９および図１０のフローチャートの処理を実行中、ロボット１の頭部スイッチ５１および足底スイッチ７６は、オン・オフしないように固定されている。
【００９２】
図９のステップＳ１において、コンピュータ２０１は、ケーブル２０２を介して、ロボットに対して、所定の動作を実行するように指令する。この所定の動作は、例えば、２足歩行、腕部ユニット１３Ａ（１３Ｂ）の挙上、頭部ユニット１２の回転等や、これらの動作を複合した複合動作などであり、コンピュータ２０１は、多数の動作パターンを予め記憶している。なお、ロボット１に実行させる動作パターンが多いほど、より高精度なノイズ予測値算出式を求めることができる。
【００９３】
図１０のステップＳ２１において、ロボット１のメイン制御部６１は、コンピュータ２０１より、所定の動作の実行の指示が入力されたか否かを判定し、周辺回路６２（通信回路）を経由して、コンピュータ２０１より、所定の動作の実行の指示が入力された場合、処理はステップＳ２２に進む。
【００９４】
ステップＳ２２において、ロボット１のメイン制御部６１（行動制御部１０５）は、サブ制御部６３Ａ乃至６３Ｄを制御して、コンピュータ２０１から指示された動作を実行する。また、マイクロフォン８２は、動作中の音声（ノイズ）を集音し、メイン制御部６１に送出する。さらに、角速度センサ７７は、動作中のアクチュエータＡ１乃至Ａ１４それぞれの角速度を検出し、角速度検出信号をメイン制御部６１に送出する。メイン制御部６１は、動作中にマイクロフォン８２により集音された音声信号、および角速度センサ７７から供給された角速度検出信号を取得する。
【００９５】
ステップＳ２３において、ロボット１のメイン制御部６１は、ステップＳ２２で取得した音声信号および角速度検出信号を、周辺回路６２（通信回路）、およびケーブル２０２を介して、コンピュータ２０１に送信する。
【００９６】
その後、処理はステップＳ２１に戻り、上述したステップＳ２１以降の処理が繰り返される。
【００９７】
コンピュータ２０１は、図９のステップＳ２において、ロボット１が図１０のステップＳ２３で送信した音声信号および角速度検出信号を受信し、ステップＳ３において、受信した音声信号および角速度検出信号を記憶する。
【００９８】
ステップＳ４において、コンピュータ２０１は、記憶している全動作パターンをロボット１に実行させたか否かを判定することにより、サンプルデータの取得を終了するか否かを判定し、まだ実行させていない動作パターンがあった場合（サンプルデータの取得を終了しないと判定した場合）、処理はステップＳ１に戻り、上述したステップＳ１以降の処理がくり返される。ただし、ステップＳ４の後に実行されるステップＳ１においては、コンピュータ２０１は、まだロボット１が実行していない動作を実行するように指示する。
【００９９】
このようにして、コンピュータ２０１において、ステップＳ１乃至ステップＳ４の処理がくり返され、ロボット１において、ステップＳ２１乃至ステップＳ２３の処理がくり返されることにより、ロボット１に様々な動作を実行させた場合のサンプルデータ（ノイズ値）がコンピュータ２０１に蓄積される。
【０１００】
そして、図９のステップＳ４において、コンピュータ２０１が、記憶している全動作パターンをロボット１に実行させたと判定した場合（サンプルデータの取得を終了すると判定した場合）、処理はステップＳ５に進む。
【０１０１】
ステップＳ５において、コンピュータ２０１は、ノイズ予測値算出式を求める。以下に、その具体例を記す。
【０１０２】
ノイズ予測値算出式は、例えば、アクチュエータＡ１乃至Ａ１４の角速度とノイズ値を統計分析することにより求められる。例えば、角速度に対するノイズ予測値を１次式で近似する場合、重回帰分析を行なって、式（１）のようなノイズ予測値算出式を求める。
【０１０３】
【数１】
2004258289.tif 000003
【０１０４】
式（１）において、Ｆはノイズ予測値を表し、Ｐは係数（パラメータ）を表し、ＪはアクチュエータＡ１乃至Ａ１４の角速度を表し、Ｑはロボット１が動作しない場合のノイズ値を表している。また、ｉは、１４個のアクチュエータＡ１乃至Ａ１４に対応している。
【０１０５】
すなわち、式（１）は、各アクチュエータの角速度ＪにパラメータＰを掛け算した値（Ａ×Ｊ）を、全アクチュエータ分（１４個分）、足し算し、足し算した結果に対して、さらに、ロボット１が動作しない場合のノイズ値Ｂを足し算している。このパラメータＰは、アクチュエータＡ１乃至Ａ１４毎に異なり、音声認識に与える影響が大きいほど、大きな値となる。
【０１０６】
すなわち、アクチュエータＡ１乃至Ａ１４は、そのサイズや、マイクロフォン８２からの距離が異なる。従って、各アクチュエータが動作した場合に、音声認識に与える影響は、アクチュエータ毎に異なるものとなる。マイクロフォン８２に近いアクチュエータにより発生されるノイズは、遠いアクチュエータにより発生されるノイズより、大きな音量のノイズとして集音されるため、より大きな影響を音声認識結果に与える。また、大きいアクチュエータは、小さいアクチュエータより大きな音量のノイズを発生するため、より大きな影響を音声認識結果に与える。
【０１０７】
このように、アクチュエータ毎に、音声認識に与える影響は異なる。従って、音声認識に対して、より影響力のあるアクチュエータに対して、パラメータＰをより大きい値にすることにより、より適切に、ノイズ予測値を算出させることが可能となる。
【０１０８】
コンピュータ２０１は、ステップＳ５で、例えば、重回帰分析により、式（１）のパラメータＰを求める。なお、上記したように、パラメータＰは、アクチュエータＡ１乃至Ａ１４のそれぞれに対応して、１４個求められる。なお、ロボット１の例においては、アクチュエータの個数が１４個なので、式（１）のｉは、１乃至１４に設定されているが、アクチュエータの個数が異なれば、ｉもアクチュエータの個数に対応して設定される。また、パラメータＰの個数も、アクチュエータの個数に対応した数だけ求められる。
【０１０９】
ステップＳ５の処理の後、処理はステップＳ６に進む。
【０１１０】
ステップＳ６において、コンピュータ２０１は、ステップＳ５で求められたパラメータＰをロボット１に送信する。
【０１１１】
図１０のステップＳ２１において、ロボット１のメイン制御部６１が、コンピュータ２０１から動作の指示は入力されていないと判定した場合、処理はステップＳ２４に進む。
【０１１２】
ステップＳ２４において、ロボット１のメイン制御部６１は、コンピュータ２０１より、パラメータＰが供給されたか否かを判定し、パラメータＰは供給されていない場合、処理はステップＳ２１に戻り、ステップＳ２１以降の処理が繰り返される。ステップＳ２４において、メイン制御部６１が、コンピュータ２０１より、パラメータＰが供給されたと判定した場合、処理はステップＳ２５に進む。
【０１１３】
ステップＳ２５において、メイン制御部６１は、コンピュータ２０１より供給されたパラメータＰを、内蔵するメモリ６１Ａに記憶させる。
【０１１４】
以上で、設定処理が終了され、ロボット１は、ケーブル２０２から切り離される。
【０１１５】
このようにして、アクチュエータＡ１乃至Ａ１４の角速度に対応するノイズ予測値算出式（上記の例においては、パラメータＰ）が求められる。頭部スイッチ５１、および足底スイッチ７６についても、上記と同様である。すなわち、防音室内で、ロボット１の頭部スイッチ５１、および足底スイッチ７６がオン・オフされ、そのときの音声（ノイズ）がマイクロフォン８２により集音され、コンピュータ２０１に送られる。コンピュータ２０１は、この音声（ノイズ）の大きさに基づいて、頭部スイッチ５１および足底スイッチ７６のいずれか、または両方がオン・オフされた場合のノイズ予測値算出式を求め、求めた式をロボット１に記憶させる。
【０１１６】
ロボット１は、パラメータＰが記憶された状態で、出荷され、ユーザにより使用される。
【０１１７】
次に、図１１のフローチャートを参照して、ユーザにより使用されているロボット１が、ノイズに応じて、音声認識結果を除外する処理、すなわちロボット１のノイズ対応処理について説明する。
【０１１８】
ステップＳ５１において、音声認識部１２１は、マイクロフォン８２から音声が入力されたか否かを判定し、入力されたと判定されるまで待機する。そして、音声が入力されたと判定された場合、処理はステップＳ５２に進む。なお、マイクロフォン８２から入力される音声信号には、マイクロフォン８２で集音された時点の現在時刻を示す時刻情報付加されて、音声認識部１２１に入力される。
【０１１９】
ステップＳ５２において、音声認識部１２１は、音声認識処理を実行し、認識結果としての単語列、並びに単語列に対応する音声スコア、言語スコア、および時刻情報を認識結果除去フィルタ１０３に出力する。なお、時刻情報とは、単語列に対応する音声が発話された発話開始時刻と発話終了時刻を含む情報である。音声認識処理の詳細な説明は、図１２のフローチャートを参照して、後述する。なお、音声認識部１２１は、認識処理部１６１−１乃至１６１−４のうち、認識処理を実行している全ての認識処理部から、それぞれ認識結果を出力する。
【０１２０】
ステップＳ５３において、ノイズ予測部１０２は、ノイズ予測値取得処理を実行する。すなわち、ノイズ予測部１０２は、アクチュエータＡ１乃至Ａ１４により発生されるノイズ予測値を式（１）により算出し、頭部スイッチ５１および足底スイッチ７６により発生されるノイズ予測値を、頭部スイッチ５１および足底スイッチ７６用のノイズ予測値算出式により算出し、算出したノイズ予測値、およびノイズ予測値に対応する時刻を示す時刻情報を認識結果除去フィルタ１０３に出力する。ノイズ予測値取得処理の詳細な説明は、図１３のフローチャートを参照して、後述する。
【０１２１】
なお、ステップＳ５２の音声認識処理、およびステップＳ５３のノイズ予測値取得処理は、説明の便宜上、ステップＳ５２、ステップＳ５３の順番に実行しているが、実際には、ステップＳ５２およびステップＳ５３の処理は並列に実行される。
【０１２２】
ステップＳ５２およびステップＳ５３がともに終了した後、処理はステップＳ５４に進む。
【０１２３】
ステップＳ５４において、認識結果除去フィルタ１０３は、ノイズ区間除去処理を実行する。すなわち、音声認識部１２１から出力された単語列には、その単語列に対応する音声が発話された時刻（発話開始時刻および発話終了時刻）の時刻情報がタグとして付加されている。また、ノイズ予測部１０２から出力されたノイズ予測値には、そのノイズ予測値に対応するノイズが発生された時刻の時刻情報がタグとして付加されている。そこで、認識結果除去フィルタ１０３は、これらの時刻情報を参照して、単語列が発話された時間全体における、ノイズ予測値が所定の大きさ以上である時間の占める割合を算出し、算出された割合が、予め設定された所定の割合以上である音声認識結果を除外する。その後、認識結果除去フィルタ１０３は、除外されずに残った音声認識結果を認識結果評価部１０４に出力する。ノイズ区間除去処理の詳細な説明は、図１４のフローチャートを参照して後述する。なお、上記したように、音声認識部１２１では、認識処理を実行した全ての認識処理部から認識結果が出力される。従って、認識結果除去フィルタ１０３は、１以上の認識結果の全てに対して、ノイズを多く含む認識結果の除外を行う。
【０１２４】
ステップＳ５４の処理の後、ステップＳ５５において、認識結果評価部１０４は、認識結果評価処理を実行する。すなわち、音声認識部１２１では、認識処理を実行した全ての認識処理部から認識結果が出力される。従って、マイクロフォン８２により集音された同じ音声信号から、各認識処理部によって、異なる単語列が生成される可能性がある。この場合、現在実行中の動作に従って、最適な単語列を選択する必要がある。そこで、認識結果評価部１０４は、単語列に付加されているスコアを参照して、ユーザの発言として採用すべき、最適な単語列を選択する。認識結果評価処理の詳細な説明は、図１７のフローチャートを参照して、後述する。
【０１２５】
ステップＳ５５の処理の後、ステップＳ５６において、認識結果評価部１０４は、ステップＳ５５で選択された単語列を、行動制御部１０５およびモデル記憶部１０６に出力する。その後、処理はステップＳ５１に戻り、上述したステップＳ５１以降の処理を繰り返し実行する。
【０１２６】
行動制御部１０５は、認識結果評価部１０４から供給された単語列等に基づいて、行動を決定し、サブ制御部６３Ａ乃至６３Ｄ、および音声合成部１０８等を制御して、ロボット１に、所定の行動を実行させる。
【０１２７】
以上のようにして、ノイズ対応処理が実行される。
【０１２８】
以上のようなノイズ対応処理により、誤りである可能性の高い音声認識結果を、正確に除去することができる。その結果、誤った音声認識結果に基づいて、ロボットが行動してしまうことを防止することができる。また、ユーザの発話を集音するマイクロフォン以外に、ノイズ除去用のマイクロフォンを設置しないで済む。
【０１２９】
次に、図１２のフローチャートを参照して、図１１のステップＳ５２の音声認識処理について詳細に説明する。
【０１３０】
ステップＳ７１において、特徴抽出部１５１は、デジタル信号としての音声信号を、適当な時間間隔で周波数分析行うなどして、スペクトルや、その他の音声の音響的特徴を表すパラメータに変換し、特徴量として抽出する。
【０１３１】
ステップＳ７２において、認識処理制御部１５２は、駆動させる認識処理部を選択する。
【０１３２】
例えば、ロボット１が、ユーザとの雑談、歌唱、および踊りを実行している場合を想定する。このとき、ロボット１では、雑談用、歌唱用、および踊り用のアプリケーションが起動している。また、ロボット１は、ユーザとの雑談用、歌唱用、および踊り用に、それぞれ１つずつ言語モデルを有しており、それぞれの言語モデルに対応した認識処理部が駆動されるものとする。さらに、全ての動作に共通に利用される言語モデルを１つ有しており、この言語モデルに対応した認識処理部が駆動されているものとする。なお、全ての動作に共通に利用される言語モデルとは、例えば「止まれ」などのように、重要度が大きいコマンドなどを認識するための言語モデルである。
【０１３３】
このとき、ロボット１は、現在実行中のアプリケーションに基づいて、全ての動作に共通に利用される言語モデルをもつ認識処理部、ユーザとの雑談用の言語モデルをもつ認識処理部、歌唱用の言語モデルをもつ認識処理部、および踊り用の言語モデルをもつ認識処理部を駆動する。ここでは、認識処理部１６１−１が全ての動作に共通に利用される言語モデルをもち、認識処理部１６１−２が雑談用の言語モデルをもち、認識処理部１６１−３が歌唱用の言語モデルをもち、認識処理部１６１−４が踊り用の言語モデルをもつものとする。
【０１３４】
従って、認識処理制御部１５２は、上記の認識処理部１６１−１乃至１６１−４を、駆動すべき認識処理部として選択する。すなわち、全部で４つの認識処理部１６１−１乃至１６１−４が認識処理制御部１５２で動作していることになり、１つのアプリケーションに対応する認識処理部はそれぞれ２つずつとなる。
【０１３５】
このように、認識処理制御部１５２は、実行中のアプリケーションに対応する言語モデルをもつ認識処理部を選択して駆動させる。
【０１３６】
その後、処理はステップＳ７３に進む。なお、ステップＳ７３乃至ステップＳ７６の処理（以下、ステップＳ７３乃至ステップＳ７６の処理を単語系列認識処理とも称する）は、認識処理部１６１−１乃至１６１−４により、並列に実行される。
【０１３７】
ステップＳ７３において、認識処理部１６１−１乃至１６１−４は、特徴抽出部１５１から出力された音声の特徴量を音響モデルデータベース１６２とマッチングし、音素、音節を判定する。なお、マイクロフォン８２から入力され、ＡＤ変換された音声信号には、マイクロフォン８２で集音されたときの現在時刻が付加されている。そこで、認識処理部１６１−１乃至１６１−４は、判定した音節毎に、対応する発話時刻を求め、この発話時刻を付加する。
【０１３８】
ステップＳ７４において、認識処理部１６１−１乃至１６１−４は、音素、音節を辞書データベース１７２−１乃至１７２−４、および文法データベース１７３−１乃至１７３−４とマッチングして、音響スコアと言語スコアを演算する。
【０１３９】
すなわち、認識処理部１６１−１乃至１６１−４は、入力された特徴量がもつ音響的なパターンを、辞書データベース１７２に含まれる各単語に対応する音響的な標準パターンと比較し、音響的な評価値を、音響スコアとして演算する。また、文法としてたとえばバイグラムが用いられる場合には、認識処理部１６１−１乃至１６１−４は、直前の単語との連鎖確率に基づく各単語の言語的な確からしさを、文法データベース１７３に基づいて数値化し、これを言語スコアとして演算する。
【０１４０】
ステップＳ７５において、認識処理部１６１−１乃至１６１−４は、音響スコアと言語スコアを総合して最も評価の高い単語列を決定し、ステップＳ７６に進み、決定された単語列と、その単語列に対応する音声スコア、言語スコア、および時刻情報を認識結果除去フィルタ１０３に出力する。
【０１４１】
例えば、ユーザが、「今日はいい天気ですね。」と発声したとき、「今日」、「は」、「いい」、「天気」、「ですね」のような単語の系列が認識結果として得られることになる。このとき、各単語に対応して音響スコア、および言語スコアが与えられるとともに、各単語の発話時刻を示す時刻情報が与えられる。
【０１４２】
このようにして、入力された音声から単語系列が認識される。
【０１４３】
次に、図１３のフローチャートを参照して、図１１のステップＳ５３のノイズ予測値取得処理について説明する。
【０１４４】
図１３のステップＳ１０１において、ノイズ予測部１０２は、角速度センサ７７から送出された角速度検出信号、頭部スイッチ５１から送出された圧力検出信号、および足底スイッチ７６から出力された接地信号をリアルタイムで取得し、取得したタイミングで、取得した情報に対して、現在時刻を示す時刻情報を付加する。
【０１４５】
ステップＳ１０２において、ノイズ予測部１０２は、ステップＳ１０１で取得された角速度検出信号、圧力検出信号、および接地信号に基づいて、ノイズ予測値を算出する。
【０１４６】
すなわち、ノイズ予測部１０２は、まず、図１０のフローチャートの設定処理により記憶されたパラメータＰ、およびステップＳ１０１で取得された角速度検出信号に基づく角速度を式（１）に代入して、アクチュエータＡ１乃至Ａ１４の動作に起因するノイズ予測値を算出する。また、ノイズ予測部１０２は、頭部スイッチ５１および足底スイッチ７６により発生されるノイズを予測するためのノイズ予測値算出式に、圧力検出信号、および接地信号を代入して、頭部スイッチ５１および足底スイッチ７６のオン・オフに起因するノイズ予測値を算出する。
【０１４７】
ステップＳ１０３において、ノイズ予測部１０２は、ステップＳ１０２で算出したノイズ予測値を認識結果除去フィルタ１０３に供給する。なお、ノイズ予測部１０２は、ノイズ予測値に、そのノイズ予測値に対応する時刻を示す時刻情報を付加して、認識結果除去フィルタ１０３に供給する。
【０１４８】
以上のようにして、ノイズ予測値取得処理が実行される。
【０１４９】
次に、図１１のステップＳ５４のノイズ区間除去処理について説明するが、その前に、ノイズ区間を除去する仕組みについて説明する。
【０１５０】
音声認識部１２１は、マイクロフォン８２により集音された音声を音声認識して、単語列を生成するが、マイクロフォン８２から集音される音声には、ノイズが混入する。例えば、ユーザが「せんぷうき」と発話したと想定し、この音声の発話時間がＸミリ秒であるとする。ここで、ユーザが「せんぷうき」と発話している間に、マイクロフォン８２により、大きなノイズがＹミリ秒だけ集音されたとする。このとき、音声「せんぷうき」の発話時間（Ｘミリ秒）に対する、大きなノイズの混入時間（Ｙミリ秒）の割合（Ｙ／Ｘ）が少なければ、音声認識部１２１は、比較的正確に音声認識して、正しい単語列「扇風機」を生成することができるが、音声「せんぷうき」の発話時間（Ｘミリ秒）に対する、大きなノイズの混入時間（Ｙミリ秒）の割合（Ｙ／Ｘ）が多い場合、音声認識部１２１は、誤って音声認識してしまい、誤った単語列（例えば「戦闘機」、「洗濯機」など）を生成してしまう。
【０１５１】
すなわち、単語列の発話時間に占める、大きなノイズの混入時間の割合が多いほど、音声認識の誤認識率（発話内容と異なる単語列を生成する確率）が高くなる。
【０１５２】
この誤認識率が高い場合、ロボット１は、ユーザの発言内容を誤って認識し、ユーザの意図に反した行動をとってしまう可能性がある。この問題を解決する方法として、誤認識率が高い場合、すなわち単語列の発話時間に占める、大きなノイズの混入時間の割合が多い場合、音声認識して生成された単語列を除去することが考えられる。
【０１５３】
そこで、認識結果除去フィルタ１０３は、単語列の発話時間に占める、大きなノイズの混入時間の割合が、予め設定された基準値以上である場合、その単語列を、信頼できない単語列（以下、非信頼単語列と称する）として、除去する。また、認識結果除去フィルタ１０３は、単語列の発話時間に占める、大きなノイズの混入時間の割合が、予め設定された基準値より小さい場合、その単語列を、信頼できる単語列（以下、信頼単語列と称する）と判断し、音声認識結果として採用する。
【０１５４】
なお、単語列の発話時間に占める、大きなノイズの混入時間の割合が、予め設定された基準値以上であるか否かを判定するためには、集音された音声に含まれるノイズが、大きなノイズであるか否かを判断しなくてはならない。そこで、認識結果除去フィルタ１０３は、予め閾値を設定しておき、ノイズの大きさが閾値以上である場合、そのノイズは大きいノイズであると判断する。
【０１５５】
ロボット１は、以上のようにして、ノイズ区間を除去する。なお、本発明においては、ノイズの大きさを示す値として、ノイズ予測部１０２により算出されたノイズ予測値が利用される。
【０１５６】
次に、図１４のフローチャートを参照して、図１１のステップＳ５４のノイズ区間除去処理について説明する。
【０１５７】
ステップＳ１２１において、認識結果除去フィルタ１０３は、ノイズ予測部１０２から供給されたノイズ予測値に基づいて、ノイズ予測値が予め設定された閾値以上である時間を特定する。ステップＳ１２１の処理について、図１５を参照して説明する。
【０１５８】
図１５は、ノイズ予測値の経時変化を示すグラフである。図１５においては、横軸が時間を表し、縦軸がノイズ予測値を表している。また図１５において、Ｌはノイズ予測部１０２から供給されたノイズ予測値の経時変化を表す線分であり、ＴＨは、認識結果除去フィルタ１０３に予め設定された閾値である。
【０１５９】
図１５において、ノイズ予測値Ｌは、時刻０乃至ｔ１、ｔ２乃至ｔ３、ｔ４乃至ｔ５、およびｔ６以降の区間では、閾値ＴＨ以下である。また、ノイズ予測値Ｌは、時刻ｔ１乃至ｔ２、ｔ３乃至ｔ４、およびｔ５乃至ｔ６の区間では、閾値ＴＨ以上である。
【０１６０】
従って、ステップＳ１２１において、認識結果除去フィルタ１０３は、図１５の時刻ｔ１乃至ｔ２、ｔ３乃至ｔ４、およびｔ５乃至ｔ６の区間を、ノイズ予測値が閾値ＴＨ以上である区間として特定する。
【０１６１】
ステップＳ１２２において、認識結果除去フィルタ１０３は、ノイズ予測値が閾値ＴＨ以上である時間の、単語列の発話時間に対する割合を算出する。ステップＳ１２２の処理について、図１６を参照して説明する。
【０１６２】
図１６において、横軸は時間軸である。また、図１６において、「ノイズ予測値が閾値以上の区間」の記載の右側には、ノイズ予測値が閾値以上の区間Ａ乃至Ｃが示されている。この区間Ａ乃至Ｃは、ステップＳ１２１の処理により特定されている。図１６において、ｔ１乃至ｔ６は、図１５のｔ１乃至ｔ６にそれぞれ対応している。
【０１６３】
また、図１６において、「音声認識された区間」の記載の右側には、音声認識が実行され、単語列が生成された区間Ｄ乃至Ｆが示されている。
【０１６４】
図１６において、音声認識して単語列が生成された区間Ｄ乃至Ｆのうち、区間Ｄに注目すると、区間Ｄの一部が、ノイズ予測値が閾値以上の区間Ａと重なっている。この場合、区間Ｄの音声を音声認識して生成された単語列を除外するか否かの判定基準は以下のように定められる。すなわち、ノイズ予測値が閾値以上の区間と重なっている区間（すなわちｔａからｔ２までの区間）の、区間Ｄ全体に対する割合が、予め設定された所定の基準値以上である場合、区間Ｄの音声を音声認識して生成された単語列を、除外すべき単語列であると判定する。
【０１６５】
従って、ステップＳ１２２において、認識結果除去フィルタ１０３は、この割合を算出する。例えば、図１６の区間Ｄの例の場合、（ｔａからｔ２までの時間）／（区間Ｄの時間）が演算される。
【０１６６】
また、図１６の区間Ｅに注目すると、区間Ｅは、ノイズ予測値が閾値以上の区間と重なっていない。従って、区間Ｅの例の場合、ステップＳ１２２において、０／（区間Ｅの時間）が演算される。図１６の区間Ｆに注目すると、区間Ｆは全体が、ノイズ予測値が閾値以上の区間Ｃと重なっている。従って、区間Ｆの例の場合、ステップＳ１２２において、（ｔｂからｔｃまでの時間）／（区間Ｆの時間）が演算される。
【０１６７】
ステップＳ１２３において、認識結果除去フィルタ１０３は、ステップＳ１２２で算出された割合が、予め設定された基準の割合以上であるか否かを判定し、ステップＳ１２２で算出された割合が、予め設定された基準の割合以上である場合、その単語列を非信頼単語列であると判定し、処理はステップＳ１２４に進む。
【０１６８】
ステップＳ１２４において、認識結果除去フィルタ１０３は、ステップＳ１２３で、ノイズ予測値が閾値以上である時間の、単語列の発話時間に対する割合が、基準値以上であると判定された区間の単語列、すなわち非信頼単語列を除去する。
【０１６９】
ステップＳ１２３において、認識結果除去フィルタ１０３が、ステップＳ１２２で算出された割合は、予め設定された基準の割合以上ではないと判定した場合、処理はステップＳ１２５に進む。
【０１７０】
ステップＳ１２５において、認識結果除去フィルタ１０３は、単語列（信頼単語列）を認識結果評価部１０４に供給する。
【０１７１】
以上のようにして、ノイズ区間除去処理が実行される。
【０１７２】
なお、音声認識部１２１において、複数の認識処理部１６１が稼動していた場合、同一時刻の発話に基づく単語列が、複数個、認識結果除去フィルタ１０３に供給される。よって、認識結果除去フィルタ１０３は、各認識処理部１６１より供給された単語列全てに対して、上記したようなノイズ区間除去処理を実行し、非信頼単語列を除去する。
【０１７３】
なお、認識処理部１６１−１乃至１６１−４の、ノイズ耐性は異なる。すなわち、例えば、語彙数５０の孤立単語認識を行なう認識処理部と、語彙数６万のトライグラム文法の大語彙連続音声認識を行なう認識処理部とでは、音声信号に含まれるノイズの大きさが同じでも、音声認識の誤認識率が異なる。従って、図１５に示されるノイズ予測値の閾値ＴＨを全ての認識処理部１６１−１乃至１６１−４で同一の値にしてしまうと、ある認識処理部では、信頼できない単語列のみを適切に除去できるが、他の認識処理部では、信頼できない単語列を除去しなかったり、信頼できる単語列を除去してしまったりする可能性がある。
【０１７４】
そこで、認識結果除去フィルタ１０３は、音声認識部１２１から供給された単語列が、どの認識処理部で生成されたものかに応じて、異なる閾値ＴＨを設定して、ノイズ区間除去処理を実行する。すなわち、認識結果除去フィルタ１０３は、認識処理部１６１−１で生成された単語列用の閾値ＴＨ１、認識処理部１６１−２で生成された単語列用の閾値ＴＨ２、認識処理部１６１−３で生成された単語列用の閾値ＴＨ３、および認識処理部１６１−４で生成された単語列用の閾値ＴＨ４を予め保持し、音声認識部１２１から供給された単語列が、どの認識処理部により生成された単語列であるかに応じて、対応する認識処理部用の閾値を読み出し、その閾値によりノイズ予測値の大小を判定する。
【０１７５】
ところで、ステップＳ７３乃至ステップＳ７６の単語系列認識処理は、それぞれ異なる言語モデルをもつ複数の認識処理部において、並列に実行されるため、同じ音声を入力しても、認識処理部によって認識結果が異なる場合もあり得る。このとき、複数の認識結果から１つの認識結果を選択する必要がある
【０１７６】
２つの認識処理部が駆動している場合を考える。例えば、ロボット対話システムにおいて、ユーザと雑談を行なうアプリケーションが動作しているとし、このアプリケーションに対応した言語モデルとして、大語彙でトライグラム文法を用いた大語彙連続音声認識の言語モデルをもつ認識処理部１６１−２と、小語彙のコマンドだけ受け付ける孤立単語認識の言語モデル（各アプリケーションに共通の言語モデル）をもつ認識処理部１６１−１が駆動している。
【０１７７】
音声が入力されると、認識処理部で単語系列認識処理が行われ、単語列が認識される。ここで、各単語に音響スコアと言語スコアが与えられることになる。しかし、大語彙連続音声認識の言語モデルをもつ認識処理部１６１−２の認識結果に対しては、各単語にトライグラム文法で与えられる言語スコアが与えられるが、孤立単語認識の言語モデルをもつ認識処理部１６１−１の認識結果に対しては、言語スコアが利用されず、言語スコアが与えられない。
【０１７８】
この場合、音響スコアと言語スコアを総合したスコアを用いると、それぞれの単語列を比較することが難しくなるが、２つの認識処理部１６１−１および１６１−２が同じ音響モデルを用いて、同じような音響スコアの計算を行なっているとすれば、音響スコアに関して比較することができる。
【０１７９】
しかしながら、複数の言語モデルを同時に駆動した場合、単純に音響スコアに関して比較すると、音声認識の性能が低下するという問題があった。
【０１８０】
すなわち、例えば、トライグラムで駆動する大語彙の連続音声認識システムと、小語彙の孤立単語音声認識システムを同時に駆動した場合、それぞれの音声認識システムに対して認識結果である単語系列が決定される。このとき、どちらの単語系列を最終的な認識結果として利用するかが問題となるが、その判断を誤ると、認識性能が著しく低下するおそれがある。
【０１８１】
その原因としては、受理範囲の広い言語モデルが音響スコアの高い単語列を生成し、その単語列を最終的な認識結果と誤って判定することではないかと予想できる。また、複数の言語モデルを駆動することは、単独で言語モデルを駆動する場合に比べて言語モデルの制約が緩くなることを意味するので、認識率が低下するのは一般的な音声認識の特性である考えることもできる。
【０１８２】
ここで、認識性能の低下を防ぐために、それぞれの音響スコアに対して所定の値を乗じて重み付けをする方法が考えられる。複数のそれぞれ異なる言語モデルをもつ認識処理部を駆動し、複数の認識結果が得られる場合、上述したように、その認識結果の単語列に付与された音響スコアに対して、言語モデルに対応した所定の値を重みとして乗じた後に、スコアの評価の高い方を最終的な認識結果とすることで、複数の言語モデルを駆動した場合に生じる音声認識の性能低下を大きく改善することができる。
【０１８３】
次に、図１７のフローチャートを参照して、図１１のステップＳ５５の認識結果評価処理について詳細に説明する。なお、以下の認識結果評価処理は、認識処理部１６１−１および１６１−２により生成された単語列の評価を例にして説明する。
【０１８４】
図１７のステップＳ１５１において、認識結果評価部１０４は、認識結果除去フィルタ１０３から、単語列、音響スコア、および時刻情報が供給されたか否かを判定し、単語列、音響スコア、および時刻情報が供給されるまで待機する。そして、認識結果除去フィルタ１０３から、単語列、音響スコア、および時刻情報が供給されたとき、処理はステップＳ１５２に進む。
【０１８５】
ステップＳ１５２において、認識結果評価部１０４は、認識結果除去フィルタ１０３から供給された、同一時刻に対応付けられている単語列が複数個存在するか否かを判定する。すなわち、ある時刻に集音された音声信号が認識処理部１６１−１および１６１−２により音声認識され、２つの単語列が生成された場合、その中から、１つだけ単語列を選択しなくてはならない。ただし、認識処理部１６１−１および１６１−２から出力された単語列のうち、非信頼単語列であると判定されたものは、認識結果除去フィルタ１０３により除去されるため、認識処理部１６１−１および１６１−２により、同一時刻の音声由来の２つの単語列が生成されても、そのうち１つしか、認識結果評価部１０４に供給されない場合もある。そこで、ステップＳ１５２において、認識結果評価部１０４は、認識結果除去フィルタ１０３から供給された単語列に付加されている、発話時刻を示す時刻情報を参照して、同一の発話時刻の単語列が複数個存在するか否かを判定する。その結果、同一の発話時刻の単語列が複数存在した場合、処理はステップＳ１５３に進む。
【０１８６】
ステップＳ１５３において、認識結果評価部１０４は、ステップＳ１５２で同一時刻に対応付けられていると判定された複数の単語列を比較し、これらの単語列が同一の単語であるか否かを判定し、これらの単語列が同一の単語ではなかった場合、処理はステップＳ１５４に進む。
【０１８７】
ステップＳ１５４において、認識結果評価部１０４は、認識処理部１６１−１から出力された単語に対応する音響スコアに重み付けを行う。例えば、認識処理部１６１−２は大語彙でトライグラム文法を用いた大語彙連続音声認識の言語モデルを駆動し、認識処理部１６１−１は、小語彙のコマンドだけ受け付ける孤立単語認識の言語モデルを駆動しているとき、認識処理部２１−１から出力された単語の音響スコアに、所定の値が乗じられ、重み付けが行われる。
【０１８８】
ステップＳ１５５において、認識結果評価部１０４は、ステップＳ１５４で重み付けされた音響スコアと、認識処理部１６１−２から出力された単語に対応する音響スコアを比較して、ステップＳ１５６に進み、音響スコアの評価が高い方の単語を選択する。その後、処理はステップＳ１５７に進む。
【０１８９】
ステップＳ１５２において、認識結果評価部１０４が、認識結果除去フィルタ１０３から供給された、同一時刻に対応付けられた単語列は存在しない（ある発話時刻に対応付けられた単語列は１つしかない）と判定した場合、ステップＳ１５３乃至ステップＳ１５６の処理はスキップされ、処理はステップＳ１５７に進む。
【０１９０】
ステップＳ１５３において、認識結果評価部１０４が、各認識処理部により生成された単語列は同一の単語であると判定した場合、ステップＳ１５４乃至ステップＳ１５６の処理はスキップされ、処理はステップＳ１５７に進む。
【０１９１】
ステップＳ１５７において、認識結果評価部１０４は、ステップＳ１５６で選択された単語列を行動制御部１０５に出力する。なお、ステップＳ１５２で、認識結果評価部１０４が、認識結果除去フィルタ１０３から供給された、同一時刻に対応付けられた単語列は存在しないと判定していた場合、認識結果評価部１０４は、ある発話時刻に対応して１つだけ存在する単語列を行動制御部１０５に出力する。また、ステップＳ１５３で、認識結果評価部１０４が、各認識処理部により生成された単語列は同一の単語であると判定した場合、認識結果評価部１０４は、同一であると判定された単語列を行動制御部１０５に出力する。
【０１９２】
以上のようにして、認識結果評価処理が実行される。
【０１９３】
ところで、以上の説明においては、音声認識処理が全て終了してから、ノイズ区間除去処理を実行しているが、音声認識処理とノイズ予測値取得処理は並列に実行されるため、ある１区間の発話内容の音声認識処理が完了する前に、その区間のノイズ予測値取得処理が完了することもあり得る。この場合、音声認識処理を実行中に、既に除去すべき区間を決定することも可能である。そこで、音声認識処理中に、除去すべき区間を決定し、除去すべき区間については、音声認識処理をしないようにするようにしても良い。
【０１９４】
次に、図１８のフローチャートを参照して、音声認識処理中に、除去すべき区間を決定し、除去すべき区間についての音声認識処理を途中で終了するようにした場合のノイズ区間除去処理について説明する。なお、図１８のノイズ区間除去処理は、図１１のノイズ対応処理において、ステップＳ５２の音声認識処理を実行中に、ステップＳ５３のノイズ予測値取得処理が完了した場合にのみ実行される。また、この場合、ステップＳ５２の音声認識処理が完了する前に、ステップＳ５４のノイズ区間除去処理（図１８のフローチャートの処理）が開始される。
【０１９５】
図１８のステップＳ２０１において、ノイズ予測部１０２は、算出したノイズ予測値を音声認識部１２１および認識結果除去フィルタ１０３に供給する。
【０１９６】
ステップＳ２０２において、音声認識部１２１は、ノイズ予測値が閾値以上の区間の音声認識を中止する。すなわち、音声認識部１２１の認識処理制御部１５２は、予め閾値となるノイズ予測値の値を記憶しており、ノイズ予測部１０２から供給されたノイズ予測値が、閾値以上の区間（時間）を特定する。そして、認識処理制御部１５２は、音声認識処理を実行中の音声信号のうち、ノイズ予測値が閾値以上の区間の音声信号については、音声認識処理を中止する。
【０１９７】
ステップＳ２０３において、認識結果除去フィルタ１０３は、ノイズ予測値が閾値以上の区間から、音声認識処理が中止されるまでに生成された単語列を除去する。すなわち、ステップＳ２０１で、ノイズ予測部１０２から音声認識部１２１にノイズ予測値が供給された時点で、音声認識部１２１が既に音声認識した単語列があるため、その単語列のうちで、ノイズが閾値以上である区間から生成された単語列を除去する必要がある。認識結果除去フィルタ１０３は、音声認識部１２１から供給された単語列に付加されている時刻情報に基づいて、ノイズ予測値が閾値以上の区間に生成された単語列を検索し、ノイズ予測値が閾値以上の区間に生成された単語列があった場合、その単語列を除去する。
【０１９８】
ステップＳ２０４において、認識結果除去フィルタ１０３は、ステップＳ２０３の処理で除去されずに残った単語列を認識結果評価部１０４に出力する。
【０１９９】
以上のように、ノイズ区間除去処理を実行しても良い。このように予め除去することが分かっている区間の音声認識を中止することにより、余分な音声認識処理を行なわずに済み、メイン制御部６１が行なわなくてはならない処理量を減らすことが可能となる。
【０２００】
ところで、以上の説明においては、実際にノイズ予測値を算出して、そのノイズ予測値に基づいて、音声認識結果の単語列を除去するか否かを判定したり、音声認識自体を中止するか否かを判定しているが、予め決められた（パターン化された）動作を実行する場合、その動作中のどの時間にどの位の大きさのノイズが発生するのかは、見当をつけることができる。
【０２０１】
すなわち、例えば歩行動作の場合、床の傾斜や、床から突き出た突起物等の外乱で転倒しないように、ロボット１は、歩幅や加速度等を、リアルタイムで修正する必要がある。このような、状況に応じてリアルタイムで修正する必要がある動作においては、実際に、アクチュエータＡ１乃至Ａ１４からの角速度検出信号、頭部スイッチ５１からの圧力検出信号、並びに足底スイッチ７６からの接地信号に基づいて、ノイズ予測値を算出して、算出結果に基づいて音声認識結果を除去する必要がある。それに対して、リアルタイムで修正する必要がない、パターン化された動作（例えば、頭を横に振る動作）の場合、アクチュエータＡ１乃至Ａ１４のうち、いずれのアクチュエータをどのタイミングで駆動するのかを、予め固定的に設定することができる。従って、動作の実行中に発生するノイズの経時変化は、予め予測することができる。
【０２０２】
そこで、予め決められた固定的な動作（以下、予め決められた固定的な動作を定型動作と称する）を実行する場合、その動作の実行中にノイズ予測値を算出しなくても、大きなノイズが発生する区間で生成された単語列を除去することができる。
【０２０３】
次に、このようにした場合の、ロボット１の行動処理について図１９を参照して説明し、ノイズ対応処理について、図２１を参照して説明する。
【０２０４】
まず、図１９のフローチャートを参照して、ロボット１の行動処理、すなわち、認識結果評価部１０４から供給された単語列に基づいて、行動する処理について説明する。
【０２０５】
図１９のステップＳ２２１において、行動制御部１０５は、認識結果評価部１０４より、評価結果としての単語列の入力を受け付ける。
【０２０６】
ステップＳ２２２において、行動制御部１０５は、ステップＳ２２１で入力された単語列、およびモデル記憶部１０６やテーブル記憶部１０７に記憶された情報に基づいて、ロボット１がとるべき行動を選択する。
【０２０７】
ステップＳ２２３において、行動制御部１０５は、保持している行動プログラム１０５Ａから、ステップＳ２２２で選択された行動に対応する行動プログラムを読み出す。
【０２０８】
ステップＳ２２４において、行動制御部１０５は、ステップＳ２２２で選択された動作は、定型動作であるか否かを判定し、ステップＳ２２２で選択された動作が定型動作であった場合、処理はステップＳ２２５に進む。
【０２０９】
ステップＳ２２５において、行動制御部１０５は、認識結果を除去すべき時刻を認識結果除去フィルタ１０３に通知する。認識結果除去区間について、図２０を参照して説明する。
【０２１０】
図２０は、図１のような起立姿勢をとっているロボット１に敬礼の動作を実行させるための行動プログラムの例を表している。図２０に示された行動プログラムにおいては、まずアクチュエータＡ８を駆動して、前腕部を挙上してゆき、アクチュエータＡ８の駆動が終了する前に、アクチュエータＡ５の駆動を開始して、上腕部を若干、挙上させることにより、ロボット１に敬礼の姿勢をとらせる。図２０において、横軸は時間軸を表している。また、図２０において、「Ａ８」と示された区間は、アクチュエータＡ８を駆動する区間を表し、「Ａ５」と示された区間は、アクチュエータＡ５を駆動する区間を表している。すなわち、アクチュエータＡ８は、動作開示時間ｔ０から時間ｔ２まで駆動し、アクチュエータＡ５は、時間ｔ１から動作終了時間ｔ３まで駆動する。
【０２１１】
図２０に示されるように、アクチュエータＡ８を駆動する区間の一部と、アクチュエータＡ５を駆動する区間の一部が、時間ｔ１から時間ｔ２までの区間で重なっている。２つのアクチュエータが同時に動作しているこの区間で、ノイズの大きさが音声認識の信頼性を損なうほどの大きさになるとする。行動プログラムには、この時間ｔ１から時間ｔ２までの区間が認識結果除去区間として登録されている。従って、ロボット１が敬礼の動作を開始する時刻が分かれば、認識結果を除去すべき時刻を指定することができる。そこで、ステップＳ２２５において、行動制御部１０５は、認識結果を除去すべき時刻（図２０の例の場合、認識結果除去区間として指定された時間ｔ１からｔ２までを、敬礼動作を開始する時刻に足し算した時刻）を、認識結果除去フィルタ１０３に通知する。
【０２１２】
ステップＳ２２６において、行動制御部１０５は、ロボット１が動作を開始する開始時刻および動作を終了する終了時刻をノイズ予測部１０２に通知し、開始時刻から終了時刻までの間におけるノイズ予測値の算出をしないように要求する。その後、処理はステップＳ２２７に進む。
【０２１３】
ステップＳ２２４のいて、行動制御部１０５が、選択された行動は、定型動作ではないと判定した場合、ステップＳ２２５およびステップＳ２２６の処理はスキップされ、処理はステップＳ２２７に進む。
【０２１４】
ステップＳ２２７において、行動制御部１０５は、行動プログラムをサブ制御部６３Ａ乃至６３Ｄに供給し、動作を開始させる。
【０２１５】
以上のようにして、行動処理が実行される。
【０２１６】
次に、図２１のフローチャートを参照して、ロボット１が定型動作を実行する場合のノイズ対応処理について説明する。なお、ステップＳ２４１、ステップＳ２４２、ステップＳ２４４、およびステップＳ２４５の処理は、それぞれ、図１１のステップＳ５１、ステップＳ５２、ステップＳ５５、およびステップＳ５６の処理と同様の処理であるため、説明を省略する。
【０２１７】
ステップＳ２４２の処理が終了した後、ステップＳ２４３において、認識結果除去フィルタ１０３は、図１９のステップＳ２２５で行動制御部１０５から通知された、認識結果を除去すべき時刻を参照して、音声認識部１２１から供給された単語列の中から、認識結果を除去すべき時刻の発話から生成された単語列を検索し、認識結果を除去すべき時刻の発話から生成された単語列が検出された場合、この単語列を除去する。認識結果除去フィルタ１０３は、除去されずに残った単語列を、認識結果評価部１０４に供給する。
【０２１８】
その後の、ステップＳ２４４およびステップＳ２４５の処理は、それぞれ図１１のステップＳ５５およびステップＳ５６の処理と同様である。
【０２１９】
ロボット１が定型動作を実行する場合は、以上のようにしてノイズ対応処理を実行しても良い。これにより、メイン制御部６１は、定型動作中には、ノイズ予測処理を実行しなくてよいため、処理量を減少させることができる。
【０２２０】
なお、以上の説明においては、アクチュエータＡ１乃至Ａ１４が回転する際の角速度を物理量として利用して、ノイズ予測値を算出しているが、このことは、ノイズ予測値を算出するための物理量として、角速度を利用することに限定することを意味するものではない。例えば、ノイズ予測値を算出するための物理量として、アクチュエータの速度等を利用しても良い。
【０２２１】
また、アクチュエータとしては、モータ、油圧ピストンなど、種々の動力源を利用することができる。
【０２２２】
また、以上の説明においては、アクチュエータＡ１乃至Ａ１４と同様、頭部スイッチ５１、および足底スイッチ７６により発生されるノイズに関しても、ノイズ予測値算出式を求め、算出した式に基づいて、ノイズ予測値を算出し、音声認識結果を除去するようにしているが、頭部スイッチ５１、および足底スイッチ７６により発生されるノイズに関しては、ノイズ予測値算出式を利用する代わりに、頭部スイッチ５１、および足底スイッチ７６のいずれかが、オン・オフした場合、その瞬間の音声認識結果を除外するようにしても良い。
【０２２３】
また、以上の説明においては、本発明を人型ロボットに適用した場合を例にして説明したが、本発明は人型ロボット以外のロボット（例えば犬型のロボットなど）に適用したり、産業用ロボットに適用したりすることも可能である。
【０２２４】
上述した一連の処理は、ハードウェアにより実行させることもできるし、上述したようにソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体等からインストールされる。
【０２２５】
図２２は、このような処理を実行するパーソナルコンピュータ３０１の内部構成例を示す図である。パーソナルコンピュータのＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３１１は、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３１２に記憶されているプログラムに従って各種の処理を実行する。ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３１３には、ＣＰＵ３１１が各種の処理を実行する上において必要なデータやプログラムなどが適宜記憶される。入出力インタフェース３１５は、ディスプレイ、スピーカ、およびＤＡ変換器などから構成される出力部３１６も接続されている。また、入出力インタフェース３１５には、マウス、キーボード、マイクロフォン、ＡＤ変換器などから構成される入力部３１７が接続され、入力部３１７に入力された信号をＣＰＵ３１１に出力する。
【０２２６】
さらに、入出力インタフェース３１５には、ハードディスクなどから構成される記憶部３１８、および、インターネットなどのネットワークを介して他の装置とデータの通信を行う通信部３１９も接続されている。ドライブ３２０は、磁気ディスク３３１、光ディスク３３２、光磁気ディスク３３３、半導体メモリ３３４などの記録媒体からデータを読み出したり、データを書き込んだりするときに用いられる。
【０２２７】
記録媒体は、図２２に示されるように、パーソナルコンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク３３１（フレキシブルディスクを含む）、光ディスク３３２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）を含む）、光磁気ディスク３３３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｃ）（登録商標）を含む）、若しくは半導体メモリ３３４などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記憶されているＲＯＭ３１２や記憶部３１８が含まれるハードディスクなどで構成される。
【０２２８】
なお、本明細書において、媒体により提供されるプログラムを記述するステップは、記載された順序に従って、時系列的に行われる処理は勿論、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２２９】
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
【０２３０】
【発明の効果】
このように、本発明によれば、音声を認識することができる。特に、誤りである可能性の高い音声認識結果を、正確に除去することができる。その結果、誤った音声認識結果に基づいて、ロボットが行動してしまうことを防止することができる。
【０２３１】
また、本発明によれば、リアルタイムに修正が行なわれる動作に対しても、誤りである可能性の高い音声認識結果を、正確に除去することができる。また、パターン化された動作に対しては、処理に要する演算量を減少させることができる。
【０２３２】
さらに、本発明によれば、ユーザの発話を集音するマイクロフォン以外に、ノイズ除去用のマイクロフォンを設置する必要がない。
【図面の簡単な説明】
【図１】本発明を適用したロボットの外観構成を示す斜視図である。
【図２】図１のロボットの外観構成を示す、背後側の斜視図である。
【図３】図１のロボットについて説明するための略線図である。
【図４】図１のロボットの内部構成を示すブロック図である。
【図５】図１のロボットの制御に関する部分を主に説明するためのブロック図である。
【図６】図５のメイン制御部の構成を示すブロック図である。
【図７】図６の音声認識部の構成を示すブロック図である。
【図８】ノイズ予測値算出式を求めるための設定処理時の構成例を説明する図である。
【図９】コンピュータの設定処理を説明するフローチャートである。
【図１０】ロボットの設定処理を説明するフローチャートである。
【図１１】ロボットのノイズ対応処理を説明するフローチャートである。
【図１２】図１１のステップＳ５２、および図２１のステップＳ２４２の処理を詳細に説明するフローチャートである。
【図１３】図１１のステップＳ５３の処理を詳細に説明するフローチャートである。
【図１４】図１１のステップＳ５４の処理を詳細に説明するフローチャートである。
【図１５】図１４のステップＳ１２１の処理を説明する図である。
【図１６】除去する区間の選択について説明する図である。
【図１７】図１１のステップＳ５５の処理を詳細に説明するフローチャートである。
【図１８】図１１のステップＳ５４の処理について説明する、図１４とは異なるフローチャートである。
【図１９】ロボットの行動処理を説明するフローチャートである。
【図２０】定型動作における認識結果除去区間を説明する図である。
【図２１】ロボットのノイズ対応処理を説明する図１１とは異なるフローチャートである。
【図２２】本発明を適用したコンピュータの構成を示すブロック図である。
【符号の説明】
１  ロボット，  ５１  頭部スイッチ，  ６１  メイン制御部，  ６３  サブ制御部，  ７６  足底スイッチ，  ７７  角速度センサ，  ８２  マイクロホン，  １０２  ノイズ予測部，  １０３  認識結果除去フィルタ，  １０４  認識結果評価部，  １０５  行動制御部，  １２１  音声認識部，  ２０１  コンピュータ
【図１】
2004258289.tif 000004
【図２】
2004258289.tif 000005
【図３】
2004258289.tif 000006
【図４】
2004258289.tif 000007
【図５】
2004258289.tif 000008
【図６】
2004258289.tif 000009
【図７】
2004258289.tif 000010
【図８】
2004258289.tif 000011
【図９】
2004258289.tif 000012
【図１０】
2004258289.tif 000013
【図１１】
2004258289.tif 000014
【図１２】
2004258289.tif 000015
【図１３】
2004258289.tif 000016
【図１４】
2004258289.tif 000017
【図１５】
2004258289.tif 000018
【図１６】
2004258289.tif 000019
【図１７】
2004258289.tif 000020
【図１８】
2004258289.tif 000021
【図１９】
2004258289.tif 000022
【図２０】
2004258289.tif 000023
【図２１】
2004258289.tif 000024
【図２２】
2004258289.tif 000025