JP4478088B2 - 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体 - Google Patents

記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体 Download PDF

Info

Publication number
JP4478088B2
JP4478088B2 JP2005254697A JP2005254697A JP4478088B2 JP 4478088 B2 JP4478088 B2 JP 4478088B2 JP 2005254697 A JP2005254697 A JP 2005254697A JP 2005254697 A JP2005254697 A JP 2005254697A JP 4478088 B2 JP4478088 B2 JP 4478088B2
Authority
JP
Japan
Prior art keywords
hypothesis
symbol string
input
state transition
symbol
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2005254697A
Other languages
English (en)
Other versions
JP2007066237A (ja
Inventor
貴明 堀
篤 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2005254697A priority Critical patent/JP4478088B2/ja
Publication of JP2007066237A publication Critical patent/JP2007066237A/ja
Application granted granted Critical
Publication of JP4478088B2 publication Critical patent/JP4478088B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)

Description

本発明は、重み付き有限状態変換器によって表現された記号列変換規則によって、入力された記号列に対して生成可能な数多くの出力記号列から、適用される変換規則の重みの累積値が最小または最大の特異値を呈する出力記号列を効率的に見つけることを可能とする記号列変換方法、及びそれを用いた音声認識方法並びに音声言い換え方法、記号列変換装置とプログラム及び記録媒体に関する。
重み付き有限状態変換器(英訳Weighted Finite-State Transducer:WFST)とは、記号列を別の記号列に変換するための規則を、状態と状態遷移の図に表現する方式を言う。重み付き有限状態変換器については、例えば、非特許文献1に開示されている。以下、この重み付き有限状態変換器を仮説生成規則と称し、この仮説生成規則を実行する部分を仮説生成部と称する。
仮説生成規則は、状態と、状態から状態へと遷移できることを表す状態遷移、および、状態遷移において受理される入力記号と、その際に出力される出力記号、および、その状態遷移の重みの集合によって定義される。仮説生成規則は、ある入力記号列が与えられたときに、初期状態からその入力記号列の記号を順に受理する状態遷移に従って出力記号を出力しながら状態遷移を繰り返し、終了状態に達すると終了する計算モデルである。形式的には、仮説生成規則は次の8つの組(Q,Σ,Δ,i,F,E,λ,ρ)によって定義される。
1.Qは有限の状態の集合。
2.Σは入力記号の有限の集合。
3.Δは出力記号の有限の集合。
4.i∈Qは初期状態。
5.F∈Qは終了状態の集合。
6.E∈Q×Σ×Δ×Qは、現状態から入力記号により、出力記号を出力して次状態に遷移する状態遷移の集合。
7.Λは初期重み。
8.p(q)は終了状態qの終了重み。q∈F。
仮説生成規則の一例を図1に示す。図1において、10はマル(“○”)で表された状態を示しており、そのマルの中の数字はその状態の番号を表している。11は二重マル(“◎”)で表された終了状態を示しており、その二重マルの中の数字は、その終了状態の番号と状態遷移が終了して最後に累積される終了重みが“(状態番号)/(終了重み)”のように表されている。以後、状態の番号を用いて状態を指し示す場合は、単に状態とその番号を用いて“状態0”や“状態3”のように称す。
12は各状態を結ぶ矢印(“→”)で表された状態遷移を示しており、各々の状態遷移に付与された記号や数字は、その状態遷移に関連付けられた入力記号、出力記号、重みを“(入力記号):(出力記号)/(重み)”のように表したものである。
図1の仮説生成規則を表によって定義することもできる。図2は、各行が一つの状態遷移を表し、その状態遷移における遷移元の状態番号と遷移先の状態番号、入力記号、出力記号、重みが記されている。最終状態(図1では状態3)は、遷移先、入力記号、出力記号を空とし、状態遷移終了時に累積される重み(終了重み)を記入する書式となっている。一般に、仮説生成規則の初期状態は状態0とされ、初期重みΛも省略されることが多い。そのため、本特許でも初期状態は状態0とし、初期重みは省略して明記しないこととする。
図1の仮説生成規則は、例えば、入力記号列a,a,b,cを出力記号列d,d,c,bに変換することができ、その際の状態遷移過程は、状態番号の系列を用いて表すと0,0,1,3であり、重みの累積値(以下「累積重み」)と称す)は0.5+0.5+0.3+1+0.5=2.8となる。しかし、図1の仮説生成規則では、a,a,b,cという入力記号列に対しては、0,0,1,3と0,0,2,3の2通りの状態遷移過程が考えられる。一般に、ある入力記号列に対して複数の状態遷移の可能性がある場合(これを非決定性という)は、状態遷移過程における累積重みが特異値である最小(または最大)になる状態遷移過程を選択し、その累積重み最小(または最大)の状態遷移過程に対応する出力記号列を選択する。累積重みが最小の状態遷移過程を選ぶか最大の状態遷移過程を選ぶかは重みの性質と目的による。
図1の例においても、a,a,b,cという入力記号列に対して累積重みが最も小さい状態遷移過程0,0,1,3を選んで、変換結果をd,d,c,bとする。
ある仮説生成規則(これをTとする)があり、このTに対して記号列Xが入力記号列として与えられたとき、累積重みが最小となる出力記号列(すなわち記号列変換結果)を求めるには、次の累積重みの最小値W(X)を計算する必要がある。
Figure 0004478088
ここで、W(X→Y,T)は、仮説生成規則Tによって記号列Xが記号列Yに変換されるときの状態遷移過程における累積重みを表す。この累積重みW(X→Y,T)の最小値W(X)を求めて、その最小値を与えるYが記号列変換結果となる。
このW(X)を効率的に求めるには、一般にグラフのコスト最小探索の技術の一つである横型探索法を利用する。例えば、グラフの横型探索法の手順は、非特許文献2に開示されている。
仮説生成規則による記号列変換は、入力記号列によって初期状態から終了状態に至るコスト(累積重み)最小の状態遷移過程を探し出すことによって行われる。
重み付き有限状態変換器は、出力記号を定義しない重み付き有限状態受理器(英訳:Weighted Finite-State Acceptor:WFSA)や、入力記号も出力記号も定義しない有向グラフも包含している。WFSAであれば各状態遷移における入力記号と出力記号を同一にする、有向グラフであればすべての入力記号と出力記号を一つの記号と仮定することで表現できる。従って、本発明で扱う仮説生成規則のための各方法は、すべてWFSAや有向グラフにも適用することが可能である。
一つの仮説生成規則を用いた記号列変換の一実施例を図3に示す。まず、本明細書において“仮説”とは、ある記号列が順に入力され、現時点までに読み込まれた入力記号列に対して、仮説生成規則において初期状態からその入力記号列によって状態遷移を繰り返した場合の可能性のある一つの状態遷移過程を表すものとする。
記号列変換部102は仮説生成規則格納部100と仮説生成部200と仮説絞込み部400とを備えて構成される。仮説生成部200は仮説生成規則格納部100から仮説生成規則を読み込んでその仮説生成規則に従って仮説の生成動作を実行する。仮説生成部200は記号列入力部103から受け取った記号を仮説生成規則に従って、これまで読み込んだ記号列に対する仮説の集合を新たに受け取った記号を用いて各仮説の状態遷移過程を更新することにより新たな仮説を生成する。仮説生成部200で生成された全ての仮説は仮説絞込み部400に送り込まれる。
仮説絞込み部400では、仮説生成部200から受け取った仮説の集合に対し、同じ状態に到達している仮説の中で累積重みが例えば最小の仮説以外の仮説を削除することにより仮説を絞り込む。入力記号列が最後まで読み込まれていれば、累積重み最小の仮説に対応する出力記号列を記号列出力部106に送る。入力記号列が最後まで読み込まれていなければ、仮説を仮説生成部200に送る。記号列出力部106では、仮説絞込み部400から受け取った出力記号列を出力する。
次に、この実施の形態に基づいて記号列を変換する手順の一例を示す。
まず、仮説生成規則のある状態遷移をeと表すとき、n[e]を遷移先の状態(次状態)、i[e]を入力記号、o[e]を出力記号、w[e]を重みと定義する。また、ある仮説をhと表すとき、s[h]を到達している状態、W[h]をその状態遷移過程における累積重み、O[h]をその状態遷移過程において出力される記号列とする。
この手順において、仮説は仮説のリスト(以後これを仮説リストと呼ぶ)を用いて管理する。仮説リストに対し、仮説を挿入したり、仮説を取り出したりすることができる。但し、仮説リストに仮説を挿入する場合に、仮説リスト内に同じ状態に到達している仮説があれば、累積重みの小さい方だけを仮説リストに残し、仮説を絞り込む。
仮説生成規則を用いた記号列変換手順を図4に示す。
以下、図4の手順を、仮説生成規則を備えた記号列変換方法の一実施例(図3)と対比して説明する。
ステップS101より開始し、初期設定として、ステップS102において空の仮説リストHとH’を生成する。初期の仮説hを生成し、s[h]=0(仮説生成規則の初期状態)、W[h]=0、O[h]=φ(空の記号列)とし、仮説リストHに挿入する。
ステップS102では、記号列入力部103において記号を一つ読み込み、その記号をxに代入する。次のステップS105からステップS108は、仮説生成部104において実行される。
ステップS105では、仮説リストHから仮説を一つ取り出し仮説hに代入し、状態s[h]から入力記号がxに等しい状態遷移のリストEを用意する。
ステップS106でE=φ(空のリスト)であればステップS110に進む。そうでなければ、ステップS107に進み状態遷移リストEから状態遷移を一つ取り出し、状態遷移eに代入する。
ステップS108で新たな仮説fを生成し、s[f]=n[e]、W[f]=W[f]+w[e]、O[f]=O[h]・o[e]とする。ここで、“・”は二つの記号または記号列を接続し、一つの記号列にする演算を表す。
ステップS109は、仮説絞込み部105で実行され、仮説fを仮説リストH’に挿入することにより仮説を絞り込む。
ステップS109からステップS106に戻り、次の状態遷移について仮説を展開する。
ステップS110では、仮説リストH=φ(すべての仮説を展開済み)であればステップS111に進む。そうでなければステップS105に戻り、次の仮説を展開する。
ステップS111では、新たに生成された仮説のリストH’の要素を、すでに空となった仮説リストHにすべて移し、ステップS112に進む。
ステップS112では、記号列入力部103において次の入力記号が存在するならばステップS104に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しステップS113に進む。
ステップS113では、仮説リストHの中で終了状態に到達している仮説の累積重みにその終了状態の終了重みを加えた後で、その終了状態に到達している仮説の中から累積重み(W[h])が最小となる仮説hを選び、その出力記号列O[h]を記号列変換結果として、記号列出力部106において出力する。
ステップS114にて仮説生成規則を用いる記号列変換手順を終了する。
この記号列変換手順に従って、図1の仮説生成規則に入力記号列a,a,b,cが与えられた場合の出力記号列を求める過程を順を追って説明する。但し、ある仮説(現状態番号s、出力記号列O、累積重みW)がある場合、その仮説を(s,O,W)のように表すものとする。また、仮説生成規則のある状態遷移(現状態番号s、次状態番号n、入力記号x、出力記号y、重みw)を<s→n,x:y/w>と表すものとする。
ステップS101から開始し、ステップS102で空の仮説リストHとH’を作る。
ステップS103により仮説リストHの中に仮説(0,φ,0)を挿入する。
ステップS104で記号aを読み込み、ステップS105において仮説リストHから仮説(0,φ,0)を取り出す。この仮説の現状態0から入力記号がaに等しい状態遷移<0→0,a:d/0.5>を含む状態遷移リストEを作る。
ステップS106でE=φではないのでステップS107に進み、状態遷移<0→0,a:d/0.5>を取り出し、ステップS108で新たな仮説(0,d,0.5)を生成し、ステップS109で仮説リストH’に挿入する。
ステップS106に戻りE=φであるためステップS110に進み、仮説リストH=φであるためステップS111に進む。H’の要素(0,d,0.5)をHに移し、ステップS112で次の入力記号が存在するのでステップS104に戻る。
続いて、ステップS104で記号aを読み込み、ステップS105において仮説リストHから仮説(0,d,0.5)を取り出す。この仮説の現状態0から入力記号がaに等しい状態遷移<0→0,a:d/0.5>を含む状態遷移リストEを生成する。
ステップS106でE=φではないのでステップS107に進み、状態遷移リストEから状態遷移<0→0,a:d/0.5>を取り出す。ステップS108で新たな仮説(0,dd,1)を生成し、ステップS109でH’に挿入する。
ステップS106に戻り状態遷移リストE=φであるためステップS110に進み、H=φであるためステップS111に進む。仮説リストH’の要素(0,dd,1)を仮説リストHに移し、ステップS112で次の入力記号が存在するのでステップS104に戻る。
続いて、ステップS104で記号bを読み込み、ステップS105において仮説リストHから仮説(0,dd,1)を取り出す。この仮説の現状態0から入力記号がbに等しい状態遷移<0→1,b:c/0.3>と<0→2,b:b/1>を含む状態遷移リストEを作る。
ステップS106でE=φではないのでステップS107に進み、状態遷移リストEから状態遷移<0→1,b:c/0.3>を取り出す。ステップS108で新たな仮説(1,ddc,1.3)を生成し、ステップS109でH’に挿入する。
ステップS106に戻りE=φではないのでステップS107に進み、状態遷移リストEから状態遷移<0→2,b:b/1>を取り出す。ステップS108で新たな仮説(2,ddb,2)を生成して、ステップS109でH’に挿入する。
ステップS106に戻りE=φであるためステップS110に進み、H=φであるためステップS111に進み、H’の要素(1,ddc,1.3)と(2,ddb,2)は仮説リストHに移され、ステップS112で次の入力記号が存在するのでステップS104に戻る。
続いて、ステップS104で記号cを読み込み、ステップS105において仮説リストHから仮説(1,ddc,1.3)を取り出す。この仮説の現状態1から入力記号がcに等しい状態遷移<1→3,c:b/1>を含む状態遷移リストEを作る。
ステップS106でE=φではないのでステップS107に進み、状態遷移リストEから状態遷移<1→3,c:b/1>を取り出す。ステップS108で新たな仮説(1,ddcb,2.3)を生成し、ステップS109でH’に挿入する。
ステップS106に戻りE=φであるためステップS110に進み、H≠φであるためステップS105に戻り、仮説リストHから仮説(2,ddb,2)を取り出す。この仮説の現状態2から入力記号がcに等しい状態遷移<2→3,c:a/0.6>を含む状態遷移リストEを作る。
ステップS106でE=φではないのでステップS107に進み、状態遷移リストEから状態遷移<2→3,c:a/0.6>を取り出す。ステップS108で新たな仮説(3,ddba,2.6)を生成し、ステップS109で仮説リストH’に挿入する。このとき、仮説リストH’の中には既に仮説(3,ddcb,2.3)が含まれており、仮説(3,ddba,2.6)は同じ状態3に到達しているので、累積重みの小さい仮説(3,ddcb,2.3)を残し、仮説(3,ddba,2.6)はリストから削除する。
ステップS106に戻りE=φであるためステップS110に進み、仮説リストH=φであるためステップS111に進み、仮説リストH’の要素(3,ddcb,2.3)をHに移し、ステップS112で次の入力記号が存在しないのでステップS113に進む。
ステップS113で、仮説リストH内の仮説(3,ddcb,2.3)の到達状態3は終了状態であるため、終了重みを加えて(3,ddcb,2.8)とし、この仮説が終了状態に到達した唯一の仮説であり、累積重み最小となるので、その出力記号列ddcbを変換結果として出力し、ステップS114で記号列変換処理を終了する。
次に、二つの仮説生成規則があって、順に記号列の変換を行う問題を考える。つまり、二つの仮説生成規則、TとTがあって、入力記号列Xが与えられたときに、初めにTを用いて記号列Xを記号列Yに変換し、その記号列YをTの入力記号列として、更に変換して出力記号列Zを得ることを意味する。仮説生成規則の理論では、この問題は、TによってXを変換する際にその出力記号列となり得るすべてのYをTの入力記号列として考慮し、それら入力記号列に対して可能性のあるTの出力記号列Zの集合の中から、Tにおける状態遷移過程の累積重みとTにおける状態遷移過程の累積重みの和が最小となる変換結果を得る問題となる。従って、
Figure 0004478088
を計算し、このW(X)を与えるYとZの組のうちZを記号列変換結果とする。
例として、図5と図6に示す二つの仮説生成規則を考える。図5は、仮名の記号列を漢字の記号列に変換する仮説生成規則の一例である。ただし、図5に現れる“ε”の記号は、“:”の左側にある場合は入力記号なしで状態遷移し、右側にある場合はその状態遷移において何も出力しないことを表す。
この仮説生成規則は、例えば、記号列“あ,め”を状態遷移過程0,1,5(累積重み1)によって“雨”に変換し、“あ,め,だ,ま”は状態遷移過程0,1,5,0,4,5(累積重み3)によって“雨,玉”に変換する。しかし、日本語では一般に“あめだま”に対応する漢字は“雨玉”よりも“飴玉”の方が一般的であるが、図5の仮説生成規則では、記号列“飴,玉”を出力する状態遷移過程0,2,5,0,4,5の累積重みは4であるのに対し、“雨,玉”に変換する累積重みが3であることから、累積重みが小さい場合の“雨,玉”という変換結果になる。
一方、図6は漢字の連接に重みを与える仮説生成規則である。この仮説生成規則では、すべての状態遷移において入力記号と出力記号が同じ、つまり記号列を変換せずにそのまま出力するが、状態遷移過程において入力記号列(漢字列)の記号の連接が日本語としてもっともらしい場合には重みが小さく、もっともらしくない場合には重みが大きくなっている。例えば、入力記号列“雨,降り”を受理する状態遷移過程0,1,3の累積重みは0となり、入力記号列“飴,降り”を受理する状態遷移過程0,2,3の累積重みは3となり、入力記号列“雨,降り”の方が日本語としてもっともらしく連接された記号列であることを示している。
そして、この図5と図6の仮説生成規則を用いて記号列を変換する場合、例えば、仮名の記号列“あ,め,だ,ま”を入力すると、図5の仮説生成規則から得られる出力記号列は、“雨,玉”で累積重みが3と“飴,玉”で累積重みが4の場合がある。これら出力記号列をそれぞれ図6の仮説生成規則に入力した場合、“雨,玉”に対する累積重み5が、“飴,玉”に対する累積重みが1となり、図5と図6の二つの仮説生成規則による累積重みの和を計算すると次のようになる。
“あ,め,だ,ま”→“雨,玉”における累積重み 3+5=8
“あ,め,だ,ま”→“飴,玉”における累積重み 4+1=5
これらの累積重みを比較した結果、より累積重みの小さい出力記号列は“飴,玉”となる。このような変換結果を得るには、漢字の連接に関する重みを持つ図6の仮説生成規則が不可欠である。
二つの仮説生成規則を用いた従来の記号列変換の一実施例を図7に示す。まず、二つの仮説生成規則を用いて2段階の記号列変換を行う場合の前段に用いられる仮説生成規則を実行する部分を前段仮説生成部、後段に用いられる仮説生成規則を実行する部分を後段仮説生成部と呼ぶことにする。また、二つの仮説生成規則を用いる場合の“仮説”とは、ある記号列が順に入力され、現時点までに読み込まれた入力記号列に対して、前段仮説生成部において初期状態からその入力記号列によって状態遷移を繰り返した場合の可能性のある一つの状態遷移過程と、その前段仮説生成部の状態遷移過程に対応する出力記号列を後段仮説生成部の入力記号列としたときの、ある一つの状態遷移過程の組を表すものとする。
二つの仮説生成規則を用いて記号列を変換する別の手段として、二つの仮説生成規則を事前に合成して一つの仮説生成規則とし、一つの仮説生成規則に対する記号列変換手順を適用する方法がある。仮説生成規則の合成方法に関しては、例えば、非特許文献3に開示されている。しかし、仮説生成規則を合成すると、二つの状態遷移の組合せに対して状態や状態遷移ができることから、仮説生成規則の状態数や状態遷移数が非常に大きくなってしまうことがある。そのためコンピュータで仮説生成規則を扱う場合に、メモリサイズ等の制約から、記号列変換を実行するのが難しい場合がある。
一方、二つの仮説生成規則を用いて最小コスト探索を行う標準的な手法では、各々の仮説を更新して新たな仮説を生成する際に、前段の仮説生成規則において可能な状態遷移と、後段の仮説生成規則において可能な状態遷移のすべての組合せに対して新たな仮説を生成することから、仮説の数が多くなり計算量が大きくなるという問題があった。それを解決する二つの仮説生成規則を用いた効率的な記号列変換方法が提案されている。この方法は、二つの仮説生成規則を用いる場合に最小コスト探索に基づく標準的な記号列変換方法と、効率的な記号列変換方法の両方に関する説明がある。そして、これらの方法を音声認識に適用した際、その標準的な記号列変換方法に対する効率的な記号列変換方法の変換処理時間が約3分の1に短縮されることが示されている。
以下、先に提案された二つの仮説生成規則を用いた効率的な記号列変換方法について述べる。
記号列を順に読み込む記号列入力部と、状態遷移によって記号列を変換する二つの仮説生成規則を用いて記号列を2段階で変換するための前段に用いる前段仮説生成部と後段に用いる後段仮説生成部とを用いて記号列を変換する記号列変換部と、後段仮説生成部による変換結果を出力する記号列出力部とを有し、
記号列入力部から記号を順に読み込んで、入力記号列を読み終えた時点で、前記記号列変換部において前段と後段の仮説生成部においてそれぞれ適用される状態遷移に対する重みの累積値(累積重み)が最小となる後段の仮説生成部の状態遷移過程に対応する出力記号列を記号列出力部から出力する記号列変換方法において、
記号を順に読み込みながら、前段仮説生成部の一つの状態遷移過程を表す仮説に対する累積重みを、その仮説の状態遷移過程における出力記号列を後段仮説生成部の入力記号列としたときの後段仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することで補正する。
入力記号列がすべて読み込まれた時点で、累積重み最小または最大の仮説とその仮説の状態遷移過程に対応する出力記号列を後段仮説生成部の入力記号列としたときに後段仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程に対する出力記号列をもって記号列変換結果とすることを特徴とする記号列変換方法を構成し、この記号列変換方法によって効率的に記号列を変換する。
以下、図面を用いて二つの仮説生成部による効率的な記号列変換方法について図7を用いて説明する。記号列入力部103では、記号を順に読み込み、記号列変換部102に送る。記号変換部102はこの例では仮説生成部201−1、201−2及び仮説補正部301−1、301−2と、仮説絞込み部401−1、401−2とによって構成した場合を示す。仮説生成部201−1と201−2では、前段の仮説生成部201−1は記号列入力部103から受け取った記号を前段仮説生成規則格納部101−1から読み込んだ前段仮説生成規則に従って仮説を生成する。後段の仮説生成部201−2は後段仮説生成規則格納部101−2から読み込んだ後段仮説生成規則に従って前段の仮説生成部201−1が生成した仮説を新たに受け取った記号を用いて更新することにより新たな仮説を生成し、仮説補正部301−1と301−2に送る。仮説補正部301−1と301−2では、仮説の状態遷移過程における出力記号列を後段の仮説生成部201−2の入力記号列としたときの後段の仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加えることで補正し、仮説絞込み部401−1と401−2に送る。
仮説絞込み部401−1と401−2では、仮説補正部301−1と301−2から受け取った仮説に対し、状態遷移過程が重複している仮説の中で累積重みが最小の仮説だけを残し、その他の仮説を削除することにより仮説を絞り込む。入力記号列が最後まで読み込まれていれば、累積重み最小の仮説とその仮説の状態遷移過程に対応する出力記号列を後段の仮説生成部201−2の入力記号列としたときに後段の仮説生成部201−2において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程に対する出力記号列を記号列出力部106に送る。入力記号列が最後まで読み込まれていなければ、残った仮説を仮説生成部201−1に送る。記号列出力部106では、仮説絞込み部401−2から受け取った出力記号列を出力する。
図8に、二つの仮説生成部201−1と201−2による効率的な記号列変換方法の具体的な手順を示す。
まず、前段の仮説生成部201−1における“仮説”と、その仮説の状態遷移過程から出力される記号列を後段の仮説生成部201−2の入力記号列とした場合に、後段の仮説生成部201−2の可能な一つの状態遷移過程を、“仮説”と区別して“補助仮説”と呼ぶことにする。一つの仮説に対して必ず一つ以上の補助仮説が存在するので、本実施の形態では、仮説hに対する補助仮説の集合を補助仮説リストL[h]で表す。
また、仮説hがあるとき、s[h]を仮説hの状態遷移過程において最後に到達した状態、W[h]を仮説hの状態遷移過程における(補正された)累積重みとする。一方、仮説hに対して補助仮説g(g∈L[h])があるとき、s[g]を補助仮説gの状態遷移過程において最後に到達した状態、W[g]を仮説hの状態遷移過程における累積重みと補助仮説gの状態遷移過程における累積重みの和、O[g]を補助仮説gの状態遷移過程において出力される記号列とする。それから、仮説生成部201−1,201−2の終了状態の集合をそれぞれF,Fとする。
以下、図8及び図9の手順を図7の実施の形態と対比して説明する。
ステップS201より開始し、初期設定として、ステップS202で空の仮説リストHとH’を生成し、初期の仮説hを生成し、s[h]=0、W[h]=0、L[h]=φ(空のリスト)とし、仮説リストHに挿入する。また、補助仮説gを生成し、s[g]=0、W[g]=0、O[g]=φ(空の記号列)とし、仮説hの補助仮説リストL[h]に挿入する。
ステップS204では、記号列入力部103において記号を一つ読み込み、その記号をxに代入する。次のステップS205からステップS208は、仮説生成部201において実行される。
ステップS205では、仮説リストHから仮説を一つ取り出し仮説hに代入し、状態s[h]から入力記号xで遷移可能な状態遷移のリストEを生成する。
ステップS206で、E=φ(空のリスト)ならばステップS211に進む。そうでなければステップS207に進む。
ステップS207では、Eから状態遷移を一つ取り出して、eに代入し、ステップS208で新たな仮説fを生成し、s[f]=n[e]、W[f]=W[h]+w[e]、L[f]=L[h]とする。
ステップS209は、仮説補正部301において、もしo[e]=εならば仮説fを補正する手段(この手順の説明の後に別途説明する)を実行する。
ステップS210は、仮説絞込み部401において、仮説fを仮説リストH’に挿入することにより仮説を絞り込む。
ステップS211では、H=φ(すべての仮説を展開済み)であればステップS212に進む。そうでなければステップS305に戻り、次の仮説を生成する。
ステップS212では、新たに生成された仮説のリストH’の要素を、既に空となった仮説リストHにすべて移し、ステップS213に進む。
ステップS213では、記号列入力部103において次の入力記号が存在するならばステップS204に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しステップS214に進む。
ステップS214では、仮説リストHの中から終了状態に到達しているすべての仮説h(s[h]∈F)について累積重みW[h]に終了重みρ(s[h])を加え、補助仮説hの補助仮説リストL[h]の中で終了状態に到達している補助仮説g(s[g]∈F)について
Figure 0004478088
を計算し、gの累積重みW[g]が最小の補助仮説g’を選び、その出力記号列O[g’]を変換結果として記号列出力部106において出力する。
ステップS215にて二つの仮説生成部201−1と201−2を用いた記号列変換手順を終了する。
次に仮説補正部301−1と301−2における仮説補正手順について説明する。
仮説の補正は、前段仮説生成部201−1における仮説の状態遷移過程に対する累積重みを、その仮説の状態遷移過程における出力記号列を後段仮説生成部201−2の入力記号列としたときの後段仮説生成部201−2において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することを意味する。入力記号列Xが読み込まれた時点でその記号列Xを受理して記号列Yを出力する仮説の補正された累積重みは、
Figure 0004478088
となり、その補正累積重みが最小である仮説の補正累積重みは
Figure 0004478088
となり、先に述べた式(2)における二つの仮説生成部の累積重みの和の最小値と一致する。
従って、補正された累積重みを用いて、それを最小とする前段仮説生成部の出力記号列Yを求めて、そのYを後段仮説生成部の入力記号列としたときの可能な状態遷移過程の中で累積重みが最小となる状態遷移過程に対応する出力記号列が記号列変換結果となる。
この記号列変換方法では、各仮説に対応付けられた補助仮説リストを利用して仮説の補正を効率的に行う。補正される仮説をfとし、その補助仮説リストをL[f]、仮説fの最後の状態遷移における出力記号をyとする。
後段仮説生成部201−2の状態s[g](gはL[f]に含まれる一つの補助仮説を表す)から、入力記号yによる状態遷移eを経て次状態n[e]に至る補助仮説jを生成し、その到達状態をs[j]=n[e]とする。また、仮説fの状態遷移過程において、仮説fの最後の状態遷移(e)よりも前にあって出力記号がεではない最も新しい状態遷移をtとする。
このとき、補助仮説jの累積重みW[j]は、次の3つの要素を加算することにより計算できる。
(A1)仮説fの状態遷移過程における状態n[t]において生成された補助仮説gの累積重み:
この値はW[g]に等しい。つまり、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま後に続く状態遷移過程の仮説に引き継がれるので、状態n[t]において生成された補助仮説リストはL[f]に等しく、補助仮説リストL[f]の個々の補助仮説の累積重みW[g]をそのまま用いる。
(A2)状態n[t]から状態s[f]までの間に累積された重み:
但し、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま新たに生成された仮説に引き継がれるので、状態n[t]に至った仮説の補正された累積重みは、現在の補助仮説リストL[f]の中で最小の累積重み
Figure 0004478088
に等しく、これを現在の仮説fの累積重みW[f]から差し引くことにより、状態n[t]から状態s[f]までの間の累積重みが求まる。すなわち、
Figure 0004478088
である。
(A3)後段仮説生成部201−2の状態s[g]からs[j]への状態遷移eにおける重み:w[e]
従って、補助仮説jの累積重みはW[j]=W[g]+AW[f]+w[e]のように計算する。
そして、仮説fの補正は、W[f]を新たに生成された補助仮説jの累積重みW[j]の中での最小値
Figure 0004478088
を代入することにより行われる。
以下、仮説の補正手順を図10を用いて説明する。この仮説補正手順は、図8及び図9に示したステップS208において実行される。この手順において補正される仮説をf、前段仮説生成部からの出力記号をy(=o[e])とする。
ステップS301では、仮説fを補正する手順を開始する。
ステップS302では、空の補助仮説リストL’を生成する。
ステップS303では、重みの補正項AW[f]をAW[f]=W[f]−W[g’]として求める。但し、g’は、仮説fの補助仮説リストL[f]の中で累積重みが最小の補助仮説を指す。
ステップS304では、L[f]から補助仮説を一つ取り出し、gに代入する。状態s[g]から入力記号yで遷移可能な状態遷移のリストEを生成し、ステップS305に進む。
ステップS305では、リストEから状態遷移を一つ取り出し、eに代入する。
ステップS306では、補助仮説jを生成し、s[j]=n[e]、W[j]=W[g]+AW[f]+w[e]、O[j]=O[g]・o[e]とする。
ステップS307では、補助仮説jを補助仮説リストL’に挿入する。
ステップS308では、Eが空(s[g]からのすべての状態遷移に対して補助仮説を展開済み)であればステップS309に進む。そうでなければステップS305に戻り、次の状態遷移を調べる。
ステップS309では、L[f]が空(すべての補助仮説を展開済み)であればステップS310に進む。そうでなければステップS304に戻り、次の補助仮説を展開する。
ステップS310では、新たに生成された補助仮説のリストL’の要素を、すでに空となった補助仮説リストL’[f]にすべて移し、ステップS311に進む。
ステップS311では、補助仮説リストL[f]の中で累積重み最小の補助仮説g’’に対してW[f]=W[g’’]とする。
ステップS312にて仮説補正手順を終了する。
また、この二つの仮説生成部を用いた記号列変換方法では、仮説リストに仮説を挿入する場合、一つの仮説生成部を用いる記号列変換方法と同様に、仮説リスト内に前段仮説生成部の同じ状態に到達している仮説が存在していれば、累積重みの小さい方を仮説リストに残し、仮説を絞り込む。但し、この仮説絞込みによって補助仮説が失われることがあるので、絞り込まれた仮説の補助仮説リストを、残った仮説の補助仮説リストに連結する。その際、補助仮説リスト内の補助仮説の累積重みを補正する必要がある。これは、仮説hと仮説fが前段仮説生成部の同じ状態に到達しているとき、補助仮説の累積重みを
Figure 0004478088
のように補正する。この補正は、先に示した仮説の補正手順における(A1)と(A2)の項を加えたものに等しい。そして、
W[h]<W[f] ならば L[h]=L[h]+L[f]、fを削除
W[h]>W[f] ならば L[f]=L[h]+L[f]、hを削除
のように補助仮説リストを連結する。
記号列変換手順(図8及び図9)は、仮説補正手順(ステップS209)を除けば前段の仮説生成部だけを用いて探索する手順(図4)とほぼ同じ計算手順となり、従来の記号列変換手順と比べて計算量を少なく抑えることができる。仮説補正手順における計算の負荷はあるが、前段の仮説生成部の状態遷移において出力記号がεでない場合においてのみ仮説補正手順が実行されるので、前段の仮説生成部の出力記号がεである割合が多いほど、処理量削減の効果は大きくなる。
次に、二つの仮説生成部を用いる図8及び図9の記号列変換手順に従って、図5の仮説生成規則をT、図6の仮説生成規則をTとして、入力記号列“あ,め,だ,ま”が与えられた場合の出力記号列を求める過程を順を追って説明する。但し、仮説(仮説生成規則Tの現状態番号s、出力記号列O、累積重みW、補助仮説リストL)は(s,O,W,L)のように表し、補助仮説(仮説生成規則Tの現状態番号s、出力記号列O、累積重みW)は(s,O,W)のように表す。また、補助仮説リストLは{(s,O,W),(s’,O’,W’),…}のように表す。
〔二つの仮説生成規則を用いる記号列変換手順を開始〕
ステップS201から開始し、ステップS202で空の仮説リストHとH’を作る。
ステップS203により仮説リストHの中に仮説(0,φ,0,{(0,φ,0)})を挿入する。
〔入力記号“あ”の処理〕
ステップS204で記号“あ”を読み込み、ステップS205において仮説リストHから仮説(0,φ,0,{(0,φ,0)})を取り出す。
この仮説の仮説生成規則Tの現状態0から入力記号が“あ”の状態遷移
<0→1,あ:雨/0>,
<0→2,あ:飴/0>
を含むリストEを作る。
ステップS206でE=φではないのでステップS207に進み、状態遷移過程リストEから状態遷移<0→1,あ:雨/0>を取り出し、ステップS208で新たな仮説f=(1,雨,0,{(0,φ,0)})を生成する。ステップS209で状態遷移<0→1,あ:雨/0>の出力記号はεではないので、仮説f=(1,雨,0,{(0,φ,0)})を補正するステップS301(図10)に進む。
ステップS302で空の補助仮説リストL’を生成する。
ステップS303でAW[f]=0となる。
ステップS304で補助仮説リストL={(0,φ,0)}から補助仮説(0,φ,0)を取り出し、仮説生成規則Tの状態0から入力記号“雨”で遷移可能な状態遷移
<0→1,雨:雨/0>,
<0→3,雨:雨/0>
を含む状態遷移過程リストEを作る。
ステップS305で状態遷移過程リストE=φではないのでステップS306に進む。状態遷移過程リストEから状態遷移<0→1,雨:雨/0>を取り出し、ステップS307で補助仮説(1,雨,0)を生成し、ステップS308で補助仮説(1,雨,0)をL’に挿入する。
ステップS305に戻り状態遷移過程リストE=φではないのでステップS306に進む。状態遷移過程リストEから状態遷移<0→3,雨:雨/0>を取り出し、ステップS307で補助仮説(3,雨,0)を生成し、ステップS308で補助仮説(3,雨,0)をL’に挿入する。
ステップS305に戻り状態遷移過程リストE=φであるため、ステップS309に進む。補助仮説リストL=φなのでステップS310に進み、補助仮説リストL’の要素(1,雨,0),(3,雨,0)をLに移す。
ステップS311において仮説の累積重みは0となり、ステップS312で仮説の補正を終了する。この結果、仮説は(1,雨,0,{(1,雨,0),(3,雨,0)})となる。
ステップS210に戻り、仮説(1,0,{(1,雨,0),(3,雨,0)})を仮説リストH’に挿入する。
ステップS206に戻り状態遷移過程リストE=φではないのでステップS207に進み、状態遷移過程リストEから状態遷移<0→2,あ:飴/0>を取り出し、ステップS208で新たな仮説f=(2,飴,0,{0,φ,0})を生成し、ステップS209で状態遷移<0→2,あ:飴/0>の出力記号はεではないので、仮説f=(2,飴,0,{(0,φ,0)})を補正するためステップS301に進む。
ステップS302で空の補助仮説リストL’を生成する。
ステップS303で累積重みAW[f]=0となる。
ステップS304で補助仮説リストL={(0,φ,0)}から補助仮説(0,φ,0)を取り出し、仮説生成規則Tの状態0から入力記号“雨”で遷移可能な状態遷移
<0→2,飴:飴/0>,
<0→4,飴:飴/0>
を含むリストEを作る。
ステップS305でリストE=φではないのでステップS306に進む。リストEから状態遷移<0→2,飴:飴/0>を取り出し、ステップS307で補助仮説(2,飴,0)を生成し、ステップS308で補助仮説(2,飴,0)を補助仮説リストL’に挿入する。
ステップS305に戻り状態遷移過程リストE=φではないのでステップS306に進む。Eから状態遷移<0→4,飴:飴/0>を取り出し、ステップS307で補助仮説(4,飴,0)を生成し、ステップS308で補助仮説(4,飴,0)を補助仮説リストL’に挿入する。
ステップS305に戻り状態遷移過程リストE=φであるため、ステップS309に進む。補助仮説リストL=φなのでステップS310に進み、補助仮説リストL’の要素(2,飴,0),(4,飴,0)をLに移す。
ステップS311において仮説の累積重みは0となり、ステップS312で仮説の補正を終了する。この結果、仮説は(2,0,{(2,飴,0),(4,飴,0)})となっている。
ステップS210に戻り、仮説(2,飴,0,{(2,飴,0),(4,飴,0)})を仮説リストH’に挿入する。
ステップS206に戻りE=φであるためステップS211に進む。仮説リストH=φであるためステップS212に進み仮説リストH’内の仮説(1,雨,0,{(1,雨,0),(3,雨,0)})と(2,飴,0,{(2,飴,0),(4,飴,0)})を仮説リストHに移し、ステップS213で次の入力記号が存在するのでステップS204に戻る。
〔入力記号“め”の処理〕
続いて、ステップS204で記号“め”を読み込み、ステップS205において仮説リストHから仮説(1,雨,0,{(1,雨,0),(1,1,雨,0)})を取り出す。この仮説の仮説生成規則Tの現状態1から入力記号が“め”の状態遷移
<1→5,め:ε/1>
を含む状態遷移過程リストEを作る。
ステップS206で状態遷移過程リストE=φではないのでステップS207に進み、状態遷移過程リストEから状態遷移<1→5,め:ε/1>を取り出し、ステップS208で新たな仮説(5,雨,1,{(1,雨,0),(3,雨,0)})を生成し、ステップS209に進む。
状態遷移<1→5,め:ε/1>の出力記号はεであるため、次のステップS210に進み仮説(5,雨,1,{(1,雨,0),(3,雨,0)})を仮説リストH’に挿入する。
ステップS206に戻り状態遷移過程リストE=φであるためステップS211に進む。仮説リストH≠φであるためステップS205に戻り、仮説リストHから仮説(2,飴,0,{(2,飴,0),(4,飴,0)})を取り出す。この仮説の現状態2から入力記号が“め”の状態遷移
(<2→5,め:ε/2>,φ)
を含む状態遷移過程リストEを作る。
ステップS206で状態遷移過程リストE=φではないのでステップS207に進み、状態遷移過程リストEから状態遷移<2→5,め:ε/2>を取り出し、ステップS208で新たな仮説(5,飴,2,{(2,飴,0),(4,飴,0)})を生成し、ステップS209に進む。
状態遷移<2→5,め:ε/2>の出力記号はεであるため、次のステップS210に進み仮説(5,飴,2,{(2,飴,0),(4,飴,0)})を仮説リストH’に挿入する。
但し、仮説リストH’には既に仮説(5,雨,1,{(1,雨,0),(3,雨,0)})が存在し、仮説生成規則Tにおける到達状態が5であるため、累積重みの小さい仮説(5,雨,1,{(1,雨,0),(3,雨,0)})を残し、仮説(5,飴,2,{(2,飴,0),(4,飴,0)})は削除するが、補助仮説リストは連結させて、仮説を(5,雨,1,{(1,雨,1),(3,雨,1),(2,飴,2),(4,飴,2)})のようにする。
ステップS206に戻り状態遷移過程リストE=φであるためステップS211に進む。仮説リストH=φであるためステップS212に進み仮説リストH’内の仮説(5,雨,1,{(1,雨,1),(1,雨,1),(2,飴,2),(4,飴,2)})を仮説リストHに移し、ステップS213で次の入力記号が存在するのでステップS204に戻る。
〔入力記号“だ”の処理〕
続いて、ステップS204で記号“だ”を読み込み、ステップS205において仮説リストHから仮説(5,雨,1,{(1,雨,1),(1,雨,1),(2,飴,2),(4,飴,2)})を作り出す。この仮説の仮説生成規則Tの現状態5から入力記号が“だ”の状態遷移
<0→4,だ:玉/1>
を含む状態遷移過程リストEを作る。ここで、仮説生成規則Tの現状態5から状態0へは入力記号なしで遷移できるので、Eに含まれる仮説生成規則Tの状態遷移は<0→4,だ:玉/1>となっている。
ステップS206で状態遷移過程リストE=φではないのでステップS207に進み、状態遷移過程リストEから状態遷移<0→4,だ:玉/1>を取り出し、ステップS208で新たな仮説f=(4,雨玉,2,{(1,雨,1),(3,雨,1),(2,飴,2),(4,飴,2)})を生成し、ステップS209で状態遷移<0→4,だ:玉/1>の出力記号はεではないので、仮説f=(4,雨玉,2,{(1,雨,1),(3,雨,1),(2,飴,2),(4,飴,2)})を補正するためステップS301に進む。
ステップS302で空の補助仮説リストL’を生成する。
ステップS303で累積重みAW[f]=2−min(1,1,2,2)=1となる。
ステップS304で補助仮説リストL={(1,雨,1),(3,雨,1),(2,飴,2),(4,飴,2)}から補助仮説(1,雨,1)を取り出し、仮説生成規則Tの状態1から入力記号“玉”で遷移可能な状態遷移
<1→4,玉:玉/5>
を含む状態遷移過程リストEを作る。
ステップS305でE=φではないのでステップS306に進む。状態遷移過程リストEから状態遷移<1→4,玉:玉/5>を取り出し、ステップS307で補助仮説(4,雨玉,7)を生成する。ここで、補助仮説の累積重みは
W[g]+AW[f]+w[e]=1+1+5=7
のように計算されている。そして、ステップS308で補助仮説(4,雨玉,7)をL’に挿入する。
ステップS305に戻りE=φであるため、ステップS309に進む。
補助仮説リストL=φではないのでステップS304に進み、補助仮説(3,雨,1)を取り出し、仮説生成規則Tの状態3から入力記号“玉”で遷移可能な状態遷移は存在しないので状態遷移過程リストE=φとする。
ステップS305に戻りE=φであるため、ステップS309に進む。補助仮説リストL=φではないのでステップS304に進み、補助仮説(2,飴,2)を取り出し、仮説生成規則Tの状態2から入力記号“玉”で遷移可能な状態遷移
<2→4,玉:玉/1>
を含むリストEを作る。
ステップS305でE=φではないのでステップS306に進む。状態遷移過程リストEから状態遷移<2→4,玉:玉/1>を取り出し、ステップS307で補助仮説(4,飴玉,4)を生成する。ここで、補助仮説の累積重みは
W[g]+AW[f]+w[e]=2+1+1=4
のように計算されている。
ステップS308で補助仮説(4,飴玉,4)を補助仮説リストL’に挿入する。このとき補助仮説リストL’には補助仮説(4,雨玉,7)が存在するので累積重みの小さい補助仮説(4,飴玉,4)を残し、(4,雨玉,7)は削除する。
ステップS305に戻りE=φであるため、ステップS309に進む。
L=φではないのでステップS404に進み、補助仮説(4,飴,2)を取り出し、仮説生成規則Tの状態4から入力記号“玉”で遷移可能な状態遷移は存在しないので状態遷移過程リストE=φとする。
ステップS305に戻りE=φであるため、ステップS309に進む。補助仮説リストL=φなのでステップS310に進み、補助仮説リストL’の要素(4,飴玉,3)をLに移す。
ステップS311において仮説の累積重みは4となり、ステップS312で仮説の補正を終了し、結果として、仮説は(4,雨玉,4,{(4,飴玉,4)})となる。
ステップS210に戻って仮説(4,雨玉,4,{(4,飴玉,4)})をH’に挿入する。
ステップS206に戻りE=φであるためステップS211に進む。H=φであるためステップS212に進みH’内の仮説(4,雨玉,4,{(4,飴玉,4)})をHに移し、ステップS213で次の入力記号が存在するのでステップS204に戻る。
〔入力記号“ま”の処理〕
続いて、ステップS204で記号“ま”を読み込み、ステップS205において仮説リストHから仮説(4,雨玉,4,{(4,飴玉,4)})を取り出す。この仮説の仮説生成規則Tの現状態1から入力記号が“ま”の状態遷移
<4→5,ま:ε/1>
を含む状態遷移過程リストEを作る。
ステップS206でE=φではないのでステップS207に進み、状態遷移過程リストEから状態遷移<4→5,ま:ε/1>を取り出し、ステップS208で新たな仮説f=(5,雨玉,5,{(4,飴玉,4)})を生成し、ステップS209に進む。
状態遷移<4→5,ま:ε/1>の出力記号はεであるため、次のステップS210に進み仮説f=(5,雨玉,5,{(4,飴玉,4)})を仮説リストH’に挿入する。
ステップS206に戻りE=φであるためステップS211に進む。仮説リストH=φであるためステップS212に進み仮説リストH’内の仮説(5,雨玉,5,{(4,飴玉,4)})を仮説リストHに移し、ステップS213で次の入力記号が存在しないのでステップS214に進む。
ステップS214で、仮説リストH内の仮説h=(5,雨玉,5,{(4,飴玉,4)})が終了状態に到達した唯一の仮説であり、補助仮説リストL[h]に含まれる補助仮説g=(4,飴玉,4)について累積重みW[g]=4+(5−1)+0=5を計算し、その補助仮説の出力記号列“飴玉”を変換結果として出力し、ステップS215で記号列変換処理を終了する。
E.Roche and Y.Schabes著、"Finite-State Language Processing",MIT Press.1997 長尾真著"岩波講座ソフトウエア14;知識と推論"、岩波書店109〜113頁 E.Roche and Y.Schabes著、"Finite-State Language Processing",MIT Press,1997の15章"Speech Recognition by Composition of Weighted Finite Automata"
従来は2つの仮説生成部を用いて記号列を変換する記号列変換方法はあったが、2つの仮説生成部を用いて複雑な変換過程を必要とする記号列変換を行なわせるためには2つの仮説生成部に要求される変換機能は高度となり、その作成に多くの人手とコストが要求される。
本発明では3個以上の仮説生成部を組合せて高度の変換機能を得ることができる記号列変換方法及び装置を提供しようとするものである。つまり、各個々の仮説生成部の機能は簡素でありながら、それらを多段に組合せることにより高度の変換機能を得ようとするものである。
本発明による記号列変換方法の特徴はコンピュータによって、記号列を順に読み込む記号列入力部と、仮説生成規則によって入力された記号列を他の記号列の候補となる仮説に変換する3個以上M個の仮説生成部を備えた記号列変換部と、この記号列変換部が出力する変換結果を取り込む記号列出力部とを構成し、記号列変換部はM個の各仮説生成部のそれぞれに入力される入力記号列に対して状態遷移が可能な過程で求められる記号列で構成される仮説を生成する仮説生成処理と、生成された仮説に付与された累積重み値を、各後段の仮説生成部が生成する仮説に付与された累積重みの中の特異値により補正する仮説補正処理と、補正された累積重みを用いて不要な仮説を除去し、尤度の高い仮説に絞り込む仮説絞り込処理とを実行する点である。
本発明による記号列変換方法の更に他の特徴は上記記号列変換方法において、
仮説補正処理は、各仮説生成部が生成した仮説に付与される累積重みを、次段の仮説生成部において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する仮説補正処理を含み、この仮説補正処理を記号列入力部から1段目の仮説生成部へ記号が入力される毎にM−1段目の仮説生成部が生成した仮説の累積重みから1段目の仮説生成部が生成した仮説の累積重みの全てに渡って適用することを特徴とする。
本発明による記号列変換方法の更に他の特徴は前記の何れかに記載の記号列変換方法において、
仮説絞り込処理は、入力信号列が全て読み込まれた時点で、1段目の仮説生成部が生成した仮説の補正された累積重みの中の特異値を呈する累積重みを持つ仮説を抽出する仮説抽出処理と、この仮説抽出処理で抽出した仮説を次段の仮説生成部の入力記号列として入力する入力処理とを含み、これら仮説抽出処理と入力処理とを各仮説生成部に対して実行させて1段目の仮説生成部が生成した仮説からM段目の仮説生成部が生成した仮説の全ての中から補正された累積重みによって指定される仮説を選択し、M段目の仮説生成部が生成した仮説の中から仮説抽出処理で抽出した仮説をもって記号列変換結果として出力することを特徴とする。
本発明では更に上記した記号列変換方法を用いた音声認識方法を提案するものであり、その特徴は入力音声信号からその音響特徴を表わす記号列を抽出する音響特徴記号列変換処理ステップを備え、この音響特徴記号列変換処理ステップで変換された音響特徴を表わす記号列を前記した記号列変換方法の何れかにより入力音声信号に対応する記号列に変換することを特徴とする。
本発明では更に音声認識方法を用いた音声言い換え方法を提案するものであり、その特徴は入力音声信号をその音響特徴を表す音響特徴記号列に変換し、その音響特徴を表す記号列から単語の系列に変換する音声認識方法と、この音声認識方法で得られた単語の系列が文としてもっともらしい場合により小さな重みを与える第1仮説生成処理と、前記音声認識方法で得られた単語の系列を別の言語や様式の単語の系列に置き換える第2仮説生成処理と、その別の言語や様式の単語の系列が、その別の言語や様式の文としてもっともらしい場合により小さな重みを与える。第3仮説生成処理とから成る3回以上の仮説生成処理を用いて音声信号を別の言語や様式の文に変換して記号列出力部から出力することを特徴とする。
本発明によれば3個以上の仮説生成部を用いて記号列を変換できるから、各個々の仮説生成部の変換機能は簡素であっても、全体として高度の変換機能を得ることができる。因みに、例えば2ケ国語用の変換機能を持つ仮説生成部は比較的簡素に作成することができる。日本語から英語への変換機能を持つ第1仮説生成部、英語からフランス語への変換機能を持つ第2仮説生成部、フランス語からドイツ語への変換機能を持つ第3仮説生成部等である。これらの仮説生成部が存在する状況下にあって本発明を適用することにより、第1仮説生成部と第2仮説生成部を組合せて日本語からフランス語への変換機能を持つ記号変換装置を得ることができる。また第1仮説生成部と第2仮説生成部と第3仮説生成部を組合せて日本語からドイツ語への変換機能を持つ記号変換装置を簡単に得ることができる点が本発明の大きな特徴である。
本発明による記号列変換装置はハードウエアによって構成することができるが、それよりも、本発明による記号列変換プログラムをコンピュータにインストールし、コンピュータに記号列変換装置として機能させる実施形態が最良の実施形態である。
コンピュータを本発明による記号列変換装置として機能させるには、コンピュータには記号列を順に読み込む記号列入力部と、状態遷移過程によって記号列を他の記号列の候補となる仮説を生成するM段の仮説生成部と、このM段の仮説生成部で生成した各仮説に付与された重みをそれぞれ後段側の仮説生成部で生成された仮説に付与されている重みを用いて補正する仮説補正部と、この仮説補正部で補正された重みを用いて尤度の高い仮説を選択し仮説を絞り込む仮説絞込み部と、この仮説絞込み部が絞り込んだ仮説を出力記号列として出力する記号列出力部とを構築し記号列変換装置として機能させる。
つまり、記号入力部は他の記号列に変換すべき記号列を1記号ずつ読み込んで初段の仮説生成部に引き渡す。初段の仮説生成部は記号が入力される毎に自己に与えられている重み付き有限状態変換機能(例えば日本語を英語に変換する機能)により状態遷移が可能な組合せに基づいて変換先の記号列の候補記号列となる仮説を生成する。仮説は1個に限らず複数生成される場合が多く、各仮説には重みが付与される。
1段目の仮説生成部で生成した仮説は全て2段目の仮説生成部に入力記号列として入力される。2段目の仮説生成部はこの2段目の仮説生成部に与えられている重み付き有限状態変換機能により更に他の記号列の候補記号列となる仮説を生成する。2段目の仮説生成部で生成される仮説には1段目の仮説生成部で付与された重みと2段目の仮説生成部で付与される重みが累積される。2段目の仮説生成部において可能な状態遷移過程の各々で生成される仮説を更に3段目の仮説生成部の入力記号列として受渡す手順をM段目の仮説生成部まで繰返す。
仮説補正部は前記仮説生成過程をM段目の仮説生成部まで受渡す手順によって求められたM−1段目の仮説生成部の個々の仮説生成過程で付与された累積重みを、その個々の仮説生成過程で生成された候補記号列をM段目の仮説生成部の入力記号列としたときのM段目の仮説生成部において可能な仮説生成過程の中で最小又は最大の累積重みを用いて補正する。つまり、この補正はM段目の仮説生成部で生成した仮説に付与されている累積重みの最小又は最大を選択し、その選択した重みを前段の仮説生成部で生成された仮説の累積重みに加算することにより行なわれる。
M−1段目の仮説生成部で生成した仮説に付与されている重みの補正後の重みの中から最小又は最大となる特異値を選択し、その選択した重みを用いてM−2段目の仮説生成部で生成した各仮説の累積重みを補正する。この補正手順を1段目の仮説生成部が生成した仮説まで繰返す。以上説明した仮説生成部と仮説補正部の動作は1段目の仮説生成部に記号が1個入力される毎に実行される。
仮説絞込み部は入力記号列が全て読み込まれた時点で、1段目の仮説生成部で生成した仮説の中で最小又は最大の補正された累積重みを持つ仮説を2段目の仮説生成部の入力記号列として絞り、その仮説を2段目の仮説生成部に入力したときの2段目の仮説生成部で生成する仮説の中の補正された累積重みが最小又は最大の仮説を3段目の仮説生成部の入力記号列として絞り込みを行なう。この絞り込み手順をM段目の仮説生成部まで繰返し、M段目の仮説生成部で生成された仮説の中の累積重みが最小又は最大を呈する仮説を記号列出力部に出力し、この出力記号列をもって記号列変換結果とする。
以上の動作を要約すると、M個(Mは3以上)の仮説生成部T,T,…,Tがあって、入力記号列Xが与えられたときに、初めにTを用いて記号列Xを仮説となる記号列Oに変換し、その記号列Oを2段目の仮説生成部Tの入力記号列として更に変換して出力記号列Oを得て、更にこれを3段目の仮説生成部Tの入力記号列として変換を行い、これをM番目の仮説生成部まで繰り返し、最終的にTの出力記号列Oを得ることを意味する。最終的な出力記号列Oを求めるには、仮説生成部が二つの場合と同様に、Xを1番目の仮説生成部の入力記号列とするときのM個の仮説生成部によるあらゆる状態遷移過程の組み合わせの中から、すべての仮説生成部における状態遷移過程の累積重みの総和が最小となる変換結果を得ることとなる。つまり、
Figure 0004478088
を計算し、このW(X)を与えるO,O,…,Oの組のうちOを記号列変換結果とする。
本発明では、式(5)を次の式(6)
Figure 0004478088
のように考える。
以下図面を用いて本発明の一実施例を説明する。
図11は本発明の一実施例を示す。本発明による記号列変換部102はM段に縦続接続された仮説生成部201−1〜201−Mと、これらM個の各仮説生成部201−2からM段目の仮説生成部201−Mのそれぞれに付随して設けたM個の仮説生成規則格納部101−1〜101−Mと、仮説補正部301−1〜301−Mと、各仮説補正部301−1〜301−Mのそれぞれに付随して設けたM個の仮説絞込み部401−1〜401−Mとによって構成される。各仮説補正部301−1〜301−Mには後段の仮説生成部が生成した仮説の中の累積重みが最大又は最小となる特異値を呈する仮説の値で前段の仮説生成部が生成した仮説の累積重みを補正する重み補正手段301Aと、この補正動作をM−1段目から1段目の仮説補正部まで繰返し実行させる繰返し制御手段301Bとを備える。また仮説絞込み部401−1〜401−Mは記号列が全て読み込まれた時点で、各仮説生成部201−1〜201−Mが生成した各仮説の補正された仮説中から累積重みが例えば最小となる仮説を抽出し、その仮説を次段の仮説生成部に入力する処理を実行する仮説抽出手段401Aと、この仮説抽出手段401Aが抽出した仮説を次段の入力とする入力処理部401Bとを備える。
初段の仮説生成部201−1には記号入力部103から記号が1個ずつ入力される。また終段の仮説絞込み部401−Mには補正された累積重みに応じて絞り込まれた仮説が記号列出力部106に出力される。
以下に各部の動作を詳細に説明する。
初期の仮説生成部201−1は常に1個の記号入力に対して自己に与えられた仮説生成規則に基づいて仮説を生成する。これに対して2段目以後の仮説生成部201−2〜201−Mには前段の仮説生成手段が生成した仮説(候補記号列)が入力される。従って、ここでは初段の仮説生成部201−1が出力する仮説と、2段目以後の仮説生成部201−2〜201−Mが出力する仮説とを区別するために、2段目以後の仮説生成部201−2〜201−Mが生成する仮説をm段目補助仮説或は単に補助仮説と称することにする。
各仮説生成部201−1〜201−Mで生成される仮説は背景技術の項で説明したように重み付き有限状態遷移過程を経て生成され、遷移過程の可能性に基づいて複数の仮説が生成される。更に、各仮説には重み付き有限状態遷移過程に付された条件に従って重みが付与される。重みは初段の仮説生成部201−1から終段の仮説生成部201−Mまでの状態遷移に従って累積される。
終段の仮説生成部201−Mが生成する仮説に空でない中身が存在する仮説が生成され始まると、仮説補正部301−1〜301−Mが動作を始める。終段の仮説生成部201−Mが生成する仮説に中身が存在する仮説が生成され始まると、仮説補正部301−Mは仮説生成部201−Mが生成した仮説の中から、例えば累積重みが最小値を呈する仮説を抽出し、この仮説の累積重みを用いて前段のM−1段目の仮説生成部201−(M−1)が生成する仮説の累積重みを補正する。この補正は終段で抽出した最小の累積重みを前段の仮説生成部201−(M−1)が生成した仮説の全ての累積重みに加算することで行なわれる。この補正手順を初段の仮説生成部201−1が出力する仮説を補正するまで繰返す。
全ての記号列が読み込まれた時点で仮説絞込み部401−1〜401−Mは各仮説生成部201−1〜201−Mが生成した全ての仮説の中から尤度の高い(もっともらしい)仮説を選択し、仮説を絞り込む。その絞り込み動作は以下の如くして行なわれる。つまり、初段の仮説絞込み部401−1は初段の仮説生成部201−1が生成した仮説の中から累積重みが例えば最も小さい仮説を抽出し、この仮説を2段目の仮説生成部201−2に入力記号列として与え、2段目の仮説生成部201−2でこの入力記号列で可能な有限状態遷移過程に従って補助仮説を生成する。
2段目仮説補正部301−2は2段目仮説生成部201−2が生成した補助仮説の中から累積重みが例えば最も小さい仮説を抽出し、この補助仮説を3段目の仮説生成部201−3の入力記号列とする手順を終段の仮説生成部201−Mが出力する補助仮説まで繰返す。終段の仮説絞込み部401−Mが終段の仮説生成部201−Mが生成した補助仮説の中から抽出した補助仮説が記号列出力部106に出力され、記号列の変換が終了する。
図12及び図13に本発明の一実施の形態における、記号列を変換する具体的な手順を示す。まず、各仮説生成部では一つの仮説に対して必ず一つ以上の2段目補助仮説が存在し、また、m段目補助仮説に対して必ず一つ以上のm+1段目補助仮説が存在するので、本実施の形態では、仮説hに対する2段目補助仮説の集合を2段目補助仮説リストL[h]、m段目補助仮説gに対するm+1段目補助仮説の集合をm段目補助仮説リストL[g]で表す。
また、仮説hがあるときs[h]を仮説hの状態遷移過程において最後に到達した状態、m段目補助仮説gがあるときs[g]をm段目補助仮説gの状態遷移過程において最後に到達した状態、W[h]を仮説hの状態遷移過程における(補正された)累積重み、W[g]をm段目補助仮説gの状態遷移過程における(補正された)累積重みとする。また、O[g]をm段目補助仮説gの状態遷移過程において出力される記号列とする。
以下、図12及び図13の手順を図11の実施の形態と対比して説明する。
基本的な手順は図8及び図9と同様であるが、ステップS203とステップS403、ステップS209とステップS409、ステップS214とステップS414の処理が異なる。ステップS401より開始し、初期設定として、ステップS402で空の仮説リストHとH’を生成する。ステップS403では初期の仮説hを生成し、s[h]=0、W[h]=0、L[h]=φ(空のリスト)とし、仮説リストHに挿入する。また、m=2〜Mに対して初期のm段目補助仮説gを生成し、最後の状態s[g]=0、W[g]=0、O[g]=φ(空の記号列)とし、2段目補助仮説gを2段目補助仮説リストL[h]に挿入し、m=3〜Mに対してgをm−1段目補助仮説リストL[gm−1]に挿入する。
ステップS404では、記号列入力部103において記号を一つ読み込み、その記号をxに代入する。
次のステップS405からステップS408は、仮説生成部201において実行される。
ステップS405では、仮説リストHから仮説を一つ取り出しhに代入し、状態s[h]から入力記号xで遷移可能な状態遷移のリストEを生成する。
ステップS406で、リストE=φ(空のリスト)ならばステップS411に進む。そうでなければステップS407に進む。
ステップS407では、リストEから状態遷移を一つ取り出して、eに代入し、ステップS408で新たな仮説fを生成し、s[f]=n[e]、W[f]=W[h]+w[e]、L[f]=L[h]とする。
ステップS409は、仮説補正部301−1〜301−Mにおいて、もし出力記号列o[e]≠ε(空でなければ)仮説fを補正する手段(図14、図15のステップS501からステップS512、この手順の説明の後に別途説明する)を実行する。
ステップS410は、仮説絞込み部401−1〜401−Mにおいて、仮説fを仮説リストH’に挿入することにより仮説を絞り込む。
ステップS411では、H=φ(すべての仮説を展開済み)であればステップS412に進む。そうでなければステップS405に戻り、次の仮説を展開する。
ステップS412では、新たに生成された仮説リストH’の要素を、既に空となった仮説リストHにすべて移し、ステップS413に進む。
ステップS413では、記号列入力部103において次の入力記号が存在するならばステップS404に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しステップS414に進む。
ステップS414では、仮説リストHの中から終了状態に到達している仮説(s[h]∈F)で、かつ累積重み(W[h])に状態s[h]の終了重みρ(s[h])を加え、更にm=2〜Mについて、s[h]∈Fかつh∈L[hm−1]である場合の
Figure 0004478088
をすべてのhについて求め、s[h]∈FかつW[h]が最小のhを選び、O[h]を変換結果として記号列出力部106において出力する。
ステップS415にて本発明の一実施の形態における記号列変換手順を終了する。
仮に仮説補正部301−1〜301−Mにおける仮説補正手順について説明する。
本発明における仮説の補正は、m段目の仮説生成部における仮説の状態遷移過程に対する累積重みを、その仮説の状態遷移過程における仮説をm+1段目の仮説生成部の入力記号列としたときのm+1段目の仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することを意味する。
例えばM=3の場合、入力記号列Xが読み込まれた時点でその記号列Xを受理して記号列Yを出力する仮説の補正された累積重みは、
Figure 0004478088
となり、その補正累積重みが最小である仮説の補正累積重みは
Figure 0004478088
となり、先に述べた式(4)でM=3の場合における仮説生成部の累積重みの和の最小値と一致する。従って、補正された累積重みを用いて、1段目の仮説生成部の出力記号列Yを求めて、そのYを2段目の仮説生成部の入力記号列としたときの可能な状態遷移過程の中で累積重みが最小となる出力記号列Zを求めて、そのZを3段目の仮説生成部の入力記号列としたときの可能な状態遷移過程の中で累積重みが最小となる状態遷移過程に対応する出力記号列が記号列変換結果となる。
本発明では、各仮説に対応付けられたm段目補助仮説リストを利用して仮説の補正を効率的に行う。補正される仮説をfm−1(m−1段目補助仮説)とし、fm−1の入力記号列から派生するm段目補助仮説を含むm−1段目補助仮説リストをL[fm−1]とする。
m段目の仮説生成部の状態s[g](gはL[fm−1]に含まれる一つのm段目補助仮説を表す)から、入力記号o[em−1]による状態遷移eを経て次状態n[e]に至るm段目補助仮説fを生成し、その到達状態をs[f]=n[e]とする。また、m−1段目補助仮説fm−1の状態遷移過程において、fm−1の最後の状態遷移(em−1)よりも前にあって出力記号がεではない最も新しい状態遷移をtm−1とする。このとき、m段目補助仮説fの累積重みW[f]は、次の3つの要素を加算することにより計算できる。
(A1)m−1段目補助仮説fm−1の状態遷移過程における状態n[tm−1]において生成されたm段目補助仮説fの累積重み:
この値はW[f]に等しい。つまり、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま後に続く状態遷移過程の仮説に引き継がれるので、状態n[tm−1]において生成されたm−1段目補助仮説リストは現在のL[fm−1]にそのものであり、m−1段目補助仮説リストL[fm−1]の個々のm段目補助仮説の累積重みW[f]に等しい。
(A2)状態n[tm−1]から状態sm−1[fm−1]までの間に累積された重み:
但し、出力記号がεであった状態遷移過程では、m段目補助仮説リストはそのまま新たに生成された仮説に引き継がれるので、状態n[tm−1]に至った仮説の補正された累積重みは、現在のm−1段目補助仮説リストL[fm−1]の中で最小の累積重み
Figure 0004478088
に等しく、これを現在のm−1段目補助仮説fm−1の累積重みW[fm−1]から差し引くことにより、状態n[tm−1]から状態sm−1[fm−1]までの間の累積重みが求まる。すなわち、
Figure 0004478088
である。
(A3)m段目の仮説生成部の状態s[g]からs[f]への状態遷移eにおける重み:w[e]
従って、m段目補助仮説fの累積重みはW[f]=W[g]+AW[fm−1]+w[e]のように計算する。但し、m<Mの場合は、W[f]は更にm+1段目の仮説生成部を用いて補正されるものとする。その後、m−1段目補助仮説リストL[fm−1]に挿入される。
そして、m−1段目補助仮説fm−1の補正は、W[fm−1]を新たに生成されたm段目補助仮説g(但し、g∈L[fm−1])の累積重みW[g]の中での最小値
Figure 0004478088
を代入することにより行われる。
以下、仮説の補正手順を図14、図15を用いて説明する。この仮説補正手順は、図12及び図13に示したステップS409において実行される。この手順において補正される仮説または補助仮説をfm−1、m−1段目の仮説生成部からの出力記号をo[em−1]とする。
ステップS501では、仮説または補助仮説fm−1を補正する手順を開始する。
ステップS502では、空の補助仮説リストLを生成する。
ステップS503では、重みの補正項AW[fm−1]をAW[fm−1]=W[fm−1]−W[g’]として求める。但し、g’は、fm−1の補助仮説リストL[fm−1]の中で累積重みが最小の補助仮説を指す。
ステップS504では、L[fm−1]から補助仮説を一つ取り出し、gに代入する。状態s[g]から入力記号o[em−1]で遷移可能な状態遷移のリストEを生成し、ステップS405に進む。
ステップS505では、Eが空(s[g]からのすべての状態遷移に対して補助仮説を展開済み)であればステップS510に進む。そうでなければステップS506に進む。
ステップS506では、リストEから状態遷移を一つ取り出し、eに代入する。
ステップS507では、補助仮説fを生成し、s[f]=n[e]、W[f]=W[g]+AW[fm−1]+w[e]、O[f]=O[g]・o[e]とする。
ステップS508では、o[e]がεではなく、かつm<Mならば、fを補正する。ここでは、mを一増やして、同じ手順、ステップS501からステップS513を実行することにより行われ、補正後mを一減らして次のステップS509に進む。
ステップS509では、補助仮説fを補助仮説リストLに挿入し、ステップS505に進む。
ステップS510では、L[fm−1]がφ(すべての補助仮説を展開済み)であればステップS511に進む。そうでなければステップS504に戻り、次の補助仮説を展開する。
ステップS511では、新たに生成された補助仮説のリストLの要素を、すでに空となった補助仮説リストL[fm−1]にすべて移し、ステップS512に進む。
ステップS512では、補助仮説リストL[fm−1]の中で累積重み最小の補助仮説g’’に対してW[fm−1]=W[g’’]とする。
ステップS513にて本発明の一実施の形態における仮説補正手順を終了する。
本発明による記号列変換手順(図12及び図13)は、仮説補正ステップS409を除けば一段目の仮説生成部だけを用いて探索する手順(図4)とほぼ同じ計算手順となる。また、仮説補正手順(図14及び図15)においても、ステップS508を除けば、従来の仮説補正手順(図10)とほぼ同じ手順となり、計算量を少なく抑えることができる。仮説生成部の状態遷移において出力記号がεでない場合においてのみ仮説補正手順が実行されるので、仮説生成部の出力記号がεである割合が多いほど、処理量削減の効果は大きくなる。
例として、図16と、図5及び図6に示す三つの仮説生成規則による変換(M=3の場合)を考える。
図16は、ローマ字の記号列から仮名に変換する仮説生成規則を表している。これら3つの仮説生成規則によって、ローマ字入力された記号列を、対応する漢字の記号列に変換する場合を考える。
次に、本発明の記号列変換手順に従って、図16を仮説生成規則T、図5を仮説生成規則T、図6を仮説生成規則Tとして、入力記号列“a,m,e,d,a,m,a”が与えられた場合の出力記号列を求める過程を順を追って説明する。但し、仮説(仮説生成規則Tの現状態番号s、出力記号列O、累積重みW、補助仮説リストL)は(s,O,W,L)のように表し、m段目補助仮説(仮説生成規則Tの現状態番号s、出力記号列O、累積重みW、m段目補助仮説リストL)は(s,O,W,L)のように表す。また、m段目補助仮説リストは{(s,O,W,L),(s’,O’,W’,L’),…}のように表す。
〔本発明による記号列変換手順を開始〕
ステップS401から開始し、ステップS402で空の仮説リストHとH’を作る。
ステップS403により仮説リストHの中に仮説h=(0,φ,0,{(0,φ,0,{(0,φ,0,φ)})})を挿入する。
〔入力記号“a”の処理〕
ステップS404で記号“a”を読み込み、ステップS405において仮説リストHから仮説(0,φ,0,{(0,φ,0,{(0,φ,0,φ)})})を取り出す。この仮説の仮説生成規則Tの現状態0から入力記号が“a”の状態遷移
<0→0,a:あ/0>
を含むリストEを作る。
ステップS406でリストE=φではないのでステップS407に進み、リストEから状態遷移<0→0,a:あ/0>を取り出しリストeとし、ステップS408で新たな仮説f=(0,あ,0,{(0,φ,0,{(0,φ,0,φ)})})を生成する。ステップS409でo[e]はεではないので、仮説f=(0,あ,0,{(0,φ,0,{(0,φ,0,φ)})})を補正するステップS501に進む。このときm=2に設定する。
ステップS502で空の補助仮説リストLを生成する。
ステップ503でAW[f]=0となる。
ステップS504で補助仮説リストL[f]={(0,φ,0,{(0,φ,0,φ)})}から補助仮説g=(0,φ,0,{(0,φ,0,φ)})を取り出し、仮説生成規則Tの状態0から入力記号“あ”で遷移可能な状態遷移
<0→1,あ:雨/0>,
<0→2,あ:飴/0>
を含むリストEを作る。
ステップS505でE=φではないのでステップS506に進む。リストEから状態遷移<0→1,あ:雨/0>を取り出しリストeとし、ステップS507で補助仮説f=(1,雨,0,{(0,φ,0,φ)})を生成する。
ステップS508でo[e]はεではなく、かつ、m=2でM=3なのでm<Mであることから、補助仮説fを補正するステップS501に進む。このときmを1増やして、m=3に設定する。
ステップS502で空の補助仮説リストLを生成する。
ステップS503でAW[f]=0となる。
ステップS504で補助仮説リストL[f]={(0,φ,0,φ)}から補助仮説g=(0,φ,0,φ)を取り出し、仮説生成規則Tの状態0から入力記号“雨”で遷移可能な状態遷移
<0→1,雨:雨/0>,
<0→3,雨:雨/0>
を含むリストEを作る。
ステップS505でE=φではないのでステップS506に進む。Eから状態遷移<0→1,雨:雨/0>を取り出しeとし、ステップS507で補助仮説f=(1,雨,0,φ)を生成する。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、補助仮説fをリストLに挿入する。
ステップS505に戻り、E=φではないのでステップS506に進む。Eから状態遷移<0→3,雨:雨/0>を取り出しeとし、ステップS507で補助仮説f=(3,雨,0,φ)を生成する。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、仮説fをリストLに挿入する。
ステップS505に戻り、リストE=φなので、ステップS510に進む。
ステップS510で、補助仮説リストL[f]=φなので、ステップS511に進む。
ステップS511で、補助仮説リストLの要素{(1,雨,0,φ),(3,雨,0,φ)}をすべて補助仮説リストL[f]に移す。
ステップS512で、L[f]の補助仮説の累積重みはどちらも0なのでW[f]=0とする。
ステップS513で補助仮説fの補正を終了し、mを1減らしてm=2とし、ステップS508に戻る。
ステップS508における補助仮説fの補正手順の後、ステップS509に進む。
ステップS509では、補助仮説fを補助仮説リストLに挿入し、ステップS505に戻る。
ステップS505でリストE=φではないのでステップS506に進む。リストEから状態遷移<0→2,あ:飴/0>を取り出しeとし、ステップS507で補助仮説f=(2,飴,0,{(0,φ,0,φ)})を生成する。
ステップS508でo[e]はεではなく、かつ、m=2でM=3なのでm<Mであることから、補助仮説fを補正するステップS501に進む。このときmを1増やして、m=3に設定する。
ステップS502で空の補助仮説リストLを生成する。
ステップS503でAW[f]=0となる。
ステップS504で補助仮説リストL[f]={(0,φ,0,φ)}から補助仮説g=(0,φ,0,φ)を取り出し、仮説生成規則Tの状態0から入力記号“飴”で遷移可能な状態遷移
<0→2,飴:飴/0>,
<0→4,飴:飴/0>
を含むリストEを作る。
ステップS505でリストE=φではないのでステップS506に進む。リストEから状態遷移<0→2,飴:飴/0>を取り出しリストeとし、ステップS507で補助仮説f=(2,飴,0,φ)を生成する。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、補助仮説fを補助仮説リストLに挿入する。
ステップS505に戻り、E=φではないのでステップS506に進む。Eから状態遷移<0→4,飴:飴/0>を取り出しeとし、ステップS507で補助仮説f=(4,飴,0,φ)を生成する。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、補助仮説fを補助仮説リストLに挿入する。
ステップS505に戻り、E=φなので、ステップS510に進む。
ステップS510で、補助仮説リストL[f]=φなので、ステップS511に進む。
ステップS511で、リストLの要素{(2,飴,0,φ),(4,飴,0,φ)}をすべて補助仮説リストL[f]に移す。
ステップS512で、L[f]の補助仮説の累積重みはどちらも0なのでW[f]=0とする。
ステップS513で補助仮説fの補正を終了し、mを1減らしてm=2とし、ステップS508に戻る。
ステップS508におけるfの補正手順の後、ステップS509に進む。
ステップS509では、fをLに挿入し、ステップS505に戻る。
ステップS505でE=φであるため、ステップS510に進む。
ステップS510で、L[f]=φなので、ステップS511に進む。
ステップS511で、Lの要素をすべてL[f]に移す。
ステップS512で、L[f]={(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})}の補助仮説の累積重みはどちらも0なのでW[f]=0とする。
ステップS513で補助仮説fの補正を終了し、ステップS409に戻る。
ステップS409における仮説fの補正手順の後、ステップS410に進む。
ステップS410では、仮説fを仮説リストH’に挿入し、ステップS406に戻る。
ステップS406で状態遷移リストE=φなので、ステップS411に進む。
ステップS411で仮説リストH=φなので、ステップS412に進み、H’の要素
{(0,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})}
を仮説リストHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
〔入力記号“m”の処理〕
ステップS404で記号“m”を読み込み、ステップS405において仮説リストHから仮説
h={(0,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})}
を取り出す。この仮説の仮説生成規則Tの現状態0から入力記号が“m”の状態遷移
<0→1,m:ε/0>
を含むリストEを作る。
ステップS406でE=φではないのでステップS407に進み、状態遷移リストEから状態遷移<0→0,m:ε/0>を取り出しeとし、ステップS408で新たな仮説
=(1,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})
を生成する。ステップS409でo[e]=εなので、ステップS410に進む。
ステップS410では仮説fを仮説リストH’に挿入し、ステップS406に進む。
ステップS406では状態遷移リストE=φなのでステップS411に進み、仮説リストH=φなのでステップS412に進む。
ステップS412では仮説リストH’の要素
{(1,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})}
をすべて仮説リストHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
〔入力記号“e”の処理〕
ステップS404で記号“e”に読み込み、ステップS405において仮説リストHから仮説
h=(1,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})
を取り出す。この仮説の仮説生成規則Tの現状態0から入力記号が“e”の状態遷移
<1→0,e:め/0>
を含む状態遷移リストEを作る。
ステップS406でE=φではないのでステップS407に進み、Eから状態遷移<1→0,e:め/0>を取り出しeとし、ステップS408で新たな仮説
=(0,あめ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})
を生成する。ステップS409でo[e]はεではないので、仮説fを補正するステップS501に進む。このときm=2に設定する。
ステップS502で空の補助仮説リストLを生成する。
ステップS503でAW[f]=0となる。
ステップS504で補助仮説リスト
L[f]={(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})}
から補助仮説
=(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)})
を取り出し、仮説生成規則Tの状態1から入力記号“め”で遷移可能な状態遷移
<1→5,め:ε/1>
を含む状態遷移リストEを作る。
ステップS505で状態遷移E=φではないのでステップS506に進む。状態遷移リストEから状態遷移<1→5,あ:ε/1>を取り出しeとし、ステップS507で補助仮説f=(5,雨,1,{(1,雨,0,φ),(3,雨,0,φ)})を生成する。
ステップS508でo[e]はεであるため、ステップS509に進む。
ステップS509ではfをLに挿入し、ステップS505に戻る。
ステップS505ではE=φなのでステップS510に進み、ステップS510では、L[f]がφではないので、ステップS504に戻る。
ステップS504で補助仮説リスト
L[f]={(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})}
から補助仮説
=(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})
を取り出し、仮説生成規則Tの状態1から入力記号“め”で遷移可能な状態遷移
<2→5,め:ε/2>
を含む状態遷移リストEを作る。
ステップS505でE=φではないのでステップS506に進む。Eから状態遷移<2→5,め:ε/2>を取り出しeとし、ステップS507で補助仮説f=(5,飴,2,{(2,飴,0,φ),(4,飴,0,φ)})を生成する。
ステップS508でo[e]はεであるため、ステップS509に進む。
ステップS509ではfをLに挿入し、ステップS505に戻る。
但し、補助仮説リストLには既に補助仮説(5,雨,1,{(1,雨,0,φ),(3,雨,0,φ)})が存在し、仮説生成規則Tにおける到達状態が5であるため、累積重みの小さい補助仮説、(5,雨,1,{(1,雨,0,φ),(3,雨,0,φ)})を残し、(5,飴,2,{(2,飴,0,φ),(4,飴,0,φ)})は削除する。このとき、それぞれの補助仮説の補助仮説リストは累積重みを修正して連結させ、(5,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})とする。また、状態5に到達した補助仮説は、状態遷移<5→0,ε:ε/0>経由して、入力記号なしで状態0に到達するので、補助仮説リストLには補助仮説、
(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})
が残る。
ステップS505ではE=φなのでステップS510に進み、ステップS510ではL[f]がφなので、ステップS511に進む。
ステップS511ではLの要素をすべてL[f]に移す。
ステップS512では、L[f]={(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})}の補助仮説の中で累積重みの最小値は1であるため、W[f]=1とする。
ステップS513で補助仮説fの補正を終了し、ステップS409に戻る。
ステップS409における仮説fの補正手順の後、ステップS410に進む。
ステップS410では、仮説fを仮説リストH’に挿入し、ステップS406に戻る。
ステップS406で仮説遷移リストE=φなので、ステップS411に進む。
ステップS411でH=φなので、ステップS412に進み、H’の要素
{(0,あめ,1,{(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(0,飴,2,{(2,飴,2,φ),(4,飴,2,φ)})}
を仮説リストHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
〔入力記号“d”の処理〕
ステップS404で記号“d”を読み込み、ステップS405において仮説リストHから仮説
h={(0,あめ,1,{(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})}
を取り出す。この仮説の仮説生成規則Tの現状態0から入力記号が“d”の状態遷移
<0→3,d:ε/0>
を含む仮説遷移リストEを作る。
ステップS406でE=φではないのでステップS407に進み、Eから状態遷移<0→3,d:ε/0>を取り出しeとし、ステップS408で新たな仮説
=(3,あめ,1,{(0,雨,1,{(1,雨,0,φ),(3,雨,0,φ)}),(0,飴,2,{(2,飴,0,φ),(4,飴,0,φ)})})
を生成する。ステップS409でo[e]=εなので、ステップS410に進む。
ステップS410ではfをH’に挿入し、ステップS406に進む。
ステップS406ではE=φなのでステップS411に進み、H=φなのでステップS412に進む。
ステップS412では仮説リストH’の要素
{(3,あめ,1,{(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})})}
をすべて仮説リストHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
〔入力記号“a”の処理〕
ステップS404で記号“a”を読み込み、ステップS405において仮説リストHから仮説
h=(3,あめ,1,{(0,雨,1,{(1,雨,0,φ),(3,雨,0,φ),(2,飴,0,φ),(4,飴,0,φ)})})
を取り出す。この仮説の仮説生成規則Tの現状態0から入力記号が“e”の状態遷移
<3→0,a:だ/0>
を含むリストEを作る。
ステップS406でE=φではないのでステップS407に進み、Eから状態遷移<1→0,e:め/0>を取り出しeとし、ステップS408で新たな仮説
=(0,あめだ,1,{(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})})
を生成する。ステップS409でo[e]はεではないので、仮説fを補正するステップS501に進む。このときm=2に設定する。
ステップS502で空の補助仮説リストLを生成する。
ステップS503でAW[f]=0となる。
ステップS504で補助仮説リスト
L[f]={(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})}
から補助仮説
=(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})
を取り出し、仮説生成規則Tの状態0から入力記号“だ”で遷移可能な状態遷移
<0→4,だ:玉/1>
を含むリストEを作る。
ステップS505でE=φではないのでステップS506に進む。Eから状態遷移<0→4,だ:玉/1>を取り出しeとし、ステップS507で補助仮説f=(4,雨玉,2,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})を生成する。
ステップS508でo[e]はεではなく、かつ、m=2でM=3なのでm<Mであることから、fを補正するステップS501に進む。このときmを1増やして、m=3に設定する。
ステップS502で空の補助仮説リストLを生成する。
ステップS503でAW[f]=2−1=1となる。
ステップS504で補助仮説リストL[f]={(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)}から補助仮説g=(1,雨,1,φ)を取り出し、仮説生成規則Tの状態1から入力記号“玉”で遷移可能な状態遷移
<1→4,玉:玉/5>
を含むリストEを作る。
ステップS505でE=φではないのでステップS506に進む。Eから状態遷移<1→4,玉:玉/5>を取り出しeとし、ステップS507で補助仮説f=(4,雨玉,7,φ)を生成する。ここで、W[f]=W[g]+AW[f]+w[e]=1+1+5=7として計算されている。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、fをLに挿入する。
ステップS505に戻り、E=φなので、ステップS510に進む。
ステップS510で、L[f]はφではないので、ステップS504に戻る。
ステップS504でL[f]={(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)}から補助仮説g=(3,雨,1,φ)を取り出し、仮説生成規則Tの状態3から入力記号“玉”で遷移可能な状態遷移は存在しないのでE=φとする。
ステップS505に進んで、Eがφなので、ステップS510に進む。
ステップS510ではL[f]はφではないのでステップS504に戻る。
ステップS504で補助仮説リストL[f]={(2,飴,2,φ),(4,飴,2,φ)}から補助仮説g=(2,飴,2,φ)を取り出し、仮説生成規則Tの状態2から入力記号“玉”で遷移可能な状態遷移
<2→4,玉:玉/1>
を含むリストEを作る。
ステップS505でE=φではないのでステップS506に進む。Eから状態遷移<2→4,玉:玉/1>を取り出しeとし、ステップS507で補助仮説f=(4,飴玉,4,φ)を生成する。ここで、W[f]=W[g]+AW[f]+w[e]=2+1+1=4として計算されている。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、fをLに挿入する。
ここで、Lには既に仮説生成規則Tの同じ状態4に到達している補助仮説(4,雨玉,7,φ)が存在するので、累積重みの小さい(4,飴玉,4,φ)だけを残し、(4,雨玉,7,φ)は削除する。
ステップS505に戻り、E=φなので、ステップS510に進む。
ステップS510で、L[f]はφではないので、ステップS504に戻る。
ステップS504でL[f]={(4,飴,2,φ)}から補助仮説g=(4,飴,2,φ)を取り出し、仮説生成規則Tの状態4から入力記号“玉”で遷移可能な状態遷移は存在しないのでE=φとする。
ステップS505に進んで、Eがφなので、ステップS510に進む。
ステップS510ではL[f]がφなのでステップS511に進む。
ステップS511ではLの要素をすべてL[f]に移し、ステップS512に進む。
ステップS512では、L[f]={(4,飴玉,4,φ)}の中で最小の累積重みは4なので、W[f]=4とする。
ステップS513で補助仮説fの補正を終了し、mを1減らしてm=2とし、ステップS508に戻る。
ステップS508におけるfの補正の後、ステップS509に進む。
ステップS509では、fをLに挿入し、ステップS505に進む。
ステップS505ではEはφなので、ステップS510に進む。
ステップS510でL[f]はφなので、ステップS511に進む。
ステップS511ではLの要素
{(4,雨玉,4,{(4,飴玉,4,φ)})}
をL[f]に移し、ステップS512に進む。
ステップS512では、L[f]の中で最小の累積重みは4なので、W[f]=4とする。
ステップS513で補助仮説fの補正を終了し、ステップS409に戻る。
ステップS409におけるfの補正手順の後、ステップS410に進む。
ステップS410では、fをH’に挿入し、ステップS406に戻る。
ステップS406でE=φなので、ステップS411に進む。
ステップS411でH=φなので、ステップS412に進み、H’の要素
{(3,あめだ,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})}
をHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
〔入力記号“m”の処理〕
ステップS404で記号“m”を読み込み、ステップS405において仮説リストHから仮説
h={(0,あめだ,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})}
を取り出す。この仮説の仮説生成規則Tの現状態3から入力記号が“m”の状態遷移
<0→1,m:ε/0>
を含むリストEを作る。
ステップS406でE=φではないのでステップS407に進み、Eから状態遷移<0→1,m:ε/0>を取り出しリストeとし、ステップS408で新たな仮説
=(0,あめだ,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})
を生成する。ステップS409でo[e]=εなので、ステップS410に進む。
ステップS410ではfをH’に挿入し、ステップS406に進む。
ステップS406ではE=φなのでステップS411に進み、H=φなのでステップS412に進む。
ステップS412ではH’の要素
{(1,あめだ,1,{(4,雨玉,4,{(4,飴玉,4,φ)})})}
をすべてHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
〔入力記号“a”の処理〕
ステップS404で記号“a”を読み込み、ステップS405において仮説リストHから仮説
h=(1,あめだ,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})
を取り出す。この仮説の仮説生成規則Tの現状態0から入力記号が“a”の状態遷移
<1→0,a:ま/0>
を含むリストEを作る。
ステップS406でE=φではないのでステップS407に進み、リストEから状態遷移<1→0,a:ま/0>を取り出しeとし、ステップS408で新たな仮説
=(0,あめだま,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})
を生成する。ステップS409でo[e]はεではないので、仮説fを補正するステップS501に進む。このときm=2に設定する。
ステップS502で空の補助仮説リストLを生成する。
ステップS503でAW[f]=0となる。
ステップS504で補助仮説リスト
L[f]={(4,雨玉,4,{(4,飴玉,4,φ)})}
から補助仮説
=(4,雨玉,4,{(4,飴玉,4,φ)})
を取り出し、仮説生成規則Tの状態4から入力記号“ま”で遷移可能な状態遷移
<4→5,ま:ε/1>
を含むリストEを作る。
ステップS505でE=φではないのでステップS506に進む。リストEから状態遷移<4→5,ま:ε/1>を取り出しeとし、ステップS507で補助仮説f=(5,雨玉,5,{(4,飴玉,4,φ)})を生成する。
ステップS508でo[e]はεであるため、ステップS509に進む。
ステップS509では、fをLに挿入し、ステップS505に進む。
ステップS505ではEはφなので、ステップS510に進む。
ステップS510でL[f]はφなので、ステップS511に進む。
ステップS511ではLの要素
{(5,雨玉,5,{(4,飴玉,4,φ)})}
をL[f]に移し、ステップS512に進む。
ステップS512では、L[f]の中で最小の累積重みは5なので、W[f]=5とする。
ステップS513で補助仮説fの補正を終了し、ステップS409に戻る。
ステップS409におけるfの補正手順の後、ステップS410に進む。
ステップS410では、fをH’に挿入し、ステップS406に戻る。
ステップS406でE=φなので、ステップS411に進む。
ステップS411でH=φなので、ステップS412に進み、H’の要素
{(0,あめだま,5,{(5,雨玉,5,{(4,飴玉,4,φ)})})}
をHに移す。
ステップS413に進み、次の入力記号が存在しないので、ステップS414に進む。
ステップS414で、H内の仮説h=(0,あめだま,5,{(5,雨玉,5,{(4,飴玉,4,φ)})})が終了状態に到達した唯一の仮説であり、その補助仮説h=(5,雨玉,5,{(4,飴玉,4,φ)})、およびその補助仮説h=(4,飴玉,4,φ)とすると、累積重み
Figure 0004478088
となり、その補助仮説hの出力記号列“飴玉”を変換結果として出力し、ステップS415で記号列変換処理を終了する。
この変換結果は、従来の2つの仮説生成部を用いた記号列変換手順において、入力記号列を“あ,め,だ,ま”とした場合の結果と同一になっている。本発明では、ローマ字入力された記号列“a,m,e,d,a,m,a”を記号列“あ,め,だ,ま”に変換する仮説生成規則を新たに加えて、結果的にローマ字入力を漢字に変換する処理を実現している。つまり、本発明によればローマ字入力を平仮名文字に変換する仮説生成規則を付加するか除去するかの選択で、ローマ字入力から漢字に変換する記号列変換装置と、平仮名入力を漢字に変換する記号列変換装置を簡単に得ることができ、変換先を簡単に変更できる利点が得られる。
図17に本発明の第2の実施例を示す。この実施例は3つの仮説生成部201−1,201−2,201−3を用いて音声認識を行なう構成とした場合を示す。
音声信号を入力する音声信号入力部505から入力された音声信号を音声特徴記号列抽出部506で音声の短時間音響パターンの時系列を音響特徴記号列として抽出する。抽出した音響特徴記号列を本発明による記号列変換部102を構成する初段の仮説生成部201−1に入力し、この初段の仮説生成部201−1において、音響特徴記号列を単語系の記号列を目標とする仮説に変換する。このために初段の仮説生成部201−1は音響モデル用仮説生成規則格納部105−1に格納され、音声固定単位(例えば要素)の標準的特徴を音声信号をある短い時間(例えば10ミリ秒)ごとに分析して得られる音響パターンを備えた音響モデル用仮説生成規則と、単語辞書用仮説生成規則格納部105−2に格納され、種々の単語の発音を前記音声固定単位の系列に対応させる単語発音辞書用仮説生成用規則を読み込み、音響特徴記号列を単語系の記号列を候補とする仮説を生成する。初段の仮説生成部201−1で生成された仮説はこの例では2段目と3段目の仮説生成部201−2と201−3で言語モデル1と2用仮説生成用規則を読み込み、言語としての尤度を高めるための有限状態遷移過程を経てそれぞれ仮説を生成し、各仮説群の累積重みを仮説補正部301−1〜301−Mで補正し、仮説絞込み部401−1〜401−Mで仮説を絞り込んで記号列出力部106に音声認識結果を出力する構成とした場合を示す。
ここで言語モデル1は例えば一般的な単語の連接のしやすさを与える言語モデルとすることができ、また言語モデル2は特定分野で用いられる文章の特化した単語の連接のしやすさを与える言語モデルとすることができる。このように一般的な単語の連接のしやすさを与える言語モデル1と、特定分野で用いられる文章に特化した単語の連結のしやすさを与える言語モデル2とを組み合せることで、その特定分野における文章に対する高い音声認識精度を与えるだけでなく、その特定分野以外の文章に対しても、ある一定の音声認識精度を保つような音声認識が可能となる。
音声認識用の単語発音辞書や言語モデルを重み付き有限状態遷移規則によって記述する方法は、例えば、国際会議ASR2000における、M.Mohri,F.Pereira,M.Riley著“Weighted finite-state transducers in speech recognition”,Proceeding of ASR2000, pp.97-106,2000に開示されている。
種々の音声固定単位(例えば音素)の標準的な音響パターン系列の集合を表す音響モデルとしては、例えば、それら音響パターンの系列の集合を確率・統計理論に基づいてモデル化する隠れマルコフモデル法(Hidden Markov Model、以後HMMと呼ぶ)が主流である。このHMM法の詳細は、例えば、社団法人電子情報通信学会編、中川聖一著「確率モデルによる音声認識」に開示されている。
音声認識の場合は、初段の仮説生成部の重みとして、音響モデルによって計算される音響特徴記号(音響パターン)のスコアを用いる。ただし、このスコアは、大きいほど入力音響パターンが音響モデルによって表される音声固定単位に近いことを表すので、マイナスの音響スコアをもって重みとする。隠れマルコフモデルによる音響スコアの計算では、例えばガウス分布に基づく確率値が用いられる。
音声認識に用いる音響パターンには、短い時間(例えば10ミリ秒)ごとに音声信号を分析することにより得られるメルケプストラム(mel-frequency cepstral coefficients、MFCCと呼ばれる)、デルタMFCC、LPCケプストラム、対数パワーなどがある。
音声認識率の実証
先に述べたように、本発明により3つの仮説生成処理を用いて記号列を変換する手順では、仮説補正部を除けば初段の仮説生成処理だけを用いて探索する手順(図4)とほぼ同じ計算手順となり、効率的な音声認識を行うことができる。
本発明による音声認識方法を用いて、男性10名による学術講演10講演分の音声を入力したときの、音声認識処理に要した処理時間と音声認識精度を表1に示す。ただし、処理時間は、実際に発話された時間を音声認識処理に要した処理時間で割った値(実時間比)とする。単語発音辞書の語彙サイズは3万である。実験には、クロック数2.8GHz相当の計算機を使用した。従来法では、二つの仮説生成部(単語辞書用仮説生成器と一般的な文章用仮説生成部)だけを用いており、本発明では、前記二つの仮説生成部に加え、その学術講演の技術分野の文章に特化した言語モデル2を参照して動作する仮説生成部を用いている。
Figure 0004478088
従来の二つの仮説生成部を用いた記号列変換方法に比べて、本発明による三つの仮説生成部を用いた記号列変換方法は、ほぼ同じ実時間比でありながら単語認識率においてより高い値を示した。このような結果が得られたのは、学術講演の技術分野に特化した言語モデル2を用いたことの効果である。本発明は、このように三つ以上の仮説生成部を同時に用いることができるため、二つの仮説生成部を用いる場合に比べて処理時間をほとんど増加させることなく、様々な仮説生成部の組み合わせにより音声認識の精度を向上させることができる。
一方、本発明を音声言い換え処理に適用し、4つの仮説生成部を用いて効率的に効率的な音声言い換え処理を行うこともできる。ここで、音声言い換え処理とは、音声認識を行いながら、その発話内容を別の文章スタイルに変換することを表す。例えば、話し言葉の文を、書き言葉のようなスタイルに書き換える処理がある。
図18は、その音声言い換え装置600の実施例を示す。音声を入力する音声信号入力部505から送られた音声信号をその音声の短時間音響パターンの時系列を記号列として抽出する音声特徴記号列抽出部506において音響特徴記号列に変換し、その音響特徴記号列を入力として本発明による記号列変換を行う記号列変換部102に送る。続いて、記号列変換部102では、音響モデル用仮説生成規則格納部105−1から音声固定単位(例えば音素)の標準的特徴を音声信号をある短い時間(例えば10ミリ秒)ごとに分析して得られる音響パターンの系列の照合により与える音響モデルを、単語発話辞書用仮説生成規則格納部105−2からは種々の単語の発音を前記音声固定単位の系列によって与える単語発音辞書用仮説生成規則を、言語モデル用仮説生成規則格納部105−3からは発話される単語の連接のしやすさを与える言語モデル用の仮説生成規則を、言い換え用の仮説生成規則格納部105−5からは、文章中の単語や単語列を書き換える言い換え用仮説生成規則を、言い換え先言語モデル用仮説生成規則格納部105−6からは言い換えられた文章における単語の連接のしやすさを与える言い換え先言語モデル仮説生成規則を読み出し、音響特徴記号列抽出部506から送られた音響特徴記号列を読み込み、累積重み最小の出力記号列を求め、記号列出力部106に送る。記号列出力部106では、受け取った出力記号列を音声認識結果として出力する。
音声を認識しながら同時に文のスタイルを変換して出力するために用いる個々の仮説生成部に関する説明は、例えば、特開2004−110673号公報「文章スタイル変換方法,文章スタイル変換装置,文章スタイル変換プログラム,文章スタイル変換プログラムを格納した記憶媒体」に開示されている。
上述した本発明による記号列変換装置は本発明による記号列変換プログラムをコンピュータにインストールすることにより、コンピュータによって記号列変換装置として機能させることができる。本発明による記号列変換プログラムはコンピュータが解読可能なプログラム言語によって記述され、コンピュータが読み取り可能な磁気ディスク或いはCD−ROMのような記録媒体に記録される。コンピュータにはこれらの記録媒体或いは通信回線を通じてインストールされる。
仮説生成に用いる重み付き有限状態変換規則の一例を表す図。 図1の重み付き有限状態変換規則を表によって定義した図。 重み付き有限状態変換規則による仮説生成方法の実施の形態を表すブロック図。 重み付き有限状態変換規則による仮説生成方法の手順を説明するフローチャート。 仮名の系列を表す記号列を、その仮名に対応する漢字の系列に変換する重み付き有限状態変換規則の一例を表す図。 日本語における漢字の系列の接続の可能性を重みによって与える重み付き有限状態変換規則の一例を表す図。 二つの仮説生成部を用いた従来の記号列変換方法の実施の形態を表すブロック図。 二つの仮説生成部を用いた従来の記号列変換方法の手順を説明するフローチャート。 図8の続きを説明するためのフローチャート。 二つの仮説生成部を用いた従来の記号列変換方法における仮説の補正方法を説明するフローチャート。 本発明による三つ以上の仮説生成部を用いた記号列変換方法の実施の形態を表すブロック図。 本発明における三つ以上の仮説生成部を用いた記号列変換方法の手順を説明するフローチャート。 図12の続きを説明するためのフローチャート。 本発明における三つ以上の重み付き有限状態変換器による記号列変換方法における仮説または補助仮説の補正方法を説明する図。 ローマ字で表される記号列を、対応する平仮名の記号列に変換する重み付き有限状態変換規則の一例を表す図。 図15の続きを説明するためのフローチャート。 本発明による音声認識方法の一実施の形態を表すブロック図。 本発明による音声言い換え方法の一実施の形態を表すブロック図。
符号の説明
10 状態
11 終了状態
12 状態遷移
101 仮説生成規則格納部
102 記号列変換部
103 記号列入力部
101−1 前段仮説生成規則格納部
101−2 後段仮説生成規則格納部
104−1 1段目仮説生成規則格納部
104−M M段目仮説生成規則格納部
105−1 音響モデル用仮説生成規則格納部
105−2 単語発話辞書用仮説生成規則格納部
105−3 言語モデル1用仮説生成規則格納部
105−4 言語モデル2用仮説生成規則格納部
105−5 言い換え用仮説生成規則格納部
105−6 言い換え先言語モデル用仮説生成規則格納部
106 記号列出力部
201−1〜201−M 仮説生成部
301−1〜301−M 仮説補正部
401−1〜401−M 仮説絞込み部

