JP2013065188A - オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム - Google Patents

オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム Download PDF

Info

Publication number
JP2013065188A
JP2013065188A JP2011203183A JP2011203183A JP2013065188A JP 2013065188 A JP2013065188 A JP 2013065188A JP 2011203183 A JP2011203183 A JP 2011203183A JP 2011203183 A JP2011203183 A JP 2011203183A JP 2013065188 A JP2013065188 A JP 2013065188A
Authority
JP
Japan
Prior art keywords
transition
state
transitions
automaton
line
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.)
Granted
Application number
JP2011203183A
Other languages
English (en)
Other versions
JP5554304B2 (ja
Inventor
Manabu Nagao
学 永尾
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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2011203183A priority Critical patent/JP5554304B2/ja
Priority to US13/533,261 priority patent/US8943006B2/en
Publication of JP2013065188A publication Critical patent/JP2013065188A/ja
Application granted granted Critical
Publication of JP5554304B2 publication Critical patent/JP5554304B2/ja
Priority to US14/456,140 priority patent/US9286891B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/083Recognition networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition
    • G10L15/08Speech classification or search
    • G10L15/18Speech classification or search using natural language modelling
    • G10L15/183Speech classification or search using natural language modelling using context dependencies, e.g. language models
    • G10L15/19Grammatical context, e.g. disambiguation of the recognition hypotheses based on word sequence rules
    • G10L15/193Formal grammars, e.g. finite state automata, context free grammars or word networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】状態や遷移を多量に含んでいるNFSAを決定化しようとした場合に多くの記憶領域が必要になる。
【解決手段】オートマトン決定化方法は、状態生成ステップと、第1遷移生成ステップと、第2遷移生成ステップと、第1削除ステップと、を含む。状態生成ステップは、有限状態オートマトンに含まれる第1状態から出て行く遷移であって、第1記号が割り当てられている第1遷移が2以上存在する場合に、新たな第2状態を生成する。第1遷移生成ステップは、第1状態から第2状態への遷移であって、第1記号が割り当てられた第2遷移を生成する。第2遷移生成ステップは、第1遷移それぞれに対して、第1遷移の次の状態から出て行く遷移である第3遷移の前の状態を第2状態に置き換えた第4遷移を生成する。第1削除ステップは、第4遷移を生成した第1遷移の次の状態であって、第1遷移以外に入ってくる遷移が存在しない状態を削除し、削除した状態から出て行く遷移を削除し、第4遷移を生成した第1遷移を削除する。
【選択図】図2

Description

本発明の実施形態は、オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラムに関する。
有限状態オートマトン(Finite State Automaton、FSA)は自然言語処理や音声認識等さまざまな分野で利用されている。例えば、文章中に表れる特定の文字列や文字列のパターンを検索するなどの用途がある。FSAは有限オートマトン(Finite Automaton、FA)や有限状態機械(Finite State Machine、FSM)と呼ばれることもある。
FSAにはいくつか種類が存在する。例えば、FSAには、有限状態アクセプタ(Finite State Acceptor)、有限状態トランスデューサ(Finite State Transducer、FST)、重み付き有限状態アクセプタ(Weighted Finite State Acceptor、WFSA)、および、重み付き有限状態トランスデューサ(Weighted Finite State Transducer、 WFST)が存在する。有限状態アクセプタは、入力された記号列を受け付けるか否かのみを出力することができる。有限状態トランスデューサは、入力された記号列に応じた記号列を出力する。重み付き有限状態アクセプタは、入力された記号列に応じた重みを出力する。重み付き有限状態トランスデューサは、入力された記号列に応じた重みと記号列を出力する。
ここで、重みは確率や距離などであっても良い。有限状態アクセプタについてはこれ以降、単にアクセプタと呼ぶこととする。また、一般に有限状態アクセプタを有限状態オートマトン(FSA)と呼ぶことがある。以下ではFSAを、アクセプタ、FST、WFST、および、WFSAなどの総称として用いることとする。
FSTは、例えば音声認識における単語辞書に用いられることがある。そのような単語辞書は、発音を入力するとそれに対応する単語を出力するFSTとして構成される。WFSAやWFSTは、音声認識における言語モデルなどの音声認識に必要な辞書やモデルを表現するためのモデルとして用いられることや、統計的機械翻訳で用いられることがある。
以上で説明したように、FSAを実際にそれぞれの応用で用いるとき、必要な情報をFSAに変換する必要がある。通常このような変換は、簡単な変換手順で実施され、それによって得られたFSAはその後の処理に適した構造でないことが多い。そのため、必要に応じてFSAを変換することがある。そのような変換の一つが次に述べる決定化である。
決定性有限状態オートマトン(Deterministic Finite State Automaton、DFSA)とは、ある入力記号が入力されたときにいずれの状態においても次の状態が一意に決まるFSAのことを言う。非決定性有限状態オートマトン(Nondeterministic Finite State Automaton、NFSA)とは、DFSAでないFSAである。すなわち、NFSAは、ある入力記号に対する次の状態が複数存在するような状態を含むFSAである。決定化(determinization)とはNFSAをDFSAへ変換することをいう。アクセプタの決定化には例えばサブセット構成法(Subset Construction)が用いられる。
米国特許第6、243、679号明細書
しかしながら、従来技術では、NFSAを記憶領域に保ったまま、DFSAを新たに生成する方法が用いられている。このような方法では、状態や遷移を多量に含んでいるNFSAを決定化しようとした場合に多くの記憶領域が必要になるという問題があった。
実施形態のオートマトン決定化方法は、状態生成ステップと、第1遷移生成ステップと、第2遷移生成ステップと、第1削除ステップと、を含む。状態生成ステップは、有限状態オートマトンに含まれる第1状態から出て行く遷移であって、第1記号が割り当てられている第1遷移が2以上存在する場合に、新たな第2状態を生成する。第1遷移生成ステップは、第1状態から第2状態への遷移であって、第1記号が割り当てられた第2遷移を生成する。第2遷移生成ステップは、第1遷移それぞれに対して、第1遷移の次の状態から出て行く遷移である第3遷移の前の状態を第2状態に置き換えた第4遷移を生成する。第1削除ステップは、第4遷移を生成した第1遷移の次の状態であって、第1遷移以外に入ってくる遷移が存在しない状態を削除し、削除した状態から出て行く遷移を削除し、第4遷移を生成した第1遷移を削除する。
音声認識装置のブロック図。 決定化部のブロック図。 決定化処理のフローチャート。 WFSAの決定化処理の擬似コードの一例を示す図。 関数mergeInitialsの擬似コードの一例を示す図。 関数mergeTransitionsの擬似コードの一例を示す図。 関数mergeWeightの擬似コードの一例を示す図。 第1の実施形態の関数reconnectの擬似コードの一例を示す図。 決定化する非決定性WFSAの一例を示す図。 決定化処理途中のWFSAの一例を示す図。 決定化処理途中のWFSAの一例を示す図。 決定化処理途中のWFSAの一例を示す図。 決定化処理途中のWFSAの一例を示す図。 決定化処理途中のWFSAの一例を示す図。 決定化処理途中のWFSAの一例を示す図。 決定化処理途中のWFSAの一例を示す図。 決定化処理途中のWFSAの一例を示す図。 音声認識装置のハードウェア構成図。 第2の実施形態の関数reconnectの擬似コードの一例を示す図。 第3の実施形態の関数reconnectの擬似コードの一例を示す図。
以下に添付図面を参照して、この発明にかかるオートマトン決定化装置の好適な実施形態を詳細に説明する。
(第1の実施形態)
第1の実施形態にかかるオートマトン決定化装置は、NFSAを変形することにより決定化を行う。同じ記憶領域でより多くの状態や遷移を含んだNFSAを決定化するために、NFSAに含まれる状態や遷移のうち、決定化にとって不要となった状態や遷移を記憶領域から逐次削除することによって決定化に必要となる記憶領域を減らす。これにより、より少ない記憶領域で有限状態オートマトンの決定化を行うことができる。特に、ある入力記号に対する次の状態が複数存在するような状態、すなわち、非決定性の状態の全体に占める割合が少ないNFSAを決定化するときの記憶領域の削減に効果的である。
(準備)
WFSAは、状態の集合Qと遷移の集合E、入力記号の集合Σ、重みの集合K、初期状態の集合I、終了状態の集合F、初期重み関数λ、終了重み関数ρを含む8つ組(Q,E,Σ,K,I,F,λ,ρ)から構成される。遷移は4つ組(前状態,入力記号,重み,次状態)で構成される。集合Kは、整数全体からなる集合、実数全体からなる集合、複素数全体からなる集合、行列、ブーリアン(0と1のみ)から成る集合、および、文字列から成る集合など様々な集合に対応させることができる。集合Kは、正でない実数からなる集合や負でない実数からなる集合などに対応させることもできる。初期状態q∈Iに対応する初期重みはλ(q)となる。同様に終了状態q∈Fに対応する終了重みはρ(q)となる。終了状態でない状態qがρの引数に与えられた場合は、集合Kに含まれない値を返し、その値は終了状態でないすべての状態に対して同じ値であるとする。これら8つの集合は本実施形態での決定化の対象となるWFSAを構成する情報としてすべての方法(擬似コード)から常に参照することができるものとする。
WFSAの決定化を行うには集合Kに対し2つの2項演算(+)と(×)、さらに定数0と1を定義できる必要がある。ここではこのような演算と定数を伴う集合Kが、半環(semiring)と呼ばれる条件を満たしているものとする。さらに、a(+)b≠0を満たす任意のa,b∈Kに対して、c=(a(+)b)−1(×)aとなるようなcが存在する必要がある。なお、xの逆元をx−1と書く。すなわち、x−1(×)x=1である。集合Kが半環であるとは次の(1)〜(4)の4つの条件を満たすことを意味する。
(1)Kが演算(+)に対して可換モノイドであり、その単位元が0である。
(2)Kが演算(×)に対してモノイドであり、その単位元が1である。
(3)任意のx,y,z∈Kに対して分配法則が成り立つ。すなわち、
x(×)(y(+)z)=(x(×)y)(+)(x(×)z)と、
(y(+)z)(×)x=(y(×)x)(+)(z(×)x)と、を満たす。
(4)任意のx∈Kに対して、0(×)x=x(×)0=0が成り立つ。
上記のような条件を満たす半環には、例えばトロピカル半環(tropical semiring、または、min-plus semiring)と呼ばれるものが存在する。トロピカル半環は、集合Kが0以上の実数Rに無限大(∞)を加えた集合である。トロピカル半環は、(+)がmin、(×)が+、0が∞、1が0であるような演算と定数を伴う。集合Kが0以上の整数Nに∞を加えた集合も同様にトロピカル半環と呼ばれる。
集合Kが0以下の実数Rに−∞を加えた集合で(+)がmax、(×)が+、0が−∞、1が0であるような半環や、トロピカル半環の(+)の計算をx(+)y=−log(e−x+e−y)に置き換えた対数半環(log semiring)も条件を満たす。集合Kが文字列で、(+)が前方最長一致(longest common prefix)、(×)が連結、1が空文字列(εと書く)、0がτであるような文字列半環(string semiring)も条件を満たす。ここでτは、任意の文字列xに対してx(+)τ=τ(+)x=xとなるような文字列であり、εはε(×)x=x(×)ε=xとなるような文字列であるとする。逆元も定義でき、任意の文字列x、yに対して、x−1(×)(x(×)y)=yとなる。文字列半環を用いることで、FSTをWFSAと同様に扱うことができる。他にも様々な半環が知られている。
WFSTの場合はFSTに重みが加わっているが、上記条件を満たす半環と文字列半環とを組み合わせた半環を用いることでWFSAと同様に扱うことができる。例えば、重みにトロピカル半環、出力文字列に文字列半環を用いる場合には、集合Kを重みの集合(R∪{∞})と文字列の集合Σとの組み合わせとする。そして、任意の重みa,b∈(R∪{∞})と文字列x,y∈Σに対して(+)を(a,x)(+)(b,y)=(a(+)b,x(+)y)、(×)を(a,x)(×)(b,y)=(a(×)b,x(×)y)、0=(∞,τ)、1=(0,ε)のように定義することで、WFSTをWFSAの場合と同様に扱うことができる。
遷移eの前状態はp(e)、次状態はn(e)、入力記号はin(e)、重みはw(e)で表す。遷移の集合Eに含まれる遷移の次状態から成る集合をn(E)で表す。
空集合はφまたは{}と書く。集合Bの要素の数は|B|と書く。差集合は\で表す。例えば{1、2}\{2}={1}である。集合Wの各要素について演算(+)を行うことを以下の数1で表す。
Figure 2013065188
各要素をw,w,w,・・・,w|W|とするとき、w(+)w(+)w(+)・・・(+)w|W|と書くことと同じである。
重みの最良値とは、対象となる重みの各要素について演算(+)を行った結果である。対象となる重みが同じであっても使用する半環が異なると重みの最良値が異なる値になることがある。例えば重みの集合{1,2,3}に対して(+)がminであるような半環を用いている場合は、重みの最良値は1になる。(+)がmaxであるような半環を用いている場合は重みの最良値は3になる。
(方法の概要)
以下では、オートマトン決定化装置を音声認識装置に適用した例を説明するが、適用可能な装置はこれに限られるものではない。また、以下では、WFSAを対象とした決定化方法を例に説明するが、他のFSAについても同様の手順を適用できる。図1は、音声認識装置100の構成例を示すブロック図である。図1に示すように、音声認識装置100は、モデル生成部110と、音声認識部130と、音響モデル121と、単語辞書122と、言語モデル123と、を備えている。
音声認識部130は、入力された音声を認識し、音声認識結果を出力する。音声認識部130は、音声取得部131と、特徴抽出部132と、デコード部133と、ラティス処理部134と、出力部135と、を備えている。音声取得部131は、各種記憶装置(図示せず)に記録された音声、マイクからの入力音声、および、通信回線から入力される音声などを取り込み、特徴抽出部132に取り込んだ音声を渡す。特徴抽出部132は、受け取った音声から音声の特徴量を抽出してデコード部133に渡す。デコード部133は、モデル生成部110が生成したモデルを用いて、受け取った特徴量をデコードし、デコードの結果をラティス(単語ラティスや音素ラティスなど)としてラティス処理部134に渡す。
ラティス処理部134は、決定化部113を備えている。ラティスはFSAの一種であるので、ラティス処理部134は必要に応じて決定化部113を用いて決定化を行う。ラティス処理部134は、例えばラティス中で認識結果として最も尤もらしい系列を求め、それを認識結果として出力部135に渡す。出力部135は、受け取った認識結果を、画面等を用いてユーザに出力(提示)する。
音響モデル121は、特徴抽出部132が抽出する特徴量に対応する音素を見つけるための情報を記録する。単語辞書122は、音素列と単語との対応付けを記録する。言語モデル123は、単語列の尤もらしい並びを見つけるための情報を記録する。認識できる単語の並びを表す文法を言語モデル123の代わりに用いるように構成しても良い。
モデル生成部110は、デコード部133で用いるためのWFSTで表現されたモデルを生成する。モデル生成部110は、音響モデル121、単語辞書122、および、言語モデル123を入力とし、入力されたモデルをWFSTに変換したモデルを生成する。単語辞書から変換されたWFSTの入力記号には音素、出力記号には単語、重みには例えば0が割り当てられる。言語モデルから変換されたWFSTの入力記号と出力記号には単語が、重みには単語列の尤もらしい並びを見つけるための値が割り当てられる。
モデル生成部110は、モデル変換部111と、合成部112と、決定化部113と、最小化部114と、を備えている。
モデル変換部111は、入力されたモデル(音響モデル121、単語辞書122、言語モデル123)をWFSTへと変換する。合成部112は、変換された複数のWFSTを合成する。例えば単語辞書122から生成されたWFSTと言語モデル123から生成されたWFSTを合成すると、入力記号が音素で出力記号が単語、重みが単語列の尤もらしい並びを見つけるための値に対応するWFSTが生成される。決定化部113は、合成前や合成後のWFSTを必要に応じて決定化する。最小化部114は、決定化されたWFSTの状態や遷移ができる限り少なくなるようにWFSTを変形する。
このように、本実施形態では、音声認識におけるモデル作成時(モデル生成部110の決定化部113)、および、デコード時に生成されるラティスを処理する際(ラティス処理部134の決定化部113)の少なくとも一方で決定化処理が実行される。既に述べたように決定化に関してWFSTとWFSAは同様に扱うことができるため、以下で述べる説明ではWFSAを用いる。
図2は、決定化部113の詳細な構成例を示すブロック図である。決定化部113は、併合部150と、判定部161と、削除部162と、つなぎ替え部163と、を含む。併合部150は、決定化のために遷移を併合し、必要に応じて状態を生成する。併合部150は、状態生成部151と、遷移生成部152と、関連づけ部153と、重み算出部154と、を備えている。
状態生成部151は、決定化の際に必要な状態を生成する。例えば、状態生成部151は、決定化するWFSAに含まれる各状態(第1状態)について、当該状態から出て行く遷移であって、同一の記号が割り当てられている遷移(第1遷移)が2以上存在する場合に、新たな状態(第2状態)を生成する。
遷移生成部152は、決定化の際に必要な遷移を生成する。例えば、遷移生成部152は、第1状態から第2状態への遷移(第2遷移)を生成する。また、遷移生成部152は、第1遷移の次の状態から出て行く遷移(第3遷移)の前の状態を第2状態に置き換えた遷移(第4遷移)を生成する。
関連づけ部153は、遷移生成部152により生成される遷移と、既にWFSAに含まれる遷移であって遷移生成の根拠となる遷移とを関連づける。例えば、関連づけ部153は、第3遷移と第4遷移とを関連づける。
重み算出部154は、生成される遷移の重みを算出する。例えば、重み算出部154は、複数の第1遷移それぞれの重みから予め定められた演算により算出される重みの最良値を、第2遷移の重みとして算出する。
判定部161は、決定化するWFSAに含まれる2つの状態が等価であるか否かを判定する。例えば、判定部161は、2つの状態が、状態から出て行く遷移に関連づけられた遷移についての予め定められた基準を満たす場合に、2つの状態が等価であると判定する。判定部161は、例えば、一方の状態から出て行く遷移に関連づけられているすべての遷移と、他方の状態から出て行く遷移に関連づけられているすべての遷移と、が一致することを基準として利用する。
削除部162は、併合部150の処理によって不要になった状態や遷移を記憶領域から削除する。判定部161により、ある状態が別の状態と等価であると判定された場合は、削除部162は、一方の状態を削除する。環状経路が存在しないFSAを決定化する場合には、判定部161が存在しなくても決定化そのものは実行できる。ただし、決定化後のFSAの状態や遷移は、判定部161が存在する場合に比べ多くなることがある。
つなぎ替え部163は、必要に応じて、遷移の接続先の状態を変更する。すなわち、つなぎ替え部163は、遷移のつなぎ替えを行う。例えば、つなぎ替え部163は、等価であると判定された2つ状態のうち一方の状態に入ってくる遷移の次の状態を他方の状態につなぎ替える。
次に、このように構成された第1の実施形態にかかる音声認識装置100による決定化処理について図3を用いて説明する。図3は、第1の実施形態における決定化処理の全体の流れを示すフローチャートである。なお、図3のフローチャートは、第1の実施形態のみでなく、以下に説明するすべての実施形態における決定化処理の流れの概要を表す。
決定化部113は、処理開始時に、決定化するNFSA(本実施形態では非決定性WFSA)をRAMなどの記憶装置の記憶領域に読み込む(ステップS101)。決定化部113は、すべての状態について決定化が完了するまでステップS102からステップS103を繰り返し処理する。ステップS102では、決定化部113の併合部150は、まだ決定化が終わっていない状態を初期状態の側から順に決定化する。ステップS103では、決定化部113の削除部162が、ステップS102の決定化により不要になった状態や遷移を記憶領域から削除する。
決定化部113はすべての状態を決定化したか否かを判断し(ステップS104)、決定化していない場合は(ステップS104:No)、ステップS102に戻り処理を繰り返す。すべての状態を決定化した場合(ステップS104:Yes)、決定化処理を終了する。
以下に、決定化処理の詳細な例を説明する。図4は、本実施形態におけるWFSAの決定化処理の擬似コードの一例を示す図である。決定化を行う非決定性WFSA A=(Q,E,Σ,K,I,F,λ,ρ)は、最初に記憶領域に記憶されているものとする。本実施形態では、この記憶領域に記録されているQ、E、I、F、λ、ρを順次変更することによって決定化を行う。
1行目では後述する3つ組からなる集合Mを空集合に初期化する。なお、Mは、いずれの擬似コードからでも参照できるものとする。
2行目では関数mergeInitialsによって初期状態を1つの状態に併合する。mergeInitialsについては後で述べる。
3行目では集合SにIを代入する。さらに処理済か否かを判断するための集合Q’にIを代入する。ここで、集合Sはスタックでもキューでも何でも良い。
4行目ではSが空集合か否かを判定する。空集合でなければ5行目から24行目までの処理を行う。
5行目ではSから1つ状態を取り出し、qに代入する。
6行目ではqから出て行く遷移(outgoing transition)を集合Eoutに代入する。
7行目ではEoutに含まれる遷移の入力記号をΣoutに代入する。
8行目はΣoutに含まれる各入力記号σについて9行目から24行目までの処理を行うことを表す。
9行目では入力記号がσであるようなEoutに含まれる遷移をEσに代入する。
10行目ではEσに含まれる遷移の次状態の数が1か否かを判定し、1なら11行目から13行目を、そうでなければ15行目から24行目を処理する。
11行目は関数mergeWeightを呼び出す。引数としてEσを渡し、戻り値として得られる状態をqに代入する。関数mergeWeightは、Eσが複数の遷移を含んでいるときに遷移を1つに併合する処理を行う。詳細は後述する。
12行目ではqがQ’に含まれているかを判定し、含まれていなければ13行目を処理する。
13行目ではSとQ’にqを追加する。
15行目では関数mergeTransitionsを呼び出す。この関数は遷移の併合を行い、それに必要な新しい状態を生成し、その状態を戻り値として返す。その状態をqnewとする。関数mergeTransitionsが、例えば状態生成部151、遷移生成部152および関連づけ部153の機能に相当する。
16行目ではqnewを引数として関数reconnectを呼び出す。この関数は、状態qnewと等価な状態が存在するか否かを判断し、存在する場合はtrueを、存在しない場合がfalseを返す。また、等価な状態が存在すれば、状態qへ入ってくる遷移(incoming transition)の次状態を、その状態へと変更する処理(つなぎ替え)を行う。ここで等価な状態とは、本明細書においては、一方を他方の状態であるとしてもWFSAが受理する言語や出力する重みに影響を及ぼさないことをいう。アクセプタの場合は、重みが存在しないが、その場合は受理する言語に影響を及ぼさないことをいう。この関数の詳細は後述する。戻り値がfalseであれば17行目でSにqnewを追加する。関数reconnectが、例えばつなぎ替え部163の機能に相当する。
18行目はEσに含まれる遷移の次状態から成る集合に含まれる各状態qについて19行目から23行目を処理することを示す。
19行目ではqに入ってくる遷移がすべてEσに含まれているか否かを判定し、そうであれば20行目から23行目を処理する。
20行目では集合Eにqから出て行く遷移を代入する。
21行目では集合Eに遷移を代入する。その遷移は、集合Mに含まれる3つ組(連結元の遷移,連結先の遷移,重み)のうち、連結先の遷移eがEに含まれているような連結元の遷移eである。
22行目では集合Mに含まれる3つ組のうち、連結元の遷移eがEに含まれているような3つ組を集合Mから削除する。遷移eの前状態から出て行く遷移を連結元の遷移とするような集合Mに含まれる3つ組を集合Mから削除することで、決定化に必要な記憶領域をさらに削減することもできる。
23行目では遷移の集合EからEに含まれる遷移を削除する。また、状態の集合Qから状態qを削除する。
24行目では遷移の集合EからEσを削除する。
25行目では24行目までの処理で削除できなかった状態と遷移を削除する。削除する状態は、初期状態から到達できない状態である。また、削除する遷移は、初期状態から到達できない状態が前状態か次状態であるような遷移である。言い換えると、初期状態から辿って通過することができない遷移である。25行目の削除処理は、4行目による5行目から24行目までの繰り返し処理が一定回数完了するたびに実施するよう構成することもできるし、15行目から24行目までの処理が一定回数完了するたびに実施するよう構成することもできる。すなわち、任意の予め定められた頻度で、初期状態から到達できない状態と遷移とを削除するように構成することができる。
図5は、関数mergeInitialsの詳細な擬似コードの一例を示す図である。
1行目では初期状態が1つだけか否かを判定する。1つだけなら何もせず、2行目でこの関数での処理を終え、3行目以降の処理が行われることはない。
3行目では新たな初期状態を作成するためQに含まれない新しい状態qnewを生成する。
4行目では初期状態の集合Iに含まれる各状態に対応する初期重みを演算(+)によって計算し、その結果をqnewの初期重みとしてλ(qnew)に記録する。
5行目は各初期状態について6行目から10行目を処理することを示す。
6行目はqから出て行く各遷移eについて7行目から10行目を処理することを示す。
7行目では新しい遷移enewを生成する。ここで遷移enewは、前状態をqnew、次状態を遷移eの次状態、入力記号を遷移eの入力記号、重みをλ(qnew)の(×)に対する逆元とλ(q)と遷移eの重みを(×)で演算した結果とする。
8行目ではenewを集合Eに追加する。
9行目はIに含まれるすべての初期状態が、入ってくる遷移を持っている場合、10行目を処理することを表す。入ってくる遷移が1つも存在しない初期状態が1つでも存在する場合、qnewと等価な状態がこれ以降の処理で現れることがない。このため、等価な状態の判定のために使う集合Mに3つ組を追加する必要がなく、10行目を処理する必要がない。
10行目では3つ組(enew,e,w(enew))をMに追加する。
11行目は初期状態であり、かつ、終了状態でもあるような状態が存在するか否かを判定する。初期状態かつ終了状態である状態が存在すれば12行目の処理を行う。
12行目ではqnewを終了状態の集合Fに追加する。さらに、終了重みρ(qnew)を設定する。終了重みに設定される値は、終了状態でもある各初期状態qに対して、qnewの初期重みの逆元とqの初期重みとqの終了重みを(×)で演算し、各状態に対して得られたすべての値を(+)で演算した結果とする。
13行目ではIをqnewのみから成る集合にし、qnewをQに追加する。入ってくる遷移を持つ初期状態以外の状態をQから削除する。さらに削除した状態から出て行く遷移を削除する。
図6は、関数mergeTransitionsの詳細な擬似コードの一例を示す図である。
1行目ではQに含まれない新しい状態qnewを生成する。
2行目では集合Eσに含まれる遷移の重みを(+)で演算した結果をwに代入する。すなわち、wには集合Eσに含まれる遷移の重みの最良値が代入される。
3行目ではEσに含まれる遷移の次状態に終了状態が含まれている場合、4行目の処理を行う。
4行目では終了状態の集合Fにqnewを追加する。さらに、Eσに含まれる遷移の次状態が終了状態であるような遷移の重みwと次状態qに対して次のような重みの計算を行い、ρ(qnew)に代入する。その重みとは、wの逆元とwとqの終了重みρ(q)を(×)で演算した結果である。
5行目では前状態がq、次状態がqnew、入力記号がσ、重みがwであるような遷移をedetとする。
6行目ではEにedetを、Qにqnewを追加する。
7行目ではMに含まれる3つ組(e,e,w)のうち、eがEσに含まれるような3つ組のみを集合Mに代入する。同様に、Mに含まれる3つ組(e,e,w)のうち、eがEσに含まれるような3つ組のみを集合Mに代入する。
8行目ではMに含まれる各3つ組(e,e,w)のeをedetに変えた3つ組から成る集合をMに追加し、MをMから削除する。さらに、Mに含まれる各3つ組(e,e,w)のeをedetに変えた3つ組から成る集合をMに追加し、MをMから削除する。
9行目はEσに含まれる遷移の次状態の集合に含まれる各状態qについて10行目から13行目を処理することを表す。
10行目はEσに含まれる遷移のうち、次状態がqであるような遷移の重みをすべて(+)で演算し、その結果をwに代入する。
11行目はqから出て行く各遷移eについて12行目から13行目を処理することを表す。
12行目では前状態がqnew、次状態がn(e)、入力記号がeの入力記号、重みがwの逆元とw(eσ)とw(e)を(×)で演算した結果である遷移をenewとする。
13行目ではenewを集合Eに追加する。さらに、Mに3つ組(enew,e,w(enew))を追加する。eおよびenewを含む3つ組をMに追加することが、例えば、生成される遷移(enew)と遷移生成の根拠となる遷移eとを関連づける関連づけ部153の機能に相当する。
14行目ではqnewを戻り値として返す。
図7は、関数mergeWeightの詳細な擬似コードの一例を示す図である。Eσに含まれる遷移の前状態と次状態、入力記号はすべて同じであることを前提としている。また、Eσには1個以上の遷移が含まれているものとしている。
1行目は遷移eがEσに含まれる遷移であることを示している。
2行目ではEσに含まれる遷移の数が1か否かを判定しており、1なら8行目へ進み、それ以外であれば、すなわち遷移の数が2以上であれば3行目から7行目を処理することを示している。
3行目ではEσに含まれる遷移の重みをすべて(+)によって演算し、その結果をwに代入する。
4行目では遷移eの重みをwに変更した遷移をedetに代入する。
5行目では集合Mに含まれる3つ組(連結元の遷移,連結先の遷移,重み)のうち、連結先の遷移eがEσに含まれるような3つ組から成る集合をMに代入する。
6行目ではMに含まれる3つ組を集合Mから削除し、Mに含まれる3つ組の連結先の遷移をedetに変更した3つ組を集合Mに追加する。
7行目では遷移の集合EからEσに含まれる遷移を削除し、その後、Eにedetを追加する。
8行目はこの関数の戻り値として遷移eの次状態を返すことを示している。
図8は、関数reconnectの詳細な擬似コードの一例を示す図である。
1行目では状態qから出て行く遷移をEoutに代入する。
2行目ではMに含まれている3つ組(e,e,w)のeから成る遷移の集合にEoutに含まれている遷移がすべて含まれているか否かを判定し、すべて含まれていれば3行目から13行目を処理することを示している。そうでない場合はqと等価な状態は存在しないため、14行目へ処理を移す。
3行目ではMに含まれる3つ組(e,e,w)のうち、eがEoutに含まれる3つ組に関して2つ組(e,w)を生成し、その集合を集合Dに代入する。
4行目ではDに含まれる2つ組の1つ目の値eがMに含まれる3つ組の2つ目の値と一致する3つ組に関して、その3つ組の1つ目の値である遷移eから成る集合からEoutを取り除いた集合をEに代入する。
5行目ではEに含まれる遷移の前状態から構成される集合をQに代入する。
6行目はQに含まれる各状態qについて7行目から13行目まで処理することを表している。
7行目ではqから出て行く遷移をE’に代入する。
8行目ではMに含まれている3つ組(e,e,w)のeから成る遷移の集合にE’に含まれている遷移がすべて含まれているか否かを判定し、含まれていれば9行目から13行目を処理することを示している。
9行目ではMに含まれる3つ組のうち、1つ目の値eがE’に含まれる3つ組の2つ目の値eと3つ目の値wを、それぞれ1つ目と2つ目の値とする2つ組から成る集合をDに代入する。
10行目ではDとDが等しいか否かを判定し、さらに、qとqに対応する終了重みが等しいか否かを判定する。両方とも等しければ状態qと状態qとは等価な状態である。その場合、11行目から13行目までを処理する。qまたはqがいずれも終了状態でない場合、最初に述べた終了重み関数ρの定義により同じ値が得られρ(q)=ρ(q)となる。一方が終了状態である場合、終了状態に対する終了重み関数ρで得られる値は重みの集合Kに含まれ、終了状態でない状態に対するρの値は集合Kに含まれないので、常にρ(q)≠ρ(q)である。両方ともが終了状態のときは、終了重みの値に応じてρ(q)とρ(q)が等しいか否かが決まる。
11行目ではqへ入ってくる遷移をEinに代入する。
12行目ではEinとEoutに含まれる遷移を集合Eから取り除く。また、Einに含まれる遷移の次状態をqに変更した遷移をEに追加する。さらに状態qを状態の集合Qから取り除く。擬似コードには記載していないが、集合Mに含まれる3つ組の1番目の要素がEoutに含まれている3つ組を集合Mから取り除いても良い。すなわち、{(e,e,w)∈M|e∈Eout}をMから取り除いても良い。
13行目ではtrueを戻り値として返し、この関数の処理を終える。
に含まれるすべての状態に対して7行目から13行目を処理してもqと等価な状態が存在しなければ14行目でfalseを戻り値として返す。
以上のように、決定化を行いながら不要になった状態や遷移を逐次削除することで従来より少ない記憶領域で決定化処理を実行することができる。
これまでに説明した決定化処理の具体例を以下に説明する。図9は、決定化する非決定性WFSAの一例を示す図である。
図9の例では重みの半環がトロピカル半環であるものとする。丸が状態、太線の丸が初期状態、二重丸が終了状態、矢印が遷移、矢印付近の文字のうち/の左側が入力記号、右側が重みである。丸の中の数字は状態の番号である。
図4の1行目から処理を始める。1行目では後に使用する3つ組の集合Mを空集合で初期化する。2行目では初期状態を1つに併合するが、初期状態は1つなので何も起きない。3行目を処理すると、S={1}、Q’={1}となる。Sは空集合ではないので、5行目に進む。Sから1つ要素を取り出すと、q=1、S={}となる。
6行目と7行目の処理を終えると、Eout={(1,a,1,2),(1,b,3,2),(1,a,3,3),(1,b,5,3)}、Σout={a,b}となる。9行目から24行目について、まずσ=aの場合から処理を行う(bから処理しても良い)。9行目を処理するとEσ={(1,a,1,2),(1,a,3,3)}となる。Eσに含まれる遷移の次状態の集合は{2,3}であるため、|n(Eσ)|=2となり、10行目の条件を満たさない。従って15行目に進む。
関数mergeTransitionsに進む。引数の値は、q=1、σ=a、Eσ={(1,a,1,2),(1,a,3,3)}である。
図6の1行目で新しい状態を生成する。これをqnew=7とする。2行目の計算は次のようになる。この例ではトロピカル半環を用いるので(+)は最小値(min)の計算になり、w=1(+)3=min(1,3)=1となる。Eσの次状態の集合n(Eσ)={2,3}とF={6}との積集合は空集合なので3行目の条件は満たさず、5行目へと進む。5行目では、edet=(1,a,1,7)となる。
6行目ではedetとqnewをそれぞれEとQに追加する。この結果、WFSAは、図10のようになる。
M=φなので7行目によりM=φ、M=φとなる。従って、8行目の処理後もM=φである。
9行目ではまずq=2について10行目から13行目の処理を行う。なお、q=3の場合を先に処理してもかまわない。
10行目では次状態が2であるEσに含まれる遷移は(1,a,1,2)のみであるので、その重み1がwの値となる。
次にp(e)=2であるような遷移について12行目と13行目を処理する。ここではe=(2,c,1,4)のみを処理すれば良い。
12行目で新しい遷移enew=(7,c,1,4)を生成する。重みはw −1=−1、w=1、w(e)=1なので、−1+1+1=1と計算される。13行目でEにenewを追加し、Mに3つ組(enew,e,1)を追加する。遷移は4つ組として記録することもできるし、Eに含まれる要素への参照として記録することもできる。
=3についても同様に10行目から13行目を処理する。10行目でw=3となる。12行目と13行目はe=(3,c,2,5)について処理すれば良い。12行目で新しい遷移enew=(7,c,4,5)を生成する。重みはw −1=−1、w=3、w(e)=2なので、−1+3+2=4と計算される。13行目でEにenewを、Mに3つ組(enew,e,4)を追加する。
最後に14行目でqnewを戻り値としてこの関数での処理を終了する。
この時点でM={((7,c,1,4),(2,c,1,4),1)、((7,c,4,5),(3,c,2,5),4)}であり、WFSAは図11のようになる。点線矢印は、Mに記録している3つ組に対応する。矢印の元が3つ組の1つ目の値、矢印の先が3つ組の2つ目の値、矢印の付近の値が3つ組の3つ目の値と一致している。すなわち、点線矢印の元の遷移と点線矢印の先の遷移とが、相互に関連づけられていることを表している。
図4の15行目に戻る。qnew=7となる。16行目で関数reconnectに進む。図8の1行目でEout={(7,c,1,4),(7,c,4,5)}となる。今、Mに含まれる3つ組の1番目の値にはEoutに含まれる値がすべて含まれているので2行目の条件を満たす。3行目でD={((2,c,1,4),1),((3,c,2,5),4)}となる。
4行目でE=φとなる。Mに含まれる3つ組の2番目の値がDに含まれる2つ組の1番目の値であるような3つ組の1番目の値の集合はEoutと等しく、Eoutとの差集合をとると空集合になるためである。E=φであるので5行目ではQ=φとなる。これは、状態7と等価な状態である可能性がある状態が存在しないことを意味している。その結果、7行目から13行目の処理は行われない。そして14行目でfalseを戻り値としてこの関数の処理を終え、図4の16行目に戻る。
16行目の結果はfalseであるので、17行目でSに状態7を追加すると、S={7}となる。
今、Eσ={(1,a,1,2),(1,a,3,3)}である。n(Eσ)={2,3}なので、この2つの状態について19行目から23行目を処理する。まずq=2について処理する。状態2へ入ってくる遷移は(1,a,1,2)と(1,b,3,2)が存在する。(1,a,1,2)はEσに含まれているが、(1,b,3,2)は含まれていないので、19行目の条件を満たさない。また、q=3についても19行目の条件を満たさない。従って24行目に進み、EσをEから取り除くと、図12のようになる。
8行目に戻り、σ=bで9行目から24行目までを先ほどと同じように処理する。10行目の条件は満たさないので、15行目を処理すると図13のようになる。このときqnew=8、M={((7,c,1,4),(2,c,1,4),1),((7,c,4,5),(3,c,2,5),4),((8,c,1,4),(2,c,1,4),1),((8,c,4,5),(3,c,2,5),4)}である。
16行目の関数reconnectを引数qnew=8で処理する。図8の1行目でEout={(8,c,1,4),(8,c,4,5)}となるので、2行目の条件を満たす。3行目でD={((2,c,1,4),1),((3,c,2,5),4)}となる。Dに含まれる2つ組の1番目の要素は(2,c,1,4)と(3,c,2,5)である。これらのうちいずれかを2番目の要素とするMに含まれる3つ組の1番目の要素は(7,c,1,4)、(7,c,4,5)、(8,c,1,4)、(8,c,4,5)である。ここからEoutに含まれる遷移を取り除くと、E={(7,c,1,4),(7,c,4,5)}となる。これが4行目の結果である。5行目でQ={7}となる。
の要素の数は1なので、q=7についてのみ7行目から13行目を処理すれば良い。7行目でE’にqから出て行く遷移を代入し、E’={(7,c,1,4),(7,c,4,5)}となる。8行目の条件は満たすので、9行目以降に進む。9行目でD={((2,c,1,4),1),((3,c,2,5),4)}となる。DとDは等しく、状態7、8は共に終了状態ではないので10行目の条件を満たし、11行目以降に進む。10行目の条件を満たすということは状態q=8と状態q=7が等価であるということである。一方が不要なので、11行目と12行目で状態8と、状態8から出て行く遷移をすべて削除する。状態8へ入ってくる遷移は、そのすべてについて次状態を状態7に変更する。13行目で戻り値をtrueとして図4の16行目へ戻る。
16行目の処理が完了すると、図14のようになる。trueが戻ってくるので17行目は処理されずS={7}のままである。
18行目の条件を満たす状態は状態2と3である。これらの状態について19行目から23行目を処理する。まず、q=2の場合について処理する。状態2に入ってくる遷移は(1,b,3,2)のみであり、これはEσ={(1,b,3,2),(1,b,5,3)}に含まれている。従って、19行目の条件を満たすので、20行目以降の処理を行う。その処理では、状態2と関連する遷移とそれら遷移に関連する集合Mの要素を削除する。まず20行目で状態2から出て行く遷移をEに代入する。E={(2,c,1,4)}となる。
この時点ではM={((7,c,1,4),(2,c,1,4),1),((7,c,4,5),(3,c,2,5),4),((8,c,1,4),(2,c,1,4),1),((8,c,4,5),(3,c,2,5),4)}である。図8の12行目の処理時に、そこで削除された状態8から出て行く遷移を3つ組の1番目の要素に持つ3つ組をMから取り除いていれば、M={((7,c,1,4),(2,c,1,4),1),((7,c,4,5),(3,c,2,5),4)}である。前者の場合、21行目でE={(7,c,1,4),(8,c,1,4)}となり、後者の場合、E={(7,c,1,4)}となる。図14は後者の場合を表している。
Mに含まれる3つ組の1番目の要素がEに含まれている3つ組をMから削除する。そのような3つ組は前者の場合は{((7,c,1,4),(2,c,1,4),1),((8,c,1,4),(2,c,1,4),1)}である。後者の場合は((7,c,1,4),(2,c,1,4),1)のみである。22行目ではそれらをMから削除する。23行目ではEを遷移の集合Eから取り除き、状態2も状態の集合Qから取り除く。
19行目から23行目を状態3についても同様に処理すると、この場合は図8の12行目の処理がいずれであってもM={}となる。24行目でEσをEから削除すると、図15のようになる。
次にS={7}なのでq=7として5行目から24行目を処理する。17行目まで処理すると、図16のようになる。S={9}、M={((9,a,3),(4,a,3),3),((9,d,4),(5,d,1),4)}である。ここでは分かりやすくするため新しく作成する状態の番号を1つずつ増やしているが、削除した状態の番号を再利用することで使用する記憶領域を削減しても良い。
状態4と5について19行目から23行目を処理することになり、いずれの場合も19行目の条件を満たすので、状態4と5とそれらから出て行く遷移が削除され、22行目に従ってMの要素が取り除かれる。さらに24行目でEσに含まれる遷移を削除すると、図17のようになる。
次にS={9}なのでSから9を取り出し、q=9として6行目から24行目の処理を行う。Σout={a,d}であるが、それぞれの入力記号につき遷移が1本しか存在しないので、いずれの場合も10行目の条件を満たし、11行目以降を処理する。11行目ではいずれの場合でもq=6となる。いずれか一方の処理時に13行目に進み、Sに状態6が加えられ、S={6}となる。4行目に戻るがSが空集合ではないので5行目に進み、q=6として6行目以降を処理する。状態6から出て行く遷移は存在しないので、8行目以降は処理されない。4行目に戻り、S={}であるので、最後に25行目を処理する。しかしながらすべての状態と遷移が初期状態から到達することができるので、何も起きない。以上で決定化が完了する。
以上の決定化処理過程で発生する状態数の最大値は8個となり、遷移数の最大値は12本となる。従来の方法で決定化を行うと、発生する状態数の最大値は決定化前の状態数と決定化後の状態数を足した値である10個となり、同様に遷移数は13本となる。従って、本実施形態の方法によれば、処理途中で発生する状態数と遷移数が従来法よりも少なくなり、その結果、従来法よりも使用する記憶領域が少なくなる。
本実施形態ではWFSAを対象として説明したが、重みの処理をなくすことでアクセプタの決定化が同様に可能である。また、重みを出力記号列であるとし、演算(+)を前方最長一致とし、(×)を連結演算とすることでFSTの決定化も可能である。先に述べたように、2つ組(重み、出力記号列)を重みとみなせばWFSTについても決定化が同様に可能である。
FSTの決定化の場合、例えば重み算出部154が、複数の第1遷移それぞれの出力記号列の最長前方一致の記号列を、第2遷移の出力記号列として算出する。また、重み算出部154が、複数の第1遷移それぞれの出力記号列の最長前方一致の記号列を、第1遷移の出力記号列の前方から取り除いた記号列を、第4遷移の出力記号列の前方に連結する。
図18は、本実施形態の音声認識装置100のハードウェア構成の一例を示したブロック図である。図18に示されるように、音声認識装置100は、CPU(Central Processing Unit)1、操作部2、表示部3、ROM(Read Only Memory)4、RAM(Random Access Memory)5、記憶部6、バス7等を備えている。各部はバス7により接続されている。本装置構成における記憶領域とはROM4、RAM5、記憶部6のいずれにかかわらずFSAを記憶するために用いられる装置内の記憶領域を指す。
CPU1は、RAM5の所定領域を作業領域として、ROM4または記憶部6に予め記憶された各種制御プログラムとの協働により各種処理を実行し、音声認識装置100を構成する各部の動作を統括的に制御する。またCPU1は、ROM4または記憶部6に予め記憶された所定のプログラムとの協働により後述する各機能部の機能を実現させる。
操作部2は、マウスやキーボード、マイク等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をCPU1に出力する。
表示部3は、LCD(Liquid Crystal Display)等の表示装置により構成され、CPU1からの表示信号に基づいて、各種情報を表示する。
ROM4は、音声認識装置100の制御にかかるプログラムや各種設定情報等を書き換え不可能に記憶する。
RAM5は、SDRAM等の揮発性の記憶媒体であって、CPU1の作業エリアとして機能する。具体的には、決定化処理時に生成される各種変数やパラメータの値等を一時記憶するバッファ等の役割を果たす。
記憶部6は、フラッシュメモリ等の半導体による記憶媒体や、磁気的または光学的に記録可能な記憶媒体を有し、音声認識装置100の制御にかかるプログラムや各種設定情報等を書き換え可能に記憶する。また記憶部6は、FSAに係る各種の情報を予め記憶したり、決定化処理の処理結果であるFSAを記録したりする。
このように、第1の実施形態にかかるオートマトン決定化装置では、従来の方法に比べ、決定化処理の途中に保持しなければならない状態数や遷移数が少なくなるので、従来の方法より少ない記憶領域で決定化を行うことができる。
(第2の実施形態)
第1の実施形態では遷移を用いて等価な状態の判定を行うように構成した。第2の実施形態にかかるオートマトン決定化装置は、従来のサブセット構成法のように、状態を用いて等価な状態の判定を行うように構成する。
状態を用いて状態の等価を判定する場合、第1の実施形態で用いた集合Mの要素である3つ組(連結元の遷移、連結先の遷移、重み)の1番目と2番目を変更し、(連結元の状態、連結先の状態、重み)のようにする。また、擬似コードを以下に述べるように書き換える。
図4の21行目と22行目をそれぞれ、Q←{q|(q,q,w)∈M,q=q}、および、M←M\{(q,q,w)∈M|q∈Q}に変更する。
図5の10行目をM←M∪{(qnew,q,λ(qnew−1(×)λ(q))}に変更する。
図6の7行目と8行目を削除する。10行目と11行目の間に次の処理を追加する。Mに含まれる3つ組の1番目の要素にqが存在するときは処理(a)を、そうでないときは処理(b)を行う。処理(a)では、Mに含まれる3つ組の1番目の要素がqであるような全ての3つ組についてM←M∪{(qnew,q,w −1(×)w(×)w)}を処理する。ここで、当該3つ組の2番目の要素をq、3番目の要素をwとしている。処理(b)はM←M∪{(qnew,q,w −1(×)w)}である。等価な状態が一部発見できないことがあるが、処理を簡単にするために処理(b)だけを行うようにすることも可能である。13行目をE←E∪{enew}のみに変更する。
図7の5行目と6行目を削除する。
図8を図19のように変更する。1行目ではMに含まれる3つ組の1番目の要素からなる集合にqが含まれているか否かを判定し、含まれていれば2行目から9行目を処理する。
2行目ではMに含まれる3つ組の1番目の要素qがqであるような2番目の要素qと3番目の要素wから成る2つ組の集合をDに代入する。
3行目ではDに含まれる2つ組の1番目の要素qが2番目の要素となるMに含まれる3つ組の1番目の要素をQとする。Qに含まれる状態はqと等価な状態の候補であり、それらの状態がqと等価であるか否かを5行目以降で判定する。
4行目は5行目から9行目をQに含まれる各状態qについて処理することを表している。
5行目ではMに含まれる3つ組の1番目の要素qがqであるような2番目の要素qと3番目の要素wから成る2つ組の集合をDに代入する。
6行目でDとDが同じであるかを判定し、同じであればqとqが等価な状態であるので、状態qと関連する遷移を削除または変更するため、7行目から9行目を処理する。
7行目ではqに入ってくる遷移をEinに、qから出て行く遷移をEoutに代入する。
8行目ではEoutを集合Eから削除し、Einの次状態をqに変更し、Qからqを削除する。
等価な状態が見つかりqを削除したので戻り値をtrueとして9行目でこの関数での処理が完了する。
10行目はqと等価な状態が見つからなかった場合に実行される。この場合、戻り値をfalseとしてこの関数での処理が完了する。
以上で示した方法により、サブセット構成法をベースとする場合でも処理途中で発生する状態や遷移の数を従来法より少なくすることができる。すなわち、従来法よりも使用する記憶領域が少なくなる。第1の実施形態と同様に、本実施形態においても、アクセプタ、FST、および、WFSTの決定化が可能である。アクセプタの場合は重みに関する処理を取り除けば良い。FSTやWFSTの場合は第1の実施形態で述べたように重みの半環をそれぞれ対応する半環へと変更するだけである。
(第3の実施形態)
第1の実施形態で重みの処理を省くとアクセプタに対しても第1の実施形態の方法を用いることができることを述べた。第3の実施形態ではアクセプタの決定化処理の例を示す。
アクセプタは状態の集合Q、遷移の集合E、入力記号の集合Σ、初期状態の集合I、および、終了状態の集合Fから成る5つ組(Q,E,Σ,I,F)から構成される。遷移は3つ組(前状態,入力記号,次状態)で構成される。第1の実施形態で用いた集合Mの要素は3つ組であったが、ここでは2つ組(連結元の遷移,連結先の遷移)で構成される。
第3の実施形態では、擬似コードを以下に述べるように書き換える。図4は21行目および22行目をそれぞれ、E←{e|(e,e)∈M,e∈E}およびM←M\{(e,e)∈M|e∈E}に変更する。
図5は4行目を削除する。7行目をenew←(qnew,in(e),n(e))に変更する。10行目をM←M∪{(enew,e)}に変更する。12行目をF←F∪{qnew}に変更する。
図6は2行目と10行目を削除する。4行目および5行目をそれぞれ、F←F∪{qnew},および、edet←(q,σ,qnew)に変更する。7行目および8行目をそれぞれ、M←{(e,e)∈M|e∈Eσ}、M←{(e,e)∈M|e∈Eσ}、および、M←M∪{(edet,e)|(e,e)∈M}\M∪{(e,edet)|(e,e)∈M}\Mに変更する。12行目および13行目をそれぞれ、enew←(qnew,in(e),n(e))、および、E←E∪{enew},M←M∪{(enew,e)}に変更する。
図7は3行目を削除する。4行目から6行目を順に、edet←(p(e),in(e),n(e))、M←{(e,e)∈M|e∈Eσ}、および、M←(M\M)∪{(e,edet)|(e,e)∈M}に変更する。
重みに関する処理を取り除くため、図8を図20のように変更する。重み関数ρが存在しないため、10行目の重み関数を使った判定が終了状態か否かの判定に置き換わっている。状態qと状態qがいずれも終了状態である場合、または、いずれも終了状態でない場合は(q∈F)=(q∈F)は真となる。一方が終了状態で他方が終了状態でない場合は偽となる。
以上で示した方法により、アクセプタの場合でも処理途中で発生する状態や遷移の数を従来法より少なくすることができるので、従来法よりも使用する記憶領域が少なくできる。
以上説明したとおり、第1から第3の実施形態によれば、決定化処理の途中で発生する状態や遷移の数を従来法より少なくし、使用する記憶領域を少なくすることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
100 音声認識装置
110 モデル生成部
111 モデル変換部
112 合成部
113 決定化部
114 最小化部
121 音響モデル
122 単語辞書
123 言語モデル
130 音声認識部
131 音声取得部
132 特徴抽出部
133 デコード部
134 ラティス処理部
135 出力部
150 併合部
151 状態生成部
152 遷移生成部
153 関連づけ部
154 重み算出部
161 判定部
162 削除部
163 つなぎ替え部

Claims (15)

  1. 有限状態オートマトンに含まれる第1状態から出て行く遷移であって、第1記号が割り当てられている第1遷移が2以上存在する場合に、新たな第2状態を生成する状態生成ステップと、
    前記第1状態から前記第2状態への遷移であって、前記第1記号が割り当てられた第2遷移を生成する第1遷移生成ステップと、
    前記第1遷移それぞれに対して、前記第1遷移の次の状態から出て行く遷移である第3遷移の前の状態を前記第2状態に置き換えた第4遷移を生成する第2遷移生成ステップと、
    前記第4遷移を生成した前記第1遷移の次の状態であって、前記第1遷移以外に入ってくる遷移が存在しない状態を削除し、削除した状態から出て行く遷移を削除し、前記第4遷移を生成した前記第1遷移を削除する第1削除ステップと、
    を含むことを特徴とするオートマトン決定化方法。
  2. 前記第3遷移と前記第4遷移とを関連づける第1関連づけステップと、
    前記第1遷移生成ステップにより前記第2遷移を生成するときに、前記第1遷移に他の遷移が関連づけられている場合に、生成された前記第2遷移と前記他の遷移とを関連づける第2関連づけステップと、
    前記有限状態オートマトンに含まれる2つの状態が、前記状態から出て行く遷移に関連づけられた遷移についての予め定められた基準を満たす場合に、2つの前記状態が等価であると判定する判定ステップと、
    等価であると判定された2つの前記状態のうち一方の状態に入ってくる遷移の次の状態を他方の状態につなぎ替えるつなぎ替えステップと、をさらに含むこと、
    を特徴とする請求項1に記載のオートマトン決定化方法。
  3. 前記基準は、前記一方の状態から出て行く遷移に関連づけられているすべての遷移と、前記他方の状態から出て行く遷移に関連づけられているすべての遷移と、が一致することを定める基準であること、
    を特徴とする請求項2に記載のオートマトン決定化方法。
  4. 前記第1遷移の次の状態と前記第2状態とを関連づける第3関連づけステップと、
    前記状態生成ステップにより前記第2状態を生成するときに、前記第1遷移の次の状態に他の状態が関連づけられている場合に、生成された前記第2状態と前記他の状態とを関連づける第4関連づけステップと、
    前記有限状態オートマトンに含まれる2つの状態が、前記状態に関連づけられた状態についての予め定められた基準を満たす場合に、2つの前記状態が等価であると判定する判定ステップと、
    等価であると判定された2つの前記状態のうち一方の状態に入ってくる遷移の次の状態を他方の状態につなぎ替えるつなぎ替えステップと、をさらに含むこと、
    を特徴とする請求項1に記載のオートマトン決定化方法。
  5. 前記基準は、前記一方の状態に関連づけられているすべての状態と、前記他方の状態に関連づけられているすべての状態と、が一致することを定める基準であること、
    を特徴とする請求項4に記載のオートマトン決定化方法。
  6. 前記有限状態オートマトンは、重み付き有限状態オートマトンであり、
    前記第1遷移それぞれの重みから予め定められた演算により算出される重みの最良値である、前記第2遷移の重みを算出する重み算出ステップをさらに含むこと、
    を特徴とする請求項1に記載のオートマトン決定化方法。
  7. 前記第3遷移と前記第4遷移とを関連づけるとともに、前記第4遷移の重みを関連づけに割り当てる第5関連づけステップと、
    前記第1遷移生成ステップにより前記第2遷移を生成するときに、前記第1遷移に他の遷移が関連づけられている場合に、生成された前記第2遷移と前記他の遷移とを関連づける第6関連づけステップと、
    前記重み付き有限状態オートマトンに含まれる2つの状態が、前記状態から出て行く遷移に関連づけられた遷移についての予め定められた基準を満たす場合に、2つの前記状態が等価であると判定する判定ステップと、
    等価であると判定された2つの前記状態のうち一方の状態に入ってくる遷移の次の状態を他方の状態につなぎ替えるつなぎ替えステップと、をさらに含むこと、
    を特徴とする請求項6に記載のオートマトン決定化方法。
  8. 前記基準は、前記一方の状態から出て行く遷移に関連づけられているすべての遷移およびすべての関連づけの重みと、前記他方の状態から出て行く遷移に関連づけられているすべての遷移およびすべての関連づけの重みと、が一致することを定める基準であること、
    を特徴とする請求項7に記載のオートマトン決定化方法。
  9. 前記有限状態オートマトンは、有限状態トランスデューサであり、
    前記第1遷移それぞれの出力記号列の最長前方一致の記号列である、前記第2遷移の出力記号列を算出する記号列算出ステップをさらに含むこと、
    を特徴とする請求項1に記載のオートマトン決定化方法。
  10. 前記第3遷移と前記第4遷移とを関連づけるとともに、前記第4遷移の出力記号列を関連づけに割り当てる第7関連づけステップと、
    前記第1遷移生成ステップにより前記第2遷移を生成するときに、前記第1遷移に他の遷移が関連づけられている場合に、生成された前記第2遷移と前記他の遷移とを関連づける第8関連づけステップと、
    前記有限状態トランスデューサに含まれる2つの状態が、前記状態から出て行く遷移に関連づけられた遷移についての予め定められた基準を満たす場合に、2つの前記状態が等価であると判定する判定ステップと、
    等価であると判定された2つの前記状態のうち一方の状態に入ってくる遷移の次の状態を他方の状態につなぎ替えるつなぎ替えステップと、をさらに含むこと、
    を特徴とする請求項9に記載のオートマトン決定化方法。
  11. 前記基準は、前記一方の状態から出て行く遷移に関連づけられているすべての遷移およびすべての関連づけの出力記号列と、前記他方の状態から出て行く遷移に関連づけられているすべての遷移およびすべての関連づけの出力記号列と、が一致することを定める基準であること、
    を特徴とする請求項10に記載のオートマトン決定化方法。
  12. 初期状態から到達できない状態と遷移とを、予め定められた頻度で削除する第2削除ステップをさらに含むこと、
    を特徴とする請求項1に記載のオートマトン決定化方法。
  13. 前記第2削除ステップは、1つの前記第1状態について、前記状態生成ステップ、前記第1遷移生成ステップ、前記第2遷移生成ステップ、および、前記第1削除ステップのうちいずれかが完了するごとに、初期状態から到達できない状態と遷移とを削除すること、
    を特徴とする請求項12に記載のオートマトン決定化方法。
  14. 有限状態オートマトンに含まれる第1状態から出て行く遷移であって、第1記号が割り当てられている第1遷移が2以上存在する場合に、新たな第2状態を生成する状態生成部と、
    前記第1状態から前記第2状態への遷移であって、前記第1記号が割り当てられた第2遷移を生成する第1遷移生成部と、
    前記第1遷移それぞれに対して、前記第1遷移の次の状態から出て行く遷移である第3遷移の前の状態を前記第2状態に置き換えた第4遷移を生成する第2遷移生成部と、
    前記第4遷移を生成した前記第1遷移の次の状態であって、前記第1遷移以外に入ってくる遷移が存在しない状態を削除し、削除した状態から出て行く遷移を削除し、前記第4遷移を生成した前記第1遷移を削除する削除部と、
    を備えることを特徴とするオートマトン決定化装置。
  15. コンピュータに、
    有限状態オートマトンに含まれる第1状態から出て行く遷移であって、第1記号が割り当てられている第1遷移が2以上存在する場合に、新たな第2状態を生成する状態生成ステップと、
    前記第1状態から前記第2状態への遷移であって、前記第1記号が割り当てられた第2遷移を生成する第1遷移生成ステップと、
    前記第1遷移それぞれに対して、前記第1遷移の次の状態から出て行く遷移である第3遷移の前の状態を前記第2状態に置き換えた第4遷移を生成する第2遷移生成ステップと、
    前記第4遷移を生成した前記第1遷移の次の状態であって、前記第1遷移以外に入ってくる遷移が存在しない状態を削除し、削除した状態から出て行く遷移を削除し、前記第4遷移を生成した前記第1遷移を削除する第1削除ステップと、
    を実行させるためのオートマトン決定化プログラム。
JP2011203183A 2011-09-16 2011-09-16 オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム Active JP5554304B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011203183A JP5554304B2 (ja) 2011-09-16 2011-09-16 オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム
US13/533,261 US8943006B2 (en) 2011-09-16 2012-06-26 Automaton determinization method, device, and computer program product that involves a plurality of states and deleting states that are next states to first transitions
US14/456,140 US9286891B2 (en) 2011-09-16 2014-08-11 Automaton determinization method, device, and computer program product involving deleting states

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011203183A JP5554304B2 (ja) 2011-09-16 2011-09-16 オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム

Publications (2)

Publication Number Publication Date
JP2013065188A true JP2013065188A (ja) 2013-04-11
JP5554304B2 JP5554304B2 (ja) 2014-07-23

Family

ID=47881614

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011203183A Active JP5554304B2 (ja) 2011-09-16 2011-09-16 オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム

Country Status (2)

Country Link
US (2) US8943006B2 (ja)
JP (1) JP5554304B2 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015121708A (ja) * 2013-12-24 2015-07-02 株式会社東芝 探索装置、探索方法およびプログラム
JP2015143800A (ja) * 2014-01-31 2015-08-06 株式会社東芝 変換装置、パターン認識システム、変換方法およびプログラム
US9786272B2 (en) 2013-12-24 2017-10-10 Kabushiki Kaisha Toshiba Decoder for searching a digraph and generating a lattice, decoding method, and computer program product
US10008200B2 (en) 2013-12-24 2018-06-26 Kabushiki Kaisha Toshiba Decoder for searching a path according to a signal sequence, decoding method, and computer program product
US10109274B2 (en) 2014-11-28 2018-10-23 Kabushiki Kaisha Toshiba Generation device, recognition device, generation method, and computer program product
US10452355B2 (en) 2014-09-18 2019-10-22 Kabushiki Kaisha Toshiba Automaton deforming device, automaton deforming method, and computer program product
US10572538B2 (en) 2015-04-28 2020-02-25 Kabushiki Kaisha Toshiba Lattice finalization device, pattern recognition device, lattice finalization method, and computer program product
US10600407B2 (en) 2016-07-20 2020-03-24 Kabushiki Kaisha Toshiba Generation device, recognition system, and generation method for generating finite state transducer

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9268881B2 (en) 2012-10-19 2016-02-23 Intel Corporation Child state pre-fetch in NFAs
US9117170B2 (en) 2012-11-19 2015-08-25 Intel Corporation Complex NFA state matching method that matches input symbols against character classes (CCLs), and compares sequence CCLs in parallel
US9665664B2 (en) 2012-11-26 2017-05-30 Intel Corporation DFA-NFA hybrid
US9304768B2 (en) 2012-12-18 2016-04-05 Intel Corporation Cache prefetch for deterministic finite automaton instructions
US9268570B2 (en) 2013-01-23 2016-02-23 Intel Corporation DFA compression and execution
US9177252B2 (en) * 2013-01-31 2015-11-03 Intel Corporation Incremental DFA compilation with single rule granularity
US9530404B2 (en) * 2014-10-06 2016-12-27 Intel Corporation System and method of automatic speech recognition using on-the-fly word lattice generation with word histories
CN107533652B (zh) * 2015-05-11 2021-01-12 株式会社东芝 识别装置、识别方法及记录介质
US20230237994A1 (en) * 2022-01-27 2023-07-27 Accenture Global Solutions Limited Dialog flow inference based on weighted finite state automata

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009058989A (ja) * 2007-08-29 2009-03-19 Toshiba Corp オートマトンの決定化方法、有限状態トランスデューサの決定化方法、オートマトン決定化装置及び決定化プログラム
JP2010225156A (ja) * 2010-03-26 2010-10-07 Mitsubishi Electric Corp 文字列照合装置および文字列照合プログラム

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2226233C (en) 1997-01-21 2006-05-09 At&T Corp. Systems and methods for determinizing and minimizing a finite state transducer for speech recognition
US6816830B1 (en) * 1997-07-04 2004-11-09 Xerox Corporation Finite state data structures with paths representing paired strings of tags and tag combinations
US20050273450A1 (en) * 2004-05-21 2005-12-08 Mcmillen Robert J Regular expression acceleration engine and processing model
WO2006061899A1 (ja) * 2004-12-09 2006-06-15 Mitsubishi Denki Kabushiki Kaisha 文字列照合装置および文字列照合プログラム
US7765183B2 (en) * 2005-04-23 2010-07-27 Cisco Technology, Inc Hierarchical tree of deterministic finite automata
US7805392B1 (en) * 2005-11-29 2010-09-28 Tilera Corporation Pattern matching in a multiprocessor environment with finite state automaton transitions based on an order of vectors in a state transition table
GB2441351B (en) * 2006-09-01 2010-12-08 3Com Corp Positionally dependent pattern checking in character strings using deterministic finite automata
US7895317B2 (en) * 2007-06-27 2011-02-22 Computer Associates Think, Inc. Autonomic control of a distributed computing system using finite state machines
US9305116B2 (en) * 2010-04-20 2016-04-05 International Business Machines Corporation Dual DFA decomposition for large scale regular expression matching

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009058989A (ja) * 2007-08-29 2009-03-19 Toshiba Corp オートマトンの決定化方法、有限状態トランスデューサの決定化方法、オートマトン決定化装置及び決定化プログラム
JP2010225156A (ja) * 2010-03-26 2010-10-07 Mitsubishi Electric Corp 文字列照合装置および文字列照合プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200300058004; 多治見 寿和: 'プログラミング・テクニック 36' UNIX MAGAZINE 第15巻, 第10号, 20001001, pp.58-66, 株式会社アスキー *
JPN6014017250; 多治見 寿和: 'プログラミング・テクニック 36' UNIX MAGAZINE 第15巻, 第10号, 20001001, pp.58-66, 株式会社アスキー *

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015121708A (ja) * 2013-12-24 2015-07-02 株式会社東芝 探索装置、探索方法およびプログラム
US9786272B2 (en) 2013-12-24 2017-10-10 Kabushiki Kaisha Toshiba Decoder for searching a digraph and generating a lattice, decoding method, and computer program product
US10008200B2 (en) 2013-12-24 2018-06-26 Kabushiki Kaisha Toshiba Decoder for searching a path according to a signal sequence, decoding method, and computer program product
US10055511B2 (en) 2013-12-24 2018-08-21 Kabushiki Kaisha Toshiba Search device, search method, and computer program product
JP2015143800A (ja) * 2014-01-31 2015-08-06 株式会社東芝 変換装置、パターン認識システム、変換方法およびプログラム
US10042345B2 (en) 2014-01-31 2018-08-07 Kabushiki Kaisha Toshiba Conversion device, pattern recognition system, conversion method, and computer program product
US10452355B2 (en) 2014-09-18 2019-10-22 Kabushiki Kaisha Toshiba Automaton deforming device, automaton deforming method, and computer program product
US10109274B2 (en) 2014-11-28 2018-10-23 Kabushiki Kaisha Toshiba Generation device, recognition device, generation method, and computer program product
US10572538B2 (en) 2015-04-28 2020-02-25 Kabushiki Kaisha Toshiba Lattice finalization device, pattern recognition device, lattice finalization method, and computer program product
US10600407B2 (en) 2016-07-20 2020-03-24 Kabushiki Kaisha Toshiba Generation device, recognition system, and generation method for generating finite state transducer

Also Published As

Publication number Publication date
US20130073503A1 (en) 2013-03-21
US9286891B2 (en) 2016-03-15
US8943006B2 (en) 2015-01-27
US20140351192A1 (en) 2014-11-27
JP5554304B2 (ja) 2014-07-23

Similar Documents

Publication Publication Date Title
JP5554304B2 (ja) オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム
JP5377889B2 (ja) 言語処理装置およびプログラム
JP6493866B2 (ja) 情報処理装置、情報処理方法、およびプログラム
JP4977163B2 (ja) 有限状態トランスデューサ決定化装置及び有限状態トランスデューサ決定化方法
US10055511B2 (en) Search device, search method, and computer program product
JP2015121707A (ja) デコーダ、デコード方法およびプログラム
US20110320464A1 (en) Retrieval device
US20140136210A1 (en) System and method for robust personalization of speech recognition
JPWO2012043168A1 (ja) 音声変換装置、携帯電話端末、音声変換方法およびプログラム
JP2022047291A (ja) 情報処理装置、方法、及びプログラム
JPWO2007069762A1 (ja) 類似文検索方法、類似文検索システム及び類似文検索用プログラム
CN105161095A (zh) 语音识别语法树的构图方法及装置
JP2015143800A (ja) 変換装置、パターン認識システム、変換方法およびプログラム
JP6664466B2 (ja) 処理実行装置、処理実行装置の制御方法、および制御プログラム
KR20120052591A (ko) 연속어 음성인식 시스템에서 오류수정 장치 및 방법
US10452355B2 (en) Automaton deforming device, automaton deforming method, and computer program product
US20240221727A1 (en) Voice recognition model training method, voice recognition method, electronic device, and storage medium
CN113836917B (zh) 文本分词处理方法及其装置、设备与介质
JP2015087556A (ja) 音声認識用wfst作成装置と音声認識装置とそれらの方法とプログラムと記録媒体
JP2018081294A (ja) 音響モデル学習装置、音声認識装置、音響モデル学習方法、音声認識方法、およびプログラム
JP4243777B2 (ja) トランスデューサ処理装置、機械翻訳モデル作成装置、音声認識モデル作成装置、トランスデューサ処理方法、トランスデューサ処理プログラム、および、記録媒体
JP5881157B2 (ja) 情報処理装置、およびプログラム
CN116013278B (zh) 基于拼音对齐算法的语音识别多模型结果合并方法及装置
JP2016189154A (ja) 翻訳方法、装置、及びプログラム
JP6078435B2 (ja) 記号列変換方法、音声認識方法、それらの装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140328

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: 20140430

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140528

R151 Written notification of patent or utility model registration

Ref document number: 5554304

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313114

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350