次に、図面を参照して、本発明の実施の形態について説明する。
図1は、本発明を適用した2足歩行タイプのロボット1の一実施の形態の構成を示す外装の概観斜視図である。ロボット1は、住環境その他の日常生活上の様々な場面における人的活動を支援する実用ロボットであり、内部状態(怒り、悲しみ、喜び、楽しみ等)に応じて行動できるほか、人間が行う基本的な動作を表出することができる。
図1で示されるように、ロボット1は、体幹部外装ユニット2の所定の位置に頭部外装ユニット3が連結されると共に、左右2つの腕部外装ユニット4R/L(Right/Left:右腕/左腕)と、左右2つの脚部外装ユニット5R/Lが連結されて構成されている。
次に、図2を参照して、ロボット1の内部の構成について説明する。尚、図2は、図1で示した外装部分に対して、それらの内部の構成を示すものである。
図2は、ロボット1の正面方向の内部の斜視図であり、図3は、ロボット1の背面方向からの内部の斜視図である。また、図4は、ロボット1の軸構成について説明するための斜視図である。
ロボット1は、胴体部ユニット11の上部に頭部ユニット12が配設されるとともに、胴体部ユニット11の上部左右に、同様の構成を有する腕部ユニット13Aおよび13Bが所定位置にそれぞれ取り付けられ、かつ、胴体部ユニット1の下部左右に、同様の構成を有する脚部ユニット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 Coup led 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に送出する。
換言すると、制御プログラムの中には、各種のアプリケーション(プログラム)が含まれており、メイン制御部61は、ロボット1の周囲および内部の状況や、ユーザからの指令、または、ユーザからの働きかけの有無の判断結果等に応じて、とあるアプリケーションの稼動を停止させたり、開始させることができる。即ち、メイン制御部61は、複数のアプリケーションを同時に動作させたり、アプリケーションの切り替えを行うことができる。そして、メイン制御部61は、現在動作させている(実行中である)1以上のアプリケーション、あるいは、そのとき装填されている外部メモリ75に格納されている各種制御パラメータなどに基づいて、ロボット1の行動を決定し、その決定結果に基づく制御コマンドを生成して、対応するサブ制御部63A乃至63Dに送出する。
サブ制御部63A乃至63Dは、メイン制御部61から供給された制御コマンドに基づいて、アクチュエータA1乃至A14のうち、対応するものの駆動を制御する。これにより、ロボット1は、例えば、頭部ユニット12を上下左右に揺動かさせたり、腕部ユニット13A、あるいは、腕部ユニット13Bを上に挙げたり、脚部ユニット14Aと14Bを交互に駆動させて、歩行するなどの行動を行う。
また、メイン制御部61は、必要に応じて、所定の音声信号S3をスピーカ72に与えることにより、音声信号S3に基づく音声を外部に出力させると共に、例えば、音声を検出したときに、表示信号S4に基づいて「だーれ」などのユーザへの応答を表示部55に表示する。更に、メイン制御部61は、外見上の「目」として機能する、頭部ユニット12の所定位置に設けられた、図示しないLEDに対して駆動信号を出力することにより、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は、マイクロホン82−1乃至82−Nのそれぞれから与えられる音声信号S1Bをアレイマイクロホンの入力として用いて、指向性マイクロホンや無指向性マイクロホンを作り出す(それと等価の処理を行う)ことができる。即ち、音声認識部101Aの制御部101aは、現在の音声認識環境の設定に従い、音声信号S1Bの指向特性を変化させることができる。なお、制御部101aは音声認識環境の設定自体も行うが、その設定処理の詳細については後述する。
例えば、ユーザ(話者)が前方にいることを前提とする音声認識タスクの場合には、制御部101aは、入力された音声信号S1Bから、前方方向に指向特性を持つような音声信号を生成する。一方、話者の位置を仮定しない音声認識タスクの場合には、制御部101aは、入力された音声信号S1Bから、無指向特性の音声信号を生成する。
また、音声認識部101Aは音声認識を行い、例えば、「歩け」、「止まれ」、「右手を挙げろ」等の指令、その他の音声認識結果を、状態認識情報として、モデル記憶部102および行動決定機構部103に通知する。
このとき、音声認識部101Aは、次のようにして、音声認識を開始し、そして終了する。即ち、音声認識部101Aは、順次入力されてくる音声信号S1Bのパワーの短時間平均と長時間平均との比、即ち、パワー比を逐次求め、そのパワー比が所定の閾値を超えた時点で、音声が検出されたとして音声認識を開始する。その後、終了判定時間の間そのパワー比が閾値を下回った時点で、音声認識部101Aは、音声が終了したとして音声認識を終了する。そして、音声認識部101Aは、その音声認識の結果を行動決定機構部103とモデル記憶部102に出力する。
このような終了判定時間等の音声区間検出のパラメータも、上述したマイクロホンの指向特性と同様に音声認識環境の1つとして、制御部101aにより設定される。即ち、制御部101aは、現在動作中のアプリケーションに応じて、使用する音声認識タスク(それに対応する、駆動させるべき音声認識処理)の組み合わせを変化させ、また、終了判定時間やマイクロホンの指向特性(その他、後述する正解確信度の閾値等)といった音声認識環境を再設定することにより、現在動作中のアプリケーションに最適な音声認識環境の設定を維持するように制御する。
なお、このような音声認識部101Aのさらなる詳細な説明については、図8を参照して後述する。
方向認識部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)に設置されているものとする。
CCDカメラ81L、および、81Rは、方向認識部101Bにより認識された方向の情報に基づいて、姿勢遷移機構部104により検出された方向に、頭部ユニット12が動かされることによって、CCDカメラ81Lおよび81Rにおいて、ユーザを撮像することができるようにすることが可能である。
モデル記憶部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から供給される状態情報が示す感情や、本能、成長の状態の値が所定の閾値以下または以上になったとき等に、ステートを遷移させる。
具体的には、例えば、トリガとして、音声認識部101Aにより認識された音声(コマンド)が供給された場合の行動決定機構部103の処理は、次の通りである。
即ち、状態認識情報処理部101の音声認識部101Aがコマンドの情報(音声信号)を示す状態認識情報を出力する場合、制御部101aは、音声認識部101A全体を制御して音声認識処理を開始させる。
すると、行動決定機構部103は、音声認識部101Aにより認識されたコマンドの情報を取得し、上述したような、例えば、「ユーザと会話する」や「ユーザに手を振る」などの、自分自身が決定した動作を行う(その行動の内容を、行動指令情報として、姿勢遷移機構部104に送出する)。
また、行動決定機構部103の処理結果は音声認識部101Aにフィードバックされる(提供される)。すると、音声認識部101Aは、提供されたその処理結果に基づいて音声認識タスクを切り替え、切り替えられた音声認識タスクに応じた処理を実行する。
なお、行動決定機構部103は、上述したように、状態認識情報処理部101からの状態認識情報だけでなく、モデル記憶部102における感情モデルや、本能モデル、成長モデルの値等にも基づいて、行動モデルにおけるステートを遷移させることから、同一の状態認識情報が入力されても、感情モデルや、本能モデル、成長モデルの値(状態情報)によっては、ステートの遷移先は異なるものとなる。
また、行動決定機構部103では、上述したように、ロボット1の頭部や手足等を動作させる行動指令情報の他、ロボット1に発話を行わせる行動指令情報も生成される。ロボット1に発話を行わせる行動指令情報は、音声合成部105に供給されるようになっており、音声合成部105に供給される行動指令情報には、音声合成部105に生成させる合成音に対応するテキスト等が含まれる。そして、音声合成部105は、行動決定機構部103から行動指令情報を受信すると、その行動指令情報に含まれるテキストに基づき、合成音を生成し、スピーカ72に供給して出力させる。
また、行動決定機構103では、発話に対応する、または、発話をしない場合に発話の代わりとなる言葉を、表示部55にプロンプトとしてテキスト表示させる。例えば、音声を検出して振り向いたときに、「誰?」とか「なぁに?」といったテキストを表示部55にプロンプトとして表示したり、または、スピーカ72より発生することができる。
姿勢遷移機構部104は、上述したように、行動決定機構部103から供給される行動指令情報に基づいて、ロボット1の姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これをサブ制御部63A乃至63Dに送出する。
換言すると、行動決定機構部103や姿勢遷移機構部104は、ロボット1の次の行動に応じたアプリケーションを動作させる(実行する)とも言える。このとき、行動決定機構部103や姿勢遷移機構部104は、異なるアプリケーションを1以上実行することができる。また、行動決定機構部103や姿勢遷移機構部104は、新しいアプリケーションを追加したり、不要なアプリケーション実行部を削除するたりすることができる。
詳細には、行動決定機構部103や姿勢遷移機構部104は、ロボット1の次の行動に応じて、あるアプリケーションの稼動を停止させたり、開始させたりすることができる。即ち、行動決定機構部103や姿勢遷移機構部104は、複数のアプリケーションを同時に動作させたり、アプリケーションの切り替えを行うことができる。
このとき、行動決定機構部103は、その処理結果を示す情報(現在動作中のアプリケーションを示す情報等)を音声認識部101Aに提供する。音声認識部101Aは、行動決定機構部103から提供されたその情報に基づいて音声認識タスクの切り替えを行い、切り替えられた音声認識タスクに応じた処理を実行する。なお、音声認識部101Aによる音声認識タスクの切り替え等の処理の詳細については、図9乃至図12のフローチャートを参照して後述する。
図8は、状態認識情報処理部101の音声認識部101Aの機能を示す機能ブロック図である。
制御部101aは、マイクロホン82から入力され、図示せぬAD変換部によりデジタル信号に変換された音声を特徴抽出部121に出力する。
特徴抽出部121は、入力された音声信号の特徴量を演算する。
制御部101aはまた、行動決定機構部103から処理結果を示す情報(現在動作中のアプリケーションの情報等)が提供されると、その情報に基づいて音声認識タスクの切り替えを行い、その切り替え結果(現在認識すべき音声認識タスク)を音声認識環境統合部124に通知する。
すると、音声認識環境統合部124は、現在認識すべき音声認識タスクに対応する音声認識環境(設定情報)を音声認識環境データベース123より得て、それらを統合する。
即ち、音声認識環境データベース123には、各音声認識タスクのそれぞれに対応した音声認識環境(設定情報)が保持されている。この音声認識環境データベース123に保持される音声認識環境(設定情報)の内容は特に限定されないが、ここでは、各音声認識タスクのそれぞれに対する、終了判定時間、正解確信度の閾値、および、マイクロホンの指向特性が個別に保持されているとする。
この場合、音声認識環境統合部124は、現在認識すべき音声認識タスクに対する、終了判定時間、マイクロホンの指向特性、および、正解確信度の閾値といった3つの情報のそれぞれを音声認識環境データベース123より得て、それらの3つの情報を1つにまとめ(統合し)、その統合結果を、現在認識すべき音声認識タスクに対応する音声認識環境(設定情報)として制御部101aに提供する。
さらに、本実施の形態の音声認識部101Aは、複数の音声認識タスクのそれぞれに対応する処理(複数の音声認識処理)を同時に実行することがあり、このような場合、音声認識環境統合部124は、制御部101aからの指示に従って、次のような処理を実行する。
即ち、音声認識環境統合部124は、現在認識すべき2以上の音声認識タスクのそれぞれに対する終了判定時間を音声認識環境データベース123より得て、それらの情報を統合し、その統合結果を、現在認識すべき2以上の音声認識タスクの同時実行における終了判時間として決定する。なお、このような統合処理の詳細例については、図12を参照して後述する。
同様に、音声認識環境統合部124は、現在認識すべき2以上の音声認識タスクのそれぞれに対するマイクロホンの指向特性を音声認識環境データベース123より得て、それらの情報を統合し、その統合結果を、現在認識すべき2以上の音声認識タスクの同時実行におけるマイクロホンの指向特性として決定する。なお、このような統合処理の詳細例については、図11を参照して後述する。
また、音声認識環境統合部124は、現在認識すべき2以上の音声認識タスクのそれぞれに対する正解確信度の閾値を音声認識環境データベース123より得て、それらの情報を統合し、その統合結果を、現在認識すべき2以上の音声認識タスクの同時実行における正解確信度の閾値として決定する。
なお、このような、2以上の音声認識処理(音声認識タスク)のそれぞれに対応した音声認識環境のそれぞれの設定の統合結果とは、2以上の音声認識処理(音声認識タスク)のそれぞれに対応した音声認識環境のそれぞれの設定に基づいて決定された、1つの設定(統合的な音声認識環境の設定)を指す。
例えば、本実施の形態においては、マイクロホンの指向特性の統合結果は、後述する図11に示されるように、認識すべき音声認識タスクの全てのマイクロホンの指向特性が「指向性」の場合には「指向性」となり、認識すべき音声認識タスクのうちの少なくとも1つのマイクロホンの指向特性が「無指向性」の場合には「無指向性」となる。
また、例えば、終了判定時間の統合結果は、後述する図12に示されるように、「認識すべき音声認識タスクのそれぞれの終了判定時間のうちの最長時間」となる。
そして、音声認識環境統合部124は、このような、終了判定時間、マイクロホンの指向特性、および、正解確信度の閾値のそれぞれの統合結果を1つにまとめ(統合し)、それを現在認識すべき2以上の音声認識タスクの同時実行における音声認識環境(設定情報)として制御部101aに提供する。
制御部101aは、このようにして音声認識環境統合部124より供給された設定情報に基づいて音声認識環境を設定する(切り替える)。そして、制御部101aは、切り替えられた音声認識環境の設定と、切り替えられた音声認識タスクとを認識処理制御部122に通知する。
認識処理制御部122は、制御部101aから通知された音声認識環境の設定に従って、制御部101aから通知された音声認識タスクに対応する音声認識処理を実行する(その制御を行う)。即ち、認識処理制御部122は、複数の言語モデル(語彙と文法)に対応する音声認識処理を並列に処理することができるように構成されており、1つの言語モデルに対応する音声認識処理を行うモジュールとして、それぞれ認識処理部131−1乃至131−4が設けられている。
認識処理制御部122においては、新たな言語モデルに対応した認識処理部を追加したり、不要になった認識処理部を削除することができる。また、各認識処理部に対して、認識処理を停止させたり、開始させたりすることができる。即ち、認識処理制御部122は、制御部101aより通知された音声認識タスクに応じて、複数の認識処理部を同時に駆動したり、認識処理部を切り替えたりすることによって、複数の言語モデルを同時に駆動したり、言語モデルを切り替えることができる。
換言すると、所定の音声認識タスクが選択されると(制御部101aより通知されると)、認識処理制御部122に設けられている認識処理部(図8の例では、認識処理部131−1乃至131−4)のうちの、その音声認識タスクに対応する認識処理部が駆動され、それ以外の認識処理部は停止される。そして、駆動された認識処理部のそれぞれは、制御部101aより通知された音声認識環境に従って、対応する音声認識処理を実行する。
詳細には、認識処理部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により、同じ音響モデルをすべての認識処理部131が共有して利用することができるように構成されており、これによって消費するメモリや音響モデルにおいて発生するスコア計算のための処理などを効率的に共有することが可能となる。
音響モデルデータベース132は、音声認識する音声の言語における個々の音素や音節などの音響的な特徴を表す音響モデルを記憶している。音響モデルとしては、例えば、HMM(Hidden Markov Model)が用いられる。辞書データベース142−1乃至142−4は、認識対象の各単語(語彙)について、その発音に関する情報(音韻情報)が記述された単語辞書を記憶している。文法データベース143−1乃至143−4は、辞書データベース142−1乃至142−4の単語辞書に登録されている各単語が、どのように連鎖する(つながる)かを記述した文法規則(言語モデル)を記憶している。文法規則としては、例えば、文脈自由文法(CFG)に基づく記述や、統計的な単語連鎖確率(N-gram)などが用いられる。
辞書データベース142−1乃至142−4にはそれぞれ異なる語彙に関する情報が蓄積されており、文法データベース143−1乃至143−4にもそれぞれ異なる文法に関する情報が蓄積されている。この辞書データベース142と文法データベース143の組み合わせにより言語モデルが決定される。
マッチング部141−1乃至141−4のそれぞれは、音響モデルデータベース132に記憶された音響モデル、辞書データベース142−1乃至142−4のそれぞれに記憶された辞書、および、文法データベース143−1乃至143−4のそれぞれに記憶された言語モデルを用いて、特徴抽出部121により演算された特徴量とマッチングする単語や文章をそれぞれ決定する。
マッチング部141−1乃至141−4のそれぞれにより決定された単語や文章、即ち、各音声認識結果のそれぞれは、制御部101aに供給される。制御部101aは、マッチング部141−1乃至141−4のそれぞれから供給された音声認識結果に基づいて、最終的な音声認識結果を決定し、それを状態認識情報として、モデル記憶部102および行動決定機構部103に提供する。
ただし、認識処理部131−1乃至131−4のそれぞれの認識結果のうちの、正解確信度が閾値未満の認識結果はリジェクト(破棄)され、制御部101aには供給されない。即ち、正確には、制御部101aは、マッチング部141−1乃至141−4のそれぞれの音声認識結果のうちの供給された音声認識結果(リジェクトされていない音声認識結果)に基づいて、最終的な音声認識結果を決定し、それを状態認識情報として、モデル記憶部102および行動決定機構部103に提供する。
次に、図9のフローチャートを参照して、図7のメイン制御部61が実行する音声コマンドによる動作の処理について説明する。
ステップS1において、音声認識部101Aの制御部101a(図8)は、初期設定を行う。即ち、制御部101aは、例えば、現在の音声認識タスクとして所定の1つを設定する。そして、制御部101aは、現在の(初期設定された)音声認識タスクに対応する音声認識環境(設定情報)を音響認識環境統合部124より取得し、その設定情報に基づいて、現在の音声認識タスクに対応する音声認識環境を設定する。即ち、いまの場合、終了判定時間、正解確信度の閾値、および、マイクロホンの指向特性のそれぞれが設定される。
ステップS2において、制御部101aは、マイクロホン82−1乃至82−N(図7)を介して、音声が入力されたか否か(音声が検出されたか否か)を判定する。
ステップS2において、音声が入力されていないと判定された場合、処理はステップS2に戻され、音声が入力されたか否かが再度判定される。即ち、制御部101aは、音声が入力されることを常時監視している。
その後、ステップS2において、音声が入力されたと判定された場合、即ち、ユーザ(発話者)がロボット1に対して何か音声によるコマンドを入力しようと声をかけたとみなされた場合、その処理は、ステップS3に進む。
ステップS3において、音声認識部101Aは、音声認識処理を実行する。
この音声認識処理の詳細な例が図10のフローチャートに示されている。そこで、以下、図10のフローチャートを参照して、音声認識処理について説明する。
ステップS21において、音声認識部101Aの特徴抽出部121は、デジタル信号としての音声信号を、適当な時間間隔で周波数分析行うなどして、スペクトルや、その他の音声の音響的特徴を表すパラメータに変換し、特徴量として抽出する。
その後、処理はステップS22に進む。なお、ステップS22乃至ステップS28の処理(以下、ステップS22乃至ステップS28の処理を単語系列認識処理とも称する)は、認識処理部131−1乃至131−4により並列に実行される。正確には、後述するように、認識処理部131−1乃至131−4のうちの、現在の音声認識タスクに対応する認識処理部の各単語系列認識処理のそれぞれが並列に実行される。ただし、以下においては、認識処理部131−1乃至131−4の全ての単語系列認識処理のそれぞれが並列に実行されるとして説明する。
ステップS22において、認識処理部131−1乃至131−4は、特徴抽出部121から出力された音声の特徴量を音響モデルデータベース132とマッチングし、音素、音節を判定する。
ステップS23において、認識処理部131−1乃至131−4は、音素、音節を辞書データベース142−1乃至142−4、および文法データベース143−1乃至143−4とマッチングして、音響スコアと言語スコアを演算する。
即ち、認識処理部131−1乃至131−4は、入力された特徴量がもつ音響的なパターンを、辞書データベース142に含まれる各単語に対応する音響的な標準パターンと比較し、音響的な評価値を、音響スコアとして演算する。また、文法としてたとえばバイグラムが用いられる場合には、認識処理部131−1乃至131−4は、直前の単語との連鎖確率に基づく各単語の言語的な確からしさを、文法データベース143に基づいて数値化し、これを言語スコアとして演算する。
ステップS24において、認識処理部131−1乃至131−4は、音響スコアと言語スコアを総合して最も評価の高い単語列を決定し、ステップS25において、決定された単語列の正解確信度を求める。
ステップS26において、認識処理部131−1乃至131−4は、決定された単語列の正解確信度が閾値以上であるか否かを判定する。
ここで、注目すべき点は、このステップS26の処理において使用される閾値(正解確信度の閾値)は、上述したステップS1(図9)の処理で初期設定された値、または、後述するステップS7の処理(図9)の処理で設定された値である点である。即ち、このステップS26の処理において使用される閾値は、一定値ではなく、現在使用されている音声認識タスクに応じて可変される点である。
ステップS26において、正解確信度が閾値以上であると判定した場合、認識処理部131−1乃至131−4は、ステップS27において、決定された単語列を制御部101aに出力する。
これに対して、ステップS26において、正解確信度が閾値未満である(以上ではない)と判定した場合、認識処理部131−1乃至131−4は、ステップS28において、決定された単語列の出力を禁止する(単語列をリジェクトする)。
このようにして、認識処理部131−1乃至131−4のそれぞれにより認識された音声認識結果(単語列)のうちの、正解確信度が閾値以上の単語列が採用され(制御部101aに提供され)、正解確信度が閾値未満の単語列がリジェクトされる(出力が禁止される)と、処理はステップS29に進められる。
即ち、ステップS29において、制御部101aは、認識処理部131−1乃至131−4により決定された単語列のうちの、出力された1以上の単語列(正解確信度が閾値以上の単語列)に基づいて、最終的な認識結果である単語列を決定し、それをコマンドとして行動決定機構部103とモデル記憶部102(図7)に出力する。
このように、単語系列認識処理(ステップS22乃至S28の処理)は、それぞれ異なる言語モデルをもつ複数の認識処理部(いまの場合、認識処理部131−1乃至131−4)により並列に実行され得るため、同じ音声を入力しても、認識処理部131−1乃至131−4の音声認識結果が異なる場合もあり得る。このため、制御部101aは、ステップS29の処理で、複数の音声認識結果を統合する(複数の音声認識結果の中から1つを選択する)のである。
ただし、ステップS29の処理として、音響スコアと言語スコアとの総合スコアが最も高い単語列を、最終的な認識結果として選択する処理を実行した場合、複数の言語モデルを同時に駆動したとき、音声認識の性能が低下する恐れがあるという問題が発生してしまう。そこで、この問題を解決するために、本発明の音声認識装置は、ステップS29の処理として、例えば、次のような処理を実行することができる。
即ち、ある1つのアプリケーションに対応して、2つの認識処理部(例えば、認識処理部131−1と認識処理部131−2)が駆動している場合を考える。例えば、ロボット対話システムにおいて、ユーザと雑談を行うアプリケーションが動作しているとし、このアプリケーションに対応した言語モデルとして、大語彙でトライグラム文法を用いた大語彙連続音声認識の言語モデルをもつ認識処理部131−1と、小語彙のコマンドだけ受け付ける孤立単語認識の言語モデルをもつ認識処理部131−2が駆動しているとする。
音声が入力されると、認識処理部131−1,131−2で単語系列認識処理(ステップS22乃至S28の処理)が行われ、単語列が認識される。ここで、各単語に音響スコアと言語スコアが与えられることになる。しかしながら、大語彙連続音声認識の言語モデルをもつ認識処理部131−1の認識結果に対しては、各単語にトライグラム文法で与えられる言語スコアが与えられるが、孤立単語認識の言語モデルをもつ認識処理部131−2の認識結果に対しては、言語スコアが利用されず、言語スコアが与えられない。
この場合、音響スコアと言語スコアを総合したスコアを用いると、それぞれの単語列を比較することが難しくなるが、図8の例では、2つの認識処理部131−1,131−2は、同じ音響モデル(音響モデルデータベース132に記憶されている音響モデル)を用いているので、同じような音響スコアの計算をさらに行っているとすれば、音響スコアに関して比較することができる。
そこで、制御部101aは、ステップS29の処理として、即ち、この音響スコアを用いて、2つの認識処理部131−1,131−2のうちの何れの認識結果を選択するのかを判断する処理として、それぞれの音響スコアに対して所定の値を乗じて重み付けをする処理を実行することができる。即ち、一般的な表現に改めると、1つのアプリケーションに対応して、複数のそれぞれ異なる言語モデルをもつ認識処理部が駆動され、複数の認識結果が得られる場合、上述したように、その認識結果の単語列に付与された音響スコアに対して、言語モデルに対応した所定の値を重みとして乗じた後に、スコアの評価の高い方を最終的な認識結果とする処理を、ステップS29の処理として適用することができる。これにより、複数の言語モデルを駆動した場合に生じる音声認識の性能低下を大きく改善することができる。
なお、以上では、ステップS29の処理として、音響スコアに所定の値を乗じることにより重み付けを行う処理について示したが、言語スコアに重み付けを行う処理、または音響スコアと言語スコアを統合したスコアに重み付けを行う処理を適用してもよい。さらに、予め設定された所定の値(オフセット値)を音響スコア、言語スコア、または音響スコアと言語スコアを統合したスコアに加算する処理を適用することもできる。
また、以上では、音響スコア、言語スコアまたは音響スコアと言語スコアを統合したスコアに対して、言語モデルに対応した所定の値を乗じたり、加算したりすることにより、重み付けを行う処理について示したが、実行されるアプリケーションに基づいて、所定の値を変化させ、音響スコア、言語スコア、または音響スコアと言語スコアを統合したスコアに対して、乗じたり、加算したりすることにより、アプリケーションの特性に応じた重み付けを行う処理を適用することもできる。
さらに、入力された音声の雑音の推定結果に基づいて、音響スコア、言語スコア、または音響スコアと言語スコアを統合したスコアに対して、乗じたり、加算したりする所定の値を変化させ、雑音の大きさに応じた重み付けを行う処理の適用も可能であり、また、入力された音声の発話者(ユーザ)との距離の推定結果に基づいて、音響スコア、言語スコア、または音響スコアと言語スコアを統合したスコアに対して、乗じたり、加算したりする所定の値を変化させ、ユーザとマイクロホンの間の距離に応じた重み付けを行う処理の適用も可能である。
また、上述したような複数の異なる言語モデルをもつ認識処理部131−1乃至131−4と制御部101aの認識結果評価機能(ステップS29の処理に対応する機能)を組み合わせた音声認識処理を実行することによって、ある言語モデルの認識性能を高めることもできる。特に、統計的な言語モデルに文脈自由文法の言語モデルを組み合わせることで、統計的な言語モデルを単独で用いた場合に得られる認識性能より高い性能を得ることが可能となる。
一般に、統計的な言語モデルを用いた大語彙連続音声認識では、語彙および文法の制約が緩くなることで、広い範囲の音声を認識出来る反面、全体に認識率は低くなる。一方、文脈自由文法によって語彙および文法に強い制約が与えられた言語モデルでは、認識できる音声は制約されるが、その制約下で発声される音声に対しては、高い認識率を得ることができる。
例えば、語彙数6万のトライグラム文法の大語彙連続音声認識を単独で駆動した場合、その単語正解率は81.12%であった。一方、語彙数50の孤立単語認識を単独で駆動した場合、その単語正解率は98.25%であった。この2つの認識率の差をみれば、大語彙連続音声認識のトライグラム文法では、孤立単語認識に比べて語彙および文法の制約が緩いことから、孤立単語認識の語彙および文法の制約下で発声される音声に対して、同じような高い認識率を得ることは難しいと容易に予想できる。
そこで、上述したように2つの言語モデルを認識処理部131−1,131−2で同時に駆動させ、制御部101aが重みを調整を行うことで、大語彙連続音声認識の認識率をほとんど落とすことなく、孤立単語認識の語彙および文法の制約下で発声される音声に対して高い認識率を得ることができる。即ち、トライグラム文法の大語彙連続音声認識を単独で駆動する場合と比べると、総合的な認識性能は向上する。
この例では、大語彙連続音声認識の言語モデルをもつ認識処理部131−1と孤立単語認識の言語モデルをもつ認識処理部131−2を組み合わせることについて説明したが、同じように、認識処理部131−1乃至131−4のうちの、大語彙連続音声認識の言語モデルをもつ認識処理部と、文脈自由文法に与えられる連続単語認識の言語モデルをもつ認識処理部とを同時に駆動させ、制御部101aによる認識結果評価処理を行えば、総合的な認識性能を向上させることができる。即ち、大語彙連続音声認識によって広い範囲
の音声を認識できると同時に、文脈自由文法の制約下の音声に対しては高い認識性能を得ることができるようになる。
以上、図10のフローチャートを参照して、音声認識処理の詳細例について説明したが、このような音声認識処理(図9のステップS3の処理)が完了すると、次のような音声認識結果が得られることになる。即ち、例えば、ユーザが「今日はいい天気ですね。」と発声したとき、「今日」、「は」、「いい」、「天気」、「ですね」のような単語の系列が音声認識結果として得られることになる。このようにして、音声認識処理(ステップS3の処理)で、入力された音声から単語系列が認識されると、次に、図9のステップS4の処理が実行される。
即ち、ステップS4において、行動決定機構部103と姿勢遷移機構部104は、状態認識情報処理部101の音声認識部101Aより供給される単語系列からなるコマンド(音声)に対応する動作を実行する。即ち、行動決定機構部103は、供給されたコマンド基づいて次の行動を決定して、その結果を姿勢遷移機構部104に出力する。すると、姿勢遷移機構部104は、決定された行動に対応する動作を各種のアクチュエータを制御してロボット1を行動させる。
このとき、行動決定機構部103はまた、その処理結果を示す情報(現在動作中のアプリケーションの情報等)を、音声認識部101Aの制御部101aに供給する。
すると、ステップS5において、音声認識部101Aの制御部101aは、行動決定機構部103から供給されたその情報に基づいて、音声認識タスクの変更は必要であるか否かを判定する。
ステップS5において、音声認識タスクの変更は必要であると判定した場合、制御部101aは、音声認識タスクを変更し、ステップS6において、各認識処理部131−1乃至131−4のそれぞれに対する駆動または停止を行う。正確には、ステップS6において、制御部101aが認識処理部制御部122に対して指令を出し、認識処理制御部122が、その指令を受けて、各認識処理部131−1乃至131−4のそれぞれに対する駆動または停止を行う。
これにより、認識処理部131−1乃至131−4のうちの、変更された音声認識タスクに対応する認識処理部が駆動され、それ以外の認識処理部が停止される。従って、次の音声認識処理(次のステップS3の処理)では、認識処理部131−1乃至131−4のうちの、このステップS6の処理で駆動された認識処理部のみが対応する処理を実行することになる。
具体的には、例えば、ロボット1が、ユーザとの雑談、歌唱、および踊りのうちのいずれかを実行する場合を想定する。このとき、ロボット1では、雑談用、歌唱用、および踊り用のアプリケーションのそれぞれが起動している。また、ロボット1は、ユーザとの雑談用、歌唱用、および踊り用に、それぞれ1つずつ言語モデルを有しており、認識処理部131−1乃至131−4のうちの、それぞれの言語モデルに対応した認識処理部が駆動されるものとする。さらに、ロボット1は、全ての動作に共通に利用される言語モデルを1つ有しており、認識処理部131−1乃至131−4のうちの、この言語モデルに対応した認識処理部が駆動されているとする。なお、全ての動作に共通に利用される言語モデルとは、例えば「止まれ」などのように、重要度が大きいコマンドなどを認識するための言語モデルを指す。
ここでは、例えば、認識処理部131−1が全ての動作に共通に利用される言語モデルをもち、認識処理部131−2が雑談用の言語モデルをもち、認識処理部131−3が歌唱用の言語モデルをもち、認識処理部131−4が踊り用の言語モデルをもつものとする。
このとき、ステップS4の処理で、ロボット1が実行する動作が変更し、それに伴い、アプリケーションも変更された場合、制御部101aは、ステップS5において、音声認識タスクの変更が必要であると判定し、ロボット1が現在実行中のアプリケーションに対応する音声認識タスクに切り替える。
例えば、いま、雑談用のアプリケーションが実行されている状態で、ユーザが「踊りを踊って」とコマンドを発したとする。
この場合、ステップS4の処理で踊り用のアプリケーションに切り替わることになるが、その時点(ステップS5の処理の開始時点)では、認識処理部131−1乃至131−4の駆動状態は、雑談用のアプリケーションに対応する状態のままである。即ち、全ての動作に共通に利用される言語モデルをもつ認識処理部131−1と、雑談用の言語モデルをもつ認識処理部131−2とがまだ駆動されており、それ以外の認識処理部131−3,131−4は停止されている状態のままである。
換言すると、ステップS5の処理の開始時点で実行されている音声認識タスクは、雑談用のアプリケーションに対応する音声認識タスク、即ち、全ての動作に共通に利用される言語モデルに対応する音声認識タスク(認識処理部131−1に対応する音声認識タスク)と、雑談用の言語モデルに対応する音声認識タスク(認識処理部131−2に対応する音声認識タスク)とのままである。
そこで、制御部101aは、ステップS5において、音声認識タスクの変更が必要であると判定し、これから実行すべき音声認識タスクとして、踊り用のアプリケーションに対応する音声認識タスク、即ち、全ての動作に共通に利用される言語モデルに対応する音声認識タスク(認識処理部131−1に対応する音声認識タスク)と、踊り用の言語モデルに対応する音声認識タスク(認識処理部131−4に対応する音声認識タスク)とに切り替える。
そして、制御部101aは、ステップS6において、認識処理部131−1乃至131−4のうちの、これから実行すべき音声認識タスクに対応する認識処理部、即ち、認識処理部131−1,131−4を駆動させ、それ以外の認識処理部131−2,131−3を停止させる。正確には、制御部101aがそのような指令を認識処理制御部122に対して発行し、認識処理制御部122が、その指令を受けて、各認識処理部131−1乃至131−4のそれぞれの駆動または停止の処理を実行する。
続いて、ステップS7において、制御部101aは、音声認識環境の設定を、切り替えられた音声認識タスクに対応する設定に切り替える。正確には、制御部101aは、切り替えられた音声認識タスクを音声認識環境統合部124に通知する。音声認識環境統合部124は、制御部101aから通知された(制御部101aにより切り替えられた)音声認識タスクに対応する音声認識環境(設定情報)を音声認識環境データベース123から取得し、それらを統合して、その統合結果を制御部101aに提供する。制御部101aは、音声認識環境統合部124から提供された統合結果(設定情報)に基づいて、音声認識環境を設定する。
具体的には、例えば、本実施の形態においては、音声認識環境として、マイクロホンの指向特性、(音声区間検出の)終了判定時間、および、正解確信度の閾値といった3つの情報が使用されているので、ステップS7の処理で、これらの3つの情報のそれぞれが設定される(切り替えられる)ことになる。
なお、以下、このようなステップS7の処理を、音声認識環境変更処理と称する。
即ち、本実施の形態の音声認識環境変更処理においては、マイクロホンの指向特性を設定(変更)する処理(以下、マイクロホンの指向特性に対する音声認識環境変更処理と称する)、終了判定時間を設定(変更)する処理(以下、終了判定時間に対する音声認識環境変更処理と称する)、および、正解確信度の閾値を設定(変更)する処理(以下、正解確信度の閾値に対する音声認識環境変更処理と称する)のそれぞれが並列に実行される。
以下、マイクロホンの指向特性に対する音声認識環境変更処理、終了判定時間に対する音声認識環境変更処理、および、正解確信度の閾値に対する音声認識環境変更処理のそれぞれの詳細について、その順番に個別に説明していく。
はじめに、マイクロホンの指向特性に対する音声認識環境変更処理の詳細について説明する。
ここでは、マイクロホンの指向特性の種類は、指向性と無指向性との2つの種類のみとする。この場合、マイクロホンの指向特性に対する音声認識環境変更処理として、例えば、無指向性を必要とする音声認識タスクが1つでも存在すれば無指向性を選択する処理の実行が可能である。
このようなマイクロホンの指向特性に対する音声認識環境変更処理の例が図11のフローチャートに示されている。そこで、以下、図11を参照して、マイクロホンの指向特性に対する音声認識環境変更処理の例について説明する。
はじめに、ステップS41において、音声認識環境統合部124は、実行すべきタスクの全てを調べたか否かを判定する。
実行すべきタスクとは、上述したステップS5(図5)の処理でタスクの変更が必要であると判定された際に制御部101aにより変更された音声認識タスク、即ち、制御部101aから音声認識環境統合部124に通知された音声認識タスクを指す。具体的には、例えば、上述した例では、踊り用のアプリケーションに対応する音声認識タスク、即ち、全ての動作に共通に利用される言語モデルに対応する音声認識タスク(認識処理部131−1に対応する音声認識タスク)と、踊り用の言語モデルに対応する音声認識タスク(認識処理部131−4に対応する音声認識タスク)とが、実行すべきタスクとして取り扱われる。
いまの場合、実行すべきタスクのうちの何れも調べられていないので、音声認識環境統合部124は、ステップS41において、実行すべきタスクの全てを調べていないと判定し、ステップS42において、調査対象のタスク(音声認識タスク)を切り替え、ステップS43において、その調査対象のタスクは無指向性を必要とするか否かを判定する。
ステップS43において、調査対象のタスクは無指向性を必要としないと判定された場合、処理はステップS41に戻され、それ以降の処理が繰り返される。即ち、実行すべきタスクのうちの、まだ調べられていない音声認識タスクのそれぞれに対して、無指向性を必要とするか否かが判定され、無指向性を必要とする音声認識タスクが1つでも存在すれば、その音声認識タスクが調査対象のタスクとされているときのステップS43の処理で、調査対象のタスクは無指向性を必要とすると判定される。
すると、音声認識環境統合部124は、ステップS44において、無指向性を設定し、マイクロホンの指向特性に対する音声認識環境変更処理を終了させる。正確には、ステップS44において、音声認識環境統合部124は、マイクロホンの指向特性の設定情報として「無指向性」を示す情報を制御部101aに提供する。すると、制御部101aは、その情報に基づいて、マイクロホンの指向特性として「無指向性」を設定する。
このように、実行すべきタスクの中に、無指向性を必要とする音声認識タスクが少なくとも1つでも存在する場合、ステップS44の処理で、無指向性が設定(選択)されることになる。即ち、マイクロホンの指向特性の統合結果は「無指向性」となる。具体的には、例えば、上述した例では、全ての動作に共通に利用される言語モデルに対応する音声認識タスク(認識処理部131−1に対応する音声認識タスク)と、踊り用の言語モデルに対応する音声認識タスク(認識処理部131−4に対応する音声認識タスク)とのうちの少なくとも一方が無指向性を必要とする場合、ステップS44の処理で、「無指向性」が設定(選択)されることになる。
これに対して、実行すべきタスクの中に、無指向性を必要とする音声認識タスクが1つも存在しない場合、音声認識環境統合部124は、ステップS41乃至S43の処理を繰り返し、実行すべきタスクの全てを調べ終わると、ステップS41において、実行すべきタスクの全てを調べたと判定し、ステップS45において、指向性を設定し、マイクロホンの指向特性に対する音声認識環境変更処理を終了させる。正確には、ステップS45において、音声認識環境統合部124は、マイクロホンの指向特性の設定情報として「指向性」を示す情報を制御部101aに提供する。すると、制御部101aは、その情報に基づいてマイクロホンの指向特性として「指向性」を設定する。
このように、実行すべきタスクの中に、無指向性を必要とする音声認識タスクが1つも存在しない場合、ステップS45の処理で、「指向性」が設定(選択)されることになる。即ち、マイクロホンの指向特性の統合結果は「指向性」となる。具体的には、例えば、上述した例では、全ての動作に共通に利用される言語モデルに対応する音声認識タスク(認識処理部131−1に対応する音声認識タスク)と、踊り用の言語モデルに対応する音声認識タスク(認識処理部131−4に対応する音声認識タスク)との何れもが無指向性を必要としない場合、ステップS45の処理で、「指向性」が設定(選択)されることになる。
なお、図11の例は、音声認識タスクが取り得るマイクロホンの指向性は正面しか存在しないような場合における、マイクロホンの指向特性に対する音声認識環境変更処理の例である。ただし、実際には、移動する発話者(ユーザ)に向けてマイクロホンの指向性のビーム方向を移動するような音声認識タスクや、様々な方向を指定する必要のある音声認識タスクが存在する場合もある。このような場合、マイクロホンの指向特性に対する音声認識環境変更処理として、例えば、実行すべきタスク(音声認識タスク)の全てが指向性でビーム方向が一致する場合にのみ「指向性」を選択し、それ以外の場合は「無指向性」を選択する処理等を実行すればよい。
次に、終了判定時間に対する音声認識環境変更処理の詳細について説明する。
終了判定時間に対する音声認識環境変更処理として、例えば、実行すべきタスク(音声認識タスク)の全ての終了判定時間のうちの最も長い時間を、実行すべきタスクの全てに適用される終了判定時間(即ち、終了判定時間の統合結果であって、以下、総合終了判定時間と称する)として選択する処理の実行が可能である。
このような終了判定時間に対する音声認識環境変更処理の例が図12のフローチャートに示されている。そこで、以下、図12を参照して、終了判定時間に対する音声認識環境変更処理の例について説明する。
はじめに、ステップS61において、音声認識環境統合部124は、総合判定時間を0に設定する。
ステップS62において、音声認識環境統合部124は、実行すべきタスクの全てを調べたか否かを判定する。
実行すべきタスクとは、マイクロホンの指向特性に対する音声認識環境変更処理(図11)と同様に、上述したステップS5(図5)の処理でタスクの変更が必要であると判定された際に制御部101aにより変更された音声認識タスク、即ち、制御部101aから音声認識環境統合部124に通知された音声認識タスクを指す。具体的には、例えば、上述した例では、踊り用のアプリケーションに対応する音声認識タスク、即ち、全ての動作に共通に利用される言語モデルに対応する音声認識タスク(認識処理部131−1に対応する音声認識タスク)と、踊り用の言語モデルに対応する音声認識タスク(認識処理部131−4に対応する音声認識タスク)とが、実行すべきタスクとして取り扱われる。
いまの場合、実行すべきタスクのうちの何れも調べられていないので、音声認識環境統合部124は、ステップS62において、実行すべきタスクの全てを調べていないと判定し、ステップS63において、調査対象のタスク(音声認識タスク)を切り替え、ステップS64において、その調査対象のタスクの終了判定時間は、総合終了判定時間より長いか否かを判定する。
いまの場合、総合終了判定時間が0であるので、音声認識環境統合部124は、ステップS64において、その調査対象のタスクの終了判定時間は、総合終了判定時間より長いと判定し、ステップS65において、調査対象のタスクの終了判定時間を、総合終了判定時間として設定する。
その後、処理はステップS62に戻され、それ以降の処理が繰り返される。
具体的には、例えば、上述した例では、実行すべきタスクは、全ての動作に共通に利用される言語モデルに対応する音声認識タスク(認識処理部131−1に対応する音声認識タスク)と、踊り用の言語モデルに対応する音声認識タスク(認識処理部131−4に対応する音声認識タスク)との2つの音声認識タスクであるので、最初に、それらの2つの音声認識タスクのうちのいずれか一方が調査対象のタスクとされて、ステップS65において、その終了判定時間が総合終了判定時間として設定される。
その後、処理はステップS62に戻され、実行すべきタスクの全てを調べていないと判定された後、それらの2つの音声認識タスクのうちの他方が調査対象のタスクとされて、ステップS64において、調査対象のタスクの終了判定時間は、総合終了判定時間より長いか否かが判定される。
ステップS64において、調査対象のタスクの終了判定時間は、総合終了判定時間より長いと判定された場合、ステップS65において、調査対象のタスクの終了判定時間が、総合終了判定時間として設定される。即ち、総合終了判定時間は更新されることになる。
これに対して、ステップS64において、調査対象のタスクの終了判定時間は、総合終了判定時間より短い(長くない)と判定された場合、ステップS65の処理は実行されない。即ち、総合終了判定時間は更新されないことになる。
その後、処理はステップS62に戻され、実行すべきタスクの全てを調べたと判定され、終了判定時間に対する音声認識環境変更処理は終了となる。
このように、実行すべきタスクのそれぞれに対してステップS62乃至S65の処理が繰り返し実行されることで、実行すべきタスク(音声認識タスク)の全ての終了判定時間のうちの最も長い時間が、総合終了判定時間として設定される。正確には、実行すべきタスク(音声認識タスク)の全ての終了判定時間のうちの最も長い時間が、終了判定時間の統合結果として音声認識環境統合部124により決定され、その決定結果(総合終了判定時間)が制御部101aに通知される。そして、制御部101aにより、実行すべきタスクに対応する終了判定時間として、通知された「総合終了判定時間」が設定されるのである。
なお、図12のフローチャートに示される処理は、大語彙連続音声認識などの文章が途切れずに入力されることを主目的としており、このため、離散単語認識の応答速度が多少劣化する場合もある。従って、音声認識環境統合部124(制御部101a)は、終了判定時間に対する音声認識環境変更処理として、その目的に応じて図12の例とは異なる処理を実行することもできる。
次に、正解確信度の閾値に対する音声認識環境変更処理の詳細について説明する。
上述したように、認識処理部131−1乃至131−4のそれぞれが認識結果(単語列)をリジェクトするか否かを判断するために必要な(上述した図10のステップS26乃至S28の処理を実行するために必要な)正解確信度の閾値のそれぞれは、制御部101aから提供される。
即ち、制御部101aは、正解確信度の閾値に対する音声認識環境変更処理の処理として、音声認識環境統合部124より実行すべきタスク(音声認識タスク)に対応する正解確信度の閾値(設定情報)を取得し、その設定情報に基づいて、認識処理部131−1乃至131−4のうちの駆動している認識処理部(図9のステップS6参照)のそれぞれが利用する正解確信度の閾値を設定する。
具体的には、例えば、上述した例では、実行すべきタスクは、全ての動作に共通に利用される言語モデルに対応する音声認識タスク(認識処理部131−1に対応する音声認識タスク)と、踊り用の言語モデルに対応する音声認識タスク(認識処理部131−4に対応する音声認識タスク)との2つの音声認識タスクであるので、認識処理部131−1,131−4が利用する正解確信度の閾値が設定され、認識処理部131−1,131−4のそれぞれに供給される。
図9に戻り、このような音声認識環境変更処理(ステップS7の処理)が実行されると、処理はステップS8に進められる。
また、ステップS5において、タスクの変更は必要ないと判定された場合も、ステップS6とステップS7の処理は実行されずに、即ち、認識処理部131−1乃至131−4の状態(駆動または停止の状態)は保持され(更新されずに)、かつ、音声認識環境の設定も保持されたまま(更新されずに)、処理はステップS8に進められる。
そして、ステップS8において、制御部101aは、処理の終了が指示されたか否かを判定する。
ステップS8において、処理の終了がまだ指示されていないと判定された場合、処理はステップS2に戻され、それ以降の処理が繰り返される。
これに対して、ステップS8において、処理の終了が指示されたと判定された場合、音声コマンドによる動作の処理は終了となる。
以上のように、ユーザの発話するコマンド等によりアプリケーションの切り替えが発生した場合(音声認識タスクの変更が必要になった場合)、ステップS5乃至S7の処理で音声認識タスクの切り替え、認識処理部131−1乃至131−4の状態(駆動または停止の状態)の切り替え、および、音声認識環境の切り替え(統合や再設定)が行われる。
このような処理により、音声認識タスクの様々な組み合わせにおいて最適な音声認識の環境を保てる、という効果を奏することが可能になる。
即ち、複数の音声認識タスクを持つ音声認識システムを搭載したシステム(例えば、図1の自律ロボット1)のようなシステムにおいて、そのアプリケーションは自由に音声認識タスクを組み合わせることが可能になり、アプリケーション開発の自由度が増す、という効果を奏することが可能になる。
さらに、単純な音声認識タスクの組み合わせを用いて複雑な音声認識タスクを形成できるため、音声認識タスクに関連する環境パラメータのチューニングなどの開発作業が軽減される、という効果も奏することが可能になる。
ところで、上述した一連の処理は、ハードウエアにより実行させることもできるが、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行させることが可能な、例えば汎用のパーソナルコンピュータなどに記録媒体からインストールされる。
図13は、図6のロボット1の電気的な内部構成をソフトウエアにより実現する場合のパーソナルコンピュータの一実施の形態の構成を示している。パーソナルコンピュータのCPU201は、パーソナルコンピュータの全体の動作を制御する。また、CPU201は、バス204および入出力インタフェース205を介してユーザからキーボードやマウスなどからなる入力部206から指令が入力されると、それに対応してROM(Read Only Memory)202に格納されているプログラムを実行する。あるいはまた、CPU201は、ドライブ210に接続された磁気ディスク221、光ディスク222、光磁気ディスク223、または半導体メモリ224から読み出され、記憶部208にインストールされたプログラムを、RA M(Random Access Memory)203にロードして実行する。これにより、上述した全方位画像データ生成部13の機能が、ソフトウエアにより実現されている。さらに、CPU201は、通信部209を制御して、外部と通信し、データの授受を実行する。
プログラムが記録されている記録媒体は、図13に示すように、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク221(フレキシブルディスクを含む)、光ディスク222(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disk )を含む)、光磁気ディスク223(MD(Mini-Disc)を含む)、もしくは半導体メモリ224などよりなるパッケージメディアにより構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されているROM202や、記憶部208に含まれるハードディスクなどで構成される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。
1 ロボット, 61 メイン制御部, 82 マイクロホン, 101 状態認識情報処理部, 101A 音声認識部, 101a 制御部, 103 行動決定機構部, 121 特徴抽出部, 122 認識処理制御部, 123 音声認識環境データベース, 124 音声認識環境統合部, 131−1乃至131−4 認識処理部