(57)【特許請求の範囲】
【請求項１】
１つあるいは複数の単語の音声入力に対して認識システムから出力されるサブ単語系列に対応する１つあるいは複数の単語を識別する音声処理装置であって、
前記入力サブ単語系列を受信する第一の受信手段と、
複数の辞書単語及び該辞書単語毎に複数対応づけられた辞書サブ単語系列を有する単語辞書から、前記辞書サブ単語系列を受信する第二の受信手段と、
前記第一の受信手段により受信した入力サブ単語系列と前記第二の受信手段で受信した各辞書サブ単語系列との間で、サブ単語を対応付けた整合ペアを複数生成して各整合ペアのサブ単語を比較し、該比較結果より該入力サブ単語系列と該辞書サブ単語系列との類似度を算出し、辞書単語ごとに複数の類似度を取得する取得手段と、
前記取得手段で取得した複数の類似度を集計して、辞書単語ごとに入力サブ単語系列と辞書サブ単語系列との間の類似度を算出する算出手段と、
前記算出手段で算出された類似度に基づいて前記１つあるいは複数の単語を識別する手段と
を備えることを特徴とする音声処理装置。
【請求項２】
前記取得手段は、前記入力サブ単語系列と前記複数の辞書サブ単語系列それぞれとの比較を同時に行うことを特徴とする請求項１記載の音声処理装置。
【請求項３】
前記取得手段は、d1iとd2jを辞書サブ単語系列のサブ単語と入力サブ単語系列のサブ単語の整合ペアとし、P(d2j|pr)を、前記サブ単語セット中のサブ単語prを入力サブ単語系列のサブ単語d2jと混同する所与の確率を示す、前記第一比較手段から出力される中間評価点とし、P(d1i|pr)を、前記サブ単語セット中のサブ単語prを辞書サブ単語系列のサブ単語d1iと混同する所与の確率を示す、前記第二比較手段から出力される評価点とし、P(pr)を前記サブ単語セット中のサブ単語prがサブ単語系列で発生する確率を示す重みとしたとき、
P(d1i|pr)P(d2j|pr)P(pr)
を計算することで前記集計評価点を集計することを特徴とする請求項１記載の音声処理装置。
【請求項４】
１つあるいは複数の単語の音声入力に対して認識システムから出力される入力サブ単語系列に対応する１つあるいは複数の単語を識別する音声処理方法であって、
前記入力サブ単語系列を受信する第一の受信ステップと、
複数の辞書単語及び該辞書単語毎に複数対応づけられた辞書サブ単語系列を有する単語辞書から、前記辞書サブ単語系列を受信する第二の受信ステップと、
前記第一の受信ステップにより受信した入力サブ単語系列と前記第二の受信ステップで受信した各辞書サブ単語系列の間で、サブ単語を対応付けた整合ペアを複数生成して各整合ペアのサブ単語を比較し、該比較結果より該入力サブ単語系列と該辞書サブ単語系列との類似度を算出し、辞書単語ごとに複数の類似度を取得する取得ステップと、
前記取得ステップで取得した複数の類似度を集計して、辞書単語ごとに入力サブ単語系列と辞書サブ単語系列との間の類似度を算出する算出ステップと、
前記算出ステップで算出された類似度に基づいて前記１つあるいは複数の単語を識別するステップと
を有することを特徴とする音声処理方法。
【請求項５】
前記取得ステップは前記入力サブ単語系列と前記複数の辞書サブ単語系列それぞれとの比較を同時に行うことを特徴とする請求項４記載の音声処理方法。
【請求項６】
前記取得ステップは、d1iとd2jを辞書サブ単語系列のサブ単語と入力サブ単語系列のサブ単語の整合ペアとし、P(d2j|pr)を、前記サブ単語セット中のサブ単語prを入力サブ単語系列のサブ単語d2jと混同する所与の確率を示す、前記第一比較ステップから出力される中間評価点とし、P(d1i|pr)を、前記サブ単語セット中のサブ単語prを辞書サブ単語系列のサブ単語d1iと混同する所与の確率を示す、前記第二比較ステップから出力される評価点とし、P(pr)を前記サブ単語セット中のサブ単語prがサブ単語系列で発生する確率を示す重みとしたとき、
P(d1i|pr)P(d2j|pr)P(pr)
を計算することで前記集計評価点を集計することを特徴とする請求項第４項記載の音声処理方法。
【請求項７】
プロセッサを制御して請求項４から６のいずれかに記載の方法を実現するためのプロセッサ実装可能命令を保持する記録媒体。
【請求項８】
プロセッサを制御して請求項４から６のいずれかに記載の方法を実現するためのプロセッサ実装可能命令から構成されるプログラム。
【発明の詳細な説明】
【０００１】
本発明は、音声認識システムから出力されるサブ単語ユニットの１つあるいは複数の系列を１つあるいは複数の対応する単語にデコードするための装置ならびに方法に関するものである。
【０００２】
音声認識システムは、認識処理に利用できる処理能力の増大に伴い、ますます広く使われようになっている。ほとんどの音声認識システムは、小語彙システムと大語彙システムの２つに分けることができる。小語彙システムでは、音声認識エンジンにおいて、認識対象の入力音声とシステムの既得単語を表現する音響パターンとを比較している。大語彙システムでは、システムの既得単語それぞれに対する単語モデルを蓄積しておくのは現実的ではない。そこで、その代わりに、参照パターンを所与の言語の音素とすることが多い。この方法では、入力音声は音素パターンと比較され、入力音声を表現する音素系列が生成される。次いで、単語デコーダを用いて、音素系列に合致する単語候補が選ばれる。通常、音素系列から単語へのデコード処理は、音素系列と単語を表現する隠れマルコフモデルとを辞書を用いて比較することでなされる。
【０００３】
本発明の目的は、認識エンジンから出力される音素系列を一つあるいは複数の単語にデコードする別の方法を提供することである。
【０００４】
本発明は、１つあるいは複数の単語の音声入力に対して認識システムから出力されるサブ単語系列に対応する１つあるいは複数の単語を識別する音声処理装置であって、前記入力サブ単語系列を受信する第一の受信手段と、複数の辞書単語及び該辞書単語毎に複数対応づけられた辞書サブ単語系列を有する単語辞書から、前記辞書サブ単語系列を受信する第二の受信手段と、前記第一の受信手段により受信した入力サブ単語系列と前記第二の受信手段で受信した各辞書サブ単語系列との間で、サブ単語を対応付けた整合ペアを複数生成して各整合ペアのサブ単語を比較し、該比較結果より該入力サブ単語系列と該辞書サブ単語系列との類似度を算出し、辞書単語ごとに複数の類似度を取得する取得手段と、前記取得手段で取得した複数の類似度を集計して、辞書単語ごとに入力サブ単語系列と辞書サブ単語系列との間の類似度を算出する算出手段と、前記算出手段で算出された類似度に基づいて前記１つあるいは複数の単語を識別する手段とを備える音声処理装置を提示するものである。
【０００５】
以下、本発明の実施形態を添付図面を参照しながら詳細に説明する。
【０００６】
本発明の実施形態は専用ハードウェア回路を用いて実装され得るももの、以下の実施形態ではパーソナルコンピュータ上で動作するコンピュータソフトウェアすなわちコードでもって実装されるものとしている。なお、他の実施形態として、ワークステーション、複写機、ファクシミリ、携帯情報端末(PDA)、ウェブブラウザなどの上で動作するソフトウェアであっても良い。
【０００７】
図１は、本発明の実施形態を実行できるプログラムを具備しているパーソナルコンピュータ（ＰＣ）１を示している。キーボード３、ポインティングデバイス５、マイクロフォン７、電話線９などがインタフェース１１を介してＰＣ１に接続されている。キーボード３やポインティングデバイス５により、ユーザはシステムを制御することができる。マイクロフォン７は、ユーザの音声信号波形を電気信号に変換し、ＰＣ１において電気信号が処理される。なお、遠隔コンピュータや遠隔ユーザとの通信を行うために、電話線９には内部モデムや音声受信回路（不図示）が接続されることもある。
【０００８】
本発明の実施形態を実行できるプログラムは、磁気ディスク１３などの記憶デバイスといった形で提供されることもあるし、内部モデムや電話線９を介したインターネットなどを用いて遠隔コンピュータからソフトウェアをダウンロードするといった形で提供されることもある。
【０００９】
ＰＣ１に実装される音声認識システム１４の動作を、図２を用いて詳細に説明する。マイクロフォン７からのユーザ入力音声を表現する電気信号は、プレプロセッサ１５において、パラメータフレーム系列に変換される。ここで、パラメータフレームとは、入力音声信号を一定時間で区切った時間フレームのことである。プレプロセッサ１５から出力されたパラメータフレーム系列は、音声認識エンジン１７において、音素モデル１９と比較処理され、入力信号を表現する音素系列が生成される。次いで、音素系列は単語デコーダ２１に入力され、単語辞書２３に記憶されている種々の単語の音素系列との比較処理が行われ、単語の認識が行われる。
【００１０】
すなわち、単語辞書２３には音声認識システムの対象単語それぞれに対する音素系列が格納されている。本実施形態では、単語デコーダ２１はまず単語辞書に対して命令信号２９を送出し、単語辞書２３中の音素系列のサブセットを単語デコーダ２１にダウンロード３０をするよう要求する。ここで、音素系列のサブセットは、単語辞書２３中のすべての単語が表現されるように選択されている。次いで、単語デコーダ２１は、音声認識エンジン１７を用いて、生成された音素系列出力の先頭と選択された音素系列の先頭とを比較し、評価点を求める。この評価点に基づいて、評価点の高い単語種別と評価点の低い単語種別とが識別される。そこで、単語デコーダ２１は、評価点の低い音素系列を削除するとともに、新たな命令信号２９を単語辞書２３に送信し、評価点の高い音素系列に音響的に類似の単語を単語デコーダ２１にダウンロードするように要求する。そして、単語デコーダ２１に新たに保持された関連音素系列のすべてと入力音素系列との比較が行われ、Ｎ個の評価点の高い単語の出力２５がされる。出力された単語は、ＰＣ１においてＰＣ１上で動作しているソフトウェアアプリケーションを制御するために用いられたり、ＰＣ１上で動作しているワードプロセッシングプログラムにテキストとして挿入するために用いられる。
【００１１】
単語デコーダ
図３は、上述の単語デコーダ２１の構成要素を詳細に示した図である。図示のように、音声認識エンジン１７から出力される音素系列を受信するメモリ４１が含まれる。音素系列は整合ユニット４３に送られる。本実施形態の整合ユニット４３では、動的計画法整合手法を用いて、メモリ４７に保持されている単語辞書２３からの複数の音素系列と入力音素系列との比較が行われる。本実施形態の整合ユニット４３では、入力音素系列と辞書系列との比較と整合とは独立かつ同時に行われる。この整合処理では、各整合結果についての評価点は評価点分析ユニット４５に入力され、評価点分析ユニット４５において評価点の分析が行われて評価点の高い辞書系列と評価点の低い辞書系列とが決定される。それに応じて、分析ユニット４５は単語辞書２３に対して第一の制御信号２９を送信し、評価点の高い単語に類似の新たな単語の音素系列をメモリ４７にダウンロードする。
【００１２】
また、分析ユニットは第二の制御信号３１をメモリ４７に送信し、評価点の低い辞書系列を削除する。このようにして、評価点分析ユニット４５は、動的計画法整合ユニット４３でもって整合処理がなされた音響系列の数を動的に制御することができる。これにより、単語辞書中の音素系列の初期サブセットがメモリ４７にダウンロードされ、新たな入力音素系列との比較が行われることになり、本実施形態では、辞書音素系列の初期セットは、辞書２３における種々の単語音を代表するものとなる。ここで、初期セットは、例えば、辞書２３中の単語をクラスタリングして、類似の単語音をクラスタ化することなどによって作成される。次いで、比較処理において、各クラスタ中の単語の一つがメモリ４７にダウンロードされ、入力音素系列と比較される。
【００１３】
入力音素系列と選択されたすべての辞書系列との比較がなされた後で、評価点分析ユニット４５は選択された辞書系列との評価点を再度分析し、最も高い評価点を有する辞書音素系列を決定する。最も高い評価点を有する辞書系列に対応する単語は、入力音素系列を表す単語として評価点分析ユニット４５から出力２５される。本実施形態では、評価点分析ユニット４５は、Ｎ個の評価点の高い辞書系列をランク付けするとともに、これらもあわせて出力する。
【００１４】
ところで、辞書音素系列がマニュアルで作成されたものであれば、これらを正しいと考えることができる。しかしながら、音声認識エンジン１７は発話を完全にデコードすることはできないため、入力音素系列には辞書系列に対して挿入や欠落が含まれることになる。また、入力音素系列には辞書系列に対してデコード誤りも存在し得る。当業者には認識されているであろうが、現在の多くの音声認識システムはマニュアルで生成された単語辞書を用いている。しかしながら、辞書音素系列が発話単語から生成されるような辞書が出てきつつある。また、マニュアルで生成された音素系列とともに音声認識システムで生成された音素系列をも用いる混合辞書も出てきている。このような場合には、入力音素系列と辞書系列の双方において、実際に発声されたテキストを表す未知の基準音素系列に対して挿入、欠落、デコード誤りが発生し得ることとなる。
【００１５】
図４は、辞書単語を表す辞書音素系列（ラベルd1i, d1i+1, d1i+2...）、入力音素系列（ラベルd2j, d2j+1, d2j+2...）、辞書系列や入力系列と最適にマッチングされるテキストの基準音素系列を表す音素系列（ラベルpn, pn+1, pn+2...）間でのマッチングを示したものである。図４に示すように、動的計画法整合ユニット４３は、入力音素系列と辞書音素系列における基準音素系列に対する音素の挿入（d1i+3, d2j+1などで表される挿入音素）や、音素の欠落（d1i+1, d2j+2などの基準音素系列中の２つの音素に対して整合される欠落音素）に対処できなければならない。
【００１６】
本実施形態においては、辞書単語がマニュアルで生成された場合と音声から生成された場合とで、異なる評価点判定技術を用いる。ここで、辞書種類情報は、動的計画法整合ユニット４３に送られる各辞書系列のラベルに付与されている。
【００１７】
（ＤＰ整合の概要）
音声処理の当業者であれば既知であるように、動的計画法は、本実施形態では音素系列となる特徴系列間で最適な整合を求めるために用いられる技術である。本実施形態では、動的計画法整合ユニット４３は入力系列と辞書系列との間の最適整合を計算する。ここで、最適整合の計算は、入力系列からの音素系列と辞書系列からの音素系列との間での整合可能性を示す複数の動的計画法のパスを同時に伝搬させることで行われる。すべてのパスは、整合する２つの音素系列の始点に位置する始点空ノードから始まり、整合する２つの音素系列の終点に位置する終点空ノードまで伝搬される。
【００１８】
図５と図６は、実行される整合処理とパスの伝搬とを模式的に示したものである。具体的には、図５は、辞書音素系列を示す水平軸と入力音素系列を示す垂直軸とからなる直交座標プロットを示している。始点空ノードφsは左上角、終点空ノードφeは右下角に位置する。また、図６において、辞書系列音素は水平軸に、入力系列音素は垂直軸に示されている。図６の格子点は、入力音素系列と辞書音素系列の音素間での整合可能性を表したものである。例えば、格子点２１は辞書系列音素d13と入力系列音素d21との間での整合を示す。また、図６にはm1, m2, m3といった３つの動的計画法のパスも示されている。これらは、入力音素系列と辞書音素系列との間での３つの整合可能性を示しており、始点空ノードφsから始まり、終点空ノードφeに向かって格子点を伝搬している。
【００１９】
入力音素系列と辞書音素系列との間での最適な整合を求めるために、動的計画法整合ユニット４３は伝搬している動的計画法のパスそれぞれの評価点を計算している。ここで、評価点は、パスに沿って整合したときの全体的な類似性に基づいて計算される。また、整合する系列中での音素の欠落や挿入の数に少なく抑えるために、動的計画法プロセスは動的計画法のパスの伝搬の仕方に制限を設けている。当業者であれば理解できるように、ここで用いる動的計画法の制限は辞書音素系列の生成方法に依存するものとなる。
【００２０】
ＤＰ制約
（マニュアルで生成された辞書音素系列）
マニュアルで生成された辞書音素系列を用いる場合には、辞書音素系列には音素の欠落や挿入はないものの、入力音素系列においては辞書音素系列に対して音素の欠落や挿入が起こり得る。図７aは、このような場合に本実施形態で用いる動的計画法の制限である。図示されているように、動的計画法のパスが辞書音素d1iと入力音素d2jとの間での整合を示す格子点(i,j)で終端している場合、動的計画法のパスは格子点(i+1,j), (i+1,j+1), (i+1,j+2), (i+1,j+3)のどれかに伝搬することになる。ここで、格子点(i+1,j)への伝搬は、辞書系列に対して入力系列の音素の欠落が生じたことを示す。格子点(i+1,j+1)への伝搬は、次の入力音素と次の辞書音素とが単純デコードされたことを示す。格子点(i+1,j+2)への伝搬は、辞書系列に対して入力系列の音素d2j+1の挿入が生じ、辞書音素d1i+1と入力音素d2j+1とがデコードなされたことを示す。格子点(i+1,j+3)への伝搬は、辞書系列に対して入力系列の２つの音素（d2j+1とd2j+2）の挿入が生じ、辞書音素d1i+1と入力音素d2j+3とがデコードなされたことを示す。
【００２１】
（音声から生成された辞書系列）
音声から生成された辞書系列を用いる場合には、辞書系列ならびに音素系列双方において音素の挿入あるいは欠落が生じる。図７ｂは、このような場合に本実施形態で用いる動的計画法の制限である。すなわち、動的計画法のパスが辞書音素d1iと入力音素d2jとの間での整合を示す格子点(i,j)で終端している場合、動的計画法のパスは格子点(i+1,j), (i+2,j), (i+3,j), (i,j+1), (i+1,j+1), (i+2,j+1), (i,j+2), (i+1,j+2), (i,j+3) のどれかに伝搬することになる。このような伝搬制約を設けることで、実際に発声されたテキストの未知の基準音素系列に対する入力音素系列ならびに辞書音素系列における音素の挿入や欠落に対処することが可能となる。
【００２２】
ＤＰ評価点伝搬
上述のように、動的計画法整合ユニット４３は、動的計画法のパスそれぞれについてパスに沿って整合したときの音素の類似性に基づいて計算される評価点を計算している。すなわち、格子点(i,j)で終端されたパスを他の点に伝搬させる場合、動的計画法プロセスはこの際の伝搬「コスト」を、格子点(i,j)で終端されたパスの積算評価点に追加する。ここで、積算評価点は、格子点(i,j)において(SCORE(i,j))として保持されている。本実施形態では、このコストは、音素が挿入される挿入確率や、欠落が起こる欠落確率や、入力音素系列からの音素と辞書音素系列からの音素との間での新しい整合が起こるデコード確率などに依存する。すなわち、挿入が生じた際には積算評価点にある音素の挿入確率を掛け合わせ、欠落が生じた際には積算評価点に音素の欠落確率を掛け合わせ、デコードされた際には積算評価点に２つの音素のデコード確率が掛け合わされる。
【００２３】
これらの確率を計算するために、システムはすべての可能性のある音素組み合わせに対する確率をメモリ４７に保持しておく。本実施形態では、第一あるいは第二の音素系列からの音素の欠落は、デコードと同様に処理する。これは、欠落された音素を単に新たな音素として処理することでなされる。すなわち、システムが４３個の音素を対象としている場合には、可能性のある音素のデコードならびに欠落に対して、１８３２（＝４３×４４）個のデコード／欠落確率をシステムが保持することになる。図８は、音素/ax/に対して保持されている可能性のある音素デコードを示したもので、欠落音素（φ）が一つの確率として示されている。当業者であれば理解できるように、ある音素に対するデコード確率の和は、他の確率が存在し得ないため１とならなければならない。これらのデコード／欠落確率に加えて、可能性のある音素の挿入に対して４３個の挿入確率（PI( )）がメモリ４７に保持される。後述するように、これらの確率はトレーニングデータを用いてあらかじめ決定される。
【００２４】
上述のように、本実施形態では、整合ユニット４３は辞書系列の作成方法に応じて異なる評価点計算手法を用いる。すなわち、マニュアルで辞書系列を作成した場合には、辞書音素は正しいと想定し、システムは入力音素系列からの音素（d2j）を第一音素系列からの音素（d1i）としてデコードする確率を
【００２５】
【数３】
0003747171.tif 000002
として求める。ここで、デコード確率は、メモリ４７に保持されている適切な確率をルックアップすることで求められる。一方、音声から辞書音素系列を生成した場合には、整合ユニット４３は、入力音素系列からの音素（d2j）を辞書音素系列からの音素（d1i）としてデコードする確率を、音素pを辞書音素d1iならびに入力音素d2jとしてデコードする確率を音素pの生起確率で重み付けしたものを、すべての可能性のある音素pに対して和をとった
【００２６】
【数４】
0003747171.tif 000003
として求める。ここで、Npはシステムが対象とする音素の数、P(d1i|pr)は音素prを辞書音素d1iとしてデコードする確率、P(d2j|pr)は音素prを入力音素d2jとしてデコードする確率、P(pr)は音素prの生起確率である。
【００２７】
評価点の伝搬を説明するために、いくつかの例を説明する。辞書系列がマニュアルで作成された場合であって、パスが格子点(i,j)から(i+1,j+2)に伝搬した場合には、入力音素d2j+1が辞書音素系列に対して挿入されるとともに、入力音素d2j+2は辞書音素d1i+1としてデコードされる。すなわち、格子点(i+1,j+2)に至る伝搬の評価点は、
【００２８】
【数５】
0003747171.tif 000004
として与えられる。ここで、PI(d2j+1)は入力音素d2j+1が挿入される確率、P(d2j+2|d1i+1)は辞書音素d1i+1を入力音素d2j+2としてデコードする確率である。
【００２９】
これに対し、辞書音素系列が音声から作成された場合であって、パスが格子点(i,j)から(i+2,j+1)に伝搬した場合には、辞書音素d1i+1が入力音素系列に対して挿入されるとともに、入力音素d2j+1は辞書音素d1i+2としてデコードされる。すなわち、格子点(i+2,j+1)に至る伝搬の評価点は、
【００３０】
【数６】
0003747171.tif 000005
として与えられる。
【００３１】
当業者であれば理解できるように、このパス伝搬においては、複数のパスが同一の格子点で合流することがあり得る。ここで、最適なパスを選択するために、各格子点において評価点の比較を行って、最も評価点の高いパスのみを残し、他のパスは削除する。このような処理を経てパスが終端ノードに達すると、終端ノードにたどり着いたパスの評価点が入力音素系列と辞書音素系列との間での類似度を表すこととなる。上述のように、評価点分析ユニット４５は、ここで得られた評価点を辞書音素系列それぞれについて比較し、入力音素系列に類似のＮ個の辞書音素系列を決定する。これらの辞書音素系列に対応した辞書単語が単語辞書から引き出されて出力され、ＰＣ１で使用されることになる。
【００３２】
（ＤＰ整合の詳細な説明）
入力系列を整合し、辞書単語の一つと比較するような動的計画法整合ユニット４３の動作に関して、以下詳細に説明する。なお、同様の整合ならびに比較処理は入力系列と他の辞書系列との間でも行われることに注意されたい。まず、すべてのノードにおける評価点を適切な初期値に設定する。次いで、整合ユニット４３は、始点空ノード（φs）から上述の動的計画法の制限で指定されるすべての可能な始点へパスを伝搬させる。ここで、このパスの評価点は、始点空ノードから始点までの伝搬に伴う遷移評価点となる。このようにして伝播を開始したパスは、第一ならびに第二の音素系列で指定される格子点配列中を終点空ノード（φe）に達するまで伝搬することになる。なお、整合ユニット４３は格子点配列の処理を列ごとにラスター処理的に行う。
【００３３】
ラスター処理動作で制御を行う制御アルゴリズムを図９に示す。図示のように、ステップs149において、システムは辞書音素系列ループポインタiと入力音素ループポインタjとを０にセットする。続くステップs151において、辞書音素系列ループポインタiと辞書音素系列中の音素の数（Nseq1）とを比較する。開始時点では辞書音素系列ループポインタiは０にセットされているため、処理はステップs153に進み、入力音素系列ループポインタjと入力音素系列のすべての音素数（Nseq2）とを比較する。開始時点ではループポインタjは０にセットされているため、処理はステップs155に進み、格子点(i,j)で終端されるパスを上述の動的計画法の制限を用いて伝搬させる。ステップs155における伝搬に関する詳細は後述する。ステップs155に続いて、ステップs157でループポインタjを１増加（インクリメント）させ、処理をステップs153に戻す。入力音素系列中のすべての音素に対してこのようなループを繰り返すと、すなわち格子点配列中の現在の列の処理を終えると、処理はステップs159に進み、ループポインタjを０にリセットするとともにループポインタiを１増加させる。そして、処理はステップs151に戻り、格子点配列の次の列に対して同様の処理を実行する。格子点配列の最後の列を処理すると、ステップs161に進み、ループポインタiを０にリセットして処理を終了する。
【００３４】
（伝搬）
図９のステップs155では、格子点(i,j)で終端されるパスを上述の動的計画法の制限を用いて伝搬させる。図１０は、この伝搬処理を実行する処理ステップを示すフローチャートである。図示のように、ステップs211において、システムは２つの変数mxiとmxjの値をセットし、辞書音素系列ループポインタi2と入力音素系列ループポインタj2とを初期化する。ここで、ループポインタi2とj2は、格子点(i,j)で終端されるパスが伝搬するすべての格子点をループさせるために用いられ、変数mxiとmxjは、i2とj2とが動的計画法の制限にしたがう値のみとなるように制限するために用いられる。すなわち、iにmxhopsを加算した値が辞書音素系列中の音素の数以下であれば、mxiはiにmxhopsを加算した値と設定される。ここで、mxhopsは動的計画法の制限の中で最大の「ホップ」数よりも１大きい一定値であり、本実施形態では系列に沿って３つ先の音素までパスがジャンプするためmxhopsの値は４となる。一方、iにmxhopsを加算した値が辞書音素系列中の音素の数より大きければ、mxiは辞書音素系列中の音素の数（Nseq1）に設定される。同様に、jにmxhopsを加算した値が入力音素系列中の音素の数以下であれば、mxjはjにmxhopsを加算した値と設定され、そうでない場合にはmxjは入力音素系列中の音素の数（Nseq2）に設定される。最後に、ステップs211において、システムは辞書音素系列ループポインタi2を辞書音素系列ループポインタiの現在の値に設定するとともに、入力音素系列ループポインタj2を入力音素系列ループポインタjの現在の値に設定する。
【００３５】
整合ユニット４３において用いられる動的計画法の制限は、辞書音素系列が音声から作成された場合とマニュアルで作成された場合とでことなるが、この判定をステップs213で行う。辞書単語が音声から作成された場合には、格子点(i,j)で終端された動的計画法のパスは図７ｂに示した点のいずれかに伝搬することになるが、このような処理をステップs219からs235で行う。すなわち、ステップs219では、辞書音素系列ループポインタi2と変数mxiとを比較する。ここで、ループポインタi2はiに、mxiはi+4に設定されているためステップs221に進む。ステップs221では入力音素系列ループポインタj2に対して同様の比較が行われる。そして、ステップs223において、パスが同一の格子点(i,j)に留まっているか否かの判定が、i2がiと等しいか否か、j2がjと等しいか否かに基づいてなされる。同一の格子点に留まっていた場合には、入力音素ループポインタj2を１増加させるステップs225に進む。
【００３６】
ステップs221に戻ると、１増加された値j2とmxjとが比較される。j2がmxjよりも小さいと、ステップs223を経てステップs227に進む。ここで、ステップs227は、双方の音素系列に沿ってのホップ数が大きくなりすぎないようにするためのものである。すなわち、i2+j2がi+j+mxhops以下である場合にのみパスを伝搬させるもので、図７ｂに示した三角形内の格子点のみを対象とするものである。この条件が満たされると、ステップs229に進み、格子点(i,j)から格子点(i2,j2)への遷移評価点（TRANSCORE）を計算する。なお、本実施形態では、遷移評価点ならびに積算評価点は確率で表現され、双方の確率を乗算することで新たな積算評価点が得られる。この際、高精度浮動小数点演算を避けるために、本実施形態では遷移評価点ならびに積算評価点はログ確率で表現する。すなわち、ステップs231において、システムは遷移評価点と格子点(i,j)における積算評価点とを加算し、一時評価点TEMPSCOREにコピーする。
【００３７】
上述のように、本実施形態では、２つ以上の動的計画法のパスが同一格子点に達すると、それぞれのパスの積算評価点を比較し、最適なパス、すなわち大きい評価点のパスのみを残す。すなわち、ステップs233において、TEMPSCOREを既に格子点(i2,j2)における積算評価点と比較し、大きい方の評価点をSCORE(i2,j2)に保持する。そして、ステップs225に戻り、ループポインタj2を１加算してステップs221に戻る。第二音素系列ループポインタj2がmxjの値に達すると、ステップs235に進み、ループポインタj2を初期値jに再設定するとともに、第一音素系列ループポインタi2を１加算する。そして、ステップs219に戻り、図７ｂに示す次の列の格子点処理を開始する。格子点(i,j)から図７ｂに示したすべての他の点までパスを伝搬させると、処理は終了する。
【００３８】
判定ステップs213において、辞書単語がマニュアルで作成されたと判定された場合には、処理をステップs241からs251に進め、格子点(i,j)で終端されたパスを図７aで示した格子点に伝搬させる。すなわち、ステップs241において、辞書音素ループポインタiが辞書音素系列中の最後の音素であるか否かを判定する。最後の音素である場合には、辞書音素系列において他の音素は存在しないため処理を終了する。辞書音素ループポインタiがNdic-1より小さければ、ステップs243に進み、入力音素ループポインタj2をmxjと比較する。当初j2はmxjよりも小さいため、ステップs245に進み、格子点(i,j)から格子点(i+1,j2)への遷移評価点（TRANSCORE）を計算する。次いで、ステップs247においてこの遷移評価点に格子点(i,j)で終端されたパスの積算評価点を加算し、加算結果を一時評価点TEMPSCOREにコピーする。続くステップs249では、TEMPSCOREを既に格子点(i+1,j2)における積算評価点と比較し、大きい方の評価点をSCORE(i+1,j2)に保持する。そして、ステップs251に進み、ループポインタj2を１加算してステップs243に戻る。格子点(i,j)で終端されたパスを図７aで示す他のすべての点まで伝搬させると、j2はmxjと等しくなり、格子点(i,j)で終端されたパスの伝搬が終了する。  （遷移評価点）
ステップs229とs245においては、格子点(i,j)から他の格子点(i2,j2)あるいは(i+1,j2)への遷移評価点が計算される。この遷移評価点の計算は、遷移始点と遷移終点とに関係する挿入確率、欠落確率、デコード確率に基づいて行われる。本実施形態での計算方法を図１１と図１２に示す。
【００３９】
図１１は、格子点(i,j)から格子点(i2,j2)へのパス伝搬における遷移評価点を計算する一般的な処理ステップを示したフローチャートである。ステップs291において、格子点(i,j)と格子点(i2,j2)との間で挿入された辞書系列音素ごとに、音素が挿入される評価点（上述のPI( )のログ確率）を求め、これをINSERTSTOREに加算する。次いで、ステップs293において、格子点(i,j)と格子点(i2,j2)との間に挿入される入力系列音素ごとに同様の計算を行い、これをINSERTSCOREに加算する。上述のように、計算された評価点はログベースの確率であるため、INSERTSCOREへの加算は挿入確率を乗算することと等価となる。続くステップs295では、格子点(i,j)から格子点(i2,j2)への伝搬における欠落やデコードに対する評価点を上式(1)にしたがって計算し、これらを加算してDELSCOREに保持する。ステップs297において、INSERTCOREとDELSCOREとを加算し、結果をTRANSCOREにコピーする。
【００４０】
図１２は、ステップs295において格子点(i,j)から格子点(i2,j2)への伝搬における欠落やデコードに対する評価点を計算する処理を詳細に示した図である。欠落やデコードは、辞書系列が音声から作成されたものであるのか否かによって異なるため、まず判定ステップs301でこの判定を行う。辞書系列が音声から作成されていた場合には、図１２ｂに示すステップs325に進む。辞書系列がマニュアルで作成されていた場合には、ステップs319において、入力音素ループポインタj2が入力音素ループポインタjと等しいか否かの判定がなされる。等しい場合には、格子点(i,j)から格子点(i+1,j)への遷移評価点を計算する。すなわち、辞書音素系列に比して入力音素系列において辞書音素d1i+1が欠落した場合である。この場合には、ステップs321において、欠落辞書音素d1i+1のログ確率（logP(φ|d1i+1)を求め、DELSCOREにコピーし処理を終了する。ステップs319において、入力音素ループポインタj2が入力音素ループポインタjと等しくないと判断された場合には、格子点(i,j)から格子点(i+1,j+1), (i+1,j+2), (i+1,j+3)いずれかへの遷移評価点を計算する。すなわち、辞書音素d1i+1と入力音素d2j2との間で欠落が発生せず、挿入とデコードが生じた場合である。この場合には、ステップs323において、辞書音素d1i+1を入力音素d2j2としてデコードするログ確率（logP(d2j2|d1i+1)を求め、DELSCOREにコピーし処理を終了する。
【００４１】
ステップs301において、辞書音素系列が音声から作成されたと判定された場合には、ステップs325に進み、辞書音素系列ループポインタi2が辞書音素系列ループポインタjと等しいかの判定がなされる。等しい場合にはステップs327に進み、音素ループポインタrが１に初期化される。ここで、音素ポインタrは、上式(2)の計算においてシステムが対象とするすべての音素をループさせるために用いられる。続くステップs329では、音素ポインタrをシステムが対象とする音素の数Nphonemes（本実施形態では４３）と比較する。rは当初ステップs327で１に設定されるので、ステップs331に進み、音素prのログ発生確率（logP(pr)）を求め、一時評価点TEMPDELSCOREにコピーする。辞書音素系列ループポインタi2が辞書音素ループポインタiと等しい場合には、格子点(i,j)で終端されるパスを格子点(i,j+1), (i,j+2), (i,j+3)のいずれかの点に伝搬させる。すなわち、入力音素系列に辞書音素系列に存在しない音素が存在する場合である。したがって、ステップs333では、辞書音素系列から音素prが欠落するログ確率（logP(φ|pr)）をTEMPDELSCOREに加算する。また、ステップs335では、音素prを入力系列音素d2j2としてデコードするログ確率（logP(d2j2|pr)）をTEMPDELSCOREに加算する。さらに、ステップs337においてTEMPDELSCOREとDELSCOREとの「ログ加算」がなされ、加算結果がDELSCOREに保持される。
【００４２】
本実施形態では、上式(2)に基づくデコード確率の計算において確率の加算や乗算が必要となる。この際、本実施形態では、ログ確率を用いているため、「ログ加算」処理を行うにあたってはTEMPDELSCOREとDELSCOREとをログ確率から通常の確率に一旦変換した後、加算して、再度ログ確率に変換するという処理が必要となる。なお、この「ログ加算」は音声処理では良く知られた手法であり、例えばLee, Kai-Fu, "Automatic Speech Recognition: The Development of the (Sphinx) System," Kluwer Academic Publishers, 1989 という本のページ２８と２９に記されている。ステップs337に続いて、ステップs339において音素ループポインタrに１を加算した後、ステップs329に戻り、システムが対象とする次の音素に対して同様の処理を実行する。システムが対象とする４３個の音素に対しての処理を行うと、処理が終了する。
【００４３】
一方、ステップs325においてi2とiとが異なると判定されると、ステップs341において入力音素系列ループポインタj2が入力音素系列ループポインタjと等しいかの判定が行われる。j2とjとが等しい場合には、ステップs343において音素ループポインタrが１に初期化される。続くステップs345では、音素ループポインタrをシステムが対象とするすべての音素の数Nphonemesと比較する。rは当初ステップs343で１に設定されるので、ステップs347に進み、音素prのログ発生確率を求め、一時評価点TEMPDELSCOREにコピーする。続くステップs349では、音素prを辞書音素d1i2としてデコードするログ確率を求め、TEMPDELSCOREに加算する。入力音素系列ループポインタj2がループポインタjと等しい場合には、格子点(i,j)で終端されるパスを格子点(i+1,j), (i+2,j), (i+3,j)のいずれかの点に伝搬させる。すなわち、辞書音素系列に入力音素系列に存在しない音素が存在する場合である。したがって、ステップs351では、入力音素系列から音素prが欠落するログ確率を求め、TEMPDELSCOREに加算する。続くステップs353では、TEMPDELSCOREとDELSCOREとのログ加算を行い、加算結果をDELSCOREに保持する。そして、ステップs355において音素ループポインタrを１増加させ、ステップs345に戻る。ステップs347からs353をシステムが対象とするすべての音素に対して実行すると、処理は終了する。
【００４４】
ステップs341において入力音素系列ループポインタj2が入力音素系列ループポインタjと異なると判定されると、ステップs357において音素ループポインタrが１に初期化される。続くステップs359では、音素カウンタrをシステムが対象とするすべての音素の数Nphonemesと比較する。rは当初ステップs357で１に設定されるので、ステップs361に進み、音素prのログ発生確率を求め、一時評価点TEMPDELSCOREにコピーする。ループポインタj2がループポインタjと異なる場合には、格子点(i,j)で終端されるパスを格子点(i+1,j+1), (i+1,j+2), (i+2,j+1)のいずれかの点に伝搬させる。すなわち、欠落は発生せず、挿入とデコードが生じた場合である。したがって、ステップs363では、音素prを辞書音素d1i2としてデコードするログ確率をTEMPDELSCOREに加算する。また、ステップs365では、音素prを入力音素d2j2としてデコードするログ確率を求めTEMPDELSCOREに加算する。続くステップs367では、TEMPDELSCOREとDELSCOREとのログ加算を行い、加算結果をDELSCOREに保持する。そして、ステップs369において音素カウンタrを１増加させ、ステップs359に戻る。ステップs361からs367をシステムが対象とするすべての音素に対して実行すると、処理は終了する。
【００４５】
トレーニング
上記実施形態では、動的計画法整合ユニット７８は、音素整合処理における動的計画法のパスの評価点を計算するために、１８９２個のデコード／欠落確率と４３個の挿入確率を用いる。本実施形態では、これらの確率は、あらかじめトレーニングセッションにおいて決定され、メモリ４７に記憶しておく。すなわち、トレーニングセッションにおいて、音声認識システムを用いて音声の音素デコードを２種類の方法で実行する。第一の方法では、音声と発話された単語とを音声認識システムに入力する。音声認識システムは、これらの情報を用いて発話単語の基準音素系列を生成し、音声の理想的なデコードを求める。次に、今度は発話された単語の知識を用いずに、同一の音声を音声認識システムでデコードする（以下、これを無条件デコードと呼ぶ）。この際、無条件デコードから生成された音素系列は、基準音素系列と以下の点で異なることになる。
i）無条件デコードには誤りが生じえる。すなわち、基準系列に存在しない音素がデコードに挿入されたり、基準系列に存在する音素がデコードから欠落したりすることがあり得る。
ii）ある音素が別の音素と取り違えられることがあり得る。
iii）音声認識システムが音声を完全にデコードしたとしても、会話発音と基準発音との差異から無条件デコードが異なることがあり得る。例えば、単語"and"の基準形式は/ae/ /n/ /d/ と/ax/ /n/ /d/ となるが、会話音声では/ax/ /n/ あるいは /n/ となることがしばしばあり得る。
【００４６】
したがって、多数の発話を基準形式ならびに無条件デコード形式にデコードするにあたっては、２つの整合をとるために上記と同様な動的計画法手法を用いることができる。これにより、基準音素がpであったときにdとデコードされた回数が得られ、このようなトレーニング結果を用いて、上述のデコード確率、欠落確率、挿入確率を下記のように近似することが可能となる。
音素dが挿入される確率は、
【００４７】
【数７】
0003747171.tif 000006
となる。ここで、Idは自動音声認識システムが音素dを挿入した回数、nodは基準系列に対して挿入されたデコード音素の全体数である。
【００４８】
音素pを音素dとしてデコードする確率は、
【００４９】
【数８】
0003747171.tif 000007
となる。ここで、cdpは自動音声認識システムがpとデコードされるべき音素をdとデコードした回数、npは自動音声認識システムがpとデコードされるべき音素を欠落をも含めたいかなる音素のいずれかにデコードした回数である。
pとデコードされるべき音素がいずれかの音素にもデコードされない確率、すなわち欠落確率は、
【００５０】
【数９】
0003747171.tif 000008
となる。ここで、Opは自動音声認識システムがpとデコードされるべき音素をいずれかの音素にもデコードしなかった回数、npは上と同様である。
【００５１】
他の実施形態
今まで「音素」という言葉を用いてきたが、本発明はこの言語学的意味に限定されるものではなく、標準の音声認識システムにおいて用いられる識別可能な別のサブ単語ユニットにも適用できることが、当業者であれば理解されよう。すなわち、「音素」という言葉は、音韻、音節、片仮名（日本語のアルファベット）などのようなサブ単語ユニットをも意味する。
【００５２】
また、音素系列を動的計画法整合する上記説明は例として示したものであり、種々の修正を施すことが可能であることは当業者であれば理解されよう。例えば、パスを格子点上で伝搬させるためにラスタースキャン処理を用いたが、パスを格子点上で漸進的に伝搬させるような手法を用いることも可能である。さらに、上述の動的計画法の制限以外の制約を用いてマッチング処理を制御することも可能であることは、当業者であれば理解できよう。
【００５３】
上記実施形態では、音声から辞書音素が作成された場合、式(2)を用いて動的計画法整合ユニットにおける遷移のデコード評価点計算を行っている。これに対して、式(2)のようにシステムが対象とするすべての音素を加算するのではなく、加算する確率項それぞれの最大値を求め、この最大値を入力系列中の音素のデコード確率とすることで、未知の音素pを識別する動的計画法整合ユニットを考えることもできる。
【００５４】
また、上記実施形態では、音声認識システムの統計量から確率を最尤推定して、挿入、欠落、デコード確率を求めている。これに対して、最大エントロピー法を用いてこれらの確率を推定することもできることは当業者であれば理解できよう。なお、適切な最大エントロピー法の詳細は、John Skilling, "Maximum Entropy and Bayesian Methods", Kluwer Academic Publishers という本のページ４５から５２に記されており、参照されたい。
【００５５】
さらに、上記実施形態では、音声認識エンジンから出力された音素系列とそれぞれの辞書音素系列とを動的計画法アルゴリズムを用いて整合している。ここで、他の整合手法を用いることが可能であることは、当業者であれば理解できよう。例えば、すべての可能な整合を試してみる素朴な方法を用いることもできる。しかし、動的計画法は、標準的な処理プロセッサを用いて容易に実装できるという点で優れている。また、上述の実施形態における動的計画法では、音素の入力系列間での「最適な」整合を求めていたが、いくつかのアプリケーションでは必ずしも最適な整合を求める必要はない。すなわち、第二、第三、第四番目に最適な整合を用いることができる場合がある。
【００５６】
また、上述の実施形態における動的計画法アルゴリズムでは、辞書系列が音声から作成された場合、整合する音素ペアごとに式(2)を計算している。すなわち、式(2)の計算では、辞書系列音素と入力系列音素とをシステムが対象とする音素それぞれと比較している。しかし、ある辞書系列音素と入力系列音素とのペアに対しては、式(2)で与えられる確率の多くが等しい、もしくは０に近くなることが、当業者であれば理解できよう。したがって、すべての対象音素中の一部に対してのみ整合する音素との比較を行う別の実施形態を考えることもできる。なお、対象音素のうちの一部は、トレーニングデータを用いてあらかじめ決定される。このような実施形態においては、整合する入力音素を用いてルックアップテーブルを参照し、式(2)を用いて比較対象の音素を決定することになる。
【００５７】
さらに、上述の実施形態では、認識する入力音素系列と辞書音素系列の双方に対して、同一の音素混同（取り違え）確率を適用している。ここで、音素混同確率は、音素系列を生成するために用いる認識システムに依存するため、異なる認識システムを用いる場合には、それぞれ異なる音素混同確率を用いなければならないことは、当業者であれば理解できよう。
【００５８】
以上、種々の実施形態や修正を記したが、当業者であれば明らかであるような他の実施形態や修正もあり得ることは、当業者であれば理解できよう。
【図面の簡単な説明】
【図１】本発明の実施形態を処理するようにプログラムされたコンピュータの模式図である。
【図２】本発明を実現する音声認識システムの概要を示すブロック図である。
【図３】図２で示した音声認識システムの一部となるワードデコーダの主要素を示すもブロック図である。
【図４】辞書単語を示す第一音素系列、図２の音声認識エンジンから出力される発話単語を示す第二音素系列、第一ならびに第二音素系列を最も良く表現する第三音素系列を示し、第一ならびに第二音素系列において第三音素系列に対して音素の挿入や欠落が生じ得ることを示している。
【図５】辞書単語と発話単語の音素系列からなる探索空間を、始点空ノードと終点空ノードとともに模式的に示した図である。
【図６】水平軸が辞書単語音素、垂直軸が発話音素である２次元座標プロットであり、辞書単語音素と発話音素との間での可能なマッチングを示す複数の格子点を示している。
【図７ａ】辞書音素系列がマニュアルで作成された場合に、図３に示した単語デコーダの一部の動的計画法整合ユニットで用いられる動的計画法の制限を模式的に示した図である。
【図７ｂ】辞書音素系列が発話から作成された場合に、図３に示した単語デコーダの一部の動的計画法整合ユニットで用いられる動的計画法の制限を模式的に示した図である。
【図８】音素列に対して格納されている欠落確率とデコード確率とを示したもので、これらの確率は、図３に示した整合ユニットで実行される動的計画法整合処理中の適合性決定処理において用いられる。
【図９】図３の動的計画法整合ユニットにおいて実行される主処理ステップを示すフローチャートである。
【図１０】始点空ノードから終点空ノードまで動的計画法のパスを伝搬させるために用いられる主処理ステップを示すフローチャートである。
【図１１】動的計画法整合処理におけるパス伝搬において遷移評価点を計算する処理ステップを示すフローチャートである。
【図１２ａ】第一ならびに第二音素系列において単語候補に対して欠落やデコードが生じる評価点を計算する処理ステップの第一の部分を示すフローチャートである。
【図１２ｂ】第一ならびに第二音素系列において単語候補に対して欠落やデコードが生じる評価点を計算する処理ステップの第二の部分を示すフローチャートである。
【図１】
0003747171.tif 000009
【図２】
0003747171.tif 000010
【図３】
0003747171.tif 000011
【図４】
0003747171.tif 000012
【図５】
0003747171.tif 000013
【図６】
0003747171.tif 000014
【図７ａ】
0003747171.tif 000015
【図７ｂ】
0003747171.tif 000016
【図８】
0003747171.tif 000017
【図９】
0003747171.tif 000018
【図１０】
0003747171.tif 000019
【図１１】
0003747171.tif 000020
【図１２ａ】
0003747171.tif 000021
【図１２ｂ】
0003747171.tif 000022