説明

音声認識装置、方法、プログラム及びその記録媒体

【課題】音声認識処理を高速化する。
【解決手段】フレーム数決定部90が、フレーム数Kを状態jごとに適宜定める。例えば、自己遷移確率ajjが高いほど、状態jのフレーム数Kを大きくする。状態尤度計算部31が、状態jのフレームtについての状態状態尤度b(X)を計算するときに、状態jのフレームt+1,…,t+Kについての状態尤度b(Xt+1),…,b(Xt+K)をついでに計算して状態尤度記憶部80に格納する。状態尤度参照部32が、状態尤度b(Xt+1),…,b(Xt+K)の何れかが必要になったときに、状態尤度記憶部80を参照して、その状態尤度を求める。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、音声認識技術に関する。特に、音声認識処理の速度を向上させる技術に関する。
【背景技術】
【0002】
図7を参照して、従来技術の音声認識装置100’について説明する。
入力音声が、音響分析部10に入力される。音響分析部10は、入力音声から、一定時間長のフレームごとに特徴量ベクトルを計算し、特徴量ベクトルの時系列を生成する。生成された特徴量ベクトルの時系列は、探索部30’に送られる。
探索部30’は、音響モデル記憶部40から読み込んだ音響モデルを用いて、文法記憶部50から読み出した文法で表現される単語又は単語列と特徴量ベクトルの時系列との照合を行い、すなわち探索処理を行い、最も尤度が高い単語又は単語列を認識結果として出力する。
【0003】
音響分析部10における音声分析方法としてよく用いられるのは、ケプストラム分析である。例えば、特徴量として、MFCC(Mel Frequency Cepstral Coefficient)、ΔMFCC、ΔΔMFCC、対数パワー、Δ対数パワー等があり、これらの特徴量が10から100次元程度の特徴量ベクトルを構成する。また、例えば、フレーム幅は30ms程度、フレームシフト幅は10ms程度で音声分析が行われる。
音響モデル記憶部40に記憶された音響モデルは、MFCC等の音声の特徴量を適切なカテゴリで標準パターンとして保持したものであり、入力音声のある区間の特徴量ベクトルに対して、各標準パターンとの音響的な近さを尤度として計算し、それがどのカテゴリに属するのかを推定するために用いられる。
【0004】
現在、音響モデルとしては、確率・統計理論に基づいてモデル化された隠れマルコフモデル(Hidden Markov Model,以下HMMと略する。)が汎用される。通常、HMMは音素カテゴリ単位で作成される。音素カテゴリ単位で作成された各HMMを音素HMMという。複数の音素HMMからなる音素HMMの集合が、1つの音響モデルを構築する。
音素HMMとしては、monophone−HMM,biphone−HMM及びtriphone−HMMがよく用いられる。
【0005】
monophone−HMMは、中心音素に先行する音素と後続する音素の両方を音素環境として考慮しない音素環境非依存型の音素HMMである。例えば、音素aのmonophone−HMMは、*を任意の音素として、*−a−*と表すことができる。
biphone−HMMには、中心音素に先行する音素のみを音素環境として考慮する先行音素環境依存型の音素HMM、中心音素に後続する音素のみを音素環境として考慮する後続音素環境依存型の音素HMMがある。例えば、先行音素がpである音素aの先行音素環境依存型biphone−HMMは、p−a−*と表すことができる。また、後続音素がtである音素aの後続音素環境依存型biphone−HMMは、*−a−tと表すことができる。
【0006】
triphone−HMMは、中心音素に先行する音素及び後続する音素の両方を音素環境として考慮する音素HMMである。例えば、先行音素がp、後続音素がtである音素aのtriphone−HMMは、p−a−tと表すことができる。
monophone−HMMよりもbiphone−HMMの方が、また、biphone−HMMよりもtriphone−HMMの方が音素環境を詳細に表現したモデルである。
音素HMMで表現される音素カテゴリの種類の数は、音響モデルの学習データに依存するが、t−t−t等の日本語の音素連鎖としてあり得ないものは除かれるため、一般的には数千から数万程度になる。
【0007】
図8,図9を参照して、音響モデルに含まれる音素HMMの構造を説明する。音素HMMは、後述するように複数の状態Sから構成される。
状態Sは、図8に例示するように、混合確率分布として表現される。混合確率分布の各要素分布には、離散確率分布と連続確率分布があるが、現在最もよく用いられているのは、連続確率分布の1つである多次元正規分布(多次元ガウス分布ともいう。)である。その内でも次元間の相関がない、すなわち共分散行列の対角成分が0である多次元無相関正規分布が最もよく用いられている。多次元正規分布の各次元は、特徴量ベクトルの各次元に対応する。
【0008】
図8では、状態Sは、4つの多次元正規分布を要素分布とする多次元混合正規分布Mとして表現されている。なお、図8では、多次元正規分布のある次元iについて示されているが、多次元正規分布の他の次元についても同様に表現される。
図8に例示するような状態Sの数個から十数個程度の確率連鎖によって、音素HMMが構成される。音素HMMが、いくつの状態のどのような確率連鎖によって構成されるかには、様々なバリエーションがある。また、音素HMMごとに異なる構造を取ることもある。
【0009】
現在最も一般的に用いられている構造は、図9に例示するような3状態のleft−to−right型HMMと呼ばれるものである。これは、第一状態S、第二状態S及び第三状態Sからなる3つの状態を左から右に並べたものである。状態の確率連鎖、すなわち状態遷移は、自分自身への遷移(自己遷移)S→S、S→S、S→Sと、次状態への遷移S→S、S→Sとからなる。音響モデル中の全ての音素HMMがこの3状態のleft−to−right型HMMの構造を取ることが多い。
【0010】
音素HMMの音響尤度計算について説明する。具体的には、図9の音素HMMに、ある特徴量ベクトルの時系列が入力されたときの音響尤度計算について説明する。例えば、6フレーム分の特徴量ベクトルの時系列X=X,X,X,X,X,Xが、音素HMMのある1つの状態遷移系列S=S→S→S→S→S→Sから出力される確率である音響尤度P(X|S,HMM)は、以下のように計算される。
【数1】

