(57)【特許請求の範囲】
【請求項１】
単語の音素列を定義する単語辞書と、単語の出現し易さのスコアを与える言語モデルと、単語について前記単語辞書で定義された音素列と前記言語モデルで定義されたスコアとから、言語モデルスコア先読み値が単語の語頭に集中しないように単語中の各音素での言語モデルスコア先読み値を求める平滑化言語モデルスコア先読み値計算手段とを備えることを特徴とする言語モデルスコア先読み値付与装置。
【請求項２】
前記平滑化言語モデルスコア先読み値計算手段は、単語中の各音素での言語モデルスコア先読み値を、当該音素の当該単語中の出現順序に基づいて求めることを特徴とする請求項１に記載の言語モデルスコア先読み値付与装置。
【請求項３】
前記平滑化言語モデルスコア先読み値計算手段は、単語中の各音素での言語モデルスコア先読み値を、単語先頭から当該音素までの音素数に基づいて求めることを特徴とする請求項２に記載の言語モデルスコア先読み値付与装置。
【請求項４】
前記平滑化言語モデルスコア先読み値計算手段は、単語先頭から音素までの音素数に基づいて設定された言語モデルスコア先読み値の閾値以内の言語モデルスコア先読み値を求めることを特徴とする請求項３に記載の言語モデルスコア先読み値付与装置。
【請求項５】
前記平滑化言語モデルスコア先読み値計算手段は、単語中の各音素での言語モデルスコア先読み値を、当該音素から辿れる単語の音素数に基づいて求めることを特徴とする請求項２に記載の言語モデルスコア先読み値付与装置。
【請求項６】
前記平滑化言語モデルスコア先読み値計算手段は、当該音素から辿れる単語の音素数に基づいて、言語モデルスコア先読み差分値が当該音素から辿れる音素に等分されるように言語モデルスコア先読み値を求めることを特徴とする請求項５に記載の言語モデルスコア先読み値付与装置。
【請求項７】
前記平滑化言語モデルスコア先読み値計算手段は、単語中の各音素での言語モデルスコア先読み値を、当該音素が含まれる枝分かれを持たない音素列の音素数に基づいて求めることを特徴とする請求項２に記載の言語モデルスコア先読み値付与装置。
【請求項８】
前記平滑化言語モデルスコア先読み値計算手段は、当該音素が含まれる枝分かれを持たない音素列の音素数に基づいて、言語モデルスコア先読み差分値が枝分かれを持たない音素に等分されるように言語モデル先読み値を求めることを特徴とする請求項７に記載の言語モデルスコア先読み値付与装置。
【請求項９】
言語モデルスコア先読み値を使ってフレーム同期ビームサーチを行う音声認識装置において、請求項１乃至８の何れか１項に記載の言語モデルスコア先読み値付与装置を備えたことを特徴とする音声認識装置。
【請求項１０】
単語について単語辞書で定義された音素列と言語モデルで定義されたスコアとから、言語モデルスコア先読み値が単語の語頭に集中しないように単語中の各音素での言語モデルスコア先読み値を求めることを特徴とする言語モデルスコア先読み値付与方法。
【請求項１１】
単語中の各音素での言語モデルスコア先読み値を、当該音素の当該単語中の出現順序に基づいて求めることを特徴とする請求項１０に記載の言語モデルスコア先読み値付与方法。
【請求項１２】
単語中の各音素での言語モデルスコア先読み値を、単語先頭から当該音素までの音素数に基づいて求めることを特徴とする請求項１１に記載の言語モデルスコア先読み値付与方法。
【請求項１３】
単語先頭から音素までの音素数に基づいて設定された言語モデルスコア先読み値の閾値以内の言語モデルスコア先読み値を求めることを特徴とする請求項１２に記載の言語モデルスコア先読み値付与方法。
【請求項１４】
単語中の各音素での言語モデルスコア先読み値を、当該音素から辿れる単語の音素数に基づいて求めることを特徴とする請求項１１に記載の言語モデルスコア先読み値付与方法。
【請求項１５】
当該音素から辿れる単語の音素数に基づいて、言語モデルスコア先読み差分値が当該音素から辿れる音素に等分されるように言語モデルスコア先読み値を求めることを特徴とする請求項１４に記載の言語モデルスコア先読み値付与方法。
【請求項１６】
単語中の各音素での言語モデルスコア先読み値を、当該音素が含まれる枝分かれを持たない音素列の音素数に基づいて求めることを特徴とする請求項１１に記載の言語モデルスコア先読み値付与方法。
【請求項１７】
当該音素が含まれる枝分かれを持たない音素列の音素数に基づいて、言語モデルスコア先読み差分値が枝分かれを持たない音素に等分されるように言語モデル先読み値を求めることを特徴とする請求項１６に記載の言語モデルスコア先読み値付与方法。
【請求項１８】
請求項１０乃至１７の何れか１項に記載の言語モデルスコア先読み値付与方法により求められる言語モデルスコア先読み値を使ってフレーム同期ビームサーチを行う音声認識方法。
【請求項１９】
単語の音素列を定義する単語辞書と単語の出現し易さのスコアを与える言語モデルとを記憶する記憶手段を備えたコンピュータに、単語について前記単語辞書で定義された音素列と前記言語モデルで定義されたスコアとから、言語モデルスコア先読み値が単語の語頭に集中しないように単語中の各音素での言語モデルスコア先読み値を求めるステップを実行させるための言語モデルスコア先読み値付与プログラム。
【請求項２０】
前記ステップでは、単語中の各音素での言語モデルスコア先読み値を、当該音素の当該単語中の出現順序に基づいて求めることを特徴とする請求項１９に記載の言語モデルスコア先読み値付与プログラム。
【請求項２１】
前記ステップでは、単語中の各音素での言語モデルスコア先読み値を、単語先頭から当該音素までの音素数に基づいて求めることを特徴とする請求項２０に記載の言語モデルスコア先読み値付与プログラム。
【請求項２２】
前記ステップでは、単語先頭から音素までの音素数に基づいて設定された言語モデルスコア先読み値の閾値以内の言語モデルスコア先読み値を求めることを特徴とする請求項２１に記載の言語モデルスコア先読み値付与プログラム。
【請求項２３】
前記ステップでは、単語中の各音素での言語モデルスコア先読み値を、当該音素から辿れる単語の音素数に基づいて求めることを特徴とする請求項２０に記載の言語モデルスコア先読み値付与プログラム。
【請求項２４】
前記ステップでは、当該音素から辿れる単語の音素数に基づいて、言語モデルスコア先読み差分値が当該音素から辿れる音素に等分されるように言語モデルスコア先読み値を求めることを特徴とする請求項２３に記載の言語モデルスコア先読み値付与プログラム。
【請求項２５】
前記ステップでは、単語中の各音素での言語モデルスコア先読み値を、当該音素が含まれる枝分かれを持たない音素列の音素数に基づいて求めることを特徴とする請求項２０に記載の言語モデルスコア先読み値付与プログラム。
【請求項２６】
前記ステップでは、当該音素が含まれる枝分かれを持たない音素列の音素数に基づいて、言語モデルスコア先読み差分値が枝分かれを持たない音素に等分されるように言語モデル先読み値を求めることを特徴とする請求項２５に記載の言語モデルスコア先読み値付与プログラム。
【請求項２７】
請求項１９乃至２６の何れか１項に記載の言語モデルスコア先読み値付与プログラムにより求められる言語モデルスコア先読み値を使って、前記コンピュータに、フレーム同期ビームサーチを行う音声認識ステップを実行させるための音声認識プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、言語モデルスコア先読み値を使ってフレーム同期ビームサーチを行う音声認識装置、そのような音声認識装置に好適な言語モデルスコア先読み値付与装置に関する。
【背景技術】
【０００２】
大語彙連続音声認識装置などの高性能な音声認識装置では、音響モデル、単語辞書および言語モデルの３つの知識源から予測される様々な仮説（認識候補）と、未知の入力音声との間の音響的類似度および言語的類似度を音響モデルスコアおよび言語モデルスコアとして算出し、最も確からしい仮説を認識結果として出力する。また、保持する仮説の数を制限して演算量やメモリ容量を削減するために、各時刻における音響モデルスコアおよび言語モデルスコアを総合的に判断して、スコアの良くない仮説は見込みがないものとして枝刈り、つまり以降の仮説展開を行わないようにする、フレーム同期ビームサーチ法（以下、単にビームサーチ法と記す）と呼ばれる手法を採用している。【０００３】
この種の音声認識装置の一例を図６に示す。図６において、音声認識対象となる音声波形は音声入力手段３０１により入力され、音響分析手段３０２に伝達される。音響分析手段３０２は、フレーム単位で音響特徴量を計算し、距離計算手段３０３に出力する。距離計算手段３０３は、入力された音響特徴量と音響モデル３０４中の各モデルとの距離を計算し、その距離に応じた音響モデルスコアを探索手段３０５に出力する。探索手段３０５は、探索する全ての仮説について、言語モデルスコア先読み値付与装置３０８から取得した言語モデル４０２による言語モデルスコアと前記音響モデルスコアとを加算した累積スコアを求め、累積スコアの悪い仮説の枝刈りを行う。残った仮説について処理を続け、最良の認識結果を認識結果出力手段３０９から出力する。【０００４】
単語辞書４０３の一部分の一例を図７に示す。この例の単語辞書４０３は木構造辞書である。また図７には、言語モデル４０２で与えられる各単語の言語モデルスコアが付記されている。例えば、単語「握手」（読み："akusyu"）は音素列「a-k-u-sy-u」を持ち、言語モデルスコアは８０である。また、単語「赤い」（読み："akai"）は音素列「a-k-a-i」を持ち、言語モデルスコアは５０である。本例では、言語モデルスコアの値が小さい程、良いスコアを示している。【０００５】
このような木構造辞書を用いた場合、単語間遷移の際に、それまでの仮説に木構造の根の部分を接続することになるが、その時点では接続する単語が特定されないため言語モデルスコアを累積スコアに加算することはできない。若し、何れかの単語終端に至った時点ではじめて言語モデルスコアを累積スコアに加算するならば、単語間遷移前後の仮説で大きくスコアが変動してしまう。このため、正解仮説のスコアが大きく変動しても枝刈りされないようにビーム幅を大きくとる必要があり、効率的なビームサーチができない。【０００６】
そこで、なるべく早く言語モデルスコアを加算するために、言語モデルスコア先読み値付与装置３０８は、木構造辞書の各枝以下に対応する単語の言語モデルスコアの最良値をその枝における楽観的な言語モデルスコアとして取得する最良言語モデルスコア取得手段４０１を備えている。【０００７】
すなわち、最良言語モデルスコア取得手段４０１は、単語辞書４０３および言語モデル４０２を用い、（１）式に示されるように、単語履歴hを持つ音素sの仮説の言語モデルスコア先読み値πh(s)について、辞書中の前記音素sから辿れる単語の集合W(s)に属する単語wの中で言語モデルスコア-log{p(w|h)}の最良値を取得する。そして、探索手段３０５における探索の過程で仮説が音素sへと遷移した際に、（２）式で示される前音素s~の言語モデルスコア先読み値と現音素sの言語モデルスコア先読み値との差分値δh(s)が仮説の累積スコアに加算される。
πh(s)＝min w∈Ｗ(s){-log p(w|h)}      …（１）
δh(s)＝πh(s)−πh(s~)      …（２）【０００８】
以上の動作によって付与される言語モデルスコア先読み値の例を図８に示す。終端音素の右の数値が各単語の言語モデルスコアを表し、各枝の数値がその枝に持たせる言語モデルスコア先読み差分値を表す。この例では、それまでの仮説に木構造の根の部分を接続した時点で、５０という言語モデルスコアを累積スコアに加算することができ、単語終端に至った時点ではじめて言語モデルスコアを累積スコアに加算する場合に比べて、効率の良いビームサーチを行うことが可能となる。【０００９】
以上のような最良言語モデルスコア取得手段４０１は非特許文献１に記載されている。なお、非特許文献１には、ユニグラム言語モデルスコアの先読みと、バイグラム言語モデルスコアの先読みとの２通りの方法が記載されている。ユニグラム言語モデルスコアの先読みは、言語モデルスコア先読み差分値としてユニグラム言語モデルスコアによるものを使用し、仮説が木構造辞書の単語終端に到達して単語が確定した時に、それまで使用していたユニグラム言語モデルスコアを捨て、確定したバイグラム言語モデルスコアを加算する。単語終端に到達したときに行われるこのような処理を単語末処理と呼ぶ。他方、バイグラム言語モデルスコアの先読みは、先読みの段階からバイグラム言語モデルスコアを使用する方法である。図６に示した探索手段３０５は、本来の探索を行う本探索手段３０６に加えて単語末処理手段３０７を備えており、ユニグラム言語モデルスコアの先読み方法を使用する例に相当する。【００１０】
【非特許文献１】S.Ortmanns et al. "Language-model look-ahead for large vocabulary speech recognition" ICSLP 1996
【発明の開示】
【発明が解決しようとする課題】
【００１１】
上述した最良言語モデルスコア取得手段４０１による言語モデルスコアの先読みでは、木構造辞書の各枝以下に対応する単語の言語モデルスコアの最良値をその枝における言語モデルスコアとするため、各枝以下に対応する単語の言語モデルスコアが何れも悪い場合には、それらの単語に早い時点で悪い言語スコアのほとんどが加算されてしまい、正解仮説であっても早期に枝刈りされてしまう場合があった。以下、具体例を挙げて説明する。【００１２】
図９は認識対象語に「お菓子」（読み："okasi"）を含み、「お菓子」以外には音素"o","k"の連鎖から始まる単語を含まず、単語辞書４０３に木構造辞書を用いた場合の、単語辞書と言語モデルスコア先読み値の例である。この場合、最良言語モデルスコア取得手段４０１は、"o"へとつながる枝に言語モデルスコア先読み値「５０」を付与し、また、"k"以降の音素で枝分かれを持つ音素がないため、"k"へとつながる枝に言語モデルスコア先読み値「９０」（差分値では「４０」）を付与する。一般に音声認識では、前後のコンテキストを考慮したトライフォン（３つ組音素）が認識単位として用いられる。このため「お菓子」の仮説に対しては、「o-k-a-s-i」という音素列における語頭の音素"o"の時点で、右コンテキストの"k"も考慮されて、「９０」という悪い言語モデルスコアが全て加算されることになる。したがって、"k"以降の音素の一致を調べれば音響モデルスコアが良くなって「お菓子」が正解仮説となる場合であっても、早い段階で大きな言語モデルスコア先読み値が加算されるために枝刈りされやすくなり、認識誤りを生じることになる。【００１３】
また、図１０は認識対象語に「キャンセル」（読み："kyanseru"）を含み、音素"ky","a"の連鎖から始まる認識対象語は複数あるものの、言語モデルスコアがいずれも「１００」と悪く、単語辞書４０３に木構造辞書を用いた場合の、単語辞書と言語モデルスコア先読み値の例である。この場合、最良言語モデルスコア取得手段４０１は、"ky"へとつながる枝に言語モデルスコア先読み値「５０」を付与し、また、"a"へとつながる枝に言語モデルスコア先読み値「１００」（差分値では「５０」）を付与する。このように音素"ky","a"の連鎖から始まる単語の仮説に対しては、語頭の音素"ky"の時点で「１００」という悪い言語モデルスコアが全て加算されることになる。このため、"a"以降の音素の一致を調べれば音響モデルスコアが良くなって正解仮説となる場合であっても、早い段階で大きな言語モデルスコア先読み値が加算されるために枝刈りされやすくなり、認識誤りを生じることになる。【００１４】
以上の例は木構造辞書の場合であるが、単語辞書４０３に線形辞書を用いる場合にも同様の問題が生じる。図１１は認識対象語に「ベルト」（読み："beruto"）を含み、単語辞書４０３に線形辞書を用いた場合の、単語辞書と言語モデルスコア先読み値の例である。線形辞書の場合、全ての単語の単語先頭から、その単語の言語モデルスコアを言語モデルスコア先読み値として与えることが可能である。しかし、例のように、「ベルト」の言語モデルスコアが「１００」と悪い場合、それまでの仮説に単語の先頭部分を接続した時点で、言語モデルスコアの全てが累積スコアに加算されるため、枝刈りされやすくなる。【００１５】
正解仮説が枝刈りをされないようにする方法の一つは、ビーム幅を広げることである。しかし、ビーム幅を広げてしまうと、仮説数が増大し計算量が増えるという別の問題が発生する。【００１６】
本発明の目的は、仮説数の増大を抑えつつ、正解仮説の枝刈りを防ぐことのできる言語モデルスコア先読み値付与装置および方法ならびにプログラム記録媒体を提供することにある。
【課題を解決するための手段】
【００１７】
本発明の言語モデルスコア先読み値付与装置は、単語の音素列を定義する単語辞書と、単語の出現し易さのスコアを与える言語モデルと、単語について前記単語辞書で定義された音素列と前記言語モデルで定義されたスコアとから、言語モデルスコア先読み値が単語の語頭に集中しないように単語中の各音素での言語モデルスコア先読み値を求める平滑化言語モデルスコア先読み値計算手段とを備える。
【発明の効果】
【００１８】
本発明によれば、仮説数の増大を抑えつつ、正解仮説の枝刈りを防ぐことができる。その理由は、言語モデルスコア先読み値が単語の語頭に集中しないように単語中の各音素での言語モデルスコア先読み値を求めるためである。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施の形態の構成を示すブロック図である。
【図２】本発明の第１の実施の形態の動作を示すフローチャートである。
【図３】平滑化言語モデルスコア先読み値計算手段の実施例１の動作説明図である。
【図４】平滑化言語モデルスコア先読み値計算手段の実施例２の動作説明図である。
【図５】平滑化言語モデルスコア先読み値計算手段の実施例３の動作説明図である。
【図６】本発明に関連する音声認識装置の構成を示すブロック図である。
【図７】木構造辞書の一例を示す図である。
【図８】最良言語モデルスコア取得手段を用いて与えられる言語モデルスコア先読み値の一例を示す図である。
【図９】最良言語モデルスコア取得手段を用いて与えられる言語モデルスコア先読み値の他の例を示す図である。
【図１０】最良言語モデルスコア取得手段を用いて与えられる言語モデルスコア先読み値の他の例を示す図である。
【図１１】線形辞書の一例と言語モデルスコア先読み値の例を示す図である。
【符号の説明】
【００２０】
１０１  音声入力手段
１０２  音響分析手段
１０３  距離計算手段
１０４  音響モデル
１０５  探索手段
１０６  本探索手段
１０７  単語末処理手段
１０８  言語モデルスコア先読み値付与装置
１０９  認識結果出力手段
２０１  平滑化言語モデルスコア先読み値計算手段
２０２  言語モデル
２０３  単語辞書
３０１  音声入力手段
３０２  音響分析手段
３０３  距離計算手段
３０４  音響モデル
３０５  探索手段
３０６  本探索手段
３０７  単語末処理手段
３０８  言語モデルスコア先読み値付与装置
３０９  認識結果出力手段
４０１  最良言語モデルスコア取得手段
４０２  言語モデル
４０３  単語辞書
【発明を実施するための最良の形態】
【００２１】
次に、本発明を実施するための最良の形態について図面を参照して詳細に説明する。【００２２】
［第１の実施の形態］
図１を参照すると、本発明の第１の実施の形態に係る音声認識装置は、音声入力手段１０１と、音響分析手段１０２と、距離計算手段１０３と、音響モデル１０４と、探索手段１０５と、言語モデルスコア先読み値付与装置１０８と、認識結果出力手段１０９とから構成されている。また、探索手段１０５は、本探索手段１０６と、単語末処理手段１０７とから構成される。さらに、言語モデルスコア先読み値付与装置１０８は、平滑化言語モデルスコア先読み値計算手段２０１と、言語モデル２０２と、単語辞書２０３とから構成される。これらはそれぞれ以下のような機能を有する。【００２３】
音響モデル１０４は、音素または音素列に対してその音響特徴量を与えるモデルである。単語辞書２０３は、単語の音素列を定義した辞書であり、本実施の形態は木構造辞書を用いる。木構造辞書は、単語とその音素列との対応を記録した辞書であって、共通の先頭音素列を単語間で共有化することでツリー化した辞書である。言語モデル２０２は、単語または単語列に対してその出現し易さのスコアを与えるモデルである。本実施の形態では、言語モデル２０２は、ユニグラム言語モデルとバイグラム言語モデルとを含む。【００２４】
平滑化言語モデルスコア先読み値計算手段２０１は、単語について単語辞書２０３で定義された音素列と言語モデル２０２で定義された言語モデルスコア（本実施の形態の場合はユニグラム言語モデルスコア）とから、言語モデルスコア先読み値が単語の語頭に集中しないように単語中の各音素での言語モデルスコア先読み値を求める手段である。具体的には、単語中の各音素での言語モデルスコア先読み値を当該音素の当該単語中の出現順序に基づいて求めることにより、単語の先頭音素またはそれに近い音素での言語モデルスコア先読み値がその単語の言語モデルスコアにほぼ等しくならないようにする。なお、全ての単語について、言語モデルスコア先読み値がその単語の語頭に集中しないようにする必要は必ずしもなく、他の単語に比べて言語モデルスコアが相対的に悪い単語の全て或いは一部の単語について、言語モデルスコア先読み値の語頭への集中がなければ良い。【００２５】
音声入力手段１０１は、音声認識対象となる音声波形を入力する手段である。音響分析手段１０２は、各フレーム毎に入力音声波形から音響的特徴量を計算する手段である。距離計算手段１０３は、入力音声波形の音響的特徴量と音響モデルとの距離に応じた音響モデルスコアを各フレーム毎に計算する手段である。【００２６】
探索手段１０５は、単語辞書２０３中の単語を組み合わせて得られる候補単語列（仮説）のうち、音響モデル１０４を用いて音響モデルスコアとして計算される各単語の発音が入力音声波形を出力する確率値と、言語モデル２０２を用いて言語モデルスコアとして計算される単語連鎖の確率値との累積スコアが最も大きい単語列を探索し、出力する手段である。この探索手段１０５は、単語末処理を行う単語末処理手段１０７と、それ以外の探索処理を行う本探索手段１０６とで構成されている。【００２７】
認識結果出力手段１０９は探索手段１０５の出力する認識結果を出力する手段である。【００２８】
次に図１及び図２のフローチャートを参照して、本実施の形態の全体の動作について詳細に説明する。【００２９】
まず、ステップＳ１において、音声入力手段１０１を用いて音声波形を入力する。【００３０】
次に、ステップＳ２において、音響分析手段１０２が前記音声波形を入力とし、ケプストラムなどの音響特徴量を計算し、出力する。【００３１】
次に、ステップＳ３において、距離計算手段１０３が前記音響特徴量を入力とし、音響モデル１０４の各モデルとの距離を計算し、音響モデルスコアを出力する。【００３２】
次に、ステップＳ４において、平滑化言語モデルスコア先読み値計算手段２０１が、探索する全ての仮説において言語モデルスコア先読み値を計算する。【００３３】
次に、ステップＳ５において、本探索手段１０６において、各仮説毎に、その累積スコアに音響モデルスコアと言語モデルスコア先読み値とが加算され、累積スコアが更新される。【００３４】
次に、ステップＳ６において、仮説が単語末かどうかを判断し、仮説が単語末であればステップＳ７において、単語末処理手段１０７により、加算されているユニグラム言語モデルによる言語モデルスコア先読み値を、言語モデル２０３から得られるバイグラム言語モデルスコアに補正する。【００３５】
次に、ステップＳ８において、累積スコアの悪い仮説の枝刈りを行う。例えば、尤度閾値に満たない仮説を捨てる方法や、上位一定個数の仮説を残し、他を捨てる方法などによって枝刈りを行う。【００３６】
次に、ステップＳ９において、音声入力が終了したかどうかを判断し、入力がまだ続いているならばステップＳ１に戻り、新しい入力に対し同様の処理を行う。入力が終了した場合はステップＳ１０へと進む。【００３７】
最後に、ステップＳ１０において、認識結果出力手段１０９が、探索手段１０５から結果を受け取り、最良の認識結果を出力する。最良の認識結果だけでなく、上位幾つかの認識結果を出力するようにしても良い。【００３８】
次に、本実施の形態の効果について説明する。【００３９】
本実施の形態によれば、正解仮説の枝刈りを防ぐことができ、それによって認識誤り率を低減することができる。その理由は、言語モデルスコア先読み値が単語の語頭に集中しないようにしているため、言語モデルスコア先読み値の単語の語頭への集中に起因する正解仮説の早期枝刈りが防止されるためである。【００４０】
また本発明によれば、ビーム幅を広げる場合に比べて仮説数の増大を抑えることができる。その理由は、言語モデルスコア先読み値が単語の語頭に集中しないようにしたことによる計算量の増加は、言語モデルスコア先読み値が語頭に集中して枝刈りされていた仮説の計算量のみであって、その量はごく僅かであるのに対し、ビーム幅を広げる方法では、音響モデルスコアが悪い仮説や、単語末でスコアの悪い単語も枝刈りされずに探索空間に残り、仮説の計算量の増加がより大きくなるからである。【００４１】
次に、平滑化言語モデルスコア先読み値計算手段２０１の実施例について詳細に説明する。【００４２】
［平滑化言語モデルスコア先読み値計算手段２０１の実施例１］
本実施例１の平滑化言語モデルスコア先読み値計算手段２０１は、単語中の各音素での言語モデルスコア先読み値を、単語先頭から当該音素までの音素数に基づいて求める。具体的には、平滑化言語モデルスコア先読み値を式（３）、（４）のように定義して計算を行う。
π'h(s)＝min w∈W(s){-log p(w|h)}      …（３）
πh(s)＝π'h(s)      if    π'h(s)＜＝T(d(s))  or  s∈E
＝T(d(s))      otherwise                            …（４）【００４３】
（３）式は、（１）式と同様、言語モデルスコアの最良値π'h(s)を取得する。（４）式では、先頭からn番目の音素であるかによって閾値T(n)を定め、音素sが先頭からd(s)番目の音素である場合、π'h(s)がT(d(s))を超えている場合は言語モデルスコア先読み値を閾値T(d(s))の値までしか加算しない。ここで、nが小さいほどT(n)も小さいように閾値は定められている。これによって、語頭に言語モデルスコア先読み値が集中することを避けることができる。なお、Eは単語の最終音素の集合である。【００４４】
図３に木構造辞書を用いて本実施例を動作させた場合の言語モデルスコア先読み値の具体例を示す。【００４５】
まず、単語先頭からの音素数ごとに言語モデル先読み値の閾値T(d)を決める。例では第１音素から第４音素まで順に、「４５」、「７０」、「９０」、「１００」と閾値を決めている。閾値T(d)は、事前に決定しておいて、平滑化言語モデルスコア先読み値計算手段２０１または単語辞書２０３や言語モデル２０２に設定しておいても良いし、平滑化言語モデルスコア先読み値を計算する際に、平滑化言語モデルスコア先読み値計算手段２０１が決定しても良い。【００４６】
次に第１音素の最良言語スコアが、第１音素閾値を超える場合、第１音素につながる枝に持たせる言語モデルスコア先読み差分値は第１音素閾値とし、第１音素閾値を超えた超過値は次音素につながる枝に持ち越す。例では、第１音素"a"の最良言語スコアは「５０」であり、第１音素閾値の「４５」を「５」超えるため、第１音素"a"につながる枝の言語モデルスコア先読み差分値は第１音素閾値の「４５」とし、閾値超過値の「５」を次音素につながる枝へ持ち越す。さらに、次音素につながる枝についても同様の処理を繰り返し、単語末音素の場合は、当該音素の閾値を超えても最良言語スコアが言語モデルスコア先読み値となるように言語モデルスコア先読み差分値を持たせる。例では、第２音素"k"の最良言語スコアは「９０」であり、第２音素閾値の「７０」を「２０」超えるため、第２音素閾値の「７０」が第２音素"k"の言語モデルスコア先読み値となり、この値から、第１音素"a"までに加算された言語モデルスコア先読み値の「４５」を差し引いた「２５」を第２音素"k"につながる枝に持たせる言語モデル先読み差分値とし、閾値超過値の「２０」を次音素につながる枝に持ち越す。以上により、閾値を超える過大な言語モデル先読み値が加算されることがなくなる。【００４７】
［平滑化言語モデルスコア先読み値計算手段２０１の実施例２］
本実施例２の平滑化言語モデルスコア先読み値計算手段２０１は、単語中の各音素での言語モデルスコア先読み値を、当該音素から辿れる単語の音素数に基づいて求める。具体的には、平滑化言語モデルスコア先読み値を式（５）、（６）のように定義して計算を行う。
δh(s)＝min w∈W(s) [ {-log p(w|h)−πh(s~)} / {N(w)−d(s)＋１}]      …（５）
πh(s)＝πh(s~)＋δh(s)      …（６）【００４８】
N(w)は単語wの音素数である。d(s)は、実施例１と同様に音素sが先頭からd(s)番目の音素であることを表す。【００４９】
本実施例２では、言語モデルスコアを単語の音素数で等分したものを言語モデル先読み差分値として用いる。式（５）の分子は言語モデルスコアから前音素s~以前に加算された言語モデルスコア先読み値を引いた値であり、分母は単語wにおける音素s以降の音素数である。したがって、言語モデルスコアを音素数で等分し、sから辿れる単語wの中での最小値を言語モデルスコア先読み差分値δh(s)として音素sにつながる枝に持たせる。言語モデルスコア先読み値πh(s)は式（６）により前音素s~の言語モデルスコア先読み値に差分値を加算することで求めることができる。【００５０】
図４に木構造辞書を用いて本実施例を動作させた場合の言語モデルスコア先読み値の具体例を示す。【００５１】
図４の例の第１音素では、辿れる単語は４つである。"a-k-u-sy-u"は５音素であり、言語モデルスコアが「５０」であるので、等分すると枝１つ当たり「１０」となる。また、"a-k-a-i"では、４音素であり、言語モデルスコアが「６０」であるので、等分すると枝１つ当たり「１５」となる。このように全ての単語について計算すると、最小値は"a-k-u-sy-u"の言語モデルスコアを等分した「１０」であるので、第1音素の"a"につながる枝には「１０」の言語モデルスコア先読み差分値を持たせる。次に"a-s-o-b-i"の、音素"s"以降を見てみると、"a"で加算されていない言語モデルスコアは、言語モデルスコアの「９０」から音素"a"の言語モデルスコア先読み差分値の「１０」を引いた「８０」であり、"s"以降の音素数は４つである。したがってこれを等分すると枝１つ当たり「２０」となる。これを次音素にも繰り返し行い、言語モデルスコア先読み値を決定する。【００５２】
以上により、言語モデルスコア先読み値が単語の先頭から終端まで分配されることで、言語モデル先読み値が平滑化され、単語先頭において過大な言語モデル先読み値が加算されることがなくなる。【００５３】
［平滑化言語モデルスコア先読み値計算手段２０１の実施例３］
本実施例３の平滑化言語モデルスコア先読み値計算手段２０１は、単語中の各音素での言語モデルスコア先読み値を、当該音素が含まれる枝分かれを持たない音素列の音素数に基づいて求める。具体的には、平滑化言語モデルスコア先読み値を式（７）のように定義して計算を行う。
δh(s)＝｛πh(s)−πh(s~)｝／m(s)      if  s~∈B
＝δh(s~)                        otherwise    …（７）【００５４】
Bは木構造辞書中の枝分かれのある音素の集合である。m(s)は、s以降最初に出現する木構造における枝分かれを持つ音素の先頭からの音素数と、前音素s~の先頭からの音素数との差である。s以降に木構造に枝分かれがない場合は単語末の音素の先頭からの音素数と前音素s~の先頭からの音素数との差とする。【００５５】
まず、従来同様（１）式によって言語モデルスコアの最良値πh(s)を求める。本実施例では、枝分かれのない枝が存在する場合、最良値の差分値をそのまま持たせるのではなく、枝分かれのない枝の数であるm(s)で等分することで、言語モデルスコア先読み値の平滑化を行う。【００５６】
図５に木構造辞書を用いて本実施例を動作させた場合の言語モデルスコア先読み値の具体例を示す。【００５７】
図５の最下部の"a-s-o-b-i"では、従来手法では"a"と"s"をつなぐ枝"a-s"に「４０」の言語モデルスコア先読み差分値を持たせる。本実施例では"s"、"o"、"b"はいずれも枝を１本しか持っておらず、枝分かれがないため、枝"a-s"に持たせていた言語モデルスコア先読み差分値をこれらの枝にも分配する。音素"s"以降に枝分かれはないため、単語末音素の先頭からの音素数を用いる。単語末音素"i"は先頭から５番目の音素であり、s~は１番目の音素である"a"であるからm(s)はその差である「４」である。したがって、"a-s"、"s-o"、"o-b"、"b-i"の４つの枝それぞれに枝"a-s"の言語モデルスコア先読み差分値「４０」を等分配し、それぞれの枝に「１０」ずつの言語モデルスコア先読み差分値を持たせる。【００５８】
同様に"k-u-sy-u"と""a-r-i"の部分も言語モデルスコア先読み差分値を分配する。以上により、言語モデルスコア先読み値が平滑化され、語頭において過大な言語モデル先読み値が加算されることがなくなる。【００５９】
［その他の実施の形態］
以上の実施の形態では、先読みをユニグラム言語モデルで行い、単語末処理でバイグラム言語モデルに置き換えたが、先読みをバイグラム言語モデルで行い、単語末処理でトライグラム言語モデルに置き換える等、先読みで使用する言語モデル、単語末処理で置き換える言語モデルは種々変更可能である。また、単語末処理を行わず、先読みの時点からバイグラム言語モデルやトライグラム言語モデルを使用する実施の形態も考えられる。【００６０】
さらに、以上の実施の形態および実施例１〜３は単語辞書２０３が木構造辞書である例を示したが、単語辞書２０３が線形辞書である場合でも同様の手法を用いることが可能である。【００６１】
また、以上の実施の形態では、平滑化言語モデルスコア先読み値をその都度計算するようにしたが、平滑化言語モデルスコア先読み値を事前に計算しておいて、例えば単語辞書２０３や言語モデル２０２に記憶させておき、探索の過程で、平滑化言語モデルスコア先読み値計算手段２０１が、記憶されている平滑化言語モデルスコア先読み値の中から該当する値を検索して取得するという構成も考えられる。【００６２】
また、平滑化言語モデルスコア先読み値計算手段２０１、音声入力手段１０１、音響分析手段１０２、距離計算手段１０３、探索手段１０５、認識結果出力手段１０９は、ハードウェア的に実現することは勿論、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリ等のコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られ、そのコンピュータの動作を制御することにより、そのコンピュータを前記各手段として機能させ、前述した処理を行わせる。【００６３】
以上、実施の形態（及び実施例）を参照して本番発明を説明したが、本願発明は上記実施形態（及び実施例）に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。【００６４】
この出願は、２００８年５月１６日に出願された日本出願特願２００８−１２９９３７を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【００６５】
本発明は、音声認識を用いる自動通訳や情報検索、音声対話システムなど、音声認識システム全般に適用することができる。
【図１】
0005447373.tif 000002
【図２】
0005447373.tif 000003
【図３】
0005447373.tif 000004
【図４】
0005447373.tif 000005
【図５】
0005447373.tif 000006
【図６】
0005447373.tif 000007
【図７】
0005447373.tif 000008
【図８】
0005447373.tif 000009
【図９】
0005447373.tif 000010
【図１０】
0005447373.tif 000011
【図１１】
0005447373.tif 000012