| 【発明の名称】 |
連続音声認識装置 |
| 【発明者】 |
【氏名】友枝 孝
|
| 【要約】 |
【課題】省メモリ、省演算量、高い汎用性を持つ連続音声認識装置を提供する。
【解決手段】サブネットワーク文法(ルール)に分割した形でネットワーク状に記述された文脈自由文法を、ルールに適切な方法でコンパイルし記録する。マスタールールをサーチ処理の必要に応じてメモリ上に圧縮を展開し、マスタールール同士の接続関係を埋め込み型方式で管理する。マスタールールを連続音声認識のサーチ処理に適した形式(プロンルール)に展開し、プロンルール、プロンルールに含まれるプロンアーク及びプロンノードをメモリ上に記憶、削除し、プロンルール同士の接続関係を木構造上に管理する。統一された形式又はサーチに最適化された形式のプロンルール、プロンアーク等を用いてサーチを行なう。マスタールールの形式の違いを吸収してプロンアークを展開し、さらに一度行なったルール遷移を二度と行なわずにルール間の音素アークを環境依存音素アークに展開する。 |
【特許請求の範囲】
【請求項1】 文脈自由文法や有限状態オートマトンを、任意個のサブネットワーク文法(ルールと呼ぶ)から構成される文法にコンパイルし、外部記憶装置やメモリに記録するコンパイル部と、コンパイルされたルール(マスタールール)を、必要に応じてメモリ上に展開し又は、メモリ上から削除して、マスタールールの管理を行なうマスター文法管理部と、マスター構造体すなわちマスタールール、マスタールールに含まれるアーク(マスターアーク)及びノード(マスターノード)を、プロン構造体すなわちサーチ処理に適した形式に展開されたルール(プロンルール)、アーク(プロンアーク)及びノード(プロンノード)として、メモリ上で管理するプロン文法管理部と、連続音声認識のサーチを制御するサーチ制御部と、仮説を記憶する仮説記憶部と、仮説の展開処理を行なう仮説展開部と、マスターアーク、マスターノードをそれぞれプロンアーク、プロンノードに展開するアーク展開部と、仮説が単語終端を通過した情報をメモリ又は外部記憶装置に記録、管理するワードエンド管理部と、連続音声認識の結果をアプリケーションに通知する認識結果出力部とを有する連続音声認識装置。 【請求項2】 コンパイル時にマスタールール同士の接続関係を埋め込み型でコンパイル、記録する前記コンパイル部を有する請求項1に記載の連続音声認識装置。 【請求項3】 コンパイル時にルールを、ルールに応じた適切な形式に圧縮する前記コンパイル部を有する請求項1に記載の連続音声認識装置。 【請求項4】 ルールに含まれる、他のルールとの接続情報を持つ1つのノードに、複数種類の他のルールとの接続情報を持たせるようにすることで、圧縮を行なう前記コンパイル部を有する請求項3に記載の連続音声認識装置。 【請求項5】 マスタールール同士の接続関係を埋め込み型で管理する前記マスター文法管理部を有する請求項1に記載の連続音声認識装置。 【請求項6】 プロンルール同士の接続関係を木構造状に管理する前記プロン文法管理部を有する請求項1に記載の連続音声認識装置。 【請求項7】 不必要なマスター構造体を主記憶上から削除し、再度必要になった際に復旧を行なう前記マスター文法管理部を有する請求項5に記載の連続音声認識装置。 【請求項8】 不必要なプロン構造体を主記憶上から削除又は外部記憶上に退避し、再度必要になった際に復旧を行なう前記プロン文法管理部を有する請求項6に記載の連続音声認識装置。 【請求項9】 プロンルール単位で、プロンルール中のアーク、ノードを記憶、管理する前記プロン文法管理部を有する請求項8に記載の連続音声認識装置。 【請求項10】 別ルールに属するプロンアーク(プロンアークA)からの入力を持つプロンアーク(プロンアークB)を削除する際、プロンアークA又はプロンアークAの属するプロンルールに、プロンアークBの復旧のための情報を記録する前記プロン文法管理部を有する請求項8に記載の連続音声認識装置。 【請求項11】 プロンルール単位で前記仮説展開部を呼び出す前記サーチ制御部を有する請求項1に記載の連続音声認識装置。 【請求項12】 環境依存音素に展開されていない音素マスターアークを環境依存音素プロンアークに展開する際に、一度調べたルール遷移情報を記録し、その情報を用いることにより、ルール遷移のための処理を大幅に軽減する前記アーク展開部を有する請求項1に記載の連続音声認識装置。 【請求項13】 一つ以上の異なるフォーマット形式のマスターアーク及びマスターノードを、統一された一つのプロン形式のプロンアーク及びプロンノードに展開する前記アーク展開部を有する請求項1に記載の連続音声認識装置。 【請求項14】 一つ以上の異なるフォーマット形式のマスターアーク及びマスターノードを、マスターの形式に依存して最適化された個別の形式のプロンアーク及びプロンノードに展開する前記アーク展開部を有する請求項1に記載の連続音声認識装置。 【請求項15】 一度展開され、削除されたプロンアークを、ルール遷移を行なわずに、復旧情報を使用して復旧する前記アーク展開部を有する請求項12に記載の連続音声認識装置。
|
【発明の詳細な説明】【0001】 【発明の属する技術分野】本発明は、連続音声認識装置に関し、特に文脈自由文法や統計言語モデルを用いた連続音声認識などを扱う際の省メモリ、省演算量、高機能を実現する連続音声認識装置に関する。 【0002】 【従来の技術】従来の連続音声認識装置の一例が、日本音響学会講演論文集 1997年 3月及び1999年 9月〜10月の「住所認識のための辞書分割法の検討」と題された、岩崎知引、中島邦男らによる論文に掲載されている(図9)。 【0003】従来法では、全国住所タスク(住所を、県名、市名、町名の3階層に分けた住所認識タスク)に特化したアルゴリズムを用いており、以下のように動作する。 1:コンテキストコンテナー(以下、CC)に、後続のCCを直接指定して、単語の読み(音節情報)を記録する。 2:コンパイル部91がCCを Container Werehouse92というメモリ上又は外部記憶装置上に記録する。 3:サーチ制御部93がサーチを開始する。 4:仮説展開部94は、フレーム同期ビームサーチアルゴリズムに従い、ViterbiWork Memory95に含まれる、音素片ネットワーク上の仮説展開を行なう。 5:4において、サーチ制御部93は、サーチに必要なCCをメモリ上のContainer Shelf96に読み込む。このとき、CCの情報は、音節ネットワークとして表現される。 6:4において、サーチ制御部93は、サーチに必要な Container Shelf96の音節アーク情報を音節単位でViterbi Work Memory95に読み込む。 7:6において、アーク展開部98は、音素片ネットワークを構築する。 8:サーチ制御部93は単語終端情報を Back Track Memory97に記録する。 9:まだ音声フレームが残っている場合、4に戻る。 10:Back Track Memory97 の情報から、認識結果を返す。 【0004】 【発明が解決しようとする課題】従来の技術の第一の問題点は、CCをコンパイルする際に、CCの構造に応じた適切な形式に圧縮していないことと、これに対応して、異なる形式の Container Shelf の Viterbi Work Memory への展開をサポートしていないことである。 【0005】このため、CC及び Container Shelf の圧縮効率が高くない上、認識対象とするタスクの汎用性に欠ける。 【0006】従来の技術の第二の問題点は、CCに直接、接続先のCCを記述するため、CCの内部に(自己CCを含めた)CCを埋め込むことができないことである。 【0007】このため、同じ内容の音節ネットワークを有するCCで、別のCCへ接続するものが必要である場合、CCを個別に複数個用意しなくてはならず、音節ネットワークの共有ができない。このため、メモリ効率が良くない上に、複雑な文法の記述も困難である。 【0008】従来の技術の第三の問題点は、仮説展開において、Container Shelf の特徴に依存した、最適な展開方法を複数使用しないことである。 【0009】このため、全国住所タスクなどの階層化された単純な文法を扱う場合のみ、メモリ量や処理量が効率的であり、他のタスクには通用しない。 【0010】従来の技術の第四の問題点は、不要な Viterbi Work Memory 上の音素片ネットワークを削除又は外部記憶上に退避できないことである。 【0011】このため、既に音声及びサーチの通り過ぎた、仮説の存在しない音素片ネットワークが無駄にメモリを消費している。 【0012】本発明の目的は、上記の従来技術の問題点を回避しつつ、省メモリ、省演算量、高い汎用性を持つ連続音声認識装置を提供することにある。 【0013】 【課題を解決するための手段】本発明の連続音声認識装置は、サブネットワーク文法(ルール)に分割した形でネットワーク状に記述された文脈自由文法を、ルールに適切な方法でコンパイルし、記録する手段と、コンパイルされたルール(マスタールール)を、サーチ処理の必要に応じてメモリ上に圧縮を展開し、マスタールール同士の接続関係を埋め込み型方式で管理する手段と、マスタールールを連続音声認識のサーチ処理に適した形式(プロンルール)に展開し、プロンルール、プロンルールに含まれるアーク(プロンアーク)及びノード(プロンノード)をメモリ上に記憶、削除し、プロンルール同士の接続関係を木構造上に管理する手段と、統一された形式、又はサーチに最適化された形式のプロンルール、プロンアーク等を用いてサーチを行なう手段と、マスタールールの形式の違いを吸収してプロンアークを展開し、さらに一度行なったルール遷移を二度と行なわずにルール間の音素アークを環境依存音素アークに展開する手段とを備え、省メモリ、省演算量、高い汎用性を実現する。 【0014】 【発明の実施の形態】次に、本発明の実施の形態について図面を参照して詳細に説明する。 【0015】図1に、本発明の一実施の形態としての連続音声認識装置が示されている。 【0016】図1では、コンパイルなどのサーチ開始前に必要な処理、フレーム同期ビームサーチにおける1フレーム分の仮説展開の動作及びサーチ終了後に必要な処理を示す。その他の動作はフレーム同期ビームサーチに従うものとする。 【0017】なお、サーチ制御部3、ワードエンド管理部7、認識結果出力部8以外の全ての部分はサーチ方式には依存しないため、縦型探索方式にも適用が可能である。 【0018】図1において、コンパイル部1は、請求項3に記述の通り、ネットワーク形式で表現された文脈自由文法や有限状態オートマトンなどの文法を、複数のサブネットワーク文法(ルールと呼ぶ)に分割し、それぞれのルールを、それに適した形式にコンパイルし、さらに圧縮する。ルールは、アークを内部に持つことができるのと同様、ルールも内部に持つことができる。ルールAにルールBが埋め込まれている場合、ルールBをルールAの「内部ルール」と呼び、ルールAをルールBの「外部ルール」と呼ぶ。 【0019】ルールは、外部ルールから仮説を入力するための「始端入力ノード」、及び、外部ルールへ仮説を出力するための「終端出力ノード」を持つ。これらのノードを通してのみ外部ルールへの仮説の出力及び外部ルールからの仮説の入力が可能である。これらの入出力ノードの個数は任意である。 【0020】請求項2に記述のコンパイル部の、マスタールール同士の接続関係の管理方式の一例を挙げる。内部ルールを持つルールは、内部ルールへ仮説を出力するための「内部ルールへの出力ノード」及び、内部ルールからの(戻ってくる)仮説を入力するための「内部ルールからの入力ノード」を持つ(図5)。内部ルールBへの”内部ルールへの出力ノード”の個数は、内部ルールBの”始端入力ノード”の個数と一致していなくてはならない。また、内部ルールBからの”内部ルールからの入力ノード”の個数は、内部ルールBの”終端出力ノード”の個数に一致していなくてはならない。 【0021】以下では簡単のために、始端入力ノード、終端出力ノード、内部ルールへの出力ノード、内部ルールからの入力ノードを総称して「入出力ノード」と呼ぶこととする。入出力ノードは、ルール内のアークの後続ノードになることができ、又、ルール内のアークを後続アークとして持つ事ができる。つまり、入出力ノードは、ネットワーク中の普通のノードとしての機能も兼ね備える。 【0022】外部ルールAは、内部ルールBの”始端入力ノード”の個数及び”終端出力ノード”の個数を知っているだけで、ルールBを内部ルールとして持つ事ができる。外部ルールAは、内部ルールBの内部構造を知る必要はない。このように、ルールをルール中に埋め込むことにより、ネットワーク文法記述のモジュール化を実現した。 【0023】ルール中には、統計言語モデルスコアも記述することができる。 【0024】図3に示されている、都道府県名、市名、町名の三階層に分割された全国住所タスクのコンパイルを例にして、コンパイル部の動作を説明する。このタスクでは各階層間や、文頭、文末には、「えーと」、「あー」などの付加語アーク、無音アーク(これらのアークをまとめたルールを「付加語ルール」と呼ぶ)やナルアークが挿入できることとする。 【0025】このタスクでは、1つの県の中にある市名の一覧を木構造化することができる。このタスクでは、地名のまとまりが語彙の大部分を占めるため、地名のまとまりを全て木構造化し、さらにそれらの木構造辞書を圧縮した方がメモリ効率がよい。木構造化できないルールは、異なる方法で圧縮、コンパイルする。 【0026】請求項3に記述の、木構造化の可能なルールのコンパイル、圧縮方法の一例を以下に挙げる。 1)木構造化の可能なルール中の全てのアークは、まず単語の読み情報を持つアークに変換される。 2)単語の読み情報を持つアークは、単語を音素表記で表したアークの連鎖に変換される。 3)全ての先頭の音素アークが束ねられ、音素アークで表現された木構造辞書が作成される。 【0027】木構造辞書を音素アークで表現するのは、木構造辞書をさらに圧縮するためである。例えば、木構造辞書を環境依存音素アークで表現すると、(ほとんどの環境依存音素セットは、環境依存音素の種類数が 256 以上、65536 個以下であるため)1つのアーク情報に 2 byte 必要になる。 【0028】この木構造辞書はさらに圧縮される。木構造辞書の特徴的な情報である、「分岐があるという情報」及び「このアークが単語終端アークであるという情報」は音素情報と共にまとめられ、全ての木構造辞書中の1アークが 1 byte で表現される。アークの 1 byte 情報の中には、「分岐の個数」や「それぞれの分岐先アークへのポインタ又は相対アドレス」という情報は含めることができないため、あらかじめ定められた木構造辞書の圧縮のフォーマットに従って適切な場所に記録される。 【0029】木構造辞書中に記述しなくてはならない他の情報として、「木構造辞書中の最初のアークである」という情報と、「木構造辞書中の最初から2番目のアークである」という情報がある。この情報は、アーク展開部6で必要な情報であるため、ここでは理由は述べない。 【0030】ユーザが木構造化できるルールを記述する際に、木構造ルールからの仮説の出力方式を選択することができる。出力方式としては、「単語毎に別々の終端ノードを持ち、仮説は各単語の終端ノードを通って出力される」、「全ての単語の終端ノードは1つに束ねられ、仮説はその終端ノードを通って出力される」、「全単語の最後の音素の種類数の終端ノードを持ち、仮説は単語の最後の音素で決定される終端ノードから出力される」又は「全単語の最後の音節の種類数の終端ノードを持ち、仮説は単語の最後の音節で決定される終端ノードから出力される」などの選択肢の中から任意の仮説の出力方法を選択することができる。なお、圧縮のために、木構造辞書の終端ノードは木構造ルール中には存在せず、上記の選択肢のうち、どれが選ばれたかという情報だけが木構造ルール中に記録される。マスター文法管理部2がこの情報を使用して、木構造ルール中にあたかも”終端出力ノード”があるかのようにサーチ制御部3及びプロン文法管理部2’に仮説の出力先情報を与える。 【0031】次に、木構造化できないルールのコンパイル、圧縮を考える。図2の全国住所タスクでは、木構造化できないルールは、各階層間に挿入される「付加語ルール」と、全てのルールの接続情報を管理するルール(以下では、ルール間接続管理ルールと呼ぶ)だけである。 【0032】木構造ルール以外のルールのコンパイル、圧縮手順の一例を以下に述べる。 1)単語ネットワークが音素ネットワークに展開される2)音素ネットワークは環境依存音素ネットワークに展開される(図4)。但し、ルール始端アーク41、ルール終端アーク42、内部ルールへの出力アーク43及び内部ルールからの入力アーク44は、環境依存音素に展開する事ができない。これらのアークを「未展開音素アーク」と呼ぶ。環境依存音素に展開する事ができない理由は、外部ルール又は内部ルールの隣接するアークの音素が、コンパイル時には決定できないためである。 3)”未展開音素アーク”、”未展開音素アークの後続のアーク45”及び”複数のアーク又はノードを入力として持つ環境依存音素アーク(以下では、複数入力を持つ環境依存音素アーク46と呼ぶ)”に、ルール中での通し番号(アークID)をつける。これは、アーク展開部で必要な情報であるため、ここでは理由は述べない。 4)必要に応じて任意の方法で圧縮を行なう。圧縮が特に必要でない場合、圧縮を行なわなくても良い。 【0033】付加語ルールのコンパイル、圧縮について述べる。付加語ルールの例を図8に示す。図に示される付加語ルールは、単語のマージが発生するため木構造化ができない。仮に木構造化できるよう単語ネットワークを書き換えたとしても、語彙数が少ないため、木構造化のメリットが少ない。このため、付加語ルールは木構造化しない。また、付加語ルールは小さいため、圧縮も行なわない。 【0034】ルール間接続管理ルールのコンパイル、圧縮について述べる。ルール間接続管理ルールは、全国住所タスクにおけるサブネットワークであるルールを全て内部ルールとして保持し、それらの接続情報を管理する。そのため、内部ルールへの出力ノード及び内部ルールからの入力ノードが、ルール中の大部分を占める。以下では、入出力ノードの圧縮方法の一例を述べる。 【0035】請求項4に記述のコンパイル部は、一つの実体の入出力ノードに、複数の入出力ノードの機能、及び入出力ノードではない通常のノードとしての機能も付与する事ができる。例えば、ある1つの始端入力ノードは、2つの内部ルールへの出力ノードの機能、1つの内部ルールからの入力ノードの機能、1つの終端出力ノード及び通常のノードとしての機能も兼ね備える(図5)。このように、複数の入出力ノードの機能を有する入出力ノードの事を、「拡張入出力ノード」と呼ぶ。拡張入出力ノードを使用する事により、大幅にルールを記述するためのメモリを圧縮する事ができる。それは、図5を例にして説明すると、一つの実体の拡張入出力ノードへのポインタを、その拡張入出力ノードの使用される箇所に書き込むだけですむからである。図5において、拡張入出力ノードを使用せずに、同じネットワークを記述する場合、5つの入出力ノード、1つの通常ノード及び5つのナル遷移アークを用いなくてはならない。 【0036】請求項5に記述のマスター文法管理部2は、マスタールール同士の接続関係を、埋め込み型方式(図6)で管理する。これは、異なる複数箇所から呼び出され、異なる箇所へ接続される同一内容のネットワークを持つマスタールールを、ルール全体で共有し、実体を1つだけ保持することにより、省メモリが実現できるためである。例えば、全国住所タスクにおいて、付加語ルールは各階層間のいたる場所から呼び出され、それぞれ異なるルールへと接続される。この場合、ルール間接続管理ルール中の、付加語を埋め込みたい箇所で付加語ルール呼び出せば、それぞれの付加語ルールに入った仮説は、それぞれの付加語ルールから戻ってくるため、仮説は適切なルール間遷移をする。以上のように、付加語ルールはたった1つのマスタールールとして記録されるだけであり、付加語ルールの記述のために必要なメモリは、一箇所以上、何箇所で呼び出されていようと変わらない。 【0037】マスター文法管理部は、コンパイル部のコンパイル、圧縮したマスタールールを、外部記憶装置上、又はメモリ上のどこにあるかを管理する。プロンルール管理部からマスタールール取得要求があった時に、マスター文法管理部は以下のような動作を行なう。 A)もし要求のあったマスタールールが外部記憶上にある場合、主記憶上に読み込む。 B)もし要求のあったマスタールールが、プロン文法管理部及びアーク展開部が直接解読できない形式に圧縮されている場合、その圧縮を展開する。プロン文法管理部及びアーク展開部が直接解読できる形式に圧縮されているなら、その圧縮は展開しない。つまり、圧縮を展開するかどうかは、プロン文法管理部及びアーク展開部のサポートする圧縮方式に依存する。 【0038】請求項7に記載のマスター文法管理部は、プロンルール制御部から、あるマスタールールが不要であると通知された時には、そのマスタールールをメモリ上から削除することができる。 【0039】プロン文法管理部2’は、プロンルールを生成し、プロンルール、プロンアーク及びプロンノードを主記憶上に記憶、管理する。 【0040】請求項9に記述のプロン文法管理部は、プロンアーク及びプロンノードを、それらの属するプロンアーク毎に管理する。このことにより、プロンアークやプロンノードは、自分がどのプロンルールに属するかという情報を個別に持つ必要がなくなり、省メモリが実現できる。 【0041】プロンアーク及びプロンノードは、アーク展開部がマスタールールを解読し、生成する。マスター文法管理部の説明で既に述べたが、複数のプロンルールは、同一のマスタールールを共有する事ができる。つまり、マスタールールAが複数箇所で呼び出される場合、メモリ上に存在するマスタールールAは1つだけである。これに対し、プロンルールはサーチ処理に必要になった箇所の数だけ生成される。 【0042】プロンルール同士の接続関係は、請求項6に記載のプロン文法管理部により、木構造状(図7)に管理される。木構造状のプロンルールの管理方法は、埋め込み型(図6)のマスタールールの管理方法と密接な関係がある。図6で外部ルールとして表されるルールは、図7で上位ルールとして表され、図6で内部ルールとして表されるルールは、図7で下位ルールとして表される。外部ルールの個数は、図6、7の両方において常に1つだけである。内部ルールの個数は、図6、図7の両方で一致する。 【0043】マスタールールにおける、埋め込み型のルール管理方式では、マスタールール同士の接続関係を全て保持する実体としての構造体は存在しない。つまり、マスタールールのルール同士の接続の管理は、各ルールの内部に、内部ルールの名前又は内部ルールへのポインタを埋め込む事によってのみ行なわれ、全体のマスタールールの接続関係を把握する構造体は実在しない。例えば、ルールAが、ルールAを内部ルールとして持つ時、全体のマスタールールの接続関係は無限の再帰となるので、埋め込み型の構造体によって実体として表す事はできない。 【0044】これに対し、木構造状のプロンルールの管理構造体は実体が存在する。プロンルールは、サーチ処理に必要なものだけが作成されるため、有限個しか存在しない。 【0045】以下では、プロンルール管理部における木構造状のプロンルールの管理構造体を、ルールツリーと呼ぶ。 【0046】プロンルールが生成される手順は以下の通りである。 1)仮説展開部5が、プロンルールAに属する仮説を後続プロンアークに展開する処理を行おうとしたが、後続プロンアークが存在しなかった。 2)仮説展開部が、アーク展開部6に後続プロンアークの展開を要求する。 3)アーク展開部が、後続アークがマスターアークであり、未展開音素アーク(アークAと呼ぶ)である事を発見する。このとき、アークAは、必ず内部ルールへの出力アーク、ルール終端アークかのどちらか一方であるか、又は両方である。 4)アークAを環境依存音素プロンアークに展開するために、さらに後続のアーク(アークBと呼ぶ)の音素が必要となる。アークAが内部ルールへの出力アークである場合は、5)を実行する。アークAが終端出力アークである場合は、7)を実行する。アークAが内部ルールへの出力アークであり、かつ終端出力アークでもある場合には5)及び7)を実行する。以上で、プロンルールの作成は終了する。アークAのプロンアークへの展開方法は、アーク展開部の説明で述べる。 5)ルールツリーを調べ、プロンルールAの内部ルールのうち、アークAに接続する内部ルールであるプロンルール(プロンルールB)が生成されているかどうかを調べる。既にプロンルールBが生成されている場合、重複してプロンルールBを生成してはならないため、ここで内部プロンルールの作成処理は終了する。 6)プロンルールAのマスタールール(マスタールールA)を調べ、マスター文法管理部からマスタールールAの内部ルールのうち、アークAの接続する内部ルール(マスタールールB)を取得する。マスタールールBから、マスタールールBに対応するプロンルールBを生成し、ルールツリーにプロンルールAの内部ルールとして登録する。これでプロンルールBの生成は終了する。 7)ルールツリーを調べ、プロンルールAの外部ルールであるプロンルール(プロンルールB)が生成されているかどうかを調べる。プロンルールBが生成されている場合、重複してプロンルールBを生成してはならないので、ここ外部プロンルールの作成処理は終了する。 8)ルールツリーを調べ、プロンルールAの外部ルールであるマスタールール(マスタールールB)の取得要求をマスター文法管理部に出す。マスタールールBから、マスタールールBに対応するプロンルールBを生成し、ルールツリーにプロンルールAの外部ルールとして登録する。 【0047】以上が、プロンルールBの生成手順である。 【0048】請求項8に記載のプロン文法管理部は、サーチ処理部が不必要であると判断し、削除するよう命令されたプロン構造体を削除、又は外部記憶上に退避する機能を備える。 【0049】請求項10に記載のプロン文法管理部は、プロンアークを削除する際に、その復旧情報を主記憶上に記録することができる。この復旧情報を記録することにより、請求項12に記載のアーク展開部は迅速なプロンアークの復旧を実現する。復旧情報を記録しない場合、一度行なったプロンアークの生成処理を再び行なう必要が生じる。プロン文法管理部は、復旧情報を外部記憶装置に退避し、復旧情報が必要になった際に主記憶上にロードすることもできる。復旧情報としては、以下のものが挙げられる。 1)プロンルールが削除される場合、そのプロンルールのルールツリー上での位置2)始端アーク又は内部ルールからの入力アークであるプロンアーク(プロンアークA)が削除される場合、プロンアークAの属するプロンルール(プロンルールA)の、ルールツリー上での位置及び、プロンルールA上での位置(又はルール中での通しID)上記の例、2)に記載のプロンアークAを削除する際には、プロンアークAを後続アークとして持つ全てのプロンアークに、プロンアークAが削除されたことを通知する必要がある。通知しない場合、仮説展開部が既に存在しないプロンアークAに仮説を展開しようとして、サーチ処理が正常に行なわれなくなる。 【0050】始端アーク又は内部ルールからの入力アーク以外のプロンアークは、他のプロンルールに属するプロンアークの後続アークにはなり得ないため、復旧情報を記録する必要はない。 【0051】サーチ制御部3は、フレーム同期ビームサーチに従って、仮説展開部5に仮説展開命令を出す。請求項11に記載の仮説展開部は、仮説記憶部4から仮説を取得し、プロンルール単位で仮説展開を行なう。単語終端情報は、ワードエンド管理部7に記録する。 【0052】サーチ処理部は、サーチ処理に不必要なプロン構造体を削除するよう、プロン文法管理部に命令を出すことができる。以下に、どのようなプロン構造体が不必要であるかを判断する例を挙げる。 例1)仮説の存在しないプロンアーク。仮説の存在しないプロンアークは、既にサーチ処理に不必要である可能性があるため、削除することができる。 例2)仮説の存在しないプロンルール及びそのプロンルール中の全ての構造体。仮説の存在しないプロンルールはメモリを消費するだけであるので、削除することができる。 例3)プロンルール及びそのプロンルールの任意の階層の内部プロンルール(ルールツリーを用いて図3で示されるプロンルール)に仮説の存在しないプロンルール中の全てのプロン構造体。これは、例2)を改良したものである。例2)では、内部ルールに仮説が含まれている場合、その仮説が後に戻ってくる可能性がある。仮説が内部ルールから戻ってきた場合、削除したプロンルールを復旧する必要があり、効率がそれほど良くない。そのため、任意の階層の内部ルールを調べることにより、上記の現象を回避することができる。またプロン文法管理部は、展開されたプロンルールが全て削除されたマスタールールを削除するよう、マスター文法管理部に指示を出すことができる。 【0053】請求項12に記載のアーク展開部6は、仮説展開部から、あるプロンアーク(プロンアークA)の後続のマスターアーク(マスターアークB)をプロンアーク(プロンアークB)に展開するよう指示されることにより、アークの展開を行なう。展開されたプロンアークBは、プロン文法管理部に渡され、プロン文法管理部が記憶する。なお、既にプロンアークBが存在する場合は、プロンアークBを重複して展開することはしない。 【0054】プロンアークAの後続アークの展開手順は、以下の通りである。 1)プロンアークAに、後続アークが記録されているかどうかを調べる。 2)プロンアークAに後続アークが記録されていない場合、3)を実行する。そうでない場合は、記録されている後続アークの中の全てのマスターアークについて、5)を実行する。 3)プロンアークAのマスターアーク(マスターアークA)を調べる。 4)マスターアークAの全ての後続マスターアーク(マスターアークB)をマスター文法管理部から取得する。マスターアークBの取得にルール遷移が必要な場合は、プロン文法管理部にルール遷移を行なった後の、後続マスターアークの取得要求を出し、マスター文法管理部からマスターアークBを取得する必要がある。全てのマスターアークBについて、5)を実行する。 5)もし、マスターアークBが、ルール中での通しIDを持つアークならば、後述する「ルール中での通しIDを持つマスターアークの展開手順」を実行して、マスターアークBをプロンアーク(プロンアークB)に展開する。そうでない場合、マスターアークBを環境依存音素プロンアーク(プロンアークB)として展開する。 6)プロンアークBの管理をプロン文法管理部で行なうため、プロンアークBをプロン文法管理部に渡す。もし、プロンアークBが別のプロンルール(プロンルールB)上にある場合、プロンルールBのルールツリー上での位置もプロン文法管理部に渡す。 7)プロンアークBへのポインタを、プロンアークAの後続アークとして、プロンアークAに記録する。 8)もし、マスターアークBがプロンアークAの後続アークとして登録されているなら、後続アークのリストから削除する。 【0055】以上でマスターアークBの展開は終了である。 【0056】ルール中での通しID(ID−B)を持つマスターアーク(マスターアークB)の展開手順は以下の通りである。なお、左音素を持つアークをプロンアークAとする。 1)通しID(ID−B)を持つマスターアーク(マスターアークB)が環境依存音素マスターアークの場合、2)を実行する。そうでない場合、5)を実行する。 2)マスターアークBの属するプロンルール(プロンルールB)を、プロン文法管理部から取得する。マスターアークBは環境依存音素であるので、プロンルールBは必ず存在する。 3)プロン文法管理部から、プロンルールB上のID−Bを持つプロンアークBを取得する。 4)もし、プロンアークBがまだ生成されていないために取得できない場合には、マスターアークBは環境依存音素アークであるため、そのままプロンアークBに展開できる。プロンアーク(プロンアークB)を生成して終了する。 5)マスターアークBは、未展開音素アークである。プロンアークAの音素を左音素として、今までにマスターアークBが(複数の)環境依存音素プロンアークBに展開されたことがある場合、再びプロンアークへの展開を行なう必要はない。過去の展開結果をそのまま利用する。ここで展開は終了する。 6)マスターアークBが、今までに一度もプロンアークに展開されたことがない場合、8)を実行する。そうでなければ、7)を実行する。 7)過去にマスターアークが異なる左音素で展開された際の、全ての後続アークを取得する。11)を実行する。 8)マスターアークBの属するマスタールール(マスタールールB)をマスター文法管理部から取得する。 9)マスタールールBのプロンルール(プロンルールB)を、プロン文法管理部から取得する。もしプロンルールBがまだ作成されていなければ、プロン文法管理部はプロンルールBを自動的に作成する。 10)マスターアークBの全ての後続アークを、マスタールールBから取得する。もし後続アークがマスタールールB以外にも存在し、後続アークの取得にルール遷移が必要であれば、そのマスタールールをマスター文法管理部から取得する。 11)取得した全ての後続アークに対し、未展開音素アークであるマスターアークBを環境依存音素に変換する。 12)11)で求めた全ての環境依存音素に対して、プロンアーク(プロンアークB)を生成する。つまり、一つのマスターアークBは複数のプロンアークBに展開される。 13)それぞれのプロンアークBに、プロンアークBの(複数個あるかもしれない)後続アークを記録する。 14)全てのプロンアークBを、プロンルールBのルールツリー上での位置と共に、プロン文法管理部に通知し、記録する。 【0057】以上がマスターアークBが、ルール中での通しIDを持つ場合の復旧手順である。 【0058】本発明では、未展開音素の存在ネットワーク文法及びアークの複数の入力を持つネットワーク文法のサーチ処理を正しく行なうため、未展開音素アーク及び複数の入力を持つアークに、ルール中での通しIDをつける。ルール中での通しIDを持つマスターアークに対応するプロンアークが既に存在するのに、それを調べずに、同じプロンアークを複数個生成すると、そのプロンアーク以降のネットワークは重複して生成され、サーチ処理が正常に動作しなくなる。 【0059】請求項13に記載のアーク展開部は、マスタールールの形式には依存しない、統一されたプロンアーク、プロンノードを生成する。これによるメリットは、全てのプロンルール上の仮説に対して、仮説展開部が同じ方法で行なえるために、新しい形式のマスタールールの拡張が容易であり、汎用性に優れることである。 【0060】これに対し、請求項14に記載のアーク展開部は、マスタールールの形式に依存した、最適化されたプロンアーク、プロンノードを生成する。これによるメリットは、各マスタールールの形式に特化したアルゴリズムを用いて、それぞれのプロンルール上の仮説展開が行なえるため、省メモリ、省演算量が実現できることである。 【0061】請求項15に記載のアーク展開部は、プロン文法管理部によって削除されたプロンアーク(プロンアークB)を、請求項10に記載のプロン文法管理部が記録した復旧情報を使用することにより、少ない処理量で復旧することを可能とする。プロンアークBのマスターアークをマスターアークBとする。 【0062】マスターアークBが環境依存音素アークである場合の復旧手順は以下の通りである。 1)マスターアークBの環境依存音素を持つプロンアーク(プロンアークB)を作成する。 2)プロン文法管理部にプロンアークBを記録する。この際、マスターアークBが、ルール中での通しIDを持つ場合、そのIDと共にプロン文法管理部に記録する。 【0063】以上がマスターアークBが、環境依存音素アークである場合の復旧手順である。 【0064】マスターアークBが、未展開音素アークである場合の復旧手順は以下の通りである。未展開音素アークは必ずルール中での通しIDを持つ。 1)請求項10に記載のプロン文法管理部が、プロンアークBを削除した際に記録した後続アークの情報を、プロン文法管理部から取得する。後続アークが他のルール上にあれば、その後続アークの存在したルールの、ルールツリー上での位置も同時に取得する。 2)ルール中での通しID(ID−B)を持つマスターアーク(マスターアークB)の展開手順の、11)を実行する。 【0065】以上がマスターアークBが、未展開音素アークである場合の復旧手順である。 【0066】サーチ処理部が、全ての音声フレームについてサーチ処理を終了すると、認識結果出力部8は、ワードエンド管理部の情報から、N-best やワードグラフをアプリケーションに渡す。 【0067】 【発明の効果】以上説明したように、本発明は以下の効果を有する。 【0068】サブネットワーク文法(ルール)に分割した形でネットワーク状に記述された文脈自由文法を、ルールに適切な方法でコンパイルし、記録する手段と、コンパイルされたルール(マスタールール)を、サーチ処理の必要に応じてメモリ上に圧縮を展開し、マスタールール同士の接続関係を埋め込み型方式で管理する手段と、マスタールールを連続音声認識のサーチ処理に適した形式(プロンルール)に展開し、プロンルール、プロンルールに含まれるアーク(プロンアーク)及びノード(プロンノード)をメモリ上に記憶、削除し、プロンルール同士の接続関係を木構造上に管理する手段と、統一された形式、又はサーチに最適化された形式のプロンルール、プロンアーク等を用いてサーチを行なう手段と、マスタールールの形式の違いを吸収してプロンアークを展開し、さらに一度行なったルール遷移を二度と行なわずにルール間の音素アークを環境依存音素アークに展開する手段とを備えることにより、省メモリ、省演算量、高い汎用性を実現することができるという効果がある。
|
| 【出願人】 |
【識別番号】000004237 【氏名又は名称】日本電気株式会社
|
| 【出願日】 |
平成13年1月16日(2001.1.16) |
| 【代理人】 |
【識別番号】100088328 【弁理士】 【氏名又は名称】金田 暢之 (外2名)
|
| 【公開番号】 |
特開2002−215182(P2002−215182A) |
| 【公開日】 |
平成14年7月31日(2002.7.31) |
| 【出願番号】 |
特願2001−7571(P2001−7571) |
|