【0011】
ここで、ajkは状態Sから状態Sへの遷移確率である。また、状態尤度b(X)は、時刻t、すなわちフレームtにおける特徴量ベクトルXが状態Sを表現する多次元混合正規分布Mから出力される確率である。状態尤度b(X)は、多次元混合正規分布Mを構成するm番目の多次元正規分布の出力確率Pjm(X)を用いて、以下のように計算される。
【数2】

【0012】
ここで、混合数mは、多次元混合正規分布Mを構成する正規分布の数であり、Wjmは、多次元混合正規分布Mを構成するm番目の正規分布の分布重みである。Wjmについては、以下の式が満たされる。
【数3】

【0013】
多次元混合正規分布Mを構成する正規分布が多次元無相関正規分布の場合、Pjm(X)は以下のように計算される。
【数4】

【0014】
ここで、μjmi,σjmiは、多次元混合正規分布Mを構成するm番目の多次元無相関正規分布の次元iにおける平均値、分散。Xtiは、特徴量ベクトルのXの次元iの値である。Iは、特徴量ベクトル及び多次元無相関正規分布の次元数である。
【0015】
上記した音響尤度計算は、ある1つの状態遷移系列Sに対するものである。このような状態遷移系列は他にもあげることができる。このような状態遷移系列の全てに対して特徴量ベクトルの時系列を出力する確率を計算し、これらの計算された確率を加算したものを音素HMMに特徴量ベクトルの時系列Xが入力されたときの音響尤度とする方法は、トレリス(trellis)アルゴリズムと呼ばれる。
【0016】
一方、全ての状態遷移系列の中で最も高い音響尤度を与える状態遷移系列を特徴量ベクトルの時系列によりフレーム単位で逐次的に求め、最終フレームに到達したときの尤度を音素HMMに特徴量ベクトルの時系列Xが入力されたときの音響尤度とする方法は、ビタービ(Viterbi)アルゴリズムと呼ばれる。一般的には、トレリスアルゴリズムと比較して計算量を大幅に削減できるビタービアルゴリズムが用いられることが多い。
【0017】
また、上記した音響尤度計算は、ある1つの音素HMMに対するものであるが、実際には、探索部30’において探索処理を行う前に、音素HMMを連結して文法記憶部50に記憶された文法で表現される単語又は単語列のHMMの探索ネットワークを作成し、入力音声の特徴量ベクトルの時系列と探索ネットワークで表現される単語又は単語列との照合、すなわち探索処理が行われる。そして、最も音響尤度が高い単語又は単語列が認識結果として出力される。
【0018】
なお、連続音声認識の場合には、上記の音響尤度に加えて、単語のつながりやすさを統計的に表現する言語モデルによる言語尤度が考慮され、これらの統合尤度が最も高い単語又は単語列として出力される。また、上記した音響尤度計算では、確率値をそのまま扱ったが、実際にはアンダーフローを防ぐために、確率値の対数をとって計算を行う(以上の内容については、例えば、非特許文献1,2参照。)。
【0019】
ところで、音声認識処理時間に占める状態尤度b(X)を計算する時間の割合は45%から65%に上るため、音声認識処理を高速化するためには、状態尤度b(X)を求める処理を高速化するとよい。状態尤度b(X)を求める処理を高速化する数多くの手法が従来から提案されている(例えば、非特許文献3,4参照。)
以下、非特許文献4に記載された状態尤度b(X)を求める処理の高速化の手法について説明する。非特許文献4の手法は、以下の2つの実験的事実に基づいて状態尤度b(X)を求める処理の高速化を実現している。
【0020】
1.状態尤度b(X)の計算におけるCPUの動きを調べた結果、最も消費時間が長いのは、上記式(2)で定義される状態尤度b(X)の計算そのものではなく、状態尤度b(X)を計算するために必要な、計算対象となっている状態jの状態パラメータを、メインメモリからCPUのキャッシュにフェッチする処理である。
【0021】
2.ある状態jのあるフレームtについての状態尤度b(X)の計算が行われた場合、その状態jの次のフレームt+1についての状態尤度b(Xt+1)の計算が行われる可能性が高い。非特許文献4では、75%以上の確率で、次のフレームt+1についての状態尤度b(Xt+1)の計算が行われると記載されている。
【0022】
図10に例示した状態尤度テーブルを参照して、非特許文献4の手法を説明する。状態尤度テーブルとは、各状態ごとに、状態尤度b(X)の計算を行うフレームを時系列で表したものである。
【0023】
例えば、状態jのフレームtについての状態尤度b(X)を計算する必要が生じたとする。このとき、状態尤度b(X)のみならず、ついでにKフレーム先までの状態尤度b(Xt+1),…,b(Xt+K)を合わせて計算して、それらの計算結果をテーブルに記憶しておく。このKフレーム先までの状態尤度を計算する処理を「バッチ状態尤度計算処理」という。Kは、7程度の整数である。
【0024】
その後、状態尤度b(Xt+1),…,b(Xt+K)を計算する必要が出てきた場合には、そのテーブルを参照して、これらを実際に計算することなく求める。これにより、状態尤度b(X)を求める処理を高速化することができる。
【0025】
この非特許文献4の手法によれば、上記「1.」で述べた、消費時間が長い状態パラメータをCPUのキャッシュにフェッチする回数を削減することができるため、音響尤度の計算を高速化することができ、音声認識処理を高速化することができる。
【非特許文献1】鹿野清宏,外4名,「IT Text 音声認識システム」,オーム社,2001年5月,p.1−51
【非特許文献2】安藤彰男,「リアルタイム音声認識」,(社)電子情報通信学会,2003年9月,p.1−58,p.125−170
【非特許文献3】嵯峨山茂樹,外4名,「音声認識における新しい高速化」,日本音響学会講演論文集,1−5−12,平成8年3月,p.25−28
【非特許文献4】M.Saraclar,外3名,「Towards automatic closed captioning: low latency real time broadcast news transcription」,Proc.ICSLP’02,2002年9月,p.1741−1744
【発明の開示】
【発明が解決しようとする課題】
【0026】
ところで、ついでに計算したKフレーム分の状態尤度b(Xt+1),…,b(Xt+K)は実際に使用されるかどうかが不明であり、これらが使用されなければ状態尤度の無駄な計算を行ったことになる。
非特許文献4の手法においては、Kの値は諸事情を考慮せずに固定されていたため、状態尤度の無駄な計算が行われていた可能性がある。このため、音声認識処理を十分に高速化できていない可能性があった。
【0027】
この発明は、上記問題に鑑み、音声認識処理の速度をより向上させた音声認識装置、方法、プログラム及びその記録媒体を提供することを目的とする。
【課題を解決するための手段】
【0028】
この発明の1つの観点によれば、音響モデル記憶部を、状態パラメータ、自己遷移確率を含む音響モデルを記憶する記憶部とし、状態パラメータ記憶部を、音響モデル記憶部よりも高速な記憶部とする。音響分析部が、入力された音声から一定時間長のフレームごとに特徴量ベクトルを求め、特徴量ベクトルの時系列を特徴量ベクトル記憶部に格納する。フェッチ部が、j,tをそれぞれ任意の整数、ある状態jがフレームtの特徴量ベクトルXを出力する確率を状態尤度b(X)として、状態尤度b(X)が計算される前に、状態jの状態パラメータを音響モデル記憶部から状態パラメータ記憶部に読み込む。自己遷移確率フレーム数決定部が、音響モデル記憶部から読み込んだ状態jの自己遷移確率ajjが高いほど、大きい整数K(j)をフレーム数Kとして決定する。状態尤度計算部が、状態パラメータ記憶部から読み込んだ状態jの状態パラメータと、特徴量ベクトル記憶部から読み込んだ特徴量ベクトルXとを用いて状態尤度b(X)を計算すると共に、状態パラメータ記憶部から読み込んだ状態jの状態パラメータと、特徴量ベクトル記憶部から読み込んだ特徴量ベクトルXt+1,…,Xt+Kとを用いて、状態尤度b(Xt+1),…,b(Xt+K)を更に計算して、それらの更に計算された状態尤度b(Xt+1),…,b(Xt+K)を状態尤度記憶部に格納する。状態尤度参照部が、状態尤度b(Xt+1),…,b(Xt+K)の何れかが必要になったときに、状態尤度記憶部を参照して、その状態尤度を求める。
【発明の効果】
【0029】
フレーム数Kの値を状態に応じて適宜変えることにより、状態尤度の無駄な計算処理の量を少なくすることができる。これにより、従来よりも音声認識処理を高速化することができる。
【発明を実施するための最良の形態】
【0030】
この発明は、図6に記載した状態尤度テーブルに例示するように、ついでに状態尤度が計算されるフレーム数Kを状態ごとに適宜異ならせることを特徴とする。
以下、図面を参照してこの発明の実施形態の例を説明する。背景技術と同様な部分については、同じ符号をつけて重複説明を略する。
【0031】
[第一実施形態]
第一実施形態は、音声認識処理の対象となる目的音声と音響的に近い性質を有する音声(以下、適応先データ、開発用データともいう。)が得られない場合の実施形態である。
【0032】
第一実施形態は、音素HMMの各状態の自己遷移確率ajjを用いる。/a/等の母音の継続長は、/p/等の子音の継続長よりも通常長い。このため、中心音素が母音である音素HMMの各状態の自己遷移確率は、中心音素が子音である音素HMMの各状態の自己遷移確率よりも大きくなる。自己遷移確率が高い状態jほど、あるフレームtについての状態尤度b(X)の計算が行われた場合に、次のフレームt+1についての状態尤度b(X)の計算が行われる可能性が高いと考えることができる。
【0033】
この性質を利用して、自己遷移確率が高い状態に対しては大きなフレーム数Kを与え、逆に自己遷移確率が低い状態に対しては小さいフレーム数Kを与える。すなわち、自己遷移確率が高い状態ほど、大きいフレーム数Kを与える。
このように、ついでに状態尤度が計算されるフレーム数Kを状態ごとに適宜異ならせることにより、状態尤度の無駄な計算処理の量を少なくすることができる。したがって、従来よりも音響尤度の計算を高速化することができ、音声認識処理を高速化することができる。
【0034】
図1,図2を参照してこの発明の第一実施形態の例を説明する。図1は、音声認識装置の例の機能ブロック図である。図2は、音声認識方法の処理の流れを例示するフローチャートである。
【0035】
第一実施形態の音声認識装置100は、図1において実線で示す、音響分析部10、特徴量ベクトル記憶部20、探索部30、音響モデル記憶部40、文法記憶部50、フェッチ部60、状態パラメータ記憶部70、状態尤度記憶部80及びフレーム数決定部90を例えば含む。探索部30は、状態尤度計算部31及び状態尤度参照部32を例えば含む。フレーム数決定部90は、自己遷移確率フレーム数決定部91を例えば含む。
【0036】
<ステップS1>
入力音声が、音響分析部10に入力される。音響分析部10は、入力音声から、一定時間長のフレームごとに特徴量ベクトルXを計算し、特徴量ベクトルXの時系列を生成する。生成された特徴量ベクトルXの時系列は、特徴量ベクトル記憶部20に送られる。
特徴量ベクトル記憶部20は、例えば一時的に特徴量ベクトルXを記憶するバッファである。
【0037】
<ステップS2>
フェッチ部60は、状態尤度計算部31が状態jのフレームtについての状態尤度b(X)を計算する前に、状態jの状態パラメータを、音響モデルが記憶された音響モデル記憶部40から読み込み、状態パラメータ記憶部70に格納する。
【0038】
状態パラメータとは、状態尤度B(X)を計算するために必要な数値のことであり、例えば、背景技術の欄の式(2)で登場する分布重みWjm(m=1,…,m)、式(4)で登場する平均μjmi(m=1,…,m,i=1,…,I),分散σjmi(m=1,…,m,i=1,…,I)である。
状態パラメータ記憶部70は、音響モデル記憶部40よりも読み書きが高速な記憶媒体であり、例えばCPU1のキャッシュ1a(図5参照)である。
【0039】
<ステップS3>
フレーム数決定部90の自己遷移確率フレーム数決定部91は、音響モデル記憶部40から読み込まれた状態jの自己遷移確率ajjを用いて、その自己遷移確率ajjが高いほど、大きい整数K(j)をフレーム数Kとして決定する。フレーム数Kについての情報は、状態尤度計算部31に送られる。
【0040】
例えば、aを0以上1以下の数、aをa以上1以下の数、Kminを0以上の整数、KmaxをKmin+1以上の整数、f(・)を・の小数点以下を切り捨てして整数を出力する関数として、K(j)を以下の式により求めることができる。a,a,Kmin及びKmaxは、目的音声、ハードウェアの性能及び目標とする音声認識処理速度等に応じて適宜に予め定められた数である。例えば、aは0.2から0.3、aは0.7から0.8、Kminは3から4、Kmaxは10から12に設定される。
【0041】
【数5】

すなわち、図3に例示するように、自己遷移確率ajjがaより下であればK(j)=Kminとし、自己遷移確率ajjがa以上aより下であればK(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))とし、自己遷移確率ajjがa以上であればK=Kmaxとする。
このようにして、自己遷移確率ajjが高いほど、大きな整数を出力する関数K(j)を定めて、この関数に従い、状態ごとに個別のフレーム数Kを決定する。
【0042】
<ステップS4>
状態尤度計算部31は、状態パラメータ記憶部70から読み込んだ状態jのパラメータと、特徴量ベクトル記憶部20から読み込んだフレームtの特徴量ベクトルXとを用いて、状態jのフレームtについての状態尤度b(X)を計算する。また、これと共に、状態パラメータ記憶部70から読み込んだ状態jのパラメータと、特徴量ベクトル記憶部20から読み込んだフレームt+1,…,t+Kの特徴量ベクトルXt+1,…,Xt+Kとを用いて、状態jのフレームt+1,…,t+Kについての状態尤度b(Xt+1),…,b(Xt+K)を更に計算する。
【0043】
計算された状態尤度b(X)は、探索部30による音響尤度の計算に用いられる。一方、計算された状態尤度b(Xt+1),…,b(Xt+K)は、状態尤度記憶部80に格納される。
【0044】
<ステップS5>
探索部30が音響尤度を計算するために状態尤度b(Xt+1),…,b(Xt+K)の何れかが必要になったときに、状態尤度参照部32は状態尤度記憶部80を参照してその状態尤度を求める。
探索部30は、状態尤度参照部32が求めた状態尤度を用いて、背景技術と同様に、音響尤度を計算して、音声認識結果を出力する。
【0045】
[第二実施形態]
第一実施形態は、適応先データ、開発用データが得られる場合の実施形態である。
開発用データに対して、バッチ状態尤度計算を行わない通常の状態尤度計算により音声認識処理を行い、例えば状態尤度テーブルを得ることにより、全フレームにおける状態尤度の計算が行われたフレームの割合(以下、尤度計算率qという。)を状態jごとに求める。この尤度計算率qが高い状態jほど、あるフレームtについての状態尤度b(X)が計算された場合に、次のフレームt+1についての状態尤度b(Xt+1)が計算される可能性が高いと考えることができる。
【0046】
この性質を利用して、尤度計算率qが高い状態jに対しては大きなフレーム数Kを与え、逆に尤度計算率qが低い状態jに対しては小さいフレーム数Kを与える。すなわち、尤度計算率qが高い状態jほど、大きいフレーム数Kを与える。
すなわち、第二実施形態においては、自己遷移確率ajjと尤度計算率qの両方を考慮して、フレーム数Kを決定する。
【0047】
このように、自己遷移確率ajjと尤度計算率qの両方を考慮して、ついでに状態尤度が計算されるフレーム数Kを状態ごとに適宜異ならせることにより、状態尤度の無駄な計算処理の量を更に少なくすることができる。したがって、音響尤度の計算を更に高速化することができ、音声認識処理を更に高速化することができる。
【0048】
以下、図1,図4を参照して第二実施形態の例を説明するが、第一実施形態と異なる部分についてのみ説明し、第一実施形態と同様な部分については重複説明を省略する。図4は、第二実施形態の音声認識装置の処理の流れを例示するフローチャートである。
第二実施形態の音声認識装置のフレーム数決定部90は、自己遷移確率フレーム数決定部91に加えて、図1において破線で示す、尤度計算率計算部92、尤度計算率フレーム数決定部93及び統合フレーム数決定部94を例えば含む。
【0049】
<ステップS3’(図4)>
自己遷移確率フレーム数決定部91は、第一実施形態と同様に自己遷移確率ajjが高いほど大きい整数K(j)を決定する。K(j)は、統合フレーム数決定部94に送られる。第一実施形態とは異なり、K(j)がKとしてそのまま状態尤度計算部31には送られない。すなわち、第二実施形態においては、一律にK=K(j)とはならず、後述するステップS8の処理によりKは定められる。
【0050】
<ステップS6>
尤度計算率計算部92は、開発用データに対して、バッチ状態尤度計算を行わない通常の状態尤度計算により音声認識処理を行い、尤度計算率qを状態jごとに求める。尤度計算率qは、尤度計算率フレーム数決定部93に送られる。
【0051】
<ステップS7>
尤度計算率フレーム数決定部93は、尤度計算率qが高い状態jほど大きい整数K(j)を決定する。K(j)は、統合フレーム数決定部94に送られる。
【0052】
例えば、qを0以上1以下の数、qをq以上1以下の数、Kminを0以上の整数、KmaxをKmin+1以上の整数、f(・)を・の小数点以下を切り捨てして整数を出力する関数として、K(j)を以下の式により求めることができる。q,q,Kmin及びKmaxは、目的音声、ハードウェアの性能及び目標とする音声認識処理速度等に応じて適宜に予め定められた数である。例えば、qは0.2から0.3、qは0.7から0.8、Kminは3から4、Kmaxは10から12に設定される。
【0053】
【数6】

