(57)【要約】      （修正有）【課題】HMMを用いたViterbi経路計算を高速化する。【解決手段】状態iから状態jへの状態遷移確率が等しいと仮定した遷移確率γと、各遷移先状態jに基づいて選択された遷移元状態iから遷移先状態jへの状態遷移確率である遷移確率β（＞γ）、が記憶されている。部分最尤状態列推定部は、ｔ番目で観測された事象xtに基づいて状態から事象xtが生じる出力確率を取得する手段、t-1番目における各状態iの尤度Liを記憶する手段、t-1番目における最大尤度maxLi、遷移確率γと、の積を第１候補として算出する手段、t-1番目における前記選択された各遷移元状態iの各尤度Liと遷移確率βとの積の最大値を第２候補として算出する手段、第１候補と第２候補の大きい方の値と出力確率との積からｔ番目における各状態ｊの尤度Ljを算出し、各状態ｊの尤度Ljから最大尤度maxLjを取得し、最尤状態jを決定する手段、を備える。【選択図】図３Ｂ
2014066949.tif 000002
【特許請求の範囲】
【請求項１】
Ｎ個の状態と、観測される事象のセットと、状態i(i=1,2,3,..N)から状態j(j=1,2,3,..N)への状態遷移確率のセットと、初期状態確率と、ある状態からある事象が生じる出力確率と、を備えた状態列からなるモデルの格納部と、
観測された事象系列を生成する部分最尤状態列を推定する部分最尤状態列推定部と、
を備えた最適経路探索装置であって、
前記モデル格納部には、少なくとも、
遷移元状態iから遷移先状態jへの状態遷移確率が全て等しいと仮定した一定の遷移確率γ（＞0）と、
各遷移先状態jに基づいて選択された１つあるいは複数の遷移元状態iから遷移先状態jへの状態遷移確率である遷移確率β（＞γ）のセットと、
が記憶されており、
前記部分最尤状態列推定部は、
ｔ番目で観測された事象xtに基づいて状態j(j=1,2,3,…N)から事象xtが生じる出力確率bj(xt)を取得する手段と、
t-1番目における各状態i(i=1,2,3,..N)の尤度Liを記憶する手段と、
t-1番目における最大尤度maxLiを選択し、当該最大尤度maxLiと、遷移確率γと、の積を第１候補として算出する手段と、
t-1番目における前記選択された各遷移元状態iの各尤度Liと、遷移確率βのセットと、の積の最大値を第２候補として算出する手段と、
前記第１候補と前記第２候補とを比較し、大きい方の値と、出力確率bj(xt)と、の積からｔ番目における各状態ｊの尤度Ljを算出する手段と、
算出された各状態ｊの尤度Ljから最大尤度maxLjを取得し、最大尤度maxLjを生成する最尤状態jを決定する手段と、
t番目における各状態jの尤度Lj及び最大尤度maxLjを記憶する手段と、
を備えている、最適経路探索装置。
【請求項２】
前記Ｎ個の状態は順次並んでおり、前記選択された遷移元状態iは、前記遷移先状態jの近傍の遷移元状態である、請求項１に記載の最適経路探索装置。
【請求項３】
前記遷移先状態jの近傍の選択された遷移元状態iには、自己遷移（j=i）の場合が含まれる、請求項２に記載の最適経路探索装置。
【請求項４】
前記モデル格納部には、さらに、
遷移先状態jの隣接する遷移元状態i=j-1から遷移先状態jへの状態遷移確率である遷移確率α（＞γ）が記憶されており、
前記部分最尤状態列推定部は、さらに、
t-1番目における前記隣接する遷移元状態iの尤度Liと、遷移確率αとの積を第３候補として算出する手段と、
前記第１候補と前記第２候補と第３候補とを比較し、最大の値と、出力確率bj(xt)と、の積からｔ番目における各状態ｊの尤度Ljを算出する手段と、
を備えている、請求項２、３いずれかに記載の最適経路探索装置。
【請求項５】
遷移確率α＞遷移確率βである、請求項２〜４いずれか１項に記載の最適経路探索装置。
【請求項６】
前記遷移確率βのセットにおいて、遷移確率βは一定である、請求項１〜５いずれか１項に記載の最適経路探索装置。
【請求項７】
Ｎ個の状態と、観測される事象のセットと、状態i(i=1,2,3,..N)から状態j(j=1,2,3,..N)への状態遷移確率のセットと、初期状態確率と、ある状態からある事象が生じる出力確率と、を備えた状態列からなるモデルを用いて、観測された事象系列を生成する部分最尤状態列を推定する最適経路探索方法であって、
遷移元状態iから遷移先状態jへの状態遷移確率が全て等しいと仮定した一定の遷移確率γ（＞0）と、
各遷移先状態jに基づいて選択された１つあるいは複数の遷移元状態iから遷移先状態jへの状態遷移確率である遷移確率β（＞γ）のセットと、
t-1番目における各状態i(i=1,2,3,..N)の尤度Liと、
が記憶されており、
ｔ番目で観測された事象xtに基づいて状態j(j=1,2,3,…N)から事象xtが生じる出力確率bj(xt)を取得するステップと、
t-1番目における最大尤度maxLiを選択し、当該最大尤度maxLiと、遷移確率γと、の積を第１候補として算出するステップと、
t-1番目における前記選択された各遷移元状態iの各尤度Liと、遷移確率βのセットと、の積の最大値を第２候補として算出するステップと、
前記第１候補と前記第２候補とを比較し、大きい方の値と、出力確率bj(xt)と、の積からｔ番目における各状態ｊの尤度Ljを算出するステップと、
算出された各状態ｊの尤度Ljから最大尤度maxLjを取得し、最大尤度maxLjを生成する最尤状態jを決定するステップと、
t番目における各状態jの尤度Lj及び最大尤度maxLjを記憶するステップと、
を備えている、最適経路探索方法。
【請求項８】
前記Ｎ個の状態は順次並んでおり、前記選択された遷移元状態iは、前記遷移先状態jの近傍の遷移元状態である、請求項７に記載の最適経路探索方法。
【請求項９】
前記遷移先状態jの近傍の選択された遷移元状態iには、自己遷移（j=i）の場合が含まれる、請求項８に記載の最適経路探索方法。
【請求項１０】
さらに、遷移先状態jの隣接する遷移元状態i=j-1から遷移先状態jへの状態遷移確率である遷移確率α（＞γ）が記憶されており、
さらに、
t-1番目における前記隣接する遷移元状態iの尤度Liと、遷移確率αとの積を第３候補として算出するステップと、
前記第１候補と前記第２候補と第３候補とを比較し、最大の値と、出力確率bj(xt)と、の積からｔ番目における各状態ｊの尤度Ljを算出するステップと、
を備えている、請求項８、９いずれかに記載の最適経路探索方法。
【請求項１１】
遷移確率α＞遷移確率βである、請求項８〜１０いずれか１項に記載の最適経路探索方法。
【請求項１２】
前記遷移確率βのセットにおいて、遷移確率βは一定である、請求項７〜１１いずれか１項に記載の最適経路探索方法。
【請求項１３】
請求項７〜１２いずれか１項に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、最適経路探索装置に係り、有限数の状態やノード、ラベル等の系列を表す各経路の尤度を、出力確率や類似確率等と、遷移確率や距離等と、の積で表せるような場合に、より少ない計算量で最適な経路を探索する装置に関するものである。本明細書では、HMM（隠れマルコフモデル）におけるViterbi(ビタビ)探索を中心として本発明の実施形態を説明するが、本発明は、Viterbiアルゴリズムに限定されるものではなく、前提となるモデルもHMMに限定されない。本発明は、ＤＰ(Dynamic Programming)マッチング全般に広く適用することができる。
【背景技術】
【０００２】
HMM（隠れマルコフモデル）におけるViterbi(ビタビ)探索においては、すべての遷移先の尤度を計算するために、計算量が状態数（楽譜追跡であれば、総音符数）の２乗に比例する問題があった。
【０００３】
例えば、自動伴奏システム（非特許文献１参照）にViterbiアルゴリズムを用いる場合、任意個所への遷移を許すと、いきなり前に戻ったり、特定の個所を繰り返し練習するような経路を探索するには計算量が多かった。
【０００４】
一般に、任意の時系列においてHMM（隠れマルコフモデル）を用いた２系列間のマッチング問題（例えば、音楽演奏における楽譜追跡問題、２つの音声同士の類似区間検出問題、画像の自己類似箇所検出圧縮問題など）において、任意個所への遷移を許すと、すべての遷移先の尤度を計算するために計算量が多くなるという課題がある。特に、実時間で部分最尤状態遷移系列を求める場合（例えば、演奏者の演奏位置の最尤解を実時間で求める場合）には、計算時間の短縮は極めて重要である。
【非特許文献１】武田晴登，西本卓也，嵯峨山茂樹, “HMMによるMIDI演奏の楽譜追跡と自動伴奏,” 情報処理学会研究報告, MUS,pp. 109-116,2006.
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、状態の系列からなる各経路の尤度を、状態の遷移の指標（遷移確率や距離）を用いて計算する場合に、より少ない計算量で最適な経路を探索することを目的とする。
本発明のより具体的な目的の１つは、HMM（隠れマルコフモデル）を用いたViterbi経路計算を高速化することにある。
【課題を解決するための手段】
【０００６】
本発明が採用した技術手段は、
Ｎ個の状態と、観測される事象のセットと、状態i(i=1,2,3,..N)から状態j(j=1,2,3,..N)への状態遷移確率（j=iを含む）のセットと、初期状態確率と、ある状態からある事象が生じる出力確率と、を備えた状態列からなるモデルの格納部と、
観測された事象系列を生成する部分最尤状態列を推定する部分最尤状態列推定部と、
を備えた最適経路探索装置であって、
前記モデル格納部には、少なくとも、
遷移元状態iから遷移先状態jへの状態遷移確率が全て等しいと仮定した一定の遷移確率γ（＞0）と、
各遷移先状態jに基づいて選択された１つあるいは複数の遷移元状態iから遷移先状態jへの状態遷移確率である遷移確率β（＞γ）のセットと、
が記憶されており、
前記部分最尤状態列推定部は、
ｔ番目で観測された事象xtに基づいて状態j(j=1,2,3,…N)から事象xtが生じる出力確率bj(xt)を取得する手段と、
t-1番目における各状態i(i=1,2,3,..N)の尤度Liを記憶する手段と、
t-1番目における最大尤度maxLiを選択し、当該最大尤度maxLiと、遷移確率γと、の積を第１候補として算出する手段と、
t-1番目における前記選択された各遷移元状態iの各尤度Liと、遷移確率βのセットと、の積の最大値を第２候補として算出する手段と、
前記第１候補と前記第２候補とを比較し、大きい方の値と、出力確率bj(xt)と、の積からｔ番目における各状態ｊの尤度Ljを算出する手段と、
算出された各状態ｊの尤度Ljから最大尤度maxLjを取得し、最大尤度maxLjを生成する最尤状態jを決定する手段と、
t番目における各状態jの尤度Lj及び最大尤度maxLjを記憶する手段と、
を備えている、最適経路探索装置、である。
tは典型的には時刻ないし時点であるが、本発明は、時系列の経路に限定されるものではない。
本発明は、１つの態様では、事象の入力に際してリアルタイムに最尤状態を推定することで経路探索を行うものであるが、リアルタイム推定に限定されるものではない。
【０００７】
１つの態様では、前記Ｎ個の状態は順次並んでおり、前記選択された遷移元状態iは、前記遷移先状態jの近傍の遷移元状態である。
【０００８】
１つの態様では、前記モデル格納部には、さらに、
遷移先状態jの隣接する遷移元状態i=j-1から遷移先状態jへの状態遷移確率である遷移確率α（＞γ）が記憶されており、
前記部分最尤状態列推定部は、さらに、
t-1番目における前記隣接する遷移元状態iの尤度Liと、遷移確率αとの積を第３候補として算出する手段と、
前記第１候補と前記第２候補と第３候補とを比較し、最大の値と、出力確率bj(xt)と、の積からｔ番目における各状態ｊの尤度Ljを算出する手段と、
を備えている。
α、β、γは、状態iから状態jへの遷移が起こる度合いを示す指標であり、このような指標と等価の指標であれば、α、β、γは距離指標等であってもよい。
【０００９】
１つの態様では、前記遷移先状態jの近傍の選択された遷移元状態iには、自己遷移（j=i）の場合が含まれる。
遷移先状態jの近傍の範囲は、当業者において適宜設定することができ、例えば、遷移元状態i、遷移先状態jとした時に、遷移元状態i＝j-2、i=j、i=j+1と設定することができる。
図２を参照して説明すると、ある状態iから状態iに遷移（自己遷移）した場合に遷移確率β１が適用され、ある状態iから状態i+2に遷移した場合に遷移確率β２が適用され、ある状態iから状態i-1に遷移（自己遷移）した場合に遷移確率β３が適用される。
【００１０】
１つの態様では、遷移確率γは、いずれの状態であるかにかかわらず適用され、また、遷移確率α、β、γが適用される状態が重複してもよい。遷移確率α、βが適用される状態が特定される場合に、遷移確率α、β、γが適用される状態を互いに重複しないように設定してもよい。
１つの態様では、前記状態遷移確率は、
2014066949.tif 000003
ｄ：近傍を表す正の数、γ＜α、β、
として記憶されている。
遷移確率γが適用される遷移元状態は、１つの態様では、全状態から近傍範囲の状態（i=j、i=j-1を含む）を除いた状態とすることができるが、遷移確率γが適用される状態を限定せずに、近傍範囲の状態については、遷移確率βやαで計算された尤度によって置き換えるようにしてもよい。
遷移確率βが適用される遷移元状態は、１つの態様では、近傍範囲の状態から隣位の状態（i=j-1）を除いた状態とすることができるが、遷移確率γが適用される状態を近傍範囲の状態（i=j-1を含む）として、状態（i=j-1）については、遷移確率αで計算された尤度によって置き換えるようにしてもよい。
【００１１】
１つの態様では、遷移確率α＞遷移確率β＞遷移確率γである。
【００１２】
１つの態様では、各状態についての遷移確率βのセットにおいて、遷移確率βは一定である。図２で言うと、Ｂ１＝β２＝β３である。
遷移確率βが一定でない場合には、遷移確率αは遷移確率βの１つとみなすことができるので、遷移確率αを設定する必要は必ずしも無い。
【００１３】
１つの態様では、前記遷移確率αは、状態にかかわらず各状態について一定である。
この場合、α、β、γを１、β/α、γ/αに置き変えても最大探索の結果は変わらないから、最大尤度を、γ/α、β/α、１で計算することができ、最後のαに関する掛け算が不要となり、計算量を削減することができる。
また、最大尤度の探索において、α、β、γの遷移確率の合計は１である必要はない。
なお、各状態について、遷移確率αを異ならしめてもよい（α１、α２、α３、…）。
【００１４】
尤度の計算は対数尤度を用いて対数領域で行うことができることが当業者に理解され、その場合に必要な演算は加算と比較演算だけである。
【００１５】
本発明のハードウェア構成は、コンピュータ（入力部、出力部、演算部、記憶部等を備える）から構成することができる。観測される事象は入力部に入力され、記憶部に記憶されたモデルパラメータを用いて所定の確率が計算されると共に、入力された事象、計算結果は記憶部に記憶される。各種計算は演算部によって実行され、計算結果（最尤状態）は出力部から出力される。
本発明はコンピュータを用いて実行される方法の発明、及び、コンピュータを実行させるプログラムとしても規定することができる。
【発明の効果】
【００１６】
本発明は、HMM（隠れマルコフモデル）を用いたViterbi経路計算を高速化することができる。すべての遷移先の尤度を計算するために計算量が状態数の２乗に比例する問題を、１乗のオーダーで計算する手法を提供する。例えば、本発明を用いて演奏位置を実時間で特定することで、任意個所への遷移を許す自動伴奏システムを構築することができる。
【００１７】
以上は音楽の自動伴奏の場合であるが、本発明は、類似箇所を検出して情報圧縮に用いるような音声や音楽の情報圧縮法や、HMMを用いた楽譜追跡手法に至るまで極めて広く適用することができ、系列データの部分的なマッチングにおいて大きな効果が得られ、例えば、音声や音楽や画像や文書などにおいて、部分的な自己類似性を検出し、それによって情報圧縮するなどの応用が可能である。
【図面の簡単な説明】
【００１８】
【図１】演奏生成のHMMの状態遷移トポロジーを示す。i番目の状態は演奏譜のi番目の和音に対応している。
【図２】本実施形態に係る状態遷移確率を説明する概略図である。
【図３Ａ】本実施形態に係る尤度算出を説明する図である。
【図３Ｂ】本実施形態の構成を示す概略図である。
【図４】HMMの最尤状態更新に必要な処理時間の測定結果を示す図である。四角点は通常のViterbiアルゴリズムを用いた場合の結果であり、丸点は本発明に係る手法を用いた場合の結果を示している。誤差棒は1σの誤差を表している。
【図５】音楽構造を利用した符号化の概念図。繰り返しを含む楽曲(上) の構造を用い、類似箇所の2 回目以降は1 回目のコピーに基づき差分のみを符号化する。
【図６】フレーム間での対数振幅スペクトルの生成確率、ポップス（RWC-MDB-P-2001 No.1）を示す図である。
【図７】動的計画法により求まった最適経路を示す。
【発明を実施するための形態】
【００１９】
本発明の実施形態について、本発明に至る契機となった音楽の自動伴奏の場合に関連して説明する。音楽演奏入力（多くはMIDI信号）系列に対して、楽譜を隠れ状態とするHMM（隠れマルコフモデル）におけるViterbiアルゴリズムによって現在の演奏個所を尤度最大の原理で推定することができ、それによって任意の場所への遷移を許す技術が既に提案されている（非特許文献１）。
【００２０】
この場合の問題は、現在時刻tまでの演奏入力系列から、状態jへ遷移したと考える尤度は、１音符前の時点t-1での遷移元の状態iにおける尤度Liに状態iから状態jへ遷移する確率aijを掛けたものであり、すべての状態i=1,2,…,N(Nは楽譜中の総音符数)について計算し、その中の最大値を取ることが必要である。
【００２１】
その値に、さらに状態jから、時刻tの観測(MIDIイベント) xtが生じる確率bj(xt)を掛ける。すなわち、Lj=bj(xt)maxLiaijである。以上の計算を、すべての状態j=1,2,...,Nについて行い、その結果が最大になる状態jが遷移先であると推定するものである。
【００２２】
図３Ａを参照しつつ説明すると、時刻t-1の各状態i(i=1,2,…,N)の各尤度Li1,  Li2,  Li3,  Li4,  Li5,  Li6,…LiNが記憶部に記憶されている。時刻t-1の遷移元状態iから時刻tの遷移先状態jへの遷移を考える場合、各遷移先状態jにおける尤度Lj(t)は、どの遷移元状態iから遷移してきたと考えることが尤もらしいかの度合の指標値を計算し（各遷移元状態iと遷移確率aijの積で計算されれた各値の最大値を取る）、この値に、さらに、状態jから事象xtが出力される出力確率bj(xt)を掛ければよく、各状態jの尤度Lj(t)は、Lj(t)=max{Li(t-1)aij}bj(xt)、で表される。尤度Lj(t)が最大となる状態jを遷移先状態と推定する。
【００２３】
通常は順当な前進、つまり、遷移先状態j=遷移元状態i+1が最大になることが多い。しかし、ここで、状態iから状態jへの状態遷移確率がすべて等しくγであるとすると、上記の状態iに関する最大探索は、直前の時刻t-1におけるすべてのLiの中の最大maxLiを選択し、選択した尤度に遷移確率γを掛ければよいことになる。しかも、時刻t-1におけるmaxLiは、自動伴奏であれば楽譜追跡の目的ですでに求められているので、新たな計算は不要であり、計算量を削減することができる。
【００２４】
以上は、ジャンプの確率が状態i,jによらず一定γであることを仮定した場合であった。しかし、現在場所の近傍からの遷移は確率が高いことを反映したい。そこで、状態jの近傍の状態i∈Cjからの遷移確率が均一でβであり、β>γであるとする。そうすると、上記のγに関する計算をした後に、Cjの範囲での状態の尤度の最大値を求めてそれにβを掛け、すでにγに関して計算してある尤度より大きい値であれば上書きすればよい。
【００２５】
さらに、遷移先状態jに隣接する状態j-1からの遷移確率がすべての状態遷移確率の中で最も高く、αであるとすると、時刻t-1における第j-1状態の尤度にαを掛けたものを上記の尤度とさらに比較して、その方が尤度が高ければ上書きすればよい。以上の計算におけるα、β、γを１、β/α、γ/αに置き変えても最大探索の結果は変わらないから、最大探索において、最後のαに関する掛け算は不要である。
【００２６】
上述のように、本実施形態では、遷移確率として、
遷移元状態iから遷移先状態jへの状態遷移確率が全て等しいと仮定した一定の遷移確率γ（＞0）と、
遷移先状態jの近傍の選択された各遷移元状態iから遷移先状態jへの状態遷移確率である遷移確率βと、
遷移先状態jの隣接する遷移元状態i=j-1から遷移先状態jへの状態遷移確率である遷移確率α（＞β＞γ）、
を格納しておく。
【００２７】
遷移確率γを用いて計算した指標値、遷移確率βを用いて計算した指標値、遷移確率αを用いて計算した指標値の中の最大値を得たいので、遷移確率γを用いた最大値は、時刻t-1における最大尤度maxLi(t-1)とγを用いて第１候補値を算出すればよい。最大尤度maxLi(t-1)は、時刻tで既に計算されて格納されている。第１候補値は、全ての状態jで共通である。
【００２８】
遷移確率βを用いた最大値は、βが一定の場合には、状態jの近傍の状態i（i∈Cj）、図３Ｂの例では、時刻t-1における状態i=j-2、i=j、i=j+1、の尤度（例えば、時刻tにおける状態j4について、状態j4の近傍の状態i2、i4、i5の尤度Li2、Li4、Li5）中の最大値を選択し、選択した最大値とβを用いて第２候補値を算出すればよい。βが近傍の状態毎に異なる場合、図３Ｂの例で、各βの値が異なる場合（β24、β44、β54）には、Li2×β24、Li4×β44、Li5×β54、を計算して、最大値を第２候補値とすればよい。第２候補値は、各状態jについて算出される。
【００２９】
遷移確率αを用いた値は、状態i（i=j-1）、図３Ｂの例では、時刻t-1における状態j4について、尤度Li3とαを用いて第３候補値を算出すればよい。第３候補値は、各状態jについて算出される。
【００３０】
各状態jにおいて、第１候補値、第２候補値、第３候補値を比較して、最大の値を選択し、各状態jについてのbj(xt)を掛けて各状態jの尤度を算出する。すなわち、
max{Li(t-1)aij}=max｛αLi=j-1(t-1)，βLi∈Cj (t-1)，γmaxLi(t-1)｝
として、各状態jについて最大の値を選択し、
各選択した値に各bj(xt)を掛けて、時刻tにおける各状態jの尤度Lj1、Lj2、Lj3、Lj4、Lj5、Lj6、…LjNを計算し、得られた各Lj(t)の最大値となる状態jを時刻tにおける最尤状態と推定する。計算された尤度Lj1,、Lj2、Lj3、Lj4、Lj5、Lj6、…LjNは記憶部に記憶される。例えば、記憶部に記憶されている時刻t-1の各尤度Li1、Li2、Li3、Li4、Li5、Li6、…LiNを書き換える。
尤度Lj1、Lj2、Lj3、Lj4、Lj5、Lj6、…LjNはt+1の尤度計算に用いられ、maxLj(t)はt+1の尤度計算におけるγを用いた第１候補値の計算に用いられる。
出力確率bj(xt)は、遷移元状態iに依存しないことを前提に説明したが、出力確率bj(xt)が、遷移元状態iに依存する場合には、上記第１候補値、第２候補値、第３候補値に、それぞれ対応する各出力確率bj(xt)を掛けた第１尤度候補値、第２尤度候補値、第３尤度候補値を比較すればよいことが当業者に理解される。
【００３１】
本発明に係る実施形態を、弾き誤り・弾き直し・弾き飛ばしを含む演奏に追従する自動伴奏システムに用いる楽譜位置推定に基づいて詳細に説明する。人間の演奏に対して、楽譜に基づき、自動的に同期して伴奏することは自動伴奏と呼ばれる。練習時においては、弾き誤りや弾き直し、弾き飛ばしを含む演奏が起こりうるが、従来の自動伴奏の多くはそのような演奏に対して追従が困難である。本実施形態では、このような演奏に対しても追従可能な自動伴奏に用い得る最尤状態推定の高速アルゴリズムについて論じる。
【００３２】
本実施形態では、隠れマルコフモデルを用いて演奏の生成過程をモデル化し、その確率的逆問題を解く形で、楽譜追跡アルゴリズムを設計する。そして、この際に起こる処理時間増大の問題を解決するために、最尤状態推定の高速アルゴリズムを提案する。自動伴奏には入力信号として、音響信号を用いるものとMIDI信号を用いるものがあるが、本実施形態では、多声MIDI演奏を入力とする自動伴奏を議論する。
【００３３】
［Ａ］自動伴奏問題の定式化
［Ａ−１］演奏の楽譜位置推定問題
自動伴奏を実現するためには、奏者による演奏が楽譜上のどこの位置にいるのかを推定する必要がある。通常の楽譜では、各音符の楽譜上での位置は音符間の相対的な長さを元に指定されている。この方法による楽譜上の位置のことを、本明細書では楽譜時刻（単位は、例えば、四分音符）と呼ぶことにする。また、楽譜時刻を表す変数としてτを用いる。これに対して、通常の時刻のことを実時刻（または単に、時刻）と呼び、変数としてtを用いることとする。実際の演奏では、楽譜時間と実時間が局所的に一定の比率を持って実現されるが、この比率r=δτ/δtのことをテンポと呼ぶ。また、各音符の発音開始点(onset time)を発音時刻や発音楽譜時刻（または、単に発音点）と呼ぶ。
【００３４】
演奏される楽譜（以下、演奏譜）は、発音楽譜時刻を与えられた音符の列であるので
2014066949.tif 000004
と表される。ここで、Iは演奏譜上の「音符」の個数、iはその添え字である。τiはi番目の「音符」の発音楽譜時刻、ciは「音符」の音価や音高、強弱などの各情報を表しているものとする。単旋律の楽譜の場合、ciは単音を表すが、多声音楽の楽譜の場合、ciは同楽譜時刻に発音される音全部の情報を表している。以下、ciを和音と呼ぶこととする（ここでの「和音」は、一般的な意味で用いる和音とは異なることに注意されたい。単旋律の場合、ここでの和音は一音からなるものである。また、複数の旋律音が同時に鳴る場合もここでは和音と呼ぶことにする。）。
【００３５】
奏者による演奏は、演奏イベントの時系列
2014066949.tif 000005
で表される。ここで、mは各演奏イベントを表す添え字であり、tmは演奏イベントの到達時刻、smは演奏イベントの種類を表す。これを、演奏イベント列と呼ぶことにする。本実施形態では、MIDIイベントを演奏イベントとして用いるため、smはMIDIメッセージを表している。また、演奏イベント列およびその長さMはオンラインで演奏イベントが到達する度に更新していくものとする。
【００３６】
演奏譜Xと、演奏開始から現在までの演奏イベント列Sが与えられた時の、現在の演奏位置の推定問題は、XとSに対して、現在の楽譜位置iMを推定するという問題として定義される。ここで、iMはM番目の演奏イベントに対応する楽譜上の「音符」の番号を表している。その楽譜時刻は、τiMである。順次更新されていく、推定楽譜位置の時系列
2014066949.tif 000006
を本明細書では、楽譜位置情報列と呼ぶことにする。
【００３７】
［Ａ−２］テンポ推定問題
自動伴奏を可能にするためには、一般的に演奏の楽譜位置だけでなく、演奏のテンポを同時に推定する必要がある。これは、伴奏の音符が演奏の音符よりも細かく、演奏の発音点間に複数の伴奏音符が存在する場合には、これらの音符の再生には発音時刻間で自動的に楽譜時刻を進める必要があるためである。また、伴奏の音源に何らかの原因により発音の遅延が起きてしまう場合には、あらかじめ伴奏の発音時刻を予想しておく必要があるが、この場合にもテンポ情報が必要となる。
【００３８】
実際には、テンポ情報が必要かどうかは、自動伴奏をする楽曲やその箇所、またシステムの使用状況に依存する。しかし、なるべく一般性を失わずに議論するため、ここでは常にテンポ情報の推定を行うことを考え、以下では、楽譜位置とテンポの両方を推定することを楽譜追跡(score following)と呼ぶこととする。よって、楽譜追跡問題とは、現在までの演奏イベント列Sに対して、(tM,，iM，
rM)を推定する問題として定義される。推定結果の時系列
2014066949.tif 000007
のことを本明細書では、演奏情報列と呼ぶことにする。ここで定式化した楽譜追跡は、自動伴奏を実現するために最小限の情報を与えるためのものと言ってよい。実際には、強弱やアーティキュレーション、その他の様々な演奏情報を伴奏再生に反映することが考えられ、状況に応じてこれらの演奏情報の抽出・推定を行う必要がある。尚、本実施形態は、最尤状態推定の高速アルゴリズムに係るものであり、テンポ推定問題の詳細な説明は省略する。
【００３９】
［Ａ−３］伴奏再生問題
演奏譜と同様に、伴奏の楽譜（以下、伴奏譜）は
2014066949.tif 000008
と書かれる。ここで、Jは伴奏譜上の「音符」の個数である。伴奏の再生（演奏）に最小限必要な情報は、各時刻での伴奏再生位置を示す楽譜時刻と伴奏再生のテンポである。よって伴奏再生は。随時、伴奏再生情報(τl, rl) を与えることにより行われる。時系列
2014066949.tif 000009
を、伴奏再生情報列と呼ぶことにする。ここで、Lは系列長であり、tlはl番目の情報を与えた時刻を表している。伴奏再生問題は、楽譜追跡の結果得られた演奏情報列Rから、伴奏再生情報を順次与える問題として定義される。尚、本実施形態は、最尤状態推定の高速アルゴリズムに係るものであり、伴奏再生問題の詳細な説明は省略する。
【００４０】
［Ｂ］演奏生成の確率モデル
［Ｂ−１］演奏における不確定要素
楽譜追跡が難しい問題であるのは、同じ楽譜に基づく演奏でも毎回様々な差異があるからである。これは演奏の不確定性と呼ばれる。演奏の不確定性は意図されるものとされないものがあるが、代表的なものとしては、a)発音時刻の微妙な変動、b)テンポ、c)強弱やアーティキュレーション、d)装飾音などにおける、音数や音高、e)演奏誤り、f)弾き直しや弾き飛ばし、が例示される。これらの、楽譜からは一意に予測できない演奏の不確定性は、奏者の意図や即興性によるものとそうでないものを分別することは困難であるが、自動伴奏ではそれらを伴奏演奏に反映することが望ましい。それを可能とするためには、これらの不確定的要素を含む演奏に対して、頑健に楽譜追跡を行いながら、必要な演奏要素の情報を抽出・推定することが要求される。
【００４１】
［Ｂ−２］演奏生成の確率モデルと楽譜追跡
前節で述べた、不確定的要素を含んだ演奏は確率的に生じると解釈できる。このように、演奏の生成過程を確率モデルとして記述できれば、楽譜追跡の問題は与えられた観測に対する確率的逆問題として捉えることができる。この方法は、人間による楽譜追跡の方法を模倣していると考えられる。本実施形態では、この理念に立脚して楽譜追跡を議論する。確率モデルに基づいた楽譜追跡の利点として、モデルに含まれる各パラメータに物理的意味を与えることが容易である点がある。さらに、確率モデルに基づいたアルゴリズムでは、各パラメータの値を機械学習によって最適な値に調整可能であるという点が長所である。
【００４２】
［Ｂ−３］HMMによる演奏生成のモデル化
以下、演奏譜Xが与えられた時の、演奏イベント列
2014066949.tif 000010
の生成を確率モデルとして記述する。
【００４３】
MIDIによる演奏イベントでは、各音符の音高と強弱の情報のほかに発音開始時刻と発音終了時刻の情報が得られる。このうち、発音終了時刻の情報は実際に鍵盤などを離した時刻を表すものであるが、実際の演奏では、奏者の技術的制約やアーティキュレーションによって発音終了時刻は不確定の度合いが大きい。また、ピアノ演奏では、ペダルの効果によりこの発音終了時刻と実際の音の消音時刻は一致するとは限らない。また強弱についても、不確定の度合いが大きい上、通常の楽曲での演奏位置推定においては重要度は低いと考えられる。そこで、以下ではMIDIイベントのうち発音開始イベントの音高情報のみを用いた楽譜追跡を議論する。よって以下では、演奏イベント(tm, sm)はMIDIの発音開始イベントを表し、tmは発音時刻、smは音高を表すものとする。
【００４４】
人間による演奏の過程は、まず演奏行為の準備として楽譜上の演奏位置や強弱などが意図され、その次にその意図に基づいて演奏行為が実行される、と2段階に分けて行われると考えられる。この過程は、隠れ状態を持った確率モデルとして記述される。時刻tMにおいて、楽譜位置imにある和音cimの演奏が意図される確率をp(im; tm)、cimを弾く際にsmが発音される確率をp(sm|im)とすると、音高smが発音される確率p(sm; tm) は
2014066949.tif 000011
と表される。
【００４５】
現在時刻tMにおいて演奏譜中の和音ciMが演奏される確率は過去の演奏に依存していると考えられる。過去の演奏に対する依存関係がマルコフ的であると仮定すると、
2014066949.tif 000012
となる。状態遷移確率p(iM; tM|iM−1; tM−1)は、2音間の発音時刻間隔(Inter−Onset Interval, IOI)、δtM−1=tM−tM−1に依存していると考えられる。しかし、特に練習などにおける演奏においてはIOIは必ずしも楽譜から予測されるものとはならず、奏者によっても変動も大きいと考えられる。このような多様な演奏が生成されるようなモデルでは、状態遷移確率のIOI依存性は低くなると考えられる。以下、IOI依存性を取り除き（ただし、和音の発音を記述する自己遷移においては、IOI依存性が特に重要であるので考慮する。）、
2014066949.tif 000013
と記す。
【００４６】
以上より、演奏譜Xが与えられた時の演奏イベント列Sの生成確率は、演奏位置情報列
2014066949.tif 000014
を用いて、
2014066949.tif 000015
と表される。ここで、bim(sm)=p(sm|im)と記した。ただし、ai0,i1≡p(i1)は初期状態確率である。式(4)は、演奏イベント生成が、状態遷移確率aim−1,imと、出力確率bim(sm)、を持つ隠れマルコフモデル(Hidden  Markov  Model, HMM)で記述されることを表している。このモデルを、演奏HMMと呼ぶことにする。以下では、和音間の状態遷移確率aim−1,imと和音構成音の出力確率bim(sm)について詳しく述べる。
【００４７】
［Ｂ−４］演奏HMMにおける和音の記述
和音は楽譜上では同時に発音される音の集まりであるが、実際の演奏においては和音構成音の発音時刻は厳密にはずれており、異なる時刻に順序不定で発音される。この状況を踏まえ、和音構成音は一つのHMM状態から自己遷移によって出力されるとモデル化を行う。人間による鍵盤楽器演奏では奏者の技術的制約や楽器の物理的制約により制御可能な時間間隔には最小値が存在すると考えられる。以下、この最小値を一つのパラメータで表現し、Δtlimitと記すことにする。和音の演奏においては、同時発音されるべき複数の音は、各音間のIOIはΔtlimit程度以下の大きさを持っていると考えられる。鍵盤楽器演奏における一つの和音に属する構成音のIOIは、経験的に約30msec以下であることが知られている。この時間間隔（テンポ120(四分音符/分)の時、これは64分音符の長さにほぼ等しい。）は通常の曲における和音間のIOIに比べて非常に小さい値である。そこで、閾値Δtlimitを設けて、IOIがΔtlimit以内のHMM状態遷移は、和音構成音の出力に対応する自己遷移のみであると近似する。以下では、Δtlimit=35msecとする。よって、tm−tm−1 <Δtlimitの時、
2014066949.tif 000016
となる。ただし、δi,i′はKroneckerのデルタである。
【００４８】
音高smが和音cimの構成音である場合には、出力確率bim(sm)は正の値を持っていると考えられるが、弾き間違えが起こることを考慮すると、構成音以外のsmに対しても0でない確率を与える必要がある。具体的な出力確率の値は、演奏データから統計的な学習により設定することが可能である。また、演奏データが与えられない場合には値を経験的に設定することもできる。ここでは後者の手段をとり、和音構成音のほか、構成音から半音あるいは全音だけずれた音高に対しても小さな出力確率を与えることにより、ミスタッチを含む演奏のモデル化を行う。
【００４９】
［Ｂ−５］演奏HMMにおける状態遷移確率
状態遷移確率
2014066949.tif 000017
は和音の演奏順序を確率的に表している。誤りのない演奏の際には
2014066949.tif 000018
である。しかし、これ以外の遷移を考えることにより弾き間違いや即興性を含んだ演奏のモデル化が可能である。また、遠く離れた和音間の状態遷移確率に対しても0でない値を与えることにより、弾き直しや大きな弾き飛ばしを含む演奏をモデル化できる。
【００５０】
具体的には、弾き間違えによる一つの和音の脱落の確率はaim−1,imにおいてim=im−1+2の値で表される。また、ミスタッチによる音の挿入誤りの確率はim=im−1の場合の値により与えられる。さらに、im<im−1の場合の値は弾き直しの確率であり、im=im−1+dでd≫1の場合は大きな弾き飛ばしの確率を表している。aim−1,imの具体的な値は、演奏データから学習したり、経験に基づいて当業者によって適宜設定することができる。演奏HMMの状態遷移トポロジーを図1に示す。
【００５１】
［Ｃ］演奏の楽譜位置推定
［Ｃ−１］Viterbi アルゴリズムによる楽譜位置推定
演奏の楽譜位置推定問題は、前節で述べた演奏イベント列の生成モデルの逆問題として扱うことができる。演奏譜
2014066949.tif 000019
に基づく演奏イベント列
2014066949.tif 000020
が与えられたとき、演奏位置情報列
2014066949.tif 000021
は、Bayesの定理により
2014066949.tif 000022
を求めることにより、最尤推定される。楽譜追跡においては、演奏情報列を順次リアルタイムで最尤推定する必要がある。これは最新のM番目の演奏イベントsMが観測された際に、演奏情報列の最尤推定を更新し、演奏位置iMを得ることにより行われる。
【００５２】
HMMの最尤推定は（前方）Viterbiアルゴリズムを用いて行うことができる。時刻tM−1における各状態iM−1での最尤値を
2014066949.tif 000023
とすると、
2014066949.tif 000024
と帰納的に求めていくことができる。この最尤値の更新には演奏譜に含まれる和音の数Iに対してO(I2)回の確率計算を行う必要があることが分かる。これは演奏に用いる楽曲の長さが大きくなるにつれて最尤推定に要する計算量が大幅に増加することを意味している。特に練習時における自動伴奏では、伴奏再生を演奏イベントに瞬時に合わせて行うことが有効であると考えられるが、この際には特に演奏位置推定を高速に行う必要があり、最尤推定の計算コストを抑えることが重大である。
【００５３】
［Ｃ−２］高速Viterbi探索アルゴリズム
弾き直しや弾き飛ばしを含まない演奏に対しては、遠く離れた状態間の遷移確率は0としてよいので、計算コストを抑えることができる。しかし、本実施形態では弾き直しや弾き飛ばしを含む演奏にも追従可能な楽譜追跡を議論しているため、こうしたことは採用しない。
【００５４】
HMMの状態間の遷移は、楽譜上の正常な進行に対応する一つ先への遷移（ここではα遷移と呼ぶ）が大部分を占めると仮定できる。その確率αは１に近い。ついで、音の抜けや一音の弾き直しなどに対応する近傍への遷移（ここではβ遷移と呼ぶ）の確率が高い。反復練習や部分スキップなどに対応する近傍以外の離れた状態への遷移（ここではγ遷移と呼ぶ）は、実際はフレーズの先頭などにジャンプすることが多いが、参照している楽譜データにフレーズ先頭などの情報が付与されていない場合は、どの状態への遷移確率も同等と仮定する。一般にその遷移確率γは、近傍の状態間の遷移確率に比べて小さいと仮定できる。α、β、γの値は、統計的、経験的、あるいは学習等によって設定することができる。例えば、α＝0.7、β＝0.1、γ＝0.0001である。
【００５５】
全ての遷移先状態iMに関して、もしγが不均一であれば、すべての遷移元iM−1の尤度に状態遷移確率aiM−1,iMを掛けた中の最大値を取ることが必要なのに対し、γが均一であれば、全ての遷移元の最大尤度の状態からの遷移のみ考えればよく、その後にα遷移およびβ遷移を考えればよい。iMの中から尤度最大の状態を選べば、それが楽譜上の現在位置に対応する。そして、その尤度最大値は次のγ
遷移の計算に用いられる。
【００５６】
以上のような仮定のもとに、以下のような効率的なViterbi探索アルゴリズムを導くことができる。上の議論により、状態遷移確率ai,i′は
2014066949.tif 000025
と表される。ここで、dは近傍を表す正の数であり、γ<α,βである。
【００５７】
このとき、M−1番目からM番目への最尤値の更新式
2014066949.tif 000026
の右辺は
2014066949.tif 000027
となる。ここで、imaxM-1はM−1番目の最尤状態を表す。
【００５８】
式(11)を用いると、最尤状態更新はO(I)回の確率計算で行えることが分かる。楽譜追跡の場合、HMMの状態数Iは演奏譜の和音の個数である。これは、曲により異なるが多くのピアノ曲でおよそ50から10000である。例えば、ChopinのPrelude Op. 28-7 A-durではI=48であり、Rachmaninoffのピアノ協奏曲第三番d-mollの第一楽章のソロピアノパートの場合は、Iは約5000である。よって楽譜追跡に必要な処理時間は、大幅に軽減されることが期待される。
【００５９】
［Ｃ−３］高速Viterbi探索法の有効性検証
本実施形態に係る高速Viterbi探索法の有効性を示すために、楽譜追跡の処理時間を測定した。測定実験ではRachmaninoffのピアノ協奏曲第三番第一楽章のソロピアノパート全体を繰り返して2倍の長さにしたものを用意し、この中から必要な長さの部分を切り取って演奏譜とした。演奏譜の長さとしては100から10000まで7種類を用いた。この演奏譜に対して、最尤状態更新にかかった処理時間を測定した。この処理時間には演奏イベント列の詳細は無関係であるので、測定には、ランダムな音高列（音符数163）を用い、各更新にかかった処理時間の平均を求めた。また、比較のため、通常のViterbiアルゴリズムを用いた場合の処理時間も測定した。なお、測定に用いた計算機の動作環境は、CPUIntel(R) Core(TM) i5-2540M, RAM 8GB, OS はWindows7 Professional 64bitである。また、処理時間測定には標準Cライブラリtime.h内で定義されているclock 関数を用いた。
【００６０】
図４に実験結果を示す。図中、丸点は通常のViterbiアルゴリズムを用いた場合の結果であり、四角点は本手法を用いた場合の結果を表している。測定誤差は、データの標準偏差のほか、系統誤差としてシステムの時間分解能10msecを含んでいる。実験結果より、通常のViterbiアルゴリズムを用いた場合に比べ、本手法を用いた場合では状態数の多さに対する処理時間の増加が抑えられることが確かめられた。特に演奏譜の長さが1000以上になると、通常のViterbiアルゴリズムを用いた場合は処理時間が急激に増加する一方、本手法を用いた場合には、楽譜追跡で要求される時間分解能である、数10 msecに留まることが分かった。
【００６１】
［Ｃ−４］楽譜位置推定の評価
提案する楽譜位置推定手法の有効性を確かめるために、上記アルゴリズムを実装して評価実験を行った。評価には、複数の楽曲に対する人間の演奏をMIDI録音したものを用いた。使用した楽曲は、Mussorgskyの組曲「展覧会の絵」より第一曲Promenade，Mozartの2台のピアノのためのソナタから第一楽章提示部（第一ピアノパート）、Debussyの前奏曲「亜麻色の髪の乙女」である。Mussorgskyの楽曲は多くの大きな和音を含む例である。Mozartの楽曲は標準的な鍵盤音楽書法によるアレグロ楽章であり、和音書法と旋律書法を共に含むものである。Debussyの楽曲は、ロマン派ピアノ音楽の標準的な書法によるものである。演奏はアマチュアのピアノ経験者によるものを用いた。録音された演奏は、適度に弾き間違いを含むものであった。また、弾き直し・弾き飛ばしを含むものと含まないもの両方を複数回録音して準備した。
【００６２】
表1に演奏位置推定の結果を示す。
2014066949.tif 000028
表中、楽曲欄には各楽曲の作曲者の名前を記した。音符数は録音された演奏に含まれる音符の数であり、カッコ内の左の値は弾き直し・弾き飛ばし（以下、「飛び」と略記）がないもの、右の値は飛びのあるものについての値を示している。正解率は、演奏データに対して人手で楽譜位置の正解をラベル付けした結果に対するものであり、飛びのない演奏とある演奏に対するものをそれぞれ、「正解率(飛無)」と「正解率(飛有)」と記してある。実験結果により、高い精度で楽譜位置推定が行われたことが分かる。飛びがある演奏の場合には、飛んだ先の楽譜位置を推定するために数音符必要であることが多く、そのため正解率は飛びがない場合に比べて下がっている。多くの場合には、飛んだ時点から数音符以内に飛んだ先を正しく認識できた。また、飛んだ先が和音である場合には１和音で正しく位置推定ができた場合も多かった。このことにより、提案手法による楽譜位置推定が弾き直し・弾き飛ばしを含む演奏に対しても追従可能であることが確認された。しかし、飛んだ先と同じ音符の並んでいる箇所が楽曲内に複数ある場合には、飛んだ先の位置推定を誤ることがあった。Debussyの楽曲において飛びがある場合で正解率が大きく減少しているのはこの原因によるものである。また、Mozartの楽曲は全体的に正解率が低くなっているが、この原因の一つに楽曲内にトリルやアルペジオなどの装飾音が存在することが挙げられる。また、右手左手同時に早い音形を演奏する場合には同期がうまくとれていない箇所もあり、こうした箇所においても楽譜位置推定が難しいことがあった。
【００６３】
［動的計画法に基づく音楽構造解析］
本発明は、本発明は、類似箇所を検出して情報圧縮に用いるような音声や音楽の情報圧縮法に適用することもできる。より具体的な１つの態様では、音楽信号の特徴量ベクトル（例えば、振幅スペクトル）の生成確率と、音楽進行をモデル化した遷移確率、を用いた状態遷移モデルを仮定し、動的計画法を用いて楽曲中の類似箇所とそれらの間の対応関係を求める（藏  悠子, 小野 順貴, 鎌本 優, 嵯峨山 茂樹: 動的計画法に基づく音楽構造解析とその音楽信号符号化への応用, 日本音響学会春季研究発表会講演集, pp.1049-1050, Mar. 13-15 (2012)）。図５に、音楽構造を利用した符号化の概念図を示す。繰り返しを含む楽曲(上) の構造を用い、類似箇所の2 回目以降は1 回目のコピーに基づき差分のみを符号化する。
【００６４】
音楽が状態遷移を繰り返しながら進行することを仮定すると、1フレーム毎に1状態をとると考えられ、各状態は１フレーム毎の特徴量ベクトルで表すことができる。一般に、特徴ベクトルxiとxjが近いほど、i番目とj番目のフレームが繰り返し構造として対応する確率は高いと考えられる（図６参照）。この確率は、例えば、多次元正規分布を用いて、
2014066949.tif 000029
とモデル化することができる。フレーム間の生成確率（類似確率）により、複数の類似箇所を検出可能であり、類似している箇所を結ぶ経路を求める問題となる。最も確率が高くなる経路を選ぶ問題は、最適経路探索問題となる。各経路の尤度は類似確率と遷移確率の積で表される。
【００６５】
i行j列の値に対してノード(i ,j)を定義する行列ができる。音楽は状態遷移を繰り返して進行すると仮定しているので、縦軸が楽曲のテンプレート、横軸が楽曲の進行を表すとする。ノード(i, j)に到達するまでに1, 2, … j-2, j-1列目において最尤値を次々選択していると考えられる。すなわち、l列における最尤値をPlikelihoodlとすると、
2014066949.tif 000030
となる。ここで、j列においてmj行で最尤値をとるとし、j+1列に遷移する際の確率をpjとする。最尤値候補は各列における全ての値と遷移確率の値のそれぞれの積により表現される。対数尤度を取ると、
2014066949.tif 000031
と表すことができる。
【００６６】
ここで、経路に音楽進行中での起こりやすさを反映した確率を導入する。状態遷移によりモデル化した楽曲の進行において、以下の３つの進行を考える。iが楽曲のテンプレート、jが楽曲の進行に対応する。
【００６７】
(１) ノード(i−1, j−1)から確率pconstでノード(i, j)に進行する（図６での斜め45度の線分）。
ノード(i, j)での尤度logPconst(i, j)は、ノード(i−1, j−1)での尤度と、遷移確率pconstと、から算出され、logPconst(i, j)を第１候補とする。
2014066949.tif 000032
確率pconstは遷移確率αに対応する。
【００６８】
(2) ノード(ideviate,  j−1)から確率pdeviateでノード(i, j)に進行する（図６での斜め45度の線分から少しずれる経路）。
ノード(i, j)での尤度logPdeviate (i, j)は、ノード(ideviate, j −1)の尤度の最大値と、遷移確率pdeviateと、から算出され、logPdeviate (i, j)を第２候補とする。
2014066949.tif 000033
１つの態様では、ノード(ideviate, j−1)は、ideviate=i−2, i−1, iであり、ノード(i−2, j−1)、ノード(i−1, j−1)、ノード(i, j−1)、である。
確率pdeviateは遷移確率βに対応する。
【００６９】
(3) 全フレーム数Nにおいて、ijump =1, 2, …N−1, Nであるとしてノード(ijump,
j−1)から確率pjumpでノード(i, j)に進行する。
ノード(i, j)での尤度logPjump (i, j)は、ノード(ijump, j−1)の尤度の最大値（進行j-1での最大尤度値）と、遷移確率pjumpと、から算出され、logPjump (i, j)を第３候補とする。
2014066949.tif 000034
確率pjumpは遷移確率γに対応する。j-1列のどのノードiから遷移したかにかかわらず、確率pjumpを適用する。
【００７０】
(4) 上記３つの候補のうち、最大値
2014066949.tif 000035
を採用し、類似確率を用いてj列の各ノードiの尤度を算出し、最大尤度値を取得する。
【００７１】
全フレーム数Nの曲中でテンポが一時的に揺らぐことを考慮した適切な値としてndeviateを与えて、pdeviate=ndeviate／Nと定義できる。
状態のジャンプがnjump回起こるのであれば、pjump=njump／Nのように定義できる。
しかし、実際にはndeviate、njumpは未知であるので、適当な値を予め設定する。例えば、pdeviate=500／3000、pjump=5／3000、のように設定する。
pconstは、pconst=1−pdeviate−pjumpで設定することができる。
【００７２】
図７は、参照フレームを曲の1番が終わる1222フレーム目で制限した最適経路である。ラベルと照らし合わせると、新しく現れた部分である間奏部分以外は、繰り返し構造の対応関係が検出されていることが確認できる。
【産業上の利用可能性】
【００７３】
本発明は、音声・音楽・画像などにおいて類似区間を検出したり、自由にジャンプできる自動伴奏ピアノなどを計算量の少ない方法で実現するものであり、ハードウェアのコストを下げることに貢献するとともに、長いデータでも扱える技術を提供する。また、自動伴奏以外の楽譜追跡、あるいは音楽以外に、時系列的な現象が時々ジャンプ(戻り、繰り返し、スキップなど)するような場合に追随する汎用のアルゴリズムを提供するものであり、価値は高い。
【図１】
2014066949.tif 000036
【図２】
2014066949.tif 000037
【図３Ａ】
2014066949.tif 000038
【図３Ｂ】
2014066949.tif 000039
【図４】
2014066949.tif 000040
【図７】
2014066949.tif 000041
【図５】
2014066949.tif 000042
【図６】
2014066949.tif 000043