JP2015121707A - デコーダ、デコード方法およびプログラム - Google Patents

デコーダ、デコード方法およびプログラム Download PDF

Info

Publication number
JP2015121707A
JP2015121707A JP2013265948A JP2013265948A JP2015121707A JP 2015121707 A JP2015121707 A JP 2015121707A JP 2013265948 A JP2013265948 A JP 2013265948A JP 2013265948 A JP2013265948 A JP 2013265948A JP 2015121707 A JP2015121707 A JP 2015121707A
Authority
JP
Japan
Prior art keywords
tokens
signal
state
assigned
transition
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
JP2013265948A
Other languages
English (en)
Other versions
JP6404564B2 (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 JP2013265948A priority Critical patent/JP6404564B2/ja
Priority to US14/574,895 priority patent/US10008200B2/en
Publication of JP2015121707A publication Critical patent/JP2015121707A/ja
Application granted granted Critical
Publication of JP6404564B2 publication Critical patent/JP6404564B2/ja
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
    • 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/14Speech classification or search using statistical models, e.g. Hidden Markov Models [HMMs]
    • G10L15/142Hidden Markov Models [HMMs]
    • 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
    • G10L2015/081Search algorithms, e.g. Baum-Welch or Viterbi

Landscapes

  • Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Signal Processing (AREA)

Abstract

【課題】自己遷移を含む有向グラフを有限状態トランスデューサで取り扱う場合に、簡単な処理でデコードする。【解決手段】実施形態のデコーダは、有限状態トランスデューサを探索して、入力された信号列または信号の特徴量列に応じた出力記号列を出力するデコーダである。デコーダは、トークン操作部と、重複除去部とを備える。トークン操作部は、信号または特徴量を入力する毎に、探索中の経路の先頭の状態が割り当てられた複数のトークンのそれぞれを、有限状態トランスデューサに従って移動させる。重複除去部は、割り当てられた状態が同一であり、且つ、最後に通過した遷移に割り当てられた入力記号が同一である2以上のトークンの重複を除去する。【選択図】図7

Description

本発明の実施形態は、デコーダ、デコード方法およびプログラムに関する。
入力される信号のパターンを認識して、入力された信号列を対応する記号列へと変換する技術が知られている。例えば、音声信号を認識する技術、文字が記載された画像から文字を認識するOCR(Optical Character Recognition)技術、手書き文字を認識する技術、または、画像からジェスチャまたは手話等を認識する技術等が知られている。また、このような技術を実現する装置として、重み付き有限状態オートマトンに出力記号を付加した有向グラフ(重み付き有限状態トランスデューサ(WFST))を探索するデコーダが知られている。
WFSTを探索するデコーダにより音声認識をする場合、隠れマルコフモデル(HMM)をこのようなデコーダで取り扱えるように変形しなければならなかった。例えば、WFSTの入力記号に、音響スコアを算出するための関数を特定する音響スコア関数識別子を割り当てることにより、WFSTを探索するデコーダでHMMを取り扱えるようにしていた。
ところで、入力記号にスコア関数識別子を割り当てた場合、HMMの自己遷移を正しく取り扱うために、1つの状態に対して1種類の入力記号が割り当てられた遷移が入ってくるように或いは出て行くように、WFSTに制約を加えなければならなかった。このため、このようなデコーダでは、探索するWFSTの状態数および遷移数が多くなり、多くの記憶容量が必要であった。
M. Mohri and M. Riley, "Integrated Context-Dependent Networks in Very Large Vocabulary Speech Recognition", Sixth European Conference on Speech Communication and Technology (EUROSPEECH '99), 1999, 811-814 S.J. Young, N.H. Russell and J.H.S. Thornton, "Token passing: A simple conceptual model for connected speech recognition systems", Cambridge University Engineering Department, 1989 S. Phillips and A. Rogers, "Parallel speech recognition", International Journal of Parallel Programming, Vol. 27, No. 4,1999, pp. 257-288 M. Mohri, "Handbook of Weighted Automata", Chapter 6: Weighted Automata Algorithms, ISBN978-3-642-01491-8, pp.213-254 Takaaki Hori and Atsushi Nakamura, "Speech Recognition Algorithms Using Weighted Finite-State Transducers",ISBN 978-1-60845-473-0, pp. 70-73
本発明が解決しようとする課題は、自己遷移を含む有向グラフを有限状態トランスデューサで取り扱う場合に、有限状態トランスデューサの状態数および遷移数を増加させず、簡単な処理でデコードすることにある。
実施形態のデコーダは、有限状態トランスデューサを探索して、入力された信号列または前記信号の特徴量列に応じた出力記号列を出力するデコーダである。前記デコーダは、トークン操作部と、重複除去部とを備える。前記トークン操作部は、前記信号または前記特徴量を入力する毎に、探索中の経路の先頭の状態が割り当てられた複数のトークンのそれぞれを、前記有限状態トランスデューサに従って移動させる。前記重複除去部は、割り当てられた状態が同一であり、且つ、最後に通過した遷移に割り当てられた入力記号が同一である2以上のトークンの重複を除去する。
ある音素に対するHMMを示す図。 特徴量が5回入力された場合のHMMの遷移を示す図。 HMMをWFSTの遷移に割り当てたモデルを示す図。 異なる入力記号が1つの状態に入るモデルを示す図。 図4の問題を解決するための構成を示す図。 第1実施形態に係るパターン認識装置のブロック図。 第1実施形態に係るデコーダのブロック図。 第1実施形態に係るデコーダの処理のフローを示す図。 第1実施形態に係るデコーダの処理内容を表す擬似コードを示す図。 に含まれる移動前のトークンを示す図。 トークンを移動した後にTに含まれるトークンを示す図。 第1実施形態に係るパターン認識装置のハードウェアブロック図。 第2実施形態に係るデコーダのブロック図。 第2実施形態に係るデコーダの処理内容を表す擬似コードを示す図。
<前提>
まず、本実施形態の前提となる技術について説明する。
(WFST)
本実施形態では、重み付き有限状態トランスデューサ(WFST)を探索する。なお、本実施形態では、有向グラフとしてWFSTを用いる例を説明するが、重みの付いていない有限状態トランスデューサ(すなわち、重みが0のWFSTと同様の有向グラフ)を探索してもよい。
WFSTは、遷移に入力記号および出力記号が割り当てられ、遷移に重みが割り当てられる。WFSTは、状態の集合Q、遷移の集合E、入力記号の集合Σ、出力記号の集合Γ、重みの集合K、初期状態の集合I、終了状態の集合F、初期重み関数λ、および終了重み関数ρの9つの要素の組(Q,E,Σ,Γ,K,I,F,λ,ρ)で構成される。遷移は、5つの要素の組(前状態,次状態,入力記号,出力記号,重み)で構成される。
重みの集合Kは、一例として、整数全体の集合、実数全体の集合、複素数全体の集合、行列、ブーリアン(0および1)の集合等である。重みの集合Kは、正でない実数の集合または負でない実数の集合等であってもよい。初期状態q∈Iに対応する初期重みは、λ(q)である。終了状態q∈Fに対応する終了重みは、ρ(q)である。また、入力記号の集合Σおよび出力記号の集合Γは、空記号εを含んでもよい。
(音響モデル、信号スコア)
例えば、WFSTを用いて連続的に音声認識をする場合を考える。この場合、認識処理に先立って、まず、入力された音声信号の特徴量を音声を表す細かい単位(例えば音素)へと変換するための音響モデル、音声を表す細かい単位(例えば音素)を単語へと変換するためのレキシコン、および、単語の並びを制約するための言語モデルを準備する。続いて、これらのモデルのそれぞれをWFSTへと変換する。続いて、WFSTで表されたこれらのモデルを統合する。なお、これらのモデルを1つに統合してもよいし、一部を統合せず、音声認識時に動的に統合してもよい。
ここで、音響モデルは、入力された音声信号が、特定の音素またはその一部にどれだけ類似しているかを表すスコア(音響スコア、出力確率)を算出するためのモデルである。文字認識またはジェスチャの認識をする場合も同様に、このようなモデルを用いて類似度を表すスコアを算出して、パターン認識をする。本実施形態では、音声認識の場合も含めて、このようなモデルにより算出される値、すなわち、入力された信号が出力される記号等にどれだけ類似しているかを表す値を、信号スコアと呼ぶ。
(HMM)
図1は、ある音素に対する隠れマルコフモデルを示す図である。音声認識をする場合、音響モデルとして隠れマルコフモデル(HMM)が用いられる場合が多い。HMMをWFSTに変換する場合、一例として、信号スコアを算出するためアルゴリズム(関数、プログラム、テーブルまたは行列等を含む)、データ(パラメータ等を含む)、または、アルゴリズムおよびデータの両方を特定するためのスコア識別子を、WFSTの入力記号に割り当てる。
このスコア識別子は、HMMの各状態(図1中のb、b、b)に対応付けられている。HMMの状態が特定できればスコア識別子も特定することができる。同じスコア識別子が、HMMの異なる状態に割り当てられることもある。例えば、b=bである場合もある。また、図1中のa01およびa12等は、状態遷移スコア(状態遷移確率ともいう)を表す。
音響モデルから信号スコアを算出するためには、スコア識別子だけでなく、入力された信号列または入力された信号の特徴量も必要である。特徴量は、複数の値から構成される場合もある。この場合、複数の特徴量の組は、特徴ベクトルと呼ばれる。本実施形態では、複数の値から構成される場合も含めて特徴量と呼ぶ。
本実施形態においては、信号スコアを算出するためのアルゴリズムまたはデータとして、スコア関数を用いる。スコア関数は、信号または信号の特徴量、および、スコア識別子を引数にとって信号スコアを出力する関数である。音声認識をする場合には、スコア関数は、例えば音響スコア関数と呼ばれる。また、この音響スコア関数を特定するスコア識別子は、音響スコア関数識別子と呼ばれる。また、音響スコア関数識別子は、確率分布関数識別子と呼ばれる場合もある。
スコア関数が信号スコアを算出する方法は、どのような方法であってもよい。例えば、音声認識をする場合、信号スコアを算出する方法は、適用するHMMの種類によって変わる。離散HMMであれば、スコア関数は、特徴量に対応する符号ベクトルとスコア識別子とに基づき、表または行列の形で記録されている信号スコアを取得する。また、連続HMMであれば、スコア関数は、スコア識別子から得られるガウス分布を表現するための複数のパラメータと、特徴量とに基づき、信号スコアを算出する。また、スコア関数は、ニューラルネットワークを用いるなど、ほかの方法を用いて信号スコアを算出してもよい。
(探索)
図2は、特徴量が5回入力された場合の隠れマルコフモデルの遷移を示す非循環有向グラフの一例である。
WFSTを探索する処理とは、入力された信号列または信号の特徴値列に応じた信号スコアおよび重みを累積した値が、最良となる状態と遷移との系列(経路)を算出する処理である。この累積した値を、累積スコアと呼ぶ。WFSTに言語モデルも統合されている場合には、言語モデルから得られるスコアも累積スコアに含まれる。
累積スコアが最良となる経路は、一般に、ビタビアルゴリズムを用いて見つけ出される。図2では、最良となる経路の一例を太線で示している。図2の例の場合、累積スコアは、a01+s(x,b)+a11+s(x,b)+a12+s(x,b)+a23+s(x,b)+a33+s(x,b)+a34となる。xからxは各時刻に対応する特徴量である。s(x,b)は、スコア関数である。xは、n番目に入力された特徴量であり、bは、スコア識別子である。仮に、累積スコアを距離と考え、小さいほうが良いとする。この場合、累積スコアが最良となる経路を見つけ出す処理は、音声信号が入力される毎に、状態と遷移とが追加される非循環有向グラフ(directed acyclic graph)の最短経路を探索する処理と同様である。
(トークンパッシング)
HMMを変換したWFSTの経路を探索する処理では、トークンパッシングと呼ばれる技術を用いる場合が多い。この技術ではトークンと呼ばれるオブジェクトが用いられる。トークンには、探索中の経路の先頭の状態が割り当てられる。WFSTを探索する処理は、複数の経路を並行して探索するので、同時に複数のトークンが管理される。また、トークンは、経路の累積スコアを保持する。また、トークンは、通過した経路上に割り当てられた出力記号の列を保持する。
トークンは、信号または特徴量が入力される毎に移動される。すなわち、トークンは、信号または特徴量が入力される毎に、割り当てられる状態が、WFSTの遷移に従って変更される。1つの状態から複数の出て行く遷移が存在する場合には、その1つの状態に割り当てられたトークンは、信号または特徴量が入力されると、出て行く遷移の数に複製される。
なお、HMMを変換したWFSTに限らず、スコア識別子が状態に割り当てられており、スコア識別子が割り当てられている状態に自己遷移がある有向グラフであれば、トークンパッシングを用いた経路の探索をすることができる。例えば、テンプレートを有向グラフの形式で表現し、入力された特徴量とテンプレートとの距離を算出する関数をスコア関数とすれば、テンプレートマッチングにも適用することができる。この場合、スコア識別子は、テンプレート自体またはテンプレートを特定する値となる。
(HMMをWFSTで扱う方法)
図3は、HMMをWFSTの遷移に割り当てたモデルの一例を示す図である。WFSTを探索する音声認識デコーダでHMMを扱う方法は、大きく2つ存在する。
第1の方法は、1つまたは複数の状態を含むHMMに識別情報を割り当て、割り当てた識別情報をWFSTの入力記号に割り当てる方法である。第1の方法をHMM展開法と呼ぶ。HMM展開法では、音声認識デコーダは、遷移を通過するトークンがある場合、図3のように、その遷移の中にHMMが含まれているとして処理を行う。
図3において、数字(この例では1と2)が書かれている丸は、WFSTの状態を表す。状態1から状態2に向かう矢印は、WFSTの遷移を表す。
また、図3において、:の左側には、入力記号が記載されている。:と/の間には、出力記号が記載されている。/の右側には、重みが記載されている。なお、入力記号、出力記号および重みの記載方法は、他の図面でも同様である。図3の例では、WFSTの状態1から状態2への遷移の入力記号をHMMの識別情報H、出力記号をi、重みを0としている。
HMM展開法を用いる場合、音声認識デコーダは、トークンが割り当てられている遷移を、アクティブアークとして管理し、トークンが割り当てられている状態をアクティブステートとして管理しなければならない。このため、HMM展開法を用いる場合、音声認識デコーダは、HMMとWFSTとを並行して取り扱わなくてはならなく、処理が複雑となってしまっていた。
第2の方法は、信号スコアを算出するためのアルゴリズムまたはデータを特定するためのスコア識別子を、遷移の入力記号に割り当てる方法である。第2の方法を、HMM埋め込み法と呼ぶ。HMM埋め込み法は、HMM展開法と同様に、出力記号には、認識結果として出力したい記号が割り当てられる。出力記号には、一例として、音素または単語等が割り当てられる。重みには、例えば、HMMの状態遷移スコアまたは言語スコアまたはそれらを加算した値が割り当てられる。
ある状態に割り当てられているスコア識別子の入力記号への割り当て方には、その状態から出ていく遷移に割り当てる方法と、その状態へ入ってくる遷移に割り当てる方法の2通りがある。前者の方法を前方割り当て法、後者の方法を後方割り当て法と呼ぶ。
前方割り当て法は、例えば、非特許文献1の図1(a)に記載されている。後方割り当て法は、例えば、非特許文献5の72ページの図4.2(a)に記載されている。
後方割り当て法では、音声認識デコーダは、特徴量が入力される毎に、次のように処理を行う。まず、トークンは、状態qに割り当てられているものとし、状態qから出ていく遷移の1つをeとする。また、eの次状態をqとする。第1ステップで、音声認識デコーダは、qからトークンをqに移動させる。このとき、通過するeの重みをトークンの累積スコアに加算する。第2ステップで、音声認識デコーダは、eの入力記号、つまり、スコア識別子を使用して、信号スコアを算出してトークンの累積スコアに加算する。
前方割り当て法では、音声認識デコーダは、特徴量が入力される毎に、次のように処理を行う。第1ステップで、音声認識デコーダは、eの入力記号を使用して信号スコアを算出し、qのトークンの累積スコアに加算する。第2ステップで、音声認識デコーダは、qからトークンをqへ移動させ、通過するeの重みをトークンの累積スコアに加算する。
例えば、図2に示した最良の経路a01→b→a11→b→a12→b→a23→b→a33→b→a34を例にして考える。後方割り当て法の場合は、1回目の特徴量の入力でa01→bに関するスコアが算出され、2回目の特徴量の入力でa11→bに関するスコアが算出される。前方割り当て法の場合は、1回目の特徴量の入力前にa01に関するスコアが算出され、1回目の特徴量の入力でb→a11に関するスコアが算出される。
このように、HMM埋め込み法では、音声認識デコーダは、HMMとWFSTとを別個に取り扱う必要が無く、この結果、アクティブアークを管理する必要が無いので、処理が簡単となる。
ところで、音声認識で用いられるHMMにはたいてい自己遷移が含まれる。HMM埋め込み法を用いる場合、HMMの自己遷移をWFSTに反映させると、音声認識デコーダは、保持しなければならないデータ量が増える。そのため、音声認識デコーダは、WFSTにはHMMの自己遷移を含めず、自己遷移の状態遷移スコアをWFSTとは異なるデータ構造(例えば、スコア関数に状態遷移スコアを含めたデータ構造)で別途保持して、自己遷移があるものとみなして処理することが多い。もっとも、状態遷移スコアを利用しないのであれば、音声認識デコーダは、自己遷移の状態遷移スコアについても無視すればよい。状態遷移スコアを使用せず、言語モデルも用いないのであれば、重みを記録する必要が無いので、WFSTではなく、重みを記録しない有限状態トランスデューサを用いることができる。
図4は、異なる入力記号が割り当てられた2つの遷移が、1つの状態に入る場合のモデルの一例を示す図である。
HMMの自己遷移をWFSTに含めない場合、WFSTの最適化プロセスによって、音声認識デコーダが自己遷移を正しく取り扱えなくなる変換が発生する場合がある。例えば、後方割り当て法を用いる場合、図4に示すように、状態2へ入ってくる遷移が2本あり入力記号が異なっているという状況が発生する場合がある。なお、図4の例では、重みを全て0とした。
このWFSTに対して新たな状態を追加することなく、元々あった自己遷移を復元しようとすると、状態2を復元できなくなる。仮に、状態2に対して、入力記号がbの自己遷移およびbの自己遷移の2本を追加したとする。この場合、状態1から状態2に到達し、次に状態2の自己遷移を進む場合において、入力記号がbである自己遷移も通過することができてしまい、本来であれば存在しないはずの経路ができる。前方割り当て法の場合でも、出ていく遷移の入力記号が異なる場合には同様の現象が起きる。
このような問題を解決するために、後方割り当て法の場合は、各状態に対して入ってくる遷移の入力記号が同じになるようにWFSTを予め変形する。前方割り当て法の場合は出ていく遷移の入力記号が同じになるようにWFSTを変形する。例えば、図4の場合、状態7を追加し、入力記号bが割り当てられている遷移の次状態を状態7に変更し、状態2から出ていく遷移を状態7に複製する操作を行うことで、WFSTを変形する。このような変形を行うと、正しく自己遷移を復元することができる。
図5は、図4の問題を解決するための構成の一例を示す図である。例えば、変換部201は、音声認識デコーダ202に入力される前に、WFSTを上述のように変形する。音声認識デコーダ202は、変形後のWFSTを受け取り、音声認識をする。
しかし、WFSTを予め変形することで自己遷移を復元可能にすると、WFSTの状態の数および遷移の数が増えてしまう。その結果、音声認識デコーダ202は、状態および遷移を記憶するための記憶容量が増加してしまっていた。
<第1実施形態>
(全体構成)
図6は、第1実施形態に係るパターン認識装置10の構成を示す。以下、第1実施形態に係るパターン認識装置10を説明する。
パターン認識装置10は、入力された信号のパターンを認識し、認識結果を出力する。パターン認識装置10に入力される信号は、パターンを表す信号であればどのような信号であってもよい。入力される信号は、一例として、音声信号、筆跡を表す信号、文字を表す画像信号または手話等のジェスチャを表す動画像信号等である。
パターン認識装置10は、特徴抽出部12と、デコーダ20と、記憶部22とを備える。
特徴抽出部12は、パターンを表す信号を入力して、一定時間毎に、信号の特徴量を取得する。そして、特徴抽出部12は、取得した信号の特徴量をデコーダ20に渡す。
特徴量は、デコーダ20が、その信号の区間毎の特徴を表す情報であり、信号スコアを算出するために用いられる。音声信号を入力する場合、特徴抽出部12は、一例として、10ミリ秒単位(フレーム)毎に、特徴量を取得する。
なお、特徴量を算出するために用いる信号の時間長と、特徴量を出力する期間は一致していなくてもよい。また、デコーダ20が信号そのものを用いて信号スコアを算出する場合には、特徴抽出部12は、一定時間毎に分割した信号をデコーダ20に渡してもよい。
デコーダ20は、特徴抽出部12から信号または信号の特徴量が入力される毎に、予め作成されたWFSTを探索する。そして、デコーダ20は、入力された信号列または信号の特徴量列に応じた出力記号列を出力する。より具体的には、デコーダ20は、探索して得られた累積スコアが最良の経路上の出力記号列を、認識結果として出力する。
デコーダ20は、出力記号列として、例えば、単語列を出力してもよいし、音素列を出力してもよいし、音素よりさらに細かい単位の記号列を出力してもよい。また、デコーダ20は、これらの組み合わせの記号列を出力してもよい。
記憶部22は、予め作成されたWFSTを記憶している。デコーダ20は、記憶部22に予め記憶されているWFSTを常時参照して探索することができる。
記憶部22は、信号スコアを算出するために参照されるアルゴリズムまたはデータ、或いは、アルゴリズムおよびデータの両方を記憶している。本実施形態において、記憶部22は、スコア識別子と信号または特徴量とを引数として信号スコアを算出するためのスコア関数を記憶している。また、本実施形態においては、記憶部22は、データとして、WFSTの遷移に重みとして割り当てられなかったHMMの状態遷移スコア等を、スコア関数とともに記憶している。なお、記憶部22は、WFSTに記憶されていない他の情報を、データとして記憶していてもよい。
ここで、デコーダ20は、トークンパッシングの手法で、WFSTを探索する。そして、WFSTの探索中において、デコーダ20は、WFSTから取得したスコア識別子と信号または信号の特徴量とを引数として、スコア関数を呼び出して、信号スコアを算出することができる。また、デコーダ20は、WFSTの重みを記憶部22から取得することができる。さらに、記憶部22にスコア関数とともに記憶されているHMMの状態遷移スコアがあれば、これも取得することができる。これにより、デコーダ20は、探索中の経路上の遷移の重みと信号スコアとを累積した累積スコアを算出することができる。HMMの状態遷移スコアがあれば、それについても累積スコアに累積することができる。
また、記憶部22に記憶されたWFSTは、HMMの自己遷移を含んでおらず、入力記号には、信号スコアを算出するためのスコア識別子が割り当てられている。例えば、記憶部22に記憶されたWFSTは、HMMを、HMM埋め込み法で変換した後のWFSTである。
さらに、記憶部22に記憶されているWFSTは、1つの状態に対して、複数種類の入力記号が割り当てられた遷移が入力されることを許容している。すなわち、記憶部22には、図5の変換部201による変換前のWFSTが記憶されている。従って、記憶部22に記憶されているWFSTは、図5の変換部201による変換後のWFSTに比べて状態数および遷移数が少ない。
(デコーダ20の構成)
図7は、デコーダ20のブロック図である。デコーダ20は、トークン記憶部31と、トークン操作部32と、スコア算出部33と、重複除去部34と、枝刈部35と、出力部36とを有する。
トークン記憶部31は、1または複数のトークンを記憶する。トークン記憶部31は、信号または信号の特徴量が入力される前においては、初期状態が割り当てられたトークンを記憶する。
トークン記憶部31は、複数のトークンのそれぞれを、割り当てられた状態に関連付けて記憶する。トークン記憶部31は、WFSTの状態と複数のトークンとを関連付けることができれば、どのようにトークンを記憶していてもよい。例えば、それぞれのトークンが、割り当てられた状態を示す情報を保持していてもよい。WSFTのそれぞれ状態の状態に互いに異なる番号が割り当てられていれば、それぞれのトークンは、その番号を、割り当てられた状態を示す情報として保持する。状態がメモリ上に保持されていれば、状態が記録されているメモリのアドレスを、割り当てられた状態を示す情報としてもよい。また、トークン記憶部31は、WFSTの状態のそれぞれを表すテーブルにより、状態とトークンとの関連付けを管理してもよい。
複数のトークンのそれぞれは、最後に通過した遷移に割り当てられた入力記号(スコア識別子)を保持する。また、複数のトークンのそれぞれは、対応する経路の先頭の状態から到達した状態までの出力記号を接続した出力記号列を保持する。また、複数のトークンのそれぞれは、そのトークンが表す経路上のそれぞれの入力記号(スコア識別子)から算出された信号スコアと、経路上の遷移に割り当てられた重み(状態遷移スコア等)とを累積した累積スコアを保持する。
トークン操作部32は、信号または信号の特徴量を入力する毎に、トークン記憶部31に記憶されている複数のトークンのそれぞれを、WFSTに従って移動させる。ここで、トークンを移動させるとは、そのトークンに割り当てられている状態を、次の状態に変更することをいう。
この場合において、トークン操作部32は、トークンに割り当てられている状態から出て行く遷移が複数存在する場合には、複数の遷移のそれぞれに対応させてトークンを作成し、作成したそれぞれのトークンを対応する遷移に従って次の状態に移動させる。さらに、トークン操作部32は、トークンに割り当てられている状態から出て行く遷移に割り当てられた入力記号が空である場合、空ではない入力記号が割り当てられている遷移を通過するまでトークンを移動させる。
スコア算出部33は、トークン操作部32がトークンを入力記号が空でない遷移を通過するまで移動させる毎に、複数のトークンのそれぞれに対して、信号スコア、および、累積スコアを算出する。より詳しくは、スコア算出部33は、複数のトークンのそれぞれに対して、直前の移動により通過した遷移に割り当てられた入力記号(スコア識別子)に対応するスコア関数を呼び出して、入力記号に基づき信号スコアを算出する。また、スコア算出部33は、複数のトークンのそれぞれに対して、そのトークンが表す経路上の重みおよび信号スコアを累積した累積スコアを算出する。そして、スコア算出部33は、算出した信号スコア、および、累積スコアを、トークン記憶部31に記憶された対応するトークンに保持させる。なお、重みの付いていない有限状態トランスデューサを探索する場合には、スコア算出部33は、重みに関する処理を実行せずに、重みを0として累積スコアを算出する。
重複除去部34は、トークン操作部32がトークンを入力記号が空でない遷移を通過するまで移動させる毎に、トークンの重複を除去する。より詳しくは、重複除去部34は、割り当てられた状態が同一であり、且つ、最後に通過した遷移に割り当てられた入力記号が同一である2以上のトークンの重複を除去する。重複除去部34は、一例として、割り当てられた状態が同一であり、且つ、最後に通過した遷移に割り当てられた入力記号が同一である2以上のトークンのうち、累積スコアが良い1つのトークンを残存させ、残りのトークンを廃棄する。
この場合において、重複除去部34は、配列に記録された複数のトークンを、割り当てられた状態および入力記号が同一のトークンが隣接するように並べ替えをする。そして、重複除去部34は、配列に記録された複数のトークンにおける隣接するトークンを比較して、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンを検出してもよい。
また、重複除去部34は、複数のトークンのそれぞれに対して、割り当てられた状態および最後に通過した遷移の入力記号のハッシュ値を算出する。そして、重複除去部34は、算出したハッシュ値を比較して、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンを検出してもよい。
また、重複除去部34は、最後に通過した遷移の入力記号が同一のトークンを含む集合を生成する。そして、重複除去部34は、それぞれの集合毎に、割り当てられた状態が同一であるか判定して、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンを検出してもよい。
枝刈部35は、トークン操作部32がトークンを入力記号が空でない遷移を通過するまで移動させる毎に、トークン記憶部31に記憶されている複数のトークンのうち、累積スコアが一定以上悪いトークンを除去する。枝刈部35は、一例として、複数のトークンのうちの最良の累積スコアから、一定値以上悪い累積スコアのトークンを除去する。
出力部36は、信号または信号の特徴量の入力が終了した後に、トークン記憶部31に記憶されている複数のトークンのうち、累積スコアが最良となるトークンを検出する。そして、出力部36は、検出したトークンに保持されている出力記号列を認識結果として出力する。
(処理フロー)
図8は、第1実施形態に係るデコーダ20の処理順序を示すフローチャートである。まず、信号の入力が開始されると、特徴抽出部12が信号から特徴量を抽出してデコーダ20に供給する。そして、デコーダ20は、ステップS101から処理を開始する。
まず、ステップS101において、デコーダ20は、特徴抽出部12から特徴量を取得する。続いて、ステップS102において、デコーダ20は、特徴量の取得に成功したか否かを判断する。デコーダ20は、特徴量の取得に成功した場合には(ステップS102のYes)、処理を、ステップS103からステップS107までのループ処理に進める。なお、デコーダ20は、ステップS101の前に、ステップS102を実行してもよい。この場合、ステップS102において、デコーダ20は、次に特徴量を取得できるか否かを判断する。
ステップS103からステップS107のループ処理において、デコーダ20は、全てのトークンのそれぞれに対してステップS104からステップS106までの処理を実行する。ステップS104において、デコーダ20は、対応するトークンをそれが割り当てられた状態から、WFSTに示された遷移に従って次の状態に移動させる。この場合において、デコーダ20は、入力記号が空でない遷移を通過するまでトークンを移動させる。
続いて、ステップS105において、デコーダ20は、最後に通過した遷移に割り当てられた入力記号をトークンに記録する。続いて、ステップS106において、デコーダ20は、トークンが通過した遷移に割り当てられた重みを取得して、取得した重みをトークンの累積スコアに加算する。
ステップS103からステップS107のループ処理が完了すると、デコーダ20は、処理をステップS108に進める。ステップS108において、デコーダ20は、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンが存在するかを検出する。そして、デコーダ20は、このような2以上のトークンが存在した場合には、最も累積スコアが良い1つのトークンを残して、残りのトークンを破棄する。
続いて、デコーダ20は、ステップS109からステップS111までのループ処理に進める。ステップS109からステップS111のループ処理において、デコーダ20は、全てのトークンのそれぞれに対してステップS110の処理を実行する。ステップS110において、デコーダ20は、対応するトークンの信号スコアを算出する。そして、デコーダ20は、対応するトークンに保持されている累積スコアに算出した信号スコアを加算することにより、累積スコアを更新する。
ステップS109からステップS111のループ処理が完了すると、デコーダ20は、処理をステップS112に進める。ステップS112において、デコーダ20は、累積スコアが一定以上悪いトークンを除去する。ステップS112が完了すると、デコーダ20は、処理をステップS101に戻す。そして、デコーダ20は、特徴量が入力される毎に、ステップS103からステップS112までの処理を繰り返して実行する。
一方、特徴量の取得に成功しなかった場合、すなわち、信号の入力が終了した場合には(ステップS102のNo)、デコーダ20は、処理をステップS113に進める。
ステップS113において、デコーダ20は、複数のトークンのうち累積スコアが最良のトークンを検出する。そして、デコーダ20は、累積スコアが最良のトークンに保存された出力記号列を認識結果として出力する。デコーダ20は、ステップS113の処理を完了すると、本フローを終了する。
(擬似コード)
図9は、第1実施形態に係るデコーダ20の処理内容を表す擬似コードを示す図である。つぎに、図9に示すデコーダ20により実行される擬似コードを参照して、デコーダ20の詳細な処理例を説明する。
tは、トークンを表す。Tは、トークンの集合を表す。Tは、初期状態のトークンの集合または前の時刻でのトークンの集合を表す。前の時刻でのトークンの集合とは、直前に実行した13行目の処理で得られたトークンの集合である。
state(t)は、トークンtに割り当てられる状態を表す。score(t)は、トークンtが保持している累積スコアを表す。input(t)は、トークンtが保持している入力記号を表す。word(t)は、トークンtが保持している出力記号列を表す。4つの要素の組で表す場合は、(状態,入力記号,スコア,出力記号列)と記載する。
なお、本擬似コードにおいては、スコアは大きい方が良いとして処理を実行する。もっとも、擬似コード中の関数maxを関数minに変更し、スコアを比較する場合に大小関係を反転する等の変形をすれば、スコアは小さい方が良いとして処理を実行することができる。
beamは、枝刈りのための基準となるスコア差を表す。
εは、記号列が空であることを表す。入力記号がεである場合、入力記号にスコア識別子が割り当てられていないことを表す。同様に、出力記号がεである場合、単語等の認識結果として出力される情報が出力記号に割り当てられていないことを表す。
入力記号がεである遷移を、本実施形態においてはε遷移または空遷移と呼ぶ。eは、遷移を表す。n(e)は、遷移eの次状態を表す。input(e)は、遷移eの入力記号を表す。output(e)は、遷移eの出力記号を表す。w(e)は、遷移eの重みを表す。
通常、WFSTには初期重みがあるが、本実施形態では、WFSTの初期重みと終了重みは0である。初期状態1つに対して、遷移と状態を1つずつ追加し、初期重みを追加した遷移に割り当てるように、WFSTを予め変形されていればよい。もっとも、初期重みを考慮した擬似コードとするには、1行目で作成するトークンの累積重みに、初期重みを追加すればよい。終了重みを考慮する場合には、14行目のargmax算出時のスコアに終了重みを加算してから、argmaxを算出すればよい。
以下、各行で行われる処理について説明する。デコーダ20は、図9に示される擬似コードの各行に示された処理を、1行目から順次に実行する。
1行目では、デコーダ20は、トークンの集合を初期化する。トークンの集合は、一例として、配列、単方向リストまたは二分木等で実現することができる。また、デコーダ20は、9行目で重複要素が存在しなくなるので、1行目では、重複要素の削除を行ってもよいし、行わなくてもよい。
2行目では、デコーダ20は、信号の入力が終了したか否かを判定する。終了していれば、デコーダ20は、結果を出力するために14行目に処理を移す。まだ、処理すべき信号がある場合は、デコーダ20は、3行目から13行目の処理を行う。
3行目では、デコーダ20は、入力された信号の特徴量を特徴抽出部12から受け取る。デコーダ20は、受け取った特徴量をvに代入する。なお、疑似コードでは、特徴量を、feature vectorと記載している。
4行目では、入力記号がεであるトークンを集合Tから除去してから、TをTにコピーする。デコーダ20が参照するWFSTは、HMMの自己遷移が含まれていないため、自己遷移があるものとみなしてトークンを移動させる必要がある。WFSTのそれぞれの状態は、入ってくる遷移の入力記号がεでなければ自己遷移がある。トークンが保持する入力記号がεでなければ入ってくる遷移の入力記号がεでないことを意味する。従って、4行目で、デコーダ20は、入力記号がεであるトークンをTから除去することにより、自己遷移の処理をすることができる。
5行目は、Tに含まれるそれぞれのトークンについて、6行目から8行目の処理を行うことを示す。
関数outgoingは、WFSTにε遷移が含まれていない場合、state(t)から出ていく遷移の集合を返す。
関数outgoingは、WFSTにε遷移が含まれている場合、state(t)から出ていくε遷移以外の遷移と、state(t)からε遷移を辿ることで到達できる入力記号がεでない遷移とを含む集合Eを返す。ただし、関数outgoingは、その遷移に至る経路が複数ある場合には、経路上の重みを累積した値が最も大きい経路のみを選択する。重みを累積した値が最も大きい経路の探索には例えばDijkstraのアルゴリズムやBellman‐Fordのアルゴリズムを用いればよい。
また、関数outgoingは、集合Eに含まれるそれぞれの遷移eの重みを、state(t)から遷移eまでに至る経路(遷移eを含む)上の重みを累積した値に変形する。また、関数outgoingは、集合Eに含まれるそれぞれの遷移eの出力記号を、state(t)から遷移eまでに至る経路(遷移eを含む)上の出力記号を繋ぎ合わせた記号列に変形する。
なお、遷移eに至る経路上の出力記号列が複数ある場合で、全ての出力記号列を残したい場合は、関数outgoingは、次のようにすればよい。ある経路の出力記号列をxとする。xと同じ出力記号列が割り当てられている経路上の重みのうち最も大きい重みと、遷移eの重みとを加算した値をwとする。関数outgoingは、処理結果として返す集合に、出力記号列がx、重みがw、それ以外の要素がeと同じである遷移を追加する。
7行目では、デコーダ20は、新しいトークンtnewを作成する。トークンtnewに割り当てられる状態は、eの次状態である。トークンtnewの累積スコアは、tの累積スコアにeの重みを加算した値である。トークンtnewの出力記号列は、tの出力記号列の最後にeの出力記号列をつなげた記号列である。
8行目では、デコーダ20は、7行目で作成した新しいトークンtnewをトークンの集合Tに追加する。
9行目では、デコーダ20は、同じ状態が割り当てられ、且つ、最後に通過した遷移の入力記号が同一の2以上のトークンが存在するかを検出する。そして、デコーダ20は、同じ状態が割り当てられ、且つ、最後に通過した遷移の入力記号が同一の2以上のトークンが存在すれば、それらの2以上のトークンのうち累積スコアが最良のトークンを残存させ、他を除去する。
例えば、デコーダ20は、配列に記録された複数のトークンを、割り当てられた状態および最後に通過した遷移の入力記号が同一のトークンが隣接するように並べ替えをする。そして、デコーダ20は、配列に記録された複数のトークンにおける隣接するトークンを比較して、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンを検出する。
また、例えば、デコーダ20は、入力記号と状態とを引数にとるハッシュ関数を用いてハッシュ値を算出し、算出したハッシュ値が同一のトークンを検出する。デコーダ20は、ハッシュ値が同一の2以上のトークンを検出した場合には、それらのトークンの入力記号と割り当てられている状態とを比較する。
また、デコーダ20は、最後に通過した遷移の入力記号が同一のトークンを含む集合を生成する。そして、デコーダ20は、それぞれの集合毎に、割り当てられた状態が同一であるか判定して、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンを検出する。このような処理により、デコーダ20は、容易に、最後に通過した遷移の入力記号が同一で且つ割り当てられている状態が同一の2以上のトークンを検出することができる。
10行目は、Tに含まれるそれぞれのトークンtについて、11行目を処理することを示す。
11行目では、デコーダ20は、スコア関数am_scoreにより信号スコアを算出する。スコア関数am_scoreは、第1引数に特徴量、第2引数にスコア識別子(入力記号)をとり、信号スコアを返す。さらに、HMMの状態遷移スコアがある場合は、それも信号スコアに含めて返す。デコーダ20は、スコア関数am_scoreにより算出した値を、tの累積スコアscore(t)に加算する。
12行目と13行目は、トークンの枝刈りを行う。12行目では、デコーダ20は、Tに含まれるトークンの累積スコアのうち、最も良い累積スコアをwmaxに代入する。
13行目では、デコーダ20は、wmaxからwbeamを引いた値以下の累積スコアを保持しているトークンをTから除去する。wbeamには、事前に与えられる固定値を用いてもよいし、トークンの数が一定値以内に収まるように算出される値を用いてもよい。なお、トークンの数で枝刈りする方法は、ヒストグラム枝刈りと呼ばれる。
14行目では、デコーダ20は、WFSTの終了状態が割り当てられているトークンのうち、最も累積スコアが大きいトークンを検出し、検出したトークンが保持している出力記号列を認識結果として出力する。
(トークンの除去例)
図10は、Tに含まれる移動前のトークンの一例を示す図である。図11は、図10に示すトークンを移動した後にTに含まれるトークンの一例を示す図である。以下、トークンの移動時に何れのトークンが残るかについて説明する。なお、図10および図11には、WFSTの一部を示しており、初期状態および終了状態は示されていない。
トークンを移動させる前の状態(図10)では、トークンtは状態2に、トークンtは状態6に、トークンtは状態9に、トークンtは状態7に割り当てられている。従って、移動する前のトークンの集合は、T={(2,b,−1,blue),(6,b,−3,red),(9,b,−5,green),(7,b,−3,red)}となる。Tに含まれるトークンを、遷移として明示的に表現されていない自己遷移に沿って移動させても、結果は同一である。そのため、図9の擬似コードの4行目の処理が完了した時点では、T=Tとなる。
図9の擬似コードの5行目から8行目の処理を完了すると、遷移に沿って移動させたトークンが加わる。従って、T={(2,b,−1,blue),(6,b,−3,red),(9,b,−5,green),(7,b,−3,red),(4,b,−8,blue black),(4,b,−6,red),(7,b,−4,red),(7,b,−7,green white)}となる。
図9の擬似コードの9行目の処理によって、割り当てられている状態と最後に通過した遷移の入力記号とが同じトークンがある場合は、その中で最良の累積スコア(本例の場合、最も大きい累積スコア)のトークンが1つ残る。なお、累積スコアが同一で且つ累積スコアが最良の場合は、デコーダ20は、最良の累積スコアを保持しているトークンのうち、任意の1つを残せばよい。この場合、デコーダ20は、ランダムにトークンを選択してもよいし、トークンが記録されているメモリのアドレス値が最も小さいトークンを選択してもよいし、最も大きいトークンを選択してもよい。
図9の擬似コードの9行目の処理が完了すると、図10に示すように、T={(2,b,−1,blue),(6,b,−3,red),(9,b,−5,green),(7,b,−3,red),(4,b,−8,blue black),(4,b,−6,red)}となる。(7,b,−4,red)と(7,b,−7,green white)の2つが(7,b,−3,red)に比べてスコアが小さいため除去されている。
(ハードウェア構成)
図12は、第1実施形態に係るパターン認識装置10のハードウェアブロック図である。パターン認識装置10は、CPU(Central Processing Unit)101と、操作部102と、表示部103、マイクロフォン104と、ROM(Read Only Memory)105と、RAM(Random Access Memory)106と、記憶部107と、通信装置108と、バス109とを備える。各部は、バス109により接続される。
CPU101は、RAM106の所定領域を作業領域としてROM105または記憶部107に予め記憶された各種プログラムとの協働により各種処理を実行し、パターン認識装置10(特徴抽出部12およびデコーダ20)を構成する各部の動作を統括的に制御する。また、CPU101は、ROM105または記憶部107に予め記憶されたプログラムとの協働により、操作部102、表示部103、マイクロフォン104および通信装置108等を実現させる。
操作部102は、マウスやキーボード等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をCPU101に出力する。
表示部103は、LCD(Liquid Crystal Display)等の表示装置である。表示部103は、CPU101からの表示信号に基づいて、各種情報を表示する。例えば、表示部103は、デコーダ20が出力する認識結果を表示する。なお、通信装置108または記憶部107等に認識結果を出力する場合には、パターン認識装置10は、表示部103を備えなくてもよい。
マイクロフォン104は、音声信号を入力するデバイスである。予め記録された音声信号または通信装置108から入力される音声信号のパターン認識をする場合、または、音声以外の信号のパターン認識をする場合には、パターン認識装置10は、マイクロフォン104を備えなくてもよい。
ROM105は、パターン認識装置10の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。RAM106は、SDRAM(Synchronous Dynamic Random Access Memory)等の揮発性の記憶媒体である。RAM106は、CPU101の作業領域として機能する。具体的には、パターン認識装置10が用いる各種変数およびパラメータ等を一時記憶するバッファ等として機能する。
記憶部107は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶部107は、パターン認識装置10の制御に用いられるプログラムおよび各種設定情報等を記憶する。また、記憶部107は、スコア関数のパラメータおよびWFSTに係る各種の情報等を予め記憶する。
通信装置108は、外部の機器と通信して、音声信号の入力および認識結果の出力等に用いられる。予め記録された音声信号またはマイクロフォン104から入力した音声信号のパターン認識をする場合であり、認識結果を表示部103または記憶部107に出力する場合には、パターン認識装置10は、通信装置108を備えなくてもよい。
なお、手書き文字のパターン認識を行う場合には、パターン認識装置10は、筆跡入力装置をさらに備える。また、OCRを行う場合には、パターン認識装置10は、スキャナまたはカメラ等をさらに備える。また、ジェスチャ認識、手信号の認識または手話認識を行う場合には、パターン認識装置10は、動画像信号を入力するビデオカメラをさらに備える。音声を利用しないこれらのパターン認識を行う場合には、パターン認識装置10は、マイクロフォン104を備えなくてもよい。
本実施形態のパターン認識装置10で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでCD−ROM、フレキシブルディスク(FD)、CD−R、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
また、本実施形態のパターン認識装置10で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態のパターン認識装置10で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態のパターン認識装置10で実行されるプログラムを、ROM等に予め組み込んで提供するように構成してもよい。
本実施形態のパターン認識装置10で実行されるプログラムは、上述した特徴抽出部12およびデコーダ20(トークン記憶部31、トークン操作部32、スコア算出部33、重複除去部34、枝刈部35、出力部36)を含むモジュール構成となっており、CPU101(プロセッサ)が記憶媒体等からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、特徴抽出部12およびデコーダ20(トークン操作部32、スコア算出部33、重複除去部34、枝刈部35、出力部36)が主記憶装置上に生成されるようになっている。なお、特徴抽出部12およびデコーダ20の一部または全部がハードウェアにより構成されていてもよい。
(効果)
以上のように、本実施形態に係るデコーダ20は、入力記号にスコア関数を特定するスコア識別子を割り当てたWFSTを用いている。これにより、本実施形態に係るデコーダ20によれば、遷移にトークンを割り当てる処理およびスコア関数のパラメータを除くHMMのデータを別途保持する必要が無くなり、構成が簡単になる。
そして、本実施形態に係るデコーダ20は、割り当てられた状態と最後に通過した遷移の入力記号とが同一のトークンの重複を排除する。これにより、デコーダ20は、自己遷移を正しく取り扱うために、1つの状態に入ってくる遷移に割り当てられる入力記号を1種類とするようにWFSTを展開しておく必要が無くなり、状態数および遷移数を少なくし、記憶領域を削減することができる。
<第2実施形態>
図13は、第2実施形態に係るデコーダ40のブロック図である。図14は、第2実施形態に係るデコーダ40の処理内容を表す擬似コードを示す図である。
なお、第2実施形態に係るデコーダ40は、第1実施形態のデコーダ20に代えて、パターン認識装置10に備えられる。デコーダ40を構成および実行するプログラムは、第1実施形態に係るデコーダ20と略同一であるので、同一の機能および構成については図面中に同一の符号を付して詳細な説明を省略し、相違点について説明する。
デコーダ40は、ソーティング部41をさらに備える。ソーティング部41は、トークン記憶部31に記憶された複数のトークンをソート(並べ替え)する。
複数のトークンが同じスコア識別子を保持している場合がある。そのため、図9の擬似コードの11行目で、デコーダ40は、同じ引数でスコア関数を呼び出す場合がある。そこで、スコア関数は、2以上の計算結果を記憶するキャッシュを用いて、引数が同じ場合に再計算をせずに計算結果を返す。これにより、スコア関数は、同じ引数で呼び出された場合の計算量を削減することができる。
しかし、キャッシュが大きくなると、デコーダ40の記憶領域が増加してしまう。そこで、ソーティング部41は、スコア関数の引数が同じ場合の再計算を無くすとともに、スコア関数の計算結果を記憶する容量を小さくするように、トークン記憶部31に記憶された複数のトークンをソートする。
より具体的には、ソーティング部41は、同一の種類の入力記号を保持するトークンがまとまるように複数のトークンをソートする。そして、スコア算出部33は、入力記号毎に信号スコアを1回算出する。例えば、スコア算出部33は、最後に計算した信号スコアを1個だけ記憶する記憶領域を有し、同一の入力記号に対して1回目だけ信号スコアを計算し、2回目以降は計算をせずにその記憶領域から信号スコアを出力する。
ソーティング部41は、一例として、連想配列の添え字に入力記号を割り当て、値にトークンの集合を割り当てる。これにより、ソーティング部41は、それぞれの値に含まれるトークンの集合を、全て同一の入力記号とすることができる。例えば、デコーダ40は、図9の擬似コードの9行目から11行目に代えて、図14の擬似コードを実行する。
これにより、デコーダ40は、同じ引数で、2回以上スコア関数を呼び出すことはなくなる。なお、図14の擬似コードでは、Yは、2つの要素の組(入力記号,トークンの集合)を要素とする集合を表す。Yに含まれる2つの要素の組における、1つ目の要素である入力記号に重複は存在しない。
また、ある2つの要素の組の1つ目の値をi、2つ目の値をTとすると、Tに含まれるトークンが保持している入力記号は、全てiである。従って、図14の12行目にあるように先にスコア関数am_scoreを呼び出し、その結果をsに代入しておくことで、14行目でスコア関数を呼び出さなくてもよくなる。
また、トークン記憶部31は、トークンの集合を配列で保持してもよい。これにより、トークン記憶部31は、データ構造を大きく変更せずに、トークンの集合を記憶することができる。
この場合、図9の擬似コードの9行目を実行するには、まず、ソーティング部41は、トークンをソートする。その後、重複除去部34は、隣接するトークンの入力記号と状態とが同じであるかを判定すればよい。ただし、この場合、ソーティング部41は、第1キーを入力記号に割り当て、第2キーを状態に割り当てて、第1キーを優先してソートする。これにより、ソーティング部41は、入力記号が同一のトークンを隣接して配置することができる。
また、この場合、重複除去部34は、配列の先頭から順にそれぞれのトークンの信号スコアを算出する。さらに、重複除去部34は、最後に算出した信号スコアを1つだけ記憶する。これにより、重複除去部34は、配列のj番目のトークンの入力記号がj−1番目のトークンと同じ入力記号であった場合、j番目のトークンに対する信号スコアはj−1番目の音響スコアと同じとすることができる。従って、ソーティング部41は、このような場合にスコア関数の呼び出しを無くすことができる。
また、ソーティング部41は、クイックソートまたはマージソート等のどのようなアルゴリズムでソートをしてもよい。また、スコア識別子、つまり入力記号が、0以上の整数値で表され、とりうる値の最大値が記憶域に記録できる程度の範囲であれば、ソーティング部41は、バケットソートにより入力記号をソートしてもよい。
本実施形態に係るデコーダ40は、入力記号と状態とが同一のトークンを検出するために、入力記号(スコア識別子)毎にトークンをまとめる。これにより、デコーダ40は、ある時刻に入力された信号または特徴量と入力記号(スコア識別子)とに対するスコア関数の呼び出しを、入力記号毎に1回とすることができる。この結果、デコーダ40によれば、信号スコアの計算量を削減するとともに、算出結果を記憶しておく記憶領域を少なくすることができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
10 パターン認識装置
12 特徴抽出部
20 デコーダ
22 記憶部
31 トークン記憶部
32 トークン操作部
33 スコア算出部
34 重複除去部
35 枝刈部
36 出力部
40 デコーダ
41 ソーティング部
101 CPU
102 操作部
103 表示部
104 マイクロフォン
105 ROM
106 RAM
107 記憶部
108 通信装置
109 バス
201 変換部
202 音声認識デコーダ

Claims (15)

  1. 有限状態トランスデューサを探索して、入力された信号列または前記信号の特徴量列に応じた出力記号列を出力するデコーダであって、
    前記信号または前記特徴量を入力する毎に、探索中の経路の先頭の状態が割り当てられた複数のトークンのそれぞれを、前記有限状態トランスデューサに従って移動させるトークン操作部と、
    割り当てられた状態が同一であり、且つ、最後に通過した遷移に割り当てられた入力記号が同一である2以上のトークンの重複を除去する重複除去部と、
    を備えるデコーダ。
  2. 前記複数のトークンのそれぞれは、前記最後に通過した遷移の入力記号を保持する
    請求項1に記載のデコーダ。
  3. 前記複数のトークンのそれぞれは、割り当てられた状態を示す情報を保持する
    請求項1に記載のデコーダ。
  4. 前記有限状態トランスデューサのそれぞれの状態には、互いに異なる番号が割り当てられており、
    前記複数のトークンのそれぞれは、割り当てられた状態の番号を保持する
    請求項3に記載のデコーダ。
  5. 前記複数のトークンのそれぞれは、配列に記憶され、
    前記重複除去部は、前記配列に記録された前記複数のトークンを、割り当てられた状態および前記入力記号が同一のトークンが隣接するように並べ替えをし、前記配列に記録された前記複数のトークンにおける隣接するトークンを比較して、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンを検出する
    請求項1に記載のデコーダ。
  6. 前記入力記号は整数であり、
    前記複数のトークンを、割り当てられた状態および前記入力記号をバケットソートによりソートするソーティング部をさらに備える
    請求項5に記載のデコーダ。
  7. 前記複数のトークンのそれぞれに対して、前記最後に通過した遷移の入力記号に基づく信号スコアを算出するスコア算出部と、
    前記複数のトークンを前記最後に通過した遷移の入力記号をキーにしてソートするソーティング部と、
    をさらに備え、
    前記スコア算出部は、入力された信号列または前記信号の特徴量列の入力1回につき、前記入力記号毎に前記信号スコアを1回算出する
    請求項1に記載のデコーダ。
  8. 前記重複除去部は、前記複数のトークンのそれぞれに対して、前記割り当てられた状態および前記最後に通過した遷移の入力記号のハッシュ値を算出し、算出した前記ハッシュ値を比較して、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンを検出する
    請求項1に記載のデコーダ。
  9. 前記重複除去部は、前記最後に通過した遷移の入力記号が同一のトークンを含む集合を生成し、それぞれの集合毎に、前記割り当てられた状態が同一であるか判定して、割り当てられた状態が同一であり且つ最後に通過した遷移の入力記号が同一である2以上のトークンを検出する
    請求項1に記載のデコーダ。
  10. 前記集合毎に、前記最後に通過した遷移の入力記号に基づく信号スコアを算出するスコア算出部をさらに備える
    請求項9に記載のデコーダ。
  11. 前記トークン操作部は、前記信号または前記特徴量を入力する毎に、入力記号が空でない遷移を通過するまで前記トークンを移動させ、
    前記重複除去部は、入力記号が空でない遷移を通過するまで移動した後に前記トークンの重複を除去する
    請求項1に記載のデコーダ。
  12. 前記有限状態トランスデューサは、重み付き有限状態トランスデューサである
    請求項1に記載のデコーダ。
  13. 前記入力記号は、前記信号または前記特徴量から信号スコアを算出するためのアルゴリズムまたはデータの少なくとも一方を示すスコア識別子であり、
    前記複数のトークンのそれぞれに対して、前記最後に通過した遷移の入力記号に基づく信号スコアを算出するスコア算出部をさらに備える
    請求項1に記載のデコーダ。
  14. コンピュータにより、有限状態トランスデューサを探索して、入力された信号列または前記信号の特徴量列に応じた出力記号列を出力するデコード方法であって、
    前記信号または前記特徴量を入力する毎に、探索中の経路の先頭の状態が割り当てられた複数のトークンのそれぞれを、前記有限状態トランスデューサに従って移動させるトークン操作ステップと、
    割り当てられた状態が同一であり、且つ、最後に通過した遷移に割り当てられた入力記号が同一である2以上のトークンの重複を除去する重複除去ステップと、
    を含むデコード方法。
  15. コンピュータを、有限状態トランスデューサを探索して、入力された信号列または前記信号の特徴量列に応じた出力記号列を出力するデコーダとして機能させるためのプログラムであって、
    前記コンピュータを、
    前記信号または前記特徴量を入力する毎に、探索中の経路の先頭の状態が割り当てられた複数のトークンのそれぞれを、前記有限状態トランスデューサに従って移動させるトークン操作部と、
    割り当てられた状態が同一であり、且つ、最後に通過した遷移に割り当てられた入力記号が同一である2以上のトークンの重複を除去する重複除去部
    として機能させるプログラム。
JP2013265948A 2013-12-24 2013-12-24 デコーダ、デコード方法およびプログラム Active JP6404564B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2013265948A JP6404564B2 (ja) 2013-12-24 2013-12-24 デコーダ、デコード方法およびプログラム
US14/574,895 US10008200B2 (en) 2013-12-24 2014-12-18 Decoder for searching a path according to a signal sequence, decoding method, and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013265948A JP6404564B2 (ja) 2013-12-24 2013-12-24 デコーダ、デコード方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2015121707A true JP2015121707A (ja) 2015-07-02
JP6404564B2 JP6404564B2 (ja) 2018-10-10

Family

ID=53400696

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013265948A Active JP6404564B2 (ja) 2013-12-24 2013-12-24 デコーダ、デコード方法およびプログラム

Country Status (2)

Country Link
US (1) US10008200B2 (ja)
JP (1) JP6404564B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10109274B2 (en) 2014-11-28 2018-10-23 Kabushiki Kaisha Toshiba Generation device, recognition device, generation method, and computer program product
US10319373B2 (en) 2016-03-14 2019-06-11 Kabushiki Kaisha Toshiba Information processing device, information processing method, computer program product, and recognition system
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 (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9956404B2 (en) 2014-11-19 2018-05-01 Medtronic, Inc. Electrical stimulation to inhibit bladder and/or bowel contraction
EP3389768B1 (en) 2015-12-18 2023-03-01 Medtronic, Inc. High duty cycle electrical stimulation therapy
US10199037B1 (en) * 2016-06-29 2019-02-05 Amazon Technologies, Inc. Adaptive beam pruning for automatic speech recognition
US10525268B2 (en) 2016-08-23 2020-01-07 Medtronic, Inc. Delivery of independent interleaved programs to produce higher-frequency electrical stimulation therapy
US10569088B2 (en) 2016-09-16 2020-02-25 Medtronic, Inc. Dorsal spinal column characterization with evoked potentials
EP4230253A1 (en) 2016-10-28 2023-08-23 Medtronic, Inc. High frequency stimulation based on low frequency titration gauge
US11045650B2 (en) 2016-12-06 2021-06-29 Medtronic, Inc. High frequency neurostimulation for pelvic symptom control
EP3606601B1 (en) 2017-04-07 2024-02-07 Medtronic, Inc. Complex variation of electrical stimulation therapy parameters
WO2018232591A1 (en) * 2017-06-20 2018-12-27 Microsoft Technology Licensing, Llc. SEQUENCE RECOGNITION PROCESSING
US10987515B2 (en) 2017-10-10 2021-04-27 Medtronic, Inc. Management of electrical stimulation therapy
US11129989B2 (en) 2018-06-21 2021-09-28 Medtronic, Inc. ECAP based control of electrical stimulation therapy
CN112351813A (zh) 2018-06-21 2021-02-09 美敦力公司 电刺激治疗的基于ecap的控制
CN110047477B (zh) * 2019-04-04 2021-04-09 北京清微智能科技有限公司 一种加权有限状态转换机的优化方法、设备以及系统
US11547855B2 (en) 2019-10-25 2023-01-10 Medtronic, Inc. ECAP sensing for high frequency neurostimulation
US11931582B2 (en) 2019-10-25 2024-03-19 Medtronic, Inc. Managing transient overstimulation based on ECAPs
US11857793B2 (en) 2020-06-10 2024-01-02 Medtronic, Inc. Managing storage of sensed information
CN111933119B (zh) * 2020-08-18 2022-04-05 北京字节跳动网络技术有限公司 用于生成语音识别网络的方法、装置、电子设备和介质
US11707626B2 (en) 2020-09-02 2023-07-25 Medtronic, Inc. Analyzing ECAP signals
US11896828B2 (en) 2020-10-30 2024-02-13 Medtronic, Inc. Implantable lead location using ECAP

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0380366A (ja) * 1989-08-23 1991-04-05 Hitachi Ltd ストリングサーチ方法およびそのための装置
JPH03174652A (ja) * 1989-07-24 1991-07-29 Hitachi Ltd データ検索方法および装置
JPH10198392A (ja) * 1997-01-14 1998-07-31 Nippon Telegr & Teleph Corp <Ntt> 音声認識方法
JP2005070330A (ja) * 2003-08-22 2005-03-17 Toyota Central Res & Dev Lab Inc 音声認識装置及びプログラム
JP2005257910A (ja) * 2004-03-10 2005-09-22 Nippon Telegr & Teleph Corp <Ntt> 記号列変換方法及びその記号列変換方法を用いた音声認識方法、並びに記号列変換装置及びその記号列変換装置を用いた音声認識装置

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2880192B2 (ja) 1989-09-08 1999-04-05 株式会社日立製作所 文字列検索方法及び装置
EP0437615B1 (en) 1989-06-14 1998-10-21 Hitachi, Ltd. Hierarchical presearch-type document retrieval method, apparatus therefor, and magnetic disc device for this apparatus
US6282541B1 (en) * 1997-07-28 2001-08-28 International Business Machines Corporation Efficient groupby aggregation in tournament tree sort
GB2404040A (en) * 2003-07-16 2005-01-19 Canon Kk Lattice matching
GB2409750B (en) 2004-01-05 2006-03-15 Toshiba Res Europ Ltd Speech recognition system and technique
JP4241771B2 (ja) 2006-07-04 2009-03-18 株式会社東芝 音声認識装置及びその方法
JP4956334B2 (ja) 2007-08-29 2012-06-20 株式会社東芝 オートマトンの決定化方法、有限状態トランスデューサの決定化方法、オートマトン決定化装置及び決定化プログラム
GB2453366B (en) 2007-10-04 2011-04-06 Toshiba Res Europ Ltd Automatic speech recognition method and apparatus
JP5121650B2 (ja) 2008-09-26 2013-01-16 株式会社東芝 情報処理装置、情報処理方法及びプログラム
JP4977163B2 (ja) 2009-03-30 2012-07-18 株式会社東芝 有限状態トランスデューサ決定化装置及び有限状態トランスデューサ決定化方法
US8484154B2 (en) 2009-12-14 2013-07-09 Intel Corporation Methods and systems to traverse graph-based networks
JP5232191B2 (ja) 2010-03-19 2013-07-10 株式会社東芝 情報処理装置、情報処理方法およびプログラム
US8527436B2 (en) * 2010-08-30 2013-09-03 Stratify, Inc. Automated parsing of e-mail messages
JP5554304B2 (ja) 2011-09-16 2014-07-23 株式会社東芝 オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム
JP2013164572A (ja) 2012-01-10 2013-08-22 Toshiba Corp 音声特徴量抽出装置、音声特徴量抽出方法及び音声特徴量抽出プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH03174652A (ja) * 1989-07-24 1991-07-29 Hitachi Ltd データ検索方法および装置
JPH0380366A (ja) * 1989-08-23 1991-04-05 Hitachi Ltd ストリングサーチ方法およびそのための装置
JPH10198392A (ja) * 1997-01-14 1998-07-31 Nippon Telegr & Teleph Corp <Ntt> 音声認識方法
JP2005070330A (ja) * 2003-08-22 2005-03-17 Toyota Central Res & Dev Lab Inc 音声認識装置及びプログラム
JP2005257910A (ja) * 2004-03-10 2005-09-22 Nippon Telegr & Teleph Corp <Ntt> 記号列変換方法及びその記号列変換方法を用いた音声認識方法、並びに記号列変換装置及びその記号列変換装置を用いた音声認識装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SAON, GEORGE ET AL.: "Anatomy of an extremely fast LVCSR decoder", PROC. OF INTERSPEECH2005, JPN7017002571, 4 September 2005 (2005-09-04), pages 549 - 552 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US10319373B2 (en) 2016-03-14 2019-06-11 Kabushiki Kaisha Toshiba Information processing device, information processing method, computer program product, and recognition system
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
JP6404564B2 (ja) 2018-10-10
US10008200B2 (en) 2018-06-26
US20150179177A1 (en) 2015-06-25

Similar Documents

Publication Publication Date Title
JP6404564B2 (ja) デコーダ、デコード方法およびプログラム
JP6315980B2 (ja) デコーダ、デコード方法およびプログラム
US10741170B2 (en) Speech recognition method and apparatus
JP2775140B2 (ja) パターン認識方法、音声認識方法および音声認識装置
US9558748B2 (en) Methods for hybrid GPU/CPU data processing
JP5554304B2 (ja) オートマトン決定化方法、オートマトン決定化装置およびオートマトン決定化プログラム
US20140365221A1 (en) Method and apparatus for speech recognition
US9934452B2 (en) Pruning and label selection in hidden Markov model-based OCR
JP6618884B2 (ja) 認識装置、認識方法およびプログラム
JP6301647B2 (ja) 探索装置、探索方法およびプログラム
US10803858B2 (en) Speech recognition apparatus, speech recognition method, and computer program product
US20150220074A1 (en) Conversion device, pattern recognition system, conversion method, and computer program product
JP2018087935A (ja) 音声言語識別装置、その方法、及びプログラム
US10572538B2 (en) Lattice finalization device, pattern recognition device, lattice finalization method, and computer program product
Khassanov et al. Enriching rare word representations in neural language models by embedding matrix augmentation
Rybach et al. On lattice generation for large vocabulary speech recognition
KR20230156425A (ko) 자체 정렬을 통한 스트리밍 asr 모델 지연 감소
JP6220733B2 (ja) 音声分類装置、音声分類方法、プログラム
JP5113863B2 (ja) 用語抽出方法とその装置と、プログラム
JP2009092844A (ja) パタン認識方法および装置ならびにパタン認識プログラムおよびその記録媒体
JP2008058679A (ja) 音響モデル作成装置及び音声認識装置並びに音響モデル作成プログラム
KR20160084724A (ko) 연속어 음성인식에서 실시간 역추적 방법 및 이를 이용한 음성인식 장치
JP2015153240A (ja) パターン認識装置、パターン認識方法およびプログラム
KR20230064466A (ko) 음성 인식 방법 및 장치
KR20220026325A (ko) 음성 인식에 관한 빔 서치 방법 및 장치

Legal Events

Date Code Title Description
RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20151102

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160829

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170719

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180227

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180403

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180913

R151 Written notification of patent or utility model registration

Ref document number: 6404564

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