(57)【特許請求の範囲】
【請求項１】
楽曲データの小節の頭の位置を少なくとも２箇所指定する工程と、
上記指定された２箇所の位置の間を分割して時間軸上のメタデータを付与する工程と、
上記楽曲データに対して信号処理により自動的にビート情報を抽出する自動ビート抽出工程と
を有し、
上記自動ビート抽出工程により抽出された自動抽出ビートが本来の拍子にタイミングがあっていると判断した第１類ビートと、上記自動抽出ビートが見つからず本来の拍子に従って自動的に補間された第２類ビートと、自動ビート抽出が行われたが本来の拍子の位置ではないと判断した第３類ビートとに分類し、これらの第１類〜第３類ビートのそれぞれの表示色を異ならせて表示部に表示する
メタデータ付与方法。
【請求項２】
上記分類された各ビートの信頼度として、上記第１類ビートの信頼度の値を最も高くし、上記第３類ビート、上記第２類ビートの順に信頼度の値を低くして、これらの信頼度の値に応じた表示色で表示を行う請求項１記載のメタデータ付与方法。
【請求項３】
上記小節の頭として指定する２箇所の内少なくとも１箇所は、楽曲を聴きながら、手作業で指定入力する請求項１記載のメタデータ付与方法。
【請求項４】
上記指定された２箇所の位置の間の区間を、小節の長さまたは小節の数で割り算して時間軸上のメタデータを算出する請求項１記載のメタデータ付与方法。
【請求項５】
上記小節の長さＬＢａｒは、概略の小節長Ｌｂを仮設定し、この小節長Ｌｂに最も近い値の小節長ＬＢａｒであって、上記指定された２箇所の位置の間の区間内の小節数が整数値になる小節長ＬＢａｒを計算により求める請求項４記載のメタデータ付与方法。
【請求項６】
上記自動ビート抽出工程により抽出された自動抽出ビートに対し、小節の頭を指示することによって区間内の小節数を自動的に算出して時間軸上のメタデータとする請求項１記載のメタデータ付与方法。
【請求項７】
候補となるビート位置近傍の所定の閾値の範囲内に含まれる自動抽出ビートを検索し、そのビート位置を優先的に用いる請求項６記載のメタデータ付与方法。
【請求項８】
上記閾値の範囲内に自動抽出ビートが見つからなかった場合、計算値によってビートを補間し、信頼度の値を低くする請求項７記載のメタデータ付与方法。
【請求項９】
一つ前に算出した上記小節の長さＬＢａｒに基づいて動的に次に打つビートの間隔を変化させる請求項５記載のメタデータ付与方法。
【請求項１０】
楽曲データの小節の頭の位置を少なくとも２箇所指定する入力手段と、
上記指定された２箇所の位置の間を等間隔で分割して時間軸上のメタデータを付与するメタデータ付与手段と、
上記楽曲データに対して信号処理により自動的にビート情報を抽出する自動ビート抽出手段と
を有し、
上記自動ビート抽出手段により抽出された自動抽出ビートが本来の拍子にタイミングがあっていると判断した第１類ビートと、上記自動抽出ビートが見つからず本来の拍子に従って自動的に補間された第２類ビートと、自動ビート抽出が行われたが本来の拍子の位置ではないと判断した第３類ビートとに分類し、これらの第１類〜第３類ビートのそれぞれの表示色を異ならせて表示部に表示する
メタデータ付与装置。
【請求項１１】
上記分類された各ビートの信頼度として、上記第１類ビートの信頼度の値を最も高くし、上記第３類ビート、上記第２類ビートの順に信頼度の値を低くして、これらの信頼度の値に応じた表示色で表示を行う請求項１０記載のメタデータ付与装置。
【請求項１２】
上記小節の頭として指定する２箇所の内少なくとも１箇所は、楽曲を聴きながら、手作業で指定入力する請求項１１記載のメタデータ付与装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音楽の時間軸上のメタデータを付与するメタデータ付与方法及び装置に関する。
【背景技術】
【０００２】
近年において、半導体メモリやハードディスク等の大容量記録媒体を利用したオーディオ再生装置が普及してきており、またオーディオ再生専用の装置のみならず、パーソナルコンピュータや携帯電話のような情報機器等の内部の記憶装置に大量の音楽データを保存して楽しむユーザも増加している。これは、例えばＣＤ等のディスクやテープ等の交換可能な記録媒体のようなメディア単位でアルバムを管理することに対して、数百曲、数千曲、さらには数万〜数十万曲もの大量の楽曲データを１台の装置で扱うことを可能とするものである。
【０００３】
このような大量の楽曲に対してメディアの入れ替えなくランダムにアクセスすることが可能となったため、ユーザはアルバム間をまたぐ好みのプレイリストを作ることができるようになった。大量の楽曲の中から効率よく検索を行ったりグルーピングをしたりするために、昨今では楽曲データに対して、曲名（タイトル）、アーティスト名、アルバム名等の楽曲メタデータをデータベースから取得して付加するようなメタデータ付加サービスに注目が集まってきている。このメタデータ付加サービスのシステムは、楽曲のタイトルやアーティストだけでなく、細かい曲のジャンルや、ある程度ではあるがテンポ情報等も取得できる。
【０００４】
しかしながら、これらのメタデータシステムは基本的に楽曲の検索とグルーピング目的で作られており、実際にそれらのデータを利用する音楽再生システムも検索とグルーピング目的で使用している。したがって、検索された結果として再生される曲の聴き方は従来と何も変わらない。
【０００５】
これに対して、プロ、セミプロなどの音楽クリエーター向けに、楽曲そのものを作曲したりアレンジしたりするツールが存在する。これらのツールでは楽曲のテンポやビート（拍）位置を時間軸上で管理し、その位置をもとに楽曲データを編集することが可能になっている。また、同様にＤＪ向けのソフトウェアにおいてもビートの同期を合わせて複数の楽曲を重ねるためにビートの位置情報を保持しているものがある。
【０００６】
しかしながら、これらのビート情報は基本的に１曲を通してテンポが同じだという前提にたっている。市販のさまざまな録音済みの素材はテンポが局所的に揺れているものが多く、それらに正確なビート位置を付与することは非常に困難である。
【０００７】
ところで、機械が音楽の生の音楽波形から、音楽の小節や拍といったタイミングを自動的に認識できれば、膨大な既存のＣＤ等の音楽コンテンツに対してもビート位置のメタデータを得ることができ、新たなエンターテインメントの可能性が広がる。
【０００８】
このようなテンポやビートを自動的に抽出する試みは従来より行われてきている。
【０００９】
例えば、特許文献１には、時系列信号としての音楽波形信号の自己相関を算出し、この算出結果に基いて音楽のビート構造を解析し、さらにこの解析結果に基づいて音楽のテンポを抽出する方法が開示されている。
【００１０】
また、特許文献２には、楽曲データから複数の周波数帯別の音圧データを作成し、その複数の周波数帯の中からリズムを最も顕著に刻む周波数帯を特定し、特定した周波数タイミングの音圧データにおける変化周期に基づいてリズム成分を推定する方法が記載されている。
【００１１】
【特許文献１】特開２００２−１１６７５４公報
【特許文献２】特許第３０６６５２８号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
リズム、ビート、テンポ等を自動的に抽出する技術を大きく分類すると、上記特許文献１のように音楽信号を時間領域で分析するものと、上記特許文献２のように周波数領域で分析するものとに分けられる。
【００１３】
しかし、前者の時間領域で分析するものは、ビートと時間波形とが必ずしも一致するわけではないので、本質的に高い抽出精度が得られない。また、後者の周波数分析を用いるものは、前者よりも比較的抽出精度を向上させることができるが、周波数分析により得られたデータの中には、特定の音符におけるビート以外に多くのビートが多く含まれ、全てのビートから特定の音符におけるビートを分離することが極めて困難である。また、音楽のテンポ（時間周期）自体にも大きな揺らぎがあるため、それらの揺れに追従して、特定の音符におけるビートのみを抽出するのは極めて困難である。
【００１４】
本発明は、このような従来の実情に鑑みて提案されたものであり、楽曲データに対してビート（拍）位置や小節等の時間軸上のメタデータを容易かつ正確に付与できるようなメタデータ付与方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明に係るメタデータ付与方法は、上述した目的を達成するために、楽曲データの小節の頭の位置を少なくとも２箇所指定する工程と、上記指定された２箇所の位置の間を分割して時間軸上のメタデータを付与する工程と、上記楽曲データに対して信号処理により自動的にビート情報を抽出する自動ビート抽出工程とを有し、上記自動ビート抽出工程により抽出された自動抽出ビートが本来の拍子にタイミングがあっていると判断した第１類ビートと、上記自動抽出ビートが見つからず本来の拍子に従って自動的に補間された第２類ビートと、自動ビート抽出が行われたが本来の拍子の位置ではないと判断した第３類ビートとに分類し、これらの第１類〜第３類ビートのそれぞれの表示色を異ならせて表示部に表示する。
また、本発明に係るメタデータ付与装置は、楽曲データの小節の頭の位置を少なくとも２箇所指定する入力手段と、上記指定された２箇所の位置の間を等間隔で分割して時間軸上のメタデータを付与するメタデータ付与手段と、上記楽曲データに対して信号処理により自動的にビート情報を抽出する自動ビート抽出手段とを有し、上記自動ビート抽出手段により抽出された自動抽出ビートが本来の拍子にタイミングがあっていると判断した第１類ビートと、上記自動抽出ビートが見つからず本来の拍子に従って自動的に補間された第２類ビートと、自動ビート抽出が行われたが本来の拍子の位置ではないと判断した第３類ビートとに分類し、これらの第１類〜第３類ビートのそれぞれの表示色を異ならせて表示部に表示する。
【００１６】
ここで、上記小節の頭として指定する２箇所の内少なくとも１箇所は、楽曲を聴きながら、手作業で指定入力することが好ましい。
【００１７】
また、上記指定された２箇所の位置の間の区間を、小節の長さまたは小節の数で割り算してビート位置や小節を算出することが好ましい。
【発明の効果】
【００１８】
本発明によれば、楽曲データに対して、音楽のリズムにおけるビート位置や小節の頭位置を高精度に抽出することが可能となる。
【発明を実施するための最良の形態】
【００１９】
本発明は、オーディオ信号（音響信号、音声信号）のビート位置を簡単かつ正確に抽出するための技術であり、オーディオ信号の楽曲データに対して少なくとも２箇所の区切り（小節の頭）を指定し、指定された２箇所の間を等間隔で分割してビート位置（小節の頭の位置を含む）を抽出するものである。上記区切りとして指定される２箇所の内少なくとも１箇所は、楽曲を聴きながら、手作業で指定入力している。
【００２０】
このような本発明を適用した実施の形態としては、例えば図１に示すような構成が挙げられる。この図１において、楽曲データを含む音響（オーディオ）信号供給装置１からの楽曲データは、ビート抽出装置２に送られ、自動ビート抽出部３にて自動的にビート抽出が行われる。自動ビート抽出部３にて自動的に抽出されたビートは、手動オーサリング部４に送られて、人（作業者）の手作業により修正がなされ、時間軸メタデータ５として付与される。また、音響信号供給装置１からの楽曲データに対して、手動オーサリング部４により直接ビート抽出を行って時間軸メタデータ５を付与してもよい。
【００２１】
ここで、例えば楽曲データに正確な時間軸上のメタデータを付与するために、楽曲データのビート位置を抽出するためには、従来より、楽曲データの音声信号を信号処理にかけて周波数分析や音圧分析を施す手法が知られており、楽曲のビートがはっきりしていてなおかつビート間隔が一定であれば、このような自動抽出方法でも高い確率で正確なビート位置を抽出し、ビート位置のメタデータを生成することが可能である。
【００２２】
しかしながら、人間が楽器を演奏して録音した楽曲の場合、図２のようにテンポは局所的に揺れており、各ビート間の間隔は一定ではない。この図２は、ライブ録音された楽曲における時間（拍数）に対する瞬時ＢＰＭ（Beat Per Minutes）を示すグラフである。また、楽曲によっては数小節以上にわたる範囲で平均ＢＰＭが早くなっていたり、だんだん遅くなっているなどのように、局所的な揺れではない場合も多い。
【００２３】
このような楽曲に対しては、その曲のテンポを表すのに平均ＢＰＭという指標はあまり意味がなく、そのＢＰＭを用いて均等にビート位置を決定しても実際のビート位置とは大きく異なる位置となる可能性がある。
【００２４】
また、信号処理によってビートの位置が正確に抽出できて揺れをある程度吸収できたとしても、小節の頭や拍子、メロディの種類や開始位置を正確に抽出することは非常に困難である。
【００２５】
楽曲データに正確な時間軸上のメタデータを付与するための方法として、人間が手作業で行うことも考えられるが、１曲あたり数百〜数千個にも及ぶビートの位置を確認しながら打ち込むことは作業量が極めて多く、さらに、数百曲、数千曲もの楽曲についてこれを行うことは現実的ではない。
【００２６】
本発明の実施の形態では、上述した図１の自動ビート抽出部３での信号処理により自動的に抽出したビートを元に、手動オーサリング部４により人間にしか分かりえない抽象度の高いデータを正確かつ簡単に手作業で付与できるシステムを提案している。また、自動ビート抽出部３でのビート自動抽出は原理的に１００％の正確性を持つことはできないため、誤抽出した場合にも手動オーサリング部４により簡単に修正できるシステムを提案している。なお、図１の自動ビート抽出部３は必須のものではなく、手動オーサリング部４により、音響信号供給装置１からの楽曲データに対して直接ビート付与を行うようにしてもよい。
【００２７】
図３は、上記ビート抽出システムの手動オーサリング部４による処理を実現するためのグラフィカルな操作入力画面、いわゆるＧＵＩ（Graphical User Interface）の一例を示す図である。この図３において、処理対象となるオーディオ信号の楽曲データの波形が、波形表示部３０１に表示され、この波形表示部３０１には、後述するビート情報も表示される。図３の例の波形表示部３０１は、例えばステレオ左右チャンネルに対応して２つ設けられている。また図３の例では、処理対象オーディオ信号の楽曲データをより広範囲に表示するための表示部３０２が設けられ、時間軸（拍）に対する瞬時ＢＰＭが表示されている。
【００２８】
図４は、上記波形表示部３０１に表示されるビート表示形態の例を示したものである。楽曲の音声波形データが表示される波形表示部３０１の表示領域において、例えば下半分は、予め抽出されたビート情報が表示されるビート抽出領域３０３、上半分は、予め抽出されたビートをもとに最終的なビート情報の清書あるいは編集を行うビート編集領域３０４になっている。下段のビート抽出領域３０３には、例えば上記自動ビート抽出部３により自動的に抽出されたビート情報として、上記音声波形に重ねてビート位置を示す線（棒）が表示される。ここで表示されるビート情報の種類としては、上記自動ビート抽出部３の機能に応じたものとなる。
【００２９】
例えば図５は、上記ビート抽出領域３０３及びビート編集領域３０４に表示されるビート情報のみを取り出して示している。この図５のビート抽出領域３０３の例においては、信号処理によって自動ビート抽出が行われ、かつ本来の拍子にタイミングがあっていると判断した第１類ビートＢａ、自動ビート抽出ができなかったが、本来の拍子に従って自動的に補間された第２類ビートＢｂ、及び自動ビート抽出が行われたが、本来の拍子の位置ではない第３類ビート（例えばいわゆる裏拍）Ｂｃを示している。以下の説明では、上記第１類ビートＢａ及び第２類ビートＢｂをインビート（In Beat）、上記第３類ビートＢｃをアウトビート（Out Beat）と称する。これらの各種ビートＢａ〜Ｂｃについては、それぞれの表示色を異ならせて、例えば、上記第１類ビートＢａを水色、第２類ビートＢｂをピンク、第３類ビートＢｃをオレンジの線（棒）にて表示させて、視覚的に容易に確認できるようにすることが好ましい。なお、本実施の形態における上記自動ビート抽出部３の具体例については後述する。
【００３０】
このようなビート抽出領域３０３に表示された既に抽出されたビートをもとに、より正確なビート情報を求めて、ビート編集領域３０４に表示する。図５のビート編集領域３０４の例では、小節の頭Ｂｄ、通常のビートＢｅを示している。この場合、楽曲に対しより正確にビート位置及び小節位置を求めるために、次に挙げるような問題点を考慮し、解決することが必要とされる。
【００３１】
すなわち、
（１）自動ビート抽出による結果は１００％正確であるとは限らない、
（２）自動ビート抽出は本質的に小節の頭の位置や拍子を認識することが非常に難しく、１００％の正答率にすることは不可能である、
（３）上記抽出の誤りを誤りであると機械が認識することができないため、人間が実際に耳で聴いて手作業で修正するしかない、
（４）反対に最初からすべてを手作業で行う場合、１曲あたり数百〜数千ものビートをすべて打ち込むことは非常な労力を必要とする、
（５）手作業で入力する場合、その位置は信号処理によって抽出した位置に比べて不正確な可能性が高い、
（６）楽曲そのもののビート、テンポが非常に大きく揺らいでいることがある、
との問題点が挙げられる。
【００３２】
これらの（１）〜（６）の問題点を考慮し、本発明の実施の形態においては、次の方針に従って解決を図った。すなわち、
（ａ）小節の頭の位置は人間が聴かなければ分からないので自動抽出に頼らない（人間の音楽認識能力は優れている）、
（ｂ）誤抽出していない限り自動ビート抽出によるビート位置を利用する、
（ｃ）誤抽出があった場合、その箇所が簡単に分かるようにする、
（ｄ）誤抽出があった場合、手作業による修正を極力簡単にできるようにする、
との方針である。
【００３３】
以下、本発明の実施の形態における上記各方針（ａ）〜（ｄ）に従った解決法の具体例について説明する。
【００３４】
上記（ａ）の「小節の頭の位置は人間が聴かなければ分からないので自動抽出に頼らない」点については、次のような工夫を施した。
【００３５】
楽曲は小節で構成されており、小節は拍で構成される。２拍子であれば１小節の中に拍は２つ入り、４拍子であれば４つ入る。
【００３６】
したがって、楽曲データの小節の頭を人間が耳で聴いて判断する場合、図６のように、はっきりと小節の頭であると分かる２箇所（Ｚ１，Ｚ２）を指定し、その２点間の中の小節数ｎを入力することで、その区間のビートと小節を自動的に求める（補間する）ことが可能である。この指定は、楽曲データを再生して人間が耳で聞きながら、小節の頭と認識したタイミングで、例えば図３のＧＵＩ画面のタップボタン３１１をタップする（マウスによりクリックする）ことにより行われる。この指定を少なくとも２箇所行うことが必要であるが、楽曲の開始位置は小節の頭であることが多いことから、１箇所を楽曲の開始位置で代用することも可能であり、この場合に、楽曲を聴きながらの手作業での指定入力は１箇所で済むことになる。
【００３７】
このように小節の頭とされる２箇所（Ｚ１，Ｚ２）が指定され、その間の小節数ｎが入力されたとき、小節の長さＬＢａｒは、ＬＢａｒ＝（Ｚ２−Ｚ１）／ｎで表され、各ビートの長さ（ビート間隔、ビート周期）Ｌｂは、Ｌｂ＝（ＬＢａｒ／拍子分子）で表される。例えば図７では、指定された２箇所の点Ｚ１，Ｚ２の間の小節数ｎ＝１４２を入力することで、小節の長さＬＢａｒ及びビート間隔Ｌｂが求められている。
【００３８】
上述した例では、小節の数が分かっているという前提で、指定された２箇所（Ｚ１，Ｚ２）の２点間から小節の長さを求めたが、小節の数を数えることは非常に煩わしい。逆に小節の長さＬＢａｒが分かっていればそこから小節数が分かることを考慮し、小節の長さＬＢａｒと上記指定点Ｚ１，Ｚ２とから、各小節とビートの位置を求める方法を次に説明する。この際ポイントとなるのは、上記指定点Ｚ１，Ｚ２は小節の頭であることが保証されており、なおかつこの区間における小節の数は整数値しか取りえない。したがって、小節の長さから小節数を求める場合には、正確ではなくとも１小節の概略の長さを指定することで、小節数ｎが整数となるもっとも近傍の正しい小節の長さが求められる。これは、例えば図８に示すように、上記指定点Ｚ１，Ｚ２は振動における固定端に相当すると考えることができる。
【００３９】
上記２箇所の指定点Ｚ１，Ｚ２は、小節の頭として指定されたものであるから、これらの２点間に入る小節数ｎは整数にしかならない。そこで、概略（だいたい、おおよそ）の小節長を指定して、自動的に小節数が整数になる小節長に調節すればよい。概略の小節長をＬａとし、ちょうど小節数ｎ個がぴったり入る小節長をＬＢａｒとすると、次の処理を行うことによりＬＢａｒを求めることができる。
【００４０】
ｎｆ＝（（Ｚ２−Ｚ１）／Ｌａ）＋０．５
ｎ＝ＩＮＴ（ｎｆ）
ＬＢａｒ＝（Ｚ２−Ｚ１）／ｎ
ここで、ｎｆを求める式中で０．５を足しているのは、次のｎを求める式で四捨五入をするためであり、ｎを求める式中のＩＮＴ（ｘ）は、ｘの小数点以下を切り捨てる（整数部分を求める）関数である。
【００４１】
２つの小節頭の指定点Ｚ１，Ｚ２の間に小節とビートを打つことは、このように小節の数あるいは小節の概略の長さが分かればよいわけであるが、小節の数も概略の長さもわからない場合には、次のような方法が有効である。
【００４２】
前述した例では、自動抽出されたビート（拍）に、インビート（In Beat）とアウトビート（Out Beat）がある。インビート（In Beat）は自動抽出アルゴリズムによって、その楽曲本来のビートを抽出した部分である。小節の頭かどうか、拍子はいくつかということは分からないが、実際の拍子の半分や２倍になっていることが多い。この性質を利用すると、インビート（In Beat）をもとに小節の頭を指定し、ユーザが指定する拍子（４／４拍子や３／４拍子など）毎に仮の小節頭を規則的に設定すれば仮の小節頭が区間内に並ぶことになる。したがって、指定点Ｚ１，Ｚ２の間にある仮の小節数を数えてｎとするか、あるいは小節の頭同士の差分をとることによってＬＢａｒが簡単に求められる。
【００４３】
ただし、自動抽出したビートは、本来の拍子の２倍や半分などで抽出していることもあるため、その場合には本来の小節の長さのそれぞれ半分、２倍になってしまう。しかしながら、楽曲データの再生音を人間が耳で確認すると、２倍になっているのか半分になっているのかは即座に識別が可能である。そこで本発明の実施の形態では、上記指定点Ｚ１，Ｚ２における小節数ｎを２倍にしたり半分にしたりして即座に再計算を行うインターフェースを用意した。例えば、上記図３のボタン３１２、３１３が、ｎをそれぞれ２倍にしたり半分にしたりするボタンである。このように小節数ｎが決定されれば、上述したような処理によってビート位置の再計算は簡単に行える。これにより、わずかなステップ数で正確な小節数及び小節の長さを求めることができる。
【００４４】
さらに、本発明の実施の形態では、小節数ｎを手動で＋１あるいは−１するインターフェース（図３のボタン３１４、３１５）も用意している。これは、上記指定点Ｚ１，Ｚ２間の距離が長い場合に、誤差が大きくなり、上記概略の長さＬａにより求められる小節数ｎが実際よりも一つ多くなったり、一つ少なくなったりすることが多々あるからである。この場合も、楽曲データの再生音を耳で確認してビートが聴感上ずれてきたら、小節数ｎを＋１、−１してやれば、自動的にＬＢａｒを再計算して小節とビートの位置を打ち直す。これらはすべて上記指定点Ｚ１，Ｚ２間の小節数ｎが整数値になるという性質を利用している。
【００４５】
次に、上記（ｂ）の「誤抽出していない限り自動ビート抽出によるビート位置を利用する」点に対しては、具体的に次の工夫を行った。
【００４６】
上記小節の頭位置と小節の数及び長さを決める処理を行って、上記指定点Ｚ１，Ｚ２の間に小節とビートを補間していく処理を行うが、均等に補間してしまうと、図２で示したようなビート間隔に揺れのある楽曲に対して実際のビート位置と計算で求めたビート位置がずれてしまうという問題が生じる。
【００４７】
本発明の実施の形態においては、信号処理による自動抽出されたビートの情報を併用することでこの問題を解決している。すなわち、上記図１の自動ビート抽出部３によるビートの自動抽出で得たビート位置情報は、信号処理によってビートの揺れに追従がなされたものであるため、その位置情報を可能な限りそのまま利用する。ただし、自動抽出したビートが間違えている可能性がある場合にはその位置のビート位置情報は使用せずに計算で求めた位置情報を使用する。このような処理の流れを、図９−１、図９−２を参照しながら説明する。
【００４８】
図９は、人が小節の頭に付与した指定点Ｚ１から後方の指定点Ｚ２に向かって順に小節及びビートの位置情報を付与していく処理の動作を説明するためのフローチャートである。
【００４９】
図９のステップＳ４０１において、上記小節の長さ（小節長）ＬＢａｒを求める。これは、上述したように、上記小節頭の指定点Ｚ１，Ｚ２の位置及び小節数ｎを用いて、
ＬＢａｒ＝（Ｚ２−Ｚ１）／ｎ
の式により求めればよく、小節数ｎについては、上述した概略の小節の長さＬａから求めるようにしてもよい。
【００５０】
次のステップＳ４０２では、ステップＳ４０１で求めた小節長ＬＢａｒを拍子で割って、
Ｌｂ＝ＬＢａｒ／拍子
の式により仮のビート長Ｌｂを求める。
【００５１】
次のステップＳ４０３では、この処理中に最後にビートを打った（最近にビート位置を付与した）位置を示す変数Ｐａに、初期値としての上記指定点Ｚ１の位置を代入（Ｐａ＝Ｚ１）することにより、変数Ｐａを初期化する。また、次のステップＳ４０４で、最後に小節の頭を打った（最近に小節頭位置を付与した）位置を示す変数ＰＢａｒに、初期値としての上記設定点Ｚ１の位置を代入（ＰＢａｒ＝Ｚ１）することにより、変数ＰＢａｒを初期化する。
【００５２】
ステップＳ４０５では、次のビート候補の位置を示す変数Ｐｃに、Ｐａ＋Ｌｂの値を代入（Ｐｃ＝Ｐａ＋Ｐａ）する。すなわち、最後の（最新の）ビート位置Ｐａから上記仮のビート長Ｌｂだけ進んだ位置を次のビート候補の位置Ｐｃとする。この候補位置Ｐｃを中心として閾値Ｔｉの範囲内（ウィンドウ幅内）に自動抽出ビートが存在するかどうかを調べるわけであるが、先にステップＳ４０６で、上記候補位置Ｐｃが上記指定点Ｚ２より小さい（Ｐｃ＜Ｚ２）か否かを判別する。このステップＳ４０６でＹｅｓ、すなわち上記候補位置Ｐｃが上記指定点Ｚ２より前の位置のとき、ステップＳ４０７に進み、Ｎｏのとき、処理を終了する。
【００５３】
ステップＳ４０７では、上記候補位置Ｐｃを中心として閾値Ｔｉの範囲内に自動抽出したインビート（In Beat）があるか否かを判別し、Ｙｅｓ（In Beatあり）のときはステップＳ４０８に進む。ステップＳ４０８では、そのインビート（In Beat）の位置Ｐｉにビート情報を打ち、次のステップＳ４０９で、後の処理のための実際にビートを打った最新位置を示す変数ＰａにＰｉを代入（Ｐａ＝Ｐｉ）することによりＰａを更新し、後述するステップＳ４１５に進む。
【００５４】
上記ステップＳ４０７でＮｏ（自動抽出されたIn Beatなし）と判別されたときは、ステップＳ４１０に進み、上記候補位置Ｐｃを中心として閾値Ｔｏの範囲内（ウィンドウ幅内、本実施の形態ではＴｉ＞Ｔｏ）に自動抽出したアウトビート（Out Beat）が存在するか否かを判別する。ステップＳ４１０でＹｅｓ（Out Beatあり）と判別されたときは、ステップＳ４１１でそのアウトビート（Out Beat）の位置Ｐｏにビート情報を打つ。次のステップＳ４１２では、後の処理のためのビートを打った最新位置を示す変数ＰａにＰｃを代入（Ｐａ＝Ｐｃ）することによりＰａを更新し、ステップＳ４１５に進む。
【００５５】
上記ステップＳ４１０でＮｏ（自動抽出されたOut Beatなし）と判別されたときは、ステップＳ４１３に進み、上記候補位置Ｐｃの位置にビート情報を打ち、次のステップＳ４１４で、後の処理のためのビートを打った最新位置を示す変数ＰａにＰｃを代入（Ｐａ＝Ｐｃ）することによりＰａを更新し、ステップＳ４１５に進む。
【００５６】
ステップＳ４１５では、最後に打ったビート（上記最新位置を示す変数Ｐａの位置のビート）が小節の頭か否かを判別し、ＹｅｓのときはステップＳ４１６に進み、Ｎｏのときは上記ステップＳ４０５に戻る。
【００５７】
ステップＳ４１６では、上記最後に打ったビート位置Ｐａと最後に打った小節の頭の位置ＰＢａｒとを用いて、Ｐａ−ＰＢａｒから直近の小節の長さを求め、ビートの長さ候補Ｌｂを、求めた小節の長さと拍子から更新する。すなわち、
Ｌｂ＝（Ｐａ−ＰＢａｒ）／拍子
とする。次のステップＳ４１７では、小節頭の最新位置を示す変数ＰＢａｒに上記Ｐａを代入（ＰＢａｒ＝Ｐａ）することによりＰＢａｒを更新し、その後、上記ステップＳ４０５に戻る。
【００５８】
以上のステップＳ４０５からステップＳ４１７までの処理は、上記ステップＳ４０６においてＮｏと判断されるまで、すなわち上記候補位置Ｐｃが上記指定点Ｚ２に到達するまで繰り返される。
【００５９】
図１０は、このようにしてビートや小節の頭が打たれる様子を示す図であり、上記自動抽出されたビートが表示されるビート抽出領域３０３と、この抽出されたビートに対応してビートや小節の頭が打たれたビート編集領域３０４の具体例を示している。ただし、この図１０には、上記図５と同様に、楽曲データの波形表示を省略して図示している。ここで、上記図５と共に説明した第１類ビートＢａは、自動抽出したインビート（In Beat）として図１０の位置Ｐｉのビートに対応し、第２類ビートＢｂは、自動抽出したアウトビート（Out Beat）として図１０の位置Ｐｏのビートに対応する。
【００６０】
この図１０において、上記指定点Ｚ１は、上記図９のステップＳ４０３、Ｓ４０４に示したように、最後の（最新の）ビート位置Ｐａ、小節頭位置ＰＢａｒの初期値である。この最後の（最新の）ビート位置Ｐａ（＝Ｚ１）に上記仮のビート長Ｌｂを加算した位置を次のビート候補３４１の位置Ｐｃとし、この候補位置Ｐｃを中心として閾値Ｔｉの範囲内（ウィンドウ幅内）に上記自動抽出したビートが存在するかを調べる。
【００６１】
図１０の例では、ビート抽出領域３０３において、上記ビート候補３４１の位置Ｐｃを中心とする閾値Ｔｉの範囲内に自動抽出されたインビート（In Beat）３４２が存在していることから、図９のステップＳ４０７でＹｅｓと判別されてステップＳ４０８に進み、この抽出ビート３４２の位置Ｐｉに対応するビート編集領域３０４に、ビート３４３を打ち、ステップＳ４０９で、上記最後の（最新の）ビート位置を表す変数Ｐａにビート３４３の位置Ｐｉを代入（Ｐａ＝Ｐｉ）してＰａを更新する。
【００６２】
この更新されたＰａから上記仮のビート長Ｌｂだけ進んだ位置を次のビート候補３４４の位置Ｐｃとし、この位置Ｐｃを中心とする閾値Ｔｉの範囲内の自動抽出ビートを調べると、図１０のビート抽出領域３０３には、アウトビート（Out Beat）３４５とインビート（In Beat）３４６が存在している。図９のフローチャートから明らかなように、先にステップＳ４０７でインビート（In Beat）が存在するか否かが調べられてＹｅｓと判断され、ステップＳ４０８に進むことから、閾値Ｔｉの範囲内のインビート（In Beat）３４６の位置Ｐｉに対応するビート編集領域３０４にビート３４７が打たれ、この位置Ｐｉで上記変数Ｐａが更新され（Ｐａ＝Ｐｉ）る。
【００６３】
この最後に（最近に）打たれたビート３４７の位置Ｐａから上記仮のビート長Ｌｂだけ進んだ位置のビート候補３４８を中心とする閾値Ｔｉの範囲内の自動抽出ビートを調べると、図１０のビート抽出領域３０３には、アウトビート（Out Beat）３４９が存在するが、インビート（In Beat）は存在しない。例えば、次のインビート（In Beat）２５０は、閾値Ｔｉの範囲内から外れている。従って、上記図９のステップＳ４０７でＮｏと判断され、ステップＳ４１０に進んで、ビート候補３４８の位置Ｐｃを中心とする閾値Ｔｏの範囲内（本実施の形態ではＴｉ＞Ｔｏ）に自動抽出されたアウトビート（Out Beat）が存在するか否かを判別する。図１０のビート抽出領域３０３のアウトビート（Out Beat）３４９は、閾値Ｔｏの範囲内に入っているから、ステップＳ４１０でＹｅｓと判別されてステップＳ４１１に進み、このアウトビート（Out Beat）３４９の位置Ｐｏに対応するビート編集領域３０４にビート３５１が打たれ、ステップＳ４１２で、この位置Ｐｏが上記変数Ｐａに代入（Ｐａ＝Ｐｏ）されることによりＰａが更新される。
【００６４】
さらに、ビート３５１の位置Ｐａから上記仮のビート長Ｌｂだけ進んだ位置のビート候補３５２については、このビート候補３５２の位置Ｐｃを中心とする閾値Ｔｉの範囲内にインビート（In Beat）は存在せず、位置Ｐｃを中心とする閾値Ｔｏの範囲内にアウトビート（Out Beat）も存在しないため、図９のステップＳ４０７でＮｏ、ステップＳ４１０でもＮｏと判別され、ステップＳ４１３に進んで、ビート候補３５２の位置Ｐｃに補間用のビート３５３を打つ。
【００６５】
このように、次のビートの候補位置Ｐｃから所定の閾値の範囲内に存在する自動抽出ビートをそのまま用いて（自動抽出ビートの位置に吸着させて）処理後のビートを得るようにしており、また、上記所定の閾値の範囲内に自動抽出ビートが存在しないとき、次のビートの候補位置Ｐｃに補間用のビートを付与している。
【００６６】
次に、上記（ｃ）の「誤抽出があった場合、その箇所が簡単に分かるようにする」点については、次のようにしている。
【００６７】
図１０で示すビート編集領域３０４において、上記指定点Ｚ１，Ｚ２の間の区間内にビートを打つときに、ビート抽出領域３０３に表示される自動抽出ビートが、上記ビート候補位置Ｐｃを中心とする範囲の閾値Ｔｉ及びＴｏのウィンドウ幅内に見つかったかどうかによって、ビート編集領域３０４に表示されるビート３４３，３４７，３５１，３５３等の色を異ならせている。
【００６８】
例えば、本実施の形態では、自動抽出ビートのインビート（In Beat）位置Ｐｉに吸着できたビート３４３，３４７等を水色（あるいは青色）で表示し、自動抽出ビートのアウトビート（Out Beat）位置Ｐｏに吸着できたビート３５１等を黄色（あるいはオレンジ色）で表示し、自動抽出ビートが所定の閾値範囲内に見つからなかったため計算による補間を行ったビート３５３等を赤色（あるいはピンク色）で表示するようにしており、いわゆる信号機の色に関連付けて、水色（青色）、黄色、赤色の順に、そのビートの信頼性を高い方から低い方に表現している。
【００６９】
これにより、自動ビート抽出したビート位置と、上記指定点Ｚ１，Ｚ２の区間における小節位置及びその区間のビート付与位置が、上記候補位置近傍の閾値Ｔｉの範囲内に入っているビートは水色（青色）で表示される。
【００７０】
これに対して自動抽出時に誤抽出が起きている場合、抽出されたビート位置と、上記指定点Ｚ１，Ｚ２の区間におけるビート付与位置に矛盾が生じる。正しく抽出されない場合の多くは、楽曲の中で数〜数十小節にわたってテンポが大きく変化している部分があったり、ビートがはっきりしない曲調の曲において正確なインビート（In Beat）がとれなかった場合である。このような状態では指定点Ｚ１，Ｚ２の区間内に入るビートの数が拍子の数で割り切れなくなる。各指定点Ｚ１，Ｚ２は小節の頭であるため、その区間に入るビートの数は必ず拍子の倍数になっているはずである。しかしながら、上記のような誤抽出が起こると、上記区間に入るビートの数が合わなくなり、図１０における閾値Ｔｉ及びＴｏの範囲内に入らないビートが出はじめ、ちょうど１ビートずれたビートが閾値に入るまでこの状態が続く。すると結果として編集領域３０４には赤色のビートが連続して表示されるため、ビートずれが起きた位置を簡単に見つけることができる。
【００７１】
また、上記図３のＧＵＩ画面の例えば表示部３０２に、各ビートの瞬時ＢＰＭの誤差、同累積誤差、位相ずれ量をグラフで可視化することによって、信号処理により自動抽出されたビートがどれくらい信頼できるかを予想することが可能となる。ここで、図１１は、上記表示部３０２の表示例を示し、（Ａ）は生演奏あるいはライブ録音された場合などのようにビートが大きく揺らいでいる例を、（Ｂ）はコンピュータ打ち込みなどによる再生音の例をそれぞれ示している。これらの図１１の（Ａ）、（Ｂ）において、曲線Ｑａが各ビートの瞬時ＢＰＭの誤差、曲線Ｑｂが各ビートの瞬時ＢＰＭの累積誤差、曲線Ｑｃが位相ずれ量である。
【００７２】
図１１の（Ｂ）のように楽曲のＢＰＭが安定していて自動抽出がうまくいった場合には、上記３種類の曲線Ｑａ、Ｑｂ、Ｑｃが略々横一直線に重なる。しかし、図１１の（Ａ）のように大きくビートが揺らいでいる場合、それぞれの曲線Ｑａ、Ｑｂ、Ｑｃは大きく乖離する。従って、このような表示を行うことによって、自動抽出ビートの信頼性を一目で確認することができる。
【００７３】
次に、上記（ｄ）の、「誤抽出があった場合、手作業による修正を極力簡単にできるようにする」点については、次のような対策を施した。
【００７４】
誤抽出が起こる原因は、前述したように、楽曲の中で数〜数十小節にわたってテンポが大きく変化している部分があったり、ビートがはっきりしない曲調の曲において正確なインビート（In Beat）がとれなかった場合が多い。またそれに加えて作曲者や演奏者が意図的に部分的に拍子を変えている場合がある。
【００７５】
このような楽曲においてビートが正確に抽出されなかった部分は、上記図１０や図１１等と共に説明した方法で簡単に検出できるが、さらに、それを容易に修正できることが必要とされる。具体的には、このような楽曲に対して区間を２以上設定可能とし、各区間毎に正確なビート位置や小節頭位置を求めるようにすることが好ましい。すなわち、図１２に示すように、３箇所以上の指定点Ｚ１，Ｚ２，Ｚ３，…を指定入力し、これらの指定点Ｚ１，Ｚ２，Ｚ３，…の間の区間毎に、上記図９、図１０と共に説明したような処理を行わせる。
【００７６】
この場合、各指定点Ｚ１，Ｚ２，…はそれぞれ小節の頭であり、これらの指定点Ｚ１，Ｚ２，…からそれぞれ次の指定点までの間で構成される各区間の小節の長さ、小節数、拍子は個別に管理されている。従って、自動抽出がうまくいかなかった部分を含む区間と、うまく行いった区間に分離し、それぞれの区間毎に異なる小節長で個別に上述したようなビート付与の計算を行う。
【００７７】
このような区間設定とは別に、上記図１の手動オーサリング部４は、時間軸上のメタデータとして、楽曲のメロディ構造、例えばイントロ、Ａメロディ、Ｂメロディ、サビ、エンディング等に応じた楽曲構造情報を入力することも可能である。具体的には、図１３に示すように、上記波形表示部３０１等の楽曲データの上記ビート位置や小節頭位置の表示と共に、ユーザの入力操作に応じて、上記メロディ構造の各部を区別するための変化位置の位置情報を示すマーク４５１が付与されて表示される。これらのメロディ構造に応じた変化位置については、上記指定点Ｚ１，Ｚ２，…とは異なるものであるが、小節の頭であることが多く、また、例えばイントロは他の部分より遅めなどのようにメロディ構造の各区間毎にテンポや拍子を変えることもある。
【００７８】
以上説明した本発明の実施の形態により、楽曲の正確なビート位置が必要なアプリケーションのための時間軸上のメタデータを簡単かつ正確に付与することが可能となり、また、そのビート位置を元に、正確なメロディやコード進行、歌詞などの情報も付与することが可能となる。
【００７９】
これにより、正確なメタデータがないと実現が困難であった音楽リミックスアプリケーションや、ビートに同期して正確なタイミングで制御が必要なデバイスやソフトウェアを製作することが可能となる。
【００８０】
次に、上述したような手動によるビート位置や小節頭位置の付与を行う上記図１の手動オーサリング部４を有するビート抽出装置２を含むメタデータ抽出システムの全体構成について、自動ビート抽出部３の具体例も含めて説明する。
【００８１】
図１４は、本発明の実施の形態となる上記図１のビート抽出装置２を含む装置のハードウェア構成の一例を概略的に示すブロック図である。この図１４に示す装置１０は、例えば、パーソナルコンピュータで構成され、図１の自動ビート抽出部３及び手動オーサリング部４の機能を実現するのみならず、音楽コンテンツ供給機能や音楽再生機能をも有するものである。
【００８２】
上述したような図１の手動オーサリング部４での処理の原データ（入力データ）となる自動抽出ビートを得るための自動ビート抽出部３は、本発明を実現するためには必ずしも必要とするものではないが、この自動ビート抽出部３でのビート抽出精度が高ければ高いほど、上述した手動オーサリングの手間が省け、またより高品質のビート抽出や小節頭の抽出が行えるため、高性能の自動ビート抽出部３を用意することは重要である。この点を考慮し、上記図１の自動ビート抽出部３の好ましい具体例についても詳細に説明する。
【００８３】
図１４に示す装置において、システムバス１００には、ＣＰＵ（Central Processing Unit）１０１と、ＲＯＭ（Read Only Memory）１０２と、ＲＡＭ（Random Access Memory）１０３とが接続されている。ＲＯＭ１０２には各種プログラムが記録されており、ＣＰＵ１０１は、ワークエリアとしたＲＡＭ１０３上でこれらのプログラムに基づく処理を実行する。
【００８４】
また、システムバス１００には、音声データデコード部１０４と、メディアドライブ１０５と、通信ネットワークインターフェース（インターフェースは図ではＩ／Ｆと記載する。以下同じ。）１０７と、操作入力部インターフェース１０９と、ディスプレイインターフェース１１１と、Ｉ／Ｏポート１１３及びＩ／Ｏポート１１４と、入力部インターフェース１１５と、ＨＤＤ（Hard Disc Drive）１２１とが接続されている。各機能ブロックで処理される一連のデータは、このシステムバス１００を介して他の機能ブロックに供給される。
メディアドライブ１０５は、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disc）等のディスク１０６に記憶されている音楽コンテンツの音楽データを、システムバス１００に取り込む。
【００８５】
操作入力部インターフェース１０９には、キーボード、マウス等の操作入力部１１０が接続されている。
【００８６】
ディスプレイ１１２は、手動オーサリング時には、主として上記図３と共に説明したようなＧＵＩ画面を表示するものであるが、この他、自動ビート抽出時などに、例えば、抽出したビートに同期した表示をしたり、抽出したビートに同期して踊る人形やロボットを表示したりすることも可能である。
【００８７】
Ｉ／Ｏポート１１３には、オーディオ再生部１１７と、ビート抽出部１１とが接続されている。また、Ｉ／Ｏポート１１４には、ビート抽出部１１が接続されている。このビート抽出部１１が、上記図１の自動ビート抽出部３に略々対応するものである。
【００８８】
入力部インターフェース１１５には、Ａ／Ｄ（Analog to Digital）変換器１１６Ａと、マイクロホン端子１１６Ｂと、マイクロホン１１６Ｃとを備える入力部１１６が接続されている。マイクロホン１１６Ｃで収音された音声信号や音楽信号は、Ａ／Ｄ変換器１１６Ａでデジタルオーディオ信号に変換されて入力部インターフェース１１５に供給される。入力部インターフェース１１５は、このデジタルオーディオ信号をシステムバス１００に取り込む。システムバス１００に取り込まれたデジタルオーディオ信号（時間波形信号に相当）は、ＨＤＤ１２１上に.wavファイル等の形式で記録される。この入力部インターフェース１１５を介して取り込まれたデジタルオーディオ信号は、オーディオ再生部１１７に直接は供給されない。
【００８９】
音楽データデコード部１０４は、システムバス１００を介してＨＤＤ１２１またはメディアドライブ１０５から音楽データが供給されると、この音楽データをデコードし、デジタルオーディオ信号を復元する。音楽データデコード部１０４は、この復元されたデジタルオーディオ信号を、システムバス１００を介してＩ／Ｏポート１１３に転送する。Ｉ／Ｏポート１１３は、システムバス１００を介して転送されてくるデジタルオーディオ信号をビート抽出部１１及びオーディオ再生部１１７に供給する。
【００９０】
既存のＣＤ等のメディア１０６はメディアドライブ１０５を通して、システムバス１００に取り込まれる。リスナーがダウンロード等をすることにより取得されてＨＤＤ１２１に取り込まれている非圧縮音声コンテンツは、直接システムバス１００に取り込まれる。一方、圧縮音声コンテンツは、一旦、音声データデコード部１０４を通してシステムバス１００に戻される。入力部１１６から入力部インターフェース１１５を介してシステムバス１００に取り込まれたデジタルオーディオ信号（デジタルオーディオ信号は、音楽の信号に限らず、例えば、人声信号やその他のオーディオ帯域信号を含むものとする）も一旦、ＨＤＤ１２１に取り込まれた後、再びシステムバス１００に戻される。
【００９１】
本発明を適用した一実施形態における装置１０では、システムバス１００に取り込まれたデジタルオーディオ信号（時間波形信号に相当）は、Ｉ／Ｏポート１１３に転送され、ビート抽出部１１に供給される。
【００９２】
本発明の一実施形態に用いられるビート抽出部１１は、楽曲におけるリズムのビート位置情報を抽出するビート抽出処理部１２と、ビート抽出処理部１２により抽出されて得られたビート位置情報を用いてビート周期情報を生成し、このビート周期情報に基づいて、ビート抽出処理部１２により抽出されたビート位置情報のビートを整列するビート整列処理部１３とを備える。
【００９３】
図１５に示すように、ビート抽出処理部１２は、.wavファイルに記録されているデジタルオーディオ信号が供給されると、このデジタルオーディオ信号から粗いビート位置情報を抽出し、結果を.mtyファイルに記録されたメタデータとして出力する。また、ビート整列処理部１３は、.mtyファイルに記録されたメタデータの全部、又はテンポが同じと想定される楽曲部分に対応するメタデータを用いて、ビート抽出処理部１２により抽出されたビート位置情報を整列し、結果を.mayファイルに記録されたメタデータとして出力する。これにより、段階的に精度の高い抽出ビート位置情報を得ることが可能となる。なお、ビート抽出部１１についての詳細は、後述する。
【００９４】
オーディオ再生部１１７は、Ｄ／Ａ変換器１１７Ａと、出力アンプ１１７Ｂと、スピーカ１１７Ｃとを備える。Ｉ／Ｏポート１１３は、システムバス１００を介して転送されてくるデジタルオーディオ信号を、オーディオ再生部１１７が備えるＤ／Ａ変換器１１７Ａに供給する。Ｄ／Ａ変換器１１７Ａは、Ｉ／Ｏポート１１３から供給されたデジタルオーディオ信号をアナログオーディオ信号に変換し、出力アンプ１１７Ｂを通じてスピーカ１１７Ｃに供給する。スピーカ１１７Ｃは、この出力アンプ１１７Ｂを通じてＤ／Ａ変換器１１７Ａから供給されたアナログオーディオ信号を音響再生する。
【００９５】
ディスプレイインターフェース１１１には、例えば、ＬＣＤ（Liquid Crystal Display）等からなるディスプレイ１１２が接続されている。ディスプレイ１１２には、例えば、音楽コンテンツの音楽データから抽出されたビート成分やテンポ値が表示される。また、ディスプレイ１１２には、音楽に同期して、例えば、アニメーション画像や歌詞が表示される。
【００９６】
通信ネットワークインターフェース１０７は、インターネット１０８に接続されている。音楽再生装置１０では、音楽コンテンツの属性情報を記憶するサーバに、インターネット１０８を介してアクセスし、音楽コンテンツの識別情報を検索ワードとしてその属性情報の取得要求を送り、この取得要求に応じてサーバから送られてくる属性情報を、例えば、ＨＤＤ１２１が備えるハードディスクに記憶させる。
【００９７】
本発明を適用した一実施形態における装置１０が備えるビート抽出部１１は、以下に説明するデジタルオーディオ信号の特徴に基づいて、音楽のリズムのビート位置情報を抽出する。
【００９８】
図１６（Ａ）は、デジタルオーディオ信号の時間波形の一例を示すものである。この図１６（Ａ）に示される時間波形には、所々で瞬間的に大きなピーク値を呈する部分があることがわかる。この大きなピーク値を呈する部分は、例えば、ドラムのビートの一部に相当する部分である。
【００９９】
ところで、図１６（Ａ）に示される時間波形を有するデジタルオーディオ信号の時間波形では、隠れていてわからないが、この図１６（Ａ）に示される時間波形を有するデジタルオーディオ信号の音楽を実際に聴いてみると、さらに多くのビート成分がほぼ等間隔で含まれていることがわかる。すなわち、図１６（Ａ）に示される時間波形の大きなピーク値だけからでは、実際の音楽のリズムのビート成分を抽出することができない。
【０１００】
図１６（Ｂ）は、図１６（Ａ）に示される時間波形を有するデジタルオーディオ信号のスペクトログラムを示すものである。この図１６（Ｂ）に示されるデジタルオーディオ信号のスペクトログラムでは、図１６（Ａ）に示される時間波形において隠れていたビート成分が、パワースペクトルが瞬間的に大きく変化する部分として見えることがわかる。そして、実際に音を聴くと、このスペクトログラムにおけるパワースペクトルが瞬間的に大きく変化する部分が、ビート成分に相当するということがわかる。ビート抽出部１１では、このスペクトログラムにおけるパワースペクトルが瞬間的に大きく変化する部分をリズムのビート成分と見なす。
【０１０１】
このビート成分を抽出してビート周期を計測することにより、音楽のリズム周期やＢＰＭ（Beat Per Minutes）を知ることもできる。
【０１０２】
ビート抽出処理部１２は、図１７に示すように、パワースペクトル算出部１２Ａと、変化率算出部１２Ｂと、エンベロープフォロア部１２Ｃと、コンパレータ部１２Ｄと、２値化部１２Ｅとを備える。
【０１０３】
パワースペクトル算出部１２Ａには、楽曲の図１８（Ａ）に示すような時間波形からなるデジタルオーディオ信号が入力される。
【０１０４】
すなわち、音楽データデコード部１０４から供給されたデジタルオーディオ信号は、ビート抽出処理部１２が備えるパワースペクトル算出部１２Ａに供給される。
【０１０５】
パワースペクトル算出部１２Ａは、時間波形から高精度にビート成分を抽出することができないため、この時間波形に対し、例えば、ＦＦＴ（Fast Fourier Transform）を用いて図１８（Ｂ）に示すようなスペクトログラムを算出する。
【０１０６】
このＦＦＴ演算における分解能は、ビート抽出処理部１２へ入力されるデジタルオーディオ信号のサンプリング周波数が４８ｋＨｚである場合、サンプル数を５１２サンプル、又は１０２４サンプルとし、実時間で５〜３０ｍｓｅｃに設定するのが好ましいが、このＦＦＴ演算において設定された各種数値については、これらに限定されない。また、例えば、ハニングやハミング等の窓関数（ウィンドウ関数）をかけながら、且つ、窓（ウィンドウ）をオーバーラップさせながらＦＦＴ演算を行うのが一般的に好ましい。
【０１０７】
パワースペクトル算出部１２Ａは、算出したパワースペクトルを変化率算出部１２Ｂに供給する。
【０１０８】
変化率算出部１２Ｂは、パワースペクトル算出部１２Ａから供給されたパワースペクトルの変化率を算出する。すなわち、変化率算出部１２Ｂは、パワースペクトル算出部１２Ａから供給されたパワースペクトルに対して微分演算を施すことによりパワースペクトルの変化率を算出する。変化率算出部１２Ｂは、時々刻々と変化するパワースペクトルに対して、微分演算を繰り返し施すことにより、図１８（Ｃ）に示すようなビート抽出波形を示す検出信号を出力する。ここで、図１８（Ｃ）に示すビート抽出波形の内、正方向に立ち上がるピークをビート成分と見なす。
【０１０９】
エンベロープフォロア部１２Ｃは、変化率算出部１２Ｂから検出信号が供給されると、この検出信号に適度な時定数によるヒステリシス特性を加えることにより、この検出信号のチャタリングを除去し、このチャタリングが除去された検出信号をコンパレータ部１２Ｄに供給する。
【０１１０】
コンパレータ部１２Ｄは、適度なスレショルドを設け、エンベロープフォロア部１２Ｃから供給された検出信号の低レベルのノイズをカットし、この低レベルのノイズがカットされた検出信号を２値化部１２Ｅに供給する。
【０１１１】
２値化部１２Ｅは、コンパレータ部１２Ｄから供給された検出信号の内、閾値以上のレベルを有する検出信号のみを残す２値化処理を行い、Ｐ１,Ｐ２,及びＰ３からなるビート成分の時間位置を示すビート位置情報を.mtyファイルに記録されたメタデータとして出力する。
【０１１２】
このように、ビート抽出処理部１２は、デジタルオーディオ信号の時間波形からビート位置情報を抽出し、.mtyファイルに記録されたメタデータとして出力する。なお、このビート抽出処理部１２が備える各構成部には、内部パラメータが存在し、各内部パラメータを変更することで各構成部の動作の効果が変更される。この内部パラメータは、後述するように、自動で最適化されるが、例えば、操作入力部１１０においてユーザの手動によるマニュアル操作により設定することも可能である。
【０１１３】
ビート抽出処理部１２により抽出されて.mtyファイルにメタデータとして記録されている楽曲のビート位置情報のビート間隔は、例えば、図１９（Ａ）に示すように、非等間隔であることが多い。
【０１１４】
ビート整列処理部１３は、ビート抽出処理部１２により抽出されたビート位置情報の内、楽曲、又はテンポが同じと想定される楽曲部分におけるビート位置情報の整列処理を行う。
【０１１５】
ビート整列処理部１３は、ビート抽出処理部１２により抽出されて.mtyファイルに記録されているビート位置情報のメタデータから例えば図１９（Ａ）のＡ１からＡ１１に示されるような時間間隔が等間隔なビートである等間隔ビートを抽出し、Ｂ１からＢ４で示されるような非等間隔ビートを抽出しないようにする。本実施の形態における等間隔ビートとは４分音符の間隔で等間隔であるものとする。
【０１１６】
ビート整列処理部１３は、ビート抽出処理部１２により抽出されて.mtyファイルに記録されているビート位置情報のメタデータから高精度な平均周期Ｔを算出し、平均周期Ｔと時間間隔が等しいビートを等間隔ビートとして抽出する。
【０１１７】
ここで、抽出された等間隔ビートのみでは、図１９（Ａ）に示すような空白期間が存在してしまう。このため、ビート整列処理部１３は、図１９（Ｂ）に示すように、本来等間隔ビートが存在する位置に、Ｃ１からＣ３で示されるような補間ビートを新たに付加する。これにより、全てのビート間隔が等間隔であるビート位置情報を得ることが可能となる。
【０１１８】
ビート整列処理部１３は、等間隔ビートと位相がほぼ等しいビートをインビートと定義して抽出する。ここで、インビートは、実際の音楽ビートと同期するビートであり、等間隔ビートも含まれる。一方、ビート整列処理部１３は、等間隔ビートと位相が全く異なるビートをアウトビートと定義して、これを除外する。アウトビートは、実際の音楽ビート（４分音符ビート）とは同期しないビートである。このため、ビート整列処理部１３は、インビートとアウトビートを判別する必要がある。
【０１１９】
具体的に、あるビートがインビートであるかアウトビートであるかを判断する方法として、ビート整列処理部１３は、図２０に示すように、等間隔ビートを中心とした一定のウィンドウ幅Ｗを定義する。ビート整列処理部１３は、ウィンドウ幅Ｗに含まれるビートをインビートとし、また、ウィンドウ幅Ｗに含まれないビートをアウトビートと判断する。
【０１２０】
また、ビート整列処理部１３は、ウィンドウ幅Ｗに等間隔ビートが含まれていないとき、等間隔ビートを補間するためのビートである補間ビートを付加する。
【０１２１】
すなわち、ビート整列処理部１３は、例えば、図２１に示すように、Ａ１１からＡ２０で示されるような等間隔ビートと、等間隔ビートＡ１１と位相がほぼ等しいビートであるインビートＤ１１とをインビートとして抽出するとともに、Ｃ１１からＣ１３で示されるような補間ビートを抽出する。また、ビート抽出部１３は、Ｂ１１からＢ１３で示されるようなアウトビートを４分音符ビートとしては抽出しないようにする。
【０１２２】
実際、音楽ビートは、時間的に揺らいでいるため、この判断において、揺れが大きい音楽に対しては抽出されるインビート数が少なくなる。この結果、ビートスリップと呼ばれる抽出エラーを引き起こすといった問題が発生する。
【０１２３】
そこで、揺れが大きい音楽に対しては、ウィンドウ幅Ｗの値を大きく設定し直すことで抽出されるインビート数が多くなり、抽出エラーを少なくすることができる。このウィンドウ幅Ｗは、通常、一定値でよいが、極端に揺れの大きい楽曲に対しては、値を大きくする等、パラメータとして調整を行うことができる。
【０１２４】
ビート整列処理部１３は、ウィンドウ幅Ｗに含まれるインビート、一方、ウィンドウ幅Ｗに含まれないアウトビートというビート属性をメタデータとして与える。また、ビート整列処理部１３は、ウィンドウ幅Ｗ内に抽出ビートが存在しない場合、自動的に補間ビートを付加し、この補間ビートというビート属性をもメタデータとして与える。これにより、ビート情報を構成するメタデータは、上述したビート位置情報や上記のビート属性といったビート情報が含まれ、メタデータファイル（.may）に記録される。なお、このビート整列処理部１３が備える各構成部には、基本ウィンドウ幅Ｗ等の内部パラメータが存在し、各内部パラメータを変更することで動作の効果が変更される。
【０１２５】
このように、ビート抽出部１１は、ビート抽出処理部１２及びビート整列処理部１３における２段階によるデータ処理により、デジタルオーディオ信号から非常に高精度なビート情報を自動的に抽出することが可能となる。インビート／アウトビート判定のみならず、適切なビート補間処理を加えることにより、１曲全体にわたって、４分音符の等間隔なビート情報を得ることができる。
【０１２６】
すなわち、上記図１の自動ビート抽出部４の具体例として説明したビート抽出部１１によれば、ビート位置情報といったタイムスタンプ情報を持たないＰＣＭ等の音声波形（サンプリング音源）であっても、他のメディアと音楽的に同調させることができる。また、ビート位置情報といったタイムスタンプ情報のデータサイズは、数Ｋbyteから数十Ｋbyteであり音声波形のデータサイズの数千分の１と非常に小さいことから、メモリ量や処理工程を削減することができるため、ユーザは、非常に容易に取り扱うことができる。また、テンポが変更する音楽やリズムに揺れがある音楽に対して、１曲全体にわたって正確にビートを抽出することができ、さらには、音楽と他のメディアの同調させることにより、新たなエンターテインメントを創造することが可能となる。
【０１２７】
このようなビート抽出部１１により抽出したビート情報を、上記図１の手動オーサリング部４に送って、前述したようなより精度の高いビート位置や小節頭位置のメタデータを得ることができる。
【０１２８】
ところで、上記図１の手動オーサリング部４は、上記図１４に示したようなハードウェア構成を用いて、前述した手動オーサリングの各機能をソフトウェア的に実現することができる。
【０１２９】
すなわち図２２は、上記図１に示したビート抽出システムの手動オーサリング部４のソフトウェアモジュールの概略構成例を示す機能ブロック図である。
【０１３０】
この図２２において、オペレーティングシステム２００は、上記図１４の操作入力部１１０として用いられる例えばキーボード１１０Ａやマウス１１０Ｂ、ディスプレイ１１２、スピーカ１１２、スピーカ１１７Ｃ及び記憶装置２０１に対してデータ入出力を行う。記憶装置２０１は、上記楽音データを含む音響データ２０２やメタデータ２０３を記憶するものであり、例えば図１４のＨＤＤ１２１等が用いられる。
【０１３１】
このオペレーティングシステム２００上で実現されるソフトウェアモジュールとして、ユーザ入力処理部２０５、メタデータ管理部２０６、表示管理部２０７、ビート自動検出部２０８、ファイル入出力部２０９、音響データ管理部２１０、音響再生部２１１が挙げられる。
【０１３２】
ユーザ入力処理部２０５は、例えばマウス１１０Ｂ、キーボード１１０Ａ等の入力装置を通して送られてくるユーザの入力操作を判別し、その操作に対応するモジュールに対し処理指令を出す。例えば、ユーザがマウス１１０Ｂを使用して後述する区間マーク入力操作を選ぶと、ユーザ入力処理部２０５はユーザ入力処理部自身を区間マーク入力状態にし、さらに表示管理部２０７に対し区間マーク入力状態に入ったことを知らせる。
【０１３３】
その後ユーザが入力可能な範囲内においてマウス１１０Ｂのクリックを行うと、ユーザ入力処理部２０５はクリックされた座標を音響データの時間軸上の位置に変換し、メタデータ管理部に対してその時間軸上の位置に対して区間マークを打つよう指示を行う。
【０１３４】
メタデータ管理部２０６は、内部に区間管理部２２１とメタデータ実体２２２を包含する。メタデータ実体２２２は、例えば図２３（Ａ）に示される構造を１単位としたデータ列が、図２３（Ｂ）に示すようにリストとして管理されている。この図２３（Ａ）のデータ列には、例えば、小節番号と、ビート、メロディ、アクセントなどのメタデータ種類と、サンプル位置が含まれる。メタデータ実体は時間順に並んで管理される。リスト構造で管理しているため、編集操作などで間に入るデータが新たにできた場合にもリスト構造の参照先、参照元ポインタを変化させるだけで済むようになっている。
【０１３５】
区間管理部２２１は区間を管理しており、図２４に示される構造を１単位として保持している。この図２４の例には、開始サンプル、終了サンプル、区間ＢＰＭ、区間拍子、区間小節数、区間小節長が挙げられている。
【０１３６】
例えばメタデータ管理部２０６は、ユーザ入力処理部２０５から通知された区間情報をもとに区間を形成し、同処理部２０５から通知された小節の位置をもとに、上記図９と共に説明した処理に従ってビート位置を決定していく。このとき、これらのビート位置算出は区間毎に個別に行われる。
【０１３７】
メタデータ管理部２０６は、この他に、メタデータ実体２２２や区間データの消去、移動、挿入、検索などの処理を行う。
【０１３８】
表示管理部２０７は、音響データ表示部２２５及びメタデータ表示部２２６を有し、現在画面に表示されている時間軸の範囲を算出し、その範囲に含まれるメタデータをメタデータ管理部２０６を使用して検索する。そして、取得したメタデータの種類に応じて対応する色やアイコンなどとしてディスプレイ１１２の画面に描画を行う。
【０１３９】
表示管理部２０７は、この他に、音響データの波形表示、統計データ表示、小節番号や現在編集中のサンプル位置の数値表示なども行う。
【０１４０】
ビート自動検出部２０８は、上記図１の自動ビート抽出部３や上記図１４のビート抽出部１１に略々対応するものであり、音楽データから自動で音楽のビートを抽出し、メタデータ管理部２０６に対して自動抽出ビート位置を通知する。ビート自動抽出のアルゴリズムは、メタデータ管理部２０６に通知すべき情報を満たしていれば何を使用してもかまわない。
【０１４１】
ファイル入出力部２０９は、指定した音響データを開き、指定されたポジションから指定されたサンプル数だけデータを読み込んで呼び出し元に返す役割を担う。また、メタデータ実体を記憶装置２０１等の二次記憶上のファイルに出力したり、二次記憶上のメタデータファイルからメタデータ実体２２２に読み込むことを行う。
【０１４２】
音響データ管理部２１０は、また、ファイル入出力部２０９を通して読込んだ音響データを保持し、音響再生部及び表示管理部に渡す。また、音響データに付随する各種情報（量子化ビット数、サンプリングレート、チャンネル数など）も調査し保持する。
【０１４３】
音響データ再生部２１１は、音響データを指定された位置から再生を行い、スピーカ１１７Ｃなどの実際の音響出力装置に出力する。
【０１４４】
以上説明したような本発明の実施の形態によれば、楽曲の正確なビート位置が必要なアプリケーションのための時間軸上のメタデータを簡単かつ正確に付与することが可能となった。また、そのビート位置を元に、正確なメロディやコード進行、歌詞などの情報も付与することが可能となる。これにより、正確なメタデータがないと実現が困難であった音楽リミックスアプリケーションや、ビートに同期して正確なタイミングで制御が必要なデバイスやソフトウェアを制作することが可能となる。
【０１４５】
なお、本発明は上述した実施の形態のみに限定されるものではなく、例えば、本発明に係るビート抽出装置は、上述したパーソナルコンピュータや携帯型の音楽再生機にのみ適用されるものではなく、如何なる態様の装置や電子機器にも適用することが可能である。この他、本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
【図面の簡単な説明】
【０１４６】
【図１】本発明の実施の形態となるビート抽出システムの構成例を概略的に示すブロック図である。
【図２】ライブ録音された楽曲における拍数に対する瞬時ＢＰＭを示すグラフである。
【図３】ビート抽出システムの手動オーサリング部の処理を実現するためのグラフィカルな操作入力画面の一例を示す図である。
【図４】波形表示部に表示されるビート表示形態の例を示す図である。
【図５】ビート抽出領域及びビート編集領域に表示されるビート情報のみを取り出して示す図である。
【図６】小節の頭を指定する指定点Ｚ１，Ｚ２を示す図である。
【図７】指定点Ｚ１，Ｚ２の間の小節数を入力して小節の長さ及びビート間隔を求めることを説明するための図である。
【図８】指定点と振動における固定端との関係を説明するための図である。
【図９−１】指定点Ｚ１，Ｚ２の間に小節及びビートの位置情報を付与していく処理の動作を説明するためのフローチャートの前半部分である。
【図９−２】指定点Ｚ１，Ｚ２の間に小節及びビートの位置情報を付与していく処理の動作を説明するためのフローチャートの後半部分である。
【図１０】指定点Ｚ１，Ｚ２の間にビート及び小節の頭が打たれる様子を示す図である。
【図１１】表示部に表示される各ビートの瞬時ＢＰＭの誤差、同累積誤差、位相ずれ量を示すグラフである。
【図１２】３個以上の指定点を入力した状態を示す図である。
【図１３】時間軸上のメタデータとして楽曲のメロディ構造を入力した状態を示す図である。
【図１４】本発明に係るビート抽出装置の一実施形態を含む音楽再生装置の内部構成を示す機能ブロック図である。
【図１５】ビート抽出部の内部構成を示す機能ブロック図である。
【図１６】（Ａ）は、デジタルオーディオ信号の時間波形の一例を示す図であり、（Ｂ）は、このデジタルオーディオ信号のスペクトログラムを示す図である。
【図１７】ビート抽出処理部の内部構成を示す機能ブロック図である。
【図１８】（Ａ）は、デジタルオーディオ信号の時間波形の一例を示す図であり、（Ｂ）は、このデジタルオーディオ信号のスペクトログラムを示す図であり、（Ｃ）は、このデジタルオーディオ信号のビート抽出波形を示す図である。
【図１９】（Ａ）は、ビート抽出処理部により抽出されたビート位置情報のビート間隔を示す図であり、（Ｂ）は、ビート整列処理部により整列処理されたビート位置情報のビート間隔を示す図である。
【図２０】特定ビートがインビートか否かを判断するためのウィンドウ幅を示す図である。
【図２１】ビート位置情報のビート間隔を示す図である。
【図２２】ビート抽出システムの手動オーサリング部のソフトウェアモジュールの概略構成例を示す機能ブロック図である。
【図２３】メタデータ実体の担体の構造及びリストの例を示す図である。
【図２４】区間管理部で区間を管理するための単位構造の一例を示す図である。
【符号の説明】
【０１４７】
２  ビート抽出装置、  ３  自動ビート抽出部、  ４  手動オーサリング部、  １１  ビート抽出部、  １２  ビート抽出処理部、  １３  ビート整列処理部、  １００  システムバス、  １０１  ＣＰＵ、  １０２  ＲＯＭ、  １０３  ＲＡＭ、  ２００  オペレーティングシステム、  ２０５  ユーザ入力処理部、  ２０６  メタデータ管理部、  ２０７  表示管理部
【図１】
0004487958.tif 000002
【図２】
0004487958.tif 000003
【図３】
0004487958.tif 000004
【図４】
0004487958.tif 000005
【図５】
0004487958.tif 000006
【図６】
0004487958.tif 000007
【図７】
0004487958.tif 000008
【図８】
0004487958.tif 000009
【図９−１】
0004487958.tif 000010
【図９−２】
0004487958.tif 000011
【図１０】
0004487958.tif 000012
【図１１】
0004487958.tif 000013
【図１２】
0004487958.tif 000014
【図１３】
0004487958.tif 000015
【図１４】
0004487958.tif 000016
【図１５】
0004487958.tif 000017
【図１６】
0004487958.tif 000018
【図１７】
0004487958.tif 000019
【図１８】
0004487958.tif 000020
【図１９】
0004487958.tif 000021
【図２０】
0004487958.tif 000022
【図２１】
0004487958.tif 000023
【図２２】
0004487958.tif 000024
【図２３】
0004487958.tif 000025
【図２４】
0004487958.tif 000026