JP2004170756A - Unit and method for robot control, recording medium, and program - Google Patents
Unit and method for robot control, recording medium, and program Download PDFInfo
- Publication number
- JP2004170756A JP2004170756A JP2002337808A JP2002337808A JP2004170756A JP 2004170756 A JP2004170756 A JP 2004170756A JP 2002337808 A JP2002337808 A JP 2002337808A JP 2002337808 A JP2002337808 A JP 2002337808A JP 2004170756 A JP2004170756 A JP 2004170756A
- Authority
- JP
- Japan
- Prior art keywords
- robot
- state
- word
- unit
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Abstract
Description
【0001】
【発明の属する技術分野】
本発明は、ロボット制御装置および方法、記録媒体、並びにプログラムに関し、特に、音声認識、音声出力、および、駆動が可能なロボットを制御する場合に用いて好適な、ロボット制御装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
対話システムにおいて、何かの名前を音声で登録するという場面は、多く発生する。例えば、ユーザが自分の名前を登録したり、対話システムに名前をつけたり、地名や店名を入力したりするという場面である。
【0003】
従来、このような音声登録を簡単に実現する方法としては、何かのコマンドによって登録モードに移行して、登録が終了したら通常の対話モードに戻るというものがある。この場合、例えば、「ユーザ名登録」という音声コマンドによって登録モードに移行して、その後でユーザが名前を発声したらそれが登録され、その後、通常モードに戻る処理が行われる。
【0004】
例えば、音声認識可能なロボットに、名前を付けてほしいことを表す行動を起こさせることによって、ロボット名登録モードに移行することをユーザに通知するようにし、ロボットの行動が制御された後に入力された音声から、最適音素列を検出し、最適音素列を、名前として登録するようにした技術がある(例えば、特許文献1参照)。
【0005】
【特許文献1】
特開2002−120177号公報
【0006】
【発明が解決しようとする課題】
しかしながら、このような音声登録の方法では、コマンドによるモード切換えをしなければならず、対話としては不自然であり、ユーザにとっては煩わしいという課題がある。また、名付ける対象が複数存在する場合、コマンドの数が増えるため、いっそう煩わしくなる。
【0007】
例えば、上述したように、ロボットの行動により、登録モードへの移行をユーザに通知するようにした場合、名付ける対象によってロボットの動作を変更し、ユーザが、ロボットの動作と登録内容の関係を把握しておかなければならないなど、音声登録が非常に煩わしいものとなってしまう。
【0008】
更に、登録モード中に、ユーザが名前以外の単語(例えば、「こんにちは」)を話してしまった場合、名前以外の単語も名前として登録されてしまう。また、例えば、「太郎」という名前だけではなく、「私の名前は太郎です。」といったように、ユーザが名前以外の言葉を付加して話した場合、全体(「私の名前は太郎です。」)が名前として登録されてしまう。
【0009】
また、登録された単語は、登録された単語を用いた音声出力処理や、登録後に同じ単語がユーザにより発声された場合の認識処理に用いられるのみであった。
【0010】
本発明はこのような状況に鑑みてなされたものであり、通常の対話の中で登録された単語を、ロボットの動作と対応付けて記憶し、ロボットの動作に利用することができるようにするものである。
【0011】
【課題を解決するための手段】
本発明の第1のロボット制御装置は、連続する入力音声を認識する認識手段と、認識手段により認識された認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得手段と、獲得手段により獲得された単語を、ロボットの動作を制御する情報に関連付けて登録する登録手段とを備えることを特徴とする。
【0012】
認識手段により認識された認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段を更に備えさせるようにすることができ、パターン判定手段により、認識結果が特定のパターンにマッチしていると判定された場合、登録手段には、単語を、ロボットの動作を制御する情報に関連付けて登録させるようにすることができる。
【0013】
ロボットの状態を検知する検知手段を更に備えさせるようにすることができ、検知手段には、認識結果が特定のパターンにマッチしていると判定された時点でのロボットの状態を検知させるようにすることができ、登録手段には、単語と、検知手段により検知されたロボットの状態となるようにロボットの動作を制御する情報とを関連付けて登録させるようにすることができる。
【0014】
ロボットの駆動を制御する制御手段と、認識手段により認識された認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段とを更に備えさせるようにすることができ、パターン判定手段により、認識結果が特定のパターンにマッチしていると判定された場合、制御手段には、登録手段により、単語に関連付けられて登録されたロボットの動作を制御する情報に基づいて、ロボットの駆動を制御させるようにすることができる。
【0015】
獲得手段により獲得された単語を、複数のカテゴリに分類して記憶する記憶手段を更に備えさせるようにすることができ、登録手段には、記憶手段において、所定のカテゴリで記憶された単語を、ロボットの動作を制御する情報に関連付けて登録させるようにすることができる。
【0016】
本発明の第1のロボット制御方法は、連続する入力音声を認識する認識ステップと、認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、判定ステップの処理により、認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得ステップと、獲得ステップの処理により獲得された単語を、ロボットの動作を制御する情報に関連付けて登録する登録ステップとを含むことを特徴とする。
【0017】
本発明の第1の記録媒体に記録されているプログラムは、連続する入力音声を認識する認識ステップと、認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、判定ステップの処理により、認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得ステップと、獲得ステップの処理により獲得された単語を、ロボットの動作を制御する情報に関連付けて登録する登録ステップとを含むことを特徴とする。
【0018】
本発明の第1のプログラムは、連続する入力音声を認識する認識ステップと、認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、判定ステップの処理により、認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得ステップと、獲得ステップの処理により獲得された単語を、ロボットの動作を制御する情報に関連付けて登録する登録ステップとを含むことを特徴とする。
【0019】
本発明の第1のロボット制御装置および方法、並びに、プログラムにおいては、連続する入力音声が認識され、認識結果に未知語が含まれているか否かが判定され、未知語が含まれていると判定された場合、未知語に対応する単語が獲得されて、獲得された単語が、ロボットの動作を制御する情報に関連付けられて登録される。
【0020】
本発明の第2のロボット制御装置は、ロボットの駆動を制御する制御手段と、ロボットの状態を示す情報を、対応する単語に関連付けて登録する登録手段と、制御手段により駆動が制御されたロボットの状態を検知する検知手段と、音声を合成する音声合成手段と、音声合成手段により合成された音声を出力する出力手段とを備え、検知手段により検知されたロボットの状態が、登録手段により登録されているロボットの状態を示す情報に合致した場合、音声合成手段は、登録手段により登録されているロボットの状態を示す情報に関連付けられた単語を含む音声を合成することを特徴とする。
【0021】
ユーザからの指令を受ける入力手段を更に備えさせるようにすることができ、検出手段には、入力手段により、所定の時間、操作入力を受けなかった場合、ロボットの状態を検出させるようにすることができる。
【0022】
連続する入力音声を認識する認識手段と、認識手段による認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段とを更に備えさせるようにすることができ、判定手段により、認識結果が特定のパターンにマッチすると判定された場合、検出手段には、ロボットの状態を検出させるようにすることができる。
【0023】
認識手段により認識された認識結果に、未知語が含まれていると判定された場合、未知語に対応する単語を獲得する獲得手段を更に備えさせるようにすることができ、登録手段には、獲得手段により獲得された未知語に対応する単語とロボットの状態を示す情報を関連付けて記憶させるようにすることができる。
【0024】
本発明の第2のロボット制御方法は、ロボットの状態を検知する検知ステップと、検知ステップの処理により検知されたロボットの状態が、登録情報に登録されている登録情報に合致しているか否かを判断する判断ステップと、判断ステップの処理により、ロボットの状態が、登録情報に登録されているロボットの状態を示す情報に合致していると判断された場合、ロボットの状態を示す情報に関連付けられた単語を含む音声を合成する音声合成ステップとを含むことを特徴とする。
【0025】
本発明の第2の記録媒体に記録されているプログラムは、ロボットの状態を検知する検知ステップと、検知ステップの処理により検知されたロボットの状態が、登録情報に登録されている登録情報に合致しているか否かを判断する判断ステップと、判断ステップの処理により、ロボットの状態が、登録情報に登録されているロボットの状態を示す情報に合致していると判断された場合、ロボットの状態を示す情報に関連付けられた単語を含む音声を合成する音声合成ステップとを含むことを特徴とする。
【0026】
本発明の第2のプログラムは、ロボットの状態を検知する検知ステップと、検知ステップの処理により検知されたロボットの状態が、登録情報に登録されている登録情報に合致しているか否かを判断する判断ステップと、判断ステップの処理により、ロボットの状態が、登録情報に登録されているロボットの状態を示す情報に合致していると判断された場合、ロボットの状態を示す情報に関連付けられた単語を含む音声を合成する音声合成ステップとを含むことを特徴とする。
【0027】
本発明の第2のロボット制御装置および方法、並びに、プログラムにおいては、ロボットの状態が検知され、検知されたロボットの状態が、登録情報に登録されている登録情報に合致しているか否かが判断され、ロボットの状態が、登録情報に登録されているロボットの状態を示す情報に合致していると判断された場合、ロボットの状態を示す情報に関連付けられた単語を含む音声が合成されて出力される。
【0028】
【発明の実施の形態】
以下、図を参照して、本発明の実施の形態について説明する。
【0029】
図1は、本発明を適用した2足歩行型のロボット1の正面方向の斜視図であり、図2は、ロボット1の背面方向からの斜視図である。また、図3は、ロボット1の軸構成について説明するための図である。
【0030】
ロボット1は、胴体部ユニット11の上部に頭部ユニット12が配設されるとともに、胴体部ユニット11の上部左右に、同様の構成を有する腕部ユニット13A、および、腕部ユニット13Bが所定位置にそれぞれ取り付けられ、かつ、胴体部ユニット11の下部左右に、同様の構成を有する脚部ユニット14A、および、脚部ユニット14Bが所定位置にそれぞれ取り付けられることにより構成されている。頭部ユニット12には、タッチセンサ51が設けられている。
【0031】
胴体部ユニット11においては、体幹上部を形成するフレーム21および体幹下部を形成する腰ベース22が、腰関節機構23を介して連結することにより構成されており、体幹下部の腰ベース22に固定された腰関節機構23のアクチュエータA1、および、アクチュエータA2をそれぞれ駆動することによって、体幹上部を、図3に示す直交するロール軸24およびピッチ軸25の回りに、それぞれ独立に回転させることができるようになされている。
【0032】
また頭部ユニット12は、フレーム21の上端に固定された肩ベース26の上面中央部に首関節機構27を介して取り付けられており、首関節機構27のアクチュエータA3、および、アクチュエータA4をそれぞれ駆動することによって、図3に示す直交するピッチ軸28およびヨー軸29の回りに、それぞれ独立に回転させることができるようになされている。
【0033】
更に、腕部ユニット13A、および、腕部ユニット13Bは、肩関節機構30を介して肩ベース26の左右にそれぞれ取り付けられており、対応する肩関節機構30のアクチュエータA5、および、アクチュエータA6をそれぞれ駆動することによって、図3に示す、直交するピッチ軸31およびロール軸32の回りに、それぞれを独立に回転させることができるようになされている。
【0034】
この場合、腕部ユニット13A、および、腕部ユニット13Bにおいては、上腕部を形成するアクチュエータA7の出力軸に、肘関節機構44を介して、前腕部を形成するアクチュエータA8が連結され、前腕部の先端に手部34が取り付けられることにより構成されている。
【0035】
そして腕部ユニット13A、および腕部ユニット13Bでは、アクチュエータA7を駆動することによって、前腕部を図3に示すヨー軸35に対して回転させることができ、アクチュエータA8を駆動することによって、前腕部を図3に示すピッチ軸36対して回転させることができるようになされている。
【0036】
脚部ユニット14A、および、脚部ユニット14Bは、股関節機構37を介して、体幹下部の腰ベース22にそれぞれ取り付けられており、対応する股関節機構37のアクチュエータA9乃至A11をそれぞれ駆動することによって、図3に示す、互いに直交するヨー軸38、ロール軸39、およびピッチ軸40に対して、それぞれ独立に回転させることができるようになされている。
【0037】
脚部ユニット14A、および、脚部ユニット14Bは、大腿部を形成するフレーム41の下端が、膝関節機構42を介して、下腿部を形成するフレーム43に連結されるとともに、フレーム43の下端が、足首関節機構44を介して、足部45に連結されることにより構成されている。
【0038】
これにより脚部ユニット14A、および、脚部ユニット14Bにおいては、膝関節機構42を形成するアクチュエータA12を駆動することによって、図3に示すピッチ軸46に対して、下腿部を回転させることができ、また足首関節機構44のアクチュエータA13、および、アクチュエータA14をそれぞれ駆動することによって、図3に示す直交するピッチ軸47およびロール軸48に対して、足部45をそれぞれ独立に回転させることができるようになされている。
【0039】
また、胴体部ユニット11の体幹下部を形成する腰ベース22の背面側には、後述するメイン制御部61や周辺回路62(いずれも図4)などを内蔵したボックスである、制御ユニット52が配設されている。
【0040】
図4は、ロボット1のアクチュエータとその制御系等について説明する図である。
【0041】
制御ユニット52には、ロボット1全体の動作制御をつかさどるメイン制御部61、電源回路および通信回路などの周辺回路62、および、バッテリ74(図5)などが収納されている
【0042】
そしてこの制御ユニット52は、各構成ユニット(胴体部ユニット11、頭部ユニット12、腕部ユニット13Aおよび腕部ユニット13B、並びに、脚部ユニット14Aおよび脚部ユニット14B)内にそれぞれ配設されたサブ制御部63A乃至サブ制御部63Dと接続されており、サブ制御部63A乃至サブ制御部63Dに対して必要な電源電圧を供給したり、サブ制御部63A乃至サブ制御部63Dと通信を行う。
【0043】
また、サブ制御部63A乃至サブ制御部63Dは、対応する構成ユニット内のアクチュエータA1乃至アクチュエータA14と、それぞれ接続されており、メイン制御部61から供給された各種制御コマンドに基づいて、構成ユニット内のアクチュエータA1乃至アクチュエータA14を、指定された状態に駆動させるように制御する。
【0044】
図5は、ロボット1の内部構成を示すブロック図である。
【0045】
頭部ユニット12には、このロボット1の「目」として機能するCCD(Charge Coupled Device )カメラ81、「耳」として機能するマイクロホン82、タッチセンサ51などからなる外部センサ部71、および、「口」として機能するスピーカ72となどがそれぞれ所定位置に配設され、制御ユニット52内には、バッテリセンサ91および加速度センサ92などからなる内部センサ部73が配設されている。
【0046】
そして、外部センサ部71のCCDカメラ81は、周囲の状況を撮像し、得られた画像信号S1Aを、メイン制御部61に送出する。マイクロホン82は、ユーザから音声入力として与えられる「歩け」、「とまれ」または「右手を挙げろ」等の各種命令音声を集音し、得られた音声信号S1Bを、メイン制御部61に送出する。
【0047】
また、タッチセンサ51は、例えば、図1および図2に示されるように頭部ユニット12の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、検出結果を、圧力検出信号S1Cとしてメイン制御部61に送出する。
【0048】
内部センサ部73のバッテリセンサ91は、バッテリ74のエネルギ残量を所定の周期で検出し、検出結果をバッテリ残量検出信号S2Aとして、メイン制御部61に送出する。加速度センサ92は、ロボット1の移動について、3軸方向(x軸、y軸およびz軸)の加速度を、所定の周期で検出し、検出結果を、加速度検出信号S2Bとして、メイン制御部61に送出する。
【0049】
メイン制御部61は、外部センサ部71のCCDカメラ81、マイクロホン82およびタッチセンサ51からそれぞれ供給される、画像信号S1A、音声信号S1Bおよび圧力検出信号S1C(以下、これらをまとめて外部センサ信号S1と称する)と、内部センサ部73のバッテリセンサ91および加速度センサ等からそれぞれ供給される、バッテリ残量検出信号S2Aおよび加速度検出信号S2B(以下、これらをまとめて内部センサ信号S2と称する)に基づいて、ロボット1の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無などを判断する。
【0050】
そして、メイン制御部61は、ロボット1の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無の判断結果と、内部メモリ61Aに予め格納されている制御プログラム、あるいは、そのとき装填されている外部メモリ75に格納されている各種制御パラメータなどに基づいて、ロボット1の行動を決定し、決定結果に基づく制御コマンドを生成して、対応するサブ制御部63A乃至サブ制御部63Dに送出する。サブ制御部63A乃至サブ制御部63Dは、供給された制御コマンドに基づいて、アクチュエータA1乃至アクチュエータA14のうち、対応するものの駆動を制御するので、ロボット1は、例えば、頭部ユニット12を上下左右に揺動させたり、腕部ユニット13A、あるいは、腕部ユニット13Bを上に挙げたり、脚部ユニット14Aおよび脚部ユニット14Bを交互に駆動させて、歩行するなどの行動を行うことが可能となる。
【0051】
また、メイン制御部61は、必要に応じて、所定の音声信号S3をスピーカ72に与えることにより、音声信号S3に基づく音声を外部に出力させる。更に、メイン制御部61は、外見上の「目」として機能する、頭部ユニット12の所定位置に設けられた、図示しないLEDに対して駆動信号を出力することにより、LEDを点滅させる。
【0052】
このようにして、ロボット1においては、周囲および内部の状況や、ユーザからの指令および働きかけの有無などに基づいて、自律的に行動することができるようになされている。
【0053】
次に、図6は、図5のメイン制御部61の機能的構成例を示している。なお、図6に示す機能的構成は、メイン制御部61が、メモリ61Aに記憶された制御プログラムを実行することで実現されるようになっている。
【0054】
メイン制御部61は、特定の外部状態を認識するセンサ入力処理部101、センサ入力処理部101の認識結果を累積して、ロボット1の感情、本能、あるいは、成長の状態などのモデルを記憶するモデル記憶部102、音声認識結果と行動内容のテーブルを記憶するテーブル記憶部104、センサ入力処理部101の認識結果や、テーブル記憶部104に記憶されているテーブル等に基づいて、ロボット1の行動を決定する行動決定機構部103、行動決定機構部103の決定結果に基づいて、実際にロボット1に行動を起こさせる姿勢遷移機構部105、並びに合成音を生成する音声合成部106から構成されている。
【0055】
センサ入力処理部101は、マイクロホン82や、CCDカメラ81、タッチセンサ51等から与えられる音声信号、画像信号、圧力検出信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部102および行動決定機構部103に通知する。
【0056】
すなわち、センサ入力処理部101は、音声認識部101Aを有しており、音声認識部101Aは、マイクロホン82から与えられる音声信号について音声認識を行う。そして、音声認識部101Aは、例えば、「歩け」、「止まれ」、「右手を挙げろ」等の指令、その他の音声認識結果を、状態認識情報として、モデル記憶部102および行動決定機構部103に通知する。
【0057】
また、音声認識部101Aは、未知語(OOV:Out Of Vocabulary)を新たに認識することが可能であり、必要に応じて、認識した未知語に対応付けられたIDを、行動決定機後部103に供給する。未知語の認識の詳細については、後述する。
【0058】
また、センサ入力処理部101は、画像認識部101Bを有しており、画像認識部101Bは、CCDカメラ81から与えられる画像信号を用いて、画像認識処理を行う。そして、画像認識部101Bは、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」等の画像認識結果を、状態認識情報として、モデル記憶部102および行動決定機構部103に通知する。
【0059】
更に、センサ入力処理部101は、圧力処理部101Cを有しており、圧力処理部101Cは、タッチセンサ51から与えられる圧力検出信号を処理する。そして、圧力処理部101Cは、その処理の結果、所定の閾値以上で、かつ短時間の圧力を検出したときには、「叩かれた(しかられた)」と認識し、所定の閾値未満で、かつ長時間の圧力を検出したときには、「撫でられた(ほめられた)」と認識して、その認識結果を、状態認識情報として、モデル記憶部102および行動決定機構部103に通知する。
【0060】
モデル記憶部102は、ロボット1の感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶、管理している。
【0061】
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態(度合い)を、所定の範囲(例えば、−1.0乃至1.0等)の値によってそれぞれ表し、センサ入力処理部101からの状態認識情報や時間経過等に基づいて、その値を変化させる。本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態(度合い)を、所定の範囲の値によってそれぞれ表し、センサ入力処理部101からの状態認識情報や時間経過等に基づいて、その値を変化させる。成長モデルは、例えば、「幼年期」、「青年期」、「熟年期」、「老年期」等の成長の状態(度合い)を、所定の範囲の値によってそれぞれ表し、センサ入力処理部101からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【0062】
モデル記憶部102は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動決定機構部103に送出する。
【0063】
なお、モデル記憶部102には、センサ入力処理部101から状態認識情報が供給される他、行動決定機構部103から、ロボット1の現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、モデル記憶部102は、同一の状態認識情報が与えられても、行動情報が示すロボット1の行動に応じて、異なる状態情報を生成するようになっている。
【0064】
即ち、例えば、ロボット1が、ユーザに挨拶をし、ユーザに頭を撫でられた場合には、ユーザに挨拶をしたという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部102に与えられ、この場合、モデル記憶部102では、「うれしさ」を表す感情モデルの値が増加される。
【0065】
一方、ロボット1が、何らかの仕事を実行中に頭を撫でられた場合には、仕事を実行中であるという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部102に与えられ、この場合、モデル記憶部102では、「うれしさ」を表す感情モデルの値は変化されない。
【0066】
このように、モデル記憶部102は、状態認識情報だけでなく、現在または過去のロボット1の行動を示す行動情報も参照しながら、感情モデルの値を設定する。これにより、例えば、何らかのタスクを実行中に、ユーザが、いたずらするつもりで頭を撫でたときに、「うれしさ」を表す感情モデルの値を増加させるような、不自然な感情の変化が生じることを回避することができる。
【0067】
なお、モデル記憶部102は、本能モデルおよび成長モデルについても、感情モデルにおける場合と同様に、状態認識情報および行動情報の両方に基づいて、その値を増減させるようになっている。また、モデル記憶部102は、感情モデル、本能モデル、成長モデルそれぞれの値を、他のモデルの値にも基づいて増減させるようになっている。
【0068】
行動決定機構部103は、センサ入力処理部101からの状態認識情報や、モデル記憶部102からの状態情報、時間経過等に基づいて、必要に応じて、テーブル記憶部104に記憶されたテーブルを参照して、次の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部105に送出する。
【0069】
また、行動決定機構部103は、センサ入力処理部101の音声認識部101Aから、例えば、「これは、<OOV(未知語)>ポーズだよ」などの、所定の第1のルールに合致した音声入力を受けた場合、サブ制御部63A乃至サブ制御部63Dから供給される、アクチュエータA1乃至アクチュエータA14の状態を示す信号と、音声認識の結果得られた、ポーズを示す未知語とを、対応付けて、テーブル記憶部104に記憶させる。
【0070】
そして、行動決定機構部103は、センサ入力処理部101の音声認識部101Aから、例えば、「<OOV>して」などの、所定の第2のルールに合致した音声入力を受け、このときの<OOV>が、テーブル記憶部104に記憶されていた場合、テーブル記憶部104に記憶されている、<OOV>に対応するアクチュエータの制御情報を読み出し、姿勢遷移機構部105に供給する。
【0071】
すなわち、行動決定機構部103は、ロボット1がとり得る行動をステート(状態:state)に対応させた有限オートマトンを、ロボット1の行動を規定する行動モデルとして管理しており、この行動モデルとしての有限オートマトンにおけるステートを、センサ入力処理部101からの状態認識情報や、モデル記憶部102における感情モデル、本能モデル、または成長モデルの値、時間経過等に基づいて遷移させ、遷移後のステートに対応する行動を、次にとるべき行動として決定する。
【0072】
ここで、行動決定機構部103は、所定のトリガ(trigger)があったことを検出すると、ステートを遷移させる。即ち、行動決定機構部103は、例えば、現在のステートに対応する行動を実行している時間が所定時間に達したときや、特定の状態認識情報を受信したとき、モデル記憶部102から供給される状態情報が示す感情や、本能、成長の状態の値が所定の閾値以下または以上になったとき等に、ステートを遷移させる。
【0073】
なお、行動決定機構部103は、上述したように、センサ入力処理部101からの状態認識情報だけでなく、モデル記憶部102における感情モデルや、本能モデル、成長モデルの値等にも基づいて、行動モデルにおけるステートを遷移させることから、同一の状態認識情報が入力されても、感情モデルや、本能モデル、成長モデルの値(状態情報)によっては、ステートの遷移先は異なるものとなる。
【0074】
なお、行動決定機構部103では、上述したように、ロボット1の頭部や手足等を動作させる行動指令情報の他、ロボット1に発話を行わせる行動指令情報も生成される。ロボット1に発話を行わせる行動指令情報は、音声合成部106に供給されるようになっており、音声合成部106に供給される行動指令情報には、音声合成部106に生成させる合成音に対応するテキスト等が含まれる。そして、音声合成部106は、行動決定部52から行動指令情報を受信すると、その行動指令情報に含まれるテキストに基づき、合成音を生成し、スピーカ18に供給して出力させる。これにより、スピーカ18からは、例えば、「こんにちは」などのユーザへの挨拶、ユーザへの各種の要求、あるいは、「何ですか?」等のユーザの呼びかけに対する応答その他の音声出力が行われる。
【0075】
姿勢遷移機構部105は、行動決定機構部103から供給される行動指令情報に基づいて、ロボット1の姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これをサブ制御部63A乃至63Dに送出する。
【0076】
図7は、センサ入力処理部101の音声認識部101Aの機能を示す機能ブロック図である。
【0077】
音声認識処理部121には、ユーザからの発話に基づく音声信号が入力されるようになっており、音声認識処理部121は、入力された音声信号を認識し、その音声認識の結果としてのテキスト、その他付随する情報を、対話制御部123および単語獲得部124に、必要に応じて出力する。音声認識処理部121の詳細については、図10を用いて後述する。
【0078】
単語獲得部124は、音声認識処理部121が有する認識用辞書に登録されていない単語(未知語)について、音響的特徴を自動的に記憶し、それ以降、その単語の音声を認識できるようにする。
【0079】
すなわち、単語獲得部124は、入力音声の未知語部分に対応する発音を音韻タイプライタによって求め、それをいくつかのクラスタに分類する。各クラスタはIDと代表音韻系列を持ち、IDで管理される。このときのクラスタの状態を、図8を参照して説明する。
【0080】
例えば、「あか」、「あお」、「ガッツ」という3回の入力音声があったとする。この場合、単語獲得部124は、3回の音声を、それぞれに対応した「あか」クラスタ141、「あお」クラスタ142、「ガッツ」クラスタ143の、3つのクラスタに分類し、各クラスタには、代表となる音韻系列(図8の例の場合、“a/k/a, “a/o“, “g/a/t/t/u”)とID(図8の例の場合、「1」、「2」、「3」)を付加する。
【0081】
ここで再び、「あか」という音声が入力されると、対応するクラスタがすでに存在するので、単語獲得部124は、入力音声を「あか」クラスタ141に分類し、新しいクラスタは生成しない。これに対して、「くろ」という音声が入力された場合、対応するクラスタが存在しないので、単語獲得部124は、「くろ」に対応したクラスタ144を新たに生成し、そのクラスタには、代表的な音韻系列(図8の例の場合、“k/u/r/o”)とID(図8の例の場合、「4」)を付加する。
【0082】
したがって、入力音声が未獲得の語であるか否かは、新たなクラスタが生成されたかどうかによって判定できる。なお、このような単語獲得処理の詳細は、本出願人が先に提案した特願2001−97843号に開示されている。
【0083】
連想記憶部122は、登録した単語(未知語)がユーザ名であるか、キャラクタ名であるかといったカテゴリ等の情報を記憶する。例えば、図9の例では、クラスタIDとカテゴリ名とが対応して記憶されている。図9の例の場合、例えば、クラスタID「1」、および、クラスタID「4」は、「ユーザ名」のカテゴリに対応され、クラスタID「2」は、「キャラクタ名」のカテゴリに対応され、クラスタID「3」は、「ポーズ名」のカテゴリに対応されている。
【0084】
対話制御部123は、音声認識処理部121の出力からユーザの発話の内容を理解し、その理解の結果に基づいて、単語(未知語)の登録を制御する。また、対話制御部123は、連想記憶部122に記憶されている登録済みの単語の情報に基づいて、登録済みの単語を認識できるように、それ以降の対話を制御する。
【0085】
このようにして、音声認識部101Aにおいて認識された音声は、行動決定機構部103に供給される。
【0086】
ここでは、単語獲得部124が、音韻タイプライタによって得られた発音から、クラスタを生成し、それ以降の未知語の入力時には、クラスタとのマッチングが行われるものとして説明しているが、例えば、クラスタを生成することなく、未知語として、音韻系列そのもの(例えば、“k/u/r/o”など)に、IDを付加し、新たに未知語が入力された場合、音韻系列で比較して、入力された未知語が、すでにIDが付加された未知語のうちのいずれかに一致するか否かを判断するようにしても良い。
【0087】
図10は、音声認識処理部121の構成例を示している。
【0088】
ユーザの発話は、マイクロホン82に入力され、マイクロホン82では、その発話が、電気信号としての音声信号に変換される。この音声信号は、AD(Analog Digital)変換部171に供給される。AD変換部171は、マイクロホン82からのアナログ信号である音声信号をサンプリングして、量子化し、ディジタル信号である音声データに変換する。この音声データは、特徴量抽出部172に供給される。
【0089】
特徴量抽出部172は、AD変換部171からの音声データについて、適当なフレームごとに、例えば、スペクトル、パワー線形予測係数、ケプストラム係数、線スペクトル対等の特徴パラメータを抽出し、マッチング部173および音韻タイプライタ部174に供給する。
【0090】
マッチング部173は、特徴量抽出部172からの特徴パラメータに基づき、音響モデルデータベース181、辞書データベース182、および言語モデルデータベース183を必要に応じて参照しながら、マイクロホン82に入力された音声(入力音声)に最も近い単語列を求める。
【0091】
音響モデルデータベース181は、音声認識する音声の言語における個々の音韻や音節などの音響的な特徴を表す音響モデルを記憶している。音響モデルとしては、例えば、HMM(Hidden Markov Model)などを用いることができる。辞書データベース182は、認識対象の各単語(語句)について、その発音に関する情報が記述された単語辞書や、音韻や音節の連鎖関係を記述したモデルを記憶している。
【0092】
なお、ここにおける単語とは、認識処理において1つのまとまりとして扱った方が都合の良い単位のことであり、言語学的な単語とは必ずしも一致しない。例えば、「タロウ君」は、それ全体を1単語として扱ってもよいし、「タロウ」、「君」という2単語として扱ってもよい。更に、もっと大きな単位である「こんにちはタロウ君」等を1単語として扱ってもよい。
【0093】
また、音韻とは、音響的に1つの単位として扱った方が処理上都合のよいもののことであり、音声学的な音韻や音素とは必ずしも一致しない。例えば、「東京」の「とう」の部分を”t/o/u”という3個の音韻記号で表してもよいし、”o”の長音である”o:”という記号を用いて”t/o:”と表してもよい。または、”t/o/o”と表すことも可能である。他にも、無音を表す記号を用意したり、更にそれを「発話前の無音」、「発話に挟まれた短い無音区間」、「発話語の無音」、「「っ」の部分の無音」のように細かく分類してそれぞれに記号を用意してもよい。
【0094】
言語モデルデータベース183は、辞書データベース182の単語辞書に登録されている各単語がどのように連鎖する(接続する)かに関する情報を記述している。
【0095】
音韻タイプライタ部174は、特徴量抽出部172から供給された特徴パラメータに基づいて、入力された音声に対応する音韻系列を取得する。音韻タイプライタ部174は、例えば、「私の名前は太郎です。」という音声から”w/a/t/a/sh/i/n/o/n/a/m/a/e/w/a/t/a/r/o:/d/e/s/u”という音韻系列を取得する。この音韻タイプライタには、既存のものを用いることができる。
【0096】
なお、音韻タイプライタ部174に代わって、任意の音声に対して音韻系列を取得できる他の構成を用いるようにしてもよい。例えば、日本語の音節(あ・い・う・・・か・き・・・・ん)を単位とする音声認識や、音韻よりも大きく、単語よりは小さな単位であるサブワードを単位とする音声認識等を用いることも可能である。
【0097】
制御部175は、AD変換部171、特徴量抽出部172、マッチング部173、音韻タイプライタ部174の動作を制御する。
【0098】
次に、図11のフローチャートを参照して、ロボット1が音声入力を受けた場合の処理について説明する。
【0099】
ステップS1において、音声認識部101Aの音声認識処理部121は、マイクロホン82から、音声の入力を受けたか否かを判断する。ステップS1において、音声の入力を受けていないと判断された場合、音声の入力を受けたと判断されるまで、ステップS1の処理が繰り返される。
【0100】
ステップS2において、図12を用いて後述する音声認識処理が実行される。
【0101】
ステップS3において、音声認識処理部121の制御部175は、ステップS2において認識された単語列に、未知語が含まれているか否かを判定する。
【0102】
ステップS4において、未知語が含まれていると判定された場合、ステップS4において、制御部175が単語獲得部124を制御することにより、図18を用いて後述する単語獲得処理が実行される。
【0103】
ステップS5において、対話制御部123により、ステップS4の処理により獲得された単語が用いられて、図19を用いて後述するテンプレートマッチング処理が実行されて、処理が終了される。
【0104】
ステップS3において、未知語が含まれていないと判定された場合、ステップS5において、音声認識処理部121の制御部175は、認識された音声を、行動決定機構部103、および、必要に応じて、モデル記憶部102に出力する。行動決定機構部103は、供給された音声認識結果に基づいた所定の応答処理を実行する。
【0105】
具体的には、例えば、認識された音声が、「前に進め」であった場合、行動決定機構部103は、ロボット1の行動を規定する行動モデルに合致した、ロボット1の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部105に送出する。姿勢遷移機構部105は、アクチュエータA1乃至アクチュエータA14のうち、必要なものの制御情報を生成し、サブ制御部63A乃至サブ制御部63Dに供給して、アクチュエータA1乃至アクチュエータA14のうち対応するものを駆動させ、ロボット1に「前に進む」行動を実行させる。
【0106】
あるいは、文法に合致しないなどの理由により、正しく音声認識ができなかった場合、行動決定機構部103は、ロボット1に、「何ですか?」と発話させるための行動指令情報を生成し、音声合成部106に供給して、スピーカ72から、「何ですか?」という音声を出力させる。また、行動決定機構部103は、「何ですか?」という音声の出力と同時に、頭部ユニット12を横に傾かせる(首をかしげるしぐさをさせる)ための動指令情報を生成し、姿勢遷移機構部105に送出する。姿勢遷移機構部105は、アクチュエータA3およびアクチュエータA4に首を傾かせる動作をさせるための制御情報を生成し、サブ制御部63Bに供給して、アクチュエータA3およびアクチュエータA4を駆動させ、ロボット1に「首をかしげる」ポーズをさせるようにしてもよい。
【0107】
次に、図12のフローチャートを参照して、図11のステップS2において実行される音声認識処理について説明する。
【0108】
ステップS21において、AD変換部171は、マイクロホン82より供給されたアナログの音声信号を、ディジタル信号である音声データに変換し、特徴量抽出部172に供給する。
【0109】
特徴量抽出部172は、ステップS22において、AD変換部171からの音声データを受信し、ステップS23において、適当なフレームごとに、例えば、スペクトル、パワー、それらの時間変化量等の特徴パラメータを抽出し、マッチング部173に供給する。
【0110】
ステップS24において、マッチング部173は、辞書データベース182に格納されている単語モデルのうちのいくつかを連結する。
【0111】
ステップS25において、図17を用いて後述する単語列生成処理が実行される。なお、この単語列を構成する単語には、辞書データベース182に登録されている既知語だけでなく、登録されていない未知語を表すシンボルである“<OOV>”も含まれている。
【0112】
ステップS26において、音韻タイプライタ部174は、ステップS24およびステップS25の処理とは独立して、ステップS23の処理で抽出された特徴パラメータに対して、音韻を単位とする認識を行い、音韻系列を出力する。例えば、「私の名前は太郎(未知語)です。」という音声が入力された場合、音韻タイプライタ部174は、”w/a/t/a/sh/i/n/o/n/a/m/a/e/w/a/t/a/r/o:/d/e/s/u”という音韻系列を出力する。
【0113】
ステップS27において、マッチング部173は、ステップS25において生成された単語列ごとに、音響スコアを計算する。<OOV>(未知語)を含まない単語列に対する音響スコアの計算方法には、既存の方法、すなわち各単語列(単語モデルを連結したもの)に対して音声の特徴パラメータを入力することで尤度を計算するという方法を用いる。一方、既存の方法では<OOV>に相当する音声区間の音響スコアを求めることができない(<OOV>に対応する単語モデルは事前には存在しないため)ので、<OOV>を含む単語列に対する音響スコアの計算においては、その音声区間については、音韻タイプライタの認識結果の中から、同区間の音響スコアを取り出し、その値に補正をかけたものを、<OOV>の音響スコアとして採用する方法を用いる。マッチング部173は、更に、<OOV>の音響スコアと、他の既知語部分の音響スコアとを統合し、それをその単語列の音響スコアとする。
【0114】
ステップS28において、マッチング部173は、音響スコアの高い単語列を上位m個(m≦n)残し、候補単語列とする。ステップS29において、マッチング部173は、言語モデルデータベース183を参照して、候補単語列ごとに、言語スコアを計算する。言語スコアは、認識結果の候補である単語列が言葉としてどれだけふさわしいかを表す。ここで、この言語スコアを計算する方法を詳細に説明する。
【0115】
本発明の音声認識処理部121は、未知語も認識することができるため、言語モデルは未知語に対応している必要がある。例として、未知語に対応した文法または有限状態オートマトン(FSA:Finite State Automaton)を用いた場合と、同じく未知語に対応したtri−gram(統計言語モデルの1つである)を用いた場合とについて説明する。
【0116】
図13を参照して、文法の例について説明する。この文法はBNF(Backus Naur Form)で記述されている。図13において、$A”は「変数」を表し、”A|B”は「AまたはB」という意味を表す。また、”[A]”は「Aは省略可能」という意味を表し、{A}は「Aを0回以上繰り返す」という意味を表す。
【0117】
<OOV>は未知語を表すシンボルであり、文法中に<OOV>を記述しておくことで、未知語を含む単語列に対しても対処することができる。”$ACTION”には、例えば、「起立」、「着席」、「お辞儀」、「挨拶」等の、名称と動作内容の対応が予め設定されている場合の、動作に対応する単語が定義されている。
【0118】
この文法では、「<先頭>/こんにちは/<終端>」(“/”は単語間の区切り)、「<先頭>/さようなら/<終端>」、「<先頭>/私/の/名前/は/<OOV>/です/<終端>」のように、データベースに記憶されている文法に当てはまる単語列は受理される(この文法で解析される)が、「<先頭>/君/の/<OOV>/名前/<終端>」といった、データベースに記憶されている文法に当てはまらない単語列は受理されない(この文法で解析されない)。なお、「<先頭>」と「<終端>」はそれぞれ発話前と後の無音を表す特殊なシンボルである。
【0119】
この文法を用いて言語スコアを計算するために、パーザ(解析機)が用いられる。パーザは、単語列を、文法を受理できる単語列と、受理できない単語列に分ける。即ち、例えば、受理できる単語列には言語スコア1が与えられて、受理できない単語列には言語スコア0が与えられる。
【0120】
したがって、例えば、「<先頭>/私/の/名前/は/<OOV>(t/a/r/o:)/です/<終端>」と、「<先頭>/私/の/名前/は/<OOV>(j/i/r/o:)/です/<終端>」という2つの単語列があった場合、いずれも「<先頭>/私/の/名前/は/<OOV>/です/<終端>」に置き換えられた上で言語スコアが計算されて、ともに言語スコア1(受理)が出力される。
【0121】
また、単語列の文法が受理できるか否かの判定は、事前に文法を等価(近似でも良い)な有限状態オートマトン(以下、FSAと称する)に変換しておき、各単語列がそのFSAで受理できるか否かを判定することによっても実現できる。
【0122】
図13の文法を等価なFSAに変換した例を、図14に示す。FSAは、状態(ノード)とパス(アーク)とからなる有向グラフである。図14に示されるように、S1は開始状態、S20は終了状態である。また、”$ACTION”には、図13と同様に、実際には動作に対応する単語が登録されている。
【0123】
パスには単語が付与されていて、所定の状態から次の状態に遷移する場合、パスはこの単語を消費する。ただし、”ε”が付与されているパスは、単語を消費しない特別な遷移(以下、ε遷移と称する)である。例えば、「<先頭>/私/は/<OOV>/です/<終端>」においては、初期状態S1から状態S2に遷移して、<先頭>が消費され、状態S2から状態S3へ遷移して、「私」が消費されるが、状態S3から状態S5への遷移は、ε遷移なので、単語は消費されない。即ち、状態S3から状態S5へスキップして、次の状態S6へ遷移することができる。
【0124】
所定の単語列がこのFSAで受理できるか否かは、初期状態S1から出発して、終了状態S20まで到達できるか否かで判定される。
【0125】
即ち、例えば、「<先頭>/私/の/名前/は/<OOV>/です/<終端>」においては、初期状態S1から状態S2へ遷移して、単語「<先頭>」が消費される。次に、状態S2から状態S3へ遷移して、単語「私」が消費される。以下、同様に、状態S3から状態S4へ、状態S4から状態S5へ、状態S5から状態S6へ、状態S6から状態S7へ順次遷移して、「の」、「名前」、「は」、「<00V>」、が次々に消費される。更に、状態S7から状態S19へ遷移して、「です」が消費され、状態S19から状態S20に遷移して、「<終端>」が消費され、結局、終了状態S20へ到達する。したがって、「<先頭>/私/の/名前/は/<OOV>/です/<終端>」はFSAで受理される。
【0126】
しかしながら、「<先頭>/君/の/<OOV>/名前/<終端>」は、状態S1から状態S2へ、状態S2から状態S8へ、状態S8から状態S9までは遷移して、「<先頭>」、「君」、「の」までは消費されるが、その先には遷移できないので、終了状態S16へ到達することはできない。したがって、「<先頭>/君/の/<OOV>/名前/<終端>」は、FSAで受理されない(不受理)。
【0127】
また、「<先頭>/さようなら/<終端>」「<先頭>/こんにちは/<終端>」においては、いずれも、状態S1から状態S2へ遷移して、単語「<先頭>」が消費され、状態S2から状態S19へ遷移して、単語「さようなら」または「こんにちわ」が消費され、状態S19から状態S20に遷移して、「<終端>」が消費される。
【0128】
「<先頭>/これは/<OOV>/ポーズ/だよ/<終端>」または、それに類似する単語列である「<先頭>/これは/<OOV>/です/<終端>」などにおいては、状態S1から状態S2へ遷移して、単語「<先頭>」が消費され、状態S2から状態S13へ遷移して、単語「これは」が、状態S13から状態S14へ遷移して、単語「<OOV>」が消費され、状態S13から状態S14へ遷移して、単語「ポーズ」が消費されるか、あるいは、状態S13から状態S14へε遷移し、状態S14から状態S19へ遷移して、単語「だよ」または「です」が消費されるか、あるいは、状態S14から状態S19へε遷移し、最後に、状態S19から状態S20に遷移して、「<終端>」が消費される。
【0129】
そして、「<先頭>/<OOV>(キャラクタ名)/$ACTION/して/<終端>」または、それに類似する単語列である「<先頭>/<OOV>(キャラクタ名)/<OOV>(ポーズ名)/ポーズ/して/<終端>」などにおいては、状態S1から状態S2へ遷移して、単語「<先頭>」が消費され、状態S2から状態S16へ遷移して、単語「<OOV>」(未知語のキャラクタ名)が消費され、状態S16から状態S18へ遷移して、予め定められた動作を示す単語「$ACTION」が消費されるか、あるいは、状態S16から状態S17へ遷移して、単語「<OOV>」(未知語のポーズ名)が消費された後、状態S17から状態S18へε遷移するか、または、単語「ポーズ」が消費される。そして、状態S18から状態S19へ遷移して、単語「して」が消費されて、最後に、状態S19から状態S20に遷移して、「<終端>」が消費される。
【0130】
更に、言語モデルとして、統計言語モデルの1つであるtri−gramを用いた場合の言語スコアを計算する例を、図15を参照して説明する。統計言語モデルとは、その単語列の生成確率を求めて、それを言語スコアとする言語モデルである。即ち、例えば、図15に示される言語モデルの「<先頭>/私/の/名前/は/<OOV>/です/<終端>」の言語スコアは、第2行に示されるように、その単語列の生成確率で表される。これは更に、第3行乃至第6行で示されるように、条件付き確率の積として表される。なお、例えば、「P(の|<先頭> 私)」は、「の」の直前の単語が「私」で、「私」の直前の単語が「<先頭>」であるという条件の下で、「の」が出現する確率を表す。
【0131】
更に、tri−gramでは、図15の第3行乃至第6行で示される式を、第7行乃至第9行で示されるように、連続する3単語の条件付き確率で近似させる。これらの確率値は、図16に示されるようなtri−gramデータベースを参照して求められる。このtri−gramデータベースは、予め大量のテキストを分析して求められたものである。
【0132】
図16の例では、3つの連続する単語w1,w2,w3の確率P(w3|w1w2)が表されている。例えば、3つの単語w1,w2,w3が、それぞれ、「<先頭>」、「私」、「の」である場合、確率値は0.12とされ、「私」、「の」、「名前」である場合、確率値は0.01とされ、「<OOV>」、「です」、「<終端>」である場合、確率値は、0.87とされている。
【0133】
もちろん、「P(W)」および「P(w2|w1)」についても、同様に、予め求めておく。
【0134】
このようにして、言語モデル中の<OOV>について、エントリ処理をしておくことで、<OOV>を含む単語列に対して、言語スコアを計算することができる。したがって、認識結果に<OOV>というシンボルを出力することができる。
【0135】
また、他の種類の言語モデルを用いる場合も、<OOV>についてのエントリ処理をすることによって、同様に<OOV>を含む単語列に対して、言語スコアを計算することができる。
【0136】
更に、<OOV>のエントリが存在しない言語モデルを用いた場合でも、<OOV>を言語モデル中の適切な単語にマッピングする機構を用いることで、言語スコアの計算ができる。例えば、「P(<OOV>|私は)」が存在しないtri−gramデータベースを用いた場合でも、「P(太郎|私は)」でデータベースをアクセスして、そこに記述されている確率を「P(<OOV>|私は)」の値とみなすことで、言語スコアの計算ができる。
【0137】
図12の音声認識処理についての説明に戻る。ステップS30において、マッチング部173は、音響スコアと言語スコアを統合する。ステップS31において、マッチング部173は、ステップS30において求められた音響スコアと言語スコアの両スコアを統合したスコアに基づいて、最もよいスコアをもつ候補単語列を選択して、認識結果として出力する。
【0138】
なお、言語モデルとして、有限状態オートマトンを使用している場合は、ステップS30の統合処理を、言語スコアが0の場合は単語列を消去し、言語スコアが0以外の場合はそのまま残すという処理にしてもよい。
【0139】
次に、図17のフローチャートを参照して、図12のステップS25において実行される、単語列生成処理について説明する。
【0140】
ステップS61において、マッチング部173は、入力音声のある区間について、辞書データベース182に登録されている既知語とマッチングさせた結果の音響スコアと、音韻タイプライタ部174により得られた結果(今の場合、”w/a/t/a/sh/i/n/o/n/a/m/a/e/w/a/t/a/r/o:/d/e/s/u”の中の一部区間)の音響スコアとの、両方の場合の音響スコアを計算する。音響スコアは、音声認識結果の候補である単語列と入力音声とが音としてどれだけ近いかを表す。
【0141】
そして、次に、入力音声の一部区間と辞書データベース182に登録されている既知語とをマッチングさせた結果の音響スコアと、音韻タイプライタ部174による結果の音響スコアが比較されるのであるが、既知語とのマッチングは単語単位で行われ、音韻タイプライタ部174でのマッチングは音韻単位で行われ、尺度が異なっているので、そのままでは比較することが困難である(一般的には、音韻単位の音響スコアの方が大きな値となる)。
【0142】
そこで、尺度を合わせて比較できるようにするために、ステップS62において、マッチング部173は、音韻タイプライタ部174により得られた結果の音響スコアを補正する。
【0143】
ステップS62においては、例えば、音韻タイプライタ部174からの音響スコアに係数をかけたり、一定の値やフレーム長に比例した値などを減じたりする処理が行われる。もちろん、この処理は相対的なものなので、既知語とマッチングさせた結果得られる音響スコアに対して行うこともできる。なお、この処理の詳細は、例えば、文献「”EUROSPEECH99 Volume 1, Page 49−52”」に「OOV−Detection in Large Vocabulary System Using Automatically Defined Word−Fragments as Fillers」として開示されている。
【0144】
マッチング部173は、ステップS63において、この2つの音響スコアを比較し、音韻タイプライタ部174で認識させた結果の音響スコアの方が高い(優れている)か否かを判定する。音韻タイプライタ部174で認識させた結果得られる音響スコアの方が高い場合、ステップS64において、マッチング部173は、その区間を、未知語<OOV>であると推定する。
【0145】
ステップS63において、既知語とマッチングさせた結果の音響スコアに対して、音韻タイプライタ部174で認識された結果の音響スコアの方が低いと判定された場合、ステップS65において、マッチング部173は、その区間を既知語であると推定する。
【0146】
即ち、例えば、「たろう」に相当する区間について、音韻タイプライタ部174の出力した”t/a/r/o:”の音響スコアと、既知語でマッチングさせた場合の音響スコアを比較して、”t/a/r/o:”の音響スコアの方が高い場合は、その音声区間に相当する単語として「<OOV>(t/a/r/o:)」が出力され、既知語の音響スコアの方が高い場合は、その既知語が音声区間に相当する単語として出力される。
【0147】
ステップS64、または、ステップS65の処理の終了後、ステップS66において、マッチング部173は、音響スコアが高くなると推測される単語列(いくつかの単語モデルを連結したもの)を優先的にn個を生成して、処理は、図12のステップS26に戻る。
【0148】
このような処理により、図12のステップS27の処理において、音響スコアの計算に用いられる単語列が生成される。
【0149】
次に、図18のフローチャートを参照して、図11のステップS4において実行される単語獲得処理について説明する。
【0150】
ステップS91において、単語獲得部124は、音声認識処理部121から未知語(<OOV>)の特徴パラメータを抽出する。
【0151】
ステップS92において、単語獲得部124は、未知語が既獲得のクラスタに属するか否かを判定する。ステップS92において、未知語が既獲得のクラスタに属すると判定された場合、新しいクラスタを生成する必要がないので、処理は、ステップS94に進む。
【0152】
ステップS92において、未知語が既獲得のクラスタに属さないと判定された場合、ステップS93において、単語獲得部124は、その未知語に対応する、新しいクラスタを生成する。
【0153】
ステップS92において、未知語が既獲得のクラスタに属すると判定された場合、または、ステップS93の処理の終了後、ステップS94において、単語獲得部124は、未知語の属するクラスタのIDを音声認識処理部121に出力し、処理は、図11のステップS5に進む。
【0154】
このような処理により、続く図11のステップS5において、テンプレートとマッチングされる未知語の単語が獲得される。
【0155】
図18においては、未知語の特徴量パラメータから、未知語が既獲得のクラスタに属するか否かを判定し、既獲得のクラスタに属さない場合は、新たなクラスタを生成するものとして説明しているが、クラスタを生成することなく、例えば、音韻系列にIDを対応付けるものとし、すでに獲得されている未知語であるか否かは、音韻系列の比較によって行うようにしてもよい。
【0156】
次に、図19のフローチャートを参照して、図11のステップS5において実行される、テンプレートマッチング処理について説明する。
【0157】
ステップS121において、音声認識部101Aの対話制御部123は、供給された音声認識結果が、未知語をポーズ名として登録するテンプレート1にマッチしているか否か、すなわち、認識結果の単語列が何かのポーズ名の登録を意味するものか否かを判定する。
【0158】
図20を用いて、テンプレート1について説明する。なお、図20と、後述する図22、図23、および図24においては、”/A/”は「文字列Aが含まれていたら」という意味を表し、”A|B”は「AまたはB」という意味を表す。また、”.”は「任意の文字」を表し、”A+”は「Aの1回以上の繰り返し」という意味を表し、”(.)+”は「任意の文字列」を表す。
【0159】
認識結果の単語列が、例えば、「<先頭>/これは/<OOV>(g/a/t/t/u:)/ポーズ/です/<終端>」という単語列である場合、この認識結果から生成された文字列「これは<OOV>ポーズです」が、テンプレート1の、正規表現”/これは<OOV>(カテゴリ;ポーズ名)/”にマッチするので、対応する「<OOV>(カテゴリ;ポーズ名)に対応するクラスタIDを、ポーズ名として登録」する動作と、その時点における「アクチュエータ制御角とともに、テーブルに記憶」する動作を実行させることを表している。
【0160】
具体的には、例えば、ユーザが、ロボット1の両腕を上に挙げさせた状態にし、「これはガッツ(ポーズ)だよ」と発声した場合、未知語<ガッツ(ポーズ)>が獲得されて、テンプレート1に対応していることが検出される。
【0161】
ステップS121において、テンプレート1にマッチしていると判断された場合、ステップS122において、連想記憶部122は、図9を用いて説明したように、単語のクラスタIDとカテゴリを、対応させて記憶する。
【0162】
ステップS123において、音声認識部101Aは、クラスタIDを行動決定機構部103に供給する。また、行動決定機構部103は、サブ制御部63A乃至サブ制御部63Dから、現在の、アクチュエータA1乃至アクチュエータA14の状態(角度)を取得する。行動決定機構部103は、供給されたクラスタIDと、アクチュエータ制御角の情報を対応付けて、図21に示されるようなテーブルを、テーブル記憶部104に記憶させ、処理が終了される。
【0163】
具体的には、例えば、ユーザが、ロボット1の両腕を上に挙げさせた状態にし、「これはガッツ(ポーズ)だよ」と発声した場合、<ガッツ(ポーズ)>に対応付けられたクラスタIDが、ロボット1の両腕を上に挙げさせた状態のアクチュエータA1乃至アクチュエータA14の状態(角度)と対応付けられて、テーブル記憶部104に記憶される。
【0164】
ステップS121において、テンプレート1にマッチしていないと判断された場合、ステップS124において、対話制御部123は、供給された音声認識結果が、未知語に対応付けられたポーズをロボット1に指令するテンプレート2にマッチしているか否かを判断する。
【0165】
図22を用いて、テンプレート2について説明する。認識結果の単語列が、例えば、「<先頭>/<OOV>(b/a/n/z/a/i)/して/<終端>」という単語列である場合、この認識結果から生成された文字列「<OOV>して」が、テンプレート2の、正規表現”/<OOV>(カテゴリ;ポーズ名)+して/”にマッチするので、対応する「<OOV>(カテゴリ;ポーズ名)に対応するクラスタIDを基に、テーブル記憶部104を参照して、<OOV>に対応するアクションを実行」の動作が実行される。
【0166】
ステップS124において、テンプレート2にマッチしていると判断された場合、ステップS125において、音声認識部101Aは、認識された未知語のクラスタIDを行動決定機構部103に供給する。行動決定機構部103は、テーブル記憶部104を参照して、供給されたクラスタIDを基に、図21を用いて説明したようなテーブルから、アクチュエータ制御角の情報を抽出し、姿勢遷移機構部105に供給する。
【0167】
ステップS126において、姿勢遷移機構部105は、アクチュエータ制御角の情報に基づいて、サブ制御部63A乃至サブ制御部63Dのうちの対応するものに、アクチュエータA1乃至アクチュエータA14のうちの必要なものを制御させて、処理が終了される。
【0168】
具体的には、例えば、ユーザが、ロボット1に対して、「バンザイして」と発声した場合、単語獲得部124において、未知語<バンザイ>が獲得され、対話制御部123で、テンプレート2に対応していることが検出される。そして、行動決定機構部103は、テーブル記憶部104を参照して、<バンザイ>に対応するアクチュエータの制御情報を取得し、サブ制御部63A乃至サブ制御部63Dのうちの対応するものに供給して、ロボット1にバンザイに対応するポーズをさせることができる。
【0169】
ステップS124において、テンプレート2にマッチしていないと判断された場合、ステップS127において、対話制御部123は、供給された音声認識結果が、キャラクタ名やユーザ名の記憶をロボット1に指令するテンプレート3にマッチしているか否かを判断する。
【0170】
図23を用いて、テンプレート3について説明する。例えば、認識結果が、「<先頭>/君/の/名前/は/<OOV>(t/a/r/o:)/だよ/<終端>」という単語列である場合、この認識結果から生成された文字列「君の名前は<OOV>だよ」が、正規表現「/君(.)+は<OOV>/」に対応するので、「<OOV>に対応するクラスタIDをキャラクタ名として登録」の動作が実行される。また、認識結果が、「<先頭>/私/の/名前/は/<OOV>(t/a/r/o:)/です/<終端>」という単語列である場合、この認識結果から生成された文字列「私の名前は<OOV>です」が、正規表現「(私|僕)(.)+は<OOV>/」に対応するので、「<OOV>に対応するクラスタIDをユーザ名として登録」の動作が実行される。
【0171】
ステップS127において、テンプレート3にマッチしていると判断された場合、ステップS128において、対話制御部123は、連想記憶部122に、音声認識結果である単語のクラスタIDと、ユーザ名またはキャラクタ名のカテゴリを対応させて記憶させて処理が終了される。
【0172】
なお、ロボット1の利用方法によっては、登録する単語が1種類しかない(例えば、「ユーザ名」のみ)場合もあり、その場合は、テンプレートと連想記憶部122は簡略化することができる。例えば、テンプレートの内容を「認識結果に<OOV>が含まれていたら、そのIDを記憶する」として、連想記憶部122にそのクラスタIDのみを記憶させることができる。
【0173】
対話制御部123は、このようにして連想記憶部122に登録された情報を、以後の対話の判断処理に反映させる。例えば、ロボット1の側で、「ユーザの発話の中に、「キャラクタ名」が含まれているかどうかを判定し、含まれている場合は『呼びかけられた』と判断して、それに応じた返事をする」という処理や、「ロボット1がユーザの名前をしゃべる」という処理が必要になった場合、対話制御部123は、連想記憶部122に記録されている情報を参照することで、ロボット1に相当する単語(カテゴリ名が「キャラクタ名」であるエントリ)やユーザ名に相当する単語(カテゴリ名が「ユーザ名」であるエントリ)を得ることができる。
【0174】
ステップS127において、テンプレート3にマッチしていないと判断された場合、ステップS129において、対話制御部123は、入力音声に対応する所定の応答処理を実行する。すなわち、この場合には、未知語の登録処理は行われず、例えば、「歩け」という命令に対して、歩く動作を行うなどの、ユーザからの入力音声に対応する所定の処理が実行されて、処理が終了される。
【0175】
このようにして、取得した音声データを正規表現と照らし合わせることにより、所定のテンプレートに合致しているか否かが判断され、いずれかのテンプレートに合致していると判断された場合、そのテンプレートに対応した行動を実行するように、ロボット1の動作が制御される。
【0176】
なお、図20、図22および図23を用いて説明したテンプレート1乃至テンプレート3の内容は、この限りではなく、例えば、テンプレート2の正規表現に、”/<OOV>(カテゴリ;ポーズ名)+ポーズ+して/”を加えたり、テンプレート2の正規表現を、”/<OOV>(カテゴリ;ポーズ名)(.)+して/”とするようにしても良い。
【0177】
ところで、言語モデルとして文法を用いる場合、文法の中に音韻タイプライタ相当の記述も組み込むことができる。この場合の文法の例について、図24を用いて説明する。図24に示される文法において、第1行目の変数”$PHONEME”は、全ての音韻が「または」を意味する”|”で繋がれているので、音韻記号の内のどれか1つを意味する。変数”$OOV”は、変数”$PHONEME”を0回以上繰り返すことを表している。すなわち、「任意の音韻記号を0回以上接続したもの」を意味し、音韻タイプライタに相当する。したがって、第3行目の「は」と「です」の間の変数”$OOV”は、任意の発音を受け付けることができる。
【0178】
図24に示される文法を用いた場合の認識結果では、変数”$OOV”に相当する部分が複数のシンボルで出力される。例えば、「私の名前は太郎です」の認識結果が「<先頭>/私/の/名前/は/t/a/r/o:/です/<終端>」となる。この結果を「<先頭>/私/の/名前/は/<OOV>(t/a/r/o:)/です」に変換すると、図11のステップS3以降の処理は、音韻タイプライタを用いた場合と同様に実行することができる。
【0179】
以上においては、未知語に関連する情報として、カテゴリを登録するようにしたが、その他の情報を登録するようにしてもよい。
【0180】
また、ロボット1は、ユーザの指令に基づいた処理を実行するのみならず、ユーザの操作を受けない状態においても、自動的に、動作を行うことができる。その動作は、予め設定されているものであっても良いが、例えば、上述した処理により、未知語と対応付けられて記憶された動作を、ランダムに実行するようにし、ロボット1が、自分自身の動作を認識して、ポーズに対応する発話を自動的に行うようにしてもよい。
【0181】
図25のフローチャートを参照して、ロボット1が実行する、動作認識発話処理について説明する。
【0182】
ステップS151において、音声認識部101Aの音声認識処理部121は、マイクロホン82から、音声の入力を受けたか否かを判断する。ステップS151において、音声の入力を受けていないと判断された場合、音声の入力を受けたと判断されるまで、ステップS151の処理が繰り返される。
【0183】
ステップS152において、図12を用いて説明した音声認識処理が実行される。
【0184】
ステップS153において、音声認識部101Aの対話制御部123は、供給された音声認識結果が、「そのポーズは何?」であったか否かを判断する。
【0185】
ステップS153において、「そのポーズは何?」という音声を認識しなかったと判断された場合、ステップS154において、行動決定機構部103は、図示しない内部のタイマが、ユーザからの指令の入力を受けない状態で、所定の時間が経過したことを通知したか否かを判断する。ステップS154において、タイマが所定経過時間を通知していないと判断された場合、処理は、ステップS151に戻り、それ以降の処理が繰り返される。
【0186】
ステップS153において、「そのポーズは何?」という音声を認識したと判断された場合、または、ステップS154において、タイマが所定経過時間を通知したと判断された場合、ステップS155において、行動決定機構部103は、サブ制御部63A乃至サブ制御部63Dから供給される信号を基に、アクチュエータA1乃至アクチュエータA14の制御角を認識する。
【0187】
ステップS156において、行動決定機構部103は、テーブル記憶部104に記憶されている、ポーズ名とアクチュエータA1乃至アクチュエータA14の制御角との対応を示すテーブルを参照して、ステップS155において認識したアクチュエータA1乃至アクチュエータA14の制御角に対応するポーズ名を検索する。
【0188】
ステップS157において、行動決定機構部103は、テーブル記憶部104に記憶されているテーブルに、ステップS155において認識したアクチュエータA1乃至アクチュエータA14の制御角に対応するポーズ名があるか否かを判断する。ステップS157において、対応するポーズ名がないと判断された場合、処理は、ステップS151に戻り、それ以降の処理が繰り返される。
【0189】
ステップS157において、対応するポーズ名があると判断された場合、ステップS158において、行動決定機構部103は、テーブル記憶部104を参照して、対応する、カテゴリがポーズ名である未知語を抽出し、音声合成部106を制御して、例えば、「いま、<OOV>ポーズをしているのです」と言う音声を合成させ、スピーカ72から出力、すなわち、発話させて、処理は、ステップS151に戻り、それ以降の処理が繰り返される。
【0190】
以上のような処理により、ロボット1は、ユーザの発話に対する応答のみならず、自分自身の動作を認識することにより、テーブルとして記憶しているアクチュエータA1乃至アクチュエータA14の制御角に対応するポーズ名を利用して、自動的に発話することができる。
【0191】
以上説明した処理においては、静止したポーズにおけるアクチュエータA1乃至アクチュエータA14の制御角と、獲得した未知語を対応付けて記憶させる場合について説明したが、本発明は、静止したポーズのみならず、ロボット1が所定の動作を行う場合のアクチュエータA1乃至アクチュエータA14の制御情報(例えば、それぞれのアクチュエータの制御角を時間系列に表したもの)と、獲得した未知語を対応付けて記憶させる場合にも適用可能であることはいうまでもない。
【0192】
また、以上においては、手足などに対応する実際に駆動可能な部分を有するロボット1の動作(駆動および発話)を制御する場合について説明したが、例えば、ディスプレイに表示された(バーチャルの)ロボット1においても、本発明は適応可能である。
【0193】
図26は、上述の処理を実行するパーソナルコンピュータ201の構成例を示している。このパーソナルコンピュータ201は、CPU(Central ProcessingUnit)211を内蔵している。CPU211にはバス214を介して、入出力インタフェース115が接続されている。バス214には、ROM(Read Only Memory)212およびRAM(Random Access Memory)213が接続されている。
【0194】
入出力インタフェース215には、ユーザが操作するマウス、キーボード、マイクロホン、AD変換器等の入力デバイスで構成される入力部217、およびディスプレイ、スピーカ、DA変換器等の出力デバイスで構成される出力部216が接続されている。更に、入出力インタフェース215には、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部218、並びにインタネットに代表されるネットワークを介してデータを通信する通信部219が接続されている。
【0195】
入出力インタフェース215には、磁気ディスク231、光ディスク232、光磁気ディスク233、半導体メモリ234などの記録媒体に対してデータを読み書きするドライブ220が必要に応じて接続される。
【0196】
例えば、このパーソナルコンピュータ201は、ユーザが発生した音声を、入力部217のマイクロホンにより集音可能であり、CPU211の処理により、上述した場合と同様にして、音声認識処理を実行する。また、CPU211の制御に基づいて、出力部216のディスプレイに、例えば、ロボット1の外見を有するキャラクタを表示可能である。CPU211は、入力部217のマイクロホンにより集音された音声の認識処理結果、あるいは、ユーザが入力部217のマウスを用いて入力する操作に基づいて、出力部216のディスプレイに表示されているキャラクタの動き(表示上での動き)を制御(すなわち、出力部216のディスプレイの表示を制御)したり、ユーザの呼びかけに対する返答に対する音声データを生成し、出力部216のスピーカから出力する。
【0197】
そして、ユーザが、「これば、<うれしい>ポーズだよ」と発話した場合、CPU211は、「うれしい」という未知語を認識し、ポーズ名のカテゴリの未知語として固有のIDを対応付けるとともに、出力部216のディスプレイ表示されているキャラクタの動き(すなわち、ディスプレイに表示されている画像データ)を、対応するIDとともに、例えば、RAM213に記録させるようにすることが可能である。そして、その後、ユーザが、「<うれしい>ポーズして」と指令した場合、RAM213に記録されている情報を基に、出力部216のディスプレイ表示を、未知語<うれしい>に対応する表示としたり、CPU211の処理により、出力部216のディスプレイ表示を、自動的に、未知語<うれしい>に対応する表示とし、出力部216のスピーカから「これは<うれしい>ポーズだよ」という音声を出力させることができる。
【0198】
また、上述した一連の処理は、ソフトウェアにより実行することもできる。そのソフトウェアは、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【0199】
この記録媒体は、図26に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク231(フレキシブルディスクを含む)、光ディスク232(CD−ROM(Compact Disk−Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク233(MD(Mini−Disk)(商標)を含む)、もしくは半導体メモリ234などよりなるパッケージメディアなどにより構成される。
【0200】
例えば、パーソナルコンピュータ201に、本発明を適用したロボット1制御装置としての動作を実行させるロボット1制御処理プログラムは、磁気ディスク231(フロッピディスクを含む)、光ディスク232(CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク233(MD(Mini Disc)を含む)、もしくは半導体メモリ234に格納された状態でパーソナルコンピュータ201に供給され、ドライブ220によって読み出されて、記憶部218に内蔵されるハードディスクドライブにインストールされる。記憶部218にインストールされた音声処理プログラムは、入力部217に入力されるユーザからのコマンドに対応するCPU211の指令によって、記憶部218からRAM213にロードされて実行される。
【0201】
また、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0202】
【発明の効果】
このように、本発明によれば、音声を認識することができる。特に、認識した音声とロボットの動作を制御する情報を関連付けて登録することができる。
また、他の本発明によれば、ロボットの状態を検出することができる他、ロボットの状態の検出結果に基づいて、ロボットの状態に対応した単語を含む音声を合成することができる。
【図面の簡単な説明】
【図1】本発明を適用したロボットの外観構成を示す斜視図である。
【図2】図1のロボットの外観構成を示す、背後側の斜視図である。
【図3】図1のロボットについて説明するための略線図である。
【図4】図1のロボットの内部構成を示すブロック図である。
【図5】図1のロボットの制御に関する部分を主に説明するためのブロック図である。
【図6】図5のメイン制御部の構成を示すブロック図である。
【図7】図6の音声認識部の構成を示すブロック図である。
【図8】クラスタの状態を説明する図である。
【図9】単語の登録について説明する図である。
【図10】図7の音声認識処理部の構成を示すブロック図である。
【図11】本発明を適用したロボットが実行する処理について説明するフローチャートである。
【図12】音声認識処理について説明するフローチャートである。
【図13】言語モデルデータベースで用いられる文法の例を示す図である。
【図14】有限状態オートマトンによる言語モデルの例を示す図である。
【図15】tri−gramを用いた言語スコアの計算の例を示す図である。
【図16】tri−gramデータベースの例を示す図である。
【図17】単語列生成処理について説明するフローチャートである。
【図18】単語獲得処理について説明するフローチャートである。
【図19】テンプレートマッチング処理について説明するフローチャートである。
【図20】テンプレートについて説明する図である。
【図21】クラスタIDに対応けられて登録されているアクチュエータ制御角について説明する図である。
【図22】テンプレートについて説明する図である。
【図23】テンプレートについて説明する図である。
【図24】音韻タイプライタを組み込んだ文法の例を示す図である。
【図25】動作認識発話処理について説明するフローチャートである。
【図26】本発明を適用したコンピュータの構成を示すブロック図である。
【符号の説明】
1 ロボット, 61 メイン制御部, 63 サブ制御部, 72 スピーカ, 82 マイクロホン, 101 センサ入力処理部, 101A 院生認識部, 103 行動決定機構部, 104 テーブル記憶部, 105 姿勢遷移機構部, 106 音声合成部, 121 音声認識処理部, 122 連想記憶部, 123 対話制御部, 124 単語獲得部, 172 特徴量抽出部, 173 マッチング部, 174 音韻タイプライタ部, 175 制御部, 181 音響モデルデータベース, 182 辞書データベース, 183 言語モデルデータベース[0001]
TECHNICAL FIELD OF THE INVENTION
The present invention relates to a robot control device and method, a recording medium, and a program, and particularly to a robot control device, method, and recording medium suitable for controlling a robot capable of voice recognition, voice output, and driving. , And the program.
[0002]
[Prior art]
In a dialogue system, there are many cases where a name of some kind is registered by voice. For example, a user registers his / her name, names a dialogue system, or inputs a place name or a shop name.
[0003]
Conventionally, as a method for easily realizing such voice registration, there is a method in which the mode is shifted to the registration mode by some command, and the normal interactive mode is returned when the registration is completed. In this case, for example, the mode is shifted to the registration mode by a voice command of “user name registration”, and when the user utters the name thereafter, the name is registered, and thereafter, the process of returning to the normal mode is performed.
[0004]
For example, by causing a voice-recognizable robot to take an action indicating that a name is to be given, the user is notified that the mode is switched to the robot name registration mode, and the input is performed after the action of the robot is controlled. There is a technique for detecting an optimal phoneme sequence from a recorded voice and registering the optimal phoneme sequence as a name (for example, see Patent Document 1).
[0005]
[Patent Document 1]
JP-A-2002-120177
[0006]
[Problems to be solved by the invention]
However, in such a voice registration method, the mode must be switched by a command, which is unnatural as a dialogue and has a problem that the user is troublesome. Further, when there are a plurality of naming targets, the number of commands is increased, which is more troublesome.
[0007]
For example, as described above, when the user is notified of the transition to the registration mode by the action of the robot, the action of the robot is changed according to the naming target, and the user grasps the relationship between the action of the robot and the registered content. Voice registration becomes very troublesome, for example.
[0008]
In addition, during the registration mode, the user word other than the name (for example, "Hello") If you've talked to, even the words of except for the name will be registered as the name. In addition, for example, when the user speaks with a word other than the name such as “My name is Taro” instead of the name “Taro”, the whole (“My name is Taro. )) Is registered as a name.
[0009]
Further, the registered word is only used for voice output processing using the registered word and recognition processing when the same word is uttered by the user after registration.
[0010]
The present invention has been made in view of such a situation, and a word registered in a normal dialogue is stored in association with a motion of a robot so that the word can be used for the motion of the robot. Things.
[0011]
[Means for Solving the Problems]
A first robot control device according to the present invention includes: a recognition unit that recognizes a continuous input voice; and, when it is determined that an unknown word is included in the recognition result recognized by the recognition unit, the unknown word corresponds to the unknown word. An acquisition unit for acquiring a word and a registration unit for registering the word acquired by the acquisition unit in association with information for controlling the operation of the robot are provided.
[0012]
Pattern determination means for determining whether or not the recognition result recognized by the recognition means matches a specific pattern can be further provided. By the pattern determination means, the recognition result matches the specific pattern. If it is determined that the word is present, the registration means can register the word in association with information for controlling the operation of the robot.
[0013]
Detection means for detecting the state of the robot may be further provided, and the detection means may detect the state of the robot at the time when the recognition result is determined to match the specific pattern. The registration means can associate and register a word and information for controlling the operation of the robot so as to be in the state of the robot detected by the detection means.
[0014]
Control means for controlling the driving of the robot, and pattern determining means for determining whether or not the recognition result recognized by the recognition means matches a specific pattern, further comprising: When it is determined that the recognition result matches the specific pattern, the control unit controls the driving of the robot based on information for controlling the operation of the robot registered in association with the word by the registration unit. It can be controlled.
[0015]
It is possible to further include a storage unit that classifies the words acquired by the acquisition unit into a plurality of categories and stores the words, and the registration unit stores the words stored in the predetermined category in the storage unit. The information can be registered in association with information for controlling the operation of the robot.
[0016]
A first robot control method according to the present invention includes a recognition step of recognizing a continuous input voice; a determination step of determining whether or not an unknown word is included in a recognition result recognized by the processing of the recognition step; When it is determined that the unknown word is included in the recognition result by the processing of the determining step, the acquiring step of acquiring the word corresponding to the unknown word, and the word acquired by the processing of the acquiring step are performed by the operation of the robot. And registering the information in association with information for controlling
[0017]
The program recorded on the first recording medium of the present invention determines a recognition step of recognizing a continuous input voice, and determines whether or not an unknown word is included in a recognition result recognized by the processing of the recognition step. When the recognition result is determined to include an unknown word by the processing of the determining step, the obtaining step of obtaining a word corresponding to the unknown word, and the word obtained by the processing of the obtaining step And registering the information in association with information for controlling the operation of the robot.
[0018]
A first program according to the present invention includes: a recognition step of recognizing a continuous input voice; a determination step of determining whether an unknown word is included in a recognition result recognized by the processing of the recognition step; When it is determined that the unknown word is included in the recognition result by the processing of the above, the acquiring step of acquiring the word corresponding to the unknown word, and controlling the operation of the robot with the word acquired by the processing of the acquiring step And a registration step of registering the information in association with the information to be performed.
[0019]
In the first robot control apparatus and method and the program according to the present invention, continuous input speech is recognized, and whether or not an unknown word is included in the recognition result is determined. If determined, a word corresponding to the unknown word is acquired, and the acquired word is registered in association with information for controlling the operation of the robot.
[0020]
A second robot control device according to the present invention includes a control unit that controls driving of the robot, a registration unit that registers information indicating a state of the robot in association with a corresponding word, and a robot whose driving is controlled by the control unit. Detecting means for detecting the state of the robot, voice synthesizing means for synthesizing the voice, and output means for outputting the voice synthesized by the voice synthesizing means, and the state of the robot detected by the detecting means is registered by the registering means. The voice synthesizing unit synthesizes a voice including a word associated with the information indicating the state of the robot registered by the registration unit when the information matches the information indicating the state of the registered robot.
[0021]
Input means for receiving a command from the user may be further provided, and the detecting means may detect the state of the robot when the input means does not receive an operation input for a predetermined time. Can be.
[0022]
A recognition unit for recognizing a continuous input voice, and a pattern determination unit for determining whether a recognition result by the recognition unit matches a specific pattern may be further provided. If it is determined that the pattern matches a specific pattern, the detecting means can detect the state of the robot.
[0023]
When it is determined that the unknown word is included in the recognition result recognized by the recognition unit, an acquisition unit that acquires a word corresponding to the unknown word can be further provided. A word corresponding to the unknown word acquired by the acquiring means and information indicating the state of the robot can be stored in association with each other.
[0024]
According to a second robot control method of the present invention, there is provided a detecting step for detecting a state of the robot, and whether or not the state of the robot detected by the processing of the detecting step matches the registered information registered in the registered information. When it is determined that the state of the robot matches the information indicating the state of the robot registered in the registration information by the processing of the determining step of determining the state of the robot, the information is associated with the information indicating the state of the robot. And a speech synthesizing step of synthesizing speech including the selected word.
[0025]
The program recorded on the second recording medium of the present invention includes a detection step of detecting a state of the robot and a state of the robot detected by the processing of the detection step matching the registration information registered in the registration information. A determining step of determining whether or not the robot is in conformity with the information indicating the state of the robot registered in the registration information; And synthesizing a speech including a word associated with the information indicating
[0026]
A second program according to the present invention includes a detecting step of detecting a state of the robot, and determining whether or not the state of the robot detected by the processing of the detecting step matches the registered information registered in the registered information. When it is determined that the state of the robot matches the information indicating the state of the robot registered in the registration information by the processing of the determining step and the determining step, the robot is associated with the information indicating the state of the robot. And a speech synthesizing step of synthesizing speech including a word.
[0027]
In the second robot control device and method, and the program according to the present invention, the state of the robot is detected, and it is determined whether or not the detected state of the robot matches the registered information registered in the registered information. If it is determined that the state of the robot matches the information indicating the state of the robot registered in the registration information, a voice including a word associated with the information indicating the state of the robot is synthesized. Is output.
[0028]
BEST MODE FOR CARRYING OUT THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
[0029]
FIG. 1 is a front perspective view of a
[0030]
In the
[0031]
In the
[0032]
The
[0033]
Further, the
[0034]
In this case, in the
[0035]
In the
[0036]
The
[0037]
In the
[0038]
Thereby, in the
[0039]
On the back side of the
[0040]
FIG. 4 is a diagram illustrating an actuator of the
[0041]
The
[0042]
The
[0043]
Further, the
[0044]
FIG. 5 is a block diagram showing the internal configuration of the
[0045]
The
[0046]
Then, the
[0047]
The
[0048]
The
[0049]
The
[0050]
Then, the
[0051]
Further, the
[0052]
In this way, the
[0053]
Next, FIG. 6 shows an example of a functional configuration of the
[0054]
The
[0055]
The sensor
[0056]
That is, the sensor
[0057]
Further, the
[0058]
Further, the sensor
[0059]
Further, the sensor
[0060]
The
[0061]
Here, the emotion model indicates, for example, the state (degree) of emotions such as “joy”, “sadness”, “anger”, and “fun” in a predetermined range (for example, −1.0 to 1.. 0, etc.), and the values are changed based on the state recognition information from the sensor
[0062]
The
[0063]
In addition to the state recognition information supplied from the sensor
[0064]
That is, for example, when the
[0065]
On the other hand, when the
[0066]
As described above, the
[0067]
Note that the
[0068]
The action
[0069]
In addition, the action
[0070]
Then, the action determining
[0071]
That is, the behavior determining
[0072]
Here, when detecting that there is a predetermined trigger, the action determining
[0073]
Note that, as described above, the action
[0074]
As described above, the
[0075]
The posture
[0076]
FIG. 7 is a functional block diagram illustrating functions of the
[0077]
A voice signal based on an utterance from a user is input to the voice
[0078]
The
[0079]
That is, the
[0080]
For example, it is assumed that there are three input voices “red”, “blue”, and “guts”. In this case, the
[0081]
Here, when the voice “Aka” is input again, since the corresponding cluster already exists, the
[0082]
Therefore, whether or not the input speech is an unacquired word can be determined based on whether or not a new cluster has been generated. The details of such a word acquisition process are disclosed in Japanese Patent Application No. 2001-97842 previously proposed by the present applicant.
[0083]
The
[0084]
The
[0085]
Thus, the speech recognized by the
[0086]
Here, it is described that the
[0087]
FIG. 10 illustrates a configuration example of the speech
[0088]
The utterance of the user is input to the
[0089]
The feature amount extraction unit 172 extracts, for each appropriate frame, feature parameters such as a spectrum, a power linear prediction coefficient, a cepstrum coefficient, and a line spectrum pair from the audio data from the
[0090]
The
[0091]
The acoustic model database 181 stores acoustic models representing acoustic features such as individual phonemes and syllables in the language of the speech to be recognized. As the acoustic model, for example, HMM (Hidden Markov Model) or the like can be used. The
[0092]
Note that the word here is a unit that is more convenient to be treated as one unit in the recognition processing, and does not always match a linguistic word. For example, “Taro-kun” may be treated as one word, or may be treated as two words “Taro” and “Kimi”. In addition, may be dealing with more is a major unit of "Hello Taro" or the like as one word.
[0093]
A phoneme is one that is more conveniently processed acoustically as one unit, and does not always match a phonetic phoneme or phoneme. For example, the "to" portion of "Tokyo" may be represented by three phonetic symbols "t / o / u", or "t:" using the symbol "o:" which is a long sound of "o". / O: ". Alternatively, it can be expressed as “t / o / o”. In addition, a symbol representing silence is prepared, and it is further described as "silence before speech", "short silence section between speech", "silence of speech word", "silence of" tsu "part" And a symbol may be prepared for each.
[0094]
The
[0095]
The
[0096]
Note that, instead of the
[0097]
The
[0098]
Next, a process when the
[0099]
In step S1, the voice
[0100]
In step S2, a speech recognition process described later with reference to FIG. 12 is executed.
[0101]
In step S3, the
[0102]
When it is determined in step S4 that an unknown word is included, in step S4, the
[0103]
In step S5, the
[0104]
If it is determined in step S3 that an unknown word is not included, in step S5, the
[0105]
Specifically, for example, when the recognized voice is “forward”, the action determining
[0106]
Alternatively, if the speech cannot be correctly recognized due to reasons such as not matching the grammar, the action determining
[0107]
Next, the speech recognition processing executed in step S2 in FIG. 11 will be described with reference to the flowchart in FIG.
[0108]
In step S21, the
[0109]
The feature amount extraction unit 172 receives the audio data from the
[0110]
In step S24, the
[0111]
In step S25, a word string generation process described later with reference to FIG. 17 is executed. Note that the words constituting this word string include not only known words registered in the
[0112]
In step S26, the
[0113]
In step S27, the
[0114]
In step S28, the
[0115]
Since the speech
[0116]
An example of the grammar will be described with reference to FIG. This grammar is described in BNF (Backus Naur Form). In FIG. 13, $ A ”represents“ variable ”, and“ A | B ”represents“ A or B ”. “[A]” means “A can be omitted”, and {A} means “A is repeated 0 or more times”.
[0117]
<OOV> is a symbol representing an unknown word. By describing <OOV> in the grammar, it is possible to deal with a word string including an unknown word. "@ACTION" defines a word corresponding to the motion when the correspondence between the name and the motion content, such as "stand up", "seated", "bow", "greeting", etc., is set in advance. ing.
[0118]
In this grammar, "<start> / Hello / <end>" ( "/" is a separator between words), "<start> / goodbye / <end>", "<start> / I / Roh / name / is / <OOV> / is / <end> ”, a word string that applies to the grammar stored in the database is accepted (parsed with this grammar), but“ <head> / kun / no / < Word strings that do not apply to the grammar stored in the database, such as “OOV> / name / <end>”, are not accepted (not parsed by this grammar). Note that “<head>” and “<end>” are special symbols representing silence before and after the utterance, respectively.
[0119]
A parser (analyzer) is used to calculate a language score using this grammar. The parser divides the word string into a word string that can accept grammar and a word string that cannot be accepted. That is, for example, an acceptable word string is given a language score of 1, and an unacceptable word string is given a language score of 0.
[0120]
Therefore, for example, "<head> / me / name / is / <OOV> (t / a / r / o:) / is / <end>" and "<head> / me / name / When there are two word strings of / <OOV> (j / i / r / o:) / is / <end>, both are “<head> / me / name / ha / <OOV> The language score is calculated after being replaced with // is / <end>, and both are output as language score 1 (acceptance).
[0121]
In addition, to determine whether or not the grammar of the word string can be accepted, the grammar is converted in advance to an equivalent (or approximate) finite state automaton (hereinafter referred to as FSA), and each word string is It can also be realized by determining whether it can be accepted.
[0122]
FIG. 14 shows an example in which the grammar of FIG. 13 is converted into an equivalent FSA. FSA is a directed graph composed of states (nodes) and paths (arcs). As shown in FIG. 14, S1 is a start state, and S20 is an end state. In addition, as in FIG. 13, a word corresponding to an actual operation is registered in “@ACTION”.
[0123]
A word is assigned to a path, and when a transition is made from a predetermined state to the next state, the path consumes this word. However, the path to which “ε” is assigned is a special transition that does not consume a word (hereinafter, referred to as ε transition). For example, in “<head> / me / is / <OOV> / is / <end>”, the state transits from the initial state S1 to the state S2, the <head> is consumed, and the state transits from the state S2 to the state S3. Therefore, "I" is consumed, but the word is not consumed since the transition from the state S3 to the state S5 is an ε transition. That is, it is possible to skip from the state S3 to the state S5 and transition to the next state S6.
[0124]
Whether or not a predetermined word string can be accepted by this FSA is determined by whether or not it can start from the initial state S1 and reach the end state S20.
[0125]
That is, for example, in "<head> / me / name / is / <OOV> / is / <end>", the state transitions from the initial state S1 to the state S2, and the word "<head>" is consumed. You. Next, the state transits from the state S2 to the state S3, and the word “I” is consumed. Hereinafter, similarly, the state sequentially transitions from the state S3 to the state S4, from the state S4 to the state S5, from the state S5 to the state S6, from the state S6 to the state S7, and to “NO”, “NAME”, “HA”, “ <00V> ”is consumed one after another. Further, the state transits from the state S7 to the state S19, "is" is consumed, the state transits from the state S19 to the state S20, "<end>" is consumed, and finally reaches the end state S20. Therefore, "<head> / me / name / is / <OOV> / is / <end>" is accepted by the FSA.
[0126]
However, “<head> / you / no / <OOV> / name / <end>” transits from state S1 to state S2, from state S2 to state S8, from state S8 to state S9, and returns “< Although it is consumed up to "head>", "kun", and "no", it is not possible to transit further, so that it cannot reach the end state S16. Therefore, “<head> / you / no / <OOV> / name / <end>” is not accepted by the FSA (not accepted).
[0127]
Further, in the "<start> / Goodbye / <end>", "<start> / Hi / <end>" are both a transition from the state S1 to the state S2, the word "<start>" is consumed, The transition from the state S2 to the state S19 causes the word “Goodbye” or “Hello” to be consumed, and the transition from the state S19 to the state S20 results in the consumption of “<end>”.
[0128]
"<Head> / this is / <OOV> / pause / dayo / <end>" or a similar word string such as "<head> / this is / <OOV> / is / <end>" Transitions from state S1 to state S2, consumes the word "<head>", transitions from state S2 to state S13, transitions word "this" from state S13 to state S14, “<OOV>” is consumed, the state transitions from the state S13 to the state S14, the word “pause” is consumed, or the state transitions from the state S13 to the state S14, and the state transitions from the state S14 to the state S19. , The word “da” or “is” is consumed, or ε transitions from the state S14 to the state S19, and finally, the state transitions from the state S19 to the state S20, and “<end>” is consumed. .
[0129]
Then, "<head> / <OOV> (character name) / @ ACTION / set / <end>" or a similar word string such as "<head> / <OOV> (character name) / <OOV> In (pose name) / pause / do / <end>, etc., the state transitions from state S1 to state S2, and the word “<head>” is consumed. From state S2 to state S16, the state transitions to state S16. <OOV> ”(character name of the unknown word) is consumed, and the state transits from the state S16 to the state S18, and the word“ $ ACTION ”indicating a predetermined operation is consumed, or the state S16 is changed to the state S17. Then, after the word “<OOV>” (the pose name of the unknown word) is consumed, the state transitions from the state S17 to the state S18, or the word “pause” is consumed. Then, the state transits from the state S18 to the state S19, and the word “shi” is consumed. Finally, the state transits from the state S19 to the state S20, and “<end>” is consumed.
[0130]
Further, an example of calculating a language score when a tri-gram that is one of statistical language models is used as a language model will be described with reference to FIG. The statistical language model is a language model that obtains the generation probability of the word string and uses it as a language score. That is, for example, the language score of “<head> / me / name / is / <OOV> / is / <end>” of the language model shown in FIG. It is represented by the word string generation probability. This is further expressed as a product of the conditional probabilities, as shown in rows 3-6. Note that, for example, “P (no | <head> me)” is based on the condition that the word immediately before “no” is “me” and the word immediately before “me” is “<head>”. , “Of” appear.
[0131]
Further, in the tri-gram, the expressions shown in the third to sixth lines in FIG. 15 are approximated by conditional probabilities of three consecutive words as shown in the seventh to ninth lines. These probability values are obtained by referring to a tri-gram database as shown in FIG. This tri-gram database is obtained by analyzing a large amount of texts in advance.
[0132]
In the example of FIG. 16, the probabilities P (w3 | w1w2) of three consecutive words w1, w2, w3 are shown. For example, if the three words w1, w2, and w3 are respectively “<head>”, “me”, and “no”, the probability value is 0.12, and “me”, “no”, and “name” , The probability value is 0.01, and if it is "<OOV>", "is", or "<end>", the probability value is 0.87.
[0133]
Of course, “P (W)” and “P (w2 | w1)” are similarly obtained in advance.
[0134]
In this way, by performing entry processing on <OOV> in the language model, a language score can be calculated for a word string including <OOV>. Therefore, a symbol <OOV> can be output as a recognition result.
[0135]
Also, when another type of language model is used, a language score can be similarly calculated for a word string including <OOV> by performing entry processing for <OOV>.
[0136]
Further, even when a language model having no <OOV> entry is used, a language score can be calculated by using a mechanism that maps <OOV> to an appropriate word in the language model. For example, even if a tri-gram database in which “P (<OOV> | I)” does not exist is used, accessing the database with “P (Taro | I)” and calculating the probability described there The language score can be calculated by regarding the value as “P (<OOV> | I)”.
[0137]
Returning to the description of the voice recognition processing in FIG. In step S30, the
[0138]
When the finite state automaton is used as the language model, the integration processing in step S30 is performed by deleting the word string when the language score is 0 and leaving the word string as it is when the language score is not 0. You may.
[0139]
Next, the word string generation processing executed in step S25 in FIG. 12 will be described with reference to the flowchart in FIG.
[0140]
In step S61, the
[0141]
Then, an acoustic score obtained by matching a partial section of the input voice with a known word registered in the
[0142]
Therefore, in order to enable comparison using the scale, the
[0143]
In step S62, for example, a process of multiplying the acoustic score from the
[0144]
In step S63, the
[0145]
In step S63, when it is determined that the acoustic score of the result recognized by the
[0146]
That is, for example, for the section corresponding to “Taro”, the sound score of “t / a / r / o:” output from the
[0147]
After the processing of step S64 or step S65 is completed, in step S66, the
[0148]
Through such processing, a word string used for calculating an acoustic score is generated in the processing of step S27 in FIG.
[0149]
Next, the word acquisition processing executed in step S4 in FIG. 11 will be described with reference to the flowchart in FIG.
[0150]
In step S <b> 91, the
[0151]
In step S92, the
[0152]
If it is determined in step S92 that the unknown word does not belong to the acquired cluster, in step S93, the
[0153]
If it is determined in step S92 that the unknown word belongs to the already-acquired cluster, or after the process of step S93 ends, in step S94, the
[0154]
By such processing, in the subsequent step S5 in FIG. 11, an unknown word to be matched with the template is obtained.
[0155]
In FIG. 18, it is determined whether or not an unknown word belongs to an already-acquired cluster from a feature amount parameter of an unknown word. If the unknown word does not belong to an already-acquired cluster, a new cluster is generated. However, without generating a cluster, for example, an ID may be associated with a phoneme sequence, and whether or not an unknown word has already been obtained may be determined by comparing phoneme sequences.
[0156]
Next, the template matching process executed in step S5 in FIG. 11 will be described with reference to the flowchart in FIG.
[0157]
In step S121, the
[0158]
The
[0159]
If the word string of the recognition result is, for example, a word string of “<head> / this is / <OOV> (g / a / t / t / u:) / pause / is / <end>”, this recognition is performed. Although the character string "This is <OOV>pose" generated from the result, since the regular expression "/ this matches <OOV>(category; pose name) /" of
[0160]
Specifically, for example, when the user puts both arms of the
[0161]
When it is determined in step S121 that the word matches the
[0162]
In step S123, the
[0163]
Specifically, for example, when the user puts both arms of the
[0164]
If it is determined in step S121 that the template does not match the
[0165]
The
[0166]
If it is determined in step S124 that the word matches the
[0167]
In step S126, the posture
[0168]
Specifically, for example, when the user utters “Banzai” to the
[0169]
If it is determined in step S124 that the template does not match the
[0170]
The
[0171]
If it is determined in step S127 that the tag matches the
[0172]
In some cases, depending on how the
[0173]
The
[0174]
If it is determined in step S127 that the
[0175]
In this way, by comparing the acquired audio data with the regular expression, it is determined whether or not the voice data matches a predetermined template. When it is determined that the voice data matches any one of the templates, the template is The operation of the
[0176]
Note that the contents of the
[0177]
When a grammar is used as a language model, a description equivalent to a phoneme typewriter can be incorporated in the grammar. An example of the grammar in this case will be described with reference to FIG. In the grammar shown in FIG. 24, the variable “$ PHONEME” on the first line is replaced with one of the phoneme symbols because all phonemes are connected by “|” meaning “or”. means. The variable “$ OOV” indicates that the variable “$ PHONEME” is repeated 0 times or more. That is, it means "any phoneme symbol is connected 0 or more times" and corresponds to a phoneme typewriter. Therefore, the variable “$ OOV” between “ha” and “is” on the third line can receive any sound.
[0178]
In the recognition result when the grammar shown in FIG. 24 is used, a portion corresponding to the variable “$ OOV” is output as a plurality of symbols. For example, the recognition result of "my name is Taro" is "<head> / me / name / is / t / a / r / o: / is / <end>". When this result is converted into “<head> / me / name / is / <OOV> (t / a / r / o:) / is”, the processing after step S3 in FIG. It can be performed in the same manner as when used.
[0179]
In the above description, a category is registered as information relating to an unknown word, but other information may be registered.
[0180]
Further, the
[0181]
The motion recognition utterance process executed by the
[0182]
In step S151, the voice
[0183]
In step S152, the voice recognition processing described with reference to FIG. 12 is performed.
[0184]
In step S153, the
[0185]
If it is determined in step S153 that the voice "What is the pause?" Has not been recognized, in step S154, the action determining
[0186]
If it is determined in step S153 that the voice "What is the pause?" Has been recognized, or if it is determined in step S154 that the timer has notified the predetermined elapsed time, then in step S155, the action determining
[0187]
In step S156, the action determining
[0188]
In step S157, the action determining
[0189]
When it is determined in step S157 that there is a corresponding pose name, in step S158, the action determining
[0190]
With the above-described processing, the
[0191]
In the processing described above, the case where the control angles of the actuators A1 to A14 in the stationary pose and the obtained unknown words are stored in association with each other is described. Can also be applied to a case where control information of the actuators A1 to A14 when a predetermined operation is performed (for example, a control angle of each actuator is represented in a time series) and an acquired unknown word are associated with each other. Needless to say,
[0192]
Further, in the above description, the case where the operation (driving and utterance) of the
[0193]
FIG. 26 illustrates a configuration example of a
[0194]
The input /
[0195]
A
[0196]
For example, the
[0197]
Then, when the user utters “This is a <happy> pose”, the
[0198]
Further, the series of processes described above can be executed by software. The software is a computer in which a program constituting the software is built in dedicated hardware, or a general-purpose personal computer that can execute various functions by installing various programs. For example, it is installed from a recording medium.
[0199]
As shown in FIG. 26, this recording medium is a magnetic disk 231 (including a flexible disk) on which the program is recorded, and an optical disk 232 (CD-ROM), which are distributed in order to provide the user with the program, separately from the computer. It is composed of a package medium such as a ROM (Compact Disk-Read Only Memory), a DVD (including a Digital Versatile Disk), a magneto-optical disk 233 (including an MD (Mini-Disk) (trademark)), or a
[0200]
For example, the
[0201]
In this specification, the step of describing a program to be recorded on a recording medium may be performed in a chronological order in the order described, but is not necessarily performed in a chronological order. This also includes processes executed individually.
[0202]
【The invention's effect】
Thus, according to the present invention, speech can be recognized. In particular, the recognized voice and information for controlling the operation of the robot can be registered in association with each other.
Further, according to another aspect of the present invention, in addition to detecting the state of the robot, a voice including a word corresponding to the state of the robot can be synthesized based on the detection result of the state of the robot.
[Brief description of the drawings]
FIG. 1 is a perspective view showing an external configuration of a robot to which the present invention is applied.
FIG. 2 is a rear perspective view showing the external configuration of the robot shown in FIG. 1;
FIG. 3 is a schematic diagram for explaining the robot of FIG. 1;
FIG. 4 is a block diagram showing an internal configuration of the robot shown in FIG. 1;
FIG. 5 is a block diagram for mainly explaining a portion related to control of the robot in FIG. 1;
FIG. 6 is a block diagram illustrating a configuration of a main control unit in FIG. 5;
FIG. 7 is a block diagram illustrating a configuration of a voice recognition unit in FIG. 6;
FIG. 8 is a diagram illustrating a state of a cluster.
FIG. 9 is a diagram for explaining word registration.
FIG. 10 is a block diagram illustrating a configuration of a voice recognition processing unit in FIG. 7;
FIG. 11 is a flowchart illustrating processing executed by a robot to which the present invention is applied.
FIG. 12 is a flowchart illustrating a speech recognition process.
FIG. 13 is a diagram illustrating an example of a grammar used in a language model database.
FIG. 14 is a diagram illustrating an example of a language model using a finite state automaton.
FIG. 15 is a diagram illustrating an example of calculating a language score using tri-gram.
FIG. 16 is a diagram illustrating an example of a tri-gram database.
FIG. 17 is a flowchart illustrating a word string generation process.
FIG. 18 is a flowchart illustrating a word acquisition process.
FIG. 19 is a flowchart illustrating a template matching process.
FIG. 20 is a diagram illustrating a template.
FIG. 21 is a diagram illustrating an actuator control angle registered in association with a cluster ID.
FIG. 22 is a diagram illustrating a template.
FIG. 23 is a diagram illustrating a template.
FIG. 24 is a diagram showing an example of a grammar incorporating a phoneme typewriter.
FIG. 25 is a flowchart illustrating a motion recognition utterance process.
FIG. 26 is a block diagram illustrating a configuration of a computer to which the present invention has been applied.
[Explanation of symbols]
1 robot, 61 main control unit, 63 sub control unit, 72 speakers, 82 microphone, 101 sensor input processing unit, 101A graduate student recognition unit, 103 action decision mechanism unit, 104 table storage unit, 105 posture transition mechanism unit, 106 voice synthesis , 121 Speech Recognition Processing Unit, 122 Associative Memory Unit, 123 Dialogue Control Unit, 124 Word Acquisition Unit, 172 Feature Extraction Unit, 173 Matching Unit, 174 Phoneme Typewriter Unit, 175 Control Unit, 181 Acoustic Model Database, 182 Dictionary Database, 183 language model database
Claims (15)
連続する入力音声を認識する認識手段と、
前記認識手段により認識された認識結果に、未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得手段と、
前記獲得手段により獲得された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する登録手段と
を備えることを特徴とするロボット制御装置。In a robot controller for controlling the operation of the robot,
A recognition means for recognizing a continuous input voice;
Acquisition means for acquiring a word corresponding to the unknown word, when the recognition result recognized by the recognition means is determined to include an unknown word,
A registration unit for registering the word acquired by the acquisition unit in association with information for controlling the operation of the robot.
前記パターン判定手段により、前記認識結果が前記特定のパターンにマッチしていると判定された場合、前記登録手段は、前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する
ことを特徴とする請求項1に記載のロボット制御装置。Further comprising a pattern determination means for determining whether the recognition result recognized by the recognition means matches a specific pattern,
When the pattern determination unit determines that the recognition result matches the specific pattern, the registration unit registers the word in association with information for controlling the operation of the robot. The robot control device according to claim 1, wherein
前記検知手段は、前記認識結果が前記特定のパターンにマッチしていると判定された時点での前記ロボットの状態を検知し、
前記登録手段は、前記単語と、前記検知手段により検知された前記ロボットの状態となるように前記ロボットの動作を制御する情報とを関連付けて登録する
ことを特徴とする請求項2に記載のロボット制御装置。Further comprising a detecting means for detecting the state of the robot,
The detecting means detects the state of the robot at the time when the recognition result is determined to match the specific pattern,
3. The robot according to claim 2, wherein the registration unit registers the word in association with information that controls an operation of the robot so as to be in a state of the robot detected by the detection unit. 4. Control device.
前記認識手段により認識された前記認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段と
を更に備え、
前記パターン判定手段により、前記認識結果が前記特定のパターンにマッチしていると判定された場合、前記制御手段は、前記登録手段により、前記単語に関連付けられて登録された前記ロボットの動作を制御する情報に基づいて、前記ロボットの駆動を制御する
ことを特徴とする請求項1に記載のロボット制御装置。Control means for controlling the driving of the robot,
Pattern determining means for determining whether the recognition result recognized by the recognition means matches a specific pattern,
When the pattern determination unit determines that the recognition result matches the specific pattern, the control unit controls the operation of the robot registered in association with the word by the registration unit. The robot control device according to claim 1, wherein driving of the robot is controlled based on information to be performed.
前記登録手段は、前記記憶手段において、所定のカテゴリで記憶された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する
ことを特徴とする請求項1に記載のロボット制御装置。A storage unit that stores the words acquired by the acquisition unit in a plurality of categories;
The robot control device according to claim 1, wherein the registration unit registers the word stored in a predetermined category in the storage unit in association with information for controlling an operation of the robot.
連続する入力音声を認識する認識ステップと、
前記認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、
前記判定ステップの処理により、前記認識結果に、前記未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得ステップと、
前記獲得ステップの処理により獲得された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する登録ステップと
を含むことを特徴とするロボット制御方法。In a robot control method of a robot control device that controls the operation of a robot,
A recognition step of recognizing a continuous input voice;
A determination step of determining whether an unknown word is included in the recognition result recognized by the processing of the recognition step,
An acquiring step of acquiring a word corresponding to the unknown word when the recognition result includes the unknown word, by the processing of the determining step;
A registration step of registering the word acquired by the processing of the acquisition step in association with information for controlling the operation of the robot.
連続する入力音声を認識する認識ステップと、
前記認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、
前記判定ステップの処理により、前記認識結果に、前記未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得ステップと、
前記獲得ステップの処理により獲得された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する登録ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。A program that causes a computer to execute processing for controlling the operation of the robot,
A recognition step of recognizing a continuous input voice;
A determination step of determining whether an unknown word is included in the recognition result recognized by the processing of the recognition step,
An acquiring step of acquiring a word corresponding to the unknown word when the recognition result includes the unknown word, by the processing of the determining step;
A registration step of registering the word acquired by the processing of the acquisition step in association with information for controlling the operation of the robot, and recording the computer-readable program.
連続する入力音声を認識する認識ステップと、
前記認識ステップの処理により認識された認識結果に、未知語が含まれているか否かを判定する判定ステップと、
前記判定ステップの処理により、前記認識結果に、前記未知語が含まれていると判定された場合、前記未知語に対応する単語を獲得する獲得ステップと、
前記獲得ステップの処理により獲得された前記単語を、前記ロボットの動作を制御する情報に関連付けて登録する登録ステップと
を含むことを特徴とするプログラム。A program that causes a computer to execute processing for controlling the operation of the robot,
A recognition step of recognizing a continuous input voice;
A determination step of determining whether an unknown word is included in the recognition result recognized by the processing of the recognition step,
An acquiring step of acquiring a word corresponding to the unknown word when the recognition result includes the unknown word, by the processing of the determining step;
A registration step of registering the word acquired by the processing of the acquisition step in association with information for controlling the operation of the robot.
前記ロボットの駆動を制御する制御手段と、
前記ロボットの状態を示す情報を、対応する単語に関連付けて登録する登録手段と、
前記制御手段により駆動が制御された前記ロボットの状態を検知する検知手段と、
音声を合成する音声合成手段と、
前記音声合成手段により合成された前記音声を出力する出力手段と
を備え、
前記検知手段により検知された前記ロボットの状態が、前記登録手段により登録されている前記ロボットの状態を示す情報に合致した場合、前記音声合成手段は、前記登録手段により登録されている前記ロボットの状態を示す情報に関連付けられた前記単語を含む音声を合成する
ことを特徴とするロボット制御装置。In a robot controller for controlling the operation of the robot,
Control means for controlling the driving of the robot,
Registration means for registering information indicating the state of the robot in association with a corresponding word,
Detecting means for detecting a state of the robot whose driving is controlled by the control means;
Voice synthesis means for synthesizing voice;
Output means for outputting the voice synthesized by the voice synthesis means,
When the state of the robot detected by the detecting unit matches information indicating the state of the robot registered by the registering unit, the voice synthesizing unit determines the state of the robot registered by the registering unit. A robot control device for synthesizing a voice including the word associated with information indicating a state.
前記検出手段は、前記入力手段により、所定の時間、操作入力を受けなかった場合、前記ロボットの状態を検出する
ことを特徴とする請求項9に記載のロボット制御装置。Further comprising input means for receiving a command from a user,
The robot control device according to claim 9, wherein the detection unit detects a state of the robot when no operation input is received by the input unit for a predetermined time.
前記認識手段による認識結果が特定のパターンにマッチするか否かを判定するパターン判定手段と
を更に備え、
前記判定手段により、前記認識結果が前記特定のパターンにマッチすると判定された場合、前記検出手段は、前記ロボットの状態を検出する
ことを特徴とする請求項9に記載のロボット制御装置。A recognition means for recognizing a continuous input voice;
Pattern determining means for determining whether or not the recognition result by the recognition means matches a specific pattern,
The robot control device according to claim 9, wherein when the determination unit determines that the recognition result matches the specific pattern, the detection unit detects a state of the robot.
前記登録手段は、前記獲得手段により獲得された前記未知語に対応する単語と前記ロボットの状態を示す情報を関連付けて記憶する
ことを特徴とする請求項9に記載のロボット制御装置。The recognition result recognized by the recognition means, when it is determined that an unknown word is included, further comprising an obtaining means for obtaining a word corresponding to the unknown word,
10. The robot control device according to claim 9, wherein the registration unit associates and stores a word corresponding to the unknown word acquired by the acquisition unit and information indicating a state of the robot.
前記ロボットの状態を検知する検知ステップと、
前記検知ステップの処理により検知された前記ロボットの状態が、前記登録情報に登録されている前記登録情報に合致しているか否かを判断する判断ステップと、
前記判断ステップの処理により、前記ロボットの状態が、前記登録情報に登録されている前記ロボットの状態を示す情報に合致していると判断された場合、前記ロボットの状態を示す情報に関連付けられた前記単語を含む音声を合成する音声合成ステップと
を含むことを特徴とするロボット制御方法。Using registration information in which information indicating a state of the robot and a corresponding word are registered in association with each other, a robot control method of a robot control device that controls an operation of the robot,
A detecting step of detecting a state of the robot,
A determining step of determining whether the state of the robot detected by the processing of the detecting step matches the registered information registered in the registered information;
When it is determined that the state of the robot matches the information indicating the state of the robot registered in the registration information, the state of the robot is associated with the information indicating the state of the robot. A voice synthesizing step of synthesizing a voice including the word.
前記ロボットの状態を検知する検知ステップと、
前記検知ステップの処理により検知された前記ロボットの状態が、前記登録情報に登録されている前記登録情報に合致しているか否かを判断する判断ステップと、
前記判断ステップの処理により、前記ロボットの状態が、前記登録情報に登録されている前記ロボットの状態を示す情報に合致していると判断された場合、前記ロボットの状態を示す情報に関連付けられた前記単語を含む音声を合成する音声合成ステップと
を含むことを特徴とするコンピュータが読み取り可能なプログラムが記録されている記録媒体。A program that causes a computer to execute a process of controlling the operation of the robot by using registration information in which information indicating a state of the robot and a corresponding word are registered in association with each other,
A detecting step of detecting a state of the robot,
A determining step of determining whether the state of the robot detected by the processing of the detecting step matches the registered information registered in the registered information;
When it is determined that the state of the robot matches the information indicating the state of the robot registered in the registration information, the state of the robot is associated with the information indicating the state of the robot. A voice synthesizing step of synthesizing voice including the word, wherein a computer readable program is recorded.
前記ロボットの状態を検知する検知ステップと、
前記検知ステップの処理により検知された前記ロボットの状態が、前記登録情報に登録されている前記登録情報に合致しているか否かを判断する判断ステップと、
前記判断ステップの処理により、前記ロボットの状態が、前記登録情報に登録されている前記ロボットの状態を示す情報に合致していると判断された場合、前記ロボットの状態を示す情報に関連付けられた前記単語を含む音声を合成する音声合成ステップと
を含むことを特徴とするプログラム。A program that causes a computer to execute a process of controlling the operation of the robot by using registration information in which information indicating a state of the robot and a corresponding word are registered in association with each other,
A detecting step of detecting a state of the robot,
A determining step of determining whether the state of the robot detected by the processing of the detecting step matches the registered information registered in the registered information;
When it is determined that the state of the robot matches the information indicating the state of the robot registered in the registration information, the state of the robot is associated with the information indicating the state of the robot. A voice synthesizing step of synthesizing a voice including the word.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002337808A JP2004170756A (en) | 2002-11-21 | 2002-11-21 | Unit and method for robot control, recording medium, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002337808A JP2004170756A (en) | 2002-11-21 | 2002-11-21 | Unit and method for robot control, recording medium, and program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004170756A true JP2004170756A (en) | 2004-06-17 |
Family
ID=32701211
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002337808A Withdrawn JP2004170756A (en) | 2002-11-21 | 2002-11-21 | Unit and method for robot control, recording medium, and program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004170756A (en) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009157119A (en) * | 2007-12-27 | 2009-07-16 | Univ Of Ryukyus | Sound word automatic acquisition method |
JP2009223172A (en) * | 2008-03-18 | 2009-10-01 | Advanced Telecommunication Research Institute International | Article estimation system |
WO2010083768A1 (en) * | 2009-01-24 | 2010-07-29 | 泰怡凯电器(苏州)有限公司 | Speech system used for robot and robot with speech system |
WO2021077950A1 (en) * | 2020-03-27 | 2021-04-29 | 之江实验室 | Digital hydraulic driving method for bipedal robot, based on multi-quadrant coupling of joint working states |
CN114762981A (en) * | 2020-12-30 | 2022-07-19 | 广州富港生活智能科技有限公司 | Interaction method and related device |
CN114816204A (en) * | 2021-01-27 | 2022-07-29 | 北京猎户星空科技有限公司 | Control method, control device, control equipment and storage medium of intelligent robot |
-
2002
- 2002-11-21 JP JP2002337808A patent/JP2004170756A/en not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009157119A (en) * | 2007-12-27 | 2009-07-16 | Univ Of Ryukyus | Sound word automatic acquisition method |
JP2009223172A (en) * | 2008-03-18 | 2009-10-01 | Advanced Telecommunication Research Institute International | Article estimation system |
WO2010083768A1 (en) * | 2009-01-24 | 2010-07-29 | 泰怡凯电器(苏州)有限公司 | Speech system used for robot and robot with speech system |
WO2021077950A1 (en) * | 2020-03-27 | 2021-04-29 | 之江实验室 | Digital hydraulic driving method for bipedal robot, based on multi-quadrant coupling of joint working states |
CN114762981A (en) * | 2020-12-30 | 2022-07-19 | 广州富港生活智能科技有限公司 | Interaction method and related device |
CN114762981B (en) * | 2020-12-30 | 2024-03-15 | 广州富港生活智能科技有限公司 | Interaction method and related device |
CN114816204A (en) * | 2021-01-27 | 2022-07-29 | 北京猎户星空科技有限公司 | Control method, control device, control equipment and storage medium of intelligent robot |
CN114816204B (en) * | 2021-01-27 | 2024-01-26 | 北京猎户星空科技有限公司 | Control method, control device, control equipment and storage medium of intelligent robot |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4296714B2 (en) | Robot control apparatus, robot control method, recording medium, and program | |
US7065490B1 (en) | Voice processing method based on the emotion and instinct states of a robot | |
JP2002268699A (en) | Device and method for voice synthesis, program, and recording medium | |
US20040030552A1 (en) | Sound processing apparatus | |
JP2001188555A (en) | Device and method for information processing and recording medium | |
JP2004090109A (en) | Robot device and interactive method for robot device | |
JP2001215993A (en) | Device and method for interactive processing and recording medium | |
WO2002077970A1 (en) | Speech output apparatus | |
JP2001154685A (en) | Device and method for voice recognition and recording medium | |
JP2001188779A (en) | Device and method for processing information and recording medium | |
WO2002082423A1 (en) | Word sequence output device | |
JP4600736B2 (en) | Robot control apparatus and method, recording medium, and program | |
JP2004170756A (en) | Unit and method for robot control, recording medium, and program | |
JP4587009B2 (en) | Robot control apparatus, robot control method, and recording medium | |
JP4706893B2 (en) | Voice recognition apparatus and method, program, and recording medium | |
JP2002268663A (en) | Voice synthesizer, voice synthesis method, program and recording medium | |
JP2004286805A (en) | Method, apparatus, and program for identifying speaker | |
JP2001154693A (en) | Robot controller and robot control method and recording medium | |
JP2002258886A (en) | Device and method for combining voices, program and recording medium | |
JP4656354B2 (en) | Audio processing apparatus, audio processing method, and recording medium | |
JP2003271172A (en) | Method and apparatus for voice synthesis, program, recording medium and robot apparatus | |
WO1999046732A1 (en) | Moving picture generating device and image control network learning device | |
JP4639533B2 (en) | Voice recognition apparatus, voice recognition method, program, and recording medium | |
JP4742415B2 (en) | Robot control apparatus, robot control method, and recording medium | |
JP4178777B2 (en) | Robot apparatus, recording medium, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20060207 |