(57)【要約】【課題】拍点及びテンポを実時間で精度良く推定することができる音響信号分析装置を提供する。【解決手段】  音響信号分析装置１０は、楽曲の各区間における拍の存在に関する物理量及びテンポに関する物理量の組み合わせにより分類された状態の系列として記述された確率モデルに基づいて現在の区間における拍の存在及びテンポを仮決定する。過去の区間において決定されたテンポに基づいて前記仮決定されたテンポを補正し、前記補正されたテンポに基づいて、現在の区間のテンポを決定する。前記決定されたテンポに基づいて、現在の区間からみた拍点までの時間に相当する拍位相を計算する。拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間及びその区間の後続の１つ又は複数の区間において、前記拍位相の絶対値を所定の補正値だけ小さくするように補正する。拍位相の正負符号が変化した区間に拍が存在するとして決定して、前記決定結果を前記決定したテンポとともに出力する。【選択図】図３
2015114360.tif 000002
【特許請求の範囲】
【請求項１】
楽曲全体を複数の区間に分割したときの各区間の演奏音を表わす音響信号を取り込むごとに前記取り込んだ音響信号を分析することにより、前記楽曲の各区間における拍の存在及びテンポを実時間で推定する音響信号分析装置であって、
前記楽曲の各区間における拍の存在に関する物理量及びテンポに関する物理量の組み合わせにより分類された状態の系列として記述された確率モデルに基づいて現在の区間における拍の存在及びテンポを仮決定する拍点・テンポ仮決定手段と、
過去の区間において決定されたテンポに基づいて前記仮決定されたテンポを補正し、前記補正されたテンポに基づいて、現在の区間のテンポを決定するテンポ決定手段と、
前記決定されたテンポに基づいて、現在の区間からみた拍点までの時間に相当する拍位相を計算する拍位相計算手段と、
拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間及びその区間の後続の１つ又は複数の区間において、前記拍位相の絶対値を所定の補正値だけ小さくするように補正する拍位相補正手段と、
前記拍位相の正負符号が変化した区間に拍が存在するとして決定して、前記決定結果を前記決定したテンポとともに出力する拍点・テンポ出力手段と、を備えた音響信号分析装置。
【請求項２】
請求項１に記載の音響信号分析装置において、
前記テンポ決定手段は、
過去の区間において決定されたテンポと前記仮決定されたテンポの２倍のテンポとの差分が所定の閾値より小さいとき、前記仮決定されたテンポの２倍のテンポに基づいて現在の区間のテンポを決定し、
過去の区間において決定されたテンポと前記仮決定されたテンポの半分のテンポとの差分が所定の閾値より小さいとき、前記仮決定されたテンポの半分のテンポに基づいて現在の区間のテンポを決定し、
過去の区間において決定されたテンポと前記仮決定されたテンポの２倍のテンポとの差分が所定の閾値以上であり、且つ過去の区間において決定されたテンポと前記仮決定されたテンポの半分のテンポとの差分が所定の閾値以上であるとき、前記仮決定されたテンポに基づいて現在の区間のテンポを決定する、音響信号分析装置。
【請求項３】
請求項１又は２に記載の音響信号分析装置において、
前記拍位相補正手段は、
拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間における前記拍位相を補正すべき位相角として決定する補正量決定手段と、
拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間及びその区間の後続の１つ又は複数の区間において、前記補正すべき位相角の絶対値が前記所定の補正値だけ小さくなるように、前記補正すべき位相角を更新する補正量更新手段と、を備え、
拍が存在すると仮決定された区間であって、拍位相が前記所定の範囲に含まれる区間から前記拍位相の補正を開始し、前記補正すべき位相角が所定の位相角以下になったとき前記拍位相の補正を終了する、音響信号分析装置。
【請求項４】
楽曲全体を複数の区間に分割したときの各区間の演奏音を表わす音響信号を取り込むごとに前記取り込んだ音響信号を分析することにより、前記楽曲の各区間における拍の存在及びテンポを実時間で推定する音響信号分析方法であって、
前記楽曲の各区間における拍の存在に関する物理量及びテンポに関する物理量の組み合わせにより分類された状態の系列として記述された確率モデルに基づいて現在の区間における拍の存在及びテンポを仮決定する拍点・テンポ仮決定ステップと、
過去の区間において決定されたテンポに基づいて前記仮決定されたテンポを補正し、前記補正されたテンポに基づいて、現在の区間のテンポを決定するテンポ決定ステップと、
前記決定されたテンポに基づいて、現在の区間からみた拍点までの時間に相当する拍位相を計算する拍位相計算ステップと、
拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間及びその区間の後続の１つ又は複数の区間において、前記拍位相の絶対値を所定の補正値だけ小さくするように補正する拍位相補正ステップと、
前記拍位相の正負符号が変化した区間に拍が存在するとして決定して、前記決定結果を前記決定したテンポとともに出力する拍点・テンポ出力ステップと、を含む音響信号分析方法。
【請求項５】
楽曲全体を複数の区間に分割したときの各区間の演奏音を表わす音響信号を取り込むごとに前記取り込んだ音響信号を分析することにより、前記楽曲の各区間における拍の存在及びテンポを実時間で推定する音響信号分析装置に適用されるコンピュータプログラムであって、前記音響信号分析装置が備えるコンピュータに、
前記楽曲の各区間における拍の存在に関する物理量及びテンポに関する物理量の組み合わせにより分類された状態の系列として記述された確率モデルに基づいて現在の区間における拍の存在及びテンポを仮決定する拍点・テンポ仮決定ステップと、
過去の区間において決定されたテンポに基づいて前記仮決定されたテンポを補正し、前記補正されたテンポに基づいて、現在の区間のテンポを決定するテンポ決定ステップと、
前記決定されたテンポに基づいて、現在の区間からみた拍点までの時間に相当する拍位相を計算する拍位相計算ステップと、
拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間及びその区間の後続の１つ又は複数の区間において、前記拍位相の絶対値を所定の補正値だけ小さくするように補正する拍位相補正ステップと、
前記拍位相の正負符号が変化した区間に拍が存在するとして決定して、前記決定結果を前記決定したテンポとともに出力する拍点・テンポ出力ステップと、実行させる音響信号分析装プログラム
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲の演奏音を表わす音響信号を取り込みつつ前記取り込んだ音響信号を分析することにより、拍の位置及びテンポを実時間で推定する音響信号分析装置、音響信号分析方法、及び音響信号分析装置が備えるコンピュータに適用されるコンピュータプログラムに関する。
【背景技術】
【０００２】
従来から、例えば、下記非特許文献１に示されているように、楽曲の演奏音を表わす音響信号を分析することにより、拍点を推定する音響信号分析装置は知られている。この音響信号分析装置においては、拍の時刻と１小節内における拍の位置とを隠れ状態とした隠れマルコフモデルが設定されている。そして、最尤の状態経路が計算されて、拍点が決定される。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Ｇｅｏｆｆｒｏｙ  Ｐｅｅｔｅｒｓ，Ｈｅｌｅｌｎｅ  Ｐａｐａｄｏｐｏｕｌｏｓ、「Ｓｉｍｕｌｔａｎｅｏｓ  ｂｅａｔ  ａｎｄ  ｄｏｗｎｂｅａｔ−ｔｒａｃｋｉｎｇ  ｕｓｉｎｇ  ａ  ｐｒｏｂａｂｉｌｉｓｔｉｃ  ｆｒａｍｅｗｏｒｋ：  ｔｈｅｏｒｙ  ａｎｄ  ｌａｒｇｅ−ｓｃａｌｅ  ｅｖａｌｕａｔｉｏｎ」、ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ａｕｄｉｏ，Ｓｐｅｅｃｈ  ａｎｄ  Ｌａｎｇｕａｇｅ  Ｐｒｏｃｅｓｓｉｏｎｇ、２０１１年８月、ｖｏｌ．１９、ｉｓｓｕｅ６、ｐ．１７５４−１７６９
【発明の概要】
【０００４】
上記非特許文献１に記載の音響信号分析装置においては、楽曲のテンポが既知である必要がある。また、楽曲全体の音響信号を取り込んだ後でなければ、拍点を推定することができない。つまり、上記非特許文献１に記載の音響信号分析装置は、拍点及びテンポを実時間で推定することができない。
【０００５】
本発明は上記問題に対処するためになされたもので、その目的は、拍点及びテンポを実時間で精度良く推定することができる音響信号分析装置を提供することにある。なお、下記本発明の各構成要件の記載においては、本発明の理解を容易にするために、実施形態の対応箇所の符号を括弧内に記載しているが、本発明の各構成要件は、実施形態の符号によって示された対応箇所の構成に限定解釈されるべきものではない。
【０００６】
上記目的を達成するために、本発明の特徴は、楽曲全体を複数の区間（ｔｉ）に分割したときの各区間の演奏音を表わす音響信号を取り込むごとに前記取り込んだ音響信号を分析することにより、前記楽曲の各区間における拍の存在及びテンポを実時間で推定する音響信号分析装置（１０）であって、前記楽曲の各区間における拍の存在に関する物理量及びテンポに関する物理量の組み合わせにより分類された状態（ｑ）の系列として記述された確率モデルに基づいて現在の区間における拍の存在及びテンポを仮決定する拍点・テンポ仮決定手段（Ｓ１４）と、過去の区間において決定されたテンポに基づいて前記仮決定されたテンポ（ωｉｎ）を補正し、前記補正されたテンポに基づいて、現在の区間のテンポ（ωｔａｒｇｅｔ、ω）を決定するテンポ決定手段（Ｓ１５）と、前記決定されたテンポに基づいて、現在の区間からみた拍点までの時間に相当する拍位相（θ）を計算する拍位相計算手段（Ｓ１７、Ｓ１８）と、拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間及びその区間の後続の１つ又は複数の区間において、前記拍位相の絶対値を所定の補正値だけ小さくするように補正する拍位相補正手段（Ｓ１６）と、前記拍位相の正負符号が変化した区間に拍が存在するとして決定して、前記決定結果を前記決定したテンポとともに出力する拍点・テンポ出力手段（Ｓ１９、Ｓ２０）と、を備えた音響信号分析装置としたことにある。
【０００７】
この場合、テンポ決定手段は、過去の区間において決定されたテンポと前記仮決定されたテンポの２倍のテンポとの差分が所定の閾値より小さいとき、前記仮決定されたテンポの２倍のテンポに基づいて現在の区間のテンポを決定し、過去の区間において決定されたテンポと前記仮決定されたテンポの半分のテンポとの差分が所定の閾値より小さいとき、前記仮決定されたテンポの半分のテンポに基づいて現在の区間のテンポを決定し、過去の区間において決定されたテンポと前記仮決定されたテンポの２倍のテンポとの差分が所定の閾値以上であり、且つ過去の区間において決定されたテンポと前記仮決定されたテンポの半分のテンポとの差分が所定の閾値以上であるとき、前記仮決定されたテンポに基づいて現在の区間のテンポを決定するとよい。
【０００８】
また、この場合、拍位相補正手段は、拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間における前記拍位相を補正すべき位相角として決定する補正量決定手段（Ｓ１６３〜Ｓ１６６）と、拍が存在すると仮決定された区間であって、拍位相が所定の範囲に含まれる区間及びその区間の後続の１つ又は複数の区間において、前記補正すべき位相角の絶対値が前記所定の補正値だけ小さくなるように、前記補正すべき位相角を更新する補正量更新手段（Ｓ１６８）と、を備え、拍が存在すると仮決定された区間であって、拍位相が前記所定の範囲に含まれる区間から前記拍位相の補正を開始し、前記補正すべき位相角が所定の位相角以下になったとき前記拍位相の補正を終了するとよい。
【０００９】
上記のような確率モデルに基づいて仮決定されたテンポは、真のテンポのＭ倍又は１／Ｍ倍（「Ｍ」は整数）のテンポである可能性がある。とくに、真のテンポの２倍又は１／２倍のテンポである可能性がある。また、仮決定された拍点は、真の拍点から半拍分ずれた時点（つまり、裏拍）である可能性がある。また、真の拍点の付近の複数のフレームにおいて拍点が存在すると仮決定される可能性がある。
【００１０】
本発明によれば、過去のフレームにおけるテンポの値の最終的な推定結果に基づいて、現フレームおいて仮決定されたテンポ（仮テンポ）の値が補正される。これにより、現フレームのテンポが真のテンポのＭ倍又は１／Ｍ倍のテンポであると誤推定されることが抑制される。
【００１１】
例えば、現フレームにおける仮テンポの値が１つ前のフレームにおいて最終的に推定されたテンポの値と同一とみなせる場合には、現フレームにおけるテンポの最終的な推定値が仮テンポの値に基づいて設定される。また、現フレームにおける仮テンポの値が１つ前のフレームにおいて最終的に推定されたテンポの値の２倍程度である場合には、現フレームにおけるテンポの最終的な推定値が仮テンポの１／２倍の値に基づいて設定される。また、現フレームにおける仮テンポの値が１つ前のフレームにおいて最終的に推定されたテンポの値の１／２倍程度である場合には、現フレームにおけるテンポの最終的な推定値が仮テンポの２倍の値に基づいて設定される。これにより、現在のフレームのテンポが真のテンポの２倍又は半分のテンポであると誤推定されることが抑制される。
【００１２】
また、拍点が存在すると仮決定された区間においては、拍位相は「０」であるべきである。そこで、拍位相を補正するようにした。ただし、拍位相が所定の範囲に含まれる場合にのみ拍位相を補正する。例えば、以下のような場合には、拍位相を補正しないようにするとよい。
【００１３】
上記のような確率モデルに基づいて拍点を推定する場合、拍位相が「０」に近い区間であって、連続又は近接する複数の区間に拍が存在すると仮決定される可能性が高い。このとき拍位相を補正すると、拍点の推定精度が低下する可能性がある。そこで、この場合は、拍位相を補正しないように構成するとよい。これにより、拍位相が「０」に近い複数の区間に拍が存在すると誤推定されることが抑制される。また、半拍分のずれが生じている可能性が高いと考えられる区間では、拍位相を補正しないように構成するとよい。
【００１４】
したがって、上記のように構成された音響信号分析装置によれば、拍点及びテンポを実時間で精度良く推定することができる。
【００１５】
また、本発明は、音響信号分析装置の発明に限られず、音響信号分析方法、及び音響信号分析装置が備えるコンピュータに適用されるコンピュータプログラムとしても実施可能である。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係る音響信号分析装置の構成を表わすブロック図である。
【図２】音響信号の例を示すグラフである。
【図３】拍点・テンポ推定プログラムのフローチャートである。
【図４】拍点及びテンポを仮決定するための隠れマルコフモデルの概念図である。
【図５】コムフィルタのブロック図である。
【図６】ＢＰＭ特徴量の計算結果を示すグラフである。
【図７】テンプレートの構成を示す表である。
【図８】時間座標系における現フレームの位置を示す概念図である。
【図９】循環座標系における現フレームの位置を示す概念図である。
【図１０】テンポ補正プログラムのフローチャートである。
【図１１】拍位相補正プログラムのフローチャートである。
【図１２】領域Ａ及びＢの範囲を示す概念図であって、現在の拍位相が領域Ａに含まれる例を示す概念図である。
【図１３】領域Ａ及びＢの範囲を示す概念図であって、現在の拍位相が領域Ｂに含まれる例を示す概念図である。
【図１４】領域Ｃの範囲を示す概念図である。
【図１５】領域Ｄの範囲を示す概念図である。
【図１６】仮テンポが推定テンポの２倍であるときの領域Ｅの範囲を示す概念図である。
【図１７】仮テンポが推定テンポの３倍であるときの領域Ｅの範囲を示す概念図である。
【図１８】拍位相θ及び補正量Δθの推移及び拍点の推定結果を示すグラフである。
【図１９】拍位相θ及び補正量Δθの推移を示す表である。
【図２０】仮決定されたテンポが、真のテンポの半分のテンポ、又は真のテンポの倍のテンポである例を示すグラフである。
【図２１】仮決定された拍点が、真の拍点から半拍分ずれた時点である例を示すグラフである。
【図２２】真の拍点の付近の複数のフレームにおいて拍点が存在すると仮決定された例を示すグラフである。
【発明を実施するための形態】
【００１７】
本発明の一実施形態に係る音響信号分析装置１０について説明する。音響信号分析装置１０は、楽曲の演奏音を表わす音響信号を取り込みつつ前記取り込んだ音響信号を分析することにより、拍の位置及びテンポを実時間で推定する。
【００１８】
音響信号分析装置１０は、図１に示すように、入力操作子１１、コンピュータ部１２、表示器１３、記憶装置１４、外部インターフェース回路１５及びサウンドシステム１６を備えており、これらがバスＢＳを介して接続されている。
【００１９】
入力操作子１１は、オン・オフ操作に対応したスイッチ（例えば数値を入力するためのテンキー）、回転操作に対応したボリューム又はロータリーエンコーダ、スライド操作に対応したボリューム又はリニアエンコーダ、マウス、タッチパネルなどから構成される。これらの操作子は、拍点・テンポ推定の開始又は停止、拍点・テンポ推定に関する各種パラメータの設定などに用いられる。入力操作子１１を操作すると、その操作内容を表す操作情報が、バスＢＳを介して、後述するコンピュータ部１２に供給される。
【００２０】
コンピュータ部１２は、バスＢＳにそれぞれ接続されたＣＰＵ１２ａ、ＲＯＭ１２ｂ及びＲＡＭ１２ｃからなる。ＣＰＵ１２ａは、後述する拍点・テンポ推定処理の手順を表わした拍点・テンポ推定プログラムをＲＯＭ１２ｂから読み出して実行する。ＲＯＭ１２ｂには、前記プログラムに加えて、初期設定パラメータ、表示器１３に表示される画像を表わす表示データを生成するための図形データ及び文字データなどの各種データが記憶されている。ＲＡＭ１２ｃには、前記プログラムの実行時に必要なデータが一時的に記憶される。
【００２１】
表示器１３は、液晶ディスプレイ（ＬＣＤ）によって構成される。コンピュータ部１２は、図形データ、文字データなどを用いて表示すべき内容を表わす表示データを生成して表示器１３に供給する。例えば、コンピュータ部１２は、後述する拍点・テンポ推定処理により推定された拍点及びテンポを表わす表示データを表示器１３に供給する。表示器１３は、コンピュータ部１２から供給された表示データに基づいて画像を表示する。
【００２２】
また、記憶装置１４は、ＨＤＤ、ＦＤＤ、ＣＤ、ＤＶＤなどの大容量の不揮発性記録媒体と、同各記録媒体に対応するドライブユニットから構成されている。
【００２３】
外部インターフェース回路１５は、音響信号分析装置１０を電子音楽装置、パーソナルコンピュータなどの外部機器に接続可能とする接続端子を備えている。音響信号分析装置１０は、外部インターフェース回路１５を介して、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどの通信ネットワークにも接続可能である。
【００２４】
サウンドシステム１６は、ディジタル音信号を生成する音源回路、前記生成されたディジタル音信号をアナログ音信号に変換するＤ／Ａ変換器、前記変換したアナログ音信号を増幅するアンプ、及び増幅されたアナログ音信号を音響信号に変換して出力するスピーカを備えている。また、サウンドシステム１６は、楽曲の演奏により放音された楽音を収音するためのマイク、収音された楽音を表わすアナログ音信号をディジタル音信号に変換するＡ／Ｄ変換器、変換されたディジタル音信号を表わすサンプルデータを一時的に記憶するバッファも備えている。つまり、サウンドシステム１６は、楽音を所定のサンプリング周期（例えば、１／４４１００ｓｅｃ）でサンプリングし、サンプリングによって得られたサンプルデータを前記バッファに記憶する。
【００２５】
次に、音響信号分析装置１０の動作について説明する。まず、その概略について説明する。音響信号分析装置１０は、楽曲の演奏音を表わす音響信号を逐次サンプリングする。そして、楽曲全体を複数のフレームｔｉ＝０，１，２，・・・，Ｉに分割した場合（図２参照）における各フレームに相当する部分のサンプリングを終了するごと（すなわち、所定数のサンプルデータが得られるごと）に、それまでに得られたサンプルデータを用いて、現在のフレームに関する拍の有無及びテンポを推定する。なお、上記の「ｉ」はフレームのインデックスである。各フレームの長さは共通である。各フレームの長さは、例えば、４ｍｓである。また、上記の「フレーム」が本発明の「区間」に相当する。
【００２６】
次に、音響信号分析装置１０の動作について具体的に説明する。ユーザが音響信号分析装置１０の図示しない電源スイッチをオンにすると、ＣＰＵ１２ａは、図３に示す拍点・テンポ推定プログラムをＲＯＭ１２ｂから読み出して実行する。
【００２７】
次に、ＣＰＵ１２ａは、ステップＳ１１にて、音響信号分析のための初期設定を実行する。具体的には、後述するオンセット特徴量ＸＯ、ＢＰＭ特徴量ＸＢなどを一時的に記憶する領域をＲＡＭ１２ｃ内に確保する。また、ＣＰＵ１２ａは、処理対象のフレームを最初のフレームに設定する。すなわち、フレームのインデックスである「ｉ」の値を「０」に設定する。
【００２８】
次に、ＣＰＵ１２ａは、ステップＳ１２にて、サウンドシステム１６に、楽曲の演奏音を表わす音響信号のサンプリングを開始させる。
【００２９】
次に、ＣＰＵ１２ａは、ステップＳ１３にて、フレームｔｉに含まれる音響信号（サンプルデータ）をサウンドシステム１６のバッファから読み込む。ただし、フレームｔｉに含まれる全てのサンプルデータが未だサンプリングされていない場合には、全てのサンプルデータがサンプリングされるまで待機する。次に、ＣＰＵ１２ａは、ステップＳ１４にて、フレームｔｉにおける拍の有無及びテンポを仮決定する。
【００３０】
ここで、拍の有無及びテンポの仮決定手順の概略について説明する。まず、ＣＰＵ１２ａは、前記読み込んだサンプルデータを用いて、拍の有無に関する特徴を表すオンセット特徴量ＸＯ及びテンポに関する特徴を表すＢＰＭ（ｂｅａｔｓ  ｐｅｒ  ｍｉｎｕｔｅ（１分間あたりの拍数））特徴量ＸＢを計算する。そして、各フレームｔｉにおける拍周期ｂの値（テンポの逆数に比例する値）及び次の拍までのフレーム数ｎの値の組み合わせに応じて分類された状態ｑｂ，ｎの系列として記述された確率モデル（隠れマルコフモデル、図４参照）に前向きアルゴリズムを適用し、前向き変数が最大となる状態を検出する。これにより、フレームｔｉにおける拍の有無及びテンポが仮決定される。なお、拍周期ｂは、フレームの数によって表わされる。したがって、拍周期ｂの値は「１≦ｂ≦ｂｍａｘ」を満たす整数であり、拍周期ｂの値が「β」である状態では、フレーム数ｎの値は「０≦ｎ＜β」を満たす整数である。
【００３１】
次に、拍の有無及びテンポの仮決定手順について具体的に説明する。まず、ＣＰＵ１２ａは、フレームｔｉに関するオンセット特徴量ＸＯ及びＢＰＭ特徴量ＸＢを計算する。
【００３２】
フレームｔｉのオンセット特徴量ＸＯ（ｔｉ）は、次のようにして計算される。ＣＰＵ１２ａは、まず、フレームｔｉの音響信号を短時間フーリエ変換し、各周波数ビンの信号強度を計算する。次に、ＣＰＵ１２ａは、メルフィルタバンクを用いて、各周波数帯域ｆｂｘ（例えば、ｘ＝１，２，・・・，２０）の信号強度を計算する。次に、ＣＰＵ１２ａは、１つ前のフレームに対する各周波数帯域の信号強度の増加量Ｒ（ｆｂｘ，ｔｉ）を計算する。下記の式（１）に示すように、前記各周波数帯域の信号強度の増加量の総和がオンセット特徴量ＸＯ（ｔｉ）である。
【数１】
2015114360.tif 000003
【００３３】
フレームｔｉのＢＰＭ特徴量ＸＢ（ｔｉ）は、次のようにして計算される。ＣＰＵ１２ａは、まず、オンセット特徴量ＸＯ（ｔ０），ＸＯ（ｔ１）・・・をこの順にフィルタバンクＦＢＢ（図５参照）に入力する。フィルタバンクＦＢＢは、拍周期ｂの値に応じてそれぞれ設けられた複数のコムフィルタＣＦｂからなる。コムフィルタＣＦｂは、１つのデータが入力される度に１つのデータを出力する。コムフィルタＣＦｂは、過去の出力データを拍周期ｂの値に応じた個数だけ記憶するＦＩＦＯ（＝Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）メモリを有しており、入力されたデータと前記記憶手段に記憶されているデータのうちの最古のデータを所定の比率（例えば、１：１（すなわち、α＝０．５））で加算して出力する。オンセット特徴量ＸＯの系列ＸＯ（ｔ）｛＝ＸＯ（ｔ０），ＸＯ（ｔ１）・・・｝をフィルタバンクＦＢＢに入力することにより得られたデータＸＤｂの系列ＸＤｂ（ｔ）｛＝ＸＤｂ（ｔ０），ＸＤｂ（ｔ１）・・・を時系列的に逆にして、フィルタバンクＦＢＢに再度入力することにより、拍周期ｂに関するＢＰＭ特徴量の系列ＸＢｂ（ｔ）｛＝ＸＢｂ（ｔ０），ＸＢｂ（ｔ１）・・・｝が得られる。フレームｔｉのＢＰＭ特徴量ＸＢ（ｔｉ）は、拍周期ｂごとに計算されたＢＰＭ特徴量ＸＢｂ＝１，２・・・（ｔｉ）の集合として表わされる（図６参照）。
【００３４】
次に、ＣＰＵ１２ａは、前向きアルゴリズムを用いて、フレームｔｉにおける拍の有無及びテンポを仮決定する。
【００３５】
具体的には、ＣＰＵ１２ａは、まず、オンセット特徴量ＸＯ（ｔｉ）及びＢＰＭ特徴量ＸＢ（ｔｉ）の観測尤度ＬＯ（ｔｉ）及び観測尤度ＬＢ（ｔｉ）をそれぞれ計算する。ここで、オンセット特徴量ＸＯ（ｔｉ）は、次の拍点までのフレーム数ｎの値に応じて設定された正規分布に従うものとする。つまり、オンセット特徴量ＸＯの観測尤度ＬＯ（ｔｉ）は、次の拍点までのフレーム数ｎの値に応じて設定された正規分布の確率変数としてオンセット特徴量ＸＯを代入することにより計算される。例えば、フレーム数ｎの値が「０」であるときは、平均値が「３」であって、且つ分散が「１」である正規分布が用いられる。また、拍周期ｂの値が「β」であって、フレーム数ｎの値が「β／２」であるときは、平均値が「１」であって、且つ分散が「１」である正規分布が用いられる。また、フレーム数ｎの値が「０」及び「β／２」のいずれの値とも異なるとき、平均値が「０」であって、且つ分散が「１」である正規分布が用いられる。
【００３６】
また、ＢＰＭ特徴量ＸＢ（ｔｉ）の観測尤度ＬＢは、拍周期ｂごとに設けられたテンプレートＴＭＰｂに対するＢＰＭ特徴量ＸＢの適合度に相当する。つまり、下記の式（２）に示すように、テンプレートＴＭＰｂとＢＰＭ特徴量ＸＢ（ｔｉ）の内積が、観測尤度ＬＢ（ｔｉ）である。なお、この演算式における「νｂ」は、オンセット特徴量ＸＯ（ｔｉ）に対するＢＰＭ特徴量ＸＢ（ｔｉ）の重みを決定する係数である。つまり、「νｂ」を大きく設定するほど、結果的に、ＢＰＭ特徴量ＸＢ（ｔｉ）が重視される。また、この演算式における「Ｚ（νｂ）」は、「νｂ」に依存する正規化係数である。つまり、前記テンプレートＴＭＰｂは、ＢＰＭ特徴量ＸＢ（ｔｉ）を構成するＢＰＭ特徴量ＸＢｂ（ｔｉ）にそれぞれ乗算される係数δｂ，γ｛＝１，２・・・｝の系列からなる（図７参照）。テンプレートＴＭＰｂを構成する係数δｂ，γのうち、インデックスγが拍周期ｂに等しい係数及び拍周期ｂの整数倍に等しい係数が極大となるように、テンプレートＴＭＰｂが設定されている。
【数２】
2015114360.tif 000004
【００３７】
次に、ＣＰＵ１２ａは、観測尤度ＬＯ（ｔｉ）と観測尤度ＬＢ（ｔｉ）との積の対数である対数観測尤度ＬＯＢ（ｔｉ）（下記の式（３）参照）を用いて、各状態に関する前向き変数を計算する。
【数３】
2015114360.tif 000005
【００３８】
なお、本実施形態においては、（拍周期ｂの値が「βｓ」であり、且つフレーム数ｎの値が「ηｓ」である状態から、拍周期ｂの値が「βｅ」であり、且つフレーム数ｎの値が「ηｅ」である状態への対数遷移確率Ｔの値は、次のように設定されている（図４参照）。「ηｅ＝０」、「βｅ＝βｓ」、かつ「ηｅ＝βｅ−１」のとき、対数遷移確率Ｔの値は、「−０．２」である。また、「ηｓ＝０」、「βｅ＝βｓ＋１」、かつ「ηｅ＝βｅ−１」のとき、対数遷移確率Ｔの値は、「−０．６」である。また、「ηｓ＝０」、「βｅ＝βｓ−１」、かつ「ηｅ＝βｅ−１」のとき、対数遷移確率Ｔの値は、「−０．６」である。また、「ηｓ＞０」、「βｅ＝βｓ」、かつ「ηｅ＝ηｓ−１」のとき、対数遷移確率Ｔの値は、「０」である。上記以外の対数遷移確率Ｔの値は、「−∞」である。すなわち、フレーム数ｎの値が「０」である状態（ηｓ＝０）から次の状態へ遷移するとき、拍周期ｂの値は「１」だけ増減され得る。このとき、フレーム数ｎの値は、遷移後の拍周期ｂの値より「１」だけ小さい値に設定される。また、フレーム数ｎの値が「０」でない状態（ηｓ≠０）から次の状態へ遷移するとき、拍周期ｂの値は変更されず、フレーム数ｎの値が「１」だけ減少する。
【００３９】
次に、ＣＰＵ１２ａは、フレームｔｉにおける各状態のうち、前向き変数の値が最大である状態ｑｍａｘに基づいて拍の有無を仮決定する。つまり、ＣＰＵ１２ａは、状態ｑｍａｘのフレーム数ｎの値が「０」であれば、フレームｔｉに拍が存在すると仮決定する。一方、状態ｑｍａｘのフレーム数ｎの値が「１」以上であれば、フレームｔｉに拍は存在しないと仮決定する。また、ＣＰＵ１２ａは、状態ｑｍａｘの拍周期ｂの値に基づいて、テンポを仮決定する。フレームｔｉに拍が存在すると仮決定した場合、ＣＰＵ１２ａは、拍の有無を表わすビートイベントフラグＢＦを「１」に設定する。一方、フレームｔｉに拍が存在しないと仮決定した場合、ＣＰＵ１２ａは、ビートイベントフラグＢＦを「０」に設定する。
【００４０】
上記のようにして仮決定されたテンポは、真のテンポの半分のテンポ、又は真のテンポの倍のテンポである可能性がある（図２０参照）。また、仮決定された拍点は、真の拍点から半拍分ずれた時点（つまり、裏拍）である可能性がある（図２１参照）。また、真の拍点の付近の複数のフレームにおいて拍点が存在すると仮決定される可能性がある（図２２参照）。すなわち、ビートイベントフラグＢＦが連続（又は近接）する複数のフレームにおいて「１」に設定される可能性がある。
【００４１】
そこで、ＣＰＵ１２ａは、以下説明するステップＳ１５乃至Ｓ１９を実行し、テンポに関する推定結果及び拍点の有無に関する推定結果を補正する。
【００４２】
ここで、図８及び図９を用いて、拍位相について説明する。上記の通り、拍周期ｂは、テンポに相当する。また、フレーム数ｎは、次の拍点までの時間に相当する。図８における１つの拍点から見て半拍分だけ前の時点から、前記１つの拍点から見て半拍分だけ後の時点までを表わす時間座標系は、図９のように循環座標系（回転座標系）として表わすことができる。すると、この循環座標系における角速度がテンポに相当する。また位相角が拍点までの時間に相当する。以下の説明では、前記仮決定されたテンポを仮テンポωｉｎ（ｒａｄ／フレーム）と表記する。また、最終的に推定されるべきテンポ（つまり、真のテンポ）を推定テンポωｔａｒｇｅｔ（ｒａｄ／フレーム）と表記する。また、テンポ補正処理において内部的に用いられる変数としてのテンポを内部テンポω（ｒａｄ／フレーム）と表記する。また、後述の拍位相補正処理及び拍点の決定処理において内部的に用いられる位相角を拍位相θ（ｒａｄ）と表記する。前記１つの拍点から半拍分だけ前の時点に相当する拍位相θの値が「−π（ｒａｄ）」であり、前記１つの拍点から半拍分だけ後の時点に相当する拍位相θの値が「π（ｒａｄ）」である。また、拍位相θは、基本的には、フレームごとに内部テンポωに相当する位相角だけ進む。ただし、詳しくは後述するように、ビートイベントフラグＢＦが「１」であるフレームにおいて拍位相θが所定の範囲に含まれる場合に拍位相θの補正が開始され、後続の１つ又は複数のフレームにおいて拍位相θが補正される。
【００４３】
まず、ＣＰＵ１２ａは、ステップＳ１５にて、図１０に示すテンポ補正処理を実行する。なお、同図においては、「判断」のステップを六角形で示す。同図に示すテンポ補正処理において、ＣＰＵ１２ａは、推定テンポωｔａｒｇｅｔ及び内部テンポωの値を次のように更新する。まず、ＣＰＵ１２ａは、仮テンポωｉｎの値が１つ前のフレームにおける推定テンポωｔａｒｇｅｔの値と同一とみなせる場合には、フレームｔｉにおける推定テンポωｔａｒｇｅｔの値を仮テンポωｉｎの値と同じ値に更新する。また、仮テンポωｉｎの値が１つ前のフレームにおける推定テンポωｔａｒｇｅｔの値の２倍程度である場合には、フレームｔｉにおける推定テンポωｔａｒｇｅｔの値を仮テンポωｉｎの１／２倍の値に更新する。また、仮テンポωｉｎの値が１つ前のフレームにおける推定テンポωｔａｒｇｅｔの値の１／２倍程度である場合には、推定テンポωｔａｒｇｅｔを仮テンポωｉｎの２倍の値に更新する。そして、内部テンポωの値を推定テンポωｔａｒｇｅｔに近づけるように補正する。
【００４４】
次に、テンポ補正処理について具体的に説明する。ＣＰＵ１２ａは、ステップＳ１５０にてテンポ補正処理を開始する。そして、ステップＳ１５１にて、仮テンポωｉｎが推定テンポωｔａｒｇｅｔの２倍程度であるか否かを判定する。具体的には、仮テンポωｉｎの半分の値と推定テンポωｔａｒｇｅｔとの差分が所定の閾値ωｔｈｒｅｓ（例えば、ωｔｈｒｅｓ＝０．０５ωｉｎ）よりも小さいか否かを判定する。仮テンポωｉｎの半分の値と推定テンポωｔａｒｇｅｔとの差分が所定の閾値ωｔｈｒｅｓよりも小さい場合には、ＣＰＵ１２ａは「Ｙｅｓ」と判定して、ステップＳ１５２にて、推定テンポωｔａｒｇｅｔを仮テンポωｉｎの半分の値に更新する。一方、ステップＳ１５１において仮テンポωｉｎの半分の値と推定テンポωｔａｒｇｅｔとの差分が所定の閾値ωｔｈｒｅｓ以上である場合には、ＣＰＵ１２ａは、「Ｎｏ」と判定して、ステップＳ１５３にて、仮テンポωｉｎが推定テンポωｔａｒｇｅｔの半分程度であるか否かを判定する。具体的には、仮テンポωｉｎの２倍の値と推定テンポωｔａｒｇｅｔとの差分が閾値ωｔｈｒｅｓよりも小さいか否かを判定する。仮テンポωｉｎの２倍の値と推定テンポωｔａｒｇｅｔとの差分が閾値ωｔｈｒｅｓよりも小さい場合には、ＣＰＵ１２ａは「Ｙｅｓ」と判定して、ステップＳ１５４にて、推定テンポωｔａｒｇｅｔを仮テンポωｉｎの２倍の値に更新する。一方、ステップＳ１５３において仮テンポωｉｎの２倍の値と推定テンポωｔａｒｇｅｔとの差分が閾値ωｔｈｒｅｓ以上である場合には、ＣＰＵ１２ａは、「Ｎｏ」と判定して、ステップＳ１５５にて、推定テンポωｔａｒｇｅｔを仮テンポωｉｎと同じ値に更新する。ただし、最初のフレームｔ０においては、推定テンポωｔａｒｇｅｔを仮テンポωｉｎと同じ値に設定する。
【００４５】
次に、ＣＰＵ１２ａは、ステップＳ１５６にて、内部テンポωの値を同図に示す更新式を用いて更新する。この更新式を用いることにより、内部テンポωの値が、現在のフレームに後続する複数のフレームにおいて指数関数的に推定テンポωｔａｒｇｅｔに近づく。なお、同更新式中の係数ρは、「０≦ρ≦１」を満たすように予め設定される。例えば、係数ρは「０．５」に設定される。係数ρは、テンポの推移の滑らかさを表わす。つまり、係数ρが小さいほど内部テンポωが推定テンポωｔａｒｇｅｔに近づく速度が遅い。ＣＰＵ１２ａはステップＳ１５７にてテンポ補正処理を終了し、メインルーチンのステップＳ１６に処理を進める。
【００４６】
次に、ＣＰＵ１２ａは、ステップＳ１６にて、図１１に示す拍位相補正処理を実行する。なお、同図においては、「判断」のステップを六角形で示す。拍位相補正処理において、ＣＰＵ１２ａは、拍位相θを次のように補正する。まず、仮テンポωｉｎと推定テンポωｔａｒｇｅｔとが同じとみなせる場合について説明する。ビートイベントフラグＢＦが「１」であるフレームｔｉにおいて拍位相θが図１２に示すように領域Ａ（ζω≦θ≦θｔｈｒｅｓ）に含まれる場合又は図１３に示すように領域Ｂ（−θｔｈｒｅｓ≦θ≦−ζω）に含まれる場合、その拍位相θが補正すべき位相角を表わす補正量Δθである。なお、係数ζは、「０≦ζ≦１」を満たすように予め設定される。例えば、係数ζは「０．５」に設定される。この場合、フレームｔｉにおいて補正量Δθだけ拍位相θを補正するのではなく、フレームｔｉ及び後続の１つ又は複数のフレームに亘って少しずつ（例えば「ζω」ずつ）拍位相θを補正する。なお、本実施形態では、「θｔｈｒｅｓ＝π／２」である。
【００４７】
また、図１４に示す領域Ｃ（−ζω≦θ≦ζω）においては、ビートイベントフラグＢＦが連続又は近接する複数のフレームにおいて「１」に設定される可能性が高い。拍位相θが領域Ｃに含まれるとき拍位相θを補正すると、拍点の推定精度が低下する可能性がある。そこで、この場合は、拍位相θを補正しない。
【００４８】
また、拍位相θが図１５に示す領域Ｄ（θｔｈｒｅｓ≦θ≦π  ｏｒ  −π≦θ≦−θｔｈｒｅｓ）に含まれていて、ビートイベントフラグＢＦが「１」に設定されたとき、半拍分のずれが生じている可能性が高い。そのため、この場合も拍位相θを補正しない。
【００４９】
次に、仮テンポωｉｎが推定テンポωｔａｒｇｅｔの「Ｍ」倍（Ｍは「２」以上の自然数）である場合について説明する。この場合、「２πｍ／Ｍ」（「ｍ」は、「０≦ｍ＜Ｍ」を満たす整数）の近傍の領域Ｅ（「２πｍ／Ｍ＋ζω／Ｍ≦θ≦２πｍ／Ｍ＋θｔｈｒｅｓ／Ｍ」及び「２πｍ／Ｍ−θｔｈｒｅｓ／Ｍ≦θ≦２πｍ／Ｍ−ζω」を「−π（ｒａｄ）」〜「π（ｒａｄ）」の範囲内にラッピングした領域：図１６（Ｍ＝２）及び図１７（Ｍ＝３）参照）が、領域Ａ及び領域Ｂ（図１２及び図１３参照）に相当する。そこで、ビートイベントフラグＢＦが「１」であるフレームｔｉにおいて拍位相θが領域Ｅに含まれる場合、その拍位相θを「Ｍ」倍し、その位相角を「−π（ｒａｄ）」〜「π（ｒａｄ）」の範囲内にラッピングする。そして、前記ラッピングされた位相角を「１／Ｍ」倍した値が、拍位相θの補正量Δθである。
【００５０】
次に、拍位相補正処理について具体的に説明する。ＣＰＵ１２ａは、ステップＳ１６０にて拍位相補正処理を開始する。次に、ＣＰＵ１２ａは、ステップＳ１６１にて、ビートイベントフラグＢＦが「１」であるか否かを判定する。ビートイベントフラグＢＦが「０」である場合、ＣＰＵ１２ａは、「Ｎｏ」と判定して、後述するステップＳ１６７に処理を進める。一方、ビートイベントフラグＢＦが「１」である場合、ＣＰＵ１２ａは、「Ｙｅｓ」と判定し、ステップＳ１６２にて、拍位相θが所定の領域（つまり、領域Ａ、Ｂ又はＥ）に含まれるか否かを判定する。拍位相θが前記所定の領域に含まれない場合、ＣＰＵ１２ａは「Ｎｏ」と判定して、後述するステップＳ１６７に処理を進める。一方、拍位相θが前記所定の領域に含まれる場合、ＣＰＵ１２ａは、「Ｙｅｓ」と判定し、ステップＳ１６３にて、同図に示す演算式に基づいて、仮テンポωｉｎと推定テンポωｔａｒｇｅｔとの比率Ｍを計算する。次に、ＣＰＵ１２ａは、ステップＳ１６４にて、現在の拍位相θに比率Ｍを乗算する。そして、ＣＰＵ１２ａは、ステップＳ１６５にて、前記乗算結果を「−π（ｒａｄ）」〜「π（ｒａｄ）」の範囲内にラッピングする。ただし、最初のフレームｔ０における拍位相θの値は、「０」とする。次に、ＣＰＵ１２ａは、ステップＳ１６６にて、前記ラッピングされた位相角を「１／Ｍ」倍することにより、拍位相θの補正量Δθを計算する。
【００５１】
次に、ＣＰＵ１２ａは、ステップＳ１６７にて、補正量Δθの絶対値が所定の範囲（ζω＜｜Δθ｜＜θｔｈｒｅｓ）に含まれるか否かを判定する。補正量Δθの絶対値が前記所定の範囲に含まれる場合には、ＣＰＵ１２ａは、ステップＳ１６８にて、同図に示す更新式に基づいて、拍位相θ及び補正量Δθを更新する。すなわち、補正量Δθが正の値である場合には、拍位相θから「ζω」に相当する位相角を減算する。一方、補正量Δθが負の値である場合には、拍位相θに「ζω」に相当する位相角を加算する。また、補正量Δθが正の値である場合には、補正量Δθから「ζω」に相当する位相角を減算する。一方、補正量Δθが負の値である場合には、補正量Δθに「ζω」に相当する位相角を加算する。そして、ＣＰＵ１２ａは、ステップＳ１６９にて、拍位相補正処理を終了してメインルーチンのステップＳ１７に処理を進める。一方、ステップＳ１６７において、補正量Δθの絶対値が前記所定の範囲に含まれない場合には、ＣＰＵ１２ａは、「Ｎｏ」と判定して、拍位相を補正することなく、ステップＳ１６９にて拍位相補正処理を終了してメインルーチンのステップＳ１７に処理を進める。
【００５２】
次に、ＣＰＵ１２ａは、ステップＳ１７にて、拍位相θを内部テンポωに相当する位相角だけ進める。次に、ＣＰＵ１２ａは、ステップＳ１８にて、「−π（ｒａｄ）」〜「π（ｒａｄ）」の範囲内に拍位相θをラッピングする。次に、ＣＰＵ１２ａは、ステップＳ１９にて、拍位相θの正負符号が変化したか否かを判定する。つまり、拍位相θが負の値から「０」へ変化したか否か、又は拍位θが負の値から正の値へ変化したか否かを判定する。拍位相θの正負符号が変化しなかった場合、ＣＰＵ１２ａは、「Ｎｏ」と判定して、後述のステップＳ２１へ処理を進める。一方、拍位相θが「０」又は拍位相θの符号が負から正へ遷移した場合には、ＣＰＵ１２ａは「Ｙｅｓ」と判定して、ステップＳ２０にて、拍イベントを出力する。例えば、現フレーム（フレームｔｉ）に拍点が存在する旨を表示器１３に表示するとともに、推定テンポωｔａｒｇｅｔの値（推定テンポωｔａｒｇｅｔに対応するＢＰＭ値）又は内部テンポωの値（内部テンポωに対応するＢＰＭ値）を現フレームのテンポとして表示器１３に表示する。そして、ステップＳ２１にて、フレームのインデックスｉをインクリメントして、処理をステップＳ１３に進める。
【００５３】
上記のようにして計算された拍位相θ及び補正量Δθの推移及び拍点の推定結果の例を図１８及び図１９に示す。この例においては、説明を簡単にするために、全てのフレームにおいて仮テンポωｉｎが一定であって、推定テンポωｔａｒｇｅｔと同値であると仮定した。また、図１８においては、ビートイベントフラグＢＦが「１」に設定されたフレームの先頭のタイミングを一点鎖線で示す。また、最終的に推定された拍点を「・」で示す。同図に示すように、ビートイベントフラグＢＦが「１」であるときであって、拍位相θが領域Ａ又はＢに含まれるときにのみ拍位相θの補正が開始される。ビートイベントフラグＢＦが「１」であるときであっても、拍位相θが領域Ｃ又はＤに含まれるときには拍位相θの補正が開始されない。
【００５４】
音響信号分析装置１０においては、仮テンポωｉｎの値が１つ前のフレームにおける推定テンポωｔａｒｇｅｔの値と同一とみなせる場合には、現フレームにおける推定テンポωｔａｒｇｅｔの値を仮テンポωｉｎの値と同じ値に更新する。また、仮テンポωｉｎの値が１つ前のフレームにおける推定テンポωｔａｒｇｅｔの値の２倍程度である場合には、現フレームにおける推定テンポωｔａｒｇｅｔの値を仮テンポωｉｎの１／２倍の値に更新する。また、仮テンポωｉｎの値が１つ前のフレームにおける推定テンポωｔａｒｇｅｔの値の１／２倍程度である場合には、推定テンポωｔａｒｇｅｔを仮テンポωｉｎの値の２倍の値に更新する。これにより、現在のフレームのテンポが真のテンポの２倍又は半分のテンポであると誤推定することが抑制される。
【００５５】
ビートイベントフラグＢＦが「１」であるフレームｔｉにおいて拍位相θが領域Ａ又は領域Ｂに含まれる場合、拍位相θは「０」であるべきである。そこで、拍位相θを補正するようにした。ただし、フレームｔｉにおいて補正量Δθだけ拍位相θを補正するのではなく、フレームｔｉ及び後続する複数のフレームに亘って少しずつ拍位相θを補正する。
【００５６】
また、領域Ｃにおいては、ビートイベントフラグＢＦが連続又は近接する複数のフレームにおいて「１」に設定される可能性が高い。拍位相θが領域Ｃに含まれるとき拍位相θを補正すると、拍点の推定精度が低下する可能性がある。そこで、この場合は、拍位相θを補正しないようにした。これにより、拍位相θが「０」に近い複数のフレームに拍点が存在すると誤推定することを抑制できる。
【００５７】
また、拍位相θが領域Ｄに含まれていて、ビートイベントフラグＢＦが「１」に設定されたとき、半拍分のずれが生じている可能性が高い。そのため、この場合も拍位相θを補正しないようにした。
【００５８】
ただし、仮テンポωｉｎが推定テンポωｔａｒｇｅｔの「Ｍ」倍（Ｍは「２」以上の自然数）である場合もある。そこで、ビートイベントフラグＢＦが「１」であるフレームｔｉにおいて拍位相θが領域Ｅに含まれる場合、その拍位相θを「Ｍ」倍し、その位相角を「−π（ｒａｄ）」〜「π（ｒａｄ）」の範囲内にラッピングする。そして、前記ラッピングされた位相角を「１／Ｍ」倍した値を、拍位相θの補正量Δθとするように構成した。
【００５９】
これにより、裏拍を表拍であると誤推定されることを抑制できる。また、真の拍点の付近の複数のフレームにおいて拍点が存在すると誤推定されることを抑制できる。したがって、上記のように構成された音響信号分析装置１０によれば、拍点及びテンポを実時間で精度良く推定することができる。
【００６０】
さらに、本発明の実施にあたっては、上記実施形態に限定されるものではなく、本発明の目的を逸脱しない限りにおいて種々の変更が可能である。
【００６１】
例えば、拍の有無及びテンポを仮決定する手法は、上記実施形態に限られない。離散的な状態変数を用いた確率モデルに前向きアルゴリズムを適用して拍の有無及びテンポを仮決定する手法であれば、どのような手法であっても採用可能である。
【００６２】
また、上記実施形態では、拍位相θを内部テンポωに相当する位相角だけ進めるステップＳ１７は、拍位相補正処理の後に実行されているが、テンポ補正処置と拍位相補正処理との間に実行されてもよい。
【符号の説明】
【００６３】
１０・・・音響信号分析装置、１２・・・コンピュータ部、１３・・・表示器、１６・・・サウンドシステム  、Ａ，Ｂ，Ｃ，Ｄ，Ｅ・・・領域、ｂ・・・拍周期、ＢＦ・・・ビートイベントフラグ、Ｍ・・・比率、ｎ・・・フレーム数、ｑｂ，ｎ・・・状態、ｔｉ・・・フレーム、Δθ・・・補正量、ζ・・・係数、θ・・・拍位相、ρ・・・係数、ω・・・内部テンポ、ωｉｎ・・・・仮テンポ、ωｔａｒｇｅｔ・・・推定テンポ、ωｔｈｒｅｓ・・・閾値
【図１】
2015114360.tif 000006
【図２】
2015114360.tif 000007
【図３】
2015114360.tif 000008
【図４】
2015114360.tif 000009
【図５】
2015114360.tif 000010
【図６】
2015114360.tif 000011
【図７】
2015114360.tif 000012
【図８】
2015114360.tif 000013
【図９】
2015114360.tif 000014
【図１０】
2015114360.tif 000015
【図１１】
2015114360.tif 000016
【図１２】
2015114360.tif 000017
【図１３】
2015114360.tif 000018
【図１４】
2015114360.tif 000019
【図１５】
2015114360.tif 000020
【図１６】
2015114360.tif 000021
【図１７】
2015114360.tif 000022
【図１８】
2015114360.tif 000023
【図１９】
2015114360.tif 000024
【図２０】
2015114360.tif 000025
【図２１】
2015114360.tif 000026
【図２２】
2015114360.tif 000027