(57)【特許請求の範囲】
【請求項１】
各々が子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとを各々含む、既知語の木構造辞書及び未知語の木構造辞書を記録したコンピュータ読取可能な記憶媒体であって、
前記既知語の木構造辞書及び未知語の木構造辞書の各々は、いずれも同じ辞書探索プログラムにより探索可能なように構成された同じ辞書構造を持ち、
前記既知語の木構造辞書及び未知語の木構造辞書の各々に含まれる前記複数の非終端ノードは、それぞれ所定の音素に対応しており、
前記既知語の木構造辞書及び未知語の木構造辞書の各々において、ルートノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されており、
前記既知語の木構造辞書内の前記複数の終端ノードの各々には、前記複数の終端ノードにそれぞれ対応する単語の生起確率を示す確率テーブルが関連付けられており、
前記未知語の木構造辞書内の前記複数の非終端ノード及び前記複数の終端ノードの各々には、前記未知語の木構造辞書内の前記複数の終端ノードに対応する単語以外の、前記既知語の木構造辞書内に存在する予め定める単語の生起確率を示す確率テーブルが関連付けられている、コンピュータ読取可能な記憶媒体。
【請求項２】
ある集合に属する単語である既知語の各々についての生起確率を示す所定の統計的言語モデルに基づいて、前記ある集合に含まれない単語である未知語の生起確率を予測するために参照される、未知語の木構造辞書を作成するための木構造辞書作成装置であって、
前記既知語は複数のクラスに分類されており、
前記未知語の木構造辞書と同じ辞書探索プログラムにより探索可能なように、前記未知語の木構造辞書と同じ辞書構造を持つ木構造辞書であって、既知語の生起確率を予測するために参照される既知語の木構造辞書を記憶するための既知語辞書記憶手段と、
前記未知語と、当該未知語の属するクラスとを対にした未知語情報の入力を受けるための未知語情報入力手段と、
前記複数のクラスのうちのあるクラスの指定を受けるためのクラス指定手段と、
前記未知語情報入力手段により入力された未知語情報から、前記クラス指定手段により指定されたクラスと対になった未知語を抽出し、前記未知語の木構造辞書を作成するための木構造辞書作成手段とを含み、
前記既知語の木構造辞書及び前記未知語の木構造辞書の各々は、各々が子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとから構成され、
前記複数の非終端ノードは、それぞれ所定の音素に対応しており、
前記既知語の木構造辞書と前記未知語の木構造辞書の各々において、ルートノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されており、
前記木構造辞書作成装置はさらに、
前記未知語の木構造辞書の前記複数の非終端ノード及び前記複数の終端ノードの各々に、前記所定の統計的言語モデルから得られる、前記クラス指定手段により指定されたクラスに分類されている単語であって前記既知語の木構造辞書に登録されている同一の単語の生起確率を示すファクタリングテーブルを関連付けるためのファクタリングテーブル付与手段を含む、木構造辞書作成装置。
【請求項３】
コンピュータにより実行されると、当該コンピュータを、ある集合に属する単語である既知語の各々についての生起確率を示す所定の統計的言語モデルに基づいて、前記ある集合に含まれない単語である未知語の生起確率を予測するために参照される、未知語の木構造辞書を作成するように機能させるための木構造辞書作成プログラムであって、
前記コンピュータは、前記未知語の木構造辞書と同じ辞書探索プログラムにより探索可能なように、前記未知語の木構造辞書と同じ辞書構造を持つ木構造辞書であって、前記既知語の生起確率を予測するために参照される既知語の木構造辞書を記憶するための既知語辞書記憶手段に接続されて用いられ、
前記既知語は複数のクラスに分類されており、前記プログラムは、前記コンピュータを、
前記未知語と、当該未知語の属するクラスとを対にした未知語情報の入力を受けるための未知語情報入力手段と、
前記複数のクラスのうちのあるクラスの指定を受けるためのクラス指定手段と、
前記未知語情報入力手段により入力された未知語情報から、前記クラス指定手段により指定されたクラスと対になった未知語を抽出し、前記未知語の木構造辞書を作成するための木構造辞書作成手段として機能させ、
前記既知語の木構造辞書及び前記未知語の木構造辞書の各々は、各々が子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとから構成され、
前記複数の非終端ノードは、それぞれ所定の音素に対応しており、
前記既知語の木構造辞書と前記未知語の木構造辞書の各々において、ルートノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されており、
前記木構造辞書作成プログラムはさらに、前記コンピュータを、
前記未知語の木構造辞書の前記複数の非終端ノード及び前記複数の終端ノードの各々に、前記所定の統計的言語モデルから得られる、前記クラス指定手段により指定されたクラスに分類されている単語であって前記既知語の木構造辞書に登録されている同一の単語の生起確率を示すファクタリングテーブルを関連付けるためのファクタリングテーブル付与手段として機能させる、木構造辞書作成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、大語彙連続音声認識等で用いられる木構造辞書の作成方法に関し、特に、認識辞書に登録されていない未知語に関する木構造辞書を記録した記憶媒体、その作成装置、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
大語彙連続音声認識システムでは、音声認識の過程又は認識後の検証の過程で確率的言語モデルを用いた言語スコアを算出する。確率的言語モデルとは、ある言語において、単語列又は文字列等に対して、それらが起こる確率で自然言語をモデル化したものである。言語スコアは、音声認識の結果得られた単語列等の尤度を、言語モデルに従って算出したものである。
【０００３】
Ｎ個の単語又は文字からなる単語列又は文字列が生成される確率によって自然言語をモデル化したものをＮグラム言語モデルと呼ぶ。特にＮ＝１，２，３の場合をそれぞれユニグラム、バイグラム、トライグラムと呼ぶ。パラメータ推定のための計算量及び精度の点から、バイグラム又はトライグラムが用いられる場合が多い。以下の説明は単語列についてのものとする。
【０００４】
認識候補の言語スコアを算出するため、予め算出した言語スコアを付した先読み単語辞書を用意することが多い。また、認識候補の探索の効率を向上させるために、単語辞書を木構造ネットワークで表現することが一般的である。
【０００５】
図１を参照して、木構造辞書の概要を説明する。今、音響モデルをモノフォンとし、語彙として「赤い」、「明るい」、「青い」、「売買」、「媒質」、及び「梅雨」を考えるものとする。これらの語の音素列２０，２２，２４，２６，２８，３４を図１の上段に示す。図から明らかなように、音素列２０、２２、及び２４の語頭の「ａ」の音３０は、「赤い」、「明るい」、及び「青い」の３つの単語で共有されている。さらにその後の２つの音を含む「ａｋａ」の音素列３２は、「赤い」及び「明るい」２つの単語により共有されている。同様にして、音素列２６、２８、及び３４の語頭の「ｂ」の音３８は、「売買」、「媒質」、及び「梅雨」の３つの単語で共有されている。さらにその後の２つの音を含む「ｂａｉ」の音素列３６も、「売買」、「媒質」、及び「梅雨」の３つの単語により共有されている。
【０００６】
図１の下段に、上記した単語群に対応する木構造辞書４０の概念的構造を示す。木構造辞書４０は、図に示すように、ルートノード８０と、ルートノード８０から分岐し、かつ各単語の先頭部分の音素に対応するノード５０（ａ）、ノード８２（ｂ）、及びノード１１０（ｔ）等と、さらに、これらノードから順次分岐する複数の非終端ノード５０〜５８、６２、８２〜９０、９４〜９８と、最終的な単語に対応する終端ノード６０、６４、６６、９２、１００、１０２等とを含む。この例では、終端ノード６０，６４，６６，９２，１００，及び１０２は、それぞれ単語「明るい」、「赤い」、「青い」、「売買」、「媒質」、及び「梅雨」に対応している。
【０００７】
例えば、前記した「赤い」、「明るい」、及び「青い」の３つの単語は、音素「ａ」を共有しているので、木構造辞書４０のノード５０をこの３つの単語で共有する。しかし、次の音素では２つのノード５２（ｋ）及び６２（ｏ）に分岐する。以下同様に木構造化されており、その結果ノード列５０，５２，５４，５６，５８，６０をたどることによって単語「明るい」が、ノード列５０，５２，５４，６４をたどることによって単語「赤い」が、ノード列５０，６２，６６をたどることによって単語「青い」が、それぞれ探索される。
【０００８】
前記した「売買」、「媒質」、及び「梅雨」の３つの単語は、音素「ｂ」を共有しているので、木構造辞書４０のノード８２をこの３つの単語で共有する。以下同様に木構造化されており、ノード列８２，８４，８６，８８，９０，９２をたどることによって単語「売買」が、ノード列８２，８４，８６，９４，９６，９８，１００をたどることによって単語「媒質」が、ノード列８２，８４，８６，１０２をたどることによって単語「梅雨」が、それぞれ探索される。
【０００９】
以上が木構造辞書の基本的構造である。
【００１０】
木構造辞書の終端ノード（図１の場合のノード６０、６４、６６、９２、１００、及び１０２）には、通常、各単語のＮグラムの確率テーブル（図１の例の場合、確率テーブル７０、７２、７４、１０４、１０６、及び１０８）、又はそうしたテーブルへのポインタが付されている。このテーブルは、木構造辞書に登録されている任意の（Ｎ−１）個の単語の組合せの各々に対し、当該単語の組合せが先行しているときに、当該終端ノードの単語が続いて生起するＮグラム確率の集合である。したがって、この確率テーブルは、言語モデル中の全単語の任意の（Ｎ−１）個の組合せの数だけのエントリを持つ。つまり、確率テーブルの容量は、語彙数に依存する。
【００１１】
音声認識では、音声認識に同期して上記した木構造辞書の先頭ノードから終端ノードに向けて、仮説の展開を進める。終端ノードに到達した単語仮説は単語グラフと呼ばれる、仮説の集合をグラフ表現したものに登録され、再び辞書の先頭ノードから後続の単語仮説の探索を開始する。
【００１２】
Ｎグラム言語モデルを用いた大語彙連続音声認識においては、単語辞書に登録されていない単語（以下、未知語と呼ぶ）は認識できないという重要な課題がある。音声認識の対象とする文章から必要な未知語の集合を何らかの方法で事前に収集することができたときに、その単語を高精度に認識するためには、どのようにしたらよいかが考えられてきた。
【００１３】
従来の手法では、未知語に関するＮグラム確率を計算するために、既存のＮグラム言語モデルを変更していた。
【００１４】
例えば、未知語に対して、Ｎグラム言語モデルに必要なＮグラム確率及びバックオフ確率を推定し、Ｎグラム言語モデルに追加登録する方法が考えられている（非特許文献１）。また、タスク依存の正規文法を作成して、未知語を含む文をランダムに生成し、Ｎグラム言語モデルを再学習する方法が考えられている（非特許文献２）。
【非特許文献１】松井淳、小林彰夫、今井亨、及び安藤彰男、「ニュース音声認識のための未知語登録法の検討」、音講論、１９９９年９月、２‐１‐７
【非特許文献２】Ｌ．ガルシュ（Ｌ．Ｇａｌｅｓｃｕ）、Ｅ．リンガー（Ｅ．Ｒｉｎｇｇｅｒ）、及びＪ．アレン（Ｊ．Ａｌｌｅｎ）、「新しいタスク領域のための高感度言語モデルの開発」（“Ｒａｐｉｄ  Ｌａｎｇｕａｇｅ  Ｍｏｄｅｌ  Ｄｅｖｅｌｏｐｍｅｎｔ  ｆｏｒ  Ｎｅｗ  Ｔａｓｋ  Ｄｏｍａｉｎｓ”）、言語の資源及び評価の国際会議予稿集（Ｉｎ  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｌａｎｇｕａｇｅ  Ｒｅｓｏｕｒｃｅｓ  ａｎｄ  Ｅｖａｌｕａｔｉｏｎ）、１９９８年、ｐ．８０７‐８１２
【発明の開示】
【発明が解決しようとする課題】
【００１５】
未知語を追加して既存のＮグラム言語モデルを変更する場合、未知語に対していくらかのＮグラム確率を割当てることになる。その分、既存の単語に割当てられる確率を小さくする必要がある。また、未知語を含む文を学習データとしてランダムに作成した場合、各単語のＮグラム確率は、学習データ中の単語の相対頻度から求められる。したがって、未知語について作成した分の学習データが小さく、既存単語の学習データのサイズがはるかに大きい場合、既知単語のためのＮグラム確率と比較すると、未知語のためのＮグラム確率ははるかに小さくなってしまう。この確率を大きくしようとしても、学習データそのものがランダムに作成されたものであるため、学習結果の信頼性は低くなる。未知語のためのＮグラム確率が小さい場合には、未知語を認識することは困難であり、未知語のためのＮグラム確率を大きくした場合には、認識結果の信頼性が低下するという問題がある。
【００１６】
したがって、本発明の目的は、言語モデルを変更せずに、大語彙連続音声認識において未知語をある信頼度をもって認識できるようにするための木構造辞書を記憶した記憶媒体、その作成装置、及びその作成プログラムを提供することである。
【００１７】
本発明の他の目的は、メモリの使用量を少なくし、かつ言語モデルを変更せずに、大語彙連続音声認識において未知語をある信頼度をもって認識できるようにするための木構造辞書の記憶媒体、その作成装置、及びその作成プログラムを提供することである。
【課題を解決するための手段】
【００１８】
本発明の第１の局面に係る記憶媒体は、各々が子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとを含む木構造辞書を記録した記憶媒体である。木構造辞書に含まれる複数の非終端ノードは、それぞれ所定の音素に対応しており、木構造辞書において、ルートノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されている。木構造辞書内の複数の非終端ノード及び複数の終端ノードの各々には、複数の終端ノードに対応する単語以外の、予め定める単語の生起確率を示す確率テーブルが関連付けられている。
【００１９】
当該木構造辞書の終端ノードの各々には、予め定める単語の生起確率を示す確率テーブルが関連付けられている。したがって、当該木構造辞書の各終端ノードに対応する単語が未知語であり、未知語を含む音声を音声認識するときに、当該記憶媒体を使用すれば、既存の言語モデルを変更せずに、予め定める単語の生起確率と同じ確率で未知語を認識することができる。その結果、言語モデルを変更せずに、大語彙連続音声認識において未知語をある信頼度をもって認識できるようにするための木構造辞書を記憶した記憶媒体を提供することができる。
【００２０】
好ましくは、確率テーブルは、予め定める単語が、複数の単語の各々の後に生起する確率を記録したバイグラム確率テーブルである。
【００２１】
確率テーブルは、バイグラム確率テーブルなので、当該複数の単語が既知単語である場合、バイグラム確率テーブルには、既知単語の数の分のバイグラム確率を記憶させれば良い。確率テーブルがＮグラム確率テーブルである場合、予め定める単語が、複数の単語の任意の（Ｎ−１）個の組合せの各々の後に生起するＮグラム確率を記憶しなければならない。Ｎが３以上の整数であるときのＮグラム確率テーブルと比較すると、バイグラム確率テーブルでは、メモリの使用量を少なくすることができる。その結果、メモリの使用量を少なくし、言語モデルを変更せずに、大語彙連続音声認識において未知語をある信頼度をもって認識できるようにするための木構造辞書を記憶した記憶媒体を提供することができる。
【００２２】
本発明の第２の局面に係る木構造辞書作成装置は、ある集合に属する単語の各々についての生起確率を示す所定の統計的言語モデルに基づいて、ある集合に含まれない単語である未知語の生起確率を予測するために参照される木構造辞書を作成するための木構造辞書作成装置である。ある集合に属する単語は複数のクラスに分類されている。この木構造辞書作成装置は、未知語と、当該未知語の属するクラスとを対にした未知語情報の入力を受けるための未知語情報入力手段と、複数のクラスのうちのあるクラスの指定を受けるためのクラス指定手段と、未知語情報入力手段から、クラス指定手段により指定されたクラスと対になった未知語を抽出し、木構造辞書を作成するための木構造辞書作成手段とを含む。木構造辞書は、各々が子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとから構成され、複数の非終端ノードは、それぞれ所定の音素に対応しており、木構造辞書において、ルートノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されている。木構造辞書作成装置はさらに、木構造辞書の複数の非終端ノード及び複数の終端ノードの各々に、所定の統計的言語モデルから得られる、クラス指定手段により指定されたクラスに分類されている同一の単語の生起確率を示すファクタリングテーブルを関連付けるためのファクタリングテーブル付与手段を含む。
【００２３】
木構造辞書作成手段は、クラス指定手段によって指定されたクラスの未知語の木構造辞書を作成する。したがって、未知語を含む音声を、ある音声認識装置が音声認識するとき、その音声にどのクラスの未知語が含まれているかをユーザが予め知っていれば、必要なクラスの木構造辞書をユーザが選択して、選択されたクラスの木構造辞書のみを音声認識装置に探索させれば良い。全てのクラスの未知語を探索する必要がないので、処理時間を軽減することができる。また、ファクタリングテーブル付与手段は、各クラスの未知語の木構造辞書に、ファクタリングテーブルを関連付ける。したがって、あるクラスの未知語を含む音声を音声認識するとき、既存の言語モデルを変更せずに、当該クラスに分類されている同一の単語の生起確率と同じ確率で、未知語を認識することができる。その結果、言語モデルを変更せずに、大語彙連続音声認識において未知語をある信頼度をもって認識できるようにするための木構造辞書を記憶した木構造辞書作成装置を提供することができる。
【００２４】
本発明の第３の局面に係る木構造辞書作成プログラムは、ある集合に属する単語の各々についての生起確率を示す所定の統計的言語モデルに基づいて、ある集合に含まれない単語である未知語の生起確率を予測するために参照される木構造辞書を作成するための木構造辞書作成プログラムである。ある集合に属する単語は複数のクラスに分類されている。この木構造辞書作成プログラムは、未知語と、当該未知語の属するクラスとを対にした未知語情報の入力を受けるための未知語情報入力手段と、複数のクラスのうちのあるクラスの指定を受けるためのクラス指定手段と、未知語情報入力手段から、クラス指定手段により指定されたクラスと対になった未知語を抽出し、木構造辞書を作成するための木構造辞書作成手段とを含む。木構造辞書は、各々が子ノードを持つ複数の非終端ノードと、子ノードを持たずにそれぞれ単語に対応する複数の終端ノードとから構成され、複数の非終端ノードは、それぞれ所定の音素に対応しており、木構造辞書において、ルートノードから子ノードをたどっていくことにより、各非終端ノードを経由して、当該非終端ノードに対応する音素が自身の音素列の一部となっている単語に対応する終端ノードの全てに到達可能に構成されている。この木構造辞書作成プログラムはさらに、木構造辞書の複数の非終端ノード及び複数の終端ノードの各々に、所定の統計的言語モデルから得られる、クラス指定手段により指定されたクラスに分類されている同一の単語の生起確率を示すファクタリングテーブルを関連付けるためのファクタリングテーブル付与手段を含む。
【発明を実施するための最良の形態】
【００２５】
以下、本発明の実施の形態について、添付図面に基づき詳細に説明する。なお、以下の実施の形態の説明では、同一の部品には同一の参照番号を付してある。それらの機能及び名称も同一である。したがって、それらについての詳細な説明は繰返さない。
【００２６】
［第１の実施の形態］
図１において説明した木構造辞書に登録されている既知単語は、品詞属性によって予め複数のクラスに分類されている。例えば、図１において、「明るい」は明度を示す形容詞なので、「明るい」は「明度を示す形容詞」というクラスに属する。「赤い」及び「青い」は、色相を示す形容詞なので、「色相を示す形容詞」というクラスに属する。「売買」、「媒質」、及び「梅雨」は名詞なので、「名詞」というクラスに属する。本実施の形態に係る音声認識装置１４０を利用するユーザは、クラスを自由に決めることが可能であり、どの単語をどのクラスに属するかも自由に決めることが可能である。
【００２７】
＜機能的構成＞
図２は、本実施の形態に係る音声認識装置１４０の機能ブロック図である。図２を参照して、音声認識装置１４０は、予め用意されている既知単語のための木構造辞書を記憶するための単語辞書１５０と、既知単語のユニグラム確率及びバイグラム確率を記憶するための言語モデル１５２と、所定の言語における音声から得られた音響的特徴量の系列が、ある音素から得られた尤度を計算するための統計的確率モデルである音響モデル１５４と、クラス毎に未知語のための木構造辞書を記憶するための未知語を含む木構造辞書１５６と、クラスと未知語を含む木構造辞書１５６に含まれる木構造辞書との間のマッピングテーブルを記憶するためのクラス‐木構造辞書マッピングテーブル１５８とを含む。
【００２８】
音声認識装置１４０はさらに、未知語とその属するクラスとの組からなるテキストである未知語に関する情報１６２と、クラスと、当該クラスに属する未知語に対して割り当てられるＮグラム確率を与える既知単語（この単語を、これ以降、そのクラスの「代表単語」と呼ぶ。）との組からなるテキストである代表単語に関する情報１７６とを受けて、単語辞書１５０及び言語モデル１５２を用いて、未知語を含む木構造辞書１５６と、クラス‐木構造辞書マッピングテーブル１５８とを作成したり、未知語を含む木構造辞書１５６に登録されていない未知語とそのクラスとの組である追加単語に関する情報１６８を入力として、未知語を含む木構造辞書１５６に新たな未知語を追加したりすることにより、木構造辞書１５６を管理するための未知語辞書管理部１６０を含む。
【００２９】
音声認識装置１４０はさらに、複数個ある未知語の木構造辞書のうち、音声認識に使用する木構造辞書のクラス名を列挙した使用クラスの情報１７２を入力として、単語辞書１５０、言語モデル１５２、未知語を含む木構造辞書１５６、及びクラス‐木構造辞書マッピングテーブル１５８を用いて音声データ１７４を音声認識し、音声認識されたテキスト１７８を出力するための音声認識部１７０を含む。
【００３０】
（未知語辞書管理部１６０）
未知語辞書管理部１６０は、未知語に関する情報１６２、及び未知語の属する各クラスの代表単語に関する情報１７６を入力として、単語辞書１５０及び言語モデル１５２を用いて、未知語を含む木構造辞書１５６及びクラス‐木構造辞書マッピングテーブル１５８を作成するための未知語辞書作成部１６４と、追加単語に関する情報１６８を入力として、クラス‐木構造辞書マッピングテーブル１５８を用いて未知語を含む木構造辞書１５６に新規の未知語を登録して、更新するためのメンテナンス部１６６とを含む。
【００３１】
（先読み単語辞書１５０及び言語モデル１５２）
図３は、図２に示す先読み単語辞書１５０及び言語モデル１５２の詳細について説明するための図である。図３を参照して、言語モデル１５２は、既知単語のユニグラム確率を記憶するためのユニグラムテーブル２２４と、既知単語のバイグラム確率を記憶し、先読み単語辞書１５０の全ての既知単語に対して関連付けられているバイグラムテーブル２２６とを含む。
【００３２】
単語辞書１５０は、ルートノード２００と、ルートノード２００から順次分岐する複数の非終端ノード２０２〜２０８等と、ルートノード２００から非終端ノード列をたどることにより到達可能な、既知単語に対応する終端ノード２１０〜２１６等と、既知単語のバイグラムの全ての組合せについて算出されたバイグラム確率の中の最大値を記憶するための、既知単語の各々について、当該既知単語が先行単語であるときに、ルートノード２００との距離がｋ（ｋは１、２、…、ｍ−１の任意の数）である非終端ノードの各々につき、その非終端ノードをルートとするサブツリーに属する終端ノードの単語が続いて生起するバイグラム確率の最大値を記憶するための、その非終端ノードに関連付けられているファクタリングテーブル２２２等と、ルートノード２００との距離が（ｋ＋１）以上である非終端ノードの各々について、当該非終端ノードをルートとするサブツリーに属する終端ノードの既知単語が生起するユニグラム確率の最大値を記憶する領域２２８等とを含む。なお、ここでルートノード２００は、対応する音素がないダミーノードである。
【００３３】
例えば、図３に示す例では、単語辞書１５０は、ノード２００からノード列２０２、２０８、及び２１０をたどることによって単語「亜鉛」が、ノード２０２からノード２１２までのノード列をたどることによって単語「赤い」が、ノード２０４からノード２１４までのノード列をたどることによって単語「金閣寺」が、ノード２０６からノード２１６までのノード列をたどることによって単語「二条城」が、それぞれ探索される構造となっている。
【００３４】
（言語モデル）
以下、言語モデルの構造について説明する。以下の説明では、全ての既知単語をｗ１、ｗ２、…、ｗｍで表わす。
【００３５】
図４は、図３に示すユニグラムテーブル２２４の詳細な図である。図４を参照して、ユニグラムテーブル２２４には、既知単語ｗ１、ｗ２、…、ｗｍの各々に対して、その単語が生起するユニグラム確率Ｐ（ｗ１）、Ｐ（ｗ２）、…、Ｐ（ｗｍ）が記憶されている。
【００３６】
図５は、図３に示すバイグラムテーブル２２６の詳細な図である。図５を参照して、バイグラムテーブル２２６は、全ての既知単語の各々に対して、当該既知単語が先行単語であるときに単語ｗ１が続いて生起するバイグラム確率を記憶するテーブル２５０と、同様にして、ｗ２が生起するバイグラム確率を記憶するテーブル２５２と、ｗｍが生起するバイグラム確率を記憶するテーブル２５４等とを含む。
【００３７】
テーブル２５０の１行目には、先行単語がｗ１であるときにｗ１が続いて生起するバイグラム確率Ｐ（ｗ１｜ｗ１）が記憶される。同様にして、２行目には、先行単語がｗ２であるときにｗ１が続いて生起するバイグラム確率Ｐ（ｗ１｜ｗ２）が、ｍ行目には、先行単語がｗｍであるときにｗ１が続いて生起するバイグラム確率Ｐ（ｗ１｜ｗｍ）が記憶される。その他の行、及びその他のテーブルについても同様である。
【００３８】
図６は、図３に示す終端ノードに関連して記憶されるものについて説明するための図である。図６を参照して、単語辞書１５０の終端ノードの各々には、単語Ｉｎｄｅｘ、クラス、単語、及び発音が記憶される。単語Ｉｎｄｅｘは、当該単語に対応する確率を言語モデルから得るための、言語モデル中のエントリを一意に識別するためのものである。単語辞書１５０においては、単語Ｉｎｄｅｘにはその単語そのものが記憶される。図３に示すノード２１０の単語「亜鉛」の単語Ｉｎｄｅｘ、クラス、及び発音は、それぞれ「亜鉛」、「化学物質」、及び「アエン」である。同様にして、ノード２１２の単語「赤い」の単語Ｉｎｄｅｘ、クラス、及び発音は、それぞれ、「赤い」、「形容詞」、及び「アカイ」であり、ノード２１４の単語「金閣寺」の単語Ｉｎｄｅｘ、クラス、及び発音は、それぞれ、「金閣寺」、「地名」、及び「キンカクジ」であり、ノード２１６の単語「二条城」の単語Ｉｎｄｅｘ、クラス、及び発音は、それぞれ、「二条城」、「地名」、及び「ニジョウジョウ」である。
【００３９】
図７は、図３に示すファクタリングテーブル２２２の詳細について説明するための図である。図３に示すノード２０４をルートとするサブツリーに属する終端ノードの全ての既知単語を、ｗｉ１、ｗｉ２、・・・、ｗｉｐとする。図７を参照して、テーブル２２２の１列目には、ｗｉ１、ｗｉ２、・・・、ｗｉｐに対して、単語ｗ１が先行単語であるときのバイグラム確率Ｐ（ｗｉ１｜ｗ１）、Ｐ（ｗｉ２｜ｗ１）、・・・、及びＰ（ｗｉｐ｜ｗ１）の最大値が記憶されている。同様にして、任意のｐ∈｛２，・・・，ｍ｝において、テーブル２２２のｐ列目には、全てのｗｉ１、ｗｉ２、・・・、ｗｉｐに対して、単語ｗｐが先行単語であるときのバイグラム確率Ｐ（ｗｉ１｜ｗｐ）、Ｐ（ｗｉ２｜ｗｐ）、・・・、及びＰ（ｗｉｐ｜ｗｐ）の最大値が記憶されている。
【００４０】
（未知語を含む木構造辞書１５６）
未知語として登録するクラスの数をｐとする。図８は、未知語を含む木構造辞書１５６の詳細な図である。図８を参照して、未知語を含む木構造辞書１５６は、クラス１〜クラスｐの木構造辞書２７０、２７２、及び２７４等を含む。
【００４１】
以後、クラス１を「地名」を表わすクラスとする。図２に示す代表単語に関する情報１７６には、クラス１「地名」を代表する単語として、既知単語「金閣寺」が割当てられているとする。図９は、図８に示すクラス１の木構造辞書の詳細な図である。図９を参照して、木構造辞書２７０は、ルートノード２８０と、ルートノード２８０から順次分岐する複数の非終端ノード２８２〜２８８等と、クラス１の未知語にそれぞれ対応する終端ノード２９０〜２９６等と、全ての既知単語の各々について、当該既知単語が先行単語であるときに、クラス１を代表する既知単語が続いて生起するバイグラム確率を記憶するためのテーブルであり、全ノードに関連付けられているクラス１のファクタリングテーブル３００とを含む。
【００４２】
ノード２８０からノード列２８２、２８８、及び２９０をたどることによって単語「建仁寺」が、ノード２８２からノード２９２までのノード列をたどることによって単語「高徳庵」が、ノード２８４からノード２９４までのノード列をたどることによって単語「三千院」が、ノード２８６からノード２９６までのノード列をたどることによって単語「知恩院」が、それぞれ探索される構造となっている。
【００４３】
図１０は、図９に示す終端ノードに記憶されるものについて説明するための図である。図１０を参照して、クラス１の木構造辞書２７０の終端ノードの各々には、単語Ｉｎｄｅｘ、クラス、単語、及び発音が記憶され、単語Ｉｎｄｅｘは、クラス１を代表する既知単語の単語Ｉｎｄｅｘが記憶される。したがって、各終端ノードの単語Ｉｎｄｅｘには既知単語である「金閣寺」が記憶される。したがって、この木構造辞書２７０に属する全ての単語についての生起確率は、金閣寺と同じ値になる。クラス１が「地名」なので、全ての未知語に対して「地名」が入る。単語の列には、各単語の左隣に＠を付したものが記憶される。＠は、その単語が未知語であることを示す。
【００４４】
図９に示すノード２９０の単語「建仁寺」の単語Ｉｎｄｅｘ、クラス、単語、及び発音は、それぞれ「金閣寺」、「地名」、「＠建仁寺」、及び「ケンニンジ」である。同様にして、ノード２９２の単語「高徳庵」の単語Ｉｎｄｅｘ、クラス、単語、及び発音は、それぞれ「金閣寺」、「地名」、「＠高徳庵」、及び「コートクアン」であり、ノード２９４の単語「三千院」の単語Ｉｎｄｅｘ、クラス、単語、及び発音は、それぞれ「金閣寺」、「地名」、「＠三千院」、及び「サンゼンイン」であり、ノード２９６の単語「知恩院」の単語Ｉｎｄｅｘ、クラス、単語、及び発音は、それぞれ「金閣寺」、「地名」、「＠知恩院」、及び「チオンイン」である。
【００４５】
図１１は、図９に示すクラス１のファクタリングテーブル３００の詳細な図である。図１１を参照して、ファクタリングテーブル３００には、任意のｉ∈｛１，・・・，ｍ｝において、ファクタリングテーブル３００のｉ列目には、単語ｗｉが先行単語であるときに、クラス１を代表する既知単語である「金閣寺」が続いて生起するバイグラム確率Ｐ（金閣寺｜ｗｉ）が記憶される。
【００４６】
＜ハードウェア構成＞
図１２は音声認識装置１４０で用いられるコンピュータシステム３３０の外観を示し、図１３はコンピュータシステム３３０のブロック図を示す。なお、ここで示すコンピュータシステム３３０は単なる例であって、他の構成も利用可能である。
【００４７】
図１２を参照して、コンピュータシステム３３０は、コンピュータ３４０と、全てコンピュータ３４０に接続された、モニタ３４２と、キーボード３４６と、マウス３４８と、スピーカ３７２と、マイクロフォン３７０とを含む。さらに、コンピュータ３４０はＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ：ディジタル多用途ディスク）ドライブ３５０と、半導体メモリドライブ３５２とを含む。
【００４８】
図１３を参照して、コンピュータ３４０はさらに、ＤＶＤドライブ３５０と半導体メモリドライブ３５２とに接続されたバス３６６と、全てバス３６６に接続された、ＣＰＵ３５６と、コンピュータ３４０のブートアッププログラムを記憶するＲＯＭ３５８と、ＣＰＵ３５６によって使用される作業領域を提供するとともにＣＰＵ３５６によって実行されるプログラムのための記憶領域となるＲＡＭ３６０と、プログラム等の各種ファイルを記憶するためのハードディスクドライブ３５４とを含む。
【００４９】
上述の実施の形態に係る音声認識装置１４０のシステムを実現するソフトウェアは、ＤＶＤ−ＲＯＭ３６２又は半導体メモリ３６４等の媒体に記録されたオブジェクトコードファイル又はスクリプトファイルの形で流通し、ＤＶＤドライブ３５０又は半導体メモリドライブ３５２等の読出装置を介してコンピュータ３４０に提供され、ハードディスクドライブ３５４に記憶される。ＣＰＵ３５６がプログラムを実行する際には、プログラムはハードディスクドライブ３５４から読出されてＲＡＭ３６０に記憶される。図示しないプログラムカウンタによって指定されたアドレスから命令がフェッチされ、その命令が実行される。ＣＰＵ３５６は、ＣＰＵ３５６内のレジスタ、ＲＡＭ３６０、又はハードディスクドライブ３５４から処理すべきデータを読出し、処理の結果を、これもまたＣＰＵ３５６内のレジスタ、ＲＡＭ３６０、又はハードディスクドライブ３５４に記憶する。
【００５０】
コンピュータシステム３３０の一般的動作は周知であるので、詳細な説明は省略する。
【００５１】
＜ソフトウェア構成＞
図１４〜１８は、未知語辞書作成部１６４及びメンテナンス部１６６を実現するためのプログラムの制御構造を示すフローチャートである。未知語辞書作成部１６４及びメンテナンス部１６６のプログラムは、実質的にはコンピュータである音声認識装置１４０によって実行される。
【００５２】
（未知語辞書作成部１６４のソフトウェア構成）
図１４は、未知語辞書作成部１６４の機能を実現するためのプログラムの制御構造を示すフローチャートである。図１４を参照して、このプログラムは、単語辞書１５０、言語モデル１５２、未知語に関する情報１６２、及び代表単語に関する情報１７６を読込むステップ４００と、ステップ４００の後、未知語に関する情報１６２に挙げられているクラスの中で、まだ木構造辞書が作成されていないクラスが存在するか否かを判定し、判定結果に応じて制御の流れを分岐させるステップ４０２とを含む。
【００５３】
このプログラムはさらに、ステップ４０２での判定結果がＹＥＳのときに、まだ木構造辞書が作成されていないクラスのうちの１つを選択するステップ４０４と、ステップ４０４の後、ルートノードからたどって、当該クラスに属する全ての未知語が探索可能となる木構造辞書を作成するステップ４０６と、ステップ４０６の後、当該クラスに属する全ての終端ノードの各々に対して、当該終端ノードの未知語の単語Ｉｎｄｅｘ、クラス、単語、及び発音を、それぞれ代表単語に関する情報１７６の中で当該クラスに割当てられている既知単語、当該クラス、当該未知語の左隣に＠を付したもの、及び当該未知語の発音を割当てるステップ４０８と、ステップ４０８の後、図１１に示すように当該クラスのファクタリングテーブル（代表単語について、各単語が先行するときの生起確率をリストしたテーブル）を生成し、当該ファクタリングテーブルを、当該クラスの木構造辞書の全ノードに関連付けるステップ４１０と、ステップ４０２での判定結果がＮＯのときに、本プログラムで作成した木構造辞書とクラスとの組を記憶するクラス‐木構造辞書マッピングテーブル１５８を生成するステップ４１２とを含む。ステップ４１２の後、このプログラムは終了する。
【００５４】
なお、ここでの木構造辞書の作成には、木構造辞書を作成するための既存のプログラムをそのまま流用することができる。また、各クラスのファクタリングテーブルには、言語モデルから代表単語のバイグラムテーブルをコピーすればよい。又は、すべてのノードに、言語モデル中の代表単語のバイグラムテーブルへのポインタを割当てておけばよい。
【００５５】
（メンテナンス部１６６のソフトウェア構成）
図１５〜１８は、メンテナンス部１６６の機能を実現するためのプログラムの制御構造を示すフローチャートである。図１５を参照して、このプログラムは、ユーザに対して、ユーザが追加したい未知語のクラスを入力させるための入力画面を表示するステップ４６０と、ステップ４６０の後、ユーザからの入力を待機するステップ４６２と、ステップ４６２の後、ユーザが、クラスの入力の終了を要求するか否かを判定し、判定結果に応じて制御の流れを分岐させるステップ４６４とを含む。
【００５６】
ステップ４６４の判定結果がＹＥＳのとき、このプログラムは終了する。このプログラムはさらに、ステップ４６４の判定結果がＮＯのときに、クラス‐木構造辞書マッピングテーブル１５８を参照して、ステップ４６２で入力されたクラスと一致するクラスを検索するステップ４６６と、ステップ４６６の後、ステップ４６６において検索しているクラスが存在しているか否かを判定し、判定結果に応じて制御の流れを分岐させるステップ４６８と、ステップ４６８の判定結果がＮＯのときに、ユーザが入力したクラスが存在しないことを示すエラー画面を表示し、制御をステップ４６０に戻すステップ４７４と、ステップ４６８の判定結果がＹＥＳのときに、未知語を含む木構造辞書１５６を参照して、当該クラスの木構造辞書を記憶しているデータファイルをオープンするステップ４７０と、ステップ４７０の後、ステップ４７０においてオープンしたデータファイルの内容をメモリに読込むステップ４７２とを含む。
【００５７】
図１６を参照して、このプログラムはさらに、図１５に示すステップ４７２の後、当該クラスに追加する未知語とその未知語の発音とをユーザに入力させるための入力画面を表示するステップ４８０と、ステップ４８０の後、ユーザの入力があるまで待機するステップ４８２と、ステップ４８２の後、ユーザが入力の終了を要求したか否かを判定し、判定結果に応じて制御の流れを分岐させるステップ４８４とを含む。
【００５８】
このプログラムはさらに、ステップ４８４の判定結果がＹＥＳのときに、メモリの内容をステップ４７０においてオープンされたデータファイルに上書きするステップ４８８と、ステップ４８８の後、当該データファイルをクローズし、図１５に示すステップ４６０に制御を戻すステップ４９０と、ステップ４８４の判定結果がＮＯのときに、当該クラスの木構造辞書を参照して、入力された未知語が既に存在しているか否かを判定し、判定結果に応じて制御の流れを分岐させるステップ４８６と、ステップ４８６の判定結果がＹＥＳのときに、エラー画面を表示し、ステップ４８０に制御を戻すステップ４９２とを含む。
【００５９】
図１７を参照して、このプログラムはさらに、図１６に示すステップ４８６の判定結果がＮＯのときに、ステップ４８２において入力された未知語及びその発音に基づいて、当該未知語を音素列に分解するステップ５００と、ステップ５００の後、変数ＭＡＸに音素列の音素数を代入するステップ５０２と、ステップ５０２の後、当該クラスの木構造辞書のルートノードに処理位置を移動するステップ５０４と、ステップ５０４の後、当該音素列のどの音素を参照しているかを示す変数ｉに０を代入するステップ５０６と、ステップ５０６の後、変数ｉに１を加算するステップ５０８と、ステップ５０８の後、変数ｉの値がＭＡＸの値より大きいか否かを判定し、判定結果に応じて制御の流れを分岐するステップ５１０と、ステップ５１０の判定結果がＮＯのときに、現在参照しているノードの子ノードに当該未知語のｉ番目の音素が存在するか否かを判定し、判定結果に応じて制御を分岐するステップ５１２と、ステップ５１２の判定結果がＮＯのときに、現在参照しているノードに、当該未知語のｉ番目の音素の子ノードを追加するステップ５１４と、ステップ５１４の後、及びステップ５１２の判定結果がＹＥＳのときのいずれかにおいて、現在参照しているノードからｉ番目の音素のノードに処理位置を移動し、ステップ５０８に制御を戻すステップ５１６と、ステップ５１０の判定結果がＹＥＳのとき、すなわち、現在参照しているノードが終端ノードであるときに、当該終端ノードの単語Ｉｎｄｅｘ、クラス、単語、及び発音を、それぞれ当該クラスの代表単語、現在参照している木構造辞書のクラス、追加した未知語の左隣に＠を付したもの、及び当該未知語の発音として記憶させ、制御を図１６に示すステップ４８０に戻すステップ５１８とを含む。
【００６０】
＜動作＞
上記した構成を持つ音声認識装置１４０は以下のように動作する。
【００６１】
（未知語辞書作成部１６４の動作）
図２を参照して、単語辞書１５０、言語モデル１５２、及び音響モデル１５４は予め用意されているものとする。
【００６２】
ユーザは、登録したい未知語に関する情報１６２及び代表単語に関する情報１７６を予め用意する。
【００６３】
未知語辞書管理部１６０を実現するプログラムは、単語辞書１５０と、言語モデル１５２と、未知語に関する情報１６２と、代表単語に関する情報１７６とを読込み（図１４に示すステップ４００）、未知語に関する情報１６２に挙げられているクラスの中で、まだ木構造辞書が作成されていないものが存在するか否かを判定する（図１４に示すステップ４０２）。その判定結果がＹＥＳの場合、プログラムは、木構造辞書が作成されていないクラスのいずれかを選択し（図１４に示すステップ４０４）、選択したクラスの木構造辞書を作成する（図１４に示すステップ４０６）。このとき、その木構造辞書の名称又はパスを記憶する。プログラムはさらに、ステップ４０６で作成した木構造辞書の全ての終端ノードに対して、図１０に示すように単語Ｉｎｄｅｘ、クラス、単語、発音を割当て（図１４に示すステップ４０８）、当該クラスのファクタリングテーブルを生成し、当該クラスの木構造辞書の全ノードに、当該ファクタリングテーブルを関連付ける（図１４に示すステップ４１０）。プログラムは、未知語に関する情報１６２に挙げられたクラスの分だけステップ４０２〜ステップ４１０の処理を繰返す。
【００６４】
こうした処理を繰返した結果、図１４に示すステップ４０２において、判定結果がＮＯとなる。この場合、プログラムは、各木構造辞書に対して記憶しておいたその名称又はパス名と、対応するクラス名とを対応付けてクラス‐木構造辞書マッピングテーブル５８を生成し（図１４に示すステップ４１２）、処理を終了する。
【００６５】
（メンテナンス部１６６の動作）
未知語を新たに木構造辞書に登録するときには、メンテナンス部１６６は以下のように動作する。図２を参照して、未知語辞書作成部１６４により、未知語を含む木構造辞書１５６及びクラス‐木構造辞書マッピングテーブル１５８が予め作成されているものとする。
【００６６】
以下の説明では、新たに登録する未知語、そのクラス、及びその発音を予め決定しているものとする。
【００６７】
メンテナンス部１６６を実現するプログラムは、ユーザに対してクラスを指定させるための入力画面を表示し（図１５に示すステップ４６０）、ユーザが入力画面にクラス名を入力するまで待機する（図１５に示すステップ４６２）。ここでは、クラス名又は処理の終了の指示のいずれかの入力が可能である。
【００６８】
ユーザが、新規に登録したい未知語のクラスを入力したものとする。プログラムは、ユーザが、入力を終了するか否かを判定する（図１５に示すステップ４６４）。ユーザがクラスを入力したので、判定結果はＮＯであり、プログラムはクラス‐木構造辞書マッピングテーブル１５８を参照して、ユーザが入力したクラスを検索し（図１５に示すステップ４６６）、そのクラスの木構造辞書が存在するか否かを判定する（図１５に示すステップ４６８）。ユーザの入力したクラスが存在せず、判定結果がＮＯであれば、プログラムはエラー画面を表示してステップ４６０に処理を戻し、次の入力を待つ。ユーザが入力したクラスが存在し、ステップ４６８での判定結果がＹＥＳであれば、プログラムは、検索された木構造辞書１５６のデータファイルをオープンし（図１５に示すステップ４７０）、オープンしたデータファイルの内容をメモリに読込む（図１５に示すステップ４７２）。
【００６９】
次に、プログラムは、当該クラスに登録する未知語とその発音とをユーザに入力させるための入力画面を表示し（図１６に示すステップ４８０）、ユーザからの入力を待つ（図１６に示すステップ４８２）。ここでは、未知語と発音、又はこの処理を終了する指示のいずれかの入力が可能である。
【００７０】
ユーザが、新たに登録したい未知語とその発音とを入力したものとする。図１６に示すステップ４８４における判定結果はＮＯとなり、プログラムは、メモリに読込んだ木構造辞書を参照して、ユーザによって入力された未知語が既に存在しているか否かを判定する（図１６に示すステップ４８６）。判定結果がＹＥＳのとき、プログラムは、エラー画面を表示して（図１６に示すステップ４９２）、ステップ４８０に処理を戻す。ステップ４８６の判定結果がＮＯのとき、プログラムは以下のような処理を実行する。
【００７１】
プログラムはまず、ユーザによって入力された未知語を音素列に分解する（図１７に示すステップ５００）。次に、未知語の単語の音素数を示す変数ＭＡＸに音素数を代入する（図１７に示すステップ５０２）。プログラムは、当該クラスの木構造辞書のルートノードに処理位置を移動し（図１７に示すステップ５０４）、未知語の音素を１つずつ参照するために、先ず変数ｉに０を代入して（図１７に示すステップ５０６）、変数ｉに１を加算する（図１７に示すステップ５０８）。このとき、プログラムは、登録したい未知語の１番目の音素を参照していることになる。プログラムは、変数ｉの値がＭＡＸの値を超えているか否かを判定する（図１７に示すステップ５１０）。現在、変数ｉの値は１なので、判定結果はＮＯである。プログラムは、ルートノードの子ノードに、登録したい未知語のｉ番目の音素が存在するか否かを判定し（図１７に示すステップ５１２）、存在すればｉ番目の音素の子ノードに処理位置を移動し（図１７に示すステップ５１６）、存在しなければ、現在参照しているノードにｉ番目の音素の子ノードを新たに追加して（図１７に示すステップ５１４）、その子ノードに処理位置を移動する（図１７に示すステップ５１６）。その後、プログラムは、ステップ５０８に処理を戻し、２番目以降の音素について同様の処理を繰返す。
【００７２】
こうした処理を繰返した結果、ステップ５１０において変数ｉの値がＭＡＸの値を超えたと判定されたとき、プログラムは、それまでの処理で追加された終端ノードに、登録したい未知語のための単語Ｉｎｄｅｘ、当該未知語の属するクラス、当該未知語、及び当該未知語の発音を記憶させ（図１７に示すステップ５１８）、図１６に示すステップ４８０以後の処理を繰返す。ここでは、単語Ｉｎｄｅｘ及びクラスとしては、同じ木構造辞書中の任意の終端ノードに記憶されている単語Ｉｎｄｅｘ及びクラスと同じものをそれぞれ記憶させればよい。
【００７３】
ステップ４８４において、ユーザが入力の終了を要求した場合、プログラムは、ステップ４７０においてオープンされたデータファイルにメモリに記憶された木構造辞書の内容を上書きし（図１６に示すステップ４８８）、データファイルをクローズし（図１６に示すステップ４９０）、図１５に示すステップ４６０に処理を戻す。
【００７４】
一方、ステップ４６４において、ユーザが入力の終了を要求した場合、プログラムは、処理を終了する。
【００７５】
（音声認識部１７０による未知語を含む木構造辞書１５６の探索方法）
音声認識部１７０は、単語辞書１５０、言語モデル１５２、音響モデル１５４、未知語を含む木構造辞書１５６、クラス‐木構造辞書マッピングテーブル１５８、使用クラスの情報１７２、及び音声データ１７４を読込む。
【００７６】
未知語を含む木構造辞書１５６にはクラス１〜クラスｐまでの未知語の木構造辞書が記憶されており、使用クラスの情報１７２には、少なくともクラス１及びクラスｐのクラス名が挙げられており、少なくともクラス２のクラス名が挙げられていないものとする。
【００７７】
図１８は、未知語を含む木構造辞書１５６の探索方法について説明するための図である。図１８を参照して、音声認識部１７０は、音声認識するために、どのクラスの未知語を探索するかを決定するためのスイッチであるスイッチ５５０、５５２、及び５５４等と、単語辞書１５０と、未知語を含む木構造辞書１５６とを用いる。これらスイッチは、プログラム上では、探索先の単語辞書を使用するかしないかを指定するフラグとして保持される。
【００７８】
スイッチ５５０、５５２、及び５５４は、それぞれクラス１、クラス２、及びクラスｐに対応している。その他のクラスについても同様である。スイッチがＯＮの場合、音声認識部１７０は、当該スイッチに対応するクラスの木構造辞書を探索し、ＯＦＦの場合、当該スイッチに対応するクラスの木構造辞書を探索しない。プログラムは、使用クラスの情報１７２にクラスの名前が挙げられている場合、そのクラスに対応するスイッチをＯＮとし、クラスの名前が挙げられていない場合、そのクラスに対応するスイッチをＯＦＦとする。
【００７９】
一方、単語辞書１５０にはそのようなスイッチはなく、常に探索の対象となる。
【００８０】
したがって、音声認識部１７０は、音声認識する場合、単語辞書１５０と、対応するスイッチ（フラグ）がオンとなっている未知語の木構造辞書を探索する。
【００８１】
＜本実施の形態の効果＞
以上の説明から明らかなように、本実施の形態に係る音声認識装置１４０を使用することにより、未知語辞書作成部１６４が未知語を含む木構造辞書１５６を作成するので、音声認識部１７０は、音声データ１７４に未知語が含まれていても、言語モデルを変更せずに、代表単語の生起確率と同じ確率で未知語を認識することができる。言語モデルが変更されないので、言語モデル中の確率の信頼性が低下することもない。
【００８２】
また、使用クラスの情報１７２により、音声認識時に探索させる未知語の木構造辞書をユーザが選択することができるので、未知語を含む木構造辞書１５６のクラスの数が膨大であっても、音声認識部１７０は、全てのクラスの未知語の木構造辞書を探索する必要はなく、処理時間に支障はない。
【００８３】
さらに、未知語を含む木構造辞書１５６が、本実施の形態に係る未知語辞書作成部１６４によっていったん作成されたとしても、ユーザは、未知語を含む木構造辞書１５６に、新しい未知語を自由に登録することができる。
【００８４】
＜変形例＞
上述した実施の形態では、図３に示す言語モデル１５２には、ユニグラムテーブル２２４と全てのバイグラム確率が予め記憶されたバイグラムテーブル２２６とが含まれていた。しかし、本発明はそのような実施の形態には限定されない。Ｎを３以上の整数として、言語モデル１５２は、ユニグラムテーブル２２４及びバイグラムテーブル２２６に代えて、Ｎグラム確率を記憶させたＮグラム木構造を含んでも良い。
【００８５】
図１９は、Ｎグラム木構造を示す図である。通常は、ユニグラム確率、バイグラム確率、及びトライグラム確率等は、予め、新聞のようなサンプル文書（以下、学習コーパス）から、１〜３個の任意の単語列を計数することによって算出される。学習コーパス中の全ての単語のユニグラム確率を算出することは可能である。しかし、全てのバイグラム確率及びトライグラム確率が算出可能であるとは限らない。
【００８６】
そこで、学習コーパスから算出されないバイグラム確率及びトライグラム確率を学習コーパスから推定するための、バックオフスムージングと称される方法がある。上述の実施の形態において、学習コーパスから全てのバイグラム確率を算出することができない場合、バックオフスムージングによってバイグラム確率を推定し、バイグラムテーブル２２６に記憶させれば良い。
【００８７】
以下、バックオフスムージングについて簡単に説明する。バックオフスムージングについて説明するために、準備として、学習コーパスから算出されるユニグラム確率、バイグラム確率、及びトライグラム確率等を木構造で記憶するためのＮグラム木構造について説明する。
【００８８】
以下の説明では、全ての既知単語をｗ１、ｗ２、…、ｗｍで表わす。図１９を参照して、Ｎグラム木構造６００は、ルートノード６６６と、ルートノード６６６から分岐し、且つ、全ての既知単語のそれぞれに対応するノード６０２（ｗ１）、ノード６０４（ｗ２）、ノード６０６（ｗ３）、ノード６０８（ｗｍ）等と、ルートノード６６６との距離が１であるノード６０２〜６０８等の各々について、当該ノードから分岐し、且つ、学習コーパスにおいて当該ノードに対応する単語の１つ前に出現する全ての単語に対応するノード６１０（ｗ２，ｗ１）、ノード６１２（ｗ４，ｗ１）、ノード６１４（ｗ７，ｗ１）、ノード６１６（ｗ３，ｗ２）、ノード６１８（ｗ９，ｗ２）、及びノード６２０（ｗ１，ｗ３）等と、ルートノード６６６との距離が２あるノード６１０〜６２０等から分岐し、且つ、学習コーパスにおいて、当該ノードに対応する単語及び当該ノードの親ノードに対応する単語の順番により定まる単語列の１つ前に出現する全ての単語に対応するノード６２２（ｗ３，ｗ２，ｗ１）、ノード６２４（ｗ５，ｗ２，ｗ１）、ノード６２６（ｗ８，ｗ２，ｗ１）、ノード６２８（ｗ２，ｗ４，ｗ１）、ノード６３０（ｗ９，ｗ４，ｗ１）、及びノード６３２（ｗ２，ｗ７，ｗ１）等を含む。Ｎグラム木構造６００はさらに、ルートノード６６６との距離が１であるノードの各々について設けられ、当該ノードに対応する単語のユニグラム確率及びユニグラムバックオフ係数を記憶する領域６３４（ｗ１）、６３６（ｗ２）、６３８（ｗ３）、及び６４０（ｗｍ）等と、ルートノード６６６との距離が２であるノードの各々について設けられ、当該ノードに対応する単語の後に、当該ノードの親ノードに対応する単語が学習コーパスにおいて生起するバイグラム確率及びバイグラムバックオフ係数を記憶する領域６４２（ｗ２，ｗ１）、６４４（ｗ４，ｗ１）、６４６（ｗ７，ｗ１）、６４８（ｗ３，ｗ２）、６５０（ｗ９，ｗ２）、６５２（ｗ１，ｗ３）等と、ルートノード６６６との距離が３であるノードの各々について、当該ノードに対応する単語及び当該ノードの親ノードの単語の後に、当該ノードの親ノードの親ノードに対応する単語が学習コーパスにおいて生起するトライグラム確率を記憶する領域６５４（ｗ３，ｗ２，ｗ１）、６５６（ｗ５，ｗ２，ｗ１）、６５８（ｗ８，ｗ２，ｗ１）、６６０（ｗ２，ｗ４，ｗ１）、６６２（ｗ９，ｗ４，ｗ１）、６６４（ｗ２，ｗ７，ｗ１）等とを含む。なお、ここでルートノード６６６は、対応する単語がないダミーノードである。ユニグラムバックオフ係数及びバイグラムバックオフ係数は、学習コーパスから算出することができないバイグラム確率及びトライグラム確率を推定するために利用されるものである。ユニグラムバックオフ係数及びバイグラムバックオフ係数は、バックオフスムージングにおいてよく知られたものなので、ここでは、その詳細について説明しない。
【００８９】
Ｎグラム木構造６００を利用することによって、ルートノード６００から順次ノードをたどることによって、学習コーパスから算出されるユニグラム確率、バイグラム確率、トライグラム確率、ユニグラムバックオフ係数、及びバイグラムバックオフ係数を得ることができる。
【００９０】
以下、学習コーパスから算出されないバイグラム確率がある場合に、Ｎグラム木構造６００を利用してバイグラム確率を推定する方法について説明する。ここで、単語ｗｐの後に単語ｗｑが生起するバイグラム確率Ｐ（ｗｑ｜ｗｐ）が学習コーパスから算出されないものとする。ｐ，ｑ∈｛１，２，・・・，ｍ｝である。この場合、単語ｗｑが生起するユニグラム確率をＰ（ｗｑ）とし、単語ｗｐのユニグラムバックオフ係数をＢ（ｗｐ）とすると、Ｐ（ｗｑ｜ｗｐ）＝Ｂ（ｗｐ）×Ｐ（ｗｑ）とすればよい。Ｂ（ｗｐ）及びＰ（ｗｑ）は、Ｎグラム木構造６００においてルートノード６６６との距離が１であり、且つ、それぞれ単語ｗｐ並びにｗｑに対応するノードからユニグラム確率及びユニグラムバックオフ係数から取得することができる。なお、Ｎグラム木構造６００を利用してトライグラム確率を推定する方法については、バックオフスムージングにおいてよく知られた方法なので、ここではその詳細について説明しない。
【００９１】
言語モデル１５２が、ユニグラムテーブル２２４及びバイグラムテーブル２２６に代えて、上記のＮグラム木構造６００を含む場合、単語辞書１５０の全ての終端ノードの各々に、Ｎグラム木構造６００を関連付ける。単語辞書１５０の終端ノードのＮグラム確率は、単語辞書１５０の終端ノードに到達したときに、Ｎグラム木構造６００から動的に求める。ルートノードとの距離がｋ（ｋは１、２、…、ｍ−１の任意の数）である非終端ノードのファクタリングテーブルには、近似値として当該非終端ノードから子ノードをたどっていくことにより到達できる終端ノードの単語が生起するバイグラム確率の最大値が記憶される。
【００９２】
図９に示すクラス１のファクタリングテーブル３００には、バイグラム確率ではなく、任意の（Ｎ−１）個の既知単語の組合せの各々に対して、当該組合せが先行するときに、そのクラスの代表単語が生起するＮグラム確率が記憶される。
【００９３】
また、上述の実施の形態では、図３に示すノード２００との距離がｋ（ｋは１、２、…、ｍ−１の任意の数）である非終端ノードに対して、ファクタリングテーブル２２２と同様なテーブルが関連づけられていた。しかし、本発明はそのような実施の形態には限定されない。ｐを２以上の整数として、ノード２００との距離が（ｋ＋１）以上であり、かつｐより小さい非終端ノードに、ファクタリングテーブル２２２と同様なテーブルを関連付けても良い。
【００９４】
さらに、上述の実施の形態では、未知語を含む木構造辞書１５６のクラスを「地名」のみに限定していた。しかし、本発明はそのような実施の形態には限定されない。各国の音声データを認識したい場合、各国毎に、「ランドマーク」、「観光地」、及び「人名」等のクラスの未知語を収集して、未知語辞書作成部１６４によって、それらのクラスのための未知語を含む木構造辞書を作成させる。音声認識部１７０によって当該音声データを認識させたい場合、使用クラスの情報１７２に、対象国の言語に該当するクラスを指定して、音声認識させれば良い。
【００９５】
また、各地方の方言を含んだ音声データを音声認識したい場合、各地方の方言を、標準語のクラスに割当てたものを未知語に関する情報１６２として、未知語辞書作成部１６４によって、未知語を含む木構造辞書１５６を作成させる。ある地方の方言を含んだ音声データを音声認識するとき、使用クラスの情報１７２において、当該地方の方言のためのクラスを指定して、音声認識部１７０によって、音声認識させれば良い。
【００９６】
今回開示された実施の形態は単に例示であって、本発明が上記した実施の形態のみに制限されるわけではない。本発明の範囲は、発明の詳細な説明の記載を参酌した上で、特許請求の範囲の各請求項によって示され、そこに記載された文言と均等の意味及び範囲内でのすべての変更を含む。
【図面の簡単な説明】
【００９７】
【図１】木構造辞書の概念を説明するための模式図である。
【図２】本発明の実施の形態に係る音声認識装置１４０の概略の機能的構成を示すブロック図である。
【図３】図２に示す単語辞書１５０及び言語モデル１５２の詳細な図である。
【図４】図３に示すユニグラムテーブル２２４の詳細な図である。
【図５】図３に示すバイグラムテーブル２２６の詳細な図である。
【図６】図３に示す単語辞書１５０の終端ノードに記憶されているものについて説明するための図である。
【図７】図３に示すファクタリングテーブル２２２に記憶されているものについて説明するための図である。
【図８】図２に示す未知語を含む木構造辞書１５６の詳細について説明するための図である。
【図９】図８に示すクラス１の木構造辞書２７０の詳細について説明するための図である。
【図１０】図９に示すクラス１の木構造辞書２７０の終端ノードに記憶されているものについて説明するための図である。
【図１１】図９に示すクラス１のファクタリングテーブル３００に記憶されているものについて説明するための図である。
【図１２】コンピュータシステム３３０のハードウェア構成を示す図である。
【図１３】コンピュータシステム３３０のブロック図である。
【図１４】図２に示す未知語辞書作成部１６４を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図１５】図２に示すメンテナンス部１６６を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図１６】図２に示すメンテナンス部１６６を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図１７】図２に示すメンテナンス部１６６を実現するコンピュータプログラムの制御構造を示すフローチャートである。
【図１８】図２に示す未知語を含む木構造辞書１５６の使用方法について説明するための図である。
【図１９】Ｎグラム木構造について説明するための図である。
【符号の説明】
【００９８】
１４０  音声認識装置
１５０  単語辞書
１５２  言語モデル
１５４  音響モデル
１５６  未知語を含む木構造辞書
１５８  クラス‐木構造辞書マッピングテーブル
１６０  未知語辞書管理部
１６２  未知語に関する情報
１６４  未知語辞書作成部
１６６  メンテナンス部
１６８  追加単語に関する情報
１７０  音声認識部
１７２  使用クラスの情報
１７４  音声データ
１７６  代表単語に関する情報
１７８  音声認識されたテキスト
２２２  ファクタリングテーブル
２２４  ユニグラムテーブル
２２６  バイグラムテーブル
２７０  クラス１の木構造辞書
２７２  クラス２の木構造辞書
２７４  クラスＰの木構造辞書
３００  クラス１のファクタリングテーブル
【図１】
0005120749.tif 000002
【図２】
0005120749.tif 000003
【図３】
0005120749.tif 000004
【図４】
0005120749.tif 000005
【図５】
0005120749.tif 000006
【図６】
0005120749.tif 000007
【図７】
0005120749.tif 000008
【図８】
0005120749.tif 000009
【図９】
0005120749.tif 000010
【図１０】
0005120749.tif 000011
【図１１】
0005120749.tif 000012
【図１２】
0005120749.tif 000013
【図１３】
0005120749.tif 000014
【図１４】
0005120749.tif 000015
【図１５】
0005120749.tif 000016
【図１６】
0005120749.tif 000017
【図１７】
0005120749.tif 000018
【図１８】
0005120749.tif 000019
【図１９】
0005120749.tif 000020