Claims (9)

  1. コンピュータによって、M(M≧3)縦続接続された仮説生成部と、前記仮説生成部のそれぞれに付随するM個の仮説補正部と、前記仮説補正部のそれぞれに付随するM個の仮説絞込み部とを備えた記号列変換部構成し、
    仮説とは入力される入力記号列に対して状態遷移が可能な状態遷移過程を表し、出力記号列とはその状態遷移過程において出力されるものとし、仮説で特定される状態遷移過程の各状態遷移に関連付けられた重みの累積値を累積重みとし、
    記M個の各仮説生成部が、それぞれに入力される入力記号列に対して状態遷移が可能な状態遷移過程でる仮説を仮説生成規則に従って生成する仮説生成処理と、
    前記仮説補正部が、前記仮説生成部で生成された仮説に付与された累積重みを、各後段の仮説生成部が生成する仮説に付与された累積重みの中の最小値または最大値である特異値により補正する仮説補正処理と、
    前記仮説絞込み部が、前記仮説生成部で生成した仮説の中から前記仮説補正部で補正された累積重みが特異値を呈する仮説を抽出する処理と、
    前記仮説生成部は、前段の仮説生成部の生成した仮説に対応する出力記号列を後段の仮説生成部の入力記号列とする、
    ことを特徴とする記号列変換方法。
  2. 請求項1記載の記号列変換方法において、
    コンピュータによって、記号列を順に読み込む記号列入力部を構成し、
    前記仮説補正処理は、前記仮説生成部が生成した仮説に付与される累積重みを、次段の仮説生成において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する仮説補正処理を前記記号列入力部から前記1段目の仮説生成部へ記号が入力される毎にM−1段目の仮説生成部が生成した仮説の累積重みから1段目の仮説生成部が生成した仮説の累積重みの全てに渡って適用することを特徴とする記号列変換方法。
  3. 請求項1又は2の何れかに記載の記号列変換方法において、
    前記仮説絞込み部が、入力信号列が全て読み込まれた時点で、該仮説絞込み部が付随する仮説生成部が生成した仮説の中から補正された累積重み特異値を呈する累積重みを持つ仮説を抽出する仮説抽出処理と、この仮説抽出処理で抽出した仮説に対応する出力記号列を次段の仮説生成部の入力記号列として入力する入力処理とを実行し
    前記記号列変換部が、M段目の仮説生成が生成した仮説の中から前記仮説抽出処理で抽出した仮説に対応する出力記号列をもって記号列変換結果とすることを特徴とする記号列変換方法。
  4. (M≧3)の縦続接続された仮説生成部と、前記仮説生成部のそれぞれに付随するM個の仮説補正部と、前記仮説補正部のそれぞれに付随するM個の仮説絞込み部とを備えて構成される記号列変換装置であって、
    仮説とは入力される入力記号列に対して状態遷移が可能な状態遷移過程を表し、出力記号列とはその状態遷移過程において出力されるものとし、仮説で特定される状態遷移過程の各状態遷移に関連付けられた重みの累積値を累積重みとし、
    前記M個の縦続接続された仮説生成部は、それぞれに入力される入力記号列に対して状態遷移が可能な状態遷移過程である仮説を仮説生成規則に従って生成し、
    前記仮説補正部が、前記仮説生成部で生成された仮説に付与された累積重みを、各後段の仮説生成部が生成する仮説に付与された累積重みの中の最小値または最大値である特異値により補正し、
    前記仮説絞込み部が、前記仮説生成部で生成した仮説の中から前記仮説補正部で補正された累積重みが特異値を呈する仮説を抽出し、
    前記仮説生成部は、前段の仮説生成部の生成した仮説に対応する出力記号列を後段の仮説生成部の入力記号列とする、
    ことを特徴とする記号列変換装置。
  5. 請求項4記載の記号列変換装置において、
    記号列を順に読み込む記号列入力部を備えて構成され、
    上記仮説補正部は、各仮説生成部が生成した仮説に付与された累積重みを、次段の仮説生成部において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する重み補正手段と、この重み補正手段を前記記号列入力部から前記1段目の仮説生成部へ記号が入力される毎にM−1段目の仮説生成部が生成した仮説の累積重みから1段目の仮説生成部が生成した仮説の累積重みの全てに渡って補正させる繰返し制御手段とを備えることを特徴とする記号列変換装置。
  6. 請求項4又は5の何れかに記載の記号列変換装置の何れかにおいて、
    前記仮説絞込み部は、入力記号列が全て読み込まれた時点で、該仮説絞込み部が付随する仮説生成部が生成した仮説の中から補正された累積重み特異値を呈する累積重みを持つ仮説を抽出する仮説抽出手段と、この仮説抽出手段が抽出した仮説に対応する出力記号列を次段の仮説生成部の入力記号列として入力する入力処理手段とを備え、
    段目の仮説生成部が生成した仮説の中から前記仮説抽出手段が抽出した仮説に対応する出力記号列をもって記号列変換結果とすることを特徴とする記号列変換装置。
  7. コンピュータによって、音声特徴記号列抽出部を構成し、
    前記音声特徴記号列抽出部が入力音声信号の短時間音響パターンの時系列をその音響特徴を表わす記号列として抽出する音響特徴記号列変換処理ステップを備え、この音響特徴記号列変換処理ステップで変換された音響特徴を表わす記号列を請求項1乃至3の何れかに記載の記号列変換方法により入力音声信号に対応する記号列に変換し、
    初段の仮説生成部は、前記音声特徴記号列抽出部で抽出した音響特徴を表す記号列を入力とし、音声固定単位の標準的特徴を備えた音響モデル用仮説生成規則と、種々の単語の発音を前記音声固定単位の系列に対応させる単語発音辞書用仮説生成用規則とを参照して、単語系の記号列を出力記号列とする仮説を生成することを特徴とする音声認識方法。
  8. コンピュータが解読可能なプログラム言語によって記述され、コンピュータを請求項4乃至6の何れかに記載の装置として機能させるためのプログラム。
  9. コンピュータが読み取り可能な記録媒体によって構成され、この記録媒体に請求項8記載のプログラムを記録した記録媒体。
