JP2015152661A - 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム - Google Patents

重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム Download PDF

Info

Publication number
JP2015152661A
JP2015152661A JP2014024129A JP2014024129A JP2015152661A JP 2015152661 A JP2015152661 A JP 2015152661A JP 2014024129 A JP2014024129 A JP 2014024129A JP 2014024129 A JP2014024129 A JP 2014024129A JP 2015152661 A JP2015152661 A JP 2015152661A
Authority
JP
Japan
Prior art keywords
state
symbol
input
transition
hypothesis
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
JP2014024129A
Other languages
English (en)
Other versions
JP6235922B2 (ja
Inventor
堀 貴明
Takaaki Hori
貴明 堀
陽太郎 久保
Yotaro Kubo
陽太郎 久保
中村 篤
Atsushi Nakamura
篤 中村
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 JP2014024129A priority Critical patent/JP6235922B2/ja
Publication of JP2015152661A publication Critical patent/JP2015152661A/ja
Application granted granted Critical
Publication of JP6235922B2 publication Critical patent/JP6235922B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Machine Translation (AREA)

Abstract

【課題】RNN言語モデルからWFSAを生成する方法を提供する。
【解決手段】遷移元状態となる状態と現在の第一入力記号とを取得するステップと、遷移元状態から現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に現在の第一入力記号を割り当てるステップと、遷移元状態から現在の第一入力記号による遷移先状態が未設定であって、かつ、現在の第一入力記号の出現確率が計算されていない場合、RNNモデルを用いて、現在の第一入力記号の出現確率を計算するステップと、遷移元状態、遷移先状態、現在の第一入力記号、現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成するステップとを含む。
【選択図】図6

Description

本発明は、変化しうる有限の状態と、入力による状態の遷移を、図式化した重み付き有限オートマトン(weighted finite state automaton、以下「WFSA」ともいう)の作成技術、その作成方法により作成された重み付き有限オートマトンを用いた記号列の変換技術、音声認識技術に関する。
WFSAとは、変化しうる有限の状態と、入力による状態の遷移を、図式化したものである。
また、重み付き有限状態変換器(Weighted Finite-State Transducer、以下「WFST」ともいう)は、WFSAの拡張であり、状態の遷移は入力、重みに加え、出力を有する。WFSTは、記号列を変換するための記号列変換規則を状態と状態遷移によって表現するともいえる。
従来、音声認識において、入力音声の音響パターンを表す記号列を入力、その音響パターンに対応する単語列を出力とするWFSTに、Nグラムモデルで表される言語モデルのWFSTを合成して、記号列変換を行うことで、音響的にも言語的にも妥当な単語列(音声認識結果)に変換する方法が知られている(非特許文献1及び特許文献1参照)。
一方で、Nグラムモデル以外の言語モデルとして、リカレントニューラルネットワーク言語モデルがある。リカレントニューラルネットワーク(英訳Recurrent Neural Network:以下「RNN」ともいう)は多層ニューラルネットワークの一種であり、中間層のニューロンに再帰的な結合を持つのが特徴である。このRNN言語モデルは、Nグラム言語モデルと併せて用いることで音声認識の精度を大きく向上させることが知られている(非特許文献2)。
特開2007−66237号公報
堀,塚田,「重み付き有限状態トランスデューサによる音声認識」, 情報処理学会誌, 2004, Vol. 45, No.10, pp1020-1026. T. Mikolov, M. Karafiat, L. Burget, J. Cernocky, S. Khudanpur, "Recurrent neural network based language model", 国際会議Interspeech 2010予稿集, 2010, pp. 1045-1048.
非特許文献1および特許文献1では、Nグラム言語モデルのWFSTを用いた記号列変換方法および音声認識方法が開示されているが、非特許文献2のRNN言語モデルをWFSTに変換する方法は知られておらず、RNN言語モデルをWFSTに基づく効率的な記号列変換に適用することはできなかった。従来、RNN言語モデルを用いる記号列変換方法では、Nグラム言語モデルを用いた記号列変換により複数の出力記号列の候補を求め、各候補のスコアをRNN言語モデルによって付け直すことにより、最もスコアの高くなった候補を結果として出力していた。しかし、入力記号列を最後まで読み込むまでは複数の出力記号列候補を出力させることはできないので、RNN言語モデルによる各出力記号列候補へのスコア付けは、入力記号列を読み終えるまで始めることができない。音声認識の場合は、話し終えた後で認識結果が出力されるまでに遅延が生じることになるので、システムの応答に遅れが生じ、オンラインのシステムとしては使い辛く、利用範囲が限られるという問題がある。
本発明は、RNN言語モデルからWFSAを生成する方法を提供することを目的とする。
上記の課題を解決するために、本発明の一態様によれば、一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つモデルをリカレントニューラルネットワーク(以下、RNNと呼ぶ)とし、RNNに入力される記号を表すベクトルを第一入力記号とし、最初から現在の一つ前までの第一入力記号の系列である第一入力記号列に対して、現在の第一入力記号の出現確率分布を出力するRNNモデルがRNNモデル格納部に格納されているものとし、重み付き有限状態オートマトン作成方法は、RNNモデルWFSA状態遷移集合取得部が、変化しうる有限の状態と、入力による状態の遷移を表現する重み付き有限状態オートマトン(以下WFSAともいう)である第一WFSAにRNNモデルを変換するRNNモデルWFSA状態遷移集合取得ステップを含む。RNNモデルWFSA状態遷移集合取得ステップは、遷移元状態となる状態と現在の第一入力記号とを取得するステップと、遷移元状態から現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に現在の第一入力記号を割り当てるステップと、遷移元状態から現在の第一入力記号による遷移先状態が未設定であって、かつ、現在の第一入力記号の出現確率が計算されていない場合、RNNモデルを用いて、現在の第一入力記号の出現確率を計算するステップと、遷移元状態、遷移先状態、現在の第一入力記号、現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成するステップとを含む。
上記の課題を解決するために、本発明の他の態様によれば、一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つモデルをリカレントニューラルネットワーク(以下、RNNと呼ぶ)とし、RNNに入力される記号を表すベクトルを第一入力記号とし、重み付き有限状態オートマトン作成装置は、最初から現在の一つ前までの第一入力記号の系列である第一入力記号列に対して、現在の第一入力記号の出現確率分布を出力するRNNモデルが格納されるRNNモデル格納部と、RNNモデルWFSA状態遷移集合取得部が、変化しうる有限の状態と、入力による状態の遷移を表現する重み付き有限状態オートマトン(以下WFSAともいう)である第一WFSAにRNNモデルを変換するRNNモデルWFSA状態遷移集合取得部とを含む。RNNモデルWFSA状態遷移集合取得部は、遷移元状態となる状態と現在の第一入力記号とを取得し、遷移元状態から現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に現在の第一入力記号を割り当て、遷移元状態から現在の第一入力記号による遷移先状態が未設定であって、かつ、現在の第一入力記号の出現確率が計算されていない場合、RNNモデルを用いて、現在の第一入力記号の出現確率を計算し、遷移元状態、遷移先状態、現在の第一入力記号、現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成する。
本発明によれば、RNN言語モデルからWFSAを生成することができる。
WFSTの一例を示す図。 WFSTを表によって示す図。 一つのWFSTを用いた記号列変換の一例を示す図。 WFSTを用いた記号列変換手順を示す図。 RNN言語モデルを説明するための図。 第一実施形態に係る記号列変換装置の機能ブロック図。 RNN言語モデルWFST状態遷移集合取得部の処理フローの一例を示す図。 RNN言語モデルWFSTから変換したWFSTの状態と状態遷移の例を示す図。 第一実施形態に係る記号列変換装置において、RNN言語モデルWFSTから変換したWFSTの状態と状態遷移の例を示す図。 第二実施形態に係る音声認識装置の機能ブロック図。 第二実施形態に係る音声認識装置の効果を説明するための図。
以下、本発明の実施形態について説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
<第一実施形態>
<第一実施形態のポイント>
本実施形態では、RNN言語モデルを次の手順でWFSTに変換し、記号列変換を行う。
(1)初めに初期状態を作成する。このとき入力記号の系列(以下、「入力記号列」ともいう)の始まりを表す記号を割り当てておいてもよい。
(2)遷移元状態から入力記号による遷移先状態として、新たな状態を作成し、新たに作成した状態に入力記号を割り当てる。RNNモデルを用いて、入力記号の出現確率を計算する。遷移元状態、遷移先状態、入力記号および入力記号に等しい出力記号、入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成する。
(3)入力記号列が与えられ、その記号列変換を行う過程で、必要な状態やある入力記号に対応する状態遷移を必要なときに(2)の手順でWFSTに変換して取り出す。
<前提知識>
第一実施形態について説明する前に、その前提となる知識について説明する。
WFSTは、(1)状態と、(2)状態から状態へと遷移できることを表す状態遷移、(3)状態遷移において受理される入力記号、(4)その際に出力される出力記号、及び、(5)その状態遷移の重みの集合によって定義される。WFSTは、ある入力記号列が与えられたときに、初期状態からその入力記号列の記号を順に受理する状態遷移に従って出力記号を出力しながら状態遷移を繰り返し、終了状態に達すると終了するモデルである。形式的にはWFSTは次の8つの組(Q,Σ,△,i,F,E,λ,ρ)によって定義される。
1.Qは有限の状態の集合。
2.Σは入力記号の有限の集合。
3.△は出力記号の有限の集合。
4.i∈Qは初期状態。
5.F∈Qは終了状態の集合。
6.E∈Q×Σ×△×Qは、現状態から入力記号により、出力記号を出力して次状態に遷移する状態遷移の集合。
7.λは初期重み。
8.ρ(q)は終了状態qの終了重み。q∈F。
WFSTの一例を図1に示す。
図1において、10は、マル(“○”)で表された状態を示しており、そのマルの中の数字はその状態の番号を表している。11は、二重マル(“◎”)で表された終了状態を示しており、その二重マルの中の数字は、その終了状態の番号と状態遷移が終了して最後に累積される終了重みが“(状態番号)/(終了重み)”のように表されている。以後、状態の番号を用いて状態を指し示す場合は、単に状態とその番号を用いて“状態0”や“状態3”のように称す。12は、各状態を結ぶ矢印(“→”)で表された状態遷移を示しており、各々の状態遷移に付与された記号や数字は、その状態遷移に関連付けられた入力記号、出力記号、重みを“(入力記号):(出力記号)/(重み)”のように表したものである。
図2のように、図1のWFSTを表によって定義することもできる。図2は、各行が一つの状態遷移を表し、その状態遷移における遷移元(現状態)の状態番号と遷移先(次状態)の状態番号、入力記号、出力記号、重みが記されている。最終状態(図1では状態3)は、遷移先、入力記号、出力記号を空とし、状態遷移終了時に累積される重み(終了重み)を記されている。一般に、WFSTの初期状態は状態0とされ、初期重みλも省略されることが多い。そのため、本実施形態でも初期状態を状態0とし、初期重みを省略して明記しないこととする。
図1のWFSTは、例えば、入力記号列a,a,b,cを出力記号列d,d,c,bに変換することができ、その際の状態遷移過程は、状態番号の系列を用いて表すと0,0,1,3であり、重みの累積値(以下「累積重み」と称す)は、0.5+0.5+0.3+1+0.5=2.8となる。しかし、図1のWFSTでは、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とする。
ある重み付き有限状態変換器Aがあり、この重み付き有限状態変換器Aに対して記号列Xが入力記号列として与えられたとき、累積重みが最小となる出力記号列(すなわち記号列変換結果)を求めるには、次の累積重みの最小値W(X)を計算する必要がある。
Figure 2015152661
ここで、W(X→Y;A)は、重み付き有限状態変換器Aによって記号列Xが記号列Yに変換されるときの状態遷移過程における累積重みを表す。この累積重みW(X→Y;A)の最小値W(X)を求めて、その最小値を与える記号列Yが記号列変換結果となる。この記号列変換結果を求めるには、入力記号列によって初期状態から終了状態に至るコスト(累積重み)が、最小または最大の状態遷移過程を探し出すことによって行われる。この手順は、例えば、特許文献1に開示されている。
一つのWFSTを用いた記号列変換装置の機能ブロック図の一例を図3に示す。
まず、本明細書において、“仮説”とは、ある記号列を構成する記号が順に入力され(読み込まれ)、現時点までに読み込まれた入力記号列に対して、WFSTにおいて初期状態からその入力記号列によって状態遷移を繰り返した場合の可能性のある一つの状態遷移過程を表すものとする。
記号列入力部103は、入力記号列を構成する記号を先頭から順に一つずつ読み込み(取得し)、仮説展開部104に送る。
仮説展開部104は、記号列入力部103で取得した記号とWFST格納部101から読み込んだWFSTに従って、これまで読み込んだ記号列に対する仮説の集合を新たに受け取った記号を用いて各仮説の状態遷移過程を更新することにより新たな仮説を生成し、仮説絞込み部105に送る。
仮説絞込み部105は、仮説展開部104から受け取った仮説の集合に対し、同じ状態に到達している仮説の中で累積重みが最小または最大の仮説以外の仮説を削除することにより仮説を絞り込む。仮説絞込み部105は、入力記号列が最後まで読み込まれていれば、累積重みが最小または最大の仮説に対応する出力記号列を記号列出力部106に送る。入力記号列が最後まで読み込まれていなければ、仮説を仮説展開部104に送る。
記号列出力部106は、仮説絞込み部105から受け取った出力記号列を記号列変換結果として出力する。
次に、この実施の形態に基づいて記号列を変換する手順の一例を示す。
まず、WFSTのある状態遷移をeと表すとき、n[e]を遷移先の状態(次状態)、i[e]を入力記号、o[e]を出力記号、w[e]を重みと定義する。また、ある仮説をhと表わすとき、s[h]をその状態遷移過程において到達している状態、W[h]をその状態遷移過程における累積重み、O[h]をその状態遷移過程において出力されている記号列とする。
この手順において、仮説は仮説のリスト(以後これを「仮説リスト」と呼ぶ)を用いて管理する。仮説リストに対し、仮説を挿入したり、仮説を取り出したりすることができる。但し、仮説リストに仮説を挿入する場合に、仮説リスト内に同じ状態に到達している仮説があれば、累積重みの小さいほうまたは大きいほうだけを仮説リストに残し、仮説を絞り込む。
WFSTを用いた記号列変換手順を図4に示す。
以下、WFSTを用いる記号列変換の例(図3)の各部がどのような手順で処理を行うか、図4を用いて説明する。
ステップS101より開始し、初期設定として、ステップS102において空の仮説リストHとH’とを生成する。ステップS103において、初期の仮説h(hは仮説展開部104において更新する前の仮説を表す)を生成し、状態s[h]=0(WFSTの初期状態)、累積重みW[h]=0、出力記号列O[h]=φ(ここではφは空の記号列を表す)とし、仮説リストHに挿入する。
ステップS104では、記号列入力部103は、入力記号列に含まれる記号を一つ読み込み、その記号をxに代入し、仮説展開部104に出力する。次のステップS105からS108は、仮説展開部104において実行される。
ステップS105では、仮説リストHから仮説を一つ取り出し仮説hに代入し、状態s[h]から入力記号がxに等しい状態遷移のリスト(以下、「状態遷移リスト」ともいう)Eを用意する。
ステップS106では、状態遷移リストE=φ(ここではφは空のリストを表す)であればS110に進む。そうでなければ、S107に進み、状態遷移リストEから状態遷移を一つ取り出し、eに代入する。
ステップS108で新たな仮説f(fは仮説展開部104において更新した後の仮説を表す)を生成し、状態s[f]=n[e]、累積重みW[f]=W[h]+w[e]、出力記号列O[f]=O[h]・o[e]とし、仮説絞込み部105に出力する。ここで、“・”は二つの記号または記号列を接続し、一つの記号列にする演算を表す。
ステップS109は、仮説絞込み部105で実行され、仮説fを仮説リストH’に挿入することにより仮説を絞り込む。例えば、仮説リストH’内に同じ状態に到達している仮説があれば、累積重みの小さいほうまたは大きいほうだけを仮説リストH’に残し、仮説を絞り込む。
ステップS109からS106に戻り、次の状態遷移について仮説を展開する。
ステップS110では、仮説リストH=φ(すべての仮説を展開済み)であればS111に進む。そうでなければS106に戻り、次の仮説hを展開する。
ステップS111では、新たに生成された仮説リストH’の要素を、すでに空となった仮説リストHにすべて移し、S112に進む。
ステップS112では、記号列入力部103において次の入力記号が存在するならばS104に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しS113に進む。
ステップS113では、仮説リストHの中で終了状態に到達している仮説の累積重みにその終了状態の終了重みを加えた後で、その終了状態に到達している仮説の中から累積重み(W[h])が最小となる仮説hを選び、その出力記号列O[h]を記号列変換結果として、記号列出力部106が出力する。
ステップS114にてWFSTを用いる記号列変換手順を終了する。
[記号列変更例]
この記号列変換手順に従って、図1のWFSTに入力記号列a,a,b,cが与えられた場合の出力記号列を求める過程を順を追って説明する。但し、ここでは、現状態番号s、出力記号列O、累積重みWの仮説がある場合、その仮説を(s,O,W)のように表すものとする。また、WFSTのある状態遷移(現状態番号s、次状態番号n、入力記号x、出力記号y、重みw)を<s→n,x:y/w>と表すものとする。また、この例では、累積重みが最小の状態遷移過程に対応する出力記号列を記号列変換結果として選択するものとする。
S101から開始し、S102で空の仮説リストH及びH’を作る。
S103により仮説リストHの中の仮説(0,φ,0)を挿入する。
(記号“a”読み込み)
S104で記号aを読み込みxと置く。S105において仮説リストHから仮説(0,φ,0)を取り出す。この仮説の現状態0から入力記号がaに等しい状態遷移<0→0,a:d/0.5>を含む状態遷移リストEを作る(図1参照)。
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を読み込みxと置く。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に戻る。
(記号“b”読み込み)
続いて、S104で記号bを読み込みxと置く。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に戻る。
(記号“c”読み込み)
続いて、S104で記号cを読み込みxと置く。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)は仮説リストH’から削除する。
S106に戻り、状態遷移リストE=φであるため、S110に進み、仮説リストH=φであるためS111に進む。S111で仮説リストH’の要素(3,ddcb,2.3)を仮説リストHに移し、S112で次の入力記号が存在しないのでS113に進む。
S113で、仮説リストH内の仮説(3,ddcb,2.3)の到達状態3は終了状態であるため、終了重みを加えて(3,ddcb,2.8)とし、この仮説が終了状態に到達した唯一の仮説であり、累積重みが最小となるので、その出力記号列ddcbを変換結果として出力し、S114で記号列変換処理を終了する。
このような記号列変換では、記号列の出現確率を求めるモデル(言語モデル)を利用することが多い。一般には、記号のN個連鎖確率に基づいて記号列の出現確率を計算するNグラム言語モデルをWFSTに変換して利用する。
<RNN言語モデル>
一方、記号列の出現確率を計算する言語モデルとして、RNN言語モデルがある。このモデルはNグラム言語モデルとは異なり、記号のN個連鎖確率を用いるのではなく、記号列を初めから順に現在の一つ前の記号まで読み込んだときの記号列(全履歴)に対して、その次に出現する現在の記号の確率を予測する。
RNNは、一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つ。そして、RNN言語モデルは、RNNに入力記号列の各記号を順次入力し、現在の一つ前の記号を表すベクトルと、その時の中間層の各ニューロンの活性度を用いて、現在の記号の出現確率を計算する。
各層には複数のニューロンがあり、それぞれ上位や下位、もしくは同じ層にあるニューロンと結合されている。各ニューロンは、発火している度合を表す活性度(実数値)を持つ。結合されたニューロン間には結合の強さを表す結合重み(実数値)が割り当てられる。各ニューロンの活性度は、結合重みを掛けた値として結合先のニューロンに伝播される。
次に、RNN言語モデルによって記号列の出現確率を計算する方法を説明する。
まず、L層からなるRNNがあり、1層目が入力層、2〜L−1層目が中間層、L層目が出力層である。また、n番目の層(1≦n≦L)にはH個のニューロンが含まれるものとする。そして、m番目の層のj番目のニューロンからn番目の層のk番目のニューロンへの結合重みをw(m,n)[j,k]で表すものとする。但し、1≦m≦n≦L,1≦j≦H,1≦k≦Hとする。なお、本実施形態では、RNN言語モデルは、入力層側から出力層側に(下位から上位に)向かって結合する。入力記号はベクトルで表現され、その各要素の値を入力層のニューロンの活性度とする。従って、各記号を表すベクトルの次元数と入力層のニューロンの数は同一である。例えば、入力として取りうる値の種類数を、入力記号のベクトルの次元数とし、入力に対応する要素を1とし、他の要素を0とするベクトルを入力記号とする。入力層は、そのベクトル(入力記号)の次元数と同一のニューロンを持ち、入力層の各ニューロンと入力記号の各要素とが対応し、各要素の値を対応するニューロンの活性度とする。なお、中間層の各ニューロンと入力記号の各要素とは対応しない。
入力記号列X=x,…,x,…,xがあり、その1番目から順にt番目の入力記号xを読み込んだ時、入力層のi番目のニューロンの活性度h (t)[i]は、
Figure 2015152661
となる。なお、x[i]はt番目の入力記号xの第i次元目の要素の値を表す。
そして、n番目の層(1<n≦L)のk番目のニューロンの活性度h (t)[k]は、そのニューロンに結合されたn−1番目の層に存在する全てのニューロンに対して、その活性度に結合重みを掛けて総和をとることで次式のように計算される。
Figure 2015152661
ここで、f(x)は活性化関数と呼ばれ、通常は活性度を0と1の間に正規化するためのシグモイド関数
Figure 2015152661
を用いる。但し、出力層の活性度を求める場合は一般に活性度を確率と見なすためにソフトマックス関数
Figure 2015152661
が用いられる。ここで、分母は活性度を確率と見なすための正規化項であり、z[k]はk番目のニューロンに対してn−1層目から結合されたニューロンの活性度の重み付き和を表し、
Figure 2015152661
のように計算される。これは式(2)のシグモイド関数f()の中身と同じである。
一方、中間層において同じ層内のニューロンとの再帰的な結合がある場合は、t−1番目の記号xt−1を読み込んだときの中間層における活性度h (t−1)を与える。すなわち、
Figure 2015152661
のように、右辺のシグモイド関数()内の第2項には、t−1の添え字が付いた活性度h (t−1)[k]が再帰的な活性度として同じ層内のニューロンに重み付きで伝搬される。要は、中間層において同じ層内のニューロンとの再帰的な結合がある場合は、その中間層内に存在するニューロンの活性度h (t)を式(6)により求める。
RNN言語モデルでは、出力層の個々のニューロンは固有の記号に対応している。例えば、入力として取りうる値の種類数と出力として取りうる値の種類数とが同じ場合には、入力層と出力層のニューロンの総数を同じとし、出力層の各ニューロンを、入力層の各ニューロンに対応するものとすればよい。RNN言語モデルでは、予測される次の記号の出現確率は、その記号に対応するニューロンの活性度として求められる。すなわち、入力記号列x…xを読み込んだ後で、記号vが出現する確率は、
Figure 2015152661
となる。但し、記号vは出力層のk番目のニューロンに対応する記号を表す。
なお、RNNのパラメタは、各ニューロンを繋ぐ結合重みであり、記号列の学習データを用いて誤差逆伝搬法を用いて推定される。
図5は、入力層、中間層、出力層を各一層ずつ持つRNN言語モデルを表している。ここで、中間層は自分自身に戻る再帰的な結合を持っている。入力層の各ニュートンには、入力記号の各要素の値がそれぞれ活性度として与えられる。なお、RNN言語モデルでは、入力記号は一般に0または1の値を要素とするベクトルとして表現される。例えば、考慮する全ての記号の数(語彙サイズ)と同じだけのニューロンを用意しておき、入力記号に対応するニューロンの活性度だけが1、他のニューロンの活性度は0を取るように設定することができる。この場合、仮に考慮する入力記号の種類をA,B,Cとすると、入力層のニューロンは3つ必要であり、記号A、記号B、記号Cに対応する入力記号(ベクトル)は、それぞれ、
Figure 2015152661
のように表せる。但し、ベクトルの1次元目がA、2次元目がB、3次元目がCに対応するものとする。また、図5では入力層のニューロンの左側から順にベクトルの1、2、3次元目の要素が活性度になるように対応している。
中間層には再帰的な結合があるので、各ニューロンの活性度は式(6)に従って計算する。但し、最初の記号を読み込んだとき、すなわちt=1のときはh (t−1)[k]=0とし、h (t−1)[k]がない式(2)に従って活性度を計算する。出力層のニューロンの活性度は式(2)に従って計算し、活性化関数には式(4)のソフトマックス関数を用いる。出力層のニューロンは、左から順に記号A,B,Cに対応している。
RNNの中間層のニューロンの活性度は再帰的な結合により再び中間層のニューロンへ伝搬されることから、中間層のニューロンの活性度には、現在までに読み込んだ入力記号列の特徴が記憶される。従って、RNN言語モデルは入力記号列の最初から現在までの履歴に依存した入力記号の出現確率を求めることができる。これは、過去のN−1個の記号のみから次の記号を予測するNグラムモデル(Nは高々3か4)よりも長い文脈を考慮した記号出現確率を求めることが可能なモデルとなっている。
なお、RNNの中間層のニューロンの総数は少なすぎると精度が悪くなることがあり、多すぎると学習が上手くいかないことがあるので、実験等により予め適切な値を求めておけばよい。例えば200〜300個程度に設定する。また、中間層の総数も実験等により予め適切な値を求めておけばよく、例えば、1層に設定する。
<第一実施形態>
図6は本実施形態の記号列変換装置の機能ブロック図である。記号列入力部103、仮説展開部104、仮説絞込み部105、記号列出力部106の機能構成は図1の記号列変換装置と同様である。WFSTを格納する格納部101に代えて、本実施形態では、RNN言語モデル格納部607と初期状態取得部608、RNN言語モデルWFST状態遷移集合取得部609、および終了状態判定部610を含む。このような構成により、WFSTを参照する代わりに、状態遷移集合取得部609によってRNN言語モデルから必要な部分のWFSTの状態および状態遷移を取得する処理に置き換えられている点が異なる。これにより、RNN言語モデルを用いた効率的な記号列変換が可能である。以下、各部について説明する。
<RNN言語モデル格納部607>
RNN言語モデル格納部607には、RNN言語モデルが格納されている。例えば、RNNの構造に関する情報(層の数、各層のニューロンの数など)やパラメタ(ニューロン間の結合重み)が記憶されている。
<記号列入力部103>
記号列入力部103は、入力記号列を構成する記号を先頭から順に一つずつ読み込み(取得し)、仮説展開部104に送る。
<仮説展開部104>
仮説展開部104は、記号列入力部103から記号xを受け取る。仮説展開部104は、記号列入力部103で取得した記号xとWFST格納部101から読み込んだWFSTに従って、これまで読み込んだ記号列に対する仮説の集合を新たに受け取った記号xを用いて各仮説の状態遷移過程を更新することにより新たな仮説を生成し、仮説絞込み部105に送る。例えば、以下のようにして仮説を展開する。
まだ仮説を生成していない場合(言い換えると、1番目の記号を受け取った場合)には、仮説展開部104は、まず、後述する初期状態取得部608に、WFSTの初期状態を取得するように指示し、初期状態取得部608からWFSTの初期状態の状態番号を取得する。仮説展開部104は、次に、取得した初期状態の状態番号と記号列入力部103から受け取った記号xとを後述するRNN言語モデルWFST状態遷移集合取得部609に送り、初期状態から記号xにより遷移可能な状態の集合を取得する。そして、受け取った状態遷移の集合を用いて仮説を生成する。
既にこれまでに入力された記号に対応する仮説が生成されている場合(言い換えると、2番目以降の記号を受け取った場合)は、仮説展開部104は、記号列入力部103から受け取った記号xと、現在の仮説が到達している状態に対応する状態番号pとをRNN言語モデルWFST状態遷移集合取得部609に送り、現在の仮説が到達している状態pから、記号列入力部103から受け取った新たな記号xにより遷移可能な状態の集合を取得する。そして、RNN言語モデルWFST状態遷移集合取得部609から取得した遷移可能な状態の集合を用いて、現在の仮説の状態遷移過程を更新することにより新たな仮説の集合を生成する。
仮説展開部104は、生成した仮説の集合の各仮説についての累積重みを算出する。そして、生成した仮説の集合を終了状態判定部610へ送り、各仮説の到達している状態が終了状態であるか否かを判定することにより、各仮説の累積重みを更新する。具体的には、終了状態に到達している仮説の累積重みに、その終了状態の終了重みを加えることで、仮説の累積重みを更新する。
そして、生成した仮説の集合とその累積重みを仮説絞込み部105へ送る。
<初期状態取得部608>
初期状態取得部608では、WFSTの初期状態を生成する。これは、図4のS104における初期状態の要求s[h]=iに対応する処理であり、一つの状態番号(例えばi=0)を返す。このとき、状態集合Q={0}、状態数|Q|=1になる。そして、生成した初期状態の状態番号s[h]を、仮説展開部104を介して、RNN言語モデルWFST状態遷移集合取得部609に送る。なお、このとき、入力記号列の始まりを表す記号を初期状態に割り当ててもよい。
<RNN言語モデルWFST状態遷移集合取得部609>
RNN言語モデルWFST状態遷移集合取得部609は、入力された状態番号pと入力記号xとを仮説展開部104から受け取り、これらの値を用いて、RNN言語モデルをWFSTに変換する。本実施形態では、状態番号pの状態から入力記号xで遷移可能な状態遷移の集合Eを求める。
図7は、RNN言語モデルWFST状態遷移集合取得部609の処理フローの例を示す。
まずステップS701より開始し、ステップS702で状態番号pと現在の入力記号xとを取得する。なお、状態番号pは、遷移元となる状態(遷移元状態)に対応する。
ステップS703では、状態番号pに対応する遷移元状態から現在の入力記号xによる遷移先状態δ(p,x)が未設定か否かを判定する。
遷移先状態δ(p,x)が未設定の場合、ステップS704に進み、そこで新たな状態qを作成する。例えば、その新たな状態の状態番号qを現在の状態数|Q|に設定し、qを状態集合Qに追加する。そして、遷移先状態δ(p,x)として新たな状態qを設定し、状態qに現在の入力記号xを割り当て、ステップS706に進む。状態qに割り当てた入力記号を特にxとも表す。
遷移先状態δ(p,x)が未設定でない(設定済み)場合、ステップS705に進み、状態番号qに遷移先状態δ(p,x)を代入し、ステップS708に進む。
ステップS706では、現在の入力記号xの出現確率が計算されているか否かを判定する。現在の入力記号xの出現確率は、言い換えると、RNN言語モデルの出力層の現在の入力記号xに対応するニューロンの活性度h (p)[k(x)]である。ただし、k(x)は現在の入力記号xに対応するニューロンを指す番号を表すものとする。
現在の入力記号xの出現確率が未計算の場合、ステップS707で、RNN言語モデルを用いて、入力記号xに対応するニューロンの活性度h (p)[k(x)]を計算する。ただし、活性度h (p)[k(x)]は、式(1)と式(2)とは一部異なり、入力記号列の何番目かを表すインデックスtの代わりに状態番号pに依存している。従って、
入力層では、ニューロンの活性度h (p)[k(x)]を
Figure 2015152661
として求める。但し、x[i]は、状態番号pに割り当てられた入力記号xの第i次元目の要素を表す。
再帰結合のない中間層(1<n<L)及び出力層(n=L)では、ニューロンの活性度をh (p)[k(x)]を
Figure 2015152661
として求める。ただし、活性化関数f()として、再帰結合のない中間層では式(3)のシグモイド関数を用い、出力層では式(4)のソフトマックス関数を用いる。
再帰結合のある中間層(1<n<L)では、ニューロンの活性度をh (p)[k(x)]を
Figure 2015152661
として求める。ただし、p(−1)は状態pに遷移する直前の状態(木構造の親ノード)を表し、活性化関数f()として式(3)のシグモイド関数を用いる。式(8)〜(10)を用いて、入力記号xに対応する出力層のニューロンの活性度h (p)[k(x)]を求める。
このような処理により、本実施形態におけるRNN言語モデルWFST状態遷移集合取得部609では、ただ一つの入力記号列を考慮するのではなく、あらゆる記号列を状態遷移で表すことができる。そして、RNN言語モデルにおける記号の出現確率は入力記号列の始めから現在までの入力記号列に依存することから、木構造のWFSTとして構成される。よって、各状態が記号列の固有の履歴に対応することから、状態番号pは任意の記号列の任意番目の記号に一意に対応し、各ニューロンの活性度も状態番号pに依存して記録される。
ステップS708では、遷移元状態p、遷移先状態q、現在の第一入力記号xおよび現在の第一入力記号に等しい出力記号x、現在の第一入力記号の出現確率h (p)[k(x)]もしくはそれを引数に取る関数を重みとして含む状態遷移を作成する。例えば、現在の第一入力記号の出現確率h (p)[k(x)]を引数に取る関数としては、出現確率h (p)[k(x)]の対数の負値−log(h (p)[k(x)])等が考えられる。よって、例えば、状態遷移<p→q,x:x/−log(h (p)[k(x)])>を作成する。これを唯一の状態遷移として持つ状態遷移の集合Eを生成する。最後にステップS709に進み、生成した状態遷移の集合Eを仮説展開部104に出力して状態遷移集合取得部609の処理を終了する。
本実施形態の手順に従えば、図5のRNN言語モデルは、図8に示すような木構造のWFSTの一部分として構成される。図8に示すようにWFSTの各状態は、初期状態0から始まる任意の記号列に対応しており、例えば、状態9は記号列B,Cに対応している。但し、本実施形態の手順では、入力記号列に対応する状態と状態遷移のみが作られるので、図8のように各状態から可能性のあるすべての記号に対する状態遷移が作られる訳ではない。実際に、木構造であらゆる記号列を表現すると、記号列の長さ(木の深さ)に応じて、状態数が指数的に増加してしまうため、RNN言語モデルを予めWFSTに変換しておくことは非現実的である。本実施形態では、記号列変換に必要な状態と状態遷移のみを作るため、状態数が急激に増加することはない。例えば、入力記号列B,C,Aを読み込むと、図9の状態0,1,2,3に対応する状態遷移が作られる。その後、入力記号列B,Aを読み込むと、状態1から状態4への遷移が新たに作られる。一度作った状態遷移の重みについては活性度を再計算する必要はないので、計算は効率的である。しかし、様々な入力記号列を読み込む中で状態数は徐々に増加していくので、記憶領域を削減するために、適当なタイミングで状態や状態遷移を消去しても良い。
<終了状態判定部810>
終了状態判定部810では、入力された仮説の集合(仮説リスト)Hの中の個々の仮説hが到達した状態s[h]が終了状態か否か、すなわちs[h]∈Fか否かを判定する。例えば読み込んだ記号が入力記号列の最後の記号であるなら、s[h]は終了状態、そうでなければ終了状態ではない、といった判定をしても良い。または、状態s[h]が記号列の終わりを表す特殊記号</s>に対応した状態であるならばs[h]は終了状態、そうでなければ終了状態ではない、といった判定をしても良い。この終了状態判定は、図4のS113の処理に相当する。
<仮説絞込み部105>
仮説絞込み部105では、同じ状態に到達している仮説の中で累積重みが最小の仮説以外の仮説を削除することにより仮説を絞り込む。更には、存在する仮説の中で累積重みが相対的に大きい仮説を削除しても良い。これは、例えば、存在する仮説の中での累積重みの最小値に一定の値を加えた値を閾値として、この閾値よりも累積重みの大きな仮説をすべて削除しても良い(この仮説絞り込み方法を「枝刈り」とも言う)。そして、入力記号列が最後まで読み込まれていれば、その終了状態に到達している仮説の中から累積重み(W[h])が最小となる仮説hを選び、その出力記号列O[h]を記号列変換結果として、記号列出力部106に送る。入力記号列が最後まで読み込まれていない場合には、絞り込み後の仮説の集合を仮説展開部104へ送る。
<記号列出力部106>
記号列出力部106では、仮説絞込み部105から受け取った出力記号列を出力する。
<効果>
このような構成により、RNN言語モデルからNグラム言語モデルを用いることなく、直接WFSTを生成することができる。RNN言語モデルに対応するWFSTに基づき記号列変換を行うことができる。
<変形例>
本実施形態では、状態遷移の集合Eには一つの状態遷移しか含まれておらず、そこから一つの仮説しか生成しないため、仮説リストや状態遷移リスト等を用意せずに、図4のS102、S106、S109、S110、S111等の処理を省略してもよい。
本実施形態では、記号列変換装置の一部として、RNN言語モデル格納部607、初期状態取得部608、RNN言語モデルWFST状態遷移集合取得部609、終了状態判定部610を設けたが、RNN言語モデル格納部607、初期状態取得部608、RNN言語モデルWFST状態遷移集合取得部609、終了状態判定部610を含む重み付き有限状態変換器作成装置として構成してもよい。重み付き有限状態変換器作成装置は、入力記号xとを入力とし、RNN言語モデルをWFSTに変換し、変換後のWFSTを出力する。例えば、本実施形態のように状態番号pの状態から入力記号xで遷移可能な状態遷移を求めることで、RNN言語モデルをWFSTに変換する。なお、状態番号は、初期状態取得部608やRNN言語モデルWFST状態遷移集合取得部609で求めた状態番号を用いればよい。
また、重み付き有限状態変換器作成装置は、入力記号xとを入力とし、RNN言語モデルを重み付き有限オートマトン(WFSA)に変換し、変換後のWFSAを出力してもよい。出力記号を含まない状態遷移を求めることで、容易にWFSAを求めることができる。よって、WFSTを求めることは、同時にWFSAを求めることを意味している。このとき、RNN言語モデルWFST状態遷移集合取得部をRNN言語モデルWFSA状態遷移集合取得部と言ってもよい。なお、求めたWFSAに対して、入力記号と同様の出力記号を付加することで、本実施形態のWFSTに変換することもできる。つまり、求めたWFSAは、入力記号と同様の出力記号を付加したWFSTに対応する。
また、初期状態を別途与えられる(例えば、人手により、または予め定めた初期状態を与えられる)構成としてもよい。その場合、記号列変換装置や重み付き有限状態変換器作成装置は、初期状態取得部608を含まなくともよい。また、終了状態判定部610を記号列変換装置や別装置として設けてもよい。その場合、重み付き有限状態変換器作成装置は、終了状態判定部610を含まなくともよい。
RNNモデルとして、RNN言語モデルを用いているが、必ずしも言語モデルに限定されない。要は、RNNに入力記号列の各記号を順次入力し、現在の一つ前の記号を表すベクトルと、その時の中間層の各ニューロンの活性度を用いて、現在の記号の出現確率を計算するRNNモデルであれば、RNN言語モデル以外のRNNモデルであっても、WFSTに変換することができる。
<第二実施形態>
第一実施形態と異なる部分を中心に説明する。本実施形態では、本発明を音声認識に適用する。
図10は第二実施形態に係る音声認識装置の機能ブロック図である。本実施形態では、第一実施形態と同様に、RNN言語モデル格納部、初期状態取得部、RNN言語モデルWFST状態遷移集合取得部、終了状態判定部を有する。
すなわち、RNN言語モデル格納部1007、初期状態取得部1008、RNN言語モデルWFST状態遷移集合取得部1009、および終了状態判定部1010を用いて、RNN言語モデルWFSTの状態遷移集合を必要に応じて生成することで、RNN言語モデルに対するWFSTの全体(図8参照)が存在するかのように記号列変換を行う。
なお、RNN言語モデル格納部1007、初期状態取得部1008、状態遷移集合取得部1009、および終了状態判定部1010以外の各部の処理については、特許文献1に詳細が記載されているため、ここでは概要のみを説明する。
<音声信号入力部1003及び音声特徴記号列抽出部1004>
音声を入力する音声信号入力部1003から送られた音声信号はその音声の短時間音響パターンの時系列を記号列として抽出する音声特徴記号列抽出部1004において音響特徴記号列に変換し、その音響特徴記号列を入力として記号列変換を行う記号列変換部1005に送る。
<記号列変換部1005>
記号列変換部1005は、仮説展開部1006、仮説補正部1011及び仮説絞込み部1012を含む。
記号列変換部1005は、音響モデル格納部1001から音声固定単位(例えば音素)の標準的な音響パターン系列の特徴を保持し、個々の音声固定単位と任意の音響パターンの間の類似度を与える音響モデルを読みだす。
音声認識に用いる音響パターンには、短い時間(例えば10ミリ秒)ごとに音声信号を分析することにより得られるメルケプストラム(mel−frequency cepstral coefficients,
MFCCと呼ばれる)、デルタMFCC、LPCケプストラム、対数パワーなどがある。
種々の音声固定単位(例えば音素)の標準的特徴を保持する音響モデルとしては、例えば、それら音響パターンの系列の集合を確率・統計理論に基づいてモデル化する隠れマルコフモデル法(Hidden Markov Model,以後HMMと呼ぶ)が主流である。このHMM法の詳細は、例えば、社団法人電子情報通信学会、中川聖一著「確率モデルによる音声認識」に開示されている。音響モデルとして他の従来技術を用いてもよい。
さらに、仮説展開部1006は、単語辞書WFST格納部1002から前記音声固定単位の系列からその発音を持つ単語の系列に変換する単語辞書WFSTを読み出す。さらに、記号列変換部1005は、RNN言語モデルWFST生成部100を用いて、RNN言語モデルWFSTの状態遷移集合を生成し、音声特徴記号列抽出部1004から送られた音響特徴記号列を読み込み、累積重み最小または最大の出力記号列を求め、記号列出力部1013に送る。
(仮説展開部1006)
仮説展開部1006は、音声特徴記号列抽出部1004から送られた音響特徴記号列の記号を一つずつ読み込む。次に、仮説展開部1006は、単語辞書WFSTを用いて、音響特徴記号列の音響特徴記号から現在の仮説の集合の各々に新しい状態遷移を追加し、新たな仮説を展開する。
なお、単語辞書WFSTの重みとして、音響モデルによって計算される音響特徴記号(音響パターン)のスコアを用いる。ただし、このスコアは、大きいほど入力音響パターンが音響モデルによって表される音声固定単位に近いことを表すので、マイナスの音響スコアをもって重みとする。隠れマルコフモデルによる音響スコアの計算では、例えばガウス分布に基づく確率値が用いられる。
(仮説補正部1011)
仮説補正部1011は、新しい状態遷移を追加された仮説の集合を受け取る。仮説補正部1011は、初期状態取得部1008、状態遷移集合取得部1009、終了状態判定部1010によって、仮説展開部1006から受け取った個々の仮説の累積重みを補正する。
具体的には、仮説展開部1006から受け取った個々の仮説の状態遷移過程から出力される単語列を入力記号列として、第一実施形態と同様の処理を行って出力される出力記号列に対応する累積重み、すなわち、可能な状態遷移過程の中で累積重みが最小となる状態遷移過程の累積重み、をその仮説の累積重みに加算することにより、各仮説の累積重みを補正する。言い換えると、RNN言語モデルに対応するWFSTを用いて、仮説展開部1006から受け取った個々の仮説の状態遷移過程から出力される単語列の状態遷移の重みを補正する。また別の言い方をすると、仮説補正部1011は、言語モデルWFST生成部100により部分的に生成される、RNN言語モデルに対応するWFSTとは別の単語辞書WFSTを用いて、音響特徴記号列(RNN言語モデルに対応するWFSTに対する入力記号列とは別の記号列である)を変換することにより得た仮説の集合に含まれる仮説の状態遷移過程から出力される記号列を、RNN言語モデルに対応するWFSTに対する入力記号列として、第一実施形態と同様の処理を行う。
(仮説絞込み部1012)
仮説絞込み部1012は、仮説補正部1011で生成された仮説の集合を受け取り、同じ状態に到達している仮説の中で累積重みが最小または最大となる仮説から所定数の仮説以外の仮説を削除することにより仮説を絞り込む。そして、入力記号列が最後まで読み込まれていれば、その終了状態に到達している仮説の中から累積重みが最小または最大となる仮説を選び、その出力記号列を記号列変換結果として、記号列出力部1013に送る。入力記号列が最後まで読み込まれていない場合には、累積重みの大きい所定数の仮説を削除して、絞り込んだ後、残った仮説の集合を仮説展開部1006へ送る。
仮説展開部1006は、音響特徴記号列の次の記号を読み込み、記号列変換部1005は、入力された音声特徴記号列をすべて読み終えるまで、同様の処理を繰り返す。
最後の音声特徴記号を読み込んだ後に、仮説絞込み部1012において累積重み最小の仮説とその出力記号列を求め、記号列出力部1013に送る。
よって、記号列変換部1005は、1つ以上の単語列の中から補正後の重みの累積重みが最小または最大の状態遷移過程に対応する単語列を音声認識結果として決定し、記号列出力部1013に出力する。
<記号列出力部1013>
記号列出力部1013は、受け取った単語列を音声認識結果として出力する。
このような構成により、本発明を音声認識に利用することができる。
<変形例>
第一実施形態のRNN言語モデルWFST状態遷移集合取得部609において、状態遷移の重み−log(h (p)[k(x)])を求めるとき(図7のステップS708)、Nグラム言語モデルによって求めた確率との線形補間を行っても良い。例えば、状態遷移重みは
Figure 2015152661
のように計算できる。ここで、P(x│xp^(−N+2),…,xp^(−1),x)(ただし、下付添え字のp^(−N+2)とp^(−1)とはそれぞれp(−N+2)とp(−1))を表す)は、Nグラム言語モデルで計算されるNグラム確率を表し、xp^(−N+2),…,xp^(−1),xは状態pに至る状態遷移過程の最後のN−1個の状態に割り当てられた記号の系列を表す。つまり、記号xの直前の長さN−1の記号列に依存したNグラム確率となっている。λはRNN言語モデルで求めた記号出現確率とNグラム言語モデルで求めたNグラム確率の間のバランスを取る係数であり、0≦λ≦1とする。
<実験結果>
図10に示す形態で音声認識装置を構築した。音響モデルには、51種類の音素に対するHMMを用意し、各音素ごとに3つの状態があり、各状態にはその音素のコンテキスト(前にある音素は何か、後ろに続く音素は何か)に応じて2,546種類ある音響パターンの確率密度分布の内の一つが割り当てられている。これら確率密度分布のId番号を音声固定単位とした。
音声信号の音響パターンの系列は、10ミリ秒ごとに音声信号を分析することにより得られるMFCC12次元、MFCCの各次元の時系列方向に前後2フレーム見たきの一次回帰係数であるデルタMFCC12次元、各次元の時系列方向に前後2フレーム見たきの一次回帰係数であるデルタデルタMFCC12次元、および対数パワーを合わせた39次元のベクトルを要素とする入力系列として抽出する。
辞書として10万単語とその発音を用い、音声固定単位の系列から単語列に変換するWFSTを構築した。
RNN言語モデルは、マサチューセッツ工科大学の英語講義コーパスの104講義を書き起こした単語列を用いて学習した。同様に、Nグラム言語モデル(N=3)も学習し、音声認識処理を行うときは、前述の変形例の式(11)でWFSTの状態遷移重みを求めた。このとき、λ=0.5に設定した。
図11は、Nグラム言語モデルだけを用いる音声認識方法(従来法(1))、Nグラム言語モデルを用いる音声認識によって各発話あたり最大1000候補の単語列を出力させた後で、各候補をRNN言語モデルで再スコア付けを行い、スコア最大の候補を選び直す音声認識方法(従来法(2))、および本実施形態による音声認識方法における単語誤り率、認識処理時間、遅延時間を表している。
認識処理時間は実時間比で計測しており、これは認識処理時間を実際に話された時間で割った値であり、小さいほど高速であることを示す。認識処理時間は、Intel Xeon X5570 2.54GHzプロセッサを用いて音声認識を動作させ、8講義(計7.8時間)を認識させたときの時間を計測して求めた。単語誤り率は、実際に話された単語の中で誤って認識した単語の割合を表しており、小さいほど音声認識の精度が高いことを表す。また、遅延時間は、各発話の音声を入力し終えて、結果が出力されるまでの時間を計測し、認識した全発話で平均した値である。
図11の結果において、従来法(1)はNグラム言語モデルのみを用いているので、単語誤り率が26.8%となっており、RNN言語モデルを用いる従来法(2)や本実施形態の単語誤り率24.7%よりも高くなっている。一方、認識処理時間(実時間比)では、従来法(1)が最も小さく(0.38)、次に本実施形態(0.45)、そして従来法(2)(0.58)の順である。そして、遅延時間では、従来法(2)は0.36秒となっている。これは、複数の候補を出力させてRNN言語モデルで再スコア付を行う計算が必要なためである。これに対し、本実施形態は0.02秒とかなり少ない遅延時間で抑えられている。以上より、本実施形態は、RNN言語モデルを用いて単語誤り率を削減しながら、再スコア付を行う従来法(2)と比べて認識処理時間を少なく抑えつつ、大幅に少ない遅延時間で音声認識を行えることが示された。
<その他の変形例>
仮説展開部1006と仮説補正部1011とを併せて、状態遷移合成部と呼んでもよい。状態遷移合成部は、RNN言語モデルに基づくWFSTの状態遷移と、単語辞書WFSTの状態遷移とを合成し、合成した状態遷移の集合を生成するといってもよい。その場合、記号列変換部1005は、合成した状態遷移の集合を参照して、音響特徴記号列を単語列に変換していると言える。
なお、本実施形態の構成は、音声認識装置に限らず、入力記号列を出力記号列に変換する記号列変換装置として利用できる。要は、状態遷移合成部は、RNNモデルに基づくWFSTの状態遷移と、それとは別のWFSTの状態遷移とを合成し、合成した状態遷移の集合を生成する。記号列変換部は、合成した状態遷移の集合を参照して、RNNモデルに基づくWFSTに対する入力記号列とは別の入力記号列を、RNNモデルに基づくWFSTの出力記号列に変換する。
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
<プログラム及び記録媒体>
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (7)

  1. 一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つモデルをリカレントニューラルネットワーク(以下、RNNと呼ぶ)とし、RNNに入力される記号を表すベクトルを第一入力記号とし、最初から現在の一つ前までの第一入力記号の系列である第一入力記号列に対して、現在の第一入力記号の出現確率分布を出力するRNNモデルがRNNモデル格納部に格納されているものとし、
    RNNモデルWFSA状態遷移集合取得部が、変化しうる有限の状態と、入力による状態の遷移を表現する重み付き有限状態オートマトン(以下WFSAともいう)である第一WFSAにRNNモデルを変換するRNNモデルWFSA状態遷移集合取得ステップを含み、
    前記RNNモデルWFSA状態遷移集合取得ステップは、
    遷移元状態となる状態と現在の第一入力記号とを取得するステップと、
    前記遷移元状態から前記現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に前記現在の第一入力記号を割り当てるステップと、
    前記遷移元状態から前記現在の第一入力記号による遷移先状態が未設定であって、かつ、前記現在の第一入力記号の出現確率が計算されていない場合、前記RNNモデルを用いて、前記現在の第一入力記号の出現確率を計算するステップと、
    前記遷移元状態、前記遷移先状態、前記現在の第一入力記号、前記現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成するステップとを含む、
    重み付き有限状態オートマトン作成方法。
  2. 請求項1の重み付き有限状態オートマトン作成方法で作成した第一WFSAに、前記現在の第一入力記号に等しい出力記号を付加した重み付き有限状態変換器である第一WFSTを用いる記号列変換方法であって、
    記号列変換部が、前記第一入力記号とは別の入力記号の系列を、出力記号の系列に変換する記号列変換ステップを含み、
    前記記号列変換ステップは、
    状態遷移合成部が、前記第一WFSTの状態遷移と、前記第一WFSTとは別のWFSTである第二WFSTの状態遷移とを合成し、合成した状態遷移の集合を生成する状態遷移合成ステップを含み、
    前記合成した状態遷移の集合を参照して、前記第一入力記号とは別の入力記号である第二入力記号の系列を、前記出力記号の系列に変換する、
    記号列変換方法。
  3. 請求項2の記号列変換方法を用いる音声認識方法であって、
    前記RNNモデルはRNN言語モデルであり、
    前記第二WFSTは単語辞書WFSTであり、
    前記第二入力記号の系列は、音響特徴記号列であり、
    前記状態遷移合成ステップは、
    仮説展開部が、前記単語辞書WFSTを用いて、音響特徴記号列の音響特徴記号から現在の仮設の集合の各々に新しい状態遷移を追加し新たな仮説を展開する仮説展開ステップと、
    仮説補正部が、新たな仮説の状態遷移過程から出力される単語列を前記第一入力記号列とし、前記第一WFSTを用いて、前記単語列の状態遷移の重みを補正する仮説補正ステップと、を含み、
    前記記号列変換ステップは、
    1つ以上の単語列の中から補正後の重みの累積重みが最小または最大の状態遷移過程に対応する単語列を音声認識結果として決定する、
    音声認識方法。
  4. 一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つモデルをリカレントニューラルネットワーク(以下、RNNと呼ぶ)とし、RNNに入力される記号を表すベクトルを第一入力記号とし、
    最初から現在の一つ前までの第一入力記号の系列である第一入力記号列に対して、現在の第一入力記号の出現確率分布を出力するRNNモデルが格納されるRNNモデル格納部と、
    変化しうる有限の状態と、入力による状態の遷移を表現する重み付き有限状態オートマトン(以下WFSAともいう)である第一WFSAにRNNモデルを変換するRNNモデルWFSA状態遷移集合取得部とを含み、
    前記RNNモデルWFSA状態遷移集合取得部は、
    遷移元状態となる状態と現在の第一入力記号とを取得し、
    前記遷移元状態から前記現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に前記現在の第一入力記号を割り当て、
    前記遷移元状態から前記現在の第一入力記号による遷移先状態が未設定であって、かつ、前記現在の第一入力記号の出現確率が計算されていない場合、前記RNNモデルを用いて、前記現在の第一入力記号の出現確率を計算し、
    前記遷移元状態、前記遷移先状態、前記現在の第一入力記号、前記現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成する、
    重み付き有限状態オートマトン作成装置。
  5. 請求項4の重み付き有限状態オートマトン作成装置で作成した第一WFSAに、前記現在の第一入力記号に等しい出力記号を付加した重み付き有限状態変換器である第一WFSTを用いる記号列変換装置であって、
    前記第一入力記号とは別の入力記号の系列を、出力記号の系列に変換する記号列変換部を含み、
    前記記号列変換部は、
    前記第一WFSTの状態遷移と、前記第一WFSTとは別のWFSTである第二WFSTの状態遷移とを合成し、合成した状態遷移の集合を生成する状態遷移合成部を含み、
    前記合成した状態遷移の集合を参照して、前記第一入力記号とは別の入力記号である第二入力記号の系列を、前記出力記号の系列に変換する、
    記号列変換装置。
  6. 請求項5の記号列変換装置を用いる音声認識装置であって、
    前記RNNモデルはRNN言語モデルであり、
    前記第二WFSTは単語辞書WFSTであり、
    前記第二入力記号の系列は、音響特徴記号列であり、
    前記状態遷移合成部は、
    仮説展開部が、前記単語辞書WFSTを用いて、音響特徴記号列の音響特徴記号から現在の仮設の集合の各々に新しい状態遷移を追加し新たな仮説を展開する仮説展開部と、
    仮説補正部が、新たな仮説の状態遷移過程から出力される単語列を前記第一入力記号列とし、前記第一WFSTを用いて、前記単語列の状態遷移の重みを補正する仮説補正部と、を含み、
    前記記号列変換部は、
    1つ以上の単語列の中から補正後の重みの累積重みが最小または最大の状態遷移過程に対応する単語列を音声認識結果として決定する、
    音声認識装置。
  7. 請求項1の重み付き有限状態オートマトン作成方法、または、請求項2の記号列変換方法、または、請求項3の音声認識方法の各ステップをコンピュータに実行させるためのプログラム。
