JP3969079B2 - 音声認識装置および方法、記録媒体、並びにプログラム - Google Patents
音声認識装置および方法、記録媒体、並びにプログラム Download PDFInfo
- Publication number
- JP3969079B2 JP3969079B2 JP2001378883A JP2001378883A JP3969079B2 JP 3969079 B2 JP3969079 B2 JP 3969079B2 JP 2001378883 A JP2001378883 A JP 2001378883A JP 2001378883 A JP2001378883 A JP 2001378883A JP 3969079 B2 JP3969079 B2 JP 3969079B2
- Authority
- JP
- Japan
- Prior art keywords
- gram
- word
- probability
- trigram
- data block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Description
【発明の属する技術分野】
本発明は、音声認識装置および方法、記録媒体、並びにプログラムに関し、例えば、入力音声に対応して生成される単語列の言語スコアを、統計的な言語モデルである単語連鎖確率(N-gram)に基づいて算出する場合に用いて好適な音声認識装置および方法、記録媒体、並びにプログラムに関する。
【0002】
【従来の技術】
人の発声を対応する単語列に変換する音声認識の技術が知られている。図1に、一般的な音声認識装置の構成の一例を示す。
【0003】
この音声認識装置においては、マイクロフォン1により、ユーザの音声(以下、入力音声を記述する)がアナログ音声信号として取得されてAD変換部2に出力され、AD変換部2により、アナログ音声信号がサンプリングされ、量子化されることによってディジタル音声信号に変換されて特徴抽出部3に出力され、特徴抽出部3により、ディジタル音声信号が解析されて、所定のフレーム毎、スペクトル、パワー、線形予測係数、ケプストラム係数、線スペクトル対などの特徴パラメータが抽出され、抽出された特徴パラメータがマッチング部4に出力される。
【0004】
マッチング部4では、特徴抽出部3から入力される特徴パラメータに基づき、認識用辞書6に登録されている単語が参照されることにより、音響モデル7に記録されている音韻のモデルが接続されて、単語に対応する音響モデル(単語モデル)が生成される。さらに、マッチング部4では、複数の単語モデルが連結されて複数の単語列(すなわち、認識結果として出力する単語列候補)が生成され、生成された複数の単語列候補それぞれについて、音響スコアおよび言語スコアが計算され、音響スコアと言語スコアの合計が最も高い単語列候補が認識結果として出力される。
【0005】
音響スコアとは、入力音声の音と、認識結果の単語列の音との近似の程度を表わす尺度であり、その算出には、例えばHMM法を用いることができる。言語スコアとは、認識結果の単語列が、言語として実際に存在し得る可能性を表わす尺度である。その算出方法は、例えば言語モデルがN-gramである場合、単語列を構成する各単語のN-gram確率の乗算によって算出される。
【0006】
メモリ5は、後述する認識用辞書6乃至言語モデル8が記録されているハードディスクドライブ(以下、HDDと記述する)9に比較して、より高速にデータを読み書きすることができる半導体メモリなどからなる。メモリ5には、例えば、HDD9に記録されている言語モデル8の一部が、適宜、転送される。
【0007】
認識用辞書6には、登録されている各単語について、その単語シンボル(文字列)と音韻系列、音韻や音節の連鎖関係を記述したモデルが記録されている。ここで、単語シンボルとは、当該単語と他の単語と区別するための用途や、言語モデル8に記録されている情報を照合するために用いる文字列である。音韻系列は、当該単語の発音記号に関する記号である。
【0008】
音響モデル7には、音声認識する音声の個々の音韻や音節などの音響的な特徴を表わすモデルが記録されている。音響モデル7としては、例えば隠れマルコフモデル(HMM:Hidden Markov Model)などを用いることができる。
【0009】
言語モデル8には、認識用辞書6に登録されている各単語がどのように連鎖するか(結合するか)を示す情報、例えば、統計的な単語連鎖確率(以下、N-gramと記述する)などが用いられる。
【0010】
ここで、言語モデル8に用いることができるN-gramについて説明する。N-gramは、N個の単語が連鎖する可能性を示す確率を記述したデータベースのことであり、一般的には、N=3のトライグラム(tri-gram)、N=2のバイグラム(bi-gram)、N=1のユニグラム(uni-gram)がよく用いられる。
【0011】
例えば、単語列「w1,w2,・・・,w(n-1)」に続いて単語wnが連鎖する確率は、N-gram確率P(wn|w1,w2,・・・,w(n-1))と表記される。例えば、トライグラム確率P(w3|w1,w2)は、単語列「w1,w2」に続いて単語w3が連鎖する確率を示す。バイグラム確率P(w2|w1)は、単語w1に続いて単語w2が連鎖する確率を示す。ユニグラム確率P(w1)は、単語w1が存在する確率を示す。
【0012】
単語列「w1,w2,w3」が文法的に存在し得る生成確率P(w1,w2,w3)は、次式(1)に示すようにユニグラム確率とバイグラム確率とトライグラム確率を乗算して算出する。
P(w1,w2,w3)
=P(w1)・P(w2|w1)・P(w3|w1,w2) ・・・(1)
【0013】
なお、モノグラム確率、バイグラム確率、トライグラム確率などは、予め、新聞のようなサンプル文書(以下、学習コーパス)中の高頻出の数万語彙が統計的にカウントされて算出されているが、前記数万語彙の全て組み合わせに対応するトライグラム確率やバイクラム確率を算出することは困難である。
【0014】
そこで、算出されていないトライグラム確率やバイクラム確率に対しては、バックオフスムージングと称される近似法が適用されて、その値を推定することが行われる。
【0015】
例えば、トライグラム確率P(w3|w1,w2)が学習コーパスから算出されていない場合、次式(2)に示すようにバイグラム確率P(w 3 |w 2 )を用いて推定することができる。
P(w3|w1,w2)≒β(w1,w2)・P(w3|w2) ・・・(2)
ここで、β(w1,w2)は、バイグラムバックオフ係数と称される定数であり、予め学習コーパスを用いて統計的に算出されている。
【0016】
さらに、例えば、バイグラム確率P(w3|w2)が学習コーパスから算出されていない場合、次式(3)に示すようにユニグラム確率P(w 3 )を用いて推定することができる。
P(w3|w2)≒β(w2)・P(w3) ・・・(3)
ここで、β(w2)は、ユニグラムバックオフ係数と称される定数であり、予め学習コーパスを用いて統計的に算出されている。
【0017】
上述したバックオフスムージングを適用することを前提とすれば、学習コーパス中の頻出の数万語彙のうち、任意の単語のトライグラム確率を取得するために必要な言語モデル8のパラメータ(確率値、バックオフ係数など)は、前記数万語彙の各単語wiに対応するユニグラム確率P(wi)およびユニグラムバックオフ係数β(wi)、学習コーパス中に存在する単語列「wi,wj」に対応するバイグラム確率P(wj|wi)およびバイグラムバックオフ係数β(wi,wj)、並びに、学習コーパス中に存在する単語列「wi,wj,wk」に対応するトライグラム確率P(wk|wi,wj)となる。なお、単語wi,wj、およびwkは、前記数万語彙に含まれる任意の単語を示している。
【0018】
学習コーパス中に単語列「wi,wj,wk」が存在することは、当然ながら、学習コーパス中に単語列「wi,wj」、「wj,wk」、および単語「wi」、「wj」が必ず存在することを意味している。
【0019】
この性質を用いれば、言語モデル8としてのトライグラムのパラメータを、図2に示すように、複数のユニグラムエレメントUE12から成るユニグラム配列11、各ユニグラムエレメントUE12に対応する複数のバイグラム配列13、および各バイグラムエレメントBE14に対する複数のトライグラム配列14によって構成することができる。
【0020】
ユニグラム配列11を構成する、単語wiに対応するユニグラムエレメントUE12には、単語wiを特定するための単語ID、単語wiのユニグラム確率P(wi)およびユニグラムバックオフ係数β(wi)、並びに単語列「wi,wj」に対応するバイグラム配列13の記録位置を指示するポインタが格納されている。なお、単語列「wi,wj」に対応するバイグラム配列13が存在しない場合、当該ポインタには無効情報(NULL)を記録する。
【0021】
単語列「wi,wj」に対応するバイグラム配列13を構成する、単語wjに対応するバイグラムエレメントBE14には、単語wjを特定するための単語ID、単語wiに連鎖して単語wjが存在する確率を示すバイグラム確率P(wj|wi)およびバイグラムバックオフ係数β(wi,wj)、並びに単語列「wi,wj,wk」に対応するトライグラム配列15の記録位置を指示するポインタが格納されている。なお、単語列「wi,wj,wk」に対応するトライグラム配列15が存在しない場合、当該ポインタには無効情報(NULL)を記録する。
【0022】
単語列「wi,wj,wk」に対応するトライグラム配列15を構成する、単語wkに対応するバイグラムエレメントBE16には、単語wkを特定するための単語ID、および単語列「wi,wj」に連鎖して単語wkが存在する確率を示すトライグラム確率P(wk|wi,wj)が格納されている。
【0023】
図2に示すように、言語モデル8としてのトライグラムのパラメータを配置することにより、ユニグラム配列11、バイグラム配列13、トライグラム配列15を順次たどってゆけば、所望するパラメータに読み出すことが可能となる。
【0024】
さらに、バイグラム配列13を構成するバイグラムエレメントBE14を、それに格納されている単語IDの順序に配置するようにすれば、所望する単語IDに対応するバイグラムエレメントBE14を素早く見つけだすことができる。同様に、トライグラム配列15を構成するトライグラムエレメントTE16を、それに格納されている単語IDの順序に配置するようにすれば、所望する単語IDに対応するトライグラムエレメントTE14を素早く見つけだすことができる。
【0025】
なお、言語モデル8としてのトライグラムのパラメータを図2に示すように構成することは、「M.Schuster,"Evaluation of a Stack Decoder on a Japanese Newspaper Dictation Task"、日本音響学会講演論文集、1-R-12,pp.141-142,1997」に開示されている。
【0026】
ところで、言語モデル8としてのトライグラムのパラメータを図2に示すように構成した場合、そのデータ量は非常に大きなものとなる。例えば数年分の新聞記事を学習コーパスとし、その中から高頻出の6万語程度の単語について、上述したパラメータを算出した場合、ユニグラム配列11のエレメントとそれに対応するバイグラム配列13の数は6万程度となり、複数のバイグラム配列13のエレメントの総数は、数百万程度となり、複数のトライグラム配列15のエレメントの総数は、数百万乃至数千万程度となることが試算されている。
【0027】
この場合、各エレメントに格納する単語IDを2バイトとし、ユニグラム確率、ユニグラムバックオフ係数、バイグラム確率、バイグラムバックオフ係数、およびトライグラム確率を1バイトとし、バイグラム配列13へのポインタおよびトライグラム配列15へのポインタを4バイトと仮定すれば、言語モデル8のパラメータの総データ量は、数十メガバイト乃至数百メガバイトとなる。
【0028】
したがって、このように膨大なデータ量を有するトライグラムのパラメータの全てをメモリ5に配置することは困難である。そこで、従来では、初期段階においてユニグラム配列11だけをメモリ5に配置し、その他の複数存在するバイグラム配列13やトライグラム配列15はHDD9に配置するようにし、必要に応じて複数のバイグラム配列13やトライグラム配列15の一部をメモリ5に転送してアクセスするようにしていた。この方法は上述した文献などにも開示されている。
【0029】
【発明が解決しようとする課題】
しかしながら、HDD9はメモリ5に比較してデータに対するアクセスが低速であるので、異なるバイグラム配列13やトライグラム配列15に対して頻繁にアクセスする必要が生じた場合、音声認識の処理速度が大幅に遅延してしまう可能性が存在する課題があった。
【0030】
例えば、トライグラム確率P(w3|w1,w2)を取得するためには、ユニグラム配列11の単語w1に対応するエレメントに格納されている、単語列「w1,wj」に対応するバイグラム配列13を指示するポインタが参照されて、当該バイグラム配列13がHDD9からメモリ5に転送される。
【0031】
次に、メモリ5に転送されたバイグラム配列13から、単語w2に対応するエレメントが検索され、当該エレメントに格納されている、単語列「w1,w2,wk」に対応するトライグラム配列15を指示するポインタが参照されて、当該トライグラム配列15がHDD9からメモリ5に転送される。さらに、メモリ5に転送されたトライグラム配列15から、単語w3に対応するエレメントが検索され、当該エレメントに格納されているトライグラム確率P(w3|w1,w2)が読み出される。
【0032】
ただし、単語列「w1,w2,wk」に対応するトライグラム配列15を指示するポインタを参照した結果、当該トライグラム配列15が存在しないと判明した場合、トライグラム確率P(w3|w1,w2)をバックオフスムージングによって推定するために、バイグラム確率P(w3|w2)とバイグラムバックオフ係数β(w1,w2)を読み出すための処理が行われる。
【0033】
具体的には、先程、メモリ5に転送されたバイグラム配列13の単語w2に対応するエレメントに格納されているバイグラムバックオフ係数β(w1,w2)が読み出される。その後、ユニグラム配列11の単語w2に対応するエレメントに格納されている、単語列「w2,wj」に対応するバイグラム配列13を指示するポインタが参照されて、当該バイグラム配列13がHDD9からメモリ5に転送される。次に、メモリ5に転送されたバイグラム配列13から、単語w3に対応するエレメントが検索され、当該エレメントに格納されているバイグラム確率P(w3|w2)が読み出される。
【0034】
さらに、単語列「w2,wj」に対応するバイグラム配列13を指示するポインタを参照した結果、当該バイグラム配列13が存在しないと判明した場合、バイグラム確率P(w3|w2)をバックオフスムージングによって推定するために、ユニグラム確率P(w3)とユニグラムバックオフ係数β(w2)が読み出される。
【0035】
このように、所望するトライグラム配列を取得するためには、2回以上、HDD9からメモリ5にデータ(バイグラム配列13など)を転送が必要である。なお、メモリ5に一旦転送したデータは再利用することもできるが、メモリ5の容量に限りがあるので、転送された当該データをメモリ5に長時間維持することは困難である。
【0036】
一度転送されたデータを長時間に亘って再利用できるよう、メモリ5の他にキャッシュメモリを設ける方法も考えられるが、少なくとも、1回目にはHDD9からメモリ5にデータを転送する必要があるので、HDD9に対するアクセスが低速であるために音声認識の処理が遅延する問題は依然として解決されていない。
【0037】
本発明はこのような状況に鑑みてなされたものであり、N-gramのパラメータの配置と、HDD9からメモリ5に転送するデータ単位を工夫することにより、HDD9に対するアクセスの回数を減らし、音声認識の処理の遅延を抑止できるようにすることを目的とする。
【0038】
【発明が解決しようとする課題】
本発明の音声認識装置は、N-gramパラメータを記憶する記憶手段と、記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータから構成されたデータブロックを一時的に保持する保持手段と、記憶手段に記憶されたN-gramパラメータを、データブロックの単位で保持手段に転送する転送手段と、入力音声の特徴パラメータを抽出する抽出手段と、抽出手段によって抽出された特徴パラメータに基づき、入力音声に対応する単語列を生成する生成手段と、転送手段によってデータブロック単位で転送されたN-gramパラメータに基づき、生成手段によって生成された単語列に対応するN-gram確率を取得する取得手段とを含み、データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、 N-gram 確率の存在数に応じて異なる配列に格納されており、取得手段が単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、転送手段は、保持手段に保持されているユニグラム配列の単語「w 1 」に対応するポインタに基づいて、単語「w 1 」に対応するデータブロックを記憶手段から保持手段に転送し、取得手段は、保持手段に転送されたデータブロックにおけるトライグラム確率以降の N-gram 確率を、 N-gram 確率の存在数に応じて異なる配列に着目し、取得すべき N-gram 確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき N-gram 確率を取得する、ただし、n≧3であることを特徴とする。
【0041】
前記記憶手段は、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、 N-gram 確率の存在数が1だけ存在する場合、2以上K未満だけ存在する場合、またはK以上存在する場合に分類されて、異なる配列に格納されているN-gramパラメータを記憶するようにすることができる。
【0042】
前記記憶手段は、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率がK以上存在する場合、K以上存在するN-gram確率がデータブロックには属さない読み込み配列に格納されているN-gramパラメータを記憶するようにすることができる。
【0043】
前記転送手段は、記憶手段によって記憶された読み込み配列も保持手段に転送するようにすることができる。
【0044】
本発明の音声認識方法は、入力音声の特徴パラメータを抽出する抽出ステップと、抽出ステップの処理で抽出された特徴パラメータに基づき、入力音声に対応する単語列を生成する生成ステップと、記憶手段に記憶されたN-gramパラメータを、データブロックの単位で保持手段に転送する転送ステップと、転送ステップの処理でデータブロック単位で転送されたN-gramパラメータに基づき、生成ステップの処理で生成された単語列に対応するN-gram確率を取得する取得ステップとを含み、データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、 N-gram 確率の存在数に応じて異なる配列に格納されており、取得ステップ処理で単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、転送ステップの処理では、保持手段に保持されているユニグラム配列の単語「w 1 」に対応するポインタに基づいて、単語「w 1 」に対応するデータブロックを記憶手段から保持手段に転送し、取得ステップの処理では、保持手段に転送されたデータブロックにおけるトライグラム確率以降の N-gram 確率を、 N-gram 確率の存在数に応じて異なる配列に着目し、取得すべき N-gram 確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき N-gram 確率を取得する、ただし、n≧3であることを特徴とする。
【0045】
本発明の記録媒体のプログラムは、入力音声の特徴パラメータを抽出する抽出ステップと、抽出ステップの処理で抽出された特徴パラメータに基づき、入力音声に対応する単語列を生成する生成ステップと、記憶手段に記憶されたN-gramパラメータを、データブロックの単位で保持手段に転送する転送ステップと、転送ステップの処理でデータブロック単位で転送されたN-gramパラメータに基づき、生成ステップの処理で生成された単語列に対応するN-gram確率を取得する取得ステップとを含み、データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、 N-gram 確率の存在数に応じて異なる配列に格納されており、取得ステップ処理で単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、転送ステップの処理では、保持手段に保持されているユニグラム配列の単語「w 1 」に対応するポインタに基づいて、単語「w 1 」に対応するデータブロックを記憶手段から保持手段に転送し、取得ステップの処理では、保持手段に転送されたデータブロックにおけるトライグラム確率以降の N-gram 確率を、 N-gram 確率の存在数に応じて異なる配列に着目し、取得すべき N-gram 確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき N-gram 確率を取得する、ただし、n≧3であることを特徴とする。
【0046】
本発明のプログラムは、入力音声の特徴パラメータを抽出する抽出ステップと、抽出ステップの処理で抽出された特徴パラメータに基づき、入力音声に対応する単語列を生成する生成ステップと、記憶手段に記憶されたN-gramパラメータを、データブロックの単位で保持手段に転送する転送ステップと、転送ステップの処理でデータブロック単位で転送されたN-gramパラメータに基づき、生成ステップの処理で生成された単語列に対応するN-gram確率を取得する取得ステップとを含み、データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、 N-gram 確率の存在数に応じて異なる配列に格納されており、取得ステップ処理で単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、転送ステップの処理では、保持手段に保持されているユニグラム配列の単語「w 1 」に対応するポインタに基づいて、単語「w 1 」に対応するデータブロックを記憶手段から保持手段に転送し、取得ステップの処理では、保持手段に転送されたデータブロックにおけるトライグラム確率以降の N-gram 確率を、 N-gram 確率の存在数に応じて異なる配列に着目し、取得すべき N-gram 確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき N-gram 確率を取得する、ただし、n≧3であることを特徴とする。
【0047】
本発明の音声認識装置および方法、並びにプログラムにおいては、単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))が取得される場合、保持手段に保持されているユニグラム配列の単語「w 1 」に対応するポインタに基づいて、単語「w 1 」に対応するデータブロックが記憶手段から保持手段に転送され、転送されたデータブロックにおけるトライグラム確率以降の N-gram 確率が、 N-gram 確率の存在数に応じて異なる配列に着目されて取得すべき N-gram 確率が取得され、取得できない場合、バックオフスムージング法による近似演算によって取得すべき N-gram 確率が取得される。
【0048】
【発明の実施の形態】
以下、本発明を適用した音声認識装置について説明する。本発明の音声認識装置の構成例は、図1に示した一般的な音声認識装置の構成と同様であるので、その説明は省略する。本発明の音声認識装置と、従来の音声認識装置との差異は、言語モデル8に用いるトライグラムのパラメータの配置、および転送するデータ単位にある。
【0049】
すなわち、本発明の音声認識装置においては、従来の音声認識装置が必要とするバイグラム配列13やトライグラム配列15を、適宜、1つずつメモリ5に転送していたことに対して、1つのユニグラムエレメントUE12に格納されている情報から辿ることができる全てのパラメータを含むデータ単位(以下、データブロックDB21(図3)と記述する)を、一括してHDD9からメモリ5に転送するようにする。
【0050】
図3は、単語「wi」のユニグラム確率P(wi)などが格納されたユニグラムエレメントUEi12に対応するデータブロックDBi21の第1の構成例を示している。なお、下付文字「i」は、単語「wi」に対応していることを意味している。他の下付文字についても同様である。
【0051】
データブロックDBi21は、単語列「wi,wj」のバイグラム確率P(wj|wi)などが格納されているバイグラムエレメントBEij14からなる1つのバイグラム配列13と、単語列「wi,wj,wk」のトライグラム確率P(wk|wi,wj)などが格納されているトライグラムエレメントTEijk16からなる1つ以上のトライグラム配列15を含む。
【0052】
図4は、図3のユニグラムエレメントUEi12に格納される情報を示している。単語「wi」に対応するユニグラムエレメントUEi12には、単語「wi」を特定するための単語ID31、単語「wi」に対応するユニグラム確率P(wi)32およびユニグラムバックオフ係数β(wi)33、並びに単語「wi」に対応するデータブロックDBi21の記録位置を指示するポインタ34(以下、データブロックDBi21に対するポインタ34と記述する)が格納されている。
【0053】
なお、データブロックDBi21に対するポインタ34は、データブロックDBi21がHDD9に記録されているときはHDD9上の記録位置を指示し、データブロックDBi21がメモリ5に転送された場合、メモリ5上の記録位置を指示する情報に書き換えられ、さらに、データブロックDBi21がメモリ5上から消去された場合、再度、HDD9上の記録位置を指示する情報に書き換えられる。
【0054】
次に、データブロックDB21に図3の第1の構成例が採用されている場合において、例えばトライグラム確率P(w3|w1,w2)を取得する処理について、図5を参照して説明する。まず始めに、ユニグラム配列11の単語w1に対応するユニグラムエレメントUE112に格納されている、データブロックDB121に対するポインタ34が参照されて、データブロックDB121がHDD9からメモリ5に転送される。
【0055】
次に、メモリ5に転送されたデータブロックDB121に含まれる、単語列「w1,wj」に対応するバイグラム配列13から、単語w2に対応するエレメントが検索され、当該エレメントに格納されている、単語列「w1,w2,wk」に対応するトライグラム配列15を指示するポインタが参照される。このとき、当該トライグラム配列15は、先にメモリ5に転送されたデータブロックDB121に含まれているので、速やかに、当該トライグラム配列15から、単語w3に対応するエレメントが検索され、当該エレメントに格納されているトライグラム確率P(w3|w1,w2)が読み出される。
【0056】
このように、従来では少なくとも2回以上必要であったHDD9に対するアクセス回数が、データブロックDB121を一括してメモリ5に転送することによって最少1回で済むことになる。
【0057】
また例えば、所定の単語「w1」および任意の単語「wj」に連鎖して任意の単語「wk」が存在する確率を示す複数のトライグラム確率P(wk|w1,wj)を取得する処理でも、データブロックDB121に必要とするバイグラム配列13およびトライグラム配列15が含まれているので、HDD9に対するアクセス回数は最少1回で済むことになる。
【0058】
ところで、HDD9からメモリ5にデータブロックDB21を一括して転送する場合、データブロックDB21のデータ量が非常に大きければ、そのデータ転送に時間を要してしまうことになり、結果的に音声認識の処理に遅延が生じることとなってしまう。そこで、そのような懸念を払拭するために、データブロックDB21のデータ量について検証する。
【0059】
例えば数年分の新聞記事を学習コーパスとし、その高頻出の6万語を対象として算出したトライグラム確率からなるデータブロックDB21のデータ量について検証した結果を示す。なお、このトライグラム確率の算出では、単語列「wi,wj,wk」の出現回数が1回である場合、トライグラム確率を直接保持せずにバックオフスムージング法を適用するように近似する、いわゆるカットオフスムージング法が適用されている。
【0060】
始めに、データ量の少ないデータブロックDB21に注目する。単語6万語のうちの93%以上の単語については、それぞれ対応するデータブロックDB21のバイグラム配列13を構成するバイグラムエレメントBE14の数が256以下であった。また、単語6万語のうちの93%以上の単語については、それぞれ対応するデータブロックDB21に含まれる複数のトライグラム配列15をそれぞれ構成するトライグラムエレメントTE16の総数が512以下であった。
【0061】
ここで、バイグラムエレメントBE14に格納されている単語IDを2バイト、バイグラム確率を1バイト、バイグラムバックオフ係数を1バイト、トライグラム配列に対するポインタを4バイトと仮定した場合、バイグラムエレメントBE14は8バイトとなる。よって、エレメント数が256であるバイグラム配列13は、2048バイトとなる。また、トライグラムエレメントTE16に格納されている単語IDを2バイト、トライグラム確率を1バイトと仮定した場合、トライグラムエレメントTE16は3バイトとなる。よって、エレメントの総数が512である複数のトライグラム配列15は、1536バイトとなる。
【0062】
したがって、単語6万語のうちの93%以上の単語については、それぞれ対応するデータブロックDB21のデータ量が、最大でも3584(=2048+1536)バイトであるので、バイグラム配列13だけを転送する場合に比較して2倍に満たない程度のデータ量で済むことになる。
【0063】
次に、データ量の多いデータブロックDB21に注目する。単語6万語のうちの1%程度の単語については、対応するデータブロックDB21に含まれるトライグラムエレメントTE16の総数が数千乃至数十万であった。このようなデータ量の大きなデータブロックDB21については、エレメント数が多いトライグラム配列15を除いて一括転送するようにし、エレメント数が多いトライグラム配列15は必要に応じてメモリ9に転送する方法(図12以降を参照して後述する)も考えられる。
【0064】
さらに、トライグラム配列15を構成するトライグラムエレメントTE16の数に注目する。単語6万語にそれぞれ対応するデータブロックDB21に含まれる全てのトライグラム配列15のうち、62%はエレメント数が0であり、19%はエレメント数が1であり、13%はエレメント数が3以上であり、6%はエレメント数が2であった。この結果は、全てのバイグラムエレメントBE14のうちの62%は、トライグラム配列に対するポインタを格納する必要がないことを意味している。
【0065】
以上説明した検証結果は、所定の学習コーパス(数年分の新聞記事)に基づくものではあるが、他の文書に対しても普遍性があると予想される。
【0066】
次に、上述した「全てのバイグラムエレメントBE14のうちの62%は、トライグラム配列に対するポインタを格納する必要がないこと」を考慮した、単語「wi」に対応するデータブロックDBi21の第2の構成例を図6に示す。
【0067】
バイグラム配列のエレメント数41は、バイグラム配列43を構成するバイグラムエレメントBE44の数を示し、バイグラム配列43をバイナリサーチするために用いられる。ポインタ配列のエレメント数42は、ポインタ配列45を構成するポインタエレメントPE46の数を示し、ポインタ配列45をバイナリサーチするために用いられる。
【0068】
バイグラム配列43は、複数のバイグラムエレメントBE44から構成される。バイグラムエレメントBE44には、図7に示す情報が格納される。例えば図7に示すように、単語「wi」に対応するデータブロックDBi21に含まれるバイグラム配列43の単語「wj」に対応するバイグラムエレメントBEj44には、単語「wj」を特定するための単語ID51、単語「wi」に連鎖して単語「wj」が存在する確率を示すバイグラム確率P(wj|wi)52、バイグラムバックオフ係数β(wi,wj)53、および単語列「wi,wj」に連鎖して任意の単語「wk」が存在する確率を示すトライグラム確率P(wk|wi,wj)が後述するトライグラム配列47に存在するか否かを示すデータタイプ54が格納される。
【0069】
ポインタ配列45は、複数のポインタエレメントPE46から構成される。ポインタエレメントPE46には、図8に示す情報が格納される。例えば、図8に示すように、単語「wi」に対応するデータブロックDBi21に含まれるポインタ配列45の単語「wj」に対応するポインタエレメントPEj46には、単語「wj」を特定するための単語ID61、および単語列「wi,wj」に連鎖して任意の単語「wk」が存在する確率を示すトライグラム確率P(wk|wi,wj)がそれぞれ格納された1個以上のトライグラムエレメントTE48の集合の先頭の記録位置を指し示すポインタ(以下、トライグラム配列に対するポインタと記述する)62が格納される。
【0070】
なお、トライグラム配列に対するポインタ62は、データブロックDBi21がHDD9に記録されているときはHDD9上の記録位置を指示し、データブロックDBi21がメモリ5に転送された場合、メモリ5上の記録位置を指示する情報に書き換えられ、さらに、データブロックDBi21がメモリ5上から消去された場合、再度、HDD9上の記録位置を指示する情報に書き換えられる。
【0071】
また、ポインタ配列45の最後尾には、後述するトライグラム配列47の最後尾に設けるダミーのトライグラムエレメントTE48の記録位置を指し示す、ダミーのポインタエレメントPE46を設ける。
【0072】
トライグラム配列47は、図3に示したデータブロックDB21に複数存在したトライグラム配列15を1つに統括したものであり、1個以上のトライグラムエレメントTE48の集合が、ポインタエレメントPE46の数だけ連なって構成される。トライグラムエレメントTE48には、図9に示す情報が格納される。例えば、図9に示すように、単語「wi」に対応するデータブロックDBi21に含まれるトライグラム配列47の単語「wk」に対応するトライグラムエレメントTEk48には、単語「wk」を特定するための単語ID71、および単語列「wi,wj」に連鎖して単語「wk」が存在する確率を示すトライグラム配列P(wk|wi,wj)が格納される。
【0073】
データブロックDB21に図6に示した第2の構成例では、全てのバイグラムエレメントBE44がデータタイプ54を有し、必要な数だけポインタ配列47のポインタエレメントPE46が設けられる。したがって、図3に示した第1の構成例のように、後段のトライグラム配列15の有無に拘わらず、全てのバイグラムエレメントBE14がそれの記録位置を示すポインタを格納していた場合に比較して、データブロックDB21の全体のデータ量を削減することができる。
【0074】
データブロックDB21に図6に示した第2の構成例を採用した場合、例えばトライグラム確率P(w3|w1,w2)を取得するためには、メモリ5に転送されたデータブロックDB121のバイグラム配列43から所望の単語「w 2 」に対応するバイグラムエレメントBE 2 44をサーチし、そこに格納されているデータタイプ54を参照することにより、トライグラム確率P(w3|w1,w2)が存在するか否かを判断することができる。
【0075】
トライグラム確率P(w3|w1,w2)が存在すると判断された場合には、データブロックDB121のポインタ配列45から所望の単語「w 2 」に対応するポインタエレメントPE 2 46をサーチし、そこに格納されているポインタ62が指し示すトライグラムエレメントTE48の集合の先頭以降から所望の単語「w 3 」に対応するトライグラムエレメントTE48をサーチし、そこに格納されているトライグラム確率P(w3|w1,w2)を取得すればよい。
【0076】
ここで、データブロックDB21の第2の構成例において、1個のポインタエレメントPE46に連なるトライグラムエレメントTE48の集合が、1個のトライグラムエレメントTE48だけで構成される場合、すなわち、共通の2単語の単語列に連鎖する単語が存在する確率を示すトライグラム確率が1個だけ算出されている場合(図3に示したトライグラム配列15が1個のトライグラムエレメントTE16で構成される場合に相当する)について考察する。
【0077】
この場合、例えば、ポインタエレメントPE46に格納された単語ID61が2バイト、トライグラム配列に対するポインタ62が4バイトであって、トライグラムエレメントTE48に格納された単語IDが2バイト、トライグラム確率が1バイトであると仮定すると、3バイトを読み出すために4バイトを用いていることになる。これでは効率的にデータを格納しているとは言い難い。
【0078】
そこで、より効率的にデータを格納するために、図6の第2の構成例において1個のポインタエレメントPE46に連なるトライグラムエレメントTE48の集合が1個のトライグラムエレメントTE48だけで構成される場合の、当該ポインタエレメントPE46(上述した仮定では6バイト)をポインタ配列45から除去するとともに、当該トライグラムエレメントTE48(3バイト)をトライグラム配列47から分離し、その代わりに、図10に示すように、除去した当該ポインタエレメントPE46と分離した当該トライグラムエレメントTE48に相当するシングルトライグラムエレメントSTE83(5バイト)からなるシングルトライグラム配列82を設けるようにする。以下、図10に示した単語「wi」に対応するデータブロックDBi21を第3の構成例と記述する。
【0079】
データブロックDB21の第3の構成例は、図6に示した第2の構成例に対して、シングルトライグラム配列のエレメント数81、およびシングルトライグラム配列82を追加したものである。シングルトライグラム配列のエレメント数81は、シングルトライグラム配列82を構成するシングルトライグラムエレメントSTE44の数を示し、シングルトライグラム配列82をバイナリサーチするために用いられる。シングルトライグラムエレメントSTE44には、図11に示す情報が格納される。
【0080】
例えば図11に示すように、単語「wi」に対応するデータブロックDBi21に含まれるシングルトライグラム配列82の単語「wj」に対応するシングルトライグラムエレメントSTEj83には、単語「wj」を特定するための単語ID91、単語「wk」を特定するための単語ID92、および単語「wi,wj」に連鎖して単語「wk」が存在する確率を示すトライグラム確率P(w k |wi,w j )92が格納される。
【0081】
ただし、データブロックDB21に第3の構成例を採用した場合、バイグラムエレメントBE44のデータタイプ54には、後段に連なるトライグラム確率が存在するか否かの情報だけではなく、後段に連なるトライグラム確率が存在する場合には、後段に連なるトライグラム確率の数が1、または2以上のいずれであるかを示す情報も含めるようにし、ポインタ配列45(後段に連なるトライグラム確率が複数存在する場合)とシングルトライグラム配列82(後段に連なるトライグラム確率が1個だけ存在する場合)のどちらをサーチすればよいか参照できるようにする。
【0082】
データブロックDB21の第3の構成例においては、第2の構成例において1個のポインタエレメントPE46に連なるトライグラムエレメントTE48の集合が1個のトライグラムエレメントTE48だけで構成される場合の、当該ポインタエレメントPE46と当該トライグラムエレメントTE48を削除してその代わりに、シングルトライグラムエレメントSTE83からなるシングルトライグラム配列82を設けるようにした。
【0083】
これを拡張して、1個のポインタエレメントPE46に連なるトライグラムエレメントTE48の集合が2個、または3個のトライグラムエレメントTE48だけで構成される場合についても同様に、当該ポインタエレメントPE46と当該トライグラムエレメントTE48を削除してその代わりに、シングルトライグラムエレメントに含まれるトライグラム確率の要素数を2個または3個に増やしたような拡張した配列を設けるようにすれば、データブロックDB21の全体としてのデータ量をより削減することができる。
【0084】
次に、上述した「学習コーパスの高頻出単語6万語のうちの1%程度の単語については、対応するデータブロックDB21に含まれるトライグラムエレメントTE16の総数が数千乃至数十万であったこと」を考慮して、一括転送するデータブロックDB21からエレメント数が多いトライグラム配列を分離し、当該トライグラム配列は必要に応じてメモリ9に転送する場合のデータブロックDB21の構成例について説明する。
【0085】
具体的には、図6の第2の構成例において1個のポインタエレメントPE46に連なるトライグラムエレメントTE48の集合が所定の閾値Kよりも多くのトライグラムエレメントTE48で構成される場合の、当該ポインタエレメントPE46をポインタ配列45から除去するとともに、K個以上の当該トライグラムエレメントTE48の集合をトライグラム配列47から除去し、図12に示すように、読み込みポインタ配列のエレメント数101、および読み込みポインタ配列102を追加するようにする。さらに、データブロックDB21の外には、除去したK個以上の当該トライグラムエレメントTE48の集合に相当する読み込みトライグラム配列121(図14)を配置する。以下、図12に示した単語「wi」に対応するデータブロックDBi21を第4の構成例と記述する。
【0086】
データブロックDB21の第4の構成例において、読み込みポインタ配列のエレメント数101は、読み込みポインタ配列102を構成する読み込みポインタエレメントRPE103の数を示し、読み込みポインタ配列102をバイナリサーチするために用いられる。読み込みポインタエレメントREP103には、図13に示す情報が格納される。
【0087】
例えば図13に示すように、単語「wi」に対応するデータブロックDBi21に含まれる読み込みポインタ配列102の単語「wj」に対応する読み込みポインタRPEj103には、単語「wj」を特定するための単語ID111、および単語「wi,wj」に連鎖して単語「wk」が存在する確率を示すトライグラム確率P(w k |wi,w j )が格納されたK個以上のエレメントからなる読み込みトライグラム配列121の記録位置を指し示すポインタ(以下、読み込みトライグラム配列に対するポインタと記述する)112が格納される。
【0088】
なお、読み込みトライグラム配列に対するポインタ112は、読み込みトライグラム配列121がHDD9に記録されているときはHDD9上の記録位置を指示し、読み込みトライグラム配列121がメモリ5に転送された場合、メモリ5上の記録位置を指示する情報に書き換えられ、さらに、読み込みトライグラム配列121がメモリ5上から消去された場合、再度、HDD9上の記録位置を指示する情報に書き換えられる。
【0089】
ただし、データブロックDB21に第4の構成例を採用した場合、バイグラムエレメントBE44のデータタイプ54には、後段に連なるトライグラム確率が存在するか否かの情報だけではなく、後段に連なるトライグラム確率が存在する場合には、後段に連なるトライグラム確率の数がK未満、またはK以上のいずれであるかを示す情報も含めるようにし、ポインタ配列45(後段に連なるトライグラム確率の数がKよりも少なくて、データブロックDB21の中のトライグラム配列47に存在する場合)と読み込みポインタ配列102(後段に連なるトライグラム確率の数がK個以上であって、データブロックDB21の外の読み込みトライグラム配列121に存在する場合)のどちらをサーチすればよいか参照できるようにする。
【0090】
図14は、読み込みトライグラム配列121がデータブロックDB21の外に配置されている概念を示している。なお、読み込みトライグラム配列121は、図15に示すように、トライグラム配列のエレメント数131、およびトライグラム配列132から構成される。トライグラム配列のエレメント数131は、トライグラム配列132を構成するトライグラムエレメントTE134の数を示す。トライグラムエレメントTE134には、図9に示したトライグラムエレメントTEk48に格納される情報と同様の情報が格納される。
【0091】
次に、図16は、図10に示したデータブロックDB21の第3の構成例と、図12に示した第4の構成例を組み合わせた、データブロックDB21の第5の構成例を示している。
【0092】
したがって、図16のデータブロックDB21の第5の構成例において、共通の2単語の単語列に連鎖する単語のトライグラム確率の数が1つだけである当該トライグラム確率は、シングルトライグラム配列82のシングルトライグラムエレメントSTE83に格納されている。また、共通の2単語の単語列に連鎖する単語のトライグラム確率の数が2以上K未満だけ存在する当該トライグラム確率は、それぞれ、トライグラム配列47のトライグラムエレメントTE48に格納されている。さらに、共通の2単語の単語列に連鎖する単語のトライグラム確率の数がK個以上存在する当該トライグラム確率は、それぞれ、データブロックDB21の外の読み込みトライグラム配列121に格納されている。
【0093】
ただし、データブロックDB21に第5の構成例を採用した場合、バイグラムエレメントBE44のデータタイプ54には、後段に連なるトライグラム確率が存在するか否かの情報だけではなく、後段に連なるトライグラム確率が存在する場合には、後段に連なるトライグラム確率の数が1、2以上K未満、またはK以上のいずれであるかを示す情報も含めるようにし、ポインタ配列45、シングルトライグラム配列82、および読み込みポインタ配列102のうちのどれをサーチすればよいか参照できるようにする。
【0094】
データブロックDB21に第5の構成例が採用されている場合におけるトライグラム確率の取得処理について、トライグラム確率P(w3|w1,w2)を取得する例として、図17のフローチャートを参照して説明する。
【0095】
ステップS1において、マッチング部4は、単語「w1」に対応するデータブロックDB121がメモリ5に転送されているか否かを判定する。データブロックDB121がメモリ5に転送されてないと判定された場合、処理はステップS2に進む。ステップS2において、マッチング部4は、HDD9からデータブロックDB121を読み出してメモリ5に転送する。なお、ステップS1で、データブロックDB121がメモリ5に転送されていると判定された場合、ステップS2の処理はスキップされる。
【0096】
ステップS3において、マッチング部4は、メモリ5のデータブロックDB121に含まれるバイグラム配列43をサーチして、単語「w2」に対応するバイグラムエレメントBE244が存在するか否かを判定する。バイグラム配列43に単語「w2」に対応するバイグラムエレメントBE244が存在すると判定された場合、処理はステップS4に進む。
【0097】
ステップS4において、マッチング部4は、ステップS3でサーチしたバイグラムエレメントBE244に格納されているデータタイプ54を参照することにより、後段に連なるトライグラム確率、すなわち、単語列「w1,w2」に連鎖する単語のトライグラム確率が存在するか否かを判定する。後段に連なるトライグラム確率が存在すると判定された場合、処理はステップS5に進む。
【0098】
ステップS5において、マッチング部4は、ステップS3でサーチしたバイグラムエレメントBE244に格納されているデータタイプ54を参照して、後段に連なるトライグラム確率の数を確認する。
【0099】
ステップS5において、後段に連なるトライグラム確率の数が2以上K未満であると確認された場合、処理はステップS6に進む。ステップS6において、マッチング部4は、ポインタ配列45をサーチして単語「w2」に対応するポインタエレメントPE246を読み出し、ポインタエレメントPE246に格納されているトライグラム配列に対するポインタ62がその先頭を指し示す、トライグラム配列47上のトライグラムエレメントTE48の集合に着目する。
【0100】
ステップS7において、マッチング部4は、着目している配列をサーチして、単語「w3」に対応するトライグラム確率P(w 3 |w1,w2)が存在するか否かを判定する。単語「w3」に対応するトライグラム確率P(w 3 |w1,w2)が存在すると判定された場合、処理はステップS8に進む。ステップS8において、マッチング部4は、存在すると判定したトライグラム確率P(w 3 |w1,w2)を読み出して処理を終了する。
【0101】
ステップS5において、後段に連なるトライグラム確率の数が1であると確認された場合、処理はステップS9に進む。ステップS9において、マッチング部4は、シングルトライグラム配列82に着目する。この後、処理はステップS7に進み、以降の処理が実行される。
【0102】
ステップS5において、後段に連なるトライグラム確率の数がK以上であると確認された場合、処理はステップS10に進む。ステップS10において、マッチング部4は、読み込みポインタ配列102をサーチして、単語「w2」に対応する読み込みポインタエレメントRPE2103を読み出し、ステップS11において、読み込みポインタエレメントRPE2103に格納されている、読み込みトライグラム配列に対するポインタ112に基づき、単語列「w1,w2」に連鎖する単語のトライグラム確率が格納されている読み込みトライグラム121をメモリ5に転送して着目する。この後、処理はステップS7に進み、以降の処理が実行される。
【0103】
なお、ステップS4において、単語列「w1,w2」に連鎖する単語のトライグラム確率が存在しないと判定された場合、あるいは、ステップS7において、着目している配列にトライグラム確率P(w 3 |w1,w2)が存在しないと判定された場合、処理はステップS12に進む。なお、ステップS12以降は、トライグラム確率P(w 3 |w1,w2)を、式(2)に示したようにバックオフスムージング法によって近似するための処理である。
【0104】
ステップS12において、マッチング部4は、バイグラム配列43の単語「w2」に対応するバイグラムエレメントBE244から、バイグラムバックオフ係数β(w1,w2)を読み出す。ステップS13において、マッチング部4は、バイグラム確率P(w3|w2)を取得する。
【0105】
ステップS13のバイグラム確率P(w3|w2)を取得する処理について、図18のフローチャートを参照して説明する。ステップS21において、マッチング部4は、単語「w2」に対応するデータブロックDB221がメモリ5に転送されているか否かを判定する。データブロックDB221がメモリ5に転送されてないと判定された場合、処理はステップS22に進む。ステップS22において、マッチング部4は、HDD9からデータブロックDB221を読み出してメモリ5に転送する。なお、ステップS21で、データブロックDB221がメモリ5に転送されていると判定された場合、ステップS22の処理はスキップされる。
【0106】
ステップS23において、マッチング部4は、メモリ5のデータブロックDB221に含まれるバイグラム配列43をサーチして、単語「w3」に対応するバイグラムエレメントBE344が存在するか否か、すなわち、バイグラム確率P(w3|w2)が存在するか否かを判定する。バイグラム確率P(w3|w2)が存在すると判定された場合、処理はステップS24に進む。
【0107】
ステップS24において、マッチング部4は、存在すると判定したバイグラム確率P(w3|w2)を、単語「w3」に対応するバイグラムエレメントBE344から読み出す。処理は図17のステップS14にリターンする。
【0108】
ステップS23において、単語「w3」に対応するバイグラムエレメントBE344が存在しない、すなわち、バイグラム確率P(w3|w2)が存在しないと判定された場合、処理はステップS25に進む。ステップS25において、マッチング部4は、バイグラム確率P(w3|w2)を、式(3)に示したようなバックオフスムージング法によって近似する。
【0109】
具体的には、メモリ5に存在するユニグラム配列11の単語「w2」に対応するユニグラムエレメントUE221からユニグラムバックオフ係数β(w2)を読み出し、単語「w3」に対応するユニグラムエレメントUE321からユニグラム確率P(w3)を読み出て、両者を乗算してバイグラム確率P(w3|w2)を近似する。処理は図17のステップS14にリターンする。
【0110】
図17の説明に戻る。ステップS14において、マッチング部4は、ステップS12(またはステップS15)で取得したバイグラムバックオフ係数β(w1,w2)と、ステップS13で取得したバイグラム確率P(w3|w2)とを乗算することによってトライグラム確率P(w3,|w1,w2)を近似し、処理を終了する。
【0111】
なお、ステップS3において、メモリ5のデータブロックDB121に含まれるバイグラム配列43に、単語「w2」に対応するバイグラムエレメントBE244が存在しない、すなわち、バイグラムバックオフ係数β(w1,w2)は存在しないと判定された場合、処理はステップS15に進む。ステップS15において、マッチング部4は、バイグラムバックオフ係数β(w1,w2)を1で近似する。この後、処理はステップS13に進み、以降の処理が実行される。
【0112】
以上、データブロックDB21に第5の構成例が採用されている場合におけるトライグラム確率の取得処理の説明を終了する。
【0113】
なお、本実施の形態においては、言語モデル8に採用するN-gramを、N=3のトライグラムに制限して説明したが、N>3のN-gramのパラメータに対しても同様に、効率的にデータブロックに格納し、データブロックを1つのデータ単位としてHDD9からメモリ5に転送させることができる。
【0114】
ところで、本発明の上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体(図29の磁気ディスク162乃至半導体メモリ165)からインストールされる。
【0115】
図23は、専用のアプリケーションプログラムを実行することによって音声認識装置として動作するパーソナルコンピュータの構成例を示している。
【0116】
このパーソナルコンピュータは、CPU(Central Processing Unit)151を内蔵している。CPU151にはバス154を介して、入出力インタフェース155が接続されている。バス154には、ROM(Read Only Memory)152およびRAM(Random Access Memory)153が接続されている。
【0117】
入出力インタフェース155には、ユーザの音声を入力するマイクロフォンなどよりなる音声入力部156、ユーザが操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる操作入力部157、操作画面などの映像信号をディスプレイに出力する表示制御部158、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部159、インタネットに代表されるネットワークを介してデータを通信する通信部160、および磁気ディスク162乃至半導体メモリ165などの記録媒体に対してデータを読み書きするドライブ161が接続されている。
【0118】
このパーソナルコンピュータに音声認識装置としての動作を実行させるプログラムは、磁気ディスク162(フロッピディスクを含む)、光ディスク163(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク164(MD(Mini Disc)を含む)、もしくは半導体メモリ165に格納された状態でパーソナルコンピュータに供給され、ドライブ161によって読み出されて記憶部159に内蔵されるハードディスクドライブにインストールされている。記憶部159にインストールされているプログラムは、操作入力部157に入力されるユーザからのコマンドに対応するCPU151の指令によって、記憶部159からRAM153にロードされて実行される。
【0119】
なお、このパーソナルコンピュータが音声認識装置としての動作する場合、RAM153が図1のメモリ5に相当する。また、記憶部159が図1のHDD9に相当する。
【0120】
本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に従って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【0121】
【発明の効果】
以上のように、本発明の音声認識装置および方法、並びにプログラムによれば、転送したN-gramパラメータに基づき、生成した単語列に対応するN-gram確率を取得するが、転送の処理は、取得の処理が単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、単語列「w1,w2,・・・,wk」に連なるN-gramパラメータからなるデータブロックを転送するようにHDDに対するアクセスの回数を減らし、音声認識の処理の遅延を抑止することが可能となる。
【図面の簡単な説明】
【図1】一般的な音声認識装置の構成の一例を示すブロック図である。
【図2】言語モデル8としてのN-gramのパラメータの構成を示す図である。
【図3】データブロックDB21の第1の構成例を示す図である。
【図4】ユニグラムエレメントUE12に格納される情報を示す図である。
【図5】データブロックDB21をHDD9からメモリ5に転送する概念を説明する図である。
【図6】データブロックDB21の第2の構成例を示す図である。
【図7】図6のバイグラムエレメントBE44に格納される情報を示す図である。
【図8】図6のポインタエレメントPE46に格納される情報を示す図である。
【図9】図6のトライグラムエレメントTE48に格納される情報を示す図である。
【図10】データブロックDB21の第3の構成例を示す図である。
【図11】図10のシングルトライグラムエレメントSTE83に格納される情報を示す図である。
【図12】データブロックDB21の第4の構成例を示す図である。
【図13】図12の読み込みポインタエレメントRPE103に格納される情報を示す図である。
【図14】データブロックDB21の外に配置される読み込みトライグラム配列121の概念を説明する図である。
【図15】図14のトライグラム配列121に格納される情報を示す図である。
【図16】データブロックDB21の第5の構成例を示す図である。
【図17】データブロックDB21に第5の構成例が採用されている場合におけるトライグラム確率の取得処理を説明するフローチャートである。
【図18】図17のステップS13におけるバイグラム確率の取得処理を説明するフローチャートである。
【図19】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
4 マッチング部, 8 言語モデル, 11 ユニグラム配列, 13 バイグラム配列, 15 トライグラム配列, 21 データブロックDB, 45 ポインタ配列, 82 シングルトライグラム配列, 102 読み込みポインタ配列, 121 読み込みトライグラム配列, 151 CPU, 162磁気ディスク, 163 光ディスク, 164 光磁気ディスク, 165半導体メモリ
Claims (7)
- 言語モデルにNを3以上とするN-gramを採用した音声認識装置において、
N-gramパラメータを記憶する記憶手段と、
前記記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータから構成されたデータブロックを一時的に保持する保持手段と、
前記記憶手段に記憶された前記N-gramパラメータを、前記データブロックの単位で前記保持手段に転送する転送手段と、
入力音声の特徴パラメータを抽出する抽出手段と、
前記抽出手段によって抽出された前記特徴パラメータに基づき、前記入力音声に対応する単語列を生成する生成手段と、
前記転送手段によって前記データブロック単位で転送された前記N-gramパラメータに基づき、前記生成手段によって生成された前記単語列に対応するN-gram確率を取得する取得手段とを含み、
前記データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する前記 N-gram パラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、前記 N-gram 確率の存在数に応じて異なる配列に格納されており、
前記取得手段が単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、
前記転送手段は、前記保持手段に保持されている前記ユニグラム配列の単語「w 1 」に対応する前記ポインタに基づいて、前記単語「w 1 」に対応する前記データブロックを前記記憶手段から前記保持手段に転送し、
前記取得手段は、前記保持手段に転送された前記データブロックにおけるトライグラム確率以降の N-gram 確率を、前記 N-gram 確率の存在数に応じて異なる配列に着目し、取得すべき前記 N-gram 確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき前記 N-gram 確率を取得する
ただし、n≧3である
ことを特徴とする音声認識装置。 - 前記記憶手段は、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、前記 N-gram 確率の存在数が1だけ存在する場合、2以上K未満だけ存在する場合、またはK以上存在する場合に分類されて、異なる配列に格納されている前記N-gramパラメータを記憶する
ことを特徴とする請求項1に記載の音声認識装置。 - 前記記憶手段は、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率がK以上存在する場合、K以上存在する前記N-gram確率が前記データブロックには属さない読み込み配列に格納されている前記N-gramパラメータを記憶する
ことを特徴とする請求項2に記載の音声認識装置。 - 前記転送手段は、前記記憶手段によって記憶された前記読み込み配列も前記保持手段に転送する
ことを特徴とする請求項3に記載の音声認識装置。 - N-gramパラメータを記憶する記憶手段と、
前記記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持す るとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータから構成されたデータブロックを一時的に保持する保持手段とを備え、言語モデルにNを3以上とするN-gramを採用した音声認識装置の音声認識方法において、
入力音声の特徴パラメータを抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記特徴パラメータに基づき、前記入力音声に対応する単語列を生成する生成ステップと、
前記記憶手段に記憶された前記N-gramパラメータを、前記データブロックの単位で前記保持手段に転送する転送ステップと、
前記転送ステップの処理で前記データブロック単位で転送された前記N-gramパラメータに基づき、前記生成ステップの処理で生成された前記単語列に対応するN-gram確率を取得する取得ステップとを含み、
前記データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する前記 N-gram パラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、前記 N-gram 確率の存在数に応じて異なる配列に格納されており、
前記取得ステップ処理で単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、
前記転送ステップの処理では、前記保持手段に保持されている前記ユニグラム配列の単語「w 1 」に対応する前記ポインタに基づいて、前記単語「w 1 」に対応する前記データブロックを前記記憶手段から前記保持手段に転送し、
前記取得ステップの処理では、前記保持手段に転送された前記データブロックにおけるトライグラム確率以降の N-gram 確率を、前記 N-gram 確率の存在数に応じて異なる配列に着目し、取得すべき前記 N-gram 確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき前記 N-gram 確率を取得する
ただし、n≧3である
ことを特徴とする音声認識方法。 - N-gramパラメータを記憶する記憶手段と、
前記記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータから構成されたデータブロックを一時的に保持する保持手段とを備え、言語モデルにNを3以上とするN-gramを採用した音声認識装置の制御用のプログラムであって、
入力音声の特徴パラメータを抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記特徴パラメータに基づき、前記入力音声に対応する単語列を生成する生成ステップと、
前記記憶手段に記憶された前記N-gramパラメータを、前記データブロックの単位で前記保持手段に転送する転送ステップと、
前記転送ステップの処理で前記データブロック単位で転送された前記N-gramパラメータに基づき、前記生成ステップの処理で生成された前記単語列に対応するN-gram確率を取得する取得ステップとを含み、
前記データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する前記 N-gram パラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、前記 N-gram 確率の存在数に応じて異なる配列に格納されており、
前記取得ステップ処理で単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、
前記転送ステップの処理では、前記保持手段に保持されている前記ユニグラム配列の単語「w 1 」に対応する前記ポインタに基づいて、前記単語「w 1 」に対応する前記データブロックを前記記憶手段から前記保持手段に転送し、
前記取得ステップの処理では、前記保持手段に転送された前記データブロックにおけるトライグラム確率以降の N-gram 確率を、前記 N-gram 確率の存在数に応じて異なる配列に着目し、取得すべき前記 N-gram 確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき前記 N-gram 確率を取得する
ただし、n≧3である
ことを特徴とする処理を音声認識装置のコンピュータに実行させるプログラムが記録されている記録媒体。 - N-gramパラメータを記憶する記憶手段と、
前記記憶手段よりもデータアクセス速度が高速であって、異なる複数の単語にそれぞれ対応するユニグラムパラメータおよびポインタが格納されているユニグラム配列を保持するとともに、所定の単語に共通して連鎖する任意の単語または単語列に対応する N-gram パラメータから構成されたデータブロックを一時的に保持する保持手段とを備え、言語モデルにNを3以上とするN-gramを採用した音声認識装置の制御用のプログラムであって、
入力音声の特徴パラメータを抽出する抽出ステップと、
前記抽出ステップの処理で抽出された前記特徴パラメータに基づき、前記入力音声に対応する単語列を生成する生成ステップと、
前記記憶手段に記憶された前記N-gramパラメータを、前記データブロックの単位で前記保持手段に転送する転送ステップと、
前記転送ステップの処理で前記データブロック単位で転送された前記N-gramパラメータに基づき、前記生成ステップの処理で生成された前記単語列に対応するN-gram確率を取得する取得ステップとを含み、
前記データブロックは、所定の単語に共通して連鎖する任意の単語または単語列に対応する前記 N-gram パラメータが階層構造を成す配列に格納され、共通の単語列に連鎖する単語のトライグラム確率以降の N-gram 確率が、前記 N-gram 確率の存在数に応じて異なる配列に格納されており、
前記取得ステップ処理で単語列「w1,w2,・・・,wn」に対応するN-gram確率P(wn|w1,w2,・・・,w(n-1))を取得する場合、
前記転送ステップの処理では、前記保持手段に保持されている前記ユニグラム配列の単語「w 1 」に対応する前記ポインタに基づいて、前記単語「w 1 」に対応する前記データブロックを前記記憶手段から前記保持手段に転送し、
前記取得ステップの処理では、前記保持手段に転送された前記データブロックにおけるトライグラム確率以降の N-gram 確率を、前記 N-gram 確率の存在数に応じて異なる配列に着目し、取得すべき前記 N-gram 確率を取得し、取得できない場合、バックオフスムージング法による近似演算によって取得すべき前記 N-gram 確率を取得する
ただし、n≧3である
ことを特徴とする処理を音声認識装置のコンピュータに実行させるプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001378883A JP3969079B2 (ja) | 2001-12-12 | 2001-12-12 | 音声認識装置および方法、記録媒体、並びにプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001378883A JP3969079B2 (ja) | 2001-12-12 | 2001-12-12 | 音声認識装置および方法、記録媒体、並びにプログラム |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2003177787A JP2003177787A (ja) | 2003-06-27 |
JP2003177787A5 JP2003177787A5 (ja) | 2005-07-21 |
JP3969079B2 true JP3969079B2 (ja) | 2007-08-29 |
Family
ID=19186477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001378883A Expired - Fee Related JP3969079B2 (ja) | 2001-12-12 | 2001-12-12 | 音声認識装置および方法、記録媒体、並びにプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3969079B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4527679B2 (ja) | 2006-03-24 | 2010-08-18 | 学校法人早稲田大学 | 音声の類似度の評価を行う方法および装置 |
JP4940057B2 (ja) * | 2007-08-17 | 2012-05-30 | 株式会社東芝 | 音声認識装置及びその方法 |
WO2009150894A1 (ja) | 2008-06-10 | 2009-12-17 | 日本電気株式会社 | 音声認識システム、音声認識方法および音声認識用プログラムが格納された記憶媒体 |
-
2001
- 2001-12-12 JP JP2001378883A patent/JP3969079B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003177787A (ja) | 2003-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6686154B2 (ja) | 発話認識方法及び装置 | |
JP4215418B2 (ja) | 単語予測方法、音声認識方法、その方法を用いた音声認識装置及びプログラム | |
He et al. | Discriminative learning for speech recognition: theory and practice | |
JP4571822B2 (ja) | テキストおよび音声の分類のための言語モデルの判別トレーニング | |
JP5331801B2 (ja) | 言語モデル先読み確率を計算する方法および装置 | |
JP4141495B2 (ja) | 最適化された部分的確率混合共通化を用いる音声認識のための方法および装置 | |
JP3782943B2 (ja) | 音声認識装置、コンピュータ・システム、音声認識方法、プログラムおよび記録媒体 | |
US9418152B2 (en) | System and method for flexible speech to text search mechanism | |
JP5175325B2 (ja) | 音声認識用wfst作成装置とそれを用いた音声認識装置と、それらの方法とプログラムと記憶媒体 | |
JP5249967B2 (ja) | 音声認識装置、重みベクトル学習装置、音声認識方法、重みベクトル学習方法、プログラム | |
JP6095588B2 (ja) | 音声認識用wfst作成装置、音声認識装置、音声認識用wfst作成方法、音声認識方法及びプログラム | |
JP6552999B2 (ja) | テキスト補正装置、テキスト補正方法、およびプログラム | |
JP4764203B2 (ja) | 音声認識装置及び音声認識プログラム | |
JP3969079B2 (ja) | 音声認識装置および方法、記録媒体、並びにプログラム | |
JP6158105B2 (ja) | 言語モデル作成装置、音声認識装置、その方法及びプログラム | |
JP5124012B2 (ja) | 音声認識装置及び音声認識プログラム | |
JP4528540B2 (ja) | 音声認識方法及び装置及び音声認識プログラム及び音声認識プログラムを格納した記憶媒体 | |
JP2974621B2 (ja) | 音声認識用単語辞書作成装置及び連続音声認識装置 | |
JP4808764B2 (ja) | 音声認識システムおよび方法 | |
JP6235922B2 (ja) | 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム | |
JP4537970B2 (ja) | 言語モデル作成装置、言語モデル作成方法、そのプログラムおよびその記録媒体 | |
WO2020179193A1 (ja) | 情報処理装置及び情報処理方法 | |
JP2001312293A (ja) | 音声認識方法およびその装置、並びにコンピュータ読み取り可能な記憶媒体 | |
JP2006107353A (ja) | 情報処理装置および方法、記録媒体、並びにプログラム | |
JP4674609B2 (ja) | 情報処理装置および方法、プログラム、並びに記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20041207 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041207 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20061219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070104 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070305 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070419 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070515 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070528 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100615 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100615 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110615 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120615 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |