(57)【要約】【課題】未知語とロボットの動作を対応付ける。【解決手段】ステップＳ１２１で、音声認識結果がポーズ名を登録するテンプレート１にマッチした場合、ステップＳ１２２で、単語のクラスタＩＤとカテゴリが対応付けられて記憶され、ステップＳ１２３で、クラスタＩＤとアクチュエータ制御角が対応付けられて記憶される。ステップＳ１２４で、音声認識結果が、ポーズを指令するテンプレート２にマッチした場合、ステップＳ１２５で、クラスタＩＤを基にアクチュエータ制御角の情報が抽出され、ステップＳ１２６で、アクチュエータが制御される。ステップＳ１２７で、音声認識結果が、キャラクタ名やユーザ名の記憶を指令するテンプレート３にマッチした場合、ステップＳ１２８で、クラスタＩＤとカテゴリとが対応つけられて記憶され、テンプレート３にマッチしなければ、ステップＳ１２９で所定の応答処理が実行される。本発明は、ロボットに適用できる。【選択図】      図１９
2004170756.tif 000002
【特許請求の範囲】
【請求項１】
ロボットの動作を制御するロボット制御装置において、
連続する入力音声を認識する認識手段と、
前記認識手段により認識された認識結果に、未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得手段と、
前記獲得手段により獲得された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する登録手段と
を備えることを特徴とするロボット制御装置。
【請求項２】
前記認識手段により認識された前記認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段を更に備え、
前記パターン判定手段により、前記認識結果が前記特定のパターンにマッチしていると判定された場合、前記登録手段は、前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項３】
前記ロボットの状態を検知する検知手段を更に備え、
前記検知手段は、前記認識結果が前記特定のパターンにマッチしていると判定された時点での前記ロボットの状態を検知し、
前記登録手段は、前記単語と、前記検知手段により検知された前記ロボットの状態となるように前記ロボットの動作を制御する情報とを関連付けて登録する
ことを特徴とする請求項２に記載のロボット制御装置。
【請求項４】
前記ロボットの駆動を制御する制御手段と、
前記認識手段により認識された前記認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段と
を更に備え、
前記パターン判定手段により、前記認識結果が前記特定のパターンにマッチしていると判定された場合、前記制御手段は、前記登録手段により、前記単語に関連付けられて登録された前記ロボットの動作を制御する情報に基づいて、前記ロボットの駆動を制御する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項５】
前記獲得手段により獲得された前記単語を、複数のカテゴリに分類して記憶する記憶手段を更に備え、
前記登録手段は、前記記憶手段において、所定のカテゴリで記憶された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する
ことを特徴とする請求項１に記載のロボット制御装置。
【請求項６】
ロボットの動作を制御するロボット制御装置のロボット制御方法において、
連続する入力音声を認識する認識ステップと、
前記認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、
前記判定ステップの処理により、前記認識結果に、前記未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得ステップと、
前記獲得ステップの処理により獲得された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する登録ステップと
を含むことを特徴とするロボット制御方法。
【請求項７】
ロボットの動作を制御する処理をコンピュータに実行させるプログラムであって、
連続する入力音声を認識する認識ステップと、
前記認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、
前記判定ステップの処理により、前記認識結果に、前記未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得ステップと、
前記獲得ステップの処理により獲得された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する登録ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項８】
ロボットの動作を制御する処理をコンピュータに実行させるプログラムであって、
連続する入力音声を認識する認識ステップと、
前記認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、
前記判定ステップの処理により、前記認識結果に、前記未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得ステップと、
前記獲得ステップの処理により獲得された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する登録ステップと
を含むことを特徴とするプログラム。
【請求項９】
ロボットの動作を制御するロボット制御装置において、
前記ロボットの駆動を制御する制御手段と、
前記ロボットの状態を示す情報を、対応する単語に関連付けて登録する登録手段と、
前記制御手段により駆動が制御された前記ロボットの状態を検知する検知手段と、
音声を合成する音声合成手段と、
前記音声合成手段により合成された前記音声を出力する出力手段と
を備え、
前記検知手段により検知された前記ロボットの状態が、前記登録手段により登録されている前記ロボットの状態を示す情報に合致した場合、前記音声合成手段は、前記登録手段により登録されている前記ロボットの状態を示す情報に関連付けられた前記単語を含む音声を合成する
ことを特徴とするロボット制御装置。
【請求項１０】
ユーザからの指令を受ける入力手段を更に備え、
前記検出手段は、前記入力手段により、所定の時間、操作入力を受けなかった場合、前記ロボットの状態を検出する
ことを特徴とする請求項９に記載のロボット制御装置。
【請求項１１】
連続する入力音声を認識する認識手段と、
前記認識手段による認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段と
を更に備え、
前記判定手段により、前記認識結果が前記特定のパターンにマッチすると判定された場合、前記検出手段は、前記ロボットの状態を検出する
ことを特徴とする請求項９に記載のロボット制御装置。
【請求項１２】
前記認識手段により認識された認識結果に、未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得手段を更に備え、
前記登録手段は、前記獲得手段により獲得された前記未知語に対応する単語と前記ロボットの状態を示す情報を関連付けて記憶する
ことを特徴とする請求項９に記載のロボット制御装置。
【請求項１３】
ロボットの状態を示す情報と対応する単語が関連付けられて登録されている登録情報を用いて、前記ロボットの動作を制御するロボット制御装置のロボット制御方法において、
前記ロボットの状態を検知する検知ステップと、
前記検知ステップの処理により検知された前記ロボットの状態が、前記登録情報に登録されている前記登録情報に合致しているか否かを判断する判断ステップと、
前記判断ステップの処理により、前記ロボットの状態が、前記登録情報に登録されている前記ロボットの状態を示す情報に合致していると判断された場合、前記ロボットの状態を示す情報に関連付けられた前記単語を含む音声を合成する音声合成ステップと
を含むことを特徴とするロボット制御方法。
【請求項１４】
ロボットの状態を示す情報と対応する単語が関連付けられて登録されている登録情報を用いて、前記ロボットの動作を制御する処理をコンピュータに実行させるプログラムであって、
前記ロボットの状態を検知する検知ステップと、
前記検知ステップの処理により検知された前記ロボットの状態が、前記登録情報に登録されている前記登録情報に合致しているか否かを判断する判断ステップと、
前記判断ステップの処理により、前記ロボットの状態が、前記登録情報に登録されている前記ロボットの状態を示す情報に合致していると判断された場合、前記ロボットの状態を示す情報に関連付けられた前記単語を含む音声を合成する音声合成ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。
【請求項１５】
ロボットの状態を示す情報と対応する単語が関連付けられて登録されている登録情報を用いて、前記ロボットの動作を制御する処理をコンピュータに実行させるプログラムであって、
前記ロボットの状態を検知する検知ステップと、
前記検知ステップの処理により検知された前記ロボットの状態が、前記登録情報に登録されている前記登録情報に合致しているか否かを判断する判断ステップと、
前記判断ステップの処理により、前記ロボットの状態が、前記登録情報に登録されている前記ロボットの状態を示す情報に合致していると判断された場合、前記ロボットの状態を示す情報に関連付けられた前記単語を含む音声を合成する音声合成ステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ロボット制御装置および方法、記録媒体、並びにプログラムに関し、特に、音声認識、音声出力、および、駆動が可能なロボットを制御する場合に用いて好適な、ロボット制御装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
対話システムにおいて、何かの名前を音声で登録するという場面は、多く発生する。例えば、ユーザが自分の名前を登録したり、対話システムに名前をつけたり、地名や店名を入力したりするという場面である。
【０００３】
従来、このような音声登録を簡単に実現する方法としては、何かのコマンドによって登録モードに移行して、登録が終了したら通常の対話モードに戻るというものがある。この場合、例えば、「ユーザ名登録」という音声コマンドによって登録モードに移行して、その後でユーザが名前を発声したらそれが登録され、その後、通常モードに戻る処理が行われる。
【０００４】
例えば、音声認識可能なロボットに、名前を付けてほしいことを表す行動を起こさせることによって、ロボット名登録モードに移行することをユーザに通知するようにし、ロボットの行動が制御された後に入力された音声から、最適音素列を検出し、最適音素列を、名前として登録するようにした技術がある（例えば、特許文献１参照）。
【０００５】
【特許文献１】
特開２００２−１２０１７７号公報
【０００６】
【発明が解決しようとする課題】
しかしながら、このような音声登録の方法では、コマンドによるモード切換えをしなければならず、対話としては不自然であり、ユーザにとっては煩わしいという課題がある。また、名付ける対象が複数存在する場合、コマンドの数が増えるため、いっそう煩わしくなる。
【０００７】
例えば、上述したように、ロボットの行動により、登録モードへの移行をユーザに通知するようにした場合、名付ける対象によってロボットの動作を変更し、ユーザが、ロボットの動作と登録内容の関係を把握しておかなければならないなど、音声登録が非常に煩わしいものとなってしまう。
【０００８】
更に、登録モード中に、ユーザが名前以外の単語（例えば、「こんにちは」）を話してしまった場合、名前以外の単語も名前として登録されてしまう。また、例えば、「太郎」という名前だけではなく、「私の名前は太郎です。」といったように、ユーザが名前以外の言葉を付加して話した場合、全体（「私の名前は太郎です。」）が名前として登録されてしまう。
【０００９】
また、登録された単語は、登録された単語を用いた音声出力処理や、登録後に同じ単語がユーザにより発声された場合の認識処理に用いられるのみであった。
【００１０】
本発明はこのような状況に鑑みてなされたものであり、通常の対話の中で登録された単語を、ロボットの動作と対応付けて記憶し、ロボットの動作に利用することができるようにするものである。
【００１１】
【課題を解決するための手段】
本発明の第１のロボット制御装置は、連続する入力音声を認識する認識手段と、認識手段により認識された認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得手段と、獲得手段により獲得された単語を、ロボットの動作を制御する情報に関連付けて登録する登録手段とを備えることを特徴とする。
【００１２】
認識手段により認識された認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段を更に備えさせるようにすることができ、パターン判定手段により、認識結果が特定のパターンにマッチしていると判定された場合、登録手段には、単語を、ロボットの動作を制御する情報に関連付けて登録させるようにすることができる。
【００１３】
ロボットの状態を検知する検知手段を更に備えさせるようにすることができ、検知手段には、認識結果が特定のパターンにマッチしていると判定された時点でのロボットの状態を検知させるようにすることができ、登録手段には、単語と、検知手段により検知されたロボットの状態となるようにロボットの動作を制御する情報とを関連付けて登録させるようにすることができる。
【００１４】
ロボットの駆動を制御する制御手段と、認識手段により認識された認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段とを更に備えさせるようにすることができ、パターン判定手段により、認識結果が特定のパターンにマッチしていると判定された場合、制御手段には、登録手段により、単語に関連付けられて登録されたロボットの動作を制御する情報に基づいて、ロボットの駆動を制御させるようにすることができる。
【００１５】
獲得手段により獲得された単語を、複数のカテゴリに分類して記憶する記憶手段を更に備えさせるようにすることができ、登録手段には、記憶手段において、所定のカテゴリで記憶された単語を、ロボットの動作を制御する情報に関連付けて登録させるようにすることができる。
【００１６】
本発明の第１のロボット制御方法は、連続する入力音声を認識する認識ステップと、認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、判定ステップの処理により、認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得ステップと、獲得ステップの処理により獲得された単語を、ロボットの動作を制御する情報に関連付けて登録する登録ステップとを含むことを特徴とする。
【００１７】
本発明の第１の記録媒体に記録されているプログラムは、連続する入力音声を認識する認識ステップと、認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、判定ステップの処理により、認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得ステップと、獲得ステップの処理により獲得された単語を、ロボットの動作を制御する情報に関連付けて登録する登録ステップとを含むことを特徴とする。
【００１８】
本発明の第１のプログラムは、連続する入力音声を認識する認識ステップと、認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、判定ステップの処理により、認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得ステップと、獲得ステップの処理により獲得された単語を、ロボットの動作を制御する情報に関連付けて登録する登録ステップとを含むことを特徴とする。
【００１９】
本発明の第１のロボット制御装置および方法、並びに、プログラムにおいては、連続する入力音声が認識され、認識結果に未知語が含まれているか否かが判定され、未知語が含まれていると判定された場合、未知語に対応する単語が獲得されて、獲得された単語が、ロボットの動作を制御する情報に関連付けられて登録される。
【００２０】
本発明の第２のロボット制御装置は、ロボットの駆動を制御する制御手段と、ロボットの状態を示す情報を、対応する単語に関連付けて登録する登録手段と、制御手段により駆動が制御されたロボットの状態を検知する検知手段と、音声を合成する音声合成手段と、音声合成手段により合成された音声を出力する出力手段とを備え、検知手段により検知されたロボットの状態が、登録手段により登録されているロボットの状態を示す情報に合致した場合、音声合成手段は、登録手段により登録されているロボットの状態を示す情報に関連付けられた単語を含む音声を合成することを特徴とする。
【００２１】
ユーザからの指令を受ける入力手段を更に備えさせるようにすることができ、検出手段には、入力手段により、所定の時間、操作入力を受けなかった場合、ロボットの状態を検出させるようにすることができる。
【００２２】
連続する入力音声を認識する認識手段と、認識手段による認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段とを更に備えさせるようにすることができ、判定手段により、認識結果が特定のパターンにマッチすると判定された場合、検出手段には、ロボットの状態を検出させるようにすることができる。
【００２３】
認識手段により認識された認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得手段を更に備えさせるようにすることができ、登録手段には、獲得手段により獲得された未知語に対応する単語とロボットの状態を示す情報を関連付けて記憶させるようにすることができる。
【００２４】
本発明の第２のロボット制御方法は、ロボットの状態を検知する検知ステップと、検知ステップの処理により検知されたロボットの状態が、登録情報に登録されている登録情報に合致しているか否かを判断する判断ステップと、判断ステップの処理により、ロボットの状態が、登録情報に登録されているロボットの状態を示す情報に合致していると判断された場合、ロボットの状態を示す情報に関連付けられた単語を含む音声を合成する音声合成ステップとを含むことを特徴とする。
【００２５】
本発明の第２の記録媒体に記録されているプログラムは、ロボットの状態を検知する検知ステップと、検知ステップの処理により検知されたロボットの状態が、登録情報に登録されている登録情報に合致しているか否かを判断する判断ステップと、判断ステップの処理により、ロボットの状態が、登録情報に登録されているロボットの状態を示す情報に合致していると判断された場合、ロボットの状態を示す情報に関連付けられた単語を含む音声を合成する音声合成ステップとを含むことを特徴とする。
【００２６】
本発明の第２のプログラムは、ロボットの状態を検知する検知ステップと、検知ステップの処理により検知されたロボットの状態が、登録情報に登録されている登録情報に合致しているか否かを判断する判断ステップと、判断ステップの処理により、ロボットの状態が、登録情報に登録されているロボットの状態を示す情報に合致していると判断された場合、ロボットの状態を示す情報に関連付けられた単語を含む音声を合成する音声合成ステップとを含むことを特徴とする。
【００２７】
本発明の第２のロボット制御装置および方法、並びに、プログラムにおいては、ロボットの状態が検知され、検知されたロボットの状態が、登録情報に登録されている登録情報に合致しているか否かが判断され、ロボットの状態が、登録情報に登録されているロボットの状態を示す情報に合致していると判断された場合、ロボットの状態を示す情報に関連付けられた単語を含む音声が合成されて出力される。
【００２８】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【００２９】
図１は、本発明を適用した２足歩行型のロボット１の正面方向の斜視図であり、図２は、ロボット１の背面方向からの斜視図である。また、図３は、ロボット１の軸構成について説明するための図である。
【００３０】
ロボット１は、胴体部ユニット１１の上部に頭部ユニット１２が配設されるとともに、胴体部ユニット１１の上部左右に、同様の構成を有する腕部ユニット１３Ａ、および、腕部ユニット１３Ｂが所定位置にそれぞれ取り付けられ、かつ、胴体部ユニット１１の下部左右に、同様の構成を有する脚部ユニット１４Ａ、および、脚部ユニット１４Ｂが所定位置にそれぞれ取り付けられることにより構成されている。頭部ユニット１２には、タッチセンサ５１が設けられている。
【００３１】
胴体部ユニット１１においては、体幹上部を形成するフレーム２１および体幹下部を形成する腰ベース２２が、腰関節機構２３を介して連結することにより構成されており、体幹下部の腰ベース２２に固定された腰関節機構２３のアクチュエータＡ１、および、アクチュエータＡ２をそれぞれ駆動することによって、体幹上部を、図３に示す直交するロール軸２４およびピッチ軸２５の回りに、それぞれ独立に回転させることができるようになされている。
【００３２】
また頭部ユニット１２は、フレーム２１の上端に固定された肩ベース２６の上面中央部に首関節機構２７を介して取り付けられており、首関節機構２７のアクチュエータＡ３、および、アクチュエータＡ４をそれぞれ駆動することによって、図３に示す直交するピッチ軸２８およびヨー軸２９の回りに、それぞれ独立に回転させることができるようになされている。
【００３３】
更に、腕部ユニット１３Ａ、および、腕部ユニット１３Ｂは、肩関節機構３０を介して肩ベース２６の左右にそれぞれ取り付けられており、対応する肩関節機構３０のアクチュエータＡ５、および、アクチュエータＡ６をそれぞれ駆動することによって、図３に示す、直交するピッチ軸３１およびロール軸３２の回りに、それぞれを独立に回転させることができるようになされている。
【００３４】
この場合、腕部ユニット１３Ａ、および、腕部ユニット１３Ｂにおいては、上腕部を形成するアクチュエータＡ７の出力軸に、肘関節機構４４を介して、前腕部を形成するアクチュエータＡ８が連結され、前腕部の先端に手部３４が取り付けられることにより構成されている。
【００３５】
そして腕部ユニット１３Ａ、および腕部ユニット１３Ｂでは、アクチュエータＡ７を駆動することによって、前腕部を図３に示すヨー軸３５に対して回転させることができ、アクチュエータＡ８を駆動することによって、前腕部を図３に示すピッチ軸３６対して回転させることができるようになされている。
【００３６】
脚部ユニット１４Ａ、および、脚部ユニット１４Ｂは、股関節機構３７を介して、体幹下部の腰ベース２２にそれぞれ取り付けられており、対応する股関節機構３７のアクチュエータＡ９乃至Ａ１１をそれぞれ駆動することによって、図３に示す、互いに直交するヨー軸３８、ロール軸３９、およびピッチ軸４０に対して、それぞれ独立に回転させることができるようになされている。
【００３７】
脚部ユニット１４Ａ、および、脚部ユニット１４Ｂは、大腿部を形成するフレーム４１の下端が、膝関節機構４２を介して、下腿部を形成するフレーム４３に連結されるとともに、フレーム４３の下端が、足首関節機構４４を介して、足部４５に連結されることにより構成されている。
【００３８】
これにより脚部ユニット１４Ａ、および、脚部ユニット１４Ｂにおいては、膝関節機構４２を形成するアクチュエータＡ１２を駆動することによって、図３に示すピッチ軸４６に対して、下腿部を回転させることができ、また足首関節機構４４のアクチュエータＡ１３、および、アクチュエータＡ１４をそれぞれ駆動することによって、図３に示す直交するピッチ軸４７およびロール軸４８に対して、足部４５をそれぞれ独立に回転させることができるようになされている。
【００３９】
また、胴体部ユニット１１の体幹下部を形成する腰ベース２２の背面側には、後述するメイン制御部６１や周辺回路６２（いずれも図４）などを内蔵したボックスである、制御ユニット５２が配設されている。
【００４０】
図４は、ロボット１のアクチュエータとその制御系等について説明する図である。
【００４１】
制御ユニット５２には、ロボット１全体の動作制御をつかさどるメイン制御部６１、電源回路および通信回路などの周辺回路６２、および、バッテリ７４（図５）などが収納されている
【００４２】
そしてこの制御ユニット５２は、各構成ユニット（胴体部ユニット１１、頭部ユニット１２、腕部ユニット１３Ａおよび腕部ユニット１３Ｂ、並びに、脚部ユニット１４Ａおよび脚部ユニット１４Ｂ）内にそれぞれ配設されたサブ制御部６３Ａ乃至サブ制御部６３Ｄと接続されており、サブ制御部６３Ａ乃至サブ制御部６３Ｄに対して必要な電源電圧を供給したり、サブ制御部６３Ａ乃至サブ制御部６３Ｄと通信を行う。
【００４３】
また、サブ制御部６３Ａ乃至サブ制御部６３Ｄは、対応する構成ユニット内のアクチュエータＡ１乃至アクチュエータＡ１４と、それぞれ接続されており、メイン制御部６１から供給された各種制御コマンドに基づいて、構成ユニット内のアクチュエータＡ１乃至アクチュエータＡ１４を、指定された状態に駆動させるように制御する。
【００４４】
図５は、ロボット１の内部構成を示すブロック図である。
【００４５】
頭部ユニット１２には、このロボット１の「目」として機能するＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ  ）カメラ８１、「耳」として機能するマイクロホン８２、タッチセンサ５１などからなる外部センサ部７１、および、「口」として機能するスピーカ７２となどがそれぞれ所定位置に配設され、制御ユニット５２内には、バッテリセンサ９１および加速度センサ９２などからなる内部センサ部７３が配設されている。
【００４６】
そして、外部センサ部７１のＣＣＤカメラ８１は、周囲の状況を撮像し、得られた画像信号Ｓ１Ａを、メイン制御部６１に送出する。マイクロホン８２は、ユーザから音声入力として与えられる「歩け」、「とまれ」または「右手を挙げろ」等の各種命令音声を集音し、得られた音声信号Ｓ１Ｂを、メイン制御部６１に送出する。
【００４７】
また、タッチセンサ５１は、例えば、図１および図２に示されるように頭部ユニット１２の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、検出結果を、圧力検出信号Ｓ１Ｃとしてメイン制御部６１に送出する。
【００４８】
内部センサ部７３のバッテリセンサ９１は、バッテリ７４のエネルギ残量を所定の周期で検出し、検出結果をバッテリ残量検出信号Ｓ２Ａとして、メイン制御部６１に送出する。加速度センサ９２は、ロボット１の移動について、３軸方向（ｘ軸、ｙ軸およびｚ軸）の加速度を、所定の周期で検出し、検出結果を、加速度検出信号Ｓ２Ｂとして、メイン制御部６１に送出する。
【００４９】
メイン制御部６１は、外部センサ部７１のＣＣＤカメラ８１、マイクロホン８２およびタッチセンサ５１からそれぞれ供給される、画像信号Ｓ１Ａ、音声信号Ｓ１Ｂおよび圧力検出信号Ｓ１Ｃ（以下、これらをまとめて外部センサ信号Ｓ１と称する）と、内部センサ部７３のバッテリセンサ９１および加速度センサ等からそれぞれ供給される、バッテリ残量検出信号Ｓ２Ａおよび加速度検出信号Ｓ２Ｂ（以下、これらをまとめて内部センサ信号Ｓ２と称する）に基づいて、ロボット１の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無などを判断する。
【００５０】
そして、メイン制御部６１は、ロボット１の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無の判断結果と、内部メモリ６１Ａに予め格納されている制御プログラム、あるいは、そのとき装填されている外部メモリ７５に格納されている各種制御パラメータなどに基づいて、ロボット１の行動を決定し、決定結果に基づく制御コマンドを生成して、対応するサブ制御部６３Ａ乃至サブ制御部６３Ｄに送出する。サブ制御部６３Ａ乃至サブ制御部６３Ｄは、供給された制御コマンドに基づいて、アクチュエータＡ１乃至アクチュエータＡ１４のうち、対応するものの駆動を制御するので、ロボット１は、例えば、頭部ユニット１２を上下左右に揺動させたり、腕部ユニット１３Ａ、あるいは、腕部ユニット１３Ｂを上に挙げたり、脚部ユニット１４Ａおよび脚部ユニット１４Ｂを交互に駆動させて、歩行するなどの行動を行うことが可能となる。
【００５１】
また、メイン制御部６１は、必要に応じて、所定の音声信号Ｓ３をスピーカ７２に与えることにより、音声信号Ｓ３に基づく音声を外部に出力させる。更に、メイン制御部６１は、外見上の「目」として機能する、頭部ユニット１２の所定位置に設けられた、図示しないＬＥＤに対して駆動信号を出力することにより、ＬＥＤを点滅させる。
【００５２】
このようにして、ロボット１においては、周囲および内部の状況や、ユーザからの指令および働きかけの有無などに基づいて、自律的に行動することができるようになされている。
【００５３】
次に、図６は、図５のメイン制御部６１の機能的構成例を示している。なお、図６に示す機能的構成は、メイン制御部６１が、メモリ６１Ａに記憶された制御プログラムを実行することで実現されるようになっている。
【００５４】
メイン制御部６１は、特定の外部状態を認識するセンサ入力処理部１０１、センサ入力処理部１０１の認識結果を累積して、ロボット１の感情、本能、あるいは、成長の状態などのモデルを記憶するモデル記憶部１０２、音声認識結果と行動内容のテーブルを記憶するテーブル記憶部１０４、センサ入力処理部１０１の認識結果や、テーブル記憶部１０４に記憶されているテーブル等に基づいて、ロボット１の行動を決定する行動決定機構部１０３、行動決定機構部１０３の決定結果に基づいて、実際にロボット１に行動を起こさせる姿勢遷移機構部１０５、並びに合成音を生成する音声合成部１０６から構成されている。
【００５５】
センサ入力処理部１０１は、マイクロホン８２や、ＣＣＤカメラ８１、タッチセンサ５１等から与えられる音声信号、画像信号、圧力検出信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部１０２および行動決定機構部１０３に通知する。
【００５６】
すなわち、センサ入力処理部１０１は、音声認識部１０１Ａを有しており、音声認識部１０１Ａは、マイクロホン８２から与えられる音声信号について音声認識を行う。そして、音声認識部１０１Ａは、例えば、「歩け」、「止まれ」、「右手を挙げろ」等の指令、その他の音声認識結果を、状態認識情報として、モデル記憶部１０２および行動決定機構部１０３に通知する。
【００５７】
また、音声認識部１０１Ａは、未知語（ＯＯＶ：Ｏｕｔ  Ｏｆ  Ｖｏｃａｂｕｌａｒｙ）を新たに認識することが可能であり、必要に応じて、認識した未知語に対応付けられたＩＤを、行動決定機後部１０３に供給する。未知語の認識の詳細については、後述する。
【００５８】
また、センサ入力処理部１０１は、画像認識部１０１Ｂを有しており、画像認識部１０１Ｂは、ＣＣＤカメラ８１から与えられる画像信号を用いて、画像認識処理を行う。そして、画像認識部１０１Ｂは、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」等の画像認識結果を、状態認識情報として、モデル記憶部１０２および行動決定機構部１０３に通知する。
【００５９】
更に、センサ入力処理部１０１は、圧力処理部１０１Ｃを有しており、圧力処理部１０１Ｃは、タッチセンサ５１から与えられる圧力検出信号を処理する。そして、圧力処理部１０１Ｃは、その処理の結果、所定の閾値以上で、かつ短時間の圧力を検出したときには、「叩かれた（しかられた）」と認識し、所定の閾値未満で、かつ長時間の圧力を検出したときには、「撫でられた（ほめられた）」と認識して、その認識結果を、状態認識情報として、モデル記憶部１０２および行動決定機構部１０３に通知する。
【００６０】
モデル記憶部１０２は、ロボット１の感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶、管理している。
【００６１】
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態（度合い）を、所定の範囲（例えば、−１．０乃至１．０等）の値によってそれぞれ表し、センサ入力処理部１０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部１０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。成長モデルは、例えば、「幼年期」、「青年期」、「熟年期」、「老年期」等の成長の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部１０１からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００６２】
モデル記憶部１０２は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動決定機構部１０３に送出する。
【００６３】
なお、モデル記憶部１０２には、センサ入力処理部１０１から状態認識情報が供給される他、行動決定機構部１０３から、ロボット１の現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、モデル記憶部１０２は、同一の状態認識情報が与えられても、行動情報が示すロボット１の行動に応じて、異なる状態情報を生成するようになっている。
【００６４】
即ち、例えば、ロボット１が、ユーザに挨拶をし、ユーザに頭を撫でられた場合には、ユーザに挨拶をしたという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部１０２に与えられ、この場合、モデル記憶部１０２では、「うれしさ」を表す感情モデルの値が増加される。
【００６５】
一方、ロボット１が、何らかの仕事を実行中に頭を撫でられた場合には、仕事を実行中であるという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部１０２に与えられ、この場合、モデル記憶部１０２では、「うれしさ」を表す感情モデルの値は変化されない。
【００６６】
このように、モデル記憶部１０２は、状態認識情報だけでなく、現在または過去のロボット１の行動を示す行動情報も参照しながら、感情モデルの値を設定する。これにより、例えば、何らかのタスクを実行中に、ユーザが、いたずらするつもりで頭を撫でたときに、「うれしさ」を表す感情モデルの値を増加させるような、不自然な感情の変化が生じることを回避することができる。
【００６７】
なお、モデル記憶部１０２は、本能モデルおよび成長モデルについても、感情モデルにおける場合と同様に、状態認識情報および行動情報の両方に基づいて、その値を増減させるようになっている。また、モデル記憶部１０２は、感情モデル、本能モデル、成長モデルそれぞれの値を、他のモデルの値にも基づいて増減させるようになっている。
【００６８】
行動決定機構部１０３は、センサ入力処理部１０１からの状態認識情報や、モデル記憶部１０２からの状態情報、時間経過等に基づいて、必要に応じて、テーブル記憶部１０４に記憶されたテーブルを参照して、次の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部１０５に送出する。
【００６９】
また、行動決定機構部１０３は、センサ入力処理部１０１の音声認識部１０１Ａから、例えば、「これは、＜ＯＯＶ（未知語）＞ポーズだよ」などの、所定の第１のルールに合致した音声入力を受けた場合、サブ制御部６３Ａ乃至サブ制御部６３Ｄから供給される、アクチュエータＡ１乃至アクチュエータＡ１４の状態を示す信号と、音声認識の結果得られた、ポーズを示す未知語とを、対応付けて、テーブル記憶部１０４に記憶させる。
【００７０】
そして、行動決定機構部１０３は、センサ入力処理部１０１の音声認識部１０１Ａから、例えば、「＜ＯＯＶ＞して」などの、所定の第２のルールに合致した音声入力を受け、このときの＜ＯＯＶ＞が、テーブル記憶部１０４に記憶されていた場合、テーブル記憶部１０４に記憶されている、＜ＯＯＶ＞に対応するアクチュエータの制御情報を読み出し、姿勢遷移機構部１０５に供給する。
【００７１】
すなわち、行動決定機構部１０３は、ロボット１がとり得る行動をステート（状態：ｓｔａｔｅ）に対応させた有限オートマトンを、ロボット１の行動を規定する行動モデルとして管理しており、この行動モデルとしての有限オートマトンにおけるステートを、センサ入力処理部１０１からの状態認識情報や、モデル記憶部１０２における感情モデル、本能モデル、または成長モデルの値、時間経過等に基づいて遷移させ、遷移後のステートに対応する行動を、次にとるべき行動として決定する。
【００７２】
ここで、行動決定機構部１０３は、所定のトリガ（ｔｒｉｇｇｅｒ）があったことを検出すると、ステートを遷移させる。即ち、行動決定機構部１０３は、例えば、現在のステートに対応する行動を実行している時間が所定時間に達したときや、特定の状態認識情報を受信したとき、モデル記憶部１０２から供給される状態情報が示す感情や、本能、成長の状態の値が所定の閾値以下または以上になったとき等に、ステートを遷移させる。
【００７３】
なお、行動決定機構部１０３は、上述したように、センサ入力処理部１０１からの状態認識情報だけでなく、モデル記憶部１０２における感情モデルや、本能モデル、成長モデルの値等にも基づいて、行動モデルにおけるステートを遷移させることから、同一の状態認識情報が入力されても、感情モデルや、本能モデル、成長モデルの値（状態情報）によっては、ステートの遷移先は異なるものとなる。
【００７４】
なお、行動決定機構部１０３では、上述したように、ロボット１の頭部や手足等を動作させる行動指令情報の他、ロボット１に発話を行わせる行動指令情報も生成される。ロボット１に発話を行わせる行動指令情報は、音声合成部１０６に供給されるようになっており、音声合成部１０６に供給される行動指令情報には、音声合成部１０６に生成させる合成音に対応するテキスト等が含まれる。そして、音声合成部１０６は、行動決定部５２から行動指令情報を受信すると、その行動指令情報に含まれるテキストに基づき、合成音を生成し、スピーカ１８に供給して出力させる。これにより、スピーカ１８からは、例えば、「こんにちは」などのユーザへの挨拶、ユーザへの各種の要求、あるいは、「何ですか？」等のユーザの呼びかけに対する応答その他の音声出力が行われる。
【００７５】
姿勢遷移機構部１０５は、行動決定機構部１０３から供給される行動指令情報に基づいて、ロボット１の姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これをサブ制御部６３Ａ乃至６３Ｄに送出する。
【００７６】
図７は、センサ入力処理部１０１の音声認識部１０１Ａの機能を示す機能ブロック図である。
【００７７】
音声認識処理部１２１には、ユーザからの発話に基づく音声信号が入力されるようになっており、音声認識処理部１２１は、入力された音声信号を認識し、その音声認識の結果としてのテキスト、その他付随する情報を、対話制御部１２３および単語獲得部１２４に、必要に応じて出力する。音声認識処理部１２１の詳細については、図１０を用いて後述する。
【００７８】
単語獲得部１２４は、音声認識処理部１２１が有する認識用辞書に登録されていない単語（未知語）について、音響的特徴を自動的に記憶し、それ以降、その単語の音声を認識できるようにする。
【００７９】
すなわち、単語獲得部１２４は、入力音声の未知語部分に対応する発音を音韻タイプライタによって求め、それをいくつかのクラスタに分類する。各クラスタはＩＤと代表音韻系列を持ち、ＩＤで管理される。このときのクラスタの状態を、図８を参照して説明する。
【００８０】
例えば、「あか」、「あお」、「ガッツ」という３回の入力音声があったとする。この場合、単語獲得部１２４は、３回の音声を、それぞれに対応した「あか」クラスタ１４１、「あお」クラスタ１４２、「ガッツ」クラスタ１４３の、３つのクラスタに分類し、各クラスタには、代表となる音韻系列（図８の例の場合、“ａ／ｋ／ａ，  “ａ／ｏ“，  “ｇ／ａ／ｔ／ｔ／ｕ”）とＩＤ（図８の例の場合、「１」、「２」、「３」）を付加する。
【００８１】
ここで再び、「あか」という音声が入力されると、対応するクラスタがすでに存在するので、単語獲得部１２４は、入力音声を「あか」クラスタ１４１に分類し、新しいクラスタは生成しない。これに対して、「くろ」という音声が入力された場合、対応するクラスタが存在しないので、単語獲得部１２４は、「くろ」に対応したクラスタ１４４を新たに生成し、そのクラスタには、代表的な音韻系列（図８の例の場合、“ｋ／ｕ／ｒ／ｏ”）とＩＤ（図８の例の場合、「４」）を付加する。
【００８２】
したがって、入力音声が未獲得の語であるか否かは、新たなクラスタが生成されたかどうかによって判定できる。なお、このような単語獲得処理の詳細は、本出願人が先に提案した特願２００１−９７８４３号に開示されている。
【００８３】
連想記憶部１２２は、登録した単語（未知語）がユーザ名であるか、キャラクタ名であるかといったカテゴリ等の情報を記憶する。例えば、図９の例では、クラスタＩＤとカテゴリ名とが対応して記憶されている。図９の例の場合、例えば、クラスタＩＤ「１」、および、クラスタＩＤ「４」は、「ユーザ名」のカテゴリに対応され、クラスタＩＤ「２」は、「キャラクタ名」のカテゴリに対応され、クラスタＩＤ「３」は、「ポーズ名」のカテゴリに対応されている。
【００８４】
対話制御部１２３は、音声認識処理部１２１の出力からユーザの発話の内容を理解し、その理解の結果に基づいて、単語（未知語）の登録を制御する。また、対話制御部１２３は、連想記憶部１２２に記憶されている登録済みの単語の情報に基づいて、登録済みの単語を認識できるように、それ以降の対話を制御する。
【００８５】
このようにして、音声認識部１０１Ａにおいて認識された音声は、行動決定機構部１０３に供給される。
【００８６】
ここでは、単語獲得部１２４が、音韻タイプライタによって得られた発音から、クラスタを生成し、それ以降の未知語の入力時には、クラスタとのマッチングが行われるものとして説明しているが、例えば、クラスタを生成することなく、未知語として、音韻系列そのもの（例えば、“ｋ／ｕ／ｒ／ｏ”など）に、ＩＤを付加し、新たに未知語が入力された場合、音韻系列で比較して、入力された未知語が、すでにＩＤが付加された未知語のうちのいずれかに一致するか否かを判断するようにしても良い。
【００８７】
図１０は、音声認識処理部１２１の構成例を示している。
【００８８】
ユーザの発話は、マイクロホン８２に入力され、マイクロホン８２では、その発話が、電気信号としての音声信号に変換される。この音声信号は、ＡＤ（Ａｎａｌｏｇ  Ｄｉｇｉｔａｌ）変換部１７１に供給される。ＡＤ変換部１７１は、マイクロホン８２からのアナログ信号である音声信号をサンプリングして、量子化し、ディジタル信号である音声データに変換する。この音声データは、特徴量抽出部１７２に供給される。
【００８９】
特徴量抽出部１７２は、ＡＤ変換部１７１からの音声データについて、適当なフレームごとに、例えば、スペクトル、パワー線形予測係数、ケプストラム係数、線スペクトル対等の特徴パラメータを抽出し、マッチング部１７３および音韻タイプライタ部１７４に供給する。
【００９０】
マッチング部１７３は、特徴量抽出部１７２からの特徴パラメータに基づき、音響モデルデータベース１８１、辞書データベース１８２、および言語モデルデータベース１８３を必要に応じて参照しながら、マイクロホン８２に入力された音声（入力音声）に最も近い単語列を求める。
【００９１】
音響モデルデータベース１８１は、音声認識する音声の言語における個々の音韻や音節などの音響的な特徴を表す音響モデルを記憶している。音響モデルとしては、例えば、ＨＭＭ（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ）などを用いることができる。辞書データベース１８２は、認識対象の各単語（語句）について、その発音に関する情報が記述された単語辞書や、音韻や音節の連鎖関係を記述したモデルを記憶している。
【００９２】
なお、ここにおける単語とは、認識処理において１つのまとまりとして扱った方が都合の良い単位のことであり、言語学的な単語とは必ずしも一致しない。例えば、「タロウ君」は、それ全体を１単語として扱ってもよいし、「タロウ」、「君」という２単語として扱ってもよい。更に、もっと大きな単位である「こんにちはタロウ君」等を１単語として扱ってもよい。
【００９３】
また、音韻とは、音響的に１つの単位として扱った方が処理上都合のよいもののことであり、音声学的な音韻や音素とは必ずしも一致しない。例えば、「東京」の「とう」の部分を”ｔ／ｏ／ｕ”という３個の音韻記号で表してもよいし、”ｏ”の長音である”ｏ：”という記号を用いて”ｔ／ｏ：”と表してもよい。または、”ｔ／ｏ／ｏ”と表すことも可能である。他にも、無音を表す記号を用意したり、更にそれを「発話前の無音」、「発話に挟まれた短い無音区間」、「発話語の無音」、「「っ」の部分の無音」のように細かく分類してそれぞれに記号を用意してもよい。
【００９４】
言語モデルデータベース１８３は、辞書データベース１８２の単語辞書に登録されている各単語がどのように連鎖する（接続する）かに関する情報を記述している。
【００９５】
音韻タイプライタ部１７４は、特徴量抽出部１７２から供給された特徴パラメータに基づいて、入力された音声に対応する音韻系列を取得する。音韻タイプライタ部１７４は、例えば、「私の名前は太郎です。」という音声から”ｗ／ａ／ｔ／ａ／ｓｈ／ｉ／ｎ／ｏ／ｎ／ａ／ｍ／ａ／ｅ／ｗ／ａ／ｔ／ａ／ｒ／ｏ：／ｄ／ｅ／ｓ／ｕ”という音韻系列を取得する。この音韻タイプライタには、既存のものを用いることができる。
【００９６】
なお、音韻タイプライタ部１７４に代わって、任意の音声に対して音韻系列を取得できる他の構成を用いるようにしてもよい。例えば、日本語の音節（あ・い・う・・・か・き・・・・ん）を単位とする音声認識や、音韻よりも大きく、単語よりは小さな単位であるサブワードを単位とする音声認識等を用いることも可能である。
【００９７】
制御部１７５は、ＡＤ変換部１７１、特徴量抽出部１７２、マッチング部１７３、音韻タイプライタ部１７４の動作を制御する。
【００９８】
次に、図１１のフローチャートを参照して、ロボット１が音声入力を受けた場合の処理について説明する。
【００９９】
ステップＳ１において、音声認識部１０１Ａの音声認識処理部１２１は、マイクロホン８２から、音声の入力を受けたか否かを判断する。ステップＳ１において、音声の入力を受けていないと判断された場合、音声の入力を受けたと判断されるまで、ステップＳ１の処理が繰り返される。
【０１００】
ステップＳ２において、図１２を用いて後述する音声認識処理が実行される。
【０１０１】
ステップＳ３において、音声認識処理部１２１の制御部１７５は、ステップＳ２において認識された単語列に、未知語が含まれているか否かを判定する。
【０１０２】
ステップＳ４において、未知語が含まれていると判定された場合、ステップＳ４において、制御部１７５が単語獲得部１２４を制御することにより、図１８を用いて後述する単語獲得処理が実行される。
【０１０３】
ステップＳ５において、対話制御部１２３により、ステップＳ４の処理により獲得された単語が用いられて、図１９を用いて後述するテンプレートマッチング処理が実行されて、処理が終了される。
【０１０４】
ステップＳ３において、未知語が含まれていないと判定された場合、ステップＳ５において、音声認識処理部１２１の制御部１７５は、認識された音声を、行動決定機構部１０３、および、必要に応じて、モデル記憶部１０２に出力する。行動決定機構部１０３は、供給された音声認識結果に基づいた所定の応答処理を実行する。
【０１０５】
具体的には、例えば、認識された音声が、「前に進め」であった場合、行動決定機構部１０３は、ロボット１の行動を規定する行動モデルに合致した、ロボット１の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部１０５に送出する。姿勢遷移機構部１０５は、アクチュエータＡ１乃至アクチュエータＡ１４のうち、必要なものの制御情報を生成し、サブ制御部６３Ａ乃至サブ制御部６３Ｄに供給して、アクチュエータＡ１乃至アクチュエータＡ１４のうち対応するものを駆動させ、ロボット１に「前に進む」行動を実行させる。
【０１０６】
あるいは、文法に合致しないなどの理由により、正しく音声認識ができなかった場合、行動決定機構部１０３は、ロボット１に、「何ですか？」と発話させるための行動指令情報を生成し、音声合成部１０６に供給して、スピーカ７２から、「何ですか？」という音声を出力させる。また、行動決定機構部１０３は、「何ですか？」という音声の出力と同時に、頭部ユニット１２を横に傾かせる（首をかしげるしぐさをさせる）ための動指令情報を生成し、姿勢遷移機構部１０５に送出する。姿勢遷移機構部１０５は、アクチュエータＡ３およびアクチュエータＡ４に首を傾かせる動作をさせるための制御情報を生成し、サブ制御部６３Ｂに供給して、アクチュエータＡ３およびアクチュエータＡ４を駆動させ、ロボット１に「首をかしげる」ポーズをさせるようにしてもよい。
【０１０７】
次に、図１２のフローチャートを参照して、図１１のステップＳ２において実行される音声認識処理について説明する。
【０１０８】
ステップＳ２１において、ＡＤ変換部１７１は、マイクロホン８２より供給されたアナログの音声信号を、ディジタル信号である音声データに変換し、特徴量抽出部１７２に供給する。
【０１０９】
特徴量抽出部１７２は、ステップＳ２２において、ＡＤ変換部１７１からの音声データを受信し、ステップＳ２３において、適当なフレームごとに、例えば、スペクトル、パワー、それらの時間変化量等の特徴パラメータを抽出し、マッチング部１７３に供給する。
【０１１０】
ステップＳ２４において、マッチング部１７３は、辞書データベース１８２に格納されている単語モデルのうちのいくつかを連結する。
【０１１１】
ステップＳ２５において、図１７を用いて後述する単語列生成処理が実行される。なお、この単語列を構成する単語には、辞書データベース１８２に登録されている既知語だけでなく、登録されていない未知語を表すシンボルである“＜ＯＯＶ＞”も含まれている。
【０１１２】
ステップＳ２６において、音韻タイプライタ部１７４は、ステップＳ２４およびステップＳ２５の処理とは独立して、ステップＳ２３の処理で抽出された特徴パラメータに対して、音韻を単位とする認識を行い、音韻系列を出力する。例えば、「私の名前は太郎（未知語）です。」という音声が入力された場合、音韻タイプライタ部１７４は、”ｗ／ａ／ｔ／ａ／ｓｈ／ｉ／ｎ／ｏ／ｎ／ａ／ｍ／ａ／ｅ／ｗ／ａ／ｔ／ａ／ｒ／ｏ：／ｄ／ｅ／ｓ／ｕ”という音韻系列を出力する。
【０１１３】
ステップＳ２７において、マッチング部１７３は、ステップＳ２５において生成された単語列ごとに、音響スコアを計算する。＜ＯＯＶ＞（未知語）を含まない単語列に対する音響スコアの計算方法には、既存の方法、すなわち各単語列（単語モデルを連結したもの）に対して音声の特徴パラメータを入力することで尤度を計算するという方法を用いる。一方、既存の方法では＜ＯＯＶ＞に相当する音声区間の音響スコアを求めることができない（＜ＯＯＶ＞に対応する単語モデルは事前には存在しないため）ので、＜ＯＯＶ＞を含む単語列に対する音響スコアの計算においては、その音声区間については、音韻タイプライタの認識結果の中から、同区間の音響スコアを取り出し、その値に補正をかけたものを、＜ＯＯＶ＞の音響スコアとして採用する方法を用いる。マッチング部１７３は、更に、＜ＯＯＶ＞の音響スコアと、他の既知語部分の音響スコアとを統合し、それをその単語列の音響スコアとする。
【０１１４】
ステップＳ２８において、マッチング部１７３は、音響スコアの高い単語列を上位ｍ個（ｍ≦ｎ）残し、候補単語列とする。ステップＳ２９において、マッチング部１７３は、言語モデルデータベース１８３を参照して、候補単語列ごとに、言語スコアを計算する。言語スコアは、認識結果の候補である単語列が言葉としてどれだけふさわしいかを表す。ここで、この言語スコアを計算する方法を詳細に説明する。
【０１１５】
本発明の音声認識処理部１２１は、未知語も認識することができるため、言語モデルは未知語に対応している必要がある。例として、未知語に対応した文法または有限状態オートマトン（ＦＳＡ：Ｆｉｎｉｔｅ  Ｓｔａｔｅ  Ａｕｔｏｍａｔｏｎ）を用いた場合と、同じく未知語に対応したｔｒｉ−ｇｒａｍ（統計言語モデルの１つである）を用いた場合とについて説明する。
【０１１６】
図１３を参照して、文法の例について説明する。この文法はＢＮＦ（Ｂａｃｋｕｓ  Ｎａｕｒ  Ｆｏｒｍ）で記述されている。図１３において、＄Ａ”は「変数」を表し、”Ａ｜Ｂ”は「ＡまたはＢ」という意味を表す。また、”［Ａ］”は「Ａは省略可能」という意味を表し、｛Ａ｝は「Ａを０回以上繰り返す」という意味を表す。
【０１１７】
＜ＯＯＶ＞は未知語を表すシンボルであり、文法中に＜ＯＯＶ＞を記述しておくことで、未知語を含む単語列に対しても対処することができる。”＄ＡＣＴＩＯＮ”には、例えば、「起立」、「着席」、「お辞儀」、「挨拶」等の、名称と動作内容の対応が予め設定されている場合の、動作に対応する単語が定義されている。
【０１１８】
この文法では、「＜先頭＞／こんにちは／＜終端＞」（“／”は単語間の区切り）、「＜先頭＞／さようなら／＜終端＞」、「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞／です／＜終端＞」のように、データベースに記憶されている文法に当てはまる単語列は受理される（この文法で解析される）が、「＜先頭＞／君／の／＜ＯＯＶ＞／名前／＜終端＞」といった、データベースに記憶されている文法に当てはまらない単語列は受理されない（この文法で解析されない）。なお、「＜先頭＞」と「＜終端＞」はそれぞれ発話前と後の無音を表す特殊なシンボルである。
【０１１９】
この文法を用いて言語スコアを計算するために、パーザ（解析機）が用いられる。パーザは、単語列を、文法を受理できる単語列と、受理できない単語列に分ける。即ち、例えば、受理できる単語列には言語スコア１が与えられて、受理できない単語列には言語スコア０が与えられる。
【０１２０】
したがって、例えば、「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞（ｔ／ａ／ｒ／ｏ：）／です／＜終端＞」と、「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞（ｊ／ｉ／ｒ／ｏ：）／です／＜終端＞」という２つの単語列があった場合、いずれも「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞／です／＜終端＞」に置き換えられた上で言語スコアが計算されて、ともに言語スコア１（受理）が出力される。
【０１２１】
また、単語列の文法が受理できるか否かの判定は、事前に文法を等価（近似でも良い）な有限状態オートマトン（以下、ＦＳＡと称する）に変換しておき、各単語列がそのＦＳＡで受理できるか否かを判定することによっても実現できる。
【０１２２】
図１３の文法を等価なＦＳＡに変換した例を、図１４に示す。ＦＳＡは、状態（ノード）とパス（アーク）とからなる有向グラフである。図１４に示されるように、Ｓ１は開始状態、Ｓ２０は終了状態である。また、”＄ＡＣＴＩＯＮ”には、図１３と同様に、実際には動作に対応する単語が登録されている。
【０１２３】
パスには単語が付与されていて、所定の状態から次の状態に遷移する場合、パスはこの単語を消費する。ただし、”ε”が付与されているパスは、単語を消費しない特別な遷移（以下、ε遷移と称する）である。例えば、「＜先頭＞／私／は／＜ＯＯＶ＞／です／＜終端＞」においては、初期状態Ｓ１から状態Ｓ２に遷移して、＜先頭＞が消費され、状態Ｓ２から状態Ｓ３へ遷移して、「私」が消費されるが、状態Ｓ３から状態Ｓ５への遷移は、ε遷移なので、単語は消費されない。即ち、状態Ｓ３から状態Ｓ５へスキップして、次の状態Ｓ６へ遷移することができる。
【０１２４】
所定の単語列がこのＦＳＡで受理できるか否かは、初期状態Ｓ１から出発して、終了状態Ｓ２０まで到達できるか否かで判定される。
【０１２５】
即ち、例えば、「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞／です／＜終端＞」においては、初期状態Ｓ１から状態Ｓ２へ遷移して、単語「＜先頭＞」が消費される。次に、状態Ｓ２から状態Ｓ３へ遷移して、単語「私」が消費される。以下、同様に、状態Ｓ３から状態Ｓ４へ、状態Ｓ４から状態Ｓ５へ、状態Ｓ５から状態Ｓ６へ、状態Ｓ６から状態Ｓ７へ順次遷移して、「の」、「名前」、「は」、「＜００Ｖ＞」、が次々に消費される。更に、状態Ｓ７から状態Ｓ１９へ遷移して、「です」が消費され、状態Ｓ１９から状態Ｓ２０に遷移して、「＜終端＞」が消費され、結局、終了状態Ｓ２０へ到達する。したがって、「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞／です／＜終端＞」はＦＳＡで受理される。
【０１２６】
しかしながら、「＜先頭＞／君／の／＜ＯＯＶ＞／名前／＜終端＞」は、状態Ｓ１から状態Ｓ２へ、状態Ｓ２から状態Ｓ８へ、状態Ｓ８から状態Ｓ９までは遷移して、「＜先頭＞」、「君」、「の」までは消費されるが、その先には遷移できないので、終了状態Ｓ１６へ到達することはできない。したがって、「＜先頭＞／君／の／＜ＯＯＶ＞／名前／＜終端＞」は、ＦＳＡで受理されない（不受理）。
【０１２７】
また、「＜先頭＞／さようなら／＜終端＞」「＜先頭＞／こんにちは／＜終端＞」においては、いずれも、状態Ｓ１から状態Ｓ２へ遷移して、単語「＜先頭＞」が消費され、状態Ｓ２から状態Ｓ１９へ遷移して、単語「さようなら」または「こんにちわ」が消費され、状態Ｓ１９から状態Ｓ２０に遷移して、「＜終端＞」が消費される。
【０１２８】
「＜先頭＞／これは／＜ＯＯＶ＞／ポーズ／だよ／＜終端＞」または、それに類似する単語列である「＜先頭＞／これは／＜ＯＯＶ＞／です／＜終端＞」などにおいては、状態Ｓ１から状態Ｓ２へ遷移して、単語「＜先頭＞」が消費され、状態Ｓ２から状態Ｓ１３へ遷移して、単語「これは」が、状態Ｓ１３から状態Ｓ１４へ遷移して、単語「＜ＯＯＶ＞」が消費され、状態Ｓ１３から状態Ｓ１４へ遷移して、単語「ポーズ」が消費されるか、あるいは、状態Ｓ１３から状態Ｓ１４へε遷移し、状態Ｓ１４から状態Ｓ１９へ遷移して、単語「だよ」または「です」が消費されるか、あるいは、状態Ｓ１４から状態Ｓ１９へε遷移し、最後に、状態Ｓ１９から状態Ｓ２０に遷移して、「＜終端＞」が消費される。
【０１２９】
そして、「＜先頭＞／＜ＯＯＶ＞（キャラクタ名）／＄ＡＣＴＩＯＮ／して／＜終端＞」または、それに類似する単語列である「＜先頭＞／＜ＯＯＶ＞（キャラクタ名）／＜ＯＯＶ＞（ポーズ名）／ポーズ／して／＜終端＞」などにおいては、状態Ｓ１から状態Ｓ２へ遷移して、単語「＜先頭＞」が消費され、状態Ｓ２から状態Ｓ１６へ遷移して、単語「＜ＯＯＶ＞」（未知語のキャラクタ名）が消費され、状態Ｓ１６から状態Ｓ１８へ遷移して、予め定められた動作を示す単語「＄ＡＣＴＩＯＮ」が消費されるか、あるいは、状態Ｓ１６から状態Ｓ１７へ遷移して、単語「＜ＯＯＶ＞」（未知語のポーズ名）が消費された後、状態Ｓ１７から状態Ｓ１８へε遷移するか、または、単語「ポーズ」が消費される。そして、状態Ｓ１８から状態Ｓ１９へ遷移して、単語「して」が消費されて、最後に、状態Ｓ１９から状態Ｓ２０に遷移して、「＜終端＞」が消費される。
【０１３０】
更に、言語モデルとして、統計言語モデルの１つであるｔｒｉ−ｇｒａｍを用いた場合の言語スコアを計算する例を、図１５を参照して説明する。統計言語モデルとは、その単語列の生成確率を求めて、それを言語スコアとする言語モデルである。即ち、例えば、図１５に示される言語モデルの「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞／です／＜終端＞」の言語スコアは、第２行に示されるように、その単語列の生成確率で表される。これは更に、第３行乃至第６行で示されるように、条件付き確率の積として表される。なお、例えば、「Ｐ（の｜＜先頭＞  私）」は、「の」の直前の単語が「私」で、「私」の直前の単語が「＜先頭＞」であるという条件の下で、「の」が出現する確率を表す。
【０１３１】
更に、ｔｒｉ−ｇｒａｍでは、図１５の第３行乃至第６行で示される式を、第７行乃至第９行で示されるように、連続する３単語の条件付き確率で近似させる。これらの確率値は、図１６に示されるようなｔｒｉ−ｇｒａｍデータベースを参照して求められる。このｔｒｉ−ｇｒａｍデータベースは、予め大量のテキストを分析して求められたものである。
【０１３２】
図１６の例では、３つの連続する単語ｗ１，ｗ２，ｗ３の確率Ｐ（ｗ３｜ｗ１ｗ２）が表されている。例えば、３つの単語ｗ１，ｗ２，ｗ３が、それぞれ、「＜先頭＞」、「私」、「の」である場合、確率値は０．１２とされ、「私」、「の」、「名前」である場合、確率値は０．０１とされ、「＜ＯＯＶ＞」、「です」、「＜終端＞」である場合、確率値は、０．８７とされている。
【０１３３】
もちろん、「Ｐ（Ｗ）」および「Ｐ（ｗ２｜ｗ１）」についても、同様に、予め求めておく。
【０１３４】
このようにして、言語モデル中の＜ＯＯＶ＞について、エントリ処理をしておくことで、＜ＯＯＶ＞を含む単語列に対して、言語スコアを計算することができる。したがって、認識結果に＜ＯＯＶ＞というシンボルを出力することができる。
【０１３５】
また、他の種類の言語モデルを用いる場合も、＜ＯＯＶ＞についてのエントリ処理をすることによって、同様に＜ＯＯＶ＞を含む単語列に対して、言語スコアを計算することができる。
【０１３６】
更に、＜ＯＯＶ＞のエントリが存在しない言語モデルを用いた場合でも、＜ＯＯＶ＞を言語モデル中の適切な単語にマッピングする機構を用いることで、言語スコアの計算ができる。例えば、「Ｐ（＜ＯＯＶ＞｜私は）」が存在しないｔｒｉ−ｇｒａｍデータベースを用いた場合でも、「Ｐ（太郎｜私は）」でデータベースをアクセスして、そこに記述されている確率を「Ｐ（＜ＯＯＶ＞｜私は）」の値とみなすことで、言語スコアの計算ができる。
【０１３７】
図１２の音声認識処理についての説明に戻る。ステップＳ３０において、マッチング部１７３は、音響スコアと言語スコアを統合する。ステップＳ３１において、マッチング部１７３は、ステップＳ３０において求められた音響スコアと言語スコアの両スコアを統合したスコアに基づいて、最もよいスコアをもつ候補単語列を選択して、認識結果として出力する。
【０１３８】
なお、言語モデルとして、有限状態オートマトンを使用している場合は、ステップＳ３０の統合処理を、言語スコアが０の場合は単語列を消去し、言語スコアが０以外の場合はそのまま残すという処理にしてもよい。
【０１３９】
次に、図１７のフローチャートを参照して、図１２のステップＳ２５において実行される、単語列生成処理について説明する。
【０１４０】
ステップＳ６１において、マッチング部１７３は、入力音声のある区間について、辞書データベース１８２に登録されている既知語とマッチングさせた結果の音響スコアと、音韻タイプライタ部１７４により得られた結果（今の場合、”ｗ／ａ／ｔ／ａ／ｓｈ／ｉ／ｎ／ｏ／ｎ／ａ／ｍ／ａ／ｅ／ｗ／ａ／ｔ／ａ／ｒ／ｏ：／ｄ／ｅ／ｓ／ｕ”の中の一部区間）の音響スコアとの、両方の場合の音響スコアを計算する。音響スコアは、音声認識結果の候補である単語列と入力音声とが音としてどれだけ近いかを表す。
【０１４１】
そして、次に、入力音声の一部区間と辞書データベース１８２に登録されている既知語とをマッチングさせた結果の音響スコアと、音韻タイプライタ部１７４による結果の音響スコアが比較されるのであるが、既知語とのマッチングは単語単位で行われ、音韻タイプライタ部１７４でのマッチングは音韻単位で行われ、尺度が異なっているので、そのままでは比較することが困難である（一般的には、音韻単位の音響スコアの方が大きな値となる）。
【０１４２】
そこで、尺度を合わせて比較できるようにするために、ステップＳ６２において、マッチング部１７３は、音韻タイプライタ部１７４により得られた結果の音響スコアを補正する。
【０１４３】
ステップＳ６２においては、例えば、音韻タイプライタ部１７４からの音響スコアに係数をかけたり、一定の値やフレーム長に比例した値などを減じたりする処理が行われる。もちろん、この処理は相対的なものなので、既知語とマッチングさせた結果得られる音響スコアに対して行うこともできる。なお、この処理の詳細は、例えば、文献「”ＥＵＲＯＳＰＥＥＣＨ９９  Ｖｏｌｕｍｅ  １，  Ｐａｇｅ  ４９−５２”」に「ＯＯＶ−Ｄｅｔｅｃｔｉｏｎ  ｉｎ  Ｌａｒｇｅ  Ｖｏｃａｂｕｌａｒｙ  Ｓｙｓｔｅｍ  Ｕｓｉｎｇ  Ａｕｔｏｍａｔｉｃａｌｌｙ  Ｄｅｆｉｎｅｄ  Ｗｏｒｄ−Ｆｒａｇｍｅｎｔｓ  ａｓ  Ｆｉｌｌｅｒｓ」として開示されている。
【０１４４】
マッチング部１７３は、ステップＳ６３において、この２つの音響スコアを比較し、音韻タイプライタ部１７４で認識させた結果の音響スコアの方が高い（優れている）か否かを判定する。音韻タイプライタ部１７４で認識させた結果得られる音響スコアの方が高い場合、ステップＳ６４において、マッチング部１７３は、その区間を、未知語＜ＯＯＶ＞であると推定する。
【０１４５】
ステップＳ６３において、既知語とマッチングさせた結果の音響スコアに対して、音韻タイプライタ部１７４で認識された結果の音響スコアの方が低いと判定された場合、ステップＳ６５において、マッチング部１７３は、その区間を既知語であると推定する。
【０１４６】
即ち、例えば、「たろう」に相当する区間について、音韻タイプライタ部１７４の出力した”ｔ／ａ／ｒ／ｏ：”の音響スコアと、既知語でマッチングさせた場合の音響スコアを比較して、”ｔ／ａ／ｒ／ｏ：”の音響スコアの方が高い場合は、その音声区間に相当する単語として「＜ＯＯＶ＞（ｔ／ａ／ｒ／ｏ：）」が出力され、既知語の音響スコアの方が高い場合は、その既知語が音声区間に相当する単語として出力される。
【０１４７】
ステップＳ６４、または、ステップＳ６５の処理の終了後、ステップＳ６６において、マッチング部１７３は、音響スコアが高くなると推測される単語列（いくつかの単語モデルを連結したもの）を優先的にｎ個を生成して、処理は、図１２のステップＳ２６に戻る。
【０１４８】
このような処理により、図１２のステップＳ２７の処理において、音響スコアの計算に用いられる単語列が生成される。
【０１４９】
次に、図１８のフローチャートを参照して、図１１のステップＳ４において実行される単語獲得処理について説明する。
【０１５０】
ステップＳ９１において、単語獲得部１２４は、音声認識処理部１２１から未知語（＜ＯＯＶ＞）の特徴パラメータを抽出する。
【０１５１】
ステップＳ９２において、単語獲得部１２４は、未知語が既獲得のクラスタに属するか否かを判定する。ステップＳ９２において、未知語が既獲得のクラスタに属すると判定された場合、新しいクラスタを生成する必要がないので、処理は、ステップＳ９４に進む。
【０１５２】
ステップＳ９２において、未知語が既獲得のクラスタに属さないと判定された場合、ステップＳ９３において、単語獲得部１２４は、その未知語に対応する、新しいクラスタを生成する。
【０１５３】
ステップＳ９２において、未知語が既獲得のクラスタに属すると判定された場合、または、ステップＳ９３の処理の終了後、ステップＳ９４において、単語獲得部１２４は、未知語の属するクラスタのＩＤを音声認識処理部１２１に出力し、処理は、図１１のステップＳ５に進む。
【０１５４】
このような処理により、続く図１１のステップＳ５において、テンプレートとマッチングされる未知語の単語が獲得される。
【０１５５】
図１８においては、未知語の特徴量パラメータから、未知語が既獲得のクラスタに属するか否かを判定し、既獲得のクラスタに属さない場合は、新たなクラスタを生成するものとして説明しているが、クラスタを生成することなく、例えば、音韻系列にＩＤを対応付けるものとし、すでに獲得されている未知語であるか否かは、音韻系列の比較によって行うようにしてもよい。
【０１５６】
次に、図１９のフローチャートを参照して、図１１のステップＳ５において実行される、テンプレートマッチング処理について説明する。
【０１５７】
ステップＳ１２１において、音声認識部１０１Ａの対話制御部１２３は、供給された音声認識結果が、未知語をポーズ名として登録するテンプレート１にマッチしているか否か、すなわち、認識結果の単語列が何かのポーズ名の登録を意味するものか否かを判定する。
【０１５８】
図２０を用いて、テンプレート１について説明する。なお、図２０と、後述する図２２、図２３、および図２４においては、”／Ａ／”は「文字列Ａが含まれていたら」という意味を表し、”Ａ｜Ｂ”は「ＡまたはＢ」という意味を表す。また、”．”は「任意の文字」を表し、”Ａ＋”は「Ａの１回以上の繰り返し」という意味を表し、”（．）＋”は「任意の文字列」を表す。
【０１５９】
認識結果の単語列が、例えば、「＜先頭＞／これは／＜ＯＯＶ＞（ｇ／ａ／ｔ／ｔ／ｕ：）／ポーズ／です／＜終端＞」という単語列である場合、この認識結果から生成された文字列「これは＜ＯＯＶ＞ポーズです」が、テンプレート１の、正規表現”／これは＜ＯＯＶ＞（カテゴリ；ポーズ名）／”にマッチするので、対応する「＜ＯＯＶ＞（カテゴリ；ポーズ名）に対応するクラスタＩＤを、ポーズ名として登録」する動作と、その時点における「アクチュエータ制御角とともに、テーブルに記憶」する動作を実行させることを表している。
【０１６０】
具体的には、例えば、ユーザが、ロボット１の両腕を上に挙げさせた状態にし、「これはガッツ（ポーズ）だよ」と発声した場合、未知語＜ガッツ（ポーズ）＞が獲得されて、テンプレート１に対応していることが検出される。
【０１６１】
ステップＳ１２１において、テンプレート１にマッチしていると判断された場合、ステップＳ１２２において、連想記憶部１２２は、図９を用いて説明したように、単語のクラスタＩＤとカテゴリを、対応させて記憶する。
【０１６２】
ステップＳ１２３において、音声認識部１０１Ａは、クラスタＩＤを行動決定機構部１０３に供給する。また、行動決定機構部１０３は、サブ制御部６３Ａ乃至サブ制御部６３Ｄから、現在の、アクチュエータＡ１乃至アクチュエータＡ１４の状態（角度）を取得する。行動決定機構部１０３は、供給されたクラスタＩＤと、アクチュエータ制御角の情報を対応付けて、図２１に示されるようなテーブルを、テーブル記憶部１０４に記憶させ、処理が終了される。
【０１６３】
具体的には、例えば、ユーザが、ロボット１の両腕を上に挙げさせた状態にし、「これはガッツ（ポーズ）だよ」と発声した場合、＜ガッツ（ポーズ）＞に対応付けられたクラスタＩＤが、ロボット１の両腕を上に挙げさせた状態のアクチュエータＡ１乃至アクチュエータＡ１４の状態（角度）と対応付けられて、テーブル記憶部１０４に記憶される。
【０１６４】
ステップＳ１２１において、テンプレート１にマッチしていないと判断された場合、ステップＳ１２４において、対話制御部１２３は、供給された音声認識結果が、未知語に対応付けられたポーズをロボット１に指令するテンプレート２にマッチしているか否かを判断する。
【０１６５】
図２２を用いて、テンプレート２について説明する。認識結果の単語列が、例えば、「＜先頭＞／＜ＯＯＶ＞（ｂ／ａ／ｎ／ｚ／ａ／ｉ）／して／＜終端＞」という単語列である場合、この認識結果から生成された文字列「＜ＯＯＶ＞して」が、テンプレート２の、正規表現”／＜ＯＯＶ＞（カテゴリ；ポーズ名）＋して／”にマッチするので、対応する「＜ＯＯＶ＞（カテゴリ；ポーズ名）に対応するクラスタＩＤを基に、テーブル記憶部１０４を参照して、＜ＯＯＶ＞に対応するアクションを実行」の動作が実行される。
【０１６６】
ステップＳ１２４において、テンプレート２にマッチしていると判断された場合、ステップＳ１２５において、音声認識部１０１Ａは、認識された未知語のクラスタＩＤを行動決定機構部１０３に供給する。行動決定機構部１０３は、テーブル記憶部１０４を参照して、供給されたクラスタＩＤを基に、図２１を用いて説明したようなテーブルから、アクチュエータ制御角の情報を抽出し、姿勢遷移機構部１０５に供給する。
【０１６７】
ステップＳ１２６において、姿勢遷移機構部１０５は、アクチュエータ制御角の情報に基づいて、サブ制御部６３Ａ乃至サブ制御部６３Ｄのうちの対応するものに、アクチュエータＡ１乃至アクチュエータＡ１４のうちの必要なものを制御させて、処理が終了される。
【０１６８】
具体的には、例えば、ユーザが、ロボット１に対して、「バンザイして」と発声した場合、単語獲得部１２４において、未知語＜バンザイ＞が獲得され、対話制御部１２３で、テンプレート２に対応していることが検出される。そして、行動決定機構部１０３は、テーブル記憶部１０４を参照して、＜バンザイ＞に対応するアクチュエータの制御情報を取得し、サブ制御部６３Ａ乃至サブ制御部６３Ｄのうちの対応するものに供給して、ロボット１にバンザイに対応するポーズをさせることができる。
【０１６９】
ステップＳ１２４において、テンプレート２にマッチしていないと判断された場合、ステップＳ１２７において、対話制御部１２３は、供給された音声認識結果が、キャラクタ名やユーザ名の記憶をロボット１に指令するテンプレート３にマッチしているか否かを判断する。
【０１７０】
図２３を用いて、テンプレート３について説明する。例えば、認識結果が、「＜先頭＞／君／の／名前／は／＜ＯＯＶ＞（ｔ／ａ／ｒ／ｏ：）／だよ／＜終端＞」という単語列である場合、この認識結果から生成された文字列「君の名前は＜ＯＯＶ＞だよ」が、正規表現「／君（．）＋は＜ＯＯＶ＞／」に対応するので、「＜ＯＯＶ＞に対応するクラスタＩＤをキャラクタ名として登録」の動作が実行される。また、認識結果が、「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞（ｔ／ａ／ｒ／ｏ：）／です／＜終端＞」という単語列である場合、この認識結果から生成された文字列「私の名前は＜ＯＯＶ＞です」が、正規表現「（私｜僕）（．）＋は＜ＯＯＶ＞／」に対応するので、「＜ＯＯＶ＞に対応するクラスタＩＤをユーザ名として登録」の動作が実行される。
【０１７１】
ステップＳ１２７において、テンプレート３にマッチしていると判断された場合、ステップＳ１２８において、対話制御部１２３は、連想記憶部１２２に、音声認識結果である単語のクラスタＩＤと、ユーザ名またはキャラクタ名のカテゴリを対応させて記憶させて処理が終了される。
【０１７２】
なお、ロボット１の利用方法によっては、登録する単語が１種類しかない（例えば、「ユーザ名」のみ）場合もあり、その場合は、テンプレートと連想記憶部１２２は簡略化することができる。例えば、テンプレートの内容を「認識結果に＜ＯＯＶ＞が含まれていたら、そのＩＤを記憶する」として、連想記憶部１２２にそのクラスタＩＤのみを記憶させることができる。
【０１７３】
対話制御部１２３は、このようにして連想記憶部１２２に登録された情報を、以後の対話の判断処理に反映させる。例えば、ロボット１の側で、「ユーザの発話の中に、「キャラクタ名」が含まれているかどうかを判定し、含まれている場合は『呼びかけられた』と判断して、それに応じた返事をする」という処理や、「ロボット１がユーザの名前をしゃべる」という処理が必要になった場合、対話制御部１２３は、連想記憶部１２２に記録されている情報を参照することで、ロボット１に相当する単語（カテゴリ名が「キャラクタ名」であるエントリ）やユーザ名に相当する単語（カテゴリ名が「ユーザ名」であるエントリ）を得ることができる。
【０１７４】
ステップＳ１２７において、テンプレート３にマッチしていないと判断された場合、ステップＳ１２９において、対話制御部１２３は、入力音声に対応する所定の応答処理を実行する。すなわち、この場合には、未知語の登録処理は行われず、例えば、「歩け」という命令に対して、歩く動作を行うなどの、ユーザからの入力音声に対応する所定の処理が実行されて、処理が終了される。
【０１７５】
このようにして、取得した音声データを正規表現と照らし合わせることにより、所定のテンプレートに合致しているか否かが判断され、いずれかのテンプレートに合致していると判断された場合、そのテンプレートに対応した行動を実行するように、ロボット１の動作が制御される。
【０１７６】
なお、図２０、図２２および図２３を用いて説明したテンプレート１乃至テンプレート３の内容は、この限りではなく、例えば、テンプレート２の正規表現に、”／＜ＯＯＶ＞（カテゴリ；ポーズ名）＋ポーズ＋して／”を加えたり、テンプレート２の正規表現を、”／＜ＯＯＶ＞（カテゴリ；ポーズ名）（．）＋して／”とするようにしても良い。
【０１７７】
ところで、言語モデルとして文法を用いる場合、文法の中に音韻タイプライタ相当の記述も組み込むことができる。この場合の文法の例について、図２４を用いて説明する。図２４に示される文法において、第１行目の変数”＄ＰＨＯＮＥＭＥ”は、全ての音韻が「または」を意味する”｜”で繋がれているので、音韻記号の内のどれか１つを意味する。変数”＄ＯＯＶ”は、変数”＄ＰＨＯＮＥＭＥ”を０回以上繰り返すことを表している。すなわち、「任意の音韻記号を０回以上接続したもの」を意味し、音韻タイプライタに相当する。したがって、第３行目の「は」と「です」の間の変数”＄ＯＯＶ”は、任意の発音を受け付けることができる。
【０１７８】
図２４に示される文法を用いた場合の認識結果では、変数”＄ＯＯＶ”に相当する部分が複数のシンボルで出力される。例えば、「私の名前は太郎です」の認識結果が「＜先頭＞／私／の／名前／は／ｔ／ａ／ｒ／ｏ：／です／＜終端＞」となる。この結果を「＜先頭＞／私／の／名前／は／＜ＯＯＶ＞（ｔ／ａ／ｒ／ｏ：）／です」に変換すると、図１１のステップＳ３以降の処理は、音韻タイプライタを用いた場合と同様に実行することができる。
【０１７９】
以上においては、未知語に関連する情報として、カテゴリを登録するようにしたが、その他の情報を登録するようにしてもよい。
【０１８０】
また、ロボット１は、ユーザの指令に基づいた処理を実行するのみならず、ユーザの操作を受けない状態においても、自動的に、動作を行うことができる。その動作は、予め設定されているものであっても良いが、例えば、上述した処理により、未知語と対応付けられて記憶された動作を、ランダムに実行するようにし、ロボット１が、自分自身の動作を認識して、ポーズに対応する発話を自動的に行うようにしてもよい。
【０１８１】
図２５のフローチャートを参照して、ロボット１が実行する、動作認識発話処理について説明する。
【０１８２】
ステップＳ１５１において、音声認識部１０１Ａの音声認識処理部１２１は、マイクロホン８２から、音声の入力を受けたか否かを判断する。ステップＳ１５１において、音声の入力を受けていないと判断された場合、音声の入力を受けたと判断されるまで、ステップＳ１５１の処理が繰り返される。
【０１８３】
ステップＳ１５２において、図１２を用いて説明した音声認識処理が実行される。
【０１８４】
ステップＳ１５３において、音声認識部１０１Ａの対話制御部１２３は、供給された音声認識結果が、「そのポーズは何？」であったか否かを判断する。
【０１８５】
ステップＳ１５３において、「そのポーズは何？」という音声を認識しなかったと判断された場合、ステップＳ１５４において、行動決定機構部１０３は、図示しない内部のタイマが、ユーザからの指令の入力を受けない状態で、所定の時間が経過したことを通知したか否かを判断する。ステップＳ１５４において、タイマが所定経過時間を通知していないと判断された場合、処理は、ステップＳ１５１に戻り、それ以降の処理が繰り返される。
【０１８６】
ステップＳ１５３において、「そのポーズは何？」という音声を認識したと判断された場合、または、ステップＳ１５４において、タイマが所定経過時間を通知したと判断された場合、ステップＳ１５５において、行動決定機構部１０３は、サブ制御部６３Ａ乃至サブ制御部６３Ｄから供給される信号を基に、アクチュエータＡ１乃至アクチュエータＡ１４の制御角を認識する。
【０１８７】
ステップＳ１５６において、行動決定機構部１０３は、テーブル記憶部１０４に記憶されている、ポーズ名とアクチュエータＡ１乃至アクチュエータＡ１４の制御角との対応を示すテーブルを参照して、ステップＳ１５５において認識したアクチュエータＡ１乃至アクチュエータＡ１４の制御角に対応するポーズ名を検索する。
【０１８８】
ステップＳ１５７において、行動決定機構部１０３は、テーブル記憶部１０４に記憶されているテーブルに、ステップＳ１５５において認識したアクチュエータＡ１乃至アクチュエータＡ１４の制御角に対応するポーズ名があるか否かを判断する。ステップＳ１５７において、対応するポーズ名がないと判断された場合、処理は、ステップＳ１５１に戻り、それ以降の処理が繰り返される。
【０１８９】
ステップＳ１５７において、対応するポーズ名があると判断された場合、ステップＳ１５８において、行動決定機構部１０３は、テーブル記憶部１０４を参照して、対応する、カテゴリがポーズ名である未知語を抽出し、音声合成部１０６を制御して、例えば、「いま、＜ＯＯＶ＞ポーズをしているのです」と言う音声を合成させ、スピーカ７２から出力、すなわち、発話させて、処理は、ステップＳ１５１に戻り、それ以降の処理が繰り返される。
【０１９０】
以上のような処理により、ロボット１は、ユーザの発話に対する応答のみならず、自分自身の動作を認識することにより、テーブルとして記憶しているアクチュエータＡ１乃至アクチュエータＡ１４の制御角に対応するポーズ名を利用して、自動的に発話することができる。
【０１９１】
以上説明した処理においては、静止したポーズにおけるアクチュエータＡ１乃至アクチュエータＡ１４の制御角と、獲得した未知語を対応付けて記憶させる場合について説明したが、本発明は、静止したポーズのみならず、ロボット１が所定の動作を行う場合のアクチュエータＡ１乃至アクチュエータＡ１４の制御情報（例えば、それぞれのアクチュエータの制御角を時間系列に表したもの）と、獲得した未知語を対応付けて記憶させる場合にも適用可能であることはいうまでもない。
【０１９２】
また、以上においては、手足などに対応する実際に駆動可能な部分を有するロボット１の動作（駆動および発話）を制御する場合について説明したが、例えば、ディスプレイに表示された（バーチャルの）ロボット１においても、本発明は適応可能である。
【０１９３】
図２６は、上述の処理を実行するパーソナルコンピュータ２０１の構成例を示している。このパーソナルコンピュータ２０１は、ＣＰＵ（Ｃｅｎｔｒａｌ  ＰｒｏｃｅｓｓｉｎｇＵｎｉｔ）２１１を内蔵している。ＣＰＵ２１１にはバス２１４を介して、入出力インタフェース１１５が接続されている。バス２１４には、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２１２およびＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２１３が接続されている。
【０１９４】
入出力インタフェース２１５には、ユーザが操作するマウス、キーボード、マイクロホン、ＡＤ変換器等の入力デバイスで構成される入力部２１７、およびディスプレイ、スピーカ、ＤＡ変換器等の出力デバイスで構成される出力部２１６が接続されている。更に、入出力インタフェース２１５には、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部２１８、並びにインタネットに代表されるネットワークを介してデータを通信する通信部２１９が接続されている。
【０１９５】
入出力インタフェース２１５には、磁気ディスク２３１、光ディスク２３２、光磁気ディスク２３３、半導体メモリ２３４などの記録媒体に対してデータを読み書きするドライブ２２０が必要に応じて接続される。
【０１９６】
例えば、このパーソナルコンピュータ２０１は、ユーザが発生した音声を、入力部２１７のマイクロホンにより集音可能であり、ＣＰＵ２１１の処理により、上述した場合と同様にして、音声認識処理を実行する。また、ＣＰＵ２１１の制御に基づいて、出力部２１６のディスプレイに、例えば、ロボット１の外見を有するキャラクタを表示可能である。ＣＰＵ２１１は、入力部２１７のマイクロホンにより集音された音声の認識処理結果、あるいは、ユーザが入力部２１７のマウスを用いて入力する操作に基づいて、出力部２１６のディスプレイに表示されているキャラクタの動き（表示上での動き）を制御（すなわち、出力部２１６のディスプレイの表示を制御）したり、ユーザの呼びかけに対する返答に対する音声データを生成し、出力部２１６のスピーカから出力する。
【０１９７】
そして、ユーザが、「これば、＜うれしい＞ポーズだよ」と発話した場合、ＣＰＵ２１１は、「うれしい」という未知語を認識し、ポーズ名のカテゴリの未知語として固有のＩＤを対応付けるとともに、出力部２１６のディスプレイ表示されているキャラクタの動き（すなわち、ディスプレイに表示されている画像データ）を、対応するＩＤとともに、例えば、ＲＡＭ２１３に記録させるようにすることが可能である。そして、その後、ユーザが、「＜うれしい＞ポーズして」と指令した場合、ＲＡＭ２１３に記録されている情報を基に、出力部２１６のディスプレイ表示を、未知語＜うれしい＞に対応する表示としたり、ＣＰＵ２１１の処理により、出力部２１６のディスプレイ表示を、自動的に、未知語＜うれしい＞に対応する表示とし、出力部２１６のスピーカから「これは＜うれしい＞ポーズだよ」という音声を出力させることができる。
【０１９８】
また、上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０１９９】
この記録媒体は、図２６に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク２３１（フレキシブルディスクを含む）、光ディスク２３２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｋ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ），ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）を含む）、光磁気ディスク２３３（ＭＤ（Ｍｉｎｉ−Ｄｉｓｋ）（商標）を含む）、もしくは半導体メモリ２３４などよりなるパッケージメディアなどにより構成される。
【０２００】
例えば、パーソナルコンピュータ２０１に、本発明を適用したロボット１制御装置としての動作を実行させるロボット１制御処理プログラムは、磁気ディスク２３１（フロッピディスクを含む）、光ディスク２３２（ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ−Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）を含む）、光磁気ディスク２３３（ＭＤ（Ｍｉｎｉ  Ｄｉｓｃ）を含む）、もしくは半導体メモリ２３４に格納された状態でパーソナルコンピュータ２０１に供給され、ドライブ２２０によって読み出されて、記憶部２１８に内蔵されるハードディスクドライブにインストールされる。記憶部２１８にインストールされた音声処理プログラムは、入力部２１７に入力されるユーザからのコマンドに対応するＣＰＵ２１１の指令によって、記憶部２１８からＲＡＭ２１３にロードされて実行される。
【０２０１】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２０２】
【発明の効果】
このように、本発明によれば、音声を認識することができる。特に、認識した音声とロボットの動作を制御する情報を関連付けて登録することができる。
また、他の本発明によれば、ロボットの状態を検出することができる他、ロボットの状態の検出結果に基づいて、ロボットの状態に対応した単語を含む音声を合成することができる。
【図面の簡単な説明】
【図１】本発明を適用したロボットの外観構成を示す斜視図である。
【図２】図１のロボットの外観構成を示す、背後側の斜視図である。
【図３】図１のロボットについて説明するための略線図である。
【図４】図１のロボットの内部構成を示すブロック図である。
【図５】図１のロボットの制御に関する部分を主に説明するためのブロック図である。
【図６】図５のメイン制御部の構成を示すブロック図である。
【図７】図６の音声認識部の構成を示すブロック図である。
【図８】クラスタの状態を説明する図である。
【図９】単語の登録について説明する図である。
【図１０】図７の音声認識処理部の構成を示すブロック図である。
【図１１】本発明を適用したロボットが実行する処理について説明するフローチャートである。
【図１２】音声認識処理について説明するフローチャートである。
【図１３】言語モデルデータベースで用いられる文法の例を示す図である。
【図１４】有限状態オートマトンによる言語モデルの例を示す図である。
【図１５】ｔｒｉ−ｇｒａｍを用いた言語スコアの計算の例を示す図である。
【図１６】ｔｒｉ−ｇｒａｍデータベースの例を示す図である。
【図１７】単語列生成処理について説明するフローチャートである。
【図１８】単語獲得処理について説明するフローチャートである。
【図１９】テンプレートマッチング処理について説明するフローチャートである。
【図２０】テンプレートについて説明する図である。
【図２１】クラスタＩＤに対応けられて登録されているアクチュエータ制御角について説明する図である。
【図２２】テンプレートについて説明する図である。
【図２３】テンプレートについて説明する図である。
【図２４】音韻タイプライタを組み込んだ文法の例を示す図である。
【図２５】動作認識発話処理について説明するフローチャートである。
【図２６】本発明を適用したコンピュータの構成を示すブロック図である。
【符号の説明】
１  ロボット，  ６１  メイン制御部，  ６３  サブ制御部，  ７２  スピーカ，  ８２  マイクロホン，  １０１  センサ入力処理部，  １０１Ａ  院生認識部，  １０３  行動決定機構部，  １０４  テーブル記憶部，  １０５  姿勢遷移機構部，  １０６  音声合成部，  １２１  音声認識処理部，  １２２  連想記憶部，  １２３  対話制御部，  １２４  単語獲得部，  １７２  特徴量抽出部，  １７３  マッチング部，  １７４  音韻タイプライタ部，  １７５  制御部，  １８１  音響モデルデータベース，  １８２  辞書データベース，  １８３  言語モデルデータベース
【図１】
2004170756.tif 000003
【図２】
2004170756.tif 000004
【図３】
2004170756.tif 000005
【図４】
2004170756.tif 000006
【図５】
2004170756.tif 000007
【図６】
2004170756.tif 000008
【図７】
2004170756.tif 000009
【図８】
2004170756.tif 000010
【図９】
2004170756.tif 000011
【図１０】
2004170756.tif 000012
【図１１】
2004170756.tif 000013
【図１２】
2004170756.tif 000014
【図１３】
2004170756.tif 000015
【図１４】
2004170756.tif 000016
【図１５】
2004170756.tif 000017
【図１６】
2004170756.tif 000018
【図１７】
2004170756.tif 000019
【図１８】
2004170756.tif 000020
【図１９】
2004170756.tif 000021
【図２０】
2004170756.tif 000022
【図２１】
2004170756.tif 000023
【図２２】
2004170756.tif 000024
【図２３】
2004170756.tif 000025
【図２４】
2004170756.tif 000026
【図２５】
2004170756.tif 000027
【図２６】
2004170756.tif 000028