JP2014024129A 2014-02-12 2014-02-12 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム Active JP6235922B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2014024129A JP6235922B2 (ja) 2014-02-12 2014-02-12 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014024129A JP6235922B2 (ja) 2014-02-12 2014-02-12 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2015152661A true JP2015152661A (ja) 2015-08-24
JP6235922B2 JP6235922B2 (ja) 2017-11-22

Family

ID=53895010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014024129A Active JP6235922B2 (ja) 2014-02-12 2014-02-12 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP6235922B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017167378A (ja) * 2016-03-17 2017-09-21 株式会社東芝 単語スコア計算装置、単語スコア計算方法及びプログラム
CN112002310A (zh) * 2020-07-13 2020-11-27 苏宁云计算有限公司 领域语言模型构建方法、装置、计算机设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005257910A (ja) * 2004-03-10 2005-09-22 Nippon Telegr & Teleph Corp <Ntt> 記号列変換方法及びその記号列変換方法を用いた音声認識方法、並びに記号列変換装置及びその記号列変換装置を用いた音声認識装置
JP2007066237A (ja) * 2005-09-02 2007-03-15 Nippon Telegr & Teleph Corp <Ntt> 記号列変換方法、音声認識方法、音声言い換え方法、記号列変換装置とプログラム、記録媒体
JP2015040864A (ja) * 2013-08-20 2015-03-02 日本電信電話株式会社 記号列変換方法、音声認識方法、それらの装置及びプログラム
JP2015075706A (ja) * 2013-10-10 2015-04-20 日本放送協会 誤り修正モデル学習装置、及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005257910A (ja) * 2004-03-10 2005-09-22 Nippon Telegr & Teleph Corp <Ntt> 記号列変換方法及びその記号列変換方法を用いた音声認識方法、並びに記号列変換装置及びその記号列変換装置を用いた音声認識装置
JP2007066237A (ja) * 2005-09-02 2007-03-15 Nippon Telegr & Teleph Corp <Ntt> 記号列変換方法、音声認識方法、音声言い換え方法、記号列変換装置とプログラム、記録媒体
JP2015040864A (ja) * 2013-08-20 2015-03-02 日本電信電話株式会社 記号列変換方法、音声認識方法、それらの装置及びプログラム
JP2015075706A (ja) * 2013-10-10 2015-04-20 日本放送協会 誤り修正モデル学習装置、及びプログラム

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
GWENOLE LECORVE ET AL.: ""Conversion of Recurrent Neural Network Language Models to Weighted Finite State Transducers for Aut", PROC. OF INTERSPECH2012, JPN6017010468, 13 September 2012 (2012-09-13), pages 1668 - 1671, ISSN: 0003527326 *
堀貴明 他: ""重み付き有限状態トランスデューサによる音声認識"", 情報処理, vol. 45, no. 10, JPN6017010466, 15 October 2004 (2004-10-15), pages 1020 - 1026, ISSN: 0003527327 *
増村亮 他: ""生成型アプローチによるLatent Words Language ModelのN-gram近似"", 情報処理学会研究報告, vol. Vol.2013-SLP-97,No.5, JPN6017010467, 18 July 2013 (2013-07-18), pages 1 - 8, ISSN: 0003664157 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017167378A (ja) * 2016-03-17 2017-09-21 株式会社東芝 単語スコア計算装置、単語スコア計算方法及びプログラム
CN112002310A (zh) * 2020-07-13 2020-11-27 苏宁云计算有限公司 领域语言模型构建方法、装置、计算机设备及存储介质
WO2022012238A1 (zh) * 2020-07-13 2022-01-20 苏宁易购集团股份有限公司 领域语言模型构建方法、装置、计算机设备及存储介质
CN112002310B (zh) * 2020-07-13 2024-03-26 苏宁云计算有限公司 领域语言模型构建方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
JP6235922B2 (ja) 2017-11-22