JP2005254697A 2005-09-02 2005-09-02 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体 Active JP4478088B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005254697A JP4478088B2 (ja) 2005-09-02 2005-09-02 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005254697A JP4478088B2 (ja) 2005-09-02 2005-09-02 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体

Publications (2)

Publication Number Publication Date
JP2007066237A JP2007066237A (ja) 2007-03-15
JP4478088B2 true JP4478088B2 (ja) 2010-06-09

Family

ID=37928305

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005254697A Active JP4478088B2 (ja) 2005-09-02 2005-09-02 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体

Country Status (1)

Country Link
JP (1) JP4478088B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6023543B2 (ja) * 2012-10-17 2016-11-09 日本電信電話株式会社 記号列変換方法とそれを用いた音声認識方法と、それらの装置とプログラムとその記録媒体
JP6078435B2 (ja) * 2013-08-20 2017-02-08 日本電信電話株式会社 記号列変換方法、音声認識方法、それらの装置及びプログラム
JP6235922B2 (ja) * 2014-02-12 2017-11-22 日本電信電話株式会社 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム

Also Published As

Publication number Publication date
JP2007066237A (ja) 2007-03-15

Similar Documents

Publication Publication Date Title
JP4737990B2 (ja) 語彙強勢予測
JP4769223B2 (ja) テキスト発音記号変換辞書作成装置、認識語彙辞書作成装置、及び音声認識装置
US10319373B2 (en) Information processing device, information processing method, computer program product, and recognition system
JP5310563B2 (ja) 音声認識システム、音声認識方法、および音声認識用プログラム
JP6580882B2 (ja) 音声認識結果出力装置、音声認識結果出力方法及び音声認識結果出力プログラム
JP4930379B2 (ja) 類似文検索方法、類似文検索システム及び類似文検索用プログラム
KR20200026295A (ko) 음절 기반 자동 음성 인식
TW201822190A (zh) 語音辨識系統及其方法、詞彙建立方法與電腦程式產品
JP2010139745A (ja) 統計的発音変異モデルを記憶する記録媒体、自動音声認識システム及びコンピュータプログラム
JP4478088B2 (ja) 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体
JP4595415B2 (ja) 音声検索システムおよび方法ならびにプログラム
JP6193726B2 (ja) 音声認識用wfst作成装置と音声認識装置とそれらの方法とプログラムと記録媒体
JP6674876B2 (ja) 補正装置、補正方法及び補正プログラム
JP2011154061A (ja) 辞書作成装置、そのコンピュータプログラムおよびデータ処理方法
JP4430964B2 (ja) 記号列変換方法及びその記号列変換方法を用いた音声認識方法、並びに記号列変換装置及びその記号列変換装置を用いた音声認識装置
JP6235922B2 (ja) 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム
US8200478B2 (en) Voice recognition device which recognizes contents of speech
KR102300303B1 (ko) 발음 변이를 적용시킨 음성 인식 방법
JP6568429B2 (ja) 発音系列拡張装置およびそのプログラム
JP6023543B2 (ja) 記号列変換方法とそれを用いた音声認識方法と、それらの装置とプログラムとその記録媒体
JP3950957B2 (ja) 言語処理装置および方法
JP4733436B2 (ja) 単語・意味表現組データベースの作成方法、音声理解方法、単語・意味表現組データベース作成装置、音声理解装置、プログラムおよび記憶媒体
JP3440840B2 (ja) 音声認識方法及びその装置
JP6300596B2 (ja) 辞書装置、形態素解析装置、データ構造ならびに形態素解析の方法およびプログラム
JP3369121B2 (ja) 音声認識方法および音声認識装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100215

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100302

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100312

R150 Certificate of patent or registration of utility model

Ref document number: 4478088

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130319

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350