JP3674950B2 - 音楽データのテンポ推定方法および装置 - Google Patents

音楽データのテンポ推定方法および装置 Download PDF

Info

Publication number
JP3674950B2
JP3674950B2 JP2002061503A JP2002061503A JP3674950B2 JP 3674950 B2 JP3674950 B2 JP 3674950B2 JP 2002061503 A JP2002061503 A JP 2002061503A JP 2002061503 A JP2002061503 A JP 2002061503A JP 3674950 B2 JP3674950 B2 JP 3674950B2
Authority
JP
Japan
Prior art keywords
tempo
music data
value
estimated
list
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2002061503A
Other languages
English (en)
Other versions
JP2003263162A (ja
Inventor
崇 野口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2002061503A priority Critical patent/JP3674950B2/ja
Publication of JP2003263162A publication Critical patent/JP2003263162A/ja
Application granted granted Critical
Publication of JP3674950B2 publication Critical patent/JP3674950B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、音楽データのテンポ推定方法に関し、特に曲の途中でテンポが変化するような音楽データであっても正確にテンポを推定できる方法および装置に関する。
【0002】
【従来の技術】
従来より、ビート感のあるフレーズのオーディオデータを、テンポを一定とみなしてビート検出(およびテンポ推定)する技術が存在する。例えば、特開昭62−205397号、特開昭63−8697号、特開昭63−70293号、特開昭63−70294号、特開平5−27751号、特開平7−64544号、特開2000−221979号などには、音響信号からテンポを抽出する装置が記載されている。
【0003】
【発明が解決しようとする課題】
上記の従来技術は、何れもテンポが一定のフレーズからビート検出しテンポを推定するものである。したがって、曲の途中でテンポが変化するような音楽データのテンポ推定には適用することができない。無理に適用しても、テンポが変化する位置を正確に認識できず、結果としてテンポを正確に推定できないという問題があった。
【0004】
この発明は、上記従来技術における問題点に鑑み、テンポが途中で変化するような音楽データを処理対象とする場合であってもテンポを正確に推定することを可能にする音楽データのテンポ推定方法および装置を提供することを目的とする。
【0005】
【課題を解決するための手段】
この目的を達成するため、請求項1に係る発明は、音楽データのテンポ推定方法において、推定対象の音楽データを入力するステップと、入力した音楽データに対して、前後の推定範囲で一部重複し、その位置が互いに異なるような、複数の異なる前記推定範囲を設定するステップと、前記推定範囲ごとに前記音楽データを分析してテンポを推定し、その推定範囲ごとに、テンポ値と推定の信頼度を示すスコア値とを得るステップと、前記複数の推定範囲の各テンポ値を前記各スコア値に基づいて該スコア値の高いテンポ値を優先させて統合し、前記音楽データの時間的に変動するテンポ値を得るステップとを備えることを特徴とする。
【0006】
請求項2に係る発明は、請求項1に記載の音楽データのテンポ推定方法において、前記推定範囲は、互いに幅が異なる複数の推定範囲であることを特徴とする。
【0009】
請求項に係る発明は、請求項1または2の何れか1つに記載の音楽データのテンポ推定方法において、前記複数の推定範囲の各テンポ値の統合は、前記音楽データから抽出された拍位置を基準に統合を行なうものであることを特徴とする。
【0010】
請求項に係る発明は、音楽データのテンポ推定方法において、推定対象の音楽データを入力するステップと、一部重複した前記音楽データ上の2つの推定範囲について、それぞれ、その推定範囲の音楽データを分析してテンポを推定し、その推定範囲ごとに、テンポ値と推定の信頼度を示すスコア値とを得るステップと、前記重複部分に関して、前記2つの推定範囲が重ならないように、前記2つの推定範囲のうちのスコア値の小さい方の推定範囲を修正するステップと、修正された前記2つの推定範囲の各テンポ値を統合して、前記音楽データの時間的に変動するテンポ値を得るステップとを備えることを特徴とする。
【0011】
請求項に係る発明は、音楽データのテンポ推定方法において、推定対象の音楽データを入力するステップと、連続的に接合しようとする2つの推定範囲について、それぞれ、その推定範囲の音楽データを分析してテンポを推定し、その推定範囲ごとに、ビート位置とテンポ値と推定の信頼度を示すスコア値とを得るステップと、前記重複部分に関して、前記2つの推定範囲が重ならないように、前記2つの推定範囲のうちのスコア値の小さい方の推定範囲を修正するステップと、前記2つの推定範囲のビート位置が接合部で互いにずれないように、前記2つの推定範囲のうちの前方の推定範囲のテンポ値を修正するステップと、修正された前記2つの推定範囲のテンポ値を統合して、前記音楽データの時間的に変動するテンポ値を得るステップとを備えることを特徴とする。
【0012】
請求項に係る発明は、音楽データのテンポ推定方法において、推定対象の音楽データを入力するステップと、前記音楽データの時間軸上の複数の範囲について、それぞれ、その推定範囲の音楽データを分析してテンポを推定し、その推定範囲ごとに、テンポ値と推定の信頼度を示すスコア値とを得るステップと、前記複数の範囲のうち、隣合う範囲間の距離が所定幅以下で、かつ、それらの各範囲で推定されたテンポ値の差が所定値以下であるような複数の範囲をグループ化し、各グループの期待テンポを決定するステップと、前記各グループの存在する範囲について、その範囲の音楽データを分析してテンポを推定しテンポ値と推定の信頼度を示すスコア値とを得るステップと、前記各グループで得られたテンポ値と前記各グループの期待テンポとを比較し、その差が所定値以下の場合は、当該グループに属する複数範囲を統合し、統合された推定範囲のテンポ値及びスコア値を当該グループで得られたテンポ値及びスコア値とするステップと、前記複数の推定範囲及び統合された推定範囲の各テンポ値を前記各スコア値に基づいて該スコア値の高いテンポ値を優先させて統合し、前記音楽データの時間的に変動するテンポ値を得るステップとを備えることを特徴とする。
【0013】
請求項に係る発明は、音楽データのテンポ推定方法において、推定対象の音楽データを入力するステップと、前記音楽データ上の異なる位置に第1の幅を有する第1フレームを複数設定し、各位置の第1フレームごとにテンポを推定し、テンポ値と推定の信頼度を示すスコア値とを得るステップと、前記音楽データ上の異なる位置に前記第1の幅より小さい第2の幅を有する第2フレームを複数設定し、各位置の第2フレームごとにテンポを推定し、テンポ値と推定の信頼度を示すスコア値とを得るステップと、前記複数の第1フレーム及び第2フレームで得られたスコア値に基づいて、前記複数の第1フレームで得られたテンポ値と、前記複数の第2フレームで得られたテンポ値を統合して、前記音楽データの変動するテンポ値を得るステップとを備えることを特徴とする。
【0014】
請求項に係る発明は、音楽データのテンポ推定方法において、推定対象の音楽データを入力するステップと、前記音楽データを所定の区間に分け、各区間ごとにテンポ値の期待範囲を設定するステップと、入力した音楽データに対して、前後の推定範囲で一部重複し、その位置が互いに異なるような、複数の異なる前記推定範囲を設定するステップと、前記推定範囲ごとに前記音楽データを分析してテンポを推定し、その推定範囲ごとに、テンポ値と推定の信頼度を示すスコア値とを得るステップと、前記各区間について、前記推定されたテンポ値が前記期待範囲に入る前記推定範囲を残し、期待範囲に入らない前記推定範囲除外するステップと、前記複数の推定範囲のうちの除外されていない推定範囲の各テンポ値を前記各スコア値に基づいて該スコア値の高いテンポ値を優先させて統合し、前記音楽データの時間的に変動するテンポ値を得るステップとを備えることを特徴とする。
【0015】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態について説明する。
【0016】
図1は、この発明の実施の形態に係る波形テンポ推定システムの全体構成を示す。このシステムは、中央処理装置(CPU)101、リードオンリメモリ(ROM)102、ランダムアクセスメモリ(RAM)103、ドライブ装置104、MIDIインターフェース106、パネルスイッチ107、パネル表示器108、書込回路111、アクセス管理部112、波形メモリ113、音源114、サウンドシステム115、およびバスライン120を備える。
【0017】
CPU101は、このシステムの全体の動作を制御する処理装置である。ROM102は、CPU101が実行する各種の制御プログラムおよび定数データなどを格納した不揮発性メモリである。RAM103は、CPU101が実行するプログラムのロード領域やワーク領域に使用する揮発性メモリである。ドライブ装置104は、CD−ROMあるいはハードディスク(HD)などの外部記憶装置105を接続する装置である。MIDIインターフェース106は、外部のMIDI機器と接続するためのインターフェースである。パネルスイッチ107は、このシステムの外部パネル上に設けられた各種の操作子である。パネル表示器108は、このシステムの外部パネル上に設けられた各種の情報を表示するためのディスプレイである。
【0018】
書込回路111は、外部から入力した波形データを波形メモリ113に書き込む処理を行なう回路である。アクセス管理部112は、書込回路111、CPU101、および音源114からの波形メモリ113に対するアクセス要求を調停する制御を行なう。波形メモリ113は、外部から入力した波形データを記憶する記憶装置である。音源114は、CPU101の指示に応じて波形メモリ113にアクセスし所定の波形データを読み出して楽音信号を生成する。サウンドシステム115は、音源114から出力される楽音信号に基づいて放音する。
【0019】
図1のシステムは、鍵盤などを備えた電子楽器として構成してもよいし、汎用のパーソナルコンピュータに音源ボードなどを接続して構成することもできる。
【0020】
図2は、図1のシステムにおける楽音波形データのテンポを推定する操作の手順の概要を示す。ステップ201で、テンポを推定する対象であるオーディオデータ(波形データ)を用意する。オーディオデータは、ユーザが録音スイッチなどを操作して指示を与えることにより外部から入力(録音)した波形データや、外部記憶装置105に記憶されている波形データから選択してもよい。処理対象のオーディオデータは、RAM103上のワーク領域に格納して処理するが、波形メモリ113上のデータを直接処理するようにしてもよい。ステップ202で、操作子の操作により、推定されるテンポの上限値と下限値を入力する。ユーザは、処理対象のオーディオデータについて大体この程度であろうというテンポの範囲を認識していることが少なくないのでその範囲を入力させる。処理対象のオーディオデータ全体に対して1つのテンポ値の範囲を指定してもよいし、区間分けして、区間ごとにテンポ値範囲を指定してもよい。ステップ203では、テンポ推定ボタンを操作してテンポ推定処理の開始を指示する。テンポ推定処理については、後で詳細に説明する。ステップ204で、テンポ推定の結果がパネル表示器108に表示されるので、それを確認して、テンポ推定の結果を保存する操作などを行なって、テンポ推定結果を受け取る。
【0021】
次に、ステップ203で実行されるテンポ推定処理について詳細に説明する。
【0022】
図3は、テンポ推定処理の手順およびデータの流れを示す図である。テンポ推定処理は、[分析1]→[統合1]→[分析2]→[統合2]→[分析3]→[統合3]の順に処理を行なうことにより実行される。
【0023】
各処理の概要を説明する。[分析1]では、入力オーディオデータ全体にわたりフレーム(入力オーディオデータ中でその時間軸に沿って処理対象のデータを切り出すための枠)をデータの最初から最後まで移動させながら、各フレーム内のデータにビート位置検出処理を適用する。ビート位置検出処理により、そのフレーム内のビート位置が検出できる。これらのビート位置検出の結果を単純に寄せ集めたものが分析結果1である。[統合1]では、分析結果1の各区間の分析結果を統合して、入力オーディオデータ全体のテンポ情報としてまとめる。分析がうまくいかない区間もあるので、再度細かく分析を行なった方がよいと判断される区間を集めて、区間リスト1として[分析2]に渡す。後の統合過程で利用するデータは中間結果1として[統合2]に渡す。
【0024】
[分析2]では、区間リスト1に含まれている区間一つ一つに対し、フレームを移動させながら各フレーム内のデータにビート位置検出処理を適用する。[分析1]と比べて、フレームの幅と移動ステップを小さくする。これらのビート位置検出の結果を単純に寄せ集めたものが分析結果2である。[統合2]では、中間結果1と分析結果2の各区間の分析結果を統合して入力オーディオデータ全体のテンポ情報としてまとめる。同じ結果なのに分析区間が細切れになったり、真ん中の非常に短い区間だけ左右とは異なる結果になったりする分析区間もあるので、分析区間を広くした方がよいと判断される区間を集めて区間リスト2として[分析3]に渡す。後の統合過程で利用するデータは中間結果2として[統合3]に渡す。
【0025】
[分析3]では、区間リスト2に含まれている区間一つ一つに対し、フレームでデータを切り出したりせずに直接ビート位置検出処理を施す。これらのビート位置検出の結果を単純に寄せ集めたものが分析結果3である。[統合3]では、中間結果2と分析結果3の各区間の分析結果を比較・統合して入力オーディオデータ全体のテンポ情報としてまとめる。その結果が最終結果である。これが本実施の形態のシステムの最終的な出力になる。この出力は、具体的には図17(d)にその構成単位を示すテンポリストという形式で得られるものである。このデータについては、後に詳述する。
【0026】
次に、各処理について詳しく説明する。
【0027】
まず、ビート位置検出処理について説明する。ビート位置検出処理は、[分析1]、[分析2]、および[分析3]の中で、設定された分析範囲(フレーム)に対して行なう処理である。ビート位置検出処理により、その分析範囲中のビート位置が検出できる。
【0028】
図4は、ビート位置検出処理の手順の一例を示す。ステップ401で、フレーム中のオーディオデータをフィルタ処理し、必要な帯域(ビートを検出するのに有効な周波数帯域成分)を抽出する。ステップ402で、抽出した帯域のオーディオデータから音量エンベロープを抽出する。ステップ403で、その音量エンベロープを微分処理する。ステップ404で、微分された音量エンベロープが所定の閾値BT1より大きくなる位置とそのピーク値を検出する。ステップ405では、ステップ404で検出された位置とピーク値を列挙したリストBPLを作成する。
【0029】
図17(a)は、上記ビート位置検出処理で得たリストBPLを示す図である。なお、ここではプログラミング言語Cの構造体の宣言文の書き方に準じた表記法で各種のデータを表すものとする。例えば、図17(a)において、{ビート位置BP1、ピーク値PV1}は、ビート位置BP1のデータとピーク値PV1のデータとの組データを示す。これは「ビート位置BP1」で示す位置に「ピーク値PV1」で示すピーク値のピークがあることを示している。リストBPLは、このようなビート位置BPとその位置におけるピーク値PVとの組データの並びである。並びの順序は、入力オーディオデータの時間軸に沿う方向(すなわちビート位置の昇順)とする。
【0030】
次に、[分析1]、[統合1]、[分析2]、[統合2]、[分析3]、および[統合3]の各処理について、それぞれ詳しく説明する。
【0031】
[分析1]について説明する。図5は、[分析1]で行なうビート検出処理の手順を示す。
【0032】
ステップ501で、処理対象の入力オーディオデータの最初の分析範囲であるフレームを準備する。次に、ステップ502で、そのフレーム内のオーディオデータに対して図4で説明したビート位置検出処理を行ない、ビート位置リストUBPLを作成する。ビート位置リストUBPLのデータフォーマットは、図17(a)のリストBPLと同じである。ステップ503で、各ビート間の時間間隔を算出し、その時間間隔をグループ分けして各グループの投票を行なう。これは、ビート間の時間間隔をその値に応じてグループ分けし、どの程度の時間間隔が何回出現しているかを数える処理である。ステップ504で、投票結果のピーク位置およびピーク間隔に基づいて、当該フレームのテンポ値UTVを決定する。
【0033】
次に、ステップ505で、投票結果のピークのレベルおよびピーク間隔の分散を求め、そのレベルおよび分散からスコア値USVを算出する。スコア値は、推定の信頼度の信頼度の指標、すなわちビート検出の成功/失敗の度合いを示す指標となる値であり、投票結果のピークのレベルが大きければ(このとき、そのピーク位置でビートが刻まれたことはより確実と認められるので)スコア値は大きくなり、ピーク間隔の分散が大きければ(このとき、ピーク間の時間間隔がばらばらであると認められるので)スコア値は小さくなる。
【0034】
ステップ506では、次の分析範囲であるフレームを準備する。これは、現フレームから所定量だけフレームを進める処理である。ステップ507で、次のフレームが準備できたかを判別し、準備できないとき(すなわち、処理対象の入力オーディオデータの最後まで分析が終了したとき)、処理を終了する。次のフレームがある場合は、ステップ502に戻って、次のフレームを現フレームとしてビート検出処理を続ける。
【0035】
図17(b)は、1つのフレームに対してステップ502〜505の処理を行なった結果、得られるデータのフォーマットを示す。開始点USPと終了点UEPは、このフレームの位置を示す。すなわち、入力オーディオデータ中の開始点USPから終了点UEPまでを分析した結果、以下のデータが得られたことを示している。ビート位置のリストUBPLは、ステップ502で作成したリストであり、当該フレーム内のビート位置とその位置のピーク値とを並べたデータ(図17(a)のフォーマット)である。スコア値USVは、ステップ505で算出したスコア値である。テンポ値UTVは、ステップ505で算出したテンポ値である。なお、ビート位置については、図4の分析時には分析開始点であるフレーム先頭からの相対位置(オフセット)で表現されているが、図17(b)のリストUBPLでは入力オーディオデータ全体における絶対位置に変換しておくものとする。
【0036】
図6は、フレームを進めながら図5の[分析1]のビート検出処理を行なう様子を示す。width1はフレームの幅で、hop1はあるフレームから次のフレームに進めるときの移動の距離である。図では、4〜5個程度のビートが1フレームに含まれるように描いているが、実際には、フレームの幅width1はビートが10〜20個以上検出されるような値とするのが好ましい。例えば、テンポ120[bpm]のフレーズ4小節分の長さ(8[sec]相当)程度をwidth1、その半分の長さをhop1などとしておけばよい。なお、[bpm]は、1分間に4分音符が何個刻まれるかで表現したテンポの単位である。
【0037】
入力オーディオデータ601に対し、まず点線で示すフレーム602を設定し、この範囲でステップ502〜505の処理を行ない、図17(b)に示すフォーマットの単位データUDを得る。次に、このフレームをhop1に示す量だけ進めて実線で示す次のフレーム603を設定する。このフレーム603についても同様にステップ502〜505の処理を行ない、図17(b)に示すフォーマットの単位データUDを得る。これを繰り返して、入力オーディオデータの全体に対して、フレーム単位で図17(b)に示す単位データUDを得る。得られたデータ(分析結果AR1(AR: Analysis Result)と呼ぶ)が、図3の分析結果1に相当するデータである。
【0038】
次に、[統合1]について説明する。[統合1]では、[分析1]で得た分析結果AR1の各分析結果(すなわちビート検出結果の単位UD)の統合と、次の[分析2]のための準備を行なう。この統合方法の特徴は、簡単にいえば、▲1▼スコア値が高いほどその分析結果を採用する区間を長くする点(2つのデータUDの範囲が重なっている範囲について、スコア値の高いデータUDを優先させる)、▲2▼分析結果の統合位置をビート位置のいずれかに一致させる点(各データUDの開始点と終了点は、必ずビート位置と一致するように調整される)にある。
【0039】
図7は、[統合1]で行なわれる統合処理の手順を示すフローチャートである。
【0040】
ステップ701で、分析結果AR1から条件に合わないデータUDを除去する。これにより、分析結果AR1から、スコア値USVがある閾値UT1以下であるか、あるいはテンポが設定範囲外であるような分析結果単位UDを排除し、次のステップ以降の処理対象から外す。テンポの設定範囲とは、図2のステップ202でユーザが入力したテンポの範囲である。ステップ702では、各分析結果単位UDの開始点USPと終了点UEPをビート位置に補正する。この補正処理は、各データUDの開始点USPと終了点UEPがビート位置に一致するように調整する処理である。具体的には、ステップ701で除去した後に残ったすべての分析結果単位UDについて、それぞれ、図17(c)に示す端点補正済み検出結果の単位HUDに変換する。
【0041】
図17(c)の端点補正済み検出結果の単位HUDは、図17(b)のビート検出結果の単位UDをコピーして作成するが、開始点と終了点は、第一ビート位置と最終ビート位置に変換する。第一ビート位置USPは、図17(b)のビート検出結果の単位UDのビート位置リストUBPLから最初の要素(最初のビート位置)を取り出して設定する。最終ビート位置は、図17(b)のビート検出結果の単位UDのビート位置リストUBPLから最後の要素(最後のビート位置)を取り出して設定する。ビート位置リストUBPL自体は変更せずにそのままコピーすればよい。これにより、図17(c)の単位データHUDでは、分析区間の区切りをビートの位置に合わせたデータが得られる。スコア値USVおよびテンポ値UTVもそのままコピーすればよい。
【0042】
次にステップ703で、得られたすべての端点補正済み検出結果の単位HUDを、スコア値USVの昇順(スコア値の小さいものから大きいものの順)にソートする。ステップ704では、テンポリストTL1を作成する。テンポリストの作成は、スコア値の小さいものから順に、端点補正済み検出結果の単位HUD(図17(c))の内容をテンポリストTLに上書コピーしてゆく処理である。これにより、スコア値の高いデータほど後に上書きされ、より優先的にテンポ推定結果に反映されることになる。
【0043】
図8に、[統合1]内のステップ704で行なわれるテンポリスト作成処理の手順を示す。まずステップ801で、新規のテンポリストTLを作成する。テンポリストTLは、テンポリスト構成単位TUDの並びからなる。
【0044】
図17(d)に、テンポリスト構成単位TUDのフォーマットを示す。左端TUSPと右端TUEPは、入力オーディオデータ中の位置を示す。ビート位置のリストTUBPLは、左端TUSPから右端TUEPまでの範囲中のビート検出結果のリスト(図17(a)のフォーマット)である。テンポ値TUTVは、左端TUSPから右端TUEPまでの範囲で推定されたテンポ値である。ステップ801で作成するテンポリストTLは、その要素であるテンポリスト構成単位TUDが無い空のリストである。
【0045】
次に、ステップ802で、ソート済の端点補正済み検出結果の単位データHUD(図17(c))の一番最初のデータHUDから、テンポリスト構成単位のデータTUD(図17(d))を作成する。具体的には、第一ビート位置USPを左端TUSPに、最終ビート位置UEPを右端TUEPに、ビート位置リストUBPLをビート位置リストTUBPLに、テンポ値UTVをテンポ値TUTVに、それぞれコピーしてやればよい。スコア値USVの昇順にソートしてあるので、ソート済データUDの最初のデータは最もスコア値USVが小さいものである。ステップ802で作成したテンポリスト構成単位TUDが、最初のテンポリストTLへの追加(コピー)対象のデータである。
【0046】
ステップ803では、追加対象の当該テンポリスト構成単位TUDについて、以下の<case1>〜<case4>の何れに該当するのかを判別する。以下、各<case>がどのような場合であり、そのときにどう処理するかについて、詳しく説明する。
【0047】
<case1>は、コピー先のテンポリストTLの既存の構成単位TUDで覆う範囲(左端TUSPから右端TUEPまでの範囲)をすべて合わせた領域上で、いま追加しようとするステップ802で作成したテンポリスト構成単位TUDの左端TUSPから右端TUEPまでの範囲が、空である場合である。この図8のテンポリスト作成処理では、基本的に、ソート済データHUDを順に取り出して、そのソート済データHUDに基づくテンポリスト構成単位TUDをテンポリストTLに追加していく。テンポリスト構成単位TUDは、入力オーディオデータ中の左端TUSPから右端TUEPまでの範囲のテンポ値を規定するデータであるので、処理が進んでテンポリストTL内のテンポリスト構成単位TUDが増えるにつれて、オーディオデータ中でテンポが規定される範囲が増えていくことになる。<case1>は、新たに追加しようとするテンポリスト構成単位TUDが、その左端TUSPから右端TUEPまでの範囲について初めてテンポ値を規定するデータである場合、言い替えると、それまでにテンポリストTLに追加されたテンポリスト構成単位TUDの中には、これから追加しようとするテンポリスト構成単位TUDの左端TUSPから右端TUEPまでの範囲に重なるものが皆無である場合である。
【0048】
ステップ803で<case1>と判別された場合は、ステップ807を経て、ステップ808に進む。ステップ808では、追加対象のテンポリスト構成単位TUDをテンポリストTLに貼り付ける。この際、追加対象のテンポリスト構成単位TUDの左端TUSPが、その左隣のテンポリスト構成単位TUDの右端TUEPと一致するときは、左隣の構成単位TUDの右端TUEPの位置にあるビート(すなわちその範囲の最終ビート)を当該左隣の構成単位TUDのビート位置リストTUBPLから削除する。また、追加対象のテンポリスト構成単位TUDの右端TUEPが、その右隣のテンポリスト構成単位TUDの左端TUSPと一致するときは、追加対象の構成単位TUDの右端TUEPの位置にあるビートを当該追加対象の構成単位TUDのビート位置リストTUBPLから削除する。ステップ807は、このような左隣あるいは右隣の構成単位TUDと重なる場合の補正の処理(以下、端点処理という)を行なうものである。
【0049】
なお、ステップ808でテンポリスト構成単位TUDをテンポリストTLに貼り付ける際には、適切な位置に挿入する形で追加するものとする。テンポリストTLは複数のテンポリスト構成単位TUDの並びであるが、それらのテンポリスト構成単位TUDは、左端TUSPの値を第1キー、右端TUEPの値を第2キーとして、昇順にソートされている。そこで、新たに貼り付けるテンポリスト構成単位TUDは、このソートの順で適切な位置に挿入するものとする。
【0050】
次にステップ809では、ソート済の端点補正済み検出結果の次の単位データHUD(図17(c))を取り出し、その単位データHUDから、次の追加対象のテンポリスト構成単位TUD(図17(d))を作成する。ステップ810で、次の追加対象データTUDがあるかどうかを判別する。次の追加対象がある場合はステップ803に戻り、ない場合はテンポリスト作成処理を終了する。
【0051】
図9は、<case1>の場合のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す。横軸方向はオーディオデータの時間方向を示す(図10〜図13も同様である)。901と902は、それぞれ、テンポリストTL(ステップ808の貼り付け前の状態)内に既に貼り付けられているテンポリスト構成単位TUDを示す。その矩形の長さは、テンポリスト構成単位TUDの範囲、すなわちそのテンポリスト構成単位TUDの左端TUSPから右端TUEPの範囲を示す。いま、追加対象のテンポリスト構成単位TUDが、903に示す左端から右端の範囲を有するデータである場合、テンポリストTLのその範囲にはテンポリスト構成単位TUDが無いので、<case1>の場合となる。この場合は、コピー後として図示したように、そのまま追加対象のテンポリスト構成単位TUDをテンポリストに貼り付ければよい。ただし、追加対象のテンポリスト構成単位TUDの左端と右端についての端点処理(ステップ807の補正処理)を行なったデータを貼り付けるものとする。
【0052】
次に<case2>について説明する。<case2>は、追加対象のテンポリスト構成単位TUDの範囲が、テンポリストTL上の既存のテンポリスト構成単位TUDを完全に内包する場合である。すなわち、現時点のテンポリストTLの構成単位TUDの中に、いま追加しようとする追加対象のテンポリスト構成単位TUDの左端TUSPから右端TUEPまでの範囲に完全に内包される構成単位TUDが既に存在する場合である。
【0053】
ステップ803で<case2>と判別された場合は、ステップ804で、追加対象のテンポリスト構成単位TUDの貼り付け範囲に内包される既存のデータTUDを削除して、ステップ807に進む。ステップ807以降の処理は、<case1>で説明したとおりである。
【0054】
図10は、<case2>の場合のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す。1001,1002,1003は、それぞれ、テンポリストTL(ステップ808の貼り付け前の状態)内に既に貼り付けられているテンポリスト構成単位TUDを示す。いま、追加対象のテンポリスト構成単位TUDが、1004に示す左端から右端の範囲を有するデータである場合、テンポリストTLのその範囲には1002に示すテンポリスト構成単位が内包されているので、<case2>の場合となる。この場合は、コピー後として図示したように、1002のデータを削除し、追加対象のテンポリスト構成単位TUDを1004に示すようにテンポリストに貼り付ける。ただし、追加対象のテンポリスト構成単位TUDの左端と右端についての端点処理(ステップ807の補正処理)を行なったデータを貼り付けるものとする。
【0055】
次に<case3>について説明する。<case3>は、追加対象のテンポリスト構成単位TUDの範囲が、テンポリストTL上の既存のテンポリスト構成単位TUDの範囲と重なるが、完全に内包したり内包されたりする関係ではない場合である。すなわち、現時点のテンポリストTLの構成単位TUDの中に、いま追加しようとする追加対象のテンポリスト構成単位TUDの左端TUSPから右端TUEPまでの範囲と部分的に重なる構成単位TUDが既に存在する場合である。
【0056】
ステップ803で<case3>と判別された場合は、ステップ805で、既存の構成単位データTUDを、当該追加対象のテンポリスト構成単位TUDの貼り付け範囲を除くデータTUDに変換する。これは、部分的に重なった範囲についてはスコア値が高い後のデータを優先するため、既存のテンポリスト構成単位TUDからその重なった範囲を除くものである。ステップ805の後、ステップ807に進む。ステップ807以降の処理は、<case1>で説明したとおりである。
【0057】
図11(a)は、<case3>の場合のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す。特に、追加対象のテンポリスト構成単位TUDの範囲の左側と既存のテンポリスト構成単位TUDの範囲の右側とが重なる場合を示す。1101,1102,1103は、それぞれ、テンポリストTL(ステップ808の貼り付け前の状態)内に既に貼り付けられているテンポリスト構成単位TUDを示す。いま、追加対象のテンポリスト構成単位TUDが、1104に示す範囲のデータである場合、テンポリストTLのその範囲には1102に示すテンポリスト構成単位が存在し、部分的に重なっているので、<case3>の場合となる。この場合は、コピー後として図示したように、1102のデータを、重なる部分を削除する形で変換し、追加対象のテンポリスト構成単位TUDを1104に示すようにテンポリストに貼り付ける。追加対象のテンポリスト構成単位TUDについては、ステップ807の端点処理を行なって、貼り付けるものとする。
【0058】
図11(b)は、図11(a)に示したような場合に、既存のテンポリスト構成単位TUDから削除されるビートを示す図である。左端位置1111から右端位置1112は、図11(a)のテンポリスト構成単位1102の範囲を示す。すなわち、このテンポリスト構成単位1102の左端TUSPが位置1111で、右端TUEPが位置1112である。図11(a)に示すように、このテンポリスト構成単位1102の範囲と追加対象のテンポリスト構成単位1104の範囲とが重なると、テンポリスト構成単位1102の右端が修正される。図11(b)の1113は、修正後の右端の位置を示す。その右側のビートは、このテンポリスト構成単位1102からは削除されたことになる。
【0059】
図12(a)は、<case3>の場合の別のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す。特に、追加対象のテンポリスト構成単位TUDの範囲の右側と既存のテンポリスト構成単位TUDの範囲の左側とが重なる場合を示す。1201,1202,1203は、それぞれ、テンポリストTL(ステップ808の貼り付け前の状態)内に既に貼り付けられているテンポリスト構成単位TUDを示す。いま、追加対象のテンポリスト構成単位TUDが、1204に示す範囲のデータである場合、テンポリストTLのその範囲には1202に示すテンポリスト構成単位が存在し、部分的に重なっているので、<case3>の場合となる。この場合は、コピー後として図示したように、1202のデータを、重なる部分を削除する形で変換し、追加対象のテンポリスト構成単位TUDを1204に示すようにテンポリストに貼り付ける。追加対象のテンポリスト構成単位TUDについては、ステップ807の端点処理を行なって、貼り付けるものとする。
【0060】
図12(b)は、図12(a)に示したような場合に、既存のテンポリスト構成単位TUDから削除されるビートを示す図である。左端位置1211から右端位置1212は、図12(a)のテンポリスト構成単位1202の範囲を示す。すなわち、このテンポリスト構成単位1202の左端TUSPが位置1211で、右端TUEPが位置1212である。図12(a)に示すように、このテンポリスト構成単位1202の範囲と追加対象のテンポリスト構成単位1204の範囲とが重なると、テンポリスト構成単位1202の左端が修正される。図12(b)の1213は、修正後の左端の位置を示す。その左側のビートは、このテンポリスト構成単位1202からは削除されたことになる。
【0061】
次に<case4>について説明する。<case4>は、追加対象のテンポリスト構成単位TUDの範囲が、テンポリストTL上の既存のテンポリスト構成単位TUDの範囲に完全に内包される場合である。すなわち、現時点のテンポリストTLの構成単位TUDの中に、いま追加しようとする追加対象のテンポリスト構成単位TUDの左端TUSPから右端TUEPまでの範囲を完全に内包する構成単位TUDが既に存在する場合である。
【0062】
ステップ803で<case4>と判別された場合は、ステップ806で、既存の構成単位データTUDを、当該貼り付け範囲の前と後の2つのデータTUDに変換する。これは、重なった範囲についてはスコア値が高い後のデータを優先するため、既存のテンポリスト構成単位TUDからその重なった範囲を除き、前側のデータと後側のデータを残すものである。ステップ806の後、ステップ807に進む。ステップ807以降の処理は、<case1>で説明したとおりである。
【0063】
図13は、<case4>の場合のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す。1301,1302,1303は、それぞれ、テンポリストTL(ステップ808の貼り付け前の状態)内に既に貼り付けられているテンポリスト構成単位TUDを示す。いま、追加対象のテンポリスト構成単位TUDが、1304に示す範囲のデータである場合、その範囲を完全に内包する1302に示すテンポリスト構成単位が既に存在するので、<case4>の場合となる。この場合は、コピー後として図示したように、1302のデータを前側と後側に2分割し、その間に追加対象のテンポリスト構成単位TUDを1004に示すように貼り付ける。ただし、追加対象のテンポリスト構成単位TUDの左端と右端についての端点処理(ステップ807の補正処理)を行なったデータを貼り付けるものとする。
【0064】
なお、テンポリスト構成単位TUDはオーディオデータ中のある範囲のテンポ値を規定するが、そのテンポ値は、その範囲のデータを分析した結果求めた計算値であるので、逆にその範囲でそのテンポ値に応じた理想的な拍を刻むビートを考えたとき、その理想的なビート位置と実際に検出されたビート位置とは、ずれる可能性がある。したがって、上述の各ケースで2つのテンポリスト構成単位TUDを(空き領域なしに)接合する場合、その接合位置は実際のビート存在位置に合わせるので、その接合位置がテンポ値に応じた理想的なビート位置とはずれてしまう可能性がある。このテンポの崩れを防ぐためには、接合される2つのテンポリスト構成単位TUDの両方ないし一方においてテンポ値TUTVを適切に補正してやる必要がある。具体的には、2つのテンポリスト構成単位TUDのうち、前方のTUDのテンポ値TUTVを補正するのが簡単である。前方のテンポリスト構成単位TUDの開始点からテンポ値TUTVで理想的なビートを刻んでいき、その何番目かのビートが後方のテンポリスト構成単位TUDの開始点に一致するように、該テンポ値TUTVの値を増減する。すなわち、各単位TUDには、ビートが必ず整数個入るようにする。
【0065】
なお、この実施の形態では、図7の統合処理で図17(c)の単位データHUDからデータをコピーして図17(d)のテンポリスト構成単位データTUDを作成しているが、単位データHUDをそのままテンポリスト構成単位TUDとしてテンポリストTLに組み入れてしまってもよい。この場合は、上述の各ケースに応じた修正を単位データHUDに対して行なう。このようにすれば、[統合1]における修正結果がそのまま[統合2]に引き継がれるので、[統合2]における処理量は減る。ただし、検出結果1は失われる。
【0066】
再び図7に戻って、上述したようにステップ704のテンポリストTLの作成が終了したら、ステップ705で、次に分析を行なう区間のリストである区間リスト1を作成する。これは、ステップ704で作成したテンポリストTL1から、空の区間{左端,右端}だけを集めてリストを作る処理である。この空の区間は、[分析1]の処理で、スコア値が一定値以下で、テンポ値が取得できなかった区間である。これを次に分析を行なう区間のリストである区間リストSL1(SL: Section List)とする。
【0067】
図14に、区間リストSL1のデータ例を示す。図14(a)のテンポリストの中で網掛けで図示した範囲(例えば、位置p1〜p2の範囲、位置p3〜p4の範囲、位置p4〜p5の範囲、位置p6〜p7の範囲など)は、テンポリスト構成単位TUDが存在しその範囲のテンポ値が取得されている範囲を示す。その間の空白の範囲はテンポ値が取得されていない範囲であり、この範囲を区間リストSL1に登録する。図14(b)は、区間リストSL1のデータフォーマットを示す。区間リストSL1は、テンポ値が取得されていない範囲の開始位置と終了位置との組データをリストとして並べたデータである。
【0068】
再び図7に戻って、次にステップ706で、次回の統合処理のための準備を行なう。これは、ステップ702の出力結果、すなわち端点補正済み検出結果の単位HUD(図17(c))からデータをコピーして作成したリストである。このリストが中間結果IR1(IR: Interim Result)である。
【0069】
図18(a)は、中間結果IR1を構成する要素である単位データIR1UDのデータフォーマットを示す。図17(c)の単位データと図18(a)の単位データとでは、対応するデータ要素は同じ記号で表している。例えば、第1ビート位置USPと開始点USPなどである。
【0070】
以上で、[統合1]の処理を終える。[統合1]により、次に分析すべき範囲のリストである区間リストSL1(図14)と、分析で得られた結果を格納した端点補正済み検出結果の単位HUD(図17(c))をコピーした中間結果IR1(図18(a))のリストが得られる。また、入力オーディオデータ中でテンポ値が取得できた範囲のリストであるテンポリストTL(その要素は図17(d))が得られる。図3の「区間リスト1」が区間リストSL1であり、「中間結果1」が中間結果IR1である。
【0071】
次に、[分析2]について説明する。[分析2]では、[統合1]で得た区間リストSL1で指定された各区間に対し再度ビート検出処理を施す。ビート検出処理の手順は、図5で説明したのと同じである。ただし、[分析1]では入力オーディオデータの先頭から最後まで所定のフレームを少しずつずらしながら分析したが、[分析2]では区間リストSL1の各区間を対象とし、その第1の区間の先頭から最後まで所定のフレームを少しずつずらしながら分析し、次に第2の区間の先頭から最後まで所定のフレームを少しずつずらしながら分析し、…というように分析を進める。分析にかける各区間の幅は少し拡げておいても構わない。
【0072】
また、[分析2]で用いるフレームの幅width2やフレームの移動ステップhop2は、width2<width1,hop2<hop1であればどのような値でもよいが、通常はwidth2=width1/2,hop2=hop1/2としておけばよい。例えば、width2=1小節、hop2=1/4小節とする。また、ビート抽出の閾値BT2は、BT1と同じでも良い。[分析2]では、[分析1]のときより小さいフレームの幅width2および移動ステップhop2を用いるので、より厳密な分析が行なえる。
【0073】
[分析1]と同様、ビート検出結果の単位をリストにまとめたものが分析結果AR2である。図18(b)は、分析結果AR2の構成要素である単位データAR2UDのデータフォーマットを示す。この単位データAR2UDのデータ要素は、図17(b)の単位データUDのデータ要素と同じである。ただし、単位データAR2UDは、区間リストSL1の各区間を分析した結果を表すものである。図3の「分析結果2」が分析結果AR2である。
【0074】
次に、[統合2]について説明する。[統合2]では、各分析結果の統合と[分析3]のための準備を行なう。統合の方法は[統合1]で説明した図7と同じである。ただし、[分析3]のための準備は[統合1]と大きく異なる。
【0075】
図7のフローチャートに沿って[統合2]の処理手順を説明する。ステップ701では、ビート検出に失敗したデータを排除する。この処理は、[統合1]での同ステップの処理と同様に、分析結果AR2(図18(b))からスコア値USVがある閾値以下であるか、あるいはテンポ値UTVが設定範囲外であるような分析結果を排除する処理である。閾値UT2は、[統合1]で用いた値UT1と同じでもよいし異なる値でもよい。
【0076】
ステップ702で、分析結果の端点をビート位置に補正する。この処理も[統合1]での同じ処理と同様である。この結果、各分析結果は、図17(c)に示した端点補正済み検出結果の単位データHUDに変換される。ステップ703では、その結果をスコア値USVに基づいてソートする。その結果と中間結果1([統合1]で得られている結果であり、その構成単位は図18(a)に示した)をマージし、マージしたすべての構成単位データを、スコア値USVをキーとして昇順に整列する。ステップ704で、ソートされたデータに基づいてテンポリストTL2を作成する。この処理も[統合1]での同じ処理と同様である。テンポリストTL2のデータフォーマットは、図17(d)に示すのと同じである。。
【0077】
次にステップ705で、次に分析を行なう区間のリストである区間リストSL2を作成する。これは、[分析1]と[分析2]で細かく分析し過ぎた区間を探すため、テンポリストTL2から次の条件1および条件2を両方満たすテンポリスト構成単位TUDの一続きをすべて見つける処理である。一続きとは、テンポリスト構成単位UDの二つ以上の組であって、リストの要素という意味においてすべてが連続しているもののことをいう。領域という意味では構成単位の間に空きがあっても構わない。
【0078】
▲1▼条件1(空き領域の幅の条件):一続きに含まれるすべての(「リスト要素」という意味において)隣り合うテンポリスト構成単位TUD同士の間の幅が、ある閾値WT(WT: Width Threshold)以下の幅であること。隣り合うテンポリスト構成単位TUD同士の間の幅とは、第1のテンポリスト構成単位TUDの右端TUEPとその右隣の第2のテンポリスト構成単位TUDの左端TUSPからTUSP−TUEPで計算する。
【0079】
▲2▼条件2(テンポ一定の条件):一続きに含まれるテンポリスト構成単位TUDのテンポ値の最大値と最小値の差が、ある許容誤差ET(ET: Error Threshold)以下であること。許容誤差ETの値はテンポに応じて決めてもよい。例えば、テンポ60[bpm]辺りは許容誤差2[bpm]、テンポ180[bpm]辺りは許容誤差6[bpm]というようにしてもよい。
【0080】
これらの条件の根拠は、同じテンポと推定されて隣り合う区間は同じフレーズを構成する可能性が高いということ、および、同じテンポと推定された区間に挟まれた十分小さな区間はたまたまその区間だけ分析に失敗しただけで実はその区間も左右の区間と同じフレーズの一部である可能性があるということである。
【0081】
図15(a)は、ステップ705の処理で上記の条件1,2を満たす場合と満たさない場合の例を示す。u1,u2,u3,…はそれぞれテンポリスト構成単位UDに対応し、その矩形の長さはそのテンポリスト構成単位UDの範囲(左端TUSPから右端TUEPまでの範囲)を示す。矩形内の数字は、そのテンポリスト構成単位UDのテンポ値TUTVを示す。例えば、u1はこの範囲はテンポ120であることを示す。条件1の幅の閾値WTは1501に示す幅とし、条件2の許容誤差ETは2[bpm]とする。
【0082】
u1とu2は隣り合っているが、それらの間の幅が閾値WT1501より大きい。したがって、条件1を満たさないので、区間リストSL2には入れない。
【0083】
u3,u4,u5は、u3とu4との間の幅およびu4とu5との間の幅は何れも閾値WT1501以下であるので条件1を満たす。また、u3,u4,u5のテンポ値は102,100,101であり、その最大値と最小値の差は2となり許容誤差ET以下であるから、条件2を満たす。したがって、u3の左端からu5の右端の区間は、区間リストSL2に入れる。
【0084】
u6,u7は、それらの間の幅が閾値WT1501以下であるので条件1を満たす。しかし、テンポ値が100と80でその差が20となり許容誤差ETを超えているから条件2を満たさず、区間リストSL2には入れない。同様にして、テンポリスト構成単位TUDの一続きを見つけていく。ここでは、u10とu11が一続きの範囲と認められ、またu13とu14とu15が一続きの範囲と認められる。
【0085】
図15(b)は、図15(a)のような各構成要素を含むテンポリストに対してステップ705の処理を施して作成した区間リストSL2を示す。区間リストSL2のフォーマットは、図14で説明した区間リストSL1と同じである。
【0086】
再び図7に戻って、ステップ705で上述した区間リストSL2を作成したら、ステップ706で、次回の統合のための準備として中間結果2を作成する。まず、区間リストSL2の要素である各区間に「期待されるテンポの値」を付加して、チェック用区間リスト2を作成する。期待されるテンポの値とは、その区間のテンポ値として大体この程度の値が期待されるであろうという値である。これは、[分析3]で予想外の分析結果が得られた場合をチェックする目的で付加される。期待されるテンポの値としては、ステップ705の条件2における最大値と最小値の中間値や、同ステップ705で一続きと判断された複数のテンポリスト構成単位UDのテンポ値の平均値などに設定しておけばよい。
【0087】
図18(c)に、チェック用区間リスト2の構成単位データCSL2UDのフォーマットを示す。この単位データは、区間リストSL2の要素である各区間の左端および右端のデータに、その区間の期待されるテンポ値のデータを付加したものである。例えば、図15(b)に示す区間リストSL2の内容から作成したチェック用区間リスト2は、図18(d)に示すようなデータになる。
【0088】
このチェック用区間リストCSL2と、ステップ704の出力であるテンポリストTL2が、中間結果IR2である。中間結果IR2は、図3の中間結果2に相当する。
【0089】
次に、[分析3]について説明する。[分析3]では、[統合2]で得た区間リストSL2(チェック用区間リストCSL2を用いても同じ)で指定された各区間に対し再度ビート検出処理を施す。ビート検出処理の手順は、図5で説明したのと同じである。ただし、[分析1]や[分析2]とは異なり、フレームで切り出したりせず区間リストSL2で指定された各区間をそのまま分析にかける。区間リストSL2で指定された各区間は、上述の条件1および2を満たす一続きの区間であり、当該区間で1つのテンポ値が決定できる区間である。ここで、ビート抽出の閾値BT3は、BT1またはBT2と同じでも良い。[分析1]および[分析2]と同様、ビート検出結果の単位をリストにまとめたものが分析結果AR3である。分析結果AR3のデータフォーマットは、図18(b)で説明した分析結果AR2と同じである。以下、分析結果AR3の構成単位をAR3UDで表す。図3の「分析結果3」が分析結果AR3である。
【0090】
次に、[統合3]について説明する。[統合3]では、分析結果AR3と中間結果IR2を比較して、最終結果を得る。特に、分析結果AR3が期待通りのテンポを推定できている区間は、分析結果AR3のデータが最終結果に採用される。また、分析結果AR3が期待通りのテンポを推定できていない区間は、中間結果IR2のテンポリストTL2のデータが最終結果に採用される。
【0091】
図16は、[統合3]の処理手順を示すフローチャートである。
【0092】
ステップ1601で、分析結果AR3からビート検出に失敗した区間を排除する。これは、[統合1]および[統合2]のステップ701で説明したのと同様に、分析結果AR3からスコア値USVがある閾値UT3以下であるか、あるいはテンポが設定範囲外であるような分析結果を排除する処理である。閾値UT3は、上述の閾値UT1,UT2と異なる値でも構わない。
【0093】
次にステップ1602で、分析結果AR3から、期待通りのテンポが推定できていない区間を排除する。これは、ステップ1601でビート検出に失敗した区間を排除した分析結果AR3と中間結果IR2のチェック用区間リストCSL2とを、対応する区間ごとに比較し、分析結果AR3の構成単位のテンポ値UTVとチェック用区間リストCSL2の構成単位の期待されるテンポ値とが異なるような分析結果を排除する処理である。すなわち、ある区間の分析結果(ビート検出結果の構成単位)が
分析結果AR3の構成単位AR3UDの分析開始点USP=チェック用区間リストCSL2の構成単位CSL2UDの左端、かつ
分析結果AR3の構成単位AR3UDの分析終了点UEP=チェック用区間リストCSL2の構成単位CSL2UDの右端
であるようなチェック用区間リストCSL2構成単位に対して、当該分析結果AR3の構成単位AR3UDのテンポ値UTVとチェック用区間リストCSL2の構成単位CSL2UDの「期待されるテンポ値」との差の絶対値が、許容誤差TE(TE :Tolerance Error)の範囲内であるかどうかチェックし、その範囲内でないならば、その分析結果AR3の構成単位AR3UDを削除する。この許容誤差TEは、例えばステップ705の条件2の許容誤差の半分などにすればよい。
【0094】
次にステップ1603で、最終結果とするテンポリストFRを作成する。この処理は、図7のステップ704および図8で説明したのと同じである。ただし、[統合1]および[統合2]では新規のテンポリストTLを作成し該テンポリストTLに構成単位データTUDを上書きしていくが、ステップ1603で行なわれる図8の処理では、「新規のテンポリストTL」の代わりに「中間結果IR2のテンポリストTL2」を用い、このテンポリストTL2に、ステップ1602の処理後の分析結果AR3の各構成単位AR3UDから変換したテンポリスト構成単位TUDを上書きしていく。そのために、図8のステップ801では「新規のテンポリストTL」の代わりに「中間結果IR2のテンポリストTL2」を用意するものとし、ステップ802,809では分析結果AR3の各構成単位AR3UDから次の追加対象のテンポリスト構成単位TUDを作成するものとする。図8の処理から明白であるが、必ず複数の区間を上書きすることになる。
【0095】
なお、分析結果AR3の各構成単位AR3UDからテンポリスト構成単位TUDを作成するステップ802,809の処理は以下のように行なう。ここで、分析結果AR3の構成単位AR3UDのフォーマットは図18(b)の分析結果2のものと同じであり、テンポリスト構成単位TUDのフォーマットは図17(d)に示すとおりである。テンポリスト構成単位TUDの作成は、その左端TUSPとして分析結果AR3の構成単位AR3UDの分析開始点USPを、右端TUEPとして分析結果AR3の構成単位AR3UDの分析終了点UEPを、そのビート位置のリストTUBPLとして分析結果AR3の構成単位AR3UDのビート位置のリストUBPLを、そのテンポ値TUTVとして分析結果AR3の構成単位AR3UDのテンポ値UTVを、それぞれコピーすることにより行なえばよい。
【0096】
以上の処理により、完成したテンポリストTL3が、最終的な出力FR(FR: Final Result)である。このテンポリストTL3のフォーマットは図17(d)に示すとおりであり、各区間のテンポ値が推定されている。
【0097】
上記実施の形態により、オーディオデータのテンポが曲の途中で変化する場合であっても区間ごとのテンポが正確に推定できる。これを用いて、例えばMIDIデータのテンポをオーディオデータのテンポに合わせることができる。すなわち、オーディオデータに上記実施形態の処理を施してそのテンポを推定し、オーディオデータのテンポが変化するタイミングでMIDIデータにテンポチェンジイベントを挿入すればよい。MIDIデータ上の挿入位置は、オーディオデータのテンポの変わり目に相当するMIDIデータ上の位置を計算で求め、その位置にテンポチェンジを挿入する。なお、元からMIDIデータに存在するテンポチェンジイベントのうち、オーディオデータの再生区間に含まれてしまうテンポチェンジイベントは削除すればよい。
【0098】
逆に上記実施の形態の方法を用いて、オーディオデータのテンポをMIDIデータのテンポに合わせることもできる。オーディオデータに上記実施の形態の処理を施してオーディオデータのテンポを計算し、計算した結果とMIDIデータのテンポ情報とを比較し、MIDIデータのテンポに合わせるように、オーディオデータに対して区間ごとに異なる倍率でタイムストレッチの処理を施せばよい。タイムストレッチの方法としては、オーディオデータをビート位置でスライスしたときの各スライス片を再配置する方法などを用いればよい。
【0099】
なお、上記実施の形態の方法でテンポ推定を行なったオーディオデータは、テンポを変えて再生する際のビート位置の計算が比較的容易である。「テンポの変化はビートの位置で起こる」とする考えに基づいてテンポ推定処理を行なっているからである。すなわち、従来方法ではビート位置でテンポ変化が起きるという考え方によらずにテンポ推定を行なっているため、ビート位置をはずれた位置でテンポが変化すると推定する場合がある。この場合、このオーディオデータをテンポを変えて再生しようとすると、テンポの変化点の位置の計算とテンポが変化した後のビート位置の再生開始位置の計算の両方を行なう必要がある。これに対し、上記実施の形態の推定方法ではビート位置がテンポ変化点に一致しているので、テンポを変えて再生する際にはテンポ変化点の位置の計算を行なえばそのビート位置の計算を行なったことになり、計算量が少ないというメリットがある。
【0100】
上記実施の形態では、[分析1]、[分析2]、および[分析3]の中で、設定された分析範囲についてそれぞれ個別にビート位置検出処理(図4)を行なっているが、そうする代わりに[分析1]、[分析2]、および[分析3]に先立って入力オーディオデータ全体に対してビート位置検出処理を行なうようにしてもよい。その方が処理の無駄が少ない。また、分析フレーム間でビート検出位置を同じにすることができ(または容易に対応させることができ)、後でフレームの分析結果を合成するのに好都合である。この場合、図4のステップ404,405の処理では、複数の異なる閾値を用いてピーク値を検出し、各閾値に対応したリストを作成しておく。[分析1]、[分析2]、および[分析3]では、それぞれの処理で利用すべきリストを使って処理を行なえばよい。ただし、分析フレームごとにビート位置検出処理における波形処理のパラメータを設定したいなどの目的がある場合は、設定された分析範囲についてそれぞれ個別にビート位置検出の処理を行なうようにする。
【0101】
上記実施の形態では、最終的な出力であるテンポリストは、図17(d)に示すようにビートの情報(ビート位置のリスト)も含んでいる。これは、この結果を用いてオーディオデータをスライスすることなどを想定しているからであるが、必ずしもビートの情報を出力に含める必要はない。
【0102】
上記実施の形態では、テンポリストTL3を最終出力としているが、テンポリストTL1またはTL2を最終出力としてもよい。
【0103】
上記実施の形態では、オーディオデータ(波形データ)に対してテンポ推定を行なっているが、テンポ推定対象は必ずしもオーディオデータには限らない。例えば、テンポクロックとは関係なく行なわれた演奏を記録した演奏データ(ノートオンイベントなどの各種のイベントデータで表現されているデータ)からその演奏データのテンポを推定するために本発明を適用することもできる。この場合は、図4のビート位置検出処理は、演奏データを解析してビート位置を検出する処理を行なうものとする。
【0104】
上記実施の形態では、各ビート検出時に、一定幅のフレームを使用しているが、波形データに応じて適応的に変化する幅のフレームでビート検出を行なってもよい。
【0105】
上記実施の形態では、まず長いフレーム幅でテンポ推定を行ない、その失敗した範囲について短いフレーム幅でテンポ推定を行なっているが、必ずしも2段階で行なう必要はない。1つのフレーム幅で1回だけテンポ推定を行なってもよいし、3つ以上のフレーム幅で3段階以上のテンポ推定を行なってもよい。
【0106】
また、2回目のテンポ推定を行なう範囲は、必ずしも1回目で失敗した範囲としなくてもよい。例えば、(1)採用されたもののうちスコア値の低かった構成単位HUD(スコア値が所定の閾値以下のもの)の範囲を含めて2回目のテンポ推定を行なう、(2)2回目の「テンポ推定」も全範囲について行なう、(3)2つの構成単位HUDを接続した部分で、接続位置の大きな補正が必要だったその2つの単位HUDの範囲についても2回目のテンポ推定を行なう、というようにしてもよい。
【0107】
開始点、終了点、およびビート位置などの位置データは、時間を単位としてもよいし、サンプル数(小数部以下込みでもよい)を単位としてもよい。テンポ値も、小数点以下を含む値でもよい。テンポ値を小数点以下を含まないテンポ値とする場合は、小数部の丸め込みによるビート位置の誤差が累積されないように、テンポリストの各構成単位データTUDのテンポ値に補正をかければよい。
【0108】
上記実施の形態では、構成単位データHUDをスコアの昇順にソートしてテンポリストTLの作成を行なっているが、逆に、単位データHUDをスコアの降順にソートしてテンポリストTLの作成を行なってもよい。その場合、テンポリスト作成処理では、テンポリストTLに先に貼り付けた単位データTUDを優先させ、後から貼り付ける単位データTUDをそれに重ならないように変形させればよい。
【0109】
また、ソートを行なわずにテンポリストの作成をすることもできる。その場合、複数の構成単位HUDを任意の順番で取り出してテンポリストTLに貼り付ける。そして、後から貼り付ける構成単位HUDが既に貼り付けた構成単位HUDに重なった時点で、スコアの高いほうを優先させ、スコアの低いほうの構成単位HUDから作成した構成単位TUDを変形させればよい。
【0110】
上記実施の形態では、図3に示す手順で処理を進めているが、[分析2](すなわち[分析1]と[統合1]でテンポ値が求められなかった区間に対する再度の分析)については省略してもよい。その場合は、[分析1]と[統合1]の結果に対して[統合2]で説明したような細かくしすぎた区間を探して区間リストSL2を作成する処理を施せばよい。
【0111】
また上記実施の形態では、[分析1]と[分析2]の2段階による分析にもかかわらず、[統合2]におけるステップ701で閾値以下と判断され、テンポ値の取得できない区間が残る場合がある。その区間について更なる分析を行なうようにしてもよい。あるいは、テンポが取得できなかった区間については、前後の区間のテンポや拍位置に基づいて補間を行ない、当該区間のテンポを決定するようにしてもよい。
【0112】
なお、本発明の実施態様として、下記のようなテンポ推定装置を実現できる。第1は、音楽データのテンポ推定装置であって、テンポを推定する対象の音楽データ上に分析対象とする部分的データを切り出すための所定幅のフレームを設定し、前記フレームにより切り出した音楽データを分析してテンポ値を求め、前記フレームの位置をずらしながらテンポ値を求める処理を繰り返して、フレームごとのテンポ値を集めたリストである第1の分析結果を取得する第1の分析手段と、前記第1の分析結果から、テンポ値を求めることができた範囲とその範囲のテンポ値とを並べたリストである第1のテンポリストを作成する手段と、前記第1の分析でテンポ値の検出に失敗した区間を並べたリストである第1の区間リストを作成する手段と、前記第1の区間リストの各区間に対して、再度、前記第1の分析のときより幅の狭いフレームを用いてテンポ値を求める処理を施し、それらの区間のテンポ値を並べたリストである第2の分析結果を取得する第2の分析手段と、前記第1の分析結果および第2の分析結果から、テンポ値を求めることができた範囲とその範囲のテンポ値とを並べたリストである第2のテンポリストを作成する手段と、前記第2のテンポリストから、隣合う複数の区間であって、隣合う区間と区間との間の距離が所定の閾値以下、かつ、それらの区間のテンポ値の最大値と最小値との差が所定の閾値以下である区間を、一続きの区間としてまとめ、それら一続きの区間のリストである第2の区間リストを作成する手段と、前記第2の区間リストの各区間について、フレームを設定することなく、再度、テンポ値を求める処理を施し、それらの区間のテンポ値を並べたリストである第3の分析結果を取得する第3の分析手段と、前記第2のテンポリストに対して、前記第3の分析により取得された各区間のテンポ値を反映させることにより、前記音楽データ中の同じテンポ値を有する範囲とその範囲のテンポ値とを並べたリストである最終的なテンポリストを取得する手段とを備えることを特徴とするものである。
【0113】
第2は、音楽データのテンポ推定装置であって、テンポを推定する対象の音楽データ上に分析対象とする部分的データを切り出すための所定幅のフレームを設定し、前記フレームにより切り出した音楽データを分析してテンポ値を求め、前記フレームの位置をずらしながらテンポ値を求める処理を繰り返して、フレームごとのテンポ値を集めたリストである第1の分析結果を取得する第1の分析手段と、前記分析結果から、テンポ値を求めることができた範囲とその範囲のテンポ値とを並べたリストであるテンポリストを作成する手段と、前記テンポリストから、隣合う複数の区間であって、隣合う区間と区間との間の距離が所定の閾値以下、かつ、それらの区間のテンポ値の最大値と最小値との差が所定の閾値以下である区間を、一続きの区間としてまとめ、それら一続きの区間のリストである区間リストを作成する手段と、前記区間リストの各区間について、フレームを設定することなく、再度、テンポ値を求める処理を施し、それらの区間のテンポ値を並べたリストである第2の分析結果を取得する第2の分析手段と、前記テンポリストに対して、前記第2の分析により取得された各区間のテンポ値を反映させることにより、前記音楽データ中の同じテンポ値を有する範囲とその範囲のテンポ値とを並べたリストである最終的なテンポリストを取得する手段とを備えることを特徴とするものである。
【0114】
第3は、上述の音楽データのテンポ推定装置において、前記テンポ値を求める際、そのテンポ値がどの程度信頼できる値であるかの指標となるスコア値を求め、前記分析結果から前記テンポリストを作成する場合に重なる区間で異なるテンポ値である分析結果があったときには、前記スコア値が高いテンポ値を優先させてテンポリストに反映させることを特徴とするものである。
【0115】
第4は、上述の音楽データのテンポ推定装置において、前記分析結果から前記テンポリストを作成する際には、前記音楽データ上でテンポ値を求めることができた範囲の開始位置と終了位置がビート位置に合うように範囲を調整する手段をさらに備えることを特徴とするものである。
【0116】
第5は、上述の音楽データのテンポ推定装置において、ユーザにより前記音楽データ上の所定区間内のテンポ値の期待範囲を入力する手段をさらに備え、該期待範囲をはずれる当該区間のテンポ値が検出された場合は、該検出されたテンポ値は排除して以後の処理対象からは外すことを特徴とするものである。
【0117】
【発明の効果】
以上説明したように、本発明によれば、テンポが途中で変化するような音楽データであってもそのテンポを正確に推定することができる。特に、異なる区間でテンポ推定を行ない、複数の推定結果を合成するので、各区間で推定したテンポは正確である。また、同じようなテンポ値の検出された区間を統合するので、広い範囲にわたるテンポを正しく検出することができる。さらに、第1フレーム長でテンポの推定を行ない、推定の失敗した区間について第1フレーム長より短い第2フレーム長で推定を行なうので、全体を短いフレーム長で分析する場合に比較して、少ない演算量で正確な推定ができる。また、あらかじめ各位置範囲ごとに期待範囲を指定しているので、突拍子もないテンポ値が推定されるのを防止することができる。推定時にテンポの変化のタイミングをビートのタイミングに合わせるので、テンポ推定後の処理(例えば、他のオーディオ信号/MIDI信号をビートに同期させて再生するための処理)が簡単になる。テンポ変化のタイミングをビートタイミングに合わせておくと、異なる区間で行なわれたテンポ推定の結果を合成する際に、補正処理が簡単になる。
【図面の簡単な説明】
【図1】この発明の実施の形態に係る波形テンポ推定システムの全体構成図である。
【図2】波形データのテンポを推定させる場合のユーザの操作手順を示す図である。
【図3】実施の形態のテンポ推定処理の手順および処理全体のデータの流れを示す図である。
【図4】ビート位置検出処理の手順の一例を示す図である。
【図5】分析1,2,3におけるビート検出処理の手順を示す図である。
【図6】フレームを進めながらビート検出処理を行なう様子を示す図である。
【図7】統合1,2における統合処理の手順を示す図である。
【図8】統合1,2,3におけるテンポリスト作成処理の手順を示す図である。
【図9】<case1>の場合のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す図である。
【図10】<case2>の場合のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す図である。
【図11】<case3>の場合のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す図である。
【図12】<case3>の場合の別のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す図である。
【図13】<case4>の場合のコピー前のテンポリストおよびコピー後のテンポリストの様子を示す図である。
【図14】区間リストSL1のデータ例を示す図である。
【図15】条件1,2を満たす場合と満たさない場合の例および区間リストSL2のデータ例を示す図である。
【図16】統合3の処理手順を示す図である。
【図17】本実施の形態で使用する各種データ(その1)のフォーマットを示す図である。
【図18】本実施の形態で使用する各種データ(その2)のフォーマットを示す図である。
【符号の説明】
101…中央処理装置(CPU)、102…リードオンリメモリ(ROM)、103…ランダムアクセスメモリ(RAM)、104…ドライブ装置、106…MIDIインターフェース、107…パネルスイッチ、108…パネル表示器、111…書込回路、112…アクセス管理部、113…波形メモリ、114…音源、115…サウンドシステム、120…バスライン。

Claims (8)

  1. 音楽データのテンポ推定方法において、
    推定対象の音楽データを入力するステップと、
    入力した音楽データに対して、前後の推定範囲で一部重複し、その位置が互いに異なるような、複数の異なる前記推定範囲を設定するステップと、
    前記推定範囲ごとに前記音楽データを分析してテンポを推定し、その推定範囲ごとに、テンポ値と推定の信頼度を示すスコア値とを得るステップと、
    前記複数の推定範囲の各テンポ値を前記各スコア値に基づいて該スコア値の高いテンポ値を優先させて統合し、前記音楽データの時間的に変動するテンポ値を得るステップと
    を備えることを特徴とする音楽データのテンポ推定方法。
  2. 請求項1に記載の音楽データのテンポ推定方法において、
    前記推定範囲は、互いに幅が異なる複数の推定範囲であることを特徴とする音楽データのテンポ推定方法。
  3. 請求項1または2の何れか1つに記載の音楽データのテンポ推定方法において、
    前記複数の推定範囲の各テンポ値の統合は、前記音楽データから抽出された拍位置を基準に統合を行なうものであることを特徴とする音楽データのテンポ推定方法。
  4. 音楽データのテンポ推定方法において、
    推定対象の音楽データを入力するステップと、
    一部重複した前記音楽データ上の2つの推定範囲について、それぞれ、その推定範囲の音楽データを分析してテンポを推定し、その推定範囲ごとに、テンポ値と推定の信頼度を示すスコア値とを得るステップと、
    前記重複部分に関して、前記2つの推定範囲が重ならないように、前記2つの推定範囲のうちのスコア値の小さい方の推定範囲を修正するステップと、
    修正された前記2つの推定範囲の各テンポ値を統合して、前記音楽データの時間的に変動するテンポ値を得るステップと
    を備えることを特徴とする音楽データのテンポ推定方法。
  5. 音楽データのテンポ推定方法において、
    推定対象の音楽データを入力するステップと、
    連続的に接合しようとする2つの推定範囲について、それぞれ、その推定範囲の音楽データを分析してテンポを推定し、その推定範囲ごとに、ビート位置とテンポ値と推定の信頼度を示すスコア値とを得るステップと、
    前記重複部分に関して、前記2つの推定範囲が重ならないように、前記2つの推定範囲のうちのスコア値の小さい方の推定範囲を修正するステップと、
    前記2つの推定範囲のビート位置が接合部で互いにずれないように、前記2つの推定範囲のうちの前方の推定範囲のテンポ値を修正するステップと、
    修正された前記2つの推定範囲のテンポ値を統合して、前記音楽データの時間的に変動するテンポ値を得るステップと
    を備えることを特徴とする音楽データのテンポ推定方法。
  6. 音楽データのテンポ推定方法において、
    推定対象の音楽データを入力するステップと、
    前記音楽データの時間軸上の複数の範囲について、それぞれ、その推定範囲の音楽データを分析してテンポを推定し、その推定範囲ごとに、テンポ値と推定の信頼度を示すスコア値とを得るステップと、
    前記複数の範囲のうち、隣合う範囲間の距離が所定幅以下で、かつ、それらの各範囲で推定されたテンポ値の差が所定値以下であるような複数の範囲をグループ化し、各グループの期待テンポを決定するステップと、
    前記各グループの存在する範囲について、その範囲の音楽データを分析してテンポを推定しテンポ値と推定の信頼度を示すスコア値とを得るステップと、
    前記各グループで得られたテンポ値と前記各グループの期待テンポとを比較し、その差が所定値以下の場合は、当該グループに属する複数範囲を統合し、統合された推定範囲のテンポ値及びスコア値を当該グループで得られたテンポ値及びスコア値とするステップと、
    前記複数の推定範囲及び統合された推定範囲の各テンポ値を前記各スコア値に基づいて該スコア値の高いテンポ値を優先させて統合し、前記音楽データの時間的に変動するテンポ値を得るステップ
    を備えることを特徴とする音楽データのテンポ推定方法。
  7. 音楽データのテンポ推定方法において、
    推定対象の音楽データを入力するステップと、
    前記音楽データ上の異なる位置に第1の幅を有する第1フレームを複数設定し、各位置の第1フレームごとにテンポを推定し、テンポ値と推定の信頼度を示すスコア値とを得るステップと、
    前記音楽データ上の異なる位置に前記第1の幅より小さい第2の幅を有する第2フレームを複数設定し、各位置の第2フレームごとにテンポを推定し、テンポ値と推定の信頼度を示すスコア値とを得るステップと、
    前記複数の第1フレーム及び第2フレームで得られたスコア値に基づいて、前記複数の第1フレームで得られたテンポ値と、前記複数の第2フレームで得られたテンポ値を統合して、前記音楽データの変動するテンポ値を得るステップと
    を備えることを特徴とする音楽データのテンポ推定方法。
  8. 音楽データのテンポ推定方法において、
    推定対象の音楽データを入力するステップと、
    前記音楽データを所定の区間に分け、各区間ごとにテンポ値の期待範囲を設定するステップと、
    入力した音楽データに対して、前後の推定範囲で一部重複し、その位置が互いに異なるような、複数の異なる前記推定範囲を設定するステップと、
    前記推定範囲ごとに前記音楽データを分析してテンポを推定し、その推定範囲ごとに、テンポ値と推定の信頼度を示すスコア値とを得るステップと、
    前記各区間について、前記推定されたテンポ値が前記期待範囲に入る前記推定範囲を残し、期待範囲に入らない前記推定範囲除外するステップと
    前記複数の推定範囲のうちの除外されていない推定範囲の各テンポ値を前記各スコア値に基づいて該スコア値の高いテンポ値を優先させて統合し、前記音楽データの時間的に変動するテンポ値を得るステップと
    を備えることを特徴とする音楽データのテンポ推定方法。
JP2002061503A 2002-03-07 2002-03-07 音楽データのテンポ推定方法および装置 Expired - Fee Related JP3674950B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002061503A JP3674950B2 (ja) 2002-03-07 2002-03-07 音楽データのテンポ推定方法および装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002061503A JP3674950B2 (ja) 2002-03-07 2002-03-07 音楽データのテンポ推定方法および装置

Publications (2)

Publication Number Publication Date
JP2003263162A JP2003263162A (ja) 2003-09-19
JP3674950B2 true JP3674950B2 (ja) 2005-07-27

Family

ID=29195773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002061503A Expired - Fee Related JP3674950B2 (ja) 2002-03-07 2002-03-07 音楽データのテンポ推定方法および装置

Country Status (1)

Country Link
JP (1) JP3674950B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109670074A (zh) * 2018-12-12 2019-04-23 北京字节跳动网络技术有限公司 一种节奏点识别方法、装置、电子设备及存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4650662B2 (ja) * 2004-03-23 2011-03-16 ソニー株式会社 信号処理装置および信号処理方法、プログラム、並びに記録媒体
JP4979018B2 (ja) * 2005-07-01 2012-07-18 パイオニア株式会社 コンピュータプログラム、並びに情報再生装置及び方法
JP4940588B2 (ja) 2005-07-27 2012-05-30 ソニー株式会社 ビート抽出装置および方法、音楽同期画像表示装置および方法、テンポ値検出装置および方法、リズムトラッキング装置および方法、音楽同期表示装置および方法
JP5243042B2 (ja) 2005-12-09 2013-07-24 ソニー株式会社 音楽編集装置及び音楽編集方法
JP4949687B2 (ja) * 2006-01-25 2012-06-13 ソニー株式会社 ビート抽出装置及びビート抽出方法
JP5309459B2 (ja) * 2007-03-23 2013-10-09 ヤマハ株式会社 ビート検出装置
JP4467601B2 (ja) * 2007-05-08 2010-05-26 ソニー株式会社 ビート強調装置、音声出力装置、電子機器、およびビート出力方法
JP5054646B2 (ja) * 2008-09-22 2012-10-24 Kddi株式会社 拍位置推定装置、拍位置推定方法および拍位置推定プログラム
JP5395399B2 (ja) * 2008-10-17 2014-01-22 Kddi株式会社 携帯端末、拍位置推定方法および拍位置推定プログラム
JP6390094B2 (ja) * 2013-12-09 2018-09-19 ヤマハ株式会社 音響信号分析制御プログラムおよび音響信号分析制御装置
KR102431737B1 (ko) 2017-02-28 2022-08-11 삼성전자주식회사 멀티미디어 데이터에서 하이라이트를 찾는 방법 및 그를 이용한 장치

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0527751A (ja) * 1991-07-19 1993-02-05 Brother Ind Ltd 自動採譜装置等に用いられるテンポ抽出装置
JP2586784B2 (ja) * 1992-12-02 1997-03-05 ヤマハ株式会社 自動演奏制御装置
JP3231482B2 (ja) * 1993-06-07 2001-11-19 ローランド株式会社 テンポ検出装置
JP3455757B2 (ja) * 1993-08-25 2003-10-14 カシオ計算機株式会社 テンポデータ生成装置及びテンポデータ生成方法
US6201176B1 (en) * 1998-05-07 2001-03-13 Canon Kabushiki Kaisha System and method for querying a music database
JP4214606B2 (ja) * 1999-03-17 2009-01-28 ソニー株式会社 テンポ算出方法及びテンポ算出装置
JP3413634B2 (ja) * 1999-10-27 2003-06-03 独立行政法人産業技術総合研究所 音高推定方法及び装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109670074A (zh) * 2018-12-12 2019-04-23 北京字节跳动网络技术有限公司 一种节奏点识别方法、装置、电子设备及存储介质
WO2020119150A1 (zh) * 2018-12-12 2020-06-18 北京字节跳动网络技术有限公司 节奏点识别方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
JP2003263162A (ja) 2003-09-19

Similar Documents

Publication Publication Date Title
JP3674950B2 (ja) 音楽データのテンポ推定方法および装置
EP1547060B1 (en) System and method for generating an audio thumbnail of an audio track
JP4389330B2 (ja) 演奏位置検出方法および楽譜表示装置
JP4487958B2 (ja) メタデータ付与方法及び装置
JP4398242B2 (ja) 録音の多段階識別方法
US20050241465A1 (en) Musical composition reproduction method and device, and method for detecting a representative motif section in musical composition data
EP3373299B1 (en) Audio data processing method and device
JP5368988B2 (ja) 音楽再生装置、音楽再生方法、音楽再生プログラム、及び集積回路
US20110010175A1 (en) Text data processing apparatus, text data processing method, and recording medium storing text data processing program
JP4622415B2 (ja) 音楽情報表示装置及びプログラム
JP3938096B2 (ja) インデックス作成装置、インデックス作成方法、および、インデックス作成プログラム
JP2001343994A (ja) 音声認識誤り検出装置および記憶媒体
CN106971750B (zh) 歌词文件和音调文件对齐方法及装置
JP2007072023A (ja) 情報処理装置及び情報処理方法
JP4399958B2 (ja) 演奏支援装置および演奏支援方法
JP3785068B2 (ja) 映像解析装置,映像解析方法,映像解析プログラムおよびそのプログラム記録媒体
EP1370989B1 (en) Method and apparatus for identifying electronic files
JP2001155467A (ja) 編集処理装置、及び編集処理プログラムが記憶された記憶媒体
CN111933176B (zh) 一种批量定位语音内容的方法及装置
JP3977683B2 (ja) 映像解析装置,映像解析方法,映像解析プログラムおよび映像解析プログラムの記録媒体
KR920007206B1 (ko) 자동채보(自動採譜)방법 및 장치
JP3346187B2 (ja) 演奏データ編集装置および演奏データ編集プログラムを記憶した媒体
CN115103225B (zh) 视频片段提取方法、装置、电子设备和存储介质
JP3496565B2 (ja) 音声処理装置及び音声処理方法
JP3905230B2 (ja) 磁気ディスク装置とそれで使われるシンクロバイト検知信号生成方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20041210

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041216

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050214

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050411

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050424

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090513

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100513

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110513

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130513

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140513

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees