(57)【要約】【課題】楽曲の小節位置を正確に判定する。【解決手段】楽曲の全拍位置に対し仮拍番号を割り当てると共に、拍子数Ｎに応じたＮ個の変数を生成する前処理（Ｓ０１）と、楽曲波形の楽曲内における最初のピーク位置である第１ピーク位置と当該第１ピーク位置の次のピーク位置とのピーク位置間隔が楽曲の拍間隔に近い場合、第１ピーク位置に最も近い仮拍番号に対応する変数に点数を加算する第１ピーク位置処理（Ｓ０２）と、楽曲内におけるブレイク区間明けの最初のピーク位置である第２ピーク位置と当該第２ピーク位置の次のピーク位置とのピーク位置間隔が楽曲の拍間隔に近い場合、第２ピーク位置に最も近い仮拍番号に対応する変数に点数を加算する第２ピーク位置処理（Ｓ０３）と、最も多く加算された変数に対応する仮拍番号の拍位置を小節頭位置として判定する小節頭候補評価処理（Ｓ０４）と、を実行する。【選択図】図２
2014010309.tif 000002
【特許請求の範囲】
【請求項１】
楽曲の全拍位置に対し、先頭拍位置から仮拍番号を割り当てると共に、拍子数Ｎに応じたＮ個の変数を生成する前処理ステップと、
楽曲波形の前記楽曲内における最初のピーク位置である第１ピーク位置と、前記楽曲内におけるブレイク区間明けの最初のピーク位置である第２ピーク位置を検出するピーク位置検出ステップと、
前記第１ピーク位置と当該第１ピーク位置の次のピーク位置とのピーク位置間隔が前記第１ピーク位置近傍の拍間隔に近い場合、前記第１ピーク位置に最も近い仮拍番号に対応する前記変数に点数を加算する第１加算ステップと、
前記第２ピーク位置と当該第２ピーク位置の次のピーク位置とのピーク位置間隔が前記第２ピーク位置近傍の拍間隔に近い場合、前記第２ピーク位置に最も近い仮拍番号に対応する前記変数に点数を加算する第２加算ステップと、
前記Ｎ個の変数のうち、前記第１加算ステップおよび前記第２加算ステップにより最も多く加算された前記変数に対応する前記仮拍番号の拍位置を小節頭位置として判定する小節位置判定ステップと、を実行することを特徴とする小節位置判定方法。
【請求項２】
前記第１加算ステップは、前記第２加算ステップに対して、加算する前記点数の重み付けが大きいことを特徴とする請求項１に記載の小節位置判定方法。
【請求項３】
前記第１加算ステップおよび前記第２加算ステップは、それぞれ前記第１ピーク位置および前記第２ピーク位置の振幅値であるピークレベルに応じて、前記点数を加算することを特徴とする請求項１または２に記載の小節位置判定方法。
【請求項４】
前記第１加算ステップは、前記第１ピーク位置と当該第１ピーク位置の次のピーク位置である２番目ピーク位置とのピーク位置間隔が前記第１ピーク位置近傍の拍間隔の２倍に近い場合、前記第１ピーク位置に最も近い仮拍番号に対応する前記変数に点数を加算することを特徴とする請求項１ないし３のいずれか１項に記載の小節位置判定方法。
【請求項５】
前記第１加算ステップは、前記第１ピーク位置と前記２番目ピーク位置の次のピーク位置である３番目ピーク位置とのピーク位置間隔、または前記２番目ピーク位置と前記３番目ピーク位置の次のピーク位置である４番目ピーク位置とのピーク位置間隔が前記第１ピーク位置近傍の拍間隔に近い場合、前記第１ピーク位置に最も近い仮拍番号に対応する前記変数に点数を加算することを特徴とする請求項４に記載の小節位置判定方法。
【請求項６】
前記第２加算ステップは、前記第２ピーク位置と当該第２ピーク位置の次のピーク位置である２番目ピーク位置とのピーク位置間隔が前記第２ピーク位置近傍の拍間隔の２倍に近い場合、前記第２ピーク位置に最も近い仮拍番号に対応する前記変数に点数を加算することを特徴とする請求項１ないし３のいずれか１項に記載の小節位置判定方法。
【請求項７】
前記第２加算ステップは、前記第２ピーク位置と前記２番目ピーク位置の次のピーク位置である３番目ピーク位置とのピーク位置間隔、または前記２番目ピーク位置と前記３番目ピーク位置の次のピーク位置である４番目ピーク位置とのピーク位置間隔が前記第２ピーク位置近傍の拍間隔に近い場合、前記第２ピーク位置に最も近い仮拍番号に対応する前記変数に点数を加算することを特徴とする請求項６に記載の小節位置判定方法。
【請求項８】
前記ピーク位置検出ステップは、前記楽曲波形の低域におけるピーク位置のうち、ピーク位置の振幅値であるピークレベルが所定の閾値を超えるピーク位置の中から、前記第１ピーク位置および前記第２ピーク位置を検出することを特徴とする請求項１ないし７のいずれか１項に記載の小節位置判定方法。
【請求項９】
楽曲の全拍位置に対し、先頭拍位置から仮拍番号を割り当てると共に、拍子数Ｎに応じたＮ個の変数を生成する前処理手段と、
楽曲波形の前記楽曲内における最初のピーク位置である第１ピーク位置と、前記楽曲内におけるブレイク区間明けの最初のピーク位置である第２ピーク位置を検出するピーク位置検出手段と、
前記第１ピーク位置と当該第１ピーク位置の次のピーク位置とのピーク位置間隔が前記第１ピーク位置近傍の拍間隔に近い場合、前記第１ピーク位置に最も近い仮拍番号に対応する前記変数に点数を加算する第１加算手段と、
前記第２ピーク位置と当該第２ピーク位置の次のピーク位置とのピーク位置間隔が前記第２ピーク位置近傍の拍間隔に近い場合、前記第２ピーク位置に最も近い仮拍番号に対応する前記変数に点数を加算する第２加算手段と、
前記Ｎ個の変数のうち、前記第１加算手段および前記第２加算手段により最も多く加算された前記変数に対応する前記仮拍番号の拍位置を小節頭位置として判定する小節位置判定手段と、を備えたことを特徴とする小節位置判定装置。
【請求項１０】
コンピューターに、請求項１ないし８のいずれか１項に記載の小節位置判定方法における各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲の小節位置を自動判定する小節位置判定方法、小節位置判定装置およびプログラムに関するものである。
【背景技術】
【０００２】
従来、この種の技術として、楽曲の第１拍目の時刻を検出する第１拍目時刻検出部と、小節時間長を算出する基準小節時間長算出部と、小節の最適終端時刻を検出する小節終端時刻検出部と、を備えた小節境界時刻抽出装置が提案されている（例えば、特許文献１）。また、リズムを付与するリズム付与手段と、各パルス点に重みを付けたパルススケールをリズム制御パラメータとして発生するパルススケール発生手段と、パルススケールを用いてリズムを評価するリズム評価手段と、を備えたリズム分析装置が提案されている（例えば、特許文献２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０５−１００６６１号公報
【特許文献２】特開平０６−１６７９７７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところが、上記特許文献１の技術は、楽曲の１拍目を検出する手法についての言及のみであるため、裏拍や中途拍からビートが始まる楽曲では小節位置を誤検出してしまう。また、上記特許文献２の技術は、いくつかのジャンル固有のリズムパターンで重み付けを行ったパルススケールを用い、点数で評価しているため、用意されたリズムパターン以外の楽曲の場合は検出精度が落ちてしまう。
【０００５】
本発明は、上記の問題点に鑑み、特定のリズムパターンとの照合を行なうことなく、且つ裏拍や中途拍からビートが始まる楽曲でも小節位置を正確に判定可能な小節位置判定方法、小節位置判定装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の小節位置判定方法は、楽曲の全拍位置に対し、先頭拍位置から仮拍番号を割り当てると共に、拍子数Ｎに応じたＮ個の変数を生成する前処理ステップと、楽曲波形の楽曲内における最初のピーク位置である第１ピーク位置と、楽曲内におけるブレイク区間明けの最初のピーク位置である第２ピーク位置を検出するピーク位置検出ステップと、第１ピーク位置と当該第１ピーク位置の次のピーク位置とのピーク位置間隔が第１ピーク位置近傍の拍間隔に近い場合、第１ピーク位置に最も近い仮拍番号に対応する変数に点数を加算する第１加算ステップと、第２ピーク位置と当該第２ピーク位置の次のピーク位置とのピーク位置間隔が第２ピーク位置近傍の拍間隔に近い場合、第２ピーク位置に最も近い仮拍番号に対応する変数に点数を加算する第２加算ステップと、Ｎ個の変数のうち、第１加算ステップおよび第２加算ステップにより最も多く加算された変数に対応する仮拍番号の拍位置を小節頭位置として判定する小節位置判定ステップと、を実行することを特徴とする。
【０００７】
本発明の小節位置判定装置は、楽曲の全拍位置に対し、先頭拍位置から仮拍番号を割り当てると共に、拍子数Ｎに応じたＮ個の変数を生成する前処理手段と、楽曲波形の楽曲内における最初のピーク位置である第１ピーク位置と、楽曲内におけるブレイク区間明けの最初のピーク位置である第２ピーク位置を検出するピーク位置検出手段と、第１ピーク位置と当該第１ピーク位置の次のピーク位置とのピーク位置間隔が第１ピーク位置近傍の拍間隔に近い場合、第１ピーク位置に最も近い仮拍番号に対応する変数に点数を加算する第１加算手段と、第２ピーク位置と当該第２ピーク位置の次のピーク位置とのピーク位置間隔が第２ピーク位置近傍の拍間隔に近い場合、第２ピーク位置に最も近い仮拍番号に対応する変数に点数を加算する第２加算手段と、Ｎ個の変数のうち、第１加算手段および第２加算手段により最も多く加算された変数に対応する仮拍番号の拍位置を小節頭位置として判定する小節位置判定手段と、を備えたことを特徴とする。
【０００８】
これらの構成によれば、楽曲内における最初のピーク位置だけでなく、ブレイク区間明けの最初のピーク位置も考慮し、楽曲全体で小節頭位置を評価するため、裏拍や中途拍からビートが始まる楽曲でも小節位置を正確に判定することができる。また、第１ピーク位置または第２ピーク位置とその次のピーク位置とのピーク位置間隔が、それぞれ第１ピーク位置または第２ピーク位置近傍の拍間隔に近いか否かで評価するため、リズムパターンとの照合を必要とせず、シンプルな判定が可能となる。
なお、「ブレイク区間」とは、楽曲波形のピーク位置が所定時間以上存在しない区間を指す。
また、楽曲内に複数のブレイク区間が存在する場合、第２加算ステップ（第２加算手段）は、各ブレイク区間明けに存在する第２ピーク位置ごとに点数の加算を行う。つまり、第２ピーク位置は、１つの楽曲内に複数存在する可能性がある。
また、「拍子数Ｎに応じたＮ個の変数」および「仮拍番号に対応する変数」とは、仮拍番号を拍子数Ｎで割った余り（０，１，・・・（Ｎ−１））を指す。
【０００９】
上記の小節位置判定方法において、第１加算ステップは、第２加算ステップに対して、加算する点数の重み付けが大きいことを特徴とする。
【００１０】
この構成によれば、第２加算ステップ（ブレイク明け）に対し、第１加算ステップ（楽曲頭）の点数の重み付けを大きくすることで、より正確な小節位置を判定することができる。
【００１１】
上記の小節位置判定方法において、第１加算ステップおよび第２加算ステップは、それぞれ第１ピーク位置および第２ピーク位置の振幅値であるピークレベルに応じて、点数を加算することを特徴とする。
【００１２】
この構成によれば、ピークレベルに応じた点数を加算することで、より正確な小節位置を判定することができる。
なお、「ピークレベルに応じた点数」とは、単純にピークレベルに比例した点数であっても良いし、ピークレベルをパラメータとした所定のアルゴリズムによって算出される点数であっても良い。また、ピークレベルの範囲と点数とを対応付けたテーブルを用意しておき、当該テーブルによって「ピークレベルに応じた点数」を規定しても良い。
【００１３】
上記の小節位置判定方法において、第１加算ステップは、第１ピーク位置と当該第１ピーク位置の次のピーク位置である２番目ピーク位置とのピーク位置間隔が第１ピーク位置近傍の拍間隔の２倍に近い場合、第１ピーク位置に最も近い仮拍番号に対応する変数に点数を加算することを特徴とする。
【００１４】
この構成によれば、楽曲頭のピーク位置が２分音符となるような楽曲もカバーすることができるため、より正確な小節位置を判定することができる。
【００１５】
上記の小節位置判定方法において、第１加算ステップは、第１ピーク位置と２番目ピーク位置の次のピーク位置である３番目ピーク位置とのピーク位置間隔、または２番目ピーク位置と３番目ピーク位置の次のピーク位置である４番目ピーク位置とのピーク位置間隔が第１ピーク位置近傍の拍間隔に近い場合、第１ピーク位置に最も近い仮拍番号に対応する変数に点数を加算することを特徴とする。
【００１６】
この構成によれば、楽曲頭のピーク位置が８分音符となるような楽曲もカバーすることができるため、より正確な小節位置を判定することができる。
【００１７】
上記の小節位置判定方法において、第２加算ステップは、第２ピーク位置と当該第２ピーク位置の次のピーク位置である２番目ピーク位置とのピーク位置間隔が第２ピーク位置近傍の拍間隔の２倍に近い場合、第２ピーク位置に最も近い仮拍番号に対応する変数に点数を加算することを特徴とする。
【００１８】
この構成によれば、楽曲のブレイク明けのピーク位置が２分音符となるような楽曲もカバーすることができるため、より正確な小節位置を判定することができる。
【００１９】
上記の小節位置判定方法において、第２加算ステップは、第２ピーク位置と２番目ピーク位置の次のピーク位置である３番目ピーク位置とのピーク位置間隔、または２番目ピーク位置と３番目ピーク位置の次のピーク位置である４番目ピーク位置とのピーク位置間隔が第２ピーク位置近傍の拍間隔に近い場合、第２ピーク位置に最も近い仮拍番号に対応する変数に点数を加算することを特徴とする。
【００２０】
この構成によれば、楽曲のブレイク明けのピーク位置が８分音符となるような楽曲もカバーすることができるため、より正確な小節位置を判定することができる。
【００２１】
上記の小節位置判定方法において、ピーク位置検出ステップは、楽曲波形の低域におけるピーク位置のうち、ピーク位置の振幅値であるピークレベルが所定の閾値を超えるピーク位置の中から、第１ピーク位置および第２ピーク位置を検出することを特徴とする。
【００２２】
この構成によれば、ピークレベルが所定の閾値を超えるピーク位置の中から、第１ピーク位置および第２ピーク位置を検出することで、小節位置の誤判定を防止することができる。また、「低域におけるピーク位置」から、第１ピーク位置および第２ピーク位置を検出することで、「バスドラム」のリズムを検出することができ、裏拍や中途拍からビートが始まる楽曲でも小節位置を正確に判定することができる。なお、「低域」とは、バスドラムの成分が強い周波数帯域を指す。
【００２３】
本発明のプログラムは、コンピューターに、上記の小節位置判定方法における各ステップを実行させることを特徴とする。
【００２４】
このプログラムを用いることにより、特定のリズムパターンとの照合を行なうことなく、且つ裏拍や中途拍からビートが始まる楽曲でも小節位置を正確に判定可能な小節位置判定方法を実現できる。
【図面の簡単な説明】
【００２５】
【図１】本発明の一実施形態に係る楽曲解析装置の簡易ブロック図である。
【図２】小節位置判定処理のメインフローチャートである。
【図３】小節位置判定処理のサブフローチャート（前処理）である。
【図４】小節位置判定処理のサブフローチャート（第１ピーク位置処理）である。
【図５】小節位置判定処理のサブフローチャート（第２ピーク位置処理）である。
【図６】図５に続く、小節位置判定処理のサブフローチャートである。
【図７】小節位置判定処理のサブフローチャート（小節頭候補評価処理）である。
【図８】（ａ）は、楽曲全体波形を示す図であり、（ｂ）は、曲頭の低域エンベロープを示す図であり、（ｃ）は、ブレイク明けの低域エンベロープを示す図である。
【図９】（ａ）は、ピーク検出データを示す図であり、（ｂ）は、ピーク値が平均値以下のデータを除いた有効ピーク検出データを示す図である。
【図１０】（ａ）は、曲頭の低域エンベロープ上における拍位置を示す図であり、（ｂ）は、曲頭の低域エンベロープ上における小節位置を示す図である。
【発明を実施するための形態】
【００２６】
以下、本発明の一実施形態に係る小節位置判定方法、小節位置判定装置およびプログラムについて、添付図面を参照しながら詳細に説明する。図１は、本発明の小節位置判定装置を適用した楽曲解析装置１の簡易ブロック図である。本発明の楽曲解析装置１は、既成楽曲の波形データ（ＣＤからリッピングした音声データまたはｍｐ３データ、録音したデジタルデータなど、オーディオ信号を量子化したデータ）の小節位置を自動検出するものである。
【００２７】
同図に示すように、楽曲解析装置１は、解析部１０、入力部２０および表示部３０から成る。入力部２０は、キーボードやマウス等により実現され、楽曲解析に必要な各種情報（ジャンル種別、拍子数など）を入力する。また、表示部３０は、ディスプレイ等により実現され、楽曲解析結果（楽曲波形、拍位置、小節位置など）を表示する。
【００２８】
解析部１０は、ＢＰＭ（Beats  Per  Minute）解析部１１、拍位置解析部１２および小節位置解析部１３を含む。ＢＰＭ解析部１１は、楽曲ファイルを読み込んで、概算ＢＰＭ値を算出する。また、拍位置解析部１２は、概算ＢＰＭ値と、強い音の発音位置（アタック位置）を用いて拍位置を確定すると共に、高精度ＢＰＭ値を確定する。なお、ＢＰＭおよび拍位置の解析は、公知技術を用いる。また、ＢＰＭ（拍間隔）としては、楽曲固有のＢＰＭを求めても良いが、テンポ変化する楽曲については、楽曲の区間ごとにＢＰＭを求めても良い。
【００２９】
小節位置解析部１３は、ＢＰＭ解析部１１の解析結果であるＢＰＭ値と、拍位置解析部１２の解析結果である拍位置が得られた後、拍位置の何番目が小節頭なのかを解析することで楽曲全体の小節位置をマッピングする。具体的には、リズムの主体となるバスドラム音のエネルギーが集中する低域のピーク位置を解析し、楽曲の最初に検出されたピーク位置と、ブレイク区間明けのピーク位置を検出する。そして、それぞれ重み付けした点数を配点し、楽曲全体を評価した時点で、最も点数の高い拍位置を小節頭とみなす。なお、「ブレイク区間」とは、バスドラムなどのリズム音が弱音または無音になる区間であり、本実施形態では８拍分の時間長以上ピーク位置が存在しない区間を指す。楽曲解析装置１は、解析部１０の解析により、小節位置（小節頭となる拍位置）を確定し、表示部３０への表示を行う（図１０（ｂ）参照）。
【００３０】
図２は、小節位置判定処理のメインフローチャートである。小節位置判定処理は、ＢＰＭ解析および拍位置解析を含む前処理と（Ｓ０１）、楽曲の最初のピーク位置（第１ピーク位置）の検出および配点を行う第１ピーク位置処理と（Ｓ０２）、ブレイク区間明けの最初のピーク位置（第２ピーク位置）の検出および配点を行う第２ピーク位置処理と（Ｓ０３）、配点結果に基づき小節頭を判定する小節頭候補評価処理と（Ｓ０４）、に大別される。以下、各処理について詳細に説明する。
【００３１】
図３は、前処理を示すフローチャートである。前処理では、既成楽曲の波形データ（図８（ａ）参照）を用いて、ＢＰＭ値の検出（Ｓ１１）および拍位置の検出（Ｓ１２）を行う。その後、楽曲の先頭拍位置から順に仮拍番号（１，２，３・・・Ｎ）を割り当てる（Ｓ１３）。
【００３２】
一方、Ｓ１１〜Ｓ１３と並行して、既成楽曲の波形データを低域通過フィルタ（１５０Ｈｚ  ２次ＬＰＦ（Low  Pass  Filter）に通し、ダウンサンプリングする（Ｓ１４）。さらに、絶対値をとり（Ｓ１５）、５Ｈｚ  ２次ＬＰＦを用いたエンベロープ計算工程（Ｓ１６）を経て、ピーク検出を行う（Ｓ１７）。
【００３３】
Ｓ１７のピーク検出工程では、エンベロープ計算工程（Ｓ１６）によって得られたエンベロープのピーク抽出後、ピークレベルの平均値以下となるピークを無視し、残ったピークのピーク位置（ピーク位置）およびピークレベルを検出する。つまり、図９（ａ）に示すようなピーク抽出結果が得られた場合、ピークレベルの閾値（平均値）以下となるピークを除き、図９（ｂ）に示すようなピークデータを検出する。両図において、横点線は閾値、横実線はレベル「０」を示す。また、図９（ｂ）において黒ドットが付されたピークが、残ったピークである。なお、Ｓ１７では、必ずしもピークレベルの平均値を閾値とするのではなく、ピークレベルの集合から算出される他の閾値を超えるピークレベルを検出しても良い。
【００３４】
図８（ｂ）は、楽曲の先頭部分（図８（ａ）の領域Ｅ１）において検出された低域エンベロープ波形を示している。当該低域エンベロープ波形に示すピーク位置（黒ドット）は、図９（ｂ）と同様に、ピークレベルの平均値を超えるピーク位置である。また、図１０（ａ）は、図８（ｂ）の低域エンベロープ波形に基づくピーク位置と、Ｓ１３により割り当てられた仮拍番号と、を対応付けて示している。同図において、点線縦線は拍位置を示す。また、低域エンベロープ波形の凸部頂点がピーク位置を示す。ピーク位置は、最近傍の拍位置と対応付けられる。なお、拍位置解析部１２の解析結果に基づき、拍位置が正しく取れていると思われる区間から前後に補正した位置を拍位置として示しているため、音の無い部分（ピーク位置が無い部分）でも拍位置が発生する場合があり（同図において、最初の拍位置）、仮拍番号が付加される。
【００３５】
図３の説明に戻る。前処理では、Ｓ１１〜Ｓ１７の工程の後、楽曲の拍子数Ｎに応じたＮ個の点数箱（変数）を初期化し（Ｓ１８）、一連の処理を終了する。なお、拍子数Ｎは、予めユーザーが設定しておく構成でも良いし、固定値（予め決まった値）でも良い。本実施形態では、４拍子の楽曲を解析するものとし、４つの点数箱（点数箱番号０，１，２，３）を生成する。
【００３６】
図４は、第１ピーク位置処理を示すフローチャートである。第１ピーク位置処理では、まず楽曲の最初のピーク位置である第１ピーク位置を検出する（Ｓ２１，ピーク位置検出ステップ）。図１０（ａ）の例では、仮拍番号「２」に最も近いピーク位置である。続いて、その第１ピーク位置に最も近い仮拍番号（以下、「第１ピーク位置の仮拍番号」と称する）を拍子数で割った余りＸを算出する（Ｓ２２）。本実施形態は、拍子数「４」であるため、第１ピーク位置の仮拍番号が「２」の場合、余りＸは「２」となる。
【００３７】
次に、第１ピーク位置と当該第１ピーク位置の次のピーク位置である２番目ピーク位置との間隔が、ＢＰＭ値に基づく拍間隔の±１０％以内か否かを判別する（Ｓ２３）。ここで、「±１０％」は調整値であるため、ユーザーが設定した他の値としても良い。また、楽曲の区間ごとにＢＰＭを求めている場合、ここで言う「拍間隔」とは、第１ピーク位置近傍のＢＰＭ値に基づく拍間隔を指す（以下同様）。Ｓ２３：Ｙｅｓの場合は、第１ピーク位置のピークレベルの２倍の値を、余り番号Ｘの点数箱に加算する（Ｓ２４，第１加算ステップ）。ここで、「２倍」は重み付けとなる。当該重み付けの量も、ユーザーが設定した他の値としても良い。
【００３８】
続いて、第１ピーク位置と２番目ピーク位置との間隔が、拍間隔の２倍の±１０％以内か否かを判別する（Ｓ２５）。当該判定は、バスドラムが２分音符で入る楽曲をカバーするために行う。Ｓ２５：Ｙｅｓの場合は、第１ピーク位置のピークレベルの２倍の値を、余り番号Ｘの点数箱に加算する（Ｓ２６，第１加算ステップ）。さらに、第１ピーク位置と２番目ピーク位置の次のピーク位置である３番目ピーク位置との間隔が、拍間隔の±１０％以内か否かを判別する（Ｓ２７）。当該判定は、バスドラムが８分音符で入る楽曲をカバーするために行う。Ｓ２７：Ｙｅｓの場合は、第１ピーク位置のピークレベルの２倍の値を、余り番号Ｘの点数箱に加算する（Ｓ２８，第１加算ステップ）。以上の工程により、第１ピーク位置処理を終了する。
【００３９】
図５，６は、第２ピーク位置処理を示すフローチャートである。第２ピーク位置処理は、第１ピーク位置処理の後、次のピーク間隔を算出する（Ｓ３１）。当該算出により、ブレイク区間を検出した場合（すなわち、ピーク位置が８拍分の時間長以上存在しない区間を検出した場合）は（Ｓ３２：Ｙｅｓ）、ブレイク区間明けの最初のピーク位置である第２ピーク位置を検出する（Ｓ３３，ピーク位置検出ステップ）。第２ピーク位置を検出すると、その仮拍番号を拍子数で割った余りＹを算出する（Ｓ３４）。なお、Ｓ３２：Ｎｏの場合は、後述するＳ３３〜Ｓ４０を省略する。
【００４０】
図８（ｃ）は、楽曲のブレイク区間明け部分（図８（ａ）の領域Ｅ２）において検出された低域エンベロープ波形を示している。当該低域エンベロープ波形に示すピーク位置（黒ドット）は、図３のＳ１７により検出されたピークレベルの平均値を超えるピーク位置である。
【００４１】
続いて、第２ピーク位置と当該第２ピーク位置の次のピーク位置である２番目ピーク位置との間隔が、ＢＰＭ値に基づく拍間隔の±１０％以内か否かを判別する（Ｓ３５）。なお、「±１０％」は調整値であるが、必ずしも第１ピーク位置処理の調整値と同じ値でなくても良い。また、楽曲の区間ごとにＢＰＭを求めている場合、ここで言う「拍間隔」とは、第２ピーク位置近傍のＢＰＭ値に基づく拍間隔を指す（以下同様）。つまり、第１ピーク位置処理の調整値と第２ピーク位置処理の調整値とを、それぞれ個別にユーザーが設定可能としても良い。Ｓ３５：Ｙｅｓの場合、第２ピーク位置のピークレベルの値を、余り番号Ｙの点数箱に加算する（Ｓ３６，第２加算ステップ）。Ｓ３５：Ｎｏの場合は、Ｓ３６を省略する。
【００４２】
続いて、図６に示すように、第２ピーク位置と２番目ピーク位置との間隔が、拍間隔の２倍の±１０％以内か否かを判別する（Ｓ３７）。当該判定は、バスドラムが２分音符の楽曲をカバーするために行う。Ｓ３７：Ｙｅｓの場合は、第２ピーク位置のピークレベルの値を、余り番号Ｙの点数箱に加算する（Ｓ３８，第２加算ステップ）。さらに、第２ピーク位置と２番目ピーク位置の次のピーク位置である３番目ピーク位置との間隔が、拍間隔の±１０％以内か否かを判別する（Ｓ３９）。当該判定は、バスドラムが８分音符の楽曲をカバーするために行う。Ｓ３９：Ｙｅｓの場合は、第２ピーク位置のピークレベルの値を、余り番号Ｙの点数箱に加算する（Ｓ４０，第２加算ステップ）。その後、楽曲の最後のピークまで調べたか否かを判別し（Ｓ４１）、調べていない場合は（Ｓ４１：Ｎｏ）、次のブレイク区間を探すべく、図５のＳ３１に戻る。また、楽曲の最後のピークまで調べた場合は（Ｓ４１：Ｙｅｓ）、第２ピーク位置処理を終了する。
【００４３】
図７は、小節頭候補評価処理を示すフローチャートである。小節頭候補評価処理は、まず４つ（拍子数Ｎに応じたＮ個）の点数箱の最大値を算出する（Ｓ５１）。ここで、最大値が「０」の場合、つまり第１ピーク位置処理および第２ピーク位置処理で、どの点数箱にも点数が加算されなかった場合は（Ｓ５２：Ｙｅｓ）、第１ピーク位置の仮拍番号を拍子数で割った余りＸを、変数Shift_Valに保存する（Ｓ５３）。また、最大値が「０」ではない場合は（Ｓ５２：Ｎｏ）、点数が最大と成る点数箱番号（０，１，２，３のいずれか）を、変数Shift_Valに保存する（Ｓ５４）。そして、仮拍番号を拍子数で割った余りが変数Shift_Valと等しい仮拍番号が小節頭となるように、小節位置を確定する（Ｓ５５）。以上の工程により、小節頭候補評価処理を終了する。
【００４４】
図１０（ｂ）は、確定された小節位置を示す図である。同図において、実線縦線は小節位置（各小節内の先頭拍位置）を示す。この例は、変数Shift_Valが「２」であった場合（Ｓ５３において、第１ピーク位置の仮拍番号が２，６，１０・・・などの場合、若しくはＳ５４において、点数が最大と成る点数箱番号が「２」の場合）を示している。
【００４５】
以上説明したとおり、本実施形態によれば、楽曲内における最初のピーク位置（第１ピーク位置）だけでなく、ブレイク区間明けのピーク位置（第２ピーク位置）も考慮し、楽曲全体で小節頭位置を評価するため、裏拍や中途拍からビートが始まる楽曲でも小節位置を正確に判定することができる。また、第１ピーク位置または第２ピーク位置とその次のピーク位置とのピーク位置間隔が、楽曲の拍間隔に近いか否かで評価するため、簡易な演算処理による判定が可能となる。
【００４６】
また、第２ピーク位置処理に対し、第１ピーク位置処理の点数の重み付けを大きくすること、第１ピーク位置および第２ピーク位置のピークレベルに応じて、点数を加算すること、の工夫により、正確な小節位置を判定することができる。さらに、バスドラムが４分音符で入る楽曲だけでなく、２分音符や８分音符で入る楽曲もカバーするため、より正確な小節位置を判定することができる。
【００４７】
また、第２ピーク位置処理では、第２ピーク位置から始まる複数個のピーク位置が、バスドラムのリズムに合致しない場合でも、第２ピーク位置のピークレベルが、同一楽曲内におけるピーク最大レベルの所定割合以上である場合は、小節頭候補として点数を加算するため、小節位置の誤判定を防止できる。また、第１ピーク位置および第２ピーク位置は、ピークレベルが所定の閾値を超えることを条件として検出するため、小節位置の誤判定をさらに防止できる。
【００４８】
なお、上記の実施形態では、調整値の値（例えば、±１０％）、第１ピーク位置に対する重み付け（例えば、２倍）等について、ユーザーが設定可能としたが、これらの値を、楽曲の属性（ジャンル、拍子数、ＢＰＭ、ＫＥＹ、テンポチェンジの有無など）に応じて自動設定しても良い。つまり、楽曲の属性に応じた調整値や重み付けの値などを、楽曲解析装置１内にテーブルとして記憶しておき、ユーザーによって指定された楽曲属性、または楽曲の解析結果から得られる楽曲属性に応じて設定しても良い。
【００４９】
また、第１ピーク位置処理および第２ピーク位置処理において、バスドラムが２分音符、４分音符、８分音符で入る楽曲をカバーするための処理を行ったが、４分音符のみをカバーするなどの変更も可能である。つまり、図４のＳ２３，Ｓ２４と、Ｓ２５，Ｓ２６と、Ｓ２７，Ｓ２８と、図５のＳ３５，Ｓ３６と、図６のＳ３７，Ｓ３８と、Ｓ３９，Ｓ４０と、のそれぞれの工程について、実行するか否かを、ユーザーが選択可能としても良い。
【００５０】
また、上記の実施形態では、８分音符で入る楽曲をカバーするため、例えば第１ピーク位置処理では、第１ピーク位置と３番目ピーク位置とのピーク位置間隔が楽曲の拍間隔に近いか否かを判別したが（図４のＳ２７参照）、２番目ピーク位置と３番目ピーク位置の次のピーク位置である４番目ピーク位置とのピーク位置間隔が楽曲の拍間隔に近いか否かをさらに判別し、近い場合、点数箱への加算を行っても良い。第２ピーク位置処理においても同様である。
【００５１】
また、上記の実施形態では、楽曲解析装置１内でＢＰＭ解析および拍位置解析を行ったが、事前解析により得られた楽曲ファイルに付随するメタデータなどを用いても良い。
【００５２】
また、上記の実施形態では、ＢＰＭ値および拍位置の解析方法として、公知技術を用いるものとしたが、ＢＰＭおよび拍位置の検出精度は、小節位置の検出精度に大きく影響するため、ジャンル毎のおおまかなリズムパターンを加味して、ＢＰＭおよび拍位置の確からしさを判定しても良い。この工夫により、ダンスミュージック・ロック・ポップスなど軽音楽系の広いジャンルの楽曲の小節位置を高い精度で検出することができる。
【００５３】
また、上記に示した楽曲解析装置１の各構成要素をプログラムとして提供することが可能である。また、そのプログラムを各種記録媒体（ＣＤ−ＲＯＭ、フラッシュメモリ等）に格納して提供することも可能である。すなわち、コンピューターを楽曲解析装置１の各構成要素として機能させるためのプログラム、およびそれを記録した記録媒体も、本発明の権利範囲に含まれる。
【００５４】
また、上記の実施形態では、本発明の小節位置判定装置を楽曲解析装置１に適用した場合を例示したが、音響機器、楽曲製作ソフトウェア、楽曲データベース、Ｗｅｂサービスなどに適用しても良い。その他、本発明の要旨を逸脱しない範囲で、適宜変更が可能である。
【符号の説明】
【００５５】
１…楽曲解析装置  １０…解析部  １１…ＢＰＭ解析部  １２…拍位置解析部  １３…小節位置解析部  ２０…入力部  ３０…表示部  Ｅ１…曲頭領域  Ｅ２…ブレイク区間明け領域
【図１】
2014010309.tif 000003
【図２】
2014010309.tif 000004
【図３】
2014010309.tif 000005
【図４】
2014010309.tif 000006
【図５】
2014010309.tif 000007
【図６】
2014010309.tif 000008
【図７】
2014010309.tif 000009
【図８】
2014010309.tif 000010
【図９】
2014010309.tif 000011
【図１０】
2014010309.tif 000012