すなわち、尤度計算率qがqより下であればK(j)=Kminとし、尤度計算率qがq以上qより下であればK(j)=f((Kmax−Kmin)q/(q−q))+((Kmin−Kmax)/(q−q)))とし、尤度計算率qがq以上であればK=Kmaxとする。
【0054】
<ステップS8>
統合フレーム数決定部94は、K(j)とK(j)との両方を考慮して、フレーム数Kを決定する。決定されたフレーム数Kは、状態尤度計算部31に送られる。例えば、f(・)を・の小数点以下を切り捨てして整数を出力する関数、重み係数λを0以上1以下の予め定められた数として、下記の、K(j)とK(j)の線形補間式に基づいて、Kを求めてもよい。
【0055】
K=f((1−λ)K(j)−λK(j))
λは、K(j)にどの程度信頼をおくかを調整する重み係数である。手に入る開発データの量が多い等の理由によりK(j)に信頼がおけると考えられる場合には、重み係数λに1に近い値を与え、逆の場合には、重み係数λには0に近い値を与える。
【0056】
[変形例等]
上記の例では、f(・)を・の小数点以下を切り捨てして整数を出力する関数としたが、f(・)を、・の小数点以下を切り上げして整数を出力する関数、又は、・の小数点以下を四捨五入して整数を出力する関数としてもよい。
上記式(5)において、ajj=aのときに、K(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))としたが、ajj=aのときに、K(j)=Kminとしてもよい。また、ajj=aのときに、K=Kmaxとしたが、ajj=aのときに、K(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))としてもよい。
【0057】
同様に、上記式(6)において、q=qのときに、K(j)=f((Kmax−Kmin)q/(q−q))+((Kmin−Kmax)/(q−q)))としたが、q=qのときに、K(j)=Kminとしてもよい。また、q=qのときに、K=Kmaxとしたが、q=qのときに、K(j)=f((Kmax−Kmin)q/(q−q))+((Kmin−Kmax)/(q−q)))としてもよい。
【0058】
自己遷移確率フレーム数決定部91におけるKmin,Kmaxと、尤度計算率フレーム数決定部93におけるKmin,Kmaxとは同じでも、異なっていてもよい。
上述の構成をコンピュータによって実現する場合、音声認識装置の各部が有する機能の処理内容はプログラムによって記述される。そして、このプログラムを図5に例示するコンピュータで実行することにより、上記各部の機能がコンピュータ上で実現される。
【0059】
すなわち、CPU1がプログラムを逐次読み込んで実行することにより、音響分析部10、特徴量ベクトル記憶部20、探索部30、状態尤度計算部31、状態尤度参照部32、フェッチ部60、フレーム数決定部90、自己遷移確率フレーム数決定部91、尤度計算率計算部92、尤度計算率フレーム数決定部93及び統合フレーム数決定部94の機能がそれぞれ実現される。この場合、音声認識装置の各部として機能するCPU1は、メモリ2、ハードディスク等の補助記憶装置3から読み込み込んだデータに対して処理を行い、処理を行った後のデータを、メモリ2、補助記憶装置3に格納する。
【0060】
図5に示した例だと、補助記憶装置3が、音響モデル記憶部40、文法記憶部50及び状態尤度記憶部80に対応する。また、キャッシュ1aが、状態パラメータ記憶部70に対応する。
【0061】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよいが、具体的には、例えば、磁気記録装置として、ハードディスク装置、フレキシブルディスク、磁気テープ等を、光ディスクとして、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD
−R(Recordable)/RW(ReWritable)等を、光磁気記録媒体として、MO(Magneto-Optical disc)等を、半導体メモリとしてEEP−ROM(Electronically Erasable and Programmable-Read Only Memory)等を用いることができる。
【0062】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0063】
また、上述した実施形態とは別の実行形態として、コンピュータが可搬型記録媒体から直接このプログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を基底する性質を有するデータ等)を含むものとする。
【0064】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【0065】
また、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。例えば、図2において、ステップS2の処理とステップS3の処理とを並列に行ってもよい。また、図4において、ステップS2の処理とステップS3’の処理とを並列に行ってもよい。さらに、図4において、ステップS3’の処理とステップS6,7の処理とを並列に行ってもよい。
その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。
【図面の簡単な説明】
【0066】
【図1】この発明の音声認識装置の例の機能ブロック図。
【図2】この発明の第一実施形態の音声認識装置の処理の流れを例示するフローチャート。
【図3】フレーム数Kの決定の仕方の例を説明するための図。
【図4】この発明の第二実施形態の音声認識装置の処理の流れを例示するフローチャート。
【図5】この発明の音声認識装置をコンピュータで実現させる場合の機能ブロック図の例。
【図6】この発明の状態尤度テーブルの例。
【図7】従来技術の音声認識装置の例の機能ブロック図。
【図8】状態Sの例を説明するための図。
【図9】音素HMMの例を説明するための図。
【図10】従来技術の状態尤度テーブルの例。
【符号の説明】
【0067】
10 音響分析部
20 特徴量ベクトル記憶部
30 探索部
31 状態尤度計算部
32 状態尤度参照部
40 音響モデル記憶部
50 文法記憶部
60 フェッチ部
70 状態パラメータ記憶部
80 状態尤度記憶部
90 フレーム数決定部
91 自己遷移確率フレーム数決定部
92 尤度計算率計算部
93 尤度計算率フレーム数決定部
94 統合フレーム数決定部

