(57)【要約】【課題】必要な容量を効率的に削減しながら、探索エラーの発生を抑えることができる木構造辞書を提供する。【解決手段】記憶媒体に記憶される木構造辞書の各非終端ノードにおいて、当該非終端ノードを共有する単語数（当該非終端ノードから子ノードをたどって到達できる終端ノードの数）が所定のしきい値以上か否かを判定し（４４４）、しきい値以上であれば近似しないバイグラム言語スコアテーブルを保持し（４４６）、しきい値未満であればユニグラムで近似したスコアを子ノードの全てに要求し（４４８）、得られた近似スコアの中の最大値を当該非終端ノードの近似スコアとして保持する（４５０）。【選択図】      図７
2005265967.tif 000002
【特許請求の範囲】
【請求項１】
子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとから構成される木構造辞書を記録した記憶媒体であって、前記複数の非終端ノードは、それぞれ所定の音素に対応しており、
前記木構造辞書は、
前記木構造辞書の先頭ノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されており、
前記複数の終端ノードにはそれぞれ、対応の単語の、所定の言語モデルによる第１の言語スコアテーブルが付されており、
前記複数の非終端ノードにはそれぞれ、当該非終端ノードから子ノードをたどっていくことにより到達できる終端ノードの全ての前記言語スコアテーブルから、当該言語スコアテーブルの最大値をとることにより作成される第２の言語スコアテーブルが付されており、
前記複数の非終端ノードの前記第２の言語スコアテーブルは、当該非終端ノードから子ノードをたどることにより到達できる終端ノードの数が所定のしきい値未満の場合には、当該第２の言語スコアテーブルより簡略な言語スコア情報に置換されていることを特徴とする、コンピュータ読取可能な木構造辞書を記録した記憶媒体。
【請求項２】
前記所定の言語モデルはバイグラム言語モデルである、請求項１に記載の記憶媒体。
【請求項３】
前記簡略な言語スコア情報は、当該非終端ノードから到達できる終端ノード全てに関するユニグラムスコアの最大値である、請求項１又は請求項２のいずれかに記載の記憶媒体。
【請求項４】
前記簡略な言語スコア情報は、当該非終端ノードから到達できる終端ノード全てに関するクラスバイグラムスコアの最大値である、請求項１又は請求項２のいずれかに記載の記憶媒体。
【請求項５】
前記第２の言語スコアテーブルは、前記第１の言語スコアテーブルと同じエントリ数を有し、かつ前記第２の言語スコアテーブルのエントリの各々は、当該非終端ノードから子ノードをたどることにより到達できる終端ノードの前記第１の言語スコアテーブルの対応するエントリの最大値からなる、請求項１〜請求項４のいずれかに記載の記憶媒体。
【請求項６】
子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとから構成される木構造辞書において、前記複数の非終端ノードに付与される言語スコアテーブルを作成するための言語スコアテーブル作成プログラムであって、前記複数の非終端ノードは、それぞれ所定の音素に対応しており、
前記木構造辞書は、
前記木構造辞書の先頭ノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されており、
前記複数の終端ノードにはそれぞれ、対応の単語の、所定の言語モデルによる第１の言語スコアテーブルが付されており、
前記言語スコアテーブル作成プログラムは、
前記複数の非終端ノードの各々について、当該非終端ノードから子ノードをたどっていくことにより到達できる終端ノードの数を算出するためのプログラム部分と、
前記複数の非終端ノードの各々において、当該非終端ノードの親ノードから言語スコアテーブルの要求を受けたことに応答して、当該非終端ノードの子ノードの各々に対して当該子ノードの言語スコアテーブルを要求するプログラム部分と、
前記複数の非終端ノードの各々において、前記言語スコアテーブルを要求するプログラム部分が実行されることにより、当該非終端ノードの子ノードの各々から返される言語スコアテーブルに基づき、当該非終端ノードの第２の言語スコアテーブルを作成するプログラム部分と、
前記言語スコアテーブルを作成するプログラム部分により作成された前記第２の言語スコアテーブルを前記親ノードに返すプログラム部分と、
当該非終端ノードから子ノードをたどることにより到達できる終端ノードの数が所定のしきい値に対して予め定める条件を充足しているか否かを判定するプログラム部分と、
前記条件が充足されていると判定されたことに応答して、当該非終端ノードについて作成された前記第２の言語スコアテーブルを、当該非終端ノードの言語スコアテーブルとして記憶装置に記憶させるプログラム部分と、
前記条件が充足されていないと判定されたことに応答して、当該非終端ノードの子ノードに対して、簡略な言語スコア情報を要求する処理を行なうプログラム部分と、
前記簡略な言語スコア情報を要求する処理に応答して子ノードから返される簡略な言語スコア情報に基づいて、当該非終端ノードに関する簡略な言語スコア情報を作成し記憶装置に記憶させるプログラム部分と、
親ノードから前記簡略な言語スコア情報の要求を受けたことに応答して、前記記憶装置に記憶された前記簡略な言語スコア情報を前記親ノードに返すプログラム部分とを含む、言語スコアテーブル作成プログラム。
【請求項７】
前記所定の言語モデルはバイグラム言語モデルである、請求項６に記載の言語スコアテーブル作成プログラム。
【請求項８】
前記簡略な言語スコア情報は、各非終端ノードから子ノードをたどっていくことにより到達できる各終端ノードのユニグラムスコアの最大値である、請求項６又は請求項７のいずれかに記載の言語スコアテーブル作成プログラム。
【請求項９】
前記簡略な言語スコア情報は、各非終端ノードから子ノードをたどっていくことにより到達できる各終端ノードのクラスバイグラムスコアの最大値である、請求項６又は請求項７のいずれかに記載の言語スコアテーブル作成プログラム。
【請求項１０】
前記第２の言語スコアテーブルは、前記第１の言語スコアテーブルと同じエントリ数を有し、かつ前記第２の言語スコアテーブルのエントリの各々は、当該非終端ノードから子ノードをたどることにより到達できる終端ノードの前記第１の言語スコアテーブルの対応するエントリの最大値からなり、
前記非終端ノードの前記第２の言語スコアテーブルを作成する前記プログラム部分は、前記複数の非終端ノードの各々において、前記言語スコアテーブルを要求するプログラム部分が実行されることにより、当該非終端ノードの子ノードの各々から返される言語スコアテーブルの各エントリにつき、最大値をとって当該非終端ノードの前記第２の言語スコアテーブルを作成するプログラム部分を含む、請求項６〜請求項９のいずれかに記載の言語スコアテーブル作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大語彙音声認識等で用いられる木構造辞書の作成方法に関し、特に、消費メモリ量を削減するために、各ノードに付与される言語スコアに近似値を導入した木構造辞書、及びその作成方法に関する。
【背景技術】
【０００２】
大語彙音声認識システムでは、音声認識の過程又は認識後の検証の過程で確率的言語モデルを用いた言語スコアを算出する。確率的言語モデルとは、ある言語において、単語列又は文字列等に対して、それらが起こる確率で自然言語をモデル化したものである。言語スコアは、音声認識の結果得られた単語列等の尤度を、言語モデルに従って算出したものである。
【０００３】
Ｎ個の単語又は文字からなる単語列又は文字列が生成される確率によって自然言語をモデル化したものをＮグラムモデルと呼ぶ。特にＮ＝１，２，３の場合をそれぞれユニグラム、バイグラム、トライグラムと呼ぶ。パラメータ推定のための計算量及び精度の点から、バイグラム又はトライグラムが用いられる場合が多い。以下の説明は単語列についてのものとする。
【０００４】
認識候補の言語スコアを算出するため、予め算出した言語スコアを付した単語辞書を用意することが多い。また、認識候補の探索の効率を向上させるために、単語辞書を木構造ネットワークで表現することが一般的である。
【０００５】
図１を参照して、木構造辞書の概要を説明する。今、音響モデルをモノフォンとし、語彙として「赤い」「明るい」及び「青い」だけを考えるものとする。これらの語の音素列２０，２２，２４を図１の上段に示す。図から明らかなように、語頭の「ａ」の音３０は３つの単語で共有され、さらにその後の二つの音を含む「ａｋａ」の音素列３２は二つの単語により共有されている。
【０００６】
図１の下段に上記した単語群に対応する木構造辞書４０を示す。木構造辞書４０は、図に示すように、単語の先頭部分からの音素が共通する部分を共有ノードとし、単語が音素を共有しなくなった時点で別ノードに分岐していく。例えば前記した３つの単語は、音素「ａ」を共有しているので、木構造辞書４０の先頭ノード５０をこの３つの単語で共有する。しかし次の音素では二つのノード５２（ｋ）及び６２（ｏ）に分岐する。以下同様に木構造化されており、その結果ノード列５０，５２，５４，５６，５８，６０をたどることによって単語「あかるい」が、ノード列５０，５２，５４，６４をたどることによって単語「あかい」が、ノード列５０，６２，６６をたどることによって単語「あおい」が、それぞれ探索される。
【０００７】
以上が木構造辞書の基本的構造である。
【０００８】
木構造辞書の終端ノード（図１の場合のノード６０、６４及び６６）には、各単語のバイグラムの言語スコアテーブル（図１の例の場合、言語スコアテーブル７０，７２，７４）が付されている。このテーブルは、先行する可能性のある全ての単語に対し、その後に当該終端ノードの単語が続いて生起する確率である。従って、この言語スコアテーブルは言語モデル中の全単語の数だけのエントリを持つ。つまり、言語スコアテーブルの容量は、語彙数に依存する。
【０００９】
音声認識では、音声認識に同期して上記した木構造辞書の先頭ノードから終端ノードに向けて、仮説の展開を進める。終端ノードに到達した単語仮説は単語グラフに登録され、再び辞書の先頭ノードから後続の単語仮説の探索を開始する。
【００１０】
木構造辞書の探索において、全ての可能なパスを探索していくと、探索数が多くなるという問題がある。そのため、スコアに基づく枝刈りをする必要がある。そのために、終端ノード以外のノード（例えば図１に示す例ではノード５２，５４，５６，５８，６２）には、そのノードを共有している単語（終端ノード）の中の最大尤度を、全ての先行単語について計算した言語スコアテーブル（図１の場合のテーブル８０，８２，８４，８６，８８）を付す。この場合、例えば語彙数がＮであればこの言語スコアテーブルのエントリ数はＮ個になる。この様子を図３に言語スコアテーブル１２０として示す。
【００１１】
図３に示す言語スコアテーブル１２０は、例えばノードｓを複数の単語ｗiが共有している場合に、ノードｓに付与すべき言語スコアテーブルである。ノードｓを共有している単語の集合をＳで表せば、ｗi∈Ｓと書くことができる。図３に示すようにこの言語スコアテーブル１２０は、先行単語（単語ｗp1〜ｗpN）の全てに対して算出された、単語ｗi（ｗi∈Ｓ）の条件付生起確率ｐ（ｗi｜ｗpj）（ｗi∈Ｓ，ｊ＝１〜Ｎ）の中の最大値ｍａｘ  ｐ（ｗi｜ｗpj）（ｗi∈Ｓ）からなるＮ個のエントリを含む。
【００１２】
探索時には、各ノードで分岐する際に、分岐先のノードの言語スコアテーブルを参照して、ノードのスコアを更新し、そのスコアが所定の値より小さな枝についてはそれ以上探索しないことにより枝刈りを行なう。
【００１３】
言語スコアの最大値を求める処理を頻繁に繰返すと、膨大な計算量を必要とするため、予め全ての先行単語について事前計算してテーブル化しておく。これが上記した言語スコアテーブルである。そのテーブルサイズは上記したように語彙数Ｎに依存する。ところで、共有する単語セットが互いに異なるノードの場合、それらに付与すべき言語スコアテーブルの内容も互いに異なる。従って、共有する単語が異なるノードごとに、上記した言語スコアテーブルを準備する必要がある。
【００１４】
しかし、木構造辞書のノード数は膨大で、語彙数も多いため、上記したテーブル化を行なうためには大量のメモリが必要とされ、実質的に不可能といってもよいほどである。そこで、テーブル化のために必要となるメモリ容量を削減することが必要になる。そのための手法が後掲の非特許文献１に開示されている。
【００１５】
非特許文献１に開示の方法は、木構造辞書において、先頭ノードからの深さを判定基準とし、上記した言語スコアテーブルを近似している。具体的には、非特許文献１に記載の方法では、あるしきい値を定め、先頭ノードからの深さがこのしきい値以下の共有ノードでは、近似をせず上記した言語スコアテーブルを付与し、しきい値を超える深さのノードでは、上記した言語スコアテーブルではなく所定の近似を行なう。近似の方法として、Ｎ個のエントリを、そのノードを共有している終端ノードのユニグラムの最大値（スカラー値）で近似する方法、及び言語スコアテーブルを単語バイグラムではなくクラスバイグラムで作成することにより近似する方法が提案されている。
【００１６】
ユニグラムで言語スコアテーブルを近似する場合、Ｎ個のエントリを持つテーブルが一つのスカラー値に置換えられるので、記憶容量は大きく削減される。クラスバイグラムで近似する場合には、ユニグラムほどの記憶容量の削減はできないが、精度がそれほど低下しないという利点がある。
【００１７】
【非特許文献１】小窪他３名、「連続音声認識システムにおけるfactoringテーブルのコンパクト化と不要単語仮説のガーベッジコレクション」、電子情報通信学会論文誌Ｄ−ＩＩ  Ｖｏｌ．８６  ｎｏ．６，ｐｐ．７８７−７９５、２００３年
【発明の開示】
【発明が解決しようとする課題】
【００１８】
非特許文献１に開示の方法は、効率よく消費メモリを削減することができる。しかし、言語スコアを近似することによって探索エラーが生じた場合、そのエラーによる損失の量が予測できない。そのため、場合により認識性能の大きな低下要因となる可能性がある。
【００１９】
従って、本発明の目的は、木構造辞書のための言語スコアテーブルの容量を効率的に削減しながら、探索エラーの発生を抑えることができる木構造辞書を記録した記憶媒体、及び木構造辞書の言語スコアテーブル作成プログラムを提供することである。
【課題を解決するための手段】
【００２０】
本発明の第１の局面に係る記憶媒体は、子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとから構成される木構造辞書を記録した記憶媒体である。複数の非終端ノードの各々は、それぞれ所定の音素に対応している。木構造辞書は、木構造辞書の先頭ノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されている。複数の終端ノードにはそれぞれ、対応の単語の、所定の言語モデルによる第１の言語スコアテーブルが付されている。複数の非終端ノードにはそれぞれ、当該非終端ノードから子ノードをたどっていくことにより到達できる終端ノードの全ての言語スコアテーブルから、当該言語スコアテーブルの最大値をとることにより作成される第２の言語スコアテーブルが付されている。複数の非終端ノードの第２の言語スコアテーブルは、当該非終端ノードから子ノードをたどることにより到達できる終端ノードの数が所定のしきい値未満の場合には、当該第２の言語スコアテーブルより簡略な言語スコア情報に置換されている。
【００２１】
好ましくは、所定の言語モデルはバイグラム言語モデルである。
【００２２】
さらに好ましくは、簡略な言語スコア情報は、当該非終端ノードから到達できる終端ノード全てに関するユニグラムスコアの最大値である。ユニグラムスコアに代えて、クラスバイグラムスコアを使用してもよい。
【００２３】
第２の言語スコアテーブルは、第１の言語スコアテーブルと同じエントリ数を有し、かつ第２の言語スコアテーブルのエントリの各々は、当該非終端ノードから子ノードをたどることにより到達できる終端ノードの第１の言語スコアテーブルの対応するエントリの最大値からなるものでもよい。
【００２４】
本発明の第２の局面に係る言語スコアテーブル作成プログラムは、子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとから構成される木構造辞書において、複数の非終端ノードに付与される言語スコアテーブルを作成するための言語スコアテーブル作成プログラムである。複数の非終端ノードは、それぞれ所定の音素に対応している。木構造辞書は、木構造の先頭ノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されている。複数の終端ノードにはそれぞれ、対応の単語の、所定の言語モデルによる第１の言語スコアテーブルが付されている。この言語スコアテーブル作成プログラムは、複数の非終端ノードの各々について、当該非終端ノードから子ノードをたどっていくことにより到達できる終端ノードの数を算出するためのプログラム部分と、複数の非終端ノードの各々において、当該非終端ノードの親ノードから言語スコアテーブルの要求を受けたことに応答して、当該非終端ノードの子ノードの各々に対して当該子ノードの言語スコアテーブルを要求するプログラム部分と、複数の非終端ノードの各々において、言語スコアテーブルを要求するプログラム部分が実行されることにより、当該非終端ノードの子ノードの各々から返される言語スコアテーブルに基づき、当該非終端ノードの第２の言語スコアテーブルを作成するプログラム部分と、言語スコアテーブルを作成するプログラム部分により作成された第２の言語スコアテーブルを親ノードに返すプログラム部分と、当該非終端ノードから子ノードをたどることにより到達できる終端ノードの数が所定のしきい値に対して予め定める条件を充足しているか否かを判定するプログラム部分と、条件が充足されていると判定されたことに応答して、当該非終端ノードについて作成された第２の言語スコアテーブルを、当該非終端ノードの言語スコアテーブルとして記憶装置に記憶させるプログラム部分と、条件が充足されていないと判定されたことに応答して、当該非終端ノードの子ノードに対して、簡略な言語スコア情報を要求する処理を行なうプログラム部分と、簡略な言語スコア情報を要求する処理に応答して子ノードから返される簡略な言語スコア情報に基づいて、当該非終端ノードに関する簡略な言語スコア情報を作成し記憶装置に記憶させるプログラム部分と、親ノードから簡略な言語スコア情報の要求を受けたことに応答して、記憶装置に記憶された簡略な言語スコア情報を親ノードに返すプログラム部分とを含む。
【００２５】
好ましくは、所定の言語モデルはバイグラム言語モデルである。
【００２６】
さらに好ましくは。簡略な言語スコア情報は、各非終端ノードから子ノードをたどっていくことにより到達できる各終端ノードのユニグラムスコアの最大値である。ユニグラムスコアに代えて、クラスバイグラムスコアを使用してもよい。
【００２７】
また、第２の言語スコアテーブルは、第１の言語スコアテーブルと同じエントリ数を有し、かつ第２の言語スコアテーブルのエントリの各々は、当該非終端ノードから子ノードをたどることにより到達できる終端ノードの第１の言語スコアテーブルの対応するエントリの最大値からなるものでもよい。この場合、非終端ノードの第２の言語スコアテーブルを作成するプログラム部分は、複数の非終端ノードの各々において、言語スコアテーブルを要求するプログラム部分が実行されることにより、当該非終端ノードの子ノードの各々から返される言語スコアテーブルの各エントリにつき、最大値をとって当該非終端ノードの第２の言語スコアテーブルを作成するプログラム部分を含んでもよい。
【発明を実施するための最良の形態】
【００２８】
言語スコアを近似することによる探索エラーに起因する損失は、そのノードを共有する終端ノードの数が大きいほど大きい。そこで本実施の形態では、非特許文献１に開示された方法のように先頭ノードからの深さを基準として言語スコアテーブルを近似するのではなく、各ノードを共有している単語の数を基準として、言語スコアテーブルを近似する。この考え方につき図２を参照して説明する。
【００２９】
図２は、木構造辞書１００の例を示す。図２を参照して、この木構造辞書１００は、終端ノードＷ1〜Ｗ14と（以後、説明を簡単にするためにこれら終端ノードを「単語」と呼ぶ。）、これら単語によって共有される複数のノード（例えばノードＳA及びＳB）とを有する。ノードＳAは５つの単語Ｗ1〜Ｗ5によって共有されている。ノードＳBは２つの単語Ｗ13及びＷ14によって共有されている。この場合、ノードＳAとノードＳBとでは、ノードＳBが優先的に近似の対象とされる。
【００３０】
このように、ノードを共有する単語の数を基準として言語尤度を近似するか否かを定めることにより、探索エラーを抑えながら、木構造辞書のための言語スコアテーブルの容量を効率的に削減することができる。
【００３１】
この実施の形態に係る木構造辞書の作成システムは、コンピュータハードウェアと、そのコンピュータハードウェアにより実行されるプログラムと、コンピュータハードウェアに格納されるデータとにより実現される。図４はこのコンピュータシステム３３０の外観を示し、図５はコンピュータシステム３３０の内部構成を示す。
【００３２】
図４を参照して、このコンピュータシステム３３０は、ＦＤ（フレキシブルディスク）ドライブ３５２及びＣＤ−ＲＯＭ（コンパクトディスク読出専用メモリ）ドライブ３５０を有するコンピュータ３４０と、キーボード３４６と、マウス３４８と、モニタ３４２とを含む。
【００３３】
図５を参照して、コンピュータ３４０は、ＦＤドライブ３５２及びＣＤ−ＲＯＭドライブ３５０に加えて、ＣＰＵ（中央処理装置）３５６と、ＣＰＵ３５６、ＦＤドライブ３５２及びＣＤ−ＲＯＭドライブ３５０に接続されたバス３６６と、ブートアッププログラム等を記憶する読出専用メモリ（ＲＯＭ）３５８と、バス３６６に接続され、プログラム命令、システムプログラム、及び作業データ等を記憶するランダムアクセスメモリ（ＲＡＭ）３６０とを含む。コンピュータシステム３３０はさらに、プリンタ３４４を含んでいる。
【００３４】
ここでは示さないが、コンピュータ３４０はさらにローカルエリアネットワーク（ＬＡＮ）への接続を提供するネットワークアダプタボードを含んでもよい。
【００３５】
コンピュータシステム３３０に本実施の形態に係る木構造辞書の作成方法を実現させるためのコンピュータプログラムは、ＣＤ−ＲＯＭドライブ３５０又はＦＤドライブ３５２に挿入されるＣＤ−ＲＯＭ３６２又はＦＤ３６４に記憶され、さらにハードディスク３５４に転送される。又は、プログラムは図示しないネットワークを通じてコンピュータ３４０に送信されハードディスク３５４に記憶されてもよい。プログラムは実行の際にＲＡＭ３６０にロードされる。ＣＤ−ＲＯＭ３６２から、ＦＤ３６４から、又はネットワークを介して、直接にＲＡＭ３６０にプログラムをロードしてもよい。
【００３６】
このプログラムは、コンピュータ３４０にこの実施の形態に係る木構造辞書の作成方法を実現させるための複数の命令を含む。この方法を行なわせるのに必要な基本的機能のいくつかはコンピュータ３４０上で動作するオペレーティングシステム（ＯＳ）又はサードパーティのプログラム、若しくはコンピュータ３４０にインストールされる各種ツールキットのモジュールにより提供される。従って、このプログラムはこの実施の形態のシステム及び方法を実現するのに必要な機能全てを必ずしも含まなくてよい。このプログラムは、命令のうち、所望の結果が得られるように制御されたやり方で適切な機能又は「ツール」を呼出すことにより、上記した木構造辞書の作成方法を実現できる命令のみを含んでいればよい。コンピュータシステム３３０の動作は周知であるので、ここではその詳細は繰り返さない。
【００３７】
以下、木構造辞書自体は既に作成されたものとし、言語スコアテーブルを作成する処理を実現するためのコンピュータプログラムについて説明する。これらプログラムはいずれもノードクラスのメソッドとして用意されるものである。
【００３８】
必要なプログラムは、大きく分けて３つある。第１は、各ノードが自分の下にいくつの単語（終端ノード）が存在しているかを子ノードに問合わせるためのプログラムである。このプログラムは再帰的に実行される。第２は、各ノードが自ノードに格納すべき言語スコアテーブルを決定する処理である。この処理をするためには、子ノードの言語スコアテーブルを問合わせる必要がある。従ってこのプログラムも再帰的に実行される。第３は、第２のプログラムに関連して実行されるものであり、近似した後の言語スコアを返すよう親ノードから要求されたときに、自ノードに格納された近似後の言語スコアを親ノードに返す処理である。第３の処理については容易に実現できるので、以下第１及び第２の処理を実現するプログラム（メソッド）の制御構造についてのみ説明する。
【００３９】
図６は、各ノード（終端ノードを除く）において、自己の下にいくつの終端ノード（自ノードを共有している単語数）が存在しているかを子ノードに問合わせることにより調べるためのプログラムの制御構造を示す。図６を参照して、このプログラムは、自ノードの下の子ノードの全てに対して、その下の共有単語数を問合わせるステップ４００と、ステップ４００で自己の全ての子ノードから得られた共有単語数の合計を算出し、自己の属性として当該共有単語数を保存するステップ４０２とを含む。ステップ４０２の後、自己の下の共有単語数の合計を戻り値として処理を終了する。ステップ４００で各ノードに対して共有単語数を問合わせると、各子ノードでは、この図６に示すこの処理を実行する。すなわちこの処理は再帰的に実行される。
【００４０】
終端ノードの場合、自己の下には子ノードは存在しない。終端ノードが親ノードから共有単語数の問合せを受けた場合、単に「１」を返せばよい。従ってここでは終端ノードに関する処理については特に図示しない。
【００４１】
以上の処理によって、木構造辞書中の各ノードの属性値として、その下に存在する終端ノードの数が調べられる。
【００４２】
図７は、各ノード（終端ノードを除く）において、親ノードから自ノードの言語スコアテーブルの要求を受けたときに実行される処理のフローチャートである。まず、ステップ４４０で、自己の直下の子ノードの全てに対してそれぞれの言語スコアテーブルを問合わせる。ステップ４４０で各子ノードから返された言語スコアテーブルを用いて、ステップ４４２で自己のノードの言語スコアテーブルを作成する。
【００４３】
ここでは、図３に示されるように、先行する単語ごとに、自己の下の終端ノードの言語スコアの最大値を求める。従って、先行する単語一つについて言語スコアテーブルのエントリが一つ作成される。語彙数がＮであれば、言語スコアテーブルにはＮ個の言語スコアが格納される。
【００４４】
続いてステップ４４４で、図６に示す処理により算出した自己の下の共有単語数が、所定のしきい値以上か否かを判定する。しきい値以上であればステップ４４６に進み、ステップ４４２で作成された言語スコアテーブルをそのまま自己の言語スコアテーブルとして保存する。共有単語数がしきい値未満であれば、ステップ４４８で、近似したスコア（スカラー）を自己の子ノードの全てに対して要求する。ステップ４５０では、ステップ４４８で全ての子ノードから得られた近似スコアの中の最大値を、自己の近似スコアとして格納する。
【００４５】
ステップ４５０の後、ステップ４４２で作成された言語スコアテーブルを戻り値としてこの処理を終了する。
【００４６】
本実施の形態では、近似スコアとしてユニグラムを使用する。各終端ノードには、上記したバイグラムの言語スコアテーブルだけでなくユニグラムのスコア（スカラー）も格納されている。図７に示す処理によって最終的に各終端ノードに対して近似スコアの要求が出されるので、各終端ノードは自己のユニグラムスコアを親ノードに対して返せばよい。
【００４７】
また、ステップ４４８で近似したスコアの要求を受けたノード（終端ノード以外）では、それ以前に図７の処理を完了しその中でステップ４５０によって既に近似したスコアを算出し保存済みである場合には、保存済みの近似スコアを親ノードに対して返す。近似値がない場合には、ステップ４４８及びステップ４５０の処理を行なって近似したスコアを算出し保存した上、親ノードに対して返す。
【００４８】
以上のような制御構造を有するプログラムによって、木構造辞書の各ノードについて、言語スコアテーブル又は近似した言語スコア（ユニグラム）を付与することができる。
【００４９】
上記した実施の形態に係る木構造作成システムは以下のように動作する。まず、従来の技術におけるのと同様に、木構造が作成される。各終端ノードには、予め算出されている言語スコアテーブルが付与される。
【００５０】
最初に、各木構造の先頭ノードに対してその下の共有単語数を問合わせる。先頭ノードでは、図６に示す処理が実行される。すなわち先頭ノードは、この問合せを受けて自己の直下の子ノードの各々に対し、それらの下の共有単語数を問合わせる。問合せを受けた子ノードの各々では、さらにそれらの直下の子ノードの共有単語数を問合わせる。このように、この問合せは各ノードによって再帰的に実行され、最終的に各終端ノードに対しこの要求が与えられる。各終端ノードは、この要求に応答して「１」を返す。この返答を受けた親ノードは、子ノードから返された値の合計を算出して格納し、さらに親ノードに対して返す。このようにして、最も下のノードから順番に上層のノードに向けて、自己の下の共有単語数を返していき、最終的に先頭ノードにその下の共有単語数の合計が戻される。この過程で各ノードには、図６のステップ４０２の処理により、自己の下の共有単語数が記憶される。
【００５１】
次に、先頭ノードに対して言語スコアテーブルを問合わせる。先頭ノードでは、図７に示す処理が実行される。すなわち先頭ノードは、この問合せを受けて自己の直下の子ノードの各々に対し、言語スコアテーブルを要求する（図７のステップ４４０）。それら子ノードはさらに、自己の直下の子ノードの各々に対し、言語スコアテーブルを要求する。こうした処理が繰り返され、最終的に終端ノードにこの要求が与えられる。
【００５２】
この要求を受けた終端ノードの各々は、自己が保持している言語スコアテーブルを親ノードに返す。全ての子ノードから言語スコアテーブルを受けた親ノードは、図７のステップ４４２に示されるように、得られた言語スコアテーブルに基づいて自己の言語スコアテーブルを作成する。この言語スコアテーブルは、図３に示すように、先行単語ごとに、子ノードから得られた言語スコアの最大値をとったものである。
【００５３】
さらに親ノードは、自己の下の共有単語数がしきい値以上か否かを判定する（ステップ４４４）。この判定は、図６のステップ４０２で自己の下の共有単語数が既に算出されているので可能となる。もし共有単語数がしきい値以上なら、ステップ４４２で作成されたテーブルを自己の言語スコアテーブルとして保存し処理を終了する。さもなければ、ステップ４４８で、自己の直下の子ノードの全てに対し、近似したスコアを要求する。今、直下の子ノードが終端ノードであれば、その終端ノードはその終端ノードに対応する単語のユニグラムを親ノードに返す。全ての子ノードからユニグラムを受けた親ノードは、受けたユニグラムの中の最大値を自己の近似スコアとして格納し、処理を終了する。
【００５４】
図７のステップ４４４で共有単語数がしきい値未満と判定される場合、さらに下位のノードにおいても、同様の判定が行なわれる。従って、あるノードでステップ４４８の処理が実行されるときには、その前に既にステップ４４０で子ノードの全てに対し言語スコアテーブルの問合せが行なわれた時点において、子ノードではステップ４４８及び４５０の処理が完了している。従って、あるノードがステップ４４８の処理を実行するときには、その直下のノードからすぐに近似したスコアが返され、ステップ４５０の処理を実行できる。
【００５５】
このようにして、先頭ノードを始点として再帰的に各ノードの言語スコアテーブルの作成及び近似が行なわれる。図７のステップ４４４以下の処理により、共有単語数がしきい値以上のノードには近似しない言語スコアテーブルが保持され、それ以外のノードでは近似したスコアが保持される。従って、木構造辞書の容量が削減され、音声認識に必要なメモリ容量も削減できる。また、言語スコアテーブルの近似は、ノードの共有単語数がしきい値未満のときに限定される。そのため、近似による探索エラーの影響は限定された範囲にとどまり、音声認識の精度が予期せず悪化するおそれは少ない。
【００５６】
例えば、図２に示す例でいえば、しきい値＝３〜５のいずれの場合にも、ノードＳAについては言語スコアテーブルの近似は行なわれず、ノードＳBについてのみ行なわれる
なお、上記した実施の形態では、近似スコアとしてユニグラムを用いた。しかし本発明はそのような実施の形態に限定されるわけではない。例えば、非特許文献１でも提案されているとおり、近似としてクラスバイグラムを使用するようにしてもよい。
【００５７】
また、上記した実施の形態では、言語スコアテーブルをバイグラムの言語スコアによるものとした。しかし、本実施の形態は原理的にはバイグラムを用いたものに限定されない。例えば言語スコアテーブルをトライグラムからなるテーブルとし、バイグラムの言語スコアテーブル又はユニグラムで言語スコアテーブルを近似することも考えられる。
【００５８】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。
【図面の簡単な説明】
【００５９】
【図１】木構造辞書の概念を説明するための模式図である。
【図２】木構造辞書における言語スコアテーブルの近似を説明するための図である。
【図３】バイグラムによる言語スコアテーブルの構成を模式的に示す図である。
【図４】コンピュータの外観図である。
【図５】図４に示すコンピュータのブロック図である。
【図６】ノード下の共有単語数に関する問合せを受けた場合に、各ノードで実行されるプログラム（メソッド）の制御構造を示すフローチャートである。
【図７】言語スコアテーブルに関する問合せを親ノードから受けたときに、各ノードで実行されるプログラム（メソッド）の制御構造を示すフローチャートである。
【符号の説明】
【００６０】
４０，１００  木構造辞書、５０，５２，５４，５６，５８，６２，ＳA，ＳB  ノード、６０，６４，６６，Ｗ1〜Ｗ14  終端ノード、７０，７２，７４，８０，８２，８４，８６，８８，１２０  言語スコアテーブル
【図１】
2005265967.tif 000003
【図２】
2005265967.tif 000004
【図３】
2005265967.tif 000005
【図４】
2005265967.tif 000006
【図５】
2005265967.tif 000007
【図６】
2005265967.tif 000008
【図７】
2005265967.tif 000009