(57)【特許請求の範囲】
【請求項１】
言語モデルにＮを３以上とするN-gramを採用した音声認識装置において、
N-gramパラメータを記憶する記憶手段と、
前記記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータから構成されたデータブロックを一時的に保持する保持手段と、
前記記憶手段に記憶された前記N-gramパラメータを、前記データブロックの単位で前記保持手段に転送する転送手段と、
入力音声の特徴パラメータを抽出する抽出手段と、
前記抽出手段によって抽出された前記特徴パラメータに基づき、前記入力音声に対応する単語列を生成する生成手段と、
前記転送手段によって前記データブロック単位で転送された前記N-gramパラメータに基づき、前記生成手段によって生成された前記単語列に対応するN-gram確率を取得する取得手段とを含み、
前記データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する前記N-gramパラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、前記N-gram確率の存在数に応じて異なる配列に格納されており、
前記取得手段が単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、
前記転送手段は、前記保持手段に保持されている前記ユニグラム配列の単語「ｗ1」に対応する前記ポインタに基づいて、前記単語「ｗ1」に対応する前記データブロックを前記記憶手段から前記保持手段に転送し、
前記取得手段は、前記保持手段に転送された前記データブロックにおけるトライグラム確率以降のN-gram確率を、前記N-gram確率の存在数に応じて異なる配列に着目し、取得すべき前記N-gram確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき前記N-gram確率を取得する
ただし、ｎ≧３である
ことを特徴とする音声認識装置。
【請求項２】
前記記憶手段は、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、前記N-gram確率の存在数が１だけ存在する場合、２以上Ｋ未満だけ存在する場合、またはＫ以上存在する場合に分類されて、異なる配列に格納されている前記N-gramパラメータを記憶する
ことを特徴とする請求項１に記載の音声認識装置。
【請求項３】
前記記憶手段は、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率がＫ以上存在する場合、Ｋ以上存在する前記N-gram確率が前記データブロックには属さない読み込み配列に格納されている前記N-gramパラメータを記憶する
ことを特徴とする請求項２に記載の音声認識装置。
【請求項４】
前記転送手段は、前記記憶手段によって記憶された前記読み込み配列も前記保持手段に転送する
ことを特徴とする請求項３に記載の音声認識装置。
【請求項５】
N-gramパラメータを記憶する記憶手段と、
前記記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータから構成されたデータブロックを一時的に保持する保持手段とを備え、言語モデルにＮを３以上とするN-gramを採用した音声認識装置の音声認識方法において、
入力音声の特徴パラメータを抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記特徴パラメータに基づき、前記入力音声に対応する単語列を生成する生成ステップと、
前記記憶手段に記憶された前記N-gramパラメータを、前記データブロックの単位で前記保持手段に転送する転送ステップと、
前記転送ステップの処理で前記データブロック単位で転送された前記N-gramパラメータに基づき、前記生成ステップの処理で生成された前記単語列に対応するN-gram確率を取得する取得ステップとを含み、
前記データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する前記N-gramパラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、前記N-gram確率の存在数に応じて異なる配列に格納されており、
前記取得ステップ処理で単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、
前記転送ステップの処理では、前記保持手段に保持されている前記ユニグラム配列の単語「ｗ1」に対応する前記ポインタに基づいて、前記単語「ｗ1」に対応する前記データブロックを前記記憶手段から前記保持手段に転送し、
前記取得ステップの処理では、前記保持手段に転送された前記データブロックにおけるトライグラム確率以降のN-gram確率を、前記N-gram確率の存在数に応じて異なる配列に着目し、取得すべき前記N-gram確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき前記N-gram確率を取得する
ただし、ｎ≧３である
ことを特徴とする音声認識方法。
【請求項６】
N-gramパラメータを記憶する記憶手段と、
前記記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータから構成されたデータブロックを一時的に保持する保持手段とを備え、言語モデルにＮを３以上とするN-gramを採用した音声認識装置の制御用のプログラムであって、
入力音声の特徴パラメータを抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記特徴パラメータに基づき、前記入力音声に対応する単語列を生成する生成ステップと、
前記記憶手段に記憶された前記N-gramパラメータを、前記データブロックの単位で前記保持手段に転送する転送ステップと、
前記転送ステップの処理で前記データブロック単位で転送された前記N-gramパラメータに基づき、前記生成ステップの処理で生成された前記単語列に対応するN-gram確率を取得する取得ステップとを含み、
前記データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する前記N-gramパラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、前記N-gram確率の存在数に応じて異なる配列に格納されており、
前記取得ステップ処理で単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、
前記転送ステップの処理では、前記保持手段に保持されている前記ユニグラム配列の単語「ｗ1」に対応する前記ポインタに基づいて、前記単語「ｗ1」に対応する前記データブロックを前記記憶手段から前記保持手段に転送し、
前記取得ステップの処理では、前記保持手段に転送された前記データブロックにおけるトライグラム確率以降のN-gram確率を、前記N-gram確率の存在数に応じて異なる配列に着目し、取得すべき前記N-gram確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき前記N-gram確率を取得する
ただし、ｎ≧３である
ことを特徴とする処理を音声認識装置のコンピュータに実行させるプログラムが記録されている記録媒体。
【請求項７】
N-gramパラメータを記憶する記憶手段と、
前記記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータから構成されたデータブロックを一時的に保持する保持手段とを備え、言語モデルにＮを３以上とするN-gramを採用した音声認識装置の制御用のプログラムであって、
入力音声の特徴パラメータを抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記特徴パラメータに基づき、前記入力音声に対応する単語列を生成する生成ステップと、
前記記憶手段に記憶された前記N-gramパラメータを、前記データブロックの単位で前記保持手段に転送する転送ステップと、
前記転送ステップの処理で前記データブロック単位で転送された前記N-gramパラメータに基づき、前記生成ステップの処理で生成された前記単語列に対応するN-gram確率を取得する取得ステップとを含み、
前記データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する前記N-gramパラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、前記N-gram確率の存在数に応じて異なる配列に格納されており、
前記取得ステップ処理で単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、
前記転送ステップの処理では、前記保持手段に保持されている前記ユニグラム配列の単語「ｗ1」に対応する前記ポインタに基づいて、前記単語「ｗ1」に対応する前記データブロックを前記記憶手段から前記保持手段に転送し、
前記取得ステップの処理では、前記保持手段に転送された前記データブロックにおけるトライグラム確率以降のN-gram確率を、前記N-gram確率の存在数に応じて異なる配列に着目し、取得すべき前記N-gram確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき前記N-gram確率を取得する
ただし、ｎ≧３である
ことを特徴とする処理を音声認識装置のコンピュータに実行させるプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声認識装置および方法、記録媒体、並びにプログラムに関し、例えば、入力音声に対応して生成される単語列の言語スコアを、統計的な言語モデルである単語連鎖確率（N-gram）に基づいて算出する場合に用いて好適な音声認識装置および方法、記録媒体、並びにプログラムに関する。
【０００２】
【従来の技術】
人の発声を対応する単語列に変換する音声認識の技術が知られている。図１に、一般的な音声認識装置の構成の一例を示す。
【０００３】
この音声認識装置においては、マイクロフォン１により、ユーザの音声（以下、入力音声を記述する）がアナログ音声信号として取得されてＡＤ変換部２に出力され、ＡＤ変換部２により、アナログ音声信号がサンプリングされ、量子化されることによってディジタル音声信号に変換されて特徴抽出部３に出力され、特徴抽出部３により、ディジタル音声信号が解析されて、所定のフレーム毎、スペクトル、パワー、線形予測係数、ケプストラム係数、線スペクトル対などの特徴パラメータが抽出され、抽出された特徴パラメータがマッチング部４に出力される。
【０００４】
マッチング部４では、特徴抽出部３から入力される特徴パラメータに基づき、認識用辞書６に登録されている単語が参照されることにより、音響モデル７に記録されている音韻のモデルが接続されて、単語に対応する音響モデル（単語モデル）が生成される。さらに、マッチング部４では、複数の単語モデルが連結されて複数の単語列（すなわち、認識結果として出力する単語列候補）が生成され、生成された複数の単語列候補それぞれについて、音響スコアおよび言語スコアが計算され、音響スコアと言語スコアの合計が最も高い単語列候補が認識結果として出力される。
【０００５】
音響スコアとは、入力音声の音と、認識結果の単語列の音との近似の程度を表わす尺度であり、その算出には、例えばHMM法を用いることができる。言語スコアとは、認識結果の単語列が、言語として実際に存在し得る可能性を表わす尺度である。その算出方法は、例えば言語モデルがN-gramである場合、単語列を構成する各単語のN-gram確率の乗算によって算出される。
【０００６】
メモリ５は、後述する認識用辞書６乃至言語モデル８が記録されているハードディスクドライブ（以下、HDDと記述する）９に比較して、より高速にデータを読み書きすることができる半導体メモリなどからなる。メモリ５には、例えば、HDD９に記録されている言語モデル８の一部が、適宜、転送される。
【０００７】
認識用辞書６には、登録されている各単語について、その単語シンボル（文字列）と音韻系列、音韻や音節の連鎖関係を記述したモデルが記録されている。ここで、単語シンボルとは、当該単語と他の単語と区別するための用途や、言語モデル８に記録されている情報を照合するために用いる文字列である。音韻系列は、当該単語の発音記号に関する記号である。
【０００８】
音響モデル７には、音声認識する音声の個々の音韻や音節などの音響的な特徴を表わすモデルが記録されている。音響モデル７としては、例えば隠れマルコフモデル（HMM:Hidden Markov Model）などを用いることができる。
【０００９】
言語モデル８には、認識用辞書６に登録されている各単語がどのように連鎖するか（結合するか）を示す情報、例えば、統計的な単語連鎖確率（以下、N-gramと記述する）などが用いられる。
【００１０】
ここで、言語モデル８に用いることができるN-gramについて説明する。N-gramは、Ｎ個の単語が連鎖する可能性を示す確率を記述したデータベースのことであり、一般的には、Ｎ＝３のトライグラム（tri-gram）、Ｎ＝２のバイグラム(bi-gram)、Ｎ＝１のユニグラム(uni-gram)がよく用いられる。
【００１１】
例えば、単語列「ｗ1，ｗ2，・・・，ｗ(n-1)」に続いて単語ｗnが連鎖する確率は、N-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）と表記される。例えば、トライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）は、単語列「ｗ1，ｗ2」に続いて単語ｗ3が連鎖する確率を示す。バイグラム確率Ｐ（ｗ2｜ｗ1）は、単語ｗ1に続いて単語ｗ2が連鎖する確率を示す。ユニグラム確率Ｐ（ｗ1）は、単語ｗ1が存在する確率を示す。
【００１２】
単語列「ｗ1，ｗ2，ｗ3」が文法的に存在し得る生成確率Ｐ（ｗ1，ｗ2，ｗ3）は、次式（１）に示すようにユニグラム確率とバイグラム確率とトライグラム確率を乗算して算出する。
Ｐ（ｗ1，ｗ2，ｗ3）
＝Ｐ（ｗ1）・Ｐ（ｗ2｜ｗ1）・Ｐ（ｗ3｜ｗ1，ｗ2）        ・・・（１）
【００１３】
なお、モノグラム確率、バイグラム確率、トライグラム確率などは、予め、新聞のようなサンプル文書（以下、学習コーパス）中の高頻出の数万語彙が統計的にカウントされて算出されているが、前記数万語彙の全て組み合わせに対応するトライグラム確率やバイクラム確率を算出することは困難である。
【００１４】
そこで、算出されていないトライグラム確率やバイクラム確率に対しては、バックオフスムージングと称される近似法が適用されて、その値を推定することが行われる。
【００１５】
例えば、トライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）が学習コーパスから算出されていない場合、次式（２）に示すようにバイグラム確率Ｐ（ｗ3｜ｗ2）を用いて推定することができる。
Ｐ（ｗ3｜ｗ1，ｗ2）≒β（ｗ1，ｗ2）・Ｐ（ｗ3｜ｗ2）      ・・・（２）
ここで、β（ｗ1，ｗ2）は、バイグラムバックオフ係数と称される定数であり、予め学習コーパスを用いて統計的に算出されている。
【００１６】
さらに、例えば、バイグラム確率Ｐ（ｗ3｜ｗ2）が学習コーパスから算出されていない場合、次式（３）に示すようにユニグラム確率Ｐ（ｗ3）を用いて推定することができる。
Ｐ（ｗ3｜ｗ2）≒β（ｗ2）・Ｐ（ｗ3）                      ・・・（３）
ここで、β（ｗ2）は、ユニグラムバックオフ係数と称される定数であり、予め学習コーパスを用いて統計的に算出されている。
【００１７】
上述したバックオフスムージングを適用することを前提とすれば、学習コーパス中の頻出の数万語彙のうち、任意の単語のトライグラム確率を取得するために必要な言語モデル８のパラメータ（確率値、バックオフ係数など）は、前記数万語彙の各単語ｗiに対応するユニグラム確率Ｐ（ｗi）およびユニグラムバックオフ係数β（ｗi）、学習コーパス中に存在する単語列「ｗi，ｗj」に対応するバイグラム確率Ｐ（ｗj｜ｗi）およびバイグラムバックオフ係数β（ｗi，ｗj）、並びに、学習コーパス中に存在する単語列「ｗi，ｗj，ｗk」に対応するトライグラム確率Ｐ（ｗk｜ｗi，ｗj）となる。なお、単語ｗi，ｗj、およびｗkは、前記数万語彙に含まれる任意の単語を示している。
【００１８】
学習コーパス中に単語列「ｗi，ｗj，ｗk」が存在することは、当然ながら、学習コーパス中に単語列「ｗi，ｗj」、「ｗj，ｗk」、および単語「ｗi」、「ｗj」が必ず存在することを意味している。
【００１９】
この性質を用いれば、言語モデル８としてのトライグラムのパラメータを、図２に示すように、複数のユニグラムエレメントＵＥ１２から成るユニグラム配列１１、各ユニグラムエレメントＵＥ１２に対応する複数のバイグラム配列１３、および各バイグラムエレメントＢＥ１４に対する複数のトライグラム配列１４によって構成することができる。
【００２０】
ユニグラム配列１１を構成する、単語ｗiに対応するユニグラムエレメントＵＥ１２には、単語ｗiを特定するための単語ＩＤ、単語ｗiのユニグラム確率Ｐ（ｗi）およびユニグラムバックオフ係数β（ｗi）、並びに単語列「ｗi，ｗj」に対応するバイグラム配列１３の記録位置を指示するポインタが格納されている。なお、単語列「ｗi，ｗj」に対応するバイグラム配列１３が存在しない場合、当該ポインタには無効情報(NULL)を記録する。
【００２１】
単語列「ｗi，ｗj」に対応するバイグラム配列１３を構成する、単語ｗjに対応するバイグラムエレメントＢＥ１４には、単語ｗjを特定するための単語ＩＤ、単語ｗiに連鎖して単語ｗjが存在する確率を示すバイグラム確率Ｐ（ｗj｜ｗi）およびバイグラムバックオフ係数β（ｗi，ｗj）、並びに単語列「ｗi，ｗj，ｗk」に対応するトライグラム配列１５の記録位置を指示するポインタが格納されている。なお、単語列「ｗi，ｗj，ｗk」に対応するトライグラム配列１５が存在しない場合、当該ポインタには無効情報(NULL)を記録する。
【００２２】
単語列「ｗi，ｗj，ｗk」に対応するトライグラム配列１５を構成する、単語ｗkに対応するバイグラムエレメントＢＥ１６には、単語ｗkを特定するための単語ＩＤ、および単語列「ｗi，ｗj」に連鎖して単語ｗkが存在する確率を示すトライグラム確率Ｐ（ｗk｜ｗi，ｗj）が格納されている。
【００２３】
図２に示すように、言語モデル８としてのトライグラムのパラメータを配置することにより、ユニグラム配列１１、バイグラム配列１３、トライグラム配列１５を順次たどってゆけば、所望するパラメータに読み出すことが可能となる。
【００２４】
さらに、バイグラム配列１３を構成するバイグラムエレメントＢＥ１４を、それに格納されている単語ＩＤの順序に配置するようにすれば、所望する単語ＩＤに対応するバイグラムエレメントＢＥ１４を素早く見つけだすことができる。同様に、トライグラム配列１５を構成するトライグラムエレメントＴＥ１６を、それに格納されている単語ＩＤの順序に配置するようにすれば、所望する単語ＩＤに対応するトライグラムエレメントＴＥ１４を素早く見つけだすことができる。
【００２５】
なお、言語モデル８としてのトライグラムのパラメータを図２に示すように構成することは、「M.Schuster,"Evaluation of a Stack Decoder on a Japanese Newspaper Dictation Task"、日本音響学会講演論文集、1-R-12,pp.141-142,1997」に開示されている。
【００２６】
ところで、言語モデル８としてのトライグラムのパラメータを図２に示すように構成した場合、そのデータ量は非常に大きなものとなる。例えば数年分の新聞記事を学習コーパスとし、その中から高頻出の６万語程度の単語について、上述したパラメータを算出した場合、ユニグラム配列１１のエレメントとそれに対応するバイグラム配列１３の数は６万程度となり、複数のバイグラム配列１３のエレメントの総数は、数百万程度となり、複数のトライグラム配列１５のエレメントの総数は、数百万乃至数千万程度となることが試算されている。
【００２７】
この場合、各エレメントに格納する単語ＩＤを２バイトとし、ユニグラム確率、ユニグラムバックオフ係数、バイグラム確率、バイグラムバックオフ係数、およびトライグラム確率を１バイトとし、バイグラム配列１３へのポインタおよびトライグラム配列１５へのポインタを４バイトと仮定すれば、言語モデル８のパラメータの総データ量は、数十メガバイト乃至数百メガバイトとなる。
【００２８】
したがって、このように膨大なデータ量を有するトライグラムのパラメータの全てをメモリ５に配置することは困難である。そこで、従来では、初期段階においてユニグラム配列１１だけをメモリ５に配置し、その他の複数存在するバイグラム配列１３やトライグラム配列１５はHDD９に配置するようにし、必要に応じて複数のバイグラム配列１３やトライグラム配列１５の一部をメモリ５に転送してアクセスするようにしていた。この方法は上述した文献などにも開示されている。
【００２９】
【発明が解決しようとする課題】
しかしながら、HDD９はメモリ５に比較してデータに対するアクセスが低速であるので、異なるバイグラム配列１３やトライグラム配列１５に対して頻繁にアクセスする必要が生じた場合、音声認識の処理速度が大幅に遅延してしまう可能性が存在する課題があった。
【００３０】
例えば、トライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）を取得するためには、ユニグラム配列１１の単語ｗ1に対応するエレメントに格納されている、単語列「ｗ1，ｗj」に対応するバイグラム配列１３を指示するポインタが参照されて、当該バイグラム配列１３がHDD９からメモリ５に転送される。
【００３１】
次に、メモリ５に転送されたバイグラム配列１３から、単語ｗ2に対応するエレメントが検索され、当該エレメントに格納されている、単語列「ｗ1，ｗ2，ｗk」に対応するトライグラム配列１５を指示するポインタが参照されて、当該トライグラム配列１５がHDD９からメモリ５に転送される。さらに、メモリ５に転送されたトライグラム配列１５から、単語ｗ3に対応するエレメントが検索され、当該エレメントに格納されているトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）が読み出される。
【００３２】
ただし、単語列「ｗ1，ｗ2，ｗk」に対応するトライグラム配列１５を指示するポインタを参照した結果、当該トライグラム配列１５が存在しないと判明した場合、トライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）をバックオフスムージングによって推定するために、バイグラム確率Ｐ（ｗ3｜ｗ2）とバイグラムバックオフ係数β（ｗ1，ｗ2）を読み出すための処理が行われる。
【００３３】
具体的には、先程、メモリ５に転送されたバイグラム配列１３の単語ｗ2に対応するエレメントに格納されているバイグラムバックオフ係数β（ｗ1，ｗ2）が読み出される。その後、ユニグラム配列１１の単語ｗ2に対応するエレメントに格納されている、単語列「ｗ2，ｗj」に対応するバイグラム配列１３を指示するポインタが参照されて、当該バイグラム配列１３がHDD９からメモリ５に転送される。次に、メモリ５に転送されたバイグラム配列１３から、単語ｗ3に対応するエレメントが検索され、当該エレメントに格納されているバイグラム確率Ｐ（ｗ3｜ｗ2）が読み出される。
【００３４】
さらに、単語列「ｗ2，ｗj」に対応するバイグラム配列１３を指示するポインタを参照した結果、当該バイグラム配列１３が存在しないと判明した場合、バイグラム確率Ｐ（ｗ3｜ｗ2）をバックオフスムージングによって推定するために、ユニグラム確率Ｐ（ｗ3）とユニグラムバックオフ係数β（ｗ2）が読み出される。
【００３５】
このように、所望するトライグラム配列を取得するためには、２回以上、HDD９からメモリ５にデータ（バイグラム配列１３など）を転送が必要である。なお、メモリ５に一旦転送したデータは再利用することもできるが、メモリ５の容量に限りがあるので、転送された当該データをメモリ５に長時間維持することは困難である。
【００３６】
一度転送されたデータを長時間に亘って再利用できるよう、メモリ５の他にキャッシュメモリを設ける方法も考えられるが、少なくとも、１回目にはHDD９からメモリ５にデータを転送する必要があるので、HDD９に対するアクセスが低速であるために音声認識の処理が遅延する問題は依然として解決されていない。
【００３７】
本発明はこのような状況に鑑みてなされたものであり、N-gramのパラメータの配置と、HDD９からメモリ５に転送するデータ単位を工夫することにより、HDD９に対するアクセスの回数を減らし、音声認識の処理の遅延を抑止できるようにすることを目的とする。
【００３８】
【発明が解決しようとする課題】
本発明の音声認識装置は、N-gramパラメータを記憶する記憶手段と、記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータから構成されたデータブロックを一時的に保持する保持手段と、記憶手段に記憶されたN-gramパラメータを、データブロックの単位で保持手段に転送する転送手段と、入力音声の特徴パラメータを抽出する抽出手段と、抽出手段によって抽出された特徴パラメータに基づき、入力音声に対応する単語列を生成する生成手段と、転送手段によってデータブロック単位で転送されたN-gramパラメータに基づき、生成手段によって生成された単語列に対応するN-gram確率を取得する取得手段とを含み、データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、N-gram確率の存在数に応じて異なる配列に格納されており、取得手段が単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、転送手段は、保持手段に保持されているユニグラム配列の単語「ｗ1」に対応するポインタに基づいて、単語「ｗ1」に対応するデータブロックを記憶手段から保持手段に転送し、取得手段は、保持手段に転送されたデータブロックにおけるトライグラム確率以降のN-gram確率を、N-gram確率の存在数に応じて異なる配列に着目し、取得すべきN-gram確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべきN-gram確率を取得する、ただし、ｎ≧３であることを特徴とする。
【００４１】
前記記憶手段は、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、N-gram確率の存在数が１だけ存在する場合、２以上Ｋ未満だけ存在する場合、またはＫ以上存在する場合に分類されて、異なる配列に格納されているN-gramパラメータを記憶するようにすることができる。
【００４２】
前記記憶手段は、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率がＫ以上存在する場合、Ｋ以上存在するN-gram確率がデータブロックには属さない読み込み配列に格納されているN-gramパラメータを記憶するようにすることができる。
【００４３】
前記転送手段は、記憶手段によって記憶された読み込み配列も保持手段に転送するようにすることができる。
【００４４】
本発明の音声認識方法は、入力音声の特徴パラメータを抽出する抽出ステップと、抽出ステップの処理で抽出された特徴パラメータに基づき、入力音声に対応する単語列を生成する生成ステップと、記憶手段に記憶されたN-gramパラメータを、データブロックの単位で保持手段に転送する転送ステップと、転送ステップの処理でデータブロック単位で転送されたN-gramパラメータに基づき、生成ステップの処理で生成された単語列に対応するN-gram確率を取得する取得ステップとを含み、データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、N-gram確率の存在数に応じて異なる配列に格納されており、取得ステップ処理で単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、転送ステップの処理では、保持手段に保持されているユニグラム配列の単語「ｗ1」に対応するポインタに基づいて、単語「ｗ1」に対応するデータブロックを記憶手段から保持手段に転送し、取得ステップの処理では、保持手段に転送されたデータブロックにおけるトライグラム確率以降のN-gram確率を、N-gram確率の存在数に応じて異なる配列に着目し、取得すべきN-gram確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべきN-gram確率を取得する、ただし、ｎ≧３であることを特徴とする。
【００４５】
本発明の記録媒体のプログラムは、入力音声の特徴パラメータを抽出する抽出ステップと、抽出ステップの処理で抽出された特徴パラメータに基づき、入力音声に対応する単語列を生成する生成ステップと、記憶手段に記憶されたN-gramパラメータを、データブロックの単位で保持手段に転送する転送ステップと、転送ステップの処理でデータブロック単位で転送されたN-gramパラメータに基づき、生成ステップの処理で生成された単語列に対応するN-gram確率を取得する取得ステップとを含み、データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、N-gram確率の存在数に応じて異なる配列に格納されており、取得ステップ処理で単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、転送ステップの処理では、保持手段に保持されているユニグラム配列の単語「ｗ1」に対応するポインタに基づいて、単語「ｗ1」に対応するデータブロックを記憶手段から保持手段に転送し、取得ステップの処理では、保持手段に転送されたデータブロックにおけるトライグラム確率以降のN-gram確率を、N-gram確率の存在数に応じて異なる配列に着目し、取得すべきN-gram確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべきN-gram確率を取得する、ただし、ｎ≧３であることを特徴とする。
【００４６】
本発明のプログラムは、入力音声の特徴パラメータを抽出する抽出ステップと、抽出ステップの処理で抽出された特徴パラメータに基づき、入力音声に対応する単語列を生成する生成ステップと、記憶手段に記憶されたN-gramパラメータを、データブロックの単位で保持手段に転送する転送ステップと、転送ステップの処理でデータブロック単位で転送されたN-gramパラメータに基づき、生成ステップの処理で生成された単語列に対応するN-gram確率を取得する取得ステップとを含み、データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応するN-gramパラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降のN-gram確率が、N-gram確率の存在数に応じて異なる配列に格納されており、取得ステップ処理で単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、転送ステップの処理では、保持手段に保持されているユニグラム配列の単語「ｗ1」に対応するポインタに基づいて、単語「ｗ1」に対応するデータブロックを記憶手段から保持手段に転送し、取得ステップの処理では、保持手段に転送されたデータブロックにおけるトライグラム確率以降のN-gram確率を、N-gram確率の存在数に応じて異なる配列に着目し、取得すべきN-gram確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべきN-gram確率を取得する、ただし、ｎ≧３であることを特徴とする。
【００４７】
本発明の音声認識装置および方法、並びにプログラムにおいては、単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）が取得される場合、保持手段に保持されているユニグラム配列の単語「ｗ1」に対応するポインタに基づいて、単語「ｗ1」に対応するデータブロックが記憶手段から保持手段に転送され、転送されたデータブロックにおけるトライグラム確率以降のN-gram確率が、N-gram確率の存在数に応じて異なる配列に着目されて取得すべきN-gram確率が取得され、取得できない場合、バックオフスムージング法による近似演算によって取得すべきN-gram確率が取得される。
【００４８】
【発明の実施の形態】
以下、本発明を適用した音声認識装置について説明する。本発明の音声認識装置の構成例は、図１に示した一般的な音声認識装置の構成と同様であるので、その説明は省略する。本発明の音声認識装置と、従来の音声認識装置との差異は、言語モデル８に用いるトライグラムのパラメータの配置、および転送するデータ単位にある。
【００４９】
すなわち、本発明の音声認識装置においては、従来の音声認識装置が必要とするバイグラム配列１３やトライグラム配列１５を、適宜、１つずつメモリ５に転送していたことに対して、１つのユニグラムエレメントＵＥ１２に格納されている情報から辿ることができる全てのパラメータを含むデータ単位（以下、データブロックＤＢ２１（図３）と記述する）を、一括してHDD９からメモリ５に転送するようにする。
【００５０】
図３は、単語「ｗi」のユニグラム確率Ｐ（ｗi）などが格納されたユニグラムエレメントＵＥi１２に対応するデータブロックＤＢi２１の第１の構成例を示している。なお、下付文字「ｉ」は、単語「ｗi」に対応していることを意味している。他の下付文字についても同様である。
【００５１】
データブロックＤＢi２１は、単語列「ｗi，ｗj」のバイグラム確率Ｐ（ｗj｜ｗi）などが格納されているバイグラムエレメントＢＥij１４からなる１つのバイグラム配列１３と、単語列「ｗi，ｗj，ｗk」のトライグラム確率Ｐ（ｗk｜ｗi，ｗj）などが格納されているトライグラムエレメントＴＥijk１６からなる１つ以上のトライグラム配列１５を含む。
【００５２】
図４は、図３のユニグラムエレメントＵＥi１２に格納される情報を示している。単語「ｗi」に対応するユニグラムエレメントＵＥi１２には、単語「ｗi」を特定するための単語ＩＤ３１、単語「ｗi」に対応するユニグラム確率Ｐ（ｗi）３２およびユニグラムバックオフ係数β（ｗi）３３、並びに単語「ｗi」に対応するデータブロックＤＢi２１の記録位置を指示するポインタ３４（以下、データブロックＤＢi２１に対するポインタ３４と記述する）が格納されている。
【００５３】
なお、データブロックＤＢi２１に対するポインタ３４は、データブロックＤＢi２１がHDD９に記録されているときはHDD９上の記録位置を指示し、データブロックＤＢi２１がメモリ５に転送された場合、メモリ５上の記録位置を指示する情報に書き換えられ、さらに、データブロックＤＢi２１がメモリ５上から消去された場合、再度、HDD９上の記録位置を指示する情報に書き換えられる。
【００５４】
次に、データブロックＤＢ２１に図３の第１の構成例が採用されている場合において、例えばトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）を取得する処理について、図５を参照して説明する。まず始めに、ユニグラム配列１１の単語ｗ1に対応するユニグラムエレメントＵＥ1１２に格納されている、データブロックＤＢ1２１に対するポインタ３４が参照されて、データブロックＤＢ1２１がHDD９からメモリ５に転送される。
【００５５】
次に、メモリ５に転送されたデータブロックＤＢ1２１に含まれる、単語列「ｗ1，ｗj」に対応するバイグラム配列１３から、単語ｗ2に対応するエレメントが検索され、当該エレメントに格納されている、単語列「ｗ1，ｗ2，ｗk」に対応するトライグラム配列１５を指示するポインタが参照される。このとき、当該トライグラム配列１５は、先にメモリ５に転送されたデータブロックＤＢ1２１に含まれているので、速やかに、当該トライグラム配列１５から、単語ｗ3に対応するエレメントが検索され、当該エレメントに格納されているトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）が読み出される。
【００５６】
このように、従来では少なくとも２回以上必要であったHDD９に対するアクセス回数が、データブロックＤＢ1２１を一括してメモリ５に転送することによって最少１回で済むことになる。
【００５７】
また例えば、所定の単語「ｗ1」および任意の単語「ｗj」に連鎖して任意の単語「ｗk」が存在する確率を示す複数のトライグラム確率Ｐ（ｗk｜ｗ1，ｗj）を取得する処理でも、データブロックＤＢ1２１に必要とするバイグラム配列１３およびトライグラム配列１５が含まれているので、HDD９に対するアクセス回数は最少１回で済むことになる。
【００５８】
ところで、HDD９からメモリ５にデータブロックＤＢ２１を一括して転送する場合、データブロックＤＢ２１のデータ量が非常に大きければ、そのデータ転送に時間を要してしまうことになり、結果的に音声認識の処理に遅延が生じることとなってしまう。そこで、そのような懸念を払拭するために、データブロックＤＢ２１のデータ量について検証する。
【００５９】
例えば数年分の新聞記事を学習コーパスとし、その高頻出の６万語を対象として算出したトライグラム確率からなるデータブロックＤＢ２１のデータ量について検証した結果を示す。なお、このトライグラム確率の算出では、単語列「ｗi，ｗj，ｗk」の出現回数が１回である場合、トライグラム確率を直接保持せずにバックオフスムージング法を適用するように近似する、いわゆるカットオフスムージング法が適用されている。
【００６０】
始めに、データ量の少ないデータブロックＤＢ２１に注目する。単語６万語のうちの９３％以上の単語については、それぞれ対応するデータブロックＤＢ２１のバイグラム配列１３を構成するバイグラムエレメントＢＥ１４の数が２５６以下であった。また、単語６万語のうちの９３％以上の単語については、それぞれ対応するデータブロックＤＢ２１に含まれる複数のトライグラム配列１５をそれぞれ構成するトライグラムエレメントＴＥ１６の総数が５１２以下であった。
【００６１】
ここで、バイグラムエレメントＢＥ１４に格納されている単語ＩＤを２バイト、バイグラム確率を１バイト、バイグラムバックオフ係数を１バイト、トライグラム配列に対するポインタを４バイトと仮定した場合、バイグラムエレメントＢＥ１４は８バイトとなる。よって、エレメント数が２５６であるバイグラム配列１３は、２０４８バイトとなる。また、トライグラムエレメントＴＥ１６に格納されている単語ＩＤを２バイト、トライグラム確率を１バイトと仮定した場合、トライグラムエレメントＴＥ１６は３バイトとなる。よって、エレメントの総数が５１２である複数のトライグラム配列１５は、１５３６バイトとなる。
【００６２】
したがって、単語６万語のうちの９３％以上の単語については、それぞれ対応するデータブロックＤＢ２１のデータ量が、最大でも３５８４（＝２０４８＋１５３６）バイトであるので、バイグラム配列１３だけを転送する場合に比較して２倍に満たない程度のデータ量で済むことになる。
【００６３】
次に、データ量の多いデータブロックＤＢ２１に注目する。単語６万語のうちの１％程度の単語については、対応するデータブロックＤＢ２１に含まれるトライグラムエレメントＴＥ１６の総数が数千乃至数十万であった。このようなデータ量の大きなデータブロックＤＢ２１については、エレメント数が多いトライグラム配列１５を除いて一括転送するようにし、エレメント数が多いトライグラム配列１５は必要に応じてメモリ９に転送する方法（図１２以降を参照して後述する）も考えられる。
【００６４】
さらに、トライグラム配列１５を構成するトライグラムエレメントＴＥ１６の数に注目する。単語６万語にそれぞれ対応するデータブロックＤＢ２１に含まれる全てのトライグラム配列１５のうち、６２％はエレメント数が０であり、１９％はエレメント数が１であり、１３％はエレメント数が３以上であり、６％はエレメント数が２であった。この結果は、全てのバイグラムエレメントＢＥ１４のうちの６２％は、トライグラム配列に対するポインタを格納する必要がないことを意味している。
【００６５】
以上説明した検証結果は、所定の学習コーパス（数年分の新聞記事）に基づくものではあるが、他の文書に対しても普遍性があると予想される。
【００６６】
次に、上述した「全てのバイグラムエレメントＢＥ１４のうちの６２％は、トライグラム配列に対するポインタを格納する必要がないこと」を考慮した、単語「ｗi」に対応するデータブロックＤＢi２１の第２の構成例を図６に示す。
【００６７】
バイグラム配列のエレメント数４１は、バイグラム配列４３を構成するバイグラムエレメントＢＥ４４の数を示し、バイグラム配列４３をバイナリサーチするために用いられる。ポインタ配列のエレメント数４２は、ポインタ配列４５を構成するポインタエレメントＰＥ４６の数を示し、ポインタ配列４５をバイナリサーチするために用いられる。
【００６８】
バイグラム配列４３は、複数のバイグラムエレメントＢＥ４４から構成される。バイグラムエレメントＢＥ４４には、図７に示す情報が格納される。例えば図７に示すように、単語「ｗi」に対応するデータブロックＤＢi２１に含まれるバイグラム配列４３の単語「ｗj」に対応するバイグラムエレメントＢＥj４４には、単語「ｗj」を特定するための単語ＩＤ５１、単語「ｗi」に連鎖して単語「ｗj」が存在する確率を示すバイグラム確率Ｐ（ｗj｜ｗi）５２、バイグラムバックオフ係数β（ｗi，ｗj）５３、および単語列「ｗi，ｗj」に連鎖して任意の単語「ｗk」が存在する確率を示すトライグラム確率Ｐ（ｗk｜ｗi，ｗj）が後述するトライグラム配列４７に存在するか否かを示すデータタイプ５４が格納される。
【００６９】
ポインタ配列４５は、複数のポインタエレメントＰＥ４６から構成される。ポインタエレメントＰＥ４６には、図８に示す情報が格納される。例えば、図８に示すように、単語「ｗi」に対応するデータブロックＤＢi２１に含まれるポインタ配列４５の単語「ｗj」に対応するポインタエレメントＰＥj４６には、単語「ｗj」を特定するための単語ＩＤ６１、および単語列「ｗi，ｗj」に連鎖して任意の単語「ｗk」が存在する確率を示すトライグラム確率Ｐ（ｗk｜ｗi，ｗj）がそれぞれ格納された１個以上のトライグラムエレメントＴＥ４８の集合の先頭の記録位置を指し示すポインタ（以下、トライグラム配列に対するポインタと記述する）６２が格納される。
【００７０】
なお、トライグラム配列に対するポインタ６２は、データブロックＤＢi２１がHDD９に記録されているときはHDD９上の記録位置を指示し、データブロックＤＢi２１がメモリ５に転送された場合、メモリ５上の記録位置を指示する情報に書き換えられ、さらに、データブロックＤＢi２１がメモリ５上から消去された場合、再度、HDD９上の記録位置を指示する情報に書き換えられる。
【００７１】
また、ポインタ配列４５の最後尾には、後述するトライグラム配列４７の最後尾に設けるダミーのトライグラムエレメントＴＥ４８の記録位置を指し示す、ダミーのポインタエレメントＰＥ４６を設ける。
【００７２】
トライグラム配列４７は、図３に示したデータブロックＤＢ２１に複数存在したトライグラム配列１５を１つに統括したものであり、１個以上のトライグラムエレメントＴＥ４８の集合が、ポインタエレメントＰＥ４６の数だけ連なって構成される。トライグラムエレメントＴＥ４８には、図９に示す情報が格納される。例えば、図９に示すように、単語「ｗi」に対応するデータブロックＤＢi２１に含まれるトライグラム配列４７の単語「ｗk」に対応するトライグラムエレメントＴＥk４８には、単語「ｗk」を特定するための単語ＩＤ７１、および単語列「ｗi，ｗj」に連鎖して単語「ｗk」が存在する確率を示すトライグラム配列Ｐ（ｗk｜ｗi，ｗj）が格納される。
【００７３】
データブロックＤＢ２１に図６に示した第２の構成例では、全てのバイグラムエレメントＢＥ４４がデータタイプ５４を有し、必要な数だけポインタ配列４７のポインタエレメントＰＥ４６が設けられる。したがって、図３に示した第１の構成例のように、後段のトライグラム配列１５の有無に拘わらず、全てのバイグラムエレメントＢＥ１４がそれの記録位置を示すポインタを格納していた場合に比較して、データブロックＤＢ２１の全体のデータ量を削減することができる。
【００７４】
データブロックＤＢ２１に図６に示した第２の構成例を採用した場合、例えばトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）を取得するためには、メモリ５に転送されたデータブロックＤＢ1２１のバイグラム配列４３から所望の単語「ｗ2」に対応するバイグラムエレメントＢＥ2４４をサーチし、そこに格納されているデータタイプ５４を参照することにより、トライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）が存在するか否かを判断することができる。
【００７５】
トライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）が存在すると判断された場合には、データブロックＤＢ1２１のポインタ配列４５から所望の単語「ｗ2」に対応するポインタエレメントＰＥ2４６をサーチし、そこに格納されているポインタ６２が指し示すトライグラムエレメントＴＥ４８の集合の先頭以降から所望の単語「ｗ3」に対応するトライグラムエレメントＴＥ４８をサーチし、そこに格納されているトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）を取得すればよい。
【００７６】
ここで、データブロックＤＢ２１の第２の構成例において、１個のポインタエレメントＰＥ４６に連なるトライグラムエレメントＴＥ４８の集合が、１個のトライグラムエレメントＴＥ４８だけで構成される場合、すなわち、共通の２単語の単語列に連鎖する単語が存在する確率を示すトライグラム確率が１個だけ算出されている場合（図３に示したトライグラム配列１５が１個のトライグラムエレメントＴＥ１６で構成される場合に相当する）について考察する。
【００７７】
この場合、例えば、ポインタエレメントＰＥ４６に格納された単語ＩＤ６１が２バイト、トライグラム配列に対するポインタ６２が４バイトであって、トライグラムエレメントＴＥ４８に格納された単語ＩＤが２バイト、トライグラム確率が１バイトであると仮定すると、３バイトを読み出すために４バイトを用いていることになる。これでは効率的にデータを格納しているとは言い難い。
【００７８】
そこで、より効率的にデータを格納するために、図６の第２の構成例において１個のポインタエレメントＰＥ４６に連なるトライグラムエレメントＴＥ４８の集合が１個のトライグラムエレメントＴＥ４８だけで構成される場合の、当該ポインタエレメントＰＥ４６（上述した仮定では６バイト）をポインタ配列４５から除去するとともに、当該トライグラムエレメントＴＥ４８（３バイト）をトライグラム配列４７から分離し、その代わりに、図１０に示すように、除去した当該ポインタエレメントＰＥ４６と分離した当該トライグラムエレメントＴＥ４８に相当するシングルトライグラムエレメントＳＴＥ８３（５バイト）からなるシングルトライグラム配列８２を設けるようにする。以下、図１０に示した単語「ｗi」に対応するデータブロックＤＢi２１を第３の構成例と記述する。
【００７９】
データブロックＤＢ２１の第３の構成例は、図６に示した第２の構成例に対して、シングルトライグラム配列のエレメント数８１、およびシングルトライグラム配列８２を追加したものである。シングルトライグラム配列のエレメント数８１は、シングルトライグラム配列８２を構成するシングルトライグラムエレメントＳＴＥ４４の数を示し、シングルトライグラム配列８２をバイナリサーチするために用いられる。シングルトライグラムエレメントＳＴＥ４４には、図１１に示す情報が格納される。
【００８０】
例えば図１１に示すように、単語「ｗi」に対応するデータブロックＤＢi２１に含まれるシングルトライグラム配列８２の単語「ｗj」に対応するシングルトライグラムエレメントＳＴＥj８３には、単語「ｗj」を特定するための単語ＩＤ９１、単語「ｗk」を特定するための単語ＩＤ９２、および単語「ｗi，ｗj」に連鎖して単語「ｗk」が存在する確率を示すトライグラム確率Ｐ（ｗk｜ｗi，ｗj）９２が格納される。
【００８１】
ただし、データブロックＤＢ２１に第３の構成例を採用した場合、バイグラムエレメントＢＥ４４のデータタイプ５４には、後段に連なるトライグラム確率が存在するか否かの情報だけではなく、後段に連なるトライグラム確率が存在する場合には、後段に連なるトライグラム確率の数が１、または２以上のいずれであるかを示す情報も含めるようにし、ポインタ配列４５（後段に連なるトライグラム確率が複数存在する場合）とシングルトライグラム配列８２（後段に連なるトライグラム確率が１個だけ存在する場合）のどちらをサーチすればよいか参照できるようにする。
【００８２】
データブロックＤＢ２１の第３の構成例においては、第２の構成例において１個のポインタエレメントＰＥ４６に連なるトライグラムエレメントＴＥ４８の集合が１個のトライグラムエレメントＴＥ４８だけで構成される場合の、当該ポインタエレメントＰＥ４６と当該トライグラムエレメントＴＥ４８を削除してその代わりに、シングルトライグラムエレメントＳＴＥ８３からなるシングルトライグラム配列８２を設けるようにした。
【００８３】
これを拡張して、１個のポインタエレメントＰＥ４６に連なるトライグラムエレメントＴＥ４８の集合が２個、または３個のトライグラムエレメントＴＥ４８だけで構成される場合についても同様に、当該ポインタエレメントＰＥ４６と当該トライグラムエレメントＴＥ４８を削除してその代わりに、シングルトライグラムエレメントに含まれるトライグラム確率の要素数を２個または３個に増やしたような拡張した配列を設けるようにすれば、データブロックＤＢ２１の全体としてのデータ量をより削減することができる。
【００８４】
次に、上述した「学習コーパスの高頻出単語６万語のうちの１％程度の単語については、対応するデータブロックＤＢ２１に含まれるトライグラムエレメントＴＥ１６の総数が数千乃至数十万であったこと」を考慮して、一括転送するデータブロックＤＢ２１からエレメント数が多いトライグラム配列を分離し、当該トライグラム配列は必要に応じてメモリ９に転送する場合のデータブロックＤＢ２１の構成例について説明する。
【００８５】
具体的には、図６の第２の構成例において１個のポインタエレメントＰＥ４６に連なるトライグラムエレメントＴＥ４８の集合が所定の閾値Ｋよりも多くのトライグラムエレメントＴＥ４８で構成される場合の、当該ポインタエレメントＰＥ４６をポインタ配列４５から除去するとともに、Ｋ個以上の当該トライグラムエレメントＴＥ４８の集合をトライグラム配列４７から除去し、図１２に示すように、読み込みポインタ配列のエレメント数１０１、および読み込みポインタ配列１０２を追加するようにする。さらに、データブロックＤＢ２１の外には、除去したＫ個以上の当該トライグラムエレメントＴＥ４８の集合に相当する読み込みトライグラム配列１２１（図１４）を配置する。以下、図１２に示した単語「ｗi」に対応するデータブロックＤＢi２１を第４の構成例と記述する。
【００８６】
データブロックＤＢ２１の第４の構成例において、読み込みポインタ配列のエレメント数１０１は、読み込みポインタ配列１０２を構成する読み込みポインタエレメントＲＰＥ１０３の数を示し、読み込みポインタ配列１０２をバイナリサーチするために用いられる。読み込みポインタエレメントＲＥＰ１０３には、図１３に示す情報が格納される。
【００８７】
例えば図１３に示すように、単語「ｗi」に対応するデータブロックＤＢi２１に含まれる読み込みポインタ配列１０２の単語「ｗj」に対応する読み込みポインタＲＰＥj１０３には、単語「ｗj」を特定するための単語ＩＤ１１１、および単語「ｗi，ｗj」に連鎖して単語「ｗk」が存在する確率を示すトライグラム確率Ｐ（ｗk｜ｗi，ｗj）が格納されたＫ個以上のエレメントからなる読み込みトライグラム配列１２１の記録位置を指し示すポインタ（以下、読み込みトライグラム配列に対するポインタと記述する）１１２が格納される。
【００８８】
なお、読み込みトライグラム配列に対するポインタ１１２は、読み込みトライグラム配列１２１がHDD９に記録されているときはHDD９上の記録位置を指示し、読み込みトライグラム配列１２１がメモリ５に転送された場合、メモリ５上の記録位置を指示する情報に書き換えられ、さらに、読み込みトライグラム配列１２１がメモリ５上から消去された場合、再度、HDD９上の記録位置を指示する情報に書き換えられる。
【００８９】
ただし、データブロックＤＢ２１に第４の構成例を採用した場合、バイグラムエレメントＢＥ４４のデータタイプ５４には、後段に連なるトライグラム確率が存在するか否かの情報だけではなく、後段に連なるトライグラム確率が存在する場合には、後段に連なるトライグラム確率の数がＫ未満、またはＫ以上のいずれであるかを示す情報も含めるようにし、ポインタ配列４５（後段に連なるトライグラム確率の数がＫよりも少なくて、データブロックＤＢ２１の中のトライグラム配列４７に存在する場合）と読み込みポインタ配列１０２（後段に連なるトライグラム確率の数がＫ個以上であって、データブロックＤＢ２１の外の読み込みトライグラム配列１２１に存在する場合）のどちらをサーチすればよいか参照できるようにする。
【００９０】
図１４は、読み込みトライグラム配列１２１がデータブロックＤＢ２１の外に配置されている概念を示している。なお、読み込みトライグラム配列１２１は、図１５に示すように、トライグラム配列のエレメント数１３１、およびトライグラム配列１３２から構成される。トライグラム配列のエレメント数１３１は、トライグラム配列１３２を構成するトライグラムエレメントＴＥ１３４の数を示す。トライグラムエレメントＴＥ１３４には、図９に示したトライグラムエレメントＴＥk４８に格納される情報と同様の情報が格納される。
【００９１】
次に、図１６は、図１０に示したデータブロックＤＢ２１の第３の構成例と、図１２に示した第４の構成例を組み合わせた、データブロックＤＢ２１の第５の構成例を示している。
【００９２】
したがって、図１６のデータブロックＤＢ２１の第５の構成例において、共通の２単語の単語列に連鎖する単語のトライグラム確率の数が１つだけである当該トライグラム確率は、シングルトライグラム配列８２のシングルトライグラムエレメントＳＴＥ８３に格納されている。また、共通の２単語の単語列に連鎖する単語のトライグラム確率の数が２以上Ｋ未満だけ存在する当該トライグラム確率は、それぞれ、トライグラム配列４７のトライグラムエレメントＴＥ４８に格納されている。さらに、共通の２単語の単語列に連鎖する単語のトライグラム確率の数がＫ個以上存在する当該トライグラム確率は、それぞれ、データブロックＤＢ２１の外の読み込みトライグラム配列１２１に格納されている。
【００９３】
ただし、データブロックＤＢ２１に第５の構成例を採用した場合、バイグラムエレメントＢＥ４４のデータタイプ５４には、後段に連なるトライグラム確率が存在するか否かの情報だけではなく、後段に連なるトライグラム確率が存在する場合には、後段に連なるトライグラム確率の数が１、２以上Ｋ未満、またはＫ以上のいずれであるかを示す情報も含めるようにし、ポインタ配列４５、シングルトライグラム配列８２、および読み込みポインタ配列１０２のうちのどれをサーチすればよいか参照できるようにする。
【００９４】
データブロックＤＢ２１に第５の構成例が採用されている場合におけるトライグラム確率の取得処理について、トライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）を取得する例として、図１７のフローチャートを参照して説明する。
【００９５】
ステップＳ１において、マッチング部４は、単語「ｗ1」に対応するデータブロックＤＢ1２１がメモリ５に転送されているか否かを判定する。データブロックＤＢ1２１がメモリ５に転送されてないと判定された場合、処理はステップＳ２に進む。ステップＳ２において、マッチング部４は、HDD９からデータブロックＤＢ1２１を読み出してメモリ５に転送する。なお、ステップＳ１で、データブロックＤＢ1２１がメモリ５に転送されていると判定された場合、ステップＳ２の処理はスキップされる。
【００９６】
ステップＳ３において、マッチング部４は、メモリ５のデータブロックＤＢ1２１に含まれるバイグラム配列４３をサーチして、単語「ｗ2」に対応するバイグラムエレメントＢＥ2４４が存在するか否かを判定する。バイグラム配列４３に単語「ｗ2」に対応するバイグラムエレメントＢＥ2４４が存在すると判定された場合、処理はステップＳ４に進む。
【００９７】
ステップＳ４において、マッチング部４は、ステップＳ３でサーチしたバイグラムエレメントＢＥ2４４に格納されているデータタイプ５４を参照することにより、後段に連なるトライグラム確率、すなわち、単語列「ｗ1，ｗ2」に連鎖する単語のトライグラム確率が存在するか否かを判定する。後段に連なるトライグラム確率が存在すると判定された場合、処理はステップＳ５に進む。
【００９８】
ステップＳ５において、マッチング部４は、ステップＳ３でサーチしたバイグラムエレメントＢＥ2４４に格納されているデータタイプ５４を参照して、後段に連なるトライグラム確率の数を確認する。
【００９９】
ステップＳ５において、後段に連なるトライグラム確率の数が２以上Ｋ未満であると確認された場合、処理はステップＳ６に進む。ステップＳ６において、マッチング部４は、ポインタ配列４５をサーチして単語「ｗ2」に対応するポインタエレメントＰＥ2４６を読み出し、ポインタエレメントＰＥ2４６に格納されているトライグラム配列に対するポインタ６２がその先頭を指し示す、トライグラム配列４７上のトライグラムエレメントＴＥ４８の集合に着目する。
【０１００】
ステップＳ７において、マッチング部４は、着目している配列をサーチして、単語「ｗ3」に対応するトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）が存在するか否かを判定する。単語「ｗ3」に対応するトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）が存在すると判定された場合、処理はステップＳ８に進む。ステップＳ８において、マッチング部４は、存在すると判定したトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）を読み出して処理を終了する。
【０１０１】
ステップＳ５において、後段に連なるトライグラム確率の数が１であると確認された場合、処理はステップＳ９に進む。ステップＳ９において、マッチング部４は、シングルトライグラム配列８２に着目する。この後、処理はステップＳ７に進み、以降の処理が実行される。
【０１０２】
ステップＳ５において、後段に連なるトライグラム確率の数がＫ以上であると確認された場合、処理はステップＳ１０に進む。ステップＳ１０において、マッチング部４は、読み込みポインタ配列１０２をサーチして、単語「ｗ2」に対応する読み込みポインタエレメントＲＰＥ2１０３を読み出し、ステップＳ１１において、読み込みポインタエレメントＲＰＥ2１０３に格納されている、読み込みトライグラム配列に対するポインタ１１２に基づき、単語列「ｗ1，ｗ2」に連鎖する単語のトライグラム確率が格納されている読み込みトライグラム１２１をメモリ５に転送して着目する。この後、処理はステップＳ７に進み、以降の処理が実行される。
【０１０３】
なお、ステップＳ４において、単語列「ｗ1，ｗ2」に連鎖する単語のトライグラム確率が存在しないと判定された場合、あるいは、ステップＳ７において、着目している配列にトライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）が存在しないと判定された場合、処理はステップＳ１２に進む。なお、ステップＳ１２以降は、トライグラム確率Ｐ（ｗ3｜ｗ1，ｗ2）を、式（２）に示したようにバックオフスムージング法によって近似するための処理である。
【０１０４】
ステップＳ１２において、マッチング部４は、バイグラム配列４３の単語「ｗ2」に対応するバイグラムエレメントＢＥ2４４から、バイグラムバックオフ係数β（ｗ1，ｗ2）を読み出す。ステップＳ１３において、マッチング部４は、バイグラム確率Ｐ（ｗ3｜ｗ2）を取得する。
【０１０５】
ステップＳ１３のバイグラム確率Ｐ（ｗ3｜ｗ2）を取得する処理について、図１８のフローチャートを参照して説明する。ステップＳ２１において、マッチング部４は、単語「ｗ2」に対応するデータブロックＤＢ2２１がメモリ５に転送されているか否かを判定する。データブロックＤＢ2２１がメモリ５に転送されてないと判定された場合、処理はステップＳ２２に進む。ステップＳ２２において、マッチング部４は、HDD９からデータブロックＤＢ2２１を読み出してメモリ５に転送する。なお、ステップＳ２１で、データブロックＤＢ2２１がメモリ５に転送されていると判定された場合、ステップＳ２２の処理はスキップされる。
【０１０６】
ステップＳ２３において、マッチング部４は、メモリ５のデータブロックＤＢ2２１に含まれるバイグラム配列４３をサーチして、単語「ｗ3」に対応するバイグラムエレメントＢＥ3４４が存在するか否か、すなわち、バイグラム確率Ｐ（ｗ3｜ｗ2）が存在するか否かを判定する。バイグラム確率Ｐ（ｗ3｜ｗ2）が存在すると判定された場合、処理はステップＳ２４に進む。
【０１０７】
ステップＳ２４において、マッチング部４は、存在すると判定したバイグラム確率Ｐ（ｗ3｜ｗ2）を、単語「ｗ3」に対応するバイグラムエレメントＢＥ3４４から読み出す。処理は図１７のステップＳ１４にリターンする。
【０１０８】
ステップＳ２３において、単語「ｗ3」に対応するバイグラムエレメントＢＥ3４４が存在しない、すなわち、バイグラム確率Ｐ（ｗ3｜ｗ2）が存在しないと判定された場合、処理はステップＳ２５に進む。ステップＳ２５において、マッチング部４は、バイグラム確率Ｐ（ｗ3｜ｗ2）を、式（３）に示したようなバックオフスムージング法によって近似する。
【０１０９】
具体的には、メモリ５に存在するユニグラム配列１１の単語「ｗ2」に対応するユニグラムエレメントＵＥ2２１からユニグラムバックオフ係数β（ｗ2）を読み出し、単語「ｗ3」に対応するユニグラムエレメントＵＥ3２１からユニグラム確率Ｐ（ｗ3）を読み出て、両者を乗算してバイグラム確率Ｐ（ｗ3｜ｗ2）を近似する。処理は図１７のステップＳ１４にリターンする。
【０１１０】
図１７の説明に戻る。ステップＳ１４において、マッチング部４は、ステップＳ１２（またはステップＳ１５）で取得したバイグラムバックオフ係数β（ｗ1，ｗ2）と、ステップＳ１３で取得したバイグラム確率Ｐ（ｗ3｜ｗ2）とを乗算することによってトライグラム確率Ｐ（ｗ3，｜ｗ1，ｗ2）を近似し、処理を終了する。
【０１１１】
なお、ステップＳ３において、メモリ５のデータブロックＤＢ1２１に含まれるバイグラム配列４３に、単語「ｗ2」に対応するバイグラムエレメントＢＥ2４４が存在しない、すなわち、バイグラムバックオフ係数β（ｗ1，ｗ2）は存在しないと判定された場合、処理はステップＳ１５に進む。ステップＳ１５において、マッチング部４は、バイグラムバックオフ係数β（ｗ1，ｗ2）を１で近似する。この後、処理はステップＳ１３に進み、以降の処理が実行される。
【０１１２】
以上、データブロックＤＢ２１に第５の構成例が採用されている場合におけるトライグラム確率の取得処理の説明を終了する。
【０１１３】
なお、本実施の形態においては、言語モデル８に採用するN-gramを、Ｎ＝３のトライグラムに制限して説明したが、Ｎ＞３のN-gramのパラメータに対しても同様に、効率的にデータブロックに格納し、データブロックを１つのデータ単位としてHDD９からメモリ５に転送させることができる。
【０１１４】
ところで、本発明の上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体（図２９の磁気ディスク１６２乃至半導体メモリ１６５）からインストールされる。
【０１１５】
図２３は、専用のアプリケーションプログラムを実行することによって音声認識装置として動作するパーソナルコンピュータの構成例を示している。
【０１１６】
このパーソナルコンピュータは、CPU(Central Processing Unit)１５１を内蔵している。CPU１５１にはバス１５４を介して、入出力インタフェース１５５が接続されている。バス１５４には、ROM(Read Only Memory)１５２およびRAM(Random Access Memory)１５３が接続されている。
【０１１７】
入出力インタフェース１５５には、ユーザの音声を入力するマイクロフォンなどよりなる音声入力部１５６、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる操作入力部１５７、操作画面などの映像信号をディスプレイに出力する表示制御部１５８、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部１５９、インタネットに代表されるネットワークを介してデータを通信する通信部１６０、および磁気ディスク１６２乃至半導体メモリ１６５などの記録媒体に対してデータを読み書きするドライブ１６１が接続されている。
【０１１８】
このパーソナルコンピュータに音声認識装置としての動作を実行させるプログラムは、磁気ディスク１６２（フロッピディスクを含む）、光ディスク１６３（CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む）、光磁気ディスク１６４（ＭＤ(Mini Disc)を含む）、もしくは半導体メモリ１６５に格納された状態でパーソナルコンピュータに供給され、ドライブ１６１によって読み出されて記憶部１５９に内蔵されるハードディスクドライブにインストールされている。記憶部１５９にインストールされているプログラムは、操作入力部１５７に入力されるユーザからのコマンドに対応するCPU１５１の指令によって、記憶部１５９からRAM１５３にロードされて実行される。
【０１１９】
なお、このパーソナルコンピュータが音声認識装置としての動作する場合、RAM１５３が図１のメモリ５に相当する。また、記憶部１５９が図１のHDD９に相当する。
【０１２０】
本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１２１】
【発明の効果】
以上のように、本発明の音声認識装置および方法、並びにプログラムによれば、転送したN-gramパラメータに基づき、生成した単語列に対応するN-gram確率を取得するが、転送の処理は、取得の処理が単語列「ｗ1，ｗ2，・・・，ｗn」に対応するN-gram確率Ｐ（ｗn｜ｗ1，ｗ2，・・・，ｗ(n-1)）を取得する場合、単語列「ｗ1，ｗ2，・・・，ｗk」に連なるN-gramパラメータからなるデータブロックを転送するようにHDDに対するアクセスの回数を減らし、音声認識の処理の遅延を抑止することが可能となる。
【図面の簡単な説明】
【図１】一般的な音声認識装置の構成の一例を示すブロック図である。
【図２】言語モデル８としてのN-gramのパラメータの構成を示す図である。
【図３】データブロックＤＢ２１の第１の構成例を示す図である。
【図４】ユニグラムエレメントＵＥ１２に格納される情報を示す図である。
【図５】データブロックＤＢ２１をHDD９からメモリ５に転送する概念を説明する図である。
【図６】データブロックＤＢ２１の第２の構成例を示す図である。
【図７】図６のバイグラムエレメントＢＥ４４に格納される情報を示す図である。
【図８】図６のポインタエレメントＰＥ４６に格納される情報を示す図である。
【図９】図６のトライグラムエレメントＴＥ４８に格納される情報を示す図である。
【図１０】データブロックＤＢ２１の第３の構成例を示す図である。
【図１１】図１０のシングルトライグラムエレメントＳＴＥ８３に格納される情報を示す図である。
【図１２】データブロックＤＢ２１の第４の構成例を示す図である。
【図１３】図１２の読み込みポインタエレメントＲＰＥ１０３に格納される情報を示す図である。
【図１４】データブロックＤＢ２１の外に配置される読み込みトライグラム配列１２１の概念を説明する図である。
【図１５】図１４のトライグラム配列１２１に格納される情報を示す図である。
【図１６】データブロックＤＢ２１の第５の構成例を示す図である。
【図１７】データブロックＤＢ２１に第５の構成例が採用されている場合におけるトライグラム確率の取得処理を説明するフローチャートである。
【図１８】図１７のステップＳ１３におけるバイグラム確率の取得処理を説明するフローチャートである。
【図１９】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
４  マッチング部，  ８  言語モデル，  １１  ユニグラム配列，  １３  バイグラム配列，  １５  トライグラム配列，  ２１  データブロックＤＢ，  ４５  ポインタ配列，  ８２  シングルトライグラム配列，  １０２  読み込みポインタ配列，  １２１  読み込みトライグラム配列，  １５１  CPU，  １６２磁気ディスク，  １６３  光ディスク，  １６４  光磁気ディスク，  １６５半導体メモリ
【図１】
0003969079.tif 000002
【図２】
0003969079.tif 000003
【図３】
0003969079.tif 000004
【図４】
0003969079.tif 000005
【図５】
0003969079.tif 000006
【図６】
0003969079.tif 000007
【図７】
0003969079.tif 000008
【図８】
0003969079.tif 000009
【図９】
0003969079.tif 000010
【図１０】
0003969079.tif 000011
【図１１】
0003969079.tif 000012
【図１２】
0003969079.tif 000013
【図１３】
0003969079.tif 000014
【図１４】
0003969079.tif 000015
【図１５】
0003969079.tif 000016
【図１６】
0003969079.tif 000017
【図１７】
0003969079.tif 000018
【図１８】
0003969079.tif 000019
【図１９】
0003969079.tif 000020