以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
本稿には、以下の順序で説明が記載されている。
(説明項目)
1.基盤技術
1−1.特徴量計算式生成装置10の構成
2.実施形態
2−1.情報処理装置100の全体構成
### 楽曲解析方法に関する説明 ###
2−2.音源分離部106の構成
2−3.ログスペクトル解析部108の構成
2−4.楽曲解析部110の構成
2−4−1.ビート検出部132の構成
2−4−2.楽曲構造解析部134の構成
2−4−3.コード確率検出部136の構成
2−4−4.キー検出部138の構成
2−4−5.小節線検出部140の構成
2−4−6.コード進行検出部142の構成
2−4−7.メロディー検出部144の構成
2−4−8.ベース検出部146の構成
2−4−9.メタデータ検出部148の構成
### 楽曲の視覚化方法に関する説明 ###
2−5.視覚化パラメータ決定部114の構成
2−5−1.視覚化パラメータ決定方法の概要
2−5−2.視覚化パラメータ決定方法の詳細
2−6.情報処理装置100のハードウェア構成例
2−7.まとめ
<1.基盤技術>
まず、本発明の一実施形態に係る技術について詳細な説明をするに先立ち、同実施形態の技術的構成を実現するために用いる基盤技術について簡単に説明する。ここで説明する基盤技術は、任意の入力データが持つ特徴を特徴量という形で定量化するアルゴリズムの自動生成方法に関する。入力データとしては、例えば、音声データの信号波形や画像に含まれる色毎の輝度データ等、種々のデータが用いられる。また、楽曲を例に挙げると、当該基盤技術を適用することにより、例えば、楽曲データの波形から、その楽曲の明るさやテンポの速さ等を表す特徴量を算出するためのアルゴリズムが自動生成される。なお、以下で述べる特徴量計算式生成装置10の構成例に代えて、例えば、特開2008−123011号公報に記載された学習アルゴリズムを利用することも可能である。
[1−1.特徴量計算式生成装置10の構成]
まず、図1を参照しながら、上記の基盤技術に係る特徴量計算式生成装置10の機能構成について説明する。図1は、上記の基盤技術に係る特徴量計算式生成装置10の一構成例を示す説明図である。ここで説明する特徴量計算式生成装置10は、任意の入力データを用いて、その入力データに含まれる特徴を特徴量として定量化するアルゴリズム(以下、計算式)を自動生成する手段(学習アルゴリズム)の一例である。
図1に示すように、特徴量計算式生成装置10は、主に、オペレータ記憶部12と、抽出式生成部14と、抽出式リスト生成部20と、抽出式選択部22と、計算式設定部24とを有する。さらに、特徴量計算式生成装置10は、計算式生成部26と、特徴量選択部32と、評価データ取得部34と、教師データ取得部36と、式評価部38とを有する。なお、上記の抽出式生成部14は、オペレータ選択部16を含む。また、上記の計算式生成部26は、抽出式計算部28、及び係数算出部30を含む。さらに、式評価部38は、計算式評価部40、及び抽出式評価部42を含む。
まず、抽出式生成部14は、オペレータ記憶部12に記録されている複数のオペレータを組み合わせて計算式の元となる特徴量抽出式(以下、抽出式)を生成する。なお、ここで言うオペレータとは、入力データのデータ値に対して所定の演算処理を実行するために用いる演算子である。オペレータで実行される演算の種類には、例えば、微分値算出、最大値抽出、ローパスフィルタリング、普遍分散値算出、高速フーリエ変換、標準偏差値算出、平均値算出等が含まれる。もちろん、これら例示した種類の演算に限定されず、入力データのデータ値に対して実行可能な任意の種類の演算が含まれる。
また、各オペレータには、演算の種類、演算対象軸、及び演算に用いるパラメータが設定されている。演算対象軸とは、入力データの各データ値を定義する軸の中で、演算処理の対象とする軸を意味する。例えば、楽曲データを例に挙げると、楽曲データは、時間軸及び音程軸(周波数軸)で形成される空間内において音量の信号波形として与えられる。この楽曲データに対して微分演算を行う場合、時間軸方向に微分演算を行うのか、周波数軸方向に微分演算を行うのかを決定する必要がある。そこで、各パラメータには、入力データが定義される空間を形成する軸の中で演算処理の対象とする軸の情報が含まれる。
また、演算の種類によっては、パラメータが必要になる。例えば、ローパスフィルタリングの場合、透過させるデータ値の範囲を規定するための閾値がパラメータとして定められている必要がある。こうした理由から、各オペレータには、演算の種類の他に、演算対称軸、及び必要なパラメータが含まれている。例えば、あるオペレータは、F#Differential、F#MaxIndex、T#LPF_1;0.861、T#UVariance、…のように表現される。オペレータの先頭に付されるF等は、演算対象軸を表す。例えば、Fは周波数軸を意味し、Tは時間軸を意味する。
演算対称軸の次に#で区切られて付されるDifferential等は、演算の種類を表す。例えば、Differentialは微分値算出演算、MaxIndexは最大値抽出演算、LPFはローパスフィルタリング、UVarianceは普遍分散値算出演算を意味する。そして、演算の種類に続く数字はパラメータを表す。例えば、LPF_1;0.861は、1〜0.861の範囲を通過帯域とするローパスフィルタを表す。これらの多種多様なオペレータは、オペレータ記憶部12に記録されており、抽出式生成部14により読み出されて利用される。抽出式生成部14は、まず、オペレータ選択部16により任意のオペレータを選択し、選択したオペレータを組み合わせて抽出式を生成する。
例えば、オペレータ選択部16によりF#Differential、F#MaxIndex、T#LPF_1;0.861、T#UVarianceが選択され、抽出式生成部14により下記の式(1)で表現される抽出式fが生成される。但し、先頭に付された12Tonesは、処理対象とする入力データの種類を示すものである。例えば、12Tonesと表記されている場合、入力データの波形を解析して得られる時間−音程空間上の信号データ(後述するログスペクトル)が演算処理の対象とされる。つまり、下記の式(1)で表現される抽出式は、後述するログスペクトルを処理対象とし、入力データに対して、周波数軸方向(音程軸方向)に微分演算及び最大値抽出、時間軸方向にローパスフィルタリング及び普遍分散値演算を順次実行することを表している。
…(1)
上記の通り、抽出式生成部14は、上記の式(1)に示したような抽出式を様々なオペレータの組み合わせについて生成する。この生成方法について、より詳細に説明する。まず、抽出式生成部14は、オペレータ選択部16を用いてオペレータを選択する。このとき、オペレータ選択部16は、選択したオペレータの組み合わせ(抽出式)で入力データに演算を施した結果がスカラ又は所定サイズ以下のベクトルになるか否か(収束するか否か)を判定する。
上記の判定処理は、各オペレータに含まれる演算対象軸の種類及び演算の種類に基づいて行われる。この判定処理は、オペレータ選択部16によりオペレータの組み合わせが選択された際、各組み合わせについて実行される。そして、オペレータ選択部16により演算結果が収束すると判定された場合、抽出式生成部14は、オペレータ選択部16で選択されたオペレータの組み合わせを用いて抽出式を生成する。抽出式生成部14による抽出式の生成処理は、所定数(以下、選択抽出式数)の抽出式が生成されるまで実行される。抽出式生成部14で生成された抽出式は、抽出式リスト生成部20に入力される。
抽出式生成部14から抽出式リスト生成部20に抽出式が入力されると、入力された抽出式から所定数(以下、リスト内抽出式数≦選択抽出式数)の抽出式が選択されて抽出式リストが生成される。このとき、抽出式リスト生成部20による生成処理は、所定数(以下、リスト数)の抽出式リストが生成されるまで実行される。そして、抽出式リスト生成部20で生成された抽出式リストは、抽出式選択部22に入力される。
ここで、抽出式生成部14、及び抽出式リスト生成部20の処理に関して具体的な例を示す。まず、抽出式生成部14により入力データの種類が、例えば、楽曲データに決定される。次いで、オペレータ選択部16によりオペレータOP1、OP2、OP3、OP4がランダムに選択される。そして、選択されたオペレータの組み合わせで楽曲データの演算結果が収束するか否かの判定処理が実行される。楽曲データの演算結果が収束すると判定された場合、OP1〜OP4の組み合わせで抽出式f1が生成される。抽出式生成部14で生成された抽出式f1は、抽出式リスト生成部20に入力される。
さらに、抽出式生成部14は、抽出式f1の生成処理と同様の処理を繰り返し、例えば、抽出式f2、f3、f4を生成する。このようにして生成された抽出式f2、f3、f4は、抽出式リスト生成部20に入力される。抽出式f1、f2、f3、f4が入力されると、抽出式リスト生成部20は、例えば、抽出式リストL1={f1,f2、f4}、L2={f1、f3,f4}を生成する。抽出式リスト生成部20で生成された抽出式リストL1、L2は、抽出式選択部22に入力される。
以上、具体例を挙げて説明したように、抽出式生成部14により抽出式が生成され、抽出式リスト生成部20により抽出式リストが生成されて、抽出式選択部22に入力される。但し、上記の例では、選択抽出式数=4、リスト内抽出式数=3、リスト数=2の場合を示したが、実際には非常に多数の抽出式、及び抽出式リストが生成される点に注意されたい。
さて、抽出式リスト生成部20から抽出式リストが入力されると、抽出式選択部22は、入力された抽出式リストの中で、後述する計算式に組み込むべき抽出式を選択する。例えば、上記の抽出式リストL1の中で抽出式f1、f4を計算式に組み込む場合、抽出式選択部22は、抽出式リストL1について抽出式f1、f4を選択する。抽出式選択部22は、各抽出式リストについて上記の選択処理を実行する。そして、選択処理が完了すると、抽出式選択部22による選択処理の結果、及び各抽出式リストは、計算式設定部24に入力される。
抽出式選択部22から選択結果及び各抽出式リストが入力されると、計算式設定部24は、抽出式選択部22の選択結果を考慮して各抽出式リストに対応する計算式を設定する。例えば、計算式設定部24は、下記の式(2)に示すように、各抽出式リストLm={f1,…,fK}に含まれる抽出式fkを線形結合して計算式Fmを設定する。但し、m=1、…、M(Mはリスト数)、k=1、…、K(Kはリスト内抽出式数)、B0、…、BKは結合係数である。
…(2)
なお、計算式Fmを抽出式fk(k=1〜K)の非線形関数に設定することも可能である。但し、計算式設定部24で設定される計算式Fmの関数形は、後述する計算式生成部26で用いられる結合係数の推定アルゴリズムに依存する。従って、計算式設定部24は、計算式生成部26で利用可能な推定アルゴリズムに応じて計算式Fmの関数形を設定するように構成される。例えば、計算式設定部24は、入力データの種類に応じて関数形を変えるように構成されていてもよい。但し、本稿においては、説明の都合上、上記の式(2)で表現される線形結合を用いることにする。さて、計算式設定部24により設定された計算式の情報は、計算式生成部26に入力される。
また、計算式生成部26には、計算式で算出したい特徴量の種類が特徴量選択部32から入力される。なお、特徴量選択部32は、計算式で算出したい特徴量の種類を選択するための手段である。さらに、計算式生成部26には、評価データ取得部34から入力データの種類に対応する評価データが入力される。例えば、入力データの種類が楽曲である場合、複数の楽曲データが評価データとして入力される。また、計算式生成部26には、教師データ取得部36から各評価データに対応する教師データが入力される。ここで言う教師データとは、各評価データの特徴量である。特に、特徴量選択部32が選択した種類の教師データが計算式生成部26に入力される。例えば、入力データが楽曲データであり、特徴量の種類がテンポである場合、各評価データの正解テンポ値が教師データとして計算式生成部26に入力される。
評価データ、教師データ、特徴量の種類、計算式等が入力されると、計算式生成部26は、まず、抽出式計算部28によって計算式Fmに含まれる抽出式f1、…、fKに各評価データを入力して各抽出式による計算結果(以下、抽出式計算結果)を求める。抽出式計算部28により各評価データに関する各抽出式の抽出式計算結果が算出されると、抽出式計算部28から係数算出部30に各抽出式計算結果が入力される。係数算出部30は、各評価データに対応する教師データ、及び入力された抽出式計算結果を利用し、上記の式(2)においてB0、…、BKで表現された結合係数を算出する。例えば、最小二乗法等を用いて係数B0、…、BKを決定することができる。このとき、係数算出部30は、平均二乗誤差等の評価値を共に算出する。
なお、抽出式計算結果、結合係数、及び平均二乗誤差等は特徴量の種類毎にリスト数分だけ算出される。そして、抽出式計算部28で算出された抽出式計算結果、係数算出部30で算出された結合係数、及び平均二乗誤差等の評価値は、式評価部38に入力される。これらの算出結果が入力されると、式評価部38は、入力された算出結果を用いて各計算式の良否を判定するための評価値を算出する。上記の通り、各計算式を構成する抽出式及び抽出式を構成するオペレータを決定する処理においてランダムな選択処理が含まれている。つまり、これらの決定処理において最適な抽出式及び最適なオペレータが選択されたか否かについて不確定要素が含まれている。そこで、算出結果を評価し、必要に応じて再計算又は計算結果の修正をするために、式評価部38により評価が行われる。
図1に示す式評価部38には、各計算式の評価値を算出する計算式評価部40と、各抽出式の寄与度を算出する抽出式評価部42とが設けられている。計算式評価部40は、各計算式を評価するために、例えば、AIC又はBICと呼ばれる評価方法を用いる。ここで言うAICとは、Akaike Information Criterionの略である。一方、BICとは、Bayesian Information Criterionの略である。AICを用いる場合、各計算式の評価値は、各計算式に対する平均二乗誤差及び教師データの数(以下、教師数)を用いて算出される。例えば、この評価値は、下記の式(3)で表現される値(AIC)に基づいて算出される。
…(3)
上記の式(3)では、AICが小さいほど計算式の精度が高いことを意味する。従って、AICを用いる場合の評価値は、AICが小さいほど大きくなるように設定される。例えば、その評価値は、上記の式(3)で表現されるAICの逆数で算出される。なお、計算式評価部40においては、特徴量の種類数分だけ評価値が算出される。そこで、計算式評価部40は、各計算式について特徴量の種類に関する平均演算を行い、平均評価値を算出する。つまり、この段階で各計算式の平均評価値が算出される。計算式評価部40で算出された平均評価値は、計算式の評価結果として抽出式リスト生成部20に入力される。
一方、抽出式評価部42は、抽出式計算結果、及び結合係数に基づいて各計算式における各抽出式の寄与率を評価値として算出する。例えば、抽出式評価部42は、下記の式(4)に従って寄与率を算出する。なお、抽出式fkの抽出式計算結果に対する標準偏差は、各評価データについて算出された抽出式計算結果から得られるものである。下記の式(4)に従って抽出式評価部42により計算式毎に算出された各抽出式の寄与率は、抽出式の評価結果として抽出式リスト生成部20に入力される。
…(4)
但し、StDev(…)は標準偏差を表す。また、推定対象の特徴量とは、楽曲のテンポ等である。例えば、100曲のログスペクトルが評価データとして、各曲のテンポが教師データとして与えられる場合、StDev(推定対象の特徴量)は、100曲のテンポの標準偏差を表す。また、上記の式(4)に含まれるPearson(…)は相関関数を表す。例えば、Pearson(fkの計算結果,推定対象の特徴量)は、fkの計算結果と推定対象の特徴量との間の相関係数を算出するための相関関数を表す。なお、ここでは特徴量として楽曲のテンポを例示したが、推定対象となる特徴量はこれに限定されない。
このようにして式評価部38から抽出式リスト生成部20に評価結果が入力されると、新たな計算式の構築に用いる抽出式リストが生成される。まず、抽出式リスト生成部20は、計算式評価部40で算出された平均評価値が高い順に所定数の計算式を選択し、選択した計算式に対応する抽出式リストを新たな抽出式リストに設定する(選択)。また、抽出式リスト生成部20は、計算式評価部40で算出された平均評価値が高い順に重み付けしながら2つの計算式を選択し、当該計算式に対応する抽出式リストの抽出式を組み合わせて新たな抽出式リストを生成する(交差)。また、抽出式リスト生成部20は、計算式評価部40で算出された平均評価値が高い順に重み付けしながら1つの計算式を選択し、その計算式に対応する抽出式リストの抽出式を一部変更して新たな抽出式リストを生成する(突然変異)。また、抽出式リスト生成部20は、ランダムに抽出式を選択して新たな抽出式リストを生成する。
なお、上記の交差においては、寄与率の低い抽出式ほど選択されにくく設定される方が好ましい。また、上記の突然変異においては、寄与率の低い抽出式ほど変更されやすく設定される方が好ましい。このようにして新たに生成又は設定された抽出式リストを用いて、抽出式選択部22、計算式設定部24、計算式生成部26、及び式評価部38による処理が再び実行される。これら一連の処理は、式評価部38による評価結果の向上度合いがある程度収束するまで繰り返し実行される。そして、式評価部38による評価結果の向上度合いがある程度収束すると、その時点の計算式が算出結果として出力される。ここで出力された計算式を用いることで、上記の評価データとは異なる任意の入力データから、その入力データが持つ所望の特徴を表す特徴量が精度良く算出される。
上記のように、特徴量計算式生成装置10の処理は、交差や突然変異等の要素を考慮して世代交代を進めながら繰り返し処理を実行する遺伝的アルゴリズムに基づいている。この遺伝的アルゴリズムを用いることで、精度良く特徴量を推定することが可能な算出式が得られる。但し、後述する実施形態においては、例えば、遺伝的アルゴリズムよりも簡略化された方法で計算式を算出する学習アルゴリズムを用いることもできる。例えば、抽出式リスト生成部20において上記の選択、交差、突然変異等の処理を行う代わりに、抽出式選択部22において抽出式の使用/未使用の組み合わせを変えつつ、計算式評価部40の評価値が最も高い組み合わせを選択する方法が考えられる。この場合には、抽出式評価部42の構成を省略することができる。また、演算負荷及び所望する推定精度に応じて適宜構成を変更することが可能である。
<2.実施形態>
以下、本発明の一実施形態について説明する。本実施形態は、楽曲の音声信号から、その楽曲の特徴量を精度良く自動抽出し、その特徴量を用いて楽曲を視覚化する技術に関する。なお、以下の説明の中で、楽曲の音声信号を楽曲データと呼ぶことがある。
[2−1.情報処理装置100の全体構成]
まず、図2を参照しながら、本実施形態に係る情報処理装置100の機能構成について説明する。図2は、本実施形態に係る情報処理装置100の機能構成例を示す説明図である。なお、ここで説明する情報処理装置100は、楽曲データに含まれる種々の特徴量を精度良く検出し、その特徴量を用いて楽曲データをリアルに視覚化する構成に特徴がある。上記の特徴量には、例えば、楽曲のビート、コード進行、各楽器音の存在確率等が含まれる。以下、情報処理装置100の全体構成について説明した後、各構成要素の詳細な機能構成について個々に説明する。
図2に示すように、情報処理装置100は、主に、楽曲データ保存部102と、楽曲再生部104と、音源分離部106と、ログスペクトル解析部108と、楽曲解析部110と、メタデータ保存部112と、視覚化パラメータ決定部114と、視覚化部116と、を有する。また、楽曲解析部110には、ビート検出部132、楽曲構造解析部134、コード確率検出部136、キー検出部138、小節線検出部140、及びコード進行検出部142が含まれる。さらに、楽曲解析部110には、メロディー検出部144、ベース検出部146、及びメタデータ検出部148が含まれる。
また、図2に例示した情報処理装置100には、特徴量計算式生成装置10が含まれている。但し、特徴量計算式生成装置10は、情報処理装置100の内部に設けられていてもよいし、外部装置として情報処理装置100に接続されていてもよい。以下の説明においては、説明の都合上、情報処理装置100に特徴量計算式生成装置10が内蔵されているものとする。また、情報処理装置100は、特徴量計算式生成装置10を設ける代わりに、特徴量の計算式を生成することが可能な各種の学習アルゴリズムを用いることも可能である。
全体的な処理の流れは次の通りである。まず、楽曲データ保存部102に保存されている楽曲データが楽曲再生部104により再生される。さらに、楽曲データ保存部102に保存されている楽曲データは、音源分離部106に入力される。音源分離部106では、楽曲データが左チャネル成分(前景成分)、右チャネル成分(前景成分)、センター成分(前景成分)、背景成分に分離される。そして、成分毎に分離された楽曲データは、ログスペクトル解析部108に入力される。ログスペクトル解析部108では、楽曲データの各成分が後述するログスペクトルに変換される。ログスペクトル解析部108から出力されるログスペクトルは、特徴量計算式生成装置10等に入力される。なお、ログスペクトルは、特徴量計算式生成装置10以外の構成要素においても利用されることがある。その場合、適宜、ログスペクトル解析部108から直接的又は間接的に各構成要素に対して所要のログスペクトルが提供される。
楽曲解析部110は、楽曲データの波形を解析し、その楽曲データに含まれるビート位置、楽曲構造、キー、コード進行、メロディーライン、ベースライン、各楽器音の存在確率等を抽出する。なお、ビート位置は、ビート検出部132により検出される。楽曲構造は、楽曲構造解析部134により検出される。キーは、キー検出部138により検出される。コード進行は、コード進行検出部142により検出される。メロディーラインは、メロディー検出部144により検出される。ベースラインは、ベース検出部146により検出される。各楽器音の存在確率は、メタデータ検出部148により抽出される。このとき、楽曲解析部110は、特徴量計算式生成装置10を利用してビート位置、コード進行、楽器音等を検出するために用いる特徴量の計算式を生成し、当該計算式を用いて算出される特徴量からビート位置、コード進行、楽器音等を検出する。楽曲解析部110による解析処理については後段において詳述する。
楽曲解析部110で検出されたビート位置、楽曲構造、キー、コード進行、メロディーライン、ベースライン、各楽器音の存在確率等のデータ(以下、メタデータ)は、メタデータ保存部112に保存される。そして、メタデータ保存部112に保存されたメタデータは、視覚化パラメータ決定部114により読み出される。視覚化パラメータ決定部114は、メタデータ保存部112に保存されたメタデータに基づき、各楽器の演奏者を模したオブジェクト(以下、演奏者オブジェクト)の動き等を制御するためのパラメータ(以下、視覚化パラメータ)を決定する。そして、視覚化パラメータ決定部114で決定された視覚化パラメータは、視覚化部116に入力される。視覚化部116は、視覚化パラメータに基づいて演奏者オブジェクト等を制御し、楽曲データを視覚化する。このような構成にすることで、演奏中の楽曲データに合わせて演奏者オブジェクトがあたかも演奏しているかのような視覚化を行うことができる。楽曲データの視覚化に関する大まかな流れは上記の通りである。以下、情報処理装置100の中心的な構成要素である音源分離部106、ログスペクトル解析部108、楽曲解析部110の構成について、より詳細に説明する。
[2−2.音源分離部106の構成]
まず、音源分離部106について説明する。音源分離部106は、ステレオ信号から、左、右、中央付近に定位する音源信号(以下、左チャネル信号、右チャネル信号、センター信号)、及び背景音の音源信号を分離する手段である。ここでは、音源分離部106によるセンター信号の抽出方法を例に挙げ、音源分離部106による音源分離方法について、より詳細に説明する。図3に示すように、音源分離部106は、例えば、左チャネル帯域分割部152、右チャネル帯域分割部154、帯域通過フィルタ156、左チャネル帯域合成部158、及び右チャネル帯域合成部160で構成される。但し、図3に例示した帯域通過フィルタ156の通過条件(位相差:小、音量差:小)は、センター信号を抽出する場合に用いられるものである。ここでは、一例としてセンター信号を抽出する方法について述べる。
まず、左チャネル帯域分割部152には、音源分離部106に入力されるステレオ信号のうち、左チャネルの信号sLが入力される。左チャネルの信号sLには、左チャネルの非センター信号Lとセンター信号Cとが混在している。また、左チャネルの信号sLは、時間の進行に伴って変化する音量レベルの信号である。そこで、左チャネル帯域分割部152は、入力された左チャネルの信号sLにDFT処理を施し、時間領域の信号から周波数領域の信号(以下、マルチバンド信号fL(0),…,fL(N−1))に変換する。但し、fL(k)は、k番目(k=0,…,N−1)の周波数帯に対応するサブバンド信号である。なお、上記のDFTは、Discrete Fourier Transformの略である。左チャネル帯域分割部152から出力された左チャネルのマルチバンド信号は、帯域通過フィルタ156に入力される。
同様に、右チャネル帯域分割部154には、音源分離部106に入力されるステレオ信号のうち、右チャネルの信号sRが入力される。右チャネルの信号sRには、右チャネルの非センター信号Rとセンター信号Cとが混在している。また、右チャネルの信号sRは、時間の進行に伴って変化する音量レベルの信号である。そこで、右チャネル帯域分割部154は、入力された右チャネルの信号sRにDFT処理を施し、時間領域の信号から周波数領域の信号(以下、マルチバンド信号fR(0),…,fR(N−1))に変換する。但し、fR(k’)は、k’番目(k’=0,…,N−1)の周波数帯に対応するサブバンド信号である。右チャネル帯域分割部154から出力された右チャネルのマルチバンド信号は、帯域通過フィルタ156に入力される。但し、各チャネルに対するマルチバンド信号の帯域分割数をN(例えば、N=8192)とした。
上記の通り、帯域通過フィルタ156には、各チャネルのマルチバンド信号fL(k)(k=0,…,N−1)、fR(k’)(k’=0,…,N−1)が入力される。なお、以下の説明において、周波数が低い順にk=0,…,N−1、又はk’=0,…,N−1とラベル付けする。また、各信号成分fL(k)及びfR(k’)のことをサブチャネル信号と呼ぶことにする。まず、帯域通過フィルタ156においては、両チャネルのマルチバンド信号から同じ周波数帯のサブチャネル信号fL(k)、fR(k’)(k’=k)が選択され、両サブチャネル信号の類似度a(k)が算出される。類似度a(k)は、例えば、下記の式(5)及び式(6)に従って算出される。但し、サブチャネル信号には、振幅成分と位相成分とが含まれる。そのため、振幅成分の類似度をap(k)、位相成分の類似度をai(k)と表現している。
…(5)
…(6)
但し、|…|は…の大きさを表す。θはfL(k)とfR(k)との間の位相差(0≦|θ|≦π)を表す。上付き*は複素共役を表す。Re[…]は…の実部を表す。上記の式(6)から明らかなように、振幅成分の類似度ap(k)は、サブチャネル信号fL(k)、fR(k)の大きさが一致する場合に1となる。逆に、サブチャネル信号fL(k)、fR(k)の大きさが一致しない場合、類似度ap(k)は1よりも小さな値となる。一方、位相成分の類似度ai(k)に関しては、位相差θが0のときに類似度ai(k)が1、位相差θがπ/2のときに類似度ai(k)が0、位相差θがπのときに類似度ai(k)が−1となる。つまり、位相成分の類似度ai(k)は、サブチャネル信号fL(k)、fR(k)の位相が一致した場合に1となり、サブチャネル信号fL(k)、fR(k)の位相が一致しない場合に1より小さな値となる。
上記の方法により各周波数帯k(k=0,…,N−1)の類似度a(k)が算出されると、帯域通過フィルタ156により、所定の閾値よりも小さい類似度ap(q)、ai(q)(0≦q≦N−1)に対応する周波数帯qが抽出される。そして、帯域通過フィルタ156により抽出された周波数帯qのサブチャネル信号のみが左チャネル帯域合成部158又は右チャネル帯域合成部160に入力される。例えば、左チャネル帯域合成部158には、サブチャネル信号fL(q)(q=q0,…,qn−1)が入力される。そこで、左チャネル帯域合成部158は、帯域通過フィルタ156から入力されたサブチャネル信号fL(q)(q=q0,…,qn−1)に対してIDFT処理を施し、周波数領域から時間領域へと変換する。但し、上記のIDFTは、Inverse discrete Fourier Transformの略である。
同様に、右チャネル帯域合成部160には、サブチャネル信号fR(q)(q=q0,…,qn−1)が入力される。そこで、右チャネル帯域合成部160は、帯域通過フィルタ156から入力されたサブチャネル信号fR(q)(q=q0,…,qn−1)に対してIDFT処理を施し、周波数領域から時間領域へと変換する。左チャネル帯域合成部158からは、左チャネルの信号sLに含まれていたセンター信号成分sL’が出力される。一方、右チャネル帯域合成部160からは、右チャネルの信号sRに含まれていたセンター信号成分sR’が出力される。以上説明した方法により、音源分離部106は、ステレオ信号からセンター信号を抽出することができる。
また、左チャネル信号、右チャネル信号、及び背景音の信号については、図4のように帯域通過フィルタ156の通過条件を変更することで、センター信号と同様に分離することができる。図4に示すように、左チャネル信号を抽出する場合、帯域通過フィルタ156の通過帯域としては、左右の位相差が小さく、左の音量が右の音量よりも大きい帯域が設定される。なお、ここで言う音量は、上記の振幅成分に相当する。同様に、右チャネル信号を抽出する場合、帯域通過フィルタ156の通過帯域としては、左右の位相差が小さく、右の音量が左の音量よりも大きい帯域が設定される。
上記の左チャネル信号、右チャネル信号、センター信号は、前景音の信号である。そのため、いずれの信号も左右の位相差が小さい帯域の信号である。一方、背景音の信号は、左右の位相差が大きい帯域の信号である。そのため、背景音の信号を抽出する場合、帯域通過フィルタ156の通過帯域は、左右の位相差が大きい帯域に設定される。このようにして音源分離部106で分離された左チャネル信号、右チャネル信号、センター信号、背景音の信号は、ログスペクトル解析部108に入力される。
[2−3.ログスペクトル解析部108の構成]
次に、ログスペクトル解析部108について説明する。ログスペクトル解析部108は、入力された音声信号を各音程の強度分布に変換する手段である。音声信号には、オクターブ毎に12の音程(C、C#、D、D#、E、F、F#、G、G#、A、A#、B)が含まれる。また、各音程の中心周波数は対数で分布する。例えば、音程A3の中心周波数fA3を基準にすると、A#3の中心周波数はfA#3=fA3*21/12と表現される。同様に、音程B3の中心周波数fB3は、fB3=fA#3*21/12と表現される。このように、隣り合う音程間で中心周波数の比は、1:21/12である。しかし、音声信号を扱う上で、音声信号を時間−周波数空間における信号強度分布として捉えると、周波数軸が対数軸となってしまい、音声信号に対する処理が複雑化してしまう。そこで、ログスペクトル解析部108は、音声信号を解析し、時間−周波数空間の信号から時間−音程空間の信号(以下、ログスペクトル)に変換する。
ここで、ログスペクトル解析部108の構成について、図5を参照しながら、より詳細に説明する。図5に示すように、ログスペクトル解析部108は、再標本化部162、オクターブ分割部164、及び複数のバンドパスフィルタバンク166(BPFB)で構成することができる。
まず、再標本化部162に音声信号が入力される。すると、再標本化部162は、入力される音声信号のサンプリング周波数(例えば、44.1kHz)を所定のサンプリング周波数に変換する。所定のサンプリング周波数としては、例えば、オクターブの境界に対応する周波数(以下、境界周波数)を基準とし、境界周波数を2のべき乗倍した周波数が用いられる。例えば、音声信号のサンプリング周波数は、オクターブ4とオクターブ5との間の境界周波数1016.7Hzを基準とし、基準の25倍のサンプリング周波数(32534.7Hz)に変換される。このようにサンプリング周波数を変換することで、再標本化部162の後段で実施される帯域分割処理及びダウンサンプリング処理の結果として得られる最高及び最低周波数が、あるオクターブの最高及び最低周波数に一致する。その結果、音声信号から各音程の信号を抽出する処理を簡単化することができる。
さて、再標本化部162によりサンプリング周波数が変換された音声信号は、オクターブ分割部164に入力される。すると、オクターブ分割部164は、帯域分割処理とダウンサンプリング処理とを繰り返し実行することで、入力された音声信号をオクターブ毎に分割する。オクターブ分割部164で分割された各オクターブの信号は、オクターブ毎(O1、…、O8)に設けられたバンドパスフィルタバンク166(BPFB(O1)、…、BPFB(O8))に入力される。各バンドパスフィルタバンク166は、入力された各オクターブの音声信号から各音程の信号を抽出するために、12の音程に対応する通過帯域を持つ12の帯域通過フィルタで構成されている。例えば、オクターブ8のバンドパスフィルタバンク166(BPFB(O8))を通過することで、オクターブ8の音声信号から12音程(C8、C#8、D8、D#8、E8、F8、F#8、G8、G#8、A8、A#8、B8)の信号が抽出される。
各バンドパスフィルタバンク166から出力される信号により、各オクターブにおける12音程の信号強度(以下、エネルギー)を表すログスペクトルが得られる。図6は、ログスペクトル解析部108から出力されるログスペクトルの一例を示す説明図である。
図6の縦軸(音程)を参照すると、入力された音声信号は7つのオクターブに分割され、さらに各オクターブは、“C”、“C#”、“D”、“D#”、“E”、“F”、“F#”、“G”、“G#”、“A”、“A#”、“B”の12の音程に分割されている。一方、図6の横軸(時間)は、音声信号が時間軸に沿ってサンプリングされた際のフレーム番号を表している。例えば、再標本化部162において音声信号がサンプリング周波数127.0888[Hz]で再サンプリングされた場合、1フレームは、1[sec]/127.0888=7.8686[msec]に相当する時間間隔となる。また、図6に示したログスペクトルの色の濃淡は、各フレームにおける各音程のエネルギーの大きさを表す。例えば、位置S1が濃い色を示しており、位置S1に対応する時間に、位置S1に対応する音程(音程F)の音が強く発せられていることが分かる。なお、図6は、ある音声信号を入力信号としたときに得られるログスペクトルの一例である。従って、入力信号が異なれば、異なるログスペクトルが得られる。このようにして得られたログスペクトルは、特徴量計算式生成装置10等に入力され、楽曲解析部110で実施される楽曲解析処理に用いられる。
[2−4.楽曲解析部110の構成]
次に、楽曲解析部110の構成について説明する。楽曲解析部110は、学習アルゴリズムを用いて楽曲データを解析し、楽曲データに含まれる特徴量を抽出する手段である。特に、楽曲解析部110は、楽曲データに含まれるビート位置、楽曲構造、キー、コード進行、メロディーライン、ベースライン、各楽器音の存在確率等を抽出する。そのため、楽曲解析部110は、図2に示すように、ビート検出部132、楽曲構造解析部134、コード確率検出部136、キー検出部138、小節線検出部140、コード進行検出部142、メロディー検出部144、ベース検出部146、及びメタデータ検出部148を有する。
楽曲解析部110による主な処理の流れは、図7に示す通りである。但し、図7のフローチャートには、情報処理装置100の他の構成要素が実行する処理も含まれている点に注意されたい。図7に示すように、情報処理装置100は、楽曲データ保存部102に保存された楽曲データを順次読み出しつつ、楽曲ループ(S102〜S120)内の処理を実行する。まず、楽曲ループが開始されると(S102)、楽曲データ保存部102に保存された楽曲データのログスペクトルが楽曲解析部110により取得される(S104)。次いで、楽曲解析部110は、ビート検出部132によりビートの解析処理を実行し、楽曲データからビートを検出する(S106)。次いで、楽曲解析部110は、コード進行検出部142によりコード進行の解析処理を実行し、楽曲データのコード進行を検出する(S108)。
次いで、楽曲解析部110は、楽曲構造解析部134により楽曲構造を解析し、楽曲データから楽曲構造を検出する(S110)。次いで、楽曲解析部110は、メロディー検出部144、及びベース検出部146により楽曲データからメロディーライン、及びベースラインを検出する(S112)。次いで、楽曲解析部110は、メタデータ検出部148により時系列メタデータを検出する(S114)。ここで言う時系列メタデータとは、楽曲の演奏時間が進行するに伴って変化する楽曲データの特徴量のことである。次いで、楽曲解析部110は、メタデータ検出部148により、1曲単位で検出されるメタデータ(以下、1曲毎メタデータ)を検出する。なお、1曲毎メタデータは、楽曲データの全フレームを解析範囲とする解析処理で得られるメタデータである。
次いで、楽曲解析部110は、ステップS106〜S116で得られた解析結果及びメタデータをメタデータ保存部112に保存する(S118)。ステップS104〜S118の処理が終了すると(S120)、他の楽曲データについて楽曲ループが実行され、処理対象の全楽曲データについて楽曲ループ内の処理が終了すると一連の処理が完了する。なお、楽曲ループ内の処理は、音源分離部106で分離された音源の各組み合わせに対して実行される。組み合わせる音源としては、4音源(左チャネル音、右チャネル音、センター音、背景音)の全てが用いられる。組み合わせ方法としては、例えば、(1)4音源全て、(2)前景音のみ(左チャネル音、右チャネル音、センター音)、(3)左チャネル音+右チャネル音+背景音、(4)センター音+背景音がある。さらに、他の組み合わせ方法としては、(4)左チャネル音+右チャネル音、(5)背景音のみ、(6)左チャネル音のみ、(7)右チャネル音のみ、(8)センター音のみ等も考えられる。
以上、楽曲解析部110による主な処理の流れについて説明した。次に、楽曲解析部110に含まれる各構成要素の機能について、より詳細に説明する。
(2−4−1.ビート検出部132の構成)
まず、ビート検出部132の構成について説明する。ビート検出部132は、図8に示すように、ビート確率算出部202、及びビート解析部204により構成される。ビート確率算出部202は、楽曲データのログスペクトルに基づき、各フレームがビート位置である確率を算出する手段である。また、ビート解析部204は、ビート確率算出部202で算出された各フレームのビート確率に基づいてビート位置を検出する手段である。以下、これらの構成要素が持つ機能について、より詳細に説明する。
まず、ビート確率算出部202について説明する。ビート確率算出部202は、ログスペクトル解析部108から入力されたログスペクトルの所定の時間単位(例えば、1フレーム)毎に、その時間単位にビートが含まれる確率(以下、ビート確率)を算出する。なお、所定の時間単位を1フレームとした場合、ビート確率は、各フレームがビート位置(ビートの時間軸上の位置)に一致している確率とみなすことができる。ビート確率算出部202で用いるビート確率を算出するための計算式は、例えば、特徴量計算式生成装置10による学習アルゴリズムを用いて生成される。また、特徴量計算式生成装置10に与えられる学習用の教師データ及び評価データとしては、図9に示すようなものが用いられる。但し、図9では、ビート確率を算出する時間単位を1フレームとしている。
図9に示すように、特徴量計算式生成装置10には、ビート位置が既知である楽曲の音声信号から変換されたログスペクトルの断片(以下、部分ログスペクトル)、及び各部分ログスペクトルに関するビート確率が供給される。つまり、部分ログスペクトルが評価データとして、ビート確率が教師データとして特徴量計算式生成装置10に供給される。但し、部分ログスペクトルのウィンドウ幅は、ビート確率の算出の精度と処理コストのトレードオフを考慮して定められる。例えば、部分ログスペクトルのウィンドウ幅は、ビート確率を計算するフレームの前後7フレーム(計15フレーム)程度に設定される。
また、教師データとして供給されるビート確率は、例えば、各部分ログスペクトルの中央のフレームにビートが含まれるか否かを既知のビート位置に基づいて真値(1)又は偽値(0)で表したものである。但し、ここでは小節の位置は考慮されず、中央のフレームがビート位置に該当すればビート確率は1、該当しなければビート確率は0となる。図9の例では、部分ログスペクトルWa、Wb、Wc…Wnに対応するビート確率は、それぞれ1、0、1、…、0として与えられている。このような複数組の評価データ及び教師データに基づき、特徴量計算式生成装置10により、部分ログスペクトルからビート確率を算出するためのビート確率算出式P(W)が生成される。このようにしてビート確率算出式P(W)を生成すると、ビート確率算出部202は、解析対象の楽曲(以下、実施曲)のログスペクトルから、1フレーム毎に部分ログスペクトルを切り出し、各部分ログスペクトルに当該ビート確率算出式を適用してビート確率を順次算出する。
図10は、ビート確率算出部202により算出されたビート確率の一例を示す説明図である。図10の(A)は、ログスペクトル解析部108からビート確率算出部202へと入力されるログスペクトルの一例である。一方、図10の(B)は、ログスペクトル(A)に基づいてビート確率算出部202で算出されるビート確率を時間軸に沿って折れ線状に示したものである。例えば、フレーム位置F1を参照すると、フレーム位置F1には、部分ログスペクトルW1が対応することが分かる。つまり、フレームF1のビート確率P(W1)=0.95は、部分ログスペクトルW1から算出されたものである。同様に、フレーム位置F2のビート確率P(W2)は、ログスペクトルから切り出された部分ログスペクトルW2に基づいてビート確率P(W2)=0.1と計算されたものである。フレーム位置F1のビート確率P(W1)は大きく、フレーム位置F2のビート確率P(W2)は小さいことから、フレーム位置F1はビート位置に該当している可能性が高く、フレーム位置F2はビート位置に該当している可能性が低いと言える。
なお、ビート確率算出部202により使用されるビート確率算出式は、他の学習アルゴリズムにより生成されてもよい。但し、ログスペクトルには、例えば、打楽器によるスペクトル、発音によるスペクトルの発生、コード変化によるスペクトルの変化など、多様なパラメータが含まれる。打楽器によるスペクトルであれば、打楽器が鳴らされた時点がビート位置である確率が高い。一方、発声によるスペクトルであれば、発声が開始され時点がビート位置である確率が高い。そうした多様なパラメータを総合的に用いてビート確率を高い精度で算出するためには、特徴量計算式生成装置10又は特開2008−123011に記載された学習アルゴリズムを用いるのが好適である。上記のようにしてビート確率算出部202で算出されたビート確率は、ビート解析部204に入力される。
ビート解析部204は、ビート確率算出部202から入力された各フレームのビート確率に基づいてビート位置を決定する。図8に示すように、ビート解析部204は、オンセット検出部212、ビートスコア計算部214、ビート探索部216、一定テンポ判定部218、一定テンポ用ビート再探索部220、ビート決定部222、及びテンポ補正部224を含む。なお、オンセット検出部212、ビートスコア計算部214、及びテンポ補正部224には、ビート確率算出部202から各フレームのビート確率が入力される。
まず、オンセット検出部212は、ビート確率算出部202から入力されたビート確率に基づいて音声信号に含まれるオンセットを検出する。但し、ここで言うオンセットとは、音声信号の中で音が発せられた時点を指す。より具体的には、ビート確率が所定の閾値以上であって極大値をとる点のことをオンセットと呼ぶ。例えば、図11には、ある音声信号について算出されたビート確率に基づいて検出されるオンセットの例が示されている。但し、図11は、図10の(B)と同様に、ビート確率算出部202により算出されたビート確率を時間軸に沿って折れ線状に示したものである。図11に例示したビート確率のグラフにおいて、極大値をとる点はフレームF3、F4、F5の3点である。このうち、フレームF3及びF5については、その時点におけるビート確率が、予め与えられる所定の閾値Th1よりも大きい。一方、フレームF4の時点におけるビート確率は、所定の閾値Th1よりも小さい。従って、フレームF3及びF5の2点がオンセットとして検出される。
ここで、図12を参照しながら、オンセット検出部212によるオンセット検出処理の流れについて簡単に説明する。図12に示すように、まず、オンセット検出部212は、フレームごとに算出されたビート確率について1番目のフレームから順次ループさせる(S1322)。そして、オンセット検出部212は、各フレームについて、ビート確率が所定の閾値よりも大きいか否か(S1324)、及びビート確率が極大を示しているか否か(S1326)を判定する。ここでビート確率が所定の閾値よりも大きく、かつ、ビート確率が極大である場合、オンセット検出部212は、ステップS1328の処理へ進行する。一方、ビート確率が所定の閾値よりも小さいか、又はビート確率が極大でない場合、ステップS1328の処理はスキップされる。そして、ステップS1328では、オンセット位置のリストに現在時刻(又は、フレーム番号)が追加される(S1328)。その後、全てのフレームについての処理が終了した時点で、オンセット検出処理のループは終了する(S1330)。
以上説明したオンセット検出部212によるオンセット検出処理により、音声信号に含まれるオンセット位置のリスト(各オンセットに対応する時刻又はフレーム番号のリスト)が生成される。また、上記のオンセット検出処理により、例えば、図13に示すようなオンセットの位置が検出される。図13は、オンセット検出部212により検出されたオンセットの位置をビート確率に対応付けて示したものである。図13では、ビート確率の折れ線の上部に、オンセット検出部212で検出されたオンセットの位置が丸印で示されている。図13の例では、閾値Th1よりも大きいビート確率の極大値が15個のオンセットとして検出されている。このようにしてオンセット検出部212で検出されたオンセット位置のリストは、ビートスコア計算部214に入力される。
ビートスコア計算部214は、オンセット検出部212により検出された各オンセットについて、それぞれ一定のテンポ(又は一定のビート間隔)を有する何らかのビートに一致している度合いを表すビートスコアを計算する。
まず、ビートスコア計算部214は、図14に示すような注目オンセットを設定する。図14の例では、オンセット検出部212により検出されたオンセットのうち、フレーム位置Fk(フレーム番号k)に対応するオンセットが注目オンセットとして設定されている。また、フレーム位置Fkから所定の間隔dの整数倍だけ離れた一連のフレーム位置Fk−3、Fk−2、Fk−1、Fk、Fk+1、Fk+2、Fk+3が参照される。以下の説明においては、所定の間隔dをシフト量、シフト量dの整数倍離れたフレーム位置をシフト位置と呼ぶことにする。ビートスコア計算部214は、ビート確率が計算されたフレームの集合Fに含まれる全てのシフト位置(…、Fk−3、Fk−2、Fk−1、Fk、Fk+1、Fk+2、Fk+3、…)におけるビート確率の和を注目オンセットのビートスコアとする。例えば、フレーム位置Fiにおけるビート確率をP(Fi)とすると、注目オンセットのフレーム番号k及びシフト量dに対するビートスコアBS(k,d)は、下記の式(7)で表現される。なお、下記の式(7)で表現されるビートスコアBS(k,d)は、音声信号のk番目のフレームに位置するオンセットがシフト量dをビート間隔とする一定のテンポに乗っている可能性の高さを表すスコアであると言える。
…(7)
ここで、図15を参照しながら、ビートスコア計算部214によるビートスコア計算処理の流れについて簡単に説明する。
図15に示すように、まず、ビートスコア計算部214は、オンセット検出部212により検出されたオンセットについて、1番目のオンセットから順にループさせる(S1322)。さらに、ビートスコア計算部214は、注目オンセットに関し、全てのシフト量dについてループさせる(S1344)。ここでループの対象となるシフト量dは、演奏に使用され得る範囲の全てのビートの間隔の値である。そして、ビートスコア計算部214は、ビートスコアBS(k,d)を初期化する(例えば、ビートスコアBS(k,d)にゼロを代入する)(S1346)。次に、ビートスコア計算部214は、注目オンセットのフレーム位置Fdをシフトさせるシフト係数nについてループさせる(S1348)。そして、ビートスコア計算部214は、各シフト位置におけるビート確率P(Fk+nd)をビートスコアBS(k,d)に順次加算する(S1350)。その後、全てのシフト係数nについてループが終了すると(S1352)、ビートスコア計算部214は、注目オンセットのフレーム位置(フレーム番号k)、シフト量d、及びビートスコアBS(k,d)を記録する(S1354)。ビートスコア計算部214は、このようなビートスコアBS(k,d)の計算を、全てのオンセットの全てのシフト量について繰り返す(S1356、S1358)。
以上説明したビートスコア計算部214によるビートスコア計算処理により、オンセット検出部212で検出された全てのオンセットについて、複数のシフト量dにわたるビートスコアBS(k,d)が算出される。なお、上記のビートスコア計算処理により、図16に示すようなビートスコア分布図が得られる。このビートスコア分布図は、ビートスコア計算部214により出力されるビートスコアを可視化したものである。図16では、横軸にオンセット検出部212で検出されたオンセットが時系列で順に並べられている。図16の縦軸は、各オンセットについてビートスコアを算出したシフト量を表す。また、各点の色の濃淡は、各オンセットについてシフト量毎に算出されたビートスコアの大きさを表す。図16の例では、シフト量d1の近辺において、全てのオンセットにわたってビートスコアが高くなっている。仮にシフト量d1に相当するテンポで楽曲が演奏されたと仮定すれば、検出されたオンセットの多くがビートに一致する可能性が高い。そのため、このようなビートスコア分布図になるのである。ビートスコア計算部214で計算されたビートスコアは、ビート探索部216に入力される。
ビート探索部216は、ビートスコア計算部214で算出されたビートスコアに基づいて、尤もらしいテンポ変動を示すオンセット位置の経路を探索する。ビート探索部216による経路探索の手法としては、例えば、隠れマルコフモデルに基づくビタビ探索アルゴリズムが用いられる。また、ビート探索部216によるビタビ探索には、例えば、図17に模式的に示したように、時間軸(横軸)の単位にオンセット番号を設定し、観測系列(縦軸)にビートスコア算出時に用いたシフト量を設定する。そして、ビート探索部216は、時間軸及び観測系列の各値で定義される各ノードを結ぶビタビ経路を探索する。言い換えると、ビート探索部216は、ビートスコア計算部214においてビートスコアを計算する際に用いたオンセットとシフト量の全ての組合せの1つ1つを経路探索の対象ノードとする。なお、各ノードのシフト量は、各ノードについて想定されるビート間隔に等しい。そこで、以下の説明では、各ノードのシフト量をビート間隔と呼ぶことがある。
このようなノードに対し、ビート探索部216は、時間軸に沿っていずれかのノードを順に選択していき、選択された一連のノードで形成されるビタビ経路を評価する。このとき、ビート探索部216は、ノードの選択においてオンセットのスキップが許可される。例えば、図17の例では、k−1番目のオンセットの次に、k番目のオンセットがスキップされ、k+1番目のオンセットが選択されている。これは、オンセットの中にビートであるオンセットとビートでないオンセットが通常混在しており、ビートでないオンセットを経由しない経路も含めて、尤もらしい経路を探索しようとするためである。
経路の評価には、例えば、(1)ビートスコア、(2)テンポ変化スコア、(3)オンセット移動スコア、及び(4)スキップペナルティの4つの評価値を用いることができる。このうち、(1)ビートスコアは、各ノードについてビートスコア計算部214により計算されたビートスコアである。一方、(2)テンポ変化スコア、(3)オンセット移動スコア、及び(4)スキップペナルティは、ノード間の遷移に対して与えられる。ノード間の遷移に対して与えられる評価値のうち、(2)テンポ変化スコアは、楽曲の中でテンポが通常緩やかに変動するものであるという経験的な知識に基づいて与えられる評価値である。そのため、遷移前のノードのビート間隔と遷移後のノードのビート間隔との差が小さい程、テンポ変化スコアには高い評価値が与えられる。
ここで、図18を参照しながら、(2)テンポ変化スコアについて、より詳細に説明する。図18の例では、現在のノードとしてノードN1が選択されている。このとき、ビート探索部216は、次のノードとしてノードN2〜N5のいずれかを選択する可能性がある。なお、N2〜N5以外のノードを選択する可能性もあるが、説明の都合上、ここではノードN2〜N5の4つのノードについて述べる。ここでビート探索部216がノードN4を選択した場合、ノードN1とノードN4の間にはビート間隔の差が無いため、テンポ変化スコアとしては最も高い値が与えられる。一方、ビート探索部216がノードN3又はN5を選択した場合、ノードN1と、ノードN3又はN5との間にはビート間隔に差があり、ノードN4を選択した場合に比べて低いテンポ変化スコアが与えられる。また、ビート探索部216がノードN2を選択した場合、ノードN1とノードN2との間のビート間隔の差はノードN3又はN5を選択した場合よりも大きい。そのため、さらに低いテンポ変化スコアが与えられる。
次に、図19を参照しながら、(3)オンセット移動スコアについて、より詳細に説明する。このオンセット移動スコアは、遷移の前後のノードのオンセット位置の間隔が遷移元のノードのビート間隔と整合しているか否かに応じて与えられる評価値である。図19の(A)では、現在のノードとして、k番目のオンセットのビート間隔d2のノードN6が選択されている。また、ビート探索部216が次に選択し得るノードとして、2つのノードN7及びN8が示されている。このうち、ノードN7はk+1番目のオンセットのノードであり、k番目のオンセットとk+1番目のオンセットの間隔(例えば、フレーム番号の差)はD7である。一方、ノードN8はk+2番目のオンセットのノードであり、k番目のオンセットとk+2番目のオンセットの間隔はD8である。
ここで、経路上の全てのノードが一定のテンポにおけるビート位置に必ず一致している理想的な経路を仮定すると、隣り合うノード間のオンセット位置の間隔は、各ノードのビート間隔の整数倍(休符が無ければ等倍)となるはずである。そこで、図19の(B)に示すように、現在のノードN6との間でオンセット位置の間隔がノードN6のビート間隔d2の整数倍に近いほど高いオンセット移動スコアを与える。図19の(B)の例では、ノードN6とノードN7との間の間隔D7よりも、ノードN6とノードN8との間の間隔D8の方がノードN6のビート間隔d2の整数倍に近いため、ノードN6からノードN8への遷移に対し、より高いオンセット移動スコアが与えられる。
次に、図20を参照しながら、(4)スキップペナルティについて、より詳細に説明する。このスキップペナルティは、ノードの遷移におけるオンセットの過剰なスキップを抑制するための評価値である。従って、1度の遷移でオンセットを多くスキップするほど低いスコアが、スキップしないほど高いスコアが与えられる。なお、ここではスコアが低いほどペナルティが大きいものとする。図20の例では、現在のノードとして、k番目のオンセットのノードN9が選択されている。また、図20の例には、ビート探索部216が次に選択し得るノードとして、3つのノードN10、N11及びN12が示されている。ノードN10はk+1番目、ノードN11はk+2番目、ノードN12はk+3番目のオンセットのノードである。
従って、ノードN9からノードN10へ遷移する場合、オンセットのスキップは発生しない。一方、ノードN9からノードN11へ遷移する場合、k+1番目のオンセットがスキップされる。また、ノードN9からノードN12へ遷移する場合、k+1番目及びk+2番目のオンセットがスキップされる。そこで、スキップペナルティの値は、ノードN9からノードN10へ遷移する場合に相対的に高い値が、ノードN9からノードN11へ遷移する場合に中程度の値が、ノードN9からノードN12へ遷移する場合により低い値が与えられる。その結果、経路選択に際して、ノード間の間隔を一定とするために過剰に多くのオンセットがスキップされてしまう現象を防ぐことができる。
以上、ビート探索部216における探索経路の評価に用いられる4つの評価値について説明した。図17を用いて説明した経路の評価は、選択された経路について、その経路に含まれる各ノード又はノード間の遷移に対して与えられる上記(1)〜(4)の評価値を順次乗算することにより行われる。そして、ビート探索部216は、想定し得る全ての経路の中で、各経路内での評価値の積が最も高い経路を最適な経路として決定する。このようにして決定された経路は、例えば、図21のようになる。図21は、ビート探索部216により最適な経路として決定されたビタビ経路の一例を示すものである。図21の例では、図16に示したビートスコア分布図の上に、ビート探索部216により決定された最適経路が点線枠で示されている。図21の例においてビート探索部216により探索された楽曲のテンポは、ビート間隔d3を中心に変動していることが分かる。なお、ビート探索部216により決定された最適経路(最適経路に含まれるノードのリスト)は、一定テンポ判定部218、一定テンポ用ビート再探索部220、及びビート決定部222に入力される。
一定テンポ判定部218は、ビート探索部216により決定された最適経路が、各ノードについて想定されるビート間隔の分散の小さい一定テンポを示しているか否かを判定する。まず、一定テンポ判定部218は、ビート探索部216から入力された最適経路に含まれるノードのビート間隔の集合について分散を計算する。そして、一定テンポ判定部218は、算出した分散が予め与えられる所定の閾値よりも小さい場合にテンポが一定であると判定し、所定の閾値よりも大きい場合にテンポが一定でないと判定する。例えば、図22に示すように、一定テンポ判定部218によりテンポが判定される。
例えば、図22の(A)に示した例においては、点線枠で囲まれたオンセット位置の最適経路のビート間隔は時間に応じて変動している。このような経路については、一定テンポ判定部218による閾値判定の結果、テンポが一定でないと判定される。一方、図22の(B)に示した例においては、点線枠で囲まれたオンセット位置の最適経路のビート間隔は楽曲全体にわたってほぼ一定である。このような経路については、一定テンポ判定部218による閾値判定の結果、テンポが一定であると判定される。このようにして得られた一定テンポ判定部218による閾値判定の結果は、一定テンポ用ビート再探索部220に入力される。
一定テンポ用ビート再探索部220は、ビート探索部216で抽出された最適経路が一定テンポ判定部218で一定のテンポを示していると判定された場合に、最も頻度の高いビート間隔の周辺のみに探索の対象ノードを限定して経路探索を再実行する。例えば、一定テンポ用ビート再探索部220は、図23に例示するような方法で経路の再探索処理を実行する。なお、一定テンポ用ビート再探索部220は、図17と同様にビート間隔を観測系列とする時間軸(オンセット番号)に沿ったノードの集合について経路の再探索処理を実行する。
例えば、ビート探索部216で最適経路として決定された経路に含まれるノードのビート間隔の最頻値がd4であり、その経路に対応するテンポが一定テンポ判定部218で一定であると判定されたものと仮定する。この場合、一定テンポ用ビート再探索部220は、ビート間隔dがd4−Th2≦d≦d4+Th2(Th2は所定の閾値)を満たすノードのみを探索の対象として経路を再度探索する。図23の例では、k番目のオンセットについてノードN12〜N16の5つのノードが示されている。このうち、一定テンポ用ビート再探索部220においては、ノードN13〜N15のビート間隔は探索範囲(d4−Th2≦d≦d4+Th2)に含まれる。これに対し、ノードN12及びN16のビート間隔は上記探索範囲に含まれない。そのため、k番目のオンセットについては、ノードN13〜N15のみが一定テンポ用ビート再探索部220による経路探索処理の対象となる。
なお、一定テンポ用ビート再探索部220による経路の再探索処理の内容は、探索の対象とするノードの範囲を除き、ビート探索部216による経路探索処理と同様である。このような一定テンポ用ビート再探索部220による経路の再探索処理により、テンポが一定の楽曲について、経路探索の結果として部分的に発生する可能性のあるビート位置の誤りを減少させることができる。一定テンポ用ビート再探索部220により再決定された最適経路は、ビート決定部222に入力される。
ビート決定部222は、ビート探索部216により決定された最適経路、又は一定テンポ用ビート再探索部220により再決定された最適経路と、それら経路に含まれる各ノードのビート間隔とに基づいて音声信号に含まれるビート位置を決定する。例えば、ビート決定部222は、図24に示すような方法でビート位置を決定する。図24の(A)には、オンセット検出部212で得られたオンセット検出結果の一例が示されている。この例には、オンセット検出部212で検出されたk番目のオンセットの周囲14個のオンセットが示されている。一方、図24の(B)は、ビート探索部216又は一定テンポ用ビート再探索部220で決定される最適経路のオンセットが示されている。(B)の例では、(A)に示された14個のオンセットのうち、k−7番目、k番目、k+6番目のオンセット(フレーム番号Fk−7、Fk、Fk+6)が最適経路に含まれている。また、k−7番目のオンセットのビート間隔(対応するノードのビート間隔に相当)はdk−7、k番目のオンセットのビート間隔はdkである。
このようなオンセットについて、まず、ビート決定部222は、最適経路に含まれるオンセットの位置をその楽曲のビート位置であるとみなす。そして、ビート決定部222は、最適経路に含まれる隣り合うオンセット間のビートを各オンセットのビート間隔に応じて補完する。このとき、ビート決定部222は、最適経路上で隣り合うオンセットの間のビートを補完するために、まず、補完するビートの数を決定する。例えば、ビート決定部222は、図25に示すように、隣り合う2つのオンセットの位置をFh及びFh+1、オンセット位置Fhにおけるビート間隔をdhとする。この場合、Fh及びFh+1の間に補完されるビート数Bfillは、下記の式(8)で与えられる。
…(8)
但し、Round(…)は、…の小数桁を四捨五入して整数に丸めることを示す。上記の式(8)によると、ビート決定部222により補完されるビート数は、隣り合うオンセットの間隔をビート間隔で割った値が整数に丸められた後、植木算の考え方に基づいて1を引いた数となる。
次に、ビート決定部222は、最適経路上で隣り合うオンセットの間にビートが等間隔に配置されるように、決定したビートの数だけビートを補完する。図24の(C)には、ビート補間後のオンセットが示されている。(C)の例では、k−7番目のオンセットとk番目のオンセットとの間に2つのビートが、k番目のオンセットとk+6番目のオンセットとの間に2つのビートが補完されている。但し、ビート決定部222により補完されるビートの位置は、必ずしもオンセット検出部212により検出されたオンセットの位置に一致しない。このような構成にすることで、局所的にビート位置から外れて発せられた音に影響されずにビートの位置が決定される。また、ビート位置において休符が存在し、その位置で音が発せられなかった場合でも適切にビート位置を認識することができる。このようにしてビート決定部222により決定されたビート位置のリスト(最適経路上のオンセットとビート決定部222により補完されたビートを含む)は、テンポ補正部224に入力される。
テンポ補正部224は、ビート決定部222により決定されたビート位置で表されるテンポを補正する。補正前のテンポは、楽曲本来のテンポの2倍、1/2倍、3/2倍、2/3倍などの定数倍(図26を参照)になっている可能性がある。そのため、テンポ補正部224では、誤って定数倍に認識しているテンポを補正して楽曲本来のテンポを再現する。ここで、ビート決定部222で決定されるビート位置のパターンを示した図26の例を参照する。図26の例においては、図示された時間の範囲内でパターン(A)には6つのビートが含まれている。これに対し、パターン(B)には、同じ時間の範囲内に12のビートが含まれている。つまり、パターン(B)のビート位置は、パターン(A)のビート位置を基準として2倍のテンポを示している。
一方、パターン(C−1)には、同じ時間の範囲内に3つのビートが含まれている。つまり、パターン(C−1)のビート位置は、パターン(A)のビート位置を基準として1/2倍のテンポを示している。また、パターン(C−2)には、パターン(C−1)と同様に、同じ時間の範囲内に3つのビートを含み、パターン(A)のビート位置を基準として1/2倍のテンポを示している。但し、パターン(C−1)とパターン(C−2)とは、基準のテンポからテンポを変更する際に残されるビート位置が異なる。テンポ補正部224によるテンポの補正は、例えば、次の(S1)〜(S3)の手順により行われる。
(S1)波形に基づいて推定される推定テンポの決定
(S2)複数の基本倍率のうち最適な基本倍率の決定
(S3)基本倍率が1倍となるまで(S2)を繰返し
まず、(S1)波形に基づいて推定される推定テンポの決定について説明する。テンポ補正部224は、音声信号の波形に現れる音質的特徴から妥当であると推定される推定テンポを決定する。推定テンポの決定には、例えば、特徴量計算式生成装置10又は特開2008−123011に記載された学習アルゴリズムで生成される推定テンポ判別用の計算式(推定テンポ判別式)が用いられる。例えば、図27に示すように、特徴量計算式生成装置10には、評価データとして複数の楽曲のログスペクトルが供給される。図27の例では、ログスペクトルLS1〜LSnが供給されている。さらに、教師データとして、各楽曲を人間が聴いて判定した正解テンポが供給される。図27の例では、教師データとして、各ログスペクトルについての正解テンポ(LS1:100、…、LSn:60)が供給されている。このような複数組の評価データと教師データとに基づいて推定テンポ判別式が生成される。そして、テンポ補正部224は、生成した推定テンポ判別式を用いて実施曲の推定テンポを算出する。
次に、(S2)複数の基本倍率のうち最適な基本倍率の決定方法について説明する。テンポ補正部224は、複数の基本倍率のうち、補正後のテンポが楽曲の本来のテンポに最も近い基本倍率を決定する。ここで、基本倍率とは、テンポの補正に用いる定数比の基本単位となる倍率である。基本倍率としては、例えば、1/3倍、1/2倍、2/3倍、1倍、3/2倍、2倍、3倍の7種類の倍率が用いられる。但し、本実施形態の適用範囲はこれらの例に限定されず、例えば、1/3倍、1/2倍、1倍、2倍、3倍の5種類の倍率で基本倍率が構成されていてもよい。テンポ補正部224は、最適な基本倍率を決定するために、まず、各基本倍率でビート位置を補正した後の平均ビート確率をそれぞれ計算する。但し、基本倍率1倍については、ビート位置を補正しない場合の平均ビート確率を計算する。例えば、テンポ補正部224により、図28に示すような方法で基本倍率毎に平均ビート確率が算出される。
図28には、ビート確率算出部202で算出されたビート確率が時間軸に沿って折れ線状に示されている。なお、横軸には、いずれかの基本倍率に応じて補正された3つのビートのフレーム番号Fh−1、Fh、及びFh+1が示されている。ここで、フレーム番号Fhにおけるビート確率をBP(h)とすると、基本倍率rに応じて補正されたビート位置の集合F(r)の平均ビート確率BPAVG(r)は、下記の式(9)により与えられる。但し、m(r)は、集合F(r)に含まれるフレーム番号の個数を示す。
…(9)
図26のパターン(C−1)及びパターン(C−2)を用いて説明したように、基本倍率r=1/2の場合、ビート位置の候補は2通り存在する。そのため、テンポ補正部224は、2通りのビート位置の候補についてそれぞれ平均ビート確率BPAVG(r)を計算し、平均ビート確率BPAVG(r)の高い方のビート位置を基本倍率r=1/2に応じた補正後のビート位置として採用する。同様に、基本倍率r=1/3の場合、ビート位置の候補は3通り存在する。そこで、テンポ補正部224は、3通りのビート位置の候補について、それぞれ平均ビート確率BPAVG(r)を計算し、平均ビート確率BPAVG(r)の最も高いビート位置を基本倍率r=1/3に応じた補正後のビート位置として採用する。
このようにして基本倍率ごとの平均ビート確率を計算すると、テンポ補正部224は、推定テンポと平均ビート確率に基づいて、基本倍率ごとに補正後のテンポの尤もらしさ(以下、テンポ尤度)を算出する。テンポ尤度は、例えば、推定テンポを中心とするガウス分布で表されるテンポ確率と平均ビート確率との積で表すことができる。例えば、テンポ補正部224により、図29に示すようなテンポ尤度が算出される。
図29の(A)は、各基本倍率についてテンポ補正部224で算出された補正後の平均ビート確率を示している。また、図29の(B)は、テンポ補正部224により音声信号の波形に基づいて推定された推定テンポを中心とし、所定の分散σ1を持つガウス分布で表現されるテンポ確率を示している。なお、図29の(A)及び(B)の横軸は、各基本倍率に応じてビート位置を補正した後のテンポの対数を表す。テンポ補正部224は、基本倍率毎に平均ビート確率とテンポ確率とを乗算して(C)に示すようなテンポ尤度を算出する。図29の例では、基本倍率が1倍の場合と1/2倍の場合とで平均ビート確率がほぼ同じとなるが、1/2倍に補正したテンポの方がより推定テンポに近い(テンポ確率が高い)。そのため、算出されたテンポ尤度は1/2倍に補正したテンポの方が高くなる。テンポ補正部224は、このようにしてテンポ尤度を算出し、最もテンポ尤度の高い基本倍率を補正後のテンポが楽曲本来のテンポに最も近くなる基本倍率に決定する。
このようにして尤もらしいテンポの決定に推定テンポから得られるテンポ確率が加味されることで、局所的な音声の波形からは判別することが困難な定数倍の関係にあるテンポの候補から、適切なテンポを精度よく決定することができる。このようにしてテンポが補正されると、テンポ補正部224は、(S3)基本倍率が1倍となるまで(S2)の処理を繰返す。具体的には、テンポ補正部224により、最もテンポ尤度の高い基本倍率が1倍となるまで、基本倍率ごとの平均ビート確率の計算とテンポ尤度の算出とが繰り返される。その結果、テンポ補正部224による補正前のテンポが楽曲の本来のテンポの1/4倍や1/6倍、4倍、6倍などであったとしても、基本倍率の組合せで得られる適切な補正倍率(例えば、1/2倍×1/2倍=1/4倍)によりテンポが補正される。
ここで、図30を参照しながら、テンポ補正部224による補正処理の流れについて簡単に説明する。図30に示すように、まず、テンポ補正部224は、特徴量計算式生成装置10により予め生成された推定テンポ判別式を用いて、音声信号から推定テンポを決定する(S1442)。次いで、テンポ補正部224は、複数の基本倍率(1/3、1/2…など)について順次ループさせる(S1444)。そのループ内において、テンポ補正部224は、各基本倍率に応じてビート位置を変更し、テンポを補正する(S1446)。次いで、テンポ補正部224は、補正後のビート位置における平均ビート確率を計算する(S1448)。次いで、テンポ補正部224は、ステップS1448で計算した平均ビート確率とステップS1442で決定した推定テンポとに基づいて、基本倍率ごとのテンポ尤度を計算する(S1450)。
次いで、テンポ補正部224は、全ての基本倍率のループが終了すると(S1452)、テンポ尤度が最も高い基本倍率を決定する(S1454)。次いで、テンポ補正部224は、テンポ尤度が最も高い基本倍率が1倍か否かを判定する(S1456)。ここで、テンポ尤度が最も高い基本倍率が1倍であれば、テンポ補正部224は、一連の補正処理を終了する。一方、テンポ尤度が最も高い基本倍率が1倍でなければ、テンポ補正部224は、ステップS1444の処理に戻る。このようにしてテンポ尤度が最も高い基本倍率に応じて補正されたテンポ(ビート位置)に基づき、再度いずれかの基本倍率によるテンポの補正が行われる。
以上、ビート検出部132の構成について説明した。上記の処理により、ビート検出部132からは、図31に示すようなビート位置の検出結果が出力される。このようなビート検出部132による検出結果は、楽曲構造解析部134に入力され、楽曲の構造解析に用いられる。
(2−4−2.楽曲構造解析部134の構成)
次に、楽曲構造解析部134について説明する。図32に示すように、楽曲構造解析部134には、ログスペクトル解析部108からログスペクトルが、ビート解析部204からビート位置が入力される。そこで、楽曲構造解析部134は、これらログスペクトル及びビート位置に基づいて音声信号に含まれるビート区間同士の音声の類似確率を計算する。図32に示すように、楽曲構造解析部134は、ビート区間特徴量計算部226、相関計算部228、及び類似確率生成部230を含む。
ビート区間特徴量計算部226は、ビート解析部204で検出された各ビートについて、そのビートから次のビートまでのビート区間における部分ログスペクトルの特徴を表すビート区間特徴量を計算する。ここで、図33を参照しながら、ビート、ビート区間、及びビート区間特徴量の相互関係について簡単に説明する。図33には、ビート解析部204で検出された6つのビート位置B1〜B6が示されている。この例において、ビート区間とは、音声信号をビート位置で区分した区間であり、各ビートから次のビートまでの区間を表す。例えば、区間BD1はビートB1からビートB2までのビート区間、区間BD2はビートB2からビートB3までのビート区間、区間BD3はビートB3からビートB4までのビート区間である。ビート区間特徴量計算部226は、各ビート区間BD1〜BD6において切り出された部分ログスペクトルからビート区間特徴量BF1〜BF6をそれぞれ計算する。
ビート区間特徴量計算部226は、図34及び図35に示すような方法でビート区間特徴量を計算する。図34の(A)には、ビート区間特徴量計算部226により切り出された1つのビートに対応するビート区間BDの部分ログスペクトルが示されている。ビート区間特徴量計算部226は、このような部分ログスペクトルについて音程(オクターブ数×12音)ごとにエネルギーを時間平均する。この時間平均により、音程別の平均エネルギーが算出される。図34の(B)は、ビート区間特徴量計算部226により算出される音程別の平均エネルギーの大きさを示したものである。
次に、図35を参照する。図35の(A)は、図34の(B)と同じ音程別平均エネルギーの大きさを示したものである。ビート区間特徴量計算部226は、異なるオクターブにおける12音の同じ音名に関するオクターブ数分の平均エネルギー値を所定の重みで重み付け加算し、12音別のエネルギーを算出する。例えば、図35の(B)及び(C)に示す例では、nオクターブ分のC音の平均エネルギー(C1、C2、…、Cn)が所定の重み(W1、W2、…、Wn)を用いて重み付け加算され、C音のエネルギー値ENCが算出されている。また、同様に、nオクターブ分のB音の平均エネルギー(B1、B2、…、Bn)が所定の重み(W1、W2、…、Wn)を用いて重み付け加算され、B音のエネルギー値ENBが算出されている。C音とB音の中間の10の音(C#〜A#)についても同様である。その結果、12音別の各エネルギー値ENC、ENC#、…、ENBを要素とする12次元のベクトルが生成される。ビート区間特徴量計算部226は、ビート区間特徴量BFとして、これら12音別エネルギー(12次元ベクトル)をビートごとに計算し、相関計算部228に入力する。
なお、重み付け加算に用いるオクターブ別の重みW1、W2、…、Wnの値は、一般的な楽曲においてメロディーやコードが明確に現れる中音域ほど大きい値とするのが好適である。このような構成にすることで、メロディーやコードの特徴をより強く反映して楽曲構造を解析することができるようになる。
相関計算部228は、ビート区間特徴量計算部226から入力されるビート区間特徴量(ビート区間ごとの12音別エネルギー)を用いて、音声信号に含まれるビート区間の全ての組合せに関するビート区間同士の相関係数を計算する。例えば、相関計算部228は、図36に示すような方法で相関係数を計算する。図36には、ログスペクトルを区分するビート区間の中で相関係数を計算する組み合わせの一例として、第1注目ビート区間BDi及び第2注目ビート区間BDjが示されている。
相関計算部228は、例えば、上記2つの注目ビート区間の間の相関係数を計算するために、まず、第1注目ビート区間BDiの前後N区間(図31の例ではN=2、計5区間)にわたる12音別エネルギーを取得する。同様に、相関計算部228は、第2注目ビート区間BDjの前後N区間にわたる12音別エネルギーを取得する。そして、相関計算部228は、取得した第1注目ビート区間BDiの前後N区間の12音別エネルギーと第2注目ビート区間BDjの前後N区間の12音別エネルギーとの間で相関係数を計算する。相関計算部228は、このような相関係数の計算を全ての第1注目ビート区間BDiと第2注目ビート区間BDjの組合せについて計算し、計算結果を類似確率生成部230に入力する。
類似確率生成部230は、予め生成される変換曲線を用いて、相関計算部228から入力されたビート区間同士の相関係数を類似確率に変換する。ここで言う類似確率とは、ビート区間同士の音声の内容が相互に類似している度合いを表すものである。相関係数を類似確率に変換する際に用いられる変換曲線は、例えば、図37に示すようなものである。
図37の(A)は、予め求められた2つの確率分布である。これら2つの確率分布は、同じ音声の内容を有しているビート区間同士の相関係数の確率分布、及び異なる音声の内容を有しているビート区間同士の相関係数の確率分布を示している。図37の(A)から理解されるように、相関係数が低いほど音声の内容が同じである確率は低く、相関係数が高いほど音声の内容が同じである確率は高い。そのため、図37の(B)に示すような相関係数からビート区間同士の類似確率を導く変換曲線を予め生成することができる。類似確率生成部230は、このような予め生成しておいた変換曲線を用いて、例えば相関計算部228から入力された相関係数CO1を類似確率SP1へ変換する。
このようにして変換された類似確率は、例えば、図38のように可視化することができる。図38の縦軸は第1注目ビート区間の位置、横軸は第2注目ビート区間の位置に対応する。また、二次元平面上にプロットされた色の濃淡は、その座標に対応する第1注目ビート区間と第2注目ビート区間との間の類似確率を表す。例えば、第1注目ビート区間i1と、実質的に同じビート区間である第2注目ビート区間j1との間の類似確率は当然に高い値を示し、両者が同じ音声の内容を有していることを示している。さらに楽曲が進み、第2注目ビート区間j2に到達すると、第1注目ビート区間i1と第2注目ビート区間j2との間の類似確率は再び高い値となっている。つまり、第2注目ビート区間j2では、第1注目ビート区間i1とほぼ同じ内容の音声が演奏されている可能性が高いことが分かる。このように楽曲構造解析部134により取得されたビート区間同士の類似確率は、後述する小節線検出部140及びコード進行検出部142に入力される。
なお、本実施形態では、ビート区間内のエネルギーの時間平均をビート区間特徴量の計算に用いることから、楽曲構造解析部134による楽曲構造の解析においてビート区間内の時間的なログスペクトルの変化の情報は考慮されない。例えば、あるビート区間と他のビート区間で(例えば、演奏者のアレンジなどにより)同じメロディーが時間的なずれをもって演奏されたとしても、そのずれがビート区間内に閉じている限りは演奏された内容が同一であると判定される。
さて、上記のようにしてビート区間同士の類似確率を算出すると、楽曲構造解析部134は、類似確率が高いビート区間で楽曲データを分割し、分割区間毎に楽曲構造を解析する。楽曲構造の解析方法に関しては、例えば、特開2007−156434号公報に記載された技術を利用することができる。まず、楽曲構造解析部134は、各分割区間に関して所定の特徴量を抽出する。ここで抽出する特徴量としては、例えば、各分割区間の音量、音源に関する情報、周波数のバランス、楽器音の数、各楽器音の割合等が用いられる。また、類似確率の高い分割区間の出現回数や繰り返し回数等が特徴量として分割区間毎に参照される。そして、これらの特徴量について学習アルゴリズムにより学習処理が行われ、各分割区間のログスペクトルから楽曲構造を算出するための計算式が生成される。
上記の学習処理の際、学習アルゴリズムには、例えば、評価データとしてサビ部分の部分ログスペクトルが与えられ、教師データとしてサビ部分を表す判定値が与えられる。また、イントロ部分、間奏部分、Aメロ部分、Bメロ部分等に関しても、評価データとして各部分の部分ログスペクトルが与えられ、教師データとして各部分を表す判定値が与えられることで、各部分の判定値又は判定確率を算出する計算式が得られる。楽曲構造解析部134は、生成された計算式に部分ログスペクトルを入力し、各分割区間の楽曲構造を抽出する。その結果、例えば、図39に示すような楽曲構造の解析結果が得られる。このようにして得られた楽曲構造の解析結果は、メタデータ保存部112に保存される。なお、図39のIntroは、イントロ部分を表し、Verse AはAメロ部分を表す。また、Chorusはサビ部分を表す。図39の例では、時間0msからイントロが、時間72595msからサビが始まることが分かる。
(2−4−3.コード確率検出部136)
次に、コード確率検出部136について説明する。コード確率検出部136は、ビート解析部204で検出された各ビートのビート区間内で各コードが演奏されている確率(以下、コード確率)を算出する。コード確率検出部136で算出されるコード確率は、キー検出部138によるキー検出処理に用いられるものである。図40に示すように、コード確率検出部136は、ビート区間特徴量計算部232、ルート別特徴量準備部234、及びコード確率計算部236を含む。
上記の通り、コード確率検出部136には、ビート検出部132で検出されたビート位置の情報とログスペクトルとが入力される。そこで、ビート区間特徴量計算部232は、ビート解析部204で検出された各ビートについてビート区間内の音声信号の特徴を表すビート区間特徴量として12音別エネルギーを計算する。そして、ビート区間特徴量計算部232は、ビート区間特徴量としての12音別エネルギーを計算し、ルート別特徴量準備部234に入力する。ルート別特徴量準備部234は、ビート区間特徴量計算部232から入力される12音別エネルギーに基づいてビート区間ごとのコード確率の算出に用いられるルート別特徴量を生成する。例えば、ルート別特徴量準備部234は、図41及び図42に示す方法でルート別特徴量を生成する。
まず、ルート別特徴量準備部234は、注目するビート区間BDiについて、前後N区間分の12音別エネルギーを抽出する(図41を参照)。ここで抽出された前後N区間分の12音別エネルギーは、C音をコードのルート(根音)とする特徴量とみなすことができる。図41の例においては、N=2であるため、C音をルートとする5区間分のルート別特徴量(12×5次元)が抽出されている。次いで、ルート別特徴量準備部234は、C音をルートとする5区間分のルート別特徴量の12音の要素位置を所定数だけシフトさせて、C#音からB音までをそれぞれルートとする11通りの5区間分のルート別特徴量を生成する(図42を参照)。なお、要素位置をシフトさせるシフト数は、C#音をルートとする場合は1、D音をルートとする場合は2、…、B音をルートとする場合は11などとなる。その結果、ルート別特徴量準備部234により、C音からB音までの12音をそれぞれルートとするルート別特徴量(それぞれ12×5次元)が12音分生成される。
ルート別特徴量準備部234は、このようなルート別特徴量生成処理を全てのビート区間について実行し、各区間についてコード確率の算出に用いるルート別特徴量を準備する。なお、図41及び図42の例では、1つのビート区間について準備される特徴量は、12×5×12次元のベクトルとなる。ルート別特徴量準備部234により生成されたルート別特徴量は、コード確率計算部236に入力される。コード確率計算部236は、ルート別特徴量準備部234から入力されたルート別特徴量を用いて、各コードが演奏されている確率(コード確率)をビート区間ごとに算出する。ここで、各コードとは、例えば、ルート(C、C#、D…)や構成音の数(三和音、四和音(7th)、五和音(9th))、及び長短(メジャー/マイナー)などにより区別される個々のコードのことを言う。コード確率の算出には、例えば、ロジスティック回帰分析によって予め学習されたコード確率算出式を用いる。
例えば、コード確率計算部236は、図43に示す方法でコード確率の計算に用いるコード確率算出式を生成する。なお、コード確率算出式の学習は、学習したいコードの種類ごとに行われる。例えば、メジャーコード用のコード確率算出式、マイナーコード用のコード確率算出式、7thコード用のコード確率算出式、9thコード用のコード確率算出式などについて、それぞれ以下で説明する学習処理が行われる。
まず、ロジスティック回帰分析における独立変数として、正解のコードが既知であるビート区間ごとのルート別特徴量(例えば、図42で説明した12×5×12次元のベクトル)を複数用意する。また、ビート区間ごとのルート別特徴量のそれぞれについて、ロジスティック回帰分析により生起確率を予測するためのダミーデータを用意する。例えば、メジャーコード用のコード確率算出式を学習する場合、ダミーデータの値は、既知のコードがメジャーコードであれば真値(1)、それ以外なら偽値(0)となる。一方、マイナーコード用のコード確率算出式を学習する場合、ダミーデータの値は、既知のコードがマイナーコードであれば真値(1)、それ以外なら偽値(0)となる。7thコード、9thコード等についても同様である。
このような独立変数とダミーデータを利用し、十分な数のビート区間ごとのルート別特徴量についてロジスティック回帰分析を行うことで、ビート区間ごとのルート別特徴量から、コード確率を算出するためのコード確率算出式が生成される。そして、コード確率計算部236は、生成したコード確率算出式にルート別特徴量準備部234から入力されたルート別特徴量を適用し、各種類のコードについてビート区間ごとにコード確率を順次算出する。コード確率計算部236によるコード確率の計算処理は、例えば、図44に示すような方法で行われる。図44の(A)には、ビート区間ごとのルート別特徴量のうち、C音をルートとするルート別特徴量が示されている。
例えば、コード確率計算部236は、C音をルートとするルート別特徴量にメジャーコード用のコード確率算出式を適用し、各ビート区間についてコードが“C”であるコード確率CPCを計算する。また、コード確率計算部236は、C音をルートとするルート別特徴量にマイナーコード用のコード確率算出式を適用し、当該ビート区間についてコードが“Cm”であるコード確率CPCmを計算する。同様に、コード確率計算部236は、C#音をルートとするルート別特徴量にメジャーコード用及びマイナーコード用のコード確率算出式を適用し、コード“C#”のコード確率CPC#及びコード“C#m”のコード確率CPC#mを計算する(B)。コード“B”のコード確率CPB及びコード“Bm”のコード確率CPBmについても同様に計算される(C)。
このような方法でコード確率計算部236により図44に示すようなコード確率が算出される。図45を参照すると、ある1つのビート区間について、C音からB音までの12音ごとに“Maj(メジャー)”、“m(マイナー)”、“7(7th/セブンス)”、“m7(マイナーセブンス)”などについてコード確率が計算されている。図45の例では、コード確率CPC=0.88、コード確率CPCm=0.08、コード確率CPC7=0.01、コード確率CPCm7=0.02、コード確率CPCB=0.01である。また、これらの種類以外のコード確率はいずれもゼロである。なお、コード確率計算部236は、上記のようにして複数種類のコードについてコード確率を計算した後、算出した確率値の合計が1つのビート区間内で1となるように確率値を正規化する。コード確率計算部236によるコード確率の計算及び正規化処理は、音声信号に含まれる全てのビート区間について繰り返される。
以上説明したビート区間特徴量計算部232、ルート別特徴量準備部234、コード確率計算部236の処理により、コード確率検出部136においてコード確率が算出される。そして、コード確率検出部136で算出されたコード確率は、キー検出部138に入力される。
(2−4−4.キー検出部138の構成)
次に、キー検出部138について説明する。上記の通り、キー検出部138には、コード確率検出部136で算出されたコード確率が入力される。キー検出部138は、コード確率検出部136で算出されたビート区間ごとのコード確率を用いて、ビート区間ごとのキー(調/基本音階)を検出する手段である。図46に示すように、キー検出部138は、相対コード確率生成部238、特徴量準備部240、キー確率計算部242、及びキー決定部246を含む。
まず、相対コード確率生成部238には、コード確率検出部136からコード確率が入力される。そして、相対コード確率生成部238は、コード確率検出部136から入力されたビート区間ごとのコード確率から、ビート区間ごとのキー確率の算出に用いられる相対コード確率を生成する。例えば、相対コード確率生成部238は、図47に示すような方法で相対コード確率を生成する。まず、相対コード確率生成部238は、ある注目ビート区間のコード確率から、メジャーコード及びマイナーコードに関するコード確率を抽出する。ここで抽出されたコード確率は、メジャーコード12音とマイナーコード12音の合計24次元のベクトルで表現される。以下の説明では、C音をキーと仮定した相対コード確率として、ここで抽出されたコード確率を含む24次元のベクトルを扱うことにする。
次に、相対コード確率生成部238は、抽出したメジャーコード及びマイナーコードのコード確率について12音の要素位置を所定数だけシフトさせる。このようにシフトさせることで、11通りの相対コード確率が生成される。なお、要素位置をシフトさせるシフト数は、図42で説明したルート別特徴量の生成時と同じシフト数とする。このようにして相対コード確率生成部238によりC音からB音までの12音をそれぞれキーと仮定した相対コード確率が12通り生成される。相対コード確率生成部238は、このような相対コード確率生成処理を全てのビート区間について行い、生成した相対コード確率を特徴量準備部240に入力する。
特徴量準備部240は、ビート区間ごとのキー確率の算出に用いる特徴量を生成する。特徴量準備部240で生成される特徴量としては、相対コード確率生成部238から特徴量準備部240に入力される相対コード確率から生成されるビート区間ごとのコード出現スコア及びコード遷移出現スコアが用いられる。
まず、特徴量準備部240は、図48に示すような方法でビート区間ごとのコード出現スコアを生成する。まず、特徴量準備部240は、注目ビート区間の前後Mビート区間分のC音をキーと仮定した相対コード確率CPを用意する。そして、特徴量準備部240は、前後Mビート分の区間にわたって、C音をキーと仮定した相対コード確率に含まれる同じ位置の要素の確率値を通算する。その結果、注目ビート区間の周囲に位置する複数のビート区間にわたるC音をキーと仮定した場合の各コードの出現確率に応じたコード出現スコア(CEC、CEC#、…、CEBm)(24次元ベクトル)が求められる。特徴量準備部240は、C音からB音までの12音のそれぞれをキーと仮定した場合について、このようなコード出現スコアの計算を行う。この計算により、1つの注目ビート区間について、12通りのコード出現スコアが求められる。
次に、特徴量準備部240は、図49に示すような方法でビート区間ごとのコード遷移出現スコアを生成する。まず、特徴量準備部240は、ビート区間BDi及び隣り合うビート区間BDi+1の間の全てのコードの組合せ(全てのコード遷移)について、コード遷移の前後のC音をキーと仮定した相対コード確率を互いに乗算する。全てのコードの組合せとは、“C”→“C”、“C”→“C#”、“C”→“D”、…“B”→“B”の24×24通りの組合せを言う。次いで、特徴量準備部240は、注目ビート区間の前後Mビート分の区間にわたり、コード遷移の前後の相対コード確率の乗算結果を通算する。その結果、注目ビート区間の周囲に位置する複数のビート区間にわたるC音をキーと仮定した場合の各コード遷移の出現確率に応じた24×24次元のコード遷移出現スコア(24×24次元ベクトル)が求められる。例えば、注目ビート区間BDiにおける“C”→“C#”のコード遷移についてのコード遷移出現スコアCTC→C#(i)は、下記の式(10)により与えられる。
…(10)
このように、特徴量準備部240は、C音からB音までの12音のそれぞれをキーと仮定した場合について、24×24通りのコード遷移出現スコアCTの計算を行う。この計算により、1つの注目ビート区間について、12通りのコード遷移出現スコアが求められる。なお、楽曲のキーは、小節ごとに変化することが多いコードとは異なり、より長い区間にわたって変化しないことが多い。そのため、コード出現スコアやコード遷移出現スコアの算出に用いる相対コード確率の範囲を定義するMの値は、例えば、数十ビートなど、多数の小節を含む値とするのが好適である。特徴量準備部240は、キー確率を計算するための特徴量として、ビート区間ごとに計算した24次元のコード出現スコアCE及び24×24次元のコード遷移出現スコアをキー確率計算部242に入力する。
キー確率計算部242は、特徴量準備部240から入力されたコード出現スコア及びコード遷移出現スコアを用いて、ビート区間ごとに各キーが演奏されている確率(キー確率)を算出する。各キーとは、例えば、12音(C、C#、D…)及び長短(メジャー/マイナー)により区別されるキーを言う。キー確率の算出には、例えば、ロジスティック回帰分析によって予め学習されたキー確率算出式を用いる。例えば、キー確率計算部242は、図50に示すような方法でキー確率の計算に用いられるキー確率算出式を生成する。なお、キー確率算出式の学習は、メジャーキーとマイナーキーとに分けて行われる。その結果、メジャーキー確率算出式及びマイナーキー確率算出式が生成される。
図50に示すように、ロジスティック回帰分析における独立変数として、正解のキーが既知であるビート区間ごとのコード出現スコア及びコード出現進行スコアが複数用意される。次に、用意されたコード出現スコア及びコード出現進行スコアの組のそれぞれについて、ロジスティック回帰分析により生起確率を予測するダミーデータが用意される。例えば、メジャーキー確率算出式を学習する場合、ダミーデータの値は、既知のキーがメジャーキーであれば真値(1)、それ以外なら偽値(0)となるものである。また、マイナーキー確率算出式を学習する場合、ダミーデータの値は、既知のキーがマイナーキーであれば真値(1)、それ以外なら偽値(0)となるものである。
このような独立変数とダミーデータの十分な数の組を用いてロジスティック回帰分析を行うことで、ビート区間ごとのコード出現スコア及びコード出現進行スコアからメジャーキー又はマイナーキーの確率を算出するためのキー確率算出式が生成される。キー確率計算部242は、各キー確率算出式に対して特徴量準備部240から入力されたコード出現スコア及びコード出現進行スコアを適用し、各キーについてビート区間ごとにキー確率を順次算出する。例えば、図51に示すような方法でキー確率が計算される。
例えば、図51の(A)で、キー確率計算部242は、予め学習により取得したメジャーキー確率算出式に対してC音をキーと仮定したコード出現スコア及びコード出現進行スコアを適用し、各ビート区間についてキーが“C”であるキー確率KPCを計算する。また、キー確率計算部242は、マイナーキー確率算出式にC音をキーと仮定したコード出現スコア及びコード出現進行スコアを適用し、当該ビート区間についてキーが“Cm”であるキー確率KPCmを計算する。同様に、キー確率計算部242は、メジャーキー確率算出式及びマイナーキー確率算出式に対してC#音をキーと仮定したコード出現スコア及びコード出現進行スコアを適用し、キー確率KPC#及びKPC#mを計算する(B)。キー確率KPB及びKPBmについても同様に計算される(C)。
このような計算により、例えば、図52に示すようなキー確率が算出される。図52を参照すると、ある1つのビート区間について、C音からB音までの12音ごとに“Maj(メジャー)”及び“m(マイナー)”の2種類のキー確率が計算されている。図52の例では、キー確率KPC=0.90、キー確率KPCm=0.03である。また、これらキー確率以外の確率値はいずれもゼロである。キー確率計算部242は、全てのキーの種類についてキー確率を算出した後、算出した確率値の合計が1つのビート区間内で1となるように確率値を正規化する。そして、キー確率計算部242による計算及び正規化処理は、音声信号に含まれる全てのビート区間について繰り返される。このようにしてビート区間ごとに算出された各キーのキー確率は、キー決定部246に入力される。
ここで、キー確率計算部242は、C音からB音までの12音ごとにメジャー及びマイナーの2種類について計算したキー確率に基づいてメジャー及びマイナーを区別しないキー確率(以下、単純キー確率)を計算する。例えば、キー確率計算部242は、図53に示すような方法で単純キー確率を計算する。図53の(A)に示すように、例えば、あるビート区間について、キー確率計算部242により、キー確率KPC=0.90、KPCm=0.03、KPA=0.02、KPAm=0.05が算出される。なお、それ以外のキー確率はいずれもゼロである。キー確率計算部242は、平行調の関係にあるキー同士のキー確率を合計することで、C音からB音までの12音ごとに、メジャー及びマイナーを区別しない単純キー確率を計算する。例えば、単純キー確率SKPCはキー確率KPCとKPAmの合計であり、SKPC=0.90+0.05=0.95となる。これは、ハ長調(キー“C”)とイ短調(キー“Am”)が平行調の関係にあるためである。その他、C#音からB音までの単純キー確率についても同様に計算される。キー確率計算部242により算出された12通りの単純キー確率SKPC〜SKPBは、コード進行検出部142に入力される。
さて、キー決定部246は、キー確率計算部242でビート区間ごとに算出された各キーのキー確率に基づいて、尤もらしいキーの進行を経路探索により決定する。キー決定部246による経路探索の手法としては、例えば、上述したビタビ探索アルゴリズムが用いられる。例えば、図54に示す方法でビタビ経路の経路探索が行われる。このとき、時間軸(横軸)としてビートが順に配置され、観測系列(縦軸)としてキーの種類が配置される。そのため、キー決定部246は、キー確率計算部242においてキー確率を算出したビートとキーの種類の全ての組合せの1つ1つを経路探索の対象ノードとする。
このようなノードに対し、キー決定部246は、時間軸に沿っていずれかのノードを順に選択していき、選択された一連のノードで形成される経路を(1)キー確率、及び(2)キー遷移確率の2つの評価値を用いて評価する。なお、キー決定部246によるノードの選択に際しては、ビートをスキップすることは許可されないものとする。但し、評価に用いる(1)キー確率は、キー確率計算部242で算出されたキー確率である。キー確率は、図54の各ノードに与えられる。一方、(2)キー遷移確率は、ノード間の遷移に対して与えられる評価値である。キー遷移確率は、キーが既知である楽曲における転調の発生確率に基づいて転調のパターンごとに予め定義される。
キー遷移確率としては、遷移の前後のキーの種類のパターン、即ちメジャーからメジャー、メジャーからマイナー、マイナーからメジャー、マイナーからマイナーの4つのパターンごとに、遷移に伴う転調量に応じた12通りの値が定義される。図55には、メジャーからメジャーへのキーの遷移における転調量に応じた12通りの確率値が一例として示されている。転調量Δkに対応するキー遷移確率をPr(Δk)とすると、図55の例では、キー遷移確率Pr(0)は、Pr(0)=0.9987である。この値は、楽曲内でキーが変わる確率が非常に低いことを表している。一方、キー遷移確率Pr(1)は、Pr(1)=0.0002である。これは、キーが1音程上がる(又は11音程下がる)確率が0.02%であることを表している。同様に、図55の例では、Pr(2)=Pr(3)=Pr(4)=Pr(5)=Pr(7)=Pr(8)=Pr(9)=Pr(10)=0.0001である。また、Pr(6)=Pr(11)=0.0000である。この他、メジャーからマイナー、マイナーからメジャー、マイナーからマイナーの各遷移パターンについても、同様に転調量に応じた12通りの確率値がそれぞれ予め定義される。
キー決定部246は、キー進行を表す各経路について、その経路に含まれる各ノードの(1)キー確率と、各ノード間の遷移に対して与えられる(2)キー遷移確率とを順次乗算する。そして、キー決定部246は、経路の評価値としての乗算結果が最大となる経路を尤もらしいキー進行を表す最適な経路に決定する。例えば、図56に示すようなキー進行がキー決定部246により決定される。図56には、楽曲の先頭から終端までの時間のスケールの下に、キー決定部246により決定された楽曲のキー進行の一例が示されている。この例では、楽曲の先頭から3分経過時点まで楽曲のキーが“Cm”である。その後、楽曲のキーは“C#m”に変化し、楽曲の終端までそのキーが続いている。このようにして、相対コード確率生成部238、特徴量準備部240、キー確率計算部242、キー決定部246の処理により決定されたキー進行は、小節線検出部140に入力される。
(2−4−5.小節線検出部140の構成)
次に、小節線検出部140について説明する。小節線検出部140には、楽曲構造解析部134で算出された類似確率、ビート検出部132で算出されたビート確率、キー検出部138で算出されたキー確率及びキー進行、コード確率検出部136で検出されたコード確率が入力される。小節線検出部140は、ビート確率、ビート区間同士の類似確率、各ビート区間のコード確率、キー進行、及び各ビート区間のキー確率に基づき、一連のビートがそれぞれ何拍子何拍目であるかを表す小節線の進行を決定する。図57に示すように、小節線検出部140は、第1特徴量抽出部252、第2特徴量抽出部254、小節線確率計算部256、小節線確率修正部258、小節線決定部260、及び小節線再決定部262を含む。
第1特徴量抽出部252は、後述する小節線確率の計算に用いられる特徴量として、ビート区間ごとに、前後Lビート分のコード確率とキー確率に応じた第1特徴量を抽出する。例えば、第1特徴量抽出部252は、図58に示すような方法で第1特徴量を抽出する。図58に示すように、第1特徴量は、注目ビート区間BDiの前後Lビート分の区間のコード確率とキー確率とから導かれる(1)コード非変化スコア及び(2)相対コードスコアを含む。このうち、コード非変化スコアは、注目ビート区間BDiの前後Lビート分の区間数に相当する次元を有する特徴量である。一方、相対コードスコアは、注目ビート区間BDiの前後Lビート分の区間ごとに24次元を有する特徴量である。例えば、L=8とした場合、コード非変化スコアは17次元、相対コードスコアは17×24次元=408次元、第1特徴量は計425次元となる。以下、コード非変化スコア及び相対コードスコアについて、より詳細に説明する。
(a)コード非変化スコアについて
まず、コード非変化スコアについて説明する。コード非変化スコアとは、一定の範囲の区間にわたって楽曲のコードが変化していない度合いを表す特徴量である。コード非変化スコアは、次に述べるコード安定スコアをコード不安定スコアで除算することにより求められる。図59の例において、ビート区間BDiのコード安定スコアは、ビート区間BDiの前後Lビートの各区間について1つずつ定まる要素CC(i−L)〜CC(i+L)を含む。そして、各要素は、対象のビート区間と直前のビート区間の間における同じコード名同士のコード確率の積の合計値として計算される。
例えば、ビート区間BDi−L−1のコード確率とビート区間BDi−Lのコード確率との間で同じコード名同士のコード確率の積を合計すると、コード安定スコアCC(i−L)が算出される。同様に、ビート区間BDi+L−1のコード確率とビート区間BDi+Lのコード確率との間で同じコード名同士のコード確率の積を合計することにより、コード安定スコアCC(i+L)が算出される。第1特徴量抽出部252は、このような計算を注目ビート区間BDiの前後Lビート分の区間にわたって行い、2L+1通りのコード安定スコアを算出する。
一方で、図60に示すように、ビート区間BDiのコード不安定スコアは、ビート区間BDiの前後Lビートの各区間について1つずつ定まる要素CU(i−L)〜CU(i+L)を含む。そして、各要素は、対象のビート区間と直前のビート区間の間における異なるコード名同士の全ての組合せについてのコード確率の積の合計値として計算される。例えば、ビート区間BDi−L−1のコード確率とビート区間BDi−Lのコード確率との間で異なるコード名同士のコード確率の積を合計することにより、コード不安定スコアCU(i−L)が算出される。同様に、ビート区間BDi+L−1のコード確率とビート区間BDi+Lのコード確率との間で異なるコード名同士のコード確率の積を合計することにより、コード不安定スコアCU(i+L)が算出される。第1特徴量抽出部252は、このような計算を注目ビート区間BDiの前後Lビート分の区間にわたって行い、2L+1通りのビート不安定スコアを算出する。
ビート安定スコア及びビート不安定スコアを算出すると、第1特徴量抽出部252は、注目ビート区間BDiについて、2L+1個の要素ごとにコード安定スコアをコード不安定スコアで除算し、コード非変化スコアを算出する。例えば、注目ビート区間BDiについてのコード安定スコアCC=(CC(i−L)、…、CC(i+L))、コード不安定スコアCU=(CU(i−L)、…、CU(i+L))が算出されたものとする。この場合、コード非変化スコアCRは、CR=(CC(i−L)/CU(i−L)、…、CC(i+L)/CU(i+L))となる。このようにして算出されるコード非変化スコアは、注目ビート区間の周囲の一定の範囲内でコードの変化が少ないほど大きい値を示す。第1特徴量抽出部252は、このようにして音声信号に含まれる全てのビート区間についてコード非変化スコアを算出する。
(b)相対コードスコアについて
次に、相対コードスコアについて説明する。相対コードスコアとは、一定の範囲の区間にわたるコードの出現確率とそのパターンを表す特徴量である。相対コードスコアは、キー検出部138から入力されるキー進行に合わせてコード確率をシフトさせて生成される。例えば、相対コードスコアは、図61に示すような方法で生成される。図61の(A)には、キー検出部138により決定されたキー進行の一例が示されている。この例では、楽曲の先頭から3分経過した時点で、楽曲のキーが“B”から“C#m”へと変化している。なお、前後Lビート分の区間内にキーが変化する時点を含む注目ビート区間BDiの位置も示されている。
このとき、第1特徴量抽出部252は、キーが“B”であるビート区間については、当該ビート区間のメジャーとマイナーを含む24次元のコード確率の要素位置をコード確率CPBが先頭に来るようにシフトさせた相対コード確率を生成する。また、第1特徴量抽出部252は、キーが“C#m”であるビート区間については、当該ビート区間のメジャーとマイナーを含む24次元のコード確率の要素位置をコード確率CPC#mが先頭に来るようにシフトさせた相対コード確率を生成する。第1特徴量抽出部252は、このような相対コード確率を注目ビート区間の前後Lビート分の区間ごとに生成し、生成した相対コード確率の集合((2L+1)×24次元の特徴量ベクトル)を相対コードスコアとして出力する。
以上説明した(a)コード非変化スコア及び(b)相対コードスコアよりなる第1特徴量は、第1特徴量抽出部252から小節線確率計算部256に入力される。さて、小節線確率計算部256には、第1特徴量の他にも、第2特徴量抽出部254から第2特徴量が入力される。そこで、第2特徴量抽出部254の構成について次に説明する。
第2特徴量抽出部254は、後述する小節線確率の計算に用いられる特徴量として、各ビート区間について、前後Lビート分の区間にわたるビート確率の変化の特徴に応じた第2特徴量を抽出する。例えば、第2特徴量抽出部254は、図62に示すような方法で第2特徴量を抽出する。図62には、ビート確率算出部202から入力されたビート確率が時間軸に沿って示されている。また、同図には、ビート確率を解析して得られた6つのビート、及び注目ビート区間BDiが示されている。第2特徴量抽出部254は、このようなビート確率について、注目ビート区間BDiの前後Lビート分のビート区間に含まれる所定の間隔の小区間SDjごとにビート確率の平均値を算出する。
例えば、音価(M分のN拍子のM)が4である拍子を主に検出する場合、図62に示したように、小区間をビート間隔1/4及び3/4で区切る線により区分するのが好適である。その場合、1つの注目ビート区間BDiについて算出されるビート確率の平均値は、L×4+1個となる。従って、第2特徴量抽出部254により抽出される第2特徴量は、注目ビート区間ごとにL×4+1次元を有する。また、小区間の間隔はビート間隔の1/2となる。なお、楽曲の小節線を適切に検出するためには、少なくとも数小節程度にわたる音声信号の特徴を解析することが求められる。そのため、第2特徴量の抽出に用いるビート確率の範囲を定義するLの値は、例えば、8ビートなどとするのが好適である。L=8の場合、第2特徴量抽出部254により抽出される第2特徴量は、注目ビート区間ごとに33次元となる。
以上のようにして抽出された第2特徴量は、第2特徴量抽出部254から小節線確率計算部256に入力される。そこで、小節線確率計算部256は、第1特徴量及び第2特徴量を用いて、ビートごとに小節線確率を算出する。ここで言う小節線確率とは、あるビートがX拍子のY拍目である確率の集合を意味する。後段の説明においては、一例として、1/4拍子、2/4拍子、3/4拍子及び4/4拍子の各拍子の各拍数が判別の対象とされる。この場合、XとYの組合せは(X,Y)=(1,1)、(2,1)、(2,2)、(3,1)、(3,2)、(3,3)、(4,1)、(4,2)、(4,3)、(4,4)の10通り存在する。そのため、10種類の小節線確率が算出される。
なお、小節線確率計算部256により算出される確率値は、後述する小節線確率修正部258により楽曲の構造を考慮して修正される。従って、小節線確率計算部256により算出される確率値は、修正前の中間的なデータである。小節線確率計算部256による小節線確率の算出には、例えば、ロジスティック回帰分析によって予め学習された小節線確率算出式が用いられる。例えば、図63に示すような方法により、小節線確率の計算に用いられる小節線確率算出式が生成される。なお、小節線確率算出式は、上述した小節線確率の種類ごとに生成される。例えば、1/4拍子、2/4拍子、3/4拍子及び4/4拍子の各拍数を判別することを想定すると、10通りの小節線確率算出式が生成される。
まず、ロジスティック回帰分析における独立変数として、正解の拍子(X)と拍数(Y)が既知である音声信号を解析して抽出された第1特徴量と第2特徴量の組を複数用意する。次に、用意された第1特徴量と第2特徴量の組のそれぞれについて、ロジスティック回帰分析により生起確率を予測するダミーデータが用意される。例えば、1/4拍子の1拍目である確率を算出するための1/4拍子1拍目判別式を学習する場合、ダミーデータの値は、既知の拍子と拍数が(1,1)であれば真値(1)、それ以外なら偽値(0)となる。また、2/4拍子の1拍目である確率を算出するための2/4拍子1拍目判別式を学習する場合、ダミーデータの値は、既知の拍子と拍数が(2,1)であれば真値(1)、それ以外なら偽値(0)となる。その他の拍子及び拍数についても同様である。
このような独立変数とダミーデータの十分な数の組を用いてロジスティック回帰分析を行うことで、第1特徴量及び第2特徴量から小節線確率を算出するための10通りの小節線確率算出式が生成される。そして、小節線確率計算部256は、第1特徴量抽出部252及び第2特徴量抽出部254から入力された第1特徴量及び第2特徴量に小節線確率算出式を適用し、ビート区間ごとに小節線確率を算出する。例えば、図64に示すような方法で小節線確率が算出される。図64に示すように、小節線確率計算部256は、注目ビート区間について抽出された第1特徴量及び第2特徴量に予め取得した1/4拍子1拍目判別式を適用し、ビートが1/4拍子の1拍目である小節線確率Pbar’(1,1)を計算する。また、小節線確率計算部256は、注目ビート区間について抽出された第1特徴量及び第2特徴量に予め取得した2/4拍子1拍目判別式を適用し、ビートが2/4拍子の1拍目である小節線確率Pbar’(2,1)を計算する。その他の拍子及び拍数についても同様である。
小節線確率計算部256は、このような小節線確率の計算を全てのビートについて繰返し、ビートごとの小節線確率を算出する。小節線確率計算部256によりビート毎に算出された小節線確率は、小節線確率修正部258に入力される。
小節線確率修正部258は、楽曲構造解析部134から入力されるビート区間同士の類似確率に基づいて、小節線確率計算部256から入力される小節線確率を修正する。例えば、i番目の注目ビートがX拍子のY拍目である修正前の小節線確率をPbar’(i,x,y)、i番目のビート区間とj番目のビート区間との間の類似確率をSP(i,j)とする。この場合、修正後の小節線確率Pbar(i,x,y)は、下記の式(11)で与えられる。
…(11)
上記の通り、修正後の小節線確率Pbar(i,x,y)は、注目ビートに対応するビート区間と他のビート区間との間の類似確率を重みとみなし、正規化した当該類似確率を用いて修正前の小節線確率を重み付け加算した値となる。このような確率値の修正により、類似する内容の音声が演奏されているビート間の小節線確率は、修正前の小節線確率と比較して近い値となる。小節線確率修正部258により修正されたビートごとの小節線確率は、小節線決定部260に入力される。
小節線決定部260は、小節線確率修正部258から入力されたビートごとのX拍子Y拍目の小節線確率に基づいて、尤もらしい小節線の進行を経路探索により決定する。小節線決定部260による経路探索の手法としては、例えば、ビタビ探索アルゴリズムが用いられる。例えば、小節線決定部260により、図65に示すような方法で経路探索が行われる。図65に示すように、時間軸(横軸)にはビートが順に配置される。また、観測系列(縦軸)には、小節線確率が算出されたビートの種類(X拍子Y拍目)が用いられる。小節線決定部260は、小節線確率修正部258から入力されたビートとビートの種類の全ての組合せについて、その1つ1つを経路探索の対象ノードとする。
このような対象ノードに対し、小節線決定部260は、時間軸に沿っていずれかのノードを順に選択する。そして、小節線決定部260は、選択した一連のノードよりなる経路を(1)小節線確率、及び(2)拍子変化確率の2つの評価値を用いて評価する。但し、小節線決定部260によるノードの選択に際し、例えば、次のような制約を設けるのが好適である。第1の制約として、ビートのスキップが禁止される。第2の制約として、4拍子1拍目〜3拍目や3拍子1拍目、2拍目などの小節の途中からの他の拍子への遷移、小節の途中への他の拍子からの遷移が禁止される。第3の制約として、1拍目から3拍目若しくは4拍目、又は、2拍目から2拍目若しくは4拍目など、拍数の並びが適切でない遷移が禁止される。
次に、小節線決定部260による経路の評価に用いられる評価値のうち、(1)小節線確率は、小節線確率修正部258により小節線確率を修正して算出された上述の小節線確率である。小節線確率は、図65に示した個々のノードごとに与えられる。一方、(2)拍子変化確率とは、ノード間の遷移に対して与えられる評価値である。拍子変化確率は、多数の一般的な楽曲の小節線の進行における拍子の変化の発生確率を集計することにより、変化前のビートの種類と変化後のビートの種類の組合せごとに予め定義される。
例えば、図66には、拍子変化確率の一例が示されている。例えば、図66には、変化前の4種類の拍子と変化後の4種類の拍子から特定される計16種類の拍子変化確率が示されている。この例において、4拍子から1拍子へ変化する拍子変化確率は0.05、2拍子へ変化する拍子変化確率は0.03、3拍子へ変化する拍子変化確率は0.02、4拍子へ変化する(変化なし)拍子変化確率は0.90である。この例のように、通常、楽曲の途中で拍子が変化する可能性は高くない。また、1拍子や2拍子については、小節線の検出の誤差により小節線が正しい位置からずれた際に小節線位置を自動的に復帰させる役目を果たすことがある。そのため、1拍子や2拍子と他の拍子との間の拍子変化確率は、3拍子や4拍子と他の拍子との間の拍子変化確率よりも高い値としておくのが好適である。
小節線決定部260は、小節線の進行を表す各経路について、その経路に含まれる各ノードの(1)小節線確率と、ノード間の遷移に対して与えられる(2)拍子変化確率を順次乗算する。そして、小節線決定部260は、経路の評価値としての乗算結果が最大となる経路を尤もらしい小節線の進行を表す最尤経路に決定する。例えば、小節線決定部260により決定された最尤経路に基づいて小節線の進行が得られる(図67を参照)。図67の例では、1番目のビートから8番目のビートについて、小節線決定部260により最尤経路とされた小節線の進行が示されている(太線枠参照)。この例では、各ビートの種類は、1番目のビートから順に、4拍子1拍目、4拍子2拍目、4拍子3拍目、4拍子4拍目、4拍子1拍目、4拍子2拍目、4拍子3拍目、4拍子4拍目である。このようにして小節線決定部260により決定された小節線の進行は、小節線再決定部262に入力される。
ところで、通常の楽曲において、ビートの種類の3拍子と4拍子が混在することは稀である。こうした事情を考慮し、小節線再決定部262は、まず、小節線決定部260から入力された小節線進行において出現したビートの種類に3拍子と4拍子とが混在しているか否かを判定する。ビートの種類に3拍子と4拍子とが混在していた場合、小節線再決定部262は、より出現頻度の低い拍子を探索の対象から除外して小節線の進行を示す最尤経路を再度探索する。このような小節線再決定部262による経路の再探索処理により、経路探索の結果部分的に発生する可能性のある小節線(ビートの種類)の認識の誤りを減少させることができる。
以上、小節線検出部140について説明した。小節線検出部140で検出された小節線進行は、コード進行検出部142に入力される。
(2−4−6.コード進行検出部142の構成)
次に、コード進行検出部142について説明する。コード進行検出部142には、ビート区間ごとの単純キー確率、ビート区間同士の類似確率、及び小節線進行が入力されている。そこで、コード進行検出部142は、これらの入力値に基づいてビート区間ごとの一連のコードにより構成される尤もらしいコード進行を決定する。図68に示すように、コード進行検出部142は、ビート区間特徴量計算部272、ルート別特徴量準備部274、コード確率計算部276、コード確率修正部278、及びコード進行決定部280を含む。
まず、ビート区間特徴量計算部272は、コード確率検出部136のビート区間特徴量計算部232と同様に、12音別エネルギーを計算する。但し、ビート区間特徴量計算部272は、コード確率検出部136のビート区間特徴量計算部232で算出された12音別エネルギーを取得し、それを利用してもよい。次に、ビート区間特徴量計算部272は、注目ビート区間の前後N区間分の12音別エネルギーと、キー検出部138から入力された単純キー確率とを含む拡張ビート区間特徴量を生成する。例えば、ビート区間特徴量計算部272は、図69に示すような方法で拡張ビート区間特徴量を生成する。
図69に示すように、ビート区間特徴量計算部272は、例えば、注目ビート区間BDiの前後N区間分の12音別エネルギーBFi−2、BFi−1、BFi、BFi+1、BFi+2が抽出されている。但し、N=2について例示している。また、注目ビート区間BDiにおける単純キー確率(SKPC、…、SKPB)が得られている。ビート区間特徴量計算部272は、全てのビート区間について、注目ビート区間の前後N区間分の12音別エネルギーと単純キー確率とを含む拡張ビート区間特徴量を生成し、ルート別特徴量準備部274に入力する。
ルート別特徴量準備部274は、ビート区間特徴量計算部272から入力される拡張ビート区間特徴量の要素位置をシフトさせ、12通りの拡張ルート別特徴量を生成する。例えば、ルート別特徴量準備部274は、図70に示すような方法で拡張ルート別特徴量を生成する。図70に示すように、ルート別特徴量準備部274は、まず、ビート区間特徴量計算部272から入力された拡張ビート区間特徴量を、C音をルートとする拡張ルート別特徴量とみなす。次に、ルート別特徴量準備部274は、C音をルートとする拡張ルート別特徴量の12音の要素位置を所定数だけシフトさせる。このシフト処理により、C#音からB音までの各音程をルートとする11通りの拡張ルート別特徴量が生成される。なお、要素位置をシフトさせる際のシフト数は、コード確率検出部136のルート別特徴量準備部234で用いられるシフト数と同様にして決定される。
ルート別特徴量準備部274は、このような拡張ルート別特徴量生成処理を全てのビート区間について行い、各区間についてのコード確率の再計算に用いる拡張ルート別特徴量を準備する。ルート別特徴量準備部274により生成された拡張ルート別特徴量は、コード確率計算部276に入力される。
コード確率計算部276は、ルート別特徴量準備部274から入力された拡張ルート別特徴量を用いて、各コードが演奏されている確率を表すコード確率をビート区間ごとに計算する。ここで言う各コードとは、例えば、ルート(C、C#、D…)や構成音の数(三和音、四和音(7th)、五和音(9th))、及び長短(メジャー/マイナー)などにより区別される個々のコードのことである。コード確率の算出には、例えば、ロジスティック回帰分析による学習処理で得られる拡張コード確率算出式が用いられる。例えば、図71に示す方法により、コード確率計算部276によるコード確率の再計算に用いられる拡張コード確率算出式が生成される。なお、拡張コード確率算出式の学習は、コード確率算出式と同様、学習したいコードの種類ごとに行われる。例えば、メジャーコード用の拡張コード確率算出式、マイナーコード用の拡張コード確率算出式、7thコード用の拡張コード確率算出式、及び9thコード用の拡張コード確率算出式などについて、それぞれ学習処理が行われる。
まず、ロジスティック回帰分析における独立変数として、正解のコードが既知であるビート区間ごとの拡張ルート別特徴量(例えば、図70の説明にある12通りの12×6次元のベクトル)を複数用意する。また、ビート区間ごとの拡張ルート別特徴量のそれぞれについて、ロジスティック回帰分析により生起確率を予測するダミーデータを用意する。例えば、メジャーコード用の拡張コード確率算出式を学習する場合、ダミーデータの値は、既知のコードがメジャーコードであれば真値(1)、それ以外なら偽値(0)となる。また、マイナーコード用の拡張コード確率算出式を学習する場合、ダミーデータの値は、既知のコードがマイナーコードであれば真値(1)、それ以外なら偽値(0)となる。7thコード、9thコードについても同様である。
このような独立変数とダミーデータを用いて十分な数のビート区間ごとの拡張ルート別特徴量についてロジスティック回帰分析を行うことで、拡張ルート別特徴量から各コード確率を再計算するための拡張コード確率算出式が生成される。拡張コード確率算出式を生成すると、コード確率計算部276は、ルート別特徴量準備部274から入力された拡張ルート別特徴量に拡張コード確率算出式を適用し、ビート区間ごとにコード確率を順次算出する。例えば、コード確率計算部276は、図72に示すような方法でコード確率を再計算する。
図72の(A)には、ビート区間ごとの拡張ルート別特徴量のうち、C音をルートとする拡張ルート別特徴量が示されている。コード確率計算部276は、例えば、C音をルートとする拡張ルート別特徴量にメジャーコード用の拡張コード確率算出式を適用し、当該ビート区間についてコードが“C”であるコード確率CP’Cを再計算する。また、コード確率計算部276は、C音をルートとする拡張ルート別特徴量にマイナーコード用の拡張コード確率算出式を適用し、当該ビート区間についてコードが“Cm”であるコード確率CP’Cmを再計算する。同様に、コード確率計算部276は、C#音をルートとする拡張ルート別特徴量にメジャーコード用及びマイナーコード用の拡張コード確率算出式を適用し、コード確率CP’C#及びコード確率CP’C#mを再計算する(B)。コード確率CP’B、コード確率CP’Bm(C)、他の種類のコード(7thや9th等)のコード確率の再計算についても同様である。
コード確率計算部276は、このようなコード確率の再計算処理を全ての注目ビート区間について繰返し、再計算したコード確率をコード確率修正部278に入力する。
コード確率修正部278は、楽曲構造解析部134から入力されるビート区間同士の類似確率に基づいて、コード確率計算部276により再計算されたコード確率を修正する。例えば、i番目の注目ビート区間のコードXのコード確率をCP’X(i)、i番目のビート区間とj番目のビート区間との間の類似確率をSP(i,j)とする。そうすると、修正後のコード確率CP’’X(i)は、下記の式(12)で与えられる。
…(12)
つまり、修正後のコード確率CP’’X(i)は、注目ビートに対応するビート区間と他のビート区間との間の類似確率を重みとみなし、正規化した当該類似確率を用いてコード確率を重み付け加算した値となる。このような確率値の修正により、コード確率は、類似する内容の音声が演奏されているビート区間の間で修正前よりも近い値となる。コード確率修正部278により修正されたビート区間ごとのコード確率は、コード進行決定部280に入力される。
コード進行決定部280は、コード確率修正部278から入力されたビート位置ごとのコード確率に基づいて、尤もらしいコード進行を経路探索により決定する。コード進行決定部280による経路探索の手法としては、例えば、ビタビ探索アルゴリズムが用いられる。例えば、図73に示すような方法で経路探索が行われる。図73に示すように、時間軸(横軸)にはビートが順に配置される。また、観測系列(縦軸)には、コード確率が算出されたコードの種類が用いられる。そして、コード進行決定部280は、コード確率修正部278から入力されたビート区間とコードの種類の全ての組合せについて、その1つ1つを経路探索の対象ノードとする。
上記の各ノードに対し、コード進行決定部280は、時間軸に沿っていずれかのノードを順に選択する。そして、コード進行決定部280は、選択した一連のノードよりなる経路を(1)コード確率、(2)キーに応じたコード出現確率、(3)小節線に応じたコード遷移確率、及び(4)キーに応じたコード遷移確率の4つの評価値で評価する。但し、コード進行決定部280によるノードの選択に際し、ビートのスキップは禁止される。
コード進行決定部280による経路の評価に用いられる評価値のうち、(1)コード確率は、コード確率修正部278により修正されたコード確率である。コード確率は、図73に示した個々のノードに対して与えられる。また、(2)キーに応じたコード出現確率は、キー検出部138から入力されるキー進行によりビート区間ごとに特定されるキーに応じた各コードの出現確率である。キーに応じたコード出現確率は、多数の楽曲におけるコードの出現確率をキーの種類ごとに集計することで予め定義される。通常、キーがC音の楽曲においては、コード“C”、“F”、“G”の各コードの出現確率が高い。なお、キーに応じたコード出現確率は、図73に示した個々のノードに対して与えられる。
また、(3)小節線に応じたコード遷移確率とは、小節線検出部140から入力される小節線進行によりビートごとに特定されるビートの種類に応じたコードの遷移確率である。小節線に応じたコード遷移確率は、多数の楽曲におけるコードの遷移確率をその楽曲の小節線進行において隣り合うビートの種類ごとに集計することで予め定義される。通常、小節の変わり目(遷移後が1拍目)や4拍子の2拍目から3拍目への遷移に際してコードが変化する確率は、他の遷移に際してコードが変化する確率よりも高い。なお、小節線に応じたコード遷移確率は、ノード間の遷移に対して与えられる。また、(4)キーに応じたコード遷移確率とは、キー検出部138から入力されるキー進行によりビート区間ごとに特定されるキーに応じたコードの遷移確率である。キーに応じたコード遷移確率は、多数の楽曲におけるコードの遷移確率をその楽曲のキーの種類ごとに集計することで予め定義される。キーに応じたコード遷移確率は、ノード間の遷移に対して与えられる。
コード進行決定部280は、図73を用いて説明したコード進行を表す各経路について、その経路に含まれる各ノードの上記(1)〜(4)の評価値を順次乗算する。そして、コード進行決定部280は、経路の評価値としての乗算結果が最大となる経路を尤もらしいコード進行を表す最尤経路に決定する。例えば、コード進行決定部280は、最尤経路を決定することで、図74に示すようなコード進行を得ることができる。図74の例では、1〜6番目のビート区間及びi番目のビート区間について、コード進行決定部280により最尤経路とされたコード進行が示されている(太線枠参照)。この例の場合、ビート区間ごとのコードは、1番目のビート区間から順に、“C”、“C”、“F”、“F”、“Fm”、“Fm”、…、“C”である。
以上、コード進行検出部142の構成について詳細に説明した。上記の通り、楽曲構造解析部134からコード進行検出部142までの処理を経て、楽曲データからコード進行が検出される。このようにして抽出されたコード進行は、メタデータ保存部112に保存される。
(2−4−7.メロディー検出部144の構成)
次に、メロディー検出部144について説明する。メロディー検出部144は、ログスペクトル解析部108から入力された楽曲データのログスペクトルに基づいてメロディーラインを検出する手段である。図75に示すように、メロディー検出部144は、メロディー確率推定部282と、分類推定部284と、音程分布推定部286と、メロディーライン決定部288と、平滑化部290とを含む。また、メロディーライン決定部288には、キー検出部138で検出されたキーの情報が入力される。さらに、平滑化部290には、ビート検出部132で検出されたビート位置の情報が入力される。以下、分類推定部284、音程分布推定部286、メロディー確率推定部282、メロディーライン決定部288、平滑化部290の順に、各構成要素の機能について詳細に説明する。
(分類推定部284)
まず、分類推定部284について説明する。分類推定部284は、楽曲の信号が入力された際に、その入力信号が属する楽曲の分類を推定する手段である。後述するように、各入力信号が属する楽曲の分類を考慮することで、後段で実施されるメロディーラインの検出処理において検出精度を高めることが可能になる。楽曲は、例えば、図76に示すように、「古い曲」「男性ボーカル、バックグラウンド(BG)大」「男性ボーカル、バックグラウンド(BG)小」「女性ボーカル、バックグラウンド(BG)大」等に分類される。例えば、「古い曲」は、録音時点における録音機器や音響設備の技術レベルが現在とは異なるため、音質が悪かったり、バックグラウンドの音量割合が小さいという特徴を持つ。その他の分類についても、分類毎に図76に示すような特徴が存在する。そこで、こうした楽曲の特徴毎に入力信号の分類が行われる。なお、楽曲の分類は、図76に例示したものに限定されない。例えば、声質等に基づいて、より細分化された分類を用いることも可能である。
さて、分類推定部284は、楽曲の分類を推定するために、図77に示すような処理を実行する。まず、分類推定部284は、評価データとして用いる複数の音声信号(曲1、…、曲4)をログスペクトル解析部108でログスペクトルに変換させる。そして、分類推定部284は、複数の音声信号(曲1、…、曲4)のログスペクトルを評価データとして特徴量計算式生成装置10に入力する。また、評価データとして用いる各音声信号(曲1、…、曲4)の分類は、図77に示すように分類値(0又は1)として与えられている。但し、分類値0は非該当、分類値1は該当を表す。例えば、音声信号(曲1)は、分類「古い曲」「男性ボーカル、BG小」には該当せず、「男性ボーカル、BG大」に該当する。分類推定部284は、特徴量計算式生成装置10を用いて、このような分類値を算出する推定アルゴリズム(計算式)を生成する。
そのため、分類推定部284は、特徴量計算式生成装置10に対し、複数の音声信号(曲1、…、曲4)のログスペクトルを評価データとして入力すると共に、教師データとして各分類の分類値を入力する。従って、特徴量計算式生成装置10には、評価データとして音声信号(曲1、…、曲4)のログスペクトル、及び教師データとして各音声信号に対する各分類の分類値が入力される。なお、各音声信号に対応する評価データには、1曲分のログスペクトルが用いられる。このような評価データ及び教師データが入力されると、特徴量計算式生成装置10は、任意の音声信号のログスペクトルから各分類の分類値を算出するための計算式GAを分類毎に生成する。このとき、特徴量計算式生成装置10は、最終的に出力された各計算式GAの評価値(確率)を同時に出力する。
特徴量計算式生成装置10で分類毎の計算式GAが生成されると、分類推定部284は、実際に分類したい曲(実施曲)の音声信号をログスペクトル解析部108でログスペクトルに変換させる。そして、分類推定部284は、特徴量計算式生成装置10で生成された分類毎の計算式GAに実施曲のログスペクトルを入力し、実施曲に対する各分類の分類値を算出する。各分類の分類値が算出されると、分類推定部284は、分類値が最も高い分類に実施曲を分類する。但し、分類推定部284は、分類の際に各計算式の確率を考慮するように構成されていてもよい。この場合、分類推定部284は、各分類に対応する計算式で算出された分類値と当該計算式の確率とを用いて、分類毎に実施曲がその分類に該当する確率(以下、該当確率)を算出する。そして、分類推定部284は、該当確率が最も高い分類に実施曲を割り振る。その結果、図77に例示するような分類結果が得られる。このようにして得られた分類結果は、音程分布推定部286、メロディー確率推定部282、及びメロディーライン決定部288に入力される。
(音程分布推定部286)
次に、図78及び図79を参照しながら、音程分布推定部286の構成について説明する。音程分布推定部286は、メロディーラインの分布を自動推定する手段である。メロディーラインの分布は、経時変動するメロディーラインの各区間で算出される期待値及び曲全体で算出される標準偏差により表現される。このようなメロディーラインの分布をログスペクトルから推定するために、音程分布推定部286は、特徴量計算式生成装置10を用いて各区間におけるメロディーラインの期待値を算出するための計算式を生成する。
まず、音程分布推定部286は、分類推定部284と同様に、複数の音声信号のログスペクトルを評価データとして特徴量計算式生成装置10に入力する。さらに、音程分布推定部286は、教師データとして各音声信号の正解メロディーラインを区間毎に切り出し(図78を参照)、特徴量計算式生成装置10に入力する。このようにして評価データ及び教師データが入力されると、特徴量計算式生成装置10から各区間におけるメロディーラインの期待値を算出するための計算式が出力される。また、分類推定部284は、評価データとして用いた各音声信号のログスペクトルについて、計算式で算出される出力値と、教師データとして用いた正解メロディーラインとの間の誤差を算出する。さらに、分類推定部284は、取得した誤差を正規分布で近似してメロディーラインの標準偏差を算出する。音程分布推定部286で算出されたメロディーラインの期待値及び標準偏差で規定される範囲は、例えば、図79に示すグラフのように表現される。
このように、音程分布推定部286は、ログスペクトルの区間(時間断片)から当該区間のメロディーラインを推定する計算式を特徴量計算式生成装置10により生成し、その計算式を用いてメロディーラインの分布を推定する。このとき、音程分布推定部286は、分類推定部284で推定された楽曲の分類毎に計算式を生成する。そして、音程分布推定部286は、時間を少しずつシフトさせながらログスペクトルの時間断片を切り出し、切り出したログスペクトルを計算式に入力してメロディーラインの期待値及び標準偏差を算出する。その結果、メロディーラインの区間毎にメロディーラインの推定値が算出される。例えば、時刻tの部分ログスペクトルWtが入力された場合にメロディーが音程oをとる確率P(o|Wt)が推定値として算出される。このようにして音程分布推定部286で算出されたメロディーラインの推定値は、メロディーライン決定部288に入力される。
(メロディー確率推定部282)
次に、図80〜図82を参照しながら、メロディー確率推定部282の構成について説明する。メロディー確率推定部282は、ログスペクトル解析部108から出力されるログスペクトルをメロディー確率に変換する手段である。例えば、メロディー確率推定部282は、図80の(A)に示すログスペクトルを同図(B)に示すメロディー確率分布に変換する。つまり、メロディー確率推定部282は、ログスペクトルに基づき、時間−音程空間の各座標位置におけるメロディー確率を算出する。なお、ここで言うメロディー確率は、各座標位置におけるログスペクトルの値がメロディーラインのものである確率を表している。まず、メロディー確率推定部282は、各座標位置のメロディー確率を推定するため、事前に正解メロディーラインが分かっている楽曲データのログスペクトルを用いてロジスティック回帰を行う。このロジスティック回帰により、ログスペクトルからメロディー確率を算出するための関数fが得られる。そして、メロディー確率推定部282は、求めた関数を用いて図80(B)のようなメロディー確率分布を算出する。
ここで、図81及び図82を参照しながら、メロディー確率推定部282による上記の関数fの生成方法、及び関数fを用いたメロディー確率の算出方法について、より詳細に説明する。まず、図81に示すように、メロディー確率推定部282は、ログスペクトルの値が定義される時間−音程空間上で、メロディー確率を推定しようとする座標位置(以下、推定位置)を基準として所定サイズの範囲(以下、参照範囲)を選択する。例えば、メロディー確率推定部282は、各推定位置を基準に、音程軸方向に−12〜+36セミトーン分、時間軸方向に−2〜+2フレーム分の参照範囲を選択する。図81には、メロディー確率推定部282により選択された参照範囲の一例が模式的に示されている。この例においては、黒で塗り潰された座標位置が推定位置であり、その周囲のハッチング処理が施された部分が参照範囲である。
このようにして座標位置毎に参照範囲を選択すると、メロディー確率推定部282は、選択した参照範囲の各座標位置に対応するログスペクトル値(エネルギー)の対数値を算出する。さらに、メロディー確率推定部282は、算出した各座標位置に対応する対数値の参照範囲内における平均値が0になるように、各座標位置の対数値を正規化する。正規化後の対数値x(図81の例では、x=(x1,…,x245);49音程×5フレーム分)は、メロディー確率を推定する関数f(x)の生成処理に用いられる。関数f(x)の生成処理は、正解メロディーラインが事前に与えられている複数の楽曲データ(以下、学習用楽曲データ)を用いて実行される。まず、メロディー確率推定部282は、学習用楽曲データのログスペクトルを利用し、各推定位置について正規化後の対数値x(以下、正規化対数値x)を算出する。さらに、メロディー確率推定部282は、各参照範囲に正解メロディーラインが含まれるか否かを判定する。以下、参照範囲に正解メロディーラインが含まれる場合の判定結果をTrueと表現し、含まれない場合の判定結果をFalseと表現することにする。
正規化対数値x及び判定結果が得られると、メロディー確率推定部282は、これらの結果を利用し、「正規化対数値xが入力された場合に当該正規化対数値xに対応する参照範囲の判定結果がTrueである確率を出力する関数f(x)」を生成する。メロディー確率推定部282は、例えば、ロジスティック回帰を用いることで関数f(x)を生成することができる。ロジスティック回帰とは、判定結果がTrue又はFalseになる確率のロジットが入力変数の線形結合で表現できるものと仮定して結合係数を回帰分析により算出する方法である。例えば、入力変数をx=(x1,…,xn)、判定結果がTrueとなる確率をP(True)、結合係数をβ0,…,βnと表現すると、ロジスティック回帰モデルは、下記の式(13)のように表現される。下記の式(13)を変形すると下記の式(14)のようになり、入力変数xから判定結果Trueの確率P(True)を算出するための関数f(x)が求められる。
…(13)
…(14)
そこで、メロディー確率推定部282は、学習用楽曲データから各参照範囲について得られた正規化対数値x=(x1,…,x245)、及び判定結果を上記の式(14)に入力し、結合係数β0,…,β245を算出する。このようにして結合係数β0,…,β245が決定されることで、正規化対数値xから判定結果がTrueとなる確率P(True)を算出するための関数f(x)が得られる。但し、関数f(x)が0.0〜1.0の範囲で定義される確率であり、かつ、同じ時間で正解メロディーラインの音程が1つであるから、関数f(x)は、同じ時間で合計した値が1になるように正規化される。また、関数f(x)は、楽曲の分類毎に生成される方が好ましい。そこで、メロディー確率推定部282は、分類毎に与えられた学習用楽曲データを用いて各分類の関数f(x)を算出する。
このような方法で分類毎に関数f(x)を生成しておき、メロディー確率推定部282は、実施曲データのログスペクトルが入力された場合に、分類推定部284から入力された実施曲データの分類を考慮して関数f(x)を選択する。例えば、実施曲が「古い曲」に分類された場合、「古い曲」の学習用楽曲データから得られた関数f(x)が選択される。そして、メロディー確率推定部282は、実施曲データのログスペクトル値を正規化対数値xに変換した上で、選択した関数f(x)によりメロディー確率を算出する。時間−音程空間内の各座標位置についてメロディー確率推定部282によりメロディー確率が算出されると、図80の(B)に示すようなメロディー確率分布が得られる。このようにして得られたメロディー確率分布は、メロディーライン決定部288に入力される。
(関数f(x)生成処理の流れについて)
ここで、図82を参照しながら、メロディー確率推定部282による関数f(x)の生成方法について、その処理の流れを簡単に纏めておくことにする。
図82に示すように、まず、メロディー確率推定部282は、時間軸方向にループ処理を開始する(S142)。このとき、時間軸方向の推定位置を表す時間t(フレーム番号t)が設定される。次いで、メロディー確率推定部282は、音程軸方向にループ処理を開始する(S144)。このとき、音程軸方向の推定位置を表す音程oが設定される。次いで、メロディー確率推定部282は、ステップS142、S144において設定した時間t、音程oで表される推定位置の参照範囲について、正規化対数値xを求める(S146)。例えば、推定位置(t,o)の周辺(t−2〜t+2,o−12〜o+36)が参照範囲に設定され、正規化対数値x={x(t+Δt,o+Δo);−2≦Δt≦2,−12≦o≦36}が算出される。次いで、メロディー確率推定部282は、事前に学習用楽曲データを用いて学習処理により求めた関数f(x)を用いて時間t、音程oのメロディー確率を算出する(S148)。
ステップS146、S148の処理により、時間t、音程oで表される推定位置のメロディー確率が推定された。そこで、メロディー確率推定部282は、再びステップS144の処理に戻り(S150)、推定位置の音程oを1セミトーンだけインクリメントしてステップS146、S148の処理を繰り返す。メロディー確率推定部282は、推定位置の音程oを1セミトーンずつインクリメントしながら、所定の音程範囲(例えば、o=12〜72)についてステップS146、S148の処理を実行する。所定の音程範囲についてステップS146、S148の処理が実行された後、メロディー確率推定部282は、ステップS152の処理に進行する。
ステップS152において、メロディー確率推定部282は、時間tのメロディー確率の和が1になるように正規化する(S152)。つまり、ステップS142で設定された推定位置の時間tについて、所定の音程範囲について算出されたメロディー確率の和が1になるように、ステップS152で各音程oのメロディー確率が正規化される。次いで、メロディー確率推定部282は、再びステップS142の処理に戻り(S154)、推定位置の時間tを1フレームだけインクリメントしてステップS144〜S152の処理を繰り返す。メロディー確率推定部282は、推定位置の時間tを1フレームずつインクリメントしながら、所定の時間範囲(例えば、t=1〜T)についてステップS144〜S152の処理を実行する。所定の時間範囲についてステップS144〜S152の処理が実行された後、メロディー確率推定部282は、メロディー確率の推定処理を終了する。
(メロディーライン決定部288)
次に、図83〜図85を参照しながら、メロディーライン決定部288の構成について説明する。メロディーライン決定部288は、メロディー確率推定部282で推定されたメロディー確率、及び音程分布推定部286で推定されたメロディーラインの期待値や標準偏差等に基づいて尤もらしいメロディーラインを決定する手段である。尤もらしいメロディーラインを決定するために、メロディーライン決定部288は、時間−音程空間内でメロディー確率が高い経路の探索処理を実行する。ここで実行する経路探索には、音程分布推定部286で算出されたP(o|Wt)、及び、以下に示すような確率p(Δo)、p(nt|nt−1)が用いられる。既に述べた通り、確率P(o|Wt)は、ある時刻tでメロディーが音程oをとる確率を表す。
まず、メロディーライン決定部288は、各楽曲データの正解メロディーラインにおいて変化量Δoの音程遷移が出現する割合を算出する。多数の楽曲データで各音程遷移Δoの出現割合を算出すると、メロディーライン決定部288は、各音程遷移Δoについて、これら全ての楽曲データにおける出現割合の平均値及び標準偏差を算出する。そして、メロディーライン決定部288は、上記のようにして算出した各音程遷移Δoに関する出現割合の平均値及び標準偏差を利用し、当該平均値及び標準偏差を持つガウス分布で確率p(Δo)を近似する。
次に、確率p(nt|nt−1)について説明する。確率p(nt|nt−1)は、音程nt−1から音程ntに遷移する際の遷移方向を考慮した確率を表す。なお、音程ntは、Cdown、C#down、…、Bdown、Cup、C#up、…、Bupのいずれかの値をとる。ここで、downは音程が下がることを示し、upは音程が上がることを示す。一方、nt−1は、音程の上がり下がりを考慮せず、C、C#、…、Bの値をとる。例えば、確率p(Dup|C)は、音程Cから音程Dに上がる確率を示す。但し、確率(nt|nt−1)は、実際のキー(例えば、D)を所定のキー(例えば、C)にシフトさせて利用される。例えば、現在のキーがDで所定のキーがCの場合、F#→Adownの遷移確率としては、キーをシフトすることでF#がEに変更され、AがGに変更されるため、確率p(Gdown|E)が参照される。
さて、確率p(nt|nt−1)についても確率p(Δo)の場合と同様にして、メロディーライン決定部288は、各楽曲データの正解メロディーラインにおいて各音程遷移nt−1→ntが出現する割合を算出する。多数の楽曲データで各音程遷移nt−1→ntの出現割合を算出すると、メロディーライン決定部288は、各音程遷移nt−1→ntについて、これら全ての楽曲データにおける出現割合の平均値及び標準偏差を算出する。そして、メロディーライン決定部288は、上記のようにして算出した各音程遷移nt−1→ntに関する出現割合の平均値及び標準偏差を利用し、当該平均値及び標準偏差持つガウス分布で確率p(nt|nt−1)を近似する。
これらの確率を概念的に示したものが図84である。図84の例では、メロディーラインの現在の音程がC4である。時間t1においてメロディーラインの音程が遷移する場合、遷移確率としては、確率p(Δo)、p(nt|nt−1)が参照される。例えば、音程C4から音程D4に遷移する場合、音程間の差は+2セミトーンである。また、図84の例では、同じオクターブ間で音程が上がる方向に遷移している。従って、確率p(Δo=+2)、確率p(Dup|C)が参照される。一方、音程C4から音程G3に遷移する場合、音程間の差は−5セミトーンである。また、図84の例では、オクターブを跨いで音程が下がる方向に遷移している。従って、確率p(Δo=−2)、確率p(Gdown|C)が参照される。同様に、時間t1においてメロディーが音程D4に遷移し、時間t2においてメロディーが音程G3に遷移する場合を考えると、確率p(Δo=−7)、確率p(Gdown|D)が参照される。また、各音程C4、D4、G3における確率としては、確率P(o|Wt)が参照される。
さて、上記のようにして得られた確率P(o|Wt)、p(Δo)、p(nt|nt−1)を用いてメロディーラインが決定される。但し、確率p(nt|nt−1)を利用するにはメロディーラインを推定しようとする楽曲データのキーが必要になるが、上記の通り、キーは、キー検出部138により与えられている。そこで、メロディーライン決定部288は、キー検出部138から与えられるキーを用いて後述するメロディーラインの決定処理を実行する。
メロディーライン決定部288は、ビタビ(Viterbi)探索を用いてメロディーラインを決定する。ビタビ探索自体は、隠れマルコフモデル(Hidden Markov Model)に基づく良く知られた経路探索手法である。メロディーライン決定部288によるビタビ探索には、確率P(o|Wt)、p(Δo)、p(nt|nt−1)の他に、メロディー確率推定部282で推定された各推定位置におけるメロディー確率が用いられる。以下の説明においては、時間t、音程oにおける上記のメロディー確率をp(Mt|o,t)と表すことにする。これらの確率を用いると、ある時点tで音程oがメロディーである確率P(o,t)は、下記の式(15)のように表現される。そして、音程oから同じ音程oに遷移する確率P(t+Δt,o|t,o)は、下記の式(16)のように表現される。さらに、音程oから異なる音程o+Δoに遷移する確率P(t+Δt,o+Δo|t,o)は、下記の式(17)のように表現される。
…(15)
…(16)
…(17)
このような表現を用いると、ノードq1(時刻t1、音程o27)→q2(時刻t2、音程o26)と辿った場合の確率P(q1,q2)は、P(q1,q2)=p(nt2|nt1)p(Δo=−1)p(M1|o27,t1)p(o27|Wt1)と表される。そして、楽曲の最初から最後までの時間に関し、上記のように表現される確率が最大となるような経路が尤もらしいメロディーラインとして抽出される。但し、メロディーライン決定部288は、各ビタビ経路に関する確率の対数値を経路探索の基準とする。例えば、log(P(q1,q2))は、log(p(nt2|nt1))+log(p(Δo=−1))+log(p(M1|o27,t1))+log(p(o27|Wt1))のような各対数値の和が用いられる。
また、メロディーライン決定部288は、ビタビ探索の基準として単純に対数値の和を用いるのではなく、確率の種類に応じて重み付けし、重み付け加算された対数値を基準に利用するように構成されていてもよい。例えば、メロディーライン決定部288は、通過したノードのlog(p(Mt|o,t))、b1*log(p(o|Wt))、通過したノード間遷移のb2*log(p(nt|nt−1))、b3*log(p(Δo))を加算してビタビ探索の基準とする。但し、b1、b2、b3は確率の種類毎に与えられる重みパラメータである。つまり、メロディーライン決定部288は、楽曲の最初から最後までの時間について、上記の重み付き対数加算値を計算し、その対数加算値が最大の経路を抽出する。そして、メロディーライン決定部288で抽出された経路がメロディーラインに決定される。
なお、ビタビ探索に用いる確率及び重みパラメータは、分類推定部284で推定された楽曲の分類に応じて異なるものが用いられる方が好ましい。例えば、「古い曲」と分類された楽曲のメロディーラインに対するビタビ探索には、予め正解メロディーラインの与えられた大量の「古い曲」から求められた確率、及び「古い曲」用にチューニングされたパラメータが用いられる方が好ましい。このようにしてメロディーライン決定部288で決定されたメロディーラインは、平滑化部290に入力される。
(平滑化部290)
次に、平滑化部290の構成について説明する。平滑化部290は、メロディーライン決定部288で決定されたメロディーラインを楽曲のビートで定められる区間毎に平滑化する手段である。なお、平滑化部290は、ビート検出部132から与えられるビート位置に基づいて平滑化処理を実行する。平滑化部290は、例えば、8部音符毎にメロディーラインの投票を行い、最も頻度の高い音程をメロディーラインとする。各ビート区間には、メロディーラインとして複数の音程が含まれていることがある。そこで、平滑化部290は、メロディーラインに決定された音程の出現頻度をビート区間毎に検出し、最も出現頻度が多い音程で各ビート区間の音程を平滑化するのである。このようにしてビート区間毎に平滑化された音程がメロディーラインとしてメタデータ保存部112に保存される。
(2−4−8.ベース検出部146の構成)
次に、ベース検出部146について説明する。ベース検出部146は、上記のメロディー検出部144と同様の方法で楽曲データからベースラインを検出する手段である。図86に示すように、ベース検出部146は、ベース確率推定部292と、ベースライン決定部294と、平滑化部296とを含む。なお、ベース確率推定部292、及びベースライン決定部294には、分類推定部284から楽曲データの分類が入力される。また、ベースライン決定部294には、音程分布推定部286から音程分布に関する情報が入力される。但し、音程分布推定部286から入力される音程分布はベースラインに関するものである。また、ベースライン決定部294には、キー検出部138からキーが入力される。さらに、平滑化部296には、ビート検出部132からビート位置の情報が入力される。
(ベース確率推定部292)
まず、ベース確率推定部292について説明する。ベース確率推定部292は、ログスペクトル解析部108から出力されるログスペクトルをベース確率に変換する手段である。なお、ここで言うベース確率は、各座標位置におけるログスペクトルの値がベースラインのものである確率を表している。まず、ベース確率推定部292は、各座標位置のベース確率を推定するため、事前に正解ベースラインが分かっている楽曲データのログスペクトルを用いてロジスティック回帰を行う。このロジスティック回帰により、ログスペクトルからメロディー確率を算出するための関数fが得られる。そして、ベース確率推定部292は、求めた関数を用いてベース確率の分布を算出する。つまり、ベース確率推定部292の処理は、メロディー確率推定部282によるメロディー確率の算出処理をベース確率の算出処理に置き換えた点を除き、実質的に同じものである。従って、詳細な説明は省略する。
(ベースライン決定部294)
次に、ベースライン決定部294について説明する。ベースライン決定部294は、ベース確率推定部292で推定されたベース確率、及び音程分布推定部286で推定されたベースラインの期待値や標準偏差等に基づいて尤もらしいベースラインを決定する手段である。なお、音程分布推定部286におけるベースラインに関する分布推定は、学習用データとして用いる教師データをベースラインのものに置き換えることでメロディーラインの場合と同様に実現することができる。さて、尤もらしいベースラインを決定するために、ベースライン決定部294は、時間−音程空間内でベース確率が高い経路の探索処理を実行する。ここで実行される探索処理は、メロディー確率をベース確率に置き換えることでメロディーライン決定部288による探索処理と実質的に同じ方法で実現される。そのため、詳細な説明は省略する。
(平滑化部296)
次に、平滑化部296の構成について説明する。平滑化部296は、ベースライン決定部294で決定されたベースラインを楽曲のビートで定められる区間毎に平滑化する手段である。なお、平滑化部296は、ビート検出部132から与えられるビート位置に基づいて平滑化処理を実行する。平滑化部296は、例えば、8部音符毎にベースラインの投票を行い、最も頻度の高い音程をベースラインとする。各ビート区間には、ベースラインとして複数の音程が含まれていることがある。そこで、平滑化部296は、ベースラインに決定された音程の出現頻度をビート区間毎に検出し、最も出現頻度が多い音程で各ビート区間の音程を平滑化するのである。このようにしてビート区間毎に平滑化された音程がベースラインとしてメタデータ保存部112に保存される。
(2−4−9.メタデータ検出部148の構成)
次に、メタデータ検出部148の構成について説明する。メタデータ検出部148は、所定の時間単位で楽曲データが持つ1つの特徴を表す時系列メタデータ、及び1曲単位で楽曲データが持つ1つの特徴を表す1曲毎メタデータを抽出する手段である。
時系列メタデータとしては、例えば、各楽器音の存在確率、各楽器音がソロ演奏である確率(以下、ソロ確率)、ボーカルの音質等がある。また、楽器音の種類としては、セクション毎に、ボーカル、ギター、ベース、キーボード、ドラム、ストリングス、ブラス、コーラス等がある。さらに細かく言えば、ドラム音には、スネア、キック、タム、ハイハット、シンバルがある。つまり、このような各種類の楽器音に対する存在確率やソロ確率が時系列メタデータとして抽出される。また、ボーカルの音声に関する時系列メタデータとしては、シャウトしているか否かがメタデータとして抽出される。一方、1曲毎メタデータとしては、楽曲データが所定のジャンルに属する確率、1曲全体での各楽器音の存在確率、楽曲の曲調等がある。所定のジャンルとしては、例えば、ロック、ポップス、ダンス、ラップ、ジャズ、クラシック等がある。また、曲調としては、にぎやか、穏やか等がある。
一例として、あるタイミングで、どの楽器が演奏されているかを示す楽器音の存在確率(時系列メタデータの一例)を算出する方法について説明する。なお、この方法において、メタデータ検出部148は、音源分離部106で分離された音源の各組み合わせについて各楽器音の存在確率を算出するものとする。まず、メタデータ検出部148は、楽器音の存在確率を推定するために、特徴量計算式生成装置10(又はその他の学習アルゴリズム)を利用して各楽器音の存在確率を算出するための計算式を生成する。さらに、メタデータ検出部148は、楽器音の種類毎に生成した計算式を用いて各楽器音の存在確率を算出する。
メタデータ検出部148は、ある楽器音の存在確率を算出する計算式を生成するために、予め時系列にラベル付けされたログスペクトルを用意する。例えば、メタデータ検出部148は、図87に示すように、ラベル付けされたログスペクトルを所定の時間単位(例えば、1秒程度)毎に切り出し、切り出した部分ログスペクトルを用いて存在確率を算出するための計算式を生成する。図87には、ボーカルの有無が事前に分かっている楽曲データのログスペクトルが一例として示されている。このようなログスペクトルが与えられると、メタデータ検出部148は、所定の時間単位で切り出し区間を決定し、各切り出し区間におけるボーカルの有無を参照してボーカル有りの区間にラベル1を付与し、ボーカル無しの区間にラベル0を付与する。なお、他の種類の楽器音についても同様である。
このようにして切り出された時系列の部分ログスペクトルは、評価データとして特徴量計算式生成装置10に入力される。また、各部分ログスペクトルに付与された各楽器音のラベルは、教師データとして特徴量計算式生成装置10に入力される。このような評価データ及び教師データを与えることで、実施曲の部分ログスペクトルが入力された際に、入力された部分ログスペクトルの切り出し区間に各楽器音が含まれるか否かを出力する計算式が得られる。そこで、メタデータ検出部148は、時間軸を少しずつシフトしつつ、部分ログスペクトルを各楽器音に対応する計算式に入力し、その出力値を特徴量計算式生成装置10が学習処理の際に算出した確率分布に従って確率値に変換する。そして、メタデータ検出部148は、時系列で算出される確率値を時系列メタデータとして保存する。このようなメタデータ検出部148の処理により、例えば、図88に示すような各楽器音の存在確率が算出される。
ここではボーカルの存在確率の算出方法を例に挙げて説明したが、他の楽器音の存在確率及びその他の時系列メタデータの算出方法についても同様である。また、1曲毎メタデータに関しては、1曲全体のログスペクトルを入力として1曲毎メタデータが算出されるような計算式を生成した上で、当該計算式を用いて1曲毎メタデータを算出すればよい。例えば、楽曲の曲調を算出する計算式を生成するには、特徴量計算式生成装置10に対し、評価データとして曲調が分かっている楽曲データのログスペクトルを複数入力すると共に、教師データとして曲調を表す判定値を入力すればよい。これらの入力に対して特徴量計算式生成装置10による学習処理により生成された計算式を利用し、当該計算式に1曲分のログスペクトルを入力することで、その曲の曲調が1曲毎メタデータとして算出される。もちろん、1曲毎メタデータとして楽曲のジャンルを算出する場合についても同様である。このようにして算出された1曲毎メタデータは、メタデータ保存部112に保存される。
以上、情報処理装置100が有する構成要素のうち、楽曲解析方法に関する構成要素の機能について詳細に説明した。上記の通り、楽曲解析部110による解析処理により、楽曲データに関する各種メタデータがメタデータ保存部112に保存される。そこで、以下では、メタデータ保存部112に保存された各種メタデータを利用し、楽曲データをリアルに視覚化する方法について説明する。視覚化方法に関する構成要素は、視覚化パラメータ決定部114、及び視覚化部116である。以下、これらの構成要素が持つ機能について説明する。
[2−5.視覚化パラメータ決定部114の構成]
まず、視覚化パラメータ決定部114の構成について説明する。視覚化パラメータ決定部114は、メタデータ保存部112に保存された種々のメタデータに基づいてオブジェクトを制御するためのパラメータを決定する手段である。なお、オブジェクトとしては、CG映像で実現される演奏シーンの登場人物や、情報処理装置100に外部接続されたロボット等がある。以下では、一例として、CG映像で実現される演奏シーンにメタデータ保存部112に保存された種々のメタデータを反映させる方法について説明する。
(2−5−1.視覚化パラメータ決定方法の概要)
まず、図89を参照しながら、視覚化パラメータ決定部114による一連の処理の流れについて説明する。図89に示すフローチャートは、視覚化パラメータ決定部114による全体的な処理の流れを示すものである。
図89に示すように、視覚化パラメータ決定部114は、まず、メタデータ保存部112から楽曲解析部110による解析処理の結果得られたメタデータを取得する(S202)。例えば、ビート、キー、コード進行、メロディーライン、ベースライン、各楽器音の存在確率及びソロ確率、楽曲の曲調及びジャンル、楽曲構造等が取得される。次いで、視覚化パラメータ決定部114は、現在時刻及びメタデータに基づいてステージライトやスポットライト等の照明制御を行うための照明パラメータを決定する(S204)。次いで、視覚化パラメータ決定部114は、観客を表すオブジェクト(以下、観客オブジェクト)の動きを制御するための観客パラメータを決定する(S206)。次いで、視覚化パラメータ決定部114は、演奏者を表すオブジェクト(以下、演奏者オブジェクト)の動きを制御するための演奏者パラメータを決定する(S208)。次いで、視覚化パラメータ決定部114は、視覚化パラメータとして、照明パラメータ、観客パラメータ、演奏者パラメータを視覚化部116に出力し(S210)、一連の視覚化パラメータ決定処理を終了する。以下、各ステップの処理について、より詳細に説明する。
(2−5−2.視覚化パラメータ決定方法の詳細)
以下、視覚化パラメータの決定方法について、より詳細に説明する。
(CG映像による演奏シーンの構成)
まず、図90を参照しながら、視覚化パラメータ決定部114で決定された視覚化パラメータに基づいて視覚化部116により実現される演奏シーンの一例(CG映像)について説明する。図90には、視覚化部116により実現される演奏シーンの一例が示されている。このCG映像には、ボーカル、ギター、ベース、キーボード、ドラム、ストリングス、ブラスの各セクションを担当する演奏者オブジェクトが含まれる。また、ステージの手前には、観客オブジェクトが配置されている。さらに、照明として、ステージライト、及びスポットライトが設けられている。以下では、これらの演奏者オブジェクト及び観客オブジェクトの動き、照明、及び背景色を対象物として、これら対象物の制御に用いるパラメータの決定方法について説明する。もちろん、本実施形態の適用範囲はこれに限定されず、例えば、メタデータを用いてスピーカの動作を表現したり、背景に別の映像を表示させたりすることも可能である。
(照明パラメータの決定方法について)
まず、図91〜図96を参照しながら、照明パラメータの決定方法について説明する。図91は、照明パラメータの基本的な設定例を示す説明図である。図92は、背景色に関する照明パラメータの設定例を示す説明図である。図93は、ステージライト、及びスポットライトに関する照明パラメータの設定例を示す説明図である。図94は、ステージライトに関する照明パラメータの詳細な設定例を示す説明図である。図95、図96は、照明パラメータの決定処理に関する一連の流れを示す説明図である。
まず、図91を参照する。視覚化パラメータ決定部114は、図91に示すように、背景色の色、輝度、各ステージライトの色、輝度、角度、各スポットライトの色、輝度を照明パラメータとして設定する。例えば、色は、赤(R)、緑(G)、青(B)の各濃度を0〜255の値で示したRGB表示で表される。また、輝度は、所定の輝度を基準に0〜100%の値で表される。さらに、角度は、ステージ上を向く方向を0度とし、観客方向を90度として表される。なお、図90のように、ステージライト、及びスポットライトは複数個設けられている。例えば、スポットライトは、各演奏者オブジェクトに対して設けられている。そのため、照明パラメータは、個々のライトに対して設定されていてもよいし、或いは、複数個のライトで構成される所定のグループ毎に設定されていてもよい。視覚化パラメータ決定部114により決定された照明パラメータは、視覚化部116に入力され、楽曲データの演奏中にCG映像に対してリアルタイムに反映される。
次に、図92を参照する。図92に示すように、視覚化パラメータ決定部114は、現在時刻に応じて背景色を変化させてもよい。例えば、現在時刻が昼間の場合、視覚化パラメータ決定部114は、背景色を青にし、背景色の輝度を100%に設定する。また、現在時刻が夕方の場合、視覚化パラメータ決定部114は、背景色をオレンジにし、背景色の輝度を10%に設定する。さらに、現在時刻が夜間の場合、視覚化パラメータ決定部114は、背景色を黒にし、背景色の輝度を0%に設定する。このように、現在時刻に応じて背景色を変化させることで、CG映像の世界と実世界との間の時間が整合し、リアリティを向上させることができる。なお、視覚化パラメータ決定部114は、現在時刻の経過に同期して「昼間」→「夕方」→「夜間」の間でスムーズに背景色が変更されるように中間色及び中間の輝度を用いてもよい。
次に、図93を参照する。図93に示すように、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたメタデータのうち、楽曲データのジャンルを示すメタデータに基づいてジャンル毎にステージライト、及びスポットライトの視覚化パラメータを決定する。なお、ジャンルに基づいて処理の分岐を行う場合、メタデータ検出部148で1曲毎メタデータとして検出された各ジャンルの確率のうち最も確率の高いところに分岐するように構成される。例えば、ポップス、ロック、ダンス、ジャズ、クラシックの5つの分岐があり、ポップスの確率が80%、ロック70%、ダンス90%、ジャズ20%、クラシック0%であった場合、最も確率の高いダンスの枝に分岐する。
例えば、楽曲データのジャンルがロックである場合、視覚化パラメータ決定部114は、小節単位でステージライトの色を変更する。このとき、視覚化パラメータ決定部114は、メタデータ保存部112に保存されているメタデータのうち、小節線検出部140で検出された小節線の情報に基づいて色の変更タイミングを判断する。また、視覚化パラメータ決定部114は、4分音符単位でステージライトの色変更パターンを変化させる。このとき、視覚化パラメータ決定部114は、メタデータ保存部112に保存されているメタデータのうち、ビート検出部132で検出されたビートの情報に基づいて色変更パターンの切り替えタイミングを判断する。さらに、視覚化パラメータ決定部114は、ステージライトの角度を30度に設定する。そして、視覚化パラメータ決定部114は、スポットライトの色を白色に設定する。
他の例として、楽曲データのジャンルがジャズである場合、視覚化パラメータ決定部114は、ステージライトの色を暖色に設定する。但し、視覚化パラメータ決定部114は、ステージライトの輝度パターンを変化させない。さらに、視覚化パラメータ決定部114は、ステージライトの角度を0度に設定する。そして、視覚化パラメータ決定部114は、スポットライトの色を青色に設定する。さらに他の例として、楽曲データのジャンルがクラシックである場合、視覚化パラメータ決定部114は、ステージライトの色を白色に設定する。但し、視覚化パラメータ決定部114は、ステージライトの輝度パターンを変化させない。さらに、視覚化パラメータ決定部114は、ステージライトの角度を45度に設定する。そして、視覚化パラメータ決定部114は、スポットライトの色を白色に設定する。なお、ジャンルがロック又はダンスの場合、ステージライトをビートに合わせて変化させる。
次に、図94を参照する。上記の通り、楽曲データのジャンルがロックである場合、視覚化パラメータ決定部114は、小節単位でステージライトの色を変更する。このとき、視覚化パラメータ決定部114は、図94に示す所定のパターンに従って色を変更する。例えば、パターン番号1で定義される色変更パターンの場合、視覚化パラメータ決定部114は、ステージライトの色を赤と緑とに交互に変更する。また、パターン番号2で定義される色変更パターンの場合、視覚化パラメータ決定部114は、ステージライトの色を紫と白とに交互に変更する。さらに、パターン番号3で定義される色変更パターンの場合、視覚化パラメータ決定部114は、ステージライトの色を水色と緑とに交互に変更する。そして、パターン番号4で定義される色変更パターンの場合、視覚化パラメータ決定部114は、ステージライトの色を黄色と白とに交互に変更する。
次に、図95、図96を参照しながら、照明パラメータの決定方法に関する一連の処理の流れについて説明する。まず、図95を参照する。図95に示すように、視覚化パラメータ決定部114は、まず、メタデータ保存部112に保存されたジャンルを示すメタデータに基づいて演奏中の楽曲が属するジャンルを判定する(S220)。ジャンルがポップス、ロック、ダンスのいずれかである場合、視覚化パラメータ決定部114は、ステップS222の処理に進行する。また、ジャンルがジャズである場合、視覚化パラメータ決定部114は、ステップS224の処理に進行する。さらに、ジャンルがクラシックである場合、視覚化パラメータ決定部114は、ステップS226の処理に進行する。
ステップS222において、視覚化パラメータ決定部114は、ステージライトの角度を30度に設定すると共に、スポットライトの色を白色に設定し(S222)、ステップS228の処理に進行する。また、ステップS224において、視覚化パラメータ決定部114は、ステージライトの色を暖色に、角度を0度に設定すると共に、スポットライトの色を青色に設定し(S224)、ステップS236(図96)の処理に進行する。さらに、ステップS226において、視覚化パラメータ決定部114は、ステージライトの色を白色に、角度を45度に設定すると共に、スポットライトの色を白色に設定し(S226)、ステップS236(図96)の処理に進行する。
ステップS228では、視覚化パラメータ決定部114により、メタデータ保存部112に保存された小節線の位置を示すメタデータに基づいて小節変化の有無が判定される(S228)。小節が変化した場合、視覚化パラメータ決定部114は、ステップS230の処理に進行する。一方、小節が変化していない場合、視覚化パラメータ決定部114は、ステップS232の処理に進行する。ステップS230では、視覚化パラメータ決定部114により、図94の表に従ってステージライトの色パターンが変更される(S230)。なお、パターン番号は、小節が変化する度にインクリメントされる。但し、最後のパターン番号(4)の後は再び最初のパターン番号(1)に戻る。
ステップS232において、視覚化パラメータ決定部114は、まず、メタデータ保存部112に保存されたビート位置を示すメタデータ、及び楽曲構造を示すメタデータを参照する。そして、視覚化パラメータ決定部114は、ビートが変化したか否か、現在サビ部分を再生中で、かつ、ビートの半分の位置か否かを判定する(S232)。ビートが変化した場合、或いは、現在サビ部分を再生中で、かつ、ビートの半分の位置である場合、視覚化パラメータ決定部114は、ステップS234の処理に進行する。逆に、これ以外の場合、視覚化パラメータ決定部114は、ステップS236(図96)の処理に進行する。ステップS234では、視覚化パラメータ決定部114により、ステージライトの色が入れ替えられる(S234)。つまり、サビ部分ではビートの半分の時間間隔で色の入れ替えが行われる。なお、ステージライトの色は、図90に示すように互い違いに配色されており、交互に色が入れ替えられる。
図96を参照する。ステップS236において、視覚化パラメータ決定部114は、メタデータ保存部112から各楽器音の存在確率を示すメタデータを取得する(S236)。次いで、視覚化パラメータ決定部114は、各楽器音の存在確率について時間方向の移動平均を算出する(S238)。次いで、視覚化パラメータ決定部114は、ステップS238で算出した楽器音毎の平均値を対応する楽器の演奏者を照らすスポットライトの輝度に設定する(S240)。次いで、視覚化パラメータ決定部114は、メタデータ保存部112に保存された楽曲構造を示すメタデータを参照し、イントロであるか否かを判定する(S242)。イントロである場合、視覚化パラメータ決定部114は、ステップS244の処理に進行する。一方、イントロでない場合、視覚化パラメータ決定部114は、ステップS246の処理に進行する。
ステップS244では、視覚化パラメータ決定部114により、ステージライトの輝度が半分に設定される(S244)。ステップS246では、視覚化パラメータ決定部114により楽曲の年代を示すメタデータがメタデータ保存部112から取得され、そのメタデータが示す年代に応じて照明の色が調整される(S246)。例えば、最も年代が古い場合(例えば、100年前)には色がモノクロに近く、ある程度古い場合(例えば、50年前)にはセピア調の色に調整され、年代が新しい場合には鮮やかな色に調整される。このような一連の処理により、照明パラメータが決定される。
(観客パラメータの決定方法について)
次に、図97〜図101を参照しながら、観客パラメータの決定方法について説明する。図97は、観客パラメータの設定例を示す説明図である。図98は、観客パラメータの種類を示す説明図である。図99は、観客パラメータの決定方法に関する全体的な処理の流れを示す説明図である。図100は、にぎやかな楽曲が演奏されている場合の観客パラメータの決定方法に関する処理の流れを示す説明図である。図101は、おだやかな楽曲が演奏されている場合の観客パラメータの決定方法に関する処理の流れを示す説明図である。
まず、図97を参照する。図97に示すように、観客パラメータは、曲調に合わせて設定される。例えば、曲調がにぎやかな場合、イントロ部分で観客オブジェクトが静止し、サビ部分で観客オブジェクトがビートに合わせてジャンプし、それ以外の部分で観客オブジェクトが首のみ上下させるように、観客パラメータが設定される。また、曲調がおだやかな場合、イントロ部分で観客オブジェクトが静止し、サビ部分で観客オブジェクトが手を上げて小節単位で左右に振り、それ以外の部分で観客オブジェクトが首のみ左右に振るように、観客パラメータが設定される。さらに、曲調がクラシックの場合、観客オブジェクトは終始静止した状態となるように、観客パラメータが設定される。
図98には、このような観客パラメータの設定例に基づく観客オブジェクトの動きが示されている。図98の(A)は、観客パラメータで制御される観客オブジェクトの可動部分のうち、首部分の動きを示したものである。観客オブジェクトの首部分は、上下又は左右に動作可能である。上記の通り、曲調がにぎやかな場合、観客オブジェクトの首部分は、上下に動作制御される。また、曲調がおだやかな場合、観客オブジェクトの首部分は、左右に動作制御される。さらに、曲調がクラシックの場合、観客オブジェクトの首部分は静止したままとなる。
図98の(B)は、観客パラメータで制御される観客オブジェクトの可動部分のうち、体の位置(全体位置)の動きを示したものである。観客オブジェクトの全体位置は、上下(ジャンプ)に動作可能である。上記の通り、曲調がにぎやかな場合、観客オブジェクトはサビ部分でビートに合わせてジャンプ動作制御される。また、曲調がおだやかな場合及びクラシックの場合、観客オブジェクトはジャンプしない。図98の(C)は、観客パラメータで制御される観客オブジェクトの可動部分のうち、手の動きを示したものである。観客オブジェクトの手は、上げ下げ可能であると共に、左右に振る動作が可能である。上記の通り、曲調がにぎやかな場合及びクラシックの場合、観客オブジェクトは手を下げたままの状態に制御される。また、曲調がおだやかな場合、観客オブジェクトは、サビ部分で手を挙げ、小節単位で左右に振る。
次に、図99を参照する。図99に示すように、視覚化パラメータ決定部114は、まず、メタデータ保存部112に保存された曲調を表すメタデータを取得し、そのメタデータに基づいて曲調を判定する(S250)。曲調がにぎやかである場合、視覚化パラメータ決定部114は、ステップS252の処理に進行する。また、曲調がおだやかである場合、視覚化パラメータ決定部114は、ステップS254の処理に進行する。さらに、曲調がクラシックである場合、視覚化パラメータ決定部114は、ステップS256の処理に進行する。
そして、ステップS252では、視覚化パラメータ決定部114により、にぎやかな曲のパラメータ決定処理が実行される(S252)。ステップS254では、視覚化パラメータ決定部114により、おだやかな曲のパラメータ決定処理が実行される(S254)。ステップS256では、視覚化パラメータ決定部114により、クラシックの曲のパラメータ決定処理が実行される(S256)。ステップS252、S254、S256のいずれかのパラメータ決定処理が実行されると、観客パラメータの決定方法に関する一連の処理が終了する。
次に、図100を参照しながら、にぎやかな曲のパラメータ決定処理(S252)について説明する。図100に示すように、視覚化パラメータ決定部114は、まず、メタデータ保存部112に保存された楽曲構造を表すメタデータを取得し、そのメタデータに基づいて楽曲構造を判定する(S258)。楽曲構造がイントロである場合、視覚化パラメータ決定部114は、ステップS260の処理に進行する。また、楽曲構造がサビである場合、視覚化パラメータ決定部114は、ステップS262の処理に進行する。さらに、楽曲構造がそれ以外である場合、視覚化パラメータ決定部114は、ステップS264の処理に進行する。
そして、ステップS260では、視覚化パラメータ決定部114により、観客オブジェクトがデフォルトの位置で静止するように制御される(S260)。ステップS262では、視覚化パラメータ決定部114により、ビート位置で着地するタイミングでビートに合わせてジャンプするように観客オブジェクトの動作制御が実行される(S262)。このとき、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたビート位置を示すメタデータに基づいてジャンプのタイミングを決定する。ステップS264では、視覚化パラメータ決定部114により、観客オブジェクトの首がビートに合わせて上下するように動作制御が実行される(S264)。このとき、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたビート位置を示すメタデータに基づいて首を上下させるタイミングを決定する。ステップS260、S262、S264のいずれかの処理が実行されると、にぎやかな曲に関する観客パラメータの決定処理が終了する。
次に、図101を参照しながら、おだやかな曲のパラメータ決定処理(S254)について説明する。図101に示すように、視覚化パラメータ決定部114は、まず、メタデータ保存部112に保存された楽曲構造を表すメタデータを取得し、そのメタデータに基づいて楽曲構造を判定する(S266)。楽曲構造がイントロである場合、視覚化パラメータ決定部114は、ステップS268の処理に進行する。また、楽曲構造がサビである場合、視覚化パラメータ決定部114は、ステップS270の処理に進行する。さらに、楽曲構造がそれ以外である場合、視覚化パラメータ決定部114は、ステップS272の処理に進行する。
そして、ステップS268では、視覚化パラメータ決定部114により、観客オブジェクトがデフォルトの位置で静止するように制御される(S268)。ステップS270では、視覚化パラメータ決定部114により、小節毎に首を左右に振り、両手を上で左右に振るように観客オブジェクトの動作制御が実行される(S270)。このとき、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたビート位置を示すメタデータに基づいて首及び手を振るタイミングを決定する。ステップS272では、視覚化パラメータ決定部114により、観客オブジェクトの首をビートに合わせて左右に振るように動作制御が実行される(S272)。このとき、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたビート位置を示すメタデータに基づいて首を左右に振らせるタイミングを決定する。ステップS268、S270、S272のいずれかの処理が実行されると、おだやかな曲に関する観客パラメータの決定処理が終了する。
(演奏者パラメータの決定方法について)
次に、図102〜図127を参照しながら、演奏者パラメータの決定方法について説明する。演奏者パラメータは、演奏者オブジェクトの種類毎に設定されるものと、種類とは無関係に設定されるものとがある。演奏者オブジェクトの種類に関係無く設定される演奏者パラメータとしては、例えば、演奏者オブジェクトの表示/非表示の切り替えや、服装の色等がある。
演奏者オブジェクトの表示/非表示の切り替えは、各楽器音の存在確率に基づいて行われる。但し、この切り替えに用いる各楽器音の存在確率は、1曲毎メタデータとして算出された各楽器音の存在確率である。例えば、曲全体で存在確率が低い楽器音に対応する演奏者オブジェクトは非表示(図102の(C)を参照)に設定される。また、演奏者オブジェクトの服装は、楽曲のジャンルに基づいて設定される。例えば、ジャンルがクラシック又はジャズの場合、演奏者オブジェクトの服装は、黒のスーツやタキシード等に設定される。一方、ジャンルがロックの場合、演奏者オブジェクトの服装は、季節が秋冬なら演奏者オブジェクトの種類毎に決められた有彩色のTシャツ等に設定される。
演奏者オブジェクトの種類毎に異なる演奏者パラメータの決定方法については、以下で詳細に説明する。但し、本実施形態においては、一例として、ボーカル、ギター、ベース、キーボード、ドラム、ストリングス、ブラスの7つの楽器の演奏者オブジェクトに限定して説明を行うことにする。もちろん、本実施形態に係る技術の適用範囲はこれに限定されず、他の楽器を演奏する演奏者オブジェクトの演奏者パラメータについても同様にして演奏者パラメータを決定することが可能である。
(ボーカルについて)
まず、図102、図103を参照しながら、ボーカルの演奏者オブジェクトに適用される演奏者パラメータの決定方法について説明する。図102は、ボーカルに関する演奏者パラメータの種類を示す説明図である。図103は、ボーカルに関する演奏者パラメータの決定方法に係る処理の流れを示す説明図である。
まず、図102を参照する。図102に示すように、ボーカルに関する演奏者パラメータとしては、演奏者オブジェクトの縦横サイズ、ヘアスタイル、口を開く大きさ、マイクを持つ手の角度、マイクを持たない手の位置、目の形(表情)等がある。演奏者オブジェクトの縦横サイズは、1曲毎のメタデータとしてメタデータ検出部148により検出されたボーカルの身長や体重等に基づいて決定される。
例えば、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたボーカルの身長を示すメタデータに基づいてボーカルの演奏者オブジェクトの縦サイズを決定する。そして、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたボーカルの身長及び体重を示すメタデータに基づいてボーカルの演奏者オブジェクトの横サイズを決定する。このようにして楽曲データの波形から推定されたボーカルの身体的な特徴に関する情報を演奏者オブジェクトに反映されることで、楽曲毎に視覚的な変化が生まれ、ユーザの飽きを抑制する効果が得られる。
また、演奏オブジェクトのヘアスタイルは、メタデータ検出部148で検出されたボーカルの性別及び楽曲のジャンルに基づいて決定される。例えば、ボーカルが女性であると推定された場合、ボーカルの演奏者オブジェクトは、髪の毛が長く設定される。また、ボーカルが男性であり、楽曲のジャンルがロックであると推定された場合、ボーカルの演奏者オブジェクトは、髪の毛が逆立つように設定される。さらに、ジャンルがラップであれば髪の毛が短く設定される。
また、演奏者オブジェクトが口を開く大きさ、及びマイクを持つ手の角度は、ボーカルの存在確率に基づいて決定される。例えば、ボーカルの存在確率が高い場合、口が大きく開いた状態に設定される。さらに、ボーカルの存在確率が高くなるほど、マイクが口に近づくように設定される。また、マイクを持たない手の位置(高さ)は、メロディーラインに基づいて決定される。例えば、メロディーが高い音程の場合、マイクを持たない手の位置が高くなるように設定される。逆に、メロディーが低い音程の場合、マイクを持たない手の位置が低くなるように設定される。なお、他の楽器がソロ演奏中であると判断された場合、マイクを持たない手の位置は固定される。
また、目の形は、メタデータ保存部112に保存された曲調を示すメタデータに基づき、にぎやかな曲の場合、普通の目に設定される。一方、おだやかな曲の場合、閉じているような目に設定される。また、視覚化パラメータ決定部114は、メロディー検出部144で検出されたメロディーラインの情報に基づいて目の形をクロスさせる。例えば、視覚化パラメータ決定部114は、1曲全体におけるメロディーの平均音程と音程の標準偏差とを算出し、現在のメロディーの音程が平均音程+3×標準偏差より高い音程の場合、又は声質がシャウト系である場合に目をクロスさせる。
ここで、図103を参照しながら、ボーカルの演奏者オブジェクトに関する演奏者パラメータ決定処理の流れについて説明する。図103に示すように、まず、視覚化パラメータ決定部114は、ボーカルの身長、体重から演奏者オブジェクトの縦横サイズを決定する(S280)。このとき、メタデータ保存部112に保存されたボーカルの身長、体重を示すメタデータが参照される。次いで、視覚化パラメータ決定部114は、楽曲のジャンル及びボーカルの性別に基づいてボーカルの演奏者オブジェクトのヘアスタイルを決定する(S282)。このとき、メタデータ保存部112に保存された楽曲のジャンルを示すメタデータ、及びボーカルの性別を示すメタデータが参照される。
次いで、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたメロディーラインの情報に基づいて現在のメロディーの音程が平均+3σ以上であるか否か、ボーカルの音質がシャウト系であるか否かを判断する。但し、平均は、1曲全体にわたるメロディーラインの平均音程である。また、σは、1曲全体にわたるメロディーラインの音程の標準偏差である。メロディーの音程が平均+3σ以上であるか、或いは、ボーカルの音質がシャウト系である場合、視覚化パラメータ決定部114は、ステップS286の処理に進行する。一方、現在のメロディーの音程が上記の条件を満たさない場合、視覚化パラメータ決定部114は、ステップS288の処理に進行する。
ステップS286では、視覚化パラメータ決定部114により、ボーカルの演奏者オブジェクトの目がクロスした目に設定される(S286)。一方、ステップS288では、視覚化パラメータ決定部114により、メタデータ保存部112に保存された曲調を表すメタデータが参照され、曲調が判定される(S288)。にぎやかな曲の場合、視覚化パラメータ決定部114は、ステップS290の処理に進行する。一方、おだやかな曲の場合、視覚化パラメータ決定部114は、ステップS292の処理に進行する。ステップS290では、視覚化パラメータ決定部114により、ボーカルの演奏者オブジェクトの目が普通の目に設定される(S290)。ステップS292では、視覚化パラメータ決定部114により、ボーカルの演奏者オブジェクトの目が閉じた目に設定される(S292)。
ステップS286、S290、S292のいずれかの処理が完了すると、視覚化パラメータ決定部114は、ステップS294の処理に進行する。ステップS294では、視覚化パラメータ決定部114により、メタデータ保存部112からメロディーラインの情報が読み出され、当該メロディーラインの情報に基づいてマイクを持たない手の位置が決定される(S294)。次いで、視覚化パラメータ決定部114は、メタデータ保存部112に保存されたボーカルの存在確率を参照し、当該存在確率に基づいてボーカルの演奏者オブジェクトが口を開く大きさ、及びマイクを持つ手の角度を決定する(S296)。ステップS296の処理が終了すると、視覚化パラメータ決定部114は、ボーカルに関する演奏者パラメータの決定処理を終了する。
(ギターについて)
次に、図104〜図109を参照しながら、ギターの演奏者オブジェクトに適用される演奏者パラメータの決定方法について説明する。図104は、ギターソロの場合に設定される演奏者パラメータの設定例を示す説明図である。図105は、ギターソロ以外の場合に設定される演奏者パラメータの設定例を示す説明図である。図106は、ギターの演奏者オブジェクトに適用される演奏者パラメータの種類を示す説明図である。図107は、ギターの演奏者パラメータの決定方法に関する全体的な処理の流れを示す説明図である。図108は、ギターソロの場合に、ギターの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。図109は、ギターソロ以外の場合に、ギターの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。
まず、図106に示すように、ギターに関する演奏者パラメータには、弦を弾く手の角度、フレットを押さえる手の位置、目の形(表情)、仰け反り角度(姿勢)、及び口を開く大きさがある。口を開く大きさを示すギターの演奏者パラメータは、時系列のメタデータであるハモリの存在確率に基づいて決定される。また、仰け反り角度を示すギターの演奏者パラメータは、ギターソロの場合、メロディーラインに基づいて決定される。例えば、仰け反り角度を示す演奏者パラメータは、メロディーラインが高い音程となるほど大きく仰け反るように設定される。一方、ギターソロ以外の場合、仰け反り角度がゼロ(直立)となるように演奏者パラメータが設定される。但し、ギターソロであるか否かの判断は、ギターソロ確率がある一定以上であるか否かにより行われる。
また、目の形(表情)を示すギターの演奏者パラメータは、ギターソロの場合に目がクロスするように設定され、それ以外の場合に普通の目に設定される。フレットを押さえる手の位置を示す演奏者パラメータは、ギターソロの場合にメロディーラインの音程に基づいて設定され、ギターソロでない場合、コード名に基づいて設定される。例えば、ギターソロの場合、図104に示す演奏者パラメータの設定例に基づいてフレットを押さえる手の位置が決定される。
例えば、メロディーがE2〜G#2の場合、第1弦で、E2で最もネック側、G#2に近づくほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。同様に、メロディーがA2〜C#3の場合、第2弦で、A2で最もネック側、C#3に近づくほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。メロディーがD3〜F#3の場合、第3弦で、D3で最もネック側、F#3に近づくほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。メロディーがG3〜A#3の場合、第4弦で、G3で最もネック側、A#3に近づくほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。メロディーがB3〜D#4の場合、第5弦で、B3で最もネック側、D#4に近づくほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。メロディーがE4より高い場合、第6弦で、E4で最もネック側、高い音ほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。
一方、ギターソロ以外の場合、図105に示す演奏者パラメータの設定例に基づいてフレットを押さえる手の位置が決定される。図105に示すように、ギターソロ以外の場合、メタデータ保存部112に保存されたコードのルート音に基づいてフレットを押さえる手の位置が決定される。図105の例は、最もネックに近い位置でコードを弾いていると仮定した場合の位置を示している。例えば、コードのルート音がE、F、F#、G、G#である場合、フレットを押さえる手の位置は、Eで最もネック側、G#に近づくほどボディー側になるように設定される。同様に、コードのルート音がA、A#、B、C、C#、D、D#である場合、フレットを押さえる手の位置は、Aで最もネック側、D#に近づくほどボディー側になるように設定される。
また、弦を弾く手の角度は、図106に示すように、ギターソロの場合、メロディーラインが変化するタイミングでちょうど弦を弾くように設定される。このとき、角度の変化範囲θ1は小さく設定される。一方、ギターソロでない場合、弦を弾く手の角度はビート単位で手が一往復するように設定される。そして、角度の変化範囲θ2は大きく設定される。また、ギターの存在確率が高いほど変化範囲が大きく設定される。
ここで、図107〜図109を参照しながら、ギターに関する演奏者パラメータの決定方法について説明する。
まず、図107を参照しながら、ギターに関する演奏者パラメータ決定処理の全体的な流れについて説明する。図107に示すように、まず、視覚化パラメータ決定部114は、ギターソロ確率が予め設定された一定値以上か否かを判断する(S300)。ギターソロ確率が一定値以上の場合、視覚化パラメータ決定部114は、ステップS302の処理に進行する。一方、ギターソロ確率が一定値以下の場合、視覚化パラメータ決定部114は、ステップS304の処理に進行する。ステップS302では、視覚化パラメータ決定部114により、ギターソロ時のパラメータ設定処理が実行される(S302)。ステップS304では、視覚化パラメータ決定部114により、ギターソロ時以外のパラメータ設定処理が実行される(S304)。ステップS302、S304のいずれかの処理を実行すると、視覚化パラメータ決定部114は、ステップS306の処理に進行する。ステップS306では、視覚化パラメータ決定部114により、ハモリ存在確率が参照され、当該ハモリ存在確率に基づいて演奏者オブジェクトの口を開く大きさが決定される(S306)。
次に、図108を参照しながら、ギターソロ時のパラメータ決定処理について説明する。図108に示すように、まず、視覚化パラメータ決定部114は、ギターの演奏者オブジェクトの表情をクロスした目に設定する(S308)。次いで、視覚化パラメータ決定部114は、メロディーの音程に基づいて演奏者オブジェクトの仰け反り角度を決定する(S310)。次いで、視覚化パラメータ決定部114は、メロディーの音程に基づいてフレットを押さえる手の位置を決定する(S312)。次いで、視覚化パラメータ決定部114は、メロディーの音程変化タイミング、及びギターの存在確率に基づいて弦を弾く手の角度を決定する(S314)。
次に、図109を参照しながら、ギターソロ時以外のパラメータ決定処理について説明する。図109に示すように、まず、視覚化パラメータ決定部114は、ギターの演奏者オブジェクトの表情を普通の目に設定する(S316)。次いで、視覚化パラメータ決定部114は、演奏者オブジェクトの仰け反り角度を0度(直立)に設定する(S318)。次いで、視覚化パラメータ決定部114は、現在コードのルート音に基づいてフレットを押さえる手の位置を決定する(S320)。次いで、視覚化パラメータ決定部114は、ギターの存在確率が予め設定された一定値以上であるか否かを判定する(S322)。
ギターの存在確率が一定値以上である場合、視覚化パラメータ決定部114は、ステップS324の処理に進行する。一方、ギターの存在確率が一定値以下である場合、視覚化パラメータ決定部114は、ステップS326の処理に進行する。ステップS324では、視覚化パラメータ決定部114により、ビート位置、及びギターの存在確率に基づいて演奏者オブジェクトの弦を弾く手の角度が決定される(S324)。ステップS326では、視覚化パラメータ決定部114により、弦を弾く手の角度が一定に固定される(S326)。ステップS324、S326の処理が実行されると、視覚化パラメータ決定部114は、ギターソロの場合における演奏者パラメータの設定処理を終了する。
(ベースについて)
次に、図110〜図114を参照しながら、ベースの演奏者オブジェクトに適用される演奏者パラメータの決定方法について説明する。図110は、ベースの演奏者オブジェクトに適用される演奏者パラメータの種類を示す説明図である。図111は、ベースに関する演奏者パラメータの設定例を示す説明図である。図112は、ベースの演奏者パラメータの決定方法に関する全体的な処理の流れを示す説明図である。図113は、ベースソロの場合に、ベースの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。図114は、ベースソロ以外の場合に、ベースの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。
まず、図110に示すように、ベースに関する演奏者パラメータには、弦を弾く手の角度、フレットを押さえる手の位置、目の形(表情)、仰け反り角度(姿勢)、及び口を開く大きさがある。口を開く大きさを示すベースの演奏者パラメータは、時系列のメタデータであるハモリの存在確率に基づいて決定される。また、仰け反り角度を示すベースの演奏者パラメータは、ベースソロの場合、ベースラインに基づいて決定される。例えば、仰け反り角度を示す演奏者パラメータは、ベースラインが高い音程となるほど大きく仰け反るように設定される。一方、ベースソロ以外の場合、仰け反り角度がゼロ(直立)となるように演奏者パラメータが設定される。但し、ベースソロであるか否かの判断は、ベースソロ確率がある一定以上であるか否かにより行われる。
また、目の形(表情)を示すベースの演奏者パラメータは、ベースソロの場合に目がクロスするように設定され、それ以外の場合に普通の目に設定される。フレットを押さえる手の位置を示す演奏者パラメータは、ベースラインの音程に基づいて設定される。例えば、図111に示す演奏者パラメータの設定例に基づいてフレットを押さえる手の位置が決定される。
例えば、ベースラインがE1〜G#1の場合、第1弦で、E1で最もネック側、G#1に近づくほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。同様に、ベースラインがA1〜C#2の場合、第2弦で、A1で最もネック側、C#2に近づくほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。ベースラインがD2〜F#2の場合、第3弦で、D2で最もネック側、F#2に近づくほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。ベースラインがG2より高い場合、第4弦で、G2で最もネック側、高い音ほどボディー側にフレットを押さえる手の位置がくるように演奏者パラメータが設定される。
また、弦を弾く手の角度は、図110に示すように、ベースソロの場合、ベースラインが変化するタイミングでちょうど弦を弾くように設定される。このとき、角度の変化範囲θ1は小さく設定される。一方、ベースソロでない場合、弦を弾く手の角度は8分音符単位で手が一往復するように設定される。そして、角度の変化範囲θ2は大きく設定される。また、ベースの存在確率が高いほど変化範囲が大きく設定される。
ここで、図112〜図114を参照しながら、ベースに関する演奏者パラメータの決定方法について説明する。
まず、図112を参照しながら、ベースに関する演奏者パラメータ決定処理の全体的な流れについて説明する。図112に示すように、まず、視覚化パラメータ決定部114は、ベースソロ確率が予め設定された一定値以上か否かを判断する(S330)。ベースソロ確率が一定値以上の場合、視覚化パラメータ決定部114は、ステップS332の処理に進行する。一方、ベースソロ確率が一定値以下の場合、視覚化パラメータ決定部114は、ステップS334の処理に進行する。ステップS332では、視覚化パラメータ決定部114により、ベースソロ時のパラメータ設定処理が実行される(S332)。ステップS334では、視覚化パラメータ決定部114により、ベースソロ時以外のパラメータ設定処理が実行される(S334)。ステップS332、S334のいずれかの処理を実行すると、視覚化パラメータ決定部114は、ステップS336の処理に進行する。ステップS336では、視覚化パラメータ決定部114により、ハモリ存在確率が参照され、当該ハモリ存在確率に基づいて演奏者オブジェクトの口を開く大きさが決定される(S336)。次いで、視覚化パラメータ決定部114は、ベースラインの音程に基づいてフレットを押さえる手の位置を決定し(S338)、一連の処理を終了する。
次に、図113を参照しながら、ベースソロ時のパラメータ決定処理について説明する。図113に示すように、まず、視覚化パラメータ決定部114は、ベースの演奏者オブジェクトの表情をクロスした目に設定する(S340)。次いで、視覚化パラメータ決定部114は、ベースラインの音程に基づいて演奏者オブジェクトの仰け反り角度を決定する(S342)。次いで、視覚化パラメータ決定部114は、ベースの音程変化タイミング、及びベースの存在確率に基づいて弦を弾く手の角度を決定する(S344)。
次に、図114を参照しながら、ベースソロ時以外のパラメータ決定処理について説明する。図114に示すように、まず、視覚化パラメータ決定部114は、ベースの演奏者オブジェクトの表情を普通の目に設定する(S346)。次いで、視覚化パラメータ決定部114は、演奏者オブジェクトの仰け反り角度を0度(直立)に設定する(S348)。次いで、視覚化パラメータ決定部114は、ベースの存在確率が予め設定された一定値以上であるか否かを判定する(S350)。ベースの存在確率が一定値以上である場合、視覚化パラメータ決定部114は、ステップS354の処理に進行する。一方、ベースの存在確率が一定値以下である場合、視覚化パラメータ決定部114は、ステップS352の処理に進行する。
ステップS354では、視覚化パラメータ決定部114により、ジャンルがロック、ポップス、ダンスのいずれかに属するか否かが判定される(S354)。ジャンルがロック、ポップス、ダンスのいずれかである場合、視覚化パラメータ決定部114は、ステップS356の処理に進行する。一方、ジャンルがロック、ポップス、ダンスのいずれでもない場合、視覚化パラメータ決定部114は、ステップS358の処理に進行する。ステップS356では、視覚化パラメータ決定部114により、ビート位置、及びベースの存在確率に基づいて演奏者オブジェクトの弦を弾く手の角度が決定される(S356)。
ステップS358では、視覚化パラメータ決定部114により、ベースラインの音程変化タイミング、及びベース存在確率に基づいて弦を弾く手の角度が決定される(S358)。また、ステップS352では、視覚化パラメータ決定部114により、弦を弾く手の角度が一定に固定される(S352)。ステップS352、S356、S358のいずれかの処理が実行されると、視覚化パラメータ決定部114は、ベースソロ時以外の演奏者パラメータ決定処理を終了する。
(キーボード、ドラムについて)
次に、図115〜図119を参照しながら、キーボード、及びドラムの演奏者オブジェクトに適用される演奏者パラメータの決定方法について説明する。図115は、キーボード、及びドラムの演奏者オブジェクトに適用される演奏者パラメータの種類を示す説明図である。図116は、キーボードの演奏者パラメータ決定方法に関する全体的な処理の流れを示す説明図である。図117は、キーボードソロの場合に、キーボードの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。図118は、キーボードソロ以外の場合に、キーボードの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。図119は、ドラムの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。
まず、キーボードの演奏者パラメータについて説明する。図115に示すように、キーボードに関する演奏者パラメータには、左右の手の位置、目の形(表情)、及び口を開く大きさがある。口を開く大きさを示すキーボードの演奏者パラメータは、時系列のメタデータであるハモリの存在確率に基づいて決定される。また、目の形(表情)を示すキーボードの演奏者パラメータは、キーボードソロの場合に目がクロスするように設定され、それ以外の場合に普通の目に設定される。右手の位置、及び左手の位置を示す演奏者パラメータは、メロディーライン、及びベースラインの音程に基づいて設定される。例えば、高い音程ほど左側に、低い音程ほど右側になるように手の位置を示す演奏者パラメータが設定される。但し、キーボードソロでない場合、現在のコードに基づいて予め決められた手の位置に設定される。
ここで、図116〜図118を参照しながら、キーボードに関する演奏者パラメータの決定方法について説明する。
まず、図116を参照しながら、キーボードに関する演奏者パラメータ決定処理の全体的な流れについて説明する。図116に示すように、まず、視覚化パラメータ決定部114は、キーボードソロ確率が予め設定された一定値以上か否かを判断する(S360)。キーボードソロ確率が一定値以上の場合、視覚化パラメータ決定部114は、ステップS362の処理に進行する。一方、キーボードソロ確率が一定値以下の場合、視覚化パラメータ決定部114は、ステップS364の処理に進行する。
ステップS362では、視覚化パラメータ決定部114により、キーボードソロ時のパラメータ設定処理が実行される(S362)。ステップS364では、視覚化パラメータ決定部114により、キーボードソロ時以外のパラメータ設定処理が実行される(S364)。ステップS362、S364のいずれかの処理を実行すると、視覚化パラメータ決定部114は、ステップS366の処理に進行する。ステップS366では、視覚化パラメータ決定部114により、ハモリ存在確率が参照され、当該ハモリ存在確率に基づいて演奏者オブジェクトの口を開く大きさが決定される(S366)。
次に、図117を参照しながら、キーボードソロ時のパラメータ決定処理について説明する。図117に示すように、まず、視覚化パラメータ決定部114は、ベースの演奏者オブジェクトの表情をクロスした目に設定する(S368)。次いで、視覚化パラメータ決定部114は、ベースラインの音程に基づいて演奏者オブジェクトの左手の位置を決定する(S370)。次いで、視覚化パラメータ決定部114は、メロディーラインの音程に基づいて演奏者オブジェクトの右手の位置を決定する(S372)。
次に、図118を参照しながら、キーボードソロ時以外のパラメータ決定処理について説明する。図118に示すように、まず、視覚化パラメータ決定部114は、キーボードの演奏者オブジェクトの表情を普通の目に設定する(S374)。次いで、視覚化パラメータ決定部114は、現在のコードに基づいて両手の位置を決定する(S376)。ステップS376の処理が実行されると、視覚化パラメータ決定部114は、キーボードソロ以外の場合における演奏者パラメータの設定処理を終了する。
次に、ドラムの演奏者パラメータについて説明する。図115に示すように、ドラムに関する演奏者パラメータには、目の形(表情)、口を開く大きさ、ハイハット、シンバル、スネア、キック、タムの大きさがある。口を開く大きさを示すキーボードの演奏者パラメータは、時系列のメタデータであるハモリの存在確率に基づいて決定される。また、目の形(表情)を示すキーボードの演奏者パラメータは、ドラムソロの場合に目がクロスするように設定され、それ以外の場合に普通の目に設定される。ハイハット、シンバル、スネア、キック、タムの大きさは、時系列メタデータとして算出されるドラムの存在確率に基づいて決定される。
ここで、図119を参照しながら、ドラムに関する演奏者パラメータの決定方法について説明する。図119に示すように、まず、視覚化パラメータ決定部114は、ドラムソロ確率が予め設定された一定値以上か否かを判断する(S380)。ドラムソロ確率が一定値以上の場合、視覚化パラメータ決定部114は、ステップS382の処理に進行する。一方、ドラムソロ確率が一定値以下の場合、視覚化パラメータ決定部114は、ステップS384の処理に進行する。ステップS382では、視覚化パラメータ決定部114は、ドラムの演奏者オブジェクトの表情をクロスした目に設定する(S382)。ステップS384では、視覚化パラメータ決定部114は、キーボードの演奏者オブジェクトの表情を普通の目に設定する(S374)。
ステップS382、S384のいずれかの処理を実行すると、視覚化パラメータ決定部114は、ステップS386の処理に進行する。ステップS366では、視覚化パラメータ決定部114により、ハモリ存在確率が参照され、当該ハモリ存在確率に基づいて演奏者オブジェクトの口を開く大きさが決定される(S386)。次いで、視覚化パラメータ決定部114は、ドラム確率が予め設定された一定値以上か否かを判定する(S388)。ドラム確率が一定値以上の場合、視覚化パラメータ決定部114は、ステップS390の処理に進行する。一方、ドラム確率が一定値以下の場合、視覚化パラメータ決定部114は、ステップS392の処理に進行する。
ステップS390では、視覚化パラメータ決定部114により、各ドラムの存在確率に基づいて各ドラムの大きさが決定される(S390)。ステップS392では、視覚化パラメータ決定部114により、全てのドラムの大きさが最小の大きさに設定される(S392)。ステップS390、S392のいずれかの処理を実行すると、視覚化パラメータ決定部114は、ドラムに関する演奏者パラメータの設定処理を終了する。
(ストリングスについて)
次に、図120〜図125を参照しながら、ストリングスの演奏者オブジェクトに適用される演奏者パラメータの決定方法について説明する。図120は、ストリングスの演奏者オブジェクトに適用される演奏者パラメータの種類を示す説明図である。図121は、ストリングスに関する演奏者パラメータの設定例を示す説明図である。図122は、ストリングスソロの場合とストリングスソロ以外の場合とで異なるストロークの大きさ、及び弓の移動タイミングを示す説明図である。図123は、ストリングスの演奏者パラメータの決定方法に関する全体的な処理の流れを示す説明図である。図124は、ストリングスソロの場合に、ストリングスの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。図125は、ストリングスソロ以外の場合に、ベースの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。
まず、図120に示すように、ストリングスに関する演奏者パラメータには、弓の位置、及び弦を押さえる手の位置がある。ストリングスソロの場合、弓の位置を示す演奏者パラメータは、メロディーの変化タイミングに基づいて決定される。例えば、図122の(A)に示すように、メロディーが変化するタイミングで弓が端に移動するように弓の位置を示す演奏者パラメータが決定される。但し、ストリングスソロの場合、ストロークは小さめに設定される。また、弦を押さえる手の位置を示す演奏者パラメータは、メロディーラインに基づいて設定される。例えば、図121に示す演奏者パラメータの設定例に基づいて弦を押さえる手の位置が決定される。
例えば、メロディーラインがG2〜C#2の場合、第1弦で、G2で最もネック側、C#2に近づくほどボディー側に弦を押さえる手の位置がくるように演奏者パラメータが設定される。同様に、メロディーラインがD3〜G#3の場合、第2弦で、D3で最もネック側、G#3に近づくほどボディー側に弦を押さえる手の位置がくるように演奏者パラメータが設定される。メロディーラインがA3〜D#4の場合、第3弦で、A3で最もネック側、D#4に近づくほどボディー側に弦を押さえる手の位置がくるように演奏者パラメータが設定される。メロディーラインがE4より高い場合、第4弦で、E4で最もネック側、高い音ほどボディー側に弦を押さえる手の位置がくるように演奏者パラメータが設定される。
ストリングスソロ以外の場合、弓の位置を示す演奏者パラメータ(全ストリングス奏者で共通)は、図122の(B)に示すように、1小節毎に小節線のタイミングで弓が端に移動するように決定される。但し、ストリングスソロ以外の場合、ストロークはやや大きく設定される。また、弦を押さえる手の位置は、コードの構成音に基づいて決定される。図120に示すように、ストリングスセッションには、複数の演奏者オブジェクトが配置されている。例えば、左端の演奏者オブジェクトはコードのルートを担当する。また、左端から2番目、3番目、…の演奏者オブジェクトは、2番目、3番目、…の構成音を担当する。図120の例ではストリングス奏者が5人いるが、コードの構成音が5に満たない場合、コードの構成音のいずれかを二人の演奏者が重複して担当することになる。なお、コードの構成音として何が含まれるかは予めテーブルで保持する。
ここで、図123〜図125を参照しながら、ストリングスに関する演奏者パラメータの決定方法について説明する。
まず、図123を参照しながら、ストリングスに関する演奏者パラメータ決定処理の全体的な流れについて説明する。図123に示すように、まず、視覚化パラメータ決定部114は、ストリングスソロ確率が予め設定された一定値以上か否かを判断する(S400)。ストリングスソロ確率が一定値以上の場合、視覚化パラメータ決定部114は、ステップS402の処理に進行する。一方、ストリングスソロ確率が一定値以下の場合、視覚化パラメータ決定部114は、ステップS404の処理に進行する。ステップS402では、視覚化パラメータ決定部114により、ストリングスソロ時のパラメータ設定処理が実行される(S402)。ステップS404では、視覚化パラメータ決定部114により、ストリングスソロ時以外のパラメータ設定処理が実行される(S404)。ステップS402、S404のいずれかの処理を実行すると、視覚化パラメータ決定部114は一連の処理を終了する。
次に、図124を参照しながら、ストリングスソロ時のパラメータ決定処理について説明する。図124に示すように、まず、視覚化パラメータ決定部114は、メロディーラインに基づいて弦を押させる手の位置を決定する(S406)。次いで、視覚化パラメータ決定部114は、メロディーラインの変化位置に基づいて弓の位置を決定する(S408)。
次に、図125を参照しながら、ストリングスソロ時以外のパラメータ決定処理について説明する。図125に示すように、まず、視覚化パラメータ決定部114は、ストリングスの存在確率が予め設定された一定値以上であるか否かを判定する(S410)。ストリングスの存在確率が一定値以上である場合、視覚化パラメータ決定部114は、ステップS414の処理に進行する。一方、ストリングスの存在確率が一定値以下である場合、視覚化パラメータ決定部114は、ステップS412の処理に進行する。
ステップS414では、視覚化パラメータ決定部114により、コード構成音に基づいて弦を押させる手の位置が決定される(S414)。次いで、視覚化パラメータ決定部114により、小節線の位置に基づいて弓の位置が決定される(S416)。一方、ステップS412では、視覚化パラメータ決定部114により、弦を押さえる手の位置はそのままで、弓をバイオリンから離すように設定される(S412)。ステップS412、S416のいずれかの処理を実行すると、視覚化パラメータ決定部114は、ストリングスソロ時以外の演奏者パラメータ決定処理を終了する。
(ブラスについて)
次に、図126、図127を参照しながら、ブラスの演奏者オブジェクトに適用される演奏者パラメータの決定方法について説明する。図126は、ブラスの演奏者オブジェクトに適用される演奏者パラメータの種類を示す説明図である。図127は、ブラスの演奏者パラメータの決定方法に関する処理の流れを示す説明図である。
まず、図126に示すように、ブラスに関する演奏者パラメータは、ブラスの角度パラメータのみで構成される。ブラスの角度パラメータは、ブラスの存在確率が高いほど上を向き、ブラスの存在確率が低いほど下を向くように設定される。また、ブラスの存在確率がある一定以下の場合、ブラスの角度が下を向き、ブラスが口から離されるように設定される。
図127に示すように、まず、視覚化パラメータ決定部114は、ブラススソロ確率が予め設定された一定値以上か否かを判断する(S420)。ブラスソロ確率が一定値以上の場合、視覚化パラメータ決定部114は、ステップS422の処理に進行する。一方、ブラスソロ確率が一定値以下の場合、視覚化パラメータ決定部114は、ステップS424の処理に進行する。ステップS422では、視覚化パラメータ決定部114により、ブラス存在確率に基づいてブラスの角度パラメータが決定される(S422)。一方、ステップS424では、視覚化パラメータ決定部114により、ブラスの角度パラメータが下方向に向き、ブラスが口から離れるように角度パラメータが設定される(S424)。そして、ステップS422、S424のいずれかの処理を実行すると、視覚化パラメータ決定部114は一連の処理を終了する。
以上、視覚化パラメータの決定方法について説明した。このようにして決定された視覚化パラメータは、視覚化部116に入力されて楽曲の視覚化処理に用いられる。
[2−6.ハードウェア構成(情報処理装置100)]
上記装置が有する各構成要素の機能は、例えば、図128に示すハードウェア構成により、上記の機能を実現するためのコンピュータプログラムを用いて実現することが可能である。図128は、上記装置の各構成要素が有する機能を実現することが可能な情報処理装置のハードウェア構成を示す説明図である。この情報処理装置の形態は任意であり、例えば、パーソナルコンピュータ、携帯電話、PHS、PDA等の携帯情報端末、ゲーム機、又は各種の情報家電等の形態がこれに含まれる。なお、上記のPHSは、Personal Handy−phone Systemの略である。また、上記のPDAは、Personal Digital Assistantの略である。
図128に示すように、情報処理装置100は、CPU902と、ROM904と、RAM906と、ホストバス908と、ブリッジ910と、外部バス912と、インターフェース914とを有する。さらに、情報処理装置100は、入力部916と、出力部918と、記憶部920と、ドライブ922と、接続ポート924と、通信部926とを有する。なお、上記のCPUは、Central Processing Unitの略である。また、上記のROMは、Read Only Memoryの略である。さらに、上記のRAMは、Random Access Memoryの略である。
CPU902は、例えば、演算処理装置又は制御装置として機能し、ROM904、RAM906、記憶部920、又はリムーバブル記録媒体928に記録された各種プログラムに基づいて各構成要素の動作全般又はその一部を制御する。ROM904は、例えば、CPU902に読み込まれるプログラムや演算に用いるデータ等を格納する。RAM906は、例えば、CPU902に読み込まれるプログラムや、そのプログラムを実行する際に適宜変化する各種パラメータ等を一時的又は永続的に格納する。これらの構成要素は、例えば、高速なデータ伝送が可能なホストバス908によって相互に接続されている。また、ホストバス908は、例えば、ブリッジ910を介して比較的データ伝送速度が低速な外部バス912に接続されている。
入力部916は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチ、及びレバー等の操作手段である。また、入力部916は、赤外線やその他の電波を利用して制御信号を送信することが可能なリモートコントロール手段(所謂、リモコン)であってもよい。なお、入力部916は、上記の操作手段を用いて入力された情報を入力信号としてCPU902に伝送するための入力制御回路等により構成されている。
出力部918としては、例えば、CRT、LCD、PDP、又はELD等のディスプレイ装置が用いられる。また、出力部918としては、スピーカ、ヘッドホン等のオーディオ出力装置、プリンタ、携帯電話、又はファクシミリ等、取得した情報を利用者に対して視覚的又は聴覚的に通知することが可能な装置が用いられる。記憶部920は、各種のデータを格納するための装置であり、例えば、HDD等の磁気記憶デバイス、半導体記憶デバイス、光記憶デバイス、又は光磁気記憶デバイス等により構成される。なお、上記のCRTは、Cathode Ray Tubeの略である。また、上記のLCDは、Liquid Crystal Displayの略である。さらに、上記のPDPは、Plasma DisplayPanelの略である。そして、上記のELDは、Electro−Luminescence Displayの略である。また、上記のHDDは、Hard Disk Driveの略である。
ドライブ922は、例えば、磁気ディスク、光ディスク、光磁気ディスク、又は半導体メモリ等のリムーバブル記録媒体928に記録された情報を読み出し、又はリムーバブル記録媒体928に情報を書き込む装置である。リムーバブル記録媒体928としては、例えば、DVDメディア、Blu−rayメディア、HD DVDメディアが用いられる。さらに、リムーバブル記録媒体928としては、コンパクトフラッシュ(登録商標)(CF;CompactFlash)、メモリースティック、又はSDメモリカード等が用いられる。もちろん、リムーバブル記録媒体928は、例えば、非接触型ICチップを搭載したICカード等であってもよい。なお、上記のSDは、Secure Digitalの略である。また、上記のICは、Integrated Circuitの略である。
接続ポート924は、例えば、USBポート、IEEE1394ポート、SCSI、RS−232Cポート、又は光オーディオ端子等のような外部接続機器930を接続するためのポートである。外部接続機器930は、例えば、プリンタ、携帯音楽プレーヤ、デジタルカメラ、デジタルビデオカメラ、又はICレコーダ等である。なお、上記のUSBは、Universal Serial Busの略である。また、上記のSCSIは、Small Computer System Interfaceの略である。
通信部926は、ネットワーク932に接続するための通信デバイスである。通信部926としては、例えば、有線又は無線LAN、Bluetooth(登録商標)、又はWUSB用の通信カード、光通信用のルータ、ADSL用のルータ、又は各種通信用のモデム等が用いられる。また、通信部926に接続されるネットワーク932は、有線又は無線により接続されたネットワークにより構成される。ネットワーク932は、例えば、インターネット、家庭内LAN、赤外線通信、可視光通信、放送、又は衛星通信等である。なお、上記のLANは、Local Area Networkの略である。また、上記のWUSBは、Wireless USBの略である。さらに、上記のADSLは、Asymmetric Digital Subscriber Lineの略である。
[2−7.まとめ]
最後に、本実施形態の情報処理装置が有する機能構成と、当該機能構成により得られる作用効果について簡単に纏める。
まず、本実施形態に係る情報処理装置の機能構成は次のように表現することができる。当該情報処理装置は、次のような構成を持つメタデータ抽出部、及びパラメータ決定部を有する。当該メタデータ抽出部は、複数の楽器音が混在した音声信号を解析し、当該音声信号の特徴量として演奏時間の経過と共に変化するメタデータを抽出するものである。音声信号の特徴量を抽出する方法としては、例えば、学習アルゴリズムに基づく特徴量推定方法が利用できる。例えば、上記のメタデータ抽出部は、所望の特徴量が与えられている音声信号を複数用い、所定の時間単位で各音声信号のデータを切り出し、切り出したデータを評価データとして学習アルゴリズムに与える。それと共に、上記のメタデータ抽出部は、各評価データの特徴量を教師データとして学習アルゴリズムに与える。すると、学習アルゴリズムに基づいて任意の音声信号の入力データから所望の特徴量を算出するための計算式を得ることができる。そこで、上記のメタデータ抽出部は、学習アルゴリズムで得られた計算式に解析対象の音声信号のデータを入力して所望の特徴量を算出する。このとき、上記のメタデータ抽出部は、時系列で変化するメタデータを特徴量に選択して計算式を取得し、当該計算式を用いて当該時系列で変化する特徴量を抽出する。このように、学習アルゴリズムを用いた特徴量抽出方法を採用することで、音声信号の波形のみから特徴量が抽出される。ところで、上記の演奏者パラメータ決定部は、前記各楽器音に対応する演奏者オブジェクトの動きを制御するための演奏者パラメータを前記メタデータ抽出部で抽出されたメタデータに基づいて決定するものである。上記のように、メタデータ抽出部で時系列変化するメタデータが得られる。そのため、このメタデータに連動してCG映像やロボット等(演奏者オブジェクト)を動かし、音声信号で表現される音楽を視覚化することができる。このような視覚化処理に用いるパラメータを決定するのが上記の演奏者パラメータ決定部である。このような構成にすることで、音声信号の波形のみを用いて音楽を視覚化することが可能になる。特に、各楽器音の変化に相当する時系列メタデータを利用して、各楽器を担当する演奏者オブジェクトを動かすことで、よりリアルに音楽を視覚化することが可能になる。このような効果は、単純に音声信号の波形を周波数解析して得られる特徴量を用いても実現することが難しいものである。
例えば、前記メタデータ抽出部は、前記音声信号のビート、コード進行、楽曲構造、メロディーライン、ベースライン、前記各楽器音の存在確率、前記各楽器音のソロ確率、及びボーカルの声質で形成される群の中から選択される1以上のデータを前記メタデータとして抽出する。上記のように、学習アルゴリズムを用いることで、多種多様な特徴量を音声信号の波形から抽出することが可能になる。その中でも、時系列で変化するメタデータ、及び楽器音毎に特徴のある上記のようなメタデータを用いると、あたかも演奏者オブジェクトが本当に演奏しているかのように音楽を可視化することができるようになる。
さらに、前記メタデータ抽出部は、前記音声信号が属する楽曲のジャンル、前記音声信号が属する楽曲の年代、前記音声信号の演奏者に関する情報、前記音声信号に含まれる楽器音の種類、及び前記音声信号の曲調で形成される群の中から選択される1以上のデータを前記メタデータとして抽出することもできる。そこで、これらのメタデータを利用して演奏シーンに演出を加えたり、演奏者オブジェクトの外観や仕草をアレンジすることで、よりリアリティを高めたりすることができる。例えば、前記演奏者パラメータ決定部は、前記演奏者に関する情報として前記演奏者の身長及び体重の情報が抽出された場合に当該身長及び体重の情報に基づいて前記演奏者オブジェクトのサイズを表す演奏者パラメータを決定するように構成されてもよい。また、前記演奏者に関する情報として前記演奏者の性別の情報が抽出された場合に当該性別の情報に基づいて前記演奏者オブジェクトのヘアスタイル及び服装を表す演奏者パラメータが決定されてもよい。なお、これらの演出も音声信号の波形から得られた情報に基づいて行われる点に注意されたい。
また、上記の情報処理装置は、前記メタデータ抽出部で抽出されたメタデータに基づいて前記演奏者オブジェクトが配置されるステージの照明を制御するための照明パラメータを決定する照明パラメータ決定部をさらに備えていてもよい。この場合、前記照明パラメータ決定部は、前記メタデータ抽出部で抽出されたビートに同期して前記照明が変化するように前記照明パラメータを決定する。さらに、前記照明パラメータ決定部は、前記メタデータ抽出部で抽出された前記各楽器音の存在確率に基づいて当該各楽器音に対応する演奏者オブジェクトを照らすスポットライトの明るさを表す照明パラメータを決定するように構成されていてもよい。そして、前記照明パラメータ決定部は、前記メタデータ抽出部で抽出された楽曲構造を参照し、演奏中の楽曲構造の種類に応じて前記照明が変化するように前記照明パラメータを決定するように構成されていてもよい。また、前記照明パラメータ決定部は、前記メタデータ抽出部で抽出された前記楽曲の年代に基づいて前記照明の色が変化するように前記照明パラメータを決定するように構成されていてもよい。このように、演奏者オブジェクトが配置されるステージの演出方法として、音声信号の波形から抽出されたメタデータを利用して照明に変化を加える方法を用いると、演奏シーンが、よりリアルなものになる。例えば、ライブを収録した音声信号などを用いると、実際の演奏シーンを擬似的に再現することになり、ユーザに新たな楽しみを提供することができる。
また、上記の情報処理装置は、前記メタデータ抽出部で抽出されたメタデータに基づいて前記ステージとは異なる位置に設けられた観客席に配置される観客オブジェクトの動作を制御するための観客パラメータを決定する観客パラメータ決定部をさらに備えていてもよい。この場合、前記観客パラメータ決定部は、前記メタデータ抽出部で抽出されたビートに同期して前記観客オブジェクトの動作が変化するように前記観客パラメータを決定する。さらに、前記観客パラメータ決定部は、前記メタデータ抽出部で抽出された楽曲構造を参照し、演奏中の楽曲構造の種類に応じて前記観客オブジェクトの動作が変化するように前記観客パラメータを決定するように構成されていてもよい。演奏シーンに観客オブジェクトを含める場合、観客の動きもメタデータに基づいて制御することができる。実世界においても、楽曲の種類によって演奏会等における観客の振る舞いは異なる。逆に、この点を利用し、観客オブジェクトの動きを音声信号の波形から得られる種類等に基づいて制御することにより、より演奏シーンのリアリティを向上させることができる。
また、前記演奏者パラメータ決定部は、前記メタデータ抽出部で抽出された前記各楽器音のソロ確率に基づいて当該各楽器音に対応する演奏者オブジェクトの姿勢、表情を表す演奏者パラメータを決定するように構成されていてもよい。さらに、前記演奏者パラメータ決定部は、前記メタデータ抽出部で抽出された前記各楽器音の存在確率に基づいて当該各楽器音に対応する演奏者オブジェクトの演奏する手の動きの大きさを表す演奏者パラメータを決定するように構成されていてもよい。そして、前記演奏者パラメータ決定部は、前記メタデータ抽出部で抽出されたボーカルの存在確率に基づいて当該ボーカルに対応する演奏者オブジェクトの口の開く大きさ、又はマイクを持つ手と口との間の距離を表す演奏者パラメータを決定するように構成されていてもよい。このように、演奏者毎に制御すべきパラメータの種類は異なる。
例えば、前記演奏者パラメータ決定部は、前記メタデータ抽出部で抽出されたメロディーラインの平均音程と各フレームにおける当該メロディーラインの音程との差異に基づいて、或いは、前記メタデータ抽出部で抽出されたボーカルの声質に基づいて当該ボーカルに対応する演奏者オブジェクトの表情の動きを表す演奏者パラメータを決定する。また、前記演奏者パラメータ決定部は、前記メタデータ抽出部で抽出されたメロディーラインに基づいてボーカルに対応する演奏者オブジェクトのマイクを持たない手の動きを表す演奏者パラメータを決定する。ボーカルの場合、このような演奏者パラメータの制御方法を用いることで、リアルな動きが実現される。
また、前記演奏者パラメータ決定部は、前記メタデータ抽出部で抽出されたコード進行に基づいてギター、キーボード、及びストリングスで形成される群の中から選択される1以上のセクションに対応する前記演奏者オブジェクトの手の位置を表す演奏者パラメータを決定する。前記演奏者パラメータ決定部は、前記メタデータ抽出部で抽出されたベースラインに基づいてベースに対応する前記演奏者オブジェクトの弦を押さえる手の位置を表す演奏者パラメータを決定する。ボーカル以外の演奏者に対しては、このような演奏者パラメータの制御方法を用いることで、リアルな動きが実現される。
また、前記演奏者オブジェクトとしては、外部接続されたロボット、又はコンピュータグラフィックスで実現される演奏者映像を用いることができる。この場合、上記の情報処理装置は、前記演奏者パラメータ決定部で決定された演奏者パラメータを用いて前記外部接続されたロボットの動きを制御するか、又は前記演奏者パラメータ決定部で決定された演奏者パラメータを用いて前記演奏者映像の動きを制御するオブジェクト制御部をさらに備える。もちろん、本実施形態に係る技術は、これに限定されず、視覚化対象となるものであれば、任意の表現方法を用いて演奏者オブジェクトの動きを制御することができる。
(備考)
上記の楽曲解析部110は、メタデータ抽出部の一例である。上記の視覚化パラメータ決定部114は、演奏者パラメータ決定部、照明パラメータ決定部、観客パラメータ決定部の一例である。上記の視覚化部116は、オブジェクト制御部の一例である。
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明は係る例に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
例えば、CG映像を利用して楽曲を視覚化する場合、次のような視覚効果で演奏シーンの演出効果を高めることもできる。
(1)まず、CGのカメラワークを工夫して演出効果を高める方法が考えられる。例えば、ソロ演奏者が検出された場合に、そのソロ演奏者をズーム表示にする演出方法が考えられる。この演出方法は、楽曲解析部110で得られたソロ確率を用いて実現される。また、いくつかの仮想的なカメラを設け、小節の進行に応じてカメラを切り替える表示方法が考えられる。この表示方法は、楽曲解析部110で得られた小節進行を用いて実現される。このように、楽曲解析部110で得られたメタデータに基づいてCGのカメラワークを自動的に決定することで、ユーザに対して楽曲データの波形に基づくリアルな視覚効果を提供することが可能になる。
(2)また、楽曲構造解析部110で得られた種々のメタデータを用いてステージ演出を行うこともできる。例えば、おだやかな曲の演奏中にはサビの部分でスモークを出すようなステージ演出を行うことができる。逆に、にぎやかな曲の演奏中にはサビの直前で爆発が起きたようなステージ演出を行うことができる。これらのステージ演出には、楽曲構造解析部110で得られる楽曲構造、及び曲調を示すメタデータが用いられる。このように、楽曲解析部110で得られたメタデータに基づいてCGのステージ演出を自動的に決定することで、ユーザに対して楽曲データの波形に基づくリアルな視覚効果を提供することが可能になる。
(3)上記実施形態の説明においては、ボーカル、ギター、ベース、キーボード、ドラム、ストリングス、ブラスを例に挙げて説明した。しかし、既に説明した楽曲解析部110の構成を用いると、楽器の種類をより細かく検出することも可能である。例えば、ベースをウッドベース、エレキベース、シンセベースに分けて検出することが可能である。また、ドラムをアコースティックドラムとエレキドラムとに分けて検出することも可能である。さらに、観客の拍手や歓声を楽曲データの波形から検出することも可能である。そこで、楽器の種類を細かく検出し、検出した楽器の種類に応じて演奏者オブジェクトが持つ楽器や演奏者オブジェクトのCG自体を変更するように構成することもできる。さらに、検出された拍手音に応じて観客に拍手をさせたり、検出した歓声に応じて観客が発声しているような動作をさせたりすることもできる。
(4)上記説明の通り、楽曲解析部110は、音源分離部106で分離された各チャネルの波形に対して楽曲解析を行うことができる。そのため、楽曲解析部110を用いて各チャネルの波形を解析することにより、各楽器音がどのチャネルに含まれるかを検出することができる。そこで、チャネル毎に検出された各楽器音の存在確率に基づいて演奏者オブジェクトの位置を変更するように構成することも可能である。例えば、左チャネルの信号波形からギターの高い存在確率が検出された場合、ギターの演奏者オブジェクトの位置が左側にシフトされる。このように、楽曲解析部110で得られたメタデータに基づいて各種オブジェクトの位置や動作を自動的に決定することで、ユーザに対して楽曲データの波形に基づくリアルな視覚効果を提供することが可能になる。