(57)【特許請求の範囲】
【請求項１】
音声を認識する音声認識装置であって、
前記音声の特徴量を抽出する抽出手段と、
前記音声の特徴量が、その特徴量空間において属する部分空間を検出する検出手段と、
前記特徴量空間の複数の部分空間それぞれごとに、前記音声の特徴量とのマッチング処理に用いられるＨＭＭ(Hidden Markov Model)を定義する１以上の定義情報を対応付けて記憶している記憶手段と、
前記音声の特徴量が属する前記部分空間に対応付けられている前記１以上の定義情報から、任意の１以上の定義情報を選択する選択手段と、
前記選択手段において選択された定義情報を用いて、前記音声の特徴量と前記ＨＭＭとのマッチング処理を行うことにより、前記音声が、前記ＨＭＭに対応するものであることの尤度を表すスコアを求め、そのスコアに基づいて、前記音声の音声認識結果を出力するマッチング手段と
を備え、
前記定義情報は、前記ＨＭＭが前記特徴量を出力する出力確率を求めるのに用いられる確率密度関数または確率関数であり、
前記選択手段は、ユーザの操作にしたがって設定される音声認識処理の速度若しくは精度、又は、音声認識処理に割り当て可能なリソースに応じて設定される音声認識処理の速度若しくは精度に基づいて、前記音声認識処理の速度または精度に対応する個数の前記定義情報を、前記定義情報がスコアに寄与する大きさに対応する順番で選択する
音声認識装置。
【請求項２】
前記定義情報は、さらに、前記ＨＭＭが前記特徴量を出力する出力確率を表す固定値を含む
請求項１に記載の音声認識装置。
【請求項３】
前記記憶手段は、前記音声認識処理の速度または精度に対応して、前記選択手段に選択させる前記定義情報の個数も記憶しており、
前記選択手段は、前記音声認識処理の速度または精度に対応する個数の前記定義情報を選択する
請求項１に記載の音声認識装置。
【請求項４】
前記記憶手段は、前記特徴量空間の複数の部分空間それぞれごとに、前記音声の特徴量とのマッチング処理に用いられる前記ＨＭＭを定義する１以上の定義情報を対応付けた定義情報テーブルを、前記音声認識処理の速度または精度ごとに記憶しており、
前記選択手段は、前記音声認識処理の速度または精度に対応する前記定義情報テーブルから、前記定義情報を選択する
請求項１に記載の音声認識装置。
【請求項５】
前記マッチング手段は、連続量または離散値の前記特徴量を用いて、連続ＨＭＭ法または離散ＨＭＭ法に基づく前記マッチング処理を行う
請求項１に記載の音声認識装置。
【請求項６】
音声を認識する音声認識装置の音声認識方法であって、
前記音声認識装置が、前記音声の特徴量を抽出する抽出ステップと、
前記音声認識装置が、前記音声の特徴量が、その特徴量空間において属する部分空間を検出する検出ステップと、
前記音声認識装置が、前記特徴量空間の複数の部分空間それぞれごとに、前記音声の特徴量とのマッチング処理に用いられるＨＭＭ(Hidden Markov Model)を定義する１以上の定義情報を対応付けて記憶している記憶手段における、前記音声の特徴量が属する前記部分空間に対応付けられている前記１以上の定義情報から、任意の１以上の定義情報を選択する選択ステップと、
前記音声認識装置が、前記選択ステップにおいて選択された定義情報を用いて、前記音声の特徴量と前記ＨＭＭとのマッチング処理を行うことにより、前記音声が、前記ＨＭＭに対応するものであることの尤度を表すスコアを求め、そのスコアに基づいて、前記音声の音声認識結果を出力するマッチングステップと
を備え、
前記定義情報は、前記ＨＭＭが前記特徴量を出力する出力確率を求めるのに用いられる確率密度関数または確率関数であり、
前記選択ステップでは、ユーザの操作にしたがって設定される音声認識処理の速度若しくは精度、又は、音声認識処理に割り当て可能なリソースに応じて設定される音声認識処理の速度若しくは精度に基づいて、前記音声認識処理の速度または精度に対応する個数の前記定義情報を、前記定義情報がスコアに寄与する大きさに対応する順番で選択する
音声認識方法。
【請求項７】
音声を認識する音声認識処理を、コンピュータに行わせるプログラムであって、
前記音声の特徴量を抽出する抽出手段と、
前記音声の特徴量が、その特徴量空間において属する部分空間を検出する検出手段と、
前記特徴量空間の複数の部分空間それぞれごとに、前記音声の特徴量とのマッチング処理に用いられるＨＭＭ(Hidden Markov Model)を定義する１以上の定義情報を対応付けて記憶している記憶手段と、
前記音声の特徴量が属する前記部分空間に対応付けられている前記１以上の定義情報から、任意の１以上の定義情報を選択する選択手段と、
前記選択手段において選択された定義情報を用いて、前記音声の特徴量と前記ＨＭＭとのマッチング処理を行うことにより、前記音声が、前記ＨＭＭに対応するものであることの尤度を表すスコアを求め、そのスコアに基づいて、前記音声の音声認識結果を出力するマッチング手段と
して、コンピュータを機能させるためのプログラムであり、
前記定義情報は、前記ＨＭＭが前記特徴量を出力する出力確率を求めるのに用いられる確率密度関数または確率関数であり、
前記選択手段は、ユーザの操作にしたがって設定される音声認識処理の速度若しくは精度、又は、音声認識処理に割り当て可能なリソースに応じて設定される音声認識処理の速度若しくは精度に基づいて、前記音声認識処理の速度または精度に対応する個数の前記定義情報を、前記定義情報がスコアに寄与する大きさに対応する順番で選択する
プログラム。
【請求項８】
音声を認識する音声認識処理を、コンピュータに行わせるプログラムが記録されている記録媒体であって、
前記音声の特徴量を抽出する抽出手段と、
前記音声の特徴量が、その特徴量空間において属する部分空間を検出する検出手段と、
前記特徴量空間の複数の部分空間それぞれごとに、前記音声の特徴量とのマッチング処理に用いられるＨＭＭ(Hidden Markov Model)を定義する１以上の定義情報を対応付けて記憶している記憶手段と、
前記音声の特徴量が属する前記部分空間に対応付けられている前記１以上の定義情報から、任意の１以上の定義情報を選択する選択手段と、
前記選択手段において選択された定義情報を用いて、前記音声の特徴量と前記ＨＭＭとのマッチング処理を行うことにより、前記音声が、前記ＨＭＭに対応するものであることの尤度を表すスコアを求め、そのスコアに基づいて、前記音声の音声認識結果を出力するマッチング手段と
して、コンピュータを機能させるためのプログラムであり、
前記定義情報は、前記ＨＭＭが前記特徴量を出力する出力確率を求めるのに用いられる確率密度関数または確率関数であり、
前記選択手段は、ユーザの操作にしたがって設定される音声認識処理の速度若しくは精度、又は、音声認識処理に割り当て可能なリソースに応じて設定される音声認識処理の速度若しくは精度に基づいて、前記音声認識処理の速度または精度に対応する個数の前記定義情報を、前記定義情報がスコアに寄与する大きさに対応する順番で選択する
プログラムが記録されている記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声認識装置および音声認識方法、並びにプログラムおよび記録媒体に関し、例えば、ユーザ等の要求に応じた速度または精度の音声認識処理を行うことができるようにする音声認識装置および音声認識方法、並びにプログラムおよび記録媒体に関する。
【０００２】
【従来の技術】
図１は、従来の音声認識装置の一例の構成を示している。
【０００３】
ユーザが発した音声は、マイク（マイクロフォン）１に入力され、マイク１では、その入力音声が、電気信号としての音声信号に変換される。この音声信号は、ＡＤ(Analog Digital)変換部２に供給される。ＡＤ変換部２では、マイク１からのアナログ信号である音声信号がサンプリング、量子化され、ディジタル信号である音声データに変換される。この音声データは、特徴抽出部３に供給される。
【０００４】
特徴抽出部３は、ＡＤ変換部２からの音声データについて、適当なフレームごとに音響処理を施し、これにより、例えば、ＭＦＣＣ(Mel Frequency Cepstrum Coefficient)等の特徴ベクトル（特徴量）を抽出し、マッチング部４に供給する。なお、特徴抽出部３では、その他、例えば、スペクトルや、線形予測係数、ケプストラム係数、線スペクトル対等の特徴量を抽出することが可能である。
【０００５】
マッチング部４は、特徴抽出部３からの特徴ベクトルを用いて、音響モデルデータベース５、辞書データベース６、および文法データベース７を必要に応じて参照しながら、マイク１に入力された音声（入力音声）を、例えば、連続分布ＨＭＭ法等に基づいて音声認識する。
【０００６】
即ち、音響モデルデータベース５は、音声認識する音声の言語における個々の音素や音節などの音響的な特徴を表す音響モデルを記憶している。ここでは、連続分布ＨＭＭ法に基づいて音声認識を行うので、音響モデルとしては、例えば、ＨＭＭ(Hidden Markov Model)が用いられる。辞書データベース６は、認識対象の各単語について、その発音に関する情報（音韻情報）が記述された単語辞書を記憶している。文法データベース７は、辞書データベース６の単語辞書に登録されている各単語が、どのように連鎖する（つながる）かを記述した文法規則（言語モデル）を記憶している。ここで、文法規則としては、例えば、文脈自由文法（ＣＦＧ）や、統計的な単語連鎖確率（Ｎ−ｇｒａｍ）などに基づく規則を用いることができる。
【０００７】
マッチング部４は、辞書データベース６の単語辞書を参照することにより、音響モデルデータベース５に記憶されている音響モデルを接続することで、単語の音響モデル（単語モデル）を構成する。さらに、マッチング部４は、幾つかの単語モデルを、文法データベース７に記憶された文法規則を参照することにより接続し、そのようにして接続された単語モデルと、マイク１に入力された音声から抽出された特徴ベクトル系列とのマッチング処理を、例えば、連続分布ＨＭＭ法に基づいて行い、その音声を認識する。即ち、マッチング部４は、特徴抽出部３から供給される時系列の特徴ベクトルが出力（観測）されるスコア（尤度）が最も高い単語モデルの系列を検出し、その単語モデルの系列に対応する単語列を、音声の認識結果として出力する。
【０００８】
つまり、マッチング部４は、接続された単語モデルに対応する単語列について、各特徴ベクトルの出現確率を累積し、その累積値をスコアとして、そのスコアを最も高くする単語列を、音声認識結果として出力する。
【０００９】
スコア計算は、一般に、音響モデルデータベース５に記憶された音響モデルによって与えられる音響的なスコア（以下、適宜、音響スコアという）と、文法データベース７に記憶された文法規則によって与えられる言語的なスコア（以下、適宜、言語スコアという）とを総合評価することで行われる。
【００１０】
即ち、音響スコアとしては、例えば、ＨＭＭ法による場合には、単語モデルを構成する音響モデルから、特徴抽出部３が出力する特徴ベクトルの系列が出力（観測）される確率（出力確率）の累積値が計算される。また、言語スコアとしては、例えば、バイグラムによる場合には、注目している単語と、その単語の直前の単語とが連鎖（連接）する確率が求められる。そして、各単語についての音響スコアと言語スコアとを総合評価（例えば、重み付け加算など）して得られる最終的なスコア（以下、適宜、最終スコアという）に基づいて、音声認識結果が確定される。
【００１１】
以上のような処理が行われることにより、図１の音声認識装置では、例えば、ユーザが、「今日はいい天気ですね」と発話した場合には、「今日」、「は」、「いい」、「天気」、「ですね」といった各単語に、音響スコアおよび言語スコアが与えられ、それらを総合評価して得られる最終スコアが最も大きいときに、単語列「今日」、「は」、「いい」、「天気」、「ですね」が、音声認識結果として出力される。
【００１２】
ところで、上述の場合において、辞書データベース６の単語辞書に、「今日」、「は」、「いい」、「天気」、および「ですね」の５単語が登録されているとすると、これらの５単語を用いて構成しうる５単語の並びは、５5通り存在する。従って、単純には、マッチング部４では、この５5通りの単語列を評価し、その中から、ユーザの発話に最も適合するもの（最終スコアを最も大きくするもの）を決定しなければならない。そして、単語辞書に登録する単語数が増えれば、その単語数分の単語の並びの数は、単語数の単語数乗通りになるから、評価の対象としなければならない単語列は、膨大な数となる。
【００１３】
さらに、一般には、発話中に含まれる単語の数は未知であるから、５単語の並びからなる単語列だけでなく、１単語、２単語、・・・からなる単語列も、評価の対象とする必要がある。従って、評価すべき単語列の数は、さらに膨大なものとなるから、そのような膨大な単語列の中から、音声認識結果として最も確からしいものを、演算量の観点から効率的に決定することは、非常に重要な問題である。
【００１４】
音声認識精度の劣化を抑えながら、計算量の低減化を図る方法としては、例えば、E.Bocchieri. Vector quantization for the efficient computation of continuous density likelihoods. In International Conference on Acoustic, Speech, and Signal Processing, volume 2, pages 692-695, Apr. 1993（以下、文献１という）、K.M.Knill, M.J.F.Gales, and S.J.Young. Use of gaussian selection in large vocabulary continuous speech recognition using hmms. In International Conference on Spoken Language Processing, volume 1, pages 470-473, Oct. 1996（以下、文献２という）、M.J.F.Gales, K.M.Knill, and S.J.Young. State-based gaussian selection in large vocabulary continuous speech recognition using hmms. In Cambridge University Technical Report, TR284, Jan. 1997（以下、文献３という）、S.M.Herman and R.A.Sukkar. Variable threshold vector quantization for reduced continuous density likelihood computation in speech recognition. In IEEE Workshop on Acoustic Speech Recognition and Understanding Proceedings, pages 331-338, Santa Babara, 1997（以下、文献４という）に記載されているように、音響スコアを構成する出力確率の計算の一部を省略する方法がある。
【００１５】
即ち、例えば、連続ＨＭＭ法によれば、ＨＭＭが、ある状態ｓにおいて、時刻ｔの特徴ベクトルｘtを出力する出力確率ｂs（ｘt）は、次式で計算される。
【００１６】
ｂs（ｘt）＝Σｃm×ｇm（ｘt）・・・（１）
【００１７】
ここで、式（１）において、ｃmは、ｍ番目の関数ｇm（）に対する重み係数であり、関数ｇm（）は、ＨＭＭを構成するｍ番目の確率密度関数（例えば、ガウス分布）である。また、Σは、変数ｍについてのサメーションを表す。従って、式（１）によれば、出力確率ｂs（ｘt）は、確率密度関数ｇm（ｘt）の重みｃm付き和として計算される。
【００１８】
重み係数ｃmと確率密度関数ｇm（）は、音響モデルであるＨＭＭを定義する情報としての定義情報のひとつであり（他の定義情報としては、例えば、ＨＭＭの状態が、ある状態から、必要に応じてその状態を含む他の状態に遷移する確率としての状態遷移確率がある）、ＨＭＭは、重み係数ｃmと確率密度関数ｇm（）のセットを、１セットだけ用いて定義される場合の他、複数セット用いて定義される場合がある。
【００１９】
ＨＭＭが、複数としてのＮセットの重み係数ｃ0乃至ｃN-1と確率密度関数ｇ0乃至gN-1（）を用いて定義される場合、式（１）の計算は、変数ｍを０からＮ−１までの整数値に変えて行う必要がある。
【００２０】
しかしながら、ＨＭＭを定義するＮ個の確率密度関数ｇ0（ｘt），ｇ1（ｘt），・・・，ｇN-1（ｘt）の中には、出力確率ｂs（ｘt）、ひいては音響スコアに寄与する大きさ（程度）（以下、適宜、寄与度という）が非常に小さいもの（ほとんど寄与しないもの）が存在する場合がある。
【００２１】
そこで、文献１乃至４に記載の方法では、寄与度が非常に小さい確率密度関数ｇm（）について、式（１）の計算から省略することで、音声認識精度の劣化を抑えながら、計算量の低減化を図るようになっている。
【００２２】
具体的には、例えば、図２に示すような、特徴ベクトル空間の所定の部分空間ごとに、その部分空間に属する特徴ベクトルｘtの出力確率ｂs（ｘt）の計算に用いる１以上の確率密度関数ｇm（）を対応付けた表（以下、適宜、計算対象関数表という）が作成され、ある部分空間に属する特徴ベクトルｘtの出力確率ｂs（ｘt）の計算は、Ｎ個の確率密度関数ｇ0（）乃至ｇN-1（）のうち、計算対象関数表において、特徴ベクトルｘtが属する部分空間に対応付けられているものだけを用いて行われる。
【００２３】
この場合、一部の確率密度関数の計算を省くことができるので、演算量が低減され、さらに、音声認識処理の速度を向上させることができる。また、計算が省かれる確率密度関数は、スコアｂs（ｘt）に対する寄与度がほとんどないものであるから、その計算の省略による音声認識精度の劣化を抑えることができる。
【００２４】
ここで、図２の計算対象関数表において（後述する図６乃至図９においても同様）、特徴ベクトル空間は、Ｙ0，Ｙ1，・・・，Ｙ511の５１２の部分空間に分割されている。
【００２５】
また、計算対象関数表では、部分空間ごとではなく、特徴ベクトルｘtごとに、その特徴ベクトルｘtの出力確率ｂs（ｘt）の計算に用いる１以上の確率密度関数ｇm（）を対応付けておくのが理想的であるが、そうすると、特徴ベクトルｘtは連続量であることから、計算対象関数表を作成することができなくなるため、計算対象関数表は、部分空間ごとに、確率密度関数ｇmを対応付ける形で作成される。
【００２６】
図２の計算対象関数表によれば、例えば、部分空間Ｙ0に属する特徴ベクトルｘtの出力確率ｂs（ｘt）は、式ｂs（ｘt）＝ｃ0ｇ0（ｘt）＋ｃ1ｇ1（ｘt）＋ｃ5ｇ5（ｘt）＋ｃ15ｇ15（ｘt）によって計算されることになる。
【００２７】
一方、ＨＭＭを定義する確率密度関数ｇm（）の総数Ｎを、例えば、１６とすると、式（１）をそのまま採用する場合には、特徴ベクトルｘtの出力確率ｂs（ｘt）は、式ｂs（ｘt）＝ｃ0ｇ0（ｘt）＋ｃ1ｇ1（ｘt）＋・・・＋ｃ15ｇ15（ｘt）によって計算されることになる。
【００２８】
従って、式（１）をそのまま用いる場合には、１６の確率密度関数について演算を行う必要があるが、計算対象関数表を用いる場合には、４つの確率密度関数について演算を行えば済むことになり、大幅に演算量を低減することができる。
【００２９】
なお、計算対象関数表を用いる場合には、特徴ベクトルｘtが、５１２の部分空間Ｙ0乃至Ｙ511のうちのいずれに属するかを検出する必要があるが、この部分空間の検出方法としては、例えば、ベクトル量子化を用いることができる。
【００３０】
【発明が解決しようとする課題】
上述のように、計算対象関数表を用いることにより、音響スコア（出力確率）を求めるための演算量を低減し、音声認識精度の低下を抑えながら、音声認識処理速度を向上させることができる。
【００３１】
しかしながら、例えば、音声認識処理に割り当てられるリソースが少なくなった場合であっても、リアルタイムでの音声認識処理が要求されるときには、多少の音声認識精度の劣化があったとしても、音声認識処理速度を向上させること、即ち、演算量をリソースにあわせて少なくすることが望ましい。
【００３２】
これは、リアルタイムでの音声認識処理が要求される場合には、その後に、その音声認識結果に基づいて処理が行われることが一般的であり、従って、リアルタイムで音声認識結果が得られない場合には、その後の処理に支障をきたすこととなるからである。
【００３３】
一方、例えば、音声認識処理に割り当て可能なリソースが十分ある場合には、その十分なリソースによって、多くの演算を行い、精度の高い音声認識処理をリアルタイムで得ることができる。即ち、この場合、音声認識処理速度を低下させても、精度の高い音声認識結果をリアルタイムで得ることができる。従って、リソースが十分な場合には、その十分なりソースを使用して、精度の高い音声認識処理を行うのが、リソースの有効利用の観点からは望ましい。
【００３４】
本発明は、このような状況に鑑みてなされたものであり、要求に応じた速度や精度の音声認識処理を行うことができるようにするものである。
【００３５】
【課題を解決するための手段】
本発明の一側面の音声認識装置、プログラム、又は、記録媒体は、音声を認識する音声認識装置であって、前記音声の特徴量を抽出する抽出手段と、前記音声の特徴量が、その特徴量空間において属する部分空間を検出する検出手段と、前記特徴量空間の複数の部分空間それぞれごとに、前記音声の特徴量とのマッチング処理に用いられるＨＭＭ(Hidden Markov Model)を定義する１以上の定義情報を対応付けて記憶している記憶手段と、前記音声の特徴量が属する前記部分空間に対応付けられている前記１以上の定義情報から、任意の１以上の定義情報を選択する選択手段と、前記選択手段において選択された定義情報を用いて、前記音声の特徴量と前記ＨＭＭとのマッチング処理を行うことにより、前記音声が、前記ＨＭＭに対応するものであることの尤度を表すスコアを求め、そのスコアに基づいて、前記音声の音声認識結果を出力するマッチング手段とを備え、前記定義情報は、前記ＨＭＭが前記特徴量を出力する出力確率を求めるのに用いられる確率密度関数または確率関数であり、前記選択手段は、ユーザの操作にしたがって設定される音声認識処理の速度若しくは精度、又は、音声認識処理に割り当て可能なリソースに応じて設定される音声認識処理の速度若しくは精度に基づいて、前記音声認識処理の速度または精度に対応する個数の前記定義情報を、前記定義情報がスコアに寄与する大きさに対応する順番で選択する音声認識装置、そのような音声認識装置として、コンピュータを機能させるためのプログラム、又は、そのようなプログラムが記録されている記録媒体である。
【００３６】
本発明の一側面の音声認識方法は、音声を認識する音声認識装置の音声認識方法であって、前記音声認識装置が、前記音声の特徴量を抽出する抽出ステップと、前記音声の特徴量が、その特徴量空間において属する部分空間を検出する検出ステップと、前記特徴量空間の複数の部分空間それぞれごとに、前記音声の特徴量とのマッチング処理に用いられるＨＭＭ(Hidden Markov Model)を定義する１以上の定義情報を対応付けて記憶している記憶手段における、前記音声の特徴量が属する前記部分空間に対応付けられている前記１以上の定義情報から、任意の１以上の定義情報を選択する選択ステップと、前記選択ステップにおいて選択された定義情報を用いて、前記音声の特徴量と前記ＨＭＭとのマッチング処理を行うことにより、前記音声が、前記ＨＭＭに対応するものであることの尤度を表すスコアを求め、そのスコアに基づいて、前記音声の音声認識結果を出力するマッチングステップとを備え、前記定義情報は、前記ＨＭＭが前記特徴量を出力する出力確率を求めるのに用いられる確率密度関数または確率関数であり、前記選択ステップでは、ユーザの操作にしたがって設定される音声認識処理の速度若しくは精度、又は、音声認識処理に割り当て可能なリソースに応じて設定される音声認識処理の速度若しくは精度に基づいて、前記音声認識処理の速度または精度に対応する個数の前記定義情報を、前記定義情報がスコアに寄与する大きさに対応する順番で選択する音声認識方法である。
【００３９】
本発明の一側面においては、前記音声の特徴量が抽出され、前記音声の特徴量が、その特徴量空間において属する部分空間が検出される。さらに、前記特徴量空間の複数の部分空間それぞれごとに、前記音声の特徴量とのマッチング処理に用いられるＨＭＭ(Hidden Markov Model)を定義する１以上の定義情報を対応付けて記憶している記憶手段における、前記音声の特徴量が属する前記部分空間に対応付けられている前記１以上の定義情報から、任意の１以上の定義情報が選択される。そして、その選択された定義情報を用いて、前記音声の特徴量と前記ＨＭＭとのマッチング処理を行うことにより、前記音声が、前記ＨＭＭに対応するものであることの尤度を表すスコアが求められ、そのスコアに基づいて、前記音声の音声認識結果が出力される。前記定義情報は、前記ＨＭＭが前記特徴量を出力する出力確率を求めるのに用いられる確率密度関数または確率関数であり、その定義情報の選択では、ユーザの操作にしたがって設定される音声認識処理の速度若しくは精度、又は、音声認識処理に割り当て可能なリソースに応じて設定される音声認識処理の速度若しくは精度に基づいて、前記音声認識処理の速度または精度に対応する個数の前記定義情報が、前記定義情報がスコアに寄与する大きさに対応する順番で選択される。
【００４０】
【発明の実施の形態】
図３は、本発明を適用した音声認識装置の一実施の形態の構成例を示している。なお、図中、図１における場合と対応する部分については、同一の符号を付してあり、以下では、その説明は、適宜省略する。即ち、図３の音声認識装置は、マッチング部４に代えて、マッチング部１１が新たに設けられている他は、図１における場合と同様に構成されている。
【００４１】
図４は、図３のマッチング部１１の構成例を示している。
【００４２】
特徴抽出部３（図３）が出力する時系列の特徴ベクトルは、部分空間検出部２１とスコア計算部２５に供給されるようになっている。
【００４３】
部分空間検出部２１は、部分空間データ記憶部２２を参照することにより、そこに供給される特徴ベクトルが、その特徴ベクトル空間において属する部分空間を検出し、その部分空間を表す部分空間情報を、計算対象関数選択部２３に供給する。
【００４４】
部分空間データ記憶部２２は、部分空間検出部２１が、特徴ベクトルが属する部分空間を検出するのに必要な情報としての部分空間データを記憶している。
【００４５】
ここで、部分空間検出部２１においては、例えば、ベクトル量子化によって、特徴ベクトルが属する部分空間を検出するようにすることができ、この場合、部分空間データ記憶部２２においては、部分空間データとして、そのベクトル量子化に用いられるコードブックが記憶される。
【００４６】
なお、コードブックは、多数の音声データを用い、コードブック学習用のアルゴリズムの１つである、例えば、ＬＢＧ(Linde Buzo Gray)アルゴリズム等によって学習を行うことにより作成することが可能である。
【００４７】
コードブックには、特徴ベクトル空間を幾つかの部分空間（本実施の形態では、前述したように、５１２の部分空間であるとする）に分割したときの各部分空間の代表のベクトルとしてのコードベクトルと、そのコードベクトルを表すコードとが登録されている。従って、特徴ベクトル空間を、例えば、５１２の部分空間に分割した場合には、コードブックには、５１２のコードベクトルと対応するコードが登録されている。
【００４８】
部分空間検出部２１は、特徴ベクトルと、コードブックに登録された５１２のコードベクトルそれぞれとの距離を計算し、その距離を最も短くするコードベクトルを検出する。そして、部分空間検出部２１は、そのコードベクトルを代表のベクトルとする部分空間が、特徴ベクトルが属する部分空間であるとして、その検出したコードベクトルに対応するコードを、特徴ベクトルが属する部分空間を表す部分空間情報として出力する。
【００４９】
計算対象関数選択部２３は、部分空間検出部２１からの部分空間情報に基づき、計算対象関数表記憶部２４に記憶された計算対象関数表（定義情報テーブル）を参照することで、特徴ベクトルを用いた音響スコア（出力確率）の計算に用いる、音響モデル（ここでは、前述したように、ＨＭＭ）を定義する確率密度関数等を選択する。
【００５０】
即ち、計算対象関数選択部２３には、部分空間検出部２１から部分空間情報が供給される他、速度／精度設定部２７から、速度／精度情報も供給されるようになっている。
【００５１】
計算対象関数選択部２３は、計算対象関数表記憶部２４に記憶された計算対象関数表において、部分空間検出部２１からの部分空間情報が表す部分空間に対応付けられている確率密度関数等から、速度／精度設定部２７から供給される速度／精度設定情報に基づき、１以上の確率密度関数等を選択する。そして、計算対象関数選択部２３は、その選択した確率密度関数等を表す選択情報を、スコア計算部２５に供給する。
【００５２】
計算対象関数表記憶部２４は、特徴ベクトル空間の複数の部分空間それぞれごとに、音響モデルデータベース５に記憶された音響モデルを定義する１以上の確率密度関数等を対応付けた計算対象関数表を記憶している。
【００５３】
スコア計算部２５は、特徴抽出部３から供給される特徴ベクトルを用いて、音響モデルデータベース５に記憶された音響モデル、辞書データベース６に記憶された単語辞書、および文法データベース７に記憶された文法規則を必要に応じて参照し、音声認識結果の候補（以下、適宜、仮説という）を構成しながら、各仮説について、前述したようなＨＭＭ法に基づく音響スコアと、言語スコアを計算する。
【００５４】
但し、スコア計算部２５は、音響スコアについては、音響モデルを定義する確率密度関数すべてではなく、計算対象関数選択部２３から供給される選択情報が表す確率密度関数等を用いて、特徴ベクトルｘtの出力確率ｂs（ｘt）を求め、その出力確率に基づいて、音響スコアを求める。
【００５５】
スコア計算部２５において求められた音響スコアおよび言語スコアは、出力選択部２６に供給され、出力選択部２６は、各仮説について得られた音響スコアおよび言語スコアを総合評価して最終スコアを得て、例えば、その最終スコアを最も大きくする仮説を選択し、音声認識結果として出力する。
【００５６】
速度／精度設定部２７は、操作レバー２８の操作にしたがい、音声認識処理の速度または精度を設定し、その設定した速度または精度を表す速度／精度情報を、計算対象関数選択部２３に供給する。
【００５７】
操作レバー２８は、ユーザが、音声認識処理の速度または精度を指定するときに操作され、その操作に対応する操作信号を、速度／精度設定部２７に供給する。
【００５８】
従って、  速度／精度設定部２７では、ユーザの要求にしたがって、音声認識処理の速度または精度が設定される。
【００５９】
ここで、操作レバー２８は、物理的なレバーとして構成することもできるし、画面上に表示される仮想的なレバーとして構成することもできる。操作レバー２８が、物理的なレバーとして構成される場合には、操作レバー２８は、ユーザが実際に掴んで操作することになる。また、操作レバー２８が仮想的なレバーとして構成される場合は、操作レバー２８は、ユーザがマウスでドラッグ等して操作することになる。
【００６０】
なお、図４の実施の形態においては、より低速または高精度の音声認識処理を要求する場合には、操作レバー２８は左方向に操作され、逆に、より高速または低精度の音声認識処理を要求する場合には、操作レバー２８は右方向に操作されるようになっている。
【００６１】
次に、図５のフローチャートを参照して、図４のマッチング部１１で行われるマッチング処理について説明する。
【００６２】
ユーザが発話を行い、これにより、特徴抽出部３が、その音声の特徴ベクトルの出力を開始すると、マッチング部１１は、マッチング処理を開始する。
【００６３】
即ち、特徴抽出部３が出力する時系列の特徴ベクトルは、部分空間選択部２１とスコア計算部２５に供給され、部分空間検出部２１は、ステップＳ１において、部分空間データ記憶部２２を参照し、特徴抽出部３からの特徴ベクトルｘtが属する部分空間を検出する。そして、部分空間検出部２１は、その部分空間を表す部分空間情報を、計算対象関数選択部２３に供給し、ステップＳ２に進む。
【００６４】
ステップＳ２では、計算対象関数選択部２３が、計算対象関数表記憶部２４に記憶された計算対象関数表において、部分空間検出部２１からの部分空間情報が表す部分空間に対応付けられている確率密度関数等から、１以上の確率密度関数等を、必要に応じて速度／精度設定部２７からの速度／精度設定情報に基づいて選択し、その選択した確率密度関数等を表す選択情報を、スコア計算部２５に供給する。
【００６５】
スコア計算部２５は、ステップＳ３において、辞書データベース６の単語辞書に記憶された単語について、計算対象関数選択部２３から供給される選択情報が表す、音響モデルデータベース５の音響モデルを定義する確率密度関数等を用いて、特徴ベクトルｘtの出力確率ｂs（ｘt）を求め、その出力確率に基づいて、音響スコアを求めるとともに、文法データベース７の文法規則を参照することで、言語スコアを求める。さらに、スコア計算部２５は、その音響スコアおよび言語スコアに基づき、必要に応じて、仮説（音声認識結果の候補）を生成して、ステップＳ４に進む。
【００６６】
ステップＳ４では、ユーザが発話を行った音声区間の終点までについて、音響スコアと言語スコアの計算が終了したかどうかが判定され、終了していないと判定された場合、ステップＳ１に戻り、次の特徴ベクトルを対象に、以下、同様の処理が繰り返される。なお、音響スコアおよび言語スコアの計算は、必要に応じて、ビームサーチ法による枝狩りをしながら行われる。
【００６７】
また、ステップＳ４において、ユーザが発話を行った音声区間の終点までについて、音響スコアと言語スコアの計算が終了したと判定された場合、ステップＳ５に進み、出力選択部２６は、１以上の仮説について得られた音響スコアおよび言語スコアを総合評価して最終スコアを得て、例えば、その最終スコアを元も大きくする仮説を選択し、音声認識結果として出力して、マッチング処理を終了する。
【００６８】
次に、図６乃至図９を参照して、図４の計算対象関数表記憶部２４に記憶される計算対象関数表について説明する。なお、以下においては、例えば、特徴ベクトル空間は５１２の部分空間Ｙ0乃至Ｙ511に分割されており、音響モデルデータベース５に記憶された音響モデルとしてのＨＭＭは、１６の確率密度関数ｇ0（）乃至ｇ15（）で定義されるものとする。
【００６９】
図４のマッチング部１１では、基本的には、上述したように、計算対象関数表記憶部２４に記憶された計算対象関数表において、部分空間検出部２１が出力する部分空間情報が表す部分空間（特徴ベクトルｘtが属する部分空間）に対応付けられている確率密度関数等から、１以上の確率密度関数等が、速度／精度情報に基づいて選択され、その確率密度関数等を用いて、特徴ベクトルｘtの出力確率ｂs（ｘt）が求められるが、この出力確率ｂs（ｘt）は、計算対象関数表において、特徴ベクトルｘtが属する部分空間に対応付けられている確率密度関数等すべてを用いて計算することも可能である。
【００７０】
即ち、マッチング部１１では、出力確率ｂs（ｘt）を、特徴ベクトルｘtが属する部分空間に対応付けられている確率密度関数等から選択したものを用いて計算することも可能であるし、また、特徴ベクトルｘtが属する部分空間に対応付けられている確率密度関数等すべてを用いて計算することも可能である。
【００７１】
いま、出力確率ｂs（ｘt）を、特徴ベクトルｘtが属する部分空間に対応付けられている確率密度関数等から選択したものを用いて計算するモードを、選択可能モードというとともに、出力確率ｂs（ｘt）を、特徴ベクトルｘtが属する部分空間に対応付けられている確率密度関数等すべてを用いて計算するモードを、選択不可能モードというものとすると、選択不可能モードでは、例えば、図６に示すような計算対象関数表が用いられる。
【００７２】
即ち、図６の計算対象関数表では、５１２の部分空間Ｙ0乃至Ｙ511それぞれに、その部分空間Ｙj（ｊ＝０，１，・・・，５１１）に属する特徴ベクトルｘtの出力確率ｂs（ｘt）の計算に用いる確率密度関数のリスト｛ｇm｝、またはフロア値が対応付けられている。
【００７３】
図６の計算対象関数表が用いられる場合、計算対象関数選択部２３は、確率密度関数｛ｇm｝が対応付けられている部分空間Ｙjを表す部分空間情報を、部分空間検出部２１から受信したときには、その部分空間Ｙjに対応付けられている確率密度関数｛ｇm｝すべてを選択し、その確率密度関数｛ｇm｝すべてを表す選択情報を、スコア計算部２５に供給する。
【００７４】
スコア計算部２５では、選択情報が表す確率密度関数を用いて、出力確率ｂs（ｘt）が計算される。従って、この場合、スコア計算部２５では、前述の図２で説明した場合と同様にして、出力確率ｂs（ｘt）が計算される。
【００７５】
ところで、図６の計算対象関数表では、部分空間Ｙjに対して、特徴ベクトルｘtの出力確率ｂs（ｘt）の計算に用いる確率密度関数｛ｇm｝が対応付けられている場合の他、フロア値が対応付けられている場合がある。
【００７６】
フロア値は、それが対応付けられている部分空間Ｙjに属する特徴ベクトルの出力確率の最小値を表す固定の値であり、フロア値が対応付けられている部分空間Ｙjに属する特徴ベクトルの出力確率は、そのフロア値とされる。
【００７７】
即ち、計算対象関数選択部２３は、フロア値が対応付けられている部分空間Ｙjを表す部分空間情報を、部分空間検出部２１から受信したときには、その部分空間Ｙjに対応付けられているフロア値を選択し、そのフロア値を表す選択情報を、スコア計算部２５に供給する。
【００７８】
スコア計算部２５では、選択情報がフロア値を表す場合、そのフロア値を、出力確率ｂs（ｘt）とする。
【００７９】
従って、この場合、出力確率は、確率密度関数を用いた計算を行うことなく求めることができるので、演算量を削減することができる。
【００８０】
即ち、図６の計算対象関数表においては、部分空間Ｙjに対して、確率密度関数｛ｇm｝が対応付けられている場合と、フロア値が対応付けられている場合とがあり、フロア値が対応付けられている部分空間Ｙjに属する特徴ベクトルｘtの出力確率ｂs（ｘt）を求めるにあたっては、確率密度関数を計算する必要はないから、図２に示したように、すべての部分空間に対して、確率密度関数が対応付けられている計算対象関数表を用いる場合に比較して、より演算量を削減することができる。
【００８１】
なお、図６の計算対象関数表においては、部分空間Ｙ3に対して、フロア値「−３０．０」が対応付けられているが、このフロア値は、出力確率の対数をとった値としてある。後述する図７乃至図９の実施の形態に示したあるフロア値も同様である。
【００８２】
また、選択不可能モードにおいては、図６の計算対象関数表の他、図７に示すような計算対象関数表を用いることも可能である。
【００８３】
即ち、図７の計算対象関数表は、図６の計算対象関数表に対して、各部分空間Ｙjに対応付けられている確率密度関数の個数を追加したものとなっている。図７の計算対象関数表を用いる場合には、計算対象関数選択部２３が出力する選択情報に、特徴ベクトルが属する部分空間Ｙjに対応付けられている個数を含めることができ、この場合、スコア計算部２５において、出力確率を求めるのにあたって計算しなければならない確率密度関数の個数を、即座に認識することができる。
【００８４】
なお、計算対象関数表に登録される確率密度関数は、出力確率に対する寄与度が大きいものであり、従って、図６や図７の計算対象関数表において、部分空間Ｙ3に対して、確率密度関数が登録されていないのは、音響モデルを定義する確率密度関数ｇ0（）乃至ｇ15（）それぞれの、部分空間Ｙ3に属する特徴ベクトルの出力確率に対する寄与度が、相対的に差がないためである。また、部分空間Ｙ3に属する任意の特徴ベクトルについては、音響モデルを定義する１６の確率密度関数ｇ0（）乃至ｇ15（）を用いて計算される出力確率（の対数をとったもの）が−３０程度であり、従って、出力確率を−３０．０の固定値としても、精度のよい近似が可能であるため、図６や図７の計算対象関数表の部分空間Ｙ3については、出力確率が−３０．０の固定値とされている。
【００８５】
次に、図８は、選択可能モードの場合に、計算対象関数表記憶部２４に記憶される計算対象関数表の一実施の形態の構成例を示している。
【００８６】
図８の計算対象関数表においては、各部分空間Ｙjに、確率密度関数｛ｇm｝またはフロア値の他、出力確率（ひいては音響スコア）の計算に用いる確率密度関数の個数（以下、適宜、計算個数という）が複数対応付けられている。
【００８７】
即ち、図８の実施の形態においては、例えば、部分空間Ｙ0に対して、フロア値「−２９．０」、確率密度関数｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝、計算個数｛０，１，４｝が対応付けられている。また、例えば、部分空間Ｙ1に対して、フロア値「−４５．０」、確率密度関数｛ｇ0（），ｇ1（），ｇ17（），ｇ8（），ｇ3（），ｇ10（）｝、計算個数｛０，３，６｝が対応付けられている。さらに、部分空間Ｙ2に対して、フロア値「−２０．０」、確率密度関数｛ｇ2（），ｇ6（），ｇ4（）｝、計算個数｛０，３，３｝が対応付けられている。また、部分空間Ｙ3に対して、フロア値「−３０．０」、計算個数｛０，０，０｝が対応付けられている。以下、同様にして、部分空間Ｙ4乃至Ｙ510にも、フロア値または確率密度関数｛ｇm｝と、計算個数が対応付けられており、最後の部分空間Ｙ511に対して、フロア値「−４０．０」、確率密度関数｛ｇ15（）｝、計算個数｛０，０，１｝が対応付けられている。
【００８８】
図８の計算対象関数表が用いられる場合、計算対象関数選択部２３は、まず、部分空間検出部２１から供給される部分空間情報に基づき、計算対象関数表において、ベクトルｘtが属する部分空間Ｙjのエントリ（行）を選択する。いま、このようにして、部分空間情報に基づき、計算対象関数表から選択された部分空間Ｙjのエントリを、選択エントリというものとすると、さらに、計算対象関数選択部２３は、選択エントリにおける複数の計算個数から、速度／精度設定部２７から供給される速度／精度情報に対応するものを選択する。
【００８９】
即ち、計算対象関数表の各エントリにおける複数の計算個数それぞれは、計算対象関数選択部２３に選択させる確率密度関数の個数を表しており、音声認識処理に要求される速度または精度に基づいて登録されている。
【００９０】
具体的には、例えば、いま、音声認識処理について、「高速／低精度」、「中速／中精度」、「低速／高精度」の３つの速度または精度の設定が可能であるとすると、図８の実施の形態では、計算対象関数表の各エントリに、３つの計算個数が登録されているが、この３つの計算個数のうち、最も左側の計算個数は、「高速／低精度」の速度または精度が設定されたときに、左から２番目の計算個数は、「中速／中精度」の速度または精度が設定されたときに、最も右側の計算個数は、「低速／高精度」の速度または精度が設定されたときに、それぞれ選択される。
【００９１】
従って、図８の実施の形態において、速度／精度設定部２７から供給される速度／精度情報が、「高速／低精度」を表す場合には、計算対象関数選択部２３では、部分空間Ｙ0乃至Ｙ511のエントリそれぞれに登録されている３つの計算個数のうち、最も左側にある０，０，０，０，・・・，０が選択される。また、速度／精度情報が、「中速／中精度」を表す場合には、計算対象関数選択部２３では、部分空間Ｙ0乃至Ｙ511のエントリそれぞれに登録されている３つの計算個数のうち、左から２番目にある１，３，３，０，・・・，０が選択される。さらに、速度／精度情報が、「低速／高精度」を表す場合には、計算対象関数選択部２３では、部分空間Ｙ0乃至Ｙ511のエントリそれぞれに登録されている３つの計算個数のうち、最も右側にある４，６，３，０，・・・，１が選択される。
【００９２】
以上から、特徴ベクトルｘtが、例えば、部分空間Ｙ0に属するとした場合、計算対象関数選択部２３は、その部分空間Ｙ0のエントリを選択エントリとする。さらに、速度／精度設定部２７から供給される速度／精度情報が、「高速／低精度」を表す場合には、計算対象関数選択部２３は、選択エントリに登録されている３つの計算個数「０，１，４」のうちの最も左側の「０」を選択する。また、計算対象関数選択部２３は、速度／精度情報が「中速／中精度」を表す場合には、選択エントリに登録されている３つの計算個数「０，１，４」のうちの左から２番目の「１」を選択し、速度／精度情報が「低速／高精度」を表す場合には、選択エントリに登録されている３つの計算個数「０，１，４」のうちの最も右側の「４」を選択する。
【００９３】
いま、上述のようにして、選択エントリに登録されている複数の計算個数から選択されたものを、選択計算個数というものとすると、計算対象関数選択部２３は、選択エントリから、選択計算個数だけの確率密度関数を選択する。
【００９４】
従って、例えば、図８において、部分空間Ｙ0のエントリが選択エントリとされた場合において、選択計算個数が、「０」、「１」、「４」とされたときには、計算対象関数選択部２３は、部分空間Ｙ0に登録されている確率密度関数から、０，１，４個を選択する。
【００９５】
ここで、選択エントリからの確率密度関数の選択は、次のようにして行われる。
【００９６】
即ち、選択計算個数が、「０」の場合は、選択エントリからは、確率密度関数は選択されず、フロア値が選択される。また、選択計算個数が、「０」以外の値である場合には、選択エントリからは、そこに登録されている１以上の確率密度関数のうちの、左から、選択計算個数分だけの確率密度関数が選択される。
【００９７】
従って、図８において、部分空間Ｙ0のエントリが選択エントリとされた場合において、選択計算個数が、「０」とされたときには、計算対象関数選択部２３は、部分空間Ｙ0のエントリに登録されているフロア値「−２９．０」を選択する。また、選択計算個数が、「１」とされたときには、計算対象関数選択部２３は、部分空間Ｙ0のエントリに登録されている確率密度関数｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝のうちの、左から１つだけ、即ち、｛ｇ5（）｝を選択する。さらに、選択計算個数が、「４」とされたときには、計算対象関数選択部２３は、部分空間Ｙ0に登録されている確率密度関数｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝のうちの、左から４つ、即ち、部分空間Ｙ0に登録されている確率密度関数の全部｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝を選択する。
【００９８】
そして、計算対象関数選択部２３は、その選択したフロア値または確率密度関数を表す選択情報を、スコア計算部２５に供給する。
【００９９】
ここで、図８の計算対象関数表においては、部分空間Ｙ3のエントリにおける３つの計算個数は、いずれも「０」となっている。従って、部分空間Ｙ3のエントリが選択エントリとされた場合には、速度／精度情報が、「高速／低精度」、「中速／中精度」、「低速／高精度」のうちのいずれを表すときであっても、選択計算個数は「０」であり、従って、計算対象関数選択部２３では、フロア値「−３０．０」が選択されることになる。
【０１００】
以上から、特徴ベクトルｘtが、例えば、部分空間Ｙ0に属する場合において、速度／精度情報が「高速／低精度」に設定されている「高速／低精度」モードでは、スコア計算部２５において、特徴ベクトルｘtの出力確率ｂs（ｘt）は、フロア値「−２９．０」とされる。従って、この場合、出力確率ｂs（ｘt）は、確率密度関数を用いた計算をせずに求められるから、精度は落ちるが、高速な処理が可能となる。
【０１０１】
また、速度／精度情報が「中速／中精度」に設定されている「中速／中精度」モードでは、スコア計算部２５において、特徴ベクトルｘtの出力確率ｂs（ｘt）は、１の確率密度関数ｇ5（ｘt）を計算し、さらに、前述の式（１）に基づき、その重み付け値ｃ5ｇ5（ｘt）を計算することによって求められる。従って、この場合、出力確率ｂs（ｘt）は、１つの確率密度関数ｇ5（ｘt）を用いた計算によって求められるから、「高速／低精度」モードの場合に比較して、処理速度は低下するが、精度は向上することになる。
【０１０２】
さらに、速度／精度情報が「低速／高精度」に設定されている「低速／高精度」モードでは、スコア計算部２５において、特徴ベクトルｘtの出力確率ｂs（ｘt）は、４つの確率密度関数ｇ5（ｘt），ｇ1（ｘt），ｇ15（ｘt），ｇ0（ｘt）を計算し、さらに、前述の式（１）に基づき、その重み付け和ｃ5ｇ5（ｘt）＋ｃ1ｇ1（ｘt）＋ｃ15ｇ15（ｘt）＋ｃ0ｇ0（ｘt）を計算することによって求められる。従って、この場合、出力確率ｂs（ｘt）は、４つの確率密度関数ｇ5（ｘt），ｇ1（ｘt），ｇ15（ｘt），ｇ0（ｘt）を用いた計算によって求められるから、「高速／低精度」モードの場合に比較して、処理速度はさらに低下するが、精度はさらに向上することになる。
【０１０３】
図４のマッチング部１１では、速度／精度情報は、ユーザによって操作される操作レバー２８にしたがって設定されるようになっており、従って、ユーザの要求に応じた速度や精度での音声認識処理が可能となる。
【０１０４】
なお、計算対象関数表のエントリに、複数の確率密度関数を登録する場合には、その複数の確率密度関数ｇm（）は、例えば、そのサフィックスｍの昇順や降順に並べても良いが、図８の実施の形態においては、計算対象関数表のエントリに登録されている複数の確率密度関数は、出力確率（ひいては、音響スコア）に対する寄与度が大きい順に並べられている（最も左の確率密度関数が、出力確率に対する寄与度が最も大きいものとなっている）。
【０１０５】
従って、この場合、計算対象関数選択部２３では、出力確率（ひいては、音響スコア）に対する寄与度が大きい確率密度関数が優先的に選択されることになり、スコア計算部２５でも、そのような確率密度関数が優先的に用いて、出力確率（ひいては、音響スコア）が計算されることになるので、計算対象関数表に基づき、一部の確率密度関数の計算を省略することによって生じる出力確率（音響スコア）の誤差を、最小限に抑えることができる。
【０１０６】
なお、図８の実施の形態では、計算対象関数表の各エントリに、「高速／低精度」モード、「中速／中精度」モード、および「低速／高精度」モードの３つの速度／精度モードそれぞれに対する３つの計算個数を登録するようにしたが、計算対象関数表の各エントリには、計算個数ではなく、そのエントリに登録されている確率密度関数の総数を設定し、計算対象関数選択部２３において、速度／精度情報に基づき、０から確率密度関数の総数までの範囲（以下、適宜、選択範囲という）の整数値から、計算個数を選択するようにすることが可能である。
【０１０７】
即ち、例えば、図８の計算対象関数表の部分空間Ｙ0のエントリには、４つの確率密度関数｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝が登録されているから、選択範囲は０乃至４で、選択範囲内の整数値としては、０，１，２，３，４の５つを取り得るから、計算個数も、その５つの整数値から選択される。
【０１０８】
この場合、図４の操作レバー２８の可動範囲を、左端付近、左端と中心の中間付近、中心付近、中心と右端の中間付近、右端付近の５つの範囲に分けて、操作レバー２８が、その５つの範囲それぞれに位置するときは、計算対象関数選択部２３において、計算個数として、０，１，２，３，４をそれぞれ選択するようにすることができる。
【０１０９】
この場合、スコア計算部２５では、操作レバー２８が、左端付近に位置するときには、４つの確率密度関数｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝のうちの０個、即ち、フロア値を用いて、出力確率が求められることになる。また、操作レバー２８が、左端と中心の中間付近に位置するときには、４つの確率密度関数｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝のうちの、出力確率に対する寄与度が最も高い１つの確率密度関数ｇ5（）を計算することによって、出力確率が求められることになる。さらに、操作レバー２８が、中心付近に位置するときには、４つの確率密度関数｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝のうちの、出力確率に対する寄与度が最も高い確率密度関数ｇ5（）と２番目に高い確率密度関数ｇ1（）の２つを計算することによって、出力確率が求められることになる。また、操作レバー２８が、中心と右端の中間付近に位置するときには、４つの確率密度関数｛ｇ5（），ｇ1（），ｇ15（），ｇ0（）｝のうちの、出力確率に対する寄与度が高い順に３つの確率密度関数ｇ5（），ｇ1（），ｇ15（）を計算することによって、出力確率が求められることになる。さらに、操作レバー２８が、右端付近に位置するときには、４つの確率密度関数ｇ5（），ｇ1（），ｇ15（），ｇ0（）すべてを計算することによって、出力確率が求められることになる。
【０１１０】
従って、この場合、５段階の速度または精度での音声認識処理が可能となる。
【０１１１】
なお、上述のように、操作レバー２８の位置に応じて、出力確率の計算に用いる確率密度関数を選択する場合には、計算対象関数表の各部分空間のエントリには、音響モデルを定義する１６の確率密度関数ｇ0（）乃至ｇ15（）すべてを、寄与度の高い順に登録しておくことが可能である。
【０１１２】
次に、図９は、選択可能モードの場合に、計算対象関数表記憶部２４に記憶される計算対象関数表の他の実施の形態の構成例を示している。
【０１１３】
図９の実施の形態においては、計算対象関数表記憶部２４には、高速／低精度用計算対象関数表（図９（Ａ））と、低速／高精度用計算対象関数表（図９（Ｂ））の２つの計算対象関数表が、計算対象関数表記憶部２４に記憶されるようになっており、計算対象関数選択部２３は、速度／精度設定部２７から供給される速度／精度情報に基づき、高速／低精度用計算対象関数表または低速／高精度用計算対象関数表のうちのいずれか一方を選択し、その選択した計算対象関数表を参照して、確率密度関数またはフロア値を選択する。
【０１１４】
即ち、速度／精度設定部２７は、操作レバー２８が左側に位置する場合は、低速または高精度の音声認識処理を行うことを設定し、その旨の速度／精度情報を、計算対象関数選択部２３に供給する。この場合、計算対象関数選択部２３では、低速／高精度用計算対象関数表（図９（Ｂ））が選択される。一方、速度／精度設定部２７は、操作レバー２８が右側に位置する場合は、高速または低精度の音声認識処理を行うことを設定し、その旨の速度／精度情報を、計算対象関数選択部２３に供給する。この場合、計算対象関数選択部２３では、高速／低精度用計算対象関数表（図９（Ａ））が選択される。
【０１１５】
図９の実施の形態において、低速／高精度用計算対象関数表（図９（Ｂ））における各エントリに登録されている確率密度関数は、基本的に、高速／低精度用計算対象関数表（図９（Ａ））において、対応するエントリに登録されている確率密度関数に対して、０以上の確率密度関数を加えたものとなっている。
【０１１６】
従って、低速／高精度用計算対象関数表を参照して、確率密度関数等（確率密度関数またはフロア値）を選択する場合には、高速／低精度用計算対象関数表を参照して、確率密度関数等を選択する場合に比較して、出力確率の計算に要する演算量が多くなるので、処理速度が低速にはなるが、精度の高い音声認識結果が得られる。
【０１１７】
また、逆に、高速／低精度用計算対象関数表を参照して、確率密度関数等を選択する場合には、低速／高精度用計算対象関数表を参照して、確率密度関数等を選択する場合に比較して、精度は劣化するかもしれないが、出力確率の計算に要する演算量が少なくなるので、処理速度を高速化することができる。
【０１１８】
なお、図９の実施の形態においても、計算対象関数表には、確率密度関数を、出力確率に対する寄与度が高い順に登録することができ、さらに、操作レバー２８の位置に応じて、計算対象関数表から選択する確率密度関数の個数を変化させるようにすることができる。
【０１１９】
即ち、例えば、操作レバー２８が左側に位置する場合は、低速／高精度用計算対象関数表（図９（Ｂ））を選択し、さらに、操作レバー２８が、どの程度左側に位置するかによって、低速／高精度用計算対象関数表から選択する確率密度関数の個数を変化させることができる。また、操作レバー２８が右側に位置する場合は、高速／低精度用計算対象関数表（図９（Ａ））を選択し、さらに、操作レバー２８が、どの程度右側に位置するかによって、高速／低精度用計算対象関数表から選択する確率密度関数の個数を変化させることができる。この場合、音声認識処理の速度または精度について、より細かな制御を行うことが可能となる。
【０１２０】
また、図９の実施の形態においては、計算対象関数表記憶部２４に、２つの計算対象関数表を記憶させるようにしたが、計算対象関数表記憶部２４には、その他、音声認識処理に要求される速度または精度に応じて、登録されている確率密度関数の数が異なる３以上の計算対象関数表を記憶させておき、計算対象関数選択部２３においては、その３以上の計算対象関数表から、速度／精度情報に基づいて、参照する計算対象関数表を選択するようにすることが可能である。
【０１２１】
次に、上述した一連の処理は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【０１２２】
そこで、図１０は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示している。
【０１２３】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク１０５やＲＯＭ１０３に予め記録しておくことができる。
【０１２４】
あるいはまた、プログラムは、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto optical)ディスク，DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブル記録媒体１１１に、一時的あるいは永続的に格納（記録）しておくことができる。このようなリムーバブル記録媒体１１１は、いわゆるパッケージソフトウエアとして提供することができる。
【０１２５】
なお、プログラムは、上述したようなリムーバブル記録媒体１１１からコンピュータにインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送し、コンピュータでは、そのようにして転送されてくるプログラムを、通信部１０８で受信し、内蔵するハードディスク１０５にインストールすることができる。
【０１２６】
コンピュータは、CPU(Central Processing Unit)１０２を内蔵している。CPU１０２には、バス１０１を介して、入出力インタフェース１１０が接続されており、CPU１０２は、入出力インタフェース１１０を介して、ユーザによって、キーボードや、マウス、マイク等で構成される入力部１０７が操作等されることにより指令が入力されると、それにしたがって、ROM(Read Only Memory)１０３に格納されているプログラムを実行する。あるいは、また、CPU１０２は、ハードディスク１０５に格納されているプログラム、衛星若しくはネットワークから転送され、通信部１０８で受信されてハードディスク１０５にインストールされたプログラム、またはドライブ１０９に装着されたリムーバブル記録媒体１１１から読み出されてハードディスク１０５にインストールされたプログラムを、RAM(Random Access Memory)１０４にロードして実行する。これにより、CPU１０２は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU１０２は、その処理結果を、必要に応じて、例えば、入出力インタフェース１１０を介して、LCD(Liquid CryStal Display)やスピーカ等で構成される出力部１０６から出力、あるいは、通信部１０８から送信、さらには、ハードディスク１０５に記録等させる。
【０１２７】
ここで、本明細書において、コンピュータに各種の処理を行わせるためのプログラムを記述する処理ステップは、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいは個別に実行される処理（例えば、並列処理あるいはオブジェクトによる処理）も含むものである。
【０１２８】
また、プログラムは、１のコンピュータにより処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【０１２９】
なお、図３に示した音声認識装置は、例えば、音声によってデータベースの検索を行う場合や、各種の機器の操作を行う場合、各機器へのデータ入力を行う場合、音声対話システム等に適用可能である。より具体的には、例えば、音声による地名の問合せに対して、対応する地図情報を表示するデータベース検索装置や、音声による命令に対して、荷物の仕分けを行う産業用ロボット、キーボードの代わりに音声入力によりテキスト作成を行うディクテーションシステム、ユーザとの会話を行うロボットにおける対話システム等に適用可能である。
【０１３０】
また、本実施の形態では、速度／精度設定部２７において、ユーザによる操作レバー２８の操作に応じて、音声認識処理の速度または精度を設定するようにしたが、音声認識処理の速度または精度は、その他、例えば、音声認識処理に割り当て可能なリソース等の要因に基づいて設定することが可能である。
【０１３１】
即ち、例えば、図１０に示したようなコンピュータにプログラムを実行させることによって、図３に示した音声認識装置を実現する場合においては、CPU１０２は、一般に、音声認識処理以外のタスクも実行することから、音声認識処理に割り当て可能なリソースは、時々刻々と変化する。そこで、速度／精度設定部２７においては、CPU１０２が音声認識処理に割り当て可能なリソースを認識し、そのリソースによって、リアルタイムで、かつ最大の精度が得られるように、音声認識処理の速度と精度を設定するようにすることができる。
【０１３２】
また、本実施の形態では、スコア計算部２５において、連続量の特徴ベクトルを用いて、連続ＨＭＭ法に基づく音響スコアを計算するようにしたが、本発明は、例えば、離散値の特徴ベクトルを用いて、離散ＨＭＭ法に基づく音響スコアを計算する場合にも適用可能である。
【０１３３】
即ち、例えば、Satoshi Takahashi, Kiyoaki Aikawa, and Shigeki Sagayama. Discrete mixture hmm. In International Conference on Acoustic, Speech, and Signal Processing, pages 971-974, 1997等には、離散混合分布型ＨＭＭ(discrete mixture HMM)による音声認識手法が記載されているが、この離散混合分布型ＨＭＭによれば、特徴ベクトルｘtの出力確率ｂs（ｘt）は、例えば、次式にしたがって計算される。
【０１３４】
ｂs（ｘt）＝ΣＣm×Ｇm（Ｚi）・・・（２）
【０１３５】
ここで、式（２）において、Ｃmは、ｍ番目の関数Ｇm（）に対する重み係数であり、関数Ｇm（）は、離散混合分布型ＨＭＭを構成するｍ番目の確率関数である。また、Σは、変数ｍについてのサメーションを表す。また、Ｚiは、特徴ベクトルｘtが属する特徴ベクトル空間の部分空間を表し、例えば、連続量の特徴ベクトルｘtをベクトル量子化して得られるものである。従って、Ｚiは、特徴ベクトルｘtが属する特徴ベクトル空間の部分空間のコードベクトル（代表ベクトル）を表すと考えることもでき、その値は離散値である。
【０１３６】
式（２）は、前述した式（１）と同様の形をしているから、離散混合分布型ＨＭＭを用いる場合も、計算対象関数表によって、出力確率を求めるための確率関数の計算の一部を省くことが可能であり、従って、図６乃至図９に示した計算対象関数表における確率密度関数ｇm（）を、確率関数Ｇm（）に置き換えた計算対象関数表を用いることにより、ユーザ等の要求に応じた速度や精度の音声認識処理を行うことが可能となる。
【０１３７】
また、本実施の形態では、ＨＭＭ法に基づく音声認識を行うようにしたが、本発明は、その他のアルゴリズムに基づく音声認識にも適用可能である。
【０１３８】
さらに、本実施の形態では、計算対象関数表を、確率密度関数の他、必要なフロア値も用いて構成するようにしたが、計算対象関数表は、フロア値を用いずに構成することも可能である。
【０１３９】
なお、図６乃至図９に示した計算対象関数表は、原理的には、例えば、次のようにして作成することが可能である。即ち、特徴ベクトル空間の各部分空間Ｙ0乃至Ｙ511を代表するコードベクトルｖ0乃至ｖ511それぞれが、音響モデルを定義する１６の確率密度関数ｇ0（）乃至ｇ15（）それぞれから出力される確率を求め、その確率を、出力確率に対する寄与度として、各部分空間について、寄与度の相対的に大きい確率密度関数を選択し、その部分空間のエントリに登録することにより、計算対象関数表を作成することができる。なお、計算対象関数表のフロア値としては、例えば、各部分空間に属する任意の特徴ベクトルｘtについて、式（１）にしたがって計算される出力確率の最小値や、最大値、平均値などを採用することが可能である。
【０１４０】
【発明の効果】
本発明の一側面によれば、例えば、ユーザ等の要求に応じた速度や精度の音声認識処理を行うことが可能となる。即ち、速度重視の音声認識処理や精度重視の音声認識処理を行うことが可能となる。
【図面の簡単な説明】
【図１】従来の音声認識装置の一例の構成例を示すブロック図である。
【図２】従来の音声認識装置で用いられる計算対象関数表を示す図である。
【図３】本発明を適用した音声認識装置の一実施の形態の構成例を示すブロック図である。
【図４】マッチング部１１の構成例を示すブロック図である。
【図５】マッチング部１１によるマッチング処理を説明するフローチャートである。
【図６】計算対象関数表記憶部２４に記憶される計算対象関数表の第１実施の形態の構成例を示す図である。
【図７】計算対象関数表記憶部２４に記憶される計算対象関数表の第２実施の形態の構成例を示す図である。
【図８】計算対象関数表記憶部２４に記憶される計算対象関数表の第３実施の形態の構成例を示す図である。
【図９】計算対象関数表記憶部２４に記憶される計算対象関数表の第４実施の形態の構成例を示す図である。
【図１０】本発明を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【符号の説明】
１  マイク，  ２  ＡＤ変換部，  ３  特徴抽出部，  ５  音響モデルデータベース，  ６  辞書データベース，  ７  文法データベース，  １１  マッチング部，  ２１  部分空間検出部，  ２２  部分空間データ記憶部，  ２３  計算対象関数選択部，  ２４  計算対象関数表記憶部，  ２５  スコア計算部，  ２６  出力選択部，  ２７  速度／精度設定部，  ２８  操作レバー，  １０１  バス，  １０２  CPU，  １０３  ROM，  １０４  RAM，  １０５  ハードディスク，  １０６  出力部，  １０７  入力部，  １０８  通信部，  １０９  ドライブ，  １１０  入出力インタフェース，  １１１  リムーバブル記録媒体
【図１】
0004678464.tif 000002
【図２】
0004678464.tif 000003
【図３】
0004678464.tif 000004
【図４】
0004678464.tif 000005
【図５】
0004678464.tif 000006
【図６】
0004678464.tif 000007
【図７】
0004678464.tif 000008
【図８】
0004678464.tif 000009
【図９】
0004678464.tif 000010
【図１０】
0004678464.tif 000011