(57)【要約】【課題】ピアノソロなどのような楽曲でもビートの効いた楽曲でも、小節間隔や拍間隔の特徴がよく現れる特徴量抽出を行えるようにし、この特徴量を使って小節間隔の抽出精度を向上させるようにする。【解決手段】特徴量抽出部２０２で、最大振幅抽出部２０４は、離散時間毎に、時間周波数解析部２０３で得られた複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出する。また、自己相関演算部２０５は、離散時間毎の最大振幅信号の時系列データの自己相関信号を演算し特徴量として抽出する。この特徴量中には、ピアノソロなどのような楽曲でもビートの効いた楽曲でも、小節間隔と関連の高い強弱パターン周期や拍間隔の特徴が良く保持され、小節間隔の正確な推定が可能となる。【選択図】図２
2015040970.tif 000002
【特許請求の範囲】
【請求項１】
入力する音響信号データに対して時間周波数解析を行って、単位時間毎に複数の周波数成分毎の周波数成分信号を算出する時間周波数解析部と、
前記単位時間毎に、前記複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出する最大振幅抽出部と、
前記単位時間毎の最大振幅信号の時系列データの自己相関信号を導出し、当該自己相関信号を特徴量として抽出する自己相関導出部と、
を備えることを特徴とする特徴量抽出装置。
【請求項２】
請求項１に記載の特徴量抽出装置によって抽出された自己相関信号を特徴量として、前記音響信号の小節間隔を推定する装置であって、
前記自己相関信号の所定位置から始まる時間範囲内で、第１の時間長を有する時間範囲である第１の検査範囲を移動させながら、当該第１の検査範囲で指定される各時間範囲内で最大値をとる前記自己相関信号の各ピークを抽出するピーク抽出部と、
前記音響信号が表す楽曲に対応する強弱パターン周期が存在すると仮定される時間範囲内で、第２の時間長を有する時間範囲である第２の検査範囲を移動させながら、当該第２の検査範囲で指定される各時間範囲内で最初に最大値をとるピークを前記抽出された各ピークから選択し、該選択したピークに基づいて前記強弱パターン周期を推定する強弱パターン周期推定部と、
前記抽出された各ピークに基づいて、拍間隔を推定する拍間隔推定部と、
前記強弱パターン周期と前記拍間隔とに基づいて小節間隔を計算して推定された小節間隔として出力する小節間隔計算部と、
を備えることを特徴とする小節間隔推定装置。
【請求項３】
前記小節間隔計算部は、前記拍間隔に基づいて前記強弱パターン周期の拍数を算出し、当該拍数が所定値に比較して小さければ前記強弱パターン周期を前記小節間隔として算出し、当該拍数が所定値に比較して大きければ前記強弱パターン周期の半分の周期を前記小節間隔として算出する、
ことを特徴とする請求項２に記載の小節間隔推定装置。
【請求項４】
入力する音響信号データに対して時間周波数解析を行って、単位時間毎に複数の周波数成分毎の周波数成分信号を算出し、
前記単位時間毎に、前記複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出し、
前記単位時間毎の最大振幅信号の時系列データの自己相関信号を導出し、当該自己相関信号を特徴量として抽出する、
ことを特徴とする特徴量抽出方法。
【請求項５】
請求項４に記載の特徴量抽出方法によって抽出された自己相関信号を特徴量として、前記音響信号の小節間隔を推定する方法であって、
前記自己相関信号の所定位置から始まる時間範囲内で、第１の時間長を有する時間範囲である第１の検査範囲を移動させながら、当該第１の検査範囲で指定される各時間範囲内で最大値をとる前記自己相関信号の各ピークを抽出し、
前記抽出された各ピークに基づいて、拍間隔を推定し、
前記音響信号が表す楽曲に対応する強弱パターン周期が存在すると仮定される時間範囲内で、第２の時間長を有する時間範囲である第２の検査範囲を移動させながら、当該第２の検査範囲で指定される各時間範囲内で最初に最大値をとるピークを前記抽出された各ピークから選択し、該選択したピークに基づいて前記強弱パターン周期を推定し、
前記強弱パターン周期と前記拍間隔とに基づいて小節間隔を計算して推定された小節間隔として出力する、
ことを特徴とする小節間隔推定方法。
【請求項６】
コンピュータに、
入力する音響信号データに対して時間周波数解析を行って、単位時間毎に複数の周波数成分毎の周波数成分信号を算出し、
前記単位時間毎に、前記複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出し、
前記単位時間毎の最大振幅信号の時系列データの自己相関信号を導出し、当該自己相関信号を特徴量として抽出する、
処理を実行させることを特徴とする特徴量抽出プログラム。
【請求項７】
請求項６に記載の特徴量抽出プログラムによって抽出された自己相関信号を特徴量として、前記音響信号の小節間隔を推定するプログラムであって、
コンピュータに、
前記自己相関信号の所定位置から始まる時間範囲内で、第１の時間長を有する時間範囲である第１の検査範囲を移動させながら、当該第１の検査範囲で指定される各時間範囲内で最大値をとる前記自己相関信号の各ピークを抽出し、
前記抽出された各ピークに基づいて、拍間隔を推定し、
前記音響信号が表す楽曲に対応する強弱パターン周期が存在すると仮定される時間範囲内で、第２の時間長を有する時間範囲である第２の検査範囲を移動させながら、当該第２の検査範囲で指定される各時間範囲内で最初に最大値をとるピークを前記抽出された各ピークから選択し、該選択したピークに基づいて前記強弱パターン周期を推定し、
前記強弱パターン周期と前記拍間隔とに基づいて小節間隔を計算して推定された小節間隔として出力する、
処理を実行させることを特徴とする小節間隔推定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、小節間隔を推定し、またその推定のための特徴量を抽出する装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
音楽を構成する要素にテンポ（拍間隔）や小節間隔がある。拍間隔は一般的にＢＰＭ（１分間に４分音符が何拍あるか）で表し、楽曲全体の速さに対応する。小節は一般的に音楽の構造の最小単位で、コード（和音）やリズムパターンが多くの場合１小節毎（２小節の場合もある）に割り当てられる。従って、小節間隔を推定することは、コードを抽出して電子楽器の自動演奏を行ったり、音楽構造の分析を行ったりするために必要な技術である。
【０００３】
小節間隔・拍間隔を推定する第１の従来技術として、バスドラムやスネアドラムなど打楽器が一定時間以上一定のビートを刻むことを前提としたものが提案されている。より具体的には例えば、楽曲データから周波数帯別の音圧データを作成し、この音圧データからリズムを最も刻む周波数帯を特定し、この特定した周波数帯の音圧データにおける変化周期をもとにリズム成分を推定する手法が提案されている（例えば特許文献１）。
【０００４】
小節間隔・拍間隔を推定する第２の従来技術として、次のような手法が提案されている（例えば特許文献２）。まず、フレーム毎のパワー（自乗平均）を計算して、その微分値(実施例によればフレーム間の差分ではなく、前後複数フレームのパワーを最小２乗法で直線近似したときの傾きを微分値としてロバスト性を高めている)の自己相関を計算する。この相関値の極大（小節間隔が期待される範囲内で最大）を与える位置を小節間隔とする。拍子数は既知として拍間隔を計算する。パワーの微分値が大きいフレームが発音時刻に相当し、自己相関と極大位置検出で周期の推定になっている。
【０００５】
小節間隔・拍間隔を推定する第３の従来技術として、次のような手法が提案されている（例えば特許文献３）。まず、音楽信号から発音時刻を検出して発音時系列信号を生成し、この生成信号の自己相関を算出する。この自己相関のピーク位置とピーク値を検出する。このピーク位置とその値をグルーピング階層化することで音楽のビート構造を解析する。また自己相関のピーク値から算出したテンポ候補と解析したビート構造から、最も適切と思われるテンポを推定する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０００−２５０５３４
【特許文献２】特開平０５−０２７７５１
【特許文献３】特開２００２−１１６７５４
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかし、例えばピアノソロのように、楽曲中に打楽器が存在せず、また、発音時刻が揺らぐような楽曲では、小節間隔・拍間隔の正しい推定が難しい場合がある。
【０００８】
具体的には、ピアノソロでは、特定の周波数帯にビートが集中することはないので、上述した第１の従来技術では、そのような楽曲に対して小節間隔・拍間隔を正しく推定することはできない。
【０００９】
また、上述した第２または第３の従来技術のように発音時刻の周期性を利用する手法では、発音時刻が正確なビートを刻んでいるときには、自己相関がピーキーになるが、発音時刻に揺らぎがある場合は自己相関が低下するために小節間隔の検出精度が悪化する。
実際のピアノソロ曲（以下「楽曲１」と呼ぶ）を第２の従来技術の手法で自己相関信号を計算して得られる波形例を図１７に示す。さらに、比較対象として、あるポップス曲（以下「楽曲２」と呼ぶ）を第２の従来技術の手法で自己相関信号を計算して得られる波形例を図１８に示す。楽曲１は４分の３拍子、楽曲２は４分の４拍子である。
【００１０】
図１７または図１８において、楽曲１または２の実際の拍間隔および小節間隔と、これらの楽曲から抽出された極大位置を図示している。ここで、極大位置とは、７６ＢＰＭ〜１４０ＢＰＭ程度の拍間隔において、小節間隔が存在する時間範囲、例えば、１．３秒〜４秒程度の時間範囲内での、計算された自己相関値から抽出される最大値である。
【００１１】
まず、図１８の楽曲２についてみると、実際の小節位置と検出された極大位置が一致している。また、自己相関値のピークの時間間隔もほぼ等間隔で並んでおり、ビート構造もはっきりと現れている。
【００１２】
一方、図１７の楽曲１においては、小節間隔と極大位置の間にある小さなピークを加えて、検出された極大位置は５拍目に現れており、実際の小節間隔の３拍目とまったく関連がない。さらに、ビート構造らしきものも見当たらない。
【００１３】
以上のように、従来技術では、小節間隔・拍間隔を正しく推定することができない場合があるという問題点を有していた。
【００１４】
本発明は、ピアノソロなどのような楽曲でもビートの効いた楽曲でも、小節間隔や拍間隔の特徴がよく現れる特徴量抽出を行えるようにし、この特徴量を使って小節間隔の抽出精度を向上させるようにすることを目的とする。
【課題を解決するための手段】
【００１５】
態様の一例の特徴量抽出装置は、入力する音響信号に対して時間周波数解析を行って、単位時間毎に複数の周波数成分毎の周波数成分信号を算出する時間周波数解析部と、単位時間毎に、複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出する最大振幅抽出部と、単位時間毎の最大振幅信号の時系列データの自己相関信号を導出し、その自己相関信号を特徴量として抽出する自己相関導出部とを備える。
【００１６】
態様の他の一例の小節間隔推定装置は、特徴量抽出装置によって抽出された自己相関信号を特徴量として、その自己相関信号の所定位置から始まる時間範囲内で、第１の時間長を有する時間範囲である第１の検査範囲を移動させながら、第１の検査範囲で指定される各時間範囲内で最大値をとる自己相関信号の各ピークを抽出するピーク抽出部と、抽出された各ピークに基づいて、音響信号が表す楽曲に対応する強弱パターン周期が存在すると仮定される時間範囲内で、第２の時間長を有する時間範囲である第２の検査範囲を移動させながら、第２の検査範囲で指定される各時間範囲内で最初に最大値をとるピークを抽出された各ピークから選択し、その選択したピークに基づいて強弱パターン周期を推定する強弱パターン周期推定部と、拍間隔を推定する拍間隔推定部と、強弱パターン周期と拍間隔とに基づいて小節間隔を計算して推定された小節間隔として出力する小節間隔計算部とを備える。
【発明の効果】
【００１７】
本発明によれば、ピアノソロなどのような楽曲でもビートの効いた楽曲でも、小節間隔や拍間隔の特徴がよく現れる特徴量抽出を行うことが可能となり、この特徴量を使って小節間隔の抽出精度を向上させることが可能となる。
【図面の簡単な説明】
【００１８】
【図１】本発明による小節間隔推定装置の実施形態のハードウェア構成の一例を示す図である。
【図２】小節間隔推定装置の処理機能の構成例を示すブロック図である。
【図３】本実施形態に係る自己相関信号の波形例（楽曲１）を示す図である。
【図４】本実施形態に係る自己相関信号の波形例（楽曲２）を示す図である。
【図５】本実施形態に係る自己相関信号の波形例（楽曲３）を示す図である。
【図６】パワーの自己相関信号の波形例（楽曲１）を示す図である。
【図７】パワーの自己相関信号の波形例（楽曲２）を示す図である。
【図８】パワーの自己相関信号の波形例（楽曲３）を示す図である。
【図９】振幅の自己相関信号の波形例（楽曲１）を示す図である。
【図１０】振幅の自己相関信号の波形例（楽曲２）を示す図である。
【図１１】振幅の自己相関信号の波形例（楽曲３）を示す図である。
【図１２】小節間隔推定装置の全体の処理例を示すフローチャートである。
【図１３】特徴量抽出部の詳細な処理例を示すフローチャートである。
【図１４】ピーク抽出部の詳細な処理例を示すフローチャートである。
【図１５】強弱パターン周期推定部の詳細な処理例を示すフローチャートである。
【図１６】小節間隔計算部の詳細な処理例を示すフローチャートである。
【図１７】従来技術（特許文献２）による自己相関信号の波形例（楽曲１）を示す図である。
【図１８】従来技術（特許文献２）による自己相関信号の波形例（楽曲２）を示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。
【００２０】
図１は、本発明による小節間隔推定装置の実施形態のハードウェア構成の一例を示す図である。この小節間隔推定装置は、ＣＰＵ（中央演算処理装置）１０１、ＲＯＭ（リードオンリーメモリ）１０２、ＲＡＭ（ランダムアクセスメモリ）１０３、入力部１０４、出力部１０５、音響入力部１０６、外部記憶装置１０７が、バス１０８によって相互に接続された構成を備える。
【００２１】
音響入力部１０６は、音楽音響データを取り込み、必要に応じて、内部のＲＡＭ１０３やハードディスク記憶装置またはソリッドステートドライブ装置等の外部記憶装置１０７に記憶する。この音響入力部１０６は例えば、インターネット上の音楽配信サイトに接続して音楽音響データをダウンロードしてＲＡＭ１０３や外部記憶装置１０７に取り込むネットワーク接続装置を含む。また、音響入力部１０６は例えば、ＣＤ（コンパクトディスク）やＤＶＤ（デジタルバーサタイルディスク）等のディスク記録媒体に録音された音楽音響データを読み出し、必要に応じてＲＡＭ１０３や外部記憶装置１０７に記憶させるディスク記録媒体駆動装置を含む。あるいは、音響入力部１０６は例えば、ＳＤメモリカード等の可搬記録媒体に録音された音楽音響データを読み出し、必要に応じてＲＡＭ１０３や外部記憶装置１０７に記憶させる可変記録媒体駆動装置を含む。
【００２２】
ＣＰＵ１０１は、ＲＯＭ１０２に記憶された制御プログラムに従って、当該小節間隔推定装置全体の制御を行う。ＲＡＭ１０３は、制御プログラムの実行に必要な各種制御データや、小節間隔が推定される対象となる音楽音響データを、一時的に記憶する。
【００２３】
入力部１０４は、ユーザによるキーボード、マウス、各種スイッチ等による入力操作を検出し、その検出結果をＣＰＵ１０１に通知する。
【００２４】
出力部１０５は、ＣＰＵ１０１の制御によって送られてくるデータを液晶ディスプレイやプリンタに出力する。例えば、出力部１０５は、小節間隔の推定結果を液晶ディスプレイに表示する。
【００２５】
外部記憶装置１０７は、音楽音響データや小節間隔の推定結果のデータ等を保存する。
【００２６】
本実施形態による小節間隔推定装置の動作は、後述する図２の構成で示される処理機能を備え、それらの機能を実現する図１２〜図１６に示される各フローチャートの処理を実行する制御プログラムを、ＣＰＵ１０１がＲＯＭ１０２から読み出して順次実行することで実現される。そのプログラムは、例えば外部記憶装置１０７に記録して配布してもよく、或いは特には図示しないネットワーク接続装置によりネットワークから取得できるようにしてもよい。
【００２７】
図２は、図１のハードウェア構成例を有する小節間隔推定装置２０１の処理機能の構成例を示すブロック図である。本実施形態による小節間隔推定装置２０１は、特徴量抽出部２０２、ピーク抽出部２０６、強弱パターン周期推定部２０７、拍間隔推定部２０８、および小節間隔計算部２０９を備える。
【００２８】
まず、特徴量抽出部２０２について、説明する。特徴量抽出部２０２は、小節間隔を推定するときの特徴量を、入力する音響信号のデジタルデータから抽出し、時間周波数解析部２０３、最大振幅抽出部２０４、および自己相関導出部２０５を備える。
【００２９】
時間周波数解析部２０３は、例えば外部記憶装置１０７から入力する音響信号のデジタルデータに対して時間周波数解析を行って、離散時間（例えば分析フレーム）毎に複数の周波数成分毎の周波数成分信号を算出する。
【００３０】
最大振幅抽出部２０４は、離散時間（例えば分析フレーム）毎に、複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出する。
【００３１】
自己相関導出部２０５は、離散時間毎の最大振幅信号の時系列データの自己相関信号を導出し、その自己相関信号を特徴量として抽出する。
【００３２】
以上のように、本実施形態では、特徴量抽出部２０２は、発音時刻のようなピーキー（時間変動が急峻）な信号の自己相関ではなく、もっと時間変動の緩やかな最大振幅信号の自己相関を特徴量とすることでロバスト性を高めている。
【００３３】
具体的には、上述の最大振幅信号の時系列データを用いることにより、小節内の拍の強弱パターンを手掛かりに周期性が推定されるようになる。強弱パターンとしては４分の４拍子では、強・弱・中・弱やバックビートと呼ばれる弱・強・弱・中などがある。それ以外は１拍目に強がくることが多い。この強弱パターンの自己相関を求めれば、強弱パターン周期に対応した位置にピークが現れることが期待される。多くの場合、強弱パターン周期が小節間隔になるので、強弱パターン周期を示すピークに基づいて小節間隔を決定することが可能となる。強弱パターン周期が２小節間隔の楽曲の場合でも、ピーク位置が小節間隔の２倍の位置に検出されるが、このようなケースは後述する小節間隔計算部２０９の機能によって補正することが可能である。
【００３４】
次に、強弱パターン周期の検出に用いるべき信号について説明する。音響信号の強度としてよく利用されるものに、パワーと振幅がある。音楽はダイナミックレンジが広いので、パワーの場合は強の影響が強くなりすぎ、弱の影響が弱くなりすぎるので適切とは言えない。よって、本実施形態では、振幅を強度信号とする。また、本実施形態では、振幅として、分析フレーム内のパワー合計を平方根したものでなく、例えば分析フレームを周波数解析して得られる複数の周波数成分信号のうち最大振幅を有するものを利用する。なぜなら、複数の楽器が演奏されるタイミングでは、それらのパワーが合算されるため強度信号としては適切でない。また、発音間隔が密な区間では前の音が減衰しきる前に新たな発音のパワーが次々加算されるので強弱パターンに規則性を乱す原因になるからでもある。本実施形態では、例えば分析フレーム毎に上述の最大振幅信号を抽出することにより、楽曲による強弱パターンが最も現れやすいような時系列データを生成することが可能となる。
【００３５】
本実施形態においては、最大振幅の時系列データの自己相関を演算して自己相関信号を導出し、これを小節間隔・拍間隔情報に対応する強弱パターン周期を含む特徴量とする。
【００３６】
図３、図４、および図５は、楽曲１、楽曲２、および楽曲３に対応して特徴量抽出部２０２が特徴量として抽出する各自己相関信号の波形例を示す図である。図３から図５において、楽曲１、２、または３の実際の強弱パターン周期、拍間隔、小節間隔と、これらの楽曲から後述するピーク抽出部２０６および強弱パターン周期推定部２０７により抽出される極大位置を図示している。
【００３７】
図３〜図５の例をみると、特徴量抽出部２０２が出力する最大振幅信号の時系列データの自己相関信号の特徴量を用いることにより、拍間隔は、時間ゼロ付近を除く時間ゼロから１秒程度の時間範囲内で最初に現れるピークとして容易に検出可能なことがわかる。図２の拍間隔推定部２０８は、このようなロジックに基づいて、拍間隔を推定する。
【００３８】
また、図３または図４の例において、特徴量抽出部２０２が出力する最大振幅信号の時系列データの自己相関信号の特徴量を用いることにより、強弱パターン周期の存在が仮定される１．３秒〜４秒程度の時間範囲内の極大位置が、強弱パターン周期に良く一致していることがわかる。
【００３９】
本実施形態では、図２のピーク抽出部２０６が、自己相関信号の所定位置（例えば時刻ゼロ）から始まる時間範囲内で、比較的短い第１の時間長を有する時間範囲である第１の検査範囲を移動させながら、第１の検査範囲で指定される各時間範囲内で最大値をとる自己相関信号の各ピークを抽出する。これにより、本実施形態では、ノイズに起因するピークを取り除いたロバストなピーク検出を行うことが可能となる。
【００４０】
さらに、図３〜図５の例において、特徴量抽出部２０２が出力する最大振幅信号の時系列データの自己相関信号の波形は、時間が増加する方向に対して全体的に右肩下がりで、強弱パターン周期に対応するピーク毎にそのピークの周囲の波形を抉り取った形状になっていることがわかる。また、強弱パターン周期の自己相関値は、その２倍の時刻の自己相関値と比べて常に大きいことがわかる。そこで、本実施形態では、強弱パターン周期推定部２０７が、強弱パターン周期が存在すると仮定される例えば１．３〜４秒程度の時間範囲内で、比較的長い第２の時間長を有する時間範囲である第２の検査範囲を移動させながら、第２の検査範囲で指定される各時間範囲内で最初に最大値をとるピークを、ピーク抽出部２０６が抽出した各ピークから選択し、選択したピーク位置を強弱パターン周期として推定する。この結果、例えば図５の波形例において、「極大位置」と表示されているピークについては、そのピークの直前の第２の検査範囲内に大きなピークが存在し、かつその直前のピークは強弱パターン周期が仮定される例えば１．３〜４秒程度の時間範囲よりも手前に存在する。従って、本実施形態では、この「極大位置」と表示されているピーク位置およびその直前のピーク位置ともに強弱パターン周期としては推定されないように動作させることができる。実際には「強弱パターン周期」と表示されているピーク位置が強弱パターン周期として推定される。このようにして、本実施形態では、特徴量抽出部２０２が出力する最大振幅信号の時系列データの自己相関信号の波形の特徴（右肩下がり）をうまく利用して、精度の高い強弱パターン周期の推定を行うことが可能となる。
【００４１】
さらに、図５の波形例では、強弱パターン周期が、実際の小節間隔の２倍の位置に現れている。実際の楽曲でも、２小節で１つの強弱パターン周期が形成されるケースがある。そこで、本実施形態では、図２の小節間隔計算部２０９が、拍間隔推定部２０８が推定した拍間隔を用いて、強弱パターン周期推定部２０７が推定した強弱パターン周期の拍数（拍間隔の何倍か）を求める。そして、小節間隔計算部２０９は、この拍数が所定値に比較して小さければ、強弱パターン周期推定部２０７が推定した強弱パターン周期を小節間隔として算出する。一方、小節間隔計算部２０９は、上記拍数が所定値に比較して大きければ、強弱パターン周期推定部２０７が推定した強弱パターン周期の半分の周期を小節間隔として算出する。
【００４２】
図６、図７、および図８はそれぞれ、図３、図４、および図５に対する比較として、楽曲１、楽曲２、および楽曲３に対応して、特徴量として各分析フレームのパワーの自己相関信号を算出したときの波形例を示す図である。また、図９、図１０、および図１１はそれぞれ、図３、図４、および図５または図６、図７、および図８に対する比較として、楽曲１、楽曲２、および楽曲３に対応して、特徴量として各分析フレームの振幅（パワー合計の平方根）の自己相関信号を算出したときの波形例を示す図である。楽曲１に対しては、図６および図９ともに、本実施形態に基づく図３の波形例と同様に、比較的正確に強弱パターン周期が抽出されている。しかし、楽曲２に対しては、図７のパワーの自己相関信号の波形例では強弱パターンの周期がなんとか分かる程度であり、図１０の振幅の自己相関信号の波形例では強弱パターンは十分に分かるレベルである。但し、本実施形態に基づく図４の波形例ほど顕著ではない。楽曲３に対しては、図８および図１１ともに、本実施形態に基づく図５の波形例に比較して、さらに強弱パターン周期が分かりにくい。また、全体的に、図６から図８のパワーの自己相関信号の波形例では、ディテールが損なわれている。図９から図１１の振幅の自己相関信号の波形例では、図６から図８のパワーの自己相関信号の波形例に比べて少しよいが、図３から図５の本実施形態による波形例に比べれば、やはりディテールが損なわれている。
【００４３】
以上のことより、本実施形態において特徴量抽出部２０２が抽出する最大振幅信号の自己相関信号は、拍間隔、強弱パターン周期、および小節間隔を推定するための特徴量として、優れているといえる。
【００４４】
以下、図２の処理機能を実現する本実施形態の制御動作の詳細について、図１２から図１６の各フローチャートに沿って説明する。なお、各フローチャートの説明において、随時図１または図２の各部を参照するものとする。
【００４５】
図１２は、図１のハードウェア構成例および図２の処理機能構成例を有する小節間隔推定装置の全体の処理例を示すフローチャートである。このフローチャートは、ＣＰＵ１０１が、ＲＯＭ１０２に記憶された小節間隔推定プログラムを実行する動作として実現される。
【００４６】
図２の特徴量抽出部２０２、ピーク抽出部２０６、強弱パターン周期推定部２０７、拍間隔推定部２０８、および小節間隔計算部２０９の機能をそれぞれ実現する処理として、特徴量抽出処理（ステップＳ１０１）、ピーク抽出処理（ステップＳ１０２）、強弱パターン周期推定処理（ステップＳ１０３）、拍間隔推定処理（ステップＳ１０４）、および小節間隔計算処理（ステップＳ１０５）の順に、各制御処理が実行される。
【００４７】
図１３は、図１２のステップＳ１０１の特徴量抽出処理の詳細な処理例を示すフローチャートである。
【００４８】
まず、例えば外部記憶装置１０７から入力する音響信号のデジタルデータに対して時間周波数解析処理が実行されて、離散時間（例えば分析フレーム）毎に複数の周波数成分毎の周波数成分信号が算出される（ステップＳ２０１）。この処理は、図２の時間周波数解析部２０３の機能を実現する。時間周波数解析処理としては、短時間フーリエ変換、ウェーブレット変換、定Ｑフィルタバンクなどを利用することができる。これにより、離散時間毎の各周波数チャネルの複素信号が得られる。
【００４９】
次に、最大振幅抽出処理が実行される（ステップＳ２０２）。この処理では、離散時間（例えば分析フレーム）毎に、ステップＳ２０１の時間周波数解析処理により得られた複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号が最大振幅信号として抽出される。この処理は、図２の最大振幅抽出部２０４の機能を実現する。このとき、各周波数成分の振幅を先に計算してから最大値を求めてもよいが、パワーの最大値を求め、これの平方根を計算した方が計算負荷的に有利である。
【００５０】
最後に、自己相関演算処理が実行される（ステップＳ２０３）。この処理では、ステップＳ２０２で抽出された最大振幅信号の時系列データの自己相関が演算される。自己相関は例えば、最大振幅信号の時系列データのパワースペクトルの逆フーリエ変換にて求めることができる。
【００５１】
図１４は、図１２のステップＳ１０２のピーク抽出処理の詳細な処理例を示すフローチャートである。ここでは、図１２のステップＳ１０１の特徴量抽出処理で抽出された特徴量から、ピーク抽出が行われる。拍間隔、小節間隔、強弱パターン周期は、このピークに含まれる。
【００５２】
まず、例えばＲＡＭ１０３上の変数である位置（図３から図５の横軸のうち、以下のフローのループで現在処理対象とする横軸位置を示すカウンタ）が、開始位置に設定され、ピークコンテナがクリア（空）される（ステップＳ３０１）。ピークコンテナは、抽出したピーク（位置）を格納するための、例えばＲＡＭ１０３上の配列変数である。
【００５３】
次に、位置に対応する検査範囲（第１の検査範囲：図３から図５の横軸で、現在処理対象となっている位置に対して検査する横軸範囲）が決定される（ステップＳ３０２）。単純に隣接間の自己相関信号値の比較でピーク判定をするとノイズを拾うことがあるので、ノイズを拾いにくい時間範囲を検査するようにする。例えば、図５に例示した楽曲３の波形例では、拍間隔の前後にノイズによるピークが見られ、自己相関はゼロ付近で急激に大きくなるのでこのようなノイズを拾いやすくなるが、こういったノイズは小さな出っ張りであることが多いので、第１の検査範囲を適切に設定すれば簡単に除去できる。また、位置によって検査範囲は変わるので、このように現在処理対象となっている位置毎に第１の検査範囲を決定するようにしている。
【００５４】
そして、ステップＳ３０２で決定された第１の検査範囲内における自己相関値の最大値が取得される（ステップＳ３０３）。
【００５５】
続いて、現在の処理対象位置における自己相関の値とステップＳ３０３で取得された最大値が等しいか否かが判定される（ステップＳ３０４）。
【００５６】
現在の処理対象位置における自己相関の値とステップＳ３０３で取得された自己相関値の最大値が等しくステップＳ３０４の判定がＹｅｓならば、現在の処理対象位置における自己相関の値はピークなので、位置をピークコンテナに追加する（ステップＳ３０５）。
【００５７】
一方、現在の処理対象位置における自己相関の値と、ステップＳ３０３で取得された自己相関値の最大値が等しくなくステップＳ３０４の判定がＮｏならば、現在の処理対象位置における自己相関の値はピークでないので何もしない。
【００５８】
この位置での処理が終了したので、位置が最終位置であるか否かが判定される（ステップＳ３０６）。
【００５９】
最終位置でなくステップＳ３０６の判定がＮｏならば、まだ処理すべき位置があるので、位置が進められ（ステップＳ３０７）、ステップＳ３０２の処理に戻って処理が継続される。
【００６０】
そして、全ての位置の処理が完了すると、ステップＳ３０６の判定で位置が最終位置と等しくなってステップＳ３０６の判定がＹｅｓとなり、図１４のフローチャートの処理が終了して、図１２のステップＳ１０２のピーク抽出処理が終了する。
【００６１】
図１５は、図１２のステップＳ１０３の強弱パターン周期推定処理の詳細な処理例を示すフローチャートである。
【００６２】
まず、図１２のステップＳ１０２のピーク抽出処理で抽出されたピーク群から、検査する範囲内のピークが取得される（ステップＳ４０１）。推定すべき強弱パターン周期は、ピーク抽出処理で抽出されたピーク位置のどれかに該当するので、強弱パターン周期が存在すると仮定される時間範囲内にあるピークを予め取得しておく。仮定される範囲としては、例えば１小節間隔が１．３〜４秒程度の時間範囲内と仮定すると、強弱パターン周期は１または２小節間隔なので、１．３〜８秒程度の時間範囲となる。この時間範囲は、どういったテンポのどういった拍子の楽曲を想定するか等に応じて、自由に定める事が可能である。
【００６３】
次に、検査するピークが、ステップＳ４０１で取得された最初のピークに設定される（ステップＳ４０２）。
【００６４】
そして、検査範囲（第２の検査範囲）が決定される（ステップＳ４０３）。前述したように自己相関信号の波形は全体的に右肩下がりで、強弱パターン周期に対応するピーク毎にそのピークの周囲の波形を抉り取った形状になっている。また、強弱パターン周期の自己相関値はその２倍の時刻の自己相関値と比べて常に大きいので、適切な第２の検査範囲内で最大値になる。例えば、第２の検査範囲は、図３〜図５の図で、検査するピーク位置に相当する横軸の位置の半分より若干小さい横軸の値となる位置から、検査するピーク位置に相当する横軸の位置の２倍より若干大きい横軸の値となる位置に設定される。
【００６５】
次に、ステップＳ４０３で決定された検査範囲内における自己相関の最大値が取得される（Ｓ４０４）。
【００６６】
続いて、検査するピーク位置における自己相関の値と、ステップＳ４０４で取得された自己相関の最大値が等しいかが判定される（ステップＳ４０５）。
【００６７】
検査するピーク位置における自己相関の値と、ステップＳ４０４で取得された自己相関の最大値が等しくステップＳ４０５の判定がＹｅｓならば、検査するピーク位置は強弱パターン周期としての条件を満たすので、強弱パターン周期にこのピーク位置の横軸位置に基づく周期が設定される（ステップＳ４０６）。そして、図１５のフローチャートの処理が終了して、図１２のステップＳ１０３の強弱パターン周期推定処理が終了する。
【００６８】
一方、検査するピーク位置における自己相関の値と、ステップＳ４０４で取得された自己相関の最大値が等しくなくステップＳ４０５の判定がＮｏならば、このピーク位置は強弱パターン周期ではないので、処理が続行され、全ピークの検査が終了したか否かが判定される（ステップＳ４０７）。
【００６９】
全ピークの検査が終了しておらずステップＳ４０７の判定がＮｏならば、検査するピーク位置が次のピークに設定され（ステップＳ４０８）、ステップＳ４０３の処理に戻って、検査処理が続行される。
【００７０】
そして、全ピークの検査が終了しステップＳ４０７の判定がＹｅｓになると、エラー処理が実行される（ステップＳ４０９）。そして、図１５のフローチャートの処理が終了して、図１２のステップＳ１０３の強弱パターン周期推定処理が終了する。強弱パターン周期が見つからなかったという状態は通常あり得ないので、エラーとなる。
【００７１】
以上のようにして、図１２のステップＳ１０３の強弱パターン周期推定処理が実現される。
【００７２】
次に、図１２のステップＳ１０４では、拍間隔が推定される。推定すべき拍間隔は、ステップＳ１０２のピーク抽出処理で抽出されたピーク位置のどれかに該当するので、拍間隔が存在すると仮定する時間範囲内にあるピーク位置のうちで最大の自己相関信号値を持つものが、拍間隔と推定される。例えば、拍間隔が多くの楽曲が入るであろう７５〜１５０ＢＰＭの範囲に入るとすれば０．４〜０．８秒程度の時間範囲、もう少し広めに取って拍間隔が６０〜１８０ＢＰＭの範囲に入るとすればならば０．３３〜１．０秒程度の時間範囲が設定される。予め楽曲のジャンルとそのジャンルでの一般的なＢＰＭの範囲が判っているならば、それが適用されてもよい。
【００７３】
図１６は、図１２のステップＳ１０５の小節間隔計算処理の詳細な処理例を示すフローチャートである。ここでは、図１２のステップＳ１０３の強弱パターン周期推定処理で推定された強弱パターン周期とステップＳ１０４の拍間隔推定処理で推定された拍間隔を使って、小節間隔が計算される。
【００７４】
まず、強弱パターン周期の拍数が計算される（Ｓ５０１）。具体的には、強弱パターン周期が拍間隔で除算されて、その除算結果が整数値に丸められる。
【００７５】
次に、ステップＳ５０１で計算された拍数が所定値以上であるか否かが判定される（Ｓ５０２）。多くの楽曲で４分の６拍子以上が使われることはまずないので、例えば所定値は６に設定される。もちろん、楽曲のジャンルが予め判ってれば、それに合わせた所定値が設定されてもよい。
【００７６】
計算された拍数が所定値未満でステップＳ５０２の判定がＮｏならば、強弱パターン周期は１小節間隔と推定できるので、小節間隔に強弱パターン周期が設定される（ステップＳ５０３）。そして、図１６のフローチャートの処理が終了して、図１２のステップＳ１０５の小節間隔推定処理が終了する。
【００７７】
一方、計算された拍数が所定値以上でステップＳ５０２の判定がＹｅｓならば、強弱パターン周期は２小節間隔と推定できるので、強弱パターン周期を０．５倍したものが小節間隔に設定される（ステップＳ５０４）。なお、強弱パターン周期を０．５倍したものがさらに上記の所定値６以上である場合には、強弱パターン周期を３や４等で除した値を用いることとしても良い。特に、ある種の音楽の場合、４小節でひとまとまりとなる場合も多いので、４で除した値を用いることとしても良い。そして、図１６のフローチャートの処理が終了して、図１２のステップＳ１０５の小節間隔推定処理が終了する。
【００７８】
以上のようにして、本実施形態では、時間周波数解析から得られる最大振幅信号の自己相関を特徴量として用いることにより、図３から図５より明らかなように、ピアノソロなどのような楽曲でもビートの効いた楽曲でも、小節間隔と関連の高い強弱パターン周期や拍間隔の特徴を特徴量中に良く保持することが可能となる。
【００７９】
これは、発音時刻のようなピーキー（時間変動が急峻）な信号の自己相関ではなく、もっと時間変動の緩やかな最大振幅信号の自己相関を特徴量とすることでロバスト性を高めたことに起因する。
【００８０】
また、本実施形態における強弱パターン周期の抽出方法は、従来からある極大値を見つけるものとは異なり、正確に強弱パターン周期を見つけることが可能となる。
【００８１】
これにより、本実施例では、小節間隔の推定精度を向上させることが可能となる。
【００８２】
以上の実施形態に関して、更に以下の付記を開示する。
（付記１）
入力する音響信号に対して時間周波数解析を行って、単位時間毎に複数の周波数成分毎の周波数成分信号を算出する時間周波数解析部と、
前記単位時間毎に、前記複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出する最大振幅抽出部と、
前記単位時間毎の最大振幅信号の時系列データの自己相関信号を導出し、当該自己相関信号を特徴量として抽出する自己相関導出部と、
を備えることを特徴とする特徴量抽出装置。
（付記２）
付記１に記載の特徴量抽出装置によって抽出された自己相関信号を特徴量として、前記音響信号の小節間隔を推定する装置であって、
前記自己相関信号の所定位置から始まる時間範囲内で、第１の時間長を有する時間範囲である第１の検査範囲を移動させながら、当該第１の検査範囲で指定される各時間範囲内で最大値をとる前記自己相関信号の各ピークを抽出するピーク抽出部と、
前記音響信号が表す楽曲に対応する強弱パターン周期が存在すると仮定される時間範囲内で、第２の時間長を有する時間範囲である第２の検査範囲を移動させながら、当該第２の検査範囲で指定される各時間範囲内で最初に最大値をとるピークを前記抽出された各ピークから選択し、該選択したピークに基づいて前記強弱パターン周期を推定する強弱パターン周期推定部と、
前記抽出された各ピークに基づいて、拍間隔を推定する拍間隔推定部と、
前記強弱パターン周期と前記拍間隔とに基づいて小節間隔を計算して推定された小節間隔として出力する小節間隔計算部と、
を備えることを特徴とする小節間隔推定装置。
（付記３）
前記小節間隔計算部は、前記拍間隔に基づいて前記強弱パターン周期の拍数を算出し、当該拍数が所定値に比較して小さければ前記強弱パターン周期を前記小節間隔として算出し、当該拍数が所定値に比較して大きければ前記強弱パターン周期の半分の周期を前記小節間隔として算出する、
ことを特徴とする付記２に記載の小節間隔推定装置。
（付記４）
入力する音響信号に対して時間周波数解析を行って、単位時間毎に複数の周波数成分毎の周波数成分信号を算出し、
前記単位時間毎に、前記複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出し、
前記単位時間毎の最大振幅信号の時系列データの自己相関信号を導出し、当該自己相関信号を特徴量として抽出する、
ことを特徴とする特徴量抽出方法。
（付記５）
付記４に記載の特徴量抽出方法によって抽出された自己相関信号を特徴量として、前記音響信号の小節間隔を推定する方法であって、
前記自己相関信号の所定位置から始まる時間範囲内で、第１の時間長を有する時間範囲である第１の検査範囲を移動させながら、当該第１の検査範囲で指定される各時間範囲内で最大値をとる前記自己相関信号の各ピークを抽出し、
前記抽出された各ピークに基づいて、拍間隔を推定し、
前記音響信号が表す楽曲に対応する強弱パターン周期が存在すると仮定される時間範囲内で、第２の時間長を有する時間範囲である第２の検査範囲を移動させながら、当該第２の検査範囲で指定される各時間範囲内で最初に最大値をとるピークを前記抽出された各ピークから選択し、該選択したピークに基づいて前記強弱パターン周期を推定し、
前記強弱パターン周期と前記拍間隔とに基づいて小節間隔を計算して推定された小節間隔として出力する、
ことを特徴とする小節間隔推定方法。
（付記６）
コンピュータに、
入力する音響信号に対して時間周波数解析を行って、単位時間毎に複数の周波数成分毎の周波数成分信号を算出し、
前記単位時間毎に、前記複数の周波数成分毎の周波数成分信号のうち、振幅が最大の周波数成分信号を最大振幅信号として抽出し、
前記単位時間毎の最大振幅信号の時系列データの自己相関信号を導出し、当該自己相関信号を特徴量として抽出する、
処理を実行させることを特徴とする特徴量抽出プログラム。
（付記７）
付記６に記載の特徴量抽出プログラムによって抽出された自己相関信号を特徴量として、前記音響信号の小節間隔を推定するプログラムであって、
コンピュータに、
前記自己相関信号の所定位置から始まる時間範囲内で、第１の時間長を有する時間範囲である第１の検査範囲を移動させながら、当該第１の検査範囲で指定される各時間範囲内で最大値をとる前記自己相関信号の各ピークを抽出し、
前記抽出された各ピークに基づいて、拍間隔を推定し、
前記音響信号が表す楽曲に対応する強弱パターン周期が存在すると仮定される時間範囲内で、第２の時間長を有する時間範囲である第２の検査範囲を移動させながら、当該第２の検査範囲で指定される各時間範囲内で最初に最大値をとるピークを前記抽出された各ピークから選択し、該選択したピークに基づいて前記強弱パターン周期を推定し、
前記強弱パターン周期と前記拍間隔とに基づいて小節間隔を計算して推定された小節間隔として出力する、
処理を実行させることを特徴とする小節間隔推定プログラム。
【符号の説明】
【００８３】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  入力部
１０５  出力部
１０６  音響入力部
１０７  外部記憶装置
１０８  バス
２０１  小節間隔推定装置
２０２  特徴量抽出部
２０３  時間周波数解析部
２０４  最大振幅抽出部
２０５  自己相関演算部
２０６  ピーク抽出部
２０７  強弱パターン周期推定部
２０８  拍間隔推定部
２０９  小節間隔推定部
【図１】
2015040970.tif 000003
【図２】
2015040970.tif 000004
【図３】
2015040970.tif 000005
【図４】
2015040970.tif 000006
【図５】
2015040970.tif 000007
【図６】
2015040970.tif 000008
【図７】
2015040970.tif 000009
【図８】
2015040970.tif 000010
【図９】
2015040970.tif 000011
【図１０】
2015040970.tif 000012
【図１１】
2015040970.tif 000013
【図１２】
2015040970.tif 000014
【図１３】
2015040970.tif 000015
【図１４】
2015040970.tif 000016
【図１５】
2015040970.tif 000017
【図１６】
2015040970.tif 000018
【図１７】
2015040970.tif 000019
【図１８】
2015040970.tif 000020