(57)【要約】【課題】楽曲のテンポ値を推定する場合、短い処理時間で倍半テンポ値を考慮して、精度良いテンポ値を推定する。【解決手段】受け付けた楽曲の振幅波形から振幅包絡を算出し、その振幅包絡を周波数解析してパワースペクトルを抽出する。そして、楽曲全体にわたるすべての周波数について倍半関係にある周波数のパワースペクトルをその周波数のパワースペクトルに乗算し、パワースペクトルの強い周波数から順に並び替える。一方、楽曲の振幅波形が時間軸とクロスするゼロクロスの値を算出するとともに、あらかじめゼロクロスの値とテンポ値との相関関係を記憶させておく。そして、前記算出されたゼロクロスから相関関係を参酌して、テンポ値を抽出し、このテンポ値に最も近いテンポ値を前記並び替えられたテンポ値から選ぶ。【選択図】図７
2011164497.tif 000002
【特許請求の範囲】
【請求項１】
入力された楽曲から当該楽曲のテンポを推定するテンポ値推定装置において、
楽曲の入力を受け付ける受付手段と、
当該受け付けた楽曲における振幅波形を周波数解析してパワースペクトルを抽出する周波数解析手段と、
楽曲全体にわたるすべての周波数について倍半関係にある周波数のパワースペクトルを考慮した値をそれぞれの周波数のパワースペクトルに付加する倍半処理手段と、
前記受付手段で受け付けた楽曲における振幅波形が時間軸とクロスするゼロクロスの値を算出するゼロクロス算出手段と、
あらかじめゼロクロスの値とテンポ値との相関関係を記憶させた相関記憶手段と、
前記倍半処理手段によって得られたパワースペクトルのうち最大パワースペクトルから順に複数の周波数をテンポ値候補として抽出するとともに、前記ゼロクロス算出手段で算出されたゼロクロスから前記相関関係を参酌し、前記テンポ値候補の中から一のテンポ値を推定する推定手段と、
を設けことを特徴とするテンポ値推定装置。
【請求項２】
前記受付手段で受け付けた楽曲における振幅波形から当該波形の振幅包絡を算出する包絡算出手段を設け、当該算出された包絡波形情報を周波数解析して楽曲全体のパワースペクトルを抽出するようにした請求項１に記載のテンポ値推定装置。
【請求項３】
前記包絡算出手段が、振幅波形から振幅包絡を算出する場合、振幅波形を二乗した波形を所定の平滑化区間ごとに平均値を算出するようにしたものである請求項２に記載のテンポ値推定装置。
【請求項４】
入力された楽曲から当該楽曲のテンポを推定するテンポ値推定方法において、
楽曲の入力を受け付けるステップと、
当該受け付けた楽曲における振幅波形を周波数解析してパワースペクトルを抽出するステップと、
楽曲全体にわたるすべての周波数について倍半関係にある周波数のパワースペクトルを考慮した値をそれぞれの周波数のパワースペクトルに付加するステップと、
前記受け付けた楽曲における振幅波形が時間軸とクロスするゼロクロスの値を算出するステップと、
あらかじめゼロクロスの値とテンポ値との相関関係を記憶させたステップと、
前記倍半処理によって得られたパワースペクトルのうち最大パワースペクトルから順に複数の周波数をテンポ値候補として抽出するとともに、前記算出されたゼロクロスから前記相関関係を参酌し、前記テンポ値候補の中から一のテンポ値を推定するステップと、
を設けことを特徴とするテンポ値推定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽曲からテンポ値を検出できるようにしたテンポ値検出装置に関するものである。なお、ここで「テンポ値」とは、楽曲中に周期的に出現する拍が１分間のうちにいくつ存在するかを示した値（bpm=beat per minute）」を言うものである。
【背景技術】
【０００２】
従来より、楽曲に関する情報を処理する分野において、楽曲の波形情報からテンポ値を推定できるようにした研究が盛んに行われている。
【０００３】
例えば、下記の特許文献１（特開平５−０２７７５１号公報）には、楽曲のテンポ値を推定するために、楽曲から入力された楽曲を周波数解析してパワースペクトルやその微分値を算出し、その微分値の自己相関関数の極大値を求めることによって小節時間長を算出し、その小節時間長と拍子数とからテンポ値を算出する方法が開示されている。
【０００４】
また、下記の特許文献２（特開平７−０６４５４４号公報）にも、楽曲のテンポ値を推定する方法が開示されている。この処理方法は、入力される音響信号の特定周波数帯のレベルを抽出し、この抽出したレベルのピーク値と発生時間を順次記憶するとともに、その記憶されたレベルのピーク値の平均値を算出し、該記憶されたレベルのピーク値のうち、算出した平均値を超えるピーク値のレベルを２個選択する。そして、その選択した２個のレベルの発生間隔毎に、前記記憶した他のレベルが存在するか否かを検索して、他のレベルが該発生間隔毎に存在しているときには、該発生間隔に基づいてテンポデータを生成し、他のレベルが該発生間隔毎に存在しないときには、前記記憶した他のレベルを選択して、同様に検索を行ってテンポ値を推定するようにしたものである。
【０００５】
また、このような特許文献以外にも非特許文献として、下記の非特許文献１に記載されるようなテンポ値推定方法も存在する。このテンポ値推定方法は、事前準備として、13次元のパラメタを用いてGMM（Gaussian mixture model）で分類の学習を行い、テンポ値の候補を選択する場合は、単位区間において、前準備の分類結果に基づいて楽曲を分類し、該当するクラスに最も相応しいテンポ値の候補を当該する単位区間におけるテンポ値として選択する。そして、その後、単位区間ごとに求めたテンポ値から楽曲全体におけるテンポ値の中央値を求め、推定したテンポ値として出力するようにしたものである。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−０２７７５１号公報
【特許文献２】特開平７−０６４５４４号公報
【非特許文献】
【０００７】
【非特許文献１】Xiao et al, "Using a statistic model to capture the association between timbre and perceived tempo", Proc．of 11th ISMIR pp．659-662 2008.
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような手法を用いてテンポ値を推定する場合、次のような問題を有する。
【０００９】
すなわち、上記特許文献１による手法では、１小節における拍を事前にユーザに入力してもらい、その１小節の時間長を求めて前記拍からテンポ値を求めるようにしているため、あらかじめユーザに小節の中の拍を入力してもらわなければならない。このため、多数の楽曲について自動的にテンポ値を求める場合には非常に手間がかかるといった問題がある。
【００１０】
また、上記特許文献２による手法では、このような１小節における拍を入力することなくテンポ値を推定することができるが、この特許文献２による手法では、ピーク値である拍と拍の時間幅からテンポ値を求めるようにしているため、強拍と弱拍を有する楽曲の演奏方法によっては、テンポ値が大きくずれてしまう可能性がある。すなわち、120bpmの楽曲において１拍目と３拍目に強拍が存在する場合（すなわち４／４拍子の演奏の場合）、１小節には第１拍目と第３拍目にピーク値が存在するために、ピーク値のとりかたによっては120bpmの半分の60bpmと判断されてしまう可能性がある。また逆に120bpmの楽曲において、隣接する拍の間に他の楽器の拍が入っている場合は、逆に240bpmと判断されるといういわゆる倍半テンポ値問題を生じてしまう可能性がある。
【００１１】
これに対して、上記非特許文献１に記載される方法では、テンポ値の候補を列挙し、倍半テンポ値問題を解決するために、平均MFCCに基づいて得られたテンポ値の候補からテンポ値を推定できるようにしている。しかしながら、このようなテンポ値の推定方法では、自己相関関数に基づいて複数のピーク値を求め、そのピーク値とピーク値の時間長の逆数からテンポ値を求めるようにしているため、楽曲の時間長が長い場合は自己相関関数の計算量が膨大になってしまう。
【００１２】
そこで、本発明は上記課題に着目してなされたもので、短い処理時間で倍半テンポ値を考慮し、精度良いテンポ値を推定することができるテンポ値推定方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
すなわち、本発明は上記課題を解決するために、入力された楽曲から当該楽曲のテンポを推定するテンポ値推定装置において、楽曲の入力を受け付ける受付手段と、当該受け付けた楽曲における振幅波形を周波数解析してパワースペクトルを抽出する周波数解析手段と、楽曲全体にわたるすべての周波数について倍半関係にある周波数のパワースペクトルを考慮した値をそれぞれの周波数のパワースペクトルに付加する倍半処理手段と、前記受付手段で受け付けた楽曲における振幅波形が時間軸とクロスするゼロクロスの値を算出するゼロクロス算出手段と、あらかじめゼロクロスの値とテンポ値との相関関係を記憶させた相関記憶手段と、前記倍半処理手段によって得られたパワースペクトルのうち最大パワースペクトルから順に対応する周波数をテンポ値候補として抽出するとともに、前記ゼロクロス算出手段で算出されたゼロクロスから前記相関関係を参酌し、前記テンポ値候補の中から一のテンポ値を推定する推定手段とを設けるようにしたものである。
【００１４】
すならち、一般的に、振幅波形のゼロクロスの値とテンポ値とは相関関係を有しており、テンポ値が高ければゼロクロスの値も高くなる。逆に、テンポ値が低ければゼロクロスの値も低くなる。そこで、本発明では、このような相関関係を利用することによって正解のテンポ値を抽出するようにしたので、計算量を少なくした状態で精度良くテンポ値を推定することができるようになる。
【００１５】
また、このような発明において、受け付けた楽曲における振幅波形から当該波形の振幅包絡を算出する包絡算出手段を設け、当該算出された包絡波形情報を周波数解析して楽曲全体のパワースペクトルを抽出するようにする。
【００１６】
このようにすれば、受け付けた波形そのものを周波数解析するのではなく、包絡波形である低周波を周波数解析するので、楽器や音声による高周波波形にとらわれることなく楽曲の大きな流れである拍の位置のパワースペクトルを抽出することができるようになる。
【００１７】
さらに、包絡算出手段で振幅包絡を算出する場合、振幅波形を二乗した波形を所定の平滑化区間ごとに平均値を算出するようにする。
【００１８】
このようにすれば、振幅包絡の算出を表現しつつ、ダウンサンプリングを行うことができるようになる。
【発明の効果】
【００１９】
本発明では、入力された楽曲から当該楽曲のテンポを推定するテンポ値推定装置において、楽曲の入力を受け付ける受付手段と、当該受け付けた楽曲における振幅波形を周波数解析してパワースペクトルを抽出する周波数解析手段と、楽曲全体にわたるすべての周波数について倍半関係にある周波数のパワースペクトルを考慮した値をそれぞれの周波数のパワースペクトルに付加する倍半処理手段と、前記受付手段で受け付けた楽曲における振幅波形が時間軸とクロスするゼロクロスの値を算出するゼロクロス算出手段と、あらかじめゼロクロスの値とテンポ値との相関関係を記憶させた相関記憶手段と、前記倍半処理手段によって得られたパワースペクトルのうち最大パワースペクトルから順に対応する周波数をテンポ値候補として抽出するとともに、前記ゼロクロス算出手段で算出されたゼロクロスから前記相関関係を参酌し、前記テンポ値候補の中から一のテンポ値を推定する推定手段とを設けるようにしたので、計算量を少なくして精度良いテンポ値を推定することができるようになる。
【図面の簡単な説明】
【００２０】
【図１】本発明の一実施の形態におけるテンポ値推定装置の機能ブロック図
【図２】同形態における平滑化ダウンサンプリングの概要を示す図
【図３】同形態におけるパワースペクトルと倍半処理を示す図
【図４】音響パラメタを算出する楽曲のテンポ値の分布を示す図
【図５】同形態におけるゼロクロスの値を示す図
【図６】同形態におけるゼロクロスとテンポ値の相関関係を示す図
【図７】同形態におけるテンポ値推定のためのフローチャート
【発明を実施するための最良の形態】
【００２１】
以下、本発明の一実施の形態について図面を参照して説明する。この実施の形態におけるテンポ値推定装置１は、パーソナルコンピューターや携帯型音楽再生装置、電子楽器などのような情報処理装置によって構成されるものであって、楽曲の振幅波形の情報を受け付けて、そこから一分間に拍となる音が何回出力されるのかを示すテンポ値を電子的に推定できるようにしたものである。より詳しく説明すると、このテンポ置推定装置１は、まず、楽曲の入力を受け付け、その受け付けた楽曲の振幅−時間領域における振幅波形をデータ処理して振幅包絡を算出する。そして、その算出された振幅包絡を周波数解析して楽曲全体のパワースペクトルを抽出し、それらのパワースペクトルのうち、各周波数の倍半関係にあるパワースペクトルをその周波数のパワースペクトルに乗算し、最大パワースペクトルから順にそれに対応する周波数を並び替えるようにする。一方、これと並行して、あらかじめ振幅−時間領域における振幅波形が時間軸とクロスするゼロクロスの値を算出し、また、そのゼロクロスの値とテンポ値との相関関係を示す情報を記憶しておき、その相関関係を示す情報を参照しながら、ゼロクロスの値を用いて前記並び替えられたテンポ値の候補の中から最適なテンポ値を抽出するようにしたものである。以下に、これらの処理を行う機能実現手段の詳細について説明する。なお、これらの機能実現手段は、情報処理装置のＣＰＵや記憶媒体、入力装置や表示出力装置、通信装置などとプログラムなどを協働させて構成される。
【００２２】
まず、受付手段２は、ユーザが所有している楽曲の入力を受け付ける。この楽曲を受け付ける場合、ＣＤ音源として広く普及しているWAVE形式のデジタル信号や、マイクなどを介して取得されたアナログ信号をＡ／Ｄ変換した信号、インターネットラジオで配信された情報やmp3形式の情報などを受け付ける。このようにして受け付けられた楽曲の情報は、図２に示すように、縦軸が振幅、横軸が時間軸となる振幅−時間領域における振幅波形として記憶される。この振幅波形からテンポ値を推定する場合、一般に、人間は単位時間における拍を数えてテンポ値を特定するが、この振幅波形のテンポ値を抽出するには、周期的に出現する拍の出現周期を求める必要がある。通常、拍が存在する時刻には、アクセントとなる強い音が出力され、振幅波形では、大きな振幅を有する時刻が周期的に存在することになる。一方、楽曲の波形は楽器の種類などによって大きく変化し、高周波で変化する波形成分も多く含まれることになる。そこで、振幅波形からテンポ値を推定するためには、低周波数分解能を高くするようにしている。ここで「低周波数分解能」とは、波形情報の低周波の帯域における周波数解析の周波数分解能を示すものである。テンポ値に相当する周波数帯域としては、テンポ値が約50bpm-220bpmの範囲に現実的に含まれるため、低周波の帯域は約1Hz-3Hzとなる。そこで、この低周波数分解能を確保するために包絡情報などを算出して、細かく正確なテンポ値を抽出できるようにする。
【００２３】
包絡算出手段３は、この受付手段２で受け付けた楽曲の振幅−時間領域の振幅波形からその振幅包絡を算出してダウンサンプリングし、低周波数分解能を確保する。低周波数分解能を確保する方法としては、現状の手法として周波数解析のサンプル点数を多くするか、前処理としてサンプリング周波数を落とすダウンサンプリングをする方法が挙げられる。周波数解析のサンプル点数を多くする場合、必要なテンポ推定の精度の細かさを1bpm、周波数解析にフーリエ解析を用いるものとし、解析する波形情報をサンプリング周波数44100Hzとすると約260万以上のサンプル点数が必要となる（必要なサンプル点数2646000=サンプリング周波数44100Hz/(1bpm/60)。ダウンサンプリングを行う場合は、解析する周波数帯域が低周波に限定され、ダウンサンプリング数に応じて周波数解析に必要なサンプル点数が減る。ただし、このとき、帯域制限を行わなければエイリアシングが発生してしまう。これら２つの方法を比較すると、周波数解析のサンプル点数を多くする場合はサンプル点数の値が比較的膨大であり、現実的な方法とは考えられないため、ダウンサンプリングを行うようにする。また、エイリアシングを発生させないための帯域制限は、テンポ値推定に必要な周波数が4Hz以下といった低周波帯域であることから、波形情報の振幅包絡を算出することで、その帯域を通すローパスフィルターとほぼ同じ効果を得ることができ、ダウンサンプリングする前に、まず振幅包絡の算出を行うようにする。
【００２４】
ここで、振幅包絡を算出する場合、平滑化ダウンサンプリングを用いることとする。この平滑化ダウンサンプリングを行う場合、図２に示すように、ダウンサンプリング数ごとの区間である平滑化区間で、振幅の二乗値である音響パワースペクトルの平均値を求め、その値をダウンサンプリング後の波形情報として抽出する。ここで、平滑化区間とは、平滑化ダウンサンプリング後の振幅波形におけるサンプリング周期の時間長に相当し、音響パワースペクトルを求めることは全波整流することに相当する。平滑化ダウンサンプリングの概要について図２を用いて説明すると、図２（ａ）は受付手段２によって受け付けられた振幅波形であり、図２（ｂ）はそれを平滑化ダウンサンプリングしたものである。図２（ｂ）における波形は振幅波形を二乗処理したものであり、その波形における平滑化区間内において波形の平均値を算出してその区間の値として記憶させている。これらの値は、実際には次式によって算出される。
【００２５】
【数１】
2011164497.tif 000003
【００２６】
図２（ｂ）および数１に示すように平滑化ダウンサンプリングでは、一定区間ごとの音響パワースペクトルの平均値を求めることで、振幅包絡の算出を表現しつつ、ダウンサンプリングを行っている。ここで、エイリアシングについて考えると、平滑化区間における音響パワースペクトルの平均値を求めていることが強力なローパスフィルターを通していることに相当し、必要な帯域の制限が行われていることになる。なお、平滑化ダウンサンプリングを行うと、波形情報の値がすべて正となり、直流成分(0Hz)の値が大きくなるため、平滑化ダウンサンプリング後の波形情報を周波数解析する場合はＺ値変換といった平均値を「0」にする正規化処理を行うようにする。
【００２７】
周波数解析手段４は、この包絡算出手段３によって算出された包絡情報をフーリエ変換（FFT）してパワースペクトル−周波数領域におけるパワースペクトルを算出する。このフーリエ変換は解析時間ごとに行われるため、楽曲全体については複数のパワースペクトル−周波数領域のパワースペクトルを算出する。ところで、このように解析されたパワースペクトルについては、基本的に、強拍となる周波数位置に大きなパワースペクトルが存在することになるが、実際には、４／４拍子のように１小節内の１拍目と３拍目に強拍が存在する場合のように最大パワースペクトルを有する周波数とテンポ値とが必ずしも対応するとは限らならないことが多い。そこで、次の倍半処理手段５によってテンポ値推定のためのテンポ値候補を抽出する。
【００２８】
この倍半処理手段５では、まず、テンポ値推定に支配性の高い周波数を求めることで、その周波数からテンポ値を求める。ここで、「支配性の高い周波数」とは、楽曲の全体にわたってパワースペクトルが大きい周波数を示し、所定の閾値よりも大きなパワースペクトルを有する周波数を示す。このとき、テンポ値推定においては、倍半テンポ値問題があるため、その大きなパワースペクトルを有する周波数の倍、または半分の関係がある周波数についても支配性の高い周波数に含まれると考えられる。そのため、正解となりえるテンポ値の候補を列挙する場合、倍半関係を考慮した支配性の高い周波数に対応するテンポ値を候補として列挙する。また、列挙するときには、その支配性の高さが有力なテンポ値の候補であると考えられるため、例えば、テンポ値（周波数）に対応するパワースペクトルを指標として順位付けを行う。この処理の流れを図３に示すと、ばず、楽曲の振幅波形を短時間周波数解析し、その解析結果におけるすべての周波数において、倍半関係の周波数に対応するパワースペクトルの値を乗算する（図３（ａ））。すなわち、100Hzのパワースペクトルには50Hz及び200Hzのパワースペクトルを乗算し、101Hzのパワースペクトルには50.5Hz及び202Hzのパワースペクトルを乗算し、以下どうようにすべての周波数について倍半関係にあるパワースペクトルの値を乗算していく。次に、これらのパワースペクトルを時間軸で合計し（図３（ｂ））、大きなパワースペクトルのピークに対応する基準の周波数（以下、基準周波数という）を得て（図３（ｃ））これを基準のテンポ値とする。これにより、倍半関係のテンポ値に対応するパワースペクトルを互いに強調し、楽曲の全体にわたってパワースペクトルが大きい周波数であるテンポ値の候補を得ることが可能となる。そして、列挙したテンポ値の候補内に、倍半関係のテンポ値がある場合、対応するテンポ値のパワースペクトルを加算した後に、パワースペクトルが大きい順に並び替える（図３（ｄ））。これにより、倍半関係にあるテンポ値の候補のパワースペクトルが大きくなるため、パワースペクトルが大きく倍半関係があるテンポ値が高順位に位置される。
【００２９】
次に、このようにテンポ値の候補を順位付けした後、別の指標を用いてこれらの候補の中から正解となるテンポ値を抽出する。一般に、楽曲の速さの指標については、テンポ値と楽曲の波形情報から算出される「音響パラメタ」がそれに相当すると考えられ、この音響パラメタとテンポ値との相関を求め、相関が高い音響パラメタを楽曲の速さの指標とする。音響パラメタを算出する楽曲の波形情報は、100曲の楽曲群とし、テンポ値はそれぞれの楽曲に対し音楽経験者がハンドラベリングしたものを用いる。用いた楽曲群のテンポ値の分布を、横軸をテンポ値の階級、縦軸を曲数とし、図４に示す。図４に示すように用いた楽曲群のテンポ値は平均的なテンポ値である100bpmを中央に正規分布しており、テンポ値に偏りがないことを確認することができる。このとき、用いた楽曲の音源は、WAVE形式の波形情報とし、サンプリング周波数44100Hz、時間長4-6minのモノラル音源とした。算出する音響パラメタ、及びテンポ値との相関を表１に示す。
【００３０】
【表１】
2011164497.tif 000004
【００３１】
表１に示す音響パラメタの算出についてそれぞれ述べると、音響パワースペクトルの平均値Γave1 及び標準偏差Γ1SD は、時刻x(x=0, 1, 2, ・・・X) における音響パワースペクトルΓ1[x] から得られ、音響パワースペクトルΓ1[x] は、時刻x(x = 0, 1, 2, ・・・X) における元の波形情報をf[x]として次の数２で求められる。
【００３２】
【数２】
2011164497.tif 000005
Fluxの平均値Γave2 及び標準偏差Γ2SD は、時刻x"(x" =0, 1, 2, ・・・X")におけるFluxΓ2[x"]から得られる。FluxΓ2[x"]は、元の波形情報f [x] を短時間周波数解析することで得られ、時刻x"、周波数y における元の波形情報の周波数解析結果をFx" [y] とし数３で求められる。このときの短時間周波数解析はSFFTを用いることとし、用いたサンプル数Y は8192とした。また、この数ごとにシフトして解析することとした。
【００３３】
【数３】
2011164497.tif 000006
【００３４】
Centroidの平均値Γave3 および標準偏差Γ3SD は、時刻x"(x" = 0, 1, 2, ・・・X")におけるCentroidΓ3[x"] から得られ、CentroidΓ3[x"] は、元の波形情報f [x] を短時間周波数解析することで得られ、時刻x"、周波数y における元の波形情報の周波数解析結果をFx" [y] とし数４で求められる。このときの短時間周波数解析は、FluxΓ2[x"] と同じようにSFFT を用いることとし、用いたサンプル数Y は8192とした。また、この数ごとにシフトして解析することとした。
【００３５】
【数４】
2011164497.tif 000007
【００３６】
ZeroCrossingsΓ4 （以下、ゼロクロスという）は、図５に示すように、元の振幅波形情報f[x] が正から負、負から正となる回数（すなわち、時間軸とクロスする回数）であり、これをカウントすることにより得られる。ここで、上述の表１に示した相関を比較すると、ZeroCrossings がテンポ値と高い相関を示している。そのため、楽曲から算出されるZeroCrossingsを楽曲の速さの指標とし、ゼロクロス算出手段６でこの速さの指標に対する値を算出する。このとき、ゼロクロスの値は有力なテンポ値を選択する指標となるため。テンポ値とゼロクロスを回帰分析し、ゼロクロスから求めたテンポ値を最終的な楽曲の速さの指標をＺテンポ値として記憶させるようにしている。
【００３７】
相関記憶手段７は、このゼロクロスの値とＺテンポ値との相関関係を記憶させる。一般にゼロクロスの値とＺテンポ値との関係は、図６に示すように、ゼロクロスの値が大きくなればＺテンポ値の値も大きくなる。そこで、これらの対応関係を相関記憶手段７に記憶させておくようにする。
【００３８】
推定手段８は、前記倍半処理手段５によってパワースペクトル順に並び替えられた周波数の中から、周波数が倍半関係のピーク位置のパワースペクトルを足し合わせ、上位２つのテンポ値の候補を抽出する。そして、ゼロクロスの値からＺテンポ値を回帰方程式によって算出し、列挙した２つのテンポ値候補のうちＺテンポ値に近いテンポ値候補を最終的に推定したテンポ値として出力する。
【００３９】
次に、このように構成された各機能実現手段を用いて楽曲のテンポ値を推定する処理の流れについて図７のフローチャートを用いて説明する。
【００４０】
まず、楽曲からそのテンポ値を推定する場合、WAVE形式の楽曲データを受け付け（ステップＳ１）、その振幅波形を二乗して平滑化区間ごとに平均値を格納する平滑化ダウンサンプリングを行う。これによって振幅包絡の算出を表現しつつ、ダウンサンプリングを行うようにする（ステップＳ２）。そして、このダウンサンプリングされた振幅包絡を正規化する（ステップＳ３）。
【００４１】
次に、この平滑化ダウンサンプリングされた波形情報を短時間周波数解析し（ステップＳ４）、図３（ａ）に示すように、すべての周波数についてその倍半関係にある周波数のパワースペクトルを乗算していく（ステップＳ５）。そして、このパワースペクトルを乗算した後の短時間周波数解析の結果を周波数ごとに時間軸方向に足し合わせ（図３（ｂ））、最大パワースペクトルから所定個数のパワースペクトルを有するテンポ値を候補として並び替えて列挙し、最後に、倍半関係のパワースペクトルを足し合わせて上位所定個数（例えば２個）の候補を抽出する（図３（ｃ）（ｄ））（ステップＳ６）。
【００４２】
また、これと並行して、ステップＳ１で受け付けた振幅波形からゼロクロスの値を算出し（ステップＳ１１）、相関記憶手段７に記憶された情報を参照してＺテンポ値を抽出する（ステップＳ１２）。そして、その抽出されたＺテンポ値に近いテンポ値を選択して（ステップＳ１３）、最終的に推定されたテンポ値として出力する（ステップＳ１４）。
【００４３】
このように上記実施の形態によれば、楽曲の入力を受け付ける受付手段２と、その受け付けた楽曲における時間−振幅波形から当該波形の振幅包絡を算出する包絡算出手段３と、当該振幅包絡を周波数解析してパワースペクトルを抽出する周波数解析手段４と、楽曲全体にわたるすべての周波数について倍半関係にある周波数のパワースペクトルをその周波数のパワースペクトルに乗算する倍半処理手段５と、楽曲における時間−振幅波形の時間軸をクロスするゼロクロスの値を算出するゼロクロス算出手段６と、あらかじめゼロクロスの値とテンポ値との相関関係を記憶させた相関記憶手段７と、前記倍半処理手段５によって得られたパワースペクトルのうち最大パワースペクトルから順に複数のテンポ値候補を抽出するとともに、前記ゼロクロス算出手段６で算出されたゼロクロスから前記相関関係を参酌して、前記テンポ値候補の中からＺテンポ値に近いテンポ値を推定する推定手段８とを設けるようにしたので、計算量を少なくした状態で精度良くテンポ値を推定することができるようになる。
【実施例１】
【００４４】
以下、本実施の形態におけるテンポ推定の評価について述べる。上記実施の形態におけるテンポ推定の評価は、Xiao（上記の非特許文献１）が行った既存のテンポ推定手法の評価に基づいて行うこととした。推定したテンポ値の正解の可否は、Xiaoのテンポ推定の評価方法に基づき、数５を満たした場合に正解とした。
【００４５】
【数５】
2011164497.tif 000008
【００４６】
数５では、推定したテンポ値と正解とするテンポ値の比率を求め、その誤差が0.04以下の場合に正解としている。評価指標は、評価する楽曲群の総数における正解した楽曲の割合である正解率とする。評価に用いた楽曲群は、楽曲の速さの指標の調査に用いたテンポ値に偏りがない100曲の楽曲群とした。
【００４７】
上記実施の形態におけるテンポ推定の評価結果を表２に示す。
【００４８】
【表２】
2011164497.tif 000009
【００４９】
表２では、提案するテンポ推定において候補別のテンポ値の正解率を「正解率1」とし、候補別の倍または半分のテンポ値である倍半関係のテンポ値の正解率を「正解率2」としている。表２より、提案手法は83%の正解率が得られ、候補の違いによる正解率が10%、倍半関係の違いによる正解率が11%であることが確認できる。そのため、候補の誤りを正解とすると93%、倍半関係の誤りを正解とすると94%といった正解率が得られた。
【００５０】
ここで、表1に示した既存のテンポ推定手法と比較すると、既存の手法における最高の正解率が61%であるのに対し、上記手法は83%といった高い正解率が得られていることが分かる。このとき評価に用いた楽曲群が違うことについて言及すると、評価に用いた楽曲群は図４に示すようにテンポ値に偏りがなく、その違いによる正解率の違いは微々たるものであると考えられる。そのため、既存のテンポ推定手法と比較して高い正解率が得られたと確認できる。
【００５１】
なお、本発明は上記実施の形態に限定されることなく種々の態様で実施することができる。
【００５２】
例えば、上記実施の形態における包絡算出手段３では、振幅包絡を二乗して平滑化ダウンサンプリングを用いるようにしたが、振幅情報のまま包絡情報を算出するようにしてもよく、また、平滑化ダウンサンプリングすることなくサンプル点数を多くするか、前処理としてサンプリング周波数を落とす方法を用いても良い。
【００５３】
また、上記実施の形態では、周波数解析されたすべての周波数において倍半処理を行い、パワースペクトルを乗算するようにしたが、楽曲すべてについて所定の閾値よりも強いパワースペクトルを有する周波数について倍半処理を行うようにしてもよい。
【符号の説明】
【００５４】
１・・・テンポ値推定装置
２・・・受付手段
３・・・包絡算出手段
４・・・周波数解析手段
５・・・倍半処理手段
６・・・ゼロクロス算出手段
７・・・相関記憶手段
８・・・推定手段
【図１】
2011164497.tif 000010
【図２】
2011164497.tif 000011
【図３】
2011164497.tif 000012
【図４】
2011164497.tif 000013
【図５】
2011164497.tif 000014
【図６】
2011164497.tif 000015
【図７】
2011164497.tif 000016