(57)【特許請求の範囲】
【請求項１】
コンピュータによって、Ｍ個（Ｍ≧３）の縦続接続された仮説生成部と、前記仮説生成部のそれぞれに付随するＭ個の仮説補正部と、前記仮説補正部のそれぞれに付随するＭ個の仮説絞込み部とを備えた記号列変換部を構成し、
仮説とは入力される入力記号列に対して状態遷移が可能な状態遷移過程を表し、出力記号列とはその状態遷移過程において出力されるものとし、仮説で特定される状態遷移過程の各状態遷移に関連付けられた重みの累積値を累積重みとし、
前記Ｍ個の各仮説生成部が、それぞれに入力される入力記号列に対して状態遷移が可能な状態遷移過程である仮説を仮説生成規則に従って生成する仮説生成処理と、
前記仮説補正部が、前記仮説生成部で生成された仮説に付与された累積重みを、各後段の仮説生成部が生成する仮説に付与された累積重みの中の最小値または最大値である特異値により補正する仮説補正処理と、
前記仮説絞込み部が、前記仮説生成部で生成した仮説の中から前記仮説補正部で補正された累積重みが特異値を呈する仮説を抽出する処理と、
前記仮説生成部は、前段の仮説生成部の生成した仮説に対応する出力記号列を後段の仮説生成部の入力記号列とする、
ことを特徴とする記号列変換方法。
【請求項２】
請求項１記載の記号列変換方法において、
コンピュータによって、記号列を順に読み込む記号列入力部を構成し、
前記仮説補正処理は、前記仮説生成部が生成した仮説に付与される累積重みを、次段の仮説生成部において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する仮説補正処理を前記記号列入力部から前記１段目の仮説生成部へ記号が入力される毎にＭ−１段目の仮説生成部が生成した仮説の累積重みから１段目の仮説生成部が生成した仮説の累積重みの全てに渡って適用することを特徴とする記号列変換方法。
【請求項３】
請求項１又は２の何れかに記載の記号列変換方法において、
前記仮説絞込み部が、入力信号列が全て読み込まれた時点で、該仮説絞込み部が付随する仮説生成部が生成した仮説の中から補正された累積重みが特異値を呈する累積重みを持つ仮説を抽出する仮説抽出処理と、この仮説抽出処理で抽出した仮説に対応する出力記号列を次段の仮説生成部の入力記号列として入力する入力処理とを実行し、
前記記号列変換部が、Ｍ段目の仮説生成部が生成した仮説の中から前記仮説抽出処理で抽出した仮説に対応する出力記号列をもって記号列変換結果とすることを特徴とする記号列変換方法。
【請求項４】
Ｍ個（Ｍ≧３）の縦続接続された仮説生成部と、前記仮説生成部のそれぞれに付随するＭ個の仮説補正部と、前記仮説補正部のそれぞれに付随するＭ個の仮説絞込み部とを備えて構成される記号列変換装置であって、
仮説とは入力される入力記号列に対して状態遷移が可能な状態遷移過程を表し、出力記号列とはその状態遷移過程において出力されるものとし、仮説で特定される状態遷移過程の各状態遷移に関連付けられた重みの累積値を累積重みとし、
前記Ｍ個の縦続接続された仮説生成部は、それぞれに入力される入力記号列に対して状態遷移が可能な状態遷移過程である仮説を仮説生成規則に従って生成し、
前記仮説補正部が、前記仮説生成部で生成された仮説に付与された累積重みを、各後段の仮説生成部が生成する仮説に付与された累積重みの中の最小値または最大値である特異値により補正し、
前記仮説絞込み部が、前記仮説生成部で生成した仮説の中から前記仮説補正部で補正された累積重みが特異値を呈する仮説を抽出し、
前記仮説生成部は、前段の仮説生成部の生成した仮説に対応する出力記号列を後段の仮説生成部の入力記号列とする、
ことを特徴とする記号列変換装置。
【請求項５】
請求項４記載の記号列変換装置において、
記号列を順に読み込む記号列入力部を備えて構成され、
上記仮説補正部は、各仮説生成部が生成した仮説に付与された累積重みを、次段の仮説生成部において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する重み補正手段と、この重み補正手段を前記記号列入力部から前記１段目の仮説生成部へ記号が入力される毎にＭ−１段目の仮説生成部が生成した仮説の累積重みから１段目の仮説生成部が生成した仮説の累積重みの全てに渡って補正させる繰返し制御手段とを備えることを特徴とする記号列変換装置。
【請求項６】
請求項４又は５の何れかに記載の記号列変換装置の何れかにおいて、
前記仮説絞込み部は、入力記号列が全て読み込まれた時点で、該仮説絞込み部が付随する仮説生成部が生成した仮説の中から補正された累積重みが特異値を呈する累積重みを持つ仮説を抽出する仮説抽出手段と、この仮説抽出手段が抽出した仮説に対応する出力記号列を次段の仮説生成部の入力記号列として入力する入力処理手段とを備え、
Ｍ段目の仮説生成部が生成した仮説の中から前記仮説抽出手段が抽出した仮説に対応する出力記号列をもって記号列変換結果とすることを特徴とする記号列変換装置。
【請求項７】
コンピュータによって、音声特徴記号列抽出部を構成し、
前記音声特徴記号列抽出部が入力音声信号の短時間音響パターンの時系列をその音響特徴を表わす記号列として抽出する音響特徴記号列変換処理ステップを備え、この音響特徴記号列変換処理ステップで変換された音響特徴を表わす記号列を請求項１乃至３の何れかに記載の記号列変換方法により入力音声信号に対応する記号列に変換し、
初段の仮説生成部は、前記音声特徴記号列抽出部で抽出した音響特徴を表す記号列を入力とし、音声固定単位の標準的特徴を備えた音響モデル用仮説生成規則と、種々の単語の発音を前記音声固定単位の系列に対応させる単語発音辞書用仮説生成用規則とを参照して、単語系の記号列を出力記号列とする仮説を生成することを特徴とする音声認識方法。
【請求項８】
コンピュータが解読可能なプログラム言語によって記述され、コンピュータを請求項４乃至６の何れかに記載の装置として機能させるためのプログラム。
【請求項９】
コンピュータが読み取り可能な記録媒体によって構成され、この記録媒体に請求項８記載のプログラムを記録した記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、重み付き有限状態変換器によって表現された記号列変換規則によって、入力された記号列に対して生成可能な数多くの出力記号列から、適用される変換規則の重みの累積値が最小または最大の特異値を呈する出力記号列を効率的に見つけることを可能とする記号列変換方法、及びそれを用いた音声認識方法並びに音声言い換え方法、記号列変換装置とプログラム及び記録媒体に関する。
【背景技術】
【０００２】
重み付き有限状態変換器（英訳Weighted Finite-State Transducer：ＷＦＳＴ）とは、記号列を別の記号列に変換するための規則を、状態と状態遷移の図に表現する方式を言う。重み付き有限状態変換器については、例えば、非特許文献１に開示されている。以下、この重み付き有限状態変換器を仮説生成規則と称し、この仮説生成規則を実行する部分を仮説生成部と称する。
【０００３】
仮説生成規則は、状態と、状態から状態へと遷移できることを表す状態遷移、および、状態遷移において受理される入力記号と、その際に出力される出力記号、および、その状態遷移の重みの集合によって定義される。仮説生成規則は、ある入力記号列が与えられたときに、初期状態からその入力記号列の記号を順に受理する状態遷移に従って出力記号を出力しながら状態遷移を繰り返し、終了状態に達すると終了する計算モデルである。形式的には、仮説生成規則は次の８つの組（Ｑ，Σ，Δ，ｉ，Ｆ，Ｅ，λ，ρ）によって定義される。
１．Ｑは有限の状態の集合。
２．Σは入力記号の有限の集合。
３．Δは出力記号の有限の集合。
４．ｉ∈Ｑは初期状態。
５．Ｆ∈Ｑは終了状態の集合。
６．Ｅ∈Ｑ×Σ×Δ×Ｑは、現状態から入力記号により、出力記号を出力して次状態に遷移する状態遷移の集合。
７．Λは初期重み。
８．ｐ（ｑ）は終了状態ｑの終了重み。ｑ∈Ｆ。
【０００４】
仮説生成規則の一例を図１に示す。図１において、１０はマル（“○”）で表された状態を示しており、そのマルの中の数字はその状態の番号を表している。１１は二重マル（“◎”）で表された終了状態を示しており、その二重マルの中の数字は、その終了状態の番号と状態遷移が終了して最後に累積される終了重みが“（状態番号）／（終了重み）”のように表されている。以後、状態の番号を用いて状態を指し示す場合は、単に状態とその番号を用いて“状態０”や“状態３”のように称す。
１２は各状態を結ぶ矢印（“→”）で表された状態遷移を示しており、各々の状態遷移に付与された記号や数字は、その状態遷移に関連付けられた入力記号、出力記号、重みを“（入力記号）：（出力記号）／（重み）”のように表したものである。
【０００５】
図１の仮説生成規則を表によって定義することもできる。図２は、各行が一つの状態遷移を表し、その状態遷移における遷移元の状態番号と遷移先の状態番号、入力記号、出力記号、重みが記されている。最終状態（図１では状態３）は、遷移先、入力記号、出力記号を空とし、状態遷移終了時に累積される重み（終了重み）を記入する書式となっている。一般に、仮説生成規則の初期状態は状態０とされ、初期重みΛも省略されることが多い。そのため、本特許でも初期状態は状態０とし、初期重みは省略して明記しないこととする。
【０００６】
図１の仮説生成規則は、例えば、入力記号列ａ，ａ，ｂ，ｃを出力記号列ｄ，ｄ，ｃ，ｂに変換することができ、その際の状態遷移過程は、状態番号の系列を用いて表すと０，０，１，３であり、重みの累積値（以下「累積重み」）と称す）は０．５＋０．５＋０．３＋１＋０．５＝２．８となる。しかし、図１の仮説生成規則では、ａ，ａ，ｂ，ｃという入力記号列に対しては、０，０，１，３と０，０，２，３の２通りの状態遷移過程が考えられる。一般に、ある入力記号列に対して複数の状態遷移の可能性がある場合（これを非決定性という）は、状態遷移過程における累積重みが特異値である最小（または最大）になる状態遷移過程を選択し、その累積重み最小（または最大）の状態遷移過程に対応する出力記号列を選択する。累積重みが最小の状態遷移過程を選ぶか最大の状態遷移過程を選ぶかは重みの性質と目的による。
【０００７】
図１の例においても、ａ，ａ，ｂ，ｃという入力記号列に対して累積重みが最も小さい状態遷移過程０，０，１，３を選んで、変換結果をｄ，ｄ，ｃ，ｂとする。
ある仮説生成規則（これをＴとする）があり、このＴに対して記号列Ｘが入力記号列として与えられたとき、累積重みが最小となる出力記号列（すなわち記号列変換結果）を求めるには、次の累積重みの最小値Ｗ（Ｘ）を計算する必要がある。
【数１】
0004478088.tif 000002
ここで、Ｗ（Ｘ→Ｙ，Ｔ）は、仮説生成規則Ｔによって記号列Ｘが記号列Ｙに変換されるときの状態遷移過程における累積重みを表す。この累積重みＷ（Ｘ→Ｙ，Ｔ）の最小値Ｗ（Ｘ）を求めて、その最小値を与えるＹが記号列変換結果となる。
このＷ（Ｘ）を効率的に求めるには、一般にグラフのコスト最小探索の技術の一つである横型探索法を利用する。例えば、グラフの横型探索法の手順は、非特許文献２に開示されている。
【０００８】
仮説生成規則による記号列変換は、入力記号列によって初期状態から終了状態に至るコスト（累積重み）最小の状態遷移過程を探し出すことによって行われる。
重み付き有限状態変換器は、出力記号を定義しない重み付き有限状態受理器（英訳：Weighted Finite-State Acceptor：ＷＦＳＡ）や、入力記号も出力記号も定義しない有向グラフも包含している。ＷＦＳＡであれば各状態遷移における入力記号と出力記号を同一にする、有向グラフであればすべての入力記号と出力記号を一つの記号と仮定することで表現できる。従って、本発明で扱う仮説生成規則のための各方法は、すべてＷＦＳＡや有向グラフにも適用することが可能である。
【０００９】
一つの仮説生成規則を用いた記号列変換の一実施例を図３に示す。まず、本明細書において“仮説”とは、ある記号列が順に入力され、現時点までに読み込まれた入力記号列に対して、仮説生成規則において初期状態からその入力記号列によって状態遷移を繰り返した場合の可能性のある一つの状態遷移過程を表すものとする。
記号列変換部１０２は仮説生成規則格納部１００と仮説生成部２００と仮説絞込み部４００とを備えて構成される。仮説生成部２００は仮説生成規則格納部１００から仮説生成規則を読み込んでその仮説生成規則に従って仮説の生成動作を実行する。仮説生成部２００は記号列入力部１０３から受け取った記号を仮説生成規則に従って、これまで読み込んだ記号列に対する仮説の集合を新たに受け取った記号を用いて各仮説の状態遷移過程を更新することにより新たな仮説を生成する。仮説生成部２００で生成された全ての仮説は仮説絞込み部４００に送り込まれる。
【００１０】
仮説絞込み部４００では、仮説生成部２００から受け取った仮説の集合に対し、同じ状態に到達している仮説の中で累積重みが例えば最小の仮説以外の仮説を削除することにより仮説を絞り込む。入力記号列が最後まで読み込まれていれば、累積重み最小の仮説に対応する出力記号列を記号列出力部１０６に送る。入力記号列が最後まで読み込まれていなければ、仮説を仮説生成部２００に送る。記号列出力部１０６では、仮説絞込み部４００から受け取った出力記号列を出力する。
【００１１】
次に、この実施の形態に基づいて記号列を変換する手順の一例を示す。
まず、仮説生成規則のある状態遷移をｅと表すとき、ｎ[ｅ]を遷移先の状態（次状態）、ｉ[ｅ]を入力記号、ｏ[ｅ]を出力記号、ｗ[ｅ]を重みと定義する。また、ある仮説をｈと表すとき、ｓ[ｈ]を到達している状態、Ｗ[ｈ]をその状態遷移過程における累積重み、Ｏ[ｈ]をその状態遷移過程において出力される記号列とする。
この手順において、仮説は仮説のリスト（以後これを仮説リストと呼ぶ）を用いて管理する。仮説リストに対し、仮説を挿入したり、仮説を取り出したりすることができる。但し、仮説リストに仮説を挿入する場合に、仮説リスト内に同じ状態に到達している仮説があれば、累積重みの小さい方だけを仮説リストに残し、仮説を絞り込む。
【００１２】
仮説生成規則を用いた記号列変換手順を図４に示す。
以下、図４の手順を、仮説生成規則を備えた記号列変換方法の一実施例（図３）と対比して説明する。
ステップＳ１０１より開始し、初期設定として、ステップＳ１０２において空の仮説リストＨとＨ’を生成する。初期の仮説ｈを生成し、ｓ[ｈ]＝０（仮説生成規則の初期状態）、Ｗ[ｈ]＝０、Ｏ[ｈ]＝φ（空の記号列）とし、仮説リストＨに挿入する。
ステップＳ１０２では、記号列入力部１０３において記号を一つ読み込み、その記号をｘに代入する。次のステップＳ１０５からステップＳ１０８は、仮説生成部１０４において実行される。
【００１３】
ステップＳ１０５では、仮説リストＨから仮説を一つ取り出し仮説ｈに代入し、状態ｓ[ｈ]から入力記号がｘに等しい状態遷移のリストＥを用意する。
ステップＳ１０６でＥ＝φ（空のリスト）であればステップＳ１１０に進む。そうでなければ、ステップＳ１０７に進み状態遷移リストＥから状態遷移を一つ取り出し、状態遷移ｅに代入する。
ステップＳ１０８で新たな仮説ｆを生成し、ｓ[ｆ]＝ｎ[ｅ]、Ｗ[ｆ]＝Ｗ[ｆ]＋ｗ[ｅ]、Ｏ[ｆ]＝Ｏ[ｈ]・ｏ[ｅ]とする。ここで、“・”は二つの記号または記号列を接続し、一つの記号列にする演算を表す。
【００１４】
ステップＳ１０９は、仮説絞込み部１０５で実行され、仮説ｆを仮説リストＨ’に挿入することにより仮説を絞り込む。
ステップＳ１０９からステップＳ１０６に戻り、次の状態遷移について仮説を展開する。
ステップＳ１１０では、仮説リストＨ＝φ（すべての仮説を展開済み）であればステップＳ１１１に進む。そうでなければステップＳ１０５に戻り、次の仮説を展開する。
ステップＳ１１１では、新たに生成された仮説のリストＨ’の要素を、すでに空となった仮説リストＨにすべて移し、ステップＳ１１２に進む。
【００１５】
ステップＳ１１２では、記号列入力部１０３において次の入力記号が存在するならばステップＳ１０４に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しステップＳ１１３に進む。
ステップＳ１１３では、仮説リストＨの中で終了状態に到達している仮説の累積重みにその終了状態の終了重みを加えた後で、その終了状態に到達している仮説の中から累積重み（Ｗ[ｈ]）が最小となる仮説ｈを選び、その出力記号列Ｏ[ｈ]を記号列変換結果として、記号列出力部１０６において出力する。
【００１６】
ステップＳ１１４にて仮説生成規則を用いる記号列変換手順を終了する。
この記号列変換手順に従って、図１の仮説生成規則に入力記号列ａ，ａ，ｂ，ｃが与えられた場合の出力記号列を求める過程を順を追って説明する。但し、ある仮説（現状態番号ｓ、出力記号列Ｏ、累積重みＷ）がある場合、その仮説を（ｓ，Ｏ，Ｗ）のように表すものとする。また、仮説生成規則のある状態遷移（現状態番号ｓ、次状態番号ｎ、入力記号ｘ、出力記号ｙ、重みｗ）を＜ｓ→ｎ，ｘ：ｙ／ｗ＞と表すものとする。
【００１７】
ステップＳ１０１から開始し、ステップＳ１０２で空の仮説リストＨとＨ’を作る。
ステップＳ１０３により仮説リストＨの中に仮説（０，φ，０）を挿入する。
ステップＳ１０４で記号ａを読み込み、ステップＳ１０５において仮説リストＨから仮説（０，φ，０）を取り出す。この仮説の現状態０から入力記号がａに等しい状態遷移＜０→０，ａ：ｄ／０．５＞を含む状態遷移リストＥを作る。
ステップＳ１０６でＥ＝φではないのでステップＳ１０７に進み、状態遷移＜０→０，ａ：ｄ／０．５＞を取り出し、ステップＳ１０８で新たな仮説（０，ｄ，０．５）を生成し、ステップＳ１０９で仮説リストＨ’に挿入する。
【００１８】
ステップＳ１０６に戻りＥ＝φであるためステップＳ１１０に進み、仮説リストＨ＝φであるためステップＳ１１１に進む。Ｈ’の要素（０，ｄ，０．５）をＨに移し、ステップＳ１１２で次の入力記号が存在するのでステップＳ１０４に戻る。
続いて、ステップＳ１０４で記号ａを読み込み、ステップＳ１０５において仮説リストＨから仮説（０，ｄ，０．５）を取り出す。この仮説の現状態０から入力記号がａに等しい状態遷移＜０→０，ａ：ｄ／０．５＞を含む状態遷移リストＥを生成する。
ステップＳ１０６でＥ＝φではないのでステップＳ１０７に進み、状態遷移リストＥから状態遷移＜０→０，ａ：ｄ／０．５＞を取り出す。ステップＳ１０８で新たな仮説（０，ｄｄ，１）を生成し、ステップＳ１０９でＨ’に挿入する。
【００１９】
ステップＳ１０６に戻り状態遷移リストＥ＝φであるためステップＳ１１０に進み、Ｈ＝φであるためステップＳ１１１に進む。仮説リストＨ’の要素（０，ｄｄ，１）を仮説リストＨに移し、ステップＳ１１２で次の入力記号が存在するのでステップＳ１０４に戻る。
続いて、ステップＳ１０４で記号ｂを読み込み、ステップＳ１０５において仮説リストＨから仮説（０，ｄｄ，１）を取り出す。この仮説の現状態０から入力記号がｂに等しい状態遷移＜０→１，ｂ：ｃ／０．３＞と＜０→２，ｂ：ｂ／１＞を含む状態遷移リストＥを作る。
【００２０】
ステップＳ１０６でＥ＝φではないのでステップＳ１０７に進み、状態遷移リストＥから状態遷移＜０→１，ｂ：ｃ／０．３＞を取り出す。ステップＳ１０８で新たな仮説（１，ｄｄｃ，１．３）を生成し、ステップＳ１０９でＨ’に挿入する。
ステップＳ１０６に戻りＥ＝φではないのでステップＳ１０７に進み、状態遷移リストＥから状態遷移＜０→２，ｂ：ｂ／１＞を取り出す。ステップＳ１０８で新たな仮説（２，ｄｄｂ，２）を生成して、ステップＳ１０９でＨ’に挿入する。
ステップＳ１０６に戻りＥ＝φであるためステップＳ１１０に進み、Ｈ＝φであるためステップＳ１１１に進み、Ｈ’の要素（１，ｄｄｃ，１．３）と（２，ｄｄｂ，２）は仮説リストＨに移され、ステップＳ１１２で次の入力記号が存在するのでステップＳ１０４に戻る。
【００２１】
続いて、ステップＳ１０４で記号ｃを読み込み、ステップＳ１０５において仮説リストＨから仮説（１，ｄｄｃ，１．３）を取り出す。この仮説の現状態１から入力記号がｃに等しい状態遷移＜１→３，ｃ：ｂ／１＞を含む状態遷移リストＥを作る。
ステップＳ１０６でＥ＝φではないのでステップＳ１０７に進み、状態遷移リストＥから状態遷移＜１→３，ｃ：ｂ／１＞を取り出す。ステップＳ１０８で新たな仮説（１，ｄｄｃｂ，２．３）を生成し、ステップＳ１０９でＨ’に挿入する。
ステップＳ１０６に戻りＥ＝φであるためステップＳ１１０に進み、Ｈ≠φであるためステップＳ１０５に戻り、仮説リストＨから仮説（２，ｄｄｂ，２）を取り出す。この仮説の現状態２から入力記号がｃに等しい状態遷移＜２→３，ｃ：ａ／０．６＞を含む状態遷移リストＥを作る。
【００２２】
ステップＳ１０６でＥ＝φではないのでステップＳ１０７に進み、状態遷移リストＥから状態遷移＜２→３，ｃ：ａ／０．６＞を取り出す。ステップＳ１０８で新たな仮説（３，ｄｄｂａ，２．６）を生成し、ステップＳ１０９で仮説リストＨ’に挿入する。このとき、仮説リストＨ’の中には既に仮説（３，ｄｄｃｂ，２．３）が含まれており、仮説（３，ｄｄｂａ，２．６）は同じ状態３に到達しているので、累積重みの小さい仮説（３，ｄｄｃｂ，２．３）を残し、仮説（３，ｄｄｂａ，２．６）はリストから削除する。
【００２３】
ステップＳ１０６に戻りＥ＝φであるためステップＳ１１０に進み、仮説リストＨ＝φであるためステップＳ１１１に進み、仮説リストＨ’の要素（３，ｄｄｃｂ，２．３）をＨに移し、ステップＳ１１２で次の入力記号が存在しないのでステップＳ１１３に進む。
ステップＳ１１３で、仮説リストＨ内の仮説（３，ｄｄｃｂ，２．３）の到達状態３は終了状態であるため、終了重みを加えて（３，ｄｄｃｂ，２．８）とし、この仮説が終了状態に到達した唯一の仮説であり、累積重み最小となるので、その出力記号列ｄｄｃｂを変換結果として出力し、ステップＳ１１４で記号列変換処理を終了する。
【００２４】
次に、二つの仮説生成規則があって、順に記号列の変換を行う問題を考える。つまり、二つの仮説生成規則、Ｔ１とＴ２があって、入力記号列Ｘが与えられたときに、初めにＴ１を用いて記号列Ｘを記号列Ｙに変換し、その記号列ＹをＴ２の入力記号列として、更に変換して出力記号列Ｚを得ることを意味する。仮説生成規則の理論では、この問題は、Ｔ１によってＸを変換する際にその出力記号列となり得るすべてのＹをＴ２の入力記号列として考慮し、それら入力記号列に対して可能性のあるＴ２の出力記号列Ｚの集合の中から、Ｔ１における状態遷移過程の累積重みとＴ２における状態遷移過程の累積重みの和が最小となる変換結果を得る問題となる。従って、
【数２】
0004478088.tif 000003
を計算し、このＷ（Ｘ）を与えるＹとＺの組のうちＺを記号列変換結果とする。
【００２５】
例として、図５と図６に示す二つの仮説生成規則を考える。図５は、仮名の記号列を漢字の記号列に変換する仮説生成規則の一例である。ただし、図５に現れる“ε”の記号は、“：”の左側にある場合は入力記号なしで状態遷移し、右側にある場合はその状態遷移において何も出力しないことを表す。
【００２６】
この仮説生成規則は、例えば、記号列“あ，め”を状態遷移過程０，１，５（累積重み１）によって“雨”に変換し、“あ，め，だ，ま”は状態遷移過程０，１，５，０，４，５（累積重み３）によって“雨，玉”に変換する。しかし、日本語では一般に“あめだま”に対応する漢字は“雨玉”よりも“飴玉”の方が一般的であるが、図５の仮説生成規則では、記号列“飴，玉”を出力する状態遷移過程０，２，５，０，４，５の累積重みは４であるのに対し、“雨，玉”に変換する累積重みが３であることから、累積重みが小さい場合の“雨，玉”という変換結果になる。
【００２７】
一方、図６は漢字の連接に重みを与える仮説生成規則である。この仮説生成規則では、すべての状態遷移において入力記号と出力記号が同じ、つまり記号列を変換せずにそのまま出力するが、状態遷移過程において入力記号列（漢字列）の記号の連接が日本語としてもっともらしい場合には重みが小さく、もっともらしくない場合には重みが大きくなっている。例えば、入力記号列“雨，降り”を受理する状態遷移過程０，１，３の累積重みは０となり、入力記号列“飴，降り”を受理する状態遷移過程０，２，３の累積重みは３となり、入力記号列“雨，降り”の方が日本語としてもっともらしく連接された記号列であることを示している。
【００２８】
そして、この図５と図６の仮説生成規則を用いて記号列を変換する場合、例えば、仮名の記号列“あ，め，だ，ま”を入力すると、図５の仮説生成規則から得られる出力記号列は、“雨，玉”で累積重みが３と“飴，玉”で累積重みが４の場合がある。これら出力記号列をそれぞれ図６の仮説生成規則に入力した場合、“雨，玉”に対する累積重み５が、“飴，玉”に対する累積重みが１となり、図５と図６の二つの仮説生成規則による累積重みの和を計算すると次のようになる。
“あ，め，だ，ま”→“雨，玉”における累積重み  ３＋５＝８
“あ，め，だ，ま”→“飴，玉”における累積重み  ４＋１＝５
これらの累積重みを比較した結果、より累積重みの小さい出力記号列は“飴，玉”となる。このような変換結果を得るには、漢字の連接に関する重みを持つ図６の仮説生成規則が不可欠である。
【００２９】
二つの仮説生成規則を用いた従来の記号列変換の一実施例を図７に示す。まず、二つの仮説生成規則を用いて２段階の記号列変換を行う場合の前段に用いられる仮説生成規則を実行する部分を前段仮説生成部、後段に用いられる仮説生成規則を実行する部分を後段仮説生成部と呼ぶことにする。また、二つの仮説生成規則を用いる場合の“仮説”とは、ある記号列が順に入力され、現時点までに読み込まれた入力記号列に対して、前段仮説生成部において初期状態からその入力記号列によって状態遷移を繰り返した場合の可能性のある一つの状態遷移過程と、その前段仮説生成部の状態遷移過程に対応する出力記号列を後段仮説生成部の入力記号列としたときの、ある一つの状態遷移過程の組を表すものとする。
【００３０】
二つの仮説生成規則を用いて記号列を変換する別の手段として、二つの仮説生成規則を事前に合成して一つの仮説生成規則とし、一つの仮説生成規則に対する記号列変換手順を適用する方法がある。仮説生成規則の合成方法に関しては、例えば、非特許文献３に開示されている。しかし、仮説生成規則を合成すると、二つの状態遷移の組合せに対して状態や状態遷移ができることから、仮説生成規則の状態数や状態遷移数が非常に大きくなってしまうことがある。そのためコンピュータで仮説生成規則を扱う場合に、メモリサイズ等の制約から、記号列変換を実行するのが難しい場合がある。
【００３１】
一方、二つの仮説生成規則を用いて最小コスト探索を行う標準的な手法では、各々の仮説を更新して新たな仮説を生成する際に、前段の仮説生成規則において可能な状態遷移と、後段の仮説生成規則において可能な状態遷移のすべての組合せに対して新たな仮説を生成することから、仮説の数が多くなり計算量が大きくなるという問題があった。それを解決する二つの仮説生成規則を用いた効率的な記号列変換方法が提案されている。この方法は、二つの仮説生成規則を用いる場合に最小コスト探索に基づく標準的な記号列変換方法と、効率的な記号列変換方法の両方に関する説明がある。そして、これらの方法を音声認識に適用した際、その標準的な記号列変換方法に対する効率的な記号列変換方法の変換処理時間が約３分の１に短縮されることが示されている。
【００３２】
以下、先に提案された二つの仮説生成規則を用いた効率的な記号列変換方法について述べる。
記号列を順に読み込む記号列入力部と、状態遷移によって記号列を変換する二つの仮説生成規則を用いて記号列を２段階で変換するための前段に用いる前段仮説生成部と後段に用いる後段仮説生成部とを用いて記号列を変換する記号列変換部と、後段仮説生成部による変換結果を出力する記号列出力部とを有し、
記号列入力部から記号を順に読み込んで、入力記号列を読み終えた時点で、前記記号列変換部において前段と後段の仮説生成部においてそれぞれ適用される状態遷移に対する重みの累積値（累積重み）が最小となる後段の仮説生成部の状態遷移過程に対応する出力記号列を記号列出力部から出力する記号列変換方法において、
記号を順に読み込みながら、前段仮説生成部の一つの状態遷移過程を表す仮説に対する累積重みを、その仮説の状態遷移過程における出力記号列を後段仮説生成部の入力記号列としたときの後段仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することで補正する。
【００３３】
入力記号列がすべて読み込まれた時点で、累積重み最小または最大の仮説とその仮説の状態遷移過程に対応する出力記号列を後段仮説生成部の入力記号列としたときに後段仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程に対する出力記号列をもって記号列変換結果とすることを特徴とする記号列変換方法を構成し、この記号列変換方法によって効率的に記号列を変換する。
【００３４】
以下、図面を用いて二つの仮説生成部による効率的な記号列変換方法について図７を用いて説明する。記号列入力部１０３では、記号を順に読み込み、記号列変換部１０２に送る。記号変換部１０２はこの例では仮説生成部２０１−１、２０１−２及び仮説補正部３０１−１、３０１−２と、仮説絞込み部４０１−１、４０１−２とによって構成した場合を示す。仮説生成部２０１−１と２０１−２では、前段の仮説生成部２０１−１は記号列入力部１０３から受け取った記号を前段仮説生成規則格納部１０１−１から読み込んだ前段仮説生成規則に従って仮説を生成する。後段の仮説生成部２０１−２は後段仮説生成規則格納部１０１−２から読み込んだ後段仮説生成規則に従って前段の仮説生成部２０１−１が生成した仮説を新たに受け取った記号を用いて更新することにより新たな仮説を生成し、仮説補正部３０１−１と３０１−２に送る。仮説補正部３０１−１と３０１−２では、仮説の状態遷移過程における出力記号列を後段の仮説生成部２０１−２の入力記号列としたときの後段の仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加えることで補正し、仮説絞込み部４０１−１と４０１−２に送る。
【００３５】
仮説絞込み部４０１−１と４０１−２では、仮説補正部３０１−１と３０１−２から受け取った仮説に対し、状態遷移過程が重複している仮説の中で累積重みが最小の仮説だけを残し、その他の仮説を削除することにより仮説を絞り込む。入力記号列が最後まで読み込まれていれば、累積重み最小の仮説とその仮説の状態遷移過程に対応する出力記号列を後段の仮説生成部２０１−２の入力記号列としたときに後段の仮説生成部２０１−２において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程に対する出力記号列を記号列出力部１０６に送る。入力記号列が最後まで読み込まれていなければ、残った仮説を仮説生成部２０１−１に送る。記号列出力部１０６では、仮説絞込み部４０１−２から受け取った出力記号列を出力する。
【００３６】
図８に、二つの仮説生成部２０１−１と２０１−２による効率的な記号列変換方法の具体的な手順を示す。
まず、前段の仮説生成部２０１−１における“仮説”と、その仮説の状態遷移過程から出力される記号列を後段の仮説生成部２０１−２の入力記号列とした場合に、後段の仮説生成部２０１−２の可能な一つの状態遷移過程を、“仮説”と区別して“補助仮説”と呼ぶことにする。一つの仮説に対して必ず一つ以上の補助仮説が存在するので、本実施の形態では、仮説ｈに対する補助仮説の集合を補助仮説リストＬ[ｈ]で表す。
【００３７】
また、仮説ｈがあるとき、ｓ１[ｈ]を仮説ｈの状態遷移過程において最後に到達した状態、Ｗ[ｈ]を仮説ｈの状態遷移過程における（補正された）累積重みとする。一方、仮説ｈに対して補助仮説ｇ(ｇ∈Ｌ[ｈ])があるとき、ｓ２[ｇ]を補助仮説ｇの状態遷移過程において最後に到達した状態、Ｗ[ｇ]を仮説ｈの状態遷移過程における累積重みと補助仮説ｇの状態遷移過程における累積重みの和、Ｏ[ｇ]を補助仮説ｇの状態遷移過程において出力される記号列とする。それから、仮説生成部２０１−１，２０１−２の終了状態の集合をそれぞれＦ１，Ｆ２とする。
【００３８】
以下、図８及び図９の手順を図７の実施の形態と対比して説明する。
ステップＳ２０１より開始し、初期設定として、ステップＳ２０２で空の仮説リストＨとＨ’を生成し、初期の仮説ｈを生成し、ｓ１[ｈ]＝０、Ｗ[ｈ]＝０、Ｌ[ｈ]＝φ（空のリスト）とし、仮説リストＨに挿入する。また、補助仮説ｇを生成し、ｓ２[ｇ]＝０、Ｗ[ｇ]＝０、Ｏ[ｇ]＝φ（空の記号列）とし、仮説ｈの補助仮説リストＬ[ｈ]に挿入する。
ステップＳ２０４では、記号列入力部１０３において記号を一つ読み込み、その記号をｘに代入する。次のステップＳ２０５からステップＳ２０８は、仮説生成部２０１において実行される。
【００３９】
ステップＳ２０５では、仮説リストＨから仮説を一つ取り出し仮説ｈに代入し、状態ｓ１[ｈ]から入力記号ｘで遷移可能な状態遷移のリストＥ１を生成する。
ステップＳ２０６で、Ｅ１＝φ（空のリスト）ならばステップＳ２１１に進む。そうでなければステップＳ２０７に進む。
ステップＳ２０７では、Ｅ１から状態遷移を一つ取り出して、ｅ１に代入し、ステップＳ２０８で新たな仮説ｆを生成し、ｓ１[ｆ]＝ｎ[ｅ１]、Ｗ[ｆ]＝Ｗ[ｈ]＋ｗ[ｅ１]、Ｌ[ｆ]＝Ｌ[ｈ]とする。
【００４０】
ステップＳ２０９は、仮説補正部３０１において、もしｏ[ｅ１]＝εならば仮説ｆを補正する手段（この手順の説明の後に別途説明する）を実行する。
ステップＳ２１０は、仮説絞込み部４０１において、仮説ｆを仮説リストＨ’に挿入することにより仮説を絞り込む。
ステップＳ２１１では、Ｈ＝φ（すべての仮説を展開済み）であればステップＳ２１２に進む。そうでなければステップＳ３０５に戻り、次の仮説を生成する。
ステップＳ２１２では、新たに生成された仮説のリストＨ’の要素を、既に空となった仮説リストＨにすべて移し、ステップＳ２１３に進む。
【００４１】
ステップＳ２１３では、記号列入力部１０３において次の入力記号が存在するならばステップＳ２０４に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しステップＳ２１４に進む。
ステップＳ２１４では、仮説リストＨの中から終了状態に到達しているすべての仮説ｈ(ｓ１[ｈ]∈Ｆ１)について累積重みＷ[ｈ]に終了重みρ(ｓ１[ｈ])を加え、補助仮説ｈの補助仮説リストＬ[ｈ]の中で終了状態に到達している補助仮説ｇ(ｓ２[ｇ]∈Ｆ２)について
【数３】
0004478088.tif 000004
を計算し、ｇの累積重みＷ[ｇ]が最小の補助仮説ｇ’を選び、その出力記号列Ｏ[ｇ’]を変換結果として記号列出力部１０６において出力する。
ステップＳ２１５にて二つの仮説生成部２０１−１と２０１−２を用いた記号列変換手順を終了する。
【００４２】
次に仮説補正部３０１−１と３０１−２における仮説補正手順について説明する。
仮説の補正は、前段仮説生成部２０１−１における仮説の状態遷移過程に対する累積重みを、その仮説の状態遷移過程における出力記号列を後段仮説生成部２０１−２の入力記号列としたときの後段仮説生成部２０１−２において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することを意味する。入力記号列Ｘが読み込まれた時点でその記号列Ｘを受理して記号列Ｙを出力する仮説の補正された累積重みは、
【数４】
0004478088.tif 000005
となり、その補正累積重みが最小である仮説の補正累積重みは
【数５】
0004478088.tif 000006
となり、先に述べた式（２）における二つの仮説生成部の累積重みの和の最小値と一致する。
【００４３】
従って、補正された累積重みを用いて、それを最小とする前段仮説生成部の出力記号列Ｙを求めて、そのＹを後段仮説生成部の入力記号列としたときの可能な状態遷移過程の中で累積重みが最小となる状態遷移過程に対応する出力記号列が記号列変換結果となる。
この記号列変換方法では、各仮説に対応付けられた補助仮説リストを利用して仮説の補正を効率的に行う。補正される仮説をｆとし、その補助仮説リストをＬ[ｆ]、仮説ｆの最後の状態遷移における出力記号をｙとする。
【００４４】
後段仮説生成部２０１−２の状態ｓ２[ｇ]（ｇはＬ[ｆ]に含まれる一つの補助仮説を表す）から、入力記号ｙによる状態遷移ｅ２を経て次状態ｎ[ｅ２]に至る補助仮説ｊを生成し、その到達状態をｓ[ｊ]＝ｎ[ｅ２]とする。また、仮説ｆの状態遷移過程において、仮説ｆの最後の状態遷移（ｅ１）よりも前にあって出力記号がεではない最も新しい状態遷移をｔとする。
このとき、補助仮説ｊの累積重みＷ[ｊ]は、次の３つの要素を加算することにより計算できる。
【００４５】
（Ａ１）仮説ｆの状態遷移過程における状態ｎ[ｔ]において生成された補助仮説ｇの累積重み：
この値はＷ[ｇ]に等しい。つまり、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま後に続く状態遷移過程の仮説に引き継がれるので、状態ｎ[ｔ]において生成された補助仮説リストはＬ[ｆ]に等しく、補助仮説リストＬ[ｆ]の個々の補助仮説の累積重みＷ[ｇ]をそのまま用いる。
【００４６】
（Ａ２）状態ｎ[ｔ]から状態ｓ１[ｆ]までの間に累積された重み：
但し、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま新たに生成された仮説に引き継がれるので、状態ｎ[ｔ]に至った仮説の補正された累積重みは、現在の補助仮説リストＬ[ｆ]の中で最小の累積重み
【数６】
0004478088.tif 000007
に等しく、これを現在の仮説ｆの累積重みＷ[ｆ]から差し引くことにより、状態ｎ[ｔ]から状態ｓ１[ｆ]までの間の累積重みが求まる。すなわち、
【数７】
0004478088.tif 000008
である。
【００４７】
（Ａ３）後段仮説生成部２０１−２の状態ｓ２[ｇ]からｓ２[ｊ]への状態遷移ｅ２における重み：ｗ[ｅ２]
従って、補助仮説ｊの累積重みはＷ[ｊ]＝Ｗ[ｇ]＋ＡＷ[ｆ]＋ｗ[ｅ２]のように計算する。
そして、仮説ｆの補正は、Ｗ[ｆ]を新たに生成された補助仮説ｊの累積重みＷ[ｊ]の中での最小値
【数８】
0004478088.tif 000009
を代入することにより行われる。
【００４８】
以下、仮説の補正手順を図１０を用いて説明する。この仮説補正手順は、図８及び図９に示したステップＳ２０８において実行される。この手順において補正される仮説をｆ、前段仮説生成部からの出力記号をｙ(＝ｏ[ｅ１])とする。
ステップＳ３０１では、仮説ｆを補正する手順を開始する。
ステップＳ３０２では、空の補助仮説リストＬ’を生成する。
ステップＳ３０３では、重みの補正項ＡＷ[ｆ]をＡＷ[ｆ]＝Ｗ[ｆ]−Ｗ[ｇ’]として求める。但し、ｇ’は、仮説ｆの補助仮説リストＬ[ｆ]の中で累積重みが最小の補助仮説を指す。
ステップＳ３０４では、Ｌ[ｆ]から補助仮説を一つ取り出し、ｇに代入する。状態ｓ２[ｇ]から入力記号ｙで遷移可能な状態遷移のリストＥ２を生成し、ステップＳ３０５に進む。
【００４９】
ステップＳ３０５では、リストＥ２から状態遷移を一つ取り出し、ｅ２に代入する。
ステップＳ３０６では、補助仮説ｊを生成し、ｓ２[ｊ]＝ｎ[ｅ２]、Ｗ[ｊ]＝Ｗ[ｇ]＋ＡＷ[ｆ]＋ｗ[ｅ２]、Ｏ[ｊ]＝Ｏ[ｇ]・ｏ[ｅ２]とする。
ステップＳ３０７では、補助仮説ｊを補助仮説リストＬ’に挿入する。
ステップＳ３０８では、Ｅ２が空（ｓ２[ｇ]からのすべての状態遷移に対して補助仮説を展開済み）であればステップＳ３０９に進む。そうでなければステップＳ３０５に戻り、次の状態遷移を調べる。
【００５０】
ステップＳ３０９では、Ｌ[ｆ]が空（すべての補助仮説を展開済み）であればステップＳ３１０に進む。そうでなければステップＳ３０４に戻り、次の補助仮説を展開する。
ステップＳ３１０では、新たに生成された補助仮説のリストＬ’の要素を、すでに空となった補助仮説リストＬ’[ｆ]にすべて移し、ステップＳ３１１に進む。
ステップＳ３１１では、補助仮説リストＬ[ｆ]の中で累積重み最小の補助仮説ｇ’’に対してＷ[ｆ]＝Ｗ[ｇ’’]とする。
ステップＳ３１２にて仮説補正手順を終了する。
【００５１】
また、この二つの仮説生成部を用いた記号列変換方法では、仮説リストに仮説を挿入する場合、一つの仮説生成部を用いる記号列変換方法と同様に、仮説リスト内に前段仮説生成部の同じ状態に到達している仮説が存在していれば、累積重みの小さい方を仮説リストに残し、仮説を絞り込む。但し、この仮説絞込みによって補助仮説が失われることがあるので、絞り込まれた仮説の補助仮説リストを、残った仮説の補助仮説リストに連結する。その際、補助仮説リスト内の補助仮説の累積重みを補正する必要がある。これは、仮説ｈと仮説ｆが前段仮説生成部の同じ状態に到達しているとき、補助仮説の累積重みを
【数９】
0004478088.tif 000010
のように補正する。この補正は、先に示した仮説の補正手順における（Ａ１）と（Ａ２）の項を加えたものに等しい。そして、
Ｗ[ｈ]＜Ｗ[ｆ]  ならば  Ｌ[ｈ]＝Ｌ[ｈ]＋Ｌ[ｆ]、ｆを削除
Ｗ[ｈ]＞Ｗ[ｆ]  ならば  Ｌ[ｆ]＝Ｌ[ｈ]＋Ｌ[ｆ]、ｈを削除
のように補助仮説リストを連結する。
【００５２】
記号列変換手順（図８及び図９）は、仮説補正手順（ステップＳ２０９）を除けば前段の仮説生成部だけを用いて探索する手順（図４）とほぼ同じ計算手順となり、従来の記号列変換手順と比べて計算量を少なく抑えることができる。仮説補正手順における計算の負荷はあるが、前段の仮説生成部の状態遷移において出力記号がεでない場合においてのみ仮説補正手順が実行されるので、前段の仮説生成部の出力記号がεである割合が多いほど、処理量削減の効果は大きくなる。
【００５３】
次に、二つの仮説生成部を用いる図８及び図９の記号列変換手順に従って、図５の仮説生成規則をＴ１、図６の仮説生成規則をＴ２として、入力記号列“あ，め，だ，ま”が与えられた場合の出力記号列を求める過程を順を追って説明する。但し、仮説（仮説生成規則Ｔ１の現状態番号ｓ１、出力記号列Ｏ、累積重みＷ、補助仮説リストＬ）は（ｓ１，Ｏ，Ｗ，Ｌ）のように表し、補助仮説（仮説生成規則Ｔ２の現状態番号ｓ２、出力記号列Ｏ、累積重みＷ）は（ｓ２，Ｏ，Ｗ）のように表す。また、補助仮説リストＬは｛（ｓ２，Ｏ，Ｗ），（ｓ２’，Ｏ’，Ｗ’），…｝のように表す。
【００５４】
〔二つの仮説生成規則を用いる記号列変換手順を開始〕
ステップＳ２０１から開始し、ステップＳ２０２で空の仮説リストＨとＨ’を作る。
ステップＳ２０３により仮説リストＨの中に仮説（０，φ，０，｛（０，φ，０）｝）を挿入する。
【００５５】
〔入力記号“あ”の処理〕
ステップＳ２０４で記号“あ”を読み込み、ステップＳ２０５において仮説リストＨから仮説（０，φ，０，｛（０，φ，０）｝）を取り出す。
この仮説の仮説生成規則Ｔ１の現状態０から入力記号が“あ”の状態遷移
＜０→１，あ：雨／０＞，
＜０→２，あ：飴／０＞
を含むリストＥ１を作る。
ステップＳ２０６でＥ１＝φではないのでステップＳ２０７に進み、状態遷移過程リストＥ１から状態遷移＜０→１，あ：雨／０＞を取り出し、ステップＳ２０８で新たな仮説ｆ＝（１，雨，０，｛（０，φ，０）｝）を生成する。ステップＳ２０９で状態遷移＜０→１，あ：雨／０＞の出力記号はεではないので、仮説ｆ＝（１，雨，０，｛（０，φ，０）｝）を補正するステップＳ３０１（図１０）に進む。
【００５６】
ステップＳ３０２で空の補助仮説リストＬ’を生成する。
ステップＳ３０３でＡＷ[ｆ]＝０となる。
ステップＳ３０４で補助仮説リストＬ＝｛（０，φ，０）｝から補助仮説（０，φ，０）を取り出し、仮説生成規則Ｔ２の状態０から入力記号“雨”で遷移可能な状態遷移
＜０→１，雨：雨／０＞，
＜０→３，雨：雨／０＞
を含む状態遷移過程リストＥ２を作る。
ステップＳ３０５で状態遷移過程リストＥ２＝φではないのでステップＳ３０６に進む。状態遷移過程リストＥ２から状態遷移＜０→１，雨：雨／０＞を取り出し、ステップＳ３０７で補助仮説（１，雨，０）を生成し、ステップＳ３０８で補助仮説（１，雨，０）をＬ’に挿入する。
【００５７】
ステップＳ３０５に戻り状態遷移過程リストＥ２＝φではないのでステップＳ３０６に進む。状態遷移過程リストＥ２から状態遷移＜０→３，雨：雨／０＞を取り出し、ステップＳ３０７で補助仮説（３，雨，０）を生成し、ステップＳ３０８で補助仮説（３，雨，０）をＬ’に挿入する。
ステップＳ３０５に戻り状態遷移過程リストＥ２＝φであるため、ステップＳ３０９に進む。補助仮説リストＬ＝φなのでステップＳ３１０に進み、補助仮説リストＬ’の要素（１，雨，０），（３，雨，０）をＬに移す。
ステップＳ３１１において仮説の累積重みは０となり、ステップＳ３１２で仮説の補正を終了する。この結果、仮説は（１，雨，０，｛（１，雨，０），（３，雨，０）｝）となる。
【００５８】
ステップＳ２１０に戻り、仮説（１，０，｛（１，雨，０），（３，雨，０）｝）を仮説リストＨ’に挿入する。
ステップＳ２０６に戻り状態遷移過程リストＥ１＝φではないのでステップＳ２０７に進み、状態遷移過程リストＥ１から状態遷移＜０→２，あ：飴／０＞を取り出し、ステップＳ２０８で新たな仮説ｆ＝（２，飴，０，｛０，φ，０｝）を生成し、ステップＳ２０９で状態遷移＜０→２，あ：飴／０＞の出力記号はεではないので、仮説ｆ＝（２，飴，０，｛（０，φ，０）｝）を補正するためステップＳ３０１に進む。
ステップＳ３０２で空の補助仮説リストＬ’を生成する。
ステップＳ３０３で累積重みＡＷ[ｆ]＝０となる。
【００５９】
ステップＳ３０４で補助仮説リストＬ＝｛（０，φ，０）｝から補助仮説（０，φ，０）を取り出し、仮説生成規則Ｔ２の状態０から入力記号“雨”で遷移可能な状態遷移
＜０→２，飴：飴／０＞，
＜０→４，飴：飴／０＞
を含むリストＥ２を作る。
ステップＳ３０５でリストＥ２＝φではないのでステップＳ３０６に進む。リストＥ２から状態遷移＜０→２，飴：飴／０＞を取り出し、ステップＳ３０７で補助仮説（２，飴，０）を生成し、ステップＳ３０８で補助仮説（２，飴，０）を補助仮説リストＬ’に挿入する。
【００６０】
ステップＳ３０５に戻り状態遷移過程リストＥ２＝φではないのでステップＳ３０６に進む。Ｅ２から状態遷移＜０→４，飴：飴／０＞を取り出し、ステップＳ３０７で補助仮説（４，飴，０）を生成し、ステップＳ３０８で補助仮説（４，飴，０）を補助仮説リストＬ’に挿入する。
ステップＳ３０５に戻り状態遷移過程リストＥ２＝φであるため、ステップＳ３０９に進む。補助仮説リストＬ＝φなのでステップＳ３１０に進み、補助仮説リストＬ’の要素（２，飴，０），（４，飴，０）をＬに移す。
ステップＳ３１１において仮説の累積重みは０となり、ステップＳ３１２で仮説の補正を終了する。この結果、仮説は（２，０，｛（２，飴，０），（４，飴，０）｝）となっている。
【００６１】
ステップＳ２１０に戻り、仮説（２，飴，０，｛（２，飴，０），（４，飴，０）｝）を仮説リストＨ’に挿入する。
ステップＳ２０６に戻りＥ１＝φであるためステップＳ２１１に進む。仮説リストＨ＝φであるためステップＳ２１２に進み仮説リストＨ’内の仮説（１，雨，０，｛（１，雨，０），（３，雨，０）｝）と（２，飴，０，｛（２，飴，０），（４，飴，０）｝）を仮説リストＨに移し、ステップＳ２１３で次の入力記号が存在するのでステップＳ２０４に戻る。
【００６２】
〔入力記号“め”の処理〕
続いて、ステップＳ２０４で記号“め”を読み込み、ステップＳ２０５において仮説リストＨから仮説（１，雨，０，｛（１，雨，０），（１，１，雨，０）｝）を取り出す。この仮説の仮説生成規則Ｔ１の現状態１から入力記号が“め”の状態遷移
＜１→５，め：ε／１＞
を含む状態遷移過程リストＥ１を作る。
ステップＳ２０６で状態遷移過程リストＥ１＝φではないのでステップＳ２０７に進み、状態遷移過程リストＥ１から状態遷移＜１→５，め：ε／１＞を取り出し、ステップＳ２０８で新たな仮説（５，雨，１，｛（１，雨，０），（３，雨，０）｝）を生成し、ステップＳ２０９に進む。
【００６３】
状態遷移＜１→５，め：ε／１＞の出力記号はεであるため、次のステップＳ２１０に進み仮説（５，雨，１，｛（１，雨，０），（３，雨，０）｝）を仮説リストＨ’に挿入する。
ステップＳ２０６に戻り状態遷移過程リストＥ１＝φであるためステップＳ２１１に進む。仮説リストＨ≠φであるためステップＳ２０５に戻り、仮説リストＨから仮説（２，飴，０，｛（２，飴，０），（４，飴，０）｝）を取り出す。この仮説の現状態２から入力記号が“め”の状態遷移
（＜２→５，め：ε／２＞，φ）
を含む状態遷移過程リストＥ１を作る。
【００６４】
ステップＳ２０６で状態遷移過程リストＥ１＝φではないのでステップＳ２０７に進み、状態遷移過程リストＥ１から状態遷移＜２→５，め：ε／２＞を取り出し、ステップＳ２０８で新たな仮説（５，飴，２，｛（２，飴，０），（４，飴，０）｝）を生成し、ステップＳ２０９に進む。
状態遷移＜２→５，め：ε／２＞の出力記号はεであるため、次のステップＳ２１０に進み仮説（５，飴，２，｛（２，飴，０），（４，飴，０）｝）を仮説リストＨ’に挿入する。
【００６５】
但し、仮説リストＨ’には既に仮説（５，雨，１，｛（１，雨，０），（３，雨，０）｝）が存在し、仮説生成規則Ｔ１における到達状態が５であるため、累積重みの小さい仮説（５，雨，１，｛（１，雨，０），（３，雨，０）｝）を残し、仮説（５，飴，２，｛（２，飴，０），（４，飴，０）｝）は削除するが、補助仮説リストは連結させて、仮説を（５，雨，１，｛（１，雨，１），（３，雨，１），（２，飴，２），（４，飴，２）｝）のようにする。
ステップＳ２０６に戻り状態遷移過程リストＥ１＝φであるためステップＳ２１１に進む。仮説リストＨ＝φであるためステップＳ２１２に進み仮説リストＨ’内の仮説（５，雨，１，｛（１，雨，１），（１，雨，１），（２，飴，２），（４，飴，２）｝）を仮説リストＨに移し、ステップＳ２１３で次の入力記号が存在するのでステップＳ２０４に戻る。
【００６６】
〔入力記号“だ”の処理〕
続いて、ステップＳ２０４で記号“だ”を読み込み、ステップＳ２０５において仮説リストＨから仮説（５，雨，１，｛（１，雨，１），（１，雨，１），（２，飴，２），（４，飴，２）｝）を作り出す。この仮説の仮説生成規則Ｔ１の現状態５から入力記号が“だ”の状態遷移
＜０→４，だ：玉／１＞
を含む状態遷移過程リストＥ１を作る。ここで、仮説生成規則Ｔ１の現状態５から状態０へは入力記号なしで遷移できるので、Ｅ１に含まれる仮説生成規則Ｔ１の状態遷移は＜０→４，だ：玉／１＞となっている。
【００６７】
ステップＳ２０６で状態遷移過程リストＥ１＝φではないのでステップＳ２０７に進み、状態遷移過程リストＥ１から状態遷移＜０→４，だ：玉／１＞を取り出し、ステップＳ２０８で新たな仮説ｆ＝（４，雨玉，２，｛（１，雨，１），（３，雨，１），（２，飴，２），（４，飴，２）｝）を生成し、ステップＳ２０９で状態遷移＜０→４，だ：玉／１＞の出力記号はεではないので、仮説ｆ＝（４，雨玉，２，｛（１，雨，１），（３，雨，１），（２，飴，２），（４，飴，２）｝）を補正するためステップＳ３０１に進む。
ステップＳ３０２で空の補助仮説リストＬ’を生成する。
ステップＳ３０３で累積重みＡＷ[ｆ]＝２−ｍｉｎ（１，１，２，２）＝１となる。
【００６８】
ステップＳ３０４で補助仮説リストＬ＝｛（１，雨，１），（３，雨，１），（２，飴，２），（４，飴，２）｝から補助仮説（１，雨，１）を取り出し、仮説生成規則Ｔ２の状態１から入力記号“玉”で遷移可能な状態遷移
＜１→４，玉：玉／５＞
を含む状態遷移過程リストＥ２を作る。
ステップＳ３０５でＥ２＝φではないのでステップＳ３０６に進む。状態遷移過程リストＥ２から状態遷移＜１→４，玉：玉／５＞を取り出し、ステップＳ３０７で補助仮説（４，雨玉，７）を生成する。ここで、補助仮説の累積重みは
Ｗ[ｇ]＋ＡＷ[ｆ]＋ｗ[ｅ２]＝１＋１＋５＝７
のように計算されている。そして、ステップＳ３０８で補助仮説（４，雨玉，７）をＬ’に挿入する。
【００６９】
ステップＳ３０５に戻りＥ２＝φであるため、ステップＳ３０９に進む。
補助仮説リストＬ＝φではないのでステップＳ３０４に進み、補助仮説（３，雨，１）を取り出し、仮説生成規則Ｔ２の状態３から入力記号“玉”で遷移可能な状態遷移は存在しないので状態遷移過程リストＥ２＝φとする。
ステップＳ３０５に戻りＥ２＝φであるため、ステップＳ３０９に進む。補助仮説リストＬ＝φではないのでステップＳ３０４に進み、補助仮説（２，飴，２）を取り出し、仮説生成規則Ｔ２の状態２から入力記号“玉”で遷移可能な状態遷移
＜２→４，玉：玉／１＞
を含むリストＥ２を作る。
【００７０】
ステップＳ３０５でＥ２＝φではないのでステップＳ３０６に進む。状態遷移過程リストＥ２から状態遷移＜２→４，玉：玉／１＞を取り出し、ステップＳ３０７で補助仮説（４，飴玉，４）を生成する。ここで、補助仮説の累積重みは
Ｗ[ｇ]＋ＡＷ[ｆ]＋ｗ[ｅ２]＝２＋１＋１＝４
のように計算されている。
ステップＳ３０８で補助仮説（４，飴玉，４）を補助仮説リストＬ’に挿入する。このとき補助仮説リストＬ’には補助仮説（４，雨玉，７）が存在するので累積重みの小さい補助仮説（４，飴玉，４）を残し、（４，雨玉，７）は削除する。
【００７１】
ステップＳ３０５に戻りＥ２＝φであるため、ステップＳ３０９に進む。
Ｌ＝φではないのでステップＳ４０４に進み、補助仮説（４，飴，２）を取り出し、仮説生成規則Ｔ２の状態４から入力記号“玉”で遷移可能な状態遷移は存在しないので状態遷移過程リストＥ２＝φとする。
ステップＳ３０５に戻りＥ２＝φであるため、ステップＳ３０９に進む。補助仮説リストＬ＝φなのでステップＳ３１０に進み、補助仮説リストＬ’の要素（４，飴玉，３）をＬに移す。
【００７２】
ステップＳ３１１において仮説の累積重みは４となり、ステップＳ３１２で仮説の補正を終了し、結果として、仮説は（４，雨玉，４，｛（４，飴玉，４）｝）となる。
ステップＳ２１０に戻って仮説（４，雨玉，４，｛（４，飴玉，４）｝）をＨ’に挿入する。
ステップＳ２０６に戻りＥ１＝φであるためステップＳ２１１に進む。Ｈ＝φであるためステップＳ２１２に進みＨ’内の仮説（４，雨玉，４，｛（４，飴玉，４）｝）をＨに移し、ステップＳ２１３で次の入力記号が存在するのでステップＳ２０４に戻る。
【００７３】
〔入力記号“ま”の処理〕
続いて、ステップＳ２０４で記号“ま”を読み込み、ステップＳ２０５において仮説リストＨから仮説（４，雨玉，４，｛（４，飴玉，４）｝）を取り出す。この仮説の仮説生成規則Ｔ１の現状態１から入力記号が“ま”の状態遷移
＜４→５，ま：ε／１＞
を含む状態遷移過程リストＥ１を作る。
ステップＳ２０６でＥ１＝φではないのでステップＳ２０７に進み、状態遷移過程リストＥ２から状態遷移＜４→５，ま：ε／１＞を取り出し、ステップＳ２０８で新たな仮説ｆ＝（５，雨玉，５，｛（４，飴玉，４）｝）を生成し、ステップＳ２０９に進む。
状態遷移＜４→５，ま：ε／１＞の出力記号はεであるため、次のステップＳ２１０に進み仮説ｆ＝（５，雨玉，５，｛（４，飴玉，４）｝）を仮説リストＨ’に挿入する。
【００７４】
ステップＳ２０６に戻りＥ１＝φであるためステップＳ２１１に進む。仮説リストＨ＝φであるためステップＳ２１２に進み仮説リストＨ’内の仮説（５，雨玉，５，｛（４，飴玉，４）｝）を仮説リストＨに移し、ステップＳ２１３で次の入力記号が存在しないのでステップＳ２１４に進む。
ステップＳ２１４で、仮説リストＨ内の仮説ｈ＝（５，雨玉，５，｛（４，飴玉，４）｝）が終了状態に到達した唯一の仮説であり、補助仮説リストＬ[ｈ]に含まれる補助仮説ｇ＝（４，飴玉，４）について累積重みＷ[ｇ]＝４＋（５−１）＋０＝５を計算し、その補助仮説の出力記号列“飴玉”を変換結果として出力し、ステップＳ２１５で記号列変換処理を終了する。
【非特許文献１】E.Roche and Y.Schabes著、“Finite-State Language Processing”，MIT Press.1997
【非特許文献２】長尾真著“岩波講座ソフトウエア１４；知識と推論”、岩波書店１０９〜１１３頁
【非特許文献３】E.Roche and Y.Schabes著、“Finite-State Language Processing”，MIT Press,1997の１５章“Speech Recognition by Composition of Weighted Finite Automata”
【発明の開示】
【発明が解決しようとする課題】
【００７５】
従来は２つの仮説生成部を用いて記号列を変換する記号列変換方法はあったが、２つの仮説生成部を用いて複雑な変換過程を必要とする記号列変換を行なわせるためには２つの仮説生成部に要求される変換機能は高度となり、その作成に多くの人手とコストが要求される。
本発明では３個以上の仮説生成部を組合せて高度の変換機能を得ることができる記号列変換方法及び装置を提供しようとするものである。つまり、各個々の仮説生成部の機能は簡素でありながら、それらを多段に組合せることにより高度の変換機能を得ようとするものである。
【課題を解決するための手段】
【００７６】
本発明による記号列変換方法の特徴はコンピュータによって、記号列を順に読み込む記号列入力部と、仮説生成規則によって入力された記号列を他の記号列の候補となる仮説に変換する３個以上Ｍ個の仮説生成部を備えた記号列変換部と、この記号列変換部が出力する変換結果を取り込む記号列出力部とを構成し、記号列変換部はＭ個の各仮説生成部のそれぞれに入力される入力記号列に対して状態遷移が可能な過程で求められる記号列で構成される仮説を生成する仮説生成処理と、生成された仮説に付与された累積重み値を、各後段の仮説生成部が生成する仮説に付与された累積重みの中の特異値により補正する仮説補正処理と、補正された累積重みを用いて不要な仮説を除去し、尤度の高い仮説に絞り込む仮説絞り込処理とを実行する点である。
【００７７】
本発明による記号列変換方法の更に他の特徴は上記記号列変換方法において、
仮説補正処理は、各仮説生成部が生成した仮説に付与される累積重みを、次段の仮説生成部において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する仮説補正処理を含み、この仮説補正処理を記号列入力部から１段目の仮説生成部へ記号が入力される毎にＭ−１段目の仮説生成部が生成した仮説の累積重みから１段目の仮説生成部が生成した仮説の累積重みの全てに渡って適用することを特徴とする。
【００７８】
本発明による記号列変換方法の更に他の特徴は前記の何れかに記載の記号列変換方法において、
仮説絞り込処理は、入力信号列が全て読み込まれた時点で、１段目の仮説生成部が生成した仮説の補正された累積重みの中の特異値を呈する累積重みを持つ仮説を抽出する仮説抽出処理と、この仮説抽出処理で抽出した仮説を次段の仮説生成部の入力記号列として入力する入力処理とを含み、これら仮説抽出処理と入力処理とを各仮説生成部に対して実行させて１段目の仮説生成部が生成した仮説からＭ段目の仮説生成部が生成した仮説の全ての中から補正された累積重みによって指定される仮説を選択し、Ｍ段目の仮説生成部が生成した仮説の中から仮説抽出処理で抽出した仮説をもって記号列変換結果として出力することを特徴とする。
【００７９】
本発明では更に上記した記号列変換方法を用いた音声認識方法を提案するものであり、その特徴は入力音声信号からその音響特徴を表わす記号列を抽出する音響特徴記号列変換処理ステップを備え、この音響特徴記号列変換処理ステップで変換された音響特徴を表わす記号列を前記した記号列変換方法の何れかにより入力音声信号に対応する記号列に変換することを特徴とする。
【００８０】
本発明では更に音声認識方法を用いた音声言い換え方法を提案するものであり、その特徴は入力音声信号をその音響特徴を表す音響特徴記号列に変換し、その音響特徴を表す記号列から単語の系列に変換する音声認識方法と、この音声認識方法で得られた単語の系列が文としてもっともらしい場合により小さな重みを与える第１仮説生成処理と、前記音声認識方法で得られた単語の系列を別の言語や様式の単語の系列に置き換える第２仮説生成処理と、その別の言語や様式の単語の系列が、その別の言語や様式の文としてもっともらしい場合により小さな重みを与える。第３仮説生成処理とから成る３回以上の仮説生成処理を用いて音声信号を別の言語や様式の文に変換して記号列出力部から出力することを特徴とする。
【発明の効果】
【００８１】
本発明によれば３個以上の仮説生成部を用いて記号列を変換できるから、各個々の仮説生成部の変換機能は簡素であっても、全体として高度の変換機能を得ることができる。因みに、例えば２ケ国語用の変換機能を持つ仮説生成部は比較的簡素に作成することができる。日本語から英語への変換機能を持つ第１仮説生成部、英語からフランス語への変換機能を持つ第２仮説生成部、フランス語からドイツ語への変換機能を持つ第３仮説生成部等である。これらの仮説生成部が存在する状況下にあって本発明を適用することにより、第１仮説生成部と第２仮説生成部を組合せて日本語からフランス語への変換機能を持つ記号変換装置を得ることができる。また第１仮説生成部と第２仮説生成部と第３仮説生成部を組合せて日本語からドイツ語への変換機能を持つ記号変換装置を簡単に得ることができる点が本発明の大きな特徴である。
【発明を実施するための最良の形態】
【００８２】
本発明による記号列変換装置はハードウエアによって構成することができるが、それよりも、本発明による記号列変換プログラムをコンピュータにインストールし、コンピュータに記号列変換装置として機能させる実施形態が最良の実施形態である。
【００８３】
コンピュータを本発明による記号列変換装置として機能させるには、コンピュータには記号列を順に読み込む記号列入力部と、状態遷移過程によって記号列を他の記号列の候補となる仮説を生成するＭ段の仮説生成部と、このＭ段の仮説生成部で生成した各仮説に付与された重みをそれぞれ後段側の仮説生成部で生成された仮説に付与されている重みを用いて補正する仮説補正部と、この仮説補正部で補正された重みを用いて尤度の高い仮説を選択し仮説を絞り込む仮説絞込み部と、この仮説絞込み部が絞り込んだ仮説を出力記号列として出力する記号列出力部とを構築し記号列変換装置として機能させる。
【００８４】
つまり、記号入力部は他の記号列に変換すべき記号列を１記号ずつ読み込んで初段の仮説生成部に引き渡す。初段の仮説生成部は記号が入力される毎に自己に与えられている重み付き有限状態変換機能（例えば日本語を英語に変換する機能）により状態遷移が可能な組合せに基づいて変換先の記号列の候補記号列となる仮説を生成する。仮説は１個に限らず複数生成される場合が多く、各仮説には重みが付与される。
【００８５】
１段目の仮説生成部で生成した仮説は全て２段目の仮説生成部に入力記号列として入力される。２段目の仮説生成部はこの２段目の仮説生成部に与えられている重み付き有限状態変換機能により更に他の記号列の候補記号列となる仮説を生成する。２段目の仮説生成部で生成される仮説には１段目の仮説生成部で付与された重みと２段目の仮説生成部で付与される重みが累積される。２段目の仮説生成部において可能な状態遷移過程の各々で生成される仮説を更に３段目の仮説生成部の入力記号列として受渡す手順をＭ段目の仮説生成部まで繰返す。
【００８６】
仮説補正部は前記仮説生成過程をＭ段目の仮説生成部まで受渡す手順によって求められたＭ−１段目の仮説生成部の個々の仮説生成過程で付与された累積重みを、その個々の仮説生成過程で生成された候補記号列をＭ段目の仮説生成部の入力記号列としたときのＭ段目の仮説生成部において可能な仮説生成過程の中で最小又は最大の累積重みを用いて補正する。つまり、この補正はＭ段目の仮説生成部で生成した仮説に付与されている累積重みの最小又は最大を選択し、その選択した重みを前段の仮説生成部で生成された仮説の累積重みに加算することにより行なわれる。
【００８７】
Ｍ−１段目の仮説生成部で生成した仮説に付与されている重みの補正後の重みの中から最小又は最大となる特異値を選択し、その選択した重みを用いてＭ−２段目の仮説生成部で生成した各仮説の累積重みを補正する。この補正手順を１段目の仮説生成部が生成した仮説まで繰返す。以上説明した仮説生成部と仮説補正部の動作は１段目の仮説生成部に記号が１個入力される毎に実行される。
【００８８】
仮説絞込み部は入力記号列が全て読み込まれた時点で、１段目の仮説生成部で生成した仮説の中で最小又は最大の補正された累積重みを持つ仮説を２段目の仮説生成部の入力記号列として絞り、その仮説を２段目の仮説生成部に入力したときの２段目の仮説生成部で生成する仮説の中の補正された累積重みが最小又は最大の仮説を３段目の仮説生成部の入力記号列として絞り込みを行なう。この絞り込み手順をＭ段目の仮説生成部まで繰返し、Ｍ段目の仮説生成部で生成された仮説の中の累積重みが最小又は最大を呈する仮説を記号列出力部に出力し、この出力記号列をもって記号列変換結果とする。
【００８９】
以上の動作を要約すると、Ｍ個（Ｍは３以上）の仮説生成部Ｔ１，Ｔ２，…，ＴＭがあって、入力記号列Ｘが与えられたときに、初めにＴ１を用いて記号列Ｘを仮説となる記号列Ｏ１に変換し、その記号列Ｏ１を２段目の仮説生成部Ｔ２の入力記号列として更に変換して出力記号列Ｏ２を得て、更にこれを３段目の仮説生成部Ｔ３の入力記号列として変換を行い、これをＭ番目の仮説生成部まで繰り返し、最終的にＴＭの出力記号列ＯＭを得ることを意味する。最終的な出力記号列ＯＭを求めるには、仮説生成部が二つの場合と同様に、Ｘを１番目の仮説生成部の入力記号列とするときのＭ個の仮説生成部によるあらゆる状態遷移過程の組み合わせの中から、すべての仮説生成部における状態遷移過程の累積重みの総和が最小となる変換結果を得ることとなる。つまり、
【数１０】
0004478088.tif 000011
を計算し、このＷ（Ｘ）を与えるＯ１，Ｏ２，…，ＯＭの組のうちＯＭを記号列変換結果とする。
本発明では、式（５）を次の式（６）
【数１１】
0004478088.tif 000012
のように考える。
【実施例１】
【００９０】
以下図面を用いて本発明の一実施例を説明する。
図１１は本発明の一実施例を示す。本発明による記号列変換部１０２はＭ段に縦続接続された仮説生成部２０１−１〜２０１−Ｍと、これらＭ個の各仮説生成部２０１−２からＭ段目の仮説生成部２０１−Ｍのそれぞれに付随して設けたＭ個の仮説生成規則格納部１０１−１〜１０１−Ｍと、仮説補正部３０１−１〜３０１−Ｍと、各仮説補正部３０１−１〜３０１−Ｍのそれぞれに付随して設けたＭ個の仮説絞込み部４０１−１〜４０１−Ｍとによって構成される。各仮説補正部３０１−１〜３０１−Ｍには後段の仮説生成部が生成した仮説の中の累積重みが最大又は最小となる特異値を呈する仮説の値で前段の仮説生成部が生成した仮説の累積重みを補正する重み補正手段３０１Ａと、この補正動作をＭ−１段目から１段目の仮説補正部まで繰返し実行させる繰返し制御手段３０１Ｂとを備える。また仮説絞込み部４０１−１〜４０１−Ｍは記号列が全て読み込まれた時点で、各仮説生成部２０１−１〜２０１−Ｍが生成した各仮説の補正された仮説中から累積重みが例えば最小となる仮説を抽出し、その仮説を次段の仮説生成部に入力する処理を実行する仮説抽出手段４０１Ａと、この仮説抽出手段４０１Ａが抽出した仮説を次段の入力とする入力処理部４０１Ｂとを備える。
【００９１】
初段の仮説生成部２０１−１には記号入力部１０３から記号が１個ずつ入力される。また終段の仮説絞込み部４０１−Ｍには補正された累積重みに応じて絞り込まれた仮説が記号列出力部１０６に出力される。
以下に各部の動作を詳細に説明する。
初期の仮説生成部２０１−１は常に１個の記号入力に対して自己に与えられた仮説生成規則に基づいて仮説を生成する。これに対して２段目以後の仮説生成部２０１−２〜２０１−Ｍには前段の仮説生成手段が生成した仮説（候補記号列）が入力される。従って、ここでは初段の仮説生成部２０１−１が出力する仮説と、２段目以後の仮説生成部２０１−２〜２０１−Ｍが出力する仮説とを区別するために、２段目以後の仮説生成部２０１−２〜２０１−Ｍが生成する仮説をｍ段目補助仮説或は単に補助仮説と称することにする。
【００９２】
各仮説生成部２０１−１〜２０１−Ｍで生成される仮説は背景技術の項で説明したように重み付き有限状態遷移過程を経て生成され、遷移過程の可能性に基づいて複数の仮説が生成される。更に、各仮説には重み付き有限状態遷移過程に付された条件に従って重みが付与される。重みは初段の仮説生成部２０１−１から終段の仮説生成部２０１−Ｍまでの状態遷移に従って累積される。
【００９３】
終段の仮説生成部２０１−Ｍが生成する仮説に空でない中身が存在する仮説が生成され始まると、仮説補正部３０１−１〜３０１−Ｍが動作を始める。終段の仮説生成部２０１−Ｍが生成する仮説に中身が存在する仮説が生成され始まると、仮説補正部３０１−Ｍは仮説生成部２０１−Ｍが生成した仮説の中から、例えば累積重みが最小値を呈する仮説を抽出し、この仮説の累積重みを用いて前段のＭ−１段目の仮説生成部２０１−（Ｍ−１）が生成する仮説の累積重みを補正する。この補正は終段で抽出した最小の累積重みを前段の仮説生成部２０１−（Ｍ−１）が生成した仮説の全ての累積重みに加算することで行なわれる。この補正手順を初段の仮説生成部２０１−１が出力する仮説を補正するまで繰返す。
【００９４】
全ての記号列が読み込まれた時点で仮説絞込み部４０１−１〜４０１−Ｍは各仮説生成部２０１−１〜２０１−Ｍが生成した全ての仮説の中から尤度の高い（もっともらしい）仮説を選択し、仮説を絞り込む。その絞り込み動作は以下の如くして行なわれる。つまり、初段の仮説絞込み部４０１−１は初段の仮説生成部２０１−１が生成した仮説の中から累積重みが例えば最も小さい仮説を抽出し、この仮説を２段目の仮説生成部２０１−２に入力記号列として与え、２段目の仮説生成部２０１−２でこの入力記号列で可能な有限状態遷移過程に従って補助仮説を生成する。
【００９５】
２段目仮説補正部３０１−２は２段目仮説生成部２０１−２が生成した補助仮説の中から累積重みが例えば最も小さい仮説を抽出し、この補助仮説を３段目の仮説生成部２０１−３の入力記号列とする手順を終段の仮説生成部２０１−Ｍが出力する補助仮説まで繰返す。終段の仮説絞込み部４０１−Ｍが終段の仮説生成部２０１−Ｍが生成した補助仮説の中から抽出した補助仮説が記号列出力部１０６に出力され、記号列の変換が終了する。
【００９６】
図１２及び図１３に本発明の一実施の形態における、記号列を変換する具体的な手順を示す。まず、各仮説生成部では一つの仮説に対して必ず一つ以上の２段目補助仮説が存在し、また、ｍ段目補助仮説に対して必ず一つ以上のｍ＋１段目補助仮説が存在するので、本実施の形態では、仮説ｈに対する２段目補助仮説の集合を２段目補助仮説リストＬ[ｈ]、ｍ段目補助仮説ｇｍに対するｍ＋１段目補助仮説の集合をｍ段目補助仮説リストＬ[ｇｍ]で表す。
【００９７】
また、仮説ｈがあるときｓ１[ｈ]を仮説ｈの状態遷移過程において最後に到達した状態、ｍ段目補助仮説ｇｍがあるときｓｍ[ｇｍ]をｍ段目補助仮説ｇｍの状態遷移過程において最後に到達した状態、Ｗ[ｈ]を仮説ｈの状態遷移過程における（補正された）累積重み、Ｗ[ｇｍ]をｍ段目補助仮説ｇｍの状態遷移過程における（補正された）累積重みとする。また、Ｏ[ｇｍ]をｍ段目補助仮説ｇｍの状態遷移過程において出力される記号列とする。
【００９８】
以下、図１２及び図１３の手順を図１１の実施の形態と対比して説明する。
基本的な手順は図８及び図９と同様であるが、ステップＳ２０３とステップＳ４０３、ステップＳ２０９とステップＳ４０９、ステップＳ２１４とステップＳ４１４の処理が異なる。ステップＳ４０１より開始し、初期設定として、ステップＳ４０２で空の仮説リストＨとＨ’を生成する。ステップＳ４０３では初期の仮説ｈを生成し、ｓ１[ｈ]＝０、Ｗ[ｈ]＝０、Ｌ[ｈ]＝φ（空のリスト）とし、仮説リストＨに挿入する。また、ｍ＝２〜Ｍに対して初期のｍ段目補助仮説ｇｍを生成し、最後の状態ｓｍ[ｇｍ]＝０、Ｗ[ｇｍ]＝０、Ｏ[ｇｍ]＝φ（空の記号列）とし、２段目補助仮説ｇ２を２段目補助仮説リストＬ[ｈ]に挿入し、ｍ＝３〜Ｍに対してｇｍをｍ−１段目補助仮説リストＬ[ｇｍ−１]に挿入する。
【００９９】
ステップＳ４０４では、記号列入力部１０３において記号を一つ読み込み、その記号をｘに代入する。
次のステップＳ４０５からステップＳ４０８は、仮説生成部２０１において実行される。
ステップＳ４０５では、仮説リストＨから仮説を一つ取り出しｈに代入し、状態ｓ１[ｈ]から入力記号ｘで遷移可能な状態遷移のリストＥ１を生成する。
ステップＳ４０６で、リストＥ１＝φ（空のリスト）ならばステップＳ４１１に進む。そうでなければステップＳ４０７に進む。
【０１００】
ステップＳ４０７では、リストＥ１から状態遷移を一つ取り出して、ｅ１に代入し、ステップＳ４０８で新たな仮説ｆ１を生成し、ｓ１[ｆ１]＝ｎ[ｅ１]、Ｗ[ｆ１]＝Ｗ[ｈ]＋ｗ[ｅ１]、Ｌ[ｆ１]＝Ｌ[ｈ]とする。
ステップＳ４０９は、仮説補正部３０１−１〜３０１−Ｍにおいて、もし出力記号列ｏ[ｅ１]≠ε（空でなければ）仮説ｆ１を補正する手段（図１４、図１５のステップＳ５０１からステップＳ５１２、この手順の説明の後に別途説明する）を実行する。
ステップＳ４１０は、仮説絞込み部４０１−１〜４０１−Ｍにおいて、仮説ｆ１を仮説リストＨ’に挿入することにより仮説を絞り込む。
【０１０１】
ステップＳ４１１では、Ｈ＝φ（すべての仮説を展開済み）であればステップＳ４１２に進む。そうでなければステップＳ４０５に戻り、次の仮説を展開する。
ステップＳ４１２では、新たに生成された仮説リストＨ’の要素を、既に空となった仮説リストＨにすべて移し、ステップＳ４１３に進む。
ステップＳ４１３では、記号列入力部１０３において次の入力記号が存在するならばステップＳ４０４に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しステップＳ４１４に進む。
【０１０２】
ステップＳ４１４では、仮説リストＨの中から終了状態に到達している仮説(ｓ１[ｈ１]∈Ｆ１)で、かつ累積重み（Ｗ[ｈ１]）に状態ｓ１[ｈ１]の終了重みρ(ｓ１[ｈ１])を加え、更にｍ＝２〜Ｍについて、ｓｍ[ｈｍ]∈Ｆｍかつｈｍ∈Ｌ[ｈｍ−１]である場合の
【数１２】
0004478088.tif 000013
をすべてのｈｍについて求め、ｓＭ[ｈＭ]∈ＦＭかつＷ[ｈＭ]が最小のｈＭを選び、Ｏ[ｈＭ]を変換結果として記号列出力部１０６において出力する。
【０１０３】
ステップＳ４１５にて本発明の一実施の形態における記号列変換手順を終了する。
仮に仮説補正部３０１−１〜３０１−Ｍにおける仮説補正手順について説明する。
本発明における仮説の補正は、ｍ段目の仮説生成部における仮説の状態遷移過程に対する累積重みを、その仮説の状態遷移過程における仮説をｍ＋１段目の仮説生成部の入力記号列としたときのｍ＋１段目の仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することを意味する。
【０１０４】
例えばＭ＝３の場合、入力記号列Ｘが読み込まれた時点でその記号列Ｘを受理して記号列Ｙを出力する仮説の補正された累積重みは、
【数１３】
0004478088.tif 000014
となり、その補正累積重みが最小である仮説の補正累積重みは
【数１４】
0004478088.tif 000015
となり、先に述べた式（４）でＭ＝３の場合における仮説生成部の累積重みの和の最小値と一致する。従って、補正された累積重みを用いて、１段目の仮説生成部の出力記号列Ｙを求めて、そのＹを２段目の仮説生成部の入力記号列としたときの可能な状態遷移過程の中で累積重みが最小となる出力記号列Ｚを求めて、そのＺを３段目の仮説生成部の入力記号列としたときの可能な状態遷移過程の中で累積重みが最小となる状態遷移過程に対応する出力記号列が記号列変換結果となる。
【０１０５】
本発明では、各仮説に対応付けられたｍ段目補助仮説リストを利用して仮説の補正を効率的に行う。補正される仮説をｆｍ−１(ｍ−１段目補助仮説)とし、ｆｍ−１の入力記号列から派生するｍ段目補助仮説を含むｍ−１段目補助仮説リストをＬ[ｆｍ−１]とする。
ｍ段目の仮説生成部の状態ｓｍ[ｇｍ]（ｇｍはＬ[ｆｍ−１]に含まれる一つのｍ段目補助仮説を表す）から、入力記号ｏ[ｅｍ−１]による状態遷移ｅｍを経て次状態ｎ[ｅｍ]に至るｍ段目補助仮説ｆｍを生成し、その到達状態をｓｍ[ｆｍ]＝ｎ[ｅｍ]とする。また、ｍ−１段目補助仮説ｆｍ−１の状態遷移過程において、ｆｍ−１の最後の状態遷移（ｅｍ−１）よりも前にあって出力記号がεではない最も新しい状態遷移をｔｍ−１とする。このとき、ｍ段目補助仮説ｆｍの累積重みＷ[ｆｍ]は、次の３つの要素を加算することにより計算できる。
【０１０６】
（Ａ１）ｍ−１段目補助仮説ｆｍ−１の状態遷移過程における状態ｎ[ｔｍ−１]において生成されたｍ段目補助仮説ｆｍの累積重み：
この値はＷ[ｆｍ]に等しい。つまり、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま後に続く状態遷移過程の仮説に引き継がれるので、状態ｎ[ｔｍ−１]において生成されたｍ−１段目補助仮説リストは現在のＬ[ｆｍ−１]にそのものであり、ｍ−１段目補助仮説リストＬ[ｆｍ−１]の個々のｍ段目補助仮説の累積重みＷ[ｆｍ]に等しい。
【０１０７】
（Ａ２）状態ｎ[ｔｍ−１]から状態ｓｍ−１[ｆｍ−１]までの間に累積された重み：
但し、出力記号がεであった状態遷移過程では、ｍ段目補助仮説リストはそのまま新たに生成された仮説に引き継がれるので、状態ｎ[ｔｍ−１]に至った仮説の補正された累積重みは、現在のｍ−１段目補助仮説リストＬ［ｆｍ−１］の中で最小の累積重み
【数１５】
0004478088.tif 000016
に等しく、これを現在のｍ−１段目補助仮説ｆｍ−１の累積重みＷ[ｆｍ−１]から差し引くことにより、状態ｎ[ｔｍ−１]から状態ｓｍ−１[ｆｍ−１]までの間の累積重みが求まる。すなわち、
【数１６】
0004478088.tif 000017
である。
【０１０８】
（Ａ３）ｍ段目の仮説生成部の状態ｓｍ[ｇｍ]からｓｍ[ｆｍ]への状態遷移ｅｍにおける重み：ｗ[ｅｍ]
従って、ｍ段目補助仮説ｆｍの累積重みはＷ[ｆｍ]＝Ｗ[ｇｍ]＋ＡＷ[ｆｍ−１]＋ｗ[ｅｍ]のように計算する。但し、ｍ＜Ｍの場合は、Ｗ[ｆｍ]は更にｍ＋１段目の仮説生成部を用いて補正されるものとする。その後、ｍ−１段目補助仮説リストＬ[ｆｍ−１]に挿入される。
そして、ｍ−１段目補助仮説ｆｍ−１の補正は、Ｗ[ｆｍ−１]を新たに生成されたｍ段目補助仮説ｇ（但し、ｇ∈Ｌ[ｆｍ−１]）の累積重みＷ[ｇ]の中での最小値
【数１７】
0004478088.tif 000018
を代入することにより行われる。
【０１０９】
以下、仮説の補正手順を図１４、図１５を用いて説明する。この仮説補正手順は、図１２及び図１３に示したステップＳ４０９において実行される。この手順において補正される仮説または補助仮説をｆｍ−１、ｍ−１段目の仮説生成部からの出力記号をｏ[ｅｍ−１]とする。
ステップＳ５０１では、仮説または補助仮説ｆｍ−１を補正する手順を開始する。
ステップＳ５０２では、空の補助仮説リストＬｍを生成する。
ステップＳ５０３では、重みの補正項ＡＷ[ｆｍ−１]をＡＷ[ｆｍ−１]＝Ｗ[ｆｍ−１]−Ｗ[ｇ’]として求める。但し、ｇ’は、ｆｍ−１の補助仮説リストＬ[ｆｍ−１]の中で累積重みが最小の補助仮説を指す。
【０１１０】
ステップＳ５０４では、Ｌ[ｆｍ−１]から補助仮説を一つ取り出し、ｇｍに代入する。状態ｓｍ[ｇｍ]から入力記号ｏ[ｅｍ−１]で遷移可能な状態遷移のリストＥｍを生成し、ステップＳ４０５に進む。
ステップＳ５０５では、Ｅｍが空（ｓｍ[ｇｍ]からのすべての状態遷移に対して補助仮説を展開済み）であればステップＳ５１０に進む。そうでなければステップＳ５０６に進む。
ステップＳ５０６では、リストＥｍから状態遷移を一つ取り出し、ｅｍに代入する。
ステップＳ５０７では、補助仮説ｆｍを生成し、ｓｍ[ｆｍ]＝ｎ[ｅｍ]、Ｗ[ｆｍ]＝Ｗ[ｇｍ]＋ＡＷ[ｆｍ−１]＋ｗ[ｅｍ]、Ｏ[ｆｍ]＝Ｏ[ｇｍ]・ｏ[ｅｍ]とする。
【０１１１】
ステップＳ５０８では、ｏ[ｅｍ]がεではなく、かつｍ＜Ｍならば、ｆｍを補正する。ここでは、ｍを一増やして、同じ手順、ステップＳ５０１からステップＳ５１３を実行することにより行われ、補正後ｍを一減らして次のステップＳ５０９に進む。
ステップＳ５０９では、補助仮説ｆｍを補助仮説リストＬｍに挿入し、ステップＳ５０５に進む。
ステップＳ５１０では、Ｌ[ｆｍ−１]がφ（すべての補助仮説を展開済み）であればステップＳ５１１に進む。そうでなければステップＳ５０４に戻り、次の補助仮説を展開する。
ステップＳ５１１では、新たに生成された補助仮説のリストＬｍの要素を、すでに空となった補助仮説リストＬ[ｆｍ−１]にすべて移し、ステップＳ５１２に進む。
【０１１２】
ステップＳ５１２では、補助仮説リストＬ[ｆｍ−１]の中で累積重み最小の補助仮説ｇ’’に対してＷ[ｆｍ−１]＝Ｗ[ｇ’’]とする。
ステップＳ５１３にて本発明の一実施の形態における仮説補正手順を終了する。
本発明による記号列変換手順（図１２及び図１３）は、仮説補正ステップＳ４０９を除けば一段目の仮説生成部だけを用いて探索する手順（図４）とほぼ同じ計算手順となる。また、仮説補正手順（図１４及び図１５）においても、ステップＳ５０８を除けば、従来の仮説補正手順（図１０）とほぼ同じ手順となり、計算量を少なく抑えることができる。仮説生成部の状態遷移において出力記号がεでない場合においてのみ仮説補正手順が実行されるので、仮説生成部の出力記号がεである割合が多いほど、処理量削減の効果は大きくなる。
【０１１３】
例として、図１６と、図５及び図６に示す三つの仮説生成規則による変換（Ｍ＝３の場合）を考える。
図１６は、ローマ字の記号列から仮名に変換する仮説生成規則を表している。これら３つの仮説生成規則によって、ローマ字入力された記号列を、対応する漢字の記号列に変換する場合を考える。
【０１１４】
次に、本発明の記号列変換手順に従って、図１６を仮説生成規則Ｔ１、図５を仮説生成規則Ｔ２、図６を仮説生成規則Ｔ３として、入力記号列“ａ，ｍ，ｅ，ｄ，ａ，ｍ，ａ”が与えられた場合の出力記号列を求める過程を順を追って説明する。但し、仮説（仮説生成規則Ｔ１の現状態番号ｓ１、出力記号列Ｏ、累積重みＷ、補助仮説リストＬ）は（ｓ１，Ｏ，Ｗ，Ｌ）のように表し、ｍ段目補助仮説（仮説生成規則Ｔｍの現状態番号ｓｍ、出力記号列Ｏ、累積重みＷ、ｍ段目補助仮説リストＬｍ）は（ｓｍ，Ｏ，Ｗ，Ｌｍ）のように表す。また、ｍ段目補助仮説リストは｛（ｓｍ，Ｏ，Ｗ，Ｌｍ），（ｓｍ’，Ｏ’，Ｗ’，Ｌｍ’），…｝のように表す。
【０１１５】
〔本発明による記号列変換手順を開始〕
ステップＳ４０１から開始し、ステップＳ４０２で空の仮説リストＨとＨ’を作る。
ステップＳ４０３により仮説リストＨの中に仮説ｈ＝（０，φ，０，｛（０，φ，０，｛（０，φ，０，φ）｝）｝）を挿入する。
【０１１６】
〔入力記号“ａ”の処理〕
ステップＳ４０４で記号“ａ”を読み込み、ステップＳ４０５において仮説リストＨから仮説（０，φ，０，｛（０，φ，０，｛（０，φ，０，φ）｝）｝）を取り出す。この仮説の仮説生成規則Ｔ１の現状態０から入力記号が“ａ”の状態遷移
＜０→０，ａ：あ／０＞
を含むリストＥ１を作る。
ステップＳ４０６でリストＥ１＝φではないのでステップＳ４０７に進み、リストＥ１から状態遷移＜０→０，ａ：あ／０＞を取り出しリストｅ１とし、ステップＳ４０８で新たな仮説ｆ１＝（０，あ，０，｛（０，φ，０，｛（０，φ，０，φ）｝）｝）を生成する。ステップＳ４０９でｏ[ｅ１]はεではないので、仮説ｆ１＝（０，あ，０，｛（０，φ，０，｛（０，φ，０，φ）｝）｝）を補正するステップＳ５０１に進む。このときｍ＝２に設定する。
【０１１７】
ステップＳ５０２で空の補助仮説リストＬ２を生成する。
ステップ５０３でＡＷ[ｆ１]＝０となる。
ステップＳ５０４で補助仮説リストＬ[ｆ１]＝｛（０，φ，０，｛（０，φ，０，φ）｝）｝から補助仮説ｇ２＝（０，φ，０，｛（０，φ，０，φ）｝）を取り出し、仮説生成規則Ｔ２の状態０から入力記号“あ”で遷移可能な状態遷移
＜０→１，あ：雨／０＞，
＜０→２，あ：飴／０＞
を含むリストＥ２を作る。
ステップＳ５０５でＥ２＝φではないのでステップＳ５０６に進む。リストＥ２から状態遷移＜０→１，あ：雨／０＞を取り出しリストｅ２とし、ステップＳ５０７で補助仮説ｆ２＝（１，雨，０，｛（０，φ，０，φ）｝）を生成する。
【０１１８】
ステップＳ５０８でｏ[ｅ２]はεではなく、かつ、ｍ＝２でＭ＝３なのでｍ＜Ｍであることから、補助仮説ｆ２を補正するステップＳ５０１に進む。このときｍを１増やして、ｍ＝３に設定する。
ステップＳ５０２で空の補助仮説リストＬ３を生成する。
ステップＳ５０３でＡＷ[ｆ２]＝０となる。
ステップＳ５０４で補助仮説リストＬ[ｆ２]＝｛（０，φ，０，φ）｝から補助仮説ｇ３＝（０，φ，０，φ）を取り出し、仮説生成規則Ｔ３の状態０から入力記号“雨”で遷移可能な状態遷移
＜０→１，雨：雨／０＞，
＜０→３，雨：雨／０＞
を含むリストＥ３を作る。
【０１１９】
ステップＳ５０５でＥ３＝φではないのでステップＳ５０６に進む。Ｅ３から状態遷移＜０→１，雨：雨／０＞を取り出しｅ３とし、ステップＳ５０７で補助仮説ｆ３＝（１，雨，０，φ）を生成する。
ステップＳ５０８でｍ＝３かつＭ＝３なのでｍ＜Ｍではないから、ステップＳ５０９に進み、補助仮説ｆ３をリストＬ３に挿入する。
ステップＳ５０５に戻り、Ｅ３＝φではないのでステップＳ５０６に進む。Ｅ３から状態遷移＜０→３，雨：雨／０＞を取り出しｅ３とし、ステップＳ５０７で補助仮説ｆ３＝（３，雨，０，φ）を生成する。
ステップＳ５０８でｍ＝３かつＭ＝３なのでｍ＜Ｍではないから、ステップＳ５０９に進み、仮説ｆ３をリストＬ３に挿入する。
ステップＳ５０５に戻り、リストＥ３＝φなので、ステップＳ５１０に進む。
【０１２０】
ステップＳ５１０で、補助仮説リストＬ[ｆ２]＝φなので、ステップＳ５１１に進む。
ステップＳ５１１で、補助仮説リストＬ３の要素｛（１，雨，０，φ），（３，雨，０，φ）｝をすべて補助仮説リストＬ[ｆ２]に移す。
ステップＳ５１２で、Ｌ[ｆ２]の補助仮説の累積重みはどちらも０なのでＷ[ｆ２]＝０とする。
ステップＳ５１３で補助仮説ｆ２の補正を終了し、ｍを１減らしてｍ＝２とし、ステップＳ５０８に戻る。
ステップＳ５０８における補助仮説ｆ２の補正手順の後、ステップＳ５０９に進む。
ステップＳ５０９では、補助仮説ｆ２を補助仮説リストＬ２に挿入し、ステップＳ５０５に戻る。
【０１２１】
ステップＳ５０５でリストＥ２＝φではないのでステップＳ５０６に進む。リストＥ２から状態遷移＜０→２，あ：飴／０＞を取り出しｅ２とし、ステップＳ５０７で補助仮説ｆ２＝（２，飴，０，｛（０，φ，０，φ）｝）を生成する。
ステップＳ５０８でｏ[ｅ２]はεではなく、かつ、ｍ＝２でＭ＝３なのでｍ＜Ｍであることから、補助仮説ｆ２を補正するステップＳ５０１に進む。このときｍを１増やして、ｍ＝３に設定する。
ステップＳ５０２で空の補助仮説リストＬ３を生成する。
ステップＳ５０３でＡＷ[ｆ２]＝０となる。
【０１２２】
ステップＳ５０４で補助仮説リストＬ[ｆ２]＝｛（０，φ，０，φ）｝から補助仮説ｇ３＝（０，φ，０，φ）を取り出し、仮説生成規則Ｔ３の状態０から入力記号“飴”で遷移可能な状態遷移
＜０→２，飴：飴／０＞，
＜０→４，飴：飴／０＞
を含むリストＥ３を作る。
ステップＳ５０５でリストＥ３＝φではないのでステップＳ５０６に進む。リストＥ３から状態遷移＜０→２，飴：飴／０＞を取り出しリストｅ３とし、ステップＳ５０７で補助仮説ｆ３＝（２，飴，０，φ）を生成する。
【０１２３】
ステップＳ５０８でｍ＝３かつＭ＝３なのでｍ＜Ｍではないから、ステップＳ５０９に進み、補助仮説ｆ３を補助仮説リストＬ３に挿入する。
ステップＳ５０５に戻り、Ｅ３＝φではないのでステップＳ５０６に進む。Ｅ３から状態遷移＜０→４，飴：飴／０＞を取り出しｅ３とし、ステップＳ５０７で補助仮説ｆ３＝（４，飴，０，φ）を生成する。
ステップＳ５０８でｍ＝３かつＭ＝３なのでｍ＜Ｍではないから、ステップＳ５０９に進み、補助仮説ｆ３を補助仮説リストＬ３に挿入する。
ステップＳ５０５に戻り、Ｅ３＝φなので、ステップＳ５１０に進む。
ステップＳ５１０で、補助仮説リストＬ[ｆ２]＝φなので、ステップＳ５１１に進む。
【０１２４】
ステップＳ５１１で、リストＬ３の要素｛（２，飴，０，φ），（４，飴，０，φ）｝をすべて補助仮説リストＬ[ｆ２]に移す。
ステップＳ５１２で、Ｌ[ｆ２]の補助仮説の累積重みはどちらも０なのでＷ[ｆ２]＝０とする。
ステップＳ５１３で補助仮説ｆ２の補正を終了し、ｍを１減らしてｍ＝２とし、ステップＳ５０８に戻る。
ステップＳ５０８におけるｆ２の補正手順の後、ステップＳ５０９に進む。
ステップＳ５０９では、ｆ２をＬ２に挿入し、ステップＳ５０５に戻る。
ステップＳ５０５でＥ２＝φであるため、ステップＳ５１０に進む。
【０１２５】
ステップＳ５１０で、Ｌ[ｆ１]＝φなので、ステップＳ５１１に進む。
ステップＳ５１１で、Ｌ２の要素をすべてＬ[ｆ１]に移す。
ステップＳ５１２で、Ｌ[ｆ１]＝｛（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝），（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝の補助仮説の累積重みはどちらも０なのでＷ[ｆ１]＝０とする。
ステップＳ５１３で補助仮説ｆ１の補正を終了し、ステップＳ４０９に戻る。
ステップＳ４０９における仮説ｆ１の補正手順の後、ステップＳ４１０に進む。
【０１２６】
ステップＳ４１０では、仮説ｆ１を仮説リストＨ’に挿入し、ステップＳ４０６に戻る。
ステップＳ４０６で状態遷移リストＥ１＝φなので、ステップＳ４１１に進む。
ステップＳ４１１で仮説リストＨ＝φなので、ステップＳ４１２に進み、Ｈ’の要素
｛（０，あ，０，｛（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝），（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝）｝
を仮説リストＨに移す。
ステップＳ４１３に進み、次の入力記号が存在するので、ステップＳ４０４に戻る。
【０１２７】
〔入力記号“ｍ”の処理〕
ステップＳ４０４で記号“ｍ”を読み込み、ステップＳ４０５において仮説リストＨから仮説
ｈ＝｛（０，あ，０，｛（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝），（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝）｝
を取り出す。この仮説の仮説生成規則Ｔ１の現状態０から入力記号が“ｍ”の状態遷移
＜０→１，ｍ：ε／０＞
を含むリストＥ１を作る。
【０１２８】
ステップＳ４０６でＥ１＝φではないのでステップＳ４０７に進み、状態遷移リストＥ１から状態遷移＜０→０，ｍ：ε／０＞を取り出しｅ１とし、ステップＳ４０８で新たな仮説
ｆ１＝（１，あ，０，｛（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝），（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝）
を生成する。ステップＳ４０９でｏ[ｅ１]＝εなので、ステップＳ４１０に進む。
ステップＳ４１０では仮説ｆ１を仮説リストＨ’に挿入し、ステップＳ４０６に進む。
【０１２９】
ステップＳ４０６では状態遷移リストＥ１＝φなのでステップＳ４１１に進み、仮説リストＨ＝φなのでステップＳ４１２に進む。
ステップＳ４１２では仮説リストＨ’の要素
｛（１，あ，０，｛（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝），（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝）｝
をすべて仮説リストＨに移す。
ステップＳ４１３に進み、次の入力記号が存在するので、ステップＳ４０４に戻る。
【０１３０】
〔入力記号“ｅ”の処理〕
ステップＳ４０４で記号“ｅ”に読み込み、ステップＳ４０５において仮説リストＨから仮説
ｈ＝（１，あ，０，｛（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝），（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝）
を取り出す。この仮説の仮説生成規則Ｔ１の現状態０から入力記号が“ｅ”の状態遷移
＜１→０，ｅ：め／０＞
を含む状態遷移リストＥ１を作る。
【０１３１】
ステップＳ４０６でＥ１＝φではないのでステップＳ４０７に進み、Ｅ１から状態遷移＜１→０，ｅ：め／０＞を取り出しｅ１とし、ステップＳ４０８で新たな仮説
ｆ１＝（０，あめ，０，｛（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝），（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝）
を生成する。ステップＳ４０９でｏ[ｅ１]はεではないので、仮説ｆ１を補正するステップＳ５０１に進む。このときｍ＝２に設定する。
ステップＳ５０２で空の補助仮説リストＬ２を生成する。
【０１３２】
ステップＳ５０３でＡＷ[ｆ１]＝０となる。
ステップＳ５０４で補助仮説リスト
Ｌ[ｆ１]＝｛（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝），（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝
から補助仮説
ｇ２＝（１，雨，０，｛（１，雨，０，φ），（３，雨，０，φ）｝）
を取り出し、仮説生成規則Ｔ２の状態１から入力記号“め”で遷移可能な状態遷移
＜１→５，め：ε／１＞
を含む状態遷移リストＥ２を作る。
【０１３３】
ステップＳ５０５で状態遷移Ｅ２＝φではないのでステップＳ５０６に進む。状態遷移リストＥ２から状態遷移＜１→５，あ：ε／１＞を取り出しｅ２とし、ステップＳ５０７で補助仮説ｆ２＝（５，雨，１，｛（１，雨，０，φ），（３，雨，０，φ）｝）を生成する。
ステップＳ５０８でｏ[ｅ２]はεであるため、ステップＳ５０９に進む。
ステップＳ５０９ではｆ２をＬ２に挿入し、ステップＳ５０５に戻る。
ステップＳ５０５ではＥ２＝φなのでステップＳ５１０に進み、ステップＳ５１０では、Ｌ[ｆ１]がφではないので、ステップＳ５０４に戻る。
【０１３４】
ステップＳ５０４で補助仮説リスト
Ｌ[ｆ１]＝｛（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝
から補助仮説
ｇ２＝（２，飴，０，｛（２，飴，０，φ），（４，飴，０，φ）｝）
を取り出し、仮説生成規則Ｔ２の状態１から入力記号“め”で遷移可能な状態遷移
＜２→５，め：ε／２＞
を含む状態遷移リストＥ２を作る。
【０１３５】
ステップＳ５０５でＥ２＝φではないのでステップＳ５０６に進む。Ｅ２から状態遷移＜２→５，め：ε／２＞を取り出しｅ２とし、ステップＳ５０７で補助仮説ｆ２＝（５，飴，２，｛（２，飴，０，φ），（４，飴，０，φ）｝）を生成する。
ステップＳ５０８でｏ[ｅ２]はεであるため、ステップＳ５０９に進む。
ステップＳ５０９ではｆ２をＬ２に挿入し、ステップＳ５０５に戻る。
但し、補助仮説リストＬ２には既に補助仮説（５，雨，１，｛（１，雨，０，φ），（３，雨，０，φ）｝）が存在し、仮説生成規則Ｔ２における到達状態が５であるため、累積重みの小さい補助仮説、（５，雨，１，｛（１，雨，０，φ），（３，雨，０，φ）｝）を残し、（５，飴，２，｛（２，飴，０，φ），（４，飴，０，φ）｝）は削除する。このとき、それぞれの補助仮説の補助仮説リストは累積重みを修正して連結させ、（５，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）とする。また、状態５に到達した補助仮説は、状態遷移＜５→０，ε：ε／０＞経由して、入力記号なしで状態０に到達するので、補助仮説リストＬ２には補助仮説、
（０，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）
が残る。
【０１３６】
ステップＳ５０５ではＥ２＝φなのでステップＳ５１０に進み、ステップＳ５１０ではＬ[ｆ１]がφなので、ステップＳ５１１に進む。
ステップＳ５１１ではＬ２の要素をすべてＬ[ｆ１]に移す。
ステップＳ５１２では、Ｌ[ｆ１]＝｛（０，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）｝の補助仮説の中で累積重みの最小値は１であるため、Ｗ[ｆ１]＝１とする。
ステップＳ５１３で補助仮説ｆ１の補正を終了し、ステップＳ４０９に戻る。
【０１３７】
ステップＳ４０９における仮説ｆ１の補正手順の後、ステップＳ４１０に進む。
ステップＳ４１０では、仮説ｆ１を仮説リストＨ’に挿入し、ステップＳ４０６に戻る。
ステップＳ４０６で仮説遷移リストＥ１＝φなので、ステップＳ４１１に進む。
ステップＳ４１１でＨ＝φなので、ステップＳ４１２に進み、Ｈ’の要素
｛（０，あめ，１，｛（０，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（０，飴，２，｛（２，飴，２，φ），（４，飴，２，φ）｝）｝
を仮説リストＨに移す。
【０１３８】
ステップＳ４１３に進み、次の入力記号が存在するので、ステップＳ４０４に戻る。
〔入力記号“ｄ”の処理〕
ステップＳ４０４で記号“ｄ”を読み込み、ステップＳ４０５において仮説リストＨから仮説
ｈ＝｛（０，あめ，１，｛（０，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）｝
を取り出す。この仮説の仮説生成規則Ｔ１の現状態０から入力記号が“ｄ”の状態遷移
＜０→３，ｄ：ε／０＞
を含む仮説遷移リストＥ１を作る。
【０１３９】
ステップＳ４０６でＥ１＝φではないのでステップＳ４０７に進み、Ｅ１から状態遷移＜０→３，ｄ：ε／０＞を取り出しｅ１とし、ステップＳ４０８で新たな仮説
ｆ１＝（３，あめ，１，｛（０，雨，１，｛（１，雨，０，φ），（３，雨，０，φ）｝），（０，飴，２，｛（２，飴，０，φ），（４，飴，０，φ）｝）｝）
を生成する。ステップＳ４０９でｏ[ｅ１]＝εなので、ステップＳ４１０に進む。
ステップＳ４１０ではｆ１をＨ’に挿入し、ステップＳ４０６に進む。
ステップＳ４０６ではＥ１＝φなのでステップＳ４１１に進み、Ｈ＝φなのでステップＳ４１２に進む。
【０１４０】
ステップＳ４１２では仮説リストＨ’の要素
｛（３，あめ，１，｛（０，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）｝）｝
をすべて仮説リストＨに移す。
ステップＳ４１３に進み、次の入力記号が存在するので、ステップＳ４０４に戻る。
〔入力記号“ａ”の処理〕
ステップＳ４０４で記号“ａ”を読み込み、ステップＳ４０５において仮説リストＨから仮説
ｈ＝（３，あめ，１，｛（０，雨，１，｛（１，雨，０，φ），（３，雨，０，φ），（２，飴，０，φ），（４，飴，０，φ）｝）｝）
を取り出す。この仮説の仮説生成規則Ｔ１の現状態０から入力記号が“ｅ”の状態遷移
＜３→０，ａ：だ／０＞
を含むリストＥ１を作る。
【０１４１】
ステップＳ４０６でＥ１＝φではないのでステップＳ４０７に進み、Ｅ１から状態遷移＜１→０，ｅ：め／０＞を取り出しｅ１とし、ステップＳ４０８で新たな仮説
ｆ１＝（０，あめだ，１，｛（０，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）｝）
を生成する。ステップＳ４０９でｏ[ｅ１]はεではないので、仮説ｆ１を補正するステップＳ５０１に進む。このときｍ＝２に設定する。
ステップＳ５０２で空の補助仮説リストＬ２を生成する。
【０１４２】
ステップＳ５０３でＡＷ[ｆ１]＝０となる。
ステップＳ５０４で補助仮説リスト
Ｌ[ｆ１]＝｛（０，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）｝
から補助仮説
ｇ２＝（０，雨，１，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）
を取り出し、仮説生成規則Ｔ２の状態０から入力記号“だ”で遷移可能な状態遷移
＜０→４，だ：玉／１＞
を含むリストＥ２を作る。
【０１４３】
ステップＳ５０５でＥ２＝φではないのでステップＳ５０６に進む。Ｅ２から状態遷移＜０→４，だ：玉／１＞を取り出しｅ２とし、ステップＳ５０７で補助仮説ｆ２＝（４，雨玉，２，｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝）を生成する。
ステップＳ５０８でｏ[ｅ２]はεではなく、かつ、ｍ＝２でＭ＝３なのでｍ＜Ｍであることから、ｆ２を補正するステップＳ５０１に進む。このときｍを１増やして、ｍ＝３に設定する。
【０１４４】
ステップＳ５０２で空の補助仮説リストＬ３を生成する。
ステップＳ５０３でＡＷ[ｆ２]＝２−１＝１となる。
ステップＳ５０４で補助仮説リストＬ[ｆ２]＝｛（１，雨，１，φ），（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝から補助仮説ｇ３＝（１，雨，１，φ）を取り出し、仮説生成規則Ｔ３の状態１から入力記号“玉”で遷移可能な状態遷移
＜１→４，玉：玉／５＞
を含むリストＥ３を作る。
【０１４５】
ステップＳ５０５でＥ３＝φではないのでステップＳ５０６に進む。Ｅ３から状態遷移＜１→４，玉：玉／５＞を取り出しｅ３とし、ステップＳ５０７で補助仮説ｆ３＝（４，雨玉，７，φ）を生成する。ここで、Ｗ[ｆ３]＝Ｗ[ｇ３]＋ＡＷ[ｆ２]＋ｗ[ｅ３]＝１＋１＋５＝７として計算されている。
ステップＳ５０８でｍ＝３かつＭ＝３なのでｍ＜Ｍではないから、ステップＳ５０９に進み、ｆ３をＬ３に挿入する。
ステップＳ５０５に戻り、Ｅ３＝φなので、ステップＳ５１０に進む。
【０１４６】
ステップＳ５１０で、Ｌ[ｆ２]はφではないので、ステップＳ５０４に戻る。
ステップＳ５０４でＬ[ｆ２]＝｛（３，雨，１，φ），（２，飴，２，φ），（４，飴，２，φ）｝から補助仮説ｇ３＝（３，雨，１，φ）を取り出し、仮説生成規則Ｔ３の状態３から入力記号“玉”で遷移可能な状態遷移は存在しないのでＥ３＝φとする。
ステップＳ５０５に進んで、Ｅ３がφなので、ステップＳ５１０に進む。
ステップＳ５１０ではＬ[ｆ２]はφではないのでステップＳ５０４に戻る。
ステップＳ５０４で補助仮説リストＬ[ｆ２]＝｛（２，飴，２，φ），（４，飴，２，φ）｝から補助仮説ｇ３＝（２，飴，２，φ）を取り出し、仮説生成規則Ｔ３の状態２から入力記号“玉”で遷移可能な状態遷移
＜２→４，玉：玉／１＞
を含むリストＥ３を作る。
【０１４７】
ステップＳ５０５でＥ３＝φではないのでステップＳ５０６に進む。Ｅ３から状態遷移＜２→４，玉：玉／１＞を取り出しｅ３とし、ステップＳ５０７で補助仮説ｆ３＝（４，飴玉，４，φ）を生成する。ここで、Ｗ[ｆ３]＝Ｗ[ｇ３]＋ＡＷ[ｆ２]＋ｗ[ｅ３]＝２＋１＋１＝４として計算されている。
ステップＳ５０８でｍ＝３かつＭ＝３なのでｍ＜Ｍではないから、ステップＳ５０９に進み、ｆ３をＬ３に挿入する。
ここで、Ｌ３には既に仮説生成規則Ｔ３の同じ状態４に到達している補助仮説（４，雨玉，７，φ）が存在するので、累積重みの小さい（４，飴玉，４，φ）だけを残し、（４，雨玉，７，φ）は削除する。
【０１４８】
ステップＳ５０５に戻り、Ｅ３＝φなので、ステップＳ５１０に進む。
ステップＳ５１０で、Ｌ[ｆ２]はφではないので、ステップＳ５０４に戻る。
ステップＳ５０４でＬ[ｆ２]＝｛（４，飴，２，φ）｝から補助仮説ｇ３＝（４，飴，２，φ）を取り出し、仮説生成規則Ｔ３の状態４から入力記号“玉”で遷移可能な状態遷移は存在しないのでＥ３＝φとする。
ステップＳ５０５に進んで、Ｅ３がφなので、ステップＳ５１０に進む。
ステップＳ５１０ではＬ[ｆ２]がφなのでステップＳ５１１に進む。
【０１４９】
ステップＳ５１１ではＬ３の要素をすべてＬ[ｆ２]に移し、ステップＳ５１２に進む。
ステップＳ５１２では、Ｌ[ｆ２]＝｛（４，飴玉，４，φ）｝の中で最小の累積重みは４なので、Ｗ[ｆ２]＝４とする。
ステップＳ５１３で補助仮説ｆ２の補正を終了し、ｍを１減らしてｍ＝２とし、ステップＳ５０８に戻る。
ステップＳ５０８におけるｆ２の補正の後、ステップＳ５０９に進む。
ステップＳ５０９では、ｆ２をＬ２に挿入し、ステップＳ５０５に進む。
【０１５０】
ステップＳ５０５ではＥ２はφなので、ステップＳ５１０に進む。
ステップＳ５１０でＬ[ｆ２]はφなので、ステップＳ５１１に進む。
ステップＳ５１１ではＬ２の要素
｛（４，雨玉，４，｛（４，飴玉，４，φ）｝）｝
をＬ[ｆ１]に移し、ステップＳ５１２に進む。
ステップＳ５１２では、Ｌ[ｆ１]の中で最小の累積重みは４なので、Ｗ[ｆ１]＝４とする。
【０１５１】
ステップＳ５１３で補助仮説ｆ１の補正を終了し、ステップＳ４０９に戻る。
ステップＳ４０９におけるｆ１の補正手順の後、ステップＳ４１０に進む。
ステップＳ４１０では、ｆ１をＨ’に挿入し、ステップＳ４０６に戻る。
ステップＳ４０６でＥ１＝φなので、ステップＳ４１１に進む。
ステップＳ４１１でＨ＝φなので、ステップＳ４１２に進み、Ｈ’の要素
｛（３，あめだ，４，｛（４，雨玉，４，｛（４，飴玉，４，φ）｝）｝）｝
をＨに移す。
【０１５２】
ステップＳ４１３に進み、次の入力記号が存在するので、ステップＳ４０４に戻る。
〔入力記号“ｍ”の処理〕
ステップＳ４０４で記号“ｍ”を読み込み、ステップＳ４０５において仮説リストＨから仮説
ｈ＝｛（０，あめだ，４，｛（４，雨玉，４，｛（４，飴玉，４，φ）｝）｝）｝
を取り出す。この仮説の仮説生成規則Ｔ１の現状態３から入力記号が“ｍ”の状態遷移
＜０→１，ｍ：ε／０＞
を含むリストＥ１を作る。
【０１５３】
ステップＳ４０６でＥ１＝φではないのでステップＳ４０７に進み、Ｅ１から状態遷移＜０→１，ｍ：ε／０＞を取り出しリストｅ１とし、ステップＳ４０８で新たな仮説
ｆ１＝（０，あめだ，４，｛（４，雨玉，４，｛（４，飴玉，４，φ）｝）｝）
を生成する。ステップＳ４０９でｏ[ｅ１]＝εなので、ステップＳ４１０に進む。
ステップＳ４１０ではｆ１をＨ’に挿入し、ステップＳ４０６に進む。
ステップＳ４０６ではＥ１＝φなのでステップＳ４１１に進み、Ｈ＝φなのでステップＳ４１２に進む。
【０１５４】
ステップＳ４１２ではＨ’の要素
｛（１，あめだ，１，｛（４，雨玉，４，｛（４，飴玉，４，φ）｝）｝）｝
をすべてＨに移す。
ステップＳ４１３に進み、次の入力記号が存在するので、ステップＳ４０４に戻る。
〔入力記号“ａ”の処理〕
ステップＳ４０４で記号“ａ”を読み込み、ステップＳ４０５において仮説リストＨから仮説
ｈ＝（１，あめだ，４，｛（４，雨玉，４，｛（４，飴玉，４，φ）｝）｝）
を取り出す。この仮説の仮説生成規則Ｔ１の現状態０から入力記号が“ａ”の状態遷移
＜１→０，ａ：ま／０＞
を含むリストＥ１を作る。
【０１５５】
ステップＳ４０６でＥ１＝φではないのでステップＳ４０７に進み、リストＥ１から状態遷移＜１→０，ａ：ま／０＞を取り出しｅ１とし、ステップＳ４０８で新たな仮説
ｆ１＝（０，あめだま，４，｛（４，雨玉，４，｛（４，飴玉，４，φ）｝）｝）
を生成する。ステップＳ４０９でｏ[ｅ１]はεではないので、仮説ｆ１を補正するステップＳ５０１に進む。このときｍ＝２に設定する。
ステップＳ５０２で空の補助仮説リストＬ２を生成する。
ステップＳ５０３でＡＷ[ｆ１]＝０となる。
【０１５６】
ステップＳ５０４で補助仮説リスト
Ｌ[ｆ１]＝｛（４，雨玉，４，｛（４，飴玉，４，φ）｝）｝
から補助仮説
ｇ２＝（４，雨玉，４，｛（４，飴玉，４，φ）｝）
を取り出し、仮説生成規則Ｔ２の状態４から入力記号“ま”で遷移可能な状態遷移
＜４→５，ま：ε／１＞
を含むリストＥ２を作る。
【０１５７】
ステップＳ５０５でＥ２＝φではないのでステップＳ５０６に進む。リストＥ２から状態遷移＜４→５，ま：ε／１＞を取り出しｅ２とし、ステップＳ５０７で補助仮説ｆ２＝（５，雨玉，５，｛（４，飴玉，４，φ）｝）を生成する。
ステップＳ５０８でｏ[ｅ２]はεであるため、ステップＳ５０９に進む。
ステップＳ５０９では、ｆ２をＬ２に挿入し、ステップＳ５０５に進む。
ステップＳ５０５ではＥ２はφなので、ステップＳ５１０に進む。
ステップＳ５１０でＬ[ｆ２]はφなので、ステップＳ５１１に進む。
ステップＳ５１１ではＬ２の要素
｛（５，雨玉，５，｛（４，飴玉，４，φ）｝）｝
をＬ[ｆ１]に移し、ステップＳ５１２に進む。
【０１５８】
ステップＳ５１２では、Ｌ[ｆ１]の中で最小の累積重みは５なので、Ｗ[ｆ１]＝５とする。
ステップＳ５１３で補助仮説ｆ１の補正を終了し、ステップＳ４０９に戻る。
ステップＳ４０９におけるｆ１の補正手順の後、ステップＳ４１０に進む。
ステップＳ４１０では、ｆ１をＨ’に挿入し、ステップＳ４０６に戻る。
ステップＳ４０６でＥ１＝φなので、ステップＳ４１１に進む。
ステップＳ４１１でＨ＝φなので、ステップＳ４１２に進み、Ｈ’の要素
｛（０，あめだま，５，｛（５，雨玉，５，｛（４，飴玉，４，φ）｝）｝）｝
をＨに移す。
【０１５９】
ステップＳ４１３に進み、次の入力記号が存在しないので、ステップＳ４１４に進む。
ステップＳ４１４で、Ｈ内の仮説ｈ１＝（０，あめだま，５，｛（５，雨玉，５，｛（４，飴玉，４，φ）｝）｝）が終了状態に到達した唯一の仮説であり、その補助仮説ｈ２＝（５，雨玉，５，｛（４，飴玉，４，φ）｝）、およびその補助仮説ｈ３＝（４，飴玉，４，φ）とすると、累積重み
【数１８】
0004478088.tif 000019
となり、その補助仮説ｈ３の出力記号列“飴玉”を変換結果として出力し、ステップＳ４１５で記号列変換処理を終了する。
【０１６０】
この変換結果は、従来の２つの仮説生成部を用いた記号列変換手順において、入力記号列を“あ，め，だ，ま”とした場合の結果と同一になっている。本発明では、ローマ字入力された記号列“ａ，ｍ，ｅ，ｄ，ａ，ｍ，ａ”を記号列“あ，め，だ，ま”に変換する仮説生成規則を新たに加えて、結果的にローマ字入力を漢字に変換する処理を実現している。つまり、本発明によればローマ字入力を平仮名文字に変換する仮説生成規則を付加するか除去するかの選択で、ローマ字入力から漢字に変換する記号列変換装置と、平仮名入力を漢字に変換する記号列変換装置を簡単に得ることができ、変換先を簡単に変更できる利点が得られる。
【実施例２】
【０１６１】
図１７に本発明の第２の実施例を示す。この実施例は３つの仮説生成部２０１−１，２０１−２，２０１−３を用いて音声認識を行なう構成とした場合を示す。
音声信号を入力する音声信号入力部５０５から入力された音声信号を音声特徴記号列抽出部５０６で音声の短時間音響パターンの時系列を音響特徴記号列として抽出する。抽出した音響特徴記号列を本発明による記号列変換部１０２を構成する初段の仮説生成部２０１−１に入力し、この初段の仮説生成部２０１−１において、音響特徴記号列を単語系の記号列を目標とする仮説に変換する。このために初段の仮説生成部２０１−１は音響モデル用仮説生成規則格納部１０５−１に格納され、音声固定単位（例えば要素）の標準的特徴を音声信号をある短い時間（例えば１０ミリ秒）ごとに分析して得られる音響パターンを備えた音響モデル用仮説生成規則と、単語辞書用仮説生成規則格納部１０５−２に格納され、種々の単語の発音を前記音声固定単位の系列に対応させる単語発音辞書用仮説生成用規則を読み込み、音響特徴記号列を単語系の記号列を候補とする仮説を生成する。初段の仮説生成部２０１−１で生成された仮説はこの例では２段目と３段目の仮説生成部２０１−２と２０１−３で言語モデル１と２用仮説生成用規則を読み込み、言語としての尤度を高めるための有限状態遷移過程を経てそれぞれ仮説を生成し、各仮説群の累積重みを仮説補正部３０１−１〜３０１−Ｍで補正し、仮説絞込み部４０１−１〜４０１−Ｍで仮説を絞り込んで記号列出力部１０６に音声認識結果を出力する構成とした場合を示す。
【０１６２】
ここで言語モデル１は例えば一般的な単語の連接のしやすさを与える言語モデルとすることができ、また言語モデル２は特定分野で用いられる文章の特化した単語の連接のしやすさを与える言語モデルとすることができる。このように一般的な単語の連接のしやすさを与える言語モデル１と、特定分野で用いられる文章に特化した単語の連結のしやすさを与える言語モデル２とを組み合せることで、その特定分野における文章に対する高い音声認識精度を与えるだけでなく、その特定分野以外の文章に対しても、ある一定の音声認識精度を保つような音声認識が可能となる。
【０１６３】
音声認識用の単語発音辞書や言語モデルを重み付き有限状態遷移規則によって記述する方法は、例えば、国際会議ＡＳＲ２０００における、M.Mohri,F.Pereira,M.Riley著“Weighted finite-state transducers in speech recognition”，Proceeding of ASR2000, pp.97-106,2000に開示されている。
種々の音声固定単位（例えば音素）の標準的な音響パターン系列の集合を表す音響モデルとしては、例えば、それら音響パターンの系列の集合を確率・統計理論に基づいてモデル化する隠れマルコフモデル法（Hidden Markov Model、以後ＨＭＭと呼ぶ）が主流である。このＨＭＭ法の詳細は、例えば、社団法人電子情報通信学会編、中川聖一著「確率モデルによる音声認識」に開示されている。
【０１６４】
音声認識の場合は、初段の仮説生成部の重みとして、音響モデルによって計算される音響特徴記号（音響パターン）のスコアを用いる。ただし、このスコアは、大きいほど入力音響パターンが音響モデルによって表される音声固定単位に近いことを表すので、マイナスの音響スコアをもって重みとする。隠れマルコフモデルによる音響スコアの計算では、例えばガウス分布に基づく確率値が用いられる。
音声認識に用いる音響パターンには、短い時間（例えば１０ミリ秒）ごとに音声信号を分析することにより得られるメルケプストラム（mel-frequency cepstral coefficients、ＭＦＣＣと呼ばれる）、デルタＭＦＣＣ、ＬＰＣケプストラム、対数パワーなどがある。
【０１６５】
音声認識率の実証
先に述べたように、本発明により３つの仮説生成処理を用いて記号列を変換する手順では、仮説補正部を除けば初段の仮説生成処理だけを用いて探索する手順（図４）とほぼ同じ計算手順となり、効率的な音声認識を行うことができる。
【０１６６】
本発明による音声認識方法を用いて、男性１０名による学術講演１０講演分の音声を入力したときの、音声認識処理に要した処理時間と音声認識精度を表１に示す。ただし、処理時間は、実際に発話された時間を音声認識処理に要した処理時間で割った値（実時間比）とする。単語発音辞書の語彙サイズは３万である。実験には、クロック数２．８ＧＨｚ相当の計算機を使用した。従来法では、二つの仮説生成部（単語辞書用仮説生成器と一般的な文章用仮説生成部）だけを用いており、本発明では、前記二つの仮説生成部に加え、その学術講演の技術分野の文章に特化した言語モデル２を参照して動作する仮説生成部を用いている。
【表１】
0004478088.tif 000020
【０１６７】
従来の二つの仮説生成部を用いた記号列変換方法に比べて、本発明による三つの仮説生成部を用いた記号列変換方法は、ほぼ同じ実時間比でありながら単語認識率においてより高い値を示した。このような結果が得られたのは、学術講演の技術分野に特化した言語モデル２を用いたことの効果である。本発明は、このように三つ以上の仮説生成部を同時に用いることができるため、二つの仮説生成部を用いる場合に比べて処理時間をほとんど増加させることなく、様々な仮説生成部の組み合わせにより音声認識の精度を向上させることができる。
【実施例３】
【０１６８】
一方、本発明を音声言い換え処理に適用し、４つの仮説生成部を用いて効率的に効率的な音声言い換え処理を行うこともできる。ここで、音声言い換え処理とは、音声認識を行いながら、その発話内容を別の文章スタイルに変換することを表す。例えば、話し言葉の文を、書き言葉のようなスタイルに書き換える処理がある。
【０１６９】
図１８は、その音声言い換え装置６００の実施例を示す。音声を入力する音声信号入力部５０５から送られた音声信号をその音声の短時間音響パターンの時系列を記号列として抽出する音声特徴記号列抽出部５０６において音響特徴記号列に変換し、その音響特徴記号列を入力として本発明による記号列変換を行う記号列変換部１０２に送る。続いて、記号列変換部１０２では、音響モデル用仮説生成規則格納部１０５−１から音声固定単位（例えば音素）の標準的特徴を音声信号をある短い時間（例えば１０ミリ秒）ごとに分析して得られる音響パターンの系列の照合により与える音響モデルを、単語発話辞書用仮説生成規則格納部１０５−２からは種々の単語の発音を前記音声固定単位の系列によって与える単語発音辞書用仮説生成規則を、言語モデル用仮説生成規則格納部１０５−３からは発話される単語の連接のしやすさを与える言語モデル用の仮説生成規則を、言い換え用の仮説生成規則格納部１０５−５からは、文章中の単語や単語列を書き換える言い換え用仮説生成規則を、言い換え先言語モデル用仮説生成規則格納部１０５−６からは言い換えられた文章における単語の連接のしやすさを与える言い換え先言語モデル仮説生成規則を読み出し、音響特徴記号列抽出部５０６から送られた音響特徴記号列を読み込み、累積重み最小の出力記号列を求め、記号列出力部１０６に送る。記号列出力部１０６では、受け取った出力記号列を音声認識結果として出力する。
【０１７０】
音声を認識しながら同時に文のスタイルを変換して出力するために用いる個々の仮説生成部に関する説明は、例えば、特開２００４−１１０６７３号公報「文章スタイル変換方法，文章スタイル変換装置，文章スタイル変換プログラム，文章スタイル変換プログラムを格納した記憶媒体」に開示されている。
【０１７１】
上述した本発明による記号列変換装置は本発明による記号列変換プログラムをコンピュータにインストールすることにより、コンピュータによって記号列変換装置として機能させることができる。本発明による記号列変換プログラムはコンピュータが解読可能なプログラム言語によって記述され、コンピュータが読み取り可能な磁気ディスク或いはＣＤ−ＲＯＭのような記録媒体に記録される。コンピュータにはこれらの記録媒体或いは通信回線を通じてインストールされる。
【図面の簡単な説明】
【０１７２】
【図１】仮説生成に用いる重み付き有限状態変換規則の一例を表す図。
【図２】図１の重み付き有限状態変換規則を表によって定義した図。
【図３】重み付き有限状態変換規則による仮説生成方法の実施の形態を表すブロック図。
【図４】重み付き有限状態変換規則による仮説生成方法の手順を説明するフローチャート。
【図５】仮名の系列を表す記号列を、その仮名に対応する漢字の系列に変換する重み付き有限状態変換規則の一例を表す図。
【図６】日本語における漢字の系列の接続の可能性を重みによって与える重み付き有限状態変換規則の一例を表す図。
【図７】二つの仮説生成部を用いた従来の記号列変換方法の実施の形態を表すブロック図。
【図８】二つの仮説生成部を用いた従来の記号列変換方法の手順を説明するフローチャート。
【図９】図８の続きを説明するためのフローチャート。
【図１０】二つの仮説生成部を用いた従来の記号列変換方法における仮説の補正方法を説明するフローチャート。
【図１１】本発明による三つ以上の仮説生成部を用いた記号列変換方法の実施の形態を表すブロック図。
【図１２】本発明における三つ以上の仮説生成部を用いた記号列変換方法の手順を説明するフローチャート。
【図１３】図１２の続きを説明するためのフローチャート。
【図１４】本発明における三つ以上の重み付き有限状態変換器による記号列変換方法における仮説または補助仮説の補正方法を説明する図。
【図１５】ローマ字で表される記号列を、対応する平仮名の記号列に変換する重み付き有限状態変換規則の一例を表す図。
【図１６】図１５の続きを説明するためのフローチャート。
【図１７】本発明による音声認識方法の一実施の形態を表すブロック図。
【図１８】本発明による音声言い換え方法の一実施の形態を表すブロック図。
【符号の説明】
【０１７３】
１０  状態
１１  終了状態
１２  状態遷移
１０１  仮説生成規則格納部
１０２  記号列変換部
１０３  記号列入力部
１０１−１  前段仮説生成規則格納部
１０１−２  後段仮説生成規則格納部
１０４−１  １段目仮説生成規則格納部
１０４−Ｍ  Ｍ段目仮説生成規則格納部
１０５−１  音響モデル用仮説生成規則格納部
１０５−２  単語発話辞書用仮説生成規則格納部
１０５−３  言語モデル１用仮説生成規則格納部
１０５−４  言語モデル２用仮説生成規則格納部
１０５−５  言い換え用仮説生成規則格納部
１０５−６  言い換え先言語モデル用仮説生成規則格納部
１０６  記号列出力部
２０１−１〜２０１−Ｍ  仮説生成部
３０１−１〜３０１−Ｍ  仮説補正部
４０１−１〜４０１−Ｍ  仮説絞込み部
【図１】
0004478088.tif 000021
【図２】
0004478088.tif 000022
【図３】
0004478088.tif 000023
【図４】
0004478088.tif 000024
【図５】
0004478088.tif 000025
【図６】
0004478088.tif 000026
【図７】
0004478088.tif 000027
【図８】
0004478088.tif 000028
【図９】
0004478088.tif 000029
【図１０】
0004478088.tif 000030
【図１１】
0004478088.tif 000031
【図１２】
0004478088.tif 000032
【図１３】
0004478088.tif 000033
【図１４】
0004478088.tif 000034
【図１５】
0004478088.tif 000035
【図１６】
0004478088.tif 000036
【図１７】
0004478088.tif 000037
【図１８】
0004478088.tif 000038