(57)【要約】【課題】計算量を軽減しつつ、大幅なテンポ変化に対応して正確に拍位置を推定できる拍位置推定装置、拍位置推定方法および拍位置推定プログラムを提供する。【解決手段】曲データの拍位置を推定する拍位置推定装置１００であって、最初の解析区間を設定する初期設定部１０１と、最初の解析区間に続く解析区間を逐次設定する解析区間設定部１０２と、各解析区間内に検証区間を設定する検証区間設定部１０３と、各解析区間または検証区間の楽曲データについて拍位置を検出する拍位置検出部１１０と、各解析区間で検出された拍位置と各解析区間内の検証区間で検出された拍位置とが一致するか否かを検証する検証部１１４と、を備え、検証結果に基づき楽曲データ全体にわたり拍位置を推定する。【選択図】図１
2010072595.tif 000002
【特許請求の範囲】
【請求項１】
楽曲データの拍位置を推定する拍位置推定装置であって、
最初の解析区間を設定する初期設定部と、
前記最初の解析区間に続く解析区間を逐次設定する解析区間設定部と、
前記各解析区間内に検証区間を設定する検証区間設定部と、
前記各解析区間または検証区間の楽曲データについて拍位置を検出する拍位置検出部と、
前記各解析区間で検出された拍位置と前記各解析区間内の検証区間で検出された拍位置とが一致するか否かを検証する検証部と、を備え、
前記検証結果に基づき楽曲データ全体にわたり拍位置を推定することを特徴とする拍位置推定装置。
【請求項２】
前記検証区間設定部は、前記各解析区間で検出された拍位置に基づいて、検証区間を設定することを特徴とする請求項１記載の拍位置推定装置。
【請求項３】
前記解析区間設定部は、前記検証結果に基づき楽曲データ全体にわたり解析区間を逐次設定することを特徴とする請求項１または請求項２記載の拍位置推定装置。
【請求項４】
前記解析区間についての拍位置の検出結果に基づき、前記解析区間の開始位置が適当か否かを判定する位置判定部を更に備え、
判定の結果、前記解析区間の開始位置が不適当である場合に、前記解析区間設定部は、開始位置をシフトさせた次の解析区間を設定することを特徴とする請求項１から請求項３のいずれかに記載の拍位置推定装置。
【請求項５】
前記解析区間設定部は、前記検証の結果、前記拍位置が一致しないときに、前記検証区間で検出された拍位置を基準にして、次の解析区間の長さおよび開始位置を設定することを特徴とする請求項１から請求項４のいずれかに記載の拍位置推定装置。
【請求項６】
前記解析区間設定部は、前記検証の結果、前記拍位置が一致しないときに、前記検証区間で検出された拍位置の間隔より標準最低拍間隔以上長い間隔を次の解析区間の長さに設定することを特徴とする請求項５記載の拍位置推定装置。
【請求項７】
前記解析区間設定部は、直前に設定された解析区間内で検出された最初の拍位置から、前記解析区間または前記検証区間で検出された拍間隔の一拍分シフトさせた位置を開始位置として次の解析区間を設定することを特徴とする請求項１から請求項６のいずれかに記載の拍位置推定装置。
【請求項８】
前記解析区間設定部は、直前に設定された解析区間内で検出された最後の拍位置から、前記解析区間または前記検証区間で検出された拍間隔の一拍分シフトさせた位置を開始位置として次の解析区間を設定することを特徴とする請求項１から請求項７のいずれかに記載の拍位置推定装置。
【請求項９】
前記解析区間設定部は、前記検証の結果、前記拍位置が一致しない区間に重ならないよう、次の解析区間の開始位置を設定することを特徴とする請求項１から請求項８のいずれかに記載の拍位置推定装置。
【請求項１０】
前記各解析区間で検出された拍位置を楽曲データ全体にわたり統合する統合部を更に備えることを特徴とする請求項１から請求項９のいずれかに記載の拍位置推定装置。
【請求項１１】
楽曲データの拍位置を推定する拍位置推定方法であって、
最初の解析区間を設定すると、
前記最初の解析区間に続く解析区間を逐次設定する解析区間設定ステップと、
前記各解析区間内に検証区間を設定する検証区間設定ステップと、
前記各解析区間または検証区間の楽曲データについて拍位置を検出する拍位置検出ステップと、
前記各解析区間で検出された拍位置と前記各解析区間内の検証区間で検出された拍位置とが一致するか否かを検証する検証ステップと、を含み、
前記検証区間設定ステップでは、前記各解析区間で検出された拍位置に基づいて、検証区間を設定し、
前記解析区間設定ステップでは、前記検証結果に基づき楽曲データ全体にわたり解析区間を逐次設定することを特徴とする拍位置推定方法。
【請求項１２】
楽曲データの拍位置を推定する拍位置推定プログラムであって、
最初の解析区間を設定する初期設定処理と、
前記最初の解析区間に続く解析区間を逐次設定する解析区間設定処理と、
前記各解析区間内に検証区間を設定する検証区間設定処理と、
前記各解析区間または検証区間の楽曲データについて拍位置を検出する拍位置検出処理と、
前記各解析区間で検出された拍位置と前記各解析区間内の検証区間で検出された拍位置とが一致するか否かを検証する検証処理と、をコンピュータに実行させ、
前記検証区間設定処理では、前記各解析区間で検出された拍位置に基づいて、検証区間を設定し、
前記解析区間設定処理では、前記検証結果に基づき楽曲データ全体にわたり解析区間を逐次設定することを特徴とする拍位置推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲データの拍位置を推定する拍位置推定装置、拍位置推定方法および拍位置推定プログラムに関する。
【背景技術】
【０００２】
従来、音楽波形信号から自動で拍やテンポ情報を抽出する手法が知られている。たとえば、特許文献１に記載される装置および方法は、入力された音楽信号に対して複数の異なる推定範囲を設定し、推定範囲ごとのテンポ推定と複数の推定範囲の各テンポ値とを統合して、音楽データについて時間的に変動するテンポ値を得ている。そのようにして、楽曲の途中でテンポが変化するような音楽データのテンポ推定を可能にしている。また、特許文献２、３および非特許文献３に記載される方法は、ＰＣＭデータから得られた音楽波形信号に対し、ＳＴＦＴに基づいた時系列パワースペクトラム、もしくはそれに相応する特徴量を計算し、自己相関および相互相関を利用することにより拍位置を推定している。
【０００３】
また、非特許文献１記載の方法では、リズム特徴量としてビートヒストグラムと呼ばれるものを特徴量としている。ビートヒストグラムは、各周波数帯域における音楽音響信号の時間包絡と自己相関から抽出されたテンポの統計量として計算される。非特許文献２に記載の方法は調和音のオンセット（音の立ち上がり）コードの遷移確率、打楽器のパターン情報に基づいて実時間での拍推定を行っている。打楽器のパターンとはスペクトルの低周波域にエネルギーが局在しているバスドラムと、広い周波数域にエネルギーが広がっているスネアドラムの組み合わせである。このような打楽器のパターン情報に基づき、音楽的に一般的な知識とされている事前情報を用いることで拍位置を推定している。
【特許文献１】特開２００３−２６３１６２号公報
【特許文献２】特開２００２−１１６７５４号公報
【特許文献３】特開２００７−３３８５１号公報
【非特許文献１】G.Tzanetakis and P.Cook, “Musical genre classification of audio signals”, IEEE, Trans on Speech and Audio Processing, Vol.10, No.5, pp.293-302
【非特許文献２】Goto.M, “An audio-based real-time beat tracking system for music with or without drum-sounds.”, Journal of New Music Research, June 2001, Vol.30, No.2, pp.159-171
【非特許文献３】Miguel Alonso, Bertrand David, and Gael Richard, “Tempo and beat estimation of music signals”, In Proc.ISMIR2004.
【発明の開示】
【発明が解決しようとする課題】
【０００４】
特許文献１には、楽曲の途中でテンポが変化するような音楽データのテンポ推定を可能にするために、多段的な分析により時系列でテンポ変動を推定可能な方法が記載されている。第１段階にて大きな信号幅によるテンポ推定を適用し、第２段階では第１段階で推定されたテンポに基づいて設定された区間に対してテンポ推定を行う。しかしながら、上記のような多段的な分析では、解析量が膨大になるため実時間推定は困難である。また、特許文献１にも記載されているように、特許文献２、３、非特許文献１〜３記載の技術では、大幅なテンポ変化に対応することができない。
【０００５】
本発明は、このような事情に鑑みてなされたものであり、計算量を軽減しつつ、大幅なテンポ変化に対応して正確に拍位置を推定できる拍位置推定装置、拍位置推定方法および拍位置推定プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）上記の目的を達成するため、本発明の拍位置推定装置は、曲データの拍位置を推定する拍位置推定装置であって、最初の解析区間を設定する初期設定部と、前記最初の解析区間に続く解析区間を逐次設定する解析区間設定部と、前記各解析区間内に検証区間を設定する検証区間設定部と、前記各解析区間または検証区間の楽曲データについて拍位置を検出する拍位置検出部と、前記各解析区間で検出された拍位置と前記各解析区間内の検証区間で検出された拍位置とが一致するか否かを検証する検証部と、を備え、前記検証結果に基づき楽曲データ全体にわたり拍位置を推定することを特徴としている。なお、拍位置とは、楽曲の再生に対して時間軸上に周期的に刻まれる拍の時刻を指す。また、楽曲データ全体にわたりとは、拍位置の推定が必要とされる楽曲の範囲全体という意味であり、必ずしも一曲全てを意味しない。
【０００７】
このように、本発明の拍位置推定装置は、解析区間内に検証区間を設定し、両区間で検出された拍位置が互いに一致するかを検証する。そして、その検証結果に基づいて楽曲データ全体にわたり拍位置を推定する。これにより、楽曲データに存在するテンポの変動に対して正確に拍位置を推定することができる。また、従来のテンポ変動に対応可能な方式に比べて楽曲データ全体にわたり何度も重複して解析する必要がなく、計算量を軽減することができる。
【０００８】
（２）また、本発明の拍位置推定装置は、前記検証区間設定部が、前記各解析区間で検出された拍位置に基づいて、検証区間を設定することを特徴としている。これにより、効率よく精度の高い検証をすることができる。
【０００９】
（３）また、本発明の拍位置推定装置は、前記解析区間設定部が、前記検証結果に基づき楽曲データ全体にわたり解析区間を逐次設定することを特徴としている。これにより、効率よく、正確な拍位置を検出するのに適当な解析区間を設定することができる。
【００１０】
（４）また、本発明の拍位置推定装置は、前記解析区間についての拍位置の検出結果に基づき、前記解析区間の開始位置が適当か否かを判定する位置判定部を更に備え、判定の結果、前記解析区間の開始位置が不適当である場合に、前記解析区間設定部は、開始位置をシフトさせた次の解析区間を設定することを特徴としている。このように、本発明の拍位置推定装置は、解析区間の開始位置が適当か否かを判定し、適当でないときには解析区間をシフトさせる。これにより、たとえばほとんど音が無い区間や語りが記録されている区間を含めないように解析区間を設定することができ、効率よく、正確な拍位置を検出するのに適当な解析区間を設定することができる。
【００１１】
（５）また、本発明の拍位置推定装置は、前記解析区間設定部が、前記検証の結果、前記拍位置が一致しないときに、前記検証区間で検出された拍位置を基準にして、次の解析区間の長さおよび開始位置を設定することを特徴としている。これにより、たとえば検証区間で検出された拍間隔を基準に解析区間の長さを設定し、検証区間で検出された拍位置を開始位置として解析区間を設定することができる。
【００１２】
（６）また、本発明の拍位置推定装置は、前記解析区間設定部が、前記検証の結果、前記拍位置が一致しないときに、前記検証区間で検出された拍位置の間隔より標準最低拍間隔以上長い間隔を次の解析区間の長さに設定することを特徴としている。標準最低拍間隔とは、一般的な楽曲のテンポの範囲の上限から導かれる最低の拍間隔をいう。通常、一般的な楽曲のテンポの範囲は、５０ＢＰＭ以上、２５０ＢＰＭ以下である。したがって、上限の２５０ＢＰＭにおける拍間隔は、０．２４秒であるため、標準最低拍間隔として０．２４秒をとることができる。これにより、検証区間で検出された拍位置を２つ以上含む区間を解析区間として設定でき、効率よく、正確な拍位置を検出することができる。
【００１３】
（７）また、本発明の拍位置推定装置は、前記解析区間設定部が、直前に設定された解析区間内で検出された最初の拍位置から、前記解析区間または前記検証区間で検出された拍間隔の一拍分シフトさせた位置を開始位置として次の解析区間を設定することを特徴としている。これにより、検出結果を基準として一拍ごとシフトさせた解析区間を設定することができ、拍位置を考慮しつつ精密に拍位置を検出することが可能となる。
【００１４】
（８）また、本発明の拍位置推定装置は、前記解析区間設定部が、直前に設定された解析区間内で検出された最後の拍位置から、前記解析区間または前記検証区間で検出された拍間隔の一拍分シフトさせた位置を開始位置として次の解析区間を設定することを特徴としている。これにより、検出結果を基準として、各解析区間の最後の一拍のみ重なるようにシフトさせた解析区間を設定することができ、拍位置を考慮しつつ効率的に拍位置を検出することが可能となる。
【００１５】
（９）また、本発明の拍位置推定装置は、前記解析区間設定部が、前記検証の結果、前記拍位置が一致しない区間に重ならないよう、次の解析区間の開始位置を設定することを特徴としている。これにより、不規則な拍をとる区間や拍の無い区間をとばして効率よく拍位置を検出することができる。
【００１６】
（１０）また、本発明の拍位置推定装置は、前記各解析区間で検出された拍位置を楽曲データ全体にわたり統合する統合部を更に備えることを特徴としている。これにより、拍位置を統合してより妥当性の高い拍位置を楽曲データ全体にわたり推定することができる。
【００１７】
（１１）また、本発明の拍位置推定方法は、楽曲データの拍位置を推定する拍位置推定方法であって、最初の解析区間を設定すると、前記最初の解析区間に続く解析区間を逐次設定する解析区間設定ステップと、前記各解析区間内に検証区間を設定する検証区間設定ステップと、前記各解析区間または検証区間の楽曲データについて拍位置を検出する拍位置検出ステップと、前記各解析区間で検出された拍位置と前記各解析区間内の検証区間で検出された拍位置とが一致するか否かを検証する検証ステップと、を含み、前記検証区間設定ステップでは、前記各解析区間で検出された拍位置に基づいて、検証区間を設定し、前記解析区間設定ステップでは、前記検証結果に基づき楽曲データ全体にわたり解析区間を逐次設定することを特徴としている。これにより、計算量を軽減しつつ、大幅なテンポ変化に対応して正確に拍位置を推定できる。
【００１８】
（１２）また、本発明の拍位置推定プログラムは、楽曲データの拍位置を推定する拍位置推定プログラムであって、最初の解析区間を設定する初期設定処理と、前記最初の解析区間に続く解析区間を逐次設定する解析区間設定処理と、前記各解析区間内に検証区間を設定する検証区間設定処理と、前記各解析区間または検証区間の楽曲データについて拍位置を検出する拍位置検出処理と、前記各解析区間で検出された拍位置と前記各解析区間内の検証区間で検出された拍位置とが一致するか否かを検証する検証処理と、をコンピュータに実行させ、前記検証区間設定処理では、前記各解析区間で検出された拍位置に基づいて、検証区間を設定し、前記解析区間設定処理では、前記検証結果に基づき楽曲データ全体にわたり解析区間を逐次設定することを特徴としている。これにより、計算量を軽減しつつ、大幅なテンポ変化に対応して正確に拍位置を推定できる。
【発明の効果】
【００１９】
本発明によれば、楽曲データに存在するテンポの変動に対して正確に拍位置を推定することができる。また、従来のテンポ変動に対応可能な方式に比べて楽曲データ全体にわたり何度も重複して解析する必要がなく、計算量を軽減することができる。
【発明を実施するための最良の形態】
【００２０】
次に、本発明の実施の形態について、図面を参照しながら説明する。説明の理解を容易にするため、各図面において同一の構成要素に対しては同一の参照番号を付し、重複する説明は省略する。
【００２１】
（拍位置推定装置の構成）
図１は、拍位置推定装置１００の構成を示すブロック図である。拍位置推定装置１００は、楽曲データの拍位置を推定する。具体的には、拍位置推定装置１００は、楽曲データを提供するコンテンツサーバであってもよいし、携帯電話機や携帯音楽プレーヤー等の携帯端末であってもよい。
【００２２】
図１に示すように、拍位置推定装置１００は、初期設定部１０１、解析区間設定部１０２、検証区間設定部１０３、楽曲データベース１０６、区間抽出部１０７、拍位置検出部１１０、位置判定部１１１、記録部１１３、検証部１１４、統合部１１８、基本拍位置推定部１１９、拍情報記憶部１２０、およびメタ情報生成部１２１を備えている。
【００２３】
初期設定部１０１は、解析対象となる楽曲データの信号を抽出するため最初の解析区間を設定する。最初の解析区間の長さは、たとえば約１．２秒を基準にして設定することができる。約１．２秒は、一般的な楽曲のテンポ範囲が５０ＢＰＭ以上２５０ＢＰＭ以下であることを考慮し、拍間隔が最長となる長さである。また、最初の解析区間の開始位置は楽曲データの信号の開始位置などに設定することができる。ただし、開始位置の設定はこの限りではない。なお、以下の説明では、特に言及しない限り解析区間の長さおよび開始位置の設定の際には、長さは標準最低拍間隔を加えるものとする。また、開始位置は標準最低拍間隔の半分だけ、早い位置を開始位置とするものとする。あらかじめ長めの解析区間を設定し、拍位置の検出状況に応じて解析区間を短くすることにより、効率よく、かつ精度よく拍位置を推定することができる。なお、携帯端末上で拍位置推定するような場合には、対象の区間を装置上にて実行できる区間長に管理することで、メモリ制限等の問題を回避できる。
【００２４】
解析区間設定部１０２は、最初の解析区間に続く解析区間を逐次設定する。解析区間設定部１０２は、検証結果に基づき楽曲データ全体にわたり複数の解析区間を逐次設定する。検証結果に基づくことで、効率よく、正確な拍位置を検出するのに適当な解析区間を設定することができる。また、拍位置推定装置１００は、解析区間の開始位置が適当か否かを判定し、適当でないときには、解析区間設定部１０２により解析区間をシフトさせる。たとえば音が無い区間や語りが記録されている区間を含めないように解析区間を設定することができる。
【００２５】
解析区間設定部１０２は、検証部１１４により解析区間で検出された拍位置と検証区間で検出された拍位置とが一致するか否かを判定された結果、拍位置が一致しないときに、検証区間で検出された拍位置を基準にして、次の解析区間の長さおよび開始位置を設定する。たとえば検証区間で検出された拍間隔を基準に解析区間の長さを設定し、検証区間で検出された拍位置を開始位置として解析区間を設定することができる。
【００２６】
また、検証区間で検出された拍位置の間隔より標準最低拍間隔以上長い間隔を次の解析区間の長さに設定してもよい。その場合には、対象とする最初の拍位置より標準最低拍間隔の半分だけ早い位置を開始位置とし解析区間を設定する。これにより、検証区間で検出された拍位置を少なくとも２つ以上含む区間を解析区間として設定でき、効率よく正確な拍位置を検出することができる。このようにして、拍位置推定装置１００は、検証結果に基づき楽曲データ全体にわたり拍位置を推定する。これにより、計算量を低減しつつ、テンポ変化に対応して正確に拍位置を推定できる。
【００２７】
なお、解析区間設定部１０２は、直前に設定された解析区間内で検出された最初の拍位置から、解析区間または検証区間で検出された拍間隔の一拍分シフトさせた位置を開始位置として次の解析区間を設定してもよい。これにより、検出結果を基準として一拍ごとシフトさせた解析区間を設定することができ、拍位置を考慮しつつ精密に拍位置を検出することが可能となる。
【００２８】
また、解析区間設定部１０２は、直前に設定された解析区間内で検出された最後の拍位置から、解析区間または検証区間で検出された拍間隔の一拍分シフトさせた位置を開始位置として次の解析区間を設定してもよい。これにより、検出結果を基準として、各解析区間の最後の一拍のみ重なるようにシフトさせた解析区間を設定することができ、拍位置を考慮しつつ効率的に拍位置を検出することが可能となる。
【００２９】
また、解析区間設定部１０２は、検証の結果、解析区間と検証区間とで検出された拍位置が一致しない区間があるときにその区間に重ならないよう、次の解析区間の開始位置を設定してもよい。つまり不適当と判定される区間を進めて（とばして）解析区間の開始位置を設定することができる。これにより、不規則な拍をとる区間や拍の無い区間を無視して効率よく拍位置を検出することができる。なお、検証結果を反映せずに所定長さの解析区間を所定間隔ごとに設定することもできる。
【００３０】
検証区間設定部１０３は、各解析区間で検出された拍位置に基づいて、各解析区間内に検証区間を設定する。たとえば、隣り合う拍位置の間隔（拍間隔）から標準最低拍間隔分長い区間を検証区間とすることが好ましい。また、２つの拍間隔分の長さとしてもよい。楽曲データベース１０６は、拍位置推定の対象となりうる楽曲データを蓄積する。楽曲データは、ＡＡＣ等のファイル形式で格納されている。
【００３１】
区間抽出部１０７は、設定された区間の楽曲データを抽出する。区間は、解析区間であってもよいし、検証区間でもよい。具体的には、楽曲データベース１０６内に格納された楽曲データを呼び出し、拍位置推定の対象となる区間における楽曲信号を抽出する。区間抽出部１０７は、楽曲データのフォーマットが解析に適さないフォーマットであった場合、解析に適したファイル形式に変換を行う。
【００３２】
拍位置検出部１１０は、区間抽出部１０７により抽出された各解析区間または検証区間の楽曲データについて拍位置を検出する。そして、検出された拍位置を暫定的な拍位置として扱う。たとえば、自己相関をベースにした拍位置検出を行うことができる。そして、複数設定された解析区間の楽曲データの拍位置を繰り返し検出し、各解析区間について検出区間の楽曲データの拍位置も検出する。拍位置検出の処理については後述する。拍位置検出の方法はこの方法に限定されず、検知関数（自己相関計算の対象となる関数、以下同様）を計算する段階で、ローパスフィルタ等の帯域制限フィルタや、バンドパスフィルタ等の帯域通過フィルタを適用してもよい。
【００３３】
位置判定部１１１は、解析区間についての拍位置の検出結果に基づき、解析区間の開始位置が適当か否かを判定する。たとえば、解析区間の平均音量が５０ｄｂ以下の場合や解析区間内での相関が低い場合などには、解析区間の開始位置は不適当と判定する。判定の結果、適当であれば検証区間の設定に移り、不適当であれば、拍位置推定装置１００は、解析区間設定部１０２により解析区間の開始位置を再設定する。
【００３４】
記録部１１３は、検出された拍位置を記録する。解析区間における各検出結果のみならず、検証区間における検出結果も記録する。記録部１１３は、各区間について拍位置検出部１１０により検出された拍位置を順次記録していく。記録部１１３は、解析区間、検出区間ごとに検出結果を保持する。
【００３５】
検証部１１４は、各解析区間で検出された拍位置と各解析区間内の検証区間で検出された拍位置とが一致するか否かを検証する。一致とは、それぞれ検出された拍位置が所定の誤差範囲内にあることをいう。誤差範囲としては標準最低拍間隔またはその半分を設定することができる。たとえば、検証区間で検出された各拍位置（楽曲開始から各拍までの時間が経過した時点）の誤差範囲内に解析区間で検出された拍位置のいずれかがあるか否かを判定することにより検証を行う。
【００３６】
また、解析区間で検出された各拍位置についてその誤差範囲内に検証区間で検出された拍位置があるか否かを判定し、さらに検証区間で検出された各拍位置についてその誤差範囲内に解析区間で検出された拍位置があるか否かを判定することとしてもよい。このような処理により、検証部１１４は、解析区間における検出結果と、検証区間における検出結果を比較し、拍位置が一致する場合には解析区間は適当と判定し、一致しない場合には解析区間は不適当と判定する。
【００３７】
統合部１１８は、各解析区間で検出された拍位置を楽曲データ全体にわたり統合する。これにより、さらに妥当性の高い拍位置を楽曲データ全体にわたり推定することができる。たとえば、複数設定された各解析区間における推定拍位置の情報を時系列に基づいて累積し、各時点で推定された拍の累積個数を拍の尤もらしさとして利用することができる。なお、統合部１１８を設けずに拍位置検出部１１０により検出された拍位置を推定結果としてもよい。
【００３８】
基本拍位置推定部１１９は、統合された拍位置から楽曲データ全体にわたり基本拍位置を推定する。基本拍位置推定部１１９は、統合部１１８によって得られた統合された拍位置の情報から尤もらしい拍を有効な拍として推定する。統合および基本拍位置推定の処理については後述する。
【００３９】
拍情報記憶部１２０は、楽曲データ全体にわたり推定された拍位置を特定する拍情報を記憶する。メタ情報生成部１２１は、楽曲データ全体にわたり推定された拍位置を特定するメタ情報を生成する。このように最終的な解析結果をメタ情報として出力することができる。なお、拍位置推定装置１００は、統合部１１８および基本拍位置推定部１１９を備えずに、拍位置検出部１１０により検出された拍位置を、楽曲全体にわたり推定された拍位置とすることができる。
【００４０】
拍位置推定装置１００は、制御部（図示せず）により、各部の制御を行うとともに拍位置検出を終了するか継続するかの判定を行う。たとえば、対象となる楽曲データ全体にわたり拍位置の検出が行われたとき終了と判定し、対象となる楽曲データ全体にわたり拍位置が検出されていないときには継続と判定する。制御部は、全楽曲データの区間に対して検出が行われていない場合、区間抽出部１０７に次の区間の楽曲データを抽出するよう指示する。
【００４１】
このようにして、解析区間の位置および解析区間の長さを対象となる楽曲データから自動で設定することができる。なお、上記の例に限らず、楽曲データに対して事前に検知関数を計算し、最初の解析区間を設定することもできる。
【００４２】
（拍位置推定装置の動作）
次に、拍位置推定装置１００の動作を説明する。図２は、本発明に係る拍位置推定装置１００の特徴的な動作の一例を示すフローチャートである。まず、拍位置推定装置１００は、最初の解析区間を設定する（ステップＳ１）。そして、全ての解析区間について拍位置の検出および検証が終了しているか否かを判定する（ステップＳ２）。全ての解析区間について拍位置の検出および検証が終了している場合には、拍を統合し（ステップＳ３）、統合された拍の位置を推定された拍位置として出力し、終了する。一方、全ての解析区間について拍位置の検出および検証が終了していない場合には、設定された解析区間の楽曲データを抽出する（ステップＳ４）。
【００４３】
そして抽出された解析区間の楽曲データについて拍位置を検出する（ステップＳ５）。次に検出された拍位置に基づいて解析区間の位置は適当か否かを判定する（ステップＳ６）。解析区間の位置が適当でないと判定された場合には、判定結果を反映して解析区間を設定する（ステップＳ７）。解析区間の位置が適当であると判定された場合には検証区間を設定し（ステップＳ８）、検証区間の楽曲データを抽出し（ステップＳ９）、その楽曲データについて拍位置を検出する（ステップＳ１０）。
【００４４】
次に、解析区間において検出された拍位置と検証区間において検出された拍位置とが一致するか否かを判定（検証）する（ステップＳ１１）。拍位置が一致しないと判定された場合には、ステップＳ７に戻り、検証結果を反映した解析区間を設定する。その際には検証結果に基づいて解析区間の長さおよび位置を設定することができる。拍位置が一致する場合には、一致した拍位置を記録し（ステップＳ１２）、次の解析区間を設定し（ステップＳ１３）、ステップＳ２に戻る。
【００４５】
（解析区間の設定および拍位置検出）
図３（ａ）〜（ｄ）は、それぞれ解析区間の設定、解析区間における拍位置の検出、検証区間の設定、および検証区間における拍位置の検出を示す概略図である。図３（ａ）に示すように、拍位置推定の対象となる楽曲データに対して、まず解析区間２０１が設定される。そして、図３（ｂ）に示すように、解析区間２０１について拍位置Ｐ１〜Ｐ３が検出される。次に、図３（ｃ）に示すように、検出された拍間隔よりやや広い検証区間３０１が設定される。そして、図３（ｄ）に示すように、検証区間３０１について拍位置Ｒ１、Ｒ２が検出される。拍位置Ｒ１、Ｒ２のそれぞれの誤差範囲内に、解析区間２０１について検出された拍位置Ｐ１〜Ｐ３が入っているかを判定することにより検証処理を行う。たとえば、図３に示す解析区間における第１、第２拍位置Ｐ１、Ｐ２と検証区間における第１、第２拍位置Ｒ１、Ｒ２が一致しない場合に不適当と判定される。
【００４６】
なお、図３に示す例では、最初の解析区間における推定結果の第１から第２拍目を含む区間に対して検証区間を設定しているが、検証区間はこの限りではなく、第３拍目までを含む形や、第２〜第３拍目のみを含む区間、もしくは解析区間のすべてを含む区間を検証区間とすることができる。また、検証区間を複数設定し、各検証区間に対して検証することとしてもよい。
【００４７】
（拍位置検出）
図４は、拍位置検出処理を示すフローチャートである。上記のように設定された解析区間の楽曲データを抽出し、入力波形に対して短時間フーリエ変換を適用し、入力波形におけるスペクトログラムを計算する（ステップＴ１）。スペクトログラムから時系列でのパワー関数を求め（ステップＴ２）、自己相関関数により拍間隔を算出し（ステップＴ３）、相互相関関数により拍位置を算出することで拍位置を検出する（ステップＴ４）。
【００４８】
（解析区間の設定）
図５（ａ）〜（ｃ）は、それぞれ解析区間の設定例を示す概略図である。解析区間設定部１０２は、解析区間の位置をシフトさせて次の解析区間の開始位置を設定する。たとえば、図５（ａ）に示すように、直前の解析区間２０２の終了位置の直後に次の解析区間２０３の開始位置を設定する。また、図５（ｂ）に示すように、直前の解析区間２０２の位置と重複して次の解析区間２０４設定してもよい。また、図５（ｃ）に示すように、直前の解析区間２０２で検出された拍間隔を飛ばして次の解析区間２０５設定してもよい。図５（ｂ）に示す解析区間の設定方式では、直前の解析区間２０２の検出結果を利用し、検出された拍位置の間隔分、解析区間をシフトさせる。なお、シフト量は１拍分（拍間隔）とすることが好ましいがこれに限らない。
【００４９】
（統合および基本拍位置推定）
次に、統合および基本拍位置推定について説明する。図６は、検出した拍位置の統合処理を示す概略図である。たとえば、統合部１１８は、図５（ａ）〜（ｃ）に示すいずれかの方法で解析区間をシフトさせ、各時系列上で重複して得られた検出結果を加算する。
【００５０】
図６に示すように、Ｂｅａｔ＿（ｎ）は各解析区間によって検出された拍位置を示すパワー関数である。Ｉｎｔｅｇｒａｔｅｄ＿Ｂｅａｔは統合後の推定拍位置となる。Ｉｎｔｅｇｒａｔｅｄ＿Ｂｅａｔは、Ｂｅａｔ＿（ｎ）の時系列上の各拍位置における検出結果Ｎ（整数）を累積することで得られる。図６では、統合された拍位置の情報は関数Ｉｎｔｅｇｒａｔｅｄ＿Ｂｅａｔとして表されている。また、Ｉｎｔｅｇｒａｔｅｄ＿Ｂｅａｔにはハニング窓等の窓関数を掛け合わせることで、スムージング等の処理をした後にピーク検出を行うことで拍位置の推定結果を得ることや、ピーク間隔によってテンポ（ＢＰＭ）計算を行うことができる。たとえば、図６におけるＩｎｔｅｇｒａｔｅｄ＿Ｂｅａｔで最大値の１／２以上である拍のみを抽出し、基本拍位置として推定することができる。
【００５１】
なお、拍位置の推定の際には、検出された拍位置をｂＩ(１)，ｂＩ（２），…，ｂＩ（ｍ)としたときに、以下の数式を用いて拍位置を算出することもできる。
【数１】
2010072595.tif 000003
【００５２】
以上の拍位置推定の各処理はプログラムをコンピュータに実行させることにより行うことができる。なお、上記の実施形態では検証結果を解析区間に反映させるが、検証結果にかかわらず解析区間を設定することとしてもよい。その場合でも、解析区間の検出拍位置と検証区間の検出拍位置とを比較し検証を行うため、拍位置の精度を高めることは可能である。
【図面の簡単な説明】
【００５３】
【図１】本発明に係る拍位置推定装置１００の構成を示すブロック図である。
【図２】本発明に係る拍位置推定装置１００の特徴的な動作を示すフローチャートである。
【図３】（ａ）解析区間の設定、（ｂ）解析区間における拍位置の検出、（ｃ）検証区間の設定、および（ｄ）検証区間における拍位置の検出を示す概略図である。
【図４】拍位置検出処理を示すフローチャートである。
【図５】（ａ）〜（ｃ）解析区間の設定例を示す概略図である。
【図６】検出した拍位置の統合処理を示す概略図である。
【符号の説明】
【００５４】
１００  拍位置推定装置
１０１  初期設定部
１０２  解析区間設定部
１０３  検証区間設定部
１０６  楽曲データベース
１０７  区間抽出部
１１０  拍位置検出部
１１１  位置判定部
１１３  記録部
１１４  検証部
１１８  統合部
１１９  基本拍位置推定部
１２０  拍情報記憶部
１２１  メタ情報生成部
２０１〜２０５  解析区間
３０１  検証区間
Ｐ１〜Ｐ３、Ｒ１、Ｒ２  拍位置
【図１】
2010072595.tif 000004
【図２】
2010072595.tif 000005
【図３】
2010072595.tif 000006
【図４】
2010072595.tif 000007
【図５】
2010072595.tif 000008
【図６】
2010072595.tif 000009