(57)【特許請求の範囲】
【請求項１】
入力された音楽信号から各構成音の発音時刻とその出力レベルとを検出し、発音時系列信号として出力する発音時刻検出手段と、
前記発音時刻検出手段で検出された発音時系列信号の自己相関関数を算出する自己相関算出手段と、
前記自己相関算出手段の出力信号の極大値であるピーク部分の位置と出力レベルとを検出するピーク位置検出手段と、
前記ピーク位置検出手段で検出された極大値であるピーク部分の位置と出力レベルのパターンとに基づいて入力された音楽信号のビート構造を解析するビート構造解析手段と、
前記ピーク位置検出手段で検出された極大値であるピーク部分の位置と出力レベルとに基づいて、音楽信号のテンポ候補を算出する仮テンポ算出手段と、
前記仮テンポ算出手段で算出したテンポ候補と前記ビート構造解析手段で求めたビート構造を元に、ポピュラー音楽のテンポと階層数との関係及び入力音楽信号とは異なる音楽信号の自己相関関数における各階層のレベルと拍周期との関係に基づいて入力された音楽信号のテンポを判定するテンポ判定手段と、を具備することを特徴とするテンポ抽出装置。
【請求項２】
前記ビート構造解析手段は、
前記ピーク位置検出手段で検出されたピークを、そのレベル値に基づいて並べ替えるソート手段と、
前記ソート手段で並べ替えれた各ピークを、レベル値が近似したグループに分割するグループ化手段と、
前記グループ化手段でグループ化されたレベル群から、ビート階層数を含むビート構造に関するパラメータを算出するビート構造パラメータ算出手段と、を有することを特徴とする請求項１記載のテンポ抽出装置。
【請求項３】
前記ビート構造解析手段は、
ピークのレベル値のヒストグラムを生成するヒストグラム生成手段と、
前記ヒストグラム生成手段で得られたヒストグラムから、ビート階層数を含むビート構造に関するパラメータを算出するビート構造パラメータ算出手段と、を有することを特徴とする請求項１記載のテンポ抽出装置。
【請求項４】
コンピュータによって以下の各ステップを実行するテンポ抽出方法であって、
外部の信号源より入力された音楽信号から各構成音の発音時刻とその出力レベルとを検出し、発音時系列信号として出力する発音時刻検出ステップと、
前記発音時刻検出手段で検出された発音時系列信号の自己相関関数を算出する自己相関算出ステップと、
前記自己相関算出手段の出力信号の極大値であるピーク部分の位置と出力レベルとを検出するピーク位置検出ステップと、
前記ピーク位置検出ステップで検出された極大値であるピーク部分の位置と出力レベルのパターンとに基づいて入力された音楽信号のビート構造を解析するビート構造解析ステップと、
前記ピーク位置検出ステップで検出された極大値であるピーク部分の位置と出力レベルとに基づいて、音楽信号のテンポ候補を算出する仮テンポ算出ステップと、
前記仮テンポ算出ステップで算出したテンポ候補と前記ビート構造解析ステップで求めたビート構造を元に、ポピュラー音楽のテンポと階層数との関係及び入力音楽信号とは異なる音楽信号の自己相関関数における各階層のレベルと拍周期との関係に基づいて入力された音楽信号のテンポを判定するテンポ判定ステップと、を含むことを特徴とするテンポ抽出方法。
【請求項５】
コンピュータによって読み取られ実行されるコンピュータプログラムであって、
前記コンピュータを、
入力された音楽信号から各構成音の発音時刻とその出力レベルとを検出し、発音時系列信号として出力する発音時刻検出手段と、
前記発音時刻検出手段で検出された発音時系列信号の自己相関関数を算出する自己相関算出手段と、
前記自己相関算出手段の出力信号の極大値であるピーク部分の位置と出力レベルとを検出するピーク位置検出手段と、
前記ピーク位置検出手段で検出された極大値であるピーク部分の位置と出力レベルのパターンとに基づいて入力された音楽信号のビート構造を解析するビート構造解析手段と、
前記ピーク位置検出手段で検出された極大値であるピーク部分の位置と出力レベルとに基づいて、音楽信号のテンポ候補を算出する仮テンポ算出手段と、
前記仮テンポ算出手段で算出したテンポ候補と前記ビート構造解析手段で求めたビート構造を元に、ポピュラー音楽のテンポと階層数との関係及び入力音楽信号とは異なる音楽信号の自己相関関数における各階層のレベルと拍周期との関係に基づいて入力された音楽信号のテンポを判定するテンポ判定手段として機能させることを特徴とするテンポ抽出プログラム。
【請求項６】
請求項５記載のテンポ抽出プログラムを記録したコンピュータに読み取り可能な記録媒体。
【発明の詳細な説明】
【発明の属する技術分野】
本発明は、ＣＤや放送等によりオーディオ信号の形態で提供される音楽信号から、そのテンポを抽出するテンポ抽出装置及びテンポ抽出方法並びにテンポ抽出プログラム及び記録媒体に関するものである。
【０００１】
【従来の技術】
テンポは楽曲進行の速さを示すもので、１分間あたりの４分音符数で表現されることが多い。従来のテンポ抽出装置の一例として、例えば特開平５−２７７５１号公報に開示されている「自動採譜装置等に用いられるテンポ抽出装置」がある。この従来例のテンポ抽出装置のブロック図を図５に示す。このテンポ抽出装置は、信号取り込み手段３１と、パワー算出手段３２、微分手段３３、自己相関算出手段３４、極大値検出手段３５から成る小節時間長算出手段３７と、テンポ算出手段３６とを含んで構成される。また図５の点線で示す小節時間長算出手段３７は、基準となる小節時間長を求めるための機能を有するブロックである。
【０００２】
信号取り込み手段３１は音楽信号を標本化して取り込むものである。パワー算出手段３２は処理フレーム毎に取り込んだ音楽信号のパワーを算出するものである。微分手段３３はパワー算出手段３２で求めたパワーの微分計算を処理フレーム毎に行うものである。自己相関算出手段３４は微分手段３３が出力するパワーの微分値の自己相関関数を算出するものである。極大値検出手段３５は自己相関関数の極大値を検出することにより、音楽の周期性を求め、基準となる小節時間長を算出するものである。テンポ算出手段３６は、基準となる小節時間長と、別途に入力された楽曲の拍子数とから楽曲のテンポを算出するものである。
【０００３】
小節時間長算出手段３７では、まず取り込まれた音楽信号のパワー変化をパワー算出手段３２と微分手段３３とにより求め、そのパワー変化の周期性を自己相関算出手段３４で求める。そして極大値検出手段３５では、その周期性が最も強く現れる時間周期を人間が１拍として自然に感じる長さの範囲を基準として求める。その時間周期が即ち基準となる小節時間長となり、その小節時間長を拍子数で除算することにより、１分間あたりの４分音符数、即ちテンポを算出する。
【０００４】
【発明が解決しようとする課題】
しかしながら、パワー変化の自己相関関数の極大値は、必ずしも小節時間長に相当する時間周期に現れるとは限らない。例えば、近年のポピュラー音楽のようにリズム楽器音が主体をなす音楽で、例えばスネアドラムのアクセントが２分音符周期に強く現れるような場合には、パワー変化の自己相関関数の極大値は２分音符周期の時間長に相当する時間周期で現れることが多い。この場合、この極大値を小節時間長と捉えると、実際のテンポの倍のテンポとして推定してしまう恐れがある。また、従来例では事前に拍子数等をキーボードで予め入力する必要があり、テンポを抽出するためには、入力される音楽に対する先験的な知識が必要となる。
【０００５】
本発明は、このような従来の問題点に鑑みてなされたものであって、入力される音楽の種類に依存することなく、また拍子数等、入力される音楽に対する先験的な知識を必要とすることなく、正確にテンポを抽出することのできるテンポ抽出装置及びテンポ抽出方法を実現することを目的とする。
【０００６】
【課題を解決するための手段】
本発明の請求項１の発明は、入力された音楽信号から各構成音の発音時刻とその出力レベルとを検出し、発音時系列信号として出力する発音時刻検出手段と、前記発音時刻検出手段で検出された発音時系列信号の自己相関関数を算出する自己相関算出手段と、前記自己相関算出手段の出力信号の極大値であるピーク部分の位置と出力レベルとを検出するピーク位置検出手段と、前記ピーク位置検出手段で検出された極大値であるピーク部分の位置と出力レベルのパターンとに基づいて入力された音楽信号のビート構造を解析するビート構造解析手段と、前記ピーク位置検出手段で検出された極大値であるピーク部分の位置と出力レベルとに基づいて、音楽信号のテンポ候補を算出する仮テンポ算出手段と、前記仮テンポ算出手段で算出したテンポ候補と前記ビート構造解析手段で求めたビート構造を元に、ポピュラー音楽のテンポと階層数との関係及び入力音楽信号とは異なる音楽信号の自己相関関数における各階層レベルと拍周期との関係に基づいて入力された音楽信号のテンポを判定するテンポ判定手段と、を具備することを特徴とするものである。
【０００７】
本願の請求項２の発明は、請求項１のテンポ抽出装置において、前記ビート構造解析手段は、前記ピーク位置検出手段で検出されたピークを、そのレベル値に基づいて並べ替えるソート手段と、前記ソート手段で並べ替えれた各ピークを、レベル値が近似したグループに分割するグループ化手段と、前記グループ化手段でグループ化されたレベル群から、ビート階層数を含むビート構造に関するパラメータを算出するビート構造パラメータ算出手段と、を有することを特徴とするものである。
【０００８】
本願の請求項３の発明は、請求項１のテンポ抽出装置において、前記ビート構造解析手段は、ピークのレベル値のヒストグラムを生成するヒストグラム生成手段と、前記ヒストグラム生成手段で得られたヒストグラムから、ビート階層数を含むビート構造に関するパラメータを算出するビート構造パラメータ算出手段と、を有することを特徴とするものである。
【０００９】
本願の請求項４の発明は、コンピュータによって以下の各ステップを実行するテンポ抽出方法であって、外部の信号源より入力された音楽信号から各構成音の発音時刻とその出力レベルとを検出し、発音時系列信号として出力する発音時刻検出ステップと、前記発音時刻検出手段で検出された発音時系列信号の自己相関関数を算出する自己相関算出ステップと、前記自己相関算出手段の出力信号の極大値であるピーク部分の位置と出力レベルとを検出するピーク位置検出ステップと、前記ピーク位置検出ステップで検出された極大値であるピーク部分の位置と出力レベルのパターンとに基づいて入力された音楽信号のビート構造を解析するビート構造解析ステップと、前記ピーク位置検出ステップで検出された極大値であるピーク部分の位置と出力レベルとに基づいて、音楽信号のテンポ候補を算出する仮テンポ算出ステップと、前記仮テンポ算出ステップで算出したテンポ候補と前記ビート構造解析ステップで求めたビート構造を元に、ポピュラー音楽のテンポと階層数との関係及び入力音楽信号とは異なる音楽信号の自己相関関数における各階層レベルと拍周期との関係に基づいて入力された音楽信号のテンポを判定するテンポ判定ステップと、を含むことを特徴とするものである。
【００１０】
本願の請求項５のテンポ抽出プログラムは、コンピュータによって読み取られ実行されるコンピュータプログラム であって、前記コンピュータを、入力された音楽信号から各構成音の発音時刻とその出力レベルとを検出し、発音時系列信号として出力する発音時刻検出手段と、前記発音時刻検出手段で検出された発音時系列信号の自己相関関数を算出する自己相関算出手段と、前記自己相関算出手段の出力信号の極大値であるピーク部分の位置と出力レベルとを検出するピーク位置検出手段と、前記ピーク位置検出手段で検出された極大値であるピーク部分の位置と出力レベルのパターンとに基づいて入力された音楽信号のビート構造を解析するビート構造解析手段と、前記ピーク位置検出手段で検出された極大値であるピーク部分の位置と出力レベルとに基づいて、音楽信号のテンポ候補を算出する仮テンポ算出手段と、前記仮テンポ算出手段で算出したテンポ候補と前記ビート構造解析手段で求めたビート構造を元に、ポピュラー音楽のテンポと階層数との関係及び入力音楽信号とは異なる音楽信号の自己相関関数における各階層レベルと拍周期との関係に基づいて入力された音楽信号のテンポを判定するテンポ判定手段として機能させることを特徴とするものである。
【００１１】
本願の請求項６の記録媒体は、請求項５記載のテンポ抽出プログラムを、コンピュータに読み取り可能に記録したことを特徴とするものである。
【００１２】
【発明の実施の形態】
本発明の実施の形態におけるテンポ抽出装置について、図面を参照しながら説明する。図１は本実施の形態におけるテンポ抽出装置の構成を示すブロック図である。このテンポ抽出装置は、発音時刻検出手段１１、自己相関算出手段１２、ピーク位置検出手段１３、ビート構造解析手段１４、仮テンポ算出手段１５、テンポ判定手段１６を含んで構成される。
【００１３】
ＣＤや放送等によりオーディオ信号の形態で提供される音楽信号の一部分（約３０秒程度）を入力信号として、本実施の形態のテンポ抽出装置に入力する。発音時刻検出手段１１は、入力された音楽信号から、各構成音、例えばスネアドラム、バスドラム、ベース、ギター、ボーカルの音等の発音開始時刻(onset time)に相当すると推定できる音の立ち上がり部分を検出する。そして発音時刻検出手段１１はその時刻とレベルとより、入力された音楽信号の発音時系列信号を生成する。
【００１４】
音楽信号からの発音時刻検出方法の例としては、例えば後藤・村岡: " 音楽音響信号に対するビートトラッキングシステム -小節数の検出と打楽器音の有無に応じた音楽的知識の選択- " ，情報処理学会研究報告，97-MUS-21-8 , Vol.97, No.67, pp. 45-52, 1997に記載されている技術がある。ここでは入力された音楽信号を、一定長のフレーム毎にＦＦＴにより各周波数成分のパワーを求め、フレーム間のパワーの変化度合により音の立ち上がり部分、即ち各構成音の発音開始時刻を推定する。そして、推定した発音開始時刻とそのときの信号のパワーレベルとを時間軸上に配置することにより、入力された音楽信号の発音時系列信号を生成することができる。
【００１５】
自己相関算出手段１２は音楽信号の発音時系列信号の自己相関関数を算出する。フレームｎにおける発音時系列信号をｘ［ｎ] 、遅延時間をｍフレーム、算出時間長をＮフレームとすると、遅延時間ｍに対する自己相関関数Ａ［ｍ］は次の式より求められる。
【数１】
0003789326.tif 000002
【００１６】
このように算出した自己相関関数の例を図２に示す。この自己相関関数を基にテンポを算出する。ピーク位置検出手段１３は、自己相関関数のピーク部分、即ち極大値を示す部分を求める。図２の例では、白丸で印のつけられた部分がピーク部分に相当する。
【００１７】
ビート構造解析手段１４は、ピーク位置検出手段１３で検出された自己相関関数のピーク部分より、入力された音楽信号のビート構造を解析する。自己相関算出手段１２で算出された自己相関関数は、入力された音楽信号の発音部分の周期性を表現するものである。例えば音楽信号中にバスドラムが発音され、そのバスドラムが規則的に４分音符毎に発音されていれば、その自己相関関数ではその４分音符に相当する部分に強いピークが出現するはずである。そこで、自己相関関数のピーク位置及びそのレベルを観察することにより、入力された音楽の各構成音の発音時刻の周期性、即ちビートを解析できる。ここでビート構造とは、音楽を構成する各構成音のリズム体系を表し、具体的には音楽の拍子や各音符（１６分音符、８分音符、４分音符、２分音符等）に相当する部分での発音頻度及び強度を表す。図２の例では、周期性及びピークの出力レベルより、階層１から階層４より構成されることが分かる。夫々の階層が特定長の音符（例えば４分音符等）に対応したビートの強度を表す。
【００１８】
図３はビート構造解析手段１４Ａの構成例を示すブロック図である。このビート構造解析手段１４Ａは、ソート手段４１、グループ化手段４２、ビート構造パラメータ算出手段４３を含んで構成される。このような構成のビート構造解析の手順を説明する。ソート手段４１は、図１のピーク位置検出手段１３により検出された自己相関関数のピーク点を、そのレベルの大きさの順に並べる。するとレベルの大きさの近似するピークが郡化される。グループ化手段４２はピークのレベルを基準として複数のグループに分割する。そして、ビート構造パラメータ算出手段４３は、分割したグループの数をビート構造を説明するパラメータの１つであるビート階層数（図２の場合は階層数４）として出力する。
【００１９】
また、図４は別の構成例を有するビート構造解析手段１４Ｂのブロック図である。このビート構造解析手段１４Ｂは、ヒストグラム生成手段５１、ビート構造パラメータ算出手段５２を含んで構成される。図３のビート構造解析手段１４Ａとの相違点は、自己相関関数のピークの郡化の手段として、ヒストグラム生成手段５１を有することである。ヒストグラム生成手段５１がピークを基準としてヒストグラムを生成すると、レベルの近似するピーク点のレベル付近ではヒストグラムが極大値を示す。このため極大値のピークをグループの分布の尺度として、ビート構造パラメータ算出手段４３がビート構造パラメータを算出する。
【００２０】
このような構成のテンポ抽出装置の動作について説明する。図１の仮テンポ算出手段１５は、ピーク位置検出手段１３で検出したピーク部分より、入力された音楽のテンポと考えられるテンポ候補を算出する。通常は、１小節単位、又は２拍（２分音符）単位、又は１拍（４分音符）単位でアクセントを伴って周期的に構成音が発音されることが多く、自己相関関数のピーク部分の最大値をもってテンポ候補を推定することができる。例えば、近年のポピュラー音楽では、２拍目と４拍目（即ち２拍周期）にアクセントとしてスネアドラムの音が発音されることが多く、そのような音楽信号では２拍周期に相当する時間部分でピークが最大となることが容易に予想できる。
【００２１】
図２の例では、ピーク２１がピーク部分の最大値となり、ピーク間の時間が１小節、２拍、又は１拍の時間長を表していると考えられる。ピーク２１の時間（１フレームを８６ｍｓとする周期１００フレーム）より、１分間の４分音符数であるテンポ候補を算出する。この結果、ピーク２１を１小節周期とすると２０７ＢＰＭ、２拍周期とすると１０３ＢＰＭ、１拍周期とすると５２ＢＰＭとなる。これら３つを図２における仮テンポとする。尚、ＢＰＭ（Beats Per Minute）は１分間の４分音符数を表す単位である。
【００２２】
テンポ判定手段１６は、ビート構造解析手段１４で求めたビート構造、例えばビート階層数を手がかりとして、仮テンポ算出手段１５で求めた仮テンポ候補から、入力された音楽信号に最も適すると考えられるテンポを判定する。ビート階層数は、テンポ判定のための重要なパラメータの１つであり、テンポが速い曲はビート階層数が少ない（概ね階層数は３以下）ことが、一般的なポピュラー音楽の分析結果から判っている。例えば仮テンポが２２０ＢＰＭ及び１０５ＢＰＭである楽曲において、ビート階層数が４である場合、その楽曲のテンポは１０５ＢＰＭの方がもっともらしいと判断できる。これは、２２０ＢＰＭを示すような速いテンポの楽曲において、階層の深い、即ち１６分音符の音が周期的且つ頻繁に出現することが少ないというポピュラー音楽の経験則と一致する。
【００２３】
図２の例では、階層１でピーク２１に近いレベルで、周期が倍のピーク２２が観測され、更に周期が半分毎にレベルが夫々下がった階層２〜階層４が出現している。このことから、階層１は２拍周期（２分音符）に相当する周期、同様に階層２は１拍周期（４分音符）、階層３は０. ５拍周期（８分音符）、階層４は０. ２５拍周期（１６分音符）のピークを表していると考えられる。
【００２４】
階層１を１小節周期と考えることもできるが、その場合は階層２以下のレベルが本例よりも大きくなる場合が多いことが、他の多数の音楽信号の自己相関関数のピークの類型より観察されている。このため、本例の場合は階層１を２拍周期とするのが最も適切と考えられる。そこで階層１、即ちピーク２１が２拍周期に相当する場合のテンポ候補である１０３ＢＰＭを、入力された音楽信号のテンポとして出力する。
【００２５】
なお、本実施の形態では、図２に示されるような自己相関関数を有する音楽信号を例にとって説明したが、他の自己相関関数パターンを持つ音楽信号に対しても適用することができる。
【００２６】
【発明の効果】
本発明のテンポ抽出装置によれば、入力された音楽の発音時系列信号の自己相関関数のパターンから音楽のビート構造を解析し、自己相関関数のピーク値とビート構造より最も適切と思われるテンポを推定することにより、入力される音楽の種類に依存することなく、また拍子数等入力される音楽に対する先験的な知識を必要とすることなく、正確にテンポを抽出することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態におけるテンポ抽出装置の構成を示すブロック図である。
【図２】本実施の形態によるテンポ抽出装置で求めた自己相関関数の例を示す説明図である。
【図３】本実施の形態におけるビート構造解析手段１４Ａの構成例を示すブロック図である。
【図４】本実施の形態におけるビート構造解析手段１４Ｂの構成例を示すブロック図である。
【図５】従来例のテンポ抽出装置の構成を示すブロック図である。
【符号の説明】
１１  発音時刻検出手段
１２  自己相関算出手段
１３  ピーク位置検出手段
１４，１４Ａ，１４Ｂ  ビート構造解析手段
１５  仮テンポ算出手段
１６  テンポ判定手段
２１，２２  階層１のピーク
４１  ソート手段
４２  グループ化手段
４３  ビート構造パラメータ算出手段
５１  ヒストグラム生成手段
【図１】
0003789326.tif 000003
【図２】
0003789326.tif 000004
【図３】
0003789326.tif 000005
【図４】
0003789326.tif 000006
【図５】
0003789326.tif 000007