(57)【特許請求の範囲】
【請求項１】
転調のある楽曲の波形をビートごとに区切った第１の区間における、前記ビートに関係する第１の特徴量を抽出する第１の抽出手段と、
抽出された前記第１の特徴量の周波数成分から位相成分を除去する除去手段と、
位相成分が除去された前記第１の特徴量に基づいて、ある第１の区間と、他の第１の区間との相関を示す自己相関情報を生成する生成手段と
を備える情報処理装置。
【請求項２】
前記自己相関情報に基づいて、前記ビートを、複数の相関性の高いビートが繰り返されている第２の区間ごとに分割する分割手段と、
分割された前記第２の区間における、前記楽曲の音楽的な特徴を示す第２の特徴量を抽出する第２の抽出手段と、
前記第２の特徴量に基づいて、分割された前記第２の区間における前記楽曲の曲構成を識別する識別手段と
を備える請求項１の情報処理装置。
【請求項３】
前記除去手段は、離散フーリエ変換により、前記第１の特徴量の周波数成分から位相成分を除去する
請求項１の情報処理装置。
【請求項４】
前記識別手段は、前記曲構成として、サビである区間を識別する
請求項２の情報処理装置。
【請求項５】
前記第１の特徴量は、前記第１の区間における、所定のオクターブ分の各音のエネルギーである
請求項１の情報処理装置。
【請求項６】
前記第２の特徴量は、前記第２の区間における、音量、音源に関する情報、またはある周波数帯の利得である
請求項２の情報処理装置。
【請求項７】
前記第２の特徴量は、前記第２の区間の長さ、前記第２の区間が出現した回数、または前記第２の区間が連続して繰り返された回数である
請求項６の情報処理装置。
【請求項８】
前記生成手段は、位相成分が除去された前記第１の特徴量に基づいて、所定のビートごとに、ある第１の区間との相関を算出することにより、前記自己相関情報を生成する
請求項４の情報処理装置。
【請求項９】
前記除去手段は、シャッフルされた前記第１の特徴量の周波数成分から位相成分を除去する
請求項１の情報処理装置。
【請求項１０】
前記除去手段は、前記各音のエネルギーをシフトさせてから、前記第１の特徴量の周波数成分から位相成分を除去する
請求項５の情報処理装置。
【請求項１１】
転調のある楽曲の波形をビートごとに区切った区間における、前記ビートに関係する特徴量を抽出する抽出ステップと、
抽出された前記特徴量の周波数成分から位相成分を除去する除去ステップと、
位相成分が除去された前記特徴量に基づいて、ある区間と、他の区間との相関を示す自己相関情報を生成する生成ステップと
を含む情報処理方法。
【請求項１２】
転調のある楽曲の波形をビートごとに区切った区間における、前記ビートに関係する特徴量を抽出する抽出ステップと、
抽出された前記特徴量の周波数成分から位相成分を除去する除去ステップと、
位相成分が除去された前記特徴量に基づいて、ある区間と、他の区間との相関を示す自己相関情報を生成する生成ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、転調のある楽曲の波形を解析する情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
従来より、楽曲の構造を解析するための種々の方法が提案されている。具体的には、図１の上側に示すような、楽曲の波形を解析することにより、楽曲は、図１の下側に示すように、図中左から右を時間方向とするとき、“イントロ”から開始して、“サビ”、“間奏”、“Ａメロ”、“Ｂメロ”、“サビ”、“サビ”、“間奏”、・・・の順に構成されていることが解析される。そして、それらの解析の結果を基に、楽曲の中で、サビとなる区間がどこであるかを識別したりする。
【０００３】
なお、以下、楽曲の中ほどから曲想の変化する部分であって、特に、曲の最も盛り上がる部分をサビと称し、拍と同様に、拍子を作る単位のことをビート（beat）と称する。すなわち、ビート（拍）は、一定の時間的間隔をもって数えられるもので、小節の中でのビート（拍）の位置によりアクセントの強弱（すなわち、強拍/弱拍）が生まれ、その組み合わせにより、各種の拍子が作られる。
【０００４】
また、入力されてくる音声データの特徴量を抽出し、その特徴量間の類似度を計算して繰り返し区間をリストアップし、リストアップされた繰り返し区間を統合し、転調をともなう繰り返し区間の検出を行って、それらの転調をともなう繰り返し区間を統合し、統合した繰り返し区間の中から、サビ区間として適当なものを選択する方法もある（例えば、特許文献１）。
【０００５】
【特許文献１】特開２００４−２３３９６５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、転調のある楽曲の波形を解析する場合、転調に対応するための演算量が増えることにより、楽曲の波形の解析に時間がかかるという問題があった。
【０００７】
例えば、特開２００４−２３３９６５号公報に開示されている方法は、転調をともなう繰り返し区間の検出を行うことにより、サビ区間として適当なものを選択しているが、適当なサビ区間を選択するまでに時間がかかってしまうことがある。
【０００８】
本発明はこのような状況に鑑みてなされたものであり、より少ない演算量で、転調のある楽曲の波形を解析することができるようにするものである。
【課題を解決するための手段】
【０００９】
本発明の一側面は、転調のある楽曲の波形をビートごとに区切った第１の区間における、前記ビートに関係する第１の特徴量を抽出する第１の抽出手段と、抽出された前記第１の特徴量の周波数成分から位相成分を除去する除去手段と、位相成分が除去された前記第１の特徴量に基づいて、ある第１の区間と、他の第１の区間との相関を示す自己相関情報を生成する生成手段とを備える情報処理装置である。
【００１０】
前記自己相関情報に基づいて、前記ビートを、複数の相関性の高いビートが繰り返されている第２の区間ごとに分割する分割手段と、分割された前記第２の区間における、前記楽曲の音楽的な特徴を示す第２の特徴量を抽出する第２の抽出手段と、前記第２の特徴量に基づいて、分割された前記第２の区間における前記楽曲の曲構成を識別する識別手段とを備えるようにすることができる。
【００１１】
前記除去手段は、離散フーリエ変換により、前記第１の特徴量の周波数成分から位相成分を除去するようにすることができる。
【００１２】
前記識別手段は、前記曲構成として、サビである区間を識別するようにすることができる。
【００１３】
前記第１の特徴量は、前記第１の区間における、所定のオクターブ分の各音のエネルギーであるようにすることができる。
【００１４】
前記第２の特徴量は、前記第２の区間における、音量、音源に関する情報、またはある周波数帯の利得であるようにすることができる。
【００１５】
前記第２の特徴量は、前記第２の区間の長さ、前記第２の区間が出現した回数、または前記第２の区間が連続して繰り返された回数であるようにすることができる。
【００１６】
前記生成手段は、位相成分が除去された前記第１の特徴量に基づいて、所定のビートごとに、ある第１の区間との相関を算出することにより、前記自己相関情報を生成するようにすることができる。
【００１７】
前記除去手段は、シャッフルされた前記第１の特徴量の周波数成分から位相成分を除去するようにすることができる。
【００１８】
前記除去手段は、前記各音のエネルギーをシフトさせてから、前記第１の特徴量の周波数成分から位相成分を除去するようにすることができる。
【００１９】
本発明の一側面は、転調のある楽曲の波形をビートごとに区切った区間における、前記ビートに関係する特徴量を抽出する抽出ステップと、抽出された前記特徴量の周波数成分から位相成分を除去する除去ステップと、位相成分が除去された前記特徴量に基づいて、ある区間と、他の区間との相関を示す自己相関情報を生成する生成ステップとを含む情報処理方法である。
【００２０】
本発明の一側面は、転調のある楽曲の波形をビートごとに区切った区間における、前記ビートに関係する特徴量を抽出する抽出ステップと、抽出された前記特徴量の周波数成分から位相成分を除去する除去ステップと、位相成分が除去された前記特徴量に基づいて、ある区間と、他の区間との相関を示す自己相関情報を生成する生成ステップとをコンピュータに実行させるプログラムである。
【００２１】
本発明の一側面においては、転調のある楽曲の波形をビートごとに区切った第１の区間における、前記ビートに関係する第１の特徴量が抽出され、抽出された前記第１の特徴量の周波数成分から位相成分が除去され、位相成分が除去された前記第１の特徴量に基づいて、ある第１の区間と、他の第１の区間との相関を示す自己相関情報が生成される。
【発明の効果】
【００２２】
以上のように、本発明の一側面によれば、少ない演算量で、転調のある楽曲の波形を解析することができる。
【発明を実施するための最良の形態】
【００２３】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書または図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書または図面に記載されていることを確認するためのものである。従って、明細書または図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００２４】
本発明の一側面の情報処理装置（例えば、図２のパーソナルコンピュータ１）は、転調のある楽曲の波形をビートごとに区切った第１の区間における、ビートに関係する第１の特徴量（例えば、ビート特徴量）を抽出する第１の抽出手段（例えば、図３のビート特徴量抽出部４１）と、抽出された第１の特徴量の周波数成分から位相成分を除去する除去手段（例えば、図３のビート特徴量除去部４２）と、位相成分が除去された第１の特徴量に基づいて、ある第１の区間と、他の第１の区間との相関を示す自己相関情報（例えば、図１５の自己相関マップ）を生成する生成手段（例えば、図３の自己相関マップ生成部４３）とを備える。
【００２５】
自己相関情報に基づいて、ビートを、複数の相関性の高いビートが繰り返されている第２の区間ごとに分割する分割手段（例えば、図３の区間分割部４４）と、分割された第２の区間における、楽曲の音楽的な特徴を示す第２の特徴量（例えば、音楽特徴量）を抽出する第２の抽出手段（例えば、図３の音楽特徴量抽出部４５）と、第２の特徴量に基づいて、分割された第２の区間における楽曲の曲構成（例えば、サビ）を識別する識別手段（例えば、図３のサビ識別部４６）とを備えるようにすることができる。
【００２６】
除去手段は、離散フーリエ変換により、第１の特徴量の周波数成分から位相成分を除去するようにすることができる。
【００２７】
識別手段は、曲構成として、サビである区間を識別するようにすることができる。
【００２８】
第１の特徴量は、第１の区間における、所定のオクターブ（例えば、７オクターブ）分の各音（例えば、Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂであるコード）のエネルギーであるようにすることができる。
【００２９】
第２の特徴量は、第２の区間における、音量、音源に関する情報、またはある周波数帯の利得であるようにすることができる。
【００３０】
第２の特徴量は、第２の区間の長さ、第２の区間が出現した回数、または第２の区間が連続して繰り返された回数であるようにすることができる。
【００３１】
生成手段は、位相成分が除去された第１の特徴量に基づいて、所定のビートごとに、ある第１の区間との相関を算出することにより、自己相関情報（例えば、図２３および図２４の自己相関マップ）を生成するようにすることができる。
【００３２】
除去手段は、シャッフルされた第１の特徴量の周波数成分から位相成分を除去するようにすることができる。
【００３３】
除去手段は、各音のエネルギーをシフトさせてから、第１の特徴量の周波数成分から位相成分を除去するようにすることができる。
【００３４】
本発明の一側面の情報処理方法またはプログラムは、転調のある楽曲の波形をビートごとに区切った区間における、ビートに関係する特徴量を抽出する抽出ステップ（例えば、図４のステップＳ２の処理）と、抽出された特徴量の周波数成分から位相成分を除去する除去ステップ（例えば、図４のステップＳ３の処理）と、位相成分が除去された特徴量に基づいて、ある区間と、他の区間との相関を示す自己相関情報を生成する生成ステップ（例えば、図４のステップＳ４の処理）とを含む。
【００３５】
本発明の一側面のプログラムは、記録媒体（例えば、図２のリムーバブルメディア２１）に記録することができる。
【００３６】
以下、図面を参照しながら本発明の実施の形態について説明する。
【００３７】
図２は、パーソナルコンピュータ１のハードウェアの構成の例を説明するブロック図である。
【００３８】
パーソナルコンピュータ１は、楽曲のデータを記録し、その楽曲のデータから再生される楽曲の波形を解析するための所定の処理を行う機器であり、本発明の情報処理装置の一例である。
【００３９】
図２の例のパーソナルコンピュータ１において、CPU（Central Processing Unit）１１は、ROM（Read Only Memory）１２に記憶されているプログラム、または記録部１８からRAM（Random Access Memory）１３にロードされたプログラムに従って各種の処理を実行する。RAM１３にはまた、CPU１１が各種の処理を実行する上において必要なデータなども適宜記憶される。
【００４０】
CPU１１、ROM１２、およびRAM１３は、バス１４を介して相互に接続されている。このバス１４にはまた、入出力インターフェース１５も接続されている。
【００４１】
入出力インターフェース１５には、キーボード、マウスなどよりなる入力部１６、スピーカ、LCD（Liquid Crystal Display）などのディスプレイなどよりなる出力部１７、ハードディスクなどより構成される記録部１８、並びにインターネットなどのネットワークを介しての他の機器との通信処理を制御する通信部１９が接続されている。
【００４２】
入出力インターフェース１５にはまた、必要に応じてドライブ２０が接続され、磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリなどのリムーバブルメディア２１が適宜装着され、それらから読み出されたコンピュータプログラムが、必要に応じて記録部１８にインストールされる。
【００４３】
なお、パーソナルコンピュータ１のハードウェアの構成は、図２の例に限定されず、後述する図３の機能的構成を少なくとも有していればよい。
【００４４】
図３は、図２のパーソナルコンピュータ１のCPU１１により実行されるソフトウェアの機能的構成例を示すブロック図である。
【００４５】
楽曲構造解析部３１は、（転調のある）楽曲の波形を解析するための所定の処理を行う。
【００４６】
楽曲構造解析部３１は、ビート特徴量抽出部４１、自己相関マップ生成部４２、区間分割部４３、音楽特徴量抽出部４４、およびサビ識別部４５を含むようにして構成される。
【００４７】
ビート特徴量抽出部４１は、ビート特徴量抽出の処理を行って、ビートごとに抽出される特徴量であるビート特徴量を抽出する。ビート特徴量抽出部４１は、抽出したビート特徴量をビート特徴量除去部４２に供給する。なお、ビート特徴量抽出の処理の詳細は後述する。
【００４８】
ビート特徴量除去部４２は、ビート特徴量抽出部４１から供給されるビート特徴量の位相成分を除去する。ビート特徴量除去部４２は、位相成分が除去されたビート特徴量を自己相関マップ生成部４３に供給する。
【００４９】
自己相関マップ生成部４３は、ビート特徴量除去部４２から供給される、位相成分が除去されたビート特徴量を基に、自己相関マップ生成の処理を行って、自己相関マップを生成する。自己相関マップ生成部４３は、生成した自己相関マップを区間分割部４４に供給する。なお、自己相関マップ生成の処理の詳細は後述する。
【００５０】
区間分割部４４は、自己相関マップ生成部４３から供給される自己相関マップを基に、楽曲の波形が同一のフレーズを複数回繰り返している区間ごとに分割する（セグメンテーションする）。
【００５１】
音楽特徴量抽出部４５は、同一の（似ている）フレーズごとに分割されたそれぞれの区間（の楽曲の波形）から、音楽的な特徴量である音楽特徴量を抽出する。音楽特徴量抽出部４５は、抽出した音楽特徴量をサビ識別部４６に供給する。
【００５２】
また、音楽特徴量抽出部４５は、同一の（似ている）フレーズごとに分割されたそれぞれの区間（の楽曲の波形）から、音楽特徴量以外のその他の特徴量を抽出する。音楽特徴量抽出部４５は、抽出したその他の特徴量をサビ識別部４６に供給する。
【００５３】
サビ識別部４６は、音楽特徴量抽出部４５から供給される音楽特徴量またはその他の特徴量を基に、同一の（似ている）フレーズごとに分割されたそれぞれの区間（の楽曲の波形）から、サビである区間を識別する。
【００５４】
なお、本実施の形態では、パーソナルコンピュータ１は、上述した図２のハードウェア構成を有しているので、楽曲構造解析部３１は、例えば、図２のCPU１１が実行するアプリケーションソフトウェアとして構成されるが、それ以外にも、パーソナルコンピュータ１のハードウェア構成を図２の構成とは異ならせることで、楽曲構造解析部３１は、ハードウェア単体として構成することもできるし、ソフトウェアとハードウェアの組み合わせとして構成することもできる。
【００５５】
ところで、上述したように、楽曲の波形から、その楽曲の曲構成を解析することにより、その楽曲のサビとなる区間を識別することができる。したがって、次に、図４のフローチャートを参照して、楽曲構造解析部３１による、サビ識別の処理について説明する。
【００５６】
ステップＳ１において、楽曲構造解析部３１は、楽曲の波形からビートを検出する。例えば、ステップＳ１において、楽曲構造解析部３１は、MP3（MPEG Audio Layer-3）やAAC（Advanced Audio Coding）などの方式で音声圧縮された音声信号より再生される楽曲の波形から、テンポ、拍子、または小節などの位置を検出する。
【００５７】
図５は、楽曲の波形から検出されるビートの例を示す図である。
【００５８】
図５の上側で示される楽曲の波形から検出されるビートは、図５の下側に示すように、楽曲の波形を複数に分割している、図中垂直方向の線により区切られた区間により示されている。すなわち、それらの線のうち、４つおきに示されている太い線は、小節の先頭を示し、その太線により区切られた区間の中の、さらに細い線で区切られた４つの区間のそれぞれが、テンポ（４分音符の長さ）を示している。すなわち、図５に示される楽曲の波形は、図中下側の波形を分割する線により区切られた区間ごとに付されている数字（１乃至４）で示されるように、４ビートの楽曲となる。
【００５９】
すなわち、例えば、楽曲構造解析部３１は、図５で示すように、図中上側に示す楽曲の波形から、図中下側に示すビートを検出する。
【００６０】
図４のフローチャートに戻り、ステップＳ２において、ビート特徴量抽出部４１は、ビート特徴量抽出の処理を行って、ビート特徴量を抽出する。
【００６１】
図６は、楽曲の波形のビートごとに抽出されるビート特徴量について説明する図である。
【００６２】
図６に示される楽曲の波形においては、図５の下側と同様に、楽曲の波形がビートごとに分割されており（図６に示す例では１２区間に分割されている）、ビート特徴量抽出部４１は、それらの分割されているビートごとに、それぞれ、ビート特徴量を抽出する。
【００６３】
ここで、ステップＳ２における、ビート特徴量抽出部４１による、ビート特徴量抽出の処理の詳細について、図７のフローチャートを参照して説明する。
【００６４】
ステップＳ１１において、ビート特徴量抽出部４１は、ビートごとに分割されている楽曲の波形から、例えば、ビートごとに７オクターブ分の各音のエネルギーを算出する。
【００６５】
図８は、ビート特徴量抽出部４１による、ビート特徴量抽出の処理について説明する図である。
【００６６】
図８で示すように、例えば、７オクターブ分の各音のエネルギーを算出する場合、オクターブ１乃至オクターブ７（以下、Ｏ１乃至Ｏ７とも称する）のそれぞれの、Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂであるコードのエネルギーを算出することになる。ここで、１オクターブには、周波数の低い方から、Ｃ（ド），Ｃ＃，Ｄ（レ），Ｄ＃，Ｅ（ミ），Ｆ（ファ），Ｆ＃，Ｇ（ソ），Ｇ＃，Ａ（ラ），Ａ＃，Ｂ（シ）の１２の音程（音）が含まれる。例えば、オクターブ１（Ｏ１）のＣ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂの１２の音程を、それぞれ、Ｃ１，Ｃ＃１，Ｄ１，Ｄ＃１，Ｅ１，Ｆ１，Ｆ＃１，Ｇ１，Ｇ＃１，Ａ１，Ａ＃１，Ｂ１と称し、オクターブ２（Ｏ２）のＣ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂの１２の音程を、それぞれ、Ｃ２，Ｃ＃２，Ｄ２，Ｄ＃２，Ｅ２，Ｆ２，Ｆ＃２，Ｇ２，Ｇ＃２，Ａ２，Ａ＃２，Ｂ２と称する。また、オクターブ３（Ｏ３）乃至オクターブ７（Ｏ７）についても同様である。
【００６７】
すなわち、ビート特徴量抽出部４１は、例えば、ビートごとに分割されている楽曲の波形から、Ｃ１乃至Ｂ７のそれぞれのエネルギーを算出する。
【００６８】
ここで、７オクターブ分の各音（Ｃ１乃至Ｂ７）のエネルギーを算出する方法であるが、例えば、ビートごとに分割されている楽曲の波形を、音程および時間により解析することで、各音のエネルギーを算出する。次に、図９および図１０を参照して、７オクターブ分の各音のエネルギーを算出する方法について説明する。
【００６９】
図９は、音程と時間による各音（Ｃ１乃至Ｂ７）のエネルギーの分布の例を示す図である。
【００７０】
図９で示される例において、横軸方向は時間を示し、図中左から右方向に時間が進むことを示している。また、縦軸方向は音程を示し、図中下から上方向になるにつれて音程が高くなる（周波数が高くなる）ことを示す。
【００７１】
図中の黒で示される領域と白で示される領域とがあるが、黒で示される領域ほど、エネルギーが強いことを示し、図中の白で示される領域ほどエネルギーが弱くなることを示している。なお、図９の例では、説明を分かり易くするために、エネルギーの強さを黒と白の２色により表現しているが、実際には、さらに細かくエネルギーの強さの分布を表現するようにしてもよい。
【００７２】
図中横方向の６本の点線は、説明を分かり易くするために引かれた線であり、これらの点線により区切られている７つの区間のそれぞれが１オクターブ分を示し、すなわち、７つの区間により、Ｏ１乃至Ｏ７の７オクターブに分割されている。
【００７３】
例えば、図９で示される例において、図中下から１番目乃至３番目の区間であるＯ１乃至Ｏ３のそれぞれでは、各音のエネルギーは、とびとびに分布しているが、図中下から４番目乃至７番目の区間であるＯ４乃至Ｏ７のそれぞれでは、各音のエネルギーは、ほぼ全体的に分布していることになる。
【００７４】
ビート特徴量抽出部４１は、ビートごとに７オクターブ分のエネルギーを算出する場合、図１０に示すように、ビート特徴量を抽出するビートの時間範囲における信号を切り出し、その切り出した信号のエネルギーを時間により平均する。その結果、ビート特徴量抽出部４１は、図１０の右側のグラフで示すような、各音（Ｃ１乃至Ｂ７）のエネルギーを算出することができる。
【００７５】
図７のフローチャートに戻り、ステップＳ１２において、ビート特徴量抽出部４１は、算出された各音のエネルギーに重み付けをする。例えば、ステップＳ１２において、ビート特徴量抽出部４１は、図８に示すように、算出された７オクターブ分の各音（Ｃ１乃至Ｂ７）のエネルギーに、それぞれ重み付けをする。
【００７６】
ここで、各音（Ｃ１乃至Ｂ７）のエネルギーに重み付けをする方法であるが、ビート特徴量抽出部４１は、例えば、ガウス分布などにより重みを算出し、算出された重みを正規化することにより、各音（Ｃ１乃至Ｂ７）における重みを特定して、重み付けをする。
【００７７】
具体的には、ガウス分布による重みＷ（Ｎ）は、式（１）により算出される。
【００７８】
Ｗ（Ｎ）＝Exp（−（Ｎ−Ｇｍ）×（Ｎ−Ｇｍ）/（２×Ｇｖ×Ｇｖ））・・・（１）
【００７９】
なお、式（１）において、Ｇｍは、最も重みの高い音程を示し、Ｇｖは、重みの広がりを示しており、それぞれ所定の値が設定される。また、Ｎは、音程の数を示し、すなわち、音程の数（例えば、図８の場合、Ｃ１乃至Ｂ７）だけガウス分布による重みＷ（Ｎ）が算出されることになる。そして、算出された重みＷ（Ｎ）は、正規化されることになる。
【００８０】
このように、各音（Ｃ１乃至Ｂ７）に対して、重み付けを行うことにより、例えば、高い周波数帯の音や低い周波数帯の音などの関係のない音を取り除くことができる。
【００８１】
図７のフローチャートに戻り、ステップＳ１３において、ビート特徴量抽出部４１は、ビート特徴量を抽出して、ビート特徴量抽出の処理は終了する。
【００８２】
例えば、ステップＳ１３において、ビート特徴量抽出部４１は、図８に示すように、重み付けがされたＣ１乃至Ｂ７の中から、Ｃ１，Ｃ２，Ｃ３，Ｃ４，Ｃ５，Ｃ６，Ｃ７を加算することにより、Ｃであるコードのエネルギーを抽出し、Ｃ＃１，Ｃ＃２，Ｃ＃３，Ｃ＃４，Ｃ＃５，Ｃ＃６，Ｃ＃７を加算することにより、Ｃ＃であるコードのエネルギーを抽出する。また、同様に、ビート特徴量抽出部４１は、重み付けされたＣ１乃至Ｂ７の中から、Ｄ１乃至Ｄ７を加算することにより、Ｄであるコードのエネルギーを抽出し、Ｄ＃１乃至Ｄ＃７を加算することにより、Ｄ＃であるコードのエネルギーを抽出し、Ｅ１乃至Ｂ７も同様に加算することにより、Ｅ乃至Ｂであるコードのそれぞれのエネルギーが抽出される。そして、ビート特徴量抽出部４１は、図８に示すように、ビート特徴量として、Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂの１２音分のエネルギーを抽出する。
【００８３】
すなわち、ビート特徴量抽出部４１は、ステップＳ１１乃至ステップＳ１３の処理により、ビートごとに分割されている楽曲の波形のそれぞれの区間におけるビート特徴量を算出する。
【００８４】
なお、ビート特徴量抽出部４１が抽出するビート特徴量は、上述した例に限らず、例えば、ステップＳ１３の処理における加算の処理を行わずに、そのまま８４（１２×７）個のエネルギーを使用するなど、ビートごとに分割されている区間ごとの特徴量であればよい。
【００８５】
図４のフローチャートに戻り、ステップＳ３において、ビート特徴量除去部４２は、ビート特徴量抽出部４１から供給されるビート特徴量の位相成分を除去し、位相成分が除去されたビート特徴量を自己相関マップ生成部４３に供給する。
【００８６】
例えば、ステップＳ３において、ビート特徴量除去部４２は、ビートごとに分割されている楽曲の波形から、相関を算出する区間を特定する。ビート特徴量除去部４２は、特定された区間における抽出されたビート特徴量に対して、離散フーリエ変換（DFT（Discrete Fourier Transform））を施すことにより、抽出されたビート特徴量の位相成分を除去する。
【００８７】
図１１は、あるビート特徴量と、他のビート特徴量との相関について説明する図である。
【００８８】
図１１で示される例において、ビートごとに分割されている楽曲の波形のそれぞれのビート特徴量を、それぞれ、楽曲の波形の下側のＣ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂである１２音分のコード（図１１の例では、Ｃ，Ｂのコード名のみを記載している）を示している１２個の四角で表現している。
【００８９】
ある楽曲の波形においては、例えば、位置Ｘを含んでいる区間（のビート特徴量）と、位置Ｙを含んでいる区間（のビート特徴量）との相関（異なる２箇所の相関）を算出する場合、位置Ｘを含んでいる区間から時間方向に後ろとなる、図中左下がり斜線でハッチングされた４区間（４ビート）分のビート特徴量と、位置Ｙを含んでいる区間から時間方向に後ろとなる、図中右下がり斜め線でハッチングされた４区間（４ビート）分のビート特徴量との相関を算出する。
【００９０】
このとき、例えば、ビート特徴量除去部４２は、相関を算出する、図中左下がり斜線および右下がり斜め線によりハッチングされた４区間分のビート特徴量のそれぞれに対して、離散フーリエ変換を施すことにより、それらのビート特徴量の位相成分を除去する。
【００９１】
すなわち、例えば、ビート特徴量除去部４２は、図１２に示すように、図１１の左下がり斜線でハッチングされた４区間（４ビート）のビート特徴量に対して、離散フーリエ変換を施して位相成分を除去することにより、変換前に、４８（１２個×４区間）個あったビート特徴量を、２５（１２×４/２＋１）個に減少させる。
【００９２】
同様に、例えば、ビート特徴量除去部４２は、図１１の右下がり斜線でハッチングされた４区間（４ビート）分のビート特徴量に対して、離散フーリエ変換を施して位相成分を除去することにより、ビート特徴量を、４８個から２５個に減少させる。
【００９３】
このとき、離散フーリエ変換により得られたビート特徴量（例えば、２５個のビート特徴量）は、図１３に示すように、例えば、“ドミソド”をキーＣやキーＤ（キーＣと比較してキーが２個上に上がっている）で演奏したときなどにおいて、ＣやＤなどの調によらず一定となる。すなわち、転調のある楽曲において、離散フーリエ変換により得られたビート特徴量は、転調とは関係なく一定であるので、この２５個のビート特徴量同士の相関を１度計算することにより、転調に対応した相関の計算を行うことができる。その結果、相関に関する演算量を減らすことができるので、より少ない演算量で、転調のある楽曲の波形を解析することができる。
【００９４】
なお、ビート特徴量の相関を算出する場合の区間であるが、上述した４区間（４ビート）に限らず、例えば、１，８，または１０などであってもよく、また、その区間も、基準となる位置（例えば、図１１のＸ，Ｙ）から時間方向に後方とは限らず、前方や前後を含むようにしてもよい。すなわち、ビート特徴量の相関を算出する区間は、例えば、図１１において、位置Ｘを含んでいる区間から前方３区間（３ビート）と、後方６区間（６ビート）の合計８区間（８ビート）のビート特徴量としてもよい。
【００９５】
また、上述した例において、ビート特徴量除去部４２は、離散フーリエ変換により、ビート特徴量の位相成分を除去するとして説明したが、本発明はそれに限らず、ビート特徴量の位相成分を除去できる方法であればよい。
【００９６】
図４のフローチャートに戻り、ステップＳ４において、自己相関マップ生成部４３は、ビート特徴量除去部４２から供給される、位相成分が除去されたビート特徴量を基に、自己相関マップ生成の処理を行って、自己相関マップを生成する。
【００９７】
ここで、ステップＳ４における、自己相関マップ生成部４３による、自己相関マップ生成の処理の詳細について、図１４のフローチャートを参照して説明する。
【００９８】
ステップＳ２１において、自己相関マップ生成部４３は、ビート特徴量除去部４２から供給される、図１１に示すような、位置Ｘを含んでいる４区間（図中左下がり斜線でハッチングされた区間）の位相成分が除去されたビート特徴量と、位置Ｙを含んでいる４区間（図中右下がり斜線でハッチングされた区間）の位相成分が除去されたビート特徴量との相関を算出する。
【００９９】
換言すれば、自己相関マップ生成部４３は、転調のある楽曲に対応するために、数ビート分のビート特徴量を離散フーリエ変換した結果のうち、ノルム成分のみを用いて相関を算出しているとも言える。
【０１００】
具体的には、ビート特徴量の相関は、例えば、式（２）により算出される。
【０１０１】
【数１】
0004465626.tif 000002
【０１０２】
なお、式（２）において、例えば、Ｘは、図１１の位置Ｘを含んでいる４区間（４ビート）の位相成分が除去されたビート特徴量を示し、Ｙは、図１１の位置Ｙを含んでいる４区間（４ビート）の位相成分が除去されたビート特徴量を示す。
【０１０３】
ステップＳ２２において、自己相関マップ生成部４３は、算出された各ビート間の相関に基づいて、自己相関マップを生成する。
【０１０４】
図１５は、自己相関マップ生成部４３により生成される、自己相関マップの例を示す図である。
【０１０５】
図１５で示される自己相関マップの例において、水平方向の軸は、ある楽曲（の１曲中）の開始から終了までのビートを表しており、その時間の方向は、図中左から右に向かう方向とされている。また、垂直方向の軸は、水平方向の軸で示した楽曲と同一の楽曲（の１曲中）の開始から終了までのビートを表しており、その時間の方向は、図中上から下に向かう方向とされている。すなわち、水平方向の軸は、図中右に行くほど、その楽曲の終わりの方となり、垂直方向の軸は、図中下に行くほど、その楽曲の終わりの方となる。なお、水平方向の軸と、垂直方向の軸とは、同一の楽曲のビートを表しているので、その軸の長さは同一となっている。
【０１０６】
また、図中の黒で示されている領域は、水平方向の軸と垂直方向の軸により特定される楽曲の各ビートの相関が高いことを示し、図中の白で示されている領域は、水平方向の軸と垂直方向の軸により特定される楽曲の各ビートの相関が小さいことを示す。なお、当然ながら、図中の正方形で示す自己相関マップの左上から右下に伸びる対角線は、水平方向の軸と垂直方向の軸により特定される楽曲のビートが同一となる箇所であるので、図中の黒い線（対角線）で示すように相関が高いことになる。
【０１０７】
図１５の自己相関マップの例は、例えば、式（２）により算出された、ビート特徴量の相関に基づいて、ビート間の相関の高い部分を黒で示し、ビート間の相関の小さい部分を白で表していることになる。すなわち、自己相関マップは、ある楽曲において同じフレーズとなる部分（相関のある部分）を、黒い線により表している図となる。
【０１０８】
図４のフローチャートに戻り、ステップＳ５において、区間分割部４４は、自己相関マップ生成部４３から供給される自己相関マップを基に、楽曲の波形が同一のフレーズ（似ているフレーズ）を複数回繰り返している区間ごとに分割する（セグメンテーションする）。
【０１０９】
具体的には、図１６の例で示されるように、図１５の自己相関マップの例において、上から１番目の点線Ａで囲まれる領域では、ほぼ同様の（似ている）模様となる右下斜め線が４回出現しており、その出現している区間を区間Ａとし、上から２番目の点線Ｃで囲まれる領域では、ほぼ同様の模様となる右下斜め線が２回出現しており、その出現している区間を区間Ｃとする。また、同様に、上から３番目の点線Ｂで囲まれる領域では、ほぼ同様の模様となる右下斜め線が２回出現しており、その出現している区間を区間Ｂとし、上から４番目の点線Ｄで囲まれる領域では、ほぼ同様の模様となる右下斜め線が２回出現しており、その出現している区間を区間Ｄとする。さらに、図示はしないが、同様に、ほぼ同様の模様となる右下斜め線が出現している区間を、それぞれ、区間Ｅ，区間Ｆ，区間Ｇ，・・・とする。
【０１１０】
このように、同一のフレーズを複数回繰り返している区間ごとに分割された図１６の自己相関マップを、図１６の水平方向の軸で示す楽曲のビートに合わせて表現すると、図１７のように表現することができる。すなわち、図１７は、似ているフレーズとなる区間ごとに分割された楽曲（の波形）を示す。
【０１１１】
図１７において、楽曲は、図１６で分割した区間に対応して、Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｂ，Ｂ、Ｃ，・・・である区間の順に、それぞれに分割されている。なお、その時間の方向は、図中左から右に向かう方向となり、それぞれの区間においては、より長い区間の方が、その区間が長い時間再生されることを示し、逆に、より短い区間の方が、その区間が短い時間再生されることを示している。
【０１１２】
図４のフローチャートに戻り、ステップＳ６において、音楽特徴量抽出部４５は、同一の（似ている）フレーズごとに分割されたそれぞれの区間（の楽曲の波形）から、音楽特徴量を抽出し、抽出した音楽特徴量をサビ識別部４６に供給する。
【０１１３】
ここで、音楽特徴量抽出部４５により抽出される音楽特徴量は、例えば、音量、音源に関する情報、ある周波数帯の利得、周波数のバランス、音の多さ、ドラムやベースなどのリズム楽器の割合、または、ボーカルが存在するかなどの音楽的な特徴量となる。
【０１１４】
図１８は、楽曲の波形の分割された区間ごとに抽出される音楽特徴量について説明する図である。
【０１１５】
図１８に示される分割された区間は、図１７と同様に、図１６の自己相関マップを分割した区間に対応して分割されており（Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｂ，Ｂ，Ｃ，・・・である区間の順に、それぞれに分割されている）、音楽特徴量抽出部４５は、それらの分割されている区間ごとに、それぞれ、例えば、音量などの音楽特徴量を抽出する。
【０１１６】
図４のフローチャートに戻り、また、ステップＳ６において、音楽特徴量抽出部４５は、同一の（似ている）フレーズごとに分割されたそれぞれの区間（の楽曲の波形）から、音楽特徴量以外のその他の特徴量を抽出し、抽出したその他の特徴量をサビ識別部４６に供給する。
【０１１７】
ここで、音楽特徴量抽出部４５により抽出されるその他の特徴量は、例えば、分割されたある区間の長さ、１曲中にある区間が何回出現するかの回数、または、ある区間が繰り返される回数などの特徴量となる。
【０１１８】
図１９は、楽曲の分割された区間ごとに抽出される、音楽特徴量以外のその他の特徴量について説明する図である。
【０１１９】
図１９で示される例において、音楽特徴量抽出部４５は、その他の特徴量として、区間Ｂの長さなどのセグメントの長さ（ビート単位）、１曲中に区間Ｂが何回出現するかを表している１曲中での同じセグメントの出現回数（繰り返し回数）、区間Ｂが繰り返されている回数を表している連続繰り返し回数などを抽出する。
【０１２０】
また、その他の特徴量は、図１９を参照して説明した以外でも、例えば、１曲中のセグメントの相対位置（例えば、５分の曲において、あるセグメントが１分から始まる場合は、1/5=0.2）、または直前または直後に出現するセグメントのバリエーションの多さなどであってもよい。
【０１２１】
なお、詳細は後述するが、音楽特徴量およびその他の特徴量を、より多く抽出することにより、例えば、サビ識別部４６は、楽曲の曲構造を識別する精度をより向上させることができる。
【０１２２】
なお、音楽特徴量抽出部４５は、同一の（似ている）フレーズごとに分割されたそれぞれの区間（の楽曲の波形）から、音楽特徴量またはその他の特徴量のうち、いずれか一方を抽出し、抽出したいずれか一方の特徴量をサビ識別部４６に供給するようにしてもよい。
【０１２３】
図４のフローチャートに戻り、ステップＳ７において、サビ識別部４６は、音楽特徴量抽出部４５から供給される音楽特徴量またはその他の特徴量を基に、同一の（似ている）フレーズごとに分割されたそれぞれの区間（の楽曲の波形）から、サビである区間を識別して、サビ識別の処理は終了する。
【０１２４】
例えば、ステップＳ７において、サビ識別部４６は、図２０で示すように、抽出された分割されたそれぞれの区間ごとの音楽特徴量（X1）とその他の特徴量（X2）を基に、それぞれの区間における“サビらしさ”（ｙ（％））を算出することにより、サビである区間を識別する。
【０１２５】
具体的には、例えば、サビ識別部４６は、音楽特徴量（X1）、その他の特徴量（X2）と、正解となるサビデータ（例えば、ユーザにより設定される、ある楽曲のどこがサビとなるかを示すデータ）を用いて、サビを識別するための学習することにより、所定の関数（例えば、“サビらしさ”を演算する関数）を生成する。サビ識別部４６は、音楽特徴量抽出部４５から供給される音楽特徴量（X1）およびその他の特徴量（X2）を、その生成された所定の関数によって演算することにより、それぞれの区間における“サビらしさ”（ｙ（％））を算出して、サビである区間を識別する。
【０１２６】
なお、サビ識別部４６が算出する“サビらしさ”（ｙ（％））であるが、上述した方法に限らず、サビである確率を算出することのできる方法であればよい。
【０１２７】
図２１は、サビ識別部４６による、サビである区間の識別の詳細について説明する図である。
【０１２８】
図２１で示される例において、楽曲（の波形）は、図１７などと同様に、Ａ，Ｂ，Ｃ，Ｄ，Ｅ，Ｂ，Ｂ，Ｃ，・・・である区間の順に、それぞれの区間が分割されている。サビ識別部４６は、例えば、分割されたそれぞれの区間において、“区間Ａのサビらしさ”が0％、“区間Ｂのサビらしさ”が60％、“区間Ｃのサビらしさ”が10％、“区間Ｄのサビらしさ”が30％、“区間Ｅのサビらしさ”が40％、“区間Ｂのサビらしさ”が70％、“区間Ｂのサビらしさ”が80％、“区間Ｃのサビらしさ”が15％、・・・を、それぞれ算出する。
【０１２９】
そして、サビ識別部４６は、例えば、算出された“サビらしさ”の平均が最も高い区間をサビである区間として識別する。例えば、サビ識別部４６は、図２１で示すように、区間Ｂのそれぞれの“サビらしさ”が、60％，70％，80％，・・・となり、“サビさしさ”の平均が最も高いので、区間Ｂをサビである区間として識別する。
【０１３０】
以上のようにして、楽曲構造解析部３１は、より少ない演算量で、転調のある楽曲の波形から、その楽曲の曲構成を識別することができる。
【０１３１】
例えば、パーソナルコンピュータ１の、例えば、ハードディスクなどからなる記録部１８に記録されている膨大な数の楽曲のデータより得られる楽曲の波形から、より少ない演算量で、その楽曲の曲構成からサビである区間を識別することにより、楽曲を選択するときに、曲の頭から再生させるのではなく、サビのみを再生することができる。その結果、ユーザは、例えば、曲の一番盛り上がるサビの部分を視聴して、所望の楽曲を検索したりすることができる。
【０１３２】
また、より少ない演算量で、その楽曲の曲構成からサビである区間を識別することができるので、例えば、容量が少ない記録媒体に、楽曲のサビの区間のみを切り出して記録させることで、より多くの楽曲のデータを記録することができる。
【０１３３】
なお、上述した例においては、楽曲の波形から、曲構成として“サビ”を識別するとして説明したが、本発明はそれに限定されず、“サビ”の代わりに、例えば、“イントロ”、“間奏”、“Ａメロ”、“Ｂメロ”などを識別するようにしてもよい。
【０１３４】
ところで、自己相関マップ生成部４３による、自己相関マップの生成の処理であるが、上述した処理（図１４の自己相関マップ生成の処理）に限定されず、位相成分が除去されたビート特徴量を基に、自己相関マップを生成することができる方法であればよい。例えば、図４のステップＳ５の処理における、区間分割部４４によるセグメンテーションの処理において、“サビ”である区間を識別するだけでよい場合（すなわち、“Ａメロ”，“Ｂメロ”である区間を識別する必要がない場合）、通常、“サビ”の長さとして考えることのできる長さである、所定のビート以上（例えば、２０ビート以上など）の区間にのみ、分割することができればよいことになる。すなわち、自己相関マップからは、所定のビート以上の長さの繰り返しのみが検出することができればよいことになる。そこで、まず、片側（例えば、後述する図２３の垂直方向の軸）において、所定のビートごとに自己相関マップを生成し、その後、相関が高い（すなわち、繰り返しの可能性がある）箇所の前後のみ、相関を計算することにより、さらに“サビ”を識別する処理の負荷を低減することができる。
【０１３５】
したがって、次に、図２２のフローチャートを参照して、“サビ”である区間を識別するだけでよい場合の、図４のステップＳ４における、自己相関マップ生成部４３による、自己相関マップ生成の処理の詳細について説明する。
【０１３６】
ステップＳ３１において、自己相関マップ生成部４３は、片側のＮビートごとに、ビート間の相関を算出する。例えば、ステップＳ３１において、自己相関マップ生成部４３は、後述する図２３の垂直方向の軸においてＮビートごとに、ビート特徴量除去部４２から供給される、図１１に示すような、位置Ｘを含んでいる４区間（図中左下がり斜線でハッチングされた区間）の位相成分が除去されたビート特徴量と、位置Ｙを含んでいる４区間（図中右下がり斜線でハッチングされた区間）の位相成分が除去されたビート特徴量との相関を算出する。
【０１３７】
具体的には、後述する図２３の垂直方向の軸におけるＮビートごとのビート特徴量の相関は、例えば、上述した、式（２）により算出される。
【０１３８】
ステップＳ３２において、自己相関マップ生成部４３は、算出された各ビート間の相関に基づいて、自己相関マップを生成する。
【０１３９】
図２３は、自己相関マップ生成部４３により生成される、片側のＮビートごとの自己相関マップの例を示す図である。
【０１４０】
図２３で示される自己相関マップの例は、図１５と同様に、水平方向の軸は、ある楽曲（の１曲中）の開始から終了までのビートを表し、垂直方向の軸は、水平方向の軸で示した楽曲と同一の楽曲（の１曲中）の開始から終了までのビートを表しており、水平方向の軸は、図中右に行くほど、その楽曲の終わりの方となり、垂直方向の軸は、図中下に行くほど、その楽曲の終わりの方となる。また、図中の黒で示されている領域は、水平方向の軸と垂直方向の軸により特定される楽曲の各ビートの相関が高いことを示し、図中の白で示されている領域は、水平方向の軸と垂直方向の軸により特定される楽曲の各ビートの相関が小さいことを示す。
【０１４１】
図２３の自己相関マップの例では、垂直方向の軸におけるＮビートごとに、ビート特徴量の相関を算出しているので、相関の高い黒で示される領域は、垂直方向の軸におけるＮビートごとにしか現れないことになる。逆に言えば、図２３の自己相関マップの例では、あるＮビートと、その次のＮビートとの間では、ビート特徴量の相関を算出していないので、必ず白い領域で示されることになる。
【０１４２】
すなわち、図２３の自己相関マップの例は、黒い点で示される箇所では、位相成分の除去されたビート特徴量同士の相関が高いことになる。
【０１４３】
なお、上述したように、図２３の自己相関マップにおいては、通常、“サビ”として考えられる長さが、例えば、２０ビート以上である場合、ユーザは、予め、Ｎ＝２０（ビート）を設定しておくことになる。
【０１４４】
図２２のフローチャートに戻り、ステップＳ３３において、自己相関マップ生成部４３は、生成された自己相関マップにおける、相関のある箇所から前方に相関を算出する。
【０１４５】
図２４は、片側のＮビートごとの自己相関マップの例を示す図である。
【０１４６】
図２４で示される自己相関マップの例の軸は、図２３の自己相関マップの例と同様であるので、その説明は省略する。
【０１４７】
図２４で示される自己相関マップの例は、図２３の自己相関マップの例において黒い点で示される箇所から、前方にＮビートの相関と、後述する後方にＮビートの相関を算出して、相関の高い領域を黒で示し、相関の小さい領域を白で示したときの図となる。
【０１４８】
具体的には、例えば、自己相関マップ生成部４３は、図２３の自己相関マップの例において、垂直方向の軸における１番目のＮビート上の黒い点で示される箇所から、図中の矢印ａ１で示す方向に、Ｎビートの相関を算出することにより、上述した、図１５の自己相関マップの例と同様に、図２４の自己相関マップを生成することになる。
【０１４９】
図２２のフローチャートに戻り、ステップＳ３４において、自己相関マップ生成部４３は、生成された自己相関マップにおける、相関のある箇所から後方に相関を算出する。
【０１５０】
具体的には、例えば、自己相関マップ生成部４３は、図２３の自己相関マップの例において、垂直方向の軸における２番目のＮビート上の黒い点で示される箇所から、図中の矢印ａ２で示す方向に、Ｎビートの相関を算出することにより、上述した、図１５の自己相関マップの例と同様に、図２４の自己相関マップを生成することになる。
【０１５１】
すなわち、図２４で示すように、自己相関マップ生成部４３は、Ｎビートごとにビート特徴量の相関を算出し、算出した相関の高かった箇所の前後の最大Ｎビートを、高い相関の続く範囲でのみ相関を計算し続けることで、自己相関マップを生成する。
【０１５２】
このように、まず、片側（例えば、図２３の垂直方向の軸）において、所定のビートごとに自己相関マップ（図２３の自己相関マップ）を生成し、その後、相関が高い箇所の前後のみ、相関を計算して自己相関マップ（図２４の自己相関マップ）を生成することにより、さらにサビ識別の処理の負荷を低減し、高速にサビ識別の処理を行うことができる。
【０１５３】
ところで、上述した、ステップＳ３の処理において、ビート特徴量除去部４２は、ビート特徴量抽出部４１から供給されるビート特徴量をシャッフルしてから、シャッフルされたビート特徴量から、位相成分を除去するようにしてもよい。
【０１５４】
図２５は、ビート特徴量のシャッフルについて説明する図である。
【０１５５】
図２５で示される例において、図中の４つの四角は、図１２などと同様に、ビートごとに分割されている楽曲の波形のビート特徴量を表しており、４つの四角は、それぞれ、１２個の四角で表している、Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂである１２音分のコード（図２５の例では、Ｃ，Ｂのコード名のみを記載している）からなる。
【０１５６】
例えば、ビート特徴量除去部４２は、この４つの四角を、図中左から右方向に、最初のビート、２番目、３番目、４番目と称する場合、２番目と３番目とをシャッフルしてから、シャッフルされたビート特徴量に対して、離散フーリエ変換などを施すことにより、抽出されたビート特徴量の位相成分を除去する。
【０１５７】
このように、ビート特徴量をシャッフルすることで、自己相関マップ（サビなどの曲構成を識別する処理）の精度を上げることができる。
【０１５８】
なお、上述した例においては、図２５の２番目と３番目の四角をシャッフルするとして説明したが、本発明においてはそれに限らず、例えば、１番目乃至４番目の四角のそれぞれをシャッフルするようにしてもよい。
【０１５９】
また、例えば、自己相関マップ（サビなどの曲構成を識別する処理）の精度を上げるために、離散フーリエ変換などにより、ビート特徴量の位相成分を除去してから、各ビートの相関を算出した後に、自己相関マップの片方（例えば、図１５の水平方向の軸または垂直方向の軸）のビート特徴量を１１回シフトさせながら、再度相関を算出するようにしてもよい。
【０１６０】
図２６は、ビート特徴量のシフトについて説明する図である。
【０１６１】
図２６で示される例においては、図中左から１番目の四角（以下、１番目の四角と称し、同様に、２番目の四角、３番目の四角、・・・、１２番目の四角と称する）は、図１２などと同様に、ビートごとに分割されている楽曲の波形のビート特徴量を表しており、さらにその四角は、その四角の中の１２個の四角で表している、Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂである１２音分のコードからなる。
【０１６２】
例えば、まず、ビート特徴量除去部４２は、１番目の四角で表すビート特徴量に対して、離散フーリエ変換などを施すことにより、ビート特徴量の位相成分を除去する。自己相関マップ生成部４３は、位相成分が除去された１番目の四角を基に、ビート特徴量の相関を算出する。
【０１６３】
次に、１番目の四角から、１２音分のコードを図中下方向に１つシフトさせることにより、ビート特徴量は、２番目の四角で表すように、図中下から、Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃，Ｂ，Ｃの順にシフトすることになる。
【０１６４】
このとき、例えば、ビート特徴量除去部４２は、２番目の四角で表すビート特徴量に対して、離散フーリエ変換などを施すことにより、ビート特徴量の位相成分を除去する。自己相関マップ生成部４３は、位相成分が除去された２番目の四角を基に、ビート特徴量の相関を算出する。
【０１６５】
同様に、ビート特徴量の１２音分のコードを１つずつ順に下方向にシフトさせることにより、例えば、ビート特徴量除去部４２は、３番目乃至１１番目の四角（図示せず）で表すビート特徴量に対して、離散フーリエ変換などを施すことにより、ビート特徴量の位相成分を除去し、自己相関マップ生成部４３は、位相成分が除去された３番目乃至１１番目の四角を基に、ビート特徴量の相関を算出する。
【０１６６】
そして最後に、１１番目の四角から、１２音分のコードを図中下方向に１つシフトさせることにより、１２番目の四角（図中右から１番目の四角）で表すように、図中下から、Ｂ，Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃，Ａ，Ａ＃の順にシフトすることになる。
【０１６７】
このとき、例えば、ビート特徴量除去部４２は、１２番目の四角で表すビート特徴量に対して、離散フーリエ変換などを施すことにより、ビート特徴量の位相成分を除去する。自己相関マップ生成部４３は、位相成分が除去された１２番目の四角を基に、ビート特徴量の相関を算出する。
【０１６８】
このように、ビート特徴量を１１回シフトさせながら、相関を算出することにより、自己相関マップ生成部４３は、より精度の高い自己相関マップを生成することができる。
【０１６９】
なお、図２６では、説明を分かり易くするために、１区間（１ビート）のビート特徴量のシフトについて説明したが、例えば、４区間（４ビート）などであっても、同様にビート特徴量をシフトさせることにより、自己相関マップの精度をさらに上げることができる。
【０１７０】
ところで、本実施の形態では、ビートを検出する処理（図４のステップＳ１の処理）において、楽曲の波形（音声信号）から検出されるビート（テンポ、拍子、小節の先頭など）の検出精度を上げることで、例えば、セグメンテーションの処理（図４のステップＳ５の処理）を行う場合、分割される各区間の境界は小節の先頭としたほうがいいので、そのような小節の先頭を正確に求めることで、正確にセグメンテーションを行うことができる。そこで、次に、図２７乃至図４０を参照して、楽曲の波形からテンポ、拍子、小節の先頭（以下、ビートデータと称する）を検出する処理について説明する。
【０１７１】
図２７は、図２のパーソナルコンピュータ１のCPU１１により実行されるソフトウェアの機能的構成の他の例を示すブロック図である。
【０１７２】
なお、図２７では、図３と同様の箇所には、同一の符号が付してあり、処理が同じ部分に関しては、その説明は繰り返しになるので省略する。すなわち、図２７において、楽曲構造解析部３１は、図３の楽曲構造解析部３１と比較して、ビート検出部１０１が追加して設けられている。
【０１７３】
ビート検出部１０１は、楽曲の波形からビートデータを検出する。例えば、ビート検出部１０１は、MP3やAACなどの方式で音声圧縮された音声信号より再生される楽曲の波形から、テンポ、拍子、または小節の先頭などのビートデータを検出する。
【０１７４】
次に、図２８に示されるように、楽曲の波形から、ビート、すなわち、拍のそれぞれの位置を検出するビート検出部１０１について説明する。図２８において、“１：１，１：２，１：３，１：４，２：１，２：２，２：３，２：４，３：１，３：２，３：３，３：４，・・・”（この「１：１」などの数は、図中右下に記すように、「小節：拍」を表現している）のそれぞれの数に対する縦線は、楽曲の波形における拍の先頭のそれぞれの位置を示す。図２８において、それぞれの数に対する縦線で示される位置から、その次の縦線の位置までの範囲は、楽曲の波形における拍の範囲を示す。
【０１７５】
なお、隣接する２つの縦線の間で示される長さは、例えば、４分音符の長さを示し、テンポに相当する。また、“１：１”，“２：１”，“３：１”，・・・である数に対する縦線で示される位置は、小節の先頭を示す。
【０１７６】
つまり、ビート検出部１０１は、図２８に示すような音声信号による楽曲の波形から、図中の縦線で示す各拍や各小節の先頭、または図中隣接する２つの縦線の間で示される長さであるテンポなどを、ビートデータとして検出する。
【０１７７】
図２９は、ビート検出部１０１の構成の一例を示すブロック図である。ビート検出部１０１は、アタック情報抽出部１１１、基本ビート周期検出部１１２、テンポ決定部１１３、楽曲特徴量抽出部１１４、テンポ修正部１１５、ビート特徴量抽出部１１６、拍子決定部１１７、および小節先頭決定部１１８を含むようにして構成される。
【０１７８】
アタック情報抽出部１１１は、楽曲の波形を示す音声信号から時系列のアタック情報を抽出する。ここで、時系列のアタック情報とは、人間にビートを感じさせる音量の変化を時間に沿ってデータ化したものである。図３０で示されるように、アタック情報は、時間に対する、人間の感じる音量を示す音量感で表される。
【０１７９】
例えば、アタック情報抽出部１１１は、それぞれの時刻における、音声信号による音声のレベルを示すアタック情報を音声信号から抽出する。
【０１８０】
また、例えば、図３１で示されるように、アタック情報抽出部１１１は、音声信号による音声を複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均率のそれぞれの高さの１２の音のエネルギーを求めることで、オクターブごとの１２の音のそれぞれのエネルギーを示す１２音解析による時間−音程データを求める。アタック情報抽出部１１１は、各時刻における、１２の音と複数のオクターブとについて音のエネルギーを積算し、その結果をアタック情報とする。
【０１８１】
また、例えば、アタック情報抽出部１１１は、音声信号による音声を複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均率のそれぞれの高さの１２の音の鳴り始めのタイミングを検出する。例えば、アタック情報抽出部１１１は、それぞれの音のエネルギーの時間方向の差分が予め定めた閾値より大きい場合、その音の鳴り始めであるとする。
【０１８２】
そして、アタック情報抽出部１１１は、音の鳴り始めを１とし、それ以外を０として、その値を複数のオクターブのそれぞれの１２の音について積算し、その結果をアタック情報とする。
【０１８３】
図３１において、丸は、音の鳴り始めの位置を示す。音の鳴り始めを１とし、それ以外を０として、これを積算してアタック情報を求めた場合、アタック情報は、複数のオクターブのそれぞれの１２の音において、鳴り始めが多い場合には、大きい値となり、鳴り始めが少ない場合には、小さい値となる。
【０１８４】
さらに、例えば、アタック情報抽出部１１１は、音声信号による音声を複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均率のそれぞれの高さの１２の音のエネルギーの変化を求める。例えば、音のエネルギーの変化は、音のエネルギーの時間方向の差分として計算される。アタック情報抽出部１１１は、各時刻における、音のエネルギーの変化を、複数のオクターブのそれぞれの１２の音について積算し、その結果をアタック情報とする。
【０１８５】
図２９に戻り、アタック情報抽出部１１１は、このようなアタック情報を、基本ビート周期検出部１１２、テンポ修正部１１５、および拍子決定部１１７に供給する。
【０１８６】
基本ビート周期検出部１１２は、コードの検出の対象となっている楽曲において、最も基本となっている音の長さを検出する。例えば、楽曲において最も基本となっている音は、４分音符、８分音符、または１６分音符で表される音である。
【０１８７】
以下、楽曲において、最も基本となる音の長さを基本ビート周期と称する。
【０１８８】
基本ビート周期検出部１１２において、時系列の情報であるアタック情報を通常の波形と見立てて基本ピッチ（音程）抽出を行うことで基本ビート周期が求められる。
【０１８９】
例えば、図３２で示されるように、基本ビート周期検出部１１２は、時系列の情報であるアタック情報をショートタイムフーリエ変換（STFT（Short-Time Fourier Transform））する。アタック情報をショートタイムフーリエ変換することにより、周波数におけるエネルギーの強さを時系列に示す結果が得られる。
【０１９０】
すなわち、基本ビート周期検出部１１２において、アタック情報の時間的な長さに対して十分に短い期間である窓の位置をアタック情報に対してずらしながら、その窓におけるアタック情報の部分をフーリエ変換し、そのフーリエ変換の結果を時系列に配置することで、それぞれの周波数におけるエネルギーの強さを時系列に示す結果が求められる。
【０１９１】
ショートタイムフーリエ変換の結果、他の周波数のエネルギーに比較して強いエネルギーの周波数が、基本ビート周期の候補である周期として検出される。図３２の下側において、濃度は、エネルギーの強さを示す。
【０１９２】
基本ビート周期検出部１１２は、アタック情報のショートタイムフーリエ変換の結果検出された周期のうち最も優位のものを基本ビート周期とする。
【０１９３】
すなわち、基本ビート周期検出部１１２は、アタック情報のショートタイムフーリエ変換の結果検出された周期のうちから、予め用意した重みである基本ビートらしさと、アタック情報のショートタイムフーリエ変換の結果とを照らし合わせて、基本ビートらしさの高い周期を基本ビート周期とする。
【０１９４】
より具体的には、基本ビート周期検出部１１２は、予め定めた周波数方向の重みである基本ビートらしさで、アタック情報のショートタイムフーリエ変換の結果得られた周波数ごとのエネルギーを重み付けして、重み付けにより得られた値のうち最も大きい値が得られた周期を基本ビート周期とする。
【０１９５】
周波数方向の重みである基本ビートらしさを用いることにより、基本ビート周期とはなり得ない極めて低い周波数の周期や極めて高い周波数の周期が、基本ビート周期とされることを防止することができる。
【０１９６】
図２９に戻り、基本ビート周期検出部１１２は、このように抽出した基本ビート周期をテンポ決定部１１３に供給する。
【０１９７】
楽曲特徴量抽出部１１４は、音声信号に所定の信号処理を適用することにより、楽曲から所定の数の特徴量（以下、楽曲特徴量と称する）を抽出する。例えば、楽曲特徴量抽出部１１４は、音声信号を複数のオクターブの成分に分けて、さらにそれぞれのオクターブにおける１２平均率のそれぞれの高さの１２の音の信号を求めて、それぞれのオクターブにおけるそれぞれの１２の音の信号に所定の信号処理を適用することにより、楽曲特徴量を抽出する。
【０１９８】
例えば、楽曲特徴量抽出部１１４は、楽曲特徴量として、それぞれのオクターブにおけるそれぞれの１２の音の信号の、単位時間当たりのピークの数を求める。
【０１９９】
また、例えば、楽曲特徴量抽出部１１４は、楽曲特徴量として、それぞれのオクターブにおけるそれぞれの１２の音の信号の、音程方向のエネルギーの分散を求める。
【０２００】
さらにまた、例えば、楽曲特徴量抽出部１１４は、楽曲特徴量として、それぞれのオクターブにおけるそれぞれの１２の音の信号から、低域、中域、および高域のエネルギーのバランスを求める。
【０２０１】
また、例えば、楽曲特徴量抽出部１１４は、楽曲特徴量として、それぞれのオクターブにおけるそれぞれの１２の音の信号から、ステレオである音声信号の左右のチャンネルの信号の相関の大きさなどを求める。
【０２０２】
楽曲特徴量抽出部１１４は、このように抽出した楽曲特徴量をテンポ決定部１１３に供給する。
【０２０３】
テンポ決定部１１３は、楽曲特徴量とテンポとによる学習によって予め構成され、楽曲特徴量抽出部１１４から供給された楽曲特徴量から、テンポを推定する。以下、推定されたテンポを推定テンポと称する。
【０２０４】
テンポ決定部１１３は、推定テンポと、基本ビート周期検出部１１２から供給された基本ビート周期とから、基本ビート周期の２のＸ乗倍（・・・１／８倍、１／４倍、１／２倍、１倍、２倍、４倍、８倍・・・）の中からテンポを決定する。例えば、楽曲の特徴量から回帰解析で推定された推定テンポに対して、推定テンポ×２1/2と推定テンポ÷２1/2との範囲に収まるように、基本ビート周期を２倍するかまたは１／２倍して得られた値がテンポとされる。
【０２０５】
例えば、図３３で示されるように、テンポ決定部１１３は、基本ビート周期検出部１１２から供給された基本ビート周期と、推定テンポ÷２1/2で求められる周期とを比較して、推定テンポ÷２1/2で求められる周期より基本ビート周期（図３３の上側の白丸で示される基本ビート周期）が長い場合、基本ビート周期を１／２倍する。
【０２０６】
テンポ決定部１１３は、基本ビート周期検出部１１２から供給された基本ビート周期と、推定テンポ×２1/2で求められる周期とを比較して、推定テンポ×２1/2で求められる周期より基本ビート周期（図３３の下側の白丸で示される基本ビート周期）が短い場合、基本ビート周期を２倍する。
【０２０７】
テンポ決定部１１３は、推定テンポ×２1/2と推定テンポ÷２1/2との範囲に収まるように、１／２倍したか若しくは２倍したか、または繰り返し１／２倍したか若しくは繰り返し２倍した基本ビート周期（図３３の黒丸で示される基本ビート周期）をテンポとする。
【０２０８】
なお、テンポ決定部１１３は、基本ビート周期が推定テンポ×２1/2と推定テンポ÷２1/2との範囲に収まる場合、そのままの基本ビート周期をテンポとする。
【０２０９】
図２９に戻り、テンポ決定部１１３は、このように決定したテンポをテンポ修正部１１５に供給する。
【０２１０】
テンポ修正部１１５は、アタック情報抽出部１１１から供給されるアタック情報により、テンポ決定部１１３において決定されたテンポをより細かく修正する。
【０２１１】
まず、テンポ修正部１１５は、ビートの位相を修正する。
【０２１２】
すなわち、図３４で示されるように、テンポ修正部１１５は、アタック情報に対して決定されたテンポの周期で、拍の範囲ごとに、楽曲全体にわたりアタック情報を足し合わせる。
【０２１３】
例えば、テンポ修正部１１５は、楽曲全体にわたり、テンポの周期で決められる拍の範囲について、最初の拍の範囲乃至最後の拍の範囲のそれぞれにおける、最初のアタック情報のサンプルを足し合わせて、その結果を、拍の範囲の最初の合計値とする。次に、テンポ修正部１１５は、楽曲全体にわたり、テンポの周期で決められる拍の範囲について、最初の拍の範囲乃至最後の拍の範囲のそれぞれにおける、２番目のアタック情報のサンプルを足し合わせて、その結果を、拍の範囲の２番目の合計値とする。
【０２１４】
同様に、テンポ修正部１１５は、楽曲全体にわたり、テンポの周期で決められる拍の範囲について、最初の拍の範囲乃至最後の拍の範囲のそれぞれにおける、３番目乃至最後のアタック情報のサンプルを、拍の範囲における順ごとに足し合わせて、その結果のそれぞれを、拍の範囲の３番目乃至最後の合計値とする。
【０２１５】
そして、テンポ修正部１１５は、アタック情報に対するテンポの周期の位相をずらして、同様に、拍の範囲ごとに、楽曲全体にわたりアタック情報を足し合わせる。
【０２１６】
テンポ修正部１１５は、アタック情報に対するテンポの周期の位相を、アタック情報に対するテンポの周期の位相をずらして得られた合計値のうち、最も大きい合計値の得られた位相に修正する。すなわち、テンポ修正部１１５は、拍の位置を、最も大きい合計値の得られた、アタック情報に対するテンポの周期の位置に修正する。
【０２１７】
また、テンポ修正部１１５は、テンポを修正する。
【０２１８】
すなわち、図３５で示されるように、テンポ修正部１１５は、テンポの周期を、その周期に対して十分短い所定の長さだけ縮めるか、または伸ばして、その縮められるかまたは伸ばされたテンポの周期で、テンポの周期ごとに、楽曲全体にわたりアタック情報を足し合わせる。
【０２１９】
この場合も、テンポ修正部１１５は、楽曲全体にわたり、テンポの周期で決められる拍の範囲について、最初の拍の範囲乃至最後の拍の範囲のそれぞれにおける、最初乃至最後のアタック情報のサンプルを、拍の範囲における順ごとに足し合わせて、その結果のそれぞれを、拍の範囲の最初乃至最後の合計値とする。
【０２２０】
テンポ修正部１１５は、テンポの周期を所定の長さだけ縮めるか、または伸ばして、その縮められるかまたは伸ばされたテンポの周期ごとに、楽曲全体にわたりアタック情報を足し合わせて、拍の範囲の最初乃至最後の合計値を求める。
【０２２１】
テンポ修正部１１５は、元の長さか、縮められるか、または伸ばされたテンポの周期のうち、最も大きい合計値の得られた長さにテンポの周期を修正する。
【０２２２】
テンポ修正部１１５は、このようなビートの位相の修正とテンポの修正とを必要に応じて繰り返して、最終的なテンポを決定する。例えば、テンポ修正部１１５は、ビートの位相の修正と、テンポの修正とを、それぞれ２回など、予め決められた回数だけ繰り返して、最終的なテンポを決定する。
【０２２３】
図２９に戻り、テンポ修正部１１５は、最終的に決定されたテンポを示す拍データを、ビート特徴量抽出部１１６および小節先頭決定部１１８に供給する。
【０２２４】
ビート特徴量抽出部１１６は、テンポ修正部１１５から供給される拍データに基づいて、セグメント（１拍）ごとに、音楽特徴量やコードなどの楽曲特徴量を抽出する。
【０２２５】
例えば、ビート特徴量抽出部１１６は、図３６に示される楽曲の波形から、図中縦線で分けられているビートごと（図３６に示す例では１２区間に分割されている）に、楽曲特徴量を抽出する。
【０２２６】
なお、ビート特徴量抽出部１１６により抽出される楽曲特徴量は、例えば、上述した、楽曲特徴量抽出部１１４により抽出される楽曲特徴量と同様に、１２音解析の結果により得られる信号に所定の信号処理を適用することで抽出される。
【０２２７】
図２９に戻り、ビート特徴量抽出部１１６は、このように抽出したビートごとの楽曲特徴量を小節先頭決定部１１８に供給する。
【０２２８】
拍子決定部１１７は、アタック情報抽出部１１１から供給されるアタック情報に基づいて、例えば、４／４拍子、３／４拍子、６／８拍子などの拍子を決定する。
【０２２９】
ここで、拍子の決定方法であるが、例えば、ショートタイムフーリエ変換を施したアタック情報の倍音構造から拍子を求めることができる。例えば、図３７で示されるように、拍子決定部１１７は、基本ビート周期検出部１１２と同様に、時系列の情報であるアタック情報をショートタイムフーリエ変換する。これにより、周波数におけるエネルギーの強さを時系列に示す結果が得られる。
【０２３０】
つまり、図３７の例に示すように、アタック情報にショートタイムフーリエ変換を施すことで得られる結果により、ピークが現れた周波数が検出されるので、その周波数を利用して拍子を決定する。例えば、図中左側に示している４／４拍子において、８分音符、４分音符、２分音符、全音符のそれぞれの関係は、図中丸印で示すように、８分音符の周波数の半分が４分音符の周波数となり、図中三角印で示すように、４分音符の周波数の半分が２分音符の周波数となり、図中バツ印で示すように、２分音符の周波数の半分が全音符の周波数となる。言い換えれば、４分音符の周期は、８分音符の周期の２倍であり、２分音符の周期は、４分音符の周期の２倍であり、全音符の周期は、２分音符の２倍であるとも言える。
【０２３１】
また、同様に、例えば、図中中央に示している３／４拍子において、４分音符、１小節、２小節のそれぞれの関係は、図中丸印で示すように、４分音符の周波数の１／３が１小節の周波数となり、図中バツ印で示すように、１小節の周波数の半分が２小節の周波数となる。
【０２３２】
さらにまた、同様に、図中右側に示している６／８拍子において、８分音符、４分音符、付点４分音符、１小節のそれぞれの関係は、図中丸印で示すように、８分音符の周波数の半分が４分音符の周波数となり、図中バツ印で示すように、４分音符の周波数の２／３が付点４分音符の周波数となり、４分音符の周波数の１／３が１小節の周波数となる。
【０２３３】
つまり、拍子決定部１１７は、ピークが現れた周波数におけるエネルギーの間隔のパターン、すなわち、ショートタイムフーリエ変換を施したアタック情報の倍音構造から、拍子を決定する。
【０２３４】
図３８は、拍子決定部１１７による、具体的な拍子の決定方法の例を説明する図である。
【０２３５】
図３８においては、図中左側に示すような、横軸方向を時間とし、縦軸方向を周波数とするグラフ（以下、時間−周波数グラフと称する）、時間−周波数グラフの右側に示すような、横軸方向をエネルギーとし、縦軸方向を周波数とするグラフ（以下、エネルギー−周波数グラフと称する）、エネルギー−周波数グラフの右側に示すような、横軸方向をエネルギーとし、縦軸方向をログ周波数とするグラフ（以下、エネルギー−ログ周波数グラフと称する）の３つのグラフが示されている。
【０２３６】
図３８において、まず、拍子決定部１１７は、アタック情報にショートタイムフーリエ変換を施すことにより得られる、時間−周波数グラフにおける周波数を時間方向に足し合わせることで、エネルギー−周波数グラフを得る。次に、拍子決定部１１７は、エネルギー−周波数グラフにおける周波数軸をログ周波数軸に変換して、エネルギー−ログ周波数グラフを得る。
【０２３７】
そして、拍子決定部１１７は、エネルギー−ログ周波数グラフに示されるログ周波数ごとのエネルギーに対して、高速フーリエ変換（FFT（Fast Fourier Transform））を施すことにより得られるパワー成分である特徴量と、予め用意した拍子のパターンとを照らし合わせて、拍子を決定する。
【０２３８】
図２９に戻り、拍子決定部１１７は、このように決定した拍子を小節先頭決定部１１８に供給する。
【０２３９】
小節先頭決定部１１８には、テンポ修正部１１５から拍データが供給され、ビート特徴量抽出部１１６からビートごとの楽曲特徴量が供給され、拍子決定部１１７から拍子が供給される。小節先頭決定部１１８は、それらの拍データ、ビートごとの特徴量、および拍子に基づいて、小節の先頭を決定する。
【０２４０】
ここで、小節の先頭の決定方法であるが、例えば、小節の先頭では、その他の部分と比較して、コードが変化し易い、音楽的に安定したコード（例えば、いわゆるスリーコードなど）の出現確率が高い、音程がはっきり安定している、音量的にアクセントがあるなどといった特徴がある。
【０２４１】
小節先頭決定部１１８は、これらの小節の先頭の特徴を利用して、各ビートについて小節の先頭らしさを推定する。なお、小節先頭決定部１１８は、例えば、各ビートの特徴量やコードなどによる学習によって予め構成され、拍データ、ビートごとの楽曲特徴量、および拍子から、小節の先頭らしさを推定する。
【０２４２】
次に、図３９の例に示されるように、小節先頭決定部１１８は、求めた小節の先頭らしさを、楽曲全体または特定の範囲において拍子の１小節あたりの音符の数ごと（例えば、４／４拍子なら４つごと、３／４拍子なら３つごと、６／８拍子なら６つごとなど）に足し合わせる。つまり、図３９の例では、４／４拍子であるので４つごとに足し合わされる。より具体的には、１つ目のビート、５つ目のビート、９つ目のビート、・・・（以下、１／４拍目と称する）の小節の先頭らしさが足し合わされ、２つ目のビート、６つ目のビート、１０個目のビート、・・・（以下、２／４拍目と称する）の小節の先頭らしさが足し合わされ、３つ目のビート、７つ目のビート、１１個目のビート、・・・（以下、３／４拍目と称する）の小節の先頭らしさが足し合わされ、４つ目のビート、８つ目のビート、１２個目のビート、・・・（以下、４／４拍目と称する）の小節の先頭らしさが足し合わされる。
【０２４３】
そして、図４０の例に示されるように、小節先頭決定部１１８は、４／４拍子であるので４つごとに足し合わされた小節の先頭らしさを比較して、最も小節の先頭らしさが高くなった箇所のビートを小節の先頭であると決定する。より具体的には、図４０の例では、１／４拍目の小節の先頭らしさの値を足し合わせた合計の値が35.6、２／４拍目の小節の先頭らしさの値を足し合わせた合計の値が12.6、３／４拍目の小節の先頭らしさの値を足し合わせた合計の値が21.5、４／４拍目の小節の先頭らしさの値を足し合わせた合計の値が13.3となり、１／４拍目の合計の値が最も先頭らしさの値が高いので、小節先頭決定部１１８は、１／４拍目を小節の先頭であると決定する。
【０２４４】
このように、ビート検出部１０１は、楽曲の波形（音声信号）から、テンポ、拍子、小節の先頭などのビートデータを検出し、出力する。つまり、ビート検出部１０１は、例えば、ビートを検出する処理（図４のステップＳ１の処理）で、上述した方法によりビートデータを求めることができるので、より正確にビートを検出することが可能となる。その結果、例えば、セグメンテーションの処理（図４のステップＳ５の処理）において、正確にセグメンテーションを行うことができ、ひいてはサビを識別する処理（図４のステップＳ７の処理）において、サビである区間をより正確に識別することが可能となる。
【０２４５】
ここで、従来の手法と本発明の手法のそれぞれにより、転調のある楽曲の波形を解析した場合の演算量（乗加算回数）を比較する。なお、比較するときの条件を同じにするために、例えば、楽曲の長さを５分、テンポを120、相関計算に用いるビートの数を８ビートとしてそれぞれの演算量を比較する。
【０２４６】
まず、従来の手法により転調のある楽曲の波形を解析した場合、相関を算出するための平均とノルムを算出するときの演算量ａ１は、以下の通りになる。
【０２４７】
演算量ａ１＝（ビートの数）×（８ビート分）×（１２音）×（２（平均とノルム））＝5×120×8×12×2＝115,200（回）
【０２４８】
また、相関を算出する場合の演算量ａ２は、以下の通りとなる。
【０２４９】
演算量ａ２＝（ビートの数）×（ビートの数/２＋１）×（８ビート分）×（１２音）×（１２回シフト）＝5×120×299×8×12×12＝206,668,800（回）
【０２５０】
すなわち、従来の手法の演算量Ａは、以下の通りとなる。
【０２５１】
演算量Ａ＝演算量ａ１＋演算量ａ２＝115,200＋206,668,800＝206,784,000（回）
【０２５２】
次に、本発明の手法により転調のある楽曲の波形を解析した場合、離散フーリエ変換により位相成分を除去して、相関を算出するための平均とノルムを算出するときの演算量ｂ１は、以下の通りになる。
【０２５３】
演算量ｂ１＝（ビートの数）×（（８ビート分）×（１２音））2（離散フーリエ変換の計算）＋（ビートの数）×（離散フーリエ変換後の特徴量）×（２（平均とノルム））＝5×120×（8×12）2＋5×120×47×2＝5,529,600＋56,400＝5,586,000（回）
【０２５４】
また、相関を算出する場合の演算量ｂ２は、以下の通りとなる。
【０２５５】
演算量ｂ２＝（ビートの数）×（ビートの数/２＋１）×（離散フーリエ変換後の特徴量）＝5×120×299×47＝8,431,800（回）
【０２５６】
すなわち、本発明の手法の演算量Ｂは、以下の通りとなる。
【０２５７】
演算量Ｂ＝演算量ｂ１＋演算量ｂ２＝5,586,000＋8,431,800＝14,017,800（回）
【０２５８】
したがって、従来手法の演算量Ａと本発明の手法の演算量Ｂとを比較した場合、206,784,000（回）と14,017,800（回）となるので、本発明の手法の演算量Ｂは、従来手法の演算量Ａの1/14以下の演算量（乗加算回数）、実際には、離散フーリエ変換に高速なアルゴリズムを用いることにより、Ｎ2以下の乗加算回数により計算をすることができるので、より計算回数が少なくなり、より迅速に、自己相関マップを生成することができる。その結果、より迅速に、例えば、楽曲構造やサビの識別などの処理を行うことができる。
【０２５９】
以上のように、本発明によれば、少ない演算量で、転調のある楽曲の波形を解析することができる。
【０２６０】
また、本発明によれば、より少ない演算量で、転調のある楽曲の波形から、その楽曲の曲構成を識別することができる。
【０２６１】
上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
【０２６２】
この記録媒体は、コンピュータとは別に、ユーザにプログラムを提供するために配布される、プログラムが記録されている磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD（Digital Versatile Disk））を含む）、光磁気ディスク（MD（Mini-Disk）（登録商標）を含む）、若しくは半導体メモリなどよりなる図２のリムーバブルメディア２１により構成されるだけでなく、コンピュータに予め組み込まれた状態でユーザに提供される、プログラムが記録されている図２のROM１２や記録部１８などで構成される。
【０２６３】
また、上述した一連の処理を実行させるプログラムは、必要に応じてルータ、モデムなどのインターフェースを介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を介してコンピュータにインストールされるようにしてもよい。
【０２６４】
なお、本明細書において、記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０２６５】
また、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０２６６】
【図１】従来の楽曲の曲構造を解析する方法を説明する図である。
【図２】パーソナルコンピュータのハードウェアの構成の例を説明するブロック図である。
【図３】パーソナルコンピュータのCPUにより実行されるソフトウェアの機能的構成例を示すブロック図である。
【図４】楽曲構造解析部による、サビ抽出の処理について説明するフローチャートである。
【図５】楽曲の波形から検出されるビートの例を示す図である。
【図６】楽曲の波形のビートごとに抽出されるビート特徴量について説明する図である。
【図７】ビート特徴量抽出部による、ビート特徴量抽出の処理の詳細について説明するフローチャートである。
【図８】ビート特徴量抽出部による、ビート特徴量抽出の処理について説明する図である。
【図９】音程と時間による各音（Ｃ１乃至Ｂ７）のエネルギーの分布の例を示す図である。
【図１０】７オクターブ分の各音のエネルギーを解析する方法について説明する図である。
【図１１】あるビート特徴量と、他のビート特徴量との相関について説明する図である。
【図１２】ビート特徴量を除去する処理について説明する図である。
【図１３】ビート特徴量を除去する処理について説明する図である。
【図１４】自己相関マップ生成部による、自己相関マップ生成の処理の詳細について説明するフローチャートである。
【図１５】自己相関マップ生成部により生成される、自己相関マップの例を示す図である。
【図１６】自己相関マップにおける区間の分割について説明する図である。
【図１７】楽曲における区間の分割について説明する図である。
【図１８】楽曲の波形の分割された区間ごとに抽出される音楽特徴量について説明する図である。
【図１９】楽曲の分割された区間ごとに抽出される、音楽特徴量以外のその他の特徴量について説明する図である。
【図２０】サビ識別部による、サビである区間の識別について説明する図である。
【図２１】サビ識別部による、サビである区間の識別の詳細について説明する図である。
【図２２】自己相関マップ生成部による、自己相関マップ生成の処理の詳細について説明するフローチャートである。
【図２３】片側のＮビートごとの自己相関マップの例を示す図である。
【図２４】片側のＮビートごとの自己相関マップの例を示す図である。
【図２５】ビート特徴量のシャッフルについて説明する図である。
【図２６】ビート特徴量のシフトについて説明する図である。
【図２７】パーソナルコンピュータのCPUにより実行されるソフトウェアの機能的構成の他の例を示すブロック図である。
【図２８】楽曲の波形から検出されるビートの例を示す図である。
【図２９】ビート検出部の構成の一例を示すブロック図である。
【図３０】アタック情報の抽出について説明する図である。
【図３１】アタック情報の抽出について説明する図である。
【図３２】基本ビート周期の検出について説明する図である。
【図３３】テンポの決定について説明する図である。
【図３４】テンポの修正について説明する図である。
【図３５】テンポの修正について説明する図である。
【図３６】楽曲特徴量の抽出について説明する図である。
【図３７】拍子の決定について説明する図である。
【図３８】拍子の決定について説明する図である。
【図３９】小節の先頭の決定について説明する図である。
【図４０】小節の先頭の決定について説明する図である。
【符号の説明】
【０２６７】
１  パーソナルコンピュータ，  １１  CPU，  １２  ROM，  １３  RAM，  １６  入力部，  １７  出力部，  １８  記録部，  １９  通信部，  ２０  ドライブ，  ２１  リムーバブルメディア，  ３１  楽曲構造解析部，  ４１  ビート特徴量抽出部，  ４２  ビート特徴量除去部，  ４３  自己相関マップ生成部，  ４４  区間分割部，  ４５  音楽特徴量抽出部，  ４６  サビ識別部，  １０１  ビート検出部，  １１１  アタック情報抽出部，  １１２  基本ビート周期検出部，  １１３  テンポ決定部，  １１４  楽曲特徴量抽出部，  １１５  テンポ修正部，  １１６  ビート特徴量抽出部，  １１７  拍子決定部，  １１８  小節先頭決定部
【図１】
0004465626.tif 000003
【図２】
0004465626.tif 000004
【図３】
0004465626.tif 000005
【図４】
0004465626.tif 000006
【図５】
0004465626.tif 000007
【図６】
0004465626.tif 000008
【図７】
0004465626.tif 000009
【図８】
0004465626.tif 000010
【図９】
0004465626.tif 000011
【図１０】
0004465626.tif 000012
【図１１】
0004465626.tif 000013
【図１２】
0004465626.tif 000014
【図１３】
0004465626.tif 000015
【図１４】
0004465626.tif 000016
【図１５】
0004465626.tif 000017
【図１６】
0004465626.tif 000018
【図１７】
0004465626.tif 000019
【図１８】
0004465626.tif 000020
【図１９】
0004465626.tif 000021
【図２０】
0004465626.tif 000022
【図２１】
0004465626.tif 000023
【図２２】
0004465626.tif 000024
【図２３】
0004465626.tif 000025
【図２４】
0004465626.tif 000026
【図２５】
0004465626.tif 000027
【図２６】
0004465626.tif 000028
【図２７】
0004465626.tif 000029
【図２８】
0004465626.tif 000030
【図２９】
0004465626.tif 000031
【図３０】
0004465626.tif 000032
【図３１】
0004465626.tif 000033
【図３２】
0004465626.tif 000034
【図３３】
0004465626.tif 000035
【図３４】
0004465626.tif 000036
【図３５】
0004465626.tif 000037
【図３６】
0004465626.tif 000038
【図３７】
0004465626.tif 000039
【図３８】
0004465626.tif 000040
【図３９】
0004465626.tif 000041
【図４０】
0004465626.tif 000042