(57)【要約】【課題】繰り返し部分を含む楽曲の構造を簡単な構成で適切に検出することができる楽曲構造検出装置及び方法を提供する。【解決手段】楽曲の和音の時系列変化を示す和音進行楽曲データ中の各和音の位置から連続する所定数の和音からなる部分楽曲データを生成し、部分楽曲データ各々と和音進行楽曲データとを和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とについて比較して複数の楽曲毎の類似度を算出し、部分楽曲データ毎に算出された類似度各々に応じて類似度が所定値より高いピーク値となった和音進行楽曲データ中の和音の位置を検出し、和音進行楽曲データ中の和音の位置毎に部分楽曲データ全てについて類似度が所定値より高いピーク値となった回数を算出し、その和音の位置毎の算出回数に応じて楽曲構造を示す検出出力を生成する。【選択図】  図１
2004184769.tif 000002
【特許請求の範囲】
【請求項１】
楽曲の和音の時系列変化を示す和音進行楽曲データに応じてその楽曲の構造を検出する楽曲構造検出装置であって、
前記和音進行楽曲データ中の各和音の位置から連続する所定数の和音からなる部分楽曲データを生成する部分楽曲データ生成手段と、
前記部分楽曲データ各々と前記和音進行楽曲データとを前記和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とについて比較して前記複数の楽曲毎の類似度を算出する比較手段と、
前記部分楽曲データ毎に前記比較手段によって算出された類似度各々に応じて類似度が所定値より高いピーク値となった前記和音進行楽曲データ中の和音の位置を検出する和音位置検出手段と、
前記和音進行楽曲データ中の和音の位置毎に前記部分楽曲データ全てについて前記類似度が前記所定値より高いピーク値となった回数を算出し、その和音の位置毎の算出回数に応じて楽曲構造を示す検出出力を生成する出力手段と、を備えたことを特徴とする楽曲構造検出装置。
【請求項２】
前記比較手段は、前記部分楽曲データ各々と前記和音進行楽曲データとを前記和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とに加えて和音変化前後の和音の時間的長さの比について比較して前記複数の楽曲毎の類似度を算出することを特徴とする請求項１記載の楽曲構造検出装置。
【請求項３】
前記比較手段は、前記部分楽曲データ各々と前記和音進行楽曲データとを時間的に前後に飛び越して比較することを特徴とする請求項１記載の楽曲構造検出装置。
【請求項４】
前記比較手段は、前記部分楽曲データ各々が示す和音変化後の和音と前記和音進行楽曲データが示す和音変化後の和音とが関係調にあるときその双方の和音変化後の和音を同一の和音とみなすことを特徴とする請求項１記載の楽曲構造検出装置。
【請求項５】
前記部分楽曲データ各々と前記和音進行楽曲データとは和音変化時点毎に２つの和音を第１及び第２和音候補として有し、
前記比較手段は、前記部分楽曲データ各々の第１及び第２和音候補と前記和音進行楽曲データの第１及び第２和音候補とを相互に比較することを特徴とする請求項１記載の楽曲構造検出装置。
【請求項６】
楽曲を示す入力オーディオ信号を所定の時間毎に周波数成分の大きさを示す周波数信号に変換する周波数変換手段と、
前記周波数変換手段によって得られた周波数信号から平均律の各音に対応した周波数成分を前記所定の時間毎に抽出する成分抽出手段と、
前記成分抽出手段によって抽出された各音に対応した周波数成分のうちのレベル合計が大となる３つの周波数成分の組によって各々形成される２つの和音を前記第１及び第２和音候補として検出する和音候補検出手段と、
前記和音候補検出手段によって繰り返し検出された前記第１及び第２和音候補各々の列を平滑化処理して前記蓄積手段に記憶させるべき前記和音進行楽曲データを生成する平滑化手段と、を備えたことを特徴とする請求項５記載の楽曲構造検出装置。
【請求項７】
前記比較手段は、前記和音進行楽曲データの終了部分に前記所定数の仮想和音だけの仮想データを付加して前記部分楽曲データ各々との比較に用いることを特徴とする請求項１記載の楽曲構造検出装置。
【請求項８】
前記出力手段は、前記和音進行楽曲データ中の和音の位置毎の算出回数が最高回数の部分の楽曲音を再生して出力する請求項１記載の楽曲構造検出装置。
【請求項９】
楽曲の和音の時系列変化を示す和音進行楽曲データに応じてその楽曲の構造を検出する楽曲構造検出方法であって、
前記和音進行楽曲データ中の各和音の位置から連続する所定数の和音からなる部分楽曲データを生成する部分楽曲データ生成ステップと、
前記部分楽曲データ各々と前記和音進行楽曲データとを前記和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とについて比較して前記複数の楽曲毎の類似度を算出する比較ステップと、
前記部分楽曲データ毎に前記比較ステップにおいて算出された類似度各々に応じて類似度が所定値より高いピーク値となった前記和音進行楽曲データ中の和音の位置を検出する和音位置検出ステップと、
前記和音進行楽曲データ中の和音の位置毎に前記部分楽曲データ全てについて前記類似度が前記所定値より高いピーク値となった回数を算出し、その和音の位置毎の算出回数に応じて楽曲構造を示す検出出力を生成する出力ステップと、を備えたことを特徴とする楽曲構造検出方法。
【請求項１０】
楽曲の和音の時系列変化を示す和音進行楽曲データに応じてその楽曲の構造を検出する方法を実行するコンピュータ読取可能なプログラムであって、
前記和音進行楽曲データ中の各和音の位置から連続する所定数の和音からなる部分楽曲データを生成する部分楽曲データ生成ステップと、
前記部分楽曲データ各々と前記和音進行楽曲データとを前記和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とについて比較して前記複数の楽曲毎の類似度を算出する比較ステップと、
前記部分楽曲データ毎に前記比較ステップにおいて算出された類似度各々に応じて類似度が所定値より高いピーク値となった前記和音進行楽曲データ中の和音の位置を検出する和音位置検出ステップと、
前記和音進行楽曲データ中の和音の位置毎に前記部分楽曲データ全てについて前記類似度が前記所定値より高いピーク値となった回数を算出し、その和音の位置毎の算出回数に応じて楽曲構造を示す検出出力を生成する出力ステップと、を備えたことを特徴とするプログラム。
【発明の詳細な説明】
【０００１】
【発明が属する技術分野】
本発明は、楽曲の和音の時系列変化を示すデータに応じてその楽曲の構造を検出する楽曲構造検出装置及び方法に関する。
【０００２】
【従来の技術】
ポピュラー音楽の楽曲においては、フレーズ（楽句）がイントロ、Ａメロ、Ｂメロ、サビのように表現され、Ａメロ、Ｂメロやサビの各フレーズは楽曲中で通常何回か繰り返される。楽曲中のいわゆる盛り上がり部分であるサビのフレーズは、ラジオやテレビの音楽番組やコマーシャルで最も演奏されるところである。このようなフレーズは放送する際にその楽曲音を実際に聴取して判断することが一般的である。
【０００３】
【発明が解決しようとする課題】
ところで、楽曲のサビ等のフレーズがどのように繰り返されているかなどの楽曲全体の構造を知ることができれば、サビ部分に限らず、他の繰り返しフレーズ部分を容易に選択的に演奏することができる。しかしながら、従来、楽曲全体の構造を自動的に検出する装置はなく、上記したように利用者が実際に聴取して判断するしかなかった。
【０００４】
そこで、本発明が解決しようとする課題には、上記の問題点が一例として挙げられ、繰り返し部分を含む楽曲の構造を簡単な構成で適切に検出することができる楽曲構造検出装置及び方法を提供することが本発明の目的である。
【０００５】
【課題を解決するための手段】
本発明の楽曲構造検出装置は、楽曲の和音の時系列変化を示す和音進行楽曲データに応じてその楽曲の構造を検出する楽曲構造検出装置であって、前記和音進行楽曲データ中の各和音の位置から連続する所定数の和音からなる部分楽曲データを生成する部分楽曲データ生成手段と、前記部分楽曲データ各々と前記和音進行楽曲データとを前記和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とについて比較して前記複数の楽曲毎の類似度を算出する比較手段と、前記部分楽曲データ毎に前記比較手段によって算出された類似度各々に応じて類似度が所定値より高いピーク値となった前記和音進行楽曲データ中の和音の位置を検出する和音位置検出手段と、前記和音進行楽曲データ中の和音の位置毎に前記部分楽曲データ全てについて前記類似度が前記所定値より高いピーク値となった回数を算出し、その和音の位置毎の算出回数に応じて楽曲構造を示す検出出力を生成する出力手段と、を備えたことを特徴としている。
【０００６】
本発明の楽曲構造検出装置は、楽曲の和音の時系列変化を示す和音進行楽曲データに応じてその楽曲の構造を検出する楽曲構造検出方法であって、前記和音進行楽曲データ中の各和音の位置から連続する所定数の和音からなる部分楽曲データを生成する部分楽曲データ生成ステップと、前記部分楽曲データ各々と前記和音進行楽曲データとを前記和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とについて比較して前記複数の楽曲毎の類似度を算出する比較ステップと、前記部分楽曲データ毎に前記比較ステップにおいて算出された類似度各々に応じて類似度が所定値より高いピーク値となった前記和音進行楽曲データ中の和音の位置を検出する和音位置検出ステップと、前記和音進行楽曲データ中の和音の位置毎に前記部分楽曲データ全てについて前記類似度が前記所定値より高いピーク値となった回数を算出し、その和音の位置毎の算出回数に応じて楽曲構造を示す検出出力を生成する出力ステップと、を備えたことを特徴としている。
【０００７】
本発明のプログラムは、楽曲の和音の時系列変化を示す和音進行楽曲データに応じてその楽曲の構造を検出する方法を実行するコンピュータ読取可能なプログラムであって、前記和音進行楽曲データ中の各和音の位置から連続する所定数の和音からなる部分楽曲データを生成する部分楽曲データ生成ステップと、前記部分楽曲データ各々と前記和音進行楽曲データとを前記和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とについて比較して前記複数の楽曲毎の類似度を算出する比較ステップと、前記部分楽曲データ毎に前記比較ステップにおいて算出された類似度各々に応じて類似度が所定値より高いピーク値となった前記和音進行楽曲データ中の和音の位置を検出する和音位置検出ステップと、前記和音進行楽曲データ中の和音の位置毎に前記部分楽曲データ全てについて前記類似度が前記所定値より高いピーク値となった回数を算出し、その和音の位置毎の算出回数に応じて楽曲構造を示す検出出力を生成する出力ステップと、を備えたことを特徴としている。
【０００８】
【発明の実施の形態】
以下、本発明の実施例を図面を参照しつつ詳細に説明する。
図１は本発明を適用した楽曲処理システムを示している。この楽曲処理システムは、楽曲入力装置１、操作入力装置２、和音解析装置３、データ蓄積装置４，５、一時記憶メモリ６、和音進行比較装置７、繰り返し構造検出装置８、表示装置９、楽曲再生装置１０、ディジタル／アナログ変換装置１１及びスピーカ１２を備えている。
【０００９】
楽曲入力装置１は和音解析装置３及びデータ蓄積装置５に接続され、ディジタル化されたオーディオ信号（例えば、ＰＣＭデータ）を再生する装置であり、例えば、ＣＤプレーヤである。操作入力装置２は本システムに対してユーザが操作してデータや指令を入力するための装置である。操作入力装置２の出力は和音解析装置３、和音進行比較装置７、繰り返し構造検出装置８及び楽曲再生装置１０に接続されている。データ蓄積装置４には楽曲入力装置１から供給された楽曲データ（ＰＣＭデータ）がファイルとして記憶される。
【００１０】
和音解析装置３は、供給された楽曲データの和音を後述する和音解析動作によって解析する。一時記憶メモリ６には和音解析装置３によって解析された楽曲データの各和音が第１及び第２和音候補として一時的に記憶される。データ蓄積装置５には和音解析装置３によって解析されて和音進行楽曲データが楽曲毎にファイルとして記憶される。
【００１１】
和音進行比較装置７は、データ蓄積装置５に記憶された和音進行楽曲データとその和音進行楽曲データ中の一部分である部分楽曲データとを後述するように比較して類似度を算出する。繰り返し構造検出装置８は和音進行比較装置７の比較結果を用いて楽曲の繰り返し部分を検出する。
表示装置９には繰り返し構造検出装置８によって検出された繰り返し部分を含む楽曲構造が表示される。
【００１２】
楽曲再生装置１０は、繰り返し構造検出装置８によって検出された繰り返し部分の楽曲データをデータ蓄積装置４から読み出して再生し、ディジタルオーディオ信号として順次出力する。ディジタル／アナログ変換装置１１は楽曲再生装置１０によって再生されたディジタルオーディオ信号をアナログオーディオ信号に変換してスピーカ１２に供給する。
【００１３】
和音解析装置３、和音進行比較装置７、繰り返し構造検出装置８及び楽曲再生装置１０各々は操作入力装置２からの指令に応じて動作する。
次に、かかる構成の楽曲処理システムの動作について説明する。
ここでは楽曲入力装置１から出力される楽曲音を示すディジタルオーディオ信号が和音解析装置３に供給されたとする。
【００１４】
上記した和音解析動作としては前処理、本処理及び後処理がある。和音解析装置３は前処理として周波数誤差検出動作を行う。
周波数誤差検出動作においては、図２に示すように、時間変数Ｔ及び帯域データＦ(Ｎ)が０に初期化され、更に変数Ｎの範囲が−３〜３の如く初期設定される（ステップＳ１）。入力ディジタル信号に対してフーリエ変換によって周波数変換を０.２秒間隔で行うことによって周波数情報ｆ(Ｔ)が得られる（ステップＳ２）。
【００１５】
今回のｆ(Ｔ)、前回のｆ(Ｔ−１)及び前々回のｆ(Ｔ−２)を用いて移動平均処理が行われる（ステップＳ３）。この移動平均処理では、０.６秒以内では和音が変化することが少ないという仮定で過去２回分の周波数情報が用いられる。移動平均処理は次式によって演算される。
ｆ(Ｔ)＝(ｆ(Ｔ)＋ｆ(Ｔ−１)／２.０＋ｆ(Ｔ−２)／３.０)／３.０……(1)
ステップＳ３の実行後、変数Ｎが−３に設定され（ステップＳ４）、その変数Ｎは４より小であるか否かが判別される（ステップＳ５）。Ｎ＜４の場合には、移動平均処理後の周波数情報ｆ(Ｔ)から周波数成分ｆ１(Ｔ)〜ｆ５(Ｔ)が各々抽出される（ステップＳ６〜Ｓ１０）。周波数成分ｆ１(Ｔ)〜ｆ５(Ｔ)は、(１１０.０＋２×Ｎ)Hzを基本周波数とした５オクターブ分の平均律の１２音のものである。１２音はＡ，Ａ＃，Ｂ，Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃である。図３はＡ音を１.０とした場合の１２音及び１オクターブ高いＡ音各々の周波数比を示している。ステップＳ６のｆ１(Ｔ)はＡ音を(１１０.０＋２×Ｎ)Hzとし、ステップＳ７のｆ２(Ｔ)はＡ音を２×(１１０.０＋２×Ｎ)Hzとし、ステップＳ８のｆ３(Ｔ)はＡ音を４×(１１０.０＋２×Ｎ)Hzとし、ステップＳ９のｆ４(Ｔ)はＡ音を８×(１１０.０＋２×Ｎ)Hzとし、ステップＳ１０のｆ５(Ｔ)はＡ音を１６×(１１０.０＋２×Ｎ)Hzとしている。
【００１６】
ステップＳ６〜Ｓ１０の実行後、周波数成分ｆ１(Ｔ)〜ｆ５(Ｔ)は１オクターブ分の帯域データＦ'(Ｔ)に変換される（ステップＳ１１）。帯域データＦ'(Ｔ)は、
Ｆ'(Ｔ)＝ｆ１(Ｔ)×５+ｆ２(Ｔ)×４+ｆ３(Ｔ)×３+ｆ４(Ｔ)×２+ｆ５(Ｔ)……(2)
の如く表される。すなわち、周波数成分ｆ１(Ｔ)〜ｆ５(Ｔ)各々は個別に重み付けされた後、加算される。１オクターブの帯域データＦ'(Ｔ)は、帯域データＦ(Ｎ)に加算される（ステップＳ１２）。その後、変数Ｎには１が加算され（ステップＳ１３）、そして、ステップＳ５が再度実行される。
【００１７】
ステップＳ６〜Ｓ１３の動作は、ステップＳ５においてＮが４より小、すなわち−３〜＋３の範囲であると判断される限り繰り返される。これによって音成分Ｆ(Ｎ)は−３〜＋３の範囲の音程誤差を含む１オクターブ分の周波数成分となる。
ステップＳ５においてＮ≧４と判別された場合には、変数Ｔが所定値Ｍより小であるか否かが判別される（ステップＳ１４）。Ｔ＜Ｍの場合には、変数Ｔに１が加算され（ステップＳ１５）、ステップＳ２が再度実行される。Ｍ回分の周波数変換による周波数情報ｆ(Ｔ)に対して変数Ｎ毎の帯域データＦ(Ｎ)が算出される。
【００１８】
ステップＳ１４においてＴ≧Ｍと判別された場合には、変数Ｎ毎の１オクターブ分の帯域データＦ(Ｎ)のうちの各周波数成分の総和が最大値となるＦ(Ｎ)が検出され、その検出Ｆ(Ｎ)のＮが誤差値Ｘとして設定される（ステップＳ１６）。この前処理によって誤差値Ｘを求めることによってオーケストラの演奏音等の楽曲音全体の音程が平均律と一定の差をもっている場合に、それを補償して後述の和音解析の本処理を行うことができる。
【００１９】
前処理の周波数誤差検出動作が終了すると、和音解析動作の本処理が行われる。なお、誤差値Ｘが既に分かっている場合やその誤差を無視できる場合には、前処理は省略しても良い。本処理では楽曲全部について和音解析が行われるために楽曲の最初の部分から入力ディジタル信号は和音解析装置３に供給されるとする。
【００２０】
本処理おいては、図４に示すように、入力ディジタル信号に対してフーリエ変換によって周波数変換を０.２秒間隔で行うことによって周波数情報ｆ(Ｔ)が得られる（ステップＳ２１）。このステップＳ２１が周波数変換手段に対応する。そして、今回のｆ(Ｔ)、前回のｆ(Ｔ−１)及び前々回のｆ(Ｔ−２)を用いて移動平均処理が行われる（ステップＳ２２）。ステップＳ２１及びＳ２２は上記したステップＳ２及びＳ３と同様に実行される。
【００２１】
ステップＳ２２の実行後、移動平均処理後の周波数情報ｆ(Ｔ)から周波数成分ｆ１(Ｔ)〜ｆ５(Ｔ)が各々抽出される（ステップＳ２３〜Ｓ２７）。上記したステップＳ６〜Ｓ１０と同様に、周波数成分ｆ１(Ｔ)〜ｆ５(Ｔ)は、(１１０.０＋２×Ｎ)Hzを基本周波数とした５オクターブ分の平均律の１２音Ａ，Ａ＃，Ｂ，Ｃ，Ｃ＃，Ｄ，Ｄ＃，Ｅ，Ｆ，Ｆ＃，Ｇ，Ｇ＃である。ステップＳ２３のｆ１(Ｔ)はＡ音を(１１０.０＋２×Ｎ)Hzとし、ステップＳ２４のｆ２(Ｔ)はＡ音を２×(１１０.０＋２×Ｎ)Hzとし、ステップＳ２５のｆ３(Ｔ)はＡ音を４×(１１０.０＋２×Ｎ)Hzとし、ステップＳ２６のｆ４(Ｔ)はＡ音を８×(１１０.０＋２×Ｎ)Hzとし、ステップＳ２７のｆ５(Ｔ)はＡ音を１６×(１１０.０＋２×Ｎ)Hzとしている。ここで、ＮはステップＳ１６で設定されたＸである。
【００２２】
ステップＳ２３〜Ｓ２７の実行後、周波数成分ｆ１(Ｔ)〜ｆ５(Ｔ)は１オクターブ分の帯域データＦ'(Ｔ)に変換される（ステップＳ２８）。このステップＳ２８も上記のステップＳ１１と同様に式(2)を用いて実行される。帯域データＦ'(Ｔ)は各音成分を含むことになる。ステップＳ２３〜Ｓ２８が成分抽出手段に相当する。
【００２３】
ステップＳ２８の実行後、帯域データＦ'(Ｔ)中の各音成分のうちの強度レベルが大きいものから６音が候補として選択され（ステップＳ２９）、その６音候補から２つの和音Ｍ１，Ｍ２が作成される（ステップＳ３０）。候補の６音のうちから１つの音を根音（ルート）として３音からなる和音が作成される。すなわち6Ｃ3通りの組み合わせの和音が考慮される。各和音を構成する３音のレベルが加算され、その加算結果の値が最大となった和音が第１和音候補Ｍ１とされ、加算結果の値が２番目に大きい和音が第２和音候補Ｍ２とされる。
【００２４】
帯域データＦ'(Ｔ)の各音成分が図５に示すように１２音に対する強度レベルを示す場合には、ステップＳ２９ではＡ，Ｅ，Ｃ，Ｇ，Ｂ，Ｄの６音が選択される。その６音Ａ，Ｅ，Ｃ，Ｇ，Ｂ，Ｄのうちの３音から作成される３和音は、(Ａ，Ｃ，Ｅ)からなる和音Ａｍ、(音Ｃ，Ｅ，Ｇ)からなる和音Ｃ、(音Ｅ，Ｂ，Ｇ)からなる和音Ｅｍ、(音Ｇ，Ｂ，Ｄ)からなる和音Ｇ、……の如くである。和音Ａｍ(音Ａ，Ｃ，Ｅ)の合計強度レベルは１２、和音Ｃ(音Ｃ，Ｅ，Ｇ)の合計強度レベルは９、和音Ｅｍ(音Ｅ，Ｂ，Ｇ)の合計強度レベルは７、和音Ｇ(音Ｇ，Ｂ，Ｄ)の合計強度レベルは４である。よって、ステップＳ３０では和音Ａｍの合計強度レベル１２が最大となるので、第１和音候補Ｍ１として和音Ａｍが設定され、和音Ｃの合計強度レベル７が２番目に大きいので、第２和音候補Ｍ２として和音Ｃが設定される。
【００２５】
また、帯域データＦ'(Ｔ)の各音成分が図６に示すように１２音に対する強度レベルを示す場合には、ステップＳ２９ではＣ，Ｇ，Ａ，Ｅ，Ｂ，Ｄの６音が選択される。その６音Ｃ，Ｇ，Ａ，Ｅ，Ｂ，Ｄのうちの３音から作成される３和音は、(音Ｃ，Ｅ，Ｇ)からなる和音Ｃ、(Ａ，Ｃ，Ｅ)からなる和音Ａｍ、(音Ｅ，Ｂ，Ｇ)からなる和音Ｅｍ、(音Ｇ，Ｂ，Ｄ)からなる和音Ｇ、……の如くである。和音Ｃ(音Ｃ，Ｅ，Ｇ)の合計強度レベルは１１、和音Ａｍ(音Ａ，Ｃ，Ｅ)の合計強度レベルは１０、和音Ｅｍ(音Ｅ，Ｂ，Ｇ)の合計強度レベルは７、和音Ｇ(音Ｇ，Ｂ，Ｄ)の合計強度レベルは６である。よって、ステップＳ３０では和音Ｃの合計強度レベル１１が最大となるので、第１和音候補Ｍ１として和音Ｃが設定され、和音Ａｍの合計強度レベル１０が２番目に大きいので、第２和音候補Ｍ２として和音Ａｍが設定される。
【００２６】
和音を構成する音は３音に限らず、セブンスやディミニッシュセブンス等の４音もある。４音からなる和音に対しては図７に示すように３音からなる２つ以上の和音に分類されるとしている。よって、４音からなる和音に対しても３音からなる和音と同様に、帯域データＦ'(Ｔ)の各音成分の強度レベルに応じて２つの和音候補を設定することができる。
【００２７】
ステップＳ３０の実行後、ステップＳ３０において設定された和音候補数があるか否かが判別される（ステップＳ３１）。ステップＳ３０では少なくとも３つの音を選択するだけの強度レベルに差がない場合には和音候補が全く設定されないことになるので、ステップＳ３１の判別が行われる。和音候補数＞０である場合には、更に、その和音候補数が１より大であるか否かが判別される（ステップＳ３２）。
【００２８】
ステップＳ３１において和音候補数＝０と判別された場合には前回Ｔ−１（約０.２秒前）の本処理において設定された和音候補Ｍ１，Ｍ２が今回の和音候補Ｍ１，Ｍ２として設定される（ステップＳ３３）。ステップＳ３２において和音候補数＝１と判別された場合には今回のステップＳ３０の実行では第１和音候補Ｍ１だけが設定されたので、第２和音候補Ｍ２は第１和音候補Ｍ１と同一の和音に設定される（ステップＳ３４）。ステップＳ２９〜Ｓ３４が和音候補検出手段に相当する。
【００２９】
ステップＳ３２において和音候補数＞１と判別された場合には今回のステップＳ３０の実行では第１及び第２和音候補Ｍ１，Ｍ２の両方が設定されたので、時刻、第１及び第２和音候補Ｍ１，Ｍ２が一時記憶メモリ６に記憶される（ステップＳ３５）。一時記憶メモリ６には図８に示すように時刻、第１和音候補Ｍ１、第２和音候補Ｍ２が１組となって記憶される。時刻は０.２秒毎に増加するＴで表される本処理実行回数である。そのＴの順に第１及び第２和音候補Ｍ１，Ｍ２が記憶される。
【００３０】
具体的には、一時記憶メモリ６に各和音候補を図８に示したように１バイトで記憶させるために、基本音（根音）とその属性との組み合わせが用いられる。基本音には平均律の１２音が用いられ、属性にはメジャー｛４，３｝、マイナー｛３，４｝、セブンス候補｛４，６｝及びディミニッシュセブンス（ｄｉｍ７）候補｛３，３｝の和音の種類が用いられる。｛ ｝内は半音を１とした場合の３音の差である。本来、セブンス候補は｛４，３，３｝及びディミニッシュセブンス（ｄｉｍ７）候補｛３，３，３｝であるが、３音で示すために上記のように表示している。
【００３１】
基本音の１２音は図９(a)に示すように１６ビット（１６進表記）で表され、属性の和音の種類は同様に図９(b)に示すように１６ビット（１６進表記）で表される。その基本音の下位４ビットと属性の下位４ビットがその順に連結されて図９(c)に示すように８ビット（１バイト）として和音候補として用いられる。ステップＳ３５はステップＳ３３又はＳ３４を実行した場合にもその直後に実行される。
【００３２】
ステップＳ３５の実行後、楽曲が終了したか否かが判別される（ステップＳ３６）。例えば、ディジタルオーディオ信号の入力がなくなった場合、或いは操作入力装置２からの楽曲の終了を示す操作入力があった場合には楽曲が終了したと判断される。これによって本処理が終了する。
楽曲の終了が判断されるまでは変数Ｔに１が加算され（ステップＳ３７）、ステップＳ２１が再度実行される。ステップＳ２１は上記したように０.２秒間隔で実行され、前回の実行時から０.２秒が経過して再度実行される。
【００３３】
後処理においては、図１０に示すように、一時記憶メモリ６から全ての第１及び第２和音候補がＭ１(0)〜Ｍ１(R)及びＭ２(0)〜Ｍ２(R)として読み出される（ステップＳ４１）。０は開始時刻であり、開始時刻の第１及び第２和音候補がＭ１(0)及びＭ２(0)である。Ｒは最終時刻であり、最終時刻の第１及び第２和音候補がＭ１(R)及びＭ２(R)である。読み出された第１和音候補Ｍ１(0)〜Ｍ１(R)及び第２和音候補Ｍ２(0)〜Ｍ２(R)について平滑化が行われる（ステップＳ４２）。この平滑化は和音の変化時点とは関係なく０.２秒間隔で和音候補を検出したことにより和音候補に含まれるノイズによる誤差を除去するために行われる。平滑化の具体的方法としては、３つの連続する第１和音候補Ｍ１(t−１)，Ｍ１(t)，Ｍ１(t＋１)についてＭ１(t−１)≠Ｍ１(t)かつＭ１(t)≠Ｍ１(t＋１)の関係が成立するか否かが判別され、その関係が成立する場合には、Ｍ１(t＋１)にＭ１(t)は等しくされる。この判別は第１和音候補毎に行われる。第２和音候補についても同様の方法により平滑化は行われる。なお、Ｍ１(t＋１)にＭ１(t)を等しくするのではなく、逆に、Ｍ１(t＋１)をＭ１(t)に等しくしても良い。
【００３４】
平滑化後、第１及び第２和音候補の入れ替え処理が行われる（ステップＳ４３）。一般的に０．６秒のような短い期間には和音が変化する可能性は低い。しかしながら、信号入力段の周波数特性及び信号入力時のノイズによって帯域データＦ'(Ｔ)中の各音成分の周波数が変動することによって第１及び第２和音候補が０．６秒以内に入れ替わることが起きることがあり、これに対処するためにステップＳ４３は行われる。第１及び第２和音候補が入れ替えの具体的方法としては、５つの連続する第１和音候補Ｍ１(t−２)，Ｍ１(t−１)，Ｍ１(t)，Ｍ１(t＋１)，Ｍ１(t＋２)及びそれに対応する５つの連続する第２和音候補Ｍ２(t−２)，Ｍ２(t−１)，Ｍ２(t)，Ｍ２(t＋１)，Ｍ２(t＋２)についての次の如き判別が実行される。すなわち、Ｍ１(t−２)＝Ｍ１(t＋２)，Ｍ２(t−２)＝Ｍ２(t＋２)，Ｍ１(t−１)＝Ｍ１(t)＝Ｍ１(t＋１)＝Ｍ２(t−２)及びＭ２(t−１)＝Ｍ２(t)＝Ｍ２(t＋１)＝Ｍ１(t−２)の関係が成立するか否かが判別される。この関係が成立する場合には、Ｍ１(t−１)＝Ｍ１(t)＝Ｍ１(t＋１)＝Ｍ１(t−２)及びＭ２(t−１)＝Ｍ２(t)＝Ｍ２(t＋１)＝Ｍ２(t−２)が定められ、Ｍ１(t−２)とＭ２(t−２)と間で和音の入れ替えが行われる。なお、Ｍ１(t−２)とＭ２(t−２)との間で和音の入れ替えに代えてＭ１(t＋２)とＭ２(t＋２)との間で和音の入れ替えを行っても良い。また、Ｍ１(t−２)＝Ｍ１(t＋１)，Ｍ２(t−２)＝Ｍ２(t＋１)，Ｍ１(t−１)＝Ｍ１(t)＝Ｍ１(t＋１)＝Ｍ２(t−２)及びＭ２(t−１)＝Ｍ２(t)＝Ｍ２(t＋１)＝Ｍ１(t−２)の関係が成立するか否かが判別される。この関係が成立する場合には、Ｍ１(t−１)＝Ｍ１(t)＝Ｍ１(t−２)及びＭ２(t−１)＝Ｍ２(t)＝Ｍ２(t−２)が定められ、Ｍ１(t−２)とＭ２(t−２)との間で和音の入れ替えが行われる。なお、Ｍ１(t−２)とＭ２(t−２)との間で和音の入れ替えに代えてＭ１(t＋１)とＭ２(t＋１)との間で和音の入れ替えを行っても良い。
【００３５】
ステップＳ４１において読み出された第１和音候補Ｍ１(0)〜Ｍ１(R)及び第２和音候補Ｍ２(0)〜Ｍ２(R)の各和音が、例えば、図１１に示すように時間経過と共に変化する場合には、ステップＳ４２の平均化を行うことによって図１２に示すように修正される。更に、ステップＳ４３の和音の入れ替えを行うことによって第１及び第２和音候補の和音の変化は図１３に示すように修正される。なお、図１１〜図１３は和音の時間変化を折れ線グラフとして示しており、縦軸は和音の種類に対応した位置となっている。
【００３６】
ステップＳ４３の和音の入れ替え後の第１和音候補Ｍ１(0)〜Ｍ１(R)のうちの和音が変化した時点ｔのＭ１(t)及び第２和音候補Ｍ２(0)〜Ｍ２(R)のうちの和音が変化した時点ｔのＭ２(t)が各々検出され（ステップＳ４４）、その検出された時点ｔ（４バイト）及び和音（４バイト）が第１及び第２和音候補毎にデータ蓄積装置５に記憶される（ステップＳ４５）。ステップＳ４５で記憶される１楽曲分のデータが和音進行楽曲データである。かかるステップＳ４１〜Ｓ４５が平滑化手段に相当する。
【００３７】
ステップＳ４３の和音の入れ替え後の第１和音候補Ｍ１(0)〜Ｍ１(R)及び第２和音候補Ｍ２(0)〜Ｍ２(R)の和音が図１４(a)に示すように時間経過と共に変化する場合には、変化時点の時刻と和音とがデータとして抽出される。図１４(b)が第１和音候補の変化時点のデータ内容であり、Ｆ，Ｇ，Ｄ，Ｂ♭，Ｆが和音であり、それらは１６進データとして０ｘ０８，０ｘ０Ａ，０ｘ０５，０ｘ０１，０ｘ０８と表される。変化時点ｔの時刻はＴ１(0)，Ｔ１(1)，Ｔ１(2)，Ｔ１(3)，Ｔ１(4)である。また、図１４(c)が第２和音候補の変化時点のデータ内容であり、Ｃ，Ｂ♭，Ｆ＃ｍ，Ｂ♭，Ｃが和音であり、それらは１６進データとして０ｘ０３，０ｘ０１，０ｘ２９，０ｘ０１，０ｘ０３と表される。変化時点ｔの時刻はＴ２(0)，Ｔ２(1)，Ｔ２(2)，Ｔ２(3)，Ｔ２(4)である。図１４(b)及び図１４(c)に示したデータ内容は楽曲の識別情報と共にデータ蓄積装置５には、ステップＳ４５においては図１４(d)に示すような形式で１ファイルとして記憶される。
【００３８】
異なる楽曲音を示すオーディオ信号について上記した和音分析動作を繰り返すことによりデータ蓄積装置５には複数の楽曲毎のファイルとして和音進行楽曲データが蓄積されることになる。なお、データ蓄積装置４にはデータ蓄積装置５の和音進行楽曲データに対応したＰＣＭ信号からなる楽曲データが蓄積される。
ステップＳ４４において第１和音候補のうちの和音が変化した時点の第１和音候補及び第２和音候補のうちの和音が変化した時点の第２和音候補が各々検出され、それが最終的な和音進行楽曲データとなるので、ＭＰ３のような圧縮データに比べても１楽曲当たりの容量を小さくすることができ、また、各楽曲のデータを高速処理することができる。
【００３９】
また、データ蓄積装置５に書き込まれた和音進行楽曲データは、実際の楽曲と時間的に同期した和音データとなるので、第１和音候補のみ、或いは第１和音候補と第２和音候補との論理和出力を用いて実際に和音を楽曲再生装置１０によって生成すれば、楽曲の伴奏が可能となる。
次に、データ蓄積装置５に和音進行楽曲データとして蓄積された楽曲の構造を検出する楽曲構造検出動作について説明する。楽曲構造検出動作は和音進行比較装置７及び繰り返し構造検出装置８によって実行される。
【００４０】
楽曲構造検出動作においては、図１５に示すように、楽曲構造検出対象の楽曲の第１和音候補Ｍ１(0)〜Ｍ１(a-1)及び第２和音候補Ｍ２(0)〜Ｍ２(b-1)が蓄積手段であるデータ蓄積装置５から読み出される（ステップＳ５１）。その楽曲構造検出対象の楽曲は例えば、操作入力装置２の操作によって指定される。ａは第１和音候補の総数であり、ｂは第２和音候補の総数である。また、仮想データとして各々Ｋ個の第１和音候補Ｍ１(a)〜Ｍ１(a+K-1)及び第２和音候補Ｍ２(b)〜Ｍ２(b+K-1)が用意される（ステップＳ５２）。ここで、ａ＜ｂのとき仮想データの第１及び第２和音候補各々の和音総数Ｐはａに等しく、ａ≧ｂのとき和音総数Ｐはｂに等しい。仮想データは第１和音候補Ｍ１(0)〜Ｍ１(a-1)及び第２和音候補Ｍ２(0)〜Ｍ２(b-1)の後に付加される。
【００４１】
読み出された第１和音候補Ｍ１(0)〜Ｍ１(P-1)に対して第１和音差分値ＭＲ１(0)〜ＭＲ１(P-2)が計算される（ステップＳ５３）。第１和音差分値は、ＭＲ１(0)＝Ｍ１(1)−Ｍ１(0)，ＭＲ１(1)＝Ｍ１(2)−Ｍ１(1)，……，ＭＲ１(P-2)＝Ｍ１(P-1)−Ｍ１(P-2)の如く計算される。この計算では第１和音差分値ＭＲ１(0)〜ＭＲ１(P-2)各々が０より小であるか否かを判別し、０より小の第１和音差分値には１２を加算することが行われる。また、第１和音差分値ＭＲ１(0)〜ＭＲ１(P-2)各々には和音変化後の和音属性ＭＡ１(0)〜ＭＡ１(P-2)が付加される。読み出された第２和音候補Ｍ２(0)〜Ｍ２(P-1)に対しても第２和音差分値ＭＲ２(0)〜ＭＲ２(P-2)が計算される（ステップＳ５４）。第２和音差分値は、ＭＲ２(0)＝Ｍ２(1)−Ｍ２(0)，ＭＲ２(1)＝Ｍ２(2)−Ｍ２(1)，……，ＭＲ２(P-2)＝Ｍ２(P-1)−Ｍ２(P-2)の如く計算される。この計算においても第２和音差分値ＭＲ２(0)〜ＭＲ２(P-2)各々が０より小であるか否かを判別し、０より小の第２和音差分値には１２を加算することが行われる。また、第２和音差分値ＭＲ２(0)〜ＭＲ２(P-2)各々には和音変化後の和音属性ＭＡ２(0)〜ＭＡ２(P-2)が付加される。なお、和音属性ＭＡ１(0)〜ＭＡ１(P-2)，ＭＡ２(0)〜ＭＡ２(P-2)には図９(b)に示した数値が用いられる。
【００４２】
図１６はステップＳ５３及びＳ５４の動作例を説明している。すなわち、和音候補がＡｍ７，Ｄｍ，Ｃ，Ｆ，Ｅｍ，Ｆ，Ｂ♭＃の列である場合に、和音差分値は５，１０，５，１１，１，５となり、和音変化後の和音属性は０ｘ０２，０ｘ００，０ｘ００，０ｘ０２，０ｘ００，０ｘ００となる。なお、和音変化後の和音属性がセブンスの場合にはそれに代えてメジャーとしている。セブンスを用いてもそれの比較演算結果への影響が小さいので、演算量を削減するためである。
【００４３】
ステップＳ５４の実行後、カウンタ値ｃが０に初期化される（ステップＳ５５）。そして、第１和音候補Ｍ１(0)〜Ｍ１(P-1)及び第２和音候補Ｍ２(0)〜Ｍ２(P-1)各々のうちのｃ番目からＫ個（例えば、２０）の和音候補（部分楽曲データ）が抽出される（ステップＳ５６）。すなわち、第１和音候補Ｍ１(c)〜Ｍ１(c+K-1)及び第２和音候補Ｍ２(c)〜Ｍ２(c+K-1)が抽出される。Ｍ１(c)〜Ｍ１(c+K-1)＝Ｕ１(0)〜Ｕ１(K-1)とし、Ｍ２(c)〜Ｍ２(c+K-1)＝Ｕ２(0)〜Ｕ２(K-1)とする。図１７は処理対象の和音進行データのＭ１(0)〜Ｍ１(P-1)，Ｍ２(0)〜Ｍ２１(P-1)及び仮想データに対するＵ１(0)〜Ｕ１(K-1)，Ｕ２(0)〜Ｕ２(K-1)の関係を示している。
【００４４】
ステップＳ５６の実行後、部分楽曲データの第１和音候補Ｕ１(0)〜Ｕ１(K-1)に対して第１和音差分値ＵＲ１(0)〜ＵＲ１(K-2)が計算される（ステップＳ５７）。ステップＳ５７の第１和音差分値は、ＵＲ１(0)＝Ｕ１(1)−Ｕ１(0)，ＵＲ１(1)＝Ｕ１(2)−Ｕ１(1)，……，ＵＲ１(K-2)＝Ｕ１(K-1)−Ｕ１(K-2)の如く計算される。この計算では第１和音差分値ＵＲ１(0)〜ＵＲ１(K-2)各々が０より小であるか否かを判別し、０より小の第１和音差分値には１２を加算することが行われる。また、第１和音差分値ＵＲ１(0)〜ＵＲ１(K-2)各々には和音変化後の和音属性ＵＡ１(0)〜ＵＡ１(K-2)が付加される。また、部分楽曲データの第２和音候補Ｕ２(0)〜Ｕ２(K-1)に対しても第２和音差分値ＵＲ２(0)〜ＵＲ２(K-2)が計算される（ステップＳ５８）。第２和音差分値は、ＵＲ２(0)＝Ｕ２(1)−Ｕ２(0)，ＵＲ２(1)＝Ｕ２(2)−Ｕ２(1)，……，ＵＲ２(K-2)＝Ｕ２(K-1)−Ｕ２(K-2)の如く計算される。この計算においても第２和音差分値ＵＲ２(0)〜ＵＲ２(K-2)各々が０より小であるか否かを判別し、０より小の第２和音差分値には１２を加算することが行われる。また、第２和音差分値ＵＲ２(0)〜ＵＲ２(K-2)各々には和音変化後の和音属性ＵＡ２(0)〜ＵＡ２(K-2)が付加される。
【００４５】
ステップＳ５３にて得られた第１和音差分値ＭＲ１(0)〜ＭＲ１(K-2)及び和音属性ＭＡ１(0)〜ＭＡ１(K-2)と、ステップＳ５７にて得られたｃ番目からＫ個の第１和音候補ＵＲ１(0)〜ＵＲ１(K-2)及び和音属性ＵＡ１(0)〜ＵＡ１(K-2)と、ステップＳ５８にて得られたｃ番目からＫ個の第２和音候補ＵＲ２(0)〜ＵＲ２(K-2)及び和音属性ＵＡ２(0)〜ＵＡ２(K-2)とに応じて相互相関演算が行われる（ステップＳ５９）。相互相関演算では相関係数ＣＯＲ(t)が次式(3)の如く算出される。相関係数ＣＯＲ(t)が小さいほど類似姓が高いことを示す。
2004184769.tif 000003
ただし、ＷＵ１()，ＷＭ１()，ＷＵ２()は各和音が維持される時間幅、ｔ＝０〜Ｐ−１、Σ演算はｋ＝０〜Ｋ−２及びｋ'＝０〜Ｋ−２である。
【００４６】
ステップＳ５９の相関係数ＣＯＲ(t)はｔが０〜Ｐ−１の範囲で各々算出される。また、ステップＳ５９の相関係数ＣＯＲ(t)の演算では飛び越し処理が行われる。飛び越し処理においては、(ＭＲ１(t+k+k1)−ＵＲ１(k'+k2))又は(ＭＲ１(t+k+k1)−ＵＲ２(k'+k2))の最小値が検出される。ｋ1及びｋ2各々は０〜２までのいずれかの整数である。すなわち、ｋ1及びｋ2各々を０〜２までの範囲で変化させて(ＭＲ１(t+k+k1)−ＵＲ１(k'+k2))又は(ＭＲ１(t+k+k1)−ＵＲ２(k'+k2))の最小値となるときが検出される。そのときのｋ＋ｋ１が新たなｋに、ｋ'＋ｋ２が新たなｋ'とされる。その後、式(3)に応じて相関係数ＣＯＲ(t)が算出される。
【００４７】
更に、各時点の和音から変化後の和音が処理対象の和音進行楽曲データ及びその和音進行楽曲データのｃ番目からＫ個の部分楽曲データがＣ及びＡｍのいずれであっても、或いはＣｍ及びＥ♭のいずれであっても同一とみなす。すなわち、変化後の和音が関係調の和音であれば、上記の式の|ＭＲ１(t+k)-ＵＲ１(k')|+|ＭＡ１(t+k)-ＵＡ１(k')|＝０又は|ＭＲ１(t+k)-ＵＲ２(k')|+|ＭＡ１(t+k)-ＵＡ２(k')|＝０である。例えば、和音Ｆから一方のデータが７度差でメジャーに変化し、他方のデータが４度差でマイナーに変化した場合には同一とし、また和音Ｆから一方のデータが７度差でマイナーに変化し、他方のデータが１０度差でメジャーに変化した場合にも同一として処理される。
【００４８】
更に、ステップＳ５４にて得られた第２和音差分値ＭＲ２(0)〜ＭＲ２(K-2)及び和音属性ＭＡ２(0)〜ＭＡ２(K-2)と、ステップＳ５７にて得られたｃ番目からＫ個の第１和音候補ＵＲ１(0)〜ＵＲ１(K-2)及び和音属性ＵＡ１(0)〜ＵＡ１(K-2)と、ステップＳ５８にて得られたｃ番目からＫ個の第２和音候補ＵＲ２(0)〜ＵＲ２(K-2)及び和音属性ＵＡ２(0)〜ＵＡ２(K-2)とに応じて相互相関演算が行われる（ステップＳ６０）。相互相関演算では相関係数ＣＯＲ'(t)が次式(4)の如く算出される。相関係数ＣＯＲ'(t)が小さいほど類似性が高いことを示す。
2004184769.tif 000004
ただし、ＷＵ１()，ＷＭ２()，ＷＵ２()は各和音が維持される時間幅、ｔ＝０〜Ｐ−１、Σ演算はｋ＝０〜Ｋ−２及びｋ'＝０〜Ｋ−２である。
【００４９】
ステップＳ６０の相関係数ＣＯＲ'(t)はｔが０〜Ｐ−１の範囲で各々算出される。また、ステップＳ６０の相関係数ＣＯＲ(t)の演算では上記のステップＳ５９と同様に飛び越し処理が行われる。飛び越し処理においては、(ＭＲ２(t+k+k1)−ＵＲ１(k'+k2))又は(ＭＲ２(t+k+k1)−ＵＲ２(k'+k2))の最小値が検出される。ｋ1及びｋ2各々は０〜２までのいずれかの整数である。すなわち、ｋ1及びｋ2各々を０〜２までの範囲で変化させて(ＭＲ２(t+k+k1)−ＵＲ１(k'+k2))又は(ＭＲ２(t+k+k1)−ＵＲ２(k'+k2))の最小値となるときが検出される。そのときのｋ＋ｋ１が新たなｋに、ｋ'＋ｋ２が新たなｋ'とされる。その後、式(4)に応じて相関係数ＣＯＲ'(t)が算出される。
【００５０】
更に、各時点の和音から変化後の和音が処理対象の和音進行楽曲データ及び部分楽曲データがＣ及びＡｍのいずれであっても、或いはＣｍ及びＥ♭のいずれであっても同一とみなす。すなわち、変化後の和音が関係調の和音であれば、上記の式の|ＭＲ２(t+k)-ＵＲ１(k')|+|ＭＡ２(t+k)-ＵＡ１(k')|＝０又は|ＭＲ２(t+k)-ＵＲ２(k')|+|ＭＡ２(t+k)-ＵＡ２(k')|＝０である。
【００５１】
図１８(a)は処理対象の和音進行楽曲データとその部分楽曲データとの関係を示している。部分楽曲データはｔの進行に従って処理対象の和音進行楽曲データとの比較部分が変化する。図１８(b)は相関係数ＣＯＲ(t）又はＣＯＲ'(t）の変化を示している。ピーク波形部分が類似性が高い部分である。
図１８(c)は処理対象の和音進行楽曲データとその部分楽曲データとの相互相関演算における、各和音が維持される時間幅ＷＵ(1)〜ＷＵ(5)、飛び越し処理部分及び関係調の部分を示している。処理対象の和音進行楽曲データと部分楽曲データとの間の矢印線は同一和音を示している。その矢印線のうちの同一時間にない傾いた矢印線で結ばれた和音は、飛び越し処理で検出された和音である。また、矢印線が波線になっているものは関係調の和音である。
【００５２】
ステップＳ５９及びＳ６０で算出された相関係数ＣＯＲ(t)及びＣＯＲ'(t)は加算されて合計相関係数ＣＯＲ(c,t)が算出される（ステップＳ６１）。すなわち、ＣＯＲ(c,t)は次式(5)に示すように算出される。
ＣＯＲ(c,t)＝ＣＯＲ(t)＋ＣＯＲ'(t)    ｔ＝０〜Ｐ−１    ……(5)
図１９(a)〜(f)は処理対象の和音進行楽曲データが示す楽曲中のフレーズ（和音進行列）と、部分楽曲データが示すフレーズと、合計相関係数ＣＯＲ(c,t)との関係を示している。和音進行楽曲データが示す楽曲中のフレーズは図示しないイントロＩの後の曲の流れ順にＡ，Ｂ，Ｃ，Ａ'，Ｃ'，Ｄ,Ｃ”であり、ＡとＡ'とが同一フレーズ、またＣとＣ'とＣ”とが同一フレーズとする。図１９(a)では、部分楽曲データの先頭にフレーズＡが位置している場合にであり、ＣＯＲ(c,t)は和音進行楽曲データのフレーズＡとＡ'とに対応した時点で□で示すピーク値を生成する。図１９(b)では、部分楽曲データの先頭にフレーズＢが位置している場合にであり、ＣＯＲ(c,t)は和音進行楽曲データのフレーズＢだけに対応した時点で×で示すピーク値を生成する。図１９(c)では、部分楽曲データの先頭にフレーズＣが位置している場合にであり、ＣＯＲ(c,t)は和音進行楽曲データのフレーズＣ，Ｃ'，Ｃ”の各々に対応した時点で○で示すピーク値を生成する。図１９(d)では、部分楽曲データの先頭にフレーズＡ'が位置している場合にであり、ＣＯＲ(c,t)は和音進行楽曲データのフレーズＡ，Ａ'の各々に対応した時点で□で示すピーク値を生成する。図１９(e)では、部分楽曲データの先頭にフレーズＣ'が位置している場合にであり、ＣＯＲ(c,t)は和音進行楽曲データのフレーズＣ，Ｃ'，Ｃ”の各々に対応した時点で○で示すピーク値を生成する。図１９(f)では、部分楽曲データの先頭にフレーズＣ”が位置している場合にであり、ＣＯＲ(c,t)は和音進行楽曲データのフレーズＣ，Ｃ'，Ｃ”の各々に対応した時点で○で示すピーク値を生成する。
【００５３】
ステップＳ６１の実行後、カウンタ値ｃに１が加算され（ステップＳ６２）、そのカウンタ値ｃがＰ−１より大であるか否かが判別される（ステップＳ６３）。ｃ≦Ｐ−１であるならば、処理対象の和音進行楽曲データ全てに亘って相関係数ＣＯＲ(c,t)が算出されていない。よって、ステップＳ５６に戻って上記のステップＳ５６〜Ｓ６３の動作が繰り返される。
【００５４】
ｃ＞Ｐ−１であるならば、ＣＯＲ(c,t)、すなわちＣＯＲ(0,0)〜ＣＯＲ(P-1,P-1)のピーク値が検出され、そのピーク値の検出時のｃ，ｔについてＣＯＲ＿ＰＥＡＫ(c,t)＝１が設定され、ピーク値でないときのｃ，ｔについてＣＯＲ＿ＰＥＡＫ(c,t)＝０が設定される（ステップＳ６４）。ＣＯＲ(c,t)が所定値を越えた部分の最高値をピーク値とする。ステップ６４によってＣＯＲ＿ＰＥＡＫ(c,t)の列が形成される。次に、このＣＯＲ＿ＰＥＡＫ(c,t)列において、ｔが０〜Ｐ−１の各々のＣＯＲ＿ＰＥＡＫ(c,t)の合計値がピーク数ＰＫ(t)として算出される（ステップＳ６５）。ＰＫ(0)＝ＣＯＲ＿ＰＥＡＫ(0,0)＋ＣＯＲ＿ＰＥＡＫ(1,0)＋……ＣＯＲ＿ＰＥＡＫ(P-1,0)，ＰＫ(1)＝ＣＯＲ＿ＰＥＡＫ(0,1)＋ＣＯＲ＿ＰＥＡＫ(1,1)＋……ＣＯＲ＿ＰＥＡＫ(P-1,1)，………，ＰＫ(P-1)＝ＣＯＲ＿ＰＥＡＫ(0,P-1)＋ＣＯＲ＿ＰＥＡＫ(1,P-1)＋……ＣＯＲ＿ＰＥＡＫ(P-1,P-1)である。ピーク数ＰＫ(0)〜ＰＫ(P-1)のうちの連続する２以上の同一数の範囲が同一フレーズ範囲として区分けされ、それに基づいて楽曲構造データがデータ蓄積装置５に保存される（ステップＳ６６）。例えば、ピーク数ＰＫ(t)が２である場合には、楽曲中で２回繰り返しが行われるフレーズとなり、ピーク数ＰＫ(t)が３である場合には、楽曲中で３回繰り返しが行われるフレーズとなる。同一フレーズの範囲のピーク数ＰＫ(t)は同一値となる。ピーク数ＰＫ(t)が１である場合には、繰り返しがないフレーズを示すことになる。
【００５５】
図２０は図１９(a)〜(f)に示したフレーズＩ，Ａ，Ｂ，Ｃ，Ａ'，Ｃ'，Ｄ,Ｃ”を有する楽曲についてのピーク数ＰＫ(t)と、相関係数ＣＯＲ(c,t)の算出結果からピーク値が得られた位置ＣＯＲ＿ＰＥＡＫ(c,t)とを示している。ＣＯＲ＿ＰＥＡＫ(c,t)はマトリックスで表示しており、横軸が和音数ｔ＝０〜Ｐ−１であり、縦軸が部分楽曲データの開始位置であるｃ＝０〜Ｐ−１を示している。ドット部分がＣＯＲ(c,t)がピーク値を得たＣＯＲ＿ＰＥＡＫ(c,t)＝１に対応した位置である。対角線上は同一データ同士の自己相関をとったことになるので、ドット列となる。対角線以外の部分に現れるドット列が繰り返しの和音進行によるフレーズに対応する。図１９(a)〜(f)に対応して×は１回だけのフレーズＩ，Ｂ，Ｄに対応し、〇は３回の繰り返しフレーズＣ，Ｃ'，Ｃ”に対応し、□は２回の繰り返しフレーズＡ，Ａ'に対応する。ピーク数ＰＫ(t)はフレーズＩ，Ａ，Ｂ，Ｃ，Ａ'，Ｃ'，Ｄ,Ｃ”に対応して１，２，１，３，２，３，１，３となる。これが結果として楽曲構造を示すことになる。
【００５６】
楽曲構造データは図２１に示すようなフォーマットを有している。各フレーズの開始時刻情報及び終了時刻情報には図１４(c)に示した和音進行楽曲データＴ(t)が用いられる。
また、楽曲構造検出結果が表示装置９に表示される（ステップＳ６７）。楽曲構造検出結果の表示画面は図２２に示すように楽曲中の各繰り返しフレーズ部分の選択ができるようにされている。この表示画面によって選択された繰り返しフレーズ部分又は繰り返し回数が最も多いフレーズ部分に対応する楽曲データがデータ蓄積装置４から読み出されて楽曲再生装置１０に供給される（ステップＳ６８）。これにより、楽曲再生装置１０は供給された楽曲データを順次再生し、それがディジタル信号としてディジタル／アナログ変換装置１１に供給される。ディジタル／アナログ変換装置１１においてアナログオーディオ信号に変換された後、スピーカ１５から繰り返しフレーズ部分の再生音が出力されることになる。
【００５７】
よって、利用者は処理対象の楽曲の構造を表示画面から知ることができると共に、その楽曲のうちの選択した繰り返しフレーズ部分又は繰り返し回数が最も多いフレーズ部分を容易に聴取することができる。
上記の楽曲構造検出動作のステップＳ５６が部分楽曲データ生成手段に対応し、ステップＳ５７〜Ｓ６３が類似度（相関係数ＣＯＲ(Ｃ，t)）を算出する比較手段に相当し、ステップＳ６４が和音位置検出手段に相当し、ステップＳ６５〜Ｓ６８が出力手段に相当する。
【００５８】
上記した飛び越し処理及び関係調処理は、和音の変化前後の差分値の演算の際に処理対象の和音進行楽曲データがアナログ信号に基づいて作成された場合における外部雑音や入力装置の周波数特性の影響を排除するため、或いは１番と２番とでは同一フレーズであってもリズムや旋律の変化があったり、又は転調が行われている場合にはデータ間の和音の位置や属性が完全に一致しないことが起きるので、それを防止するために行われる。すなわち、一時的に和音進行が異なっても一定時間幅内で和音進行の傾向が類似していることを検出することができるので、リズムや旋律の変化があったり、又は転調が行われている場合でもその影響を受けることなく、同一フレーズであるか否かを正確に判別することができる。更に、飛び越し処理及び関係調処理を施すことによってその施した部分以外の相互相関演算においても正確な類似度を求めることができる。
【００５９】
また、上記した実施例においては、ＰＣＭデータ形式の楽曲データに対して作用することを前提としているが、ステップＳ２８の処理において楽曲に含まれる音符列が分かっていれば、楽曲データとしてＭＩＤＩデータを用いることもできる。更に、上記した実施例のシステムを応用すれば、楽曲を構成する繰り返し回数の多いフレーズ部分だけを順に再生する、例えば、ハイライト再生システムを実現することも容易に可能である。
【００６０】
図２３は本発明の他の実施例を示している。図２３の楽曲処理システムにおいては、図１のシステム中の和音解析装置３、一時記憶メモリ６、和音進行比較装置７及び繰り返し構造検出装置８がコンピュータ２１によって形成されている。コンピュータ２１は記憶装置２２に記憶されたプログラムに応じて上記の和音解析動作及び楽曲構造検出動作を実行する。記憶装置２２はハードディスクドライブに限らず、記録媒体のドライブ装置でも良い。その記録媒体のドライブ装置の場合には記録媒体に和音進行楽曲データを書き込むようにしても良い。
【００６１】
以上のように、本発明によれば、和音進行楽曲データ中の各和音の位置から連続する所定数の和音からなる部分楽曲データを生成する部分楽曲データ生成手段と、部分楽曲データ各々と和音進行楽曲データとを和音進行楽曲データ中の各和音の位置から和音変化時の和音の根音変化量と変化後の和音の属性とについて比較して複数の楽曲毎の類似度を算出する比較手段と、部分楽曲データ毎に比較手段によって算出された類似度各々に応じて類似度が所定値より高いピーク値となった和音進行楽曲データ中の和音の位置を検出する和音位置検出手段と、和音進行楽曲データ中の和音の位置毎に部分楽曲データ全てについて類似度が所定値より高いピーク値となった回数を算出し、その和音の位置毎の算出回数に応じて楽曲構造を示す検出出力を生成する出力手段と、を備えたことにより、繰り返し部分を含む楽曲の構造を簡単な構成で適切に検出することができる。
【図面の簡単な説明】
【図１】本発明を適用した楽曲処理システムの構成を示すブロック図である。
【図２】周波数誤差検出動作を示すフローチャートである。
【図３】Ａ音を１.０とした場合の１２音及び１オクターブ高いＡ音各々の周波数比を示す図である。
【図４】和音解析動作の本処理を示すフローチャートである。
【図５】帯域データの各音成分の強度レベル例を示す図である。
【図６】帯域データの各音成分の強度レベル例を示す図である。
【図７】４音からなる和音に対する３音からなる和音への変換を示す図である。
【図８】一時記憶メモリへの記録フォーマットを示す図である。
【図９】基本音及び和音の属性の表記方法、並びに和音候補の表記方法を示す図である。
【図１０】和音解析動作の後処理を示すフローチャートである。
【図１１】平滑化処理前の第１及び第２和音候補の時間変化を示す図である。
【図１２】平滑化処理後の第１及び第２和音候補の時間変化を示す図である。
【図１３】入れ替え処理後の第１及び第２和音候補の時間変化を示す図である。
【図１４】和音進行楽曲データの作成方法及びそのフォーマットを示す図である。
【図１５】楽曲構造検出動作を示すフローチャートである。
【図１６】和音変化の和音差分値及び変化後の属性の例を示す図である。
【図１７】仮想データを含む和音進行楽曲データと部分楽曲データとの関係を示す図である。
【図１８】相互相関演算時の和音進行楽曲データと部分楽曲データとの関係、相関係数ＣＯＲ(c,t)の変化、並びに各和音が維持される時間幅、飛び越し処理部分及び関係調の部分を示している。
【図１９】部分楽曲データに含まれるフレーズと和音進行楽曲データに含まれるフレーズ列とに応じた相関係数ＣＯＲ(c,t)の変化を示す図である。
【図２０】図１９に示したフレーズ列を有する楽曲についてのピーク数ＰＫ(t)と、ピーク値が得られた位置ＣＯＲ＿ＰＥＡＫ(c,t)とを示す図である。
【図２１】楽曲構造データのフォーマットを示す図である。
【図２２】表示装置の表示例を示す図である。
【図２３】本発明の他の実施例として楽曲処理システムの構成を示すブロック図である。
【符号の説明】
３  和音解析装置
４，５  データ蓄積装置
７  和音進行比較装置
８  繰り返し構造検出装置
１０  楽曲再生装置
２１  コンピュータ
【図１】
2004184769.tif 000005
【図２】
2004184769.tif 000006
【図３】
2004184769.tif 000007
【図４】
2004184769.tif 000008
【図５】
2004184769.tif 000009
【図６】
2004184769.tif 000010
【図７】
2004184769.tif 000011
【図８】
2004184769.tif 000012
【図９】
2004184769.tif 000013
【図１０】
2004184769.tif 000014
【図１１】
2004184769.tif 000015
【図１２】
2004184769.tif 000016
【図１３】
2004184769.tif 000017
【図１４】
2004184769.tif 000018
【図１５】
2004184769.tif 000019
【図１６】
2004184769.tif 000020
【図１７】
2004184769.tif 000021
【図１８】
2004184769.tif 000022
【図１９】
2004184769.tif 000023
【図２０】
2004184769.tif 000024
【図２１】
2004184769.tif 000025
【図２２】
2004184769.tif 000026
【図２３】
2004184769.tif 000027