以下に、本発明の実施例を説明するが、その前に、特許請求の範囲に記載の発明の各手段と以下の実施例との対応関係を明らかにするために、各手段の後の括弧内に、対応する実施例(但し、一例)を付加して、本発明の特徴を記述すると、次のようになる。
即ち、本発明のロボット制御装置は、
音声を検出する音声検出手段(例えば、図9のステップS1の処理を行う音声認識部101A)と、
前記音声検出手段により検出された音声を認識する音声認識手段(例えば、図9のステップS2の処理を行う音声認識部101A)と、
前記音声認識手段によって認識された音声認識結果の正解確信度を計算する正解確信度計算手段(例えば、図9のステップS3の処理を行う音声認識部101A)と、
前記正解確信度計算手段により計算された正解確信度が所定の閾値より大きい場合に、前記音声の音源の方向を検出する方向検出手段(例えば、図9のステップS5の処理を行う方向認識部101B)と、
前記方向検出手段により検出された方向に対してユーザを検出するユーザ検出手段(例えば、図9のステップS7の処理を行う状態認識情報処理部101の画像認識部101D)と、
前記ユーザ検出手段により検出されたユーザに対して、前記音声認識結果に対応する動作の制御を行う制御手段(例えば、図9のステップS9の処理を行う行動決定機構部103)と
を備えることを特徴とする。
なお、勿論この記載は、各手段を上記したものに限定することを意味するものではない。
図1は、本発明を適用した2足歩行タイプのロボット1の一実施の形態の構成を示す外装の概観斜視図である。ロボット1は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットであり、内部状態(怒り、悲しみ、喜び、楽しみ等)に応じて行動できるほか、人間が行う基本的な動作を表出することができる。
図1で示されるように、ロボット1は、体幹部外装ユニット2の所定の位置に頭部外装ユニット3が連結されると共に、左右2つの腕部外装ユニット4R/L(Right/Left:右腕/左腕)と、左右2つの脚部外装ユニット5R/Lが連結されて構成されている。
次に、図2乃至図4を参照して、ロボット1の内部の構成について説明する。尚、図2乃至図4は、図1で示した外装部分に対して、それらの内部の構成を示すものである。
即ち、図2は、ロボット1の正面方向の内部の斜視図であり、図3は、ロボット1の背面方向からの内部の斜視図である。また、図4は、ロボット1の軸構成について説明するための斜視図である。
ロボット1は、胴体部ユニット11の上部に頭部ユニット12が配設されるとともに、胴体部ユニット11の上部左右の所定位置に、同様の構成を有する腕部ユニット13Aおよび13Bがそれぞれ取り付けられ、かつ、胴体部ユニット11の下部左右の所定位置に、同様の構成を有する脚部ユニット14Aおよび14Bがそれぞれ取り付けられることにより構成されている。頭部ユニット12には、タッチセンサ51、および、表示部55が設けられている。
胴体部ユニット11においては、体幹上部を形成するフレーム21および体幹下部を形成する腰ベース22が、腰関節機構23を介して連結することにより構成されており、体幹下部の腰ベース22に固定された腰関節機構23のアクチュエータA1、および、アクチュエータA2をそれぞれ駆動することによって、体幹上部を、図4に示す直交するロール軸24およびピッチ軸25の回りに、それぞれ独立に回転させることができるようになされている。
また頭部ユニット12は、フレーム21の上端に固定された肩ベース26の上面中央部に首関節機構27を介して取り付けられており、首関節機構27のアクチュエータA3およびA4をそれぞれ駆動することによって、図4に示す直交するピッチ軸28およびヨー軸29の回りに、それぞれ独立に回転させることができるようになされている。
更に、腕部ユニット13Aおよび13Bは、肩関節機構30を介して肩ベース26の左右にそれぞれ取り付けられており、対応する肩関節機構30のアクチュエータA5およびA6をそれぞれ駆動することによって、図4に示す、直交するピッチ軸31およびロール軸32の回りに、それぞれを独立に回転させることができるようになされている。
腕部ユニット13Aおよび13Bは、上腕部を形成するアクチュエータA7の出力軸に、肘関節機構33を介して、前腕部を形成するアクチュエータA8が連結され、前腕部の先端に手部34が取り付けられることにより構成されている。
そして腕部ユニット13Aおよび13Bでは、アクチュエータA7を駆動することによって、前腕部を図4に示すヨー軸35に対して回転させることができ、アクチュエータA8を駆動することによって、前腕部を図4に示すピッチ軸36に対して回転させることができるようになされている。
脚部ユニット14Aおよび14Bは、股関節機構37を介して、体幹下部の腰ベース22にそれぞれ取り付けられており、対応する股関節機構37のアクチュエータA9乃至A11をそれぞれ駆動することによって、図4に示す、互いに直交するヨー軸38、ロール軸39、およびピッチ軸40に対して、それぞれ独立に回転させることができるようになされている。
脚部ユニット14Aおよび14Bは、大腿部を形成するフレーム41の下端が、膝関節機構42を介して、下腿部を形成するフレーム43に連結されるとともに、フレーム43の下端が、足首関節機構44を介して、足部45に連結されることにより構成されている。
これにより脚部ユニット14Aおよび14Bにおいては、膝関節機構42を形成するアクチュエータA12を駆動することによって、図4に示すピッチ軸46に対して、下腿部を回転させることができ、また足首関節機構44のアクチュエータA13およびA14をそれぞれ駆動することによって、図4に示す直交するピッチ軸47およびロール軸48に対して、足部45をそれぞれ独立に回転させることができるようになされている。
また、胴体部ユニット11の体幹下部を形成する腰ベース22の背面側には、後述するメイン制御部61や周辺回路62(いずれも図5)などを内蔵したボックスである、制御ユニット52が配設されている。
図5は、ロボット1のアクチュエータとその制御系等の構成例を示している。
制御ユニット52には、ロボット1全体の動作制御をつかさどるメイン制御部61、電源回路および通信回路などの周辺回路62、および、バッテリ74(図6)などが収納されている
そして、制御ユニット52は、各構成ユニット(胴体部ユニット11、頭部ユニット12、腕部ユニット13Aおよび13B、並びに、脚部ユニット14Aおよび14B)内にそれぞれ配設されたサブ制御部63A乃至63Dと接続されており、サブ制御部63A乃至63Dに対して必要な電源電圧を供給したり、サブ制御部63A乃至63Dと通信を行う。
また、サブ制御部63A乃至63Dは、対応する構成ユニット内のアクチュエータA1乃至A14と、それぞれ接続されており、メイン制御部61から供給された各種制御コマンドに基づいて、構成ユニット内のアクチュエータA1乃至A14を、指定された状態に駆動させるように制御する。
図6は、ロボット1の電気的な内部構成例を示すブロック図である。
頭部ユニット12には、ロボット1の「目」として機能するCCD(Charge Coupled Device)カメラ81Lおよび81R、「耳」として機能するマイクロホン82−1乃至82−N、並びにタッチセンサ51などからなる外部センサ部71、および、「口」として機能するスピーカ72などがそれぞれ所定位置に配設され、制御ユニット52内には、バッテリセンサ91および加速度センサ92などからなる内部センサ部73が配設されている。また、この他に、ロボット1の状態やユーザからの応答を表示する表示部55が配設されている。
そして、外部センサ部71のCCDカメラ81Lおよび81Rは、周囲の状況を撮像し、得られた画像(映像)信号S1Aを、メイン制御部61に送出する。マイクロホン82−1乃至82−Nは、ユーザから音声入力として与えられる「歩け」、「とまれ」または「右手を挙げろ」等の各種命令音声(音声コマンド)を集音し、得られた音声信号S1Bを、メイン制御部61にそれぞれ送出する。なお、以下において、N個のマイクロホン82−1乃至82−Nを特に区別する必要がない場合には、マイクロホン82と称する。
また、タッチセンサ51は、例えば、図2および図3に示されるように頭部ユニット12の上部に設けられており、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、その検出結果を、圧力検出信号S1Cとしてメイン制御部61に送出する。
内部センサ部73のバッテリセンサ91は、バッテリ74のエネルギ残量を所定の周期で検出し、検出結果をバッテリ残量検出信号S2Aとして、メイン制御部61に送出する。加速度センサ92は、ロボット1の移動について、3軸方向(x軸、y軸およびz軸)の加速度を、所定の周期で検出し、その検出結果を、加速度検出信号S2Bとして、メイン制御部61に送出する。
外部メモリ75は、プログラムやデータ、および制御パラメータなどを記憶しており、そのプログラムやデータを必要に応じてメイン制御部61に内蔵されるメモリ61Aに供給する。また、外部メモリ75は、データ等をメモリ61Aから受け取り、記憶する。なお、外部メモリ75は、ロボット1から着脱可能となされている。
メイン制御部61は、メモリ61Aを内蔵している。メモリ61Aは、プログラムやデータを記憶しており、メイン制御部61は、メモリ61Aに記憶されたプログラムを実行することで、各種の処理を行う。即ち、メイン制御部61は、外部センサ部71のCCDカメラ81Lおよび81R、マイクロホン82、およびタッチセンサ51からそれぞれ供給される、画像信号S1A、音声信号S1B、および圧力検出信号S1C(以下、これらをまとめて外部センサ信号S1と称する)と、内部センサ部73のバッテリセンサ91および加速度センサ等からそれぞれ供給される、バッテリ残量検出信号S2Aおよび加速度検出信号S2B(以下、これらをまとめて内部センサ信号S2と称する)に基づいて、ロボット1の周囲および内部の状況(状態)や、ユーザからの指令、または、ユーザからの働きかけの有無などを判断する。
そして、メイン制御部61は、ロボット1の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無の判断結果と、内部メモリ61Aに予め格納されている制御プログラム、あるいは、そのとき装填されている外部メモリ75に格納されている各種制御パラメータなどに基づいて、ロボット1の行動を決定し、その決定結果に基づく制御コマンドを生成して、対応するサブ制御部63A乃至63Dに送出する。サブ制御部63A乃至63Dは、メイン制御部61から供給された制御コマンドに基づいて、アクチュエータA1乃至A14のうち、対応するものの駆動を制御する。これにより、ロボット1は、例えば、頭部ユニット12を上下左右に揺動させたり、腕部ユニット13A、あるいは、腕部ユニット13Bを上に挙げたり、脚部ユニット14Aと14Bを交互に駆動させて、歩行するなどの行動を行う。
また、メイン制御部61は、必要に応じて、所定の音声信号S3をスピーカ72に与えることにより、音声信号S3に基づく音声(合成音)を外部に出力させると共に、例えば、音声を検出したときに、表示信号S4に基づいて「だーれ」などのユーザへの応答を表示部55に表示する。更に、メイン制御部61は、外見上の「目」として機能する、頭部ユニット12の所定位置に設けられた、図示しないLED(Light Emitting Diode)に対して駆動信号を出力することにより、LEDを点滅させて、表示部55として機能させる。
このようにして、ロボット1は、周囲および内部の状況(状態)や、ユーザからの指令および働きかけの有無などに基づいて、自律的に行動する。
図7は、図6のメイン制御部61の機能的構成例を示している。なお、図7に示す機能的構成は、メイン制御部61が、メモリ61Aに記憶された制御プログラムを実行することで実現されるようになっている。
メイン制御部61は、特定の外部状態を認識する状態認識情報処理部101、状態認識情報処理部101の認識結果等に基づいて更新される、ロボット1の感情、本能、あるいは、成長の状態などのモデルを記憶するモデル記憶部102、状態認識情報処理部101の認識結果等に基づいて、ロボット1の行動を決定する行動決定機構部103、行動決定機構部103の決定結果に基づいて、実際にロボット1に行動を起こさせる姿勢遷移機構部104、合成音を生成する音声合成部105から構成されている。
状態認識情報処理部101には、マイクロホン82や、CCDカメラ81Lおよび81R、タッチセンサ51等から音声信号、画像信号、圧力検出信号等が、ロボット1の電源が投入されている間、常時入力される。そして、状態認識情報処理部101は、マイクロホン82や、CCDカメラ81Lおよび81R、タッチセンサ51等から与えられる音声信号、画像信号、圧力検出信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部102および行動決定機構部103に常時出力する。
即ち、状態認識情報処理部101は、音声認識部101A、方向認識部101B、圧力処理部101C、および画像認識部101Dを有している。
音声認識部101Aは、制御部101aを内蔵しており、制御部101aの制御にしたがって音声認識を行う。即ち、音声認識部101Aは、マイクロホン82−1乃至82−Nそれぞれから与えられる音声信号S1Bの有無を検出する。制御部101aは、音声信号S1Bが検出された場合に、音声認識部101Aが音声認識処理を実行するように制御し、それにより得られた音声認識結果の正解確信度を計算する。正解確信度についての詳細は後述するが、正解確信度は、音声認識処理により得られた結果が、ロボットの周辺で発生しているノイズか、ユーザが発した音声であるかを弁別するために用いられる。また、制御部101aは、音声認識結果の正解確信度が所定の閾値より大きいか否かを判定し、音声認識結果の正解確信度が所定の閾値より大きい場合に、音声認識結果(に対応する入力された音声信号)がユーザが発した音声であると判定する。
さらに、音声認識結果(に対応する入力された音声信号)がユーザが発した音声であると判定された場合、制御部101aは、音声認識部101Aによる音声認識結果、即ち、例えば、「歩け」、「止まれ」、「右手を挙げろ」等の指令などの音声認識結果を、状態認識情報として、モデル記憶部102および行動決定機構部103に通知する。
方向認識部101Bは、マイクロホン82−1乃至82−Nから供給される音声信号S1Bのパワー差や位相差から音源の方向を認識し(音源の方向を検出して認識する)、その認識結果を行動決定機構部103に供給する。
圧力処理部101Cは、タッチセンサ51から与えられる圧力検出信号S1Cを処理する。そして、圧力処理部101Cは、その処理の結果、例えば、所定の閾値以上で、かつ短時間の圧力を検出したときには、「叩かれた(しかられた)」と認識し、所定の閾値未満で、かつ長時間の圧力を検出したときには、「撫でられた(ほめられた)」と認識して、その認識結果を、状態認識情報として、モデル記憶部102および行動決定機構部103に通知する。
画像認識部101Dは、CCDカメラ81Lおよび81Rから与えられる画像信号S1Aを用いて、画像認識処理を行う。そして、画像認識部101Dは、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」、または、人間の顔を検出した等の画像認識結果を、状態認識情報として、モデル記憶部102および行動決定機構部103に通知する。
ここで、ユーザは、一般に、ロボット1の正面方向から話しかけることが多いと予想されるため、周囲の状況を撮像するCCDカメラ81Lおよび81Rは、その撮像方向が、ロボット1の正面方向になるように、頭部ユニット12(図2)に設置されているものとする。
なお、ユーザが、ロボット1の正面方向でない方向から話しかけた場合であっても、CCDカメラ81L、および、81Rは、方向認識部101Bにより認識された方向に、頭部ユニット12が動かされることによって、音源であるユーザを撮像することができる。
モデル記憶部102は、ロボット1の感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶、管理している。
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態(度合い)を、所定の範囲(例えば、−1.0乃至1.0等)の値によってそれぞれ表し、状態認識情報処理部101からの状態認識情報や時間経過等に基づいて、その値を変化させる。本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態(度合い)を、所定の範囲の値によってそれぞれ表し、状態認識情報処理部101からの状態認識情報や時間経過等に基づいて、その値を変化させる。成長モデルは、例えば、「幼年期」、「青年期」、「熟年期」、「老年期」等の成長の状態(度合い)を、所定の範囲の値によってそれぞれ表し、状態認識情報処理部101からの状態認識情報や時間経過等に基づいて、その値を変化させる。
モデル記憶部102は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動決定機構部103に送出する。
なお、モデル記憶部102には、状態認識情報処理部101から状態認識情報が供給される他、行動決定機構部103から、ロボット1の現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、モデル記憶部102は、同一の状態認識情報が与えられても、行動情報が示すロボット1の行動に応じて、異なる状態情報を生成するようになっている。
即ち、例えば、ロボット1が、ユーザに挨拶をし、ユーザに頭を撫でられた場合には、ユーザに挨拶をしたという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部102に与えられ、この場合、モデル記憶部102では、「うれしさ」を表す感情モデルの値が増加される。
一方、ロボット1が、何らかの仕事を実行中に頭を撫でられた場合には、仕事を実行中であるという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部102に与えられ、この場合、モデル記憶部102では、「うれしさ」を表す感情モデルの値は変化されない。
このように、モデル記憶部102は、状態認識情報だけでなく、現在または過去のロボット1の行動を示す行動情報も参照しながら、感情モデルの値を設定する。これにより、例えば、何らかのタスクを実行中に、ユーザが、いたずらするつもりで頭を撫でたときに、「うれしさ」を表す感情モデルの値を増加させるような、不自然な感情の変化が生じることを回避することができる。
なお、モデル記憶部102は、本能モデルおよび成長モデルについても、感情モデルにおける場合と同様に、状態認識情報および行動情報の両方に基づいて、その値を増減させるようになっている。また、モデル記憶部102は、感情モデル、本能モデル、成長モデルそれぞれの値を、他のモデルの値にも基づいて増減させるようになっている。
行動決定機構部103は、状態認識情報処理部101からの状態認識情報や、モデル記憶部102からの状態情報、時間経過等に基づいて、次の行動を決定し、決定された行動の内容が、例えば、「ダンスをする」というような音声認識処理や画像認識処理を必要としない場合、その行動の内容を、行動指令情報として、姿勢遷移機構部104に送出する。
すなわち、行動決定機構部103は、ロボット1がとり得る行動をステート(状態:state)に対応させた有限オートマトンを、ロボット1の行動を規定する行動モデルとして管理しており、この行動モデルとしての有限オートマトンにおけるステートを、状態認識情報処理部101からの状態認識情報や、モデル記憶部102における感情モデル、本能モデル、または成長モデルの値、時間経過等に基づいて遷移させ、遷移後のステートに対応する行動を、次にとるべき行動として決定する。
ここで、行動決定機構部103は、所定のトリガ(trigger)があったことを検出すると、ステートを遷移させる。即ち、行動決定機構部103は、例えば、現在のステートに対応する行動を実行している時間が所定時間に達したときや、特定の状態認識情報を受信したとき、モデル記憶部102から供給される状態情報が示す感情や、本能、成長の状態の値が所定の閾値以下または以上になったとき等に、ステートを遷移させる。
なお、行動決定機構部103は、上述したように、状態認識情報処理部101からの状態認識情報だけでなく、モデル記憶部102における感情モデルや、本能モデル、成長モデルの値等にも基づいて、行動モデルにおけるステートを遷移させることから、同一の状態認識情報が入力されても、感情モデルや、本能モデル、成長モデルの値(状態情報)によっては、ステートの遷移先は異なるものとなる。
また、状態認識情報処理部101の音声認識部101Aが、行動決定機構部103に音声認識結果を状態認識情報として出力する場合、行動決定機構部103は、姿勢遷移機構部104に対して、ロボット1を音源の方向に振り向かせる行動指令情報を供給する。この場合、ロボット1が、音源の方向に振り向き、その状態で、状態認識情報処理部101の画像認識部101Dでは、画像信号の肌色領域などから判断されるユーザの顔画像などが検出され、対応する状態認識情報が行動決定機構部103に供給される。
そして、行動決定機構部103は、状態認識情報処理部101から供給される状態認識情報(例えば、音声認識部101Aにより認識された音声認識結果の情報や、ユーザの顔画像などを検出した旨を示す情報)を取得し、上述したような、例えば、「ユーザと会話する」や「ユーザに手を振る」などの、行動決定機構部103自身が決定した動作を行う(その行動の内容を、行動指令情報として、姿勢遷移機構部104に送出する)。
なお、行動決定機構部103では、上述したように、ロボット1の頭部や手足等を動作させる行動指令情報の他、ロボット1に発話を行わせる行動指令情報も生成される。ロボット1に発話を行わせる行動指令情報は、音声合成部105に供給されるようになっており、音声合成部105に供給される行動指令情報には、音声合成部105に生成させる合成音に対応するテキスト等が含まれる。そして、音声合成部105は、行動決定機構部103から行動指令情報を受信すると、その行動指令情報に含まれるテキストに基づき、合成音を生成し、スピーカ72に供給して出力させる。
また、行動決定機構103では、発話に対応する、または、発話をしない場合に発話の代わりとなる言葉を、表示部55にテキスト表示させる。例えば、音声を検出して振り向いたときに、「誰?」とか「なぁに?」といったテキストを表示部55に表示することができる。
姿勢遷移機構部104は、上述したように、行動決定機構部103から供給される行動指令情報に基づいて、ロボット1の姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これをサブ制御部63A乃至63Dに送出する。
図8は、図7の状態認識情報処理部101の音声認識部101Aの機能を示す機能ブロック図である。
制御部101aには、マイクロホン82の出力が、図示せぬAD変換部によりデジタル信号に変換されて供給される。制御部101aは、マイクロホン82の出力を監視しており、マイクロホン82の出力から音声信号S1Bを検出すると、その音声信号を特徴抽出部121に出力し、後段の認識処理制御部122を、音声認識処理を実行するように制御する。
また、制御部101aには、音声の特徴量が特徴抽出部121から供給されるとともに、音声認識結果に関する情報が認識処理制御部122から供給され、制御部101aでは、特徴抽出部121と認識処理制御部122からの情報に基づき、音声認識結果の正解確信度が計算される。さらに、制御部101aは、音声認識結果の正解確信度が所定の閾値より大きいか否かを判定し、音声認識結果の正解確信度が所定の閾値より大きいと判定した場合、認識処理制御部122に音声認識結果をモデル記憶部102、および行動決定機構部103(図7)に出力させる。
特徴抽出部121は、制御部101aを介して入力された音声信号の特徴量を演算(抽出)し、制御部101aと認識処理制御部122に供給する。ここで、音声信号の特徴量としては、例えば、MFCC(Mel Frequency Cepstrum Coefficient)や、スペクトルなどがある。
認識処理制御部122は、複数のカテゴリに対応する認識処理を並列に処理することができるように、認識処理部131−1乃至131−4で構成されており、認識処理部131−1乃至131−4は、それぞれ異なるカテゴリに対応する(音声)認識処理を行う。
認識処理制御部122においては、新たなカテゴリに対応した認識処理部を追加したり、不要になった認識処理部を削除することができる。また、各認識処理部に対して、認識処理を停止させたり、開始させたりすることができる。すなわち、複数の認識処理部を同時に駆動したり、認識処理部を切り替えたりすることによって、複数のカテゴリに対応する認識処理を同時に駆動したり、認識処理のカテゴリを切り替えることができる。
認識処理部131−1乃至131−4には、特徴抽出部121により演算された特徴量に基づいて、音声のマッチングを行うマッチング部141−1乃至141−4が設けられており、また、語彙に関する情報が蓄積された辞書データベース142−1乃至142−4、文法に関する情報が蓄積された文法データベース143−1乃至143−4が設けられている。さらに音響に関する情報が蓄積された音響モデルデータベース132が、マッチング部141−1乃至141−4と接続されている。
なお、以下の説明において、認識処理部131−1乃至131−4のそれぞれを、個々に区別する必要がない場合、まとめて認識処理部131と称する。他の部分についても同様とする。また、図8の例においては、認識処理部は、認識処理部131−1乃至131−4の4つが示されているが、認識処理部は、必要に応じて、3つ以下、または5つ以上設けられることもある。
音響モデルデータベース132は、音声認識する音声の言語における個々の音素や音節などの音響的な特徴を表す音響モデルを記憶している。音響モデルとしては、例えば、HMM(Hidden Markov Model)が用いられる。
なお、認識処理制御部122では、認識処理部131−1乃至131−4のすべてが、音響モデルデータベース132に記憶された音響モデルを共有して利用するようになっており、これによって消費するメモリや音響モデルにおいて発生するスコア計算のための処理などを効率的に共有することが可能となる。
辞書データベース142−1乃至142−4は、認識対象の各単語(語彙)について、その発音に関する情報(音韻情報)が記述された単語辞書を記憶している。文法データベース143−1乃至143−4は、辞書データベース142−1乃至142−4の単語辞書に登録されている各単語が、どのように連鎖する(つながる)かを記述した文法規則(言語モデル)を記憶している。文法規則としては、例えば、文脈自由文法(CFG)に基づく記述や、統計的な単語連鎖確率(N-gram)などが用いられる。
辞書データベース142−1乃至142−4にはそれぞれ異なる語彙に関する情報が蓄積されており、文法データベース143−1乃至143−4にもそれぞれ異なる文法に関する情報が蓄積されている。
次に、図9のフローチャートを参照して、ロボット1の音声に対する処理について説明する。
ステップS1において、音声認識部101Aは、マイクロホン82−1乃至82−Nから、音声信号S1Bが入力されたか否か(音声信号S1Bが検出されたか否か)を判定し、音声信号S1Bが入力されていないと判定された場合、ステップS1の処理を繰り返す。すなわち、音声信号S1Bが検出されたと判定されるまで(音声信号S1Bが入力されたと判定されるまで)、ステップS1の処理が繰り返される。
ステップS1において、音声信号S1Bが検出されたと判定された場合、ステップS2に進み、音声認識部101Aは、音声認識処理を実行する。
ここで、図10のフローチャートを参照して、音声認識処理について説明する。
制御部101aは、マイクロホン82からの音声信号S1Bを特徴抽出部121に供給し、特徴抽出部121は、ステップS21において、その音声信号S1Bを、適当な時間間隔で周波数分析などすることにより、スペクトルや、その他の音声の音響的な特徴量を表すパラメータを求め、制御部101aと認識処理制御部122に供給する。
ステップS22において、認識処理制御部122は、駆動させる認識処理部を選択する。
例えば、ロボット1が、ユーザとの雑談、歌唱、または踊りを実行している場合を想定する。このとき、ロボット1では、雑談用、歌唱用、または踊り用のアプリケーションが起動している。また、ロボット1は、ユーザとの雑談、歌唱、または踊りのカテゴリそれぞれに対応した認識処理部を有しており、起動しているアプリケーションに対応したカテゴリの認識処理部が駆動されるものとする。なお、ロボット1は、全ての動作に共通というカテゴリの認識処理部を1つ有しており、この認識処理部は、起動しているアプリケーションにかかわらず駆動されるものとする。全ての動作に共通のカテゴリの認識処理部では、例えば「止まれ」などのように、重要度が大きい音声コマンドなどが認識される。
例えば、認識処理部131−1乃至131−4が、それぞれ、全ての動作に共通のカテゴリの認識処理部、ユーザとの雑談のカテゴリの認識処理部、歌唱のカテゴリの認識処理部、または踊りのカテゴリの認識処理部であるとすると、ステップS22では、認識処理部131−4が選択、駆動されるとともに、認識処理部131−2乃至131−4のうちの、現在起動しているアプリケーションに対応するカテゴリのものが選択、駆動される。
そして、雑談用、歌唱用、または踊り用の各アプリケーションは、ユーザとの雑談のカテゴリの認識処理部131−2、歌唱のカテゴリの認識処理部131−3、または踊りのカテゴリの認識処理部131−4それぞれと、全ての動作に共通のカテゴリの認識処理部131−1との、2つの認識処理部を使用する。
その後、処理はステップS23に進む。なお、ステップS23とS24の処理は、認識処理部131−1乃至131−4のうちの、ステップS22で選択、駆動されたものにより、並列に実行される。
ステップS23において、認識処理部131は、音響モデルデータベース132、辞書データベース142、および文法データベース143を参照しながら、マッチング処理を行い、音声認識結果の候補としての単語列の、特徴抽出部121からの特徴量に対する音響スコアと言語スコアを演算する。
すなわち、認識処理部131は、辞書データベース142に記憶された単語の並びに対応する、音響モデルデータベース132に記憶された音響モデルと、特徴抽出部121からの特徴量とを用い、その単語の並びの音響的な評価値を、音響スコアとして演算する。また、文法データベース143に、文法としてたとえばバイグラムが記憶されている場合には、認識処理部131は、辞書データベース142に記憶された単語の並びの、各単語と、その次の単語との連鎖確率に基づく言語的な確からしさを、言語スコアとして演算する。
ステップS24において、認識処理部131は、音響スコアと言語スコアを総合し、辞書データベース142に記憶された単語の並び(単語列)から、最も評価の高い単語列を、音声認識結果として決定する。なお、認識処理部131−1乃至131−4のうちの複数が駆動している場合には、例えば、その複数それぞれで決定される単語列のうちの、総合的なスコアが最も高いものが、最終的な音声認識結果として決定される。
例えば、ユーザが、「今日はいい天気ですね。」と発声したとき、「今日」、「は」、「いい」、「天気」、「ですね」のような単語列が、音声認識結果として得られる。
図9のフローチャートの説明に戻る。
ステップS2の処理後、ステップS3において、音声認識部101Aの制御部101aは、ステップS2の音声認識処理による音声認識結果の正解確信度を計算し、ステップS4に進む。
ステップS4において、制御部101aは、音声認識結果の正解確信度が所定の閾値より大きいか否かを判定する。ここで、所定の閾値は、ロボット1の周辺のノイズとユーザが発した音声とを弁別する値であり、例えば、メイン制御部61のメモリ61Aに予め記憶しておくことができる。
ステップS4で、音声認識結果の正解確信度が所定の閾値以下であると判定された場合、即ち、音声認識処理の正解確信度が低く、音声認識の対象となった音声信号が、ロボット1の周辺で発生しているノイズであると推測される場合、ステップS1に戻る。従って、この場合、ロボット1は、音声認識結果に対して動作を行わない。
ステップS4で、音声認識結果の正解確信度が所定の閾値より大きいと判定された場合、即ち、音声認識処理の正解確信度が高く、音声認識の対象となった音声信号が、ユーザが発した音声であると推測される場合、制御部101aは、音声認識結果を、認識処理制御部122からモデル記憶部102、および行動決定機構部103(図7)に出力させ、ステップS5に進む。
ステップS5において、方向認識部101Bは、マイクロホン82−1乃至82−Nから入力された音声の、音源の方向を検出して認識する。すなわち、方向認識部101Bは、マイクロホン82−1乃至82−Nから供給される音声信号S1Bのパワー差や位相差から音源の方向を検出して認識し、認識結果を行動決定機構部103に供給する。
ステップS6において、音源の方向への振り向き動作の処理が実行される。
ここで、図11のフローチャートを参照して、振り向き動作の処理について説明する。
ステップS41において、行動決定機構部103は、状態認識情報処理部101の方向認識部101Bより供給された音源の方向の情報に基づいて、現在ロボット1が向いている方向と音源の方向との差を計算し、体幹の向きに対する音源方向の相対角度を求める。
ステップS42において、行動決定機構部103は、図4に示した首関節機構27のヨー軸29の可動範囲と、脚部を使って体幹を回転させる際に、一度の回転動作で回転できる最大角度などの制約に基づき、ステップS41で計算された相対角度分だけ頭部を回転させるのに必要な首関節機構27と体幹(股関節機構37を用いて回転させるロボット1の本体の垂直方向の軸)の回転角度を決定する。ここで、音源方向によっては、行動決定機構部103は、首関節機構27のみの回転角度を決定する。なお、ロボット1は、図4に示したように股関節機構37のヨー軸38を有しているが、簡単のため、本実施の形態ではこの股関節機構37のヨー軸38を利用しないものとして説明する。しかしながら、首、腰、足の接地方向を利用し、全身を協調させて音源方向を振り向くことができることは勿論である。
具体的に図12を用いて説明する。図12Aは、ロボット1の首の可動範囲を±Y度とし、音源Sの方向の相対角度がロボット1の正面方向に対してX度方向である場合の例である。この場合、ロボット1が音源Sの方向に振り向くためには、図12Bに示すように、最低でもX−Y度だけ体幹全体を脚部を使って回転させると共に、首関節機構27のヨー軸29をY度だけ音源Sの方向に回転させる必要がある。
ステップS43において、行動決定機構部103は、ステップS42で得られた角度を回転させるのに必要な各関節の制御情報を姿勢遷移機構部104に供給し、この情報に基づいて、姿勢遷移機構部104は、各種のアクチュエータをそれぞれ駆動させることによって、ロボット1を音源方向に振り向かせる。
ステップS44において、行動決定機構部103は、音源Sの方向に対して正対するために必要な体幹及び首の回転角度を計算する。例えば上述した図12Bに示すように、現在のロボット装置1の姿勢において首関節機構27のヨー軸29がY度回転している場合、すなわち体幹に対して頭部がY度回転している場合には、図12Cに示すように、体幹をY度回転させると同時に首関節機構27のヨー軸29を−Y度回転させることによって、対象オブジェクトを注視したまま首の捻れを解消し、自然な動作で音源Sの方向に正対することが可能となる。
ステップS45において、姿勢遷移機構部104は、ステップS44で計算した動作をロボット1に実行させ、音源方向に正対させると共に、行動決定機構部103は、例えば、「だーれ」などのテキストを表示部55に表示させる。
ロボット装置1は、以上のようにして音源方向を認識し(推定し)、全身を協調させて自然な動作により音源方向を振り向くことができる。
例えば、ロボット1は、図13A乃至Fで示されるようにして音源方向に振り向く。すなわち、図13Aのようにロボット1が図中右側を向いていたときに背後から音声が入力されると、図13B乃至Fのように、首を回転させると共に脚部を使って体幹を回転させ、最終的に、図13Fで示されるように、図中左方向の音源方向に振り向く。また、このとき、行動決定機構部103は、表示部55や音声合成部105を制御して、例えば、「なーに?」といった表示や合成音出力をさせることにより、ユーザに対して応答していることを表現させてもよい。結果として、ユーザが音声によるコマンドを与えた際、ユーザは、ロボット1がユーザが発した音声コマンドに反応し、応答していることを認識することが可能となる。
図9のフローチャートの説明に戻る。
ステップS7において、状態認識情報処理部101の画像認識部101Dは、CCDカメラ81L,81Rのそれぞれより入力される画像情報に基づいて、ユーザの顔の検出処理を実行する。人間の顔を検出する手法は、例えば、画像信号の肌色領域などから判断されるユーザの顔画像などを検出するといった方法でもよい。また、人間の顔を検出する手法としては、例えば「E.Osuna, R.Freund and F.Girosi:典raining support vector machines:an application to face detection CVPR'97, 1997」に記載されているような手法で実現することも可能である。
ステップS8において、画像認識部101Dは、ユーザの顔が検出されたか否かを判定し、ユーザの顔が検出されたと判定した場合、ステップS9に進む。
ステップS9において、行動決定機構部103は、状態認識情報処理部101の音声認識部101Aより供給される単語列からなる音声認識結果に基づいて、とるべき行動を決定し、対応する行動指令情報を姿勢遷移機構部104、または音声合成部105に出力して、ステップS10に進む。これにより、例えば、姿勢遷移機構部104は、行動決定機後部103からの行動指令情報に応じて各種のアクチュエータを制御してロボット1を行動させる。
一方、ステップS8において、ユーザの顔が検出されなかった場合、ステップS9の処理がスキップされて、ステップS10に進み、元の方向への振り向き動作処理が実行され、その処理は、ステップS1に戻る。尚、この元の方向への振り向き動作処理は、図11のフローチャートを参照して説明した、図9のステップS6の処理における音源方向への振り向き動作の処理における、音源方向を元の方向に置き換えたこと以外は、同様の処理であるので、その説明は省略する。
以上のように、図9の処理によれば、音声信号が検出されたとき、音声認識処理が行われ、音声認識結果の正解確信度が計算される。そして、正解確信度が所定の閾値より大きい場合に、検出された音声信号はユーザが発した音声であるとみなされ、ロボット1を音源の方向に振り向かせる。さらに、音源の方向にユーザの顔が検出された場合に、音声認識結果に基づいてロボット1が行動する。
従って、音声認識結果が、ユーザが発した音声の認識結果であると推定される場合にのみ、ロボット1が、図9のステップS6で振り向き動作を行うようにすることができる。即ち、ロボット1がノイズに反応して振り向き動作をするといった不自然な動作(行動)を行うことを防止(低減)することができる。
なお、メイン制御部61のメモリ61Aに予め記憶されている、ロボット1の周辺のノイズとユーザが発した音声とを弁別する閾値を変更(設定)することにより、ロボット1の周辺のノイズに対する感度を容易に調整することができる。
また、ロボット1が、音源方向に振り向く動作では、ユーザの顔を検出することができればよいのであって、ロボット1の頭部のみを振り向かせても、または、ロボット1の本体全体を振り向かせてもどちらでもよい。さらに、このとき、音源方向に指向性の高いマイクロホンが向けられるようにしてもよい。このようにすることで、音声によるコマンドを発しているユーザに対してロボット1が反応していることを示すことが可能になると共に、音源に対して音声認識に必要な音声信号を高い精度で取得することが可能となり、結果として音声認識処理におけるノイズなどによる誤認識を抑制することが可能となる。
また、図9の処理は、ロボット1が、別の動作を行っているときでも実行することができる。この場合、ステップS6の処理を開始する前に、これまで行っていた動作が中断され、ステップS10の処理後、中断された動作が再開されることになる。
さらに、図9の処理では、ステップS9の処理後、ステップS10をスキップして、ステップS1に戻るようにしても良い。
以上の処理においては、検出される音声信号に対応して音源の方向を検出して、音源の方向への振り向き動作を実行していたが、音声は、ロボット1の周辺の環境によって、音源の方向とは異なる方向から聞こえてしまうような場合が生じうる。すなわち、ロボット1の周辺に存在する天井や壁などにより、音声は反響し、この反響した音声により方向を検出すると、本来の音源の方向とは異なる方向を音源として誤検出してしまう可能性が高くなる。結果として、誤検出された方向をロボット1がいくら振り向いても、音声によるコマンドを発しているユーザの顔を検出することができず、不要な振り向き動作を繰り返してしまう恐れがある。
そこで、以上のような、音声が反響してしまうような状況にある場合に対応するため、顔の検出ができる頻度を方向毎に記憶しておき、検出できなかった頻度に応じて(または、ユーザの顔が検出できる頻度に応じて)、音源の方向の信頼度を求め、顔が検出できる信頼度の低い方向が音源方向として検出された場合には、所定の割合で振り向き動作をしないようにさせるようにしてもよい(音声信号が検出されても無視するようにしてもよい)。
図14は、ユーザの顔の検出ができる頻度を記憶しておき、検出した頻度から方向毎の信頼度を演算し、その信頼度に応じて振り向き動作をしないようにしたロボット1のメイン制御部61の他の構成を示すブロック図である。
図14のメイン制御部61は、基本的には、図7のメイン制御部61の構成と同様であるが、行動決定機構部103が、行動メモリ103a、および、信頼度演算部103bを備えており、行動メモリ103aに記憶された情報に基づいて信頼度演算部103bが方向毎の信頼度を演算し、その信頼度に応じて姿勢遷移機構部104を制御する点が異なる。
行動メモリ103aは、行動決定機構部103により決定された行動を記憶するメモリであり、音源の方向に対して振り向き動作をした際に、方向毎に、振り向き動作の頻度と、ユーザの顔が検出された頻度を更新して、記憶する。
信頼度演算部103bは、行動メモリ103aに記憶された情報に基づいて、各方向毎にユーザの顔が検出される信頼度を百分率で求め、記憶する。行動メモリ103aに記憶される情報は、動作がなされる毎に更新されるので、信頼度演算部103bが記憶する信頼度も、各行動に対応して順次更新されていく。
図14の行動決定機構部103は、信頼度演算部103bにより求められる信頼度に基づいて振り向き動作を制御する。すなわち、例えば、右方向に振り向き動作をした頻度をTR、そのうち顔が検出された頻度がFRであった場合、信頼度演算部103bが演算する、右方向の顔が検出される信頼度は100×FR/TR(%)である。行動決定機構部103は、方向認識部101Bより入力されてくる、方向の情報に基づいて、1乃至100までの乱数を発生させ、その乱数の値と、信頼度演算部103bに記憶された顔が検出される信頼度とを比較し、乱数の値の方が、信頼度よりも低いとき、その方向に振り向き動作を実行させ、それ以外のときは、振り向き動作をさせないように姿勢遷移機構部104を制御する。尚、信頼度のデフォルトの値は、100%である。
次に、図15のフローチャートを参照して、図14のメイン制御部61を用いたロボット1の音声に対する処理を説明する。尚、図15のステップS61乃至S65、およびステップS68乃至S72の処理は、図9のフローチャートのステップS1乃至S5、およびステップS6乃至S10の処理と、それぞれ、同様であるので、その説明は省略する。
ステップS66において、行動決定機構部103は、信頼度演算部103bに記憶されている、検出された音源の方向に対応した顔が検出される信頼度を読み出す。最初の処理の場合、信頼度は100%となっており、それ以降では、頻度に応じた値となっている。
ステップS67において、行動決定機構部103は、1乃至100までの乱数を発生させ、発生した乱数と信頼度との比較から、振り向き動作を実行させるか否かを判定する。より詳細には、行動決定機構部103は、1乃至100までの乱数を発生させ、信頼度演算部103bより読み出された信頼度と比較し、読み出された信頼度よりも低い場合、振り向き動作を実行させると判断し、乱数の方が、信頼度よりも高い場合、振り向き動作を実行させないと判断する。
ステップS67において、行動決定機構部103は、例えば、発生された乱数が信頼度よりも低いと判定する場合、すなわち、振り向き動作を実行させると判定した場合、ステップS68に進む。
一方、ステップS67において、発生された乱数が、信頼度よりも高いと判定された場合、行動決定機構部103は、振り向き動作を実行させないと判定し、ステップS61に戻る。
ステップS73において、行動決定機構部103は、ユーザの顔が検出されたか否かの判定結果に基づいて、ユーザの顔が検出された頻度、および、音源の方向への振り向き動作を実行した頻度の情報を更新し、行動メモリ103aに記憶させると共に、信頼度演算部103bは、この更新された頻度に基づいて信頼度を求めて信頼度を更新する。
以上の処理により、振り向き動作毎に、ユーザの顔が検出される信頼度が更新されるので、例えば、天井や壁などにより音声が反響しやすい環境で、誤検出されやすい音源の方向に対しては、ユーザの顔が検出される頻度に応じて振り向き動作を抑制することが可能となり、結果として、誤検出を起こし易い、無駄な方向への振り向き動作を抑制しつつ、精度の高い音声認識処理を実現させることが可能となる。
また、ロボット1から見た方向は、例えば、ロボット1が進行方向を変化させながら歩行しているような場合、加速度検出信号S2Bなどを用いて方向毎の信頼度もその変化している進行方向に合わせて変化させるようにしてもよいし、前後左右といった方向ではなく、東西南北といった絶対方向をコンパスを用いて設定し、その方向ごとに信頼度を設定するようにしてもよい。
さて、次に、上述した音声認識結果の正解確信度の算出方法について説明する。正解確信度は、音声認識結果が、どれだけ確からしいか(信頼性)を表し、本実施の形態では、正解確信度がある程度高ければ、音声認識結果が、ノイズではなく、ユーザが発した音声(人間による意味のある発語)の音声認識結果であるとして扱う。
一般的に、HMM音響モデルによる音声認識では、音素(モデル)が認識の基本単位として考えられ、単語モデルは、音素モデルの連結としてモデル化される。音声認識において、認識エラー(誤認識)は、入力された音声信号を正確な音素単位に分離していないことによって生じることがある。逆に言えば、入力された音声信号について、音素単位に分離する境界(位置)が正確に決定されていれば、正確な音素の認識、さらには、正確な単語や文の認識を行うことができる。
そこで、音声認識結果が、入力された音声信号に対して、音素単位に正確に境界を決定しているかどうかを検証する尺度としての音素境界検証尺度関数PBVMを設ける。そして、音声認識結果(単語列)中の音素単位で求められる音素境界検証尺度関数PBVMを、単語単位、または文単位に拡張し、その拡張によって得られる演算値を、正解確信度として用いることができる。従って、正解確信度は、単語レベルおよび文章レベルのどちらとしても求めることができる。
初めに、音素境界検証尺度関数PBVMの算出方法について説明する。
まず、入力された音声信号の音声認識結果(単語列)は、正確な音素ごとに境界が設定(決定)されているという音素仮説をたてる。即ち、入力された音声信号に対して、音声認識結果と同様の音素境界を仮定する。ここで、音声信号の、ある音素kと次の音素k+1との間の境界を音素境界kとする。
そして、音素境界kの左右(音素境界kの時系列で前後)の2つのコンテキストを定義する。ここで、音素境界kの左右(前後)の2つのコンテキストの定義としては、例えば、図16乃至図18に示す3つのいずれかを採用することができる。
即ち、図16は、音素境界kの左右(前後)の2つのコンテキストの第1の定義の例を示している。
図16では、音声認識結果に基づく音素k,k+1,およびk+2、並びに、音素kとk+1との境界である音素境界k、および音素k+1とk+2との境界である音素境界k+1が示されている。また、音素kおよびk+1については、音声信号のフレームの区切りが、点線で示されており、例えば、音素kの最後のフレームがフレームi、音素k+1の最初のフレームがフレームi+1となっている。さらに、音素kでは、HMM状態(HMMの状態)が状態a,b,cと遷移し、音素k+1では、HMM状態が状態a’,b’,c’と遷移している。
音素境界kの左右(前後)の2つのコンテキストの第1の定義では、図16に示すように、音素境界kの左(音素境界kより時系列で前)のコンテキストは、音素kの最後のHMM状態である状態cに対応する全フレーム(フレーム(i−4)乃至フレームi)からなり、音素境界kの右(音素境界kより時系列で後)のコンテキストは、音素k+1の最初のHMM状態である状態a’に対応する全フレーム(フレーム(i+1)乃至フレーム(i+4))からなる。
図17は、音素境界kの左右(前後)の2つのコンテキストの第2の定義の例を示している。なお、図17において、図16と対応する部分については、同様の符号が付してあり、その説明は適宜省略する(後述する図18も同様)。
音素境界kの左右(前後)の2つのコンテキストの第2の定義では、図17に示すように、音素境界kの左のコンテキストは、音素kの最後から2番目のHMM状態である状態bに対応する全フレームからなり、音素境界kの右のコンテキストは、音素k+1の2番目のHMM状態である状態b’に対応する全フレームからなる。
図18は、音素境界kの左右(前後)の2つのコンテキストの第3の定義の例を示している。
音素境界kの左右(前後)の2つのコンテキストの第3の定義では、図18に示すように、音素境界kの左のコンテキストは、フレーム(i−n)乃至フレームiからなり、音素境界kの右のコンテキストは、フレーム(i+1)乃至フレーム(i+m)からなる。ここで、nおよびmは、1以上の任意の整数である。
次に、2つのコンテキストをベクトルとして、その2つのコンテキストのベクトルの類似度を表す類似度関数を求める。
なお、ここでは、音声の特徴量として、例えば、スペクトルがコンテキストを構成するフレームの単位で抽出されるものとする。この場合、コンテキストのベクトルとしては、例えば、そのコンテキストを構成する各フレームから得られるスペクトルの係数を要素とするベクトルの、コンテキストを構成する全フレームについての平均ベクトルを採用することができる。
2つのコンテキストのベクトルをxとyとするとき、ベクトルxとyの類似度関数s(x,y)は、例えば、次式(1)で表すことができる。
式(1)において、‖x‖は、ベクトルxのベクトル空間上のノルムを表し(‖y‖も同様)、xtは、ベクトルxの転置を表す。なお、式(1)の類似度関数s(x,y)は、ベクトルxとyの内積xtyを、ベクトルxとyの大きさの積‖x‖・‖y‖で除算したものであるから、2つのベクトルxとyとの角度(cosθ)を意味する。
ここで、類似度関数s(x,y)は、その値が小さいほど、ベクトルxとyとが類似していることを表す。
ある音素境界kの音素境界検証尺度関数PBVM(k)は、類似度関数s(x,y)を用いて、式(2)で表すことができる。
なお、類似度関数s(x,y)の他に、2つのベクトルxとyとの類似度を求める関数としては、2つのベクトルxとyとの距離を表す距離関数d(x,y)(但し、ここでは、−1乃至1の範囲)に正規化されるものとする)も考えられる。この場合、音素kの音素境界検証尺度関数PBVM(k)は、式(3)のように表すことができる。
なお、音素境界kにおけるコンテキストのベクトルx,yとしては、そのコンテキストを構成する各フレームのスペクトルを表すベクトル(フレームから得られるスペクトルの係数を要素とするベクトル)の、コンテキストを構成する全フレームの平均値(平均ベクトル)の他、コンテキストを構成するフレームのうちの、例えば、音素境界kに最も近いフレームのスペクトルを表すベクトルから、コンテキストを構成するフレームのスペクトルを表すベクトルの、全フレームについての平均値を減算して得られるベクトルなどを採用することが可能である。また、HMMにおける特徴量の出力確率密度関数がガウス分布を用いて表される場合には、音素境界kにおけるコンテキストのベクトルx,yとしては、例えば、コンテキストを構成するフレームに対応する、HMM状態における出力確率密度関数を表すガウス分布を定義する平均ベクトルを用いたベクトルを、音素境界kにおけるコンテキストのベクトルx,yとして採用することが可能である。
上述の式(2)または式(3)で求められる、音素境界kの音素境界検証尺度関数PBVM(k)は、変数kに対して、0乃至1の間の値を持つ連続関数となり、PBVM(k)=0は、音素境界kの左右のコンテキストのベクトルが、互いに同一方向であることを意味する。即ち、音素境界検証尺度関数PBVM(k)の関数値が0である場合、音素境界kは、実際の音素境界ではなく、認識エラーが生じ得ることを表している。
一方、音素境界検証尺度関数PBVM(k)の関数値が1である場合、音素境界kの左右のコンテキストのベクトルが、互いに反対方向であることを意味し、音素境界kは、確かに音声信号中の正確な音素境界であり得ることを表している。
即ち、音素境界検証尺度関数PBVM(k)は、音素境界kが実際の音素境界である尤度を表しているということができる。
そして、次に、音声認識結果としての単語列の各単語は、複数の音素で構成されるので、単語列の単語の正解確信度は、その単語を構成する音素の音素境界検証尺度関数PBVMから演算することができる。
即ち、単語の正解確信度としては、例えば、単語の各音素の音素境界検証尺度関数PBVMの平均値、単語の各音素の音素境界検証尺度関数PBVMの最小値、単語の各音素の音素境界検証尺度関数PBVMの最大値と最小値の差、単語の各音素の音素境界検証尺度関数PBVMの標準偏差、単語の各音素の音素境界検証尺度関数PBVMの変動係数(標準偏差を平均値で除算した値)などを採用することができる。
音声認識結果としての単語列の正解確信度も、単語の正解確信度と同様にして求めることができる。即ち、音声認識結果として、例えば、「The weather yesterday is nice」が得られ、単語The, weather, yesterday, is, niceについて、正解確信度0.90, 0.86, 0.13, 0.81, 0.95が、それぞれ得られたとする。
音声認識結果の正解確信度として、例えば、その音声認識結果としての単語列の各単語の正解確信度のうちの最小値を採用することとすると、音声認識結果「the weather yesterday is nice」の正解確信度は、単語「yesterday」の正解確信度である0.13となる。また、音声認識結果の正解確信度として、例えば、その音声認識結果としての単語列の各単語の正解確信度の平均値を採用することとすると、音声認識結果「the weather yesterday is nice」の正解確信度は、単語「The」,「weather」,「yesterday」,「is」,「nice」のそれぞれの正解確信度0.90,0.86,0.13,0.81,0.95の平均値である0.73になる。
なお、上述の場合には、音声認識結果としての単語列を構成する各単語の正解確信度から、その音声認識結果の正解確信度を求めるようにしたが、音声認識結果の正解確信度は、その他、例えば、その音声認識結果としての単語列を構成する各単語の音素境界についての音素境界検証尺度関数PBVMを使用して求めることもできる。
以上のようにして求められる音声認識結果の正解確信度が、例えば、図9のステップS4における処理のように、所定の閾値と比較されることにより、ロボット1に入力された音声信号が、ノイズではなく、ユーザが発した音声であるかどうかが判定される。従って、音声認識結果として、辞書データベース142に記憶された単語列のなかの最も評価の高い単語列を必ず採用するのとは異なり、音声認識結果の正解確信度が所定の閾値より大きい単語列のみが採用されるので、音声に似通ったノイズでも、想定されていない発話内容に関しては無視することが可能となる。
また、正解確信度としては、特開平9−259226号公報に記載されているように、音声認識結果とする第1位の候補と、次の第2位の候補とのスコアの差を採用することも可能である。さらに正解確信度は、HMMから計算されるフレームごとの音響スコアや、ニューラルネットワークを用いて計算することも可能である。
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
図19は、図6のロボット1の電気的な内部構成をソフトウェアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU201は、パーソナルコンピュータの全体の動作を制御する。また、CPU201は、バス204および入出力インタフェース205を介してユーザからキーボードやマウスなどからなる入力部206から指令が入力されると、それに対応してROM(Read Only Memory)202に格納されているプログラムを実行する。あるいはまた、CPU201は、ドライブ210に接続された磁気ディスク221、光ディスク222、光磁気ディスク223、または半導体メモリ224から読み出され、記憶部208にインストールされたプログラムを、RAM(Random Access Memory)203にロードして実行する。これにより、上述したメイン制御部61の機能が、ソフトウェアにより実現されている。さらに、CPU201は、通信部209を制御して、外部と通信し、データの授受を実行する。
プログラムが記録されている記録媒体は、図19に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク221(フレキシブルディスクを含む)、光ディスク222(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disk)を含む)、光磁気ディスク223(MD(Mini-Disc)を含む)、もしくは半導体メモリ224などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM202や、記憶部208に含まれるハードディスクなどで構成される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
1 ロボット, 61 メイン制御部, 55 表示部, 63 サブ制御部, 71 外部センサ部, 72 スピーカ, 81L,81R CCDカメラ, 82 マイクロホン, 101 状態認識情報処理部, 101A 音声認識部, 101a 制御部, 101B 方向認識部, 101C 圧力処理部, 101D 画像認識部, 102 モデル記憶部, 103 行動決定機構部, 103a 行動メモリ, 104 姿勢遷移機構部, 105 音声合成部