JP4478088B2 - 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体 - Google Patents
記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体 Download PDFInfo
- 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
Links
Images
Landscapes
- Document Processing Apparatus (AREA)
Description
1.Qは有限の状態の集合。
2.Σは入力記号の有限の集合。
3.Δは出力記号の有限の集合。
4.i∈Qは初期状態。
5.F∈Qは終了状態の集合。
6.E∈Q×Σ×Δ×Qは、現状態から入力記号により、出力記号を出力して次状態に遷移する状態遷移の集合。
7.Λは初期重み。
8.p(q)は終了状態qの終了重み。q∈F。
12は各状態を結ぶ矢印(“→”)で表された状態遷移を示しており、各々の状態遷移に付与された記号や数字は、その状態遷移に関連付けられた入力記号、出力記号、重みを“(入力記号):(出力記号)/(重み)”のように表したものである。
ある仮説生成規則(これをTとする)があり、このTに対して記号列Xが入力記号列として与えられたとき、累積重みが最小となる出力記号列(すなわち記号列変換結果)を求めるには、次の累積重みの最小値W(X)を計算する必要がある。
このW(X)を効率的に求めるには、一般にグラフのコスト最小探索の技術の一つである横型探索法を利用する。例えば、グラフの横型探索法の手順は、非特許文献2に開示されている。
重み付き有限状態変換器は、出力記号を定義しない重み付き有限状態受理器(英訳:Weighted Finite-State Acceptor:WFSA)や、入力記号も出力記号も定義しない有向グラフも包含している。WFSAであれば各状態遷移における入力記号と出力記号を同一にする、有向グラフであればすべての入力記号と出力記号を一つの記号と仮定することで表現できる。従って、本発明で扱う仮説生成規則のための各方法は、すべてWFSAや有向グラフにも適用することが可能である。
記号列変換部102は仮説生成規則格納部100と仮説生成部200と仮説絞込み部400とを備えて構成される。仮説生成部200は仮説生成規則格納部100から仮説生成規則を読み込んでその仮説生成規則に従って仮説の生成動作を実行する。仮説生成部200は記号列入力部103から受け取った記号を仮説生成規則に従って、これまで読み込んだ記号列に対する仮説の集合を新たに受け取った記号を用いて各仮説の状態遷移過程を更新することにより新たな仮説を生成する。仮説生成部200で生成された全ての仮説は仮説絞込み部400に送り込まれる。
まず、仮説生成規則のある状態遷移をeと表すとき、n[e]を遷移先の状態(次状態)、i[e]を入力記号、o[e]を出力記号、w[e]を重みと定義する。また、ある仮説をhと表すとき、s[h]を到達している状態、W[h]をその状態遷移過程における累積重み、O[h]をその状態遷移過程において出力される記号列とする。
この手順において、仮説は仮説のリスト(以後これを仮説リストと呼ぶ)を用いて管理する。仮説リストに対し、仮説を挿入したり、仮説を取り出したりすることができる。但し、仮説リストに仮説を挿入する場合に、仮説リスト内に同じ状態に到達している仮説があれば、累積重みの小さい方だけを仮説リストに残し、仮説を絞り込む。
以下、図4の手順を、仮説生成規則を備えた記号列変換方法の一実施例(図3)と対比して説明する。
ステップS101より開始し、初期設定として、ステップS102において空の仮説リストHとH’を生成する。初期の仮説hを生成し、s[h]=0(仮説生成規則の初期状態)、W[h]=0、O[h]=φ(空の記号列)とし、仮説リストHに挿入する。
ステップS102では、記号列入力部103において記号を一つ読み込み、その記号をxに代入する。次のステップS105からステップS108は、仮説生成部104において実行される。
ステップ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からステップS106に戻り、次の状態遷移について仮説を展開する。
ステップS110では、仮説リストH=φ(すべての仮説を展開済み)であればステップS111に進む。そうでなければステップS105に戻り、次の仮説を展開する。
ステップS111では、新たに生成された仮説のリストH’の要素を、すでに空となった仮説リストHにすべて移し、ステップS112に進む。
ステップS113では、仮説リストHの中で終了状態に到達している仮説の累積重みにその終了状態の終了重みを加えた後で、その終了状態に到達している仮説の中から累積重み(W[h])が最小となる仮説hを選び、その出力記号列O[h]を記号列変換結果として、記号列出力部106において出力する。
この記号列変換手順に従って、図1の仮説生成規則に入力記号列a,a,b,cが与えられた場合の出力記号列を求める過程を順を追って説明する。但し、ある仮説(現状態番号s、出力記号列O、累積重みW)がある場合、その仮説を(s,O,W)のように表すものとする。また、仮説生成規則のある状態遷移(現状態番号s、次状態番号n、入力記号x、出力記号y、重みw)を<s→n,x:y/w>と表すものとする。
ステップ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’に挿入する。
続いて、ステップ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’に挿入する。
続いて、ステップ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→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に戻る。
ステップ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を作る。
ステップS113で、仮説リストH内の仮説(3,ddcb,2.3)の到達状態3は終了状態であるため、終了重みを加えて(3,ddcb,2.8)とし、この仮説が終了状態に到達した唯一の仮説であり、累積重み最小となるので、その出力記号列ddcbを変換結果として出力し、ステップS114で記号列変換処理を終了する。
“あ,め,だ,ま”→“雨,玉”における累積重み 3+5=8
“あ,め,だ,ま”→“飴,玉”における累積重み 4+1=5
これらの累積重みを比較した結果、より累積重みの小さい出力記号列は“飴,玉”となる。このような変換結果を得るには、漢字の連接に関する重みを持つ図6の仮説生成規則が不可欠である。
記号列を順に読み込む記号列入力部と、状態遷移によって記号列を変換する二つの仮説生成規則を用いて記号列を2段階で変換するための前段に用いる前段仮説生成部と後段に用いる後段仮説生成部とを用いて記号列を変換する記号列変換部と、後段仮説生成部による変換結果を出力する記号列出力部とを有し、
記号列入力部から記号を順に読み込んで、入力記号列を読み終えた時点で、前記記号列変換部において前段と後段の仮説生成部においてそれぞれ適用される状態遷移に対する重みの累積値(累積重み)が最小となる後段の仮説生成部の状態遷移過程に対応する出力記号列を記号列出力部から出力する記号列変換方法において、
記号を順に読み込みながら、前段仮説生成部の一つの状態遷移過程を表す仮説に対する累積重みを、その仮説の状態遷移過程における出力記号列を後段仮説生成部の入力記号列としたときの後段仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することで補正する。
まず、前段の仮説生成部201−1における“仮説”と、その仮説の状態遷移過程から出力される記号列を後段の仮説生成部201−2の入力記号列とした場合に、後段の仮説生成部201−2の可能な一つの状態遷移過程を、“仮説”と区別して“補助仮説”と呼ぶことにする。一つの仮説に対して必ず一つ以上の補助仮説が存在するので、本実施の形態では、仮説hに対する補助仮説の集合を補助仮説リストL[h]で表す。
ステップS201より開始し、初期設定として、ステップS202で空の仮説リストHとH’を生成し、初期の仮説hを生成し、s1[h]=0、W[h]=0、L[h]=φ(空のリスト)とし、仮説リストHに挿入する。また、補助仮説gを生成し、s2[g]=0、W[g]=0、O[g]=φ(空の記号列)とし、仮説hの補助仮説リストL[h]に挿入する。
ステップS204では、記号列入力部103において記号を一つ読み込み、その記号をxに代入する。次のステップS205からステップS208は、仮説生成部201において実行される。
ステップS206で、E1=φ(空のリスト)ならばステップS211に進む。そうでなければステップS207に進む。
ステップS207では、E1から状態遷移を一つ取り出して、e1に代入し、ステップS208で新たな仮説fを生成し、s1[f]=n[e1]、W[f]=W[h]+w[e1]、L[f]=L[h]とする。
ステップS210は、仮説絞込み部401において、仮説fを仮説リストH’に挿入することにより仮説を絞り込む。
ステップS211では、H=φ(すべての仮説を展開済み)であればステップS212に進む。そうでなければステップS305に戻り、次の仮説を生成する。
ステップS212では、新たに生成された仮説のリストH’の要素を、既に空となった仮説リストHにすべて移し、ステップS213に進む。
ステップS214では、仮説リストHの中から終了状態に到達しているすべての仮説h(s1[h]∈F1)について累積重みW[h]に終了重みρ(s1[h])を加え、補助仮説hの補助仮説リストL[h]の中で終了状態に到達している補助仮説g(s2[g]∈F2)について
ステップS215にて二つの仮説生成部201−1と201−2を用いた記号列変換手順を終了する。
仮説の補正は、前段仮説生成部201−1における仮説の状態遷移過程に対する累積重みを、その仮説の状態遷移過程における出力記号列を後段仮説生成部201−2の入力記号列としたときの後段仮説生成部201−2において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することを意味する。入力記号列Xが読み込まれた時点でその記号列Xを受理して記号列Yを出力する仮説の補正された累積重みは、
この記号列変換方法では、各仮説に対応付けられた補助仮説リストを利用して仮説の補正を効率的に行う。補正される仮説をfとし、その補助仮説リストをL[f]、仮説fの最後の状態遷移における出力記号をyとする。
このとき、補助仮説jの累積重みW[j]は、次の3つの要素を加算することにより計算できる。
この値はW[g]に等しい。つまり、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま後に続く状態遷移過程の仮説に引き継がれるので、状態n[t]において生成された補助仮説リストはL[f]に等しく、補助仮説リストL[f]の個々の補助仮説の累積重みW[g]をそのまま用いる。
但し、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま新たに生成された仮説に引き継がれるので、状態n[t]に至った仮説の補正された累積重みは、現在の補助仮説リストL[f]の中で最小の累積重み
従って、補助仮説jの累積重みはW[j]=W[g]+AW[f]+w[e2]のように計算する。
そして、仮説fの補正は、W[f]を新たに生成された補助仮説jの累積重みW[j]の中での最小値
ステップS301では、仮説fを補正する手順を開始する。
ステップS302では、空の補助仮説リストL’を生成する。
ステップS303では、重みの補正項AW[f]をAW[f]=W[f]−W[g’]として求める。但し、g’は、仮説fの補助仮説リストL[f]の中で累積重みが最小の補助仮説を指す。
ステップS304では、L[f]から補助仮説を一つ取り出し、gに代入する。状態s2[g]から入力記号yで遷移可能な状態遷移のリストE2を生成し、ステップS305に進む。
ステップS306では、補助仮説jを生成し、s2[j]=n[e2]、W[j]=W[g]+AW[f]+w[e2]、O[j]=O[g]・o[e2]とする。
ステップS307では、補助仮説jを補助仮説リストL’に挿入する。
ステップS308では、E2が空(s2[g]からのすべての状態遷移に対して補助仮説を展開済み)であればステップS309に進む。そうでなければステップS305に戻り、次の状態遷移を調べる。
ステップS310では、新たに生成された補助仮説のリストL’の要素を、すでに空となった補助仮説リストL’[f]にすべて移し、ステップS311に進む。
ステップS311では、補助仮説リストL[f]の中で累積重み最小の補助仮説g’’に対してW[f]=W[g’’]とする。
ステップS312にて仮説補正手順を終了する。
W[h]<W[f] ならば L[h]=L[h]+L[f]、fを削除
W[h]>W[f] ならば L[f]=L[h]+L[f]、hを削除
のように補助仮説リストを連結する。
ステップS201から開始し、ステップS202で空の仮説リストHとH’を作る。
ステップS203により仮説リストHの中に仮説(0,φ,0,{(0,φ,0)})を挿入する。
ステップS204で記号“あ”を読み込み、ステップS205において仮説リストHから仮説(0,φ,0,{(0,φ,0)})を取り出す。
この仮説の仮説生成規則T1の現状態0から入力記号が“あ”の状態遷移
<0→1,あ:雨/0>,
<0→2,あ:飴/0>
を含むリストE1を作る。
ステップS206でE1=φではないのでステップS207に進み、状態遷移過程リストE1から状態遷移<0→1,あ:雨/0>を取り出し、ステップS208で新たな仮説f=(1,雨,0,{(0,φ,0)})を生成する。ステップS209で状態遷移<0→1,あ:雨/0>の出力記号はεではないので、仮説f=(1,雨,0,{(0,φ,0)})を補正するステップS301(図10)に進む。
ステップS303でAW[f]=0となる。
ステップS304で補助仮説リストL={(0,φ,0)}から補助仮説(0,φ,0)を取り出し、仮説生成規則T2の状態0から入力記号“雨”で遷移可能な状態遷移
<0→1,雨:雨/0>,
<0→3,雨:雨/0>
を含む状態遷移過程リストE2を作る。
ステップS305で状態遷移過程リストE2=φではないのでステップS306に進む。状態遷移過程リストE2から状態遷移<0→1,雨:雨/0>を取り出し、ステップS307で補助仮説(1,雨,0)を生成し、ステップS308で補助仮説(1,雨,0)をL’に挿入する。
ステップS305に戻り状態遷移過程リストE2=φであるため、ステップS309に進む。補助仮説リストL=φなのでステップS310に進み、補助仮説リストL’の要素(1,雨,0),(3,雨,0)をLに移す。
ステップS311において仮説の累積重みは0となり、ステップS312で仮説の補正を終了する。この結果、仮説は(1,雨,0,{(1,雨,0),(3,雨,0)})となる。
ステップS206に戻り状態遷移過程リストE1=φではないのでステップS207に進み、状態遷移過程リストE1から状態遷移<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となる。
<0→2,飴:飴/0>,
<0→4,飴:飴/0>
を含むリストE2を作る。
ステップS305でリストE2=φではないのでステップS306に進む。リストE2から状態遷移<0→2,飴:飴/0>を取り出し、ステップS307で補助仮説(2,飴,0)を生成し、ステップS308で補助仮説(2,飴,0)を補助仮説リストL’に挿入する。
ステップS305に戻り状態遷移過程リストE2=φであるため、ステップS309に進む。補助仮説リストL=φなのでステップS310に進み、補助仮説リストL’の要素(2,飴,0),(4,飴,0)をLに移す。
ステップS311において仮説の累積重みは0となり、ステップS312で仮説の補正を終了する。この結果、仮説は(2,0,{(2,飴,0),(4,飴,0)})となっている。
ステップS206に戻りE1=φであるためステップ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)})を取り出す。この仮説の仮説生成規則T1の現状態1から入力記号が“め”の状態遷移
<1→5,め:ε/1>
を含む状態遷移過程リストE1を作る。
ステップS206で状態遷移過程リストE1=φではないのでステップS207に進み、状態遷移過程リストE1から状態遷移<1→5,め:ε/1>を取り出し、ステップS208で新たな仮説(5,雨,1,{(1,雨,0),(3,雨,0)})を生成し、ステップS209に進む。
ステップS206に戻り状態遷移過程リストE1=φであるためステップS211に進む。仮説リストH≠φであるためステップS205に戻り、仮説リストHから仮説(2,飴,0,{(2,飴,0),(4,飴,0)})を取り出す。この仮説の現状態2から入力記号が“め”の状態遷移
(<2→5,め:ε/2>,φ)
を含む状態遷移過程リストE1を作る。
状態遷移<2→5,め:ε/2>の出力記号はεであるため、次のステップS210に進み仮説(5,飴,2,{(2,飴,0),(4,飴,0)})を仮説リストH’に挿入する。
ステップS206に戻り状態遷移過程リストE1=φであるためステップ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)})を作り出す。この仮説の仮説生成規則T1の現状態5から入力記号が“だ”の状態遷移
<0→4,だ:玉/1>
を含む状態遷移過程リストE1を作る。ここで、仮説生成規則T1の現状態5から状態0へは入力記号なしで遷移できるので、E1に含まれる仮説生成規則T1の状態遷移は<0→4,だ:玉/1>となっている。
ステップS302で空の補助仮説リストL’を生成する。
ステップS303で累積重みAW[f]=2−min(1,1,2,2)=1となる。
<1→4,玉:玉/5>
を含む状態遷移過程リストE2を作る。
ステップS305でE2=φではないのでステップS306に進む。状態遷移過程リストE2から状態遷移<1→4,玉:玉/5>を取り出し、ステップS307で補助仮説(4,雨玉,7)を生成する。ここで、補助仮説の累積重みは
W[g]+AW[f]+w[e2]=1+1+5=7
のように計算されている。そして、ステップS308で補助仮説(4,雨玉,7)をL’に挿入する。
補助仮説リストL=φではないのでステップS304に進み、補助仮説(3,雨,1)を取り出し、仮説生成規則T2の状態3から入力記号“玉”で遷移可能な状態遷移は存在しないので状態遷移過程リストE2=φとする。
ステップS305に戻りE2=φであるため、ステップS309に進む。補助仮説リストL=φではないのでステップS304に進み、補助仮説(2,飴,2)を取り出し、仮説生成規則T2の状態2から入力記号“玉”で遷移可能な状態遷移
<2→4,玉:玉/1>
を含むリストE2を作る。
W[g]+AW[f]+w[e2]=2+1+1=4
のように計算されている。
ステップS308で補助仮説(4,飴玉,4)を補助仮説リストL’に挿入する。このとき補助仮説リストL’には補助仮説(4,雨玉,7)が存在するので累積重みの小さい補助仮説(4,飴玉,4)を残し、(4,雨玉,7)は削除する。
L=φではないのでステップS404に進み、補助仮説(4,飴,2)を取り出し、仮説生成規則T2の状態4から入力記号“玉”で遷移可能な状態遷移は存在しないので状態遷移過程リストE2=φとする。
ステップS305に戻りE2=φであるため、ステップS309に進む。補助仮説リストL=φなのでステップS310に進み、補助仮説リストL’の要素(4,飴玉,3)をLに移す。
ステップS210に戻って仮説(4,雨玉,4,{(4,飴玉,4)})をH’に挿入する。
ステップS206に戻りE1=φであるためステップS211に進む。H=φであるためステップS212に進みH’内の仮説(4,雨玉,4,{(4,飴玉,4)})をHに移し、ステップS213で次の入力記号が存在するのでステップS204に戻る。
続いて、ステップS204で記号“ま”を読み込み、ステップS205において仮説リストHから仮説(4,雨玉,4,{(4,飴玉,4)})を取り出す。この仮説の仮説生成規則T1の現状態1から入力記号が“ま”の状態遷移
<4→5,ま:ε/1>
を含む状態遷移過程リストE1を作る。
ステップS206でE1=φではないのでステップS207に進み、状態遷移過程リストE2から状態遷移<4→5,ま:ε/1>を取り出し、ステップS208で新たな仮説f=(5,雨玉,5,{(4,飴玉,4)})を生成し、ステップS209に進む。
状態遷移<4→5,ま:ε/1>の出力記号はεであるため、次のステップS210に進み仮説f=(5,雨玉,5,{(4,飴玉,4)})を仮説リストH’に挿入する。
ステップ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"
本発明では3個以上の仮説生成部を組合せて高度の変換機能を得ることができる記号列変換方法及び装置を提供しようとするものである。つまり、各個々の仮説生成部の機能は簡素でありながら、それらを多段に組合せることにより高度の変換機能を得ようとするものである。
仮説補正処理は、各仮説生成部が生成した仮説に付与される累積重みを、次段の仮説生成部において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する仮説補正処理を含み、この仮説補正処理を記号列入力部から1段目の仮説生成部へ記号が入力される毎にM−1段目の仮説生成部が生成した仮説の累積重みから1段目の仮説生成部が生成した仮説の累積重みの全てに渡って適用することを特徴とする。
仮説絞り込処理は、入力信号列が全て読み込まれた時点で、1段目の仮説生成部が生成した仮説の補正された累積重みの中の特異値を呈する累積重みを持つ仮説を抽出する仮説抽出処理と、この仮説抽出処理で抽出した仮説を次段の仮説生成部の入力記号列として入力する入力処理とを含み、これら仮説抽出処理と入力処理とを各仮説生成部に対して実行させて1段目の仮説生成部が生成した仮説からM段目の仮説生成部が生成した仮説の全ての中から補正された累積重みによって指定される仮説を選択し、M段目の仮説生成部が生成した仮説の中から仮説抽出処理で抽出した仮説をもって記号列変換結果として出力することを特徴とする。
本発明では、式(5)を次の式(6)
図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は常に1個の記号入力に対して自己に与えられた仮説生成規則に基づいて仮説を生成する。これに対して2段目以後の仮説生成部201−2〜201−Mには前段の仮説生成手段が生成した仮説(候補記号列)が入力される。従って、ここでは初段の仮説生成部201−1が出力する仮説と、2段目以後の仮説生成部201−2〜201−Mが出力する仮説とを区別するために、2段目以後の仮説生成部201−2〜201−Mが生成する仮説をm段目補助仮説或は単に補助仮説と称することにする。
基本的な手順は図8及び図9と同様であるが、ステップS203とステップS403、ステップS209とステップS409、ステップS214とステップS414の処理が異なる。ステップS401より開始し、初期設定として、ステップS402で空の仮説リストHとH’を生成する。ステップS403では初期の仮説hを生成し、s1[h]=0、W[h]=0、L[h]=φ(空のリスト)とし、仮説リストHに挿入する。また、m=2〜Mに対して初期のm段目補助仮説gmを生成し、最後の状態sm[gm]=0、W[gm]=0、O[gm]=φ(空の記号列)とし、2段目補助仮説g2を2段目補助仮説リストL[h]に挿入し、m=3〜Mに対してgmをm−1段目補助仮説リストL[gm−1]に挿入する。
次のステップS405からステップS408は、仮説生成部201において実行される。
ステップS405では、仮説リストHから仮説を一つ取り出しhに代入し、状態s1[h]から入力記号xで遷移可能な状態遷移のリストE1を生成する。
ステップS406で、リストE1=φ(空のリスト)ならばステップS411に進む。そうでなければステップS407に進む。
ステップS409は、仮説補正部301−1〜301−Mにおいて、もし出力記号列o[e1]≠ε(空でなければ)仮説f1を補正する手段(図14、図15のステップS501からステップS512、この手順の説明の後に別途説明する)を実行する。
ステップS410は、仮説絞込み部401−1〜401−Mにおいて、仮説f1を仮説リストH’に挿入することにより仮説を絞り込む。
ステップS412では、新たに生成された仮説リストH’の要素を、既に空となった仮説リストHにすべて移し、ステップS413に進む。
ステップS413では、記号列入力部103において次の入力記号が存在するならばステップS404に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しステップS414に進む。
仮に仮説補正部301−1〜301−Mにおける仮説補正手順について説明する。
本発明における仮説の補正は、m段目の仮説生成部における仮説の状態遷移過程に対する累積重みを、その仮説の状態遷移過程における仮説をm+1段目の仮説生成部の入力記号列としたときのm+1段目の仮説生成部において可能な状態遷移過程の中で累積重みが最小となる状態遷移過程を求め、その累積重みを仮説の累積重みに加算することを意味する。
m段目の仮説生成部の状態sm[gm](gmはL[fm−1]に含まれる一つのm段目補助仮説を表す)から、入力記号o[em−1]による状態遷移emを経て次状態n[em]に至るm段目補助仮説fmを生成し、その到達状態をsm[fm]=n[em]とする。また、m−1段目補助仮説fm−1の状態遷移過程において、fm−1の最後の状態遷移(em−1)よりも前にあって出力記号がεではない最も新しい状態遷移をtm−1とする。このとき、m段目補助仮説fmの累積重みW[fm]は、次の3つの要素を加算することにより計算できる。
この値はW[fm]に等しい。つまり、出力記号がεであった状態遷移過程では、補助仮説リストはそのまま後に続く状態遷移過程の仮説に引き継がれるので、状態n[tm−1]において生成されたm−1段目補助仮説リストは現在のL[fm−1]にそのものであり、m−1段目補助仮説リストL[fm−1]の個々のm段目補助仮説の累積重みW[fm]に等しい。
但し、出力記号がεであった状態遷移過程では、m段目補助仮説リストはそのまま新たに生成された仮説に引き継がれるので、状態n[tm−1]に至った仮説の補正された累積重みは、現在のm−1段目補助仮説リストL[fm−1]の中で最小の累積重み
従って、m段目補助仮説fmの累積重みはW[fm]=W[gm]+AW[fm−1]+w[em]のように計算する。但し、m<Mの場合は、W[fm]は更にm+1段目の仮説生成部を用いて補正されるものとする。その後、m−1段目補助仮説リストL[fm−1]に挿入される。
そして、m−1段目補助仮説fm−1の補正は、W[fm−1]を新たに生成されたm段目補助仮説g(但し、g∈L[fm−1])の累積重みW[g]の中での最小値
ステップS501では、仮説または補助仮説fm−1を補正する手順を開始する。
ステップS502では、空の補助仮説リストLmを生成する。
ステップS503では、重みの補正項AW[fm−1]をAW[fm−1]=W[fm−1]−W[g’]として求める。但し、g’は、fm−1の補助仮説リストL[fm−1]の中で累積重みが最小の補助仮説を指す。
ステップS505では、Emが空(sm[gm]からのすべての状態遷移に対して補助仮説を展開済み)であればステップS510に進む。そうでなければステップS506に進む。
ステップS506では、リストEmから状態遷移を一つ取り出し、emに代入する。
ステップS507では、補助仮説fmを生成し、sm[fm]=n[em]、W[fm]=W[gm]+AW[fm−1]+w[em]、O[fm]=O[gm]・o[em]とする。
ステップS509では、補助仮説fmを補助仮説リストLmに挿入し、ステップS505に進む。
ステップS510では、L[fm−1]がφ(すべての補助仮説を展開済み)であればステップS511に進む。そうでなければステップS504に戻り、次の補助仮説を展開する。
ステップS511では、新たに生成された補助仮説のリストLmの要素を、すでに空となった補助仮説リストL[fm−1]にすべて移し、ステップS512に進む。
ステップS513にて本発明の一実施の形態における仮説補正手順を終了する。
本発明による記号列変換手順(図12及び図13)は、仮説補正ステップS409を除けば一段目の仮説生成部だけを用いて探索する手順(図4)とほぼ同じ計算手順となる。また、仮説補正手順(図14及び図15)においても、ステップS508を除けば、従来の仮説補正手順(図10)とほぼ同じ手順となり、計算量を少なく抑えることができる。仮説生成部の状態遷移において出力記号がεでない場合においてのみ仮説補正手順が実行されるので、仮説生成部の出力記号がεである割合が多いほど、処理量削減の効果は大きくなる。
図16は、ローマ字の記号列から仮名に変換する仮説生成規則を表している。これら3つの仮説生成規則によって、ローマ字入力された記号列を、対応する漢字の記号列に変換する場合を考える。
ステップS401から開始し、ステップS402で空の仮説リストHとH’を作る。
ステップS403により仮説リストHの中に仮説h=(0,φ,0,{(0,φ,0,{(0,φ,0,φ)})})を挿入する。
ステップS404で記号“a”を読み込み、ステップS405において仮説リストHから仮説(0,φ,0,{(0,φ,0,{(0,φ,0,φ)})})を取り出す。この仮説の仮説生成規則T1の現状態0から入力記号が“a”の状態遷移
<0→0,a:あ/0>
を含むリストE1を作る。
ステップS406でリストE1=φではないのでステップS407に進み、リストE1から状態遷移<0→0,a:あ/0>を取り出しリストe1とし、ステップS408で新たな仮説f1=(0,あ,0,{(0,φ,0,{(0,φ,0,φ)})})を生成する。ステップS409でo[e1]はεではないので、仮説f1=(0,あ,0,{(0,φ,0,{(0,φ,0,φ)})})を補正するステップS501に進む。このときm=2に設定する。
ステップ503でAW[f1]=0となる。
ステップS504で補助仮説リストL[f1]={(0,φ,0,{(0,φ,0,φ)})}から補助仮説g2=(0,φ,0,{(0,φ,0,φ)})を取り出し、仮説生成規則T2の状態0から入力記号“あ”で遷移可能な状態遷移
<0→1,あ:雨/0>,
<0→2,あ:飴/0>
を含むリストE2を作る。
ステップS505でE2=φではないのでステップS506に進む。リストE2から状態遷移<0→1,あ:雨/0>を取り出しリストe2とし、ステップS507で補助仮説f2=(1,雨,0,{(0,φ,0,φ)})を生成する。
ステップS502で空の補助仮説リストL3を生成する。
ステップS503でAW[f2]=0となる。
ステップS504で補助仮説リストL[f2]={(0,φ,0,φ)}から補助仮説g3=(0,φ,0,φ)を取り出し、仮説生成規則T3の状態0から入力記号“雨”で遷移可能な状態遷移
<0→1,雨:雨/0>,
<0→3,雨:雨/0>
を含むリストE3を作る。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、補助仮説f3をリストL3に挿入する。
ステップS505に戻り、E3=φではないのでステップS506に進む。E3から状態遷移<0→3,雨:雨/0>を取り出しe3とし、ステップS507で補助仮説f3=(3,雨,0,φ)を生成する。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、仮説f3をリストL3に挿入する。
ステップS505に戻り、リストE3=φなので、ステップS510に進む。
ステップS511で、補助仮説リストL3の要素{(1,雨,0,φ),(3,雨,0,φ)}をすべて補助仮説リストL[f2]に移す。
ステップS512で、L[f2]の補助仮説の累積重みはどちらも0なのでW[f2]=0とする。
ステップS513で補助仮説f2の補正を終了し、mを1減らしてm=2とし、ステップS508に戻る。
ステップS508における補助仮説f2の補正手順の後、ステップS509に進む。
ステップS509では、補助仮説f2を補助仮説リストL2に挿入し、ステップS505に戻る。
ステップS508でo[e2]はεではなく、かつ、m=2でM=3なのでm<Mであることから、補助仮説f2を補正するステップS501に進む。このときmを1増やして、m=3に設定する。
ステップS502で空の補助仮説リストL3を生成する。
ステップS503でAW[f2]=0となる。
<0→2,飴:飴/0>,
<0→4,飴:飴/0>
を含むリストE3を作る。
ステップS505でリストE3=φではないのでステップS506に進む。リストE3から状態遷移<0→2,飴:飴/0>を取り出しリストe3とし、ステップS507で補助仮説f3=(2,飴,0,φ)を生成する。
ステップS505に戻り、E3=φではないのでステップS506に進む。E3から状態遷移<0→4,飴:飴/0>を取り出しe3とし、ステップS507で補助仮説f3=(4,飴,0,φ)を生成する。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、補助仮説f3を補助仮説リストL3に挿入する。
ステップS505に戻り、E3=φなので、ステップS510に進む。
ステップS510で、補助仮説リストL[f2]=φなので、ステップS511に進む。
ステップS512で、L[f2]の補助仮説の累積重みはどちらも0なのでW[f2]=0とする。
ステップS513で補助仮説f2の補正を終了し、mを1減らしてm=2とし、ステップS508に戻る。
ステップS508におけるf2の補正手順の後、ステップS509に進む。
ステップS509では、f2をL2に挿入し、ステップS505に戻る。
ステップS505でE2=φであるため、ステップS510に進む。
ステップS511で、L2の要素をすべてL[f1]に移す。
ステップS512で、L[f1]={(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})}の補助仮説の累積重みはどちらも0なのでW[f1]=0とする。
ステップS513で補助仮説f1の補正を終了し、ステップS409に戻る。
ステップS409における仮説f1の補正手順の後、ステップS410に進む。
ステップS406で状態遷移リストE1=φなので、ステップS411に進む。
ステップS411で仮説リストH=φなので、ステップS412に進み、H’の要素
{(0,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})}
を仮説リストHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
ステップS404で記号“m”を読み込み、ステップS405において仮説リストHから仮説
h={(0,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})}
を取り出す。この仮説の仮説生成規則T1の現状態0から入力記号が“m”の状態遷移
<0→1,m:ε/0>
を含むリストE1を作る。
f1=(1,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})
を生成する。ステップS409でo[e1]=εなので、ステップS410に進む。
ステップS410では仮説f1を仮説リストH’に挿入し、ステップS406に進む。
ステップS412では仮説リストH’の要素
{(1,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})}
をすべて仮説リストHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
ステップS404で記号“e”に読み込み、ステップS405において仮説リストHから仮説
h=(1,あ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})
を取り出す。この仮説の仮説生成規則T1の現状態0から入力記号が“e”の状態遷移
<1→0,e:め/0>
を含む状態遷移リストE1を作る。
f1=(0,あめ,0,{(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})})
を生成する。ステップS409でo[e1]はεではないので、仮説f1を補正するステップS501に進む。このときm=2に設定する。
ステップS502で空の補助仮説リストL2を生成する。
ステップS504で補助仮説リスト
L[f1]={(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)}),(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})}
から補助仮説
g2=(1,雨,0,{(1,雨,0,φ),(3,雨,0,φ)})
を取り出し、仮説生成規則T2の状態1から入力記号“め”で遷移可能な状態遷移
<1→5,め:ε/1>
を含む状態遷移リストE2を作る。
ステップS508でo[e2]はεであるため、ステップS509に進む。
ステップS509ではf2をL2に挿入し、ステップS505に戻る。
ステップS505ではE2=φなのでステップS510に進み、ステップS510では、L[f1]がφではないので、ステップS504に戻る。
L[f1]={(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})}
から補助仮説
g2=(2,飴,0,{(2,飴,0,φ),(4,飴,0,φ)})
を取り出し、仮説生成規則T2の状態1から入力記号“め”で遷移可能な状態遷移
<2→5,め:ε/2>
を含む状態遷移リストE2を作る。
ステップS508でo[e2]はεであるため、ステップS509に進む。
ステップS509ではf2をL2に挿入し、ステップS505に戻る。
但し、補助仮説リストL2には既に補助仮説(5,雨,1,{(1,雨,0,φ),(3,雨,0,φ)})が存在し、仮説生成規則T2における到達状態が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に到達するので、補助仮説リストL2には補助仮説、
(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})
が残る。
ステップS511ではL2の要素をすべてL[f1]に移す。
ステップS512では、L[f1]={(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})}の補助仮説の中で累積重みの最小値は1であるため、W[f1]=1とする。
ステップS513で補助仮説f1の補正を終了し、ステップS409に戻る。
ステップS410では、仮説f1を仮説リストH’に挿入し、ステップS406に戻る。
ステップS406で仮説遷移リストE1=φなので、ステップS411に進む。
ステップS411でH=φなので、ステップS412に進み、H’の要素
{(0,あめ,1,{(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(0,飴,2,{(2,飴,2,φ),(4,飴,2,φ)})}
を仮説リストHに移す。
〔入力記号“d”の処理〕
ステップS404で記号“d”を読み込み、ステップS405において仮説リストHから仮説
h={(0,あめ,1,{(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})}
を取り出す。この仮説の仮説生成規則T1の現状態0から入力記号が“d”の状態遷移
<0→3,d:ε/0>
を含む仮説遷移リストE1を作る。
f1=(3,あめ,1,{(0,雨,1,{(1,雨,0,φ),(3,雨,0,φ)}),(0,飴,2,{(2,飴,0,φ),(4,飴,0,φ)})})
を生成する。ステップS409でo[e1]=εなので、ステップS410に進む。
ステップS410ではf1をH’に挿入し、ステップS406に進む。
ステップS406ではE1=φなのでステップS411に進み、H=φなのでステップS412に進む。
{(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,φ)})})
を取り出す。この仮説の仮説生成規則T1の現状態0から入力記号が“e”の状態遷移
<3→0,a:だ/0>
を含むリストE1を作る。
f1=(0,あめだ,1,{(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})})
を生成する。ステップS409でo[e1]はεではないので、仮説f1を補正するステップS501に進む。このときm=2に設定する。
ステップS502で空の補助仮説リストL2を生成する。
ステップS504で補助仮説リスト
L[f1]={(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})}
から補助仮説
g2=(0,雨,1,{(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)})
を取り出し、仮説生成規則T2の状態0から入力記号“だ”で遷移可能な状態遷移
<0→4,だ:玉/1>
を含むリストE2を作る。
ステップS508でo[e2]はεではなく、かつ、m=2でM=3なのでm<Mであることから、f2を補正するステップS501に進む。このときmを1増やして、m=3に設定する。
ステップS503でAW[f2]=2−1=1となる。
ステップS504で補助仮説リストL[f2]={(1,雨,1,φ),(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)}から補助仮説g3=(1,雨,1,φ)を取り出し、仮説生成規則T3の状態1から入力記号“玉”で遷移可能な状態遷移
<1→4,玉:玉/5>
を含むリストE3を作る。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、f3をL3に挿入する。
ステップS505に戻り、E3=φなので、ステップS510に進む。
ステップS504でL[f2]={(3,雨,1,φ),(2,飴,2,φ),(4,飴,2,φ)}から補助仮説g3=(3,雨,1,φ)を取り出し、仮説生成規則T3の状態3から入力記号“玉”で遷移可能な状態遷移は存在しないのでE3=φとする。
ステップS505に進んで、E3がφなので、ステップS510に進む。
ステップS510ではL[f2]はφではないのでステップS504に戻る。
ステップS504で補助仮説リストL[f2]={(2,飴,2,φ),(4,飴,2,φ)}から補助仮説g3=(2,飴,2,φ)を取り出し、仮説生成規則T3の状態2から入力記号“玉”で遷移可能な状態遷移
<2→4,玉:玉/1>
を含むリストE3を作る。
ステップS508でm=3かつM=3なのでm<Mではないから、ステップS509に進み、f3をL3に挿入する。
ここで、L3には既に仮説生成規則T3の同じ状態4に到達している補助仮説(4,雨玉,7,φ)が存在するので、累積重みの小さい(4,飴玉,4,φ)だけを残し、(4,雨玉,7,φ)は削除する。
ステップS510で、L[f2]はφではないので、ステップS504に戻る。
ステップS504でL[f2]={(4,飴,2,φ)}から補助仮説g3=(4,飴,2,φ)を取り出し、仮説生成規則T3の状態4から入力記号“玉”で遷移可能な状態遷移は存在しないのでE3=φとする。
ステップS505に進んで、E3がφなので、ステップS510に進む。
ステップS510ではL[f2]がφなのでステップS511に進む。
ステップS512では、L[f2]={(4,飴玉,4,φ)}の中で最小の累積重みは4なので、W[f2]=4とする。
ステップS513で補助仮説f2の補正を終了し、mを1減らしてm=2とし、ステップS508に戻る。
ステップS508におけるf2の補正の後、ステップS509に進む。
ステップS509では、f2をL2に挿入し、ステップS505に進む。
ステップS510でL[f2]はφなので、ステップS511に進む。
ステップS511ではL2の要素
{(4,雨玉,4,{(4,飴玉,4,φ)})}
をL[f1]に移し、ステップS512に進む。
ステップS512では、L[f1]の中で最小の累積重みは4なので、W[f1]=4とする。
ステップS409におけるf1の補正手順の後、ステップS410に進む。
ステップS410では、f1をH’に挿入し、ステップS406に戻る。
ステップS406でE1=φなので、ステップS411に進む。
ステップS411でH=φなので、ステップS412に進み、H’の要素
{(3,あめだ,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})}
をHに移す。
〔入力記号“m”の処理〕
ステップS404で記号“m”を読み込み、ステップS405において仮説リストHから仮説
h={(0,あめだ,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})}
を取り出す。この仮説の仮説生成規則T1の現状態3から入力記号が“m”の状態遷移
<0→1,m:ε/0>
を含むリストE1を作る。
f1=(0,あめだ,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})
を生成する。ステップS409でo[e1]=εなので、ステップS410に進む。
ステップS410ではf1をH’に挿入し、ステップS406に進む。
ステップS406ではE1=φなのでステップS411に進み、H=φなのでステップS412に進む。
{(1,あめだ,1,{(4,雨玉,4,{(4,飴玉,4,φ)})})}
をすべてHに移す。
ステップS413に進み、次の入力記号が存在するので、ステップS404に戻る。
〔入力記号“a”の処理〕
ステップS404で記号“a”を読み込み、ステップS405において仮説リストHから仮説
h=(1,あめだ,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})
を取り出す。この仮説の仮説生成規則T1の現状態0から入力記号が“a”の状態遷移
<1→0,a:ま/0>
を含むリストE1を作る。
f1=(0,あめだま,4,{(4,雨玉,4,{(4,飴玉,4,φ)})})
を生成する。ステップS409でo[e1]はεではないので、仮説f1を補正するステップS501に進む。このときm=2に設定する。
ステップS502で空の補助仮説リストL2を生成する。
ステップS503でAW[f1]=0となる。
L[f1]={(4,雨玉,4,{(4,飴玉,4,φ)})}
から補助仮説
g2=(4,雨玉,4,{(4,飴玉,4,φ)})
を取り出し、仮説生成規則T2の状態4から入力記号“ま”で遷移可能な状態遷移
<4→5,ま:ε/1>
を含むリストE2を作る。
ステップS508でo[e2]はεであるため、ステップS509に進む。
ステップS509では、f2をL2に挿入し、ステップS505に進む。
ステップS505ではE2はφなので、ステップS510に進む。
ステップS510でL[f2]はφなので、ステップS511に進む。
ステップS511ではL2の要素
{(5,雨玉,5,{(4,飴玉,4,φ)})}
をL[f1]に移し、ステップS512に進む。
ステップS513で補助仮説f1の補正を終了し、ステップS409に戻る。
ステップS409におけるf1の補正手順の後、ステップS410に進む。
ステップS410では、f1をH’に挿入し、ステップS406に戻る。
ステップS406でE1=φなので、ステップS411に進む。
ステップS411でH=φなので、ステップS412に進み、H’の要素
{(0,あめだま,5,{(5,雨玉,5,{(4,飴玉,4,φ)})})}
をHに移す。
ステップS414で、H内の仮説h1=(0,あめだま,5,{(5,雨玉,5,{(4,飴玉,4,φ)})})が終了状態に到達した唯一の仮説であり、その補助仮説h2=(5,雨玉,5,{(4,飴玉,4,φ)})、およびその補助仮説h3=(4,飴玉,4,φ)とすると、累積重み
音声信号を入力する音声信号入力部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に音声認識結果を出力する構成とした場合を示す。
種々の音声固定単位(例えば音素)の標準的な音響パターン系列の集合を表す音響モデルとしては、例えば、それら音響パターンの系列の集合を確率・統計理論に基づいてモデル化する隠れマルコフモデル法(Hidden Markov Model、以後HMMと呼ぶ)が主流である。このHMM法の詳細は、例えば、社団法人電子情報通信学会編、中川聖一著「確率モデルによる音声認識」に開示されている。
音声認識に用いる音響パターンには、短い時間(例えば10ミリ秒)ごとに音声信号を分析することにより得られるメルケプストラム(mel-frequency cepstral coefficients、MFCCと呼ばれる)、デルタMFCC、LPCケプストラム、対数パワーなどがある。
先に述べたように、本発明により3つの仮説生成処理を用いて記号列を変換する手順では、仮説補正部を除けば初段の仮説生成処理だけを用いて探索する手順(図4)とほぼ同じ計算手順となり、効率的な音声認識を行うことができる。
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)
- コンピュータによって、M個(M≧3)の縦続接続された仮説生成部と、前記仮説生成部のそれぞれに付随するM個の仮説補正部と、前記仮説補正部のそれぞれに付随するM個の仮説絞込み部とを備えた記号列変換部を構成し、
仮説とは入力される入力記号列に対して状態遷移が可能な状態遷移過程を表し、出力記号列とはその状態遷移過程において出力されるものとし、仮説で特定される状態遷移過程の各状態遷移に関連付けられた重みの累積値を累積重みとし、
前記M個の各仮説生成部が、それぞれに入力される入力記号列に対して状態遷移が可能な状態遷移過程である仮説を仮説生成規則に従って生成する仮説生成処理と、
前記仮説補正部が、前記仮説生成部で生成された仮説に付与された累積重みを、各後段の仮説生成部が生成する仮説に付与された累積重みの中の最小値または最大値である特異値により補正する仮説補正処理と、
前記仮説絞込み部が、前記仮説生成部で生成した仮説の中から前記仮説補正部で補正された累積重みが特異値を呈する仮説を抽出する処理と、
前記仮説生成部は、前段の仮説生成部の生成した仮説に対応する出力記号列を後段の仮説生成部の入力記号列とする、
ことを特徴とする記号列変換方法。 - 請求項1記載の記号列変換方法において、
コンピュータによって、記号列を順に読み込む記号列入力部を構成し、
前記仮説補正処理は、前記仮説生成部が生成した仮説に付与される累積重みを、次段の仮説生成部において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する仮説補正処理を前記記号列入力部から前記1段目の仮説生成部へ記号が入力される毎にM−1段目の仮説生成部が生成した仮説の累積重みから1段目の仮説生成部が生成した仮説の累積重みの全てに渡って適用することを特徴とする記号列変換方法。 - 請求項1又は2の何れかに記載の記号列変換方法において、
前記仮説絞込み部が、入力信号列が全て読み込まれた時点で、該仮説絞込み部が付随する仮説生成部が生成した仮説の中から補正された累積重みが特異値を呈する累積重みを持つ仮説を抽出する仮説抽出処理と、この仮説抽出処理で抽出した仮説に対応する出力記号列を次段の仮説生成部の入力記号列として入力する入力処理とを実行し、
前記記号列変換部が、M段目の仮説生成部が生成した仮説の中から前記仮説抽出処理で抽出した仮説に対応する出力記号列をもって記号列変換結果とすることを特徴とする記号列変換方法。 - M個(M≧3)の縦続接続された仮説生成部と、前記仮説生成部のそれぞれに付随するM個の仮説補正部と、前記仮説補正部のそれぞれに付随するM個の仮説絞込み部とを備えて構成される記号列変換装置であって、
仮説とは入力される入力記号列に対して状態遷移が可能な状態遷移過程を表し、出力記号列とはその状態遷移過程において出力されるものとし、仮説で特定される状態遷移過程の各状態遷移に関連付けられた重みの累積値を累積重みとし、
前記M個の縦続接続された仮説生成部は、それぞれに入力される入力記号列に対して状態遷移が可能な状態遷移過程である仮説を仮説生成規則に従って生成し、
前記仮説補正部が、前記仮説生成部で生成された仮説に付与された累積重みを、各後段の仮説生成部が生成する仮説に付与された累積重みの中の最小値または最大値である特異値により補正し、
前記仮説絞込み部が、前記仮説生成部で生成した仮説の中から前記仮説補正部で補正された累積重みが特異値を呈する仮説を抽出し、
前記仮説生成部は、前段の仮説生成部の生成した仮説に対応する出力記号列を後段の仮説生成部の入力記号列とする、
ことを特徴とする記号列変換装置。 - 請求項4記載の記号列変換装置において、
記号列を順に読み込む記号列入力部を備えて構成され、
上記仮説補正部は、各仮説生成部が生成した仮説に付与された累積重みを、次段の仮説生成部において生成される仮説のそれぞれに付与される累積重み乃至は補正された累積重みの中の特異値を呈する累積重みを用いて補正する重み補正手段と、この重み補正手段を前記記号列入力部から前記1段目の仮説生成部へ記号が入力される毎にM−1段目の仮説生成部が生成した仮説の累積重みから1段目の仮説生成部が生成した仮説の累積重みの全てに渡って補正させる繰返し制御手段とを備えることを特徴とする記号列変換装置。 - 請求項4又は5の何れかに記載の記号列変換装置の何れかにおいて、
前記仮説絞込み部は、入力記号列が全て読み込まれた時点で、該仮説絞込み部が付随する仮説生成部が生成した仮説の中から補正された累積重みが特異値を呈する累積重みを持つ仮説を抽出する仮説抽出手段と、この仮説抽出手段が抽出した仮説に対応する出力記号列を次段の仮説生成部の入力記号列として入力する入力処理手段とを備え、
M段目の仮説生成部が生成した仮説の中から前記仮説抽出手段が抽出した仮説に対応する出力記号列をもって記号列変換結果とすることを特徴とする記号列変換装置。 - コンピュータによって、音声特徴記号列抽出部を構成し、
前記音声特徴記号列抽出部が入力音声信号の短時間音響パターンの時系列をその音響特徴を表わす記号列として抽出する音響特徴記号列変換処理ステップを備え、この音響特徴記号列変換処理ステップで変換された音響特徴を表わす記号列を請求項1乃至3の何れかに記載の記号列変換方法により入力音声信号に対応する記号列に変換し、
初段の仮説生成部は、前記音声特徴記号列抽出部で抽出した音響特徴を表す記号列を入力とし、音声固定単位の標準的特徴を備えた音響モデル用仮説生成規則と、種々の単語の発音を前記音声固定単位の系列に対応させる単語発音辞書用仮説生成用規則とを参照して、単語系の記号列を出力記号列とする仮説を生成することを特徴とする音声認識方法。 - コンピュータが解読可能なプログラム言語によって記述され、コンピュータを請求項4乃至6の何れかに記載の装置として機能させるためのプログラム。
- コンピュータが読み取り可能な記録媒体によって構成され、この記録媒体に請求項8記載のプログラムを記録した記録媒体。
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)
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 | 日本電信電話株式会社 | 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム |
-
2005
- 2005-09-02 JP JP2005254697A patent/JP4478088B2/ja active Active
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) | 語音辨識系統及其方法、詞彙建立方法與電腦程式產品 | |
US20170270923A1 (en) | Voice processing device and voice processing method | |
JP2010139745A (ja) | 統計的発音変異モデルを記憶する記録媒体、自動音声認識システム及びコンピュータプログラム | |
JP4478088B2 (ja) | 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体 | |
JP4595415B2 (ja) | 音声検索システムおよび方法ならびにプログラム | |
JP6193726B2 (ja) | 音声認識用wfst作成装置と音声認識装置とそれらの方法とプログラムと記録媒体 | |
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 |