(57)【特許請求の範囲】
【請求項１】
音声認識方法に用いる木構造辞書を作成する木構造辞書作成方法であって、
前記木構造辞書に含めようとする複数の単語のそれぞれについて先頭の構成音素から順番に構成音素同士を比較し、同じ位置に共通の構成音素を有する単語同士が隣り合うように、前記複数の単語を整列し、ＩＤ付与手段が整列された前記複数の単語に対して順番に連続したＩＤ番号を付与するＩＤ付与ステップと、
生成手段が、前記複数の単語について各構成音素をノードとし、先頭の構成音素から順に共通の構成音素が同一のノードとなるように木構造化する木構造化ステップと、
前記木構造化ステップで生成された木構造に含まれる２つのノードであって、互いに接続された親ノード及び子ノードのうち、到達可能な単語の集合が親ノードと異なる子ノードに対し、情報付与手段が、該子ノードから到達可能な単語に付与されたＩＤ番号のうち最小又は最大のＩＤ番号と、該子ノードから到達可能な単語の総数と、をノード情報として付与するノード情報付与ステップと、
を備えることを特徴とする木構造辞書作成方法。
【請求項２】
辞書作成手段が請求項１に記載の木構造辞書作成方法で木構造辞書を作成するステップと、
音声入力手段が音声を入力する音声入力ステップと、
出力手段が、前記音声入力ステップで入力した音声に最も適合した単語を、前記木構造辞書に含まれる複数の単語の中から、前記ノード情報を用いて探索し、音声認識結果として出力する出力ステップと、
を備えることを特徴とする音声認識方法。
【請求項３】
請求項１に記載の木構造辞書作成方法で木構造辞書を作成する木構造辞書作成手段と、
音声を入力する音声入力手段と、
前記音声入力手段で入力した音声に最も適合した単語を、前記木構造辞書に含まれる複数の単語の中から、前記ノード情報を用いて探索し、音声認識結果として出力する出力手段と、
を備えることを特徴とする音声認識装置。
【請求項４】
請求項１に記載の木構造辞書作成方法の各ステップをコンピュータに実行させるためのコンピュータプログラムを記憶したコンピュータ読取可能なメモリ。
【請求項５】
請求項２に記載の音声認識方法の各ステップをコンピュータに実行させるためのコンピュータプログラムを記憶したコンピュータ読取可能なメモリ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、音声認識を行なう音声認識装置及び音声認識方法並びにその方法に用いられる木構造辞書の作成方法に関わるものである。
【０００２】
【従来の技術】
隠れマルコフモデル（ＨＭＭ）などの音響モデルを用いる音声認識では、入力音声の特徴を抽出し、単語辞書に記述された単語と音響モデルの関係に従い、各単語を構成する音響モデルの出力確率を求め、Virerbi探索などの探索手法を用いて、単語あるいは単語を構成する各音素の各状態の尤度を探索し、音声認識を行なう。
【０００３】
図１１は、音響モデルとして音素モデルを用い、認識対象語が『東京』『東海』『東北』である場合の単語辞書の例である。各単語は、音素モデルの連結によって表されている。
【０００４】
大語彙を対象にした音声認識では、図１１で示した例のように、先頭部分に同一の音素モデルを有する単語が多数出現する。この共通部分の音響尤度は等しくなるため、単語先頭の共通部分を共有化した木構造単語辞書（以下、tree lexicon）を用いて、重複した部分の音響尤度の計算を省く方法が一般に用いられている。図１２は、図１１に示した単語を木構造化した、tree lexiconの例である。図に示したように、tree lexiconは音素を表すノードと、ノード間を接続するアークで構成される。一方、図１１に示したような単語先頭に共通部分があっても共有化しない単語辞書を、linear lexiconと呼ぶ。
【０００５】
このような単語辞書から、入力音声に最も適合する単語を探索する際、単語連鎖確率(N-gram)などに代表される言語モデルから得られる言語尤度を、音響モデルから計算される音響尤度と併用することにより、認識性能の向上、探索空間の削減、などの効果が得られる。
【０００６】
【発明が解決しようとする課題】
ところが、単語辞書としてlinear lexiconを用いる時は、単語の先頭で単語が一意に定まり、各単語の先頭音素の先頭状態の尤度を計算する際に言語尤度を参照することができるのに対し、tree lexiconを用いる場合には、単語が一意に決まるのは、ツリーの末端のノード（最後に分岐した直後のノード）に達したときである。図１２の例では、太い丸で示したノードに達して初めて単語が一意に決定される。従って、言語尤度を用いるタイミングが遅くなり、十分な探索空間の削減を図ることができなかった。
【０００７】
これに対して、tree lexiconを用いる場合に、単語が一意に決まらない段階でも、共通音素部分で音響尤度だけでなく、言語尤度をも共有化して用いる方法が提案されている。これは、言語尤度を先読みすることによって行われる。言語尤度の先読みとは、一般的に、共有化した部分で、その部分から到達可能な全ての単語の言語尤度の最大値（先読み値）を言語尤度として用いることをいう。
【０００８】
言語尤度先読みの実現方法として、具体的には以下の方法があるがそれぞれ問題点を有していた。
【０００９】
１．単語番号など単語ＩＤは、ツリーの末に保持しておき、言語尤度を計算する際に、ツリーをリーフの方向に探索して到達可能な単語を求め、それらの単語の尤度の最大値を求める方法。認識語数が多く、tree lexiconが大きい場合に、到達可能な単語の探索に時間がかかる。
【００１０】
２．tree lexicon上の各ノードで、全ての到達可能な単語ＩＤを保持し、探索時に、それらの全ての単語尤度の最大値を求める方法（図１３）。この例では、直前のノードと到達可能な単語が異なるノード（図中、太丸で示す）に、到達可能な単語ＩＤを保持させる。認識語数の増加にしたがい、各ノードで保持する単語ＩＤの数が増え、必要となる記憶領域が増加する。
【００１１】
３．tree lexicon上の、直前のノードと到達可能な単語が異なるノード（図中、太丸で示す）に、そのノードから到達可能な全ての単語の言語尤度の最大値（先読み値）を保持させる（図１４）。言語尤度としてbigram，trigramを用いる場合に、先行単語ごとに、言語尤度を保持したツリーが必要となり、先行単語数が多い場合などに、必要となる記憶領域が増加する。
【００１２】
４．tree lexicon上の各ノードにおける言語尤度を計算しておき、直前のノード（ルート方向に接続した隣のノード）からの差分を保持する（図１５）。この例では、まず、ツリーのルートのノードに言語尤度が保持され、直前のノードと言語尤度が異なるノード（図中、太丸で示す）に、直前のノードの言語尤度との差分を保持している。上記３と同様に言語尤度としてbigram，trigramを用いる場合に、先行単語ごとに、言語尤度を保持したツリーが必要となり、先行単語数が多い場合などに、必要となる記憶領域が増加する。
【００１３】
本発明は、上記従来技術の課題を解決する為になされたもので、その目的とするところは、木構造単語辞書からの効率的な探索を少ない情報量で実現可能な音声認識方法及び装置を提供することにある。
【００１４】
【課題を解決するための手段】
上記目的を達成するため、本発明に係る方法は、
音声認識方法に用いる木構造辞書を作成する木構造辞書作成方法であって、
前記木構造辞書に含めようとする前記複数の単語のそれぞれについて先頭の構成音素から順番に構成音素同士を比較し、同じ位置に共通の構成音素を有する単語同士が隣り合うように、前記複数の単語を整列し、ＩＤ付与手段が整列された前記複数の単語に対して順番にＩＤ番号を付与するＩＤ付与ステップと、
生成手段が、前記複数の単語について各構成音素をノードとし、先頭の構成音素から順に共通の構成音素が同一のノードとなるように木構造化する木構造化ステップと、
前記木構造化ステップで生成された木構造に含まれる２つのノードであって、互いに接続された親ノード及び子ノードのうち、到達可能な単語の集合が親ノードと異なる子ノードに対し、情報付与手段が、該子ノードから到達可能な単語に付与されたＩＤ番号のうち最小又は最大のＩＤ番号と、該子ノードから到達可能な単語の総数と、をノード情報として付与するノード情報付与ステップと、
を備えることを特徴とする。
【００１５】
上記目的を達成するため、本発明に係る音声認識方法は、
辞書作成手段が上記木構造辞書作成方法で木構造辞書を作成するステップと、
音声入力手段が音声を入力する音声入力ステップと、
出力手段が、前記音声入力ステップで入力した音声に最も適合した単語を、前記木構造辞書に含まれる複数の単語の中から、前記ノード情報を用いて探索し、音声認識結果として出力する出力ステップと、
を備えることを特徴とする。
【００１６】
上記目的を達成するため、本発明に係る音声認識装置は、
上記木構造辞書作成方法で木構造辞書を作成する木構造辞書作成手段と、
音声を入力する音声入力手段と、
前記音声入力手段で入力した音声に最も適合した単語を、前記木構造辞書に含まれる複数の単語の中から、前記ノード情報を用いて探索し、音声認識結果として出力する出力手段と、
を備えることを特徴とする音声認識装置。
【００１７】
本発明に係るコンピュータ可読メモリは、
上記木構造辞書作成方法の各ステップをコンピュータに実行させるためのコンピュータプログラムを記憶する。
【００１８】
本発明に係る他のコンピュータ可読メモリは、
上記音声認識方法の各ステップをコンピュータに実行させるためのコンピュータプログラムを記憶する。
【００２２】
【発明の実施の形態】
以下に、図面を参照して、この発明の好適な実施の形態を例示的に詳しく説明する。ただし、この実施の形態に記載されている構成要素の相対配置、数式、数値等は、特に特定的な記載がない限りは、この発明の範囲をそれらのみに限定する趣旨のものではない。
【００２３】
（一実施の形態）
以下、図面を参照しながら本発明の一実施の形態を説明する。
【００２４】
図１は本発明の一実施の形態としての音声認識装置のハードウェア構成である。
【００２５】
図１において、１は音声認識の結果あるいは音声認識の結果得られた応答を出力する出力装置である。
【００２６】
２は音声を入力する入力装置である。
【００２７】
３は数値演算・制御等の処理を行なう中央処理装置であり本発明の手順に従って演算を行なう。４はディスク装置等の外部メモリ装置やＲＡＭ・ＲＯＭ等の内部メモリといった記憶装置であり、本発明の手順や処理を記述したプログラムおよびその処理に必要な一時的データおよび認識対象語を記述した単語辞書，音響モデル，言語モデルが格納される。
【００２８】
以上のハードウェア構成により、以下のような音声認識方法を実現することができる。
【００２９】
図２は本実施の形態に係る音声認識処理の一例である。
【００３０】
まず、単語リスト読み込みステップＳ１で、図３のような認識対象となる単語のリストを読み込む。単語リストには、各単語に対し、単語を構成する音響モデルが記述されている。
【００３１】
次に、音響モデル読み込みステップＳ２で、ＨＭＭなど、単語を構成する音響モデルを読み込む。次に、言語モデル読み込みステップＳ３で、言語尤度の計算に用いる、N-gramなどの言語モデルを読み込む。
【００３２】
次に、木構造辞書作成ステップＳ４で、単語リストを基に、図１２のような、木構造化した単語辞書を作成する。
【００３３】
次に、音声取り込みステップＳ５で、マイクロフォンなど音声入力装置から入力された音声を一定時間ごとに取り込む。
【００３４】
音響分析ステップＳ６で、取り込んだ音声に対して、音響分析を行いケプストラムなどの特徴パラメータを求める。
【００３５】
次に、音響尤度計算ステップＳ７で、特徴パラメータに対する各音響モデルの尤度を計算する。
【００３６】
次に、探索ステップＳ８で、木構造辞書に記述された音響モデルの接続構造に従って、先頭音素から順に、木構造辞書の各ノードにおける累積尤度をVirerbi探索などの探索手法を用いて更新する。一般に、音響モデルは図４のように複数の状態から構成されており、累積尤度は、木構造辞書上の各ノードに対応する音響モデルの各状態ごとに保持され、累積尤度の更新も各状態ごとに行われる。また、累積尤度以外に、認識結果を出力するために必要なその状態に到達するまでの履歴に関する情報、言語尤度などを各状態ごとに保持する。累積尤度の更新時に、必要に応じて言語尤度の先読みを行い、言語尤度を更新する。一般に、累積尤度は、対数音響尤度の累積値と対数言語尤度の累積値を用いて、以下の式で計算される。ｗは重みである。
【００３７】
累積尤度＝対数音響尤度の累積値＋ｗ×対数言語尤度の累積値  （１）
以上の音声取り込みステップＳ５から探索ステップＳ８までの処理を音声が終了するまで繰り返す。音声の入力が終了した時点で、認識結果出力ステップＳ９で、最も尤度の高い系列を求め、音声認識結果として出力する。
【００３８】
以上の処理のうち、本発明では、木構造辞書作成ステップＳ４における木構造辞書作成方法、および探索ステップＳ８における言語尤度先読み方法を以下のように処理する。
【００３９】
〈木構造辞書作成処理〉
図５は、本実施の形態における木構造辞書作成処理を示すフローチャートである。以下、図５を用いて、説明する。
【００４０】
まず、単語整列ステップＳ１０において、認識語彙を音素順に整列(sort)する。以下で単語を整列する方法について説明する。ここでは、単語の順序を、その大小で表現する。ｍ個の音素で構成される単語Ａ＝ａ1，ａ2，…，ａnとｍ個の音素で構成される単語Ｂ＝ｂ1，ｂ2，…，ｂmの大小を以下のように判定する。▲１▼ｉ＝０
▲２▼ｉを１増やす（ｉ＝ｉ＋１）。
▲３▼ｉ＞ｎまたはｉ＞ｍのとき、
ｎ＝ｍならＡ＝Ｂ，ｎ＞ｍならＡ＞Ｂ，ｎ＜ｍならＡ＜Ｂと判定する（終了）。
▲４▼ａi＝ｂiとき、▲２▼へ戻る。
▲５▼ａi＞ｂiならＡ＞Ｂ，ａi＜ｂiならＡ＜Ｂと判定する（終了）。
【００４１】
各音素ａi，ｂiの大小は、音素名が一文字のアルファベットで表せる場合は、アルファベット順で決定し、図６に示すように音素名に複数のアルファベットで表現されたり、記号で表される場合は、音素番号を付与し、音素番号を大小の判定基準に用いればよい。
【００４２】
次に、単語ＩＤ付与ステップＳ１１で、整列順に単語ＩＤを付与する。単語ＩＤには、番号、アルファベットなど順序（大小）を判断できるものを用いる。図は図３を整列し、単語ＩＤとして、番号を付与した例である。
【００４３】
次に、共有化ステップＳ１２で、各単語同士を順に比較し、単語の先頭から共通な部分を共有化し木構造辞書を作成する。図８は、図７の単語の共通な先頭部分を共有化して作成した木構造辞書の例である。
【００４４】
次に、到達可能単語情報付与ステップＳ１３で、木構造辞書のノードに到達可能な単語の情報を付与する。
【００４５】
単語を、単語を構成する音素で整列し、整列順に単語ＩＤを付与して木構造辞書を作成すると、木構造辞書の各ノードから到達可能な単語の集合は、連続した単語ＩＤを持つ。例えば、図８において、矢印で示した‘ａ’のノード８１から到達可能な単語の単語ＩＤ８２は、１〜９である。また、矢印で示した‘ｕ’のノード８３から到達可能な単語の単語ＩＤは、７〜８であり、いずれも連続した単語ＩＤとなる。これらの特性を利用して、本方法では、各ノードに付与する到達可能な情報として、到達可能な単語の最小の単語ＩＤと、到達可能な単語数をノードに付与する。これらの情報をここではノード情報と称す。
【００４６】
ここで、ノード情報は、全てのノードには付与せずに、親のノードと到達可能な単語の集合が異なるノードのみに付与する。到達可能な単語の集合は、ツリーの分岐によって変るため、分岐直後のノードに対して、上述した、到達可能な単語の最小の単語ＩＤと、到達可能な単語数をノードに付与する。
【００４７】
図９の９１は、図８に示した木構造辞書に到達可能な単語情報を付与したものである。図中、太丸で示したノードが、直前のノードと到達可能な単語の集合が異なるノードであり、ノード内に記した数字９２は、左から順に、到達可能な単語の最小単語ＩＤ、到達可能な単語数である。網掛けされたノードは単語が一意に決定されるノードである。
【００４８】
これにより、太丸で示されたノードまでの音素のマッチングが終了した時点で、そのノードに付与された情報としての単語ＩＤから言語尤度を導き出すことができ、効率的な単語探索及び言語尤度の参照を行なうことができる。
【００４９】
なお、ここでは、ノードに付与する情報として、そのノードから到達可能な単語のＩＤの内、最小のものとしているが、最大のものを付与してもよい。ノードから到達可能な単語数とともにもちいることで、ノードから到達可能な単語を特定できる情報であればよい。
【００５０】
〈言語尤度先読み処理〉
次に、以上で作成した木構造辞書を用いて音声認識を行う際に、言語尤度を先読みする処理について説明する。図１０は言語尤度先読み方法に関する本実施の形態を示すフローチャートである。
【００５１】
到達可能な単語の情報（ノード情報）が付与されているノード（図９で太丸で示したノード）の音響モデルの最初の状態の累積尤度更新時に、他の状態から遷移して来た場合の累積尤度を計算する際に、言語尤度先読みを行い、図１０に示した手順で言語尤度の更新を行う。
【００５２】
まず、先読み値参照ステップＳ１４で、到達可能な単語の最小の単語ＩＤ（ｓ）と到達可能な単語数（ｎ）の先読み値^ｐl(ｓ,ｎ)、つまり、ＩＤ（ｓ）から連続したｎ個の単語の言語尤度のうち、最大のものを参照する。
【００５３】
メモリあるいはハードディスクなどの記憶装置上に^ｐl(ｓ,ｎ)が記憶されている場合は、言語尤度更新ステップＳ１５において、そのノードでの言語尤度をその記憶されている先読み値^ｐl(ｓ,ｎ)に更新する。
【００５４】
^ｐl(ｓ,ｎ)が記憶されていない場合は、先読み値計算ステップＳ１６で先読み値^ｐl(ｓ,ｎ)を以下の式で求める。
【００５５】
【数１】
0004289715.tif 000002
【００５６】
ここで、ｐl(ｗi)は、単語ＩＤ（ｉ）の単語の言語尤度であり、図２の言語モデル読み込みステップＳ３で読み込まれたものである。
【００５７】
この計算は、ノード情報を用いて、そのノードから到達できる単語のＩＤ情報を特定し、図７のようなテーブルを用いてそのＩＤ情報を有する単語の言語尤度の最大値を、前記ノード情報に対応した言語尤度として求めるものである。
【００５８】
ステップＳ１７に進み、求めた先読み値^ｐl(ｓ,ｎ)を記憶手段に登録した上で、ステップＳ１５において言語尤度を^ｐl(ｓ,ｎ)に更新する。
【００５９】
先読み値の記憶、参照には、ｓ，ｎから記憶装置上の先読み値を格納した位置を計算するため、hash関数などのランダムアクセスに有効なアルゴリズムを用いる。
【００６０】
なお、言語尤度先読みの処理において、言語モデルとしてbigramを用いる場合には、先行単語ＩＤ、到達可能な単語の最小の単語ＩＤ、到達可能な単語数の３つの値をノード情報に含め、先行単語に対する先読み値の記憶、参照を、このノード情報を用いて行えばよい。
【００６１】
同様にN-gramを言語モデルとして用いる場合には、（Ｎ−１）個前の先行単語ＩＤ，…，１個前の先行単語ＩＤ、到達可能な単語の最小の単語ＩＤ、到達可能な単語数の（Ｎ＋１）個の値をノード情報に含めればよい。これにより、記憶領域が大幅に増加することなく、効率的な単語探索を行なうことができ、認識精度も向上させることができる。
【００６２】
（他の実施形態）
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体（または記録媒体）を、システムあるいは装置に供給し、そのシステムあるいは装置のコンピュータ（またはCPUやMPU）が記憶媒体に格納されたプログラムコードを読み出し実行することによっても、達成されることは言うまでもない。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６３】
さらに、記憶媒体から読み出されたプログラムコードが、コンピュータに挿入された機能拡張カードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張カードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００６４】
本発明を上記記憶媒体に適用する場合、その記憶媒体には、先に説明した図８や図９に例として示したデータ、あるいは、図２又は図５又は図１０に示したフローチャートに対応するプログラムコードが格納されることになる。
【００６５】
【発明の効果】
本発明によれば、木構造単語辞書からの効率的な探索を少ない情報量で実現可能な音声認識装置及び音声認識方法並びにその方法に用いられる木構造辞書の作成方法を提供することができる。
【図面の簡単な説明】
【図１】本発明の一実施の形態としての音声認識装置のハードウェア構成を示したブロック図である。
【図２】本発明の一実施の形態における、音声認識の処理手順を示したフローチャートである。
【図３】本発明の一実施の形態おける、音声認識する単語と各単語を構成する音素を記述したリストである。
【図４】音素を構成する状態とその遷移の例を示す図である。
【図５】本発明の一実施の形態における、木構造辞書作成の処理手順を示したフローチャートである。
【図６】単語を構成する音素とその並びの例を示す図である。
【図７】本発明の一実施の形態おける、音声認識する単語をその単語を構成する音素に基づいて整列し、単語ＩＤを付与した単語リストを示す図である。
【図８】本発明の一実施の形態おける、構成音素に基づいて整列し、単語ＩＤを付与した単語リストから作成した木構造辞書である。
【図９】本発明の一実施の形態おいて、直前のノードと到達可能な単語集合が異なる木構造辞書上のノードに、到達可能な単語の単語ＩＤの最小値と、到達可能な単語数を付与した様子を示す図である。
【図１０】本発明の一実施の形態における、言語尤度先読みの処理手順を示したフローチャートである。
【図１１】単語辞書の例である。
【図１２】木構造辞書の例である。
【図１３】木構造辞書上の各ノードから、全ての到達可能な単語ＩＤを保持している様子を示した図である。
【図１４】木構造辞書上の各ノードにおける言語尤度を保持している様子を示した図である。
【図１５】木構造辞書上の各ノードにおいて、直前のノードとの言語尤度の差分を保持している様子を示した図である。
【符号の説明】
１  出力装置
２  入力装置
３  中央処理装置
４  記憶装置
【図１】
0004289715.tif 000003
【図２】
0004289715.tif 000004
【図３】
0004289715.tif 000005
【図４】
0004289715.tif 000006
【図５】
0004289715.tif 000007
【図６】
0004289715.tif 000008
【図７】
0004289715.tif 000009
【図８】
0004289715.tif 000010
【図９】
0004289715.tif 000011
【図１０】
0004289715.tif 000012
【図１１】
0004289715.tif 000013
【図１２】
0004289715.tif 000014
【図１３】
0004289715.tif 000015
【図１４】
0004289715.tif 000016
【図１５】
0004289715.tif 000017