(57)【要約】      （修正有）【課題】計算量の増大をより効果的に抑制するとともに、楽譜位置の推定精度を向上させたスコアアライメント装置を提供する。【解決手段】スコアアライメント装置は、楽譜位置をそれぞれ表す状態の系列として表された確率モデルであって、現在の状態が直前の状態に依存する性質と、現在の状態から他のいずれの状態にも遷移可能である性質とを備えた確率モデルに基づいて前記楽譜位置の確率密度の系列を計算する楽譜位置確率密度計算手段と、真の楽譜位置、真の楽譜位置の遷移速度、及び真の楽譜位置の遷移加速度を用いて表された自己回帰過程に基づいて、前記計算された楽譜位置の確率密度の系列を用いて、現在の楽譜位置を推定する楽譜位置推定手段と、を備える。【選択図】図２
2015079183.tif 000002
【特許請求の範囲】
【請求項１】
楽曲の演奏音を表わす音響信号を取り込みつつ前記取り込んだ音響信号を分析することにより、前記楽曲の楽譜のうち現在演奏されている部分を表す楽譜位置及びテンポを実時間で推定するスコアアライメント装置であって、
楽譜位置をそれぞれ表す状態の系列として表された確率モデルであって、現在の状態が直前の状態に依存する性質と、現在の状態からいずれの状態にも遷移可能である性質とを備えた確率モデルに基づいて前記楽譜位置の確率密度及びテンポの確率密度を計算する楽譜位置確率密度・テンポ確率密度計算手段と、
真の楽譜位置、真の楽譜位置の遷移速度、及び真の楽譜位置の遷移加速度を用いて表された自己回帰過程に基づいて、前記計算された楽譜位置の確率密度の系列を用いて、現在の楽譜位置及びテンポを決定する楽譜位置・テンポ決定手段と、を備えたスコアアライメント装置。
【請求項２】
請求項１に記載のスコアアライメント装置において、
前記状態は、前記楽譜を分割して得られた複数の区間のうちの現在の楽譜位置が含まれる区間と、現在の楽譜位置が含まれる区間の先頭から現在の楽譜位置まで演奏するのにかかった時間と、前記区間全体を演奏するのにかかる時間とを用いて特定され、
前記確率モデルは、前記状態の系列として表された隠れセミマルコフモデルであり、
前記楽譜位置確率密度・テンポ確率密度計算手段は、前記隠れセミマルコフモデルに前向きアルゴリズムを適用することにより前記楽譜位置の確率密度及びテンポの確率密度を計算する、スコアアライメント装置。
【請求項３】
請求項２に記載のスコアアライメント装置において、
前記楽譜位置確率密度・テンポ確率密度計算手段は、
前記楽譜を分割して得られた複数の区間のうちの現在の楽譜位置が含まれる区間と、現在の楽譜位置が含まれる区間の先頭から現在の楽譜位置まで演奏するのにかかった時間と、前記区間全体を演奏するのにかかる平均的な時間とを用いて特定される状態の系列として表された隠れマルコフモデルに基づいて、前記隠れセミマルコフモデルの区間のうち前向きアルゴリズムを適用する複数の区間を検索する区間検索手段を備えた、スコアアライメント装置。
【請求項４】
楽曲の演奏音を表わす音響信号を取り込みつつ前記取り込んだ音響信号を分析することにより、前記楽曲の楽譜のうち現在演奏されている部分を表す楽譜位置及びテンポを実時間で推定するスコアアライメント装置が備えるコンピュータに、
楽譜位置をそれぞれ表す状態の系列として表された確率モデルであって、現在の状態が直前の状態に依存する性質と、現在の状態から他のいずれの状態にも遷移可能である性質とを備えた確率モデルに基づいて前記楽譜位置の確率密度及びテンポの確率密度を計算する楽譜位置確率密度・テンポ確率密度計算ステップと、
真の楽譜位置、真の楽譜位置の遷移速度、及び真の楽譜位置の遷移加速度を用いて表された自己回帰過程に基づいて、前記計算された楽譜位置の確率密度の系列を用いて、現在の楽譜位置及びテンポを決定する楽譜位置・テンポ決定ステップと、を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲の演奏音を表わす音響信号を取り込みつつ前記取り込んだ音響信号を分析することにより、前記楽曲の楽譜のうち現在演奏されている部分（以下、楽譜位置と呼ぶ）を実時間で推定するスコアアライメント装置、及びスコアアライメント装置が備えるコンピュータに適用されるコンピュータプログラム（スコアアライメントプログラム）に関する。
【背景技術】
【０００２】
従来から、例えば、下記非特許文献１及び２に示されているように、スコアアライメント装置（自動伴奏装置）は知られている。演奏者が楽曲を演奏するとき、その楽曲の楽譜通りに演奏することは稀であり、同じ部分を繰り返し演奏したり、弾けない部分を飛ばしたりすることがある。上記のような任意の楽譜位置遷移に対応するために、非特許文献１及び非特許文献２のスコアアライメント装置においては、演奏過程（楽譜位置の遷移）を確率モデルとして記述している。
【０００３】
現在の楽譜位置から他の全ての楽譜位置への遷移が可能とする場合、遷移後の楽譜位置を推定する際の計算量が著しく多くなる。そこで、非特許文献１においては、楽譜位置の遷移に適当な仮定を設定することにより、計算量の増大を抑制している。
【０００４】
また、実時間で推定された楽譜位置の推定精度は、バッチ処理（非実時間処理）で推定された楽譜位置の推定精度に比べて低い。そこで、非特許文献２においては、現時点より所定の時間だけ前の楽譜位置を推定するとともにテンポ軌跡を推定し、両推定結果を用いて、現在の楽譜位置を推定している。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】中村  栄太，武田  晴登，山本  龍一，斎藤  康之，酒向  慎司，嵯峨山  茂樹、「任意箇所への弾き直し・弾き飛ばしを含む演奏に追従可能な楽譜追跡と自動伴奏」、情報処理学会論文誌、２０１３年  ４月、ｖｏｌ．５４、ｎｏ．４、ｐ．１３３８−１３４９
【非特許文献２】山本  龍一，酒向  慎司，北村  正、「Ｒｙｒｙ：多声楽器に対応可能な音響入力自動伴奏システム」、情報処理学会インタラクション、２０１３年  ３月２日、３ＥＸＢ−１３
【発明の概要】
【０００６】
上記非特許文献１では、計算量の増大が抑制されてはいるが、十分ではない。また、上記非特許文献２では、テンポの推定に際し、状態系列を構成する各状態の確信度が考慮されていないため、楽譜位置の推定精度が低下する可能性がある。したがって、このようなスコアアライメント装置をメディアプレーヤ（自動伴奏装置、画像表示装置など（特許４３９９９６１号公報、特許４５３４９２６号公報など参照））に適用した場合、演奏者による演奏の進行位置と他のメディア（伴奏、画像など）の再生位置とがずれる可能性がある。つまり、演奏者の演奏に対する他のメディアの再生が不自然に感じられる可能性がある。
【０００７】
本発明は上記問題に対処するためになされたもので、その目的は、計算量の増大をより効果的に抑制するとともに、楽譜位置の推定精度を向上させたスコアアライメント装置を提供することにある。なお、下記本発明の各構成要件の記載においては、本発明の理解を容易にするために、実施形態の対応箇所の符号を括弧内に記載しているが、本発明の各構成要件は、実施形態の符号によって示された対応箇所の構成に限定解釈されるべきものではない。
【０００８】
上記目的を達成するために、本発明の特徴は、楽曲の演奏音を表わす音響信号を取り込みつつ前記取り込んだ音響信号を分析することにより、前記楽曲の楽譜のうち現在演奏されている部分を表す楽譜位置及びテンポを実時間で推定するスコアアライメント装置（１０）であって、楽譜位置をそれぞれ表す状態の系列として表された確率モデル（ＨＳＭＭ）であって、現在の状態が直前の状態に依存する性質と、現在の状態からいずれの状態にも遷移可能である性質とを備えた確率モデルに基づいて前記楽譜位置の確率密度及びテンポの確率密度を計算する楽譜位置確率密度・テンポ確率密度計算手段（Ｓ１５１〜Ｓ１５５）と、真の楽譜位置（ｘｔ）、真の楽譜位置の遷移速度（ｖｔ）、及び真の楽譜位置の遷移加速度（ａｔ）を用いて表された自己回帰過程に基づいて、前記計算された楽譜位置の確率密度の系列を用いて、現在の楽譜位置及びテンポを決定する楽譜位置・テンポ決定手段（Ｓ１６２〜Ｓ１６５）と、を備えたスコアアライメント装置としたことにある。なお、上記の確率モデル（ＨＳＭＭ）の状態遷移においては、遷移前の状態と遷移後の状態が同じであってもよい。
【０００９】
この場合、前記状態（Ｓｉ，ｎ，Ｔ（ｔ））は、前記楽譜を分割して得られた複数の区間のうちの現在の楽譜位置が含まれる区間（ｉ）と、現在の楽譜位置が含まれる区間の先頭から現在の楽譜位置まで演奏するのにかかった時間（ｎ）と、前記区間全体を演奏するのにかかる時間（Ｔ）とを用いて特定され、前記確率モデルは、前記状態の系列として表された隠れセミマルコフモデル（ＨＳＭＭ）であり、前記楽譜位置確率密度・テンポ確率密度計算手段は、前記隠れセミマルコフモデルに前向きアルゴリズムを適用することにより前記楽譜位置の確率密度及びテンポの確率密度を計算するとよい。
【００１０】
上記のように構成したスコアアライメント装置においては、まず、楽譜位置確率密度及びテンポ確率密度が計算される。そして、楽譜位置確率密度の系列及びテンポ確率密度の系列を用いて、高次の自己回帰過程に基づいて楽譜位置及びテンポが決定される。これによれば、テンポの時間微分（すなわち、楽譜位置の加速度）が連続的であって、且つ「０」に戻る傾向を示すという音楽音響信号の性質を表現できる。また、楽譜位置確率密度及びテンポ確率密度の分散が大きい区間では、楽譜位置確率密度の系列及びテンポ確率密度の系列の経路が平滑化されるという挙動が得られる。これにより、楽譜位置及びテンポの推定精度を向上させることができる。
【００１１】
また、本発明の他の特徴は、前記楽譜位置確率密度・テンポ確率密度計算手段は、前記楽譜を分割して得られた複数の区間のうちの現在の楽譜位置が含まれる区間と、現在の楽譜位置が含まれる区間の先頭から現在の楽譜位置まで演奏するのにかかった時間と、前記区間全体を演奏するのにかかる平均的な時間とを用いて特定される状態の系列として表された隠れマルコフモデル（ＨＭＭ）に基づいて、前記隠れセミマルコフモデルの区間のうち前向きアルゴリズムを適用する複数の区間を検索する区間検索手段（Ｓ１５３）を備えた、スコアアライメント装置としたことにある。
【００１２】
これによれば、通常の隠れマルコフモデルに前向きアルゴリズムを適用して前向き変数を計算し、前向き変数が最大となる状態（区間）が検索される。そして、隠れセミマルコフモデルにおいて、前記検索された状態（区間）に対応する区間を含む複数の区間に対して前向きアルゴリズムが適用され、楽譜位置確率密度及びテンポ確率密度が計算される。したがって、隠れセミマルコフモデルを構成する全ての区間に対して前向きアルゴリズムを適用する場合に比べて、計算量の増大を抑制することができる。
【００１３】
なお、この場合、隠れマルコフモデル（ＨＭＭ）の区間数を隠れセミマルコフモデル（ＨＳＭＭ）の区間数よりも多くすると良い。これによれば、前記隠れセミマルコフモデル（ＨＳＭＭ）の区間のうち前向きアルゴリズムを適用する複数の区間を、隠れマルコフモデル（ＨＭＭ）の区間数と隠れセミマルコフモデル（ＨＳＭＭ）の区関数とが同一である場合に比べて、より適切に検索できる。
【００１４】
また、本発明は、スコアアライメント装置が備えるコンピュータに適用されるコンピュータプログラムとしても実施可能である。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態に係るスコアアライメント装置の構成を表わすブロック図である。
【図２】スコアアライメント装置の機能ブロック図である。
【図３】隠れセミマルコフモデル及び隠れマルコフモデルの状態遷移図である。
【図４】音モデルの一例を表わすグラフである。
【図５】楽譜位置観測密度の系列に対するテンポ軌跡モデルを推定する過程を表わす概念図である
【図６Ａ】スコアアライメント処理を表わすフローチャートである。
【図６Ｂ】楽譜位置確率密度・テンポ確率密度計算処理を表わすフローチャートである。
【図６Ｃ】楽譜位置・テンポ決定処理を表わすフローチャートである。
【発明を実施するための形態】
【００１６】
本発明の一実施形態に係るスコアアライメント装置１０について説明する。スコアアライメント装置１０は、楽曲の演奏を表わす音響信号を取り込みつつ前記取り込んだ音響信号を分析して、前記楽曲の楽譜のうちのどの部分が現在演奏されているのかを推定する。本実施形態では、楽譜を表わす楽譜データとして、標準ＭＩＤＩファイル形式のデータを用いる。
【００１７】
スコアアライメント装置１０は、図１に示すように、入力操作子１１、コンピュータ部１２、表示器１３、記憶装置１４、外部インターフェース回路１５及びサウンドシステム１６を備えており、これらがバスＢＳを介して接続されている。
【００１８】
入力操作子１１は、オン・オフ操作に対応したスイッチ（例えば数値を入力するためのテンキー）、回転操作に対応したボリューム又はロータリーエンコーダ、スライド操作に対応したボリューム又はリニアエンコーダ、マウス、タッチパネルなどから構成される。これらの操作子は、演奏者の手によって操作されて、スコアアライメント処理の開始又は停止、スコアアライメント処理に関する各種パラメータの設定などに用いられる。入力操作子１１を操作すると、その操作内容を表す操作情報が、バスＢＳを介して、後述するコンピュータ部１２に供給される。
【００１９】
コンピュータ部１２は、バスＢＳにそれぞれ接続されたＣＰＵ１２ａ、ＲＯＭ１２ｂ及びＲＡＭ１２ｃからなる。ＣＰＵ１２ａは、後述するスコアアライメント処理の手順を表わしたスコアアライメントプログラムをＲＯＭ１２ｂから読み出して実行する。ＲＯＭ１２ｂには、前記プログラムに加えて、初期設定パラメータ、表示器１３に表示される画像を表わす表示データを生成するための図形データ及び文字データなどの各種データが記憶されている。ＲＡＭ１２ｃには、前記プログラムの実行時に必要なデータが一時的に記憶される。
【００２０】
表示器１３は、液晶ディスプレイ（ＬＣＤ）によって構成される。コンピュータ部１２は、図形データ、文字データなどを用いて表示すべき内容を表わす表示データを生成して表示器１３に供給する。例えば、コンピュータ部１２は、後述するスコアアライメント処理により推定された楽譜位置を表わす表示データを表示器１３に供給する。表示器１３は、コンピュータ部１２から供給された表示データに基づいて画像を表示する。
【００２１】
また、記憶装置１４は、ＨＤＤ、ＦＤＤ、ＣＤ、ＤＶＤなどの大容量の不揮発性記録媒体と、同各記録媒体に対応するドライブユニットから構成されている。記憶装置１４には、楽譜を表わす楽譜データ（標準ＭＩＤＩファイル）が記憶されている。楽譜データは予め記憶装置１４に記憶されていてもよいし、後述する外部インターフェース回路１５を介して外部から取り込んでもよい。
【００２２】
外部インターフェース回路１５は、スコアアライメント装置１０を電子音楽装置、パーソナルコンピュータなどの外部機器に接続可能とする接続端子を備えている。スコアアライメント装置１０は、外部インターフェース回路１５を介して、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどの通信ネットワークにも接続可能である。
【００２３】
サウンドシステム１６は、ディジタル音信号を生成する音源回路、前記生成されたディジタル音信号をアナログ音信号に変換するＤ／Ａ変換器、前記変換したアナログ音信号を増幅するアンプ、及び増幅されたアナログ音信号を音響信号に変換して出力するスピーカを備えている。また、サウンドシステム１６は、楽曲の演奏により放音された楽音を収音するためのマイク、収音された楽音を表わすアナログ音信号をディジタル音信号に変換するＡ／Ｄ変換器、変換されたディジタル音信号を表わすサンプルデータを一時的に記憶するバッファも備えている。つまり、サウンドシステム１６は、楽音を所定のサンプリング周期（例えば、１／４４１００ｓｅｃ）でサンプリングし、サンプリングによって得られたサンプルデータを前記バッファに記憶する。
【００２４】
次に、楽譜位置及びテンポの推定手法について説明する。スコアアライメント装置１０は、図２に示すように、まず、マイクを介して楽曲の演奏を表わす音響信号を取り込みつつ前記取り込んだ音響信号を分析して現在演奏されている楽譜位置の確率密度及び現在のテンポの確率密度を計算する。そして、前記計算された確率密度の系列を用いて、最適な楽譜位置及びテンポを決定する。前記決定された楽譜位置及びテンポは、制御対象（表示器１３、サウンドシステム１６など）の制御に用いられる。
【００２５】
次に、楽譜位置及びテンポの確率密度の計算手法について説明する。本実施形態では、以下説明するように、前記複数の区間の系列が隠れセミマルコフモデルＨＳＭＭ（図３、式（２）参照）としてモデル化される。まず、図３に示すように、楽曲の楽譜が複数の区間ｉ（＝１，２，・・・，Ｉ）に分割される。各区間の長さは同一である。例えば、各区間の長さは、４分音符１つ分の長さである。「ｉ」は、楽曲の先頭から数えて何番目の区間であるかを表わすインデックスである。実際の演奏に対応した楽譜は、上記のように分割された複数の区間の系列として表現可能である。
【００２６】
１つの区間を演奏するのにかかる時間（演奏が１つの区間に留まる時間）は、テンポに依存する。例えば、テンポが６０ＢＰＭ（Ｂｅａｔｓ  Ｐｅｒ  Ｍｉｎｕｔｅ）の場合は、１つの区間を演奏するのに１秒かかる。また、テンポが１２０ＢＰＭの場合は、１つの区間を演奏するのに０．５秒かかる。ここで、例えば０．１秒を単位時間とするフレームの数として表現すれば、テンポが６０ＢＰＭの場合は、１つの区間を演奏するのに１０フレーム分の時間がかかり、テンポが１２０ＢＰＭの場合は、１つの区間を演奏するのに５フレーム分の時間がかかる。
【００２７】
時刻ｔ（楽曲の先頭から数えてｔ番目のフレーム）において区間ｉが演奏されており、区間ｉを演奏するのにフレーム数Ｔに相当する時間がかかることが確定していて、区間ｉの先頭から数えてｎ番目のフレームまで演奏し終えた状態（区間ｉの先頭から現在の楽譜位置まで演奏するのにｎ個分のフレームの時間がかかった状態）を状態Ｓｉ，ｎ，Ｔ（ｔ）と表記する。図３における○印は、各状態Ｓｉ，ｎ，Ｔ（ｔ）に対応している。なお、各区間内ではテンポは変化しないものとする。つまり、同図において矢印で結ばれた○印の各系列においては、左側の○印から右側の○印へ順に遷移する。したがって、各系列を構成する○印の数がテンポに対応している。すなわち、○印の数が少ない系列ほどテンポが速く、○印の数が多い系列ほどテンポが遅い。よって、各区間において初期状態を１つ選択すれば、演奏がその区間に留まる長さ（フレーム数Ｔ）が確定する。
【００２８】
また、通常、演奏は楽譜の先頭から末尾へ向かって順に進行するので、１つの区間の演奏が終了したとき、その区間の１つ後の区間への遷移のみが許容される。ここで、区間ｉから区間ｊへ遷移する確率を確率τｉ，ｊと表記する。また、１つの区間の末尾の状態から、次の区間の初期状態へ遷移するときには、任意の初期状態へ遷移可能とする。つまり、１つの区間から次の区間へ遷移するとき、テンポが変更され得る。ここで、フレーム数Ｔ´に相当するテンポから、フレーム数Ｔに相当するテンポに遷移する確率を確率τＴ‘，Ｔと表記する。すると、状態Ｓｉ´，ｎ´，Ｔ´（ｔ）から状態Ｓｉ，ｎ，Ｔ（ｔ＋１）へ遷移する確率である状態遷移確率τ（ｉ´，ｎ´，Ｔ´）〜（ｉ，ｎ，Ｔ）は、下記の式（１）のように表わされる。なお、本実施形態では、説明を簡単にするために、楽譜位置を遠く離れた区間へ遷移させる演奏記号（ダ・カーポ、繰り返し記号など）が楽譜に含まれないと仮定する。
【数１】
2015079183.tif 000003
【００２９】
しかし、演奏者が楽曲を実際に演奏するとき、楽譜では指定されていない部分を繰り返し演奏したり、弾けない部分を飛ばしたりすることがある。つまり、楽譜位置が、隣接する区間ではなく、遠く離れた区間へ遷移する（ジャンプする）可能性がある。そこで、隠れマルコフモデルＨＭＭや隠れセミマルコフモデルＨＳＭＭに従って区間が遷移する確率γ、状態Ｓｉ，ｎ，Ｔを観測する確率πｉ，ｎ，Ｔ、及び状態Ｓｉ，ｎ，Ｔの観測尤度Ｏｉ，ｎ，Ｔ（ｔ）を用いて、下記の式（２）に示すようなモデルを設定する。観測尤度Ｏｉ，ｎ，Ｔ（ｔ）については後述する。
【数２】
2015079183.tif 000004
【００３０】
次に、サウンドシステム１６によってサンプリングされた楽音のフレームｔに含まれる各音高ｍのパワーｙｍ（ｔ）及び１つ前のフレームからのパワーの増加量Δｙｍ（ｔ）が音響信号の特徴量として計算される。ここで、パワーｙｍ（ｔ）の観測尤度及びパワーの増加量Δｙｍ（ｔ）の観測尤度は、式（３）及び式（４）に示すように、それぞれｖｏｎ  Ｍｉｓｅｓ−Ｆｉｓｈｅｒ分布に従うと仮定する。
【数３】
2015079183.tif 000005
【数４】
2015079183.tif 000006
【００３１】
すると、式（２）の観測尤度Ｏｉ，ｎ，Ｔ（ｔ）は、下記の式（５）のように表わされる。
【数５】
2015079183.tif 000007
【００３２】
なお、上記式（３）及び式（４）における「κ」は、ｖｏｎ  Ｍｉｓｅｓ  Ｆｉｓｈｅｒ分布の集中度を表わす。つまり、「κ」が大きいほど、パワーｙｍ（ｔ）及びパワーの増加量Δｙｍ（ｔ）の観測尤度の分布図において、平均値を中心に急峻なピークが形成される。「κ」の値は、例えば「１００」に設定される。また、「ｗ（ｋ）」は音響信号の特徴量のテンプレート（以下、音モデルと呼ぶ）である。「ｋ」は音モデルを特定するためのインデックスである。各音モデルは、各楽器を用いて各音高の楽音（単音）をそれぞれ発生させ、それらの楽音の特徴量を計算して記録したデータである。例えば、「ｗ（ｋ＝１）」は、ピアノを弾いてＭＩＤＩノートナンバが「６９」に相当する音高の音を発生させ、その特徴量（パワー）を記録したデータである。また、例えば、「ｗ（ｋ＝２）」は、バイオリンを弾いてＭＩＤＩノートナンバが「６９」に相当する音高の楽音を発生させ、その特徴量（パワー）を記録したデータである。また、「ｈ」は、各音モデルの強度を表わす。なお、発音数が多い楽曲の場合、設定された各音モデルの強度と実際に演奏された楽音の強度に大きな差が生じることがある。この場合、「κ」の値を小さくして、分散をより大きくすればよい。
【００３３】
パワーｙｍ（ｔ）の観測尤度（式（３））に関して具体的に説明する。説明を簡単にするために、分析対象の楽曲は、単一の楽器で演奏される楽曲とし、音モデルのインデックスとしての「ｋ」とＭＩＤＩノートナンバＮＮとが一致すると仮定する。ここで、現在の状態が状態Ｓｉ＝４，ｎ＝６，Ｔ＝１２であるとする。このときのパワーｙｍ（ｔ）の観測尤度について考察する。この場合、ｉ＋ｎ／Ｔ＝４＋６／１２＝４．５であるから楽譜位置４．５に対応する「ｈ（４．５）」を抽出する。図４においては、各音モデルの強度（つまり「ｈ」の大きさ）を濃淡グラフとして示している。同図において濃く示された要素の強度が大きい。この例ではｋ＝６９の要素の強度が大きいので、結果として、パワーｙｍ（ｔ）の観測尤度は、「ｗ（ｋ＝６９）」の要素が支配的である平均値を持つように分布する。
【００３４】
隠れセミマルコフモデルＨＳＭＭにおける前向き変数αｉ，ｎ，Ｔ（ｔ）は、下記の式（６）のように表される。
【数６】
2015079183.tif 000008
【００３５】
この式（６）を整理すると、下記の式（７）に示す漸化式が得られる。
【数７】
2015079183.tif 000009
【００３６】
ここで、説明を簡単にするために、いずれの楽譜位置にも一様に遷移可能なモデルについて考察する。この場合、状態Ｓを観測する確率πは、状態数｜Ｓ｜を用いて、式（８）のように表わされる。
【数８】
2015079183.tif 000010
【００３７】
また、初期の状態に遷移する確率（１−γ）を「０．０１」とすると、状態ｉの観測尤度Ｏｉ（ｔ）、状態ｉから状態ｊへの遷移確率τｉ，ｊ、状態ｉの前向き変数αｉ（ｔ）を用いて、前向き変数αの更新式は、式（９）のように表わされる。
【数９】
2015079183.tif 000011
【００３８】
式（９）における「τｉ，ｊ×０．９９」の部分と、「０．０１／｜Ｓ｜」の部分は、楽譜データを読み込んだ際に計算しておくことができる。一方、式（７）において、「γ」の値を「１」とすれば、式（１０）に示すように、通常の隠れマルコフモデルＨＭＭにおける前向き変数の漸化式が得られる。
【数１０】
2015079183.tif 000012
【００３９】
したがって、隠れセミマルコフモデルＨＳＭＭにおける前向き変数の更新の演算と、通常の隠れマルコフモデルＨＭＭにおける前向き変数の更新の演算との違い（オーバーヘッド）は、「０．０１／｜Ｓ｜」を加算する処理のみである。なお、この例では、いずれの楽譜位置にも一様に遷移可能としているが、状態遷移が制限されている場合であってもオーバーヘッドに関しては、この例と同様である。
【００４０】
本実施形態においては、分割された区間の時系列を隠れセミマルコフモデルＨＳＭＭとしてモデル化しているので、通常の隠れマルコフモデルとしてモデル化した場合に比べて状態数が膨大であり、区間ｉ、フレーム数ｎ及びフレーム数Ｔの組み合わせの数も膨大である。したがって、前向きアルゴリズムを用いて楽譜位置の確率密度を計算すると、計算量が膨大になってしまう。そこで、スコアアライメント装置１０は、以下説明するように、通常の隠れマルコフモデルＨＭＭを用いて、前向きアルゴリズムを適用する隠れセミマルコフモデルＨＳＭＭの区間を絞り込む区間検索手段を備える。
【００４１】
通常の隠れマルコフモデルＨＭＭは次のように定義される。すなわち、上記の隠れセミマルコフモデルＨＳＭＭと同様に楽譜を分割し、分割した区間のそれぞれに状態変数を割り当てる。ただし、隠れセミマルコフモデルＨＳＭＭの区間数よりも隠れマルコフモデルＨＭＭの区間数のほうが多くなるように楽譜を分割する。例えば、隠れセミマルコフモデルＨＳＭＭにおいては、それぞれの区間の長さが４分音符の長さになるように楽譜を分割し、隠れマルコフモデルＨＭＭにおいては、それぞれの区間の長さが３２分音符の長さになるように楽譜を分割する。また、各状態（区間）は自分自身にも遷移可能とする。つまり、隠れマルコフモデルＨＭＭにおいては、ある状態から自分自身に遷移する確率が「τ（ＨＭＭ）」であり、ある状態から１つ後ろの状態へ遷移する確率が「１−τ（ＨＭＭ）」である。このような隠れマルコフモデルＨＭＭに対して実時間で前向きアルゴリズムを適用し、各フレームｔにおいて前向き変数が最大となる状態を検索する。そして、前記検索した状態に対応する隠れセミマルコフモデルＨＳＭＭの区間に隣接する所定数（例えば１６個（４拍子の曲の４小節分））の区間ΔＳにのみ前向きアルゴリズムを適用する。
【００４２】
なお、「τ（ＨＭＭ）」は、１フレームあたりに遷移する区間数とみなすことができる。この「区間」とは、隠れマルコフモデルＨＭＭの区間である。したがって、自分自身に遷移する確率を表す「τ（ＨＭＭ）」と、現在推定されているテンポ（すなわちフレーム数Ｔ）とが整合していないと、区間ΔＳが適切に得られない可能性がある。そこで、隠れセミマルコフモデルＨＳＭＭに基づいて計算された確率密度を用いて、現在のフレーム数Ｔに対する分布（＝Σｉ，ｎαｉ，ｎ，Ｔ（ｔ））を計算する。そして、現在のフレーム数Ｔを用いて１フレームあたりに遷移する区間数の期待値を計算することにより、「τ（ＨＭＭ）」を決定する。これにより、隠れマルコフモデルＨＭＭと隠れセミマルコフモデルＨＳＭＭのテンポが整合する。
【００４３】
次に、前記計算された楽譜位置確率密度及びテンポ確率密度の系列に基づいて、現在の楽譜位置を決定する手法について説明する。上記非特許文献２においては、テンポの連続性を１次の自己回帰過程としてモデル化していた。つまり、フレームｔにおけるテンポを「νｔ」とし、平均値が「０」であって、分散σ２が「０」より大きい正規分布に従う独立なテンポ変化量εｔに対して、νｔ＝νｔ−１＋εｔというモデルを仮定していた。しかし、音楽音響信号においては、テンポを速く（遅く）しているときには、ある程度連続した区間でεｔが正（負）の値をとり、かつテンポの時間微分（つまり、楽譜位置の加速度）は「０」に戻る傾向にある。つまり、あるフレームにおけるテンポ変化量εｔは、そのフレームに隣接するフレームのテンポ変化量εｔに依存する。
【００４４】
そこで、本実施形態においては、さらに高次の情報を採り入れる。フレームｔに関する楽譜位置の確率密度を楽譜位置確率密度Ｕｑ（ｔ）、テンポの確率密度をテンポ確率密度ＶＴ（ｔ）と表記する。ここで、「ｑ」は、任意の「Ｍ」に対して、「ｑ＝ｒｏｕｎｄ（Ｍ（ｉ＋ｎ／Ｔ））」なる演算式により定義される変数である。つまり、「ＶＴ（ｔ）」は、「ｑ」が１フレームあたりに「Ｍ／Ｔ」だけ遷移する確率である。
【００４５】
ここで、フレームｔにおける真の楽譜位置を楽譜位置ｘｔ、真の楽譜位置の遷移速度をテンポｖｔ、真の楽譜位置の遷移加速度を加速度ａｔと表記する。つまり、テンポｖｔは、楽譜位置ｘｔの一階微分に相当し、加速度ａｔは、楽譜位置ｘｔの二階微分に相当する。そして、下記の式（１１）〜式（１３）によって定義される状態空間モデル（高次の自己回帰過程）を設定する。すなわち、楽譜位置の推移を表わす楽譜位置軌跡モデル、テンポの推移を表わすテンポ軌跡モデル、及び加速度の推移を表わす加速度軌跡モデルを設定する。
【数１１】
2015079183.tif 000013
【数１２】
2015079183.tif 000014
【数１３】
2015079183.tif 000015
【００４６】
なお、式（１３）における「ｒ」は加速度ａｔの減衰係数である。この減衰係数の作用により、加速度ａｔは、連続的に変化し、かつ「０」に戻るという傾向を示す。また、「ｒ」が大きいとテンポの変化が緩やかになり、「ｒ」が小さいとテンポの変化が激しくなる傾向を示す。「ｒ」は例えば、「０．５」に設定される。実演奏のテンポデータに基づいて、「ｒ」を最適な値に設定しても良い。
【００４７】
上記の状態空間モデルがどのような観測値（つまり、楽譜位置確率密度Ｕｑ（ｔ）及びテンポ確率密度ＶＴ（ｔ）を生成するかをモデル化できれば、状態遷移と観測尤度を同時に考慮することにより、状態変数を推論することができる。そこで、楽譜位置確率密度Ｕｑ（ｔ）の平均値μ（Ｕｑ（ｔ））及び分散σ２（Ｕｑ（ｔ））、並びにテンポ確率密度ＶＴ（ｔ）の平均値μ（ＶＴ（ｔ））及び分散σ２（ＶＴ（ｔ））を下記の式（１４）〜式（１７）を用いて計算する。
【数１４】
2015079183.tif 000016
【数１５】
2015079183.tif 000017
【数１６】
2015079183.tif 000018
【数１７】
2015079183.tif 000019
【００４８】
つまり、推定された現在の楽譜位置ｘｔの周辺のフレームに関する楽譜位置確率密度Ｕｑ（ｔ）及びテンポ確率密度ＶＴ（ｔ）の平均値及び分散を計算する。そして、観測尤度を下記の式（１８）に示すように定義する。
【数１８】
2015079183.tif 000020
【００４９】
すなわち、まず、現在のフレームよりＮ個前に位置するフレームと現在のフレームとの間における楽譜位置確率密度の系列及びテンポ確率密度の系列から、楽譜位置ｘｔの周辺のフレームの確率密度の系列をそれぞれ抽出する。ここで、ΔＴ個だけ前に位置するフレームにおいて計算された確率密度を正規分布と見なす。つまり、ΔＴ個だけ前に位置するフレームにおいて計算された確率密度のヒストグラムの平均及び分散を正規分布の平均及び分散と見なす。そして、楽譜位置ｘｔ、テンポｖｔ及び加速度ａｔを用いて、ΔＴ個だけ前に位置するフレームにおけるテンポ軌跡モデル及び加速度軌跡モデルの尤度を計算する。図５は、計算された楽譜位置観測密度の系列に対するテンポ軌跡モデルを推定する過程を示す概念図である。実際には、テンポ確率密度の系列に対する加速度軌跡モデルも推定する。カルマンフィルタを用いれば、上記のような楽譜位置軌跡モデル、テンポ軌跡モデル及び加速度軌跡モデルを実時間で推定できる。カルマンフィルタの更新ステップが実行され、更新された状態の推定値を用いて、楽譜位置ｘｔの平均値〈ｘｔ〉、及びテンポｖｔの平均値〈ｖｔ〉が計算される。そして、前記計算された楽譜位置ｘｔの平均値〈ｘｔ〉、及びテンポｖｔの平均値〈ｖｔ〉が、現在の楽譜位置及びテンポとして決定される。
【００５０】
次に、スコアアライメント装置１０の動作について具体的に説明する。ＣＰＵ１２ａは、図６Ａに示すように、ステップＳ１０にて、スコアアライメントプログラムをＲＯＭ１２ｂから読み込んで、スコアアライメント処理を開始する。次に、ＣＰＵ１２ａは、ステップＳ１１にて、表示器１３に楽譜データのリストを表示する。ユーザは、表示されたリストの中から、スコアアライメント処理を実行する対象の楽曲（つまり、演奏される楽曲）の楽譜データを、入力操作子１１を用いて選択する。次に、ＣＰＵ１２ａは、ステップＳ１２にて、前記選択された楽譜データを記憶装置１４から読み込んで、複数の区間ｉ（＝１，２，・・・，Ｉ）に分割する。
【００５１】
次に、ＣＰＵ１２ａは、ステップＳ１３にて、サウンドシステム１６に、楽音のサンプリングを開始させる。次に、ＣＰＵ１２ａは、ステップＳ１４にて、処理対象のフレームを最初のフレームに設定する。すなわち、フレームのインデックスである「ｔ」の値を「１」に設定する。
【００５２】
次に、ＣＰＵ１２ａは、ステップＳ１５にて、楽譜位置確率密度・テンポ確率密度計算処理を実行する。図６Ｂに示すように、ＣＰＵ１２ａは、ステップＳ１５０にて楽譜位置確率密度・テンポ確率密度計算処理を開始する。次に、ＣＰＵ１２ａは、ステップＳ１５１にて、フレームｔに含まれる音響信号（サンプルデータ）をサウンドシステム１６のバッファから読み込む。次に、ＣＰＵ１２ａは、ステップＳ１５２にて、上記式（３）乃至式（５）に基づいて、観測尤度Ｏｉ，ｎ，Ｔ（ｔ）を計算する。次に、ＣＰＵ１２ａは、ステップＳ１５３にて、前記計算された観測尤度Ｏｉ，ｎ，Ｔ（ｔ）を用いて、通常の隠れマルコフモデルＨＭＭに前向きアルゴリズムを適用し、フレームｔにおいて前向き変数が最大となる状態を検出する。これにより、隠れセミマルコフモデルＨＳＭＭに前向きアルゴリズムを適用する区間が決定される。次に、ＣＰＵ１２ａは、ステップＳ１５４にて、隠れセミマルコフモデルＨＳＭＭを構成する複数の区間のうち、前記決定された区間に前向きアルゴリズムを適用する（式（７）参照）。次に、ＣＰＵ１２ａは、ステップＳ１５５にて、隠れセミマルコフモデルＨＳＭＭに前向きアルゴリズムを適用して計算された前向き変数を用いて、楽譜位置確率密度Ｕｑ（ｔ）及びテンポ確率密度ＶＴ（ｔ）を計算する。そして、ＣＰＵ１２ａは、ステップＳ１５６にて、楽譜位置確率密度・テンポ確率密度計算処理を終了し、アライメント計算処理のステップＳ１６に処理を進める。
【００５３】
次に、ＣＰＵ１２ａは、ステップＳ１６にて、楽譜位置・テンポ決定処理を実行する。ＣＰＵ１２ａは、図６Ｃに示すように、ステップＳ１６０にて、楽譜位置・テンポ決定処理を開始する。次に、ＣＰＵ１２ａは、ステップＳ１６１にて、楽譜位置がジャンプしたか否かを判定する。具体的には、現在のフレームに関して計算された楽譜位置確率密度Ｕｑ（ｔ）と、１つ前のフレームに関して計算された楽譜位置確率密度Ｕｑ（ｔ−１）との差に基づいて、楽譜位置がジャンプしたか否かを判定する。例えば、現在のフレームにおける楽譜位置確率密度Ｕｑ（ｔ）及び１つ前のフレームにおける楽譜位置確率密度Ｕｑ（ｔ−１）に基づいて、最も可能性の高い楽譜位置（隠れセミマルコフモデルＨＳＭＭの前向き変数の値が最も大きい状態）をそれぞれ検出し、前記検出した現在のフレームの楽譜位置と１つ前のフレームの楽譜位置とが４小節以上離れている場合に、楽譜位置がジャンプしたと判定する。楽譜位置がジャンプしていない場合には、ＣＰＵ１２ａは、「Ｎｏ」と判定して、ステップＳ１６２にて、上記式（１４）乃至式（１７）に基づいて、楽譜位置ｘｔの周辺のフレームにおける楽譜位置確率密度Ｕｑ（ｔ）及びテンポ確率密度ＶＴ（ｔ）の平均値及び分散を計算する。次に、ＣＰＵ１２ａは、ステップＳ１６３にて、上記式（１８）に基づいて観測尤度を計算し、カルマンフィルタを用いてテンポ推移モデル及び加速度推移モデルを推定する。
【００５４】
一方、楽譜位置がジャンプした場合には、ＣＰＵ１２ａは、ステップＳ１６１において「Ｙｅｓ」と判定する。そして、ＣＰＵ１２ａは、ステップＳ１６４にて、楽譜位置ｘｔ、テンポｖｔ、及び加速度ａｔの値を次のように設定する。例えば、現在のフレームにおける楽譜位置確率密度Ｕｑ（ｔ）に基づいて、最も可能性の高い楽譜位置を検出し、前記検出した楽譜位置を楽譜位置ｘｔとして設定する。また、テンポｖｔを規定値（例えば「１２０ＢＰＭ」）に設定する。また、加速度ａｔを規定値（例えば「０」）に設定する。
【００５５】
そして、ＣＰＵ１２ａは、ステップＳ１６５にて、楽譜位置推移モデル、テンポ推移モデル及び加速度推移モデルの推定結果を用いて楽譜位置及びテンポを決定して、前記決定した楽譜位置及びテンポに応じて制御対象を制御する。
【００５６】
例えば、楽曲の楽譜を表示器１３に表示し、前記決定した楽譜位置（音符）の色を他の部分の色とは異ならせることにより、現在の楽譜位置を明示する。また、例えば、推定された楽譜位置に対応する静止画、動画などを表示する。例えば、静止画を表わす静止画データのファイル名と楽譜位置を予め対応させておき、推定された楽譜位置に対応する静止画データを用いて静止画を表示器１３に表示してもよい。また、例えば、動画を表わす動画データの再生位置（例えばフレーム番号）と楽譜位置を予め対応付けておき、前記動画のうち、推定された楽譜位置に対応する部分を表示器１３に表示してもよい。また、例えば、伴奏を表わす伴奏データの再生位置（例えば小節番号）と楽譜位置を予め対応付けておき、推定された楽譜位置に対応する部分のデータをサウンドシステム１６の音源回路に送信して、伴奏の楽音を放音させてもよい。伴奏を再生する際には、伴奏のテンポを前記決定したテンポに設定すればよい。
【００５７】
次に、ＣＰＵ１２ａは、前記計算された前向き変数αｉ，ｎ，Ｔ（ｔ）を用いて、ステップＳ１６６にて、隠れマルコフモデルＨＭＭの状態遷移確率を更新する。具体的には、まず、セミマルコフモデルＨＳＭＭの前向き変数を用いて、現在のフレーム数Ｔの期待値〈Ｔ〉を計算する。隠れセミマルコフモデルＨＳＭＭにおいて、フレーム数Ｔの値が平均値〈Ｔ〉である場合、１フレームあたりに遷移する区間数は、「１／〈Ｔ〉」と表わされる。また、上記のように、「τ（ＨＭＭ）」は、１フレームあたりに遷移する隠れマルコフモデルＨＭＭの区間数とみなすことができる。したがって、隠れセミマルコフモデルＨＳＭＭの区間長と隠れマルコフモデルＨＭＭの区間長との比を「φ」（＝隠れセミマルコフモデルＨＳＭＭの区間長／隠れマルコフモデルＨＭＭの区間長）とすると、「τ（ＨＭＭ）＝φ／〈Ｔ〉」と表わされる。「τ（ＨＭＭ）」は「０」以上、且つ「１」以下の値として定義されているため、「τ（ＨＭＭ）」は、次の式（１９）に基づいて更新される。
【数１９】
2015079183.tif 000021
【００５８】
そして、ＣＰＵ１２ａは、ステップＳ１６７にて、楽譜位置決定処理を終了し、アライメント計算処理のステップＳ１７に処理を進める。
【００５９】
次に、ＣＰＵ１２ａは、ステップＳ１７にて、処理対象のフレームを次のフレームに設定する。すなわち、フレームのインデックスである「ｔ」の値をインクリメントする。これ以降、ＣＰＵ１２ａは、ステップＳ１５乃至ステップＳ１７を繰り返し実行する。ただし、ユーザが入力操作子１１を用いてスコアアライメント処理の終了を指示すると、ＣＰＵ１２ａは、制御対象の動作を停止させ、スコアアライメント処理を終了する。
【００６０】
上記のように構成したスコアアライメント装置１０においては、まず、楽譜位置確率密度及びテンポ確率密度を計算する。そして、楽譜位置確率密度Ｕｑ（ｔ）の系列及びテンポ確率密度ＶＴ（ｔ）の系列を用いて、高次の自己回帰過程に基づいて楽譜位置及びテンポを決定する。これによれば、テンポの時間微分（すなわち、楽譜位置の加速度）が連続的であって、且つ「０」に戻る傾向を示すという音楽音響信号の性質を表現できる。また、隠れセミマルコフモデルＨＳＭＭを用いて計算された楽譜位置確率密度Ｕｑ（ｔ）及びテンポ確率密度ＶＴ（ｔ）の分散が大きい区間では、楽譜位置確率密度の系列及びテンポ確率密度の系列の経路が平滑化されるという挙動が得られる。これにより、楽譜位置の推定精度を向上させることができる。したがって、スコアアライメント装置１０をメディアプレーヤに適用すれば、演奏者による演奏の進行位置と他のメディア（自動伴奏、画像など）の再生位置とのずれを従来よりも抑制できる。つまり、演奏者による演奏に対する他のメディアの再生が不自然に感じられることを抑制できる。
【００６１】
また、通常の隠れマルコフモデルＨＭＭに前向きアルゴリズムを適用して前向き変数を計算し、前向き変数が最大となる状態（区間）を検索する。そして、隠れセミマルコフモデルＨＳＭＭにおいて、前記検索された状態（区間）に対応する区間を含む複数の区間ΔＳに対して前向きアルゴリズムを適用して楽譜位置確率密度Ｕｑ（ｔ）及びテンポ確率密度ＶＴ（ｔ）を計算している。したがって、隠れセミマルコフモデルＨＳＭＭを構成する全ての区間に対して前向きアルゴリズムを適用する場合に比べて、計算量の増大を抑制することができる。
【００６２】
また、隠れセミマルコフモデルＨＳＭＭの区間数よりも隠れマルコフモデルＨＭＭの区間数のほうが多くなるように楽譜を分割した。これにより、隠れセミマルコフモデルＨＳＭＭの区間のうち前向きアルゴリズムを適用する複数の区間を、隠れマルコフモデルＨＭＭの区間数と隠れセミマルコフモデルＨＳＭＭの区関数とが同一である場合に比べて、より適切に検索できる。
【００６３】
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【００６４】
例えば、上記実施形態では、楽譜にダ・カーポ、繰り返し記号などが含まれないと仮定しているが、楽譜にダ・カーポ、繰り返し記号などが含まれる場合には、それらの演奏記号に従って区間の遷移確率を適当に設定すればよい。例えば、繰り返し記号が含まれる場合には、繰り返し区間のうちの末尾の区間から、繰り返し区間の先頭へ遷移する確率を５０％とし、繰り返し区間の末尾の区間から、前記末尾の区間の１つ後の区間へ遷移する確率を５０％とすればよい。
【００６５】
また、例えば、ステップＳ１５１にて、音響信号データを読み込んだとき、無音か否かを判定するステップを追加しても良い。無音である場合には、楽譜位置ｘｔのモデルを状態空間モデルに基づいてのみ更新すればよい。つまり、ｘｔ＝ｘｔ−１＋ｖｔ−１＋ａｔ−１／２なる演算式を用いればよい。また、この場合、隠れマルコフモデルＨＭＭ及び隠れセミマルコフモデルＨＳＭＭの前向き変数に関しては、楽譜位置ｘｔに対応する箇所の変数のみを一様分布に設定し、それ以外を「０」に設定すればよい。
【００６６】
また、楽譜にフェルマータが存在する場合は、フェルマータが記された区間において自己遷移を許容するように隠れセミマルコフモデルＨＳＭＭを設定すればよい。つまり、区間ｉにフェルマータが存在するとき、確率τｉ，ｉを「ρ」とし、確率τｉ，ｊを「１−ρ」に設定すればよい。この場合、区間ｉにおいて自己遷移した回数をカウントし、カウント結果に応じて、演奏が区間ｉに留まった長さを評価してもよい。例えば、区間ｉに留まった長さを「短すぎる」、「普通」、「長すぎる」という３段階で判定し、判定結果を演奏評価情報として出力しても良い。
【００６７】
また、推定されたテンポ及びその分散を用いて、楽曲の演奏速度を評価してもよい。例えば、楽曲の演奏速度を「遅すぎる」、「普通」、「速すぎる」という３段階で判定し、判定結果を演奏評価情報として出力しても良い。
【符号の説明】
【００６８】
１０・・・スコアアライメント装置、ＨＭＭ・・・隠れマルコフモデル、ＨＳＭＭ・・・隠れセミマルコフモデル、ｘｔ・・・楽譜位置、ｖｔ・・・テンポ、ａｔ・・・加速度
【図１】
2015079183.tif 000022
【図２】
2015079183.tif 000023
【図３】
2015079183.tif 000024
【図４】
2015079183.tif 000025
【図５】
2015079183.tif 000026
【図６Ａ】
2015079183.tif 000027
【図６Ｂ】
2015079183.tif 000028
【図６Ｃ】
2015079183.tif 000029