(57)【特許請求の範囲】
【請求項１】
パラメータの配列であるパラメータ系列から検索パターンと類似する部分系列を検出する検出装置であって、
前記パラメータについて、前記検索パターンにおける発生のしやすさを表す局所スコアを取得する局所スコア取得部と、
前記パラメータについて、前記局所スコアから閾値を減算した差分スコアを算出する差分スコア算出部と、
前記差分スコアを累積した累積スコアを算出する累積スコア算出部と、
前記累積スコアと基準値との大小を比較して、前記部分系列が前記検索パターンに類似しているかを判定する判定部と、
を備える検出装置。
【請求項２】
前記閾値は、予め設定された値である
請求項１に記載の検出装置。
【請求項３】
前記基準値は、０である
請求項２に記載の検出装置。
【請求項４】
前記検索パターンは、状態にパラメータおよびパラメータの出力確率が割り当てられた有向グラフである
請求項３に記載の検出装置。
【請求項５】
前記検索パターンは、状態にパラメータおよびパラメータの出力確率が割り当てられた隠れマルコフモデルであり、
前記局所スコア取得部は、前記隠れマルコフモデルのそれぞれの状態について、前記部分系列に含まれるそれぞれのパラメータに対応する前記出力確率を取得して、前記局所スコアとして出力し、
前記差分スコア算出部は、前記隠れマルコフモデルのそれぞれの状態について、前記部分系列に含まれるそれぞれのパラメータに対応する前記局所スコアから前記閾値を減算した減算スコアを算出し、
前記累積スコア算出部は、前記隠れマルコフモデルのそれぞれのパスについて、前記部分系列に一致するパラメータの前記差分スコアを累積した前記累積スコアを算出する
請求項４に記載の検出装置。
【請求項６】
前記累積スコア算出部は、
前記パラメータ系列に含まれるパラメータを先頭から１つずつ順次に選択し、
選択したパラメータ毎に、動的計画法に基づき最大の前記累積スコアを算出する
請求項４または５に記載の検出装置。
【請求項７】
前記検索パターンは、ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型の隠れマルコフモデルであり、
前記累積スコア算出部は、下記の式（１００）に示す漸化式により最大の前記累積スコアを算出する
請求項６に記載の検出装置。
【数１】
0006461660.tif 000017
τは、前記パラメータのインデックスを表す変数であり、０より大きく、Ｔ以下の整数である。
Ｔは、パラメータ系列の終端のパラメータのインデックスである。
ｊは、前記隠れマルコフモデルの状態番号を表す変数であり、０より大きく、Ｎ以下の整数である。
ｇ（τ，ｊ）は、インデックスτにおける、状態番号ｊの状態についての評価値を表す。
ｓｃｏｒｅ（τ，ｊ）は、インデックスτのパラメータの前記局所スコアを表す。
ｔｈｒｅｓｈｏｌｄは、前記閾値を表す。
ｍａｘ（ｇ（τ−１，ｊ−１），ｇ（τ−１，ｊ））は、ｇ（τ−１，ｊ−１）とｇ（τ−１，ｊ）とのうち大きい方を選択する関数を表す。
【請求項８】
前記判定部は、選択したパラメータ毎に、ｇ（τ，Ｎ）が０より大きいか否かを判定する
請求項７に記載の検出装置。
【請求項９】
前記パラメータは、音声の音響的な特徴を表す
請求項１から８の何れか１項に記載の検出装置。
【請求項１０】
音声信号を前記パラメータ系列に変換する分析部をさらに備える
請求項８に記載の検出装置。
【請求項１１】
文字列を入力する入力部と、
音素と隠れマルコフモデルとを対応付けた音響モデルを記憶するモデル記憶部と、
前記音響モデルに基づき、前記文字列に対応する隠れマルコフモデルを前記検索パターンとして生成する検索パターン生成部と、
をさらに備える請求項１０に記載の検出装置。
【請求項１２】
コンピュータが、パラメータの配列であるパラメータ系列から検索パターンと類似する部分系列を検出する検出方法であって、
前記コンピュータに備えられる局所スコア取得部が、前記パラメータについて、前記検索パターンにおける発生のしやすさを表す局所スコアを取得する局所スコア取得ステップと、
前記コンピュータに備えられる差分スコア算出部が、前記パラメータについて、前記局所スコアから閾値を減算した差分スコアを算出する差分スコア算出ステップと、
前記コンピュータに備えられる累積スコア算出部が、前記差分スコアを累積した累積スコアを算出する累積スコア算出ステップと、
前記コンピュータに備えられる判定部が、前記累積スコアと基準値との大小を比較して、前記部分系列が前記検索パターンに類似しているかを判定する判定ステップと、
を含む検出方法。
【請求項１３】
コンピュータを、パラメータの配列であるパラメータ系列から検索パターンと類似する部分系列を検出する検出装置として機能させるためのプログラムであって、
前記コンピュータを、
前記パラメータについて、前記検索パターンにおける発生のしやすさを表す局所スコアを取得する局所スコア取得部と、
前記パラメータについて、前記局所スコアから閾値を減算した差分スコアを算出する差分スコア算出部と、
前記差分スコアを累積した累積スコアを算出する累積スコア算出部と、
前記累積スコアと基準値との大小を比較して、前記部分系列が前記検索パターンに類似しているかを判定する判定部と
して機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、検出装置、検出方法およびプログラムに関する。
【背景技術】
【０００２】
ＤＮＡの塩基配列、タンパク質のアミノ酸配列、文字列、音声を表す音響パラメータの配列および音楽データの配列等のパラメータ系列中から、指定された検索パターンに類似する部分系列を検出する検出装置が知られている。このような検出装置では、パラメータ系列中の部分系列と検索パターンとの類似度を算出し、算出した類似度が予め設定された閾値を超えている場合に、その部分系列が検索パターンと類似していると判定する。例えば、部分系列と検索パターンとの類似度は、部分系列に含まれるパラメータ毎に検索パターンにおける発生のしやすさを表す局所スコアを算出し、全ての局所スコアを累積した累積スコアにより表される。
【０００３】
ところで、検索パターンに隠れマルコフモデルが用いられる場合、通過するパスによって部分系列に含まれるパラメータ数が変動するので、部分系列に含まれるパラメータ数が多いほど累積スコアの絶対値が大きくなりやすい。部分系列に含まれるパラメータ数に応じて累積スコアが変動することが好ましくない場合には、部分系列と検索パターンとの類似度を、累積値を部分系列に含まれるパラメータ数により正規化した平均スコアとすればよい。しかしながら、このような平均スコアを簡単な演算で精度良く算出することは困難であった。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３１１４４６８号公報
【非特許文献】
【０００５】
【非特許文献１】J.  Junkawitsch,  L.  Neubauer，  H.  Hoge，  G.  Ruske，  “A  new  keyword  spotting  algorithm  with  pre-calculated  optimal  thresholds”，  in  Proc.  ICSLP，  pp.2067-2070，  1996
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明が解決しようとする課題は、簡単な演算で精度良く、パラメータ系列に含まれる部分系列が検索パターンと類似しているかを検出することにある。
【課題を解決するための手段】
【０００７】
実施形態に係る検出装置は、パラメータの配列であるパラメータ系列から検索パターンと類似する部分系列を検出する。前記検出装置は、局所スコア取得部と、差分スコア算出部と、累積スコア算出部と、判定部と、を備える。前記局所スコア取得部は、前記パラメータについて、前記検索パターンにおける発生のしやすさを表す局所スコアを取得する。前記差分スコア算出部は、前記パラメータについて、前記局所スコアから閾値を減算した差分スコアを算出する。前記累積スコア算出部は、前記差分スコアを累積した累積スコアを算出する。前記判定部は、前記累積スコアと基準値との大小を比較して、前記部分系列が前記検索パターンに類似しているかを判定する。
【図面の簡単な説明】
【０００８】
【図１】実施形態に係る検出装置の構成図。
【図２】実施形態に係る検出装置の処理順序を示すフローチャート。
【図３】インデックスｔを終端とする部分系列の位置を示す図。
【図４】ＨＭＭのパスの一例を示すトレリス図。
【図５】動的計画法を用いた場合の検出装置の処理順序を示すフローチャート。
【図６】評価値の算出処理の順序を示すフローチャート。
【図７】実施形態に係る検出装置のハードウェア構成図。
【発明を実施するための形態】
【０００９】
以下、図面を参照しながら実施形態に係る検出装置１０について詳細に説明する。本実施形態に係る検出装置１０は、パラメータの配列であるパラメータ系列から検索パターンと類似する部分系列を、精度良く簡単な演算で検出することを目的とする。
【００１０】
図１は、実施形態に係る検出装置１０の構成を示す図である。検出装置１０は、分析部２１と、入力部２２と、モデル記憶部２３と、検索パターン生成部２４と、局所スコア取得部２５と、差分スコア算出部２６と、累積スコア算出部２７と、判定部２８とを備える。
【００１１】
分析部２１は、対象となる信号を入力し、入力した信号を分析して、パラメータの配列であるパラメータ系列を生成する。分析部２１は、例えば、音声信号を入力し、入力した音声信号を、音声の音響的な特徴を表すパラメータの系列に変換して出力する。より具体的には、例えば、分析部２１は、一定期間毎に、ＭＦＣＣ（メル周波数ケプストラム係数）の系列を出力する。分析部２１は、信号の入力開始時点から終了時点まで連続してパラメータ系列を出力してもよいし、逐次的にパラメータ系列を出力してもよい。また、分析部２１は、信号を一旦全て蓄積したのちにオフラインで分析してパラメータ系列を出力してもよいし、入力される信号をリアルタイムで分析してパラメータ系列を出力してもよい。
【００１２】
入力部２２は、ユーザにより入力された情報を取得し、取得した情報を検索パターンを生成するためのコード情報に変換して出力する。入力部２２は、例えば、ユーザにより入力されたキーワード（文字列）を取得し、キーワードを音素列に変換して出力する。
【００１３】
モデル記憶部２３は、コード情報から検索パターンを生成するためのモデルを記憶する。モデル記憶部２３は、例えば、音素列とＨＭＭ（隠れマルコフモデル）とを対応付けた音響モデルを記憶する。
【００１４】
ＨＭＭは、複数の状態と、状態間の遷移とを含む有向グラフである。ＨＭＭは、それぞれの状態に、パラメータおよびパラメータの出力確率が割り当てられる。また、ＨＭＭは、それぞれの遷移に、遷移確率が割り当てられていてもよい。モデル記憶部２３は、例えば、ＧＭＭ（混合ガウス分布）またはニューラルネットワーク等を用いて生成された音響モデルを記憶する。パラメータの出力確率は、例えば、ＧＭＭを用いて生成された場合には対数尤度となり、ニューラルネットワークを用いて生成された場合には対数事後確率となる。なお、パラメータの出力確率は、他の尺度により算出された値であってもよい。また、モデル記憶部２３は、ＨＭＭに限らず他の有向グラフを用いたモデルを記憶してもよい。
【００１５】
検索パターン生成部２４は、モデル記憶部２３に記憶されたモデルを参照して、入力部２２からのコード情報に対応した検索パターンを生成する。検索パターン生成部２４は、例えば、モデル記憶部２３に記憶された音響モデルを参照して、入力部２２からの音素列に対応したＨＭＭを生成する。本実施形態においては、検索パターン生成部２４は、ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭを検索パターンとして生成する。なお、検索パターン生成部２４は、ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭに限らず、他の型のＨＭＭを検索パターンとして生成してもよい。
【００１６】
局所スコア取得部２５は、分析部２１により出力されたパラメータ系列から部分系列を抽出する。そして、局所スコア取得部２５は、抽出した部分系列に含まれるそれぞれのパラメータについて、検索パターンにおける発生のしやすさを表す局所スコアを取得する。例えば、検索パターンがＨＭＭである場合、局所スコア取得部２５は、ＨＭＭのそれぞれの状態について、抽出した部分系列に含まれるそれぞれのパラメータに対応する出力確率を取得して、局所スコアとして出力する。
【００１７】
差分スコア算出部２６は、ユーザ等により予め設定された閾値を入力する。差分スコア算出部２６は、抽出した部分系列に含まれるそれぞれのパラメータについて、局所スコアから予め設定された閾値を減算した差分スコアを算出する。例えば、検索パターンがＨＭＭである場合、局所スコア取得部２５は、ＨＭＭのそれぞれの状態について、抽出した部分系列に含まれるそれぞれのパラメータに対応する局所スコアから閾値を減算した差分スコアを算出する。
【００１８】
累積スコア算出部２７は、部分系列に含まれるそれぞれのパラメータの差分スコアを累積した累積スコアを算出する。例えば、検索パターンがＨＭＭである場合、累積スコア算出部２７は、ＨＭＭのそれぞれのパスについて、部分系列に一致するパラメータの差分スコアを累積した累積スコアを算出する。なお、累積スコア算出部２７は、ＨＭＭの遷移に遷移確率が対応付けられている場合には、パスに沿って通過する遷移に対応付けられた遷移確率も累積スコアに加算する。
【００１９】
判定部２８は、予め設定された基準値を入力する。判定部２８は、累積スコア算出部２７により算出された累積スコアと、基準値との大小を比較して、部分系列が検索パターンに類似しているかを判定する。例えば、検索パターンがＨＭＭである場合、判定部２８は、ＨＭＭのそれぞれのパスについて、累積スコアと基準値との大小を比較して、部分系列が検索パターンに類似しているかを判定する。そして、判定部２８は、判定結果を外部に出力する。
【００２０】
ここで、ユーザ等により予め設定される閾値は、部分系列が検索パターンに類似しているか否かを判別するための累積スコアの境界値である。この閾値は、ユーザ等により適宜調整されてもよい。また、入力されるキーワード等によって変更されてもよい。また、基準値は、例えば、０である。基準値は、０近傍の値であれば、０でなくても他の値であってもよい。
【００２１】
図２は、実施形態に係る検出装置１０の処理順序を示すフローチャートである。検出装置１０は、図２に示す手順で処理を実行する。
【００２２】
まず、ステップＳ１０１において、入力部２２は、情報を取得し、取得した情報を検索パターンを生成するためのコード情報に変換して出力する。例えば、入力部２２は、キーワード（文字列）を取得し、キーワードを音素列に変換して出力する。
【００２３】
続いて、ステップＳ１０２において、検索パターン生成部２４は、モデル記憶部２３に記憶されたモデルを参照して、入力部２２からのコード情報に対応した検索パターンを生成する。例えば、検索パターン生成部２４は、モデル記憶部２３に記憶された音響モデルを参照して、入力部２２からの音素列に対応したＨＭＭを生成する。
【００２４】
続いて、ステップＳ１０３において、分析部２１は、対象となる信号を入力する。例えば、分析部２１は、例えば、音声信号を入力する。続いて、ステップＳ１０４において、分析部２１は、入力した信号を分析してパラメータ系列を生成する。例えば、分析部２１は、入力した音声信号を、音声の音響的な特徴を表すパラメータの系列に変換する。
【００２５】
続いて、局所スコア取得部２５は、分析部２１により出力されたパラメータ系列から部分系列を抽出し、抽出した部分系列毎にステップＳ１０６からステップＳ１１０までの処理を繰り返して実行させる（ステップＳ１０５とステップＳ１１１との間のループ処理）。
【００２６】
ステップＳ１０６において、局所スコア取得部２５は、抽出した部分系列に含まれるそれぞれのパラメータについて、検索パターンにおける発生のしやすさを表す局所スコアを取得する。例えば、検索パターンがＨＭＭである場合、局所スコア取得部２５は、ＨＭＭのそれぞれの状態について、抽出した部分系列に含まれるそれぞれのパラメータに対応する出力確率を取得して、局所スコアとして出力する。
【００２７】
続いて、ステップＳ１０７において、差分スコア算出部２６は、抽出した部分系列に含まれるそれぞれのパラメータについて、局所スコアから予め設定された閾値を減算した差分スコアを算出する。例えば、検索パターンがＨＭＭである場合、局所スコア取得部２５は、ＨＭＭのそれぞれの状態について、抽出した部分系列に含まれるそれぞれのパラメータに対応する局所スコアから閾値を減算した差分スコアを算出する。
【００２８】
続いて、ステップＳ１０８において、累積スコア算出部２７は、部分系列に含まれるそれぞれのパラメータの差分スコアを累積した累積スコアを算出する。例えば、検索パターンがＨＭＭである場合、累積スコア算出部２７は、ＨＭＭのそれぞれのパスについて、部分系列に一致するパラメータの差分スコアを累積した累積スコアを算出する。
【００２９】
続いて、ステップＳ１０９において、判定部２８は、累積スコアと基準値との大小を比較して、部分系列が検索パターンに類似しているかを判定する。例えば、検索パターンがＨＭＭである場合、判定部２８は、ＨＭＭのそれぞれのパスについて、累積スコアと基準値との大小を比較して、部分系列が検索パターンに類似しているかを判定する。
【００３０】
続いて、ステップＳ１１０において、判定部２８は、判定結果を外部に出力する。そして、判定部２８は、全ての部分系列について処理を終えているかを判断する（Ｓ１１１）。判定部２８は、全ての部分系列について処理を終えていない場合には、処理をステップＳ１０６に戻して次の部分系列について処理を繰り返す。判定部２８は、全ての部分系列について処理を終えた場合には、本フローを終了する。
【００３１】
以上のように本実施形態に係る検出装置１０によれば、パラメータ系列に含まれる部分系列が検索パターンと類似しているかを検出することができる。例えば、検出装置１０によれば、パラメータ系列に含まれる部分系列が、ＨＭＭにより定義されるパスと類似しているかを検出することができる。
【００３２】
図３は、パラメータ系列中におけるインデックスｔを終端とする部分系列の位置を示す図である。検出装置１０は、検索パターンがＨＭＭである場合、パラメータ系列のうちある１つのパラメータを特定し、その特定したパラメータを終端とした全ての部分系列の累積スコアのうち、最大の累積スコアを算出してもよい。そして、検出装置１０は、算出した累積スコアと、基準値との大小関係を比較してもよい。これにより、検出装置１０は、少なくとも特定した位置において、検索パターンに類似した部分系列が発生したことを検出することができる。
【００３３】
具体的には、検出装置１０は、下記の式（１）に示す演算を実行する。
【数１】
0006461660.tif 000002
【００３４】
式（１）において、ｔは、１以上の整数であって、パラメータ系列中における、部分系列の終端のパラメータの位置（インデックス）を示す。ｓは、１以上、ｔ以下の整数であって、パラメータ系列中における部分系列の始端のパラメータのインデックスを示す。式（１）において、τは、ｓ以上、ｔ以下の整数であって、部分系列における任意のインデックスを表す。
【００３５】
式（１）において、ｓｃｏｒｅ（τ，ｑτ）は、ＨＭＭの状態番号がｑτの状態についての、インデックスτのパラメータの出力確率（局所スコア）を表す。また、ｔｈｒｅｓｈｏｌｄは、予め設定された閾値を表す。
【００３６】
式（１）において、Ｑは、検索パターンであるＨＭＭにより定義される状態列（パス）を表す。Ｑは、下記の式（２）のように制約される。
【数２】
0006461660.tif 000003
【００３７】
ここで、ＨＭＭは、Ｎ個（Ｎは１以上の整数）の状態を含む。ＨＭＭに含まれるＮ個の状態には、１からＮまでの整数の状態番号が割り当てられている。状態番号１は、開始状態である。また、状態番号Ｎは、終了状態である。
【００３８】
式（２）において、Ｑは、ｑｓからｑｅまでの任意の数の状態を含む状態列を表す。ｑｓは、ＨＭＭの開始状態（状態番号が１の状態）を表す。ｑｅは、ＨＭＭの終了状態（状態番号がＮの状態）を表す。また、式（２）において、τは、ｓ以上、ｅより小さい任意の整数である。ｑτは、開始状態からτ−ｓ回分遷移した状態の状態番号を表す。ｑτ+１は、ｑτまたはｑτ＋１である。
【００３９】
すなわち、式（２）においては、Ｑは、先頭が開始状態、末尾が終了状態であり、ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型ＨＭＭの遷移に従った順序に配列された状態列であることを制約している。
【００４０】
そして、式（１）において、（ｓｃｏｒｅ（τ，ｑτ）−ｔｈｒｅｓｈｏｌｄ）で演算される値は、ＨＭＭの状態番号がｑτの状態についての、インデックスτのパラメータの出力確率（局所スコア）から、閾値を減算した減算スコアを表す。また、式（１）において、Σ（ｓｃｏｒｅ（τ，ｑτ）−ｔｈｒｅｓｈｏｌｄ）で演算される値は、ＨＭＭにおける指定されたパスについて、インデックスｓからｔまでの部分系列と一致するパラメータの減算スコアを累積した累積スコアを表す。
【００４１】
式（１）において、ｍａｘＱで演算される値（Ｑは、ｍａｘの下部に記載）は、ＨＭＭの全てのパス（つまり、式（２）で制約される全てのパス）のうちの、最大累積スコアを表す。また、式（１）において、ｍａｘ＿ｓ≦ｔで演算される値（ｓ≦ｔは、ｍａｘの下部に記載）は、ｔ以下の全てのｓから開始される部分系列における最大累積スコアのうちの、さらに最大の累積スコアを表す。
【００４２】
そして、式（１）では、左辺で最終的に選択された最大の累積スコアと、基準値である０との大小を比較する。式（１）では、最大の累積スコアが０より大きい場合に、特定したパラメータを終端とする部分系列がＨＭＭと類似すると判定する。
【００４３】
以上のように、検出装置１０は、式（１）を演算することにより、特定したパラメータを終端とした全ての部分系列の中に、検索パターンに類似する部分系列が含まれているか否かを検出することができる。
【００４４】
なお、ＨＭＭは、値が小さいほど高い出力確率が割り当てられてもよい。この場合、検出装置１０は、式（１）に代えて、下記の式（３）を演算する。
【数３】
0006461660.tif 000004
【００４５】
式（３）の左辺は、式（１）のｍａｘ関数をｍｉｎ関数に置き換えた式である。ｍｉｎ関数は、全ての累積スコアのうちの、最小の累積スコアを選択する。そして、式（３）は、最小の累積スコアが０より小さいか否かを比較し、最小の累積スコアが０より小さい場合に、特定したパラメータを終端とした部分系列がＨＭＭと類似すると判定する。
【００４６】
図４は、ＨＭＭのパスの一例を示すトレリス図である。図４のトレリス図は、縦軸がＨＭＭの状態番号を表し、横軸がパラメータ系列のインデックスを表す。
【００４７】
検出装置１０は、上述した式（１）の左辺に示す演算を、動的計画法に基づく方法（ＤＰマッチング）により実行してもよい。つまり、検出装置１０は、パラメータ系列に含まれるパラメータを先頭から１つずつ順次に選択し、選択したパラメータ毎に最大の累積スコアを算出してもよい。具体的には、検索パターンがｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭである場合、検出装置１０は、下記の式（４）に示すビタビアルゴリズムに基づく漸化式を演算して最大の累積スコアを算出する。
【００４８】
【数４】
0006461660.tif 000005
【００４９】
式（４）において、ｇ（τ，ｊ）は、インデックスτにおける、状態番号ｊの状態についての評価値を表す。τは、パラメータのインデックスを表す変数であり、０より大きく、Ｔ以下の整数である。Ｔは、パラメータ系列の終端のインデックスである。ｊは、ＨＭＭの状態番号を表す変数であり、０より大きく、Ｎ以下の整数である。ＨＭＭは、状態番号１から状態番号Ｎ（Ｎは１以上の整数）のＮ個の状態を含む。状態番号１は開始状態であり、状態番号Ｎは終了状態である。
【００５０】
式（４）の１行目は、図４に示すように、インデックス０、且つ、状態１からＮまでの評価値（ｇ（０，ｊ））が−∞であることを表す。式（４）の２行目は、図４に示すように、任意のインデックスτにおいて、状態０の評価値が０であることを表す。状態０は、開始状態より前であることを表す。
【００５１】
式（４）の３行目において、ｍａｘ（ｇ（τ−１，ｊ−１），ｇ（τ−１，ｊ））は、ｇ（τ−１，ｊ−１）とｇ（τ−１，ｊ）とのうち大きい方を選択する関数を表す。すなわち、ｍａｘ（ｇ（τ−１，ｊ−１），ｇ（τ−１，ｊ））は、インデックスτの直前のインデックスτ−１において、状態番号ｊの直前の状態（ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭの場合、状態ｊ−１または状態ｊ）の評価値のうち、最大の評価値を表す。
【００５２】
式（４）の３行目において、（ｓｃｏｒｅ（τ，ｊ）−ｔｈｒｅｓｈｏｌｄ）で演算される値は、状態番号ｊの状態についての、インデックスτのパラメータの出力確率（局所スコア）から、閾値を減算した減算スコアを表す。従って、式（４）の３行目は、図４に示すように、直前の状態の評価値のうちの最大値と減算スコアとを加算した値を、パラメータのインデックスτについての、状態番号ｊの評価値とすることを表す。
【００５３】
検出装置１０は、パラメータ系列に含まれるパラメータを先頭から１つずつ順次に選択しながら、式（４）の３行目を演算する。
【００５４】
そして、検出装置１０は、インデックスτの終了状態Ｎについての評価値ｇ（τ，Ｎ）が０より大きいか否かを判定する。検出装置１０は、評価値ｇ（τ，Ｎ）が０より大きければ、インデックスτを終端とする何れかの部分系列が、ＨＭＭと類似することを検出する。これにより、検出装置１０は、さらに効率良く、ＨＭＭに類似する部分系列を検出することができる。
【００５５】
なお、検出装置１０は、ＨＭＭに遷移確率が割り当てられている場合には、式（４）における、直前の評価値ｇ（τ−１，ｊ−１）およびｇ（τ−１，ｊ）に、対応する遷移に割り当てられた遷移確率を加算すればよい。
【００５６】
また、検出装置１０は、上述した式（３）の左辺に示す演算を、動的計画法（ＤＰマッチング）に基づき実行してもよい。この場合、検出装置１０は、下記の式（５）に示すビタビアルゴリズムに基づく漸化式を演算して最小の累積スコアを算出する。
【００５７】
【数５】
0006461660.tif 000006
【００５８】
式（５）は、式（４）のｍａｘ関数をｍｉｎ関数に置き換え、−∞を∞に置き換えた式である。そして、この場合、検出装置１０は、インデックスτの終了状態Ｎについての評価値ｇ（τ，Ｎ）が０より小さいか否かを判定する。
【００５９】
図５は、動的計画法を用いた場合の検出装置１０の処理順序を示すフローチャートである。なお、図５の例では、音声信号が入力され、累積スコアが大きい方が、類似度が高い場合を例にとって説明する。
【００６０】
まず、ステップＳ２０１において、入力部２２は、キーワード（文字列）を取得し、キーワードを音素列に変換して出力する。続いて、ステップＳ２０２において、検索パターン生成部２４は、音素列に対応したＨＭＭを生成する。続いて、ステップＳ２０３において、累積スコア算出部２７は、閾値（ｔｈｒｅｓｈｏｌｄ）を取得する。
【００６１】
続いて、ステップＳ２０４において、累積スコア算出部２７は、評価値ｇ（０，０）に０を代入し、１以上Ｎ以下の整数ｊについて評価値ｇ（０，ｊ）に−∞を代入する。なお、累積スコア算出部２７は、−∞に代えて、入力可能な最小の値を代入してもよい。続いて、ステップＳ２０５において、累積スコア算出部２７は、パラメータのインデックスを表す変数τに１を代入する。
【００６２】
続いて、累積スコア算出部２７は、変数τ毎に、すなわち、パラメータのインデックス毎に、ステップＳ２０７からステップＳ２１４までの処理を繰り返して実行する（ステップＳ２０６とステップＳ２１５との間のループ処理）。
【００６３】
ステップＳ２０７において、累積スコア算出部２７は、評価値ｇ（τ，０）に０を代入する。続いて、ステップＳ２０８において、累積スコア算出部２７は、ＨＭＭの状態番号を表す変数ｊに１を代入する。
【００６４】
続いて、累積スコア算出部２７は、変数ｊ毎に、すなわち、ＨＭＭの状態毎に、ステップＳ２１０からステップＳ２１１までの処理を繰り返して実行する（ステップＳ２０９とステップＳ２１２との間のループ処理）。
【００６５】
ステップＳ２１０において、累積スコア算出部２７は、パラメータτについて、状態番号ｊの評価値ｇ（τ，ｊ）を算出する。なお、ステップＳ２１０の処理の詳細は、図６においてさらに説明する。
【００６６】
続いて、ステップＳ２１１において、累積スコア算出部２７は、変数ｊに、ｊ＋１を代入する。続いて、ステップＳ２１２において、累積スコア算出部２７は、変数ｊがＮより大きいか否かを判断する。累積スコア算出部２７は、変数ｊがＮより大きい場合、すなわち、ＨＭＭの全ての状態について処理を終えた場合には、ループを抜けて処理をステップＳ２１３に進める。また、累積スコア算出部２７は、変数ｊがＮより大きくない場合には処理をステップＳ２１０に戻して、ステップＳ２１０から処理を繰り返す。
【００６７】
続いて、ステップＳ２１３において、判定部２８は、パラメータτについて、状態番号Ｎの評価値ｇ（τ，Ｎ）が、基準値である０より大きいか否かを判定する。状態番号Ｎの状態は、ＨＭＭの終了状態である。ＨＭＭの終了状態における評価値は、パラメータτが終端となるパスの最大の累積スコアである。すなわち、ステップＳ２１３において、判定部２８は、パラメータτが終端となる部分系列の最大の累積スコアが、基準値である０より大きいか否かを判定する。そして、判定部２８は、状態番号Ｎの評価値ｇ（τ，Ｎ）が０より大きい場合には、パラメータτを終端とする少なくとも１つの部分系列に、検索パターンと類似する部分系列が含まれると判定し、判定結果を出力する。
【００６８】
続いて、ステップＳ２１４において、累積スコア算出部２７は、変数τに、τ＋１を代入する。続いて、ステップＳ２１５において、累積スコア算出部２７は、変数τがＴより大きいか否かを判断する。累積スコア算出部２７は、変数がＴより大きい場合、すなわち、パラメータ系列の末尾のインデックスまで処理を終えた場合には、ループを抜けて本フローを終了する。また、累積スコア算出部２７は、変数τがＴより大きくない場合には処理をステップＳ２０７に戻して、ステップＳ２０７から処理を繰り返す。
【００６９】
図６は、評価値ｇ（τ，ｊ）の算出処理の順序を示すフローチャートである。検出装置１０は、ステップＳ２１０の評価値算出処理において、図６に示す処理を実行する。
【００７０】
まず、ステップＳ２２１において、局所スコア取得部２５は、ＨＭＭからｓｃｏｒｅ（τ，ｊ）を取得する。すなわち、局所スコア取得部２５は、状態番号ｊの状態についての、インデックスτのパラメータの出力確率（局所スコア）を取得する。
【００７１】
続いて、ステップＳ２２２において、差分スコア算出部２６は、ｓｃｏｒｅ（τ，ｊ）−ｔｈｒｅｓｈｏｌｄを算出する。すなわち、差分スコア算出部２６は、状態番号ｊの状態についてのインデックスτのパラメータの局所スコアから、閾値を減算して差分スコアを算出する。
【００７２】
続いて、ステップＳ２２３において、累積スコア算出部２７は、状態番号ｊの状態の直前状態を特定する。すなわち、累積スコア算出部２７は、状態番号ｊの状態に入ってくる遷移を逆方向に辿り、少なくとも１つの直前状態を特定する。本例では、検索パターンは、ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭであるので、直前状態は、状態番号ｊ、または、状態番号ｊ−1となる。
【００７３】
続いて、ステップＳ２２４において、累積スコア算出部２７は、直前のインデックスτ−１について、それぞれの直前状態の評価値を取得する。本例では、累積スコア算出部２７は、評価値ｇ（τ−１，ｊ−１）およびｇ（τ−１，ｊ）を取得する。
【００７４】
続いて、ステップＳ２２５において、累積スコア算出部２７は、評価値が最大となる何れか１つのパスを選択する。本例では、累積スコア算出部２７は、直前状態の評価値ｇ（τ−１，ｊ−１）またはｇ（τ−１，ｊ）のうち、大きい方の直前状態の評価値を選択する。なお、累積スコア算出部２７は、ＨＭＭに遷移確率が割り当てられている場合には、直前状態の評価値に対応する遷移確率を加算した値を選択する。
【００７５】
続いて、ステップＳ２２６において、累積スコア算出部２７は、選択したパスの直前状態における評価値ｇ（τ−１，ｊ−１）またはｇ（τ−１，ｊ）と、ステップＳ２２２で算出した差分スコアとを加算して、インデックスτについての状態番号ｊの評価値ｇ（τ，ｊ）を算出する。
【００７６】
続いて、ステップＳ２２７において、累積スコア算出部２７は、算出した評価値ｇ（τ，ｊ）を保存する。
【００７７】
なお、ステップＳ２２７において、累積スコア算出部２７は、評価値とともに、選択したパスの開始状態におけるパラメータのインデックスを保存してもよい。この場合、ステップＳ２１３において、判定部２８は、検索パターンと類似する部分系列が含まれるとの判定結果とともに、評価値に対応して記憶したパラメータのインデックスを出力してもよい。これにより、判定部２８は、検索パターンと類似する部分系列の、パラメータ系列中における開始位置および終了位置を特定することができる。
【００７８】
以上のように本実施形態に係る検出装置１０は、部分系列に含まれるそれぞれのパラメータについて、局所スコアから閾値を減算した差分スコアを累積して累積スコアを算出する。そして、検出装置１０は、累積スコアと基準値（例えば０）との大小を比較して、部分系列が検索パターンに類似しているか否かを判定する。これにより、検出装置１０によれば、精度良く簡単な演算で、パラメータ系列に含まれる部分系列が検索パターンと類似しているかを検出することができる。
【００７９】
（精度良く簡単な演算で部分系列の類似を検出できる理由）
つぎに、本実施形態に係る検出装置１０が、パラメータ系列に含まれる部分系列が検索パターンと類似しているかを、精度良く簡単に演算できる理由について説明する。
【００８０】
例えば、検索パターンに対する部分系列の類似度を評価する方法として、部分系列に含まれるそれぞれのパラメータについて局所スコアを算出し、部分系列の全体で局所パラメータを累積した値（累積局所スコア）を評価する方法が考えられる。また、累積局所スコアを部分系列の長さで正規化した値、すなわち、累積局所スコアを部分系列に含まれるパラメータの数で除算することによって平均化した値（平均局所スコア）を評価する方法も考えられる。平均局所スコアを評価する方法は、部分系列の長さ（パラメータの数）によってスコアの大小が変化しないので、部分系列の長さが変化する場合には、累積局所スコアを用いるよりも類似度を正確に評価することができる。
【００８１】
累積局所スコアは、動的計画法に基づく方法（ＤＰマッチング）によって効率的に算出される。検索パターンがＨＭＭである場合、動的計画法に基づく方法（ＤＰマッチング）は、ビタビアルゴリズムと呼ばれる。以下、ビタビアルゴリズムによって累積局所スコアを算出する方法を説明する。なお、検索パターンは、ｌｅｆｔ−ｔｏ−ｒｉｇｈｔ型のＨＭＭである。
【００８２】
部分系列の始端および終端のパラメータのインデックスをそれぞれｓおよびｅとする。また、ＨＭＭの状態数をＮとし、それぞれの状態のインデックスを１，２，…，Ｎとする。インデックスｓからｅまでに相当するＨＭＭのパス（状態列Ｑ）は、下記の式（１１）の制約を満たす。
【数６】
0006461660.tif 000007
【００８３】
部分系列の累積局所スコアＳ（ｓ，ｅ）は、下記の数（１２）で示されるように、式（１１）の制約下で取り得るＨＭＭの全てのパスについて、局所スコアを累積した値のうちの最大値である。
【数７】
0006461660.tif 000008
【００８４】
ｓｃｏｒｅ（τ，ｑτ）は、状態ｑτについてのインデックスτのパラメータの出力確率（局所スコア）である。なお、ここでは、ＨＭＭの遷移確率は簡単のため省略する。
【００８５】
部分系列の累積局所スコアＳ（ｓ，ｅ）は、ビタビアルゴリズムによって、下記の式（１３）の漸化式により算出される。
【数８】
0006461660.tif 000009
【００８６】
式（１３）を用いると、部分系列の始端および終端を固定した場合に、部分系列の累積局所スコアを効率良く算出することができる。また、平均局所スコアは、このように算出した累積局所スコアを部分系列の長さで正規化することにより算出される。
【００８７】
ところで、パラメータ系列に含まれる部分系列のうち、終端がｔであって、且つ、累積局所スコアまたは平均局所スコアが予め定めた閾値ｔｈｒｅｓｈｏｌｄを超える条件を満たす一つの部分系列を検出することを考える。
【００８８】
終端がｔであって、且つ、条件を満たす部分系列が存在するか否かは、下記の式（１４）により判定することができる。
【数９】
0006461660.tif 000010
【００８９】
ここで、式（１４）において、Ｓ（ｓ，ｔ）は、累積局所スコアまたは平均局所スコアである。
【００９０】
Ｓ（ｓ，ｔ）が累積局所スコアである場合、式（１４）は、式（１５）のように展開される。
【数１０】
0006461660.tif 000011
【００９１】
式（１５）の左辺を漸化式に置き換えると下記の式（１６）のようになる。
【数１１】
0006461660.tif 000012
【００９２】
式（１５）の左辺は、式（１６）の漸化式で算出されるｇ（ｔ，Ｎ）に相当する。従って、式（１５）の左辺は、動的計画法によって、効率良く算出することができる。
【００９３】
一方、Ｓ（ｓ，ｔ）が平均局所スコアである場合、式（１４）は、式（１７）のように展開される。
【数１２】
0006461660.tif 000013
【００９４】
式（１７）の左辺を、例えば非特許文献１に記載された方法で漸化式に置き換えると下記の式（１８）のようになる。なお、非特許文献１に記載された方法は、値が小さい方が類似度が高くなる局所スコアを用いている。しかし、説明の一貫性のため、ここでは、符号を反転し、値が大きい方が類似度が高くなる局所スコアを用いた式に置き換えて説明する。また、説明を簡単にするため、ＨＭＭの遷移確率に相当する項は省略する。
【００９５】
【数１３】
0006461660.tif 000014
【００９６】
式（１７）の左辺は、式（１８）の漸化式で算出されるｇ（ｔ，Ｎ）に相当する。式（１８）の漸化式では、それぞれのパラメータのインデックスτ、および、それぞれの状態ｊについて、その時点で平均局所スコアが最大となるパスを選択する。それぞれのパラメータのインデックスτにおいて、ｇ（τ，Ｎ）が閾値を超えた場合に、部分系列が検索パターンに類似していると判定される。
【００９７】
ところで、式（１８）の漸化式で算出したｇ（τ，Ｎ）は、式（１７）の左辺に、必ず一致するとは限らない。式（１８）のｇ（τ，Ｎ）が、式（１７）の左辺に一致しない場合、すなわち、式（１８）によって算出したｇ（τ，Ｎ）より、式（１７）で算出した平均局所スコアが大きくなる場合について説明する。
【００９８】
パラメータのインデックスτ、状態Ｎ−１において、局所スコアの履歴がＡ＝｛０．３０，０．２０｝、Ｂ＝｛０．２０｝となる長さが異なる２つのパスが、候補にあったとする。このとき、パスＡを選択するとｇ（τ，Ｎ−１）＝（０．３０＋０．２０）／２＝０．２５、パスＢを選択するとｇ（τ，Ｎ−１）＝０．２０となる。従って、この時点において、平均局所スコアが高いパスＡが選択される。
【００９９】
ここで、パラメータのインデックスτ＋１、状態Ｎにおける局所スコアがｓｃｏｒｅ（τ＋１，Ｎ）＝０．５０であったとする。この場合、平均局所スコアは、ｇ（τ＋１，Ｎ）＝（０．３０＋０．２０＋０．５０）／３＝０．３３となる。
【０１００】
しかし、パスＡに代えてパスＢを選択していたら、平均局所スコアは、ｇ（τ＋１，Ｎ）＝（０．２０＋０．５０）／２＝０．３５となり、パスＡを選択するよりも高い平均局所スコアとなる。
【０１０１】
このため、式（１８）の漸化式を用いた場合、平均局所スコアが閾値を超える部分系列が存在するにもかかわらず、検出することができないという問題が生じる。この問題点は、非特許文献１の方法に限ったものではない。式（１７）の左辺は、部分系列の長さによる正規化演算がｍａｘ関数の内側に存在している。従って、式（１７）の左辺は、そのまま漸化式に置き換えても厳密に計算することができない。
【０１０２】
そこで、本実施形態においては、式（１７）を、下記の式（１９）のように式変形する。
【数１４】
0006461660.tif 000015
【０１０３】
式（１９）の１行目から２行目への式変形は、右辺の定数ｔｈｒｅｓｈｏｌｄを、左辺に移項して整理している。式（１９）の２行目から３行目への式変形は、左辺のｍａｘ＿ｓ≦ｔの内側を、常に正である１／（ｔ−ｓ＋１）で除算している。式（１９）の２行目から３行目への式変形によって、左辺の値は変化するが、０を超えるかどうかの比較結果は変化しないので、式変形が成立する。
【０１０４】
式（１９）の３行目の式は、本実施形態に係る検出装置１０が用いている式（１）と同一である。また、式（１９）の３行目の式を漸化式に置き換えると下記の式（２０）となる。
【数１５】
0006461660.tif 000016
【０１０５】
式（２０）は、本実施形態に係る検出装置１０が用いている式（４）と同一である。式（１９）の左辺は、部分系列の長さによる正規化演算がｍａｘ関数の内側にない。従って、式（１９）の左辺を漸化式に置き換えた式（２０）は、累積スコアｇ（τ，Ｎ）を厳密に計算することができる。そして、累積スコアを０と比較することによって、τを終端とし、平均局所スコアが閾値を超える部分系列が存在するか否かを厳密に判定することができる。
【０１０６】
本実施形態に係る検出装置１０は、以上説明した演算式を用いて、パラメータ系列に含まれる部分系列が検索パターンと類似しているかを検出する。従って、本実施形態に係る検出装置１０によれば、簡単な演算で精度良く、パラメータ系列に含まれる部分系列が検索パターンと類似しているかを検出することができる。
【０１０７】
図７は、実施形態に係る検出装置１０のハードウェア構成の一例を示す図である。本実施形態に係る検出装置１０は、例えば図７に示すようなハードウェア構成の情報処理装置により実現される。この情報処理装置は、ＣＰＵ（Central  Processing  Unit）２０１と、ＲＡＭ（Random  Access  Memory）２０２と、ＲＯＭ（Read  Only  Memory）２０３と、操作入力装置２０４と、表示装置２０５と、記憶装置２０６と、通信装置２０７とを備える。そして、これらの各部は、バスにより接続される。
【０１０８】
ＣＰＵ２０１は、プログラムに従って演算処理および制御処理等を実行するプロセッサである。ＣＰＵ２０１は、ＲＡＭ２０２の所定領域を作業領域として、ＲＯＭ２０３および記憶装置２０６等に記憶されたプログラムとの協働により各種処理を実行する。
【０１０９】
ＲＡＭ２０２は、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）等のメモリである。ＲＡＭ２０２は、ＣＰＵ２０１の作業領域として機能する。ＲＯＭ２０３は、プログラムおよび各種情報を書き換え不可能に記憶するメモリである。
【０１１０】
操作入力装置２０４は、マウスおよびキーボード等の入力デバイスである。操作入力装置２０４は、ユーザから操作入力された情報を指示信号として受け付け、指示信号をＣＰＵ２０１に出力する。
【０１１１】
表示装置２０５は、ＬＣＤ（Liquid  Crystal  Display）等の表示デバイスである。表示装置２０５は、ＣＰＵ２０１からの表示信号に基づいて、各種情報を表示する。
【０１１２】
記憶装置２０６は、フラッシュメモリ等の半導体による記憶媒体、または、磁気的若しくは光学的に記録可能な記憶媒体等にデータを書き込みおよび読み出しをする装置である。記憶装置２０６は、ＣＰＵ２０１からの制御に応じて、記憶媒体にデータの書き込みおよび読み出しをする。通信装置２０７は、ＣＰＵ２０１からの制御に応じて外部の機器とネットワークを介して通信する。
【０１１３】
本実施形態の検出装置１０で実行されるプログラムは、分析モジュール、入力モジュール、検索パターン生成モジュール、局所スコア取得モジュール、差分スコア算出モジュール、累積スコア算出モジュールおよび判定モジュールを含むモジュール構成となっている。このプログラムは、ＣＰＵ２０１（プロセッサ）によりＲＡＭ２０２上に展開して実行されることにより、情報処理装置を分析部２１、入力部２２、検索パターン生成部２４、局所スコア取得部２５、差分スコア算出部２６、累積スコア算出部２７および判定部２８として機能させる。
【０１１４】
なお、検出装置１０は、このような構成に限らず、分析部２１、入力部２２、検索パターン生成部２４、局所スコア取得部２５、差分スコア算出部２６、累積スコア算出部２７および判定部２８の少なくとも一部をハードウェア回路（例えば半導体集積回路）により実現した構成であってもよい。
【０１１５】
また、本実施形態の検出装置１０で実行されるプログラムは、コンピュータにインストール可能な形式または実行可能な形式のファイルで、ＣＤ−ＲＯＭ、フレキシブルディスク、ＣＤ−Ｒ、ＤＶＤ（Digital  Versatile  Disk）等のコンピュータで読み取り可能な記録媒体に記録されて提供される。
【０１１６】
また、本実施形態の検出装置１０で実行されるプログラムを、インターネット等のネットワークに接続されたコンピュータ上に格納し、ネットワーク経由でダウンロードさせることにより提供するように構成してもよい。また、本実施形態の検出装置１０で実行されるプログラムをインターネット等のネットワーク経由で提供または配布するように構成してもよい。また、検出装置１０で実行されるプログラムを、ＲＯＭ等に予め組み込んで提供するように構成してもよい。
【０１１７】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【０１１８】
１０  検出装置
２１  分析部
２２  入力部
２３  モデル記憶部
２４  検索パターン生成部
２５  局所スコア取得部
２６  差分スコア算出部
２７  累積スコア算出部
２８  判定部
【図１】
0006461660.tif 000018
【図２】
0006461660.tif 000019
【図３】
0006461660.tif 000020
【図４】
0006461660.tif 000021
【図５】
0006461660.tif 000022
【図６】
0006461660.tif 000023
【図７】
0006461660.tif 000024