JP5569228B2 - テンポ検出装置、テンポ検出方法およびプログラム - Google Patents

テンポ検出装置、テンポ検出方法およびプログラム Download PDF

Info

Publication number
JP5569228B2
JP5569228B2 JP2010173253A JP2010173253A JP5569228B2 JP 5569228 B2 JP5569228 B2 JP 5569228B2 JP 2010173253 A JP2010173253 A JP 2010173253A JP 2010173253 A JP2010173253 A JP 2010173253A JP 5569228 B2 JP5569228 B2 JP 5569228B2
Authority
JP
Japan
Prior art keywords
bpm
basic feature
correct
unit
frequency
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
JP2010173253A
Other languages
English (en)
Other versions
JP2012032677A (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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP2010173253A priority Critical patent/JP5569228B2/ja
Priority to US13/190,731 priority patent/US8431810B2/en
Priority to CN2011102126918A priority patent/CN102347022A/zh
Publication of JP2012032677A publication Critical patent/JP2012032677A/ja
Application granted granted Critical
Publication of JP5569228B2 publication Critical patent/JP5569228B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/36Accompaniment arrangements
    • G10H1/40Rhythm
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0008Associated control or indicating means
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/076Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for extraction of timing, tempo; Beat detection
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2220/00Input/output interfacing specifically adapted for electrophonic musical tools or instruments
    • G10H2220/021Indicator, i.e. non-screen output user interfacing, e.g. visual or tactile instrument status or guidance information using lights, LEDs, seven segments displays
    • G10H2220/086Beats per minute [bpm] indicator, i.e. displaying a tempo value, e.g. in words or as numerical value in beats per minute
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/025Envelope processing of music signals in, e.g. time domain, transform domain or cepstrum domain
    • G10H2250/031Spectrum envelope processing
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/131Mathematical functions for musical analysis, processing, synthesis or composition
    • G10H2250/215Transforms, i.e. mathematical transforms into domains appropriate for musical signal processing, coding or compression
    • G10H2250/235Fourier transform; Discrete Fourier Transform [DFT]; Fast Fourier Transform [FFT]

Description

この発明は、テンポ検出装置、テンポ検出方法およびプログラムに関し、特に、楽曲のオーディオ信号を処理してその楽曲のテンポを検出するテンポ検出装置等に関する。
楽曲のテンポは楽曲進行の速さを示し、この楽曲のテンポを表す指標としてBPM(Beat Per Minute:1分間あたりの4分音符の数)がよく使われている。楽曲のBPMを検出する技術として、従来、以下の技術が開示されている。
特許文献1には、音楽波形信号の自己相関を算出し、それに基づいて音楽のビート構造を解析し、その解析結果に基づいて音楽のテンポを抽出することが開示されている。また、特許文献2には、入力オーディオ信号を複数の周波数帯域に分割し、各周波数帯域の入力オーディオ信号のピークを検出し、ピーク位置の時間間隔を算出し、発生頻度の多い時間間隔に基づいてテンポを検出することが開示されている。
特開2002−221240号公報 特開2007−033851号公報
特許文献1に記載される手法は、ポータブル機器向けの組み込みプロセッサ上において短時間で解析することを考えると、演算量が大きすぎるという問題があった。また、特許文献2に記載される手法は、低演算量を意図したものであるが、ピークの時間間隔がそのままBPMに対応しないケースも多く、検出性能が十分高くないという問題があった。特に、BPMを倍もしくは半分に間違えてしまうケースが多いと考えられる手法である。例えば、正解BPMが60の場合にBPM=120と検出するケースや、正解BPMが100の場合にBPM=50と検出するケースである。
この発明の目的は、楽曲のテンポ検出を低演算量で、かつ高性能に行い得るようにすることにある。
この発明の概念は、
入力オーディオ信号から複数種類の基本特徴量を抽出する基本特徴量抽出部と、
上記基本特徴量抽出部で抽出された上記複数種類の基本特徴量を重み付け加算して加算信号を得る重み付け加算部と、
上記重み付け加算部で得られた上記加算信号に含まれる周期成分に基づいてテンポを示すBPMを検出するテンポ検出部と
上記基本特徴量抽出部で抽出された上記複数種類の基本特徴量に基づいて、上記テンポ検出部で検出された上記BPMを修正するテンポ修正部を備え
上記テンポ修正部は、
上記複数種類の基本特徴量に基づいて、正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあるか否かを判断するための第1のスピード感を得ると共に、上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあるか否かを判断するための第2のスピード感を得、
上記第1のスピード感により上記正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあると判断するとき、上記テンポ検出部で検出されたBPMを2倍にしてBPM出力とし、
上記第2のスピード感により上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあると判断するとき、上記テンポ検出部で検出されたBPMを1/2倍してBPM出力とし、
上記第1のスピード感により上記正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがないと判断し、かつ上記第2のスピード感により上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがないと判断するとき、上記テンポ検出部で検出されたBPMをそのままBPM出力とする
テンポ検出装置にある。
この発明において、基本特徴量抽出部により入力オーディオ信号から複数種類の基本特徴量が抽出される。例えば、基本特徴量抽出部では、入力オーディオ信号が所定数のサンプルデータを含むフレームに分割され、フレーム毎に、複数種類の基本特徴量が抽出される。例えば、入力オーディオ信号のサンプリング周波数が22.050kHzである場合、1024個のサンプルデータを含むフレームに分割される。
例えば、基本特徴量抽出部は、短時間フーリエ変換部と、基本特徴量計算部とを有する構成とされる。短時間フーリエ変換部では、入力オーディオ信号のフレーム毎に短時間フーリエ変換が行われる。また、基本特徴量計算部では、短時間フーリエ変換部から出力されるフレーム毎の周波数スペクトルに基づいて、複数種類の基本特徴量、例えば、Spectrum Flux、Spectrum CentroidおよびRoll-Offが計算される。
重み付け加算部により、基本特徴量抽出部で抽出された複数種類の基本特徴量が重み付け加算されて加算信号が得られる。ここで、重み係数は、例えば手作業で決定されるが、学習などで自動的に決定されてもよい。そして、テンポ検出部により、重み付け加算部で得られた加算信号に含まれる周期成分が検出され、この周期成分に基づいてテンポを示すBPMが検出される。
例えば、テンポ検出部は、高速フーリエ変換部と、スコア算出部と、BPM決定部とを有する構成とされる。高速フーリエ変換部では、フレーム毎の加算信号に対して高速フーリエ変換による周期性解析が行われる。
スコア算出部では、高速フーリエ変換部から出力される周波数軸上の各サンプルが、正解BPMが存在すると仮定した周波数領域を含み、低域側に隣接する周波数領域は1/2倍で高域側に隣接する周波数領域は2倍となる、所定数の連続した周波数領域に分割される。そして、このスコア算出部では、周波数領域毎かつサンプル毎に、各サンプルデータのレベルに対応したスコアが算出される。
BPM決定部は、スコア加算部と、最大値サーチ部とを有する構成とされる。スコア加算部では、スコア算出部で算出された周波数領域毎かつサンプル毎のスコアに基づいて、各周波数領域のサンプルのスコアが、各周波数領域のサンプル数を一致させて、対応するサンプル毎に加算される。最大値サーチ部では、スコア加算部で加算されて得られたサンプル毎のスコア加算値のうち、最大値を取るサンプルに対応する周波数を、正解BPMが存在すると仮定した周波数領域から算出し、その周波数に対応するBPMがテンポを示すBPMとして決定される。
このように、この発明においては、入力オーディオ信号から複数種類の基本特徴量を抽出し、この複数種類の基本特徴量を重み付け加算して加算信号を得、この加算信号に含まれる周期成分に基づいてテンポを示すBPMを検出するものであり、楽曲のテンポ検出を低演算量でかつ高性能に行うことが可能となる。
この発明において、例えば、基本特徴量抽出部で抽出された複数種類の基本特徴量に基づいて、テンポ検出部で検出されたBPMを修正するテンポ修正部をさらに備え、テンポ修正部は、複数種類の基本特徴量に基づいて、正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあるか否かを判断するための第1のスピード感を得ると共に、正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあるか否かを判断するための第2のスピード感を得、第1のスピード感により正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあると判断するとき、テンポ検出部で検出されたBPMを2倍にしてBPM出力とし、第2のスピード感により正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあると判断するとき、テンポ検出部で検出されたBPMを1/2倍にしてBPM出力とし、第1のスピード感により正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがないと判断し、かつ第2のスピード感により正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがないと判断するとき、テンポ検出部で検出されたBPMをそのままBPM出力とする、ようにしてもよい。
この場合、複数種類の基本特徴量に基づいて正解BPMが存在すると仮定した周波数領域より高域側、低域側に正解BPMがあるか否かを判断するための第1、第2のスピード感を求めてBPMの修正処理を行うものであり、正解BPMが存在すると仮定した周波数領域より高域側あるいは低域側に正解BPMが存在する場合に、BPMの修正を適切に行うことができる。また、この場合、基本特徴量抽出部で抽出された複数種類の基本特徴量を利用でき、余分な基本特徴量計算を行わないで済む。
また、この発明において、例えば、基本特徴量抽出部は、入力オーディオ信号を所定数のサンプルデータを含むフレームに分割し、フレーム毎に複数種類の基本特徴量を抽出し、テンポ修正部は、所定数のフレームが含まれるブロック毎に第1のスピード感および第2のスピード感を得る構成とされ、所定数のフレームの複数種類の基本特徴量の平均および標準偏差を、予め学習により得られた第1の係数群により重み付け加算して第1のスピード感を得、所定数のフレームの複数種類の基本特徴量の平均および標準偏差を、予め学習により得られた第2の係数群により重み付け加算して第2のスピード感を得る、ようにしてもよい。例えば、複数種類の基本特徴量は、ZCR、Spectrum Flux、Spectrum CentroidおよびRoll-Offである。
この発明によれば、入力オーディオ信号から複数種類の基本特徴量を抽出し、この複数種類の基本特徴量を重み付け加算して加算信号を得、この加算信号に含まれる周期成分に基づいてテンポを示すBPMを検出するものであり、楽曲のテンポ検出を低演算量でかつ高性能に行うことができる。
この発明の第1の実施の形態としての楽曲テンポ検出装置の構成例を示すブロック図である。 楽曲テンポ検出装置を構成する基本特徴量抽出部の構成例を示すブロック図である。 楽曲テンポ検出装置を構成する仮BPM算出部の構成例を示すブロック図である。 仮BPM算出部を構成する周期成分解析部の構成例を示すブロック図である。 複数種類の基本特徴量の重み付け加算信号を高速フーリエ変換して得られた結果の一例を示す図である。 高速フーリエ変換の結果を用いた各周波数領域のスコア計算例を示す図である。 BPM算出部におけるブロック毎のBPM決定処理の手順を示すフローチャートである。 この発明の第2の実施の形態としての楽曲解析システムの構成例を示すブロック図である。 ソフトウェアで楽曲テンポ検出、楽曲分類などの処理を実行するコンピュータ装置の構成例を示す図である。
以下、発明を実施するための形態(以下、「実施の形態」とする)について説明する。なお、説明を以下の順序で行う。
1.第1の実施の形態
2.第2の実施の形態
3.変形例
<1.第1の実施の形態>
[楽曲テンポ検出装置の構成例]
図1は、第1の実施の形態としての楽曲テンポ検出装置10の構成例を示している。この楽曲テンポ検出装置10は、オーディオ信号の所定期間毎、例えば30秒毎に楽曲のテンポを示すBPM(Beat Per Minute)を検出する。この楽曲テンポ検出装置10は、オーディオ信号の時間軸および周波数軸のデータから得られる各種基本特徴量の値およびその周期性を利用して、楽曲のテンポを示すBPMを検出する。この楽曲テンポ検出装置10は、基本特徴量抽出部100と、仮BPM算出部200と、BPM算出部300とを有している。
基本特徴量抽出部100は、入力オーディオ信号(PCM信号)から、フレーム毎に、複数種類の基本特徴量を算出する。この実施の形態において、複数種類の基本特徴量は、「ZCR(Zero Crossing Rate)」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」である。これらの基本特徴量は、例えば、文献「George Tzanetakis and Perry Cook. Musical genre classification ofaudio signals. IEEE Transactions on Speech and Audio Processing, 10(5):293-302,July 2002.」で提示されている。
「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量は、概略的には、以下のような意味合いを持っている。「ZCR」は、入力オーディオ信号の時間波形が単位時間中に横軸を交差する回数である。「Spectrum Flux」は、フレーム毎の周波数スペクトルのパワー変動である。「SpectrumCentroid」は、フレーム毎の周波数スペクトルの重心である。「Roll-Off」は、フレーム毎の周波数スペクトルの総和の85%に達する周波数である。
仮BPM算出部200は、基本特徴量抽出部100で抽出されたフレーム毎の複数種類の基本特徴量を時系列データとみなし、この複数種類の基本特徴量の重み付け加算信号に含まれる周期成分(繰り返し成分)を検出することで、仮BPMを算出する。仮BPM算出部200は、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量を使用する。この仮BPM算出部200は、重み付け加算部およびテンポ検出部を構成している。
ここで、仮BPMはBPM0〜BPM0*2を取り、BPM0は約75が用いられる。仮BPM算出部200は、正解BPMがBPM0〜BPM0*2の間にない場合であっても、仮BPMとしてBPM0〜BPM0*2の間の値を出力する。例えば、正解BPMが180の場合、仮BPM算出部200は、仮BPMとして90を出力する。また、例えば、正解BPMが50の場合、仮BPM算出部200は、仮BPMとして100を出力する。
BPM算出部300は、基本特徴量抽出部100で抽出された基本特徴量に基づいてスピード感を計算し、正解BPMが150を超えるBPM(高BPM)であるか、また、正解BPMがBPM0未満(約75)のBPM(低BPM)であるかを判定する。BPM算出部300は、スピード感を計算する際に、「ZCR(Zero Crossing Rate)」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量を使用する。
BPM算出部300は、高BPMであると判定するとき、仮BPM算出部200で算出された仮BPMを2倍にしてBPMとする。また、BPM算出部300は、低BPMであると判定するとき、仮BPM算出部200で算出された仮BPMを1/2倍にしてBPMとする。さらに、BPM算出部300は、高BPMでもなく、低BPMでもないと判定するとき、仮BPM算出部200で算出された仮BPMをそのままBPMとする。このBPM算出部300は、テンポ修正部を構成している。
図1に示す楽曲テンポ検出装置10の動作を説明する。入力オーディオ信号(PCM信号)は、基本特徴量抽出部100に供給される。この基本特徴量抽出部100では、入力オーディオ信号から、フレーム毎に、「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量が抽出される。
基本特徴量抽出部100で抽出されたフレーム毎の「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量は、仮BPM算出部200に供給される。この仮BPM算出部200では、基本特徴量抽出部100で抽出されたフレーム毎の各基本特徴量が時系列データとみなされ、重み付け加算される。そして、この仮BPM算出部200では、重み付け加算信号に含まれる周期成分(繰り返し成分)が抽出され、仮BPMが算出される。この仮BPMはBPM0〜BPM0*2(BPM0は約75)の間の値とされる。
仮BPM算出部200で算出された仮BPMは、BPM算出部300に供給される。この仮BPMは、BPM0〜BPM0*2(BPM0は約75)の間の値とされている。すなわち、仮BPM算出部200では、正解BPMがBPM0〜BPM0*2の間にない場合であっても、仮BPMとしてBPM0〜BPM0*2の間の値が出力される。また、BPM算出部300には、基本特徴量抽出部100で抽出されたフレーム毎の「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量が供給される。
BPM算出部300では、基本特徴量抽出部100で抽出された「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量に基づいてスピード感が計算される。BPM算出部300では、この計算されたスピード感に基づいて、正解BPMが、BPM0*2(BPM0は約75)を超えるBPM(高BPM)であるか、BPM0未満のBPM(低BPM)であるかが判定される。
そして、BPM算出部300では、高BPMであると判定されるとき、仮BPM算出部200で算出された仮BPMが2倍にされ、BPMとして出力される。また、BPM算出部300では、低BPMであると判定されるとき、仮BPM算出部200で算出された仮BPMが1/2倍にされ、BPMとして出力される。さらに、BPM算出部300では、高BPMでもなく、低BPMでもないと判定されるとき、仮BPM算出部200で算出された仮BPMが、そのままBPMとして出力される。
[基本特徴量算出部の説明]
基本特徴量算出部100の詳細を説明する。この基本特徴量算出部100は、上述したように、仮BPM算出部200での周期成分抽出処理、およびBPM算出部300でのスピード感計算処理において用いられる複数種類の基本特徴量を算出する。この複数種類の基本特徴量は、上述したように、「ZCR(Zero Crossing Rate)」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」である。
基本特徴量抽出部100は、入力オーディオ信号から「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」を抽出する。この入力オーディオ信号は、モノラルかつサンプリング周波数22.050kHzになるように、チャンネル変換およびサンプリング周波数変換が行われたものである。基本特徴量抽出部100は、この入力オーディオ信号を1024サンプル(約46msec)のフレームに分割し、フレーム毎に基本特徴量を計算し、その結果をバッファに保持する。
図2は、基本特徴量抽出部100の構成例を示している。この抽出部100は、短時間フーリエ変換部101と、フラックス(flux)計算部102と、セントロイド(centroid)計算部103と、ロールオフ(roll-off)計算部104と、ZCR計算部105と、バッファ106〜109を有している。
ZCR計算部105は、入力オーディオ信号、つまり時間軸上のデータを使用して、フレーム(1024サンプル)毎に、以下の(1)式により、「ZCR」を計算する。そして、ZCR計算部105は、この計算結果を、この「ZCR」の基本特徴量に決定された正規化係数で0から1に収まるように正規化して、バッファ109に格納する。ここで、“xt”はフレームtにおける入力オーディオ信号のサンプルデータ、“n”は時間軸方向のインデックスを表す。“sign”は信号の正負を判定する関数であり、信号が正の場合に1を返し、負の場合に−1を返す関数である。“Zt”は、フレームtにおける「ZCR」である。
Figure 0005569228
短時間フーリエ変換部101は、入力オーディオ信号、つまり時間軸上のデータに対して、フレーム毎に、短時間フーリエ変換(STFT:Short-time Fourier Transform)を行う。この短時間フーリエ変換部101から出力されるフレーム毎の周波数スペクトルは、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」のフレーム毎の基本特徴量を計算するために用いられる。
フラックス(flux)計算部102は、短時間フーリエ変換部101で得られたフレーム毎の周波数スペクトルを使用して、フレーム毎に、以下の(2)式により、「Spectrum Flux」を計算する。そして、フラックス計算部102は、この計算結果を、この「Spectrum Flux」の基本特徴量に決定された正規化係数で0から1に収まるように正規化して、バッファ106に格納する。ここで、“N”はフレームtにおける入力オーディオ信号の周波数スペクトル(パワーの総和で正規化されている)、“M”は総スペクトル本数、“n”は周波数軸方向のインデックスを表す。“Ft”は、フレームtにおける「Spectrum Flux」である。
Figure 0005569228
ロールオフ(roll-off)計算部104は、短時間フーリエ変換部101で得られたフレーム毎の周波数スペクトルを使用して、フレーム毎に、「Roll-Off」を計算し、計算結果をバッファ108に格納する。このロールオフ計算部104は、以下の(3)式を満たす最小のRtとして、「Roll-Off」を計算する。そして、ロールオフ計算部104は、この計算結果を、この「Roll-Off」の基本特徴量に決定された正規化係数で0から1に収まるように正規化して、バッファ(バッファ4)108に格納する。ここで、“X”はフレームtにおける入力オーディオ信号の周波数スペクトル、“M”は総スペクトル本数、“n”は周波数軸方向のインデックスを表す。
Figure 0005569228
セントロイド(centroid)計算部103は、短時間フーリエ変換部101で得られたフレーム毎の周波数スペクトルを使用して、フレーム毎に、以下の(4)式により、「Spectrum Centroid」を計算する。そして、セントロイド計算部103は、この計算結果を、この「Spectrum Centroid」の基本特徴量に決定された正規化係数で0から1に収まるように正規化して、バッファ106に格納する。ここで、“X”はフレームtにおける入力信号の周波数スペクトル、“M”は総スペクトル数、“n”は周波数軸方向のインデックスを表す。“Ct”は、フレームtにおける「Spectrum Centroid」である。
Figure 0005569228
図2に示す基本特徴量抽出部100の動作を簡単に説明する。入力オーディオ信号(PCM信号)は、短時間フーリエ変換部101およびZCR計算得105に供給される。この入力オーディオ信号は、モノラルかつサンプリング周波数22.050kHzになるように、予めチャンネル変換およびサンプリング周波数変換が行われている。
ZCR計算部105では、入力オーディオ信号、つまり時間軸上のデータが使用されて、フレーム(1024サンプル)毎に、「ZCR」の基本特徴量が計算される((1)式参照)。この計算結果は、この「ZCR」の基本特徴量に決定された正規化係数で0から1に収まるように正規化されて、ZCR格納バッファとしてのバッファ109に格納される。
また、短時間フーリエ変換部101では、入力オーディオ信号、つまり時間軸上のデータに対して、フレーム毎に、短時間フーリエ変換が行われる。この短時間フーリエ変換部101で得られたフレーム毎の周波数スペクトルは、フラックス(flux)計算部102と、セントロイド(centroid)計算部103と、ロールオフ(roll-off)計算部104に供給される。
フラックス(flux)計算部102では、短時間フーリエ変換部101で得られたフレーム毎の周波数スペクトルが使用されて、フレーム毎に、「Spectrum Flux」の基本特徴量が計算される((2)式参照)。この計算結果は、この「Spectrum Flux」の基本特徴量に決定された正規化係数で0から1に収まるように正規化されて、flux格納バッファとしてのバッファ106に格納される。
ロールオフ(roll-off)計算部104では、短時間フーリエ変換部101で得られたフレーム毎の周波数スペクトルが使用されて、フレーム毎に、「Roll-Off」の基本特徴量が計算される((3)式参照)。この計算結果は、この「Roll-Off」の基本特徴量に決定された正規化係数で0から1に収まるように正規化されて、roll-off格納バッファとしてのバッファ108に格納される。
セントロイド(centroid)計算部103では、短時間フーリエ変換部101で得られたフレーム毎の周波数スペクトルが使用されて、フレーム毎に、「Spectrum Centroid」の基本特徴量が計算される((4)式参照)。この計算結果は、この「Spectrum Centroid」の基本特徴量に決定された正規化係数で0から1に収まるように正規化されて、centroid格納バッファとしてのバッファ107に格納される。
[仮BPM算出部の説明]
仮BPM算出部200の詳細を説明する。この仮BPM算出部200は、上述したように、フレーム毎の複数種類の基本特徴量を時系列データとみなし、この複数種類の基本特徴量の重み付け加算信号に含まれる周期成分(繰り返し成分)を抽出することで、仮BPMを算出する。
図3は、仮BPM算出部200の構成例を示している。この仮BPM算出部200は、重み付け加算部210と、周期成分解析部220を有している。重み付け加算部210は、バッファ106,107,108からフレーム毎の「Spectrum Flux」、「Spectrum Centroid」、「Roll-Off」の基本特徴量を順次取り出して重み付け加算し、重み付け加算信号を得る。
重み付け加算部210は、乗算器211〜213と、加算器214とから構成されている。乗算器211は、バッファ106から取り出された「Spectrum Flux」に、重み係数w1を乗算して、重み付けを行う。また、乗算器212は、バッファ107から取り出された「Spectrum Centroid」に、重み係数w2を乗算して、重み付けを行う。また、乗算器213は、バッファ108から取り出された「Roll-Off」に、重み係数w3を乗算して、重み付けを行う。
加算器214は、乗算器211,212,213でそれぞれ重み付けされたフレーム毎の「Spectrum Flux」、「Spectrum Centroid」、「Roll-Off」の基本特徴量を加算して、各フレームの重み付け加算信号を順次出力する。なお、重み係数w1,w2,w3は、周期成分の検出が良好に行われるように、予め、手作業で決定されるか、あるいは学習などで自動的に決定されたものである。
「SpectrumFlux」、「Spectrum Centroid」、「Roll-Off」の基本特徴量は、いずれも、アタック性の信号が発生する箇所で立ち上がる傾向にある。個別の基本特徴量をみた際には、着目している周期成分以外のところでも立ち上がりが発生するため、周期成分の検出の際にノイズとなるケースが多く、周期成分の誤検出の要因となる。重み付け加算信号においては、全ての基本特徴量で同時に変化している箇所が強調されるため、ノイズを低減でき、周期成分の検出性能を向上できる。
周期成分解析部220は、重み付け加算部210で得られた重み付け加算信号に含まれる周期成分(繰り返し成分)を検出し、この周期成分に基づいて仮BPMを検出する。この周期成分解析部220は、テンポ検出部を構成している。図4は、周期成分解析部220の構成例を示している。周期成分解析部220は、高速フーリエ変換部221と、スコア算出部222〜225と、加算部26と、最大値サーチ部227を有している。
高速フーリエ変換部221は、重み付け加算部210から順次出力される各フレームの重み付け加算信号(時系列データ)に対して高速フーリエ変換(FFT:Fast Fourie Transform)を行う。FFTサイズは、例えば、1024サンプルとされる。この場合、時系列データにおいて、1秒あたりのフレーム数は 22050/1024 であるため、時系列データをFFTした際のサンプリング周波数は22050/1024Hzとなる。その際のナイキスト周波数は22050/(2*1024) Hz となる。FFTサイズとして、1024サンプルを用いた場合、1024サンプルの周波数データが得られ、1サンプルは(22050/1024)/1024Hzに相当する。BPMは1分あたりの繰り返し数に相当するので、換算するとスペクトル1本あたり、60*(22050/1024)/1024 BPMに相当する。
重み付け加算信号に周期成分がある場合、高速フーリエ変換の結果得られた周波数軸上の各サンプルデータのうち、対応する周波数位置のサンプルデータのレベルがピークとなって現れる。図5は、重み付け加算信号の高速フーリエ変換の結果例を示している。この図において、横軸は、周波数に対応するBPM(Beat Per Minute)が用いられている。
スコア算出部222〜225は、仮BPFを検出するためのスコアを算出する。高速フーリエ変換の結果には、図5の結果例からも明らかなように、いくつかのピークが現れる。最大値をとる周波数位置が正解BPMとは限らない。例えば、16分音符の成分が強い場合、正解BPMの4倍の位置に強いピークが現れる。
仮BPM算出部200は、正確なBPM検出を行う前に、仮BPMとして、正解BPMがBPM0〜BPM0*2(BPM0は約75)であると仮定したときのBPMを検出する。スコア検出部222〜225は、仮BPMの算出のために、BPM0〜BPM0*2のBPMのなかで、どれが最も仮BPMらしいかを表すスコアを、高速フーリエ変換の結果から算出する。
BPM=100の楽曲を処理した場合、BPM=100に相当する周波数にピークが発生するだけでなく、BPM=50、BPM=200、BPM=400に相当する周波数位置にもピークが発生する傾向がある。これを前提にして、周期成分解析部220は、周波数領域を、以下の4つの領域に分割して、それぞれの領域でスコアを算出する。この周波数分割においては、低域側に隣接する周波数領域は1/2倍とされ、高域側に隣接する周波数領域は2倍とされる。
仮BPMの下限値をBPM0とした場合、
周波数領域1: BPM0/2 < BPM ≦ BPM0に相当する周波数領域
周波数領域2: BPM0 < BPM ≦ BPM0*2に相当する周波数領域
周波数領域3: BPM0*2 < BPM ≦ BPM0*4に相当する周波数領域
周波数領域4: BPM0*4 < BPM ≦ BPM0*8に相当する周波数領域
となる。仮BPMの範囲を約75〜約150とすると、BPM0は60*(22050/1024)/1024*60となる
スコア算出部222は、周波数領域1に存在する各サンプルデータに基づいて、この周波数領域1のスコアを算出する。スコア算出部223は、周波数領域2に存在する各サンプルデータに基づいて、この周波数領域2のスコアを算出する。スコア算出部224は、周波数領域3に存在する各サンプルデータに基づいて、この周波数領域3のスコアを算出する。また、スコア算出部225は、周波数領域4に存在する各サンプルデータに基づいて、この周波数領域4のスコアを算出する。
図6は、高速フーリエ変換の結果(図5参照)を用いた、各周波数領域のスコア計算例を示している。周波数領域1の信号は、周波数が倍の位置に相当する仮BPMの半分の成分とみなされる。つまり、この周波数領域1の信号は、仮BPMを4分音符とみなした場合の、2分音符の成分となる。そのため、周波数領域1のスコアを算出するスコア算出部222は、この周波数領域1に存在するサンプルデータ毎に、そのレベルを周波数が倍の位置のサンプルのスコアとする。例えば、BPMが60の位置にあるサンプルデータのレベルは、BPM=120に相当するサンプルのスコアとして扱われる。
周波数領域2の信号は、仮BPMの成分と見なされる。つまり、この周波数領域2の信号は、仮BPMを4分音符とみなした場合の、4分音符の成分となる。そのため、周波数領域2のスコアを算出するスコア算出部223は、この周波数領域2に存在するサンプルデータ毎に、そのレベルを周波数が同じ位置のサンプルのスコアとする。
周波数領域3の信号は、周波数が半分の位置に相当する仮BPMの2倍の成分とみなされる。つまり、この周波数領域3の信号は、仮BPMを4分音符とみなした場合の、8分音符の成分となる。そのため、周波数領域3のスコアを算出するスコア算出部224は、この周波数領域3に存在するサンプルデータ毎に、そのレベルを周波数が半分の位置のサンプルのスコアとする。例えば、BPMが240の位置にあるサンプルデータのレベルは、BPM=120に相当するサンプルのスコアとして扱われる。
周波数領域4の信号は、周波数が1/4の位置に相当する仮BPMの4倍の成分とみなされる。つまり、この周波数領域4の信号は、仮BPMを4分音符とみなした場合の、16分音符の成分となる。そのため、周波数領域4のスコアを算出するスコア算出部225は、この周波数領域4に存在するサンプルデータ毎に、そのレベルを周波数が1/4の位置のサンプルのスコアとする。例えば、BPMが480の位置にあるサンプルデータのレベルは、BPM=120に相当するサンプルのスコアとして扱われる。
図4に戻って、加算部226は、スコア算出部222〜225で算出された各周波数領域のスコアを、各周波数領域のサンプル数を一致させて、対応するサンプル毎に加算する。この加算部226は、スコア加算部を構成している。加算部226は、例えば、サンプル数が最も少ない周波数領域1に合わせるように、その他の周波数領域のサンプルの間引きを行う。
上述したようにフレーム周波数が22.050kHz/1024で、FFTサイズが1024サンプルである場合、フーリエ変換部221では、サンプリング周波数が22.050kHz/1024で、サンプル数(データ数)が1024の周波数表現が得られる。この場合、周波数領域1のサンプル数は30個、周波数領域2のサンプル数は60個、周波数領域3のサンプル数は120個、周波数領域4のサンプル数は240個となる(図5参照)。
周波数領域2におけるサンプルの間引きは以下のように行われる。周波数領域1のサンプル数が30個であるのに対して周波数領域2のサンプル数は60個である。そのため、加算部226は、この周波数領域2に関しては、2サンプルごと30個のブロックに分割し、各ブロックの最大値のみを残すことで、30サンプルに間引きする。
また、周波数領域3におけるサンプルの間引きは以下のように行われる。周波数領域1のサンプル数が30個であるのに対して周波数領域3のサンプル数は120個である。そのため、加算部226は、この周波数領域3に関しては、4サンプルごと30個のブロックに分割し、各ブロックの最大値のみを残すことで、30サンプルに間引きする。
また、周波数領域4におけるサンプルの間引きは以下のように行われる。周波数領域1のサンプル数が30個であるのに対して周波数領域4のサンプル数は240個である。そのため、加算部226は、この周波数領域4に関しては、8サンプルごと30個のブロックに分割し、各ブロックの最大値のみを残すことで、30サンプルに間引きする。
最大値サーチ部227は、加算部226で加算されて得られた各サンプルのスコア加算値から、図6に示すように、最大値をサーチする。そして、最大のスコア加算値のサンプルに対応した、周波数領域2内の周波数に対応したBPMを、仮BPMとする。ここで、周波数領域2(BPM0 < BPM ≦ BPM0*2に相当する周波数領域)は、上述したように、正解BPMが存在すると仮定した周波数領域である。
図3に示す仮BPM算出部200の動作を簡単に説明する。バッファ106,107,108に格納されている、フレーム毎の「Spectrum Flux」、「Spectrum Centroid」、「Roll-Off」の基本特徴量が順次取り出されて、重み付け加算部210に供給される。乗算器211では、バッファ106から取り出された「Spectrum Flux」に、重み係数w1が乗算されて、重み付けが行われる。また、乗算器212では、バッファ107から取り出された「Spectrum Centroid」に、重み係数w2が乗算されて、重み付けが行われる。また、乗算器213では、バッファ108から取り出された「Roll-Off」に、重み係数w3が乗算されて、重み付けが行われる。
各乗算器211〜213の出力信号は加算機214に供給される。加算器214では、乗算器211〜213でそれぞれ重み付けされたフレーム毎の「Spectrum Flux」、「Spectrum Centroid」、「Roll-Off」の基本特徴量が加算されて、各フレームの重み付け加算信号が順次得られる。この重み付け加算信号は、周期成分解析部220供給される。
周期成分解析部220では、重み付け加算部210で得られた重み付け加算信号に含まれる周期成分(繰り返し成分)が検出され、この周期成分に基づいて仮BPMが検出される。すなわち、周期成分解析部220のフーリエ変換部221では(図4参照)、重み付け加算部210から順次出力される各フレームの重み付け加算信号(時系列データ)に対して高速フーリエ変換が行われる。この高速フーリエ変換の結果(図5参照)は、スコア算出部222〜225に供給される。
スコア算出部222〜225では、仮BPFを検出するためのスコアが算出される(図6参照)。スコア算出部222では、周波数領域1(BPM0/2 < BPM ≦ BPM0に相当する周波数領域)に存在する各サンプルデータに基づいて、この周波数領域1のスコアが算出される。この場合、この周波数領域1に存在するサンプルデータ毎に、そのレベルが、周波数が倍の位置のサンプルのスコアとされる。
スコア算出部223では、周波数領域2(BPM0 < BPM ≦ BPM0*2に相当する周波数領域)に存在する各サンプルデータに基づいて、この周波数領域2のスコアが算出される。この周波数領域2は、正解BPMが存在すると仮定した周波数領域である。この場合、周波数領域2に存在するサンプルデータ毎に、そのレベルが、周波数が同じ位置のサンプルのスコアとされる。
スコア算出部224では、周波数領域3(BPM0*2 < BPM ≦ BPM0*4に相当する周波数領域)に相当する周波数領域に存在する各サンプルデータに基づいて、この周波数領域3のスコアが算出される。この場合、この周波数領域3に存在するサンプルデータ毎に、そのレベルが、周波数が半分の位置のサンプルのスコアとされる。
スコア算出部225では、周波数領域4(BPM0*4 < BPM ≦ BPM0*8に相当する周波数領域)に相当する周波数領域に存在する各サンプルデータに基づいて、この周波数領域4のスコアが算出される。この場合、この周波数領域4に存在するサンプルデータ毎に、そのレベルが、周波数が1/4の位置のサンプルのスコアとされる。
スコア算出部222〜225で算出された各周波数領域のスコアは加算部226に供給される。この加算部226では、各周波数領域のスコアが、各周波数領域のサンプル数を一致させて、対応するサンプル毎に加算される。この場合、例えば、サンプル数が最も少ない周波数領域1に合わせるように、その他の周波数領域のサンプルの間引きが行われる。
加算部226で得られた各サンプルのスコア加算値(図6参照)は、最大値サーチ部227に供給される。最大値サーチ部227では、各サンプルのスコア加算値から、最大値がサーチされる。そして、最大値サーチ部227では、最大のスコア加算値のサンプルに対応した、周波数領域2内の周波数に対応したBPMが、仮BPMとされる。
[BPM算出部の説明]
BPM算出部200の詳細を説明する。このBPM算出部200は、基本特徴量抽出部100で抽出された基本特徴量に基づいてスピード感を計算し、仮BPM算出部200で算出された仮BPMの修正が必要かどうかの判定を行う。仮BPM算出部200は、BPMがBPM0〜BPM0*2に収まるという仮定に基づいて、仮BPMを算出している。BPM算出部300は、高BPM判定(BPMがBPM0*2を超えるか否かの判定)および低BPM判定(BPMがBPM0未満か否かの判定)を行って、より正確なBPMを取得する。
楽曲テンポ検出装置10は、上述したように、オーディオ信号の例えば30秒毎に楽曲のテンポを示すBPMを検出する。BPM算出部300は、30秒間の信号をさらに数100msec毎のブロックに分割し、ブロック毎に、高BPM判定および低BPM判定を行う。BPM算出部300は、これらの判定に、基本特徴量抽出部100で抽出された「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量を使用する。
基本特徴量抽出部100は、上述したように、入力オーディオ信号(PCM信号)から、フレーム毎に、「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量を抽出する。BPM算出部300は、ブロック毎に、各基本特徴量の平均および標準偏差を計算し、ブロックを代表する特徴量とする。結果として、BPM算出部300は、特徴量として、(f0,f1,f2,f3,f4,f5,f6,f7)の8次元の特徴ベクトルを取得する。BPM算出部300は、この特徴ベクトルと、重み係数との内積計算を行うことで、高BPM判定および低BPM判定の判定を行う。
BPM算出部300は、まず、高BPM判定、つまりBPMがBPM0*2を超えるか否かの判定を行う。BPM算出部300は、上述した8次元の特徴ベクトルと、高BPM判定用の重み係数とを用いて、高BPM判定を行うための「スピード感1」を計算する。
この高BPM判定用の重み係数は、事前に学習によって算出される。学習は、例えば、以下のように行われる。すなわち、人間が聞いたときに、BPMがBPM0*2を超えると感じるグループの楽曲と、BPMがBPM0*2以下と感じるグループの楽曲が用意され、それぞれのグループ内のすべての楽曲に対して、上述の特徴量(8次元の特徴ベクトル)が算出される。そして、フィッシャー(Fisher)の線形判別基準が用いられ、2つのグループを分離するために最適な射影が算出される。この結果得られた係数が、高BPM判定用の重み係数として利用される。
「スピード感1」は、人間が聞いてBPMがBPM0*2を超えると感じる度合いに対応するものである。BPM算出部300は、ブロックkにおける「スピード感1」を、以下の(5)式により、上述の特徴量(8次元の特徴ベクトル)と、高BPM判定用の重み係数との内積計算を行うことで求める。ここで、“a”は「スピード感1」を算出するめの高BPM判定用の重み係数、“f”はブロックkにおける特徴量である。
Figure 0005569228
BPM算出部300は、上述したように計算した「スピード感1」を事前に決定した閾値Aと比較し、「スピード感1」>閾値Aであるとき、BPMを仮BPMの2倍、すなわち「仮BPM*2」に決定する。BPM算出部300は、「スピード感1」>閾値Aでないとき、低BPM判定に移る。なお、閾値Aは、上述した高BPM判定用の重み係数の学習時に決定される。
BPM算出部300は、低BPM判定、つまりBPMがBPM0未満か否かの判定を行うために、上述した8次元の特徴ベクトルと、低BPM判定用の重み係数とを用いて、「スピード感2」を計算する。
この低BPM判定用の重み係数は、事前に学習によって算出される。学習は、例えば、以下のように行われる。すなわち、人間が聞いたときに、BPMがBPM0未満と感じるグループの楽曲と、BPMがBPM0以上と感じるグループの楽曲が用意され、それぞれのグループ内のすべての楽曲に対して、上述の特徴量(8次元の特徴ベクトル)が算出される。そして、フィッシャー(Fisher)の線形判別基準が用いられ、2つのグループを分離するために最適な射影が算出される。この結果得られた係数が、低BPM判定用の重み係数として利用される。
「スピード感2」は、人間が聞いてBPMがBPM0未満と感じる度合いに対応するものである。BPM算出部300は、ブロックkにおける「スピード感2」を、以下の(6)式により、上述の8次元の特徴ベクトルと、低BPM判定用の重み係数との内積計算を行うことで求める。ここで、“b”は「スピード感2」を算出するめの低BPM判定用の重み係数、“f”はブロックkにおける特徴量である。
Figure 0005569228
BPM算出部300は、上述したように計算した「スピード感2」を事前に決定した閾値Bと比較し、「スピード感2」>閾値Bであるとき、BPMを仮BPMの1/2倍、すなわち「仮BPM/2」に決定する。BPM算出部300は、「スピード感2」>閾値Bでないとき、BPMを仮BPMそのものに決定する。
図7のフローチャートは、BPM算出部300における、上述したブロック毎のBPM決定処理の手順を示している。BPM算出部300は、ステップST1において、処理を開始し、その後にステップST2の処理に移る。このステップST2において、BPM算出部300は、特徴量(8次元の特徴ベクトル)と、高BPM判定用の重み係数との内積計算を行って、高BPM判定を行うための「スピード感1」を計算する((5)式参照)。
次に、BPM算出部300は、ステップST3において、「スピード感1」が閾値Aより大きいか否か、つまり「スピード感1」>閾値Aであるか否かを判定する。「スピード感1」>閾値Aであるとき、BPM算出部300は、ステップST4において、BPMを仮BPMの2倍、すなわち「仮BPM*2」に決定し、その後、ステップST5において、処理を終了する。
ステップST3で「スピード感1」>閾値Aでないとき、BPM算出部300は、ステップST6の処理に移る。このステップST6において、BPM算出部300は、特徴量(8次元の特徴ベクトル)と、低BPM判定用の重み係数との内積計算を行って、低BPM判定を行うための「スピード感2」を計算する((6)式参照)。
次に、BPM算出部300は、ステップST7において、「スピード感2」が閾値Bより大きいか否か、つまり「スピード感2」>閾値Bであるか否かを判定する。「スピード感2」>閾値Bであるとき、BPM算出部300は、ステップST8において、BPMを仮BPMの1/2倍、すなわち「仮BPM/2」に決定し、その後、ステップST5において、処理を終了する。
ステップST7で「スピード感2」>閾値Bでないとき、BPM算出部300は、ステップST9の処理に移る。このステップST9において、BPM算出部300は、BPMを仮BPMそのものに決定し、その後、ステップST5において、処理を終了する。
BPM算出部300は、上述したように、30秒間の信号を数100msec毎のブロックに分割し、ブロック毎に、高BPM判定および低BPM判定を行って、BPMを決定する。BPM算出部300は、さらに、全ブロックのなかで、最も頻度が高いものを現在処理している30秒間の入力オーディオ信号のBPMとして出力する。
なお、BPM算出部300の上述の高BPM判定および低BPM判定において、複数の判定器を組み合わせることも可能である。例えば、いずれかの判定器で閾値以上の値となった場合に、BPM0*2以上とみなしてBPMを2倍に修正するシステム、あるいは、全ての判定器で閾値以上になった場合にBPM0未満とみなしてBPMを1/2倍に修正するするシステムなどが考えられる。
また、上述の楽曲テンポ検出装置10においては、上述したように、オーディオ信号の所定期間毎、例えば30秒毎に楽曲のテンポを示すBPMを検出する。そのため、曲全体のBPMを決めるためには、30秒ごとの結果を統合する必要がある。この処理は、例えば、30秒毎のBPMをみて、最も出現回数が多いBPMを楽曲全体のBPMとみなすことで実現される。
上述したように、図1の楽曲テンポ検出装置10において、仮BPM算出部200では、入力オーディオ信号から抽出された「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量が重み付け加算される。そして、この重み付け加算信号に基づいてテンポを示す仮BPMが算出される。重み付け加算信号においては、全ての基本特徴量で同時に変化している箇所が強調されるため、ノイズを低減でき、周期成分の検出性能を向上できる。したがって、仮BPM算出部200では、仮BPFの算出を低演算量で高性能に行うことが可能となる
また、図1の楽曲テンポ検出装置10において、BPM算出部300では、「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量から「スピード感1」、「スピード感2」が計算される。そして、これら「スピード感1」、「スピード感2」に基づいて、仮BPM算出部200で算出された仮BPMが、適宜修正される。また、このBPM算出部300で使用される「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量は、基本特徴量抽出部100で抽出されたものである。したがって、BPM算出部300では、低演算量で精度よくBPMを得ることができる。
また、図1の楽曲テンポ検出装置10においては、低演算量で精度よくBPMを検出できるため、低リソースのプロセッサしか搭載することができないポータブル機器上でも、高精度に楽曲のテンポ検出を行うことができる。従って、PCアプリケーションが利用できない環境においても、テンポに基づく楽曲検索などの、楽曲テンポを利用した機能を提供することが可能となる。
<2.第2の実施の形態>
[楽曲解析システム]
図8は、第2の実施の形態としての楽曲解析システム5の構成例を示している。この図8において、図1と対応する部分には同一符号を付して示している。
この楽曲解析システム5は、楽曲の分類と、楽曲のテンポ検出を同時に実行する。楽曲の分類においては、入力オーディオ信号に基づいて、楽曲をクラシック、ロック、ジャズなどのジャンル、および楽しい曲、悲しい曲などのムードから構成されるクラスに分類し、分類クラス「output class」を出力する。楽曲のテンポ検出では、上述の第1の実施の形態と同様に、入力オーディオ信号に基づいて、楽曲のテンポを示すBPMを検出して出力する。
楽曲解析システム5は、楽曲分類装置40と、楽曲テンポ検出装置10Aとで構成されている。最初に楽曲分類装置40を説明する。この楽曲分類装置40は、基本特徴量抽出部510と、類似度推定部520と、出力クラス決定部530とを有している。
基本特徴量抽出部510は、入力オーディオ信号(PCM信号)から、フレーム毎に、複数種類の基本特徴量を算出する。この基本特徴量抽出部510は、詳細説明は省略するが、図1に示す楽曲テンポ検出装置10の基本特徴量抽出部100と同様に構成されている。
類似度推定部520は、基本特徴量抽出部510で抽出されたフレーム毎の基本特徴量を使って、分類クラスを表すモデルとの類似度計算を行う。ここでは、類似度計算として、GMM(Gaussian Mixture Model)を利用した尤度計算が行われる。尤度計算を行うために、事前に学習データとして各クラスに分類されるべき楽曲からなるデータベースが作成される。
学習時には、学習データに対して特徴量計算を行った後、各クラスに対してGMMを用いたモデル化が行われる。モデル生成には、EMアルゴリズムが利用可能である。これらのモデル生成はオフラインで行っておけばよく、類似度推定部520には、各モデルを表すパラメータが格納されている。
類似度推定部520は、各クラスを表すGMMのパラメータを用いて、フレームごとにモデルに対する対数尤度を計算する。全フレームの処理が終了した後、全フレームの対数尤度の総和を取り、これを各ムード、ジャンルに対するスコアとする。出力クラス決定部530は、最もスコアが大きい値をとるクラスを、処理結果、つまり分類クラス「output class」として出力する。
次に、楽曲テンポ検出装置10Aを説明する。この楽曲テンポ検出装置10Aは、仮BPM算出部200と、BPM算出部300を有している。詳細説明は省略するが、仮BPM算出部200およびBPM算出部300は、図1の楽曲テンポ検出装置10の仮BPM算出部200およびBPM算出部300と同様のものである。
楽曲テンポ検出装置10Aの仮BPM算出部200は、楽曲分類装置40の基本特徴量抽出部510で抽出された「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量を重み付け加算する。そして、仮BPM算出部200は、この重み付け加算信号に基づいてテンポを示す仮BPMを算出する。
また、楽曲テンポ検出装置10AのBPM算出部300は、楽曲分類装置40の基本特徴量抽出部510で抽出された基本特徴量に基づいて「スピード感1」、「スピード感2」を計算する。この場合、「ZCR」、「Spectrum Flux」、「Spectrum Centroid」および「Roll-Off」の基本特徴量が使用される。BPM算出部300は、これら「スピード感1」、「スピード感2」に基づいて、仮BPM算出部200で算出された仮BPMを適宜修正して、BPMを出力する。
図8に示す楽曲解析システム5において、楽曲テンポ検出装置10Aは、図1に示す楽曲検出装置10と同様に構成されているので、同様の効果を得ることができる。また、楽曲解析システム5において、楽曲分類装置40の基本特徴量抽出部510で抽出された基本特徴量を、楽曲テンポ検出装置10Aでも有効利用する構成となっている。そのため、全体の演算量を少なくできる。
なお、図8には示していないが、楽曲テンポ検出装置300の解析結果であるBPMを、楽曲分類装置40において、特徴量として使用することも可能である。例えば、クラスごとにBPMの下限値、上限値を決めておき、出力クラス決定部530において、この範囲内に収まる楽曲のみ、最終的にその分類クラス「output class」を出力することが考えられる。
<3.変形例>
なお、上述した楽曲テンポ検出装置10および楽曲解析システム5は、ハードウェアで構成できる他、同様の処理をソフトウェアで行うこともできる。図9は、ソフトウェアで処理を行うコンピュータ装置50の構成例を示している。このコンピュータ装置50は、CPU181、ROM182、RAM183およびデータ入出力部(データI/O)184により構成されている。
ROM182には、CPU181の処理プログラム、重み係数、閾値等の必要なデータが格納されている。RAM183は、CPU181のワークエリアとして機能する。CPU181は、ROM182に格納されている処理プログラムを必要に応じて読み出し、読み出した処理プログラムをRAM183に転送して展開し、当該展開された処理プログラムを読み出して、楽曲テンポ検出、楽曲分類などの処理を実行する。
このコンピュータ装置50においては、楽曲のオーディオ信号(PCM信号)は、データI/O184を介して入力され、RAM183に蓄積される。このRAM183に蓄積された入力オーディオ信号に対して、CPU181により、楽曲テンポ検出、楽曲分類などの処理が行われる。そして、処理結果(BPM、output class)は、必要に応じて、データI/O184を介して外部に出力される。
なお、上述実施の形態においては、楽曲テンポ検出装置10および楽曲解析システム5のみを示している。これら楽曲テンポ検出装置10および楽曲解析システム5は、例えば、音声記録再生機能を有する携帯通信機器・端末、携帯情報機器・端末等のポータブル機器に組み込んで使用される。
この発明は、例えば、音声記録再生機能を有する携帯通信機器・端末、携帯情報機器・端末等のポータブル機器などに適用できる。
5・・・楽曲解析装置
10,10A・・・楽曲テンポ検出装置
40・・・楽曲分類装置
50・・・コンピュータ装置
100・・・基本特徴量算出部
101・・・短時間フーリエ変換部
102・・・フラックス(flux)計算部
103・・・セントロイド(centroid)計算部
104・・・ロールオフ(roll-off)計算部
105・・・ZCR(Zero Crossing Rate)計算部
106〜109・・・バッファ
200・・・仮BPM算出部
210・・・重み付け加算部
211〜213・・・乗算器
214・・・加算器
220・・・周期成分解析部
221・・・高速フーリエ変換部
222〜225・・・スコア算出部
226・・・加算部
227・・・最大値サーチ部
510・・・基本特徴量抽出部
520・・・類似度推定部
530・・・出力クラス決定部

Claims (7)

  1. 入力オーディオ信号から複数種類の基本特徴量を抽出する基本特徴量抽出部と、
    上記基本特徴量抽出部で抽出された上記複数種類の基本特徴量を重み付け加算して加算信号を得る重み付け加算部と、
    上記重み付け加算部で得られた上記加算信号に含まれる周期成分に基づいてテンポを示すBPMを検出するテンポ検出部と
    上記基本特徴量抽出部で抽出された上記複数種類の基本特徴量に基づいて、上記テンポ検出部で検出された上記BPMを修正するテンポ修正部を備え
    上記テンポ修正部は、
    上記複数種類の基本特徴量に基づいて、正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあるか否かを判断するための第1のスピード感を得ると共に、上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあるか否かを判断するための第2のスピード感を得、
    上記第1のスピード感により上記正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあると判断するとき、上記テンポ検出部で検出されたBPMを2倍にしてBPM出力とし、
    上記第2のスピード感により上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあると判断するとき、上記テンポ検出部で検出されたBPMを1/2倍してBPM出力とし、
    上記第1のスピード感により上記正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがないと判断し、かつ上記第2のスピード感により上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがないと判断するとき、上記テンポ検出部で検出されたBPMをそのままBPM出力とする
    テンポ検出装置。
  2. 上記基本特徴量抽出部は、
    上記入力オーディオ信号を所定数のサンプルデータを含むフレームに分割し、フレーム毎に上記複数種類の基本特徴量を抽出する
    請求項1に記載のテンポ検出装置。
  3. 上記基本特徴量抽出部は、
    上記入力オーディオ信号のフレーム毎に短時間フーリエ変換を行う短時間フーリエ変換部と、
    上記短時間フーリエ変換部から出力される上記フレーム毎の周波数スペクトルに基づいて、上記複数種類の基本特徴量を計算する基本特徴量計算部とを有する
    請求項2に記載のテンポ検出装置。
  4. 上記テンポ検出部は、
    上記重み付け加算部で得られる上記フレーム毎の加算信号に対して高速フーリエ変換を行う高速フーリエ変換部と、
    上記高速フーリエ変換部から出力される周波数軸上の各サンプルを、正解BPMが存在すると仮定した周波数領域を含み、低域側に隣接する周波数領域は1/2倍で高域側に隣接する周波数領域は2倍となる、所定数の連続した周波数領域に分割し、周波数領域毎かつサンプル毎に、各サンプルデータのレベルに対応したスコアを算出するスコア算出部と、
    上記スコア算出部で算出された上記周波数領域毎かつサンプル毎のスコアに基づいて、各周波数領域のサンプルのスコアを、各周波数領域のサンプル数を一致させて、対応するサンプル毎に加算するスコア加算部と、
    上記スコア加算部で加算されて得られたサンプル毎のスコア加算値のうち、最大のスコア加算値のサンプルに対応した上記正解BPMが存在すると仮定した周波数領域内の周波数に対応したBPMを、上記テンポを示すBPMとして決定するBPM決定部とを有する
    請求項3に記載のテンポ検出装置。
  5. 上記基本特徴量抽出部は、上記入力オーディオ信号を所定数のサンプルデータを含むフレームに分割し、フレーム毎に上記複数種類の基本特徴量を抽出し、
    上記テンポ修正部は、
    所定数のフレームが含まれるブロック毎に上記第1のスピード感および上記第2のスピード感を得る構成とされ、
    上記所定数のフレームの上記複数種類の基本特徴量の平均および標準偏差を、予め学習により得られた第1の係数群により重み付け加算して上記第1のスピード感を得、
    上記所定数のフレームの上記複数種類の基本特徴量の平均および標準偏差を、予め学習により得られた第2の係数群により重み付け加算して上記第2のスピード感を得る
    請求項に記載のテンポ検出装置。
  6. 入力オーディオ信号から複数種類の基本特徴量を抽出する基本特徴量抽出ステップと、
    上記基本特徴量抽出ステップで抽出された上記複数種類の基本特徴量を重み付け加算して加算信号を得る重み付け加算ステップと、
    上記重み付け加算ステップで得られた上記加算信号に含まれる周期成分に基づいてテンポを示すBPMを検出するテンポ検出ステップと
    上記基本特徴量抽出ステップで抽出された上記複数種類の基本特徴量に基づいて、上記テンポ検出ステップで検出された上記BPMを修正するテンポ修正ステップを有し、
    上記テンポ修正ステップでは、
    上記複数種類の基本特徴量に基づいて、正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあるか否かを判断するための第1のスピード感を得ると共に、上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあるか否かを判断するための第2のスピード感を得、
    上記第1のスピード感により上記正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあると判断するとき、上記テンポ検出ステップで検出されたBPMを2倍にしてBPM出力とし、
    上記第2のスピード感により上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあると判断するとき、上記テンポ検出ステップで検出されたBPMを1/2倍してBPM出力とし、
    上記第1のスピード感により上記正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがないと判断し、かつ上記第2のスピード感により上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがないと判断するとき、上記テンポ検出ステップで検出されたBPMをそのままBPM出力とする
    テンポ検出方法。
  7. コンピュータを、
    入力オーディオ信号から複数種類の基本特徴量を抽出する基本特徴量抽出手段と、
    上記基本特徴量抽出手段で抽出された上記複数種類の基本特徴量を重み付け加算して加算信号を得る重み付け加算手段と、
    上記重み付け加算手段で得られた上記加算信号に含まれる周期成分に基づいてテンポを示すBPMを検出するテンポ検出手段と
    上記基本特徴量抽出手段で抽出された上記複数種類の基本特徴量に基づいて、上記テンポ検出手段で検出された上記BPMを修正するテンポ修正手段として機能させ
    上記テンポ修正手段は、
    上記複数種類の基本特徴量に基づいて、正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあるか否かを判断するための第1のスピード感を得ると共に、上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあるか否かを判断するための第2のスピード感を得、
    上記第1のスピード感により上記正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがあると判断するとき、上記テンポ検出手段で検出されたBPMを2倍にしてBPM出力とし、
    上記第2のスピード感により上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがあると判断するとき、上記テンポ検出手段で検出されたBPMを1/2倍してBPM出力とし、
    上記第1のスピード感により上記正解BPMが存在すると仮定した周波数領域より高域側に正解BPMがないと判断し、かつ上記第2のスピード感により上記正解BPMが存在すると仮定した周波数領域より低域側に正解BPMがないと判断するとき、上記テンポ検出手段で検出されたBPMをそのままBPM出力とする
    プログラム。
JP2010173253A 2010-08-02 2010-08-02 テンポ検出装置、テンポ検出方法およびプログラム Expired - Fee Related JP5569228B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2010173253A JP5569228B2 (ja) 2010-08-02 2010-08-02 テンポ検出装置、テンポ検出方法およびプログラム
US13/190,731 US8431810B2 (en) 2010-08-02 2011-07-26 Tempo detection device, tempo detection method and program
CN2011102126918A CN102347022A (zh) 2010-08-02 2011-07-26 音乐速度检测装置、音乐速度检测方法和程序

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010173253A JP5569228B2 (ja) 2010-08-02 2010-08-02 テンポ検出装置、テンポ検出方法およびプログラム

Publications (2)

Publication Number Publication Date
JP2012032677A JP2012032677A (ja) 2012-02-16
JP5569228B2 true JP5569228B2 (ja) 2014-08-13

Family

ID=45525391

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010173253A Expired - Fee Related JP5569228B2 (ja) 2010-08-02 2010-08-02 テンポ検出装置、テンポ検出方法およびプログラム

Country Status (3)

Country Link
US (1) US8431810B2 (ja)
JP (1) JP5569228B2 (ja)
CN (1) CN102347022A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8344234B2 (en) * 2008-04-11 2013-01-01 Pioneer Corporation Tempo detecting device and tempo detecting program
JP5569228B2 (ja) * 2010-08-02 2014-08-13 ソニー株式会社 テンポ検出装置、テンポ検出方法およびプログラム
JP5808711B2 (ja) * 2012-05-14 2015-11-10 株式会社ファン・タップ 演奏位置検出装置
JP6123995B2 (ja) * 2013-03-14 2017-05-10 ヤマハ株式会社 音響信号分析装置及び音響信号分析プログラム
EP3246824A1 (en) * 2016-05-20 2017-11-22 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for determining a similarity information, method for determining a similarity information, apparatus for determining an autocorrelation information, apparatus for determining a cross-correlation information and computer program
CN106652981B (zh) * 2016-12-28 2019-09-13 广州酷狗计算机科技有限公司 Bpm检测方法及装置
CN109308910B (zh) * 2018-09-20 2022-03-22 广州酷狗计算机科技有限公司 确定音频的bpm的方法和装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6201176B1 (en) * 1998-05-07 2001-03-13 Canon Kabushiki Kaisha System and method for querying a music database
JP5041624B2 (ja) 2000-11-21 2012-10-03 アイシン精機株式会社 クラッチの制御装置
JP3982443B2 (ja) * 2003-03-31 2007-09-26 ソニー株式会社 テンポ解析装置およびテンポ解析方法
US20040254660A1 (en) * 2003-05-28 2004-12-16 Alan Seefeldt Method and device to process digital media streams
JP4650662B2 (ja) * 2004-03-23 2011-03-16 ソニー株式会社 信号処理装置および信号処理方法、プログラム、並びに記録媒体
US7563971B2 (en) * 2004-06-02 2009-07-21 Stmicroelectronics Asia Pacific Pte. Ltd. Energy-based audio pattern recognition with weighting of energy matches
JP4347815B2 (ja) * 2005-01-11 2009-10-21 シャープ株式会社 テンポ抽出装置およびテンポ抽出方法
JP4940588B2 (ja) * 2005-07-27 2012-05-30 ソニー株式会社 ビート抽出装置および方法、音楽同期画像表示装置および方法、テンポ値検出装置および方法、リズムトラッキング装置および方法、音楽同期表示装置および方法
US7518053B1 (en) * 2005-09-01 2009-04-14 Texas Instruments Incorporated Beat matching for portable audio
JP4949687B2 (ja) * 2006-01-25 2012-06-13 ソニー株式会社 ビート抽出装置及びビート抽出方法
ES2539813T3 (es) * 2007-02-01 2015-07-06 Museami, Inc. Transcripción de música
US7838755B2 (en) * 2007-02-14 2010-11-23 Museami, Inc. Music-based search engine
JP4973426B2 (ja) * 2007-10-03 2012-07-11 ヤマハ株式会社 テンポクロック生成装置およびプログラム
US8344234B2 (en) * 2008-04-11 2013-01-01 Pioneer Corporation Tempo detecting device and tempo detecting program
JP5206378B2 (ja) * 2008-12-05 2013-06-12 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム
TWI484473B (zh) * 2009-10-30 2015-05-11 Dolby Int Ab 用於從編碼位元串流擷取音訊訊號之節奏資訊、及估算音訊訊號之知覺顯著節奏的方法及系統
JP2012015809A (ja) * 2010-06-30 2012-01-19 Kddi Corp 楽曲選択装置、楽曲選択方法および楽曲選択プログラム
JP5569228B2 (ja) * 2010-08-02 2014-08-13 ソニー株式会社 テンポ検出装置、テンポ検出方法およびプログラム
JP5641326B2 (ja) * 2010-12-21 2014-12-17 ソニー株式会社 コンテンツ再生装置および方法、並びにプログラム

Also Published As

Publication number Publication date
US20120024130A1 (en) 2012-02-02
JP2012032677A (ja) 2012-02-16
CN102347022A (zh) 2012-02-08
US8431810B2 (en) 2013-04-30

Similar Documents

Publication Publication Date Title
JP5569228B2 (ja) テンポ検出装置、テンポ検出方法およびプログラム
Liutkus et al. Adaptive filtering for music/voice separation exploiting the repeating musical structure
EP2659482B1 (en) Ranking representative segments in media data
US9830896B2 (en) Audio processing method and audio processing apparatus, and training method
EP2867887B1 (en) Accent based music meter analysis.
EP2816550B1 (en) Audio signal analysis
EP2845188B1 (en) Evaluation of downbeats from a musical audio signal
EP2854128A1 (en) Audio analysis apparatus
EP2402937B1 (en) Music retrieval apparatus
EP2962299B1 (en) Audio signal analysis
CN102073636A (zh) 节目高潮检索方法和系统
Benetos et al. Auditory spectrum-based pitched instrument onset detection
Sumi et al. Automatic Chord Recognition Based on Probabilistic Integration of Chord Transition and Bass Pitch Estimation.
KR101041037B1 (ko) 음성과 음악을 구분하는 방법 및 장치
Dittmar et al. Novel mid-level audio features for music similarity
CN113066512B (zh) 佛教音乐识别方法、装置、设备及存储介质
Tang et al. Melody Extraction from Polyphonic Audio of Western Opera: A Method based on Detection of the Singer's Formant.
Cantri et al. Cumulative Scores Based for Real-Time Music Beat Detection System
Dhananjaya et al. Speaker change detection in casual conversations using excitation source features
Dutta Tempo octave correction using multiclass support vector machine
Liang et al. Melody extraction from polyphonic music based on the amplitude relation
Song et al. Melody extraction for vocal polyphonic music based on bayesian framework
Cheng et al. Extracting singing melody in music with accompaniment based on harmonic peak and subharmonic summation
Nóbrega et al. Detecting key features in popular music: case study-singing voice detection
Kulkarni et al. A Review of Music Analysis Techniques

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130628

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140304

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140501

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: 20140527

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140609

LAPS Cancellation because of no payment of annual fees