Similar Documents

Publication Publication Date Title
JP6637078B2 (ja) 音響モデル学習装置、音響モデル学習方法及びプログラム
US10249294B2 (en) Speech recognition system and method
JP6686154B2 (ja) 発話認識方法及び装置
JP2018081298A (ja) 自然語処理方法及び装置と自然語処理モデルを学習する方法及び装置
EP4018437B1 (en) Optimizing a keyword spotting system
US8271282B2 (en) Voice recognition apparatus, voice recognition method and recording medium
JP6831343B2 (ja) 学習装置、学習方法及び学習プログラム
KR20140041735A (ko) 가변길이 문맥을 이용한 음성인식
CN105654940B (zh) 一种语音合成方法和装置
JP2002366187A (ja) 音声認識装置および音声認識方法、並びにプログラムおよび記録媒体
JP2019159654A (ja) 時系列情報の学習システム、方法およびニューラルネットワークモデル
JP6810580B2 (ja) 言語モデル学習装置およびそのプログラム
JP6350935B2 (ja) 音響モデル生成装置、音響モデルの生産方法、およびプログラム
JP6235922B2 (ja) 重み付き有限状態オートマトン作成装置、記号列変換装置、音声認識装置、それらの方法、及びプログラム
JP6646337B2 (ja) 音声データ処理装置、音声データ処理方法および音声データ処理プログラム
JP6082657B2 (ja) ポーズ付与モデル選択装置とポーズ付与装置とそれらの方法とプログラム
JP6158105B2 (ja) 言語モデル作成装置、音声認識装置、その方法及びプログラム
JP4964194B2 (ja) 音声認識モデル作成装置とその方法、音声認識装置とその方法、プログラムとその記録媒体
CN105589843B (zh) 一种文本字串匹配方法及***
JP6568429B2 (ja) 発音系列拡張装置およびそのプログラム
JP2019078857A (ja) 音響モデルの学習方法及びコンピュータプログラム
JP4478088B2 (ja) 記号列変換方法、音声認識方法、記号列変換装置とプログラム、記録媒体
JP2004191705A (ja) 音声認識装置
JP6078435B2 (ja) 記号列変換方法、音声認識方法、それらの装置及びプログラム
JP3440840B2 (ja) 音声認識方法及びその装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160107

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170515

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20171027

R150 Certificate of patent or registration of utility model

Ref document number: 6235922

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150