【特許請求の範囲】
【請求項1】
状態パラメータ、自己遷移確率を含む音響モデルを記憶する音響モデル記憶部と、
上記音響モデル記憶部よりも高速な状態パラメータ記憶部と、
入力された音声から一定時間長のフレームごとに特徴量ベクトルを求め、特徴量ベクトルの時系列を求める音響分析部と、
上記求まった特徴量ベクトルの時系列を記憶する特徴量ベクトル記憶部と、
j,tをそれぞれ任意の整数、ある状態jがフレームtの特徴量ベクトルXを出力する確率を状態尤度b(X)として、状態尤度b(X)が計算される前に、状態jの状態パラメータを上記音響モデル記憶部から上記状態パラメータ記憶部に読み込むフェッチ部と、
上記音響モデル記憶部から読み込んだ上記状態jの自己遷移確率ajjが高いほど、大きい整数K(j)をフレーム数Kとして決定する自己遷移確率フレーム数決定部と、
上記状態パラメータ記憶部から読み込んだ状態jの状態パラメータと、上記特徴量ベクトル記憶部から読み込んだ特徴量ベクトルXとを用いて状態尤度b(X)を計算すると共に、上記状態パラメータ記憶部から読み込んだ状態jの状態パラメータと、上記特徴量ベクトル記憶部から読み込んだ特徴量ベクトルXt+1,…,Xt+Kとを用いて、状態尤度b(Xt+1),…,b(Xt+K)を更に計算する状態尤度計算部と、
上記更に計算された状態尤度b(Xt+1),…,b(Xt+K)を格納する状態尤度記憶部と、
状態尤度b(Xt+1),…,b(Xt+K)の何れかが必要になったときに、上記状態尤度記憶部を参照して、その状態尤度を求める状態尤度参照部と、
を有する音声認識装置。
【請求項2】
請求項1に記載の音声認識装置において、
を予め定められた0以上1以下の数、aを予め定められたa以上1以下の数、Kminを予め定められた0以上の整数、KmaxをKmin+1以上の予め定められた整数、f(・)を・の小数点以下を切り捨て、切り上げ、四捨五入の何れかをして整数を出力する関数として、
上記自己遷移確率フレーム数決定部は、
自己遷移確率ajjがaより下であれば、K(j)=Kminとし、
自己遷移確率ajjがaより上aより下であれば、K(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))とし、
自己遷移確率ajjがaより上であれば、K=Kmaxとし、
自己遷移確率ajj=aであれば、K(j)=Kmin又はK(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))とし、
自己遷移確率ajj=aであれば、K(j)=Kmax又はK(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))
とする部である、
ことを特徴とする音声認識装置。
【請求項3】
音響モデル記憶部を、状態パラメータ、自己遷移確率を含む音響モデルを記憶する記憶部とし、
状態パラメータ記憶部を、上記音響モデル記憶部よりも高速な記憶部とし、
音響分析部が、入力された音声から一定時間長のフレームごとに特徴量ベクトルを求め、特徴量ベクトルの時系列を特徴量ベクトル記憶部に格納する音響分析ステップと、
フェッチ部が、j,tをそれぞれ任意の整数、ある状態jがフレームtの特徴量ベクトルXを出力する確率を状態尤度b(X)として、状態尤度b(X)が計算される前に、状態jの状態パラメータを上記音響モデル記憶部から上記状態パラメータ記憶部に読み込むフェッチステップと、
自己遷移確率フレーム数決定部が、上記音響モデル記憶部から読み込んだ上記状態jの自己遷移確率ajjが高いほど、大きい整数K(j)をフレーム数Kとして決定する自己遷移確率フレーム数決定ステップと、
状態尤度計算部が、上記状態パラメータ記憶部から読み込んだ状態jの状態パラメータと、上記特徴量ベクトル記憶部から読み込んだ特徴量ベクトルXとを用いて状態尤度b(X)を計算すると共に、上記状態パラメータ記憶部から読み込んだ状態jの状態パラメータと、上記特徴量ベクトル記憶部から読み込んだ特徴量ベクトルXt+1,…,Xt+Kとを用いて、状態尤度b(Xt+1),…,b(Xt+K)を更に計算して、それらの更に計算された状態尤度b(Xt+1),…,b(Xt+K)を状態尤度記憶部に格納する状態尤度計算ステップと、
状態尤度参照部が、状態尤度b(Xt+1),…,b(Xt+K)の何れかが必要になったときに、上記状態尤度記憶部を参照して、その状態尤度を求める状態尤度参照ステップと、
を有する音声認識方法。
【請求項4】
請求項3に記載の音声認識方法において、
を予め定められた0以上1以下の数、aを予め定められたa以上1以下の数、Kminを予め定められた0以上の整数、KmaxをKmin+1以上の予め定められた整数、f(・)を・の小数点以下を切り捨て、切り上げ、四捨五入の何れかをして整数を出力する関数として、
上記自己遷移確率フレーム数決定ステップは、
自己遷移確率ajjがaより下であれば、K(j)=Kminとし、
自己遷移確率ajjがaより上aより下であれば、K(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))とし、
自己遷移確率ajjがaより上であれば、K=Kmaxとし、
自己遷移確率ajj=aであれば、K(j)=Kmin又はK(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))とし、
自己遷移確率ajj=aであれば、K(j)=Kmax又はK(j)=f((Kmax−Kmin)ajj/(a−a))+((Kmin−Kmax)/(a−a)))
とするステップである、
ことを特徴とする音声認識方法。
【請求項5】
請求項1又は2に記載の音声認識装置の各部としてコンピュータを機能させるための音声認識プログラム。
【請求項6】
請求項5に記載の音声認識プログラムが記録されたコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−210975(P2009−210975A)
【公開日】平成21年9月17日(2009.9.17)
【国際特許分類】
【出願番号】特願2008−55977(P2008−55977)
【出願日】平成20年3月6日(2008.3.6)
【出願人】(000004226)日本電信電話株式会社 (13,992)
【Fターム(参考)】