(57)【特許請求の範囲】
【請求項１】
入力音声を音声認識する音声認識処理を行う音声認識装置であって、
前記入力音声を音響分析し、その入力音声の特徴量を抽出する分析手段と、
前記分析手段が出力する特徴量を記憶する特徴量記憶手段と、
前記特徴量記憶手段から前記特徴量を読み出し、前記特徴量を対象とするマッチング処理を、ビームサーチ法による仮説の枝刈りをしながら行うマッチング手段と、
前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに基づいて、前記マッチング処理を管理する管理手段と、
前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記ビーム幅、前記特徴量の残量、及び、前記リソースを対応付けた管理テーブルを記憶するテーブル記憶手段と
を備え、
前記管理手段は、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記ビーム幅で、枝刈りを行うように、前記マッチング処理を管理する
音声認識装置。
【請求項２】
前記マッチング手段は、
前記入力音声の音声認識結果の候補となる仮説を生成し、
前記仮説の音声認識結果としての尤度を、前記特徴量を用いて計算し、
前記尤度が最も高い仮説を、前記音声認識結果として出力する
処理を、前記マッチング処理として行い、
前記仮説を記憶する仮説記憶手段をさらに備え、
前記管理手段は、前記特徴量記憶手段に記憶された時間的に最も後行する前記特徴量の時刻と、前記仮説記憶手段に記憶された時間的に最も先行する仮説の終端の時刻との差を求め、その差を、前記マッチング処理に用いる特徴量の残量として用いて、前記マッチング処理を管理する
請求項１に記載の音声認識装置。
【請求項３】
前記管理テーブルは、前記入力音声の音声認識結果の候補となる仮説の尤度の演算の演算量が異なる複数の音響モデルそれぞれを用い、前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記音響モデル、前記ビーム幅、前記特徴量の残量、及び、前記リソースを対応付けたテーブルであり、
前記管理手段は、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記音響モデルを用いるように、前記マッチング処理を管理する
請求項１に記載の音声認識装置。
【請求項４】
前記管理テーブルは、前記入力音声の音声認識結果の候補となる仮説を構成する単語が登録されている、異なる単語数の複数の単語辞書それぞれを用い、前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記単語辞書、前記ビーム幅、前記特徴量の残量、及び、前記リソースを対応付けたテーブルであり、
前記管理手段は、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記単語辞書を用いるように、前記マッチング処理を管理する
請求項１に記載の音声認識装置。
【請求項５】
入力音声を音声認識する音声認識処理を行う音声認識装置の音声認識方法であって、
前記音声認識装置は、
前記入力音声を音響分析し、その入力音声の特徴量を抽出する分析手段と、
前記分析手段が出力する特徴量を記憶する特徴量記憶手段と、
前記特徴量記憶手段から前記特徴量を読み出し、前記特徴量を対象とするマッチング処理を、ビームサーチ法による仮説の枝刈りをしながら行うマッチング手段と、
前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに基づいて、前記マッチング処理を管理する管理手段と、
前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記ビーム幅、前記特徴量の残量、及び、前記リソースを対応付けた管理テーブルを記憶するテーブル記憶手段と
を備え、
前記管理手段が、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記ビーム幅で、枝刈りを行うように、前記マッチング処理を管理するステップを備える
音声認識方法。
【請求項６】
入力音声を音声認識する音声認識処理を、コンピュータに行わせるプログラムであって、
前記入力音声を音響分析し、その入力音声の特徴量を抽出する分析手段と、
前記分析手段が出力する特徴量を記憶する特徴量記憶手段と、
前記特徴量記憶手段から前記特徴量を読み出し、前記特徴量を対象とするマッチング処理を、ビームサーチ法による仮説の枝刈りをしながら行うマッチング手段と、
前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに基づいて、前記マッチング処理を管理する管理手段と、
前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記ビーム幅、前記特徴量の残量、及び、前記リソースを対応付けた管理テーブルを記憶するテーブル記憶手段と
として、コンピュータを機能させるためのプログラムであり、
前記管理手段は、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記ビーム幅で、枝刈りを行うように、前記マッチング処理を管理する
プログラム。
【請求項７】
入力音声を音声認識する音声認識処理を、コンピュータに行わせるプログラムが記録されている記録媒体であって、
前記入力音声を音響分析し、その入力音声の特徴量を抽出する分析手段と、
前記分析手段が出力する特徴量を記憶する特徴量記憶手段と、
前記特徴量記憶手段から前記特徴量を読み出し、前記特徴量を対象とするマッチング処理を、ビームサーチ法による仮説の枝刈りをしながら行うマッチング手段と、
前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに基づいて、前記マッチング処理を管理する管理手段と、
前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記ビーム幅、前記特徴量の残量、及び、前記リソースを対応付けた管理テーブルを記憶するテーブル記憶手段と
として、コンピュータを機能させるためのプログラムであり、
前記管理手段は、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記ビーム幅で、枝刈りを行うように、前記マッチング処理を管理する
プログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声認識装置および音声認識方法、並びにプログラムおよび記録媒体に関し、特に、例えば、リアルタイムでの音声認識を、リソースを有効に利用して行うことができるようにする音声認識装置および音声認識方法、並びにプログラムおよび記録媒体に関する。
【０００２】
【従来の技術】
近年においては、音声認識装置は、マンマシンインタフェース等として、多数のシステムで利用されている。
【０００３】
図１は、そのような音声認識装置の一例の構成を示している。
【０００４】
ユーザが発した音声は、マイク（マイクロフォン）１に入力され、マイク１では、その入力音声が、電気信号としての音声信号に変換される。この音声信号は、ＡＤ(Analog Digital)変換部２に供給される。ＡＤ変換部２では、マイク１からのアナログ信号である音声信号がサンプリング、量子化され、ディジタル信号である音声データに変換される。この音声データは、特徴抽出部３に供給される。
【０００５】
特徴抽出部３は、ＡＤ変換部２からの音声データについて、適当なフレームごとに音響分析処理を施し、これにより、例えば、ＭＦＣＣ(Mel Frequency Cepstrum Coefficient)等の特徴量としての特徴ベクトルを抽出する。なお、特徴抽出部３では、その他、例えば、スペクトルや、線形予測係数、ケプストラム係数、線スペクトル対等の特徴ベクトル（特徴パラメータ）を抽出することが可能である。
【０００６】
特徴抽出部３においてフレームごとに得られる特徴ベクトルは、特徴ベクトルバッファ４に順次供給されて記憶される。従って、特徴ベクトルバッファ４では、フレームごとの特徴ベクトルが時系列に記憶されていく。
【０００７】
なお、特徴ベクトルバッファ４は、例えば、ある発話の開始から終了まで（音声区間）に得られる時系列の特徴ベクトルを記憶する。
【０００８】
マッチング部５は、特徴ベクトルバッファ４に記憶された特徴ベクトルを用いて、音響モデルデータベース７、辞書データベース８、および文法データベース９を必要に応じて参照しながら、マイク１に入力された音声（入力音声）を、例えば、連続分布ＨＭＭ法等に基づいて音声認識する。
【０００９】
即ち、音響モデルデータベース７は、音声認識する音声の言語における個々の音素や音節などの所定の単位(PLU(Phonetic-Linguistic-Units)ごとの音響的な特徴を表す音響モデルを記憶している。ここでは、連続分布ＨＭＭ法に基づいて音声認識を行うので、音響モデルとしては、例えば、ガウス分布を用いたＨＭＭ(Hidden Markov Model)が用いられる。辞書データベース８は、認識対象の各単語（語彙）について、その発音に関する情報（音韻情報）が記述された単語辞書を記憶している。文法データベース９は、辞書データベース８の単語辞書に登録されている各単語が、どのように連鎖する（つながる）かを記述した文法規則（言語モデル）を記憶している。ここで、文法規則としては、例えば、文脈自由文法（ＣＦＧ）や、統計的な単語連鎖確率（Ｎ−ｇｒａｍ）などに基づく規則を用いることができる。
【００１０】
マッチング部５は、辞書データベース８の単語辞書を参照することにより、音響モデルデータベース７に記憶されている音響モデルを接続することで、単語の音響モデル（単語モデル）を構成する。さらに、マッチング部５は、幾つかの単語モデルを、文法データベース９に記憶された文法規則を参照することにより接続し、そのようにして接続された単語モデルを用いて、時系列の特徴ベクトルに基づき、連続分布ＨＭＭ法によって、マイク１に入力された音声を認識する。即ち、マッチング部５は、上述したようにして構成された各単語モデルの系列から、特徴ベクトルバッファ４に記憶された時系列の特徴ベクトルが観測される尤度を表すスコアを計算する。そして、マッチング部５は、そのスコアが最も高い単語モデルの系列を検出し、その単語モデルの系列に対応する単語列を、音声の認識結果として出力する。
【００１１】
なお、ここでは、ＨＭＭ法により音声認識が行われるため、マッチング部５は、接続された単語モデルに対応する単語列について、各特徴ベクトルの出現確率を累積し、その累積値をスコアとして、そのスコアを最も高くする単語列を、音声認識結果として出力する。
【００１２】
スコア計算は、一般に、音響モデルデータベース７に記憶された音響モデルによって与えられる音響的なスコア（以下、適宜、音響スコアという）と、文法データベース９に記憶された文法規則によって与えられる言語的なスコア（以下、適宜、言語スコアという）とを総合評価することで行われる。
【００１３】
即ち、音響スコアは、例えば、ＨＭＭ法による場合には、単語モデルを構成する音響モデルから、特徴抽出部３が出力する特徴ベクトルの系列が観測される確率（出現する確率）に基づいて、単語ごとに計算される。また、言語スコアは、例えば、バイグラムによる場合には、注目している単語と、その単語の直前の単語とが連鎖（連接）する確率に基づいて求められる。そして、各単語についての音響スコアと言語スコアとを総合評価して得られる最終的なスコア（以下、適宜、最終スコアという）に基づいて、音声認識結果が確定される。
【００１４】
具体的には、あるＮ個の単語からなる単語列におけるｋ番目の単語をｗkとして、その単語ｗkの音響スコアをＡ（ｗk）と、言語スコアをＬ（ｗk）と、それぞれ表すとき、その単語列の最終スコアＳは、例えば、次式にしたがって計算される。
【００１５】
Ｓ＝Σ（Ａ（ｗk）＋Ｃk×Ｌ（ｗk））
・・・（１）
【００１６】
但し、Σは、ｋを１からＮに変えてのサメーションをとることを表す。また、Ｃkは、単語ｗkの言語スコアＬ（ｗk）にかける重みを表す。
【００１７】
マッチング部５では、例えば、上式に示す最終スコアを最も大きくするＮと、単語列ｗ1，ｗ2，・・・，ｗNを求めるマッチング処理が行われ、その単語列ｗ1，ｗ2，・・・，ｗNが、音声認識結果として出力される。
【００１８】
以上のような処理が行われることにより、図１の音声認識装置では、例えば、ユーザが、「ニューヨークに行きたいです」と発話した場合には、「ニューヨーク」、「に」、「行きたい」、「です」といった各単語に、音響スコアおよび言語スコアが与えられ、それらを総合評価して得られる最終スコアが最も大きいときに、単語列「ニューヨーク」、「に」、「行きたい」、「です」が、音声認識結果として出力される。
【００１９】
ところで、上述の場合において、辞書データベース８の単語辞書に、「ニューヨーク」、「に」、「行きたい」、および「です」の５単語が登録されているとすると、これらの５単語を用いて構成しうる５単語の並びは、５5通り存在する。従って、単純には、マッチング部５では、この５5通りの単語列を評価し、その中から、ユーザの発話に最も適合するもの（最終スコアを最も大きくするもの）を決定しなければならない。そして、単語辞書に登録する単語数が増えれば、その単語数分の単語の並びの数は、単語数の単語数乗通りになるから、評価の対象としなければならない単語列は、膨大な数となる。
【００２０】
さらに、一般には、発話中に含まれる単語の数は未知であるから、５単語の並びからなる単語列だけでなく、１単語、２単語、・・・からなる単語列も、評価の対象とする必要がある。従って、評価すべき単語列の数は、さらに膨大なものとなるから、そのような膨大な単語列の中から、音声認識結果として最も確からしいものを、計算量および使用するメモリ容量の観点から効率的に決定することは、非常に重要な問題である。
【００２１】
計算量の低減し、処理の高速化を図る方法としては、例えば、特徴ベクトルの次元数を小さくする方法や、特徴ベクトルをベクトル量子化し、その結果得られるコードをインデックスとして、コードと音響スコアとが対応付けられたスコアテーブルから音響スコアを検索する方法などがあるが、これらの方法では、音響スコアの精度が劣化する。
【００２２】
また、計算量およびメモリ容量の効率化を図る方法としては、例えば、音響スコアを求める過程において、その途中で得られる音響スコアに基づき、そのスコア計算を打ち切るという音響的な枝刈り手法や、言語スコアに基づき、スコア計算の対象とする単語を絞り込む言語的な枝刈り手法がある。
【００２３】
これらの枝刈り手法は、ビームサーチ法とも呼ばれる。また、ビームサーチ法において、単語の絞り込み（枝刈り）には、所定の閾値が用いられるが、この閾値は、ビーム幅と呼ばれる。
【００２４】
ここで、以下、適宜、音響スコアや言語スコアを、まとめて、スコアという。
【００２５】
ビームサーチ法では、ある単語の系列を、音声認識結果の候補としての仮説として、その仮説としての単語の系列（音声認識結果の候補）に、新たに単語を接続することにより、新たな仮説が生成され、生成された各仮説としての単語の系列についてのスコアが、特徴ベクトルを用いて計算される。さらに、スコアが比較的低い仮説が削除され、残った仮説について、以下、同様の処理が繰り返される。
【００２６】
そして、音声認識対象の発話から得られた特徴ベクトル系列の先頭から最後まで（音声区間）に対して、スコアの計算が終了すると、その時点で残っている仮説のうち、例えば、最もスコアの高い仮説としての単語の系列が、音声認識結果とされる。
【００２７】
即ち、例えば、いま、図２（Ａ）に示すような、音声「今日はいい天気ですね」について得られる特徴ベクトル系列に対して行われる、ビームサーチ法によるマッチング処理を考える。
【００２８】
なお、図２においては、左から右方向が、時間（時刻）の経過を表しており、また、音声区間の開始時刻を０として、音声区間は時刻Ｔで終了するものとしてある。
【００２９】
例えば、いま、単語辞書に登録された各単語について、時刻０からの特徴ベクトル系列を用いて、スコアが計算され、時刻０からｔ1-1までの特徴ベクトル系列に対して単語「寄与」のスコアが、時刻０からｔ1までの特徴ベクトル系列に対して単語「今日」のスコアが、時刻０からｔ1+1までの特徴ベクトル系列に対して単語「京都」のスコアが、それぞれ、ある程度高くなったとすると、発話時間が、時刻０からｔ1-1までの「寄与」、時刻０からｔ1までの「今日」、時刻０からｔ1+1までの「京都」の３つが、最初の仮説とされる。
【００３０】
そして、時刻０からｔ1-1までの仮説「寄与」については、その仮説「寄与」の終点の時刻ｔ1-1を始点として、その時刻ｔ1-1からの特徴ベクトル系列を用いて、単語辞書に登録された各単語について、スコアが計算される。同様に、時刻０からｔ1までの仮説「今日」については、その仮説「今日」の終点の時刻ｔ1を始点として、その時刻ｔ1からの特徴ベクトル系列を用いて、単語辞書に登録された各単語について、スコアが計算され、時刻０からｔ1+1までの仮説「京都」については、その仮説「京都」の終点の時刻ｔ1+1を始点として、その時刻ｔ1+1からの特徴ベクトル系列を用いて、単語辞書に登録された各単語について、スコアが計算される。
【００３１】
いま、このスコア計算によって、時刻ｔ1-1を始点とした場合には、時刻ｔ2を終点とする単語「は」と時刻ｔ2+1を終点とする単語「いい」について、時刻ｔ1を始点とした場合には、時刻ｔ2を終点とする単語「は」と時刻ｔ2+1を終点とする単語「は」について、時刻ｔ1+1を始点とした場合には、時刻ｔ2を終点とする単語「は」と時刻ｔ2+2を終点とする単語「いい」について、それぞれ高いスコアが得られたとすると、図２（Ｂ）乃至図２（Ｇ）に示すように、それらの単語が、仮説に接続され、新たな仮説が生成される。
【００３２】
即ち、時刻０からｔ1-1までの仮説「寄与」については、図２（Ｂ）に示すように、時刻ｔ1-1からｔ2までの特徴ベクトル系列を用いることで、単語「は」について、高いスコアが得られており、時刻０からｔ1-1までの仮説「寄与」に、時刻ｔ1-1からｔ2までの単語「は」を接続した時刻０からｔ2までの新たな仮説「寄与」が生成される。さらに、時刻０からｔ1-1までの仮説「寄与」については、図２（Ｃ）に示すように、時刻ｔ1-1からｔ2+1までの特徴ベクトル系列を用いることで、単語「いい」について、高いスコアが得られており、時刻０からｔ1-1までの仮説「寄与」に、時刻ｔ1-1からｔ2+1までの単語「いい」を接続した時刻０からｔ2+1までの新たな仮説「寄与いい」が生成される。
【００３３】
また、時刻０からｔ1までの仮説「今日」については、図２（Ｄ）に示すように、時刻ｔ1からｔ2+1までの特徴ベクトル系列を用いることで、単語「は」について、高いスコアが得られており、時刻０からｔ1までの仮説「今日」に、時刻ｔ1からｔ2+1までの単語「は」を接続した時刻０からｔ2+1までの新たな単語「今日は」が生成される。さらに、時刻０からｔ1までの仮説「今日」については、図２（Ｅ）に示すように、時刻ｔ1からｔ2までの特徴ベクトル系列を用いることで、単語「は」について、高いスコアが得られており、時刻０からｔ1までの仮説「今日」に、時刻ｔ1からｔ2までの単語「は」を接続した時刻０からｔ2までの新たな単語「今日は」が生成される。
【００３４】
また、時刻０からｔ1+1までの仮説「京都」については、図２（Ｆ）に示すように、時刻ｔ1+1からｔ2までの特徴ベクトル系列を用いることで、単語「は」について、高いスコアが得られており、時刻０からｔ1+1までの仮説「京都」に、時刻ｔ1+1からｔ2までの単語「は」を接続した時刻０からｔ2までの新たな仮説「京都は」が生成される。さらに、時刻０からｔ1+1までの仮説「京都」については、図２（Ｇ）に示すように、時刻ｔ1+1からｔ2+2までの特徴ベクトル系列を用いることで、単語「いい」について、高いスコアが得られており、時刻０からｔ1+1までの仮説「京都」に、時刻ｔ1+1からｔ2+2までの単語「いい」を接続した時刻０からｔ2+2までの新たな仮説「京都いい」が生成される。
【００３５】
以上のようにして、仮説は、音声区間の終了時刻Ｔまで拡張されていくが、その過程で何らの制限も行わない場合には、膨大な数の仮説が生成されることになる。
【００３６】
このため、ビームサーチ法によって、スコアの低い仮説は枝刈り（削除）される。即ち、例えば、現在得られている仮説において、終了時刻が同一時刻の仮説どうしがグループ化され、各グループにおいて、そのグループに属する各仮説と、そのグループでスコアが最も高い仮説とのスコアの差（の絶対値）が求められる。そして、そのスコアの差が所定の閾値以上となる仮説（スコアが最も高い仮説とのスコアの差が所定の閾値以上となる仮説）は枝刈りされ、以降のスコア計算の対象から除外される。
【００３７】
なお、図１のマッチング部５において、以上のようなビームサーチ法によるマッチング処理を行う場合には、仮説と、仮説を構成する単語の終了時刻（終点の時刻）、仮説について得られているスコア等を保持しておく必要があるが、これらは、図１の仮説スタック６に記憶される。即ち、マッチング部５は、仮説スタック６に仮説を記憶させ、その仮説に接続する形で、新たな単語を、仮説スタック６に記憶させることで、新たな仮説を生成する。また、マッチング部５は、仮説スタック６に記憶された仮説を削除することで、その仮説の枝刈りを行う。
【００３８】
【発明が解決しようとする課題】
ところで、音声認識装置における音声認識精度（誤認識率の低さ等）は、例えば、音声認識対象とする語彙の数、使用する音響モデルや言語モデルの複雑さ、音声の特徴ベクトル抽出やパターンマッチング（マッチング処理）に割り当てる処理量等の影響を受ける。そして、高い認識精度を実現しようとすれば、必然的に、音声認識装置の処理量は増加し、従って、音声認識処理にあたって必要なリソースが増加する。
【００３９】
また、音声認識精度と、音声認識処理に必要なリソースは、例えば、特徴ベクトルの次元数や、ＨＭＭの各状態において生起確率を求めるのに利用するガウス分布の数、仮説スタック６に記憶させることのできる仮説の数、仮説に対して新たに接続することのできる単語の数等の影響も受ける。
【００４０】
一方、音声認識装置を搭載したシステム（以下、適宜、音声認識システムという）では、ユーザの音声を音声認識し、その音声認識結果に基づいて処理を行う（例えば、音声認識結果を翻訳するなど）ことから、一般に、リアルタイムでの音声認識処理を行うことが要求されることが多い。
【００４１】
しかしながら、音声認識システムにおいて、プロセッサは、一般に、音声認識処理だけでなく、必要な他のタスクも、同時に（並列に）実行する。このような音声認識システムにおいては、音声認識処理に割り当てることのできるリソースが、時々刻々と変化することになる。
【００４２】
従って、音声認識システムにおいて、リアルタイムで音声認識を行う場合には、音声認識処理に、常に、十分なリソースを割り当てることができるとは限らないため、高い音声認識精度を、常時維持することは困難である。
【００４３】
即ち、音声認識システムにおいて、音声認識装置に、十分なリソースを割り当てることができる場合は問題ないが、十分なリソースを割り当てることができない場合には、リアルタイムでの音声認識結果を得ることができず、その後の処理に支障をきたすことになる。
【００４４】
また、音声認識処理に必要なリソースは、音声認識処理の対象となる音声の長さ（発話時間）によっても変化する。しかしながら、発話時間は、発話ごとに異なるため、そのように発話時間の異なる発話を対象とした音声認識処理に必要なリソースを、あらかじめ予測することも困難である。
【００４５】
このため、音声認識システムにおける音声認識精度は、そのシステム全体のリソースを考慮して設計される。
【００４６】
即ち、音声認識システムのプロセッサが高速のものである場合には、音声認識処理に大きなリソースを割り当て、精度の高い音響モデルや言語モデル、語彙数の多い辞書を用いて、詳細な音響分析処理やマッチング処理を行っても、リアルタイムで音声認識結果を得ることができるから、比較的大きなリソースが必要な音声認識を行い、精度の高い音声認識結果が得られるように、音声認識システムが設計される。
【００４７】
一方、音声認識システムのプロセッサが低速のものである場合には、詳細な音響分析等の処理を行うと、リアルタイムでの音声認識が困難となることから、音声認識処理に対して大きなリソースを割り当てることができないので、処理量を制限するために、いわば簡易な音声認識処理（演算量の少ない処理）を行うことにより、少ないリソースによって、リアルタイムで音声認識結果を得ることができるように、音声認識システムが設計される。
【００４８】
従って、高速なプロセッサを用いる場合には、音声認識処理に必要なリソースは多くなるが、高い精度の音声認識結果が得られる。一方、低速なプロセッサを用いる場合には、あまり精度の高くない音声認識結果が得られることになるが、音声認識処理に必要なリソースは少なくて済む。
【００４９】
ところで、音声認識システムにおいて、そのシステムに用いるプロセッサの能力ごとに、音声認識精度、ひいては、音声認識処理に割り当てられるリソースを異なるものに設計しても、音声認識システムの他の処理に必要なリソースは、時々刻々と変化するから、場合によっては、音声認識処理に割り当てるのに十分なリソースがあることもあるが、そのような十分なリソースがないこともある。
【００５０】
音声認識処理に割り当てるのに十分なリソースがない場合には、音声認識結果を、リアルタイムで得ることができないことになり、その後の処理に影響を及ぼすことになる。
【００５１】
一方、音声認識処理に割り当てるのに十分なリソースがある場合には、あらかじめ設計された精度の音声認識結果を、リアルタイムで得ることはできるが、この場合、余っているリソースは無駄になる。即ち、仮に、その余っているリソースを、さらに、音声認識処理に割り当てることができれば、音声認識精度をより向上させることができるにもかかわらず、そのリソースを使用しないことは、リソースを有効利用しているとはいえない。
【００５２】
本発明は、このような状況に鑑みてなされたものであり、リアルタイムでの音声認識を、リソースを有効に利用して行うことができるようにするものである。
【００５３】
【課題を解決するための手段】
本発明の一側面の音声認識装置、プログラム、又は、記録媒体は、入力音声を音声認識する音声認識処理を行う音声認識装置であって、前記入力音声を音響分析し、その入力音声の特徴量を抽出する分析手段と、前記分析手段が出力する特徴量を記憶する特徴量記憶手段と、前記特徴量記憶手段から前記特徴量を読み出し、前記特徴量を対象とするマッチング処理を、ビームサーチ法による仮説の枝刈りをしながら行うマッチング手段と、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに基づいて、前記マッチング処理を管理する管理手段と、前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記ビーム幅、前記特徴量の残量、及び、前記リソースを対応付けた管理テーブルを記憶するテーブル記憶手段とを備え、前記管理手段は、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記ビーム幅で、枝刈りを行うように、前記マッチング処理を管理する音声認識装置、そのような音声認識装置として、コンピュータを機能させるためのプログラム、又は、そのようなプログラムが記録されている記録媒体である。
【００５４】
本発明の一側面の音声認識方法は、入力音声を音声認識する音声認識処理を行う音声認識装置の音声認識方法であって、前記音声認識装置は、前記入力音声を音響分析し、その入力音声の特徴量を抽出する分析手段と、前記分析手段が出力する特徴量を記憶する特徴量記憶手段と、前記特徴量記憶手段から前記特徴量を読み出し、前記特徴量を対象とするマッチング処理を、ビームサーチ法による仮説の枝刈りをしながら行うマッチング手段と、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに基づいて、前記マッチング処理を管理する管理手段と、前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記ビーム幅、前記特徴量の残量、及び、前記リソースを対応付けた管理テーブルを記憶するテーブル記憶手段とを備え、前記管理手段が、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記ビーム幅で、枝刈りを行うように、前記マッチング処理を管理するステップを備える音声認識方法である。
【００５７】
本発明の一側面においては、前記入力音声が音響分析され、その入力音声の特徴量が抽出されて、特徴量記憶手段に記憶される。前記特徴量記憶手段に記憶された前記特徴量は読み出され、前記特徴量を対象とするマッチング処理が、ビームサーチ法による仮説の枝刈りをしながら行われる。一方、音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに基づいて、前記マッチング処理の管理が行われる。すなわち、管理テーブルには、前記枝刈りのビーム幅を複数の値それぞれに設定して、複数のデータ量の特徴量それぞれを対象とするマッチング処理を行った場合に、音声認識結果を得るのに必要な音声認識処理のリソースを測定することにより作成された、前記ビーム幅、前記特徴量の残量、及び、前記リソースが対応付けられており、前記管理テーブルにおいて、前記音声認識処理に割り当てられたリソースと前記特徴量記憶手段に記憶された前記特徴量の残量とに対応付けられた前記ビーム幅で、枝刈りを行うように、前記マッチング処理の管理が行われる。
【００５８】
【発明の実施の形態】
図３は、本発明を適用したペット型ロボットの外観構成の例を示す斜視図であり、図４は、その内部構成の例を示すブロック図である。
【００５９】
図３の実施の形態において、ペット型ロボットは、四つ足の動物型のロボットとされており、大きくは、胴体部ユニット２０１、脚部ユニット２０２A，２０２B，２０２C，２０２D、頭部ユニット２０３、および尻尾部ユニット２０４から構成されている。
【００６０】
胴体に相当する胴体部ユニット２０１の前後左右には、それぞれ、脚に相当する脚部ユニット２０２A，２０２B，２０２C，２０２Dが連結され、胴体部ユニット２０１の前端部と後端部には、それぞれ、頭部に相当する頭部ユニット２０３と尻尾に相当する尻尾部ユニット２０４が連結されている。
【００６１】
胴体部ユニット２０１の上面には背中センサ２０１Ａが設けられ、頭部ユニット２０３には、その上部に頭センサ２０３Ａが、下部に顎センサ２０３Ｂがそれぞれ設けられている。なお、背中センサ２０１Ａ、頭センサ２０３Ａ、顎センサ２０３Ｂは、いずれも圧力センサで構成され、その部位に与えられる圧力を検知する。
【００６２】
尻尾部ユニット２０４は、水平方向、および上下方向に揺動自在に引き出されている。
【００６３】
図４に示すように、胴体部ユニット２０１には、コントローラ２１１、Ａ／Ｄ変換部２１２、Ｄ／Ａ変換部２１３、通信部２１４、半導体メモリ２１５、背中センサ２０１Ａ等が格納されている。
【００６４】
コントローラ２１１は、コントローラ２１１全体の動作を制御するCPU２１１Aと、CPU２１１Aが各部を制御するのに実行するＯＳ(Operating System)、アプリケーションプログラム、その他の必要なデータ等が記憶されているメモリ２１１B等を内蔵している。
【００６５】
Ａ／Ｄ(Analog/Digital)変換部２１２は、マイク２２１、ＣＣＤ２２２、背中センサ２０１Ａ、頭センサ２０３Ａ、顎センサ２０３Ｂが出力するアナログ信号をＡ／Ｄ変換することによりディジタル信号とし、コントローラ２１１に供給する。Ｄ／Ａ(Digital/Analog)変換部２１３は、コントローラ２１１から供給されるディジタル信号をＤ／Ａ変換することによりアナログ信号とし、スピーカ２２３に供給する。
【００６６】
通信部２１４は、外部と無線または有線で通信するときの通信制御を行う。これにより、ＯＳやアプリケーションプログラムがバージョンアップされたときに、通信部２１４を介して、そのバージョンアップされたＯＳやアプリケーションプログラムをダウンロードして、メモリ２１１Ｂに記憶させたり、また、所定のコマンドを、通信部２１４で受信し、ＣＰＵ２１１Ａに与えることができるようになっている。
【００６７】
半導体メモリ２１５は、例えば、ＥＥＰＲＯＭ(Electrically Erasable Programmable Read-only Memory)等で構成され、胴体部ユニット２０１に設けられた図示せぬスロットに対して、着脱可能になっている。半導体メモリ２１５には、例えば、後述するような感情モデル等が記憶される。
【００６８】
背中センサ２０１Ａは、胴体部ユニット２０１において、ペット型ロボットの背中に対応する部位に設けられており、そこに与えられるユーザからの圧力を検出し、その圧力に対応する圧力検出信号を、Ａ／Ｄ変換部２１２を介してコントローラ２１１に出力する。
【００６９】
なお、胴体部ユニット２０１には、その他、例えば、ペット型ロボットの動力源となるバッテリ（図示せず）や、そのバッテリ残量を検出する回路等も格納されている。
【００７０】
頭部ユニット２０３においては、図４に示すように、外部からの刺激を感知するセンサとしての、音を感知する「耳」に相当するマイク２２１、光を感知する「目」に相当するCCD(Charge Coupled Device)２２２、並びにユーザが触れること等により与えられる圧力を感知する触覚に相当する頭センサ２０３Ａ、および顎センサ２０３Ｂが、それぞれ対応する部位に設けられている。また、頭部ユニット２０３には、ペット型ロボットの「口」に相当するスピーカ２２３が、対応する部位に設置されている。
【００７１】
脚部ユニット２０２A乃至２０２Dのそれぞれの関節部分、脚部ユニット２０２A乃至２０２Dのそれぞれと胴体部ユニット２０１の連結部分、頭部ユニット２０３と胴体部ユニット２０１の連結部分、並びに尻尾部ユニット２０４と胴体部ユニット２０１の連結部分などには、アクチュエータが設置されている。アクチュエータは、コントローラ２１１からの指示に基づいて各部を動作させる。即ち、アクチュエータによって、例えば、脚部ユニット２０２Ａ乃至２０２Ｄが動き、これにより、ロボットが歩行する。
【００７２】
頭部ユニット２０３に設置されているマイク２２１は、ユーザからの発話を含む周囲の音声（音）を集音し、得られた音声信号を、Ａ／Ｄ変換部２１２を介してコントローラ２１１に出力する。CCD２２２は、周囲の状況を撮像し、得られた画像信号を、Ａ／Ｄ変換部２１２を介してコントローラ２１１に出力する。頭部ユニット２０３の上部に設けられた頭センサ２０３Ａや、頭部ユニット２０３の下部に設けられた顎センサ２０３Ｂは、例えば、ユーザからの「撫でる」や「叩く」といった物理的な働きかけにより受けた圧力を検出し、その検出結果を圧力検出信号として、Ａ／Ｄ変換部２１２を介してコントローラ２１１に出力する。
【００７３】
コントローラ２１１は、マイク２２１、CCD２２２、背中センサ２０１Ａ、頭センサ２０３Ａ、および顎センサ２０３Ｂから、Ａ／Ｄ変換部２１２を介して与えられる音声信号、画像信号、圧力検出信号に基づいて、周囲の状況や、ユーザからの指令、ユーザからの働きかけなどの有無を判断し、その判断結果に基づいて、ペット型ロボットが次にとる行動を決定する。そして、コントローラ２１１は、その決定に基づいて、必要なアクチュエータを駆動させ、これにより、頭部ユニット２０３を上下左右に振らせたり、尻尾部ユニット２０４を動かせたり、各脚部ユニット２０２A乃至２０２Dを駆動して、ペット型ロボットを歩行させるなどの行動をとらせる。
【００７４】
さらに、コントローラ２１１は、必要に応じて、合成音を生成し、それをスピーカ２２３に供給して出力させたり、ペット型ロボットの「目」の位置に設けられた、図示しないLEDを点灯、消灯または点滅させる。
【００７５】
以上のようにして、ペット型ロボットは、周囲の状況や、接してくるユーザに基づいて、自律的に行動をとるようになっている。
【００７６】
次に、図５は、図４のコントローラ２１１の機能的構成例を示している。なお、図５に示す機能的構成は、CPU２１１Aが、メモリ２１１Bに記憶されたＯＳおよびアプリケーションプログラムを実行することで実現される。また、図５では、Ａ／Ｄ変換部２１２およびＤ／Ａ変換部２１３の図示を省略してある。
【００７７】
コントローラ２１１のセンサ入力処理部２４１は、背中センサ２０１Ａや、頭センサ２０３Ａ、顎センサ２０３Ｂ、マイク２２１、CCD２２２等からそれぞれ与えられる圧力検出信号、音声信号、画像信号等に基づいて、特定の外部状態や、ユーザからの特定の働きかけ、ユーザからの指示等を認識し、その認識結果を表す状態認識情報を、モデル記憶部２４２および行動決定機構部２４３に通知する。
【００７８】
即ち、センサ入力処理部２４１は、圧力処理部２４１Ａ、音声認識部２４１Ｂ、および画像処理部２４１Ｃを有している。
【００７９】
圧力処理部２４１Ａは、背中センサ２０１Ａ、頭センサ２０３Ａ、または顎センサ２０３Ｂから与えられる圧力検出信号を処理する。そして、圧力処理部２４１Ａは、その処理の結果、所定の閾値以上で、かつ短時間の圧力を検出したときには、「叩かれた（しかられた）」と認識し、所定の閾値未満で、かつ長時間の圧力を検出したときには、「なでられた（ほめられた）」と認識して、その認識結果を、状態認識情報として、モデル記憶部２４２および行動決定機構部２４３に通知する。
【００８０】
音声認識部２４１Ｂは、マイク２２１から与えられる音声信号を対象とした音声認識を行う。そして、音声認識部２４１Ｂは、その音声認識結果としての、例えば、「歩け」、「伏せ」、「ボールを追いかけろ」等の指令その他を、状態認識情報として、モデル記憶部２４２および行動決定機構部２４３に通知する。
【００８１】
画像処理部２４１Ｃは、CCD２２２から与えられる画像信号を用いて、画像認識処理を行う。そして、画像処理部２４１Ｃは、その処理の結果、例えば、「赤い丸いもの」や、「地面に対して垂直なかつ所定の高さ以上の平面」等を検出したときには、「ボールがある」や、「壁がある」等の画像認識結果を、状態認識情報として、モデル記憶部２４２および行動決定機構部２４３に通知する。
【００８２】
モデル記憶部２４２は、ロボットの感情、本能、成長の状態を表現する感情モデル、本能モデル、成長モデルをそれぞれ記憶し、管理している。
【００８３】
ここで、感情モデルは、例えば、「うれしさ」、「悲しさ」、「怒り」、「楽しさ」等の感情の状態（度合い）を、所定の範囲（例えば、−１．０乃至１．０等）の値によってそれぞれ表し、センサ入力処理部２４１からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００８４】
本能モデルは、例えば、「食欲」、「睡眠欲」、「運動欲」等の本能による欲求の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部２４１からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００８５】
成長モデルは、例えば、「幼年期」、「青年期」、「熟年期」、「老年期」等の成長の状態（度合い）を、所定の範囲の値によってそれぞれ表し、センサ入力処理部２４１からの状態認識情報や時間経過等に基づいて、その値を変化させる。
【００８６】
モデル記憶部２４２は、上述のようにして感情モデル、本能モデル、成長モデルの値で表される感情、本能、成長の状態を、状態情報として、行動決定機構部２４３に送出する。
【００８７】
なお、モデル記憶部２４２には、センサ入力処理部２４１から状態認識情報が供給される他に、行動決定機構部２４３から、ペット型ロボットの現在または過去の行動、具体的には、例えば、「長時間歩いた」などの行動の内容を示す行動情報が供給されるようになっており、モデル記憶部２４２は、同一の状態認識情報が与えられても、行動情報が示すペット型ロボットの行動に応じて、異なる状態情報を生成するようになっている。
【００８８】
例えば、ペット型ロボットが、ユーザに挨拶をし、ユーザに頭を撫でられた場合には、ユーザに挨拶をしたという行動情報と、頭を撫でられたという状態認識情報とが、モデル記憶部２４２に与えられ、この場合、モデル記憶部２４２では、「うれしさ」を表す感情モデルの値が増加される。
【００８９】
行動決定機構部２４３は、センサ入力処理部２４１からの状態認識情報や、モデル記憶部２４２からの状態情報、時間経過等に基づいて、次の行動を決定し、決定された行動の内容を、行動指令情報として、姿勢遷移機構部２４４に出力する。
【００９０】
即ち、行動決定機構部２４３は、ペット型ロボットがとり得る行動をステート（状態）(state)に対応させた有限オートマトンを、ペット型ロボットの行動を規定する行動モデルとして管理している。そして、行動決定機構部２４３は、この行動モデルとしての有限オートマトンにおけるステートを、センサ入力処理部２４１からの状態認識情報や、モデル記憶部２４２における感情モデル、本能モデル、または成長モデルの値、時間経過等に基づいて遷移させ、遷移後のステートに対応する行動を、次にとるべき行動として決定する。
【００９１】
ここで、行動決定機構部２４３は、所定のトリガ(trigger)があったことを検出すると、ステートを遷移させる。即ち、行動決定機構部２４３は、例えば、現在のステートに対応する行動を実行している時間が所定時間に達したときや、特定の状態認識情報を受信したとき、モデル記憶部２４２から供給される状態情報が示す感情や、本能、成長の状態の値が所定の閾値以下または以上になったとき等に、ステートを遷移させる。
【００９２】
なお、行動決定機構部２４３は、上述したように、センサ入力処理部２４１からの状態認識情報だけでなく、モデル記憶部２４２における感情モデルや、本能モデル、成長モデルの値等にも基づいて、行動モデルにおけるステートを遷移させることから、同一の状態認識情報が入力されても、感情モデルや、本能モデル、成長モデルの値（状態情報）によっては、ステートの遷移先は異なるものとなる。
【００９３】
その結果、行動決定機構部２４３は、例えば、状態情報が、「怒っていない」こと、および「お腹がすいていない」ことを表している場合において、状態認識情報が、「目の前に手のひらが差し出された」ことを表しているときには、目の前に手のひらが差し出されたことに応じて、「お手」という行動をとらせる行動指令情報を生成し、これを、姿勢遷移機構部２４４に送出する。
【００９４】
また、行動決定機構部２４３は、例えば、状態情報が、「怒っていない」こと、および「お腹がすいている」ことを表している場合において、状態認識情報が、「目の前に手のひらが差し出された」ことを表しているときには、目の前に手のひらが差し出されたことに応じて、「手のひらをぺろぺろなめる」ような行動を行わせるための行動指令情報を生成し、これを、姿勢遷移機構部２４４に送出する。
【００９５】
なお、行動決定機構部２４３には、モデル記憶部２４２から供給される状態情報が示す感情や、本能、成長の状態に基づいて、遷移先のステートに対応する行動のパラメータとしての、例えば、歩行の速度や、手足を動かす際の動きの大きさおよび速度などを決定させることができ、この場合、それらのパラメータを含む行動指令情報が、姿勢遷移機構部２４４に送出される。
【００９６】
また、行動決定機構部２４３では、上述したように、ペット型ロボットの頭部や手足等を動作させる行動指令情報の他、ペット型ロボットに発話を行わせる行動指令情報も生成される。そして、ペット型ロボットに発話させる行動指令情報は、音声合成部２４６に供給されるようになっている。音声合成部２４６は、行動指令情報を受信すると、その行動指令情報にしたがって音声合成を行い、得られた合成音を、スピーカ２２３から出力させる。
【００９７】
姿勢遷移機構部２４４は、行動決定機構部２４３から供給される行動指令情報に基づいて、ペット型ロボットの姿勢を、現在の姿勢から次の姿勢に遷移させるための姿勢遷移情報を生成し、これを制御機構部２４５に送出する。
【００９８】
ここで、現在の姿勢から次に遷移可能な姿勢は、例えば、胴体や手や足の形状、重さ、各部の結合状態のようなペット型ロボットの物理的形状と、関節が曲がる方向や角度のようなアクチュエータの機構とによって決定される。
【００９９】
また、次の姿勢としては、現在の姿勢から直接遷移可能な姿勢と、直接には遷移できない姿勢とがある。例えば、４本足のペット型ロボットは、手足を大きく投げ出して寝転んでいる状態から、伏せた状態へ直接遷移することはできるが、立った状態へ直接遷移することはできず、一旦、手足を胴体近くに引き寄せて伏せた姿勢になり、それから立ち上がるという２段階の動作が必要である。また、安全に実行できない姿勢も存在する。例えば、４本足のペット型ロボットは、その４本足で立っている姿勢から、両前足を挙げてバンザイをしようとすると、簡単に転倒してしまう。
【０１００】
このため、姿勢遷移機構部２４４は、直接遷移可能な姿勢をあらかじめ登録しておき、行動決定機構部２４３から供給される行動指令情報が、直接遷移可能な姿勢を示す場合には、その行動指令情報を制御機構部２４５に送出する。
【０１０１】
一方、行動指令情報が、直接遷移不可能な姿勢を示す場合には、姿勢遷移機構部２４４は、遷移可能な他の姿勢に一旦遷移した後に、目的の姿勢まで遷移させるような姿勢遷移情報を生成し、制御機構部２４５に送出する。これによりロボットが、遷移不可能な姿勢を無理に実行しようとする事態や、転倒するような事態を回避することができるようになっている。
【０１０２】
制御機構部２４５は、姿勢遷移機構部２４４からの姿勢遷移情報にしたがって、アクチュエータを駆動するための制御信号を生成し、これを、各部のアクチュエータに送出する。
【０１０３】
次に、図６は、図５の音声認識部２４１Ｂの構成例を示している。なお、図中、図１の音声認識装置における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。
【０１０４】
パフォーマンスコントローラ１１は、音声認識部２４１Ｂで行われる音声認識処理に割り当て可能なリソースによって、Ａ／Ｄ変換部２１２を介してマイク２２１から供給される音声データ（音声信号）の音声認識結果を、最大精度でかつリアルタイムで得られるように、マッチング部５によるマッチング処理を管理する。
【０１０５】
即ち、パフォーマンスコントローラ１１は、ＯＳから、音声認識処理に割り当てられたリソースを受信する一方、特徴ベクトルバッファ４および仮説スタック６を参照することにより、マッチング部５でマッチング処理の対象とすべき特徴量の残量を求め、これらの、音声認識処理に割り当てられたリソースと特徴量の残量に基づいて、マッチング処理を管理する。
【０１０６】
具体的には、パフォーマンスコントローラ１１は、マッチング部５においてマッチング処理の一部として行われるビームサーチのビーム幅を狭くまたは広くする。あるいは、また、パフォーマンスコントローラ１１は、セレクタ１３乃至１５を制御する。
【０１０７】
即ち、セレクタ１３には、マッチング部５のマッチング処理で参照される音響モデルが記憶された複数であるＩ個の音響モデルデータベース１７1乃至１７Iが接続されており、セレクタ１３は、パフォーマンスコントローラ１１の制御にしたがい、マッチング処理で参照される音響モデルデータベース１７i（ｉ＝１，２，・・・，Ｉ）を選択する。
【０１０８】
ここで、音響モデルデータベース１７1乃至１７Iには、いずれも、同一の音素や音節等についての音響モデル（例えば、ＨＭＭなど）が記憶されている。但し、ある音響モデルデータベース１７iに記憶された音響モデルと、他の音響モデルデータベース１７i’に記憶された音響モデルとでは、スコア計算に必要な演算量（計算量）が異なるものとなっている。即ち、音響モデルデータベース１７iには、少ない演算量でスコア計算が可能な音響モデルが記憶されており、他の音響モデルデータベース１７i’には、スコア計算に比較的多くの演算量が必要な音響モデルが記憶されている。
【０１０９】
なお、例えば、音響モデルとしてＨＭＭを採用する場合には、高次元の特徴ベクトルを用いて学習を行えば、スコア計算に必要な演算量が多い音響モデル（ＨＭＭ）を得ることができ、逆に、低次元の特徴ベクトルを用いて学習を行えば、スコア計算に必要な演算量が少ない音響モデルを得ることができる。また、ＨＭＭを定義する確率関数（出力確率を計算するのに用いられるガウス分布関数など）の数に差を設けることによっても、演算量が異なる音響モデル（ＨＭＭ）を得ることができる。
【０１１０】
セレクタ１３において、少ない演算量でスコア計算が可能な音響モデルが記憶された音響モデルデータベース１７iが選択された場合には、マッチング部５では、そのような音響モデルを参照して、マッチング処理が行われることにより、短時間で、マッチング処理を終了することができる（高速なマッチング処理を行うことができる）。但し、この場合、音声認識精度は多少劣化することになる。
【０１１１】
一方、セレクタ１３において、スコア計算に比較的多くの演算量が必要な音響モデルが記憶された音響モデルデータベース１７i’が選択された場合には、マッチング部５では、そのような音響モデルを参照して、マッチング処理が行われることにより、精度の高い音声認識結果が得られることになる。但し、この場合、マッチング処理には、多少多くの時間を要する（マッチング処理の速度が低下する）ことになる。
【０１１２】
なお、上述したように、特徴ベクトルの次元数によって演算量が異なる音響モデルを用いる場合には、マッチング部５のマッチング処理におけるスコア計算において、セレクタ１３で選択された音響モデルデータベース１７iに記憶された音響モデルに対応する次元数の特徴ベクトルを用いる必要があるが、これについては、マッチング部５が、スコア計算を行う際に、特徴ベクトルの高次のコンポーネントを無視することで対処するようになっている。
【０１１３】
即ち、例えば、いま、Ｎを所定の定数として、音響モデルデータベース１７iに、Ｎ＋ｉ次元の特徴ベクトルを用いてスコア計算が行われる音響モデルが記憶されているとする。この場合、音響モデルデータベース１７Iには、最高次数であるＮ＋Ｉ次元の特徴ベクトルを用いてスコア計算が行われる音響モデルが記憶されていることになるが、特徴抽出部３は、そのＮ＋Ｉ次元の特徴ベクトルを出力する。そして、マッチング部５は、音響モデルデータベース１７iに記憶された音響モデルを参照する場合、特徴抽出部３が出力するＮ＋Ｉ次元の特徴ベクトルのうちの、低次側のＮ＋ｉ個のコンポーネントだけを考慮して（高次側のＩ−ｉ個のコンポーネントはないものとして）、スコア計算を行う。
【０１１４】
セレクタ１４には、マッチング部５のマッチング処理で参照される単語辞書が記憶された複数であるＪ個の辞書データベース１８1乃至１８Jが接続されており、セレクタ１４は、パフォーマンスコントローラ１１の制御にしたがい、マッチング処理で参照される辞書データベース１８j（ｊ＝１，２，・・・，Ｊ）を選択する。
【０１１５】
ここで、辞書データベース１８1乃至１８Jそれぞれには、単語数の異なる単語辞書が記憶されている。即ち、例えば、辞書データベース１８1に、Ｍ個の単語が登録された単語辞書が記憶されているとした場合に、辞書データベース１８jには、そのＭ個の単語に、他のｆ（ｊ）個の単語を加えた単語辞書が記憶されている。なお、関数ｆ（ｊ）は単調増加関数である。
【０１１６】
従って、ｊ＜ｊ’とすると、辞書データベース１８jに記憶された単語辞書の単語数は、辞書データベース１８j’に記憶された単語辞書の単語数よりも少ないから、セレクタ１４において、辞書データベース１８jが選択された場合には、マッチング部５では、少ない数の単語を対象に、マッチング処理が行われることにより、短時間で、マッチング処理を終了することができる（高速なマッチング処理を行うことができる）。但し、この場合、音声認識精度は多少劣化することになる。
【０１１７】
一方、セレクタ１４において、辞書データベース１８j’が選択された場合には、マッチング部５では、多くの数の単語を対象に、マッチング処理が行われることにより、精度の高い音声認識結果が得られることになる。但し、この場合、マッチング処理には、多少多くの時間を要することになる。
【０１１８】
なお、例えば、辞書データベース１８j+1は、辞書データベース１８jに記憶されている単語を、少なくとも記憶しているものとする。
【０１１９】
セレクタ１５には、マッチング部５のマッチング処理で参照される文法規則（言語モデル）が記憶された複数であるＫ個の文法データベース１９1乃至１９Kが接続されており、セレクタ１５は、パフォーマンスコントローラ１１の制御にしたがい、マッチング処理で参照される文法データベース１９j（ｋ＝１，２，・・・，Ｋ）を選択する。
【０１２０】
ここで、文法データベース１９kには、例えば、ｋグラムの単語連鎖確率が記憶されている。従って、ｋ＜ｋ’とすると、セレクタ１５において、文法データベース１９kが選択された場合と、文法データベース１９k’が選択された場合とでは、一般的には、文法データベース１９k’が選択された場合の方が、音声認識精度は向上するが、マッチング処理には時間を要することとなる。但し、文法規則については、採用する文法規則にもよるが、一般には、音響モデルや単語辞書における場合に比較して、マッチング処理に要する時間に、それほど大きな差は生じない。
【０１２１】
ルックアップテーブル記憶部１２は、音声認識処理に割り当て可能なリソースによって、音声認識結果を、最大精度でかつリアルタイムで得られるように、マッチング処理を管理するための管理情報と、音声認識処理に割り当てられるリソース、およびマッチング処理に用いる特徴ベクトルの残量とを対応付けた管理情報テーブルを記憶している。
【０１２２】
即ち、管理テーブルにおける管理情報は、ビームサーチのビーム幅、セレクタ１３に選択させる音響モデルデータベース１７i、セレクタ１４に選択させる辞書データベース１８j、およびセレクタ１５に選択させる文法データベース１９kを含んでいる。
【０１２３】
そして、管理テーブルでは、音声認識処理にリソースＲが割り当てられた場合に、そのリソースＲによって、音声認識結果を、最大精度でかつリアルタイムで得られるように、あるデータ量Ｓの特徴ベクトルを対象としたマッチング処理を行うのに用いるべき管理情報としてのビーム幅、音響モデルデータベース１７i、辞書データベース１８j、および文法データベース１９kが、そのリソースＲおよびデータ量Ｒに対応付けられている。
【０１２４】
従って、管理テーブルによれば、音声認識処理に割り当てられたリソースＲと、マッチング処理する特徴ベクトルのデータ量Ｓが与えられると、そのリソースＲによって、音声認識結果を、最大精度でかつリアルタイムで得られるように、マッチング処理を行うことのできるビーム幅、音響モデルデータベース１７i、辞書データベース１８j、および文法データベース１９kが得られることになる。
【０１２５】
ここで、管理テーブルは、あらかじめ作成され、ルックアップテーブル記憶部１２に記憶される。管理テーブルは、例えば、次のようにして作成することができる。即ち、管理テーブルは、例えば、音響モデルデータベース１７1乃至１７Iそれぞれに記憶された音響モデル、辞書データベース１８1乃至１８Jそれぞれに記憶された単語辞書、文法データベース１９1乃至１９Kそれぞれに記憶された文法規則のすべての組み合わせそれぞれを用い、ビーム幅を各種の値に設定して、各種のデータ量の特徴ベクトル（系列）を対象としたマッチング処理を行い、そのような複数の条件下でのマッチング処理それぞれによって、音声認識結果をリアルタイムで得るのに必要な音声認識処理のリソースを測定することにより作成することが可能である。
【０１２６】
以上のように構成される音声認識部２４１Ｂでは、そこに入力される音声データが、基本的には、図１の音声認識装置における場合と同様に音声認識処理され、その音声認識結果が出力される。
【０１２７】
即ち、特徴抽出部３は、そこに供給される、ある音声区間の音声データについて、所定のフレームごとに音響分析を行い、特徴ベクトルを抽出する。特徴抽出部３においてフレームごとに得られる特徴ベクトルは、特徴ベクトルバッファ４に順次供給されて記憶される。
【０１２８】
特徴ベクトルバッファ４において、ある音声区間の特徴ベクトル系列の記憶が開始されると、マッチング部５は、特徴ベクトルバッファ４に記憶された特徴ベクトルを用い、セレクタ１３で選択されている音響モデルデータベース１７i、セレクタ１４で選択されている辞書データベース１８j、およびセレクタ１５で選択されている文法データベース１９kを必要に応じて参照し、例えば、連続分布ＨＭＭ法等に基づくスコアを、ビームサーチ法により仮説の枝刈りをしながら計算するマッチング処理を行う。
【０１２９】
即ち、マッチング部５は、まず、セレクタ１４が選択している辞書データベース１８jに記憶されている単語辞書の単語について、特徴ベクトルバッファ４に記憶された時刻０から任意の時刻までの特徴ベクトル系列を用い、セレクタ１３が選択している音響モデルデータベース１７iに記憶されている音響モデル、およびセレクタ１５が選択している文法データベース１９kに記憶されている文法規則を参照することで、ＨＭＭ法に基づくスコアを計算する。さらに、マッチング部５は、例えば、スコアが所定の閾値以上の単語を、最初の仮説として、その単語のスコア計算に用いた特徴ベクトル系列の終点の時刻とともに、仮説スタック６に供給して記憶させる。なお、スコア計算に用いられた特徴ベクトル系列の終点の時刻は、対応する仮説の終点の時刻として扱われる。
【０１３０】
その後、マッチング部５は、仮説スタック６に記憶された仮説のうち、例えば、その終点の時刻が最も先行するもの（終点の時刻が最も過去の仮説）を、注目仮説として、その注目仮説の終点の時刻から任意の時刻までの特徴ベクトルバッファ４に記憶された特徴ベクトル系列を用い、上述した場合と同様に、セレクタ１４が選択している辞書データベース１８jに記憶されている単語辞書の単語について、スコアを計算する。そして、マッチング部５は、例えば、スコアが所定の閾値以上の単語を、注目仮説の後段に接続する単語（以下、接続単語という）として決定し、その接続単語を、仮説スタック６における注目仮説に続けて記憶させることにより、新たな仮説を生成する。さらに、マッチング部５は、仮説スタック６における新たな仮説に対応付けて、その新たな仮説における接続単語のスコア計算に用いた特徴ベクトル系列の終点の時刻を記憶させる。
【０１３１】
また、マッチング部５は、仮説スタック６に記憶された各仮説のスコアを、その仮説を構成する単語のスコア等に基づいて計算し、仮説スタック６の対応する仮説に対応付けて記憶させる。さらに、マッチング部５は、各仮説のスコアに基づいて、ビームサーチ法による仮説の枝刈りを行う。即ち、これにより、仮説スタック６に記憶された仮説の中で、最終的な音声認識結果を構成する可能性が低いものは削除される。
【０１３２】
なお、マッチング部５において、仮説の枝刈りは、パフォーマンスコントローラ１１によって設定されたビーム幅を用いて、前述したように行われる。
【０１３３】
マッチング部５は、以上のような仮説の生成（拡張）と枝刈りを、仮説スタック６に記憶されているすべての仮説の終点が、音声認識の対象としている発話の音声区間の終点に一致するまで行う。
【０１３４】
そして、仮説スタック６に記憶されているすべての仮説の終点が、音声認識の対象としている発話の音声区間の終点に一致すると、マッチング部５は、仮説スタック６に記憶されている仮説のうち、例えば、そのスコアが最も高いものを、音声認識結果として選択して出力する。
【０１３５】
次に、図７のフローチャートを参照して、パフォーマンスコントローラ１１が行う、マッチング部５のマッチング処理を管理する管理処理について説明する。
【０１３６】
管理処理では、まず最初に、ステップＳ１において、パフォーマンスコントローラ１１は、ＣＰＵ２１１Ａ（図４）が音声認識処理に割り当て可能なリソースとしての、例えば、単位時間（例えば、１秒など）あたりの演算量ＣNUMを求める。
【０１３７】
即ち、パフォーマンスコントローラ１１は、ＯＳにアクセスし、例えば、音声認識処理に対して、単位時間あたり、ＣＰＵ２１１Ａの処理時間の何％を割り当てることができるかを認識する。
【０１３８】
そして、例えば、いま、音声認識処理に対して、単位時間あたり、ＣＰＵ２１１Ａの処理時間のｘ％の割り当てが可能であるとすると、パフォーマンスコントローラ１１は、ＣＰＵ２１１Ａの単位時間あたりの演算量（例えば、MIPS(Million Instructions Per Second)値など）yに対して、ｘ／１００％を乗算することにより、ＣＰＵ２１１Ａが音声認識処理に割り当て可能な単位時間あたりの演算量ＣNUMを求める。
【０１３９】
その後、ステップＳ２に進み、パフォーマンスコントローラ１１は、リアルタイムで音声認識結果を出力するために処理すべき特徴ベクトルの残量に相当する値として、特徴抽出部３の処理に対するマッチング部５のマッチング処理の遅れ時間ＴLAGを求める。
【０１４０】
即ち、パフォーマンスコントローラ１１は、特徴ベクトルバッファ４を参照することにより、時間的に最も後行する特徴ベクトルの時刻（最も新しい特徴ベクトルの時刻）ＴVを求める。さらに、パフォーマンスコントローラ１１は、仮説スタック６を参照することにより、時間的に最も先行する仮説の終端の時刻（最も古い終端を有する仮説の、その終端の時刻）ＴHを求める。
【０１４１】
そして、パフォーマンスコントローラ１１は、最も新しい特徴ベクトルの時刻ＴVから、最も古い仮説の終端の時刻ＴHを減算することにより、遅れ時間ＴLAGを求める。
【０１４２】
ここで、ステップＳ１で求められる、音声認識処理に割り当て可能な単位時間あたりの演算量ＣNUMが、上述した管理テーブルにおけるリソースＲに対応する。また、ステップＳ２で求められる遅れ時間ＴLAGが、上述した管理テーブルにおける特徴ベクトルのデータ量Ｓに対応する。
【０１４３】
ステップＳ２の処理後は、ステップＳ３に進み、パフォーマンスコントローラ１１は、ルックアップテーブル記憶部１２に記憶された管理テーブルを参照することにより、その管理テーブルにおいて、演算量ＣNUMおよび遅れ時間ＴLAGの組に対応付けられている管理情報を読み出し、その管理情報にしたがい、マッチング処理でのビームサーチに用いるビーム幅、並びにマッチング処理で参照する音響モデルデータベース１７i、辞書データベース１８j、および文法データベース１９kを決定する。
【０１４４】
そして、ステップＳ４に進み、パフォーマンスコントローラ１１は、ステップＳ３における決定にしたがい、マッチング部５並びにセレクタ１３乃至１５を制御し、管理処理を終了する。
【０１４５】
即ち、これにより、マッチング部５におけるマッチング処理でのビームサーチでは、ステップＳ３で決定されたビーム幅が用いられる。また、マッチング部５におけるマッチング処理でのスコア計算は、ステップＳ３で決定された音響モデルデータベース１７i、辞書データベース１８j、および文法データベース１９kを参照して行われる。
【０１４６】
上述したように、管理テーブルは、音響モデルデータベース１７1乃至１７Iそれぞれに記憶された音響モデル、辞書データベース１８1乃至１８Jそれぞれに記憶された単語辞書、文法データベース１９1乃至１９Kそれぞれに記憶された文法規則のすべての組み合わせそれぞれを用い、ビーム幅を各種の値に設定して、各種のデータ量の特徴ベクトル（系列）を対象としたマッチング処理を行い、そのような複数の条件下でのマッチング処理それぞれによって、音声認識結果をリアルタイムで得るのに必要な音声認識処理のリソースを測定することにより作成されたものであるから、図７の管理処理において、そのような管理テーブルに基づき、ビーム幅、並びに音響モデルデータベース１７i、辞書データベース１８j、および文法データベース１９kが決定されることにより、現在、音声認識処理に割り当て可能なリソースによって、音声認識結果を、最大精度でかつリアルタイムで得ることができる音声認識処理が行われることになる。
【０１４７】
即ち、ＣＰＵ２１１Ａの処理時間（リリース）が余っている場合には、より演算量の要するマッチング処理が行われ、これにより、より精度の高い音声認識結果を、リアルタイムで得ることができる。一方、ＣＰＵ２１１Ａの処理時間が足りない場合には、より演算量の少ないマッチング処理が行われ、これにより、音声認識精度は多少劣化するかもしれないが、やはり、音声認識結果を、リアルタイムで得ることができる。従って、リソースを有効に利用した音声認識処理を行うことができる。
【０１４８】
なお、図３のペット型ロボットにおいて、音声認識処理に割り当て可能なリソースは、時々刻々と変化することから、図７の管理処理は、基本的には、周期的に行われ、これにより、マッチング処理に用いられるビーム幅、並びに音響モデルデータベース１７i、辞書データベース１８j、および文法データベース１９kも、音声認識処理に割り当て可能なリソースと、処理しなければならない特徴ベクトルのデータ量に応じて、周期的に変更される。
【０１４９】
また、上述した一連の音声認識処理（管理処理を含む）は、例えば、汎用のコンピュータに行わせることができ、この場合、一連の音声認識処理を行うプログラムが、汎用のコンピュータにインストールされる。
【０１５０】
さらに、この場合、プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスクやＲＯＭ(Read Only Memory)に予め記録しておくことができる。
【０１５１】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体は、いわゆるパッケージソフトウエアとして提供することができる。
【０１５２】
さらに、プログラムは、上述したようなリムーバブル記録媒体からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを受信し、内蔵するハードディスクにインストールすることができる。
【０１５３】
なお、本明細書において、コンピュータ（ＣＰＵ）に各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０１５４】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１５５】
さらに、本実施の形態では、セレクタ１３が選択する音響モデルデータベース１７iによって、マッチング部５でのスコア計算に用いる特徴ベクトルの高次のコンポーネントを無視するようにしたが、その他、例えば、セレクタ１３が選択する音響モデルデータベース１７iに基づき、特徴抽出部３で求められる特徴ベクトルの次元数を、音響モデルデータベース１７iに記憶された音響モデルに対応するように制御することも可能である。
【０１５６】
さらに、マッチング部５で用いられるビーム幅は、仮説スタック６の空き容量等にも基づいて決定するようにすることが可能である。
【０１５７】
また、本発明は、ＨＭＭ法以外のアルゴリズムによる音声認識にも適用可能である。さらに、本発明は、ビームサーチ法を用いない音声認識にも適用可能である。
【０１５８】
さらに、本実施の形態では、管理テーブルにおいて、演算量ＣNUMおよび遅れ時間ＴLAGの組に、管理情報を対応付けておき、その管理テーブルを参照することにより管理情報を得るようにしたが、その他、例えば、演算量ＣNUMおよび遅れ時間ＴLAGを引数として、管理情報を求める関数を用意しておき、その関数を用いて、管理情報を得るようにすることも可能である。
【０１５９】
【発明の効果】
本発明の一側面によれば、リアルタイムでの音声認識を、リソースを有効に利用して行うことが可能となる。
【図面の簡単な説明】
【図１】従来の音声認識装置の一例の構成を示すブロック図である。
【図２】ビームサーチ法を説明するための図である。
【図３】本発明を適用したペット型ロボットの外観構成例を示す斜視図である。
【図４】ペット型ロボットのハードウェア構成例を示すブロック図である。
【図５】コントローラ２１１の機能的構成例を示すブロック図である。
【図６】音声認識部２４１Ｂの機能的構成例を示すブロック図である。
【図７】パフォーマンスコントローラ１１による管理処理を説明するフローチャートである。
【符号の説明】
３  特徴抽出部，  ４  特徴ベクトルバッファ，  ５  マッチング部，  ６  仮説スタック，  １１  パフォーマンスコントローラ，  １２  ルックアップテーブル，  １３乃至１５  セレクタ，  １７1乃至１７I  音響モデルデータベース，  １８1乃至１８J  辞書データベース，  １９1乃至１９K  文法データベース，  ２０１  胴体部ユニット，  ２０１Ａ  背中センサ，  ２０２Ａ乃至２０２Ｄ  脚部ユニット，  ２０３  頭部ユニット，  ２０３Ａ  頭センサ，  ２０３Ｂ  顎センサ，  ２０４  尻尾部ユニット，  ２１１  コントローラ，  ２１１Ａ  ＣＰＵ，  ２１１Ｂ  メモリ，  ２１２  Ａ／Ｄ変換部，  ２１３  Ｄ／Ａ変換部，  ２１４  通信部，  ２１５  半導体メモリ，  ２２１  マイク，  ２２２  ＣＣＤ，  ２２３  スピーカ，  ２４１  センサ入力処理部，  ２４１Ａ  圧力処理部，  ２４１Ｂ  音声認識部，  ２４１Ｃ  画像処理部，  ２４２モデル記憶部，  ２４３  行動決定機構部，  ２４４  姿勢遷移機構部，  ２４５  制御機構部，  ２４６  音声合成部
【図１】
0004639533.tif 000002
【図２】
0004639533.tif 000003
【図３】
0004639533.tif 000004
【図４】
0004639533.tif 000005
【図５】
0004639533.tif 000006
【図６】
0004639533.tif 000007
【図７】
0004639533.tif 000008