(57)【要約】【課題】ＲＮＮ言語モデルからＷＦＳＡを生成する方法を提供する。【解決手段】遷移元状態となる状態と現在の第一入力記号とを取得するステップと、遷移元状態から現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に現在の第一入力記号を割り当てるステップと、遷移元状態から現在の第一入力記号による遷移先状態が未設定であって、かつ、現在の第一入力記号の出現確率が計算されていない場合、ＲＮＮモデルを用いて、現在の第一入力記号の出現確率を計算するステップと、遷移元状態、遷移先状態、現在の第一入力記号、現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成するステップとを含む。【選択図】図６
2015152661.tif 000002
【特許請求の範囲】
【請求項１】
一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つモデルをリカレントニューラルネットワーク（以下、ＲＮＮと呼ぶ）とし、ＲＮＮに入力される記号を表すベクトルを第一入力記号とし、最初から現在の一つ前までの第一入力記号の系列である第一入力記号列に対して、現在の第一入力記号の出現確率分布を出力するＲＮＮモデルがＲＮＮモデル格納部に格納されているものとし、
ＲＮＮモデルＷＦＳＡ状態遷移集合取得部が、変化しうる有限の状態と、入力による状態の遷移を表現する重み付き有限状態オートマトン(以下ＷＦＳＡともいう)である第一ＷＦＳＡにＲＮＮモデルを変換するＲＮＮモデルＷＦＳＡ状態遷移集合取得ステップを含み、
前記ＲＮＮモデルＷＦＳＡ状態遷移集合取得ステップは、
遷移元状態となる状態と現在の第一入力記号とを取得するステップと、
前記遷移元状態から前記現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に前記現在の第一入力記号を割り当てるステップと、
前記遷移元状態から前記現在の第一入力記号による遷移先状態が未設定であって、かつ、前記現在の第一入力記号の出現確率が計算されていない場合、前記ＲＮＮモデルを用いて、前記現在の第一入力記号の出現確率を計算するステップと、
前記遷移元状態、前記遷移先状態、前記現在の第一入力記号、前記現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成するステップとを含む、
重み付き有限状態オートマトン作成方法。
【請求項２】
請求項１の重み付き有限状態オートマトン作成方法で作成した第一ＷＦＳＡに、前記現在の第一入力記号に等しい出力記号を付加した重み付き有限状態変換器である第一ＷＦＳＴを用いる記号列変換方法であって、
記号列変換部が、前記第一入力記号とは別の入力記号の系列を、出力記号の系列に変換する記号列変換ステップを含み、
前記記号列変換ステップは、
状態遷移合成部が、前記第一ＷＦＳＴの状態遷移と、前記第一ＷＦＳＴとは別のＷＦＳＴである第二ＷＦＳＴの状態遷移とを合成し、合成した状態遷移の集合を生成する状態遷移合成ステップを含み、
前記合成した状態遷移の集合を参照して、前記第一入力記号とは別の入力記号である第二入力記号の系列を、前記出力記号の系列に変換する、
記号列変換方法。
【請求項３】
請求項２の記号列変換方法を用いる音声認識方法であって、
前記ＲＮＮモデルはＲＮＮ言語モデルであり、
前記第二ＷＦＳＴは単語辞書ＷＦＳＴであり、
前記第二入力記号の系列は、音響特徴記号列であり、
前記状態遷移合成ステップは、
仮説展開部が、前記単語辞書ＷＦＳＴを用いて、音響特徴記号列の音響特徴記号から現在の仮設の集合の各々に新しい状態遷移を追加し新たな仮説を展開する仮説展開ステップと、
仮説補正部が、新たな仮説の状態遷移過程から出力される単語列を前記第一入力記号列とし、前記第一ＷＦＳＴを用いて、前記単語列の状態遷移の重みを補正する仮説補正ステップと、を含み、
前記記号列変換ステップは、
１つ以上の単語列の中から補正後の重みの累積重みが最小または最大の状態遷移過程に対応する単語列を音声認識結果として決定する、
音声認識方法。
【請求項４】
一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つモデルをリカレントニューラルネットワーク（以下、ＲＮＮと呼ぶ）とし、ＲＮＮに入力される記号を表すベクトルを第一入力記号とし、
最初から現在の一つ前までの第一入力記号の系列である第一入力記号列に対して、現在の第一入力記号の出現確率分布を出力するＲＮＮモデルが格納されるＲＮＮモデル格納部と、
変化しうる有限の状態と、入力による状態の遷移を表現する重み付き有限状態オートマトン(以下ＷＦＳＡともいう)である第一ＷＦＳＡにＲＮＮモデルを変換するＲＮＮモデルＷＦＳＡ状態遷移集合取得部とを含み、
前記ＲＮＮモデルＷＦＳＡ状態遷移集合取得部は、
遷移元状態となる状態と現在の第一入力記号とを取得し、
前記遷移元状態から前記現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に前記現在の第一入力記号を割り当て、
前記遷移元状態から前記現在の第一入力記号による遷移先状態が未設定であって、かつ、前記現在の第一入力記号の出現確率が計算されていない場合、前記ＲＮＮモデルを用いて、前記現在の第一入力記号の出現確率を計算し、
前記遷移元状態、前記遷移先状態、前記現在の第一入力記号、前記現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成する、
重み付き有限状態オートマトン作成装置。
【請求項５】
請求項４の重み付き有限状態オートマトン作成装置で作成した第一ＷＦＳＡに、前記現在の第一入力記号に等しい出力記号を付加した重み付き有限状態変換器である第一ＷＦＳＴを用いる記号列変換装置であって、
前記第一入力記号とは別の入力記号の系列を、出力記号の系列に変換する記号列変換部を含み、
前記記号列変換部は、
前記第一ＷＦＳＴの状態遷移と、前記第一ＷＦＳＴとは別のＷＦＳＴである第二ＷＦＳＴの状態遷移とを合成し、合成した状態遷移の集合を生成する状態遷移合成部を含み、
前記合成した状態遷移の集合を参照して、前記第一入力記号とは別の入力記号である第二入力記号の系列を、前記出力記号の系列に変換する、
記号列変換装置。
【請求項６】
請求項５の記号列変換装置を用いる音声認識装置であって、
前記ＲＮＮモデルはＲＮＮ言語モデルであり、
前記第二ＷＦＳＴは単語辞書ＷＦＳＴであり、
前記第二入力記号の系列は、音響特徴記号列であり、
前記状態遷移合成部は、
仮説展開部が、前記単語辞書ＷＦＳＴを用いて、音響特徴記号列の音響特徴記号から現在の仮設の集合の各々に新しい状態遷移を追加し新たな仮説を展開する仮説展開部と、
仮説補正部が、新たな仮説の状態遷移過程から出力される単語列を前記第一入力記号列とし、前記第一ＷＦＳＴを用いて、前記単語列の状態遷移の重みを補正する仮説補正部と、を含み、
前記記号列変換部は、
１つ以上の単語列の中から補正後の重みの累積重みが最小または最大の状態遷移過程に対応する単語列を音声認識結果として決定する、
音声認識装置。
【請求項７】
請求項１の重み付き有限状態オートマトン作成方法、または、請求項２の記号列変換方法、または、請求項３の音声認識方法の各ステップをコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変化しうる有限の状態と、入力による状態の遷移を、図式化した重み付き有限オートマトン(weighted finite state automaton、以下「ＷＦＳＡ」ともいう)の作成技術、その作成方法により作成された重み付き有限オートマトンを用いた記号列の変換技術、音声認識技術に関する。
【背景技術】
【０００２】
ＷＦＳＡとは、変化しうる有限の状態と、入力による状態の遷移を、図式化したものである。
【０００３】
また、重み付き有限状態変換器（Weighted Finite-State Transducer、以下「ＷＦＳＴ」ともいう）は、ＷＦＳＡの拡張であり、状態の遷移は入力、重みに加え、出力を有する。ＷＦＳＴは、記号列を変換するための記号列変換規則を状態と状態遷移によって表現するともいえる。
【０００４】
従来、音声認識において、入力音声の音響パターンを表す記号列を入力、その音響パターンに対応する単語列を出力とするＷＦＳＴに、Ｎグラムモデルで表される言語モデルのＷＦＳＴを合成して、記号列変換を行うことで、音響的にも言語的にも妥当な単語列（音声認識結果）に変換する方法が知られている（非特許文献１及び特許文献１参照）。
【０００５】
一方で、Ｎグラムモデル以外の言語モデルとして、リカレントニューラルネットワーク言語モデルがある。リカレントニューラルネットワーク(英訳Recurrent Neural Network:以下「ＲＮＮ」ともいう）は多層ニューラルネットワークの一種であり、中間層のニューロンに再帰的な結合を持つのが特徴である。このＲＮＮ言語モデルは、Ｎグラム言語モデルと併せて用いることで音声認識の精度を大きく向上させることが知られている（非特許文献２）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−６６２３７号公報
【非特許文献】
【０００７】
【非特許文献１】堀，塚田，「重み付き有限状態トランスデューサによる音声認識」, 情報処理学会誌,  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.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献１および特許文献１では、Ｎグラム言語モデルのＷＦＳＴを用いた記号列変換方法および音声認識方法が開示されているが、非特許文献２のＲＮＮ言語モデルをＷＦＳＴに変換する方法は知られておらず、ＲＮＮ言語モデルをＷＦＳＴに基づく効率的な記号列変換に適用することはできなかった。従来、ＲＮＮ言語モデルを用いる記号列変換方法では、Ｎグラム言語モデルを用いた記号列変換により複数の出力記号列の候補を求め、各候補のスコアをＲＮＮ言語モデルによって付け直すことにより、最もスコアの高くなった候補を結果として出力していた。しかし、入力記号列を最後まで読み込むまでは複数の出力記号列候補を出力させることはできないので、ＲＮＮ言語モデルによる各出力記号列候補へのスコア付けは、入力記号列を読み終えるまで始めることができない。音声認識の場合は、話し終えた後で認識結果が出力されるまでに遅延が生じることになるので、システムの応答に遅れが生じ、オンラインのシステムとしては使い辛く、利用範囲が限られるという問題がある。
【０００９】
本発明は、ＲＮＮ言語モデルからＷＦＳＡを生成する方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記の課題を解決するために、本発明の一態様によれば、一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つモデルをリカレントニューラルネットワーク（以下、ＲＮＮと呼ぶ）とし、ＲＮＮに入力される記号を表すベクトルを第一入力記号とし、最初から現在の一つ前までの第一入力記号の系列である第一入力記号列に対して、現在の第一入力記号の出現確率分布を出力するＲＮＮモデルがＲＮＮモデル格納部に格納されているものとし、重み付き有限状態オートマトン作成方法は、ＲＮＮモデルＷＦＳＡ状態遷移集合取得部が、変化しうる有限の状態と、入力による状態の遷移を表現する重み付き有限状態オートマトン(以下ＷＦＳＡともいう)である第一ＷＦＳＡにＲＮＮモデルを変換するＲＮＮモデルＷＦＳＡ状態遷移集合取得ステップを含む。ＲＮＮモデルＷＦＳＡ状態遷移集合取得ステップは、遷移元状態となる状態と現在の第一入力記号とを取得するステップと、遷移元状態から現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に現在の第一入力記号を割り当てるステップと、遷移元状態から現在の第一入力記号による遷移先状態が未設定であって、かつ、現在の第一入力記号の出現確率が計算されていない場合、ＲＮＮモデルを用いて、現在の第一入力記号の出現確率を計算するステップと、遷移元状態、遷移先状態、現在の第一入力記号、現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成するステップとを含む。
【００１１】
上記の課題を解決するために、本発明の他の態様によれば、一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つモデルをリカレントニューラルネットワーク（以下、ＲＮＮと呼ぶ）とし、ＲＮＮに入力される記号を表すベクトルを第一入力記号とし、重み付き有限状態オートマトン作成装置は、最初から現在の一つ前までの第一入力記号の系列である第一入力記号列に対して、現在の第一入力記号の出現確率分布を出力するＲＮＮモデルが格納されるＲＮＮモデル格納部と、ＲＮＮモデルＷＦＳＡ状態遷移集合取得部が、変化しうる有限の状態と、入力による状態の遷移を表現する重み付き有限状態オートマトン(以下ＷＦＳＡともいう)である第一ＷＦＳＡにＲＮＮモデルを変換するＲＮＮモデルＷＦＳＡ状態遷移集合取得部とを含む。ＲＮＮモデルＷＦＳＡ状態遷移集合取得部は、遷移元状態となる状態と現在の第一入力記号とを取得し、遷移元状態から現在の第一入力記号による遷移先状態が未設定の場合、新たな状態を作成し、遷移先状態として新たに作成した状態を設定し、新たに作成した状態に現在の第一入力記号を割り当て、遷移元状態から現在の第一入力記号による遷移先状態が未設定であって、かつ、現在の第一入力記号の出現確率が計算されていない場合、ＲＮＮモデルを用いて、現在の第一入力記号の出現確率を計算し、遷移元状態、遷移先状態、現在の第一入力記号、現在の第一入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成する。
【発明の効果】
【００１２】
本発明によれば、ＲＮＮ言語モデルからＷＦＳＡを生成することができる。
【図面の簡単な説明】
【００１３】
【図１】WFSTの一例を示す図。
【図２】WFSTを表によって示す図。
【図３】一つのWFSTを用いた記号列変換の一例を示す図。
【図４】WFSTを用いた記号列変換手順を示す図。
【図５】ＲＮＮ言語モデルを説明するための図。
【図６】第一実施形態に係る記号列変換装置の機能ブロック図。
【図７】ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部の処理フローの一例を示す図。
【図８】ＲＮＮ言語モデルＷＦＳＴから変換したＷＦＳＴの状態と状態遷移の例を示す図。
【図９】第一実施形態に係る記号列変換装置において、ＲＮＮ言語モデルＷＦＳＴから変換したＷＦＳＴの状態と状態遷移の例を示す図。
【図１０】第二実施形態に係る音声認識装置の機能ブロック図。
【図１１】第二実施形態に係る音声認識装置の効果を説明するための図。
【発明を実施するための形態】
【００１４】
以下、本発明の実施形態について説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
【００１５】
＜第一実施形態＞
＜第一実施形態のポイント＞
本実施形態では、ＲＮＮ言語モデルを次の手順でＷＦＳＴに変換し、記号列変換を行う。
（１）初めに初期状態を作成する。このとき入力記号の系列（以下、「入力記号列」ともいう）の始まりを表す記号を割り当てておいてもよい。
（２）遷移元状態から入力記号による遷移先状態として、新たな状態を作成し、新たに作成した状態に入力記号を割り当てる。ＲＮＮモデルを用いて、入力記号の出現確率を計算する。遷移元状態、遷移先状態、入力記号および入力記号に等しい出力記号、入力記号の出現確率もしくはそれを引数に取る関数を重みとして含む状態遷移を作成する。
（３）入力記号列が与えられ、その記号列変換を行う過程で、必要な状態やある入力記号に対応する状態遷移を必要なときに（２）の手順でＷＦＳＴに変換して取り出す。
【００１６】
＜前提知識＞
第一実施形態について説明する前に、その前提となる知識について説明する。
【００１７】
WFSTは、(1)状態と、(2)状態から状態へと遷移できることを表す状態遷移、(3)状態遷移において受理される入力記号、(4)その際に出力される出力記号、及び、(5)その状態遷移の重みの集合によって定義される。WFSTは、ある入力記号列が与えられたときに、初期状態からその入力記号列の記号を順に受理する状態遷移に従って出力記号を出力しながら状態遷移を繰り返し、終了状態に達すると終了するモデルである。形式的にはWFSTは次の８つの組（Ｑ，Σ，△，ｉ，Ｆ，Ｅ，λ，ρ）によって定義される。
１．Ｑは有限の状態の集合。
２．Σは入力記号の有限の集合。
３．△は出力記号の有限の集合。
４．ｉ∈Ｑは初期状態。
５．Ｆ∈Ｑは終了状態の集合。
６．Ｅ∈Ｑ×Σ×△×Ｑは、現状態から入力記号により、出力記号を出力して次状態に遷移する状態遷移の集合。
７．λは初期重み。
８．ρ（ｑ）は終了状態ｑの終了重み。ｑ∈Ｆ。
【００１８】
WFSTの一例を図１に示す。
【００１９】
図１において、１０は、マル（“○”）で表された状態を示しており、そのマルの中の数字はその状態の番号を表している。１１は、二重マル（“◎”）で表された終了状態を示しており、その二重マルの中の数字は、その終了状態の番号と状態遷移が終了して最後に累積される終了重みが“（状態番号）／（終了重み）”のように表されている。以後、状態の番号を用いて状態を指し示す場合は、単に状態とその番号を用いて“状態０”や“状態３”のように称す。１２は、各状態を結ぶ矢印（“→”）で表された状態遷移を示しており、各々の状態遷移に付与された記号や数字は、その状態遷移に関連付けられた入力記号、出力記号、重みを“（入力記号）：（出力記号）／（重み）”のように表したものである。
【００２０】
図２のように、図１のWFSTを表によって定義することもできる。図２は、各行が一つの状態遷移を表し、その状態遷移における遷移元（現状態）の状態番号と遷移先（次状態）の状態番号、入力記号、出力記号、重みが記されている。最終状態（図１では状態３）は、遷移先、入力記号、出力記号を空とし、状態遷移終了時に累積される重み（終了重み）を記されている。一般に、WFSTの初期状態は状態０とされ、初期重みλも省略されることが多い。そのため、本実施形態でも初期状態を状態０とし、初期重みを省略して明記しないこととする。
【００２１】
図１のWFSTは、例えば、入力記号列ａ，ａ，ｂ，ｃを出力記号列ｄ，ｄ，ｃ，ｂに変換することができ、その際の状態遷移過程は、状態番号の系列を用いて表すと０，０，１，３であり、重みの累積値（以下「累積重み」と称す）は、０．５＋０．５＋０．３＋１＋０．５＝２．８となる。しかし、図１のWFSTでは、ａ，ａ，ｂ，ｃという入力記号列に対しては、０，０，１，３と０，０，２，３の２通りの状態遷移過程が考えられる。一般に、ある入力記号列に対して複数の状態遷移の可能性がある場合（これを非決定性という）は、状態遷移過程における累積重みが最小または最大になる状態遷移過程を選択し、その累積重みが最小または最大の状態遷移過程に対応する出力記号列を選択する。状態遷移の可能性が高いものに対してより大きい重みを設定する場合には、累積重みが最大の状態遷移過程に対応する出力記号列を選択し、状態遷移の可能性が高いものに対してより小さい重みを設定する場合には、累積重みが最小の状態遷移過程に対応する出力記号列を選択すればよい。図１の例においても、ａ，ａ，ｂ，ｃという入力記号列に対して累積重みが最も小さい状態遷移過程０，０，１，３を選んで、変換結果をｄ，ｄ，ｃ，ｂとする。
【００２２】
ある重み付き有限状態変換器Ａがあり、この重み付き有限状態変換器Ａに対して記号列Ｘが入力記号列として与えられたとき、累積重みが最小となる出力記号列（すなわち記号列変換結果）を求めるには、次の累積重みの最小値Ｗ（Ｘ）を計算する必要がある。
【００２３】
【数１】
2015152661.tif 000003
【００２４】
ここで、Ｗ（Ｘ→Ｙ；Ａ）は、重み付き有限状態変換器Ａによって記号列Ｘが記号列Ｙに変換されるときの状態遷移過程における累積重みを表す。この累積重みＷ（Ｘ→Ｙ；Ａ）の最小値Ｗ（Ｘ）を求めて、その最小値を与える記号列Ｙが記号列変換結果となる。この記号列変換結果を求めるには、入力記号列によって初期状態から終了状態に至るコスト（累積重み）が、最小または最大の状態遷移過程を探し出すことによって行われる。この手順は、例えば、特許文献１に開示されている。
【００２５】
一つのWFSTを用いた記号列変換装置の機能ブロック図の一例を図３に示す。
【００２６】
まず、本明細書において、“仮説”とは、ある記号列を構成する記号が順に入力され（読み込まれ）、現時点までに読み込まれた入力記号列に対して、WFSTにおいて初期状態からその入力記号列によって状態遷移を繰り返した場合の可能性のある一つの状態遷移過程を表すものとする。
【００２７】
記号列入力部１０３は、入力記号列を構成する記号を先頭から順に一つずつ読み込み（取得し）、仮説展開部１０４に送る。
【００２８】
仮説展開部１０４は、記号列入力部１０３で取得した記号とＷＦＳＴ格納部１０１から読み込んだＷＦＳＴに従って、これまで読み込んだ記号列に対する仮説の集合を新たに受け取った記号を用いて各仮説の状態遷移過程を更新することにより新たな仮説を生成し、仮説絞込み部１０５に送る。
【００２９】
仮説絞込み部１０５は、仮説展開部１０４から受け取った仮説の集合に対し、同じ状態に到達している仮説の中で累積重みが最小または最大の仮説以外の仮説を削除することにより仮説を絞り込む。仮説絞込み部１０５は、入力記号列が最後まで読み込まれていれば、累積重みが最小または最大の仮説に対応する出力記号列を記号列出力部１０６に送る。入力記号列が最後まで読み込まれていなければ、仮説を仮説展開部１０４に送る。
【００３０】
記号列出力部１０６は、仮説絞込み部１０５から受け取った出力記号列を記号列変換結果として出力する。
【００３１】
次に、この実施の形態に基づいて記号列を変換する手順の一例を示す。
【００３２】
まず、WFSTのある状態遷移をｅと表すとき、ｎ[ｅ]を遷移先の状態（次状態）、ｉ[ｅ]を入力記号、ｏ[ｅ]を出力記号、ｗ[ｅ]を重みと定義する。また、ある仮説をｈと表わすとき、ｓ[ｈ]をその状態遷移過程において到達している状態、Ｗ[ｈ]をその状態遷移過程における累積重み、Ｏ[ｈ]をその状態遷移過程において出力されている記号列とする。
【００３３】
この手順において、仮説は仮説のリスト（以後これを「仮説リスト」と呼ぶ）を用いて管理する。仮説リストに対し、仮説を挿入したり、仮説を取り出したりすることができる。但し、仮説リストに仮説を挿入する場合に、仮説リスト内に同じ状態に到達している仮説があれば、累積重みの小さいほうまたは大きいほうだけを仮説リストに残し、仮説を絞り込む。
【００３４】
WFSTを用いた記号列変換手順を図４に示す。
【００３５】
以下、WFSTを用いる記号列変換の例（図３）の各部がどのような手順で処理を行うか、図４を用いて説明する。
【００３６】
ステップＳ１０１より開始し、初期設定として、ステップＳ１０２において空の仮説リストＨとＨ’とを生成する。ステップＳ１０３において、初期の仮説ｈ（ｈは仮説展開部１０４において更新する前の仮説を表す）を生成し、状態ｓ[ｈ]＝０（WFSTの初期状態）、累積重みＷ[ｈ]＝０、出力記号列Ｏ[ｈ]＝φ（ここではφは空の記号列を表す）とし、仮説リストＨに挿入する。
【００３７】
ステップＳ１０４では、記号列入力部１０３は、入力記号列に含まれる記号を一つ読み込み、その記号をｘに代入し、仮説展開部１０４に出力する。次のステップＳ１０５からＳ１０８は、仮説展開部１０４において実行される。
【００３８】
ステップＳ１０５では、仮説リストＨから仮説を一つ取り出し仮説ｈに代入し、状態ｓ[ｈ]から入力記号がｘに等しい状態遷移のリスト（以下、「状態遷移リスト」ともいう）Ｅを用意する。
【００３９】
ステップＳ１０６では、状態遷移リストＥ＝φ（ここではφは空のリストを表す）であればＳ１１０に進む。そうでなければ、Ｓ１０７に進み、状態遷移リストＥから状態遷移を一つ取り出し、ｅに代入する。
【００４０】
ステップＳ１０８で新たな仮説ｆ（ｆは仮説展開部１０４において更新した後の仮説を表す）を生成し、状態ｓ[ｆ]＝ｎ[ｅ]、累積重みＷ[ｆ]＝Ｗ[ｈ]＋ｗ[e]、出力記号列Ｏ[ｆ]＝Ｏ[ｈ]・ｏ[ｅ]とし、仮説絞込み部１０５に出力する。ここで、“・”は二つの記号または記号列を接続し、一つの記号列にする演算を表す。
【００４１】
ステップＳ１０９は、仮説絞込み部１０５で実行され、仮説ｆを仮説リストＨ’に挿入することにより仮説を絞り込む。例えば、仮説リストＨ’内に同じ状態に到達している仮説があれば、累積重みの小さいほうまたは大きいほうだけを仮説リストＨ’に残し、仮説を絞り込む。
【００４２】
ステップＳ１０９からＳ１０６に戻り、次の状態遷移について仮説を展開する。
【００４３】
ステップＳ１１０では、仮説リストＨ＝φ（すべての仮説を展開済み）であればＳ１１１に進む。そうでなければＳ１０６に戻り、次の仮説ｈを展開する。
【００４４】
ステップＳ１１１では、新たに生成された仮説リストＨ’の要素を、すでに空となった仮説リストＨにすべて移し、Ｓ１１２に進む。
【００４５】
ステップＳ１１２では、記号列入力部１０３において次の入力記号が存在するならばＳ１０４に戻り、そうでなければ、入力記号列がすべて読み込まれたと判断しＳ１１３に進む。
【００４６】
ステップＳ１１３では、仮説リストＨの中で終了状態に到達している仮説の累積重みにその終了状態の終了重みを加えた後で、その終了状態に到達している仮説の中から累積重み（Ｗ[ｈ]）が最小となる仮説ｈを選び、その出力記号列Ｏ[ｈ]を記号列変換結果として、記号列出力部１０６が出力する。
【００４７】
ステップＳ１１４にてWFSTを用いる記号列変換手順を終了する。
【００４８】
[記号列変更例]
この記号列変換手順に従って、図１のWFSTに入力記号列ａ，ａ，ｂ，ｃが与えられた場合の出力記号列を求める過程を順を追って説明する。但し、ここでは、現状態番号ｓ、出力記号列Ｏ、累積重みＷの仮説がある場合、その仮説を（ｓ，Ｏ，Ｗ）のように表すものとする。また、WFSTのある状態遷移（現状態番号ｓ、次状態番号ｎ、入力記号ｘ、出力記号ｙ、重みｗ）を＜ｓ→ｎ，ｘ：ｙ／ｗ＞と表すものとする。また、この例では、累積重みが最小の状態遷移過程に対応する出力記号列を記号列変換結果として選択するものとする。
【００４９】
Ｓ１０１から開始し、Ｓ１０２で空の仮説リストＨ及びＨ’を作る。
【００５０】
Ｓ１０３により仮説リストＨの中の仮説（０，φ，０）を挿入する。
【００５１】
（記号“ａ”読み込み）
Ｓ１０４で記号ａを読み込みｘと置く。Ｓ１０５において仮説リストＨから仮説（０，φ，０）を取り出す。この仮説の現状態０から入力記号がａに等しい状態遷移＜０→０，ａ：ｄ／０．５＞を含む状態遷移リストＥを作る（図１参照）。
【００５２】
Ｓ１０６で状態遷移リストＥ＝φではないのでＳ１０７に進み、状態遷移＜０→０，ａ：ｄ／０．５＞を取り出し、Ｓ１０８で新たな仮説（０，ｄ，０．５）を生成し、Ｓ１０９で仮説リストＨ’に挿入する。
【００５３】
Ｓ１０６に戻り、状態遷移リストＥ＝φであるためＳ１１０に進み、仮説リストＨ＝φであるためＳ１１１に進む。仮説リストＨ’の要素（０，ｄ，０．５）を仮説リストＨに移し、Ｓ１１２で次の入力記号が存在するのでＳ１０４に戻る。
【００５４】
続いて、Ｓ１０４で記号ａを読み込みｘと置く。Ｓ１０５において仮説リストＨから仮説（０，ｄ，０．５）を取り出す。この仮説の現状態０から入力記号がａに等しい状態遷移＜０→０，ａ：ｄ／０．５＞を含む状態遷移リストＥを生成する。
【００５５】
Ｓ１０６でＥ＝φではないのでＳ１０７に進み、状態遷移リストＥから状態遷移＜０→０，ａ：ｄ／０．５＞を取り出す。Ｓ１０８で新たな仮説（０，ｄｄ，１）を生成し、Ｓ１０９で仮説リストＨ’に挿入する。
【００５６】
Ｓ１０６に戻り、状態遷移リストＥ＝φであるためＳ１１０に進み、仮説リストＨ＝φであるためＳ１１１に進む。仮説リストＨ’の要素（０，ｄｄ，１）を仮説リストＨに移し、Ｓ１１２で次の入力記号が存在するのでＳ１０４に戻る。
【００５７】
（記号“ｂ”読み込み）
続いて、Ｓ１０４で記号ｂを読み込みｘと置く。Ｓ１０５において仮説リストＨから仮説（０，ｄｄ，１）を取り出す。この仮説の現状態０から入力記号がｂに等しい状態遷移＜０→１，ｂ：ｃ／０．３＞と＜０→２，ｂ：ｂ／１＞とを含む状態遷移リストＥを作る。
【００５８】
Ｓ１０６で状態遷移リストＥ＝φではないのでＳ１０７に進み、状態遷移リストＥから、一つ目の状態遷移＜０→１，ｂ：ｃ／０．３＞を取り出す。Ｓ１０８で新たな仮説（１，ｄｄｃ，１．３）を生成し、Ｓ１０９で仮説リストＨ’に挿入する。
【００５９】
Ｓ１０６に戻り、状態遷移リストＥ＝φではないのでＳ１０７に進み、状態遷移リストＥから二つ目の状態遷移＜０→２，ｂ：ｂ／１＞を取り出す。Ｓ１０８で新たな仮説（２，ｄｄｂ，２）を生成して、Ｓ１０９で仮説リストＨ’に挿入する。
【００６０】
Ｓ１０６に戻り状態遷移リストＥ＝φであるためＳ１１０に進み、仮説リストＨ＝φであるためＳ１１１に進み、仮説リストＨ’の要素（１，ｄｄｃ，１．３）と（２，ｄｄｂ，２）とは仮説リストＨに移され、Ｓ１１２で次の入力記号が存在するのでＳ１０４に戻る。
【００６１】
（記号“ｃ”読み込み）
続いて、Ｓ１０４で記号ｃを読み込みｘと置く。Ｓ１０５において仮説リストＨから一つ目の仮説（１，ｄｄｃ，１．３）を取り出す。この仮説の現状態１から入力記号がｃに等しい状態遷移＜１→３，ｃ：ｂ／１＞を含む状態遷移リストＥを作る。
【００６２】
Ｓ１０６でＥ＝φではないのでＳ１０７に進み、状態遷移リストＥから状態遷移＜１→３，ｃ：ｂ／１＞を取り出す。Ｓ１０８で新たな仮説（１，ｄｄｃｂ，２．３）を生成し、Ｓ１０９で仮説リストＨ’に挿入する。
【００６３】
Ｓ１０６に戻り、状態遷移リストＥ＝φであるためＳ１１０に進み、仮説リストＨ≠φであるためＳ１０５に戻り、仮説リストＨから二つ目の仮説（２，ｄｄｂ，２）を取り出す。この仮説の現状態２から入力記号がｃに等しい状態遷移＜２→３，ｃ：ａ／０．６＞を含む状態遷移リストＥを作る。
【００６４】
Ｓ１０６で状態遷移リストＥ＝φではないのでＳ１０７に進み、状態遷移リストＥから状態遷移＜２→３，ｃ：ａ／０．６＞を取り出す。Ｓ１０８で新たな仮説（３，ｄｄｂａ，２．６）を生成し、Ｓ１０９で仮説リストＨ’に挿入する。このとき、仮説リストＨ’の中には既に仮説（３，ｄｄｃｂ，２．３）が含まれており、仮説（３，ｄｄｂａ，２．６）は同じ状態３に到達しているので、累積重みの小さい仮説（３，ｄｄｃｂ，２．３）を残し、仮説（３，ｄｄｂａ，２．６）は仮説リストＨ’から削除する。
【００６５】
Ｓ１０６に戻り、状態遷移リストＥ＝φであるため、Ｓ１１０に進み、仮説リストＨ＝φであるためＳ１１１に進む。Ｓ１１１で仮説リストＨ’の要素（３，ｄｄｃｂ，２．３）を仮説リストＨに移し、Ｓ１１２で次の入力記号が存在しないのでＳ１１３に進む。
【００６６】
Ｓ１１３で、仮説リストＨ内の仮説（３，ｄｄｃｂ，２．３）の到達状態３は終了状態であるため、終了重みを加えて（３，ｄｄｃｂ，２．８）とし、この仮説が終了状態に到達した唯一の仮説であり、累積重みが最小となるので、その出力記号列ｄｄｃｂを変換結果として出力し、Ｓ１１４で記号列変換処理を終了する。
【００６７】
このような記号列変換では、記号列の出現確率を求めるモデル（言語モデル）を利用することが多い。一般には、記号のＮ個連鎖確率に基づいて記号列の出現確率を計算するＮグラム言語モデルをＷＦＳＴに変換して利用する。
【００６８】
＜ＲＮＮ言語モデル＞
一方、記号列の出現確率を計算する言語モデルとして、ＲＮＮ言語モデルがある。このモデルはＮグラム言語モデルとは異なり、記号のＮ個連鎖確率を用いるのではなく、記号列を初めから順に現在の一つ前の記号まで読み込んだときの記号列（全履歴）に対して、その次に出現する現在の記号の確率を予測する。
【００６９】
ＲＮＮは、一つの入力層、一つ以上の中間層、および一つの出力層を持ち、少なくとも一つの中間層の中でニューロンが相互に結合された再帰結合を持つ。そして、ＲＮＮ言語モデルは、ＲＮＮに入力記号列の各記号を順次入力し、現在の一つ前の記号を表すベクトルと、その時の中間層の各ニューロンの活性度を用いて、現在の記号の出現確率を計算する。
【００７０】
各層には複数のニューロンがあり、それぞれ上位や下位、もしくは同じ層にあるニューロンと結合されている。各ニューロンは、発火している度合を表す活性度（実数値）を持つ。結合されたニューロン間には結合の強さを表す結合重み（実数値）が割り当てられる。各ニューロンの活性度は、結合重みを掛けた値として結合先のニューロンに伝播される。
【００７１】
次に、ＲＮＮ言語モデルによって記号列の出現確率を計算する方法を説明する。
【００７２】
まず、Ｌ層からなるＲＮＮがあり、１層目が入力層、２〜Ｌ−１層目が中間層、Ｌ層目が出力層である。また、ｎ番目の層（１≦ｎ≦Ｌ）にはＨｎ個のニューロンが含まれるものとする。そして、ｍ番目の層のｊ番目のニューロンからｎ番目の層のｋ番目のニューロンへの結合重みをｗ（ｍ，ｎ）［ｊ，ｋ］で表すものとする。但し、１≦ｍ≦ｎ≦Ｌ，１≦ｊ≦Ｈｍ，１≦ｋ≦Ｈｎとする。なお、本実施形態では、ＲＮＮ言語モデルは、入力層側から出力層側に（下位から上位に）向かって結合する。入力記号はベクトルで表現され、その各要素の値を入力層のニューロンの活性度とする。従って、各記号を表すベクトルの次元数と入力層のニューロンの数は同一である。例えば、入力として取りうる値の種類数を、入力記号のベクトルの次元数とし、入力に対応する要素を１とし、他の要素を０とするベクトルを入力記号とする。入力層は、そのベクトル（入力記号）の次元数と同一のニューロンを持ち、入力層の各ニューロンと入力記号の各要素とが対応し、各要素の値を対応するニューロンの活性度とする。なお、中間層の各ニューロンと入力記号の各要素とは対応しない。
【００７３】
入力記号列Ｘ＝ｘ１，…，ｘｔ，…，ｘＴがあり、その１番目から順にｔ番目の入力記号ｘｔを読み込んだ時、入力層のｉ番目のニューロンの活性度ｈ１（ｔ）［ｉ］は、
【００７４】
【数２】
2015152661.tif 000004
【００７５】
となる。なお、ｘｔ［ｉ］はｔ番目の入力記号ｘｔの第ｉ次元目の要素の値を表す。
【００７６】
そして、ｎ番目の層（１＜ｎ≦Ｌ）のｋ番目のニューロンの活性度ｈｎ（ｔ）［ｋ］は、そのニューロンに結合されたｎ−１番目の層に存在する全てのニューロンに対して、その活性度に結合重みを掛けて総和をとることで次式のように計算される。
【００７７】
【数３】
2015152661.tif 000005
【００７８】
ここで、ｆ（ｘ）は活性化関数と呼ばれ、通常は活性度を０と１の間に正規化するためのシグモイド関数
【００７９】
【数４】
2015152661.tif 000006
【００８０】
を用いる。但し、出力層の活性度を求める場合は一般に活性度を確率と見なすためにソフトマックス関数
【００８１】
【数５】
2015152661.tif 000007
【００８２】
が用いられる。ここで、分母は活性度を確率と見なすための正規化項であり、ｚｎ［ｋ］はｋ番目のニューロンに対してｎ−１層目から結合されたニューロンの活性度の重み付き和を表し、
【００８３】
【数６】
2015152661.tif 000008
【００８４】
のように計算される。これは式（２）のシグモイド関数ｆ（）の中身と同じである。
【００８５】
一方、中間層において同じ層内のニューロンとの再帰的な結合がある場合は、ｔ−１番目の記号ｘｔ−１を読み込んだときの中間層における活性度ｈｎ（ｔ−１）を与える。すなわち、
【００８６】
【数７】
2015152661.tif 000009
【００８７】
のように、右辺のシグモイド関数（）内の第２項には、ｔ−１の添え字が付いた活性度ｈｎ（ｔ−１）［ｋ］が再帰的な活性度として同じ層内のニューロンに重み付きで伝搬される。要は、中間層において同じ層内のニューロンとの再帰的な結合がある場合は、その中間層内に存在するニューロンの活性度ｈｎ（ｔ）を式（６）により求める。
【００８８】
ＲＮＮ言語モデルでは、出力層の個々のニューロンは固有の記号に対応している。例えば、入力として取りうる値の種類数と出力として取りうる値の種類数とが同じ場合には、入力層と出力層のニューロンの総数を同じとし、出力層の各ニューロンを、入力層の各ニューロンに対応するものとすればよい。ＲＮＮ言語モデルでは、予測される次の記号の出現確率は、その記号に対応するニューロンの活性度として求められる。すなわち、入力記号列ｘ１…ｘｔを読み込んだ後で、記号ｖｋが出現する確率は、
【００８９】
【数８】
2015152661.tif 000010
【００９０】
となる。但し、記号ｖｋは出力層のｋ番目のニューロンに対応する記号を表す。
【００９１】
なお、ＲＮＮのパラメタは、各ニューロンを繋ぐ結合重みであり、記号列の学習データを用いて誤差逆伝搬法を用いて推定される。
【００９２】
図５は、入力層、中間層、出力層を各一層ずつ持つＲＮＮ言語モデルを表している。ここで、中間層は自分自身に戻る再帰的な結合を持っている。入力層の各ニュートンには、入力記号の各要素の値がそれぞれ活性度として与えられる。なお、ＲＮＮ言語モデルでは、入力記号は一般に０または１の値を要素とするベクトルとして表現される。例えば、考慮する全ての記号の数（語彙サイズ）と同じだけのニューロンを用意しておき、入力記号に対応するニューロンの活性度だけが１、他のニューロンの活性度は０を取るように設定することができる。この場合、仮に考慮する入力記号の種類をＡ，Ｂ，Ｃとすると、入力層のニューロンは３つ必要であり、記号Ａ、記号Ｂ、記号Ｃに対応する入力記号（ベクトル）は、それぞれ、
【００９３】
【数９】
2015152661.tif 000011
【００９４】
のように表せる。但し、ベクトルの１次元目がＡ、２次元目がＢ、３次元目がＣに対応するものとする。また、図５では入力層のニューロンの左側から順にベクトルの１、２、３次元目の要素が活性度になるように対応している。
【００９５】
中間層には再帰的な結合があるので、各ニューロンの活性度は式（６）に従って計算する。但し、最初の記号を読み込んだとき、すなわちｔ＝１のときはｈｎ（ｔ−１）［ｋ］＝０とし、ｈｎ（ｔ−１）［ｋ］がない式（２）に従って活性度を計算する。出力層のニューロンの活性度は式（２）に従って計算し、活性化関数には式（４）のソフトマックス関数を用いる。出力層のニューロンは、左から順に記号Ａ，Ｂ，Ｃに対応している。
【００９６】
ＲＮＮの中間層のニューロンの活性度は再帰的な結合により再び中間層のニューロンへ伝搬されることから、中間層のニューロンの活性度には、現在までに読み込んだ入力記号列の特徴が記憶される。従って、ＲＮＮ言語モデルは入力記号列の最初から現在までの履歴に依存した入力記号の出現確率を求めることができる。これは、過去のＮ−１個の記号のみから次の記号を予測するＮグラムモデル（Ｎは高々３か４）よりも長い文脈を考慮した記号出現確率を求めることが可能なモデルとなっている。
【００９７】
なお、ＲＮＮの中間層のニューロンの総数は少なすぎると精度が悪くなることがあり、多すぎると学習が上手くいかないことがあるので、実験等により予め適切な値を求めておけばよい。例えば２００〜３００個程度に設定する。また、中間層の総数も実験等により予め適切な値を求めておけばよく、例えば、１層に設定する。
【００９８】
＜第一実施形態＞
図６は本実施形態の記号列変換装置の機能ブロック図である。記号列入力部１０３、仮説展開部１０４、仮説絞込み部１０５、記号列出力部１０６の機能構成は図１の記号列変換装置と同様である。ＷＦＳＴを格納する格納部１０１に代えて、本実施形態では、ＲＮＮ言語モデル格納部６０７と初期状態取得部６０８、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９、および終了状態判定部６１０を含む。このような構成により、ＷＦＳＴを参照する代わりに、状態遷移集合取得部６０９によってＲＮＮ言語モデルから必要な部分のＷＦＳＴの状態および状態遷移を取得する処理に置き換えられている点が異なる。これにより、ＲＮＮ言語モデルを用いた効率的な記号列変換が可能である。以下、各部について説明する。
【００９９】
＜ＲＮＮ言語モデル格納部６０７＞
ＲＮＮ言語モデル格納部６０７には、ＲＮＮ言語モデルが格納されている。例えば、ＲＮＮの構造に関する情報（層の数、各層のニューロンの数など）やパラメタ（ニューロン間の結合重み）が記憶されている。
【０１００】
＜記号列入力部１０３＞
記号列入力部１０３は、入力記号列を構成する記号を先頭から順に一つずつ読み込み（取得し）、仮説展開部１０４に送る。
【０１０１】
＜仮説展開部１０４＞
仮説展開部１０４は、記号列入力部１０３から記号ｘを受け取る。仮説展開部１０４は、記号列入力部１０３で取得した記号ｘとＷＦＳＴ格納部１０１から読み込んだＷＦＳＴに従って、これまで読み込んだ記号列に対する仮説の集合を新たに受け取った記号ｘを用いて各仮説の状態遷移過程を更新することにより新たな仮説を生成し、仮説絞込み部１０５に送る。例えば、以下のようにして仮説を展開する。
【０１０２】
まだ仮説を生成していない場合（言い換えると、１番目の記号を受け取った場合）には、仮説展開部１０４は、まず、後述する初期状態取得部６０８に、ＷＦＳＴの初期状態を取得するように指示し、初期状態取得部６０８からＷＦＳＴの初期状態の状態番号を取得する。仮説展開部１０４は、次に、取得した初期状態の状態番号と記号列入力部１０３から受け取った記号ｘとを後述するＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９に送り、初期状態から記号ｘにより遷移可能な状態の集合を取得する。そして、受け取った状態遷移の集合を用いて仮説を生成する。
【０１０３】
既にこれまでに入力された記号に対応する仮説が生成されている場合（言い換えると、２番目以降の記号を受け取った場合）は、仮説展開部１０４は、記号列入力部１０３から受け取った記号ｘと、現在の仮説が到達している状態に対応する状態番号ｐとをＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９に送り、現在の仮説が到達している状態ｐから、記号列入力部１０３から受け取った新たな記号ｘにより遷移可能な状態の集合を取得する。そして、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９から取得した遷移可能な状態の集合を用いて、現在の仮説の状態遷移過程を更新することにより新たな仮説の集合を生成する。
【０１０４】
仮説展開部１０４は、生成した仮説の集合の各仮説についての累積重みを算出する。そして、生成した仮説の集合を終了状態判定部６１０へ送り、各仮説の到達している状態が終了状態であるか否かを判定することにより、各仮説の累積重みを更新する。具体的には、終了状態に到達している仮説の累積重みに、その終了状態の終了重みを加えることで、仮説の累積重みを更新する。
【０１０５】
そして、生成した仮説の集合とその累積重みを仮説絞込み部１０５へ送る。
【０１０６】
＜初期状態取得部６０８＞
初期状態取得部６０８では、ＷＦＳＴの初期状態を生成する。これは、図４のＳ１０４における初期状態の要求ｓ［ｈ］＝ｉに対応する処理であり、一つの状態番号（例えばｉ＝０）を返す。このとき、状態集合Ｑ＝｛０｝、状態数｜Ｑ｜＝１になる。そして、生成した初期状態の状態番号ｓ［ｈ］を、仮説展開部１０４を介して、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９に送る。なお、このとき、入力記号列の始まりを表す記号を初期状態に割り当ててもよい。
【０１０７】
＜ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９＞
ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９は、入力された状態番号ｐと入力記号ｘとを仮説展開部１０４から受け取り、これらの値を用いて、ＲＮＮ言語モデルをＷＦＳＴに変換する。本実施形態では、状態番号ｐの状態から入力記号ｘで遷移可能な状態遷移の集合Ｅを求める。
【０１０８】
図７は、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９の処理フローの例を示す。
【０１０９】
まずステップＳ７０１より開始し、ステップＳ７０２で状態番号ｐと現在の入力記号ｘとを取得する。なお、状態番号ｐは、遷移元となる状態（遷移元状態）に対応する。
【０１１０】
ステップＳ７０３では、状態番号ｐに対応する遷移元状態から現在の入力記号ｘによる遷移先状態δ（ｐ，ｘ）が未設定か否かを判定する。
【０１１１】
遷移先状態δ（ｐ，ｘ）が未設定の場合、ステップＳ７０４に進み、そこで新たな状態ｑを作成する。例えば、その新たな状態の状態番号ｑを現在の状態数｜Ｑ｜に設定し、ｑを状態集合Ｑに追加する。そして、遷移先状態δ（ｐ，ｘ）として新たな状態ｑを設定し、状態ｑに現在の入力記号ｘを割り当て、ステップＳ７０６に進む。状態ｑに割り当てた入力記号を特にｘｑとも表す。
【０１１２】
遷移先状態δ（ｐ，ｘ）が未設定でない（設定済み）場合、ステップＳ７０５に進み、状態番号ｑに遷移先状態δ（ｐ，ｘ）を代入し、ステップＳ７０８に進む。
【０１１３】
ステップＳ７０６では、現在の入力記号ｘの出現確率が計算されているか否かを判定する。現在の入力記号ｘの出現確率は、言い換えると、ＲＮＮ言語モデルの出力層の現在の入力記号ｘに対応するニューロンの活性度ｈＬ（ｐ）［ｋ（ｘ）］である。ただし、ｋ（ｘ）は現在の入力記号ｘに対応するニューロンを指す番号を表すものとする。
【０１１４】
現在の入力記号ｘの出現確率が未計算の場合、ステップＳ７０７で、ＲＮＮ言語モデルを用いて、入力記号ｘに対応するニューロンの活性度ｈＬ（ｐ）［ｋ（ｘ）］を計算する。ただし、活性度ｈＬ（ｐ）［ｋ（ｘ）］は、式（１）と式（２）とは一部異なり、入力記号列の何番目かを表すインデックスｔの代わりに状態番号ｐに依存している。従って、
入力層では、ニューロンの活性度ｈ１（ｐ）［ｋ（ｘ）］を
【０１１５】
【数１０】
2015152661.tif 000012
【０１１６】
として求める。但し、ｘｐ［ｉ］は、状態番号ｐに割り当てられた入力記号ｘｐの第ｉ次元目の要素を表す。
【０１１７】
再帰結合のない中間層（１＜ｎ＜Ｌ）及び出力層（ｎ＝Ｌ）では、ニューロンの活性度をｈｎ（ｐ）［ｋ（ｘ）］を
【０１１８】
【数１１】
2015152661.tif 000013
【０１１９】
として求める。ただし、活性化関数ｆ（）として、再帰結合のない中間層では式（３）のシグモイド関数を用い、出力層では式（４）のソフトマックス関数を用いる。
【０１２０】
再帰結合のある中間層（１＜ｎ＜Ｌ）では、ニューロンの活性度をｈｎ（ｐ）［ｋ（ｘ）］を
【０１２１】
【数１２】
2015152661.tif 000014
【０１２２】
として求める。ただし、ｐ（−１）は状態ｐに遷移する直前の状態（木構造の親ノード）を表し、活性化関数ｆ（）として式（３）のシグモイド関数を用いる。式（８）〜（１０）を用いて、入力記号ｘに対応する出力層のニューロンの活性度ｈＬ（ｐ）［ｋ（ｘ）］を求める。
【０１２３】
このような処理により、本実施形態におけるＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９では、ただ一つの入力記号列を考慮するのではなく、あらゆる記号列を状態遷移で表すことができる。そして、ＲＮＮ言語モデルにおける記号の出現確率は入力記号列の始めから現在までの入力記号列に依存することから、木構造のＷＦＳＴとして構成される。よって、各状態が記号列の固有の履歴に対応することから、状態番号ｐは任意の記号列の任意番目の記号に一意に対応し、各ニューロンの活性度も状態番号ｐに依存して記録される。
【０１２４】
ステップＳ７０８では、遷移元状態ｐ、遷移先状態ｑ、現在の第一入力記号ｘおよび現在の第一入力記号に等しい出力記号ｘ、現在の第一入力記号の出現確率ｈｎ（ｐ）［ｋ（ｘ）］もしくはそれを引数に取る関数を重みとして含む状態遷移を作成する。例えば、現在の第一入力記号の出現確率ｈｎ（ｐ）［ｋ（ｘ）］を引数に取る関数としては、出現確率ｈｎ（ｐ）［ｋ（ｘ）］の対数の負値−ｌｏｇ（ｈｎ（ｐ）［ｋ（ｘ）］）等が考えられる。よって、例えば、状態遷移＜ｐ→ｑ，ｘ：ｘ／−ｌｏｇ（ｈｎ（ｐ）［ｋ（ｘ）］）＞を作成する。これを唯一の状態遷移として持つ状態遷移の集合Ｅを生成する。最後にステップＳ７０９に進み、生成した状態遷移の集合Ｅを仮説展開部１０４に出力して状態遷移集合取得部６０９の処理を終了する。
【０１２５】
本実施形態の手順に従えば、図５のＲＮＮ言語モデルは、図８に示すような木構造のＷＦＳＴの一部分として構成される。図８に示すようにＷＦＳＴの各状態は、初期状態０から始まる任意の記号列に対応しており、例えば、状態９は記号列Ｂ，Ｃに対応している。但し、本実施形態の手順では、入力記号列に対応する状態と状態遷移のみが作られるので、図８のように各状態から可能性のあるすべての記号に対する状態遷移が作られる訳ではない。実際に、木構造であらゆる記号列を表現すると、記号列の長さ（木の深さ）に応じて、状態数が指数的に増加してしまうため、ＲＮＮ言語モデルを予めＷＦＳＴに変換しておくことは非現実的である。本実施形態では、記号列変換に必要な状態と状態遷移のみを作るため、状態数が急激に増加することはない。例えば、入力記号列Ｂ，Ｃ，Ａを読み込むと、図９の状態０，１，２，３に対応する状態遷移が作られる。その後、入力記号列Ｂ，Ａを読み込むと、状態１から状態４への遷移が新たに作られる。一度作った状態遷移の重みについては活性度を再計算する必要はないので、計算は効率的である。しかし、様々な入力記号列を読み込む中で状態数は徐々に増加していくので、記憶領域を削減するために、適当なタイミングで状態や状態遷移を消去しても良い。
【０１２６】
＜終了状態判定部８１０＞
終了状態判定部８１０では、入力された仮説の集合（仮説リスト）Ｈの中の個々の仮説ｈが到達した状態ｓ［ｈ］が終了状態か否か、すなわちｓ［ｈ］∈Ｆか否かを判定する。例えば読み込んだ記号が入力記号列の最後の記号であるなら、ｓ［ｈ］は終了状態、そうでなければ終了状態ではない、といった判定をしても良い。または、状態ｓ［ｈ］が記号列の終わりを表す特殊記号＜／ｓ＞に対応した状態であるならばｓ［ｈ］は終了状態、そうでなければ終了状態ではない、といった判定をしても良い。この終了状態判定は、図４のＳ１１３の処理に相当する。
【０１２７】
＜仮説絞込み部１０５＞
仮説絞込み部１０５では、同じ状態に到達している仮説の中で累積重みが最小の仮説以外の仮説を削除することにより仮説を絞り込む。更には、存在する仮説の中で累積重みが相対的に大きい仮説を削除しても良い。これは、例えば、存在する仮説の中での累積重みの最小値に一定の値を加えた値を閾値として、この閾値よりも累積重みの大きな仮説をすべて削除しても良い（この仮説絞り込み方法を「枝刈り」とも言う）。そして、入力記号列が最後まで読み込まれていれば、その終了状態に到達している仮説の中から累積重み（Ｗ［ｈ］）が最小となる仮説ｈを選び、その出力記号列Ｏ［ｈ］を記号列変換結果として、記号列出力部１０６に送る。入力記号列が最後まで読み込まれていない場合には、絞り込み後の仮説の集合を仮説展開部１０４へ送る。
【０１２８】
＜記号列出力部１０６＞
記号列出力部１０６では、仮説絞込み部１０５から受け取った出力記号列を出力する。
【０１２９】
＜効果＞
このような構成により、ＲＮＮ言語モデルからＮグラム言語モデルを用いることなく、直接ＷＦＳＴを生成することができる。ＲＮＮ言語モデルに対応するＷＦＳＴに基づき記号列変換を行うことができる。
【０１３０】
＜変形例＞
本実施形態では、状態遷移の集合Ｅには一つの状態遷移しか含まれておらず、そこから一つの仮説しか生成しないため、仮説リストや状態遷移リスト等を用意せずに、図４のＳ１０２、Ｓ１０６、Ｓ１０９、Ｓ１１０、Ｓ１１１等の処理を省略してもよい。
【０１３１】
本実施形態では、記号列変換装置の一部として、ＲＮＮ言語モデル格納部６０７、初期状態取得部６０８、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９、終了状態判定部６１０を設けたが、ＲＮＮ言語モデル格納部６０７、初期状態取得部６０８、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９、終了状態判定部６１０を含む重み付き有限状態変換器作成装置として構成してもよい。重み付き有限状態変換器作成装置は、入力記号ｘとを入力とし、ＲＮＮ言語モデルをＷＦＳＴに変換し、変換後のＷＦＳＴを出力する。例えば、本実施形態のように状態番号ｐの状態から入力記号ｘで遷移可能な状態遷移を求めることで、ＲＮＮ言語モデルをＷＦＳＴに変換する。なお、状態番号は、初期状態取得部６０８やＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９で求めた状態番号を用いればよい。
【０１３２】
また、重み付き有限状態変換器作成装置は、入力記号ｘとを入力とし、ＲＮＮ言語モデルを重み付き有限オートマトン（ＷＦＳＡ）に変換し、変換後のＷＦＳＡを出力してもよい。出力記号を含まない状態遷移を求めることで、容易にＷＦＳＡを求めることができる。よって、ＷＦＳＴを求めることは、同時にＷＦＳＡを求めることを意味している。このとき、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部をＲＮＮ言語モデルＷＦＳＡ状態遷移集合取得部と言ってもよい。なお、求めたＷＦＳＡに対して、入力記号と同様の出力記号を付加することで、本実施形態のＷＦＳＴに変換することもできる。つまり、求めたＷＦＳＡは、入力記号と同様の出力記号を付加したＷＦＳＴに対応する。
【０１３３】
また、初期状態を別途与えられる（例えば、人手により、または予め定めた初期状態を与えられる）構成としてもよい。その場合、記号列変換装置や重み付き有限状態変換器作成装置は、初期状態取得部６０８を含まなくともよい。また、終了状態判定部６１０を記号列変換装置や別装置として設けてもよい。その場合、重み付き有限状態変換器作成装置は、終了状態判定部６１０を含まなくともよい。
【０１３４】
ＲＮＮモデルとして、ＲＮＮ言語モデルを用いているが、必ずしも言語モデルに限定されない。要は、ＲＮＮに入力記号列の各記号を順次入力し、現在の一つ前の記号を表すベクトルと、その時の中間層の各ニューロンの活性度を用いて、現在の記号の出現確率を計算するＲＮＮモデルであれば、ＲＮＮ言語モデル以外のＲＮＮモデルであっても、ＷＦＳＴに変換することができる。
【０１３５】
＜第二実施形態＞
第一実施形態と異なる部分を中心に説明する。本実施形態では、本発明を音声認識に適用する。
【０１３６】
図１０は第二実施形態に係る音声認識装置の機能ブロック図である。本実施形態では、第一実施形態と同様に、ＲＮＮ言語モデル格納部、初期状態取得部、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部、終了状態判定部を有する。
【０１３７】
すなわち、ＲＮＮ言語モデル格納部１００７、初期状態取得部１００８、ＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部１００９、および終了状態判定部１０１０を用いて、ＲＮＮ言語モデルＷＦＳＴの状態遷移集合を必要に応じて生成することで、ＲＮＮ言語モデルに対するＷＦＳＴの全体（図８参照）が存在するかのように記号列変換を行う。
【０１３８】
なお、ＲＮＮ言語モデル格納部１００７、初期状態取得部１００８、状態遷移集合取得部１００９、および終了状態判定部１０１０以外の各部の処理については、特許文献１に詳細が記載されているため、ここでは概要のみを説明する。
【０１３９】
＜音声信号入力部１００３及び音声特徴記号列抽出部１００４＞
音声を入力する音声信号入力部１００３から送られた音声信号はその音声の短時間音響パターンの時系列を記号列として抽出する音声特徴記号列抽出部１００４において音響特徴記号列に変換し、その音響特徴記号列を入力として記号列変換を行う記号列変換部１００５に送る。
【０１４０】
＜記号列変換部１００５＞
記号列変換部１００５は、仮説展開部１００６、仮説補正部１０１１及び仮説絞込み部１０１２を含む。
【０１４１】
記号列変換部１００５は、音響モデル格納部１００１から音声固定単位（例えば音素）の標準的な音響パターン系列の特徴を保持し、個々の音声固定単位と任意の音響パターンの間の類似度を与える音響モデルを読みだす。
【０１４２】
音声認識に用いる音響パターンには、短い時間（例えば１０ミリ秒）ごとに音声信号を分析することにより得られるメルケプストラム（ｍｅｌ−ｆｒｅｑｕｅｎｃｙ  ｃｅｐｓｔｒａｌ  ｃｏｅｆｆｉｃｉｅｎｔｓ，
ＭＦＣＣと呼ばれる）、デルタＭＦＣＣ、ＬＰＣケプストラム、対数パワーなどがある。
【０１４３】
種々の音声固定単位（例えば音素）の標準的特徴を保持する音響モデルとしては、例えば、それら音響パターンの系列の集合を確率・統計理論に基づいてモデル化する隠れマルコフモデル法（Ｈｉｄｄｅｎ  Ｍａｒｋｏｖ  Ｍｏｄｅｌ，以後ＨＭＭと呼ぶ）が主流である。このＨＭＭ法の詳細は、例えば、社団法人電子情報通信学会、中川聖一著「確率モデルによる音声認識」に開示されている。音響モデルとして他の従来技術を用いてもよい。
【０１４４】
さらに、仮説展開部１００６は、単語辞書ＷＦＳＴ格納部１００２から前記音声固定単位の系列からその発音を持つ単語の系列に変換する単語辞書ＷＦＳＴを読み出す。さらに、記号列変換部１００５は、ＲＮＮ言語モデルＷＦＳＴ生成部１００を用いて、ＲＮＮ言語モデルＷＦＳＴの状態遷移集合を生成し、音声特徴記号列抽出部１００４から送られた音響特徴記号列を読み込み、累積重み最小または最大の出力記号列を求め、記号列出力部１０１３に送る。
【０１４５】
（仮説展開部１００６）
仮説展開部１００６は、音声特徴記号列抽出部１００４から送られた音響特徴記号列の記号を一つずつ読み込む。次に、仮説展開部１００６は、単語辞書ＷＦＳＴを用いて、音響特徴記号列の音響特徴記号から現在の仮説の集合の各々に新しい状態遷移を追加し、新たな仮説を展開する。
【０１４６】
なお、単語辞書ＷＦＳＴの重みとして、音響モデルによって計算される音響特徴記号（音響パターン）のスコアを用いる。ただし、このスコアは、大きいほど入力音響パターンが音響モデルによって表される音声固定単位に近いことを表すので、マイナスの音響スコアをもって重みとする。隠れマルコフモデルによる音響スコアの計算では、例えばガウス分布に基づく確率値が用いられる。
【０１４７】
（仮説補正部１０１１）
仮説補正部１０１１は、新しい状態遷移を追加された仮説の集合を受け取る。仮説補正部１０１１は、初期状態取得部１００８、状態遷移集合取得部１００９、終了状態判定部１０１０によって、仮説展開部１００６から受け取った個々の仮説の累積重みを補正する。
【０１４８】
具体的には、仮説展開部１００６から受け取った個々の仮説の状態遷移過程から出力される単語列を入力記号列として、第一実施形態と同様の処理を行って出力される出力記号列に対応する累積重み、すなわち、可能な状態遷移過程の中で累積重みが最小となる状態遷移過程の累積重み、をその仮説の累積重みに加算することにより、各仮説の累積重みを補正する。言い換えると、ＲＮＮ言語モデルに対応するＷＦＳＴを用いて、仮説展開部１００６から受け取った個々の仮説の状態遷移過程から出力される単語列の状態遷移の重みを補正する。また別の言い方をすると、仮説補正部１０１１は、言語モデルＷＦＳＴ生成部１００により部分的に生成される、ＲＮＮ言語モデルに対応するＷＦＳＴとは別の単語辞書ＷＦＳＴを用いて、音響特徴記号列（ＲＮＮ言語モデルに対応するＷＦＳＴに対する入力記号列とは別の記号列である）を変換することにより得た仮説の集合に含まれる仮説の状態遷移過程から出力される記号列を、ＲＮＮ言語モデルに対応するＷＦＳＴに対する入力記号列として、第一実施形態と同様の処理を行う。
【０１４９】
（仮説絞込み部１０１２）
仮説絞込み部１０１２は、仮説補正部１０１１で生成された仮説の集合を受け取り、同じ状態に到達している仮説の中で累積重みが最小または最大となる仮説から所定数の仮説以外の仮説を削除することにより仮説を絞り込む。そして、入力記号列が最後まで読み込まれていれば、その終了状態に到達している仮説の中から累積重みが最小または最大となる仮説を選び、その出力記号列を記号列変換結果として、記号列出力部１０１３に送る。入力記号列が最後まで読み込まれていない場合には、累積重みの大きい所定数の仮説を削除して、絞り込んだ後、残った仮説の集合を仮説展開部１００６へ送る。
【０１５０】
仮説展開部１００６は、音響特徴記号列の次の記号を読み込み、記号列変換部１００５は、入力された音声特徴記号列をすべて読み終えるまで、同様の処理を繰り返す。
【０１５１】
最後の音声特徴記号を読み込んだ後に、仮説絞込み部１０１２において累積重み最小の仮説とその出力記号列を求め、記号列出力部１０１３に送る。
【０１５２】
よって、記号列変換部１００５は、１つ以上の単語列の中から補正後の重みの累積重みが最小または最大の状態遷移過程に対応する単語列を音声認識結果として決定し、記号列出力部１０１３に出力する。
【０１５３】
＜記号列出力部１０１３＞
記号列出力部１０１３は、受け取った単語列を音声認識結果として出力する。
【０１５４】
このような構成により、本発明を音声認識に利用することができる。
【０１５５】
＜変形例＞
第一実施形態のＲＮＮ言語モデルＷＦＳＴ状態遷移集合取得部６０９において、状態遷移の重み−ｌｏｇ（ｈＬ（ｐ）［ｋ（ｘ）］）を求めるとき（図７のステップＳ７０８）、Ｎグラム言語モデルによって求めた確率との線形補間を行っても良い。例えば、状態遷移重みは
【０１５６】
【数１３】
2015152661.tif 000015
【０１５７】
のように計算できる。ここで、Ｐ（ｘ│ｘｐ＾（−Ｎ＋２），…，ｘｐ＾（−１），ｘｐ）（ただし、下付添え字のｐ＾（−Ｎ＋２）とｐ＾（−１）とはそれぞれｐ（−Ｎ＋２）とｐ（−１））を表す）は、Ｎグラム言語モデルで計算されるＮグラム確率を表し、ｘｐ＾（−Ｎ＋２），…，ｘｐ＾（−１），ｘｐは状態ｐに至る状態遷移過程の最後のＮ−１個の状態に割り当てられた記号の系列を表す。つまり、記号ｘの直前の長さＮ−１の記号列に依存したＮグラム確率となっている。λはＲＮＮ言語モデルで求めた記号出現確率とＮグラム言語モデルで求めたＮグラム確率の間のバランスを取る係数であり、０≦λ≦１とする。
【０１５８】
＜実験結果＞
図１０に示す形態で音声認識装置を構築した。音響モデルには、５１種類の音素に対するＨＭＭを用意し、各音素ごとに３つの状態があり、各状態にはその音素のコンテキスト（前にある音素は何か、後ろに続く音素は何か）に応じて２，５４６種類ある音響パターンの確率密度分布の内の一つが割り当てられている。これら確率密度分布のＩｄ番号を音声固定単位とした。
【０１５９】
音声信号の音響パターンの系列は、１０ミリ秒ごとに音声信号を分析することにより得られるＭＦＣＣ１２次元、ＭＦＣＣの各次元の時系列方向に前後２フレーム見たきの一次回帰係数であるデルタＭＦＣＣ１２次元、各次元の時系列方向に前後２フレーム見たきの一次回帰係数であるデルタデルタＭＦＣＣ１２次元、および対数パワーを合わせた３９次元のベクトルを要素とする入力系列として抽出する。
【０１６０】
辞書として１０万単語とその発音を用い、音声固定単位の系列から単語列に変換するＷＦＳＴを構築した。
【０１６１】
ＲＮＮ言語モデルは、マサチューセッツ工科大学の英語講義コーパスの１０４講義を書き起こした単語列を用いて学習した。同様に、Ｎグラム言語モデル（Ｎ＝３）も学習し、音声認識処理を行うときは、前述の変形例の式（１１）でＷＦＳＴの状態遷移重みを求めた。このとき、λ＝０．５に設定した。
【０１６２】
図１１は、Ｎグラム言語モデルだけを用いる音声認識方法（従来法（１））、Ｎグラム言語モデルを用いる音声認識によって各発話あたり最大１０００候補の単語列を出力させた後で、各候補をＲＮＮ言語モデルで再スコア付けを行い、スコア最大の候補を選び直す音声認識方法（従来法（２））、および本実施形態による音声認識方法における単語誤り率、認識処理時間、遅延時間を表している。
【０１６３】
認識処理時間は実時間比で計測しており、これは認識処理時間を実際に話された時間で割った値であり、小さいほど高速であることを示す。認識処理時間は、Intel Xeon X5570 2.54GHzプロセッサを用いて音声認識を動作させ、８講義（計７．８時間）を認識させたときの時間を計測して求めた。単語誤り率は、実際に話された単語の中で誤って認識した単語の割合を表しており、小さいほど音声認識の精度が高いことを表す。また、遅延時間は、各発話の音声を入力し終えて、結果が出力されるまでの時間を計測し、認識した全発話で平均した値である。
【０１６４】
図１１の結果において、従来法（１）はＮグラム言語モデルのみを用いているので、単語誤り率が２６．８％となっており、ＲＮＮ言語モデルを用いる従来法（２）や本実施形態の単語誤り率２４．７％よりも高くなっている。一方、認識処理時間（実時間比）では、従来法（１）が最も小さく（０．３８）、次に本実施形態（０．４５）、そして従来法（２）（０．５８）の順である。そして、遅延時間では、従来法（２）は０．３６秒となっている。これは、複数の候補を出力させてＲＮＮ言語モデルで再スコア付を行う計算が必要なためである。これに対し、本実施形態は０．０２秒とかなり少ない遅延時間で抑えられている。以上より、本実施形態は、ＲＮＮ言語モデルを用いて単語誤り率を削減しながら、再スコア付を行う従来法（２）と比べて認識処理時間を少なく抑えつつ、大幅に少ない遅延時間で音声認識を行えることが示された。
【０１６５】
＜その他の変形例＞
仮説展開部１００６と仮説補正部１０１１とを併せて、状態遷移合成部と呼んでもよい。状態遷移合成部は、ＲＮＮ言語モデルに基づくＷＦＳＴの状態遷移と、単語辞書ＷＦＳＴの状態遷移とを合成し、合成した状態遷移の集合を生成するといってもよい。その場合、記号列変換部１００５は、合成した状態遷移の集合を参照して、音響特徴記号列を単語列に変換していると言える。
【０１６６】
なお、本実施形態の構成は、音声認識装置に限らず、入力記号列を出力記号列に変換する記号列変換装置として利用できる。要は、状態遷移合成部は、ＲＮＮモデルに基づくＷＦＳＴの状態遷移と、それとは別のＷＦＳＴの状態遷移とを合成し、合成した状態遷移の集合を生成する。記号列変換部は、合成した状態遷移の集合を参照して、ＲＮＮモデルに基づくＷＦＳＴに対する入力記号列とは別の入力記号列を、ＲＮＮモデルに基づくＷＦＳＴの出力記号列に変換する。
【０１６７】
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
【０１６８】
＜プログラム及び記録媒体＞
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【０１６９】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【０１７０】
また、このプログラムの流通は、例えば、そのプログラムを記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
【０１７１】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるＡＳＰ（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【０１７２】
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【図１】
2015152661.tif 000016
【図２】
2015152661.tif 000017
【図３】
2015152661.tif 000018
【図４】
2015152661.tif 000019
【図５】
2015152661.tif 000020
【図６】
2015152661.tif 000021
【図７】
2015152661.tif 000022
【図８】
2015152661.tif 000023
【図９】
2015152661.tif 000024
【図１０】
2015152661.tif 000025
【図１１】
2015152661.tif 000026