(57)【要約】【課題】小さい計算コストで精度良く、入力信号をパターン認識させる。【解決手段】認識装置は、認識対象である入力信号をパターン認識する。認識装置は、算出部と、フィルタ部とを備える。算出部は、入力信号に基づき、記号毎のスコアを含む複数のスコアベクトルが並んだスコアベクトル列を算出する。フィルタ部は、算出されたスコアベクトル列のうちの一部のスコアベクトルを通過させる。フィルタ部は、最良のスコアに対応する代表記号が認識対象記号である第１スコアベクトル、代表記号が対象外記号であり、代表記号のスコアが第１閾値より悪い第２スコアベクトル、および、代表記号が対象外記号であり、代表記号のスコアが第１閾値または第１閾値より良い第３スコアベクトルのうち、予め定められた第１条件を満たす第３スコアベクトルを通過させる。【選択図】図１
2018081546.tif 000002
【特許請求の範囲】
【請求項１】
認識対象である入力信号をパターン認識する認識装置であって、
前記入力信号に基づき、記号毎のスコアを含む複数のスコアベクトルが並んだスコアベクトル列を算出する算出部と、
算出された前記スコアベクトル列のうちの一部のスコアベクトルを通過させるフィルタ部と、
を備え、
前記フィルタ部は、
最良のスコアに対応する代表記号が認識対象記号である第１スコアベクトル、
前記代表記号が対象外記号であり、前記代表記号のスコアが第１閾値より悪い第２スコアベクトル、および、
前記代表記号が前記対象外記号であり、前記代表記号のスコアが前記第１閾値または前記第１閾値より良い第３スコアベクトルのうち、予め定められた第１条件を満たす前記第３スコアベクトルを通過させる
認識装置。
【請求項２】
前記フィルタ部は、前記第３スコアベクトルのうち、前記第１条件を満たさない前記第３スコアベクトルを削除する
請求項１に記載の認識装置。
【請求項３】
前記フィルタ部から出力された前記スコアベクトル列を受け取り、受け取った前記スコアベクトル列における尤もらしいスコアを辿る記号の経路を探索することにより前記入力信号のパターン認識結果を生成する探索部と、
をさらに備える請求項１または２に記載の認識装置。
【請求項４】
前記探索部は、経路上の連続する同一の前記認識対象記号を１つにまとめて、前記入力信号のパターン認識結果を生成する
請求項３に記載の認識装置。
【請求項５】
前記探索部は、経路上の連続する同一の前記認識対象記号を１つにまとめた後、経路上の前記対象外記号を除いて、前記入力信号のパターン認識結果を生成する
請求項４に記載の認識装置。
【請求項６】
前記フィルタ部は、連続したＫ（Ｋは２以上の整数）個の前記第３スコアベクトルのうちの、１個以上、Ｋ−１個以下の前記第３スコアベクトルを、前記第１条件を満たす前記第３スコアベクトルとする
請求項１から５の何れか１項に記載の認識装置。
【請求項７】
前記フィルタ部は、連続したＫ（Ｋは２以上の整数）個の前記第３スコアベクトルのうちの、１個の前記第３スコアベクトルを、前記第１条件を満たす前記第３スコアベクトルとする
請求項６に記載の認識装置。
【請求項８】
前記フィルタ部は、連続したＫ（Ｋは２以上の整数）個の前記第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれる前記代表記号と、前記部分ベクトル列の直後のスコアベクトルに含まれる前記代表記号とが同一である場合、前記部分ベクトル列のうちの１個以上、Ｋ−１個以下の前記第３スコアベクトルを、前記第１条件を満たす前記第３スコアベクトルとする
請求項１から５の何れか１項に記載の認識装置。
【請求項９】
前記フィルタ部は、連続したＫ（Ｋは２以上の整数）個の前記第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれるスコアがｋｐ（ｋｐは１以上の整数）番目に良い記号と、前記部分ベクトル列の直後のスコアベクトルに含まれるスコアがｋｎ個（ｋｎは１以上の整数）番目に良い記号とが同一である場合、前記部分ベクトル列のうちの１個以上、Ｋ−１個の前記第３スコアベクトルを、前記第１条件を満たす前記第３スコアベクトルとする
請求項１から５の何れか１項に記載の認識装置。
【請求項１０】
前記フィルタ部は、連続したＫ（Ｋは２以上の整数）個の前記第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれるスコアが上位のｋｐ（ｋｐは１以上の整数）個の記号の集合と、前記部分ベクトル列の直後のスコアベクトルに含まれるスコアが上位のｋｐ個の記号の集合とが同一である場合、前記部分ベクトル列のうちの１個以上、Ｋ−１個の前記第３スコアベクトルを、前記第１条件を満たす前記第３スコアベクトルとする
請求項１から５の何れか１項に記載の認識装置。
【請求項１１】
前記フィルタ部は、連続したＫ（Ｋは２以上の整数）個の前記第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれるスコアが上位のｋｐ（ｋｐは１以上の整数）個の記号と、前記部分ベクトル列の直後のスコアベクトルに含まれるスコアが上位のｋｎ（ｋｎは１以上の整数）個の記号との間に、少なくとも１つの同一の記号が含まれる場合、前記部分ベクトル列のうちの１個以上、Ｋ−１個の前記第３スコアベクトルを、前記第１条件を満たす前記第３スコアベクトルとする
請求項１から５の何れか１項に記載の認識装置。
【請求項１２】
前記算出部は、再帰型ニューラルネットワークによりスコアベクトルを算出する
請求項１から１１の何れか１項に記載の認識装置。
【請求項１３】
前記算出部は、前記再帰型ニューラルネットワークの出力層において、記号毎のスコアを出力するソフトマックス関数を演算する
請求項１２に記載の認識装置。
【請求項１４】
前記入力信号は、音声信号である
請求項１から１３の何れか１項に記載の認識装置。
【請求項１５】
認識対象である入力信号をパターン認識する認識方法であって、
前記入力信号に基づき、記号毎のスコアを含む複数のスコアベクトルが並んだスコアベクトル列を算出する算出ステップと、
算出された前記スコアベクトル列のうちの一部のスコアベクトルを通過させるフィルタステップと、
を実行し、
前記フィルタステップでは、
最良のスコアに対応する代表記号が認識対象記号である第１スコアベクトル、
前記代表記号が対象外記号であり、前記代表記号のスコアが第１閾値より悪い第２スコアベクトル、および、
前記代表記号が前記対象外記号であり、前記代表記号のスコアが前記第１閾値または前記第１閾値より良い第３スコアベクトルのうち、予め定められた第１条件を満たす前記第３スコアベクトルを通過させる
認識方法。
【請求項１６】
コンピュータを、認識対象である入力信号をパターン認識する認識装置として機能させるためのプログラムであって、
前記コンピュータを、
前記入力信号に基づき、記号毎のスコアを含む複数のスコアベクトルが並んだスコアベクトル列を算出する算出部と、
算出された前記スコアベクトル列のうちの一部のスコアベクトルを通過させるフィルタ部と、
して機能させ、
前記フィルタ部は、
最良のスコアに対応する代表記号が認識対象記号である第１スコアベクトル、
前記代表記号が対象外記号であり、前記代表記号のスコアが第１閾値より悪い第２スコアベクトル、および、
前記代表記号が前記対象外記号であり、前記代表記号のスコアが前記第１閾値または前記第１閾値より良い第３スコアベクトルのうち、予め定められた第１条件を満たす前記第３スコアベクトルを通過させる
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、認識装置、認識方法およびプログラムに関する。
【背景技術】
【０００２】
入力信号のパターンを認識して、入力された信号を記号列へと変換する認識装置が知られている。例えば、音声信号を認識する音声認識装置、および、画像から文字を認識するＯＣＲ（Optical  Character  Recognition）装置等が知られている。このような認識装置では、入力信号をフレーム単位に分割し、分割したフレーム毎にスコアの計算および記号列の探索を行う。
【０００３】
ところで、入力信号に含まれる情報が認識対象ではないことを表す記号を導入し、その記号のスコアが十分に大きい場合に探索処理をスキップする認識装置も存在する。このような認識装置では、認識対象ではない記号を探索するための処理をスキップするので、計算コストを小さくすることができる。
【０００４】
しかし、従来の認識装置では、認識対象ではない記号をスキップしすぎると、認識率が低下してしまう場合があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許公開２０１６−００８６６００号公報
【非特許文献】
【０００６】
【非特許文献１】R.  A.  Sukkar  et.  al.，  “Reducing  computational  complexity  and  response  latency  through  the  detection  of  contentless  frames”，  in  Proc.  of  ICASSP，  Vol.6，  pp.  3751-3754，  2000年
【非特許文献２】Zhehuai  Chen，  Wei  Deng，  Tao  Xu，  Kai  Yu，  “Phone  Synchronous  Decoding  with  CTC  Lattice”，  in  Proc.  of  INTERSPEECH，  2016年9月，  USA
【非特許文献３】Alex  Graves  and  Navdeep  Jaitly，  “Towards  end-to-end  speech  recognition  with  recurrent  neural  networks”，  in  Proceedings  of  the  31st  International  Conference  on  Machine  Learning  （ICML-14），pp.1764−1772,  2014年
【非特許文献４】Yichuan  Tang，  “Deep  Learning  using  Linear  Support  Vector  Machines"，  arXiv:1306.0239v4  [cs.LG]，  2015年2月21日
【発明の概要】
【発明が解決しようとする課題】
【０００７】
発明が解決しようとする課題は、小さい計算コストで精度良く、入力信号をパターン認識させることにある。
【課題を解決するための手段】
【０００８】
実施形態に係る認識装置は、認識対象である入力信号をパターン認識する。前記認識装置は、算出部と、フィルタ部とを備える。前記算出部は、前記入力信号に基づき、記号毎のスコアを含む複数のスコアベクトルが並んだスコアベクトル列を算出する。前記フィルタ部は、算出された前記スコアベクトル列のうちの一部のスコアベクトルを通過させる。前記フィルタ部は、最良のスコアに対応する代表記号が認識対象記号である第１スコアベクトル、前記代表記号が対象外記号であり、前記代表記号のスコアが第１閾値より悪い第２スコアベクトル、および、前記代表記号が前記対象外記号であり、前記代表記号のスコアが前記第１閾値または前記第１閾値より良い第３スコアベクトルのうち、予め定められた第１条件を満たす前記第３スコアベクトルを通過させる。
【図面の簡単な説明】
【０００９】
【図１】実施形態に係る認識装置の構成を示す図。
【図２】スコア算出部の構成の一例を示す図。
【図３】探索部の処理フローを示す図。
【図４】探索部が探索した記号列の一例を示す図。
【図５】図４に示す記号列から連続する認識対象記号を削除する処理を示す図。
【図６】図５に示す記号列から認識対象記号以外を削除する処理を示す図。
【図７】フィルタ部の処理フローを示す図。
【図８】フィルタ部による処理前と処理後のスコアベクトル列の第１例を示す図。
【図９】フィルタ部による処理前と処理後のスコアベクトル列の第２例を示す図。
【図１０】認識装置による処理を表す疑似コードの一例を示す図。
【図１１】認識装置のハードウェアブロック図。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら実施形態について詳細に説明する。本実施形態に係る認識装置１０は、小さい計算コストで精度良く入力信号をパターン認識し、入力信号の認識結果を出力する。
【００１１】
認識装置１０は、入力信号により表される情報を認識し、認識結果を出力する。入力信号は、パターン認識可能な情報を含む信号であればどのような信号であってもよい。入力信号は、一例として、音声信号、筆跡を表す信号、文字を表す画像信号または手話等のジェスチャを表す動画像信号等である。
【００１２】
まず、実施の形態で用いる用語について説明する。
【００１３】
記号は、入力信号に含まれる、パターン認識可能な情報を表す。例えば、入力信号が音声信号である場合、記号は、音声信号に含まれる音響情報を表す。
【００１４】
なお、音響情報には、言語情報が含まれる。音響情報に含まれる言語情報は、話し手が言語を発声することにより音声信号に付加した、文字により表すことができる情報である。例えば、音響情報に含まれる言語情報は、音素、音節、モーラ単位でまとめた音素、サブワード、文字、単語等である。日本語の場合、言語情報は、仮名であってよい。また、英語の場合、言語情報は、発音記号であってもよいし、アルファベットであってもよい。
【００１５】
また、音響情報には、パラ言語情報および非言語情報が含まれてもよい。パラ言語情報は、話し手が発声することにより音声信号に付加した、言語情報からは識別できない情報である。パラ言語情報は、例えば、話し手が考え中であることを示すフィラー等である。非言語情報は、音声信号に含まれる話し手の特徴を表す情報である。例えば、非言語情報は、話し手の性別、話し手の年齢および話し手の身体的特徴等である。
【００１６】
また、音響情報には、無音情報が含まれてもよい。無音情報は、音声信号に、言語情報、パラ言語情報、非言語情報の何れも含まれない状態（例えば無音および雑音）を表す情報である。
【００１７】
記号集合は、記号を要素とする集合である。記号集合は、予め定義されている。記号集合は、記号として、少なくとも１つの認識対象記号と、対象外記号とを含む。
【００１８】
認識対象記号は、入力信号に含まれる情報のうちの、認識装置１０による認識対象の情報を表す記号である。例えば、入力信号が音声信号の場合、記号集合は、音声信号に含むことが可能な全ての言語情報に対応する文字（例えば、全ての発音記号）を、認識対象記号として含んでよい。また、認識装置１０が特定の単語のみを認識する場合（例えば「ｇｏｏｄ」のみを認識する場合）、記号集合は、特定の単語を認識するために必要な言語情報に対応する文字を、認識対象記号として含んでもよい。なお、パラ言語情報、非言語情報および／または無音情報を認識対象とする場合には、記号集合は、認識対象記号の一つとして、パラ言語情報、非言語情報および／または無音情報を表す記号を含んでもよい。
【００１９】
対象外記号は、認識対象記号が表す情報のうち、いずれの情報が入力信号に含まれているかが未定であることを表す記号である。つまり、対象外記号は、認識装置１０が認識対象記号をまだ認識できないことを表す記号である。より具体的には、対象外記号は、後述するスコア算出部２６がどの認識対象記号のスコアを良くするか決める処理を保留していることを表す記号である。対象外記号のスコアは、処理を保留しているとき良くなり、処理を保留していないとき悪くなる。従って、後述するフレーム１つ分の入力信号を入力したときに計算される対象外記号のスコアが良いとき、その入力信号は、認識対象の情報の一部または全部に対応することがある。
【００２０】
記号列は、入力信号を認識して得られる尤もらしい記号の系列である。認識装置１０は、１つの入力信号に対して、１個の記号列を生成してよい。また、認識装置１０は、１つの入力信号に対して、Ｍ個（Ｍは２以上の整数）の記号列を生成してもよい。
【００２１】
出力記号は、入力信号の認識結果を表す。音声信号を認識する場合、出力記号は、単語、文字、サブワード単語列等であってよい。出力記号は、記号列に含まれる認識対象記号に基づき生成される。認識装置１０は、１個の記号列から時系列に並んだ複数の出力記号を生成してもよい。時系列に並んだ複数の出力記号を、出力記号列と呼ぶ場合もある。
【００２２】
図１は、実施形態に係る認識装置１０の構成を示す図である。認識装置１０は、特徴抽出部２２と、パターン認識モデル記憶部２４と、スコア算出部２６と、フィルタ部２８と、探索モデル記憶部３０と、探索部３２とを備える。
【００２３】
特徴抽出部２２は、認識対象の入力信号を取得する。特徴抽出部２２は、例えば、入力信号として音声信号を取得する。
【００２４】
特徴抽出部２２は、フレーム毎に入力信号を解析して、フレーム毎に特徴ベクトルを算出する。特徴ベクトルは、入力信号に含まれる情報の特徴を表す複数種類の特徴量を含む。例えば、入力信号が音声信号の場合、特徴ベクトルは、音声の特徴を表す複数種類の特徴量を含む。フレームは、１つの特徴ベクトルを算出するための入力信号の区間である。フレームは、中心時刻が所定間隔毎にずれるように設定される。また、複数のフレームは、例えば互いに同一の時間長である。それぞれのフレームは、他のフレームと一部の区間が重なってもよい。
【００２５】
パターン認識モデル記憶部２４は、パターン認識モデルを記憶する。パターン認識モデルは、入力信号をパターン認識するためにスコア算出部２６により用いられるデータである。パターン認識モデルは、認識装置１０による入力信号の認識に先だって、学習装置により適切に訓練されている。パターン認識モデル記憶部２４は、例えばネットワーク上のサーバにより実現されてもよい。なお、認識装置１０が音声認識をする場合、パターン認識モデル記憶部２４は、音響モデルを記憶する。
【００２６】
スコア算出部２６は、特徴抽出部２２によりフレーム毎に算出された特徴ベクトルに基づき、パターン認識モデル記憶部２４に記憶されたパターン認識モデルを用いて、複数のスコアベクトルが並んだスコアベクトル列を算出する。それぞれのスコアベクトルは、予め定められた記号集合の要素である記号毎のスコアを含む。例えば、認識装置１０が音声認識をする場合、スコアベクトルは、記号毎の音響スコアを含む。
【００２７】
スコアベクトルに含まれるそれぞれのスコアは、何れかの記号に対応している。スコアは、対応する記号により表される情報が、入力信号に含まれている尤もらしさを表す。例えば、音響スコアは、対応する記号により表される音響情報が、音声信号に含まれている尤もらしさを表す。なお、入力信号に含まれている情報と、記号が表す情報とは、フレーム同期（時間同期）していなくてよい。すなわち、記号が表す情報は、入力信号に含まれている情報から遅延してもよい。例えば、入力信号が音声信号の場合、１５番目のフレームの特徴ベクトルの入力によってスコア算出部２６が計算するスコアベクトルに含まれる音響スコアのうち、最も良い音響スコアが対応する入力記号が表す音響情報が、１〜１０番目のフレームに含まれていてもよい。
【００２８】
スコアベクトルは、含まれる全てのスコアを合成した場合、特定値（例えば１）となるように正規化されている。例えば、スコアが確率または尤度である場合、スコアベクトルは、含まれる全てのスコアを加算すると、特定値となるように正規化されている。また、スコアが対数確率または対数尤度である場合、スコアベクトルは、含まれるそれぞれのスコアに対して指数演算したのち、全てのスコアを加算すると、特定値となるように正規化されている。
【００２９】
例えば、スコアは、対応する記号により表される情報が、入力信号に含まれている確率、尤度、対数尤度または対数確率であってよい。スコアは、値が大きい程、良い（すなわち、尤もらしい）ことを示してもよいし、値が小さい程、良いことを示してもよい。例えば、スコアは、確率、尤度、対数確率または対数尤度である場合には、値が大きい程、良いことを示す。また、例えば、スコアは、符号を反転した対数確率または符号を反転した対数尤度である場合には、値が小さい程、良いことを示す。また、スコアは、入力信号（特徴ベクトル）とパターン認識モデルとの何らかの距離をスコアとする場合には、値が小さい程、良いことを示す。
【００３０】
また、ここでは、スコアベクトルに含まれる複数のスコアのうち、最良のスコアに対応する記号を、代表記号という。例えば、スコアが大きい程、良い場合には、スコアベクトルに含まれる最も大きいスコアに対応する記号を、代表記号という。また、スコアが小さい程、良い場合には、スコアベクトルに含まれる最も小さいスコアに対応する記号を、代表記号という。
【００３１】
スコアベクトル列は、複数のスコアベクトルが並んだ情報である。スコア算出部２６は、算出したスコアベクトル列をフィルタ部２８に与える。なお、特徴抽出部２２およびスコア算出部２６は、入力信号に基づきスコアベクトル列を算出する算出部に対応する。
【００３２】
フィルタ部２８は、スコア算出部２６からスコアベクトル列を受け取る。フィルタ部２８は、スコア算出部２６により算出されたスコアベクトル列のうち一部のスコアベクトルを通過させる。すなわち、フィルタ部２８は、スコア算出部２６から出力されたスコアベクトル列から、一部のスコアベクトルを削除して、残りのスコアベクトルを順次に出力する。
【００３３】
具体的には、フィルタ部２８は、スコアベクトル列のうち、代表記号が認識対象記号である第１スコアベクトル、および、代表記号が対象外記号であり、代表記号のスコアが第１閾値より悪い第２スコアベクトルを通過させる。
【００３４】
さらに、フィルタ部２８は、スコアベクトル列における、代表記号が対象外記号であり代表記号のスコアが第１閾値または第１閾値より良い第３スコアベクトルのうち、予め定められた第１条件を満たす第３スコアベクトルを通過させる。すなわち、フィルタ部２８は、スコアベクトル列における第３スコアベクトルのうちの第１条件を満たさない第３スコアベクトルを削除して、他のスコアベクトルを通過させる。
【００３５】
例えば、フィルタ部２８は、連続したＫ（Ｋは２以上の整数）個の第３スコアベクトルのうちの、何れか１個以上、Ｋ−１個以下の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとする。また、例えば、フィルタ部２８は、連続したＫ個の第３スコアベクトルのうちの、何れか１個の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとしてもよい。
【００３６】
また、これに代えて、フィルタ部２８は、連続したＫ個の第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれる代表記号と、部分ベクトル列の直後のスコアベクトルに含まれる代表記号とが同一である場合、部分ベクトル列のうちの１個以上、Ｋ−１個以下の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとしてもよい。
【００３７】
フィルタ部２８は、通過させたスコアベクトルを含むスコアベクトル列を探索部３２に与える。なお、フィルタ部２８の処理については、図７のフローを参照してさらに説明する。
【００３８】
探索モデル記憶部３０は、探索モデルを記憶する。探索モデルは、スコアベクトル列から記号列および出力記号列を生成するために探索部３２により用いられるデータである。探索モデルは、認識装置１０による入力信号の認識に先だって、学習装置により適切に訓練されている。探索モデル記憶部３０は、例えばネットワーク上のサーバにより実現されてもよい。
【００３９】
探索部３２は、フィルタ部２８から出力されたスコアベクトル列を受け取る。探索部３２は、受け取ったスコアベクトル列における尤もらしいスコアを辿る記号の経路を探索することにより記号列を生成する。探索部３２は、探索モデル記憶部３０に記憶された探索モデルを用いて記号列を生成してよい。記号の経路とは、スコアベクトルごとに選択した記号の系列である。なお、記号集合の要素の数をｘ、スコアベクトル列の長さをｙとすると、記号の経路としてありうる組み合わせの数はｘｙ個となる。探索部３２は、記号の経路を記号列としてそのまま記憶してもよいし、探索モデルを参照することで間接的に記憶してもよい。
【００４０】
さらに、探索部３２は、記号列に含まれる認識対象記号に基づき、入力信号のパターン認識結果を表す出力記号を生成する。探索部３２は、経路上の連続する同一の認識対象記号を１つにまとめて、入力信号のパターン認識結果を生成する。また、例えば、探索部３２は、経路上の連続する同一の認識対象記号を１つにまとめた後、経路上の対象外記号を除いて、入力信号のパターン認識結果を生成してもよい。探索部３２は、探索モデル記憶部３０に記憶された探索モデルを用いて出力記号を生成してよい。
【００４１】
このような探索部３２は、記号列を生成した後に、記号列に基づき出力記号を生成してもよい。また、探索部３２は、記号列および出力記号を一括して生成してもよい。また、探索部３２は、１個の記号列を生成してもよいし、Ｍ個の記号列を生成してもよい。また、探索部３２は、それぞれの記号列から、１つの出力記号を生成してもよいし、時系列に並んだ複数の出力記号を生成してもよい。
【００４２】
例えば、探索部３２が用いる探索モデルは、重み付き有限状態トランスデューサ（ＷＦＳＴ）である。この場合、探索部３２は、ビタビアルゴリズムによりスコアの累積値が最良となるような記号の経路を探索する。また、探索部３２が用いる探索モデルは、ＲＮＮまたはＲＮＮから派生したネットワークであってもよい。このような探索モデルを用いることによって、探索部３２は、記号の経路として探索できる経路に制限を設けたり、探索時に優先する経路を指定したり、スコアが悪くても優先的に生成する記号列を指定することができる。さらに、探索モデルは、記号列と出力記号との対応関係を表す情報を含む。探索モデルがＷＦＳＴの場合、探索部３２は、記号の経路をＷＦＳＴ上の経路、すなわち、ＷＦＳＴの状態と遷移の組み合わせによって記憶してもよい。
【００４３】
そして、探索部３２は、生成した出力記号を、入力信号の認識結果として出力する。
【００４４】
図２は、スコア算出部２６の構成の一例を示す図である。スコア算出部２６は、例えば図２に示すような、コネクショニスト時系列分類法（ＣＴＣ）を適用した再帰型ニューラルネットワーク（ＲＮＮ）であってよい。
【００４５】
例えば、スコア算出部２６は、入力層４２と、少なくとも１つの中間層４４と、出力層４６とを有する。入力層４２、中間層４４および出力層４６のそれぞれは、少なくとも１つの信号の取得処理、取得した信号に対する演算処理、および、少なくとも１つの信号の出力処理を実行する。
【００４６】
入力層４２と、少なくとも１つの中間層４４と、出力層４６とは、直列に接続される。入力層４２は、特徴ベクトルを受け取り、演算処理を実行する。そして、入力層４２は、演算結果として得られた少なくとも１つの信号を、次段の中間層４４へ出力する。また、それぞれの中間層４４は、前段から受け取った少なくとも１つの信号に対して演算処理を実行する。そして、それぞれの中間層４４は、演算結果として得られた少なくとも１つの信号を、次段の中間層４４または出力層４６へと出力する。さらに、それぞれの中間層４４は、自身への信号を帰還させる帰還路を有してもよい。
【００４７】
出力層４６は、前段の中間層４４から受け取った信号に対して演算処理を実行する。そして、出力層４６は、演算結果としてスコアベクトルを出力する。出力層４６は、記号の数分の信号を出力する。出力層４６は、出力する信号が、記号のそれぞれに対応付けられている。例えば、出力層４６は、ソフトマックス関数による演算を実行する。
【００４８】
また、それぞれの層が演算処理に用いるパラメータは、パターン認識モデル記憶部２４に記憶されたパターン認識モデルから与えられる。パターン認識モデルは、特徴ベクトルに基づき、予め定められた記号集合に含まれるそれぞれの記号のスコアを出力するように、予め学習装置により訓練されている。すなわち、パターン認識モデルは、少なくとも１つの認識対象記号のそれぞれのスコア、および、対象外記号のスコアを出力するように、学習装置により訓練されている。
【００４９】
これにより、スコア算出部２６は、記号集合に含まれるそれぞれの記号についてのスコアを同時に出力することができる。つまり、スコア算出部２６は、少なくとも１つの認識対象記号および対象外記号のそれぞれについてのスコアを同時に出力することができる。
【００５０】
なお、スコア算出部２６は、ＲＮＮに代えて、ＲＮＮを拡張した長・短期記憶（Ｌｏｎｇ  Ｓｈｏｒ−Ｔｅｒｍ  Ｍｅｍｏｒｙ）と呼ばれるネットワークであってもよい。また、出力層４６は、ソフトマックス関数に代えて、サポートベクタマシーンを用いてもよい（例えば、非特許文献４）。
【００５１】
図３は、探索部３２の処理フローを示す図である。探索部３２は、最良の１個の記号列を生成する場合、図３に示すような手順で処理を実行する。
【００５２】
まず、Ｓ１１において、探索部３２は、フィルタ部２８からスコアベクトル列を取得する。続いて、Ｓ１２において、探索部３２は、スコアベクトル列に基づき、尤もらしい記号の経路を探索して、１個の記号列を生成する。例えば、探索部３２は、フレーム毎にスコアが最も良い記号を選択して連結することにより、記号列を生成してもよい。また、例えば、探索部３２は、ＷＦＳＴ等の探索モデルを用いてビタビアルゴリズム等により最良の経路を探索して、記号列を生成してもよい。
【００５３】
続いて、Ｓ１３において、探索部３２は、記号列の中で、複数の認識対象記号が連続する部分を検出し、連続する複数の認識対象記号のうち何れか１つを残し、他を削除する。これにより、探索部３２は、同一の情報（例えば、同一の言語情報）が重複して認識されてしまうことを回避することができる。
【００５４】
例えば、探索部３２は、記号列の中で、連続する複数の認識対象記号のうち、先頭の１つを残し、２番目以降を削除する。これに代えて、探索部３２は、記号列の中で、連続する複数の認識対象記号のうち、最後の１つを残し、他を削除してもよい。
【００５５】
続いて、Ｓ１４において、探索部３２は、Ｓ１３の処理をした後の記号列に対して、認識対象記号を残存させ、対象外記号を削除する。すなわち、探索部３２は、記号列から、認識対象記号のみを残存させる。これにより、探索部３２は、認識対象記号に基づき出力記号を生成することができる。
【００５６】
続いて、Ｓ１５において、探索部３２は、Ｓ１３およびＳ１４の処理をした後の記号列から、出力記号を生成する。すなわち、探索部３２は、認識対象記号のみを含む記号列から、出力記号を生成する。
【００５７】
例えば、探索部３２は、記号列と出力記号との対応表である探索モデルを参照して、記号列の先頭から順に、記号列の一部分と一致する出力記号を順次に抽出する。例えば、記号列と出力記号との対応表である探索モデルは、発音記号の列と単語とを対応付けた発音辞書であってよい。また、探索部３２は、１個の記号列から時系列に複数の出力記号を生成してもよい。
【００５８】
なお、探索部３２は、Ｓ１２、Ｓ１３、Ｓ１４およびＳ１５の処理をそれぞれ独立に実行してもよい。また、探索部３２は、探索モデルがＷＦＳＴである場合、Ｓ１２、Ｓ１３、Ｓ１４およびＳ１５の処理を一括して処理してよい。
【００５９】
続いて、Ｓ１６において、探索部３２は、それぞれの出力記号を、入力信号の認識結果として出力する。
【００６０】
なお、探索部３２は、Ｍ個の記号列を生成してもよい。この場合、探索部３２は、Ｓ１２〜Ｓ１５の処理をそれぞれの記号列について実行する。また、探索モデルがＷＦＳＴの場合、探索部３２は、Ｓ１２からＳ１５までの処理を一括して実行することにより、Ｍ個の記号列を生成することができる。
【００６１】
図４、図５および図６は、アルファベットを認識する場合における探索部３２の処理内容を説明するための図である。探索部３２は、図３の処理フローに従って音声信号からアルファベットを認識する場合には、次のような処理を実行する。
【００６２】
なお、パターン認識モデル（音響モデル）は、記号集合に含まれるアルファベットを認識するように学習装置により予め訓練されている。また、認識対象記号は、音素記号である場合が多いが、ここでは、アルファベットを認識するように音響モデルが学習されている。このような学習方法は、例えば、非特許文献３に記載されている。
【００６３】
例えば、Ｓ１２において、探索部３２は、図４に示すような、記号列を生成する。ここで、例えば、予め定められた記号集合が下記の通りであったとする。
記号集合＝｛ε，ｄ，ｇ，ｏ｝
【００６４】
また、認識対象記号が下記の通りであったとする。
認識対象記号の集合＝｛ｄ，ｇ，ｏ｝
【００６５】
また、対象外記号が下記の通りであったとする。なお、εは、認識対象記号が表す音響情報のうち、いずれの音響情報が音声信号に含まれているかが未定であることを表す記号である。
対象外記号＝ε
【００６６】
Ｓ１３において、探索部３２は、記号列の中で、連続する複数の認識対象記号のうち、先頭の１つを残し、２番目以降を削除する。例えば、図５の例においては、３番目の記号および４番目の記号が共に“ｇ”である。また、１３番目の記号および１４番目の記号が共に“ｄ”である。そこで、Ｓ１３において、探索部３２は、３番目の記号を残し、４番目の記号を削除する。また、探索部３２は、１３番目の記号を残し、１４番目の記号を削除する。
【００６７】
続いて、Ｓ１４において、探索部３２は、Ｓ１３の処理をした後の記号列に対して、認識対象記号を残存させ、対象外記号を削除する。例えば、図６の例に示すように、探索部３２は、記号列から“ε”を削除し、“ｄ”，“ｇ”，“ｏ”を残存させる。
【００６８】
そして、Ｓ１５において、探索部３２は、Ｓ１３およびＳ１４の処理をした後の記号列から、記号列と出力記号との対応表である探索モデルを参照して、記号列の先頭から順に、記号列の一部分と一致する出力記号を順次に抽出する。例えば、図６に示すように、探索部３２は、出力記号として“ｇｏｏｄ”を生成する。
【００６９】
図７は、フィルタ部２８の処理フローを示す図である。フィルタ部２８は、スコア算出部２６からスコアベクトルを受け取った場合、受け取ったスコアベクトルに対して、図７に示すような手順で処理を実行する。
【００７０】
まず、Ｓ２１において、フィルタ部２８は、スコアベクトルにおける代表記号を特定する。すなわち、フィルタ部２８は、スコアベクトルに含まれる複数のスコアのうちの最良のスコアを特定する。そして、フィルタ部２８は、特定した最良のスコアに対応する記号を、代表記号として特定する。
【００７１】
続いて、Ｓ２２において、フィルタ部２８は、特定した代表記号が、認識対象記号であるか否かを判断する。すなわち、フィルタ部２８は、取得したスコアベクトルが、代表記号が認識対象記号である第１スコアベクトルであるか否かを判断する。
【００７２】
フィルタ部２８は、代表記号が認識対象記号である場合、すなわち、取得したスコアベクトルが第１スコアベクトルである場合（Ｓ２２のＹｅｓ）、処理をＳ２５に進める。そして、Ｓ２５において、フィルタ部２８は、取得した第１スコアベクトルを通過させて後段の探索部３２に与える。これにより、フィルタ部２８は、認識対象記号が経路に選択される可能性の高いスコアベクトル（第１スコアベクトル）を、探索対象に加えることができる。この結果、フィルタ部２８は、後段の探索部３２における認識精度を維持することができる。
【００７３】
また、フィルタ部２８は、代表記号が認識対象記号でない場合、すなわち、代表記号が対象外記号である場合（Ｓ２２のＮｏ）、処理をＳ２３に進める。
【００７４】
Ｓ２３において、フィルタ部２８は、代表記号のスコアが、予め定められた第１閾値より悪いか否かを判断する。すなわち、Ｓ２３において、フィルタ部２８は、代表記号が対象外記号であり代表記号のスコアが第１閾値より悪い第２スコアベクトルであるか否かを判断する。
【００７５】
フィルタ部２８は、代表記号のスコアが第１閾値より悪い場合、すなわち、取得したスコアベクトルが第２スコアベクトルである場合（Ｓ２３のＹｅｓ）、処理をＳ２５に進める。そして、Ｓ２５において、フィルタ部２８は、取得した第２スコアベクトルを通過させて後段の探索部３２に与える。これにより、フィルタ部２８は、対象外記号が経路に選択される可能性が予め定められた値より低いスコアベクトル（第２スコアベクトル）を、探索対象に加えることができる。この結果、フィルタ部２８は、後段の探索部３２における認識精度を維持することができる。
【００７６】
また、フィルタ部２８は、代表記号のスコアが第１閾値または第１閾値より良い場合（Ｓ２３のＮｏ）、処理をＳ２４に進める。すなわち、フィルタ部２８は、取得したスコアベクトルが、代表記号が対象外記号であり代表記号のスコアが第１閾値または第１閾値より良い第３スコアベクトルである場合、処理をＳ２４に進める。
【００７７】
Ｓ２４において、フィルタ部２８は、取得したスコアベクトル（すなわち、第３スコアベクトル）が、予め定められた第１条件を満たすか否かを判断する。例えば、第１条件は、取得したスコアベクトルが、スコアベクトル列に含まれていた場合の方が、スコアベクトル列に含まれていない場合よりも、入力信号を精度良く認識することができるか否かを判断するための条件である。
【００７８】
フィルタ部２８は、取得した第３スコアベクトルが第１条件を満たす場合（Ｓ２４のＹｅｓ）、処理をＳ２５に進める。そして、Ｓ２５において、フィルタ部２８は、取得した、第１条件を満たす第３スコアベクトルを通過させて後段の探索部３２に与える。これにより、フィルタ部２８は、認識対象記号が経路に選択される可能性は低いが、認識精度の維持に貢献する可能性の高いスコアベクトル（第１条件を満たす第３スコアベクトル）を、探索対象に加えることができる。この結果、フィルタ部２８は、後段の探索部３２における認識精度を維持することができる。
【００７９】
また、フィルタ部２８は、取得した第３スコアベクトルが第１条件を満たさない（Ｓ２４のＮｏ）、処理をＳ２６に進める。そして、Ｓ２６において、フィルタ部２８は、取得した、第１条件を満たさない第３スコアベクトルをスコアベクトル列から削除する。これにより、フィルタ部２８は、認識対象記号が経路に選択される可能性が低く、さらに、認識精度の維持に貢献する可能性も低いスコアベクトル（第１条件を満たさない第３スコアベクトル）を、探索対象から除くことができる。この結果、フィルタ部２８は、後段の探索部３２における計算コストを小さくすることができる。
【００８０】
そして、フィルタ部２８は、Ｓ２５またはＳ２６の処理を終えると、次のスコアベクトルに対して、Ｓ２１から処理を繰り返す。なお、フィルタ部２８は、Ｓ２２、Ｓ２３およびＳ２４の処理をどのような順序で実行してもよいし、一括して実行してもよい。
【００８１】
図８は、フィルタ部２８による処理前と処理後のスコアベクトル列の第１例を示す図である。図８には、それぞれのスコアベクトルに含まれる代表記号（最良のスコアの記号）が示されている。また、図８において、アンダーバーが付いたεは、代表記号が対象外記号であって、代表記号のスコアが第１閾値または第１閾値より良いスコアのスコアベクトルを示している。すなわち、アンダーバーが付いたεは、第３スコアベクトルを示している。なお、図９においても同様である。
【００８２】
フィルタ部２８は、連続したＫ（Ｋは２以上の整数）個の第３スコアベクトルのうちの、１個以上、Ｋ−１個以下の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとする。そして、フィルタ部２８は、連続したＫ個の第３スコアベクトルのうちの、第１条件を満たす第３スコアベクトルを通過させ、第１条件を満たさない第３スコアベクトルを削除する。
【００８３】
フィルタ部２８は、例えば、連続したＫ個の第３スコアベクトルのうちの、１個の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとする。そして、フィルタ部２８は、連続したＫ個の第３スコアベクトルのうちの、第１条件を満たす１個の第３スコアベクトルを通過させ、第１条件を満たさない第３スコアベクトルを削除する。
【００８４】
例えば、図８の例では、５番目から７番目までのスコアベクトルが、連続した３個の第３スコアベクトルを構成する。図８の例では、フィルタ部２８は、５番目から７番目までの連続した３個のスコアベクトルのうちの、先頭の１個のスコアベクトル（５番目のスコアベクトル）を、第１条件を満たす第３スコアベクトルとして、後段に通過させる。そして、フィルタ部２８は、先頭の１個以外のスコアベクトル（６番目および７番目のスコアベクトル）を、第１条件を満たさない第３スコアベクトルとして、削除する。
【００８５】
また、例えば、図８の例では、９番目から１３番目までのスコアベクトルが、連続した５個の第３スコアベクトルを構成する。図８の例では、フィルタ部２８は、９番目から１３番目までの連続した５個のスコアベクトルのうちの、先頭の１個のスコアベクトル（９番目のスコアベクトル）を、第１条件を満たす第３スコアベクトルとして、後段に通過させる。そして、フィルタ部２８は、先頭の１個以外のスコアベクトル（１０番目から１３番目までのスコアベクトル）を、第１条件を満たさない第３スコアベクトルとして、削除する。
【００８６】
このように、フィルタ部２８は、連続したＫ個の第３スコアベクトルが含まれている場合、必ず、１個の第３スコアベクトルを探索部３２に与えることができる。
【００８７】
探索部３２は、同一の認識対象記号が２つ連続している場合、これら２つの認識対象記号を１つにまとめて認識処理を実行する（例えば図５に示した処理）。このため、同一の２つの認識対象記号に間に存在する対象外記号が全て削除されてしまうと、探索部３２は、本来、別個に認識すべき２つの認識対象記号を、１つの認識対象記号として誤認識をしてしまう。
【００８８】
これに対して、フィルタ部２８は、連続したＫ個の第３スコアベクトルのうちの少なくとも１つの対象外記号を探索部３２に与える。これにより、探索部３２は、２つの認識対象記号を１つにまとめる処理を実行せず、２つの認識対象記号のそれぞれを別個に認識することができる。
【００８９】
このように、フィルタ部２８は、２つの認識対象記号に間に存在する対象外記号のうちの少なくとも１個の対象外記号を残存させるので、誤認識を回避させることができる。一方、フィルタ部２８は、Ｋ個（Ｋは２以上の整数）の認識対象記号が連続していれば、少なくとも１個以上の認識対象記号を削除するので、探索部３２による計算コストも小さくすることができる。
【００９０】
なお、フィルタ部２８は、連続する２以上の第３スコアベクトルのうちの、先頭以外のスコアベクトルを通過させてもよい。また、フィルタ部２８は、１個以上、Ｋ−１個以下であれば、何個の第３スコアベクトルを通過させてもよい。
【００９１】
図９は、フィルタ部２８による処理前と処理後のスコアベクトル列の第２例を示す図である。連続したＫ（Ｋは２以上の整数）個の第３スコアベクトルから構成された列を、部分ベクトル列とする。
【００９２】
フィルタ部２８は、部分ベクトル列の直前のスコアベクトルに含まれる代表記号と、この部分ベクトル列の直後のスコアベクトルに含まれる代表記号とが同一である場合、部分ベクトル列のうちの１個以上、Ｋ−１個以下の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとする。そして、フィルタ部２８は、部分ベクトル列のうちの、第１条件を満たす第３スコアベクトルを通過させ、第１条件を満たさない第３スコアベクトルを削除する。
【００９３】
例えば、図９の例では、５番目から７番目までのスコアベクトルが、部分ベクトル列を構成する。５番目から７番目までの部分ベクトル列の直前のスコアベクトル（４番目のスコアベクトル）に含まれる代表記号は、“ｇ”である。また、５番目から７番目までの部分ベクトル列の直後のスコアベクトル（８番目のスコアベクトル）に含まれる代表記号は、“ｏ”である。すなわち、５番目から７番目までの部分ベクトル列の直前と直後のスコアベクトル列に含まれる代表記号は同一ではない。従って、図９の例では、フィルタ部２８は、５番目から７番目までの部分ベクトルを構成する３個のスコアベクトルを、全て第１条件を満たさない第３スコアベクトルとして、削除する。
【００９４】
また、例えば、図９の例では、９番目から１３番目までのスコアベクトルが、部分ベクトル列を構成する。９番目から１３番目までの部分ベクトル列の直前のスコアベクトル（８番目のスコアベクトル）に含まれる代表記号は、“ｏ”である。また、９番目から１３番目までの部分ベクトル列の直後のスコアベクトル（１４番目のスコアベクトル）に含まれる代表記号は、“ｏ”である。すなわち、９番目から１３番目までの部分ベクトル列の直前と直後のスコアベクトル列に含まれる代表記号は同一である。従って、図９の例では、フィルタ部２８は、９番目から１３番目までの部分ベクトル列のうちの、先頭の１個のスコアベクトルを、第１条件を満たす第３スコアベクトルとして、後段に通過させる。そして、フィルタ部２８は、９番目から１３番目までの部分ベクトル列のうちの、先頭の１個以外のスコアベクトルを、第１条件を満たさない第３スコアベクトルとして、削除する。
【００９５】
このように処理をしても、フィルタ部２８は、同一の２つの認識対象記号に間に存在する対象外記号のうちの少なくとも１個の対象外記号を探索部３２に与えることができる。これにより、探索部３２は、２つの認識対象記号を１つにまとめる処理を実行せず、２つの認識対象記号のそれぞれを別個に認識することができる。従って、フィルタ部２８は、誤認識を回避させることができる。
【００９６】
また、フィルタ部２８は、同一ではない２つの認識対象記号に間に存在する対象外記号を、探索部３２に与えない。これにより、探索部３２は、同一ではない２つの認識対象記号に間に存在する対象外記号の探索処理を実行しなくてよい。従って、フィルタ部２８は、探索処理の計算コストをより小さくさせることができる。
【００９７】
なお、フィルタ部２８は、部分ベクトル列のうちの、先頭以外のスコアベクトルを通過させてもよい。また、フィルタ部２８は、部分ベクトル列のうちの、１個以上、Ｋ−１個以下のスコアベクトルであれば、何個のスコアベクトルを通過させてもよい。
【００９８】
図１０は、認識装置１０による認識処理を表す疑似コードの一例を示す図である。認識装置１０は、一例として、図１０に示す疑似コードを１行目から順次に実行する。
【００９９】
１行目では、認識装置１０は、ξにξｉｎｉｔｉａｌを代入し、ηに０を代入し、σにεを代入する。
【０１００】
ξは、探索中の複数の記号列および対応する出力記号を格納する。例えば、ξは、ビタビアルゴリズムで探索したＷＦＳＴの経路を格納してもよい。ξｉｎｉｔｉａｌは、ξの初期状態を示す。認識装置１０は、１行目を実行することにより、ξを初期化することができる。
【０１０１】
ηは、０、１または２の何れかが代入される変数である。具体的には、０が代入されている場合、ηは、ｉ番目のフレームの代表記号が対象外記号であって、ｉ番目のフレームについて探索処理を実行したことを示す。１が代入されている場合、ηは、ｉ番目のフレームの代表記号が認識対象記号であり、探索処理を実行したことを示す。なお、代表記号が認識対象記号の場合、認識装置１０は、必ずそのフレームに対して探索処理を実行する。また、２が代入されている場合、ηは、ｉ番目のフレームの代表記号が対象外記号であり、代表記号が認識対象記号であった最後のフレームの次のフレームからｉ番目のフレームまで、全て代表記号が対象外記号であって且つ探索処理を実行しなかったことを示す。
【０１０２】
σは、現在のフレームの代表記号を格納する変数である。εは、対象外記号を示す。認識装置１０は、１行目を実行することにより、ηおよびσに初期値を代入することができる。
【０１０３】
２行目は、ｉに１からＮまでの整数を順次に代入し、ｉに整数を代入する毎に、３行目から２０行目までの処理を繰り返すことを示す。ｉは、変数である。Ｎは、入力信号のフレームの総数である。認識装置１０は、入力信号の１番目のフレームからＮ番目のフレームのそれぞれについて、３行目から２０行目までの処理を実行する。
【０１０４】
３行目では、認識装置１０は、ｖに、ｅｘｔｒａｃｔ＿ｆｅａｔｕｒｅｓ（ｆｉ）の処理結果を代入する。ｖは、特徴ベクトルを格納する変数である。ｆｉは、ｉ番目のフレームの入力信号である。ｅｘｔｒａｃｔ＿ｆｅａｔｕｒｅｓ（ｆｉ）は、ｉ番目のフレームの入力信号から特徴ベクトルを算出する関数である。認識装置１０は、３行目を実行することにより、ｉ番目のフレームの特徴ベクトルを算出することができる。
【０１０５】
４行目では、認識装置１０は、ｓに、ｃａｌｃ＿ｓｃｏｒｅｓ（ｖ）を代入する。ｓは、スコアベクトルを格納する変数である。ｃａｌｃ＿ｓｃｏｒｅｓ（ｖ）は、特徴ベクトルからスコアベクトルを算出する関数である。認識装置１０は、４行目を実行することにより、ｉ番目のフレームのスコアベクトルを算出することができる。
【０１０６】
５行目では、認識装置１０は、σｐｒｅｖにσを代入する。σｐｒｅｖは、直前のフレーム（ｉ−１番目のフレーム）の代表記号を格納する変数である。なお、現在のフレームが１番目である場合、σｐｒｅｖには、初期値であるεが代入される。
【０１０７】
６行目では、認識装置１０は、σにｉ番目のフレームの代表記号を代入する。なお、６行目に示された“ａｒｇｍａｘ  ｓ［ａ］”の下に“ａ∈Σ”が付加された関数は、代表記号を取得するための関数である。“ａｒｇｍａｘ  ｓ［ａ］”の下に“ａ∈Σ”が付加された関数は、Σに含まれている記号のうち、ｓ［ａ］が最大となる記号を取得する関数である。Σは、記号集合を表す。ｓ［ａ］は、ｉ番目のフレームのスコアベクトルのうち、ａに対応するスコアを表す。この関数を実行することにより、認識装置１０は、ｉ番目のフレームのスコアベクトルから、最大のスコアに対応する記号を取得することができる。
【０１０８】
なお、図１０に示す疑似コードにおいて、スコアベクトルに含まれるスコアは、値が大きい程、良いことを示す。もし、スコアが、値が小さいほど良いことを表す場合、６行目において、認識装置１０は、“ａｒｇｍｉｎ  ｓ［ａ］”の下に“ａ∈Σ”が付加された関数を実行してよい。この関数を実行することにより、認識装置１０は、ｉ番目のフレームのスコアベクトルから、最小のスコアに対応する記号を取得することができる。
【０１０９】
７行目では、認識装置１０は、σ＝εか否かを判断する。すなわち、認識装置１０は、ｉ番目のフレームの代表記号が対象外記号であるか否かを判断する。認識装置１０は、ｉ番目のフレームの代表記号が対象外記号である場合、８行目から１５行目を実行する。また、認識装置１０は、ｉ番目のフレームの代表記号が対象外記号でない場合、つまり、ｉ番目のフレームの代表記号が認識対象記号である場合、１７行目から２０行目を実行する。
【０１１０】
８行目では、認識装置１０は、ｓ［ε］＜θであるか否かを判断する。ｓ［ε］は、ｉ番目のフレームの対象外記号のスコア、つまり、ｉ番目のフレームの代表記号のスコアである。θは、予め定められた第１閾値である。すなわち、認識装置１０は、代表記号のスコアが予め定められた第１閾値より小さいか否かを判断する。これにより、認識装置１０は、代表記号のスコアが第１閾値より悪いか否かを判断することができる。なお、スコアが値が小さいほど良いことを示す場合、８行目において、認識装置１０は、ｓ［ε］＞θであるか否かを判断すればよい。
【０１１１】
認識装置１０は、ｉ番目のフレームの代表記号のスコアが第１閾値より小さい場合、すなわち、ｉ番目のフレームの代表記号のスコアが第１閾値より悪い場合、９行目から１０行目を実行する。認識装置１０は、ｉ番目のフレームの代表記号のスコアの第１閾値より小さくない場合、つまり、ｉ番目のフレームの代表記号のスコアが第１閾値または第１閾値より良い場合、１２行目から１５行目を実行する。
【０１１２】
９行目では、認識装置１０は、ξに、ｓｅａｒｃｈ（ξ，ｓ）の処理結果を代入する。ｓｅａｒｃｈ（ξ，ｓ）は、ｉ番目のフレームのスコアベクトルを追加したスコアベクトル列から、記号列および出力記号の探索結果を取得する関数である。認識装置１０は、９行目を実行することにより、ｉ番目のフレームまでを探索した段階における、記号列および出力記号を生成することができる。ビタビアルゴリズムでＷＦＳＴの経路を探索している場合は、認識装置１０は、新たなスコアベクトル１つ分だけＷＦＳＴの経路を延ばし、その経路を処理結果としてξに格納してもよい。
【０１１３】
１０行目では、認識装置１０は、ηに０を代入する。これにより、ηは、ｉ番目のフレームの代表記号が対象外記号であって、ｉ番目のフレームについて探索処理を実行したことを示すことができる。
【０１１４】
認識装置１０は、１０行目を終了すると、ｉ番目のフレームの処理を終了して、次のフレームについて３行目から処理を実行する。
【０１１５】
１２行目では、認識装置１０は、η＝１であるか否かを判断する。すなわち、認識装置１０は、直前のフレーム（（ｉ−１）番目のフレーム）の代表記号が認識対象記号であったか否かを判断する。
【０１１６】
認識装置１０は、直前のフレームの代表記号が認識対象記号であった場合、１３行目から１５行目を実行する。
【０１１７】
１３行目では、認識装置１０は、ｓεにｓを代入する。ｓεは、スコアベクトルを格納する変数である。認識装置１０は、１３行目を実行することにより、ｉ番目のフレームのスコアベクトルを、ｓεに格納させる。これにより、認識装置１０は、代表記号が認識対象記号であったフレームの次のフレームのスコアベクトルを、ｓεに格納しておくことができる。
【０１１８】
１４行目では、認識装置１０は、ｒにσｐｒｅｖを代入する。ｒは、記号を格納する変数である。認識装置１０は、１４行目を実行することにより、直前のフレーム（ｉ−１番目のフレーム）の代表記号を、ｒに格納させる。これにより、認識装置１０は、代表記号が認識対象記号であった最後のフレームにおける、代表記号をｒに格納しておくことができる。
【０１１９】
１５行目では、認識装置１０は、ηに２を代入する。これにより、ηは、代表記号が認識対象記号であった最後のフレームの次のフレームからｉ番目のフレームまで、全て代表記号が対象外記号であって且つ探索処理を実行しなかったことを示すことができる。
【０１２０】
認識装置１０は、１５行目を終了すると、ｉ番目のフレームの処理を終了して、次のフレームについて３行目から処理を実行する。
【０１２１】
なお、認識装置１０は、１２行目において、直前のフレームの代表記号が認識対象記号でなかったと判断した場合、つまり、ｉ番目のフレームの代表記号が対象外記号であって、且つ、直前のフレームの代表記号が対象外記号であった場合、ｉ番目のフレームの処理を終了して、次のフレームについて３行目から処理を実行する。これにより、認識装置１０は、ｉ番目のフレームについて探索処理を実行せずに、次のフレームに処理を進めることができる。
【０１２２】
一方、１７行目では、認識装置１０は、η＝２であり、且つ、ｒ＝σであるか否かを判断する。認識装置１０は、η＝２であるか否かを判断することにより、代表記号が認識対象記号であった最後のフレームの次のフレームから、ｉ番目のフレームまでの全てのフレームで、代表記号が対象外記号であり且つ探索処理を実行しなかったか否かを判断することができる。また、認識装置１０は、ｒ＝σであるか否かを判断することにより、代表記号が認識対象記号であった最後のフレームにおける代表記号と、ｉ番目のフレームにおける代表記号とが同一であるか否かを判断することができる。
【０１２３】
認識装置１０は、η＝２であり、且つ、ｒ＝σである場合、１８行目を実行する。
【０１２４】
１８行目では、認識装置１０は、ξに、ｓｅａｒｃｈ（ξ，ｓε）の処理結果を代入する。認識装置１０は、１８行目を実行することにより、代表記号が認識対象記号であった最後のフレームの次のフレームのスコアベクトルを、スコアベクトル列に追加して、記号列および出力記号の探索結果を取得することができる。つまり、認識装置１０は、１８行目を実行することにより、代表記号が対象外記号であるフレームのスコアベクトルを、スコアベクトル列に追加して、記号列および出力記号の探索結果を取得することができる。これにより、認識装置１０は、同一の認識対象記号をまとめて１つに認識させる処理を回避し、認識精度を維持することができる。
【０１２５】
１９行目では、認識装置１０は、ξに、ｓｅａｒｃｈ（ξ，ｓ）の処理結果を代入する。認識装置１０は、１９行目を実行することにより、ｉ番目のフレームのスコアベクトルを、スコアベクトル列に追加して、記号列および出力記号の探索結果を取得することができる。
【０１２６】
２０行目では、認識装置１０は、ηに１を代入する。これにより、ηは、ｉ番目のフレームの代表記号が認識対象記号であり、探索処理を実行したことを示すことができる。認識装置１０は、２０行目を終了すると、ｉ番目のフレームの処理を終了して、次のフレームについて３行目から処理を実行する。
【０１２７】
そして、２１行目では、認識装置１０は、ξを参照して出力記号を得るｒｅｓｕｌｔ（ξ）の処理結果を本疑似コードの呼び出し元のプログラムに返す。これにより、認識装置１０は、出力記号を出力することができる。
【０１２８】
以上のように、認識装置１０は、図１０に示した疑似コードに従って処理を実行することにより、連続したＫ個の第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれる代表記号と、この部分ベクトル列の直後のスコアベクトルに含まれる代表記号とが同一である場合、部分ベクトル列のうちの先頭の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとすることができる。
【０１２９】
すなわち、認識装置１０は、スコアベクトル列のうち、第１スコアベクトルおよび第２スコアベクトルを探索することができる。さらに、認識装置１０は、スコアベクトル列のうち、連続したＫ個以上の第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれる代表記号と、この部分ベクトル列の直後のスコアベクトルに含まれる代表記号とが同一である場合、部分ベクトル列のうちの先頭の第３スコアベクトルを探索し、部分ベクトル列の先頭以外の第３スコアベクトルの探索をスキップすることができる。
【０１３０】
これにより、認識装置１０は、認識精度を維持しつつ、小さい計算コストで入力信号をパターン認識することができる。
【０１３１】
なお、図１０の疑似コードにおける、１７行目を、“ｉｆ  η＝２”としてもよい。このように変更した疑似コードを実行した場合、認識装置１０は、連続したＫ個の第３スコアベクトルから構成された部分ベクトル列を含む場合、部分ベクトル列のうちの先頭の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとすることができる。
【０１３２】
すなわち、認識装置１０は、スコアベクトル列のうち、第１スコアベクトルおよび第２スコアベクトルを探索することができる。さらに、認識装置１０は、スコアベクトル列のうち、連続した２個以上の第３スコアベクトルから構成された部分ベクトル列のうちの先頭の第３スコアベクトルを探索し、部分ベクトル列の先頭以外の第３スコアベクトルの探索をスキップすることができる。
【０１３３】
また、図１０に示した疑似コードは、部分ベクトル列の中の先頭の１つのスコアベクトルを探索し、残りのスコアベクトルの探索をスキップする例を示している。しかし、認識装置１０は、部分ベクトル列の中の先頭以外のスコアベクトルを探索してもよいし、部分ベクトル列の中の１個以上のスコアベクトルを探索してもよい。
【０１３４】
（変形例）
例えば、探索モデルがＷＦＳＴである場合、探索部３２は、複数の記号の経路を探索することができる。このような場合、フィルタ部２８は、次のような処理をしてもよい。
【０１３５】
フィルタ部２８は、連続したＫ（Ｋは２以上の整数）個の第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれるスコアがｋｐ（ｋｐは１以上の整数）番目に良い記号と、部分ベクトル列の直後のスコアベクトルに含まれるスコアがｋｎ個（ｋｎは１以上の整数）番目に良い記号とが同一である場合、部分ベクトル列のうちの１個以上、Ｋ−１個の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとしてもよい。これにより、部分ベクトル列の直前のスコアベクトルまたは直後のスコアベクトルにおいて探索部３２が代表記号を選択しない場合に、認識装置１０は、認識精度を維持することができる。
【０１３６】
また、フィルタ部２８は、連続したＫ（Ｋは２以上の整数）個の第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれるスコアが上位のｋｐ（ｋｐは１以上の整数）個の記号の集合と、部分ベクトル列の直後のスコアベクトルに含まれるスコアが上位のｋｐ個の記号の集合とが同一である場合、部分ベクトル列のうちの１個以上、Ｋ−１個の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとする。このようにしても、部分ベクトル列の直前のスコアベクトルまたは直後のスコアベクトルにおいて探索部３２が代表記号を選択しない場合に、認識装置１０は、認識精度を維持することができる。
【０１３７】
また、フィルタ部２８は、連続したＫ（Ｋは２以上の整数）個の第３スコアベクトルから構成された部分ベクトル列の直前のスコアベクトルに含まれるスコアが上位のｋｐ（ｋｐは１以上の整数）個の記号と、部分ベクトル列の直後のスコアベクトルに含まれるスコアが上位のｋｎ（ｋｎは１以上の整数）個の記号との間に、少なくとも１つの同一の記号が含まれる場合、部分ベクトル列のうちの１個以上、Ｋ−１個の第３スコアベクトルを、第１条件を満たす第３スコアベクトルとする。これにより、部分ベクトル列の直前のスコアベクトルと直後のスコアベクトルで同一の記号が探索部３２によって選択される可能性が少しでもある場合に、認識装置１０は、認識精度を維持することができる。
【０１３８】
図１１は、認識装置１０のハードウェアブロック図である。認識装置１０は、一例として、一般のコンピュータ（情報処理装置）と同様のハードウェア構成により実現される。認識装置１０は、ＣＰＵ（Central  Processing  Unit）１０１と、操作部１０２と、表示部１０３、マイクロフォン１０４と、ＲＯＭ（Read  Only  Memory）１０５と、ＲＡＭ（Random  Access  Memory）１０６と、記憶部１０７と、通信装置１０８と、バス１０９とを備える。各部は、バス１０９により接続される。
【０１３９】
ＣＰＵ１０１は、ＲＡＭ１０６の所定領域を作業領域としてＲＯＭ１０５または記憶部１０７に予め記憶された各種プログラムとの協働により各種処理を実行し、認識装置１０（特徴抽出部２２、スコア算出部２６、フィルタ部２８および探索部３２）を構成する各部の動作を統括的に制御する。また、ＣＰＵ１０１は、ＲＯＭ１０５または記憶部１０７に予め記憶されたプログラムとの協働により、操作部１０２、表示部１０３、マイクロフォン１０４および通信装置１０８等を制御する。
【０１４０】
操作部１０２は、マウスやキーボード等の入力デバイスであって、ユーザから操作入力された情報を指示信号として受け付け、その指示信号をＣＰＵ１０１に出力する。
【０１４１】
表示部１０３は、ＬＣＤ（Liquid  Crystal  Display）等の表示装置である。表示部１０３は、ＣＰＵ１０１からの表示信号に基づいて、各種情報を表示する。例えば、表示部１０３は、探索部３２が出力する出力記号等を表示する。なお、通信装置１０８または記憶部１０７等に出力記号等を出力する場合には、認識装置１０は、表示部１０３を備えなくてもよい。
【０１４２】
マイクロフォン１０４は、音声信号を入力するデバイスである。予め記録された音声信号または通信装置１０８から入力される音声信号のパターン認識をする場合、または、音声以外の入力信号のパターン認識をする場合には、認識装置１０は、マイクロフォン１０４を備えなくてもよい。
【０１４３】
ＲＯＭ１０５は、認識装置１０の制御に用いられるプログラムおよび各種設定情報等を書き換え不可能に記憶する。ＲＡＭ１０６は、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等の揮発性の記憶媒体である。ＲＡＭ１０６は、ＣＰＵ１０１の作業領域として機能する。具体的には、認識装置１０が用いる各種変数およびパラメータ等を一時記憶するバッファ等として機能する。
【０１４４】
記憶部１０７は、フラッシュメモリ等の半導体による記憶媒体、磁気的または光学的に記録可能な記憶媒体等の書き換え可能な記録装置である。記憶部１０７は、認識装置１０の制御に用いられるプログラムおよび各種設定情報等を記憶する。また、記憶部１０７は、パターン認識モデル記憶部２４および探索モデル記憶部３０等が記憶する情報を記憶する。
【０１４５】
通信装置１０８は、外部の機器と通信して、出力記号等の出力等に用いられる。予め記録された音声信号またはマイクロフォン１０４から入力した音声信号のパターン認識をする場合であり、出力記号等を表示部１０３または記憶部１０７に出力する場合には、認識装置１０は、通信装置１０８を備えなくてもよい。
【０１４６】
なお、手書き文字のパターン認識を行う場合には、認識装置１０は、筆跡入力装置をさらに備える。また、ＯＣＲを行う場合には、認識装置１０は、スキャナまたはカメラ等をさらに備える。また、ジェスチャ認識、手信号の認識または手話認識を行う場合には、認識装置１０は、動画像信号を入力するビデオカメラをさらに備える。音声を利用しないこれらのパターン認識を行う場合には、認識装置１０は、マイクロフォン１０４を備えなくてもよい。
【０１４７】
本実施形態の認識装置１０で実行されるプログラムは、インストール可能な形式または実行可能な形式のファイルでＣＤ−ＲＯＭ、フレキシブルディスク（ＦＤ）、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１４８】
また、本実施形態の認識装置１０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の認識装置１０で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、本実施形態の認識装置１０で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１４９】
本実施形態の認識装置１０で実行されるプログラムは、特徴抽出モジュール、スコア算出モジュール、フィルタモジュールおよび探索モジュールを含むモジュール構成となっており、ＣＰＵ１０１（プロセッサ）が記憶媒体等からプログラムを読み出して実行することにより上記各部が主記憶装置上にロードされ、特徴抽出部２２、スコア算出部２６、フィルタ部２８および探索部３２が主記憶装置上に生成されるようになっている。なお、特徴抽出部２２、スコア算出部２６、フィルタ部２８および探索部３２の一部または全部がハードウェアにより構成されていてもよい。
【０１５０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１５１】
１０  認識装置
２２  特徴抽出部
２４  パターン認識モデル記憶部
２６  スコア算出部
２８  フィルタ部
３０  探索モデル記憶部
３２  探索部
４２  入力層
４４  中間層
４６  出力層
１０１  ＣＰＵ
１０２  操作部
１０３  表示部
１０４  マイクロフォン
１０５  ＲＯＭ
１０６  ＲＡＭ
１０７  記憶部
１０８  通信装置
１０９  バス
【図１】
2018081546.tif 000003
【図２】
2018081546.tif 000004
【図３】
2018081546.tif 000005
【図４】
2018081546.tif 000006
【図５】
2018081546.tif 000007
【図６】
2018081546.tif 000008
【図７】
2018081546.tif 000009
【図８】
2018081546.tif 000010
【図９】
2018081546.tif 000011
【図１０】
2018081546.tif 000012
【図１１】
2018081546.tif 000013